Intervalo de predicción para una sola observación.

EJEMPLO

Hasta el momento, los intervalos revisados son para el promedio de una población o para la mediana de una población. Hay ocasiones en las que no interesa saber la posición central de los datos, si no que se requiere saber donde se ubicará la siguiente medición (solo una).

Por ejemplo, en el caso del contenido de arsénico, uno pudiera preguntarse lo siguiente:

Si realizamos una sola medición de arsénico en agua subterránea de esa región, ¿en que intervalo caerá esa medición?. Note que este cuestionamiento es diferente al que habiamo hecho con los intervalos sobre medias o medianas. En éste ultimo caso la pregunta a responder era: si realizamos varias mediciones de arsénico de aguas subterráneas de esa región: ¿en que intervalo estará la media o la mediana?.

Otro ejemplo, si usamos la situación de los pollos alimentados con maíz transgenico es: Si se pesa a un pollo alimentado con maíz transgenico ¿en que intervalo estará su peso?. Cosa distinta es lo que nos hemos preguntado antes: si seleccionamos varios pollos alimentados con maíz transgénico ¿ en que intervalo estará el peso promedio de ellos?

Pues bien, para elaborar un intervalo de predicción pueden usarse tambien varios métodos:

  1. El primero que revisaremos es cuando los datos son normales:

Ejemplo. Los siguientes datos son sobre las estaturas de alumnos de una universidad.

estaturas <- c(1.54, 1.66, 1.60, 1.69, 1.72, 1.76, 1.56, 1.70, 1.68, 1.75, 1.55,1.61, 1.68, 1.59, 1.58, 1.67, 1.70, 1.75, 1.63, 1.76)

El problema planteado es: Si un nuevo alumno se seleccionará de esa universidad, su estatura en que intervalo estará?

Con la ayuda de un histograma y la prueba de Shapiro primero pruebe si losdatos son normales :

hist(estaturas, col = '#F78181', xlab = 'Estaturas' )

shapiro.test(estaturas)

    Shapiro-Wilk normality test

data:  estaturas
W = 0.93645, p-value = 0.2053

El histograma es ligeramente simétrico, pero como hay pocos datos lo mejor es realizar la prueba de Shapiro. Al hacer la prueba se concluye que los datos son normales (pues el valor p es aprox. 0.20).

Por lo que podremos usar el intervalo para hacer el intervalo de predicción. Los siguiente serequiere hacer en R.

# el tamaño de muestra
n = 20

# calculamos la media
m <- mean(estaturas)
m
[1] 1.659
# ahora la desviación estándar
s <-sd(estaturas) 
s
[1] 0.07239511
# valor de la distribución t al 95%, recuerde que el tamaño de muestra es 20 y en la formula se establece que  n-1
t <- abs(qt(.025,19))
t
[1] 2.093024
  # Ahora los limites del intervalo de predicción

# Límite inferior
li <- m - t*sqrt(s^2+(s^2/n))
li
[1] 1.503733
#Límite superior
ls <- m + t*sqrt(s^2+(s^2/n))
ls
[1] 1.814267

Por lo que la conclusión sería: Al 95% de confianza esa persona seleccionada de la universidad mediria entre 1.50m y 1.81 m.

Ejercicios

  1. Un silvicultor calculó la edad de 25 arboles.
arboles <- c(104, 99, 106, 99, 96, 92, 115, 104, 114, 97, 97, 98, 101, 101, 100, 101, 102, 100, 96, 107, 102, 101, 106, 107, 102)

Si selecciona un siguiente árbol, ¿su edad en que intervalo estará? Al 95 % de confianza.

Se necesita saber si los datos son normles o no.

hist(arboles, col = '#D0F5A9', xlab = 'Edad', main = 'Edad de los árboles')

shapiro.test(arboles)

    Shapiro-Wilk normality test

data:  arboles
W = 0.93771, p-value = 0.1311

El histograma se ve algo asimétrico, sin embargo la prueba de Shapiro indica un valor de p de 0.13 aproximadamente por lo que los datos son normales.

Esto indica que se puede proceder a realizar el Intervalo de predicción con R.

# Tamaño de la Muestra
an <- 25

# Media de la edad de los Árboles
am <- mean(arboles)
am
[1] 101.88
# Desvacion eseándar de los datos 
as <- sd(arboles)
as
[1] 5.286145
#Valor de la distribucion t con 95% de confianza 
at <- abs(qt(0.025,24))
at
[1] 2.063899
# Calculo de los limites del intervalo de predicción

