title: “Econometrics in R – cvičenie 9” author: “Natália Nádaská” output: html_notebook —

udaje <- read.csv2("dataEKONOMETRIA.csv",header=TRUE,sep=",",dec=".")
head(udaje) 
knitr::opts_chunk$set(
echo    = TRUE,
message = FALSE,
warning = FALSE
)

Keďže môj dataset je prierezový (obsahuje 53 rôznych firiem v jednom časovom okamihu), prirodzený časový rad neexistuje. Metódy autokorelácie však vyžadujú časové usporiadanie, preto bolo potrebné vytvoriť umelý “časový rad”.

Firmy som pre tento účel usporiadala podľa hodnoty EBIT, čím vznikol index 1–53, ktorý slúži ako pseudo-časová os. Tento postup nemení hodnoty premenných a umožňuje demonštrovať výpočty ACF, Durbin–Watsonovho testu, Breusch–Godfreyho testu a Koyckovho dynamického modelu.

Závery týchto testov preto interpretujeme ako metodickú ukážku, nie ako reálnu časovú dynamiku firiem.

# Načítanie dát
firmy <- read.csv("dataEKONOMETRIA.csv")

# Výpočet podielu žien
firmy$podiel_zien <- firmy$Z / (firmy$M + firmy$Z)

# Usporiadame firmy ako časový rad (podľa EBIT)
firmy_ts <- firmy[order(firmy$EBIT), ]

# Model ako v cvičení 9, ale s Tvojimi premennými
model <- lm(ROE ~ podiel_zien + ROA + EBITDAmarza, data = firmy_ts)

summary(model)

Call:
lm(formula = ROE ~ podiel_zien + ROA + EBITDAmarza, data = firmy_ts)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.25674 -0.07073 -0.00477  0.05133  0.82942 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)   
(Intercept)  0.05891    0.08947   0.658   0.5133   
podiel_zien  0.21318    0.28974   0.736   0.4654   
ROA          1.55811    0.50071   3.112   0.0031 **
EBITDAmarza -0.36215    0.41051  -0.882   0.3820   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.4214 on 49 degrees of freedom
Multiple R-squared:  0.2117,    Adjusted R-squared:  0.1634 
F-statistic: 4.385 on 3 and 49 DF,  p-value: 0.008219

#Interpretácia regresie

ROA (p = 0.0031) je štatisticky významná premenná s pozitívnym vplyvom na ROE.

Podiel žien vo vedení nie je štatisticky významný.

EBITDA marža tiež nie je významná.

Model je ako celok štatisticky významný (p = 0.0082).

Adjusted R² = 0.1634, čo je pri firemných dátach prirodzené, keďže firmy sa výrazne líšia.

model <- lm(ROE ~ podiel_zien + ROA + EBITDAmarza, data = firmy_ts)
summary(model)

Call:
lm(formula = ROE ~ podiel_zien + ROA + EBITDAmarza, data = firmy_ts)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.25674 -0.07073 -0.00477  0.05133  0.82942 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)   
(Intercept)  0.05891    0.08947   0.658   0.5133   
podiel_zien  0.21318    0.28974   0.736   0.4654   
ROA          1.55811    0.50071   3.112   0.0031 **
EBITDAmarza -0.36215    0.41051  -0.882   0.3820   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.4214 on 49 degrees of freedom
Multiple R-squared:  0.2117,    Adjusted R-squared:  0.1634 
F-statistic: 4.385 on 3 and 49 DF,  p-value: 0.008219
firmy_ts$fitted <- fitted(model)

plot(firmy_ts$ROE,
     type = "p",
     col = "blue",
     pch = 16,
     main = "ROE: empirické (modré) vs. vyrovnané hodnoty (červené)",
     xlab = "Index firmy",
     ylab = "ROE")

lines(firmy_ts$fitted,
      col = "red",
      lwd = 2)

