Files
modeling-app/rust/kcl-lib/tests/kcl_samples/80-20-rail/artifact_graph_flowchart.snap.md
Jonathan Tran 69553fded7 test: Vendor kcl-samples and add simulation tests for them (#5460)
* Change to unzip

* Download kcl-samples as zip to public dir

* Fix fetch:samples, e2e electron still not working

* Change error message to be clearer

* Refactor so that input and output directories of sim tests can be different

* Add kcl samples test implementation

* Update output since adding kcl_samples tests

* Update kcl-samples branch

* Fix git-ignore pattern to only apply to the root

* Fix yarn install and yarn fetch:samples to work the first time

* Remove unneeded exists check

* Change to use kcl-samples in public directory

* Add kcl-samples

* Update output since updating kcl-samples

* Update output files

* Change to not fetch samples during yarn install

* Update output after merge

* Ignore kcl-samples in codespell

* WIP: Don't run e2e if only kcl-samples changed

* Conditionally run cargo tests

* Fix to round floating point values in program memory arrays

* Update output since merge and rounding numbers in memory

* Fix memory redaction for floating point to find more values

* Fix float redaction pattern

* Update output since rounding floating point numbers

* Add center to floating point pattern

* Fix trigger to use picomatch syntax

* Update output since rounding center

* Remove kcl-samples github workflows

* Enable Rust backtrace

* Update output after re-running

* Update output after changing order of post-extrude commands

* Fix to have deterministic order of commands

* Update output after reverting ordering changes

* Update kcl-samples

* Update output after updating samples

* Fix error messages to show the names of all samples that failed

* Change cargo test command to match current one

* Update kcl-samples

* Update output since updating kcl-samples

* Add generate manifest workflow and yarn script

* Fix error check to actually work

* Change util function to be what we actually need

* Move new files after merge

* Fix paths since directory move

* Add dependabot updates for kcl-samples

* Add GitHub workflow to make PR to kcl-samples repo

* Add GitHub workflow to check kcl-samples header comments

* Fix worfklow to change to the right directory

* Add auto-commit simulation test output changes

* Add permissions to workflows

* Fix to run git commit step

* Install just if needed

* Fix directory of justfile

* Add installation of cargo-insta

* Fix to use underscore

* Fix to allow just command failure

* Change to always install CLI tools and cache them

* Trying to fix overwrite failing

* Combine commands

* Change reviewer

* Change to PR targeting the next branch

* Change git commands to not do unnecessary fetch

* Comment out trigger for creating a PR

* Update kcl-samples from next branch

* Update outputs after kcl-samples change

* Fix to use bash pipefail

* Add rust backtrace

* Print full env from sim tests

* Change command to use long option name

* Fix to use ci profile even when calling through just

* Add INSTA_UPDATE=always

* Fix git push by using an app token on checkout

* Add comments

* Fix to use bash options

* Change to echo when no changes are found

* Fix so that kcl-samples updates don't trigger full run

* Fix paths to reflect new crate location

* Fix path detection

* Fix e2e job to ignore kcl_samples simulation test output

* Fix the fetch logic for the KCL samples after vendoring (#5661)

Fixes the last 2 E2E tests for #5460.

---------

Co-authored-by: Pierre Jacquier <pierre@zoo.dev>
Co-authored-by: Pierre Jacquier <pierrejacquier39@gmail.com>
Co-authored-by: Frank Noirot <frank@zoo.dev>
2025-03-06 18:01:24 -05:00

14 KiB

flowchart LR
  subgraph path2 [Path]
    2["Path<br>[326, 423, 0]"]
    3["Segment<br>[431, 536, 0]"]
    4["Segment<br>[544, 653, 0]"]
    5["Segment<br>[661, 687, 0]"]
    6["Segment<br>[695, 804, 0]"]
    7["Segment<br>[812, 847, 0]"]
    8["Segment<br>[855, 891, 0]"]
    9["Segment<br>[899, 936, 0]"]
    10["Segment<br>[944, 1061, 0]"]
    11["Segment<br>[1069, 1105, 0]"]
    12["Segment<br>[1113, 1221, 0]"]
    13["Segment<br>[1229, 1266, 0]"]
    14["Segment<br>[1274, 1311, 0]"]
    15["Segment<br>[1319, 1346, 0]"]
    16["Segment<br>[1354, 1463, 0]"]
    17["Segment<br>[1471, 1497, 0]"]
    18["Segment<br>[1505, 1614, 0]"]
    19["Segment<br>[1622, 1725, 0]"]
    20["Segment<br>[1766, 1876, 0]"]
    21["Segment<br>[1884, 1910, 0]"]
    22["Segment<br>[1918, 2028, 0]"]
    23["Segment<br>[2036, 2071, 0]"]
    24["Segment<br>[2079, 2117, 0]"]
    25["Segment<br>[2125, 2163, 0]"]
    26["Segment<br>[2181, 2310, 0]"]
    27["Segment<br>[2328, 2365, 0]"]
    28["Segment<br>[2379, 2493, 0]"]
    29["Segment<br>[2507, 2545, 0]"]
    30["Segment<br>[2559, 2596, 0]"]
    31["Segment<br>[2604, 2631, 0]"]
    32["Segment<br>[2639, 2749, 0]"]
    33["Segment<br>[2757, 2783, 0]"]
    34["Segment<br>[2791, 2901, 0]"]
    35["Segment<br>[2942, 3044, 0]"]
    36["Segment<br>[3052, 3162, 0]"]
    37["Segment<br>[3170, 3197, 0]"]
    38["Segment<br>[3205, 3315, 0]"]
    39["Segment<br>[3323, 3360, 0]"]
    40["Segment<br>[3368, 3406, 0]"]
    41["Segment<br>[3414, 3451, 0]"]
    42["Segment<br>[3459, 3587, 0]"]
    43["Segment<br>[3595, 3633, 0]"]
    44["Segment<br>[3641, 3756, 0]"]
    45["Segment<br>[3764, 3801, 0]"]
    46["Segment<br>[3809, 3846, 0]"]
    47["Segment<br>[3854, 3882, 0]"]
    48["Segment<br>[3890, 4000, 0]"]
    49["Segment<br>[4008, 4035, 0]"]
    50["Segment<br>[4043, 4153, 0]"]
    51["Segment<br>[4161, 4265, 0]"]
    52["Segment<br>[4306, 4416, 0]"]
    53["Segment<br>[4424, 4451, 0]"]
    54["Segment<br>[4459, 4569, 0]"]
    55["Segment<br>[4577, 4614, 0]"]
    56["Segment<br>[4622, 4659, 0]"]
    57["Segment<br>[4667, 4704, 0]"]
    58["Segment<br>[4712, 4831, 0]"]
    59["Segment<br>[4839, 4877, 0]"]
    60["Segment<br>[4885, 4993, 0]"]
    61["Segment<br>[5001, 5038, 0]"]
    62["Segment<br>[5046, 5084, 0]"]
    63["Segment<br>[5092, 5120, 0]"]
    64["Segment<br>[5128, 5238, 0]"]
    65["Segment<br>[5246, 5273, 0]"]
    66["Segment<br>[5281, 5391, 0]"]
    67["Segment<br>[5399, 5406, 0]"]
    68[Solid2d]
  end
  subgraph path69 [Path]
    69["Path<br>[5457, 5634, 0]"]
    70["Segment<br>[5457, 5634, 0]"]
    71[Solid2d]
  end
  1["Plane<br>[298, 318, 0]"]
  72["Sweep Extrusion<br>[5646, 5674, 0]"]
  73[Wall]
  74[Wall]
  75[Wall]
  76[Wall]
  77[Wall]
  78[Wall]
  79[Wall]
  80[Wall]
  81[Wall]
  82[Wall]
  83[Wall]
  84[Wall]
  85[Wall]
  86[Wall]
  87[Wall]
  88[Wall]
  89[Wall]
  90[Wall]
  91[Wall]
  92[Wall]
  93[Wall]
  94[Wall]
  95[Wall]
  96[Wall]
  97[Wall]
  98[Wall]
  99[Wall]
  100[Wall]
  101[Wall]
  102[Wall]
  103[Wall]
  104[Wall]
  105[Wall]
  106[Wall]
  107[Wall]
  108[Wall]
  109[Wall]
  110[Wall]
  111[Wall]
  112[Wall]
  113[Wall]
  114[Wall]
  115[Wall]
  116[Wall]
  117[Wall]
  118[Wall]
  119[Wall]
  120[Wall]
  121[Wall]
  122[Wall]
  123[Wall]
  124[Wall]
  125[Wall]
  126[Wall]
  127[Wall]
  128[Wall]
  129[Wall]
  130[Wall]
  131[Wall]
  132[Wall]
  133[Wall]
  134[Wall]
  135[Wall]
  136[Wall]
  137["Cap Start"]
  138["Cap End"]
  139["SweepEdge Opposite"]
  140["SweepEdge Adjacent"]
  141["SweepEdge Opposite"]
  142["SweepEdge Adjacent"]
  143["SweepEdge Opposite"]
  144["SweepEdge Adjacent"]
  145["SweepEdge Opposite"]
  146["SweepEdge Adjacent"]
  147["SweepEdge Opposite"]
  148["SweepEdge Adjacent"]
  149["SweepEdge Opposite"]
  150["SweepEdge Adjacent"]
  151["SweepEdge Opposite"]
  152["SweepEdge Adjacent"]
  153["SweepEdge Opposite"]
  154["SweepEdge Adjacent"]
  155["SweepEdge Opposite"]
  156["SweepEdge Adjacent"]
  157["SweepEdge Opposite"]
  158["SweepEdge Adjacent"]
  159["SweepEdge Opposite"]
  160["SweepEdge Adjacent"]
  161["SweepEdge Opposite"]
  162["SweepEdge Adjacent"]
  163["SweepEdge Opposite"]
  164["SweepEdge Adjacent"]
  165["SweepEdge Opposite"]
  166["SweepEdge Adjacent"]
  167["SweepEdge Opposite"]
  168["SweepEdge Adjacent"]
  169["SweepEdge Opposite"]
  170["SweepEdge Adjacent"]
  171["SweepEdge Opposite"]
  172["SweepEdge Adjacent"]
  173["SweepEdge Opposite"]
  174["SweepEdge Adjacent"]
  175["SweepEdge Opposite"]
  176["SweepEdge Adjacent"]
  177["SweepEdge Opposite"]
  178["SweepEdge Adjacent"]
  179["SweepEdge Opposite"]
  180["SweepEdge Adjacent"]
  181["SweepEdge Opposite"]
  182["SweepEdge Adjacent"]
  183["SweepEdge Opposite"]
  184["SweepEdge Adjacent"]
  185["SweepEdge Opposite"]
  186["SweepEdge Adjacent"]
  187["SweepEdge Opposite"]
  188["SweepEdge Adjacent"]
  189["SweepEdge Opposite"]
  190["SweepEdge Adjacent"]
  191["SweepEdge Opposite"]
  192["SweepEdge Adjacent"]
  193["SweepEdge Opposite"]
  194["SweepEdge Adjacent"]
  195["SweepEdge Opposite"]
  196["SweepEdge Adjacent"]
  197["SweepEdge Opposite"]
  198["SweepEdge Adjacent"]
  199["SweepEdge Opposite"]
  200["SweepEdge Adjacent"]
  201["SweepEdge Opposite"]
  202["SweepEdge Adjacent"]
  203["SweepEdge Opposite"]
  204["SweepEdge Adjacent"]
  205["SweepEdge Opposite"]
  206["SweepEdge Adjacent"]
  207["SweepEdge Opposite"]
  208["SweepEdge Adjacent"]
  209["SweepEdge Opposite"]
  210["SweepEdge Adjacent"]
  211["SweepEdge Opposite"]
  212["SweepEdge Adjacent"]
  213["SweepEdge Opposite"]
  214["SweepEdge Adjacent"]
  215["SweepEdge Opposite"]
  216["SweepEdge Adjacent"]
  217["SweepEdge Opposite"]
  218["SweepEdge Adjacent"]
  219["SweepEdge Opposite"]
  220["SweepEdge Adjacent"]
  221["SweepEdge Opposite"]
  222["SweepEdge Adjacent"]
  223["SweepEdge Opposite"]
  224["SweepEdge Adjacent"]
  225["SweepEdge Opposite"]
  226["SweepEdge Adjacent"]
  227["SweepEdge Opposite"]
  228["SweepEdge Adjacent"]
  229["SweepEdge Opposite"]
  230["SweepEdge Adjacent"]
  231["SweepEdge Opposite"]
  232["SweepEdge Adjacent"]
  233["SweepEdge Opposite"]
  234["SweepEdge Adjacent"]
  235["SweepEdge Opposite"]
  236["SweepEdge Adjacent"]
  237["SweepEdge Opposite"]
  238["SweepEdge Adjacent"]
  239["SweepEdge Opposite"]
  240["SweepEdge Adjacent"]
  241["SweepEdge Opposite"]
  242["SweepEdge Adjacent"]
  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["SweepEdge Opposite"]
  252["SweepEdge Adjacent"]
  253["SweepEdge Opposite"]
  254["SweepEdge Adjacent"]
  255["SweepEdge Opposite"]
  256["SweepEdge Adjacent"]
  257["SweepEdge Opposite"]
  258["SweepEdge Adjacent"]
  259["SweepEdge Opposite"]
  260["SweepEdge Adjacent"]
  261["SweepEdge Opposite"]
  262["SweepEdge Adjacent"]
  263["SweepEdge Opposite"]
  264["SweepEdge Adjacent"]
  265["SweepEdge Opposite"]
  266["SweepEdge Adjacent"]
  267["EdgeCut Fillet<br>[5682, 6386, 0]"]
  268["EdgeCut Fillet<br>[5682, 6386, 0]"]
  269["EdgeCut Fillet<br>[5682, 6386, 0]"]
  270["EdgeCut Fillet<br>[5682, 6386, 0]"]
  271["EdgeCut Fillet<br>[5682, 6386, 0]"]
  272["EdgeCut Fillet<br>[5682, 6386, 0]"]
  273["EdgeCut Fillet<br>[5682, 6386, 0]"]
  274["EdgeCut Fillet<br>[5682, 6386, 0]"]
  275["EdgeCut Fillet<br>[5682, 6386, 0]"]
  276["EdgeCut Fillet<br>[5682, 6386, 0]"]
  277["EdgeCut Fillet<br>[5682, 6386, 0]"]
  278["EdgeCut Fillet<br>[5682, 6386, 0]"]
  279["EdgeCut Fillet<br>[5682, 6386, 0]"]
  280["EdgeCut Fillet<br>[5682, 6386, 0]"]
  281["EdgeCut Fillet<br>[5682, 6386, 0]"]
  282["EdgeCut Fillet<br>[5682, 6386, 0]"]
  283["EdgeCut Fillet<br>[6394, 7097, 0]"]
  284["EdgeCut Fillet<br>[6394, 7097, 0]"]
  285["EdgeCut Fillet<br>[6394, 7097, 0]"]
  286["EdgeCut Fillet<br>[6394, 7097, 0]"]
  287["EdgeCut Fillet<br>[6394, 7097, 0]"]
  288["EdgeCut Fillet<br>[6394, 7097, 0]"]
  289["EdgeCut Fillet<br>[6394, 7097, 0]"]
  290["EdgeCut Fillet<br>[6394, 7097, 0]"]
  291["EdgeCut Fillet<br>[6394, 7097, 0]"]
  292["EdgeCut Fillet<br>[6394, 7097, 0]"]
  293["EdgeCut Fillet<br>[6394, 7097, 0]"]
  294["EdgeCut Fillet<br>[6394, 7097, 0]"]
  295["EdgeCut Fillet<br>[6394, 7097, 0]"]
  296["EdgeCut Fillet<br>[6394, 7097, 0]"]
  297["EdgeCut Fillet<br>[6394, 7097, 0]"]
  298["EdgeCut Fillet<br>[6394, 7097, 0]"]
  1 --- 2
  1 --- 69
  2 --- 3
  2 --- 4
  2 --- 5
  2 --- 6
  2 --- 7
  2 --- 8
  2 --- 9
  2 --- 10
  2 --- 11
  2 --- 12
  2 --- 13
  2 --- 14
  2 --- 15
  2 --- 16
  2 --- 17
  2 --- 18
  2 --- 19
  2 --- 20
  2 --- 21
  2 --- 22
  2 --- 23
  2 --- 24
  2 --- 25
  2 --- 26
  2 --- 27
  2 --- 28
  2 --- 29
  2 --- 30
  2 --- 31
  2 --- 32
  2 --- 33
  2 --- 34
  2 --- 35
  2 --- 36
  2 --- 37
  2 --- 38
  2 --- 39
  2 --- 40
  2 --- 41
  2 --- 42
  2 --- 43
  2 --- 44
  2 --- 45
  2 --- 46
  2 --- 47
  2 --- 48
  2 --- 49
  2 --- 50
  2 --- 51
  2 --- 52
  2 --- 53
  2 --- 54
  2 --- 55
  2 --- 56
  2 --- 57
  2 --- 58
  2 --- 59
  2 --- 60
  2 --- 61
  2 --- 62
  2 --- 63
  2 --- 64
  2 --- 65
  2 --- 66
  2 --- 67
  2 ---- 72
  2 --- 68
  3 --- 73
  3 --- 139
  3 --- 140
  4 --- 74
  4 --- 141
  4 --- 142
  5 --- 75
  5 --- 143
  5 --- 144
  6 --- 76
  6 --- 145
  6 --- 146
  7 --- 77
  7 --- 147
  7 --- 148
  8 --- 78
  8 --- 149
  8 --- 150
  9 --- 79
  9 --- 151
  9 --- 152
  10 --- 80
  10 --- 153
  10 --- 154
  11 --- 81
  11 --- 155
  11 --- 156
  12 --- 82
  12 --- 157
  12 --- 158
  13 --- 83
  13 --- 159
  13 --- 160
  14 --- 84
  14 --- 161
  14 --- 162
  15 --- 85
  15 --- 163
  15 --- 164
  16 --- 86
  16 --- 165
  16 --- 166
  17 --- 87
  17 --- 167
  17 --- 168
  18 --- 88
  18 --- 169
  18 --- 170
  19 --- 89
  19 --- 171
  19 --- 172
  20 --- 90
  20 --- 173
  20 --- 174
  21 --- 91
  21 --- 175
  21 --- 176
  22 --- 92
  22 --- 177
  22 --- 178
  23 --- 93
  23 --- 179
  23 --- 180
  24 --- 94
  24 --- 181
  24 --- 182
  25 --- 95
  25 --- 183
  25 --- 184
  26 --- 96
  26 --- 185
  26 --- 186
  27 --- 97
  27 --- 187
  27 --- 188
  28 --- 98
  28 --- 189
  28 --- 190
  29 --- 99
  29 --- 191
  29 --- 192
  30 --- 100
  30 --- 193
  30 --- 194
  31 --- 101
  31 --- 195
  31 --- 196
  32 --- 102
  32 --- 197
  32 --- 198
  33 --- 103
  33 --- 199
  33 --- 200
  34 --- 104
  34 --- 201
  34 --- 202
  35 --- 105
  35 --- 203
  35 --- 204
  36 --- 106
  36 --- 205
  36 --- 206
  37 --- 107
  37 --- 207
  37 --- 208
  38 --- 108
  38 --- 209
  38 --- 210
  39 --- 109
  39 --- 211
  39 --- 212
  40 --- 110
  40 --- 213
  40 --- 214
  41 --- 111
  41 --- 215
  41 --- 216
  42 --- 112
  42 --- 217
  42 --- 218
  43 --- 113
  43 --- 219
  43 --- 220
  44 --- 114
  44 --- 221
  44 --- 222
  45 --- 115
  45 --- 223
  45 --- 224
  46 --- 116
  46 --- 225
  46 --- 226
  47 --- 117
  47 --- 227
  47 --- 228
  48 --- 118
  48 --- 229
  48 --- 230
  49 --- 119
  49 --- 231
  49 --- 232
  50 --- 120
  50 --- 233
  50 --- 234
  51 --- 121
  51 --- 235
  51 --- 236
  52 --- 122
  52 --- 237
  52 --- 238
  53 --- 123
  53 --- 239
  53 --- 240
  54 --- 124
  54 --- 241
  54 --- 242
  55 --- 125
  55 --- 243
  55 --- 244
  56 --- 126
  56 --- 245
  56 --- 246
  57 --- 127
  57 --- 247
  57 --- 248
  58 --- 128
  58 --- 249
  58 --- 250
  59 --- 129
  59 --- 251
  59 --- 252
  60 --- 130
  60 --- 253
  60 --- 254
  61 --- 131
  61 --- 255
  61 --- 256
  62 --- 132
  62 --- 257
  62 --- 258
  63 --- 133
  63 --- 259
  63 --- 260
  64 --- 134
  64 --- 261
  64 --- 262
  65 --- 135
  65 --- 263
  65 --- 264
  66 --- 136
  66 --- 265
  66 --- 266
  69 --- 70
  69 --- 71
  72 --- 73
  72 --- 74
  72 --- 75
  72 --- 76
  72 --- 77
  72 --- 78
  72 --- 79
  72 --- 80
  72 --- 81
  72 --- 82
  72 --- 83
  72 --- 84
  72 --- 85
  72 --- 86
  72 --- 87
  72 --- 88
  72 --- 89
  72 --- 90
  72 --- 91
  72 --- 92
  72 --- 93
  72 --- 94
  72 --- 95
  72 --- 96
  72 --- 97
  72 --- 98
  72 --- 99
  72 --- 100
  72 --- 101
  72 --- 102
  72 --- 103
  72 --- 104
  72 --- 105
  72 --- 106
  72 --- 107
  72 --- 108
  72 --- 109
  72 --- 110
  72 --- 111
  72 --- 112
  72 --- 113
  72 --- 114
  72 --- 115
  72 --- 116
  72 --- 117
  72 --- 118
  72 --- 119
  72 --- 120
  72 --- 121
  72 --- 122
  72 --- 123
  72 --- 124
  72 --- 125
  72 --- 126
  72 --- 127
  72 --- 128
  72 --- 129
  72 --- 130
  72 --- 131
  72 --- 132
  72 --- 133
  72 --- 134
  72 --- 135
  72 --- 136
  72 --- 137
  72 --- 138
  72 --- 139
  72 --- 140
  72 --- 141
  72 --- 142
  72 --- 143
  72 --- 144
  72 --- 145
  72 --- 146
  72 --- 147
  72 --- 148
  72 --- 149
  72 --- 150
  72 --- 151
  72 --- 152
  72 --- 153
  72 --- 154
  72 --- 155
  72 --- 156
  72 --- 157
  72 --- 158
  72 --- 159
  72 --- 160
  72 --- 161
  72 --- 162
  72 --- 163
  72 --- 164
  72 --- 165
  72 --- 166
  72 --- 167
  72 --- 168
  72 --- 169
  72 --- 170
  72 --- 171
  72 --- 172
  72 --- 173
  72 --- 174
  72 --- 175
  72 --- 176
  72 --- 177
  72 --- 178
  72 --- 179
  72 --- 180
  72 --- 181
  72 --- 182
  72 --- 183
  72 --- 184
  72 --- 185
  72 --- 186
  72 --- 187
  72 --- 188
  72 --- 189
  72 --- 190
  72 --- 191
  72 --- 192
  72 --- 193
  72 --- 194
  72 --- 195
  72 --- 196
  72 --- 197
  72 --- 198
  72 --- 199
  72 --- 200
  72 --- 201
  72 --- 202
  72 --- 203
  72 --- 204
  72 --- 205
  72 --- 206
  72 --- 207
  72 --- 208
  72 --- 209
  72 --- 210
  72 --- 211
  72 --- 212
  72 --- 213
  72 --- 214
  72 --- 215
  72 --- 216
  72 --- 217
  72 --- 218
  72 --- 219
  72 --- 220
  72 --- 221
  72 --- 222
  72 --- 223
  72 --- 224
  72 --- 225
  72 --- 226
  72 --- 227
  72 --- 228
  72 --- 229
  72 --- 230
  72 --- 231
  72 --- 232
  72 --- 233
  72 --- 234
  72 --- 235
  72 --- 236
  72 --- 237
  72 --- 238
  72 --- 239
  72 --- 240
  72 --- 241
  72 --- 242
  72 --- 243
  72 --- 244
  72 --- 245
  72 --- 246
  72 --- 247
  72 --- 248
  72 --- 249
  72 --- 250
  72 --- 251
  72 --- 252
  72 --- 253
  72 --- 254
  72 --- 255
  72 --- 256
  72 --- 257
  72 --- 258
  72 --- 259
  72 --- 260
  72 --- 261
  72 --- 262
  72 --- 263
  72 --- 264
  72 --- 265
  72 --- 266
  152 <--x 267
  154 <--x 268
  156 <--x 269
  158 <--x 270
  184 <--x 271
  186 <--x 272
  188 <--x 273
  190 <--x 274
  216 <--x 275
  218 <--x 276
  220 <--x 277
  222 <--x 278
  248 <--x 279
  250 <--x 280
  252 <--x 281
  254 <--x 282
  148 <--x 283
  150 <--x 284
  160 <--x 285
  162 <--x 286
  180 <--x 287
  182 <--x 288
  192 <--x 289
  194 <--x 290
  212 <--x 291
  214 <--x 292
  224 <--x 293
  226 <--x 294
  244 <--x 295
  246 <--x 296
  256 <--x 297
  258 <--x 298