1) Result for Appendix - Correlation between plantsize and number of flowers

method:

  • calculated plant size accordig to Mroz: Total leafarea (plantsize hereafter) was calculated by summing up the product 0.5×(leaflength)×(leafwidth) for all leaves of a plant (KindlmannandBalounová1999; Janečkovaetal.2006).
  • we only measured two leaves per plant and counted number of leaves, thus we modified the formula: PLANTSIZE 2 = {[(0.5 x log(BL1) x log(BB1)) + (0.5 X log(BL2) x log(BB2))]/2}*number of leaves
  • log-transformed too keep Plantsize in comparable scales (orders of magnitude) with no. of adult, juveniles, no.of flowers in later model
  • predictor: PLANTSIZE2
  • response: number of flowers
  • dataset: only flowering/adult individuals of D. majalis; measured plants: ; grouped in xx plots; grouped in xxx sites (those with D. majalis occurences)
  • we calculated a linear mixed model using lme4-package.
  • model asumptions were checked via grafical residual diagnostics.
  • To meet normal distribution, we log-transformed the continuous response (number of flowers)
  • To account for non-independence of plants measured in the same plot and in the the same site, we site as a nested random-factor.
  • F-value was obtained using car-package (Type II Wald F tests with Kenward-Roger df).
  • Adjusted R-square was obtained using the MuMIn package.

model 2 - log-transform predictor and response

packages

SizeFlowers_log <- lmer(log1p(Bluete) ~ PLANTSIZE2_log + (1|Ort/Nr_in_R), data = gen)

residual check

  • looks fine
plot(SizeFlowers_log)

qqnorm(residuals(SizeFlowers_log))
qqline(residuals(SizeFlowers_log))

result

summary(SizeFlowers_log)
Linear mixed model fit by REML ['lmerMod']
Formula: log1p(Bluete) ~ PLANTSIZE2_log + (1 | Ort/Nr_in_R)
   Data: gen

REML criterion at convergence: 747.1

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-4.8216 -0.5727  0.0775  0.6663  3.2945 

Random effects:
 Groups      Name        Variance Std.Dev.
 Nr_in_R:Ort (Intercept) 0.004911 0.07008 
 Ort         (Intercept) 0.019215 0.13862 
 Residual                0.085944 0.29316 
Number of obs: 1474, groups:  Nr_in_R:Ort, 213; Ort, 74

Fixed effects:
               Estimate Std. Error t value
(Intercept)    1.805763   0.036826   49.03
PLANTSIZE2_log 0.032792   0.001153   28.45

Correlation of Fixed Effects:
            (Intr)
PLANTSIZE2_ -0.851

F-value

Anova(SizeFlowers_log, test.statistic = "F")
Analysis of Deviance Table (Type II Wald F tests with Kenward-Roger df)

Response: log1p(Bluete)
                    F Df Df.res    Pr(>F)    
PLANTSIZE2_log 803.26  1 1395.3 < 2.2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

deviance explained

  • 50 % of deviance is explained
r.squaredGLMM(SizeFlowers_log)
Warning: numerical expression has 1474 elements: only the first used
          R2m       R2c
[1,] 0.370629 0.5085783

graph

plot(predictorEffects(SizeFlowers_log), ylab = "number of flowers (log)", xlab= "plant size", main = "")

2) Result for main Part - Effect of env. vars on different traits /performance of D. majalis

method:

  • see draft1
  • NEW: instead of just comparing whether the effect of the environmental variables depends on the life status (adult/juvenile), here I compare, whether there is a different effect depending on the focal trait
  • focal traits:
  1. fecundity - measured via number of flowers
  2. growth - measured via plant size (for details regarding calculation see part above)
  3. survival - measured via abundance of adult
  4. recruitment - measured via abundance of juveniles

final model

  • log1p-transform the response
  • zero inflation formula included, accounting for zero clusters depending on trait and in high nitrogen conditions
  • account for differences in residual variation depending on the trait via dispersion formula

–> residuals look fine

vita_env_PS2_ZI_disp2 <- glmmTMB(log1p(variable) ~ variable_typ +
                      s_FZW + 
                      s_RZW +
                      s_NZW + 
                      s_D_Moos +
                      s_cover_grasses + 
                      s_H_Kraut_mtrs +
                      variable_typ:s_FZW +
                      variable_typ:s_RZW +
                      variable_typ:s_NZW +
                      variable_typ:s_D_Moos +
                      variable_typ:s_cover_grasses +
                      variable_typ:s_H_Kraut_mtrs +
                      s_FZW:s_H_Kraut_mtrs+ 
                        s_NZW:s_H_Kraut_mtrs +
                        s_FZW:s_cover_grasses+ 
                        s_NZW:s_cover_grasses+
                          s_FZW:s_NZW + 
                      (1|plot),
                      ziformula = ~variable_typ + s_NZW,
                      dispformula = ~variable_typ,
                     family=gaussian(link = "identity"),
                      data = vitas_PS2_log)

res_vita_env_PS2_ZI_disp2 <- simulateResiduals(vita_env_PS2_ZI_disp2, plot = T)

check for model missspecification

plot(res_vita_env_PS2_ZI_disp2, form = vitas_PS2_log$variable_typ)

plot(res_vita_env_PS2_ZI_disp2, form = vitas_PS2_log$s_FZW) # unimodal

plot(res_vita_env_PS2_ZI_disp2, form = vitas_PS2_log$s_NZW) # unimodal ?

plot(res_vita_env_PS2_ZI_disp2, form = vitas_PS2_log$s_RZW) # okay

plot(res_vita_env_PS2_ZI_disp2, form = vitas_PS2_log$s_H_Kraut_mtrs) # weird

plot(res_vita_env_PS2_ZI_disp2, form = vitas_PS2_log$s_D_Moos) # okay

plot(res_vita_env_PS2_ZI_disp2, form = vitas_PS2_log$s_cover_grasses) # weird

results final model

summary(vita_env_PS2_ZI_disp2)
 Family: gaussian  ( identity )
Formula:          log1p(variable) ~ variable_typ + s_FZW + s_RZW + s_NZW + s_D_Moos +      s_cover_grasses + s_H_Kraut_mtrs + variable_typ:s_FZW + variable_typ:s_RZW +  
    variable_typ:s_NZW + variable_typ:s_D_Moos + variable_typ:s_cover_grasses +      variable_typ:s_H_Kraut_mtrs + s_FZW:s_H_Kraut_mtrs + s_NZW:s_H_Kraut_mtrs +  
    s_FZW:s_cover_grasses + s_NZW:s_cover_grasses + s_FZW:s_NZW +      (1 | plot)
Zero inflation:                   ~variable_typ + s_NZW
Dispersion:                       ~variable_typ
Data: vitas_PS2_log

     AIC      BIC   logLik deviance df.resid 
  1800.9   2017.1   -857.4   1714.9     1086 

Random effects:

Conditional model:
 Groups   Name        Variance Std.Dev.
 plot     (Intercept) 0.01037  0.1018  
 Residual                  NA      NA  
Number of obs: 1129, groups:  plot, 95

Conditional model:
                                               Estimate Std. Error z value Pr(>|z|)    
