PageSourceSearch

https://freesavevideo.online/_app/immutable/chunks/queue.3-Ox36X1.js

js freesavevideo.online collected 2026-10-02 00:04:05 UTC 18,746 bytes, 1 lines download raw bytes

1import{a as pe,w as he,r as we}from"./index.DRXJrjr-.js";import{t as H}from"./translations.Dtlp3A-Q.js";import{c as ye}from"./dialogs.D3NcrG_Q.js";import{v as y}from"./scheduler.Cc4Vd-yM.js";import{d as ge}from"./settings.BZ0ID_rY.js";import{r as T,c as be}from"./opfs.C1fA85w4.js";import{currentApiURL as P}from"./api-url.B-zoonkv.js";import{g as W}from"./clerk.sh6PovXz.js";function ke(e){return new Worker("/_app/immutable/workers/ffmpeg-uty8FHBF.js",{name:e==null?void 0:e.name})}const F=he({}),z=pe(F);function $e(e,r){F.update(t=>(t[e]=r,t))}function Q(e){F.update(r=>(delete r[e],r))}function K(e,r){F.update(t=>(t[e].progress=r,t))}function ve(e,r){F.update(t=>{var s;const n=t[e];return n&&(n.progress={size:((s=n.progress)==null?void 0:s.size)||0,...n.progress,networkStalled:r}),t})}function Se(){F.set({})}let j=0;const oe=async(e,r,t,n,s,o,a,i=!1)=>{const l=new ke;i&&(j=0);let u=0;const c=setInterval(async()=>{if(u++,u===10)return j++,j<=10?(w(l,d,c),await oe(e,r,t,n,s,o,a)):(w(l,d,c),g(r,e,"queue.worker_didnt_start"))},500),d=k.subscribe(m=>{m[r]||w(l,d,c)});l.postMessage({cobaltFFmpegWorker:{variant:o,files:t,args:n,output:s,yesthreads:a}}),l.onerror=m=>(console.error("ffmpeg worker crashed:",m),w(l,d,c),g(r,e,"queue.generic_error"));let h=null;l.onmessage=m=>{const p=m.data.cobaltFFmpegWorker;if(p){if(clearInterval(c),p.progress&&(p.progress.duration&&(h=p.progress.duration),K(e,{percentage:h?p.progress.durationProcessed/h*100:0,size:p.progress.size})),p.render)return w(l,d,c),J(r,e,p.render);if(p.error)return w(l,d,c),g(r,e,p.error)}}};function _e(e){return new Worker("/_app/immutable/workers/fetch-ChJuRjoD.js",{name:e==null?void 0:e.name})}const v=new Map,U=(e,r)=>`${e}:${r}`,Te=(e,r)=>v.get(U(e,r)),Re=(e,r,t)=>{const n=U(e,r),s=v.get(n),o={...t,updatedAt:Date.now()};v.set(n,o),s!=null&&s.fileName&&s.fileName!==o.fileName&&T(s.fileName)},Y=(e,r)=>{const t=U(e,r),n=v.get(t);v.delete(t),n!=null&&n.fileName&&T(n.fileName)},D=e=>{const r=`${e}:`;for(const[t,n]of v.entries())t.startsWith(r)&&(v.delete(t),n.fileName&&T(n.fileName))},et=e=>{const r=`${e}:`;for(const[t,n]of v.entries())if(t.startsWith(r)&&n.fileName&&Number.isFinite(n.receivedBytes)&&n.receivedBytes>0)return!0;return!1},se=async(e,r,t,n,s,o,a,i=0)=>{const l=new _e,u=2,c=15e3;let d=!1;const h=k.subscribe(I=>{I[r]||w(l,h,p)}),m=async(I="queue.worker_didnt_start")=>(w(l,h,p),i<u?await se(e,r,t,n,s,o,a,i+1):g(r,e,I)),p=setTimeout(()=>{d||m("queue.worker_didnt_start")},c),$=o!=null&&o.enabled&&Number.isFinite(o.slot)?Number(o.slot):void 0,q=$===void 0?void 0:Te(r,$);l.postMessage({cobaltFetchWorker:{url:t,urlCandidates:n,tuning:s,resume:{...o,...q?{fileName:q.fileName,receivedBytes:q.receivedBytes,expectedSize:q.expectedSize,contentType:q.contentType}:{}},validation:a}}),l.onerror=()=>{m("queue.generic_error")},l.onmessageerror=()=>{m("queue.generic_error")},l.onmessage=I=>{var L,V;const f=I.data.cobaltFetchWorker;if(f&&(d=!0,clearTimeout(p),!f.started)){if(f.networkStalled!==void 0&&ve(e,f.networkStalled===!0),f.progress!==void 0&&K(e,{percentage:f.progress,size:f.size}),f.result)return $!==void 0&&Y(r,$),w(l,h,p),J(r,e,f.result);if(f.error)return $!==void 0&&((L=f.resume)!=null&&L.fileName)&&Number.isFinite((V=f.resume)==null?void 0:V.receivedBytes)&&f.resume.receivedBytes>0?Re(r,$,{fileName:f.resume.fileName,receivedBytes:f.resume.receivedBytes,expectedSize:Number.isFinite(f.resume.expectedSize)?f.resume.expectedSize:void 0,contentType:typeof f.resume.contentType=="string"?f.resume.contentType:void 0}):$!==void 0&&Y(r,$),w(l,h,p),g(r,e,f.error,f.diagnostic)}}};function Fe(e){return new Worker("/_app/immutable/workers/hls-fetch-D9RLMLwv.js",{name:e==null?void 0:e.name})}const ne=async(e,r,t,n,s=0)=>{const o=new Fe,a=2,i=15e3;let l=!1;const u=k.subscribe(h=>{h[r]||w(o,u,d)}),c=async(h="queue.worker_didnt_start")=>(w(o,u,d),s<a?await ne(e,r,t,n,s+1):g(r,e,h)),d=setTimeout(()=>{l||c("queue.worker_didnt_start")},i);o.postMessage({cobaltHlsFetchWorker:{url:t,mimeType:n}}),o.onerror=()=>{c("queue.generic_error")},o.onmessageerror=()=>{c("queue.generic_error")},o.onmessage=h=>{var p;const m=(p=h.data)==null?void 0:p.cobaltHlsFetchWorker;
1if(m&&(l=!0,clearTimeout(d),!m.started)){if(m.progress!==void 0&&K(e,{percentage:m.progress,size:m.size}),m.result)return w(o,u,d),J(r,e,m.result);if(m.error)return w(o,u,d),g(r,e,m.error)}}},w=(e,r,t)=>{r(),e.terminate(),t&&clearInterval(t)},qe=async({worker:e,workerId:r,dependsOn:t,parentId:n,workerArgs:s})=>{let o=[];switch(e){case"remux":case"encode":{s.files&&(o=s.files);const a=y(k)[n];if((a==null?void 0:a.state)==="running"&&t)for(const i of t){const l=a.pipelineResults[i];if(!l)return g(n,i,"queue.ffmpeg.no_args");o.push(l)}o.length>0&&s.ffargs&&s.output?await oe(r,n,o,s.ffargs,s.output,e,ge.supports.multithreading,!0):g(n,r,"queue.ffmpeg.no_args");break}case"fetch":await se(r,n,s.url,s.urlCandidates,s.tuning,s.resume,s.validation);break;case"hls-fetch":await ne(r,n,s.url,s.mimeType);break}},Ie=1,G=2,Z=e=>{$e(e.workerId,{type:e.worker,parentId:e.parentId}),De(e.parentId),qe(e)},_=()=>{var s;const e=y(k),r=y(z),t=Object.keys(r).length,n=Object.values(e).filter(o=>o.state==="running").length;for(const o of Object.values(e))if(o.state==="running"){const a=o.pipeline[o.pipeline.length-1];if(Object.keys(o.pipelineResults).length===o.pipeline.length){const i=o.pipelineResults[a.workerId];delete o.pipelineResults[a.workerId],i?Ke(o.id,i):g(o.id,a.workerId,"queue.no_final_file");continue}for(const i of o.pipeline){if(o.pipelineResults[i.workerId]||r[i.workerId])continue;if(((s=i.dependsOn)==null?void 0:s.some(u=>!o.pipelineResults[u]))||Object.keys(y(z)).length>=G||(i.worker==="fetch"||i.worker==="hls-fetch")&&Object.values(y(z)).some(c=>c.parentId===o.id&&(c.type==="fetch"||c.type==="hls-fetch")))break;Z(i)}break}else if(o.state==="waiting"&&o.pipeline.length>0){if(n>=Ie||t>=G)continue;Z(o.pipeline[0]);break}},ie=async(e=6,r=250)=>{let t=await W();if(t)return t;for(let n=0;n<e;n+=1)if(await new Promise(s=>setTimeout(s,r)),t=await W(),t)return t;return null},ae=()=>`pts_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`,B=async(e,r,t)=>{var l,u,c,d;const n=await ie();if(!n)return{ok:!1};const s=P(),o=ae(),a=await fetch(`${s}/user/points/hold/finalize`,{method:"POST",headers:{Authorization:`Bearer ${n}`,"Content-Type":"application/json","X-Request-Id":o},body:JSON.stringify({holdId:e,reason:r,requestId:o,queueId:t==null?void 0:t.queueId,itemId:t==null?void 0:t.itemId,errorCode:t==null?void 0:t.errorCode,failureDiagnostic:t==null?void 0:t.failureDiagnostic})}).catch(()=>null),i=await(a==null?void 0:a.json().catch(()=>({})));return!(a!=null&&a.ok)||(i==null?void 0:i.status)!=="success"?{ok:!1}:{ok:!0,status:(l=i==null?void 0:i.data)==null?void 0:l.status,charged:(u=i==null?void 0:i.data)==null?void 0:u.charged,before:((c=i==null?void 0:i.data)==null?void 0:c.before)??null,after:((d=i==null?void 0:i.data)==null?void 0:d.after)??null}},E=async(e,r,t)=>{var l,u;console.log(`[points] releasePointsHold: start holdId=${e} reason=${r} queueId=${(t==null?void 0:t.queueId)??"none"} itemId=${(t==null?void 0:t.itemId)??"none"} errorCode=${(t==null?void 0:t.errorCode)??"none"}`);const n=await ie();if(!n)return console.error(`[points] releasePointsHold: no token holdId=${e}`),{ok:!1};const s=P(),o=ae();console.log(`[points] releasePointsHold: calling API ${s}/user/points/hold/release requestId=${o}`);const a=await fetch(`${s}/user/points/hold/release`,{method:"POST",headers:{Authorization:`Bearer ${n}`,"Content-Type":"application/json","X-Request-Id":o},body:JSON.stringify({holdId:e,reason:r,requestId:o,queueId:t==null?void 0:t.queueId,itemId:t==null?void 0:t.itemId,errorCode:t==null?void 0:t.errorCode,failureDiagnostic:t==null?void 0:t.failureDiagnostic})}).catch(c=>(console.error(`[points] releasePointsHold: fetch failed holdId=${e} requestId=${o} error=`,c),null));if(!a)return console.error(`[points] releasePointsHold: no response holdId=${e} requestId=${o}`),{ok:!1};const i=await a.json().catch(c=>(console.error(`[points] releasePointsHold: json parse failed holdId=${e} requestId=${o} error=`,c),{}));return console.log(`[points] releasePointsHold: response holdId=${e} requestId=${o} status=${a.status} ok=${a.ok} data=`,i),!a.ok||(i==null?void 0:i.status)!=="success"?(console.error(`[points] releasePointsHold: API returned error holdId=${e} requestId=${o} status=${a.status} data=`,i),{ok:!1}):(console.log(`[points] releasePointsHold: success holdId=${e} requestId=${o} status=${(l=i==null?void 0:i.data)==null?void 0:l.status}`),{ok:!0,status:(u=i==null?void 0:i.data)==null?void 0:u.status})},tt=Object.freeze(Object.defineProperty({__proto__:null,finalizePointsHold:B,releasePointsHold:E},Symbol.toStringTag,{value:"Module"})),X=async(e=6,r=250)=>{let t=await W();if(t)return t;for(let n=0;n<e;n+=1)if(await new Promise(s=>setTimeout(s,r)),t=await W(),t)return t;return null},rt=async e=>{var a;const r=await X();if(!r)return[];const t=P(),n=await fetch(`${t}/user/collection-memory?collectionKey=${encodeURIComponent(e)}`,{headers:{Authorization:`Bearer ${r}`}}).catch(()=>null),s=await(n==null?void 0:n.json().catch(()=>({})));if(!(n!=null&&n.ok)||(s==null?void 0:s.status)!=="success")return[];const o=(a=s==null?void 0:s.data)==null?void 0:a.downloadedItemKeys;return Array.isArray(o)?o.filter(i=>typeof i=="string"&&i.length>0):[]},Pe=async({collectionKey:e,title:r,sourceUrl:t,items:n})=>{const s=await X();if(!s)return!1;const o=P(),a=await fetch(`${o}/user/collection-memory/mark`,{method:"POST",headers:{Authorization:`Bearer ${s}`,"Content-Type":"application/json"},body:JSON.stringify({collectionKey:e,title:r,sourceUrl:t,items:n})}).catch(()=>null),i=await(a==null?void 0:a.json().catch(()=>({})));return!!(a!=null&&a.ok)&&(i==null?void 0:i.status)==="success"},ot=async({collectionKey:e,itemKeys:r})=>{const t=await X();if(!t)return!1;const n=P(),s=await fetch(`${n}/user/collection-memory/unmark`,{method:"POST",headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json"},body:JSON.stringify({collectionKey:e,itemKeys:r})}).catch(()=>null),o=await(s==null?void 0:s.json().catch(()=>({})));return!!(s!=null&&s.ok)&&(o==null?void 0:o.status)==="success"},Oe="cobalt-auto-save",R="handles",le="download-directory";let S=null,x=Promise.resolve(),M=null;const ce=()=>new Promise((e,r)=>{const t=indexedDB.open(Oe,1);t.onupgradeneeded=()=>{const n=t.result;n.objectStoreNames.contains(R)||n.createObjectStore(R)},t.onsuccess=()=>e(t.result),t.onerror=()=>r(t.error)}),ue=async()=>
1{if(typeof indexedDB>"u")return null;const e=await ce();try{return await new Promise((r,t)=>{const s=e.transaction(R,"readonly").objectStore(R).get(le);s.onsuccess=()=>r(s.result||null),s.onerror=()=>t(s.error)})}finally{e.close()}},We=async e=>{const r=await ce();try{await new Promise((t,n)=>{const s=r.transaction(R,"readwrite");s.objectStore(R).put(e,le),s.oncomplete=()=>t(),s.onerror=()=>n(s.error),s.onabort=()=>n(s.error)})}finally{r.close()}},fe=async e=>await e.queryPermission({mode:"readwrite"})==="granted",ee=async e=>await fe(e)?!0:await e.requestPermission({mode:"readwrite"})==="granted",de=()=>typeof window<"u"&&window.isSecureContext&&"showDirectoryPicker"in window,Ne=()=>de()?(M||(M=ue().then(e=>(S||(S=e),e)).catch(()=>null)),M):Promise.resolve(null),st=async e=>{if(!de())return!1;let r=S;if(!(e!=null&&e.prompt)&&r&&await ee(r).catch(()=>!1))return S=r,!0;try{r=await window.showDirectoryPicker({id:"cobalt-batch-downloads",mode:"readwrite",startIn:"downloads"})}catch(t){if(t instanceof DOMException&&t.name==="AbortError")return!1;throw t}return await ee(r)?(S=r,await We(r).catch(t=>{console.warn("[auto-save] unable to remember directory",t)}),!0):!1};typeof window<"u"&&Ne();const Ce=e=>e.replace(/[<>:"/\\|?*\u0000-\u001F]/g,"_").replace(/[ .]+$/g,"").trim()||`download-${Date.now()}`,Ee=e=>{const r=e.lastIndexOf(".");return r<=0||r===e.length-1?{stem:e,extension:""}:{stem:e.slice(0,r),extension:e.slice(r)}},He=async(e,r)=>{const t=Ce(r),{stem:n,extension:s}=Ee(t);for(let o=0;o<1e4;o+=1){const a=o===0?t:`${n} (${o})${s}`;try{await e.getFileHandle(a)}catch(i){if(i instanceof DOMException&&i.name==="NotFoundError")return a;throw i}}return`${n}-${Date.now()}${s}`},ze=async(e,r)=>{const t=S||await ue().catch(()=>null);if(!t||!await fe(t))throw new DOMException("Auto-save directory permission is unavailable","NotAllowedError");S=t;const n=await He(t,r),o=await(await t.getFileHandle(n,{create:!0})).createWritable();try{await o.write(e),await o.close()}catch(a){throw await o.abort().catch(()=>{}),await t.removeEntry(n).catch(()=>{}),a}return{directoryName:t.name,filename:n}},je=(e,r)=>{const t=x.then(()=>ze(e,r));return x=t.then(()=>{},()=>{}),t},N=e=>{if(e.state==="running")for(const[r,t]of Object.entries(e.pipelineResults))T(t.name),delete e.pipelineResults[r];else e.state==="done"&&T(e.resultFile.name);return e};let b,te=0;const Me=6e4,O=new Map,nt=async e=>await O.get(e)??!0,it=(e,r=30*60*1e3)=>new Promise(t=>{let n=!1,s=!1,o=null;const a=setTimeout(()=>i("timeout"),r),i=l=>{s||(s=!0,clearTimeout(a),o==null||o(),o=null,t(l))};o=k.subscribe(l=>{const u=l[e];if(!u){n&&i("missing");return}n=!0,(u.state==="done"||u.state==="error")&&i(u.state)}),s&&(o==null||o(),o=null)}),k=we({},(e,r)=>{b=r}),Ae=e=>{if(!["queue.generic_error","queue.worker_didnt_start"].includes(e))return;const r=Date.now();r-te<Me||(te=r,ye({id:`queue-refresh-required-${r}`,type:"small",meowbalt:"error",title:y(H)("error.queue.refresh_required_title"),bodyText:y(H)("error.queue.refresh_required"),buttons:[{text:y(H)("button.gotit"),main:!0,action:()=>{}}]}))},C=(e,r)=>{b(t=>(t[e]&&(t[e]={...t[e],points:{...t[e].points,...r}}),t))},re=async e=>{const r=e.collectionMemory;!(r!=null&&r.collectionKey)||!(r!=null&&r.itemKey)||await Pe({collectionKey:r.collectionKey,title:r.title,sourceUrl:r.sourceUrl,items:[{itemKey:r.itemKey,url:r.itemUrl,title:r.itemTitle}]}).catch(()=>!1)},Be=async e=>{var a,i,l;const r=y(k)[e];if(!r)return;const t=(a=r.points)==null?void 0:a.holdId,n=((i=r.points)==null?void 0:i.required)??null,s=(l=r.points)==null?void 0:l.status;if(s==="finalized"||s==="released")return;if(!t&&s==="member"){console.log(`[queue] finalize skipped for member; marking memory id=${e}`),await re(r);return}if(!t&&n){console.warn("[queue] finalize skipped; missing holdId",{id:e,required:n});return}console.log(`[queue] finalizeQueueHold: start id=${e} holdId=${t??"none"} required=${n??"none"} status=${s??"none"}`);let o=t?await B(t,"queue_done",{queueId:e,itemId:e}):{ok:!0,status:"skipped"};!(o!=null&&o.ok)&&t&&(await new Promise(u=>setTimeout(u,500)),o=await B(t,"queue_done_retry",{queueId:e,itemId:e})),o!=null&&o.ok?(console.log(`[queue] finalizeQueueHold: success id=${e} holdId=${t??"none"} status=${o.status??"none"}`),C(e,{holdId:t,required:n,charged:o.charged??n??null,before:o.before??null,after:o.after??null,status:o.status??(t?"finalized":"skipped")}),await re(r)):(console.error(`[queue] finalizeQueueHold: failed id=${e} holdId=${t??"none"} result=`,o),C(e,{holdId:t,required:n,status:"error"}),t&&await E(t,"finalize_failed",{queueId:e,itemId:e,errorCode:"finalize_failed"}).catch(()=>!1))},Qe=async(e,r,t,n)=>{var i;const s=y(k)[e];if(!s)return console.log(`[queue] releaseQueueHold: item not found id=${e}`),!1;const o=(i=s.points)==null?void 0:i.holdId;if(!o)return console.log(`[queue] releaseQueueHold: no holdId for item id=${e}`),!0;console.log(`[queue] releaseQueueHold: calling API holdId=${o} reason=${r} itemId=${e} errorCode=${t??"none"}`);const a=await E(o,r,{queueId:e,itemId:e,errorCode:t,failureDiagnostic:n}).catch(l=>(console.error(`[queue] releaseQueueHold: API call failed holdId=${o} error=`,l),null));return a!=null&&a.ok?(console.log(`[queue] releaseQueueHold: success holdId=${o} status=${a.status}`),C(e,{holdId:o,status:a.status??"released"}),!0):(console.error(`[queue] releaseQueueHold: failed holdId=${o} result=`,a),C(e,{holdId:o,status:"error"}),!1)},me=(e,r)=>{var s,o;const t=(s=e.points)==null?void 0:s.holdId,n=(o=e.points)==null?void 0:o.status;!t||n==="finalized"||n==="released"||E(t,r,{queueId:e.id,itemId:e.id,errorCode:r}).catch(()=>!1)};function at(e){b(r=>{const t=r[e.id];return r[e.id]={...e,collectionMemory:e.collectionMemory??(t==null?void 0:t.collectionMemory),points:e.points??(t==null?void 0:t.points),batchSessionId:e.batchSessionId??(t==null?void 0:t.batchSessionId),batchSelectionTotal:e.batchSelectionTotal??(t==null?void 0:t.batchSelectionTotal),autoSave:e.autoSave??(t==null?void 0:t.autoSave)}
1,r}),_()}function g(e,r,t,n){console.log(`[queue] itemError: id=${e} workerId=${r} error=${t}`);let s=!1;if(b(a=>{var i,l,u;if(a[e]){const c=a[e],d=(i=c.points)==null?void 0:i.holdId;if(console.log(`[queue] itemError: item found, holdId=${d??"none"}`),(u=(l=c.fallback)==null?void 0:l.pipeline)!=null&&u.length&&!c.fallback.used)return a[e]=N(c),a[e]={...a[e],state:"waiting",pipeline:c.fallback.pipeline,fallback:{...c.fallback,used:!0,errorCode:t},errorCode:void 0},s=!0,a;a[e]=N(c),a[e]={...a[e],state:"error",errorCode:t,failureDiagnostic:n}}else console.log(`[queue] itemError: item NOT found in queue id=${e}`);return a}),Q(r),_(),s)return;Ae(t),console.log(`[queue] itemError: calling releaseQueueHold id=${e}`);const o=Qe(e,"queue_error",t,n);O.set(e,o),o.finally(()=>{O.get(e)===o&&O.delete(e)})}function Ke(e,r){b(t=>(t[e]&&(t[e]=N(t[e]),t[e]={...t[e],state:"done",resultFile:r}),t)),_(),D(e),Be(e),Ue(e,r)}const Ue=async(e,r)=>{var n;const t=y(k)[e];if((n=t==null?void 0:t.autoSave)!=null&&n.enabled){A(e,s=>({...s,autoSave:{enabled:!0,state:"saving"}}));try{const s=await je(r,t.filename);A(e,o=>({...o,saveRequested:!0,autoSave:{enabled:!0,state:"saved",directoryName:s.directoryName,filename:s.filename}})),await T(r.name),console.log(`[queue] auto-save completed id=${e} path=${s.directoryName}/${s.filename}`)}catch(s){const o=s instanceof DOMException?s.name:"UnknownError";A(e,a=>({...a,autoSave:{enabled:!0,state:"error",errorName:o}})),console.error(`[queue] auto-save failed id=${e}`,s)}}};function J(e,r,t){b(n=>{const s=n[e];return s&&s.state==="running"&&(s.pipelineResults[r]=t),n}),Q(r),_()}function De(e){b(r=>{const t=r[e];return t&&(t.state="running",t.pipelineResults??(t.pipelineResults={})),r}),_()}function lt(e){b(r=>{const t=r[e];t&&me(t,"queue_removed");for(const n of t.pipeline)Q(n.workerId);return N(t),D(e),delete r[e],r}),_()}function A(e,r){b(t=>{const n=t[e];return n&&(t[e]=r(n)),t}),_()}function ct(){const e=y(k);for(const r of Object.values(e))me(r,"queue_cleared"),D(r.id);b(()=>({})),Se(),be()}export{ct as a,at as b,z as c,it as d,je as e,B as f,rt as g,et as h,ot as i,tt as j,Pe as m,st as p,k as q,lt as r,de as s,A as u,nt as w};

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.