cat("\014")     # clean terminal

rm(list = ls()) # clean workspace
try(dev.off(), silent = TRUE) # close all plots
library(afex)
library(emmeans)
library(ggplot2)
library(ggridges)
library(ggdist)
library(dplyr)
library(reshape2)
library(GGally)
library(forcats)
theme_set(
  theme_minimal()
)
a_posteriori <- function(afex_aov, sig_level = .05) {
  factors  <- as.list(rownames(afex_aov$anova_table))
  for (j in 1:length(factors)) {
    if (grepl(":", factors[[j]])) {
      factors[[j]] <- unlist(strsplit(factors[[j]], ":"))
    }
  }
  p_values <- afex_aov$anova_table$`Pr(>F)`
  for (i in 1:length(p_values)) {
    if (p_values[i] <= sig_level) {
      print(emmeans(afex_aov, factors[[i]], contr = "pairwise"))
      cat(rep("_", 100), '\n', sep = "")
    }
  }
}
master_dir     <- '~/Insync/OneDrive_shared/Fondecyt_Emociones_Estabilometria'
data_dir       <- paste(master_dir, 'data',  sep = '/')
emo_data_name  <- paste(data_dir, 'emo_data_clean.csv', sep='/')
emo_data_clean <- read.csv(emo_data_name, header = TRUE)
emo_data_clean <- emo_data_clean[(emo_data_clean$Group == 'Elder' | emo_data_clean$Group == 'Parkinson'), ]
emo_data_clean$Group    <- factor(emo_data_clean$Group, levels = c("Parkinson", "Elder"))
emo_data_clean$Task <- factor(emo_data_clean$Task, levels = c("Unpleasant", "Neutral", "Pleasant"))
emo_data_clean$Emotion  <- factor(emo_data_clean$Emotion)
emo_data_clean$ID       <- factor(emo_data_clean$ID)
emo_data_clean$num_ID   <- factor(emo_data_clean$num_ID)
emo_data_clean$log10_area  <- log10(emo_data_clean$area)
emo_data_clean$log10_axis1 <- log10(emo_data_clean$axis1)
emo_data_clean$log10_axis2 <- log10(emo_data_clean$axis2)
emo_data_clean$log10_mdist <- log10(emo_data_clean$mdist)
emo_data_clean$log10_rmv   <- log10(emo_data_clean$rmv)
emo_data_clean$log10_rmsx  <- log10(emo_data_clean$rmsx)
emo_data_clean$log10_rmsy  <- log10(emo_data_clean$rmsy)
emo_data_clean$log10_MPFx  <- log10(emo_data_clean$MPFx)
emo_data_clean$log10_MPFy  <- log10(emo_data_clean$MPFy)
emo_data_clean$log10_PEAKx <- log10(emo_data_clean$PEAKx)
emo_data_clean$log10_PEAKy <- log10(emo_data_clean$PEAKy)
emo_data_clean$log10_F50x  <- log10(emo_data_clean$F50x)
emo_data_clean$log10_F50y  <- log10(emo_data_clean$F50y)
emo_data_clean$log10_F95x  <- log10(emo_data_clean$F95x)
emo_data_clean$log10_F95y  <- log10(emo_data_clean$F95y)
emo_data_clean$log10_sampen_x <- log10(emo_data_clean$sampen_x)
emo_data_clean$log10_sampen_y <- log10(emo_data_clean$sampen_y)
emo_data_clean$log10_rMSSD    <- log10(emo_data_clean$rMSSD)
emo_data_clean$log10_hrv_rmssd_nk2  <- log10(emo_data_clean$hrv_rmssd_nk2)
emo_data_clean$log10_ave_phasic_eda    <- log10(emo_data_clean$ave_phasic_eda)
Warning: NaNs produced
emo_data_clean$rrv_rmssd[emo_data_clean$rrv_rmssd > 4500] <- NA
emo_data_clean$log10_scr_peaks_number   <- log10(emo_data_clean$scr_peaks_number)
emo_data_clean$log10_scr_mean_amplitude <- log10(emo_data_clean$scr_mean_amplitude)
emo_data_clean[sapply(emo_data_clean, is.infinite)] <- NA

1 General Description

options(width = 100)
summary(emo_data_clean)
   filename               Group       Paradigm                 Task    Emotion         ID     
 Length:287         Parkinson:144   Length:287         Unpleasant:96   Yes:287   EP_201 :  3  
 Class :character   Elder    :143   Class :character   Neutral   :95             EP_202 :  3  
 Mode  :character                   Mode  :character   Pleasant  :96             EP_203 :  3  
                                                                                 EP_204 :  3  
                                                                                 EP_205 :  3  
                                                                                 EP_206 :  3  
                                                                                 (Other):269  
      area             axis1            axis2            angle            mdist       
 Min.   :  35.77   Min.   : 6.141   Min.   : 1.799   Min.   :-3.092   Min.   : 2.224  
 1st Qu.: 145.26   1st Qu.:10.513   1st Qu.: 4.099   1st Qu.: 1.392   1st Qu.: 4.066  
 Median : 237.48   Median :13.133   Median : 5.727   Median : 1.561   Median : 5.057  
 Mean   : 365.26   Mean   :14.459   Mean   : 6.757   Mean   : 1.468   Mean   : 5.615  
 3rd Qu.: 388.50   3rd Qu.:16.727   3rd Qu.: 7.912   3rd Qu.: 1.699   3rd Qu.: 6.480  
 Max.   :4001.39   Max.   :42.231   Max.   :32.930   Max.   : 3.102   Max.   :17.666  
                                                                                      
      rmv              rmsx             rmsy             MPFx               PEAKx          
 Min.   : 5.410   Min.   : 0.742   Min.   : 2.500   Min.   :0.0004269   Min.   :0.0001221  
 1st Qu.: 8.682   1st Qu.: 1.865   1st Qu.: 4.065   1st Qu.:0.0012098   1st Qu.:0.0001221  
 Median :11.274   Median : 2.608   Median : 5.119   Median :0.0016730   Median :0.0001221  
 Mean   :12.692   Mean   : 3.155   Mean   : 5.638   Mean   :0.0019886   Mean   :0.0003220  
 3rd Qu.:14.052   3rd Qu.: 3.664   3rd Qu.: 6.532   3rd Qu.:0.0025321   3rd Qu.:0.0002441  
 Max.   :80.110   Max.   :16.594   Max.   :15.749   Max.   :0.0110739   Max.   :0.0065918  
                                                                                           
      F50x                F95x               MPFy              PEAKy                F50y          
 Min.   :0.0002441   Min.   :0.001221   Min.   :0.000437   Min.   :0.0001221   Min.   :0.0002441  
 1st Qu.:0.0002441   1st Qu.:0.004395   1st Qu.:0.001248   1st Qu.:0.0001221   1st Qu.:0.0006104  
 Median :0.0006104   Median :0.005737   Median :0.001738   Median :0.0002441   Median :0.0009766  
 Mean   :0.0010497   Mean   :0.006642   Mean   :0.001851   Mean   :0.0004721   Mean   :0.0011088  
 3rd Qu.:0.0015869   3rd Qu.:0.007690   3rd Qu.:0.002238   3rd Qu.:0.0004883   3rd Qu.:0.0014648  
 Max.   :0.0068359   Max.   :0.042358   Max.   :0.007089   Max.   :0.0043945   Max.   :0.0040283  
                                                                                                  
      F95y           forward_mov        sampen_x          sampen_y        sampen_resul_vect
 Min.   :0.001343   Min.   :0.2373   Min.   :0.00232   Min.   :0.004815   Min.   :0.01149  
 1st Qu.:0.003784   1st Qu.:0.4547   1st Qu.:0.10142   1st Qu.:0.052885   1st Qu.:1.64343  
 Median :0.005737   Median :0.5020   Median :0.22122   Median :0.097751   Median :1.98514  
 Mean   :0.006240   Mean   :0.4984   Mean   :0.29223   Mean   :0.120938   Mean   :1.95572  
 3rd Qu.:0.008057   3rd Qu.:0.5444   3rd Qu.:0.37765   3rd Qu.:0.164868   3rd Qu.:2.27377  
 Max.   :0.037598   Max.   :0.8000   Max.   :1.44107   Max.   :0.490575   Max.   :3.59382  
                                                                          NA's   :14       
 sampen_phi_rad   sampen_delta_phi   heart_rate         rMSSD         ave_phasic_eda    
 Min.   :0.4158   Min.   :0.8149   Min.   : 48.39   Min.   :  2.789   Min.   :-0.00002  
 1st Qu.:0.9228   1st Qu.:1.4124   1st Qu.: 67.08   1st Qu.:  7.814   1st Qu.: 0.04104  
 Median :1.0254   Median :1.5605   Median : 75.50   Median : 11.853   Median : 0.12315  
 Mean   :1.0258   Mean   :1.5459   Mean   : 75.92   Mean   : 26.921   Mean   : 0.33144  
 3rd Qu.:1.1292   3rd Qu.:1.6750   3rd Qu.: 84.29   3rd Qu.: 24.402   3rd Qu.: 0.40055  
 Max.   :1.5488   Max.   :2.1407   Max.   :111.18   Max.   :834.339   Max.   : 3.26276  
                                   NA's   :25       NA's   :25        NA's   :23        
 ave_tonic_eda    recurrence_rate_x  determinism_x    ave_diag_len_x    longest_diag_x  
 Min.   : 1.254   Min.   :0.006863   Min.   :0.9894   Min.   :  6.371   Min.   :  99.0  
 1st Qu.: 5.882   1st Qu.:0.062062   1st Qu.:0.9994   1st Qu.: 22.898   1st Qu.: 283.0  
 Median : 8.242   Median :0.084812   Median :0.9997   Median : 32.650   Median : 372.0  
 Mean   :10.012   Mean   :0.091064   Mean   :0.9993   Mean   : 38.817   Mean   : 490.8  
 3rd Qu.:12.888   3rd Qu.:0.109634   3rd Qu.:0.9998   3rd Qu.: 46.795   3rd Qu.: 528.0  
 Max.   :31.831   Max.   :0.774053   Max.   :1.0000   Max.   :647.996   Max.   :7464.0  
 NA's   :23                                                                             
 diag_entropy_x   laminarity_x    trapping_time_x   longest_vertical_x  rec_time1_x     
 Min.   :2.553   Min.   :0.9743   Min.   :  3.571   Min.   :  27       Min.   :  1.309  
 1st Qu.:3.976   1st Qu.:0.9996   1st Qu.: 28.059   1st Qu.: 291       1st Qu.:  9.249  
 Median :4.362   Median :0.9998   Median : 40.356   Median : 415       Median : 11.931  
 Mean   :4.329   Mean   :0.9995   Mean   : 47.184   Mean   : 492       Mean   : 16.279  
 3rd Qu.:4.751   3rd Qu.:0.9999   3rd Qu.: 55.901   3rd Qu.: 594       3rd Qu.: 16.316  
 Max.   :7.066   Max.   :1.0000   Max.   :824.210   Max.   :3408       Max.   :149.007  
                                                                                        
  rec_time2_x     rec_per_dens_entr_x  clustering_x    transitivity_x      delay_x     
 Min.   : 202.2   Min.   :0.5353      Min.   :0.2742   Min.   :0.3536   Min.   : 5.00  
 1st Qu.: 418.8   1st Qu.:0.6887      1st Qu.:0.5192   1st Qu.:0.5547   1st Qu.:22.00  
 Median : 499.4   Median :0.7169      Median :0.5551   Median :0.5962   Median :24.00  
 Mean   : 510.2   Mean   :0.7160      Mean   :0.5534   Mean   :0.5947   Mean   :23.65  
 3rd Qu.: 565.2   3rd Qu.:0.7465      3rd Qu.:0.5879   3rd Qu.:0.6353   3rd Qu.:26.50  
 Max.   :1391.6   Max.   :0.8054      Max.   :0.9388   Max.   :0.9503   Max.   :36.00  
                                                                                       
     dim_x       recurrence_rate_y determinism_y    ave_diag_len_y    longest_diag_y  
 Min.   :2.000   Min.   :0.01388   Min.   :0.9924   Min.   :  8.478   Min.   :  88.0  
 1st Qu.:3.000   1st Qu.:0.06087   1st Qu.:0.9996   1st Qu.: 25.374   1st Qu.: 267.0  
 Median :3.000   Median :0.07875   Median :0.9998   Median : 33.149   Median : 342.0  
 Mean   :3.098   Mean   :0.07963   Mean   :0.9996   Mean   : 37.029   Mean   : 394.9  
 3rd Qu.:3.000   3rd Qu.:0.09792   3rd Qu.:0.9999   3rd Qu.: 45.830   3rd Qu.: 453.5  
 Max.   :4.000   Max.   :0.21107   Max.   :1.0000   Max.   :107.322   Max.   :2576.0  
                                                                                      
 diag_entropy_y   laminarity_y    trapping_time_y  longest_vertical_y  rec_time1_y    
 Min.   :2.764   Min.   :0.9940   Min.   :  7.05   Min.   :114.0      Min.   : 4.781  
 1st Qu.:4.118   1st Qu.:0.9997   1st Qu.: 29.67   1st Qu.:259.5      1st Qu.:10.346  
 Median :4.418   Median :0.9999   Median : 38.08   Median :340.0      Median :12.842  
 Mean   :4.413   Mean   :0.9997   Mean   : 42.89   Mean   :384.6      Mean   :14.860  
 3rd Qu.:4.757   3rd Qu.:0.9999   3rd Qu.: 53.79   3rd Qu.:465.5      3rd Qu.:16.617  
 Max.   :5.616   Max.   :1.0000   Max.   :135.14   Max.   :906.0      Max.   :73.026  
                                                                                      
  rec_time2_y     rec_per_dens_entr_y  clustering_y    transitivity_y      delay_y     
 Min.   : 238.9   Min.   :0.6259      Min.   :0.3494   Min.   :0.3999   Min.   : 7.00  
 1st Qu.: 461.2   1st Qu.:0.7363      1st Qu.:0.5225   1st Qu.:0.5576   1st Qu.:20.00  
 Median : 526.0   Median :0.7602      Median :0.5488   Median :0.5896   Median :22.00  
 Mean   : 532.9   Mean   :0.7549      Mean   :0.5493   Mean   :0.5878   Mean   :21.68  
 3rd Qu.: 597.5   3rd Qu.:0.7789      3rd Qu.:0.5742   3rd Qu.:0.6197   3rd Qu.:24.00  
 Max.   :1047.6   Max.   :0.8367      Max.   :0.7132   Max.   :0.7432   Max.   :34.00  
                                                                                       
     dim_y          delay_x2         dim_x2        tol_x2         delay_y2         dim_y2    
 Min.   :2.000   Min.   :15.00   Min.   :6     Min.   :1.422   Min.   :15.00   Min.   :5.00  
 1st Qu.:3.000   1st Qu.:15.25   1st Qu.:6     1st Qu.:1.496   1st Qu.:15.25   1st Qu.:5.25  
 Median :3.000   Median :15.50   Median :6     Median :1.571   Median :15.50   Median :5.50  
 Mean   :3.059   Mean   :15.50   Mean   :6     Mean   :1.571   Mean   :15.50   Mean   :5.50  
 3rd Qu.:3.000   3rd Qu.:15.75   3rd Qu.:6     3rd Qu.:1.645   3rd Qu.:15.75   3rd Qu.:5.75  
 Max.   :4.000   Max.   :16.00   Max.   :6     Max.   :1.720   Max.   :16.00   Max.   :6.00  
                 NA's   :285     NA's   :285   NA's   :285     NA's   :285     NA's   :285   
     tol_y2         rsp_rate        rrv_rmssd        rsa_porges      scr_peaks_number
 Min.   :1.689   Min.   : 4.309   Min.   : 117.9   Min.   :-11.321   Min.   :  1.00  
 1st Qu.:1.782   1st Qu.:12.496   1st Qu.:1256.1   1st Qu.: -8.893   1st Qu.:  6.00  
 Median :1.874   Median :14.794   Median :1822.4   Median : -7.779   Median :  8.00  
 Mean   :1.874   Mean   :14.552   Mean   :1877.1   Mean   : -7.670   Mean   : 12.62  
 3rd Qu.:1.967   3rd Qu.:16.467   3rd Qu.:2412.1   3rd Qu.: -6.622   3rd Qu.: 11.00  
 Max.   :2.060   Max.   :23.878   Max.   :4469.5   Max.   : -2.056   Max.   :121.00  
 NA's   :285                      NA's   :12                                         
 scr_mean_amplitude  heart_rate_nk2   hrv_rmssd_nk2         num_ID      log10_area   
 Min.   :0.000e+00   Min.   : 48.35   Min.   :  2.742   201    :  6   Min.   :1.554  
 1st Qu.:9.608e-06   1st Qu.: 67.36   1st Qu.:  7.364   202    :  6   1st Qu.:2.162  
 Median :3.305e-05   Median : 75.46   Median : 13.504   203    :  6   Median :2.376  
 Mean   :1.571e-04   Mean   : 76.05   Mean   : 28.375   204    :  6   Mean   :2.394  
 3rd Qu.:1.264e-04   3rd Qu.: 84.01   3rd Qu.: 27.840   205    :  6   3rd Qu.:2.589  
 Max.   :1.051e-02   Max.   :111.17   Max.   :660.322   206    :  6   Max.   :3.602  
                                                        (Other):251                  
  log10_axis1      log10_axis2      log10_mdist       log10_rmv        log10_rmsx     
 Min.   :0.7882   Min.   :0.2549   Min.   :0.3471   Min.   :0.7332   Min.   :-0.1296  
 1st Qu.:1.0217   1st Qu.:0.6127   1st Qu.:0.6091   1st Qu.:0.9386   1st Qu.: 0.2706  
 Median :1.1184   Median :0.7579   Median :0.7039   Median :1.0521   Median : 0.4163  
 Mean   :1.1288   Mean   :0.7676   Mean   :0.7180   Mean   :1.0622   Mean   : 0.4257  
 3rd Qu.:1.2234   3rd Qu.:0.8983   3rd Qu.:0.8115   3rd Qu.:1.1478   3rd Qu.: 0.5639  
 Max.   :1.6256   Max.   :1.5176   Max.   :1.2471   Max.   :1.9037   Max.   : 1.2199  
                                                                                      
   log10_rmsy       log10_MPFx       log10_MPFy      log10_PEAKx      log10_PEAKy    
 Min.   :0.3979   Min.   :-3.370   Min.   :-3.360   Min.   :-3.913   Min.   :-3.913  
 1st Qu.:0.6090   1st Qu.:-2.917   1st Qu.:-2.904   1st Qu.:-3.913   1st Qu.:-3.913  
 Median :0.7092   Median :-2.777   Median :-2.760   Median :-3.913   Median :-3.612  
 Mean   :0.7222   Mean   :-2.765   Mean   :-2.779   Mean   :-3.728   Mean   :-3.551  
 3rd Qu.:0.8150   3rd Qu.:-2.597   3rd Qu.:-2.650   3rd Qu.:-3.612   3rd Qu.:-3.311  
 Max.   :1.1972   Max.   :-1.956   Max.   :-2.149   Max.   :-2.181   Max.   :-2.357  
                                                                                     
   log10_F50x       log10_F50y       log10_F95x       log10_F95y     log10_sampen_x   
 Min.   :-3.612   Min.   :-3.612   Min.   :-2.913   Min.   :-2.872   Min.   :-2.6345  
 1st Qu.:-3.612   1st Qu.:-3.214   1st Qu.:-2.357   1st Qu.:-2.422   1st Qu.:-0.9939  
 Median :-3.214   Median :-3.010   Median :-2.241   Median :-2.241   Median :-0.6552  
 Mean   :-3.157   Mean   :-3.033   Mean   :-2.233   Mean   :-2.260   Mean   :-0.7296  
 3rd Qu.:-2.799   3rd Qu.:-2.834   3rd Qu.:-2.114   3rd Qu.:-2.094   3rd Qu.:-0.4229  
 Max.   :-2.165   Max.   :-2.395   Max.   :-1.373   Max.   :-1.425   Max.   : 0.1587  
                                                                                      
 log10_sampen_y     log10_rMSSD     log10_hrv_rmssd_nk2 log10_ave_phasic_eda log10_scr_peaks_number
 Min.   :-2.3174   Min.   :0.4455   Min.   :0.4381      Min.   :-3.4462      Min.   :0.0000        
 1st Qu.:-1.2767   1st Qu.:0.8929   1st Qu.:0.8671      1st Qu.:-1.3631      1st Qu.:0.7782        
 Median :-1.0099   Median :1.0738   Median :1.1305      Median :-0.8987      Median :0.9031        
 Mean   :-1.0500   Mean   :1.1636   Mean   :1.1859      Mean   :-0.9425      Mean   :0.9500        
 3rd Qu.:-0.7829   3rd Qu.:1.3874   3rd Qu.:1.4447      3rd Qu.:-0.3960      3rd Qu.:1.0414        
 Max.   :-0.3093   Max.   :2.9213   Max.   :2.8198      Max.   : 0.5136      Max.   :2.0828        
                   NA's   :25                           NA's   :25                                 
 log10_scr_mean_amplitude
 Min.   :-7.162          
 1st Qu.:-5.008          
 Median :-4.475          
 Mean   :-4.496          
 3rd Qu.:-3.898          
 Max.   :-1.978          
 NA's   :1               

1.1 Time-distance parameters

options(width = 100)
time_distance <- c('log10_area', 'log10_axis1', 'log10_axis2', 'log10_mdist', 'log10_rmv', 'log10_rmsx', 'log10_rmsy')
time_distance_pairs <- ggpairs(emo_data_clean,
                       columns = time_distance,
                       aes(colour = Group, alpha = .25),
                       progress = FALSE,
                       lower = list(continuous = wrap("points")))
suppressWarnings(print(time_distance_pairs))

summary(emo_data_clean[time_distance])
   log10_area     log10_axis1      log10_axis2      log10_mdist       log10_rmv     
 Min.   :1.554   Min.   :0.7882   Min.   :0.2549   Min.   :0.3471   Min.   :0.7332  
 1st Qu.:2.162   1st Qu.:1.0217   1st Qu.:0.6127   1st Qu.:0.6091   1st Qu.:0.9386  
 Median :2.376   Median :1.1184   Median :0.7579   Median :0.7039   Median :1.0521  
 Mean   :2.394   Mean   :1.1288   Mean   :0.7676   Mean   :0.7180   Mean   :1.0622  
 3rd Qu.:2.589   3rd Qu.:1.2234   3rd Qu.:0.8983   3rd Qu.:0.8115   3rd Qu.:1.1478  
 Max.   :3.602   Max.   :1.6256   Max.   :1.5176   Max.   :1.2471   Max.   :1.9037  
   log10_rmsx        log10_rmsy    
 Min.   :-0.1296   Min.   :0.3979  
 1st Qu.: 0.2706   1st Qu.:0.6090  
 Median : 0.4163   Median :0.7092  
 Mean   : 0.4257   Mean   :0.7222  
 3rd Qu.: 0.5639   3rd Qu.:0.8150  
 Max.   : 1.2199   Max.   :1.1972  

1.2 Frequency parameters

options(width = 100)
frequency <- c('log10_MPFx', 'log10_MPFy', 'log10_PEAKx', 'log10_PEAKy', 'log10_F50x', 'log10_F50y', 'log10_F95x', 'log10_F95y')
frequency_pairs <- ggpairs(emo_data_clean,
                       columns = frequency,
                       aes(colour = Group, alpha = .25),
                       progress = FALSE,
                       lower = list(continuous = wrap("points")))
suppressWarnings(print(frequency_pairs))

summary(emo_data_clean[frequency])
   log10_MPFx       log10_MPFy      log10_PEAKx      log10_PEAKy       log10_F50x    
 Min.   :-3.370   Min.   :-3.360   Min.   :-3.913   Min.   :-3.913   Min.   :-3.612  
 1st Qu.:-2.917   1st Qu.:-2.904   1st Qu.:-3.913   1st Qu.:-3.913   1st Qu.:-3.612  
 Median :-2.777   Median :-2.760   Median :-3.913   Median :-3.612   Median :-3.214  
 Mean   :-2.765   Mean   :-2.779   Mean   :-3.728   Mean   :-3.551   Mean   :-3.157  
 3rd Qu.:-2.597   3rd Qu.:-2.650   3rd Qu.:-3.612   3rd Qu.:-3.311   3rd Qu.:-2.799  
 Max.   :-1.956   Max.   :-2.149   Max.   :-2.181   Max.   :-2.357   Max.   :-2.165  
   log10_F50y       log10_F95x       log10_F95y    
 Min.   :-3.612   Min.   :-2.913   Min.   :-2.872  
 1st Qu.:-3.214   1st Qu.:-2.357   1st Qu.:-2.422  
 Median :-3.010   Median :-2.241   Median :-2.241  
 Mean   :-3.033   Mean   :-2.233   Mean   :-2.260  
 3rd Qu.:-2.834   3rd Qu.:-2.114   3rd Qu.:-2.094  
 Max.   :-2.395   Max.   :-1.373   Max.   :-1.425  

1.3 Entropy

options(width = 100)
entropy <- c('forward_mov', 'log10_sampen_x', 'log10_sampen_y', 'sampen_resul_vect', 'sampen_phi_rad', 'sampen_delta_phi')
entropy_pairs <- ggpairs(emo_data_clean,
                       columns = entropy,
                       aes(colour = Group, alpha = .25),
                       progress = FALSE,
                       lower = list(continuous = wrap("points")))
suppressWarnings(print(entropy_pairs))