(Intercept)                                   1.968e+00  6.624e-02  29.712  < 2e-16 ***
variable_typjuvenile                         -6.464e-02  1.030e-01  -0.628  0.53026    
variable_typno. of flowers                    7.968e-01  6.681e-02  11.928  < 2e-16 ***
variable_typplant size (log)                  1.368e+00  6.576e-02  20.797  < 2e-16 ***
s_FZW                                        -2.061e-01  6.730e-02  -3.062  0.00220 ** 
s_RZW                                         3.108e-01  6.069e-02   5.121 3.04e-07 ***
s_NZW                                        -3.559e-01  8.166e-02  -4.358 1.31e-05 ***
s_D_Moos                                      7.192e-02  6.239e-02   1.153  0.24901    
s_cover_grasses                               6.572e-02  7.420e-02   0.886  0.37581    
s_H_Kraut_mtrs                               -1.536e-01  7.069e-02  -2.174  0.02974 *  
variable_typjuvenile:s_FZW                    8.420e-02  1.072e-01   0.785  0.43232    
variable_typno. of flowers:s_FZW              2.183e-01  6.899e-02   3.164  0.00156 ** 
variable_typplant size (log):s_FZW            2.223e-01  6.778e-02   3.280  0.00104 ** 
variable_typjuvenile:s_RZW                   -3.494e-02  9.445e-02  -0.370  0.71147    
variable_typno. of flowers:s_RZW             -3.060e-01  6.249e-02  -4.897 9.73e-07 ***
variable_typplant size (log):s_RZW           -3.231e-01  6.128e-02  -5.272 1.35e-07 ***
variable_typjuvenile:s_NZW                    3.917e-02  1.274e-01   0.307  0.75860    
variable_typno. of flowers:s_NZW              3.981e-01  8.338e-02   4.775 1.80e-06 ***
variable_typplant size (log):s_NZW            4.027e-01  8.206e-02   4.907 9.26e-07 ***
variable_typjuvenile:s_D_Moos                 4.121e-02  9.766e-02   0.422  0.67308    
variable_typno. of flowers:s_D_Moos          -8.342e-02  6.382e-02  -1.307  0.19116    
variable_typplant size (log):s_D_Moos        -9.322e-02  6.275e-02  -1.486  0.13738    
variable_typjuvenile:s_cover_grasses          9.661e-02  1.170e-01   0.826  0.40908    
variable_typno. of flowers:s_cover_grasses   -6.883e-02  7.609e-02  -0.905  0.36568    
variable_typplant size (log):s_cover_grasses -7.152e-02  7.484e-02  -0.956  0.33927    
variable_typjuvenile:s_H_Kraut_mtrs          -7.165e-02  1.076e-01  -0.666  0.50543    
variable_typno. of flowers:s_H_Kraut_mtrs     1.627e-01  7.267e-02   2.239  0.02512 *  
variable_typplant size (log):s_H_Kraut_mtrs   1.977e-01  7.136e-02   2.771  0.00559 ** 
s_FZW:s_H_Kraut_mtrs                         -3.483e-02  1.514e-02  -2.300  0.02147 *  
s_NZW:s_H_Kraut_mtrs                          1.096e-02  1.278e-02   0.858  0.39085    
s_FZW:s_cover_grasses                         2.139e-03  1.353e-02   0.158  0.87441    
s_NZW:s_cover_grasses                        -4.729e-05  1.349e-02  -0.004  0.99720    
s_FZW:s_NZW                                   2.391e-03  1.369e-02   0.175  0.86135    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Zero-inflation model:
                              Estimate Std. Error z value Pr(>|z|)    
(Intercept)                    -1.9941     0.2583  -7.720 1.16e-14 ***
variable_typjuvenile            0.5854     0.2822   2.075    0.038 *  
variable_typno. of flowers    -20.9555  6153.0063  -0.003    0.997    
variable_typplant size (log)  -20.9555  6149.3200  -0.003    0.997    
s_NZW                           1.0867     0.2107   5.159 2.49e-07 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Dispersion model:
                             Estimate Std. Error z value Pr(>|z|)    
(Intercept)                  -0.21029    0.09794  -2.147   0.0318 *  
variable_typjuvenile          0.26330    0.14004   1.880   0.0601 .  
variable_typno. of flowers   -2.98255    0.14547 -20.503   <2e-16 ***
variable_typplant size (log) -3.85880    0.15094 -25.566   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

interaction analysis

test(emmeans(vita_env_PS2_ZI_disp2, pairwise ~ variable_typ|s_FZW, var = "s_FZW"))
$emmeans
s_FZW = -0.0585:
 variable_typ     emmean     SE   df t.ratio p.value
 adult              2.04 0.0636 1086  32.010  <.0001
 juvenile           1.97 0.0811 1086  24.288  <.0001
 no. of flowers     2.76 0.0197 1086 140.232  <.0001
 plant size (log)   3.33 0.0163 1086 204.697  <.0001

Results are given on the log1p (not the response) scale. 

$contrasts
s_FZW = -0.0585:
 contrast                          estimate     SE   df t.ratio p.value
 adult - juvenile                    0.0685 0.0992 1086   0.691  0.9005
 adult - no. of flowers             -0.7227 0.0640 1086 -11.294  <.0001
 adult - plant size (log)           -1.2894 0.0630 1086 -20.462  <.0001
 juvenile - no. of flowers          -0.7912 0.0813 1086  -9.730  <.0001
 juvenile - plant size (log)        -1.3580 0.0806 1086 -16.857  <.0001
 no. of flowers - plant size (log)  -0.5667 0.0173 1086 -32.841  <.0001

Note: contrasts are still on the log1p scale 
P value adjustment: tukey method for comparing a family of 4 estimates 
test(emmeans(vita_env_PS2_ZI_disp2, pairwise ~ variable_typ|s_RZW, var = "s_RZW"))
$emmeans
s_RZW = 0.0429:
 variable_typ     emmean     SE   df t.ratio p.value
 adult              2.04 0.0636 1086  32.010  <.0001
 juvenile           1.97 0.0811 1086  24.288  <.0001
 no. of flowers     2.76 0.0197 1086 140.232  <.0001
 plant size (log)   3.33 0.0163 1086 204.697  <.0001

Results are given on the log1p (not the response) scale. 

$contrasts
s_RZW = 0.0429:
 contrast                          estimate     SE   df t.ratio p.value
 adult - juvenile                    0.0685 0.0992 1086   0.691  0.9005
 adult - no. of flowers             -0.7227 0.0640 1086 -11.294  <.0001
 adult - plant size (log)           -1.2894 0.0630 1086 -20.462  <.0001
 juvenile - no. of flowers          -0.7912 0.0813 1086  -9.730  <.0001
 juvenile - plant size (log)        -1.3580 0.0806 1086 -16.857  <.0001
 no. of flowers - plant size (log)  -0.5667 0.0173 1086 -32.841  <.0001

Note: contrasts are still on the log1p scale 
P value adjustment: tukey method for comparing a family of 4 estimates 
test(emmeans(vita_env_PS2_ZI_disp2, pairwise ~ variable_typ|s_NZW, var = "s_NZW"))
$emmeans
s_NZW = -0.0883:
 variable_typ     emmean     SE   df t.ratio p.value
 adult              2.04 0.0636 1086  32.010  <.0001
 juvenile           1.97 0.0811 1086  24.288  <.0001
 no. of flowers     2.76 0.0197 1086 140.232  <.0001
 plant size (log)   3.33 0.0163 1086 204.697  <.0001

Results are given on the log1p (not the response) scale. 

$contrasts
s_NZW = -0.0883:
 contrast                          estimate     SE   df t.ratio p.value
 adult - juvenile                    0.0685 0.0992 1086   0.691  0.9005
 adult - no. of flowers             -0.7227 0.0640 1086 -11.294  <.0001
 adult - plant size (log)           -1.2894 0.0630 1086 -20.462  <.0001
 juvenile - no. of flowers          -0.7912 0.0813 1086  -9.730  <.0001
 juvenile - plant size (log)        -1.3580 0.0806 1086 -16.857  <.0001
 no. of flowers - plant size (log)  -0.5667 0.0173 1086 -32.841  <.0001

Note: contrasts are still on the log1p scale 
P value adjustment: tukey method for comparing a family of 4 estimates 
test(emmeans(vita_env_PS2_ZI_disp2, pairwise ~ variable_typ|s_H_Kraut_mtrs, var = "s_H_Kraut_mtrs"))
$emmeans
s_H_Kraut_mtrs = -0.0679:
 variable_typ     emmean     SE   df t.ratio p.value
 adult              2.04 0.0636 1086  32.010  <.0001
 juvenile           1.97 0.0811 1086  24.288  <.0001
 no. of flowers     2.76 0.0197 1086 140.232  <.0001
 plant size (log)   3.33 0.0163 1086 204.697  <.0001

Results are given on the log1p (not the response) scale. 

$contrasts
s_H_Kraut_mtrs = -0.0679:
 contrast                          estimate     SE   df t.ratio p.value
 adult - juvenile                    0.0685 0.0992 1086   0.691  0.9005
 adult - no. of flowers             -0.7227 0.0640 1086 -11.294  <.0001
 adult - plant size (log)           -1.2894 0.0630 1086 -20.462  <.0001
 juvenile - no. of flowers          -0.7912 0.0813 1086  -9.730  <.0001
 juvenile - plant size (log)        -1.3580 0.0806 1086 -16.857  <.0001
 no. of flowers - plant size (log)  -0.5667 0.0173 1086 -32.841  <.0001

