POLITICA
Uno por uno, cómo votaron los senadores para aprobar la ley Garrahan de emergencia pediátrica

`
: `
`
}
${bloque}
`;
targetContainer.appendChild(card);
}
function createHemicicleSmall(nAfirmativo, nNegativo, nAbstencion, nAusente) {
const hemicycle = document.querySelector(‘.votos-senadores__hemiciclo.small’);
hemicycle.innerHTML = »; // Clear previous content.
const centerX = 300;
const baseY = 450;
const numberOfRows = 5;
// Array of seats per row (from outer to inner)
const seatsPerRow = [21, 18, 16, 12, 7];
const verticalOffset = 0;
const totalSeats = seatsPerRow.reduce((a, b) => a + b, 0);
const totalVotes = nAfirmativo + nNegativo + nAbstencion + nAusente;
// Instead of percentage-based rounding, we’ll compute a per-row distribution
// using floor() and then distribute any remaining seats based on the remainders.
let rowSeatCounts = seatsPerRow.map((seatsInRow) => {
// Compute the exact (floating point) allocation for each category.
const exactAfirmativo = (nAfirmativo * seatsInRow) / totalSeats;
const exactNegativo = (nNegativo * seatsInRow) / totalSeats;
const exactAbstencion = (nAbstencion * seatsInRow) / totalSeats;
const exactAusente = (nAusente * seatsInRow) / totalSeats;
// Take floor values.
let rowAfirmativo = Math.floor(exactAfirmativo);
let rowNegativo = Math.floor(exactNegativo);
let rowAbstencion = Math.floor(exactAbstencion);
let rowAusente = Math.floor(exactAusente);
let assigned = rowAfirmativo + rowNegativo + rowAbstencion + rowAusente;
let diff = seatsInRow – assigned;
// Create an array of remainders along with category identifiers.
let remainders = [{
cat: «afirmativo»,
remainder: exactAfirmativo – rowAfirmativo
},
{
cat: «negativo»,
remainder: exactNegativo – rowNegativo
},
{
cat: «abstencion»,
remainder: exactAbstencion – rowAbstencion
},
{
cat: «ausente»,
remainder: exactAusente – rowAusente
}
];
// Sort descending by remainder.
remainders.sort((a, b) => b.remainder – a.remainder);
// Distribute the remaining seats one by one to the categories with the highest remainders.
while (diff > 0) {
for (let r of remainders) {
if (diff <= 0) break;
switch (r.cat) {
case «afirmativo»:
rowAfirmativo++;
break;
case «negativo»:
rowNegativo++;
break;
case «abstencion»:
rowAbstencion++;
break;
case «ausente»:
rowAusente++;
break;
}
diff–;
}
}
return {
afirmativo: rowAfirmativo,
negativo: rowNegativo,
abstencion: rowAbstencion,
ausente: rowAusente
};
});
// Now, using your inverted loop order (columns first, then rows)
const maxSeatsInRow = seatsPerRow[0]; // maximum seats in the outer row
// For each seat position (by column, then row), assign the color based on that row’s distribution.
for (let col = 0; col < maxSeatsInRow; col++) {
for (let row = 0; row < numberOfRows; row++) {
if (col < seatsPerRow[row]) { // only if this row has a seat at this column
const seatsInThisRow = seatsPerRow[row];
const radius = 170 – row * (30 – verticalOffset);
const angleRange = Math.PI; // semicircle
const angleStep = (seatsInThisRow > 1) ? angleRange / (seatsInThisRow – 1) : 0;
const angle = (Math.PI – angleRange) / 2 + col * angleStep;
const x = centerX + radius * Math.cos(angle);
const y = baseY – radius * Math.sin(angle);
// For this row, assign colors in order:
// First use available «afirmativo», then «negativo», then «abstencion», then «ausente»
let colorClass=»color-empty»;
if (rowSeatCounts[row].afirmativo > 0) {
colorClass=»color-afirmativo»;
rowSeatCounts[row].afirmativo–;
} else if (rowSeatCounts[row].negativo > 0) {
colorClass=»color-negativo»;
rowSeatCounts[row].negativo–;
} else if (rowSeatCounts[row].abstencion > 0) {
colorClass=»color-abstencion»;
rowSeatCounts[row].abstencion–;
} else if (rowSeatCounts[row].ausente > 0) {
colorClass=»color-ausente»;
rowSeatCounts[row].ausente–;
}
const seat = document.createElement(‘div’);
seat.classList.add(‘seat’, colorClass);
seat.style.left = `${x}px`;
seat.style.top = `${y}px`;
hemicycle.appendChild(seat);
}
}
}
/* // Set the legend text (sin mostrar Ley Aprobada o no aprobada)
document.querySelector(‘#voto-summary’).innerHTML = `
Afirmativo: ${nAfirmativo} |
Negativo: ${nNegativo}
Abstención: ${nAbstencion} |
Ausente: ${nAusente}
`; */
/* // — Update Legend —
const leyText = nAfirmativo > nNegativo ? «Ley Aprobada» : «Ley no aprobada»;
const resultsText=»shshs»;
document.querySelector(«#voto-summary»).innerHTML = leyText + resultsText; */
/*
// Set the legend text. Mayoría simple
const leyText = nAfirmativo > nNegativo ? ‘Ley Aprobada’ : ‘Ley no aprobada’;
document.querySelector(‘#voto-summary’).innerHTML = `
Afirmativo: ${nAfirmativo} |
Negativo: ${nNegativo}
Abstención: ${nAbstencion} |
Ausente: ${nAusente}
` + ‘
‘ + leyText + ‘
‘; */
// Set the legend text. Dos tercios de los presentes (******EDITAR LEYENDA*****)
function votosNecesarios(presentes) {
return Math.ceil((2 / 3) * presentes);
}
const leyText = nAfirmativo >= (votosNecesarios(72 – nAusente)) ? ‘Aprobada’ : ‘Rechazada’;
document.querySelector(‘#voto-summary’).innerHTML = `
Afirmativo: ${nAfirmativo} |
Negativo: ${nNegativo}
Abstención: ${nAbstencion} |
Ausente: ${nAusente}
` + ‘
‘ + leyText + ‘
‘;
}
// Creates the big hemiciclo visualization.
function createHemicicleBig(nAfirmativo, nNegativo, nAbstencion, nAusente) {
const hemicycle = document.querySelector(‘.votos-senadores__hemiciclo.big’);
hemicycle.innerHTML = »; // Clear previous content.
const centerX = 300;
const baseY = 450;
const numberOfRows = 5;
// Array of seats per row (outer to inner; total should be 257)
const seatsPerRow = [21, 18, 16, 11, 6];
const verticalOffset = 2;
const totalSeats = seatsPerRow.reduce((a, b) => a + b, 0);
// Raw vote counts must sum to totalSeats (257)
const totalVotes = nAfirmativo + nNegativo + nAbstencion + nAusente;
if (totalVotes !== totalSeats) {
console.warn(«Total votes (» + totalVotes + «) do not equal total seats (» + totalSeats + «).»);
}
console.log(nAfirmativo, nNegativo, nAbstencion, nAusente, totalSeats, totalVotes);
// — Per-Row Distribution Using Absolute Counts —
// For each row, compute the exact allocation for each vote category based on its fraction of the total seats.
let rowSeatCounts = seatsPerRow.map(seatsInRow => {
const exactA = (nAfirmativo / totalSeats) * seatsInRow;
const exactN = (nNegativo / totalSeats) * seatsInRow;
const exactAb = (nAbstencion / totalSeats) * seatsInRow;
const exactAu = (nAusente / totalSeats) * seatsInRow;
let rowA = Math.floor(exactA);
let rowN = Math.floor(exactN);
let rowAb = Math.floor(exactAb);
let rowAu = Math.floor(exactAu);
let assigned = rowA + rowN + rowAb + rowAu;
let diff = seatsInRow – assigned;
// Create an array of remainders for each category.
let remainders = [{
cat: «afirmativo»,
rem: exactA – rowA
},
{
cat: «negativo»,
rem: exactN – rowN
},
{
cat: «abstencion»,
rem: exactAb – rowAb
},
{
cat: «ausente»,
rem: exactAu – rowAu
}
];
// Sort the remainders in descending order.
remainders.sort((a, b) => b.rem – a.rem);
// Distribute any leftover seats one by one.
while (diff > 0) {
for (let r of remainders) {
if (diff <= 0) break;
switch (r.cat) {
case «afirmativo»:
rowA++;
break;
case «negativo»:
rowN++;
break;
case «abstencion»:
rowAb++;
break;
case «ausente»:
rowAu++;
break;
}
diff–;
}
}
return {
afirmativo: rowA,
negativo: rowN,
abstencion: rowAb,
ausente: rowAu
};
});
// — Global Correction —
// Sum the allocated seats for each category across all rows.
let globalA = rowSeatCounts.reduce((sum, row) => sum + row.afirmativo, 0);
let globalN = rowSeatCounts.reduce((sum, row) => sum + row.negativo, 0);
let globalAb = rowSeatCounts.reduce((sum, row) => sum + row.abstencion, 0);
let globalAu = rowSeatCounts.reduce((sum, row) => sum + row.ausente, 0);
// For each category, if the global total is less than the raw count, add the missing seats to the outer row (row 0).
if (globalA < nAfirmativo) {
rowSeatCounts[0].afirmativo += (nAfirmativo – globalA);
}
if (globalN < nNegativo) {
rowSeatCounts[0].negativo += (nNegativo – globalN);
}
if (globalAb < nAbstencion) {
rowSeatCounts[0].abstencion += (nAbstencion – globalAb);
}
if (globalAu < nAusente) {
rowSeatCounts[0].ausente += (nAusente – globalAu);
}
// — Seat Placement Using Inverted Loop Order —
const maxSeatsInRow = seatsPerRow[0];
for (let col = 0; col < maxSeatsInRow; col++) {
for (let row = 0; row < numberOfRows; row++) {
if (col < seatsPerRow[row]) { // Only process if this row has a seat at the current column.
const seatsInThisRow = seatsPerRow[row];
const radius = 300 – row * (55 – verticalOffset);
const angleRange = Math.PI; // semicircle
const angleStep = (seatsInThisRow > 1) ? angleRange / (seatsInThisRow – 1) : 0;
const angle = (Math.PI – angleRange) / 2 + col * angleStep;
const x = centerX + radius * Math.cos(angle);
const y = baseY – radius * Math.sin(angle);
// For the current row, assign the color in order: afirmativo, then negativo, then abstencion, then ausente.
let colorClass=»color-empty»;
if (rowSeatCounts[row].afirmativo > 0) {
colorClass=»color-afirmativo»;
rowSeatCounts[row].afirmativo–;
} else if (rowSeatCounts[row].negativo > 0) {
colorClass=»color-negativo»;
rowSeatCounts[row].negativo–;
} else if (rowSeatCounts[row].abstencion > 0) {
colorClass=»color-abstencion»;
rowSeatCounts[row].abstencion–;
} else if (rowSeatCounts[row].ausente > 0) {
colorClass=»color-ausente»;
rowSeatCounts[row].ausente–;
}
const seat = document.createElement(‘div’);
seat.classList.add(‘seat’, colorClass);
seat.style.left = `${x}px`;
seat.style.top = `${y}px`;
hemicycle.appendChild(seat);
}
}
}
}
// Go-to-top button functionality.
document.addEventListener(‘DOMContentLoaded’, function() {
const goToTopButton = document.querySelector(‘.votos-senadores__go-to-top’);
const targetElement = document.querySelector(‘.votos-senadores’);
goToTopButton.addEventListener(‘click’, function() {
targetElement.scrollIntoView({
behavior: ‘smooth’
});
});
const observer = new IntersectionObserver((entries) => {
entries.forEach((entry) => {
goToTopButton.style.display = entry.isIntersecting ? ‘block’ : ‘none’;
});
}, {
root: null,
rootMargin: ‘0px’,
threshold: 0.1
});
observer.observe(targetElement);
// Attach the toggle listener to each vote button.
const toggleBtns = document.getElementsByClassName(‘votos-senadores__voto-btn’);
for (let i = 0; i < toggleBtns.length; i++) {
toggleBtns[i].addEventListener(‘click’, function() {
this.classList.toggle(‘active’);
const panel = this.nextElementSibling;
panel.style.maxHeight = panel.style.maxHeight ? null : ‘14000px’;
});
}
// Now simulate a click on each button from within DOMContentLoaded.
// This will trigger the listener and expand each panel on load.
for (let i = 0; i < toggleBtns.length; i++) {
toggleBtns[i].click();
}
});
POLITICA
La extradición de Machado se concretará el 5 de noviembre: sigue preso en Viedma y con llamadas restringidas

El empresario Federico “Fred” Machado, que aportó fondos no declarados a la campaña a de José Luis Espert de 2019 y está acusado de delitos ligados al narcotráfico, será extraditado a los Estados Unidos el 5 de noviembre próximo, según informaron fuentes oficiales.
Se pondrá fin así a un largo proceso que empezó el 16 de abril de 2021, cuando Machado fue detenido por la Policía de Seguridad Aeroportuaria en la ciudad de Neuquén a raíz del requerimiento de la justicia norteamericana. El empresario cumplió arresto domiciliario en Viedma, con una tobillera electrónica, hasta el 7 de octubre pasado, cuando la Corte declaró finalmente que la extradición era “procedente” y Machado fue trasladado a un destacamento policial.
Allí se quedará hasta que la Policía Federal lo vaya a buscar para trasladarlo a Ezeiza, desde donde volará a los Estados Unidos. Es probable que deje Viedma el 3 o 4 de noviembre, estiman fuentes del caso.
Mientras tanto, seguirá detenido en el destacamento donde se encuentra hoy, sin teléfono celular a disposición, pero con permiso judicial para comunicarse en determinados momentos con su familia y con su hijo que vive en los Estados Unidos.
En los últimos días, sus abogados ya no presentaron más recursos judiciales, dijeron fuentes del caso. A lo largo del proceso de extradición sus abogados habían presentado reiterados planteos, que fueron todos finalmente rechazados.
José Luis Espert,la Corte declaró,Conforme a
POLITICA
Fuerza Patria llega al cierre sin un acto unificado en PBA, pero confía en repetir la elección de septiembre

“Es la campaña más normal del mundo”, lanzó días atrás un integrante del gobierno de Axel Kicillof en tono irónico. Hacía referencia de cómo se desarrolló tanto en septiembre como en octubre la dinámica electoral del peronismo. En una campaña a modo “hágala usted mismo”, el peronismo transitó la elección provincial del mes pasado y la fórmula se repitió para los comicios nacionales. Por ello, a seis días del acto eleccionario en Fuerza Patria no hay mayores precisiones de dónde será el búnker ni cómo será el cierre de campaña que lleva a Jorge Taiana como primer candidato a diputado nacional. Kicillof estará el jueves por la tarde en el municipio de Quilmes para participar de la asunción de las nuevas autoridades de la Juventud Universitaria Peronista (JUP), que se realizará en la sede de la Universidad de Quilmes (UNQUI).
Pese a ello, el peronismo se muestra expectante ante lo que serán los resultados del próximo domingo, al menos en la provincia de Buenos Aires. El antecedente de la elección de septiembre ofrece una base desde la cual se paran los principales dirigentes. Este lunes, el ministro de Gobierno bonaerense, Carlos Bianco, advirtió en las habituales conferencias de prensa que realiza desde la Gobernación provincial que “seguramente”, en la provincia de Buenos Aires La Libertad Avanza “va a perder” y que la victoria será para Fuerza Patria.
Por estas horas, el peronismo libra una batalla ante la justicia electoral para que el Gobierno se abstenga de publicar datos consolidados a nivel nacional en la difusión de los resultados del próximo domingo y lo haga exclusivamente por distrito, argumentando que cualquier otra modalidad carece de sustento legal y puede inducir a error a la ciudadanía.
Como adelantó Infobae, este lunes se formalizó el pedido de los apoderados de Fuerza Patria, provincia de Buenos Aires, Eduardo López Wesselhoefft, Patricia García Blanco, Eduardo Cergnul y Agustina Vila. Los mismos plantearon que el recuento provisorio de votos realizado por la Dirección Nacional Electoral (DINE) —que presentó una consolidación nacional de los votos— es improcedente, ya que la elección es nacional de distrito y no de distrito único.
Sucede que mientras La Libertad Avanza compite en los 24 distritos bajo una única marca, el peronismo lo hace en 13 provincias con el sello Fuerza Patria y en 11 con denominaciones locales. Esta disparidad, según los apoderados, podría distorsionar la interpretación de los resultados si se presentan cifras nacionales consolidadas, favoreciendo un relato que no reflejaría la realidad electoral de cada distrito. “Ya no es una suma equivalente con el resto de nuestra fuerza política. Por ejemplo, nuestra fuerza política que tiene en Buenos Aires y en otras provincias el sello de Fuerza Patria; en algunas otras provincias tiene un nombre distinto, pero forma parte de nuestra fuerza política, entonces va a ser muy difícil comparar”, planteó el funcionario de Kicillof.
“Creo que lo hacen con la expectativa, de que si bien saben que van a perder en un montón de provincias: en la provincia de Buenos Aires, seguramente, quieren llegar a algún tipo de resultado un poco más decoroso con la sumatoria a nivel nacional, pero sobre todo medio tramposo”, advirtió Bianco y puntualizó: “Me parece que es una expresión de desesperación política”, la forma con la que el Gobierno definió cómo se darán a conocer los resultados del escrutinio provisorio para el próximo domingo.
Bianco estuvo escoltado de la ministra de Ambiente, Daniela Vilar y de Desarrollo de la Comunidad, Andrés “Cuervo” Larroque.
Mientras, Taiana sigue con su campaña. El sábado estuvo en el municipio de Lobos y en Navarro. Esta semana estará en recorridas junto a Kicillof e intendentes. Está previsto que, si el clima acompaña, el miércoles recorra el conurbano y participará junto a la intendenta de Moreno, Mariel Fernández, de un banderazo que se hará en ese distrito.
En sus recorridas del último fin de semana por el interior bonaerense intentó bajar el triunfalismo. “Esta semana la tarea más importante es trabajar para ganar las elecciones. Es el último tramo y nada está garantizado. No hay que comerse el postre antes de almorzar», pidió.
Si bien por estas horas se definirá la locación, todo indica que el búnker de Fuerza Patria, en la provincia de Buenos Aires, será en la ciudad de La Plata, tal como ocurrió en los comicios del 7 de septiembre pasado. En la ocasión de las elecciones bonaerenses, la locación elegida había sido el Hotel Grand Brizzo. Desde allí, el gobernador dio el discurso triunfal ante la militancia que celebró la victoria del peronismo por casi 14 puntos de diferencia sobre La Libertad Avanza.
Aunque hay expectativa y el cálculo de que el peronismo podría repetir una victoria, Fuerza Patria trabaja sobre distintos escenarios sobre qué diferencia podría darse un posible triunfo. Sostener la diferencia de septiembre, dicen en el comando de campaña peronista, sería un escenario por demás favorable. Como dio cuenta Infobae, en el peronismo recuerdan que a diferencia de las elecciones de septiembre, para el próximo domingo no habrá electores migrantes, ya que no están en condiciones de elegir autoridades nacionales.
POLITICA
El Gobierno justificó las declaraciones de Donald Trump sobre la “muerte” argentina y volvió a hablar de la herencia kirchnerista

Con señalamientos hacia la gravedad de la herencia dejada por el kirchnerismo, los embates preelectorales y las reformas pendientes, en las filas libertarias enmarcaron hoy las declaraciones del presidente estadounidense, Donald Trump, sobre la situación argentina, en las que sostuvo que la Argentina “está muriendo”.
Pese a su tenor fuera de todo protocolo y diplomacia, las definiciones del presidente estadounidense fueron justificadas y contextualizadas puertas adentro de la Casa Rosada. El primero en hacerlo fue el portavoz Manuel Adorni, y sobre esa misma línea, aunque fuera de micrófono, lo hicieron otras voces de Balcarce 50 consultadas por .
Las definiciones de Trump se irradiaron el domingo por la noche, cuando a punto de subir al avión presidencial, el republicano justificó la ayuda financiera a la Argentina al sostener que el país “está luchando por su vida. ¿Entienden lo que eso significa? No tienen dinero, no tienen nada, están luchando muy duro para sobrevivir».
Apenas horas después de que hablara Trump, el Banco Central (BCRA), a cargo de Santiago Bausili, anunció la firma de un acuerdo de estabilización cambiaria con el Departamento del Tesoro de Estados Unidos, por un monto de hasta US$20.000 millones. El programa esta destinado a reforzar la posición de reservas internacionales del país, a una semana de las elecciones.
“Lo que dijo es razonable”, dijo este lunes el portavoz Adorni en una entrevista con el streaming libertario La Casa. Luego, el vocero y legislador porteño electo agregó: “Hay que entender el contexto en el que lo dijo. Es cierto que no tenemos plata, no es ninguna novedad”.
“Coincidimos en la caracterización, por eso ganó Milei”, dijo en esa misma línea una importante voz libertaria de Balcarce 50 al ser consultada por el tema, en referencia al triunfo del libertario sobre el peronismo en las elecciones presidenciales de 2023. “Se hizo mucho, pero recién estamos llegando a los dos años de gestión, todavía falta más”, completó la descripción del cuadro.
En esa línea estuvieron quienes se refirieron a la herencia que recibieron por parte del kirchnerismo al asumir en diciembre de ese año. “Siempre aludimos a que nos dejaron al borde del abismo. El propio presidente hizo alusión a eso muchas veces. Ese fue el punto de partida que nos dejaron, de extrema vulnerabilidad”, dijeron en la Casa Rosada, donde defendieron lo que se hizo hasta ahora.
“Se ordenó la macro, se bajó la inflación, pero hay que seguir avanzando. Lo decimos siempre. Falta”, agregaron. “Se hizo muchísimo, pero falta aún más. Por eso planteamos que estas elecciones son claves para no volver al pasado y que no se pierda todo el esfuerzo que hizo”, describieron.
En línea con que pese a lo hecho, el panorama sigue siendo complejo por la gravedad de lo que se recibió y a la que Milei aludió en “numerosas ocasiones”, en la Casa Rosada también apuntaron a los “intentos desestabilizadores” por parte de un sector de la oposición en la previa a las elecciones, que creen que complican el panorama interno en el que llegó a la ayuda estadounidense.
Por eso, agregaron, consideran clave sumar actores parlamentarios en las elecciones de este domingo para avanzar con el plan que se impuso Milei y que para la segunda parte de su mandato incluye poder avanzar con las denominadas reformas de segunda generación.
De esta manera, en las filas libertarias insistieron en despegarse de que hubiera una mirada negativa del presidente estadounidense sobre lo que está haciendo el libertario. En ese sentido ubicaban incluso la frase que también dejó Trump antes de subir al Air Force One: “Me agrada el presidente de Argentina. Creo que está tratando de hacer lo mejor que puede”.
“La Argentina tiene 2% mensual de inflación, riesgo país en torno a los 1000 puntos, se está en un período electoral en el que te tiran con todo a matar o morir”, fue otra de las frases que dejó Adorni sobre los dichos de Trump. Y agregó: “Eso explicárselo a un norteamericano, a un periodista de allá que vive con0%, 0,2% de inflación, que no sabe lo que es el riesgo país. En la definición de ellos, claramente la Argentina no es un país al que le vaya bien”.
Para rematar, Adorni completó: “Lo que dijo Trump es razonable en el contexto en el que lo dijo, a quien se lo dijo. Si hay algo que Trump demostró es un apoyo incondicional bajo cualquier circunstancia”.
En línea con que creen que desde el Gobierno estadounidense se valora lo que se viene haciendo, desde Balcarce 50 apuntaron a que una señal de esa confianza es la colaboración que se está recibiendo desde hace semanas por parte de la administración Trump, en especial a través de los anuncios del secretario del Tesoro, Scott Bessent.
En las filas libertarias también estuvieron quienes en las declaraciones de Trump, a todo lo previo, sumaron una justificación interna en medio de los cuestionamientos que el republicano recibe por la ayuda argentina, envuelta en críticas demócratas.
anunció,Cecilia Devanna,Conforme a
- CHIMENTOS2 días ago
La fuerte actitud de Manu Urcera con Indiana Cubero que reveló la verdad de la interna familiar: “El saludo del piloto a la hija de Nicole Neumann por su cumpleaños”
- POLITICA2 días ago
“El Pollo” Carvajal revela cómo Chávez pagaba a Kirchner, Lula y Petro con dinero del narcotráfico
- POLITICA2 días ago
Un juez federal rechazó el habeas corpus presentado por Lázaro Báez y ordenó trasladarlo a la cárcel de Ezeiza