summary(emo_data_clean[entropy])
  forward_mov     log10_sampen_x    log10_sampen_y    sampen_resul_vect sampen_phi_rad  
 Min.   :0.2373   Min.   :-2.6345   Min.   :-2.3174   Min.   :0.01149   Min.   :0.4158  
 1st Qu.:0.4547   1st Qu.:-0.9939   1st Qu.:-1.2767   1st Qu.:1.64343   1st Qu.:0.9228  
 Median :0.5020   Median :-0.6552   Median :-1.0099   Median :1.98514   Median :1.0254  
 Mean   :0.4984   Mean   :-0.7296   Mean   :-1.0500   Mean   :1.95572   Mean   :1.0258  
 3rd Qu.:0.5444   3rd Qu.:-0.4229   3rd Qu.:-0.7829   3rd Qu.:2.27377   3rd Qu.:1.1292  
 Max.   :0.8000   Max.   : 0.1587   Max.   :-0.3093   Max.   :3.59382   Max.   :1.5488  
                                                      NA's   :14                        
 sampen_delta_phi
 Min.   :0.8149  
 1st Qu.:1.4124  
 Median :1.5605  
 Mean   :1.5459  
 3rd Qu.:1.6750  
 Max.   :2.1407  
                 

2 Classic Center of Pressure

60 seconds

2.1 Area (log10)

options(width = 100)
area_rep_anova <- aov_ez("ID", "log10_area", emo_data_clean, within = c("Task"), between = c("Group"))
Warning: Missing values for 1 ID(s), which were removed before analysis:
FOSA_210
Below the first few rows (in wide format) of the removed cases with missing data.
  Contrasts set to contr.sum for the following variables: Group
rep_anova_data <- area_rep_anova$data$long
xtabs(~ Task + Group, data = rep_anova_data)
            Group
Task         Parkinson Elder
  Unpleasant        48    47
  Neutral           48    47
  Pleasant          48    47
area_rain <- ggplot(rep_anova_data, aes(y = Task, x = log10_area, color = Group, fill = Group)) +
  stat_halfeye(
    trim   = FALSE,
    .width = 0,
    justification = -.15,
    alpha  = .4,
    point_colour = NA) +
  geom_point(size = 2, alpha = .4, position = position_jitter(width = 0, height = .05))
suppressWarnings(print(area_rain))

# area_group_rain <- ggplot(rep_anova_data, aes(y = fct_rev(Group), x = log10_area, color = Group, fill = Group)) +
#   ggtitle("Area") +
#   ylab("Group") +
#   stat_halfeye(
#     trim   = FALSE,
#     adjust = .75,
#     .width = 0,
#     justification = -.15,
#     alpha  = .4,
#     point_colour = NA) +
#   geom_boxplot(width = .15, alpha = .2, outlier.shape = NA) +
#   geom_point(size = 2, alpha = .4, position = position_jitter(width = 0, height = .05)) +
#   theme(legend.position='none')
# suppressWarnings(print(area_group_rain))
# area_task_rain <- ggplot(rep_anova_data, aes(y = Task, x = log10_area, color = Task, fill = Task)) +
#   ggtitle("Area") +
#   ylab("Task") +
#   stat_halfeye(
#     trim   = FALSE,
#     adjust = .75,
#     .width = 0,
#     justification = -.15,
#     alpha  = .4,
#     point_colour = NA) +
#   geom_boxplot(width = .15, alpha = .2, outlier.shape = NA) +
#   geom_point(size = 2, alpha = .4, position = position_jitter(width = 0, height = .05)) +
#   theme(legend.position='none')
# suppressWarnings(print(area_task_rain))
area_afex_plot <-
  afex_plot(
    area_rep_anova,
    x = "Task",
    trace = "Group",
    error = "between",
    error_arg = list(width = .15),
    dodge = -.5,
    mapping = c("color"),
    point_arg = list(size = 4)
  )
Warning: Panel(s) show a mixed within-between-design.
Error bars do not allow comparisons across all means.
Suppress error bars with: error = "none"
suppressWarnings(print(area_afex_plot))

nice(area_rep_anova)
Anova Table (Type 3 tests)

Response: log10_area
      Effect           df  MSE         F  ges p.value
1      Group        1, 93 0.23 23.38 *** .163   <.001
2       Task 1.98, 183.77 0.03 13.84 *** .033   <.001
3 Group:Task 1.98, 183.77 0.03    2.46 + .006    .089
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1

Sphericity correction method: GG 
a_posteriori(area_rep_anova)
$emmeans
 Group     emmean     SE df lower.CL upper.CL
 Parkinson   2.53 0.0402 93     2.45     2.61
 Elder       2.25 0.0407 93     2.17     2.34

Results are averaged over the levels of: Task 
Confidence level used: 0.95 

$contrasts
 contrast          estimate     SE df t.ratio p.value
 Parkinson - Elder    0.277 0.0572 93   4.835  <.0001

Results are averaged over the levels of: Task 

____________________________________________________________________________________________________
$emmeans
 Task       emmean     SE df lower.CL upper.CL
 Unpleasant   2.43 0.0336 93     2.37     2.50
 Neutral      2.31 0.0295 93     2.25     2.37
 Pleasant     2.43 0.0343 93     2.37     2.50

Results are averaged over the levels of: Group 
Confidence level used: 0.95 

$contrasts
 contrast              estimate     SE df t.ratio p.value
 Unpleasant - Neutral   0.12294 0.0281 93   4.373  0.0001
 Unpleasant - Pleasant  0.00125 0.0255 93   0.049  0.9987
 Neutral - Pleasant    -0.12169 0.0268 93  -4.539  <.0001

Results are averaged over the levels of: Group 
P value adjustment: tukey method for comparing a family of 3 estimates 

____________________________________________________________________________________________________

2.2 Ellipse Major Axis (log10)

options(width = 100)
log10_axis1_rep_anova <- aov_ez("ID", "log10_axis1", emo_data_clean, within = c("Task"), between = c("Group"))
Warning: Missing values for 1 ID(s), which were removed before analysis:
FOSA_210
Below the first few rows (in wide format) of the removed cases with missing data.
  Contrasts set to contr.sum for the following variables: Group
rep_anova_data        <- log10_axis1_rep_anova$data$long
xtabs(~ Task + Group, data = rep_anova_data)
            Group
Task         Parkinson Elder
  Unpleasant        48    47
  Neutral           48    47
  Pleasant          48    47
log10_axis1_rain <- ggplot(rep_anova_data, aes(y = Task, x = log10_axis1, color = Group, fill = Group)) +
  stat_halfeye(
    trim   = FALSE,
    .width = 0,
    justification = -.15,
    alpha  = .4,
    point_colour = NA) +
  geom_point(size = 2, alpha = .4, position = position_jitter(width = 0, height = .05))
suppressWarnings(print(log10_axis1_rain))

log10_axis1_afex_plot <-
  afex_plot(
    log10_axis1_rep_anova,
    x = "Task",
    trace = "Group",
    error = "between",
    error_arg = list(width = .15),
    dodge = -.5,
    mapping = c("color"),
    point_arg = list(size = 4)
  )
Warning: Panel(s) show a mixed within-between-design.
Error bars do not allow comparisons across all means.
Suppress error bars with: error = "none"
suppressWarnings(print(log10_axis1_afex_plot))

nice(log10_axis1_rep_anova)
Anova Table (Type 3 tests)

Response: log10_axis1
      Effect           df  MSE         F   ges p.value
1      Group        1, 93 0.05 24.26 ***  .168   <.001
2       Task 1.97, 183.51 0.01 22.44 ***  .052   <.001
3 Group:Task 1.97, 183.51 0.01      0.32 <.001    .727
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1

Sphericity correction method: GG 
a_posteriori(log10_axis1_rep_anova)
$emmeans
 Group     emmean     SE df lower.CL upper.CL
 Parkinson   1.19 0.0183 93     1.16     1.23
 Elder       1.06 0.0185 93     1.03     1.10

Results are averaged over the levels of: Task 
Confidence level used: 0.95 

$contrasts
 contrast          estimate    SE df t.ratio p.value
 Parkinson - Elder    0.128 0.026 93   4.925  <.0001

Results are averaged over the levels of: Task 

____________________________________________________________________________________________________
$emmeans
 Task       emmean     SE df lower.CL upper.CL
 Unpleasant   1.14 0.0144 93     1.11     1.17
 Neutral      1.08 0.0144 93     1.05     1.11
 Pleasant     1.16 0.0156 93     1.13     1.19

Results are averaged over the levels of: Group 
Confidence level used: 0.95 

$contrasts
 contrast              estimate     SE df t.ratio p.value
 Unpleasant - Neutral    0.0592 0.0119 93   4.982  <.0001
 Unpleasant - Pleasant  -0.0197 0.0119 93  -1.654  0.2286
 Neutral - Pleasant     -0.0789 0.0130 93  -6.091  <.0001

Results are averaged over the levels of: Group 
P value adjustment: tukey method for comparing a family of 3 estimates 

____________________________________________________________________________________________________

2.3 Ellipse Minor Axis (log10)

options(width = 100)
log10_axis2_rep_anova <- aov_ez("ID", "log10_axis2", emo_data_clean, within = c("Task"), between = c("Group"))
Warning: Missing values for 1 ID(s), which were removed before analysis:
FOSA_210
Below the first few rows (in wide format) of the removed cases with missing data.
  Contrasts set to contr.sum for the following variables: Group
rep_anova_data        <- log10_axis2_rep_anova$data$long
xtabs(~ Task + Group, data = rep_anova_data)
            Group
Task         Parkinson Elder
  Unpleasant        48    47
  Neutral           48    47
  Pleasant          48    47
log10_axis2_rain <- ggplot(rep_anova_data, aes(y = Task, x = log10_axis2, color = Group, fill = Group)) +
  stat_halfeye(
    trim   = FALSE,
    .width = 0,
    justification = -.15,
    alpha  = .4,
    point_colour = NA) +
  geom_point(size = 2, alpha = .4, position = position_jitter(width = 0, height = .05))
suppressWarnings(print(log10_axis2_rain))

log10_axis2_afex_plot <-
  afex_plot(
    log10_axis2_rep_anova,
    x = "Task",
    trace = "Group",
    error = "between",
    error_arg = list(width = .15),
    dodge = -.5,
    mapping = c("color"),
    point_arg = list(size = 4)
  )
Warning: Panel(s) show a mixed within-between-design.
Error bars do not allow comparisons across all means.
Suppress error bars with: error = "none"
suppressWarnings(print(log10_axis2_afex_plot))

nice(log10_axis2_rep_anova)
Anova Table (Type 3 tests)

Response: log10_axis2
      Effect           df  MSE         F  ges p.value
1      Group        1, 93 0.10 16.10 *** .112   <.001
2       Task 1.93, 179.72 0.02   5.54 ** .016    .005
3 Group:Task 1.93, 179.72 0.02    3.37 * .010    .038
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1

Sphericity correction method: GG 
a_posteriori(log10_axis2_rep_anova)
$emmeans
 Group     emmean     SE df lower.CL upper.CL
 Parkinson  0.842 0.0260 93    0.790    0.894
 Elder      0.694 0.0263 93    0.641    0.746

Results are averaged over the levels of: Task 
Confidence level used: 0.95 

$contrasts
 contrast          estimate    SE df t.ratio p.value
 Parkinson - Elder    0.148 0.037 93   4.012  0.0001

Results are averaged over the levels of: Task 

____________________________________________________________________________________________________
$emmeans
 Task       emmean     SE df lower.CL upper.CL
 Unpleasant  0.796 0.0226 93    0.751    0.841
 Neutral     0.732 0.0197 93    0.693    0.771
 Pleasant    0.775 0.0225 93    0.730    0.820

Results are averaged over the levels of: Group 
Confidence level used: 0.95 

$contrasts
 contrast              estimate     SE df t.ratio p.value
 Unpleasant - Neutral    0.0637 0.0212 93   3.000  0.0096
 Unpleasant - Pleasant   0.0210 0.0188 93   1.113  0.5087
 Neutral - Pleasant     -0.0428 0.0184 93  -2.331  0.0565

Results are averaged over the levels of: Group 
P value adjustment: tukey method for comparing a family of 3 estimates 

____________________________________________________________________________________________________
$emmeans
 Group     Task       emmean     SE df lower.CL upper.CL
 Parkinson Unpleasant  0.875 0.0319 93    0.812    0.939
 Elder     Unpleasant  0.716 0.0322 93    0.652    0.780
 Parkinson Neutral     0.779 0.0277 93    0.724    0.834
 Elder     Neutral     0.686 0.0280 93    0.630    0.741
 Parkinson Pleasant    0.871 0.0316 93    0.809    0.934
 Elder     Pleasant    0.679 0.0320 93    0.615    0.742

Confidence level used: 0.95 

$contrasts
 contrast                                  estimate     SE df t.ratio p.value
 Parkinson Unpleasant - Elder Unpleasant    0.15905 0.0453 93   3.511  0.0088
 Parkinson Unpleasant - Parkinson Neutral   0.09667 0.0299 93   3.234  0.0203
 Parkinson Unpleasant - Elder Neutral       0.18984 0.0424 93   4.476  0.0003
 Parkinson Unpleasant - Parkinson Pleasant  0.00407 0.0265 93   0.154  1.0000
 Parkinson Unpleasant - Elder Pleasant      0.19689 0.0451 93   4.362  0.0005
 Elder Unpleasant - Parkinson Neutral      -0.06238 0.0425 93  -1.469  0.6848
 Elder Unpleasant - Elder Neutral           0.03079 0.0302 93   1.019  0.9104
 Elder Unpleasant - Parkinson Pleasant     -0.15499 0.0451 93  -3.433  0.0112
 Elder Unpleasant - Elder Pleasant          0.03784 0.0268 93   1.414  0.7188
 Parkinson Neutral - Elder Neutral          0.09317 0.0394 93   2.366  0.1792
 Parkinson Neutral - Parkinson Pleasant    -0.09260 0.0258 93  -3.587  0.0069
 Parkinson Neutral - Elder Pleasant         0.10022 0.0423 93   2.369  0.1780
 Elder Neutral - Parkinson Pleasant        -0.18578 0.0422 93  -4.398  0.0004
 Elder Neutral - Elder Pleasant             0.00705 0.0261 93   0.270  0.9998
 Parkinson Pleasant - Elder Pleasant        0.19283 0.0450 93   4.287  0.0006

P value adjustment: tukey method for comparing a family of 6 estimates 

____________________________________________________________________________________________________

2.4 Mean Distance (log10)

options(width = 100)
mdist_rep_anova <- aov_ez("ID", "log10_mdist", emo_data_clean, within = c("Task"), between = c("Group"))
Warning: Missing values for 1 ID(s), which were removed before analysis:
FOSA_210
Below the first few rows (in wide format) of the removed cases with missing data.
  Contrasts set to contr.sum for the following variables: Group
rep_anova_data  <- mdist_rep_anova$data$long
xtabs(~ Task + Group, data = rep_anova_data)
            Group
Task         Parkinson Elder
  Unpleasant        48    47
  Neutral           48    47
  Pleasant          48    47
mdist_rain <- ggplot(rep_anova_data, aes(y = Task, x = log10_mdist, color = Group, fill = Group)) +
  stat_halfeye(
    trim   = FALSE,
    .width = 0,
    justification = -.15,
    alpha  = .4,
    point_colour = NA) +
  geom_point(size = 2, alpha = .4, position = position_jitter(width = 0, height = .05))
suppressWarnings(print(mdist_rain))

mdist_afex_plot <-
  afex_plot(
    mdist_rep_anova,
    x = "Task",
    trace = "Group",
    error = "between",
    error_arg = list(width = .15),
    dodge = -.5,
    mapping = c("color"),
    point_arg = list(size = 4)
  )
Warning: Panel(s) show a mixed within-between-design.
Error bars do not allow comparisons across all means.
Suppress error bars with: error = "none"
suppressWarnings(print(mdist_afex_plot))

nice(mdist_rep_anova)
Anova Table (Type 3 tests)

Response: log10_mdist
      Effect           df  MSE         F  ges p.value
1      Group        1, 93 0.05 26.54 *** .183   <.001
2       Task 1.91, 177.51 0.01 17.33 *** .039   <.001
3 Group:Task 1.91, 177.51 0.01      0.92 .002    .396
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1

Sphericity correction method: GG 
a_posteriori(mdist_rep_anova)
$emmeans
 Group     emmean     SE df lower.CL upper.CL
 Parkinson  0.785 0.0183 93    0.748    0.821
 Elder      0.650 0.0185 93    0.614    0.687

Results are averaged over the levels of: Task 
Confidence level used: 0.95 

$contrasts
 contrast          estimate     SE df t.ratio p.value
 Parkinson - Elder    0.134 0.0261 93   5.151  <.0001

Results are averaged over the levels of: Task 

____________________________________________________________________________________________________
$emmeans
 Task       emmean     SE df lower.CL upper.CL
 Unpleasant  0.730 0.0142 93    0.702    0.758
 Neutral     0.678 0.0144 93    0.649    0.706
 Pleasant    0.744 0.0156 93    0.713    0.775

Results are averaged over the levels of: Group 
Confidence level used: 0.95 

$contrasts
 contrast              estimate     SE df t.ratio p.value
 Unpleasant - Neutral    0.0521 0.0118 93   4.410  0.0001
 Unpleasant - Pleasant  -0.0143 0.0107 93  -1.334  0.3799
 Neutral - Pleasant     -0.0665 0.0130 93  -5.119  <.0001

Results are averaged over the levels of: Group 
P value adjustment: tukey method for comparing a family of 3 estimates 

____________________________________________________________________________________________________

2.5 Root Mean Velocity (log10)

options(width = 100)
rmv_rep_anova  <- aov_ez("ID", "log10_rmv", emo_data_clean, within = c("Task"), between = c("Group"))
Warning: Missing values for 1 ID(s), which were removed before analysis:
FOSA_210
Below the first few rows (in wide format) of the removed cases with missing data.
  Contrasts set to contr.sum for the following variables: Group
rep_anova_data <- rmv_rep_anova$data$long
xtabs(~ Task + Group, data = rep_anova_data)
            Group
Task         Parkinson Elder
  Unpleasant        48    47
  Neutral           48    47
  Pleasant          48    47
rmv_rain <- ggplot(rep_anova_data, aes(y = Task, x = log10_rmv, color = Group, fill = Group)) +
  stat_halfeye(
    trim   = FALSE,
    .width = 0,
    justification = -.15,
    alpha  = .4,
    point_colour = NA) +
  geom_point(size = 2, alpha = .4, position = position_jitter(width = 0, height = .05))
suppressWarnings(print(rmv_rain))

rmv_afex_plot <-
  afex_plot(
    rmv_rep_anova,
    x = "Task",
    trace = "Group",
    error = "between",
    error_arg = list(width = .15),
    dodge = -.5,
    mapping = c("color"),
    point_arg = list(size = 4)
  )
Warning: Panel(s) show a mixed within-between-design.
Error bars do not allow comparisons across all means.
Suppress error bars with: error = "none"
suppressWarnings(print(rmv_afex_plot))

nice(rmv_rep_anova)
Anova Table (Type 3 tests)

Response: log10_rmv
      Effect           df  MSE         F  ges p.value
1      Group        1, 93 0.07 18.40 *** .150   <.001
2       Task 2.00, 185.62 0.00 69.00 *** .074   <.001
3 Group:Task 2.00, 185.62 0.00      1.00 .001    .369
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1

Sphericity correction method: GG 
a_posteriori(rmv_rep_anova)
$emmeans
 Group     emmean     SE df lower.CL upper.CL
 Parkinson  1.126 0.0213 93    1.084     1.17
 Elder      0.996 0.0215 93    0.954     1.04

Results are averaged over the levels of: Task 
Confidence level used: 0.95 

$contrasts
 contrast          estimate     SE df t.ratio p.value
 Parkinson - Elder     0.13 0.0302 93   4.290  <.0001

Results are averaged over the levels of: Task 

____________________________________________________________________________________________________
$emmeans
 Task       emmean     SE df lower.CL upper.CL
 Unpleasant   1.08 0.0172 93    1.047     1.12
 Neutral      1.00 0.0143 93    0.972     1.03
 Pleasant     1.10 0.0164 93    1.069     1.13

Results are averaged over the levels of: Group 
Confidence level used: 0.95 

$contrasts
 contrast              estimate      SE df t.ratio p.value
 Unpleasant - Neutral    0.0808 0.00920 93   8.787  <.0001
 Unpleasant - Pleasant  -0.0200 0.00918 93  -2.179  0.0802
 Neutral - Pleasant     -0.1008 0.00888 93 -11.353  <.0001

Results are averaged over the levels of: Group 
P value adjustment: tukey method for comparing a family of 3 estimates 

____________________________________________________________________________________________________

2.6 Root Mean Square X (log10)

options(width = 100)
rmsx_rep_anova <- aov_ez("ID", "log10_rmsx", emo_data_clean, within = c("Task"), between = c("Group"))
Warning: Missing values for 1 ID(s), which were removed before analysis:
FOSA_210
Below the first few rows (in wide format) of the removed cases with missing data.
  Contrasts set to contr.sum for the following variables: Group
rep_anova_data <- rmsx_rep_anova$data$long
xtabs(~ Task + Group, data = rep_anova_data)
            Group
Task         Parkinson Elder
  Unpleasant        48    47
  Neutral           48    47
  Pleasant          48    47
rmsx_rain <- ggplot(rep_anova_data, aes(y = Task, x = log10_rmsx, color = Group, fill = Group)) +
  stat_halfeye(
    trim   = FALSE,
    .width = 0,
    justification = -.15,
    alpha  = .4,
    point_colour = NA) +
  geom_point(size = 2, alpha = .4, position = position_jitter(width = 0, height = .05))
suppressWarnings(print(rmsx_rain))

rmsx_afex_plot <-
  afex_plot(
    rmsx_rep_anova,
    x = "Task",
    trace = "Group",
    error = "between",
    error_arg = list(width = .15),
    dodge = -.5,
    mapping = c("color"),
    point_arg = list(size = 4)
  )
Warning: Panel(s) show a mixed within-between-design.
Error bars do not allow comparisons across all means.
Suppress error bars with: error = "none"
suppressWarnings(print(rmsx_afex_plot))

nice(rmsx_rep_anova)
Anova Table (Type 3 tests)

Response: log10_rmsx
      Effect           df  MSE         F  ges p.value
1      Group        1, 93 0.11 14.75 *** .102   <.001
2       Task 1.94, 180.77 0.02    4.06 * .012    .020
3 Group:Task 1.94, 180.77 0.02    3.36 * .010    .038
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1

Sphericity correction method: GG 
a_posteriori(rmsx_rep_anova)
$emmeans
 Group     emmean     SE df lower.CL upper.CL
 Parkinson  0.502 0.0279 93    0.447    0.558
 Elder      0.350 0.0282 93    0.294    0.406

Results are averaged over the levels of: Task 
Confidence level used: 0.95 

$contrasts
 contrast          estimate     SE df t.ratio p.value
 Parkinson - Elder    0.152 0.0396 93   3.841  0.0002

Results are averaged over the levels of: Task 

____________________________________________________________________________________________________
$emmeans
 Task       emmean     SE df lower.CL upper.CL
 Unpleasant  0.454 0.0245 93    0.405    0.502
 Neutral     0.393 0.0208 93    0.352    0.435
 Pleasant    0.431 0.0246 93    0.382    0.480

Results are averaged over the levels of: Group 
Confidence level used: 0.95 

$contrasts
 contrast              estimate     SE df t.ratio p.value
 Unpleasant - Neutral    0.0605 0.0232 93   2.610  0.0282
 Unpleasant - Pleasant   0.0228 0.0207 93   1.100  0.5167
 Neutral - Pleasant     -0.0377 0.0203 93  -1.858  0.1569

Results are averaged over the levels of: Group 
P value adjustment: tukey method for comparing a family of 3 estimates 

____________________________________________________________________________________________________
$emmeans
 Group     Task       emmean     SE df lower.CL upper.CL
 Parkinson Unpleasant  0.532 0.0344 93    0.464    0.601
 Elder     Unpleasant  0.375 0.0348 93    0.306    0.445
 Parkinson Neutral     0.441 0.0293 93    0.382    0.499
 Elder     Neutral     0.346 0.0296 93    0.287    0.405
 Parkinson Pleasant    0.534 0.0346 93    0.465    0.602
 Elder     Pleasant    0.328 0.0350 93    0.259    0.398

Confidence level used: 0.95 

$contrasts
 contrast                                  estimate     SE df t.ratio p.value
 Parkinson Unpleasant - Elder Unpleasant    0.15687 0.0490 93   3.203  0.0222
 Parkinson Unpleasant - Parkinson Neutral   0.09170 0.0326 93   2.811  0.0645
 Parkinson Unpleasant - Elder Neutral       0.18623 0.0454 93   4.100  0.0012
 Parkinson Unpleasant - Parkinson Pleasant -0.00145 0.0292 93  -0.050  1.0000
 Parkinson Unpleasant - Elder Pleasant      0.20391 0.0491 93   4.154  0.0010
 Elder Unpleasant - Parkinson Neutral      -0.06517 0.0455 93  -1.432  0.7073
 Elder Unpleasant - Elder Neutral           0.02936 0.0330 93   0.891  0.9479
 Elder Unpleasant - Parkinson Pleasant     -0.15832 0.0491 93  -3.225  0.0209
 Elder Unpleasant - Elder Pleasant          0.04704 0.0295 93   1.596  0.6031
 Parkinson Neutral - Elder Neutral          0.09453 0.0417 93   2.269  0.2172
 Parkinson Neutral - Parkinson Pleasant    -0.09314 0.0286 93  -3.260  0.0189
 Parkinson Neutral - Elder Pleasant         0.11222 0.0456 93   2.459  0.1472
 Elder Neutral - Parkinson Pleasant        -0.18768 0.0455 93  -4.120  0.0011
 Elder Neutral - Elder Pleasant             0.01769 0.0289 93   0.612  0.9899
 Parkinson Pleasant - Elder Pleasant        0.20536 0.0492 93   4.173  0.0009

