安裝需要的packages

packages = c("dplyr","ggplot2", "data.table", "scales", "tidytext","ltm","rstatix")
existing = as.character(installed.packages()[,1])
for(pkg in packages[!(packages %in% existing)]) install.packages(pkg)
WARNING: Rtools is required to build R packages but is not currently installed. Please download and install the appropriate version of Rtools before proceeding:

https://cran.rstudio.com/bin/windows/Rtools/
將程式套件安載入 ‘C:/Users/yuehchi/AppData/Local/R/win-library/4.2’
(因為 ‘lib’ 沒有被指定)
還安裝相依關係 ‘rprojroot’, ‘diffobj’, ‘brio’, ‘desc’, ‘pkgload’, ‘praise’, ‘waldo’, ‘testthat’, ‘numDeriv’, ‘SparseM’, ‘MatrixModels’, ‘minqa’, ‘nloptr’, ‘RcppEigen’, ‘carData’, ‘abind’, ‘pbkrtest’, ‘quantreg’, ‘lme4’, ‘corrplot’, ‘car’

trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.2/rprojroot_2.0.3.zip'
Content type 'application/zip' length 109359 bytes (106 KB)
downloaded 106 KB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.2/diffobj_0.3.5.zip'
Content type 'application/zip' length 990493 bytes (967 KB)
downloaded 967 KB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.2/brio_1.1.3.zip'
Content type 'application/zip' length 38376 bytes (37 KB)
downloaded 37 KB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.2/desc_1.4.2.zip'
Content type 'application/zip' length 325760 bytes (318 KB)
downloaded 318 KB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.2/pkgload_1.3.2.zip'
Content type 'application/zip' length 178465 bytes (174 KB)
downloaded 174 KB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.2/praise_1.0.0.zip'
Content type 'application/zip' length 19849 bytes (19 KB)
downloaded 19 KB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.2/waldo_0.4.0.zip'
Content type 'application/zip' length 101857 bytes (99 KB)
downloaded 99 KB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.2/testthat_3.1.6.zip'
Content type 'application/zip' length 2102883 bytes (2.0 MB)
downloaded 2.0 MB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.2/numDeriv_2016.8-1.1.zip'
Content type 'application/zip' length 116102 bytes (113 KB)
downloaded 113 KB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.2/SparseM_1.81.zip'
Content type 'application/zip' length 1026945 bytes (1002 KB)
downloaded 1002 KB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.2/MatrixModels_0.5-1.zip'
Content type 'application/zip' length 425321 bytes (415 KB)
downloaded 415 KB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.2/minqa_1.2.5.zip'
Content type 'application/zip' length 449260 bytes (438 KB)
downloaded 438 KB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.2/nloptr_2.0.3.zip'
Content type 'application/zip' length 1002127 bytes (978 KB)
downloaded 978 KB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.2/RcppEigen_0.3.3.9.3.zip'
Content type 'application/zip' length 2277032 bytes (2.2 MB)
downloaded 2.2 MB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.2/carData_3.0-5.zip'
Content type 'application/zip' length 1822165 bytes (1.7 MB)
downloaded 1.7 MB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.2/abind_1.4-5.zip'
Content type 'application/zip' length 63750 bytes (62 KB)
downloaded 62 KB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.2/pbkrtest_0.5.1.zip'
Content type 'application/zip' length 356428 bytes (348 KB)
downloaded 348 KB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.2/quantreg_5.94.zip'
Content type 'application/zip' length 1726873 bytes (1.6 MB)
downloaded 1.6 MB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.2/lme4_1.1-31.zip'
Content type 'application/zip' length 4525763 bytes (4.3 MB)
downloaded 4.3 MB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.2/corrplot_0.92.zip'
Content type 'application/zip' length 3844668 bytes (3.7 MB)
downloaded 3.7 MB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.2/car_3.1-1.zip'
Content type 'application/zip' length 1706088 bytes (1.6 MB)
downloaded 1.6 MB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.2/rstatix_0.7.1.zip'
Content type 'application/zip' length 608739 bytes (594 KB)
downloaded 594 KB
程式套件 ‘rprojroot’ 開啟成功,MD5 和檢查也透過
程式套件 ‘diffobj’ 開啟成功,MD5 和檢查也透過
程式套件 ‘brio’ 開啟成功,MD5 和檢查也透過
程式套件 ‘desc’ 開啟成功,MD5 和檢查也透過
程式套件 ‘pkgload’ 開啟成功,MD5 和檢查也透過
程式套件 ‘praise’ 開啟成功,MD5 和檢查也透過
程式套件 ‘waldo’ 開啟成功,MD5 和檢查也透過
程式套件 ‘testthat’ 開啟成功,MD5 和檢查也透過
程式套件 ‘numDeriv’ 開啟成功,MD5 和檢查也透過
程式套件 ‘SparseM’ 開啟成功,MD5 和檢查也透過
程式套件 ‘MatrixModels’ 開啟成功,MD5 和檢查也透過
程式套件 ‘minqa’ 開啟成功,MD5 和檢查也透過
程式套件 ‘nloptr’ 開啟成功,MD5 和檢查也透過
程式套件 ‘RcppEigen’ 開啟成功,MD5 和檢查也透過
程式套件 ‘carData’ 開啟成功,MD5 和檢查也透過
程式套件 ‘abind’ 開啟成功,MD5 和檢查也透過
程式套件 ‘pbkrtest’ 開啟成功,MD5 和檢查也透過
程式套件 ‘quantreg’ 開啟成功,MD5 和檢查也透過
程式套件 ‘lme4’ 開啟成功,MD5 和檢查也透過
程式套件 ‘corrplot’ 開啟成功,MD5 和檢查也透過
程式套件 ‘car’ 開啟成功,MD5 和檢查也透過
程式套件 ‘rstatix’ 開啟成功,MD5 和檢查也透過

下載的二進位程式套件在
    C:\Users\yuehchi\AppData\Local\Temp\RtmpSQ1800\downloaded_packages 裡

載入需要的packages以及資料

require(dplyr)
require(ggplot2)
require(data.table)
require(scales)
require(wordcloud2)
require(tidytext)
require(ltm)
require(rstatix)

載入資料

TB = read.csv('data.csv')
TB$單因子組別= factor(TB$單因子組別)
TB$雙因子組別= factor(TB$雙因子組別)
TB$time= factor(TB$time)

檢視前6筆資料

head(TB)

cronbach alpha

1.加總值平均(沉浸感)

# cronbach alpha

head(TB[6:9])
cronbach.alpha(TB[6:9], CI=TRUE, standardized=TRUE)

Standardized Cronbach's alpha for the 'TB[6:9]' data-set

Items: 4
Sample units: 120
alpha: 0.655

Bootstrap 95% CI based on 1000 samples
 2.5% 97.5% 
0.524 0.760 
new_tb <- data.frame(TB$沉浸感1,TB$沉浸感3,TB$沉浸感4)
head(new_tb)
cronbach.alpha(new_tb,CI= TRUE, standardized = TRUE)

Standardized Cronbach's alpha for the 'new_tb' data-set

Items: 3
Sample units: 120
alpha: 0.7

Bootstrap 95% CI based on 1000 samples
 2.5% 97.5% 
0.572 0.792 

Items: 4 Sample units: 120 alpha: 0.655 alpha 沒有超過0.70,拿掉沉浸感2,再做一次 Items: 3 Sample units: 120 alpha: 0.7

2.加總值平均(自我創造力) -> 顯著性與boxplot

# cronbach alpha

head(TB[16:18])
cronbach.alpha(TB[16:18], CI=TRUE, standardized=TRUE)

Standardized Cronbach's alpha for the 'TB[16:18]' data-set

Items: 3
Sample units: 120
alpha: 0.823

Bootstrap 95% CI based on 1000 samples
 2.5% 97.5% 
0.762 0.871 

Items: 3 Sample units: 120 alpha: 0.823

3.加總值平均(社交互動 Social Interaction) -> 顯著性與boxplot

# cronbach alpha

head(TB[19:27])
cronbach.alpha(TB[19:27], CI=TRUE, standardized=TRUE)

Standardized Cronbach's alpha for the 'TB[19:27]' data-set

Items: 9
Sample units: 120
alpha: 0.842

Bootstrap 95% CI based on 1000 samples
 2.5% 97.5% 
0.796 0.876 

Items: 9 Sample units: 120 alpha: 0.842

4.加總值平均(社交互動 Social Interaction:QOI) -> 顯著性與boxplot

# cronbach alpha

head(TB[19:22])
cronbach.alpha(TB[19:22], CI=TRUE, standardized=TRUE)

Standardized Cronbach's alpha for the 'TB[19:22]' data-set

Items: 4
Sample units: 120
alpha: 0.834

Bootstrap 95% CI based on 1000 samples
 2.5% 97.5% 
0.777 0.875 

Items: 4 Sample units: 120 alpha: 0.834

5.加總值平均(社交互動 Social Interaction:SM) -> 顯著性與boxplot

# cronbach alpha

head(TB[23:27])
cronbach.alpha(TB[23:27], CI=TRUE, standardized=TRUE)

Standardized Cronbach's alpha for the 'TB[23:27]' data-set

Items: 5
Sample units: 120
alpha: 0.707

Bootstrap 95% CI based on 1000 samples
 2.5% 97.5% 
0.600 0.786 

Items: 5 Sample units: 120 alpha: 0.707

單因子分析: 切換場景(S) VS 不切換場景(N)

1.加總值平均(沉浸感) -> 顯著性與boxplot

# cronbach alpha

head(TB[6:9])
cronbach.alpha(TB[6:9], CI=TRUE, standardized=TRUE)

Standardized Cronbach's alpha for the 'TB[6:9]' data-set

Items: 4
Sample units: 120
alpha: 0.655

Bootstrap 95% CI based on 1000 samples
 2.5% 97.5% 
0.515 0.749 
new_tb <- data.frame(TB$沉浸感1,TB$沉浸感3,TB$沉浸感4)
head(new_tb)
cronbach.alpha(new_tb,CI= TRUE, standardized = TRUE)

Standardized Cronbach's alpha for the 'new_tb' data-set

Items: 3
Sample units: 120
alpha: 0.7

Bootstrap 95% CI based on 1000 samples
 2.5% 97.5% 
0.575 0.794 
# 根據上面cronbach.alpha的結果,拿掉沉浸感2

TB <- transform(TB, all_immer = (TB$沉浸感1 + TB$沉浸感3 + TB$沉浸感4)/3)

Result = aov(TB$all_immer~TB$單因子組別)

model.tables(Result,type="means")
Tables of means
Grand mean
         
5.202778 

 TB$單因子組別 
TB$單因子組別
    N     S 
4.989 5.417 
get_summary_stats(group_by(TB, 單因子組別, ), all_immer, type = "mean_sd")


summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)  
TB$單因子組別   1   5.49   5.490   4.558 0.0348 *
Residuals     118 142.13   1.205                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
  1. 結果: One-way Anova (單因子分析: 加總平均主題分數)
  2. 不切換場景與切換場景 -> 沉浸感
  3. 顯著差異: Pr(>F) 0.0348 * (0.01 ’*’)
boxplot(formula = TB$all_immer ~TB$單因子組別,
        data =TB,
        xlab = "組別",
        ylab = "沉浸感) -> 顯著性",
        col = "gray")


ggplot(TB, aes(x = 單因子組別, y = all_immer)) +   # Draw ggplot2 boxplot
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", col = "red") +  # Add points to plot
  stat_summary(fun = mean, geom = "text", col = "red",     # Add text to plot
               vjust = 1.5, aes(label = paste("Mean:", round(after_stat(y), digits = 1))))

2.加總值平均(自我創造力) -> 顯著性與boxplot

# cronbach alpha

head(TB[16:18])
cronbach.alpha(TB[16:18], CI=TRUE, standardized=TRUE)

Standardized Cronbach's alpha for the 'TB[16:18]' data-set

Items: 3
Sample units: 120
alpha: 0.823

Bootstrap 95% CI based on 1000 samples
 2.5% 97.5% 
0.753 0.872 
TB <- transform(TB, all_creative = (TB$想法數量 + TB$品質 + TB$創造力)/3)
Result = aov(TB$all_creative~TB$單因子組別)
get_summary_stats(group_by(TB, 單因子組別, ), all_creative, type = "mean_sd")
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)  
TB$單因子組別   1   5.49   5.490   5.482 0.0209 *
Residuals     118 118.18   1.001                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
  1. 結果: One-way Anova (單因子分析: 加總平均主題分數)
  2. 不切換場景與切換場景 -> 創造力
  3. 顯著差異: Pr(>F) 0.0209 * (0.01 ’*’)
boxplot(formula = TB$all_creative ~TB$單因子組別,
        data =TB,
        xlab = "組別",
        ylab = "自我創造力) -> 顯著性",
        col = "gray")


ggplot(TB, aes(x = 單因子組別, y = all_creative)) +   # Draw ggplot2 boxplot
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", col = "red") +  # Add points to plot
  stat_summary(fun = mean, geom = "text", col = "red",     # Add text to plot
               vjust = 1.5, aes(label = paste("Mean:", round(after_stat(y), digits = 1))))

3.加總值平均(社交互動 Social Interaction) -> 顯著性與boxplot

# cronbach alpha

head(TB[19:27])
cronbach.alpha(TB[19:27], CI=TRUE, standardized=TRUE)

Standardized Cronbach's alpha for the 'TB[19:27]' data-set

Items: 9
Sample units: 120
alpha: 0.842

Bootstrap 95% CI based on 1000 samples
 2.5% 97.5% 
0.796 0.875 
TB <- transform(TB, all_SI = (TB$QoI1 + TB$QoI2 + TB$QoI3 + TB$QoI4 + TB$SM1 + TB$SM2 + TB$SM3 + TB$SM4 + TB$SM5)/9)
Result = aov(TB$all_SI~TB$單因子組別)
get_summary_stats(group_by(TB, 單因子組別, ), all_SI, type = "mean_sd")
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$單因子組別   1   0.91  0.9091    1.03  0.312
Residuals     118 104.11  0.8823               
  1. 結果: One-way Anova (單因子分析: 加總平均主題分數)
  2. 不切換場景與切換場景 -> 社交互動(9題)
  3. 不顯著: Pr(>F) 0.312
boxplot(formula = TB$all_SI ~TB$單因子組別,
        data =TB,
        xlab = "組別",
        ylab = "社交互動 Social Interaction) -> 顯著性",
        col = "gray")


ggplot(TB, aes(x = 單因子組別, y = all_SI)) +   # Draw ggplot2 boxplot
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", col = "red") +  # Add points to plot
  stat_summary(fun = mean, geom = "text", col = "red",     # Add text to plot
               vjust = 1.5, aes(label = paste("Mean:", round(after_stat(y), digits = 1))))

4.加總值平均(社交互動 Social Interaction:QOI) -> 顯著性與boxplot

# cronbach alpha

head(TB[19:22])
cronbach.alpha(TB[19:22], CI=TRUE, standardized=TRUE)

Standardized Cronbach's alpha for the 'TB[19:22]' data-set

Items: 4
Sample units: 120
alpha: 0.834

Bootstrap 95% CI based on 1000 samples
 2.5% 97.5% 
0.777 0.876 
TB <- transform(TB, all_QOI = (TB$QoI1 + TB$QoI2 + TB$QoI3 + TB$QoI4)/4) 
Result = aov(TB$all_QOI~TB$單因子組別)
get_summary_stats(group_by(TB, 單因子組別, ), all_QOI, type = "mean_sd")
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$單因子組別   1    0.6  0.6021   0.447  0.505
Residuals     118  159.0  1.3474               
  1. 結果: One-way Anova (單因子分析: 加總平均主題分數)
  2. 不切換場景與切換場景 -> Social Interaction:QOI
  3. 不顯著: Pr(>F) 0.505
boxplot(formula = TB$all_QOI ~TB$單因子組別,
        data =TB,
        xlab = "組別",
        ylab = "社交互動 Social Interaction:QOI) -> 顯著性",
        col = "gray")


ggplot(TB, aes(x = 單因子組別, y = all_QOI)) +   # Draw ggplot2 boxplot
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", col = "red") +  # Add points to plot
  stat_summary(fun = mean, geom = "text", col = "red",     # Add text to plot
               vjust = 1.5, aes(label = paste("Mean:", round(after_stat(y), digits = 1))))

NA
NA
NA
NA

5.加總值平均(社交互動 Social Interaction:SM) -> 顯著性與boxplot

# cronbach alpha

head(TB[23:27])
cronbach.alpha(TB[23:27], CI=TRUE, standardized=TRUE)

Standardized Cronbach's alpha for the 'TB[23:27]' data-set

Items: 5
Sample units: 120
alpha: 0.707

Bootstrap 95% CI based on 1000 samples
 2.5% 97.5% 
0.595 0.782 
TB <- transform(TB, all_SM = (TB$SM1 + TB$SM2 + TB$SM3 + TB$SM4 + TB$SM5)/5)
Result = aov(TB$all_SM~TB$單因子組別)
get_summary_stats(group_by(TB, 單因子組別, ), all_SM, type = "mean_sd")
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$單因子組別   1    1.2  1.2000   1.285  0.259
Residuals     118  110.2  0.9335               
  1. 結果: One-way Anova (單因子分析: 加總平均主題分數)
  2. 不切換場景與切換場景 -> Social Interaction:SM
  3. 不顯著: Pr(>F) 0.259
boxplot(formula = TB$all_SM ~TB$單因子組別,
        data =TB,
        xlab = "組別",
        ylab = "社交互動 Social Interaction:SM) -> 顯著性",
        col = "gray")


ggplot(TB, aes(x = 單因子組別, y = all_SM)) +   # Draw ggplot2 boxplot
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", col = "red") +  # Add points to plot
  stat_summary(fun = mean, geom = "text", col = "red",     # Add text to plot
               vjust = 1.5, aes(label = paste("Mean:", round(after_stat(y), digits = 1))))

NA
NA

6.認知壓力 NASA-TLX-> 顯著性與boxplot

Result = aov(TB$精神需求~TB$單因子組別)
get_summary_stats(group_by(TB, 單因子組別, ), 精神需求, type = "mean_sd")
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)  
TB$單因子組別   1    4.8   4.800   3.506 0.0636 .
Residuals     118  161.6   1.369                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
  1. 結果: One-way Anova (單因子分析: 各項題目)
  2. 不切換場景與切換場景 -> 精神需求
  3. 顯著: Pr(>F) 0.0636 . (0.05 ‘.’)
boxplot(formula = TB$精神需求 ~TB$單因子組別,
        data =TB,
        xlab = "組別",
        ylab = "精神需求",
        col = "gray")


ggplot(TB, aes(x = 單因子組別, y = 精神需求)) +   # Draw ggplot2 boxplot
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", col = "red") +  # Add points to plot
  stat_summary(fun = mean, geom = "text", col = "red",     # Add text to plot
               vjust = 1.5, aes(label = paste("Mean:", round(after_stat(y), digits = 1))))

Result = aov(TB$體力需求~TB$單因子組別)
get_summary_stats(group_by(TB, 單因子組別, ), 體力需求, type = "mean_sd")
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$單因子組別   1    0.1   0.075   0.026  0.871
Residuals     118  335.9   2.846               
  1. 結果: One-way Anova (單因子分析: 各項題目)
  2. 不切換場景與切換場景 -> 體力需求
  3. 不顯著: Pr(>F) 0.871
boxplot(formula = TB$體力需求 ~TB$單因子組別,
        data =TB,
        xlab = "組別",
        ylab = "體力需求",
        col = "gray")


ggplot(TB, aes(x = 單因子組別, y = 體力需求)) +   # Draw ggplot2 boxplot
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", col = "red") +  # Add points to plot
  stat_summary(fun = mean, geom = "text", col = "red",     # Add text to plot
               vjust = 1.5, aes(label = paste("Mean:", round(after_stat(y), digits = 1))))


Result = aov(TB$時間壓力~TB$單因子組別)
get_summary_stats(group_by(TB, 單因子組別, ), 時間壓力, type = "mean_sd")
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$單因子組別   1    2.7   2.700   1.168  0.282
Residuals     118  272.8   2.312               
  1. 結果: One-way Anova (單因子分析: 各項題目)
  2. 不切換場景與切換場景 -> 時間壓力
  3. 不顯著: Pr(>F) 0.282
boxplot(formula = TB$時間壓力 ~TB$單因子組別,
        data =TB,
        xlab = "組別",
        ylab = "時間壓力",
        col = "gray")


ggplot(TB, aes(x = 單因子組別, y = 時間壓力)) +   # Draw ggplot2 boxplot
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", col = "red") +  # Add points to plot
  stat_summary(fun = mean, geom = "text", col = "red",     # Add text to plot
               vjust = 1.5, aes(label = paste("Mean:", round(after_stat(y), digits = 1))))

Result = aov(TB$成功~TB$單因子組別)
get_summary_stats(group_by(TB, 單因子組別, ), 成功, type = "mean_sd")
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$單因子組別   1   1.01   1.008   0.784  0.378
Residuals     118 151.78   1.286               
  1. 結果: One-way Anova (單因子分析: 各項題目)
  2. 不切換場景與切換場景 -> 成功
  3. 不顯著: Pr(>F) 0.378
boxplot(formula = TB$成功 ~TB$單因子組別,
        data =TB,
        xlab = "組別",
        ylab = "成功",
        col = "gray")


ggplot(TB, aes(x = 單因子組別, y = 成功)) +   # Draw ggplot2 boxplot
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", col = "red") +  # Add points to plot
  stat_summary(fun = mean, geom = "text", col = "red",     # Add text to plot
               vjust = 1.5, aes(label = paste("Mean:", round(after_stat(y), digits = 1))))


Result = aov(TB$努力~TB$單因子組別)
get_summary_stats(group_by(TB, 單因子組別, ), 努力, type = "mean_sd")
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)  
TB$單因子組別   1   4.03   4.033    3.89 0.0509 .
Residuals     118 122.33   1.037                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
  1. 結果: One-way Anova (單因子分析: 各項題目)
  2. 不切換場景與切換場景 -> 努力
  3. 顯著: Pr(>F) 0.0509 . (0.05 ‘.’)
boxplot(formula = TB$努力 ~TB$單因子組別,
        data =TB,
        xlab = "組別",
        ylab = "努力",
        col = "gray")


ggplot(TB, aes(x = 單因子組別, y = 努力)) +   # Draw ggplot2 boxplot
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", col = "red") +  # Add points to plot
  stat_summary(fun = mean, geom = "text", col = "red",     # Add text to plot
               vjust = 1.5, aes(label = paste("Mean:", round(after_stat(y), digits = 1))))

Result = aov(TB$不安~TB$單因子組別)
get_summary_stats(group_by(TB, 單因子組別, ), 不安, type = "mean_sd")
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$單因子組別   1   3.01   3.008   1.226   0.27
Residuals     118 289.58   2.454               
  1. 結果: One-way Anova (單因子分析: 各項題目)
  2. 不切換場景與切換場景 -> 不安
  3. 不顯著: Pr(>F) 0.27
boxplot(formula = TB$不安 ~TB$單因子組別,
        data =TB,
        xlab = "組別",
        ylab = "不安",
        col = "gray")

ggplot(TB, aes(x = 單因子組別, y = 不安)) +   # Draw ggplot2 boxplot
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", col = "red") +  # Add points to plot
  stat_summary(fun = mean, geom = "text", col = "red",     # Add text to plot
               vjust = 1.5, aes(label = paste("Mean:", round(after_stat(y), digits = 1))))

單因子分析: 電子鐘(顯性)(C) VS 炸彈(隱性)(B)

1.加總值平均(沉浸感) -> 顯著性與boxplot

# cronbach alpha

head(TB[6:9])
cronbach.alpha(TB[6:9], CI=TRUE, standardized=TRUE)

Standardized Cronbach's alpha for the 'TB[6:9]' data-set

Items: 4
Sample units: 120
alpha: 0.655

Bootstrap 95% CI based on 1000 samples
 2.5% 97.5% 
0.514 0.755 
new_tb <- data.frame(TB$沉浸感1,TB$沉浸感3,TB$沉浸感4)
head(new_tb)
cronbach.alpha(new_tb,CI= TRUE, standardized = TRUE)

Standardized Cronbach's alpha for the 'new_tb' data-set

Items: 3
Sample units: 120
alpha: 0.7

Bootstrap 95% CI based on 1000 samples
 2.5% 97.5% 
0.573 0.793 
# 根據上面cronbach.alpha的結果,拿掉沉浸感2

TB <- transform(TB, all_immer = (TB$沉浸感1 + TB$沉浸感3 + TB$沉浸感4)/3)
Result = aov(TB$all_immer~TB$time)
get_summary_stats(group_by(TB, time, ), all_immer, type = "mean_sd")
summary(Result)
             Df Sum Sq Mean Sq F value Pr(>F)
TB$time       1   0.68   0.675   0.542  0.463
Residuals   118 146.95   1.245               
  1. 結果: One-way Anova (單因子分析: 加總平均主題分數)
  2. 電子鐘(顯性)(C) VS 炸彈(隱性)(B) -> 沉浸感
  3. 不顯著差異: Pr(>F) 0.463
boxplot(formula = TB$all_immer ~TB$time,
        data =TB,
        xlab = "組別",
        ylab = "沉浸感) -> 顯著性",
        col = "gray")


ggplot(TB, aes(x = time, y = all_immer)) +   # Draw ggplot2 boxplot
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", col = "red") +  # Add points to plot
  stat_summary(fun = mean, geom = "text", col = "red",     # Add text to plot
               vjust = 1.5, aes(label = paste("Mean:", round(after_stat(y), digits = 1))))

2.加總值平均(自我創造力) -> 顯著性與boxplot

# cronbach alpha

head(TB[16:18])
cronbach.alpha(TB[16:18], CI=TRUE, standardized=TRUE)

Standardized Cronbach's alpha for the 'TB[16:18]' data-set

Items: 3
Sample units: 120
alpha: 0.823

Bootstrap 95% CI based on 1000 samples
 2.5% 97.5% 
0.750 0.873 
TB <- transform(TB, all_creative = (TB$想法數量 + TB$品質 + TB$創造力)/3)
Result = aov(TB$all_creative~TB$time)
get_summary_stats(group_by(TB, time, ), all_creative, type = "mean_sd")
summary(Result)
             Df Sum Sq Mean Sq F value Pr(>F)
