knitr::opts_chunk$set(echo = TRUE)
rm(list=ls())
library(readxl)
Datos_NaEl<-Base_de_datos_Salinidad_Brassinoesteroides_1_ <- read_excel("d:/Users/Janus/Documents/Fisiologia vegetal basica/Base de datos Salinidad + Brassinoesteroides.xlsx")
Datos_NaEl

Temperatura

1.1 Anova para variable temperatura

m1 <- aov(Temp~Trat, data = Datos_NaEl)
anova(m1)
Analysis of Variance Table

Response: Temp
          Df  Sum Sq Mean Sq F value   Pr(>F)   
Trat       3 10.9269  3.6423  6.1322 0.009024 **
Residuals 12  7.1275  0.5940                    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

1.2 Pueba normaliada para temperatura

shapiro.test(resid(m1))

    Shapiro-Wilk normality test

data:  resid(m1)
W = 0.93912, p-value = 0.3384

1.3 Prueba de homogeneidad de varianza para temp

library(car)
library(carData)
leveneTest(Datos_NaEl$Temp~Datos_NaEl$Trat, center=mean)
group coerced to factor.
Levene's Test for Homogeneity of Variance (center = mean)
      Df F value Pr(>F)
group  3    0.83 0.5026
      12               

1.4 prueba de comparacion de promedio tukey

library(agricolae)
library(dplyr)
m1tukey <-HSD.test(Datos_NaEl$Temp,Datos_NaEl$Trat, 12, 0.5940, alpha = 0.05)
m1tukey
$statistics
  MSerror Df     Mean       CV      MSD
    0.594 12 17.76875 4.337469 1.617983

$parameters
   test          name.t ntr StudentizedRange alpha
  Tukey Datos_NaEl$Trat   4          4.19866  0.05

$means
     Datos_NaEl$Temp       std r  Min  Max    Q25   Q50    Q75
N0B0          17.400 0.4546061 4 16.8 17.9 17.250 17.45 17.600
N0B1          17.450 0.7767453 4 16.5 18.4 17.175 17.45 17.725
N1B0          19.175 0.9464847 4 18.4 20.5 18.550 18.90 19.525
N1B1          17.050 0.8185353 4 16.3 17.9 16.375 17.00 17.675

$comparison
NULL

$groups
     Datos_NaEl$Temp groups
N1B0          19.175      a
N0B1          17.450      b
N0B0          17.400      b
N1B1          17.050      b

attr(,"class")
[1] "group"

datos de área foliar en adelante.

Relacion de Estomas

1.1 Anova para variable EA

m10 <- aov(E_Abierto~Trat, data = Datos_NaEl)
anova(m10)
Analysis of Variance Table

Response: E_Abierto
          Df Sum Sq Mean Sq F value    Pr(>F)    
Trat       3 307.69 102.563  57.918 2.072e-07 ***
Residuals 12  21.25   1.771                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

1.2 Pueba normaliada para EA

shapiro.test(resid(m10))

    Shapiro-Wilk normality test

data:  resid(m10)
W = 0.95234, p-value = 0.5277

1.3 Prueba de homogeneidad de varianza para EA

library(car)
library(carData)
m10var<-leveneTest(Datos_NaEl$E_Abierto~Datos_NaEl$Trat, center=mean)
group coerced to factor.
m10var
Levene's Test for Homogeneity of Variance (center = mean)
      Df F value Pr(>F)
group  3  0.1134 0.9506
      12               

1.4 prueba de comparacion de promedio tukey para EA

library(agricolae)
library(dplyr)
m10tukey <-HSD.test(Datos_NaEl$E_Abierto,Datos_NaEl$Trat, 12, 1.771, alpha = 0.05)
m10tukey
$statistics
  MSerror Df    Mean      CV      MSD
    1.771 12 14.0625 9.46339 2.793766

$parameters
   test          name.t ntr StudentizedRange alpha
  Tukey Datos_NaEl$Trat   4          4.19866  0.05

$means
     Datos_NaEl$E_Abierto      std r Min Max   Q25  Q50   Q75
N0B0                17.25 1.500000 4  15  18 17.25 18.0 18.00
N0B1                16.25 1.258306 4  15  18 15.75 16.0 16.50
N1B0                 6.50 1.290994 4   5   8  5.75  6.5  7.25
N1B1                16.25 1.258306 4  15  18 15.75 16.0 16.50

$comparison
NULL

$groups
     Datos_NaEl$E_Abierto groups
N0B0                17.25      a
N0B1                16.25      a
N1B1                16.25      a
N1B0                 6.50      b

attr(,"class")
[1] "group"

EC

1.1 Anova para variable de EC

m11<- aov(E_Cerrado~Trat, data = Datos_NaEl)
anova(m11)
Analysis of Variance Table

Response: E_Cerrado
          Df Sum Sq Mean Sq F value   Pr(>F)   
Trat       3 39.188 13.0625  7.9367 0.003504 **
Residuals 12 19.750  1.6458                    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

1.2 Pueba normaliada para EC

shapiro.test(resid(m11))

    Shapiro-Wilk normality test

data:  resid(m11)
W = 0.89228, p-value = 0.06054

1.3 Prueba de homogeneidad de varianza para EC

library(car)
library(carData)
m11var<-leveneTest(Datos_NaEl$E_Cerrado~Datos_NaEl$Trat, center=mean)
group coerced to factor.
m11var
Levene's Test for Homogeneity of Variance (center = mean)
      Df F value Pr(>F)
group  3    0.55 0.6577
      12               

1.4 prueba de comparacion de promedio tukey para EC

library(agricolae)
library(dplyr)
m11tukey <-HSD.test(Datos_NaEl$E_Cerrado,Datos_NaEl$Trat, 12, 1.6458, alpha = 0.05)
m11tukey
$statistics
  MSerror Df    Mean       CV      MSD
   1.6458 12 25.0625 5.118753 2.693204

$parameters
   test          name.t ntr StudentizedRange alpha
  Tukey Datos_NaEl$Trat   4          4.19866  0.05

$means
     Datos_NaEl$E_Cerrado      std r Min Max   Q25  Q50   Q75
N0B0                24.50 1.290994 4  23  26 23.75 24.5 25.25
N0B1                26.50 1.000000 4  25  27 26.50 27.0 27.00
N1B0                22.75 1.707825 4  21  25 21.75 22.5 23.50
N1B1                26.50 1.000000 4  25  27 26.50 27.0 27.00

$comparison
NULL

$groups
     Datos_NaEl$E_Cerrado groups
N0B1                26.50      a
N1B1                26.50      a
N0B0                24.50     ab
N1B0                22.75      b

attr(,"class")
[1] "group"

ET

1.1 Anova para variable ET

m12 <- aov(E_Total~Trat, data = Datos_NaEl)
anova(m12)
Analysis of Variance Table

Response: E_Total
          Df Sum Sq Mean Sq F value    Pr(>F)    
Trat       3 522.75 174.250  48.628 5.466e-07 ***
Residuals 12  43.00   3.583                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

1.2 Pueba normaliada para hojas de ET

shapiro.test(resid(m12))

    Shapiro-Wilk normality test

data:  resid(m12)
W = 0.94324, p-value = 0.3906

1.3 Prueba de homogeneidad de varianza para ET

library(car)
library(carData)
m12var<-leveneTest(Datos_NaEl$E_Total~Datos_NaEl$Trat, center=mean)
group coerced to factor.
m12var
Levene's Test for Homogeneity of Variance (center = mean)
      Df F value Pr(>F)
group  3  0.6168 0.6172
      12               

1.4 prueba de comparacion de promedio tukey para ET

library(agricolae)
library(dplyr)
m12tukey <-HSD.test(Datos_NaEl$E_Total, Datos_NaEl$Trat, 12, 3.583, alpha = 0.05)
m12tukey
$statistics
  MSerror Df   Mean       CV      MSD
    3.583 12 39.125 4.838036 3.973783

$parameters
   test          name.t ntr StudentizedRange alpha
  Tukey Datos_NaEl$Trat   4          4.19866  0.05

$means
     Datos_NaEl$E_Total      std r Min Max   Q25  Q50   Q75
N0B0              41.75 2.629956 4  38  44 41.00 42.5 43.25
N0B1              42.75 1.707825 4  41  45 41.75 42.5 43.50
N1B0              29.25 1.258306 4  28  31 28.75 29.0 29.50
N1B1              42.75 1.707825 4  41  45 41.75 42.5 43.50

$comparison
NULL

$groups
     Datos_NaEl$E_Total groups
N0B1              42.75      a
N1B1              42.75      a
N0B0              41.75      a
N1B0              29.25      b

attr(,"class")
[1] "group"

%EA

Anova para %EA

m40<- aov(Porcentaje_EA~Trat, data = Datos_NaEl)
anova(m40)
Analysis of Variance Table

Response: Porcentaje_EA
          Df Sum Sq Mean Sq F value    Pr(>F)    
Trat       3 880.50 293.499  40.142 1.559e-06 ***
Residuals 12  87.74   7.312                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Normalidad para %EA

shapiro.test(resid(m40))

    Shapiro-Wilk normality test

data:  resid(m40)
W = 0.96831, p-value = 0.8106

Kruskal test

kruska40<-kruskal(Datos_NaEl$Porcentaje_EA, Datos_NaEl$Trat, alpha = 0.05)
kruska40
$statistics
     Chisq Df     p.chisq  t.value      MSD
  11.78254  3 0.008166436 2.178813 3.786895

$parameters
            test p.ajusted          name.t ntr alpha
  Kruskal-Wallis      none Datos_NaEl$Trat   4  0.05

$means
     Datos_NaEl.Porcentaje_EA  rank      std r      Min      Max      Q25
