EXTRA: Préstamos en Guatemala

SOBRE LOS DATOS

Uno de los análisis extra que decidimos hacer está relacionado con los préstamos, es decir saber qué porcentaje de la población pide y cuántos no lo hacen. De quienes no piden préstamo, saber por qué no lo hacen.

REPRODUCCIÓN DE RESULTADOS

El primer paso consistió en cargar librerías, cargar el dataset, cambiar tipo de datos y nombres.

library(dplyr)
library(haven)
library(ggplot2)
library(corrplot)
library(RColorBrewer)
encovi.prestamos <- read_sav("~/Data Science/ENCOVI/prestamos.sav")
prestamo <- encovi.prestamos %>% select(DEPTO, AREA, POBREZA, P15A01, P15A02)
names(prestamo) <- c("Departamento", "Area", "Pobreza", "Solicito.Prestamo", "No.Solicito")
prestamo$No.Solicito[is.nan(prestamo$No.Solicito)] <- 0
prestamo <-prestamo[complete.cases(prestamo),]
prestamo$Departamento <- as.factor(prestamo$Departamento)
prestamo$Area <- as.factor(prestamo$Area)
prestamo$Pobreza <- as.factor(prestamo$Pobreza)
prestamo$Solicito.Prestamo <- as.character(prestamo$Solicito.Prestamo)
prestamo$No.Solicito <- as.character(prestamo$No.Solicito)
levels(prestamo$Departamento)<- c("Guatemala", "El Progreso", "Sacatepequez", "Chimaltenango", "Escuintla", "Santa Rosa", "Solola", "Totonicapan", "Quetzaltenango", "Suchitepequez", "Retalhuleu", "San Marcos", "Huehuetenango", "Quiche", "Baja Verapaz", "Alta Verapaz", "Peten", "Izabal", "Zacapa", "Chiquimula", "Jalapa", "Jutiapa")
levels(prestamo$Area)<- c("Urbana", "Rural")
levels(prestamo$Pobreza) <- c ("Pobre extremo", "Pobre no extremo", "No pobre")
head(prestamo)

Luego se prosiguió a crear una tabla que muestra los porcentajes por personas que solicitaron préstamo y de quienes no solicitaron préstamo.

prestamototal <- prestamo %>%
  summarise(SolicitoPrestamo = sum(ifelse(Solicito.Prestamo==1,1,0))/n()*100, NoSolicitoPrestamo  = sum(ifelse(Solicito.Prestamo==2,1,0))/n()*100)
prestamototal
prestamoarea <- prestamo %>%
  group_by(Area) %>%
  summarise(SolicitoPrestamo = sum(ifelse(Solicito.Prestamo==1,1,0))/n()*100, NoSolicitoPrestamo  = sum(ifelse(Solicito.Prestamo==2,1,0))/n()*100)
prestamoarea
prestamopobreza <- prestamo %>%
  group_by(Pobreza)  %>%
  summarise(SolicitoPrestamo = sum(ifelse(Solicito.Prestamo==1,1,0))/n()*100, NoSolicitoPrestamo  = sum(ifelse(Solicito.Prestamo==2,1,0))/n()*100)
prestamopobreza

Dado que a partir de las tablas se ve que no hay costumbre de pedir préstamo se decidió analizar por que esto pasaba.

razontotal <- prestamo %>%
  summarise(NoLeGusta = sum(ifelse(No.Solicito == 1,1,0))/n()*100, NoLeDan  = sum(ifelse(No.Solicito==2,1,0))/n()*100, NoNecesita=sum(ifelse(No.Solicito==3,1,0))/n()*100, YaTiene=sum(ifelse(No.Solicito==4,1,0))/n()*100, Otro=sum(ifelse(No.Solicito==98,1,0))/n()*100)