TB$time       1   0.58  0.5787   0.555  0.458
Residuals   118 123.09  1.0431               
  1. 結果: One-way Anova (單因子分析: 加總平均主題分數)
  2. 電子鐘(顯性)(C) VS 炸彈(隱性)(B) -> 創造力
  3. 不顯著差異: Pr(>F) 0.458
boxplot(formula = TB$all_creative ~TB$time,
        data =TB,
        xlab = "組別",
        ylab = "自我創造力) -> 顯著性",
        col = "gray")


ggplot(TB, aes(x = time, y = all_creative)) +   # Draw ggplot2 boxplot
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", col = "red") +  # Add points to plot
  stat_summary(fun = mean, geom = "text", col = "red",     # Add text to plot
               vjust = 1.5, aes(label = paste("Mean:", round(after_stat(y), digits = 1))))

3.加總值平均(社交互動 Social Interaction) -> 顯著性與boxplot

# cronbach alpha

head(TB[19:27])
cronbach.alpha(TB[19:27], CI=TRUE, standardized=TRUE)

Standardized Cronbach's alpha for the 'TB[19:27]' data-set

Items: 9
Sample units: 120
alpha: 0.842

Bootstrap 95% CI based on 1000 samples
 2.5% 97.5% 
0.793 0.876 
TB <- transform(TB, all_SI = (TB$QoI1 + TB$QoI2 + TB$QoI3 + TB$QoI4 + TB$SM1 + TB$SM2 + TB$SM3 + TB$SM4 + TB$SM5)/9)
Result = aov(TB$all_SI~TB$time)
get_summary_stats(group_by(TB, time, ), all_SI, type = "mean_sd")
summary(Result)
             Df Sum Sq Mean Sq F value Pr(>F)
TB$time       1   0.83  0.8333   0.944  0.333
Residuals   118 104.18  0.8829               
  1. 結果: One-way Anova (單因子分析: 加總平均主題分數)
  2. 電子鐘(顯性)(C) VS 炸彈(隱性)(B) -> 社交互動(9題)
  3. 不顯著: Pr(>F) 0.333
boxplot(formula = TB$all_SI ~TB$time,
        data =TB,
        xlab = "組別",
        ylab = "社交互動 Social Interaction) -> 顯著性",
        col = "gray")


ggplot(TB, aes(x = time, y = all_SI)) +   # Draw ggplot2 boxplot
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", col = "red") +  # Add points to plot
  stat_summary(fun = mean, geom = "text", col = "red",     # Add text to plot
               vjust = 1.5, aes(label = paste("Mean:", round(after_stat(y), digits = 1))))

4.加總值平均(社交互動 Social Interaction:QOI) -> 顯著性與boxplot

# cronbach alpha

head(TB[19:22])
cronbach.alpha(TB[19:22], CI=TRUE, standardized=TRUE)

Standardized Cronbach's alpha for the 'TB[19:22]' data-set

Items: 4
Sample units: 120
alpha: 0.834

Bootstrap 95% CI based on 1000 samples
 2.5% 97.5% 
0.775 0.875 
TB <- transform(TB, all_QOI = (TB$QoI1 + TB$QoI2 + TB$QoI3 + TB$QoI4)/4) 
Result = aov(TB$all_QOI~TB$time)
get_summary_stats(group_by(TB, time, ), all_QOI, type = "mean_sd")
summary(Result)
             Df Sum Sq Mean Sq F value Pr(>F)
TB$time       1   0.92  0.9187   0.683   0.41
Residuals   118 158.67  1.3447               
  1. 結果: One-way Anova (單因子分析: 加總平均主題分數)
  2. 電子鐘(顯性)(C) VS 炸彈(隱性)(B) -> Social Interaction:QOI
  3. 不顯著: Pr(>F) 0.41
boxplot(formula = TB$all_QOI ~TB$time,
        data =TB,
        xlab = "組別",
        ylab = "社交互動 Social Interaction:QOI) -> 顯著性",
        col = "gray")


ggplot(TB, aes(x = time, y = all_QOI)) +   # Draw ggplot2 boxplot
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", col = "red") +  # Add points to plot
  stat_summary(fun = mean, geom = "text", col = "red",     # Add text to plot
               vjust = 1.5, aes(label = paste("Mean:", round(after_stat(y), digits = 1))))

NA
NA
NA
NA

5.加總值平均(社交互動 Social Interaction:SM) -> 顯著性與boxplot

# cronbach alpha

head(TB[23:27])
cronbach.alpha(TB[23:27], CI=TRUE, standardized=TRUE)

Standardized Cronbach's alpha for the 'TB[23:27]' data-set

Items: 5
Sample units: 120
alpha: 0.707

Bootstrap 95% CI based on 1000 samples
 2.5% 97.5% 
0.600 0.782 
TB <- transform(TB, all_SM = (TB$SM1 + TB$SM2 + TB$SM3 + TB$SM4 + TB$SM5)/5)
Result = aov(TB$all_SM~TB$time)
get_summary_stats(group_by(TB, time, ), all_SM, type = "mean_sd")
summary(Result)
             Df Sum Sq Mean Sq F value Pr(>F)
TB$time       1   0.77  0.7680   0.819  0.367
Residuals   118 110.59  0.9372               
  1. 結果: One-way Anova (單因子分析: 加總平均主題分數)
  2. 電子鐘(顯性)(C) VS 炸彈(隱性)(B) -> Social Interaction:SM
  3. 不顯著: Pr(>F) 0.367
boxplot(formula = TB$all_SM ~TB$time,
        data =TB,
        xlab = "組別",
        ylab = "社交互動 Social Interaction:SM) -> 顯著性",
        col = "gray")


ggplot(TB, aes(x = time, y = all_SM)) +   # Draw ggplot2 boxplot
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", col = "red") +  # Add points to plot
  stat_summary(fun = mean, geom = "text", col = "red",     # Add text to plot
               vjust = 1.5, aes(label = paste("Mean:", round(after_stat(y), digits = 1))))

NA
NA

6.認知壓力 NASA-TLX-> 顯著性與boxplot

Result = aov(TB$精神需求~TB$time)
get_summary_stats(group_by(TB, time, ), 精神需求, type = "mean_sd")
summary(Result)
             Df Sum Sq Mean Sq F value Pr(>F)
TB$time       1   0.53  0.5333   0.379  0.539
Residuals   118 165.83  1.4054               
  1. 結果: One-way Anova (單因子分析: 各項題目)
  2. 電子鐘(顯性)(C) VS 炸彈(隱性)(B) -> 精神需求
  3. 不顯著: Pr(>F) 0.539
boxplot(formula = TB$精神需求 ~TB$time,
        data =TB,
        xlab = "組別",
        ylab = "精神需求",
        col = "gray")


ggplot(TB, aes(x = time, y = 精神需求)) +   # Draw ggplot2 boxplot
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", col = "red") +  # Add points to plot
  stat_summary(fun = mean, geom = "text", col = "red",     # Add text to plot
               vjust = 1.5, aes(label = paste("Mean:", round(after_stat(y), digits = 1))))

Result = aov(TB$體力需求~TB$time)
get_summary_stats(group_by(TB, time, ), 體力需求, type = "mean_sd")
summary(Result)
             Df Sum Sq Mean Sq F value Pr(>F)
TB$time       1    0.1   0.075   0.026  0.871
Residuals   118  335.9   2.846               
  1. 結果: One-way Anova (單因子分析: 各項題目)
  2. 電子鐘(顯性)(C) VS 炸彈(隱性)(B) -> 體力需求
  3. 不顯著: Pr(>F) 0.871
boxplot(formula = TB$體力需求 ~TB$time,
        data =TB,
        xlab = "組別",
        ylab = "體力需求",
        col = "gray")


ggplot(TB, aes(x = time, y = 體力需求)) +   # Draw ggplot2 boxplot
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", col = "red") +  # Add points to plot
  stat_summary(fun = mean, geom = "text", col = "red",     # Add text to plot
               vjust = 1.5, aes(label = paste("Mean:", round(after_stat(y), digits = 1))))


Result = aov(TB$時間壓力~TB$time)
get_summary_stats(group_by(TB, time, ), 時間壓力, type = "mean_sd")
summary(Result)
             Df Sum Sq Mean Sq F value Pr(>F)
TB$time       1    0.3   0.300   0.129   0.72
Residuals   118  275.2   2.332               
  1. 結果: One-way Anova (單因子分析: 各項題目)
  2. 電子鐘(顯性)(C) VS 炸彈(隱性)(B) -> 時間壓力
  3. 不顯著: Pr(>F) 0.72
boxplot(formula = TB$時間壓力 ~TB$time,
        data =TB,
        xlab = "組別",
        ylab = "時間壓力",
        col = "gray")


ggplot(TB, aes(x = time, y = 時間壓力)) +   # Draw ggplot2 boxplot
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", col = "red") +  # Add points to plot
  stat_summary(fun = mean, geom = "text", col = "red",     # Add text to plot
               vjust = 1.5, aes(label = paste("Mean:", round(after_stat(y), digits = 1))))

Result = aov(TB$成功~TB$time)
get_summary_stats(group_by(TB, time, ), 成功, type = "mean_sd")
summary(Result)
             Df Sum Sq Mean Sq F value Pr(>F)  
TB$time       1   3.67   3.675   2.908 0.0908 .
Residuals   118 149.12   1.264                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
  1. 結果: One-way Anova (單因子分析: 各項題目)
  2. 電子鐘(顯性)(C) VS 炸彈(隱性)(B) -> 成功
  3. 顯著: Pr(>F) 0.0908 . (0.05 ‘.’)
boxplot(formula = TB$成功 ~TB$time,
        data =TB,
        xlab = "組別",
        ylab = "成功",
        col = "gray")


ggplot(TB, aes(x = time, y = 成功)) +   # Draw ggplot2 boxplot
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", col = "red") +  # Add points to plot
  stat_summary(fun = mean, geom = "text", col = "red",     # Add text to plot
               vjust = 1.5, aes(label = paste("Mean:", round(after_stat(y), digits = 1))))


Result = aov(TB$努力~TB$time)
get_summary_stats(group_by(TB, time, ), 努力, type = "mean_sd")
summary(Result)
             Df Sum Sq Mean Sq F value Pr(>F)
TB$time       1   1.63   1.633   1.545  0.216
Residuals   118 124.73   1.057               
  1. 結果: One-way Anova (單因子分析: 各項題目)
  2. 電子鐘(顯性)(C) VS 炸彈(隱性)(B) -> 努力
  3. 不顯著: Pr(>F) 0.216
boxplot(formula = TB$努力 ~TB$time,
        data =TB,
        xlab = "組別",
        ylab = "努力",
        col = "gray")


ggplot(TB, aes(x = time, y = 努力)) +   # Draw ggplot2 boxplot
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", col = "red") +  # Add points to plot
  stat_summary(fun = mean, geom = "text", col = "red",     # Add text to plot
               vjust = 1.5, aes(label = paste("Mean:", round(after_stat(y), digits = 1))))

Result = aov(TB$不安~TB$time)
get_summary_stats(group_by(TB, time, ), 不安, type = "mean_sd")
summary(Result)
             Df Sum Sq Mean Sq F value Pr(>F)
TB$time       1   3.01   3.008   1.226   0.27
Residuals   118 289.58   2.454               
  1. 結果: One-way Anova (單因子分析: 各項題目)
  2. 不切換場景與切換場景 -> 不安
  3. 不顯著: Pr(>F) 0.27
boxplot(formula = TB$不安 ~TB$time,
        data =TB,
        xlab = "組別",
        ylab = "不安",
        col = "gray")


ggplot(TB, aes(x = time, y = 不安)) +   # Draw ggplot2 boxplot
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", col = "red") +  # Add points to plot
  stat_summary(fun = mean, geom = "text", col = "red",     # Add text to plot
               vjust = 1.5, aes(label = paste("Mean:", round(after_stat(y), digits = 1))))

雙因子分析: NC NB SC SB

NC -> 不切換場景 + 電子鐘 NB -> 不切換場景 + 炸彈 SC -> 切換場景 + 電子鐘 SB -> 切換場景 + 炸彈

加總主題分數 - 雙因子分析

3.加總值平均(沉浸感) -> 顯著性與boxplot

# cronbach alpha

head(TB[6:9])
cronbach.alpha(TB[6:9], CI=TRUE, standardized=TRUE)

Standardized Cronbach's alpha for the 'TB[6:9]' data-set

Items: 4
Sample units: 120
alpha: 0.655

Bootstrap 95% CI based on 1000 samples
 2.5% 97.5% 
0.523 0.762 
new_tb <- data.frame(TB$沉浸感1,TB$沉浸感3,TB$沉浸感4)
head(new_tb)
cronbach.alpha(new_tb,CI= TRUE, standardized = TRUE)

Standardized Cronbach's alpha for the 'new_tb' data-set

Items: 3
Sample units: 120
alpha: 0.7

Bootstrap 95% CI based on 1000 samples
 2.5% 97.5% 
0.578 0.791 
# 根據上面cronbach.alpha的結果,拿掉沉浸感2
TB <- transform(TB, all_immer = (TB$沉浸感1 + TB$沉浸感3 + TB$沉浸感4)/3)
Result = aov(TB$all_immer~TB$雙因子組別)
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$雙因子組別   3   6.17   2.055   1.685  0.174
Residuals     116 141.46   1.219               
  1. 結果: One-way Anova (雙因子分析: 加總平均主題分數)
  2. 不切換場景、切換場景、炸彈、電子鐘 -> 沉浸感
  3. 不顯著: Pr(>F) 0.174
TukeyHSD(Result)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = TB$all_immer ~ TB$雙因子組別)

$`TB$雙因子組別`
            diff        lwr       upr     p adj
NC-NB -0.1555556 -0.8987810 0.5876699 0.9475692
SB-NB  0.4222222 -0.3210033 1.1654477 0.4523339
SC-NB  0.2777778 -0.4654477 1.0210033 0.7643641
SB-NC  0.5777778 -0.1654477 1.3210033 0.1842976
SC-NC  0.4333333 -0.3098922 1.1765588 0.4290363
SC-SB -0.1444444 -0.8876699 0.5987810 0.9573703
plot(TukeyHSD(Result),las=1)

boxplot(formula = TB$all_immer ~TB$雙因子組別,
        data =TB,
        xlab = "組別",
        ylab = "沉浸感) -> 顯著性",
        col = "gray")


ggplot(TB, aes(x = 雙因子組別, y = all_immer)) +   # Draw ggplot2 boxplot
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", col = "red") +  # Add points to plot
  stat_summary(fun = mean, geom = "text", col = "red",     # Add text to plot
               vjust = 1.5, aes(label = paste("Mean:", round(after_stat(y), digits = 1))))

NA
NA
NA

4.加總值平均(自我創造力) -> 顯著性與boxplot

TB <- transform(TB, all_creative = (TB$想法數量 + TB$品質 + TB$創造力)/3)
Result = aov(TB$all_creative~TB$雙因子組別)
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$雙因子組別   3   6.11   2.038   2.011  0.116
Residuals     116 117.55   1.013               
  1. 結果: One-way Anova (雙因子分析: 加總平均主題分數)
  2. 不切換場景、切換場景、炸彈、電子鐘 -> 創造力
  3. 不顯著: Pr(>F) 0.116
TukeyHSD(Result)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = TB$all_creative ~ TB$雙因子組別)

$`TB$雙因子組別`
            diff        lwr       upr     p adj
NC-NB -0.1777778 -0.8553028 0.4997472 0.9030170
SB-NB  0.3888889 -0.2886361 1.0664139 0.4431012
SC-NB  0.2888889 -0.3886361 0.9664139 0.6832345
SB-NC  0.5666667 -0.1108583 1.2441917 0.1348794
SC-NC  0.4666667 -0.2108583 1.1441917 0.2807724
SC-SB -0.1000000 -0.7775250 0.5775250 0.9805459
plot(TukeyHSD(Result),las=1)

boxplot(formula = TB$all_creative ~TB$雙因子組別,
        data =TB,
        xlab = "組別",
        ylab = "自我創造力) -> 顯著性",
        col = "gray")


ggplot(TB, aes(x = 雙因子組別, y = all_creative)) +   # Draw ggplot2 boxplot
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", col = "red") +  # Add points to plot
  stat_summary(fun = mean, geom = "text", col = "red",     # Add text to plot
               vjust = 1.5, aes(label = paste("Mean:", round(after_stat(y), digits = 1))))

NA
NA

5.加總值平均(社交互動 Social Interaction) -> 顯著性與boxplot

TB <- transform(TB, all_SI = (TB$QoI1 + TB$QoI2 + TB$QoI3 + TB$QoI4 + TB$SM1 + TB$SM2 + TB$SM3 + TB$SM4 + TB$SM5/9))
Result = aov(TB$all_SI~TB$雙因子組別)
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$雙因子組別   3    134   44.50   0.702  0.552
Residuals     116   7348   63.35               
  1. 結果: One-way Anova (雙因子分析: 加總平均主題分數)
  2. 不切換場景、切換場景、炸彈、電子鐘 -> 社交互動(9題)
  3. 不顯著: Pr(>F) 0.552
TukeyHSD(Result)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = TB$all_SI ~ TB$雙因子組別)

$`TB$雙因子組別`
            diff       lwr      upr     p adj
NC-NB -1.3333333 -6.690131 4.023464 0.9157721
SB-NB  1.6444444 -3.712353 7.001242 0.8541890
SC-NB  0.1259259 -5.230872 5.482723 0.9999169
SB-NC  2.9777778 -2.379020 8.334575 0.4716703
SC-NC  1.4592593 -3.897538 6.816057 0.8929214
SC-SB -1.5185185 -6.875316 3.838279 0.8811735
plot(TukeyHSD(Result),las=1)

boxplot(formula = TB$all_SI ~TB$雙因子組別,
        data =TB,
        xlab = "組別",
        ylab = "社交互動 Social Interaction) -> 顯著性",
        col = "gray")


ggplot(TB, aes(x = 雙因子組別, y = all_SI)) +   # Draw ggplot2 boxplot
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", col = "red") +  # Add points to plot
  stat_summary(fun = mean, geom = "text", col = "red",     # Add text to plot
               vjust = 1.5, aes(label = paste("Mean:", round(after_stat(y), digits = 1))))

NA
NA
NA

6.加總值平均(社交互動 Social Interaction:QOI) -> 顯著性與boxplot

TB <- transform(TB, all_QOI = (TB$QoI1 + TB$QoI2 + TB$QoI3 + TB$QoI4)/4) 
Result = aov(TB$all_QOI~TB$雙因子組別)
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$雙因子組別   3    1.6  0.5319   0.391   0.76
Residuals     116  158.0  1.3620               
  1. 結果: One-way Anova (雙因子分析: 加總平均主題分數)
  2. 不切換場景、切換場景、炸彈、電子鐘 -> Social Interaction:QOI
  3. 不顯著: Pr(>F) 0.76
TukeyHSD(Result)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = TB$all_QOI ~ TB$雙因子組別)

$`TB$雙因子組別`
             diff        lwr       upr     p adj
NC-NB -0.12500000 -0.9104769 0.6604769 0.9758367
SB-NB  0.19166667 -0.5938102 0.9771435 0.9201581
SC-NB -0.03333333 -0.8188102 0.7521435 0.9995130
SB-NC  0.31666667 -0.4688102 1.1021435 0.7198789
SC-NC  0.09166667 -0.6938102 0.8771435 0.9901782
SC-SB -0.22500000 -1.0104769 0.5604769 0.8779082
plot(TukeyHSD(Result),las=1)

boxplot(formula = TB$all_QOI ~TB$雙因子組別,
        data =TB,
        xlab = "組別",
        ylab = "社交互動 Social Interaction:QOI) -> 顯著性",
        col = "gray")


ggplot(TB, aes(x = 雙因子組別, y = all_QOI)) +   # Draw ggplot2 boxplot
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", col = "red") +  # Add points to plot
  stat_summary(fun = mean, geom = "text", col = "red",     # Add text to plot
               vjust = 1.5, aes(label = paste("Mean:", round(after_stat(y), digits = 1))))

NA
NA

7.加總值平均(社交互動 Social Interaction:SM) -> 顯著性與boxplot

TB <- transform(TB, all_SM = (TB$SM1 + TB$SM2 + TB$SM3 + TB$SM4 + TB$SM5)/5)
Result = aov(TB$all_SM~TB$雙因子組別)
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$雙因子組別   3   1.97  0.6564   0.696  0.556
Residuals     116 109.39  0.9430               
  1. 結果: One-way Anova (雙因子分析: 加總平均主題分數)
  2. 不切換場景、切換場景、炸彈、電子鐘 -> Social Interaction:QOI
  3. 不顯著: Pr(>F) 0.556
TukeyHSD(Result)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = TB$all_SM ~ TB$雙因子組別)

$`TB$雙因子組別`
            diff        lwr       upr     p adj
NC-NB -0.1666667 -0.8202456 0.4869123 0.9101222
SB-NB  0.1933333 -0.4602456 0.8469123 0.8673524
SC-NB  0.0400000 -0.6135790 0.6935790 0.9985466
SB-NC  0.3600000 -0.2935790 1.0135790 0.4797822
SC-NC  0.2066667 -0.4469123 0.8602456 0.8428825
SC-SB -0.1533333 -0.8069123 0.5002456 0.9282306
plot(TukeyHSD(Result),las=1)

boxplot(formula = TB$all_SM ~TB$雙因子組別,
        data =TB,
        xlab = "組別",
        ylab = "社交互動 Social Interaction:SM) -> 顯著性",
        col = "gray")


ggplot(TB, aes(x = 雙因子組別, y = all_SM)) +   # Draw ggplot2 boxplot
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", col = "red") +  # Add points to plot
  stat_summary(fun = mean, geom = "text", col = "red",     # Add text to plot
               vjust = 1.5, aes(label = paste("Mean:", round(after_stat(y), digits = 1))))

各項項目分數 - 雙因子分析

3.沉浸感 Immersion -> 顯著性與boxplot

Result = aov(TB$沉浸感1~TB$雙因子組別)
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$雙因子組別   3    1.1  0.3667   0.168  0.918
Residuals     116  253.3  2.1833               
  1. 結果: One-way Anova (雙因子分析: 各項題目)
  2. 不切換場景、切換場景、炸彈、電子鐘 -> -> 在進行VR頭腦風暴時,我可以像在現實世界中一樣與環境互動
  3. 不顯著: Pr(>F) 0.918
TukeyHSD(Result)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = TB$沉浸感1 ~ TB$雙因子組別)

$`TB$雙因子組別`
               diff        lwr       upr     p adj
NC-NB  1.000000e-01 -0.8944881 1.0944881 0.9936597
SB-NB  2.666667e-01 -0.7278215 1.2611548 0.8972857
SC-NB  1.000000e-01 -0.8944881 1.0944881 0.9936597
SB-NC  1.666667e-01 -0.8278215 1.1611548 0.9719785
SC-NC  1.776357e-15 -0.9944881 0.9944881 1.0000000
SC-SB -1.666667e-01 -1.1611548 0.8278215 0.9719785
plot(TukeyHSD(Result),las=1)

boxplot(formula = TB$沉浸感1 ~TB$雙因子組別,
        data =TB,
        xlab = "組別",
        ylab = "在進行VR頭腦風暴時,我可以像在現實世界中一樣與環境互動",
        col = "gray")

Result = aov(TB$沉浸感2~TB$雙因子組別)
summary(Result)
               Df Sum Sq Mean Sq F value  Pr(>F)   
TB$雙因子組別   3  22.83   7.611   4.821 0.00336 **
Residuals     116 183.13   1.579                   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
  1. 結果: One-way Anova (雙因子分析: 各項題目)
  2. 不切換場景、切換場景、炸彈、電子鐘 -> 在進行VR頭腦風暴時,我感覺與外界隔絕
  3. 顯著: Pr(>F) 0.00336 ** (0.001 ’**’)
TukeyHSD(Result)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = TB$沉浸感2 ~ TB$雙因子組別)

$`TB$雙因子組別`
            diff         lwr       upr     p adj
NC-NB  0.1000000 -0.74565708 0.9456571 0.9897915
SB-NB  0.9666667  0.12100959 1.8123237 0.0182147
SC-NB  0.8666667  0.02100959 1.7123237 0.0423448
SB-NC  0.8666667  0.02100959 1.7123237 0.0423448
SC-NC  0.7666667 -0.07899041 1.6123237 0.0900841
SC-SB -0.1000000 -0.94565708 0.7456571 0.9897915
plot(TukeyHSD(Result),las=1)

boxplot(formula = TB$沉浸感2 ~TB$雙因子組別,
        data =TB,
        xlab = "組別",
        ylab = "在進行VR頭腦風暴時,我感覺與外界隔絕",
        col = "gray")


ggplot(TB, aes(x = 雙因子組別, y = 沉浸感2)) +   # Draw ggplot2 boxplot
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", col = "red") +  # Add points to plot
  stat_summary(fun = mean, geom = "text", col = "red",     # Add text to plot
               vjust = 1.5, aes(label = paste("Mean:", round(after_stat(y), digits = 1))))

NA
NA
Result = aov(TB$沉浸感3~TB$雙因子組別)
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$雙因子組別   3   7.76   2.586   1.827  0.146
Residuals     116 164.17   1.415               
  1. 結果: One-way Anova (雙因子分析: 各項題目)
  2. 不切換場景、切換場景、炸彈、電子鐘 -> 在進行VR頭腦風暴時,我完全沉浸其中
  3. 不顯著: Pr(>F) 0.146
TukeyHSD(Result)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = TB$沉浸感3 ~ TB$雙因子組別)

$`TB$雙因子組別`
            diff        lwr       upr     p adj
NC-NB -0.4000000 -1.2006691 0.4006691 0.5633784
SB-NB  0.2666667 -0.5340025 1.0673358 0.8212559
SC-NB  0.1666667 -0.6340025 0.9673358 0.9483579
SB-NC  0.6666667 -0.1340025 1.4673358 0.1376779
SC-NC  0.5666667 -0.2340025 1.3673358 0.2578586
SC-SB -0.1000000 -0.9006691 0.7006691 0.9880224
plot(TukeyHSD(Result),las=1)

