Files
modeling-app/rust/kcl-lib/tests/kcl_samples/spinning-highrise-tower/artifact_graph_flowchart.snap.md

566 lines
19 KiB
Markdown
Raw Normal View History

```mermaid
flowchart LR
subgraph path9 [Path]
9["Path<br>[973, 1019, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
18["Segment<br>[1027, 1052, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
19["Segment<br>[1060, 1085, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
26["Segment<br>[1093, 1119, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
29["Segment<br>[1127, 1183, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
33["Segment<br>[1191, 1199, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 6 }]
46[Solid2d]
end
subgraph path10 [Path]
10["Path<br>[973, 1019, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
17["Segment<br>[1027, 1052, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
21["Segment<br>[1060, 1085, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
23["Segment<br>[1093, 1119, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
30["Segment<br>[1127, 1183, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
32["Segment<br>[1191, 1199, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 6 }]
47[Solid2d]
end
subgraph path11 [Path]
11["Path<br>[973, 1019, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
15["Segment<br>[1027, 1052, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
20["Segment<br>[1060, 1085, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
24["Segment<br>[1093, 1119, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
28["Segment<br>[1127, 1183, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
31["Segment<br>[1191, 1199, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 6 }]
48[Solid2d]
end
subgraph path12 [Path]
12["Path<br>[973, 1019, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
16["Segment<br>[1027, 1052, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
22["Segment<br>[1060, 1085, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
25["Segment<br>[1093, 1119, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
27["Segment<br>[1127, 1183, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
34["Segment<br>[1191, 1199, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 6 }]
50[Solid2d]
end
subgraph path13 [Path]
13["Path<br>[2229, 2281, 0]"]
%% [ProgramBodyItem { index: 25 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
35["Segment<br>[2287, 2320, 0]"]
%% [ProgramBodyItem { index: 25 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
36["Segment<br>[2326, 2359, 0]"]
%% [ProgramBodyItem { index: 25 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
37["Segment<br>[2365, 2399, 0]"]
%% [ProgramBodyItem { index: 25 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
38["Segment<br>[2405, 2461, 0]"]
%% [ProgramBodyItem { index: 25 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
39["Segment<br>[2467, 2475, 0]"]
%% [ProgramBodyItem { index: 25 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 6 }]
49[Solid2d]
end
subgraph path14 [Path]
14["Path<br>[2805, 2860, 0]"]
%% [ProgramBodyItem { index: 29 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
40["Segment<br>[2866, 2895, 0]"]
%% [ProgramBodyItem { index: 29 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
41["Segment<br>[2901, 2931, 0]"]
%% [ProgramBodyItem { index: 29 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
42["Segment<br>[2937, 2971, 0]"]
%% [ProgramBodyItem { index: 29 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
43["Segment<br>[2977, 3033, 0]"]
%% [ProgramBodyItem { index: 29 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
44["Segment<br>[3039, 3047, 0]"]
%% [ProgramBodyItem { index: 29 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 6 }]
45[Solid2d]
end
1["Plane<br>[945, 965, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
2["Plane<br>[945, 965, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
3["Plane<br>[1714, 1754, 0]"]
%% [ProgramBodyItem { index: 21 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }, CallKwArg { index: 0 }]
4["Plane<br>[1939, 1992, 0]"]
%% [ProgramBodyItem { index: 22 }, VariableDeclarationDeclaration, VariableDeclarationInit, CallKwArg { index: 0 }]
5["Plane<br>[2782, 2799, 0]"]
%% [ProgramBodyItem { index: 29 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
6["StartSketchOnPlane<br>[945, 965, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
7["StartSketchOnPlane<br>[945, 965, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
8["StartSketchOnFace<br>[2173, 2223, 0]"]
%% [ProgramBodyItem { index: 25 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
51["Sweep Extrusion<br>[1209, 1240, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit]
52["Sweep Extrusion<br>[1209, 1240, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit]
53["Sweep Extrusion<br>[1209, 1240, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit]
54["Sweep Extrusion<br>[1209, 1240, 0]"]
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit]
55["Sweep Extrusion<br>[2547, 2595, 0]"]
%% [ProgramBodyItem { index: 26 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
56["Sweep Extrusion<br>[3053, 3084, 0]"]
%% [ProgramBodyItem { index: 29 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }]
57[Wall]
%% face_code_ref=Missing NodePath
58[Wall]
%% face_code_ref=Missing NodePath
59[Wall]
%% face_code_ref=Missing NodePath
60[Wall]
%% face_code_ref=Missing NodePath
61[Wall]
%% face_code_ref=Missing NodePath
62[Wall]
%% face_code_ref=Missing NodePath
63[Wall]
%% face_code_ref=Missing NodePath
64[Wall]
%% face_code_ref=Missing NodePath
65[Wall]
%% face_code_ref=Missing NodePath
66[Wall]
%% face_code_ref=Missing NodePath
67[Wall]
%% face_code_ref=Missing NodePath
68[Wall]
%% face_code_ref=Missing NodePath
69[Wall]
%% face_code_ref=Missing NodePath
70[Wall]
%% face_code_ref=Missing NodePath
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[Wall]
%% face_code_ref=Missing NodePath
76[Wall]
%% face_code_ref=Missing NodePath
77[Wall]
%% face_code_ref=Missing NodePath
78[Wall]
%% face_code_ref=Missing NodePath
79[Wall]
%% face_code_ref=Missing NodePath
80[Wall]
%% face_code_ref=Missing NodePath
81["Cap Start"]
%% face_code_ref=Missing NodePath
82["Cap Start"]
%% face_code_ref=Missing NodePath
83["Cap Start"]
%% face_code_ref=Missing NodePath
84["Cap Start"]
%% face_code_ref=Missing NodePath
85["Cap Start"]
%% face_code_ref=Missing NodePath
86["Cap Start"]
%% face_code_ref=Missing NodePath
87["Cap End"]
%% face_code_ref=Missing NodePath
88["Cap End"]
%% face_code_ref=Missing NodePath
89["Cap End"]
%% face_code_ref=[ProgramBodyItem { index: 25 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
90["Cap End"]
%% face_code_ref=Missing NodePath
91["Cap End"]
%% face_code_ref=Missing NodePath
92["SweepEdge Opposite"]
93["SweepEdge Opposite"]
94["SweepEdge Opposite"]
95["SweepEdge Opposite"]
96["SweepEdge Opposite"]
97["SweepEdge Opposite"]
98["SweepEdge Opposite"]
99["SweepEdge Opposite"]
100["SweepEdge Opposite"]
101["SweepEdge Opposite"]
102["SweepEdge Opposite"]
103["SweepEdge Opposite"]
104["SweepEdge Opposite"]
105["SweepEdge Opposite"]
106["SweepEdge Opposite"]
107["SweepEdge Opposite"]
108["SweepEdge Opposite"]
109["SweepEdge Opposite"]
110["SweepEdge Opposite"]
111["SweepEdge Opposite"]
112["SweepEdge Opposite"]
113["SweepEdge Opposite"]
114["SweepEdge Opposite"]
115["SweepEdge Opposite"]
116["SweepEdge Adjacent"]
117["SweepEdge Adjacent"]
118["SweepEdge Adjacent"]
119["SweepEdge Adjacent"]
120["SweepEdge Adjacent"]
121["SweepEdge Adjacent"]
122["SweepEdge Adjacent"]
123["SweepEdge Adjacent"]
124["SweepEdge Adjacent"]
125["SweepEdge Adjacent"]
126["SweepEdge Adjacent"]
127["SweepEdge Adjacent"]
128["SweepEdge Adjacent"]
129["SweepEdge Adjacent"]
130["SweepEdge Adjacent"]
131["SweepEdge Adjacent"]
132["SweepEdge Adjacent"]
133["SweepEdge Adjacent"]
134["SweepEdge Adjacent"]
135["SweepEdge Adjacent"]
136["SweepEdge Adjacent"]
137["SweepEdge Adjacent"]
138["SweepEdge Adjacent"]
139["SweepEdge Adjacent"]
1 --- 12
2 --- 10
3 <--x 6
3 --- 11
4 <--x 7
4 --- 9
5 --- 14
89 x--> 8
9 --- 18
9 --- 19
9 --- 26
9 --- 29
9 --- 33
9 --- 46
9 ---- 54
10 --- 17
10 --- 21
10 --- 23
10 --- 30
10 --- 32
10 --- 47
10 ---- 51
11 --- 15
11 --- 20
11 --- 24
11 --- 28
11 --- 31
11 --- 48
11 ---- 52
12 --- 16
12 --- 22
12 --- 25
12 --- 27
12 --- 34
12 --- 50
12 ---- 53
13 --- 35
13 --- 36
13 --- 37
13 --- 38
13 --- 39
13 --- 49
13 ---- 55
89 --- 13
14 --- 40
14 --- 41
14 --- 42
14 --- 43
14 --- 44
14 --- 45
14 ---- 56
15 --- 64
15 x--> 91
15 --- 99
15 --- 123
16 --- 68
16 x--> 85
16 --- 103
16 --- 127
17 --- 60
17 x--> 87
17 --- 95
17 --- 119
18 --- 80
18 x--> 84
18 --- 115
18 --- 139
19 --- 77
19 x--> 84
19 --- 114
19 --- 138
20 --- 62
20 x--> 91
20 --- 98
20 --- 122
21 --- 58
21 x--> 87
21 --- 94
21 --- 118
22 --- 67
22 x--> 85
22 --- 102
22 --- 126
23 --- 57
23 x--> 87
23 --- 93
23 --- 117
24 --- 63
24 x--> 91
24 --- 97
24 --- 121
25 --- 66
25 x--> 85
25 --- 101
25 --- 125
26 --- 79
26 x--> 84
26 --- 113
26 --- 137
27 --- 65
27 x--> 85
27 --- 100
27 --- 124
28 --- 61
28 x--> 91
28 --- 96
28 --- 120
29 --- 78
29 x--> 84
29 --- 112
29 --- 136
30 --- 59
30 x--> 87
30 --- 92
30 --- 116
35 --- 69
35 x--> 89
35 --- 107
35 --- 131
36 --- 70
36 x--> 89
36 --- 106
36 --- 130
37 --- 72
37 x--> 89
37 --- 105
37 --- 129
38 --- 71
38 x--> 89
38 --- 104
38 --- 128
40 --- 74
40 x--> 82
40 --- 111
40 --- 135
41 --- 75
41 x--> 82
41 --- 110
41 --- 134
42 --- 73
42 x--> 82
42 --- 109
42 --- 133
43 --- 76
43 x--> 82
43 --- 108
43 --- 132
51 --- 57
51 --- 58
51 --- 59
51 --- 60
51 --- 81
51 --- 87
51 --- 92
51 --- 93
51 --- 94
51 --- 95
51 --- 116
51 --- 117
51 --- 118
51 --- 119
52 --- 61
52 --- 62
52 --- 63
52 --- 64
52 --- 86
52 --- 91
52 --- 96
52 --- 97
52 --- 98
52 --- 99
52 --- 120
52 --- 121
52 --- 122
52 --- 123
53 --- 65
53 --- 66
53 --- 67
53 --- 68
53 --- 85
53 --- 90
53 --- 100
53 --- 101
53 --- 102
53 --- 103
53 --- 124
53 --- 125
53 --- 126
53 --- 127
54 --- 77
54 --- 78
54 --- 79
54 --- 80
54 --- 84
54 --- 89
54 --- 112
54 --- 113
54 --- 114
54 --- 115
54 --- 136
54 --- 137
54 --- 138
54 --- 139
55 --- 69
55 --- 70
55 --- 71
55 --- 72
55 --- 83
55 --- 104
55 --- 105
55 --- 106
55 --- 107
55 --- 128
55 --- 129
55 --- 130
55 --- 131
56 --- 73
56 --- 74
56 --- 75
56 --- 76
56 --- 82
56 --- 88
56 --- 108
56 --- 109
56 --- 110
56 --- 111
56 --- 132
56 --- 133
56 --- 134
56 --- 135
57 --- 93
57 --- 117
118 <--x 57
58 --- 94
58 --- 118
119 <--x 58
59 --- 92
59 --- 116
117 <--x 59
60 --- 95
116 <--x 60
60 --- 119
61 --- 96
61 --- 120
121 <--x 61
62 --- 98
62 --- 122
123 <--x 62
63 --- 97
63 --- 121
122 <--x 63
64 --- 99
120 <--x 64
64 --- 123
65 --- 100
65 --- 124
125 <--x 65
66 --- 101
66 --- 125
126 <--x 66
67 --- 102
67 --- 126
127 <--x 67
68 --- 103
124 <--x 68
68 --- 127
69 --- 107
128 <--x 69
69 --- 131
70 --- 106
70 --- 130
131 <--x 70
71 --- 104
71 --- 128
129 <--x 71
72 --- 105
72 --- 129
130 <--x 72
73 --- 109
73 --- 133
134 <--x 73
74 --- 111
132 <--x 74
74 --- 135
75 --- 110
75 --- 134
135 <--x 75
76 --- 108
76 --- 132
133 <--x 76
77 --- 114
77 --- 138
139 <--x 77
78 --- 112
78 --- 136
137 <--x 78
79 --- 113
79 --- 137
138 <--x 79
80 --- 115
136 <--x 80
80 --- 139
92 <--x 81
93 <--x 81
94 <--x 81
95 <--x 81
104 <--x 83
105 <--x 83
106 <--x 83
107 <--x 83
96 <--x 86
97 <--x 86
98 <--x 86
99 <--x 86
108 <--x 88
109 <--x 88
110 <--x 88
111 <--x 88
112 <--x 89
113 <--x 89
114 <--x 89
115 <--x 89
100 <--x 90
101 <--x 90
102 <--x 90
103 <--x 90
```