This is an R Markdown Notebook. When you execute code within the notebook, the results appear beneath the code.

Se realiza cosecha y toma de datos de rendimiento del cultivo de papa facultad de UNAL . Por cada tratamiento se tomó un 1 m^2 , y se separaron en tres tamaños, de la siguiente forma: los tubérculos recolectados, Grande (cero más de 7,5 cm), mediana ( pareja entre 4,5 – 7,5 cm ) y pequeña (Riche menor a 4,5 cm) también se registró número de tubérculos por cada categoría,

library(XLConnect)
package 㤼㸱XLConnect㤼㸲 was built under R version 4.0.5XLConnect 1.0.3 by Mirai Solutions GmbH [aut],
  Martin Studer [cre],
  The Apache Software Foundation [ctb, cph] (Apache POI),
  Graph Builder [ctb, cph] (Curvesapi Java library)
https://mirai-solutions.ch
https://github.com/miraisolutions/xlconnect
library(agricolae)
package 㤼㸱agricolae㤼㸲 was built under R version 4.0.5
library(readxl)
package 㤼㸱readxl㤼㸲 was built under R version 4.0.5
library(readxl)
Rendimiento_papa_facultad_t_ha_1 <- read_excel("C:/Users/Eduardo/Downloads/Rendimiento papa facultad t-ha-1.xlsx")
View(Rendimiento_papa_facultad_t_ha_1)

Con los datos tomados de rendimiento, se siguió el procedimiento encontrado en Seminario Cunya,(2017) en el cual el rendimiento por hectárea lo obtuvieron mediante la ecuación de Hay y Walker (1989, 190) que considera tres componentes básicos del rendimiento.

Para este ensayo se realizó de la siguiente forma : Rendimiento (kg∙ha-1) = 27 778 plantas x N° tubérculos por planta x peso promedio del tubérculo fresco (kg). Finalmente, el rendimiento se expresó en toneladas por hectárea (t∙ha-1).

(Seminario Cunya,2017)
Datos<- read_excel("C:/Users/Eduardo/Downloads/Rendimiento papa facultad t-ha-1.xlsx")
attach(Datos)
names(Datos)
[1] "Tratamientos" "Tratamineto"  "planta"       "Riche"        "Pareja"       "Cero"        
[7] "total"       
str(Datos)
tibble [25 x 7] (S3: tbl_df/tbl/data.frame)
 $ Tratamientos: chr [1:25] "C- (0 L/ha TV) 75% FC" NA NA NA ...
 $ Tratamineto : num [1:25] 1 1 1 1 1 2 2 2 2 2 ...
 $ planta      : num [1:25] 1 2 3 4 5 1 2 3 4 5 ...
 $ Riche       : num [1:25] 4.28 1.56 3 4.33 1.33 ...
 $ Pareja      : num [1:25] 12.61 16.94 13.28 17.5 2.78 ...
 $ Cero        : num [1:25] 13.83 19.11 10.72 0 3.78 ...
 $ total       : num [1:25] 30.72 37.61 27 21.83 7.89 ...
plan<-factor(planta)
Trat<-factor(Tratamineto)
Modelo<-lm(Riche~Trat+plan)
ANOVA<-aov(Modelo)
summary(ANOVA)
            Df Sum Sq Mean Sq F value Pr(>F)  
Trat         4  12.13   3.032   3.541 0.0298 *
plan         4  13.67   3.417   3.990 0.0197 *
Residuals   16  13.70   0.856                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
tratam<- LSD.test(y = ANOVA, trt = "Trat",group = T, console = T)

Study: ANOVA ~ "Trat"

LSD t Test for Riche 

Mean Square Error:  0.856418 

Trat,  means and individual ( 95 %) CI

Alpha: 0.05 ; DF Error: 16
Critical Value of t: 2.119905 

least Significant Difference: 1.240764 

Treatments with the same letter are not significantly different.
bar.group(x = tratam$groups, 
          ylim=c(0,6),
          main=" Comparación rendimiento papa tamaño Riche ",
          xlab="Tratamiento ",
          ylab="Rendimiento (ton/ha) ",
          col="grey")

Modelo<-lm(Pareja~Trat+plan)
ANOVA<-aov(Modelo)
summary(ANOVA)
            Df Sum Sq Mean Sq F value Pr(>F)  