boxplot(formula = TB$沉浸感3 ~TB$雙因子組別,
        data =TB,
        xlab = "組別",
        ylab = "在進行VR頭腦風暴時,我完全沉浸其中",
        col = "gray")

Result = aov(TB$沉浸感4~TB$雙因子組別)
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)  
TB$雙因子組別   3  16.97   5.656    2.33  0.078 .
Residuals     116 281.53   2.427                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
  1. 結果: One-way Anova (雙因子分析: 各項題目)
  2. 不切換場景、切換場景、炸彈、電子鐘 -> 在進行VR頭腦風暴時,我忘記了我的日常煩惱
  3. 顯著: Pr(>F) 0.078 . (0.05 ‘.’)
TukeyHSD(Result)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = TB$沉浸感4 ~ TB$雙因子組別)

$`TB$雙因子組別`
            diff        lwr       upr     p adj
NC-NB -0.1666667 -1.2151837 0.8818504 0.9759169
SB-NB  0.7333333 -0.3151837 1.7818504 0.2677889
SC-NB  0.5666667 -0.4818504 1.6151837 0.4964747
SB-NC  0.9000000 -0.1485171 1.9485171 0.1193105
SC-NC  0.7333333 -0.3151837 1.7818504 0.2677889
SC-SB -0.1666667 -1.2151837 0.8818504 0.9759169
plot(TukeyHSD(Result),las=1)


boxplot(formula = TB$沉浸感4 ~TB$雙因子組別,
        data =TB,
        xlab = "組別",
        ylab = "在進行VR頭腦風暴時,我忘記了我的日常煩惱",
        col = "gray")


ggplot(TB, aes(x = 雙因子組別, y = 沉浸感4)) +   # Draw ggplot2 boxplot
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", col = "red") +  # Add points to plot
  stat_summary(fun = mean, geom = "text", col = "red",     # Add text to plot
               vjust = 1.5, aes(label = paste("Mean:", round(after_stat(y), digits = 1))))

4.認知壓力 NASA-TLX-> 顯著性與boxplot

Result = aov(TB$精神需求~TB$雙因子組別)
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$雙因子組別   3   5.37   1.789   1.289  0.282
Residuals     116 161.00   1.388               
  1. 結果: One-way Anova (雙因子分析: 各項題目)
  2. 不切換場景、切換場景、炸彈、電子鐘 -> 精神需求
  3. 不顯著: Pr(>F) 0.282
TukeyHSD(Result)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = TB$精神需求 ~ TB$雙因子組別)

$`TB$雙因子組別`
            diff        lwr       upr     p adj
NC-NB -0.1000000 -0.8929093 0.6929093 0.9876771
SB-NB  0.4333333 -0.3595760 1.2262427 0.4866914
SC-NB  0.2666667 -0.5262427 1.0595760 0.8169323
SB-NC  0.5333333 -0.2595760 1.3262427 0.3012427
SC-NC  0.3666667 -0.4262427 1.1595760 0.6246785
SC-SB -0.1666667 -0.9595760 0.6262427 0.9469420
plot(TukeyHSD(Result),las=1)

boxplot(formula = TB$精神需求 ~TB$雙因子組別,
        data =TB,
        xlab = "組別",
        ylab = "精神需求",
        col = "gray")


Result = aov(TB$體力需求~TB$雙因子組別)
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$雙因子組別   3    0.6  0.1861   0.064  0.979
Residuals     116  335.4  2.8911               
  1. 結果: One-way Anova (雙因子分析: 各項題目)
  2. 不切換場景、切換場景、炸彈、電子鐘 -> 體力需求
  3. 不顯著: Pr(>F) 0.979
TukeyHSD(Result)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = TB$體力需求 ~ TB$雙因子組別)

$`TB$雙因子組別`
               diff        lwr       upr     p adj
NC-NB  1.666667e-01 -0.9777141 1.3110474 0.9812817
SB-NB  6.666667e-02 -1.0777141 1.2110474 0.9987454
SC-NB  1.776357e-15 -1.1443807 1.1443807 1.0000000
SB-NC -1.000000e-01 -1.2443807 1.0443807 0.9958121
SC-NC -1.666667e-01 -1.3110474 0.9777141 0.9812817
SC-SB -6.666667e-02 -1.2110474 1.0777141 0.9987454
plot(TukeyHSD(Result),las=1)

boxplot(formula = TB$體力需求 ~TB$雙因子組別,
        data =TB,
        xlab = "組別",
        ylab = "體力需求",
        col = "gray")

Result = aov(TB$時間壓力~TB$雙因子組別)
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$雙因子組別   3    4.2   1.400   0.599  0.617
Residuals     116  271.3   2.338               
  1. 結果: One-way Anova (雙因子分析: 各項題目)
  2. 不切換場景、切換場景、炸彈、電子鐘 -> 時間壓力
  3. 不顯著: Pr(>F) 0.617
TukeyHSD(Result)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = TB$時間壓力 ~ TB$雙因子組別)

$`TB$雙因子組別`
      diff        lwr       upr     p adj
NC-NB  0.1 -0.9292214 1.1292214 0.9942702
SB-NB  0.5 -0.5292214 1.5292214 0.5861367
SC-NB  0.2 -0.8292214 1.2292214 0.9573866
SB-NC  0.4 -0.6292214 1.4292214 0.7421292
SC-NC  0.1 -0.9292214 1.1292214 0.9942702
SC-SB -0.3 -1.3292214 0.7292214 0.8722848
plot(TukeyHSD(Result),las=1)

boxplot(formula = TB$時間壓力 ~TB$雙因子組別,
        data =TB,
        xlab = "組別",
        ylab = "時間壓力",
        col = "gray")

Result = aov(TB$成功~TB$雙因子組別)
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$雙因子組別   3   6.09   2.031   1.606  0.192
Residuals     116 146.70   1.265               
  1. 結果: One-way Anova (雙因子分析: 各項題目)
  2. 不切換場景、切換場景、炸彈、電子鐘 -> 成功
  3. 不顯著: Pr(>F) 0.192
TukeyHSD(Result)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = TB$成功 ~ TB$雙因子組別)

$`TB$雙因子組別`
             diff        lwr       upr     p adj
NC-NB -0.13333333 -0.8902109 0.6235443 0.9677003
SB-NB  0.03333333 -0.7235443 0.7902109 0.9994559
SC-NB -0.53333333 -1.2902109 0.2235443 0.2615121
SB-NC  0.16666667 -0.5902109 0.9235443 0.9396616
SC-NC -0.40000000 -1.1568776 0.3568776 0.5159010
SC-SB -0.56666667 -1.3235443 0.1902109 0.2125795
plot(TukeyHSD(Result),las=1)

boxplot(formula = TB$成功 ~TB$雙因子組別,
        data =TB,
        xlab = "組別",
        ylab = "成功",
        col = "gray")


Result = aov(TB$努力~TB$雙因子組別)
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$雙因子組別   3   5.97   1.989   1.916  0.131
Residuals     116 120.40   1.038               
  1. 結果: One-way Anova (雙因子分析: 各項題目)
  2. 不切換場景、切換場景、炸彈、電子鐘 -> 努力
  3. 不顯著: Pr(>F) 0.131
TukeyHSD(Result)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = TB$努力 ~ TB$雙因子組別)

$`TB$雙因子組別`
            diff         lwr       upr     p adj
NC-NB -0.3333333 -1.01901705 0.3523504 0.5855937
SB-NB  0.2666667 -0.41901705 0.9523504 0.7417309
SC-NB  0.1333333 -0.55235038 0.8190170 0.9573056
SB-NC  0.6000000 -0.08568371 1.2856837 0.1084581
SC-NC  0.4666667 -0.21901705 1.1523504 0.2910509
SC-SB -0.1333333 -0.81901705 0.5523504 0.9573056
plot(TukeyHSD(Result),las=1)

boxplot(formula = TB$努力 ~TB$雙因子組別,
        data =TB,
        xlab = "組別",
        ylab = "努力",
        col = "gray")

Result = aov(TB$不安~TB$雙因子組別)
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$雙因子組別   3   7.43   2.475   1.007  0.392
Residuals     116 285.17   2.458               
  1. 結果: One-way Anova (雙因子分析: 各項題目)
  2. 不切換場景、切換場景、炸彈、電子鐘 -> 不安
  3. 不顯著: Pr(>F) 0.392
TukeyHSD(Result)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = TB$不安 ~ TB$雙因子組別)

$`TB$雙因子組別`
            diff       lwr       upr     p adj
NC-NB -0.5333333 -1.588595 0.5219279 0.5537753
SB-NB -0.5333333 -1.588595 0.5219279 0.5537753
SC-NB -0.6333333 -1.688595 0.4219279 0.4029462
SB-NC  0.0000000 -1.055261 1.0552612 1.0000000
SC-NC -0.1000000 -1.155261 0.9552612 0.9946776
SC-SB -0.1000000 -1.155261 0.9552612 0.9946776
plot(TukeyHSD(Result),las=1)

boxplot(formula = TB$不安 ~TB$雙因子組別,
        data =TB,
        xlab = "組別",
        ylab = "不安",
        col = "gray")

5.創造力-> 顯著性

Result = aov(TB$想法數量~TB$雙因子組別)
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$雙因子組別   3    7.0   2.333   1.569  0.201
Residuals     116  172.5   1.487               
  1. 結果: One-way Anova (雙因子分析: 各項題目)
  2. 不切換場景、切換場景、炸彈、電子鐘 -> 想法數量
  3. 不顯著: Pr(>F) 0.201
TukeyHSD(Result)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = TB$想法數量 ~ TB$雙因子組別)

$`TB$雙因子組別`
            diff        lwr       upr     p adj
NC-NB -0.4333333 -1.2539932 0.3873265 0.5166459
SB-NB  0.2000000 -0.6206598 1.0206598 0.9204289
SC-NB  0.1000000 -0.7206598 0.9206598 0.9888549
SB-NC  0.6333333 -0.1873265 1.4539932 0.1896463
SC-NC  0.5333333 -0.2873265 1.3539932 0.3314946
SC-SB -0.1000000 -0.9206598 0.7206598 0.9888549
plot(TukeyHSD(Result),las=1)

boxplot(formula = TB$想法數量 ~TB$雙因子組別,
        data =TB,
        xlab = "組別",
        ylab = "想法數量",
        col = "gray")

Result = aov(TB$品質~TB$雙因子組別)
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$雙因子組別   3   6.49   2.164   1.938  0.127
Residuals     116 129.50   1.116               
  1. 結果: One-way Anova (雙因子分析: 各項題目)
  2. 不切換場景、切換場景、炸彈、電子鐘 -> 想法品質
  3. 不顯著: Pr(>F) 0.127
TukeyHSD(Result)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = TB$品質 ~ TB$雙因子組別)

$`TB$雙因子組別`
            diff        lwr       upr     p adj
NC-NB -0.1333333 -0.8444576 0.5777909 0.9614651
SB-NB  0.4333333 -0.2777909 1.1444576 0.3892237
SC-NB  0.3333333 -0.3777909 1.0444576 0.6142971
SB-NC  0.5666667 -0.1444576 1.2777909 0.1667158
SC-NC  0.4666667 -0.2444576 1.1777909 0.3228791
SC-SB -0.1000000 -0.8111242 0.6111242 0.9830876
plot(TukeyHSD(Result),las=1)

boxplot(formula = TB$品質 ~TB$雙因子組別,
        data =TB,
        xlab = "組別",
        ylab = "品質",
        col = "gray")

Result = aov(TB$創造力~TB$雙因子組別)
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$雙因子組別   3    6.7   2.233   1.429  0.238
Residuals     116  181.3   1.563               
  1. 結果: One-way Anova (雙因子分析: 各項題目)
  2. 不切換場景、切換場景、炸彈、電子鐘 -> 創造力
  3. 不顯著: Pr(>F) 0.238
TukeyHSD(Result)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = TB$創造力 ~ TB$雙因子組別)

$`TB$雙因子組別`
             diff        lwr       upr     p adj
NC-NB  0.03333333 -0.8080028 0.8746695 0.9996034
SB-NB  0.53333333 -0.3080028 1.3746695 0.3536891
SC-NB  0.43333333 -0.4080028 1.2746695 0.5378950
SB-NC  0.50000000 -0.3413362 1.3413362 0.4118208
SC-NC  0.40000000 -0.4413362 1.2413362 0.6032619
SC-SB -0.10000000 -0.9413362 0.7413362 0.9896372
plot(TukeyHSD(Result),las=1)

boxplot(formula = TB$創造力 ~TB$雙因子組別,
        data =TB,
        xlab = "組別",
        ylab = "創造力",
        col = "gray")

6 社交互動 Social Interaction:QOI-> 顯著性與boxplot

Result = aov(TB$QoI1~TB$雙因子組別)
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$雙因子組別   3   4.83   1.611   0.642   0.59
Residuals     116 291.13   2.510               
  1. 結果: One-way Anova (雙因子分析: 各項題目)
  2. 不切換場景、切換場景、炸彈、電子鐘 -> 在進行VR頭腦風暴時,我可以判斷對方是否在聽我說話。
  3. 不顯著: Pr(>F) 0.59
TukeyHSD(Result)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = TB$QoI1 ~ TB$雙因子組別)

$`TB$雙因子組別`
            diff        lwr       upr     p adj
NC-NB -0.1333333 -1.1995772 0.9329106 0.9879792
SB-NB  0.3000000 -0.7662439 1.3662439 0.8834661
SC-NB -0.2333333 -1.2995772 0.8329106 0.9406875
SB-NC  0.4333333 -0.6329106 1.4995772 0.7148090
SC-NC -0.1000000 -1.1662439 0.9662439 0.9948379
SC-SB -0.5333333 -1.5995772 0.5329106 0.5623616
plot(TukeyHSD(Result),las=1)

boxplot(formula = TB$QoI1 ~TB$雙因子組別,
        data =TB,
        xlab = "組別",
        ylab = "在進行VR頭腦風暴時,我可以判斷對方是否在聽我說話。",
        col = "gray")


Result = aov(TB$QoI2~TB$雙因子組別)
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$雙因子組別   3   1.77  0.5889   0.287  0.835
Residuals     116 238.20  2.0534               
  1. 結果: One-way Anova (雙因子分析: 各項題目)
  2. 不切換場景、切換場景、炸彈、電子鐘 -> 我能充分理解對方在VR頭腦風暴時中做的任何行為。
  3. 不顯著: Pr(>F) 0.835
TukeyHSD(Result)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = TB$QoI2 ~ TB$雙因子組別)

$`TB$雙因子組別`
             diff        lwr       upr     p adj
NC-NB -0.10000000 -1.0644539 0.8644539 0.9930602
SB-NB  0.23333333 -0.7311206 1.1977872 0.9219841
SC-NB  0.06666667 -0.8977872 1.0311206 0.9979116
SB-NC  0.33333333 -0.6311206 1.2977872 0.8043533
SC-NC  0.16666667 -0.7977872 1.1311206 0.9694181
SC-SB -0.16666667 -1.1311206 0.7977872 0.9694181
plot(TukeyHSD(Result),las=1)

boxplot(formula = TB$QoI2 ~TB$雙因子組別,
        data =TB,
        xlab = "組別",
        ylab = "我能充分理解對方在VR頭腦風暴時中做的任何行為。",
        col = "gray")

Result = aov(TB$QoI3~TB$雙因子組別)
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$雙因子組別   3   1.17  0.3889   0.233  0.873
Residuals     116 193.20  1.6655               
  1. 結果: One-way Anova (雙因子分析: 各項題目)
  2. 不切換場景、切換場景、炸彈、電子鐘 -> 在進行VR頭腦風暴時,我確信我的搭檔明白我在說什麼。
  3. 不顯著: Pr(>F) 0.873
TukeyHSD(Result)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = TB$QoI3 ~ TB$雙因子組別)

$`TB$雙因子組別`
             diff        lwr       upr     p adj
NC-NB -0.13333333 -1.0019220 0.7352553 0.9782144
SB-NB  0.13333333 -0.7352553 1.0019220 0.9782144
SC-NB -0.06666667 -0.9352553 0.8019220 0.9971492
SB-NC  0.26666667 -0.6019220 1.1352553 0.8541544
SC-NC  0.06666667 -0.8019220 0.9352553 0.9971492
SC-SB -0.20000000 -1.0685887 0.6685887 0.9317992
plot(TukeyHSD(Result),las=1)

boxplot(formula = TB$QoI3 ~TB$雙因子組別,
        data =TB,
        xlab = "組別",
        ylab = "在進行VR頭腦風暴時,我確信我的搭檔明白我在說什麼。",
        col = "gray")

Result = aov(TB$QoI4~TB$雙因子組別)
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$雙因子組別   3    1.1  0.3667   0.185  0.906
Residuals     116  229.4  1.9776               
  1. 結果: One-way Anova (雙因子分析: 各項題目)
  2. 不切換場景、切換場景、炸彈、電子鐘 -> 在進行VR頭腦風暴時,我專注於和對方互動。
  3. 不顯著: Pr(>F) 0.906
TukeyHSD(Result)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = TB$QoI4 ~ TB$雙因子組別)

$`TB$雙因子組別`
            diff        lwr       upr     p adj
NC-NB -0.1333333 -1.0798043 0.8131376 0.9829997
SB-NB  0.1000000 -0.8464710 1.0464710 0.9926650
SC-NB  0.1000000 -0.8464710 1.0464710 0.9926650
SB-NC  0.2333333 -0.7131376 1.1798043 0.9179177
SC-NC  0.2333333 -0.7131376 1.1798043 0.9179177
SC-SB  0.0000000 -0.9464710 0.9464710 1.0000000
plot(TukeyHSD(Result),las=1)


boxplot(formula = TB$QoI4 ~TB$雙因子組別,
        data =TB,
        xlab = "組別",
        ylab = "在進行VR頭腦風暴時,我專注於和對方互動。",
        col = "gray")

6 社交互動 Social Interaction:SM-> 顯著性與boxplot


Result = aov(TB$SM1~TB$雙因子組別)
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$雙因子組別   3  10.03   3.344   1.976  0.121
Residuals     116 196.33   1.693               
  1. 結果: One-way Anova (雙因子分析: 各項題目)
  2. 不切換場景、切換場景、炸彈、電子鐘 -> 我從VR頭腦風暴的體驗中獲得了很多的滿足感。
  3. 不顯著: Pr(>F) 0.121
TukeyHSD(Result)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = TB$SM1 ~ TB$雙因子組別)

$`TB$雙因子組別`
             diff        lwr       upr     p adj
NC-NB -0.56666667 -1.4422704 0.3089371 0.3352081
SB-NB  0.20000000 -0.6756037 1.0756037 0.9332826
SC-NB  0.03333333 -0.8422704 0.9089371 0.9996481
SB-NC  0.76666667 -0.1089371 1.6422704 0.1081158
SC-NC  0.60000000 -0.2756037 1.4756037 0.2851847
SC-SB -0.16666667 -1.0422704 0.7089371 0.9597929
plot(TukeyHSD(Result),las=1)

boxplot(formula = TB$SM1 ~TB$雙因子組別,
        data =TB,
        xlab = "組別",
        ylab = "我從VR頭腦風暴的體驗中獲得了很多的滿足感。",
        col = "gray")

Result = aov(TB$SM2~TB$雙因子組別)
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$雙因子組別   3   9.23   3.075    1.61  0.191
Residuals     116 221.57   1.910               
  1. 結果: One-way Anova (雙因子分析: 各項題目)
  2. 不切換場景、切換場景、炸彈、電子鐘 -> 我很享受和我的夥伴一起度過的時光。
  3. 不顯著: Pr(>F) 0.191
TukeyHSD(Result)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = TB$SM2 ~ TB$雙因子組別)

$`TB$雙因子組別`
      diff       lwr      upr     p adj
NC-NB -0.1 -1.030171 0.830171 0.9922805
SB-NB  0.5 -0.430171 1.430171 0.5011866
SC-NB  0.5 -0.430171 1.430171 0.5011866
SB-NC  0.6 -0.330171 1.530171 0.3381411
SC-NC  0.6 -0.330171 1.530171 0.3381411
SC-SB  0.0 -0.930171 0.930171 1.0000000
plot(TukeyHSD(Result),las=1)

boxplot(formula = TB$SM2 ~TB$雙因子組別,
        data =TB,
        xlab = "組別",
        ylab = "我很享受和我的夥伴一起度過的時光。",
        col = "gray")

Result = aov(TB$SM3~TB$雙因子組別)
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$雙因子組別   3    7.5   2.500   1.327  0.269
Residuals     116  218.5   1.883               
  1. 結果: One-way Anova (雙因子分析: 各項題目)
  2. 不切換場景、切換場景、炸彈、電子鐘 -> 當我在進行VR頭腦風暴時,我常常覺得自己是孤身一人。
  3. 不顯著: Pr(>F) 0.269
TukeyHSD(Result)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = TB$SM3 ~ TB$雙因子組別)

$`TB$雙因子組別`
             diff        lwr       upr     p adj
NC-NB -0.26666667 -1.1903076 0.6569743 0.8753957
SB-NB  0.43333333 -0.4903076 1.3569743 0.6136111
SC-NB  0.03333333 -0.8903076 0.9569743 0.9997001
SB-NC  0.70000000 -0.2236410 1.6236410 0.2032249
SC-NC  0.30000000 -0.6236410 1.2236410 0.8320044
SC-SB -0.40000000 -1.3236410 0.5236410 0.6725115
plot(TukeyHSD(Result),las=1)

boxplot(formula = TB$SM3 ~TB$雙因子組別,
        data =TB,
        xlab = "組別",
        ylab = "當我在進行VR頭腦風暴時,我常常覺得自己是孤身一人。",
        col = "gray")

Result = aov(TB$SM4~TB$雙因子組別)
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$雙因子組別   3    3.5   1.167   0.509  0.677
Residuals     116  265.8   2.291               
  1. 結果: One-way Anova (雙因子分析: 各項題目)
  2. 不切換場景、切換場景、炸彈、電子鐘 -> 在VR中,當周遭有動靜時,我觀察到我的夥伴們容易分心。
  3. 不顯著: Pr(>F) 0.677
TukeyHSD(Result)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = TB$SM4 ~ TB$雙因子組別)

$`TB$雙因子組別`
             diff       lwr       upr     p adj
NC-NB  0.10000000 -0.918798 1.1187980 0.9940955
SB-NB -0.26666667 -1.285465 0.7521313 0.9036505
SC-NB -0.30000000 -1.318798 0.7187980 0.8688933
SB-NC -0.36666667 -1.385465 0.6521313 0.7843976
SC-NC -0.40000000 -1.418798 0.6187980 0.7360861
SC-SB -0.03333333 -1.052131 0.9854647 0.9997764
plot(TukeyHSD(Result),las=1)

boxplot(formula = TB$SM4 ~TB$雙因子組別,
        data =TB,
        xlab = "組別",
        ylab = "在VR中,當周遭有動靜時,我觀察到我的夥伴們容易分心。",
        col = "gray")

Result = aov(TB$SM5~TB$雙因子組別)
summary(Result)
               Df Sum Sq Mean Sq F value Pr(>F)
TB$雙因子組別   3   0.43  0.1417   0.053  0.984
Residuals     116 312.90  2.6974               
  1. 結果: One-way Anova (雙因子分析: 各項題目)
  2. 不切換場景、切換場景、炸彈、電子鐘 -> 當我在進行VR頭腦風暴時,時間似乎過得很慢。
  3. 不顯著: Pr(>F) 0.984
TukeyHSD(Result)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = TB$SM5 ~ TB$雙因子組別)

$`TB$雙因子組別`
               diff       lwr       upr     p adj
NC-NB -8.881784e-16 -1.105385 1.1053845 1.0000000
SB-NB  1.000000e-01 -1.005385 1.2053845 0.9953597
SC-NB -6.666667e-02 -1.172051 1.0387178 0.9986087
SB-NC  1.000000e-01 -1.005385 1.2053845 0.9953597
SC-NC -6.666667e-02 -1.172051 1.0387178 0.9986087
SC-SB -1.666667e-01 -1.272051 0.9387178 0.9793114
plot(TukeyHSD(Result),las=1)


boxplot(formula = TB$SM5 ~TB$雙因子組別,
        data =TB,
        xlab = "組別",
        ylab = "當我在進行VR頭腦風暴時,時間似乎過得很慢。",
        col = "gray")

差異分析- 時間方式呈現喜歡程度 t test

TB$time= factor(TB$time)
p <- ggplot(data =TB, aes(x = like,fill = time)) +  geom_bar(position = "dodge")
p

炸彈 B、電子鐘C -> 喜歡程度 1-7分 分布圖

var.test(TB$like~TB$time,  data = TB) #函數 var.test()進行變異數同質性檢定

    F test to compare two variances

data:  TB$like by TB$time
F = 1.0481, num df = 59, denom df = 59, p-value = 0.8576
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
 0.626026 1.754574
sample estimates:
ratio of variances 
           1.04805 
# 炸彈 和 電子鐘 差異程度
t.test(TB$like~TB$time , var.equal = TRUE,data = TB) # t.test 結果顯示雙尾 TWO sample t-test , p-value 要小於0.05 才有顯著差異

    Two Sample t-test

data:  TB$like by TB$time
t = 0.42491, df = 118, p-value = 0.6717
alternative hypothesis: true difference in means between group B and group C is not equal to 0
95 percent confidence interval:
 -0.3660421  0.5660421
sample estimates:
mean in group B mean in group C 
       4.833333        4.733333 

炸彈 B、電子鐘C -> 喜歡程度 t-test 不顯著 p-value = 0.6717

boxplot(formula = TB$like~TB$time,
        data =TB,
        xlab = "組別",
        ylab = "喜歡程度。",
        col = "gray")

NA
NA
t.test(TB$like~TB$time , var.equal = TRUE,alt= "greater",data = TB) # 單尾檢定

    Two Sample t-test

data:  TB$like by TB$time
t = 0.42491, df = 118, p-value = 0.3358
alternative hypothesis: true difference in means between group B and group C is greater than 0
95 percent confidence interval:
 -0.2901671        Inf
sample estimates:
mean in group B mean in group C 
       4.833333        4.733333 
Result = aov(TB$like~TB$time)
summary(Result)
             Df Sum Sq Mean Sq F value Pr(>F)
