diff options
| author | Cliff Click <cliffc@acm.org> | 2026-10-04 13:30:41 -0700 |
|---|---|---|
| committer | Cliff Click <cliffc@acm.org> | 2026-10-04 13:30:41 -0700 |
| commit | a4994371c0b0fbea9d2802acc22d9cc3977a0de0 (patch) | |
| tree | 98fd05869028a931f5ec8cf503b5cdf6b6c52e87 /docs/2026_REBASE/assets | |
| parent | 9149ea7a50c564856bd09633f38d980e8230c34f (diff) | |
| download | Simple-a4994371c0b0fbea9d2802acc22d9cc3977a0de0.tar.gz Simple-a4994371c0b0fbea9d2802acc22d9cc3977a0de0.zip | |
Slides for 2026 REBASEreadme
Diffstat (limited to 'docs/2026_REBASE/assets')
18 files changed, 6692 insertions, 0 deletions
diff --git a/docs/2026_REBASE/assets/aliases-final.json b/docs/2026_REBASE/assets/aliases-final.json new file mode 100644 index 00000000..0a13477b --- /dev/null +++ b/docs/2026_REBASE/assets/aliases-final.json @@ -0,0 +1,406 @@ +{ + "ver": 1, + "comp": "rebase-aliases", + "step": 50, + "roots": [ + 2, + 3 + ], + "scope": 0, + "nodes": [ + { + "id": 2, + "label": "Start", + "type": "[ Ctrl, MemBot, int]", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 2, + "def": 0, + "role": "CTRL", + "label": null + } + ], + "proj": null + }, + { + "id": 3, + "label": "Stop", + "type": "Bot", + "kind": "STOP", + "edges": [ + { + "idx": 0, + "def": 29, + "role": "CTRL", + "label": null + } + ], + "proj": null + }, + { + "id": 4, + "label": "Con", + "type": "0", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 5, + "label": "Xctrl", + "type": "~Ctrl", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 6, + "label": "$ctrl", + "type": "Ctrl", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "CTRL", + "label": null + } + ], + "proj": { + "par": 2, + "idx": 0 + } + }, + { + "id": 7, + "label": "$mem", + "type": "MemBot", + "kind": "MEM", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "MEM", + "label": null + } + ], + "proj": { + "par": 2, + "idx": 1 + } + }, + { + "id": 8, + "label": "arg", + "type": "int", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "DATA", + "label": null + } + ], + "proj": { + "par": 2, + "idx": 2 + } + }, + { + "id": 12, + "label": "Con", + "type": "10", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 13, + "label": "Con", + "type": "16", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 14, + "label": "MemMerge", + "type": "MemBot", + "kind": "MEM", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 0, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 7, + "role": "MEM", + "label": null + }, + { + "idx": 3, + "def": 7, + "role": "MEM", + "label": null + } + ], + "proj": null + }, + { + "id": 15, + "label": "new_Pair", + "type": "[ *Pair {int !x; int !y; }, MemBot]", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 6, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 14, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 13, + "role": "DATA", + "label": null + }, + { + "idx": 3, + "def": 8, + "role": "DATA", + "label": null + }, + { + "idx": 4, + "def": 12, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 16, + "label": "Pair", + "type": "*Pair {int !x; int !y; }", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 15, + "role": "DATA", + "label": null + } + ], + "proj": { + "par": 15, + "idx": 0 + } + }, + { + "id": 17, + "label": "$mem", + "type": "MemBot", + "kind": "MEM", + "edges": [ + { + "idx": 0, + "def": 15, + "role": "MEM", + "label": null + } + ], + "proj": { + "par": 15, + "idx": 1 + } + }, + { + "id": 21, + "label": "Con", + "type": "8", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 22, + "label": "Con", + "type": "99", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 23, + "label": "st_y", + "type": "MEM#3:[10-99]", + "kind": "MEM", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 17, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 16, + "role": "DATA", + "label": null + }, + { + "idx": 3, + "def": 21, + "role": "DATA", + "label": null + }, + { + "idx": 4, + "def": 22, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 24, + "label": "MemMerge", + "type": "MemBot", + "kind": "MEM", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 7, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 17, + "role": "MEM", + "label": null + }, + { + "idx": 3, + "def": 23, + "role": "MEM", + "label": null + } + ], + "proj": null + }, + { + "id": 29, + "label": "Return", + "type": "[ Ctrl, MemBot, 0]", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 6, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 24, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 4, + "role": "DATA", + "label": null + } + ], + "proj": null + } + ], + "groups": [] +} diff --git a/docs/2026_REBASE/assets/aliases-final.svg b/docs/2026_REBASE/assets/aliases-final.svg new file mode 100644 index 00000000..f8b2af9e --- /dev/null +++ b/docs/2026_REBASE/assets/aliases-final.svg @@ -0,0 +1,140 @@ +<svg aria-label="Compiler graph" width="686" height="786" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 686 786" style="font-family: sans-serif;"><style> + html, body { height:100%; margin:0; font-family:sans-serif; } + .viewer { height:100%; display:grid; grid-template-rows:auto minmax(0,1fr) auto; } + .source { padding:8px; border-bottom:1px solid #ccc; } + #program { width:min(600px,80vw); vertical-align:middle; } + #status { margin-top:4px; } + #graph { min-height:0; overflow:hidden; position:relative; background:#fafbfc; } + #elk { width:100%; height:100%; } + #graph svg { display:block; } + .tools { display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-top:8px; font-size:12px; } + .hint { color:#616c78; } + .ctrl { color:#b63838; } .mem { color:#2867b2; } .data { color:#536477; } + .edge { fill:none; stroke-width:1.5; } + .edge.CTRL { stroke-width:2; } + .edge.ASSOC { stroke-dasharray:4 4; } + .edge.PARSER { stroke-dasharray:5 4; } + .parser rect { fill:#f6f0ff; stroke:#7956a5; stroke-width:1.5; stroke-dasharray:5 4; } + .edge.selected { stroke-width:3.5; } + .edge.bundle { stroke-width:4; } + .edge.bundle.selected { stroke-width:6; } + .edge-hit { fill:none; stroke:transparent; stroke-width:12; vector-effect:non-scaling-stroke; pointer-events:stroke; cursor:pointer; } + .edge-jump { fill:transparent; pointer-events:all; cursor:pointer; } + .node { cursor:pointer; } + .box { stroke:#758191; stroke-width:1; } + .node.held .box { stroke-dasharray:5 3; } + .node.near .box { stroke:#c18221; stroke-width:2; } + .node.focus .box { stroke:#9c4900; stroke-width:3; } + .node.selected .box { stroke:#1569b9; stroke-width:3; } + .node.folded .box { stroke-width:4; } + .node.folding .box { fill:#f4ccd7; } + .fold-tag { font-size:9px; font-weight:700; fill:#963751; } + .peep-area { fill:#fff3d9; fill-opacity:.8; stroke:#c18221; stroke-width:2; pointer-events:none; } + .node.peep-edit .box { stroke:#9c4900; stroke-width:3; } + .node.error .box { stroke:#b42318; stroke-width:4; } + #event.error { color:#b42318; font-weight:600; white-space:pre-wrap; overflow-wrap:anywhere; } + .peep-ghosts { pointer-events:none; } + .region-box { stroke:#9da9b8; stroke-width:1.5; } + .fold-btn { cursor:pointer; } + .fold-btn rect { fill:white; stroke:#596674; } + .fold-btn text { font-size:14px; fill:#152330; } + .fold-btn:focus rect { stroke:#1569b9; stroke-width:2; } + .shortcut { cursor:pointer; } + .shortcut path { fill:none; stroke-width:1.5; } + .shortcut rect { fill:#fff8ec; stroke:#b63838; stroke-dasharray:3 2; } + .shortcut text { font-size:11px; fill:#783030; } + .shortcut.selected rect, .shortcut:focus rect { stroke-width:2.5; } + .label { font-size:12px; fill:#152330; font-weight:600; } + .node-id { font-size:10px; fill:#596674; font-weight:400; } + .type { font-size:11px; fill:#455768; } + .port { stroke:#536477; stroke-width:1; } + .row { stroke:#b6afcf; stroke-width:1; } + .bind { font-size:12px; fill:#152330; } + .slot { font-size:10px; fill:#364352; paint-order:stroke; stroke:#fafbfc; stroke-width:3; } + #detail { position:absolute; top:8px; right:8px; margin:0; padding:12px; max-width:320px; + max-height:45%; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; + background:#fffffff2; border:1px solid #bac5d0; border-radius:4px; font-size:12px; } + .controls { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:6px; padding:6px; } + .button { color:white; background:black; font-size:20px; min-width:30px; } + .button:disabled { background:grey; } + .count { font-size:20px; min-width:35px; text-align:center; } + #N { width:6ch; } + #scrub { width:clamp(120px,35vw,600px); } + </style><defs><marker id="arrow-CTRL" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#b63838"/></marker><marker id="arrow-DATA" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#536477"/></marker><marker id="arrow-MEM" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#2867b2"/></marker><marker id="arrow-ASSOC" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#9396a3"/></marker><marker id="arrow-PARSER" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#7956a5"/></marker></defs><rect width="100%" height="100%" fill="rgb(250, 251, 252)"/><g><g class="regions" style="opacity: 1;"/><rect class="peep-area" rx="36" style="opacity: 0;"/><g class="edges"><path class="edge CTRL" id="e3i0" d="M114,685 C114,709 343,712 343,736" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#3[0] → #29 · CTRL</title></path><path class="edge ASSOC" id="e4i0" d="M387,52 C387,76 307,507 307,531" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#4[0] → #2 · ASSOC</title></path><path class="edge ASSOC" id="e5i0" d="M387,52 C387,76 482,25 482,49" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#5[0] → #2 · ASSOC</title></path><path class="edge ASSOC" id="e12i0" d="M387,52 C387,76 470,151 470,175" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#12[0] → #2 · ASSOC</title></path><path class="edge ASSOC" id="e13i0" d="M387,52 C387,76 329,151 329,175" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#13[0] → #2 · ASSOC</title></path><path class="edge MEM" id="e14i2" d="M204,124 L204,129 Q204,134 199,134 L196.5,134 Q189,134 189,141.5 L189,172" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#14[2] → #7 · MEM</title></path><path class="edge MEM" id="e14i3" d="M204,124 L204,129.5 Q204,134 208.5,134 L208.5,134 Q213,134 213,138.5 L213,172" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#14[3] → #7 · MEM</title></path><path class="edge CTRL" id="e15i0" d="M84,124 L84,136 Q84,144 92,144 L98,144 Q106,144 106,152 L106,230 Q106,238 114,238 L139,238 Q147,238 147,246 L147,276" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#15[0] → #6 · CTRL</title></path><path class="edge MEM" id="e15i1" d="M177,228 L177,233 Q177,238 182,238 L182.5,238 Q188,238 188,243.5 L188,276" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#15[1] → #14 · MEM</title></path><path class="edge DATA" id="e15i2" d="M329,228 L329,233 Q329,238 324,238 L237,238 Q229,238 229,246 L229,276" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#15[2] → #13 · DATA</title></path><path class="edge DATA" id="e15i3" d="M324,124 L324,129 Q324,134 329,134 L391,134 Q399,134 399,142 L399,240 Q399,248 391,248 L278,248 Q270,248 270,256 L270,276" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#15[3] → #8 · DATA</title></path><path class="edge DATA" id="e15i4" d="M470,228 L470,250 Q470,258 462,258 L319,258 Q311,258 311,266 L311,276" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#15[4] → #12 · DATA</title></path><path class="edge ASSOC" id="e21i0" d="M387,52 C387,76 450,299 450,323" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#21[0] → #2 · ASSOC</title></path><path class="edge ASSOC" id="e22i0" d="M387,52 C387,76 602,299 602,323" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#22[0] → #2 · ASSOC</title></path><path class="edge MEM" id="e23i1" d="M292,376 L292,424" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#23[1] → #17 · MEM</title></path><path class="edge DATA" id="e23i2" d="M169,376 L169,381 Q169,386 174,386 L304,386 Q312,386 312,394 L312,424" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#23[2] → #16 · DATA</title></path><path class="edge DATA" id="e23i3" d="M450,376 L450,381 Q450,386 445,386 L340,386 Q332,386 332,394 L332,424" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#23[3] → #21 · DATA</title></path><path class="edge DATA" id="e23i4" d="M602,376 L602,388 Q602,396 594,396 L360,396 Q352,396 352,404 L352,424" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#23[4] → #22 · DATA</title></path><path class="edge MEM" id="e24i1" d="M204,124 L204,129 Q204,134 199,134 L103,134 Q95,134 95,142 L95,482 Q95,490 103,490 L135,490 Q143,490 143,498 L143,528" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#24[1] → #7 · MEM</title></path><path class="edge MEM" id="e24i2" d="M292,376 L292,388 Q292,396 284,396 L175,396 Q167,396 167,404 L167,528" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#24[2] → #17 · MEM</title></path><path class="edge MEM" id="e24i3" d="M312,480 L312,485 Q312,490 307,490 L199,490 Q191,490 191,498 L191,528" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#24[3] → #23 · MEM</title></path><path class="edge CTRL" id="e29i0" d="M84,124 L84,632" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#29[0] → #6 · CTRL</title></path><path class="edge MEM" id="e29i1" d="M155,584 L155,589 Q155,594 150,594 L122,594 Q114,594 114,602 L114,632" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#29[1] → #24 · MEM</title></path><path class="edge DATA" id="e29i2" d="M307,584 L307,596 Q307,604 299,604 L152,604 Q144,604 144,612 L144,632" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#29[2] → #4 · DATA</title></path></g><g class="edge-hits"/><g class="parser" style="opacity: 1;"/><g class="nodes"><g class="node" id="n2" data-id="2" transform="translate(24,30)" style="opacity: 1;"><path class="box" d="M0,0H360V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="180" y="18"><tspan>Start</tspan><tspan class="node-id"> #2</tspan></text><text class="type" text-anchor="middle" y="35" x="180">[ Ctrl, MemBot, int]</text><title>#2 Start +[ Ctrl, MemBot, int] + +[0] → — ASSOC +[1] → — CTRL +[2] → — CTRL</title><circle class="port" cx="90" cy="-3" r="3" fill="white"/><circle class="port" cx="180" cy="-3" r="3" fill="white"/><circle class="port" cx="270" cy="-3" r="3" fill="white"/><text class="slot" x="90" y="-10" text-anchor="middle">0</text><text class="slot" x="180" y="-10" text-anchor="middle">1</text><text class="slot" x="270" y="-10" text-anchor="middle">2</text></g><g class="node" id="n3" data-id="3" transform="translate(307,736)" style="opacity: 1;"><path class="box" d="M0,0H72V26H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="36" y="17"><tspan>Stop</tspan><tspan class="node-id"> #3</tspan></text><text class="type" text-anchor="middle" y="35" x="36"/><title>#3 Stop +Bot + +[0] → #29 CTRL</title><circle class="port" cx="36" cy="0" r="3" fill="#536477"/><text class="slot" x="36" y="-7" text-anchor="middle">0</text></g><g class="node" id="n4" data-id="4" transform="translate(247,534)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Con</tspan><tspan class="node-id"> #4</tspan></text><text class="type" text-anchor="middle" y="35" x="60">0</text><title>#4 Con +0 + +[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n5" data-id="5" transform="translate(422,52)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Xctrl</tspan><tspan class="node-id"> #5</tspan></text><text class="type" text-anchor="middle" y="35" x="60">~Ctrl</text><title>#5 Xctrl +~Ctrl + +[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n6" data-id="6" transform="translate(24,74)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>$ctrl</tspan><tspan class="node-id"> #6/0</tspan></text><text class="type" text-anchor="middle" y="35" x="60">Ctrl</text><title>#6 $ctrl +Projection 0 of #2 +Ctrl + +[0] → #2 CTRL</title></g><g class="node" id="n7" data-id="7" transform="translate(144,74)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#dcecff"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>$mem</tspan><tspan class="node-id"> #7/1</tspan></text><text class="type" text-anchor="middle" y="35" x="60">MemBot</text><title>#7 $mem +Projection 1 of #2 +MemBot + +[0] → #2 MEM</title></g><g class="node" id="n8" data-id="8" transform="translate(264,74)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>arg</tspan><tspan class="node-id"> #8/2</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#8 arg +Projection 2 of #2 +int + +[0] → #2 DATA</title></g><g class="node" id="n12" data-id="12" transform="translate(410,178)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Con</tspan><tspan class="node-id"> #12</tspan></text><text class="type" text-anchor="middle" y="35" x="60">10</text><title>#12 Con +10 + +[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n13" data-id="13" transform="translate(269,178)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Con</tspan><tspan class="node-id"> #13</tspan></text><text class="type" text-anchor="middle" y="35" x="60">16</text><title>#13 Con +16 + +[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n14" data-id="14" transform="translate(117,178)" style="opacity: 1;"><path class="box" d="M10,0H110L120,10V34L110,44H10L0,34V10Z" fill="#dcecff"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>MemMerge</tspan><tspan class="node-id"> #14</tspan></text><text class="type" text-anchor="middle" y="35" x="60">MemBot</text><title>#14 MemMerge +MemBot + +[0] → — CTRL +[1] → — DATA +[2] → #7 MEM +[3] → #7 MEM</title><circle class="port" cx="24" cy="-3" r="3" fill="white"/><circle class="port" cx="48" cy="-3" r="3" fill="white"/><circle class="port" cx="72" cy="-3" r="3" fill="#536477"/><circle class="port" cx="96" cy="-3" r="3" fill="#536477"/><text class="slot" x="24" y="-10" text-anchor="middle">0</text><text class="slot" x="48" y="-10" text-anchor="middle">1</text><text class="slot" x="72" y="-10" text-anchor="middle">2</text><text class="slot" x="96" y="-10" text-anchor="middle">3</text></g><g class="node" id="n15" data-id="15" transform="translate(106,282)" style="opacity: 1;"><path class="box" d="M0,0H246V44H0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="123" y="18"><tspan>new_Pair</tspan><tspan class="node-id"> #15</tspan></text><text class="type" text-anchor="middle" y="35" x="123">[ *Pair {int !x; int !y; }, MemBot]</text><title>#15 new_Pair +[ *Pair {int !x; int !y; }, MemBot] + +[0] → #6 CTRL +[1] → #14 MEM +[2] → #13 DATA +[3] → #8 DATA +[4] → #12 DATA</title><circle class="port" cx="41" cy="-3" r="3" fill="#536477"/><circle class="port" cx="82" cy="-3" r="3" fill="#536477"/><circle class="port" cx="123" cy="-3" r="3" fill="#536477"/><circle class="port" cx="164" cy="-3" r="3" fill="#536477"/><circle class="port" cx="205" cy="-3" r="3" fill="#536477"/><text class="slot" x="41" y="-10" text-anchor="middle">0</text><text class="slot" x="82" y="-10" text-anchor="middle">1</text><text class="slot" x="123" y="-10" text-anchor="middle">2</text><text class="slot" x="164" y="-10" text-anchor="middle">3</text><text class="slot" x="205" y="-10" text-anchor="middle">4</text></g><g class="node" id="n16" data-id="16" transform="translate(106,326)" style="opacity: 1;"><path class="box" d="M0,0H126V44H0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="63" y="18"><tspan>Pair</tspan><tspan class="node-id"> #16/0</tspan></text><text class="type" text-anchor="middle" y="35" x="63">*Pair {int !x; int !y; }</text><title>#16 Pair +Projection 0 of #15 +*Pair {int !x; int !y; } + +[0] → #15 DATA</title></g><g class="node" id="n17" data-id="17" transform="translate(232,326)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#dcecff"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>$mem</tspan><tspan class="node-id"> #17/1</tspan></text><text class="type" text-anchor="middle" y="35" x="60">MemBot</text><title>#17 $mem +Projection 1 of #15 +MemBot + +[0] → #15 MEM</title></g><g class="node" id="n21" data-id="21" transform="translate(390,326)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Con</tspan><tspan class="node-id"> #21</tspan></text><text class="type" text-anchor="middle" y="35" x="60">8</text><title>#21 Con +8 + +[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n22" data-id="22" transform="translate(542,326)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Con</tspan><tspan class="node-id"> #22</tspan></text><text class="type" text-anchor="middle" y="35" x="60">99</text><title>#22 Con +99 + +[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n23" data-id="23" transform="translate(252,430)" style="opacity: 1;"><path class="box" d="M10,0H110L120,10V34L110,44H10L0,34V10Z" fill="#dcecff"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>st_y</tspan><tspan class="node-id"> #23</tspan></text><text class="type" text-anchor="middle" y="35" x="60">MEM#3:[10-99]</text><title>#23 st_y +MEM#3:[10-99] + +[0] → — CTRL +[1] → #17 MEM +[2] → #16 DATA +[3] → #21 DATA +[4] → #22 DATA</title><circle class="port" cx="20" cy="-3" r="3" fill="white"/><circle class="port" cx="40" cy="-3" r="3" fill="#536477"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><circle class="port" cx="100" cy="-3" r="3" fill="#536477"/><text class="slot" x="20" y="-10" text-anchor="middle">0</text><text class="slot" x="40" y="-10" text-anchor="middle">1</text><text class="slot" x="60" y="-10" text-anchor="middle">2</text><text class="slot" x="80" y="-10" text-anchor="middle">3</text><text class="slot" x="100" y="-10" text-anchor="middle">4</text></g><g class="node" id="n24" data-id="24" transform="translate(95,534)" style="opacity: 1;"><path class="box" d="M10,0H110L120,10V34L110,44H10L0,34V10Z" fill="#dcecff"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>MemMerge</tspan><tspan class="node-id"> #24</tspan></text><text class="type" text-anchor="middle" y="35" x="60">MemBot</text><title>#24 MemMerge +MemBot + +[0] → — CTRL +[1] → #7 MEM +[2] → #17 MEM +[3] → #23 MEM</title><circle class="port" cx="24" cy="-3" r="3" fill="white"/><circle class="port" cx="48" cy="-3" r="3" fill="#536477"/><circle class="port" cx="72" cy="-3" r="3" fill="#536477"/><circle class="port" cx="96" cy="-3" r="3" fill="#536477"/><text class="slot" x="24" y="-10" text-anchor="middle">0</text><text class="slot" x="48" y="-10" text-anchor="middle">1</text><text class="slot" x="72" y="-10" text-anchor="middle">2</text><text class="slot" x="96" y="-10" text-anchor="middle">3</text></g><g class="node" id="n29" data-id="29" transform="translate(54,638)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Return</tspan><tspan class="node-id"> #29</tspan></text><text class="type" text-anchor="middle" y="35" x="60">[ Ctrl, MemBot, 0]</text><title>#29 Return +[ Ctrl, MemBot, 0] + +[0] → #6 CTRL +[1] → #24 MEM +[2] → #4 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="#536477"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g></g><g class="region-heads" style="opacity: 1;"/><g class="shortcuts" style="opacity: 1;"/><g class="peep-ghosts" pointer-events="none"/></g></svg> diff --git a/docs/2026_REBASE/assets/arithmetic-final.json b/docs/2026_REBASE/assets/arithmetic-final.json new file mode 100644 index 00000000..8ac65d50 --- /dev/null +++ b/docs/2026_REBASE/assets/arithmetic-final.json @@ -0,0 +1,162 @@ +{ + "ver": 1, + "comp": "rebase-arithmetic", + "step": 50, + "roots": [ + 2, + 26 + ], + "scope": 0, + "nodes": [ + { + "id": 2, + "label": "Start", + "type": "[ Ctrl,IntBot]", + "kind": "CTRL", + "edges": [], + "proj": null + }, + { + "id": 3, + "label": "$ctrl", + "type": "Ctrl", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "CTRL", + "label": null + } + ], + "proj": { + "par": 2, + "idx": 0 + } + }, + { + "id": 4, + "label": "arg", + "type": "IntBot", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "DATA", + "label": null + } + ], + "proj": { + "par": 2, + "idx": 1 + } + }, + { + "id": 19, + "label": "Con", + "type": "2", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 20, + "label": "Mul", + "type": "IntBot", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 4, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 19, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 24, + "label": "Con", + "type": "6", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 25, + "label": "Add", + "type": "IntBot", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 20, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 24, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 26, + "label": "Return", + "type": "[ Ctrl,IntBot]", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 3, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 25, + "role": "DATA", + "label": null + } + ], + "proj": null + } + ], + "groups": [] +} diff --git a/docs/2026_REBASE/assets/arithmetic-final.svg b/docs/2026_REBASE/assets/arithmetic-final.svg new file mode 100644 index 00000000..ae8452e1 --- /dev/null +++ b/docs/2026_REBASE/assets/arithmetic-final.svg @@ -0,0 +1,94 @@ +<svg aria-label="Compiler graph" width="446" height="454" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 446 454" style="font-family: sans-serif;"><style> + html, body { height:100%; margin:0; font-family:sans-serif; } + .viewer { height:100%; display:grid; grid-template-rows:auto minmax(0,1fr) auto; } + .source { padding:8px; border-bottom:1px solid #ccc; } + #program { width:min(600px,80vw); vertical-align:middle; } + #status { margin-top:4px; } + #graph { min-height:0; overflow:hidden; position:relative; background:#fafbfc; } + #elk { width:100%; height:100%; } + #graph svg { display:block; } + .tools { display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-top:8px; font-size:12px; } + .hint { color:#616c78; } + .ctrl { color:#b63838; } .mem { color:#2867b2; } .data { color:#536477; } + .edge { fill:none; stroke-width:1.5; } + .edge.CTRL { stroke-width:2; } + .edge.ASSOC { stroke-dasharray:4 4; } + .edge.PARSER { stroke-dasharray:5 4; } + .parser rect { fill:#f6f0ff; stroke:#7956a5; stroke-width:1.5; stroke-dasharray:5 4; } + .edge.selected { stroke-width:3.5; } + .edge.bundle { stroke-width:4; } + .edge.bundle.selected { stroke-width:6; } + .edge-hit { fill:none; stroke:transparent; stroke-width:12; vector-effect:non-scaling-stroke; pointer-events:stroke; cursor:pointer; } + .edge-jump { fill:transparent; pointer-events:all; cursor:pointer; } + .node { cursor:pointer; } + .box { stroke:#758191; stroke-width:1; } + .node.held .box { stroke-dasharray:5 3; } + .node.near .box { stroke:#c18221; stroke-width:2; } + .node.focus .box { stroke:#9c4900; stroke-width:3; } + .node.selected .box { stroke:#1569b9; stroke-width:3; } + .node.folded .box { stroke-width:4; } + .node.folding .box { fill:#f4ccd7; } + .fold-tag { font-size:9px; font-weight:700; fill:#963751; } + .peep-area { fill:#fff3d9; fill-opacity:.8; stroke:#c18221; stroke-width:2; pointer-events:none; } + .node.peep-edit .box { stroke:#9c4900; stroke-width:3; } + .node.error .box { stroke:#b42318; stroke-width:4; } + #event.error { color:#b42318; font-weight:600; white-space:pre-wrap; overflow-wrap:anywhere; } + .peep-ghosts { pointer-events:none; } + .region-box { stroke:#9da9b8; stroke-width:1.5; } + .fold-btn { cursor:pointer; } + .fold-btn rect { fill:white; stroke:#596674; } + .fold-btn text { font-size:14px; fill:#152330; } + .fold-btn:focus rect { stroke:#1569b9; stroke-width:2; } + .shortcut { cursor:pointer; } + .shortcut path { fill:none; stroke-width:1.5; } + .shortcut rect { fill:#fff8ec; stroke:#b63838; stroke-dasharray:3 2; } + .shortcut text { font-size:11px; fill:#783030; } + .shortcut.selected rect, .shortcut:focus rect { stroke-width:2.5; } + .label { font-size:12px; fill:#152330; font-weight:600; } + .node-id { font-size:10px; fill:#596674; font-weight:400; } + .type { font-size:11px; fill:#455768; } + .port { stroke:#536477; stroke-width:1; } + .row { stroke:#b6afcf; stroke-width:1; } + .bind { font-size:12px; fill:#152330; } + .slot { font-size:10px; fill:#364352; paint-order:stroke; stroke:#fafbfc; stroke-width:3; } + #detail { position:absolute; top:8px; right:8px; margin:0; padding:12px; max-width:320px; + max-height:45%; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; + background:#fffffff2; border:1px solid #bac5d0; border-radius:4px; font-size:12px; } + .controls { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:6px; padding:6px; } + .button { color:white; background:black; font-size:20px; min-width:30px; } + .button:disabled { background:grey; } + .count { font-size:20px; min-width:35px; text-align:center; } + #N { width:6ch; } + #scrub { width:clamp(120px,35vw,600px); } + </style><defs><marker id="arrow-CTRL" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#b63838"/></marker><marker id="arrow-DATA" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#536477"/></marker><marker id="arrow-MEM" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#2867b2"/></marker><marker id="arrow-ASSOC" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#9396a3"/></marker><marker id="arrow-PARSER" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#7956a5"/></marker></defs><rect width="100%" height="100%" fill="rgb(250, 251, 252)"/><g><g class="regions" style="opacity: 1;"/><rect class="peep-area" rx="36" style="opacity: 0;"/><g class="edges"><path class="edge ASSOC" id="e19i0" d="M267,46 C267,70 362,41 362,65" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#19[0] → #2 · ASSOC</title></path><path class="edge DATA" id="e20i1" d="M204,118 L204,166" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#20[1] → #4 · DATA</title></path><path class="edge DATA" id="e20i2" d="M362,118 L362,123 Q362,128 357,128 L242,128 Q234,128 234,136 L234,166" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#20[2] → #19 · DATA</title></path><path class="edge ASSOC" id="e24i0" d="M267,46 C267,70 356,145 356,169" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#24[0] → #2 · ASSOC</title></path><path class="edge DATA" id="e25i1" d="M204,222 L204,270" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#25[1] → #20 · DATA</title></path><path class="edge DATA" id="e25i2" d="M356,222 L356,227 Q356,232 351,232 L242,232 Q234,232 234,240 L234,270" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#25[2] → #24 · DATA</title></path><path class="edge CTRL" id="e26i0" d="M84,118 L84,374" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#26[0] → #3 · CTRL</title></path><path class="edge DATA" id="e26i1" d="M204,326 L204,331 Q204,336 199,336 L132,336 Q124,336 124,344 L124,374" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#26[1] → #25 · DATA</title></path></g><g class="edge-hits"/><g class="parser" style="opacity: 1;"/><g class="nodes"><g class="node" id="n2" data-id="2" transform="translate(24,24)" style="opacity: 1;"><path class="box" d="M0,0H240V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="120" y="18"><tspan>Start</tspan><tspan class="node-id"> #2</tspan></text><text class="type" text-anchor="middle" y="35" x="120">[ Ctrl,IntBot]</text><title>#2 Start +[ Ctrl,IntBot] + +</title></g><g class="node" id="n3" data-id="3" transform="translate(24,68)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>$ctrl</tspan><tspan class="node-id"> #3/0</tspan></text><text class="type" text-anchor="middle" y="35" x="60">Ctrl</text><title>#3 $ctrl +Projection 0 of #2 +Ctrl + +[0] → #2 CTRL</title></g><g class="node" id="n4" data-id="4" transform="translate(144,68)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>arg</tspan><tspan class="node-id"> #4/1</tspan></text><text class="type" text-anchor="middle" y="35" x="60">IntBot</text><title>#4 arg +Projection 1 of #2 +IntBot + +[0] → #2 DATA</title></g><g class="node" id="n19" data-id="19" transform="translate(302,68)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Con</tspan><tspan class="node-id"> #19</tspan></text><text class="type" text-anchor="middle" y="35" x="60">2</text><title>#19 Con +2 + +[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n20" data-id="20" transform="translate(144,172)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Mul</tspan><tspan class="node-id"> #20</tspan></text><text class="type" text-anchor="middle" y="35" x="60">IntBot</text><title>#20 Mul +IntBot + +[0] → — CTRL +[1] → #4 DATA +[2] → #19 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n24" data-id="24" transform="translate(296,172)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Con</tspan><tspan class="node-id"> #24</tspan></text><text class="type" text-anchor="middle" y="35" x="60">6</text><title>#24 Con +6 + +[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n25" data-id="25" transform="translate(144,276)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Add</tspan><tspan class="node-id"> #25</tspan></text><text class="type" text-anchor="middle" y="35" x="60">IntBot</text><title>#25 Add +IntBot + +[0] → — CTRL +[1] → #20 DATA +[2] → #24 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n26" data-id="26" transform="translate(44,380)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Return</tspan><tspan class="node-id"> #26</tspan></text><text class="type" text-anchor="middle" y="35" x="60">[ Ctrl,IntBot]</text><title>#26 Return +[ Ctrl,IntBot] + +[0] → #3 CTRL +[1] → #25 DATA</title><circle class="port" cx="40" cy="-3" r="3" fill="#536477"/><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><text class="slot" x="40" y="-10" text-anchor="middle">0</text><text class="slot" x="80" y="-10" text-anchor="middle">1</text></g></g><g class="region-heads" style="opacity: 1;"/><g class="shortcuts" style="opacity: 1;"/><g class="peep-ghosts" pointer-events="none"/></g></svg> diff --git a/docs/2026_REBASE/assets/backend-encoded.txt b/docs/2026_REBASE/assets/backend-encoded.txt new file mode 100644 index 00000000..ec1e9236 --- /dev/null +++ b/docs/2026_REBASE/assets/backend-encoded.txt @@ -0,0 +1,14 @@ + +--- { *Box {int !x; } int -> int #0}--------------------------- + arg:rsi,box:rdi +0000 488bc6 mov rax = rsi // def/empty1 #0 +0003 4883f800 test rax +0007 7d03 j>= L3 // L4 +L4: +0009 48f7d8 neg rax +L12: +L3: + :rax +000c 480107 add8 [rdi] += rax +000f c3 ret +--- --------------------------- diff --git a/docs/2026_REBASE/assets/backend-registers.txt b/docs/2026_REBASE/assets/backend-registers.txt new file mode 100644 index 00000000..d833b574 --- /dev/null +++ b/docs/2026_REBASE/assets/backend-registers.txt @@ -0,0 +1,22 @@ + +--- { *Box {int !x; } int -> int #0}--------------------------- + arg rsi + box rdi + r15 // r15 + r14 // r14 + r13 // r13 + r12 // r12 + rbp // rbp + rbx // rbx +0000 mov rax = rsi // def/empty1 #0 +0000 test rax +0000 j< L4 // L12 +L12: +0000 ?? JMP L3 +L4: +0001 neg rax +L3: + rax = phi( N20,N33 ) +0001 add8 [rdi] += rax +0001 ret rax [stk#33] rbx rbp r12 r13 r14 r15 +--- --------------------------- diff --git a/docs/2026_REBASE/assets/backend-selected.txt b/docs/2026_REBASE/assets/backend-selected.txt new file mode 100644 index 00000000..d09adc6b --- /dev/null +++ b/docs/2026_REBASE/assets/backend-selected.txt @@ -0,0 +1,30 @@ + 7 Start ____ ____ ____ [[ 6 11 15 18 22 ]] [ Ctrl, MemBot, int] + 11 Con 7 [[ 10 ]] int + 15 Con 7 [[ 14 ]] MemBot + 18 Con 7 [[ 17 ]] *Box + 22 Con 7 [[ 21 ]] $[ALL] + +--- { *Box {int !x; } int -> int #0}---------------------- + + 6 $fun0 ____ 7 [[ 5 10 14 17 21 ]] Ctrl + 10 arg 6 11 [[ 8 20 19 ]] int + 14 $mem 6 15 [[ 13 16 ]] MemBot + 17 box 6 18 [[ 16 ]] *Box + 21 $rpc 6 22 [[ 2 ]] $[ALL] + 8 test ____ 10 [[ 5 ]] bool + 20 neg ____ 10 [[ 19 ]] int + + 5 j< 6 8 [[ 4 12 ]] [ Ctrl, Ctrl] + + 12 False 5 [[ 3 ]] Ctrl + + 4 True 5 [[ 3 ]] Ctrl + + 3 Region ____ 4 12 [[ 2 19 ]] Ctrl + 19 Phi_ 3 20 10 [[ 16 2 ]] int + 16 add8 ____ 14 17 ____ 19 [[ 13 ]] #2:Bot + 13 MemMerg ____ 14 16 [[ 2 ]] MemBot + + 2 Return 3 13 19 21 [[ 1 ]] [ Ctrl, MemBot, int] +--- ---------------------- + 1 Stop 2 [[ ]] Bot diff --git a/docs/2026_REBASE/assets/cliff-click-2020.jpeg b/docs/2026_REBASE/assets/cliff-click-2020.jpeg Binary files differnew file mode 100644 index 00000000..8e1fd801 --- /dev/null +++ b/docs/2026_REBASE/assets/cliff-click-2020.jpeg diff --git a/docs/2026_REBASE/assets/coffee-compiler-club-still.gif b/docs/2026_REBASE/assets/coffee-compiler-club-still.gif Binary files differnew file mode 100644 index 00000000..16616ab9 --- /dev/null +++ b/docs/2026_REBASE/assets/coffee-compiler-club-still.gif diff --git a/docs/2026_REBASE/assets/coffee-compiler-club.gif b/docs/2026_REBASE/assets/coffee-compiler-club.gif Binary files differnew file mode 100644 index 00000000..b3d7e292 --- /dev/null +++ b/docs/2026_REBASE/assets/coffee-compiler-club.gif diff --git a/docs/2026_REBASE/assets/control-final.json b/docs/2026_REBASE/assets/control-final.json new file mode 100644 index 00000000..6161328b --- /dev/null +++ b/docs/2026_REBASE/assets/control-final.json @@ -0,0 +1,588 @@ +{ + "ver": 1, + "comp": "rebase-control", + "step": 64, + "roots": [ + 2, + 3 + ], + "scope": 0, + "nodes": [ + { + "id": 2, + "label": "Start", + "type": "[Ctrl,IntBot]", + "kind": "CTRL", + "edges": [], + "proj": null + }, + { + "id": 3, + "label": "Stop", + "type": "Bot", + "kind": "STOP", + "edges": [ + { + "idx": 0, + "def": 32, + "role": "CTRL", + "label": null + } + ], + "proj": null + }, + { + "id": 4, + "label": "$ctrl", + "type": "Ctrl", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "CTRL", + "label": null + } + ], + "proj": { + "par": 2, + "idx": 0 + } + }, + { + "id": 5, + "label": "arg", + "type": "IntBot", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "DATA", + "label": null + } + ], + "proj": { + "par": 2, + "idx": 1 + } + }, + { + "id": 6, + "label": "Con", + "type": "0", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 7, + "label": "LT", + "type": "IntBot", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 5, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 6, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 8, + "label": "If", + "type": "[Ctrl,Ctrl]", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 4, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 7, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 9, + "label": "True", + "type": "Ctrl", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 8, + "role": "CTRL", + "label": null + } + ], + "proj": { + "par": 8, + "idx": 0 + } + }, + { + "id": 10, + "label": "False", + "type": "Ctrl", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 8, + "role": "CTRL", + "label": null + } + ], + "proj": { + "par": 8, + "idx": 1 + } + }, + { + "id": 12, + "label": "Minus", + "type": "IntBot", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 5, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 13, + "label": "Region", + "type": "Ctrl", + "kind": "REGION", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 9, + "role": "CTRL", + "label": null + }, + { + "idx": 2, + "def": 10, + "role": "CTRL", + "label": null + } + ], + "proj": null + }, + { + "id": 14, + "label": "Phi_n", + "type": "IntBot", + "kind": "PHI", + "edges": [ + { + "idx": 0, + "def": 13, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 12, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 5, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 15, + "label": "Con", + "type": "0", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 16, + "label": "Con", + "type": "0", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 17, + "label": "Loop", + "type": "Ctrl", + "kind": "LOOP", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 13, + "role": "CTRL", + "label": null + }, + { + "idx": 2, + "def": 23, + "role": "CTRL", + "label": null + } + ], + "proj": null + }, + { + "id": 19, + "label": "Phi_i", + "type": "IntBot", + "kind": "PHI", + "edges": [ + { + "idx": 0, + "def": 17, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 16, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 27, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 21, + "label": "LT", + "type": "IntBot", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 19, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 14, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 22, + "label": "If", + "type": "[Ctrl,Ctrl]", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 17, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 21, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 23, + "label": "True", + "type": "Ctrl", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 22, + "role": "CTRL", + "label": null + } + ], + "proj": { + "par": 22, + "idx": 0 + } + }, + { + "id": 24, + "label": "False", + "type": "Ctrl", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 22, + "role": "CTRL", + "label": null + } + ], + "proj": { + "par": 22, + "idx": 1 + } + }, + { + "id": 26, + "label": "Con", + "type": "1", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 27, + "label": "Add", + "type": "IntBot", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 19, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 26, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 28, + "label": "Phi_sum", + "type": "IntBot", + "kind": "PHI", + "edges": [ + { + "idx": 0, + "def": 17, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 15, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 31, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 30, + "label": "Add", + "type": "IntBot", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 28, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 19, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 31, + "label": "Add", + "type": "IntBot", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 30, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 26, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 32, + "label": "Return", + "type": "[Ctrl,IntBot]", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 24, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 28, + "role": "DATA", + "label": null + } + ], + "proj": null + } + ], + "groups": [ + { + "id": 8, + "par": 0, + "nodes": [ + 7, + 8, + 9, + 10, + 12, + 13, + 14 + ] + }, + { + "id": 17, + "par": 0, + "nodes": [ + 17, + 19, + 21, + 22, + 23, + 24, + 27, + 28, + 30, + 31 + ] + } + ] +} diff --git a/docs/2026_REBASE/assets/control-final.svg b/docs/2026_REBASE/assets/control-final.svg new file mode 100644 index 00000000..32e933aa --- /dev/null +++ b/docs/2026_REBASE/assets/control-final.svg @@ -0,0 +1,171 @@ +<svg aria-label="Compiler graph" width="937" height="1260" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 937 1260" style="font-family: sans-serif;"><style> + html, body { height:100%; margin:0; font-family:sans-serif; } + .viewer { height:100%; display:grid; grid-template-rows:auto minmax(0,1fr) auto; } + .source { padding:8px; border-bottom:1px solid #ccc; } + #program { width:min(600px,80vw); vertical-align:middle; } + #status { margin-top:4px; } + #graph { min-height:0; overflow:hidden; position:relative; background:#fafbfc; } + #elk { width:100%; height:100%; } + #graph svg { display:block; } + .tools { display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-top:8px; font-size:12px; } + .hint { color:#616c78; } + .ctrl { color:#b63838; } .mem { color:#2867b2; } .data { color:#536477; } + .edge { fill:none; stroke-width:1.5; } + .edge.CTRL { stroke-width:2; } + .edge.ASSOC { stroke-dasharray:4 4; } + .edge.PARSER { stroke-dasharray:5 4; } + .parser rect { fill:#f6f0ff; stroke:#7956a5; stroke-width:1.5; stroke-dasharray:5 4; } + .edge.selected { stroke-width:3.5; } + .edge.bundle { stroke-width:4; } + .edge.bundle.selected { stroke-width:6; } + .edge-hit { fill:none; stroke:transparent; stroke-width:12; vector-effect:non-scaling-stroke; pointer-events:stroke; cursor:pointer; } + .edge-jump { fill:transparent; pointer-events:all; cursor:pointer; } + .node { cursor:pointer; } + .box { stroke:#758191; stroke-width:1; } + .node.held .box { stroke-dasharray:5 3; } + .node.near .box { stroke:#c18221; stroke-width:2; } + .node.focus .box { stroke:#9c4900; stroke-width:3; } + .node.selected .box { stroke:#1569b9; stroke-width:3; } + .node.folded .box { stroke-width:4; } + .node.folding .box { fill:#f4ccd7; } + .fold-tag { font-size:9px; font-weight:700; fill:#963751; } + .peep-area { fill:#fff3d9; fill-opacity:.8; stroke:#c18221; stroke-width:2; pointer-events:none; } + .node.peep-edit .box { stroke:#9c4900; stroke-width:3; } + .node.error .box { stroke:#b42318; stroke-width:4; } + #event.error { color:#b42318; font-weight:600; white-space:pre-wrap; overflow-wrap:anywhere; } + .peep-ghosts { pointer-events:none; } + .region-box { stroke:#9da9b8; stroke-width:1.5; } + .fold-btn { cursor:pointer; } + .fold-btn rect { fill:white; stroke:#596674; } + .fold-btn text { font-size:14px; fill:#152330; } + .fold-btn:focus rect { stroke:#1569b9; stroke-width:2; } + .shortcut { cursor:pointer; } + .shortcut path { fill:none; stroke-width:1.5; } + .shortcut rect { fill:#fff8ec; stroke:#b63838; stroke-dasharray:3 2; } + .shortcut text { font-size:11px; fill:#783030; } + .shortcut.selected rect, .shortcut:focus rect { stroke-width:2.5; } + .label { font-size:12px; fill:#152330; font-weight:600; } + .node-id { font-size:10px; fill:#596674; font-weight:400; } + .type { font-size:11px; fill:#455768; } + .port { stroke:#536477; stroke-width:1; } + .row { stroke:#b6afcf; stroke-width:1; } + .bind { font-size:12px; fill:#152330; } + .slot { font-size:10px; fill:#364352; paint-order:stroke; stroke:#fafbfc; stroke-width:3; } + #detail { position:absolute; top:8px; right:8px; margin:0; padding:12px; max-width:320px; + max-height:45%; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; + background:#fffffff2; border:1px solid #bac5d0; border-radius:4px; font-size:12px; } + .controls { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:6px; padding:6px; } + .button { color:white; background:black; font-size:20px; min-width:30px; } + .button:disabled { background:grey; } + .count { font-size:20px; min-width:35px; text-align:center; } + #N { width:6ch; } + #scrub { width:clamp(120px,35vw,600px); } + </style><defs><marker id="arrow-CTRL" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#b63838"/></marker><marker id="arrow-DATA" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#536477"/></marker><marker id="arrow-MEM" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#2867b2"/></marker><marker id="arrow-ASSOC" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#9396a3"/></marker><marker id="arrow-PARSER" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#7956a5"/></marker></defs><rect width="100%" height="100%" fill="rgb(250, 251, 252)"/><g><g class="regions" style="opacity: 1;"><g class="region" transform="translate(24,171)"><rect class="region-box" rx="8" width="433" height="374" fill="#f2f7ef"/></g><g class="region" transform="translate(72,603)"><rect class="region-box" rx="8" width="613" height="450" fill="#f1f6fc"/></g></g><rect class="peep-area" rx="36" style="opacity: 0;"/><g class="edges"><path class="edge CTRL" id="e3i0" d="M306,1159 C306,1183 468.5,1186 468.5,1210" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#3[0] → #32 · CTRL</title></path><path class="edge ASSOC" id="e6i0" d="M299,46 C299,70 394,41 394,65" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#6[0] → #2 · ASSOC</title></path><path class="edge DATA" id="e7i1" d="M236,118 L236,130 Q236,138 228,138 L204,138 Q196,138 196,146 L196,205" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#7[1] → #5 · DATA</title></path><path class="edge DATA" id="e7i2" d="M394,118 L394,123 Q394,128 389,128 L234,128 Q226,128 226,136 L226,205" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#7[2] → #6 · DATA</title></path><path class="edge CTRL" id="e8i0" d="M116,118 L116,309" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#8[0] → #4 · CTRL</title></path><path class="edge DATA" id="e8i1" d="M196,261 L196,309" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#8[1] → #7 · DATA</title></path><path class="edge DATA" id="e12i1" d="M236,118 L236,130 Q236,138 244,138 L386,138 Q394,138 394,146 L394,331" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#12[1] → #5 · DATA</title></path><path class="edge CTRL" id="e13i1" d="M96,409 L96,414 Q96,419 101,419 L178,419 Q186,419 186,427 L186,457" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#13[1] → #9 · CTRL</title></path><path class="edge CTRL" id="e13i2" d="M216,409 L216,457" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#13[2] → #10 · CTRL</title></path><path class="edge DATA" id="e14i1" d="M374,387 L374,411 Q374,419 366,419 L326,419 Q318,419 318,427 L318,457" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#14[1] → #12 · DATA</title></path><path class="edge DATA" id="e14i2" d="M236,118 L236,130 Q236,138 244,138 L436,138 Q444,138 444,146 L444,421 Q444,429 436,429 L366,429 Q358,429 358,437 L358,457" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#14[2] → #5 · DATA</title></path><path class="edge ASSOC" id="e15i0" d="M299,46 C299,70 701,473 701,497" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#15[0] → #2 · ASSOC</title></path><path class="edge ASSOC" id="e16i0" d="M299,46 C299,70 549,473 549,497" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#16[0] → #2 · ASSOC</title></path><path class="edge CTRL" id="e17i1" d="M186,513 L186,701" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#17[1] → #13 · CTRL</title></path><path class="edge CTRL" id="e17i2" d="M166,1008 L166,1013 Q166,1018 171,1018 L665,1018 Q673,1018 673,1010 L673,684 Q673,676 665,676 L224,676 Q216,676 216,684 L216,704" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#17[2] → #23 · CTRL</title></path><path class="edge DATA" id="e19i1" d="M549,550 L549,555 Q549,560 544,560 L326,560 Q318,560 318,568 L318,701" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#19[1] → #16 · DATA</title></path><path class="edge DATA" id="e19i2" d="M397,860 L397,865 Q397,870 402,870 L655,870 Q663,870 663,862 L663,692 Q663,684 655,684 L366,684 Q358,684 358,692 L358,704" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#19[2] → #27 · DATA</title></path><path class="edge DATA" id="e21i1" d="M338,757 L338,779 Q338,787 330,787 L265,787 Q257,787 257,795 L257,807" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#21[1] → #19 · DATA</title></path><path class="edge DATA" id="e21i2" d="M338,513 L338,518 Q338,523 333,523 L184,523 Q176,523 176,531 L176,552 Q176,560 168,560 L113,560 Q105,560 105,568 L105,789 Q105,797 113,797 L282,797 Q287,797 287,802 L287,807" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#21[2] → #14 · DATA</title></path><path class="edge CTRL" id="e22i0" d="M186,757 L186,911" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#22[0] → #17 · CTRL</title></path><path class="edge DATA" id="e22i1" d="M257,863 L257,868.5 Q257,873 261.5,873 L261.5,873 Q266,873 266,877.5 L266,911" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#22[1] → #21 · DATA</title></path><path class="edge ASSOC" id="e26i0" d="M299,46 C299,70 853,473 853,497" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#26[0] → #2 · ASSOC</title></path><path class="edge DATA" id="e27i1" d="M338,757 L338,779 Q338,787 346,787 L389,787 Q397,787 397,795 L397,807" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#27[1] → #19 · DATA</title></path><path class="edge DATA" id="e27i2" d="M853,550 L853,572 Q853,580 845,580 L568,580 Q560,580 560,588 L560,759 Q560,767 552,767 L435,767 Q427,767 427,775 L427,807" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#27[2] → #26 · DATA</title></path><path class="edge DATA" id="e28i1" d="M701,550 L701,562 Q701,570 693,570 L478,570 Q470,570 470,578 L470,701" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#28[1] → #15 · DATA</title></path><path class="edge DATA" id="e28i2" d="M549,964 L549,969 Q549,974 554,974 L645,974 Q653,974 653,966 L653,700 Q653,692 645,692 L516,692 Q510,692 510,698 L510,704" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#28[2] → #31 · DATA</title></path><path class="edge DATA" id="e30i1" d="M490,757 L490,769 Q490,777 498,777 L541,777 Q549,777 549,785 L549,807" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#30[1] → #28 · DATA</title></path><path class="edge DATA" id="e30i2" d="M338,757 L338,779 Q338,787 346,787 L571,787 Q579,787 579,795 L579,807" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#30[2] → #19 · DATA</title></path><path class="edge DATA" id="e31i1" d="M549,863 L549,911" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#31[1] → #30 · DATA</title></path><path class="edge DATA" id="e31i2" d="M853,550 L853,572 Q853,580 845,580 L627,580 Q619,580 619,588 L619,865 Q619,873 611,873 L587,873 Q579,873 579,881 L579,911" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#31[2] → #26 · DATA</title></path><path class="edge CTRL" id="e32i0" d="M286,1011 L286,1106" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#32[0] → #24 · CTRL</title></path><path class="edge DATA" id="e32i1" d="M490,757 L490,769 Q490,777 498,777 L622,777 Q630,777 630,785 L630,1060 Q630,1068 622,1068 L334,1068 Q326,1068 326,1076 L326,1106" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#32[1] → #28 · DATA</title></path></g><g class="edge-hits"/><g class="parser" style="opacity: 1;"/><g class="nodes"><g class="node" id="n2" data-id="2" transform="translate(56,24)" style="opacity: 1;"><path class="box" d="M0,0H240V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="120" y="18"><tspan>Start</tspan><tspan class="node-id"> #2</tspan></text><text class="type" text-anchor="middle" y="35" x="120">[Ctrl,IntBot]</text><title>#2 Start +[Ctrl,IntBot] + +</title></g><g class="node" id="n3" data-id="3" transform="translate(432.5,1210)" style="opacity: 1;"><path class="box" d="M0,0H72V26H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="36" y="17"><tspan>Stop</tspan><tspan class="node-id"> #3</tspan></text><text class="type" text-anchor="middle" y="35" x="36"/><title>#3 Stop +Bot + +[0] → #32 CTRL</title><circle class="port" cx="36" cy="0" r="3" fill="#536477"/><text class="slot" x="36" y="-7" text-anchor="middle">0</text></g><g class="node" id="n4" data-id="4" transform="translate(56,68)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>$ctrl</tspan><tspan class="node-id"> #4/0</tspan></text><text class="type" text-anchor="middle" y="35" x="60">Ctrl</text><title>#4 $ctrl +Projection 0 of #2 +Ctrl + +[0] → #2 CTRL</title></g><g class="node" id="n5" data-id="5" transform="translate(176,68)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>arg</tspan><tspan class="node-id"> #5/1</tspan></text><text class="type" text-anchor="middle" y="35" x="60">IntBot</text><title>#5 arg +Projection 1 of #2 +IntBot + +[0] → #2 DATA</title></g><g class="node" id="n6" data-id="6" transform="translate(334,68)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Con</tspan><tspan class="node-id"> #6</tspan></text><text class="type" text-anchor="middle" y="35" x="60">0</text><title>#6 Con +0 + +[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n7" data-id="7" transform="translate(136,211)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>LT</tspan><tspan class="node-id"> #7</tspan></text><text class="type" text-anchor="middle" y="35" x="60">IntBot</text><title>#7 LT +IntBot + +[0] → — CTRL +[1] → #5 DATA +[2] → #6 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n8" data-id="8" transform="translate(36,315)" style="opacity: 1;"><path class="box" d="M0,0H240V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="120" y="18"><tspan>If</tspan><tspan class="node-id"> #8</tspan></text><text class="type" text-anchor="middle" y="35" x="120">[Ctrl,Ctrl]</text><title>#8 If +[Ctrl,Ctrl] + +[0] → #4 CTRL +[1] → #7 DATA</title><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><circle class="port" cx="160" cy="-3" r="3" fill="#536477"/><text class="slot" x="80" y="-10" text-anchor="middle">0</text><text class="slot" x="160" y="-10" text-anchor="middle">1</text></g><g class="node" id="n9" data-id="9" transform="translate(36,359)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>True</tspan><tspan class="node-id"> #9/0</tspan></text><text class="type" text-anchor="middle" y="35" x="60">Ctrl</text><title>#9 True +Projection 0 of #8 +Ctrl + +[0] → #8 CTRL</title></g><g class="node" id="n10" data-id="10" transform="translate(156,359)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>False</tspan><tspan class="node-id"> #10/1</tspan></text><text class="type" text-anchor="middle" y="35" x="60">Ctrl</text><title>#10 False +Projection 1 of #8 +Ctrl + +[0] → #8 CTRL</title></g><g class="node" id="n12" data-id="12" transform="translate(314,337)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Minus</tspan><tspan class="node-id"> #12</tspan></text><text class="type" text-anchor="middle" y="35" x="60">IntBot</text><title>#12 Minus +IntBot + +[0] → — CTRL +[1] → #5 DATA</title><circle class="port" cx="40" cy="-3" r="3" fill="white"/><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><text class="slot" x="40" y="-10" text-anchor="middle">0</text><text class="slot" x="80" y="-10" text-anchor="middle">1</text></g><g class="node" id="n13" data-id="13" transform="translate(126,463)" style="opacity: 1;"><path class="box" d="M12,0H108L120,44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Region</tspan><tspan class="node-id"> #13</tspan></text><text class="type" text-anchor="middle" y="35" x="60">Ctrl</text><title>#13 Region +Ctrl + +[0] → — ASSOC +[1] → #9 CTRL +[2] → #10 CTRL</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n14" data-id="14" transform="translate(278,463)" style="opacity: 1;"><path class="box" d="M12,0H108L120,22L108,44H12L0,22Z" fill="#f5e4fa"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Phi_n</tspan><tspan class="node-id"> #14</tspan></text><text class="type" text-anchor="middle" y="35" x="60">IntBot</text><title>#14 Phi_n +IntBot + +[0] → #13 ASSOC +[1] → #12 DATA +[2] → #5 DATA</title><circle class="port" cx="-3" cy="22" r="3" fill="#536477"/><circle class="port" cx="40" cy="-3" r="3" fill="#536477"/><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><path class="reg" fill="none" stroke="#b63838" d="M-3,22H-18m4,-3l-4,3l4,3"><title>[0] → #13</title></path><text class="slot" x="-10" y="15" text-anchor="middle">0</text><text class="slot" x="40" y="-10" text-anchor="middle">1</text><text class="slot" x="80" y="-10" text-anchor="middle">2</text></g><g class="node" id="n15" data-id="15" transform="translate(641,500)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Con</tspan><tspan class="node-id"> #15</tspan></text><text class="type" text-anchor="middle" y="35" x="60">0</text><title>#15 Con +0 + +[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n16" data-id="16" transform="translate(489,500)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Con</tspan><tspan class="node-id"> #16</tspan></text><text class="type" text-anchor="middle" y="35" x="60">0</text><title>#16 Con +0 + +[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n17" data-id="17" transform="translate(126,707)" style="opacity: 1;"><path class="box" d="M20,0H100Q120,0 120,20V24Q120,44 100,44H20Q0,44 0,24V20Q0,0 20,0Z" fill="#ffe0ab"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Loop</tspan><tspan class="node-id"> #17</tspan></text><text class="type" text-anchor="middle" y="35" x="60">Ctrl</text><title>#17 Loop +Ctrl + +[0] → — ASSOC +[1] → #13 CTRL +[2] → #23 CTRL</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n19" data-id="19" transform="translate(278,707)" style="opacity: 1;"><path class="box" d="M12,0H108L120,22L108,44H12L0,22Z" fill="#f5e4fa"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Phi_i</tspan><tspan class="node-id"> #19</tspan></text><text class="type" text-anchor="middle" y="35" x="60">IntBot</text><title>#19 Phi_i +IntBot + +[0] → #17 ASSOC +[1] → #16 DATA +[2] → #27 DATA</title><circle class="port" cx="-3" cy="22" r="3" fill="#536477"/><circle class="port" cx="40" cy="-3" r="3" fill="#536477"/><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><path class="reg" fill="none" stroke="#b63838" d="M-3,22H-18m4,-3l-4,3l4,3"><title>[0] → #17</title></path><text class="slot" x="-10" y="15" text-anchor="middle">0</text><text class="slot" x="40" y="-10" text-anchor="middle">1</text><text class="slot" x="80" y="-10" text-anchor="middle">2</text></g><g class="node" id="n21" data-id="21" transform="translate(197,813)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>LT</tspan><tspan class="node-id"> #21</tspan></text><text class="type" text-anchor="middle" y="35" x="60">IntBot</text><title>#21 LT +IntBot + +[0] → — CTRL +[1] → #19 DATA +[2] → #14 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n22" data-id="22" transform="translate(106,917)" style="opacity: 1;"><path class="box" d="M0,0H240V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="120" y="18"><tspan>If</tspan><tspan class="node-id"> #22</tspan></text><text class="type" text-anchor="middle" y="35" x="120">[Ctrl,Ctrl]</text><title>#22 If +[Ctrl,Ctrl] + +[0] → #17 CTRL +[1] → #21 DATA</title><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><circle class="port" cx="160" cy="-3" r="3" fill="#536477"/><text class="slot" x="80" y="-10" text-anchor="middle">0</text><text class="slot" x="160" y="-10" text-anchor="middle">1</text></g><g class="node" id="n23" data-id="23" transform="translate(106,961)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>True</tspan><tspan class="node-id"> #23/0</tspan></text><text class="type" text-anchor="middle" y="35" x="60">Ctrl</text><title>#23 True +Projection 0 of #22 +Ctrl + +[0] → #22 CTRL</title></g><g class="node" id="n24" data-id="24" transform="translate(226,961)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>False</tspan><tspan class="node-id"> #24/1</tspan></text><text class="type" text-anchor="middle" y="35" x="60">Ctrl</text><title>#24 False +Projection 1 of #22 +Ctrl + +[0] → #22 CTRL</title></g><g class="node" id="n26" data-id="26" transform="translate(793,500)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Con</tspan><tspan class="node-id"> #26</tspan></text><text class="type" text-anchor="middle" y="35" x="60">1</text><title>#26 Con +1 + +[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n27" data-id="27" transform="translate(337,813)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Add</tspan><tspan class="node-id"> #27</tspan></text><text class="type" text-anchor="middle" y="35" x="60">IntBot</text><title>#27 Add +IntBot + +[0] → — CTRL +[1] → #19 DATA +[2] → #26 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n28" data-id="28" transform="translate(430,707)" style="opacity: 1;"><path class="box" d="M12,0H108L120,22L108,44H12L0,22Z" fill="#f5e4fa"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Phi_sum</tspan><tspan class="node-id"> #28</tspan></text><text class="type" text-anchor="middle" y="35" x="60">IntBot</text><title>#28 Phi_sum +IntBot + +[0] → #17 ASSOC +[1] → #15 DATA +[2] → #31 DATA</title><circle class="port" cx="-3" cy="22" r="3" fill="#536477"/><circle class="port" cx="40" cy="-3" r="3" fill="#536477"/><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><path class="reg" fill="none" stroke="#b63838" d="M-3,22H-18m4,-3l-4,3l4,3"><title>[0] → #17</title></path><text class="slot" x="-10" y="15" text-anchor="middle">0</text><text class="slot" x="40" y="-10" text-anchor="middle">1</text><text class="slot" x="80" y="-10" text-anchor="middle">2</text></g><g class="node" id="n30" data-id="30" transform="translate(489,813)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Add</tspan><tspan class="node-id"> #30</tspan></text><text class="type" text-anchor="middle" y="35" x="60">IntBot</text><title>#30 Add +IntBot + +[0] → — CTRL +[1] → #28 DATA +[2] → #19 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n31" data-id="31" transform="translate(489,917)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Add</tspan><tspan class="node-id"> #31</tspan></text><text class="type" text-anchor="middle" y="35" x="60">IntBot</text><title>#31 Add +IntBot + +[0] → — CTRL +[1] → #30 DATA +[2] → #26 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n32" data-id="32" transform="translate(246,1112)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Return</tspan><tspan class="node-id"> #32</tspan></text><text class="type" text-anchor="middle" y="35" x="60">[Ctrl,IntBot]</text><title>#32 Return +[Ctrl,IntBot] + +[0] → #24 CTRL +[1] → #28 DATA</title><circle class="port" cx="40" cy="-3" r="3" fill="#536477"/><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><text class="slot" x="40" y="-10" text-anchor="middle">0</text><text class="slot" x="80" y="-10" text-anchor="middle">1</text></g></g><g class="region-heads" style="opacity: 1;"><g class="region-head" transform="translate(24,171)"><text class="label" x="26" y="17"><tspan>If</tspan><tspan class="node-id"> #8</tspan></text><title>If · 7 nodes</title><g class="fold-btn" role="button" tabindex="0" transform="translate(4,4)" aria-label="Fold region #8"><rect width="16" height="16" rx="2"/><text x="8" y="12" text-anchor="middle">−</text><title>Fold region</title></g></g><g class="region-head" transform="translate(72,603)"><text class="label" x="26" y="17"><tspan>Loop</tspan><tspan class="node-id"> #17</tspan></text><title>Loop · 10 nodes</title><g class="fold-btn" role="button" tabindex="0" transform="translate(4,4)" aria-label="Fold region #17"><rect width="16" height="16" rx="2"/><text x="8" y="12" text-anchor="middle">−</text><title>Fold region</title></g></g></g><g class="shortcuts" style="opacity: 1;"/><g class="peep-ghosts" pointer-events="none"/></g></svg> diff --git a/docs/2026_REBASE/assets/inline-final.json b/docs/2026_REBASE/assets/inline-final.json new file mode 100644 index 00000000..35e1568e --- /dev/null +++ b/docs/2026_REBASE/assets/inline-final.json @@ -0,0 +1,251 @@ +{ + "ver": 1, + "comp": "rebase-inline", + "step": 160, + "roots": [ + 3 + ], + "scope": 0, + "nodes": [ + { + "id": 2, + "label": "Start", + "type": "[ Ctrl, MemBot, int]", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 2, + "def": 0, + "role": "CTRL", + "label": null + } + ], + "proj": null + }, + { + "id": 3, + "label": "Stop", + "type": "Bot", + "kind": "STOP", + "edges": [ + { + "idx": 0, + "def": 14, + "role": "CTRL", + "label": null + } + ], + "proj": null + }, + { + "id": 4, + "label": "Con", + "type": "0", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 5, + "label": "Con", + "type": "null", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 6, + "label": "Xctrl", + "type": "~Ctrl", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 7, + "label": "Con", + "type": "MemBot", + "kind": "MEM", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 8, + "label": "main", + "type": "Ctrl", + "kind": "FUN", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 2, + "role": "CTRL", + "label": null + } + ], + "proj": null + }, + { + "id": 9, + "label": "Con", + "type": "$[ALL]", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 10, + "label": "$rpc", + "type": "$[ALL]", + "kind": "PHI", + "edges": [ + { + "idx": 0, + "def": 8, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 9, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 14, + "label": "Return", + "type": "[ Ctrl, MemBot, 11]", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 8, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 16, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 66, + "role": "DATA", + "label": null + }, + { + "idx": 3, + "def": 10, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 16, + "label": "$mem", + "type": "MemBot", + "kind": "PHI", + "edges": [ + { + "idx": 0, + "def": 8, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 7, + "role": "MEM", + "label": null + } + ], + "proj": null + }, + { + "id": 66, + "label": "Con", + "type": "11", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + } + ], + "groups": [ + { + "id": 8, + "par": 0, + "nodes": [ + 8, + 10, + 14, + 16 + ] + } + ] +} diff --git a/docs/2026_REBASE/assets/inline-final.svg b/docs/2026_REBASE/assets/inline-final.svg new file mode 100644 index 00000000..bd862ec3 --- /dev/null +++ b/docs/2026_REBASE/assets/inline-final.svg @@ -0,0 +1,107 @@ +<svg aria-label="Compiler graph" width="1084" height="437" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1084 437" style="font-family: sans-serif;"><style> + html, body { height:100%; margin:0; font-family:sans-serif; } + .viewer { height:100%; display:grid; grid-template-rows:auto minmax(0,1fr) auto; } + .source { padding:8px; border-bottom:1px solid #ccc; } + #program { width:min(600px,80vw); vertical-align:middle; } + #status { margin-top:4px; } + #graph { min-height:0; overflow:hidden; position:relative; background:#fafbfc; } + #elk { width:100%; height:100%; } + #graph svg { display:block; } + .tools { display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-top:8px; font-size:12px; } + .hint { color:#616c78; } + .ctrl { color:#b63838; } .mem { color:#2867b2; } .data { color:#536477; } + .edge { fill:none; stroke-width:1.5; } + .edge.CTRL { stroke-width:2; } + .edge.ASSOC { stroke-dasharray:4 4; } + .edge.PARSER { stroke-dasharray:5 4; } + .parser rect { fill:#f6f0ff; stroke:#7956a5; stroke-width:1.5; stroke-dasharray:5 4; } + .edge.selected { stroke-width:3.5; } + .edge.bundle { stroke-width:4; } + .edge.bundle.selected { stroke-width:6; } + .edge-hit { fill:none; stroke:transparent; stroke-width:12; vector-effect:non-scaling-stroke; pointer-events:stroke; cursor:pointer; } + .edge-jump { fill:transparent; pointer-events:all; cursor:pointer; } + .node { cursor:pointer; } + .box { stroke:#758191; stroke-width:1; } + .node.held .box { stroke-dasharray:5 3; } + .node.near .box { stroke:#c18221; stroke-width:2; } + .node.focus .box { stroke:#9c4900; stroke-width:3; } + .node.selected .box { stroke:#1569b9; stroke-width:3; } + .node.folded .box { stroke-width:4; } + .node.folding .box { fill:#f4ccd7; } + .fold-tag { font-size:9px; font-weight:700; fill:#963751; } + .peep-area { fill:#fff3d9; fill-opacity:.8; stroke:#c18221; stroke-width:2; pointer-events:none; } + .node.peep-edit .box { stroke:#9c4900; stroke-width:3; } + .node.error .box { stroke:#b42318; stroke-width:4; } + #event.error { color:#b42318; font-weight:600; white-space:pre-wrap; overflow-wrap:anywhere; } + .peep-ghosts { pointer-events:none; } + .region-box { stroke:#9da9b8; stroke-width:1.5; } + .fold-btn { cursor:pointer; } + .fold-btn rect { fill:white; stroke:#596674; } + .fold-btn text { font-size:14px; fill:#152330; } + .fold-btn:focus rect { stroke:#1569b9; stroke-width:2; } + .shortcut { cursor:pointer; } + .shortcut path { fill:none; stroke-width:1.5; } + .shortcut rect { fill:#fff8ec; stroke:#b63838; stroke-dasharray:3 2; } + .shortcut text { font-size:11px; fill:#783030; } + .shortcut.selected rect, .shortcut:focus rect { stroke-width:2.5; } + .label { font-size:12px; fill:#152330; font-weight:600; } + .node-id { font-size:10px; fill:#596674; font-weight:400; } + .type { font-size:11px; fill:#455768; } + .port { stroke:#536477; stroke-width:1; } + .row { stroke:#b6afcf; stroke-width:1; } + .bind { font-size:12px; fill:#152330; } + .slot { font-size:10px; fill:#364352; paint-order:stroke; stroke:#fafbfc; stroke-width:3; } + #detail { position:absolute; top:8px; right:8px; margin:0; padding:12px; max-width:320px; + max-height:45%; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; + background:#fffffff2; border:1px solid #bac5d0; border-radius:4px; font-size:12px; } + .controls { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:6px; padding:6px; } + .button { color:white; background:black; font-size:20px; min-width:30px; } + .button:disabled { background:grey; } + .count { font-size:20px; min-width:35px; text-align:center; } + #N { width:6ch; } + #scrub { width:clamp(120px,35vw,600px); } + </style><defs><marker id="arrow-CTRL" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#b63838"/></marker><marker id="arrow-DATA" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#536477"/></marker><marker id="arrow-MEM" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#2867b2"/></marker><marker id="arrow-ASSOC" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#9396a3"/></marker><marker id="arrow-PARSER" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#7956a5"/></marker></defs><rect width="100%" height="100%" fill="rgb(250, 251, 252)"/><g><g class="regions" style="opacity: 1;"><g class="region" transform="translate(298,133)"><rect class="region-box" rx="8" width="459" height="206" fill="#fff8ec"/></g></g><rect class="peep-area" rx="36" style="opacity: 0;"/><g class="edges"><path class="edge CTRL" id="e3i0" d="M407,324 C407,348 542,363 542,387" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#3[0] → #14 · CTRL</title></path><path class="edge ASSOC" id="e4i0" d="M390,77 C390,101 236,3 236,27" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#4[0] → #2 · ASSOC</title></path><path class="edge ASSOC" id="e5i0" d="M390,77 C390,101 84,3 84,27" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#5[0] → #2 · ASSOC</title></path><path class="edge ASSOC" id="e6i0" d="M390,77 C390,101 696,3 696,27" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#6[0] → #2 · ASSOC</title></path><path class="edge ASSOC" id="e7i0" d="M390,77 C390,101 848,3 848,27" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#7[0] → #2 · ASSOC</title></path><path class="edge CTRL" id="e8i1" d="M390,80 L390,167" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#8[1] → #2 · CTRL</title></path><path class="edge ASSOC" id="e9i0" d="M390,77 C390,101 544,3 544,27" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#9[0] → #2 · ASSOC</title></path><path class="edge DATA" id="e10i1" d="M544,80 L544,85 Q544,90 539,90 L530,90 Q522,90 522,98 L522,167" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#10[1] → #9 · DATA</title></path><path class="edge CTRL" id="e14i0" d="M370,223 L370,271" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#14[0] → #8 · CTRL</title></path><path class="edge MEM" id="e14i1" d="M674,223 L674,228 Q674,233 669,233 L403,233 Q395,233 395,241 L395,271" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#14[1] → #16 · MEM</title></path><path class="edge DATA" id="e14i2" d="M1000,80 L1000,92 Q1000,100 992,100 L752,100 Q744,100 744,108 L744,235 Q744,243 736,243 L427,243 Q419,243 419,251 L419,271" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#14[2] → #66 · DATA</title></path><path class="edge DATA" id="e14i3" d="M522,223 L522,245 Q522,253 514,253 L452,253 Q444,253 444,261 L444,271" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#14[3] → #10 · DATA</title></path><path class="edge MEM" id="e16i1" d="M848,80 L848,85 Q848,90 843,90 L682,90 Q674,90 674,98 L674,167" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#16[1] → #7 · MEM</title></path><path class="edge ASSOC" id="e66i0" d="M390,77 C390,101 1000,3 1000,27" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#66[0] → #2 · ASSOC</title></path></g><g class="edge-hits"/><g class="parser" style="opacity: 1;"/><g class="nodes"><g class="node" id="n2" data-id="2" transform="translate(328,30)" style="opacity: 1;"><path class="box" d="M0,0H124V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="62" y="18"><tspan>Start</tspan><tspan class="node-id"> #2</tspan></text><text class="type" text-anchor="middle" y="35" x="62">[ Ctrl, MemBot, int]</text><title>#2 Start +[ Ctrl, MemBot, int] + +[0] → — ASSOC +[1] → — CTRL +[2] → — CTRL</title><circle class="port" cx="31" cy="-3" r="3" fill="white"/><circle class="port" cx="62" cy="-3" r="3" fill="white"/><circle class="port" cx="93" cy="-3" r="3" fill="white"/><text class="slot" x="31" y="-10" text-anchor="middle">0</text><text class="slot" x="62" y="-10" text-anchor="middle">1</text><text class="slot" x="93" y="-10" text-anchor="middle">2</text></g><g class="node" id="n3" data-id="3" transform="translate(506,387)" style="opacity: 1;"><path class="box" d="M0,0H72V26H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="36" y="17"><tspan>Stop</tspan><tspan class="node-id"> #3</tspan></text><text class="type" text-anchor="middle" y="35" x="36"/><title>#3 Stop +Bot + +[0] → #14 CTRL</title><circle class="port" cx="36" cy="0" r="3" fill="#536477"/><text class="slot" x="36" y="-7" text-anchor="middle">0</text></g><g class="node" id="n4" data-id="4" transform="translate(176,30)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Con</tspan><tspan class="node-id"> #4</tspan></text><text class="type" text-anchor="middle" y="35" x="60">0</text><title>#4 Con +0 + +[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n5" data-id="5" transform="translate(24,30)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Con</tspan><tspan class="node-id"> #5</tspan></text><text class="type" text-anchor="middle" y="35" x="60">null</text><title>#5 Con +null + +[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n6" data-id="6" transform="translate(636,30)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Xctrl</tspan><tspan class="node-id"> #6</tspan></text><text class="type" text-anchor="middle" y="35" x="60">~Ctrl</text><title>#6 Xctrl +~Ctrl + +[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n7" data-id="7" transform="translate(788,30)" style="opacity: 1;"><path class="box" d="M10,0H110L120,10V34L110,44H10L0,34V10Z" fill="#dcecff"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Con</tspan><tspan class="node-id"> #7</tspan></text><text class="type" text-anchor="middle" y="35" x="60">MemBot</text><title>#7 Con +MemBot + +[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n8" data-id="8" transform="translate(310,173)" style="opacity: 1;"><path class="box" d="M10,0H110L120,10V34L110,44H10L0,34V10Z" fill="#ffe0ab"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>main</tspan><tspan class="node-id"> #8</tspan></text><text class="type" text-anchor="middle" y="35" x="60">Ctrl</text><title>#8 main +Ctrl + +[0] → — ASSOC +[1] → #2 CTRL</title><circle class="port" cx="40" cy="-3" r="3" fill="white"/><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><text class="slot" x="40" y="-10" text-anchor="middle">0</text><text class="slot" x="80" y="-10" text-anchor="middle">1</text></g><g class="node" id="n9" data-id="9" transform="translate(484,30)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Con</tspan><tspan class="node-id"> #9</tspan></text><text class="type" text-anchor="middle" y="35" x="60">$[ALL]</text><title>#9 Con +$[ALL] + +[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n10" data-id="10" transform="translate(462,173)" style="opacity: 1;"><path class="box" d="M12,0H108L120,22L108,44H12L0,22Z" fill="#f5e4fa"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>$rpc</tspan><tspan class="node-id"> #10</tspan></text><text class="type" text-anchor="middle" y="35" x="60">$[ALL]</text><title>#10 $rpc +$[ALL] + +[0] → #8 ASSOC +[1] → #9 DATA</title><circle class="port" cx="-3" cy="22" r="3" fill="#536477"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><path class="reg" fill="none" stroke="#b63838" d="M-3,22H-18m4,-3l-4,3l4,3"><title>[0] → #8</title></path><text class="slot" x="-10" y="15" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text></g><g class="node" id="n14" data-id="14" transform="translate(345,277)" style="opacity: 1;"><path class="box" d="M0,0H124V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="62" y="18"><tspan>Return</tspan><tspan class="node-id"> #14</tspan></text><text class="type" text-anchor="middle" y="35" x="62">[ Ctrl, MemBot, 11]</text><title>#14 Return +[ Ctrl, MemBot, 11] + +[0] → #8 CTRL +[1] → #16 MEM +[2] → #66 DATA +[3] → #10 DATA</title><circle class="port" cx="25" cy="-3" r="3" fill="#536477"/><circle class="port" cx="50" cy="-3" r="3" fill="#536477"/><circle class="port" cx="74" cy="-3" r="3" fill="#536477"/><circle class="port" cx="99" cy="-3" r="3" fill="#536477"/><text class="slot" x="25" y="-10" text-anchor="middle">0</text><text class="slot" x="50" y="-10" text-anchor="middle">1</text><text class="slot" x="74" y="-10" text-anchor="middle">2</text><text class="slot" x="99" y="-10" text-anchor="middle">3</text></g><g class="node" id="n16" data-id="16" transform="translate(614,173)" style="opacity: 1;"><path class="box" d="M12,0H108L120,22L108,44H12L0,22Z" fill="#f5e4fa"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>$mem</tspan><tspan class="node-id"> #16</tspan></text><text class="type" text-anchor="middle" y="35" x="60">MemBot</text><title>#16 $mem +MemBot + +[0] → #8 ASSOC +[1] → #7 MEM</title><circle class="port" cx="-3" cy="22" r="3" fill="#536477"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><path class="reg" fill="none" stroke="#b63838" d="M-3,22H-18m4,-3l-4,3l4,3"><title>[0] → #8</title></path><text class="slot" x="-10" y="15" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text></g><g class="node" id="n66" data-id="66" transform="translate(940,30)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Con</tspan><tspan class="node-id"> #66</tspan></text><text class="type" text-anchor="middle" y="35" x="60">11</text><title>#66 Con +11 + +[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g></g><g class="region-heads" style="opacity: 1;"><g class="region-head" transform="translate(298,133)"><text class="label" x="26" y="17"><tspan>main</tspan><tspan class="node-id"> #8</tspan></text><title>main · 4 nodes</title><g class="fold-btn" role="button" tabindex="0" transform="translate(4,4)" aria-label="Fold region #8"><rect width="16" height="16" rx="2"/><text x="8" y="12" text-anchor="middle">−</text><title>Fold region</title></g></g></g><g class="shortcuts" style="opacity: 1;"/><g class="peep-ghosts" pointer-events="none"/></g></svg> diff --git a/docs/2026_REBASE/assets/memory-final.json b/docs/2026_REBASE/assets/memory-final.json new file mode 100644 index 00000000..e2f378ed --- /dev/null +++ b/docs/2026_REBASE/assets/memory-final.json @@ -0,0 +1,1404 @@ +{ + "ver": 1, + "comp": "rebase-memory", + "step": 318, + "roots": [ + 2, + 3 + ], + "scope": 0, + "nodes": [ + { + "id": 2, + "label": "Start", + "type": "[ Ctrl, MemBot, int]", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 2, + "def": 0, + "role": "CTRL", + "label": null + } + ], + "proj": null + }, + { + "id": 3, + "label": "Stop", + "type": "Bot", + "kind": "STOP", + "edges": [ + { + "idx": 0, + "def": 115, + "role": "CTRL", + "label": null + } + ], + "proj": null + }, + { + "id": 4, + "label": "Con", + "type": "0", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 5, + "label": "Xctrl", + "type": "~Ctrl", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 6, + "label": "$ctrl", + "type": "Ctrl", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "CTRL", + "label": null + } + ], + "proj": { + "par": 2, + "idx": 0 + } + }, + { + "id": 7, + "label": "$mem", + "type": "MemBot", + "kind": "MEM", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "MEM", + "label": null + } + ], + "proj": { + "par": 2, + "idx": 1 + } + }, + { + "id": 8, + "label": "arg", + "type": "int", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "DATA", + "label": null + } + ], + "proj": { + "par": 2, + "idx": 2 + } + }, + { + "id": 12, + "label": "Con", + "type": "16", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 13, + "label": "MemMerge", + "type": "MemBot", + "kind": "MEM", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 0, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 7, + "role": "MEM", + "label": null + }, + { + "idx": 3, + "def": 7, + "role": "MEM", + "label": null + } + ], + "proj": null + }, + { + "id": 14, + "label": "new_Totals", + "type": "[ *Totals {int !sum; int !visits; }, MemBot]", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 6, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 13, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 12, + "role": "DATA", + "label": null + }, + { + "idx": 3, + "def": 4, + "role": "DATA", + "label": null + }, + { + "idx": 4, + "def": 4, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 15, + "label": "Totals", + "type": "*Totals {int !sum; int !visits; }", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 14, + "role": "DATA", + "label": null + } + ], + "proj": { + "par": 14, + "idx": 0 + } + }, + { + "id": 16, + "label": "$mem", + "type": "MemBot", + "kind": "MEM", + "edges": [ + { + "idx": 0, + "def": 14, + "role": "MEM", + "label": null + } + ], + "proj": { + "par": 14, + "idx": 1 + } + }, + { + "id": 18, + "label": "Con", + "type": "4", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 24, + "label": "Con", + "type": "40", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 26, + "label": "MemMerge", + "type": "MemBot", + "kind": "MEM", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 0, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 0, + "role": "DATA", + "label": null + }, + { + "idx": 3, + "def": 0, + "role": "DATA", + "label": null + }, + { + "idx": 4, + "def": 7, + "role": "MEM", + "label": null + }, + { + "idx": 5, + "def": 7, + "role": "MEM", + "label": null + } + ], + "proj": null + }, + { + "id": 27, + "label": "new_ary_int", + "type": "[ *[int] {int #; int ![]; }, MemBot]", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 6, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 26, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 24, + "role": "DATA", + "label": null + }, + { + "idx": 3, + "def": 18, + "role": "DATA", + "label": null + }, + { + "idx": 4, + "def": 4, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 28, + "label": "[int]", + "type": "*[int] {int #; int ![]; }", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 27, + "role": "DATA", + "label": null + } + ], + "proj": { + "par": 27, + "idx": 0 + } + }, + { + "id": 29, + "label": "$mem", + "type": "MemBot", + "kind": "MEM", + "edges": [ + { + "idx": 0, + "def": 27, + "role": "MEM", + "label": null + } + ], + "proj": { + "par": 27, + "idx": 1 + } + }, + { + "id": 32, + "label": "Loop", + "type": "Ctrl", + "kind": "LOOP", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 6, + "role": "CTRL", + "label": null + }, + { + "idx": 2, + "def": 41, + "role": "CTRL", + "label": null + } + ], + "proj": null + }, + { + "id": 34, + "label": "Phi_i", + "type": "int", + "kind": "PHI", + "edges": [ + { + "idx": 0, + "def": 32, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 4, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 60, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 35, + "label": "LT", + "type": "bool", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 34, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 18, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 40, + "label": "If", + "type": "[ Ctrl, Ctrl]", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 32, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 35, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 41, + "label": "True", + "type": "Ctrl", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 40, + "role": "CTRL", + "label": null + } + ], + "proj": { + "par": 40, + "idx": 0 + } + }, + { + "id": 42, + "label": "False", + "type": "Ctrl", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 40, + "role": "CTRL", + "label": null + } + ], + "proj": { + "par": 40, + "idx": 1 + } + }, + { + "id": 46, + "label": "Con", + "type": "1", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 51, + "label": "Con", + "type": "8", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 52, + "label": "Con", + "type": "3", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 53, + "label": "Shl", + "type": "int", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 34, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 52, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 54, + "label": "Add", + "type": "int", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 53, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 51, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 56, + "label": "Add", + "type": "int", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 34, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 8, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 57, + "label": "st_ary", + "type": "MEM#5:Bot", + "kind": "MEM", + "edges": [ + { + "idx": 0, + "def": 41, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 124, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 28, + "role": "DATA", + "label": null + }, + { + "idx": 3, + "def": 54, + "role": "DATA", + "label": null + }, + { + "idx": 4, + "def": 56, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 60, + "label": "Add", + "type": "int", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 34, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 46, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 65, + "label": "Loop", + "type": "Ctrl", + "kind": "LOOP", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 42, + "role": "CTRL", + "label": null + }, + { + "idx": 2, + "def": 74, + "role": "CTRL", + "label": null + } + ], + "proj": null + }, + { + "id": 67, + "label": "Phi_i", + "type": "int", + "kind": "PHI", + "edges": [ + { + "idx": 0, + "def": 65, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 4, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 103, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 68, + "label": "LT", + "type": "bool", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 67, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 18, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 73, + "label": "If", + "type": "[ Ctrl, Ctrl]", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 65, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 68, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 74, + "label": "True", + "type": "Ctrl", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 73, + "role": "CTRL", + "label": null + } + ], + "proj": { + "par": 73, + "idx": 0 + } + }, + { + "id": 75, + "label": "False", + "type": "Ctrl", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 73, + "role": "CTRL", + "label": null + } + ], + "proj": { + "par": 73, + "idx": 1 + } + }, + { + "id": 88, + "label": "Add", + "type": "int", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 131, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 93, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 91, + "label": "Shl", + "type": "int", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 67, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 52, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 92, + "label": "Add", + "type": "int", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 91, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 51, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 93, + "label": "ld_ary", + "type": "int", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 74, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 124, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 28, + "role": "DATA", + "label": null + }, + { + "idx": 3, + "def": 92, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 94, + "label": "st_sum", + "type": "MEM#2:Bot", + "kind": "MEM", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 104, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 15, + "role": "DATA", + "label": null + }, + { + "idx": 3, + "def": 4, + "role": "DATA", + "label": null + }, + { + "idx": 4, + "def": 88, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 99, + "label": "Add", + "type": "int", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 138, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 46, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 100, + "label": "st_visits", + "type": "MEM#3:Bot", + "kind": "MEM", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 132, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 15, + "role": "DATA", + "label": null + }, + { + "idx": 3, + "def": 51, + "role": "DATA", + "label": null + }, + { + "idx": 4, + "def": 99, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 103, + "label": "Add", + "type": "int", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 67, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 46, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 104, + "label": "MemPhi_2", + "type": "MEM#2:Bot", + "kind": "PHI", + "edges": [ + { + "idx": 0, + "def": 65, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 16, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 94, + "role": "MEM", + "label": null + } + ], + "proj": null + }, + { + "id": 106, + "label": "MemMerge", + "type": "MemBot", + "kind": "MEM", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 7, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 104, + "role": "MEM", + "label": null + }, + { + "idx": 3, + "def": 132, + "role": "MEM", + "label": null + }, + { + "idx": 4, + "def": 29, + "role": "MEM", + "label": null + }, + { + "idx": 5, + "def": 124, + "role": "MEM", + "label": null + } + ], + "proj": null + }, + { + "id": 112, + "label": "Add", + "type": "int", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 138, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 131, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 115, + "label": "Return", + "type": "[ Ctrl, MemBot, int]", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 75, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 106, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 112, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 124, + "label": "MemPhi_5", + "type": "MEM#5:Bot", + "kind": "PHI", + "edges": [ + { + "idx": 0, + "def": 32, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 29, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 57, + "role": "MEM", + "label": null + } + ], + "proj": null + }, + { + "id": 131, + "label": "Phi_sum", + "type": "int", + "kind": "PHI", + "edges": [ + { + "idx": 0, + "def": 65, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 4, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 88, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 132, + "label": "MemPhi_3", + "type": "MEM#3:Bot", + "kind": "PHI", + "edges": [ + { + "idx": 0, + "def": 65, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 16, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 100, + "role": "MEM", + "label": null + } + ], + "proj": null + }, + { + "id": 138, + "label": "Phi_visits", + "type": "int", + "kind": "PHI", + "edges": [ + { + "idx": 0, + "def": 65, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 4, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 99, + "role": "DATA", + "label": null + } + ], + "proj": null + } + ], + "groups": [ + { + "id": 32, + "par": 0, + "nodes": [ + 32, + 34, + 35, + 40, + 41, + 42, + 53, + 54, + 56, + 57, + 60, + 124 + ] + }, + { + "id": 65, + "par": 0, + "nodes": [ + 65, + 67, + 68, + 73, + 74, + 75, + 88, + 91, + 92, + 93, + 94, + 99, + 100, + 103, + 104, + 112, + 131, + 132, + 138 + ] + } + ] +} diff --git a/docs/2026_REBASE/assets/memory-final.svg b/docs/2026_REBASE/assets/memory-final.svg new file mode 100644 index 00000000..205fea1b --- /dev/null +++ b/docs/2026_REBASE/assets/memory-final.svg @@ -0,0 +1,320 @@ +<svg aria-label="Compiler graph" width="2263" height="2332" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2263 2332" style="font-family: sans-serif;"><style> + html, body { height:100%; margin:0; font-family:sans-serif; } + .viewer { height:100%; display:grid; grid-template-rows:auto minmax(0,1fr) auto; } + .source { padding:8px; border-bottom:1px solid #ccc; } + #program { width:min(600px,80vw); vertical-align:middle; } + #status { margin-top:4px; } + #graph { min-height:0; overflow:hidden; position:relative; background:#fafbfc; } + #elk { width:100%; height:100%; } + #graph svg { display:block; } + .tools { display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-top:8px; font-size:12px; } + .hint { color:#616c78; } + .ctrl { color:#b63838; } .mem { color:#2867b2; } .data { color:#536477; } + .edge { fill:none; stroke-width:1.5; } + .edge.CTRL { stroke-width:2; } + .edge.ASSOC { stroke-dasharray:4 4; } + .edge.PARSER { stroke-dasharray:5 4; } + .parser rect { fill:#f6f0ff; stroke:#7956a5; stroke-width:1.5; stroke-dasharray:5 4; } + .edge.selected { stroke-width:3.5; } + .edge.bundle { stroke-width:4; } + .edge.bundle.selected { stroke-width:6; } + .edge-hit { fill:none; stroke:transparent; stroke-width:12; vector-effect:non-scaling-stroke; pointer-events:stroke; cursor:pointer; } + .edge-jump { fill:transparent; pointer-events:all; cursor:pointer; } + .node { cursor:pointer; } + .box { stroke:#758191; stroke-width:1; } + .node.held .box { stroke-dasharray:5 3; } + .node.near .box { stroke:#c18221; stroke-width:2; } + .node.focus .box { stroke:#9c4900; stroke-width:3; } + .node.selected .box { stroke:#1569b9; stroke-width:3; } + .node.folded .box { stroke-width:4; } + .node.folding .box { fill:#f4ccd7; } + .fold-tag { font-size:9px; font-weight:700; fill:#963751; } + .peep-area { fill:#fff3d9; fill-opacity:.8; stroke:#c18221; stroke-width:2; pointer-events:none; } + .node.peep-edit .box { stroke:#9c4900; stroke-width:3; } + .node.error .box { stroke:#b42318; stroke-width:4; } + #event.error { color:#b42318; font-weight:600; white-space:pre-wrap; overflow-wrap:anywhere; } + .peep-ghosts { pointer-events:none; } + .region-box { stroke:#9da9b8; stroke-width:1.5; } + .fold-btn { cursor:pointer; } + .fold-btn rect { fill:white; stroke:#596674; } + .fold-btn text { font-size:14px; fill:#152330; } + .fold-btn:focus rect { stroke:#1569b9; stroke-width:2; } + .shortcut { cursor:pointer; } + .shortcut path { fill:none; stroke-width:1.5; } + .shortcut rect { fill:#fff8ec; stroke:#b63838; stroke-dasharray:3 2; } + .shortcut text { font-size:11px; fill:#783030; } + .shortcut.selected rect, .shortcut:focus rect { stroke-width:2.5; } + .label { font-size:12px; fill:#152330; font-weight:600; } + .node-id { font-size:10px; fill:#596674; font-weight:400; } + .type { font-size:11px; fill:#455768; } + .port { stroke:#536477; stroke-width:1; } + .row { stroke:#b6afcf; stroke-width:1; } + .bind { font-size:12px; fill:#152330; } + .slot { font-size:10px; fill:#364352; paint-order:stroke; stroke:#fafbfc; stroke-width:3; } + #detail { position:absolute; top:8px; right:8px; margin:0; padding:12px; max-width:320px; + max-height:45%; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; + background:#fffffff2; border:1px solid #bac5d0; border-radius:4px; font-size:12px; } + .controls { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:6px; padding:6px; } + .button { color:white; background:black; font-size:20px; min-width:30px; } + .button:disabled { background:grey; } + .count { font-size:20px; min-width:35px; text-align:center; } + #N { width:6ch; } + #scrub { width:clamp(120px,35vw,600px); } + </style><defs><marker id="arrow-CTRL" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#b63838"/></marker><marker id="arrow-DATA" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#536477"/></marker><marker id="arrow-MEM" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#2867b2"/></marker><marker id="arrow-ASSOC" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#9396a3"/></marker><marker id="arrow-PARSER" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#7956a5"/></marker></defs><rect width="100%" height="100%" fill="rgb(250, 251, 252)"/><g><g class="regions" style="opacity: 1;"><g class="region" transform="translate(610,473)"><rect class="region-box" rx="8" width="836" height="556" fill="#f1f6fc"/></g><g class="region" transform="translate(658,1149)"><rect class="region-box" rx="8" width="1559" height="872" fill="#f1f6fc"/></g></g><rect class="peep-area" rx="36" style="opacity: 0;"/><g class="edges"><path class="edge CTRL" id="e3i0" d="M945,2231 C945,2255 1131.5,2258 1131.5,2282" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#3[0] → #115 · CTRL</title></path><path class="edge ASSOC" id="e4i0" d="M1017,52 C1017,76 492,151 492,175" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#4[0] → #2 · ASSOC</title></path><path class="edge ASSOC" id="e5i0" d="M1017,52 C1017,76 562,25 562,49" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#5[0] → #2 · ASSOC</title></path><path class="edge ASSOC" id="e12i0" d="M1017,52 C1017,76 340,151 340,175" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#12[0] → #2 · ASSOC</title></path><path class="edge MEM" id="e13i2" d="M834,124 L834,136 Q834,144 826,144 L208,144 Q200,144 200,152 L200,172" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#13[2] → #7 · MEM</title></path><path class="edge MEM" id="e13i3" d="M834,124 L834,136 Q834,144 826,144 L232,144 Q224,144 224,152 L224,172" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#13[3] → #7 · MEM</title></path><path class="edge CTRL" id="e14i0" d="M714,124 L714,146 Q714,154 706,154 L125,154 Q117,154 117,162 L117,288" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#14[0] → #6 · CTRL</title></path><path class="edge MEM" id="e14i1" d="M188,228 L188,270 Q188,278 180,278 L171,278 Q166,278 166,283 L166,288" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#14[1] → #13 · MEM</title></path><path class="edge DATA" id="e14i2" d="M340,228 L340,233 Q340,238 335,238 L223,238 Q215,238 215,246 L215,288" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#14[2] → #12 · DATA</title></path><path class="edge DATA" id="e14i3" d="M492,228 L492,260 Q492,268 484,268 L271,268 Q263,268 263,276 L263,288" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#14[3] → #4 · DATA</title></path><path class="edge DATA" id="e14i4" d="M492,228 L492,260 Q492,268 484,268 L320,268 Q312,268 312,276 L312,288" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#14[4] → #4 · DATA</title></path><path class="edge ASSOC" id="e18i0" d="M1017,52 C1017,76 644,151 644,175" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#18[0] → #2 · ASSOC</title></path><path class="edge ASSOC" id="e24i0" d="M1017,52 C1017,76 976,151 976,175" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#24[0] → #2 · ASSOC</title></path><path class="edge MEM" id="e26i4" d="M834,124 L834,137 Q834,144 841,144 L841,144 Q848,144 848,151 L848,172" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#26[4] → #7 · MEM</title></path><path class="edge MEM" id="e26i5" d="M834,124 L834,136 Q834,144 842,144 L858,144 Q866,144 866,152 L866,172" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#26[5] → #7 · MEM</title></path><path class="edge CTRL" id="e27i0" d="M714,124 L714,146 Q714,154 722,154 L739,154 Q747,154 747,162 L747,250 Q747,258 755,258 L779,258 Q787,258 787,266 L787,288" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#27[0] → #6 · CTRL</title></path><path class="edge MEM" id="e27i1" d="M821,228 L821,254.5 Q821,258 824.5,258 L824.5,258 Q828,258 828,261.5 L828,288" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#27[1] → #26 · MEM</title></path><path class="edge DATA" id="e27i2" d="M976,228 L976,250 Q976,258 968,258 L876,258 Q868,258 868,266 L868,288" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#27[2] → #24 · DATA</title></path><path class="edge DATA" id="e27i3" d="M644,228 L644,240 Q644,248 652,248 L900,248 Q908,248 908,256 L908,288" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#27[3] → #18 · DATA</title></path><path class="edge DATA" id="e27i4" d="M492,228 L492,260 Q492,268 500,268 L941,268 Q949,268 949,276 L949,288" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#27[4] → #4 · DATA</title></path><path class="edge CTRL" id="e32i1" d="M714,124 L714,561" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#32[1] → #6 · CTRL</title></path><path class="edge CTRL" id="e32i2" d="M694,878 L694,883 Q694,888 699,888 L1426,888 Q1434,888 1434,880 L1434,544 Q1434,536 1426,536 L752,536 Q744,536 744,544 L744,564" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#32[2] → #41 · CTRL</title></path><path class="edge DATA" id="e34i1" d="M492,228 L492,260 Q492,268 500,268 L717,268 Q725,268 725,276 L725,450 Q725,458 733,458 L838,458 Q846,458 846,466 L846,561" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#34[1] → #4 · DATA</title></path><path class="edge DATA" id="e34i2" d="M785,730 L785,735 Q785,740 790,740 L1416,740 Q1424,740 1424,732 L1424,552 Q1424,544 1416,544 L894,544 Q886,544 886,552 L886,564" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#34[2] → #60 · DATA</title></path><path class="edge DATA" id="e35i1" d="M866,617 L866,659 Q866,667 874,667 L920,667 Q925,667 925,672 L925,677" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#35[1] → #34 · DATA</title></path><path class="edge DATA" id="e35i2" d="M644,228 L644,240 Q644,248 636,248 L581,248 Q573,248 573,256 L573,420 Q573,428 581,428 L635,428 Q643,428 643,436 L643,619 Q643,627 651,627 L947,627 Q955,627 955,635 L955,677" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#35[2] → #18 · DATA</title></path><path class="edge CTRL" id="e40i0" d="M714,617 L714,781" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#40[0] → #32 · CTRL</title></path><path class="edge DATA" id="e40i1" d="M925,733 L925,745 Q925,753 917,753 L802,753 Q794,753 794,761 L794,781" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#40[1] → #35 · DATA</title></path><path class="edge ASSOC" id="e46i0" d="M1017,52 C1017,76 644,311 644,335" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#46[0] → #2 · ASSOC</title></path><path class="edge ASSOC" id="e51i0" d="M1017,52 C1017,76 1980,311 1980,335" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#51[0] → #2 · ASSOC</title></path><path class="edge ASSOC" id="e52i0" d="M1017,52 C1017,76 1828,311 1828,335" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#52[0] → #2 · ASSOC</title></path><path class="edge DATA" id="e53i1" d="M866,617 L866,659 Q866,667 874,667 L1164,667 Q1169,667 1169,672 L1169,677" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#53[1] → #34 · DATA</title></path><path class="edge DATA" id="e53i2" d="M1828,388 L1828,430 Q1828,438 1820,438 L1207,438 Q1199,438 1199,446 L1199,677" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#53[2] → #52 · DATA</title></path><path class="edge DATA" id="e54i1" d="M1169,733 L1169,795.6666666666667" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#54[1] → #53 · DATA</title></path><path class="edge DATA" id="e54i2" d="M1980,388 L1980,450 Q1980,458 1972,458 L1247,458 Q1239,458 1239,466 L1239,735 Q1239,743 1231,743 L1207,743 Q1199,743 1199,751 L1199,795.6666666666667" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#54[2] → #51 · DATA</title></path><path class="edge DATA" id="e56i1" d="M866,617 L866,659 Q866,667 874,667 L1313,667 Q1321,667 1321,675 L1321,795.6666666666667" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#56[1] → #34 · DATA</title></path><path class="edge DATA" id="e56i2" d="M954,124 L954,129 Q954,134 949,134 L744,134 Q736,134 736,142 L736,440 Q736,448 744,448 L1343,448 Q1351,448 1351,456 L1351,795.6666666666667" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#56[2] → #8 · DATA</title></path><path class="edge CTRL" id="e57i0" d="M694,881 L694,886 Q694,891 699,891 L848,891 Q856,891 856,899 L856,941" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#57[0] → #41 · CTRL</title></path><path class="edge MEM" id="e57i1" d="M1018,617 L1018,649 Q1018,657 1026,657 L1079,657 Q1087,657 1087,665 L1087,893 Q1087,901 1079,901 L884,901 Q876,901 876,909 L876,941" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#57[1] → #124 · MEM</title></path><path class="edge DATA" id="e57i2" d="M808,388 L808,420 Q808,428 816,428 L1090,428 Q1098,428 1098,436 L1098,903 Q1098,911 1090,911 L904,911 Q896,911 896,919 L896,941" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#57[2] → #28 · DATA</title></path><path class="edge DATA" id="e57i3" d="M1169,851.6666666666667 L1169,913 Q1169,921 1161,921 L924,921 Q916,921 916,929 L916,941" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#57[3] → #54 · DATA</title></path><path class="edge DATA" id="e57i4" d="M1321,851.6666666666667 L1321,923 Q1321,931 1313,931 L941,931 Q936,931 936,936 L936,941" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#57[4] → #56 · DATA</title></path><path class="edge DATA" id="e60i1" d="M866,617 L866,659 Q866,667 858,667 L790,667 Q785,667 785,672 L785,677" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#60[1] → #34 · DATA</title></path><path class="edge DATA" id="e60i2" d="M644,388 L644,410 Q644,418 636,418 L630,418 Q622,418 622,426 L622,639 Q622,647 630,647 L807,647 Q815,647 815,655 L815,677" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#60[2] → #46 · DATA</title></path><path class="edge CTRL" id="e65i1" d="M814,881 L814,1281" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#65[1] → #42 · CTRL</title></path><path class="edge CTRL" id="e65i2" d="M794,1660 L794,1665 Q794,1670 799,1670 L2197,1670 Q2205,1670 2205,1662 L2205,1240 Q2205,1232 2197,1232 L852,1232 Q844,1232 844,1240 L844,1284" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#65[2] → #74 · CTRL</title></path><path class="edge DATA" id="e67i1" d="M492,228 L492,260 Q492,268 484,268 L65,268 Q57,268 57,276 L57,430 Q57,438 65,438 L71,438 Q79,438 79,446 L79,1086 Q79,1094 87,1094 L938,1094 Q946,1094 946,1102 L946,1281" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#67[1] → #4 · DATA</title></path><path class="edge DATA" id="e67i2" d="M1048,1510 L1048,1515 Q1048,1520 1053,1520 L2187,1520 Q2195,1520 2195,1512 L2195,1248 Q2195,1240 2187,1240 L994,1240 Q986,1240 986,1248 L986,1284" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#67[2] → #103 · DATA</title></path><path class="edge DATA" id="e68i1" d="M966,1337 L966,1359 Q966,1367 958,1367 L893,1367 Q885,1367 885,1375 L885,1457" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#68[1] → #67 · DATA</title></path><path class="edge DATA" id="e68i2" d="M644,228 L644,240 Q644,248 636,248 L54,248 Q46,248 46,256 L46,1116 Q46,1124 54,1124 L683,1124 Q691,1124 691,1132 L691,1419 Q691,1427 699,1427 L907,1427 Q915,1427 915,1435 L915,1457" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#68[2] → #18 · DATA</title></path><path class="edge CTRL" id="e73i0" d="M814,1337 L814,1563" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#73[0] → #65 · CTRL</title></path><path class="edge DATA" id="e73i1" d="M885,1513 L885,1518.5 Q885,1523 889.5,1523 L889.5,1523 Q894,1523 894,1527.5 L894,1563" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#73[1] → #68 · DATA</title></path><path class="edge DATA" id="e88i1" d="M1270,1337 L1270,1409 Q1270,1417 1262,1417 L985,1417 Q977,1417 977,1425 L977,1515 Q977,1523 985,1523 L1004,1523 Q1012,1523 1012,1531 L1012,1695 Q1012,1703 1004,1703 L977,1703 Q969,1703 969,1711 L969,1781 Q969,1789 977,1789 L1020,1789 Q1028,1789 1028,1797 L1028,1827" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#88[1] → #131 · DATA</title></path><path class="edge DATA" id="e88i2" d="M1040,1779 L1040,1784 Q1040,1789 1045,1789 L1050,1789 Q1058,1789 1058,1797 L1058,1827" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#88[2] → #93 · DATA</title></path><path class="edge DATA" id="e91i1" d="M966,1337 L966,1359 Q966,1367 974,1367 L1902,1367 Q1910,1367 1910,1375 L1910,1457" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#91[1] → #67 · DATA</title></path><path class="edge DATA" id="e91i2" d="M1828,388 L1828,430 Q1828,438 1836,438 L1932,438 Q1940,438 1940,446 L1940,1457" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#91[2] → #52 · DATA</title></path><path class="edge DATA" id="e92i1" d="M1910,1513 L1910,1577.6666666666667" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#92[1] → #91 · DATA</title></path><path class="edge DATA" id="e92i2" d="M1980,388 L1980,1515 Q1980,1523 1972,1523 L1948,1523 Q1940,1523 1940,1531 L1940,1577.6666666666667" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#92[2] → #51 · DATA</title></path><path class="edge CTRL" id="e93i0" d="M794,1663 L794,1685 Q794,1693 802,1693 L996,1693 Q1004,1693 1004,1701 L1004,1723" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#93[0] → #74 · CTRL</title></path><path class="edge MEM" id="e93i1" d="M1018,617 L1018,649 Q1018,657 1010,657 L631,657 Q623,657 623,665 L623,893 Q623,901 631,901 L817,901 Q825,901 825,909 L825,1036 Q825,1044 833,1044 L1636,1044 Q1644,1044 1644,1052 L1644,1341.5 Q1644,1347 1638.5,1347 L1638.5,1347 Q1633,1347 1633,1352.5 L1633,1675 Q1633,1683 1625,1683 L1036,1683 Q1028,1683 1028,1691 L1028,1723" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#93[1] → #124 · MEM</title></path><path class="edge DATA" id="e93i2" d="M808,388 L808,420 Q808,428 816,428 L1647,428 Q1655,428 1655,436 L1655,1351.5 Q1655,1357 1649.5,1357 L1649.5,1357 Q1644,1357 1644,1362.5 L1644,1685 Q1644,1693 1636,1693 L1060,1693 Q1052,1693 1052,1701 L1052,1723" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#93[2] → #28 · DATA</title></path><path class="edge DATA" id="e93i3" d="M1910,1633.6666666666667 L1910,1695 Q1910,1703 1902,1703 L1084,1703 Q1076,1703 1076,1711 L1076,1723" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#93[3] → #92 · DATA</title></path><path class="edge MEM" id="e94i1" d="M1118,1337 L1118,1379 Q1118,1387 1110,1387 L710,1387 Q702,1387 702,1395 L702,1705 Q702,1713 710,1713 L917,1713 Q925,1713 925,1721 L925,1915 Q925,1923 933,1923 L971,1923 Q976,1923 976,1928 L976,1933" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#94[1] → #104 · MEM</title></path><path class="edge DATA" id="e94i2" d="M155,388 L155,400 Q155,408 147,408 L43,408 Q35,408 35,416 L35,1126 Q35,1134 43,1134 L662,1134 Q670,1134 670,1142 L670,1439 Q670,1447 678,1447 L705,1447 Q713,1447 713,1455 L713,1695 Q713,1703 721,1703 L928,1703 Q936,1703 936,1711 L936,1905 Q936,1913 944,1913 L988,1913 Q996,1913 996,1921 L996,1933" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#94[2] → #15 · DATA</title></path><path class="edge DATA" id="e94i3" d="M492,228 L492,260 Q492,268 484,268 L65,268 Q57,268 57,276 L57,1106 Q57,1114 65,1114 L694,1114 Q702,1114 702,1122 L702,1369 Q702,1377 710,1377 L947,1377 Q955,1377 955,1385 L955,1535 Q955,1543 963,1543 L982,1543 Q990,1543 990,1551 L990,1665 Q990,1673 982,1673 L955,1673 Q947,1673 947,1681 L947,1895 Q947,1903 955,1903 L1008,1903 Q1016,1903 1016,1911 L1016,1933" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#94[3] → #4 · DATA</title></path><path class="edge DATA" id="e94i4" d="M1028,1883 L1028,1889 Q1028,1893 1032,1893 L1032,1893 Q1036,1893 1036,1897 L1036,1933" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#94[4] → #88 · DATA</title></path><path class="edge DATA" id="e99i1" d="M1574,1337 L1574,1419 Q1574,1427 1582,1427 L1750,1427 Q1758,1427 1758,1435 L1758,1457" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#99[1] → #138 · DATA</title></path><path class="edge DATA" id="e99i2" d="M644,388 L644,410 Q644,418 652,418 L1780,418 Q1788,418 1788,426 L1788,1457" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#99[2] → #46 · DATA</title></path><path class="edge MEM" id="e100i1" d="M1422,1337 L1422,1429 Q1422,1437 1430,1437 L1647,1437 Q1655,1437 1655,1445 L1655,1545 Q1655,1553 1663,1553 L1690,1553 Q1695,1553 1695,1558 L1695,1563" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#100[1] → #132 · MEM</title></path><path class="edge DATA" id="e100i2" d="M155,388 L155,400 Q155,408 163,408 L1658,408 Q1666,408 1666,416 L1666,1535 Q1666,1543 1674,1543 L1707,1543 Q1715,1543 1715,1551 L1715,1563" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#100[2] → #15 · DATA</title></path><path class="edge DATA" id="e100i3" d="M1980,388 L1980,450 Q1980,458 1972,458 L1685,458 Q1677,458 1677,466 L1677,1525 Q1677,1533 1685,1533 L1727,1533 Q1735,1533 1735,1541 L1735,1563" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#100[3] → #51 · DATA</title></path><path class="edge DATA" id="e100i4" d="M1758,1513 L1758,1521.5 Q1758,1523 1756.5,1523 L1756.5,1523 Q1755,1523 1755,1524.5 L1755,1563" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#100[4] → #99 · DATA</title></path><path class="edge DATA" id="e103i1" d="M966,1337 L966,1359 Q966,1367 974,1367 L1040,1367 Q1048,1367 1048,1375 L1048,1457" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#103[1] → #67 · DATA</title></path><path class="edge DATA" id="e103i2" d="M644,388 L644,410 Q644,418 636,418 L76,418 Q68,418 68,426 L68,1096 Q68,1104 76,1104 L715,1104 Q723,1104 723,1112 L723,1399 Q723,1407 731,1407 L1070,1407 Q1078,1407 1078,1415 L1078,1457" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#103[2] → #46 · DATA</title></path><path class="edge MEM" id="e104i1" d="M301,388 L301,420 Q301,428 293,428 L98,428 Q90,428 90,436 L90,1076 Q90,1084 98,1084 L1090,1084 Q1098,1084 1098,1092 L1098,1281" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#104[1] → #16 · MEM</title></path><path class="edge MEM" id="e104i2" d="M996,1986 L996,1991 Q996,1996 1001,1996 L2177,1996 Q2185,1996 2185,1988 L2185,1256 Q2185,1248 2177,1248 L1146,1248 Q1138,1248 1138,1256 L1138,1284" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#104[2] → #94 · MEM</title></path><path class="edge MEM" id="e106i1" d="M834,124 L834,136 Q834,144 826,144 L32,144 Q24,144 24,152 L24,2038 Q24,2046 32,2046 L1947,2046 Q1955,2046 1955,2054 L1955,2074" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#106[1] → #7 · MEM</title></path><path class="edge MEM" id="e106i2" d="M1118,1337 L1118,1379 Q1118,1387 1110,1387 L710,1387 Q702,1387 702,1395 L702,1705 Q702,1713 710,1713 L917,1713 Q925,1713 925,1721 L925,2028 Q925,2036 933,2036 L1965,2036 Q1973,2036 1973,2044 L1973,2074" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#106[2] → #104 · MEM</title></path><path class="edge MEM" id="e106i3" d="M1422,1337 L1422,1429 Q1422,1437 1430,1437 L1983,1437 Q1991,1437 1991,1445 L1991,2074" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#106[3] → #132 · MEM</title></path><path class="edge MEM" id="e106i4" d="M929,388 L929,393 Q929,398 934,398 L2219,398 Q2227,398 2227,406 L2227,2028 Q2227,2036 2219,2036 L2017,2036 Q2009,2036 2009,2044 L2009,2074" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#106[4] → #29 · MEM</title></path><path class="edge MEM" id="e106i5" d="M1018,617 L1018,649 Q1018,657 1010,657 L631,657 Q623,657 623,665 L623,893 Q623,901 631,901 L817,901 Q825,901 825,909 L825,1036 Q825,1044 833,1044 L2230,1044 Q2238,1044 2238,1052 L2238,2038 Q2238,2046 2230,2046 L2035,2046 Q2027,2046 2027,2054 L2027,2074" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#106[5] → #124 · MEM</title></path><path class="edge DATA" id="e112i1" d="M1574,1337 L1574,1419 Q1574,1427 1582,1427 L2065,1427 Q2073,1427 2073,1435 L2073,1457" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#112[1] → #138 · DATA</title></path><path class="edge DATA" id="e112i2" d="M1270,1337 L1270,1409 Q1270,1417 1278,1417 L2095,1417 Q2103,1417 2103,1425 L2103,1457" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#112[2] → #131 · DATA</title></path><path class="edge CTRL" id="e115i0" d="M914,1663 L914,2178" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#115[0] → #75 · CTRL</title></path><path class="edge MEM" id="e115i1" d="M1982,2130 L1982,2135 Q1982,2140 1977,2140 L953,2140 Q945,2140 945,2148 L945,2178" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#115[1] → #106 · MEM</title></path><path class="edge DATA" id="e115i2" d="M2073,1513 L2073,2142 Q2073,2150 2065,2150 L984,2150 Q976,2150 976,2158 L976,2178" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#115[2] → #112 · DATA</title></path><path class="edge MEM" id="e124i1" d="M929,388 L929,393 Q929,398 934,398 L990,398 Q998,398 998,406 L998,561" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#124[1] → #29 · MEM</title></path><path class="edge MEM" id="e124i2" d="M896,994 L896,999 Q896,1004 901,1004 L1406,1004 Q1414,1004 1414,996 L1414,560 Q1414,552 1406,552 L1044,552 Q1038,552 1038,558 L1038,564" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#124[2] → #57 · MEM</title></path><path class="edge DATA" id="e131i1" d="M492,228 L492,260 Q492,268 484,268 L65,268 Q57,268 57,276 L57,430 Q57,438 65,438 L93,438 Q101,438 101,446 L101,1066 Q101,1074 109,1074 L1242,1074 Q1250,1074 1250,1082 L1250,1281" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#131[1] → #4 · DATA</title></path><path class="edge DATA" id="e131i2" d="M1028,1880 L1028,1885 Q1028,1890 1033,1890 L2167,1890 Q2175,1890 2175,1882 L2175,1264 Q2175,1256 2167,1256 L1298,1256 Q1290,1256 1290,1264 L1290,1284" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#131[2] → #88 · DATA</title></path><path class="edge MEM" id="e132i1" d="M301,388 L301,420 Q301,428 309,428 L473,428 Q481,428 481,436 L481,1056 Q481,1064 489,1064 L1394,1064 Q1402,1064 1402,1072 L1402,1281" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#132[1] → #16 · MEM</title></path><path class="edge MEM" id="e132i2" d="M1715,1616 L1715,1621 Q1715,1626 1720,1626 L1837.1666666666665,1626 Q1842,1626 1842,1630.8333333333335 L1842,1630.8333333333335 Q1842,1635.6666666666667 1846.8333333333335,1635.6666666666667 L2157,1635.6666666666667 Q2165,1635.6666666666667 2165,1627.6666666666667 L2165,1272 Q2165,1264 2157,1264 L1450,1264 Q1442,1264 1442,1272 L1442,1284" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#132[2] → #100 · MEM</title></path><path class="edge DATA" id="e138i1" d="M492,228 L492,1046 Q492,1054 500,1054 L1546,1054 Q1554,1054 1554,1062 L1554,1281" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#138[1] → #4 · DATA</title></path><path class="edge DATA" id="e138i2" d="M1758,1510 L1758,1515 Q1758,1520 1763,1520 L2147,1520 Q2155,1520 2155,1512 L2155,1280 Q2155,1272 2147,1272 L1600,1272 Q1594,1272 1594,1278 L1594,1284" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#138[2] → #99 · DATA</title></path></g><g class="edge-hits"/><g class="parser" style="opacity: 1;"/><g class="nodes"><g class="node" id="n2" data-id="2" transform="translate(654,30)" style="opacity: 1;"><path class="box" d="M0,0H360V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="180" y="18"><tspan>Start</tspan><tspan class="node-id"> #2</tspan></text><text class="type" text-anchor="middle" y="35" x="180">[ Ctrl, MemBot, int]</text><title>#2 Start +[ Ctrl, MemBot, int] + +[0] → — ASSOC +[1] → — CTRL +[2] → — CTRL</title><circle class="port" cx="90" cy="-3" r="3" fill="white"/><circle class="port" cx="180" cy="-3" r="3" fill="white"/><circle class="port" cx="270" cy="-3" r="3" fill="white"/><text class="slot" x="90" y="-10" text-anchor="middle">0</text><text class="slot" x="180" y="-10" text-anchor="middle">1</text><text class="slot" x="270" y="-10" text-anchor="middle">2</text></g><g class="node" id="n3" data-id="3" transform="translate(1095.5,2282)" style="opacity: 1;"><path class="box" d="M0,0H72V26H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="36" y="17"><tspan>Stop</tspan><tspan class="node-id"> #3</tspan></text><text class="type" text-anchor="middle" y="35" x="36"/><title>#3 Stop +Bot + +[0] → #115 CTRL</title><circle class="port" cx="36" cy="0" r="3" fill="#536477"/><text class="slot" x="36" y="-7" text-anchor="middle">0</text></g><g class="node" id="n4" data-id="4" transform="translate(432,178)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Con</tspan><tspan class="node-id"> #4</tspan></text><text class="type" text-anchor="middle" y="35" x="60">0</text><title>#4 Con +0 + +[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n5" data-id="5" transform="translate(502,52)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Xctrl</tspan><tspan class="node-id"> #5</tspan></text><text class="type" text-anchor="middle" y="35" x="60">~Ctrl</text><title>#5 Xctrl +~Ctrl + +[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n6" data-id="6" transform="translate(654,74)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>$ctrl</tspan><tspan class="node-id"> #6/0</tspan></text><text class="type" text-anchor="middle" y="35" x="60">Ctrl</text><title>#6 $ctrl +Projection 0 of #2 +Ctrl + +[0] → #2 CTRL</title></g><g class="node" id="n7" data-id="7" transform="translate(774,74)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#dcecff"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>$mem</tspan><tspan class="node-id"> #7/1</tspan></text><text class="type" text-anchor="middle" y="35" x="60">MemBot</text><title>#7 $mem +Projection 1 of #2 +MemBot + +[0] → #2 MEM</title></g><g class="node" id="n8" data-id="8" transform="translate(894,74)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>arg</tspan><tspan class="node-id"> #8/2</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#8 arg +Projection 2 of #2 +int + +[0] → #2 DATA</title></g><g class="node" id="n12" data-id="12" transform="translate(280,178)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Con</tspan><tspan class="node-id"> #12</tspan></text><text class="type" text-anchor="middle" y="35" x="60">16</text><title>#12 Con +16 + +[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n13" data-id="13" transform="translate(128,178)" style="opacity: 1;"><path class="box" d="M10,0H110L120,10V34L110,44H10L0,34V10Z" fill="#dcecff"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>MemMerge</tspan><tspan class="node-id"> #13</tspan></text><text class="type" text-anchor="middle" y="35" x="60">MemBot</text><title>#13 MemMerge +MemBot + +[0] → — CTRL +[1] → — DATA +[2] → #7 MEM +[3] → #7 MEM</title><circle class="port" cx="24" cy="-3" r="3" fill="white"/><circle class="port" cx="48" cy="-3" r="3" fill="white"/><circle class="port" cx="72" cy="-3" r="3" fill="#536477"/><circle class="port" cx="96" cy="-3" r="3" fill="#536477"/><text class="slot" x="24" y="-10" text-anchor="middle">0</text><text class="slot" x="48" y="-10" text-anchor="middle">1</text><text class="slot" x="72" y="-10" text-anchor="middle">2</text><text class="slot" x="96" y="-10" text-anchor="middle">3</text></g><g class="node" id="n14" data-id="14" transform="translate(68,294)" style="opacity: 1;"><path class="box" d="M0,0H293V44H0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="146.5" y="18"><tspan>new_Totals</tspan><tspan class="node-id"> #14</tspan></text><text class="type" text-anchor="middle" y="35" x="146.5">[ *Totals {int !sum; int !visits; }, MemBot]</text><title>#14 new_Totals +[ *Totals {int !sum; int !visits; }, MemBot] + +[0] → #6 CTRL +[1] → #13 MEM +[2] → #12 DATA +[3] → #4 DATA +[4] → #4 DATA</title><circle class="port" cx="49" cy="-3" r="3" fill="#536477"/><circle class="port" cx="98" cy="-3" r="3" fill="#536477"/><circle class="port" cx="147" cy="-3" r="3" fill="#536477"/><circle class="port" cx="195" cy="-3" r="3" fill="#536477"/><circle class="port" cx="244" cy="-3" r="3" fill="#536477"/><text class="slot" x="49" y="-10" text-anchor="middle">0</text><text class="slot" x="98" y="-10" text-anchor="middle">1</text><text class="slot" x="147" y="-10" text-anchor="middle">2</text><text class="slot" x="195" y="-10" text-anchor="middle">3</text><text class="slot" x="244" y="-10" text-anchor="middle">4</text></g><g class="node" id="n15" data-id="15" transform="translate(68,338)" style="opacity: 1;"><path class="box" d="M0,0H173V44H0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="86.5" y="18"><tspan>Totals</tspan><tspan class="node-id"> #15/0</tspan></text><text class="type" text-anchor="middle" y="35" x="86.5">*Totals {int !sum; int !visits; }</text><title>#15 Totals +Projection 0 of #14 +*Totals {int !sum; int !visits; } + +[0] → #14 DATA</title></g><g class="node" id="n16" data-id="16" transform="translate(241,338)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#dcecff"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>$mem</tspan><tspan class="node-id"> #16/1</tspan></text><text class="type" text-anchor="middle" y="35" x="60">MemBot</text><title>#16 $mem +Projection 1 of #14 +MemBot + +[0] → #14 MEM</title></g><g class="node" id="n18" data-id="18" transform="translate(584,178)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Con</tspan><tspan class="node-id"> #18</tspan></text><text class="type" text-anchor="middle" y="35" x="60">4</text><title>#18 Con +4 + +[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n24" data-id="24" transform="translate(916,178)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Con</tspan><tspan class="node-id"> #24</tspan></text><text class="type" text-anchor="middle" y="35" x="60">40</text><title>#24 Con +40 + +[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n26" data-id="26" transform="translate(758,178)" style="opacity: 1;"><path class="box" d="M10,0H116L126,10V34L116,44H10L0,34V10Z" fill="#dcecff"/><text class="label" text-anchor="middle" x="63" y="18"><tspan>MemMerge</tspan><tspan class="node-id"> #26</tspan></text><text class="type" text-anchor="middle" y="35" x="63">MemBot</text><title>#26 MemMerge +MemBot + +[0] → — CTRL +[1] → — DATA +[2] → — DATA +[3] → — DATA +[4] → #7 MEM +[5] → #7 MEM</title><circle class="port" cx="18" cy="-3" r="3" fill="white"/><circle class="port" cx="36" cy="-3" r="3" fill="white"/><circle class="port" cx="54" cy="-3" r="3" fill="white"/><circle class="port" cx="72" cy="-3" r="3" fill="white"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><circle class="port" cx="108" cy="-3" r="3" fill="#536477"/><text class="slot" x="18" y="-10" text-anchor="middle">0</text><text class="slot" x="36" y="-10" text-anchor="middle">1</text><text class="slot" x="54" y="-10" text-anchor="middle">2</text><text class="slot" x="72" y="-10" text-anchor="middle">3</text><text class="slot" x="90" y="-10" text-anchor="middle">4</text><text class="slot" x="108" y="-10" text-anchor="middle">5</text></g><g class="node" id="n27" data-id="27" transform="translate(747,294)" style="opacity: 1;"><path class="box" d="M0,0H242V44H0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="121" y="18"><tspan>new_ary_int</tspan><tspan class="node-id"> #27</tspan></text><text class="type" text-anchor="middle" y="35" x="121">[ *[int] {int #; int ![]; }, MemBot]</text><title>#27 new_ary_int +[ *[int] {int #; int ![]; }, MemBot] + +[0] → #6 CTRL +[1] → #26 MEM +[2] → #24 DATA +[3] → #18 DATA +[4] → #4 DATA</title><circle class="port" cx="40" cy="-3" r="3" fill="#536477"/><circle class="port" cx="81" cy="-3" r="3" fill="#536477"/><circle class="port" cx="121" cy="-3" r="3" fill="#536477"/><circle class="port" cx="161" cy="-3" r="3" fill="#536477"/><circle class="port" cx="202" cy="-3" r="3" fill="#536477"/><text class="slot" x="40" y="-10" text-anchor="middle">0</text><text class="slot" x="81" y="-10" text-anchor="middle">1</text><text class="slot" x="121" y="-10" text-anchor="middle">2</text><text class="slot" x="161" y="-10" text-anchor="middle">3</text><text class="slot" x="202" y="-10" text-anchor="middle">4</text></g><g class="node" id="n28" data-id="28" transform="translate(747,338)" style="opacity: 1;"><path class="box" d="M0,0H122V44H0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="61" y="18"><tspan>[int]</tspan><tspan class="node-id"> #28/0</tspan></text><text class="type" text-anchor="middle" y="35" x="61">*[int] {int #; int ![]; }</text><title>#28 [int] +Projection 0 of #27 +*[int] {int #; int ![]; } + +[0] → #27 DATA</title></g><g class="node" id="n29" data-id="29" transform="translate(869,338)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#dcecff"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>$mem</tspan><tspan class="node-id"> #29/1</tspan></text><text class="type" text-anchor="middle" y="35" x="60">MemBot</text><title>#29 $mem +Projection 1 of #27 +MemBot + +[0] → #27 MEM</title></g><g class="node" id="n32" data-id="32" transform="translate(654,567)" style="opacity: 1;"><path class="box" d="M20,0H100Q120,0 120,20V24Q120,44 100,44H20Q0,44 0,24V20Q0,0 20,0Z" fill="#ffe0ab"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Loop</tspan><tspan class="node-id"> #32</tspan></text><text class="type" text-anchor="middle" y="35" x="60">Ctrl</text><title>#32 Loop +Ctrl + +[0] → — ASSOC +[1] → #6 CTRL +[2] → #41 CTRL</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n34" data-id="34" transform="translate(806,567)" style="opacity: 1;"><path class="box" d="M12,0H108L120,22L108,44H12L0,22Z" fill="#f5e4fa"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Phi_i</tspan><tspan class="node-id"> #34</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#34 Phi_i +int + +[0] → #32 ASSOC +[1] → #4 DATA +[2] → #60 DATA</title><circle class="port" cx="-3" cy="22" r="3" fill="#536477"/><circle class="port" cx="40" cy="-3" r="3" fill="#536477"/><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><path class="reg" fill="none" stroke="#b63838" d="M-3,22H-18m4,-3l-4,3l4,3"><title>[0] → #32</title></path><text class="slot" x="-10" y="15" text-anchor="middle">0</text><text class="slot" x="40" y="-10" text-anchor="middle">1</text><text class="slot" x="80" y="-10" text-anchor="middle">2</text></g><g class="node" id="n35" data-id="35" transform="translate(865,683)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>LT</tspan><tspan class="node-id"> #35</tspan></text><text class="type" text-anchor="middle" y="35" x="60">bool</text><title>#35 LT +bool + +[0] → — CTRL +[1] → #34 DATA +[2] → #18 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n40" data-id="40" transform="translate(634,787)" style="opacity: 1;"><path class="box" d="M0,0H240V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="120" y="18"><tspan>If</tspan><tspan class="node-id"> #40</tspan></text><text class="type" text-anchor="middle" y="35" x="120">[ Ctrl, Ctrl]</text><title>#40 If +[ Ctrl, Ctrl] + +[0] → #32 CTRL +[1] → #35 DATA</title><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><circle class="port" cx="160" cy="-3" r="3" fill="#536477"/><text class="slot" x="80" y="-10" text-anchor="middle">0</text><text class="slot" x="160" y="-10" text-anchor="middle">1</text></g><g class="node" id="n41" data-id="41" transform="translate(634,831)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>True</tspan><tspan class="node-id"> #41/0</tspan></text><text class="type" text-anchor="middle" y="35" x="60">Ctrl</text><title>#41 True +Projection 0 of #40 +Ctrl + +[0] → #40 CTRL</title></g><g class="node" id="n42" data-id="42" transform="translate(754,831)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>False</tspan><tspan class="node-id"> #42/1</tspan></text><text class="type" text-anchor="middle" y="35" x="60">Ctrl</text><title>#42 False +Projection 1 of #40 +Ctrl + +[0] → #40 CTRL</title></g><g class="node" id="n46" data-id="46" transform="translate(584,338)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Con</tspan><tspan class="node-id"> #46</tspan></text><text class="type" text-anchor="middle" y="35" x="60">1</text><title>#46 Con +1 + +[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n51" data-id="51" transform="translate(1920,338)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Con</tspan><tspan class="node-id"> #51</tspan></text><text class="type" text-anchor="middle" y="35" x="60">8</text><title>#51 Con +8 + +[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n52" data-id="52" transform="translate(1768,338)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Con</tspan><tspan class="node-id"> #52</tspan></text><text class="type" text-anchor="middle" y="35" x="60">3</text><title>#52 Con +3 + +[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n53" data-id="53" transform="translate(1109,683)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Shl</tspan><tspan class="node-id"> #53</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#53 Shl +int + +[0] → — CTRL +[1] → #34 DATA +[2] → #52 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n54" data-id="54" transform="translate(1109,801.6666666666667)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Add</tspan><tspan class="node-id"> #54</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#54 Add +int + +[0] → — CTRL +[1] → #53 DATA +[2] → #51 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n56" data-id="56" transform="translate(1261,801.6666666666667)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Add</tspan><tspan class="node-id"> #56</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#56 Add +int + +[0] → — CTRL +[1] → #34 DATA +[2] → #8 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n57" data-id="57" transform="translate(836,947)" style="opacity: 1;"><path class="box" d="M10,0H110L120,10V34L110,44H10L0,34V10Z" fill="#dcecff"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>st_ary</tspan><tspan class="node-id"> #57</tspan></text><text class="type" text-anchor="middle" y="35" x="60">MEM#5:Bot</text><title>#57 st_ary +MEM#5:Bot + +[0] → #41 CTRL +[1] → #124 MEM +[2] → #28 DATA +[3] → #54 DATA +[4] → #56 DATA</title><circle class="port" cx="20" cy="-3" r="3" fill="#536477"/><circle class="port" cx="40" cy="-3" r="3" fill="#536477"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><circle class="port" cx="100" cy="-3" r="3" fill="#536477"/><text class="slot" x="20" y="-10" text-anchor="middle">0</text><text class="slot" x="40" y="-10" text-anchor="middle">1</text><text class="slot" x="60" y="-10" text-anchor="middle">2</text><text class="slot" x="80" y="-10" text-anchor="middle">3</text><text class="slot" x="100" y="-10" text-anchor="middle">4</text></g><g class="node" id="n60" data-id="60" transform="translate(725,683)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Add</tspan><tspan class="node-id"> #60</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#60 Add +int + +[0] → — CTRL +[1] → #34 DATA +[2] → #46 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n65" data-id="65" transform="translate(754,1287)" style="opacity: 1;"><path class="box" d="M20,0H100Q120,0 120,20V24Q120,44 100,44H20Q0,44 0,24V20Q0,0 20,0Z" fill="#ffe0ab"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Loop</tspan><tspan class="node-id"> #65</tspan></text><text class="type" text-anchor="middle" y="35" x="60">Ctrl</text><title>#65 Loop +Ctrl + +[0] → — ASSOC +[1] → #42 CTRL +[2] → #74 CTRL</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n67" data-id="67" transform="translate(906,1287)" style="opacity: 1;"><path class="box" d="M12,0H108L120,22L108,44H12L0,22Z" fill="#f5e4fa"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Phi_i</tspan><tspan class="node-id"> #67</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#67 Phi_i +int + +[0] → #65 ASSOC +[1] → #4 DATA +[2] → #103 DATA</title><circle class="port" cx="-3" cy="22" r="3" fill="#536477"/><circle class="port" cx="40" cy="-3" r="3" fill="#536477"/><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><path class="reg" fill="none" stroke="#b63838" d="M-3,22H-18m4,-3l-4,3l4,3"><title>[0] → #65</title></path><text class="slot" x="-10" y="15" text-anchor="middle">0</text><text class="slot" x="40" y="-10" text-anchor="middle">1</text><text class="slot" x="80" y="-10" text-anchor="middle">2</text></g><g class="node" id="n68" data-id="68" transform="translate(825,1463)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>LT</tspan><tspan class="node-id"> #68</tspan></text><text class="type" text-anchor="middle" y="35" x="60">bool</text><title>#68 LT +bool + +[0] → — CTRL +[1] → #67 DATA +[2] → #18 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n73" data-id="73" transform="translate(734,1569)" style="opacity: 1;"><path class="box" d="M0,0H240V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="120" y="18"><tspan>If</tspan><tspan class="node-id"> #73</tspan></text><text class="type" text-anchor="middle" y="35" x="120">[ Ctrl, Ctrl]</text><title>#73 If +[ Ctrl, Ctrl] + +[0] → #65 CTRL +[1] → #68 DATA</title><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><circle class="port" cx="160" cy="-3" r="3" fill="#536477"/><text class="slot" x="80" y="-10" text-anchor="middle">0</text><text class="slot" x="160" y="-10" text-anchor="middle">1</text></g><g class="node" id="n74" data-id="74" transform="translate(734,1613)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>True</tspan><tspan class="node-id"> #74/0</tspan></text><text class="type" text-anchor="middle" y="35" x="60">Ctrl</text><title>#74 True +Projection 0 of #73 +Ctrl + +[0] → #73 CTRL</title></g><g class="node" id="n75" data-id="75" transform="translate(854,1613)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>False</tspan><tspan class="node-id"> #75/1</tspan></text><text class="type" text-anchor="middle" y="35" x="60">Ctrl</text><title>#75 False +Projection 1 of #73 +Ctrl + +[0] → #73 CTRL</title></g><g class="node" id="n88" data-id="88" transform="translate(968,1833)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Add</tspan><tspan class="node-id"> #88</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#88 Add +int + +[0] → — CTRL +[1] → #131 DATA +[2] → #93 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n91" data-id="91" transform="translate(1850,1463)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Shl</tspan><tspan class="node-id"> #91</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#91 Shl +int + +[0] → — CTRL +[1] → #67 DATA +[2] → #52 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n92" data-id="92" transform="translate(1850,1583.6666666666667)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Add</tspan><tspan class="node-id"> #92</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#92 Add +int + +[0] → — CTRL +[1] → #91 DATA +[2] → #51 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n93" data-id="93" transform="translate(980,1729)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>ld_ary</tspan><tspan class="node-id"> #93</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#93 ld_ary +int + +[0] → #74 CTRL +[1] → #124 MEM +[2] → #28 DATA +[3] → #92 DATA</title><circle class="port" cx="24" cy="-3" r="3" fill="#536477"/><circle class="port" cx="48" cy="-3" r="3" fill="#536477"/><circle class="port" cx="72" cy="-3" r="3" fill="#536477"/><circle class="port" cx="96" cy="-3" r="3" fill="#536477"/><text class="slot" x="24" y="-10" text-anchor="middle">0</text><text class="slot" x="48" y="-10" text-anchor="middle">1</text><text class="slot" x="72" y="-10" text-anchor="middle">2</text><text class="slot" x="96" y="-10" text-anchor="middle">3</text></g><g class="node" id="n94" data-id="94" transform="translate(936,1939)" style="opacity: 1;"><path class="box" d="M10,0H110L120,10V34L110,44H10L0,34V10Z" fill="#dcecff"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>st_sum</tspan><tspan class="node-id"> #94</tspan></text><text class="type" text-anchor="middle" y="35" x="60">MEM#2:Bot</text><title>#94 st_sum +MEM#2:Bot + +[0] → — CTRL +[1] → #104 MEM +[2] → #15 DATA +[3] → #4 DATA +[4] → #88 DATA</title><circle class="port" cx="20" cy="-3" r="3" fill="white"/><circle class="port" cx="40" cy="-3" r="3" fill="#536477"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><circle class="port" cx="100" cy="-3" r="3" fill="#536477"/><text class="slot" x="20" y="-10" text-anchor="middle">0</text><text class="slot" x="40" y="-10" text-anchor="middle">1</text><text class="slot" x="60" y="-10" text-anchor="middle">2</text><text class="slot" x="80" y="-10" text-anchor="middle">3</text><text class="slot" x="100" y="-10" text-anchor="middle">4</text></g><g class="node" id="n99" data-id="99" transform="translate(1698,1463)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Add</tspan><tspan class="node-id"> #99</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#99 Add +int + +[0] → — CTRL +[1] → #138 DATA +[2] → #46 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n100" data-id="100" transform="translate(1655,1569)" style="opacity: 1;"><path class="box" d="M10,0H110L120,10V34L110,44H10L0,34V10Z" fill="#dcecff"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>st_visits</tspan><tspan class="node-id"> #100</tspan></text><text class="type" text-anchor="middle" y="35" x="60">MEM#3:Bot</text><title>#100 st_visits +MEM#3:Bot + +[0] → — CTRL +[1] → #132 MEM +[2] → #15 DATA +[3] → #51 DATA +[4] → #99 DATA</title><circle class="port" cx="20" cy="-3" r="3" fill="white"/><circle class="port" cx="40" cy="-3" r="3" fill="#536477"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><circle class="port" cx="100" cy="-3" r="3" fill="#536477"/><text class="slot" x="20" y="-10" text-anchor="middle">0</text><text class="slot" x="40" y="-10" text-anchor="middle">1</text><text class="slot" x="60" y="-10" text-anchor="middle">2</text><text class="slot" x="80" y="-10" text-anchor="middle">3</text><text class="slot" x="100" y="-10" text-anchor="middle">4</text></g><g class="node" id="n103" data-id="103" transform="translate(988,1463)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Add</tspan><tspan class="node-id"> #103</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#103 Add +int + +[0] → — CTRL +[1] → #67 DATA +[2] → #46 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n104" data-id="104" transform="translate(1058,1287)" style="opacity: 1;"><path class="box" d="M12,0H108L120,22L108,44H12L0,22Z" fill="#f5e4fa"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>MemPhi_2</tspan><tspan class="node-id"> #104</tspan></text><text class="type" text-anchor="middle" y="35" x="60">MEM#2:Bot</text><title>#104 MemPhi_2 +MEM#2:Bot + +[0] → #65 ASSOC +[1] → #16 MEM +[2] → #94 MEM</title><circle class="port" cx="-3" cy="22" r="3" fill="#536477"/><circle class="port" cx="40" cy="-3" r="3" fill="#536477"/><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><path class="reg" fill="none" stroke="#b63838" d="M-3,22H-18m4,-3l-4,3l4,3"><title>[0] → #65</title></path><text class="slot" x="-10" y="15" text-anchor="middle">0</text><text class="slot" x="40" y="-10" text-anchor="middle">1</text><text class="slot" x="80" y="-10" text-anchor="middle">2</text></g><g class="node" id="n106" data-id="106" transform="translate(1919,2080)" style="opacity: 1;"><path class="box" d="M10,0H116L126,10V34L116,44H10L0,34V10Z" fill="#dcecff"/><text class="label" text-anchor="middle" x="63" y="18"><tspan>MemMerge</tspan><tspan class="node-id"> #106</tspan></text><text class="type" text-anchor="middle" y="35" x="63">MemBot</text><title>#106 MemMerge +MemBot + +[0] → — CTRL +[1] → #7 MEM +[2] → #104 MEM +[3] → #132 MEM +[4] → #29 MEM +[5] → #124 MEM</title><circle class="port" cx="18" cy="-3" r="3" fill="white"/><circle class="port" cx="36" cy="-3" r="3" fill="#536477"/><circle class="port" cx="54" cy="-3" r="3" fill="#536477"/><circle class="port" cx="72" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><circle class="port" cx="108" cy="-3" r="3" fill="#536477"/><text class="slot" x="18" y="-10" text-anchor="middle">0</text><text class="slot" x="36" y="-10" text-anchor="middle">1</text><text class="slot" x="54" y="-10" text-anchor="middle">2</text><text class="slot" x="72" y="-10" text-anchor="middle">3</text><text class="slot" x="90" y="-10" text-anchor="middle">4</text><text class="slot" x="108" y="-10" text-anchor="middle">5</text></g><g class="node" id="n112" data-id="112" transform="translate(2013,1463)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Add</tspan><tspan class="node-id"> #112</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#112 Add +int + +[0] → — CTRL +[1] → #138 DATA +[2] → #131 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n115" data-id="115" transform="translate(883,2184)" style="opacity: 1;"><path class="box" d="M0,0H124V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="62" y="18"><tspan>Return</tspan><tspan class="node-id"> #115</tspan></text><text class="type" text-anchor="middle" y="35" x="62">[ Ctrl, MemBot, int]</text><title>#115 Return +[ Ctrl, MemBot, int] + +[0] → #75 CTRL +[1] → #106 MEM +[2] → #112 DATA</title><circle class="port" cx="31" cy="-3" r="3" fill="#536477"/><circle class="port" cx="62" cy="-3" r="3" fill="#536477"/><circle class="port" cx="93" cy="-3" r="3" fill="#536477"/><text class="slot" x="31" y="-10" text-anchor="middle">0</text><text class="slot" x="62" y="-10" text-anchor="middle">1</text><text class="slot" x="93" y="-10" text-anchor="middle">2</text></g><g class="node" id="n124" data-id="124" transform="translate(958,567)" style="opacity: 1;"><path class="box" d="M12,0H108L120,22L108,44H12L0,22Z" fill="#f5e4fa"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>MemPhi_5</tspan><tspan class="node-id"> #124</tspan></text><text class="type" text-anchor="middle" y="35" x="60">MEM#5:Bot</text><title>#124 MemPhi_5 +MEM#5:Bot + +[0] → #32 ASSOC +[1] → #29 MEM +[2] → #57 MEM</title><circle class="port" cx="-3" cy="22" r="3" fill="#536477"/><circle class="port" cx="40" cy="-3" r="3" fill="#536477"/><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><path class="reg" fill="none" stroke="#b63838" d="M-3,22H-18m4,-3l-4,3l4,3"><title>[0] → #32</title></path><text class="slot" x="-10" y="15" text-anchor="middle">0</text><text class="slot" x="40" y="-10" text-anchor="middle">1</text><text class="slot" x="80" y="-10" text-anchor="middle">2</text></g><g class="node" id="n131" data-id="131" transform="translate(1210,1287)" style="opacity: 1;"><path class="box" d="M12,0H108L120,22L108,44H12L0,22Z" fill="#f5e4fa"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Phi_sum</tspan><tspan class="node-id"> #131</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#131 Phi_sum +int + +[0] → #65 ASSOC +[1] → #4 DATA +[2] → #88 DATA</title><circle class="port" cx="-3" cy="22" r="3" fill="#536477"/><circle class="port" cx="40" cy="-3" r="3" fill="#536477"/><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><path class="reg" fill="none" stroke="#b63838" d="M-3,22H-18m4,-3l-4,3l4,3"><title>[0] → #65</title></path><text class="slot" x="-10" y="15" text-anchor="middle">0</text><text class="slot" x="40" y="-10" text-anchor="middle">1</text><text class="slot" x="80" y="-10" text-anchor="middle">2</text></g><g class="node" id="n132" data-id="132" transform="translate(1362,1287)" style="opacity: 1;"><path class="box" d="M12,0H108L120,22L108,44H12L0,22Z" fill="#f5e4fa"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>MemPhi_3</tspan><tspan class="node-id"> #132</tspan></text><text class="type" text-anchor="middle" y="35" x="60">MEM#3:Bot</text><title>#132 MemPhi_3 +MEM#3:Bot + +[0] → #65 ASSOC +[1] → #16 MEM +[2] → #100 MEM</title><circle class="port" cx="-3" cy="22" r="3" fill="#536477"/><circle class="port" cx="40" cy="-3" r="3" fill="#536477"/><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><path class="reg" fill="none" stroke="#b63838" d="M-3,22H-18m4,-3l-4,3l4,3"><title>[0] → #65</title></path><text class="slot" x="-10" y="15" text-anchor="middle">0</text><text class="slot" x="40" y="-10" text-anchor="middle">1</text><text class="slot" x="80" y="-10" text-anchor="middle">2</text></g><g class="node" id="n138" data-id="138" transform="translate(1514,1287)" style="opacity: 1;"><path class="box" d="M12,0H108L120,22L108,44H12L0,22Z" fill="#f5e4fa"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Phi_visits</tspan><tspan class="node-id"> #138</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#138 Phi_visits +int + +[0] → #65 ASSOC +[1] → #4 DATA +[2] → #99 DATA</title><circle class="port" cx="-3" cy="22" r="3" fill="#536477"/><circle class="port" cx="40" cy="-3" r="3" fill="#536477"/><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><path class="reg" fill="none" stroke="#b63838" d="M-3,22H-18m4,-3l-4,3l4,3"><title>[0] → #65</title></path><text class="slot" x="-10" y="15" text-anchor="middle">0</text><text class="slot" x="40" y="-10" text-anchor="middle">1</text><text class="slot" x="80" y="-10" text-anchor="middle">2</text></g></g><g class="region-heads" style="opacity: 1;"><g class="region-head" transform="translate(610,473)"><text class="label" x="26" y="17"><tspan>Loop</tspan><tspan class="node-id"> #32</tspan></text><title>Loop · 12 nodes</title><g class="fold-btn" role="button" tabindex="0" transform="translate(4,4)" aria-label="Fold region #32"><rect width="16" height="16" rx="2"/><text x="8" y="12" text-anchor="middle">−</text><title>Fold region</title></g></g><g class="region-head" transform="translate(658,1149)"><text class="label" x="26" y="17"><tspan>Loop</tspan><tspan class="node-id"> #65</tspan></text><title>Loop · 19 nodes</title><g class="fold-btn" role="button" tabindex="0" transform="translate(4,4)" aria-label="Fold region #65"><rect width="16" height="16" rx="2"/><text x="8" y="12" text-anchor="middle">−</text><title>Fold region</title></g></g></g><g class="shortcuts" style="opacity: 1;"/><g class="peep-ghosts" pointer-events="none"/></g></svg> diff --git a/docs/2026_REBASE/assets/rich-lattice.gv b/docs/2026_REBASE/assets/rich-lattice.gv new file mode 100644 index 00000000..848bca82 --- /dev/null +++ b/docs/2026_REBASE/assets/rich-lattice.gv @@ -0,0 +1,404 @@ +digraph RichLattice { +graph [bgcolor="transparent", ranksep=0.35, nodesep=0.12, pad=0.08]; +node [shape=box, style="rounded,filled", fontname="Arial", fontsize=10, margin="0.06,0.04", color="#647674", penwidth=0.65]; +edge [arrowhead=none, color="#899895", penwidth=0.65]; +n0 [label="BOTTOM", tooltip="Type: Bot", fillcolor="#172e35", fontcolor="white"]; +n1 [label="Ctrl", tooltip="Type: Ctrl", fillcolor="#faedce", fontcolor="#172e35"]; +n2 [label="null", tooltip="Type: null", fillcolor="#faedce", fontcolor="#172e35"]; +n3 [label="ptr", tooltip="TypePtr: ptr", fillcolor="#cce4d6", fontcolor="#172e35"]; +n4 [label="nptr", tooltip="TypePtr: nptr", fillcolor="#cce4d6", fontcolor="#172e35"]; +n5 [label="i32", tooltip="TypeInteger: i32", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n6 [label="i64", tooltip="TypeInteger: i64", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n7 [label="bool", tooltip="TypeInteger: bool", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n8 [label="i1", tooltip="TypeInteger: i1", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n9 [label="u8", tooltip="TypeInteger: u8", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n10 [label="0", tooltip="TypeInteger: 0", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n11 [label="bool", tooltip="TypeInteger: bool", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n12 [label="u8", tooltip="TypeInteger: u8", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n13 [label="[1-255]", tooltip="TypeInteger: [1-255]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n14 [label="[-255-0]", tooltip="TypeInteger: [-255-0]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n15 [label="[-255--1]", tooltip="TypeInteger: [-255--1]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n16 [label="u8", tooltip="TypeInteger: u8", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n17 [label="[1-255]", tooltip="TypeInteger: [1-255]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n18 [label="[-255-0]", tooltip="TypeInteger: [-255-0]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n19 [label="[-255--1]", tooltip="TypeInteger: [-255--1]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n20 [label="u8", tooltip="TypeInteger: u8", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n21 [label="[1-255]", tooltip="TypeInteger: [1-255]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n22 [label="[-255-0]", tooltip="TypeInteger: [-255-0]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n23 [label="[-255--1]", tooltip="TypeInteger: [-255--1]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n24 [label="[1-255]", tooltip="TypeInteger: [1-255]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n25 [label="[-255-0]", tooltip="TypeInteger: [-255-0]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n26 [label="[-255--1]", tooltip="TypeInteger: [-255--1]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n27 [label="flt", tooltip="TypeFloat: flt", fillcolor="#c7eee9", fontcolor="#172e35"]; +n28 [label="f32", tooltip="TypeFloat: f32", fillcolor="#c7eee9", fontcolor="#172e35"]; +n29 [label="3.141592653589793", tooltip="TypeFloat: 3.141592653589793", fillcolor="#c7eee9", fontcolor="#172e35"]; +n30 [label="*void", tooltip="TypeMemPtr: *void", fillcolor="#cce4d6", fontcolor="#172e35"]; +n31 [label="PtrBot", tooltip="TypeMemPtr: PtrBot", fillcolor="#cce4d6", fontcolor="#172e35"]; +n32 [label="*test", tooltip="TypeMemPtr: *test {null !test; }", fillcolor="#cce4d6", fontcolor="#172e35"]; +n33 [label="*test", tooltip="TypeMemPtr: *test {null !test; }", fillcolor="#cce4d6", fontcolor="#172e35"]; +n34 [label="{0}", tooltip="TypeFunPtr: { i64 f32 -> i64 #0}", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n35 [label="{b11}", tooltip="TypeFunPtr: { i64 f32 -> i64 #b11}?", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n36 [label="FunBot", tooltip="TypeFunPtr: FunBot", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n37 [label="{ALL}", tooltip="TypeFunPtr: { i64 -> Bot #ALL}?", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n38 [label="{ALL}", tooltip="TypeFunPtr: { i64 i64 -> PtrBot #ALL}?", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n39 [label="{0}", tooltip="TypeFunPtr: { i64 -> i32 #0}", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n40 [label="{0}", tooltip="TypeFunPtr: { -> i32 #0}", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n41 [label="{0}", tooltip="TypeFunPtr: { Top i64 -> i32 #0}", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n42 [label="{0}", tooltip="TypeFunPtr: { i64 -> i32 #0}", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n43 [label="{0}", tooltip="TypeFunPtr: { -> i32 #0}", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n44 [label="{0}", tooltip="TypeFunPtr: { Bot i64 -> i32 #0}", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n45 [label="#2:null", tooltip="TypeMem: #2:null", fillcolor="#a9c9e5", fontcolor="#172e35"]; +n46 [label="#2:0", tooltip="TypeMem: #2:0", fillcolor="#a9c9e5", fontcolor="#172e35"]; +n47 [label="MemBot", tooltip="TypeMem: MemBot", fillcolor="#a9c9e5", fontcolor="#172e35"]; +n48 [label="!test", tooltip="Field: !test:-2 : null", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n49 [label="test", tooltip="Field: test:-2 : null", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n50 [label="!flt ", tooltip="Field: !flt :-2 : f32", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n51 [label="StructBot", tooltip="TypeStruct: StructBot", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n52 [label="test", tooltip="TypeStruct: test {null !test; }", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n53 [label="[]i64", tooltip="TypeStruct: []i64", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n54 [label="[]u8", tooltip="TypeStruct: []u8", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n55 [label="[]u8", tooltip="TypeStruct: [\"abc\"]", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n56 [label="%SINT", tooltip="TypeStruct: %SINT {... }", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n57 [label="%SFLT", tooltip="TypeStruct: %SFLT {... }", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n58 [label="%SINT", tooltip="TypeStruct: %SINT {u32 !a; *%SFLT {... } !s2; ... }", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n59 [label="%SFLT", tooltip="TypeStruct: %SFLT {f32 !b; *%SINT {u32 !a; *%SFLT {... } !s2; ... } !s1; ... }", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n60 [label="%SFLT", tooltip="TypeStruct: %SFLT {f32 !b; *%SINT {u32 !a; *%SFLT !s2; } !s1; }", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n61 [label="%SINT", tooltip="TypeStruct: %SINT {u32 !a; *%SFLT {f32 !b; *%SINT !s1; } !s2; }", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n62 [label="calloc", tooltip="TypeStruct: calloc {{ i64 i64 -> PtrBot #ALL}? calloc; }", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n63 [label="[BOT]", tooltip="TypeTuple: [BOT]", fillcolor="#f2d7e4", fontcolor="#172e35"]; +n64 [label="[ i64, *test {null !test; }]", tooltip="TypeTuple: [ i64, *test {null !test; }]", fillcolor="#f2d7e4", fontcolor="#172e35"]; +n65 [label="[ Ctrl, MemTop, i64]", tooltip="TypeTuple: [ Ctrl, MemTop, i64]", fillcolor="#f2d7e4", fontcolor="#172e35"]; +n66 [label="[ Ctrl, ~Ctrl]", tooltip="TypeTuple: [ Ctrl, ~Ctrl]", fillcolor="#f2d7e4", fontcolor="#172e35"]; +n67 [label="$[ALL]", tooltip="TypeRPC: $[ALL]", fillcolor="#f4d4b5", fontcolor="#172e35"]; +n68 [label="$[2]", tooltip="TypeRPC: $[2]", fillcolor="#f4d4b5", fontcolor="#172e35"]; +n69 [label="[\"abc\"]", tooltip="TypeConAryB: [\"abc\"]", fillcolor="#d9d5cc", fontcolor="#172e35"]; +n70 [label="[\"abcd\"]", tooltip="TypeConAryB: [\"abcd\"]", fillcolor="#d9d5cc", fontcolor="#172e35"]; +n71 [label="[i32]", tooltip="TypeConAryI: [i32]", fillcolor="#d9d5cc", fontcolor="#172e35"]; +n72 [label="TOP", tooltip="Type: Top", fillcolor="#172e35", fontcolor="white"]; +n73 [label="~Ctrl", tooltip="Type: ~Ctrl", fillcolor="#faedce", fontcolor="#172e35"]; +n74 [label="~nil", tooltip="Type: ~nil", fillcolor="#faedce", fontcolor="#172e35"]; +n75 [label="~ptr", tooltip="TypePtr: ~ptr", fillcolor="#cce4d6", fontcolor="#172e35"]; +n76 [label="~nptr", tooltip="TypePtr: ~nptr", fillcolor="#cce4d6", fontcolor="#172e35"]; +n77 [label="~i32", tooltip="TypeInteger: ~i32", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n78 [label="~i64", tooltip="TypeInteger: ~i64", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n79 [label="~bool", tooltip="TypeInteger: ~bool", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n80 [label="~i1", tooltip="TypeInteger: ~i1", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n81 [label="~u8", tooltip="TypeInteger: ~u8", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n82 [label="0", tooltip="TypeInteger: 0", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n83 [label="~bool", tooltip="TypeInteger: ~bool", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n84 [label="~u8", tooltip="TypeInteger: ~u8", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n85 [label="~[1-255]", tooltip="TypeInteger: ~[1-255]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n86 [label="~[-255-0]", tooltip="TypeInteger: ~[-255-0]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n87 [label="~[-255--1]", tooltip="TypeInteger: ~[-255--1]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n88 [label="~u8", tooltip="TypeInteger: ~u8", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n89 [label="~[1-255]", tooltip="TypeInteger: ~[1-255]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n90 [label="~[-255-0]", tooltip="TypeInteger: ~[-255-0]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n91 [label="~[-255--1]", tooltip="TypeInteger: ~[-255--1]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n92 [label="~u8", tooltip="TypeInteger: ~u8", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n93 [label="~[1-255]", tooltip="TypeInteger: ~[1-255]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n94 [label="~[-255-0]", tooltip="TypeInteger: ~[-255-0]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n95 [label="~[-255--1]", tooltip="TypeInteger: ~[-255--1]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n96 [label="~[1-255]", tooltip="TypeInteger: ~[1-255]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n97 [label="~[-255-0]", tooltip="TypeInteger: ~[-255-0]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n98 [label="~[-255--1]", tooltip="TypeInteger: ~[-255--1]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n99 [label="~flt", tooltip="TypeFloat: ~flt", fillcolor="#c7eee9", fontcolor="#172e35"]; +n100 [label="~f32", tooltip="TypeFloat: ~f32", fillcolor="#c7eee9", fontcolor="#172e35"]; +n101 [label="~*StructTop", tooltip="TypeMemPtr: ~*StructTop", fillcolor="#cce4d6", fontcolor="#172e35"]; +n102 [label="PtrTop", tooltip="TypeMemPtr: PtrTop", fillcolor="#cce4d6", fontcolor="#172e35"]; +n103 [label="~*test", tooltip="TypeMemPtr: ~*test {~nil test; ... }", fillcolor="#cce4d6", fontcolor="#172e35"]; +n104 [label="~*test", tooltip="TypeMemPtr: ~*test {~nil test; ... }", fillcolor="#cce4d6", fontcolor="#172e35"]; +n105 [label="{~0}", tooltip="TypeFunPtr: ~{ ~i64 ~f32 -> ~i64 #~0}", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n106 [label="{~b11}", tooltip="TypeFunPtr: ~{ ~i64 ~f32 -> ~i64 #~b11}?", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n107 [label="FunTop", tooltip="TypeFunPtr: FunTop", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n108 [label="{~ALL}", tooltip="TypeFunPtr: ~{ ~i64 -> Top #~ALL}?", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n109 [label="{~ALL}", tooltip="TypeFunPtr: ~{ ~i64 ~i64 -> PtrTop #~ALL}?", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n110 [label="{~0}", tooltip="TypeFunPtr: ~{ ~i64 -> ~i32 #~0}", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n111 [label="{~0}", tooltip="TypeFunPtr: ~{ -> ~i32 #~0}", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n112 [label="{~0}", tooltip="TypeFunPtr: ~{ Bot ~i64 -> ~i32 #~0}", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n113 [label="{~0}", tooltip="TypeFunPtr: ~{ ~i64 -> ~i32 #~0}", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n114 [label="{~0}", tooltip="TypeFunPtr: ~{ -> ~i32 #~0}", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n115 [label="{~0}", tooltip="TypeFunPtr: ~{ Top ~i64 -> ~i32 #~0}", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n116 [label="#2:~nil", tooltip="TypeMem: #2:~nil", fillcolor="#a9c9e5", fontcolor="#172e35"]; +n117 [label="#2:0", tooltip="TypeMem: #2:0", fillcolor="#a9c9e5", fontcolor="#172e35"]; +n118 [label="MemTop", tooltip="TypeMem: MemTop", fillcolor="#a9c9e5", fontcolor="#172e35"]; +n119 [label="test", tooltip="Field: test:-2 : ~nil", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n120 [label="!test", tooltip="Field: !test:-2 : ~nil", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n121 [label="flt ", tooltip="Field: flt :-2 : ~f32", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n122 [label="StructTop", tooltip="TypeStruct: StructTop", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n123 [label="test", tooltip="TypeStruct: test {~nil test; ... }", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n124 [label="[]i64", tooltip="TypeStruct: []i64", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n125 [label="[]u8", tooltip="TypeStruct: []u8", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n126 [label="[]u8", tooltip="TypeStruct: [\"abc\"]", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n127 [label="%SINT", tooltip="TypeStruct: %SINT {}", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n128 [label="%SFLT", tooltip="TypeStruct: %SFLT {}", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n129 [label="%SINT", tooltip="TypeStruct: %SINT {~u32 a; ~*%SFLT {} s2; }", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n130 [label="%SFLT", tooltip="TypeStruct: %SFLT {~f32 b; ~*%SINT {~u32 a; ~*%SFLT {} s2; } s1; }", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n131 [label="%SFLT", tooltip="TypeStruct: %SFLT {~f32 b; ~*%SINT {~u32 a; ~*%SFLT s2; ... } s1; ... }", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n132 [label="%SINT", tooltip="TypeStruct: %SINT {~u32 a; ~*%SFLT {~f32 b; ~*%SINT s1; ... } s2; ... }", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n133 [label="calloc", tooltip="TypeStruct: calloc {~{ ~i64 ~i64 -> PtrTop #~ALL}? !calloc; ... }", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n134 [label="[TOP]", tooltip="TypeTuple: [TOP]", fillcolor="#f2d7e4", fontcolor="#172e35"]; +n135 [label="[ ~i64, ~*test {~nil test; ... }]", tooltip="TypeTuple: [ ~i64, ~*test {~nil test; ... }]", fillcolor="#f2d7e4", fontcolor="#172e35"]; +n136 [label="[ ~Ctrl, MemBot, ~i64]", tooltip="TypeTuple: [ ~Ctrl, MemBot, ~i64]", fillcolor="#f2d7e4", fontcolor="#172e35"]; +n137 [label="[ ~Ctrl, Ctrl]", tooltip="TypeTuple: [ ~Ctrl, Ctrl]", fillcolor="#f2d7e4", fontcolor="#172e35"]; +n138 [label="$[]", tooltip="TypeRPC: $[]", fillcolor="#f4d4b5", fontcolor="#172e35"]; +n139 [label="$[-2]", tooltip="TypeRPC: $[-2]", fillcolor="#f4d4b5", fontcolor="#172e35"]; +n140 [label="[\"abc\"]", tooltip="TypeConAryB: [\"abc\"]", fillcolor="#d9d5cc", fontcolor="#172e35"]; +n141 [label="[\"abcd\"]", tooltip="TypeConAryB: [\"abcd\"]", fillcolor="#d9d5cc", fontcolor="#172e35"]; +n142 [label="[i32]", tooltip="TypeConAryI: [i32]", fillcolor="#d9d5cc", fontcolor="#172e35"]; +n1 -> n0; +n2 -> n31; +n2 -> n35; +n2 -> n37; +n2 -> n38; +n3 -> n0; +n4 -> n3; +n5 -> n6; +n6 -> n0; +n7 -> n9; +n8 -> n25; +n9 -> n5; +n10 -> n11; +n10 -> n12; +n10 -> n14; +n10 -> n82; +n11 -> n7; +n11 -> n20; +n12 -> n16; +n13 -> n12; +n13 -> n17; +n14 -> n18; +n15 -> n14; +n15 -> n19; +n16 -> n20; +n17 -> n16; +n17 -> n21; +n18 -> n22; +n19 -> n18; +n19 -> n23; +n20 -> n9; +n21 -> n20; +n21 -> n24; +n22 -> n25; +n23 -> n22; +n23 -> n26; +n24 -> n9; +n25 -> n5; +n26 -> n25; +n27 -> n0; +n28 -> n27; +n29 -> n27; +n30 -> n4; +n30 -> n31; +n31 -> n3; +n32 -> n33; +n33 -> n30; +n34 -> n4; +n34 -> n35; +n35 -> n36; +n36 -> n3; +n37 -> n36; +n38 -> n36; +n39 -> n34; +n39 -> n37; +n39 -> n42; +n39 -> n44; +n40 -> n39; +n40 -> n41; +n41 -> n42; +n41 -> n44; +n42 -> n43; +n43 -> n4; +n43 -> n36; +n44 -> n43; +n45 -> n47; +n46 -> n117; +n47 -> n0; +n48 -> n49; +n49 -> n0; +n50 -> n0; +n51 -> n0; +n52 -> n51; +n53 -> n51; +n54 -> n51; +n55 -> n51; +n56 -> n51; +n57 -> n51; +n58 -> n56; +n59 -> n57; +n60 -> n59; +n61 -> n58; +n62 -> n51; +n63 -> n0; +n64 -> n63; +n65 -> n63; +n66 -> n63; +n67 -> n0; +n68 -> n67; +n69 -> n13; +n69 -> n140; +n70 -> n13; +n70 -> n141; +n71 -> n13; +n71 -> n142; +n72 -> n48; +n72 -> n50; +n72 -> n73; +n72 -> n75; +n72 -> n78; +n72 -> n99; +n72 -> n118; +n72 -> n120; +n72 -> n121; +n72 -> n122; +n72 -> n134; +n72 -> n138; +n73 -> n1; +n74 -> n4; +n75 -> n76; +n75 -> n102; +n75 -> n107; +n76 -> n2; +n76 -> n40; +n76 -> n101; +n76 -> n105; +n76 -> n114; +n77 -> n81; +n77 -> n97; +n78 -> n77; +n79 -> n10; +n79 -> n13; +n79 -> n83; +n80 -> n10; +n80 -> n15; +n81 -> n79; +n81 -> n92; +n81 -> n96; +n82 -> n7; +n82 -> n8; +n83 -> n11; +n83 -> n17; +n83 -> n18; +n83 -> n82; +n84 -> n82; +n84 -> n85; +n85 -> n7; +n85 -> n140; +n85 -> n141; +n85 -> n142; +n86 -> n82; +n86 -> n87; +n87 -> n8; +n87 -> n26; +n88 -> n22; +n88 -> n84; +n88 -> n89; +n89 -> n11; +n89 -> n21; +n89 -> n85; +n90 -> n11; +n90 -> n86; +n90 -> n91; +n91 -> n23; +n91 -> n87; +n92 -> n83; +n92 -> n88; +n92 -> n93; +n93 -> n17; +n93 -> n89; +n94 -> n16; +n94 -> n90; +n94 -> n95; +n95 -> n19; +n95 -> n91; +n96 -> n69; +n96 -> n70; +n96 -> n71; +n96 -> n93; +n97 -> n80; +n97 -> n94; +n97 -> n98; +n98 -> n15; +n98 -> n95; +n99 -> n29; +n99 -> n100; +n100 -> n28; +n101 -> n32; +n101 -> n104; +n102 -> n74; +n102 -> n101; +n103 -> n30; +n104 -> n103; +n105 -> n110; +n106 -> n74; +n106 -> n105; +n107 -> n38; +n107 -> n40; +n107 -> n106; +n107 -> n108; +n107 -> n109; +n107 -> n114; +n108 -> n42; +n108 -> n74; +n108 -> n110; +n109 -> n36; +n109 -> n74; +n110 -> n111; +n111 -> n4; +n111 -> n36; +n112 -> n111; +n113 -> n37; +n113 -> n110; +n113 -> n112; +n114 -> n113; +n114 -> n115; +n115 -> n110; +n115 -> n112; +n116 -> n47; +n117 -> n47; +n118 -> n45; +n118 -> n46; +n118 -> n116; +n119 -> n0; +n120 -> n119; +n121 -> n0; +n122 -> n52; +n122 -> n53; +n122 -> n54; +n122 -> n55; +n122 -> n62; +n122 -> n123; +n122 -> n124; +n122 -> n125; +n122 -> n126; +n122 -> n127; +n122 -> n128; +n122 -> n133; +n123 -> n51; +n124 -> n51; +n125 -> n51; +n126 -> n51; +n127 -> n61; +n127 -> n129; +n128 -> n60; +n128 -> n130; +n129 -> n132; +n130 -> n131; +n131 -> n57; +n132 -> n56; +n133 -> n51; +n134 -> n64; +n134 -> n65; +n134 -> n66; +n134 -> n135; +n134 -> n136; +n134 -> n137; +n135 -> n63; +n136 -> n63; +n137 -> n63; +n138 -> n68; +n138 -> n139; +n139 -> n67; +n140 -> n24; +n141 -> n24; +n142 -> n24; +} diff --git a/docs/2026_REBASE/assets/rich-lattice.svg b/docs/2026_REBASE/assets/rich-lattice.svg new file mode 100644 index 00000000..2aecb147 --- /dev/null +++ b/docs/2026_REBASE/assets/rich-lattice.svg @@ -0,0 +1,2579 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 12.2.0 (20241103.1931) + --> +<!-- Title: RichLattice Pages: 1 --> +<svg width="2868pt" height="841pt" + viewBox="0.00 0.00 2867.52 840.52" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(5.76 834.76)"> +<title>RichLattice</title> +<!-- n0 --> +<g id="node1" class="node"> +<title>n0</title> +<g id="a_node1"><a xlink:title="Type: Bot"> +<path fill="#172e35" stroke="#647674" stroke-width="0.65" d="M1457,-36C1457,-36 1427,-36 1427,-36 1421,-36 1415,-30 1415,-24 1415,-24 1415,-12 1415,-12 1415,-6 1421,0 1427,0 1427,0 1457,0 1457,0 1463,0 1469,-6 1469,-12 1469,-12 1469,-24 1469,-24 1469,-30 1463,-36 1457,-36"/> +<text text-anchor="middle" x="1442" y="-14.5" font-family="Arial" font-size="10.00" fill="white">BOTTOM</text> +</a> +</g> +</g> +<!-- n1 --> +<g id="node2" class="node"> +<title>n1</title> +<g id="a_node2"><a xlink:title="Type: Ctrl"> +<path fill="#faedce" stroke="#647674" stroke-width="0.65" d="M744,-158C744,-158 714,-158 714,-158 708,-158 702,-152 702,-146 702,-146 702,-134 702,-134 702,-128 708,-122 714,-122 714,-122 744,-122 744,-122 750,-122 756,-128 756,-134 756,-134 756,-146 756,-146 756,-152 750,-158 744,-158"/> +<text text-anchor="middle" x="729" y="-136.5" font-family="Arial" font-size="10.00" fill="#172e35">Ctrl</text> +</a> +</g> +</g> +<!-- n1->n0 --> +<g id="edge1" class="edge"> +<title>n1->n0</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M750.02,-122.08C774.54,-103.4 817.09,-74.25 859,-61 964.83,-27.55 1315.48,-20.6 1415.28,-19.28"/> +</g> +<!-- n2 --> +<g id="node3" class="node"> +<title>n2</title> +<g id="a_node3"><a xlink:title="Type: null"> +<path fill="#faedce" stroke="#647674" stroke-width="0.65" d="M685,-585C685,-585 655,-585 655,-585 649,-585 643,-579 643,-573 643,-573 643,-561 643,-561 643,-555 649,-549 655,-549 655,-549 685,-549 685,-549 691,-549 697,-555 697,-561 697,-561 697,-573 697,-573 697,-579 691,-585 685,-585"/> +<text text-anchor="middle" x="670" y="-563.5" font-family="Arial" font-size="10.00" fill="#172e35">null</text> +</a> +</g> +</g> +<!-- n31 --> +<g id="node32" class="node"> +<title>n31</title> +<g id="a_node32"><a xlink:title="TypeMemPtr: PtrBot"> +<path fill="#cce4d6" stroke="#647674" stroke-width="0.65" d="M563,-402C563,-402 533,-402 533,-402 527,-402 521,-396 521,-390 521,-390 521,-378 521,-378 521,-372 527,-366 533,-366 533,-366 563,-366 563,-366 569,-366 575,-372 575,-378 575,-378 575,-390 575,-390 575,-396 569,-402 563,-402"/> +<text text-anchor="middle" x="548" y="-380.5" font-family="Arial" font-size="10.00" fill="#172e35">PtrBot</text> +</a> +</g> +</g> +<!-- n2->n31 --> +<g id="edge2" class="edge"> +<title>n2->n31</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M672.39,-549.27C673.89,-532.12 673.47,-505.54 660,-488 642.16,-464.76 621.59,-481.66 599,-463 578.67,-446.21 563.55,-419.18 555.25,-401.75"/> +</g> +<!-- n35 --> +<g id="node36" class="node"> +<title>n35</title> +<g id="a_node36"><a xlink:title="TypeFunPtr: { i64 f32 -> i64 #b11}?"> +<path fill="#dfd0ef" stroke="#647674" stroke-width="0.65" d="M646,-463C646,-463 616,-463 616,-463 610,-463 604,-457 604,-451 604,-451 604,-439 604,-439 604,-433 610,-427 616,-427 616,-427 646,-427 646,-427 652,-427 658,-433 658,-439 658,-439 658,-451 658,-451 658,-457 652,-463 646,-463"/> +<text text-anchor="middle" x="631" y="-441.5" font-family="Arial" font-size="10.00" fill="#172e35">{b11}</text> +</a> +</g> +</g> +<!-- n2->n35 --> +<g id="edge3" class="edge"> +<title>n2->n35</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M676.1,-549.1C680.97,-532.76 685.67,-507.65 677,-488 672.64,-478.11 664.66,-469.53 656.56,-462.76"/> +</g> +<!-- n37 --> +<g id="node38" class="node"> +<title>n37</title> +<g id="a_node38"><a xlink:title="TypeFunPtr: { i64 -> Bot #ALL}?"> +<path fill="#dfd0ef" stroke="#647674" stroke-width="0.65" d="M581,-524C581,-524 551,-524 551,-524 545,-524 539,-518 539,-512 539,-512 539,-500 539,-500 539,-494 545,-488 551,-488 551,-488 581,-488 581,-488 587,-488 593,-494 593,-500 593,-500 593,-512 593,-512 593,-518 587,-524 581,-524"/> +<text text-anchor="middle" x="566" y="-502.5" font-family="Arial" font-size="10.00" fill="#172e35">{ALL}</text> +</a> +</g> +</g> +<!-- n2->n37 --> +<g id="edge4" class="edge"> +<title>n2->n37</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M643.22,-550.81C627.69,-542 608.2,-530.94 592.69,-522.14"/> +</g> +<!-- n38 --> +<g id="node39" class="node"> +<title>n38</title> +<g id="a_node39"><a xlink:title="TypeFunPtr: { i64 i64 -> PtrBot #ALL}?"> +<path fill="#dfd0ef" stroke="#647674" stroke-width="0.65" d="M764,-524C764,-524 734,-524 734,-524 728,-524 722,-518 722,-512 722,-512 722,-500 722,-500 722,-494 728,-488 734,-488 734,-488 764,-488 764,-488 770,-488 776,-494 776,-500 776,-500 776,-512 776,-512 776,-518 770,-524 764,-524"/> +<text text-anchor="middle" x="749" y="-502.5" font-family="Arial" font-size="10.00" fill="#172e35">{ALL}</text> +</a> +</g> +</g> +<!-- n2->n38 --> +<g id="edge5" class="edge"> +<title>n2->n38</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M692.43,-549.25C703.01,-541.35 715.62,-531.93 726.24,-524"/> +</g> +<!-- n3 --> +<g id="node4" class="node"> +<title>n3</title> +<g id="a_node4"><a xlink:title="TypePtr: ptr"> +<path fill="#cce4d6" stroke="#647674" stroke-width="0.65" d="M595,-341C595,-341 565,-341 565,-341 559,-341 553,-335 553,-329 553,-329 553,-317 553,-317 553,-311 559,-305 565,-305 565,-305 595,-305 595,-305 601,-305 607,-311 607,-317 607,-317 607,-329 607,-329 607,-335 601,-341 595,-341"/> +<text text-anchor="middle" x="580" y="-319.5" font-family="Arial" font-size="10.00" fill="#172e35">ptr</text> +</a> +</g> +</g> +<!-- n3->n0 --> +<g id="edge6" class="edge"> +<title>n3->n0</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M606.91,-322.74C678.1,-323.17 866,-313.73 866,-202 866,-202 866,-202 866,-139 866,-25.23 1302.09,-18.59 1415.37,-18.79"/> +</g> +<!-- n4 --> +<g id="node5" class="node"> +<title>n4</title> +<g id="a_node5"><a xlink:title="TypePtr: nptr"> +<path fill="#cce4d6" stroke="#647674" stroke-width="0.65" d="M471,-402C471,-402 441,-402 441,-402 435,-402 429,-396 429,-390 429,-390 429,-378 429,-378 429,-372 435,-366 441,-366 441,-366 471,-366 471,-366 477,-366 483,-372 483,-378 483,-378 483,-390 483,-390 483,-396 477,-402 471,-402"/> +<text text-anchor="middle" x="456" y="-380.5" font-family="Arial" font-size="10.00" fill="#172e35">nptr</text> +</a> +</g> +</g> +<!-- n4->n3 --> +<g id="edge7" class="edge"> +<title>n4->n3</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M482.91,-370.2C503.71,-360.3 532.36,-346.67 553.15,-336.78"/> +</g> +<!-- n5 --> +<g id="node6" class="node"> +<title>n5</title> +<g id="a_node6"><a xlink:title="TypeInteger: i32"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M1155,-158C1155,-158 1125,-158 1125,-158 1119,-158 1113,-152 1113,-146 1113,-146 1113,-134 1113,-134 1113,-128 1119,-122 1125,-122 1125,-122 1155,-122 1155,-122 1161,-122 1167,-128 1167,-134 1167,-134 1167,-146 1167,-146 1167,-152 1161,-158 1155,-158"/> +<text text-anchor="middle" x="1140" y="-136.5" font-family="Arial" font-size="10.00" fill="#172e35">i32</text> +</a> +</g> +</g> +<!-- n6 --> +<g id="node7" class="node"> +<title>n6</title> +<g id="a_node7"><a xlink:title="TypeInteger: i64"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M1281,-97C1281,-97 1251,-97 1251,-97 1245,-97 1239,-91 1239,-85 1239,-85 1239,-73 1239,-73 1239,-67 1245,-61 1251,-61 1251,-61 1281,-61 1281,-61 1287,-61 1293,-67 1293,-73 1293,-73 1293,-85 1293,-85 1293,-91 1287,-97 1281,-97"/> +<text text-anchor="middle" x="1266" y="-75.5" font-family="Arial" font-size="10.00" fill="#172e35">i64</text> +</a> +</g> +</g> +<!-- n5->n6 --> +<g id="edge8" class="edge"> +<title>n5->n6</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1166.72,-126.49C1188.1,-116.48 1217.94,-102.5 1239.32,-92.49"/> +</g> +<!-- n6->n0 --> +<g id="edge9" class="edge"> +<title>n6->n0</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1292.73,-69.04C1325.81,-57.95 1381.82,-39.17 1415.02,-28.05"/> +</g> +<!-- n7 --> +<g id="node8" class="node"> +<title>n7</title> +<g id="a_node8"><a xlink:title="TypeInteger: bool"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M1073,-341C1073,-341 1043,-341 1043,-341 1037,-341 1031,-335 1031,-329 1031,-329 1031,-317 1031,-317 1031,-311 1037,-305 1043,-305 1043,-305 1073,-305 1073,-305 1079,-305 1085,-311 1085,-317 1085,-317 1085,-329 1085,-329 1085,-335 1079,-341 1073,-341"/> +<text text-anchor="middle" x="1058" y="-319.5" font-family="Arial" font-size="10.00" fill="#172e35">bool</text> +</a> +</g> +</g> +<!-- n9 --> +<g id="node10" class="node"> +<title>n9</title> +<g id="a_node10"><a xlink:title="TypeInteger: u8"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M1155,-219C1155,-219 1125,-219 1125,-219 1119,-219 1113,-213 1113,-207 1113,-207 1113,-195 1113,-195 1113,-189 1119,-183 1125,-183 1125,-183 1155,-183 1155,-183 1161,-183 1167,-189 1167,-195 1167,-195 1167,-207 1167,-207 1167,-213 1161,-219 1155,-219"/> +<text text-anchor="middle" x="1140" y="-197.5" font-family="Arial" font-size="10.00" fill="#172e35">u8</text> +</a> +</g> +</g> +<!-- n7->n9 --> +<g id="edge10" class="edge"> +<title>n7->n9</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1068.67,-305.08C1078.81,-289.16 1094.59,-264.72 1109,-244 1114.9,-235.52 1121.69,-226.26 1127.41,-218.6"/> +</g> +<!-- n8 --> +<g id="node9" class="node"> +<title>n8</title> +<g id="a_node9"><a xlink:title="TypeInteger: i1"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M993,-341C993,-341 963,-341 963,-341 957,-341 951,-335 951,-329 951,-329 951,-317 951,-317 951,-311 957,-305 963,-305 963,-305 993,-305 993,-305 999,-305 1005,-311 1005,-317 1005,-317 1005,-329 1005,-329 1005,-335 999,-341 993,-341"/> +<text text-anchor="middle" x="978" y="-319.5" font-family="Arial" font-size="10.00" fill="#172e35">i1</text> +</a> +</g> +</g> +<!-- n25 --> +<g id="node26" class="node"> +<title>n25</title> +<g id="a_node26"><a xlink:title="TypeInteger: [-255-0]"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M970,-280C970,-280 940,-280 940,-280 934,-280 928,-274 928,-268 928,-268 928,-256 928,-256 928,-250 934,-244 940,-244 940,-244 970,-244 970,-244 976,-244 982,-250 982,-256 982,-256 982,-268 982,-268 982,-274 976,-280 970,-280"/> +<text text-anchor="middle" x="955" y="-258.5" font-family="Arial" font-size="10.00" fill="#172e35">[-255-0]</text> +</a> +</g> +</g> +<!-- n8->n25 --> +<g id="edge11" class="edge"> +<title>n8->n25</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M971.47,-305.25C968.39,-297.35 964.72,-287.93 961.63,-280"/> +</g> +<!-- n9->n5 --> +<g id="edge12" class="edge"> +<title>n9->n5</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1140,-183.25C1140,-175.35 1140,-165.93 1140,-158"/> +</g> +<!-- n10 --> +<g id="node11" class="node"> +<title>n10</title> +<g id="a_node11"><a xlink:title="TypeInteger: 0"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M1035,-524C1035,-524 1005,-524 1005,-524 999,-524 993,-518 993,-512 993,-512 993,-500 993,-500 993,-494 999,-488 1005,-488 1005,-488 1035,-488 1035,-488 1041,-488 1047,-494 1047,-500 1047,-500 1047,-512 1047,-512 1047,-518 1041,-524 1035,-524"/> +<text text-anchor="middle" x="1020" y="-502.5" font-family="Arial" font-size="10.00" fill="#172e35">0</text> +</a> +</g> +</g> +<!-- n11 --> +<g id="node12" class="node"> +<title>n11</title> +<g id="a_node12"><a xlink:title="TypeInteger: bool"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M1094,-402C1094,-402 1064,-402 1064,-402 1058,-402 1052,-396 1052,-390 1052,-390 1052,-378 1052,-378 1052,-372 1058,-366 1064,-366 1064,-366 1094,-366 1094,-366 1100,-366 1106,-372 1106,-378 1106,-378 1106,-390 1106,-390 1106,-396 1100,-402 1094,-402"/> +<text text-anchor="middle" x="1079" y="-380.5" font-family="Arial" font-size="10.00" fill="#172e35">bool</text> +</a> +</g> +</g> +<!-- n10->n11 --> +<g id="edge13" class="edge"> +<title>n10->n11</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1018.17,-488.11C1017.17,-471.55 1017.77,-446.08 1028,-427 1033.58,-416.59 1042.93,-407.75 1052.11,-400.92"/> +</g> +<!-- n12 --> +<g id="node13" class="node"> +<title>n12</title> +<g id="a_node13"><a xlink:title="TypeInteger: u8"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M1220,-402C1220,-402 1190,-402 1190,-402 1184,-402 1178,-396 1178,-390 1178,-390 1178,-378 1178,-378 1178,-372 1184,-366 1190,-366 1190,-366 1220,-366 1220,-366 1226,-366 1232,-372 1232,-378 1232,-378 1232,-390 1232,-390 1232,-396 1226,-402 1220,-402"/> +<text text-anchor="middle" x="1205" y="-380.5" font-family="Arial" font-size="10.00" fill="#172e35">u8</text> +</a> +</g> +</g> +<!-- n10->n12 --> +<g id="edge14" class="edge"> +<title>n10->n12</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1046.73,-493.86C1061.46,-486.71 1079.28,-476.27 1092,-463 1104.52,-449.94 1097.54,-439.08 1111,-427 1133.42,-406.88 1146.74,-414.82 1174,-402 1175.33,-401.37 1176.69,-400.71 1178.05,-400.03"/> +</g> +<!-- n14 --> +<g id="node15" class="node"> +<title>n14</title> +<g id="a_node15"><a xlink:title="TypeInteger: [-255-0]"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M955,-463C955,-463 925,-463 925,-463 919,-463 913,-457 913,-451 913,-451 913,-439 913,-439 913,-433 919,-427 925,-427 925,-427 955,-427 955,-427 961,-427 967,-433 967,-439 967,-439 967,-451 967,-451 967,-457 961,-463 955,-463"/> +<text text-anchor="middle" x="940" y="-441.5" font-family="Arial" font-size="10.00" fill="#172e35">[-255-0]</text> +</a> +</g> +</g> +<!-- n10->n14 --> +<g id="edge15" class="edge"> +<title>n10->n14</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M997.29,-488.25C986.57,-480.35 973.8,-470.93 963.05,-463"/> +</g> +<!-- n82 --> +<g id="node83" class="node"> +<title>n82</title> +<g id="a_node83"><a xlink:title="TypeInteger: 0"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M993,-402C993,-402 963,-402 963,-402 957,-402 951,-396 951,-390 951,-390 951,-378 951,-378 951,-372 957,-366 963,-366 963,-366 993,-366 993,-366 999,-366 1005,-372 1005,-378 1005,-378 1005,-390 1005,-390 1005,-396 999,-402 993,-402"/> +<text text-anchor="middle" x="978" y="-380.5" font-family="Arial" font-size="10.00" fill="#172e35">0</text> +</a> +</g> +</g> +<!-- n10->n82 --> +<g id="edge16" class="edge"> +<title>n10->n82</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1014.07,-488.06C1006.07,-465.19 991.89,-424.68 983.9,-401.85"/> +</g> +<!-- n11->n7 --> +<g id="edge17" class="edge"> +<title>n11->n7</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1073.04,-366.25C1070.23,-358.35 1066.87,-348.93 1064.05,-341"/> +</g> +<!-- n20 --> +<g id="node21" class="node"> +<title>n20</title> +<g id="a_node21"><a xlink:title="TypeInteger: u8"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M1155,-280C1155,-280 1125,-280 1125,-280 1119,-280 1113,-274 1113,-268 1113,-268 1113,-256 1113,-256 1113,-250 1119,-244 1125,-244 1125,-244 1155,-244 1155,-244 1161,-244 1167,-250 1167,-256 1167,-256 1167,-268 1167,-268 1167,-274 1161,-280 1155,-280"/> +<text text-anchor="middle" x="1140" y="-258.5" font-family="Arial" font-size="10.00" fill="#172e35">u8</text> +</a> +</g> +</g> +<!-- n11->n20 --> +<g id="edge18" class="edge"> +<title>n11->n20</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1083.98,-366.3C1089.13,-350.1 1097.98,-325.1 1109,-305 1113.79,-296.26 1120.19,-287.27 1125.93,-279.87"/> +</g> +<!-- n16 --> +<g id="node17" class="node"> +<title>n16</title> +<g id="a_node17"><a xlink:title="TypeInteger: u8"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M1155,-341C1155,-341 1125,-341 1125,-341 1119,-341 1113,-335 1113,-329 1113,-329 1113,-317 1113,-317 1113,-311 1119,-305 1125,-305 1125,-305 1155,-305 1155,-305 1161,-305 1167,-311 1167,-317 1167,-317 1167,-329 1167,-329 1167,-335 1161,-341 1155,-341"/> +<text text-anchor="middle" x="1140" y="-319.5" font-family="Arial" font-size="10.00" fill="#172e35">u8</text> +</a> +</g> +</g> +<!-- n12->n16 --> +<g id="edge19" class="edge"> +<title>n12->n16</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1186.55,-366.25C1177.84,-358.35 1167.47,-348.93 1158.72,-341"/> +</g> +<!-- n13 --> +<g id="node14" class="node"> +<title>n13</title> +<g id="a_node14"><a xlink:title="TypeInteger: [1-255]"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M1321,-463C1321,-463 1291,-463 1291,-463 1285,-463 1279,-457 1279,-451 1279,-451 1279,-439 1279,-439 1279,-433 1285,-427 1291,-427 1291,-427 1321,-427 1321,-427 1327,-427 1333,-433 1333,-439 1333,-439 1333,-451 1333,-451 1333,-457 1327,-463 1321,-463"/> +<text text-anchor="middle" x="1306" y="-441.5" font-family="Arial" font-size="10.00" fill="#172e35">[1-255]</text> +</a> +</g> +</g> +<!-- n13->n12 --> +<g id="edge20" class="edge"> +<title>n13->n12</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1279.2,-428.34C1264.59,-419.81 1246.56,-409.28 1231.93,-400.73"/> +</g> +<!-- n17 --> +<g id="node18" class="node"> +<title>n17</title> +<g id="a_node18"><a xlink:title="TypeInteger: [1-255]"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M1157,-402C1157,-402 1127,-402 1127,-402 1121,-402 1115,-396 1115,-390 1115,-390 1115,-378 1115,-378 1115,-372 1121,-366 1127,-366 1127,-366 1157,-366 1157,-366 1163,-366 1169,-372 1169,-378 1169,-378 1169,-390 1169,-390 1169,-396 1163,-402 1157,-402"/> +<text text-anchor="middle" x="1142" y="-380.5" font-family="Arial" font-size="10.00" fill="#172e35">[1-255]</text> +</a> +</g> +</g> +<!-- n13->n17 --> +<g id="edge21" class="edge"> +<title>n13->n17</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1279.14,-429.92C1276.75,-428.87 1274.35,-427.88 1272,-427 1229.88,-411.3 1215.92,-418.22 1174,-402 1172.24,-401.32 1170.45,-400.56 1168.67,-399.76"/> +</g> +<!-- n18 --> +<g id="node19" class="node"> +<title>n18</title> +<g id="a_node19"><a xlink:title="TypeInteger: [-255-0]"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M930,-402C930,-402 900,-402 900,-402 894,-402 888,-396 888,-390 888,-390 888,-378 888,-378 888,-372 894,-366 900,-366 900,-366 930,-366 930,-366 936,-366 942,-372 942,-378 942,-378 942,-390 942,-390 942,-396 936,-402 930,-402"/> +<text text-anchor="middle" x="915" y="-380.5" font-family="Arial" font-size="10.00" fill="#172e35">[-255-0]</text> +</a> +</g> +</g> +<!-- n14->n18 --> +<g id="edge22" class="edge"> +<title>n14->n18</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M932.9,-427.25C929.55,-419.35 925.56,-409.93 922.2,-402"/> +</g> +<!-- n15 --> +<g id="node16" class="node"> +<title>n15</title> +<g id="a_node16"><a xlink:title="TypeInteger: [-255--1]"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M953,-524C953,-524 923,-524 923,-524 917,-524 911,-518 911,-512 911,-512 911,-500 911,-500 911,-494 917,-488 923,-488 923,-488 953,-488 953,-488 959,-488 965,-494 965,-500 965,-500 965,-512 965,-512 965,-518 959,-524 953,-524"/> +<text text-anchor="middle" x="938" y="-502.5" font-family="Arial" font-size="10.00" fill="#172e35">[-255--1]</text> +</a> +</g> +</g> +<!-- n15->n14 --> +<g id="edge23" class="edge"> +<title>n15->n14</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M938.57,-488.25C938.84,-480.35 939.15,-470.93 939.42,-463"/> +</g> +<!-- n19 --> +<g id="node20" class="node"> +<title>n19</title> +<g id="a_node20"><a xlink:title="TypeInteger: [-255--1]"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M810,-463C810,-463 780,-463 780,-463 774,-463 768,-457 768,-451 768,-451 768,-439 768,-439 768,-433 774,-427 780,-427 780,-427 810,-427 810,-427 816,-427 822,-433 822,-439 822,-439 822,-451 822,-451 822,-457 816,-463 810,-463"/> +<text text-anchor="middle" x="795" y="-441.5" font-family="Arial" font-size="10.00" fill="#172e35">[-255--1]</text> +</a> +</g> +</g> +<!-- n15->n19 --> +<g id="edge24" class="edge"> +<title>n15->n19</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M911.29,-490.35C909.51,-489.52 907.74,-488.73 906,-488 871.63,-473.64 860.28,-477.58 826,-463 824.64,-462.42 823.27,-461.81 821.89,-461.16"/> +</g> +<!-- n16->n20 --> +<g id="edge25" class="edge"> +<title>n16->n20</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1140,-305.25C1140,-297.35 1140,-287.93 1140,-280"/> +</g> +<!-- n17->n16 --> +<g id="edge26" class="edge"> +<title>n17->n16</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1141.43,-366.25C1141.16,-358.35 1140.85,-348.93 1140.58,-341"/> +</g> +<!-- n21 --> +<g id="node22" class="node"> +<title>n21</title> +<g id="a_node22"><a xlink:title="TypeInteger: [1-255]"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M1218,-341C1218,-341 1188,-341 1188,-341 1182,-341 1176,-335 1176,-329 1176,-329 1176,-317 1176,-317 1176,-311 1182,-305 1188,-305 1188,-305 1218,-305 1218,-305 1224,-305 1230,-311 1230,-317 1230,-317 1230,-329 1230,-329 1230,-335 1224,-341 1218,-341"/> +<text text-anchor="middle" x="1203" y="-319.5" font-family="Arial" font-size="10.00" fill="#172e35">[1-255]</text> +</a> +</g> +</g> +<!-- n17->n21 --> +<g id="edge27" class="edge"> +<title>n17->n21</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1159.32,-366.25C1167.49,-358.35 1177.22,-348.93 1185.43,-341"/> +</g> +<!-- n22 --> +<g id="node23" class="node"> +<title>n22</title> +<g id="a_node23"><a xlink:title="TypeInteger: [-255-0]"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M930,-341C930,-341 900,-341 900,-341 894,-341 888,-335 888,-329 888,-329 888,-317 888,-317 888,-311 894,-305 900,-305 900,-305 930,-305 930,-305 936,-305 942,-311 942,-317 942,-317 942,-329 942,-329 942,-335 936,-341 930,-341"/> +<text text-anchor="middle" x="915" y="-319.5" font-family="Arial" font-size="10.00" fill="#172e35">[-255-0]</text> +</a> +</g> +</g> +<!-- n18->n22 --> +<g id="edge28" class="edge"> +<title>n18->n22</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M915,-366.25C915,-358.35 915,-348.93 915,-341"/> +</g> +<!-- n19->n18 --> +<g id="edge29" class="edge"> +<title>n19->n18</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M821.98,-429.02C823.33,-428.33 824.68,-427.65 826,-427 850.82,-414.78 858.1,-414.05 883,-402 884.7,-401.18 886.44,-400.31 888.19,-399.43"/> +</g> +<!-- n23 --> +<g id="node24" class="node"> +<title>n23</title> +<g id="a_node24"><a xlink:title="TypeInteger: [-255--1]"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M804,-402C804,-402 774,-402 774,-402 768,-402 762,-396 762,-390 762,-390 762,-378 762,-378 762,-372 768,-366 774,-366 774,-366 804,-366 804,-366 810,-366 816,-372 816,-378 816,-378 816,-390 816,-390 816,-396 810,-402 804,-402"/> +<text text-anchor="middle" x="789" y="-380.5" font-family="Arial" font-size="10.00" fill="#172e35">[-255--1]</text> +</a> +</g> +</g> +<!-- n19->n23 --> +<g id="edge30" class="edge"> +<title>n19->n23</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M793.3,-427.25C792.49,-419.35 791.54,-409.93 790.73,-402"/> +</g> +<!-- n20->n9 --> +<g id="edge31" class="edge"> +<title>n20->n9</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1140,-244.25C1140,-236.35 1140,-226.93 1140,-219"/> +</g> +<!-- n21->n20 --> +<g id="edge32" class="edge"> +<title>n21->n20</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1185.12,-305.25C1176.68,-297.35 1166.62,-287.93 1158.15,-280"/> +</g> +<!-- n24 --> +<g id="node25" class="node"> +<title>n24</title> +<g id="a_node25"><a xlink:title="TypeInteger: [1-255]"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M1281,-280C1281,-280 1251,-280 1251,-280 1245,-280 1239,-274 1239,-268 1239,-268 1239,-256 1239,-256 1239,-250 1245,-244 1251,-244 1251,-244 1281,-244 1281,-244 1287,-244 1293,-250 1293,-256 1293,-256 1293,-268 1293,-268 1293,-274 1287,-280 1281,-280"/> +<text text-anchor="middle" x="1266" y="-258.5" font-family="Arial" font-size="10.00" fill="#172e35">[1-255]</text> +</a> +</g> +</g> +<!-- n21->n24 --> +<g id="edge33" class="edge"> +<title>n21->n24</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1220.88,-305.25C1229.32,-297.35 1239.38,-287.93 1247.85,-280"/> +</g> +<!-- n22->n25 --> +<g id="edge34" class="edge"> +<title>n22->n25</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M926.36,-305.25C931.71,-297.35 938.1,-287.93 943.48,-280"/> +</g> +<!-- n23->n22 --> +<g id="edge35" class="edge"> +<title>n23->n22</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M815.95,-367.97C817.31,-367.29 818.67,-366.63 820,-366 847.26,-353.18 855.66,-353.64 883,-341 884.71,-340.21 886.46,-339.37 888.22,-338.5"/> +</g> +<!-- n26 --> +<g id="node27" class="node"> +<title>n26</title> +<g id="a_node27"><a xlink:title="TypeInteger: [-255--1]"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M867,-341C867,-341 837,-341 837,-341 831,-341 825,-335 825,-329 825,-329 825,-317 825,-317 825,-311 831,-305 837,-305 837,-305 867,-305 867,-305 873,-305 879,-311 879,-317 879,-317 879,-329 879,-329 879,-335 873,-341 867,-341"/> +<text text-anchor="middle" x="852" y="-319.5" font-family="Arial" font-size="10.00" fill="#172e35">[-255--1]</text> +</a> +</g> +</g> +<!-- n23->n26 --> +<g id="edge36" class="edge"> +<title>n23->n26</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M806.88,-366.25C815.32,-358.35 825.38,-348.93 833.85,-341"/> +</g> +<!-- n24->n9 --> +<g id="edge37" class="edge"> +<title>n24->n9</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1239.28,-248.49C1217.9,-238.48 1188.06,-224.5 1166.68,-214.49"/> +</g> +<!-- n25->n5 --> +<g id="edge38" class="edge"> +<title>n25->n5</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M981.11,-244.06C1016.37,-221.19 1078.83,-180.68 1114.02,-157.85"/> +</g> +<!-- n26->n25 --> +<g id="edge39" class="edge"> +<title>n26->n25</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M878.79,-306.65C894.05,-297.91 913.1,-287 928.34,-278.27"/> +</g> +<!-- n27 --> +<g id="node28" class="node"> +<title>n27</title> +<g id="a_node28"><a xlink:title="TypeFloat: flt"> +<path fill="#c7eee9" stroke="#647674" stroke-width="0.65" d="M1263,-585C1263,-585 1233,-585 1233,-585 1227,-585 1221,-579 1221,-573 1221,-573 1221,-561 1221,-561 1221,-555 1227,-549 1233,-549 1233,-549 1263,-549 1263,-549 1269,-549 1275,-555 1275,-561 1275,-561 1275,-573 1275,-573 1275,-579 1269,-585 1263,-585"/> +<text text-anchor="middle" x="1248" y="-563.5" font-family="Arial" font-size="10.00" fill="#172e35">flt</text> +</a> +</g> +</g> +<!-- n27->n0 --> +<g id="edge40" class="edge"> +<title>n27->n0</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1274.86,-563.32C1319.13,-558.32 1404.45,-546.03 1424,-524 1447.16,-497.9 1433,-480.9 1433,-446 1433,-446 1433,-446 1433,-139 1433,-102.02 1437.3,-58.81 1439.96,-35.67"/> +</g> +<!-- n28 --> +<g id="node29" class="node"> +<title>n28</title> +<g id="a_node29"><a xlink:title="TypeFloat: f32"> +<path fill="#c7eee9" stroke="#647674" stroke-width="0.65" d="M1256,-646C1256,-646 1226,-646 1226,-646 1220,-646 1214,-640 1214,-634 1214,-634 1214,-622 1214,-622 1214,-616 1220,-610 1226,-610 1226,-610 1256,-610 1256,-610 1262,-610 1268,-616 1268,-622 1268,-622 1268,-634 1268,-634 1268,-640 1262,-646 1256,-646"/> +<text text-anchor="middle" x="1241" y="-624.5" font-family="Arial" font-size="10.00" fill="#172e35">f32</text> +</a> +</g> +</g> +<!-- n28->n27 --> +<g id="edge41" class="edge"> +<title>n28->n27</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1242.99,-610.25C1243.92,-602.35 1245.04,-592.93 1245.98,-585"/> +</g> +<!-- n29 --> +<g id="node30" class="node"> +<title>n29</title> +<g id="a_node30"><a xlink:title="TypeFloat: 3.141592653589793"> +<path fill="#c7eee9" stroke="#647674" stroke-width="0.65" d="M1192.82,-646C1192.82,-646 1121.18,-646 1121.18,-646 1115.18,-646 1109.18,-640 1109.18,-634 1109.18,-634 1109.18,-622 1109.18,-622 1109.18,-616 1115.18,-610 1121.18,-610 1121.18,-610 1192.82,-610 1192.82,-610 1198.82,-610 1204.82,-616 1204.82,-622 1204.82,-622 1204.82,-634 1204.82,-634 1204.82,-640 1198.82,-646 1192.82,-646"/> +<text text-anchor="middle" x="1157" y="-624.5" font-family="Arial" font-size="10.00" fill="#172e35">3.141592653589793</text> +</a> +</g> +</g> +<!-- n29->n27 --> +<g id="edge42" class="edge"> +<title>n29->n27</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1182.83,-610.25C1195.02,-602.35 1209.55,-592.93 1221.79,-585"/> +</g> +<!-- n30 --> +<g id="node31" class="node"> +<title>n30</title> +<g id="a_node31"><a xlink:title="TypeMemPtr: *void"> +<path fill="#cce4d6" stroke="#647674" stroke-width="0.65" d="M242,-463C242,-463 212,-463 212,-463 206,-463 200,-457 200,-451 200,-451 200,-439 200,-439 200,-433 206,-427 212,-427 212,-427 242,-427 242,-427 248,-427 254,-433 254,-439 254,-439 254,-451 254,-451 254,-457 248,-463 242,-463"/> +<text text-anchor="middle" x="227" y="-441.5" font-family="Arial" font-size="10.00" fill="#172e35">*void</text> +</a> +</g> +</g> +<!-- n30->n4 --> +<g id="edge43" class="edge"> +<title>n30->n4</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M253.59,-431.6C257.7,-429.92 261.93,-428.32 266,-427 322.87,-408.51 391.92,-395.51 429.13,-389.25"/> +</g> +<!-- n30->n31 --> +<g id="edge44" class="edge"> +<title>n30->n31</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M253.76,-440.68C301.1,-434.59 402.59,-420.52 487,-402 498.28,-399.53 510.56,-396.22 521.14,-393.18"/> +</g> +<!-- n31->n3 --> +<g id="edge45" class="edge"> +<title>n31->n3</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M557.08,-366.25C561.37,-358.35 566.48,-348.93 570.78,-341"/> +</g> +<!-- n32 --> +<g id="node33" class="node"> +<title>n32</title> +<g id="a_node33"><a xlink:title="TypeMemPtr: *test {null !test; }"> +<path fill="#cce4d6" stroke="#647674" stroke-width="0.65" d="M143,-585C143,-585 113,-585 113,-585 107,-585 101,-579 101,-573 101,-573 101,-561 101,-561 101,-555 107,-549 113,-549 113,-549 143,-549 143,-549 149,-549 155,-555 155,-561 155,-561 155,-573 155,-573 155,-579 149,-585 143,-585"/> +<text text-anchor="middle" x="128" y="-563.5" font-family="Arial" font-size="10.00" fill="#172e35">*test</text> +</a> +</g> +</g> +<!-- n33 --> +<g id="node34" class="node"> +<title>n33</title> +<g id="a_node34"><a xlink:title="TypeMemPtr: *test {null !test; }"> +<path fill="#cce4d6" stroke="#647674" stroke-width="0.65" d="M154,-524C154,-524 124,-524 124,-524 118,-524 112,-518 112,-512 112,-512 112,-500 112,-500 112,-494 118,-488 124,-488 124,-488 154,-488 154,-488 160,-488 166,-494 166,-500 166,-500 166,-512 166,-512 166,-518 160,-524 154,-524"/> +<text text-anchor="middle" x="139" y="-502.5" font-family="Arial" font-size="10.00" fill="#172e35">*test</text> +</a> +</g> +</g> +<!-- n32->n33 --> +<g id="edge46" class="edge"> +<title>n32->n33</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M131.12,-549.25C132.6,-541.35 134.35,-531.93 135.83,-524"/> +</g> +<!-- n33->n30 --> +<g id="edge47" class="edge"> +<title>n33->n30</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M163.98,-488.25C175.77,-480.35 189.81,-470.93 201.65,-463"/> +</g> +<!-- n34 --> +<g id="node35" class="node"> +<title>n34</title> +<g id="a_node35"><a xlink:title="TypeFunPtr: { i64 f32 -> i64 #0}"> +<path fill="#dfd0ef" stroke="#647674" stroke-width="0.65" d="M644,-524C644,-524 614,-524 614,-524 608,-524 602,-518 602,-512 602,-512 602,-500 602,-500 602,-494 608,-488 614,-488 614,-488 644,-488 644,-488 650,-488 656,-494 656,-500 656,-500 656,-512 656,-512 656,-518 650,-524 644,-524"/> +<text text-anchor="middle" x="629" y="-502.5" font-family="Arial" font-size="10.00" fill="#172e35">{0}</text> +</a> +</g> +</g> +<!-- n34->n4 --> +<g id="edge48" class="edge"> +<title>n34->n4</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M602.23,-488.14C590.42,-480.59 576.42,-471.49 564,-463 534.02,-442.51 500.19,-417.81 478.51,-401.78"/> +</g> +<!-- n34->n35 --> +<g id="edge49" class="edge"> +<title>n34->n35</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M629.57,-488.25C629.84,-480.35 630.15,-470.93 630.42,-463"/> +</g> +<!-- n36 --> +<g id="node37" class="node"> +<title>n36</title> +<g id="a_node37"><a xlink:title="TypeFunPtr: FunBot"> +<path fill="#dfd0ef" stroke="#647674" stroke-width="0.65" d="M626,-402C626,-402 596,-402 596,-402 590,-402 584,-396 584,-390 584,-390 584,-378 584,-378 584,-372 590,-366 596,-366 596,-366 626,-366 626,-366 632,-366 638,-372 638,-378 638,-378 638,-390 638,-390 638,-396 632,-402 626,-402"/> +<text text-anchor="middle" x="611" y="-380.5" font-family="Arial" font-size="10.00" fill="#172e35">FunBot</text> +</a> +</g> +</g> +<!-- n35->n36 --> +<g id="edge50" class="edge"> +<title>n35->n36</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M625.32,-427.25C622.64,-419.35 619.45,-409.93 616.76,-402"/> +</g> +<!-- n36->n3 --> +<g id="edge51" class="edge"> +<title>n36->n3</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M602.2,-366.25C598.05,-358.35 593.1,-348.93 588.93,-341"/> +</g> +<!-- n37->n36 --> +<g id="edge52" class="edge"> +<title>n37->n36</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M572.35,-488.06C580.93,-465.19 596.12,-424.68 604.68,-401.85"/> +</g> +<!-- n38->n36 --> +<g id="edge53" class="edge"> +<title>n38->n36</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M726.08,-488.03C717.32,-480.89 707.61,-472.12 700,-463 688.14,-448.77 691.93,-440.26 679,-427 667.18,-414.88 651.18,-404.77 637.67,-397.51"/> +</g> +<!-- n39 --> +<g id="node40" class="node"> +<title>n39</title> +<g id="a_node40"><a xlink:title="TypeFunPtr: { i64 -> i32 #0}"> +<path fill="#dfd0ef" stroke="#647674" stroke-width="0.65" d="M622,-585C622,-585 592,-585 592,-585 586,-585 580,-579 580,-573 580,-573 580,-561 580,-561 580,-555 586,-549 592,-549 592,-549 622,-549 622,-549 628,-549 634,-555 634,-561 634,-561 634,-573 634,-573 634,-579 628,-585 622,-585"/> +<text text-anchor="middle" x="607" y="-563.5" font-family="Arial" font-size="10.00" fill="#172e35">{0}</text> +</a> +</g> +</g> +<!-- n39->n34 --> +<g id="edge54" class="edge"> +<title>n39->n34</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M613.25,-549.25C616.19,-541.35 619.7,-531.93 622.66,-524"/> +</g> +<!-- n39->n37 --> +<g id="edge55" class="edge"> +<title>n39->n37</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M595.36,-549.25C589.87,-541.35 583.32,-531.93 577.81,-524"/> +</g> +<!-- n42 --> +<g id="node43" class="node"> +<title>n42</title> +<g id="a_node43"><a xlink:title="TypeFunPtr: { i64 -> i32 #0}"> +<path fill="#dfd0ef" stroke="#647674" stroke-width="0.65" d="M455,-524C455,-524 425,-524 425,-524 419,-524 413,-518 413,-512 413,-512 413,-500 413,-500 413,-494 419,-488 425,-488 425,-488 455,-488 455,-488 461,-488 467,-494 467,-500 467,-500 467,-512 467,-512 467,-518 461,-524 455,-524"/> +<text text-anchor="middle" x="440" y="-502.5" font-family="Arial" font-size="10.00" fill="#172e35">{0}</text> +</a> +</g> +</g> +<!-- n39->n42 --> +<g id="edge56" class="edge"> +<title>n39->n42</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M580.34,-551.21C578.56,-550.41 576.76,-549.67 575,-549 530.54,-532.16 515.34,-541.14 471,-524 469.63,-523.47 468.24,-522.89 466.85,-522.27"/> +</g> +<!-- n44 --> +<g id="node45" class="node"> +<title>n44</title> +<g id="a_node45"><a xlink:title="TypeFunPtr: { Bot i64 -> i32 #0}"> +<path fill="#dfd0ef" stroke="#647674" stroke-width="0.65" d="M518,-524C518,-524 488,-524 488,-524 482,-524 476,-518 476,-512 476,-512 476,-500 476,-500 476,-494 482,-488 488,-488 488,-488 518,-488 518,-488 524,-488 530,-494 530,-500 530,-500 530,-512 530,-512 530,-518 524,-524 518,-524"/> +<text text-anchor="middle" x="503" y="-502.5" font-family="Arial" font-size="10.00" fill="#172e35">{0}</text> +</a> +</g> +</g> +<!-- n39->n44 --> +<g id="edge57" class="edge"> +<title>n39->n44</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M580.22,-550.81C564.69,-542 545.2,-530.94 529.69,-522.14"/> +</g> +<!-- n40 --> +<g id="node41" class="node"> +<title>n40</title> +<g id="a_node41"><a xlink:title="TypeFunPtr: { -> i32 #0}"> +<path fill="#dfd0ef" stroke="#647674" stroke-width="0.65" d="M554,-646C554,-646 524,-646 524,-646 518,-646 512,-640 512,-634 512,-634 512,-622 512,-622 512,-616 518,-610 524,-610 524,-610 554,-610 554,-610 560,-610 566,-616 566,-622 566,-622 566,-634 566,-634 566,-640 560,-646 554,-646"/> +<text text-anchor="middle" x="539" y="-624.5" font-family="Arial" font-size="10.00" fill="#172e35">{0}</text> +</a> +</g> +</g> +<!-- n40->n39 --> +<g id="edge58" class="edge"> +<title>n40->n39</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M558.3,-610.25C567.41,-602.35 578.27,-592.93 587.41,-585"/> +</g> +<!-- n41 --> +<g id="node42" class="node"> +<title>n41</title> +<g id="a_node42"><a xlink:title="TypeFunPtr: { Top i64 -> i32 #0}"> +<path fill="#dfd0ef" stroke="#647674" stroke-width="0.65" d="M559,-585C559,-585 529,-585 529,-585 523,-585 517,-579 517,-573 517,-573 517,-561 517,-561 517,-555 523,-549 529,-549 529,-549 559,-549 559,-549 565,-549 571,-555 571,-561 571,-561 571,-573 571,-573 571,-579 565,-585 559,-585"/> +<text text-anchor="middle" x="544" y="-563.5" font-family="Arial" font-size="10.00" fill="#172e35">{0}</text> +</a> +</g> +</g> +<!-- n40->n41 --> +<g id="edge59" class="edge"> +<title>n40->n41</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M540.42,-610.25C541.09,-602.35 541.89,-592.93 542.56,-585"/> +</g> +<!-- n41->n42 --> +<g id="edge60" class="edge"> +<title>n41->n42</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M517.22,-550.81C501.69,-542 482.2,-530.94 466.69,-522.14"/> +</g> +<!-- n41->n44 --> +<g id="edge61" class="edge"> +<title>n41->n44</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M532.36,-549.25C526.87,-541.35 520.32,-531.93 514.81,-524"/> +</g> +<!-- n43 --> +<g id="node44" class="node"> +<title>n43</title> +<g id="a_node44"><a xlink:title="TypeFunPtr: { -> i32 #0}"> +<path fill="#dfd0ef" stroke="#647674" stroke-width="0.65" d="M487,-463C487,-463 457,-463 457,-463 451,-463 445,-457 445,-451 445,-451 445,-439 445,-439 445,-433 451,-427 457,-427 457,-427 487,-427 487,-427 493,-427 499,-433 499,-439 499,-439 499,-451 499,-451 499,-457 493,-463 487,-463"/> +<text text-anchor="middle" x="472" y="-441.5" font-family="Arial" font-size="10.00" fill="#172e35">{0}</text> +</a> +</g> +</g> +<!-- n42->n43 --> +<g id="edge62" class="edge"> +<title>n42->n43</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M449.08,-488.25C453.37,-480.35 458.48,-470.93 462.78,-463"/> +</g> +<!-- n43->n4 --> +<g id="edge63" class="edge"> +<title>n43->n4</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M467.46,-427.25C465.31,-419.35 462.76,-409.93 460.61,-402"/> +</g> +<!-- n43->n36 --> +<g id="edge64" class="edge"> +<title>n43->n36</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M498.74,-434.47C520.6,-426.45 552.17,-414.34 579,-402 580.71,-401.21 582.47,-400.37 584.22,-399.51"/> +</g> +<!-- n44->n43 --> +<g id="edge65" class="edge"> +<title>n44->n43</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M494.2,-488.25C490.05,-480.35 485.1,-470.93 480.93,-463"/> +</g> +<!-- n45 --> +<g id="node46" class="node"> +<title>n45</title> +<g id="a_node46"><a xlink:title="TypeMem: #2:null"> +<path fill="#a9c9e5" stroke="#647674" stroke-width="0.65" d="M1319,-646C1319,-646 1289,-646 1289,-646 1283,-646 1277,-640 1277,-634 1277,-634 1277,-622 1277,-622 1277,-616 1283,-610 1289,-610 1289,-610 1319,-610 1319,-610 1325,-610 1331,-616 1331,-622 1331,-622 1331,-634 1331,-634 1331,-640 1325,-646 1319,-646"/> +<text text-anchor="middle" x="1304" y="-624.5" font-family="Arial" font-size="10.00" fill="#172e35">#2:null</text> +</a> +</g> +</g> +<!-- n47 --> +<g id="node48" class="node"> +<title>n47</title> +<g id="a_node48"><a xlink:title="TypeMem: MemBot"> +<path fill="#a9c9e5" stroke="#647674" stroke-width="0.65" d="M1414,-585C1414,-585 1384,-585 1384,-585 1378,-585 1372,-579 1372,-573 1372,-573 1372,-561 1372,-561 1372,-555 1378,-549 1384,-549 1384,-549 1414,-549 1414,-549 1420,-549 1426,-555 1426,-561 1426,-561 1426,-573 1426,-573 1426,-579 1420,-585 1414,-585"/> +<text text-anchor="middle" x="1399" y="-563.5" font-family="Arial" font-size="10.00" fill="#172e35">MemBot</text> +</a> +</g> +</g> +<!-- n45->n47 --> +<g id="edge66" class="edge"> +<title>n45->n47</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1330.97,-610.25C1343.92,-602.21 1359.38,-592.61 1372.29,-584.59"/> +</g> +<!-- n46 --> +<g id="node47" class="node"> +<title>n46</title> +<g id="a_node47"><a xlink:title="TypeMem: #2:0"> +<path fill="#a9c9e5" stroke="#647674" stroke-width="0.65" d="M1377,-707C1377,-707 1347,-707 1347,-707 1341,-707 1335,-701 1335,-695 1335,-695 1335,-683 1335,-683 1335,-677 1341,-671 1347,-671 1347,-671 1377,-671 1377,-671 1383,-671 1389,-677 1389,-683 1389,-683 1389,-695 1389,-695 1389,-701 1383,-707 1377,-707"/> +<text text-anchor="middle" x="1362" y="-685.5" font-family="Arial" font-size="10.00" fill="#172e35">#2:0</text> +</a> +</g> +</g> +<!-- n117 --> +<g id="node118" class="node"> +<title>n117</title> +<g id="a_node118"><a xlink:title="TypeMem: #2:0"> +<path fill="#a9c9e5" stroke="#647674" stroke-width="0.65" d="M1382,-646C1382,-646 1352,-646 1352,-646 1346,-646 1340,-640 1340,-634 1340,-634 1340,-622 1340,-622 1340,-616 1346,-610 1352,-610 1352,-610 1382,-610 1382,-610 1388,-610 1394,-616 1394,-622 1394,-622 1394,-634 1394,-634 1394,-640 1388,-646 1382,-646"/> +<text text-anchor="middle" x="1367" y="-624.5" font-family="Arial" font-size="10.00" fill="#172e35">#2:0</text> +</a> +</g> +</g> +<!-- n46->n117 --> +<g id="edge67" class="edge"> +<title>n46->n117</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1363.42,-671.25C1364.09,-663.35 1364.89,-653.93 1365.56,-646"/> +</g> +<!-- n47->n0 --> +<g id="edge68" class="edge"> +<title>n47->n0</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1420.19,-549.19C1427.61,-542.19 1435.27,-533.48 1440,-524 1455.67,-492.62 1452,-481.07 1452,-446 1452,-446 1452,-446 1452,-139 1452,-102 1447.22,-58.8 1444.27,-35.66"/> +</g> +<!-- n48 --> +<g id="node49" class="node"> +<title>n48</title> +<g id="a_node49"><a xlink:title="Field: !test:-2 : null"> +<path fill="#e0ebc8" stroke="#647674" stroke-width="0.65" d="M42,-768C42,-768 12,-768 12,-768 6,-768 0,-762 0,-756 0,-756 0,-744 0,-744 0,-738 6,-732 12,-732 12,-732 42,-732 42,-732 48,-732 54,-738 54,-744 54,-744 54,-756 54,-756 54,-762 48,-768 42,-768"/> +<text text-anchor="middle" x="27" y="-746.5" font-family="Arial" font-size="10.00" fill="#172e35">!test</text> +</a> +</g> +</g> +<!-- n49 --> +<g id="node50" class="node"> +<title>n49</title> +<g id="a_node50"><a xlink:title="Field: test:-2 : null"> +<path fill="#e0ebc8" stroke="#647674" stroke-width="0.65" d="M42,-219C42,-219 12,-219 12,-219 6,-219 0,-213 0,-207 0,-207 0,-195 0,-195 0,-189 6,-183 12,-183 12,-183 42,-183 42,-183 48,-183 54,-189 54,-195 54,-195 54,-207 54,-207 54,-213 48,-219 42,-219"/> +<text text-anchor="middle" x="27" y="-197.5" font-family="Arial" font-size="10.00" fill="#172e35">test</text> +</a> +</g> +</g> +<!-- n48->n49 --> +<g id="edge69" class="edge"> +<title>n48->n49</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M27,-732.3C27,-709.12 27,-665.88 27,-629 27,-629 27,-629 27,-322 27,-285.12 27,-241.88 27,-218.7"/> +</g> +<!-- n49->n0 --> +<g id="edge70" class="edge"> +<title>n49->n0</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M53.83,-185.83C56.22,-184.79 58.63,-183.83 61,-183 301.65,-98.17 369.08,-94.75 622,-61 931.79,-19.66 1312.41,-18.32 1415.31,-18.79"/> +</g> +<!-- n50 --> +<g id="node51" class="node"> +<title>n50</title> +<g id="a_node51"><a xlink:title="Field: !flt :-2 : f32"> +<path fill="#e0ebc8" stroke="#647674" stroke-width="0.65" d="M489,-158C489,-158 459,-158 459,-158 453,-158 447,-152 447,-146 447,-146 447,-134 447,-134 447,-128 453,-122 459,-122 459,-122 489,-122 489,-122 495,-122 501,-128 501,-134 501,-134 501,-146 501,-146 501,-152 495,-158 489,-158"/> +<text text-anchor="middle" x="474" y="-136.5" font-family="Arial" font-size="10.00" fill="#172e35">!flt </text> +</a> +</g> +</g> +<!-- n50->n0 --> +<g id="edge71" class="edge"> +<title>n50->n0</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M500.88,-130.55C554.61,-114.06 679.37,-77.72 787,-61 1028.8,-23.43 1325.85,-19.34 1415.3,-18.99"/> +</g> +<!-- n51 --> +<g id="node52" class="node"> +<title>n51</title> +<g id="a_node52"><a xlink:title="TypeStruct: StructBot"> +<path fill="#e0ebc8" stroke="#647674" stroke-width="0.65" d="M1921,-463C1921,-463 1891,-463 1891,-463 1885,-463 1879,-457 1879,-451 1879,-451 1879,-439 1879,-439 1879,-433 1885,-427 1891,-427 1891,-427 1921,-427 1921,-427 1927,-427 1933,-433 1933,-439 1933,-439 1933,-451 1933,-451 1933,-457 1927,-463 1921,-463"/> +<text text-anchor="middle" x="1906" y="-441.5" font-family="Arial" font-size="10.00" fill="#172e35">StructBot</text> +</a> +</g> +</g> +<!-- n51->n0 --> +<g id="edge72" class="edge"> +<title>n51->n0</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1879.28,-438.31C1831.19,-426.32 1735,-393.63 1735,-324 1735,-324 1735,-324 1735,-139 1735,-81.76 1541.11,-38.24 1468.78,-23.99"/> +</g> +<!-- n52 --> +<g id="node53" class="node"> +<title>n52</title> +<g id="a_node53"><a xlink:title="TypeStruct: test {null !test; }"> +<path fill="#e0ebc8" stroke="#647674" stroke-width="0.65" d="M1853,-524C1853,-524 1823,-524 1823,-524 1817,-524 1811,-518 1811,-512 1811,-512 1811,-500 1811,-500 1811,-494 1817,-488 1823,-488 1823,-488 1853,-488 1853,-488 1859,-488 1865,-494 1865,-500 1865,-500 1865,-512 1865,-512 1865,-518 1859,-524 1853,-524"/> +<text text-anchor="middle" x="1838" y="-502.5" font-family="Arial" font-size="10.00" fill="#172e35">test</text> +</a> +</g> +</g> +<!-- n52->n51 --> +<g id="edge73" class="edge"> +<title>n52->n51</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1857.3,-488.25C1866.41,-480.35 1877.27,-470.93 1886.41,-463"/> +</g> +<!-- n53 --> +<g id="node54" class="node"> +<title>n53</title> +<g id="a_node54"><a xlink:title="TypeStruct: []i64"> +<path fill="#e0ebc8" stroke="#647674" stroke-width="0.65" d="M1880,-646C1880,-646 1850,-646 1850,-646 1844,-646 1838,-640 1838,-634 1838,-634 1838,-622 1838,-622 1838,-616 1844,-610 1850,-610 1850,-610 1880,-610 1880,-610 1886,-610 1892,-616 1892,-622 1892,-622 1892,-634 1892,-634 1892,-640 1886,-646 1880,-646"/> +<text text-anchor="middle" x="1865" y="-624.5" font-family="Arial" font-size="10.00" fill="#172e35">[]i64</text> +</a> +</g> +</g> +<!-- n53->n51 --> +<g id="edge74" class="edge"> +<title>n53->n51</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1868.78,-610.3C1876.57,-575.9 1894.33,-497.51 1902.17,-462.93"/> +</g> +<!-- n54 --> +<g id="node55" class="node"> +<title>n54</title> +<g id="a_node55"><a xlink:title="TypeStruct: []u8"> +<path fill="#e0ebc8" stroke="#647674" stroke-width="0.65" d="M1792,-707C1792,-707 1762,-707 1762,-707 1756,-707 1750,-701 1750,-695 1750,-695 1750,-683 1750,-683 1750,-677 1756,-671 1762,-671 1762,-671 1792,-671 1792,-671 1798,-671 1804,-677 1804,-683 1804,-683 1804,-695 1804,-695 1804,-701 1798,-707 1792,-707"/> +<text text-anchor="middle" x="1777" y="-685.5" font-family="Arial" font-size="10.00" fill="#172e35">[]u8</text> +</a> +</g> +</g> +<!-- n54->n51 --> +<g id="edge75" class="edge"> +<title>n54->n51</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1803.69,-673.29C1805.47,-672.48 1807.25,-671.7 1809,-671 1846.72,-655.82 1871.77,-677.88 1897,-646 1919.22,-617.93 1911.51,-505.53 1907.65,-462.7"/> +</g> +<!-- n55 --> +<g id="node56" class="node"> +<title>n55</title> +<g id="a_node56"><a xlink:title="TypeStruct: ["abc"]"> +<path fill="#e0ebc8" stroke="#647674" stroke-width="0.65" d="M1855,-707C1855,-707 1825,-707 1825,-707 1819,-707 1813,-701 1813,-695 1813,-695 1813,-683 1813,-683 1813,-677 1819,-671 1825,-671 1825,-671 1855,-671 1855,-671 1861,-671 1867,-677 1867,-683 1867,-683 1867,-695 1867,-695 1867,-701 1861,-707 1855,-707"/> +<text text-anchor="middle" x="1840" y="-685.5" font-family="Arial" font-size="10.00" fill="#172e35">[]u8</text> +</a> +</g> +</g> +<!-- n55->n51 --> +<g id="edge76" class="edge"> +<title>n55->n51</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1866.88,-673.36C1887.13,-662.2 1911.64,-648.36 1913,-646 1947.44,-586.45 1924.42,-499.38 1912.22,-462.98"/> +</g> +<!-- n56 --> +<g id="node57" class="node"> +<title>n56</title> +<g id="a_node57"><a xlink:title="TypeStruct: %SINT {... }"> +<path fill="#e0ebc8" stroke="#647674" stroke-width="0.65" d="M1609,-524C1609,-524 1579,-524 1579,-524 1573,-524 1567,-518 1567,-512 1567,-512 1567,-500 1567,-500 1567,-494 1573,-488 1579,-488 1579,-488 1609,-488 1609,-488 1615,-488 1621,-494 1621,-500 1621,-500 1621,-512 1621,-512 1621,-518 1615,-524 1609,-524"/> +<text text-anchor="middle" x="1594" y="-502.5" font-family="Arial" font-size="10.00" fill="#172e35">%SINT</text> +</a> +</g> +</g> +<!-- n56->n51 --> +<g id="edge77" class="edge"> +<title>n56->n51</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1620.87,-499.92C1679.85,-488.77 1820.06,-462.25 1879.08,-451.09"/> +</g> +<!-- n57 --> +<g id="node58" class="node"> +<title>n57</title> +<g id="a_node58"><a xlink:title="TypeStruct: %SFLT {... }"> +<path fill="#e0ebc8" stroke="#647674" stroke-width="0.65" d="M1735,-524C1735,-524 1705,-524 1705,-524 1699,-524 1693,-518 1693,-512 1693,-512 1693,-500 1693,-500 1693,-494 1699,-488 1705,-488 1705,-488 1735,-488 1735,-488 1741,-488 1747,-494 1747,-500 1747,-500 1747,-512 1747,-512 1747,-518 1741,-524 1735,-524"/> +<text text-anchor="middle" x="1720" y="-502.5" font-family="Arial" font-size="10.00" fill="#172e35">%SFLT</text> +</a> +</g> +</g> +<!-- n57->n51 --> +<g id="edge78" class="edge"> +<title>n57->n51</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1746.65,-496.55C1781.91,-485.36 1843.71,-465.76 1879.1,-454.53"/> +</g> +<!-- n58 --> +<g id="node59" class="node"> +<title>n58</title> +<g id="a_node59"><a xlink:title="TypeStruct: %SINT {u32 !a; *%SFLT {... } !s2; ... }"> +<path fill="#e0ebc8" stroke="#647674" stroke-width="0.65" d="M1546,-585C1546,-585 1516,-585 1516,-585 1510,-585 1504,-579 1504,-573 1504,-573 1504,-561 1504,-561 1504,-555 1510,-549 1516,-549 1516,-549 1546,-549 1546,-549 1552,-549 1558,-555 1558,-561 1558,-561 1558,-573 1558,-573 1558,-579 1552,-585 1546,-585"/> +<text text-anchor="middle" x="1531" y="-563.5" font-family="Arial" font-size="10.00" fill="#172e35">%SINT</text> +</a> +</g> +</g> +<!-- n58->n56 --> +<g id="edge79" class="edge"> +<title>n58->n56</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1548.88,-549.25C1557.32,-541.35 1567.38,-531.93 1575.85,-524"/> +</g> +<!-- n59 --> +<g id="node60" class="node"> +<title>n59</title> +<g id="a_node60"><a xlink:title="TypeStruct: %SFLT {f32 !b; *%SINT {u32 !a; *%SFLT {... } !s2; ... } !s1; ... }"> +<path fill="#e0ebc8" stroke="#647674" stroke-width="0.65" d="M1735,-585C1735,-585 1705,-585 1705,-585 1699,-585 1693,-579 1693,-573 1693,-573 1693,-561 1693,-561 1693,-555 1699,-549 1705,-549 1705,-549 1735,-549 1735,-549 1741,-549 1747,-555 1747,-561 1747,-561 1747,-573 1747,-573 1747,-579 1741,-585 1735,-585"/> +<text text-anchor="middle" x="1720" y="-563.5" font-family="Arial" font-size="10.00" fill="#172e35">%SFLT</text> +</a> +</g> +</g> +<!-- n59->n57 --> +<g id="edge80" class="edge"> +<title>n59->n57</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1720,-549.25C1720,-541.35 1720,-531.93 1720,-524"/> +</g> +<!-- n60 --> +<g id="node61" class="node"> +<title>n60</title> +<g id="a_node61"><a xlink:title="TypeStruct: %SFLT {f32 !b; *%SINT {u32 !a; *%SFLT !s2; } !s1; }"> +<path fill="#e0ebc8" stroke="#647674" stroke-width="0.65" d="M1735,-646C1735,-646 1705,-646 1705,-646 1699,-646 1693,-640 1693,-634 1693,-634 1693,-622 1693,-622 1693,-616 1699,-610 1705,-610 1705,-610 1735,-610 1735,-610 1741,-610 1747,-616 1747,-622 1747,-622 1747,-634 1747,-634 1747,-640 1741,-646 1735,-646"/> +<text text-anchor="middle" x="1720" y="-624.5" font-family="Arial" font-size="10.00" fill="#172e35">%SFLT</text> +</a> +</g> +</g> +<!-- n60->n59 --> +<g id="edge81" class="edge"> +<title>n60->n59</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1720,-610.25C1720,-602.35 1720,-592.93 1720,-585"/> +</g> +<!-- n61 --> +<g id="node62" class="node"> +<title>n61</title> +<g id="a_node62"><a xlink:title="TypeStruct: %SINT {u32 !a; *%SFLT {f32 !b; *%SINT !s1; } !s2; }"> +<path fill="#e0ebc8" stroke="#647674" stroke-width="0.65" d="M1546,-646C1546,-646 1516,-646 1516,-646 1510,-646 1504,-640 1504,-634 1504,-634 1504,-622 1504,-622 1504,-616 1510,-610 1516,-610 1516,-610 1546,-610 1546,-610 1552,-610 1558,-616 1558,-622 1558,-622 1558,-634 1558,-634 1558,-640 1552,-646 1546,-646"/> +<text text-anchor="middle" x="1531" y="-624.5" font-family="Arial" font-size="10.00" fill="#172e35">%SINT</text> +</a> +</g> +</g> +<!-- n61->n58 --> +<g id="edge82" class="edge"> +<title>n61->n58</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1531,-610.25C1531,-602.35 1531,-592.93 1531,-585"/> +</g> +<!-- n62 --> +<g id="node63" class="node"> +<title>n62</title> +<g id="a_node63"><a xlink:title="TypeStruct: calloc {{ i64 i64 -> PtrBot #ALL}? calloc; }"> +<path fill="#e0ebc8" stroke="#647674" stroke-width="0.65" d="M1918,-707C1918,-707 1888,-707 1888,-707 1882,-707 1876,-701 1876,-695 1876,-695 1876,-683 1876,-683 1876,-677 1882,-671 1888,-671 1888,-671 1918,-671 1918,-671 1924,-671 1930,-677 1930,-683 1930,-683 1930,-695 1930,-695 1930,-701 1924,-707 1918,-707"/> +<text text-anchor="middle" x="1903" y="-685.5" font-family="Arial" font-size="10.00" fill="#172e35">calloc</text> +</a> +</g> +</g> +<!-- n62->n51 --> +<g id="edge83" class="edge"> +<title>n62->n51</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1918.02,-671.28C1923.55,-664.04 1929.15,-655.14 1932,-646 1952.9,-578.96 1951.21,-555.54 1932,-488 1929.47,-479.09 1924.44,-470.22 1919.48,-462.95"/> +</g> +<!-- n63 --> +<g id="node64" class="node"> +<title>n63</title> +<g id="a_node64"><a xlink:title="TypeTuple: [BOT]"> +<path fill="#f2d7e4" stroke="#647674" stroke-width="0.65" d="M2389,-646C2389,-646 2359,-646 2359,-646 2353,-646 2347,-640 2347,-634 2347,-634 2347,-622 2347,-622 2347,-616 2353,-610 2359,-610 2359,-610 2389,-610 2389,-610 2395,-610 2401,-616 2401,-622 2401,-622 2401,-634 2401,-634 2401,-640 2395,-646 2389,-646"/> +<text text-anchor="middle" x="2374" y="-624.5" font-family="Arial" font-size="10.00" fill="#172e35">[BOT]</text> +</a> +</g> +</g> +<!-- n63->n0 --> +<g id="edge84" class="edge"> +<title>n63->n0</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M2347.17,-616.19C2309.63,-599.09 2246,-561.98 2246,-507 2246,-507 2246,-507 2246,-139 2246,-58.56 1608.26,-26.22 1468.75,-20.11"/> +</g> +<!-- n64 --> +<g id="node65" class="node"> +<title>n64</title> +<g id="a_node65"><a xlink:title="TypeTuple: [  i64, *test {null !test; }]"> +<path fill="#f2d7e4" stroke="#647674" stroke-width="0.65" d="M2611.07,-707C2611.07,-707 2522.93,-707 2522.93,-707 2516.93,-707 2510.93,-701 2510.93,-695 2510.93,-695 2510.93,-683 2510.93,-683 2510.93,-677 2516.93,-671 2522.93,-671 2522.93,-671 2611.07,-671 2611.07,-671 2617.07,-671 2623.07,-677 2623.07,-683 2623.07,-683 2623.07,-695 2623.07,-695 2623.07,-701 2617.07,-707 2611.07,-707"/> +<text text-anchor="middle" x="2567" y="-685.5" font-family="Arial" font-size="10.00" fill="#172e35">[  i64, *test {null !test; }]</text> +</a> +</g> +</g> +<!-- n64->n63 --> +<g id="edge85" class="edge"> +<title>n64->n63</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M2511.44,-671.01C2475.13,-659.92 2429.34,-645.92 2400.86,-637.21"/> +</g> +<!-- n65 --> +<g id="node66" class="node"> +<title>n65</title> +<g id="a_node66"><a xlink:title="TypeTuple: [  Ctrl, MemTop, i64]"> +<path fill="#f2d7e4" stroke="#647674" stroke-width="0.65" d="M2718.32,-707C2718.32,-707 2643.68,-707 2643.68,-707 2637.68,-707 2631.68,-701 2631.68,-695 2631.68,-695 2631.68,-683 2631.68,-683 2631.68,-677 2637.68,-671 2643.68,-671 2643.68,-671 2718.32,-671 2718.32,-671 2724.32,-671 2730.32,-677 2730.32,-683 2730.32,-683 2730.32,-695 2730.32,-695 2730.32,-701 2724.32,-707 2718.32,-707"/> +<text text-anchor="middle" x="2681" y="-685.5" font-family="Arial" font-size="10.00" fill="#172e35">[  Ctrl, MemTop, i64]</text> +</a> +</g> +</g> +<!-- n65->n63 --> +<g id="edge86" class="edge"> +<title>n65->n63</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M2631.7,-671.92C2630.45,-671.6 2629.22,-671.3 2628,-671 2546.32,-651.26 2447.63,-637.86 2400.95,-632.14"/> +</g> +<!-- n66 --> +<g id="node67" class="node"> +<title>n66</title> +<g id="a_node67"><a xlink:title="TypeTuple: [  Ctrl, ~Ctrl]"> +<path fill="#f2d7e4" stroke="#647674" stroke-width="0.65" d="M2155.07,-707C2155.07,-707 2114.93,-707 2114.93,-707 2108.93,-707 2102.93,-701 2102.93,-695 2102.93,-695 2102.93,-683 2102.93,-683 2102.93,-677 2108.93,-671 2114.93,-671 2114.93,-671 2155.07,-671 2155.07,-671 2161.07,-671 2167.07,-677 2167.07,-683 2167.07,-683 2167.07,-695 2167.07,-695 2167.07,-701 2161.07,-707 2155.07,-707"/> +<text text-anchor="middle" x="2135" y="-685.5" font-family="Arial" font-size="10.00" fill="#172e35">[  Ctrl, ~Ctrl]</text> +</a> +</g> +</g> +<!-- n66->n63 --> +<g id="edge87" class="edge"> +<title>n66->n63</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M2166.7,-672.88C2168.48,-672.21 2170.25,-671.57 2172,-671 2233.08,-650.91 2307.81,-638.34 2347.03,-632.63"/> +</g> +<!-- n67 --> +<g id="node68" class="node"> +<title>n67</title> +<g id="a_node68"><a xlink:title="TypeRPC: $[ALL]"> +<path fill="#f4d4b5" stroke="#647674" stroke-width="0.65" d="M2781,-646C2781,-646 2751,-646 2751,-646 2745,-646 2739,-640 2739,-634 2739,-634 2739,-622 2739,-622 2739,-616 2745,-610 2751,-610 2751,-610 2781,-610 2781,-610 2787,-610 2793,-616 2793,-622 2793,-622 2793,-634 2793,-634 2793,-640 2787,-646 2781,-646"/> +<text text-anchor="middle" x="2766" y="-624.5" font-family="Arial" font-size="10.00" fill="#172e35">$[ALL]</text> +</a> +</g> +</g> +<!-- n67->n0 --> +<g id="edge88" class="edge"> +<title>n67->n0</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M2739.3,-626.49C2674.08,-623.7 2512,-606.74 2512,-507 2512,-507 2512,-507 2512,-139 2512,-30.7 1635.11,-20.14 1468.98,-19.11"/> +</g> +<!-- n68 --> +<g id="node69" class="node"> +<title>n68</title> +<g id="a_node69"><a xlink:title="TypeRPC: $[2]"> +<path fill="#f4d4b5" stroke="#647674" stroke-width="0.65" d="M2781,-707C2781,-707 2751,-707 2751,-707 2745,-707 2739,-701 2739,-695 2739,-695 2739,-683 2739,-683 2739,-677 2745,-671 2751,-671 2751,-671 2781,-671 2781,-671 2787,-671 2793,-677 2793,-683 2793,-683 2793,-695 2793,-695 2793,-701 2787,-707 2781,-707"/> +<text text-anchor="middle" x="2766" y="-685.5" font-family="Arial" font-size="10.00" fill="#172e35">$[2]</text> +</a> +</g> +</g> +<!-- n68->n67 --> +<g id="edge89" class="edge"> +<title>n68->n67</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M2766,-671.25C2766,-663.35 2766,-653.93 2766,-646"/> +</g> +<!-- n69 --> +<g id="node70" class="node"> +<title>n69</title> +<g id="a_node70"><a xlink:title="TypeConAryB: ["abc"]"> +<path fill="#d9d5cc" stroke="#647674" stroke-width="0.65" d="M1344,-524C1344,-524 1314,-524 1314,-524 1308,-524 1302,-518 1302,-512 1302,-512 1302,-500 1302,-500 1302,-494 1308,-488 1314,-488 1314,-488 1344,-488 1344,-488 1350,-488 1356,-494 1356,-500 1356,-500 1356,-512 1356,-512 1356,-518 1350,-524 1344,-524"/> +<text text-anchor="middle" x="1329" y="-502.5" font-family="Arial" font-size="10.00" fill="#172e35">["abc"]</text> +</a> +</g> +</g> +<!-- n69->n13 --> +<g id="edge90" class="edge"> +<title>n69->n13</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1322.47,-488.25C1319.39,-480.35 1315.72,-470.93 1312.63,-463"/> +</g> +<!-- n140 --> +<g id="node141" class="node"> +<title>n140</title> +<g id="a_node141"><a xlink:title="TypeConAryB: ["abc"]"> +<path fill="#d9d5cc" stroke="#647674" stroke-width="0.65" d="M1344,-341C1344,-341 1314,-341 1314,-341 1308,-341 1302,-335 1302,-329 1302,-329 1302,-317 1302,-317 1302,-311 1308,-305 1314,-305 1314,-305 1344,-305 1344,-305 1350,-305 1356,-311 1356,-317 1356,-317 1356,-329 1356,-329 1356,-335 1350,-341 1344,-341"/> +<text text-anchor="middle" x="1329" y="-319.5" font-family="Arial" font-size="10.00" fill="#172e35">["abc"]</text> +</a> +</g> +</g> +<!-- n69->n140 --> +<g id="edge91" class="edge"> +<title>n69->n140</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1341.7,-488.38C1346.56,-481.02 1351.52,-472 1354,-463 1365.43,-421.43 1365.43,-407.57 1354,-366 1351.52,-357 1346.56,-347.98 1341.7,-340.62"/> +</g> +<!-- n70 --> +<g id="node71" class="node"> +<title>n70</title> +<g id="a_node71"><a xlink:title="TypeConAryB: ["abcd"]"> +<path fill="#d9d5cc" stroke="#647674" stroke-width="0.65" d="M1407,-524C1407,-524 1377,-524 1377,-524 1371,-524 1365,-518 1365,-512 1365,-512 1365,-500 1365,-500 1365,-494 1371,-488 1377,-488 1377,-488 1407,-488 1407,-488 1413,-488 1419,-494 1419,-500 1419,-500 1419,-512 1419,-512 1419,-518 1413,-524 1407,-524"/> +<text text-anchor="middle" x="1392" y="-502.5" font-family="Arial" font-size="10.00" fill="#172e35">["abcd"]</text> +</a> +</g> +</g> +<!-- n70->n13 --> +<g id="edge92" class="edge"> +<title>n70->n13</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1367.59,-488.25C1356.07,-480.35 1342.34,-470.93 1330.77,-463"/> +</g> +<!-- n141 --> +<g id="node142" class="node"> +<title>n141</title> +<g id="a_node142"><a xlink:title="TypeConAryB: ["abcd"]"> +<path fill="#d9d5cc" stroke="#647674" stroke-width="0.65" d="M1407,-341C1407,-341 1377,-341 1377,-341 1371,-341 1365,-335 1365,-329 1365,-329 1365,-317 1365,-317 1365,-311 1371,-305 1377,-305 1377,-305 1407,-305 1407,-305 1413,-305 1419,-311 1419,-317 1419,-317 1419,-329 1419,-329 1419,-335 1413,-341 1407,-341"/> +<text text-anchor="middle" x="1392" y="-319.5" font-family="Arial" font-size="10.00" fill="#172e35">["abcd"]</text> +</a> +</g> +</g> +<!-- n70->n141 --> +<g id="edge93" class="edge"> +<title>n70->n141</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1392,-488.3C1392,-453.9 1392,-375.51 1392,-340.93"/> +</g> +<!-- n71 --> +<g id="node72" class="node"> +<title>n71</title> +<g id="a_node72"><a xlink:title="TypeConAryI: [i32]"> +<path fill="#d9d5cc" stroke="#647674" stroke-width="0.65" d="M1281,-524C1281,-524 1251,-524 1251,-524 1245,-524 1239,-518 1239,-512 1239,-512 1239,-500 1239,-500 1239,-494 1245,-488 1251,-488 1251,-488 1281,-488 1281,-488 1287,-488 1293,-494 1293,-500 1293,-500 1293,-512 1293,-512 1293,-518 1287,-524 1281,-524"/> +<text text-anchor="middle" x="1266" y="-502.5" font-family="Arial" font-size="10.00" fill="#172e35">[i32]</text> +</a> +</g> +</g> +<!-- n71->n13 --> +<g id="edge94" class="edge"> +<title>n71->n13</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1277.36,-488.25C1282.71,-480.35 1289.1,-470.93 1294.48,-463"/> +</g> +<!-- n142 --> +<g id="node143" class="node"> +<title>n142</title> +<g id="a_node143"><a xlink:title="TypeConAryI: [i32]"> +<path fill="#d9d5cc" stroke="#647674" stroke-width="0.65" d="M1281,-341C1281,-341 1251,-341 1251,-341 1245,-341 1239,-335 1239,-329 1239,-329 1239,-317 1239,-317 1239,-311 1245,-305 1251,-305 1251,-305 1281,-305 1281,-305 1287,-305 1293,-311 1293,-317 1293,-317 1293,-329 1293,-329 1293,-335 1287,-341 1281,-341"/> +<text text-anchor="middle" x="1266" y="-319.5" font-family="Arial" font-size="10.00" fill="#172e35">[i32]</text> +</a> +</g> +</g> +<!-- n71->n142 --> +<g id="edge95" class="edge"> +<title>n71->n142</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1292.92,-490.12C1312.81,-479 1336.67,-465.32 1338,-463 1345.97,-449.13 1340.41,-442.82 1338,-427 1333.73,-398.93 1335.06,-389.41 1319,-366 1312.16,-356.03 1302.24,-347.28 1292.83,-340.39"/> +</g> +<!-- n72 --> +<g id="node73" class="node"> +<title>n72</title> +<g id="a_node73"><a xlink:title="Type: Top"> +<path fill="#172e35" stroke="#647674" stroke-width="0.65" d="M1298,-829C1298,-829 1268,-829 1268,-829 1262,-829 1256,-823 1256,-817 1256,-817 1256,-805 1256,-805 1256,-799 1262,-793 1268,-793 1268,-793 1298,-793 1298,-793 1304,-793 1310,-799 1310,-805 1310,-805 1310,-817 1310,-817 1310,-823 1304,-829 1298,-829"/> +<text text-anchor="middle" x="1283" y="-807.5" font-family="Arial" font-size="10.00" fill="white">TOP</text> +</a> +</g> +</g> +<!-- n72->n48 --> +<g id="edge96" class="edge"> +<title>n72->n48</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1256.21,-809.76C1087.97,-808.19 180.39,-798.36 61,-768 58.57,-767.38 56.11,-766.57 53.69,-765.64"/> +</g> +<!-- n72->n50 --> +<g id="edge97" class="edge"> +<title>n72->n50</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1256.21,-810.25C1077.73,-811.59 68,-813.67 68,-690 68,-690 68,-690 68,-261 68,-225.07 70.58,-220.58 165,-183 263.59,-143.76 392.34,-139.99 447.28,-140.37"/> +</g> +<!-- n73 --> +<g id="node74" class="node"> +<title>n73</title> +<g id="a_node74"><a xlink:title="Type: ~Ctrl"> +<path fill="#faedce" stroke="#647674" stroke-width="0.65" d="M324,-768C324,-768 294,-768 294,-768 288,-768 282,-762 282,-756 282,-756 282,-744 282,-744 282,-738 288,-732 294,-732 294,-732 324,-732 324,-732 330,-732 336,-738 336,-744 336,-744 336,-756 336,-756 336,-762 330,-768 324,-768"/> +<text text-anchor="middle" x="309" y="-746.5" font-family="Arial" font-size="10.00" fill="#172e35">~Ctrl</text> +</a> +</g> +</g> +<!-- n72->n73 --> +<g id="edge98" class="edge"> +<title>n72->n73</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1256.12,-809.09C1154.12,-805.54 781.36,-791.63 475,-768 425.9,-764.21 368.81,-757.96 335.99,-754.18"/> +</g> +<!-- n75 --> +<g id="node76" class="node"> +<title>n75</title> +<g id="a_node76"><a xlink:title="TypePtr: ~ptr"> +<path fill="#cce4d6" stroke="#647674" stroke-width="0.65" d="M522,-768C522,-768 492,-768 492,-768 486,-768 480,-762 480,-756 480,-756 480,-744 480,-744 480,-738 486,-732 492,-732 492,-732 522,-732 522,-732 528,-732 534,-738 534,-744 534,-744 534,-756 534,-756 534,-762 528,-768 522,-768"/> +<text text-anchor="middle" x="507" y="-746.5" font-family="Arial" font-size="10.00" fill="#172e35">~ptr</text> +</a> +</g> +</g> +<!-- n72->n75 --> +<g id="edge99" class="edge"> +<title>n72->n75</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1256.29,-807.97C1137.03,-798.9 653.85,-762.16 534,-753.05"/> +</g> +<!-- n78 --> +<g id="node79" class="node"> +<title>n78</title> +<g id="a_node79"><a xlink:title="TypeInteger: ~i64"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M1140,-768C1140,-768 1110,-768 1110,-768 1104,-768 1098,-762 1098,-756 1098,-756 1098,-744 1098,-744 1098,-738 1104,-732 1110,-732 1110,-732 1140,-732 1140,-732 1146,-732 1152,-738 1152,-744 1152,-744 1152,-756 1152,-756 1152,-762 1146,-768 1140,-768"/> +<text text-anchor="middle" x="1125" y="-746.5" font-family="Arial" font-size="10.00" fill="#172e35">~i64</text> +</a> +</g> +</g> +<!-- n72->n78 --> +<g id="edge100" class="edge"> +<title>n72->n78</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1256.2,-799.99C1227.14,-789.14 1181.04,-771.93 1151.93,-761.06"/> +</g> +<!-- n99 --> +<g id="node100" class="node"> +<title>n99</title> +<g id="a_node100"><a xlink:title="TypeFloat: ~flt"> +<path fill="#c7eee9" stroke="#647674" stroke-width="0.65" d="M1256,-768C1256,-768 1226,-768 1226,-768 1220,-768 1214,-762 1214,-756 1214,-756 1214,-744 1214,-744 1214,-738 1220,-732 1226,-732 1226,-732 1256,-732 1256,-732 1262,-732 1268,-738 1268,-744 1268,-744 1268,-756 1268,-756 1268,-762 1262,-768 1256,-768"/> +<text text-anchor="middle" x="1241" y="-746.5" font-family="Arial" font-size="10.00" fill="#172e35">~flt</text> +</a> +</g> +</g> +<!-- n72->n99 --> +<g id="edge101" class="edge"> +<title>n72->n99</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1271.08,-793.25C1265.45,-785.35 1258.75,-775.93 1253.1,-768"/> +</g> +<!-- n118 --> +<g id="node119" class="node"> +<title>n118</title> +<g id="a_node119"><a xlink:title="TypeMem: MemTop"> +<path fill="#a9c9e5" stroke="#647674" stroke-width="0.65" d="M1345,-768C1345,-768 1315,-768 1315,-768 1309,-768 1303,-762 1303,-756 1303,-756 1303,-744 1303,-744 1303,-738 1309,-732 1315,-732 1315,-732 1345,-732 1345,-732 1351,-732 1357,-738 1357,-744 1357,-744 1357,-756 1357,-756 1357,-762 1351,-768 1345,-768"/> +<text text-anchor="middle" x="1330" y="-746.5" font-family="Arial" font-size="10.00" fill="#172e35">MemTop</text> +</a> +</g> +</g> +<!-- n72->n118 --> +<g id="edge102" class="edge"> +<title>n72->n118</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1296.34,-793.25C1302.64,-785.35 1310.14,-775.93 1316.46,-768"/> +</g> +<!-- n120 --> +<g id="node121" class="node"> +<title>n120</title> +<g id="a_node121"><a xlink:title="Field: !test:-2 : ~nil"> +<path fill="#e0ebc8" stroke="#647674" stroke-width="0.65" d="M1434,-768C1434,-768 1404,-768 1404,-768 1398,-768 1392,-762 1392,-756 1392,-756 1392,-744 1392,-744 1392,-738 1398,-732 1404,-732 1404,-732 1434,-732 1434,-732 1440,-732 1446,-738 1446,-744 1446,-744 1446,-756 1446,-756 1446,-762 1440,-768 1434,-768"/> +<text text-anchor="middle" x="1419" y="-746.5" font-family="Arial" font-size="10.00" fill="#172e35">!test</text> +</a> +</g> +</g> +<!-- n72->n120 --> +<g id="edge103" class="edge"> +<title>n72->n120</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1309.87,-798.34C1333.71,-788 1368.36,-772.97 1392.19,-762.63"/> +</g> +<!-- n121 --> +<g id="node122" class="node"> +<title>n121</title> +<g id="a_node122"><a xlink:title="Field: flt :-2 : ~f32"> +<path fill="#e0ebc8" stroke="#647674" stroke-width="0.65" d="M1538,-219C1538,-219 1508,-219 1508,-219 1502,-219 1496,-213 1496,-207 1496,-207 1496,-195 1496,-195 1496,-189 1502,-183 1508,-183 1508,-183 1538,-183 1538,-183 1544,-183 1550,-189 1550,-195 1550,-195 1550,-207 1550,-207 1550,-213 1544,-219 1538,-219"/> +<text text-anchor="middle" x="1523" y="-197.5" font-family="Arial" font-size="10.00" fill="#172e35">flt </text> +</a> +</g> +</g> +<!-- n72->n121 --> +<g id="edge104" class="edge"> +<title>n72->n121</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1309.87,-809.96C1345.8,-808.54 1409.73,-801.11 1451,-768 1481.23,-743.75 1490,-728.76 1490,-690 1490,-690 1490,-690 1490,-322 1490,-283.97 1505.6,-241.51 1515.35,-218.69"/> +</g> +<!-- n122 --> +<g id="node123" class="node"> +<title>n122</title> +<g id="a_node123"><a xlink:title="TypeStruct: StructTop"> +<path fill="#e0ebc8" stroke="#647674" stroke-width="0.65" d="M1792,-768C1792,-768 1762,-768 1762,-768 1756,-768 1750,-762 1750,-756 1750,-756 1750,-744 1750,-744 1750,-738 1756,-732 1762,-732 1762,-732 1792,-732 1792,-732 1798,-732 1804,-738 1804,-744 1804,-744 1804,-756 1804,-756 1804,-762 1798,-768 1792,-768"/> +<text text-anchor="middle" x="1777" y="-746.5" font-family="Arial" font-size="10.00" fill="#172e35">StructTop</text> +</a> +</g> +</g> +<!-- n72->n122 --> +<g id="edge105" class="edge"> +<title>n72->n122</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1309.91,-806.79C1395.98,-796.51 1663.96,-764.5 1750.07,-754.22"/> +</g> +<!-- n134 --> +<g id="node135" class="node"> +<title>n134</title> +<g id="a_node135"><a xlink:title="TypeTuple: [TOP]"> +<path fill="#f2d7e4" stroke="#647674" stroke-width="0.65" d="M2389,-768C2389,-768 2359,-768 2359,-768 2353,-768 2347,-762 2347,-756 2347,-756 2347,-744 2347,-744 2347,-738 2353,-732 2359,-732 2359,-732 2389,-732 2389,-732 2395,-732 2401,-738 2401,-744 2401,-744 2401,-756 2401,-756 2401,-762 2395,-768 2389,-768"/> +<text text-anchor="middle" x="2374" y="-746.5" font-family="Arial" font-size="10.00" fill="#172e35">[TOP]</text> +</a> +</g> +</g> +<!-- n72->n134 --> +<g id="edge106" class="edge"> +<title>n72->n134</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1309.97,-808.54C1460.75,-800.39 2197.9,-760.52 2347.49,-752.43"/> +</g> +<!-- n138 --> +<g id="node139" class="node"> +<title>n138</title> +<g id="a_node139"><a xlink:title="TypeRPC: $[]"> +<path fill="#f4d4b5" stroke="#647674" stroke-width="0.65" d="M2781,-768C2781,-768 2751,-768 2751,-768 2745,-768 2739,-762 2739,-756 2739,-756 2739,-744 2739,-744 2739,-738 2745,-732 2751,-732 2751,-732 2781,-732 2781,-732 2787,-732 2793,-738 2793,-744 2793,-744 2793,-756 2793,-756 2793,-762 2787,-768 2781,-768"/> +<text text-anchor="middle" x="2766" y="-746.5" font-family="Arial" font-size="10.00" fill="#172e35">$[]</text> +</a> +</g> +</g> +<!-- n72->n138 --> +<g id="edge107" class="edge"> +<title>n72->n138</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1309.95,-809.09C1434.67,-804.86 1968.39,-786.52 2406,-768 2530.71,-762.72 2679.68,-755.35 2739.36,-752.35"/> +</g> +<!-- n73->n1 --> +<g id="edge108" class="edge"> +<title>n73->n1</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M282.22,-746.91C223.18,-740.7 87,-716.84 87,-629 87,-629 87,-629 87,-261 87,-197.36 580.73,-153.05 702.23,-143.11"/> +</g> +<!-- n74 --> +<g id="node75" class="node"> +<title>n74</title> +<g id="a_node75"><a xlink:title="Type: ~nil"> +<path fill="#faedce" stroke="#647674" stroke-width="0.65" d="M332,-585C332,-585 302,-585 302,-585 296,-585 290,-579 290,-573 290,-573 290,-561 290,-561 290,-555 296,-549 302,-549 302,-549 332,-549 332,-549 338,-549 344,-555 344,-561 344,-561 344,-573 344,-573 344,-579 338,-585 332,-585"/> +<text text-anchor="middle" x="317" y="-563.5" font-family="Arial" font-size="10.00" fill="#172e35">~nil</text> +</a> +</g> +</g> +<!-- n74->n4 --> +<g id="edge109" class="edge"> +<title>n74->n4</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M298.56,-549.38C292.01,-542.29 285.43,-533.46 282,-524 276.55,-508.96 274.95,-502.36 282,-488 310.48,-430.03 387.91,-402.18 429.21,-391.1"/> +</g> +<!-- n76 --> +<g id="node77" class="node"> +<title>n76</title> +<g id="a_node77"><a xlink:title="TypePtr: ~nptr"> +<path fill="#cce4d6" stroke="#647674" stroke-width="0.65" d="M491,-707C491,-707 461,-707 461,-707 455,-707 449,-701 449,-695 449,-695 449,-683 449,-683 449,-677 455,-671 461,-671 461,-671 491,-671 491,-671 497,-671 503,-677 503,-683 503,-683 503,-695 503,-695 503,-701 497,-707 491,-707"/> +<text text-anchor="middle" x="476" y="-685.5" font-family="Arial" font-size="10.00" fill="#172e35">~nptr</text> +</a> +</g> +</g> +<!-- n75->n76 --> +<g id="edge110" class="edge"> +<title>n75->n76</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M498.2,-732.25C494.05,-724.35 489.1,-714.93 484.93,-707"/> +</g> +<!-- n102 --> +<g id="node103" class="node"> +<title>n102</title> +<g id="a_node103"><a xlink:title="TypeMemPtr: PtrTop"> +<path fill="#cce4d6" stroke="#647674" stroke-width="0.65" d="M300,-707C300,-707 270,-707 270,-707 264,-707 258,-701 258,-695 258,-695 258,-683 258,-683 258,-677 264,-671 270,-671 270,-671 300,-671 300,-671 306,-671 312,-677 312,-683 312,-683 312,-695 312,-695 312,-701 306,-707 300,-707"/> +<text text-anchor="middle" x="285" y="-685.5" font-family="Arial" font-size="10.00" fill="#172e35">PtrTop</text> +</a> +</g> +</g> +<!-- n75->n102 --> +<g id="edge111" class="edge"> +<title>n75->n102</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M480.22,-741.88C437.55,-730.54 354.6,-708.5 311.87,-697.14"/> +</g> +<!-- n107 --> +<g id="node108" class="node"> +<title>n107</title> +<g id="a_node108"><a xlink:title="TypeFunPtr: FunTop"> +<path fill="#dfd0ef" stroke="#647674" stroke-width="0.65" d="M554,-707C554,-707 524,-707 524,-707 518,-707 512,-701 512,-695 512,-695 512,-683 512,-683 512,-677 518,-671 524,-671 524,-671 554,-671 554,-671 560,-671 566,-677 566,-683 566,-683 566,-695 566,-695 566,-701 560,-707 554,-707"/> +<text text-anchor="middle" x="539" y="-685.5" font-family="Arial" font-size="10.00" fill="#172e35">FunTop</text> +</a> +</g> +</g> +<!-- n75->n107 --> +<g id="edge112" class="edge"> +<title>n75->n107</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M516.08,-732.25C520.37,-724.35 525.48,-714.93 529.78,-707"/> +</g> +<!-- n76->n2 --> +<g id="edge113" class="edge"> +<title>n76->n2</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M502.95,-672.97C504.31,-672.29 505.67,-671.63 507,-671 534.26,-658.18 547.58,-666.12 570,-646 583.46,-633.92 576.12,-622.7 589,-610 606.41,-592.83 616.31,-596.29 638,-585 639.67,-584.13 641.4,-583.23 643.13,-582.32"/> +</g> +<!-- n76->n40 --> +<g id="edge114" class="edge"> +<title>n76->n40</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M493.88,-671.25C502.32,-663.35 512.38,-653.93 520.85,-646"/> +</g> +<!-- n101 --> +<g id="node102" class="node"> +<title>n101</title> +<g id="a_node102"><a xlink:title="TypeMemPtr: ~*StructTop"> +<path fill="#cce4d6" stroke="#647674" stroke-width="0.65" d="M228.19,-646C228.19,-646 191.81,-646 191.81,-646 185.81,-646 179.81,-640 179.81,-634 179.81,-634 179.81,-622 179.81,-622 179.81,-616 185.81,-610 191.81,-610 191.81,-610 228.19,-610 228.19,-610 234.19,-610 240.19,-616 240.19,-622 240.19,-622 240.19,-634 240.19,-634 240.19,-640 234.19,-646 228.19,-646"/> +<text text-anchor="middle" x="210" y="-624.5" font-family="Arial" font-size="10.00" fill="#172e35">~*StructTop</text> +</a> +</g> +</g> +<!-- n76->n101 --> +<g id="edge115" class="edge"> +<title>n76->n101</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M449.19,-684.16C407.77,-677.94 325.88,-664.45 258,-646 252.11,-644.4 245.91,-642.43 240,-640.4"/> +</g> +<!-- n105 --> +<g id="node106" class="node"> +<title>n105</title> +<g id="a_node106"><a xlink:title="TypeFunPtr: ~{ ~i64 ~f32 -> ~i64 #~0}"> +<path fill="#dfd0ef" stroke="#647674" stroke-width="0.65" d="M269,-585C269,-585 239,-585 239,-585 233,-585 227,-579 227,-573 227,-573 227,-561 227,-561 227,-555 233,-549 239,-549 239,-549 269,-549 269,-549 275,-549 281,-555 281,-561 281,-561 281,-573 281,-573 281,-579 275,-585 269,-585"/> +<text text-anchor="middle" x="254" y="-563.5" font-family="Arial" font-size="10.00" fill="#172e35">{~0}</text> +</a> +</g> +</g> +<!-- n76->n105 --> +<g id="edge116" class="edge"> +<title>n76->n105</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M449.26,-688.57C410.92,-688.03 339.92,-681.77 294,-646 274.19,-630.57 263.3,-602.63 258.06,-584.71"/> +</g> +<!-- n114 --> +<g id="node115" class="node"> +<title>n114</title> +<g id="a_node115"><a xlink:title="TypeFunPtr: ~{ -> ~i32 #~0}"> +<path fill="#dfd0ef" stroke="#647674" stroke-width="0.65" d="M491,-646C491,-646 461,-646 461,-646 455,-646 449,-640 449,-634 449,-634 449,-622 449,-622 449,-616 455,-610 461,-610 461,-610 491,-610 491,-610 497,-610 503,-616 503,-622 503,-622 503,-634 503,-634 503,-640 497,-646 491,-646"/> +<text text-anchor="middle" x="476" y="-624.5" font-family="Arial" font-size="10.00" fill="#172e35">{~0}</text> +</a> +</g> +</g> +<!-- n76->n114 --> +<g id="edge117" class="edge"> +<title>n76->n114</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M476,-671.25C476,-663.35 476,-653.93 476,-646"/> +</g> +<!-- n77 --> +<g id="node78" class="node"> +<title>n77</title> +<g id="a_node78"><a xlink:title="TypeInteger: ~i32"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M1088,-707C1088,-707 1058,-707 1058,-707 1052,-707 1046,-701 1046,-695 1046,-695 1046,-683 1046,-683 1046,-677 1052,-671 1058,-671 1058,-671 1088,-671 1088,-671 1094,-671 1100,-677 1100,-683 1100,-683 1100,-695 1100,-695 1100,-701 1094,-707 1088,-707"/> +<text text-anchor="middle" x="1073" y="-685.5" font-family="Arial" font-size="10.00" fill="#172e35">~i32</text> +</a> +</g> +</g> +<!-- n81 --> +<g id="node82" class="node"> +<title>n81</title> +<g id="a_node82"><a xlink:title="TypeInteger: ~u8"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M1088,-646C1088,-646 1058,-646 1058,-646 1052,-646 1046,-640 1046,-634 1046,-634 1046,-622 1046,-622 1046,-616 1052,-610 1058,-610 1058,-610 1088,-610 1088,-610 1094,-610 1100,-616 1100,-622 1100,-622 1100,-634 1100,-634 1100,-640 1094,-646 1088,-646"/> +<text text-anchor="middle" x="1073" y="-624.5" font-family="Arial" font-size="10.00" fill="#172e35">~u8</text> +</a> +</g> +</g> +<!-- n77->n81 --> +<g id="edge118" class="edge"> +<title>n77->n81</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1073,-671.25C1073,-663.35 1073,-653.93 1073,-646"/> +</g> +<!-- n97 --> +<g id="node98" class="node"> +<title>n97</title> +<g id="a_node98"><a xlink:title="TypeInteger: ~[-255-0]"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M951,-646C951,-646 921,-646 921,-646 915,-646 909,-640 909,-634 909,-634 909,-622 909,-622 909,-616 915,-610 921,-610 921,-610 951,-610 951,-610 957,-610 963,-616 963,-622 963,-622 963,-634 963,-634 963,-640 957,-646 951,-646"/> +<text text-anchor="middle" x="936" y="-624.5" font-family="Arial" font-size="10.00" fill="#172e35">~[-255-0]</text> +</a> +</g> +</g> +<!-- n77->n97 --> +<g id="edge119" class="edge"> +<title>n77->n97</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1046.26,-676.48C1022.12,-666.09 986.79,-650.87 962.67,-640.49"/> +</g> +<!-- n78->n77 --> +<g id="edge120" class="edge"> +<title>n78->n77</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1110.24,-732.25C1103.27,-724.35 1094.97,-714.93 1087.98,-707"/> +</g> +<!-- n79 --> +<g id="node80" class="node"> +<title>n79</title> +<g id="a_node80"><a xlink:title="TypeInteger: ~bool"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M1074,-585C1074,-585 1044,-585 1044,-585 1038,-585 1032,-579 1032,-573 1032,-573 1032,-561 1032,-561 1032,-555 1038,-549 1044,-549 1044,-549 1074,-549 1074,-549 1080,-549 1086,-555 1086,-561 1086,-561 1086,-573 1086,-573 1086,-579 1080,-585 1074,-585"/> +<text text-anchor="middle" x="1059" y="-563.5" font-family="Arial" font-size="10.00" fill="#172e35">~bool</text> +</a> +</g> +</g> +<!-- n79->n10 --> +<g id="edge121" class="edge"> +<title>n79->n10</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1047.93,-549.25C1042.7,-541.35 1036.48,-531.93 1031.23,-524"/> +</g> +<!-- n79->n13 --> +<g id="edge122" class="edge"> +<title>n79->n13</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1085.99,-550.97C1087.66,-550.26 1089.34,-549.59 1091,-549 1144.36,-529.95 1170.6,-557.89 1216,-524 1230.5,-513.18 1222.52,-501.1 1235,-488 1247.45,-474.93 1264.84,-464.56 1279.3,-457.38"/> +</g> +<!-- n83 --> +<g id="node84" class="node"> +<title>n83</title> +<g id="a_node84"><a xlink:title="TypeInteger: ~bool"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M1075,-463C1075,-463 1045,-463 1045,-463 1039,-463 1033,-457 1033,-451 1033,-451 1033,-439 1033,-439 1033,-433 1039,-427 1045,-427 1045,-427 1075,-427 1075,-427 1081,-427 1087,-433 1087,-439 1087,-439 1087,-451 1087,-451 1087,-457 1081,-463 1075,-463"/> +<text text-anchor="middle" x="1060" y="-441.5" font-family="Arial" font-size="10.00" fill="#172e35">~bool</text> +</a> +</g> +</g> +<!-- n79->n83 --> +<g id="edge123" class="edge"> +<title>n79->n83</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1059.14,-549.06C1059.33,-526.19 1059.67,-485.68 1059.86,-462.85"/> +</g> +<!-- n80 --> +<g id="node81" class="node"> +<title>n80</title> +<g id="a_node81"><a xlink:title="TypeInteger: ~i1"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M982,-585C982,-585 952,-585 952,-585 946,-585 940,-579 940,-573 940,-573 940,-561 940,-561 940,-555 946,-549 952,-549 952,-549 982,-549 982,-549 988,-549 994,-555 994,-561 994,-561 994,-573 994,-573 994,-579 988,-585 982,-585"/> +<text text-anchor="middle" x="967" y="-563.5" font-family="Arial" font-size="10.00" fill="#172e35">~i1</text> +</a> +</g> +</g> +<!-- n80->n10 --> +<g id="edge124" class="edge"> +<title>n80->n10</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M982.05,-549.25C989.15,-541.35 997.6,-531.93 1004.73,-524"/> +</g> +<!-- n80->n15 --> +<g id="edge125" class="edge"> +<title>n80->n15</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M958.77,-549.25C954.88,-541.35 950.25,-531.93 946.35,-524"/> +</g> +<!-- n81->n79 --> +<g id="edge126" class="edge"> +<title>n81->n79</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1069.03,-610.25C1067.15,-602.35 1064.92,-592.93 1063.03,-585"/> +</g> +<!-- n92 --> +<g id="node93" class="node"> +<title>n92</title> +<g id="a_node93"><a xlink:title="TypeInteger: ~u8"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M1137,-585C1137,-585 1107,-585 1107,-585 1101,-585 1095,-579 1095,-573 1095,-573 1095,-561 1095,-561 1095,-555 1101,-549 1107,-549 1107,-549 1137,-549 1137,-549 1143,-549 1149,-555 1149,-561 1149,-561 1149,-573 1149,-573 1149,-579 1143,-585 1137,-585"/> +<text text-anchor="middle" x="1122" y="-563.5" font-family="Arial" font-size="10.00" fill="#172e35">~u8</text> +</a> +</g> +</g> +<!-- n81->n92 --> +<g id="edge127" class="edge"> +<title>n81->n92</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1086.91,-610.25C1093.47,-602.35 1101.29,-592.93 1107.88,-585"/> +</g> +<!-- n96 --> +<g id="node97" class="node"> +<title>n96</title> +<g id="a_node97"><a xlink:title="TypeInteger: ~[1-255]"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M1200,-585C1200,-585 1170,-585 1170,-585 1164,-585 1158,-579 1158,-573 1158,-573 1158,-561 1158,-561 1158,-555 1164,-549 1170,-549 1170,-549 1200,-549 1200,-549 1206,-549 1212,-555 1212,-561 1212,-561 1212,-573 1212,-573 1212,-579 1206,-585 1200,-585"/> +<text text-anchor="middle" x="1185" y="-563.5" font-family="Arial" font-size="10.00" fill="#172e35">~[1-255]</text> +</a> +</g> +</g> +<!-- n81->n96 --> +<g id="edge128" class="edge"> +<title>n81->n96</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1099.87,-612.68C1101.6,-611.77 1103.33,-610.87 1105,-610 1126.69,-598.71 1132.39,-596.43 1154,-585 1155.41,-584.25 1156.85,-583.48 1158.31,-582.7"/> +</g> +<!-- n82->n7 --> +<g id="edge129" class="edge"> +<title>n82->n7</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1000.71,-366.25C1011.43,-358.35 1024.2,-348.93 1034.95,-341"/> +</g> +<!-- n82->n8 --> +<g id="edge130" class="edge"> +<title>n82->n8</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M978,-366.25C978,-358.35 978,-348.93 978,-341"/> +</g> +<!-- n83->n11 --> +<g id="edge131" class="edge"> +<title>n83->n11</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1065.39,-427.25C1067.94,-419.35 1070.97,-409.93 1073.53,-402"/> +</g> +<!-- n83->n17 --> +<g id="edge132" class="edge"> +<title>n83->n17</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1083.28,-427.25C1094.26,-419.35 1107.35,-409.93 1118.38,-402"/> +</g> +<!-- n83->n18 --> +<g id="edge133" class="edge"> +<title>n83->n18</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1033.29,-435.42C1009.9,-427.6 975.18,-415.29 946,-402 944.66,-401.39 943.3,-400.74 941.93,-400.08"/> +</g> +<!-- n83->n82 --> +<g id="edge134" class="edge"> +<title>n83->n82</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1036.72,-427.25C1025.74,-419.35 1012.65,-409.93 1001.62,-402"/> +</g> +<!-- n84 --> +<g id="node85" class="node"> +<title>n84</title> +<g id="a_node85"><a xlink:title="TypeInteger: ~u8"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M1157,-463C1157,-463 1127,-463 1127,-463 1121,-463 1115,-457 1115,-451 1115,-451 1115,-439 1115,-439 1115,-433 1121,-427 1127,-427 1127,-427 1157,-427 1157,-427 1163,-427 1169,-433 1169,-439 1169,-439 1169,-451 1169,-451 1169,-457 1163,-463 1157,-463"/> +<text text-anchor="middle" x="1142" y="-441.5" font-family="Arial" font-size="10.00" fill="#172e35">~u8</text> +</a> +</g> +</g> +<!-- n84->n82 --> +<g id="edge135" class="edge"> +<title>n84->n82</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1115.29,-434.39C1084.88,-423.45 1035.49,-405.68 1004.98,-394.7"/> +</g> +<!-- n85 --> +<g id="node86" class="node"> +<title>n85</title> +<g id="a_node86"><a xlink:title="TypeInteger: ~[1-255]"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M1302,-402C1302,-402 1272,-402 1272,-402 1266,-402 1260,-396 1260,-390 1260,-390 1260,-378 1260,-378 1260,-372 1266,-366 1272,-366 1272,-366 1302,-366 1302,-366 1308,-366 1314,-372 1314,-378 1314,-378 1314,-390 1314,-390 1314,-396 1308,-402 1302,-402"/> +<text text-anchor="middle" x="1287" y="-380.5" font-family="Arial" font-size="10.00" fill="#172e35">~[1-255]</text> +</a> +</g> +</g> +<!-- n84->n85 --> +<g id="edge136" class="edge"> +<title>n84->n85</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1168.93,-433.04C1194.98,-422.44 1234.22,-406.48 1260.21,-395.9"/> +</g> +<!-- n85->n7 --> +<g id="edge137" class="edge"> +<title>n85->n7</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1260.22,-373.15C1252.76,-370.61 1244.62,-368.03 1237,-366 1180.99,-351.08 1165.06,-355.75 1109,-341 1101.06,-338.91 1092.55,-336.25 1084.8,-333.65"/> +</g> +<!-- n85->n140 --> +<g id="edge138" class="edge"> +<title>n85->n140</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1298.92,-366.25C1304.55,-358.35 1311.25,-348.93 1316.9,-341"/> +</g> +<!-- n85->n141 --> +<g id="edge139" class="edge"> +<title>n85->n141</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1313.77,-367.96C1329.57,-359.08 1349.49,-347.89 1365.28,-339.01"/> +</g> +<!-- n85->n142 --> +<g id="edge140" class="edge"> +<title>n85->n142</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1281.04,-366.25C1278.23,-358.35 1274.87,-348.93 1272.05,-341"/> +</g> +<!-- n86 --> +<g id="node87" class="node"> +<title>n86</title> +<g id="a_node87"><a xlink:title="TypeInteger: ~[-255-0]"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M873,-463C873,-463 843,-463 843,-463 837,-463 831,-457 831,-451 831,-451 831,-439 831,-439 831,-433 837,-427 843,-427 843,-427 873,-427 873,-427 879,-427 885,-433 885,-439 885,-439 885,-451 885,-451 885,-457 879,-463 873,-463"/> +<text text-anchor="middle" x="858" y="-441.5" font-family="Arial" font-size="10.00" fill="#172e35">~[-255-0]</text> +</a> +</g> +</g> +<!-- n86->n82 --> +<g id="edge141" class="edge"> +<title>n86->n82</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M884.69,-430.56C887.16,-429.35 889.62,-428.14 892,-427 915.83,-415.53 922.31,-413.76 946,-402 947.69,-401.16 949.42,-400.28 951.17,-399.39"/> +</g> +<!-- n87 --> +<g id="node88" class="node"> +<title>n87</title> +<g id="a_node88"><a xlink:title="TypeInteger: ~[-255--1]"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M867,-402C867,-402 837,-402 837,-402 831,-402 825,-396 825,-390 825,-390 825,-378 825,-378 825,-372 831,-366 837,-366 837,-366 867,-366 867,-366 873,-366 879,-372 879,-378 879,-378 879,-390 879,-390 879,-396 873,-402 867,-402"/> +<text text-anchor="middle" x="852" y="-380.5" font-family="Arial" font-size="10.00" fill="#172e35">~[-255--1]</text> +</a> +</g> +</g> +<!-- n86->n87 --> +<g id="edge142" class="edge"> +<title>n86->n87</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M856.3,-427.25C855.49,-419.35 854.54,-409.93 853.73,-402"/> +</g> +<!-- n87->n8 --> +<g id="edge143" class="edge"> +<title>n87->n8</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M878.95,-367.97C880.31,-367.29 881.67,-366.63 883,-366 910.26,-353.18 918.66,-353.64 946,-341 947.71,-340.21 949.46,-339.37 951.22,-338.5"/> +</g> +<!-- n87->n26 --> +<g id="edge144" class="edge"> +<title>n87->n26</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M852,-366.25C852,-358.35 852,-348.93 852,-341"/> +</g> +<!-- n88 --> +<g id="node89" class="node"> +<title>n88</title> +<g id="a_node89"><a xlink:title="TypeInteger: ~u8"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M1136,-524C1136,-524 1106,-524 1106,-524 1100,-524 1094,-518 1094,-512 1094,-512 1094,-500 1094,-500 1094,-494 1100,-488 1106,-488 1106,-488 1136,-488 1136,-488 1142,-488 1148,-494 1148,-500 1148,-500 1148,-512 1148,-512 1148,-518 1142,-524 1136,-524"/> +<text text-anchor="middle" x="1121" y="-502.5" font-family="Arial" font-size="10.00" fill="#172e35">~u8</text> +</a> +</g> +</g> +<!-- n88->n22 --> +<g id="edge145" class="edge"> +<title>n88->n22</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1147.85,-490.75C1157.99,-483.85 1168.43,-474.52 1174,-463 1180.96,-448.6 1184.16,-439.36 1174,-427 1137.46,-382.57 1098.12,-428.38 1047,-402 1026.33,-391.33 1028.61,-378.52 1009,-366 983.61,-349.79 973.26,-353.82 946,-341 944.67,-340.37 943.31,-339.71 941.95,-339.03"/> +</g> +<!-- n88->n84 --> +<g id="edge146" class="edge"> +<title>n88->n84</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1126.96,-488.25C1129.77,-480.35 1133.13,-470.93 1135.95,-463"/> +</g> +<!-- n89 --> +<g id="node90" class="node"> +<title>n89</title> +<g id="a_node90"><a xlink:title="TypeInteger: ~[1-255]"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M1239,-463C1239,-463 1209,-463 1209,-463 1203,-463 1197,-457 1197,-451 1197,-451 1197,-439 1197,-439 1197,-433 1203,-427 1209,-427 1209,-427 1239,-427 1239,-427 1245,-427 1251,-433 1251,-439 1251,-439 1251,-451 1251,-451 1251,-457 1245,-463 1239,-463"/> +<text text-anchor="middle" x="1224" y="-441.5" font-family="Arial" font-size="10.00" fill="#172e35">~[1-255]</text> +</a> +</g> +</g> +<!-- n88->n89 --> +<g id="edge147" class="edge"> +<title>n88->n89</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1147.79,-489.65C1163.05,-480.91 1182.1,-470 1197.34,-461.27"/> +</g> +<!-- n89->n11 --> +<g id="edge148" class="edge"> +<title>n89->n11</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1197.08,-430.06C1194.71,-428.98 1192.32,-427.94 1190,-427 1155.87,-413.17 1144.96,-416.25 1111,-402 1109.26,-401.27 1107.49,-400.48 1105.72,-399.65"/> +</g> +<!-- n89->n21 --> +<g id="edge149" class="edge"> +<title>n89->n21</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1231.56,-427.14C1237.67,-411.05 1244.19,-386.32 1237,-366 1233.68,-356.63 1227.28,-347.81 1220.92,-340.71"/> +</g> +<!-- n89->n85 --> +<g id="edge150" class="edge"> +<title>n89->n85</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1241.88,-427.25C1250.32,-419.35 1260.38,-409.93 1268.85,-402"/> +</g> +<!-- n90 --> +<g id="node91" class="node"> +<title>n90</title> +<g id="a_node91"><a xlink:title="TypeInteger: ~[-255-0]"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M890,-524C890,-524 860,-524 860,-524 854,-524 848,-518 848,-512 848,-512 848,-500 848,-500 848,-494 854,-488 860,-488 860,-488 890,-488 890,-488 896,-488 902,-494 902,-500 902,-500 902,-512 902,-512 902,-518 896,-524 890,-524"/> +<text text-anchor="middle" x="875" y="-502.5" font-family="Arial" font-size="10.00" fill="#172e35">~[-255-0]</text> +</a> +</g> +</g> +<!-- n90->n11 --> +<g id="edge151" class="edge"> +<title>n90->n11</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M881.21,-488.14C889.32,-466.49 903.08,-431.2 908,-427 908.7,-426.41 1004.04,-403.2 1052.04,-391.54"/> +</g> +<!-- n90->n86 --> +<g id="edge152" class="edge"> +<title>n90->n86</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M870.17,-488.25C867.9,-480.35 865.18,-470.93 862.9,-463"/> +</g> +<!-- n91 --> +<g id="node92" class="node"> +<title>n91</title> +<g id="a_node92"><a xlink:title="TypeInteger: ~[-255--1]"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M747,-463C747,-463 717,-463 717,-463 711,-463 705,-457 705,-451 705,-451 705,-439 705,-439 705,-433 711,-427 717,-427 717,-427 747,-427 747,-427 753,-427 759,-433 759,-439 759,-439 759,-451 759,-451 759,-457 753,-463 747,-463"/> +<text text-anchor="middle" x="732" y="-441.5" font-family="Arial" font-size="10.00" fill="#172e35">~[-255--1]</text> +</a> +</g> +</g> +<!-- n90->n91 --> +<g id="edge153" class="edge"> +<title>n90->n91</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M848.29,-490.35C846.51,-489.52 844.74,-488.73 843,-488 808.63,-473.64 797.28,-477.58 763,-463 761.64,-462.42 760.27,-461.81 758.89,-461.16"/> +</g> +<!-- n91->n23 --> +<g id="edge154" class="edge"> +<title>n91->n23</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M748.18,-427.25C755.82,-419.35 764.91,-409.93 772.58,-402"/> +</g> +<!-- n91->n87 --> +<g id="edge155" class="edge"> +<title>n91->n87</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M758.98,-429.02C760.33,-428.33 761.68,-427.65 763,-427 787.82,-414.78 795.1,-414.05 820,-402 821.7,-401.18 823.44,-400.31 825.19,-399.43"/> +</g> +<!-- n92->n83 --> +<g id="edge156" class="edge"> +<title>n92->n83</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1107.44,-549.19C1101.51,-541.8 1094.91,-532.8 1090,-524 1078.83,-503.98 1070.02,-478.96 1064.91,-462.74"/> +</g> +<!-- n92->n88 --> +<g id="edge157" class="edge"> +<title>n92->n88</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1121.72,-549.25C1121.58,-541.35 1121.42,-531.93 1121.29,-524"/> +</g> +<!-- n93 --> +<g id="node94" class="node"> +<title>n93</title> +<g id="a_node94"><a xlink:title="TypeInteger: ~[1-255]"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M1199,-524C1199,-524 1169,-524 1169,-524 1163,-524 1157,-518 1157,-512 1157,-512 1157,-500 1157,-500 1157,-494 1163,-488 1169,-488 1169,-488 1199,-488 1199,-488 1205,-488 1211,-494 1211,-500 1211,-500 1211,-512 1211,-512 1211,-518 1205,-524 1199,-524"/> +<text text-anchor="middle" x="1184" y="-502.5" font-family="Arial" font-size="10.00" fill="#172e35">~[1-255]</text> +</a> +</g> +</g> +<!-- n92->n93 --> +<g id="edge158" class="edge"> +<title>n92->n93</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1139.6,-549.25C1147.91,-541.35 1157.8,-531.93 1166.14,-524"/> +</g> +<!-- n93->n17 --> +<g id="edge159" class="edge"> +<title>n93->n17</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1211,-490.94C1230.32,-480.6 1253.37,-467.58 1256,-463 1263.97,-449.13 1265.52,-439.86 1256,-427 1233.32,-396.38 1209.21,-416.56 1174,-402 1172.26,-401.28 1170.48,-400.49 1168.71,-399.67"/> +</g> +<!-- n93->n89 --> +<g id="edge160" class="edge"> +<title>n93->n89</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1195.36,-488.25C1200.71,-480.35 1207.1,-470.93 1212.48,-463"/> +</g> +<!-- n94 --> +<g id="node95" class="node"> +<title>n94</title> +<g id="a_node95"><a xlink:title="TypeInteger: ~[-255-0]"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M919,-585C919,-585 889,-585 889,-585 883,-585 877,-579 877,-573 877,-573 877,-561 877,-561 877,-555 883,-549 889,-549 889,-549 919,-549 919,-549 925,-549 931,-555 931,-561 931,-561 931,-573 931,-573 931,-579 925,-585 919,-585"/> +<text text-anchor="middle" x="904" y="-563.5" font-family="Arial" font-size="10.00" fill="#172e35">~[-255-0]</text> +</a> +</g> +</g> +<!-- n94->n16 --> +<g id="edge161" class="edge"> +<title>n94->n16</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M930.82,-550.64C946,-541.58 963.1,-530.62 969,-524 982.02,-509.38 1032.92,-379.6 1047,-366 1056.94,-356.4 1089.3,-342.9 1113.06,-333.82"/> +</g> +<!-- n94->n90 --> +<g id="edge162" class="edge"> +<title>n94->n90</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M895.77,-549.25C891.88,-541.35 887.25,-531.93 883.35,-524"/> +</g> +<!-- n95 --> +<g id="node96" class="node"> +<title>n95</title> +<g id="a_node96"><a xlink:title="TypeInteger: ~[-255--1]"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M827,-524C827,-524 797,-524 797,-524 791,-524 785,-518 785,-512 785,-512 785,-500 785,-500 785,-494 791,-488 797,-488 797,-488 827,-488 827,-488 833,-488 839,-494 839,-500 839,-500 839,-512 839,-512 839,-518 833,-524 827,-524"/> +<text text-anchor="middle" x="812" y="-502.5" font-family="Arial" font-size="10.00" fill="#172e35">~[-255--1]</text> +</a> +</g> +</g> +<!-- n94->n95 --> +<g id="edge163" class="edge"> +<title>n94->n95</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M877.88,-549.25C865.56,-541.35 850.88,-531.93 838.5,-524"/> +</g> +<!-- n95->n19 --> +<g id="edge164" class="edge"> +<title>n95->n19</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M807.17,-488.25C804.9,-480.35 802.18,-470.93 799.9,-463"/> +</g> +<!-- n95->n91 --> +<g id="edge165" class="edge"> +<title>n95->n91</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M789.29,-488.25C778.57,-480.35 765.8,-470.93 755.05,-463"/> +</g> +<!-- n96->n69 --> +<g id="edge166" class="edge"> +<title>n96->n69</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1211.71,-551.34C1213.48,-550.51 1215.26,-549.72 1217,-549 1251.79,-534.54 1263.31,-538.69 1298,-524 1299.36,-523.43 1300.73,-522.81 1302.11,-522.16"/> +</g> +<!-- n96->n70 --> +<g id="edge167" class="edge"> +<title>n96->n70</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1211.97,-550.92C1213.65,-550.22 1215.33,-549.57 1217,-549 1278.45,-527.94 1299.69,-545.46 1361,-524 1362.39,-523.51 1363.79,-522.97 1365.19,-522.38"/> +</g> +<!-- n96->n71 --> +<g id="edge168" class="edge"> +<title>n96->n71</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1207.99,-549.25C1218.85,-541.35 1231.77,-531.93 1242.67,-524"/> +</g> +<!-- n96->n93 --> +<g id="edge169" class="edge"> +<title>n96->n93</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1184.72,-549.25C1184.58,-541.35 1184.42,-531.93 1184.29,-524"/> +</g> +<!-- n97->n80 --> +<g id="edge170" class="edge"> +<title>n97->n80</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M944.8,-610.25C948.95,-602.35 953.9,-592.93 958.07,-585"/> +</g> +<!-- n97->n94 --> +<g id="edge171" class="edge"> +<title>n97->n94</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M926.92,-610.25C922.63,-602.35 917.52,-592.93 913.22,-585"/> +</g> +<!-- n98 --> +<g id="node99" class="node"> +<title>n98</title> +<g id="a_node99"><a xlink:title="TypeInteger: ~[-255--1]"> +<path fill="#d3e7f5" stroke="#647674" stroke-width="0.65" d="M856,-585C856,-585 826,-585 826,-585 820,-585 814,-579 814,-573 814,-573 814,-561 814,-561 814,-555 820,-549 826,-549 826,-549 856,-549 856,-549 862,-549 868,-555 868,-561 868,-561 868,-573 868,-573 868,-579 862,-585 856,-585"/> +<text text-anchor="middle" x="841" y="-563.5" font-family="Arial" font-size="10.00" fill="#172e35">~[-255--1]</text> +</a> +</g> +</g> +<!-- n97->n98 --> +<g id="edge172" class="edge"> +<title>n97->n98</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M909.03,-610.25C896.08,-602.21 880.62,-592.61 867.71,-584.59"/> +</g> +<!-- n98->n15 --> +<g id="edge173" class="edge"> +<title>n98->n15</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M867.76,-549.72C881.33,-541.47 897.77,-531.47 911.32,-523.23"/> +</g> +<!-- n98->n95 --> +<g id="edge174" class="edge"> +<title>n98->n95</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M832.77,-549.25C828.88,-541.35 824.25,-531.93 820.35,-524"/> +</g> +<!-- n99->n29 --> +<g id="edge175" class="edge"> +<title>n99->n29</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1228.48,-732.35C1222.77,-724.68 1215.97,-715.43 1210,-707 1195.24,-686.16 1178.79,-661.75 1168.19,-645.87"/> +</g> +<!-- n100 --> +<g id="node101" class="node"> +<title>n100</title> +<g id="a_node101"><a xlink:title="TypeFloat: ~f32"> +<path fill="#c7eee9" stroke="#647674" stroke-width="0.65" d="M1256,-707C1256,-707 1226,-707 1226,-707 1220,-707 1214,-701 1214,-695 1214,-695 1214,-683 1214,-683 1214,-677 1220,-671 1226,-671 1226,-671 1256,-671 1256,-671 1262,-671 1268,-677 1268,-683 1268,-683 1268,-695 1268,-695 1268,-701 1262,-707 1256,-707"/> +<text text-anchor="middle" x="1241" y="-685.5" font-family="Arial" font-size="10.00" fill="#172e35">~f32</text> +</a> +</g> +</g> +<!-- n99->n100 --> +<g id="edge176" class="edge"> +<title>n99->n100</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1241,-732.25C1241,-724.35 1241,-714.93 1241,-707"/> +</g> +<!-- n100->n28 --> +<g id="edge177" class="edge"> +<title>n100->n28</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1241,-671.25C1241,-663.35 1241,-653.93 1241,-646"/> +</g> +<!-- n101->n32 --> +<g id="edge178" class="edge"> +<title>n101->n32</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M186.72,-610.25C175.74,-602.35 162.65,-592.93 151.62,-585"/> +</g> +<!-- n104 --> +<g id="node105" class="node"> +<title>n104</title> +<g id="a_node105"><a xlink:title="TypeMemPtr: ~*test {~nil test; ... }"> +<path fill="#cce4d6" stroke="#647674" stroke-width="0.65" d="M206,-585C206,-585 176,-585 176,-585 170,-585 164,-579 164,-573 164,-573 164,-561 164,-561 164,-555 170,-549 176,-549 176,-549 206,-549 206,-549 212,-549 218,-555 218,-561 218,-561 218,-573 218,-573 218,-579 212,-585 206,-585"/> +<text text-anchor="middle" x="191" y="-563.5" font-family="Arial" font-size="10.00" fill="#172e35">~*test</text> +</a> +</g> +</g> +<!-- n101->n104 --> +<g id="edge179" class="edge"> +<title>n101->n104</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M204.61,-610.25C202.06,-602.35 199.03,-592.93 196.47,-585"/> +</g> +<!-- n102->n74 --> +<g id="edge180" class="edge"> +<title>n102->n74</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M285.09,-671.18C285.6,-655.11 287.51,-630.39 294,-610 296.77,-601.29 301.41,-592.31 305.79,-584.9"/> +</g> +<!-- n102->n101 --> +<g id="edge181" class="edge"> +<title>n102->n101</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M263.71,-671.25C253.66,-663.35 241.69,-653.93 231.61,-646"/> +</g> +<!-- n103 --> +<g id="node104" class="node"> +<title>n103</title> +<g id="a_node104"><a xlink:title="TypeMemPtr: ~*test {~nil test; ... }"> +<path fill="#cce4d6" stroke="#647674" stroke-width="0.65" d="M237,-524C237,-524 207,-524 207,-524 201,-524 195,-518 195,-512 195,-512 195,-500 195,-500 195,-494 201,-488 207,-488 207,-488 237,-488 237,-488 243,-488 249,-494 249,-500 249,-500 249,-512 249,-512 249,-518 243,-524 237,-524"/> +<text text-anchor="middle" x="222" y="-502.5" font-family="Arial" font-size="10.00" fill="#172e35">~*test</text> +</a> +</g> +</g> +<!-- n103->n30 --> +<g id="edge182" class="edge"> +<title>n103->n30</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M223.42,-488.25C224.09,-480.35 224.89,-470.93 225.56,-463"/> +</g> +<!-- n104->n103 --> +<g id="edge183" class="edge"> +<title>n104->n103</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M199.8,-549.25C203.95,-541.35 208.9,-531.93 213.07,-524"/> +</g> +<!-- n110 --> +<g id="node111" class="node"> +<title>n110</title> +<g id="a_node111"><a xlink:title="TypeFunPtr: ~{ ~i64 -> ~i32 #~0}"> +<path fill="#dfd0ef" stroke="#647674" stroke-width="0.65" d="M329,-524C329,-524 299,-524 299,-524 293,-524 287,-518 287,-512 287,-512 287,-500 287,-500 287,-494 293,-488 299,-488 299,-488 329,-488 329,-488 335,-488 341,-494 341,-500 341,-500 341,-512 341,-512 341,-518 335,-524 329,-524"/> +<text text-anchor="middle" x="314" y="-502.5" font-family="Arial" font-size="10.00" fill="#172e35">{~0}</text> +</a> +</g> +</g> +<!-- n105->n110 --> +<g id="edge184" class="edge"> +<title>n105->n110</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M271.03,-549.25C279.07,-541.35 288.65,-531.93 296.72,-524"/> +</g> +<!-- n106 --> +<g id="node107" class="node"> +<title>n106</title> +<g id="a_node107"><a xlink:title="TypeFunPtr: ~{ ~i64 ~f32 -> ~i64 #~b11}?"> +<path fill="#dfd0ef" stroke="#647674" stroke-width="0.65" d="M341,-646C341,-646 311,-646 311,-646 305,-646 299,-640 299,-634 299,-634 299,-622 299,-622 299,-616 305,-610 311,-610 311,-610 341,-610 341,-610 347,-610 353,-616 353,-622 353,-622 353,-634 353,-634 353,-640 347,-646 341,-646"/> +<text text-anchor="middle" x="326" y="-624.5" font-family="Arial" font-size="10.00" fill="#172e35">{~b11}</text> +</a> +</g> +</g> +<!-- n106->n74 --> +<g id="edge185" class="edge"> +<title>n106->n74</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M323.45,-610.25C322.24,-602.35 320.8,-592.93 319.59,-585"/> +</g> +<!-- n106->n105 --> +<g id="edge186" class="edge"> +<title>n106->n105</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M305.56,-610.25C295.91,-602.35 284.42,-592.93 274.74,-585"/> +</g> +<!-- n107->n38 --> +<g id="edge187" class="edge"> +<title>n107->n38</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M565.91,-681.22C589.68,-674.49 624.72,-662.76 652,-646 686.03,-625.09 695.4,-617.93 718,-585 731.11,-565.9 739.89,-540.43 744.67,-523.88"/> +</g> +<!-- n107->n40 --> +<g id="edge188" class="edge"> +<title>n107->n40</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M539,-671.25C539,-663.35 539,-653.93 539,-646"/> +</g> +<!-- n107->n106 --> +<g id="edge189" class="edge"> +<title>n107->n106</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M512.03,-672.92C510.35,-672.22 508.67,-671.57 507,-671 445.12,-649.84 424.36,-665.7 362,-646 358.97,-645.04 355.86,-643.88 352.81,-642.62"/> +</g> +<!-- n108 --> +<g id="node109" class="node"> +<title>n108</title> +<g id="a_node109"><a xlink:title="TypeFunPtr: ~{ ~i64 -> Top #~ALL}?"> +<path fill="#dfd0ef" stroke="#647674" stroke-width="0.65" d="M409,-646C409,-646 379,-646 379,-646 373,-646 367,-640 367,-634 367,-634 367,-622 367,-622 367,-616 373,-610 379,-610 379,-610 409,-610 409,-610 415,-610 421,-616 421,-622 421,-622 421,-634 421,-634 421,-640 415,-646 409,-646"/> +<text text-anchor="middle" x="394" y="-624.5" font-family="Arial" font-size="10.00" fill="#172e35">{~ALL}</text> +</a> +</g> +</g> +<!-- n107->n108 --> +<g id="edge190" class="edge"> +<title>n107->n108</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M512.24,-673.45C510.48,-672.6 508.72,-671.77 507,-671 491.3,-663.95 449.12,-648.62 420.97,-638.56"/> +</g> +<!-- n109 --> +<g id="node110" class="node"> +<title>n109</title> +<g id="a_node110"><a xlink:title="TypeFunPtr: ~{ ~i64 ~i64 -> PtrTop #~ALL}?"> +<path fill="#dfd0ef" stroke="#647674" stroke-width="0.65" d="M636,-646C636,-646 606,-646 606,-646 600,-646 594,-640 594,-634 594,-634 594,-622 594,-622 594,-616 600,-610 606,-610 606,-610 636,-610 636,-610 642,-610 648,-616 648,-622 648,-622 648,-634 648,-634 648,-640 642,-646 636,-646"/> +<text text-anchor="middle" x="621" y="-624.5" font-family="Arial" font-size="10.00" fill="#172e35">{~ALL}</text> +</a> +</g> +</g> +<!-- n107->n109 --> +<g id="edge191" class="edge"> +<title>n107->n109</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M562.28,-671.25C573.26,-663.35 586.35,-653.93 597.38,-646"/> +</g> +<!-- n107->n114 --> +<g id="edge192" class="edge"> +<title>n107->n114</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M521.12,-671.25C512.68,-663.35 502.62,-653.93 494.15,-646"/> +</g> +<!-- n108->n42 --> +<g id="edge193" class="edge"> +<title>n108->n42</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M412.34,-610.22C418.98,-603.1 425.87,-594.3 430,-585 438.76,-565.29 440.51,-540.2 440.58,-523.87"/> +</g> +<!-- n108->n74 --> +<g id="edge194" class="edge"> +<title>n108->n74</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M372.14,-610.25C361.83,-602.35 349.54,-592.93 339.18,-585"/> +</g> +<!-- n108->n110 --> +<g id="edge195" class="edge"> +<title>n108->n110</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M382.63,-610.04C377.68,-602.47 371.9,-593.38 367,-585 357.88,-569.38 357.96,-564.1 348,-549 342.32,-540.39 335.24,-531.42 329.02,-523.99"/> +</g> +<!-- n109->n36 --> +<g id="edge196" class="edge"> +<title>n109->n36</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M647.69,-612.3C649.15,-611.52 650.59,-610.75 652,-610 673.61,-598.57 688.23,-605.85 701,-585 709.36,-571.36 702.92,-564.88 701,-549 697.58,-520.74 678.73,-450.03 662,-427 655.06,-417.44 645.44,-408.78 636.43,-401.83"/> +</g> +<!-- n109->n74 --> +<g id="edge197" class="edge"> +<title>n109->n74</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M594.02,-616.89C586.35,-614.33 577.92,-611.79 570,-610 481.33,-589.97 455.61,-605.29 367,-585 359.4,-583.26 351.34,-580.8 343.96,-578.29"/> +</g> +<!-- n111 --> +<g id="node112" class="node"> +<title>n111</title> +<g id="a_node112"><a xlink:title="TypeFunPtr: ~{ -> ~i32 #~0}"> +<path fill="#dfd0ef" stroke="#647674" stroke-width="0.65" d="M408,-463C408,-463 378,-463 378,-463 372,-463 366,-457 366,-451 366,-451 366,-439 366,-439 366,-433 372,-427 378,-427 378,-427 408,-427 408,-427 414,-427 420,-433 420,-439 420,-439 420,-451 420,-451 420,-457 414,-463 408,-463"/> +<text text-anchor="middle" x="393" y="-441.5" font-family="Arial" font-size="10.00" fill="#172e35">{~0}</text> +</a> +</g> +</g> +<!-- n110->n111 --> +<g id="edge198" class="edge"> +<title>n110->n111</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M336.43,-488.25C347.01,-480.35 359.62,-470.93 370.24,-463"/> +</g> +<!-- n111->n4 --> +<g id="edge199" class="edge"> +<title>n111->n4</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M410.88,-427.25C419.32,-419.35 429.38,-409.93 437.85,-402"/> +</g> +<!-- n111->n36 --> +<g id="edge200" class="edge"> +<title>n111->n36</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M419.59,-433.5C426.19,-431.14 433.3,-428.8 440,-427 500.62,-410.71 519.68,-422.53 579,-402 580.66,-401.42 582.35,-400.77 584.03,-400.06"/> +</g> +<!-- n112 --> +<g id="node113" class="node"> +<title>n112</title> +<g id="a_node113"><a xlink:title="TypeFunPtr: ~{ Bot ~i64 -> ~i32 #~0}"> +<path fill="#dfd0ef" stroke="#647674" stroke-width="0.65" d="M392,-524C392,-524 362,-524 362,-524 356,-524 350,-518 350,-512 350,-512 350,-500 350,-500 350,-494 356,-488 362,-488 362,-488 392,-488 392,-488 398,-488 404,-494 404,-500 404,-500 404,-512 404,-512 404,-518 398,-524 392,-524"/> +<text text-anchor="middle" x="377" y="-502.5" font-family="Arial" font-size="10.00" fill="#172e35">{~0}</text> +</a> +</g> +</g> +<!-- n112->n111 --> +<g id="edge201" class="edge"> +<title>n112->n111</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M381.54,-488.25C383.69,-480.35 386.24,-470.93 388.39,-463"/> +</g> +<!-- n113 --> +<g id="node114" class="node"> +<title>n113</title> +<g id="a_node114"><a xlink:title="TypeFunPtr: ~{ ~i64 -> ~i32 #~0}"> +<path fill="#dfd0ef" stroke="#647674" stroke-width="0.65" d="M496,-585C496,-585 466,-585 466,-585 460,-585 454,-579 454,-573 454,-573 454,-561 454,-561 454,-555 460,-549 466,-549 466,-549 496,-549 496,-549 502,-549 508,-555 508,-561 508,-561 508,-573 508,-573 508,-579 502,-585 496,-585"/> +<text text-anchor="middle" x="481" y="-563.5" font-family="Arial" font-size="10.00" fill="#172e35">{~0}</text> +</a> +</g> +</g> +<!-- n113->n37 --> +<g id="edge202" class="edge"> +<title>n113->n37</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M505.13,-549.25C516.52,-541.35 530.08,-531.93 541.51,-524"/> +</g> +<!-- n113->n110 --> +<g id="edge203" class="edge"> +<title>n113->n110</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M454.06,-556.82C446.31,-554.23 437.84,-551.46 430,-549 392.43,-537.22 381.36,-539.11 345,-524 343.64,-523.43 342.26,-522.83 340.88,-522.19"/> +</g> +<!-- n113->n112 --> +<g id="edge204" class="edge"> +<title>n113->n112</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M454.22,-550.81C438.69,-542 419.2,-530.94 403.69,-522.14"/> +</g> +<!-- n114->n113 --> +<g id="edge205" class="edge"> +<title>n114->n113</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M477.42,-610.25C478.09,-602.35 478.89,-592.93 479.56,-585"/> +</g> +<!-- n115 --> +<g id="node116" class="node"> +<title>n115</title> +<g id="a_node116"><a xlink:title="TypeFunPtr: ~{ Top ~i64 -> ~i32 #~0}"> +<path fill="#dfd0ef" stroke="#647674" stroke-width="0.65" d="M414,-585C414,-585 384,-585 384,-585 378,-585 372,-579 372,-573 372,-573 372,-561 372,-561 372,-555 378,-549 384,-549 384,-549 414,-549 414,-549 420,-549 426,-555 426,-561 426,-561 426,-573 426,-573 426,-579 420,-585 414,-585"/> +<text text-anchor="middle" x="399" y="-563.5" font-family="Arial" font-size="10.00" fill="#172e35">{~0}</text> +</a> +</g> +</g> +<!-- n114->n115 --> +<g id="edge206" class="edge"> +<title>n114->n115</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M454.14,-610.25C443.83,-602.35 431.54,-592.93 421.18,-585"/> +</g> +<!-- n115->n110 --> +<g id="edge207" class="edge"> +<title>n115->n110</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M374.87,-549.25C363.48,-541.35 349.92,-531.93 338.49,-524"/> +</g> +<!-- n115->n112 --> +<g id="edge208" class="edge"> +<title>n115->n112</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M392.75,-549.25C389.81,-541.35 386.3,-531.93 383.34,-524"/> +</g> +<!-- n116 --> +<g id="node117" class="node"> +<title>n116</title> +<g id="a_node117"><a xlink:title="TypeMem: #2:~nil"> +<path fill="#a9c9e5" stroke="#647674" stroke-width="0.65" d="M1445,-646C1445,-646 1415,-646 1415,-646 1409,-646 1403,-640 1403,-634 1403,-634 1403,-622 1403,-622 1403,-616 1409,-610 1415,-610 1415,-610 1445,-610 1445,-610 1451,-610 1457,-616 1457,-622 1457,-622 1457,-634 1457,-634 1457,-640 1451,-646 1445,-646"/> +<text text-anchor="middle" x="1430" y="-624.5" font-family="Arial" font-size="10.00" fill="#172e35">#2:~nil</text> +</a> +</g> +</g> +<!-- n116->n47 --> +<g id="edge209" class="edge"> +<title>n116->n47</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1421.2,-610.25C1417.05,-602.35 1412.1,-592.93 1407.93,-585"/> +</g> +<!-- n117->n47 --> +<g id="edge210" class="edge"> +<title>n117->n47</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1376.08,-610.25C1380.37,-602.35 1385.48,-592.93 1389.78,-585"/> +</g> +<!-- n118->n45 --> +<g id="edge211" class="edge"> +<title>n118->n45</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1326.33,-732.06C1321.37,-709.19 1312.6,-668.68 1307.65,-645.85"/> +</g> +<!-- n118->n46 --> +<g id="edge212" class="edge"> +<title>n118->n46</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1339.08,-732.25C1343.37,-724.35 1348.48,-714.93 1352.78,-707"/> +</g> +<!-- n118->n116 --> +<g id="edge213" class="edge"> +<title>n118->n116</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1356.82,-735.9C1369.37,-728.73 1383.76,-718.88 1394,-707 1409.67,-688.81 1419.87,-662.65 1425.28,-645.74"/> +</g> +<!-- n119 --> +<g id="node120" class="node"> +<title>n119</title> +<g id="a_node120"><a xlink:title="Field: test:-2 : ~nil"> +<path fill="#e0ebc8" stroke="#647674" stroke-width="0.65" d="M1508,-97C1508,-97 1478,-97 1478,-97 1472,-97 1466,-91 1466,-85 1466,-85 1466,-73 1466,-73 1466,-67 1472,-61 1478,-61 1478,-61 1508,-61 1508,-61 1514,-61 1520,-67 1520,-73 1520,-73 1520,-85 1520,-85 1520,-91 1514,-97 1508,-97"/> +<text text-anchor="middle" x="1493" y="-75.5" font-family="Arial" font-size="10.00" fill="#172e35">test</text> +</a> +</g> +</g> +<!-- n119->n0 --> +<g id="edge214" class="edge"> +<title>n119->n0</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1478.52,-61.25C1471.69,-53.35 1463.55,-43.93 1456.69,-36"/> +</g> +<!-- n120->n119 --> +<g id="edge215" class="edge"> +<title>n120->n119</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1431.59,-732.11C1446.98,-709.75 1471,-668.51 1471,-629 1471,-629 1471,-629 1471,-200 1471,-162.72 1481.4,-119.98 1487.9,-96.91"/> +</g> +<!-- n121->n0 --> +<g id="edge216" class="edge"> +<title>n121->n0</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1528.64,-183.08C1536.8,-155.29 1548.51,-99.24 1525,-61 1512.82,-41.19 1488.08,-30.38 1468.77,-24.71"/> +</g> +<!-- n122->n52 --> +<g id="edge217" class="edge"> +<title>n122->n52</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1756.61,-732.26C1749.64,-725.26 1742.68,-716.54 1739,-707 1733.25,-692.07 1729.62,-683.96 1739,-671 1759.85,-642.19 1791.86,-673 1815,-646 1830.52,-627.89 1835.74,-556.72 1837.35,-523.83"/> +</g> +<!-- n122->n53 --> +<g id="edge218" class="edge"> +<title>n122->n53</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1761.3,-732.2C1747.63,-715.47 1732.03,-689.67 1746,-671 1769.59,-639.47 1794.36,-660.42 1831,-646 1833.33,-645.08 1835.72,-644.06 1838.1,-642.99"/> +</g> +<!-- n122->n54 --> +<g id="edge219" class="edge"> +<title>n122->n54</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1777,-732.25C1777,-724.35 1777,-714.93 1777,-707"/> +</g> +<!-- n122->n55 --> +<g id="edge220" class="edge"> +<title>n122->n55</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1794.88,-732.25C1803.32,-724.35 1813.38,-714.93 1821.85,-707"/> +</g> +<!-- n122->n62 --> +<g id="edge221" class="edge"> +<title>n122->n62</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1803.9,-737.83C1823.08,-729.7 1849.37,-718.18 1872,-707 1873.32,-706.35 1874.67,-705.67 1876.02,-704.97"/> +</g> +<!-- n123 --> +<g id="node124" class="node"> +<title>n123</title> +<g id="a_node124"><a xlink:title="TypeStruct: test {~nil test; ... }"> +<path fill="#e0ebc8" stroke="#647674" stroke-width="0.65" d="M1981,-707C1981,-707 1951,-707 1951,-707 1945,-707 1939,-701 1939,-695 1939,-695 1939,-683 1939,-683 1939,-677 1945,-671 1951,-671 1951,-671 1981,-671 1981,-671 1987,-671 1993,-677 1993,-683 1993,-683 1993,-695 1993,-695 1993,-701 1987,-707 1981,-707"/> +<text text-anchor="middle" x="1966" y="-685.5" font-family="Arial" font-size="10.00" fill="#172e35">test</text> +</a> +</g> +</g> +<!-- n122->n123 --> +<g id="edge222" class="edge"> +<title>n122->n123</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1803.91,-743.92C1835.87,-737.42 1890.47,-724.82 1935,-707 1936.37,-706.45 1937.75,-705.86 1939.14,-705.23"/> +</g> +<!-- n124 --> +<g id="node125" class="node"> +<title>n124</title> +<g id="a_node125"><a xlink:title="TypeStruct: []i64"> +<path fill="#e0ebc8" stroke="#647674" stroke-width="0.65" d="M2044,-707C2044,-707 2014,-707 2014,-707 2008,-707 2002,-701 2002,-695 2002,-695 2002,-683 2002,-683 2002,-677 2008,-671 2014,-671 2014,-671 2044,-671 2044,-671 2050,-671 2056,-677 2056,-683 2056,-683 2056,-695 2056,-695 2056,-701 2050,-707 2044,-707"/> +<text text-anchor="middle" x="2029" y="-685.5" font-family="Arial" font-size="10.00" fill="#172e35">[]i64</text> +</a> +</g> +</g> +<!-- n122->n124 --> +<g id="edge223" class="edge"> +<title>n122->n124</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1803.91,-746.63C1846.25,-742.3 1930.55,-731.22 1998,-707 1999.39,-706.5 2000.79,-705.95 2002.18,-705.35"/> +</g> +<!-- n125 --> +<g id="node126" class="node"> +<title>n125</title> +<g id="a_node126"><a xlink:title="TypeStruct: []u8"> +<path fill="#e0ebc8" stroke="#647674" stroke-width="0.65" d="M2056,-585C2056,-585 2026,-585 2026,-585 2020,-585 2014,-579 2014,-573 2014,-573 2014,-561 2014,-561 2014,-555 2020,-549 2026,-549 2026,-549 2056,-549 2056,-549 2062,-549 2068,-555 2068,-561 2068,-561 2068,-573 2068,-573 2068,-579 2062,-585 2056,-585"/> +<text text-anchor="middle" x="2041" y="-563.5" font-family="Arial" font-size="10.00" fill="#172e35">[]u8</text> +</a> +</g> +</g> +<!-- n122->n125 --> +<g id="edge224" class="edge"> +<title>n122->n125</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1803.75,-749.27C1867.95,-749.29 2027.87,-745.39 2061,-707 2090.95,-672.3 2066.12,-613.6 2050.82,-584.87"/> +</g> +<!-- n126 --> +<g id="node127" class="node"> +<title>n126</title> +<g id="a_node127"><a xlink:title="TypeStruct: ["abc"]"> +<path fill="#e0ebc8" stroke="#647674" stroke-width="0.65" d="M2126,-646C2126,-646 2096,-646 2096,-646 2090,-646 2084,-640 2084,-634 2084,-634 2084,-622 2084,-622 2084,-616 2090,-610 2096,-610 2096,-610 2126,-610 2126,-610 2132,-610 2138,-616 2138,-622 2138,-622 2138,-634 2138,-634 2138,-640 2132,-646 2126,-646"/> +<text text-anchor="middle" x="2111" y="-624.5" font-family="Arial" font-size="10.00" fill="#172e35">[]u8</text> +</a> +</g> +</g> +<!-- n122->n126 --> +<g id="edge225" class="edge"> +<title>n122->n126</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1803.82,-748.52C1869.14,-746.85 2034.28,-739.44 2077,-707 2087.18,-699.27 2099.13,-666.37 2105.8,-645.84"/> +</g> +<!-- n127 --> +<g id="node128" class="node"> +<title>n127</title> +<g id="a_node128"><a xlink:title="TypeStruct: %SINT {}"> +<path fill="#e0ebc8" stroke="#647674" stroke-width="0.65" d="M1609,-707C1609,-707 1579,-707 1579,-707 1573,-707 1567,-701 1567,-695 1567,-695 1567,-683 1567,-683 1567,-677 1573,-671 1579,-671 1579,-671 1609,-671 1609,-671 1615,-671 1621,-677 1621,-683 1621,-683 1621,-695 1621,-695 1621,-701 1615,-707 1609,-707"/> +<text text-anchor="middle" x="1594" y="-685.5" font-family="Arial" font-size="10.00" fill="#172e35">%SINT</text> +</a> +</g> +</g> +<!-- n122->n127 --> +<g id="edge226" class="edge"> +<title>n122->n127</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1750.24,-743.41C1719.6,-736.59 1668.2,-723.85 1626,-707 1624.25,-706.3 1622.47,-705.53 1620.69,-704.72"/> +</g> +<!-- n128 --> +<g id="node129" class="node"> +<title>n128</title> +<g id="a_node129"><a xlink:title="TypeStruct: %SFLT {}"> +<path fill="#e0ebc8" stroke="#647674" stroke-width="0.65" d="M1672,-707C1672,-707 1642,-707 1642,-707 1636,-707 1630,-701 1630,-695 1630,-695 1630,-683 1630,-683 1630,-677 1636,-671 1642,-671 1642,-671 1672,-671 1672,-671 1678,-671 1684,-677 1684,-683 1684,-683 1684,-695 1684,-695 1684,-701 1678,-707 1672,-707"/> +<text text-anchor="middle" x="1657" y="-685.5" font-family="Arial" font-size="10.00" fill="#172e35">%SFLT</text> +</a> +</g> +</g> +<!-- n122->n128 --> +<g id="edge227" class="edge"> +<title>n122->n128</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1750.24,-736.01C1733.25,-727.74 1710.81,-716.79 1691,-707 1688.63,-705.83 1686.18,-704.61 1683.71,-703.39"/> +</g> +<!-- n133 --> +<g id="node134" class="node"> +<title>n133</title> +<g id="a_node134"><a xlink:title="TypeStruct: calloc {~{ ~i64 ~i64 -> PtrTop #~ALL}? !calloc; ... }"> +<path fill="#e0ebc8" stroke="#647674" stroke-width="0.65" d="M1798,-646C1798,-646 1768,-646 1768,-646 1762,-646 1756,-640 1756,-634 1756,-634 1756,-622 1756,-622 1756,-616 1762,-610 1768,-610 1768,-610 1798,-610 1798,-610 1804,-610 1810,-616 1810,-622 1810,-622 1810,-634 1810,-634 1810,-640 1804,-646 1798,-646"/> +<text text-anchor="middle" x="1783" y="-624.5" font-family="Arial" font-size="10.00" fill="#172e35">calloc</text> +</a> +</g> +</g> +<!-- n122->n133 --> +<g id="edge228" class="edge"> +<title>n122->n133</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1750.22,-739.69C1735.52,-733.04 1718.57,-722.5 1710,-707 1702.25,-693 1701.99,-684.85 1710,-671 1710.69,-669.81 1735.63,-655.6 1756.17,-644.03"/> +</g> +<!-- n123->n51 --> +<g id="edge229" class="edge"> +<title>n123->n51</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1967.77,-671.18C1970.78,-635.44 1973.94,-550.15 1944,-488 1939.48,-478.61 1932.18,-469.8 1925.19,-462.69"/> +</g> +<!-- n124->n51 --> +<g id="edge230" class="edge"> +<title>n124->n51</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M2026.07,-671.05C2019.14,-634.71 1999.08,-547.74 1957,-488 1950.26,-478.44 1940.8,-469.83 1931.85,-462.93"/> +</g> +<!-- n125->n51 --> +<g id="edge231" class="edge"> +<title>n125->n51</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M2036.03,-549.02C2030.18,-531.66 2018.93,-504.92 2001,-488 1981.85,-469.93 1953.65,-458.81 1932.94,-452.59"/> +</g> +<!-- n126->n51 --> +<g id="edge232" class="edge"> +<title>n126->n51</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M2104.97,-610.26C2093.38,-580.62 2065.1,-519.13 2020,-488 1993.1,-469.43 1956.98,-457.95 1932.67,-451.78"/> +</g> +<!-- n127->n61 --> +<g id="edge233" class="edge"> +<title>n127->n61</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1576.12,-671.25C1567.68,-663.35 1557.62,-653.93 1549.15,-646"/> +</g> +<!-- n129 --> +<g id="node130" class="node"> +<title>n129</title> +<g id="a_node130"><a xlink:title="TypeStruct: %SINT {~u32 a; ~*%SFLT {} s2; }"> +<path fill="#e0ebc8" stroke="#647674" stroke-width="0.65" d="M1609,-646C1609,-646 1579,-646 1579,-646 1573,-646 1567,-640 1567,-634 1567,-634 1567,-622 1567,-622 1567,-616 1573,-610 1579,-610 1579,-610 1609,-610 1609,-610 1615,-610 1621,-616 1621,-622 1621,-622 1621,-634 1621,-634 1621,-640 1615,-646 1609,-646"/> +<text text-anchor="middle" x="1594" y="-624.5" font-family="Arial" font-size="10.00" fill="#172e35">%SINT</text> +</a> +</g> +</g> +<!-- n127->n129 --> +<g id="edge234" class="edge"> +<title>n127->n129</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1594,-671.25C1594,-663.35 1594,-653.93 1594,-646"/> +</g> +<!-- n128->n60 --> +<g id="edge235" class="edge"> +<title>n128->n60</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1674.88,-671.25C1683.32,-663.35 1693.38,-653.93 1701.85,-646"/> +</g> +<!-- n130 --> +<g id="node131" class="node"> +<title>n130</title> +<g id="a_node131"><a xlink:title="TypeStruct: %SFLT {~f32 b; ~*%SINT {~u32 a; ~*%SFLT {} s2; } s1; }"> +<path fill="#e0ebc8" stroke="#647674" stroke-width="0.65" d="M1672,-646C1672,-646 1642,-646 1642,-646 1636,-646 1630,-640 1630,-634 1630,-634 1630,-622 1630,-622 1630,-616 1636,-610 1642,-610 1642,-610 1672,-610 1672,-610 1678,-610 1684,-616 1684,-622 1684,-622 1684,-634 1684,-634 1684,-640 1678,-646 1672,-646"/> +<text text-anchor="middle" x="1657" y="-624.5" font-family="Arial" font-size="10.00" fill="#172e35">%SFLT</text> +</a> +</g> +</g> +<!-- n128->n130 --> +<g id="edge236" class="edge"> +<title>n128->n130</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1657,-671.25C1657,-663.35 1657,-653.93 1657,-646"/> +</g> +<!-- n132 --> +<g id="node133" class="node"> +<title>n132</title> +<g id="a_node133"><a xlink:title="TypeStruct: %SINT {~u32 a; ~*%SFLT {~f32 b; ~*%SINT s1; ... } s2; ... }"> +<path fill="#e0ebc8" stroke="#647674" stroke-width="0.65" d="M1609,-585C1609,-585 1579,-585 1579,-585 1573,-585 1567,-579 1567,-573 1567,-573 1567,-561 1567,-561 1567,-555 1573,-549 1579,-549 1579,-549 1609,-549 1609,-549 1615,-549 1621,-555 1621,-561 1621,-561 1621,-573 1621,-573 1621,-579 1615,-585 1609,-585"/> +<text text-anchor="middle" x="1594" y="-563.5" font-family="Arial" font-size="10.00" fill="#172e35">%SINT</text> +</a> +</g> +</g> +<!-- n129->n132 --> +<g id="edge237" class="edge"> +<title>n129->n132</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1594,-610.25C1594,-602.35 1594,-592.93 1594,-585"/> +</g> +<!-- n131 --> +<g id="node132" class="node"> +<title>n131</title> +<g id="a_node132"><a xlink:title="TypeStruct: %SFLT {~f32 b; ~*%SINT {~u32 a; ~*%SFLT s2; ... } s1; ... }"> +<path fill="#e0ebc8" stroke="#647674" stroke-width="0.65" d="M1672,-585C1672,-585 1642,-585 1642,-585 1636,-585 1630,-579 1630,-573 1630,-573 1630,-561 1630,-561 1630,-555 1636,-549 1642,-549 1642,-549 1672,-549 1672,-549 1678,-549 1684,-555 1684,-561 1684,-561 1684,-573 1684,-573 1684,-579 1678,-585 1672,-585"/> +<text text-anchor="middle" x="1657" y="-563.5" font-family="Arial" font-size="10.00" fill="#172e35">%SFLT</text> +</a> +</g> +</g> +<!-- n130->n131 --> +<g id="edge238" class="edge"> +<title>n130->n131</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1657,-610.25C1657,-602.35 1657,-592.93 1657,-585"/> +</g> +<!-- n131->n57 --> +<g id="edge239" class="edge"> +<title>n131->n57</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1674.88,-549.25C1683.32,-541.35 1693.38,-531.93 1701.85,-524"/> +</g> +<!-- n132->n56 --> +<g id="edge240" class="edge"> +<title>n132->n56</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1594,-549.25C1594,-541.35 1594,-531.93 1594,-524"/> +</g> +<!-- n133->n51 --> +<g id="edge241" class="edge"> +<title>n133->n51</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1781.13,-610.42C1778.86,-582.13 1778.4,-524.08 1807,-488 1824.74,-465.61 1856.64,-454.98 1879.44,-450.05"/> +</g> +<!-- n134->n64 --> +<g id="edge242" class="edge"> +<title>n134->n64</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M2400.84,-740.8C2429.32,-732.09 2475.14,-718.08 2511.46,-706.98"/> +</g> +<!-- n134->n65 --> +<g id="edge243" class="edge"> +<title>n134->n65</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M2400.95,-745.86C2447.63,-740.14 2546.32,-726.74 2628,-707 2629.22,-706.7 2630.45,-706.4 2631.7,-706.08"/> +</g> +<!-- n134->n66 --> +<g id="edge244" class="edge"> +<title>n134->n66</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M2347.03,-745.37C2307.81,-739.66 2233.08,-727.09 2172,-707 2170.25,-706.43 2168.48,-705.79 2166.7,-705.12"/> +</g> +<!-- n135 --> +<g id="node136" class="node"> +<title>n135</title> +<g id="a_node136"><a xlink:title="TypeTuple: [  ~i64, ~*test {~nil test; ... }]"> +<path fill="#f2d7e4" stroke="#647674" stroke-width="0.65" d="M2297.95,-707C2297.95,-707 2188.05,-707 2188.05,-707 2182.05,-707 2176.05,-701 2176.05,-695 2176.05,-695 2176.05,-683 2176.05,-683 2176.05,-677 2182.05,-671 2188.05,-671 2188.05,-671 2297.95,-671 2297.95,-671 2303.95,-671 2309.95,-677 2309.95,-683 2309.95,-683 2309.95,-695 2309.95,-695 2309.95,-701 2303.95,-707 2297.95,-707"/> +<text text-anchor="middle" x="2243" y="-685.5" font-family="Arial" font-size="10.00" fill="#172e35">[  ~i64, ~*test {~nil test; ... }]</text> +</a> +</g> +</g> +<!-- n134->n135 --> +<g id="edge245" class="edge"> +<title>n134->n135</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M2347.17,-736.92C2328.01,-728.29 2301.97,-716.56 2280.71,-706.99"/> +</g> +<!-- n136 --> +<g id="node137" class="node"> +<title>n136</title> +<g id="a_node137"><a xlink:title="TypeTuple: [  ~Ctrl, MemBot, ~i64]"> +<path fill="#f2d7e4" stroke="#647674" stroke-width="0.65" d="M2416.95,-707C2416.95,-707 2331.05,-707 2331.05,-707 2325.05,-707 2319.05,-701 2319.05,-695 2319.05,-695 2319.05,-683 2319.05,-683 2319.05,-677 2325.05,-671 2331.05,-671 2331.05,-671 2416.95,-671 2416.95,-671 2422.95,-671 2428.95,-677 2428.95,-683 2428.95,-683 2428.95,-695 2428.95,-695 2428.95,-701 2422.95,-707 2416.95,-707"/> +<text text-anchor="middle" x="2374" y="-685.5" font-family="Arial" font-size="10.00" fill="#172e35">[  ~Ctrl, MemBot, ~i64]</text> +</a> +</g> +</g> +<!-- n134->n136 --> +<g id="edge246" class="edge"> +<title>n134->n136</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M2374,-732.25C2374,-724.35 2374,-714.93 2374,-707"/> +</g> +<!-- n137 --> +<g id="node138" class="node"> +<title>n137</title> +<g id="a_node138"><a xlink:title="TypeTuple: [  ~Ctrl, Ctrl]"> +<path fill="#f2d7e4" stroke="#647674" stroke-width="0.65" d="M2490.07,-707C2490.07,-707 2449.93,-707 2449.93,-707 2443.93,-707 2437.93,-701 2437.93,-695 2437.93,-695 2437.93,-683 2437.93,-683 2437.93,-677 2443.93,-671 2449.93,-671 2449.93,-671 2490.07,-671 2490.07,-671 2496.07,-671 2502.07,-677 2502.07,-683 2502.07,-683 2502.07,-695 2502.07,-695 2502.07,-701 2496.07,-707 2490.07,-707"/> +<text text-anchor="middle" x="2470" y="-685.5" font-family="Arial" font-size="10.00" fill="#172e35">[  ~Ctrl, Ctrl]</text> +</a> +</g> +</g> +<!-- n134->n137 --> +<g id="edge247" class="edge"> +<title>n134->n137</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M2401,-732.41C2413.97,-724.43 2429.5,-714.89 2442.54,-706.88"/> +</g> +<!-- n135->n63 --> +<g id="edge248" class="edge"> +<title>n135->n63</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M2280.54,-671.09C2301.86,-661.49 2328.05,-649.7 2347.27,-641.04"/> +</g> +<!-- n136->n63 --> +<g id="edge249" class="edge"> +<title>n136->n63</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M2374,-671.25C2374,-663.35 2374,-653.93 2374,-646"/> +</g> +<!-- n137->n63 --> +<g id="edge250" class="edge"> +<title>n137->n63</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M2442.49,-671.09C2429.41,-663.06 2413.84,-653.49 2400.85,-645.5"/> +</g> +<!-- n138->n68 --> +<g id="edge251" class="edge"> +<title>n138->n68</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M2766,-732.25C2766,-724.35 2766,-714.93 2766,-707"/> +</g> +<!-- n139 --> +<g id="node140" class="node"> +<title>n139</title> +<g id="a_node140"><a xlink:title="TypeRPC: $[-2]"> +<path fill="#f4d4b5" stroke="#647674" stroke-width="0.65" d="M2844,-707C2844,-707 2814,-707 2814,-707 2808,-707 2802,-701 2802,-695 2802,-695 2802,-683 2802,-683 2802,-677 2808,-671 2814,-671 2814,-671 2844,-671 2844,-671 2850,-671 2856,-677 2856,-683 2856,-683 2856,-695 2856,-695 2856,-701 2850,-707 2844,-707"/> +<text text-anchor="middle" x="2829" y="-685.5" font-family="Arial" font-size="10.00" fill="#172e35">$[-2]</text> +</a> +</g> +</g> +<!-- n138->n139 --> +<g id="edge252" class="edge"> +<title>n138->n139</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M2783.88,-732.25C2792.32,-724.35 2802.38,-714.93 2810.85,-707"/> +</g> +<!-- n139->n67 --> +<g id="edge253" class="edge"> +<title>n139->n67</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M2811.12,-671.25C2802.68,-663.35 2792.62,-653.93 2784.15,-646"/> +</g> +<!-- n140->n24 --> +<g id="edge254" class="edge"> +<title>n140->n24</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1311.12,-305.25C1302.68,-297.35 1292.62,-287.93 1284.15,-280"/> +</g> +<!-- n141->n24 --> +<g id="edge255" class="edge"> +<title>n141->n24</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1365.02,-307.03C1363.67,-306.33 1362.32,-305.65 1361,-305 1338.37,-293.82 1312.08,-282.3 1292.9,-274.17"/> +</g> +<!-- n142->n24 --> +<g id="edge256" class="edge"> +<title>n142->n24</title> +<path fill="none" stroke="#899895" stroke-width="0.65" d="M1266,-305.25C1266,-297.35 1266,-287.93 1266,-280"/> +</g> +</g> +</svg> |
