@tscircuit/hypergraph 0.0.57 → 0.0.58

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +1453 -1
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -16278,6 +16278,9 @@ function translateRouteSegments(routeSegments, dx, dy, prefix) {
16278
16278
  function isBakedViaTile(viaTile) {
16279
16279
  return "regions" in viaTile && Array.isArray(viaTile.regions);
16280
16280
  }
16281
+ function hasBakedViaTilePorts(viaTile) {
16282
+ return Array.isArray(viaTile.ports);
16283
+ }
16281
16284
  function extractViaNetNameFromRegionId(regionId) {
16282
16285
  const marker = ":v:";
16283
16286
  const markerIndex = regionId.lastIndexOf(marker);
@@ -16433,6 +16436,7 @@ function computeUnitTileTemplate(viaTile, tileWidth, tileHeight, clearance, conc
16433
16436
  return {
16434
16437
  viaRegions,
16435
16438
  convexRegions,
16439
+ internalPorts: [],
16436
16440
  tileWidth,
16437
16441
  tileHeight
16438
16442
  };
@@ -16441,6 +16445,9 @@ function computeUnitTileTemplateFromBakedViaTile(viaTile, tileWidth, tileHeight)
16441
16445
  const insideRegions = viaTile.regions.filter(
16442
16446
  (region) => region.polygon.length >= 3
16443
16447
  );
16448
+ const insideRegionById = new Map(
16449
+ insideRegions.map((region) => [region.regionId, region])
16450
+ );
16444
16451
  const viaRegions = insideRegions.filter((region) => region.isViaRegion).map((region) => ({
16445
16452
  templateRegionId: region.regionId,
16446
16453
  netName: region.netName ?? extractViaNetNameFromRegionId(region.regionId) ?? "unknown",
@@ -16454,9 +16461,33 @@ function computeUnitTileTemplateFromBakedViaTile(viaTile, tileWidth, tileHeight)
16454
16461
  bounds: region.bounds,
16455
16462
  center: region.center
16456
16463
  }));
16464
+ let internalPorts = [];
16465
+ if (hasBakedViaTilePorts(viaTile)) {
16466
+ const bakedInternalPorts = [];
16467
+ for (const port of viaTile.ports) {
16468
+ const region1 = insideRegionById.get(port.region1Id);
16469
+ const region2 = insideRegionById.get(port.region2Id);
16470
+ if (!region1 || !region2) {
16471
+ throw new Error(
16472
+ `Baked via tile port ${port.portId} references missing regions (${port.region1Id}, ${port.region2Id}).`
16473
+ );
16474
+ }
16475
+ if (region1.isViaRegion || region2.isViaRegion) {
16476
+ continue;
16477
+ }
16478
+ bakedInternalPorts.push({
16479
+ templatePortId: port.portId,
16480
+ templateRegion1Id: port.region1Id,
16481
+ templateRegion2Id: port.region2Id,
16482
+ position: port.position
16483
+ });
16484
+ }
16485
+ internalPorts = bakedInternalPorts;
16486
+ }
16457
16487
  return {
16458
16488
  viaRegions,
16459
16489
  convexRegions,
16490
+ internalPorts,
16460
16491
  tileWidth,
16461
16492
  tileHeight
16462
16493
  };
@@ -16525,12 +16556,16 @@ function generateConvexViaTopologyRegions(opts) {
16525
16556
  concavityTolerance
16526
16557
  );
16527
16558
  }
16559
+ const useBakedInternalPorts = Boolean(
16560
+ unitTileTemplate && unitTileTemplate.internalPorts.length > 0
16561
+ );
16528
16562
  if (rows > 0 && cols > 0 && unitTileTemplate) {
16529
16563
  for (let row = 0; row < rows; row++) {
16530
16564
  for (let col = 0; col < cols; col++) {
16531
16565
  const tileCenterX = gridMinX + col * tileWidth + halfWidth;
16532
16566
  const tileCenterY = gridMinY + row * tileHeight + halfHeight;
16533
16567
  const prefix = `t${row}_${col}`;
16568
+ const tileRegionByTemplateId = /* @__PURE__ */ new Map();
16534
16569
  for (const templateViaRegion of unitTileTemplate.viaRegions) {
16535
16570
  const translatedPolygon = translatePolygon(
16536
16571
  templateViaRegion.polygon,
@@ -16548,6 +16583,10 @@ function generateConvexViaTopologyRegions(opts) {
16548
16583
  );
16549
16584
  viaRegions.push(viaRegion);
16550
16585
  allRegions.push(viaRegion);
16586
+ tileRegionByTemplateId.set(
16587
+ templateViaRegion.templateRegionId,
16588
+ viaRegion
16589
+ );
16551
16590
  }
16552
16591
  for (const templateConvexRegion of unitTileTemplate.convexRegions) {
16553
16592
  const translatedPolygon = translatePolygon(
@@ -16565,6 +16604,34 @@ function generateConvexViaTopologyRegions(opts) {
16565
16604
  );
16566
16605
  convexRegions.push(convexRegion);
16567
16606
  allRegions.push(convexRegion);
16607
+ tileRegionByTemplateId.set(
16608
+ templateConvexRegion.templateRegionId,
16609
+ convexRegion
16610
+ );
16611
+ }
16612
+ if (useBakedInternalPorts) {
16613
+ for (const templatePort of unitTileTemplate.internalPorts) {
16614
+ const region1 = tileRegionByTemplateId.get(
16615
+ templatePort.templateRegion1Id
16616
+ );
16617
+ const region2 = tileRegionByTemplateId.get(
16618
+ templatePort.templateRegion2Id
16619
+ );
16620
+ if (!region1 || !region2) {
16621
+ throw new Error(
16622
+ `Missing region for baked port template ${templatePort.templatePortId} in tile ${prefix}.`
16623
+ );
16624
+ }
16625
+ createPort(
16626
+ `${prefix}:baked:${templatePort.templatePortId}:${portIdCounter++}`,
16627
+ region1,
16628
+ region2,
16629
+ {
16630
+ x: templatePort.position.x + tileCenterX,
16631
+ y: templatePort.position.y + tileCenterY
16632
+ }
16633
+ );
16634
+ }
16568
16635
  }
16569
16636
  for (const [netName, vias] of Object.entries(viasByNet)) {
16570
16637
  if (vias.length === 0) continue;
@@ -16699,7 +16766,7 @@ function generateConvexViaTopologyRegions(opts) {
16699
16766
  allRegions.push(filler);
16700
16767
  }
16701
16768
  }
16702
- if (unitTileTemplate && rows > 0 && cols > 0) {
16769
+ if (unitTileTemplate && rows > 0 && cols > 0 && !useBakedInternalPorts) {
16703
16770
  const regionsPerTile = unitTileTemplate.convexRegions.length;
16704
16771
  for (let row = 0; row < rows; row++) {
16705
16772
  for (let col = 0; col < cols; col++) {
@@ -17788,6 +17855,143 @@ var via_tile_3_regions_baked_default = {
17788
17855
  },
17789
17856
  isViaRegion: false
17790
17857
  }
17858
+ ],
17859
+ ports: [
17860
+ {
17861
+ portId: "t0_0:convex:1-2:0",
17862
+ region1Id: "t0_0:convex:1",
17863
+ region2Id: "t0_0:convex:2",
17864
+ position: {
17865
+ x: -0.19423520965698216,
17866
+ y: -0.6699007499999999
17867
+ }
17868
+ },
17869
+ {
17870
+ portId: "t0_0:convex:2-3:1",
17871
+ region1Id: "t0_0:convex:2",
17872
+ region2Id: "t0_0:convex:3",
17873
+ position: {
17874
+ x: 0.2645865,
17875
+ y: -0.6698997499999999
17876
+ }
17877
+ },
17878
+ {
17879
+ portId: "t0_0:convex:3-4:2",
17880
+ region1Id: "t0_0:convex:3",
17881
+ region2Id: "t0_0:convex:4",
17882
+ position: {
17883
+ x: 0.7290872499999999,
17884
+ y: -0.7399844499999999
17885
+ }
17886
+ },
17887
+ {
17888
+ portId: "t0_0:convex:3-5:3",
17889
+ region1Id: "t0_0:convex:3",
17890
+ region2Id: "t0_0:convex:5",
17891
+ position: {
17892
+ x: 0.6704812499999999,
17893
+ y: -0.15134354999999994
17894
+ }
17895
+ },
17896
+ {
17897
+ portId: "t0_0:convex:10-11:4",
17898
+ region1Id: "t0_0:convex:10",
17899
+ region2Id: "t0_0:convex:11",
17900
+ position: {
17901
+ x: -0.72843225,
17902
+ y: 0.23294054999999997
17903
+ }
17904
+ },
17905
+ {
17906
+ portId: "via-side:t0_0:v:net1:top:5",
17907
+ region1Id: "t0_0:v:net1",
17908
+ region2Id: "t0_0:convex:9",
17909
+ position: {
17910
+ x: -0.396773,
17911
+ y: 0.20144
17912
+ }
17913
+ },
17914
+ {
17915
+ portId: "via-side:t0_0:v:net1:bottom:6",
17916
+ region1Id: "t0_0:v:net1",
17917
+ region2Id: "t0_0:convex:2",
17918
+ position: {
17919
+ x: -0.04485999999999999,
17920
+ y: -0.41759599999999997
17921
+ }
17922
+ },
17923
+ {
17924
+ portId: "via-side:t0_0:v:net1:left:7",
17925
+ region1Id: "t0_0:v:net1",
17926
+ region2Id: "t0_0:convex:11",
17927
+ position: {
17928
+ x: -0.546773,
17929
+ y: 0.05144000000000001
17930
+ }
17931
+ },
17932
+ {
17933
+ portId: "via-side:t0_0:v:net1:right:8",
17934
+ region1Id: "t0_0:v:net1",
17935
+ region2Id: "t0_0:convex:3",
17936
+ position: {
17937
+ x: 0.10514,
17938
+ y: -0.267596
17939
+ }
17940
+ },
17941
+ {
17942
+ portId: "via-side:t0_0:v:net2:bottom:9",
17943
+ region1Id: "t0_0:v:net2",
17944
+ region2Id: "t0_0:convex:0",
17945
+ position: {
17946
+ x: -0.563329,
17947
+ y: -0.570006
17948
+ }
17949
+ },
17950
+ {
17951
+ portId: "via-side:t0_0:v:net2:right:10",
17952
+ region1Id: "t0_0:v:net2",
17953
+ region2Id: "t0_0:convex:6",
17954
+ position: {
17955
+ x: 0.54936,
17956
+ y: 0.600815
17957
+ }
17958
+ },
17959
+ {
17960
+ portId: "via-side:t0_0:v:net3:top:11",
17961
+ region1Id: "t0_0:v:net3",
17962
+ region2Id: "t0_0:convex:8",
17963
+ position: {
17964
+ x: -0.07075600000000001,
17965
+ y: 0.580539
17966
+ }
17967
+ },
17968
+ {
17969
+ portId: "via-side:t0_0:v:net3:bottom:12",
17970
+ region1Id: "t0_0:v:net3",
17971
+ region2Id: "t0_0:convex:3",
17972
+ position: {
17973
+ x: 0.280866,
17974
+ y: -0.03824799999999999
17975
+ }
17976
+ },
17977
+ {
17978
+ portId: "via-side:t0_0:v:net3:left:13",
17979
+ region1Id: "t0_0:v:net3",
17980
+ region2Id: "t0_0:convex:9",
17981
+ position: {
17982
+ x: -0.220756,
17983
+ y: 0.430539
17984
+ }
17985
+ },
17986
+ {
17987
+ portId: "via-side:t0_0:v:net3:right:14",
17988
+ region1Id: "t0_0:v:net3",
17989
+ region2Id: "t0_0:convex:5",
17990
+ position: {
17991
+ x: 0.43086599999999997,
17992
+ y: 0.11175199999999999
17993
+ }
17994
+ }
17791
17995
  ]
17792
17996
  };
17793
17997
 
@@ -19096,6 +19300,386 @@ var via_tile_4_regions_baked_default = {
19096
19300
  },
19097
19301
  isViaRegion: false
19098
19302
  }
19303
+ ],
19304
+ ports: [
19305
+ {
19306
+ portId: "t0_0:convex:0-1:0",
19307
+ region1Id: "t0_0:convex:0",
19308
+ region2Id: "t0_0:convex:1",
19309
+ position: {
19310
+ x: -0.46218142430330433,
19311
+ y: -1.2970802499999998
19312
+ }
19313
+ },
19314
+ {
19315
+ portId: "t0_0:convex:0-15:1",
19316
+ region1Id: "t0_0:convex:0",
19317
+ region2Id: "t0_0:convex:15",
19318
+ position: {
19319
+ x: -1.27150475,
19320
+ y: -1.1353133
19321
+ }
19322
+ },
19323
+ {
19324
+ portId: "t0_0:convex:1-2:2",
19325
+ region1Id: "t0_0:convex:1",
19326
+ region2Id: "t0_0:convex:2",
19327
+ position: {
19328
+ x: -0.06091519666500028,
19329
+ y: -1.33696975
19330
+ }
19331
+ },
19332
+ {
19333
+ portId: "t0_0:convex:2-3:3",
19334
+ region1Id: "t0_0:convex:2",
19335
+ region2Id: "t0_0:convex:3",
19336
+ position: {
19337
+ x: 0.1625005,
19338
+ y: -1.33697025
19339
+ }
19340
+ },
19341
+ {
19342
+ portId: "t0_0:convex:3-4:4",
19343
+ region1Id: "t0_0:convex:3",
19344
+ region2Id: "t0_0:convex:4",
19345
+ position: {
19346
+ x: 1.33631185,
19347
+ y: -1.4558975499999998
19348
+ }
19349
+ },
19350
+ {
19351
+ portId: "t0_0:convex:3-5:5",
19352
+ region1Id: "t0_0:convex:3",
19353
+ region2Id: "t0_0:convex:5",
19354
+ position: {
19355
+ x: 1.1259697499999999,
19356
+ y: -0.6767839
19357
+ }
19358
+ },
19359
+ {
19360
+ portId: "t0_0:convex:3-21:6",
19361
+ region1Id: "t0_0:convex:3",
19362
+ region2Id: "t0_0:convex:21",
19363
+ position: {
19364
+ x: 0.5460735,
19365
+ y: -0.8813895
19366
+ }
19367
+ },
19368
+ {
19369
+ portId: "t0_0:convex:5-6:7",
19370
+ region1Id: "t0_0:convex:5",
19371
+ region2Id: "t0_0:convex:6",
19372
+ position: {
19373
+ x: 1.2750167499999998,
19374
+ y: -0.31430694999999986
19375
+ }
19376
+ },
19377
+ {
19378
+ portId: "t0_0:convex:6-20:8",
19379
+ region1Id: "t0_0:convex:6",
19380
+ region2Id: "t0_0:convex:20",
19381
+ position: {
19382
+ x: 1.2750167499999998,
19383
+ y: 0.07717916637752087
19384
+ }
19385
+ },
19386
+ {
19387
+ portId: "t0_0:convex:7-19:9",
19388
+ region1Id: "t0_0:convex:7",
19389
+ region2Id: "t0_0:convex:19",
19390
+ position: {
19391
+ x: 1.31796575,
19392
+ y: 0.8290433500000001
19393
+ }
19394
+ },
19395
+ {
19396
+ portId: "t0_0:convex:7-20:10",
19397
+ region1Id: "t0_0:convex:7",
19398
+ region2Id: "t0_0:convex:20",
19399
+ position: {
19400
+ x: 1.3179652499999999,
19401
+ y: 0.1172988465178475
19402
+ }
19403
+ },
19404
+ {
19405
+ portId: "t0_0:convex:8-9:11",
19406
+ region1Id: "t0_0:convex:8",
19407
+ region2Id: "t0_0:convex:9",
19408
+ position: {
19409
+ x: 0.29312626040609674,
19410
+ y: 1.28003475
19411
+ }
19412
+ },
19413
+ {
19414
+ portId: "t0_0:convex:8-19:14",
19415
+ region1Id: "t0_0:convex:8",
19416
+ region2Id: "t0_0:convex:19",
19417
+ position: {
19418
+ x: 1.1009299334670735,
19419
+ y: 0.9565028500000001
19420
+ }
19421
+ },
19422
+ {
19423
+ portId: "t0_0:convex:9-10:15",
19424
+ region1Id: "t0_0:convex:9",
19425
+ region2Id: "t0_0:convex:10",
19426
+ position: {
19427
+ x: -0.10185789240424216,
19428
+ y: 1.2796012499999998
19429
+ }
19430
+ },
19431
+ {
19432
+ portId: "t0_0:convex:9-18:16",
19433
+ region1Id: "t0_0:convex:9",
19434
+ region2Id: "t0_0:convex:18",
19435
+ position: {
19436
+ x: 0.256231599283678,
19437
+ y: 1.2845454430699506
19438
+ }
19439
+ },
19440
+ {
19441
+ portId: "t0_0:convex:9-18:17",
19442
+ region1Id: "t0_0:convex:9",
19443
+ region2Id: "t0_0:convex:18",
19444
+ position: {
19445
+ x: 0.2556273120860386,
19446
+ y: 1.27960275
19447
+ }
19448
+ },
19449
+ {
19450
+ portId: "t0_0:convex:10-11:18",
19451
+ region1Id: "t0_0:convex:10",
19452
+ region2Id: "t0_0:convex:11",
19453
+ position: {
19454
+ x: -0.3251383692081189,
19455
+ y: 1.27185975
19456
+ }
19457
+ },
19458
+ {
19459
+ portId: "t0_0:convex:11-12:19",
19460
+ region1Id: "t0_0:convex:11",
19461
+ region2Id: "t0_0:convex:12",
19462
+ position: {
19463
+ x: -0.8348194499999999,
19464
+ y: 1.27185975
19465
+ }
19466
+ },
19467
+ {
19468
+ portId: "t0_0:convex:12-13:20",
19469
+ region1Id: "t0_0:convex:12",
19470
+ region2Id: "t0_0:convex:13",
19471
+ position: {
19472
+ x: -1.27958825,
19473
+ y: 0.403353405175333
19474
+ }
19475
+ },
19476
+ {
19477
+ portId: "t0_0:convex:13-17:21",
19478
+ region1Id: "t0_0:convex:13",
19479
+ region2Id: "t0_0:convex:17",
19480
+ position: {
19481
+ x: -1.27959025,
19482
+ y: 0.04329913721590478
19483
+ }
19484
+ },
19485
+ {
19486
+ portId: "t0_0:convex:14-15:22",
19487
+ region1Id: "t0_0:convex:14",
19488
+ region2Id: "t0_0:convex:15",
19489
+ position: {
19490
+ x: -1.2855100382914353,
19491
+ y: -0.5550237794956899
19492
+ }
19493
+ },
19494
+ {
19495
+ portId: "t0_0:convex:14-16:23",
19496
+ region1Id: "t0_0:convex:14",
19497
+ region2Id: "t0_0:convex:16",
19498
+ position: {
19499
+ x: -1.28397525,
19500
+ y: -0.5543149076609546
19501
+ }
19502
+ },
19503
+ {
19504
+ portId: "t0_0:convex:14-17:25",
19505
+ region1Id: "t0_0:convex:14",
19506
+ region2Id: "t0_0:convex:17",
19507
+ position: {
19508
+ x: -1.2839782499999999,
19509
+ y: -0.012634916936700293
19510
+ }
19511
+ },
19512
+ {
19513
+ portId: "t0_0:convex:15-16:26",
19514
+ region1Id: "t0_0:convex:15",
19515
+ region2Id: "t0_0:convex:16",
19516
+ position: {
19517
+ x: -1.274726872016046,
19518
+ y: -0.5862707516595418
19519
+ }
19520
+ },
19521
+ {
19522
+ portId: "t0_0:convex:15-16:27",
19523
+ region1Id: "t0_0:convex:15",
19524
+ region2Id: "t0_0:convex:16",
19525
+ position: {
19526
+ x: -1.27150825,
19527
+ y: -0.5853392465178473
19528
+ }
19529
+ },
19530
+ {
19531
+ portId: "t0_0:convex:21-22:28",
19532
+ region1Id: "t0_0:convex:21",
19533
+ region2Id: "t0_0:convex:22",
19534
+ position: {
19535
+ x: 0.34185380033724616,
19536
+ y: -0.8813890000000001
19537
+ }
19538
+ },
19539
+ {
19540
+ portId: "via-side:t0_0:v:net1:top:30",
19541
+ region1Id: "t0_0:v:net1",
19542
+ region2Id: "t0_0:convex:11",
19543
+ position: {
19544
+ x: -0.528763,
19545
+ y: 0.826055
19546
+ }
19547
+ },
19548
+ {
19549
+ portId: "via-side:t0_0:v:net1:bottom:31",
19550
+ region1Id: "t0_0:v:net1",
19551
+ region2Id: "t0_0:convex:5",
19552
+ position: {
19553
+ x: 0.815244,
19554
+ y: -0.20508099999999999
19555
+ }
19556
+ },
19557
+ {
19558
+ portId: "via-side:t0_0:v:net1:left:32",
19559
+ region1Id: "t0_0:v:net1",
19560
+ region2Id: "t0_0:convex:12",
19561
+ position: {
19562
+ x: -0.678763,
19563
+ y: 0.676055
19564
+ }
19565
+ },
19566
+ {
19567
+ portId: "via-side:t0_0:v:net1:right:33",
19568
+ region1Id: "t0_0:v:net1",
19569
+ region2Id: "t0_0:convex:6",
19570
+ position: {
19571
+ x: 0.965244,
19572
+ y: -0.05508099999999999
19573
+ }
19574
+ },
19575
+ {
19576
+ portId: "via-side:t0_0:v:net3:top:34",
19577
+ region1Id: "t0_0:v:net3",
19578
+ region2Id: "t0_0:convex:19",
19579
+ position: {
19580
+ x: 0.901143,
19581
+ y: 0.587488
19582
+ }
19583
+ },
19584
+ {
19585
+ portId: "via-side:t0_0:v:net3:bottom:35",
19586
+ region1Id: "t0_0:v:net3",
19587
+ region2Id: "t0_0:convex:0",
19588
+ position: {
19589
+ x: -0.808222,
19590
+ y: -0.876499
19591
+ }
19592
+ },
19593
+ {
19594
+ portId: "via-side:t0_0:v:net3:left:36",
19595
+ region1Id: "t0_0:v:net3",
19596
+ region2Id: "t0_0:convex:15",
19597
+ position: {
19598
+ x: -0.958222,
19599
+ y: -0.726499
19600
+ }
19601
+ },
19602
+ {
19603
+ portId: "via-side:t0_0:v:net3:right:37",
19604
+ region1Id: "t0_0:v:net3",
19605
+ region2Id: "t0_0:convex:7",
19606
+ position: {
19607
+ x: 1.051143,
19608
+ y: 0.437488
19609
+ }
19610
+ },
19611
+ {
19612
+ portId: "via-side:t0_0:v:net4:top:38",
19613
+ region1Id: "t0_0:v:net4",
19614
+ region2Id: "t0_0:convex:9",
19615
+ position: {
19616
+ x: -0.028999999999999998,
19617
+ y: 0.841542
19618
+ }
19619
+ },
19620
+ {
19621
+ portId: "via-side:t0_0:v:net4:bottom:39",
19622
+ region1Id: "t0_0:v:net4",
19623
+ region2Id: "t0_0:convex:2",
19624
+ position: {
19625
+ x: 0.07499999999999998,
19626
+ y: -0.9562740000000001
19627
+ }
19628
+ },
19629
+ {
19630
+ portId: "via-side:t0_0:v:net4:left:40",
19631
+ region1Id: "t0_0:v:net4",
19632
+ region2Id: "t0_0:convex:13",
19633
+ position: {
19634
+ x: -0.974388,
19635
+ y: 0.272808
19636
+ }
19637
+ },
19638
+ {
19639
+ portId: "via-side:t0_0:v:net4:right:41",
19640
+ region1Id: "t0_0:v:net4",
19641
+ region2Id: "t0_0:convex:21",
19642
+ position: {
19643
+ x: 0.22499999999999998,
19644
+ y: -0.806274
19645
+ }
19646
+ },
19647
+ {
19648
+ portId: "via-side:t0_0:v:net5:top:42",
19649
+ region1Id: "t0_0:v:net5",
19650
+ region2Id: "t0_0:convex:8",
19651
+ position: {
19652
+ x: 0.471002,
19653
+ y: 0.842404
19654
+ }
19655
+ },
19656
+ {
19657
+ portId: "via-side:t0_0:v:net5:bottom:43",
19658
+ region1Id: "t0_0:v:net5",
19659
+ region2Id: "t0_0:convex:21",
19660
+ position: {
19661
+ x: 0.517145,
19662
+ y: -0.606503
19663
+ }
19664
+ },
19665
+ {
19666
+ portId: "via-side:t0_0:v:net5:left:44",
19667
+ region1Id: "t0_0:v:net5",
19668
+ region2Id: "t0_0:convex:14",
19669
+ position: {
19670
+ x: -0.983162,
19671
+ y: -0.227118
19672
+ }
19673
+ },
19674
+ {
19675
+ portId: "via-side:t0_0:v:net5:right:45",
19676
+ region1Id: "t0_0:v:net5",
19677
+ region2Id: "t0_0:convex:5",
19678
+ position: {
19679
+ x: 0.667145,
19680
+ y: -0.456503
19681
+ }
19682
+ }
19099
19683
  ]
19100
19684
  };
19101
19685
 
@@ -20571,6 +21155,413 @@ var via_tile_5_regions_baked_default = {
20571
21155
  },
20572
21156
  isViaRegion: false
20573
21157
  }
21158
+ ],
21159
+ ports: [
21160
+ {
21161
+ portId: "t0_0:convex:0-1:0",
21162
+ region1Id: "t0_0:convex:0",
21163
+ region2Id: "t0_0:convex:1",
21164
+ position: {
21165
+ x: -0.4993295667178549,
21166
+ y: -1.481333
21167
+ }
21168
+ },
21169
+ {
21170
+ portId: "t0_0:convex:0-18:1",
21171
+ region1Id: "t0_0:convex:0",
21172
+ region2Id: "t0_0:convex:18",
21173
+ position: {
21174
+ x: -1.36575275,
21175
+ y: -1.2984966
21176
+ }
21177
+ },
21178
+ {
21179
+ portId: "t0_0:convex:1-2:2",
21180
+ region1Id: "t0_0:convex:1",
21181
+ region2Id: "t0_0:convex:2",
21182
+ position: {
21183
+ x: -0.036862348382531114,
21184
+ y: -1.6034375
21185
+ }
21186
+ },
21187
+ {
21188
+ portId: "t0_0:convex:1-2:3",
21189
+ region1Id: "t0_0:convex:1",
21190
+ region2Id: "t0_0:convex:2",
21191
+ position: {
21192
+ x: -0.11059104514759335,
21193
+ y: -1.1535445
21194
+ }
21195
+ },
21196
+ {
21197
+ portId: "t0_0:convex:2-3:4",
21198
+ region1Id: "t0_0:convex:2",
21199
+ region2Id: "t0_0:convex:3",
21200
+ position: {
21201
+ x: 0.31833012499999985,
21202
+ y: -1.60343775
21203
+ }
21204
+ },
21205
+ {
21206
+ portId: "t0_0:convex:2-3:5",
21207
+ region1Id: "t0_0:convex:2",
21208
+ region2Id: "t0_0:convex:3",
21209
+ position: {
21210
+ x: 0.30436337499999994,
21211
+ y: -1.15354525
21212
+ }
21213
+ },
21214
+ {
21215
+ portId: "t0_0:convex:3-4:6",
21216
+ region1Id: "t0_0:convex:3",
21217
+ region2Id: "t0_0:convex:4",
21218
+ position: {
21219
+ x: 1.46389675,
21220
+ y: -1.6455451
21221
+ }
21222
+ },
21223
+ {
21224
+ portId: "t0_0:convex:3-5:7",
21225
+ region1Id: "t0_0:convex:3",
21226
+ region2Id: "t0_0:convex:5",
21227
+ position: {
21228
+ x: 1.397964875,
21229
+ y: -0.71087645
21230
+ }
21231
+ },
21232
+ {
21233
+ portId: "t0_0:convex:3-5:8",
21234
+ region1Id: "t0_0:convex:3",
21235
+ region2Id: "t0_0:convex:5",
21236
+ position: {
21237
+ x: 0.9407896250000001,
21238
+ y: -0.66992415
21239
+ }
21240
+ },
21241
+ {
21242
+ portId: "t0_0:convex:5-6:9",
21243
+ region1Id: "t0_0:convex:5",
21244
+ region2Id: "t0_0:convex:6",
21245
+ position: {
21246
+ x: 1.32753325,
21247
+ y: -0.31394489999999997
21248
+ }
21249
+ },
21250
+ {
21251
+ portId: "t0_0:convex:6-7:10",
21252
+ region1Id: "t0_0:convex:6",
21253
+ region2Id: "t0_0:convex:7",
21254
+ position: {
21255
+ x: 1.44568925,
21256
+ y: 0.296058114872377
21257
+ }
21258
+ },
21259
+ {
21260
+ portId: "t0_0:convex:7-8:11",
21261
+ region1Id: "t0_0:convex:7",
21262
+ region2Id: "t0_0:convex:8",
21263
+ position: {
21264
+ x: 1.44568925,
21265
+ y: 0.7048878000000001
21266
+ }
21267
+ },
21268
+ {
21269
+ portId: "t0_0:convex:8-9:12",
21270
+ region1Id: "t0_0:convex:8",
21271
+ region2Id: "t0_0:convex:9",
21272
+ position: {
21273
+ x: 1.28626725,
21274
+ y: 1.0803022000000002
21275
+ }
21276
+ },
21277
+ {
21278
+ portId: "t0_0:convex:9-11:13",
21279
+ region1Id: "t0_0:convex:9",
21280
+ region2Id: "t0_0:convex:11",
21281
+ position: {
21282
+ x: 0.39155326509112753,
21283
+ y: 1.527962
21284
+ }
21285
+ },
21286
+ {
21287
+ portId: "t0_0:convex:10-11:14",
21288
+ region1Id: "t0_0:convex:10",
21289
+ region2Id: "t0_0:convex:11",
21290
+ position: {
21291
+ x: 0.18342290829125246,
21292
+ y: 1.5279615
21293
+ }
21294
+ },
21295
+ {
21296
+ portId: "t0_0:convex:10-12:15",
21297
+ region1Id: "t0_0:convex:10",
21298
+ region2Id: "t0_0:convex:12",
21299
+ position: {
21300
+ x: -0.020383645154399093,
21301
+ y: 1.553695
21302
+ }
21303
+ },
21304
+ {
21305
+ portId: "t0_0:convex:12-21:16",
21306
+ region1Id: "t0_0:convex:12",
21307
+ region2Id: "t0_0:convex:21",
21308
+ position: {
21309
+ x: -0.5507158262688754,
21310
+ y: 1.5536955
21311
+ }
21312
+ },
21313
+ {
21314
+ portId: "t0_0:convex:13-14:17",
21315
+ region1Id: "t0_0:convex:13",
21316
+ region2Id: "t0_0:convex:14",
21317
+ position: {
21318
+ x: -1.1609165,
21319
+ y: 1.5257770000000002
21320
+ }
21321
+ },
21322
+ {
21323
+ portId: "t0_0:convex:13-21:18",
21324
+ region1Id: "t0_0:convex:13",
21325
+ region2Id: "t0_0:convex:21",
21326
+ position: {
21327
+ x: -0.6210480636924478,
21328
+ y: 1.5257775
21329
+ }
21330
+ },
21331
+ {
21332
+ portId: "t0_0:convex:14-15:19",
21333
+ region1Id: "t0_0:convex:14",
21334
+ region2Id: "t0_0:convex:15",
21335
+ position: {
21336
+ x: -1.4697032500000002,
21337
+ y: 0.935935097421174
21338
+ }
21339
+ },
21340
+ {
21341
+ portId: "t0_0:convex:15-20:20",
21342
+ region1Id: "t0_0:convex:15",
21343
+ region2Id: "t0_0:convex:20",
21344
+ position: {
21345
+ x: -1.46970325,
21346
+ y: 0.555374879653303
21347
+ }
21348
+ },
21349
+ {
21350
+ portId: "t0_0:convex:16-17:21",
21351
+ region1Id: "t0_0:convex:16",
21352
+ region2Id: "t0_0:convex:17",
21353
+ position: {
21354
+ x: -1.4722192500000002,
21355
+ y: -0.29788014216225384
21356
+ }
21357
+ },
21358
+ {
21359
+ portId: "t0_0:convex:16-20:22",
21360
+ region1Id: "t0_0:convex:16",
21361
+ region2Id: "t0_0:convex:20",
21362
+ position: {
21363
+ x: -1.4621442500000001,
21364
+ y: 0.3173951008096434
21365
+ }
21366
+ },
21367
+ {
21368
+ portId: "t0_0:convex:17-18:23",
21369
+ region1Id: "t0_0:convex:17",
21370
+ region2Id: "t0_0:convex:18",
21371
+ position: {
21372
+ x: -1.47221975,
21373
+ y: -0.5237839
21374
+ }
21375
+ },
21376
+ {
21377
+ portId: "t0_0:convex:18-23:24",
21378
+ region1Id: "t0_0:convex:18",
21379
+ region2Id: "t0_0:convex:23",
21380
+ position: {
21381
+ x: -1.2114205,
21382
+ y: -0.9080890000000001
21383
+ }
21384
+ },
21385
+ {
21386
+ portId: "t0_0:convex:23-24:25",
21387
+ region1Id: "t0_0:convex:23",
21388
+ region2Id: "t0_0:convex:24",
21389
+ position: {
21390
+ x: -1.21142,
21391
+ y: -0.6820997148723771
21392
+ }
21393
+ },
21394
+ {
21395
+ portId: "via-side:t0_0:v:net1:top:27",
21396
+ region1Id: "t0_0:v:net1",
21397
+ region2Id: "t0_0:convex:13",
21398
+ position: {
21399
+ x: -0.770591,
21400
+ y: 1.12317
21401
+ }
21402
+ },
21403
+ {
21404
+ portId: "via-side:t0_0:v:net1:bottom:28",
21405
+ region1Id: "t0_0:v:net1",
21406
+ region2Id: "t0_0:convex:5",
21407
+ position: {
21408
+ x: 0.778514,
21409
+ y: -0.162215
21410
+ }
21411
+ },
21412
+ {
21413
+ portId: "via-side:t0_0:v:net1:left:29",
21414
+ region1Id: "t0_0:v:net1",
21415
+ region2Id: "t0_0:convex:14",
21416
+ position: {
21417
+ x: -0.920591,
21418
+ y: 0.97317
21419
+ }
21420
+ },
21421
+ {
21422
+ portId: "via-side:t0_0:v:net1:right:30",
21423
+ region1Id: "t0_0:v:net1",
21424
+ region2Id: "t0_0:convex:6",
21425
+ position: {
21426
+ x: 0.9285140000000001,
21427
+ y: -0.012215000000000004
21428
+ }
21429
+ },
21430
+ {
21431
+ portId: "via-side:t0_0:v:net2:top:31",
21432
+ region1Id: "t0_0:v:net2",
21433
+ region2Id: "t0_0:convex:8",
21434
+ position: {
21435
+ x: 1.014826,
21436
+ y: 0.57842
21437
+ }
21438
+ },
21439
+ {
21440
+ portId: "via-side:t0_0:v:net2:bottom:32",
21441
+ region1Id: "t0_0:v:net2",
21442
+ region2Id: "t0_0:convex:0",
21443
+ position: {
21444
+ x: -0.854951,
21445
+ y: -1.034286
21446
+ }
21447
+ },
21448
+ {
21449
+ portId: "via-side:t0_0:v:net2:left:33",
21450
+ region1Id: "t0_0:v:net2",
21451
+ region2Id: "t0_0:convex:23",
21452
+ position: {
21453
+ x: -1.004951,
21454
+ y: -0.884286
21455
+ }
21456
+ },
21457
+ {
21458
+ portId: "via-side:t0_0:v:net2:right:34",
21459
+ region1Id: "t0_0:v:net2",
21460
+ region2Id: "t0_0:convex:7",
21461
+ position: {
21462
+ x: 1.164826,
21463
+ y: 0.42842
21464
+ }
21465
+ },
21466
+ {
21467
+ portId: "via-side:t0_0:v:net3:top:35",
21468
+ region1Id: "t0_0:v:net3",
21469
+ region2Id: "t0_0:convex:9",
21470
+ position: {
21471
+ x: 0.695984,
21472
+ y: 0.963573
21473
+ }
21474
+ },
21475
+ {
21476
+ portId: "via-side:t0_0:v:net3:left:36",
21477
+ region1Id: "t0_0:v:net3",
21478
+ region2Id: "t0_0:convex:17",
21479
+ position: {
21480
+ x: -1.217887,
21481
+ y: -0.431891
21482
+ }
21483
+ },
21484
+ {
21485
+ portId: "via-side:t0_0:v:net3:right:37",
21486
+ region1Id: "t0_0:v:net3",
21487
+ region2Id: "t0_0:convex:8",
21488
+ position: {
21489
+ x: 0.8459840000000001,
21490
+ y: 0.813573
21491
+ }
21492
+ },
21493
+ {
21494
+ portId: "via-side:t0_0:v:net4:top:38",
21495
+ region1Id: "t0_0:v:net4",
21496
+ region2Id: "t0_0:convex:12",
21497
+ position: {
21498
+ x: -0.273716,
21499
+ y: 1.179009
21500
+ }
21501
+ },
21502
+ {
21503
+ portId: "via-side:t0_0:v:net4:bottom:39",
21504
+ region1Id: "t0_0:v:net4",
21505
+ region2Id: "t0_0:convex:2",
21506
+ position: {
21507
+ x: 0.047380000000000005,
21508
+ y: -0.8285980000000001
21509
+ }
21510
+ },
21511
+ {
21512
+ portId: "via-side:t0_0:v:net4:left:40",
21513
+ region1Id: "t0_0:v:net4",
21514
+ region2Id: "t0_0:convex:15",
21515
+ position: {
21516
+ x: -1.212855,
21517
+ y: 0.56748
21518
+ }
21519
+ },
21520
+ {
21521
+ portId: "via-side:t0_0:v:net4:right:41",
21522
+ region1Id: "t0_0:v:net4",
21523
+ region2Id: "t0_0:convex:3",
21524
+ position: {
21525
+ x: 0.19738,
21526
+ y: -0.678598
21527
+ }
21528
+ },
21529
+ {
21530
+ portId: "via-side:t0_0:v:net5:top:42",
21531
+ region1Id: "t0_0:v:net5",
21532
+ region2Id: "t0_0:convex:11",
21533
+ position: {
21534
+ x: 0.22363,
21535
+ y: 1.127538
21536
+ }
21537
+ },
21538
+ {
21539
+ portId: "via-side:t0_0:v:net5:bottom:43",
21540
+ region1Id: "t0_0:v:net5",
21541
+ region2Id: "t0_0:convex:3",
21542
+ position: {
21543
+ x: 0.462204,
21544
+ y: -0.54945
21545
+ }
21546
+ },
21547
+ {
21548
+ portId: "via-side:t0_0:v:net5:left:44",
21549
+ region1Id: "t0_0:v:net5",
21550
+ region2Id: "t0_0:convex:16",
21551
+ position: {
21552
+ x: -1.197736,
21553
+ y: 0.06770600000000002
21554
+ }
21555
+ },
21556
+ {
21557
+ portId: "via-side:t0_0:v:net5:right:45",
21558
+ region1Id: "t0_0:v:net5",
21559
+ region2Id: "t0_0:convex:5",
21560
+ position: {
21561
+ x: 0.612204,
21562
+ y: -0.39945
21563
+ }
21564
+ }
20574
21565
  ]
20575
21566
  };
20576
21567
 
@@ -22025,6 +23016,467 @@ var via_tile_6_regions_baked_default = {
22025
23016
  },
22026
23017
  isViaRegion: false
22027
23018
  }
23019
+ ],
23020
+ ports: [
23021
+ {
23022
+ portId: "t0_0:convex:0-1:0",
23023
+ region1Id: "t0_0:convex:0",
23024
+ region2Id: "t0_0:convex:1",
23025
+ position: {
23026
+ x: -0.7622886,
23027
+ y: -1.6622412500000001
23028
+ }
23029
+ },
23030
+ {
23031
+ portId: "t0_0:convex:0-20:1",
23032
+ region1Id: "t0_0:convex:0",
23033
+ region2Id: "t0_0:convex:20",
23034
+ position: {
23035
+ x: -1.22944825,
23036
+ y: -1.4812724
23037
+ }
23038
+ },
23039
+ {
23040
+ portId: "t0_0:convex:1-21:2",
23041
+ region1Id: "t0_0:convex:1",
23042
+ region2Id: "t0_0:convex:21",
23043
+ position: {
23044
+ x: -0.3900044200964134,
23045
+ y: -1.6622412500000001
23046
+ }
23047
+ },
23048
+ {
23049
+ portId: "t0_0:convex:2-3:3",
23050
+ region1Id: "t0_0:convex:2",
23051
+ region2Id: "t0_0:convex:3",
23052
+ position: {
23053
+ x: 0.20481054999999987,
23054
+ y: -1.65668025
23055
+ }
23056
+ },
23057
+ {
23058
+ portId: "t0_0:convex:2-21:4",
23059
+ region1Id: "t0_0:convex:2",
23060
+ region2Id: "t0_0:convex:21",
23061
+ position: {
23062
+ x: -0.3426134829368135,
23063
+ y: -1.65667875
23064
+ }
23065
+ },
23066
+ {
23067
+ portId: "t0_0:convex:3-4:5",
23068
+ region1Id: "t0_0:convex:3",
23069
+ region2Id: "t0_0:convex:4",
23070
+ position: {
23071
+ x: 0.5623075999999998,
23072
+ y: -1.5090762500000001
23073
+ }
23074
+ },
23075
+ {
23076
+ portId: "t0_0:convex:4-5:6",
23077
+ region1Id: "t0_0:convex:4",
23078
+ region2Id: "t0_0:convex:5",
23079
+ position: {
23080
+ x: 1.4014799499999997,
23081
+ y: -1.62871465
23082
+ }
23083
+ },
23084
+ {
23085
+ portId: "t0_0:convex:4-6:7",
23086
+ region1Id: "t0_0:convex:4",
23087
+ region2Id: "t0_0:convex:6",
23088
+ position: {
23089
+ x: 1.22764125,
23090
+ y: -0.99473305
23091
+ }
23092
+ },
23093
+ {
23094
+ portId: "t0_0:convex:6-7:8",
23095
+ region1Id: "t0_0:convex:6",
23096
+ region2Id: "t0_0:convex:7",
23097
+ position: {
23098
+ x: 1.22763925,
23099
+ y: -0.4298077063182726
23100
+ }
23101
+ },
23102
+ {
23103
+ portId: "t0_0:convex:8-9:9",
23104
+ region1Id: "t0_0:convex:8",
23105
+ region2Id: "t0_0:convex:9",
23106
+ position: {
23107
+ x: 1.3891952499999998,
23108
+ y: 0.7911727
23109
+ }
23110
+ },
23111
+ {
23112
+ portId: "t0_0:convex:8-10:10",
23113
+ region1Id: "t0_0:convex:8",
23114
+ region2Id: "t0_0:convex:10",
23115
+ position: {
23116
+ x: 1.3891952499999998,
23117
+ y: 0.9721415499999999
23118
+ }
23119
+ },
23120
+ {
23121
+ portId: "t0_0:convex:10-11:11",
23122
+ region1Id: "t0_0:convex:10",
23123
+ region2Id: "t0_0:convex:11",
23124
+ position: {
23125
+ x: 1.19470975,
23126
+ y: 1.3101994000000001
23127
+ }
23128
+ },
23129
+ {
23130
+ portId: "t0_0:convex:11-12:12",
23131
+ region1Id: "t0_0:convex:11",
23132
+ region2Id: "t0_0:convex:12",
23133
+ position: {
23134
+ x: 0.35160563047796883,
23135
+ y: 1.4918276021563592
23136
+ }
23137
+ },
23138
+ {
23139
+ portId: "t0_0:convex:11-25:13",
23140
+ region1Id: "t0_0:convex:11",
23141
+ region2Id: "t0_0:convex:25",
23142
+ position: {
23143
+ x: 0.3516892015564768,
23144
+ y: 1.49116625
23145
+ }
23146
+ },
23147
+ {
23148
+ portId: "t0_0:convex:12-13:15",
23149
+ region1Id: "t0_0:convex:12",
23150
+ region2Id: "t0_0:convex:13",
23151
+ position: {
23152
+ x: -0.08384,
23153
+ y: 1.48618725
23154
+ }
23155
+ },
23156
+ {
23157
+ portId: "t0_0:convex:12-25:16",
23158
+ region1Id: "t0_0:convex:12",
23159
+ region2Id: "t0_0:convex:25",
23160
+ position: {
23161
+ x: 0.307058811859238,
23162
+ y: 1.4917813404964075
23163
+ }
23164
+ },
23165
+ {
23166
+ portId: "t0_0:convex:12-25:17",
23167
+ region1Id: "t0_0:convex:12",
23168
+ region2Id: "t0_0:convex:25",
23169
+ position: {
23170
+ x: 0.30698173547052676,
23171
+ y: 1.4861887500000002
23172
+ }
23173
+ },
23174
+ {
23175
+ portId: "t0_0:convex:13-14:18",
23176
+ region1Id: "t0_0:convex:13",
23177
+ region2Id: "t0_0:convex:14",
23178
+ position: {
23179
+ x: -0.2395595499999999,
23180
+ y: 1.48618775
23181
+ }
23182
+ },
23183
+ {
23184
+ portId: "t0_0:convex:14-15:19",
23185
+ region1Id: "t0_0:convex:14",
23186
+ region2Id: "t0_0:convex:15",
23187
+ position: {
23188
+ x: -0.6060518999999999,
23189
+ y: 1.569059875
23190
+ }
23191
+ },
23192
+ {
23193
+ portId: "t0_0:convex:14-15:20",
23194
+ region1Id: "t0_0:convex:14",
23195
+ region2Id: "t0_0:convex:15",
23196
+ position: {
23197
+ x: -0.5724012999999999,
23198
+ y: 1.087812625
23199
+ }
23200
+ },
23201
+ {
23202
+ portId: "t0_0:convex:15-16:21",
23203
+ region1Id: "t0_0:convex:15",
23204
+ region2Id: "t0_0:convex:16",
23205
+ position: {
23206
+ x: -1.2288442499999999,
23207
+ y: 0.6045372
23208
+ }
23209
+ },
23210
+ {
23211
+ portId: "t0_0:convex:16-17:22",
23212
+ region1Id: "t0_0:convex:16",
23213
+ region2Id: "t0_0:convex:17",
23214
+ position: {
23215
+ x: -1.2288437499999998,
23216
+ y: 0.42356935
23217
+ }
23218
+ },
23219
+ {
23220
+ portId: "t0_0:convex:17-24:23",
23221
+ region1Id: "t0_0:convex:17",
23222
+ region2Id: "t0_0:convex:24",
23223
+ position: {
23224
+ x: -1.2288457499999998,
23225
+ y: 0.03444776294261411
23226
+ }
23227
+ },
23228
+ {
23229
+ portId: "t0_0:convex:18-19:24",
23230
+ region1Id: "t0_0:convex:18",
23231
+ region2Id: "t0_0:convex:19",
23232
+ position: {
23233
+ x: -1.2369259236689427,
23234
+ y: -0.621576300991815
23235
+ }
23236
+ },
23237
+ {
23238
+ portId: "t0_0:convex:18-23:25",
23239
+ region1Id: "t0_0:convex:18",
23240
+ region2Id: "t0_0:convex:23",
23241
+ position: {
23242
+ x: -1.2299172499999997,
23243
+ y: -0.6193376999999998
23244
+ }
23245
+ },
23246
+ {
23247
+ portId: "t0_0:convex:18-24:27",
23248
+ region1Id: "t0_0:convex:18",
23249
+ region2Id: "t0_0:convex:24",
23250
+ position: {
23251
+ x: -1.22991675,
23252
+ y: -0.03611534653723591
23253
+ }
23254
+ },
23255
+ {
23256
+ portId: "t0_0:convex:19-20:28",
23257
+ region1Id: "t0_0:convex:19",
23258
+ region2Id: "t0_0:convex:20",
23259
+ position: {
23260
+ x: -1.2321613530099345,
23261
+ y: -1.050638372306859
23262
+ }
23263
+ },
23264
+ {
23265
+ portId: "t0_0:convex:19-22:29",
23266
+ region1Id: "t0_0:convex:19",
23267
+ region2Id: "t0_0:convex:22",
23268
+ position: {
23269
+ x: -1.2290762499999999,
23270
+ y: -1.0503045500000001
23271
+ }
23272
+ },
23273
+ {
23274
+ portId: "t0_0:convex:19-23:31",
23275
+ region1Id: "t0_0:convex:19",
23276
+ region2Id: "t0_0:convex:23",
23277
+ position: {
23278
+ x: -1.2290757499999998,
23279
+ y: -0.6461538410229819
23280
+ }
23281
+ },
23282
+ {
23283
+ portId: "t0_0:convex:20-22:33",
23284
+ region1Id: "t0_0:convex:20",
23285
+ region2Id: "t0_0:convex:22",
23286
+ position: {
23287
+ x: -1.22944825,
23288
+ y: -1.0757121977829602
23289
+ }
23290
+ },
23291
+ {
23292
+ portId: "via-side:t0_0:v:net1:top:35",
23293
+ region1Id: "t0_0:v:net1",
23294
+ region2Id: "t0_0:convex:12",
23295
+ position: {
23296
+ x: 0.082317,
23297
+ y: 1.062692
23298
+ }
23299
+ },
23300
+ {
23301
+ portId: "via-side:t0_0:v:net1:bottom:36",
23302
+ region1Id: "t0_0:v:net1",
23303
+ region2Id: "t0_0:convex:4",
23304
+ position: {
23305
+ x: 0.648081,
23306
+ y: -0.803655
23307
+ }
23308
+ },
23309
+ {
23310
+ portId: "via-side:t0_0:v:net1:left:37",
23311
+ region1Id: "t0_0:v:net1",
23312
+ region2Id: "t0_0:convex:14",
23313
+ position: {
23314
+ x: -0.067683,
23315
+ y: 0.912692
23316
+ }
23317
+ },
23318
+ {
23319
+ portId: "via-side:t0_0:v:net1:right:38",
23320
+ region1Id: "t0_0:v:net1",
23321
+ region2Id: "t0_0:convex:6",
23322
+ position: {
23323
+ x: 0.798081,
23324
+ y: -0.653655
23325
+ }
23326
+ },
23327
+ {
23328
+ portId: "via-side:t0_0:v:net2:top:39",
23329
+ region1Id: "t0_0:v:net2",
23330
+ region2Id: "t0_0:convex:9",
23331
+ position: {
23332
+ x: 1.336913,
23333
+ y: 0.417523
23334
+ }
23335
+ },
23336
+ {
23337
+ portId: "via-side:t0_0:v:net2:bottom:40",
23338
+ region1Id: "t0_0:v:net2",
23339
+ region2Id: "t0_0:convex:1",
23340
+ position: {
23341
+ x: -0.651699,
23342
+ y: -1.414802
23343
+ }
23344
+ },
23345
+ {
23346
+ portId: "via-side:t0_0:v:net2:left:41",
23347
+ region1Id: "t0_0:v:net2",
23348
+ region2Id: "t0_0:convex:20",
23349
+ position: {
23350
+ x: -0.801699,
23351
+ y: -1.264802
23352
+ }
23353
+ },
23354
+ {
23355
+ portId: "via-side:t0_0:v:net3:top:42",
23356
+ region1Id: "t0_0:v:net3",
23357
+ region2Id: "t0_0:convex:11",
23358
+ position: {
23359
+ x: 0.58222,
23360
+ y: 1.0726499999999999
23361
+ }
23362
+ },
23363
+ {
23364
+ portId: "via-side:t0_0:v:net3:left:43",
23365
+ region1Id: "t0_0:v:net3",
23366
+ region2Id: "t0_0:convex:18",
23367
+ position: {
23368
+ x: -0.802635,
23369
+ y: -0.2648
23370
+ }
23371
+ },
23372
+ {
23373
+ portId: "via-side:t0_0:v:net3:right:44",
23374
+ region1Id: "t0_0:v:net3",
23375
+ region2Id: "t0_0:convex:10",
23376
+ position: {
23377
+ x: 0.73222,
23378
+ y: 0.92265
23379
+ }
23380
+ },
23381
+ {
23382
+ portId: "via-side:t0_0:v:net4:top:45",
23383
+ region1Id: "t0_0:v:net4",
23384
+ region2Id: "t0_0:convex:15",
23385
+ position: {
23386
+ x: -0.650488,
23387
+ y: 0.385198
23388
+ }
23389
+ },
23390
+ {
23391
+ portId: "via-side:t0_0:v:net4:bottom:46",
23392
+ region1Id: "t0_0:v:net4",
23393
+ region2Id: "t0_0:convex:2",
23394
+ position: {
23395
+ x: -0.15182,
23396
+ y: -1.403675
23397
+ }
23398
+ },
23399
+ {
23400
+ portId: "via-side:t0_0:v:net4:left:47",
23401
+ region1Id: "t0_0:v:net4",
23402
+ region2Id: "t0_0:convex:17",
23403
+ position: {
23404
+ x: -0.800488,
23405
+ y: 0.235198
23406
+ }
23407
+ },
23408
+ {
23409
+ portId: "via-side:t0_0:v:net4:right:48",
23410
+ region1Id: "t0_0:v:net4",
23411
+ region2Id: "t0_0:convex:3",
23412
+ position: {
23413
+ x: -0.001820000000000016,
23414
+ y: -1.253675
23415
+ }
23416
+ },
23417
+ {
23418
+ portId: "via-side:t0_0:v:net5:top:49",
23419
+ region1Id: "t0_0:v:net5",
23420
+ region2Id: "t0_0:convex:14",
23421
+ position: {
23422
+ x: -0.305576,
23423
+ y: 0.74719
23424
+ }
23425
+ },
23426
+ {
23427
+ portId: "via-side:t0_0:v:net5:bottom:50",
23428
+ region1Id: "t0_0:v:net5",
23429
+ region2Id: "t0_0:convex:3",
23430
+ position: {
23431
+ x: 0.251735,
23432
+ y: -1.10847
23433
+ }
23434
+ },
23435
+ {
23436
+ portId: "via-side:t0_0:v:net5:left:51",
23437
+ region1Id: "t0_0:v:net5",
23438
+ region2Id: "t0_0:convex:15",
23439
+ position: {
23440
+ x: -0.455576,
23441
+ y: 0.59719
23442
+ }
23443
+ },
23444
+ {
23445
+ portId: "via-side:t0_0:v:net5:right:52",
23446
+ region1Id: "t0_0:v:net5",
23447
+ region2Id: "t0_0:convex:4",
23448
+ position: {
23449
+ x: 0.40173499999999995,
23450
+ y: -0.95847
23451
+ }
23452
+ },
23453
+ {
23454
+ portId: "via-side:t0_0:v:net6:top:53",
23455
+ region1Id: "t0_0:v:net6",
23456
+ region2Id: "t0_0:convex:10",
23457
+ position: {
23458
+ x: 0.971187,
23459
+ y: 0.7584730000000001
23460
+ }
23461
+ },
23462
+ {
23463
+ portId: "via-side:t0_0:v:net6:left:54",
23464
+ region1Id: "t0_0:v:net6",
23465
+ region2Id: "t0_0:convex:19",
23466
+ position: {
23467
+ x: -0.80095,
23468
+ y: -0.7648
23469
+ }
23470
+ },
23471
+ {
23472
+ portId: "via-side:t0_0:v:net6:right:55",
23473
+ region1Id: "t0_0:v:net6",
23474
+ region2Id: "t0_0:convex:9",
23475
+ position: {
23476
+ x: 1.121187,
23477
+ y: 0.608473
23478
+ }
23479
+ }
22028
23480
  ]
22029
23481
  };
22030
23482