
Día 1 Medidas de Tendencia Central
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.2.3
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
#Medidas de Tendencia Central
recibos <- c(266.63,
163.41,
219.41,
162.64,
187.16,
289.17,
306.55,
335.48,
343.50,
226.80,
208.99,
230.46)
#Media o Promedio
media <- mean(recibos)
media
## [1] 245.0167
#Mediana
mediana <-median(recibos)
mediana
## [1] 228.63
#Moda
#En R no hay función directa oara moda
#Rango
#La funcion range solo otorga el maximo y minimo
rango <- max(recibos) - min(recibos)
rango
## [1] 180.86
#Varianza
varianza <- var(recibos)
varianza
## [1] 3943.264
#proceso manual
recibos1 <- recibos-media
recibos2 <- recibos1*recibos1
recibos3 <- sum(recibos2)
Varianza_Poblacional <- recibos3/12
Varianza_Poblacional
## [1] 3614.659
#Desviación Estándar
#Aplicas Raíz Cuadrada a Varianza
desvest <- sqrt(Varianza_Poblacional)
desvest
## [1] 60.12203

Día 2 Distribución Normal
#Ejercicio 1
#a Menor a 600
a<- pnorm(600,1300,600)*100
a
## [1] 12.16725
#b Entre 1000 y 1500
b<- pnorm(1500,1300,600)*100 - pnorm(1000,1300,600)*100
b
## [1] 32.20211
#c Mayor 2200
c <- (1-pnorm(2200,1300,600))*100
c
## [1] 6.68072
#Ejercicio 2
#Temperatura Menor a 21
Menor21 <-pnorm(21,18.7,5)
Menor21
## [1] 0.6772419
#Temperatura mayor a 21
Mayor21<- 1-pnorm(21,18.7,5)
Mayor21
## [1] 0.3227581
#Ejercicio 3
stv<- sqrt(16)
#3a Mayor a 90 horas
TresA <- 1-pnorm(90,80,stv)
TresA
## [1] 0.006209665
#3b Entre 70 y 85 horas
TresB <- pnorm(85,80,stv)-pnorm(70,80,stv)
TresB
## [1] 0.8881406
#3c Cantidad de Pilas de 1000, que duran más de 100 horas
TresC<- (1-pnorm(100,80,stv))*1000
TresC
## [1] 0.0002866516
#3d Cantidad de pilas de 1000, que duran más de 90 horas
TresD<- (1-pnorm(90,80,stv))*1000
TresD
## [1] 6.209665
Día 3 Pruebas de Hipotésis
Conceptos Generales
Es un procedimiento basado en la evidencia muestral y en la teoría de
probabilidad que se emplea para determinar si la hipotésis es un
enunciado racional y no debe rechazarse o si es irracional y debe ser
rechazada.
En un trabajo de investigación se plantean dos hipótesis mutuamente
exluyentes la hipotésis nula (Ho) y la Hipotésis alternativa (H1) de la
investigación
El análisis estadístico de los datos servirá para determinar si se
puede aceptar o no la hipotésis nula (Ho)
Cuando se rechaza la hipotésis nula quiere decir que el factor
estudiado ha influido significativemente en los resultados y por lo
tanto se acepta la hipotésis alternativa (H1)
Pasos
1. Plantear hipotésis
Caso 1
H0: x– = μ H1: x– =/ μ
Caso 2
H0= x– <= μ H1= x– > μ
Caso 3
H0= x– >= μ H1= x– > μ
2. Nivel de significancia
Alfa = 5% (Cuando el nivel de confianza es 95%)
Alfa = 10% (Cuando el nivel de confianza es 90%)
3. Zona de Aceptación/Rechazo
Caso 1: Confianza 2.5% en los extremos Z= -1.96 y 1.96
Caso 2: COnfianza 5% en Menor a Z > 1.64
Caso 3: Confianza 5% en Mayor a Z < -1.64
4. Función Pivotal (n>30)
Fórmula: Z = x– - μ / σ*n^1/2
σ = Desvest
x– = Media de la Muestra
μ = Media de la Población
n = Tamaño Muestra
5. Conclusión
Se rechaza H0
Se acepta H0
#Ejercicio 1
Ej1<- (27800-28000)/(1000/sqrt(64))
if (Ej1 < -1.64) {
resultadoej1 <- "En el ejercicio 1, Se rechaza la hipótesis nula"
} else {
resultadoej1 <- "En el ejercicio 1, se acepta la hipótesis nula"
}
Ej1
## [1] -1.6
resultadoej1
## [1] "En el ejercicio 1, se acepta la hipótesis nula"
#Ejercicio 2
Ej2 <- (22.5-25) / (4.5/sqrt(40))
if (Ej2 < -1.96||Ej2 > 1.96) {
resultadoej2 <- "En el ejercicio 2, Se rechaza la hipótesis nula"
} else {
resultadoej2 <- "En el ejercicio 2, se acepta la hipótesis nula"
}
Ej2
## [1] -3.513642
resultadoej2
## [1] "En el ejercicio 2, Se rechaza la hipótesis nula"
#Ejercicio 3
Ej3 <- (40.7-39) / (4.8/sqrt(850))
if (Ej3 < -1.96||Ej3 > 1.96) {
resultadoej3 <- "En el ejercicio 3, Se rechaza la hipótesis nula"
} else {
resultadoej3 <- "En el ejercicio 3, se acepta la hipótesis nula"
}
Ej3
## [1] 10.32564
resultadoej3
## [1] "En el ejercicio 3, Se rechaza la hipótesis nula"
Día 4 Ejercicios del Mundo Real
3_84
¿Qué reacción tendría usted si un aficionado al fútbol americano le
dijera lo siguiente? “Los Raiders de Rockland tienen un promedio de 3.6
yardas de recorrido por tierra. Como sólo necesitan 10 yardas para
anotar y tienen cuatro oportunidades para lograrlo, la anotación es
segura, siempre y cuando mantengan su forma de jugar por tierra
RESPUESTA: La afirmación es incorrecta porque ignora
completamente la variabilidad en yardas ganadas por
carrera.
3_86
A continuación, se tienen 3 partes del presupuesto de defensa de un
año, a cada una de éstas se le asignó, por parte del Congreso mexicano,
la misma cantidad de financiamiento:
* Salario de oficiales (total).
* Mantenimiento de la flota aérea.
* Adquisiciones de alimentos (total).
Tomando en cuenta la distribución de posibles resultados para los
gastos reales en cada una de éstas áreas, haga corresponder cada sección
a una de las curvas de la siguiente figura, fundamente su respuesta

