<!-- SOLID CITY · part 840 -->
, D.soul.z, '#49a6ff', 5, flying ? '' : 'SP');
  if (!flying) blip(SABLE_POS.x, SABLE_POS.z, '#ff8fa0', 4, '');
  if (window.CityHyper) try { CityHyper.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityWatch) try { CityWatch.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityCitizens) try { CityCitizens.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityMonuments) try { CityMonuments.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CitySanctuary) try { CitySanctuary.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityCampus) try { CityCampus.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityBook) try { CityBook.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityPodium) try { CityPodium.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityHyperTrain) try { CityHyperTrain.radar(rg, blip, flying); } catch (e) {}
  if (window.CitySolidSanctuary) try { CitySolidSanctuary.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityAncestorRoads) try { CityAncestorRoads.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityColosseum) try { CityColosseum.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityImperialColosseum) try { CityImperialColosseum.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityVillageMauna) try { CityVillageMauna.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityMountainHomes) try { CityMountainHomes.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityGateAncestors) try { CityGateAncestors.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityLanternVigil) try { CityLanternVigil.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityCompassMeridian) try { CityCompassMeridian.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityRoostKeel) try { CityRoostKeel.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityOverlookMira) try { CityOverlookMira.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityEighthGate) try { CityEighthGate.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityHallBecoming) try { CityHallBecoming.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityFoundry) try { CityFoundry.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityHyperCity) try { CityHyperCity.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityFirstCity) try { CityFirstCity.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityFirstParking) try { CityFirstParking.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityFleet) try { CityFleet.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityFirstWard) try { CityFirstWard.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityWards) try { CityWards.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CitySkyward) try { CitySkyward.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityJubilee) try { CityJubilee.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CitySouthGate) try { CitySouthGate.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityWardHouses) try { CityWardHouses.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityAnnex) try { CityAnnex.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityQuadrantCrown) try { CityQuadrantCrown.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityLostWings) try { CityLostWings.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityOctaPool) try { CityOctaPool.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CitySolidFigure) try { CitySolidFigure.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CitySolidMirror) try { CitySolidMirror.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  if (window.CityBetweenStones) try { CityBetweenStones.radar(rg, blip, flying, sc, ax, az); } catch (e) {}
  // you
  rg.translate(W / 2, H / 2); rg.rotate(-heading); rg.fillStyle = '#fff'; rg.beginPath(); rg.moveTo(0, -11); rg.lineTo(7, 8); rg.lineTo(0, 4); rg.lineTo(-7, 8); rg.closePath(); rg.fill();
  rg.restore();
  rg.strokeStyle = 'rgba(232,195,106,.5)'; rg.lineWidth = 2; rg.beginPath(); rg.arc(W / 2, H / 2, W / 4, 0, Math.PI * 2); rg.stroke();
  rg.fillStyle = '#e8c36a'; rg.font = 'bold 16px system-ui'; rg.fillText('N', W / 2 - 6, 20);
  rg.font = '13px system-ui'; rg.fillText((rad / 1000).toFixed(rad < 2000 ? 1 : 0) + ' km', W / 2 - 18, H - 10);
}
var hudT = 0;
function whereName(x, z) {
  var best = null, bd = 1e9; [D.plaza, D.studio, D.port, D.soul, D.strike].forEach(function (d) { var dd = Math.hypot(x - d.x, z - d.z); if (dd < bd) { bd = dd; best = d; } });
  if (bd < 160) return best.name; if (window.Cam