Ejercicio 5. Modelos estacionarios

1.Encontrar la funcion de autocorrelacíon para el proceso definido por

\[ Y_t=5+e_t -\frac{1}{2}e_{t-1}+\frac{1}{4}e_{t-2} \]

\[ E(Y_T)=0\\ Var(y_t)= \frac{21}{16}sigma^2_e\\ Cov(y_t)= \frac{-5}{8}sigma^2_e\\ Corr(y_t), y(t_1)= \frac{-10}{21}sigma^2_e \]

2.Graficar la funcion de autocorrelacíon para los siguientes modelos MA(2) con los parametros especificado:

a)THETA1=-0.5 y THETA2=-0.4

ma2<-arima.sim(model=list(ma=c(-0.5,-0.4)),n=100)
plot(ma2,type='o', col="blue", main='MA(2);  theta1=-0.5,  theta2=-0.4')

b)THETA1=-1.2 y THETA2=0.7

ma2<-arima.sim(model=list(ma=c(-1.2,0.7)),n=100)
plot(ma2,type='o', col="red", main='MA(2);  theta1=-1.2,  theta2=0.7')

c)THETA1=1 y THETA2=0.6

ma2<-arima.sim(model=list(ma=c(1,0.6)),n=100)
plot(ma2,type='o',col="violetred4", main='MA(2);  theta1=-0.5,  theta2=-0.4')

3.Mostrar que cuando ?? se reemplaza por 1/??, la funcion de autocorrelacíon de un MA(1) no cambia.

\[ \frac{-1}{theta}/1+(1/theta) = \frac{-theta}{1+theta^2} \]

4.Calcular y graficar las funciones de autocorrelacion para los siguientes modelos AR(1). Gráficar con un numero suficientes de rezagos para que la funcíon de autocorrelcíon decrezca a casi cero.

a)phi1=0.6

ACF1<-ARMAacf(ar=0.6,lag.max=12)
plot(y=ACF1[-1],x=1:12,main='phi=0.6',xlab='Lag',ylab='ACF',type='h', col="steelblue4" );abline(h=0)

b)phi1=-0.6

ACF2<-ARMAacf(ar=-0.6,lag.max=12)
plot(y=ACF2[-1],x=1:12,main='phi=-0.6',xlab='Lag',ylab='ACF',type='h', col="purple");abline(h=0)

c)phi1=0.95 (hacerlo para 20 rezagos)

ACF3<-ARMAacf(ar=0.95,lag.max=20)
plot(y=ACF3[-1],x=1:20,main='phi=0.95',xlab='Lag',ylab='ACF',type='h', col="pink2");abline(h=0)

d)phi1=0.3

ACF4<-ARMAacf(ar=-0.3,lag.max=12)
plot(y=ACF4[-1],x=1:12,main='phi=-0.3',xlab='Lag',ylab='ACF',type='h', col="yellowgreen");abline(h=0)

5.Describa las caracteristicas generales de la funcion de autocorrelacion para los siguientes procesos:

  1. MA(1)

como correlación no nula solo en el retraso 1. Puede ser positivo o negativo, pero debe estar entre -0.5 y +0.5.

  1. MA(2)

Tiene correlación distinta de cero solo en los retrasos 1 y 2.

  1. AR(1)

Tiene autocorrelaciones en descomposición exponencial a partir del retraso 0. Si ??> 0, entonces todas las autocorrelaciones son positivas. Si ?? <0, entonces las autocorrelaciones alternan entre negativo, positivo negativo, etc.

  1. AR(2)

Las autocorrelaciones pueden tener varios patrones, pero si las raíces de la ecuación característica son números complejos, entonces el patrón será un coseno con una magnitud decreciente.

  1. ARMA(1,1)

Tiene autocorrelaciones en descomposición exponencial a partir del retraso 1, pero no del retraso cero

6.Usar la formula recursiva ????k=??1??k???1+??2??k???2(ecuacion Yule-Walker) para calcular y graficar las funciones de autocorrelacion para los siguientes procesos AR(2) con los par ??ametros especificados. En cada caso especifique si las ra ??ices de la ecuacion caracteristica son reales ocomplejas.

