1import{c as q,r as m,j as e,L as B,s as S,B as T,o as D}from"./index-kEOuaiYw.js";import{u as C}from"./useQuery-Rb7ifQF3.js";import{B as N}from"./badge-2Q3lsEI7.js";import{I as M}from"./input-Y7nyCX0p.js";import{T as R}from"./table-pagination-BbY-SHTO.js";import{S as O}from"./shield-alert-7MHOriq-.js";import{S as U}from"./search-DvKpG0qN.js";import{E as V}from"./external-link-qmj-G_ga.js";import{A as I,a as G}from"./arrow-up-BYC5Qa7n.js";import{A as z}from"./arrow-down-Dt-1p9Es.js";import{C as H}from"./calendar-clock-pghb3iN4.js";import{D as W}from"./download-CNNKr6Ki.js";import{C as Q}from"./clock-QzWN_bb_.js";import{U as X}from"./user-BgTKV7XK.js";import{S as J}from"./star-3eIx06wL.js";import"./select-Dvk3GU2M.js";import"./index-BdQq_4o_.js";import"./index-hzakxSBT.js";import"./index-B0LWU4BB.js";import"./index-CHm9HVzT.js";import"./chevron-down-D80jx4Cp.js";import"./chevron-up-CcYnF3M4.js";import"./check-YYcnIBzo.js";import"./chevron-left-B8wR7yQ4.js";import"./chevron-right-BydHTqqh.js";/** 2 * @license lucide-react v0.462.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const A=q("Archive",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]]),P=1e3;function Y(){const{data:n,isLoading:_}=C({queryKey:["eol-kev-exposure"],staleTime:6e5,queryFn:async()=>{const s=[];for(let r=0;;r+=P){const{data:c,error:x}=await S.from("eol_cve_links").select("product_slug, cycle, cve_id, cve_cvss_score, is_eol").eq("cve_kev",!0).order("product_slug",{ascending:!0}).order("cycle",{ascending:!0}).order("cve_id",{ascending:!0}).range(r,r+P-1);if(x)throw x;if(!(c!=null&&c.length)||(s.push(...c),c.length<P))break}if(!s.length)return[];const o=new Map;for(const r of s){const c=`${r.product_slug}|${r.cycle}`,x=o.get(c);x?(x.kev_count++,x.top_cves.length<5&&x.top_cves.push(r.cve_id),(r.cve_cvss_score??0)>(x.max_cvss??0)&&(x.max_cvss=r.cve_cvss_score)):o.set(c,{product_slug:r.product_slug,cycle:r.cycle,is_eol:r.is_eol??!1,kev_count:1,top_cves:[r.cve_id],max_cvss:r.cve_cvss_score,eol_date:null,official_url:null})}const a=[...new Set([...o.values()].map(r=>r.product_slug))],f=new Map,d=300;for(let r=0;r<a.length;r+=d){const c=a.slice(r,r+d),{data:x}=await S.from("product_lifecycles").select("product_slug, cycle, eol_date, official_url").in("product_slug",c);for(const b of x??[])f.set(`${b.product_slug}|${b.cycle}`,{eol_date:b.eol_date,official_url:b.official_url})}return[...o.values()].map(r=>{const c=f.get(`${r.product_slug}|${r.cycle}`);return{...r,eol_date:(c==null?void 0:c.eol_date)??null,official_url:(c==null?void 0:c.official_url)??null}})}}),[p,v]=m.useState(""),[g,L]=m.useState("kev_count"),[w,$]=m.useState("desc"),[y,j]=m.useState(0),[h,k]=m.useState(20),u=m.useMemo(()=>{const s=n??[],o=p.toLowerCase().replace(/[-_]/g," ").split(/\s+/).filter(Boolean),a=o.length?s.filter(d=>{const r=`${d.product_slug} ${d.cycle} ${d.eol_date??""}`.toLowerCase().replace(/[-_]/g," ");return o.every(c=>r.includes(c))}):s,f=w==="asc"?1:-1;return[...a].sort((d,r)=>{switch(g){case"kev_count":return(d.kev_count-r.kev_count)*f;case"max_cvss":return((d.max_cvss??0)-(r.max_cvss??0))*f;case"eol_date":return(d.eol_date??"").localeCompare(r.eol_date??"")*f;case"cycle":return d.cycle.localeCompare(r.cycle)*f;case"product_slug":default:return d.product_slug.localeCompare(r.product_slug)*f}})},[n,p,g,w]),E=m.useMemo(()=>u.slice(y*h,y*h+h),[u,y,h]),t=s=>{g===s?$(o=>o==="asc"?"desc":"asc"):(L(s),$(s==="product_slug"||s==="cycle"||s==="eol_date"?"asc":"desc")),j(0)},i=({k:s})=>g!==s?e.jsx(I,{className:"h-2.5 w-2.5 inline opacity-40"}):w==="asc"?e.jsx(G,{className:"h-2.5 w-2.5 inline"}):e.jsx(z,{className:"h-2.5 w-2.5 inline"}),l=(s,o,a="left")=>e.jsxs("th",{className:`${a==="right"?"text-right":"text-left"} px-3 py-2 font-semibold cursor-pointer select-none hover:text-foreground`,onClick:()=>t(s),children:[o," ",e.jsx(i,{k:s})]});return e.jsxs("div",{className:"bg-card border border-border/50 rounded-xl overflow-hidden",children:[e.jsxs("div",{className:"flex items-center gap-2 px-4 py-3 border-b border-border/30 flex-wrap",children:[e.jsx(O,{className:"h-4 w-4 text-severity-critical"}),e.jsx("h2",{className:"text-sm font-bold",children:"Products with active KEVs"}),e.jsx(N,{variant:"outline",className:"text-[10px]",children:"CISA-confirmed exploits"}),e.jsxs("div",{className:"ml-auto flex items-center gap-3",children:[e.jsxs("div",{className:"relative",children:[e.jsx(U,{className:"absolute left-2 top-1/2 -translate-y-1/2 h-3 w-3 text-muted-foreground"}),e.jsx(M,{value:p,onChange:s=>{v(s.target.value),j(0)},placeholder:"Search product / cycleâ¦",className:"h-7 w-44 pl-7 text-xs"})]}),e.jsxs("span",{className:"text-[11px] text-muted-foreground whitespace-nowrap",children:[u.length," product cycles"]})]})]}),_?e.jsx("div",{className:"flex justify-center py-8",children:e.jsx("div",{className:"h-4 w-4 border-2 border-primary border-t-transparent roun
6ded-full animate-spin"})}):n!=null&&n.length?u.length?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-xs",children:[e.jsx("thead",{className:"bg-secondary/30 text-muted-foreground uppercase tracking-wider text-[10px]",children:e.jsxs("tr",{children:[l("product_slug","Product"),l("cycle","Cycle"),l("eol_date","EOL Date"),l("kev_count","KEVs","right"),l("max_cvss","Max CVSS","right"),e.jsx("th",{className:"text-left px-3 py-2 font-semibold",children:"Top CVEs"})]})}),e.jsx("tbody",{children:E.map(s=>{var o;return e.jsxs("tr",{className:"border-t border-border/30 hover:bg-secondary/20",children:[e.jsx("td",{className:"px-3 py-2 font-medium",children:s.official_url?e.jsxs("a",{href:s.official_url,target:"_blank",rel:"noopener noreferrer",className:"hover:text-primary hover:underline inline-flex items-center gap-1",children:[s.product_slug,e.jsx(V,{className:"h-2.5 w-2.5"})]}):s.product_slug}),e.jsx("td",{className:"px-3 py-2 font-mono",children:s.cycle}),e.jsxs("td",{className:"px-3 py-2 font-mono text-muted-foreground",children:[s.eol_date??"â",s.is_eol&&e.jsx(N,{variant:"outline",className:"ml-2 text-[9px] px-1 py-0 border-severity-critical text-severity-critical",children:"EOL"})]}),e.jsx("td",{className:"px-3 py-2 text-right font-mono font-bold text-severity-critical",children:s.kev_count}),e.jsx("td",{className:"px-3 py-2 text-right font-mono text-severity-high",children:((o=s.max_cvss)==null?void 0:o.toFixed(1))??"â"}),e.jsx("td",{className:"px-3 py-2 font-mono text-[10px]",children:e.jsx("div",{className:"flex flex-wrap gap-1",children:s.top_cves.map(a=>e.jsx(B,{to:`/cve-search?q=${a}`,className:"text-primary hover:underline",children:a},a))})})]},`${s.product_slug}-${s.cycle}`)})})]})}),e.jsx(R,{page:y,totalItems:u.length,pageSize:h,onPageChange:j,onPageSizeChange:k})]}):e.jsxs("p",{className:"text-xs text-muted-foreground text-center py-8",children:["No product cycles match â",p,"â."]}):e.jsx("p",{className:"text-xs text-muted-foreground text-center py-8",children:"No KEV-tagged CVEs linked to tracked product cycles yet. Correlator runs daily at 06:30 UTC."})]})}function Z(n){return n==null?"â":n>=1e3?`${(n/1e3).toFixed(1)}k`:n.toString()}function K(n){return Math.floor((new Date(n).getTime()-Date.now())/(1e3*60*60*24))}function ee(n){if(!n)return null;const _=K(n);return _<0?"expired":_<=90?"soon":_<=365?"warning":"ok"}const F={expired:"Expired",soon:"⤠90 days",warning:"⤠1 year",ok:"Supported"};function Se(){const[n,_]=m.useState(""),[p,v]=m.useState("all"),[g,L]=m.useState(!1),{data:w,isLoading:$}=C({queryKey:["eol-all-lifecycles"],staleTime:30*60*1e3,queryFn:async()=>{const i=[];for(let l=0;;l+=1e3){const{data:s}=await S.from("product_lifecycles").select("product_slug, cycle, release_date, eol_date, support_end, extended_support_end, latest_version, support_active, lts, lifecycle_phase, primary_purl, repology_project").not("eol_date","is",null).order("eol_date",{ascending:!0}).range(l,l+1e3-1),o=s||[];if(i.push(...o),o.length<1e3)break}return i}}),{data:y}=C({queryKey:["eol-bridge-map"],staleTime:30*60*1e3,queryFn:async()=>{const{data:t}=await S.from("ecosystems_packages").select("purl, repository_url, repo_archived, repo_stars, sole_maintainer, is_critical"),i=new Map;for(const l of t??[])i.set(l.purl,l);return i}}),{data:j}=C({queryKey:["eol-tier0-count"],staleTime:15*60*1e3,queryFn:async()=>{const{count:t}=await S.from("v_cves_on_eol_abandoned_products").select("*",{count:"exact",head:!0});return t??0}}),h=m.useMemo(()=>(w||[]).map(t=>{const i=t.primary_purl&&y?y.get(t.primary_purl)??null:null;return{...t,status:ee(t.eol_date),days:t.eol_date?K(t.eol_date):null,bridge:i}}).filter(t=>t.status!==null),[w,y]),k=m.useMemo(()=>{const t={expired:0,soon:0,warning:0,ok:0};for(const i of h)i.status&&t[i.status]++;return t},[h]),u=m.useMemo(()=>{const t=l=>l.toLowerCase().replace(/[-_]+/g," "),i=t(n.trim()).split(/\s+/).filter(Boolean);return h.filter(l=>{if(p!=="all"&&l.status!==p)return!1;if(i.length){const s=t(`${l.product_slug} ${l.cycle} ${l.latest_version??""}`);if(!i.every(o=>s.includes(o)))return!1}return!0})},[h,n,p]);function E(){const t=`product_slug,cycle,release_date,support_end,extended_supp
6ort_end,eol_date,latest_version,lts,status,days_to_eol 7`,i=u.map(a=>`${a.product_slug},${a.cycle},${a.release_date??""},${a.support_end??""},${a.extended_support_end??""},${a.eol_date??""},${a.latest_version??""},${a.lts??""},${a.status},${a.days??""}`),l=new Blob([t+i.join(` 8`)],{type:"text/csv"}),s=URL.createObjectURL(l),o=document.createElement("a");o.href=s,o.download=`eol-watch-${new Date().toISOString().slice(0,10)}.csv`,o.click(),URL.revokeObjectURL(s)}return e.jsxs("div",{className:"p-4 md:p-6 space-y-6 max-w-[1400px] mx-auto",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(H,{className:"h-5 w-5 text-severity-high"}),e.jsx("h1",{className:"text-lg font-bold",children:"End-of-Life Watch"}),e.jsx(N,{variant:"outline",className:"text-[10px] ml-2",children:"Platform"})]}),e.jsxs("p",{className:"text-xs text-muted-foreground -mt-3",children:["Product lifecycles from"," ",e.jsx("a",{href:"https://endoflife.date",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"endoflife.date"}),". Unsupported software stops receiving security patches â track upcoming EOL across the catalog."]}),e.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-3",children:[e.jsxs("button",{onClick:()=>v("expired"),className:`rounded-lg border p-3 text-left transition-colors ${p==="expired"?"border-severity-critical bg-severity-critical/10":"border-severity-critical/30 bg-severity-critical/5 hover:bg-severity-critical/10"}`,children:[e.jsx("p",{className:"text-2xl font-bold font-mono text-severity-critical leading-none",children:k.expired.toLocaleString()}),e.jsx("p",{className:"text-[11px] text-muted-foreground mt-1 uppercase tracking-wider",children:"Expired"})]}),e.jsxs("button",{onClick:()=>v("soon"),className:`rounded-lg border p-3 text-left transition-colors ${p==="soon"?"border-severity-high bg-severity-high/10":"border-severity-high/30 bg-severity-high/5 hover:bg-severity-high/10"}`,children:[e.jsx("p",{className:"text-2xl font-bold font-mono text-severity-high leading-none",children:k.soon.toLocaleString()}),e.jsx("p",{className:"text-[11px] text-muted-foreground mt-1 uppercase tracking-wider",children:"⤠90 days"})]}),e.jsxs("button",{onClick:()=>v("warning"),className:`rounded-lg border p-3 text-left transition-colors ${p==="warning"?"border-severity-medium bg-severity-medium/10":"border-severity-medium/30 bg-severity-medium/5 hover:bg-severity-medium/10"}`,children:[e.jsx("p",{className:"text-2xl font-bold font-mono text-severity-medium leading-none",children:k.warning.toLocaleString()}),e.jsx("p",{className:"text-[11px] text-muted-foreground mt-1 uppercase tracking-wider",children:"⤠1 year"})]}),e.jsxs("button",{onClick:()=>v("ok"),className:`rounded-lg border p-3 text-left transition-colors ${p==="ok"?"border-primary bg-primary/10":"border-border/50 bg-secondary/10 hover:bg-secondary/20"}`,children:[e.jsx("p",{className:"text-2xl font-bold font-mono text-primary leading-none",children:k.ok.toLocaleString()}),e.jsx("p",{className:"text-[11px] text-muted-foreground mt-1 uppercase tracking-wider",children:"Supported (1y+)"})]})]}),e.jsx(Y,{}),j!==void 0&&j>0&&e.jsxs("div",{className:"rounded-lg border border-severity-critical/40 bg-severity-critical/10 p-3 flex items-center gap-3",children:[e.jsx(A,{className:"h-4 w-4 text-severity-critical shrink-0"}),e.jsxs("div",{className:"flex-1 text-xs",children:[e.jsx("span",{className:"font-bold text-severity-critical font-mono",children:j.toLocaleString()})," ",e.jsxs("span",{className:"text-foreground",children:["CVEs hit products that are ",e.jsx("strong",{children:"both end-of-life and have an abandoned source repository"}),"."]}),e.jsx("span",{className:"text-muted-foreground ml-1",children:"No upstream fix is realistic â migrate or fork."})]}),e.jsx(N,{variant:"outline",className:"border-severity-critical/40 text-severity-critical text-[10px]",children:"Tier-0"})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxs("div",{className:"relative flex-1 min-w-[240px] max-w-[400px]",children:[e.jsx(U,{className:"absolute left-2.5 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground"}),e.jsx(M,{placeholder:"Search product slug or cycleâ¦",value:n,onChange:t=>_(t.target.value),className:"pl-8 h-8 text-xs"})]}),p!=="all"&&e.jsxs(N,{variant:"secondary",className:"gap-2 text-[10px]",children:[F[p],e.jsx("button",{onClick:()=>v("all"),className:"hover:text-foreground",children:"Ã"})]}),e.jsxs("span",{className:"text-[11px] text-muted-foreground",children:[u.length.toLocaleStr
8ing()," of ",h.length.toLocaleString()]}),e.jsx(T,{size:"sm",variant:g?"default":"outline",onClick:()=>L(t=>!t),className:"h-8 ml-auto",title:"Toggle Repology / ecosyste.ms bridge columns",children:g?"Hide bridge":"Show bridge"}),e.jsxs(T,{size:"sm",variant:"outline",onClick:E,disabled:u.length===0,className:"h-8",children:[e.jsx(W,{className:"h-3 w-3 mr-1"})," CSV"]})]}),e.jsx("div",{className:"bg-card border border-border/50 rounded-xl overflow-hidden",children:$?e.jsx("div",{className:"flex justify-center py-12",children:e.jsx("div",{className:"h-5 w-5 border-2 border-primary border-t-transparent rounded-full animate-spin"})}):u.length===0?e.jsx("p",{className:"text-xs text-muted-foreground text-center py-12",children:"No lifecycle records match."}):e.jsxs("div",{className:"overflow-x-auto",children:[e.jsxs("table",{className:"w-full text-xs",children:[e.jsx("thead",{className:"bg-secondary/30 text-muted-foreground uppercase tracking-wider text-[10px]",children:e.jsxs("tr",{children:[e.jsx("th",{className:"text-left px-3 py-2 font-semibold",children:"Product"}),e.jsx("th",{className:"text-left px-3 py-2 font-semibold",children:"Cycle"}),e.jsx("th",{className:"text-left px-3 py-2 font-semibold",children:"Latest"}),e.jsx("th",{className:"text-left px-3 py-2 font-semibold",title:"When active security patches end",children:"Active Support"}),e.jsx("th",{className:"text-left px-3 py-2 font-semibold",title:"When paid extended support ends",children:"Ext. Support"}),e.jsx("th",{className:"text-left px-3 py-2 font-semibold",children:"EOL Date"}),e.jsx("th",{className:"text-right px-3 py-2 font-semibold",children:"Days to EOL"}),e.jsx("th",{className:"text-left px-3 py-2 font-semibold",children:"Status"}),g&&e.jsxs(e.Fragment,{children:[e.jsx("th",{className:"text-left px-3 py-2 font-semibold border-l border-border/30",title:"OpenEoX-aligned lifecycle phase",children:"Phase"}),e.jsx("th",{className:"text-left px-3 py-2 font-semibold",title:"Repology project key",children:"Repology"}),e.jsx("th",{className:"text-left px-3 py-2 font-semibold",title:"Source repository (ecosyste.ms)",children:"Repo"}),e.jsx("th",{className:"text-right px-3 py-2 font-semibold",title:"GitHub stars",children:"â
"}),e.jsx("th",{className:"text-left px-3 py-2 font-semibold",title:"Bus-factor / criticality flags",children:"Risk"})]})]})}),e.jsx("tbody",{children:u.slice(0,500).map((t,i)=>{var o,a,f,d,r,c,x,b;const l=t.status==="expired"?D:Q,s=t.status==="expired"?"text-severity-critical":t.status==="soon"?"text-severity-high":t.status==="warning"?"text-severity-medium":"text-muted-foreground";return e.jsxs("tr",{className:"border-t border-border/30 hover:bg-secondary/20",children:[e.jsx("td",{className:"px-3 py-2 font-medium",children:e.jsx("a",{href:`https://endoflife.date/${t.product_slug}`,target:"_blank",rel:"noopener noreferrer",className:"hover:text-primary hover:underline",children:t.product_slug})}),e.jsxs("td",{className:"px-3 py-2 font-mono",children:[t.cycle,t.lts&&e.jsx(N,{variant:"outline",className:"ml-1 text-[9px] px-1 py-0",children:"LTS"})]}),e.jsx("td",{className:"px-3 py-2 font-mono text-muted-foreground",children:t.latest_version||"â"}),e.jsx("td",{className:"px-3 py-2 font-mono text-muted-foreground",children:t.support_end||"â"}),e.jsx("td",{className:"px-3 py-2 font-mono text-muted-foreground",children:t.extended_support_end||"â"}),e.jsx("td",{className:"px-3 py-2 font-mono",children:t.eol_date}),e.jsx("td",{className:`px-3 py-2 text-right font-mono font-bold ${s}`,children:t.days<0?`${Math.abs(t.days)}d ago`:`${t.days}d`}),e.jsx("td",{className:"px-3 py-2",children:e.jsxs("span",{className:`inline-flex items-center gap-1 ${s}`,children:[e.jsx(l,{className:"h-3 w-3"}),F[t.status]]})}),g&&e.jsxs(e.Fragment,{children:[e.jsx("td",{className:"px-3 py-2 border-l border-border/30",children:t.lifecycle_phase?e.jsx(N,{variant:"outline",className:`text-[9px] px-1.5 py-0 font-mono ${t.lifecycle_phase==="end-of-life"?"border-severity-critical/40 text-severity-critical":t.lifecycle_phase==="maintenance"?"border-severity-medium/40 text-severity-medium":t.lifecycle_phase==="active"?"border-primary/40 text-primary":"border-border text-muted-foreground"}`,children:t.lifecycle_phase}):e.jsx("span",{className:"text-muted-foreground",children:"â"})}),e.jsx("td",{className:"px-3 py-2 font-mono text-[11px] text-muted-foreground",children:t.repology_project?e.jsx("a",{href:`https://repology.org/project/${t.repology_project}`,target:"_blank",rel:"noopener noreferrer",className:"hover:text-primary hover:underline",children:t.repology_project}):"â"}),e.jsx("td",{className:"px-3 py-2 font-mono text-[11px] text-muted-foreground max-w-[180px] truncate",children:(o=t.bridge)!=null&&o.repository_url?e.jsxs("a",{href:t.bridge.repository_url,target:"_blank",rel:"noopener noreferrer",className:"hover:text-primary hover:underline inline-flex items-center gap-1",children:[t.bridge.repository_url.replace(/^https?:\/\/(www\.)?/,""),t.bridge.repo_archived&&e.jsx(A,{className:"h-3 w-3 text-severity-critical shrink-0"})]}):"â"}),e.jsx("td",{className:"px-3 py-2 text-right font-mono text-[11px] text-muted-foreground",children:Z(((a=t.bridge)==null?void 0:a.repo_stars)??null)}),e.jsx("td",{className:"px-3 py-2",children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[((f=t.bridge)==null?void 0:f.repo_archived)&&e.jsx("span",{title:"Source repo archived",className:"text-severity-critical",children:e.jsx(A,{className:"h-3 w-3"})}),((d=t.bridge)==null?void 0:d.sole_maintainer)&&e.jsx("span",{title:"Sole maintainer (bus-factor 1)",className:"text-severity-high",children:e.jsx(X,{className:"h-3 w-3"})}),((r=t.bridge)==null?void 0:r.is_critical)&&e.jsx("span",{title:"Critical OpenSSF depen
8dency",className:"text-primary",children:e.jsx(J,{className:"h-3 w-3"})}),!((c=t.bridge)!=null&&c.repo_archived)&&!((x=t.bridge)!=null&&x.sole_maintainer)&&!((b=t.bridge)!=null&&b.is_critical)&&e.jsx("span",{className:"text-muted-foreground text-[10px]",children:"â"})]})})]})]},`${t.product_slug}-${t.cycle}-${i}`)})})]}),u.length>500&&e.jsxs("p",{className:"text-[11px] text-muted-foreground text-center py-2 border-t border-border/30",children:["Showing first 500 of ",u.length.toLocaleString()," â refine filters to narrow."]})]})})]})}export{Se as default};
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.