# Limite Inferior
ali <- am - at*sqrt(as^2+(as^2/an))
ali
[1] 90.75387
# Limite Superior
als <- am + at*sqrt(as^2+(as^2/an))
als
[1] 113.0061

Conclusión Ejercicio 1: Se puede concluir que con un 95% de confianza el siguente árbol que el sivilcultor seleccionará, la edad calculada de este estaría entre 91 y 113 años.

  1. Se muestran a continuación los rendimientos (ton/ha) en un cultivo de 22 parcelas de productores:
renPar <- c(9, 12, 5, 9, 10, 3, 9, 4, 9, 7, 10, 10, 8, 10, 7, 10, 12, 5, 9, 7, 8, 9)

Si se selecciona una parcela de otro agricultor ¿cual será su rendimiento? con un intervalo del 95%

Se necesita saber si los datos son normles o no.

hist(renPar, col = '#81DAF5', xlab = 'Rendimiento (ton/ha)', main = 'Rendimiento de las Parcelas')

shapiro.test(renPar)

    Shapiro-Wilk normality test

data:  renPar
W = 0.92548, p-value = 0.09879

A pesar de que en el histograma los datos parecen asimétricos, la prueba de Shapiro indica que estos son normales debido a que el valor de p es de 0.09879, mayor a 0.05.

Se puede prosigue a realizar el cálculo del intervalo de predicción con R.

# Tamaño de la muestra
rn <- 22

# Media
rm <- mean(renPar)
rm
[1] 8.272727
# Desviacion Estándar
rs <- sd(renPar)
rs
[1] 2.374103
# Valor de Distribucion t al 95%, tamano de la muestra 22
rt <- abs(qt(0.025,21))
rt
[1] 2.079614
# Cálculo de los limites del Intervalo de Predición

# Límite Inferior
rli <- rm - rt*sqrt(rs^2+(rs^2/rn))
rli
[1] 3.224548
# Límite Superior
rls <- rm + rt*sqrt(rs^2+(rs^2/rn))
rls
[1] 13.32091

Conclusión Ejercicio 2: Con un 95% de confianza, se puede concluir que, si se seleccionara una parcela de otro agricultor, el rendimiento de esta estará entre 3.23 y 13.32 toneladas por hectárea.

………… Melanie icedo Félix …………

