library(pscl)
library(tidyverse)
library(tidymodels)
library(modelr)
library(here)
library(janitor)
library(ggbeeswarm)
library(broom)
theme_set(theme_bw())
Os dados que vamos usar foram retirados desse estudo https://ourworldindata.org/life-expectancy que tenta compreender o que aconteceu com a expectativa de vida dos humanos desde 1800. Para isso, temos um conjundo de variaveis que buscam quantificar algumas caracteristicas que podem mudar essa espectativa, tal como morte infantil, uso de alcohol, campanhas de vacinação contra hepatiteb, polio, diphteria, mortes por aids a cada 1000 pessoas, tamanho da população, magreza de adolecentes e criança e escolaridade. Atravéz disso, vamos pegar uma amostra desses dados, onde examinaremos alguns paises que geram atenção desde 2000 até 2015.
paises = c("Brazil","Burundi","Canada","China","Germany","Japan","Mexico", "Russian Federation","Central African Republic", "United States of America")
life_exp<- read_csv(here('Life_Expectancy_Data.csv'), col_types = 'cdcddddddddddddddddddd') %>%
clean_names(., "lower_camel") %>%
filter(country %in% paises, !is.na(life_expectancy))
Expectativa de vida
Vamos começar com uma breve analise desses paises. Estamos mostrando a expectativa de vida nos mesmos.
life_exp %>%
ggplot(aes(x= year, y = lifeExpectancy)) +
geom_point(size=.9)+
geom_line()+
facet_wrap(~country)+
labs(
x = "Ano",
y = "Expectativa de vida em anos"
)

Em uma primeira analise podemos ver que :
Paises africanos com Burindi e Republica africana central são os paises onde os valores de expectativa de vida são os menores dentre todos os outros, não possuindo valores acima de 60 anos de idade.
A Federação Russa parte de um ponto de aprox 65 anos em 2000 até aprox 75 anos em 2015 constando como uma grande evolução no decorrer desse 15 anos.
Paises como Japão, Alemanha e Canada parecem possuir em todos os anos valores de expectativa de vida acima dos 80 anos, tendo Alemanha e Canada com algumas oscilaçoes nesse periodo.
Paises como Brasil, China, USA, Mexico estão no meio termo da expectativa de vida, entre 70 e 80 anos.
Mortalidade de adultos
life_exp %>%
ggplot(aes(x= year, y = adultMortality)) +
geom_point(size=.9)+
geom_line()+
facet_wrap(~country)+
labs(
x = "Ano",
y = "Mortalidade entre adultos"
)

Dentre todos os paises, o que causa uma analise é a Federação russa, Burundi, republica africana centrao , os paises com expectativa de vida menores entre os observados, possuem peridos com grande mortalidade entre os adultos.
Mortalidade infantil
life_exp %>%
ggplot(aes(x= year, y = adultMortality)) +
geom_point(size=.9)+
geom_line()+
facet_wrap(~country)+
labs(
x = "Ano",
y = "Mortalidade entre adultos"
)

Podemos destacar aqui 2 paises, Brazil e a China, onde possuiam indices altos de mortes a cada 1000 crianças, e que conseguiram diminuir. China porém, em 2015, ficou na faixa de 150 mortes a cada 1000 crianças, enquanto no brasil, um pouco abaixo de 50 crianças.
Sumarios estatisticos
sumarios = life_exp %>%
group_by(country) %>%
summarise(mediana_expectativa = median(lifeExpectancy),
mediana_mortalidade_adulta = median(adultMortality),
mediana_mortalidade_infantil = median(infantDeaths),
.groups = "drop")
sumarios
temos que Central African Republic é o pais onde existe a maior media de probabilidade de morrer adulto e a china é o pais onde existem a maior media de mortes infantis a cada 1000 crianças nascidas.
sumarios %>%
mutate(country = fct_reorder(country, desc(mediana_expectativa))) %>%
ggplot(aes(x = country, y = mediana_expectativa))+
coord_flip() +
geom_point()+
labs(y = "Mediana de expectativa de vida", x ="País")

