Intervalos de confianza de la diferencia de dos promedios poblacionales (μ1−μ2)

Cuando se requiere saber si los promedios de dos poblaciones (\(\mu_{1}\) y \(\mu_{2}\))son iguales o no, por ejemplo, la estatura promedio de las mujeres (\(\mu_{1}\)) y la estatura promedio de los hombres (\(\mu_{2}\)), se construirá un intervalo de confianza para la diferencia de éstos promedios como sigue:

\((\bar{x}_{1} - \bar{x}_{2}) - z_{\alpha /2} \sqrt{ \frac{s^{2}_{1}}{n_{1}}+\frac{s^{2}_{2}}{n_{2}} } \leq \mu _{1}-\mu _{2} \leq (\bar{x}_{1} - \bar{x}_{2}) + z_{\alpha /2} \sqrt{ \frac{s^{2}_{1}}{n_{1}}+\frac{s^{2}_{2}}{n_{2}}}\)

o de manera breve

\((\bar{x}_{1} - \bar{x}_{2}) \pm z_{\alpha /2} \sqrt{ \frac{s^{2}_{1}}{n_{1}}+\frac{s^{2}_{2}}{n_{2}}}\)

Si el intervalo construido contiene al 0 (es decir que un límite sea negativo y el otro positivo) se concluye que los dos promedios poblacionales son iguales.

Cuando el 0 no este contenido habrá dos maneras de interpretar:

* Si los dos límites son positivos se dice que el promedio en la población 1 es mayor que el promedio en la población 2.

* Si los dos límites son negativos se dice que el promedio en la población 1 es menor que el promedio en la población 2.


Ejemplos


Ejemplo 1. Se quiere saber si la estatura promedio de las mujeres (\(\mu_{1}\)) ITSON es igual o difiere de la estatura promedio de los hombres ITSON (\(\mu_{2}\))

Para poder responder a ese cuestionamiento deben seleccionarse muestras aleatorias de hombres y mujeres. Suponga que se seleccionaron 35 hombres y 35 mujeres. La información se muestra a continuación:

# Mujeres
mujeres <- c(1.54, 1.57, 1.60, 1.60, 1.60, 1.60, 1.61, 1.61, 1.61, 1.61, 1.61, 1.62, 1.62, 1.62, 1.63, 1.63, 1.63, 1.63, 1.63, 1.63, 1.64, 1.64, 1.65, 1.65, 1.65, 1.65, 1.66, 1.66, 1.67, 1.69, 1.70, 1.70, 1.70, 1.70, 1.73)

# Hombres
hombres <- c(1.65, 1.67, 1.67, 1.69, 1.70, 1.70, 1.70, 1.72, 1.72, 1.72, 1.72, 1.73, 1.73, 1.74, 1.74, 1.74, 1.74, 1.75, 1.75, 1.76, 1.76, 1.76, 1.76, 1.76, 1.77, 1.77, 1.78, 1.78, 1.78, 1.78, 1.80, 1.80, 1.80, 1.80, 1.86)

Los cálculos para hacer el intervalo:

  1. Calcular los promedios y desviaciones estándar de las muestras ( \(\bar{x}_{1}\) , \(\bar{x}_{2}\) , \(s_{2}\) y \(s_{1}\) )

Las mujeres de la muestra tienen un promedio y desviación estándar (valores redondeados a dos décimas):

\(\bar{x}_{1}=1.64\) y \(s_{1}=0.04\)
eex1 <- mean(mujeres)
eex1
[1] 1.636857
ees1 <- sd(mujeres)
ees1
[1] 0.03998319

Los hombres de la muestra tienen un promedio y desviación estándar:

\(\bar{x}_{2}=1.75\) y \(s_{2}=0.04\)
eex2 <- mean(hombres)
eex2
[1] 1.745714
ees2 <- sd(hombres)
ees2
[1] 0.04374295

Note que los tamaños de muestra son \(n_{1}=n_{2}=35\)

  1. Según la confianza el valor de \(Z_{α/2}\) será cómo sigue:
  • 99% ——— 2.58
  • 95% ——— 1.96
  • 90% ——— 1.65

En este caso si se establece la confianza en 95% el valor de z será 1.96.

  1. Luego sustituimos en la fórmula del intervalo:
\((\bar{x}_{1} - \bar{x}_{2}) \pm z_{\alpha /2} \sqrt{ \frac{s^{2}_{1}}{n_{1}}+\frac{s^{2}_{2}}{n_{2}}}\)

Observe que en el intervalo está la varianza y cómo se había calculado la desviación estándar, solo se eleva al cuadrado:

emli <- (1.64 - 1.75) - 1.96 * sqrt( (0.04^2/35) + (0.04^2/35) )
emli 
[1] -0.1287412

Ahora el límite superior:

emls <- (1.64 - 1.75) + 1.96 * sqrt( (0.04^2/35) + (0.04^2/35) )
emls 
[1] -0.09125882
  1. Finalmente la interpretación será:

El intervalo va de -0.13 m a -0.09 m o de -13 cm hasta -9 cm. Note que el 0 (cero) NO esta contenido en el intervalo y además los límites son negativos, por lo que se puede decir que:

Al 95% de confianza, el promedio de las estaturas de las mujeres ITSON es menor, desde 9 cm hasta 13 cm, que la estatura promedio de los hombres ITSON.

Note que la conclusión fue hecha considerando a la población.


Ejemplo 2. Para saber si el promedio de calificaciones de alumnos de dos universidades son iguales, se seleccionan a 45 alumnos de la universidad A y a 50 alumnos de la universidad B.

Se obtuvo la siguiente información:

\(\bar{x}_{A1}=8.9\) \(\bar{x}_{B2}=9\) \(s_{A1}=0.35\) \(s_{B2}=0.40\)

