1!function(){try{var e="u">typeof window?window:"u">typeof global?global:"u">typeof globalThis?globalThis:"u">typeof self?self:{},r=(new e.Error).stack;r&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[r]="d8481ab6-d94d-4301-b64f-6c7014da546f",e._sentryDebugIdIdentifier="sentry-dbid-d8481ab6-d94d-4301-b64f-6c7014da546f")}catch(e){}}();"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[12858],{7837:(e,r,t)=>{t.d(r,{Pq:()=>n,_l:()=>a,d0:()=>i});let i=24;function n(e){return Array.from(e).length>i}function a(e){let r=Array.from(e);return r.length>i?r.slice(0,i-1).join("").trimEnd()+"â¦":e}},37411:(e,r,t)=>{async function i(e){return Array.from(new Uint8Array(await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e)))).map(e=>e.toString(16).padStart(2,"0")).join("")}async function n(){let e=crypto.randomUUID();return{raw:e,hashed:await i(e)}}t.d(r,{y:()=>n})},51336:(e,r,t)=>{function i(e){try{let r="string"==typeof e?.message?e.message.toLowerCase():"",t=(e?.code||"").toString().toLowerCase(),i="number"==typeof e?.status?e.status:void 0;if(r.includes("timeout")||r.includes("timed out")||r.includes("failed to fetch")||r.includes("fetch failed")||r.includes("load failed")||r.includes("network")||"ecnnreset"===t||"econnreset"===t||"etimedout"===t||"number"==typeof i&&i>=500||["500","502","503","504"].includes(t))return!0}catch{}return!1}async function n(e){let r,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:300;for(let a=0;a<=t;a++)try{return await e()}catch(e){if(r=e,!i(e)||a===t)throw e;await function(e){return new Promise(r=>setTimeout(r,e))}(n*Math.pow(2,a))}throw r}async function a(e){let r,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3e4;try{return await Promise.race([Promise.resolve(e),new Promise((e,i)=>{r=setTimeout(()=>i(Error("Request timeout")),t)})])}finally{void 0!==r&&clearTimeout(r)}}async function o(e){let r,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:12e3;try{return await Promise.race([Promise.resolve(e),new Promise((e,i)=>{r=setTimeout(()=>i(Error("Authentication request timeout - please check your connection")),t)})])}catch(e){throw e instanceof Error&&e.message.includes("timeout"),e}finally{void 0!==r&&clearTimeout(r)}}async function u(e,r){let t=r?.timeoutMs??3e4;return n(()=>a(e(),t),r?.retries??2)}async function l(e,r){let t=r?.timeoutMs??12e3;return n(()=>o(e(),t),r?.retries??1)}t.d(r,{Nj:()=>u,bD:()=>n,bV:()=>i,jl:()=>l,wj:()=>a})},92285:(e,r,t)=>{t.d(r,{M_:()=>i,O:()=>g,R:()=>d,W4:()=>s,aj:()=>n,gh:()=>a,hE:()=>p,p:()=>x,q4:()=>c,vi:()=>l});let i={correctAnswer:10,incorrectAnswer:0,streakBonus:5,grammarPointMastered:25,dailyGoalMet:25,weeklyGoalBasePerDay:30,perfectReview:20,conjugationCorrect:1,vocabularyMastered:5,listeningMastered:6,idiomMeaningCorrect:1,idiomSentenceCorrect:3};function n(e,r){return r?`${e}_manual`:e}let a={white:{requiredExp:0,maxStripes:4},blue:{requiredExp:12e3,maxStripes:4},purple:{requiredExp:36e3,maxStripes:4},brown:{requiredExp:72e3,maxStripes:4},black:{requiredExp:144e3,maxStripes:6},coral:{requiredExp:288e3,maxStripes:6},red:{requiredExp:576e3,maxStripes:6}},o=["white","blue","purple","brown","black","coral","red"];function u(e){return 10*o.indexOf(e.rank)+e.stripe}function l(e){let r,t=Math.max(0,Math.trunc(e)),i="white";for(let e=o.length-1;e>=0;e-=1){let r=o[e];if(t>=a[r].requiredExp){i=r;break}}let n=o.indexOf(i),u=a[i],l=o[n+1];if(l){let e=(a[l].requiredExp-u.requiredExp)/(u.maxStripes+1);r=Math.min(u.maxStripes,Math.floor((t-u.requiredExp)/e))}else r=u.maxStripes;return{rank:i,stripe:r,experience:0,requiredExperience:u.requiredExp}}let s=(e,r)=>{if(!e)return{type:"stripe",expNeeded:0};let t=e.rank,i=e.stripe,n=r||e.experience,o=a[t],u=o.maxStripes;if(i<u){let e=c(t);if(e){let r=a[e].requiredExp,t=o.requiredExp,l=t+(r-t)/(u+1)*(i+1);return n>=l?{type:"stripe",expNeeded:0}:{type:"stripe",expNeeded:l-n}}}let l=c(t);if(l){let e=a[l].requiredExp;if(!(n>=e))return{type:"rank",expNeeded:e-n}}return{type:"rank",expNeeded:0}},c=e=>{let r=o.indexOf(e);return r<o.length-1?o[r+1]:null},d={white:{bg:"bg-white border-gray-300 text-gray-700",ring:"ring-gray-300",hex:"#e5e7eb"},blue:{bg:"bg-blue-500 text-white",ring:"ring-blue-500",hex:"#3b82f6"},purple:{bg:"bg-purple-500 text-white",ring:"ring-purple-500",hex:"#a855f7"},brown:{bg:"bg-amber-700 text-white",ring:"ring-amber-700",hex:"#b45309"},black:{bg:"bg-gray-900 text-white",ring:"ring-gray-900",hex:"#111827"},coral:{bg:"bg-[#FF6F61] text-white",ring:"ring-[#FF6F61]",hex:"#FF6F61"},red:{bg:"bg-red-600 text-white",ring:"ring-red-600",hex:"#dc2626"}},p=e=>d[e]?.bg??"bg-gray-300 text-gray-700",x=e=>{switch(e){case"white":default:return"Faixa Branca";case"blue":return"Faixa Azul";case"purple":return"Faixa Roxa";case"brown":return"Faixa Marrom";case"black":return"Faixa Preta";
1case"coral":return"Faixa Coral";case"red":return"Faixa Vermelha"}},g=(e,r,t)=>{let i=l(Math.max(0,Math.trunc((t??0)+r)));if(!e)return{newBelt:i,promoted:!1};let n=u(e),o=u(i);return o>n?{newBelt:i,promoted:!0,promotionType:i.rank===e.rank?"stripe":"rank"}:{newBelt:o===n?i:{...e,experience:0,requiredExperience:a[e.rank].requiredExp},promoted:!1}}}}]);
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.