N0B0                 41.27510 14.00 1.440437 4 39.47368 42.85714 40.55024
N0B1                 37.98699  8.75 1.905990 4 35.71429 40.00000 36.83555
N1B0                 22.23403  2.50 4.461596 4 17.85714 27.58621 18.98041
N1B1                 37.98699  8.75 1.905990 4 35.71429 40.00000 36.83555
          Q50      Q75
N0B0 41.38478 42.10963
N0B1 38.11685 39.26829
N1B0 21.74638 25.00000
N1B1 38.11685 39.26829

$comparison
NULL

$groups
     Datos_NaEl$Porcentaje_EA groups
N0B0                    14.00      a
N0B1                     8.75      b
N1B1                     8.75      b
N1B0                     2.50      c

attr(,"class")
[1] "group"

Relacion EA/EC

Anova para EA/EC

m50<- aov(EA_EC~Trat, data = Datos_NaEl)
anova(m50)
Analysis of Variance Table

Response: EA_EC
          Df  Sum Sq  Mean Sq F value   Pr(>F)    
Trat       3 0.39867 0.132889  43.479 1.01e-06 ***
Residuals 12 0.03668 0.003056                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Normalidad EA/EC

shapiro.test(resid(m50))

    Shapiro-Wilk normality test

data:  resid(m50)
W = 0.93985, p-value = 0.3471

H. Vanrianza EA/EC

m50var<-leveneTest(Datos_NaEl$EA_EC~Datos_NaEl$Trat, center=mean)
group coerced to factor.
m50var
Levene's Test for Homogeneity of Variance (center = mean)
      Df F value Pr(>F)
group  3  1.3273 0.3113
      12               

Tukey EA/EC

m50tukey <-HSD.test(Datos_NaEl$EA_EC,Datos_NaEl$Trat, 12, 2.647, alpha = 0.05)
m50tukey
$statistics
  MSerror Df      Mean      CV      MSD
    2.647 12 0.5550398 293.125 3.415527

$parameters
   test          name.t ntr StudentizedRange alpha
  Tukey Datos_NaEl$Trat   4          4.19866  0.05

$means
     Datos_NaEl$EA_EC        std r       Min       Max       Q25       Q50
N0B0        0.7036204 0.04160960 4 0.6521739 0.7500000 0.6822742 0.7061538
N0B1        0.6137037 0.04940802 4 0.5555556 0.6666667 0.5833333 0.6162963
N1B0        0.2891314 0.07491229 4 0.2173913 0.3809524 0.2343478 0.2790909
N1B1        0.6137037 0.04940802 4 0.5555556 0.6666667 0.5833333 0.6162963
           Q75
N0B0 0.7275000
N0B1 0.6466667
N1B0 0.3338745
N1B1 0.6466667

$comparison
NULL

$groups
     Datos_NaEl$EA_EC groups
N0B0        0.7036204      a
N0B1        0.6137037      a
N1B1        0.6137037      a
N1B0        0.2891314      a

attr(,"class")
[1] "group"

Kruskal EA/EC

kruska50<-kruskal(Datos_NaEl$EA_EC, Datos_NaEl$Trat, alpha = 0.05)
kruska50
$statistics
     Chisq Df     p.chisq  t.value      MSD
  11.78254  3 0.008166436 2.178813 3.786895

$parameters
            test p.ajusted          name.t ntr alpha
  Kruskal-Wallis      none Datos_NaEl$Trat   4  0.05

$means
     Datos_NaEl.EA_EC  rank        std r       Min       Max       Q25
N0B0        0.7036204 14.00 0.04160960 4 0.6521739 0.7500000 0.6822742
N0B1        0.6137037  8.75 0.04940802 4 0.5555556 0.6666667 0.5833333
N1B0        0.2891314  2.50 0.07491229 4 0.2173913 0.3809524 0.2343478
N1B1        0.6137037  8.75 0.04940802 4 0.5555556 0.6666667 0.5833333
           Q50       Q75
N0B0 0.7061538 0.7275000
N0B1 0.6162963 0.6466667
N1B0 0.2790909 0.3338745
N1B1 0.6162963 0.6466667

$comparison
NULL

$groups
     Datos_NaEl$EA_EC groups
N0B0            14.00      a
N0B1             8.75      b
N1B1             8.75      b
N1B0             2.50      c

attr(,"class")
[1] "group"

CRC

1.1 Anova para variable CRC

m13<- aov(CRC~Trat, data = Datos_NaEl)
anova(m13)
Analysis of Variance Table

Response: CRC
          Df Sum Sq Mean Sq F value   Pr(>F)    
Trat       3 353.15 117.715   44.47 8.93e-07 ***
Residuals 12  31.77   2.647                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

1.2 Pueba normaliada para CRC

shapiro.test(resid(m13))

    Shapiro-Wilk normality test

data:  resid(m13)
W = 0.97622, p-value = 0.9265

1.3 Prueba de homogeneidad de varianza para CRC

library(car)
library(carData)
m13var<-leveneTest(Datos_NaEl$CRC~Datos_NaEl$Trat, center=mean)
group coerced to factor.
m13var
Levene's Test for Homogeneity of Variance (center = mean)
      Df F value Pr(>F)
group  3  0.4953 0.6923
      12               

1.4 prueba de comparacion de promedio tukey para CRC

library(agricolae)
library(dplyr)
m13tukey <-HSD.test(Datos_NaEl$CRC,Datos_NaEl$Trat, 12, 2.647, alpha = 0.05)
m13tukey
$statistics
  MSerror Df   Mean       CV      MSD
    2.647 12 30.875 5.269507 3.415527

$parameters
   test          name.t ntr StudentizedRange alpha
  Tukey Datos_NaEl$Trat   4          4.19866  0.05

$means
     Datos_NaEl$CRC      std r  Min  Max    Q25   Q50    Q75
N0B0         34.550 1.438749 4 32.9 35.9 33.575 34.70 35.675
N0B1         34.300 1.009950 4 33.0 35.1 33.750 34.55 35.100
N1B0         22.975 1.936276 4 20.2 24.4 22.375 23.65 24.250
N1B1         31.675 1.936276 4 30.1 34.5 30.775 31.05 31.950

$comparison
NULL

$groups
     Datos_NaEl$CRC groups
N0B0         34.550      a
N0B1         34.300      a
N1B1         31.675      a
N1B0         22.975      b

attr(,"class")
[1] "group"

1.1 Anova para variable parte area n de hojas

m20<- aov(PA_NHojas~Trat, data = Datos_NaEl)
anova(m20)
Analysis of Variance Table

Response: PA_NHojas
          Df Sum Sq Mean Sq F value  Pr(>F)  
Trat       3 3.6875  1.2292  3.9333 0.03626 *
Residuals 12 3.7500  0.3125                  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

#1.2 Pueba normaliada para NH PA

shapiro.test(resid(m20))

    Shapiro-Wilk normality test

data:  resid(m20)
W = 0.76781, p-value = 0.00105

1.3 Prueba de homogeneidad de varianza para NH PA

library(car)
library(carData)
m20var<-leveneTest(Datos_NaEl$PA_NHojas~Datos_NaEl$Trat, center=mean)
group coerced to factor.
m20var
Levene's Test for Homogeneity of Variance (center = mean)
      Df F value Pr(>F)
group  3       1 0.4262
      12               

1.4 prueba de comparacion de promedio tukey para NH PA

library(agricolae)
library(dplyr)
m20tukey <-HSD.test(Datos_NaEl$PA_NHojas,Datos_NaEl$Trat, 12, 0.3125, alpha = 0.05)
m20tukey
$statistics
  MSerror Df   Mean       CV      MSD
   0.3125 12 5.3125 10.52267 1.173561

$parameters
   test          name.t ntr StudentizedRange alpha
  Tukey Datos_NaEl$Trat   4          4.19866  0.05

$means
     Datos_NaEl$PA_NHojas       std r Min Max  Q25 Q50 Q75
N0B0                 5.75 0.5000000 4   5   6 5.75 6.0   6
N0B1                 5.50 0.5773503 4   5   6 5.00 5.5   6
N1B0                 4.50 0.5773503 4   4   5 4.00 4.5   5
N1B1                 5.50 0.5773503 4   5   6 5.00 5.5   6

$comparison
NULL

$groups
     Datos_NaEl$PA_NHojas groups
N0B0                 5.75      a
N0B1                 5.50     ab
N1B1                 5.50     ab
N1B0                 4.50      b

attr(,"class")
[1] "group"

1.1 Anova para variable PA Longitud

m14<- aov(PA_Longitud~Trat, data = Datos_NaEl)
anova(m14)
Analysis of Variance Table

Response: PA_Longitud
          Df  Sum Sq Mean Sq F value    Pr(>F)    
Trat       3 149.962  49.987  78.437 3.747e-08 ***
Residuals 12   7.648   0.637                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

1.2 Pueba normaliada para PA longitud

shapiro.test(resid(m14))

    Shapiro-Wilk normality test

data:  resid(m14)
W = 0.95714, p-value = 0.6103

1.3 Prueba de homogeneidad de varianza para PA longitud

library(car)
library(carData)
m14var<-leveneTest(Datos_NaEl$PA_Longitud~Datos_NaEl$Trat, center=mean)
group coerced to factor.
m14var
Levene's Test for Homogeneity of Variance (center = mean)
      Df F value Pr(>F)
group  3  0.6344 0.6069
      12               

1.4 prueba de comparacion de promedio tukey para PA longitud

library(agricolae)
library(dplyr)
m14tukey <-HSD.test(Datos_NaEl$PA_Longitud,Datos_NaEl$Trat, 12, 0.637, alpha = 0.05)
m14tukey
$statistics
  MSerror Df     Mean       CV      MSD
    0.637 12 12.40625 6.433232 1.675523

$parameters
   test          name.t ntr StudentizedRange alpha
  Tukey Datos_NaEl$Trat   4          4.19866  0.05

$means
     Datos_NaEl$PA_Longitud       std r  Min  Max   Q25   Q50    Q75
