rray.from(document.querySelectorAll(sel));

    function setStatus(msg) { $('#status').textContent = msg; }
    function setShapeNote(msg) { $('#shapeNote').textContent = msg; }

    function parseCSV(text, delim = ',') {
      const out = [];
      let row = [];
      let cur = '';
      let inQuotes = false;
      for (let i=0;i<text.length;i++) {
        const c = text[i];
        if (c === '"') {
          if (inQuotes && text[i+1] === '"') { cur += '"'; i++; }
          else inQuotes = !inQuotes;
     