Actividad 4. Simulaciones de Montecarlo

1. Contexto del problema

Caso de Estudio: Casino Bollywood

El Casino Bollywood quiere analizar si conviene instalar una nueva slot machine Zitro Altius Glare. Estas máquinas tienen alta variabilidad en premios y dependen del azar, pero siempre están diseñadas para darle una ventaja a la casa. La gerencia quiere saber:

*¿Cuánto puede ganar en promedio la máquina por día?

*¿Qué tan grande es la variabilidad de esas ganancias?

*¿Cuál es la probabilidad de que la máquina dé pérdidas en un día típico?

Considere los siguientes supuestos:

*Cada jugador apuesta 10 pesos por jugada (esto es típico en zonas denominadas FUN).

*La máquina recibe en promedio 8,000 jugadas en un día.

*La máquina está programada con la siguiente tabla de pagos:

Resultado | Probabilidad | Pago (veces la apuesta) Jackpot | 0.1% | 200x Premio grande | 1% | 20x Premio chico | 10% | 2x Sin premio | 88.9% | 0x

Realice lo siguiente:

1-Simular 10,000 días de operación de la máquina.

-En cada jugada, determinar aleatoriamente si el jugador gana o no, y cuánto.

-Calcular la ganancia del casino como:
  Ganancia = Apuesta Total - Premios Pagados
set.seed(2025)
# Parámetros
num_simulations <- 10000   
plays_per_day <- 8000     
cost_per_play <- 10        

payouts <- c(200, 20, 2, 0)   # Veces la apuesta
probabilities <- c(0.001, 0.01, 0.10, 0.889)  # Probabilidades

# Vector para guardar resultados diarios
casino_gains <- numeric(num_simulations)

# Simulación Monte Carlo
for (i in 1:num_simulations) {
  # Jugadas del día
  results <- sample(payouts, plays_per_day, replace = TRUE, prob = probabilities)
  
  # total revenue o ingresos del casino
  revenue <- plays_per_day * cost_per_play
  
  # Premios pagados
  prizes <- sum(results * cost_per_play)
  
  # Ganancia neta
  casino_gains[i] <- revenue - prizes
}

2-Analizar los resultados:

# Análisis de Resultados
expected_gain <- mean(casino_gains)        
risk <- sd(casino_gains)                    
prob_loss <- mean(casino_gains < 0)         
worst_case <- quantile(casino_gains, 0.05)  # Escenario pesimista 5% peor
best_case <- quantile(casino_gains, 0.95)   # Escenario optimista 5% mejor

# Resultados Obtenidos del Análisis
cat("Ganancia promedio por día: $", round(expected_gain, 2), "\n")
## Ganancia promedio por día: $ 32005.24
cat("Variabilidad: $", round(risk, 2), "\n")
## Variabilidad: $ 5933.1
cat("Probabilidad de pérdida en un día:", round(prob_loss * 100, 2), "%\n")
## Probabilidad de pérdida en un día: 0.01 %
cat("Escenario pesimista: $", round(worst_case, 2), "\n")
## Escenario pesimista: $ 21980
cat("Escenario optimista: $", round(best_case, 2), "\n\n")
## Escenario optimista: $ 41161

-Ganancia promedio por día: R $ 32005.24

-Probabilidad de que la máquina dé pérdidas en un día: R: 0.01 %

3-Proponga una o varias recomendaciones al casino en función de:

-¿Es rentable instalar la máquina?

# Análisis de rentabilidad
## Queremos conocer si es rentable o no es rentable
total_revenue <- plays_per_day * cost_per_play
profit_margin <- (expected_gain / total_revenue) * 100

cat("Ingresos totales por día: $", format(total_revenue, big.mark=","), "\n")
## Ingresos totales por día: $ 80,000
cat("Margen de ganancia esperado:", round(profit_margin, 2), "%\n")
## Margen de ganancia esperado: 40.01 %

-¿Qué nivel de riesgo (variabilidad) tendría la inversión?

cat("NIVEL DE RIESGO:\n")
## NIVEL DE RIESGO:
if (risk < 2000) {
  cat("BAJO")
} else if (risk < 4000) {
  cat("MEDIO")
} else {
  cat("ALTO")
}
## ALTO

R: El proyecto cuenta con un ROI esperado del 40% diario y un tiempo de recuperación de inversión de apenas 2.5 días, lo que lo convierte en una oportunidad de alta viabilidad financiera. Tiene una alta variabilidad lo que significa que las ganancias varían mucho día a día.

