window.utag_data = {}; {let e,t return{p:new Promise((r,n)=>{e=r,t=n}),s:e,j:t}} e.serverError&&console.error(`[global-webdeps] Error\n${e.serverError}`) const o=e=>new Map(e.map(([e,t,r])=>[e,a({name:e,url:t,detectionExpression:r})])),a=e=>{const t=s(),r=t.p.then(()=>c(e)),n=s(),o=i.then(()=>n.p).then(()=>l(e)).then(()=>u(e).then(t=>p(e,t))).catch(()=>(t.s(),r)) return Object.assign({},e,{request:()=>(n.s(),Promise.race([r,o]))})},i=new Promise(e=>t.addEventListener("DOMContentLoaded",e)),l=({url:e})=>new Promise((r,n)=>{[...t.scripts].find(t=>(t.getAttribute("src")||t.getAttribute("data-src")||"//@").split("//")[1]===e.split("//")[1])?r():n()}),c=({url:e})=>new Promise((r,n)=>{const s=t.createElement("script") s.src=`${e}${e.includes("?")?"&":"?"}loading-agent=global-webdeps`,s.onload=r,s.onerror=n,s.setAttribute("data-agent","global-webdeps"),t.head.appendChild(s)}),d=[],p=({name:e},t)=>{const o=t=>`[global-webdeps] ${e} detection ${t}`,{p:a,s:i,j:l}=s() return d.push([i,l,t,()=>{r.mark(o("end")),r.measure(o(),o("start"),o("end"))},r.now(),e]),r.mark(o("start")),n||m(),a},m=()=>{n=!0 const e=r.now() let t,s=d.length for(;s--;)if(t=d.shift()){const[r,n,s,a,i,l]=t let c try{c=s()}catch(o){n(o)}!0===c?(a(),r()):e-i>6e4?(a(),n(Error(`[global-webdeps] Detection for "${l}" timed out`))):d.push(t)}d.length?setTimeout(m,100):n=!1},u=({name:e,detectionExpression:t})=>{let r,n "string"==typeof t&&0!==t.length||(n=Error(`[global-webdeps] "${e}" hasn't a detection expression`)) try{r=Function(`return ${t}`)}catch(s){n=s}return new Promise((e,t)=>{r?e(r):n&&t(n)})},b=new Map([...o(e.ex),...o(e.im)]) globalWebdeps=((...e)=>{const t=[...new Set(e)],r=t.filter(e=>!b.get(e)) return r.length?Promise.reject(Error(`[global-webdeps] Unknown dependency(ies): ${r}`)):Promise.all(t.map(e=>{const t=b.get(e) return t?t.request():Promise.reject()}))}),i.then(()=>globalWebdeps(...e.im.map(([e])=>e)))})() )({"ex":[["bs-player","https://s3.glbimg.com/v1/AUTH_ba8e460c944543468c3c80cb9675751f/web-components/bs-player/2.8.3/bs-player.min.js","typeof window.customElements.get(\"bs-player\") === 'function'"],["globoid-js","https://s3.glbimg.com/v1/AUTH_3ed1877db4dd4c6b9b8f505e9d4fab03/globoid-js/v1.17.10/globoid-js.min.js","window.glb != null && window.glb.globoIdClientMap != null"],["festival-gallery-expanded","https://s3.glbimg.com/cdn/libs/festival-gallery-expanded/1.0.0/festival-gallery-expanded.js","window.customElements.get('festival-gallery-expanded')"],["geo-grid-instrumental-lib","https://s3.glbimg.com/v1/AUTH_062b4fd3d53649a3b8514790ba0bc638/public/geo-grid-instrumental-lib.umd.cjs","typeof window.GeoGridMapLib !== 'undefined'"],["lightbox","https://s3.glbimg.com/cdn/libs/gui-lightbox/1.11.2/js/gui.lightbox.js","window.gui !== undefined "],["horizon-v3","https://s3.glbimg.com/v1/AUTH_f75bb4776e3c4683acd769d47144995f/libs/horizon-v3/horizonv3-g1.min.js","window.horizonv3 !== undefined"],["home-ab-stractor","https://s3.glbimg.com/v1/AUTH_448612afd5444aab9ff73ea54413fbd1/js/home-ab-stractor.umd.js","typeof window.HomeAB !== \"undefined\""],["assista-no-globoplay-plugin","https://s3.glbimg.com/v1/AUTH_ba8e460c944543468c3c80cb9675751f/plugins/assista-no-globoplay/1.0.0/assista-no-globoplay.min.js","window.AssistaNoGloboplay && typeof window.AssistaNoGloboplay === 'function'"],["clappr-detach-plugin","https://s3.glbimg.com/v1/AUTH_ba8e460c944543468c3c80cb9675751f/plugins/clappr-detach-plugin.js","window.ClapprDetachPlugin && typeof window.ClapprDetachPlugin === 'function'"],["globo-ab-v4","https://s3.glbimg.com/v1/AUTH_da787d4f4e8d46e3ad76d5fa568fe786/globo-ab/latest/globo-ab.min.js","typeof window.GloboAB !== 'undefined'"],["clappr","https://s3.glbimg.com/v1/AUTH_e1b09a2d222b4900a437a46914be81e5/web/player/stable/player.min.js","typeof WP3 !== undefined && typeof Clappr !== undefined"],["player-plugin-viewport","https://s3.glbimg.com/v1/AUTH_05f06ca986b54d6e9c5df94927ccf7fc/libs/clappr-plugins/viewport-play/v1.1.4/viewport-play-plugin.js","window.ViewportPlayPlugin && typeof ViewportPlayPlugin.default() === 'function'"],["video-player-abstractor","https://s3.glbimg.com/v1/AUTH_448612afd5444aab9ff73ea54413fbd1/js/video-player-abstractor.umd.js","typeof window.videoPlayer() !== undefined"],["chartbeat","https://s3.glbimg.com/v1/AUTH_ba8e460c944543468c3c80cb9675751f/plugins/chartbeat/chartbeat-plugin.min.js","window.ChartbeatPlugin && typeof window.ChartbeatPlugin === 'function'"],["video-recommendation-plugin","https://s3.glbimg.com/v1/AUTH_05f06ca986b54d6e9c5df94927ccf7fc/libs/clappr-plugins/video-recommendation/v2.2.1/video-recommendation-plugin.js","window.VideoRecommendationPlugin && typeof window.VideoRecommendationPlugin === 'function'"],["globo-rec","https://s3.glbimg.com/v1/AUTH_448612afd5444aab9ff73ea54413fbd1/js/rec-lib.min.js","typeof window.GloboRec !== \"undefined\""],["entretenimento-ui-beta","https://s3.glbimg.qa.globoi.com/v1/AUTH_9a61668712cd4619a591f7d7f06a8c47/libs/entretenimento-ui.js","window.EntretenimentoUI !== undefined"],["horizon-client-v1","https://s3.glbimg.com/v1/AUTH_ba8e460c944543468c3c80cb9675751f/libs/horizon/1.10.0/globocom-horizon.min.js","!!window.horizon"],["raven","https://cdn.ravenjs.com/3.19.1/raven.min.js","typeof window.Raven === 'function'"],["player","https://s3.glbimg.com/v1/AUTH_e1b09a2d222b4900a437a46914be81e5/api/stable/web/api.min.js","window.WM && typeof WM.Player === 'function'"],["preact","https://s3.glbimg.com/v1/AUTH_47600d3497184478b773a886f1305b22/libs/preact.js","window.Preact !== undefined"],["entretenimento-ui","https://s3.glbimg.com/v1/AUTH_47600d3497184478b773a886f1305b22/libs/entretenimento-ui.js","window.EntretenimentoUI !== undefined"],["hcaptcha","https://hcaptcha.com/1/api.js?hl=pt-BR&render=explicit&onload=hcaptchaLoad","window.hcaptcha !== undefined"],["amp-social-share","https://cdn.ampproject.org/v0/amp-social-share-0.1.js","window.__AMP_SERVICES[\"amp-social-share\"] !== undefined"],["amp","https://cdn.ampproject.org/v0.js","window.AMP !== undefined"],["recaptcha","https://www.google.com/recaptcha/api.js?render=explicit","window.grecaptcha !== undefined"]],"im":[["globo-ab-sdk","https://s3.glbimg.com/v1/AUTH_da787d4f4e8d46e3ad76d5fa568fe786/globo-ab/4.7.4/globo-ab-sdk.min.js","typeof window.GloboAbSdk !== 'undefined'"],["globo-ab-34","https://s3.glbimg.com/v1/AUTH_da787d4f4e8d46e3ad76d5fa568fe786/globo-ab/3.4.0/globo-ab.min.js","typeof window.GloboAB34 === 'function'"],["globo-ab-v2","https://s3.glbimg.com/v1/AUTH_da787d4f4e8d46e3ad76d5fa568fe786/globo-ab/globo-ab-v2.min.js","typeof window.globoAB !== 'undefined'"],["globo-ab","https://s3.glbimg.com/v1/AUTH_da787d4f4e8d46e3ad76d5fa568fe786/globo-ab/3.0/globo-ab.min.js","typeof window.GloboAB === 'function'"]]})
Publicidade

Victor Bastos

Editor de Apps

Victor Bastos
Nome completo:
Victor Machado Bastos
Data de nascimento:
11/02/2003
Estado onde nasceu:
Rio de Janeiro
Cidade onde nasceu:
Rio de Janeiro

Jornalista em formação pela Universidade Federal do Rio de Janeiro (UFRJ), estĂĄ no TechTudo desde janeiro de 2023. ApĂłs pouco mais de um ano como estagiĂĄrio de Apps, assumiu o conteĂșdo da editoria. Produz matĂ©rias sobre novidades, monitora o funcionamento de serviços e escreve dicas de usabilidade e segurança para usuĂĄrios de Android e iPhone. Cobriu eventos como WWDC, lançamento do iPhone e Galaxy Unpacked.