P value adjustment: tukey method for comparing a family of 6 estimates 

____________________________________________________________________________________________________

2.7 Root Mean Square Y (log10)

options(width = 100)
rmsy_rep_anova <- aov_ez("ID", "log10_rmsy", emo_data_clean, within = c("Task"), between = c("Group"))
Warning: Missing values for 1 ID(s), which were removed before analysis:
FOSA_210
Below the first few rows (in wide format) of the removed cases with missing data.
  Contrasts set to contr.sum for the following variables: Group
rep_anova_data <- rmsy_rep_anova$data$long
xtabs(~ Task + Group, data = rep_anova_data)
            Group
Task         Parkinson Elder
  Unpleasant        48    47
  Neutral           48    47
  Pleasant          48    47
rmsy_rain <- ggplot(rep_anova_data, aes(y = Task, x = log10_rmsy, color = Group, fill = Group)) +
  stat_halfeye(
    trim   = FALSE,
    .width = 0,
    justification = -.15,
    alpha  = .4,
    point_colour = NA) +
  geom_point(size = 2, alpha = .4, position = position_jitter(width = 0, height = .05))
suppressWarnings(print(rmsy_rain))

rmsy_afex_plot <-
  afex_plot(
    rmsy_rep_anova,
    x = "Task",
    trace = "Group",
    error = "between",
    error_arg = list(width = .15),
    dodge = -.5,
    mapping = c("color"),
    point_arg = list(size = 4)
  )
Warning: Panel(s) show a mixed within-between-design.
Error bars do not allow comparisons across all means.
Suppress error bars with: error = "none"
suppressWarnings(print(rmsy_afex_plot))

nice(rmsy_rep_anova)
Anova Table (Type 3 tests)

Response: log10_rmsy
      Effect           df  MSE         F   ges p.value
1      Group        1, 93 0.04 25.56 ***  .174   <.001
2       Task 1.93, 179.36 0.01 25.00 ***  .059   <.001
3 Group:Task 1.93, 179.36 0.01      0.14 <.001    .860
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1

Sphericity correction method: GG 
a_posteriori(rmsy_rep_anova)
$emmeans
 Group     emmean     SE df lower.CL upper.CL
 Parkinson  0.785 0.0176 93    0.750    0.820
 Elder      0.658 0.0178 93    0.623    0.693

Results are averaged over the levels of: Task 
Confidence level used: 0.95 

$contrasts
 contrast          estimate    SE df t.ratio p.value
 Parkinson - Elder    0.127 0.025 93   5.056  <.0001

Results are averaged over the levels of: Task 

____________________________________________________________________________________________________
$emmeans
 Task       emmean     SE df lower.CL upper.CL
 Unpleasant  0.734 0.0132 93    0.708    0.761
 Neutral     0.674 0.0147 93    0.645    0.704
 Pleasant    0.755 0.0149 93    0.726    0.785

Results are averaged over the levels of: Group 
Confidence level used: 0.95 

$contrasts
 contrast              estimate     SE df t.ratio p.value
 Unpleasant - Neutral    0.0600 0.0116 93   5.169  <.0001
 Unpleasant - Pleasant  -0.0211 0.0111 93  -1.907  0.1425
 Neutral - Pleasant     -0.0811 0.0130 93  -6.259  <.0001

Results are averaged over the levels of: Group 
P value adjustment: tukey method for comparing a family of 3 estimates 

____________________________________________________________________________________________________

2.8 Mean Power Frequency X (log10)

options(width = 100)
MPFx_rep_anova <- aov_ez("ID", "log10_MPFx", emo_data_clean, within = c("Task"), between = c("Group"))
Warning: Missing values for 1 ID(s), which were removed before analysis:
FOSA_210
Below the first few rows (in wide format) of the removed cases with missing data.
  Contrasts set to contr.sum for the following variables: Group
rep_anova_data <- MPFx_rep_anova$data$long
xtabs(~ Task + Group, data = rep_anova_data)
            Group
Task         Parkinson Elder
  Unpleasant        48    47
  Neutral           48    47
  Pleasant          48    47
MPFx_rain <- ggplot(rep_anova_data, aes(y = Task, x = log10_MPFx, color = Group, fill = Group)) +
  stat_halfeye(
    trim   = FALSE,
    .width = 0,
    justification = -.15,
    alpha  = .4,
    point_colour = NA) +
  geom_point(size = 2, alpha = .4, position = position_jitter(width = 0, height = .05))
suppressWarnings(print(MPFx_rain))

MPFx_afex_plot <-
  afex_plot(
    MPFx_rep_anova,
    x = "Task",
    trace = "Group",
    error = "between",
    error_arg = list(width = .15),
    dodge = -.5,
    mapping = c("color"),
    point_arg = list(size = 4)
  )
Warning: Panel(s) show a mixed within-between-design.
Error bars do not allow comparisons across all means.
Suppress error bars with: error = "none"
suppressWarnings(print(MPFx_afex_plot))

nice(MPFx_rep_anova)
Anova Table (Type 3 tests)

Response: log10_MPFx
      Effect           df  MSE       F   ges p.value
1      Group        1, 93 0.10    0.14 <.001    .711
2       Task 1.98, 183.81 0.03 5.54 **  .020    .005
3 Group:Task 1.98, 183.81 0.03  2.61 +  .010    .077
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1

Sphericity correction method: GG 
a_posteriori(MPFx_rep_anova)
$emmeans
 Task       emmean     SE df lower.CL upper.CL
 Unpleasant  -2.75 0.0218 93    -2.80    -2.71
 Neutral     -2.81 0.0227 93    -2.85    -2.76
 Pleasant    -2.73 0.0262 93    -2.78    -2.68

Results are averaged over the levels of: Group 
Confidence level used: 0.95 

$contrasts
 contrast              estimate     SE df t.ratio p.value
 Unpleasant - Neutral    0.0558 0.0232 93   2.403  0.0475
 Unpleasant - Pleasant  -0.0223 0.0238 93  -0.937  0.6182
 Neutral - Pleasant     -0.0781 0.0254 93  -3.075  0.0077

Results are averaged over the levels of: Group 
P value adjustment: tukey method for comparing a family of 3 estimates 

____________________________________________________________________________________________________

2.9 Mean Power Frequency Y (log10)

options(width = 100)
MPFy_rep_anova <- aov_ez("ID", "log10_MPFy", emo_data_clean, within = c("Task"), between = c("Group"))
Warning: Missing values for 1 ID(s), which were removed before analysis:
FOSA_210
Below the first few rows (in wide format) of the removed cases with missing data.
  Contrasts set to contr.sum for the following variables: Group
rep_anova_data <- MPFy_rep_anova$data$long
xtabs(~ Task + Group, data = rep_anova_data)
            Group
Task         Parkinson Elder
  Unpleasant        48    47
  Neutral           48    47
  Pleasant          48    47
MPFy_rain <- ggplot(rep_anova_data, aes(y = Task, x = log10_MPFy, color = Group, fill = Group)) +
  stat_halfeye(
    trim   = FALSE,
    .width = 0,
    justification = -.15,
    alpha  = .4,
    point_colour = NA) +
  geom_point(size = 2, alpha = .4, position = position_jitter(width = 0, height = .05))
suppressWarnings(print(MPFy_rain))

MPFy_afex_plot <-
  afex_plot(
    MPFy_rep_anova,
    x = "Task",
    trace = "Group",
    error = "between",
    error_arg = list(width = .15),
    dodge = -.5,
    mapping = c("color"),
    point_arg = list(size = 4)
  )
Warning: Panel(s) show a mixed within-between-design.
Error bars do not allow comparisons across all means.
Suppress error bars with: error = "none"
suppressWarnings(print(MPFy_afex_plot))

nice(MPFy_rep_anova)
Anova Table (Type 3 tests)

Response: log10_MPFy
      Effect           df  MSE         F  ges p.value
1      Group        1, 93 0.09      1.18 .009    .280
2       Task 1.97, 183.00 0.02 10.46 *** .027   <.001
3 Group:Task 1.97, 183.00 0.02      0.87 .002    .418
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1

Sphericity correction method: GG 
a_posteriori(MPFy_rep_anova)
$emmeans
 Task       emmean     SE df lower.CL upper.CL
 Unpleasant  -2.77 0.0201 93    -2.81    -2.73
 Neutral     -2.83 0.0216 93    -2.87    -2.78
 Pleasant    -2.75 0.0210 93    -2.79    -2.71

Results are averaged over the levels of: Group 
Confidence level used: 0.95 

$contrasts
 contrast              estimate     SE df t.ratio p.value
 Unpleasant - Neutral    0.0612 0.0186 93   3.284  0.0041
 Unpleasant - Pleasant  -0.0168 0.0168 93  -1.002  0.5775
 Neutral - Pleasant     -0.0779 0.0184 93  -4.242  0.0002

Results are averaged over the levels of: Group 
P value adjustment: tukey method for comparing a family of 3 estimates 

____________________________________________________________________________________________________

2.10 Forward Movement

options(width = 100)
forward_mov_rep_anova <- aov_ez("ID", "forward_mov", emo_data_clean, within = c("Task"), between = c("Group"))
Warning: Missing values for 1 ID(s), which were removed before analysis:
FOSA_210
Below the first few rows (in wide format) of the removed cases with missing data.
  Contrasts set to contr.sum for the following variables: Group
rep_anova_data        <- forward_mov_rep_anova$data$long
xtabs(~ Task + Group, data = rep_anova_data)
            Group
Task         Parkinson Elder
  Unpleasant        48    47
  Neutral           48    47
  Pleasant          48    47
forward_mov_rain <- ggplot(rep_anova_data, aes(y = Task, x = forward_mov, color = Group, fill = Group)) +
  stat_halfeye(
    trim   = FALSE,
    .width = 0,
    justification = -.15,
    alpha  = .4,
    point_colour = NA) +
  geom_point(size = 2, alpha = .4, position = position_jitter(width = 0, height = .05))
suppressWarnings(print(forward_mov_rain))

forward_mov_afex_plot <-
  afex_plot(
    forward_mov_rep_anova,
    x = "Task",
    trace = "Group",
    error = "between",
    error_arg = list(width = .15),
    dodge = -.5,
    mapping = c("color"),
    point_arg = list(size = 4)
  )
Warning: Panel(s) show a mixed within-between-design.
Error bars do not allow comparisons across all means.
Suppress error bars with: error = "none"
suppressWarnings(print(forward_mov_afex_plot))

nice(forward_mov_rep_anova)
Anova Table (Type 3 tests)

Response: forward_mov
      Effect           df  MSE      F   ges p.value
1      Group        1, 93 0.01   0.01 <.001    .923
2       Task 1.96, 182.20 0.01   0.89  .006    .410
3 Group:Task 1.96, 182.20 0.01 2.60 +  .016    .078
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1

Sphericity correction method: GG 
a_posteriori(forward_mov_rep_anova)

3 Entropy and Center of Pressure

3.1 Sample Entropy X (log10)

options(width = 100)
log10_sampen_x_rep_anova <- aov_ez("ID", "log10_sampen_x", emo_data_clean, within = c("Task"), between = c("Group"))
Warning: Missing values for 1 ID(s), which were removed before analysis:
FOSA_210
Below the first few rows (in wide format) of the removed cases with missing data.
  Contrasts set to contr.sum for the following variables: Group
rep_anova_data           <- log10_sampen_x_rep_anova$data$long
xtabs(~ Task + Group, data = rep_anova_data)
            Group
Task         Parkinson Elder
  Unpleasant        48    47
  Neutral           48    47
  Pleasant          48    47
log10_sampen_x_rain <- ggplot(rep_anova_data, aes(y = Task, x = log10_sampen_x, color = Group, fill = Group)) +
  stat_halfeye(
    trim   = FALSE,
    .width = 0,
    justification = -.15,
    alpha  = .4,
    point_colour = NA) +
  geom_point(size = 2, alpha = .4, position = position_jitter(width = 0, height = .05))
suppressWarnings(print(log10_sampen_x_rain))

log10_sampen_x_afex_plot <-
  afex_plot(
    log10_sampen_x_rep_anova,
    x = "Task",
    trace = "Group",
    error = "between",
    error_arg = list(width = .15),
    dodge = -.5,
    mapping = c("color"),
    point_arg = list(size = 4)
  )
Warning: Panel(s) show a mixed within-between-design.
Error bars do not allow comparisons across all means.
Suppress error bars with: error = "none"
suppressWarnings(print(log10_sampen_x_afex_plot))

nice(log10_sampen_x_rep_anova)
Anova Table (Type 3 tests)

Response: log10_sampen_x
      Effect           df  MSE       F  ges p.value
1      Group        1, 93 0.40 7.04 ** .046    .009
2       Task 1.96, 182.73 0.11    0.63 .002    .531
3 Group:Task 1.96, 182.73 0.11  4.20 * .016    .017
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1

Sphericity correction method: GG 
a_posteriori(log10_sampen_x_rep_anova)
$emmeans
 Group     emmean     SE df lower.CL upper.CL
 Parkinson -0.829 0.0524 93   -0.933   -0.725
 Elder     -0.631 0.0529 93   -0.737   -0.526

Results are averaged over the levels of: Task 
Confidence level used: 0.95 

$contrasts
 contrast          estimate     SE df t.ratio p.value
 Parkinson - Elder   -0.198 0.0745 93  -2.653  0.0094

Results are averaged over the levels of: Task 

____________________________________________________________________________________________________
$emmeans
 Group     Task       emmean     SE df lower.CL upper.CL
 Parkinson Unpleasant -0.866 0.0651 93   -0.995   -0.736
 Elder     Unpleasant -0.657 0.0658 93   -0.788   -0.527
 Parkinson Neutral    -0.737 0.0603 93   -0.857   -0.617
 Elder     Neutral    -0.686 0.0610 93   -0.807   -0.565
 Parkinson Pleasant   -0.884 0.0710 93   -1.025   -0.743
 Elder     Pleasant   -0.551 0.0718 93   -0.694   -0.409

Confidence level used: 0.95 

$contrasts
 contrast                                  estimate     SE df t.ratio p.value
 Parkinson Unpleasant - Elder Unpleasant    -0.2083 0.0926 93  -2.251  0.2252
 Parkinson Unpleasant - Parkinson Neutral   -0.1286 0.0729 93  -1.763  0.4943
 Parkinson Unpleasant - Elder Neutral       -0.1801 0.0892 93  -2.019  0.3395
 Parkinson Unpleasant - Parkinson Pleasant   0.0185 0.0663 93   0.278  0.9998
 Parkinson Unpleasant - Elder Pleasant      -0.3145 0.0969 93  -3.246  0.0196
 Elder Unpleasant - Parkinson Neutral        0.0797 0.0893 93   0.893  0.9472
 Elder Unpleasant - Elder Neutral            0.0282 0.0737 93   0.383  0.9989
 Elder Unpleasant - Parkinson Pleasant       0.2268 0.0968 93   2.343  0.1879
 Elder Unpleasant - Elder Pleasant          -0.1062 0.0670 93  -1.585  0.6104
 Parkinson Neutral - Elder Neutral          -0.0515 0.0858 93  -0.601  0.9907
 Parkinson Neutral - Parkinson Pleasant      0.1470 0.0660 93   2.229  0.2347
 Parkinson Neutral - Elder Pleasant         -0.1860 0.0938 93  -1.984  0.3595
 Elder Neutral - Parkinson Pleasant          0.1986 0.0936 93   2.121  0.2855
 Elder Neutral - Elder Pleasant             -0.1344 0.0667 93  -2.017  0.3409
 Parkinson Pleasant - Elder Pleasant        -0.3330 0.1010 93  -3.298  0.0168

P value adjustment: tukey method for comparing a family of 6 estimates 

____________________________________________________________________________________________________

3.2 Sample Entropy Y (log10)

options(width = 100)
log10_sampen_y_rep_anova <- aov_ez("ID", "log10_sampen_y", emo_data_clean, within = c("Task"), between = c("Group"))
Warning: Missing values for 1 ID(s), which were removed before analysis:
FOSA_210
Below the first few rows (in wide format) of the removed cases with missing data.
  Contrasts set to contr.sum for the following variables: Group
rep_anova_data           <- log10_sampen_y_rep_anova$data$long
xtabs(~ Task + Group, data = rep_anova_data)
            Group
Task         Parkinson Elder
  Unpleasant        48    47
  Neutral           48    47
  Pleasant          48    47
log10_sampen_y_rain <- ggplot(rep_anova_data, aes(y = Task, x = log10_sampen_y, color = Group, fill = Group)) +
  stat_halfeye(
    trim   = FALSE,
    .width = 0,
    justification = -.15,
    alpha  = .4,
    point_colour = NA) +
  geom_point(size = 2, alpha = .4, position = position_jitter(width = 0, height = .05))
suppressWarnings(print(log10_sampen_y_rain))

log10_sampen_y_afex_plot <-
  afex_plot(
    log10_sampen_y_rep_anova,
    x = "Task",
    trace = "Group",
    error = "between",
    error_arg = list(width = .15),
    dodge = -.5,
    mapping = c("color"),
    point_arg = list(size = 4)
  )
Warning: Panel(s) show a mixed within-between-design.
Error bars do not allow comparisons across all means.
Suppress error bars with: error = "none"
suppressWarnings(print(log10_sampen_y_afex_plot))

nice(log10_sampen_y_rep_anova)
Anova Table (Type 3 tests)

Response: log10_sampen_y
      Effect           df  MSE         F  ges p.value
1      Group        1, 93 0.28 16.67 *** .117   <.001
2       Task 1.96, 182.24 0.05    4.18 * .012    .017
3 Group:Task 1.96, 182.24 0.05      0.36 .001    .697
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1

Sphericity correction method: GG 
a_posteriori(log10_sampen_y_rep_anova)
$emmeans
 Group     emmean     SE df lower.CL upper.CL
 Parkinson -1.177 0.0438 93    -1.26   -1.090
 Elder     -0.922 0.0443 93    -1.01   -0.834

Results are averaged over the levels of: Task 
Confidence level used: 0.95 

$contrasts
 contrast          estimate     SE df t.ratio p.value
 Parkinson - Elder   -0.254 0.0623 93  -4.083  0.0001

Results are averaged over the levels of: Task 

____________________________________________________________________________________________________
$emmeans
 Task       emmean     SE df lower.CL upper.CL
 Unpleasant -1.058 0.0322 93    -1.12   -0.994
 Neutral    -0.999 0.0376 93    -1.07   -0.924
 Pleasant   -1.091 0.0388 93    -1.17   -1.014

Results are averaged over the levels of: Group 
Confidence level used: 0.95 

$contrasts
 contrast              estimate     SE df t.ratio p.value
 Unpleasant - Neutral   -0.0595 0.0307 93  -1.940  0.1334
 Unpleasant - Pleasant   0.0326 0.0316 93   1.030  0.5600
 Neutral - Pleasant      0.0921 0.0345 93   2.669  0.0241

Results are averaged over the levels of: Group 
P value adjustment: tukey method for comparing a family of 3 estimates 

____________________________________________________________________________________________________

3.3 Angle Sample Entropy

options(width = 100)
sampen_phi_rad_rep_anova <- aov_ez("ID", "sampen_phi_rad", emo_data_clean, within = c("Task"), between = c("Group"))
Warning: Missing values for 1 ID(s), which were removed before analysis:
FOSA_210
Below the first few rows (in wide format) of the removed cases with missing data.
  Contrasts set to contr.sum for the following variables: Group
rep_anova_data           <- sampen_phi_rad_rep_anova$data$long
xtabs(~ Task + Group, data = rep_anova_data)
            Group
Task         Parkinson Elder
  Unpleasant        48    47
  Neutral           48    47
  Pleasant          48    47
sampen_phi_rad_rain <- ggplot(rep_anova_data, aes(y = Task, x = sampen_phi_rad, color = Group, fill = Group)) +
  stat_halfeye(
    trim   = FALSE,
    .width = 0,
    justification = -.15,
    alpha  = .4,
    point_colour = NA) +
  geom_point(size = 2, alpha = .4, position = position_jitter(width = 0, height = .05))
suppressWarnings(print(sampen_phi_rad_rain))

sampen_phi_rad_afex_plot <-
  afex_plot(
    sampen_phi_rad_rep_anova,
    x = "Task",
    trace = "Group",
    error = "between",
    error_arg = list(width = .15),
    dodge = -.5,
    mapping = c("color"),
    point_arg = list(size = 4)
  )
Warning: Panel(s) show a mixed within-between-design.
Error bars do not allow comparisons across all means.
Suppress error bars with: error = "none"
suppressWarnings(print(sampen_phi_rad_afex_plot))

nice(sampen_phi_rad_rep_anova)
Anova Table (Type 3 tests)

Response: sampen_phi_rad
      Effect           df  MSE      F   ges p.value
1      Group        1, 93 0.08   0.03 <.001    .862
2       Task 2.00, 185.59 0.01 4.26 *  .009    .016
3 Group:Task 2.00, 185.59 0.01   0.29 <.001    .747
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1

Sphericity correction method: GG 
a_posteriori(sampen_phi_rad_rep_anova)
$emmeans
 Task       emmean     SE df lower.CL upper.CL
 Unpleasant   1.01 0.0178 93    0.972     1.04
 Neutral      1.05 0.0190 93    1.012     1.09
 Pleasant     1.02 0.0185 93    0.985     1.06

Results are averaged over the levels of: Group 
Confidence level used: 0.95 

$contrasts
 contrast              estimate     SE df t.ratio p.value
 Unpleasant - Neutral   -0.0416 0.0146 93  -2.848  0.0148
 Unpleasant - Pleasant  -0.0140 0.0147 93  -0.949  0.6108
 Neutral - Pleasant      0.0276 0.0142 93   1.951  0.1304

Results are averaged over the levels of: Group 
P value adjustment: tukey method for comparing a family of 3 estimates 

____________________________________________________________________________________________________

3.4 Resultant Vector Sample Entropy

options(width = 100)
sampen_resul_vect_rep_anova <- aov_ez("ID", "sampen_resul_vect", emo_data_clean, within = c("Task"), between = c("Group"))
Warning: Missing values for 11 ID(s), which were removed before analysis:
EP_208, EP_229, EP_233, EP_234, FOSA_210, FOSA_225, FOSA_228, FOSA_232, FOSA_242, FOSA_243, ... [showing first 10 only]
Below the first few rows (in wide format) of the removed cases with missing data.
  Contrasts set to contr.sum for the following variables: Group
rep_anova_data              <- sampen_resul_vect_rep_anova$data$long
xtabs(~ Task + Group, data = rep_anova_data)
            Group
Task         Parkinson Elder
  Unpleasant        44    41
  Neutral           44    41
  Pleasant          44    41
sampen_resul_vect_rain <- ggplot(rep_anova_data, aes(y = Task, x = sampen_resul_vect, color = Group, fill = Group)) +
  stat_halfeye(
    trim   = FALSE,
    .width = 0,
    justification = -.15,
    alpha  = .4,
    point_colour = NA) +
  geom_point(size = 2, alpha = .4, position = position_jitter(width = 0, height = .05))
suppressWarnings(print(sampen_resul_vect_rain))

sampen_resul_vect_afex_plot <-
  afex_plot(
    sampen_resul_vect_rep_anova,
    x = "Task",
    trace = "Group",
    error = "between",
    error_arg = list(width = .15),
    dodge = -.5,
    mapping = c("color"),
    point_arg = list(size = 4)
  )
Warning: Panel(s) show a mixed within-between-design.
Error bars do not allow comparisons across all means.
Suppress error bars with: error = "none"
suppressWarnings(print(sampen_resul_vect_afex_plot))

nice(sampen_resul_vect_rep_anova)
Anova Table (Type 3 tests)

Response: sampen_resul_vect
      Effect           df  MSE         F   ges p.value
1      Group        1, 83 0.59    6.41 *  .049    .013
2       Task 1.89, 156.89 0.15 17.23 ***  .064   <.001
3 Group:Task 1.89, 156.89 0.15      0.17 <.001    .835
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1

Sphericity correction method: GG 
a_posteriori(sampen_resul_vect_rep_anova)
$emmeans
 Group     emmean     SE df lower.CL upper.CL
 Parkinson   1.83 0.0671 83     1.70     1.96
 Elder       2.07 0.0695 83     1.94     2.21

Results are averaged over the levels of: Task 
Confidence level used: 0.95 

$contrasts
 contrast          estimate     SE df t.ratio p.value
 Parkinson - Elder   -0.245 0.0966 83  -2.533  0.0132

Results are averaged over the levels of: Task 

____________________________________________________________________________________________________
$emmeans
 Task       emmean     SE df lower.CL upper.CL
 Unpleasant   1.82 0.0658 83     1.69     1.95
 Neutral      2.15 0.0547 83     2.04     2.26
 Pleasant     1.89 0.0559 83     1.78     2.00

Results are averaged over the levels of: Group 
Confidence level used: 0.95 

$contrasts
 contrast              estimate     SE df t.ratio p.value
 Unpleasant - Neutral   -0.3253 0.0652 83  -4.989  <.0001
 Unpleasant - Pleasant  -0.0644 0.0567 83  -1.135  0.4952
 Neutral - Pleasant      0.2610 0.0536 83   4.870  <.0001