Podemos ver que Japão é o pais com maior mediana na expectativa de vida, e Repulica da africa possui a menor.
sumarios %>%
mutate(country = fct_reorder(country, desc(mediana_mortalidade_adulta))) %>%
ggplot(aes(x = country, y = mediana_mortalidade_adulta))+
coord_flip() +
geom_point() +
labs(y = "Mediana de mortalidade adulta", x ="País")

Temos os USA com pais com menor mediana de mortalidade adulta, enquanto Replublica Africana como a maior.
sumarios %>%
mutate(country = fct_reorder(country, desc(mediana_mortalidade_infantil))) %>%
ggplot(aes(x = country, y = mediana_mortalidade_infantil))+
coord_flip() +
geom_point() +
labs(y = "Mediana de mortalidade Infantil", x ="País")

Evidenciamos a china como o país com maior mediana na mortalidade infantil.
Como o que campanhas de vacinação influenciam na expectativa de vida de sua população.
regressao = lm(lifeExpectancy ~ polio + diphtheria + hepatitisB, data = life_exp)
tidy(regressao, conf.int = TRUE)
glance(regressao)
tidy(regressao, conf.int = TRUE)%>%
filter(term != "(Intercept)") %>%
ggplot(aes(x= reorder(term,estimate), y = estimate, ymin=conf.low, ymax = conf.high))+
geom_linerange()+
geom_point()+
coord_flip() +
labs(x = "Variaveis", y ="Estimativa")