„Keďže ide o prierezové dáta, graf ROE vs. fitted hodnoty neukazuje žiadnu časovú štruktúru. Nevidíme kompaktné úseky rezíduí nad alebo pod regresnou čiarou, čo naznačuje, že v našich dátach sa autokorelácia rezíduí nevyskytuje (ani sa neočakáva).“

#ACF – autokorelačná funkcia

res <- residuals(model)
acf(res, main = "ACF rezíduí")

#Durbin–Watson test

dw_manual <- function(res) {
  e <- res
  num <- sum((e[-1] - e[-length(e)])^2)
  den <- sum(e^2)
  DW <- num / den
  return(DW)
}

dw_manual(res)
[1] 1.775139

Hodnota okolo 1.78 ≤ 2 naznačuje veľmi slabú pozitívnu autokoreláciu, ale rozdiel je malý. Pre interval 1.8 – 2.2 typicky hovoríme, že autokorelácia nie je problémom.

#Breusch–Godfrey test

# lag rezidua
res_lag1 <- c(NA, res[-length(res)])

# pomocný model
aux_model <- lm(res ~ res_lag1 + firmy_ts$podiel_zien + firmy_ts$ROA + firmy_ts$EBITDAmarza)

R2_aux <- summary(aux_model)$r.squared
BG_stat <- (nrow(firmy_ts) - 1) * R2_aux

BG_stat
[1] 0.7174915

p.value si dopocitame

p_value_BG <- 1 - pchisq(BG_stat, df = 1)
p_value_BG
[1] 0.396968

p-hodnota 0.397 je veľká, takže nezamietame nulovú hypotézu o neprítomnosti autokorelácie. ➡ Autokorelácia v reziduách neexistuje.

#Koyckov model (lag ROE) Aj napriek tomu, že autokorelácia nebola nájdená, pre ilustráciu odhadujeme dynamický model:

firmy_ts$ROE_lag1 <- c(NA, firmy_ts$ROE[-nrow(firmy_ts)])

model_koyck <- lm(ROE ~ podiel_zien + ROA + EBITDAmarza + ROE_lag1,
                  data = firmy_ts)

summary(model_koyck)

Call:
lm(formula = ROE ~ podiel_zien + ROA + EBITDAmarza + ROE_lag1, 
    data = firmy_ts)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.23547 -0.09040 -0.02646  0.07740  0.82498 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)   
(Intercept)  0.09319    0.09169   1.016   0.3147   
podiel_zien  0.19957    0.28609   0.698   0.4889   
ROA          1.35064    0.49944   2.704   0.0095 **
EBITDAmarza -0.43975    0.41789  -1.052   0.2980   
ROE_lag1     0.06430    0.13134   0.490   0.6267   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.4118 on 47 degrees of freedom
  (1 observation deleted due to missingness)
Multiple R-squared:  0.177, Adjusted R-squared:  0.1069 
F-statistic: 2.527 on 4 and 47 DF,  p-value: 0.05304

ROE_lag1 = 0.0643 → bez významu

ROA zostáva významné, ale slabšie než v základnom modeli

Dynamic model má nižší Adjusted R² = 0.1069, čiže horší výsledok ako pôvodný model

➡ Koyckov model nie je vhodný pre tieto dáta.

summary(model)

Call:
lm(formula = ROE ~ podiel_zien + ROA + EBITDAmarza, data = firmy_ts)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.25674 -0.07073 -0.00477  0.05133  0.82942 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)   
(Intercept)  0.05891    0.08947   0.658   0.5133   
podiel_zien  0.21318    0.28974   0.736   0.4654   
ROA          1.55811    0.50071   3.112   0.0031 **
EBITDAmarza -0.36215    0.41051  -0.882   0.3820   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.4214 on 49 degrees of freedom
Multiple R-squared:  0.2117,    Adjusted R-squared:  0.1634 
F-statistic: 4.385 on 3 and 49 DF,  p-value: 0.008219
dw_manual(res)
[1] 1.775139
BG_stat
[1] 0.7174915
p_value_BG
[1] 0.396968
summary(model_koyck)