Results are averaged over the levels of: Group 
P value adjustment: tukey method for comparing a family of 3 estimates 

____________________________________________________________________________________________________

3.5 Angle Change Sample Entropy

options(width = 100)
sampen_delta_phi_rep_anova <- aov_ez("ID", "sampen_delta_phi", emo_data_clean, within = c("Task"), between = c("Group"))
Warning: Missing values for 1 ID(s), which were removed before analysis:
FOSA_210
Below the first few rows (in wide format) of the removed cases with missing data.
  Contrasts set to contr.sum for the following variables: Group
rep_anova_data             <- sampen_delta_phi_rep_anova$data$long
xtabs(~ Task + Group, data = rep_anova_data)
            Group
Task         Parkinson Elder
  Unpleasant        48    47
  Neutral           48    47
  Pleasant          48    47
sampen_delta_phi_rain <- ggplot(rep_anova_data, aes(y = Task, x = sampen_delta_phi, color = Group, fill = Group)) +
  stat_halfeye(
    trim   = FALSE,
    .width = 0,
    justification = -.15,
    alpha  = .4,
    point_colour = NA) +
  geom_point(size = 2, alpha = .4, position = position_jitter(width = 0, height = .05))
suppressWarnings(print(sampen_delta_phi_rain))

sampen_delta_phi_afex_plot <-
  afex_plot(
    sampen_delta_phi_rep_anova,
    x = "Task",
    trace = "Group",
    error = "between",
    error_arg = list(width = .15),
    dodge = -.5,
    mapping = c("color"),
    point_arg = list(size = 4)
  )
Warning: Panel(s) show a mixed within-between-design.
Error bars do not allow comparisons across all means.
Suppress error bars with: error = "none"
suppressWarnings(print(sampen_delta_phi_afex_plot))

nice(sampen_delta_phi_rep_anova)
Anova Table (Type 3 tests)

Response: sampen_delta_phi
      Effect           df  MSE    F   ges p.value
1      Group        1, 93 0.10 2.11  .016    .150
2       Task 2.00, 185.69 0.02 0.12 <.001    .890
3 Group:Task 2.00, 185.69 0.02 0.51  .001    .602
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1

Sphericity correction method: GG 
a_posteriori(sampen_delta_phi_rep_anova)

4 Heart Activity

4.1 Heart Rate

options(width = 100)
heart_rate_rep_anova <- aov_ez("ID", "heart_rate", emo_data_clean, within = c("Task"), between = c("Group"))
Warning: Missing values for 12 ID(s), which were removed before analysis:
EP_202, EP_204, EP_209, EP_222, EP_231, EP_235, EP_241, EP_245, FOSA_205, FOSA_210, ... [showing first 10 only]
Below the first few rows (in wide format) of the removed cases with missing data.
  Contrasts set to contr.sum for the following variables: Group
rep_anova_data       <- heart_rate_rep_anova$data$long
xtabs(~ Task + Group, data = rep_anova_data)
            Group
Task         Parkinson Elder
  Unpleasant        40    44
  Neutral           40    44
  Pleasant          40    44
heart_rate_rain <- ggplot(rep_anova_data, aes(y = Task, x = heart_rate, color = Group, fill = Group)) +
  stat_halfeye(
    trim   = FALSE,
    .width = 0,
    justification = -.15,
    alpha  = .4,
    point_colour = NA) +
  geom_point(size = 2, alpha = .4, position = position_jitter(width = 0, height = .05))
suppressWarnings(print(heart_rate_rain))

heart_rate_afex_plot <-
  afex_plot(
    heart_rate_rep_anova,
    x = "Task",
    trace = "Group",
    error = "between",
    error_arg = list(width = .15),
    dodge = -.5,
    mapping = c("color"),
    point_arg = list(size = 4)
  )
Warning: Panel(s) show a mixed within-between-design.
Error bars do not allow comparisons across all means.
Suppress error bars with: error = "none"
suppressWarnings(print(heart_rate_afex_plot))

nice(heart_rate_rep_anova)
Anova Table (Type 3 tests)

Response: heart_rate
      Effect           df    MSE       F   ges p.value
1      Group        1, 82 422.26    0.75  .009    .390
2       Task 1.91, 156.97   7.71 5.50 **  .002    .006
3 Group:Task 1.91, 156.97   7.71    0.02 <.001    .976
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1

Sphericity correction method: GG 
a_posteriori(heart_rate_rep_anova)
$emmeans
 Task       emmean   SE df lower.CL upper.CL
 Unpleasant   75.5 1.31 82     72.9     78.1
 Neutral      76.0 1.31 82     73.4     78.6
 Pleasant     76.9 1.34 82     74.2     79.5

Results are averaged over the levels of: Group 
Confidence level used: 0.95 

$contrasts
 contrast              estimate    SE df t.ratio p.value
 Unpleasant - Neutral    -0.467 0.383 82  -1.220  0.4451
 Unpleasant - Pleasant   -1.369 0.459 82  -2.983  0.0104
 Neutral - Pleasant      -0.902 0.413 82  -2.181  0.0805

Results are averaged over the levels of: Group 
P value adjustment: tukey method for comparing a family of 3 estimates 

____________________________________________________________________________________________________

4.2 Heart Rate, NeuroKit2 method

options(width = 100)
heart_rate_nk2_rep_anova <- aov_ez("ID", "heart_rate_nk2", emo_data_clean, within = c("Task"), between = c("Group"))
Warning: Missing values for 1 ID(s), which were removed before analysis:
FOSA_210
Below the first few rows (in wide format) of the removed cases with missing data.
  Contrasts set to contr.sum for the following variables: Group
rep_anova_data       <- heart_rate_nk2_rep_anova$data$long
xtabs(~ Task + Group, data = rep_anova_data)
            Group
Task         Parkinson Elder
  Unpleasant        48    47
  Neutral           48    47
  Pleasant          48    47
heart_rate_nk2_rain <- ggplot(rep_anova_data, aes(y = Task, x = heart_rate_nk2, color = Group, fill = Group)) +
  stat_halfeye(
    trim   = FALSE,
    .width = 0,
    justification = -.15,
    alpha  = .4,
    point_colour = NA) +
  geom_point(size = 2, alpha = .4, position = position_jitter(width = 0, height = .05))
suppressWarnings(print(heart_rate_nk2_rain))

heart_rate_nk2_afex_plot <-
  afex_plot(
    heart_rate_nk2_rep_anova,
    x = "Task",
    trace = "Group",
    error = "between",
    error_arg = list(width = .15),
    dodge = -.5,
    mapping = c("color"),
    point_arg = list(size = 4)
  )
Warning: Panel(s) show a mixed within-between-design.
Error bars do not allow comparisons across all means.
Suppress error bars with: error = "none"
suppressWarnings(print(heart_rate_nk2_afex_plot))

nice(heart_rate_nk2_rep_anova)
Anova Table (Type 3 tests)

Response: heart_rate_nk2
      Effect           df    MSE    F   ges p.value
1      Group        1, 93 398.09 0.68  .007    .410
2       Task 1.68, 155.85  10.12 2.40  .001    .104
3 Group:Task 1.68, 155.85  10.12 0.73 <.001    .462
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1

Sphericity correction method: GG 
a_posteriori(heart_rate_nk2_rep_anova)

4.3 Root Mean Square of the Successive Differences (log10)

options(width = 100)
rMSSD_rep_anova <- aov_ez("ID", "log10_rMSSD", emo_data_clean, within = c("Task"), between = c("Group"))
Warning: Missing values for 12 ID(s), which were removed before analysis:
EP_202, EP_204, EP_209, EP_222, EP_231, EP_235, EP_241, EP_245, FOSA_205, FOSA_210, ... [showing first 10 only]
Below the first few rows (in wide format) of the removed cases with missing data.
  Contrasts set to contr.sum for the following variables: Group
rep_anova_data  <- rMSSD_rep_anova$data$long
xtabs(~ Task + Group, data = rep_anova_data)
            Group
Task         Parkinson Elder
  Unpleasant        40    44
  Neutral           40    44
  Pleasant          40    44
log10_rMSSD_rain <- ggplot(rep_anova_data, aes(y = Task, x = log10_rMSSD, color = Group, fill = Group)) +
  stat_halfeye(
    trim   = FALSE,
    .width = 0,
    justification = -.15,
    alpha  = .4,
    point_colour = NA) +
  geom_point(size = 2, alpha = .4, position = position_jitter(width = 0, height = .05))
suppressWarnings(print(log10_rMSSD_rain))

rMSSD_afex_plot <-
  afex_plot(
    rMSSD_rep_anova,
    x = "Task",
    trace = "Group",
    error = "between",
    error_arg = list(width = .15),
    dodge = -.5,
    mapping = c("color"),
    point_arg = list(size = 4)
  )
Warning: Panel(s) show a mixed within-between-design.
Error bars do not allow comparisons across all means.
Suppress error bars with: error = "none"
suppressWarnings(print(rMSSD_afex_plot))

nice(rMSSD_rep_anova)
Anova Table (Type 3 tests)

Response: log10_rMSSD
      Effect           df  MSE    F   ges p.value
1      Group        1, 82 0.44 0.02 <.001    .879
2       Task 1.94, 158.97 0.05 0.32 <.001    .721
3 Group:Task 1.94, 158.97 0.05 1.76  .004    .177
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1

Sphericity correction method: GG 
a_posteriori(rMSSD_rep_anova)

4.4 Root Mean Square of the Successive Differences (log10), NeuroKit2 method

options(width = 100)
log10_hrv_rmssd_nk2_rep_anova <- aov_ez("ID", "log10_hrv_rmssd_nk2", emo_data_clean, within = c("Task"), between = c("Group"))
Warning: Missing values for 1 ID(s), which were removed before analysis:
FOSA_210
Below the first few rows (in wide format) of the removed cases with missing data.
  Contrasts set to contr.sum for the following variables: Group
rep_anova_data  <- log10_hrv_rmssd_nk2_rep_anova$data$long
xtabs(~ Task + Group, data = rep_anova_data)
            Group
Task         Parkinson Elder
  Unpleasant        48    47
  Neutral           48    47
  Pleasant          48    47
log10_hrv_rmssd_nk2_rain <- ggplot(rep_anova_data, aes(y = Task, x = log10_hrv_rmssd_nk2, color = Group, fill = Group)) +
  stat_halfeye(
    trim   = FALSE,
    .width = 0,
    justification = -.15,
    alpha  = .4,
    point_colour = NA) +
  geom_point(size = 2, alpha = .4, position = position_jitter(width = 0, height = .05))
suppressWarnings(print(log10_hrv_rmssd_nk2_rain))

log10_hrv_rmssd_nk2_afex_plot <-
  afex_plot(
    log10_hrv_rmssd_nk2_rep_anova,
    x = "Task",
    trace = "Group",
    error = "between",
    error_arg = list(width = .15),
    dodge = -.5,
    mapping = c("color"),
    point_arg = list(size = 4)
  )
Warning: Panel(s) show a mixed within-between-design.
Error bars do not allow comparisons across all means.
Suppress error bars with: error = "none"
suppressWarnings(print(log10_hrv_rmssd_nk2_afex_plot))

nice(log10_hrv_rmssd_nk2_rep_anova)
Anova Table (Type 3 tests)

Response: log10_hrv_rmssd_nk2
      Effect           df  MSE    F   ges p.value
1      Group        1, 93 0.43 0.00 <.001    .963
2       Task 1.79, 166.13 0.07 1.23  .003    .291
3 Group:Task 1.79, 166.13 0.07 1.67  .004    .194
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1

Sphericity correction method: GG 
a_posteriori(log10_hrv_rmssd_nk2_rep_anova)

4.5 ECG-Derived Respiration

options(width = 100)
rsp_rate_rep_anova <- aov_ez("ID", "rsp_rate", emo_data_clean, within = c("Task"), between = c("Group"))
Warning: Missing values for 1 ID(s), which were removed before analysis:
FOSA_210
Below the first few rows (in wide format) of the removed cases with missing data.
  Contrasts set to contr.sum for the following variables: Group
rep_anova_data     <- rsp_rate_rep_anova$data$long
xtabs(~ Task + Group, data = rep_anova_data)
            Group
Task         Parkinson Elder
  Unpleasant        48    47
  Neutral           48    47
  Pleasant          48    47
rsp_rate_rain <- ggplot(rep_anova_data, aes(y = Task, x = rsp_rate, color = Group, fill = Group)) +
  stat_halfeye(
    trim   = FALSE,
    .width = 0,
    justification = -.15,
    alpha  = .4,
    point_colour = NA) +
  geom_point(size = 2, alpha = .4, position = position_jitter(width = 0, height = .05))
suppressWarnings(print(rsp_rate_rain))

rsp_rate_afex_plot <-
  afex_plot(
    rsp_rate_rep_anova,
    x = "Task",
    trace = "Group",
    error = "between",
    error_arg = list(width = .15),
    dodge = -.5,
    mapping = c("color"),
    point_arg = list(size = 4)
  )
Warning: Panel(s) show a mixed within-between-design.
Error bars do not allow comparisons across all means.
Suppress error bars with: error = "none"
suppressWarnings(print(rsp_rate_afex_plot))

nice(rsp_rate_rep_anova)
Anova Table (Type 3 tests)

Response: rsp_rate
      Effect           df   MSE      F  ges p.value
1      Group        1, 93 19.66   1.52 .011    .220
2       Task 1.99, 185.19  4.08   1.59 .005    .207
3 Group:Task 1.99, 185.19  4.08 2.55 + .008    .081
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1

Sphericity correction method: GG 
a_posteriori(rsp_rate_rep_anova)

4.6 Root mean square of successive differences of the breath-to-breath intervals

options(width = 100)
rrv_rmssd_rep_anova <- aov_ez("ID", "rrv_rmssd", emo_data_clean, within = c("Task"), between = c("Group"))
Warning: Missing values for 10 ID(s), which were removed before analysis:
EP_202, EP_209, EP_224, EP_231, EP_240, EP_247, FOSA_205, FOSA_210, FOSA_213, FOSA_229, ... [showing first 10 only]
Below the first few rows (in wide format) of the removed cases with missing data.
  Contrasts set to contr.sum for the following variables: Group
rep_anova_data      <- rrv_rmssd_rep_anova$data$long
xtabs(~ Task + Group, data = rep_anova_data)
            Group
Task         Parkinson Elder
  Unpleasant        42    44
  Neutral           42    44
  Pleasant          42    44
rrv_rmssd_rain <- ggplot(rep_anova_data, aes(y = Task, x = rrv_rmssd, color = Group, fill = Group)) +
  stat_halfeye(
    trim   = FALSE,
    .width = 0,
    justification = -.15,
    alpha  = .4,
    point_colour = NA) +
  geom_point(size = 2, alpha = .4, position = position_jitter(width = 0, height = .05))
suppressWarnings(print(rrv_rmssd_rain))

rrv_rmssd_afex_plot <-
  afex_plot(
    rrv_rmssd_rep_anova,
    x = "Task",
    trace = "Group",
    error = "between",
    error_arg = list(width = .15),
    dodge = -.5,
    mapping = c("color"),
    point_arg = list(size = 4)
  )
Warning: Panel(s) show a mixed within-between-design.
Error bars do not allow comparisons across all means.
Suppress error bars with: error = "none"
suppressWarnings(print(rrv_rmssd_afex_plot))

nice(rrv_rmssd_rep_anova)
Anova Table (Type 3 tests)

Response: rrv_rmssd
      Effect           df        MSE      F  ges p.value
1      Group        1, 84 1272648.32   1.21 .008    .275
2       Task 1.89, 158.93  530488.98   1.23 .006    .294
3 Group:Task 1.89, 158.93  530488.98 4.15 * .021    .019
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1

Sphericity correction method: GG 
a_posteriori(rrv_rmssd_rep_anova)
$emmeans
 Group     Task       emmean  SE df lower.CL upper.CL
 Parkinson Unpleasant   1668 136 84     1398     1938
 Elder     Unpleasant   2175 133 84     1911     2439
 Parkinson Neutral      1895 147 84     1602     2188
 Elder     Neutral      1810 144 84     1524     2096
 Parkinson Pleasant     1732 119 84     1496     1968
 Elder     Pleasant     1774 116 84     1544     2005

Confidence level used: 0.95 

$contrasts
 contrast                                  estimate  SE df t.ratio p.value
 Parkinson Unpleasant - Elder Unpleasant     -506.6 190 84  -2.671  0.0921
 Parkinson Unpleasant - Parkinson Neutral    -226.6 172 84  -1.319  0.7736
 Parkinson Unpleasant - Elder Neutral        -141.5 198 84  -0.715  0.9796
 Parkinson Unpleasant - Parkinson Pleasant    -63.9 142 84  -0.450  0.9976
 Parkinson Unpleasant - Elder Pleasant       -105.9 178 84  -0.593  0.9912
 Elder Unpleasant - Parkinson Neutral         280.1 198 84   1.413  0.7191
 Elder Unpleasant - Elder Neutral             365.1 168 84   2.176  0.2599
 Elder Unpleasant - Parkinson Pleasant        442.8 178 84   2.489  0.1393
 Elder Unpleasant - Elder Pleasant            400.7 139 84   2.892  0.0533
 Parkinson Neutral - Elder Neutral             85.0 206 84   0.413  0.9984
 Parkinson Neutral - Parkinson Pleasant       162.7 149 84   1.095  0.8822
 Parkinson Neutral - Elder Pleasant           120.7 187 84   0.644  0.9873
 Elder Neutral - Parkinson Pleasant            77.7 187 84   0.416  0.9983
 Elder Neutral - Elder Pleasant                35.6 145 84   0.245  0.9999
 Parkinson Pleasant - Elder Pleasant          -42.0 166 84  -0.253  0.9999

P value adjustment: tukey method for comparing a family of 6 estimates 

____________________________________________________________________________________________________

4.7 Respiratory Sinus Arrhythmia, RSA (Porges-Bohrer algorithm)

options(width = 100)
rsa_porges_rep_anova <- aov_ez("ID", "rsa_porges", emo_data_clean, within = c("Task"), between = c("Group"))
Warning: Missing values for 1 ID(s), which were removed before analysis:
FOSA_210
Below the first few rows (in wide format) of the removed cases with missing data.
  Contrasts set to contr.sum for the following variables: Group
rep_anova_data       <- rsa_porges_rep_anova$data$long
xtabs(~ Task + Group, data = rep_anova_data)
            Group
Task         Parkinson Elder
  Unpleasant        48    47
  Neutral           48    47
  Pleasant          48    47
rsa_porges_rain <- ggplot(rep_anova_data, aes(y = Task, x = rsa_porges, color = Group, fill = Group)) +
  stat_halfeye(
    trim   = FALSE,
    .width = 0,
    justification = -.15,
    alpha  = .4,
    point_colour = NA) +
  geom_point(size = 2, alpha = .4, position = position_jitter(width = 0, height = .05))
suppressWarnings(print(rsa_porges_rain))

rsa_porges_afex_plot <-
  afex_plot(
    rsa_porges_rep_anova,
    x = "Task",
    trace = "Group",
    error = "between",
    error_arg = list(width = .15),
    dodge = -.5,
    mapping = c("color"),
    point_arg = list(size = 4)
  )
Warning: Panel(s) show a mixed within-between-design.
Error bars do not allow comparisons across all means.
Suppress error bars with: error = "none"
suppressWarnings(print(rsa_porges_afex_plot))

nice(rsa_porges_rep_anova)
Anova Table (Type 3 tests)

Response: rsa_porges
      Effect           df  MSE      F  ges p.value
1      Group        1, 93 6.88   0.39 .003    .533
2       Task 1.95, 181.70 0.97   1.78 .004    .172
3 Group:Task 1.95, 181.70 0.97 3.66 * .008    .029
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1

Sphericity correction method: GG 
a_posteriori(rsa_porges_rep_anova)
$emmeans
 Group     Task       emmean    SE df lower.CL upper.CL
 Parkinson Unpleasant  -7.50 0.246 93    -7.99    -7.01
 Elder     Unpleasant  -7.57 0.249 93    -8.06    -7.07
 Parkinson Neutral     -8.12 0.229 93    -8.57    -7.66
 Elder     Neutral     -7.48 0.231 93    -7.94    -7.03
 Parkinson Pleasant    -7.67 0.264 93    -8.19    -7.14
 Elder     Pleasant    -7.65 0.267 93    -8.18    -7.12

Confidence level used: 0.95 

$contrasts
 contrast                                  estimate    SE df t.ratio p.value
 Parkinson Unpleasant - Elder Unpleasant     0.0627 0.350 93   0.179  1.0000
 Parkinson Unpleasant - Parkinson Neutral    0.6135 0.183 93   3.349  0.0145
 Parkinson Unpleasant - Elder Neutral       -0.0190 0.338 93  -0.056  1.0000
 Parkinson Unpleasant - Parkinson Pleasant   0.1638 0.209 93   0.783  0.9698
 Parkinson Unpleasant - Elder Pleasant       0.1505 0.363 93   0.415  0.9984
 Elder Unpleasant - Parkinson Neutral        0.5508 0.338 93   1.630  0.5813
 Elder Unpleasant - Elder Neutral           -0.0817 0.185 93  -0.441  0.9978
 Elder Unpleasant - Parkinson Pleasant       0.1011 0.363 93   0.279  0.9998
 Elder Unpleasant - Elder Pleasant           0.0878 0.212 93   0.415  0.9984
 Parkinson Neutral - Elder Neutral          -0.6325 0.325 93  -1.945  0.3818
 Parkinson Neutral - Parkinson Pleasant     -0.4497 0.201 93  -2.236  0.2317
 Parkinson Neutral - Elder Pleasant         -0.4630 0.351 93  -1.317  0.7747
 Elder Neutral - Parkinson Pleasant          0.1828 0.351 93   0.521  0.9952
 Elder Neutral - Elder Pleasant              0.1695 0.203 93   0.834  0.9605
 Parkinson Pleasant - Elder Pleasant        -0.0133 0.375 93  -0.035  1.0000

P value adjustment: tukey method for comparing a family of 6 estimates 

____________________________________________________________________________________________________

5 Electrodermal Activity

Resultados muuuuuy tentativos por la calidad errática de los registros

5.1 Mean Phasic Component (log10)

options(width = 100)
log10_ave_phasic_eda_rep_anova = aov_ez("ID", "log10_ave_phasic_eda", emo_data_clean, within = c("Task"), between = c("Group"))
Warning: Missing values for 17 ID(s), which were removed before analysis:
EP_202, EP_204, EP_205, EP_207, EP_208, EP_209, EP_217, EP_219, EP_221, EP_223, ... [showing first 10 only]
Below the first few rows (in wide format) of the removed cases with missing data.
  Contrasts set to contr.sum for the following variables: Group
rep_anova_data       <- log10_ave_phasic_eda_rep_anova$data$long
xtabs(~ Task + Group, data = rep_anova_data)
            Group
Task         Parkinson Elder
  Unpleasant        32    47
  Neutral           32    47
  Pleasant          32    47
log10_ave_phasic_eda_rain <- ggplot(rep_anova_data, aes(y = Task, x = log10_ave_phasic_eda, color = Group, fill = Group)) +
  stat_halfeye(
    trim   = FALSE,
    .width = 0,
    justification = -.15,
    alpha  = .4,
    point_colour = NA) +
  geom_point(size = 2, alpha = .4, position = position_jitter(width = 0, height = .05))
suppressWarnings(print(log10_ave_phasic_eda_rain))

log10_ave_phasic_eda_afex_plot <-
  afex_plot(
    log10_ave_phasic_eda_rep_anova,
    x = "Task",
    trace = "Group",
    error = "between",
    error_arg = list(width = .15),
    dodge = -.5,
    mapping = c("color"),
    point_arg = list(size = 4)
  )
Warning: Panel(s) show a mixed within-between-design.
Error bars do not allow comparisons across all means.
Suppress error bars with: error = "none"
suppressWarnings(print(log10_ave_phasic_eda_afex_plot))

nice(log10_ave_phasic_eda_rep_anova)
Anova Table (Type 3 tests)

Response: log10_ave_phasic_eda
      Effect           df  MSE         F   ges p.value
1      Group        1, 77 1.21      0.00 <.001    .959
2       Task 1.97, 151.88 0.12 47.26 ***  .089   <.001
3 Group:Task 1.97, 151.88 0.12      1.46  .003    .235
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1

Sphericity correction method: GG 
a_posteriori(log10_ave_phasic_eda_rep_anova)
$emmeans
 Task       emmean     SE df lower.CL upper.CL
 Unpleasant -0.662 0.0662 77   -0.794   -0.531
 Neutral    -1.196 0.0835 77   -1.363   -1.030
 Pleasant   -0.921 0.0867 77   -1.094   -0.749

Results are averaged over the levels of: Group 
Confidence level used: 0.95 

$contrasts
 contrast              estimate     SE df t.ratio p.value
 Unpleasant - Neutral     0.534 0.0543 77   9.837  <.0001
 Unpleasant - Pleasant    0.259 0.0579 77   4.466  0.0001
 Neutral - Pleasant      -0.275 0.0524 77  -5.248  <.0001

Results are averaged over the levels of: Group 
P value adjustment: tukey method for comparing a family of 3 estimates 

____________________________________________________________________________________________________

5.2 Number of SCR Peaks (log10)

options(width = 100)
log10_scr_peaks_number_rep_anova <- aov_ez("ID", "log10_scr_peaks_number", emo_data_clean, within = c("Task"), between = c("Group"))
Warning: Missing values for 1 ID(s), which were removed before analysis:
FOSA_210
Below the first few rows (in wide format) of the removed cases with missing data.
  Contrasts set to contr.sum for the following variables: Group