TB$time       1    0.3   0.300   0.181  0.672
Residuals   118  196.1   1.662               
LS0tDQp0aXRsZTogImRhdGEgYW5hbHlzaXMiDQphdXRob3I6ICJZdWVoQ2hpIg0KZGF0ZTogIjIwMjIvMTIvMTMiDQpvdXRwdXQ6DQogIGh0bWxfbm90ZWJvb2s6DQogICAgdG9jOiB5ZXMNCiAgICB0b2NfZmxvYXQ6IHllcw0KICAgIGhpZ2hsaWdodDogcHlnbWVudHMNCiAgICB0aGVtZTogZmxhdGx5DQogICAgY3NzOiBzdHlsZS5jc3MNCiAgaHRtbF9kb2N1bWVudDoNCiAgICB0b2M6IHllcw0KICAgIGRmX3ByaW50OiBwYWdlZA0KLS0tDQoNCg0KDQojIyMg5a6J6KOd6ZyA6KaB55qEcGFja2FnZXMNCg0KYGBge3J9DQpwYWNrYWdlcyA9IGMoImRwbHlyIiwiZ2dwbG90MiIsICJkYXRhLnRhYmxlIiwgInNjYWxlcyIsICJ0aWR5dGV4dCIsImx0bSIsInJzdGF0aXgiKQ0KZXhpc3RpbmcgPSBhcy5jaGFyYWN0ZXIoaW5zdGFsbGVkLnBhY2thZ2VzKClbLDFdKQ0KZm9yKHBrZyBpbiBwYWNrYWdlc1shKHBhY2thZ2VzICVpbiUgZXhpc3RpbmcpXSkgaW5zdGFsbC5wYWNrYWdlcyhwa2cpDQpgYGANCg0KIyMjIOi8ieWFpemcgOimgeeahHBhY2thZ2Vz5Lul5Y+K6LOH5paZDQoNCmBgYHtyIGVjaG8gPSBULCByZXN1bHRzID0gJ2hpZGUnfQ0KcmVxdWlyZShkcGx5cikNCnJlcXVpcmUoZ2dwbG90MikNCnJlcXVpcmUoZGF0YS50YWJsZSkNCnJlcXVpcmUoc2NhbGVzKQ0KcmVxdWlyZSh3b3JkY2xvdWQyKQ0KcmVxdWlyZSh0aWR5dGV4dCkNCnJlcXVpcmUobHRtKQ0KcmVxdWlyZShyc3RhdGl4KQ0KYGBgDQoNCiMjIyDovInlhaXos4fmlpkNCmBgYHtyfQ0KVEIgPSByZWFkLmNzdignZGF0YS5jc3YnKQ0KVEIk5Zau5Zug5a2Q57WE5YilPSBmYWN0b3IoVEIk5Zau5Zug5a2Q57WE5YilKQ0KVEIk6ZuZ5Zug5a2Q57WE5YilPSBmYWN0b3IoVEIk6ZuZ5Zug5a2Q57WE5YilKQ0KVEIkdGltZT0gZmFjdG9yKFRCJHRpbWUpDQoNCmBgYA0KDQoNCiMjIyDmqqLoppbliY02562G6LOH5paZDQpgYGB7cn0NCmhlYWQoVEIpDQpgYGANCg0KDQojIGNyb25iYWNoIGFscGhhDQojIyMgMS7liqDnuL3lgLzlubPlnYco5rKJ5rW45oSfKSANCg0KYGBge3J9DQojIGNyb25iYWNoIGFscGhhDQoNCmhlYWQoVEJbNjo5XSkNCmNyb25iYWNoLmFscGhhKFRCWzY6OV0sIENJPVRSVUUsIHN0YW5kYXJkaXplZD1UUlVFKQ0KDQpuZXdfdGIgPC0gZGF0YS5mcmFtZShUQiTmsonmtbjmhJ8xLFRCJOayiea1uOaEnzMsVEIk5rKJ5rW45oSfNCkNCmhlYWQobmV3X3RiKQ0KY3JvbmJhY2guYWxwaGEobmV3X3RiLENJPSBUUlVFLCBzdGFuZGFyZGl6ZWQgPSBUUlVFKQ0KDQpgYGANCg0KDQoNCj5JdGVtczogNA0KPlNhbXBsZSB1bml0czogMTIwDQo+YWxwaGE6IDAuNjU1DQo+IGFscGhhIOaykuaciei2hemBjjAuNzDvvIzmi7/mjonmsonmtbjmhJ8y77yM5YaN5YGa5LiA5qyhDQo+SXRlbXM6IDMNCj5TYW1wbGUgdW5pdHM6IDEyMA0KPmFscGhhOiAwLjcNCg0KDQoNCiMjIyAyLuWKoOe4veWAvOW5s+Wdhyjoh6rmiJHlibXpgKDlipspIC0+IOmhr+iRl+aAp+iIh2JveHBsb3QNCg0KYGBge3J9DQojIGNyb25iYWNoIGFscGhhDQoNCmhlYWQoVEJbMTY6MThdKQ0KY3JvbmJhY2guYWxwaGEoVEJbMTY6MThdLCBDST1UUlVFLCBzdGFuZGFyZGl6ZWQ9VFJVRSkNCg0KYGBgDQo+IEl0ZW1zOiAzDQo+IFNhbXBsZSB1bml0czogMTIwDQo+IGFscGhhOiAwLjgyMw0KDQoNCg0KIyMjIDMu5Yqg57i95YC85bmz5Z2HKOekvuS6pOS6kuWLlSBTb2NpYWwgSW50ZXJhY3Rpb24pIC0+IOmhr+iRl+aAp+iIh2JveHBsb3QNCg0KYGBge3J9DQojIGNyb25iYWNoIGFscGhhDQoNCmhlYWQoVEJbMTk6MjddKQ0KY3JvbmJhY2guYWxwaGEoVEJbMTk6MjddLCBDST1UUlVFLCBzdGFuZGFyZGl6ZWQ9VFJVRSkNCg0KYGBgDQo+SXRlbXM6IDkNCj5TYW1wbGUgdW5pdHM6IDEyMA0KPmFscGhhOiAwLjg0Mg0KDQojIyMgNC7liqDnuL3lgLzlubPlnYco56S+5Lqk5LqS5YuVIFNvY2lhbCBJbnRlcmFjdGlvbu+8mlFPSSkgLT4g6aGv6JGX5oCn6IiHYm94cGxvdA0KDQoNCmBgYHtyfQ0KIyBjcm9uYmFjaCBhbHBoYQ0KDQpoZWFkKFRCWzE5OjIyXSkNCmNyb25iYWNoLmFscGhhKFRCWzE5OjIyXSwgQ0k9VFJVRSwgc3RhbmRhcmRpemVkPVRSVUUpDQoNCmBgYA0KPkl0ZW1zOiA0DQo+U2FtcGxlIHVuaXRzOiAxMjANCj5hbHBoYTogMC44MzQNCg0KDQojIyMgNS7liqDnuL3lgLzlubPlnYco56S+5Lqk5LqS5YuVIFNvY2lhbCBJbnRlcmFjdGlvbu+8mlNNKSAtPiDpoa/okZfmgKfoiIdib3hwbG90DQoNCmBgYHtyfQ0KIyBjcm9uYmFjaCBhbHBoYQ0KDQpoZWFkKFRCWzIzOjI3XSkNCmNyb25iYWNoLmFscGhhKFRCWzIzOjI3XSwgQ0k9VFJVRSwgc3RhbmRhcmRpemVkPVRSVUUpDQoNCmBgYA0KPkl0ZW1zOiA1DQo+U2FtcGxlIHVuaXRzOiAxMjANCj5hbHBoYTogMC43MDcNCg0KIyDllq7lm6DlrZDliIbmnpDvvJog5YiH5o+b5aC05pmvKFMpIFZTIOS4jeWIh+aPm+WgtOaZryhOKQ0KDQojIyMgMS7liqDnuL3lgLzlubPlnYco5rKJ5rW45oSfKSAtPiDpoa/okZfmgKfoiIdib3hwbG90DQoNCmBgYHtyfQ0KIyBjcm9uYmFjaCBhbHBoYQ0KDQpoZWFkKFRCWzY6OV0pDQpjcm9uYmFjaC5hbHBoYShUQls2OjldLCBDST1UUlVFLCBzdGFuZGFyZGl6ZWQ9VFJVRSkNCg0KbmV3X3RiIDwtIGRhdGEuZnJhbWUoVEIk5rKJ5rW45oSfMSxUQiTmsonmtbjmhJ8zLFRCJOayiea1uOaEnzQpDQpoZWFkKG5ld190YikNCmNyb25iYWNoLmFscGhhKG5ld190YixDST0gVFJVRSwgc3RhbmRhcmRpemVkID0gVFJVRSkNCg0KYGBgDQoNCg0KYGBge3J9DQojIOagueaTmuS4iumdomNyb25iYWNoLmFscGhh55qE57WQ5p6c77yM5ou/5o6J5rKJ5rW45oSfMg0KDQpUQiA8LSB0cmFuc2Zvcm0oVEIsIGFsbF9pbW1lciA9IChUQiTmsonmtbjmhJ8xICsgVEIk5rKJ5rW45oSfMyArIFRCJOayiea1uOaEnzQpLzMpDQoNClJlc3VsdCA9IGFvdihUQiRhbGxfaW1tZXJ+VEIk5Zau5Zug5a2Q57WE5YilKQ0KDQpnZXRfc3VtbWFyeV9zdGF0cyhncm91cF9ieShUQiwg5Zau5Zug5a2Q57WE5YilLCApLCBhbGxfaW1tZXIsIHR5cGUgPSAibWVhbl9zZCIpDQoNCnN1bW1hcnkoUmVzdWx0KQ0KYGBgDQo+IDEuIOe1kOaenO+8miBPbmUtd2F5IEFub3ZhICjllq7lm6DlrZDliIbmnpDvvJog5Yqg57i95bmz5Z2H5Li76aGM5YiG5pW4KQ0KPiAyLiDkuI3liIfmj5vloLTmma/oiIfliIfmj5vloLTmma8gLT4g5rKJ5rW45oSfDQo+IDMuIOmhr+iRl+W3rueVsO+8miBQcig+RikgMC4wMzQ4ICogICgwLjAxIOKAmCrigJkpDQoNCmBgYHtyfQ0KYm94cGxvdChmb3JtdWxhID0gVEIkYWxsX2ltbWVyIH5UQiTllq7lm6DlrZDntYTliKUsDQogICAgICAgIGRhdGEgPVRCLA0KICAgICAgICB4bGFiID0gIue1hOWIpSIsDQogICAgICAgIHlsYWIgPSAi5rKJ5rW45oSfKSAtPiDpoa/okZfmgKciLA0KICAgICAgICBjb2wgPSAiZ3JheSIpDQoNCmdncGxvdChUQiwgYWVzKHggPSDllq7lm6DlrZDntYTliKUsIHkgPSBhbGxfaW1tZXIpKSArICAgIyBEcmF3IGdncGxvdDIgYm94cGxvdA0KICBnZW9tX2JveHBsb3QoKSArDQogIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInBvaW50IiwgY29sID0gInJlZCIpICsgICMgQWRkIHBvaW50cyB0byBwbG90DQogIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInRleHQiLCBjb2wgPSAicmVkIiwgICAgICMgQWRkIHRleHQgdG8gcGxvdA0KICAgICAgICAgICAgICAgdmp1c3QgPSAxLjUsIGFlcyhsYWJlbCA9IHBhc3RlKCJNZWFuOiIsIHJvdW5kKGFmdGVyX3N0YXQoeSksIGRpZ2l0cyA9IDEpKSkpDQoNCmBgYA0KDQoNCg0KIyMjIDIu5Yqg57i95YC85bmz5Z2HKOiHquaIkeWJtemAoOWKmykgLT4g6aGv6JGX5oCn6IiHYm94cGxvdA0KDQpgYGB7cn0NCiMgY3JvbmJhY2ggYWxwaGENCg0KaGVhZChUQlsxNjoxOF0pDQpjcm9uYmFjaC5hbHBoYShUQlsxNjoxOF0sIENJPVRSVUUsIHN0YW5kYXJkaXplZD1UUlVFKQ0KDQpgYGANCg0KYGBge3J9DQpUQiA8LSB0cmFuc2Zvcm0oVEIsIGFsbF9jcmVhdGl2ZSA9IChUQiTmg7Pms5Xmlbjph48gKyBUQiTlk4Hos6ogKyBUQiTlibXpgKDlipspLzMpDQpSZXN1bHQgPSBhb3YoVEIkYWxsX2NyZWF0aXZlflRCJOWWruWboOWtkOe1hOWIpSkNCmdldF9zdW1tYXJ5X3N0YXRzKGdyb3VwX2J5KFRCLCDllq7lm6DlrZDntYTliKUsICksIGFsbF9jcmVhdGl2ZSwgdHlwZSA9ICJtZWFuX3NkIikNCnN1bW1hcnkoUmVzdWx0KQ0KYGBgDQoNCj4gMS4g57WQ5p6c77yaIE9uZS13YXkgQW5vdmEgKOWWruWboOWtkOWIhuaekO+8miDliqDnuL3lubPlnYfkuLvpoYzliIbmlbgpDQo+IDIuIOS4jeWIh+aPm+WgtOaZr+iIh+WIh+aPm+WgtOaZryAtPiDlibXpgKDlipsNCj4gMy4g6aGv6JGX5beu55Ww77yaIFByKD5GKSAwLjAyMDkgKiAgKDAuMDEg4oCYKuKAmSkNCg0KYGBge3J9DQpib3hwbG90KGZvcm11bGEgPSBUQiRhbGxfY3JlYXRpdmUgflRCJOWWruWboOWtkOe1hOWIpSwNCiAgICAgICAgZGF0YSA9VEIsDQogICAgICAgIHhsYWIgPSAi57WE5YilIiwNCiAgICAgICAgeWxhYiA9ICLoh6rmiJHlibXpgKDlipspIC0+IOmhr+iRl+aApyIsDQogICAgICAgIGNvbCA9ICJncmF5IikNCg0KZ2dwbG90KFRCLCBhZXMoeCA9IOWWruWboOWtkOe1hOWIpSwgeSA9IGFsbF9jcmVhdGl2ZSkpICsgICAjIERyYXcgZ2dwbG90MiBib3hwbG90DQogIGdlb21fYm94cGxvdCgpICsNCiAgc3RhdF9zdW1tYXJ5KGZ1biA9IG1lYW4sIGdlb20gPSAicG9pbnQiLCBjb2wgPSAicmVkIikgKyAgIyBBZGQgcG9pbnRzIHRvIHBsb3QNCiAgc3RhdF9zdW1tYXJ5KGZ1biA9IG1lYW4sIGdlb20gPSAidGV4dCIsIGNvbCA9ICJyZWQiLCAgICAgIyBBZGQgdGV4dCB0byBwbG90DQogICAgICAgICAgICAgICB2anVzdCA9IDEuNSwgYWVzKGxhYmVsID0gcGFzdGUoIk1lYW46Iiwgcm91bmQoYWZ0ZXJfc3RhdCh5KSwgZGlnaXRzID0gMSkpKSkNCg0KYGBgDQoNCiMjIyAzLuWKoOe4veWAvOW5s+WdhyjnpL7kuqTkupLli5UgU29jaWFsIEludGVyYWN0aW9uKSAtPiDpoa/okZfmgKfoiIdib3hwbG90DQoNCmBgYHtyfQ0KIyBjcm9uYmFjaCBhbHBoYQ0KDQpoZWFkKFRCWzE5OjI3XSkNCmNyb25iYWNoLmFscGhhKFRCWzE5OjI3XSwgQ0k9VFJVRSwgc3RhbmRhcmRpemVkPVRSVUUpDQoNCmBgYA0KDQpgYGB7cn0NClRCIDwtIHRyYW5zZm9ybShUQiwgYWxsX1NJID0gKFRCJFFvSTEgKyBUQiRRb0kyICsgVEIkUW9JMyArIFRCJFFvSTQgKyBUQiRTTTEgKyBUQiRTTTIgKyBUQiRTTTMgKyBUQiRTTTQgKyBUQiRTTTUpLzkpDQpSZXN1bHQgPSBhb3YoVEIkYWxsX1NJflRCJOWWruWboOWtkOe1hOWIpSkNCmdldF9zdW1tYXJ5X3N0YXRzKGdyb3VwX2J5KFRCLCDllq7lm6DlrZDntYTliKUsICksIGFsbF9TSSwgdHlwZSA9ICJtZWFuX3NkIikNCnN1bW1hcnkoUmVzdWx0KQ0KYGBgDQo+IDEuIOe1kOaenO+8miBPbmUtd2F5IEFub3ZhICjllq7lm6DlrZDliIbmnpDvvJog5Yqg57i95bmz5Z2H5Li76aGM5YiG5pW4KQ0KPiAyLiDkuI3liIfmj5vloLTmma/oiIfliIfmj5vloLTmma8gLT4g56S+5Lqk5LqS5YuVKDnpoYwpDQo+IDMuIOS4jemhr+iRl++8miBQcig+RikgMC4zMTINCg0KYGBge3J9DQpib3hwbG90KGZvcm11bGEgPSBUQiRhbGxfU0kgflRCJOWWruWboOWtkOe1hOWIpSwNCiAgICAgICAgZGF0YSA9VEIsDQogICAgICAgIHhsYWIgPSAi57WE5YilIiwNCiAgICAgICAgeWxhYiA9ICLnpL7kuqTkupLli5UgU29jaWFsIEludGVyYWN0aW9uKSAtPiDpoa/okZfmgKciLA0KICAgICAgICBjb2wgPSAiZ3JheSIpDQoNCmdncGxvdChUQiwgYWVzKHggPSDllq7lm6DlrZDntYTliKUsIHkgPSBhbGxfU0kpKSArICAgIyBEcmF3IGdncGxvdDIgYm94cGxvdA0KICBnZW9tX2JveHBsb3QoKSArDQogIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInBvaW50IiwgY29sID0gInJlZCIpICsgICMgQWRkIHBvaW50cyB0byBwbG90DQogIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInRleHQiLCBjb2wgPSAicmVkIiwgICAgICMgQWRkIHRleHQgdG8gcGxvdA0KICAgICAgICAgICAgICAgdmp1c3QgPSAxLjUsIGFlcyhsYWJlbCA9IHBhc3RlKCJNZWFuOiIsIHJvdW5kKGFmdGVyX3N0YXQoeSksIGRpZ2l0cyA9IDEpKSkpDQoNCmBgYA0KDQoNCg0KIyMjIDQu5Yqg57i95YC85bmz5Z2HKOekvuS6pOS6kuWLlSBTb2NpYWwgSW50ZXJhY3Rpb27vvJpRT0kpIC0+IOmhr+iRl+aAp+iIh2JveHBsb3QNCg0KDQpgYGB7cn0NCiMgY3JvbmJhY2ggYWxwaGENCg0KaGVhZChUQlsxOToyMl0pDQpjcm9uYmFjaC5hbHBoYShUQlsxOToyMl0sIENJPVRSVUUsIHN0YW5kYXJkaXplZD1UUlVFKQ0KDQpgYGANCg0KYGBge3J9DQpUQiA8LSB0cmFuc2Zvcm0oVEIsIGFsbF9RT0kgPSAoVEIkUW9JMSArIFRCJFFvSTIgKyBUQiRRb0kzICsgVEIkUW9JNCkvNCkgDQpSZXN1bHQgPSBhb3YoVEIkYWxsX1FPSX5UQiTllq7lm6DlrZDntYTliKUpDQpnZXRfc3VtbWFyeV9zdGF0cyhncm91cF9ieShUQiwg5Zau5Zug5a2Q57WE5YilLCApLCBhbGxfUU9JLCB0eXBlID0gIm1lYW5fc2QiKQ0Kc3VtbWFyeShSZXN1bHQpDQpgYGANCj4gMS4g57WQ5p6c77yaIE9uZS13YXkgQW5vdmEgKOWWruWboOWtkOWIhuaekO+8miDliqDnuL3lubPlnYfkuLvpoYzliIbmlbgpDQo+IDIuIOS4jeWIh+aPm+WgtOaZr+iIh+WIh+aPm+WgtOaZryAtPiBTb2NpYWwgSW50ZXJhY3Rpb27vvJpRT0kNCj4gMy4g5LiN6aGv6JGX77yaIFByKD5GKSAgMC41MDUNCg0KYGBge3J9DQpib3hwbG90KGZvcm11bGEgPSBUQiRhbGxfUU9JIH5UQiTllq7lm6DlrZDntYTliKUsDQogICAgICAgIGRhdGEgPVRCLA0KICAgICAgICB4bGFiID0gIue1hOWIpSIsDQogICAgICAgIHlsYWIgPSAi56S+5Lqk5LqS5YuVIFNvY2lhbCBJbnRlcmFjdGlvbu+8mlFPSSkgLT4g6aGv6JGX5oCnIiwNCiAgICAgICAgY29sID0gImdyYXkiKQ0KDQpnZ3Bsb3QoVEIsIGFlcyh4ID0g5Zau5Zug5a2Q57WE5YilLCB5ID0gYWxsX1FPSSkpICsgICAjIERyYXcgZ2dwbG90MiBib3hwbG90DQogIGdlb21fYm94cGxvdCgpICsNCiAgc3RhdF9zdW1tYXJ5KGZ1biA9IG1lYW4sIGdlb20gPSAicG9pbnQiLCBjb2wgPSAicmVkIikgKyAgIyBBZGQgcG9pbnRzIHRvIHBsb3QNCiAgc3RhdF9zdW1tYXJ5KGZ1biA9IG1lYW4sIGdlb20gPSAidGV4dCIsIGNvbCA9ICJyZWQiLCAgICAgIyBBZGQgdGV4dCB0byBwbG90DQogICAgICAgICAgICAgICB2anVzdCA9IDEuNSwgYWVzKGxhYmVsID0gcGFzdGUoIk1lYW46Iiwgcm91bmQoYWZ0ZXJfc3RhdCh5KSwgZGlnaXRzID0gMSkpKSkNCg0KDQoNCg0KYGBgDQoNCiMjIyA1LuWKoOe4veWAvOW5s+WdhyjnpL7kuqTkupLli5UgU29jaWFsIEludGVyYWN0aW9u77yaU00pIC0+IOmhr+iRl+aAp+iIh2JveHBsb3QNCg0KYGBge3J9DQojIGNyb25iYWNoIGFscGhhDQoNCmhlYWQoVEJbMjM6MjddKQ0KY3JvbmJhY2guYWxwaGEoVEJbMjM6MjddLCBDST1UUlVFLCBzdGFuZGFyZGl6ZWQ9VFJVRSkNCg0KYGBgDQoNCmBgYHtyfQ0KVEIgPC0gdHJhbnNmb3JtKFRCLCBhbGxfU00gPSAoVEIkU00xICsgVEIkU00yICsgVEIkU00zICsgVEIkU000ICsgVEIkU001KS81KQ0KUmVzdWx0ID0gYW92KFRCJGFsbF9TTX5UQiTllq7lm6DlrZDntYTliKUpDQpnZXRfc3VtbWFyeV9zdGF0cyhncm91cF9ieShUQiwg5Zau5Zug5a2Q57WE5YilLCApLCBhbGxfU00sIHR5cGUgPSAibWVhbl9zZCIpDQpzdW1tYXJ5KFJlc3VsdCkNCmBgYA0KPiAxLiDntZDmnpzvvJogT25lLXdheSBBbm92YSAo5Zau5Zug5a2Q5YiG5p6Q77yaIOWKoOe4veW5s+Wdh+S4u+mhjOWIhuaVuCkNCj4gMi4g5LiN5YiH5o+b5aC05pmv6IiH5YiH5o+b5aC05pmvIC0+IFNvY2lhbCBJbnRlcmFjdGlvbu+8mlNNDQo+IDMuIOS4jemhr+iRl++8miBQcig+RikgIDAuMjU5DQoNCmBgYHtyfQ0KYm94cGxvdChmb3JtdWxhID0gVEIkYWxsX1NNIH5UQiTllq7lm6DlrZDntYTliKUsDQogICAgICAgIGRhdGEgPVRCLA0KICAgICAgICB4bGFiID0gIue1hOWIpSIsDQogICAgICAgIHlsYWIgPSAi56S+5Lqk5LqS5YuVIFNvY2lhbCBJbnRlcmFjdGlvbu+8mlNNKSAtPiDpoa/okZfmgKciLA0KICAgICAgICBjb2wgPSAiZ3JheSIpDQoNCmdncGxvdChUQiwgYWVzKHggPSDllq7lm6DlrZDntYTliKUsIHkgPSBhbGxfU00pKSArICAgIyBEcmF3IGdncGxvdDIgYm94cGxvdA0KICBnZW9tX2JveHBsb3QoKSArDQogIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInBvaW50IiwgY29sID0gInJlZCIpICsgICMgQWRkIHBvaW50cyB0byBwbG90DQogIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInRleHQiLCBjb2wgPSAicmVkIiwgICAgICMgQWRkIHRleHQgdG8gcGxvdA0KICAgICAgICAgICAgICAgdmp1c3QgPSAxLjUsIGFlcyhsYWJlbCA9IHBhc3RlKCJNZWFuOiIsIHJvdW5kKGFmdGVyX3N0YXQoeSksIGRpZ2l0cyA9IDEpKSkpDQoNCg0KYGBgDQoNCg0KDQojIyMgNi7oqo3nn6Xlo5PlipsgTkFTQS1UTFgtPiDpoa/okZfmgKfoiIdib3hwbG90DQoNCmBgYHtyfQ0KUmVzdWx0ID0gYW92KFRCJOeyvuelnumcgOaxgn5UQiTllq7lm6DlrZDntYTliKUpDQpnZXRfc3VtbWFyeV9zdGF0cyhncm91cF9ieShUQiwg5Zau5Zug5a2Q57WE5YilLCApLCDnsr7npZ7pnIDmsYIsIHR5cGUgPSAibWVhbl9zZCIpDQpzdW1tYXJ5KFJlc3VsdCkNCmBgYA0KPiAxLiDntZDmnpzvvJogT25lLXdheSBBbm92YSAo5Zau5Zug5a2Q5YiG5p6Q77yaIOWQhOmghemhjOebrikNCj4gMi4g5LiN5YiH5o+b5aC05pmv6IiH5YiH5o+b5aC05pmvIC0+IOeyvuelnumcgOaxgg0KPiAzLiDpoa/okZfvvJogUHIoPkYpICAwLjA2MzYgLiAoMC4wNSDigJgu4oCZKQ0KDQpgYGB7cn0NCmJveHBsb3QoZm9ybXVsYSA9IFRCJOeyvuelnumcgOaxgiB+VEIk5Zau5Zug5a2Q57WE5YilLA0KICAgICAgICBkYXRhID1UQiwNCiAgICAgICAgeGxhYiA9ICLntYTliKUiLA0KICAgICAgICB5bGFiID0gIueyvuelnumcgOaxgiIsDQogICAgICAgIGNvbCA9ICJncmF5IikNCg0KZ2dwbG90KFRCLCBhZXMoeCA9IOWWruWboOWtkOe1hOWIpSwgeSA9IOeyvuelnumcgOaxgikpICsgICAjIERyYXcgZ2dwbG90MiBib3hwbG90DQogIGdlb21fYm94cGxvdCgpICsNCiAgc3RhdF9zdW1tYXJ5KGZ1biA9IG1lYW4sIGdlb20gPSAicG9pbnQiLCBjb2wgPSAicmVkIikgKyAgIyBBZGQgcG9pbnRzIHRvIHBsb3QNCiAgc3RhdF9zdW1tYXJ5KGZ1biA9IG1lYW4sIGdlb20gPSAidGV4dCIsIGNvbCA9ICJyZWQiLCAgICAgIyBBZGQgdGV4dCB0byBwbG90DQogICAgICAgICAgICAgICB2anVzdCA9IDEuNSwgYWVzKGxhYmVsID0gcGFzdGUoIk1lYW46Iiwgcm91bmQoYWZ0ZXJfc3RhdCh5KSwgZGlnaXRzID0gMSkpKSkNCg0KYGBgDQoNCg0KYGBge3J9DQpSZXN1bHQgPSBhb3YoVEIk6auU5Yqb6ZyA5rGCflRCJOWWruWboOWtkOe1hOWIpSkNCmdldF9zdW1tYXJ5X3N0YXRzKGdyb3VwX2J5KFRCLCDllq7lm6DlrZDntYTliKUsICksIOmrlOWKm+mcgOaxgiwgdHlwZSA9ICJtZWFuX3NkIikNCnN1bW1hcnkoUmVzdWx0KQ0KYGBgDQo+IDEuIOe1kOaenO+8miBPbmUtd2F5IEFub3ZhICjllq7lm6DlrZDliIbmnpDvvJog5ZCE6aCF6aGM55uuKQ0KPiAyLiDkuI3liIfmj5vloLTmma/oiIfliIfmj5vloLTmma8gLT4g6auU5Yqb6ZyA5rGCDQo+IDMuIOS4jemhr+iRl++8miBQcig+RikgMC44NzENCg0KYGBge3J9DQpib3hwbG90KGZvcm11bGEgPSBUQiTpq5TlipvpnIDmsYIgflRCJOWWruWboOWtkOe1hOWIpSwNCiAgICAgICAgZGF0YSA9VEIsDQogICAgICAgIHhsYWIgPSAi57WE5YilIiwNCiAgICAgICAgeWxhYiA9ICLpq5TlipvpnIDmsYIiLA0KICAgICAgICBjb2wgPSAiZ3JheSIpDQoNCmdncGxvdChUQiwgYWVzKHggPSDllq7lm6DlrZDntYTliKUsIHkgPSDpq5TlipvpnIDmsYIpKSArICAgIyBEcmF3IGdncGxvdDIgYm94cGxvdA0KICBnZW9tX2JveHBsb3QoKSArDQogIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInBvaW50IiwgY29sID0gInJlZCIpICsgICMgQWRkIHBvaW50cyB0byBwbG90DQogIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInRleHQiLCBjb2wgPSAicmVkIiwgICAgICMgQWRkIHRleHQgdG8gcGxvdA0KICAgICAgICAgICAgICAgdmp1c3QgPSAxLjUsIGFlcyhsYWJlbCA9IHBhc3RlKCJNZWFuOiIsIHJvdW5kKGFmdGVyX3N0YXQoeSksIGRpZ2l0cyA9IDEpKSkpDQoNCmBgYA0KDQoNCmBgYHtyfQ0KDQpSZXN1bHQgPSBhb3YoVEIk5pmC6ZaT5aOT5YqbflRCJOWWruWboOWtkOe1hOWIpSkNCmdldF9zdW1tYXJ5X3N0YXRzKGdyb3VwX2J5KFRCLCDllq7lm6DlrZDntYTliKUsICksIOaZgumWk+Wjk+WKmywgdHlwZSA9ICJtZWFuX3NkIikNCnN1bW1hcnkoUmVzdWx0KQ0KYGBgDQoNCj4gMS4g57WQ5p6c77yaIE9uZS13YXkgQW5vdmEgKOWWruWboOWtkOWIhuaekO+8miDlkITpoIXpoYznm64pDQo+IDIuIOS4jeWIh+aPm+WgtOaZr+iIh+WIh+aPm+WgtOaZryAtPiDmmYLplpPlo5PlipsNCj4gMy4g5LiN6aGv6JGX77yaIFByKD5GKSAwLjI4Mg0KDQpgYGB7cn0NCmJveHBsb3QoZm9ybXVsYSA9IFRCJOaZgumWk+Wjk+WKmyB+VEIk5Zau5Zug5a2Q57WE5YilLA0KICAgICAgICBkYXRhID1UQiwNCiAgICAgICAgeGxhYiA9ICLntYTliKUiLA0KICAgICAgICB5bGFiID0gIuaZgumWk+Wjk+WKmyIsDQogICAgICAgIGNvbCA9ICJncmF5IikNCg0KZ2dwbG90KFRCLCBhZXMoeCA9IOWWruWboOWtkOe1hOWIpSwgeSA9IOaZgumWk+Wjk+WKmykpICsgICAjIERyYXcgZ2dwbG90MiBib3hwbG90DQogIGdlb21fYm94cGxvdCgpICsNCiAgc3RhdF9zdW1tYXJ5KGZ1biA9IG1lYW4sIGdlb20gPSAicG9pbnQiLCBjb2wgPSAicmVkIikgKyAgIyBBZGQgcG9pbnRzIHRvIHBsb3QNCiAgc3RhdF9zdW1tYXJ5KGZ1biA9IG1lYW4sIGdlb20gPSAidGV4dCIsIGNvbCA9ICJyZWQiLCAgICAgIyBBZGQgdGV4dCB0byBwbG90DQogICAgICAgICAgICAgICB2anVzdCA9IDEuNSwgYWVzKGxhYmVsID0gcGFzdGUoIk1lYW46Iiwgcm91bmQoYWZ0ZXJfc3RhdCh5KSwgZGlnaXRzID0gMSkpKSkNCg0KYGBgDQoNCg0KYGBge3J9DQpSZXN1bHQgPSBhb3YoVEIk5oiQ5YqfflRCJOWWruWboOWtkOe1hOWIpSkNCmdldF9zdW1tYXJ5X3N0YXRzKGdyb3VwX2J5KFRCLCDllq7lm6DlrZDntYTliKUsICksIOaIkOWKnywgdHlwZSA9ICJtZWFuX3NkIikNCnN1bW1hcnkoUmVzdWx0KQ0KYGBgDQo+IDEuIOe1kOaenO+8miBPbmUtd2F5IEFub3ZhICjllq7lm6DlrZDliIbmnpDvvJog5ZCE6aCF6aGM55uuKQ0KPiAyLiDkuI3liIfmj5vloLTmma/oiIfliIfmj5vloLTmma8gLT4g5oiQ5YqfDQo+IDMuIOS4jemhr+iRl++8miBQcig+RikgMC4zNzgNCg0KYGBge3J9DQpib3hwbG90KGZvcm11bGEgPSBUQiTmiJDlip8gflRCJOWWruWboOWtkOe1hOWIpSwNCiAgICAgICAgZGF0YSA9VEIsDQogICAgICAgIHhsYWIgPSAi57WE5YilIiwNCiAgICAgICAgeWxhYiA9ICLmiJDlip8iLA0KICAgICAgICBjb2wgPSAiZ3JheSIpDQoNCmdncGxvdChUQiwgYWVzKHggPSDllq7lm6DlrZDntYTliKUsIHkgPSDmiJDlip8pKSArICAgIyBEcmF3IGdncGxvdDIgYm94cGxvdA0KICBnZW9tX2JveHBsb3QoKSArDQogIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInBvaW50IiwgY29sID0gInJlZCIpICsgICMgQWRkIHBvaW50cyB0byBwbG90DQogIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInRleHQiLCBjb2wgPSAicmVkIiwgICAgICMgQWRkIHRleHQgdG8gcGxvdA0KICAgICAgICAgICAgICAgdmp1c3QgPSAxLjUsIGFlcyhsYWJlbCA9IHBhc3RlKCJNZWFuOiIsIHJvdW5kKGFmdGVyX3N0YXQoeSksIGRpZ2l0cyA9IDEpKSkpDQpgYGANCg0KDQpgYGB7cn0NCg0KUmVzdWx0ID0gYW92KFRCJOWKquWKm35UQiTllq7lm6DlrZDntYTliKUpDQpnZXRfc3VtbWFyeV9zdGF0cyhncm91cF9ieShUQiwg5Zau5Zug5a2Q57WE5YilLCApLCDliqrlipssIHR5cGUgPSAibWVhbl9zZCIpDQpzdW1tYXJ5KFJlc3VsdCkNCmBgYA0KPiAxLiDntZDmnpzvvJogT25lLXdheSBBbm92YSAo5Zau5Zug5a2Q5YiG5p6Q77yaIOWQhOmghemhjOebrikNCj4gMi4g5LiN5YiH5o+b5aC05pmv6IiH5YiH5o+b5aC05pmvIC0+IOWKquWKmw0KPiAzLiDpoa/okZfvvJogUHIoPkYpIDAuMDUwOSAuICgwLjA1IOKAmC7igJkpDQoNCmBgYHtyfQ0KYm94cGxvdChmb3JtdWxhID0gVEIk5Yqq5YqbIH5UQiTllq7lm6DlrZDntYTliKUsDQogICAgICAgIGRhdGEgPVRCLA0KICAgICAgICB4bGFiID0gIue1hOWIpSIsDQogICAgICAgIHlsYWIgPSAi5Yqq5YqbIiwNCiAgICAgICAgY29sID0gImdyYXkiKQ0KDQpnZ3Bsb3QoVEIsIGFlcyh4ID0g5Zau5Zug5a2Q57WE5YilLCB5ID0g5Yqq5YqbKSkgKyAgICMgRHJhdyBnZ3Bsb3QyIGJveHBsb3QNCiAgZ2VvbV9ib3hwbG90KCkgKw0KICBzdGF0X3N1bW1hcnkoZnVuID0gbWVhbiwgZ2VvbSA9ICJwb2ludCIsIGNvbCA9ICJyZWQiKSArICAjIEFkZCBwb2ludHMgdG8gcGxvdA0KICBzdGF0X3N1bW1hcnkoZnVuID0gbWVhbiwgZ2VvbSA9ICJ0ZXh0IiwgY29sID0gInJlZCIsICAgICAjIEFkZCB0ZXh0IHRvIHBsb3QNCiAgICAgICAgICAgICAgIHZqdXN0ID0gMS41LCBhZXMobGFiZWwgPSBwYXN0ZSgiTWVhbjoiLCByb3VuZChhZnRlcl9zdGF0KHkpLCBkaWdpdHMgPSAxKSkpKQ0KYGBgDQoNCg0KYGBge3J9DQpSZXN1bHQgPSBhb3YoVEIk5LiN5a6JflRCJOWWruWboOWtkOe1hOWIpSkNCmdldF9zdW1tYXJ5X3N0YXRzKGdyb3VwX2J5KFRCLCDllq7lm6DlrZDntYTliKUsICksIOS4jeWuiSwgdHlwZSA9ICJtZWFuX3NkIikNCnN1bW1hcnkoUmVzdWx0KQ0KYGBgDQo+IDEuIOe1kOaenO+8miBPbmUtd2F5IEFub3ZhICjllq7lm6DlrZDliIbmnpDvvJog5ZCE6aCF6aGM55uuKQ0KPiAyLiDkuI3liIfmj5vloLTmma/oiIfliIfmj5vloLTmma8gLT4g5LiN5a6JDQo+IDMuIOS4jemhr+iRl++8miBQcig+RikgMC4yNw0KDQpgYGB7cn0NCmJveHBsb3QoZm9ybXVsYSA9IFRCJOS4jeWuiSB+VEIk5Zau5Zug5a2Q57WE5YilLA0KICAgICAgICBkYXRhID1UQiwNCiAgICAgICAgeGxhYiA9ICLntYTliKUiLA0KICAgICAgICB5bGFiID0gIuS4jeWuiSIsDQogICAgICAgIGNvbCA9ICJncmF5IikNCmdncGxvdChUQiwgYWVzKHggPSDllq7lm6DlrZDntYTliKUsIHkgPSDkuI3lrokpKSArICAgIyBEcmF3IGdncGxvdDIgYm94cGxvdA0KICBnZW9tX2JveHBsb3QoKSArDQogIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInBvaW50IiwgY29sID0gInJlZCIpICsgICMgQWRkIHBvaW50cyB0byBwbG90DQogIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInRleHQiLCBjb2wgPSAicmVkIiwgICAgICMgQWRkIHRleHQgdG8gcGxvdA0KICAgICAgICAgICAgICAgdmp1c3QgPSAxLjUsIGFlcyhsYWJlbCA9IHBhc3RlKCJNZWFuOiIsIHJvdW5kKGFmdGVyX3N0YXQoeSksIGRpZ2l0cyA9IDEpKSkpDQoNCmBgYA0KDQoNCg0KDQoNCiMg5Zau5Zug5a2Q5YiG5p6Q77yaIOmbu+WtkOmQmCjpoa/mgKcpKEMpIFZTIOeCuOW9iCjpmrHmgKcpKEIpDQoNCiMjIyAxLuWKoOe4veWAvOW5s+WdhyjmsonmtbjmhJ8pIC0+IOmhr+iRl+aAp+iIh2JveHBsb3QNCg0KYGBge3J9DQojIGNyb25iYWNoIGFscGhhDQoNCmhlYWQoVEJbNjo5XSkNCmNyb25iYWNoLmFscGhhKFRCWzY6OV0sIENJPVRSVUUsIHN0YW5kYXJkaXplZD1UUlVFKQ0KDQpuZXdfdGIgPC0gZGF0YS5mcmFtZShUQiTmsonmtbjmhJ8xLFRCJOayiea1uOaEnzMsVEIk5rKJ5rW45oSfNCkNCmhlYWQobmV3X3RiKQ0KY3JvbmJhY2guYWxwaGEobmV3X3RiLENJPSBUUlVFLCBzdGFuZGFyZGl6ZWQgPSBUUlVFKQ0KDQpgYGANCg0KDQpgYGB7cn0NCiMg5qC55pOa5LiK6Z2iY3JvbmJhY2guYWxwaGHnmoTntZDmnpzvvIzmi7/mjonmsonmtbjmhJ8yDQoNClRCIDwtIHRyYW5zZm9ybShUQiwgYWxsX2ltbWVyID0gKFRCJOayiea1uOaEnzEgKyBUQiTmsonmtbjmhJ8zICsgVEIk5rKJ5rW45oSfNCkvMykNClJlc3VsdCA9IGFvdihUQiRhbGxfaW1tZXJ+VEIkdGltZSkNCmdldF9zdW1tYXJ5X3N0YXRzKGdyb3VwX2J5KFRCLCB0aW1lLCApLCBhbGxfaW1tZXIsIHR5cGUgPSAibWVhbl9zZCIpDQpzdW1tYXJ5KFJlc3VsdCkNCmBgYA0KPiAxLiDntZDmnpzvvJogT25lLXdheSBBbm92YSAo5Zau5Zug5a2Q5YiG5p6Q77yaIOWKoOe4veW5s+Wdh+S4u+mhjOWIhuaVuCkNCj4gMi4g6Zu75a2Q6ZCYKOmhr+aApykoQykgVlMg54K45b2IKOmaseaApykoQikgLT4g5rKJ5rW45oSfDQo+IDMuIOS4jemhr+iRl+W3rueVsO+8miBQcig+RikgMC40NjMNCg0KYGBge3J9DQpib3hwbG90KGZvcm11bGEgPSBUQiRhbGxfaW1tZXIgflRCJHRpbWUsDQogICAgICAgIGRhdGEgPVRCLA0KICAgICAgICB4bGFiID0gIue1hOWIpSIsDQogICAgICAgIHlsYWIgPSAi5rKJ5rW45oSfKSAtPiDpoa/okZfmgKciLA0KICAgICAgICBjb2wgPSAiZ3JheSIpDQoNCmdncGxvdChUQiwgYWVzKHggPSB0aW1lLCB5ID0gYWxsX2ltbWVyKSkgKyAgICMgRHJhdyBnZ3Bsb3QyIGJveHBsb3QNCiAgZ2VvbV9ib3hwbG90KCkgKw0KICBzdGF0X3N1bW1hcnkoZnVuID0gbWVhbiwgZ2VvbSA9ICJwb2ludCIsIGNvbCA9ICJyZWQiKSArICAjIEFkZCBwb2ludHMgdG8gcGxvdA0KICBzdGF0X3N1bW1hcnkoZnVuID0gbWVhbiwgZ2VvbSA9ICJ0ZXh0IiwgY29sID0gInJlZCIsICAgICAjIEFkZCB0ZXh0IHRvIHBsb3QNCiAgICAgICAgICAgICAgIHZqdXN0ID0gMS41LCBhZXMobGFiZWwgPSBwYXN0ZSgiTWVhbjoiLCByb3VuZChhZnRlcl9zdGF0KHkpLCBkaWdpdHMgPSAxKSkpKQ0KDQpgYGANCg0KDQoNCiMjIyAyLuWKoOe4veWAvOW5s+Wdhyjoh6rmiJHlibXpgKDlipspIC0+IOmhr+iRl+aAp+iIh2JveHBsb3QNCg0KYGBge3J9DQojIGNyb25iYWNoIGFscGhhDQoNCmhlYWQoVEJbMTY6MThdKQ0KY3JvbmJhY2guYWxwaGEoVEJbMTY6MThdLCBDST1UUlVFLCBzdGFuZGFyZGl6ZWQ9VFJVRSkNCg0KYGBgDQoNCmBgYHtyfQ0KVEIgPC0gdHJhbnNmb3JtKFRCLCBhbGxfY3JlYXRpdmUgPSAoVEIk5oOz5rOV5pW46YePICsgVEIk5ZOB6LOqICsgVEIk5Ym16YCg5YqbKS8zKQ0KUmVzdWx0ID0gYW92KFRCJGFsbF9jcmVhdGl2ZX5UQiR0aW1lKQ0KZ2V0X3N1bW1hcnlfc3RhdHMoZ3JvdXBfYnkoVEIsIHRpbWUsICksIGFsbF9jcmVhdGl2ZSwgdHlwZSA9ICJtZWFuX3NkIikNCnN1bW1hcnkoUmVzdWx0KQ0KYGBgDQoNCj4gMS4g57WQ5p6c77yaIE9uZS13YXkgQW5vdmEgKOWWruWboOWtkOWIhuaekO+8miDliqDnuL3lubPlnYfkuLvpoYzliIbmlbgpDQo+IDIuIOmbu+WtkOmQmCjpoa/mgKcpKEMpIFZTIOeCuOW9iCjpmrHmgKcpKEIpICAtPiDlibXpgKDlipsNCj4gMy4g5LiN6aGv6JGX5beu55Ww77yaIFByKD5GKSAwLjQ1OA0KDQpgYGB7cn0NCmJveHBsb3QoZm9ybXVsYSA9IFRCJGFsbF9jcmVhdGl2ZSB+VEIkdGltZSwNCiAgICAgICAgZGF0YSA9VEIsDQogICAgICAgIHhsYWIgPSAi57WE5YilIiwNCiAgICAgICAgeWxhYiA9ICLoh6rmiJHlibXpgKDlipspIC0+IOmhr+iRl+aApyIsDQogICAgICAgIGNvbCA9ICJncmF5IikNCg0KZ2dwbG90KFRCLCBhZXMoeCA9IHRpbWUsIHkgPSBhbGxfY3JlYXRpdmUpKSArICAgIyBEcmF3IGdncGxvdDIgYm94cGxvdA0KICBnZW9tX2JveHBsb3QoKSArDQogIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInBvaW50IiwgY29sID0gInJlZCIpICsgICMgQWRkIHBvaW50cyB0byBwbG90DQogIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInRleHQiLCBjb2wgPSAicmVkIiwgICAgICMgQWRkIHRleHQgdG8gcGxvdA0KICAgICAgICAgICAgICAgdmp1c3QgPSAxLjUsIGFlcyhsYWJlbCA9IHBhc3RlKCJNZWFuOiIsIHJvdW5kKGFmdGVyX3N0YXQoeSksIGRpZ2l0cyA9IDEpKSkpDQoNCmBgYA0KDQojIyMgMy7liqDnuL3lgLzlubPlnYco56S+5Lqk5LqS5YuVIFNvY2lhbCBJbnRlcmFjdGlvbikgLT4g6aGv6JGX5oCn6IiHYm94cGxvdA0KDQpgYGB7cn0NCiMgY3JvbmJhY2ggYWxwaGENCg0KaGVhZChUQlsxOToyN10pDQpjcm9uYmFjaC5hbHBoYShUQlsxOToyN10sIENJPVRSVUUsIHN0YW5kYXJkaXplZD1UUlVFKQ0KDQpgYGANCg0KYGBge3J9DQpUQiA8LSB0cmFuc2Zvcm0oVEIsIGFsbF9TSSA9IChUQiRRb0kxICsgVEIkUW9JMiArIFRCJFFvSTMgKyBUQiRRb0k0ICsgVEIkU00xICsgVEIkU00yICsgVEIkU00zICsgVEIkU000ICsgVEIkU001KS85KQ0KUmVzdWx0ID0gYW92KFRCJGFsbF9TSX5UQiR0aW1lKQ0KZ2V0X3N1bW1hcnlfc3RhdHMoZ3JvdXBfYnkoVEIsIHRpbWUsICksIGFsbF9TSSwgdHlwZSA9ICJtZWFuX3NkIikNCnN1bW1hcnkoUmVzdWx0KQ0KYGBgDQo+IDEuIOe1kOaenO+8miBPbmUtd2F5IEFub3ZhICjllq7lm6DlrZDliIbmnpDvvJog5Yqg57i95bmz5Z2H5Li76aGM5YiG5pW4KQ0KPiAyLiDpm7vlrZDpkJgo6aGv5oCnKShDKSBWUyDngrjlvYgo6Zqx5oCnKShCKSAtPiDnpL7kuqTkupLli5UoOemhjCkNCj4gMy4g5LiN6aGv6JGX77yaIFByKD5GKSAwLjMzMw0KDQpgYGB7cn0NCmJveHBsb3QoZm9ybXVsYSA9IFRCJGFsbF9TSSB+VEIkdGltZSwNCiAgICAgICAgZGF0YSA9VEIsDQogICAgICAgIHhsYWIgPSAi57WE5YilIiwNCiAgICAgICAgeWxhYiA9ICLnpL7kuqTkupLli5UgU29jaWFsIEludGVyYWN0aW9uKSAtPiDpoa/okZfmgKciLA0KICAgICAgICBjb2wgPSAiZ3JheSIpDQoNCmdncGxvdChUQiwgYWVzKHggPSB0aW1lLCB5ID0gYWxsX1NJKSkgKyAgICMgRHJhdyBnZ3Bsb3QyIGJveHBsb3QNCiAgZ2VvbV9ib3hwbG90KCkgKw0KICBzdGF0X3N1bW1hcnkoZnVuID0gbWVhbiwgZ2VvbSA9ICJwb2ludCIsIGNvbCA9ICJyZWQiKSArICAjIEFkZCBwb2ludHMgdG8gcGxvdA0KICBzdGF0X3N1bW1hcnkoZnVuID0gbWVhbiwgZ2VvbSA9ICJ0ZXh0IiwgY29sID0gInJlZCIsICAgICAjIEFkZCB0ZXh0IHRvIHBsb3QNCiAgICAgICAgICAgICAgIHZqdXN0ID0gMS41LCBhZXMobGFiZWwgPSBwYXN0ZSgiTWVhbjoiLCByb3VuZChhZnRlcl9zdGF0KHkpLCBkaWdpdHMgPSAxKSkpKQ0KDQpgYGANCg0KDQoNCiMjIyA0LuWKoOe4veWAvOW5s+WdhyjnpL7kuqTkupLli5UgU29jaWFsIEludGVyYWN0aW9u77yaUU9JKSAtPiDpoa/okZfmgKfoiIdib3hwbG90DQoNCg0KYGBge3J9DQojIGNyb25iYWNoIGFscGhhDQoNCmhlYWQoVEJbMTk6MjJdKQ0KY3JvbmJhY2guYWxwaGEoVEJbMTk6MjJdLCBDST1UUlVFLCBzdGFuZGFyZGl6ZWQ9VFJVRSkNCg0KYGBgDQoNCmBgYHtyfQ0KVEIgPC0gdHJhbnNmb3JtKFRCLCBhbGxfUU9JID0gKFRCJFFvSTEgKyBUQiRRb0kyICsgVEIkUW9JMyArIFRCJFFvSTQpLzQpIA0KUmVzdWx0ID0gYW92KFRCJGFsbF9RT0l+VEIkdGltZSkNCmdldF9zdW1tYXJ5X3N0YXRzKGdyb3VwX2J5KFRCLCB0aW1lLCApLCBhbGxfUU9JLCB0eXBlID0gIm1lYW5fc2QiKQ0Kc3VtbWFyeShSZXN1bHQpDQpgYGANCj4gMS4g57WQ5p6c77yaIE9uZS13YXkgQW5vdmEgKOWWruWboOWtkOWIhuaekO+8miDliqDnuL3lubPlnYfkuLvpoYzliIbmlbgpDQo+IDIuIOmbu+WtkOmQmCjpoa/mgKcpKEMpIFZTIOeCuOW9iCjpmrHmgKcpKEIpIC0+IFNvY2lhbCBJbnRlcmFjdGlvbu+8mlFPSQ0KPiAzLiDkuI3poa/okZfvvJogUHIoPkYpICAgMC40MQ0KDQpgYGB7cn0NCmJveHBsb3QoZm9ybXVsYSA9IFRCJGFsbF9RT0kgflRCJHRpbWUsDQogICAgICAgIGRhdGEgPVRCLA0KICAgICAgICB4bGFiID0gIue1hOWIpSIsDQogICAgICAgIHlsYWIgPSAi56S+5Lqk5LqS5YuVIFNvY2lhbCBJbnRlcmFjdGlvbu+8mlFPSSkgLT4g6aGv6JGX5oCnIiwNCiAgICAgICAgY29sID0gImdyYXkiKQ0KDQpnZ3Bsb3QoVEIsIGFlcyh4ID0gdGltZSwgeSA9IGFsbF9RT0kpKSArICAgIyBEcmF3IGdncGxvdDIgYm94cGxvdA0KICBnZW9tX2JveHBsb3QoKSArDQogIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInBvaW50IiwgY29sID0gInJlZCIpICsgICMgQWRkIHBvaW50cyB0byBwbG90DQogIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInRleHQiLCBjb2wgPSAicmVkIiwgICAgICMgQWRkIHRleHQgdG8gcGxvdA0KICAgICAgICAgICAgICAgdmp1c3QgPSAxLjUsIGFlcyhsYWJlbCA9IHBhc3RlKCJNZWFuOiIsIHJvdW5kKGFmdGVyX3N0YXQoeSksIGRpZ2l0cyA9IDEpKSkpDQoNCg0KDQoNCmBgYA0KDQojIyMgNS7liqDnuL3lgLzlubPlnYco56S+5Lqk5LqS5YuVIFNvY2lhbCBJbnRlcmFjdGlvbu+8mlNNKSAtPiDpoa/okZfmgKfoiIdib3hwbG90DQoNCmBgYHtyfQ0KIyBjcm9uYmFjaCBhbHBoYQ0KDQpoZWFkKFRCWzIzOjI3XSkNCmNyb25iYWNoLmFscGhhKFRCWzIzOjI3XSwgQ0k9VFJVRSwgc3RhbmRhcmRpemVkPVRSVUUpDQoNCmBgYA0KDQpgYGB7cn0NClRCIDwtIHRyYW5zZm9ybShUQiwgYWxsX1NNID0gKFRCJFNNMSArIFRCJFNNMiArIFRCJFNNMyArIFRCJFNNNCArIFRCJFNNNSkvNSkNClJlc3VsdCA9IGFvdihUQiRhbGxfU01+VEIkdGltZSkNCmdldF9zdW1tYXJ5X3N0YXRzKGdyb3VwX2J5KFRCLCB0aW1lLCApLCBhbGxfU00sIHR5cGUgPSAibWVhbl9zZCIpDQpzdW1tYXJ5KFJlc3VsdCkNCmBgYA0KPiAxLiDntZDmnpzvvJogT25lLXdheSBBbm92YSAo5Zau5Zug5a2Q5YiG5p6Q77yaIOWKoOe4veW5s+Wdh+S4u+mhjOWIhuaVuCkNCj4gMi4g6Zu75a2Q6ZCYKOmhr+aApykoQykgVlMg54K45b2IKOmaseaApykoQikgLT4gU29jaWFsIEludGVyYWN0aW9u77yaU00NCj4gMy4g5LiN6aGv6JGX77yaIFByKD5GKSAgMC4zNjcNCg0KYGBge3J9DQpib3hwbG90KGZvcm11bGEgPSBUQiRhbGxfU00gflRCJHRpbWUsDQogICAgICAgIGRhdGEgPVRCLA0KICAgICAgICB4bGFiID0gIue1hOWIpSIsDQogICAgICAgIHlsYWIgPSAi56S+5Lqk5LqS5YuVIFNvY2lhbCBJbnRlcmFjdGlvbu+8mlNNKSAtPiDpoa/okZfmgKciLA0KICAgICAgICBjb2wgPSAiZ3JheSIpDQoNCmdncGxvdChUQiwgYWVzKHggPSB0aW1lLCB5ID0gYWxsX1NNKSkgKyAgICMgRHJhdyBnZ3Bsb3QyIGJveHBsb3QNCiAgZ2VvbV9ib3hwbG90KCkgKw0KICBzdGF0X3N1bW1hcnkoZnVuID0gbWVhbiwgZ2VvbSA9ICJwb2ludCIsIGNvbCA9ICJyZWQiKSArICAjIEFkZCBwb2ludHMgdG8gcGxvdA0KICBzdGF0X3N1bW1hcnkoZnVuID0gbWVhbiwgZ2VvbSA9ICJ0ZXh0IiwgY29sID0gInJlZCIsICAgICAjIEFkZCB0ZXh0IHRvIHBsb3QNCiAgICAgICAgICAgICAgIHZqdXN0ID0gMS41LCBhZXMobGFiZWwgPSBwYXN0ZSgiTWVhbjoiLCByb3VuZChhZnRlcl9zdGF0KHkpLCBkaWdpdHMgPSAxKSkpKQ0KDQoNCmBgYA0KDQoNCiMjIyA2LuiqjeefpeWjk+WKmyBOQVNBLVRMWC0+IOmhr+iRl+aAp+iIh2JveHBsb3QNCg0KYGBge3J9DQpSZXN1bHQgPSBhb3YoVEIk57K+56We6ZyA5rGCflRCJHRpbWUpDQpnZXRfc3VtbWFyeV9zdGF0cyhncm91cF9ieShUQiwgdGltZSwgKSwg57K+56We6ZyA5rGCLCB0eXBlID0gIm1lYW5fc2QiKQ0Kc3VtbWFyeShSZXN1bHQpDQpgYGANCj4gMS4g57WQ5p6c77yaIE9uZS13YXkgQW5vdmEgKOWWruWboOWtkOWIhuaekO+8miDlkITpoIXpoYznm64pDQo+IDIuIOmbu+WtkOmQmCjpoa/mgKcpKEMpIFZTIOeCuOW9iCjpmrHmgKcpKEIpIC0+IOeyvuelnumcgOaxgg0KPiAzLiDkuI3poa/okZfvvJogUHIoPkYpICAwLjUzOQ0KDQoNCmBgYHtyfQ0KYm94cGxvdChmb3JtdWxhID0gVEIk57K+56We6ZyA5rGCIH5UQiR0aW1lLA0KICAgICAgICBkYXRhID1UQiwNCiAgICAgICAgeGxhYiA9ICLntYTliKUiLA0KICAgICAgICB5bGFiID0gIueyvuelnumcgOaxgiIsDQogICAgICAgIGNvbCA9ICJncmF5IikNCg0KZ2dwbG90KFRCLCBhZXMoeCA9IHRpbWUsIHkgPSDnsr7npZ7pnIDmsYIpKSArICAgIyBEcmF3IGdncGxvdDIgYm94cGxvdA0KICBnZW9tX2JveHBsb3QoKSArDQogIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInBvaW50IiwgY29sID0gInJlZCIpICsgICMgQWRkIHBvaW50cyB0byBwbG90DQogIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInRleHQiLCBjb2wgPSAicmVkIiwgICAgICMgQWRkIHRleHQgdG8gcGxvdA0KICAgICAgICAgICAgICAgdmp1c3QgPSAxLjUsIGFlcyhsYWJlbCA9IHBhc3RlKCJNZWFuOiIsIHJvdW5kKGFmdGVyX3N0YXQoeSksIGRpZ2l0cyA9IDEpKSkpDQoNCmBgYA0KDQoNCmBgYHtyfQ0KUmVzdWx0ID0gYW92KFRCJOmrlOWKm+mcgOaxgn5UQiR0aW1lKQ0KZ2V0X3N1bW1hcnlfc3RhdHMoZ3JvdXBfYnkoVEIsIHRpbWUsICksIOmrlOWKm+mcgOaxgiwgdHlwZSA9ICJtZWFuX3NkIikNCnN1bW1hcnkoUmVzdWx0KQ0KYGBgDQo+IDEuIOe1kOaenO+8miBPbmUtd2F5IEFub3ZhICjllq7lm6DlrZDliIbmnpDvvJog5ZCE6aCF6aGM55uuKQ0KPiAyLiDpm7vlrZDpkJgo6aGv5oCnKShDKSBWUyDngrjlvYgo6Zqx5oCnKShCKSAtPiDpq5TlipvpnIDmsYINCj4gMy4g5LiN6aGv6JGX77yaIFByKD5GKSAwLjg3MQ0KDQpgYGB7cn0NCmJveHBsb3QoZm9ybXVsYSA9IFRCJOmrlOWKm+mcgOaxgiB+VEIkdGltZSwNCiAgICAgICAgZGF0YSA9VEIsDQogICAgICAgIHhsYWIgPSAi57WE5YilIiwNCiAgICAgICAgeWxhYiA9ICLpq5TlipvpnIDmsYIiLA0KICAgICAgICBjb2wgPSAiZ3JheSIpDQoNCmdncGxvdChUQiwgYWVzKHggPSB0aW1lLCB5ID0g6auU5Yqb6ZyA5rGCKSkgKyAgICMgRHJhdyBnZ3Bsb3QyIGJveHBsb3QNCiAgZ2VvbV9ib3hwbG90KCkgKw0KICBzdGF0X3N1bW1hcnkoZnVuID0gbWVhbiwgZ2VvbSA9ICJwb2ludCIsIGNvbCA9ICJyZWQiKSArICAjIEFkZCBwb2ludHMgdG8gcGxvdA0KICBzdGF0X3N1bW1hcnkoZnVuID0gbWVhbiwgZ2VvbSA9ICJ0ZXh0IiwgY29sID0gInJlZCIsICAgICAjIEFkZCB0ZXh0IHRvIHBsb3QNCiAgICAgICAgICAgICAgIHZqdXN0ID0gMS41LCBhZXMobGFiZWwgPSBwYXN0ZSgiTWVhbjoiLCByb3VuZChhZnRlcl9zdGF0KHkpLCBkaWdpdHMgPSAxKSkpKQ0KDQpgYGANCg0KDQpgYGB7cn0NCg0KUmVzdWx0ID0gYW92KFRCJOaZgumWk+Wjk+WKm35UQiR0aW1lKQ0KZ2V0X3N1bW1hcnlfc3RhdHMoZ3JvdXBfYnkoVEIsIHRpbWUsICksIOaZgumWk+Wjk+WKmywgdHlwZSA9ICJtZWFuX3NkIikNCnN1bW1hcnkoUmVzdWx0KQ0KYGBgDQoNCj4gMS4g57WQ5p6c77yaIE9uZS13YXkgQW5vdmEgKOWWruWboOWtkOWIhuaekO+8miDlkITpoIXpoYznm64pDQo+IDIuIOmbu+WtkOmQmCjpoa/mgKcpKEMpIFZTIOeCuOW9iCjpmrHmgKcpKEIpIC0+IOaZgumWk+Wjk+WKmw0KPiAzLiDkuI3poa/okZfvvJogUHIoPkYpIDAuNzINCg0KYGBge3J9DQpib3hwbG90KGZvcm11bGEgPSBUQiTmmYLplpPlo5PlipsgflRCJHRpbWUsDQogICAgICAgIGRhdGEgPVRCLA0KICAgICAgICB4bGFiID0gIue1hOWIpSIsDQogICAgICAgIHlsYWIgPSAi5pmC6ZaT5aOT5YqbIiwNCiAgICAgICAgY29sID0gImdyYXkiKQ0KDQpnZ3Bsb3QoVEIsIGFlcyh4ID0gdGltZSwgeSA9IOaZgumWk+Wjk+WKmykpICsgICAjIERyYXcgZ2dwbG90MiBib3hwbG90DQogIGdlb21fYm94cGxvdCgpICsNCiAgc3RhdF9zdW1tYXJ5KGZ1biA9IG1lYW4sIGdlb20gPSAicG9pbnQiLCBjb2wgPSAicmVkIikgKyAgIyBBZGQgcG9pbnRzIHRvIHBsb3QNCiAgc3RhdF9zdW1tYXJ5KGZ1biA9IG1lYW4sIGdlb20gPSAidGV4dCIsIGNvbCA9ICJyZWQiLCAgICAgIyBBZGQgdGV4dCB0byBwbG90DQogICAgICAgICAgICAgICB2anVzdCA9IDEuNSwgYWVzKGxhYmVsID0gcGFzdGUoIk1lYW46Iiwgcm91bmQoYWZ0ZXJfc3RhdCh5KSwgZGlnaXRzID0gMSkpKSkNCg0KYGBgDQoNCg0KYGBge3J9DQpSZXN1bHQgPSBhb3YoVEIk5oiQ5YqfflRCJHRpbWUpDQpnZXRfc3VtbWFyeV9zdGF0cyhncm91cF9ieShUQiwgdGltZSwgKSwg5oiQ5YqfLCB0eXBlID0gIm1lYW5fc2QiKQ0Kc3VtbWFyeShSZXN1bHQpDQpgYGANCj4gMS4g57WQ5p6c77yaIE9uZS13YXkgQW5vdmEgKOWWruWboOWtkOWIhuaekO+8miDlkITpoIXpoYznm64pDQo+IDIuIOmbu+WtkOmQmCjpoa/mgKcpKEMpIFZTIOeCuOW9iCjpmrHmgKcpKEIpIC0+IOaIkOWKnw0KPiAzLiDpoa/okZfvvJogUHIoPkYpIDAuMDkwOCAuICgwLjA1IOKAmC7igJkpDQoNCmBgYHtyfQ0KYm94cGxvdChmb3JtdWxhID0gVEIk5oiQ5YqfIH5UQiR0aW1lLA0KICAgICAgICBkYXRhID1UQiwNCiAgICAgICAgeGxhYiA9ICLntYTliKUiLA0KICAgICAgICB5bGFiID0gIuaIkOWKnyIsDQogICAgICAgIGNvbCA9ICJncmF5IikNCg0KZ2dwbG90KFRCLCBhZXMoeCA9IHRpbWUsIHkgPSDmiJDlip8pKSArICAgIyBEcmF3IGdncGxvdDIgYm94cGxvdA0KICBnZW9tX2JveHBsb3QoKSArDQogIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInBvaW50IiwgY29sID0gInJlZCIpICsgICMgQWRkIHBvaW50cyB0byBwbG90DQogIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInRleHQiLCBjb2wgPSAicmVkIiwgICAgICMgQWRkIHRleHQgdG8gcGxvdA0KICAgICAgICAgICAgICAgdmp1c3QgPSAxLjUsIGFlcyhsYWJlbCA9IHBhc3RlKCJNZWFuOiIsIHJvdW5kKGFmdGVyX3N0YXQoeSksIGRpZ2l0cyA9IDEpKSkpDQpgYGANCg0KDQpgYGB7cn0NCg0KUmVzdWx0ID0gYW92KFRCJOWKquWKm35UQiR0aW1lKQ0KZ2V0X3N1bW1hcnlfc3RhdHMoZ3JvdXBfYnkoVEIsIHRpbWUsICksIOWKquWKmywgdHlwZSA9ICJtZWFuX3NkIikNCnN1bW1hcnkoUmVzdWx0KQ0KYGBgDQo+IDEuIOe1kOaenO+8miBPbmUtd2F5IEFub3ZhICjllq7lm6DlrZDliIbmnpDvvJog5ZCE6aCF6aGM55uuKQ0KPiAyLiDpm7vlrZDpkJgo6aGv5oCnKShDKSBWUyDngrjlvYgo6Zqx5oCnKShCKSAtPiDliqrlipsNCj4gMy4g5LiN6aGv6JGX77yaIFByKD5GKSAwLjIxNg0KDQpgYGB7cn0NCmJveHBsb3QoZm9ybXVsYSA9IFRCJOWKquWKmyB+VEIkdGltZSwNCiAgICAgICAgZGF0YSA9VEIsDQogICAgICAgIHhsYWIgPSAi57WE5YilIiwNCiAgICAgICAgeWxhYiA9ICLliqrlipsiLA0KICAgICAgICBjb2wgPSAiZ3JheSIpDQoNCmdncGxvdChUQiwgYWVzKHggPSB0aW1lLCB5ID0g5Yqq5YqbKSkgKyAgICMgRHJhdyBnZ3Bsb3QyIGJveHBsb3QNCiAgZ2VvbV9ib3hwbG90KCkgKw0KICBzdGF0X3N1bW1hcnkoZnVuID0gbWVhbiwgZ2VvbSA9ICJwb2ludCIsIGNvbCA9ICJyZWQiKSArICAjIEFkZCBwb2ludHMgdG8gcGxvdA0KICBzdGF0X3N1bW1hcnkoZnVuID0gbWVhbiwgZ2VvbSA9ICJ0ZXh0IiwgY29sID0gInJlZCIsICAgICAjIEFkZCB0ZXh0IHRvIHBsb3QNCiAgICAgICAgICAgICAgIHZqdXN0ID0gMS41LCBhZXMobGFiZWwgPSBwYXN0ZSgiTWVhbjoiLCByb3VuZChhZnRlcl9zdGF0KHkpLCBkaWdpdHMgPSAxKSkpKQ0KYGBgDQoNCg0KYGBge3J9DQpSZXN1bHQgPSBhb3YoVEIk5LiN5a6JflRCJHRpbWUpDQpnZXRfc3VtbWFyeV9zdGF0cyhncm91cF9ieShUQiwgdGltZSwgKSwg5LiN5a6JLCB0eXBlID0gIm1lYW5fc2QiKQ0Kc3VtbWFyeShSZXN1bHQpDQpgYGANCj4gMS4g57WQ5p6c77yaIE9uZS13YXkgQW5vdmEgKOWWruWboOWtkOWIhuaekO+8miDlkITpoIXpoYznm64pDQo+IDIuIOS4jeWIh+aPm+WgtOaZr+iIh+WIh+aPm+WgtOaZryAtPiDkuI3lrokNCj4gMy4g5LiN6aGv6JGX77yaIFByKD5GKSAwLjI3DQoNCmBgYHtyfQ0KYm94cGxvdChmb3JtdWxhID0gVEIk5LiN5a6JIH5UQiR0aW1lLA0KICAgICAgICBkYXRhID1UQiwNCiAgICAgICAgeGxhYiA9ICLntYTliKUiLA0KICAgICAgICB5bGFiID0gIuS4jeWuiSIsDQogICAgICAgIGNvbCA9ICJncmF5IikNCg0KZ2dwbG90KFRCLCBhZXMoeCA9IHRpbWUsIHkgPSDkuI3lrokpKSArICAgIyBEcmF3IGdncGxvdDIgYm94cGxvdA0KICBnZW9tX2JveHBsb3QoKSArDQogIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInBvaW50IiwgY29sID0gInJlZCIpICsgICMgQWRkIHBvaW50cyB0byBwbG90DQogIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInRleHQiLCBjb2wgPSAicmVkIiwgICAgICMgQWRkIHRleHQgdG8gcGxvdA0KICAgICAgICAgICAgICAgdmp1c3QgPSAxLjUsIGFlcyhsYWJlbCA9IHBhc3RlKCJNZWFuOiIsIHJvdW5kKGFmdGVyX3N0YXQoeSksIGRpZ2l0cyA9IDEpKSkpDQoNCmBgYA0KDQoNCg0KDQoNCiMg6ZuZ5Zug5a2Q5YiG5p6Q77yaIE5DIE5CIFNDIFNCDQpOQyAtPiDkuI3liIfmj5vloLTmma8gKyDpm7vlrZDpkJgNCk5CIC0+IOS4jeWIh+aPm+WgtOaZryArIOeCuOW9iA0KU0MgLT4g5YiH5o+b5aC05pmvICsg6Zu75a2Q6ZCYDQpTQiAtPiDliIfmj5vloLTmma8gKyDngrjlvYgNCg0KIyMg5Yqg57i95Li76aGM5YiG5pW4IC0g6ZuZ5Zug5a2Q5YiG5p6QDQoNCiMjIyAzLuWKoOe4veWAvOW5s+WdhyjmsonmtbjmhJ8pIC0+IOmhr+iRl+aAp+iIh2JveHBsb3QNCmBgYHtyfQ0KIyBjcm9uYmFjaCBhbHBoYQ0KDQpoZWFkKFRCWzY6OV0pDQpjcm9uYmFjaC5hbHBoYShUQls2OjldLCBDST1UUlVFLCBzdGFuZGFyZGl6ZWQ9VFJVRSkNCg0KbmV3X3RiIDwtIGRhdGEuZnJhbWUoVEIk5rKJ5rW45oSfMSxUQiTmsonmtbjmhJ8zLFRCJOayiea1uOaEnzQpDQpoZWFkKG5ld190YikNCmNyb25iYWNoLmFscGhhKG5ld190YixDST0gVFJVRSwgc3RhbmRhcmRpemVkID0gVFJVRSkNCg0KYGBgDQoNCg0KYGBge3J9DQojIOagueaTmuS4iumdomNyb25iYWNoLmFscGhh55qE57WQ5p6c77yM5ou/5o6J5rKJ5rW45oSfMg0KVEIgPC0gdHJhbnNmb3JtKFRCLCBhbGxfaW1tZXIgPSAoVEIk5rKJ5rW45oSfMSArIFRCJOayiea1uOaEnzMgKyBUQiTmsonmtbjmhJ80KS8zKQ0KUmVzdWx0ID0gYW92KFRCJGFsbF9pbW1lcn5UQiTpm5nlm6DlrZDntYTliKUpDQpzdW1tYXJ5KFJlc3VsdCkNCmBgYA0KPiAxLiDntZDmnpzvvJogT25lLXdheSBBbm92YSAo6ZuZ5Zug5a2Q5YiG5p6Q77yaIOWKoOe4veW5s+Wdh+S4u+mhjOWIhuaVuCkNCj4gMi4g5LiN5YiH5o+b5aC05pmv44CB5YiH5o+b5aC05pmv44CB54K45b2I44CB6Zu75a2Q6ZCYIC0+IOayiea1uOaEnw0KPiAzLiDkuI3poa/okZfvvJogUHIoPkYpICAwLjE3NA0KDQpgYGB7cn0NClR1a2V5SFNEKFJlc3VsdCkNCnBsb3QoVHVrZXlIU0QoUmVzdWx0KSxsYXM9MSkNCmBgYA0KDQoNCmBgYHtyfQ0KYm94cGxvdChmb3JtdWxhID0gVEIkYWxsX2ltbWVyIH5UQiTpm5nlm6DlrZDntYTliKUsDQogICAgICAgIGRhdGEgPVRCLA0KICAgICAgICB4bGFiID0gIue1hOWIpSIsDQogICAgICAgIHlsYWIgPSAi5rKJ5rW45oSfKSAtPiDpoa/okZfmgKciLA0KICAgICAgICBjb2wgPSAiZ3JheSIpDQoNCmdncGxvdChUQiwgYWVzKHggPSDpm5nlm6DlrZDntYTliKUsIHkgPSBhbGxfaW1tZXIpKSArICAgIyBEcmF3IGdncGxvdDIgYm94cGxvdA0KICBnZW9tX2JveHBsb3QoKSArDQogIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInBvaW50IiwgY29sID0gInJlZCIpICsgICMgQWRkIHBvaW50cyB0byBwbG90DQogIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInRleHQiLCBjb2wgPSAicmVkIiwgICAgICMgQWRkIHRleHQgdG8gcGxvdA0KICAgICAgICAgICAgICAgdmp1c3QgPSAxLjUsIGFlcyhsYWJlbCA9IHBhc3RlKCJNZWFuOiIsIHJvdW5kKGFmdGVyX3N0YXQoeSksIGRpZ2l0cyA9IDEpKSkpDQoNCg0KDQpgYGANCg0KIyMjIDQu5Yqg57i95YC85bmz5Z2HKOiHquaIkeWJtemAoOWKmykgLT4g6aGv6JGX5oCn6IiHYm94cGxvdA0KDQpgYGB7cn0NClRCIDwtIHRyYW5zZm9ybShUQiwgYWxsX2NyZWF0aXZlID0gKFRCJOaDs+azleaVuOmHjyArIFRCJOWTgeizqiArIFRCJOWJtemAoOWKmykvMykNClJlc3VsdCA9IGFvdihUQiRhbGxfY3JlYXRpdmV+VEIk6ZuZ5Zug5a2Q57WE5YilKQ0Kc3VtbWFyeShSZXN1bHQpDQpgYGANCj4gMS4g57WQ5p6c77yaIE9uZS13YXkgQW5vdmEgKOmbmeWboOWtkOWIhuaekO+8miDliqDnuL3lubPlnYfkuLvpoYzliIbmlbgpDQo+IDIuIOS4jeWIh+aPm+WgtOaZr+OAgeWIh+aPm+WgtOaZr+OAgeeCuOW9iOOAgembu+WtkOmQmCAtPiDlibXpgKDlipsNCj4gMy4g5LiN6aGv6JGX77yaIFByKD5GKSAgMC4xMTYNCg0KYGBge3J9DQpUdWtleUhTRChSZXN1bHQpDQpwbG90KFR1a2V5SFNEKFJlc3VsdCksbGFzPTEpDQpgYGANCg0KDQpgYGB7cn0NCmJveHBsb3QoZm9ybXVsYSA9IFRCJGFsbF9jcmVhdGl2ZSB+VEIk6ZuZ5Zug5a2Q57WE5YilLA0KICAgICAgICBkYXRhID1UQiwNCiAgICAgICAgeGxhYiA9ICLntYTliKUiLA0KICAgICAgICB5bGFiID0gIuiHquaIkeWJtemAoOWKmykgLT4g6aGv6JGX5oCnIiwNCiAgICAgICAgY29sID0gImdyYXkiKQ0KDQpnZ3Bsb3QoVEIsIGFlcyh4ID0g6ZuZ5Zug5a2Q57WE5YilLCB5ID0gYWxsX2NyZWF0aXZlKSkgKyAgICMgRHJhdyBnZ3Bsb3QyIGJveHBsb3QNCiAgZ2VvbV9ib3hwbG90KCkgKw0KICBzdGF0X3N1bW1hcnkoZnVuID0gbWVhbiwgZ2VvbSA9ICJwb2ludCIsIGNvbCA9ICJyZWQiKSArICAjIEFkZCBwb2ludHMgdG8gcGxvdA0KICBzdGF0X3N1bW1hcnkoZnVuID0gbWVhbiwgZ2VvbSA9ICJ0ZXh0IiwgY29sID0gInJlZCIsICAgICAjIEFkZCB0ZXh0IHRvIHBsb3QNCiAgICAgICAgICAgICAgIHZqdXN0ID0gMS41LCBhZXMobGFiZWwgPSBwYXN0ZSgiTWVhbjoiLCByb3VuZChhZnRlcl9zdGF0KHkpLCBkaWdpdHMgPSAxKSkpKQ0KDQoNCmBgYA0KDQojIyMgNS7liqDnuL3lgLzlubPlnYco56S+5Lqk5LqS5YuVIFNvY2lhbCBJbnRlcmFjdGlvbikgLT4g6aGv6JGX5oCn6IiHYm94cGxvdA0KDQpgYGB7cn0NClRCIDwtIHRyYW5zZm9ybShUQiwgYWxsX1NJID0gKFRCJFFvSTEgKyBUQiRRb0kyICsgVEIkUW9JMyArIFRCJFFvSTQgKyBUQiRTTTEgKyBUQiRTTTIgKyBUQiRTTTMgKyBUQiRTTTQgKyBUQiRTTTUvOSkpDQpSZXN1bHQgPSBhb3YoVEIkYWxsX1NJflRCJOmbmeWboOWtkOe1hOWIpSkNCnN1bW1hcnkoUmVzdWx0KQ0KYGBgDQo+IDEuIOe1kOaenO+8miBPbmUtd2F5IEFub3ZhICjpm5nlm6DlrZDliIbmnpDvvJog5Yqg57i95bmz5Z2H5Li76aGM5YiG5pW4KQ0KPiAyLiDkuI3liIfmj5vloLTmma/jgIHliIfmj5vloLTmma/jgIHngrjlvYjjgIHpm7vlrZDpkJggLT4g56S+5Lqk5LqS5YuVKDnpoYwpDQo+IDMuIOS4jemhr+iRl++8miBQcig+RikgIDAuNTUyDQoNCmBgYHtyfQ0KVHVrZXlIU0QoUmVzdWx0KQ0KcGxvdChUdWtleUhTRChSZXN1bHQpLGxhcz0xKQ0KYGBgDQoNCg0KYGBge3J9DQpib3hwbG90KGZvcm11bGEgPSBUQiRhbGxfU0kgflRCJOmbmeWboOWtkOe1hOWIpSwNCiAgICAgICAgZGF0YSA9VEIsDQogICAgICAgIHhsYWIgPSAi57WE5YilIiwNCiAgICAgICAgeWxhYiA9ICLnpL7kuqTkupLli5UgU29jaWFsIEludGVyYWN0aW9uKSAtPiDpoa/okZfmgKciLA0KICAgICAgICBjb2wgPSAiZ3JheSIpDQoNCmdncGxvdChUQiwgYWVzKHggPSDpm5nlm6DlrZDntYTliKUsIHkgPSBhbGxfU0kpKSArICAgIyBEcmF3IGdncGxvdDIgYm94cGxvdA0KICBnZW9tX2JveHBsb3QoKSArDQogIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInBvaW50IiwgY29sID0gInJlZCIpICsgICMgQWRkIHBvaW50cyB0byBwbG90DQogIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInRleHQiLCBjb2wgPSAicmVkIiwgICAgICMgQWRkIHRleHQgdG8gcGxvdA0KICAgICAgICAgICAgICAgdmp1c3QgPSAxLjUsIGFlcyhsYWJlbCA9IHBhc3RlKCJNZWFuOiIsIHJvdW5kKGFmdGVyX3N0YXQoeSksIGRpZ2l0cyA9IDEpKSkpDQoNCg0KDQpgYGANCg0KDQoNCiMjIyA2LuWKoOe4veWAvOW5s+WdhyjnpL7kuqTkupLli5UgU29jaWFsIEludGVyYWN0aW9u77yaUU9JKSAtPiDpoa/okZfmgKfoiIdib3hwbG90DQoNCmBgYHtyfQ0KVEIgPC0gdHJhbnNmb3JtKFRCLCBhbGxfUU9JID0gKFRCJFFvSTEgKyBUQiRRb0kyICsgVEIkUW9JMyArIFRCJFFvSTQpLzQpIA0KUmVzdWx0ID0gYW92KFRCJGFsbF9RT0l+VEIk6ZuZ5Zug5a2Q57WE5YilKQ0Kc3VtbWFyeShSZXN1bHQpDQpgYGANCj4gMS4g57WQ5p6c77yaIE9uZS13YXkgQW5vdmEgKOmbmeWboOWtkOWIhuaekO+8miDliqDnuL3lubPlnYfkuLvpoYzliIbmlbgpDQo+IDIuIOS4jeWIh+aPm+WgtOaZr+OAgeWIh+aPm+WgtOaZr+OAgeeCuOW9iOOAgembu+WtkOmQmCAtPiBTb2NpYWwgSW50ZXJhY3Rpb27vvJpRT0kNCj4gMy4g5LiN6aGv6JGX77yaIFByKD5GKSAgMC43Ng0KDQpgYGB7cn0NClR1a2V5SFNEKFJlc3VsdCkNCnBsb3QoVHVrZXlIU0QoUmVzdWx0KSxsYXM9MSkNCmBgYA0KDQoNCmBgYHtyfQ0KYm94cGxvdChmb3JtdWxhID0gVEIkYWxsX1FPSSB+VEIk6ZuZ5Zug5a2Q57WE5YilLA0KICAgICAgICBkYXRhID1UQiwNCiAgICAgICAgeGxhYiA9ICLntYTliKUiLA0KICAgICAgICB5bGFiID0gIuekvuS6pOS6kuWLlSBTb2NpYWwgSW50ZXJhY3Rpb27vvJpRT0kpIC0+IOmhr+iRl+aApyIsDQogICAgICAgIGNvbCA9ICJncmF5IikNCg0KZ2dwbG90KFRCLCBhZXMoeCA9IOmbmeWboOWtkOe1hOWIpSwgeSA9IGFsbF9RT0kpKSArICAgIyBEcmF3IGdncGxvdDIgYm94cGxvdA0KICBnZW9tX2JveHBsb3QoKSArDQogIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInBvaW50IiwgY29sID0gInJlZCIpICsgICMgQWRkIHBvaW50cyB0byBwbG90DQogIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInRleHQiLCBjb2wgPSAicmVkIiwgICAgICMgQWRkIHRleHQgdG8gcGxvdA0KICAgICAgICAgICAgICAgdmp1c3QgPSAxLjUsIGFlcyhsYWJlbCA9IHBhc3RlKCJNZWFuOiIsIHJvdW5kKGFmdGVyX3N0YXQoeSksIGRpZ2l0cyA9IDEpKSkpDQoNCg0KYGBgDQoNCiMjIyA3LuWKoOe4veWAvOW5s+WdhyjnpL7kuqTkupLli5UgU29jaWFsIEludGVyYWN0aW9u77yaU00pIC0+IOmhr+iRl+aAp+iIh2JveHBsb3QNCg0KYGBge3J9DQpUQiA8LSB0cmFuc2Zvcm0oVEIsIGFsbF9TTSA9IChUQiRTTTEgKyBUQiRTTTIgKyBUQiRTTTMgKyBUQiRTTTQgKyBUQiRTTTUpLzUpDQpSZXN1bHQgPSBhb3YoVEIkYWxsX1NNflRCJOmbmeWboOWtkOe1hOWIpSkNCnN1bW1hcnkoUmVzdWx0KQ0KYGBgDQo+IDEuIOe1kOaenO+8miBPbmUtd2F5IEFub3ZhICjpm5nlm6DlrZDliIbmnpDvvJog5Yqg57i95bmz5Z2H5Li76aGM5YiG5pW4KQ0KPiAyLiDkuI3liIfmj5vloLTmma/jgIHliIfmj5vloLTmma/jgIHngrjlvYjjgIHpm7vlrZDpkJggLT4gU29jaWFsIEludGVyYWN0aW9u77yaUU9JDQo+IDMuIOS4jemhr+iRl++8miBQcig+RikgIDAuNTU2DQoNCg0KYGBge3J9DQpUdWtleUhTRChSZXN1bHQpDQpwbG90KFR1a2V5SFNEKFJlc3VsdCksbGFzPTEpDQpgYGANCg0KDQpgYGB7cn0NCmJveHBsb3QoZm9ybXVsYSA9IFRCJGFsbF9TTSB+VEIk6ZuZ5Zug5a2Q57WE5YilLA0KICAgICAgICBkYXRhID1UQiwNCiAgICAgICAgeGxhYiA9ICLntYTliKUiLA0KICAgICAgICB5bGFiID0gIuekvuS6pOS6kuWLlSBTb2NpYWwgSW50ZXJhY3Rpb27vvJpTTSkgLT4g6aGv6JGX5oCnIiwNCiAgICAgICAgY29sID0gImdyYXkiKQ0KDQpnZ3Bsb3QoVEIsIGFlcyh4ID0g6ZuZ5Zug5a2Q57WE5YilLCB5ID0gYWxsX1NNKSkgKyAgICMgRHJhdyBnZ3Bsb3QyIGJveHBsb3QNCiAgZ2VvbV9ib3hwbG90KCkgKw0KICBzdGF0X3N1bW1hcnkoZnVuID0gbWVhbiwgZ2VvbSA9ICJwb2ludCIsIGNvbCA9ICJyZWQiKSArICAjIEFkZCBwb2ludHMgdG8gcGxvdA0KICBzdGF0X3N1bW1hcnkoZnVuID0gbWVhbiwgZ2VvbSA9ICJ0ZXh0IiwgY29sID0gInJlZCIsICAgICAjIEFkZCB0ZXh0IHRvIHBsb3QNCiAgICAgICAgICAgICAgIHZqdXN0ID0gMS41LCBhZXMobGFiZWwgPSBwYXN0ZSgiTWVhbjoiLCByb3VuZChhZnRlcl9zdGF0KHkpLCBkaWdpdHMgPSAxKSkpKQ0KDQpgYGANCg0KDQoNCiMjIOWQhOmghemgheebruWIhuaVuCAtIOmbmeWboOWtkOWIhuaekA0KDQojIyMgIDMu5rKJ5rW45oSfIEltbWVyc2lvbiAtPiDpoa/okZfmgKfoiIdib3hwbG90DQoNCmBgYHtyfQ0KUmVzdWx0ID0gYW92KFRCJOayiea1uOaEnzF+VEIk6ZuZ5Zug5a2Q57WE5YilKQ0Kc3VtbWFyeShSZXN1bHQpDQpgYGANCj4gMS4g57WQ5p6c77yaIE9uZS13YXkgQW5vdmEgKOmbmeWboOWtkOWIhuaekO+8miDlkITpoIXpoYznm64pDQo+IDIuIOS4jeWIh+aPm+WgtOaZr+OAgeWIh+aPm+WgtOaZr+OAgeeCuOW9iOOAgembu+WtkOmQmCAtPiAgLT4g5Zyo6YCy6KGMVlLpoK3ohabpoqjmmrTmmYLvvIzmiJHlj6/ku6Xlg4/lnKjnj77lr6bkuJbnlYzkuK3kuIDmqKPoiIfnkrDlooPkupLli5UNCj4gMy4g5LiN6aGv6JGX77yaIFByKD5GKSAgMC45MTgNCg0KYGBge3J9DQpUdWtleUhTRChSZXN1bHQpDQpwbG90KFR1a2V5SFNEKFJlc3VsdCksbGFzPTEpDQpgYGANCg0KDQpgYGB7cn0NCmJveHBsb3QoZm9ybXVsYSA9IFRCJOayiea1uOaEnzEgflRCJOmbmeWboOWtkOe1hOWIpSwNCiAgICAgICAgZGF0YSA9VEIsDQogICAgICAgIHhsYWIgPSAi57WE5YilIiwNCiAgICAgICAgeWxhYiA9ICLlnKjpgLLooYxWUumgreiFpumiqOaatOaZgu+8jOaIkeWPr+S7peWDj+WcqOePvuWvpuS4lueVjOS4reS4gOaoo+iIh+eSsOWig+S6kuWLlSIsDQogICAgICAgIGNvbCA9ICJncmF5IikNCmBgYA0KDQoNCmBgYHtyfQ0KUmVzdWx0ID0gYW92KFRCJOayiea1uOaEnzJ+VEIk6ZuZ5Zug5a2Q57WE5YilKQ0Kc3VtbWFyeShSZXN1bHQpDQpgYGANCj4gMS4g57WQ5p6c77yaIE9uZS13YXkgQW5vdmEgKOmbmeWboOWtkOWIhuaekO+8miDlkITpoIXpoYznm64pDQo+IDIuIOS4jeWIh+aPm+WgtOaZr+OAgeWIh+aPm+WgtOaZr+OAgeeCuOW9iOOAgembu+WtkOmQmCAtPiAg5Zyo6YCy6KGMVlLpoK3ohabpoqjmmrTmmYLvvIzmiJHmhJ/oprroiIflpJbnlYzpmpTntZUNCj4gMy4g6aGv6JGX77yaIFByKD5GKSAgMC4wMDMzNiAqKiAoMC4wMDEg4oCYKirigJkpDQoNCmBgYHtyfQ0KVHVrZXlIU0QoUmVzdWx0KQ0KcGxvdChUdWtleUhTRChSZXN1bHQpLGxhcz0xKQ0KYGBgDQoNCg0KYGBge3J9DQpib3hwbG90KGZvcm11bGEgPSBUQiTmsonmtbjmhJ8yIH5UQiTpm5nlm6DlrZDntYTliKUsDQogICAgICAgIGRhdGEgPVRCLA0KICAgICAgICB4bGFiID0gIue1hOWIpSIsDQogICAgICAgIHlsYWIgPSAi5Zyo6YCy6KGMVlLpoK3ohabpoqjmmrTmmYLvvIzmiJHmhJ/oprroiIflpJbnlYzpmpTntZUiLA0KICAgICAgICBjb2wgPSAiZ3JheSIpDQoNCmdncGxvdChUQiwgYWVzKHggPSDpm5nlm6DlrZDntYTliKUsIHkgPSDmsonmtbjmhJ8yKSkgKyAgICMgRHJhdyBnZ3Bsb3QyIGJveHBsb3QNCiAgZ2VvbV9ib3hwbG90KCkgKw0KICBzdGF0X3N1bW1hcnkoZnVuID0gbWVhbiwgZ2VvbSA9ICJwb2ludCIsIGNvbCA9ICJyZWQiKSArICAjIEFkZCBwb2ludHMgdG8gcGxvdA0KICBzdGF0X3N1bW1hcnkoZnVuID0gbWVhbiwgZ2VvbSA9ICJ0ZXh0IiwgY29sID0gInJlZCIsICAgICAjIEFkZCB0ZXh0IHRvIHBsb3QNCiAgICAgICAgICAgICAgIHZqdXN0ID0gMS41LCBhZXMobGFiZWwgPSBwYXN0ZSgiTWVhbjoiLCByb3VuZChhZnRlcl9zdGF0KHkpLCBkaWdpdHMgPSAxKSkpKQ0KDQoNCmBgYA0KDQoNCmBgYHtyfQ0KUmVzdWx0ID0gYW92KFRCJOayiea1uOaEnzN+VEIk6ZuZ5Zug5a2Q57WE5YilKQ0Kc3VtbWFyeShSZXN1bHQpDQpgYGANCj4gMS4g57WQ5p6c77yaIE9uZS13YXkgQW5vdmEgKOmbmeWboOWtkOWIhuaekO+8miDlkITpoIXpoYznm64pDQo+IDIuIOS4jeWIh+aPm+WgtOaZr+OAgeWIh+aPm+WgtOaZr+OAgeeCuOW9iOOAgembu+WtkOmQmCAtPiAg5Zyo6YCy6KGMVlLpoK3ohabpoqjmmrTmmYLvvIzmiJHlrozlhajmsonmtbjlhbbkuK0NCj4gMy4g5LiN6aGv6JGX77yaIFByKD5GKSAgIDAuMTQ2DQoNCmBgYHtyfQ0KVHVrZXlIU0QoUmVzdWx0KQ0KcGxvdChUdWtleUhTRChSZXN1bHQpLGxhcz0xKQ0KYGBgDQoNCg0KYGBge3J9DQpib3hwbG90KGZvcm11bGEgPSBUQiTmsonmtbjmhJ8zIH5UQiTpm5nlm6DlrZDntYTliKUsDQogICAgICAgIGRhdGEgPVRCLA0KICAgICAgICB4bGFiID0gIue1hOWIpSIsDQogICAgICAgIHlsYWIgPSAi5Zyo6YCy6KGMVlLpoK3ohabpoqjmmrTmmYLvvIzmiJHlrozlhajmsonmtbjlhbbkuK0iLA0KICAgICAgICBjb2wgPSAiZ3JheSIpDQpgYGANCg0KDQpgYGB7cn0NClJlc3VsdCA9IGFvdihUQiTmsonmtbjmhJ80flRCJOmbmeWboOWtkOe1hOWIpSkNCnN1bW1hcnkoUmVzdWx0KQ0KYGBgDQo+IDEuIOe1kOaenO+8miBPbmUtd2F5IEFub3ZhICjpm5nlm6DlrZDliIbmnpDvvJog5ZCE6aCF6aGM55uuKQ0KPiAyLiDkuI3liIfmj5vloLTmma/jgIHliIfmj5vloLTmma/jgIHngrjlvYjjgIHpm7vlrZDpkJggLT4gIOWcqOmAsuihjFZS6aCt6IWm6aKo5pq05pmC77yM5oiR5b+Y6KiY5LqG5oiR55qE5pel5bi454Wp5oOxDQo+IDMuIOmhr+iRl++8miBQcig+RikgIDAuMDc4IC4gKDAuMDUg4oCYLuKAmSkNCg0KYGBge3J9DQpUdWtleUhTRChSZXN1bHQpDQpwbG90KFR1a2V5SFNEKFJlc3VsdCksbGFzPTEpDQpgYGANCg0KDQpgYGB7cn0NCg0KYm94cGxvdChmb3JtdWxhID0gVEIk5rKJ5rW45oSfNCB+VEIk6ZuZ5Zug5a2Q57WE5YilLA0KICAgICAgICBkYXRhID1UQiwNCiAgICAgICAgeGxhYiA9ICLntYTliKUiLA0KICAgICAgICB5bGFiID0gIuWcqOmAsuihjFZS6aCt6IWm6aKo5pq05pmC77yM5oiR5b+Y6KiY5LqG5oiR55qE5pel5bi454Wp5oOxIiwNCiAgICAgICAgY29sID0gImdyYXkiKQ0KDQpnZ3Bsb3QoVEIsIGFlcyh4ID0g6ZuZ5Zug5a2Q57WE5YilLCB5ID0g5rKJ5rW45oSfNCkpICsgICAjIERyYXcgZ2dwbG90MiBib3hwbG90DQogIGdlb21fYm94cGxvdCgpICsNCiAgc3RhdF9zdW1tYXJ5KGZ1biA9IG1lYW4sIGdlb20gPSAicG9pbnQiLCBjb2wgPSAicmVkIikgKyAgIyBBZGQgcG9pbnRzIHRvIHBsb3QNCiAgc3RhdF9zdW1tYXJ5KGZ1biA9IG1lYW4sIGdlb20gPSAidGV4dCIsIGNvbCA9ICJyZWQiLCAgICAgIyBBZGQgdGV4dCB0byBwbG90DQogICAgICAgICAgICAgICB2anVzdCA9IDEuNSwgYWVzKGxhYmVsID0gcGFzdGUoIk1lYW46Iiwgcm91bmQoYWZ0ZXJfc3RhdCh5KSwgZGlnaXRzID0gMSkpKSkNCg0KYGBgDQoNCg0KIyMjIDQu6KqN55+l5aOT5YqbIE5BU0EtVExYLT4g6aGv6JGX5oCn6IiHYm94cGxvdA0KDQpgYGB7cn0NClJlc3VsdCA9IGFvdihUQiTnsr7npZ7pnIDmsYJ+VEIk6ZuZ5Zug5a2Q57WE5YilKQ0Kc3VtbWFyeShSZXN1bHQpDQpgYGANCj4gMS4g57WQ5p6c77yaIE9uZS13YXkgQW5vdmEgKOmbmeWboOWtkOWIhuaekO+8miDlkITpoIXpoYznm64pDQo+IDIuIOS4jeWIh+aPm+WgtOaZr+OAgeWIh+aPm+WgtOaZr+OAgeeCuOW9iOOAgembu+WtkOmQmCAtPiAg57K+56We6ZyA5rGCDQo+IDMuIOS4jemhr+iRl++8miBQcig+RikgICAgMC4yODINCg0KYGBge3J9DQpUdWtleUhTRChSZXN1bHQpDQpwbG90KFR1a2V5SFNEKFJlc3VsdCksbGFzPTEpDQpgYGANCg0KDQpgYGB7cn0NCmJveHBsb3QoZm9ybXVsYSA9IFRCJOeyvuelnumcgOaxgiB+VEIk6ZuZ5Zug5a2Q57WE5YilLA0KICAgICAgICBkYXRhID1UQiwNCiAgICAgICAgeGxhYiA9ICLntYTliKUiLA0KICAgICAgICB5bGFiID0gIueyvuelnumcgOaxgiIsDQogICAgICAgIGNvbCA9ICJncmF5IikNCmBgYA0KDQoNCmBgYHtyfQ0KDQpSZXN1bHQgPSBhb3YoVEIk6auU5Yqb6ZyA5rGCflRCJOmbmeWboOWtkOe1hOWIpSkNCnN1bW1hcnkoUmVzdWx0KQ0KYGBgDQo+IDEuIOe1kOaenO+8miBPbmUtd2F5IEFub3ZhICjpm5nlm6DlrZDliIbmnpDvvJog5ZCE6aCF6aGM55uuKQ0KPiAyLiDkuI3liIfmj5vloLTmma/jgIHliIfmj5vloLTmma/jgIHngrjlvYjjgIHpm7vlrZDpkJggLT4g6auU5Yqb6ZyA5rGCDQo+IDMuIOS4jemhr+iRl++8miBQcig+RikgIDAuOTc5DQoNCmBgYHtyfQ0KVHVrZXlIU0QoUmVzdWx0KQ0KcGxvdChUdWtleUhTRChSZXN1bHQpLGxhcz0xKQ0KYGBgDQoNCg0KYGBge3J9DQpib3hwbG90KGZvcm11bGEgPSBUQiTpq5TlipvpnIDmsYIgflRCJOmbmeWboOWtkOe1hOWIpSwNCiAgICAgICAgZGF0YSA9VEIsDQogICAgICAgIHhsYWIgPSAi57WE5YilIiwNCiAgICAgICAgeWxhYiA9ICLpq5TlipvpnIDmsYIiLA0KICAgICAgICBjb2wgPSAiZ3JheSIpDQpgYGANCg0KDQpgYGB7cn0NClJlc3VsdCA9IGFvdihUQiTmmYLplpPlo5Plipt+VEIk6ZuZ5Zug5a2Q57WE5YilKQ0Kc3VtbWFyeShSZXN1bHQpDQpgYGANCj4gMS4g57WQ5p6c77yaIE9uZS13YXkgQW5vdmEgKOmbmeWboOWtkOWIhuaekO+8miDlkITpoIXpoYznm64pDQo+IDIuIOS4jeWIh+aPm+WgtOaZr+OAgeWIh+aPm+WgtOaZr+OAgeeCuOW9iOOAgembu+WtkOmQmCAtPiAg5pmC6ZaT5aOT5YqbDQo+IDMuIOS4jemhr+iRl++8miBQcig+RikgICAwLjYxNw0KDQpgYGB7cn0NClR1a2V5SFNEKFJlc3VsdCkNCnBsb3QoVHVrZXlIU0QoUmVzdWx0KSxsYXM9MSkNCmBgYA0KDQoNCmBgYHtyfQ0KYm94cGxvdChmb3JtdWxhID0gVEIk5pmC6ZaT5aOT5YqbIH5UQiTpm5nlm6DlrZDntYTliKUsDQogICAgICAgIGRhdGEgPVRCLA0KICAgICAgICB4bGFiID0gIue1hOWIpSIsDQogICAgICAgIHlsYWIgPSAi5pmC6ZaT5aOT5YqbIiwNCiAgICAgICAgY29sID0gImdyYXkiKQ0KYGBgDQoNCg0KYGBge3J9DQpSZXN1bHQgPSBhb3YoVEIk5oiQ5YqfflRCJOmbmeWboOWtkOe1hOWIpSkNCnN1bW1hcnkoUmVzdWx0KQ0KYGBgDQo+IDEuIOe1kOaenO+8miBPbmUtd2F5IEFub3ZhICjpm5nlm6DlrZDliIbmnpDvvJog5ZCE6aCF6aGM55uuKQ0KPiAyLiDkuI3liIfmj5vloLTmma/jgIHliIfmj5vloLTmma/jgIHngrjlvYjjgIHpm7vlrZDpkJggLT4gIOaIkOWKnw0KPiAzLiDkuI3poa/okZfvvJogUHIoPkYpICAgIDAuMTkyDQoNCmBgYHtyfQ0KVHVrZXlIU0QoUmVzdWx0KQ0KcGxvdChUdWtleUhTRChSZXN1bHQpLGxhcz0xKQ0KYGBgDQoNCg0KYGBge3J9DQpib3hwbG90KGZvcm11bGEgPSBUQiTmiJDlip8gflRCJOmbmeWboOWtkOe1hOWIpSwNCiAgICAgICAgZGF0YSA9VEIsDQogICAgICAgIHhsYWIgPSAi57WE5YilIiwNCiAgICAgICAgeWxhYiA9ICLmiJDlip8iLA0KICAgICAgICBjb2wgPSAiZ3JheSIpDQpgYGANCg0KDQpgYGB7cn0NCg0KUmVzdWx0ID0gYW92KFRCJOWKquWKm35UQiTpm5nlm6DlrZDntYTliKUpDQpzdW1tYXJ5KFJlc3VsdCkNCmBgYA0KDQo+IDEuIOe1kOaenO+8miBPbmUtd2F5IEFub3ZhICjpm5nlm6DlrZDliIbmnpDvvJog5ZCE6aCF6aGM55uuKQ0KPiAyLiDkuI3liIfmj5vloLTmma/jgIHliIfmj5vloLTmma/jgIHngrjlvYjjgIHpm7vlrZDpkJggLT4g5Yqq5YqbDQo+IDMuIOS4jemhr+iRl++8miBQcig+RikgIDAuMTMxDQoNCmBgYHtyfQ0KVHVrZXlIU0QoUmVzdWx0KQ0KcGxvdChUdWtleUhTRChSZXN1bHQpLGxhcz0xKQ0KYGBgDQoNCg0KYGBge3J9DQpib3hwbG90KGZvcm11bGEgPSBUQiTliqrlipsgflRCJOmbmeWboOWtkOe1hOWIpSwNCiAgICAgICAgZGF0YSA9VEIsDQogICAgICAgIHhsYWIgPSAi57WE5YilIiwNCiAgICAgICAgeWxhYiA9ICLliqrlipsiLA0KICAgICAgICBjb2wgPSAiZ3JheSIpDQpgYGANCg0KDQpgYGB7cn0NClJlc3VsdCA9IGFvdihUQiTkuI3lrol+VEIk6ZuZ5Zug5a2Q57WE5YilKQ0Kc3VtbWFyeShSZXN1bHQpDQpgYGANCj4gMS4g57WQ5p6c77yaIE9uZS13YXkgQW5vdmEgKOmbmeWboOWtkOWIhuaekO+8miDlkITpoIXpoYznm64pDQo+IDIuIOS4jeWIh+aPm+WgtOaZr+OAgeWIh+aPm+WgtOaZr+OAgeeCuOW9iOOAgembu+WtkOmQmCAtPiAg5LiN5a6JDQo+IDMuIOS4jemhr+iRl++8miBQcig+RikgICAwLjM5Mg0KDQpgYGB7cn0NClR1a2V5SFNEKFJlc3VsdCkNCnBsb3QoVHVrZXlIU0QoUmVzdWx0KSxsYXM9MSkNCmBgYA0KDQoNCmBgYHtyfQ0KYm94cGxvdChmb3JtdWxhID0gVEIk5LiN5a6JIH5UQiTpm5nlm6DlrZDntYTliKUsDQogICAgICAgIGRhdGEgPVRCLA0KICAgICAgICB4bGFiID0gIue1hOWIpSIsDQogICAgICAgIHlsYWIgPSAi5LiN5a6JIiwNCiAgICAgICAgY29sID0gImdyYXkiKQ0KDQpgYGANCg0KDQojIyMgNS7libXpgKDlipstPiDpoa/okZfmgKcgDQoNCg0KYGBge3J9DQpSZXN1bHQgPSBhb3YoVEIk5oOz5rOV5pW46YePflRCJOmbmeWboOWtkOe1hOWIpSkNCnN1bW1hcnkoUmVzdWx0KQ0KYGBgDQo+IDEuIOe1kOaenO+8miBPbmUtd2F5IEFub3ZhICjpm5nlm6DlrZDliIbmnpDvvJog5ZCE6aCF6aGM55uuKQ0KPiAyLiDkuI3liIfmj5vloLTmma/jgIHliIfmj5vloLTmma/jgIHngrjlvYjjgIHpm7vlrZDpkJggLT4gIOaDs+azleaVuOmHjw0KPiAzLiDkuI3poa/okZfvvJogUHIoPkYpICAgMC4yMDENCg0KYGBge3J9DQpUdWtleUhTRChSZXN1bHQpDQpwbG90KFR1a2V5SFNEKFJlc3VsdCksbGFzPTEpDQpgYGANCg0KDQpgYGB7cn0NCmJveHBsb3QoZm9ybXVsYSA9IFRCJOaDs+azleaVuOmHjyB+VEIk6ZuZ5Zug5a2Q57WE5YilLA0KICAgICAgICBkYXRhID1UQiwNCiAgICAgICAgeGxhYiA9ICLntYTliKUiLA0KICAgICAgICB5bGFiID0gIuaDs+azleaVuOmHjyIsDQogICAgICAgIGNvbCA9ICJncmF5IikNCmBgYA0KDQoNCmBgYHtyfQ0KUmVzdWx0ID0gYW92KFRCJOWTgeizqn5UQiTpm5nlm6DlrZDntYTliKUpDQpzdW1tYXJ5KFJlc3VsdCkNCmBgYA0KPiAxLiDntZDmnpzvvJogT25lLXdheSBBbm92YSAo6ZuZ5Zug5a2Q5YiG5p6Q77yaIOWQhOmghemhjOebrikNCj4gMi4g5LiN5YiH5o+b5aC05pmv44CB5YiH5o+b5aC05pmv44CB54K45b2I44CB6Zu75a2Q6ZCYIC0+ICDmg7Pms5Xlk4Hos6oNCj4gMy4g5LiN6aGv6JGX77yaIFByKD5GKSAgICAwLjEyNw0KDQpgYGB7cn0NClR1a2V5SFNEKFJlc3VsdCkNCnBsb3QoVHVrZXlIU0QoUmVzdWx0KSxsYXM9MSkNCmBgYA0KDQoNCmBgYHtyfQ0KYm94cGxvdChmb3JtdWxhID0gVEIk5ZOB6LOqIH5UQiTpm5nlm6DlrZDntYTliKUsDQogICAgICAgIGRhdGEgPVRCLA0KICAgICAgICB4bGFiID0gIue1hOWIpSIsDQogICAgICAgIHlsYWIgPSAi5ZOB6LOqIiwNCiAgICAgICAgY29sID0gImdyYXkiKQ0KYGBgDQoNCg0KYGBge3J9DQpSZXN1bHQgPSBhb3YoVEIk5Ym16YCg5YqbflRCJOmbmeWboOWtkOe1hOWIpSkNCnN1bW1hcnkoUmVzdWx0KQ0KYGBgDQo+IDEuIOe1kOaenO+8miBPbmUtd2F5IEFub3ZhICjpm5nlm6DlrZDliIbmnpDvvJog5ZCE6aCF6aGM55uuKQ0KPiAyLiDkuI3liIfmj5vloLTmma/jgIHliIfmj5vloLTmma/jgIHngrjlvYjjgIHpm7vlrZDpkJggLT4gIOWJtemAoOWKmw0KPiAzLiDkuI3poa/okZfvvJogUHIoPkYpICAgMC4yMzgNCg0KYGBge3J9DQpUdWtleUhTRChSZXN1bHQpDQpwbG90KFR1a2V5SFNEKFJlc3VsdCksbGFzPTEpDQpgYGANCg0KDQpgYGB7cn0NCmJveHBsb3QoZm9ybXVsYSA9IFRCJOWJtemAoOWKmyB+VEIk6ZuZ5Zug5a2Q57WE5YilLA0KICAgICAgICBkYXRhID1UQiwNCiAgICAgICAgeGxhYiA9ICLntYTliKUiLA0KICAgICAgICB5bGFiID0gIuWJtemAoOWKmyIsDQogICAgICAgIGNvbCA9ICJncmF5IikNCg0KYGBgDQojIyMgNiDnpL7kuqTkupLli5UgU29jaWFsIEludGVyYWN0aW9u77yaUU9JLT4g6aGv6JGX5oCn6IiHYm94cGxvdA0KDQoNCmBgYHtyfQ0KUmVzdWx0ID0gYW92KFRCJFFvSTF+VEIk6ZuZ5Zug5a2Q57WE5YilKQ0Kc3VtbWFyeShSZXN1bHQpDQpgYGANCj4gMS4g57WQ5p6c77yaIE9uZS13YXkgQW5vdmEgKOmbmeWboOWtkOWIhuaekO+8miDlkITpoIXpoYznm64pDQo+IDIuIOS4jeWIh+aPm+WgtOaZr+OAgeWIh+aPm+WgtOaZr+OAgeeCuOW9iOOAgembu+WtkOmQmCAtPiAg5Zyo6YCy6KGMVlLpoK3ohabpoqjmmrTmmYLvvIzmiJHlj6/ku6XliKTmlrflsI3mlrnmmK/lkKblnKjogb3miJHoqqroqbHjgIINCj4gMy4g5LiN6aGv6JGX77yaIFByKD5GKSAgIDAuNTkNCg0KYGBge3J9DQpUdWtleUhTRChSZXN1bHQpDQpwbG90KFR1a2V5SFNEKFJlc3VsdCksbGFzPTEpDQpgYGANCg0KDQpgYGB7cn0NCmJveHBsb3QoZm9ybXVsYSA9IFRCJFFvSTEgflRCJOmbmeWboOWtkOe1hOWIpSwNCiAgICAgICAgZGF0YSA9VEIsDQogICAgICAgIHhsYWIgPSAi57WE5YilIiwNCiAgICAgICAgeWxhYiA9ICLlnKjpgLLooYxWUumgreiFpumiqOaatOaZgu+8jOaIkeWPr+S7peWIpOaWt+WwjeaWueaYr+WQpuWcqOiBveaIkeiqquipseOAgiIsDQogICAgICAgIGNvbCA9ICJncmF5IikNCmBgYA0KDQoNCmBgYHtyfQ0KDQpSZXN1bHQgPSBhb3YoVEIkUW9JMn5UQiTpm5nlm6DlrZDntYTliKUpDQpzdW1tYXJ5KFJlc3VsdCkNCmBgYA0KPiAxLiDntZDmnpzvvJogT25lLXdheSBBbm92YSAo6ZuZ5Zug5a2Q5YiG5p6Q77yaIOWQhOmghemhjOebrikNCj4gMi4g5LiN5YiH5o+b5aC05pmv44CB5YiH5o+b5aC05pmv44CB54K45b2I44CB6Zu75a2Q6ZCYIC0+ICDmiJHog73lhYXliIbnkIbop6PlsI3mlrnlnKhWUumgreiFpumiqOaatOaZguS4reWBmueahOS7u+S9leihjOeCuuOAgg0KPiAzLiDkuI3poa/okZfvvJogUHIoPkYpICAgMC44MzUNCg0KYGBge3J9DQpUdWtleUhTRChSZXN1bHQpDQpwbG90KFR1a2V5SFNEKFJlc3VsdCksbGFzPTEpDQpgYGANCg0KDQpgYGB7cn0NCmJveHBsb3QoZm9ybXVsYSA9IFRCJFFvSTIgflRCJOmbmeWboOWtkOe1hOWIpSwNCiAgICAgICAgZGF0YSA9VEIsDQogICAgICAgIHhsYWIgPSAi57WE5YilIiwNCiAgICAgICAgeWxhYiA9ICLmiJHog73lhYXliIbnkIbop6PlsI3mlrnlnKhWUumgreiFpumiqOaatOaZguS4reWBmueahOS7u+S9leihjOeCuuOAgiIsDQogICAgICAgIGNvbCA9ICJncmF5IikNCmBgYA0KDQoNCmBgYHtyfQ0KUmVzdWx0ID0gYW92KFRCJFFvSTN+VEIk6ZuZ5Zug5a2Q57WE5YilKQ0Kc3VtbWFyeShSZXN1bHQpDQpgYGANCj4gMS4g57WQ5p6c77yaIE9uZS13YXkgQW5vdmEgKOmbmeWboOWtkOWIhuaekO+8miDlkITpoIXpoYznm64pDQo+IDIuIOS4jeWIh+aPm+WgtOaZr+OAgeWIh+aPm+WgtOaZr+OAgeeCuOW9iOOAgembu+WtkOmQmCAtPiAg5Zyo6YCy6KGMVlLpoK3ohabpoqjmmrTmmYLvvIzmiJHnorrkv6HmiJHnmoTmkK3mqpTmmI7nmb3miJHlnKjoqqrku4DpurzjgIINCj4gMy4g5LiN6aGv6JGX77yaIFByKD5GKSAgMC44NzMNCg0KYGBge3J9DQpUdWtleUhTRChSZXN1bHQpDQpwbG90KFR1a2V5SFNEKFJlc3VsdCksbGFzPTEpDQpgYGANCg0KDQpgYGB7cn0NCmJveHBsb3QoZm9ybXVsYSA9IFRCJFFvSTMgflRCJOmbmeWboOWtkOe1hOWIpSwNCiAgICAgICAgZGF0YSA9VEIsDQogICAgICAgIHhsYWIgPSAi57WE5YilIiwNCiAgICAgICAgeWxhYiA9ICLlnKjpgLLooYxWUumgreiFpumiqOaatOaZgu+8jOaIkeeiuuS/oeaIkeeahOaQreaqlOaYjueZveaIkeWcqOiqquS7gOm6vOOAgiIsDQogICAgICAgIGNvbCA9ICJncmF5IikNCmBgYA0KDQoNCmBgYHtyfQ0KUmVzdWx0ID0gYW92KFRCJFFvSTR+VEIk6ZuZ5Zug5a2Q57WE5YilKQ0Kc3VtbWFyeShSZXN1bHQpDQpgYGANCj4gMS4g57WQ5p6c77yaIE9uZS13YXkgQW5vdmEgKOmbmeWboOWtkOWIhuaekO+8miDlkITpoIXpoYznm64pDQo+IDIuIOS4jeWIh+aPm+WgtOaZr+OAgeWIh+aPm+WgtOaZr+OAgeeCuOW9iOOAgembu+WtkOmQmCAtPiAg5Zyo6YCy6KGMVlLpoK3ohabpoqjmmrTmmYLvvIzmiJHlsIjms6jmlrzlkozlsI3mlrnkupLli5XjgIINCj4gMy4g5LiN6aGv6JGX77yaIFByKD5GKSAgMC45MDYNCg0KYGBge3J9DQpUdWtleUhTRChSZXN1bHQpDQpwbG90KFR1a2V5SFNEKFJlc3VsdCksbGFzPTEpDQpgYGANCg0KDQpgYGB7cn0NCg0KYm94cGxvdChmb3JtdWxhID0gVEIkUW9JNCB+VEIk6ZuZ5Zug5a2Q57WE5YilLA0KICAgICAgICBkYXRhID1UQiwNCiAgICAgICAgeGxhYiA9ICLntYTliKUiLA0KICAgICAgICB5bGFiID0gIuWcqOmAsuihjFZS6aCt6IWm6aKo5pq05pmC77yM5oiR5bCI5rOo5pa85ZKM5bCN5pa55LqS5YuV44CCIiwNCiAgICAgICAgY29sID0gImdyYXkiKQ0KDQpgYGANCg0KDQojIyMgNiDnpL7kuqTkupLli5UgU29jaWFsIEludGVyYWN0aW9u77yaU00tPiDpoa/okZfmgKfoiIdib3hwbG90DQoNCmBgYHtyfQ0KDQpSZXN1bHQgPSBhb3YoVEIkU00xflRCJOmbmeWboOWtkOe1hOWIpSkNCnN1bW1hcnkoUmVzdWx0KQ0KYGBgDQo+IDEuIOe1kOaenO+8miBPbmUtd2F5IEFub3ZhICjpm5nlm6DlrZDliIbmnpDvvJog5ZCE6aCF6aGM55uuKQ0KPiAyLiDkuI3liIfmj5vloLTmma/jgIHliIfmj5vloLTmma/jgIHngrjlvYjjgIHpm7vlrZDpkJggLT4g5oiR5b6eVlLpoK3ohabpoqjmmrTnmoTpq5TpqZfkuK3njbLlvpfkuoblvojlpJrnmoTmu7/otrPmhJ/jgIINCj4gMy4g5LiN6aGv6JGX77yaIFByKD5GKSAgIDAuMTIxDQoNCmBgYHtyfQ0KVHVrZXlIU0QoUmVzdWx0KQ0KcGxvdChUdWtleUhTRChSZXN1bHQpLGxhcz0xKQ0KYGBgDQoNCg0KYGBge3J9DQpib3hwbG90KGZvcm11bGEgPSBUQiRTTTEgflRCJOmbmeWboOWtkOe1hOWIpSwNCiAgICAgICAgZGF0YSA9VEIsDQogICAgICAgIHhsYWIgPSAi57WE5YilIiwNCiAgICAgICAgeWxhYiA9ICLmiJHlvp5WUumgreiFpumiqOaatOeahOmrlOmpl+S4reeNsuW+l+S6huW+iOWkmueahOa7v+i2s+aEn+OAgiIsDQogICAgICAgIGNvbCA9ICJncmF5IikNCmBgYA0KDQoNCmBgYHtyfQ0KUmVzdWx0ID0gYW92KFRCJFNNMn5UQiTpm5nlm6DlrZDntYTliKUpDQpzdW1tYXJ5KFJlc3VsdCkNCmBgYA0KPiAxLiDntZDmnpzvvJogT25lLXdheSBBbm92YSAo6ZuZ5Zug5a2Q5YiG5p6Q77yaIOWQhOmghemhjOebrikNCj4gMi4g5LiN5YiH5o+b5aC05pmv44CB5YiH5o+b5aC05pmv44CB54K45b2I44CB6Zu75a2Q6ZCYIC0+ICDmiJHlvojkuqvlj5flkozmiJHnmoTlpKXkvLTkuIDotbfluqbpgY7nmoTmmYLlhYnjgIINCj4gMy4g5LiN6aGv6JGX77yaIFByKD5GKSAgIDAuMTkxDQoNCmBgYHtyfQ0KVHVrZXlIU0QoUmVzdWx0KQ0KcGxvdChUdWtleUhTRChSZXN1bHQpLGxhcz0xKQ0KYGBgDQoNCg0KYGBge3J9DQpib3hwbG90KGZvcm11bGEgPSBUQiRTTTIgflRCJOmbmeWboOWtkOe1hOWIpSwNCiAgICAgICAgZGF0YSA9VEIsDQogICAgICAgIHhsYWIgPSAi57WE5YilIiwNCiAgICAgICAgeWxhYiA9ICLmiJHlvojkuqvlj5flkozmiJHnmoTlpKXkvLTkuIDotbfluqbpgY7nmoTmmYLlhYnjgIIiLA0KICAgICAgICBjb2wgPSAiZ3JheSIpDQpgYGANCg0KDQpgYGB7cn0NClJlc3VsdCA9IGFvdihUQiRTTTN+VEIk6ZuZ5Zug5a2Q57WE5YilKQ0Kc3VtbWFyeShSZXN1bHQpDQpgYGANCj4gMS4g57WQ5p6c77yaIE9uZS13YXkgQW5vdmEgKOmbmeWboOWtkOWIhuaekO+8miDlkITpoIXpoYznm64pDQo+IDIuIOS4jeWIh+aPm+WgtOaZr+OAgeWIh+aPm+WgtOaZr+OAgeeCuOW9iOOAgembu+WtkOmQmCAtPiAg55W25oiR5Zyo6YCy6KGMVlLpoK3ohabpoqjmmrTmmYLvvIzmiJHluLjluLjoprrlvpfoh6rlt7HmmK/lraTouqvkuIDkurrjgIINCj4gMy4g5LiN6aGv6JGX77yaIFByKD5GKSAgMC4yNjkNCg0KYGBge3J9DQpUdWtleUhTRChSZXN1bHQpDQpwbG90KFR1a2V5SFNEKFJlc3VsdCksbGFzPTEpDQpgYGANCg0KDQpgYGB7cn0NCmJveHBsb3QoZm9ybXVsYSA9IFRCJFNNMyB+VEIk6ZuZ5Zug5a2Q57WE5YilLA0KICAgICAgICBkYXRhID1UQiwNCiAgICAgICAgeGxhYiA9ICLntYTliKUiLA0KICAgICAgICB5bGFiID0gIueVtuaIkeWcqOmAsuihjFZS6aCt6IWm6aKo5pq05pmC77yM5oiR5bi45bi46Ka65b6X6Ieq5bex5piv5a2k6Lqr5LiA5Lq644CCIiwNCiAgICAgICAgY29sID0gImdyYXkiKQ0KYGBgDQoNCg0KYGBge3J9DQpSZXN1bHQgPSBhb3YoVEIkU000flRCJOmbmeWboOWtkOe1hOWIpSkNCnN1bW1hcnkoUmVzdWx0KQ0KYGBgDQo+IDEuIOe1kOaenO+8miBPbmUtd2F5IEFub3ZhICjpm5nlm6DlrZDliIbmnpDvvJog5ZCE6aCF6aGM55uuKQ0KPiAyLiDkuI3liIfmj5vloLTmma/jgIHliIfmj5vloLTmma/jgIHngrjlvYjjgIHpm7vlrZDpkJggLT4gIOWcqFZS5Lit77yM55W25ZGo6YGt5pyJ5YuV6Z2c5pmC77yM5oiR6KeA5a+f5Yiw5oiR55qE5aSl5Ly05YCR5a655piT5YiG5b+D44CCDQo+IDMuIOS4jemhr+iRl++8miBQcig+RikgIDAuNjc3DQoNCmBgYHtyfQ0KVHVrZXlIU0QoUmVzdWx0KQ0KcGxvdChUdWtleUhTRChSZXN1bHQpLGxhcz0xKQ0KYGBgDQoNCg0KYGBge3J9DQpib3hwbG90KGZvcm11bGEgPSBUQiRTTTQgflRCJOmbmeWboOWtkOe1hOWIpSwNCiAgICAgICAgZGF0YSA9VEIsDQogICAgICAgIHhsYWIgPSAi57WE5YilIiwNCiAgICAgICAgeWxhYiA9ICLlnKhWUuS4re+8jOeVtuWRqOmBreacieWLlemdnOaZgu+8jOaIkeingOWvn+WIsOaIkeeahOWkpeS8tOWAkeWuueaYk+WIhuW/g+OAgiIsDQogICAgICAgIGNvbCA9ICJncmF5IikNCg0KYGBgDQoNCg0KYGBge3J9DQpSZXN1bHQgPSBhb3YoVEIkU001flRCJOmbmeWboOWtkOe1hOWIpSkNCnN1bW1hcnkoUmVzdWx0KQ0KYGBgDQo+IDEuIOe1kOaenO+8miBPbmUtd2F5IEFub3ZhICjpm5nlm6DlrZDliIbmnpDvvJog5ZCE6aCF6aGM55uuKQ0KPiAyLiDkuI3liIfmj5vloLTmma/jgIHliIfmj5vloLTmma/jgIHngrjlvYjjgIHpm7vlrZDpkJggLT4gIOeVtuaIkeWcqOmAsuihjFZS6aCt6IWm6aKo5pq05pmC77yM5pmC6ZaT5Ly85LmO6YGO5b6X5b6I5oWi44CCDQo+IDMuIOS4jemhr+iRl++8miBQcig+RikgIDAuOTg0DQoNCmBgYHtyfQ0KVHVrZXlIU0QoUmVzdWx0KQ0KcGxvdChUdWtleUhTRChSZXN1bHQpLGxhcz0xKQ0KYGBgDQoNCg0KYGBge3J9DQoNCmJveHBsb3QoZm9ybXVsYSA9IFRCJFNNNSB+VEIk6ZuZ5Zug5a2Q57WE5YilLA0KICAgICAgICBkYXRhID1UQiwNCiAgICAgICAgeGxhYiA9ICLntYTliKUiLA0KICAgICAgICB5bGFiID0gIueVtuaIkeWcqOmAsuihjFZS6aCt6IWm6aKo5pq05pmC77yM5pmC6ZaT5Ly85LmO6YGO5b6X5b6I5oWi44CCIiwNCiAgICAgICAgY29sID0gImdyYXkiKQ0KDQpgYGANCg0KDQoNCg0KDQoNCg0KIyDlt67nlbDliIbmnpAtIOaZgumWk+aWueW8j+WRiOePvuWWnOatoeeoi+W6piB0IHRlc3QNCmBgYHtyfQ0KVEIkdGltZT0gZmFjdG9yKFRCJHRpbWUpDQpwIDwtIGdncGxvdChkYXRhID1UQiwgYWVzKHggPSBsaWtlLGZpbGwgPSB0aW1lKSkgKyAgZ2VvbV9iYXIocG9zaXRpb24gPSAiZG9kZ2UiKQ0KcA0KYGBgDQo+IOeCuOW9iCBC44CB6Zu75a2Q6ZCYQyAtPiAg5Zac5q2h56iL5bqmIDEtN+WIhiDliIbluIPlnJYNCg0KDQpgYGB7cn0NCnZhci50ZXN0KFRCJGxpa2V+VEIkdGltZSwgIGRhdGEgPSBUQikgI+WHveaVuCB2YXIudGVzdCgp6YCy6KGM6K6K55Ww5pW45ZCM6LOq5oCn5qqi5a6aDQpgYGANCg0KDQpgYGB7cn0NCiMg54K45b2IIOWSjCDpm7vlrZDpkJgg5beu55Ww56iL5bqmDQp0LnRlc3QoVEIkbGlrZX5UQiR0aW1lICwgdmFyLmVxdWFsID0gVFJVRSxkYXRhID0gVEIpICMgdC50ZXN0IOe1kOaenOmhr+ekuumbmeWwviBUV08gc2FtcGxlIHQtdGVzdCAsIHAtdmFsdWUg6KaB5bCP5pa8MC4wNSDmiY3mnInpoa/okZflt67nlbANCmBgYA0KPiDngrjlvYggQuOAgembu+WtkOmQmEMgLT4gIOWWnOatoeeoi+W6pg0KPiB0LXRlc3Qg5LiN6aGv6JGXIHAtdmFsdWUgPSAwLjY3MTcNCg0KYGBge3J9DQpib3hwbG90KGZvcm11bGEgPSBUQiRsaWtlflRCJHRpbWUsDQogICAgICAgIGRhdGEgPVRCLA0KICAgICAgICB4bGFiID0gIue1hOWIpSIsDQogICAgICAgIHlsYWIgPSAi5Zac5q2h56iL5bqm44CCIiwNCiAgICAgICAgY29sID0gImdyYXkiKQ0KDQoNCmBgYA0KDQpgYGB7cn0NCnQudGVzdChUQiRsaWtlflRCJHRpbWUgLCB2YXIuZXF1YWwgPSBUUlVFLGFsdD0gImdyZWF0ZXIiLGRhdGEgPSBUQikgIyDllq7lsL7mqqLlrpoNCmBgYA0KDQoNCmBgYHtyfQ0KUmVzdWx0ID0gYW92KFRCJGxpa2V+VEIkdGltZSkNCnN1bW1hcnkoUmVzdWx0KQ0KYGBgDQoNCg0KDQoNCg==