Trat         4   46.6   11.65   0.463 0.7619  
plan         4  241.2   60.31   2.396 0.0935 .
Residuals   16  402.7   25.17                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
tratam<- LSD.test(y = ANOVA, trt = "Trat",group = T, console = T)

Study: ANOVA ~ "Trat"

LSD t Test for Pareja 

Mean Square Error:  25.16957 

Trat,  means and individual ( 95 %) CI

Alpha: 0.05 ; DF Error: 16
Critical Value of t: 2.119905 

least Significant Difference: 6.726426 

Treatments with the same letter are not significantly different.
bar.group(x = tratam$groups, 
          ylim=c(0,20),
          main=" Comparación rendimiento papa tamaño Pareja ",
          xlab="Tratamiento ",
          ylab="Rendimiento (ton/ha) ",
          col="grey")

Modelo<-lm(Cero~Trat+plan)
ANOVA<-aov(Modelo)
summary(ANOVA)
            Df Sum Sq Mean Sq F value   Pr(>F)    
Trat         4   85.9   21.48   1.769    0.184    
plan         4  605.8  151.45  12.475 8.52e-05 ***
Residuals   16  194.2   12.14                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
tratam<- LSD.test(y = ANOVA, trt = "Trat",group = T, console = T)

Study: ANOVA ~ "Trat"

LSD t Test for Cero 

Mean Square Error:  12.14032 

Trat,  means and individual ( 95 %) CI

Alpha: 0.05 ; DF Error: 16
Critical Value of t: 2.119905 

least Significant Difference: 4.671555 

Treatments with the same letter are not significantly different.
bar.group(x = tratam$groups, 
          ylim=c(0,13),
          main=" Comparación rendimiento papa tamaño Cero ",
          xlab="Tratamiento ",
          ylab="Rendimiento (ton/ha) ",
          col="grey")

Modelo<-lm(total~Trat+plan)
ANOVA<-aov(Modelo)
summary(ANOVA)
            Df Sum Sq Mean Sq F value   Pr(>F)    
Trat         4  102.4   25.60   1.203    0.348    
plan         4 1191.2  297.81  13.995 4.31e-05 ***
Residuals   16  340.5   21.28                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
tratam<- LSD.test(y = ANOVA, trt = "Trat",group = T, console = T)

Study: ANOVA ~ "Trat"

LSD t Test for total 

Mean Square Error:  21.28046 

Trat,  means and individual ( 95 %) CI

Alpha: 0.05 ; DF Error: 16
Critical Value of t: 2.119905 

least Significant Difference: 6.184962 

Treatments with the same letter are not significantly different.
bar.group(x = tratam$groups, 
          ylim=c(0,33),
          main=" Comparación rendimiento papa total ",
          xlab="Tratamiento ",
          ylab="Rendimiento (ton/ha) ",
          col="grey")

library(multcompView)
package 㤼㸱multcompView㤼㸲 was built under R version 4.0.5
library(daewr)
package 㤼㸱daewr㤼㸲 was built under R version 4.0.5Registered S3 method overwritten by 'DoE.base':
  method           from       
  factorize.factor conf.design
Modelo<-lm(Riche~Trat+plan)
ANOVA<-aov(Modelo)
summary(ANOVA)
            Df Sum Sq Mean Sq F value Pr(>F)  
Trat         4  12.13   3.032   3.541 0.0298 *
plan         4  13.67   3.417   3.990 0.0197 *
Residuals   16  13.70   0.856                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
TUKEY <- TukeyHSD(x=ANOVA, 'Trat', conf.level=0.95)
summary(TUKEY)
     Length Class  Mode   
Trat 40     -none- numeric
tratam<- LSD.test(y = ANOVA, trt = "Trat",group = T, console = T)

Study: ANOVA ~ "Trat"

LSD t Test for Riche 

Mean Square Error:  0.856418 

Trat,  means and individual ( 95 %) CI

Alpha: 0.05 ; DF Error: 16
Critical Value of t: 2.119905 

least Significant Difference: 1.240764 

Treatments with the same letter are not significantly different.
bar.group(x = tratam$groups, 
          ylim=c(0,6),
          main=" Comparación rendimiento papa Riche por medio del método LSD",
          xlab="Tratamiento ",
          ylab="Rendimiento (ton/ha) ",
          col="grey")