a)phi1=0.6 y phi2=0.3

ACF1<-ARMAacf(ar=c(0.6,0.3),lag.max=12)
plot(y=ACF1[-1],x=1:12,main='phi1=0.6,  phi2=0.3',xlab='Lag',ylab='ACF',type='h', col="tan3");abline(h=0)

b)phi1=-0.4 y phi2=0.5

ACF2<-ARMAacf(ar=c(-0.4,0.5),lag.max=12)
plot(y=ACF2[-1],x=1:12,main='phi1=-0.4,  phi2=0.5',xlab='Lag',ylab='ACF',type='h', col="orchid");abline(h=0)

c)phi1=1.2 y phi2=-0.7

ACF3<-ARMAacf(ar=c(1.2,-0.7),lag.max=12)
plot(y=ACF3[-1],x=1:12,main='phi1=-1,  phi2=-0.7',xlab='Lag',ylab='ACF',type='h', col="cadetblue");abline(h=0)

d)phi1=-1 y phi2=-0.6

ACF4<-ARMAacf(ar=c(-1,-0.6),lag.max=12)
plot(y=ACF4[-1],x=1:12,main='phi1=1,  phi2=-0.6',xlab='Lag',ylab='ACF',type='h', col="mediumspringgreen");abline(h=0)

e)phi1=0.5 y phi2=-0.9

ACF4<-ARMAacf(ar=c(0.5,-0.9),lag.max=12)
plot(y=ACF4[-1],x=1:12,main='phi1=0.5,  phi2=-0.9',xlab='Lag',ylab='ACF',type='h', col="hotpink2");abline(h=0)

f)phi1=-0.5 y phi2=-0.6

ACF4<-ARMAacf(ar=c(1,-0.6),lag.max=12)
plot(y=ACF4[-1],x=1:12,main='phi1=1,  phi2=-0.6',xlab='Lag',ylab='ACF',type='h', col="palevioletred1");abline(h=0)

7.Graficar las funciones de autocorrelacion para cada uno de los siguientes procesos ARMA:
a)ARMA(1,1) con phi=0.7 y theta=-0.4

ACF=ARMAacf(ar=0.7,ma=-0.4,lag.max=20)
 plot(y=ACF[-1],x=1:20,xlab='Lag',ylab='ACF',type='h', col="mistyrose");  abline(h=0)

b)ARMA(1,1) con phi=0.7 y theta=0.4

ACF=ARMAacf(ar=0.7,ma=0.4,lag.max=20)
 plot(y=ACF[-1],x=1:20,xlab='Lag',ylab='ACF',type='h', col="snow3");  abline(h=0)

8.Considere dos procesos MA(2), uno con phi1=phi2=-1/6 y otro con phi=1 y phi2=-6

a)Mostrar que estos procesos tienen la misma funcion de autocorrelacíon.

ARMAacf(ma=c(1,-6))
         0          1          2          3 
 1.0000000 -0.1315789 -0.1578947  0.0000000 
ARMAacf(ma=c(-1/6,-1/6))
         0          1          2          3 
 1.0000000 -0.1315789 -0.1578947  0.0000000 

b)¿Como se comparan las ráices de los polinomios caracteristicos?

las raíces de los dos polinomios son recíprocas entre sí. Solo el modelo MA (2) con ??1 = ??2 = 1/6 es invertible.

9.Considere un proceso AR(1) \[ Yt=Y_{t-1}+e_t \] Mostrar que si|phi|=1 el proceso no puede ser estacionario. (Pista: Tomar varianzas de ambos lados). \[ Var(Y_t)=phi var(Y_{t-1})+sigma^2e\\ Var(Y_t)=sigma^2 /(1-phi^2) \] |phi| = 1 esto es imposible y tenemos una prueba por contradicción