Note: contrasts are still on the log1p scale 
P value adjustment: tukey method for comparing a family of 4 estimates 
test(emmeans(vita_env_PS2_ZI_disp2, pairwise ~ variable_typ|s_D_Moos, var = "s_D_Moos"))
$emmeans
s_D_Moos = 0.0239:
 variable_typ     emmean     SE   df t.ratio p.value
 adult              2.04 0.0636 1086  32.010  <.0001
 juvenile           1.97 0.0811 1086  24.288  <.0001
 no. of flowers     2.76 0.0197 1086 140.232  <.0001
 plant size (log)   3.33 0.0163 1086 204.697  <.0001

Results are given on the log1p (not the response) scale. 

$contrasts
s_D_Moos = 0.0239:
 contrast                          estimate     SE   df t.ratio p.value
 adult - juvenile                    0.0685 0.0992 1086   0.691  0.9005
 adult - no. of flowers             -0.7227 0.0640 1086 -11.294  <.0001
 adult - plant size (log)           -1.2894 0.0630 1086 -20.462  <.0001
 juvenile - no. of flowers          -0.7912 0.0813 1086  -9.730  <.0001
 juvenile - plant size (log)        -1.3580 0.0806 1086 -16.857  <.0001
 no. of flowers - plant size (log)  -0.5667 0.0173 1086 -32.841  <.0001

Note: contrasts are still on the log1p scale 
P value adjustment: tukey method for comparing a family of 4 estimates 
test(emmeans(vita_env_PS2_ZI_disp2, pairwise ~ variable_typ|s_cover_grasses, var = "s_cover_grasses"))
$emmeans
s_cover_grasses = 0.00139:
 variable_typ     emmean     SE   df t.ratio p.value
 adult              2.04 0.0636 1086  32.010  <.0001
 juvenile           1.97 0.0811 1086  24.288  <.0001
 no. of flowers     2.76 0.0197 1086 140.232  <.0001
 plant size (log)   3.33 0.0163 1086 204.697  <.0001

Results are given on the log1p (not the response) scale. 

$contrasts
s_cover_grasses = 0.00139:
 contrast                          estimate     SE   df t.ratio p.value
 adult - juvenile                    0.0685 0.0992 1086   0.691  0.9005
 adult - no. of flowers             -0.7227 0.0640 1086 -11.294  <.0001
 adult - plant size (log)           -1.2894 0.0630 1086 -20.462  <.0001
 juvenile - no. of flowers          -0.7912 0.0813 1086  -9.730  <.0001
 juvenile - plant size (log)        -1.3580 0.0806 1086 -16.857  <.0001
 no. of flowers - plant size (log)  -0.5667 0.0173 1086 -32.841  <.0001

Note: contrasts are still on the log1p scale 
P value adjustment: tukey method for comparing a family of 4 estimates 

significance, direction and size of environmental effects on each trait (extension of summary - easier to read)

test(emtrends(vita_env_PS2_ZI_disp2, ~variable_typ|s_NZW, var = "s_NZW"))
s_NZW = -0.0883:
 variable_typ     s_NZW.trend     SE   df t.ratio p.value
 adult                -0.3568 0.0816 1086  -4.369  <.0001
 juvenile             -0.3176 0.1029 1086  -3.086  0.0021
 no. of flowers        0.0414 0.0219 1086   1.886  0.0595
 plant size (log)      0.0459 0.0162 1086   2.834  0.0047
test(emtrends(vita_env_PS2_ZI_disp2, ~variable_typ|s_FZW, var = "s_FZW"))
s_FZW = -0.0585:
 variable_typ     s_FZW.trend     SE   df t.ratio p.value
 adult                -0.2039 0.0673 1086  -3.032  0.0025
 juvenile             -0.1197 0.0849 1086  -1.410  0.1590
 no. of flowers        0.0143 0.0191 1086   0.749  0.4539
 plant size (log)      0.0184 0.0142 1086   1.297  0.1950
test(emtrends(vita_env_PS2_ZI_disp2, ~variable_typ|s_RZW, var = "s_RZW"))
s_RZW = 0.0429:
 variable_typ     s_RZW.trend     SE   df t.ratio p.value
 adult                0.31079 0.0607 1086   5.121  <.0001
 juvenile             0.27585 0.0730 1086   3.778  0.0002
 no. of flowers       0.00478 0.0180 1086   0.266  0.7902
 plant size (log)    -0.01233 0.0132 1086  -0.935  0.3502
test(emtrends(vita_env_PS2_ZI_disp2, ~variable_typ|s_D_Moos, var = "s_D_Moos"))
s_D_Moos = 0.0239:
 variable_typ     s_D_Moos.trend     SE   df t.ratio p.value
 adult                    0.0719 0.0624 1086   1.153  0.2493
 juvenile                 0.1131 0.0759 1086   1.491  0.1363
 no. of flowers          -0.0115 0.0172 1086  -0.669  0.5038
 plant size (log)        -0.0213 0.0127 1086  -1.678  0.0937
test(emtrends(vita_env_PS2_ZI_disp2, ~variable_typ|s_H_Kraut_mtrs, var = "s_H_Kraut_mtrs"))
s_H_Kraut_mtrs = -0.0679:
 variable_typ     s_H_Kraut_mtrs.trend     SE   df t.ratio p.value
 adult                         -0.1526 0.0707 1086  -2.159  0.0310
 juvenile                      -0.2242 0.0820 1086  -2.735  0.0063
 no. of flowers                 0.0102 0.0201 1086   0.505  0.6137
 plant size (log)               0.0451 0.0147 1086   3.070  0.0022
test(emtrends(vita_env_PS2_ZI_disp2, ~variable_typ|s_cover_grasses, var = "s_cover_grasses"))
s_cover_grasses = 0.00139:
 variable_typ     s_cover_grasses.trend     SE   df t.ratio p.value
 adult                          0.06560 0.0742 1086   0.884  0.3770
 juvenile                       0.16221 0.0912 1086   1.779  0.0755
 no. of flowers                -0.00323 0.0194 1086  -0.167  0.8676
 plant size (log)              -0.00593 0.0137 1086  -0.432  0.6657

graph

3) Result for main part - Effect of env. vars on adults, juvenile and number of flowers (model without plantsize)

method:

  • see draft1
  • NEW: instead of just comparing whether the effect of the environmental variables depends on the life status (adult/juvenile), here I compare, whether there is a different effect depending on the focal trait
  • focal traits:
  1. fecundity - measured via number of flowers
  2. NOT INCLUDED HERE! growth - measured via plant size (for details regarding calculation see part above)
  3. survival - measured via abundance of adult
  4. recruitment - measured via abundance of juveniles

final model

  • advantage compared to previous model with 4 traits: - easier to convey; log1p-trasnformation of PLANTSIZE (“double log-trafo”) not necessary;

  • zero inflation formula included, accounting for zero clusters depending on trait and in high nitrogen conditions

  • account for differences in residual variation depending on the trait via dispersion formula

–> residuals look fine (not shown here)

summary(vita_env_NCS_ZI_disp3)
 Family: gaussian  ( identity )
Formula:          log1p(variable) ~ variable_typ + s_FZW + s_RZW + s_NZW + s_D_Moos +      s_cover_grasses + s_H_Kraut_mtrs + variable_typ:s_FZW + variable_typ:s_RZW +  
    variable_typ:s_NZW + variable_typ:s_D_Moos + variable_typ:s_cover_grasses +      variable_typ:s_H_Kraut_mtrs + s_FZW:s_H_Kraut_mtrs + s_NZW:s_H_Kraut_mtrs +  
    s_FZW:s_cover_grasses + s_NZW:s_cover_grasses + s_FZW:s_NZW +      (1 | plot)
Zero inflation:                   ~variable_typ + s_FZW + s_NZW
Dispersion:                       ~variable_typ
Data: vitas_noP

     AIC      BIC   logLik deviance df.resid 
  1957.2   2125.9   -943.6   1887.2      881 

Random effects:

Conditional model:
 Groups   Name        Variance Std.Dev.
 plot     (Intercept) 0.01838  0.1356  
 Residual                  NA      NA  
Number of obs: 916, groups:  plot, 95

Conditional model:
                                           Estimate Std. Error z value Pr(>|z|)    