Modelo<-lm(Pareja~Trat+plan)
ANOVA<-aov(Modelo)
summary(ANOVA)
            Df Sum Sq Mean Sq F value Pr(>F)  
Trat         4   46.6   11.65   0.463 0.7619  
plan         4  241.2   60.31   2.396 0.0935 .
Residuals   16  402.7   25.17                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
TUKEY <- TukeyHSD(x=ANOVA, 'Trat', conf.level=0.95)
summary(TUKEY)
     Length Class  Mode   
Trat 40     -none- numeric
tratam<- LSD.test(y = ANOVA, trt = "Trat",group = T, console = T)

Study: ANOVA ~ "Trat"

LSD t Test for Pareja 

Mean Square Error:  25.16957 

Trat,  means and individual ( 95 %) CI

Alpha: 0.05 ; DF Error: 16
Critical Value of t: 2.119905 

least Significant Difference: 6.726426 

Treatments with the same letter are not significantly different.
bar.group(x = tratam$groups, 
          ylim=c(0,20),
          main=" Comparación rendimiento papa Pareja por medio del método LSD",
          xlab="Tratamiento ",
          ylab="Rendimiento (ton/ha) ",
          col="grey")

Modelo<-lm(Cero~Trat+plan)
ANOVA<-aov(Modelo)
summary(ANOVA)
            Df Sum Sq Mean Sq F value   Pr(>F)    
Trat         4   85.9   21.48   1.769    0.184    
plan         4  605.8  151.45  12.475 8.52e-05 ***
Residuals   16  194.2   12.14                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
TUKEY <- TukeyHSD(x=ANOVA, 'Trat', conf.level=0.95)
summary(TUKEY)
     Length Class  Mode   
Trat 40     -none- numeric
tratam<- LSD.test(y = ANOVA, trt = "Trat",group = T, console = T)

Study: ANOVA ~ "Trat"

LSD t Test for Cero 

Mean Square Error:  12.14032 

Trat,  means and individual ( 95 %) CI

Alpha: 0.05 ; DF Error: 16
Critical Value of t: 2.119905 

least Significant Difference: 4.671555 

Treatments with the same letter are not significantly different.
bar.group(x = tratam$groups, 
          ylim=c(0,13),
          main=" Comparación rendimiento papa Cero por medio del método LSD",
          xlab="Tratamiento ",
          ylab="Rendimiento (ton/ha) ",
          col="grey")

Modelo<-lm(total~Trat+plan)
ANOVA<-aov(Modelo,data=Datos)
summary(ANOVA)
            Df Sum Sq Mean Sq F value   Pr(>F)    
Trat         4  102.4   25.60   1.203    0.348    
plan         4 1191.2  297.81  13.995 4.31e-05 ***
Residuals   16  340.5   21.28                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
TUKEY <- TukeyHSD(x=ANOVA, 'Trat', conf.level=0.95)
summary(TUKEY)
     Length Class  Mode   
Trat 40     -none- numeric
tratam<- LSD.test(y = ANOVA, trt = "Trat",group = T, console = T)

Study: ANOVA ~ "Trat"

LSD t Test for total 

Mean Square Error:  21.28046 

Trat,  means and individual ( 95 %) CI

Alpha: 0.05 ; DF Error: 16
Critical Value of t: 2.119905 

least Significant Difference: 6.184962 

Treatments with the same letter are not significantly different.
bar.group(x = tratam$groups, 
          ylim=c(0,34),
          main=" Comparación rendimiento papa total por medio del método LSD",
          xlab="Tratamiento ",
          ylab="Rendimiento (ton/ha) ",
          col="grey")

Add a new chunk by clicking the Insert Chunk button on the toolbar or by pressing Ctrl+Alt+I.

When you save the notebook, an HTML file containing the code and output will be saved alongside it (click the Preview button or press Ctrl+Shift+K to preview the HTML file).

The preview shows you a rendered HTML copy of the contents of the editor. Consequently, unlike Knit, Preview does not run any R code chunks. Instead, the output of the chunk when it was last run in the editor is displayed.