N0B0                 15.100 0.5291503 4 14.6 15.8 14.75 15.00 15.350
N0B1                 15.425 0.8539126 4 14.3 16.3 15.05 15.55 15.925
N1B0                  8.000 0.8755950 4  7.2  9.1  7.35  7.85  8.500
N1B1                 11.100 0.8793937 4 10.1 12.1 10.55 11.10 11.650

$comparison
NULL

$groups
     Datos_NaEl$PA_Longitud groups
N0B1                 15.425      a
N0B0                 15.100      a
N1B1                 11.100      b
N1B0                  8.000      c

attr(,"class")
[1] "group"

Raiz tuberosa

Analisis de varianza RT longitud

m33<- aov(RT_Longitud~Trat, data = Datos_NaEl)
anova(m33)
Analysis of Variance Table

Response: RT_Longitud
          Df Sum Sq Mean Sq F value   Pr(>F)    
Trat       3 1473.2  491.08  100.73 8.95e-09 ***
Residuals 12   58.5    4.87                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Normalidad RT longitud

shapiro.test(resid(m33))

    Shapiro-Wilk normality test

data:  resid(m33)
W = 0.94294, p-value = 0.3865

Kruskal test para RT longitud

kruska33<-kruskal(Datos_NaEl$RT_Longitud, Datos_NaEl$Trat, alpha = 0.05)
kruska33
$statistics
     Chisq Df     p.chisq  t.value      MSD
  14.24332  3 0.002591979 2.178813 1.833744

$parameters
            test p.ajusted          name.t ntr alpha
  Kruskal-Wallis      none Datos_NaEl$Trat   4  0.05

$means
     Datos_NaEl.RT_Longitud rank       std r Min Max   Q25  Q50   Q75
N0B0                  35.25 10.5 0.5000000 4  35  36 35.00 35.0 35.25
N0B1                  40.75 14.5 2.9860788 4  38  45 39.50 40.0 41.25
N1B0                  15.00  2.5 0.8164966 4  14  16 14.75 15.0 15.25
N1B1                  29.50  6.5 3.1091264 4  26  33 27.50 29.5 31.50

$comparison
NULL

$groups
     Datos_NaEl$RT_Longitud groups
N0B1                   14.5      a
N0B0                   10.5      b
N1B1                    6.5      c
N1B0                    2.5      d

attr(,"class")
[1] "group"

Anova para RT diametro

m34<- aov(RT_Diámetro~Trat, data = Datos_NaEl)
anova(m34)
Analysis of Variance Table

Response: RT_Diámetro
          Df  Sum Sq Mean Sq F value    Pr(>F)    
Trat       3 1571.19  523.73  138.89 1.394e-09 ***
Residuals 12   45.25    3.77                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Normalidad para RT diametro

shapiro.test(resid(m34))

    Shapiro-Wilk normality test

data:  resid(m34)
W = 0.92303, p-value = 0.1887

H. varianza para RT diametro

m34var<-leveneTest(Datos_NaEl$RT_Diámetro~Datos_NaEl$Trat, center=mean)
group coerced to factor.
m34var
Levene's Test for Homogeneity of Variance (center = mean)
      Df F value  Pr(>F)  
group  3  3.8065 0.03969 *
      12                  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Kruskal test para RT diametro

kruska34<-kruskal(Datos_NaEl$RT_Diámetro, Datos_NaEl$Trat, alpha = 0.05)
kruska34
$statistics
     Chisq Df    p.chisq  t.value      MSD
  14.28571  3 0.00254095 2.178813 1.778993

$parameters
            test p.ajusted          name.t ntr alpha
  Kruskal-Wallis      none Datos_NaEl$Trat   4  0.05

$means
     Datos_NaEl.RT_Diámetro rank      std r Min Max   Q25  Q50   Q75
N0B0                  34.75 10.5 0.500000 4  34  35 34.75 35.0 35.00
N0B1                  39.50 14.5 3.109126 4  37  44 37.75 38.5 40.25
N1B0                  13.25  2.5 0.500000 4  13  14 13.00 13.0 13.25
N1B1                  27.75  6.5 2.217356 4  25  30 26.50 28.0 29.25

$comparison
NULL

$groups
     Datos_NaEl$RT_Diámetro groups
N0B1                   14.5      a
N0B0                   10.5      b
N1B1                    6.5      c
N1B0                    2.5      d

attr(,"class")
[1] "group"

Raiz tuberosa, peso fresco y peso seco

Anova para RT pf

m35<- aov(RT_pf~Trat, data = Datos_NaEl)
anova(m35)
Analysis of Variance Table

Response: RT_pf
          Df Sum Sq Mean Sq F value    Pr(>F)    
Trat       3 400.13 133.377  59.925 1.712e-07 ***
Residuals 12  26.71   2.226                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Normslidad para RT pf

shapiro.test(resid(m35))

    Shapiro-Wilk normality test

data:  resid(m35)
W = 0.98114, p-value = 0.972

tukey para RT pf

m35tukey <-HSD.test(Datos_NaEl$RT_pf,Datos_NaEl$Trat, 12, 2.226 , alpha = 0.05)
m35tukey
$statistics
  MSerror Df   Mean       CV      MSD
    2.226 12 11.473 13.00426 3.132156

$parameters
   test          name.t ntr StudentizedRange alpha
  Tukey Datos_NaEl$Trat   4          4.19866  0.05

$means
     Datos_NaEl$RT_pf       std r    Min    Max      Q25     Q50      Q75
N0B0          13.4670 0.6758555 4 12.483 13.958 13.30050 13.7135 13.88000
N0B1          17.2935 1.6845360 4 15.187 19.215 16.51525 17.3860 18.16425
N1B0           3.5880 0.8404864 4  2.917  4.817  3.18250  3.3090  3.71450
N1B1          11.5435 2.2140449 4  9.215 13.958  9.94400 11.5005 13.10000

$comparison
NULL

$groups
     Datos_NaEl$RT_pf groups
N0B1          17.2935      a
N0B0          13.4670      b
N1B1          11.5435      b
N1B0           3.5880      c

attr(,"class")
[1] "group"

Kruskal test para peso fresco

kruska35<-kruskal(Datos_NaEl$RT_pf, Datos_NaEl$Trat, alpha = 0.05)
kruska35
$statistics
     Chisq Df     p.chisq  t.value      MSD
  12.99521  3 0.004646968 2.178813 2.995868

$parameters
            test p.ajusted          name.t ntr alpha
  Kruskal-Wallis      none Datos_NaEl$Trat   4  0.05

$means
     Datos_NaEl.RT_pf   rank       std r    Min    Max      Q25     Q50
N0B0          13.4670  9.375 0.6758555 4 12.483 13.958 13.30050 13.7135
N0B1          17.2935 14.500 1.6845360 4 15.187 19.215 16.51525 17.3860
N1B0           3.5880  2.500 0.8404864 4  2.917  4.817  3.18250  3.3090
N1B1          11.5435  7.625 2.2140449 4  9.215 13.958  9.94400 11.5005
          Q75
N0B0 13.88000
N0B1 18.16425
N1B0  3.71450
N1B1 13.10000

$comparison
NULL

$groups
     Datos_NaEl$RT_pf groups
N0B1           14.500      a
N0B0            9.375      b
N1B1            7.625      b
N1B0            2.500      c

attr(,"class")
[1] "group"

Anova para RT ps

m36<- aov(RT_ps~Trat, data = Datos_NaEl)
anova(m36)
Analysis of Variance Table

Response: RT_ps
          Df  Sum Sq Mean Sq F value    Pr(>F)    
Trat       3 3.04438 1.01479  72.359 5.922e-08 ***
Residuals 12 0.16829 0.01402                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Normalidad para RT ps

shapiro.test(resid(m36))

    Shapiro-Wilk normality test

data:  resid(m36)
W = 0.9194, p-value = 0.165

H. varianza para RT peso seco

m36var<-leveneTest(Datos_NaEl$RT_ps~Datos_NaEl$Trat, center=mean)
group coerced to factor.
m36var
Levene's Test for Homogeneity of Variance (center = mean)
      Df F value Pr(>F)
group  3  1.6144 0.2379
      12               

Tukey para RT peso

m36tukey <-HSD.test(Datos_NaEl$RT_ps,Datos_NaEl$Trat, 12, 0.01402, alpha = 0.05)
m36tukey
$statistics
  MSerror Df     Mean       CV       MSD
  0.01402 12 1.059688 11.17368 0.2485735

$parameters
   test          name.t ntr StudentizedRange alpha
  Tukey Datos_NaEl$Trat   4          4.19866  0.05

$means
     Datos_NaEl$RT_ps        std r   Min   Max     Q25    Q50     Q75
N0B0          1.31800 0.06694774 4 1.248 1.387 1.26825 1.3185 1.36825
N0B1          1.53450 0.18227909 4 1.362 1.792 1.45875 1.4920 1.56775
N1B0          0.37675 0.04431986 4 0.317 0.418 0.35750 0.3860 0.40525
N1B1          1.00950 0.12816266 4 0.892 1.191 0.94450 0.9775 1.04250

$comparison
NULL

$groups
     Datos_NaEl$RT_ps groups
N0B1          1.53450      a
N0B0          1.31800      a
N1B1          1.00950      b
N1B0          0.37675      c

attr(,"class")
[1] "group"

1.1 Anova para variable Area foliar

m15<- aov(Area_foliar~Trat, data = Datos_NaEl)
anova(m15)
Analysis of Variance Table

Response: Area_foliar
          Df  Sum Sq Mean Sq F value    Pr(>F)    
Trat       3 17500.9  5833.6  142.63 1.194e-09 ***
Residuals 12   490.8    40.9                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

1.2 Pueba normaliada para Area foliar

shapiro.test(resid(m15))

    Shapiro-Wilk normality test

data:  resid(m15)
W = 0.82351, p-value = 0.005687

