;(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

Danilo Lavieri

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Lavieri: Eleição de Leila mostra como Palmeiras precisa de oposição forte

Colunista do UOL

20/11/2021 17h18

Receba os novos posts desta coluna no seu e-mail

Email inválido

Leila Pereira foi oficialmente eleita hoje (20) como a próxima presidente do Palmeiras. Toda a campanha nos últimos meses, o ambiente deste sábado de votação e todo o cenário do Alviverde só reforçam como o clube precisa de uma oposição mais forte e estruturada do que a que tem hoje.

É dispensável dizer que a eleição da empresária deixa evidente um grande conflito de interesse. A mesma pessoa é credora, dona da patrocinadora e agora número 1 do clube. Em vários momentos, ela terá de se decidir entre tomar as decisões que favoreçam somente o time ou então que favoreçam a sua empresa.

Até carrinho de pipoca tinha nome e número de Leila Pereira no Palmeiras - Arquivo Pessoal - Arquivo Pessoal
Até carrinho de pipoca tinha nome e número de Leila Pereira no Palmeiras
Imagem: Arquivo Pessoal

Isso não é garantia que ela vá fazer uma má gestão ou que vá fazer escolhas que sejam ruins para o Palmeiras e boas para a Crefisa. Mas esse é um conflito de interesse que não deveria ser permitido. Não seria aceito em nenhuma instituição que tenha um compliance rígido.

Durante toda a campanha Leila usou do poder da máquina. Como não houve oposição, ela pôde estampar seu nome e seu número em várias áreas do clube sem nenhuma resistência. Hoje, no dia da votação, providenciou transporte gratuito, atividades para os sócios, comida, bebida... Várias gratuidades que seriam condenadas em qualquer eleição com regras mais sérias, ainda mais dentro do próprio posto eleitoral.

O recomendável seria o Conselho Deliberativo não permitir esse tipo de coisa, mas todos sabem que a grande maioria dos conselheiros é aliada de Leila. Frequenta seu camarote no Allianz, já pegou carona no jatinho para voos em jogos fora de casa e não dispensou um pedaço de pizza e uma foto nos eventos gratuitos promovidos por ela.

Sede social do Palmeiras foi dominada por menções a Leila Pereira - Arquivo Pessoal - Arquivo Pessoal
Sede social do Palmeiras foi dominada por menções a Leila Pereira
Imagem: Arquivo Pessoal

Esse mesmo Conselho que assistiu calado à manobra endossada pelo ex-presidente Mustafá Contursi. Embora hoje seja rival, ele conduziu o processo para legalizar a situação de Leila no clube, dando a ela mais tempo de sócia do que realmente é, fazendo com que ela furasse fila e pulasse etapas para poder chegar ao cargo de presidente.

Os mesmos conselheiros que também pouco questionaram os planos futuros de Leila. Além do excelente relacionamento que ela nutre e de algumas propostas sem explicações de como serão feitas como "ingressos e camisas mais baratos", não houve discussões de como o Palmeiras vai se posicionar em um momento tão importante do futebol como agora: como agirá o clube na Lei do Mandante? Qual a posição dela em relação a um clube-empresa? Ela é a favor da Liga de Clubes?

Já está mais do que claro que não haverá cobrança por parte dos associados, de boa parte do Conselho e nem da torcida organizada. Por isso, urge a necessidade de uma oposição forte, combativa e que fiscalize o time que tem mais de 15 milhões de torcedores e não alguns poucos donos.

Siga também as opiniões de Danilo Lavieri no Twitter e no Instagram