Se recomienda que este tipo de operaciónes sean gestionada mediante un equipo especializado en Business Intelligence, Data Science, Gestión de Riesgos y Analítica Operacional, con competencias técnicas en programación de varios lenguajes, machine learning, análisis predictivo y monitoreo en tiempo real. Con el Fin que el equipo permitirá optimizar de forma continua la rentabilidad, reducir los riesgos mediante sistemas de alerta temprana y tomar decisiones basada en datos.

4-Si lo considera necesario puede realizar histogramas que ayuden en su análisis.

colors <- colorRampPalette(c("lightblue", "steelblue", "darkblue"))(50)
hist(casino_gains,
     breaks = 50,
     col = colors,
     border = "white",
     main = "Distribución de Ganancias Diarias del Casino Bollywood",
     xlab = "Ganancia del Casino ($)",
     ylab = "Frecuencia")

# Línea de referencia de la media
abline(v = expected_gain, col = "red", lwd = 2, lty = 2)

# Leyenda para mostrar la media
legend("topright", 
       legend = paste("Media: $", round(expected_gain, 2)),
       col = "red", 
       lty = 2, 
       lwd = 2,
       bg = "white")

Conclusión

Este analisis de una simulación de Monte Carlo confirma que el slot machine es altamente rentable y presenta un riesgo muy bajo para el casino.

Hay una frase muy típica que aparece en muchas películas de este tipo. El año pasado fui a Las Vegas por primera vez para celebrar el cumpleaños 21 de mi mejor amigo. Me acordé que a cada rato escuchaba la frase “La casa siempre gana”, o en inglés “The house always wins”, una expresión muy conocida entre quienes juegan y van mucho a los casino y en Las Vegas es muy comun escucharlo mientras estas sentado en la mesas de 21, maquinitas, mesas de poker etc.