Los cálculos para hacer el intervalo:

  1. Según la confianza el valor de \(Z_{α/2}\) será cómo sigue:
  • 99% ——— 2.58
  • 95% ——— 1.96
  • 90% ——— 1.65

En este caso si se establece la confianza en 95% el valor de z será 1.96.

2.Luego sustituimos en la fórmula del intervalo:

Primero, el límite inferior del intervalo:

ecli <- (8.9 - 9) - 1.96 * sqrt( (0.35^2/45) + (0.40^2/50) )
ecli 
[1] -0.2508337

Ahora el límite superior:

ecls <- (8.9 - 9) + 1.96 * sqrt( (0.35^2/45) + (0.40^2/50) )
ecls 
[1] 0.05083371
  1. Finalmente la interpretación será:

El intervalo va de -0.051 puntos a 0.251 puntos. Note que el 0 (cero) esta contenido en el intervalo, por lo que se puede decir que:

Al 95% de confianza, el promedio de las calificaciones de TODOS los alumnos de la universidad A y de TODOS los alumnos de la universidad B son iguales.


Asignación


1. Los siguientes datos son sobre el peso de pollitos alimentados con el alimento A

a1a <- c(293.90, 295.48, 295.64, 295.68, 295.77, 295.97, 296.06, 296.48, 296.53, 296.56, 297.44, 298.67, 298.71, 298.95, 299.08, 299.68, 300.11, 300.49, 300.62, 300.65, 300.66, 300.93, 301.77, 301.93, 302.27, 302.39, 302.52, 302.72, 303.66, 304.07)
length(a1a)
[1] 30

y éstos otros los pesos de pollitos alimentados con el alimento B.

a1b <- c(342.41, 344.24, 345.35, 345.80, 346.14, 347.37, 347.71, 347.98, 348.47, 348.67, 349.06, 349.20, 349.76, 349.85, 350.26, 350.32, 350.37, 350.38, 351.04, 351.15, 351.30, 351.75, 351.88, 352.25, 352.91, 353.05, 353.16, 353.26, 354.00, 354.27, 354.48, 354.67)
length(a1b)
[1] 32

¿Los pesos promedios de los pollos son iguales? si no son iguales ¿cuál alimento es mejor?. Use 95% de confianza.

  1. Obtener la media y la desviación estándar de ambas muestras
# Promedio Pollos alimento A
a1x1 <- mean(a1a)
a1x1
[1] 299.1797
# Des. Est Alimento A
a1s1 <- sd(a1a)
a1s1
[1] 2.857995
# Promedio Pollos alimento B
a1x2 <- mean(a1b)
a1x2
[1] 350.0784
# Des. Est Alimento B
a1s2 <- sd(a1b)
a1s2
[1] 3.09738

El valor de \(Z_{α/2}\) es de 1.96 debido a que la confianza es del 95%.

  1. Obtener los límites del intervalo
# Límite Inferior
a1li <- (a1x1 - a1x2) - 1.96 * sqrt( (a1s1^2/30)  + (a1s2^2/32) )
a1li
[1] -52.38123
# Límite superior
a1ls <- (a1x1 - a1x2) + 1.96 * sqrt( (a1s1^2/30)  + (a1s2^2/32) )
a1ls
[1] -49.41631
  1. Conclusión Ejercicio 1: Los pesos de los pollos con un 95% de confianza se encuentran entre -52.38 y -49.42, esto indica que el promedio del peso de los pollos es mayor cuando son alimentados con el alimento B.

2. Las ganancias promedio del artículo 1 en una muestra de 100 artículos son 1500 pesos con una desviación estándar de 100 pesos. Mientras que en una muestra de tamaño 120 del artículo 2 el promedio es 1600 pesos con una desviación estándar de 150 pesos.

Use una confianza de 90% para decir con cual artículo las ganancias promedio son mayores.

  1. Se calculan los límites.

El valor de \(Z_{α/2}\) es de 1.65 porque la confianza es del 90%

# x1 = 1500 pesos, n1 = 100 artículos , s1 = 100 pesos

# x2 = 1600 pesos, n2 = 120 artículos , s2 = 150 pesos

# Límite Inferior
a2li <- (1500 - 1600) - 1.65 * sqrt( 100^2/100 + 150^2/1600 )
a2li
[1] -117.622
# Límite Superior 
a2ls <- (1500 - 1600) + 1.65 * sqrt( 100^2/100 + 150^2/1600 )
a2ls
[1] -82.37799
  1. Conclusión Ejercicio 2: Con un 90% el intervalo de confianza se encuentra comprendido entre -117.62 y -82.38 pesos por lo que el promedio de las ganancias del artículo 2 es mayor que el del artículo 2.

3. Investigue una situación en donde se deba hacer un intervalo para comparar dos promedios. Con datos inventados o investigados en internet. Realice el intervalo al 99% de confianza y haga sus conclusiones.

NOTA. En éste último ejercicio puede buscar en internet: “ ejercicios de intervalos de confianza de la diferencia de dos promedios”

Se observa la eficiencia de dos departamentos asignándole a cada uno de ellos diez tareas y midiendo su rendimiento en ellas. Los resultados están a continuación:

  • Departamento 1 0,6 - 1,2 - 0,9 - 1,9 - 2 - 0,6 - 0,9 - 2 - 0,8 - 1
  • Departamento 2 0,4 - 1,3 - 1,1 - 2,1 - 1,9 - 0,5 - 1,1 - 1,7 - 0,8 - 1,1

Suponiendo las puntuaciones como variables normales, determinar un intervalo de confianza de 0.9 para la diferencia media de eficiencia.

  1. Calcular la media y la desviación estándar de las poblaciones
# Departamento 1
desp1 <- c(0.6, 1.2, 0.9, 1.9, 2, 0.6, 0.9, 2, 0.8, 1)

  # Media