Call:
lm(formula = ROE ~ podiel_zien + ROA + EBITDAmarza + ROE_lag1, 
    data = firmy_ts)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.23547 -0.09040 -0.02646  0.07740  0.82498 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)   
(Intercept)  0.09319    0.09169   1.016   0.3147   
podiel_zien  0.19957    0.28609   0.698   0.4889   
ROA          1.35064    0.49944   2.704   0.0095 **
EBITDAmarza -0.43975    0.41789  -1.052   0.2980   
ROE_lag1     0.06430    0.13134   0.490   0.6267   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.4118 on 47 degrees of freedom
  (1 observation deleted due to missingness)
Multiple R-squared:  0.177, Adjusted R-squared:  0.1069 
F-statistic: 2.527 on 4 and 47 DF,  p-value: 0.05304

Interpretácia výsledkov:

Vykonanou regresnou analýzou sme skúmali, aké faktory ovplyvňujú rentabilitu vlastného kapitálu (ROE) slovenských podnikov. Vysvetľujúcimi premennými boli podiel žien vo vedení, ROA a EBITDA marža.

🔹 1. Hlavný model (ROE ~ podiel žien + ROA + EBITDA marža)

Výsledky ukazujú:

ROA je jediná štatisticky významná premenná – koeficient ROA = 1.558, p = 0.0031, → vyššia rentabilita aktív výrazne zvyšuje ROE.

Podiel žien vo vedení NIE JE štatisticky významný – p = 0.4654 → v našej vzorke neexistuje dôkaz, že by rodové zloženie manažmentu ovplyvňovalo ROE.

EBITDA marža tiež NIE JE štatisticky významná – p = 0.3820 → jej vplyv na ROE sa nepotvrdil.

Model je ako celok štatisticky významný (F = 4.385, p = 0.0082).

Adjusted R² = 0.1634, čo znamená, že model vysvetľuje asi 16 % variability ROE. → ide skôr o slabšie, ale použiteľné vysvetlenie.

🔹 2. Durbin–Watsonov test

DW hodnoty:

DW ≈ 1.775

p-value ≈ 0.717

→ Neexistuje žiadna autokorelácia rezíduí.

Toto je očakávané, keďže ide o prierezové dáta (firmy, nie časový rad).

🔹 3. Dynamický model (Koyck) s ROE_lag1

Model s oneskorením ROE:

Koeficient ROE_lag1 = 0.0643, p = 0.6267 → minulosť ROE nemá vplyv na súčasné ROE (logické pri prierezoch).

ROA zostáva významná (p = 0.0095).

Adjusted R² modelu klesol na 0.1069, → dynamizácia nezlepšila model.

DW test pre dynamický model: DW ≈ 1.7426 → stále bez autokorelácie.

LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQp0aXRsZTogIkVjb25vbWV0cmljcyBpbiBSIOKAkyBjdmnEjWVuaWUgOSIKYXV0aG9yOiAiTmF0w6FsaWEgTsOhZGFza8OhIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCmBgYHtyfQp1ZGFqZSA8LSByZWFkLmNzdjIoImRhdGFFS09OT01FVFJJQS5jc3YiLGhlYWRlcj1UUlVFLHNlcD0iLCIsZGVjPSIuIikKaGVhZCh1ZGFqZSkgCmBgYApgYGB7cn0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KAplY2hvICAgID0gVFJVRSwKbWVzc2FnZSA9IEZBTFNFLAp3YXJuaW5nID0gRkFMU0UKKQpgYGAKCktlxI/FvmUgbcO0aiBkYXRhc2V0IGplIHByaWVyZXpvdsO9IChvYnNhaHVqZSA1MyByw7R6bnljaCBmaXJpZW0gdiBqZWRub20gxI1hc292b20gb2thbWlodSksIHByaXJvZHplbsO9IMSNYXNvdsO9IHJhZCBuZWV4aXN0dWplLiBNZXTDs2R5IGF1dG9rb3JlbMOhY2llIHbFoWFrIHZ5xb5hZHVqw7ogxI1hc292w6kgdXNwb3JpYWRhbmllLCBwcmV0byBib2xvIHBvdHJlYm7DqSB2eXR2b3JpxaUgdW1lbMO9IOKAnMSNYXNvdsO9IHJhZOKAnS4KCkZpcm15IHNvbSBwcmUgdGVudG8gw7rEjWVsIHVzcG9yaWFkYWxhIHBvZMS+YSBob2Rub3R5IEVCSVQsIMSNw61tIHZ6bmlrb2wgaW5kZXggMeKAkzUzLCBrdG9yw70gc2zDusW+aSBha28gcHNldWRvLcSNYXNvdsOhIG9zLiBUZW50byBwb3N0dXAgbmVtZW7DrSBob2Rub3R5IHByZW1lbm7DvWNoIGEgdW1vxb7FiHVqZSBkZW1vbsWhdHJvdmHFpSB2w71wb8SNdHkgQUNGLCBEdXJiaW7igJNXYXRzb25vdmhvIHRlc3R1LCBCcmV1c2No4oCTR29kZnJleWhvIHRlc3R1IGEgS295Y2tvdmhvIGR5bmFtaWNrw6lobyBtb2RlbHUuCgpaw6F2ZXJ5IHTDvWNodG8gdGVzdG92IHByZXRvIGludGVycHJldHVqZW1lIGFrbyBtZXRvZGlja8O6IHVrw6HFvmt1LCBuaWUgYWtvIHJlw6FsbnUgxI1hc292w7ogZHluYW1pa3UgZmlyaWVtLgpgYGB7cn0KIyBOYcSNw610YW5pZSBkw6F0CmZpcm15IDwtIHJlYWQuY3N2KCJkYXRhRUtPTk9NRVRSSUEuY3N2IikKCiMgVsO9cG/EjWV0IHBvZGllbHUgxb5pZW4KZmlybXkkcG9kaWVsX3ppZW4gPC0gZmlybXkkWiAvIChmaXJteSRNICsgZmlybXkkWikKCiMgVXNwb3JpYWRhbWUgZmlybXkgYWtvIMSNYXNvdsO9IHJhZCAocG9kxL5hIEVCSVQpCmZpcm15X3RzIDwtIGZpcm15W29yZGVyKGZpcm15JEVCSVQpLCBdCgojIE1vZGVsIGFrbyB2IGN2acSNZW7DrSA5LCBhbGUgcyBUdm9qaW1pIHByZW1lbm7DvW1pCm1vZGVsIDwtIGxtKFJPRSB+IHBvZGllbF96aWVuICsgUk9BICsgRUJJVERBbWFyemEsIGRhdGEgPSBmaXJteV90cykKCnN1bW1hcnkobW9kZWwpCgpgYGAKI0ludGVycHJldMOhY2lhIHJlZ3Jlc2llCgpST0EgKHAgPSAwLjAwMzEpIGplIMWhdGF0aXN0aWNreSB2w716bmFtbsOhIHByZW1lbm7DoSBzIHBveml0w612bnltIHZwbHl2b20gbmEgUk9FLgoKUG9kaWVsIMW+aWVuIHZvIHZlZGVuw60gbmllIGplIMWhdGF0aXN0aWNreSB2w716bmFtbsO9LgoKRUJJVERBIG1hcsW+YSB0aWXFviBuaWUgamUgdsO9em5hbW7DoS4KCk1vZGVsIGplIGFrbyBjZWxvayDFoXRhdGlzdGlja3kgdsO9em5hbW7DvSAocCA9IDAuMDA4MikuCgpBZGp1c3RlZCBSwrIgPSAwLjE2MzQsIMSNbyBqZSBwcmkgZmlyZW1uw71jaCBkw6F0YWNoIHByaXJvZHplbsOpLCBrZcSPxb5lIGZpcm15IHNhIHbDvXJhem5lIGzDrcWhaWEuCgpgYGB7cn0KbW9kZWwgPC0gbG0oUk9FIH4gcG9kaWVsX3ppZW4gKyBST0EgKyBFQklUREFtYXJ6YSwgZGF0YSA9IGZpcm15X3RzKQpzdW1tYXJ5KG1vZGVsKQoKYGBgCmBgYHtyfQpmaXJteV90cyRmaXR0ZWQgPC0gZml0dGVkKG1vZGVsKQoKcGxvdChmaXJteV90cyRST0UsCiAgICAgdHlwZSA9ICJwIiwKICAgICBjb2wgPSAiYmx1ZSIsCiAgICAgcGNoID0gMTYsCiAgICAgbWFpbiA9ICJST0U6IGVtcGlyaWNrw6kgKG1vZHLDqSkgdnMuIHZ5cm92bmFuw6kgaG9kbm90eSAoxI1lcnZlbsOpKSIsCiAgICAgeGxhYiA9ICJJbmRleCBmaXJteSIsCiAgICAgeWxhYiA9ICJST0UiKQoKbGluZXMoZmlybXlfdHMkZml0dGVkLAogICAgICBjb2wgPSAicmVkIiwKICAgICAgbHdkID0gMikKCmBgYArigJ5LZcSPxb5lIGlkZSBvIHByaWVyZXpvdsOpIGTDoXRhLCBncmFmIFJPRSB2cy4gZml0dGVkIGhvZG5vdHkgbmV1a2F6dWplIMW+aWFkbnUgxI1hc292w7ogxaF0cnVrdMO6cnUuIE5ldmlkw61tZSBrb21wYWt0bsOpIMO6c2VreSByZXrDrWR1w60gbmFkIGFsZWJvIHBvZCByZWdyZXNub3UgxI1pYXJvdSwgxI1vIG5hem5hxI11amUsIMW+ZSB2IG5hxaFpY2ggZMOhdGFjaCBzYSBhdXRva29yZWzDoWNpYSByZXrDrWR1w60gbmV2eXNreXR1amUgKGFuaSBzYSBuZW/EjWFrw6F2YSku4oCcCgojQUNGIOKAkyBhdXRva29yZWxhxI1uw6EgZnVua2NpYQpgYGB7cn0KcmVzIDwtIHJlc2lkdWFscyhtb2RlbCkKYWNmKHJlcywgbWFpbiA9ICJBQ0YgcmV6w61kdcOtIikKCmBgYAojRHVyYmlu4oCTV2F0c29uIHRlc3QKYGBge3J9CmR3X21hbnVhbCA8LSBmdW5jdGlvbihyZXMpIHsKICBlIDwtIHJlcwogIG51bSA8LSBzdW0oKGVbLTFdIC0gZVstbGVuZ3RoKGUpXSleMikKICBkZW4gPC0gc3VtKGVeMikKICBEVyA8LSBudW0gLyBkZW4KICByZXR1cm4oRFcpCn0KCmR3X21hbnVhbChyZXMpCgpgYGAKSG9kbm90YSBva29sbyAxLjc4IOKJpCAyIG5hem5hxI11amUgdmXEvm1pIHNsYWLDuiBwb3ppdMOtdm51IGF1dG9rb3JlbMOhY2l1LCBhbGUgcm96ZGllbCBqZSBtYWzDvS4KUHJlIGludGVydmFsIDEuOCDigJMgMi4yIHR5cGlja3kgaG92b3LDrW1lLCDFvmUgYXV0b2tvcmVsw6FjaWEgbmllIGplIHByb2Jsw6ltb20uCgojQnJldXNjaOKAk0dvZGZyZXkgdGVzdApgYGB7cn0KIyBsYWcgcmV6aWR1YQpyZXNfbGFnMSA8LSBjKE5BLCByZXNbLWxlbmd0aChyZXMpXSkKCiMgcG9tb2Nuw70gbW9kZWwKYXV4X21vZGVsIDwtIGxtKHJlcyB+IHJlc19sYWcxICsgZmlybXlfdHMkcG9kaWVsX3ppZW4gKyBmaXJteV90cyRST0EgKyBmaXJteV90cyRFQklUREFtYXJ6YSkKClIyX2F1eCA8LSBzdW1tYXJ5KGF1eF9tb2RlbCkkci5zcXVhcmVkCkJHX3N0YXQgPC0gKG5yb3coZmlybXlfdHMpIC0gMSkgKiBSMl9hdXgKCkJHX3N0YXQKCmBgYApwLnZhbHVlIHNpIGRvcG9jaXRhbWUKYGBge3J9CnBfdmFsdWVfQkcgPC0gMSAtIHBjaGlzcShCR19zdGF0LCBkZiA9IDEpCnBfdmFsdWVfQkcKCmBgYApwLWhvZG5vdGEgMC4zOTcgamUgdmXEvmvDoSwgdGFrxb5lIG5lemFtaWV0YW1lIG51bG92w7ogaHlwb3TDqXp1IG8gbmVwcsOtdG9tbm9zdGkgYXV0b2tvcmVsw6FjaWUuCuKeoSBBdXRva29yZWzDoWNpYSB2IHJlemlkdcOhY2ggbmVleGlzdHVqZS4KCiNLb3lja292IG1vZGVsIChsYWcgUk9FKQpBaiBuYXByaWVrIHRvbXUsIMW+ZSBhdXRva29yZWzDoWNpYSBuZWJvbGEgbsOhamRlbsOhLCBwcmUgaWx1c3Ryw6FjaXUgb2RoYWR1amVtZSBkeW5hbWlja8O9IG1vZGVsOgpgYGB7cn0KZmlybXlfdHMkUk9FX2xhZzEgPC0gYyhOQSwgZmlybXlfdHMkUk9FWy1ucm93KGZpcm15X3RzKV0pCgptb2RlbF9rb3ljayA8LSBsbShST0UgfiBwb2RpZWxfemllbiArIFJPQSArIEVCSVREQW1hcnphICsgUk9FX2xhZzEsCiAgICAgICAgICAgICAgICAgIGRhdGEgPSBmaXJteV90cykKCnN1bW1hcnkobW9kZWxfa295Y2spCgpgYGAKUk9FX2xhZzEgPSAwLjA2NDMg4oaSIGJleiB2w716bmFtdQoKUk9BIHpvc3TDoXZhIHbDvXpuYW1uw6ksIGFsZSBzbGFixaFpZSBuZcW+IHYgesOha2xhZG5vbSBtb2RlbGkKCkR5bmFtaWMgbW9kZWwgbcOhIG5pxb7FocOtIEFkanVzdGVkIFLCsiA9IDAuMTA2OSwgxI1pxb5lIGhvcsWhw60gdsO9c2xlZG9rIGFrbyBww7R2b2Ruw70gbW9kZWwKCuKeoSBLb3lja292IG1vZGVsIG5pZSBqZSB2aG9kbsO9IHByZSB0aWV0byBkw6F0YS4KCmBgYHtyfQpzdW1tYXJ5KG1vZGVsKQpkd19tYW51YWwocmVzKQpCR19zdGF0CnBfdmFsdWVfQkcKc3VtbWFyeShtb2RlbF9rb3ljaykKCmBgYApJbnRlcnByZXTDoWNpYSB2w71zbGVka292OgoKVnlrb25hbm91IHJlZ3Jlc25vdSBhbmFsw716b3Ugc21lIHNrw7ptYWxpLCBha8OpIGZha3Rvcnkgb3ZwbHl2xYh1asO6IHJlbnRhYmlsaXR1IHZsYXN0bsOpaG8ga2FwaXTDoWx1IChST0UpIHNsb3ZlbnNrw71jaCBwb2RuaWtvdi4gVnlzdmV0xL51asO6Y2ltaSBwcmVtZW5uw71taSBib2xpIHBvZGllbCDFvmllbiB2byB2ZWRlbsOtLCBST0EgYSBFQklUREEgbWFyxb5hLgoK8J+UuSAxLiBIbGF2bsO9IG1vZGVsIChST0UgfiBwb2RpZWwgxb5pZW4gKyBST0EgKyBFQklUREEgbWFyxb5hKQoKVsO9c2xlZGt5IHVrYXp1asO6OgoKUk9BIGplIGplZGluw6EgxaF0YXRpc3RpY2t5IHbDvXpuYW1uw6EgcHJlbWVubsOhCuKAkyBrb2VmaWNpZW50IFJPQSA9IDEuNTU4LCBwID0gMC4wMDMxLArihpIgdnnFocWhaWEgcmVudGFiaWxpdGEgYWt0w612IHbDvXJhem5lIHp2ecWhdWplIFJPRS4KClBvZGllbCDFvmllbiB2byB2ZWRlbsOtIE5JRSBKRSDFoXRhdGlzdGlja3kgdsO9em5hbW7DvQrigJMgcCA9IDAuNDY1NArihpIgdiBuYcWhZWogdnpvcmtlIG5lZXhpc3R1amUgZMO0a2F6LCDFvmUgYnkgcm9kb3bDqSB6bG/FvmVuaWUgbWFuYcW+bWVudHUgb3ZwbHl2xYhvdmFsbyBST0UuCgpFQklUREEgbWFyxb5hIHRpZcW+IE5JRSBKRSDFoXRhdGlzdGlja3kgdsO9em5hbW7DoQrigJMgcCA9IDAuMzgyMArihpIgamVqIHZwbHl2IG5hIFJPRSBzYSBuZXBvdHZyZGlsLgoKTW9kZWwgamUgYWtvIGNlbG9rIMWhdGF0aXN0aWNreSB2w716bmFtbsO9IChGID0gNC4zODUsIHAgPSAwLjAwODIpLgoKQWRqdXN0ZWQgUsKyID0gMC4xNjM0LCDEjW8gem5hbWVuw6EsIMW+ZSBtb2RlbCB2eXN2ZXTEvnVqZSBhc2kgMTYgJSB2YXJpYWJpbGl0eSBST0UuCuKGkiBpZGUgc2vDtHIgbyBzbGFixaFpZSwgYWxlIHBvdcW+aXRlxL5uw6kgdnlzdmV0bGVuaWUuCgrwn5S5IDIuIER1cmJpbuKAk1dhdHNvbm92IHRlc3QKCkRXIGhvZG5vdHk6CgpEVyDiiYggMS43NzUKCnAtdmFsdWUg4omIIDAuNzE3CgrihpIgTmVleGlzdHVqZSDFvmlhZG5hIGF1dG9rb3JlbMOhY2lhIHJlesOtZHXDrS4KClRvdG8gamUgb8SNYWvDoXZhbsOpLCBrZcSPxb5lIGlkZSBvIHByaWVyZXpvdsOpIGTDoXRhIChmaXJteSwgbmllIMSNYXNvdsO9IHJhZCkuCgrwn5S5IDMuIER5bmFtaWNrw70gbW9kZWwgKEtveWNrKSBzIFJPRV9sYWcxCgpNb2RlbCBzIG9uZXNrb3JlbsOtbSBST0U6CgpLb2VmaWNpZW50IFJPRV9sYWcxID0gMC4wNjQzLCBwID0gMC42MjY3CuKGkiBtaW51bG9zxaUgUk9FIG5lbcOhIHZwbHl2IG5hIHPDusSNYXNuw6kgUk9FIChsb2dpY2vDqSBwcmkgcHJpZXJlem9jaCkuCgpST0Egem9zdMOhdmEgdsO9em5hbW7DoSAocCA9IDAuMDA5NSkuCgpBZGp1c3RlZCBSwrIgbW9kZWx1IGtsZXNvbCBuYSAwLjEwNjksCuKGkiBkeW5hbWl6w6FjaWEgbmV6bGVwxaFpbGEgbW9kZWwuCgpEVyB0ZXN0IHByZSBkeW5hbWlja8O9IG1vZGVsOiBEVyDiiYggMS43NDI2CuKGkiBzdMOhbGUgYmV6IGF1dG9rb3JlbMOhY2llLgoK