10.Considere un proceso MA(6) con phi1=-0.5,phi2=0.25,phi3=-0.125,phi4=0.0625,phi5=-0.0325 and phi6=0.015625.Encontrar un modelo mas simple que tenga casi los mismos ??-pesos

ARMAacf(ma=c(-0.5,0.25,-0.125,0.0625,-0.03125,0.015625))
LS0tDQp0aXRsZTogIkVKRVJDSUNJTyA1Ig0KYXV0aG9yOiAiUm9tZXJvIEd1dGllcnJleiBDYXNhbmRyYSBZdW51ZWwgM0VWOCINCm91dHB1dDoNCiAgaHRtbF9ub3RlYm9vazogZGVmYXVsdA0KICBodG1sX2RvY3VtZW50OiBkZWZhdWx0DQotLS0NCg0KRWplcmNpY2lvICA1LiAgTW9kZWxvcyAgZXN0YWNpb25hcmlvcw0KDQoxLkVuY29udHJhciAgbGEgIGZ1bmNpb24gIGRlICBhdXRvY29ycmVsYWPtb24gIHBhcmEgIGVsICBwcm9jZXNvICBkZWZpbmlkbyAgcG9yDQoNCg0KJCQNCllfdD01K2VfdCAtXGZyYWN7MX17Mn1lX3t0LTF9K1xmcmFjezF9ezR9ZV97dC0yfQ0KJCQNCg0KDQoNCiQkDQpFKFlfVCk9MFxcDQpWYXIoeV90KT0gXGZyYWN7MjF9ezE2fXNpZ21hXjJfZVxcDQpDb3YoeV90KT0gXGZyYWN7LTV9ezh9c2lnbWFeMl9lXFwNCkNvcnIoeV90KSwgeSh0XzEpPSBcZnJhY3stMTB9ezIxfXNpZ21hXjJfZQ0KJCQNCg0KMi5HcmFmaWNhciAgbGEgIGZ1bmNpb24gIGRlICBhdXRvY29ycmVsYWPtb24gIHBhcmEgIGxvcyAgc2lndWllbnRlcyAgbW9kZWxvcyAgTUEoMikgIGNvbiAgbG9zICBwYXJhbWV0cm9zIGVzcGVjaWZpY2FkbzoNCg0KYSlUSEVUQTE9LTAuNSAgeSBUSEVUQTI9LTAuNA0KDQpgYGB7cn0NCm1hMjwtYXJpbWEuc2ltKG1vZGVsPWxpc3QobWE9YygtMC41LC0wLjQpKSxuPTEwMCkNCnBsb3QobWEyLHR5cGU9J28nLCBjb2w9ImJsdWUiLCBtYWluPSdNQSgyKTsgIHRoZXRhMT0tMC41LCAgdGhldGEyPS0wLjQnKQ0KYGBgDQogYilUSEVUQTE9LTEuMiB5IFRIRVRBMj0wLjcNCmBgYHtyfQ0KbWEyPC1hcmltYS5zaW0obW9kZWw9bGlzdChtYT1jKC0xLjIsMC43KSksbj0xMDApDQpwbG90KG1hMix0eXBlPSdvJywgY29sPSJyZWQiLCBtYWluPSdNQSgyKTsgIHRoZXRhMT0tMS4yLCAgdGhldGEyPTAuNycpDQpgYGANCmMpVEhFVEExPTEgIHkgVEhFVEEyPTAuNg0KYGBge3J9DQptYTI8LWFyaW1hLnNpbShtb2RlbD1saXN0KG1hPWMoMSwwLjYpKSxuPTEwMCkNCnBsb3QobWEyLHR5cGU9J28nLGNvbD0idmlvbGV0cmVkNCIsIG1haW49J01BKDIpOyAgdGhldGExPS0wLjUsICB0aGV0YTI9LTAuNCcpDQpgYGANCg0KMy5Nb3N0cmFyICBxdWUgIGN1YW5kbyA/PyBzZSAgcmVlbXBsYXphICBwb3IgIDEvPz8sICBsYSAgZnVuY2lvbiAgZGUgIGF1dG9jb3JyZWxhY+1vbiAgZGUgIHVuICBNQSgxKSAgbm8gIGNhbWJpYS4NCg0KJCQNClxmcmFjey0xfXt0aGV0YX0vMSsoMS90aGV0YSkgPSBcZnJhY3stdGhldGF9ezErdGhldGFeMn0NCiQkDQoNCg0KNC5DYWxjdWxhciAgeSAgZ3JhZmljYXIgIGxhcyAgZnVuY2lvbmVzICBkZSAgYXV0b2NvcnJlbGFjaW9uICBwYXJhICBsb3MgIHNpZ3VpZW50ZXMgIG1vZGVsb3MgIEFSKDEpLiAgR3LhZmljYXIgIGNvbiAgdW4gIG51bWVybyAgc3VmaWNpZW50ZXMgIGRlICByZXphZ29zICBwYXJhICBxdWUgIGxhICBmdW5j7W9uICBkZSAgYXV0b2NvcnJlbGPtb24gIGRlY3JlemNhICBhICBjYXNpICBjZXJvLg0KDQphKXBoaTE9MC42DQpgYGB7cn0NCkFDRjE8LUFSTUFhY2YoYXI9MC42LGxhZy5tYXg9MTIpDQpwbG90KHk9QUNGMVstMV0seD0xOjEyLG1haW49J3BoaT0wLjYnLHhsYWI9J0xhZycseWxhYj0nQUNGJyx0eXBlPSdoJywgY29sPSJzdGVlbGJsdWU0IiApO2FibGluZShoPTApDQpgYGANCg0KYilwaGkxPS0wLjYNCmBgYHtyfQ0KQUNGMjwtQVJNQWFjZihhcj0tMC42LGxhZy5tYXg9MTIpDQpwbG90KHk9QUNGMlstMV0seD0xOjEyLG1haW49J3BoaT0tMC42Jyx4bGFiPSdMYWcnLHlsYWI9J0FDRicsdHlwZT0naCcsIGNvbD0icHVycGxlIik7YWJsaW5lKGg9MCkNCmBgYA0KDQpjKXBoaTE9MC45NSAgKGhhY2VybG8gIHBhcmEgIDIwICByZXphZ29zKQ0KYGBge3J9DQpBQ0YzPC1BUk1BYWNmKGFyPTAuOTUsbGFnLm1heD0yMCkNCnBsb3QoeT1BQ0YzWy0xXSx4PTE6MjAsbWFpbj0ncGhpPTAuOTUnLHhsYWI9J0xhZycseWxhYj0nQUNGJyx0eXBlPSdoJywgY29sPSJwaW5rMiIpO2FibGluZShoPTApDQoNCg0KDQpgYGANCg0KDQoNCmQpcGhpMT0wLjMNCg0KYGBge3J9DQpBQ0Y0PC1BUk1BYWNmKGFyPS0wLjMsbGFnLm1heD0xMikNCnBsb3QoeT1BQ0Y0Wy0xXSx4PTE6MTIsbWFpbj0ncGhpPS0wLjMnLHhsYWI9J0xhZycseWxhYj0nQUNGJyx0eXBlPSdoJywgY29sPSJ5ZWxsb3dncmVlbiIpO2FibGluZShoPTApDQoNCg0KYGBgDQoNCg0KNS5EZXNjcmliYSAgbGFzICBjYXJhY3RlcmlzdGljYXMgIGdlbmVyYWxlcyAgZGUgIGxhICBmdW5jaW9uICBkZSAgYXV0b2NvcnJlbGFjaW9uICBwYXJhICBsb3MgIHNpZ3VpZW50ZXMgcHJvY2Vzb3M6DQoNCmEpICBNQSgxKQ0KDQpjb21vIGNvcnJlbGFjafNuIG5vIG51bGEgc29sbyBlbiBlbCByZXRyYXNvIDEuIFB1ZWRlIHNlciBwb3NpdGl2byBvIG5lZ2F0aXZvLCBwZXJvIGRlYmUgZXN0YXIgZW50cmUgLTAuNSB5ICswLjUuDQoNCmIpICBNQSgyKSANCg0KVGllbmUgY29ycmVsYWNp824gZGlzdGludGEgZGUgY2VybyBzb2xvIGVuIGxvcyByZXRyYXNvcyAxIHkgMi4NCg0KYykgIEFSKDEpDQoNClRpZW5lIGF1dG9jb3JyZWxhY2lvbmVzIGVuIGRlc2NvbXBvc2ljafNuIGV4cG9uZW5jaWFsIGEgcGFydGlyIGRlbCByZXRyYXNvIDAuIFNpID8/PiAwLCBlbnRvbmNlcyB0b2RhcyBsYXMgYXV0b2NvcnJlbGFjaW9uZXMgc29uIHBvc2l0aXZhcy4gU2kgPz8gPDAsIGVudG9uY2VzIGxhcyBhdXRvY29ycmVsYWNpb25lcyBhbHRlcm5hbiBlbnRyZSBuZWdhdGl2bywgcG9zaXRpdm8gbmVnYXRpdm8sIGV0Yy4NCg0KZCkgIEFSKDIpICANCg0KTGFzIGF1dG9jb3JyZWxhY2lvbmVzIHB1ZWRlbiB0ZW5lciB2YXJpb3MgcGF0cm9uZXMsIHBlcm8gc2kgbGFzIHJh7WNlcyBkZSBsYSBlY3VhY2nzbiBjYXJhY3Rlcu1zdGljYSBzb24gbvptZXJvcyBjb21wbGVqb3MsIGVudG9uY2VzIGVsIHBhdHLzbiBzZXLhIHVuIGNvc2VubyBjb24gdW5hIG1hZ25pdHVkIGRlY3JlY2llbnRlLg0KDQoNCmUpICBBUk1BKDEsMSkNCg0KVGllbmUgYXV0b2NvcnJlbGFjaW9uZXMgZW4gZGVzY29tcG9zaWNp824gZXhwb25lbmNpYWwgYSBwYXJ0aXIgZGVsIHJldHJhc28gMSwgcGVybyBubyBkZWwgcmV0cmFzbyBjZXJvDQoNCjYuVXNhciAgbGEgIGZvcm11bGEgIHJlY3Vyc2l2YSAgPz8/P2s9Pz8xPz9rPz8/MSs/PzI/P2s/Pz8yKGVjdWFjaW9uICBZdWxlLVdhbGtlcikgIHBhcmEgIGNhbGN1bGFyICB5ICBncmFmaWNhciAgbGFzICBmdW5jaW9uZXMgIGRlICBhdXRvY29ycmVsYWNpb24gIHBhcmEgIGxvcyAgc2lndWllbnRlcyAgcHJvY2Vzb3MgIEFSKDIpICBjb24gIGxvcyAgcGFyICA/P2FtZXRyb3MgIGVzcGVjaWZpY2Fkb3MuICBFbiAgY2FkYSAgY2FzbyAgZXNwZWNpZmlxdWUgIHNpICBsYXMgIHJhICA/P2ljZXMgIGRlICBsYSAgZWN1YWNpb24gIGNhcmFjdGVyaXN0aWNhICBzb24gIHJlYWxlcyAgb2NvbXBsZWphcy4NCg0KYSlwaGkxPTAuNiAgeSBwaGkyPTAuMw0KYGBge3J9DQpBQ0YxPC1BUk1BYWNmKGFyPWMoMC42LDAuMyksbGFnLm1heD0xMikNCnBsb3QoeT1BQ0YxWy0xXSx4PTE6MTIsbWFpbj0ncGhpMT0wLjYsICBwaGkyPTAuMycseGxhYj0nTGFnJyx5bGFiPSdBQ0YnLHR5cGU9J2gnLCBjb2w9InRhbjMiKTthYmxpbmUoaD0wKQ0KYGBgDQoNCmIpcGhpMT0tMC40ICB5IHBoaTI9MC41DQpgYGB7cn0NCkFDRjI8LUFSTUFhY2YoYXI9YygtMC40LDAuNSksbGFnLm1heD0xMikNCnBsb3QoeT1BQ0YyWy0xXSx4PTE6MTIsbWFpbj0ncGhpMT0tMC40LCAgcGhpMj0wLjUnLHhsYWI9J0xhZycseWxhYj0nQUNGJyx0eXBlPSdoJywgY29sPSJvcmNoaWQiKTthYmxpbmUoaD0wKQ0KYGBgDQoNCmMpcGhpMT0xLjIgIHkgcGhpMj0tMC43DQpgYGB7cn0NCkFDRjM8LUFSTUFhY2YoYXI9YygxLjIsLTAuNyksbGFnLm1heD0xMikNCnBsb3QoeT1BQ0YzWy0xXSx4PTE6MTIsbWFpbj0ncGhpMT0tMSwgIHBoaTI9LTAuNycseGxhYj0nTGFnJyx5bGFiPSdBQ0YnLHR5cGU9J2gnLCBjb2w9ImNhZGV0Ymx1ZSIpO2FibGluZShoPTApDQpgYGANCg0KZClwaGkxPS0xICB5IHBoaTI9LTAuNg0KYGBge3J9DQpBQ0Y0PC1BUk1BYWNmKGFyPWMoLTEsLTAuNiksbGFnLm1heD0xMikNCnBsb3QoeT1BQ0Y0Wy0xXSx4PTE6MTIsbWFpbj0ncGhpMT0xLCAgcGhpMj0tMC42Jyx4bGFiPSdMYWcnLHlsYWI9J0FDRicsdHlwZT0naCcsIGNvbD0ibWVkaXVtc3ByaW5nZ3JlZW4iKTthYmxpbmUoaD0wKQ0KYGBgDQoNCmUpcGhpMT0wLjUgIHkgcGhpMj0tMC45DQpgYGB7cn0NCkFDRjQ8LUFSTUFhY2YoYXI9YygwLjUsLTAuOSksbGFnLm1heD0xMikNCnBsb3QoeT1BQ0Y0Wy0xXSx4PTE6MTIsbWFpbj0ncGhpMT0wLjUsICBwaGkyPS0wLjknLHhsYWI9J0xhZycseWxhYj0nQUNGJyx0eXBlPSdoJywgY29sPSJob3RwaW5rMiIpO2FibGluZShoPTApDQoNCmBgYA0KDQpmKXBoaTE9LTAuNSAgeSBwaGkyPS0wLjYNCmBgYHtyfQ0KDQpBQ0Y0PC1BUk1BYWNmKGFyPWMoMSwtMC42KSxsYWcubWF4PTEyKQ0KcGxvdCh5PUFDRjRbLTFdLHg9MToxMixtYWluPSdwaGkxPTEsICBwaGkyPS0wLjYnLHhsYWI9J0xhZycseWxhYj0nQUNGJyx0eXBlPSdoJywgY29sPSJwYWxldmlvbGV0cmVkMSIpO2FibGluZShoPTApDQoNCmBgYA0KDQoNCjcuR3JhZmljYXIgIGxhcyAgZnVuY2lvbmVzICBkZSAgYXV0b2NvcnJlbGFjaW9uICBwYXJhICBjYWRhICB1bm8gIGRlICBsb3MgIHNpZ3VpZW50ZXMgIHByb2Nlc29zICBBUk1BOiAgDQphKUFSTUEoMSwxKSAgY29uIHBoaT0wLjcgIHkgdGhldGE9LTAuNA0KYGBge3J9DQpBQ0Y9QVJNQWFjZihhcj0wLjcsbWE9LTAuNCxsYWcubWF4PTIwKQ0KIHBsb3QoeT1BQ0ZbLTFdLHg9MToyMCx4bGFiPSdMYWcnLHlsYWI9J0FDRicsdHlwZT0naCcsIGNvbD0ibWlzdHlyb3NlIik7ICBhYmxpbmUoaD0wKQ0KYGBgDQoNCmIpQVJNQSgxLDEpICBjb24gcGhpPTAuNyAgeSB0aGV0YT0wLjQNCmBgYHtyfQ0KQUNGPUFSTUFhY2YoYXI9MC43LG1hPTAuNCxsYWcubWF4PTIwKQ0KIHBsb3QoeT1BQ0ZbLTFdLHg9MToyMCx4bGFiPSdMYWcnLHlsYWI9J0FDRicsdHlwZT0naCcsIGNvbD0ic25vdzMiKTsgIGFibGluZShoPTApDQpgYGANCg0KDQoNCjguQ29uc2lkZXJlICBkb3MgIHByb2Nlc29zICBNQSgyKSwgIHVubyAgY29uIHBoaTE9cGhpMj0tMS82ICB5ICBvdHJvICBjb24gcGhpPTEgIHkgcGhpMj0tNg0KDQphKU1vc3RyYXIgIHF1ZSAgZXN0b3MgIHByb2Nlc29zICB0aWVuZW4gIGxhICBtaXNtYSAgZnVuY2lvbiAgZGUgIGF1dG9jb3JyZWxhY+1vbi4gDQpgYGB7cn0NCkFSTUFhY2YobWE9YygxLC02KSkNCg0KYGBgDQpgYGB7cn0NCkFSTUFhY2YobWE9YygtMS82LC0xLzYpKQ0KYGBgDQoNCmIpv0NvbW8gIHNlICBjb21wYXJhbiAgbGFzICBy4WljZXMgIGRlICBsb3MgIHBvbGlub21pb3MgIGNhcmFjdGVyaXN0aWNvcz8NCg0KIGxhcyByYe1jZXMgZGUgbG9zIGRvcyBwb2xpbm9taW9zIHNvbiByZWPtcHJvY2FzIGVudHJlIHPtLiBTb2xvIGVsIG1vZGVsbyBNQSAoMikgY29uID8/MSA9ID8/MiA9IDEvNiBlcyBpbnZlcnRpYmxlLg0KDQo5LkNvbnNpZGVyZSAgdW4gIHByb2Nlc28gIEFSKDEpIA0KJCQNCll0PVlfe3QtMX0rZV90DQokJA0KTW9zdHJhciAgcXVlICBzaXxwaGl8PTEgIGVsICBwcm9jZXNvICBubyAgcHVlZGUgIHNlciBlc3RhY2lvbmFyaW8uICAoUGlzdGE6ICBUb21hciAgdmFyaWFuemFzICBkZSAgYW1ib3MgIGxhZG9zKS4NCiQkDQpWYXIoWV90KT1waGkgdmFyKFlfe3QtMX0pK3NpZ21hXjJlXFwNClZhcihZX3QpPXNpZ21hXjIgLygxLXBoaV4yKQ0KJCQNCnxwaGl8ID0gMSBlc3RvIGVzIGltcG9zaWJsZSB5IHRlbmVtb3MgdW5hIHBydWViYSBwb3IgY29udHJhZGljY2nzbg0KDQoNCjEwLkNvbnNpZGVyZSAgdW4gIHByb2Nlc28gIE1BKDYpICBjb24gcGhpMT0tMC41LHBoaTI9MC4yNSxwaGkzPS0wLjEyNSxwaGk0PTAuMDYyNSxwaGk1PS0wLjAzMjUgIGFuZCBwaGk2PTAuMDE1NjI1LkVuY29udHJhciAgdW4gIG1vZGVsbyAgbWFzICBzaW1wbGUgIHF1ZSAgdGVuZ2EgIGNhc2kgIGxvcyAgbWlzbW9zICA/Py1wZXNvcw0KYGBge3J9DQpBUk1BYWNmKG1hPWMoLTAuNSwwLjI1LC0wLjEyNSwwLjA2MjUsLTAuMDMxMjUsMC4wMTU2MjUpKQ0KYGBg