1.3 Prueba de homogeneidad de varianza para Area foliar

library(car)
library(carData)
m15var<-leveneTest(Datos_NaEl$Area_foliar~Datos_NaEl$Trat, center=mean)
group coerced to factor.
m15var
Levene's Test for Homogeneity of Variance (center = mean)
      Df F value   Pr(>F)   
group  3   8.539 0.002633 **
      12                    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

1.4 prueba de comparacion de promedio tukey para Area foliar

library(agricolae)
library(dplyr)
m15tukey <-HSD.test(Datos_NaEl$Area_foliar,Datos_NaEl$Trat, 12, 40.9, alpha = 0.05)
m15tukey
$statistics
  MSerror Df     Mean       CV      MSD
     40.9 12 132.4688 4.827788 13.42587

$parameters
   test          name.t ntr StudentizedRange alpha
  Tukey Datos_NaEl$Trat   4          4.19866  0.05

$means
     Datos_NaEl$Area_foliar       std r   Min   Max     Q25    Q50     Q75
N0B0                161.575  1.447699 4 159.6 162.8 160.950 161.95 162.575
N0B1                154.675  1.936276 4 151.9 156.3 154.150 155.25 155.775
N1B0                 77.500 12.451774 4  61.2  88.6  71.175  80.10  86.425
N1B1                136.125  1.645955 4 134.3 138.0 135.050 136.10 137.175

$comparison
NULL

$groups
     Datos_NaEl$Area_foliar groups
N0B0                161.575      a
N0B1                154.675      a
N1B1                136.125      b
N1B0                 77.500      c

attr(,"class")
[1] "group"

Hojas peso fresco

#1.1 Anova para variable hojas pf

m16<- aov(Hojas_pf~Trat, data = Datos_NaEl)
anova(m16)
Analysis of Variance Table

Response: Hojas_pf
          Df  Sum Sq Mean Sq F value    Pr(>F)    
Trat       3 215.200  71.733  236.29 6.196e-11 ***
Residuals 12   3.643   0.304                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

1.2 Pueba normaliada para hojas pf

shapiro.test(resid(m16))

    Shapiro-Wilk normality test

data:  resid(m16)
W = 0.95756, p-value = 0.6179

1.3 Prueba de homogeneidad de varianza para hojas pf

library(car)
library(carData)
m16var<-leveneTest(Datos_NaEl$Hojas_pf~Datos_NaEl$Trat, center=mean)
group coerced to factor.
m16var
Levene's Test for Homogeneity of Variance (center = mean)
      Df F value Pr(>F)
group  3  1.5082 0.2626
      12               

1.4 prueba de comparacion de promedio tukey para hojas pf

library(agricolae)
library(dplyr)
m16tukey <-HSD.test(Datos_NaEl$Hojas_pf,Datos_NaEl$Trat, 12, 0.304, alpha = 0.05)
m16tukey
$statistics
  MSerror Df     Mean       CV      MSD
    0.304 12 12.95681 4.255383 1.157491

$parameters
   test          name.t ntr StudentizedRange alpha
  Tukey Datos_NaEl$Trat   4          4.19866  0.05

$means
     Datos_NaEl$Hojas_pf       std r    Min    Max      Q25     Q50
N0B0            16.17300 0.7805583 4 15.232 16.961 15.70000 16.2495
N0B1            14.46700 0.4530350 4 13.933 14.994 14.21425 14.4705
N1B0             6.72025 0.4411314 4  6.162  7.193  6.50025  6.7630
N1B1            14.46700 0.4530350 4 13.933 14.994 14.21425 14.4705
          Q75
N0B0 16.72250
N0B1 14.72325
N1B0  6.98300
N1B1 14.72325

$comparison
NULL

$groups
     Datos_NaEl$Hojas_pf groups
N0B0            16.17300      a
N0B1            14.46700      b
N1B1            14.46700      b
N1B0             6.72025      c

attr(,"class")
[1] "group"

Hojas peso seco

1.1 Anova para variable Hojas ps

m17<- aov(Hojas_ps~Trat, data = Datos_NaEl)
anova(m17)
Analysis of Variance Table

Response: Hojas_ps
          Df  Sum Sq  Mean Sq F value    Pr(>F)    
Trat       3 0.68737 0.229122  38.146 2.054e-06 ***
Residuals 12 0.07208 0.006006                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

1.2 Pueba normaliada hojas ps

shapiro.test(resid(m17))

    Shapiro-Wilk normality test

data:  resid(m17)
W = 0.87473, p-value = 0.03214

1.3 Prueba de homogeneidad de varianza hojas ps

library(car)
library(carData)
m17var<-leveneTest(Datos_NaEl$Hojas_ps~Datos_NaEl$Trat, center=mean)
group coerced to factor.
m17var
Levene's Test for Homogeneity of Variance (center = mean)
      Df F value Pr(>F)
group  3  1.6978 0.2203
      12               

1.4 prueba de comparacion de promedio tukey para hojas ps

library(agricolae)
library(dplyr)
m17tukey <-HSD.test(Datos_NaEl$Hojas_ps,Datos_NaEl$Trat, 12, 0.006006, alpha = 0.05)
m17tukey
$statistics
   MSerror Df    Mean       CV       MSD
  0.006006 12 0.98425 7.873852 0.1626947

$parameters
   test          name.t ntr StudentizedRange alpha
  Tukey Datos_NaEl$Trat   4          4.19866  0.05

$means
     Datos_NaEl$Hojas_ps        std r   Min   Max    Q25    Q50     Q75
N0B0             1.10425 0.04587937 4 1.059 1.156 1.0695 1.1010 1.13575
N0B1             1.10375 0.08117214 4 1.003 1.173 1.0555 1.1195 1.16775
N1B0             0.62525 0.09350356 4 0.515 0.712 0.5645 0.6370 0.69775
N1B1             1.10375 0.08117214 4 1.003 1.173 1.0555 1.1195 1.16775

$comparison
NULL

$groups
     Datos_NaEl$Hojas_ps groups
N0B0             1.10425      a
N0B1             1.10375      a
N1B1             1.10375      a
N1B0             0.62525      b

attr(,"class")
[1] "group"

CRA peso fresco

1.1 Anova para variable CRA pf

m18<- aov(CRA_pf~Trat, data = Datos_NaEl)
anova(m18)
Analysis of Variance Table

Response: CRA_pf
          Df     Sum Sq    Mean Sq F value  Pr(>F)  
Trat       3 2.7069e-06 9.0229e-07  4.0514 0.03337 *
Residuals 12 2.6725e-06 2.2271e-07                  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

1.2 Pueba normaliada para CRA pf

shapiro.test(resid(m18))

    Shapiro-Wilk normality test

data:  resid(m18)
W = 0.95211, p-value = 0.5239

1.3 Prueba de homogeneidad de varianza para CRA pf

library(car)
library(carData)
m18var<-leveneTest(Datos_NaEl$CRA_pf~Datos_NaEl$Trat, center=mean)
group coerced to factor.
m18var
Levene's Test for Homogeneity of Variance (center = mean)
      Df F value Pr(>F)
group  3  0.6855 0.5779
      12               

1.4 prueba de comparacion de promedio tukey para CRA peso fresco

library(agricolae)
library(dplyr)
m18tukey <-HSD.test(Datos_NaEl$CRA_pf,Datos_NaEl$Trat, 12, 2.2271e-07, alpha = 0.05)
m18tukey
$statistics
     MSerror Df       Mean       CV          MSD
  2.2271e-07 12 0.01725625 2.734787 0.0009907192

$parameters
   test          name.t ntr StudentizedRange alpha
  Tukey Datos_NaEl$Trat   4          4.19866  0.05

$means
     Datos_NaEl$CRA_pf          std r    Min    Max     Q25     Q50
N0B0          0.017425 0.0006701990 4 0.0169 0.0184 0.01705 0.01720
N0B1          0.017475 0.0003774917 4 0.0170 0.0179 0.01730 0.01750
N1B0          0.017575 0.0004031129 4 0.0170 0.0179 0.01745 0.01770
N1B1          0.016550 0.0003696846 4 0.0161 0.0170 0.01640 0.01655
          Q75
N0B0 0.017575
N0B1 0.017675
N1B0 0.017825
N1B1 0.016700

$comparison
NULL

$groups
     Datos_NaEl$CRA_pf groups
N1B0          0.017575      a
N0B1          0.017475     ab
N0B0          0.017425     ab
N1B1          0.016550      b

attr(,"class")
[1] "group"

CRA peso seco

1.1 Anova para variable CRA peso seco

m19<- aov(CRA_ps~Trat, data = Datos_NaEl)
anova(m19)
Analysis of Variance Table

Response: CRA_ps
          Df     Sum Sq    Mean Sq F value Pr(>F)
Trat       3 2.7687e-07 9.2292e-08  0.6563 0.5944
Residuals 12 1.6875e-06 1.4063e-07               

1.2 Pueba normaliada para CRA peso seco

shapiro.test(resid(m19))

    Shapiro-Wilk normality test

data:  resid(m19)
W = 0.97664, p-value = 0.9313

1.3 Prueba de homogeneidad de varianza para CRA peso seco

library(car)
library(carData)
m19var<-leveneTest(Datos_NaEl$CRA_ps~Datos_NaEl$Trat, center=mean)
group coerced to factor.
m19var
Levene's Test for Homogeneity of Variance (center = mean)
      Df F value Pr(>F)
group  3  0.9579  0.444
      12               

1.4 prueba de comparacion de promedio tukey para CRA peso seco

library(agricolae)
library(dplyr)
m19tukey <-HSD.test(Datos_NaEl$CRA_ps,Datos_NaEl$Trat, 12, 1.4063e-07, alpha = 0.05)
m19tukey
$statistics
     MSerror Df       Mean       CV          MSD
  1.4063e-07 12 0.00461875 8.119224 0.0007872628

