;(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();
})();
Governador da BA cita "laços de amizade" da Presidência com miliciano morto
Imagem: Alberto Coutinho - 12.mar.2018/Governo da Bahia
Do UOL, em São Paulo
15/02/2020 19h01Atualizada em 17/02/2020 12h05
Resumo da notícia
Governador defendeu a PM da Bahia na ação que matou miliciano
Rui Costa indicou que morto tinha "laços de amizade com a Presidência"
Bolsonaro insinuou motivação política na morte do ex-capitão do Bope
O governador baiano, Rui Costa (PT), disse que "a Bahia luta contra e não vai tolerar nunca milícias nem bandidagem" e disse haver "laços de amizade" entre a Presidência e o ex-capitão do Bope (Batalhão de Operações Especiais) Adriano da Nóbrega, considerado miliciano e morto em ação da Polícia Militar da Bahia.
O comentário foi uma reação à fala do presidente Jair Bolsonaro (sem partido), que tentou ligar a morte ao governo estadual. "Quem é o responsável pela morte do capitão Adriano? PM da Bahia, do PT. Precisa falar mais alguma coisa?", disse Bolsonaro, mais cedo, no Rio. O ministro da Justiça, Sergio Moro, também chegou a ligar a morte do ex-capitão do Bope ao governo estadual da Bahia.
Na Bahia, a determinação é cumprir ordem judicial e prender criminosos com vida. Mas se estes atiram contra Pais e Mães de família q representam a sociedade, os mesmos têm o direito de salvar suas próprias vidas, mesmo q os MARGINAIS mantenham laços de amizade com a Presidência.
Costa publicou uma mensagem hoje nas redes sociais em que rebate a fala do presidente. "Na Bahia, trabalhamos duro para prevalecer a lei e o Estado de Direito."
O governador diz que, na Bahia, "a determinação é cumprir ordem judicial e prender criminosos com vida". "Mas se estes atiram contra pais e mães de família que representam a sociedade, os mesmos têm o direito de salvar suas próprias vidas, mesmo que os marginais mantenham laços de amizade com a Presidência", escreveu.
Homenagem
O governador também comentou o fato de o presidente ter pedido para que seu filho, o senador Flávio Bolsonaro (sem partido-RJ), homenageasse o miliciano na Alerj (Assembleia Legislativa do Rio de Janeiro) em 2003. Nas redes sociais, Costa disse que "o governo do estado da Bahia não mantém laços de amizade nem presta homenagens a bandidos nem procurados pela Justiça".
Em evento no Rio, Bolsonaro e Flávio negaram ter relações com milicianos. "Não existe ligação minha com milícia do Rio de Janeiro", disse o presidente.
"Eu é que pedi para o meu filho condecorar para que não haja dúvida. Ele era um herói [na época]. O meu filho, recém-eleito, eu que determinei, pode trazer para cima de mim isso aí. O meu filho condecorou centenas de policiais", disse o presidente.
Já Flávio falou que, "como deputado estadual, homenageei centenas e centenas de policiais militares que venciam a morte todos os dias...". "Não adianta querer me vincular à milícia porque não tenho absolutamente nada com a milícia."
ID: {{comments.info.id}}
URL: {{comments.info.url}}
Ocorreu um erro ao carregar os comentários.
Por favor, tente novamente mais tarde.
{{comments.total}} Comentário
{{comments.total}} Comentários
Seja o primeiro a comentar
Essa discussão está encerrada
Não é possivel enviar novos comentários.
Essa área é exclusiva para você, , ler e comentar.
Só s do UOL podem comentar
Ainda não é ? Assine já.
Se você já é do UOL, faça seu .
O autor da mensagem, e não o UOL, é o responsável pelo comentário. Reserve um tempo para ler as Regras de Uso para comentários.