LS0tDQp0aXRsZTogJ0FOw4FMSVNJUyAgUkVORElNSUVOVE8gIFBBUEEgRElBQ09MIENBUElSTyBSMTIgRkNVTFRBRCBVTkFMIE9DVFVCUkUgMjAyMCAtIEpVTklPDQogIDIwMjEgJw0Kb3V0cHV0Og0KICBodG1sX25vdGVib29rOiBkZWZhdWx0DQogIGh0bWxfZG9jdW1lbnQ6DQogICAgZGZfcHJpbnQ6IHBhZ2VkDQogIHBkZl9kb2N1bWVudDogZGVmYXVsdA0KLS0tDQoNClRoaXMgaXMgYW4gW1IgTWFya2Rvd25dKGh0dHA6Ly9ybWFya2Rvd24ucnN0dWRpby5jb20pIE5vdGVib29rLiBXaGVuIHlvdSBleGVjdXRlIGNvZGUgd2l0aGluIHRoZSBub3RlYm9vaywgdGhlIHJlc3VsdHMgYXBwZWFyIGJlbmVhdGggdGhlIGNvZGUuIA0KDQojIyMjIFNlIHJlYWxpemEgY29zZWNoYSB5IHRvbWEgZGUgZGF0b3MgZGUgcmVuZGltaWVudG8gZGVsIGN1bHRpdm8gZGUgcGFwYSBmYWN1bHRhZCBkZSBVTkFMIC4gUG9yIGNhZGEgdHJhdGFtaWVudG8gc2UgdG9tw7MgdW4gMSBtXjIgLCB5IHNlIHNlcGFyYXJvbiBlbiB0cmVzIHRhbWHDsW9zLCBkZSBsYSBzaWd1aWVudGUgZm9ybWE6IGxvcyB0dWLDqXJjdWxvcyByZWNvbGVjdGFkb3MsIEdyYW5kZSAoY2VybyBtw6FzIGRlIDcsNSBjbSksIG1lZGlhbmEgKCBwYXJlamEgZW50cmUgNCw1IOKAkyA3LDUgY20gKSB5IHBlcXVlw7FhIChSaWNoZSBtZW5vciBhIDQsNSBjbSkgdGFtYmnDqW4gc2UgcmVnaXN0csOzIG7Dum1lcm8gZGUgdHViw6lyY3Vsb3MgcG9yIGNhZGEgY2F0ZWdvcsOtYSwgDQoNCmBgYHtyfQ0KbGlicmFyeShYTENvbm5lY3QpDQpsaWJyYXJ5KGFncmljb2xhZSkNCmxpYnJhcnkocmVhZHhsKQ0KbGlicmFyeShyZWFkeGwpDQpSZW5kaW1pZW50b19wYXBhX2ZhY3VsdGFkX3RfaGFfMSA8LSByZWFkX2V4Y2VsKCJDOi9Vc2Vycy9FZHVhcmRvL0Rvd25sb2Fkcy9SZW5kaW1pZW50byBwYXBhIGZhY3VsdGFkIHQtaGEtMS54bHN4IikNClZpZXcoUmVuZGltaWVudG9fcGFwYV9mYWN1bHRhZF90X2hhXzEpDQpgYGANCiMjIyMgQ29uIGxvcyBkYXRvcyB0b21hZG9zIGRlIHJlbmRpbWllbnRvLCBzZSBzaWd1acOzIGVsIHByb2NlZGltaWVudG8gZW5jb250cmFkbyBlbiBTZW1pbmFyaW8gQ3VueWEsKDIwMTcpIGVuIGVsIGN1YWwgZWwgcmVuZGltaWVudG8gcG9yIGhlY3TDoXJlYSBsbyBvYnR1dmllcm9uICBtZWRpYW50ZSBsYSBlY3VhY2nDs24gZGUgSGF5IHkgV2Fsa2VyICgxOTg5LCAxOTApIHF1ZSBjb25zaWRlcmEgdHJlcyBjb21wb25lbnRlcyBiw6FzaWNvcyBkZWwgcmVuZGltaWVudG8uDQojIyMjIFBhcmEgZXN0ZSBlbnNheW8gc2UgcmVhbGl6w7MgZGUgbGEgc2lndWllbnRlIGZvcm1hIDogIFJlbmRpbWllbnRvIChrZ+KImWhhLTEpID0gMjcgNzc4IHBsYW50YXMgeCBOwrAgdHViw6lyY3Vsb3MgcG9yIHBsYW50YSB4IHBlc28gcHJvbWVkaW8gZGVsIHR1YsOpcmN1bG8gZnJlc2NvIChrZykuIEZpbmFsbWVudGUsIGVsIHJlbmRpbWllbnRvIHNlIGV4cHJlc8OzIGVuIHRvbmVsYWRhcyBwb3IgaGVjdMOhcmVhICh04oiZaGEtMSkuDQojIyMjIyMgKFNlbWluYXJpbyBDdW55YSwyMDE3KQ0KDQogDQpgYGB7cn0NCkRhdG9zPC0gcmVhZF9leGNlbCgiQzovVXNlcnMvRWR1YXJkby9Eb3dubG9hZHMvUmVuZGltaWVudG8gcGFwYSBmYWN1bHRhZCB0LWhhLTEueGxzeCIpDQphdHRhY2goRGF0b3MpDQpuYW1lcyhEYXRvcykNCnN0cihEYXRvcykNCnBsYW48LWZhY3RvcihwbGFudGEpDQpUcmF0PC1mYWN0b3IoVHJhdGFtaW5ldG8pDQpgYGANCg0KDQoNCmBgYHtyfQ0KTW9kZWxvPC1sbShSaWNoZX5UcmF0K3BsYW4pDQpBTk9WQTwtYW92KE1vZGVsbykNCnN1bW1hcnkoQU5PVkEpDQoNCnRyYXRhbTwtIExTRC50ZXN0KHkgPSBBTk9WQSwgdHJ0ID0gIlRyYXQiLGdyb3VwID0gVCwgY29uc29sZSA9IFQpDQoNCmJhci5ncm91cCh4ID0gdHJhdGFtJGdyb3VwcywgDQogICAgICAgICAgeWxpbT1jKDAsNiksDQogICAgICAgICAgbWFpbj0iIENvbXBhcmFjacOzbiByZW5kaW1pZW50byBwYXBhIHRhbWHDsW8gUmljaGUgIiwNCiAgICAgICAgICB4bGFiPSJUcmF0YW1pZW50byAiLA0KICAgICAgICAgIHlsYWI9IlJlbmRpbWllbnRvICh0b24vaGEpICIsDQogICAgICAgICAgY29sPSJncmV5IikNCmBgYA0KDQoNCmBgYHtyfQ0KTW9kZWxvPC1sbShQYXJlamF+VHJhdCtwbGFuKQ0KQU5PVkE8LWFvdihNb2RlbG8pDQpzdW1tYXJ5KEFOT1ZBKQ0KDQp0cmF0YW08LSBMU0QudGVzdCh5ID0gQU5PVkEsIHRydCA9ICJUcmF0Iixncm91cCA9IFQsIGNvbnNvbGUgPSBUKQ0KDQpiYXIuZ3JvdXAoeCA9IHRyYXRhbSRncm91cHMsIA0KICAgICAgICAgIHlsaW09YygwLDIwKSwNCiAgICAgICAgICBtYWluPSIgQ29tcGFyYWNpw7NuIHJlbmRpbWllbnRvIHBhcGEgdGFtYcOxbyBQYXJlamEgIiwNCiAgICAgICAgICB4bGFiPSJUcmF0YW1pZW50byAiLA0KICAgICAgICAgIHlsYWI9IlJlbmRpbWllbnRvICh0b24vaGEpICIsDQogICAgICAgICAgY29sPSJncmV5IikNCmBgYA0KDQoNCmBgYHtyfQ0KTW9kZWxvPC1sbShDZXJvflRyYXQrcGxhbikNCkFOT1ZBPC1hb3YoTW9kZWxvKQ0Kc3VtbWFyeShBTk9WQSkNCg0KdHJhdGFtPC0gTFNELnRlc3QoeSA9IEFOT1ZBLCB0cnQgPSAiVHJhdCIsZ3JvdXAgPSBULCBjb25zb2xlID0gVCkNCg0KYmFyLmdyb3VwKHggPSB0cmF0YW0kZ3JvdXBzLCANCiAgICAgICAgICB5bGltPWMoMCwxMyksDQogICAgICAgICAgbWFpbj0iIENvbXBhcmFjacOzbiByZW5kaW1pZW50byBwYXBhIHRhbWHDsW8gQ2VybyAiLA0KICAgICAgICAgIHhsYWI9IlRyYXRhbWllbnRvICIsDQogICAgICAgICAgeWxhYj0iUmVuZGltaWVudG8gKHRvbi9oYSkgIiwNCiAgICAgICAgICBjb2w9ImdyZXkiKQ0KYGBgDQoNCg0KYGBge3J9DQpNb2RlbG88LWxtKHRvdGFsflRyYXQrcGxhbikNCkFOT1ZBPC1hb3YoTW9kZWxvKQ0Kc3VtbWFyeShBTk9WQSkNCg0KdHJhdGFtPC0gTFNELnRlc3QoeSA9IEFOT1ZBLCB0cnQgPSAiVHJhdCIsZ3JvdXAgPSBULCBjb25zb2xlID0gVCkNCg0KYmFyLmdyb3VwKHggPSB0cmF0YW0kZ3JvdXBzLCANCiAgICAgICAgICB5bGltPWMoMCwzMyksDQogICAgICAgICAgbWFpbj0iIENvbXBhcmFjacOzbiByZW5kaW1pZW50byBwYXBhIHRvdGFsICIsDQogICAgICAgICAgeGxhYj0iVHJhdGFtaWVudG8gIiwNCiAgICAgICAgICB5bGFiPSJSZW5kaW1pZW50byAodG9uL2hhKSAiLA0KICAgICAgICAgIGNvbD0iZ3JleSIpDQpgYGANCg0KDQpgYGB7cn0NCmxpYnJhcnkobXVsdGNvbXBWaWV3KQ0KbGlicmFyeShkYWV3cikNCmBgYA0KDQoNCmBgYHtyfQ0KTW9kZWxvPC1sbShSaWNoZX5UcmF0K3BsYW4pDQpBTk9WQTwtYW92KE1vZGVsbykNCnN1bW1hcnkoQU5PVkEpDQoNClRVS0VZIDwtIFR1a2V5SFNEKHg9QU5PVkEsICdUcmF0JywgY29uZi5sZXZlbD0wLjk1KQ0Kc3VtbWFyeShUVUtFWSkNCg0KdHJhdGFtPC0gTFNELnRlc3QoeSA9IEFOT1ZBLCB0cnQgPSAiVHJhdCIsZ3JvdXAgPSBULCBjb25zb2xlID0gVCkNCmJhci5ncm91cCh4ID0gdHJhdGFtJGdyb3VwcywgDQogICAgICAgICAgeWxpbT1jKDAsNiksDQogICAgICAgICAgbWFpbj0iIENvbXBhcmFjacOzbiByZW5kaW1pZW50byBwYXBhIFJpY2hlIHBvciBtZWRpbyBkZWwgbcOpdG9kbyBMU0QiLA0KICAgICAgICAgIHhsYWI9IlRyYXRhbWllbnRvICIsDQogICAgICAgICAgeWxhYj0iUmVuZGltaWVudG8gKHRvbi9oYSkgIiwNCiAgICAgICAgICBjb2w9ImdyZXkiKQ0KYGBgDQoNCg0KYGBge3J9DQpNb2RlbG88LWxtKFBhcmVqYX5UcmF0K3BsYW4pDQpBTk9WQTwtYW92KE1vZGVsbykNCnN1bW1hcnkoQU5PVkEpDQoNClRVS0VZIDwtIFR1a2V5SFNEKHg9QU5PVkEsICdUcmF0JywgY29uZi5sZXZlbD0wLjk1KQ0Kc3VtbWFyeShUVUtFWSkNCg0KdHJhdGFtPC0gTFNELnRlc3QoeSA9IEFOT1ZBLCB0cnQgPSAiVHJhdCIsZ3JvdXAgPSBULCBjb25zb2xlID0gVCkNCmJhci5ncm91cCh4ID0gdHJhdGFtJGdyb3VwcywgDQogICAgICAgICAgeWxpbT1jKDAsMjApLA0KICAgICAgICAgIG1haW49IiBDb21wYXJhY2nDs24gcmVuZGltaWVudG8gcGFwYSBQYXJlamEgcG9yIG1lZGlvIGRlbCBtw6l0b2RvIExTRCIsDQogICAgICAgICAgeGxhYj0iVHJhdGFtaWVudG8gIiwNCiAgICAgICAgICB5bGFiPSJSZW5kaW1pZW50byAodG9uL2hhKSAiLA0KICAgICAgICAgIGNvbD0iZ3JleSIpDQpgYGANCg0KDQpgYGB7cn0NCk1vZGVsbzwtbG0oQ2Vyb35UcmF0K3BsYW4pDQpBTk9WQTwtYW92KE1vZGVsbykNCnN1bW1hcnkoQU5PVkEpDQoNClRVS0VZIDwtIFR1a2V5SFNEKHg9QU5PVkEsICdUcmF0JywgY29uZi5sZXZlbD0wLjk1KQ0Kc3VtbWFyeShUVUtFWSkNCg0KdHJhdGFtPC0gTFNELnRlc3QoeSA9IEFOT1ZBLCB0cnQgPSAiVHJhdCIsZ3JvdXAgPSBULCBjb25zb2xlID0gVCkNCmJhci5ncm91cCh4ID0gdHJhdGFtJGdyb3VwcywgDQogICAgICAgICAgeWxpbT1jKDAsMTMpLA0KICAgICAgICAgIG1haW49IiBDb21wYXJhY2nDs24gcmVuZGltaWVudG8gcGFwYSBDZXJvIHBvciBtZWRpbyBkZWwgbcOpdG9kbyBMU0QiLA0KICAgICAgICAgIHhsYWI9IlRyYXRhbWllbnRvICIsDQogICAgICAgICAgeWxhYj0iUmVuZGltaWVudG8gKHRvbi9oYSkgIiwNCiAgICAgICAgICBjb2w9ImdyZXkiKQ0KYGBgDQoNCmBgYHtyfQ0KTW9kZWxvPC1sbSh0b3RhbH5UcmF0K3BsYW4pDQpBTk9WQTwtYW92KE1vZGVsbyxkYXRhPURhdG9zKQ0Kc3VtbWFyeShBTk9WQSkNCg0KVFVLRVkgPC0gVHVrZXlIU0QoeD1BTk9WQSwgJ1RyYXQnLCBjb25mLmxldmVsPTAuOTUpDQpzdW1tYXJ5KFRVS0VZKQ0KDQp0cmF0YW08LSBMU0QudGVzdCh5ID0gQU5PVkEsIHRydCA9ICJUcmF0Iixncm91cCA9IFQsIGNvbnNvbGUgPSBUKQ0KYmFyLmdyb3VwKHggPSB0cmF0YW0kZ3JvdXBzLCANCiAgICAgICAgICB5bGltPWMoMCwzNCksDQogICAgICAgICAgbWFpbj0iIENvbXBhcmFjacOzbiByZW5kaW1pZW50byBwYXBhIHRvdGFsIHBvciBtZWRpbyBkZWwgbcOpdG9kbyBMU0QiLA0KICAgICAgICAgIHhsYWI9IlRyYXRhbWllbnRvICIsDQogICAgICAgICAgeWxhYj0iUmVuZGltaWVudG8gKHRvbi9oYSkgIiwNCiAgICAgICAgICBjb2w9ImdyZXkiKQ0KYGBgDQoNCg0KQWRkIGEgbmV3IGNodW5rIGJ5IGNsaWNraW5nIHRoZSAqSW5zZXJ0IENodW5rKiBidXR0b24gb24gdGhlIHRvb2xiYXIgb3IgYnkgcHJlc3NpbmcgKkN0cmwrQWx0K0kqLg0KDQpXaGVuIHlvdSBzYXZlIHRoZSBub3RlYm9vaywgYW4gSFRNTCBmaWxlIGNvbnRhaW5pbmcgdGhlIGNvZGUgYW5kIG91dHB1dCB3aWxsIGJlIHNhdmVkIGFsb25nc2lkZSBpdCAoY2xpY2sgdGhlICpQcmV2aWV3KiBidXR0b24gb3IgcHJlc3MgKkN0cmwrU2hpZnQrSyogdG8gcHJldmlldyB0aGUgSFRNTCBmaWxlKS4NCg0KVGhlIHByZXZpZXcgc2hvd3MgeW91IGEgcmVuZGVyZWQgSFRNTCBjb3B5IG9mIHRoZSBjb250ZW50cyBvZiB0aGUgZWRpdG9yLiBDb25zZXF1ZW50bHksIHVubGlrZSAqS25pdCosICpQcmV2aWV3KiBkb2VzIG5vdCBydW4gYW55IFIgY29kZSBjaHVua3MuIEluc3RlYWQsIHRoZSBvdXRwdXQgb2YgdGhlIGNodW5rIHdoZW4gaXQgd2FzIGxhc3QgcnVuIGluIHRoZSBlZGl0b3IgaXMgZGlzcGxheWVkLg0K