Files
modeling-app/rust/kcl-lib/tests/kcl_samples/walkie-talkie/artifact_graph_flowchart.snap.md
Jonathan Tran aae34cf1e5 Deterministic artifact graph - bring back the clockwork universe (#7483)
* Change to use deterministic artifact graph

* Update output to use the new order

* Fix to clear everything when scene is cleared

* Fix lots

* Update artifact graph output for the last time

* Delete unused sorting code

* Remove unneeded cfg

* Fix to preserve top-level artifacts when there's an error

* Update output after error fix

* Add better doc comments

* Remove duplicate global operations

* Update comments

* Update ignored tests that were flaky

* Update graph for new samples after rebase

* Fix test assertion message
2025-06-16 17:55:24 +00:00

24 KiB

flowchart LR
  subgraph path2 [Path]
    2["Path<br>[409, 452, 2]"]
    3["Segment<br>[458, 496, 2]"]
    4["Segment<br>[502, 542, 2]"]
    5["Segment<br>[548, 587, 2]"]
    6["Segment<br>[593, 615, 2]"]
    7[Solid2d]
  end
  subgraph path27 [Path]
    27["Path<br>[986, 1103, 2]"]
    28["Segment<br>[1109, 1167, 2]"]
    29["Segment<br>[1173, 1290, 2]"]
    30["Segment<br>[1296, 1354, 2]"]
    31["Segment<br>[1360, 1480, 2]"]
    32["Segment<br>[1486, 1547, 2]"]
    33["Segment<br>[1553, 1674, 2]"]
    34["Segment<br>[1680, 1740, 2]"]
    35["Segment<br>[1746, 1753, 2]"]
    36[Solid2d]
  end
  subgraph path63 [Path]
    63["Path<br>[1908, 1962, 2]"]
    64["Segment<br>[1968, 2009, 2]"]
    65["Segment<br>[2015, 2044, 2]"]
    66["Segment<br>[2050, 2080, 2]"]
    67["Segment<br>[2086, 2142, 2]"]
    68["Segment<br>[2148, 2155, 2]"]
    69[Solid2d]
  end
  subgraph path84 [Path]
    84["Path<br>[2298, 2335, 2]"]
    85["Segment<br>[2341, 2372, 2]"]
    86["Segment<br>[2378, 2411, 2]"]
    87["Segment<br>[2417, 2449, 2]"]
    88["Segment<br>[2455, 2462, 2]"]
    89[Solid2d]
  end
  subgraph path105 [Path]
    105["Path<br>[496, 550, 3]"]
    106["Segment<br>[556, 583, 3]"]
    107["Segment<br>[589, 618, 3]"]
    108["Segment<br>[624, 652, 3]"]
    109["Segment<br>[658, 714, 3]"]
    110["Segment<br>[720, 727, 3]"]
    111[Solid2d]
  end
  subgraph path113 [Path]
    113["Path<br>[1000, 1047, 3]"]
    114["Segment<br>[1053, 1094, 3]"]
    115["Segment<br>[1100, 1142, 3]"]
    116["Segment<br>[1148, 1190, 3]"]
    117["Segment<br>[1196, 1203, 3]"]
    118[Solid2d]
  end
  subgraph path120 [Path]
    120["Path<br>[1461, 1612, 3]"]
    121["Segment<br>[1618, 1694, 3]"]
    122["Segment<br>[1700, 1853, 3]"]
    123["Segment<br>[1859, 1935, 3]"]
    124["Segment<br>[1941, 2097, 3]"]
    125["Segment<br>[2103, 2180, 3]"]
    126["Segment<br>[2186, 2341, 3]"]
    127["Segment<br>[2347, 2423, 3]"]
    128["Segment<br>[2429, 2436, 3]"]
    129[Solid2d]
  end
  subgraph path131 [Path]
    131["Path<br>[123, 210, 4]"]
    132["Segment<br>[218, 247, 4]"]
    133["Segment<br>[255, 283, 4]"]
    134["Segment<br>[291, 369, 4]"]
    135["Segment<br>[377, 424, 4]"]
    136["Segment<br>[432, 460, 4]"]
    137["Segment<br>[468, 497, 4]"]
    138["Segment<br>[505, 534, 4]"]
    139["Segment<br>[542, 608, 4]"]
    140["Segment<br>[616, 644, 4]"]
    141["Segment<br>[652, 681, 4]"]
    142["Segment<br>[689, 751, 4]"]
    143["Segment<br>[759, 787, 4]"]
    144["Segment<br>[795, 829, 4]"]
    145["Segment<br>[837, 867, 4]"]
    146["Segment<br>[875, 943, 4]"]
    147["Segment<br>[951, 958, 4]"]
    148[Solid2d]
  end
  subgraph path150 [Path]
    150["Path<br>[1092, 1190, 4]"]
    151["Segment<br>[1198, 1276, 4]"]
    152["Segment<br>[1284, 1331, 4]"]
    153["Segment<br>[1339, 1419, 4]"]
    154["Segment<br>[1427, 1434, 4]"]
    155[Solid2d]
  end
  subgraph path157 [Path]
    157["Path<br>[1531, 1628, 4]"]
    158["Segment<br>[1636, 1714, 4]"]
    159["Segment<br>[1722, 1770, 4]"]
    160["Segment<br>[1778, 1858, 4]"]
    161["Segment<br>[1866, 1873, 4]"]
    162[Solid2d]
  end
  subgraph path164 [Path]
    164["Path<br>[1092, 1190, 4]"]
    165["Segment<br>[1198, 1276, 4]"]
    166["Segment<br>[1284, 1331, 4]"]
    167["Segment<br>[1339, 1419, 4]"]
    168["Segment<br>[1427, 1434, 4]"]
    169[Solid2d]
  end
  subgraph path171 [Path]
    171["Path<br>[1531, 1628, 4]"]
    172["Segment<br>[1636, 1714, 4]"]
    173["Segment<br>[1722, 1770, 4]"]
    174["Segment<br>[1778, 1858, 4]"]
    175["Segment<br>[1866, 1873, 4]"]
    176[Solid2d]
  end
  subgraph path205 [Path]
    205["Path<br>[348, 434, 5]"]
    206["Segment<br>[440, 473, 5]"]
    207["Segment<br>[479, 514, 5]"]
    208["Segment<br>[520, 554, 5]"]
    209["Segment<br>[560, 567, 5]"]
    210[Solid2d]
  end
  subgraph path212 [Path]
    212["Path<br>[703, 830, 5]"]
    217[Solid2d]
  end
  subgraph path230 [Path]
    230["Path<br>[279, 372, 6]"]
    231["Segment<br>[378, 427, 6]"]
    232["Segment<br>[433, 483, 6]"]
    233["Segment<br>[489, 539, 6]"]
    234["Segment<br>[545, 563, 6]"]
    235[Solid2d]
  end
  subgraph path253 [Path]
    253["Path<br>[333, 400, 7]"]
    254["Segment<br>[333, 400, 7]"]
    255[Solid2d]
  end
  subgraph path264 [Path]
    264["Path<br>[416, 441, 8]"]
    265["Segment<br>[449, 507, 8]"]
    266["Segment<br>[515, 574, 8]"]
    267["Segment<br>[582, 625, 8]"]
    268["Segment<br>[633, 640, 8]"]
    269[Solid2d]
  end
  subgraph path288 [Path]
    288["Path<br>[416, 441, 8]"]
    289["Segment<br>[449, 507, 8]"]
    290["Segment<br>[515, 574, 8]"]
    291["Segment<br>[582, 625, 8]"]
    292["Segment<br>[633, 640, 8]"]
    293[Solid2d]
  end
  subgraph path312 [Path]
    312["Path<br>[416, 441, 8]"]
    313["Segment<br>[449, 507, 8]"]
    314["Segment<br>[515, 574, 8]"]
    315["Segment<br>[582, 625, 8]"]
    316["Segment<br>[633, 640, 8]"]
    317[Solid2d]
  end
  subgraph path336 [Path]
    336["Path<br>[416, 441, 8]"]
    337["Segment<br>[449, 507, 8]"]
    338["Segment<br>[515, 574, 8]"]
    339["Segment<br>[582, 625, 8]"]
    340["Segment<br>[633, 640, 8]"]
    341[Solid2d]
  end
  1["Plane<br>[386, 403, 2]"]
  8["Sweep Extrusion<br>[621, 651, 2]"]
  9[Wall]
    %% face_code_ref=Missing NodePath
  10[Wall]
    %% face_code_ref=Missing NodePath
  11[Wall]
    %% face_code_ref=Missing NodePath
  12[Wall]
    %% face_code_ref=Missing NodePath
  13["Cap Start"]
    %% face_code_ref=Missing NodePath
  14["Cap End"]
  15["SweepEdge Opposite"]
  16["SweepEdge Adjacent"]
  17["SweepEdge Opposite"]
  18["SweepEdge Adjacent"]
  19["SweepEdge Opposite"]
  20["SweepEdge Adjacent"]
  21["SweepEdge Opposite"]
  22["SweepEdge Adjacent"]
  23["EdgeCut Chamfer<br>[657, 888, 2]"]
  24["EdgeCut Chamfer<br>[657, 888, 2]"]
  25["EdgeCut Chamfer<br>[657, 888, 2]"]
  26["EdgeCut Chamfer<br>[657, 888, 2]"]
  37["Sweep Extrusion<br>[1767, 1810, 2]"]
  38[Wall]
    %% face_code_ref=Missing NodePath
  39[Wall]
    %% face_code_ref=Missing NodePath
  40[Wall]
    %% face_code_ref=Missing NodePath
  41[Wall]
    %% face_code_ref=Missing NodePath
  42[Wall]
    %% face_code_ref=Missing NodePath
  43[Wall]
    %% face_code_ref=Missing NodePath
  44[Wall]
    %% face_code_ref=Missing NodePath
  45[Wall]
    %% face_code_ref=Missing NodePath
  46["Cap Start"]
  47["SweepEdge Opposite"]
  48["SweepEdge Adjacent"]
  49["SweepEdge Opposite"]
  50["SweepEdge Adjacent"]
  51["SweepEdge Opposite"]
  52["SweepEdge Adjacent"]
  53["SweepEdge Opposite"]
  54["SweepEdge Adjacent"]
  55["SweepEdge Opposite"]
  56["SweepEdge Adjacent"]
  57["SweepEdge Opposite"]
  58["SweepEdge Adjacent"]
  59["SweepEdge Opposite"]
  60["SweepEdge Adjacent"]
  61["SweepEdge Opposite"]
  62["SweepEdge Adjacent"]
  70["Sweep Extrusion<br>[2169, 2212, 2]"]
  71[Wall]
    %% face_code_ref=Missing NodePath
  72[Wall]
    %% face_code_ref=Missing NodePath
  73[Wall]
    %% face_code_ref=Missing NodePath
  74[Wall]
    %% face_code_ref=Missing NodePath
  75["Cap Start"]
    %% face_code_ref=Missing NodePath
  76["SweepEdge Opposite"]
  77["SweepEdge Adjacent"]
  78["SweepEdge Opposite"]
  79["SweepEdge Adjacent"]
  80["SweepEdge Opposite"]
  81["SweepEdge Adjacent"]
  82["SweepEdge Opposite"]
  83["SweepEdge Adjacent"]
  90["Sweep Extrusion<br>[2464, 2497, 2]"]
  91[Wall]
    %% face_code_ref=Missing NodePath
  92[Wall]
    %% face_code_ref=Missing NodePath
  93[Wall]
    %% face_code_ref=Missing NodePath
  94[Wall]
    %% face_code_ref=Missing NodePath
  95["Cap Start"]
    %% face_code_ref=Missing NodePath
  96["SweepEdge Opposite"]
  97["SweepEdge Adjacent"]
  98["SweepEdge Opposite"]
  99["SweepEdge Adjacent"]
  100["SweepEdge Opposite"]
  101["SweepEdge Adjacent"]
  102["SweepEdge Opposite"]
  103["SweepEdge Adjacent"]
  104["Plane<br>[473, 490, 3]"]
  112["Plane<br>[977, 994, 3]"]
  119["Plane<br>[1438, 1455, 3]"]
  130["Plane<br>[2587, 2604, 3]"]
  149["Plane<br>[2684, 2701, 3]"]
  156["Plane<br>[2783, 2800, 3]"]
  163["Plane<br>[2881, 2898, 3]"]
  170["Plane<br>[2979, 2996, 3]"]
  177["Sweep Extrusion<br>[3037, 3068, 3]"]
  178[Wall]
    %% face_code_ref=Missing NodePath
  179[Wall]
    %% face_code_ref=Missing NodePath
  180[Wall]
    %% face_code_ref=Missing NodePath
  181[Wall]
    %% face_code_ref=Missing NodePath
  182[Wall]
    %% face_code_ref=Missing NodePath
  183[Wall]
    %% face_code_ref=Missing NodePath
  184[Wall]
    %% face_code_ref=Missing NodePath
  185[Wall]
    %% face_code_ref=Missing NodePath
  186["Cap Start"]
    %% face_code_ref=Missing NodePath
  187["Cap End"]
    %% face_code_ref=Missing NodePath
  188["SweepEdge Opposite"]
  189["SweepEdge Adjacent"]
  190["SweepEdge Opposite"]
  191["SweepEdge Adjacent"]
  192["SweepEdge Opposite"]
  193["SweepEdge Adjacent"]
  194["SweepEdge Opposite"]
  195["SweepEdge Adjacent"]
  196["SweepEdge Opposite"]
  197["SweepEdge Adjacent"]
  198["SweepEdge Opposite"]
  199["SweepEdge Adjacent"]
  200["SweepEdge Opposite"]
  201["SweepEdge Adjacent"]
  202["SweepEdge Opposite"]
  203["SweepEdge Adjacent"]
  204["Plane<br>[325, 342, 5]"]
  211["Plane<br>[614, 653, 5]"]
  213["SweepEdge Opposite"]
  214["SweepEdge Opposite"]
  215["SweepEdge Opposite"]
  216["SweepEdge Opposite"]
  218["Sweep Loft<br>[994, 1037, 5]"]
  219[Wall]
    %% face_code_ref=Missing NodePath
  220[Wall]
    %% face_code_ref=Missing NodePath
  221[Wall]
    %% face_code_ref=Missing NodePath
  222[Wall]
    %% face_code_ref=Missing NodePath
  223["Cap Start"]
    %% face_code_ref=Missing NodePath
  224["Cap End"]
    %% face_code_ref=Missing NodePath
  225["SweepEdge Adjacent"]
  226["SweepEdge Adjacent"]
  227["SweepEdge Adjacent"]
  228["SweepEdge Adjacent"]
  229["Plane<br>[256, 273, 6]"]
  236["Sweep Extrusion<br>[609, 661, 6]"]
  237[Wall]
    %% face_code_ref=Missing NodePath
  238[Wall]
    %% face_code_ref=Missing NodePath
  239[Wall]
    %% face_code_ref=Missing NodePath
  240[Wall]
    %% face_code_ref=Missing NodePath
  241["Cap Start"]
    %% face_code_ref=Missing NodePath
  242["Cap End"]
    %% face_code_ref=Missing NodePath
  243["SweepEdge Opposite"]
  244["SweepEdge Adjacent"]
  245["SweepEdge Opposite"]
  246["SweepEdge Adjacent"]
  247["SweepEdge Opposite"]
  248["SweepEdge Adjacent"]
  249["SweepEdge Opposite"]
  250["SweepEdge Adjacent"]
  251["EdgeCut Fillet<br>[667, 873, 6]"]
  252["Plane<br>[310, 327, 7]"]
  256["Sweep Extrusion<br>[406, 437, 7]"]
  257[Wall]
    %% face_code_ref=Missing NodePath
  258["Cap Start"]
    %% face_code_ref=Missing NodePath
  259["Cap End"]
    %% face_code_ref=Missing NodePath
  260["SweepEdge Opposite"]
  261["SweepEdge Adjacent"]
  262["EdgeCut Fillet<br>[443, 512, 7]"]
  263["Plane<br>[391, 408, 8]"]
  270["Sweep Extrusion<br>[652, 699, 8]"]
  271[Wall]
    %% face_code_ref=Missing NodePath
  272[Wall]
    %% face_code_ref=Missing NodePath
  273[Wall]
    %% face_code_ref=Missing NodePath
  274[Wall]
    %% face_code_ref=Missing NodePath
  275["Cap Start"]
    %% face_code_ref=Missing NodePath
  276["Cap End"]
    %% face_code_ref=Missing NodePath
  277["SweepEdge Opposite"]
  278["SweepEdge Adjacent"]
  279["SweepEdge Opposite"]
  280["SweepEdge Adjacent"]
  281["SweepEdge Opposite"]
  282["SweepEdge Adjacent"]
  283["SweepEdge Opposite"]
  284["SweepEdge Adjacent"]
  285["EdgeCut Chamfer<br>[707, 853, 8]"]
  286["EdgeCut Chamfer<br>[707, 853, 8]"]
  287["Plane<br>[391, 408, 8]"]
  294["Sweep Extrusion<br>[652, 699, 8]"]
  295[Wall]
    %% face_code_ref=Missing NodePath
  296[Wall]
    %% face_code_ref=Missing NodePath
  297[Wall]
    %% face_code_ref=Missing NodePath
  298[Wall]
    %% face_code_ref=Missing NodePath
  299["Cap Start"]
    %% face_code_ref=Missing NodePath
  300["Cap End"]
    %% face_code_ref=Missing NodePath
  301["SweepEdge Opposite"]
  302["SweepEdge Adjacent"]
  303["SweepEdge Opposite"]
  304["SweepEdge Adjacent"]
  305["SweepEdge Opposite"]
  306["SweepEdge Adjacent"]
  307["SweepEdge Opposite"]
  308["SweepEdge Adjacent"]
  309["EdgeCut Chamfer<br>[707, 853, 8]"]
  310["EdgeCut Chamfer<br>[707, 853, 8]"]
  311["Plane<br>[391, 408, 8]"]
  318["Sweep Extrusion<br>[652, 699, 8]"]
  319[Wall]
    %% face_code_ref=Missing NodePath
  320[Wall]
    %% face_code_ref=Missing NodePath
  321[Wall]
    %% face_code_ref=Missing NodePath
  322[Wall]
    %% face_code_ref=Missing NodePath
  323["Cap Start"]
    %% face_code_ref=Missing NodePath
  324["Cap End"]
    %% face_code_ref=Missing NodePath
  325["SweepEdge Opposite"]
  326["SweepEdge Adjacent"]
  327["SweepEdge Opposite"]
  328["SweepEdge Adjacent"]
  329["SweepEdge Opposite"]
  330["SweepEdge Adjacent"]
  331["SweepEdge Opposite"]
  332["SweepEdge Adjacent"]
  333["EdgeCut Chamfer<br>[707, 853, 8]"]
  334["EdgeCut Chamfer<br>[707, 853, 8]"]
  335["Plane<br>[391, 408, 8]"]
  342["Sweep Extrusion<br>[652, 699, 8]"]
  343[Wall]
    %% face_code_ref=Missing NodePath
  344[Wall]
    %% face_code_ref=Missing NodePath
  345[Wall]
    %% face_code_ref=Missing NodePath
  346[Wall]
    %% face_code_ref=Missing NodePath
  347["Cap Start"]
    %% face_code_ref=Missing NodePath
  348["Cap End"]
    %% face_code_ref=Missing NodePath
  349["SweepEdge Opposite"]
  350["SweepEdge Adjacent"]
  351["SweepEdge Opposite"]
  352["SweepEdge Adjacent"]
  353["SweepEdge Opposite"]
  354["SweepEdge Adjacent"]
  355["SweepEdge Opposite"]
  356["SweepEdge Adjacent"]
  357["EdgeCut Chamfer<br>[707, 853, 8]"]
  358["EdgeCut Chamfer<br>[707, 853, 8]"]
  359["StartSketchOnFace<br>[949, 980, 2]"]
  360["StartSketchOnFace<br>[1863, 1902, 2]"]
  361["StartSketchOnFace<br>[2253, 2292, 2]"]
  362["StartSketchOnPlane<br>[673, 697, 5]"]
  1 --- 2
  2 --- 3
  2 --- 4
  2 --- 5
  2 --- 6
  2 --- 7
  2 ---- 8
  3 --- 12
  3 x--> 13
  3 --- 21
  3 --- 22
  4 --- 11
  4 x--> 13
  4 --- 19
  4 --- 20
  5 --- 10
  5 x--> 13
  5 --- 17
  5 --- 18
  6 --- 9
  6 x--> 13
  6 --- 15
  6 --- 16
  8 --- 9
  8 --- 10
  8 --- 11
  8 --- 12
  8 --- 13
  8 --- 14
  8 --- 15
  8 --- 16
  8 --- 17
  8 --- 18
  8 --- 19
  8 --- 20
  8 --- 21
  8 --- 22
  9 --- 15
  9 --- 16
  18 <--x 9
  10 --- 17
  10 --- 18
  20 <--x 10
  11 --- 19
  11 --- 20
  22 <--x 11
  16 <--x 12
  12 --- 21
  12 --- 22
  15 <--x 14
  17 <--x 14
  19 <--x 14
  21 <--x 14
  14 --- 27
  28 <--x 14
  29 <--x 14
  30 <--x 14
  31 <--x 14
  32 <--x 14
  33 <--x 14
  34 <--x 14
  35 <--x 14
  14 <--x 359
  16 <--x 26
  18 <--x 25
  20 <--x 24
  22 <--x 23
  27 --- 28
  27 --- 29
  27 --- 30
  27 --- 31
  27 --- 32
  27 --- 33
  27 --- 34
  27 --- 35
  27 --- 36
  27 ---- 37
  28 --- 45
  28 --- 61
  28 --- 62
  29 --- 44
  29 --- 59
  29 --- 60
  30 --- 43
  30 --- 57
  30 --- 58
  31 --- 42
  31 --- 55
  31 --- 56
  32 --- 41
  32 --- 53
  32 --- 54
  33 --- 40
  33 --- 51
  33 --- 52
  34 --- 39
  34 --- 49
  34 --- 50
  35 --- 38
  35 --- 47
  35 --- 48
  37 --- 38
  37 --- 39
  37 --- 40
  37 --- 41
  37 --- 42
  37 --- 43
  37 --- 44
  37 --- 45
  37 --- 46
  37 --- 47
  37 --- 48
  37 --- 49
  37 --- 50
  37 --- 51
  37 --- 52
  37 --- 53
  37 --- 54
  37 --- 55
  37 --- 56
  37 --- 57
  37 --- 58
  37 --- 59
  37 --- 60
  37 --- 61
  37 --- 62
  38 --- 47
  38 --- 48
  50 <--x 38
  39 --- 49
  39 --- 50
  52 <--x 39
  40 --- 51
  40 --- 52
  54 <--x 40
  41 --- 53
  41 --- 54
  56 <--x 41
  42 --- 55
  42 --- 56
  58 <--x 42
  43 --- 57
  43 --- 58
  60 <--x 43
  44 --- 59
  44 --- 60
  62 <--x 44
  48 <--x 45
  45 --- 61
  45 --- 62
  47 <--x 46
  49 <--x 46
  51 <--x 46
  53 <--x 46
  55 <--x 46
  57 <--x 46
  59 <--x 46
  61 <--x 46
  46 --- 63
  64 <--x 46
  65 <--x 46
  66 <--x 46
  67 <--x 46
  46 --- 84
  85 <--x 46
  86 <--x 46
  87 <--x 46
  88 <--x 46
  46 <--x 360
  46 <--x 361
  63 --- 64
  63 --- 65
  63 --- 66
  63 --- 67
  63 --- 68
  63 --- 69
  63 ---- 70
  64 --- 74
  64 --- 82
  64 --- 83
  65 --- 73
  65 --- 80
  65 --- 81
  66 --- 72
  66 --- 78
  66 --- 79
  67 --- 71
  67 --- 76
  67 --- 77
  70 --- 71
  70 --- 72
  70 --- 73
  70 --- 74
  70 --- 75
  70 --- 76
  70 --- 77
  70 --- 78
  70 --- 79
  70 --- 80
  70 --- 81
  70 --- 82
  70 --- 83
  71 --- 76
  71 --- 77
  79 <--x 71
  72 --- 78
  72 --- 79
  81 <--x 72
  73 --- 80
  73 --- 81
  83 <--x 73
  77 <--x 74
  74 --- 82
  74 --- 83
  76 <--x 75
  78 <--x 75
  80 <--x 75
  82 <--x 75
  84 --- 85
  84 --- 86
  84 --- 87
  84 --- 88
  84 --- 89
  84 ---- 90
  85 --- 94
  85 --- 102
  85 --- 103
  86 --- 93
  86 --- 100
  86 --- 101
  87 --- 92
  87 --- 98
  87 --- 99
  88 --- 91
  88 --- 96
  88 --- 97
  90 --- 91
  90 --- 92
  90 --- 93
  90 --- 94
  90 --- 95
  90 --- 96
  90 --- 97
  90 --- 98
  90 --- 99
  90 --- 100
  90 --- 101
  90 --- 102
  90 --- 103
  91 --- 96
  91 --- 97
  99 <--x 91
  92 --- 98
  92 --- 99
  101 <--x 92
  93 --- 100
  93 --- 101
  103 <--x 93
  97 <--x 94
  94 --- 102
  94 --- 103
  96 <--x 95
  98 <--x 95
  100 <--x 95
  102 <--x 95
  104 --- 105
  105 --- 106
  105 --- 107
  105 --- 108
  105 --- 109
  105 --- 110
  105 --- 111
  112 --- 113
  113 --- 114
  113 --- 115
  113 --- 116
  113 --- 117
  113 --- 118
  119 --- 120
  120 --- 121
  120 --- 122
  120 --- 123
  120 --- 124
  120 --- 125
  120 --- 126
  120 --- 127
  120 --- 128
  120 --- 129
  120 ---- 177
  121 --- 185
  121 x--> 187
  121 --- 202
  121 --- 203
  122 --- 184
  122 x--> 187
  122 --- 200
  122 --- 201
  123 --- 183
  123 x--> 187
  123 --- 198
  123 --- 199
  124 --- 182
  124 x--> 187
  124 --- 196
  124 --- 197
  125 --- 181
  125 x--> 187
  125 --- 194
  125 --- 195
  126 --- 180
  126 x--> 187
  126 --- 192
  126 --- 193
  127 --- 179
  127 x--> 187
  127 --- 190
  127 --- 191
  128 --- 178
  128 x--> 187
  128 --- 188
  128 --- 189
  130 --- 131
  131 --- 132
  131 --- 133
  131 --- 134
  131 --- 135
  131 --- 136
  131 --- 137
  131 --- 138
  131 --- 139
  131 --- 140
  131 --- 141
  131 --- 142
  131 --- 143
  131 --- 144
  131 --- 145
  131 --- 146
  131 --- 147
  131 --- 148
  149 --- 150
  150 --- 151
  150 --- 152
  150 --- 153
  150 --- 154
  150 --- 155
  156 --- 157
  157 --- 158
  157 --- 159
  157 --- 160
  157 --- 161
  157 --- 162
  163 --- 164
  164 --- 165
  164 --- 166
  164 --- 167
  164 --- 168
  164 --- 169
  170 --- 171
  171 --- 172
  171 --- 173
  171 --- 174
  171 --- 175
  171 --- 176
  177 --- 178
  177 --- 179
  177 --- 180
  177 --- 181
  177 --- 182
  177 --- 183
  177 --- 184
  177 --- 185
  177 --- 186
  177 --- 187
  177 --- 188
  177 --- 189
  177 --- 190
  177 --- 191
  177 --- 192
  177 --- 193
  177 --- 194
  177 --- 195
  177 --- 196
  177 --- 197
  177 --- 198
  177 --- 199
  177 --- 200
  177 --- 201
  177 --- 202
  177 --- 203
  178 --- 188
  178 --- 189
  191 <--x 178
  179 --- 190
  179 --- 191
  193 <--x 179
  180 --- 192
  180 --- 193
  195 <--x 180
  181 --- 194
  181 --- 195
  197 <--x 181
  182 --- 196
  182 --- 197
  199 <--x 182
  183 --- 198
  183 --- 199
  201 <--x 183
  184 --- 200
  184 --- 201
  203 <--x 184
  189 <--x 185
  185 --- 202
  185 --- 203
  188 <--x 186
  190 <--x 186
  192 <--x 186
  194 <--x 186
  196 <--x 186
  198 <--x 186
  200 <--x 186
  202 <--x 186
  204 --- 205
  205 --- 206
  205 --- 207
  205 --- 208
  205 --- 209
  205 --- 210
  205 ---- 218
  206 --- 213
  206 --- 219
  206 x--> 223
  206 --- 225
  207 --- 214
  207 --- 220
  207 x--> 223
  207 --- 226
  208 --- 215
  208 --- 221
  208 x--> 223
  208 --- 227
  209 --- 216
  209 --- 222
  209 x--> 223
  209 --- 228
  211 --- 212
  211 <--x 362
  212 x--> 213
  212 x--> 214
  212 x--> 215
  212 x--> 216
  212 --- 217
  212 x---> 218
  218 --- 213
  213 --- 219
  213 x--> 224
  218 --- 214
  214 --- 220
  214 x--> 224
  218 --- 215
  215 --- 221
  215 x--> 224
  218 --- 216
  216 --- 222
  216 x--> 224
  218 --- 219
  218 --- 220
  218 --- 221
  218 --- 222
  218 --- 223
  218 --- 224
  218 --- 225
  218 --- 226
  218 --- 227
  218 --- 228
  219 --- 225
  226 <--x 219
  220 --- 226
  227 <--x 220
  221 --- 227
  228 <--x 221
  225 <--x 222
  222 --- 228
  229 --- 230
  230 --- 231
  230 --- 232
  230 --- 233
  230 --- 234
  230 --- 235
  230 ---- 236
  231 --- 240
  231 x--> 241
  231 --- 249
  231 --- 250
  232 --- 239
  232 x--> 241
  232 --- 247
  232 --- 248
  233 --- 238
  233 x--> 241
  233 --- 245
  233 --- 246
  234 --- 237
  234 x--> 241
  234 --- 243
  234 --- 244
  236 --- 237
  236 --- 238
  236 --- 239
  236 --- 240
  236 --- 241
  236 --- 242
  236 --- 243
  236 --- 244
  236 --- 245
  236 --- 246
  236 --- 247
  236 --- 248
  236 --- 249
  236 --- 250
  237 --- 243
  237 --- 244
  246 <--x 237
  238 --- 245
  238 --- 246
  248 <--x 238
  239 --- 247
  239 --- 248
  250 <--x 239
  244 <--x 240
  240 --- 249
  240 --- 250
  243 <--x 242
  245 <--x 242
  247 <--x 242
  249 <--x 242
  250 <--x 251
  252 --- 253
  253 --- 254
  253 --- 255
  253 ---- 256
  254 --- 257
  254 x--> 258
  254 --- 260
  254 --- 261
  256 --- 257
  256 --- 258
  256 --- 259
  256 --- 260
  256 --- 261
  257 --- 260
  257 --- 261
  260 <--x 259
  260 <--x 262
  263 --- 264
  264 --- 265
  264 --- 266
  264 --- 267
  264 --- 268
  264 --- 269
  264 ---- 270
  265 --- 271
  265 x--> 275
  265 --- 277
  265 --- 278
  266 --- 272
  266 x--> 275
  266 --- 279
  266 --- 280
  267 --- 273
  267 x--> 275
  267 --- 281
  267 --- 282
  268 --- 274
  268 x--> 275
  268 --- 283
  268 --- 284
  270 --- 271
  270 --- 272
  270 --- 273
  270 --- 274
  270 --- 275
  270 --- 276
  270 --- 277
  270 --- 278
  270 --- 279
  270 --- 280
  270 --- 281
  270 --- 282
  270 --- 283
  270 --- 284
  271 --- 277
  271 --- 278
  284 <--x 271
  278 <--x 272
  272 --- 279
  272 --- 280
  280 <--x 273
  273 --- 281
  273 --- 282
  282 <--x 274
  274 --- 283
  274 --- 284
  277 <--x 276
  279 <--x 276
  281 <--x 276
  283 <--x 276
  278 <--x 285
  280 <--x 286
  287 --- 288
  288 --- 289
  288 --- 290
  288 --- 291
  288 --- 292
  288 --- 293
  288 ---- 294
  289 --- 295
  289 x--> 299
  289 --- 301
  289 --- 302
  290 --- 296
  290 x--> 299
  290 --- 303
  290 --- 304
  291 --- 297
  291 x--> 299
  291 --- 305
  291 --- 306
  292 --- 298
  292 x--> 299
  292 --- 307
  292 --- 308
  294 --- 295
  294 --- 296
  294 --- 297
  294 --- 298
  294 --- 299
  294 --- 300
  294 --- 301
  294 --- 302
  294 --- 303
  294 --- 304
  294 --- 305
  294 --- 306
  294 --- 307
  294 --- 308
  295 --- 301
  295 --- 302
  308 <--x 295
  302 <--x 296
  296 --- 303
  296 --- 304
  304 <--x 297
  297 --- 305
  297 --- 306
  306 <--x 298
  298 --- 307
  298 --- 308
  301 <--x 300
  303 <--x 300
  305 <--x 300
  307 <--x 300
  302 <--x 309
  304 <--x 310
  311 --- 312
  312 --- 313
  312 --- 314
  312 --- 315
  312 --- 316
  312 --- 317
  312 ---- 318
  313 --- 319
  313 x--> 323
  313 --- 325
  313 --- 326
  314 --- 320
  314 x--> 323
  314 --- 327
  314 --- 328
  315 --- 321
  315 x--> 323
  315 --- 329
  315 --- 330
  316 --- 322
  316 x--> 323
  316 --- 331
  316 --- 332
  318 --- 319
  318 --- 320
  318 --- 321
  318 --- 322
  318 --- 323
  318 --- 324
  318 --- 325
  318 --- 326
  318 --- 327
  318 --- 328
  318 --- 329
  318 --- 330
  318 --- 331
  318 --- 332
  319 --- 325
  319 --- 326
  332 <--x 319
  326 <--x 320
  320 --- 327
  320 --- 328
  328 <--x 321
  321 --- 329
  321 --- 330
  330 <--x 322
  322 --- 331
  322 --- 332
  325 <--x 324
  327 <--x 324
  329 <--x 324
  331 <--x 324
  326 <--x 333
  328 <--x 334
  335 --- 336
  336 --- 337
  336 --- 338
  336 --- 339
  336 --- 340
  336 --- 341
  336 ---- 342
  337 --- 343
  337 x--> 347
  337 --- 349
  337 --- 350
  338 --- 344
  338 x--> 347
  338 --- 351
  338 --- 352
  339 --- 345
  339 x--> 347
  339 --- 353
  339 --- 354
  340 --- 346
  340 x--> 347
  340 --- 355
  340 --- 356
  342 --- 343
  342 --- 344
  342 --- 345
  342 --- 346
  342 --- 347
  342 --- 348
  342 --- 349
  342 --- 350
  342 --- 351
  342 --- 352
  342 --- 353
  342 --- 354
  342 --- 355
  342 --- 356
  343 --- 349
  343 --- 350
  356 <--x 343
  350 <--x 344
  344 --- 351
  344 --- 352
  352 <--x 345
  345 --- 353
  345 --- 354
  354 <--x 346
  346 --- 355
  346 --- 356
  349 <--x 348
  351 <--x 348
  353 <--x 348
  355 <--x 348
  350 <--x 357
  352 <--x 358