LS0tDQp0aXRsZTogIkFzaWduYWNpw7NuIDMgLSBNZWxhbmllIEljZWRvIEZlbGl4Ig0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KIyBJbnRlcnZhbG8gZGUgcHJlZGljY2nDs24gcGFyYSB1bmEgc29sYSBvYnNlcnZhY2nDs24uDQoNCiMjIEVKRU1QTE8NCg0KSGFzdGEgZWwgbW9tZW50bywgbG9zIGludGVydmFsb3MgcmV2aXNhZG9zIHNvbiBwYXJhIGVsIHByb21lZGlvIGRlIHVuYSBwb2JsYWNpw7NuIG8gcGFyYSBsYSBtZWRpYW5hIGRlIHVuYSBwb2JsYWNpw7NuLiBIYXkgb2Nhc2lvbmVzIGVuIGxhcyBxdWUgbm8gaW50ZXJlc2Egc2FiZXIgbGEgcG9zaWNpw7NuIGNlbnRyYWwgZGUgbG9zIGRhdG9zLCBzaSBubyBxdWUgc2UgcmVxdWllcmUgc2FiZXIgZG9uZGUgc2UgdWJpY2Fyw6EgbGEgc2lndWllbnRlIG1lZGljacOzbiAoc29sbyB1bmEpLg0KDQpQb3IgZWplbXBsbywgZW4gZWwgY2FzbyBkZWwgY29udGVuaWRvIGRlIGFyc8OpbmljbywgdW5vIHB1ZGllcmEgcHJlZ3VudGFyc2UgbG8gc2lndWllbnRlOg0KDQpTaSByZWFsaXphbW9zIHVuYSBzb2xhIG1lZGljacOzbiBkZSBhcnPDqW5pY28gZW4gYWd1YSBzdWJ0ZXJyw6FuZWEgZGUgZXNhIHJlZ2nDs24sIMK/ZW4gcXVlIGludGVydmFsbyBjYWVyw6EgZXNhIG1lZGljacOzbj8uIE5vdGUgcXVlIGVzdGUgY3Vlc3Rpb25hbWllbnRvIGVzIGRpZmVyZW50ZSBhbCBxdWUgaGFiaWFtbyBoZWNobyBjb24gbG9zIGludGVydmFsb3Mgc29icmUgbWVkaWFzIG8gbWVkaWFuYXMuIEVuIMOpc3RlIHVsdGltbyBjYXNvIGxhIHByZWd1bnRhIGEgcmVzcG9uZGVyIGVyYTogc2kgcmVhbGl6YW1vcyB2YXJpYXMgbWVkaWNpb25lcyBkZSBhcnPDqW5pY28gZGUgYWd1YXMgc3VidGVycsOhbmVhcyBkZSBlc2EgcmVnacOzbjogwr9lbiBxdWUgaW50ZXJ2YWxvIGVzdGFyw6EgbGEgbWVkaWEgbyBsYSBtZWRpYW5hPy4NCg0KT3RybyBlamVtcGxvLCBzaSB1c2Ftb3MgbGEgc2l0dWFjacOzbiBkZSBsb3MgcG9sbG9zIGFsaW1lbnRhZG9zIGNvbiBtYcOteiB0cmFuc2dlbmljbyBlczogU2kgc2UgcGVzYSBhIHVuIHBvbGxvIGFsaW1lbnRhZG8gY29uIG1hw616IHRyYW5zZ2VuaWNvIMK/ZW4gcXVlIGludGVydmFsbyBlc3RhcsOhIHN1IHBlc28/LiBDb3NhIGRpc3RpbnRhIGVzIGxvIHF1ZSBub3MgaGVtb3MgcHJlZ3VudGFkbyBhbnRlczogc2kgc2VsZWNjaW9uYW1vcyB2YXJpb3MgcG9sbG9zIGFsaW1lbnRhZG9zIGNvbiBtYcOteiB0cmFuc2fDqW5pY28gwr8gZW4gcXVlIGludGVydmFsbyBlc3RhcsOhIGVsIHBlc28gcHJvbWVkaW8gZGUgZWxsb3M/DQoNClB1ZXMgYmllbiwgcGFyYSBlbGFib3JhciB1biBpbnRlcnZhbG8gZGUgcHJlZGljY2nDs24gcHVlZGVuIHVzYXJzZSB0YW1iaWVuIHZhcmlvcyBtw6l0b2RvczoNCg0KMS4gRWwgcHJpbWVybyBxdWUgcmV2aXNhcmVtb3MgZXMgY3VhbmRvIGxvcyBkYXRvcyBzb24gbm9ybWFsZXM6DQoNCiFbXShJbnRlcnZhbG9zX1ByZWRpY2Npb24ucG5nKQ0KDQoqRWplbXBsby4qIExvcyBzaWd1aWVudGVzIGRhdG9zIHNvbiBzb2JyZSBsYXMgZXN0YXR1cmFzIGRlIGFsdW1ub3MgZGUgdW5hIHVuaXZlcnNpZGFkLg0KDQpgYGB7ciBlamVtcGxvIGVzdGF0dXJhc30NCmVzdGF0dXJhcyA8LSBjKDEuNTQsIDEuNjYsIDEuNjAsIDEuNjksIDEuNzIsIDEuNzYsIDEuNTYsIDEuNzAsIDEuNjgsIDEuNzUsIDEuNTUsMS42MSwgMS42OCwgMS41OSwgMS41OCwgMS42NywgMS43MCwgMS43NSwgMS42MywgMS43NikNCmBgYA0KDQoqKkVsIHByb2JsZW1hIHBsYW50ZWFkbyBlczogU2kgdW4gbnVldm8gYWx1bW5vIHNlIHNlbGVjY2lvbmFyw6EgZGUgZXNhIHVuaXZlcnNpZGFkLCBzdSBlc3RhdHVyYSBlbiBxdWUgaW50ZXJ2YWxvIGVzdGFyw6E/KioNCg0KQ29uIGxhIGF5dWRhIGRlIHVuIGhpc3RvZ3JhbWEgeSBsYSBwcnVlYmEgZGUgU2hhcGlybyBwcmltZXJvIHBydWViZSBzaSBsb3NkYXRvcyBzb24gbm9ybWFsZXMgOg0KDQpgYGB7ciBlamVtcGxvIGhpc3RvZ3JhbWEgeSBzaGFwaXJvfQ0KaGlzdChlc3RhdHVyYXMsIGNvbCA9ICcjRjc4MTgxJywgeGxhYiA9ICdFc3RhdHVyYXMnICkNCnNoYXBpcm8udGVzdChlc3RhdHVyYXMpDQpgYGANCg0KRWwgaGlzdG9ncmFtYSBlcyBsaWdlcmFtZW50ZSBzaW3DqXRyaWNvLCBwZXJvIGNvbW8gaGF5IHBvY29zIGRhdG9zIGxvIG1lam9yIGVzIHJlYWxpemFyIGxhIHBydWViYSBkZSBTaGFwaXJvLiBBbCBoYWNlciBsYSBwcnVlYmEgc2UgY29uY2x1eWUgcXVlIGxvcyBkYXRvcyBzb24gbm9ybWFsZXMgKHB1ZXMgZWwgdmFsb3IgcCBlcyBhcHJveC4gMC4yMCkuDQoNClBvciBsbyBxdWUgcG9kcmVtb3MgdXNhciBlbCBpbnRlcnZhbG8gcGFyYSBoYWNlciBlbCBpbnRlcnZhbG8gZGUgcHJlZGljY2nDs24uIExvcyBzaWd1aWVudGUgc2VyZXF1aWVyZSBoYWNlciBlbiBSLg0KDQpgYGB7ciBFamVtcGxvIGludGVydmFsbyBkZSBwcmVkaWNjacOzbn0NCiMgZWwgdGFtYcOxbyBkZSBtdWVzdHJhDQpuID0gMjANCg0KIyBjYWxjdWxhbW9zIGxhIG1lZGlhDQptIDwtIG1lYW4oZXN0YXR1cmFzKQ0KbQ0KDQojIGFob3JhIGxhIGRlc3ZpYWNpw7NuIGVzdMOhbmRhcg0KcyA8LXNkKGVzdGF0dXJhcykgDQpzDQoNCiMgdmFsb3IgZGUgbGEgZGlzdHJpYnVjacOzbiB0IGFsIDk1JSwgcmVjdWVyZGUgcXVlIGVsIHRhbWHDsW8gZGUgbXVlc3RyYSBlcyAyMCB5IGVuIGxhIGZvcm11bGEgc2UgZXN0YWJsZWNlIHF1ZSAgbi0xDQp0IDwtIGFicyhxdCguMDI1LDE5KSkNCnQNCg0KICAjIEFob3JhIGxvcyBsaW1pdGVzIGRlbCBpbnRlcnZhbG8gZGUgcHJlZGljY2nDs24NCg0KIyBMw61taXRlIGluZmVyaW9yDQpsaSA8LSBtIC0gdCpzcXJ0KHNeMisoc14yL24pKQ0KbGkNCg0KI0zDrW1pdGUgc3VwZXJpb3INCmxzIDwtIG0gKyB0KnNxcnQoc14yKyhzXjIvbikpDQpscw0KYGBgDQoNClBvciBsbyBxdWUgbGEgY29uY2x1c2nDs24gc2Vyw61hOiBBbCA5NSUgZGUgY29uZmlhbnphIGVzYSBwZXJzb25hIHNlbGVjY2lvbmFkYSBkZSBsYSB1bml2ZXJzaWRhZCBtZWRpcmlhIGVudHJlIDEuNTBtIHkgMS44MSBtLg0KDQojIyBFamVyY2ljaW9zDQoNCjEuICoqVW4gc2lsdmljdWx0b3IgY2FsY3Vsw7MgbGEgZWRhZCBkZSAyNSBhcmJvbGVzLioqDQoNCmBgYHtyIHNpdmlsY3VsdHVyYSBlZGFkIEFyYm9sZXN9DQphcmJvbGVzIDwtIGMoMTA0LCA5OSwgMTA2LCA5OSwgOTYsIDkyLCAxMTUsIDEwNCwgMTE0LCA5NywgOTcsIDk4LCAxMDEsIDEwMSwgMTAwLCAxMDEsIDEwMiwgMTAwLCA5NiwgMTA3LCAxMDIsIDEwMSwgMTA2LCAxMDcsIDEwMikNCmBgYA0KDQpTaSBzZWxlY2Npb25hIHVuIHNpZ3VpZW50ZSDDoXJib2wsIMK/c3UgZWRhZCBlbiBxdWUgaW50ZXJ2YWxvIGVzdGFyw6E/IEFsIDk1ICUgZGUgY29uZmlhbnphLg0KDQpTZSBuZWNlc2l0YSBzYWJlciBzaSBsb3MgZGF0b3Mgc29uIG5vcm1sZXMgbyBuby4NCmBgYHtyIG5vcm1hbGlkYWQgYXJib2xlc30NCmhpc3QoYXJib2xlcywgY29sID0gJyNEMEY1QTknLCB4bGFiID0gJ0VkYWQnLCBtYWluID0gJ0VkYWQgZGUgbG9zIMOhcmJvbGVzJykNCnNoYXBpcm8udGVzdChhcmJvbGVzKQ0KYGBgDQoNCkVsIGhpc3RvZ3JhbWEgc2UgdmUgYWxnbyBhc2ltw6l0cmljbywgc2luIGVtYmFyZ28gbGEgcHJ1ZWJhIGRlIFNoYXBpcm8gaW5kaWNhIHVuIHZhbG9yIGRlIHAgZGUgMC4xMyBhcHJveGltYWRhbWVudGUgcG9yIGxvIHF1ZSBsb3MgZGF0b3Mgc29uIG5vcm1hbGVzLg0KDQpFc3RvIGluZGljYSBxdWUgc2UgcHVlZGUgcHJvY2VkZXIgYSByZWFsaXphciBlbCBJbnRlcnZhbG8gZGUgcHJlZGljY2nDs24gY29uIFIuDQoNCmBgYHtyIEludGVydmFsbyBkZSBQcmVkaWNjaW9uIGFyYm9sZXN9DQojIFRhbWHDsW8gZGUgbGEgTXVlc3RyYQ0KYW4gPC0gMjUNCg0KIyBNZWRpYSBkZSBsYSBlZGFkIGRlIGxvcyDDgXJib2xlcw0KYW0gPC0gbWVhbihhcmJvbGVzKQ0KYW0NCg0KIyBEZXN2YWNpb24gZXNlw6FuZGFyIGRlIGxvcyBkYXRvcyANCmFzIDwtIHNkKGFyYm9sZXMpDQphcw0KDQojVmFsb3IgZGUgbGEgZGlzdHJpYnVjaW9uIHQgY29uIDk1JSBkZSBjb25maWFuemEgDQphdCA8LSBhYnMocXQoMC4wMjUsMjQpKQ0KYXQNCg0KIyBDYWxjdWxvIGRlIGxvcyBsaW1pdGVzIGRlbCBpbnRlcnZhbG8gZGUgcHJlZGljY2nDs24NCg0KIyBMaW1pdGUgSW5mZXJpb3INCmFsaSA8LSBhbSAtIGF0KnNxcnQoYXNeMisoYXNeMi9hbikpDQphbGkNCg0KIyBMaW1pdGUgU3VwZXJpb3INCmFscyA8LSBhbSArIGF0KnNxcnQoYXNeMisoYXNeMi9hbikpDQphbHMNCmBgYA0KDQoqKkNvbmNsdXNpw7NuIEVqZXJjaWNpbyAxOioqIFNlIHB1ZWRlIGNvbmNsdWlyIHF1ZSBjb24gdW4gOTUlIGRlIGNvbmZpYW56YSBlbCBzaWd1ZW50ZSDDoXJib2wgcXVlIGVsIHNpdmlsY3VsdG9yIHNlbGVjY2lvbmFyw6EsIGxhIGVkYWQgY2FsY3VsYWRhIGRlIGVzdGUgZXN0YXLDrWEgZW50cmUgOTEgeSAxMTMgYcOxb3MuDQoNCjIuICoqU2UgbXVlc3RyYW4gYSBjb250aW51YWNpw7NuIGxvcyByZW5kaW1pZW50b3MgKHRvbi9oYSkgZW4gdW4gY3VsdGl2byBkZSAyMiBwYXJjZWxhcyBkZSBwcm9kdWN0b3JlczoqKg0KDQpgYGB7ciBSZW5kaW1pZW50byBkZSBsYXMgUGFyY2VsYXN9DQpyZW5QYXIgPC0gYyg5LCAxMiwgNSwgOSwgMTAsIDMsIDksIDQsIDksIDcsIDEwLCAxMCwgOCwgMTAsIDcsIDEwLCAxMiwgNSwgOSwgNywgOCwgOSkNCmBgYA0KDQpTaSBzZSBzZWxlY2Npb25hIHVuYSBwYXJjZWxhIGRlIG90cm8gYWdyaWN1bHRvciDCv2N1YWwgc2Vyw6Egc3UgcmVuZGltaWVudG8/IGNvbiB1biBpbnRlcnZhbG8gZGVsIDk1JQ0KDQpTZSBuZWNlc2l0YSBzYWJlciBzaSBsb3MgZGF0b3Mgc29uIG5vcm1sZXMgbyBuby4NCmBgYHtyIG5vcm1hbGlkYWQgcmVuZGltaWVudG8gcGFyY2VsYXN9DQpoaXN0KHJlblBhciwgY29sID0gJyM4MURBRjUnLCB4bGFiID0gJ1JlbmRpbWllbnRvICh0b24vaGEpJywgbWFpbiA9ICdSZW5kaW1pZW50byBkZSBsYXMgUGFyY2VsYXMnKQ0Kc2hhcGlyby50ZXN0KHJlblBhcikNCmBgYA0KDQpBIHBlc2FyIGRlIHF1ZSBlbiBlbCBoaXN0b2dyYW1hIGxvcyBkYXRvcyBwYXJlY2VuIGFzaW3DqXRyaWNvcywgbGEgcHJ1ZWJhIGRlIFNoYXBpcm8gaW5kaWNhIHF1ZSBlc3RvcyBzb24gbm9ybWFsZXMgZGViaWRvIGEgcXVlIGVsIHZhbG9yIGRlIHAgZXMgZGUgMC4wOTg3OSwgbWF5b3IgYSAwLjA1Lg0KDQpTZSBwdWVkZSBwcm9zaWd1ZSBhIHJlYWxpemFyIGVsIGPDoWxjdWxvIGRlbCBpbnRlcnZhbG8gZGUgcHJlZGljY2nDs24gY29uIFIuDQoNCmBgYHtyIGludGVydmFsbyBkZSBwcmVkaWNjacOzbiByZW5kaW1pZW50b30NCiMgVGFtYcOxbyBkZSBsYSBtdWVzdHJhDQpybiA8LSAyMg0KDQojIE1lZGlhDQpybSA8LSBtZWFuKHJlblBhcikNCnJtDQoNCiMgRGVzdmlhY2lvbiBFc3TDoW5kYXINCnJzIDwtIHNkKHJlblBhcikNCnJzDQoNCiMgVmFsb3IgZGUgRGlzdHJpYnVjaW9uIHQgYWwgOTUlLCB0YW1hbm8gZGUgbGEgbXVlc3RyYSAyMg0KcnQgPC0gYWJzKHF0KDAuMDI1LDIxKSkNCnJ0DQoNCiMgQ8OhbGN1bG8gZGUgbG9zIGxpbWl0ZXMgZGVsIEludGVydmFsbyBkZSBQcmVkaWNpw7NuDQoNCiMgTMOtbWl0ZSBJbmZlcmlvcg0KcmxpIDwtIHJtIC0gcnQqc3FydChyc14yKyhyc14yL3JuKSkNCnJsaQ0KDQojIEzDrW1pdGUgU3VwZXJpb3INCnJscyA8LSBybSArIHJ0KnNxcnQocnNeMisocnNeMi9ybikpDQpybHMNCmBgYA0KDQoqKkNvbmNsdXNpw7NuIEVqZXJjaWNpbyAyOioqIENvbiB1biA5NSUgZGUgY29uZmlhbnphLCBzZSBwdWVkZSBjb25jbHVpciBxdWUsIHNpIHNlIHNlbGVjY2lvbmFyYSB1bmEgcGFyY2VsYSBkZSBvdHJvIGFncmljdWx0b3IsIGVsIHJlbmRpbWllbnRvIGRlIGVzdGEgZXN0YXLDoSBlbnRyZSAzLjIzIHkgMTMuMzIgdG9uZWxhZGFzIHBvciBoZWN0w6FyZWEuDQoNCg0KDQoNCg0KDQoNCg0KLi4uLi4uLi4uLi4uICpNZWxhbmllIGljZWRvIEbDqWxpeCogLi4uLi4uLi4uLi4u