(Intercept)                                 2.00181    0.06590  30.375  < 2e-16 ***
variable_typjuvenile                       -0.02420    0.10005  -0.242   0.8089    
variable_typno. of flowers                  0.74788    0.06518  11.474  < 2e-16 ***
s_FZW                                      -0.13145    0.06784  -1.938   0.0527 .  
s_RZW                                       0.31126    0.06053   5.142 2.72e-07 ***
s_NZW                                      -0.33659    0.08157  -4.126 3.68e-05 ***
s_D_Moos                                    0.05081    0.06148   0.826   0.4086    
s_cover_grasses                             0.05997    0.07418   0.808   0.4188    
s_H_Kraut_mtrs                             -0.11735    0.07205  -1.629   0.1034    
variable_typjuvenile:s_FZW                  0.15806    0.10453   1.512   0.1305    
variable_typno. of flowers:s_FZW            0.13594    0.06840   1.987   0.0469 *  
variable_typjuvenile:s_RZW                 -0.05931    0.09366  -0.633   0.5265    
variable_typno. of flowers:s_RZW           -0.30614    0.06186  -4.949 7.45e-07 ***
variable_typjuvenile:s_NZW                  0.04095    0.12369   0.331   0.7406    
variable_typno. of flowers:s_NZW            0.38925    0.08221   4.735 2.20e-06 ***
variable_typjuvenile:s_D_Moos               0.06736    0.09509   0.708   0.4787    
variable_typno. of flowers:s_D_Moos        -0.06236    0.06229  -1.001   0.3168    
variable_typjuvenile:s_cover_grasses        0.10563    0.11541   0.915   0.3601    
variable_typno. of flowers:s_cover_grasses -0.07219    0.07546  -0.957   0.3387    
variable_typjuvenile:s_H_Kraut_mtrs        -0.06069    0.10875  -0.558   0.5768    
variable_typno. of flowers:s_H_Kraut_mtrs   0.13484    0.07297   1.848   0.0646 .  
s_FZW:s_H_Kraut_mtrs                       -0.05020    0.02522  -1.990   0.0466 *  
s_NZW:s_H_Kraut_mtrs                        0.03216    0.02144   1.500   0.1337    
s_FZW:s_cover_grasses                      -0.00739    0.02249  -0.329   0.7424    
s_NZW:s_cover_grasses                       0.00974    0.02245   0.434   0.6643    
s_FZW:s_NZW                                 0.01166    0.02249   0.519   0.6041    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Zero-inflation model:
                            Estimate Std. Error z value Pr(>|z|)    
(Intercept)                  -1.9277     0.2251  -8.564  < 2e-16 ***
variable_typjuvenile          0.6414     0.2607   2.461   0.0139 *  
variable_typno. of flowers  -20.0516  3868.9780  -0.005   0.9959    
s_FZW                         0.8805     0.1583   5.561 2.68e-08 ***
s_NZW                         1.1764     0.1700   6.921 4.48e-12 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Dispersion model:
                           Estimate Std. Error z value Pr(>|z|)    
(Intercept)                 -0.2754     0.1011  -2.723  0.00647 ** 
variable_typjuvenile         0.2504     0.1442   1.736  0.08257 .  
variable_typno. of flowers  -2.9924     0.1583 -18.900  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
test(emmeans(vita_env_NCS_ZI_disp3, pairwise ~ variable_typ|s_FZW, var = "s_FZW"))
$emmeans
s_FZW = -0.0372:
 variable_typ   emmean     SE  df t.ratio p.value
 adult            2.04 0.0640 881  31.853  <.0001
 juvenile         2.01 0.0781 881  25.711  <.0001
 no. of flowers   2.75 0.0240 881 114.533  <.0001

Results are given on the log1p (not the response) scale. 

$contrasts
s_FZW = -0.0372:
 contrast                  estimate     SE  df t.ratio p.value
 adult - juvenile            0.0305 0.0970 881   0.314  0.9470
 adult - no. of flowers     -0.7073 0.0631 881 -11.203  <.0001
 juvenile - no. of flowers  -0.7378 0.0776 881  -9.506  <.0001

Note: contrasts are still on the log1p scale 
P value adjustment: tukey method for comparing a family of 3 estimates 
test(emmeans(vita_env_NCS_ZI_disp3, pairwise ~ variable_typ|s_RZW, var = "s_RZW"))
$emmeans
s_RZW = 0.0264:
 variable_typ   emmean     SE  df t.ratio p.value
 adult            2.04 0.0640 881  31.853  <.0001
 juvenile         2.01 0.0781 881  25.711  <.0001
 no. of flowers   2.75 0.0240 881 114.533  <.0001

Results are given on the log1p (not the response) scale. 

$contrasts
s_RZW = 0.0264:
 contrast                  estimate     SE  df t.ratio p.value
 adult - juvenile            0.0305 0.0970 881   0.314  0.9470
 adult - no. of flowers     -0.7073 0.0631 881 -11.203  <.0001
 juvenile - no. of flowers  -0.7378 0.0776 881  -9.506  <.0001

Note: contrasts are still on the log1p scale 
P value adjustment: tukey method for comparing a family of 3 estimates 
test(emmeans(vita_env_NCS_ZI_disp3, pairwise ~ variable_typ|s_NZW, var = "s_NZW"))
$emmeans
s_NZW = -0.0545:
 variable_typ   emmean     SE  df t.ratio p.value
 adult            2.04 0.0640 881  31.853  <.0001
 juvenile         2.01 0.0781 881  25.711  <.0001
 no. of flowers   2.75 0.0240 881 114.533  <.0001

Results are given on the log1p (not the response) scale. 

$contrasts
s_NZW = -0.0545:
 contrast                  estimate     SE  df t.ratio p.value
 adult - juvenile            0.0305 0.0970 881   0.314  0.9470
 adult - no. of flowers     -0.7073 0.0631 881 -11.203  <.0001
 juvenile - no. of flowers  -0.7378 0.0776 881  -9.506  <.0001

Note: contrasts are still on the log1p scale 
P value adjustment: tukey method for comparing a family of 3 estimates 
test(emmeans(vita_env_NCS_ZI_disp3, pairwise ~ variable_typ|s_H_Kraut_mtrs, var = "s_H_Kraut_mtrs"))
$emmeans
s_H_Kraut_mtrs = -0.0395:
 variable_typ   emmean     SE  df t.ratio p.value
 adult            2.04 0.0640 881  31.853  <.0001
 juvenile         2.01 0.0781 881  25.711  <.0001
 no. of flowers   2.75 0.0240 881 114.533  <.0001

Results are given on the log1p (not the response) scale. 

$contrasts
s_H_Kraut_mtrs = -0.0395:
 contrast                  estimate     SE  df t.ratio p.value
 adult - juvenile            0.0305 0.0970 881   0.314  0.9470
 adult - no. of flowers     -0.7073 0.0631 881 -11.203  <.0001
 juvenile - no. of flowers  -0.7378 0.0776 881  -9.506  <.0001

Note: contrasts are still on the log1p scale 
P value adjustment: tukey method for comparing a family of 3 estimates 
test(emmeans(vita_env_NCS_ZI_disp3, pairwise ~ variable_typ|s_D_Moos, var = "s_D_Moos"))
$emmeans
s_D_Moos = 0.0132:
 variable_typ   emmean     SE  df t.ratio p.value
 adult            2.04 0.0640 881  31.853  <.0001
 juvenile         2.01 0.0781 881  25.711  <.0001
 no. of flowers   2.75 0.0240 881 114.533  <.0001

Results are given on the log1p (not the response) scale. 

$contrasts
s_D_Moos = 0.0132:
 contrast                  estimate     SE  df t.ratio p.value
 adult - juvenile            0.0305 0.0970 881   0.314  0.9470
 adult - no. of flowers     -0.7073 0.0631 881 -11.203  <.0001
 juvenile - no. of flowers  -0.7378 0.0776 881  -9.506  <.0001

Note: contrasts are still on the log1p scale 
P value adjustment: tukey method for comparing a family of 3 estimates 
test(emmeans(vita_env_NCS_ZI_disp3, pairwise ~ variable_typ|s_cover_grasses, var = "s_cover_grasses"))
$emmeans
s_cover_grasses = 0.00121:
 variable_typ   emmean     SE  df t.ratio p.value
 adult            2.04 0.0640 881  31.853  <.0001
 juvenile         2.01 0.0781 881  25.711  <.0001
 no. of flowers   2.75 0.0240 881 114.533  <.0001

Results are given on the log1p (not the response) scale. 

$contrasts
s_cover_grasses = 0.00121:
 contrast                  estimate     SE  df t.ratio p.value
 adult - juvenile            0.0305 0.0970 881   0.314  0.9470
 adult - no. of flowers     -0.7073 0.0631 881 -11.203  <.0001
 juvenile - no. of flowers  -0.7378 0.0776 881  -9.506  <.0001