Temos nossa função como lifeExpectancy = 47.6971 + polio * 0.0988 + diphtheria * 0.2750 - hepatitisB * 0.1046
Podemos afirmar que 2 das 3 campanhas de vacinação podem influenciar positivamente no aumento de expectativa de vida.
polio com valor estimado de 0.0988, possui um intevalo de confiança entre [-0.0008, 0.1984] com 95% de confiança, ou seja, ela pode gerar ou não influencia positiva na expectativa de vida.
diphteria entretanto, com seu IC a 95 % de confiança[0.1600, 0.3900] estima que sua mudança é positiva.
hepatite b influencia negativamente na expectativa de vida, contrariando as espectativas IC[-0.1593,- 0.0498]
Entretanto, devemos que por mais que sua diferença seja positiva ou negativa, não existe uma grande mudança, pois no maximo, 0.4 em idade pode ser mudada . Porem, levando em consideração só a campanha de vacinação, sua influencia é de grande importancia para saude das crianças e consequentemente uma melhora na expectativa de vida.
Esse modelo explica 28 % da variavel de reposta(R2 = 0.2815348).
LS0tCnRpdGxlOiAiQW5hbGlzZSBzb2JyZSBleHBlY3RhdGl2YSBkZSB2aWRhIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgpgYGB7ciBlcnJvcj1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1UUlVFLCBwYWdlZC5wcmludD1GQUxTRX0KbGlicmFyeShwc2NsKQpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeSh0aWR5bW9kZWxzKQpsaWJyYXJ5KG1vZGVscikgCmxpYnJhcnkoaGVyZSkKbGlicmFyeShqYW5pdG9yKQpsaWJyYXJ5KGdnYmVlc3dhcm0pCmxpYnJhcnkoYnJvb20pCgoKdGhlbWVfc2V0KHRoZW1lX2J3KCkpCmBgYAoKT3MgZGFkb3MgcXVlIHZhbW9zIHVzYXIgZm9yYW0gcmV0aXJhZG9zIGRlc3NlIGVzdHVkbyA8aHR0cHM6Ly9vdXJ3b3JsZGluZGF0YS5vcmcvbGlmZS1leHBlY3RhbmN5PiBxdWUgdGVudGEgY29tcHJlZW5kZXIgbyBxdWUgYWNvbnRlY2V1IGNvbSBhIGV4cGVjdGF0aXZhIGRlIHZpZGEgZG9zIGh1bWFub3MgZGVzZGUgMTgwMC4gUGFyYSBpc3NvLCB0ZW1vcyB1bSBjb25qdW5kbyBkZSB2YXJpYXZlaXMgcXVlIGJ1c2NhbSBxdWFudGlmaWNhciBhbGd1bWFzIGNhcmFjdGVyaXN0aWNhcyBxdWUgcG9kZW0gbXVkYXIgZXNzYSBlc3BlY3RhdGl2YSwgdGFsIGNvbW8gbW9ydGUgaW5mYW50aWwsIHVzbyBkZSBhbGNvaG9sLCBjYW1wYW5oYXMgZGUgdmFjaW5hw6fDo28gY29udHJhIGhlcGF0aXRlYiwgcG9saW8sIGRpcGh0ZXJpYSwgbW9ydGVzIHBvciBhaWRzIGEgY2FkYSAxMDAwIHBlc3NvYXMsIHRhbWFuaG8gZGEgcG9wdWxhw6fDo28sIG1hZ3JlemEgZGUgYWRvbGVjZW50ZXMgZSBjcmlhbsOnYSBlIGVzY29sYXJpZGFkZS4gQXRyYXbDqXogZGlzc28sIHZhbW9zIHBlZ2FyIHVtYSBhbW9zdHJhIGRlc3NlcyBkYWRvcywgb25kZSBleGFtaW5hcmVtb3MgYWxndW5zIHBhaXNlcyBxdWUgZ2VyYW0gYXRlbsOnw6NvIGRlc2RlIDIwMDAgYXTDqSAyMDE1LgoKYGBge3J9CnBhaXNlcyA9IGMoIkJyYXppbCIsIkJ1cnVuZGkiLCJDYW5hZGEiLCJDaGluYSIsIkdlcm1hbnkiLCJKYXBhbiIsIk1leGljbyIsICJSdXNzaWFuIEZlZGVyYXRpb24iLCJDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMiLCAiVW5pdGVkIFN0YXRlcyBvZiBBbWVyaWNhIikKCmxpZmVfZXhwPC0gcmVhZF9jc3YoaGVyZSgnTGlmZV9FeHBlY3RhbmN5X0RhdGEuY3N2JyksIGNvbF90eXBlcyA9ICdjZGNkZGRkZGRkZGRkZGRkZGRkZGRkJykgJT4lIAogIGNsZWFuX25hbWVzKC4sICJsb3dlcl9jYW1lbCIpICU+JSAKICBmaWx0ZXIoY291bnRyeSAlaW4lIHBhaXNlcywgIWlzLm5hKGxpZmVfZXhwZWN0YW5jeSkpCmBgYAoKIyMgRXhwZWN0YXRpdmEgZGUgdmlkYQoKVmFtb3MgY29tZcOnYXIgY29tIHVtYSBicmV2ZSBhbmFsaXNlIGRlc3NlcyBwYWlzZXMuIEVzdGFtb3MgbW9zdHJhbmRvIGEgZXhwZWN0YXRpdmEgZGUgdmlkYSBub3MgbWVzbW9zLgoKYGBge3J9CmxpZmVfZXhwICU+JQogIGdncGxvdChhZXMoeD0geWVhciwgeSA9IGxpZmVFeHBlY3RhbmN5KSkgKwogIGdlb21fcG9pbnQoc2l6ZT0uOSkrCiAgZ2VvbV9saW5lKCkrCiAgZmFjZXRfd3JhcCh+Y291bnRyeSkrCiAgbGFicygKICAgIHggPSAiQW5vIiwKICAgIHkgPSAiRXhwZWN0YXRpdmEgZGUgdmlkYSBlbSBhbm9zIgogICkKYGBgCgpFbSB1bWEgcHJpbWVpcmEgYW5hbGlzZSBwb2RlbW9zIHZlciBxdWUgOgoKLSAgIFBhaXNlcyBhZnJpY2Fub3MgY29tIEJ1cmluZGkgZSBSZXB1YmxpY2EgYWZyaWNhbmEgY2VudHJhbCBzw6NvIG9zIHBhaXNlcyBvbmRlIG9zIHZhbG9yZXMgZGUgZXhwZWN0YXRpdmEgZGUgdmlkYSBzw6NvIG9zIG1lbm9yZXMgZGVudHJlIHRvZG9zIG9zIG91dHJvcywgbsOjbyBwb3NzdWluZG8gdmFsb3JlcyBhY2ltYSBkZSA2MCBhbm9zIGRlIGlkYWRlLgoKLSAgIEEgRmVkZXJhw6fDo28gUnVzc2EgcGFydGUgZGUgdW0gcG9udG8gZGUgYXByb3ggNjUgYW5vcyBlbSAyMDAwIGF0w6kgYXByb3ggNzUgYW5vcyBlbSAyMDE1IGNvbnN0YW5kbyBjb21vIHVtYSBncmFuZGUgZXZvbHXDp8OjbyBubyBkZWNvcnJlciBkZXNzZSAxNSBhbm9zLgoKLSAgIFBhaXNlcyBjb21vIEphcMOjbywgQWxlbWFuaGEgZSBDYW5hZGEgcGFyZWNlbSBwb3NzdWlyIGVtIHRvZG9zIG9zIGFub3MgdmFsb3JlcyBkZSBleHBlY3RhdGl2YSBkZSB2aWRhIGFjaW1hIGRvcyA4MCBhbm9zLCB0ZW5kbyBBbGVtYW5oYSBlIENhbmFkYSBjb20gYWxndW1hcyBvc2NpbGHDp29lcyBuZXNzZSBwZXJpb2RvLgoKLSAgIFBhaXNlcyBjb21vIEJyYXNpbCwgQ2hpbmEsIFVTQSwgTWV4aWNvIGVzdMOjbyBubyBtZWlvIHRlcm1vIGRhIGV4cGVjdGF0aXZhIGRlIHZpZGEsIGVudHJlIDcwIGUgODAgYW5vcy4KCiMjIE1vcnRhbGlkYWRlIGRlIGFkdWx0b3MKCmBgYHtyfQpsaWZlX2V4cCAlPiUKICBnZ3Bsb3QoYWVzKHg9IHllYXIsIHkgPSBhZHVsdE1vcnRhbGl0eSkpICsKICBnZW9tX3BvaW50KHNpemU9LjkpKwogIGdlb21fbGluZSgpKwogIGZhY2V0X3dyYXAofmNvdW50cnkpKwogIGxhYnMoCiAgICB4ID0gIkFubyIsCiAgICB5ID0gIk1vcnRhbGlkYWRlIGVudHJlIGFkdWx0b3MiCiAgKQpgYGAKCkRlbnRyZSB0b2RvcyBvcyBwYWlzZXMsIG8gcXVlIGNhdXNhIHVtYSBhbmFsaXNlIMOpIGEgRmVkZXJhw6fDo28gcnVzc2EsIEJ1cnVuZGksIHJlcHVibGljYSBhZnJpY2FuYSBjZW50cmFvICwgb3MgcGFpc2VzIGNvbSBleHBlY3RhdGl2YSBkZSB2aWRhIG1lbm9yZXMgZW50cmUgb3Mgb2JzZXJ2YWRvcywgcG9zc3VlbSBwZXJpZG9zIGNvbSBncmFuZGUgbW9ydGFsaWRhZGUgZW50cmUgb3MgYWR1bHRvcy4KCiMjIE1vcnRhbGlkYWRlIGluZmFudGlsCgpgYGB7cn0KbGlmZV9leHAgJT4lCiAgZ2dwbG90KGFlcyh4PSB5ZWFyLCB5ID0gaW5mYW50RGVhdGhzKSkgKwogIGdlb21fcG9pbnQoc2l6ZT0uOSkrCiAgZ2VvbV9saW5lKCkrCiAgZmFjZXRfd3JhcCh+Y291bnRyeSkrCiAgbGFicygKICAgIHggPSAiQW5vIiwKICAgIHkgPSAiTW9ydGFsaWRhZGUgaW5mYW50aWwiCiAgKQpgYGAKClBvZGVtb3MgZGVzdGFjYXIgYXF1aSAyIHBhaXNlcywgQnJhemlsIGUgYSBDaGluYSwgb25kZSBwb3NzdWlhbSBpbmRpY2VzIGFsdG9zIGRlIG1vcnRlcyBhIGNhZGEgMTAwMCBjcmlhbsOnYXMsIGUgcXVlIGNvbnNlZ3VpcmFtIGRpbWludWlyLiBDaGluYSBwb3LDqW0sIGVtIDIwMTUsIGZpY291IG5hIGZhaXhhIGRlIDE1MCBtb3J0ZXMgYSBjYWRhIDEwMDAgY3JpYW7Dp2FzLCBlbnF1YW50byBubyBicmFzaWwsIHVtIHBvdWNvIGFiYWl4byBkZSA1MCBjcmlhbsOnYXMuCgojIyBTdW1hcmlvcyBlc3RhdGlzdGljb3MKCmBgYHtyfQpzdW1hcmlvcyA9IGxpZmVfZXhwICU+JQogIGdyb3VwX2J5KGNvdW50cnkpICU+JSAKICBzdW1tYXJpc2UobWVkaWFuYV9leHBlY3RhdGl2YSA9IG1lZGlhbihsaWZlRXhwZWN0YW5jeSksCiAgICAgICAgICAgIG1lZGlhbmFfbW9ydGFsaWRhZGVfYWR1bHRhID0gbWVkaWFuKGFkdWx0TW9ydGFsaXR5KSwKICAgICAgICAgICAgbWVkaWFuYV9tb3J0YWxpZGFkZV9pbmZhbnRpbCA9IG1lZGlhbihpbmZhbnREZWF0aHMpLAogICAgICAgICAgICAuZ3JvdXBzID0gImRyb3AiKQpzdW1hcmlvcwpgYGAKCnRlbW9zIHF1ZSBDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMgw6kgbyBwYWlzIG9uZGUgZXhpc3RlIGEgbWFpb3IgbWVkaWEgZGUgcHJvYmFiaWxpZGFkZSBkZSBtb3JyZXIgYWR1bHRvIGUgYSBjaGluYSDDqSBvIHBhaXMgb25kZSBleGlzdGVtIGEgbWFpb3IgbWVkaWEgZGUgbW9ydGVzIGluZmFudGlzIGEgY2FkYSAxMDAwIGNyaWFuw6dhcyBuYXNjaWRhcy4KCmBgYHtyfQpzdW1hcmlvcyAlPiUgCiAgbXV0YXRlKGNvdW50cnkgPSBmY3RfcmVvcmRlcihjb3VudHJ5LCBkZXNjKG1lZGlhbmFfZXhwZWN0YXRpdmEpKSkgJT4lIAogIGdncGxvdChhZXMoeCA9IGNvdW50cnksIHkgPSBtZWRpYW5hX2V4cGVjdGF0aXZhKSkrCiAgY29vcmRfZmxpcCgpICsKICBnZW9tX3BvaW50KCkrCiAgbGFicyh5ID0gIk1lZGlhbmEgZGUgZXhwZWN0YXRpdmEgZGUgdmlkYSIsIHggPSJQYcOtcyIpCmBgYAoKUG9kZW1vcyB2ZXIgcXVlIEphcMOjbyDDqSBvIHBhaXMgY29tIG1haW9yIG1lZGlhbmEgbmEgZXhwZWN0YXRpdmEgZGUgdmlkYSwgZSBSZXB1bGljYSBkYSBhZnJpY2EgcG9zc3VpIGEgbWVub3IuCgpgYGB7cn0Kc3VtYXJpb3MgJT4lIAogIG11dGF0ZShjb3VudHJ5ID0gZmN0X3Jlb3JkZXIoY291bnRyeSwgZGVzYyhtZWRpYW5hX21vcnRhbGlkYWRlX2FkdWx0YSkpKSAlPiUgCiAgZ2dwbG90KGFlcyh4ID0gY291bnRyeSwgeSA9IG1lZGlhbmFfbW9ydGFsaWRhZGVfYWR1bHRhKSkrCiAgY29vcmRfZmxpcCgpICsKICBnZW9tX3BvaW50KCkgKwogIGxhYnMoeSA9ICJNZWRpYW5hIGRlIG1vcnRhbGlkYWRlIGFkdWx0YSIsIHggPSJQYcOtcyIpCmBgYAoKVGVtb3Mgb3MgVVNBIGNvbSBwYWlzIGNvbSBtZW5vciBtZWRpYW5hIGRlIG1vcnRhbGlkYWRlIGFkdWx0YSwgZW5xdWFudG8gUmVwbHVibGljYSBBZnJpY2FuYSBjb21vIGEgbWFpb3IuCgpgYGB7cn0Kc3VtYXJpb3MgJT4lIAogIG11dGF0ZShjb3VudHJ5ID0gZmN0X3Jlb3JkZXIoY291bnRyeSwgZGVzYyhtZWRpYW5hX21vcnRhbGlkYWRlX2luZmFudGlsKSkpICU+JSAKICBnZ3Bsb3QoYWVzKHggPSBjb3VudHJ5LCB5ID0gbWVkaWFuYV9tb3J0YWxpZGFkZV9pbmZhbnRpbCkpKwogIGNvb3JkX2ZsaXAoKSArCiAgZ2VvbV9wb2ludCgpICsgCiAgbGFicyh5ID0gIk1lZGlhbmEgZGUgbW9ydGFsaWRhZGUgSW5mYW50aWwiLCB4ID0iUGHDrXMiKQpgYGAKCkV2aWRlbmNpYW1vcyBhIGNoaW5hIGNvbW8gbyBwYcOtcyBjb20gbWFpb3IgbWVkaWFuYSBuYSBtb3J0YWxpZGFkZSBpbmZhbnRpbC4KCiMjIENvbW8gbyBxdWUgY2FtcGFuaGFzIGRlIHZhY2luYcOnw6NvIGluZmx1ZW5jaWFtIG5hIGV4cGVjdGF0aXZhIGRlIHZpZGEgZGUgc3VhIHBvcHVsYcOnw6NvLgoKYGBge3J9CnJlZ3Jlc3NhbyA9IGxtKGxpZmVFeHBlY3RhbmN5IH4gIHBvbGlvICsgZGlwaHRoZXJpYSArIGhlcGF0aXRpc0IsIGRhdGEgPSBsaWZlX2V4cCkKdGlkeShyZWdyZXNzYW8sIGNvbmYuaW50ID0gVFJVRSkKZ2xhbmNlKHJlZ3Jlc3NhbykKYGBgCgpgYGB7cn0KdGlkeShyZWdyZXNzYW8sIGNvbmYuaW50ID0gVFJVRSklPiUgCiAgZmlsdGVyKHRlcm0gIT0gIihJbnRlcmNlcHQpIikgJT4lIAogIGdncGxvdChhZXMoeD0gcmVvcmRlcih0ZXJtLGVzdGltYXRlKSwgeSA9IGVzdGltYXRlLCB5bWluPWNvbmYubG93LCB5bWF4ID0gY29uZi5oaWdoKSkrCiAgZ2VvbV9saW5lcmFuZ2UoKSsKICBnZW9tX3BvaW50KCkrCiAgY29vcmRfZmxpcCgpICsKICBsYWJzKHggPSAiVmFyaWF2ZWlzIiwgeSA9IkVzdGltYXRpdmEiKQpgYGAKClRlbW9zIG5vc3NhIGZ1bsOnw6NvIGNvbW8gbGlmZUV4cGVjdGFuY3kgPSA0Ny42OTcxICsgcG9saW8gXCogMC4wOTg4ICsgZGlwaHRoZXJpYSBcKiAwLjI3NTAgLSBoZXBhdGl0aXNCIFwqIDAuMTA0NgoKUG9kZW1vcyBhZmlybWFyIHF1ZSAyIGRhcyAzIGNhbXBhbmhhcyBkZSB2YWNpbmHDp8OjbyBwb2RlbSBpbmZsdWVuY2lhciBwb3NpdGl2YW1lbnRlIG5vIGF1bWVudG8gZGUgZXhwZWN0YXRpdmEgZGUgdmlkYS4KCi0gICBwb2xpbyBjb20gdmFsb3IgZXN0aW1hZG8gZGUgMC4wOTg4LCBwb3NzdWkgdW0gaW50ZXZhbG8gZGUgY29uZmlhbsOnYSBlbnRyZSBbLTAuMDAwOCwgMC4xOTg0XSBjb20gOTUlIGRlIGNvbmZpYW7Dp2EsIG91IHNlamEsIGVsYSBwb2RlIGdlcmFyIG91IG7Do28gaW5mbHVlbmNpYSBwb3NpdGl2YSBuYSBleHBlY3RhdGl2YSBkZSB2aWRhLgoKLSAgIGRpcGh0ZXJpYSBlbnRyZXRhbnRvLCBjb20gc2V1IElDIGEgOTUgJSBkZSBjb25maWFuw6dhWzAuMTYwMCwgMC4zOTAwXSBlc3RpbWEgcXVlIHN1YSBtdWRhbsOnYSDDqSBwb3NpdGl2YS4KCi0gICBoZXBhdGl0ZSBiIGluZmx1ZW5jaWEgbmVnYXRpdmFtZW50ZSBuYSBleHBlY3RhdGl2YSBkZSB2aWRhLCBjb250cmFyaWFuZG8gYXMgZXNwZWN0YXRpdmFzIElDWy0wLjE1OTMsLSAwLjA0OThdCgpFbnRyZXRhbnRvLCBkZXZlbW9zIHF1ZSBwb3IgbWFpcyBxdWUgc3VhIGRpZmVyZW7Dp2Egc2VqYSBwb3NpdGl2YSBvdSBuZWdhdGl2YSwgbsOjbyBleGlzdGUgdW1hIGdyYW5kZSBtdWRhbsOnYSwgcG9pcyBubyBtYXhpbW8sIDAuNCBlbSBpZGFkZSBwb2RlIHNlciBtdWRhZGEgLiBQb3JlbSwgbGV2YW5kbyBlbSBjb25zaWRlcmHDp8OjbyBzw7MgYSBjYW1wYW5oYSBkZSB2YWNpbmHDp8Ojbywgc3VhIGluZmx1ZW5jaWEgw6kgZGUgZ3JhbmRlIGltcG9ydGFuY2lhIHBhcmEgc2F1ZGUgZGFzIGNyaWFuw6dhcyBlIGNvbnNlcXVlbnRlbWVudGUgdW1hIG1lbGhvcmEgbmEgZXhwZWN0YXRpdmEgZGUgdmlkYS4KCkVzc2UgbW9kZWxvIGV4cGxpY2EgMjggJSBkYSB2YXJpYXZlbCBkZSByZXBvc3RhKFIyID0gMC4yODE1MzQ4KS4K