razontotal
razonarea <- prestamo %>%
    group_by(Area)  %>%
  summarise(NoLeGusta = sum(ifelse(No.Solicito == 1,1,0))/n()*100, NoLeDan  = sum(ifelse(No.Solicito==2,1,0))/n()*100, NoNecesita=sum(ifelse(No.Solicito==3,1,0))/n()*100, YaTiene=sum(ifelse(No.Solicito==4,1,0))/n()*100, Otro=sum(ifelse(No.Solicito==98,1,0))/n()*100)
razonarea
razonpobreza <- prestamo %>%
    group_by(Pobreza)  %>%
  summarise(NoLeGusta = sum(ifelse(No.Solicito == 1,1,0))/n()*100, NoLeDan  = sum(ifelse(No.Solicito==2,1,0))/n()*100, NoNecesita=sum(ifelse(No.Solicito==3,1,0))/n()*100, YaTiene=sum(ifelse(No.Solicito==4,1,0))/n()*100, Otro=sum(ifelse(No.Solicito==98,1,0))/n()*100)
razonpobreza
razondep <- prestamo %>%
    group_by(Departamento)  %>%
  summarise(NoLeGusta = sum(ifelse(No.Solicito == 1,1,0))/n()*100, NoLeDan  = sum(ifelse(No.Solicito==2,1,0))/n()*100, NoNecesita=sum(ifelse(No.Solicito==3,1,0))/n()*100, YaTiene=sum(ifelse(No.Solicito==4,1,0))/n()*100, Otro=sum(ifelse(No.Solicito==98,1,0))/n()*100)
razondep

ANÁLISIS

En la tabla generada anteriormente se puede observar que la mayoría de los guatemaltecos viven en casas formales y luego el segundo gran grupo vive en casa improvisada. Con el fin de obtener algunas estadísticas, se decidió sacar los promedios, medianas y valores máximos y mínimos de los datos.

summary(prestamoarea)
     Area   SolicitoPrestamo NoSolicitoPrestamo
 Urbana:1   Min.   :11.05    Min.   :87.39     
 Rural :1   1st Qu.:11.44    1st Qu.:87.78     
            Median :11.83    Median :88.17     
            Mean   :11.83    Mean   :88.17     
            3rd Qu.:12.22    3rd Qu.:88.56     
            Max.   :12.61    Max.   :88.95     
str(razondep)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame':   22 obs. of  6 variables:
 $ Departamento: Factor w/ 22 levels "Guatemala","El Progreso",..: 1 2 3 4 5 6 7 8 9 10 ...
 $ NoLeGusta   : num  37.3 30.5 26.6 30.6 34.1 ...
 $ NoLeDan     : num  16.9 17.7 20.5 13.2 24.5 ...
 $ NoNecesita  : num  30.8 36.2 34 32.3 29.4 ...
 $ YaTiene     : num  1.813 1.235 1.299 3.824 0.817 ...
 $ Otro        : num  4.29 5.97 7.2 6.69 2.45 ...

GRÁFICAS

Gráfica sobre pedir préstamo por pobreza

grafica_pob <- prestamopobreza %>% gather(SolicitaPrestamo, Porcentaje, -Pobreza)
ggplot(data=grafica_pob, aes(x=Pobreza, y=Porcentaje, fill=SolicitaPrestamo)) + geom_bar(stat="identity", position="stack") + labs(title="Solicitud de Préstamo por nivel de pobreza")

Gráfica sobre las razones por las que la gente no solicita préstamo por departamento.

graf_dep <- razondep %>% gather(Razon, Cantidad, -Departamento)
graf_dep$Razon <- factor(graf_dep$Razon)
graf_dep$Cantidad <- as.numeric(graf_dep$Cantidad) / 100
graf_dep %>% ggplot(aes(Departamento, Cantidad)) +
    geom_col(aes(fill = Razon, group = Razon), position = "nudge") +
    theme(axis.text.x = element_text(angle = 90)) +
    labs(title="Razones por las que la gente no solicita préstamo")