rep_anova_data                   <- log10_scr_peaks_number_rep_anova$data$long
xtabs(~ Task + Group, data = rep_anova_data)
            Group
Task         Parkinson Elder
  Unpleasant        48    47
  Neutral           48    47
  Pleasant          48    47
log10_scr_peaks_number_rain <- ggplot(rep_anova_data, aes(y = Task, x = log10_scr_peaks_number, color = Group, fill = Group)) +
  stat_halfeye(
    trim   = FALSE,
    .width = 0,
    justification = -.15,
    alpha  = .4,
    point_colour = NA) +
  geom_point(size = 2, alpha = .4, position = position_jitter(width = 0, height = .05))
suppressWarnings(print(log10_scr_peaks_number_rain))

log10_scr_peaks_number_afex_plot <-
  afex_plot(
    log10_scr_peaks_number_rep_anova,
    x = "Task",
    trace = "Group",
    error = "between",
    error_arg = list(width = .15),
    dodge = -.5,
    mapping = c("color"),
    point_arg = list(size = 4)
  )
Warning: Panel(s) show a mixed within-between-design.
Error bars do not allow comparisons across all means.
Suppress error bars with: error = "none"
suppressWarnings(print(log10_scr_peaks_number_afex_plot))

nice(log10_scr_peaks_number_rep_anova)
Anova Table (Type 3 tests)

Response: log10_scr_peaks_number
      Effect           df  MSE       F  ges p.value
1      Group        1, 93 0.19 9.89 ** .068    .002
2       Task 1.88, 174.62 0.04  2.94 + .010    .059
3 Group:Task 1.88, 174.62 0.04    1.08 .004    .337
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1

Sphericity correction method: GG 
a_posteriori(log10_scr_peaks_number_rep_anova)
$emmeans
 Group     emmean     SE df lower.CL upper.CL
 Parkinson  1.029 0.0361 93    0.957     1.10
 Elder      0.868 0.0364 93    0.795     0.94

Results are averaged over the levels of: Task 
Confidence level used: 0.95 

$contrasts
 contrast          estimate     SE df t.ratio p.value
 Parkinson - Elder    0.161 0.0513 93   3.144  0.0022

Results are averaged over the levels of: Task 

____________________________________________________________________________________________________

5.3 Mean SCR Amplitude (log10)

options(width = 100)
log10_scr_mean_amplitude_rep_anova <- aov_ez("ID", "log10_scr_mean_amplitude", emo_data_clean, within = c("Task"), between = c("Group"))
Warning: Missing values for 2 ID(s), which were removed before analysis:
FOSA_210, FOSA_213
Below the first few rows (in wide format) of the removed cases with missing data.
  Contrasts set to contr.sum for the following variables: Group
rep_anova_data                     <- log10_scr_mean_amplitude_rep_anova$data$long
xtabs(~ Task + Group, data = rep_anova_data)
            Group
Task         Parkinson Elder
  Unpleasant        48    46
  Neutral           48    46
  Pleasant          48    46
log10_scr_mean_amplitude_rain <- ggplot(rep_anova_data, aes(y = Task, x = log10_scr_mean_amplitude, color = Group, fill = Group)) +
  stat_halfeye(
    trim   = FALSE,
    .width = 0,
    justification = -.15,
    alpha  = .4,
    point_colour = NA) +
  geom_point(size = 2, alpha = .4, position = position_jitter(width = 0, height = .05))
suppressWarnings(print(log10_scr_mean_amplitude_rain))

log10_scr_mean_amplitude_afex_plot <-
  afex_plot(
    log10_scr_mean_amplitude_rep_anova,
    x = "Task",
    trace = "Group",
    error = "between",
    error_arg = list(width = .15),
    dodge = -.5,
    mapping = c("color"),
    point_arg = list(size = 4)
  )
Warning: Panel(s) show a mixed within-between-design.
Error bars do not allow comparisons across all means.
Suppress error bars with: error = "none"
suppressWarnings(print(log10_scr_mean_amplitude_afex_plot))

nice(log10_scr_mean_amplitude_rep_anova)
Anova Table (Type 3 tests)

Response: log10_scr_mean_amplitude
      Effect           df  MSE         F   ges p.value
1      Group        1, 92 1.44      0.48  .004    .491
2       Task 1.74, 160.43 0.27 14.04 ***  .036   <.001
3 Group:Task 1.74, 160.43 0.27      0.35 <.001    .672
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1

Sphericity correction method: GG 
a_posteriori(log10_scr_mean_amplitude_rep_anova)
$emmeans
 Task       emmean     SE df lower.CL upper.CL
 Unpleasant  -4.31 0.0745 92    -4.45    -4.16
 Neutral     -4.68 0.0884 92    -4.85    -4.50
 Pleasant    -4.49 0.0831 92    -4.66    -4.33

Results are averaged over the levels of: Group 
Confidence level used: 0.95 

$contrasts
 contrast              estimate     SE df t.ratio p.value
 Unpleasant - Neutral     0.372 0.0733 92   5.075  <.0001
 Unpleasant - Pleasant    0.187 0.0558 92   3.351  0.0033
 Neutral - Pleasant      -0.185 0.0793 92  -2.331  0.0564

Results are averaged over the levels of: Group 
P value adjustment: tukey method for comparing a family of 3 estimates 