Note: contrasts are still on the log1p scale 
P value adjustment: tukey method for comparing a family of 3 estimates 
test(emtrends(vita_env_NCS_ZI_disp3, ~variable_typ|s_NZW, var = "s_NZW"))
s_NZW = -0.0545:
 variable_typ   s_NZW.trend     SE  df t.ratio p.value
 adult               -0.338 0.0815 881  -4.150  <.0001
 juvenile            -0.297 0.0992 881  -2.998  0.0028
 no. of flowers       0.051 0.0245 881   2.078  0.0380
test(emtrends(vita_env_NCS_ZI_disp3, ~variable_typ|s_FZW, var = "s_FZW"))
s_FZW = -0.0372:
 variable_typ   s_FZW.trend     SE  df t.ratio p.value
 adult             -0.13011 0.0677 881  -1.921  0.0550
 juvenile           0.02795 0.0850 881   0.329  0.7424
 no. of flowers     0.00582 0.0219 881   0.266  0.7901
test(emtrends(vita_env_NCS_ZI_disp3, ~variable_typ|s_RZW, var = "s_RZW"))
s_RZW = 0.0264:
 variable_typ   s_RZW.trend     SE  df t.ratio p.value
 adult              0.31126 0.0605 881   5.142  <.0001
 juvenile           0.25195 0.0731 881   3.448  0.0006
 no. of flowers     0.00512 0.0198 881   0.259  0.7956
test(emtrends(vita_env_NCS_ZI_disp3, ~variable_typ|s_D_Moos, var = "s_D_Moos"))
s_D_Moos = 0.0132:
 variable_typ   s_D_Moos.trend     SE  df t.ratio p.value
 adult                  0.0508 0.0615 881   0.826  0.4088
 juvenile               0.1182 0.0743 881   1.590  0.1121
 no. of flowers        -0.0115 0.0189 881  -0.609  0.5424
test(emtrends(vita_env_NCS_ZI_disp3, ~variable_typ|s_H_Kraut_mtrs, var = "s_H_Kraut_mtrs"))
s_H_Kraut_mtrs = -0.0395:
 variable_typ   s_H_Kraut_mtrs.trend     SE  df t.ratio p.value
 adult                       -0.1172 0.0719 881  -1.631  0.1033
 juvenile                    -0.1779 0.0842 881  -2.113  0.0349
 no. of flowers               0.0176 0.0221 881   0.796  0.4263
test(emtrends(vita_env_NCS_ZI_disp3, ~variable_typ|s_cover_grasses, var = "s_cover_grasses"))
s_cover_grasses = 0.00121:
 variable_typ   s_cover_grasses.trend     SE  df t.ratio p.value
 adult                         0.0597 0.0742 881   0.805  0.4210
 juvenile                      0.1653 0.0900 881   1.837  0.0666
 no. of flowers               -0.0125 0.0206 881  -0.607  0.5440

graph

grid.arrange(arrangeGrob(
             moist2  + labs(y = "performance D. majalis", x = "EIV moisture", title = ""), 
             nitrogen2  + labs(y = "performance D. majalis", x = "EIV nitrogen", title = ""), 
             reaction2  + labs(y = "performance D. majalis", x = "EIV reaction", title = ""), 
             mylegend,
             moss2 + labs(y = "performance D. majalis", x = "coverage moss layer", title = ""),
             grass2 + labs(y = "performance D. majalis", x = "coverage grasses (Poaceae)", title = ""),
             height2 + labs(y ="performance D. majalis", x= "vegetation height (m)", title = ""),
              ncol =4))