$parameters
   test          name.t ntr StudentizedRange alpha
  Tukey Datos_NaEl$Trat   4          4.19866  0.05

$means
     Datos_NaEl$CRA_ps          std r    Min    Max      Q25     Q50
N0B0          0.004450 0.0005446712 4 0.0039 0.0052 0.004200 0.00435
N0B1          0.004800 0.0002160247 4 0.0045 0.0050 0.004725 0.00485
N1B0          0.004550 0.0003696846 4 0.0042 0.0050 0.004275 0.00450
N1B1          0.004675 0.0002872281 4 0.0043 0.0050 0.004600 0.00470
          Q75
N0B0 0.004600
N0B1 0.004925
N1B0 0.004775
N1B1 0.004775

$comparison
NULL

$groups
     Datos_NaEl$CRA_ps groups
N0B1          0.004800      a
N1B1          0.004675      a
N1B0          0.004550      a
N0B0          0.004450      a

attr(,"class")
[1] "group"

CRA peso turgente

Analisis de varianza

m31<- aov(CRA_pt~Trat, data = Datos_NaEl)
anova(m31)
Analysis of Variance Table

Response: CRA_pt
          Df     Sum Sq    Mean Sq F value    Pr(>F)    
Trat       3 1.7986e-04 5.9954e-05  35.665 2.948e-06 ***
Residuals 12 2.0172e-05 1.6810e-06                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Normalidad CRA pt

shapiro.test(resid(m31))

    Shapiro-Wilk normality test

data:  resid(m31)
W = 0.8868, p-value = 0.04959
kruska31<-kruskal(Datos_NaEl$CRA_pt, Datos_NaEl$Trat, alpha = 0.05)
kruska31
$statistics
     Chisq Df    p.chisq  t.value     MSD
  8.943584  3 0.03005045 2.178813 5.20327

$parameters
            test p.ajusted          name.t ntr alpha
  Kruskal-Wallis      none Datos_NaEl$Trat   4  0.05

$means
     Datos_NaEl.CRA_pt   rank          std r    Min    Max      Q25
N0B0          0.018550  5.375 0.0006806859 4 0.0179 0.0195 0.018200
N0B1          0.018725  7.625 0.0002753785 4 0.0184 0.0190 0.018550
N1B0          0.026375 14.500 0.0024622145 4 0.0233 0.0289 0.025025
N1B1          0.018625  6.500 0.0003500000 4 0.0182 0.0190 0.018425
         Q50      Q75
N0B0 0.01840 0.018750
N0B1 0.01875 0.018925
N1B0 0.02665 0.028000
N1B1 0.01865 0.018850

$comparison
NULL

$groups
     Datos_NaEl$CRA_pt groups
N1B0            14.500      a
N0B1             7.625      b
N1B1             6.500      b
N0B0             5.375      b

attr(,"class")
[1] "group"

CRA

Analisis de varianza para CRA

m32<- aov(CRA~Trat, data = Datos_NaEl)
anova(m32)
Analysis of Variance Table

Response: CRA
          Df  Sum Sq Mean Sq F value    Pr(>F)    
Trat       3 2655.73  885.24  25.945 1.568e-05 ***
Residuals 12  409.44   34.12                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Normalidad par CRA

shapiro.test(resid(m32))

    Shapiro-Wilk normality test

data:  resid(m32)
W = 0.98513, p-value = 0.9914

H. Varianza para CRA

m32var<-leveneTest(Datos_NaEl$CRA~Datos_NaEl$Trat, center=mean)
group coerced to factor.
m32var
Levene's Test for Homogeneity of Variance (center = mean)
      Df F value Pr(>F)
group  3  0.9474 0.4485
      12               

Tukey para CRA

m19tukey <-HSD.test(Datos_NaEl$CRA,Datos_NaEl$Trat, 12, 34.12, alpha = 0.05)
m19tukey
$statistics
  MSerror Df     Mean       CV      MSD
    34.12 12 82.18952 7.107028 12.26268

$parameters
   test          name.t ntr StudentizedRange alpha
  Tukey Datos_NaEl$Trat   4          4.19866  0.05

$means
     Datos_NaEl$CRA      std r      Min      Max      Q25      Q50
N0B0       92.14515 6.904737 4 82.78146 99.31507 89.97017 93.24203
N0B1       91.04734 3.621355 4 88.23529 96.32353 89.02311 89.81527
N1B0       60.34528 7.479434 4 54.27350 69.94536 54.47747 58.58114
N1B1       85.22032 4.444089 4 80.85106 91.11111 82.45766 84.45956
          Q75
N0B0 95.41700
N0B1 91.83950
N1B0 64.44896
N1B1 87.22222

$comparison
NULL

$groups
     Datos_NaEl$CRA groups
N0B0       92.14515      a
N0B1       91.04734      a
N1B1       85.22032      a
N1B0       60.34528      b