____________________________________________________________________________________________________
LS0tCnRpdGxlOiAiUG9zdHVyYWwgU3RhYmlsaXR5IGFuZCBFbW90aW9ucyIKYXV0aG9yOiAiQWx2YXJvIFJpdmVyYS1SZWkiCmRhdGU6ICJgciBmb3JtYXQoU3lzLnRpbWUoKSwgJyVkICVCLCAlWScpYCIKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2s6CiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUKICAgIGhpZ2hsaWdodDogdGFuZ28KICAgIG51bWJlcl9zZWN0aW9uczogeWVzCiAgICB0aGVtZTogY2VydWxlYW4KICAgIHRvYzogeWVzCiAgICB0b2NfZmxvYXQ6CiAgICAgIGNvbGxhcHNlZDogbm8KICAgICAgc21vb3RoX3Njcm9sbDogbm8KICBwZGZfZG9jdW1lbnQ6CiAgICB0b2M6IHllcwpzdWJ0aXRsZTogUGFya2luc29uICYgRWxkZXIgZ3JvdXBzCi0tLQoKYGBge3IgQ2xlYW4gYW5kIExvYWQgTGlicmFyaWVzfQpjYXQoIlwwMTQiKSAgICAgIyBjbGVhbiB0ZXJtaW5hbApybShsaXN0ID0gbHMoKSkgIyBjbGVhbiB3b3Jrc3BhY2UKdHJ5KGRldi5vZmYoKSwgc2lsZW50ID0gVFJVRSkgIyBjbG9zZSBhbGwgcGxvdHMKbGlicmFyeShhZmV4KQpsaWJyYXJ5KGVtbWVhbnMpCmxpYnJhcnkoZ2dwbG90MikKbGlicmFyeShnZ3JpZGdlcykKbGlicmFyeShnZ2Rpc3QpCmxpYnJhcnkoZHBseXIpCmxpYnJhcnkocmVzaGFwZTIpCmxpYnJhcnkoR0dhbGx5KQpsaWJyYXJ5KGZvcmNhdHMpCmBgYAoKYGBge3IgU2V0IERlZmF1bHRzfQp0aGVtZV9zZXQoCiAgdGhlbWVfbWluaW1hbCgpCikKYV9wb3N0ZXJpb3JpIDwtIGZ1bmN0aW9uKGFmZXhfYW92LCBzaWdfbGV2ZWwgPSAuMDUpIHsKICBmYWN0b3JzICA8LSBhcy5saXN0KHJvd25hbWVzKGFmZXhfYW92JGFub3ZhX3RhYmxlKSkKICBmb3IgKGogaW4gMTpsZW5ndGgoZmFjdG9ycykpIHsKICAgIGlmIChncmVwbCgiOiIsIGZhY3RvcnNbW2pdXSkpIHsKICAgICAgZmFjdG9yc1tbal1dIDwtIHVubGlzdChzdHJzcGxpdChmYWN0b3JzW1tqXV0sICI6IikpCiAgICB9CiAgfQogIHBfdmFsdWVzIDwtIGFmZXhfYW92JGFub3ZhX3RhYmxlJGBQcig+RilgCiAgZm9yIChpIGluIDE6bGVuZ3RoKHBfdmFsdWVzKSkgewogICAgaWYgKHBfdmFsdWVzW2ldIDw9IHNpZ19sZXZlbCkgewogICAgICBwcmludChlbW1lYW5zKGFmZXhfYW92LCBmYWN0b3JzW1tpXV0sIGNvbnRyID0gInBhaXJ3aXNlIikpCiAgICAgIGNhdChyZXAoIl8iLCAxMDApLCAnXG4nLCBzZXAgPSAiIikKICAgIH0KICB9Cn0KYGBgCgpgYGB7ciBMb2FkIERhdGF9Cm1hc3Rlcl9kaXIgICAgIDwtICd+L0luc3luYy9PbmVEcml2ZV9zaGFyZWQvRm9uZGVjeXRfRW1vY2lvbmVzX0VzdGFiaWxvbWV0cmlhJwpkYXRhX2RpciAgICAgICA8LSBwYXN0ZShtYXN0ZXJfZGlyLCAnZGF0YScsICBzZXAgPSAnLycpCmVtb19kYXRhX25hbWUgIDwtIHBhc3RlKGRhdGFfZGlyLCAnZW1vX2RhdGFfY2xlYW4uY3N2Jywgc2VwPScvJykKZW1vX2RhdGFfY2xlYW4gPC0gcmVhZC5jc3YoZW1vX2RhdGFfbmFtZSwgaGVhZGVyID0gVFJVRSkKZW1vX2RhdGFfY2xlYW4gPC0gZW1vX2RhdGFfY2xlYW5bKGVtb19kYXRhX2NsZWFuJEdyb3VwID09ICdFbGRlcicgfCBlbW9fZGF0YV9jbGVhbiRHcm91cCA9PSAnUGFya2luc29uJyksIF0KZW1vX2RhdGFfY2xlYW4kR3JvdXAgICAgPC0gZmFjdG9yKGVtb19kYXRhX2NsZWFuJEdyb3VwLCBsZXZlbHMgPSBjKCJQYXJraW5zb24iLCAiRWxkZXIiKSkKZW1vX2RhdGFfY2xlYW4kVGFzayA8LSBmYWN0b3IoZW1vX2RhdGFfY2xlYW4kVGFzaywgbGV2ZWxzID0gYygiVW5wbGVhc2FudCIsICJOZXV0cmFsIiwgIlBsZWFzYW50IikpCmVtb19kYXRhX2NsZWFuJEVtb3Rpb24gIDwtIGZhY3RvcihlbW9fZGF0YV9jbGVhbiRFbW90aW9uKQplbW9fZGF0YV9jbGVhbiRJRCAgICAgICA8LSBmYWN0b3IoZW1vX2RhdGFfY2xlYW4kSUQpCmVtb19kYXRhX2NsZWFuJG51bV9JRCAgIDwtIGZhY3RvcihlbW9fZGF0YV9jbGVhbiRudW1fSUQpCmVtb19kYXRhX2NsZWFuJGxvZzEwX2FyZWEgIDwtIGxvZzEwKGVtb19kYXRhX2NsZWFuJGFyZWEpCmVtb19kYXRhX2NsZWFuJGxvZzEwX2F4aXMxIDwtIGxvZzEwKGVtb19kYXRhX2NsZWFuJGF4aXMxKQplbW9fZGF0YV9jbGVhbiRsb2cxMF9heGlzMiA8LSBsb2cxMChlbW9fZGF0YV9jbGVhbiRheGlzMikKZW1vX2RhdGFfY2xlYW4kbG9nMTBfbWRpc3QgPC0gbG9nMTAoZW1vX2RhdGFfY2xlYW4kbWRpc3QpCmVtb19kYXRhX2NsZWFuJGxvZzEwX3JtdiAgIDwtIGxvZzEwKGVtb19kYXRhX2NsZWFuJHJtdikKZW1vX2RhdGFfY2xlYW4kbG9nMTBfcm1zeCAgPC0gbG9nMTAoZW1vX2RhdGFfY2xlYW4kcm1zeCkKZW1vX2RhdGFfY2xlYW4kbG9nMTBfcm1zeSAgPC0gbG9nMTAoZW1vX2RhdGFfY2xlYW4kcm1zeSkKZW1vX2RhdGFfY2xlYW4kbG9nMTBfTVBGeCAgPC0gbG9nMTAoZW1vX2RhdGFfY2xlYW4kTVBGeCkKZW1vX2RhdGFfY2xlYW4kbG9nMTBfTVBGeSAgPC0gbG9nMTAoZW1vX2RhdGFfY2xlYW4kTVBGeSkKZW1vX2RhdGFfY2xlYW4kbG9nMTBfUEVBS3ggPC0gbG9nMTAoZW1vX2RhdGFfY2xlYW4kUEVBS3gpCmVtb19kYXRhX2NsZWFuJGxvZzEwX1BFQUt5IDwtIGxvZzEwKGVtb19kYXRhX2NsZWFuJFBFQUt5KQplbW9fZGF0YV9jbGVhbiRsb2cxMF9GNTB4ICA8LSBsb2cxMChlbW9fZGF0YV9jbGVhbiRGNTB4KQplbW9fZGF0YV9jbGVhbiRsb2cxMF9GNTB5ICA8LSBsb2cxMChlbW9fZGF0YV9jbGVhbiRGNTB5KQplbW9fZGF0YV9jbGVhbiRsb2cxMF9GOTV4ICA8LSBsb2cxMChlbW9fZGF0YV9jbGVhbiRGOTV4KQplbW9fZGF0YV9jbGVhbiRsb2cxMF9GOTV5ICA8LSBsb2cxMChlbW9fZGF0YV9jbGVhbiRGOTV5KQplbW9fZGF0YV9jbGVhbiRsb2cxMF9zYW1wZW5feCA8LSBsb2cxMChlbW9fZGF0YV9jbGVhbiRzYW1wZW5feCkKZW1vX2RhdGFfY2xlYW4kbG9nMTBfc2FtcGVuX3kgPC0gbG9nMTAoZW1vX2RhdGFfY2xlYW4kc2FtcGVuX3kpCmVtb19kYXRhX2NsZWFuJGxvZzEwX3JNU1NEICAgIDwtIGxvZzEwKGVtb19kYXRhX2NsZWFuJHJNU1NEKQplbW9fZGF0YV9jbGVhbiRsb2cxMF9ocnZfcm1zc2RfbmsyICA8LSBsb2cxMChlbW9fZGF0YV9jbGVhbiRocnZfcm1zc2RfbmsyKQplbW9fZGF0YV9jbGVhbiRsb2cxMF9hdmVfcGhhc2ljX2VkYSAgICA8LSBsb2cxMChlbW9fZGF0YV9jbGVhbiRhdmVfcGhhc2ljX2VkYSkKZW1vX2RhdGFfY2xlYW4kcnJ2X3Jtc3NkW2Vtb19kYXRhX2NsZWFuJHJydl9ybXNzZCA+IDQ1MDBdIDwtIE5BCmVtb19kYXRhX2NsZWFuJGxvZzEwX3Njcl9wZWFrc19udW1iZXIgICA8LSBsb2cxMChlbW9fZGF0YV9jbGVhbiRzY3JfcGVha3NfbnVtYmVyKQplbW9fZGF0YV9jbGVhbiRsb2cxMF9zY3JfbWVhbl9hbXBsaXR1ZGUgPC0gbG9nMTAoZW1vX2RhdGFfY2xlYW4kc2NyX21lYW5fYW1wbGl0dWRlKQplbW9fZGF0YV9jbGVhbltzYXBwbHkoZW1vX2RhdGFfY2xlYW4sIGlzLmluZmluaXRlKV0gPC0gTkEKYGBgCgojIEdlbmVyYWwgRGVzY3JpcHRpb24KYGBge3IgZ2VuZXJhbCwgZmlnLndpZHRoID0gMTJ9Cm9wdGlvbnMod2lkdGggPSAxMDApCnN1bW1hcnkoZW1vX2RhdGFfY2xlYW4pCmBgYAoKIyMgVGltZS1kaXN0YW5jZSBwYXJhbWV0ZXJzCmBgYHtyIHRpbWVfZGlzdGFuY2UsIGZpZy53aWR0aCA9IDEyfQpvcHRpb25zKHdpZHRoID0gMTAwKQp0aW1lX2Rpc3RhbmNlIDwtIGMoJ2xvZzEwX2FyZWEnLCAnbG9nMTBfYXhpczEnLCAnbG9nMTBfYXhpczInLCAnbG9nMTBfbWRpc3QnLCAnbG9nMTBfcm12JywgJ2xvZzEwX3Jtc3gnLCAnbG9nMTBfcm1zeScpCnRpbWVfZGlzdGFuY2VfcGFpcnMgPC0gZ2dwYWlycyhlbW9fZGF0YV9jbGVhbiwKICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zID0gdGltZV9kaXN0YW5jZSwKICAgICAgICAgICAgICAgICAgICAgICBhZXMoY29sb3VyID0gR3JvdXAsIGFscGhhID0gLjI1KSwKICAgICAgICAgICAgICAgICAgICAgICBwcm9ncmVzcyA9IEZBTFNFLAogICAgICAgICAgICAgICAgICAgICAgIGxvd2VyID0gbGlzdChjb250aW51b3VzID0gd3JhcCgicG9pbnRzIikpKQpzdXBwcmVzc1dhcm5pbmdzKHByaW50KHRpbWVfZGlzdGFuY2VfcGFpcnMpKQpzdW1tYXJ5KGVtb19kYXRhX2NsZWFuW3RpbWVfZGlzdGFuY2VdKQpgYGAKCiMjIEZyZXF1ZW5jeSBwYXJhbWV0ZXJzCmBgYHtyIGZyZXF1ZW5jeSwgZmlnLndpZHRoID0gMTJ9Cm9wdGlvbnMod2lkdGggPSAxMDApCmZyZXF1ZW5jeSA8LSBjKCdsb2cxMF9NUEZ4JywgJ2xvZzEwX01QRnknLCAnbG9nMTBfUEVBS3gnLCAnbG9nMTBfUEVBS3knLCAnbG9nMTBfRjUweCcsICdsb2cxMF9GNTB5JywgJ2xvZzEwX0Y5NXgnLCAnbG9nMTBfRjk1eScpCmZyZXF1ZW5jeV9wYWlycyA8LSBnZ3BhaXJzKGVtb19kYXRhX2NsZWFuLAogICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnMgPSBmcmVxdWVuY3ksCiAgICAgICAgICAgICAgICAgICAgICAgYWVzKGNvbG91ciA9IEdyb3VwLCBhbHBoYSA9IC4yNSksCiAgICAgICAgICAgICAgICAgICAgICAgcHJvZ3Jlc3MgPSBGQUxTRSwKICAgICAgICAgICAgICAgICAgICAgICBsb3dlciA9IGxpc3QoY29udGludW91cyA9IHdyYXAoInBvaW50cyIpKSkKc3VwcHJlc3NXYXJuaW5ncyhwcmludChmcmVxdWVuY3lfcGFpcnMpKQpzdW1tYXJ5KGVtb19kYXRhX2NsZWFuW2ZyZXF1ZW5jeV0pCmBgYAoKIyMgRW50cm9weQpgYGB7ciBlbnRyb3B5LCBmaWcud2lkdGggPSAxMn0Kb3B0aW9ucyh3aWR0aCA9IDEwMCkKZW50cm9weSA8LSBjKCdmb3J3YXJkX21vdicsICdsb2cxMF9zYW1wZW5feCcsICdsb2cxMF9zYW1wZW5feScsICdzYW1wZW5fcmVzdWxfdmVjdCcsICdzYW1wZW5fcGhpX3JhZCcsICdzYW1wZW5fZGVsdGFfcGhpJykKZW50cm9weV9wYWlycyA8LSBnZ3BhaXJzKGVtb19kYXRhX2NsZWFuLAogICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnMgPSBlbnRyb3B5LAogICAgICAgICAgICAgICAgICAgICAgIGFlcyhjb2xvdXIgPSBHcm91cCwgYWxwaGEgPSAuMjUpLAogICAgICAgICAgICAgICAgICAgICAgIHByb2dyZXNzID0gRkFMU0UsCiAgICAgICAgICAgICAgICAgICAgICAgbG93ZXIgPSBsaXN0KGNvbnRpbnVvdXMgPSB3cmFwKCJwb2ludHMiKSkpCnN1cHByZXNzV2FybmluZ3MocHJpbnQoZW50cm9weV9wYWlycykpCnN1bW1hcnkoZW1vX2RhdGFfY2xlYW5bZW50cm9weV0pCmBgYAoKIyBDbGFzc2ljIENlbnRlciBvZiBQcmVzc3VyZQo2MCBzZWNvbmRzCgojIyBBcmVhIChsb2cxMCkKYGBge3IgQXJlYSwgZmlnLndpZHRoID0gMTJ9Cm9wdGlvbnMod2lkdGggPSAxMDApCmFyZWFfcmVwX2Fub3ZhIDwtIGFvdl9leigiSUQiLCAibG9nMTBfYXJlYSIsIGVtb19kYXRhX2NsZWFuLCB3aXRoaW4gPSBjKCJUYXNrIiksIGJldHdlZW4gPSBjKCJHcm91cCIpKQpyZXBfYW5vdmFfZGF0YSA8LSBhcmVhX3JlcF9hbm92YSRkYXRhJGxvbmcKeHRhYnMofiBUYXNrICsgR3JvdXAsIGRhdGEgPSByZXBfYW5vdmFfZGF0YSkKYXJlYV9yYWluIDwtIGdncGxvdChyZXBfYW5vdmFfZGF0YSwgYWVzKHkgPSBUYXNrLCB4ID0gbG9nMTBfYXJlYSwgY29sb3IgPSBHcm91cCwgZmlsbCA9IEdyb3VwKSkgKwogIHN0YXRfaGFsZmV5ZSgKICAgIHRyaW0gICA9IEZBTFNFLAogICAgLndpZHRoID0gMCwKICAgIGp1c3RpZmljYXRpb24gPSAtLjE1LAogICAgYWxwaGEgID0gLjQsCiAgICBwb2ludF9jb2xvdXIgPSBOQSkgKwogIGdlb21fcG9pbnQoc2l6ZSA9IDIsIGFscGhhID0gLjQsIHBvc2l0aW9uID0gcG9zaXRpb25faml0dGVyKHdpZHRoID0gMCwgaGVpZ2h0ID0gLjA1KSkKc3VwcHJlc3NXYXJuaW5ncyhwcmludChhcmVhX3JhaW4pKQojIGFyZWFfZ3JvdXBfcmFpbiA8LSBnZ3Bsb3QocmVwX2Fub3ZhX2RhdGEsIGFlcyh5ID0gZmN0X3JldihHcm91cCksIHggPSBsb2cxMF9hcmVhLCBjb2xvciA9IEdyb3VwLCBmaWxsID0gR3JvdXApKSArCiMgICBnZ3RpdGxlKCJBcmVhIikgKwojICAgeWxhYigiR3JvdXAiKSArCiMgICBzdGF0X2hhbGZleWUoCiMgICAgIHRyaW0gICA9IEZBTFNFLAojICAgICBhZGp1c3QgPSAuNzUsCiMgICAgIC53aWR0aCA9IDAsCiMgICAgIGp1c3RpZmljYXRpb24gPSAtLjE1LAojICAgICBhbHBoYSAgPSAuNCwKIyAgICAgcG9pbnRfY29sb3VyID0gTkEpICsKIyAgIGdlb21fYm94cGxvdCh3aWR0aCA9IC4xNSwgYWxwaGEgPSAuMiwgb3V0bGllci5zaGFwZSA9IE5BKSArCiMgICBnZW9tX3BvaW50KHNpemUgPSAyLCBhbHBoYSA9IC40LCBwb3NpdGlvbiA9IHBvc2l0aW9uX2ppdHRlcih3aWR0aCA9IDAsIGhlaWdodCA9IC4wNSkpICsKIyAgIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbj0nbm9uZScpCiMgc3VwcHJlc3NXYXJuaW5ncyhwcmludChhcmVhX2dyb3VwX3JhaW4pKQojIGFyZWFfdGFza19yYWluIDwtIGdncGxvdChyZXBfYW5vdmFfZGF0YSwgYWVzKHkgPSBUYXNrLCB4ID0gbG9nMTBfYXJlYSwgY29sb3IgPSBUYXNrLCBmaWxsID0gVGFzaykpICsKIyAgIGdndGl0bGUoIkFyZWEiKSArCiMgICB5bGFiKCJUYXNrIikgKwojICAgc3RhdF9oYWxmZXllKAojICAgICB0cmltICAgPSBGQUxTRSwKIyAgICAgYWRqdXN0ID0gLjc1LAojICAgICAud2lkdGggPSAwLAojICAgICBqdXN0aWZpY2F0aW9uID0gLS4xNSwKIyAgICAgYWxwaGEgID0gLjQsCiMgICAgIHBvaW50X2NvbG91ciA9IE5BKSArCiMgICBnZW9tX2JveHBsb3Qod2lkdGggPSAuMTUsIGFscGhhID0gLjIsIG91dGxpZXIuc2hhcGUgPSBOQSkgKwojICAgZ2VvbV9wb2ludChzaXplID0gMiwgYWxwaGEgPSAuNCwgcG9zaXRpb24gPSBwb3NpdGlvbl9qaXR0ZXIod2lkdGggPSAwLCBoZWlnaHQgPSAuMDUpKSArCiMgICB0aGVtZShsZWdlbmQucG9zaXRpb249J25vbmUnKQojIHN1cHByZXNzV2FybmluZ3MocHJpbnQoYXJlYV90YXNrX3JhaW4pKQphcmVhX2FmZXhfcGxvdCA8LQogIGFmZXhfcGxvdCgKICAgIGFyZWFfcmVwX2Fub3ZhLAogICAgeCA9ICJUYXNrIiwKICAgIHRyYWNlID0gIkdyb3VwIiwKICAgIGVycm9yID0gImJldHdlZW4iLAogICAgZXJyb3JfYXJnID0gbGlzdCh3aWR0aCA9IC4xNSksCiAgICBkb2RnZSA9IC0uNSwKICAgIG1hcHBpbmcgPSBjKCJjb2xvciIpLAogICAgcG9pbnRfYXJnID0gbGlzdChzaXplID0gNCkKICApCnN1cHByZXNzV2FybmluZ3MocHJpbnQoYXJlYV9hZmV4X3Bsb3QpKQpuaWNlKGFyZWFfcmVwX2Fub3ZhKQphX3Bvc3RlcmlvcmkoYXJlYV9yZXBfYW5vdmEpCmBgYAoKIyMgRWxsaXBzZSBNYWpvciBBeGlzIChsb2cxMCkKYGBge3IgbG9nMTBfYXhpczEsIGZpZy53aWR0aCA9IDEyfQpvcHRpb25zKHdpZHRoID0gMTAwKQpsb2cxMF9heGlzMV9yZXBfYW5vdmEgPC0gYW92X2V6KCJJRCIsICJsb2cxMF9heGlzMSIsIGVtb19kYXRhX2NsZWFuLCB3aXRoaW4gPSBjKCJUYXNrIiksIGJldHdlZW4gPSBjKCJHcm91cCIpKQpyZXBfYW5vdmFfZGF0YSAgICAgICAgPC0gbG9nMTBfYXhpczFfcmVwX2Fub3ZhJGRhdGEkbG9uZwp4dGFicyh+IFRhc2sgKyBHcm91cCwgZGF0YSA9IHJlcF9hbm92YV9kYXRhKQpsb2cxMF9heGlzMV9yYWluIDwtIGdncGxvdChyZXBfYW5vdmFfZGF0YSwgYWVzKHkgPSBUYXNrLCB4ID0gbG9nMTBfYXhpczEsIGNvbG9yID0gR3JvdXAsIGZpbGwgPSBHcm91cCkpICsKICBzdGF0X2hhbGZleWUoCiAgICB0cmltICAgPSBGQUxTRSwKICAgIC53aWR0aCA9IDAsCiAgICBqdXN0aWZpY2F0aW9uID0gLS4xNSwKICAgIGFscGhhICA9IC40LAogICAgcG9pbnRfY29sb3VyID0gTkEpICsKICBnZW9tX3BvaW50KHNpemUgPSAyLCBhbHBoYSA9IC40LCBwb3NpdGlvbiA9IHBvc2l0aW9uX2ppdHRlcih3aWR0aCA9IDAsIGhlaWdodCA9IC4wNSkpCnN1cHByZXNzV2FybmluZ3MocHJpbnQobG9nMTBfYXhpczFfcmFpbikpCmxvZzEwX2F4aXMxX2FmZXhfcGxvdCA8LQogIGFmZXhfcGxvdCgKICAgIGxvZzEwX2F4aXMxX3JlcF9hbm92YSwKICAgIHggPSAiVGFzayIsCiAgICB0cmFjZSA9ICJHcm91cCIsCiAgICBlcnJvciA9ICJiZXR3ZWVuIiwKICAgIGVycm9yX2FyZyA9IGxpc3Qod2lkdGggPSAuMTUpLAogICAgZG9kZ2UgPSAtLjUsCiAgICBtYXBwaW5nID0gYygiY29sb3IiKSwKICAgIHBvaW50X2FyZyA9IGxpc3Qoc2l6ZSA9IDQpCiAgKQpzdXBwcmVzc1dhcm5pbmdzKHByaW50KGxvZzEwX2F4aXMxX2FmZXhfcGxvdCkpCm5pY2UobG9nMTBfYXhpczFfcmVwX2Fub3ZhKQphX3Bvc3RlcmlvcmkobG9nMTBfYXhpczFfcmVwX2Fub3ZhKQpgYGAKCiMjIEVsbGlwc2UgTWlub3IgQXhpcyAobG9nMTApCmBgYHtyIGxvZzEwX2F4aXMyLCBmaWcud2lkdGggPSAxMn0Kb3B0aW9ucyh3aWR0aCA9IDEwMCkKbG9nMTBfYXhpczJfcmVwX2Fub3ZhIDwtIGFvdl9leigiSUQiLCAibG9nMTBfYXhpczIiLCBlbW9fZGF0YV9jbGVhbiwgd2l0aGluID0gYygiVGFzayIpLCBiZXR3ZWVuID0gYygiR3JvdXAiKSkKcmVwX2Fub3ZhX2RhdGEgICAgICAgIDwtIGxvZzEwX2F4aXMyX3JlcF9hbm92YSRkYXRhJGxvbmcKeHRhYnMofiBUYXNrICsgR3JvdXAsIGRhdGEgPSByZXBfYW5vdmFfZGF0YSkKbG9nMTBfYXhpczJfcmFpbiA8LSBnZ3Bsb3QocmVwX2Fub3ZhX2RhdGEsIGFlcyh5ID0gVGFzaywgeCA9IGxvZzEwX2F4aXMyLCBjb2xvciA9IEdyb3VwLCBmaWxsID0gR3JvdXApKSArCiAgc3RhdF9oYWxmZXllKAogICAgdHJpbSAgID0gRkFMU0UsCiAgICAud2lkdGggPSAwLAogICAganVzdGlmaWNhdGlvbiA9IC0uMTUsCiAgICBhbHBoYSAgPSAuNCwKICAgIHBvaW50X2NvbG91ciA9IE5BKSArCiAgZ2VvbV9wb2ludChzaXplID0gMiwgYWxwaGEgPSAuNCwgcG9zaXRpb24gPSBwb3NpdGlvbl9qaXR0ZXIod2lkdGggPSAwLCBoZWlnaHQgPSAuMDUpKQpzdXBwcmVzc1dhcm5pbmdzKHByaW50KGxvZzEwX2F4aXMyX3JhaW4pKQpsb2cxMF9heGlzMl9hZmV4X3Bsb3QgPC0KICBhZmV4X3Bsb3QoCiAgICBsb2cxMF9heGlzMl9yZXBfYW5vdmEsCiAgICB4ID0gIlRhc2siLAogICAgdHJhY2UgPSAiR3JvdXAiLAogICAgZXJyb3IgPSAiYmV0d2VlbiIsCiAgICBlcnJvcl9hcmcgPSBsaXN0KHdpZHRoID0gLjE1KSwKICAgIGRvZGdlID0gLS41LAogICAgbWFwcGluZyA9IGMoImNvbG9yIiksCiAgICBwb2ludF9hcmcgPSBsaXN0KHNpemUgPSA0KQogICkKc3VwcHJlc3NXYXJuaW5ncyhwcmludChsb2cxMF9heGlzMl9hZmV4X3Bsb3QpKQpuaWNlKGxvZzEwX2F4aXMyX3JlcF9hbm92YSkKYV9wb3N0ZXJpb3JpKGxvZzEwX2F4aXMyX3JlcF9hbm92YSkKYGBgCgojIyBNZWFuIERpc3RhbmNlIChsb2cxMCkKYGBge3IgbWRpc3QsIGZpZy53aWR0aCA9IDEyfQpvcHRpb25zKHdpZHRoID0gMTAwKQptZGlzdF9yZXBfYW5vdmEgPC0gYW92X2V6KCJJRCIsICJsb2cxMF9tZGlzdCIsIGVtb19kYXRhX2NsZWFuLCB3aXRoaW4gPSBjKCJUYXNrIiksIGJldHdlZW4gPSBjKCJHcm91cCIpKQpyZXBfYW5vdmFfZGF0YSAgPC0gbWRpc3RfcmVwX2Fub3ZhJGRhdGEkbG9uZwp4dGFicyh+IFRhc2sgKyBHcm91cCwgZGF0YSA9IHJlcF9hbm92YV9kYXRhKQptZGlzdF9yYWluIDwtIGdncGxvdChyZXBfYW5vdmFfZGF0YSwgYWVzKHkgPSBUYXNrLCB4ID0gbG9nMTBfbWRpc3QsIGNvbG9yID0gR3JvdXAsIGZpbGwgPSBHcm91cCkpICsKICBzdGF0X2hhbGZleWUoCiAgICB0cmltICAgPSBGQUxTRSwKICAgIC53aWR0aCA9IDAsCiAgICBqdXN0aWZpY2F0aW9uID0gLS4xNSwKICAgIGFscGhhICA9IC40LAogICAgcG9pbnRfY29sb3VyID0gTkEpICsKICBnZW9tX3BvaW50KHNpemUgPSAyLCBhbHBoYSA9IC40LCBwb3NpdGlvbiA9IHBvc2l0aW9uX2ppdHRlcih3aWR0aCA9IDAsIGhlaWdodCA9IC4wNSkpCnN1cHByZXNzV2FybmluZ3MocHJpbnQobWRpc3RfcmFpbikpCm1kaXN0X2FmZXhfcGxvdCA8LQogIGFmZXhfcGxvdCgKICAgIG1kaXN0X3JlcF9hbm92YSwKICAgIHggPSAiVGFzayIsCiAgICB0cmFjZSA9ICJHcm91cCIsCiAgICBlcnJvciA9ICJiZXR3ZWVuIiwKICAgIGVycm9yX2FyZyA9IGxpc3Qod2lkdGggPSAuMTUpLAogICAgZG9kZ2UgPSAtLjUsCiAgICBtYXBwaW5nID0gYygiY29sb3IiKSwKICAgIHBvaW50X2FyZyA9IGxpc3Qoc2l6ZSA9IDQpCiAgKQpzdXBwcmVzc1dhcm5pbmdzKHByaW50KG1kaXN0X2FmZXhfcGxvdCkpCm5pY2UobWRpc3RfcmVwX2Fub3ZhKQphX3Bvc3RlcmlvcmkobWRpc3RfcmVwX2Fub3ZhKQpgYGAKCiMjIFJvb3QgTWVhbiBWZWxvY2l0eSAobG9nMTApCmBgYHtyIHJtdiwgZmlnLndpZHRoID0gMTJ9Cm9wdGlvbnMod2lkdGggPSAxMDApCnJtdl9yZXBfYW5vdmEgIDwtIGFvdl9leigiSUQiLCAibG9nMTBfcm12IiwgZW1vX2RhdGFfY2xlYW4sIHdpdGhpbiA9IGMoIlRhc2siKSwgYmV0d2VlbiA9IGMoIkdyb3VwIikpCnJlcF9hbm92YV9kYXRhIDwtIHJtdl9yZXBfYW5vdmEkZGF0YSRsb25nCnh0YWJzKH4gVGFzayArIEdyb3VwLCBkYXRhID0gcmVwX2Fub3ZhX2RhdGEpCnJtdl9yYWluIDwtIGdncGxvdChyZXBfYW5vdmFfZGF0YSwgYWVzKHkgPSBUYXNrLCB4ID0gbG9nMTBfcm12LCBjb2xvciA9IEdyb3VwLCBmaWxsID0gR3JvdXApKSArCiAgc3RhdF9oYWxmZXllKAogICAgdHJpbSAgID0gRkFMU0UsCiAgICAud2lkdGggPSAwLAogICAganVzdGlmaWNhdGlvbiA9IC0uMTUsCiAgICBhbHBoYSAgPSAuNCwKICAgIHBvaW50X2NvbG91ciA9IE5BKSArCiAgZ2VvbV9wb2ludChzaXplID0gMiwgYWxwaGEgPSAuNCwgcG9zaXRpb24gPSBwb3NpdGlvbl9qaXR0ZXIod2lkdGggPSAwLCBoZWlnaHQgPSAuMDUpKQpzdXBwcmVzc1dhcm5pbmdzKHByaW50KHJtdl9yYWluKSkKcm12X2FmZXhfcGxvdCA8LQogIGFmZXhfcGxvdCgKICAgIHJtdl9yZXBfYW5vdmEsCiAgICB4ID0gIlRhc2siLAogICAgdHJhY2UgPSAiR3JvdXAiLAogICAgZXJyb3IgPSAiYmV0d2VlbiIsCiAgICBlcnJvcl9hcmcgPSBsaXN0KHdpZHRoID0gLjE1KSwKICAgIGRvZGdlID0gLS41LAogICAgbWFwcGluZyA9IGMoImNvbG9yIiksCiAgICBwb2ludF9hcmcgPSBsaXN0KHNpemUgPSA0KQogICkKc3VwcHJlc3NXYXJuaW5ncyhwcmludChybXZfYWZleF9wbG90KSkKbmljZShybXZfcmVwX2Fub3ZhKQphX3Bvc3Rlcmlvcmkocm12X3JlcF9hbm92YSkKYGBgCgojIyBSb290IE1lYW4gU3F1YXJlIFggKGxvZzEwKQpgYGB7ciBybXN4LCBmaWcud2lkdGggPSAxMn0Kb3B0aW9ucyh3aWR0aCA9IDEwMCkKcm1zeF9yZXBfYW5vdmEgPC0gYW92X2V6KCJJRCIsICJsb2cxMF9ybXN4IiwgZW1vX2RhdGFfY2xlYW4sIHdpdGhpbiA9IGMoIlRhc2siKSwgYmV0d2VlbiA9IGMoIkdyb3VwIikpCnJlcF9hbm92YV9kYXRhIDwtIHJtc3hfcmVwX2Fub3ZhJGRhdGEkbG9uZwp4dGFicyh+IFRhc2sgKyBHcm91cCwgZGF0YSA9IHJlcF9hbm92YV9kYXRhKQpybXN4X3JhaW4gPC0gZ2dwbG90KHJlcF9hbm92YV9kYXRhLCBhZXMoeSA9IFRhc2ssIHggPSBsb2cxMF9ybXN4LCBjb2xvciA9IEdyb3VwLCBmaWxsID0gR3JvdXApKSArCiAgc3RhdF9oYWxmZXllKAogICAgdHJpbSAgID0gRkFMU0UsCiAgICAud2lkdGggPSAwLAogICAganVzdGlmaWNhdGlvbiA9IC0uMTUsCiAgICBhbHBoYSAgPSAuNCwKICAgIHBvaW50X2NvbG91ciA9IE5BKSArCiAgZ2VvbV9wb2ludChzaXplID0gMiwgYWxwaGEgPSAuNCwgcG9zaXRpb24gPSBwb3NpdGlvbl9qaXR0ZXIod2lkdGggPSAwLCBoZWlnaHQgPSAuMDUpKQpzdXBwcmVzc1dhcm5pbmdzKHByaW50KHJtc3hfcmFpbikpCnJtc3hfYWZleF9wbG90IDwtCiAgYWZleF9wbG90KAogICAgcm1zeF9yZXBfYW5vdmEsCiAgICB4ID0gIlRhc2siLAogICAgdHJhY2UgPSAiR3JvdXAiLAogICAgZXJyb3IgPSAiYmV0d2VlbiIsCiAgICBlcnJvcl9hcmcgPSBsaXN0KHdpZHRoID0gLjE1KSwKICAgIGRvZGdlID0gLS41LAogICAgbWFwcGluZyA9IGMoImNvbG9yIiksCiAgICBwb2ludF9hcmcgPSBsaXN0KHNpemUgPSA0KQogICkKc3VwcHJlc3NXYXJuaW5ncyhwcmludChybXN4X2FmZXhfcGxvdCkpCm5pY2Uocm1zeF9yZXBfYW5vdmEpCmFfcG9zdGVyaW9yaShybXN4X3JlcF9hbm92YSkKYGBgCgojIyBSb290IE1lYW4gU3F1YXJlIFkgKGxvZzEwKQpgYGB7ciBybXN5LCBmaWcud2lkdGggPSAxMn0Kb3B0aW9ucyh3aWR0aCA9IDEwMCkKcm1zeV9yZXBfYW5vdmEgPC0gYW92X2V6KCJJRCIsICJsb2cxMF9ybXN5IiwgZW1vX2RhdGFfY2xlYW4sIHdpdGhpbiA9IGMoIlRhc2siKSwgYmV0d2VlbiA9IGMoIkdyb3VwIikpCnJlcF9hbm92YV9kYXRhIDwtIHJtc3lfcmVwX2Fub3ZhJGRhdGEkbG9uZwp4dGFicyh+IFRhc2sgKyBHcm91cCwgZGF0YSA9IHJlcF9hbm92YV9kYXRhKQpybXN5X3JhaW4gPC0gZ2dwbG90KHJlcF9hbm92YV9kYXRhLCBhZXMoeSA9IFRhc2ssIHggPSBsb2cxMF9ybXN5LCBjb2xvciA9IEdyb3VwLCBmaWxsID0gR3JvdXApKSArCiAgc3RhdF9oYWxmZXllKAogICAgdHJpbSAgID0gRkFMU0UsCiAgICAud2lkdGggPSAwLAogICAganVzdGlmaWNhdGlvbiA9IC0uMTUsCiAgICBhbHBoYSAgPSAuNCwKICAgIHBvaW50X2NvbG91ciA9IE5BKSArCiAgZ2VvbV9wb2ludChzaXplID0gMiwgYWxwaGEgPSAuNCwgcG9zaXRpb24gPSBwb3NpdGlvbl9qaXR0ZXIod2lkdGggPSAwLCBoZWlnaHQgPSAuMDUpKQpzdXBwcmVzc1dhcm5pbmdzKHByaW50KHJtc3lfcmFpbikpCnJtc3lfYWZleF9wbG90IDwtCiAgYWZleF9wbG90KAogICAgcm1zeV9yZXBfYW5vdmEsCiAgICB4ID0gIlRhc2siLAogICAgdHJhY2UgPSAiR3JvdXAiLAogICAgZXJyb3IgPSAiYmV0d2VlbiIsCiAgICBlcnJvcl9hcmcgPSBsaXN0KHdpZHRoID0gLjE1KSwKICAgIGRvZGdlID0gLS41LAogICAgbWFwcGluZyA9IGMoImNvbG9yIiksCiAgICBwb2ludF9hcmcgPSBsaXN0KHNpemUgPSA0KQogICkKc3VwcHJlc3NXYXJuaW5ncyhwcmludChybXN5X2FmZXhfcGxvdCkpCm5pY2Uocm1zeV9yZXBfYW5vdmEpCmFfcG9zdGVyaW9yaShybXN5X3JlcF9hbm92YSkKYGBgCgojIyBNZWFuIFBvd2VyIEZyZXF1ZW5jeSBYIChsb2cxMCkKYGBge3IgTVBGeCwgZmlnLndpZHRoID0gMTJ9Cm9wdGlvbnMod2lkdGggPSAxMDApCk1QRnhfcmVwX2Fub3ZhIDwtIGFvdl9leigiSUQiLCAibG9nMTBfTVBGeCIsIGVtb19kYXRhX2NsZWFuLCB3aXRoaW4gPSBjKCJUYXNrIiksIGJldHdlZW4gPSBjKCJHcm91cCIpKQpyZXBfYW5vdmFfZGF0YSA8LSBNUEZ4X3JlcF9hbm92YSRkYXRhJGxvbmcKeHRhYnMofiBUYXNrICsgR3JvdXAsIGRhdGEgPSByZXBfYW5vdmFfZGF0YSkKTVBGeF9yYWluIDwtIGdncGxvdChyZXBfYW5vdmFfZGF0YSwgYWVzKHkgPSBUYXNrLCB4ID0gbG9nMTBfTVBGeCwgY29sb3IgPSBHcm91cCwgZmlsbCA9IEdyb3VwKSkgKwogIHN0YXRfaGFsZmV5ZSgKICAgIHRyaW0gICA9IEZBTFNFLAogICAgLndpZHRoID0gMCwKICAgIGp1c3RpZmljYXRpb24gPSAtLjE1LAogICAgYWxwaGEgID0gLjQsCiAgICBwb2ludF9jb2xvdXIgPSBOQSkgKwogIGdlb21fcG9pbnQoc2l6ZSA9IDIsIGFscGhhID0gLjQsIHBvc2l0aW9uID0gcG9zaXRpb25faml0dGVyKHdpZHRoID0gMCwgaGVpZ2h0ID0gLjA1KSkKc3VwcHJlc3NXYXJuaW5ncyhwcmludChNUEZ4X3JhaW4pKQpNUEZ4X2FmZXhfcGxvdCA8LQogIGFmZXhfcGxvdCgKICAgIE1QRnhfcmVwX2Fub3ZhLAogICAgeCA9ICJUYXNrIiwKICAgIHRyYWNlID0gIkdyb3VwIiwKICAgIGVycm9yID0gImJldHdlZW4iLAogICAgZXJyb3JfYXJnID0gbGlzdCh3aWR0aCA9IC4xNSksCiAgICBkb2RnZSA9IC0uNSwKICAgIG1hcHBpbmcgPSBjKCJjb2xvciIpLAogICAgcG9pbnRfYXJnID0gbGlzdChzaXplID0gNCkKICApCnN1cHByZXNzV2FybmluZ3MocHJpbnQoTVBGeF9hZmV4X3Bsb3QpKQpuaWNlKE1QRnhfcmVwX2Fub3ZhKQphX3Bvc3RlcmlvcmkoTVBGeF9yZXBfYW5vdmEpCmBgYAoKIyMgTWVhbiBQb3dlciBGcmVxdWVuY3kgWSAobG9nMTApCmBgYHtyIE1QRnksIGZpZy53aWR0aCA9IDEyfQpvcHRpb25zKHdpZHRoID0gMTAwKQpNUEZ5X3JlcF9hbm92YSA8LSBhb3ZfZXooIklEIiwgImxvZzEwX01QRnkiLCBlbW9fZGF0YV9jbGVhbiwgd2l0aGluID0gYygiVGFzayIpLCBiZXR3ZWVuID0gYygiR3JvdXAiKSkKcmVwX2Fub3ZhX2RhdGEgPC0gTVBGeV9yZXBfYW5vdmEkZGF0YSRsb25nCnh0YWJzKH4gVGFzayArIEdyb3VwLCBkYXRhID0gcmVwX2Fub3ZhX2RhdGEpCk1QRnlfcmFpbiA8LSBnZ3Bsb3QocmVwX2Fub3ZhX2RhdGEsIGFlcyh5ID0gVGFzaywgeCA9IGxvZzEwX01QRnksIGNvbG9yID0gR3JvdXAsIGZpbGwgPSBHcm91cCkpICsKICBzdGF0X2hhbGZleWUoCiAgICB0cmltICAgPSBGQUxTRSwKICAgIC53aWR0aCA9IDAsCiAgICBqdXN0aWZpY2F0aW9uID0gLS4xNSwKICAgIGFscGhhICA9IC40LAogICAgcG9pbnRfY29sb3VyID0gTkEpICsKICBnZW9tX3BvaW50KHNpemUgPSAyLCBhbHBoYSA9IC40LCBwb3NpdGlvbiA9IHBvc2l0aW9uX2ppdHRlcih3aWR0aCA9IDAsIGhlaWdodCA9IC4wNSkpCnN1cHByZXNzV2FybmluZ3MocHJpbnQoTVBGeV9yYWluKSkKTVBGeV9hZmV4X3Bsb3QgPC0KICBhZmV4X3Bsb3QoCiAgICBNUEZ5X3JlcF9hbm92YSwKICAgIHggPSAiVGFzayIsCiAgICB0cmFjZSA9ICJHcm91cCIsCiAgICBlcnJvciA9ICJiZXR3ZWVuIiwKICAgIGVycm9yX2FyZyA9IGxpc3Qod2lkdGggPSAuMTUpLAogICAgZG9kZ2UgPSAtLjUsCiAgICBtYXBwaW5nID0gYygiY29sb3IiKSwKICAgIHBvaW50X2FyZyA9IGxpc3Qoc2l6ZSA9IDQpCiAgKQpzdXBwcmVzc1dhcm5pbmdzKHByaW50KE1QRnlfYWZleF9wbG90KSkKbmljZShNUEZ5X3JlcF9hbm92YSkKYV9wb3N0ZXJpb3JpKE1QRnlfcmVwX2Fub3ZhKQpgYGAKCiMjIEZvcndhcmQgTW92ZW1lbnQKYGBge3IgZm9yd2FyZF9tb3YsIGZpZy53aWR0aCA9IDEyfQpvcHRpb25zKHdpZHRoID0gMTAwKQpmb3J3YXJkX21vdl9yZXBfYW5vdmEgPC0gYW92X2V6KCJJRCIsICJmb3J3YXJkX21vdiIsIGVtb19kYXRhX2NsZWFuLCB3aXRoaW4gPSBjKCJUYXNrIiksIGJldHdlZW4gPSBjKCJHcm91cCIpKQpyZXBfYW5vdmFfZGF0YSAgICAgICAgPC0gZm9yd2FyZF9tb3ZfcmVwX2Fub3ZhJGRhdGEkbG9uZwp4dGFicyh+IFRhc2sgKyBHcm91cCwgZGF0YSA9IHJlcF9hbm92YV9kYXRhKQpmb3J3YXJkX21vdl9yYWluIDwtIGdncGxvdChyZXBfYW5vdmFfZGF0YSwgYWVzKHkgPSBUYXNrLCB4ID0gZm9yd2FyZF9tb3YsIGNvbG9yID0gR3JvdXAsIGZpbGwgPSBHcm91cCkpICsKICBzdGF0X2hhbGZleWUoCiAgICB0cmltICAgPSBGQUxTRSwKICAgIC53aWR0aCA9IDAsCiAgICBqdXN0aWZpY2F0aW9uID0gLS4xNSwKICAgIGFscGhhICA9IC40LAogICAgcG9pbnRfY29sb3VyID0gTkEpICsKICBnZW9tX3BvaW50KHNpemUgPSAyLCBhbHBoYSA9IC40LCBwb3NpdGlvbiA9IHBvc2l0aW9uX2ppdHRlcih3aWR0aCA9IDAsIGhlaWdodCA9IC4wNSkpCnN1cHByZXNzV2FybmluZ3MocHJpbnQoZm9yd2FyZF9tb3ZfcmFpbikpCmZvcndhcmRfbW92X2FmZXhfcGxvdCA8LQogIGFmZXhfcGxvdCgKICAgIGZvcndhcmRfbW92X3JlcF9hbm92YSwKICAgIHggPSAiVGFzayIsCiAgICB0cmFjZSA9ICJHcm91cCIsCiAgICBlcnJvciA9ICJiZXR3ZWVuIiwKICAgIGVycm9yX2FyZyA9IGxpc3Qod2lkdGggPSAuMTUpLAogICAgZG9kZ2UgPSAtLjUsCiAgICBtYXBwaW5nID0gYygiY29sb3IiKSwKICAgIHBvaW50X2FyZyA9IGxpc3Qoc2l6ZSA9IDQpCiAgKQpzdXBwcmVzc1dhcm5pbmdzKHByaW50KGZvcndhcmRfbW92X2FmZXhfcGxvdCkpCm5pY2UoZm9yd2FyZF9tb3ZfcmVwX2Fub3ZhKQphX3Bvc3RlcmlvcmkoZm9yd2FyZF9tb3ZfcmVwX2Fub3ZhKQpgYGAKCiMgRW50cm9weSBhbmQgQ2VudGVyIG9mIFByZXNzdXJlCiMjIFNhbXBsZSBFbnRyb3B5IFggKGxvZzEwKQpgYGB7ciBzYW1wZW5feCwgZmlnLndpZHRoID0gMTJ9Cm9wdGlvbnMod2lkdGggPSAxMDApCmxvZzEwX3NhbXBlbl94X3JlcF9hbm92YSA8LSBhb3ZfZXooIklEIiwgImxvZzEwX3NhbXBlbl94IiwgZW1vX2RhdGFfY2xlYW4sIHdpdGhpbiA9IGMoIlRhc2siKSwgYmV0d2VlbiA9IGMoIkdyb3VwIikpCnJlcF9hbm92YV9kYXRhICAgICAgICAgICA8LSBsb2cxMF9zYW1wZW5feF9yZXBfYW5vdmEkZGF0YSRsb25nCnh0YWJzKH4gVGFzayArIEdyb3VwLCBkYXRhID0gcmVwX2Fub3ZhX2RhdGEpCmxvZzEwX3NhbXBlbl94X3JhaW4gPC0gZ2dwbG90KHJlcF9hbm92YV9kYXRhLCBhZXMoeSA9IFRhc2ssIHggPSBsb2cxMF9zYW1wZW5feCwgY29sb3IgPSBHcm91cCwgZmlsbCA9IEdyb3VwKSkgKwogIHN0YXRfaGFsZmV5ZSgKICAgIHRyaW0gICA9IEZBTFNFLAogICAgLndpZHRoID0gMCwKICAgIGp1c3RpZmljYXRpb24gPSAtLjE1LAogICAgYWxwaGEgID0gLjQsCiAgICBwb2ludF9jb2xvdXIgPSBOQSkgKwogIGdlb21fcG9pbnQoc2l6ZSA9IDIsIGFscGhhID0gLjQsIHBvc2l0aW9uID0gcG9zaXRpb25faml0dGVyKHdpZHRoID0gMCwgaGVpZ2h0ID0gLjA1KSkKc3VwcHJlc3NXYXJuaW5ncyhwcmludChsb2cxMF9zYW1wZW5feF9yYWluKSkKbG9nMTBfc2FtcGVuX3hfYWZleF9wbG90IDwtCiAgYWZleF9wbG90KAogICAgbG9nMTBfc2FtcGVuX3hfcmVwX2Fub3ZhLAogICAgeCA9ICJUYXNrIiwKICAgIHRyYWNlID0gIkdyb3VwIiwKICAgIGVycm9yID0gImJldHdlZW4iLAogICAgZXJyb3JfYXJnID0gbGlzdCh3aWR0aCA9IC4xNSksCiAgICBkb2RnZSA9IC0uNSwKICAgIG1hcHBpbmcgPSBjKCJjb2xvciIpLAogICAgcG9pbnRfYXJnID0gbGlzdChzaXplID0gNCkKICApCnN1cHByZXNzV2FybmluZ3MocHJpbnQobG9nMTBfc2FtcGVuX3hfYWZleF9wbG90KSkKbmljZShsb2cxMF9zYW1wZW5feF9yZXBfYW5vdmEpCmFfcG9zdGVyaW9yaShsb2cxMF9zYW1wZW5feF9yZXBfYW5vdmEpCmBgYAoKIyMgU2FtcGxlIEVudHJvcHkgWSAobG9nMTApCmBgYHtyIHNhbXBlbl95LCBmaWcud2lkdGggPSAxMn0Kb3B0aW9ucyh3aWR0aCA9IDEwMCkKbG9nMTBfc2FtcGVuX3lfcmVwX2Fub3ZhIDwtIGFvdl9leigiSUQiLCAibG9nMTBfc2FtcGVuX3kiLCBlbW9fZGF0YV9jbGVhbiwgd2l0aGluID0gYygiVGFzayIpLCBiZXR3ZWVuID0gYygiR3JvdXAiKSkKcmVwX2Fub3ZhX2RhdGEgICAgICAgICAgIDwtIGxvZzEwX3NhbXBlbl95X3JlcF9hbm92YSRkYXRhJGxvbmcKeHRhYnMofiBUYXNrICsgR3JvdXAsIGRhdGEgPSByZXBfYW5vdmFfZGF0YSkKbG9nMTBfc2FtcGVuX3lfcmFpbiA8LSBnZ3Bsb3QocmVwX2Fub3ZhX2RhdGEsIGFlcyh5ID0gVGFzaywgeCA9IGxvZzEwX3NhbXBlbl95LCBjb2xvciA9IEdyb3VwLCBmaWxsID0gR3JvdXApKSArCiAgc3RhdF9oYWxmZXllKAogICAgdHJpbSAgID0gRkFMU0UsCiAgICAud2lkdGggPSAwLAogICAganVzdGlmaWNhdGlvbiA9IC0uMTUsCiAgICBhbHBoYSAgPSAuNCwKICAgIHBvaW50X2NvbG91ciA9IE5BKSArCiAgZ2VvbV9wb2ludChzaXplID0gMiwgYWxwaGEgPSAuNCwgcG9zaXRpb24gPSBwb3NpdGlvbl9qaXR0ZXIod2lkdGggPSAwLCBoZWlnaHQgPSAuMDUpKQpzdXBwcmVzc1dhcm5pbmdzKHByaW50KGxvZzEwX3NhbXBlbl95X3JhaW4pKQpsb2cxMF9zYW1wZW5feV9hZmV4X3Bsb3QgPC0KICBhZmV4X3Bsb3QoCiAgICBsb2cxMF9zYW1wZW5feV9yZXBfYW5vdmEsCiAgICB4ID0gIlRhc2siLAogICAgdHJhY2UgPSAiR3JvdXAiLAogICAgZXJyb3IgPSAiYmV0d2VlbiIsCiAgICBlcnJvcl9hcmcgPSBsaXN0KHdpZHRoID0gLjE1KSwKICAgIGRvZGdlID0gLS41LAogICAgbWFwcGluZyA9IGMoImNvbG9yIiksCiAgICBwb2ludF9hcmcgPSBsaXN0KHNpemUgPSA0KQogICkKc3VwcHJlc3NXYXJuaW5ncyhwcmludChsb2cxMF9zYW1wZW5feV9hZmV4X3Bsb3QpKQpuaWNlKGxvZzEwX3NhbXBlbl95X3JlcF9hbm92YSkKYV9wb3N0ZXJpb3JpKGxvZzEwX3NhbXBlbl95X3JlcF9hbm92YSkKYGBgCgojIyBBbmdsZSBTYW1wbGUgRW50cm9weQpgYGB7ciBzYW1wZW5fcGhpX3JhZCwgZmlnLndpZHRoID0gMTJ9Cm9wdGlvbnMod2lkdGggPSAxMDApCnNhbXBlbl9waGlfcmFkX3JlcF9hbm92YSA8LSBhb3ZfZXooIklEIiwgInNhbXBlbl9waGlfcmFkIiwgZW1vX2RhdGFfY2xlYW4sIHdpdGhpbiA9IGMoIlRhc2siKSwgYmV0d2VlbiA9IGMoIkdyb3VwIikpCnJlcF9hbm92YV9kYXRhICAgICAgICAgICA8LSBzYW1wZW5fcGhpX3JhZF9yZXBfYW5vdmEkZGF0YSRsb25nCnh0YWJzKH4gVGFzayArIEdyb3VwLCBkYXRhID0gcmVwX2Fub3ZhX2RhdGEpCnNhbXBlbl9waGlfcmFkX3JhaW4gPC0gZ2dwbG90KHJlcF9hbm92YV9kYXRhLCBhZXMoeSA9IFRhc2ssIHggPSBzYW1wZW5fcGhpX3JhZCwgY29sb3IgPSBHcm91cCwgZmlsbCA9IEdyb3VwKSkgKwogIHN0YXRfaGFsZmV5ZSgKICAgIHRyaW0gICA9IEZBTFNFLAogICAgLndpZHRoID0gMCwKICAgIGp1c3RpZmljYXRpb24gPSAtLjE1LAogICAgYWxwaGEgID0gLjQsCiAgICBwb2ludF9jb2xvdXIgPSBOQSkgKwogIGdlb21fcG9pbnQoc2l6ZSA9IDIsIGFscGhhID0gLjQsIHBvc2l0aW9uID0gcG9zaXRpb25faml0dGVyKHdpZHRoID0gMCwgaGVpZ2h0ID0gLjA1KSkKc3VwcHJlc3NXYXJuaW5ncyhwcmludChzYW1wZW5fcGhpX3JhZF9yYWluKSkKc2FtcGVuX3BoaV9yYWRfYWZleF9wbG90IDwtCiAgYWZleF9wbG90KAogICAgc2FtcGVuX3BoaV9yYWRfcmVwX2Fub3ZhLAogICAgeCA9ICJUYXNrIiwKICAgIHRyYWNlID0gIkdyb3VwIiwKICAgIGVycm9yID0gImJldHdlZW4iLAogICAgZXJyb3JfYXJnID0gbGlzdCh3aWR0aCA9IC4xNSksCiAgICBkb2RnZSA9IC0uNSwKICAgIG1hcHBpbmcgPSBjKCJjb2xvciIpLAogICAgcG9pbnRfYXJnID0gbGlzdChzaXplID0gNCkKICApCnN1cHByZXNzV2FybmluZ3MocHJpbnQoc2FtcGVuX3BoaV9yYWRfYWZleF9wbG90KSkKbmljZShzYW1wZW5fcGhpX3JhZF9yZXBfYW5vdmEpCmFfcG9zdGVyaW9yaShzYW1wZW5fcGhpX3JhZF9yZXBfYW5vdmEpCmBgYAoKIyMgUmVzdWx0YW50IFZlY3RvciBTYW1wbGUgRW50cm9weQpgYGB7ciBzYW1wZW5fcmVzdWxfdmVjdCwgZmlnLndpZHRoID0gMTJ9Cm9wdGlvbnMod2lkdGggPSAxMDApCnNhbXBlbl9yZXN1bF92ZWN0X3JlcF9hbm92YSA8LSBhb3ZfZXooIklEIiwgInNhbXBlbl9yZXN1bF92ZWN0IiwgZW1vX2RhdGFfY2xlYW4sIHdpdGhpbiA9IGMoIlRhc2siKSwgYmV0d2VlbiA9IGMoIkdyb3VwIikpCnJlcF9hbm92YV9kYXRhICAgICAgICAgICAgICA8LSBzYW1wZW5fcmVzdWxfdmVjdF9yZXBfYW5vdmEkZGF0YSRsb25nCnh0YWJzKH4gVGFzayArIEdyb3VwLCBkYXRhID0gcmVwX2Fub3ZhX2RhdGEpCnNhbXBlbl9yZXN1bF92ZWN0X3JhaW4gPC0gZ2dwbG90KHJlcF9hbm92YV9kYXRhLCBhZXMoeSA9IFRhc2ssIHggPSBzYW1wZW5fcmVzdWxfdmVjdCwgY29sb3IgPSBHcm91cCwgZmlsbCA9IEdyb3VwKSkgKwogIHN0YXRfaGFsZmV5ZSgKICAgIHRyaW0gICA9IEZBTFNFLAogICAgLndpZHRoID0gMCwKICAgIGp1c3RpZmljYXRpb24gPSAtLjE1LAogICAgYWxwaGEgID0gLjQsCiAgICBwb2ludF9jb2xvdXIgPSBOQSkgKwogIGdlb21fcG9pbnQoc2l6ZSA9IDIsIGFscGhhID0gLjQsIHBvc2l0aW9uID0gcG9zaXRpb25faml0dGVyKHdpZHRoID0gMCwgaGVpZ2h0ID0gLjA1KSkKc3VwcHJlc3NXYXJuaW5ncyhwcmludChzYW1wZW5fcmVzdWxfdmVjdF9yYWluKSkKc2FtcGVuX3Jlc3VsX3ZlY3RfYWZleF9wbG90IDwtCiAgYWZleF9wbG90KAogICAgc2FtcGVuX3Jlc3VsX3ZlY3RfcmVwX2Fub3ZhLAogICAgeCA9ICJUYXNrIiwKICAgIHRyYWNlID0gIkdyb3VwIiwKICAgIGVycm9yID0gImJldHdlZW4iLAogICAgZXJyb3JfYXJnID0gbGlzdCh3aWR0aCA9IC4xNSksCiAgICBkb2RnZSA9IC0uNSwKICAgIG1hcHBpbmcgPSBjKCJjb2xvciIpLAogICAgcG9pbnRfYXJnID0gbGlzdChzaXplID0gNCkKICApCnN1cHByZXNzV2FybmluZ3MocHJpbnQoc2FtcGVuX3Jlc3VsX3ZlY3RfYWZleF9wbG90KSkKbmljZShzYW1wZW5fcmVzdWxfdmVjdF9yZXBfYW5vdmEpCmFfcG9zdGVyaW9yaShzYW1wZW5fcmVzdWxfdmVjdF9yZXBfYW5vdmEpCmBgYAoKIyMgQW5nbGUgQ2hhbmdlIFNhbXBsZSBFbnRyb3B5CmBgYHtyIHNhbXBlbl9kZWx0YV9waGksIGZpZy53aWR0aCA9IDEyfQpvcHRpb25zKHdpZHRoID0gMTAwKQpzYW1wZW5fZGVsdGFfcGhpX3JlcF9hbm92YSA8LSBhb3ZfZXooIklEIiwgInNhbXBlbl9kZWx0YV9waGkiLCBlbW9fZGF0YV9jbGVhbiwgd2l0aGluID0gYygiVGFzayIpLCBiZXR3ZWVuID0gYygiR3JvdXAiKSkKcmVwX2Fub3ZhX2RhdGEgICAgICAgICAgICAgPC0gc2FtcGVuX2RlbHRhX3BoaV9yZXBfYW5vdmEkZGF0YSRsb25nCnh0YWJzKH4gVGFzayArIEdyb3VwLCBkYXRhID0gcmVwX2Fub3ZhX2RhdGEpCnNhbXBlbl9kZWx0YV9waGlfcmFpbiA8LSBnZ3Bsb3QocmVwX2Fub3ZhX2RhdGEsIGFlcyh5ID0gVGFzaywgeCA9IHNhbXBlbl9kZWx0YV9waGksIGNvbG9yID0gR3JvdXAsIGZpbGwgPSBHcm91cCkpICsKICBzdGF0X2hhbGZleWUoCiAgICB0cmltICAgPSBGQUxTRSwKICAgIC53aWR0aCA9IDAsCiAgICBqdXN0aWZpY2F0aW9uID0gLS4xNSwKICAgIGFscGhhICA9IC40LAogICAgcG9pbnRfY29sb3VyID0gTkEpICsKICBnZW9tX3BvaW50KHNpemUgPSAyLCBhbHBoYSA9IC40LCBwb3NpdGlvbiA9IHBvc2l0aW9uX2ppdHRlcih3aWR0aCA9IDAsIGhlaWdodCA9IC4wNSkpCnN1cHByZXNzV2FybmluZ3MocHJpbnQoc2FtcGVuX2RlbHRhX3BoaV9yYWluKSkKc2FtcGVuX2RlbHRhX3BoaV9hZmV4X3Bsb3QgPC0KICBhZmV4X3Bsb3QoCiAgICBzYW1wZW5fZGVsdGFfcGhpX3JlcF9hbm92YSwKICAgIHggPSAiVGFzayIsCiAgICB0cmFjZSA9ICJHcm91cCIsCiAgICBlcnJvciA9ICJiZXR3ZWVuIiwKICAgIGVycm9yX2FyZyA9IGxpc3Qod2lkdGggPSAuMTUpLAogICAgZG9kZ2UgPSAtLjUsCiAgICBtYXBwaW5nID0gYygiY29sb3IiKSwKICAgIHBvaW50X2FyZyA9IGxpc3Qoc2l6ZSA9IDQpCiAgKQpzdXBwcmVzc1dhcm5pbmdzKHByaW50KHNhbXBlbl9kZWx0YV9waGlfYWZleF9wbG90KSkKbmljZShzYW1wZW5fZGVsdGFfcGhpX3JlcF9hbm92YSkKYV9wb3N0ZXJpb3JpKHNhbXBlbl9kZWx0YV9waGlfcmVwX2Fub3ZhKQpgYGAKCiMgSGVhcnQgQWN0aXZpdHkKIyMgSGVhcnQgUmF0ZQpgYGB7ciBoZWFydF9yYXRlLCBmaWcud2lkdGggPSAxMn0Kb3B0aW9ucyh3aWR0aCA9IDEwMCkKaGVhcnRfcmF0ZV9yZXBfYW5vdmEgPC0gYW92X2V6KCJJRCIsICJoZWFydF9yYXRlIiwgZW1vX2RhdGFfY2xlYW4sIHdpdGhpbiA9IGMoIlRhc2siKSwgYmV0d2VlbiA9IGMoIkdyb3VwIikpCnJlcF9hbm92YV9kYXRhICAgICAgIDwtIGhlYXJ0X3JhdGVfcmVwX2Fub3ZhJGRhdGEkbG9uZwp4dGFicyh+IFRhc2sgKyBHcm91cCwgZGF0YSA9IHJlcF9hbm92YV9kYXRhKQpoZWFydF9yYXRlX3JhaW4gPC0gZ2dwbG90KHJlcF9hbm92YV9kYXRhLCBhZXMoeSA9IFRhc2ssIHggPSBoZWFydF9yYXRlLCBjb2xvciA9IEdyb3VwLCBmaWxsID0gR3JvdXApKSArCiAgc3RhdF9oYWxmZXllKAogICAgdHJpbSAgID0gRkFMU0UsCiAgICAud2lkdGggPSAwLAogICAganVzdGlmaWNhdGlvbiA9IC0uMTUsCiAgICBhbHBoYSAgPSAuNCwKICAgIHBvaW50X2NvbG91ciA9IE5BKSArCiAgZ2VvbV9wb2ludChzaXplID0gMiwgYWxwaGEgPSAuNCwgcG9zaXRpb24gPSBwb3NpdGlvbl9qaXR0ZXIod2lkdGggPSAwLCBoZWlnaHQgPSAuMDUpKQpzdXBwcmVzc1dhcm5pbmdzKHByaW50KGhlYXJ0X3JhdGVfcmFpbikpCmhlYXJ0X3JhdGVfYWZleF9wbG90IDwtCiAgYWZleF9wbG90KAogICAgaGVhcnRfcmF0ZV9yZXBfYW5vdmEsCiAgICB4ID0gIlRhc2siLAogICAgdHJhY2UgPSAiR3JvdXAiLAogICAgZXJyb3IgPSAiYmV0d2VlbiIsCiAgICBlcnJvcl9hcmcgPSBsaXN0KHdpZHRoID0gLjE1KSwKICAgIGRvZGdlID0gLS41LAogICAgbWFwcGluZyA9IGMoImNvbG9yIiksCiAgICBwb2ludF9hcmcgPSBsaXN0KHNpemUgPSA0KQogICkKc3VwcHJlc3NXYXJuaW5ncyhwcmludChoZWFydF9yYXRlX2FmZXhfcGxvdCkpCm5pY2UoaGVhcnRfcmF0ZV9yZXBfYW5vdmEpCmFfcG9zdGVyaW9yaShoZWFydF9yYXRlX3JlcF9hbm92YSkKYGBgCgojIyBIZWFydCBSYXRlLCBOZXVyb0tpdDIgbWV0aG9kCmBgYHtyIGhlYXJ0X3JhdGVfbmsyLCBmaWcud2lkdGggPSAxMn0Kb3B0aW9ucyh3aWR0aCA9IDEwMCkKaGVhcnRfcmF0ZV9uazJfcmVwX2Fub3ZhIDwtIGFvdl9leigiSUQiLCAiaGVhcnRfcmF0ZV9uazIiLCBlbW9fZGF0YV9jbGVhbiwgd2l0aGluID0gYygiVGFzayIpLCBiZXR3ZWVuID0gYygiR3JvdXAiKSkKcmVwX2Fub3ZhX2RhdGEgICAgICAgPC0gaGVhcnRfcmF0ZV9uazJfcmVwX2Fub3ZhJGRhdGEkbG9uZwp4dGFicyh+IFRhc2sgKyBHcm91cCwgZGF0YSA9IHJlcF9hbm92YV9kYXRhKQpoZWFydF9yYXRlX25rMl9yYWluIDwtIGdncGxvdChyZXBfYW5vdmFfZGF0YSwgYWVzKHkgPSBUYXNrLCB4ID0gaGVhcnRfcmF0ZV9uazIsIGNvbG9yID0gR3JvdXAsIGZpbGwgPSBHcm91cCkpICsKICBzdGF0X2hhbGZleWUoCiAgICB0cmltICAgPSBGQUxTRSwKICAgIC53aWR0aCA9IDAsCiAgICBqdXN0aWZpY2F0aW9uID0gLS4xNSwKICAgIGFscGhhICA9IC40LAogICAgcG9pbnRfY29sb3VyID0gTkEpICsKICBnZW9tX3BvaW50KHNpemUgPSAyLCBhbHBoYSA9IC40LCBwb3NpdGlvbiA9IHBvc2l0aW9uX2ppdHRlcih3aWR0aCA9IDAsIGhlaWdodCA9IC4wNSkpCnN1cHByZXNzV2FybmluZ3MocHJpbnQoaGVhcnRfcmF0ZV9uazJfcmFpbikpCmhlYXJ0X3JhdGVfbmsyX2FmZXhfcGxvdCA8LQogIGFmZXhfcGxvdCgKICAgIGhlYXJ0X3JhdGVfbmsyX3JlcF9hbm92YSwKICAgIHggPSAiVGFzayIsCiAgICB0cmFjZSA9ICJHcm91cCIsCiAgICBlcnJvciA9ICJiZXR3ZWVuIiwKICAgIGVycm9yX2FyZyA9IGxpc3Qod2lkdGggPSAuMTUpLAogICAgZG9kZ2UgPSAtLjUsCiAgICBtYXBwaW5nID0gYygiY29sb3IiKSwKICAgIHBvaW50X2FyZyA9IGxpc3Qoc2l6ZSA9IDQpCiAgKQpzdXBwcmVzc1dhcm5pbmdzKHByaW50KGhlYXJ0X3JhdGVfbmsyX2FmZXhfcGxvdCkpCm5pY2UoaGVhcnRfcmF0ZV9uazJfcmVwX2Fub3ZhKQphX3Bvc3RlcmlvcmkoaGVhcnRfcmF0ZV9uazJfcmVwX2Fub3ZhKQpgYGAKCiMjIFJvb3QgTWVhbiBTcXVhcmUgb2YgdGhlIFN1Y2Nlc3NpdmUgRGlmZmVyZW5jZXMgKGxvZzEwKQpgYGB7ciByTVNTRCwgZmlnLndpZHRoID0gMTJ9Cm9wdGlvbnMod2lkdGggPSAxMDApCnJNU1NEX3JlcF9hbm92YSA8LSBhb3ZfZXooIklEIiwgImxvZzEwX3JNU1NEIiwgZW1vX2RhdGFfY2xlYW4sIHdpdGhpbiA9IGMoIlRhc2siKSwgYmV0d2VlbiA9IGMoIkdyb3VwIikpCnJlcF9hbm92YV9kYXRhICA8LSByTVNTRF9yZXBfYW5vdmEkZGF0YSRsb25nCnh0YWJzKH4gVGFzayArIEdyb3VwLCBkYXRhID0gcmVwX2Fub3ZhX2RhdGEpCmxvZzEwX3JNU1NEX3JhaW4gPC0gZ2dwbG90KHJlcF9hbm92YV9kYXRhLCBhZXMoeSA9IFRhc2ssIHggPSBsb2cxMF9yTVNTRCwgY29sb3IgPSBHcm91cCwgZmlsbCA9IEdyb3VwKSkgKwogIHN0YXRfaGFsZmV5ZSgKICAgIHRyaW0gICA9IEZBTFNFLAogICAgLndpZHRoID0gMCwKICAgIGp1c3RpZmljYXRpb24gPSAtLjE1LAogICAgYWxwaGEgID0gLjQsCiAgICBwb2ludF9jb2xvdXIgPSBOQSkgKwogIGdlb21fcG9pbnQoc2l6ZSA9IDIsIGFscGhhID0gLjQsIHBvc2l0aW9uID0gcG9zaXRpb25faml0dGVyKHdpZHRoID0gMCwgaGVpZ2h0ID0gLjA1KSkKc3VwcHJlc3NXYXJuaW5ncyhwcmludChsb2cxMF9yTVNTRF9yYWluKSkKck1TU0RfYWZleF9wbG90IDwtCiAgYWZleF9wbG90KAogICAgck1TU0RfcmVwX2Fub3ZhLAogICAgeCA9ICJUYXNrIiwKICAgIHRyYWNlID0gIkdyb3VwIiwKICAgIGVycm9yID0gImJldHdlZW4iLAogICAgZXJyb3JfYXJnID0gbGlzdCh3aWR0aCA9IC4xNSksCiAgICBkb2RnZSA9IC0uNSwKICAgIG1hcHBpbmcgPSBjKCJjb2xvciIpLAogICAgcG9pbnRfYXJnID0gbGlzdChzaXplID0gNCkKICApCnN1cHByZXNzV2FybmluZ3MocHJpbnQock1TU0RfYWZleF9wbG90KSkKbmljZShyTVNTRF9yZXBfYW5vdmEpCmFfcG9zdGVyaW9yaShyTVNTRF9yZXBfYW5vdmEpCmBgYAoKIyMgUm9vdCBNZWFuIFNxdWFyZSBvZiB0aGUgU3VjY2Vzc2l2ZSBEaWZmZXJlbmNlcyAobG9nMTApLCBOZXVyb0tpdDIgbWV0aG9kCmBgYHtyIGxvZzEwX2hydl9ybXNzZF9uazIsIGZpZy53aWR0aCA9IDEyfQpvcHRpb25zKHdpZHRoID0gMTAwKQpsb2cxMF9ocnZfcm1zc2RfbmsyX3JlcF9hbm92YSA8LSBhb3ZfZXooIklEIiwgImxvZzEwX2hydl9ybXNzZF9uazIiLCBlbW9fZGF0YV9jbGVhbiwgd2l0aGluID0gYygiVGFzayIpLCBiZXR3ZWVuID0gYygiR3JvdXAiKSkKcmVwX2Fub3ZhX2RhdGEgIDwtIGxvZzEwX2hydl9ybXNzZF9uazJfcmVwX2Fub3ZhJGRhdGEkbG9uZwp4dGFicyh+IFRhc2sgKyBHcm91cCwgZGF0YSA9IHJlcF9hbm92YV9kYXRhKQpsb2cxMF9ocnZfcm1zc2RfbmsyX3JhaW4gPC0gZ2dwbG90KHJlcF9hbm92YV9kYXRhLCBhZXMoeSA9IFRhc2ssIHggPSBsb2cxMF9ocnZfcm1zc2RfbmsyLCBjb2xvciA9IEdyb3VwLCBmaWxsID0gR3JvdXApKSArCiAgc3RhdF9oYWxmZXllKAogICAgdHJpbSAgID0gRkFMU0UsCiAgICAud2lkdGggPSAwLAogICAganVzdGlmaWNhdGlvbiA9IC0uMTUsCiAgICBhbHBoYSAgPSAuNCwKICAgIHBvaW50X2NvbG91ciA9IE5BKSArCiAgZ2VvbV9wb2ludChzaXplID0gMiwgYWxwaGEgPSAuNCwgcG9zaXRpb24gPSBwb3NpdGlvbl9qaXR0ZXIod2lkdGggPSAwLCBoZWlnaHQgPSAuMDUpKQpzdXBwcmVzc1dhcm5pbmdzKHByaW50KGxvZzEwX2hydl9ybXNzZF9uazJfcmFpbikpCmxvZzEwX2hydl9ybXNzZF9uazJfYWZleF9wbG90IDwtCiAgYWZleF9wbG90KAogICAgbG9nMTBfaHJ2X3Jtc3NkX25rMl9yZXBfYW5vdmEsCiAgICB4ID0gIlRhc2siLAogICAgdHJhY2UgPSAiR3JvdXAiLAogICAgZXJyb3IgPSAiYmV0d2VlbiIsCiAgICBlcnJvcl9hcmcgPSBsaXN0KHdpZHRoID0gLjE1KSwKICAgIGRvZGdlID0gLS41LAogICAgbWFwcGluZyA9IGMoImNvbG9yIiksCiAgICBwb2ludF9hcmcgPSBsaXN0KHNpemUgPSA0KQogICkKc3VwcHJlc3NXYXJuaW5ncyhwcmludChsb2cxMF9ocnZfcm1zc2RfbmsyX2FmZXhfcGxvdCkpCm5pY2UobG9nMTBfaHJ2X3Jtc3NkX25rMl9yZXBfYW5vdmEpCmFfcG9zdGVyaW9yaShsb2cxMF9ocnZfcm1zc2RfbmsyX3JlcF9hbm92YSkKYGBgCgojIyBFQ0ctRGVyaXZlZCBSZXNwaXJhdGlvbgpgYGB7ciByc3BfcmF0ZSwgZmlnLndpZHRoID0gMTJ9Cm9wdGlvbnMod2lkdGggPSAxMDApCnJzcF9yYXRlX3JlcF9hbm92YSA8LSBhb3ZfZXooIklEIiwgInJzcF9yYXRlIiwgZW1vX2RhdGFfY2xlYW4sIHdpdGhpbiA9IGMoIlRhc2siKSwgYmV0d2VlbiA9IGMoIkdyb3VwIikpCnJlcF9hbm92YV9kYXRhICAgICA8LSByc3BfcmF0ZV9yZXBfYW5vdmEkZGF0YSRsb25nCnh0YWJzKH4gVGFzayArIEdyb3VwLCBkYXRhID0gcmVwX2Fub3ZhX2RhdGEpCnJzcF9yYXRlX3JhaW4gPC0gZ2dwbG90KHJlcF9hbm92YV9kYXRhLCBhZXMoeSA9IFRhc2ssIHggPSByc3BfcmF0ZSwgY29sb3IgPSBHcm91cCwgZmlsbCA9IEdyb3VwKSkgKwogIHN0YXRfaGFsZmV5ZSgKICAgIHRyaW0gICA9IEZBTFNFLAogICAgLndpZHRoID0gMCwKICAgIGp1c3RpZmljYXRpb24gPSAtLjE1LAogICAgYWxwaGEgID0gLjQsCiAgICBwb2ludF9jb2xvdXIgPSBOQSkgKwogIGdlb21fcG9pbnQoc2l6ZSA9IDIsIGFscGhhID0gLjQsIHBvc2l0aW9uID0gcG9zaXRpb25faml0dGVyKHdpZHRoID0gMCwgaGVpZ2h0ID0gLjA1KSkKc3VwcHJlc3NXYXJuaW5ncyhwcmludChyc3BfcmF0ZV9yYWluKSkKcnNwX3JhdGVfYWZleF9wbG90IDwtCiAgYWZleF9wbG90KAogICAgcnNwX3JhdGVfcmVwX2Fub3ZhLAogICAgeCA9ICJUYXNrIiwKICAgIHRyYWNlID0gIkdyb3VwIiwKICAgIGVycm9yID0gImJldHdlZW4iLAogICAgZXJyb3JfYXJnID0gbGlzdCh3aWR0aCA9IC4xNSksCiAgICBkb2RnZSA9IC0uNSwKICAgIG1hcHBpbmcgPSBjKCJjb2xvciIpLAogICAgcG9pbnRfYXJnID0gbGlzdChzaXplID0gNCkKICApCnN1cHByZXNzV2FybmluZ3MocHJpbnQocnNwX3JhdGVfYWZleF9wbG90KSkKbmljZShyc3BfcmF0ZV9yZXBfYW5vdmEpCmFfcG9zdGVyaW9yaShyc3BfcmF0ZV9yZXBfYW5vdmEpCmBgYAoKIyMgUm9vdCBtZWFuIHNxdWFyZSBvZiBzdWNjZXNzaXZlIGRpZmZlcmVuY2VzIG9mIHRoZSBicmVhdGgtdG8tYnJlYXRoIGludGVydmFscwpgYGB7ciBycnZfcm1zc2QsIGZpZy53aWR0aCA9IDEyfQpvcHRpb25zKHdpZHRoID0gMTAwKQpycnZfcm1zc2RfcmVwX2Fub3ZhIDwtIGFvdl9leigiSUQiLCAicnJ2X3Jtc3NkIiwgZW1vX2RhdGFfY2xlYW4sIHdpdGhpbiA9IGMoIlRhc2siKSwgYmV0d2VlbiA9IGMoIkdyb3VwIikpCnJlcF9hbm92YV9kYXRhICAgICAgPC0gcnJ2X3Jtc3NkX3JlcF9hbm92YSRkYXRhJGxvbmcKeHRhYnMofiBUYXNrICsgR3JvdXAsIGRhdGEgPSByZXBfYW5vdmFfZGF0YSkKcnJ2X3Jtc3NkX3JhaW4gPC0gZ2dwbG90KHJlcF9hbm92YV9kYXRhLCBhZXMoeSA9IFRhc2ssIHggPSBycnZfcm1zc2QsIGNvbG9yID0gR3JvdXAsIGZpbGwgPSBHcm91cCkpICsKICBzdGF0X2hhbGZleWUoCiAgICB0cmltICAgPSBGQUxTRSwKICAgIC53aWR0aCA9IDAsCiAgICBqdXN0aWZpY2F0aW9uID0gLS4xNSwKICAgIGFscGhhICA9IC40LAogICAgcG9pbnRfY29sb3VyID0gTkEpICsKICBnZW9tX3BvaW50KHNpemUgPSAyLCBhbHBoYSA9IC40LCBwb3NpdGlvbiA9IHBvc2l0aW9uX2ppdHRlcih3aWR0aCA9IDAsIGhlaWdodCA9IC4wNSkpCnN1cHByZXNzV2FybmluZ3MocHJpbnQocnJ2X3Jtc3NkX3JhaW4pKQpycnZfcm1zc2RfYWZleF9wbG90IDwtCiAgYWZleF9wbG90KAogICAgcnJ2X3Jtc3NkX3JlcF9hbm92YSwKICAgIHggPSAiVGFzayIsCiAgICB0cmFjZSA9ICJHcm91cCIsCiAgICBlcnJvciA9ICJiZXR3ZWVuIiwKICAgIGVycm9yX2FyZyA9IGxpc3Qod2lkdGggPSAuMTUpLAogICAgZG9kZ2UgPSAtLjUsCiAgICBtYXBwaW5nID0gYygiY29sb3IiKSwKICAgIHBvaW50X2FyZyA9IGxpc3Qoc2l6ZSA9IDQpCiAgKQpzdXBwcmVzc1dhcm5pbmdzKHByaW50KHJydl9ybXNzZF9hZmV4X3Bsb3QpKQpuaWNlKHJydl9ybXNzZF9yZXBfYW5vdmEpCmFfcG9zdGVyaW9yaShycnZfcm1zc2RfcmVwX2Fub3ZhKQpgYGAKCiMjIFJlc3BpcmF0b3J5IFNpbnVzIEFycmh5dGhtaWEsIFJTQSAoUG9yZ2VzLUJvaHJlciBhbGdvcml0aG0pCmBgYHtyIHJzYV9wb3JnZXMsIGZpZy53aWR0aCA9IDEyfQpvcHRpb25zKHdpZHRoID0gMTAwKQpyc2FfcG9yZ2VzX3JlcF9hbm92YSA8LSBhb3ZfZXooIklEIiwgInJzYV9wb3JnZXMiLCBlbW9fZGF0YV9jbGVhbiwgd2l0aGluID0gYygiVGFzayIpLCBiZXR3ZWVuID0gYygiR3JvdXAiKSkKcmVwX2Fub3ZhX2RhdGEgICAgICAgPC0gcnNhX3Bvcmdlc19yZXBfYW5vdmEkZGF0YSRsb25nCnh0YWJzKH4gVGFzayArIEdyb3VwLCBkYXRhID0gcmVwX2Fub3ZhX2RhdGEpCnJzYV9wb3JnZXNfcmFpbiA8LSBnZ3Bsb3QocmVwX2Fub3ZhX2RhdGEsIGFlcyh5ID0gVGFzaywgeCA9IHJzYV9wb3JnZXMsIGNvbG9yID0gR3JvdXAsIGZpbGwgPSBHcm91cCkpICsKICBzdGF0X2hhbGZleWUoCiAgICB0cmltICAgPSBGQUxTRSwKICAgIC53aWR0aCA9IDAsCiAgICBqdXN0aWZpY2F0aW9uID0gLS4xNSwKICAgIGFscGhhICA9IC40LAogICAgcG9pbnRfY29sb3VyID0gTkEpICsKICBnZW9tX3BvaW50KHNpemUgPSAyLCBhbHBoYSA9IC40LCBwb3NpdGlvbiA9IHBvc2l0aW9uX2ppdHRlcih3aWR0aCA9IDAsIGhlaWdodCA9IC4wNSkpCnN1cHByZXNzV2FybmluZ3MocHJpbnQocnNhX3Bvcmdlc19yYWluKSkKcnNhX3Bvcmdlc19hZmV4X3Bsb3QgPC0KICBhZmV4X3Bsb3QoCiAgICByc2FfcG9yZ2VzX3JlcF9hbm92YSwKICAgIHggPSAiVGFzayIsCiAgICB0cmFjZSA9ICJHcm91cCIsCiAgICBlcnJvciA9ICJiZXR3ZWVuIiwKICAgIGVycm9yX2FyZyA9IGxpc3Qod2lkdGggPSAuMTUpLAogICAgZG9kZ2UgPSAtLjUsCiAgICBtYXBwaW5nID0gYygiY29sb3IiKSwKICAgIHBvaW50X2FyZyA9IGxpc3Qoc2l6ZSA9IDQpCiAgKQpzdXBwcmVzc1dhcm5pbmdzKHByaW50KHJzYV9wb3JnZXNfYWZleF9wbG90KSkKbmljZShyc2FfcG9yZ2VzX3JlcF9hbm92YSkKYV9wb3N0ZXJpb3JpKHJzYV9wb3JnZXNfcmVwX2Fub3ZhKQpgYGAKCiMgRWxlY3Ryb2Rlcm1hbCBBY3Rpdml0eQpSZXN1bHRhZG9zIG11dXV1dXkgdGVudGF0aXZvcyBwb3IgbGEgY2FsaWRhZCBlcnLDoXRpY2EgZGUgbG9zIHJlZ2lzdHJvcwoKIyMgTWVhbiBQaGFzaWMgQ29tcG9uZW50IChsb2cxMCkKYGBge3IgYXZlX3BoYXNpY19lZGEsIGZpZy53aWR0aCA9IDEyfQpvcHRpb25zKHdpZHRoID0gMTAwKQpsb2cxMF9hdmVfcGhhc2ljX2VkYV9yZXBfYW5vdmEgPSBhb3ZfZXooIklEIiwgImxvZzEwX2F2ZV9waGFzaWNfZWRhIiwgZW1vX2RhdGFfY2xlYW4sIHdpdGhpbiA9IGMoIlRhc2siKSwgYmV0d2VlbiA9IGMoIkdyb3VwIikpCnJlcF9hbm92YV9kYXRhICAgICAgIDwtIGxvZzEwX2F2ZV9waGFzaWNfZWRhX3JlcF9hbm92YSRkYXRhJGxvbmcKeHRhYnMofiBUYXNrICsgR3JvdXAsIGRhdGEgPSByZXBfYW5vdmFfZGF0YSkKbG9nMTBfYXZlX3BoYXNpY19lZGFfcmFpbiA8LSBnZ3Bsb3QocmVwX2Fub3ZhX2RhdGEsIGFlcyh5ID0gVGFzaywgeCA9IGxvZzEwX2F2ZV9waGFzaWNfZWRhLCBjb2xvciA9IEdyb3VwLCBmaWxsID0gR3JvdXApKSArCiAgc3RhdF9oYWxmZXllKAogICAgdHJpbSAgID0gRkFMU0UsCiAgICAud2lkdGggPSAwLAogICAganVzdGlmaWNhdGlvbiA9IC0uMTUsCiAgICBhbHBoYSAgPSAuNCwKICAgIHBvaW50X2NvbG91ciA9IE5BKSArCiAgZ2VvbV9wb2ludChzaXplID0gMiwgYWxwaGEgPSAuNCwgcG9zaXRpb24gPSBwb3NpdGlvbl9qaXR0ZXIod2lkdGggPSAwLCBoZWlnaHQgPSAuMDUpKQpzdXBwcmVzc1dhcm5pbmdzKHByaW50KGxvZzEwX2F2ZV9waGFzaWNfZWRhX3JhaW4pKQpsb2cxMF9hdmVfcGhhc2ljX2VkYV9hZmV4X3Bsb3QgPC0KICBhZmV4X3Bsb3QoCiAgICBsb2cxMF9hdmVfcGhhc2ljX2VkYV9yZXBfYW5vdmEsCiAgICB4ID0gIlRhc2siLAogICAgdHJhY2UgPSAiR3JvdXAiLAogICAgZXJyb3IgPSAiYmV0d2VlbiIsCiAgICBlcnJvcl9hcmcgPSBsaXN0KHdpZHRoID0gLjE1KSwKICAgIGRvZGdlID0gLS41LAogICAgbWFwcGluZyA9IGMoImNvbG9yIiksCiAgICBwb2ludF9hcmcgPSBsaXN0KHNpemUgPSA0KQogICkKc3VwcHJlc3NXYXJuaW5ncyhwcmludChsb2cxMF9hdmVfcGhhc2ljX2VkYV9hZmV4X3Bsb3QpKQpuaWNlKGxvZzEwX2F2ZV9waGFzaWNfZWRhX3JlcF9hbm92YSkKYV9wb3N0ZXJpb3JpKGxvZzEwX2F2ZV9waGFzaWNfZWRhX3JlcF9hbm92YSkKYGBgCgojIyBOdW1iZXIgb2YgU0NSIFBlYWtzIChsb2cxMCkKYGBge3Igc2NyX3BlYWtzX251bWJlciwgZmlnLndpZHRoID0gMTJ9Cm9wdGlvbnMod2lkdGggPSAxMDApCmxvZzEwX3Njcl9wZWFrc19udW1iZXJfcmVwX2Fub3ZhIDwtIGFvdl9leigiSUQiLCAibG9nMTBfc2NyX3BlYWtzX251bWJlciIsIGVtb19kYXRhX2NsZWFuLCB3aXRoaW4gPSBjKCJUYXNrIiksIGJldHdlZW4gPSBjKCJHcm91cCIpKQpyZXBfYW5vdmFfZGF0YSAgICAgICAgICAgICAgICAgICA8LSBsb2cxMF9zY3JfcGVha3NfbnVtYmVyX3JlcF9hbm92YSRkYXRhJGxvbmcKeHRhYnMofiBUYXNrICsgR3JvdXAsIGRhdGEgPSByZXBfYW5vdmFfZGF0YSkKbG9nMTBfc2NyX3BlYWtzX251bWJlcl9yYWluIDwtIGdncGxvdChyZXBfYW5vdmFfZGF0YSwgYWVzKHkgPSBUYXNrLCB4ID0gbG9nMTBfc2NyX3BlYWtzX251bWJlciwgY29sb3IgPSBHcm91cCwgZmlsbCA9IEdyb3VwKSkgKwogIHN0YXRfaGFsZmV5ZSgKICAgIHRyaW0gICA9IEZBTFNFLAogICAgLndpZHRoID0gMCwKICAgIGp1c3RpZmljYXRpb24gPSAtLjE1LAogICAgYWxwaGEgID0gLjQsCiAgICBwb2ludF9jb2xvdXIgPSBOQSkgKwogIGdlb21fcG9pbnQoc2l6ZSA9IDIsIGFscGhhID0gLjQsIHBvc2l0aW9uID0gcG9zaXRpb25faml0dGVyKHdpZHRoID0gMCwgaGVpZ2h0ID0gLjA1KSkKc3VwcHJlc3NXYXJuaW5ncyhwcmludChsb2cxMF9zY3JfcGVha3NfbnVtYmVyX3JhaW4pKQpsb2cxMF9zY3JfcGVha3NfbnVtYmVyX2FmZXhfcGxvdCA8LQogIGFmZXhfcGxvdCgKICAgIGxvZzEwX3Njcl9wZWFrc19udW1iZXJfcmVwX2Fub3ZhLAogICAgeCA9ICJUYXNrIiwKICAgIHRyYWNlID0gIkdyb3VwIiwKICAgIGVycm9yID0gImJldHdlZW4iLAogICAgZXJyb3JfYXJnID0gbGlzdCh3aWR0aCA9IC4xNSksCiAgICBkb2RnZSA9IC0uNSwKICAgIG1hcHBpbmcgPSBjKCJjb2xvciIpLAogICAgcG9pbnRfYXJnID0gbGlzdChzaXplID0gNCkKICApCnN1cHByZXNzV2FybmluZ3MocHJpbnQobG9nMTBfc2NyX3BlYWtzX251bWJlcl9hZmV4X3Bsb3QpKQpuaWNlKGxvZzEwX3Njcl9wZWFrc19udW1iZXJfcmVwX2Fub3ZhKQphX3Bvc3RlcmlvcmkobG9nMTBfc2NyX3BlYWtzX251bWJlcl9yZXBfYW5vdmEpCmBgYAoKIyMgTWVhbiBTQ1IgQW1wbGl0dWRlIChsb2cxMCkKYGBge3Igc2NyX21lYW5fYW1wbGl0dWRlLCBmaWcud2lkdGggPSAxMn0Kb3B0aW9ucyh3aWR0aCA9IDEwMCkKbG9nMTBfc2NyX21lYW5fYW1wbGl0dWRlX3JlcF9hbm92YSA8LSBhb3ZfZXooIklEIiwgImxvZzEwX3Njcl9tZWFuX2FtcGxpdHVkZSIsIGVtb19kYXRhX2NsZWFuLCB3aXRoaW4gPSBjKCJUYXNrIiksIGJldHdlZW4gPSBjKCJHcm91cCIpKQpyZXBfYW5vdmFfZGF0YSAgICAgICAgICAgICAgICAgICAgIDwtIGxvZzEwX3Njcl9tZWFuX2FtcGxpdHVkZV9yZXBfYW5vdmEkZGF0YSRsb25nCnh0YWJzKH4gVGFzayArIEdyb3VwLCBkYXRhID0gcmVwX2Fub3ZhX2RhdGEpCmxvZzEwX3Njcl9tZWFuX2FtcGxpdHVkZV9yYWluIDwtIGdncGxvdChyZXBfYW5vdmFfZGF0YSwgYWVzKHkgPSBUYXNrLCB4ID0gbG9nMTBfc2NyX21lYW5fYW1wbGl0dWRlLCBjb2xvciA9IEdyb3VwLCBmaWxsID0gR3JvdXApKSArCiAgc3RhdF9oYWxmZXllKAogICAgdHJpbSAgID0gRkFMU0UsCiAgICAud2lkdGggPSAwLAogICAganVzdGlmaWNhdGlvbiA9IC0uMTUsCiAgICBhbHBoYSAgPSAuNCwKICAgIHBvaW50X2NvbG91ciA9IE5BKSArCiAgZ2VvbV9wb2ludChzaXplID0gMiwgYWxwaGEgPSAuNCwgcG9zaXRpb24gPSBwb3NpdGlvbl9qaXR0ZXIod2lkdGggPSAwLCBoZWlnaHQgPSAuMDUpKQpzdXBwcmVzc1dhcm5pbmdzKHByaW50KGxvZzEwX3Njcl9tZWFuX2FtcGxpdHVkZV9yYWluKSkKbG9nMTBfc2NyX21lYW5fYW1wbGl0dWRlX2FmZXhfcGxvdCA8LQogIGFmZXhfcGxvdCgKICAgIGxvZzEwX3Njcl9tZWFuX2FtcGxpdHVkZV9yZXBfYW5vdmEsCiAgICB4ID0gIlRhc2siLAogICAgdHJhY2UgPSAiR3JvdXAiLAogICAgZXJyb3IgPSAiYmV0d2VlbiIsCiAgICBlcnJvcl9hcmcgPSBsaXN0KHdpZHRoID0gLjE1KSwKICAgIGRvZGdlID0gLS41LAogICAgbWFwcGluZyA9IGMoImNvbG9yIiksCiAgICBwb2ludF9hcmcgPSBsaXN0KHNpemUgPSA0KQogICkKc3VwcHJlc3NXYXJuaW5ncyhwcmludChsb2cxMF9zY3JfbWVhbl9hbXBsaXR1ZGVfYWZleF9wbG90KSkKbmljZShsb2cxMF9zY3JfbWVhbl9hbXBsaXR1ZGVfcmVwX2Fub3ZhKQphX3Bvc3RlcmlvcmkobG9nMTBfc2NyX21lYW5fYW1wbGl0dWRlX3JlcF9hbm92YSkKYGBgCg==