RESPUESTA: Salarios de funcionarios: A; mantenimiento de
flota: C; adquisiciones de alimentos: B.
3_92
El 30 de junio de 1992, la capitalización de nueve mercados de
valores del Pacífico y Asia fue:
| Filipinas |
17 |
| Indonesia |
21 |
| Tailandia |
44 |
| Singapur |
50 |
| Malasia |
79 |
| Corea del Sur |
86 |
| Taiwan |
140 |
| Hong Kong |
178 |
| Australia |
203 |
a) Encuentre la media aritmética de los datos.
b) Encuentre la mediana de los datos.
c) Encuentre la moda de los datos.
d) ¿Cuál es la mejor medida de la tendencia central del conjunto de
datos?
e) Encuentre la desviación estándar de los datos. (La población
completa está incluida en ellos).
paises <- c("Filipinas", "Indonesia", "Tailandia", "Singapur", "Malasia", "Corea del Sur", "Taiwan", "Hong Kong", "Australia")
capitalizacion <- c(17, 21, 44, 50, 79, 86, 140, 178, 203)
tabla3_92 <- data.frame(País = paises, Capitalización = capitalizacion)
a_cap <- mean(tabla3_92$Capitalización)
a_cap
## [1] 90.88889
b_cap <- median(tabla3_92$Capitalización)
b_cap
## [1] 79
c_cap <- "No hay moda para datos no agrupados"
c_cap
## [1] "No hay moda para datos no agrupados"
histogramad <- hist(tabla3_92$Capitalización)

d_cap <- "Mediana debido a que tiene sesgo positivo"
d_cap
## [1] "Mediana debido a que tiene sesgo positivo"
Capitalazacion2 <- (tabla3_92$Capitalización)-a
capitalizacion3 <- Capitalazacion2*Capitalazacion2
Capitalizacion4 <- sum(capitalizacion3)
VarCap4 <- Capitalizacion4/9
e_cap <- sqrt(VarCap4)
e_cap
## [1] 101.5014
3_100
Matthews, Young y Asociados, una agencia de consultorías de Chapell
Hill, tiene los siguientes registros que indican el número de días que
cada uno de sus 10 consultores de planta cobró el último año:
212 220 230 210 228 229 231 219 221 222
a) Sin calcular el valor de las medidas, ¿cuál de ellas cree usted
que le daría una mayor información acerca de esta distribución: el rango
(alcance) o la desviación estándar?
RESPUESTA: Desviación Estándar
b) Calcule: Rango, Varianza y Desviación Estándar.
P3_100 <- c(212, 220, 230, 210, 228, 229, 231, 219, 221, 222)
RangoP3_100 <- max(P3_100)-min(P3_100)
RangoP3_100
## [1] 21
BV <- (P3_100)- mean(P3_100)
BV2 <- BV*BV
BV3 <- sum(BV2)
VarianzaP3_100 <- BV3/10
VarianzaP3_100
## [1] 48.76
DesVP3_100 <- sqrt(VarianzaP3_100)
DesVP3_100
## [1] 6.982836
c) Tomando en cuenta la dificultad y el tiempo para calcular cada
medida que revisó en el inciso a), ¿cuál sugeriría como la mejor?
RESPUESTA: Desviación Estándar
d) ¿Qué haría que usted cambiara su opinión al respecto?
RESPUESTA: Nada
3_106
Allison Barett realiza análisis estadísticos para un equipo de
carreras automovilísticas. A continuación, se presentan las cifras en
kilómetros por litro del gasto de combustible de sus automóviles en las
carreras recientes:
4.77 6.11 6.11 5.05 5.99 4.91 5.27 6.01 5.75 4.89 6.05 5.22 6.02
5.24 6.11 5.02
a) Calcule la mediana del consumo de combustible.
b) Calcule la media del mismo consumo.
c) Agrupe los datos en 5 clases de igual tamaño. ¿Cuál es el
intervalo del valor de consumo de combustible para la clase modal?
d) ¿Cuál de las 3 medidas de tendencia central es la que mejor puede
servirle a Allison cuando haga un pedido de combustible? Explique su
respuesta.
e) ¿Cuál es el rango?
f) ¿Cuál es la varianza?
g) ¿Cuál es la desviación estándar? Establezca una conclusión a
partir de las medidas de dispersión.
Kilometros <- c(4.77, 6.11, 6.11, 5.05, 5.99, 4.91, 5.27, 6.01, 5.75, 4.89, 6.05, 5.22, 6.02, 5.24, 6.11, 5.02)
median_3_106 <- median(Kilometros)
median_3_106
## [1] 5.51
promedio_3_106 <- mean(Kilometros)
promedio_3_106
## [1] 5.5325
#c
clases_km <- cut(Kilometros, breaks = 5)
clases_km
## [1] (4.77,5.04] (5.84,6.11] (5.84,6.11] (5.04,5.31] (5.84,6.11] (4.77,5.04]
## [7] (5.04,5.31] (5.84,6.11] (5.57,5.84] (4.77,5.04] (5.84,6.11] (5.04,5.31]
## [13] (5.84,6.11] (5.04,5.31] (5.84,6.11] (4.77,5.04]
## Levels: (4.77,5.04] (5.04,5.31] (5.31,5.57] (5.57,5.84] (5.84,6.11]
clases_km2 <- table(clases_km)
clases_km2
## clases_km
## (4.77,5.04] (5.04,5.31] (5.31,5.57] (5.57,5.84] (5.84,6.11]
## 4 4 0 1 7
#(5.84,6.11]
#d
hist(Kilometros)

