1function n(e){return e>=1e6?(e/1e6).toFixed(e%1e6===0?0:1)+"M":e>=1e3?(e/1e3).toFixed(e%1e3===0?0:1)+"K":String(e)}function o(e,r,t="USD"){return e?"Free":`${t==="USD"?"$":t==="GBP"?"£":t==="EUR"?"â¬":""}${r.toFixed(2)}`}function l(e){return[e.city,e.region&&e.region!==e.city?e.region:null,e.country].filter(Boolean).slice(0,2).join(", ")}function a(e){let r=0;for(let i=0;i<e.length;i++)r=(r*31+e.charCodeAt(i))%360;const t=(r+40)%360;return{from:`hsl(${r}, 70%, 58%)`,to:`hsl(${t}, 72%, 46%)`}}function s(e){const t=e.replace(/[^\p{L}\p{N} ]/gu,"").trim().split(/\s+/).filter(Boolean);return t.length===0?"?":t.length===1?t[0].slice(0,2).toUpperCase():(t[0][0]+t[1][0]).toUpperCase()}export{n as c,a as g,s as i,l,o as p};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.