PageSourceSearch

https://naemo.ai/_next/static/chunks/1658.b0e8dda2c7b10adf.js

js naemo.ai collected 2026-10-02 01:14:00 UTC 18,911 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1658],{32660:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(79205).Z)("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]])},21047:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(79205).Z)("Minus",[["path",{d:"M5 12h14",key:"1ays0h"}]])},53834:function(e,t,n){n.d(t,{W:function(){return l}});var r=n(57437),a=n(29),s=n.n(a),i=n(93448),o=n(43232);let l=e=>{let{size:t=32,speed:n=1.5,className:a="",withPulse:l=!1}=e;return(0,r.jsxs)("div",{style:{animation:"spin ".concat(n,"s linear infinite").concat(l?", pulse 2s ease-in-out infinite":"")},className:"jsx-ba9b38e61bef3f8b "+((0,i.cn)("brand-logo-loader inline-flex items-center justify-center",a)||""),children:[(0,r.jsx)(o.O,{size:t}),(0,r.jsx)(s(),{id:"ba9b38e61bef3f8b",children:"@-webkit-keyframes spin{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes spin{from{-moz-transform:rotate(0deg);transform:rotate(0deg)}to{-moz-transform:rotate(360deg);transform:rotate(360deg)}}@-o-keyframes spin{from{-o-transform:rotate(0deg);transform:rotate(0deg)}to{-o-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spin{from{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}@-moz-keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}@-o-keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}"})]})}},61658:function(e,t,n){n.r(t),n.d(t,{default:function(){return S}});var r=n(57437),a=n(98907),s=n(2265),i=n(27526),o=n(32489),l=n(32660),c=n(21047),d=n(99397),m=n(30401),x=n(82023),u=n(76865),f=n(53834),b=n(93448),h=n(91455),p=n(98319),N=n(48313),g=n(83008),j=n(67920),z=n(76919),v=n(93292),k=n(40257);
1let y="live_ck_4yKeq5bgrpWgyX6jdZjZVGX0lzW6",w=k.env.NEXT_PUBLIC_TOSS_BILLING_CLIENT_KEY||y,I="true"===k.env.NEXT_PUBLIC_TOSS_TRANSFER_ENABLED;function S(){var e;let[t,n]=(0,s.useState)("ONETIME"),[k,S]=(0,s.useState)("CARD"),[C,E]=(0,s.useState)(1),[T,O]=(0,s.useState)(1),[P,R]=(0,s.useState)(!1),[A,U]=(0,s.useState)(!1),[B,M]=(0,s.useState)(!1),[_,Z]=(0,s.useState)(""),{data:L}=(0,i.kP)(),{showToast:F}=(0,p.pm)(),D=(0,j.XC)(),{unitPrice:X,error:K}=(0,z.V)(null==L?void 0:null===(e=L.user)||void 0===e?void 0:e.id),[W,q]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let e=(0,a.zN)(a._l);e&&(E((0,a.IL)(e.durationMonths)),O((0,a.IL)(e.userCount)),n((0,a.Kl)(e.paymentType)),S(I&&"TRANSFER"===e.oneTimeMethod?"TRANSFER":"CARD")),q(!0)},[]),(0,s.useEffect)(()=>{W&&(0,a.$L)(a._l,{durationMonths:C,userCount:T,paymentType:t,oneTimeMethod:k})},[W,C,T,t,k]),(0,s.useEffect)(()=>{(!a.As||T>=2)&&"ONETIME"!==t&&n("ONETIME")},[T,t]),(0,s.useEffect)(()=>{(async()=>{let e=await (0,g.X)("getCurrentSchool",{},D);if(e.success&&e.data){let t=e.data.role;t&&"SCHOOL_ADMIN"!==t&&(M(!0),Z(e.data.name||""))}})()},[D]);let H="SUBSCRIPTION"===t||null!==X,V="SUBSCRIPTION"===t?v.XU:null!=X?X:0,G="SUBSCRIPTION"===t?1:C,J="SUBSCRIPTION"===t?0:(0,v.d5)(C),$="SUBSCRIPTION"===t?1:(0,v.ES)(C),Y=T*V*G,Q=T*V*J,ee=T*V*$,et=e=>H?"₩".concat(e.toLocaleString()):"확인 중";(0,s.useEffect)(()=>{if(window.TossPayments)R(!0);else{let e=document.createElement("script");e.src="https://js.tosspayments.com/v2/standard",e.async=!0,e.onload=()=>{R(!0)},e.onerror=()=>{console.error("Failed to load Toss Payments SDK"),F("결제 시스템을 불러오는데 실패했습니다.","error")},document.head.appendChild(e)}},[F]);let en=()=>{window.dispatchEvent(new CustomEvent("navigate-view",{detail:"plans"}))},er=(0,s.useCallback)(()=>{let e=Date.now(),t=Math.random().toString(36).substring(2,8).toUpperCase();return"NAEMO-".concat(e,"-").concat(t)},[]),ea=async()=>{if(!H){F("결제 금액을 확인하지 못했습니다. 잠시 후 다시 시도해 주세요.","error");return}if(!y){F("결제 시스템이 설정되지 않았습니다.","error");return}if(!P||!window.TossPayments){F("결제 시스템을 불러오는 중입니다. 잠시 후 다시 시도해 주세요.","info");return}U(!0);try{var e;let n="SUBSCRIPTION"===t?w:y,r=window.TossPayments(n),a=(null==L?void 0:null===(e=L.user)||void 0===e?void 0:e.id)?"customer-".concat(L.user.id):"customer-".concat(Date.now()),s=r.payment({customerKey:a}),i=window.location.origin;if("SUBSCRIPTION"===t){await s.requestBillingAuth({method:"CARD",successUrl:"".concat(i,"/payment/success?type=billing-auth&userCount=").concat(T,"&customerKey=").concat(a),failUrl:"".concat(i,"/payment/fail")});return}{let e=er(),n="내모 학교 플랜 (".concat(T,"명, ").concat(C,"개월)");await s.requestPayment({method:I?k:"CARD",amount:{currency:"KRW",value:ee},orderId:e,orderName:n,successUrl:"".concat(i,"/payment/success?userCount=").concat(T,"&durationMonths=").concat(G,"&paymentType=").concat(t),failUrl:"".concat(i,"/payment/fail")})}}catch(e){console.error("Payment request error:",e),(null==e?void 0:e.code)!=="USER_CANCEL"&&F((null==e?void 0:e.message)||"결제 요청 중 오류가 발생했습니다.","error")}finally{U(!1)}};return(0,r.jsx)(N.Z,{children:(0,r.jsxs)("div",{className:"fixed inset-0 z-[99999] bg-white dark:bg-[#09090b] text-zinc-900 dark:text-zinc-100 flex flex-col overflow-hidden",children:[(0,r.jsx)("button",{"aria-label":"닫기",onClick:()=>{window.dispatchEvent(new CustomEvent("navigate-view",{detail:"dashboard"}))},className:"absolute top-6 right-6 z-[100000] p-2 text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-200 hover:bg-zinc-100 dark:hover:bg-zinc-800 rounded-full transition",children:(0,r.jsx)(o.Z,{size:24})}),(0,r.jsxs)("div",{className:"flex-1 min-h-0 flex flex-col md:flex-row overflow-y-auto md:overflow-hidden pb-36 md:pb-0",children:[(0,r.jsx)("div",{className:"md:flex-1 min-w-0 md:overflow-y-auto px-5 pt-16 pb-8 md:px-12 md:py-16 lg:px-24",children:(0,r.jsxs)("div",{className:"max-w-xl mx-auto",children:[(0,r.jsxs)("button",{onClick:en,className:"flex items-center gap-2 text-zinc-500 hover:text-zinc-800 dark:hover:text-zinc-200 transition-colors mb-6 md:mb-12 text-sm font-medium",children:[(0,r.jsx)(l.Z,{size:16}),"돌아가기"]}),(0,r.jsx)("h1",{className:"text-2xl md:text-3xl font-bold mb-6 md:mb-12",children:"이용 플랜 설정하기"}),(0,r.jsxs)("div",{className:"space-y-6 md:space-y-12",children:[a.As&&(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"block text-sm font-bold mb-4",children:"결제 방식"}),(0,r.jsx)(h.s,{value:t,onChange:n,"aria-label":"결제 방식",equalWidth:!0,className:"p-1 bg-zinc-100 dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-2xl w-full max-w-sm",itemClassName:"py-3 px-4 roun
1ded-xl text-sm font-bold",activeItemClassName:"text-zinc-900 dark:text-blue-400",inactiveItemClassName:"text-zinc-500 hover:text-zinc-700 dark:hover:text-zinc-300",indicatorClassName:"bg-white dark:bg-zinc-800 rounded-xl shadow-sm",options:[{key:"ONETIME",label:"일시불"},...T<2?[{key:"SUBSCRIPTION",label:"정기 구독"}]:[]]}),(0,r.jsx)("p",{className:"text-xs text-zinc-500 mt-4 leading-relaxed",children:T>=2?"단체 구매는 일시불만 지원합니다.":"ONETIME"===t?"원하시는 기간만큼 미리 결제하고 사용합니다.":"매월 자동으로 결제되며 결제한 만큼 사용 기간이 연장됩니다."})]}),"ONETIME"===t&&I&&(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"block text-sm font-bold mb-4",children:"결제 수단"}),(0,r.jsx)(h.s,{value:k,onChange:S,"aria-label":"결제 수단",equalWidth:!0,className:"p-1 bg-zinc-100 dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-2xl w-full max-w-sm",itemClassName:"py-3 px-4 rounded-xl text-sm font-bold",activeItemClassName:"text-zinc-900 dark:text-blue-400",inactiveItemClassName:"text-zinc-500 hover:text-zinc-700 dark:hover:text-zinc-300",indicatorClassName:"bg-white dark:bg-zinc-800 rounded-xl shadow-sm",options:[{key:"CARD",label:"카드"},{key:"TRANSFER",label:"계좌이체"}]})]}),"ONETIME"===t&&(0,r.jsxs)("div",{className:"animate-in fade-in slide-in-from-top-2 duration-300",children:[(0,r.jsx)("label",{htmlFor:"checkout-duration-months",className:"block text-sm font-bold mb-4",children:"이용 기간 (개월)"}),(0,r.jsxs)("div",{className:"flex items-center gap-4",children:[(0,r.jsxs)("div",{className:"flex-1 relative bg-zinc-50 dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-xl px-4 py-3 flex items-center",children:[(0,r.jsx)("input",{id:"checkout-duration-months",type:"number",min:1,value:C,onChange:e=>{let t=parseInt(e.target.value);!isNaN(t)&&t>=1?E(t):""===e.target.value&&E(1)},onBlur:e=>{let t=parseInt(e.target.value);E(isNaN(t)||t<1?1:t)},className:"w-16 bg-transparent text-lg font-medium outline-none [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none"}),(0,r.jsx)("span",{className:"text-lg font-medium text-zinc-500",children:"개월"})]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)("button",{"aria-label":"이용 기간 줄이기",onClick:()=>E(e=>Math.max(1,e-1)),className:"w-12 h-12 flex items-center justify-center border border-zinc-200 dark:border-zinc-800 rounded-xl hover:bg-zinc-50 dark:hover:bg-zinc-800 transition-colors",children:(0,r.jsx)(c.Z,{size:20})}),(0,r.jsx)("button",{"aria-label":"이용 기간 늘리기",onClick:()=>E(e=>e+1),className:"w-12 h-12 flex items-center justify-center border border-zinc-200 dark:border-zinc-800 rounded-xl hover:bg-zinc-50 dark:hover:bg-zinc-800 transition-colors",children:(0,r.jsx)(d.Z,{size:20})})]})]}),(0,r.jsx)("p",{className:(0,b.cn)("text-xs mt-4 leading-relaxed flex items-center gap-1",J>0?"text-emerald-600 dark:text-emerald-400 font-medium":"text-zinc-500"),children:J>0?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(m.Z,{size:13,className:"shrink-0"}),J,"개월치 요금이 할인됐어요"]}):"12개월을 선택하면 10개월 요금으로 할인됩니다."}),(0,v.Hi)(C)>0?(0,r.jsxs)("div",{className:"mt-3 flex items-start gap-2 rounded-xl bg-zinc-50 dark:bg-zinc-800/50 border border-zinc-200 dark:border-zinc-700/50 px-3 py-2.5",children:[(0,r.jsx)(x.Z,{size:14,className:"text-zinc-400 dark:text-zinc-500 shrink-0 mt-0.5"}),(0,r.jsx)("p",{className:"text-[12.5px] text-zinc-600 dark:text-zinc-300 leading-relaxed",children:T>=2?(0,r.jsxs)(r.Fragment,{children:["코드를 등록하는 선생님마다 AI 크레딧 ",(0,r.jsxs)("span",{className:"font-bold text-zinc-900 dark:text-white",children:[(0,v.Hi)(C),"개"]}),"가 지급됩니다."]}):(0,r.jsxs)(r.Fragment,{children:["AI 작성에 쓰는 크레딧 ",(0,r.jsxs)("span",{className:"font-bold text-zinc-900 dark:text-white",children:[(0,v.Hi)(C),"개"]}),"를 함께 드려요."]})})]}):(0,r.jsx)("p",{className:"text-[12px] mt-2 text-zinc-400 dark:text-zinc-500 leading-relaxed",children:"6개월 이상 결제 시 AI 크레딧 100개, 12개월 이상 200개를 드려요."})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:"checkout-user-count",className:"block text-sm font-bold mb-4",children:"사용자 수"}),(0,r.jsxs)("div",{className:"flex items-center gap-4",children:[(0,r.jsxs)("div",{className:"flex-1 relative bg-zinc-50 dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-xl px-4 py-3 flex items-center",children:[(0,r.jsx)("input",{id:"checkout-user-count",type:"number",min:1,value:T,onChange:e=>{let t=parseInt(e.target.value);!isNaN(t)&&t>=1?O(t):""===e.target.value&&O(1)},onBlur:e=>{let t=parseInt(e.target.value);O(isNaN(t)||t<1?1:t)},className:"w-16 bg-transparent text-lg font-medium outline-none [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none"}),(0,r.jsx)("span",{className:"text-lg font-medium text-zinc-500",children:"명"})]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)("button",{"aria-label":"사용자 수 줄이기",onClick:()=>O(e=>Math.max(1,e-1)),className:"w-12 h-12 flex items-center justify-center border border-zinc-200 dark:border-zinc-800 rounded-xl hover:bg-zinc-50 dark:hover:bg-zinc-800 transition-colors",children:(0,r.jsx)(c.Z,{size:20})}),(0,r.jsx)("button",{"aria-label":"사용자 수 늘리기",onClick:()=>O(e=>e+1),className:"w-12 h-12 flex items-center justify-center border border-zinc-200 dark:border-zinc-800 rounded-xl hover:bg-zinc-50 dark:hover:bg-zinc-800 transition-colors",children:(0,r.jsx)(d.Z,{size:20})})]})]}),(0,r.jsx)("p",{className:"text-xs text-zinc-500 mt-4 leading-relaxed",children:"이용하실 사용자 수를 선택해 주세요."})]})]})]})}),(0,r.jsx)("div",{className:"w-full md:w-[38%] lg:w-[450px] shrink-0 border-t md:border-t-0 md:border-l border-zinc-100 dark:border-zinc-800 px-5 py-6 md:px-8 md:py-16 bg-[#fcfcfc] dark:bg-[#0c0c0e] md:overflow-y-auto",children:(0,r.jsxs)("div",{className:"min-h-full flex flex-col",children:[(0,r.jsx)("h2",{className:"text-xl font-bold mb-10",children:"요약"}),(0,r.jsxs)("div",{className:"space-y-8 flex-1",children:[(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)("div",{className:"flex justify-between items-start",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("p",{className:"font-semibold text-zinc-900 dark:text-white text-[15px]",children:["내모 프로 플랜 ","SUBSCRIPTION"===t&&"(구독)"]}),(0,r.jsxs)("p",{className:"text-zinc-500 text-[13px] mt-1",children:[T,"명 \xd7 ","SUBSCRIPTION"===t?"ë§
1¤ì›” 결제":"".concat(C,"개월")]})]}),(0,r.jsx)("p",{className:"font-semibold text-zinc-900 dark:text-white",children:et(Y)})]}),(0,r.jsxs)("div",{className:"flex justify-between items-center text-[13px] text-zinc-500",children:[(0,r.jsx)("p",{children:"1인당 월 요금"}),(0,r.jsx)("p",{children:et(V)})]}),Q>0&&(0,r.jsxs)("div",{className:"flex justify-between items-center text-[13px] text-zinc-500",children:[(0,r.jsxs)("p",{children:["장기 이용 할인 (",J,"개월)"]}),(0,r.jsxs)("p",{children:["−",et(Q)]})]})]}),(0,r.jsxs)("div",{className:"pt-8 border-t border-zinc-200 dark:border-zinc-800",children:[(0,r.jsxs)("div",{className:"flex justify-between items-baseline mb-2",children:[(0,r.jsx)("p",{className:"text-lg font-bold",children:"SUBSCRIPTION"===t?"매월 결제 금액":"총 결제 금액"}),(0,r.jsx)("p",{className:"text-2xl font-bold text-zinc-900 dark:text-white",children:et(ee)})]}),"ONETIME"===t&&K&&(0,r.jsx)("p",{className:"text-xs text-red-600 mt-2",children:"요금을 불러오지 못했습니다. 페이지를 새로고침해 주세요."}),(0,r.jsx)("p",{className:"text-[12px] text-zinc-500 leading-relaxed",children:"SUBSCRIPTION"===t?"구독 시작 시 첫 달 요금이 즉시 결제되며, 이후 매월 동일한 금액이 자동 결제됩니다.":"선택하신 인원과 기간에 따라 산출된 총 금액입니다."})]})]}),(0,r.jsxs)("div",{className:"space-y-3 mt-6",children:[T>=2&&(0,r.jsxs)("p",{className:"text-xs text-zinc-500 text-center leading-relaxed",children:["결제 후 이용권 코드 ",T,"개가 발급됩니다."]}),B&&(0,r.jsx)("div",{className:"p-4 bg-amber-50 dark:bg-amber-900/20 border border-amber-200 dark:border-amber-800 rounded-xl",children:(0,r.jsxs)("div",{className:"flex gap-3",children:[(0,r.jsx)(u.Z,{className:"w-5 h-5 text-amber-600 dark:text-amber-400 flex-shrink-0 mt-0.5"}),(0,r.jsxs)("div",{className:"text-sm",children:[(0,r.jsx)("p",{className:"font-medium text-amber-800 dark:text-amber-200 mb-1",children:"이미 다른 학교에 소속되어 있습니다"}),(0,r.jsxs)("p",{className:"text-amber-700 dark:text-amber-300",children:[_?'현재 "'.concat(_,'"에 소속되어 있습니다. '):"","새로운 프로 플랜을 결제하려면 먼저 기존 학교 연동을 해제해 주세요."]})]})]})}),(0,r.jsxs)("div",{className:"fixed md:static inset-x-0 bottom-0 z-20 border-t md:border-0 border-zinc-200 dark:border-zinc-800 bg-white dark:bg-[#0c0c0e] p-4 md:p-0 pb-[max(1rem,env(safe-area-inset-bottom))]",children:[(0,r.jsxs)("p",{className:"md:hidden mb-3 flex justify-between text-sm font-semibold",children:[(0,r.jsx)("span",{children:"SUBSCRIPTION"===t?"매월 결제 금액":"총 결제 금액"}),(0,r.jsx)("span",{children:et(ee)})]}),(0,r.jsx)("button",{type:"button",disabled:A||B||!H,onClick:ea,className:(0,b.cn)("btn-primary-solid w-full py-4 rounded-xl font-bold transition-colors duration-150 shadow-lg flex items-center justify-center gap-2 select-none outline-none",A||B||!H?"cursor-not-allowed pointer-events-none":"cursor-pointer"),children:A?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(f.W,{size:20}),"처리 중..."]}):H?"결제하기":"요금 확인 중..."})]}),(0,r.jsx)("button",{onClick:en,className:"w-full py-3.5 text-zinc-500 hover:text-zinc-800 dark:hover:text-zinc-200 font-medium transition-colors text-[14px]",children:"취소"})]})]})})]})]})})}},76919:function(e,t,n){n.d(t,{V:function(){return a}});var r=n(2265);function a(e){let[t,n]=(0,r.useState)(null),[a,s]=(0,r.useState)(null);return(0,r.useEffect)(()=>{if(!e){n(null),s(null);return}let t=new AbortController;return s(null),fetch("/api/payments/one-time-price",{cache:"no-store",signal:t.signal}).then(async t=>{if(!t.ok)throw Error("Failed to load one-time price");let r=await t.json();if(!Number.isSafeInteger(r.unitPrice)||r.unitPrice<=0)throw Error("Invalid one-time price");n({userId:e,unitPrice:r.unitPrice})}).catch(t=>{"AbortError"!==t.name&&s(e)}),()=>t.abort()},[e]),{unitPrice:t&&t.userId===e?t.unitPrice:null,error:a===e}}},98907:function(e,t,n){n.d(t,{$L:function(){return d},As:function(){return s},IL:function(){return o},Kl:function(){return i},_8:function(){return a},_l:function(){return r},gA:function(){return l},zN:function(){return c}});let r="naemo-checkout-draft",a="naemo-credit-draft",s=!1;function i(e){return s&&"SUBSCRIPTION"===e?"SUBSCRIPTION":"ONETIME"}function o(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return"number"==typeof e&&Number.isSafeInteger(e)&&e>0?e:t}function l(e){return"string"==typeof e&&["evaluation-record","behavior-record","activity"].includes(e)?e:"evaluation-record"}function c(e){try{let t=JSON.parse(sessionStorage.getItem(e)||"null");return t&&"object"==typeof t&&!Array.isArray(t)?t:null}catch(e){return null}}function d(e,t){try{sessionStorage.setItem(e,JSON.stringify(t))}catch(e){}}},93292:function(e,t,n){n.d(t,{ES:function(){return s},Hi:function(){return o},NN:function(){return i},XU:function(){return r},d5:function(){return a}});let r=4900;function a(e){return!Number.isFinite(e)||e<1?0:2*Math.floor(e/12)}function s(e){return e-a(e)}function i(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:r;return e*n*s(t)}function o(e){return e>=12?200:e>=6?100:0}}}]);

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.