LS0tCnRpdGxlOiAiQWN0aXZpZGFkIDQgTW9kdWxvIDIgLSBTaW11bGFjaW9uZXMgZGUgTW9udGVjYXJsbyIKYXV0aG9yOiAiU2ViYXN0aWFuIEVzcGlub3phIEEwMDgzMzcwNCIKZGF0ZTogIjIwMjUtMDgtMjMiCm91dHB1dDogCiBodG1sX2RvY3VtZW50OiAKICB0b2M6IFRSVUUKICB0b2NfZmxvYXQ6IFRSVUUKICBjb2RlX2Rvd25sb2FkOiBUUlVFCiAgdGhlbWU6IHlldGkKLS0tCgojIDxzcGFuIHN0eWxlPSdjb2xvcjpyZWQ7Jz4gIEFjdGl2aWRhZCA0LiBTaW11bGFjaW9uZXMgZGUgTW9udGVjYXJsbyAgPC9zcGFuPiAKCiFbXShodHRwczovL2ltZzEucGljbWl4LmNvbS9vdXRwdXQvcGljL25vcm1hbC8yLzkvNi80Lzg3NTQ2OTJfYWIxMzQuZ2lmKQoKCiMgPHNwYW4gc3R5bGU9J2NvbG9yOnJlZDsnPiAgMS4gQ29udGV4dG8gZGVsIHByb2JsZW1hICA8L3NwYW4+IAoKKipDYXNvIGRlIEVzdHVkaW86IENhc2lubyBCb2xseXdvb2QqKgoKRWwgQ2FzaW5vIEJvbGx5d29vZCBxdWllcmUgYW5hbGl6YXIgc2kgY29udmllbmUgaW5zdGFsYXIgdW5hIG51ZXZhIHNsb3QgbWFjaGluZSBaaXRybyBBbHRpdXMgR2xhcmUuIEVzdGFzIG3DoXF1aW5hcyB0aWVuZW4gYWx0YSB2YXJpYWJpbGlkYWQgZW4gcHJlbWlvcyB5IGRlcGVuZGVuIGRlbCBhemFyLCBwZXJvIHNpZW1wcmUgZXN0w6FuIGRpc2XDsWFkYXMgcGFyYSBkYXJsZSB1bmEgdmVudGFqYSBhIGxhIGNhc2EuIExhIGdlcmVuY2lhIHF1aWVyZSBzYWJlcjoKCiAgICAqwr9DdcOhbnRvIHB1ZWRlIGdhbmFyIGVuIHByb21lZGlvIGxhIG3DoXF1aW5hIHBvciBkw61hPwoKICAgICrCv1F1w6kgdGFuIGdyYW5kZSBlcyBsYSB2YXJpYWJpbGlkYWQgZGUgZXNhcyBnYW5hbmNpYXM/CgogICAgKsK/Q3XDoWwgZXMgbGEgcHJvYmFiaWxpZGFkIGRlIHF1ZSBsYSBtw6FxdWluYSBkw6kgcMOpcmRpZGFzIGVuIHVuIGTDrWEgdMOtcGljbz8KCgoqKkNvbnNpZGVyZSBsb3Mgc2lndWllbnRlcyBzdXB1ZXN0b3M6KioKCiAgICAqQ2FkYSBqdWdhZG9yIGFwdWVzdGEgMTAgcGVzb3MgcG9yIGp1Z2FkYSAoZXN0byBlcyB0w61waWNvIGVuIHpvbmFzIGRlbm9taW5hZGFzIEZVTikuCgogICAgKkxhIG3DoXF1aW5hIHJlY2liZSBlbiBwcm9tZWRpbyA4LDAwMCBqdWdhZGFzIGVuIHVuIGTDrWEuCgogICAgKkxhIG3DoXF1aW5hIGVzdMOhIHByb2dyYW1hZGEgY29uIGxhIHNpZ3VpZW50ZSB0YWJsYSBkZSBwYWdvczoKClJlc3VsdGFkbwkgICAgICAgIHwgUHJvYmFiaWxpZGFkIHwgUGFnbyAodmVjZXMgbGEgYXB1ZXN0YSkKSmFja3BvdAkgICAgICAgICAgfCAwLjElICAgICAgICAgfCAyMDB4ClByZW1pbyBncmFuZGUJICAgIHwgMSUJICAgICAgICAgfCAyMHgKUHJlbWlvIGNoaWNvCSAgICB8IDEwJQkgICAgICAgICB8IDJ4ClNpbiBwcmVtaW8JICAgICAgfCA4OC45JQkgICAgICAgfCAweAoKIyMgPHNwYW4gc3R5bGU9J2NvbG9yOnJlZDsnPiBSZWFsaWNlIGxvIHNpZ3VpZW50ZTogPC9zcGFuPiAKCioqMS1TaW11bGFyIDEwLDAwMCBkw61hcyBkZSBvcGVyYWNpw7NuIGRlIGxhIG3DoXF1aW5hLioqCgogICAgLUVuIGNhZGEganVnYWRhLCBkZXRlcm1pbmFyIGFsZWF0b3JpYW1lbnRlIHNpIGVsIGp1Z2Fkb3IgZ2FuYSBvIG5vLCB5IGN1w6FudG8uCgogICAgLUNhbGN1bGFyIGxhIGdhbmFuY2lhIGRlbCBjYXNpbm8gY29tbzoKICAgICAgR2FuYW5jaWEgPSBBcHVlc3RhIFRvdGFsIC0gUHJlbWlvcyBQYWdhZG9zCgpgYGB7cn0Kc2V0LnNlZWQoMjAyNSkKIyBQYXLDoW1ldHJvcwpudW1fc2ltdWxhdGlvbnMgPC0gMTAwMDAgICAKcGxheXNfcGVyX2RheSA8LSA4MDAwICAgICAKY29zdF9wZXJfcGxheSA8LSAxMCAgICAgICAgCgpwYXlvdXRzIDwtIGMoMjAwLCAyMCwgMiwgMCkgICAjIFZlY2VzIGxhIGFwdWVzdGEKcHJvYmFiaWxpdGllcyA8LSBjKDAuMDAxLCAwLjAxLCAwLjEwLCAwLjg4OSkgICMgUHJvYmFiaWxpZGFkZXMKCiMgVmVjdG9yIHBhcmEgZ3VhcmRhciByZXN1bHRhZG9zIGRpYXJpb3MKY2FzaW5vX2dhaW5zIDwtIG51bWVyaWMobnVtX3NpbXVsYXRpb25zKQoKIyBTaW11bGFjacOzbiBNb250ZSBDYXJsbwpmb3IgKGkgaW4gMTpudW1fc2ltdWxhdGlvbnMpIHsKICAjIEp1Z2FkYXMgZGVsIGTDrWEKICByZXN1bHRzIDwtIHNhbXBsZShwYXlvdXRzLCBwbGF5c19wZXJfZGF5LCByZXBsYWNlID0gVFJVRSwgcHJvYiA9IHByb2JhYmlsaXRpZXMpCiAgCiAgIyB0b3RhbCByZXZlbnVlIG8gaW5ncmVzb3MgZGVsIGNhc2lubwogIHJldmVudWUgPC0gcGxheXNfcGVyX2RheSAqIGNvc3RfcGVyX3BsYXkKICAKICAjIFByZW1pb3MgcGFnYWRvcwogIHByaXplcyA8LSBzdW0ocmVzdWx0cyAqIGNvc3RfcGVyX3BsYXkpCiAgCiAgIyBHYW5hbmNpYSBuZXRhCiAgY2FzaW5vX2dhaW5zW2ldIDwtIHJldmVudWUgLSBwcml6ZXMKfQpgYGAKCgoqKjItQW5hbGl6YXIgbG9zIHJlc3VsdGFkb3M6KioKCmBgYHtyfQojIEFuw6FsaXNpcyBkZSBSZXN1bHRhZG9zCmV4cGVjdGVkX2dhaW4gPC0gbWVhbihjYXNpbm9fZ2FpbnMpICAgICAgICAKcmlzayA8LSBzZChjYXNpbm9fZ2FpbnMpICAgICAgICAgICAgICAgICAgICAKcHJvYl9sb3NzIDwtIG1lYW4oY2FzaW5vX2dhaW5zIDwgMCkgICAgICAgICAKd29yc3RfY2FzZSA8LSBxdWFudGlsZShjYXNpbm9fZ2FpbnMsIDAuMDUpICAjIEVzY2VuYXJpbyBwZXNpbWlzdGEgNSUgcGVvcgpiZXN0X2Nhc2UgPC0gcXVhbnRpbGUoY2FzaW5vX2dhaW5zLCAwLjk1KSAgICMgRXNjZW5hcmlvIG9wdGltaXN0YSA1JSBtZWpvcgoKIyBSZXN1bHRhZG9zIE9idGVuaWRvcyBkZWwgQW7DoWxpc2lzCmNhdCgiR2FuYW5jaWEgcHJvbWVkaW8gcG9yIGTDrWE6ICQiLCByb3VuZChleHBlY3RlZF9nYWluLCAyKSwgIlxuIikKY2F0KCJWYXJpYWJpbGlkYWQ6ICQiLCByb3VuZChyaXNrLCAyKSwgIlxuIikKY2F0KCJQcm9iYWJpbGlkYWQgZGUgcMOpcmRpZGEgZW4gdW4gZMOtYToiLCByb3VuZChwcm9iX2xvc3MgKiAxMDAsIDIpLCAiJVxuIikKY2F0KCJFc2NlbmFyaW8gcGVzaW1pc3RhOiAkIiwgcm91bmQod29yc3RfY2FzZSwgMiksICJcbiIpCmNhdCgiRXNjZW5hcmlvIG9wdGltaXN0YTogJCIsIHJvdW5kKGJlc3RfY2FzZSwgMiksICJcblxuIikKYGBgCgogIC1HYW5hbmNpYSBwcm9tZWRpbyBwb3IgZMOtYTogKipSKiogJCAzMjAwNS4yNCAKCiAgLVByb2JhYmlsaWRhZCBkZSBxdWUgbGEgbcOhcXVpbmEgZMOpIHDDqXJkaWRhcyBlbiB1biBkw61hOiAqKlIqKjogMC4wMSAlCgoKCgoqKjMtUHJvcG9uZ2EgdW5hIG8gdmFyaWFzIHJlY29tZW5kYWNpb25lcyBhbCBjYXNpbm8gZW4gZnVuY2nDs24gZGU6KioKCiAgLcK/RXMgcmVudGFibGUgaW5zdGFsYXIgbGEgbcOhcXVpbmE/CmBgYHtyfQojIEFuw6FsaXNpcyBkZSByZW50YWJpbGlkYWQKIyMgUXVlcmVtb3MgY29ub2NlciBzaSBlcyByZW50YWJsZSBvIG5vIGVzIHJlbnRhYmxlCnRvdGFsX3JldmVudWUgPC0gcGxheXNfcGVyX2RheSAqIGNvc3RfcGVyX3BsYXkKcHJvZml0X21hcmdpbiA8LSAoZXhwZWN0ZWRfZ2FpbiAvIHRvdGFsX3JldmVudWUpICogMTAwCgpjYXQoIkluZ3Jlc29zIHRvdGFsZXMgcG9yIGTDrWE6ICQiLCBmb3JtYXQodG90YWxfcmV2ZW51ZSwgYmlnLm1hcms9IiwiKSwgIlxuIikKY2F0KCJNYXJnZW4gZGUgZ2FuYW5jaWEgZXNwZXJhZG86Iiwgcm91bmQocHJvZml0X21hcmdpbiwgMiksICIlXG4iKQpgYGAKCiAgLcK/UXXDqSBuaXZlbCBkZSByaWVzZ28gKHZhcmlhYmlsaWRhZCkgdGVuZHLDrWEgbGEgaW52ZXJzacOzbj8KYGBge3J9CmNhdCgiTklWRUwgREUgUklFU0dPOlxuIikKaWYgKHJpc2sgPCAyMDAwKSB7CiAgY2F0KCJCQUpPIikKfSBlbHNlIGlmIChyaXNrIDwgNDAwMCkgewogIGNhdCgiTUVESU8iKQp9IGVsc2UgewogIGNhdCgiQUxUTyIpCn0KYGBgCgoKKipSOioqIEVsIHByb3llY3RvIGN1ZW50YSBjb24gdW4gUk9JIGVzcGVyYWRvIGRlbCA0MCUgZGlhcmlvIHkgdW4gdGllbXBvIGRlIHJlY3VwZXJhY2nDs24gZGUgaW52ZXJzacOzbiBkZSBhcGVuYXMgMi41IGTDrWFzLCBsbyBxdWUgbG8gY29udmllcnRlIGVuIHVuYSBvcG9ydHVuaWRhZCBkZSBhbHRhIHZpYWJpbGlkYWQgZmluYW5jaWVyYS4gVGllbmUgdW5hIGFsdGEgdmFyaWFiaWxpZGFkIGxvIHF1ZSBzaWduaWZpY2EgcXVlIGxhcyBnYW5hbmNpYXMgdmFyw61hbiBtdWNobyBkw61hIGEgZMOtYS4gCgpTZSByZWNvbWllbmRhIHF1ZSBlc3RlIHRpcG8gZGUgb3BlcmFjacOzbmVzIHNlYW4gZ2VzdGlvbmFkYSBtZWRpYW50ZSB1biBlcXVpcG8gZXNwZWNpYWxpemFkbyBlbiBCdXNpbmVzcyBJbnRlbGxpZ2VuY2UsIERhdGEgU2NpZW5jZSwgR2VzdGnDs24gZGUgUmllc2dvcyB5IEFuYWzDrXRpY2EgT3BlcmFjaW9uYWwsIGNvbiBjb21wZXRlbmNpYXMgdMOpY25pY2FzIGVuIHByb2dyYW1hY2nDs24gZGUgdmFyaW9zIGxlbmd1YWplcywgbWFjaGluZSBsZWFybmluZywgYW7DoWxpc2lzIHByZWRpY3Rpdm8geSBtb25pdG9yZW8gZW4gdGllbXBvIHJlYWwuIENvbiBlbCBGaW4gcXVlIGVsIGVxdWlwbyBwZXJtaXRpcsOhIG9wdGltaXphciBkZSBmb3JtYSBjb250aW51YSBsYSByZW50YWJpbGlkYWQsIHJlZHVjaXIgbG9zIHJpZXNnb3MgbWVkaWFudGUgc2lzdGVtYXMgZGUgYWxlcnRhIHRlbXByYW5hIHkgdG9tYXIgZGVjaXNpb25lcyBiYXNhZGEgZW4gZGF0b3MuCiAKKio0LVNpIGxvIGNvbnNpZGVyYSBuZWNlc2FyaW8gcHVlZGUgcmVhbGl6YXIgaGlzdG9ncmFtYXMgcXVlIGF5dWRlbiBlbiBzdSBhbsOhbGlzaXMuKioKCmBgYHtyfQpjb2xvcnMgPC0gY29sb3JSYW1wUGFsZXR0ZShjKCJsaWdodGJsdWUiLCAic3RlZWxibHVlIiwgImRhcmtibHVlIikpKDUwKQpoaXN0KGNhc2lub19nYWlucywKICAgICBicmVha3MgPSA1MCwKICAgICBjb2wgPSBjb2xvcnMsCiAgICAgYm9yZGVyID0gIndoaXRlIiwKICAgICBtYWluID0gIkRpc3RyaWJ1Y2nDs24gZGUgR2FuYW5jaWFzIERpYXJpYXMgZGVsIENhc2lubyBCb2xseXdvb2QiLAogICAgIHhsYWIgPSAiR2FuYW5jaWEgZGVsIENhc2lubyAoJCkiLAogICAgIHlsYWIgPSAiRnJlY3VlbmNpYSIpCgojIEzDrW5lYSBkZSByZWZlcmVuY2lhIGRlIGxhIG1lZGlhCmFibGluZSh2ID0gZXhwZWN0ZWRfZ2FpbiwgY29sID0gInJlZCIsIGx3ZCA9IDIsIGx0eSA9IDIpCgojIExleWVuZGEgcGFyYSBtb3N0cmFyIGxhIG1lZGlhCmxlZ2VuZCgidG9wcmlnaHQiLCAKICAgICAgIGxlZ2VuZCA9IHBhc3RlKCJNZWRpYTogJCIsIHJvdW5kKGV4cGVjdGVkX2dhaW4sIDIpKSwKICAgICAgIGNvbCA9ICJyZWQiLCAKICAgICAgIGx0eSA9IDIsIAogICAgICAgbHdkID0gMiwKICAgICAgIGJnID0gIndoaXRlIikKYGBgCgojIyA8c3BhbiBzdHlsZT0nY29sb3I6cmVkOyc+IENvbmNsdXNpw7NuIDwvc3Bhbj4gCgpFc3RlIGFuYWxpc2lzIGRlIHVuYSBzaW11bGFjacOzbiBkZSBNb250ZSBDYXJsbyBjb25maXJtYSBxdWUgZWwgc2xvdCBtYWNoaW5lIGVzIGFsdGFtZW50ZSByZW50YWJsZSB5IHByZXNlbnRhIHVuIHJpZXNnbyBtdXkgYmFqbyBwYXJhIGVsIGNhc2luby4gCgpIYXkgdW5hIGZyYXNlIG11eSB0w61waWNhIHF1ZSBhcGFyZWNlIGVuIG11Y2hhcyBwZWzDrWN1bGFzIGRlIGVzdGUgdGlwby4gRWwgYcOxbyBwYXNhZG8gZnVpIGEgTGFzIFZlZ2FzIHBvciBwcmltZXJhIHZleiBwYXJhIGNlbGVicmFyIGVsIGN1bXBsZWHDsW9zIDIxIGRlIG1pIG1lam9yIGFtaWdvLiBNZSBhY29yZMOpIHF1ZSBhIGNhZGEgcmF0byBlc2N1Y2hhYmEgbGEgZnJhc2UgKirigJxMYSBjYXNhIHNpZW1wcmUgZ2FuYeKAnSoqLCBvIGVuIGluZ2zDqXMgKirigJxUaGUgaG91c2UgYWx3YXlzIHdpbnPigJ0qKiwgdW5hIGV4cHJlc2nDs24gbXV5IGNvbm9jaWRhIGVudHJlIHF1aWVuZXMganVlZ2FuIHkgdmFuIG11Y2hvIGEgbG9zIGNhc2lubyB5IGVuIExhcyBWZWdhcyBlcyBtdXkgY29tdW4gZXNjdWNoYXJsbyBtaWVudHJhcyBlc3RhcyBzZW50YWRvIGVuIGxhIG1lc2FzIGRlIDIxLCBtYXF1aW5pdGFzLCBtZXNhcyBkZSBwb2tlciBldGMuIAoKCgohW10oL1VzZXJzL3NlYmFzdGlhbmVzcGkvRG93bmxvYWRzL1doYXRzQXBwIEltYWdlIDIwMjQtMTItMjIgYXQgMTYuMDkuMjEuanBlZykKCiFbXSgvVXNlcnMvc2ViYXN0aWFuZXNwaS9Eb3dubG9hZHMvV2hhdHNBcHAgSW1hZ2UgMjAyNC0xMi0yMCBhdCAyMi4yNi4yMC5qcGVnKQoKIVtdKC9Vc2Vycy9zZWJhc3RpYW5lc3BpL0Rvd25sb2Fkcy9XaGF0c0FwcCBJbWFnZSAyMDI0LTEyLTIyIGF0IDE2LjA4LjU2LmpwZWcpCg==