Response to Question 4
Thank you for the opportunity to further clarify our conditional
effects. The models you mention in your review are the precise models we
used to analyze the data:
\[
DV_{\text{AttrDom}} = a + b_1 \times LT + b_2 \times ST + b_3 \times
Gender + b_4 \times (LT \times Gender) + b_5 \times (ST \times Gender) +
e
\]
\[
DV_{\text{AttrPres}} = a + b_1 \times LT + b_2 \times ST + b_3 \times
Gender + b_4 \times (LT \times Gender) + b_5 \times (ST \times Gender) +
e
\]
Including an interaction term in a regression framework substantially
changes the interpretation of the coefficients. Unlike in an ANOVA
framework—where main effects are reported separately and a significant
interaction must be probed with follow-up pairwise
comparisons—regression models with interactions directly yield
conditional effects. In our model, 𝑏1(the effect of LTMO on attraction
to dominance) represents the conditional effect for men (gender = 0, as
gender was dummy-coded with male = 0 and female = 1). The interaction
coefficient, 𝑏4, indicates how much this relationship changes for women
(gender = 1). Thus, 𝑏1captures the conditional effect for men, while
𝑏1+𝑏4 captures the conditional effect for women. In other words, the
regression output itself provides the conditional effects for both
genders, eliminating the need for additional pairwise comparisons. For
clarity, we provide an empirical demonstration of this below.
Empirical demonstration of our findings:
In the manuscript we state the following when reporting attraction to
prestige:
“long-term mating orientation significantly positively predicted
attraction to prestige for both men, β = .19, t(1193) = 4.30, p <
.001, and women, β = .41, t(1193) = 9.00, p < .001, albeit
significantly stronger for women, β = -.23, t(1193) = -3.59, p <
.001.” (p. 10).
To establish this, we constructed the following model:
# to report standardized betas, all continuous variables are standardized prior to entry into model:
data$pres.attract.TOT.z <- scale(data$pres.attract.TOT)[,1]
data$STMS_z <- scale(data$STMS)[,1]
data$LTMS_z <- scale(data$LTMS)[,1]
mod <- lm(pres.attract.TOT.z ~
LTMS_z+
STMS_z+
sex+
LTMS_z * sex+
STMS_z * sex,
data = data)
summary(mod)
##
## Call:
## lm(formula = pres.attract.TOT.z ~ LTMS_z + STMS_z + sex + LTMS_z *
## sex + STMS_z * sex, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.6446 -0.6014 0.0569 0.6090 2.4538
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.06193 0.03731 -1.660 0.097154 .
## LTMS_z 0.18711 0.04357 4.295 0.0000188947742 ***
## STMS_z 0.32413 0.04717 6.872 0.0000000000102 ***
## sexFemale 0.10190 0.05788 1.761 0.078557 .
## LTMS_z:sexFemale 0.22788 0.06343 3.592 0.000341 ***
## STMS_z:sexFemale 0.03613 0.06477 0.558 0.577051
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.9452 on 1193 degrees of freedom
## Multiple R-squared: 0.1103, Adjusted R-squared: 0.1065
## F-statistic: 29.57 on 5 and 1193 DF, p-value: < 0.00000000000000022
In this model, the relationship between long-term mating orientation
and attraction to prestige for males is .19. This is reflected
in b1. As indicated by the interaction term b4, the effect was stronger
for females by precisely β = .23. As such, the conditional effect for
females is β=.19+.23 = .41.
There are several ways to double check this. First, we can switch the
dummy-coding (i.e., change the reference group), such that females=0 and
males=1. By doing this, b1 becomes the conditional effect for females,
and it is indeed β = .41.
#relevel the dummy coded gender variable such that female = 0; male = 1
data <- within(data, sex <- relevel(factor(sex), ref = "Female"))
mod <- lm(pres.attract.TOT.z ~
LTMS_z+
STMS_z+
sex+
LTMS_z * sex+
STMS_z * sex,
data = data)
summary(mod)
##
## Call:
## lm(formula = pres.attract.TOT.z ~ LTMS_z + STMS_z + sex + LTMS_z *
## sex + STMS_z * sex, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.6446 -0.6014 0.0569 0.6090 2.4538
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.03997 0.04425 0.903 0.366589
## LTMS_z 0.41499 0.04610 9.001 < 0.0000000000000002 ***
## STMS_z 0.36026 0.04438 8.117 0.00000000000000118 ***
## sexMale -0.10190 0.05788 -1.761 0.078557 .
## LTMS_z:sexMale -0.22788 0.06343 -3.592 0.000341 ***
## STMS_z:sexMale -0.03613 0.06477 -0.558 0.577051
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.9452 on 1193 degrees of freedom
## Multiple R-squared: 0.1103, Adjusted R-squared: 0.1065
## F-statistic: 29.57 on 5 and 1193 DF, p-value: < 0.00000000000000022
Another way we can check this is by directly conducting simple slopes
using emmeans package in R.
# Fit standardized model
mod <- lm(pres.attract.TOT.z ~
LTMS_z+
STMS_z+
sex+
LTMS_z * sex+
STMS_z * sex,
data = data)
lt_slopes <- emtrends(mod, ~ sex, var = "LTMS_z")
print(lt_slopes)
## sex LTMS_z.trend SE df lower.CL upper.CL
## Female 0.415 0.0461 1193 0.325 0.505
## Male 0.187 0.0436 1193 0.102 0.273
##
## Confidence level used: 0.95
Indeed, simple slopes analysis reveals the same effects as listed
above.
As a final method to test this, we can subset the data to look at
data from males and females separately, conducting separate linear
regressions in each subset:
###
### just males
###
mod <- lm(pres.attract.TOT.z ~
LTMS_z+STMS_z,
data = subset(data, sex == "Male"))
summary(mod)
##
## Call:
## lm(formula = pres.attract.TOT.z ~ LTMS_z + STMS_z, data = subset(data,
## sex == "Male"))
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.3703 -0.5999 0.0569 0.6172 2.4538
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.06193 0.03763 -1.646 0.1
## LTMS_z 0.18711 0.04395 4.258 0.0000234490183 ***
## STMS_z 0.32413 0.04758 6.812 0.0000000000207 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.9535 on 701 degrees of freedom
## Multiple R-squared: 0.06824, Adjusted R-squared: 0.06559
## F-statistic: 25.67 on 2 and 701 DF, p-value: 0.00000000001739
###
### just females
###
mod <- lm(pres.attract.TOT.z ~
LTMS_z+STMS_z,
data = subset(data, sex == "Female"))
summary(mod)
##
## Call:
## lm(formula = pres.attract.TOT.z ~ LTMS_z + STMS_z, data = subset(data,
## sex == "Female"))
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.6446 -0.6030 0.0551 0.5993 2.0916
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.03997 0.04369 0.915 0.361
## LTMS_z 0.41499 0.04553 9.115 < 0.0000000000000002 ***
## STMS_z 0.36026 0.04383 8.220 0.00000000000000182 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.9334 on 492 degrees of freedom
## Multiple R-squared: 0.1646, Adjusted R-squared: 0.1612
## F-statistic: 48.47 on 2 and 492 DF, p-value: < 0.00000000000000022
You will note that in all cases the conditional effect for males is
(β = .19), and females (β = .41) are identical. Furthermore, in the
original analysis and the simple slope analysis, the t value, df, and p
value are identical because they are testing the same thing (note: these
slightly change when we subset by gender because we are no longer using
a pooled error term).
Thus, there is no need to further probe the interaction for the
conditional effects, as the interaction output directly reports the
conditional effects.
Nonetheless, we agree that our manuscript needs several changes to
ensure the clarity of our analysis pipeline and findings.
First, we now specify that gender was dummy
coded:
“Each model included long-term mating orientation, short-term mating
orientation, participant gender (dummy coded: 0 = male, 1 = female), and
two interaction terms: participant gender × long-term mating orientation
and participant gender × short-term mating orientation”
(p. 9).
Second, we now explicitly state:
“When significant interactions emerge, we report simple slopes
analyses that depict the conditional effects separately for men and
women.” (p. 9).
Third, we now explicitly state:
“All continuous variables were standardized prior to entry into the
model.” (pp. 8 and 9).
Finally, we now use a more traditional ordering
when presenting our results, first establishing the overall interaction
and then reporting the conditional effects.
LS0tCnRpdGxlOiAiU1BQUyBSZXZpc2lvbiIKYXV0aG9yOiAiWmFrIFdpdGtvd2VyIgpvdXRwdXQ6CiAgaHRtbF9kb2N1bWVudDoKICAgIHRoZW1lOiBsdW1lbgogICAgdG9jOiB5ZXMKICAgIHRvY19mbG9hdDogeWVzCiAgICBoaWdobGlnaHQ6IHplbmJ1cm4KICAgIGNvZGVfZG93bmxvYWQ6IHllcwogICAgY29kZV9mb2xkaW5nOiBzaG93CiAgcGRmX2RvY3VtZW50OgogICAgdG9jOiBubwogICAgbGF0ZXhfZW5naW5lOiB4ZWxhdGV4ICAgIyBnb29kIGZvciBVVEYtOAogICAga2VlcF90ZXg6IHRydWUKICAgIGhpZ2hsaWdodDogdGFuZ28KLS0tCgpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0KCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkKbGlicmFyeShwc3ljaCkKbGlicmFyeShyZWFkcikKbGlicmFyeShnZ3Bsb3QyKQpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeShzdHJpbmdyKQpsaWJyYXJ5KGxtZTQpCmxpYnJhcnkobG1lclRlc3QpCmxpYnJhcnkobGF2YWFuKQpsaWJyYXJ5KGVmZmVjdHNpemUpCm9wdGlvbnMoc2NpcGVuPTk5OSkgCmxpYnJhcnkoZW1tZWFucykKCgpkYXRhIDwtIHJlYWRfY3N2KCJ+L0Ryb3Bib3gvUmVzZWFyY2gvU3RhdHVzIGFuZCBhdHRyYWN0aW9uL0RBVEEgRk9SIE9TRi9CcmluZyBpbiBHZW5kZXIgaW50ZXJhY3Rpb25zL0ZpbmFsL1N0dWR5IDEuY3N2IikKCmRhdGE8LXN1YnNldChkYXRhLCBhdHRlbnRpb24xa2VlcCA9PSAxKQoKZGF0YSRNTy43LlJDPC0oKGRhdGEkTU8uNykqLTEpKzgKZGF0YSRNTy4xMC5SQzwtKChkYXRhJE1PLjEwKSotMSkrOApkYXRhJE1PLjE0LlJDPC0oKGRhdGEkTU8uMTQpKi0xKSs4CmRhdGEkTU8uMTUuUkM8LSgoZGF0YSRNTy4xNSkqLTEpKzgKZGF0YSRNTy4xNy5SQzwtKChkYXRhJE1PLjE3KSotMSkrOApkYXRhJE1PLjE5LlJDPC0oKGRhdGEkTU8uMTkpKi0xKSs4CgpkYXRhJFNUTVM8LXJvd01lYW5zKGNiaW5kKGRhdGEkTU8uMSwKICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhJE1PLjIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSRNTy4zLAogICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEkTU8uNCwKICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhJE1PLjUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSRNTy42LAogICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEkTU8uNy5SQywKICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhJE1PLjgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSRNTy45LAogICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEkTU8uMTAuUkMpKQoKZGF0YSRMVE1TPC1yb3dNZWFucyhjYmluZChkYXRhJE1PLjExLAogICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEkTU8uMTIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSRNTy4xMywKICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhJE1PLjE0LlJDLAogICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEkTU8uMTUuUkMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSRNTy4xNiwKICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhJE1PLjE3LlJDLAogICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEkTU8uMTgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSRNTy4xOS5SQywKICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhJE1PLjIwKSkKCmRhdGEkZG9tLmF0dHJhY3QuVE9UPC1yb3dNZWFucyhjYmluZChkYXRhJGRvbTEsZGF0YSRkb20yLCBkYXRhJGRvbTMsIGRhdGEkZG9tNCkpCmRhdGEkcHJlcy5hdHRyYWN0LlRPVDwtcm93TWVhbnMoY2JpbmQoZGF0YSRwcmVzMSxkYXRhJHByZXMyLCBkYXRhJHByZXMzLCBkYXRhJHByZXM0KSkKZGF0YSA8LSB0aWJibGU6OnJvd2lkX3RvX2NvbHVtbihkYXRhLCAiSUQiKQoKZGF0YSRzZXhbZGF0YSRzZXggPT0gMV08LSJNYWxlIgpkYXRhJHNleFtkYXRhJHNleCA9PSAyXTwtIkZlbWFsZSIKCmRhdGEgPC0gd2l0aGluKGRhdGEsIHNleCA8LSByZWxldmVsKGZhY3RvcihzZXgpLCByZWYgPSAiTWFsZSIpKQpgYGAKCiMgUmVzcG9uc2UgdG8gUXVlc3Rpb24gNAoKVGhhbmsgeW91IGZvciB0aGUgb3Bwb3J0dW5pdHkgdG8gZnVydGhlciBjbGFyaWZ5IG91ciBjb25kaXRpb25hbCBlZmZlY3RzLiBUaGUgbW9kZWxzIHlvdSBtZW50aW9uIGluIHlvdXIgcmV2aWV3IGFyZSB0aGUgcHJlY2lzZSBtb2RlbHMgd2UgdXNlZCB0byBhbmFseXplIHRoZSBkYXRhOgoKJCQKRFZfe1x0ZXh0e0F0dHJEb219fSA9IGEgKyBiXzEgXHRpbWVzIExUICsgYl8yIFx0aW1lcyBTVCArIGJfMyBcdGltZXMgR2VuZGVyICsgYl80IFx0aW1lcyAoTFQgXHRpbWVzIEdlbmRlcikgKyBiXzUgXHRpbWVzIChTVCBcdGltZXMgR2VuZGVyKSArIGUKJCQKCiQkCkRWX3tcdGV4dHtBdHRyUHJlc319ID0gYSArIGJfMSBcdGltZXMgTFQgKyBiXzIgXHRpbWVzIFNUICsgYl8zIFx0aW1lcyBHZW5kZXIgKyBiXzQgXHRpbWVzIChMVCBcdGltZXMgR2VuZGVyKSArIGJfNSBcdGltZXMgKFNUIFx0aW1lcyBHZW5kZXIpICsgZQokJAoKSW5jbHVkaW5nIGFuIGludGVyYWN0aW9uIHRlcm0gaW4gYSByZWdyZXNzaW9uIGZyYW1ld29yayBzdWJzdGFudGlhbGx5IGNoYW5nZXMgdGhlIGludGVycHJldGF0aW9uIG9mIHRoZSBjb2VmZmljaWVudHMuIFVubGlrZSBpbiBhbiBBTk9WQSBmcmFtZXdvcmvigJR3aGVyZSBtYWluIGVmZmVjdHMgYXJlIHJlcG9ydGVkIHNlcGFyYXRlbHkgYW5kIGEgc2lnbmlmaWNhbnQgaW50ZXJhY3Rpb24gbXVzdCBiZSBwcm9iZWQgd2l0aCBmb2xsb3ctdXAgcGFpcndpc2UgY29tcGFyaXNvbnPigJRyZWdyZXNzaW9uIG1vZGVscyB3aXRoIGludGVyYWN0aW9ucyBkaXJlY3RseSB5aWVsZCBjb25kaXRpb25hbCBlZmZlY3RzLiBJbiBvdXIgbW9kZWwsIPCdkY8xKHRoZSBlZmZlY3Qgb2YgTFRNTyBvbiBhdHRyYWN0aW9uIHRvIGRvbWluYW5jZSkgcmVwcmVzZW50cyB0aGUgY29uZGl0aW9uYWwgZWZmZWN0IGZvciBtZW4gKGdlbmRlciA9IDAsIGFzIGdlbmRlciB3YXMgZHVtbXktY29kZWQgd2l0aCBtYWxlID0gMCBhbmQgZmVtYWxlID0gMSkuIFRoZSBpbnRlcmFjdGlvbiBjb2VmZmljaWVudCwg8J2RjzQsIGluZGljYXRlcyBob3cgbXVjaCB0aGlzIHJlbGF0aW9uc2hpcCBjaGFuZ2VzIGZvciB3b21lbiAoZ2VuZGVyID0gMSkuIFRodXMsIPCdkY8xY2FwdHVyZXMgdGhlIGNvbmRpdGlvbmFsIGVmZmVjdCBmb3IgbWVuLCB3aGlsZSDwnZGPMSvwnZGPNCBjYXB0dXJlcyB0aGUgY29uZGl0aW9uYWwgZWZmZWN0IGZvciB3b21lbi4gSW4gb3RoZXIgd29yZHMsIHRoZSByZWdyZXNzaW9uIG91dHB1dCBpdHNlbGYgcHJvdmlkZXMgdGhlIGNvbmRpdGlvbmFsIGVmZmVjdHMgZm9yIGJvdGggZ2VuZGVycywgZWxpbWluYXRpbmcgdGhlIG5lZWQgZm9yIGFkZGl0aW9uYWwgcGFpcndpc2UgY29tcGFyaXNvbnMuIEZvciBjbGFyaXR5LCB3ZSBwcm92aWRlIGFuIGVtcGlyaWNhbCBkZW1vbnN0cmF0aW9uIG9mIHRoaXMgYmVsb3cuCgojIEVtcGlyaWNhbCBkZW1vbnN0cmF0aW9uIG9mIG91ciBmaW5kaW5nczoKCkluIHRoZSBtYW51c2NyaXB0IHdlIHN0YXRlIHRoZSBmb2xsb3dpbmcgd2hlbiByZXBvcnRpbmcgYXR0cmFjdGlvbiB0byBwcmVzdGlnZToKCuKAnGxvbmctdGVybSBtYXRpbmcgb3JpZW50YXRpb24gc2lnbmlmaWNhbnRseSBwb3NpdGl2ZWx5IHByZWRpY3RlZCBhdHRyYWN0aW9uIHRvIHByZXN0aWdlIGZvciBib3RoIG1lbiwgzrIgPSAuMTksIHQoMTE5MykgPSA0LjMwLCBwIDwgLjAwMSwgYW5kIHdvbWVuLCDOsiA9IC40MSwgdCgxMTkzKSA9IDkuMDAsIHAgPCAuMDAxLCBhbGJlaXQgc2lnbmlmaWNhbnRseSBzdHJvbmdlciBmb3Igd29tZW4sIM6yID0gLS4yMywgdCgxMTkzKSA9IC0zLjU5LCBwIDwgLjAwMS4g4oCdIChwLiAxMCkuIAoKVG8gZXN0YWJsaXNoIHRoaXMsIHdlIGNvbnN0cnVjdGVkIHRoZSBmb2xsb3dpbmcgbW9kZWw6IAoKYGBge3IgfQojIHRvIHJlcG9ydCBzdGFuZGFyZGl6ZWQgYmV0YXMsIGFsbCBjb250aW51b3VzIHZhcmlhYmxlcyBhcmUgc3RhbmRhcmRpemVkIHByaW9yIHRvIGVudHJ5IGludG8gbW9kZWw6CmRhdGEkcHJlcy5hdHRyYWN0LlRPVC56ICA8LSBzY2FsZShkYXRhJHByZXMuYXR0cmFjdC5UT1QpWywxXQpkYXRhJFNUTVNfeiA8LSBzY2FsZShkYXRhJFNUTVMpWywxXQpkYXRhJExUTVNfeiA8LSBzY2FsZShkYXRhJExUTVMpWywxXQoKCm1vZCA8LSBsbShwcmVzLmF0dHJhY3QuVE9ULnogfiAKICAgICAgICAgICAgTFRNU196KyAKICAgICAgICAgICAgU1RNU196KyAKICAgICAgICAgICAgc2V4KyAKICAgICAgICAgICAgTFRNU196ICogc2V4KwogICAgICAgICAgICBTVE1TX3ogKiBzZXgsCiAgICAgICAgICBkYXRhID0gZGF0YSkKc3VtbWFyeShtb2QpCmBgYAoKCkluIHRoaXMgbW9kZWwsIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBsb25nLXRlcm0gbWF0aW5nIG9yaWVudGF0aW9uIGFuZCBhdHRyYWN0aW9uIHRvIHByZXN0aWdlIGZvciAqbWFsZXMqIGlzIC4xOS4gVGhpcyBpcyByZWZsZWN0ZWQgaW4gYjEuIEFzIGluZGljYXRlZCBieSB0aGUgaW50ZXJhY3Rpb24gdGVybSBiNCwgdGhlIGVmZmVjdCB3YXMgc3Ryb25nZXIgZm9yIGZlbWFsZXMgYnkgcHJlY2lzZWx5IM6yID0gLjIzLiBBcyBzdWNoLCB0aGUgY29uZGl0aW9uYWwgZWZmZWN0IGZvciAqZmVtYWxlcyogaXMgzrI9LjE5Ky4yMyA9ICoqLjQxKiouIAoKVGhlcmUgYXJlIHNldmVyYWwgd2F5cyB0byBkb3VibGUgY2hlY2sgdGhpcy4gRmlyc3QsIHdlIGNhbiBzd2l0Y2ggdGhlIGR1bW15LWNvZGluZyAoaS5lLiwgY2hhbmdlIHRoZSByZWZlcmVuY2UgZ3JvdXApLCBzdWNoIHRoYXQgZmVtYWxlcz0wIGFuZCBtYWxlcz0xLiBCeSBkb2luZyB0aGlzLCBiMSBiZWNvbWVzIHRoZSBjb25kaXRpb25hbCBlZmZlY3QgZm9yIGZlbWFsZXMsIGFuZCBpdCBpcyBpbmRlZWQgzrIgPSAuNDEuIAoKYGBge3IgfQojcmVsZXZlbCB0aGUgZHVtbXkgY29kZWQgZ2VuZGVyIHZhcmlhYmxlIHN1Y2ggdGhhdCBmZW1hbGUgPSAwOyBtYWxlID0gMQpkYXRhIDwtIHdpdGhpbihkYXRhLCBzZXggPC0gcmVsZXZlbChmYWN0b3Ioc2V4KSwgcmVmID0gIkZlbWFsZSIpKQoKbW9kIDwtIGxtKHByZXMuYXR0cmFjdC5UT1QueiB+IAogICAgICAgICAgICBMVE1TX3orCiAgICAgICAgICAgIFNUTVNfeisKICAgICAgICAgICAgc2V4KwogICAgICAgICAgICBMVE1TX3ogKiBzZXgrCiAgICAgICAgICAgIFNUTVNfeiAqIHNleCwKICAgICAgICAgIGRhdGEgPSBkYXRhKQpzdW1tYXJ5KG1vZCkKYGBgCgoKQW5vdGhlciB3YXkgd2UgY2FuIGNoZWNrIHRoaXMgaXMgYnkgZGlyZWN0bHkgY29uZHVjdGluZyBzaW1wbGUgc2xvcGVzIHVzaW5nIGVtbWVhbnMgcGFja2FnZSBpbiBSLgoKYGBge3IgfQoKIyBGaXQgc3RhbmRhcmRpemVkIG1vZGVsCm1vZCA8LSBsbShwcmVzLmF0dHJhY3QuVE9ULnogfiAKICAgICAgICAgICAgTFRNU196KwogICAgICAgICAgICBTVE1TX3orCiAgICAgICAgICAgIHNleCsKICAgICAgICAgICAgTFRNU196ICogc2V4KwogICAgICAgICAgICBTVE1TX3ogKiBzZXgsCiAgICAgICAgICBkYXRhID0gZGF0YSkKCgpsdF9zbG9wZXMgPC0gZW10cmVuZHMobW9kLCB+IHNleCwgdmFyID0gIkxUTVNfeiIpCnByaW50KGx0X3Nsb3BlcykKCgpgYGAKSW5kZWVkLCBzaW1wbGUgc2xvcGVzIGFuYWx5c2lzIHJldmVhbHMgdGhlIHNhbWUgZWZmZWN0cyBhcyBsaXN0ZWQgYWJvdmUuIAoKQXMgYSBmaW5hbCBtZXRob2QgdG8gdGVzdCB0aGlzLCB3ZSBjYW4gc3Vic2V0IHRoZSBkYXRhIHRvIGxvb2sgYXQgZGF0YSBmcm9tIG1hbGVzIGFuZCBmZW1hbGVzIHNlcGFyYXRlbHksIGNvbmR1Y3Rpbmcgc2VwYXJhdGUgbGluZWFyIHJlZ3Jlc3Npb25zIGluIGVhY2ggc3Vic2V0OiAKCmBgYHtyIH0KIyMjCiMjIyBqdXN0IG1hbGVzCiMjIwptb2QgPC0gbG0ocHJlcy5hdHRyYWN0LlRPVC56IH4gCiAgICAgICAgICAgIExUTVNfeitTVE1TX3osCiAgICAgICAgICBkYXRhID0gc3Vic2V0KGRhdGEsIHNleCA9PSAiTWFsZSIpKQpzdW1tYXJ5KG1vZCkKCgoKIyMjCiMjIyBqdXN0IGZlbWFsZXMKIyMjCm1vZCA8LSBsbShwcmVzLmF0dHJhY3QuVE9ULnogfiAKICAgICAgICAgICAgTFRNU196K1NUTVNfeiwKICAgICAgICAgIGRhdGEgPSBzdWJzZXQoZGF0YSwgc2V4ID09ICJGZW1hbGUiKSkKCnN1bW1hcnkobW9kKQpgYGAKCllvdSB3aWxsIG5vdGUgdGhhdCBpbiBhbGwgY2FzZXMgdGhlIGNvbmRpdGlvbmFsIGVmZmVjdCBmb3IgbWFsZXMgaXMgKM6yID0gLjE5KSwgYW5kIGZlbWFsZXMgKM6yID0gLjQxKSBhcmUgaWRlbnRpY2FsLiBGdXJ0aGVybW9yZSwgaW4gdGhlIG9yaWdpbmFsIGFuYWx5c2lzIGFuZCB0aGUgc2ltcGxlIHNsb3BlIGFuYWx5c2lzLCB0aGUgdCB2YWx1ZSwgZGYsIGFuZCBwIHZhbHVlIGFyZSBpZGVudGljYWwgYmVjYXVzZSB0aGV5IGFyZSB0ZXN0aW5nIHRoZSBzYW1lIHRoaW5nIChub3RlOiB0aGVzZSBzbGlnaHRseSBjaGFuZ2Ugd2hlbiB3ZSBzdWJzZXQgYnkgZ2VuZGVyIGJlY2F1c2Ugd2UgYXJlIG5vIGxvbmdlciB1c2luZyBhIHBvb2xlZCBlcnJvciB0ZXJtKS4gCgpUaHVzLCB0aGVyZSBpcyBubyBuZWVkIHRvIGZ1cnRoZXIgcHJvYmUgdGhlIGludGVyYWN0aW9uIGZvciB0aGUgY29uZGl0aW9uYWwgZWZmZWN0cywgYXMgdGhlIGludGVyYWN0aW9uIG91dHB1dCBkaXJlY3RseSByZXBvcnRzIHRoZSBjb25kaXRpb25hbCBlZmZlY3RzLgoKTm9uZXRoZWxlc3MsIHdlIGFncmVlIHRoYXQgb3VyIG1hbnVzY3JpcHQgbmVlZHMgc2V2ZXJhbCBjaGFuZ2VzIHRvIGVuc3VyZSB0aGUgY2xhcml0eSBvZiBvdXIgYW5hbHlzaXMgcGlwZWxpbmUgYW5kIGZpbmRpbmdzLiAgCgotICoqRmlyc3QqKiwgd2Ugbm93IHNwZWNpZnkgdGhhdCBnZW5kZXIgd2FzIGR1bW15IGNvZGVkOiAgCiAgKuKAnEVhY2ggbW9kZWwgaW5jbHVkZWQgbG9uZy10ZXJtIG1hdGluZyBvcmllbnRhdGlvbiwgc2hvcnQtdGVybSBtYXRpbmcgb3JpZW50YXRpb24sIHBhcnRpY2lwYW50IGdlbmRlciAoZHVtbXkgY29kZWQ6IDAgPSBtYWxlLCAxID0gZmVtYWxlKSwgYW5kIHR3byBpbnRlcmFjdGlvbiB0ZXJtczogcGFydGljaXBhbnQgZ2VuZGVyIMOXIGxvbmctdGVybSBtYXRpbmcgb3JpZW50YXRpb24gYW5kIHBhcnRpY2lwYW50IGdlbmRlciDDlyBzaG9ydC10ZXJtIG1hdGluZyBvcmllbnRhdGlvbuKAnSogKHAuIDkpLiAgCgotICoqU2Vjb25kKiosIHdlIG5vdyBleHBsaWNpdGx5IHN0YXRlOiAgCiAgKuKAnFdoZW4gc2lnbmlmaWNhbnQgaW50ZXJhY3Rpb25zIGVtZXJnZSwgd2UgcmVwb3J0IHNpbXBsZSBzbG9wZXMgYW5hbHlzZXMgdGhhdCBkZXBpY3QgdGhlIGNvbmRpdGlvbmFsIGVmZmVjdHMgc2VwYXJhdGVseSBmb3IgbWVuIGFuZCB3b21lbi7igJ0qIChwLiA5KS4gIAoKLSAqKlRoaXJkKiosIHdlIG5vdyBleHBsaWNpdGx5IHN0YXRlOiAgCiAgKuKAnEFsbCBjb250aW51b3VzIHZhcmlhYmxlcyB3ZXJlIHN0YW5kYXJkaXplZCBwcmlvciB0byBlbnRyeSBpbnRvIHRoZSBtb2RlbC7igJ0qIChwcC4gOCBhbmQgOSkuICAKCi0gKipGaW5hbGx5KiosIHdlIG5vdyB1c2UgYSBtb3JlIHRyYWRpdGlvbmFsIG9yZGVyaW5nIHdoZW4gcHJlc2VudGluZyBvdXIgcmVzdWx0cywgZmlyc3QgZXN0YWJsaXNoaW5nIHRoZSBvdmVyYWxsIGludGVyYWN0aW9uIGFuZCB0aGVuIHJlcG9ydGluZyB0aGUgY29uZGl0aW9uYWwgZWZmZWN0cy4gIAoKCgoKCgoKCg==