attr(,"class")
[1] "group"
LS0tDQp0aXRsZTogIkRhdG9zIGNvcnJpZG9zLCBUZXJjZXIgbXVlc3RyZW8iDQphdXRob3I6ICJMdWlzIEFsYmVydG8iDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpgYGB7cn0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkNCmBgYA0KYGBge3J9DQpybShsaXN0PWxzKCkpDQpgYGANCg0KDQpgYGB7cn0NCmxpYnJhcnkocmVhZHhsKQ0KRGF0b3NfTmFFbDwtQmFzZV9kZV9kYXRvc19TYWxpbmlkYWRfQnJhc3Npbm9lc3Rlcm9pZGVzXzFfIDwtIHJlYWRfZXhjZWwoImQ6L1VzZXJzL0phbnVzL0RvY3VtZW50cy9GaXNpb2xvZ2lhIHZlZ2V0YWwgYmFzaWNhL0Jhc2UgZGUgZGF0b3MgU2FsaW5pZGFkICsgQnJhc3Npbm9lc3Rlcm9pZGVzLnhsc3giKQ0KYGBgDQoNCmBgYHtyfQ0KRGF0b3NfTmFFbA0KYGBgDQoNCiMgVGVtcGVyYXR1cmENCg0KIyAxLjEgQW5vdmEgcGFyYSB2YXJpYWJsZSB0ZW1wZXJhdHVyYQ0KIA0KYGBge3J9DQptMSA8LSBhb3YoVGVtcH5UcmF0LCBkYXRhID0gRGF0b3NfTmFFbCkNCmFub3ZhKG0xKQ0KYGBgDQojIDEuMiBQdWViYSBub3JtYWxpYWRhIHBhcmEgdGVtcGVyYXR1cmENCmBgYHtyfQ0Kc2hhcGlyby50ZXN0KHJlc2lkKG0xKSkNCmBgYA0KIyAxLjMgUHJ1ZWJhIGRlIGhvbW9nZW5laWRhZCBkZSB2YXJpYW56YSBwYXJhIHRlbXANCmBgYHtyfQ0KbGlicmFyeShjYXIpDQpsaWJyYXJ5KGNhckRhdGEpDQpgYGANCmBgYHtyfQ0KbGV2ZW5lVGVzdChEYXRvc19OYUVsJFRlbXB+RGF0b3NfTmFFbCRUcmF0LCBjZW50ZXI9bWVhbikNCmBgYA0KIyAxLjQgcHJ1ZWJhIGRlIGNvbXBhcmFjaW9uIGRlIHByb21lZGlvIHR1a2V5DQoNCmBgYHtyfQ0KbGlicmFyeShhZ3JpY29sYWUpDQpsaWJyYXJ5KGRwbHlyKQ0KYGBgDQoNCmBgYHtyfQ0KbTF0dWtleSA8LUhTRC50ZXN0KERhdG9zX05hRWwkVGVtcCxEYXRvc19OYUVsJFRyYXQsIDEyLCAwLjU5NDAsIGFscGhhID0gMC4wNSkNCm0xdHVrZXkNCmBgYA0KDQpkYXRvcyBkZSDDoXJlYSBmb2xpYXIgZW4gYWRlbGFudGUuDQoNCg0KIyBSZWxhY2lvbiBkZSBFc3RvbWFzDQoNCiMgMS4xIEFub3ZhIHBhcmEgdmFyaWFibGUgRUENCiANCmBgYHtyfQ0KbTEwIDwtIGFvdihFX0FiaWVydG9+VHJhdCwgZGF0YSA9IERhdG9zX05hRWwpDQphbm92YShtMTApDQpgYGANCiMgMS4yIFB1ZWJhIG5vcm1hbGlhZGEgcGFyYSBFQQ0KYGBge3J9DQpzaGFwaXJvLnRlc3QocmVzaWQobTEwKSkNCmBgYA0KIyAxLjMgUHJ1ZWJhIGRlIGhvbW9nZW5laWRhZCBkZSB2YXJpYW56YSBwYXJhIEVBDQpgYGB7cn0NCmxpYnJhcnkoY2FyKQ0KbGlicmFyeShjYXJEYXRhKQ0KYGBgDQoNCmBgYHtyfQ0KbTEwdmFyPC1sZXZlbmVUZXN0KERhdG9zX05hRWwkRV9BYmllcnRvfkRhdG9zX05hRWwkVHJhdCwgY2VudGVyPW1lYW4pDQptMTB2YXINCmBgYA0KIyAxLjQgcHJ1ZWJhIGRlIGNvbXBhcmFjaW9uIGRlIHByb21lZGlvIHR1a2V5IHBhcmEgRUENCg0KYGBge3J9DQpsaWJyYXJ5KGFncmljb2xhZSkNCmxpYnJhcnkoZHBseXIpDQpgYGANCg0KYGBge3J9DQptMTB0dWtleSA8LUhTRC50ZXN0KERhdG9zX05hRWwkRV9BYmllcnRvLERhdG9zX05hRWwkVHJhdCwgMTIsIDEuNzcxLCBhbHBoYSA9IDAuMDUpDQptMTB0dWtleQ0KYGBgDQoNCg0KDQojIEVDDQoNCiMgMS4xIEFub3ZhIHBhcmEgdmFyaWFibGUgZGUgRUMNCiANCmBgYHtyfQ0KbTExPC0gYW92KEVfQ2VycmFkb35UcmF0LCBkYXRhID0gRGF0b3NfTmFFbCkNCmFub3ZhKG0xMSkNCmBgYA0KIyAxLjIgUHVlYmEgbm9ybWFsaWFkYSBwYXJhIEVDDQpgYGB7cn0NCnNoYXBpcm8udGVzdChyZXNpZChtMTEpKQ0KYGBgDQojIDEuMyBQcnVlYmEgZGUgaG9tb2dlbmVpZGFkIGRlIHZhcmlhbnphIHBhcmEgRUMNCmBgYHtyfQ0KbGlicmFyeShjYXIpDQpsaWJyYXJ5KGNhckRhdGEpDQpgYGANCg0KYGBge3J9DQptMTF2YXI8LWxldmVuZVRlc3QoRGF0b3NfTmFFbCRFX0NlcnJhZG9+RGF0b3NfTmFFbCRUcmF0LCBjZW50ZXI9bWVhbikNCm0xMXZhcg0KYGBgDQojIDEuNCBwcnVlYmEgZGUgY29tcGFyYWNpb24gZGUgcHJvbWVkaW8gdHVrZXkgcGFyYSBFQw0KDQpgYGB7cn0NCmxpYnJhcnkoYWdyaWNvbGFlKQ0KbGlicmFyeShkcGx5cikNCmBgYA0KDQpgYGB7cn0NCm0xMXR1a2V5IDwtSFNELnRlc3QoRGF0b3NfTmFFbCRFX0NlcnJhZG8sRGF0b3NfTmFFbCRUcmF0LCAxMiwgMS42NDU4LCBhbHBoYSA9IDAuMDUpDQptMTF0dWtleQ0KYGBgDQoNCg0KIyBFVA0KDQojIDEuMSBBbm92YSBwYXJhIHZhcmlhYmxlIEVUDQogIA0KYGBge3J9DQptMTIgPC0gYW92KEVfVG90YWx+VHJhdCwgZGF0YSA9IERhdG9zX05hRWwpDQphbm92YShtMTIpDQpgYGANCiMgMS4yIFB1ZWJhIG5vcm1hbGlhZGEgcGFyYSBob2phcyBkZSBFVA0KYGBge3J9DQpzaGFwaXJvLnRlc3QocmVzaWQobTEyKSkNCmBgYA0KIyAxLjMgUHJ1ZWJhIGRlIGhvbW9nZW5laWRhZCBkZSB2YXJpYW56YSBwYXJhIEVUDQpgYGB7cn0NCmxpYnJhcnkoY2FyKQ0KbGlicmFyeShjYXJEYXRhKQ0KYGBgDQoNCmBgYHtyfQ0KbTEydmFyPC1sZXZlbmVUZXN0KERhdG9zX05hRWwkRV9Ub3RhbH5EYXRvc19OYUVsJFRyYXQsIGNlbnRlcj1tZWFuKQ0KbTEydmFyDQpgYGANCiMgMS40IHBydWViYSBkZSBjb21wYXJhY2lvbiBkZSBwcm9tZWRpbyB0dWtleSBwYXJhIEVUDQoNCmBgYHtyfQ0KbGlicmFyeShhZ3JpY29sYWUpDQpsaWJyYXJ5KGRwbHlyKQ0KYGBgDQoNCmBgYHtyfQ0KbTEydHVrZXkgPC1IU0QudGVzdChEYXRvc19OYUVsJEVfVG90YWwsIERhdG9zX05hRWwkVHJhdCwgMTIsIDMuNTgzLCBhbHBoYSA9IDAuMDUpDQptMTJ0dWtleQ0KYGBgDQojICVFQQ0KDQojIEFub3ZhIHBhcmEgJUVBDQpgYGB7cn0NCm00MDwtIGFvdihQb3JjZW50YWplX0VBflRyYXQsIGRhdGEgPSBEYXRvc19OYUVsKQ0KYW5vdmEobTQwKQ0KYGBgDQoNCiMgTm9ybWFsaWRhZCBwYXJhICVFQQ0KDQpgYGB7cn0NCnNoYXBpcm8udGVzdChyZXNpZChtNDApKQ0KYGBgDQoNCg0KDQoNCiMgS3J1c2thbCB0ZXN0DQpgYGB7cn0NCmtydXNrYTQwPC1rcnVza2FsKERhdG9zX05hRWwkUG9yY2VudGFqZV9FQSwgRGF0b3NfTmFFbCRUcmF0LCBhbHBoYSA9IDAuMDUpDQprcnVza2E0MA0KYGBgDQoNCg0KIyBSZWxhY2lvbiBFQS9FQw0KDQojIEFub3ZhIHBhcmEgRUEvRUMNCmBgYHtyfQ0KbTUwPC0gYW92KEVBX0VDflRyYXQsIGRhdGEgPSBEYXRvc19OYUVsKQ0KYW5vdmEobTUwKQ0KYGBgDQojIE5vcm1hbGlkYWQgRUEvRUMNCmBgYHtyfQ0Kc2hhcGlyby50ZXN0KHJlc2lkKG01MCkpDQpgYGANCiMgSC4gVmFucmlhbnphIEVBL0VDDQpgYGB7cn0NCm01MHZhcjwtbGV2ZW5lVGVzdChEYXRvc19OYUVsJEVBX0VDfkRhdG9zX05hRWwkVHJhdCwgY2VudGVyPW1lYW4pDQptNTB2YXINCmBgYA0KIyBUdWtleSBFQS9FQw0KYGBge3J9DQptNTB0dWtleSA8LUhTRC50ZXN0KERhdG9zX05hRWwkRUFfRUMsRGF0b3NfTmFFbCRUcmF0LCAxMiwgMi42NDcsIGFscGhhID0gMC4wNSkNCm01MHR1a2V5DQpgYGANCiMgS3J1c2thbCBFQS9FQw0KDQpgYGB7cn0NCmtydXNrYTUwPC1rcnVza2FsKERhdG9zX05hRWwkRUFfRUMsIERhdG9zX05hRWwkVHJhdCwgYWxwaGEgPSAwLjA1KQ0Ka3J1c2thNTANCmBgYA0KDQoNCiMgQ1JDDQoNCiMgMS4xIEFub3ZhIHBhcmEgdmFyaWFibGUgQ1JDDQogDQpgYGB7cn0NCm0xMzwtIGFvdihDUkN+VHJhdCwgZGF0YSA9IERhdG9zX05hRWwpDQphbm92YShtMTMpDQpgYGANCiMgMS4yIFB1ZWJhIG5vcm1hbGlhZGEgcGFyYSBDUkMNCmBgYHtyfQ0Kc2hhcGlyby50ZXN0KHJlc2lkKG0xMykpDQpgYGANCiMgMS4zIFBydWViYSBkZSBob21vZ2VuZWlkYWQgZGUgdmFyaWFuemEgcGFyYSBDUkMNCmBgYHtyfQ0KbGlicmFyeShjYXIpDQpsaWJyYXJ5KGNhckRhdGEpDQpgYGANCg0KYGBge3J9DQptMTN2YXI8LWxldmVuZVRlc3QoRGF0b3NfTmFFbCRDUkN+RGF0b3NfTmFFbCRUcmF0LCBjZW50ZXI9bWVhbikNCm0xM3Zhcg0KYGBgDQojIDEuNCBwcnVlYmEgZGUgY29tcGFyYWNpb24gZGUgcHJvbWVkaW8gdHVrZXkgcGFyYSBDUkMNCg0KYGBge3J9DQpsaWJyYXJ5KGFncmljb2xhZSkNCmxpYnJhcnkoZHBseXIpDQpgYGANCg0KYGBge3J9DQptMTN0dWtleSA8LUhTRC50ZXN0KERhdG9zX05hRWwkQ1JDLERhdG9zX05hRWwkVHJhdCwgMTIsIDIuNjQ3LCBhbHBoYSA9IDAuMDUpDQptMTN0dWtleQ0KYGBgDQoNCg0KDQoNCg0KDQoNCg0KIyAxLjEgQW5vdmEgcGFyYSB2YXJpYWJsZSBwYXJ0ZSBhcmVhIG4gZGUgaG9qYXMNCiANCmBgYHtyfQ0KbTIwPC0gYW92KFBBX05Ib2phc35UcmF0LCBkYXRhID0gRGF0b3NfTmFFbCkNCmFub3ZhKG0yMCkNCmBgYA0KICMxLjIgUHVlYmEgbm9ybWFsaWFkYSBwYXJhIE5IIFBBDQpgYGB7cn0NCnNoYXBpcm8udGVzdChyZXNpZChtMjApKQ0KYGBgDQojIDEuMyBQcnVlYmEgZGUgaG9tb2dlbmVpZGFkIGRlIHZhcmlhbnphIHBhcmEgTkggUEENCmBgYHtyfQ0KbGlicmFyeShjYXIpDQpsaWJyYXJ5KGNhckRhdGEpDQpgYGANCg0KYGBge3J9DQptMjB2YXI8LWxldmVuZVRlc3QoRGF0b3NfTmFFbCRQQV9OSG9qYXN+RGF0b3NfTmFFbCRUcmF0LCBjZW50ZXI9bWVhbikNCm0yMHZhcg0KYGBgDQojIDEuNCBwcnVlYmEgZGUgY29tcGFyYWNpb24gZGUgcHJvbWVkaW8gdHVrZXkgcGFyYSBOSCBQQQ0KDQpgYGB7cn0NCmxpYnJhcnkoYWdyaWNvbGFlKQ0KbGlicmFyeShkcGx5cikNCmBgYA0KDQpgYGB7cn0NCm0yMHR1a2V5IDwtSFNELnRlc3QoRGF0b3NfTmFFbCRQQV9OSG9qYXMsRGF0b3NfTmFFbCRUcmF0LCAxMiwgMC4zMTI1LCBhbHBoYSA9IDAuMDUpDQptMjB0dWtleQ0KYGBgDQoNCiMNCiMgMS4xIEFub3ZhIHBhcmEgdmFyaWFibGUgUEEgTG9uZ2l0dWQNCiANCmBgYHtyfQ0KbTE0PC0gYW92KFBBX0xvbmdpdHVkflRyYXQsIGRhdGEgPSBEYXRvc19OYUVsKQ0KYW5vdmEobTE0KQ0KYGBgDQojIDEuMiBQdWViYSBub3JtYWxpYWRhIHBhcmEgUEEgbG9uZ2l0dWQNCmBgYHtyfQ0Kc2hhcGlyby50ZXN0KHJlc2lkKG0xNCkpDQpgYGANCiMgMS4zIFBydWViYSBkZSBob21vZ2VuZWlkYWQgZGUgdmFyaWFuemEgcGFyYSBQQSBsb25naXR1ZA0KYGBge3J9DQpsaWJyYXJ5KGNhcikNCmxpYnJhcnkoY2FyRGF0YSkNCmBgYA0KDQpgYGB7cn0NCm0xNHZhcjwtbGV2ZW5lVGVzdChEYXRvc19OYUVsJFBBX0xvbmdpdHVkfkRhdG9zX05hRWwkVHJhdCwgY2VudGVyPW1lYW4pDQptMTR2YXINCmBgYA0KIyAxLjQgcHJ1ZWJhIGRlIGNvbXBhcmFjaW9uIGRlIHByb21lZGlvIHR1a2V5IHBhcmEgUEEgbG9uZ2l0dWQNCg0KYGBge3J9DQpsaWJyYXJ5KGFncmljb2xhZSkNCmxpYnJhcnkoZHBseXIpDQpgYGANCg0KYGBge3J9DQptMTR0dWtleSA8LUhTRC50ZXN0KERhdG9zX05hRWwkUEFfTG9uZ2l0dWQsRGF0b3NfTmFFbCRUcmF0LCAxMiwgMC42MzcsIGFscGhhID0gMC4wNSkNCm0xNHR1a2V5DQpgYGANCg0KDQojIFJhaXogdHViZXJvc2ENCg0KIyBBbmFsaXNpcyBkZSB2YXJpYW56YSBSVCBsb25naXR1ZA0KYGBge3J9DQptMzM8LSBhb3YoUlRfTG9uZ2l0dWR+VHJhdCwgZGF0YSA9IERhdG9zX05hRWwpDQphbm92YShtMzMpDQpgYGANCg0KDQojIE5vcm1hbGlkYWQgUlQgbG9uZ2l0dWQNCmBgYHtyfQ0Kc2hhcGlyby50ZXN0KHJlc2lkKG0zMykpDQpgYGANCiMgS3J1c2thbCB0ZXN0IHBhcmEgUlQgbG9uZ2l0dWQNCmBgYHtyfQ0Ka3J1c2thMzM8LWtydXNrYWwoRGF0b3NfTmFFbCRSVF9Mb25naXR1ZCwgRGF0b3NfTmFFbCRUcmF0LCBhbHBoYSA9IDAuMDUpDQprcnVza2EzMw0KYGBgDQoNCiANCg0KDQoNCiMgQW5vdmEgcGFyYSBSVCBkaWFtZXRybw0KYGBge3J9DQptMzQ8LSBhb3YoUlRfRGnDoW1ldHJvflRyYXQsIGRhdGEgPSBEYXRvc19OYUVsKQ0KYW5vdmEobTM0KQ0KYGBgDQojIE5vcm1hbGlkYWQgcGFyYSBSVCBkaWFtZXRybw0KYGBge3J9DQpzaGFwaXJvLnRlc3QocmVzaWQobTM0KSkNCmBgYA0KIyBILiB2YXJpYW56YSBwYXJhIFJUIGRpYW1ldHJvDQpgYGB7cn0NCm0zNHZhcjwtbGV2ZW5lVGVzdChEYXRvc19OYUVsJFJUX0Rpw6FtZXRyb35EYXRvc19OYUVsJFRyYXQsIGNlbnRlcj1tZWFuKQ0KbTM0dmFyDQpgYGANCiMgS3J1c2thbCB0ZXN0IHBhcmEgUlQgZGlhbWV0cm8NCmBgYHtyfQ0Ka3J1c2thMzQ8LWtydXNrYWwoRGF0b3NfTmFFbCRSVF9EacOhbWV0cm8sIERhdG9zX05hRWwkVHJhdCwgYWxwaGEgPSAwLjA1KQ0Ka3J1c2thMzQNCmBgYA0KDQoNCg0KIyBSYWl6IHR1YmVyb3NhLCBwZXNvIGZyZXNjbyB5IHBlc28gc2Vjbw0KDQojIEFub3ZhIHBhcmEgUlQgcGYNCmBgYHtyfQ0KbTM1PC0gYW92KFJUX3BmflRyYXQsIGRhdGEgPSBEYXRvc19OYUVsKQ0KYW5vdmEobTM1KQ0KYGBgDQojIE5vcm1zbGlkYWQgcGFyYSBSVCBwZg0KYGBge3J9DQpzaGFwaXJvLnRlc3QocmVzaWQobTM1KSkNCmBgYA0KIyB0dWtleSBwYXJhIFJUIHBmDQpgYGB7cn0NCm0zNXR1a2V5IDwtSFNELnRlc3QoRGF0b3NfTmFFbCRSVF9wZixEYXRvc19OYUVsJFRyYXQsIDEyLCAyLjIyNiAsIGFscGhhID0gMC4wNSkNCm0zNXR1a2V5DQpgYGANCiMgS3J1c2thbCB0ZXN0IHBhcmEgcGVzbyBmcmVzY28NCmBgYHtyfQ0Ka3J1c2thMzU8LWtydXNrYWwoRGF0b3NfTmFFbCRSVF9wZiwgRGF0b3NfTmFFbCRUcmF0LCBhbHBoYSA9IDAuMDUpDQprcnVza2EzNQ0KYGBgDQoNCg0KIyBBbm92YSBwYXJhIFJUIHBzDQpgYGB7cn0NCm0zNjwtIGFvdihSVF9wc35UcmF0LCBkYXRhID0gRGF0b3NfTmFFbCkNCmFub3ZhKG0zNikNCmBgYA0KIyBOb3JtYWxpZGFkIHBhcmEgUlQgcHMNCmBgYHtyfQ0Kc2hhcGlyby50ZXN0KHJlc2lkKG0zNikpDQpgYGANCiMgSC4gdmFyaWFuemEgcGFyYSBSVCBwZXNvIHNlY28NCg0KYGBge3J9DQptMzZ2YXI8LWxldmVuZVRlc3QoRGF0b3NfTmFFbCRSVF9wc35EYXRvc19OYUVsJFRyYXQsIGNlbnRlcj1tZWFuKQ0KbTM2dmFyDQpgYGANCg0KIyBUdWtleSBwYXJhIFJUIHBlc28NCg0KYGBge3J9DQptMzZ0dWtleSA8LUhTRC50ZXN0KERhdG9zX05hRWwkUlRfcHMsRGF0b3NfTmFFbCRUcmF0LCAxMiwgMC4wMTQwMiwgYWxwaGEgPSAwLjA1KQ0KbTM2dHVrZXkNCmBgYA0KDQoNCiMgMS4xIEFub3ZhIHBhcmEgdmFyaWFibGUgQXJlYSBmb2xpYXINCiANCmBgYHtyfQ0KbTE1PC0gYW92KEFyZWFfZm9saWFyflRyYXQsIGRhdGEgPSBEYXRvc19OYUVsKQ0KYW5vdmEobTE1KQ0KYGBgDQojIDEuMiBQdWViYSBub3JtYWxpYWRhIHBhcmEgQXJlYSBmb2xpYXINCmBgYHtyfQ0Kc2hhcGlyby50ZXN0KHJlc2lkKG0xNSkpDQpgYGANCiMgMS4zIFBydWViYSBkZSBob21vZ2VuZWlkYWQgZGUgdmFyaWFuemEgcGFyYSBBcmVhIGZvbGlhcg0KYGBge3J9DQpsaWJyYXJ5KGNhcikNCmxpYnJhcnkoY2FyRGF0YSkNCmBgYA0KDQpgYGB7cn0NCm0xNXZhcjwtbGV2ZW5lVGVzdChEYXRvc19OYUVsJEFyZWFfZm9saWFyfkRhdG9zX05hRWwkVHJhdCwgY2VudGVyPW1lYW4pDQptMTV2YXINCmBgYA0KIyAxLjQgcHJ1ZWJhIGRlIGNvbXBhcmFjaW9uIGRlIHByb21lZGlvIHR1a2V5IHBhcmEgQXJlYSBmb2xpYXINCg0KYGBge3J9DQpsaWJyYXJ5KGFncmljb2xhZSkNCmxpYnJhcnkoZHBseXIpDQpgYGANCg0KYGBge3J9DQptMTV0dWtleSA8LUhTRC50ZXN0KERhdG9zX05hRWwkQXJlYV9mb2xpYXIsRGF0b3NfTmFFbCRUcmF0LCAxMiwgNDAuOSwgYWxwaGEgPSAwLjA1KQ0KbTE1dHVrZXkNCmBgYA0KDQojIEhvamFzIHBlc28gZnJlc2NvDQoNCiMxLjEgQW5vdmEgcGFyYSB2YXJpYWJsZSBob2phcyBwZg0KIA0KYGBge3J9DQptMTY8LSBhb3YoSG9qYXNfcGZ+VHJhdCwgZGF0YSA9IERhdG9zX05hRWwpDQphbm92YShtMTYpDQpgYGANCiMgMS4yIFB1ZWJhIG5vcm1hbGlhZGEgcGFyYSBob2phcyBwZg0KYGBge3J9DQpzaGFwaXJvLnRlc3QocmVzaWQobTE2KSkNCmBgYA0KIyAxLjMgUHJ1ZWJhIGRlIGhvbW9nZW5laWRhZCBkZSB2YXJpYW56YSBwYXJhIGhvamFzIHBmDQpgYGB7cn0NCmxpYnJhcnkoY2FyKQ0KbGlicmFyeShjYXJEYXRhKQ0KYGBgDQoNCmBgYHtyfQ0KbTE2dmFyPC1sZXZlbmVUZXN0KERhdG9zX05hRWwkSG9qYXNfcGZ+RGF0b3NfTmFFbCRUcmF0LCBjZW50ZXI9bWVhbikNCm0xNnZhcg0KYGBgDQojIDEuNCBwcnVlYmEgZGUgY29tcGFyYWNpb24gZGUgcHJvbWVkaW8gdHVrZXkgcGFyYSBob2phcyBwZg0KDQpgYGB7cn0NCmxpYnJhcnkoYWdyaWNvbGFlKQ0KbGlicmFyeShkcGx5cikNCmBgYA0KDQpgYGB7cn0NCm0xNnR1a2V5IDwtSFNELnRlc3QoRGF0b3NfTmFFbCRIb2phc19wZixEYXRvc19OYUVsJFRyYXQsIDEyLCAwLjMwNCwgYWxwaGEgPSAwLjA1KQ0KbTE2dHVrZXkNCmBgYA0KDQoNCiMgSG9qYXMgcGVzbyBzZWNvDQoNCiMgMS4xIEFub3ZhIHBhcmEgdmFyaWFibGUgSG9qYXMgcHMNCiANCmBgYHtyfQ0KbTE3PC0gYW92KEhvamFzX3BzflRyYXQsIGRhdGEgPSBEYXRvc19OYUVsKQ0KYW5vdmEobTE3KQ0KYGBgDQojIDEuMiBQdWViYSBub3JtYWxpYWRhIGhvamFzIHBzDQpgYGB7cn0NCnNoYXBpcm8udGVzdChyZXNpZChtMTcpKQ0KYGBgDQojIDEuMyBQcnVlYmEgZGUgaG9tb2dlbmVpZGFkIGRlIHZhcmlhbnphIGhvamFzIHBzDQpgYGB7cn0NCmxpYnJhcnkoY2FyKQ0KbGlicmFyeShjYXJEYXRhKQ0KYGBgDQoNCmBgYHtyfQ0KbTE3dmFyPC1sZXZlbmVUZXN0KERhdG9zX05hRWwkSG9qYXNfcHN+RGF0b3NfTmFFbCRUcmF0LCBjZW50ZXI9bWVhbikNCm0xN3Zhcg0KYGBgDQojIDEuNCBwcnVlYmEgZGUgY29tcGFyYWNpb24gZGUgcHJvbWVkaW8gdHVrZXkgcGFyYSBob2phcyBwcw0KDQpgYGB7cn0NCmxpYnJhcnkoYWdyaWNvbGFlKQ0KbGlicmFyeShkcGx5cikNCmBgYA0KDQpgYGB7cn0NCm0xN3R1a2V5IDwtSFNELnRlc3QoRGF0b3NfTmFFbCRIb2phc19wcyxEYXRvc19OYUVsJFRyYXQsIDEyLCAwLjAwNjAwNiwgYWxwaGEgPSAwLjA1KQ0KbTE3dHVrZXkNCmBgYA0KDQoNCiMgQ1JBIHBlc28gZnJlc2NvIA0KDQojIDEuMSBBbm92YSBwYXJhIHZhcmlhYmxlIENSQSBwZg0KIA0KYGBge3J9DQptMTg8LSBhb3YoQ1JBX3BmflRyYXQsIGRhdGEgPSBEYXRvc19OYUVsKQ0KYW5vdmEobTE4KQ0KYGBgDQojIDEuMiBQdWViYSBub3JtYWxpYWRhIHBhcmEgQ1JBIHBmDQpgYGB7cn0NCnNoYXBpcm8udGVzdChyZXNpZChtMTgpKQ0KYGBgDQojIDEuMyBQcnVlYmEgZGUgaG9tb2dlbmVpZGFkIGRlIHZhcmlhbnphIHBhcmEgQ1JBIHBmDQpgYGB7cn0NCmxpYnJhcnkoY2FyKQ0KbGlicmFyeShjYXJEYXRhKQ0KYGBgDQoNCmBgYHtyfQ0KbTE4dmFyPC1sZXZlbmVUZXN0KERhdG9zX05hRWwkQ1JBX3BmfkRhdG9zX05hRWwkVHJhdCwgY2VudGVyPW1lYW4pDQptMTh2YXINCmBgYA0KIyAxLjQgcHJ1ZWJhIGRlIGNvbXBhcmFjaW9uIGRlIHByb21lZGlvIHR1a2V5IHBhcmEgQ1JBIHBlc28gZnJlc2NvDQoNCmBgYHtyfQ0KbGlicmFyeShhZ3JpY29sYWUpDQpsaWJyYXJ5KGRwbHlyKQ0KYGBgDQoNCmBgYHtyfQ0KbTE4dHVrZXkgPC1IU0QudGVzdChEYXRvc19OYUVsJENSQV9wZixEYXRvc19OYUVsJFRyYXQsIDEyLCAyLjIyNzFlLTA3LCBhbHBoYSA9IDAuMDUpDQptMTh0dWtleQ0KYGBgDQoNCg0KIyBDUkEgcGVzbyBzZWNvDQoNCiMgMS4xIEFub3ZhIHBhcmEgdmFyaWFibGUgQ1JBIHBlc28gc2Vjbw0KIA0KYGBge3J9DQptMTk8LSBhb3YoQ1JBX3BzflRyYXQsIGRhdGEgPSBEYXRvc19OYUVsKQ0KYW5vdmEobTE5KQ0KYGBgDQojIDEuMiBQdWViYSBub3JtYWxpYWRhIHBhcmEgQ1JBIHBlc28gc2Vjbw0KYGBge3J9DQpzaGFwaXJvLnRlc3QocmVzaWQobTE5KSkNCmBgYA0KIyAxLjMgUHJ1ZWJhIGRlIGhvbW9nZW5laWRhZCBkZSB2YXJpYW56YSBwYXJhIENSQSBwZXNvIHNlY28NCmBgYHtyfQ0KbGlicmFyeShjYXIpDQpsaWJyYXJ5KGNhckRhdGEpDQpgYGANCg0KYGBge3J9DQptMTl2YXI8LWxldmVuZVRlc3QoRGF0b3NfTmFFbCRDUkFfcHN+RGF0b3NfTmFFbCRUcmF0LCBjZW50ZXI9bWVhbikNCm0xOXZhcg0KYGBgDQojIDEuNCBwcnVlYmEgZGUgY29tcGFyYWNpb24gZGUgcHJvbWVkaW8gdHVrZXkgcGFyYSBDUkEgcGVzbyBzZWNvDQoNCmBgYHtyfQ0KbGlicmFyeShhZ3JpY29sYWUpDQpsaWJyYXJ5KGRwbHlyKQ0KYGBgDQoNCmBgYHtyfQ0KbTE5dHVrZXkgPC1IU0QudGVzdChEYXRvc19OYUVsJENSQV9wcyxEYXRvc19OYUVsJFRyYXQsIDEyLCAxLjQwNjNlLTA3LCBhbHBoYSA9IDAuMDUpDQptMTl0dWtleQ0KYGBgDQoNCiMgQ1JBIHBlc28gdHVyZ2VudGUNCg0KIyBBbmFsaXNpcyBkZSB2YXJpYW56YQ0KDQpgYGB7cn0NCm0zMTwtIGFvdihDUkFfcHR+VHJhdCwgZGF0YSA9IERhdG9zX05hRWwpDQphbm92YShtMzEpDQpgYGANCg0KIyBOb3JtYWxpZGFkIENSQSBwdA0KDQpgYGB7cn0NCnNoYXBpcm8udGVzdChyZXNpZChtMzEpKQ0KYGBgDQpgYGB7cn0NCmtydXNrYTMxPC1rcnVza2FsKERhdG9zX05hRWwkQ1JBX3B0LCBEYXRvc19OYUVsJFRyYXQsIGFscGhhID0gMC4wNSkNCmtydXNrYTMxDQpgYGANCiMgQ1JBDQoNCiMgQW5hbGlzaXMgZGUgdmFyaWFuemEgcGFyYSBDUkENCg0KYGBge3J9DQptMzI8LSBhb3YoQ1JBflRyYXQsIGRhdGEgPSBEYXRvc19OYUVsKQ0KYW5vdmEobTMyKQ0KYGBgDQojIE5vcm1hbGlkYWQgcGFyIENSQQ0KDQpgYGB7cn0NCnNoYXBpcm8udGVzdChyZXNpZChtMzIpKQ0KYGBgDQoNCiMgSC4gVmFyaWFuemEgcGFyYSBDUkENCg0KYGBge3J9DQptMzJ2YXI8LWxldmVuZVRlc3QoRGF0b3NfTmFFbCRDUkF+RGF0b3NfTmFFbCRUcmF0LCBjZW50ZXI9bWVhbikNCm0zMnZhcg0KYGBgDQoNCiMgVHVrZXkgcGFyYSBDUkENCg0KYGBge3J9DQptMTl0dWtleSA8LUhTRC50ZXN0KERhdG9zX05hRWwkQ1JBLERhdG9zX05hRWwkVHJhdCwgMTIsIDM0LjEyLCBhbHBoYSA9IDAuMDUpDQptMTl0dWtleQ0KYGBgDQoNCg0KDQoNCg==