CONCLUSIONES

  1. La población guatemalteca no tiene costumbre de pedir préstamo, solamente un 10% de las personas lo habían pedido en el último año (a cuando se realizó el estudio en el 2014). Esto puede ser por la cultura de la gente y la falta de infraestuctura bancaria.
  2. El nivel de pobreza no es un factor influyente en el hecho de que las personas pidan más préstamos. La gente no pobre sí pide un poco más que los pobres y pobres extremos, pero la diferencia no es abismal.
  3. Las razones por las cuales la gente no pide préstamo son principalmente porque ellos piensan que no necesitan y luego porque no les gusta. Se puede ver en la gráfica que en los departamentos del Oriente a las personas no le gustan y en los departamentos centrales la gente no necesita, probablemente porque tienen más estabilidad económica.
LS0tDQp0aXRsZTogIlJlc3VsdGFkb3MgRW5jb3ZpIDIwMTQiDQphdXRob3I6ICJTaGFyaXMgQmFycmlvcywgU2l1IExpbmcgQ2hhbmcsIFJvZG9sZm8gUm9qYXMsIEppbWVuYSBT4W5jaGV6LCBTdWNlbHkgVGV5dWwiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KI0VYVFJBOiBQculzdGFtb3MgZW4gR3VhdGVtYWxhDQoNCiMjIyBTT0JSRSBMT1MgREFUT1MgDQpVbm8gZGUgbG9zIGFu4Wxpc2lzIGV4dHJhIHF1ZSBkZWNpZGltb3MgaGFjZXIgZXN04SByZWxhY2lvbmFkbyBjb24gbG9zIHBy6XN0YW1vcywgZXMgZGVjaXIgc2FiZXIgcXXpIHBvcmNlbnRhamUgZGUgbGEgcG9ibGFjafNuIHBpZGUgeSBjdeFudG9zIG5vIGxvIGhhY2VuLiBEZSBxdWllbmVzIG5vIHBpZGVuIHBy6XN0YW1vLCBzYWJlciBwb3IgcXXpIG5vIGxvIGhhY2VuLg0KDQojIyMgUkVQUk9EVUNDSdNOIERFIFJFU1VMVEFET1MNCkVsIHByaW1lciBwYXNvIGNvbnNpc3Rp8yBlbiBjYXJnYXIgbGlicmVy7WFzLCBjYXJnYXIgZWwgZGF0YXNldCwgY2FtYmlhciB0aXBvIGRlIGRhdG9zIHkgbm9tYnJlcy4NCmBgYHtyfQ0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkoaGF2ZW4pDQpsaWJyYXJ5KGdncGxvdDIpDQpsaWJyYXJ5KGNvcnJwbG90KQ0KbGlicmFyeShSQ29sb3JCcmV3ZXIpDQoNCmVuY292aS5wcmVzdGFtb3MgPC0gcmVhZF9zYXYoIn4vRGF0YSBTY2llbmNlL0VOQ09WSS9wcmVzdGFtb3Muc2F2IikNCnByZXN0YW1vIDwtIGVuY292aS5wcmVzdGFtb3MgJT4lIHNlbGVjdChERVBUTywgQVJFQSwgUE9CUkVaQSwgUDE1QTAxLCBQMTVBMDIpDQpuYW1lcyhwcmVzdGFtbykgPC0gYygiRGVwYXJ0YW1lbnRvIiwgIkFyZWEiLCAiUG9icmV6YSIsICJTb2xpY2l0by5QcmVzdGFtbyIsICJOby5Tb2xpY2l0byIpDQoNCnByZXN0YW1vJE5vLlNvbGljaXRvW2lzLm5hbihwcmVzdGFtbyROby5Tb2xpY2l0byldIDwtIDANCnByZXN0YW1vIDwtcHJlc3RhbW9bY29tcGxldGUuY2FzZXMocHJlc3RhbW8pLF0NCnByZXN0YW1vJERlcGFydGFtZW50byA8LSBhcy5mYWN0b3IocHJlc3RhbW8kRGVwYXJ0YW1lbnRvKQ0KcHJlc3RhbW8kQXJlYSA8LSBhcy5mYWN0b3IocHJlc3RhbW8kQXJlYSkNCnByZXN0YW1vJFBvYnJlemEgPC0gYXMuZmFjdG9yKHByZXN0YW1vJFBvYnJlemEpDQpwcmVzdGFtbyRTb2xpY2l0by5QcmVzdGFtbyA8LSBhcy5jaGFyYWN0ZXIocHJlc3RhbW8kU29saWNpdG8uUHJlc3RhbW8pDQpwcmVzdGFtbyROby5Tb2xpY2l0byA8LSBhcy5jaGFyYWN0ZXIocHJlc3RhbW8kTm8uU29saWNpdG8pDQoNCmxldmVscyhwcmVzdGFtbyREZXBhcnRhbWVudG8pPC0gYygiR3VhdGVtYWxhIiwgIkVsIFByb2dyZXNvIiwgIlNhY2F0ZXBlcXVleiIsICJDaGltYWx0ZW5hbmdvIiwgIkVzY3VpbnRsYSIsICJTYW50YSBSb3NhIiwgIlNvbG9sYSIsICJUb3RvbmljYXBhbiIsICJRdWV0emFsdGVuYW5nbyIsICJTdWNoaXRlcGVxdWV6IiwgIlJldGFsaHVsZXUiLCAiU2FuIE1hcmNvcyIsICJIdWVodWV0ZW5hbmdvIiwgIlF1aWNoZSIsICJCYWphIFZlcmFwYXoiLCAiQWx0YSBWZXJhcGF6IiwgIlBldGVuIiwgIkl6YWJhbCIsICJaYWNhcGEiLCAiQ2hpcXVpbXVsYSIsICJKYWxhcGEiLCAiSnV0aWFwYSIpDQpsZXZlbHMocHJlc3RhbW8kQXJlYSk8LSBjKCJVcmJhbmEiLCAiUnVyYWwiKQ0KbGV2ZWxzKHByZXN0YW1vJFBvYnJlemEpIDwtIGMgKCJQb2JyZSBleHRyZW1vIiwgIlBvYnJlIG5vIGV4dHJlbW8iLCAiTm8gcG9icmUiKQ0KDQpoZWFkKHByZXN0YW1vKQ0KYGBgDQpMdWVnbyBzZSBwcm9zaWd1afMgYSBjcmVhciB1bmEgdGFibGEgcXVlIG11ZXN0cmEgbG9zIHBvcmNlbnRhamVzIHBvciBwZXJzb25hcyBxdWUgc29saWNpdGFyb24gcHLpc3RhbW8geSBkZSBxdWllbmVzIG5vIHNvbGljaXRhcm9uIHBy6XN0YW1vLg0KYGBge3J9DQpwcmVzdGFtb3RvdGFsIDwtIHByZXN0YW1vICU+JQ0KICBzdW1tYXJpc2UoU29saWNpdG9QcmVzdGFtbyA9IHN1bShpZmVsc2UoU29saWNpdG8uUHJlc3RhbW89PTEsMSwwKSkvbigpKjEwMCwgTm9Tb2xpY2l0b1ByZXN0YW1vICA9IHN1bShpZmVsc2UoU29saWNpdG8uUHJlc3RhbW89PTIsMSwwKSkvbigpKjEwMCkNCnByZXN0YW1vdG90YWwNCg0KcHJlc3RhbW9hcmVhIDwtIHByZXN0YW1vICU+JQ0KICBncm91cF9ieShBcmVhKSAlPiUNCiAgc3VtbWFyaXNlKFNvbGljaXRvUHJlc3RhbW8gPSBzdW0oaWZlbHNlKFNvbGljaXRvLlByZXN0YW1vPT0xLDEsMCkpL24oKSoxMDAsIE5vU29saWNpdG9QcmVzdGFtbyAgPSBzdW0oaWZlbHNlKFNvbGljaXRvLlByZXN0YW1vPT0yLDEsMCkpL24oKSoxMDApDQpwcmVzdGFtb2FyZWENCg0KcHJlc3RhbW9wb2JyZXphIDwtIHByZXN0YW1vICU+JQ0KICBncm91cF9ieShQb2JyZXphKSAgJT4lDQogIHN1bW1hcmlzZShTb2xpY2l0b1ByZXN0YW1vID0gc3VtKGlmZWxzZShTb2xpY2l0by5QcmVzdGFtbz09MSwxLDApKS9uKCkqMTAwLCBOb1NvbGljaXRvUHJlc3RhbW8gID0gc3VtKGlmZWxzZShTb2xpY2l0by5QcmVzdGFtbz09MiwxLDApKS9uKCkqMTAwKQ0KcHJlc3RhbW9wb2JyZXphDQpgYGANCg0KRGFkbyBxdWUgYSBwYXJ0aXIgZGUgbGFzIHRhYmxhcyBzZSB2ZSBxdWUgbm8gaGF5IGNvc3R1bWJyZSBkZSBwZWRpciBwculzdGFtbyBzZSBkZWNpZGnzIGFuYWxpemFyIHBvciBxdWUgZXN0byBwYXNhYmEuDQpgYGB7cn0NCnJhem9udG90YWwgPC0gcHJlc3RhbW8gJT4lDQogIHN1bW1hcmlzZShOb0xlR3VzdGEgPSBzdW0oaWZlbHNlKE5vLlNvbGljaXRvID09IDEsMSwwKSkvbigpKjEwMCwgTm9MZURhbiAgPSBzdW0oaWZlbHNlKE5vLlNvbGljaXRvPT0yLDEsMCkpL24oKSoxMDAsIE5vTmVjZXNpdGE9c3VtKGlmZWxzZShOby5Tb2xpY2l0bz09MywxLDApKS9uKCkqMTAwLCBZYVRpZW5lPXN1bShpZmVsc2UoTm8uU29saWNpdG89PTQsMSwwKSkvbigpKjEwMCwgT3Rybz1zdW0oaWZlbHNlKE5vLlNvbGljaXRvPT05OCwxLDApKS9uKCkqMTAwKQ0KcmF6b250b3RhbA0KDQpyYXpvbmFyZWEgPC0gcHJlc3RhbW8gJT4lDQogICAgZ3JvdXBfYnkoQXJlYSkgICU+JQ0KICBzdW1tYXJpc2UoTm9MZUd1c3RhID0gc3VtKGlmZWxzZShOby5Tb2xpY2l0byA9PSAxLDEsMCkpL24oKSoxMDAsIE5vTGVEYW4gID0gc3VtKGlmZWxzZShOby5Tb2xpY2l0bz09MiwxLDApKS9uKCkqMTAwLCBOb05lY2VzaXRhPXN1bShpZmVsc2UoTm8uU29saWNpdG89PTMsMSwwKSkvbigpKjEwMCwgWWFUaWVuZT1zdW0oaWZlbHNlKE5vLlNvbGljaXRvPT00LDEsMCkpL24oKSoxMDAsIE90cm89c3VtKGlmZWxzZShOby5Tb2xpY2l0bz09OTgsMSwwKSkvbigpKjEwMCkNCnJhem9uYXJlYQ0KDQpyYXpvbnBvYnJlemEgPC0gcHJlc3RhbW8gJT4lDQogICAgZ3JvdXBfYnkoUG9icmV6YSkgICU+JQ0KICBzdW1tYXJpc2UoTm9MZUd1c3RhID0gc3VtKGlmZWxzZShOby5Tb2xpY2l0byA9PSAxLDEsMCkpL24oKSoxMDAsIE5vTGVEYW4gID0gc3VtKGlmZWxzZShOby5Tb2xpY2l0bz09MiwxLDApKS9uKCkqMTAwLCBOb05lY2VzaXRhPXN1bShpZmVsc2UoTm8uU29saWNpdG89PTMsMSwwKSkvbigpKjEwMCwgWWFUaWVuZT1zdW0oaWZlbHNlKE5vLlNvbGljaXRvPT00LDEsMCkpL24oKSoxMDAsIE90cm89c3VtKGlmZWxzZShOby5Tb2xpY2l0bz09OTgsMSwwKSkvbigpKjEwMCkNCnJhem9ucG9icmV6YQ0KDQpyYXpvbmRlcCA8LSBwcmVzdGFtbyAlPiUNCiAgICBncm91cF9ieShEZXBhcnRhbWVudG8pICAlPiUNCiAgc3VtbWFyaXNlKE5vTGVHdXN0YSA9IHN1bShpZmVsc2UoTm8uU29saWNpdG8gPT0gMSwxLDApKS9uKCkqMTAwLCBOb0xlRGFuICA9IHN1bShpZmVsc2UoTm8uU29saWNpdG89PTIsMSwwKSkvbigpKjEwMCwgTm9OZWNlc2l0YT1zdW0oaWZlbHNlKE5vLlNvbGljaXRvPT0zLDEsMCkpL24oKSoxMDAsIFlhVGllbmU9c3VtKGlmZWxzZShOby5Tb2xpY2l0bz09NCwxLDApKS9uKCkqMTAwLCBPdHJvPXN1bShpZmVsc2UoTm8uU29saWNpdG89PTk4LDEsMCkpL24oKSoxMDApDQpyYXpvbmRlcA0KDQpgYGANCg0KDQojIyNBTsFMSVNJUw0KRW4gbGEgdGFibGEgZ2VuZXJhZGEgYW50ZXJpb3JtZW50ZSBzZSBwdWVkZSBvYnNlcnZhciBxdWUgbGEgbWF5b3LtYSBkZSBsb3MgZ3VhdGVtYWx0ZWNvcyB2aXZlbiBlbiBjYXNhcyBmb3JtYWxlcyB5IGx1ZWdvIGVsIHNlZ3VuZG8gZ3JhbiBncnVwbyB2aXZlIGVuIGNhc2EgaW1wcm92aXNhZGEuIENvbiBlbCBmaW4gZGUgb2J0ZW5lciBhbGd1bmFzIGVzdGFk7XN0aWNhcywgc2UgZGVjaWRp8yBzYWNhciBsb3MgcHJvbWVkaW9zLCBtZWRpYW5hcyB5IHZhbG9yZXMgbeF4aW1vcyB5IG3tbmltb3MgZGUgbG9zIGRhdG9zLg0KYGBge3J9DQpzdW1tYXJ5KHByZXN0YW1vYXJlYSkNCnN0cihyYXpvbmRlcCkNCmBgYA0KDQojIyMgR1LBRklDQVMgDQpHcuFmaWNhIHNvYnJlIHBlZGlyIHBy6XN0YW1vIHBvciBwb2JyZXphDQpgYGB7cn0NCmdyYWZpY2FfcG9iIDwtIHByZXN0YW1vcG9icmV6YSAlPiUgZ2F0aGVyKFNvbGljaXRhUHJlc3RhbW8sIFBvcmNlbnRhamUsIC1Qb2JyZXphKQ0KZ2dwbG90KGRhdGE9Z3JhZmljYV9wb2IsIGFlcyh4PVBvYnJlemEsIHk9UG9yY2VudGFqZSwgZmlsbD1Tb2xpY2l0YVByZXN0YW1vKSkgKyBnZW9tX2JhcihzdGF0PSJpZGVudGl0eSIsIHBvc2l0aW9uPSJzdGFjayIpICsgbGFicyh0aXRsZT0iU29saWNpdHVkIGRlIFBy6XN0YW1vIHBvciBuaXZlbCBkZSBwb2JyZXphIikNCmBgYA0KDQpHcuFmaWNhIHNvYnJlIGxhcyByYXpvbmVzIHBvciBsYXMgcXVlIGxhIGdlbnRlIG5vIHNvbGljaXRhIHBy6XN0YW1vIHBvciBkZXBhcnRhbWVudG8uDQpgYGB7cn0NCmdyYWZfZGVwIDwtIHJhem9uZGVwICU+JSBnYXRoZXIoUmF6b24sIENhbnRpZGFkLCAtRGVwYXJ0YW1lbnRvKQ0KZ3JhZl9kZXAkUmF6b24gPC0gZmFjdG9yKGdyYWZfZGVwJFJhem9uKQ0KZ3JhZl9kZXAkQ2FudGlkYWQgPC0gYXMubnVtZXJpYyhncmFmX2RlcCRDYW50aWRhZCkgLyAxMDANCg0KZ3JhZl9kZXAgJT4lIGdncGxvdChhZXMoRGVwYXJ0YW1lbnRvLCBDYW50aWRhZCkpICsNCiAgICBnZW9tX2NvbChhZXMoZmlsbCA9IFJhem9uLCBncm91cCA9IFJhem9uKSwgcG9zaXRpb24gPSAibnVkZ2UiKSArDQogICAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA5MCkpICsNCiAgICBsYWJzKHRpdGxlPSJSYXpvbmVzIHBvciBsYXMgcXVlIGxhIGdlbnRlIG5vIHNvbGljaXRhIHBy6XN0YW1vIikNCmBgYA0KDQoNCiMjIyBDT05DTFVTSU9ORVMNCjEuIExhIHBvYmxhY2nzbiBndWF0ZW1hbHRlY2Egbm8gdGllbmUgY29zdHVtYnJlIGRlIHBlZGlyIHBy6XN0YW1vLCBzb2xhbWVudGUgdW4gMTAlIGRlIGxhcyBwZXJzb25hcyBsbyBoYWLtYW4gcGVkaWRvIGVuIGVsIPpsdGltbyBh8W8gKGEgY3VhbmRvIHNlIHJlYWxpevMgZWwgZXN0dWRpbyBlbiBlbCAyMDE0KS4gRXN0byBwdWVkZSBzZXIgcG9yIGxhIGN1bHR1cmEgZGUgbGEgZ2VudGUgeSBsYSBmYWx0YSBkZSBpbmZyYWVzdHVjdHVyYSBiYW5jYXJpYS4NCjIuIEVsIG5pdmVsIGRlIHBvYnJlemEgbm8gZXMgdW4gZmFjdG9yIGluZmx1eWVudGUgZW4gZWwgaGVjaG8gZGUgcXVlIGxhcyBwZXJzb25hcyBwaWRhbiBt4XMgcHLpc3RhbW9zLiBMYSBnZW50ZSBubyBwb2JyZSBz7SBwaWRlIHVuIHBvY28gbeFzIHF1ZSBsb3MgcG9icmVzIHkgcG9icmVzIGV4dHJlbW9zLCBwZXJvIGxhIGRpZmVyZW5jaWEgbm8gZXMgYWJpc21hbC4NCjMuIExhcyByYXpvbmVzIHBvciBsYXMgY3VhbGVzIGxhIGdlbnRlIG5vIHBpZGUgcHLpc3RhbW8gc29uIHByaW5jaXBhbG1lbnRlIHBvcnF1ZSBlbGxvcyBwaWVuc2FuIHF1ZSBubyBuZWNlc2l0YW4geSBsdWVnbyBwb3JxdWUgbm8gbGVzIGd1c3RhLiBTZSBwdWVkZSB2ZXIgZW4gbGEgZ3LhZmljYSBxdWUgZW4gbG9zIGRlcGFydGFtZW50b3MgZGVsIE9yaWVudGUgYSBsYXMgcGVyc29uYXMgbm8gbGUgZ3VzdGFuIHkgZW4gbG9zIGRlcGFydGFtZW50b3MgY2VudHJhbGVzIGxhIGdlbnRlIG5vIG5lY2VzaXRhLCBwcm9iYWJsZW1lbnRlIHBvcnF1ZSB0aWVuZW4gbeFzIGVzdGFiaWxpZGFkIGVjb27zbWljYS4g