# Depende
#e
rango_3_106 <- max(Kilometros)-min(Kilometros)
rango_3_106
## [1] 1.34
#f
varianza_3_106 <- var(Kilometros)
varianza_3_106
## [1] 0.27466
#g
desvest_3_106 <- sqrt(varianza_3_106)
desvest_3_106
## [1] 0.5240801
8_64
Inspectores del gobierno, al investigar los cargos levantados contra
una embotelladora de bebidas no alcohólicas, de Texas, que no llenaba
adecuadamente sus productos, han muestreado 200 botellas y encontraron
que el promedio de llenado es de 31.7 onzas líquidas (aproximadamente
930 ml.) Se anuncia que las botellas contienen 32 onzas líquidas (946.33
ml.). Se sabe que la desviación estándar de la población es de 1.5 onzas
líquidas (44.36 ml.). ¿Deberían concluir los inspectores, al nivel de
significancia de 2%, que las botellas están siendo llenadas con menos
contenido, y emitir una sanción?
RESPUESTA:
Paso 1: Plantear Hipotésis
H0: xbar = μ
H1: xbat ≠ μ
Paso 2: Nivel de significancia
α = 0.02
Paso 3: Zona de Aceptación/Rechazo
Entre -2.718 y 2.718

Paso 4: Función Pivotal
E8_64 <- (31.7-32)/(1.5/sqrt(200))
if (E8_64 < -2.718||E8_64 > 2.718) {
resultadoE8_64 <- "En el ejercicio 8_64, Se rechaza la hipótesis nula"
} else {
resultadoE8_64 <- "En el ejercicio 8_64, se acepta la hipótesis nula"
}
E8_64
## [1] -2.828427
resultadoE8_64
## [1] "En el ejercicio 8_64, Se rechaza la hipótesis nula"
LS0tDQp0aXRsZTogIldvcmtzaG9wMV9BMDExOTgxODYiDQphdXRob3I6ICJMdWlzIEFuZ2VsIEVsaXpvbmRvIEdhbGxlZ29zIEEwMTE5ODE4NiINCmRhdGU6ICIyMDIzLTA1LTE1Ig0Kb3V0cHV0OiANCiAgaHRtbF9kb2N1bWVudDoNCiAgICB0b2M6IFRSVUUNCiAgICB0b2NfZmxvYXQ6IFRSVUUNCiAgICBjb2RlX2Rvd25sb2FkOiBUUlVFDQotLS0NCiFbXShDOlxcVXNlcnNcXGx1aXNhXFxEb3dubG9hZHNcXFJlY2liby5wbmcpDQoNCiMgRMOtYSAxIE1lZGlkYXMgZGUgVGVuZGVuY2lhIENlbnRyYWwNCg0KYGBge3IgfQ0KbGlicmFyeShkcGx5cikNCg0KI01lZGlkYXMgZGUgVGVuZGVuY2lhIENlbnRyYWwNCnJlY2lib3MgPC0gYygyNjYuNjMsDQogMTYzLjQxLCANCiAyMTkuNDEsDQogMTYyLjY0LCANCiAxODcuMTYsIA0KIDI4OS4xNywgDQogMzA2LjU1LCANCiAzMzUuNDgsIA0KIDM0My41MCwgDQogMjI2LjgwLCANCiAyMDguOTksIA0KIDIzMC40NikNCg0KI01lZGlhIG8gUHJvbWVkaW8NCm1lZGlhIDwtIG1lYW4ocmVjaWJvcykNCm1lZGlhDQoNCiNNZWRpYW5hDQptZWRpYW5hIDwtbWVkaWFuKHJlY2lib3MpDQptZWRpYW5hDQoNCiNNb2RhDQojRW4gUiBubyBoYXkgZnVuY2nDs24gZGlyZWN0YSBvYXJhIG1vZGENCg0KDQojUmFuZ28NCiNMYSBmdW5jaW9uIHJhbmdlIHNvbG8gb3RvcmdhIGVsIG1heGltbyB5IG1pbmltbw0KcmFuZ28gPC0gbWF4KHJlY2lib3MpIC0gbWluKHJlY2lib3MpDQpyYW5nbw0KDQojVmFyaWFuemENCnZhcmlhbnphIDwtIHZhcihyZWNpYm9zKQ0KdmFyaWFuemENCg0KI3Byb2Nlc28gbWFudWFsDQpyZWNpYm9zMSA8LSByZWNpYm9zLW1lZGlhDQpyZWNpYm9zMiA8LSByZWNpYm9zMSpyZWNpYm9zMQ0KcmVjaWJvczMgPC0gc3VtKHJlY2lib3MyKQ0KVmFyaWFuemFfUG9ibGFjaW9uYWwgPC0gcmVjaWJvczMvMTINClZhcmlhbnphX1BvYmxhY2lvbmFsDQoNCg0KI0Rlc3ZpYWNpw7NuIEVzdMOhbmRhcg0KI0FwbGljYXMgUmHDrXogQ3VhZHJhZGEgYSBWYXJpYW56YQ0KZGVzdmVzdCA8LSBzcXJ0KFZhcmlhbnphX1BvYmxhY2lvbmFsKQ0KZGVzdmVzdA0KDQpgYGANCiFbXShDOlxcVXNlcnNcXGx1aXNhXFxEb3dubG9hZHNcXFBpbGFzLmpwZykNCg0KIyBEw61hIDIgRGlzdHJpYnVjacOzbiBOb3JtYWwNCg0KYGBge3IgfQ0KI0VqZXJjaWNpbyAxDQoNCiNhIE1lbm9yIGEgNjAwDQphPC0gcG5vcm0oNjAwLDEzMDAsNjAwKSoxMDANCmENCg0KI2IgRW50cmUgMTAwMCB5IDE1MDANCmI8LSBwbm9ybSgxNTAwLDEzMDAsNjAwKSoxMDAgLSBwbm9ybSgxMDAwLDEzMDAsNjAwKSoxMDANCmINCg0KI2MgTWF5b3IgMjIwMA0KYyA8LSAoMS1wbm9ybSgyMjAwLDEzMDAsNjAwKSkqMTAwDQpjDQoNCiNFamVyY2ljaW8gMg0KDQojVGVtcGVyYXR1cmEgTWVub3IgYSAyMQ0KTWVub3IyMSA8LXBub3JtKDIxLDE4LjcsNSkgDQpNZW5vcjIxDQoNCiNUZW1wZXJhdHVyYSBtYXlvciBhIDIxDQpNYXlvcjIxPC0gMS1wbm9ybSgyMSwxOC43LDUpDQpNYXlvcjIxDQoNCiNFamVyY2ljaW8gMw0KDQpzdHY8LSBzcXJ0KDE2KQ0KDQojM2EgTWF5b3IgYSA5MCBob3Jhcw0KVHJlc0EgPC0gMS1wbm9ybSg5MCw4MCxzdHYpDQpUcmVzQQ0KDQojM2IgRW50cmUgNzAgeSA4NSBob3Jhcw0KVHJlc0IgPC0gcG5vcm0oODUsODAsc3R2KS1wbm9ybSg3MCw4MCxzdHYpDQpUcmVzQg0KDQojM2MgQ2FudGlkYWQgZGUgUGlsYXMgZGUgMTAwMCwgcXVlIGR1cmFuIG3DoXMgZGUgMTAwIGhvcmFzDQpUcmVzQzwtICgxLXBub3JtKDEwMCw4MCxzdHYpKSoxMDAwDQpUcmVzQw0KDQojM2QgQ2FudGlkYWQgZGUgcGlsYXMgZGUgMTAwMCwgcXVlIGR1cmFuIG3DoXMgZGUgOTAgaG9yYXMNClRyZXNEPC0gKDEtcG5vcm0oOTAsODAsc3R2KSkqMTAwMA0KVHJlc0QNCg0KDQpgYGANCiMgRMOtYSAzIFBydWViYXMgZGUgSGlwb3TDqXNpcw0KIyMgIENvbmNlcHRvcyBHZW5lcmFsZXMNCkVzIHVuIHByb2NlZGltaWVudG8gYmFzYWRvIGVuIGxhIGV2aWRlbmNpYSBtdWVzdHJhbCB5IGVuIGxhIHRlb3LDrWEgZGUgcHJvYmFiaWxpZGFkIHF1ZSBzZSBlbXBsZWEgcGFyYSBkZXRlcm1pbmFyIHNpIGxhIGhpcG90w6lzaXMgZXMgdW4gZW51bmNpYWRvIHJhY2lvbmFsIHkgbm8gZGViZSByZWNoYXphcnNlIG8gc2kgZXMgaXJyYWNpb25hbCB5IGRlYmUgc2VyIHJlY2hhemFkYS4NCg0KRW4gdW4gdHJhYmFqbyBkZSBpbnZlc3RpZ2FjacOzbiBzZSBwbGFudGVhbiBkb3MgaGlww7N0ZXNpcyBtdXR1YW1lbnRlIGV4bHV5ZW50ZXMgbGEgaGlwb3TDqXNpcyBudWxhIChIbykgeSBsYSBIaXBvdMOpc2lzIGFsdGVybmF0aXZhIChIMSkgZGUgbGEgaW52ZXN0aWdhY2nDs24NCg0KRWwgYW7DoWxpc2lzIGVzdGFkw61zdGljbyBkZSBsb3MgZGF0b3Mgc2Vydmlyw6EgcGFyYSBkZXRlcm1pbmFyIHNpIHNlIHB1ZWRlIGFjZXB0YXIgbyBubyBsYSBoaXBvdMOpc2lzIG51bGEgKEhvKQ0KDQpDdWFuZG8gc2UgcmVjaGF6YSBsYSBoaXBvdMOpc2lzIG51bGEgcXVpZXJlIGRlY2lyIHF1ZSBlbCBmYWN0b3IgZXN0dWRpYWRvIGhhIGluZmx1aWRvIHNpZ25pZmljYXRpdmVtZW50ZSBlbiBsb3MgcmVzdWx0YWRvcyB5IHBvciBsbyB0YW50byBzZSBhY2VwdGEgbGEgaGlwb3TDqXNpcyBhbHRlcm5hdGl2YSAoSDEpDQoNCiMjIFBhc29zDQojIyMgMS4gUGxhbnRlYXIgaGlwb3TDqXNpcw0KDQpDYXNvIDENCg0KSDA6IHjigJMgPSDOvA0KSDE6ICB44oCTID0vIM68DQoNCkNhc28gMg0KDQpIMD0geOKAkyA8PSDOvA0KSDE9IHjigJMgPiDOvA0KDQpDYXNvIDMNCg0KSDA9IHjigJMgPj0gzrwNCkgxPSB44oCTID4gzrwNCg0KIyMjIDIuIE5pdmVsIGRlIHNpZ25pZmljYW5jaWEgDQoNCkFsZmEgPSA1JSAoQ3VhbmRvIGVsIG5pdmVsIGRlIGNvbmZpYW56YSBlcyA5NSUpDQoNCkFsZmEgPSAxMCUgKEN1YW5kbyBlbCBuaXZlbCBkZSBjb25maWFuemEgZXMgOTAlKQ0KDQojIyMgMy4gWm9uYSBkZSBBY2VwdGFjacOzbi9SZWNoYXpvDQoNCkNhc28gMTogQ29uZmlhbnphIDIuNSUgZW4gbG9zIGV4dHJlbW9zIFo9IC0xLjk2IHkgMS45Ng0KDQpDYXNvIDI6IENPbmZpYW56YSA1JSBlbiBNZW5vciBhIFogPiAgMS42NA0KDQpDYXNvIDM6IENvbmZpYW56YSA1JSBlbiBNYXlvciBhIFogPCAtMS42NA0KDQoNCiMjIyA0LiBGdW5jacOzbiBQaXZvdGFsIChuPjMwKQ0KDQpGw7NybXVsYTogWiA9IHjigJMgLSDOvCAvIM+DKm5eMS8yDQoNCs+DID0gRGVzdmVzdA0KDQp44oCTID0gTWVkaWEgZGUgbGEgTXVlc3RyYSANCg0KzrwgPSBNZWRpYSBkZSBsYSBQb2JsYWNpw7NuDQoNCm4gPSBUYW1hw7FvIE11ZXN0cmENCg0KDQojIyMgNS4gQ29uY2x1c2nDs24NCg0KU2UgcmVjaGF6YSBIMA0KDQpTZSBhY2VwdGEgSDANCg0KDQoNCmBgYHtyIH0NCiNFamVyY2ljaW8gMQ0KRWoxPC0gKDI3ODAwLTI4MDAwKS8oMTAwMC9zcXJ0KDY0KSkNCg0KaWYgKEVqMSA8IC0xLjY0KSB7DQogIHJlc3VsdGFkb2VqMSA8LSAiRW4gZWwgZWplcmNpY2lvIDEsIFNlIHJlY2hhemEgbGEgaGlww7N0ZXNpcyBudWxhIg0KfSBlbHNlIHsNCiAgcmVzdWx0YWRvZWoxIDwtICJFbiBlbCBlamVyY2ljaW8gMSwgc2UgYWNlcHRhIGxhIGhpcMOzdGVzaXMgbnVsYSINCn0NCg0KRWoxDQpyZXN1bHRhZG9lajENCg0KI0VqZXJjaWNpbyAyDQpFajIgPC0gKDIyLjUtMjUpIC8gKDQuNS9zcXJ0KDQwKSkNCg0KaWYgKEVqMiA8IC0xLjk2fHxFajIgPiAxLjk2KSB7DQogIHJlc3VsdGFkb2VqMiA8LSAiRW4gZWwgZWplcmNpY2lvIDIsIFNlIHJlY2hhemEgbGEgaGlww7N0ZXNpcyBudWxhIg0KfSBlbHNlIHsNCiAgcmVzdWx0YWRvZWoyIDwtICJFbiBlbCBlamVyY2ljaW8gMiwgc2UgYWNlcHRhIGxhIGhpcMOzdGVzaXMgbnVsYSINCn0NCg0KRWoyDQpyZXN1bHRhZG9lajINCg0KI0VqZXJjaWNpbyAzDQpFajMgPC0gKDQwLjctMzkpIC8gKDQuOC9zcXJ0KDg1MCkpDQoNCmlmIChFajMgPCAtMS45Nnx8RWozID4gMS45Nikgew0KICByZXN1bHRhZG9lajMgPC0gIkVuIGVsIGVqZXJjaWNpbyAzLCBTZSByZWNoYXphIGxhIGhpcMOzdGVzaXMgbnVsYSINCn0gZWxzZSB7DQogIHJlc3VsdGFkb2VqMyA8LSAiRW4gZWwgZWplcmNpY2lvIDMsIHNlIGFjZXB0YSBsYSBoaXDDs3Rlc2lzIG51bGEiDQp9DQoNCkVqMw0KcmVzdWx0YWRvZWozDQpgYGANCiMgRMOtYSA0IEVqZXJjaWNpb3MgZGVsIE11bmRvIFJlYWwNCg0KIyMjIDNfODQNCiMjIyMgwr9RdcOpIHJlYWNjacOzbiB0ZW5kcsOtYSB1c3RlZCBzaSB1biBhZmljaW9uYWRvIGFsIGbDunRib2wgYW1lcmljYW5vIGxlIGRpamVyYSBsbyBzaWd1aWVudGU/IOKAnExvcyBSYWlkZXJzIGRlIFJvY2tsYW5kIHRpZW5lbiB1biBwcm9tZWRpbyBkZSAzLjYgeWFyZGFzIGRlIHJlY29ycmlkbyBwb3IgdGllcnJhLiBDb21vIHPDs2xvIG5lY2VzaXRhbiAxMCB5YXJkYXMgcGFyYSBhbm90YXIgeSB0aWVuZW4gY3VhdHJvIG9wb3J0dW5pZGFkZXMgcGFyYSBsb2dyYXJsbywgbGEgYW5vdGFjacOzbiBlcyBzZWd1cmEsIHNpZW1wcmUgeSBjdWFuZG8gbWFudGVuZ2FuIHN1IGZvcm1hIGRlIGp1Z2FyIHBvciB0aWVycmENCiMjIyMgKipSRVNQVUVTVEE6IExhIGFmaXJtYWNpw7NuIGVzIGluY29ycmVjdGEgcG9ycXVlIGlnbm9yYSBjb21wbGV0YW1lbnRlIGxhIHZhcmlhYmlsaWRhZCBlbiB5YXJkYXMgZ2FuYWRhcyBwb3IgY2FycmVyYS4qKg0KDQojIyMgM184Ng0KIyMjIyBBIGNvbnRpbnVhY2nDs24sIHNlIHRpZW5lbiAzIHBhcnRlcyBkZWwgcHJlc3VwdWVzdG8gZGUgZGVmZW5zYSBkZSB1biBhw7FvLCBhIGNhZGEgdW5hIGRlIMOpc3RhcyBzZSBsZSBhc2lnbsOzLCBwb3IgcGFydGUgZGVsIENvbmdyZXNvIG1leGljYW5vLCBsYSBtaXNtYSBjYW50aWRhZCBkZSBmaW5hbmNpYW1pZW50bzoNCiMjIyMgKiBTYWxhcmlvIGRlIG9maWNpYWxlcyAodG90YWwpLg0KIyMjIyAqIE1hbnRlbmltaWVudG8gZGUgbGEgZmxvdGEgYcOpcmVhLg0KIyMjIyAqIEFkcXVpc2ljaW9uZXMgZGUgYWxpbWVudG9zICh0b3RhbCkuDQojIyMjIFRvbWFuZG8gZW4gY3VlbnRhIGxhIGRpc3RyaWJ1Y2nDs24gZGUgcG9zaWJsZXMgcmVzdWx0YWRvcyBwYXJhIGxvcyBnYXN0b3MgcmVhbGVzIGVuIGNhZGEgdW5hIGRlIMOpc3RhcyDDoXJlYXMsIGhhZ2EgY29ycmVzcG9uZGVyIGNhZGEgc2VjY2nDs24gYSB1bmEgZGUgbGFzIGN1cnZhcyBkZSBsYSBzaWd1aWVudGUgZmlndXJhLCBmdW5kYW1lbnRlIHN1IHJlc3B1ZXN0YQ0KIVtdKEM6XFxVc2Vyc1xcbHVpc2FcXERvd25sb2Fkc1xcR3JhZmljYTEucG5nKQ0KDQojIyMjICoqUkVTUFVFU1RBOiBTYWxhcmlvcyBkZSBmdW5jaW9uYXJpb3M6IEE7IG1hbnRlbmltaWVudG8gZGUgZmxvdGE6IEM7IGFkcXVpc2ljaW9uZXMgZGUgYWxpbWVudG9zOiBCLioqDQoNCiMjIyAzXzkyDQojIyMjIEVsIDMwIGRlIGp1bmlvIGRlIDE5OTIsIGxhIGNhcGl0YWxpemFjacOzbiBkZSBudWV2ZSBtZXJjYWRvcyBkZSB2YWxvcmVzIGRlbCBQYWPDrWZpY28geSBBc2lhIGZ1ZToNCg0KUGHDrXMgfCBDYXBpdGFsaXphY2nDs24gDQotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tDQpGaWxpcGluYXMJfCAxNw0KSW5kb25lc2lhIHwJMjENClRhaWxhbmRpYSB8CTQ0DQpTaW5nYXB1ciB8CTUwDQpNYWxhc2lhCXwgNzkNCkNvcmVhIGRlbCBTdXIgfAk4Ng0KVGFpd2FuIHwJMTQwDQpIb25nIEtvbmcgfAkxNzgNCkF1c3RyYWxpYSB8CTIwMw0KDQoNCiMjIyMgYSkgRW5jdWVudHJlIGxhIG1lZGlhIGFyaXRtw6l0aWNhIGRlIGxvcyBkYXRvcy4NCiMjIyMgYikgRW5jdWVudHJlIGxhIG1lZGlhbmEgZGUgbG9zIGRhdG9zLg0KIyMjIyBjKSBFbmN1ZW50cmUgbGEgbW9kYSBkZSBsb3MgZGF0b3MuDQojIyMjIGQpIMK/Q3XDoWwgZXMgbGEgbWVqb3IgbWVkaWRhIGRlIGxhIHRlbmRlbmNpYSBjZW50cmFsIGRlbCBjb25qdW50byBkZSBkYXRvcz8NCiMjIyMgZSkgRW5jdWVudHJlIGxhIGRlc3ZpYWNpw7NuIGVzdMOhbmRhciBkZSBsb3MgZGF0b3MuIChMYSBwb2JsYWNpw7NuIGNvbXBsZXRhIGVzdMOhIGluY2x1aWRhIGVuIGVsbG9zKS4NCg0KYGBge3IgfQ0KcGFpc2VzIDwtIGMoIkZpbGlwaW5hcyIsICJJbmRvbmVzaWEiLCAiVGFpbGFuZGlhIiwgIlNpbmdhcHVyIiwgIk1hbGFzaWEiLCAiQ29yZWEgZGVsIFN1ciIsICJUYWl3YW4iLCAiSG9uZyBLb25nIiwgIkF1c3RyYWxpYSIpDQpjYXBpdGFsaXphY2lvbiA8LSBjKDE3LCAyMSwgNDQsIDUwLCA3OSwgODYsIDE0MCwgMTc4LCAyMDMpDQp0YWJsYTNfOTIgPC0gZGF0YS5mcmFtZShQYcOtcyA9IHBhaXNlcywgQ2FwaXRhbGl6YWNpw7NuID0gY2FwaXRhbGl6YWNpb24pDQoNCmFfY2FwIDwtIG1lYW4odGFibGEzXzkyJENhcGl0YWxpemFjacOzbikNCmFfY2FwDQoNCmJfY2FwIDwtIG1lZGlhbih0YWJsYTNfOTIkQ2FwaXRhbGl6YWNpw7NuKQ0KYl9jYXANCg0KY19jYXAgPC0gIk5vIGhheSBtb2RhIHBhcmEgZGF0b3Mgbm8gYWdydXBhZG9zIg0KY19jYXANCg0KaGlzdG9ncmFtYWQgPC0gaGlzdCh0YWJsYTNfOTIkQ2FwaXRhbGl6YWNpw7NuKQ0KZF9jYXAgPC0gIk1lZGlhbmEgZGViaWRvIGEgcXVlIHRpZW5lIHNlc2dvIHBvc2l0aXZvIg0KZF9jYXANCg0KQ2FwaXRhbGF6YWNpb24yIDwtICh0YWJsYTNfOTIkQ2FwaXRhbGl6YWNpw7NuKS1hDQpjYXBpdGFsaXphY2lvbjMgPC0gQ2FwaXRhbGF6YWNpb24yKkNhcGl0YWxhemFjaW9uMg0KQ2FwaXRhbGl6YWNpb240IDwtIHN1bShjYXBpdGFsaXphY2lvbjMpDQpWYXJDYXA0IDwtIENhcGl0YWxpemFjaW9uNC85DQplX2NhcCA8LSBzcXJ0KFZhckNhcDQpDQplX2NhcA0KDQpgYGANCiMjIyAzXzEwMA0KIyMjIyBNYXR0aGV3cywgWW91bmcgeSBBc29jaWFkb3MsIHVuYSBhZ2VuY2lhIGRlIGNvbnN1bHRvcsOtYXMgZGUgQ2hhcGVsbCBIaWxsLCB0aWVuZSBsb3Mgc2lndWllbnRlcyByZWdpc3Ryb3MgcXVlIGluZGljYW4gZWwgbsO6bWVybyBkZSBkw61hcyBxdWUgY2FkYSB1bm8gZGUgc3VzIDEwIGNvbnN1bHRvcmVzIGRlIHBsYW50YSBjb2Jyw7MgZWwgw7psdGltbyBhw7FvOg0KDQojIyMjIDIxMiAyMjAgMjMwIDIxMCAyMjggMjI5IDIzMSAyMTkgMjIxIDIyMg0KDQojIyMjIGEpIFNpbiBjYWxjdWxhciBlbCB2YWxvciBkZSBsYXMgbWVkaWRhcywgwr9jdcOhbCBkZSBlbGxhcyBjcmVlIHVzdGVkIHF1ZSBsZSBkYXLDrWEgdW5hIG1heW9yIGluZm9ybWFjacOzbiBhY2VyY2EgZGUgZXN0YSBkaXN0cmlidWNpw7NuOiBlbCByYW5nbyAoYWxjYW5jZSkgbyBsYSBkZXN2aWFjacOzbiBlc3TDoW5kYXI/IA0KDQojIyMjICoqUkVTUFVFU1RBOiBEZXN2aWFjacOzbiBFc3TDoW5kYXIqKg0KDQojIyMjIGIpIENhbGN1bGU6IFJhbmdvLCBWYXJpYW56YSB5IERlc3ZpYWNpw7NuIEVzdMOhbmRhci4NCmBgYHtyIH0NClAzXzEwMCA8LSBjKDIxMiwgMjIwLCAyMzAsIDIxMCwgMjI4LCAyMjksIDIzMSwgMjE5LCAyMjEsIDIyMikNCg0KUmFuZ29QM18xMDAgPC0gbWF4KFAzXzEwMCktbWluKFAzXzEwMCkNClJhbmdvUDNfMTAwDQoNCkJWIDwtIChQM18xMDApLSBtZWFuKFAzXzEwMCkNCkJWMiA8LSBCVipCVg0KQlYzIDwtIHN1bShCVjIpDQpWYXJpYW56YVAzXzEwMCA8LSBCVjMvMTANClZhcmlhbnphUDNfMTAwDQpEZXNWUDNfMTAwIDwtIHNxcnQoVmFyaWFuemFQM18xMDApDQpEZXNWUDNfMTAwDQoNCmBgYA0KIyMjIyBjKSBUb21hbmRvIGVuIGN1ZW50YSBsYSBkaWZpY3VsdGFkIHkgZWwgdGllbXBvIHBhcmEgY2FsY3VsYXIgY2FkYSBtZWRpZGEgcXVlIHJldmlzw7MgZW4gZWwgaW5jaXNvIGEpLCDCv2N1w6FsIHN1Z2VyaXLDrWEgY29tbyBsYSBtZWpvcj8NCg0KIyMjIyAqKlJFU1BVRVNUQTogRGVzdmlhY2nDs24gRXN0w6FuZGFyKioNCg0KIyMjIyBkKSDCv1F1w6kgaGFyw61hIHF1ZSB1c3RlZCBjYW1iaWFyYSBzdSBvcGluacOzbiBhbCByZXNwZWN0bz8NCg0KIyMjIyAqKlJFU1BVRVNUQTogTmFkYSoqDQoNCg0KDQojIyMgM18xMDYNCg0KIyMjIyBBbGxpc29uIEJhcmV0dCByZWFsaXphIGFuw6FsaXNpcyBlc3RhZMOtc3RpY29zIHBhcmEgdW4gZXF1aXBvIGRlIGNhcnJlcmFzIGF1dG9tb3ZpbMOtc3RpY2FzLiBBIGNvbnRpbnVhY2nDs24sIHNlIHByZXNlbnRhbiBsYXMgY2lmcmFzIGVuIGtpbMOzbWV0cm9zIHBvciBsaXRybyBkZWwgZ2FzdG8gZGUgY29tYnVzdGlibGUgZGUgc3VzIGF1dG9tw7N2aWxlcyBlbiBsYXMgY2FycmVyYXMgcmVjaWVudGVzOg0KIyMjIyA0Ljc3IDYuMTEgNi4xMSA1LjA1IDUuOTkgNC45MSA1LjI3IDYuMDEgNS43NSA0Ljg5IDYuMDUgNS4yMiA2LjAyIDUuMjQgNi4xMSA1LjAyDQojIyMjIGEpIENhbGN1bGUgbGEgbWVkaWFuYSBkZWwgY29uc3VtbyBkZSBjb21idXN0aWJsZS4NCiMjIyMgYikgQ2FsY3VsZSBsYSBtZWRpYSBkZWwgbWlzbW8gY29uc3Vtby4NCiMjIyMgYykgQWdydXBlIGxvcyBkYXRvcyBlbiA1IGNsYXNlcyBkZSBpZ3VhbCB0YW1hw7FvLiDCv0N1w6FsIGVzIGVsIGludGVydmFsbyBkZWwgdmFsb3IgZGUgY29uc3VtbyBkZSBjb21idXN0aWJsZSBwYXJhIGxhIGNsYXNlIG1vZGFsPw0KIyMjIyBkKSDCv0N1w6FsIGRlIGxhcyAzIG1lZGlkYXMgZGUgdGVuZGVuY2lhIGNlbnRyYWwgZXMgbGEgcXVlIG1lam9yIHB1ZWRlIHNlcnZpcmxlIGEgQWxsaXNvbiBjdWFuZG8gaGFnYSB1biBwZWRpZG8gZGUgY29tYnVzdGlibGU/IEV4cGxpcXVlIHN1IHJlc3B1ZXN0YS4NCiMjIyMgZSkgwr9DdcOhbCBlcyBlbCByYW5nbz8NCiMjIyMgZikgwr9DdcOhbCBlcyBsYSB2YXJpYW56YT8NCiMjIyMgZykgwr9DdcOhbCBlcyBsYSBkZXN2aWFjacOzbiBlc3TDoW5kYXI/IEVzdGFibGV6Y2EgdW5hIGNvbmNsdXNpw7NuIGEgcGFydGlyIGRlIGxhcyBtZWRpZGFzIGRlIGRpc3BlcnNpw7NuLg0KDQpgYGB7ciB9DQpLaWxvbWV0cm9zIDwtIGMoNC43NywgNi4xMSwgNi4xMSwgNS4wNSwgNS45OSwgNC45MSwgNS4yNywgNi4wMSwgNS43NSwgNC44OSwgNi4wNSwgNS4yMiwgNi4wMiwgNS4yNCwgNi4xMSwgNS4wMikNCm1lZGlhbl8zXzEwNiA8LSBtZWRpYW4oS2lsb21ldHJvcykNCm1lZGlhbl8zXzEwNg0KDQpwcm9tZWRpb18zXzEwNiA8LSBtZWFuKEtpbG9tZXRyb3MpDQpwcm9tZWRpb18zXzEwNg0KDQoNCiNjDQpjbGFzZXNfa20gPC0gY3V0KEtpbG9tZXRyb3MsIGJyZWFrcyA9IDUpDQpjbGFzZXNfa20NCmNsYXNlc19rbTIgPC0gdGFibGUoY2xhc2VzX2ttKQ0KY2xhc2VzX2ttMg0KIA0KIyg1Ljg0LDYuMTFdIA0KDQoNCiNkDQpoaXN0KEtpbG9tZXRyb3MpDQojIERlcGVuZGUNCiAgDQoNCiNlDQpyYW5nb18zXzEwNiA8LSBtYXgoS2lsb21ldHJvcyktbWluKEtpbG9tZXRyb3MpDQpyYW5nb18zXzEwNg0KDQojZg0KdmFyaWFuemFfM18xMDYgPC0gdmFyKEtpbG9tZXRyb3MpDQp2YXJpYW56YV8zXzEwNg0KDQojZw0KZGVzdmVzdF8zXzEwNiA8LSBzcXJ0KHZhcmlhbnphXzNfMTA2KQ0KZGVzdmVzdF8zXzEwNg0KDQpgYGANCg0KDQojIyMgOF82NA0KIyMjIyAgSW5zcGVjdG9yZXMgZGVsIGdvYmllcm5vLCBhbCBpbnZlc3RpZ2FyIGxvcyBjYXJnb3MgbGV2YW50YWRvcyBjb250cmEgdW5hIGVtYm90ZWxsYWRvcmEgZGUgYmViaWRhcyBubyBhbGNvaMOzbGljYXMsIGRlIFRleGFzLCBxdWUgbm8gbGxlbmFiYSBhZGVjdWFkYW1lbnRlIHN1cyBwcm9kdWN0b3MsIGhhbiBtdWVzdHJlYWRvIDIwMCBib3RlbGxhcyB5IGVuY29udHJhcm9uIHF1ZSBlbCBwcm9tZWRpbyBkZSBsbGVuYWRvIGVzIGRlIDMxLjcgb256YXMgbMOtcXVpZGFzIChhcHJveGltYWRhbWVudGUgOTMwIG1sLikgU2UgYW51bmNpYSBxdWUgbGFzIGJvdGVsbGFzIGNvbnRpZW5lbiAzMiBvbnphcyBsw61xdWlkYXMgKDk0Ni4zMyBtbC4pLiBTZSBzYWJlIHF1ZSBsYSBkZXN2aWFjacOzbiBlc3TDoW5kYXIgZGUgbGEgcG9ibGFjacOzbiBlcyBkZSAxLjUgb256YXMgbMOtcXVpZGFzICg0NC4zNiBtbC4pLiDCv0RlYmVyw61hbiBjb25jbHVpciBsb3MgaW5zcGVjdG9yZXMsIGFsIG5pdmVsIGRlIHNpZ25pZmljYW5jaWEgZGUgMiUsIHF1ZSBsYXMgYm90ZWxsYXMgZXN0w6FuIHNpZW5kbyBsbGVuYWRhcyBjb24gbWVub3MgY29udGVuaWRvLCB5IGVtaXRpciB1bmEgc2FuY2nDs24/DQoNCiMjIyMgKipSRVNQVUVTVEE6KioNCg0KIyMjIyBQYXNvIDE6IFBsYW50ZWFyIEhpcG90w6lzaXMNCiMjIyMgSDA6IHhiYXIgPSDOvA0KIyMjIyBIMTogeGJhdCDiiaAgzrwNCg0KIyMjIyBQYXNvIDI6IE5pdmVsIGRlIHNpZ25pZmljYW5jaWENCiMjIyMgIM6xID0gMC4wMg0KDQojIyMjIFBhc28gMzogWm9uYSBkZSBBY2VwdGFjacOzbi9SZWNoYXpvDQojIyMjIEVudHJlIC0yLjcxOCB5IDIuNzE4DQoNCiFbXShDOlxcVXNlcnNcXGx1aXNhXFxEb3dubG9hZHNcXEdSQUZJQ0EwMi5wbmcpDQoNCiMjIyMgUGFzbyA0OiBGdW5jacOzbiBQaXZvdGFsIA0KDQoNCmBgYHtyIH0NCkU4XzY0IDwtICgzMS43LTMyKS8oMS41L3NxcnQoMjAwKSkNCg0KaWYgKEU4XzY0IDwgLTIuNzE4fHxFOF82NCA+IDIuNzE4KSAgew0KICByZXN1bHRhZG9FOF82NCA8LSAiRW4gZWwgZWplcmNpY2lvIDhfNjQsIFNlIHJlY2hhemEgbGEgaGlww7N0ZXNpcyBudWxhIg0KfSBlbHNlIHsNCiAgcmVzdWx0YWRvRThfNjQgPC0gIkVuIGVsIGVqZXJjaWNpbyA4XzY0LCBzZSBhY2VwdGEgbGEgaGlww7N0ZXNpcyBudWxhIg0KfQ0KDQpFOF82NA0KcmVzdWx0YWRvRThfNjQNCg0KYGBgDQo=