LS0tCnRpdGxlOiAiRWZmZWN0IG9mIGVudmlyb25tZW50YWwgdmFyaWFibGVzIG9uIHRyYWl0cyBvZiBELiBtYWphbGlzIgpvdXRwdXQ6CiAgaHRtbF9ub3RlYm9vazogZGVmYXVsdAogIHBkZl9kb2N1bWVudDogZGVmYXVsdAotLS0KCiMgMSkgUmVzdWx0IGZvciBBcHBlbmRpeCAtIENvcnJlbGF0aW9uIGJldHdlZW4gcGxhbnRzaXplIGFuZCBudW1iZXIgb2YgZmxvd2VycyAKIyMjIG1ldGhvZDogCi0gY2FsY3VsYXRlZCBwbGFudCBzaXplIGFjY29yZGlnIHRvIE1yb3o6IFRvdGFsIGxlYWZhcmVhIChwbGFudHNpemUgaGVyZWFmdGVyKSB3YXMgY2FsY3VsYXRlZCBieSBzdW1taW5nIHVwIHRoZSBwcm9kdWN0IDAuNcOXKGxlYWZsZW5ndGgpw5cobGVhZndpZHRoKSBmb3IgYWxsIGxlYXZlcyBvZiBhIHBsYW50IChLaW5kbG1hbm5hbmRCYWxvdW5vdsOhMTk5OTsgSmFuZcSNa292YWV0YWwuMjAwNikuIAotIHdlIG9ubHkgbWVhc3VyZWQgdHdvIGxlYXZlcyBwZXIgcGxhbnQgYW5kIGNvdW50ZWQgbnVtYmVyIG9mIGxlYXZlcywgdGh1cyB3ZSBtb2RpZmllZCB0aGUgZm9ybXVsYTogClBMQU5UU0laRSAyID0ge1soMC41IHggbG9nKEJMMSkgeCBsb2coQkIxKSkgKyAoMC41IFggbG9nKEJMMikgeCBsb2coQkIyKSldLzJ9Km51bWJlciBvZiBsZWF2ZXMgCi0gbG9nLXRyYW5zZm9ybWVkIHRvbyBrZWVwIFBsYW50c2l6ZSBpbiBjb21wYXJhYmxlIHNjYWxlcyAob3JkZXJzIG9mIG1hZ25pdHVkZSkgd2l0aCBuby4gb2YgYWR1bHQsIGp1dmVuaWxlcywgbm8ub2YgZmxvd2VycyBpbiBsYXRlciBtb2RlbAotIHByZWRpY3RvcjogUExBTlRTSVpFMgotIHJlc3BvbnNlOiBudW1iZXIgb2YgZmxvd2VycyAKLSBkYXRhc2V0OiBvbmx5IGZsb3dlcmluZy9hZHVsdCBpbmRpdmlkdWFscyBvZiBELiBtYWphbGlzOyBtZWFzdXJlZCBwbGFudHM6IDsgZ3JvdXBlZCBpbiB4eCBwbG90czsgZ3JvdXBlZCBpbiB4eHggc2l0ZXMgKHRob3NlIHdpdGggRC4gbWFqYWxpcyBvY2N1cmVuY2VzKQotIHdlIGNhbGN1bGF0ZWQgYSBsaW5lYXIgbWl4ZWQgbW9kZWwgdXNpbmcgbG1lNC1wYWNrYWdlLiAKLSBtb2RlbCBhc3VtcHRpb25zIHdlcmUgY2hlY2tlZCB2aWEgZ3JhZmljYWwgcmVzaWR1YWwgZGlhZ25vc3RpY3MuIAotIFRvIG1lZXQgbm9ybWFsIGRpc3RyaWJ1dGlvbiwgd2UgbG9nLXRyYW5zZm9ybWVkIHRoZSBjb250aW51b3VzIHJlc3BvbnNlIChudW1iZXIgb2YgZmxvd2VycykKLSBUbyBhY2NvdW50IGZvciBub24taW5kZXBlbmRlbmNlIG9mIHBsYW50cyBtZWFzdXJlZCBpbiB0aGUgc2FtZSBwbG90IGFuZCBpbiB0aGUgdGhlIHNhbWUgc2l0ZSwgd2Ugc2l0ZSBhcyBhIG5lc3RlZCByYW5kb20tZmFjdG9yLiAKLSBGLXZhbHVlIHdhcyBvYnRhaW5lZCB1c2luZyBjYXItcGFja2FnZSAoVHlwZSBJSSBXYWxkIEYgdGVzdHMgd2l0aCBLZW53YXJkLVJvZ2VyIGRmKS4gCi0gQWRqdXN0ZWQgUi1zcXVhcmUgd2FzIG9idGFpbmVkIHVzaW5nIHRoZSBNdU1JbiBwYWNrYWdlLiAKCiMjIyBtb2RlbCAyIC0gbG9nLXRyYW5zZm9ybSBwcmVkaWN0b3IgYW5kIHJlc3BvbnNlCiMjIyBwYWNrYWdlcwpgYGB7ciBpbmNsdWRlPUZ9CmxpYnJhcnkobG1lNCkKbGlicmFyeShjYXIpCmxpYnJhcnkoTXVNSW4pCmxpYnJhcnkoZWZmZWN0cykKYGBgCgpgYGB7cn0KU2l6ZUZsb3dlcnNfbG9nIDwtIGxtZXIobG9nMXAoQmx1ZXRlKSB+IFBMQU5UU0laRTJfbG9nICsgKDF8T3J0L05yX2luX1IpLCBkYXRhID0gZ2VuKQpgYGAKCiMjIyByZXNpZHVhbCBjaGVjayAKLSBsb29rcyBmaW5lCmBgYHtyfQpwbG90KFNpemVGbG93ZXJzX2xvZykKYGBgCgoKYGBge3J9CnFxbm9ybShyZXNpZHVhbHMoU2l6ZUZsb3dlcnNfbG9nKSkKcXFsaW5lKHJlc2lkdWFscyhTaXplRmxvd2Vyc19sb2cpKQpgYGAKCiMjIyByZXN1bHQKYGBge3J9CnN1bW1hcnkoU2l6ZUZsb3dlcnNfbG9nKQpgYGAKCiMjIyBGLXZhbHVlCmBgYHtyfQpBbm92YShTaXplRmxvd2Vyc19sb2csIHRlc3Quc3RhdGlzdGljID0gIkYiKQpgYGAKIyMjIGRldmlhbmNlIGV4cGxhaW5lZAotIDUwICUgb2YgZGV2aWFuY2UgaXMgZXhwbGFpbmVkCmBgYHtyfQpyLnNxdWFyZWRHTE1NKFNpemVGbG93ZXJzX2xvZykKYGBgCgojIyMgZ3JhcGgKYGBge3J9CnBsb3QocHJlZGljdG9yRWZmZWN0cyhTaXplRmxvd2Vyc19sb2cpLCB5bGFiID0gIm51bWJlciBvZiBmbG93ZXJzIChsb2cpIiwgeGxhYj0gInBsYW50IHNpemUiLCBtYWluID0gIiIpCmBgYAoKIyAyKSBSZXN1bHQgZm9yIG1haW4gUGFydCAtIEVmZmVjdCBvZiBlbnYuIHZhcnMgb24gZGlmZmVyZW50IHRyYWl0cyAvcGVyZm9ybWFuY2Ugb2YgRC4gbWFqYWxpcwojIyMgbWV0aG9kOiAKLSBzZWUgZHJhZnQxCi0gTkVXOiBpbnN0ZWFkIG9mIGp1c3QgY29tcGFyaW5nIHdoZXRoZXIgdGhlIGVmZmVjdCBvZiB0aGUgZW52aXJvbm1lbnRhbCB2YXJpYWJsZXMgZGVwZW5kcyBvbiB0aGUgbGlmZSBzdGF0dXMgKGFkdWx0L2p1dmVuaWxlKSwgaGVyZSBJIGNvbXBhcmUsIHdoZXRoZXIgdGhlcmUgaXMgYSBkaWZmZXJlbnQgZWZmZWN0IGRlcGVuZGluZyBvbiB0aGUgZm9jYWwgdHJhaXQKLSBmb2NhbCB0cmFpdHM6IAphKSBmZWN1bmRpdHkgLSBtZWFzdXJlZCB2aWEgbnVtYmVyIG9mIGZsb3dlcnMKYikgZ3Jvd3RoIC0gbWVhc3VyZWQgdmlhIHBsYW50IHNpemUgKGZvciBkZXRhaWxzIHJlZ2FyZGluZyBjYWxjdWxhdGlvbiBzZWUgcGFydCBhYm92ZSkKYykgc3Vydml2YWwgLSBtZWFzdXJlZCB2aWEgYWJ1bmRhbmNlIG9mIGFkdWx0CmQpIHJlY3J1aXRtZW50IC0gbWVhc3VyZWQgdmlhIGFidW5kYW5jZSBvZiBqdXZlbmlsZXMgCgojIyMgZmluYWwgbW9kZWwgCi0gbG9nMXAtdHJhbnNmb3JtIHRoZSByZXNwb25zZQotIHplcm8gaW5mbGF0aW9uIGZvcm11bGEgaW5jbHVkZWQsIGFjY291bnRpbmcgZm9yIHplcm8gY2x1c3RlcnMgZGVwZW5kaW5nIG9uIHRyYWl0IGFuZCBpbiBoaWdoIG5pdHJvZ2VuIGNvbmRpdGlvbnMKLSBhY2NvdW50IGZvciBkaWZmZXJlbmNlcyBpbiByZXNpZHVhbCB2YXJpYXRpb24gZGVwZW5kaW5nIG9uIHRoZSB0cmFpdCB2aWEgZGlzcGVyc2lvbiBmb3JtdWxhCgotLT4gcmVzaWR1YWxzIGxvb2sgZmluZSAKYGBge3J9CnZpdGFfZW52X1BTMl9aSV9kaXNwMiA8LSBnbG1tVE1CKGxvZzFwKHZhcmlhYmxlKSB+IHZhcmlhYmxlX3R5cCArCiAgICAgICAgICAgICAgICAgICAgICBzX0ZaVyArIAogICAgICAgICAgICAgICAgICAgICAgc19SWlcgKwogICAgICAgICAgICAgICAgICAgICAgc19OWlcgKyAKICAgICAgICAgICAgICAgICAgICAgIHNfRF9Nb29zICsKICAgICAgICAgICAgICAgICAgICAgIHNfY292ZXJfZ3Jhc3NlcyArIAogICAgICAgICAgICAgICAgICAgICAgc19IX0tyYXV0X210cnMgKwogICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVfdHlwOnNfRlpXICsKICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlX3R5cDpzX1JaVyArCiAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZV90eXA6c19OWlcgKwogICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVfdHlwOnNfRF9Nb29zICsKICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlX3R5cDpzX2NvdmVyX2dyYXNzZXMgKwogICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVfdHlwOnNfSF9LcmF1dF9tdHJzICsKICAgICAgICAgICAgICAgICAgICAgIHNfRlpXOnNfSF9LcmF1dF9tdHJzKyAKICAgICAgICAgICAgICAgICAgICAgICAgc19OWlc6c19IX0tyYXV0X210cnMgKwogICAgICAgICAgICAgICAgICAgICAgICBzX0ZaVzpzX2NvdmVyX2dyYXNzZXMrIAogICAgICAgICAgICAgICAgICAgICAgICBzX05aVzpzX2NvdmVyX2dyYXNzZXMrCiAgICAgICAgICAgICAgICAgICAgICAgICAgc19GWlc6c19OWlcgKyAKICAgICAgICAgICAgICAgICAgICAgICgxfHBsb3QpLAogICAgICAgICAgICAgICAgICAgICAgemlmb3JtdWxhID0gfnZhcmlhYmxlX3R5cCArIHNfTlpXLAogICAgICAgICAgICAgICAgICAgICAgZGlzcGZvcm11bGEgPSB+dmFyaWFibGVfdHlwLAogICAgICAgICAgICAgICAgICAgICBmYW1pbHk9Z2F1c3NpYW4obGluayA9ICJpZGVudGl0eSIpLAogICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHZpdGFzX1BTMl9sb2cpCgpyZXNfdml0YV9lbnZfUFMyX1pJX2Rpc3AyIDwtIHNpbXVsYXRlUmVzaWR1YWxzKHZpdGFfZW52X1BTMl9aSV9kaXNwMiwgcGxvdCA9IFQpCmBgYAoKIyMjIGNoZWNrIGZvciBtb2RlbCBtaXNzc3BlY2lmaWNhdGlvbiAKYGBge3J9CnBsb3QocmVzX3ZpdGFfZW52X1BTMl9aSV9kaXNwMiwgZm9ybSA9IHZpdGFzX1BTMl9sb2ckdmFyaWFibGVfdHlwKSAjIGxvb2tzIGdvb2QKYGBgCgpgYGB7cn0KcGxvdChyZXNfdml0YV9lbnZfUFMyX1pJX2Rpc3AyLCBmb3JtID0gdml0YXNfUFMyX2xvZyRzX0ZaVykgIyBnb29kCmBgYAoKYGBge3J9CnBsb3QocmVzX3ZpdGFfZW52X1BTMl9aSV9kaXNwMiwgZm9ybSA9IHZpdGFzX1BTMl9sb2ckc19OWlcpICMgZ29vZApgYGAKCmBgYHtyfQpwbG90KHJlc192aXRhX2Vudl9QUzJfWklfZGlzcDIsIGZvcm0gPSB2aXRhc19QUzJfbG9nJHNfUlpXKSAjIHZlcnkgZ29vZApgYGAKCmBgYHtyfQpwbG90KHJlc192aXRhX2Vudl9QUzJfWklfZGlzcDIsIGZvcm0gPSB2aXRhc19QUzJfbG9nJHNfSF9LcmF1dF9tdHJzKQojIGEgYml0IHdlaXJkLCBidXQgd2lnZ2VseSBsaW5lcyBhcmUgb2theSAoRi5IYXJ0aWcpLCBiZWNhdXNlIG5vIHBhdHR0ZXJuOyBrZWVwIGluIG1pbmQsIHdoZW4gaW50ZXJwcmV0aW5nIHRoZSB0cmVuZCBpbiBtYWluIHJlc3VsdHMKYGBgCgpgYGB7cn0KcGxvdChyZXNfdml0YV9lbnZfUFMyX1pJX2Rpc3AyLCBmb3JtID0gdml0YXNfUFMyX2xvZyRzX0RfTW9vcykgIyB0aXB0b3AKYGBgCgpgYGB7cn0KcGxvdChyZXNfdml0YV9lbnZfUFMyX1pJX2Rpc3AyLCBmb3JtID0gdml0YXNfUFMyX2xvZyRzX2NvdmVyX2dyYXNzZXMpICMgdmVyeSBnb29kCmBgYAoKIyMjIHJlc3VsdHMgZmluYWwgbW9kZWwgCmBgYHtyfQpzdW1tYXJ5KHZpdGFfZW52X1BTMl9aSV9kaXNwMikKYGBgCgoKIyMjIGludGVyYWN0aW9uIGFuYWx5c2lzCmBgYHtyfQp0ZXN0KGVtbWVhbnModml0YV9lbnZfUFMyX1pJX2Rpc3AyLCBwYWlyd2lzZSB+IHZhcmlhYmxlX3R5cHxzX0ZaVywgdmFyID0gInNfRlpXIikpCnRlc3QoZW1tZWFucyh2aXRhX2Vudl9QUzJfWklfZGlzcDIsIHBhaXJ3aXNlIH4gdmFyaWFibGVfdHlwfHNfUlpXLCB2YXIgPSAic19SWlciKSkKdGVzdChlbW1lYW5zKHZpdGFfZW52X1BTMl9aSV9kaXNwMiwgcGFpcndpc2UgfiB2YXJpYWJsZV90eXB8c19OWlcsIHZhciA9ICJzX05aVyIpKQp0ZXN0KGVtbWVhbnModml0YV9lbnZfUFMyX1pJX2Rpc3AyLCBwYWlyd2lzZSB+IHZhcmlhYmxlX3R5cHxzX0hfS3JhdXRfbXRycywgdmFyID0gInNfSF9LcmF1dF9tdHJzIikpCnRlc3QoZW1tZWFucyh2aXRhX2Vudl9QUzJfWklfZGlzcDIsIHBhaXJ3aXNlIH4gdmFyaWFibGVfdHlwfHNfRF9Nb29zLCB2YXIgPSAic19EX01vb3MiKSkKdGVzdChlbW1lYW5zKHZpdGFfZW52X1BTMl9aSV9kaXNwMiwgcGFpcndpc2UgfiB2YXJpYWJsZV90eXB8c19jb3Zlcl9ncmFzc2VzLCB2YXIgPSAic19jb3Zlcl9ncmFzc2VzIikpCmBgYAojIyMgc2lnbmlmaWNhbmNlLCBkaXJlY3Rpb24gYW5kIHNpemUgb2YgZW52aXJvbm1lbnRhbCBlZmZlY3RzIG9uIGVhY2ggdHJhaXQgKGV4dGVuc2lvbiBvZiBzdW1tYXJ5IC0gZWFzaWVyIHRvIHJlYWQpCmBgYHtyfQp0ZXN0KGVtdHJlbmRzKHZpdGFfZW52X1BTMl9aSV9kaXNwMiwgfnZhcmlhYmxlX3R5cHxzX05aVywgdmFyID0gInNfTlpXIikpCnRlc3QoZW10cmVuZHModml0YV9lbnZfUFMyX1pJX2Rpc3AyLCB+dmFyaWFibGVfdHlwfHNfRlpXLCB2YXIgPSAic19GWlciKSkKdGVzdChlbXRyZW5kcyh2aXRhX2Vudl9QUzJfWklfZGlzcDIsIH52YXJpYWJsZV90eXB8c19SWlcsIHZhciA9ICJzX1JaVyIpKQp0ZXN0KGVtdHJlbmRzKHZpdGFfZW52X1BTMl9aSV9kaXNwMiwgfnZhcmlhYmxlX3R5cHxzX0RfTW9vcywgdmFyID0gInNfRF9Nb29zIikpCnRlc3QoZW10cmVuZHModml0YV9lbnZfUFMyX1pJX2Rpc3AyLCB+dmFyaWFibGVfdHlwfHNfSF9LcmF1dF9tdHJzLCB2YXIgPSAic19IX0tyYXV0X210cnMiKSkKdGVzdChlbXRyZW5kcyh2aXRhX2Vudl9QUzJfWklfZGlzcDIsIH52YXJpYWJsZV90eXB8c19jb3Zlcl9ncmFzc2VzLCB2YXIgPSAic19jb3Zlcl9ncmFzc2VzIikpCmBgYAoKIyBncmFwaAotIG5vdGU6IHByZWRpY3RvcnMgYXJlIHN0aWxsIHNjYWxlZCAoVE9ETykKYGBge3J9CmdyaWQuYXJyYW5nZShhcnJhbmdlR3JvYigKICAgICAgICAgICAgIG1vaXN0MiAgKyBsYWJzKHkgPSAicGVyZm9ybWFuY2UgRC4gbWFqYWxpcyIsIHggPSAiRUlWIG1vaXN0dXJlIiwgdGl0bGUgPSAiIiksIAogICAgICAgICAgICAgbml0cm9nZW4yICArIGxhYnMoeSA9ICJwZXJmb3JtYW5jZSBELiBtYWphbGlzIiwgeCA9ICJFSVYgbml0cm9nZW4iLCB0aXRsZSA9ICIiKSwgCiAgICAgICAgICAgICByZWFjdGlvbjIgICsgbGFicyh5ID0gInBlcmZvcm1hbmNlIEQuIG1hamFsaXMiLCB4ID0gIkVJViByZWFjdGlvbiIsIHRpdGxlID0gIiIpLCAKICAgICAgICAgICAgIG15bGVnZW5kLAogICAgICAgICAgICAgbW9zczIgKyBsYWJzKHkgPSAicGVyZm9ybWFuY2UgRC4gbWFqYWxpcyIsIHggPSAiY292ZXJhZ2UgbW9zcyBsYXllciIsIHRpdGxlID0gIiIpLAogICAgICAgICAgICAgZ3Jhc3MyICsgbGFicyh5ID0gInBlcmZvcm1hbmNlIEQuIG1hamFsaXMiLCB4ID0gImNvdmVyYWdlIGdyYXNzZXMgKFBvYWNlYWUpIiwgdGl0bGUgPSAiIiksCiAgICAgICAgICAgICBoZWlnaHQyICsgbGFicyh5ID0icGVyZm9ybWFuY2UgRC4gbWFqYWxpcyIsIHg9ICJ2ZWdldGF0aW9uIGhlaWdodCAobSkiLCB0aXRsZSA9ICIiKSwKICAgICAgICAgICAgICBuY29sID00KSkKYGBgCgojIDMpIFJlc3VsdCBmb3IgbWFpbiBwYXJ0IC0gRWZmZWN0IG9mIGVudi4gdmFycyBvbiBhZHVsdHMsIGp1dmVuaWxlIGFuZCBudW1iZXIgb2YgZmxvd2VycyAobW9kZWwgd2l0aG91dCBwbGFudHNpemUpCgojIyMgbWV0aG9kOiAKLSBzZWUgZHJhZnQxCi0gTkVXOiBpbnN0ZWFkIG9mIGp1c3QgY29tcGFyaW5nIHdoZXRoZXIgdGhlIGVmZmVjdCBvZiB0aGUgZW52aXJvbm1lbnRhbCB2YXJpYWJsZXMgZGVwZW5kcyBvbiB0aGUgbGlmZSBzdGF0dXMgKGFkdWx0L2p1dmVuaWxlKSwgaGVyZSBJIGNvbXBhcmUsIHdoZXRoZXIgdGhlcmUgaXMgYSBkaWZmZXJlbnQgZWZmZWN0IGRlcGVuZGluZyBvbiB0aGUgZm9jYWwgdHJhaXQKLSBmb2NhbCB0cmFpdHM6IAphKSBmZWN1bmRpdHkgLSBtZWFzdXJlZCB2aWEgbnVtYmVyIG9mIGZsb3dlcnMKYikgTk9UIElOQ0xVREVEIEhFUkUhIGdyb3d0aCAtIG1lYXN1cmVkIHZpYSBwbGFudCBzaXplIChmb3IgZGV0YWlscyByZWdhcmRpbmcgY2FsY3VsYXRpb24gc2VlIHBhcnQgYWJvdmUpCmMpIHN1cnZpdmFsIC0gbWVhc3VyZWQgdmlhIGFidW5kYW5jZSBvZiBhZHVsdApkKSByZWNydWl0bWVudCAtIG1lYXN1cmVkIHZpYSBhYnVuZGFuY2Ugb2YganV2ZW5pbGVzIAoKIyMjIGZpbmFsIG1vZGVsIAotIGFkdmFudGFnZSBjb21wYXJlZCB0byBwcmV2aW91cyBtb2RlbCB3aXRoIDQgdHJhaXRzOiAtIGVhc2llciB0byBjb252ZXk7IGxvZzFwLXRyYXNuZm9ybWF0aW9uIG9mIFBMQU5UU0laRSAoImRvdWJsZSBsb2ctdHJhZm8iKSBub3QgbmVjZXNzYXJ5OyAKCi0gemVybyBpbmZsYXRpb24gZm9ybXVsYSBpbmNsdWRlZCwgYWNjb3VudGluZyBmb3IgemVybyBjbHVzdGVycyBkZXBlbmRpbmcgb24gdHJhaXQgYW5kIGluIGhpZ2ggbml0cm9nZW4gY29uZGl0aW9ucwotIGFjY291bnQgZm9yIGRpZmZlcmVuY2VzIGluIHJlc2lkdWFsIHZhcmlhdGlvbiBkZXBlbmRpbmcgb24gdGhlIHRyYWl0IHZpYSBkaXNwZXJzaW9uIGZvcm11bGEKCi0tPiByZXNpZHVhbHMgbG9vayBmaW5lIChub3Qgc2hvd24gaGVyZSkKYGBge3J9CnN1bW1hcnkodml0YV9lbnZfTkNTX1pJX2Rpc3AzKQpgYGAKYGBge3J9CnRlc3QoZW1tZWFucyh2aXRhX2Vudl9OQ1NfWklfZGlzcDMsIHBhaXJ3aXNlIH4gdmFyaWFibGVfdHlwfHNfRlpXLCB2YXIgPSAic19GWlciKSkKdGVzdChlbW1lYW5zKHZpdGFfZW52X05DU19aSV9kaXNwMywgcGFpcndpc2UgfiB2YXJpYWJsZV90eXB8c19SWlcsIHZhciA9ICJzX1JaVyIpKQp0ZXN0KGVtbWVhbnModml0YV9lbnZfTkNTX1pJX2Rpc3AzLCBwYWlyd2lzZSB+IHZhcmlhYmxlX3R5cHxzX05aVywgdmFyID0gInNfTlpXIikpCnRlc3QoZW1tZWFucyh2aXRhX2Vudl9OQ1NfWklfZGlzcDMsIHBhaXJ3aXNlIH4gdmFyaWFibGVfdHlwfHNfSF9LcmF1dF9tdHJzLCB2YXIgPSAic19IX0tyYXV0X210cnMiKSkKdGVzdChlbW1lYW5zKHZpdGFfZW52X05DU19aSV9kaXNwMywgcGFpcndpc2UgfiB2YXJpYWJsZV90eXB8c19EX01vb3MsIHZhciA9ICJzX0RfTW9vcyIpKQp0ZXN0KGVtbWVhbnModml0YV9lbnZfTkNTX1pJX2Rpc3AzLCBwYWlyd2lzZSB+IHZhcmlhYmxlX3R5cHxzX2NvdmVyX2dyYXNzZXMsIHZhciA9ICJzX2NvdmVyX2dyYXNzZXMiKSkKYGBgCgpgYGB7cn0KdGVzdChlbXRyZW5kcyh2aXRhX2Vudl9OQ1NfWklfZGlzcDMsIH52YXJpYWJsZV90eXB8c19OWlcsIHZhciA9ICJzX05aVyIpKQp0ZXN0KGVtdHJlbmRzKHZpdGFfZW52X05DU19aSV9kaXNwMywgfnZhcmlhYmxlX3R5cHxzX0ZaVywgdmFyID0gInNfRlpXIikpCnRlc3QoZW10cmVuZHModml0YV9lbnZfTkNTX1pJX2Rpc3AzLCB+dmFyaWFibGVfdHlwfHNfUlpXLCB2YXIgPSAic19SWlciKSkKdGVzdChlbXRyZW5kcyh2aXRhX2Vudl9OQ1NfWklfZGlzcDMsIH52YXJpYWJsZV90eXB8c19EX01vb3MsIHZhciA9ICJzX0RfTW9vcyIpKQp0ZXN0KGVtdHJlbmRzKHZpdGFfZW52X05DU19aSV9kaXNwMywgfnZhcmlhYmxlX3R5cHxzX0hfS3JhdXRfbXRycywgdmFyID0gInNfSF9LcmF1dF9tdHJzIikpCnRlc3QoZW10cmVuZHModml0YV9lbnZfTkNTX1pJX2Rpc3AzLCB+dmFyaWFibGVfdHlwfHNfY292ZXJfZ3Jhc3NlcywgdmFyID0gInNfY292ZXJfZ3Jhc3NlcyIpKQpgYGAKCiMgZ3JhcGggCi0gcHJlZGljdG9yIG5vdCB5ZXQgdW4tc2NhbGVkCmBgYHtyfQpncmlkLmFycmFuZ2UoYXJyYW5nZUdyb2IoCiAgICAgICAgICAgICBtb2lzdDIgICsgbGFicyh5ID0gInBlcmZvcm1hbmNlIEQuIG1hamFsaXMiLCB4ID0gIkVJViBtb2lzdHVyZSIsIHRpdGxlID0gIiIpLCAKICAgICAgICAgICAgIG5pdHJvZ2VuMiAgKyBsYWJzKHkgPSAicGVyZm9ybWFuY2UgRC4gbWFqYWxpcyIsIHggPSAiRUlWIG5pdHJvZ2VuIiwgdGl0bGUgPSAiIiksIAogICAgICAgICAgICAgcmVhY3Rpb24yICArIGxhYnMoeSA9ICJwZXJmb3JtYW5jZSBELiBtYWphbGlzIiwgeCA9ICJFSVYgcmVhY3Rpb24iLCB0aXRsZSA9ICIiKSwgCiAgICAgICAgICAgICBteWxlZ2VuZCwKICAgICAgICAgICAgIG1vc3MyICsgbGFicyh5ID0gInBlcmZvcm1hbmNlIEQuIG1hamFsaXMiLCB4ID0gImNvdmVyYWdlIG1vc3MgbGF5ZXIiLCB0aXRsZSA9ICIiKSwKICAgICAgICAgICAgIGdyYXNzMiArIGxhYnMoeSA9ICJwZXJmb3JtYW5jZSBELiBtYWphbGlzIiwgeCA9ICJjb3ZlcmFnZSBncmFzc2VzIChQb2FjZWFlKSIsIHRpdGxlID0gIiIpLAogICAgICAgICAgICAgaGVpZ2h0MiArIGxhYnMoeSA9InBlcmZvcm1hbmNlIEQuIG1hamFsaXMiLCB4PSAidmVnZXRhdGlvbiBoZWlnaHQgKG0pIiwgdGl0bGUgPSAiIiksCiAgICAgICAgICAgICAgbmNvbCA9NCkpCmBgYAoK