x1 <- mean(desp1)
x1
[1] 1.19
  # Desviación Estándar
s1 <- sd(desp1)
s1
[1] 0.5646041
#Departamento
desp2 <- c(0.4, 1.3, 1.1, 2.1, 1.9, 0.5, 1.1, 1.7, 0.8, 1.1)

  # Media
x2 <- mean(desp2)
x2
[1] 1.2
  # Desviación Estándar
s2 <- sd(desp2)
s2
[1] 0.5656854
  1. Calcular los limites del intervalo

Como el nivel de confianza es del 90% (0.9) el valor de \(Z_{α/2}\) es de 1.65.

li <- (x1 - x2) - 1.65 * sqrt( s1^2/10 + s2^2/10)
li
[1] -0.4270219
ls <- (x1 - x2) + 1.65 * sqrt( s1^2/10 + s2^2/10)
ls
[1] 0.4070219
  1. Conclusión Ejercicio 3: El intervalo está comprendido entre -0.42 hasta 0.40. Que este incluido el o indica que los promedios poblacionales son iguales, este resultado es obtenido con un 90% de confianza.

Datos Ejercicio 3

……………. Melanie Icedo Félix …………….

LS0tDQp0aXRsZTogIkFzaWduYWNpw7NuIDcgLSBNZWxhbmllIEljZWRvIEZlbGl4Ig0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KPGRpdiBzdHlsZT0idGV4dC1hbGlnbjoganVzdGlmeSI+DQoNCg0KIyBJbnRlcnZhbG9zIGRlIGNvbmZpYW56YSBkZSBsYSBkaWZlcmVuY2lhIGRlIGRvcyBwcm9tZWRpb3MgcG9ibGFjaW9uYWxlcyAozrwx4oiSzrwyKQ0KDQpDdWFuZG8gc2UgcmVxdWllcmUgc2FiZXIgc2kgbG9zIHByb21lZGlvcyBkZSBkb3MgcG9ibGFjaW9uZXMgKCRcbXVfezF9JCB5ICRcbXVfezJ9JClzb24gaWd1YWxlcyBvIG5vLCBwb3IgZWplbXBsbywgbGEgZXN0YXR1cmEgcHJvbWVkaW8gZGUgbGFzIG11amVyZXMgKCRcbXVfezF9JCkgeSBsYSBlc3RhdHVyYSBwcm9tZWRpbyBkZSBsb3MgaG9tYnJlcyAoJFxtdV97Mn0kKSwgc2UgY29uc3RydWlyw6EgdW4gaW50ZXJ2YWxvIGRlIGNvbmZpYW56YSBwYXJhIGxhIGRpZmVyZW5jaWEgZGUgw6lzdG9zIHByb21lZGlvcyBjb21vIHNpZ3VlOg0KDQo8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXIiPg0KDQokKFxiYXJ7eH1fezF9IC0gXGJhcnt4fV97Mn0pIC0gel97XGFscGhhIC8yfSBcc3FydHsgXGZyYWN7c157Mn1fezF9fXtuX3sxfX0rXGZyYWN7c157Mn1fezJ9fXtuX3syfX0gfSBcbGVxIFxtdSBfezF9LVxtdSBfezJ9IFxsZXEgKFxiYXJ7eH1fezF9IC0gXGJhcnt4fV97Mn0pICsgel97XGFscGhhIC8yfSBcc3FydHsgXGZyYWN7c157Mn1fezF9fXtuX3sxfX0rXGZyYWN7c157Mn1fezJ9fXtuX3syfX19JA0KDQo8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBqdXN0aWZ5Ij4NCg0KbyBkZSBtYW5lcmEgYnJldmUNCg0KPGRpdiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyIj4NCg0KJChcYmFye3h9X3sxfSAtIFxiYXJ7eH1fezJ9KSBccG0gel97XGFscGhhIC8yfSBcc3FydHsgXGZyYWN7c157Mn1fezF9fXtuX3sxfX0rXGZyYWN7c157Mn1fezJ9fXtuX3syfX19JA0KDQo8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBqdXN0aWZ5Ij4NCg0KIyMjIyBTaSBlbCBpbnRlcnZhbG8gY29uc3RydWlkbyBjb250aWVuZSBhbCAwIChlcyBkZWNpciBxdWUgdW4gbMOtbWl0ZSBzZWEgbmVnYXRpdm8geSBlbCBvdHJvIHBvc2l0aXZvKSBzZSBjb25jbHV5ZSBxdWUgbG9zIGRvcyBwcm9tZWRpb3MgcG9ibGFjaW9uYWxlcyBzb24gaWd1YWxlcy4NCg0KIyMjIyBDdWFuZG8gZWwgMCBubyBlc3RlIGNvbnRlbmlkbyBoYWJyw6EgZG9zIG1hbmVyYXMgZGUgaW50ZXJwcmV0YXI6DQoNCiMjIyMgKiBTaSBsb3MgZG9zIGzDrW1pdGVzIHNvbiBwb3NpdGl2b3Mgc2UgZGljZSBxdWUgZWwgcHJvbWVkaW8gZW4gbGEgcG9ibGFjacOzbiAxIGVzIG1heW9yIHF1ZSBlbCBwcm9tZWRpbyBlbiBsYSBwb2JsYWNpw7NuIDIuDQoNCiMjIyMgKiBTaSBsb3MgZG9zIGzDrW1pdGVzIHNvbiBuZWdhdGl2b3Mgc2UgZGljZSBxdWUgZWwgcHJvbWVkaW8gZW4gbGEgcG9ibGFjacOzbiAxIGVzIG1lbm9yIHF1ZSBlbCBwcm9tZWRpbyBlbiBsYSBwb2JsYWNpw7NuIDIuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCiMjICoqRWplbXBsb3MqKg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KKipFamVtcGxvIDEuKiogKlNlIHF1aWVyZSBzYWJlciBzaSBsYSBlc3RhdHVyYSBwcm9tZWRpbyBkZSBsYXMgbXVqZXJlcyAoJFxtdV97MX0kKSBJVFNPTiBlcyBpZ3VhbCBvIGRpZmllcmUgZGUgbGEgZXN0YXR1cmEgcHJvbWVkaW8gZGUgbG9zIGhvbWJyZXMgSVRTT04gKCRcbXVfezJ9JCkqDQoNClBhcmEgcG9kZXIgcmVzcG9uZGVyIGEgZXNlIGN1ZXN0aW9uYW1pZW50byBkZWJlbiBzZWxlY2Npb25hcnNlIG11ZXN0cmFzIGFsZWF0b3JpYXMgZGUgaG9tYnJlcyB5IG11amVyZXMuIFN1cG9uZ2EgcXVlIHNlIHNlbGVjY2lvbmFyb24gMzUgaG9tYnJlcyB5IDM1IG11amVyZXMuIExhIGluZm9ybWFjacOzbiBzZSBtdWVzdHJhIGEgY29udGludWFjacOzbjoNCg0KYGBge3IgZWplbXBsbyBlc3RhdHVyYSBpdHNvbn0NCiMgTXVqZXJlcw0KbXVqZXJlcyA8LSBjKDEuNTQsIDEuNTcsIDEuNjAsIDEuNjAsIDEuNjAsIDEuNjAsIDEuNjEsIDEuNjEsIDEuNjEsIDEuNjEsIDEuNjEsIDEuNjIsIDEuNjIsIDEuNjIsIDEuNjMsIDEuNjMsIDEuNjMsIDEuNjMsIDEuNjMsIDEuNjMsIDEuNjQsIDEuNjQsIDEuNjUsIDEuNjUsIDEuNjUsIDEuNjUsIDEuNjYsIDEuNjYsIDEuNjcsIDEuNjksIDEuNzAsIDEuNzAsIDEuNzAsIDEuNzAsIDEuNzMpDQoNCiMgSG9tYnJlcw0KaG9tYnJlcyA8LSBjKDEuNjUsIDEuNjcsIDEuNjcsIDEuNjksIDEuNzAsIDEuNzAsIDEuNzAsIDEuNzIsIDEuNzIsIDEuNzIsIDEuNzIsIDEuNzMsIDEuNzMsIDEuNzQsIDEuNzQsIDEuNzQsIDEuNzQsIDEuNzUsIDEuNzUsIDEuNzYsIDEuNzYsIDEuNzYsIDEuNzYsIDEuNzYsIDEuNzcsIDEuNzcsIDEuNzgsIDEuNzgsIDEuNzgsIDEuNzgsIDEuODAsIDEuODAsIDEuODAsIDEuODAsIDEuODYpDQpgYGANCg0KTG9zIGPDoWxjdWxvcyBwYXJhIGhhY2VyIGVsIGludGVydmFsbzoNCg0KMS4gQ2FsY3VsYXIgbG9zIHByb21lZGlvcyB5IGRlc3ZpYWNpb25lcyBlc3TDoW5kYXIgZGUgbGFzIG11ZXN0cmFzICggJFxiYXJ7eH1fezF9JCAsICRcYmFye3h9X3syfSQgLCAkc197Mn0kIHkgJHNfezF9JCApDQoNCkxhcyBtdWplcmVzIGRlIGxhIG11ZXN0cmEgdGllbmVuIHVuIHByb21lZGlvIHkgZGVzdmlhY2nDs24gZXN0w6FuZGFyICh2YWxvcmVzIHJlZG9uZGVhZG9zIGEgZG9zIGTDqWNpbWFzKToNCg0KPGRpdiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyIj4NCiRcYmFye3h9X3sxfT0xLjY0JCB5ICRzX3sxfT0wLjA0JA0KPGRpdiBzdHlsZT0idGV4dC1hbGlnbjoganVzdGlmeSI+DQoNCmBgYHtyIGUgcHJvbWVkaW8geSBkZXMgZXN0IG11amVyZXN9DQplZXgxIDwtIG1lYW4obXVqZXJlcykNCmVleDENCmVlczEgPC0gc2QobXVqZXJlcykNCmVlczENCmBgYA0KDQpMb3MgaG9tYnJlcyBkZSBsYSBtdWVzdHJhIHRpZW5lbiB1biBwcm9tZWRpbyB5IGRlc3ZpYWNpw7NuIGVzdMOhbmRhcjoNCg0KPGRpdiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyIj4NCiRcYmFye3h9X3syfT0xLjc1JCB5ICRzX3syfT0wLjA0JA0KPGRpdiBzdHlsZT0idGV4dC1hbGlnbjoganVzdGlmeSI+DQoNCmBgYHtyIGUgcHJvbWVkaW8geSBkZXMgZXN0IGhvbWJyZXN9DQplZXgyIDwtIG1lYW4oaG9tYnJlcykNCmVleDINCmVlczIgPC0gc2QoaG9tYnJlcykNCmVlczINCmBgYA0KDQpOb3RlIHF1ZSBsb3MgdGFtYcOxb3MgZGUgbXVlc3RyYSBzb24gJG5fezF9PW5fezJ9PTM1JA0KDQoyLiBTZWfDum4gbGEgY29uZmlhbnphIGVsIHZhbG9yIGRlICRaX3vOsS8yfSQgc2Vyw6EgY8OzbW8gc2lndWU6DQoNCiogKio5OSUg4oCU4oCU4oCUIDIuNTgqKg0KKiAqKjk1JSDigJTigJTigJQgMS45NioqDQoqICoqOTAlIOKAlOKAlOKAlCAxLjY1KioNCg0KRW4gZXN0ZSBjYXNvIHNpIHNlIGVzdGFibGVjZSBsYSBjb25maWFuemEgZW4gOTUlIGVsIHZhbG9yIGRlIHogc2Vyw6EgMS45Ni4NCg0KMy4gTHVlZ28gc3VzdGl0dWltb3MgZW4gbGEgZsOzcm11bGEgZGVsIGludGVydmFsbzoNCg0KPGRpdiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyIj4NCiQoXGJhcnt4fV97MX0gLSBcYmFye3h9X3syfSkgXHBtIHpfe1xhbHBoYSAvMn0gXHNxcnR7IFxmcmFje3NeezJ9X3sxfX17bl97MX19K1xmcmFje3NeezJ9X3syfX17bl97Mn19fSQNCjxkaXYgc3R5bGU9InRleHQtYWxpZ246IGp1c3RpZnkiPg0KDQoNCk9ic2VydmUgcXVlIGVuIGVsIGludGVydmFsbyBlc3TDoSBsYSB2YXJpYW56YSB5IGPDs21vIHNlIGhhYsOtYSBjYWxjdWxhZG8gbGEgZGVzdmlhY2nDs24gZXN0w6FuZGFyLCBzb2xvIHNlIGVsZXZhIGFsIGN1YWRyYWRvOg0KDQpgYGB7ciBlMSBsaW0gaW5mZXJpb3J9DQplbWxpIDwtICgxLjY0IC0gMS43NSkgLSAxLjk2ICogc3FydCggKDAuMDReMi8zNSkgKyAoMC4wNF4yLzM1KSApDQplbWxpIA0KYGBgDQpBaG9yYSBlbCBsw61taXRlIHN1cGVyaW9yOg0KYGBge3IgZTEgbGltIHN1cGVyaW9yfQ0KZW1scyA8LSAoMS42NCAtIDEuNzUpICsgMS45NiAqIHNxcnQoICgwLjA0XjIvMzUpICsgKDAuMDReMi8zNSkgKQ0KZW1scyANCmBgYA0KDQo0LiBGaW5hbG1lbnRlIGxhIGludGVycHJldGFjacOzbiBzZXLDoToNCg0KRWwgaW50ZXJ2YWxvIHZhIGRlIC0wLjEzIG0gYSAtMC4wOSBtIG8gZGUgLTEzIGNtIGhhc3RhIC05IGNtLiBOb3RlIHF1ZSBlbCAwIChjZXJvKSBOTyBlc3RhIGNvbnRlbmlkbyBlbiBlbCBpbnRlcnZhbG8geSBhZGVtw6FzIGxvcyBsw61taXRlcyBzb24gbmVnYXRpdm9zLCBwb3IgbG8gcXVlIHNlIHB1ZWRlIGRlY2lyIHF1ZToNCg0KQWwgOTUlIGRlIGNvbmZpYW56YSwgZWwgcHJvbWVkaW8gZGUgbGFzIGVzdGF0dXJhcyBkZSBsYXMgbXVqZXJlcyBJVFNPTiBlcyBtZW5vciwgZGVzZGUgOSBjbSBoYXN0YSAxMyBjbSwgcXVlIGxhIGVzdGF0dXJhIHByb21lZGlvIGRlIGxvcyBob21icmVzIElUU09OLg0KDQpOb3RlIHF1ZSBsYSBjb25jbHVzacOzbiBmdWUgaGVjaGEgY29uc2lkZXJhbmRvIGEgbGEgcG9ibGFjacOzbi4NCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KKipFamVtcGxvIDIuKiogKlBhcmEgc2FiZXIgc2kgZWwgcHJvbWVkaW8gZGUgY2FsaWZpY2FjaW9uZXMgZGUgYWx1bW5vcyBkZSBkb3MgdW5pdmVyc2lkYWRlcyBzb24gaWd1YWxlcywgc2Ugc2VsZWNjaW9uYW4gYSA0NSBhbHVtbm9zIGRlIGxhIHVuaXZlcnNpZGFkIEEgeSBhIDUwIGFsdW1ub3MgZGUgbGEgdW5pdmVyc2lkYWQgQi4qDQoNClNlIG9idHV2byBsYSBzaWd1aWVudGUgaW5mb3JtYWNpw7NuOg0KDQo8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXIiPg0KJFxiYXJ7eH1fe0ExfT04LjkkICAgJFxiYXJ7eH1fe0IyfT05JCAgICRzX3tBMX09MC4zNSQgICAkc197QjJ9PTAuNDAkDQo8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBqdXN0aWZ5Ij4NCg0KTG9zIGPDoWxjdWxvcyBwYXJhIGhhY2VyIGVsIGludGVydmFsbzoNCg0KMS4gU2Vnw7puIGxhIGNvbmZpYW56YSBlbCB2YWxvciBkZSAkWl97zrEvMn0kIHNlcsOhIGPDs21vIHNpZ3VlOg0KDQoqICoqOTklIOKAlOKAlOKAlCAyLjU4KioNCiogKio5NSUg4oCU4oCU4oCUIDEuOTYqKg0KKiAqKjkwJSDigJTigJTigJQgMS42NSoqDQoNCkVuIGVzdGUgY2FzbyBzaSBzZSBlc3RhYmxlY2UgbGEgY29uZmlhbnphIGVuIDk1JSBlbCB2YWxvciBkZSB6IHNlcsOhIDEuOTYuDQoNCjIuTHVlZ28gc3VzdGl0dWltb3MgZW4gbGEgZsOzcm11bGEgZGVsIGludGVydmFsbzoNCg0KUHJpbWVybywgZWwgbMOtbWl0ZSBpbmZlcmlvciBkZWwgaW50ZXJ2YWxvOg0KYGBge3IgZTIgbGltIGluZmVyaW9yfQ0KZWNsaSA8LSAoOC45IC0gOSkgLSAxLjk2ICogc3FydCggKDAuMzVeMi80NSkgKyAoMC40MF4yLzUwKSApDQplY2xpIA0KYGBgDQpBaG9yYSBlbCBsw61taXRlIHN1cGVyaW9yOg0KYGBge3IgZTIgbGltIHN1cGVyaW9yfQ0KZWNscyA8LSAoOC45IC0gOSkgKyAxLjk2ICogc3FydCggKDAuMzVeMi80NSkgKyAoMC40MF4yLzUwKSApDQplY2xzIA0KYGBgDQoNCjMuIEZpbmFsbWVudGUgbGEgaW50ZXJwcmV0YWNpw7NuIHNlcsOhOg0KDQpFbCBpbnRlcnZhbG8gdmEgZGUgLTAuMDUxIHB1bnRvcyBhIDAuMjUxIHB1bnRvcy4gTm90ZSBxdWUgZWwgMCAoY2VybykgZXN0YSBjb250ZW5pZG8gZW4gZWwgaW50ZXJ2YWxvLCBwb3IgbG8gcXVlIHNlIHB1ZWRlIGRlY2lyIHF1ZToNCg0KQWwgOTUlIGRlIGNvbmZpYW56YSwgZWwgcHJvbWVkaW8gZGUgbGFzIGNhbGlmaWNhY2lvbmVzIGRlIFRPRE9TIGxvcyBhbHVtbm9zIGRlIGxhIHVuaXZlcnNpZGFkIEEgeSBkZSBUT0RPUyBsb3MgYWx1bW5vcyBkZSBsYSB1bml2ZXJzaWRhZCBCIHNvbiBpZ3VhbGVzLg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQojIyAqKkFzaWduYWNpw7NuKioNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCjxkaXYgc3R5bGU9InRleHQtYWxpZ246IGp1c3RpZnkiPg0KKioxLioqICpMb3Mgc2lndWllbnRlcyBkYXRvcyBzb24gc29icmUgZWwgcGVzbyBkZSBwb2xsaXRvcyBhbGltZW50YWRvcyBjb24gZWwgYWxpbWVudG8gQSoNCg0KYGBge3IgYTEgcGVzbyBwb2xsaXRvcyBBfQ0KYTFhIDwtIGMoMjkzLjkwLCAyOTUuNDgsIDI5NS42NCwgMjk1LjY4LCAyOTUuNzcsIDI5NS45NywgMjk2LjA2LCAyOTYuNDgsIDI5Ni41MywgMjk2LjU2LCAyOTcuNDQsIDI5OC42NywgMjk4LjcxLCAyOTguOTUsIDI5OS4wOCwgMjk5LjY4LCAzMDAuMTEsIDMwMC40OSwgMzAwLjYyLCAzMDAuNjUsIDMwMC42NiwgMzAwLjkzLCAzMDEuNzcsIDMwMS45MywgMzAyLjI3LCAzMDIuMzksIDMwMi41MiwgMzAyLjcyLCAzMDMuNjYsIDMwNC4wNykNCmxlbmd0aChhMWEpDQpgYGANCip5IMOpc3RvcyBvdHJvcyBsb3MgcGVzb3MgZGUgcG9sbGl0b3MgYWxpbWVudGFkb3MgY29uIGVsIGFsaW1lbnRvIEIuKg0KYGBge3IgYTEgcGVzbyBwb2xsaXRvcyBCfQ0KYTFiIDwtIGMoMzQyLjQxLCAzNDQuMjQsIDM0NS4zNSwgMzQ1LjgwLCAzNDYuMTQsIDM0Ny4zNywgMzQ3LjcxLCAzNDcuOTgsIDM0OC40NywgMzQ4LjY3LCAzNDkuMDYsIDM0OS4yMCwgMzQ5Ljc2LCAzNDkuODUsIDM1MC4yNiwgMzUwLjMyLCAzNTAuMzcsIDM1MC4zOCwgMzUxLjA0LCAzNTEuMTUsIDM1MS4zMCwgMzUxLjc1LCAzNTEuODgsIDM1Mi4yNSwgMzUyLjkxLCAzNTMuMDUsIDM1My4xNiwgMzUzLjI2LCAzNTQuMDAsIDM1NC4yNywgMzU0LjQ4LCAzNTQuNjcpDQpsZW5ndGgoYTFiKQ0KYGBgDQoNCirCv0xvcyBwZXNvcyBwcm9tZWRpb3MgZGUgbG9zIHBvbGxvcyBzb24gaWd1YWxlcz8gc2kgbm8gc29uIGlndWFsZXMgwr9jdcOhbCBhbGltZW50byBlcyBtZWpvcj8uIFVzZSA5NSUgZGUgY29uZmlhbnphLioNCg0KMS4gT2J0ZW5lciBsYSBtZWRpYSB5IGxhIGRlc3ZpYWNpw7NuIGVzdMOhbmRhciBkZSBhbWJhcyBtdWVzdHJhcw0KYGBge3IgYTEgbWVkaWEgeSBkZXMgZXN0IHBvbGxpdG9zfQ0KIyBQcm9tZWRpbyBQb2xsb3MgYWxpbWVudG8gQQ0KYTF4MSA8LSBtZWFuKGExYSkNCmExeDENCg0KIyBEZXMuIEVzdCBBbGltZW50byBBDQphMXMxIDwtIHNkKGExYSkNCmExczENCg0KIyBQcm9tZWRpbyBQb2xsb3MgYWxpbWVudG8gQg0KYTF4MiA8LSBtZWFuKGExYikNCmExeDINCg0KIyBEZXMuIEVzdCBBbGltZW50byBCDQphMXMyIDwtIHNkKGExYikNCmExczINCg0KYGBgDQoNCkVsIHZhbG9yIGRlICRaX3vOsS8yfSQgZXMgZGUgKioxLjk2KiogZGViaWRvIGEgcXVlIGxhIGNvbmZpYW56YSBlcyBkZWwgOTUlLg0KDQoyLiBPYnRlbmVyIGxvcyBsw61taXRlcyBkZWwgaW50ZXJ2YWxvDQpgYGB7ciBhMSBsaW1pdGVzIHBvbGxpdG9zfQ0KIyBMw61taXRlIEluZmVyaW9yDQphMWxpIDwtIChhMXgxIC0gYTF4MikgLSAxLjk2ICogc3FydCggKGExczFeMi8zMCkgICsgKGExczJeMi8zMikgKQ0KYTFsaQ0KDQojIEzDrW1pdGUgc3VwZXJpb3INCmExbHMgPC0gKGExeDEgLSBhMXgyKSArIDEuOTYgKiBzcXJ0KCAoYTFzMV4yLzMwKSAgKyAoYTFzMl4yLzMyKSApDQphMWxzDQpgYGANCg0KMy4gKipDb25jbHVzacOzbiBFamVyY2ljaW8gMToqKiBMb3MgcGVzb3MgZGUgbG9zIHBvbGxvcyBjb24gdW4gOTUlIGRlIGNvbmZpYW56YSBzZSBlbmN1ZW50cmFuIGVudHJlIC01Mi4zOCB5IC00OS40MiwgZXN0byBpbmRpY2EgcXVlIGVsIHByb21lZGlvIGRlbCBwZXNvIGRlIGxvcyBwb2xsb3MgZXMgbWF5b3IgY3VhbmRvIHNvbiBhbGltZW50YWRvcyBjb24gZWwgYWxpbWVudG8gQi4NCg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQoqKjIuKiogKkxhcyBnYW5hbmNpYXMgcHJvbWVkaW8gZGVsIGFydMOtY3VsbyAxIGVuIHVuYSBtdWVzdHJhIGRlIDEwMCBhcnTDrWN1bG9zIHNvbiAxNTAwIHBlc29zIGNvbiB1bmEgZGVzdmlhY2nDs24gZXN0w6FuZGFyIGRlIDEwMCBwZXNvcy4gTWllbnRyYXMgcXVlIGVuIHVuYSBtdWVzdHJhIGRlIHRhbWHDsW8gMTIwIGRlbCBhcnTDrWN1bG8gMiBlbCBwcm9tZWRpbyBlcyAxNjAwIHBlc29zIGNvbiB1bmEgZGVzdmlhY2nDs24gZXN0w6FuZGFyIGRlIDE1MCBwZXNvcy4qDQoNCipVc2UgdW5hIGNvbmZpYW56YSBkZSA5MCUgcGFyYSBkZWNpciBjb24gY3VhbCBhcnTDrWN1bG8gbGFzIGdhbmFuY2lhcyBwcm9tZWRpbyBzb24gbWF5b3Jlcy4qDQoNCjEuIFNlIGNhbGN1bGFuIGxvcyBsw61taXRlcy4NCg0KRWwgdmFsb3IgZGUgJFpfe86xLzJ9JCBlcyBkZSAqKjEuNjUqKiBwb3JxdWUgbGEgY29uZmlhbnphIGVzIGRlbCA5MCUNCmBgYHtyIGEyIGxpbWl0ZXMgfQ0KIyBBcnTDrWN1bG8NCiAgIyB4MSA9IDE1MDAgcGVzb3MsIG4xID0gMTAwIGFydMOtY3Vsb3MgLCBzMSA9IDEwMCBwZXNvcw0KDQojIEFydMOtY3VsbyAyDQogICMgeDIgPSAxNjAwIHBlc29zLCBuMiA9IDEyMCBhcnTDrWN1bG9zICwgczIgPSAxNTAgcGVzb3MNCg0KIyBMw61taXRlIEluZmVyaW9yDQphMmxpIDwtICgxNTAwIC0gMTYwMCkgLSAxLjY1ICogc3FydCggMTAwXjIvMTAwICsgMTUwXjIvMTYwMCApDQphMmxpDQoNCiMgTMOtbWl0ZSBTdXBlcmlvciANCmEybHMgPC0gKDE1MDAgLSAxNjAwKSArIDEuNjUgKiBzcXJ0KCAxMDBeMi8xMDAgKyAxNTBeMi8xNjAwICkNCmEybHMNCmBgYA0KDQoyLiAqKkNvbmNsdXNpw7NuIEVqZXJjaWNpbyAyOioqIENvbiB1biA5MCUgZWwgaW50ZXJ2YWxvIGRlIGNvbmZpYW56YSBzZSBlbmN1ZW50cmEgY29tcHJlbmRpZG8gZW50cmUgLTExNy42MiB5IC04Mi4zOCBwZXNvcyBwb3IgbG8gcXVlIGVsIHByb21lZGlvIGRlIGxhcyBnYW5hbmNpYXMgZGVsIGFydMOtY3VsbyAyIGVzIG1heW9yIHF1ZSBlbCBkZWwgYXJ0w61jdWxvIDIuDQoNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQoqKjMuKiogKkludmVzdGlndWUgdW5hIHNpdHVhY2nDs24gZW4gZG9uZGUgc2UgZGViYSBoYWNlciB1biBpbnRlcnZhbG8gcGFyYSBjb21wYXJhciBkb3MgcHJvbWVkaW9zLiBDb24gZGF0b3MgaW52ZW50YWRvcyBvIGludmVzdGlnYWRvcyBlbiBpbnRlcm5ldC4gUmVhbGljZSBlbCBpbnRlcnZhbG8gYWwgOTklIGRlIGNvbmZpYW56YSB5IGhhZ2Egc3VzIGNvbmNsdXNpb25lcy4qDQoNCioqTk9UQS4qKiAqRW4gw6lzdGUgw7psdGltbyBlamVyY2ljaW8gcHVlZGUgYnVzY2FyIGVuIGludGVybmV0OiDigJwgZWplcmNpY2lvcyBkZSBpbnRlcnZhbG9zIGRlIGNvbmZpYW56YSBkZSBsYSBkaWZlcmVuY2lhIGRlIGRvcyBwcm9tZWRpb3PigJ0qDQoNCg0KU2Ugb2JzZXJ2YSBsYSBlZmljaWVuY2lhIGRlIGRvcyBkZXBhcnRhbWVudG9zIGFzaWduw6FuZG9sZSBhIGNhZGEgdW5vIGRlIGVsbG9zIGRpZXogdGFyZWFzIHkgbWlkaWVuZG8gc3UgcmVuZGltaWVudG8gZW4gZWxsYXMuIExvcyByZXN1bHRhZG9zIGVzdMOhbiBhIGNvbnRpbnVhY2nDs246DQoNCiogKipEZXBhcnRhbWVudG8gMSoqIDAsNiAtIDEsMiAtIDAsOSAtIDEsOSAtIDIgLSAwLDYgLSAwLDkgLSAyIC0gMCw4IC0gMQ0KKiAqKkRlcGFydGFtZW50byAyKiogMCw0IC0gMSwzIC0gMSwxIC0gMiwxIC0gMSw5IC0gMCw1IC0gMSwxIC0gMSw3IC0gMCw4IC0gMSwxDQoNClN1cG9uaWVuZG8gbGFzIHB1bnR1YWNpb25lcyBjb21vIHZhcmlhYmxlcyBub3JtYWxlcywgZGV0ZXJtaW5hciB1biBpbnRlcnZhbG8gZGUgY29uZmlhbnphIGRlIDAuOSBwYXJhIGxhIGRpZmVyZW5jaWEgbWVkaWEgZGUgZWZpY2llbmNpYS4NCg0KMS4gQ2FsY3VsYXIgbGEgbWVkaWEgeSBsYSBkZXN2aWFjacOzbiBlc3TDoW5kYXIgZGUgbGFzIHBvYmxhY2lvbmVzDQpgYGB7ciBhMiBlamVyY2lvIGludGVuZXR9DQojIERlcGFydGFtZW50byAxDQpkZXNwMSA8LSBjKDAuNiwgMS4yLCAwLjksIDEuOSwgMiwgMC42LCAwLjksIDIsIDAuOCwgMSkNCg0KICAjIE1lZGlhDQp4MSA8LSBtZWFuKGRlc3AxKQ0KeDENCg0KICAjIERlc3ZpYWNpw7NuIEVzdMOhbmRhcg0KczEgPC0gc2QoZGVzcDEpDQpzMQ0KDQojRGVwYXJ0YW1lbnRvDQpkZXNwMiA8LSBjKDAuNCwgMS4zLCAxLjEsIDIuMSwgMS45LCAwLjUsIDEuMSwgMS43LCAwLjgsIDEuMSkNCg0KICAjIE1lZGlhDQp4MiA8LSBtZWFuKGRlc3AyKQ0KeDINCg0KICAjIERlc3ZpYWNpw7NuIEVzdMOhbmRhcg0KczIgPC0gc2QoZGVzcDIpDQpzMg0KYGBgDQoNCjIuIENhbGN1bGFyIGxvcyBsaW1pdGVzIGRlbCBpbnRlcnZhbG8gDQoNCkNvbW8gZWwgbml2ZWwgZGUgY29uZmlhbnphIGVzIGRlbCA5MCUgKDAuOSkgZWwgdmFsb3IgZGUgJFpfe86xLzJ9JCBlcyBkZSAqKjEuNjUqKi4NCg0KYGBge3IgYTIgbGltaXRlcyBkZXBhcnRhbWVudG9zfQ0KbGkgPC0gKHgxIC0geDIpIC0gMS42NSAqIHNxcnQoIHMxXjIvMTAgKyBzMl4yLzEwKQ0KbGkNCg0KbHMgPC0gKHgxIC0geDIpICsgMS42NSAqIHNxcnQoIHMxXjIvMTAgKyBzMl4yLzEwKQ0KbHMNCmBgYA0KDQoNCjMuICoqQ29uY2x1c2nDs24gRWplcmNpY2lvIDM6KiogRWwgaW50ZXJ2YWxvIGVzdMOhIGNvbXByZW5kaWRvIGVudHJlIC0wLjQyIGhhc3RhIDAuNDAuIFF1ZSBlc3RlIGluY2x1aWRvIGVsIG8gaW5kaWNhIHF1ZSBsb3MgcHJvbWVkaW9zIHBvYmxhY2lvbmFsZXMgc29uIGlndWFsZXMsIGVzdGUgcmVzdWx0YWRvIGVzIG9idGVuaWRvIGNvbiB1biA5MCUgZGUgY29uZmlhbnphLg0KDQoNCg0KW0RhdG9zIEVqZXJjaWNpbyAzXShodHRwOi8vd3d3LmVzdC51YzNtLmVzL2VzcC9udWV2YV9kb2NlbmNpYS9nZXRhZmUvY2llbmNpYXNfZXN0YWRpc3RpY2FzL1RlY25pY2FzSW5mZXJlbmNpYUVzdGFkaXN0aWNhL2RvY19ncnVwbzEvSW50ZXJ2YWxvcy1HcmFkbyUyMGVuJTIwRXN0LiUyMHklMjBFbXByXzkucGRmKQ0KDQoNCg0KDQoNCg0KLi4uLi4uLi4uLi4uLi4uLiBNZWxhbmllIEljZWRvIEbDqWxpeCAuLi4uLi4uLi4uLi4uLi4u