;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Marcão nega briga por nome do Charlie Brown Jr.: 'Não aceitaremos ameaças'

Marcão Britto e Thiago Castanho anunciaram turnê própria para celebrar carreira da banda Charlie Brown Jr. - Reprodução/Instagram
Marcão Britto e Thiago Castanho anunciaram turnê própria para celebrar carreira da banda Charlie Brown Jr. Imagem: Reprodução/Instagram

De Splash, em São Paulo

01/11/2021 22h19

Marcos Britto, um dos ex-integrantes do Charlie Brown Jr., respondeu ao comunicado publicado pela banda na manhã de hoje. O texto lamenta a saída do músico principalmente pelo fato de o desligamento ter ocorrido "com tantos ataques, mentiras e rumores nas redes sociais".

Marcão e Thiago Castanho anunciaram no mês ado que estão fora da turnê de comemoração aos músicos Chorão e Champignon.

Estamos sendo ameaçados e coagidos! Fora o fato do herdeiro sanguíneo e es da página desmerecerem não só o nosso projeto, mas também de toda e qualquer homenagem a NOSSA BANDA, inclusive dos fãs que fazem cover e tributos, que tocam nossas músicas, mantendo vivo o nosso legado, fazendo celebrações e eternizando toda a nossa história!
Marcos Britto

"Não iremos aceitar ameaças e coações da empresa e representantes ligados ao Alexandre, filho do Chorão. Temos o direito de tocar nossas músicas com quem e como a gente quiser", completou Marcão em post no Instagram.

Diferente do que foi contado, NÃO se trata de querermos o nome, mesmo sabendo que ele não pertence a essas pessoas! Vale lembrar que não existe o registro do nome Charlie Brown Jr. no INPI (Instituto Nacional de Propriedade Industrial), o que assim não dá direito a ninguém se dizer dono de tal 'marca' como no texto é mencionado.
Marcos Britto

Marcão e Thiago falam em 'ego' ao justificar saída

Ao comunicarem a saída da "Tour Chorão 50", os guitarristas afirmaram não participar de nenhum outro projeto tocado por Alexandre Abrão, filho do Chorão, e alegaram falta de transparência na organização do projeto.

Em fevereiro foi anunciado um projeto em comemoração ao Charlie Brown Jr., ficamos muito felizes de voltar aos palcos, fazendo um som pra galera com nossos irmãos. Mas infelizmente o ego, a vaidade e a ganância falaram mais alto que uma parceria coerente e honesta, fazendo com que a gente tome a decisão de nos desligar da tour anunciada e qualquer outro projeto que esteja vinculado ao Alexandre, filho do Chorão, e suas empresas. Disseram os artistas.

Os dois músicos citam "atitudes imaturas e irresponsáveis de quem diz estar a frente do negócio" e afirmam que as transações foram feitas sem o conhecimento deles, inclusive quando se tratava sobre shows.

Na ocasião, os dois anunciaram uma turnê organizada por eles, intitulada "C. Brown JR. - Tour Celebração 30 aos". Para eles, trata-se de uma celebração pelas três décadas de carreira e da banda. Eles também criaram um novo perfil da banda nas redes sociais.

Chorão, ex-líder da banda, morreu em março de 2013, quando tinha 42 anos. O laudo da necropsia apontou que a causa da morte foi overdose de cocaína.

Champignon era baixista da banda e cometeu suicídio em setembro de 2013 em seu apartamento na região do Morumbi, na zona sul de São Paulo, aos 35 anos. Ele estava a frente da banda "A Banca".