PageSourceSearch

https://paper2gal.com/assets/Login-e9WFT3CV.js

js paper2gal.com collected 2026-10-09 22:39:39 UTC 19,483 bytes, 1 lines download raw bytes

1import{r as d,j as e}from"./react-vendor-CHQL15iE.js";import{y as G,l as u,z as v,B as de,u as ce,T as pe}from"./main-Dck1T9BT.js";import{ae as me,an as ue,ao as fe,L as xe,ap as he,aq as V}from"./lucide-BFLOpGdB.js";import"./pdfjs-ji3DqnKJ.js";import"./markdown-W-rE_H7s.js";import"./katex-math-BxKHCrdI.js";const ge=de("AppleSignIn"),we=async x=>{const i=await x.json().catch(()=>({}));if(!x.ok||!(i!=null&&i.token)||!(i!=null&&i.user))throw new Error((i==null?void 0:i.error)||"Apple login failed");return i},ye=async()=>{if(G.isNativePlatform()&&G.getPlatform()==="ios"){const y=await ge.signIn(),j=await u("/api/auth/apple/native",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(v({...y}))});return we(j)}const x=await u("/api/auth/apple/url"),i=await x.json().catch(()=>({}));if(!x.ok||!(i!=null&&i.url))throw new Error((i==null?void 0:i.error)||"Apple login failed");return window.location.assign(i.url),null},Ce=({onBack:x,onRegister:i,onLoginSuccess:y,language:j})=>{const[a,_]=d.useState("password"),[m,k]=d.useState("form"),N=60,[f,U]=d.useState(""),[$,B]=d.useState(""),[S,c]=d.useState(!1),[O,l]=d.useState(null),[A,h]=d.useState(null),[R,D]=d.useState(""),[E,H]=d.useState(""),[g,P]=d.useState("request"),[z,Z]=d.useState(""),[C,w]=d.useState(0),[T,F]=d.useState(!1),[L,M]=d.useState(!1),[I,W]=d.useState(!1),o=pe[j],n=ce(),K=n?{WebkitOverflowScrolling:"touch"}:void 0;d.useEffect(()=>{if(C<=0)return;const r=setInterval(()=>{w(s=>s>0?s-1:0)},1e3);return()=>clearInterval(r)},[C]);const b=r=>{l(null),h(null),_(r),k("form"),P("request"),D("")},Q=async r=>{r.preventDefault(),c(!0),l(null);try{const s=await u("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(v({email:f,password:$}))}),t=await s.json();if(!s.ok){if((t==null?void 0:t.code)==="EMAIL_NOT_VERIFIED"){_("register"),k("verify"),l(o.emailNotVerified||t.error);return}throw new Error(t.error||o.loginFailed)}localStorage.setItem("p2g_token",t.token),y(t.user)}catch(s){l(s.message)}finally{c(!1)}},X=async r=>{r.preventDefault(),c(!0),l(null);try{const s=await u("/api/auth/register",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(v({email:f,password:$}))}),t=await s.json();if(!s.ok){if((t==null?void 0:t.code)==="EMAIL_CODE_RESEND_TOO_SOON"){k("verify"),w((t==null?void 0:t.retryAfter)??N),h(o.codeSent);return}throw new Error(t.error||o.registerFailed)}k("verify"),w(N),h(o.codeSent)}catch(s){l(s.message)}finally{c(!1)}},Y=async r=>{r.preventDefault(),c(!0),l(null);try{const s=await u("/api/auth/verify-code",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(v({email:f,code:E}))}),t=await s.json();if(!s.ok)throw new Error(t.error||o.verifyFailed);if(!(t!=null&&t.token)||!(t!=null&&t.user))throw new Error(t.error||o.verifyFailed);localStorage.setItem("p2g_token",t.token),y(t.user)}catch(s){l(s.message)}finally{c(!1)}},q=async r=>{r.preventDefault(),c(!0),l(null);try{const s=await u("/api/auth/login-otp/request",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:f})}),t=await s.json();if(!s.ok)throw(t==null?void 0:t.code)==="EMAIL_CODE_RESEND_TOO_SOON"&&(t!=null&&t.retryAfter)&&w(t.retryAfter),new Error(t.error||o.loginFailed);P("verify"),w(N),h(o.loginCodeSent||o.codeSent)}catch(s){l(s.message)}finally{c(!1)}},ee=async r=>{r.preventDefault(),c(!0),l(null);try{const s={email:f,code:E};g==="password"&&(s.password=z);const t=await u("/api/auth/login-otp/verify",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(v(s))}),p=await t.json();if(!t.ok)throw new Error(p.error||o.loginFailed);if((p==null?void 0:p.code)==="PASSWORD_REQUIRED"){P("password"),h(o.setPasswordHint||o.password);return}p!=null&&p.token&&(localStorage.setItem("p2g_token",p.token),y(p.user))}catch(s){l(s.message)}finally{c(!1)}},te=async r=>{F(!0),l(null);try{const s=await u("/api/auth/google",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(v({credential:r.credential}))}),t=await s.json();if(!s.ok)throw new Error(t.error||"Google login failed");localStorage.setItem("p2g_token",t.token),y(t.user)}catch(s){l(s.message)}finally{F(!1)}},se=async()=>{M(!0),l(null);try{const r=await u("/api/auth/watcha/url"),s=await r.json();if(!r.ok||!(s!=null&&s.url))throw new Error((s==null?void 0:s.error)||o.watchaLoginFailed||"Watcha login failed");window.location.href=s.url}catch(r){l(r.message||o.watchaLoginFailed||"Watcha login failed"),M(!1)}},oe=async()=>{W(!0),l(null);try{const r=await ye();if(!r)return;localStorage.setItem("p2g_token",r.token),y(r.user)}catch(r){l(r.message||o.appleLoginFailed||"Apple login failed"),W(!1)}},J=async r=>{r.preventDefault(),c(!0),l(null);try{const s=await u("/api/auth/forgot-password/request",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:f})}),t=await s.json();if(!s.ok)throw(t==null?void 0:t.code)==="EMAIL_CODE_RESEND_TOO_SOON"&&(t!=null&&t.retryAfter)&&w(t.retryAfter),new Error(t.error||o.loginFailed);k("verify"),w(N),h(o.resetCodeSent||o.codeSent)}catch(s){l(s.message)}finally{c(!1)}},re=async r=>{r.preventDefault(),c(!0),l(null);try{const s=await u("/api/auth/forgot-password/reset",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:f,code:E,newPassword:R})}
1),t=await s.json();if(!s.ok)throw new Error(t.error||o.loginFailed);h(o.resetSuccess),l(null),setTimeout(()=>{b("password")},2e3)}catch(s){l(s.message)}finally{c(!1)}},ae=async()=>{c(!0),l(null);try{const r=await u("/api/auth/resend-verify",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:f})}),s=await r.json();if(!r.ok)throw new Error(s.error||"Failed");w(N),h(o.resendSuccess)}catch(r){l(r.message)}finally{c(!1)}};d.useEffect(()=>{const r=()=>{const t={zh:"zh-CN",en:"en",ja:"ja",ru:"ru"};if(window.google){window.google.accounts.id.initialize({client_id:"1011186595764-plcfpofvl4h3k0o19njcp5carthucmc4.apps.googleusercontent.com",callback:te,locale:t[j]||"en"});const p=document.getElementById("google-login-btn");if(!p)return;p.innerHTML="";const ie=Math.max(180,Math.floor(p.clientWidth||p.getBoundingClientRect().width||260));window.google.accounts.id.renderButton(p,{theme:"outline",size:"large",width:ie,shape:"rectangular",text:"continue_with",logo_alignment:"left"})}},s=setTimeout(r,1e3);return window.addEventListener("resize",r),()=>{clearTimeout(s),window.removeEventListener("resize",r)}},[j]);const ne=a==="register"?m==="verify"?o.verifyCodeTitle:o.register:a==="otp"?g==="password"?o.setPassword:o.loginWithCode:a==="forgot"?m==="verify"?o.resetPassword:o.forgotPassword:o.login,le=a==="register"||a==="forgot"?ue:a==="otp"?fe:xe;return e.jsx("div",{className:`absolute inset-0 z-[100] flex justify-center bg-black/40 backdrop-blur-sm animate-fade-in font-sans overflow-y-auto overscroll-y-contain touch-pan-y ${n?"items-start p-1":"items-start md:items-center p-2 md:p-4"}`,onClick:x,children:e.jsxs("div",{className:`relative my-auto w-full bg-white/95 backdrop-blur-xl shadow-[0_20px_60px_rgba(0,0,0,0.3)] border-white ring-pink-100 flex flex-col ${n?"mobile-login-panel max-w-[680px] rounded-[16px] p-1.5 border-[2px] ring-1 max-h-[94%] overflow-y-auto custom-scrollbar touch-pan-y":"max-w-[340px] md:max-w-[460px] rounded-[16px] md:rounded-[32px] p-4 md:p-8 border-[2px] md:border-[6px] ring-2 md:ring-4 overflow-hidden"}`,style:K,onClick:r=>r.stopPropagation(),children:[e.jsx("div",{className:`${n?"hidden":"hidden md:block"} absolute top-0 left-0 w-full h-1.5 bg-gradient-to-r from-pink-300 via-rose-400 to-pink-300`}),e.jsxs("div",{className:`flex items-center justify-center ${n?"mb-1 mt-0.5 min-h-11":"mb-2 md:mb-4 mt-1"} relative z-10`,children:[e.jsx("button",{onClick:x,className:`absolute left-0 ${n?"h-11 w-11 p-1 flex items-center justify-center":"p-1.5"} bg-slate-50 hover:bg-pink-50 text-slate-400 hover:text-pink-500 rounded-full transition-all`,children:e.jsx(me,{className:"w-4 h-4 md:w-5 md:h-5",strokeWidth:3})}),e.jsxs("div",{className:"text-center",children:[!n&&e.jsx("div",{className:"hidden md:flex w-10 h-10 bg-pink-50 rounded-xl mx-auto mb-1 items-center justify-center text-pink-500 shadow-inner transform rotate-3",children:e.jsx(le,{size:20})}),e.jsx("h2",{className:`${n?"text-base":"text-lg md:text-2xl"} font-black text-slate-800 tracking-tight`,children:ne})]})]}),m==="form"&&a!=="otp"&&a!=="forgot"&&e.jsxs("div",{className:`bg-slate-100 flex gap-1 z-10 ${n?"mb-1.5 p-0.5 rounded-lg":"mb-2 md:mb-6 p-1 rounded-lg md:rounded-2xl"}`,children:[e.jsx("button",{type:"button",onClick:()=>b("password"),className:`flex-1 ${n?"min-h-11 py-1 text-xs":"py-1 md:py-2.5 text-[10px] md:text-sm"} rounded-md md:rounded-xl font-black transition-all ${a==="password"?"bg-white text-pink-600 shadow-sm md:shadow-md":"text-slate-400 hover:text-slate-600"}`,children:o.login}),e.jsx("button",{type:"button",onClick:()=>b("register"),className:`flex-1 ${n?"min-h-11 py-1 text-xs":"py-1 md:py-2.5 text-[10px] md:text-sm"} rounded-md md:rounded-xl font-black transition-all ${a==="register"?"bg-white text-pink-600 shadow-sm md:shadow-md":"text-slate-400 hover:text-slate-600"}`,children:o.register})]}),(O||A)&&e.jsxs("div",{className:`rounded-lg md:rounded-2xl font-bold border-2 text-center flex items-center justify-center gap-2 animate-fadeIn ${n?"mb-1.5 p-1.5 text-[10px]":"mb-2 md:mb-6 p-2 md:p-4 text-[10px] md:text-sm"} ${O?"bg-red-50 text-red-500 border-red-100":"bg-green-50 text-green-600 border-green-100"}`,children:[e.jsx("span",{className:`w-1 h-1 rounded-full inline-block ${O?"bg-red-500":"bg-green-500"}`}),O||A]}),e.jsx("div",{className:`flex-1 flex flex-col relative transition-all duration-500 ${n?"justify-start overflow-visible":"justify-center overflow-hidden"}`,children:e.jsxs("form",{onSubmit:a==="password"?Q:a==="register"?m==="verify"?Y:X:a==="forgot"?m==="verify"?re:J:g==="request"?q:ee,className:`${n?"mobile-login-form grid grid-cols-2 gap-x-2 gap-y-1":"space-y-2 md:space-y-4"} animate-fadeInUp`,children:[e.jsxs("div",{className:"space-y-1 transition-all",children:[e.jsx("label",{className:`${n?"text-[8px]":"text-[9px] md:text-[10px]"} font-black text-slate-400 uppercase tracking-wider ml-1`,children:o.email}),e.jsxs("div",{className:"relative group",children:[e.jsx(he,{className:"absolute left-3.5 md:left-4 top-1/2 -translate-y-1/2 text-slate-400 group-focus-within:text-pink-500 transition-colors w-4 h-4 md:w-[18px] md:h-[18px]",strokeWidth:2.5}),e.jsx("input",{type:a==="password"?"text":"email",autoComplete:a==="password"?"username":"email",value:f,onChange:r=>U(r.target.value),className:`w-full pl-10 md:pl-11 pr-4 ${n?"min-h-11 py-1 text-base":"py-2.5 md:py-3.5 text-sm"} bg-slate-50 border-2 border-slate-100 rounded-lg md:rounded-xl focus:border-pink-300 focus:bg-white focus:ring-4 focus:ring-pink-100 outline-none transition-all font-bold text-slate-700 placeholder:text-slate-300 ${n?"touch-pan-y":""}`,style:n?{touchAction:"pan-y"}:void 0,placeholder:o.emailPlaceholder,required:!0})]})]}),(a==="password"||a==="register")&&m==="form"&&e.jsxs("div",{className:"space-y-1 animate-fadeIn",children:[e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("label",{className:`${n?"text-[8px]":"text-[9px] md:text-[10px]"} font-black text-slate-400 uppercase tracking-wider ml-1`,children:o.password}),a==="password"&&e.jsx("button",{type:"button",onClick:()=>b("forgot"),className:`${n?"min-h-11 -my-2 pl-3 text-xs":"text-xs"} inline-flex items-center font-bold text-pink-400 hover:text-pink-500 transition-colors`,children:o.forgotPassword})]}),e.jsxs("div",{className:"relative group",children:[e.jsx(V,{className:"absolute left-3.5 md:left-4 top-1/2 -translate-y-1/2 text-slate-400 group-focus-within:text-pink-500 transition-colors w-4 h-4 md:w-[18px] md:h-[18px]",strokeWidth:2.5}),e.jsx("input",{type:"password",value:$,onChange:r=>B(r.target.value),className:`w-full pl-10 md:pl-11 pr-4 ${n?"min-h-11 py-1 text-base":"py-2.5 md:py-3.5 text-sm"} bg-slate-50 border-2 border-slate-100 rounded-lg md:rounded-xl focus:border-pink-300 focus:bg-white focus:ring-4 focus:ring-pink-100 outline-none transition-all font-bold text-slate-700 placeholder:text-slate-300 ${n?"touch-pan-y":""}`,style:n?{touchAction:"pan-y"}:void 0,placeholder:o.passwordPlaceholder,required:!0})]})]}),(a==="register"&&m==="verify"||a==="otp"&&(g==="verify"||g==="password")||a==="forgot"&&m==="verify")&&e.jsxs("div",{className:"space-y-1.5 animate-fadeIn",children:[e.jsx("label",{className:"text-[10px] font-black text-slate-400 uppercase tracking-wider ml-1",children:o.verifyCode}),e.jsx("input",{type:"text",inputMode:"numeric",pattern:"[0-9]{6}",maxLength:6,value:E,onChange:r=>H(r.target.value.replace(/\D/g,"").slice(0,6)),className:`w-full px-4 ${n?"py-2.5 text-base":"py-3 text-lg"} bg-slate-50 border-2 border-slate-100 rounded-xl focus:border-pink-300 focus:bg-white focus:ring-4 focus:ring-pink-100 outline-none transition-all font-black text-slate-700 tracking-[0.5em] text-center ${n?"touch-pan-y":""}`,style:n?{touchAction:"pan-y"}:void 0,placeholder:"••••••",required:!0})]}),(a==="forgot"&&m==="verify"||a==="otp"&&g==="password")&&e.jsxs("div",{className:"space-y-1.5 animate-fadeInUp",children:[e.jsx("label",{className:"text-[10px] font-black text-slate-400 uppercase tracking-wider ml-1",children:a==="forgot"?o.newPassword:o.setPassword}),e.jsxs("div",{className:"relative group",children:[e.jsx(V,{className:"absolute left-4 top-1/2 -translate-y-1/2 text-slate-400 group-focus-within:text-pink-500 transition-colors",size:18,strokeWidth:2.5}),e.jsx("input",{type:"password",value:a==="forgot"?R:z,onChange:r=>a==="forgot"?D(r.target.value):Z(r.target.value),className:`w-full pl-11 pr-4 py-3.5 bg-slate-50 border-2 border-slate-100 rounded-xl focus:border-pink-300 focus:bg-white focus:ring-4 focus:ring-pink-100 outline-none transition-all font-bold text-slate-700 ${n?"text-base touch-p
1an-y":"text-sm"}`,style:n?{touchAction:"pan-y"}:void 0,placeholder:a==="forgot"?o.newPasswordPlaceholder:"••••••••",required:!0})]})]}),e.jsx("button",{type:"submit",disabled:S,className:`w-full ${n?"min-h-11 py-1.5 text-xs mt-1":"py-2.5 md:py-4 text-sm md:text-base mt-1 md:mt-4"} bg-gradient-to-r from-rose-400 to-pink-600 hover:from-rose-500 hover:to-pink-700 text-white rounded-xl md:rounded-2xl font-black shadow-lg shadow-pink-200 hover:shadow-xl transition-all active:scale-95 flex items-center justify-center gap-2`,children:S?e.jsx("div",{className:"w-4 h-4 border-2 border-white/30 border-t-white rounded-full animate-spin"}):a==="register"?m==="verify"?o.verifyCode:o.register:a==="forgot"?m==="verify"?o.resetPassword:o.sendResetCode||"Send Reset Code":a==="otp"&&g==="request"?o.sendLoginCode||"Send Code":o.login}),e.jsxs("div",{className:"pt-1 text-center flex flex-col gap-1",children:[(a==="register"&&m==="verify"||a==="otp"&&g!=="request"||a==="forgot"&&m==="verify")&&e.jsx("button",{type:"button",onClick:a==="register"?ae:a==="forgot"?J:q,disabled:S||C>0,className:"text-slate-400 hover:text-pink-500 font-bold text-xs transition-colors disabled:opacity-50",children:C>0?`${o.resendVerify} (${C}s)`:o.resendVerify}),a==="password"&&e.jsx("button",{type:"button",onClick:()=>b("otp"),className:"min-h-11 inline-flex items-center justify-center text-pink-500 hover:text-pink-600 text-xs font-black underline decoration-2 underline-offset-4",children:o.loginWithCode||"邮箱验证码登录"}),a!=="password"&&e.jsx("button",{type:"button",onClick:()=>b("password"),className:"min-h-11 inline-flex items-center justify-center text-slate-400 hover:text-slate-600 text-xs font-black",children:o.backToLogin||"返回密码登录"})]}),a!=="otp"&&m==="form"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:`relative ${n?"mobile-login-wide py-0 -mt-1":"py-1 md:py-4"} flex items-center gap-3`,children:[e.jsx("div",{className:"flex-1 h-px bg-slate-100"}),e.jsx("span",{className:"text-[8px] md:text-[10px] font-black text-slate-300 uppercase tracking-widest px-2",children:"OR"}),e.jsx("div",{className:"flex-1 h-px bg-slate-100"})]}),e.jsxs("button",{type:"button",onClick:se,disabled:S||T||L||I,className:`relative w-full ${n?"mobile-login-social min-h-11 py-2 text-xs mt-0":"py-2.5 md:py-3 text-sm md:text-base mt-2"} bg-white border-2 border-slate-200 hover:border-pink-300 text-slate-700 rounded-xl md:rounded-2xl font-black shadow-sm hover:shadow-md transition-all active:scale-95 flex items-center justify-center disabled:opacity-60`,children:[e.jsx("span",{className:`absolute ${n?"left-2.5":"left-3.5"} top-1/2 -translate-y-1/2 flex items-center`,children:L?e.jsx("div",{className:"w-5 h-5 border-2 border-slate-300 border-t-slate-600 rounded-full animate-spin"}):e.jsx("img",{src:"https://assert.paper2gal.com/assert/1752064513_guan-cha-insights.webp",alt:"观猹",className:"w-5 h-5 md:w-6 md:h-6 rounded-md object-cover",loading:"lazy",referrerPolicy:"no-referrer"})}),e.jsx("span",{children:o.watchaLogin||"观猹登录"})]}),e.jsxs("button",{type:"button",onClick:oe,disabled:S||T||L||I,className:`relative w-full ${n?"mobile-login-social min-h-11 py-2 text-xs mt-0":"py-2.5 md:py-3 text-sm md:text-base mt-2"} bg-black hover:bg-slate-900 text-white rounded-xl md:rounded-2xl font-black shadow-sm hover:shadow-md transition-all active:scale-95 flex items-center justify-center disabled:opacity-60`,children:[e.jsx("span",{className:`absolute ${n?"left-2.5":"left-3.5"} top-1/2 -translate-y-1/2 flex items-center`,children:I?e.jsx("div",{className:"w-5 h-5 border-2 border-white/30 border-t-white rounded-full animate-spin"}):e.jsx("svg",{viewBox:"0 0 24 24","aria-hidden":"true",className:"w-5 h-5 md:w-6 md:h-6 fill-current",children:e.jsx("path",{d:"M12.15 6.9c-.95 0-2.42-1.08-3.96-1.04-2.04.03-3.91 1.18-4.96 3.01-2.12 3.68-.55 9.1 1.52 12.09 1.01 1.45 2.21 3.09 3.79 3.04 1.52-.07 2.09-.97 3.94-.97 1.83 0 2.34.97 3.94.93 1.62-.03 2.65-1.47 3.64-2.93 1.17-1.69 1.65-3.32 1.68-3.42-.04-.01-3.17-1.21-3.21-4.82-.03-3.02 2.47-4.45 2.59-4.52-1.43-2.1-3.62-2.34-4.4-2.39-2.03-.16-3.73 1.1-4.51 1.1Zm3.29-3.01C16.26 2.91 16.8 1.55 16.71.18c-1.18.05-2.61.78-3.45 1.77-.75.87-1.42 2.26-1.31 3.6 1.31.1 2.68-.66 3.49-1.66Z"})})}),e.jsx("span",{children:o.appleLogin||"使用 Apple 登录"})]}),e.jsx("div",{className:`relative ${n?"mobile-login-wide min-h-11":"min-h-[36px] md:min-
1h-[44px]"}`,children:e.jsxs("div",{className:`group relative border-2 border-slate-200 rounded-xl md:rounded-2xl transition-all hover:border-pink-300 hover:shadow-sm ${n?"h-[44px]":"h-[48px] mt-2"}`,children:[T&&e.jsx("div",{className:"absolute inset-0 z-30 bg-white/50 backdrop-blur-[1px] flex items-center justify-center rounded-xl md:rounded-2xl",children:e.jsx("div",{className:"w-4 h-4 border-2 border-pink-500/30 border-t-pink-500 rounded-full animate-spin"})}),e.jsx("div",{id:"google-login-btn",className:"absolute inset-0 z-20 w-full h-full opacity-[0.01]"}),e.jsxs("div",{className:"pointer-events-none absolute inset-0 z-10 flex items-center justify-center gap-3 bg-white rounded-xl md:rounded-2xl shadow-sm px-4",children:[e.jsx("img",{src:"https://www.gstatic.com/firebasejs/ui/2.0.0/images/auth/google.svg",alt:"Google",className:"w-5 h-5"}),e.jsx("span",{className:`${n?"text-xs":"text-sm md:text-base"} font-black text-slate-700`,children:"使用 Google 登录"})]})]})})]})]})})]})})};export{Ce 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.