Baseline Characteristics
Total
cov_clean1 %>%
dplyr::select(ibd_3, age_yrs, gender, race_5, ethnic_3, lang_3, relig_affil, mstat_5, act_tob, max_ch, IC, pop_dens,r_pct, total_cov_vax, full_vax, vax_boost, RPL_THEMES, RPL_4, RPL_THEME1, RPL_THEME2, RPL_THEME3, RPL_THEME4) -> baseline
baseline %>% tbl_summary(label = list(age_yrs ~ "Age", gender~ "Gender", race_5 ~ "Race", ethnic_3 ~ "Ethnicity", lang_3 ~ "Primary Language", relig_affil ~ "Any Religious Affiliation", mstat_5 ~ "Marital Status", RPL_THEMES ~ "Total SVI", RPL_THEME1 ~ "Soceioeconomic Status", RPL_THEME2 ~ "Household Composition", RPL_THEME3 ~ "Minority Status and Language", RPL_THEME4 ~ "Housing and Transportation", pop_dens ~ "Population Density", RPL_4 ~ "SVI Quartiles", r_pct ~ "Percent Republican", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index", ibd_3 ~ "IBD Type", full_vax ~ "Fully Vaccinated", total_cov_vax ~ "Total COVID Vaccines", vax_boost ~ "Boosted", IC ~ "Immunocompromised"),
statistic = list(all_continuous() ~ "{mean} ({sd})"),
missing_text = "(Missing)")
| Characteristic |
N = 15,208 |
| IBD Type |
|
| CD |
7,712 (51%) |
| UC |
7,345 (48%) |
| Unspecified |
151 (1.0%) |
| Age |
49 (19) |
| Gender |
|
| Male |
6,962 (46%) |
| Female |
8,246 (54%) |
| Race |
|
| White |
13,202 (87%) |
| Black |
946 (6.2%) |
| Asian |
373 (2.5%) |
| Native |
56 (0.4%) |
| Other |
631 (4.1%) |
| Ethnicity |
|
| NonHispanic |
14,371 (98%) |
| UNKNOWN |
0 (0%) |
| Hispanic |
299 (2.0%) |
| CHOOSE NOT TO DISCLOSE |
0 (0%) |
| (Missing) |
538 |
| Primary Language |
|
| English |
15,046 (99%) |
| Other |
162 (1.1%) |
| Any Religious Affiliation |
|
| Yes |
8,193 (57%) |
| No |
6,075 (43%) |
| UNKNOWN |
0 (0%) |
| PATIENT REFUSED |
0 (0%) |
| (Missing) |
940 |
| Marital Status |
|
| Married |
6,178 (41%) |
| Unknown |
3,226 (21%) |
| Unmarried |
4,990 (33%) |
| DivorcedSeparated |
507 (3.3%) |
| Widow |
307 (2.0%) |
| Active Tobacco Use |
|
| No |
12,593 (87%) |
| Yes |
1,878 (13%) |
| NOT ASKED |
0 (0%) |
| (Missing) |
737 |
| Charlson Comorbidity Index |
3.3 (4.9) |
| (Missing) |
435 |
| Immunocompromised |
4,890 (62%) |
| (Missing) |
7,372 |
| Population Density |
2,290 (4,016) |
| (Missing) |
629 |
| Percent Republican |
45 (18) |
| (Missing) |
2,265 |
| Total COVID Vaccines |
|
| 0 |
7,737 (51%) |
| 1 |
433 (2.8%) |
| 2 |
2,203 (14%) |
| 3 |
3,139 (21%) |
| 4 |
1,487 (9.8%) |
| 5 |
161 (1.1%) |
| 6 |
39 (0.3%) |
| 7 |
9 (<0.1%) |
| Fully Vaccinated |
|
| 0 |
8,170 (54%) |
| 1 |
7,038 (46%) |
| Boosted |
|
| 0 |
10,373 (68%) |
| 1 |
4,835 (32%) |
| Total SVI |
0.37 (0.26) |
| (Missing) |
288 |
| SVI Quartiles |
|
| First |
5,833 (39%) |
| Second |
4,492 (30%) |
| Third |
3,052 (20%) |
| Fourth |
1,543 (10%) |
| (Missing) |
288 |
| Soceioeconomic Status |
0.35 (0.26) |
| (Missing) |
338 |
| Household Composition |
0.40 (0.27) |
| (Missing) |
287 |
| Minority Status and Language |
0.48 (0.29) |
| (Missing) |
279 |
| Housing and Transportation |
0.44 (0.29) |
| (Missing) |
310 |
By SVI Quartile
baseline %>%
tbl_summary(by = RPL_4,
label = list(age_yrs ~ "Age", gender~ "Gender", race_5 ~ "Race", ethnic_3 ~ "Ethnicity", lang_3 ~ "Primary Language", relig_affil ~ "Any Religious Affiliation", mstat_5 ~ "Marital Status", RPL_THEMES ~ "Total SVI", RPL_THEME1 ~ "Soceioeconomic Status", RPL_THEME2 ~ "Household Composition", RPL_THEME3 ~ "Minority Status and Language", RPL_THEME4 ~ "Housing and Transportation", pop_dens ~ "Population Density", RPL_4 ~ "SVI Quartiles", r_pct ~ "Percent Republican", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index", ibd_3 ~ "IBD Type", full_vax ~ "Fully Vaccinated", total_cov_vax ~ "Total COVID Vaccines", vax_boost ~ "Boosted", IC ~ "Immunocompromised"),
statistic = list(all_continuous() ~ "{mean} ({sd})"),
missing_text = "(Missing)") %>% add_p()
288 observations missing `RPL_4` have been removed. To include these observations, use `forcats::fct_explicit_na()` on `RPL_4` column before passing to `tbl_summary()`.
There was an error in 'add_p()/add_difference()' for variable 'relig_affil', p-value omitted:
Error in stats::fisher.test(structure(c(2L, NA, 2L, NA, 1L, 1L, 2L, NA, : FEXACT error 6. LDKEY=534 is too small for this problem,
(ii := key2[itp=1059] = 45352598, ldstp=16020)
Try increasing the size of the workspace and possibly 'mult'
There was an error in 'add_p()/add_difference()' for variable 'act_tob', p-value omitted:
Error in stats::fisher.test(structure(c(1L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, : FEXACT error 6. LDKEY=533 is too small for this problem,
(ii := key2[itp=950] = 21479782, ldstp=15990)
Try increasing the size of the workspace and possibly 'mult'
There was an error in 'add_p()/add_difference()' for variable 'total_cov_vax', p-value omitted:
Error in stats::fisher.test(c(2, 0, 1, 0, 3, 1, 3, 2, 0, 0, 0, 0, 0, 4, : FEXACT error 5.
The hash table key cannot be computed because the largest key
is larger than the largest representable int.
The algorithm cannot proceed.
Reduce the workspace, consider using 'simulate.p.value=TRUE' or another algorithm.
| Characteristic |
First, N = 5,833 |
Second, N = 4,492 |
Third, N = 3,052 |
Fourth, N = 1,543 |
p-value |
| IBD Type |
|
|
|
|
<0.001 |
| CD |
2,773 (48%) |
2,208 (49%) |
1,658 (54%) |
914 (59%) |
|
| UC |
3,009 (52%) |
2,244 (50%) |
1,356 (44%) |
611 (40%) |
|
| Unspecified |
51 (0.9%) |
40 (0.9%) |
38 (1.2%) |
18 (1.2%) |
|
| Age |
49 (20) |
50 (19) |
50 (19) |
48 (19) |
0.008 |
| Gender |
|
|
|
|
<0.001 |
| Male |
2,756 (47%) |
2,050 (46%) |
1,303 (43%) |
691 (45%) |
|
| Female |
3,077 (53%) |
2,442 (54%) |
1,749 (57%) |
852 (55%) |
|
| Race |
|
|
|
|
<0.001 |
| White |
5,293 (91%) |
3,959 (88%) |
2,619 (86%) |
1,091 (71%) |
|
| Black |
139 (2.4%) |
204 (4.5%) |
239 (7.8%) |
345 (22%) |
|
| Asian |
153 (2.6%) |
140 (3.1%) |
65 (2.1%) |
7 (0.5%) |
|
| Native |
14 (0.2%) |
24 (0.5%) |
10 (0.3%) |
7 (0.5%) |
|
| Other |
234 (4.0%) |
165 (3.7%) |
119 (3.9%) |
93 (6.0%) |
|
| Ethnicity |
|
|
|
|
0.010 |
| NonHispanic |
5,517 (98%) |
4,262 (98%) |
2,888 (98%) |
1,440 (97%) |
|
| UNKNOWN |
0 (0%) |
0 (0%) |
0 (0%) |
0 (0%) |
|
| Hispanic |
100 (1.8%) |
86 (2.0%) |
59 (2.0%) |
48 (3.2%) |
|
| CHOOSE NOT TO DISCLOSE |
0 (0%) |
0 (0%) |
0 (0%) |
0 (0%) |
|
| (Missing) |
216 |
144 |
105 |
55 |
|
| Primary Language |
|
|
|
|
<0.001 |
| English |
5,799 (99%) |
4,441 (99%) |
3,009 (99%) |
1,511 (98%) |
|
| Other |
34 (0.6%) |
51 (1.1%) |
43 (1.4%) |
32 (2.1%) |
|
| Any Religious Affiliation |
|
|
|
|
|
| Yes |
3,232 (59%) |
2,397 (57%) |
1,651 (58%) |
779 (55%) |
|
| No |
2,284 (41%) |
1,810 (43%) |
1,204 (42%) |
642 (45%) |
|
| UNKNOWN |
0 (0%) |
0 (0%) |
0 (0%) |
0 (0%) |
|
| PATIENT REFUSED |
0 (0%) |
0 (0%) |
0 (0%) |
0 (0%) |
|
| (Missing) |
317 |
285 |
197 |
122 |
|
| Marital Status |
|
|
|
|
<0.001 |
| Married |
2,695 (46%) |
1,848 (41%) |
1,109 (36%) |
444 (29%) |
|
| Unknown |
1,134 (19%) |
943 (21%) |
702 (23%) |
388 (25%) |
|
| Unmarried |
1,761 (30%) |
1,432 (32%) |
1,039 (34%) |
619 (40%) |
|
| DivorcedSeparated |
133 (2.3%) |
168 (3.7%) |
128 (4.2%) |
72 (4.7%) |
|
| Widow |
110 (1.9%) |
101 (2.2%) |
74 (2.4%) |
20 (1.3%) |
|
| Active Tobacco Use |
|
|
|
|
|
| No |
5,133 (91%) |
3,710 (87%) |
2,389 (83%) |
1,120 (78%) |
|
| Yes |
478 (8.5%) |
566 (13%) |
501 (17%) |
308 (22%) |
|
| NOT ASKED |
0 (0%) |
0 (0%) |
0 (0%) |
0 (0%) |
|
| (Missing) |
222 |
216 |
162 |
115 |
|
| Charlson Comorbidity Index |
3.2 (4.9) |
3.4 (5.1) |
3.4 (4.9) |
3.3 (4.8) |
0.020 |
| (Missing) |
135 |
128 |
93 |
62 |
|
| Immunocompromised |
1,955 (61%) |
1,485 (62%) |
945 (64%) |
505 (66%) |
0.047 |
| (Missing) |
2,634 |
2,100 |
1,572 |
778 |
|
| Population Density |
2,026 (3,289) |
2,277 (5,130) |
2,431 (3,595) |
3,081 (3,469) |
<0.001 |
| (Missing) |
55 |
97 |
116 |
81 |
|
| Percent Republican |
46 (16) |
46 (18) |
46 (18) |
37 (21) |
<0.001 |
| (Missing) |
614 |
829 |
542 |
263 |
|
| Total COVID Vaccines |
|
|
|
|
|
| 0 |
2,528 (43%) |
2,305 (51%) |
1,706 (56%) |
976 (63%) |
|
| 1 |
177 (3.0%) |
110 (2.4%) |
93 (3.0%) |
46 (3.0%) |
|
| 2 |
868 (15%) |
653 (15%) |
431 (14%) |
226 (15%) |
|
| 3 |
1,441 (25%) |
893 (20%) |
573 (19%) |
208 (13%) |
|
| 4 |
712 (12%) |
470 (10%) |
220 (7.2%) |
76 (4.9%) |
|
| 5 |
87 (1.5%) |
45 (1.0%) |
21 (0.7%) |
8 (0.5%) |
|
| 6 |
16 (0.3%) |
14 (0.3%) |
5 (0.2%) |
3 (0.2%) |
|
| 7 |
4 (<0.1%) |
2 (<0.1%) |
3 (<0.1%) |
0 (0%) |
|
| Fully Vaccinated |
|
|
|
|
<0.001 |
| 0 |
2,705 (46%) |
2,415 (54%) |
1,799 (59%) |
1,022 (66%) |
|
| 1 |
3,128 (54%) |
2,077 (46%) |
1,253 (41%) |
521 (34%) |
|
| Boosted |
|
|
|
|
<0.001 |
| 0 |
3,573 (61%) |
3,068 (68%) |
2,230 (73%) |
1,248 (81%) |
|
| 1 |
2,260 (39%) |
1,424 (32%) |
822 (27%) |
295 (19%) |
|
| Total SVI |
0.12 (0.07) |
0.37 (0.07) |
0.61 (0.07) |
0.86 (0.07) |
<0.001 |
| Soceioeconomic Status |
0.13 (0.11) |
0.34 (0.16) |
0.56 (0.15) |
0.78 (0.11) |
<0.001 |
| (Missing) |
51 |
0 |
0 |
0 |
|
| Household Composition |
0.21 (0.14) |
0.38 (0.22) |
0.58 (0.24) |
0.76 (0.19) |
<0.001 |
| Minority Status and Language |
0.41 (0.27) |
0.47 (0.29) |
0.52 (0.28) |
0.66 (0.25) |
<0.001 |
| Housing and Transportation |
0.19 (0.16) |
0.49 (0.20) |
0.64 (0.21) |
0.81 (0.17) |
<0.001 |
| (Missing) |
22 |
0 |
0 |
0 |
|
Bivariate Analysis
Total # Vaccines
library(MASS)
tbl_covid_biv <-
tbl_uvregression(
cov_clean1[c("total_cov_vax", "ibd_3", "age_yrs", "gender", "race_5", "ethnic_3", "lang_3", "mstat_5", "relig_affil", "act_tob", "max_ch", "IC", "pop_dens", "r_pct", "RPL_THEMES", "RPL_THEME1", "RPL_THEME2", "RPL_THEME3", "RPL_THEME4")],
method = glm.nb,
y = total_cov_vax,
label = list(age_yrs ~ "Age", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", race_5 ~ "Race", RPL_THEMES ~ "Total SVI", RPL_THEME1 ~ "Soceioeconomic Status", RPL_THEME2 ~ "Household Composition", RPL_THEME3 ~ "Minority Status and Language", RPL_THEME4 ~ "Housing and Transportation", r_pct ~ "Percent Republican", relig_affil ~ "Any Religious Affiliation", mstat_5 ~ "Marital Status", pop_dens ~ "Population Density", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index", IC ~ "Immunocompromised", ibd_3 ~ "IBD Type"),
exponentiate = TRUE)
print(tbl_covid_biv, method = render)
`...` must be empty.
✖ Problematic argument:
• method = render
| Characteristic |
N |
IRR |
95% CI |
p-value |
| IBD Type |
15,208 |
|
|
|
| CD |
|
— |
— |
|
| UC |
|
1.12 |
1.07, 1.17 |
<0.001 |
| Unspecified |
|
0.65 |
0.51, 0.84 |
<0.001 |
| Age |
15,208 |
1.01 |
1.00, 1.01 |
<0.001 |
| Gender |
15,208 |
|
|
|
| Male |
|
— |
— |
|
| Female |
|
1.03 |
0.99, 1.08 |
0.2 |
| Race |
15,208 |
|
|
|
| White |
|
— |
— |
|
| Black |
|
0.92 |
0.84, 1.01 |
0.064 |
| Asian |
|
1.39 |
1.22, 1.59 |
<0.001 |
| Native |
|
0.89 |
0.62, 1.30 |
0.5 |
| Other |
|
0.89 |
0.80, 1.00 |
0.049 |
| Ethnicity |
14,670 |
|
|
|
| NonHispanic |
|
— |
— |
|
| Hispanic |
|
1.01 |
0.86, 1.18 |
>0.9 |
| Preferred Language |
15,208 |
|
|
|
| English |
|
— |
— |
|
| Other |
|
0.88 |
0.70, 1.09 |
0.2 |
| Marital Status |
15,208 |
|
|
|
| Married |
|
— |
— |
|
| Unknown |
|
0.97 |
0.91, 1.02 |
0.3 |
| Unmarried |
|
0.77 |
0.73, 0.81 |
<0.001 |
| DivorcedSeparated |
|
0.82 |
0.73, 0.94 |
0.003 |
| Widow |
|
0.93 |
0.80, 1.09 |
0.4 |
| Any Religious Affiliation |
14,268 |
|
|
|
| Yes |
|
— |
— |
|
| No |
|
0.95 |
0.90, 0.99 |
0.015 |
| Active Tobacco Use |
14,471 |
|
|
|
| No |
|
— |
— |
|
| Yes |
|
0.63 |
0.59, 0.68 |
<0.001 |
| Charlson Comorbidity Index |
14,773 |
1.02 |
1.02, 1.03 |
<0.001 |
| Immunocompromised |
7,836 |
1.08 |
1.03, 1.14 |
0.001 |
| Population Density |
14,579 |
1.00 |
1.00, 1.00 |
0.5 |
| Percent Republican |
12,943 |
0.99 |
0.99, 0.99 |
<0.001 |
| Total SVI |
14,920 |
0.50 |
0.46, 0.54 |
<0.001 |
| Soceioeconomic Status |
14,870 |
0.45 |
0.41, 0.49 |
<0.001 |
| Household Composition |
14,921 |
0.49 |
0.45, 0.53 |
<0.001 |
| Minority Status and Language |
14,929 |
1.29 |
1.20, 1.39 |
<0.001 |
| Housing and Transportation |
14,898 |
0.67 |
0.62, 0.72 |
<0.001 |
NULL
Fully vaccinated
cov_clean1$full_vax = as.numeric(cov_clean1$full_vax)
tbl_full_biv <-
tbl_uvregression(
cov_clean1[c("full_vax", "ibd_3", "age_yrs", "gender", "race_5", "ethnic_3", "lang_3", "mstat_5", "relig_affil", "act_tob", "max_ch", "IC", "pop_dens", "r_pct", "RPL_THEMES", "RPL_THEME1", "RPL_THEME2", "RPL_THEME3", "RPL_THEME4")],
method = glm,
y = full_vax,
method.args = list(family = binomial),
label = list(age_yrs ~ "Age", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", race_5 ~ "Race", RPL_THEMES ~ "Total SVI", RPL_THEME1 ~ "Soceioeconomic Status", RPL_THEME2 ~ "Household Composition", RPL_THEME3 ~ "Minority Status and Language", RPL_THEME4 ~ "Housing and Transportation", r_pct ~ "Percent Republican", relig_affil ~ "Any Religious Affiliation", mstat_5 ~ "Marital Status", pop_dens ~ "Population Density", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index", IC ~ "Immunocompromised", ibd_3 ~ "IBD Type"),
exponentiate = TRUE)
print(tbl_full_biv, method = render)
`...` must be empty.
✖ Problematic argument:
• method = render
| Characteristic |
N |
OR |
95% CI |
p-value |
| IBD Type |
15,208 |
|
|
|
| CD |
|
— |
— |
|
| UC |
|
1.21 |
1.14, 1.29 |
<0.001 |
| Unspecified |
|
0.56 |
0.39, 0.78 |
<0.001 |
| Age |
15,208 |
1.00 |
1.00, 1.01 |
<0.001 |
| Gender |
15,208 |
|
|
|
| Male |
|
— |
— |
|
| Female |
|
1.03 |
0.97, 1.10 |
0.3 |
| Race |
15,208 |
|
|
|
| White |
|
— |
— |
|
| Black |
|
0.94 |
0.82, 1.07 |
0.4 |
| Asian |
|
1.88 |
1.52, 2.33 |
<0.001 |
| Native |
|
0.88 |
0.51, 1.48 |
0.6 |
| Other |
|
0.89 |
0.76, 1.05 |
0.2 |
| Ethnicity |
14,670 |
|
|
|
| NonHispanic |
|
— |
— |
|
| Hispanic |
|
1.13 |
0.90, 1.42 |
0.3 |
| Preferred Language |
15,208 |
|
|
|
| English |
|
— |
— |
|
| Other |
|
0.88 |
0.64, 1.20 |
0.4 |
| Marital Status |
15,208 |
|
|
|
| Married |
|
— |
— |
|
| Unknown |
|
1.06 |
0.98, 1.16 |
0.2 |
| Unmarried |
|
0.70 |
0.65, 0.76 |
<0.001 |
| DivorcedSeparated |
|
0.73 |
0.61, 0.88 |
<0.001 |
| Widow |
|
0.86 |
0.68, 1.08 |
0.2 |
| Any Religious Affiliation |
14,268 |
|
|
|
| Yes |
|
— |
— |
|
| No |
|
0.93 |
0.87, 0.99 |
0.030 |
| Active Tobacco Use |
14,471 |
|
|
|
| No |
|
— |
— |
|
| Yes |
|
0.49 |
0.45, 0.55 |
<0.001 |
| Charlson Comorbidity Index |
14,773 |
1.03 |
1.02, 1.04 |
<0.001 |
| Immunocompromised |
7,836 |
1.22 |
1.11, 1.34 |
<0.001 |
| Population Density |
14,579 |
1.00 |
1.00, 1.00 |
>0.9 |
| Percent Republican |
12,943 |
0.99 |
0.98, 0.99 |
<0.001 |
| Total SVI |
14,920 |
0.34 |
0.29, 0.38 |
<0.001 |
| Soceioeconomic Status |
14,870 |
0.29 |
0.25, 0.33 |
<0.001 |
| Household Composition |
14,921 |
0.33 |
0.29, 0.37 |
<0.001 |
| Minority Status and Language |
14,929 |
1.48 |
1.32, 1.66 |
<0.001 |
| Housing and Transportation |
14,898 |
0.51 |
0.45, 0.57 |
<0.001 |
NULL
Vaccinated and Boosted
cov_clean1$vax_boost = as.numeric(cov_clean1$vax_boost)
tbl_boost_biv <-
tbl_uvregression(
cov_clean1[c("vax_boost", "ibd_3", "age_yrs", "gender", "race_5", "ethnic_3", "lang_3", "mstat_5", "relig_affil", "act_tob", "max_ch", "IC", "pop_dens", "r_pct", "RPL_THEMES", "RPL_THEME1", "RPL_THEME2", "RPL_THEME3", "RPL_THEME4")],
method = glm,
y = vax_boost,
method.args = list(family = binomial),
label = list(age_yrs ~ "Age", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", race_5 ~ "Race", RPL_THEMES ~ "Total SVI", RPL_THEME1 ~ "Soceioeconomic Status", RPL_THEME2 ~ "Household Composition", RPL_THEME3 ~ "Minority Status and Language", RPL_THEME4 ~ "Housing and Transportation", r_pct ~ "Percent Republican", relig_affil ~ "Any Religious Affiliation", mstat_5 ~ "Marital Status", pop_dens ~ "Population Density", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index", IC ~ "Immunocompromised", ibd_3 ~ "IBD Type"),
exponentiate = TRUE)
print(tbl_boost_biv, method = render)
`...` must be empty.
✖ Problematic argument:
• method = render
| Characteristic |
N |
OR |
95% CI |
p-value |
| IBD Type |
15,208 |
|
|
|
| CD |
|
— |
— |
|
| UC |
|
1.22 |
1.14, 1.30 |
<0.001 |
| Unspecified |
|
0.51 |
0.33, 0.77 |
0.002 |
| Age |
15,208 |
1.01 |
1.01, 1.01 |
<0.001 |
| Gender |
15,208 |
|
|
|
| Male |
|
— |
— |
|
| Female |
|
1.07 |
1.00, 1.15 |
0.045 |
| Race |
15,208 |
|
|
|
| White |
|
— |
— |
|
| Black |
|
0.77 |
0.67, 0.90 |
<0.001 |
| Asian |
|
1.88 |
1.52, 2.31 |
<0.001 |
| Native |
|
0.78 |
0.42, 1.37 |
0.4 |
| Other |
|
0.75 |
0.62, 0.89 |
0.002 |
| Ethnicity |
14,670 |
|
|
|
| NonHispanic |
|
— |
— |
|
| Hispanic |
|
0.87 |
0.67, 1.12 |
0.3 |
| Preferred Language |
15,208 |
|
|
|
| English |
|
— |
— |
|
| Other |
|
0.72 |
0.50, 1.02 |
0.076 |
| Marital Status |
15,208 |
|
|
|
| Married |
|
— |
— |
|
| Unknown |
|
0.84 |
0.76, 0.91 |
<0.001 |
| Unmarried |
|
0.60 |
0.56, 0.66 |
<0.001 |
| DivorcedSeparated |
|
0.70 |
0.57, 0.85 |
<0.001 |
| Widow |
|
0.85 |
0.67, 1.09 |
0.2 |
| Any Religious Affiliation |
14,268 |
|
|
|
| Yes |
|
— |
— |
|
| No |
|
0.92 |
0.86, 0.99 |
0.023 |
| Active Tobacco Use |
14,471 |
|
|
|
| No |
|
— |
— |
|
| Yes |
|
0.48 |
0.43, 0.54 |
<0.001 |
| Charlson Comorbidity Index |
14,773 |
1.04 |
1.04, 1.05 |
<0.001 |
| Immunocompromised |
7,836 |
1.05 |
0.95, 1.15 |
0.3 |
| Population Density |
14,579 |
1.00 |
1.00, 1.00 |
0.7 |
| Percent Republican |
12,943 |
0.98 |
0.98, 0.99 |
<0.001 |
| Total SVI |
14,920 |
0.29 |
0.25, 0.33 |
<0.001 |
| Soceioeconomic Status |
14,870 |
0.24 |
0.20, 0.27 |
<0.001 |
| Household Composition |
14,921 |
0.28 |
0.24, 0.32 |
<0.001 |
| Minority Status and Language |
14,929 |
1.57 |
1.39, 1.77 |
<0.001 |
| Housing and Transportation |
14,898 |
0.50 |
0.44, 0.56 |
<0.001 |
NULL
Total COVID Count
RPL_THEMES
library(MASS)
covid.nb <- glm.nb(total_cov_vax ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch + IC + pop_dens + r_pct + RPL_THEMES,
data = cov_clean1)
summary(covid.nb)
Call:
glm.nb(formula = total_cov_vax ~ ibd_3 + age_yrs + gender + race_5 +
ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch +
IC + pop_dens + r_pct + RPL_THEMES, data = cov_clean1, init.theta = 3.548204585,
link = log)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.4299 -1.5008 0.1099 0.6408 2.6741
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 7.720e-01 7.129e-02 10.829 < 2e-16 ***
ibd_3UC 1.969e-02 2.486e-02 0.792 0.428327
ibd_3Unspecified -3.657e-01 1.875e-01 -1.951 0.051116 .
age_yrs 8.927e-03 8.028e-04 11.120 < 2e-16 ***
genderFemale 6.294e-02 2.347e-02 2.682 0.007314 **
race_5Black -1.325e-01 5.037e-02 -2.630 0.008536 **
race_5Asian 1.862e-01 6.519e-02 2.857 0.004277 **
race_5Native -1.125e-01 1.940e-01 -0.580 0.561960
race_5Other -1.661e-01 7.023e-02 -2.365 0.018011 *
ethnic_3Hispanic 1.418e-01 8.136e-02 1.743 0.081323 .
lang_3Other -2.758e-01 1.246e-01 -2.214 0.026851 *
relig_affilNo -3.531e-02 2.423e-02 -1.457 0.145080
mstat_5Unknown -1.457e-02 3.260e-02 -0.447 0.654976
mstat_5Unmarried -1.308e-01 3.133e-02 -4.175 2.98e-05 ***
mstat_5DivorcedSeparated -1.689e-01 7.431e-02 -2.273 0.023021 *
mstat_5Widow -3.037e-01 8.973e-02 -3.385 0.000713 ***
act_tobYes -2.449e-01 4.106e-02 -5.966 2.44e-09 ***
max_ch 6.295e-03 2.547e-03 2.472 0.013450 *
IC 2.429e-01 2.653e-02 9.155 < 2e-16 ***
pop_dens -1.907e-05 4.220e-06 -4.520 6.19e-06 ***
r_pct -1.147e-02 7.647e-04 -14.996 < 2e-16 ***
RPL_THEMES -5.464e-01 4.915e-02 -11.117 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for Negative Binomial(3.5482) family taken to be 1)
Null deviance: 9252.4 on 6407 degrees of freedom
Residual deviance: 8457.1 on 6386 degrees of freedom
(8800 observations deleted due to missingness)
AIC: 22433
Number of Fisher Scoring iterations: 1
Theta: 3.548
Std. Err.: 0.268
2 x log-likelihood: -22387.315
broom::glance(covid.nb)
broom::tidy(covid.nb, exponentiate = TRUE)
model_performance(covid.nb)
# Indices of model performance
AIC | BIC | Nagelkerke's R2 | RMSE | Sigma | Score_log | Score_spherical
-------------------------------------------------------------------------------------
22433.315 | 22588.917 | 0.153 | 1.494 | 1.151 | -1.749 | 0.011
tbl_regression(covid.nb, label = list(age_yrs ~ "Age", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", race_5 ~ "Race", RPL_THEMES ~ "Total SVI", r_pct ~ "Percent Republican", relig_affil ~ "Any Religious Affiliation", mstat_5 ~ "Marital Status", pop_dens ~ "Population Density", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index", IC ~ "Immunocompromised", ibd_3 ~ "IBD Type"), exponentiate = TRUE)
| Characteristic |
IRR |
95% CI |
p-value |
| IBD Type |
|
|
|
| CD |
— |
— |
|
| UC |
1.02 |
0.97, 1.07 |
0.4 |
| Unspecified |
0.69 |
0.48, 0.99 |
0.051 |
| Age |
1.01 |
1.01, 1.01 |
<0.001 |
| Gender |
|
|
|
| Male |
— |
— |
|
| Female |
1.06 |
1.02, 1.12 |
0.007 |
| Race |
|
|
|
| White |
— |
— |
|
| Black |
0.88 |
0.79, 0.97 |
0.009 |
| Asian |
1.20 |
1.06, 1.37 |
0.004 |
| Native |
0.89 |
0.60, 1.30 |
0.6 |
| Other |
0.85 |
0.74, 0.97 |
0.018 |
| Ethnicity |
|
|
|
| NonHispanic |
— |
— |
|
| Hispanic |
1.15 |
0.98, 1.35 |
0.081 |
| Preferred Language |
|
|
|
| English |
— |
— |
|
| Other |
0.76 |
0.59, 0.97 |
0.027 |
| Any Religious Affiliation |
|
|
|
| Yes |
— |
— |
|
| No |
0.97 |
0.92, 1.01 |
0.15 |
| Marital Status |
|
|
|
| Married |
— |
— |
|
| Unknown |
0.99 |
0.92, 1.05 |
0.7 |
| Unmarried |
0.88 |
0.83, 0.93 |
<0.001 |
| DivorcedSeparated |
0.84 |
0.73, 0.98 |
0.023 |
| Widow |
0.74 |
0.62, 0.88 |
<0.001 |
| Active Tobacco Use |
|
|
|
| No |
— |
— |
|
| Yes |
0.78 |
0.72, 0.85 |
<0.001 |
| Charlson Comorbidity Index |
1.01 |
1.00, 1.01 |
0.013 |
| Immunocompromised |
1.27 |
1.21, 1.34 |
<0.001 |
| Population Density |
1.00 |
1.00, 1.00 |
<0.001 |
| Percent Republican |
0.99 |
0.99, 0.99 |
<0.001 |
| Total SVI |
0.58 |
0.53, 0.64 |
<0.001 |
# NB Residual Plot
covid.nb_res <- resid(covid.nb)
plot(fitted(covid.nb), covid.nb_res, col='steelblue', pch=16,
xlab='Predicted Vaccines', ylab='Standardized Residuals', main='Negative Binomial')
abline(0,0)

# NB regression more appropriate because residuals of the model are smaller
# Likelihood ratio test
pchisq(2 * (logLik(covid.nb) - logLik(covid.nb)), df = 1, lower.tail = FALSE)
'log Lik.' 1 (df=23)
# p-value of loglik is < 0.05 so NB regression is the more appropriate model
RPL Quartiles
covid.nb2 <- glm.nb(total_cov_vax ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch + IC + pop_dens + r_pct + RPL_4,
data = cov_clean1)
summary(covid.nb2)
Call:
glm.nb(formula = total_cov_vax ~ ibd_3 + age_yrs + gender + race_5 +
ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch +
IC + pop_dens + r_pct + RPL_4, data = cov_clean1, init.theta = 3.52508281,
link = log)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.4318 -1.5059 0.1094 0.6423 2.6415
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 7.093e-01 7.089e-02 10.006 < 2e-16 ***
ibd_3UC 1.943e-02 2.489e-02 0.781 0.434994
ibd_3Unspecified -3.875e-01 1.873e-01 -2.069 0.038573 *
age_yrs 8.855e-03 8.039e-04 11.016 < 2e-16 ***
genderFemale 6.308e-02 2.349e-02 2.685 0.007251 **
race_5Black -1.333e-01 5.051e-02 -2.639 0.008307 **
race_5Asian 1.849e-01 6.532e-02 2.831 0.004637 **
race_5Native -1.202e-01 1.944e-01 -0.618 0.536320
race_5Other -1.669e-01 7.032e-02 -2.373 0.017653 *
ethnic_3Hispanic 1.429e-01 8.141e-02 1.755 0.079216 .
lang_3Other -2.811e-01 1.247e-01 -2.254 0.024175 *
relig_affilNo -3.483e-02 2.426e-02 -1.436 0.151050
mstat_5Unknown -2.023e-02 3.263e-02 -0.620 0.535313
mstat_5Unmarried -1.351e-01 3.135e-02 -4.309 1.64e-05 ***
mstat_5DivorcedSeparated -1.788e-01 7.439e-02 -2.403 0.016254 *
mstat_5Widow -3.097e-01 8.987e-02 -3.446 0.000569 ***
act_tobYes -2.501e-01 4.106e-02 -6.092 1.11e-09 ***
max_ch 6.268e-03 2.550e-03 2.458 0.013991 *
IC 2.408e-01 2.656e-02 9.064 < 2e-16 ***
pop_dens -1.987e-05 4.273e-06 -4.651 3.30e-06 ***
r_pct -1.155e-02 7.690e-04 -15.025 < 2e-16 ***
RPL_4Second -1.166e-01 2.751e-02 -4.238 2.25e-05 ***
RPL_4Third -1.922e-01 3.332e-02 -5.768 8.03e-09 ***
RPL_4Fourth -4.854e-01 4.850e-02 -10.008 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for Negative Binomial(3.5251) family taken to be 1)
Null deviance: 9238.6 on 6407 degrees of freedom
Residual deviance: 8452.2 on 6384 degrees of freedom
(8800 observations deleted due to missingness)
AIC: 22445
Number of Fisher Scoring iterations: 1
Theta: 3.525
Std. Err.: 0.265
2 x log-likelihood: -22394.573
broom::glance(covid.nb2)
broom::tidy(covid.nb2, exponentiate = TRUE)
model_performance(covid.nb2)
# Indices of model performance
AIC | BIC | Nagelkerke's R2 | RMSE | Sigma | Score_log | Score_spherical
-------------------------------------------------------------------------------------
22444.573 | 22613.705 | 0.151 | 1.495 | 1.151 | -1.750 | 0.011
tbl_regression(covid.nb2, label = list(age_yrs ~ "Age", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", race_5 ~ "Race", RPL_4 ~ "SVI Quartile", r_pct ~ "Percent Republican", relig_affil ~ "Any Religious Affiliation", mstat_5 ~ "Marital Status", pop_dens ~ "Population Density", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index", IC ~ "Immunocompromised", ibd_3 ~ "IBD Type"), exponentiate = TRUE)
| Characteristic |
IRR |
95% CI |
p-value |
| IBD Type |
|
|
|
| CD |
— |
— |
|
| UC |
1.02 |
0.97, 1.07 |
0.4 |
| Unspecified |
0.68 |
0.47, 0.97 |
0.039 |
| Age |
1.01 |
1.01, 1.01 |
<0.001 |
| Gender |
|
|
|
| Male |
— |
— |
|
| Female |
1.07 |
1.02, 1.12 |
0.007 |
| Race |
|
|
|
| White |
— |
— |
|
| Black |
0.88 |
0.79, 0.97 |
0.008 |
| Asian |
1.20 |
1.06, 1.37 |
0.005 |
| Native |
0.89 |
0.60, 1.29 |
0.5 |
| Other |
0.85 |
0.74, 0.97 |
0.018 |
| Ethnicity |
|
|
|
| NonHispanic |
— |
— |
|
| Hispanic |
1.15 |
0.98, 1.35 |
0.079 |
| Preferred Language |
|
|
|
| English |
— |
— |
|
| Other |
0.75 |
0.59, 0.96 |
0.024 |
| Any Religious Affiliation |
|
|
|
| Yes |
— |
— |
|
| No |
0.97 |
0.92, 1.01 |
0.2 |
| Marital Status |
|
|
|
| Married |
— |
— |
|
| Unknown |
0.98 |
0.92, 1.04 |
0.5 |
| Unmarried |
0.87 |
0.82, 0.93 |
<0.001 |
| DivorcedSeparated |
0.84 |
0.72, 0.97 |
0.016 |
| Widow |
0.73 |
0.61, 0.87 |
<0.001 |
| Active Tobacco Use |
|
|
|
| No |
— |
— |
|
| Yes |
0.78 |
0.72, 0.84 |
<0.001 |
| Charlson Comorbidity Index |
1.01 |
1.00, 1.01 |
0.014 |
| Immunocompromised |
1.27 |
1.21, 1.34 |
<0.001 |
| Population Density |
1.00 |
1.00, 1.00 |
<0.001 |
| Percent Republican |
0.99 |
0.99, 0.99 |
<0.001 |
| SVI Quartile |
|
|
|
| First |
— |
— |
|
| Second |
0.89 |
0.84, 0.94 |
<0.001 |
| Third |
0.83 |
0.77, 0.88 |
<0.001 |
| Fourth |
0.62 |
0.56, 0.68 |
<0.001 |
performance::check_model(covid.nb2, panel = TRUE)

All Themes
covid.nb3 <- glm.nb(total_cov_vax ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch + IC + pop_dens + r_pct + RPL_THEME1
+ RPL_THEME2 + RPL_THEME3 + RPL_THEME4,
data = cov_clean1)
summary(covid.nb3)
Call:
glm.nb(formula = total_cov_vax ~ ibd_3 + age_yrs + gender + race_5 +
ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch +
IC + pop_dens + r_pct + RPL_THEME1 + RPL_THEME2 + RPL_THEME3 +
RPL_THEME4, data = cov_clean1, init.theta = 3.657749848,
link = log)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.4678 -1.4941 0.1070 0.6436 2.5832
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 6.666e-01 8.418e-02 7.919 2.40e-15 ***
ibd_3UC 1.856e-02 2.475e-02 0.750 0.453251
ibd_3Unspecified -3.611e-01 1.866e-01 -1.935 0.052960 .
age_yrs 9.042e-03 7.992e-04 11.313 < 2e-16 ***
genderFemale 6.357e-02 2.336e-02 2.722 0.006498 **
race_5Black -1.159e-01 5.049e-02 -2.296 0.021667 *
race_5Asian 1.439e-01 6.535e-02 2.202 0.027641 *
race_5Native -1.094e-01 1.933e-01 -0.566 0.571450
race_5Other -1.773e-01 6.996e-02 -2.534 0.011276 *
ethnic_3Hispanic 1.338e-01 8.095e-02 1.653 0.098360 .
lang_3Other -3.013e-01 1.241e-01 -2.428 0.015189 *
relig_affilNo -3.035e-02 2.418e-02 -1.255 0.209449
mstat_5Unknown -1.385e-02 3.246e-02 -0.427 0.669602
mstat_5Unmarried -1.293e-01 3.120e-02 -4.143 3.43e-05 ***
mstat_5DivorcedSeparated -1.659e-01 7.405e-02 -2.240 0.025091 *
mstat_5Widow -3.060e-01 8.933e-02 -3.426 0.000612 ***
act_tobYes -2.431e-01 4.095e-02 -5.937 2.90e-09 ***
max_ch 6.320e-03 2.534e-03 2.494 0.012635 *
IC 2.398e-01 2.643e-02 9.073 < 2e-16 ***
pop_dens -1.720e-05 4.214e-06 -4.082 4.47e-05 ***
r_pct -8.970e-03 9.082e-04 -9.876 < 2e-16 ***
RPL_THEME1 -3.124e-01 6.890e-02 -4.534 5.77e-06 ***
RPL_THEME2 -2.809e-01 6.062e-02 -4.634 3.59e-06 ***
RPL_THEME3 9.481e-02 4.857e-02 1.952 0.050917 .
RPL_THEME4 -1.119e-01 5.126e-02 -2.183 0.029047 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for Negative Binomial(3.6577) family taken to be 1)
Null deviance: 9316.3 on 6407 degrees of freedom
Residual deviance: 8476.5 on 6383 degrees of freedom
(8800 observations deleted due to missingness)
AIC: 22403
Number of Fisher Scoring iterations: 1
Theta: 3.658
Std. Err.: 0.282
2 x log-likelihood: -22350.673
broom::glance(covid.nb3)
broom::tidy(covid.nb3, exponentiate = TRUE)
model_performance(covid.nb3)
# Indices of model performance
AIC | BIC | Nagelkerke's R2 | RMSE | Sigma | Score_log | Score_spherical
-------------------------------------------------------------------------------------
22402.673 | 22578.570 | 0.160 | 1.490 | 1.152 | -1.746 | 0.011
tbl_regression(covid.nb3, label = list(age_yrs ~ "Age", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", race_5 ~ "Race", RPL_THEME1 ~ "Soceioeconomic Status", RPL_THEME2 ~ "Household Composition", RPL_THEME3 ~ "Minority Status and Language", RPL_THEME4 ~ "Housing and Transportation", r_pct ~ "Percent Republican", relig_affil ~ "Any Religious Affiliation", mstat_5 ~ "Marital Status", pop_dens ~ "Population Density", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index", IC ~ "Immunocompromised", ibd_3 ~ "IBD Type"), exponentiate = TRUE)
| Characteristic |
IRR |
95% CI |
p-value |
| IBD Type |
|
|
|
| CD |
— |
— |
|
| UC |
1.02 |
0.97, 1.07 |
0.5 |
| Unspecified |
0.70 |
0.48, 0.99 |
0.053 |
| Age |
1.01 |
1.01, 1.01 |
<0.001 |
| Gender |
|
|
|
| Male |
— |
— |
|
| Female |
1.07 |
1.02, 1.12 |
0.006 |
| Race |
|
|
|
| White |
— |
— |
|
| Black |
0.89 |
0.81, 0.98 |
0.022 |
| Asian |
1.15 |
1.02, 1.31 |
0.028 |
| Native |
0.90 |
0.61, 1.30 |
0.6 |
| Other |
0.84 |
0.73, 0.96 |
0.011 |
| Ethnicity |
|
|
|
| NonHispanic |
— |
— |
|
| Hispanic |
1.14 |
0.97, 1.34 |
0.10 |
| Preferred Language |
|
|
|
| English |
— |
— |
|
| Other |
0.74 |
0.58, 0.94 |
0.015 |
| Any Religious Affiliation |
|
|
|
| Yes |
— |
— |
|
| No |
0.97 |
0.93, 1.02 |
0.2 |
| Marital Status |
|
|
|
| Married |
— |
— |
|
| Unknown |
0.99 |
0.93, 1.05 |
0.7 |
| Unmarried |
0.88 |
0.83, 0.93 |
<0.001 |
| DivorcedSeparated |
0.85 |
0.73, 0.98 |
0.025 |
| Widow |
0.74 |
0.62, 0.88 |
<0.001 |
| Active Tobacco Use |
|
|
|
| No |
— |
— |
|
| Yes |
0.78 |
0.72, 0.85 |
<0.001 |
| Charlson Comorbidity Index |
1.01 |
1.00, 1.01 |
0.013 |
| Immunocompromised |
1.27 |
1.21, 1.34 |
<0.001 |
| Population Density |
1.00 |
1.00, 1.00 |
<0.001 |
| Percent Republican |
0.99 |
0.99, 0.99 |
<0.001 |
| Soceioeconomic Status |
0.73 |
0.64, 0.84 |
<0.001 |
| Household Composition |
0.76 |
0.67, 0.85 |
<0.001 |
| Minority Status and Language |
1.10 |
1.00, 1.21 |
0.051 |
| Housing and Transportation |
0.89 |
0.81, 0.99 |
0.029 |
performance::check_model(covid.nb3, panel = TRUE)

Fully Vaccinated (not boosted)
RPL_THEMES
covid_full1 <- glm(full_vax ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch + IC + pop_dens + r_pct + RPL_THEMES,
family = binomial,
data = cov_clean1)
summary(covid_full1)
Call:
glm(formula = full_vax ~ ibd_3 + age_yrs + gender + race_5 +
ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch +
IC + pop_dens + r_pct + RPL_THEMES, family = binomial, data = cov_clean1)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.1418 -1.1789 0.7476 1.0035 1.9422
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 9.145e-01 1.670e-01 5.475 4.37e-08 ***
ibd_3UC 6.304e-02 5.712e-02 1.104 0.26979
ibd_3Unspecified -5.118e-01 3.630e-01 -1.410 0.15853
age_yrs 1.518e-02 1.887e-03 8.045 8.64e-16 ***
genderFemale 1.052e-01 5.349e-02 1.967 0.04919 *
race_5Black -2.032e-01 1.109e-01 -1.833 0.06687 .
race_5Asian 3.832e-01 1.739e-01 2.204 0.02755 *
race_5Native -5.743e-02 4.433e-01 -0.130 0.89693
race_5Other -2.500e-01 1.519e-01 -1.646 0.09983 .
ethnic_3Hispanic 3.933e-01 1.917e-01 2.052 0.04015 *
lang_3Other -3.785e-01 2.639e-01 -1.434 0.15149
relig_affilNo -6.067e-02 5.473e-02 -1.109 0.26757
mstat_5Unknown 2.030e-03 7.665e-02 0.026 0.97887
mstat_5Unmarried -3.017e-01 7.200e-02 -4.190 2.80e-05 ***
mstat_5DivorcedSeparated -3.540e-01 1.631e-01 -2.170 0.02999 *
mstat_5Widow -5.988e-01 2.099e-01 -2.853 0.00433 **
act_tobYes -4.413e-01 8.375e-02 -5.269 1.37e-07 ***
max_ch 4.787e-03 6.173e-03 0.775 0.43812
IC 5.131e-01 6.091e-02 8.425 < 2e-16 ***
pop_dens -3.893e-05 9.402e-06 -4.140 3.47e-05 ***
r_pct -2.194e-02 1.835e-03 -11.956 < 2e-16 ***
RPL_THEMES -1.073e+00 1.086e-01 -9.883 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 8699.1 on 6407 degrees of freedom
Residual deviance: 8171.1 on 6386 degrees of freedom
(8800 observations deleted due to missingness)
AIC: 8215.1
Number of Fisher Scoring iterations: 4
broom::glance(covid_full1)
broom::tidy(covid_full1, exponentiate = TRUE)
model_performance(covid_full1)
# Indices of model performance
AIC | BIC | Tjur's R2 | RMSE | Sigma | Log_loss | Score_log | Score_spherical | PCP
------------------------------------------------------------------------------------------------
8215.095 | 8363.932 | 0.080 | 0.473 | 1.131 | 0.638 | -Inf | 1.561e-04 | 0.553
tbl_regression(covid_full1, label = list(age_yrs ~ "Age", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", race_5 ~ "Race", RPL_THEMES ~ "Total SVI", r_pct ~ "Percent Republican", relig_affil ~ "Any Religious Affiliation", mstat_5 ~ "Marital Status", pop_dens ~ "Population Density", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index", IC ~ "Immunocompromised", ibd_3 ~ "IBD Type"), exponentiate = TRUE)
| Characteristic |
OR |
95% CI |
p-value |
| IBD Type |
|
|
|
| CD |
— |
— |
|
| UC |
1.07 |
0.95, 1.19 |
0.3 |
| Unspecified |
0.60 |
0.29, 1.21 |
0.2 |
| Age |
1.02 |
1.01, 1.02 |
<0.001 |
| Gender |
|
|
|
| Male |
— |
— |
|
| Female |
1.11 |
1.00, 1.23 |
0.049 |
| Race |
|
|
|
| White |
— |
— |
|
| Black |
0.82 |
0.66, 1.01 |
0.067 |
| Asian |
1.47 |
1.05, 2.08 |
0.028 |
| Native |
0.94 |
0.40, 2.31 |
0.9 |
| Other |
0.78 |
0.58, 1.05 |
0.10 |
| Ethnicity |
|
|
|
| NonHispanic |
— |
— |
|
| Hispanic |
1.48 |
1.02, 2.17 |
0.040 |
| Preferred Language |
|
|
|
| English |
— |
— |
|
| Other |
0.68 |
0.41, 1.15 |
0.2 |
| Any Religious Affiliation |
|
|
|
| Yes |
— |
— |
|
| No |
0.94 |
0.85, 1.05 |
0.3 |
| Marital Status |
|
|
|
| Married |
— |
— |
|
| Unknown |
1.00 |
0.86, 1.16 |
>0.9 |
| Unmarried |
0.74 |
0.64, 0.85 |
<0.001 |
| DivorcedSeparated |
0.70 |
0.51, 0.97 |
0.030 |
| Widow |
0.55 |
0.37, 0.83 |
0.004 |
| Active Tobacco Use |
|
|
|
| No |
— |
— |
|
| Yes |
0.64 |
0.55, 0.76 |
<0.001 |
| Charlson Comorbidity Index |
1.00 |
0.99, 1.02 |
0.4 |
| Immunocompromised |
1.67 |
1.48, 1.88 |
<0.001 |
| Population Density |
1.00 |
1.00, 1.00 |
<0.001 |
| Percent Republican |
0.98 |
0.97, 0.98 |
<0.001 |
| Total SVI |
0.34 |
0.28, 0.42 |
<0.001 |
performance::check_model(covid_full1, panel = TRUE)

RPL Quartiles
covid_full2 <- glm(full_vax ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch + IC + pop_dens + r_pct + RPL_4,
family = binomial,
data = cov_clean1)
summary(covid_full2)
Call:
glm(formula = full_vax ~ ibd_3 + age_yrs + gender + race_5 +
ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch +
IC + pop_dens + r_pct + RPL_4, family = binomial, data = cov_clean1)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.1193 -1.1818 0.7524 1.0029 1.9417
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 7.899e-01 1.657e-01 4.767 1.87e-06 ***
ibd_3UC 6.396e-02 5.712e-02 1.120 0.262834
ibd_3Unspecified -5.670e-01 3.613e-01 -1.569 0.116565
age_yrs 1.501e-02 1.885e-03 7.960 1.72e-15 ***
genderFemale 1.054e-01 5.346e-02 1.972 0.048603 *
race_5Black -2.110e-01 1.114e-01 -1.895 0.058080 .
race_5Asian 3.818e-01 1.736e-01 2.200 0.027842 *
race_5Native -6.175e-02 4.435e-01 -0.139 0.889266
race_5Other -2.485e-01 1.520e-01 -1.634 0.102215
ethnic_3Hispanic 3.878e-01 1.916e-01 2.024 0.043007 *
lang_3Other -3.945e-01 2.642e-01 -1.493 0.135480
relig_affilNo -6.054e-02 5.469e-02 -1.107 0.268331
mstat_5Unknown -9.157e-03 7.656e-02 -0.120 0.904804
mstat_5Unmarried -3.087e-01 7.199e-02 -4.288 1.80e-05 ***
mstat_5DivorcedSeparated -3.705e-01 1.631e-01 -2.271 0.023138 *
mstat_5Widow -6.093e-01 2.094e-01 -2.909 0.003625 **
act_tobYes -4.539e-01 8.365e-02 -5.427 5.74e-08 ***
max_ch 4.689e-03 6.168e-03 0.760 0.447171
IC 5.083e-01 6.084e-02 8.354 < 2e-16 ***
pop_dens -4.037e-05 9.563e-06 -4.221 2.43e-05 ***
r_pct -2.214e-02 1.847e-03 -11.985 < 2e-16 ***
RPL_4Second -2.400e-01 6.373e-02 -3.766 0.000166 ***
RPL_4Third -3.728e-01 7.434e-02 -5.015 5.31e-07 ***
RPL_4Fourth -9.052e-01 9.991e-02 -9.060 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 8699.1 on 6407 degrees of freedom
Residual deviance: 8179.2 on 6384 degrees of freedom
(8800 observations deleted due to missingness)
AIC: 8227.2
Number of Fisher Scoring iterations: 4
broom::glance(covid_full2)
broom::tidy(covid_full2, exponentiate = TRUE)
model_performance(covid_full2)
# Indices of model performance
AIC | BIC | Tjur's R2 | RMSE | Sigma | Log_loss | Score_log | Score_spherical | PCP
------------------------------------------------------------------------------------------------
8227.235 | 8389.602 | 0.079 | 0.473 | 1.132 | 0.638 | -Inf | 1.561e-04 | 0.553
tbl_regression(covid_full2, label = list(age_yrs ~ "Age", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", race_5 ~ "Race", RPL_4 ~ "SVI Quartile", r_pct ~ "Percent Republican", relig_affil ~ "Any Religious Affiliation", mstat_5 ~ "Marital Status", pop_dens ~ "Population Density", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index", IC ~ "Immunocompromised", ibd_3 ~ "IBD Type"), exponentiate = TRUE)
| Characteristic |
OR |
95% CI |
p-value |
| IBD Type |
|
|
|
| CD |
— |
— |
|
| UC |
1.07 |
0.95, 1.19 |
0.3 |
| Unspecified |
0.57 |
0.27, 1.14 |
0.12 |
| Age |
1.02 |
1.01, 1.02 |
<0.001 |
| Gender |
|
|
|
| Male |
— |
— |
|
| Female |
1.11 |
1.00, 1.23 |
0.049 |
| Race |
|
|
|
| White |
— |
— |
|
| Black |
0.81 |
0.65, 1.01 |
0.058 |
| Asian |
1.46 |
1.05, 2.07 |
0.028 |
| Native |
0.94 |
0.40, 2.30 |
0.9 |
| Other |
0.78 |
0.58, 1.05 |
0.10 |
| Ethnicity |
|
|
|
| NonHispanic |
— |
— |
|
| Hispanic |
1.47 |
1.02, 2.16 |
0.043 |
| Preferred Language |
|
|
|
| English |
— |
— |
|
| Other |
0.67 |
0.40, 1.14 |
0.14 |
| Any Religious Affiliation |
|
|
|
| Yes |
— |
— |
|
| No |
0.94 |
0.85, 1.05 |
0.3 |
| Marital Status |
|
|
|
| Married |
— |
— |
|
| Unknown |
0.99 |
0.85, 1.15 |
>0.9 |
| Unmarried |
0.73 |
0.64, 0.85 |
<0.001 |
| DivorcedSeparated |
0.69 |
0.50, 0.95 |
0.023 |
| Widow |
0.54 |
0.36, 0.82 |
0.004 |
| Active Tobacco Use |
|
|
|
| No |
— |
— |
|
| Yes |
0.64 |
0.54, 0.75 |
<0.001 |
| Charlson Comorbidity Index |
1.00 |
0.99, 1.02 |
0.4 |
| Immunocompromised |
1.66 |
1.48, 1.87 |
<0.001 |
| Population Density |
1.00 |
1.00, 1.00 |
<0.001 |
| Percent Republican |
0.98 |
0.97, 0.98 |
<0.001 |
| SVI Quartile |
|
|
|
| First |
— |
— |
|
| Second |
0.79 |
0.69, 0.89 |
<0.001 |
| Third |
0.69 |
0.60, 0.80 |
<0.001 |
| Fourth |
0.40 |
0.33, 0.49 |
<0.001 |
performance::check_model(covid_full2, panel = TRUE)

All Themes
covid_full3 <- glm(full_vax ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch + IC + pop_dens + r_pct + RPL_THEME1
+ RPL_THEME2 + RPL_THEME3 + RPL_THEME4,
family = binomial,
data = cov_clean1)
summary(covid_full3)
Call:
glm(formula = full_vax ~ ibd_3 + age_yrs + gender + race_5 +
ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch +
IC + pop_dens + r_pct + RPL_THEME1 + RPL_THEME2 + RPL_THEME3 +
RPL_THEME4, family = binomial, data = cov_clean1)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.1437 -1.1726 0.7356 1.0027 2.0060
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 7.210e-01 1.961e-01 3.676 0.000237 ***
ibd_3UC 6.074e-02 5.727e-02 1.061 0.288857
ibd_3Unspecified -5.166e-01 3.620e-01 -1.427 0.153537
age_yrs 1.549e-02 1.893e-03 8.180 2.83e-16 ***
genderFemale 1.064e-01 5.361e-02 1.985 0.047101 *
race_5Black -1.787e-01 1.121e-01 -1.595 0.110816
race_5Asian 3.010e-01 1.753e-01 1.717 0.086028 .
race_5Native -4.370e-02 4.454e-01 -0.098 0.921828
race_5Other -2.706e-01 1.524e-01 -1.775 0.075895 .
ethnic_3Hispanic 3.810e-01 1.924e-01 1.980 0.047649 *
lang_3Other -4.356e-01 2.645e-01 -1.647 0.099600 .
relig_affilNo -4.872e-02 5.498e-02 -0.886 0.375477
mstat_5Unknown 3.397e-03 7.683e-02 0.044 0.964737
mstat_5Unmarried -2.969e-01 7.222e-02 -4.111 3.94e-05 ***
mstat_5DivorcedSeparated -3.465e-01 1.635e-01 -2.119 0.034060 *
mstat_5Widow -6.048e-01 2.102e-01 -2.877 0.004013 **
act_tobYes -4.415e-01 8.403e-02 -5.254 1.49e-07 ***
max_ch 5.012e-03 6.191e-03 0.810 0.418151
IC 5.090e-01 6.107e-02 8.335 < 2e-16 ***
pop_dens -3.617e-05 9.460e-06 -3.823 0.000132 ***
r_pct -1.741e-02 2.136e-03 -8.151 3.60e-16 ***
RPL_THEME1 -5.884e-01 1.559e-01 -3.774 0.000160 ***
RPL_THEME2 -5.110e-01 1.359e-01 -3.760 0.000170 ***
RPL_THEME3 1.946e-01 1.118e-01 1.741 0.081619 .
RPL_THEME4 -2.742e-01 1.156e-01 -2.372 0.017695 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 8699.1 on 6407 degrees of freedom
Residual deviance: 8143.8 on 6383 degrees of freedom
(8800 observations deleted due to missingness)
AIC: 8193.8
Number of Fisher Scoring iterations: 4
broom::glance(covid_full3)
broom::tidy(covid_full3, exponentiate = TRUE)
model_performance(covid_full3)
# Indices of model performance
AIC | BIC | Tjur's R2 | RMSE | Sigma | Log_loss | Score_log | Score_spherical | PCP
------------------------------------------------------------------------------------------------
8193.803 | 8362.936 | 0.084 | 0.472 | 1.130 | 0.635 | -Inf | 1.561e-04 | 0.555
tbl_regression(covid_full3, label = list(age_yrs ~ "Age", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", race_5 ~ "Race", RPL_THEME1 ~ "Soceioeconomic Status", RPL_THEME2 ~ "Household Composition", RPL_THEME3 ~ "Minority Status and Language", RPL_THEME4 ~ "Housing and Transportation", r_pct ~ "Percent Republican", relig_affil ~ "Any Religious Affiliation", mstat_5 ~ "Marital Status", pop_dens ~ "Population Density", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index", IC ~ "Immunocompromised", ibd_3 ~ "IBD Type"), exponentiate = TRUE)
| Characteristic |
OR |
95% CI |
p-value |
| IBD Type |
|
|
|
| CD |
— |
— |
|
| UC |
1.06 |
0.95, 1.19 |
0.3 |
| Unspecified |
0.60 |
0.29, 1.20 |
0.2 |
| Age |
1.02 |
1.01, 1.02 |
<0.001 |
| Gender |
|
|
|
| Male |
— |
— |
|
| Female |
1.11 |
1.00, 1.24 |
0.047 |
| Race |
|
|
|
| White |
— |
— |
|
| Black |
0.84 |
0.67, 1.04 |
0.11 |
| Asian |
1.35 |
0.96, 1.92 |
0.086 |
| Native |
0.96 |
0.40, 2.35 |
>0.9 |
| Other |
0.76 |
0.57, 1.03 |
0.076 |
| Ethnicity |
|
|
|
| NonHispanic |
— |
— |
|
| Hispanic |
1.46 |
1.01, 2.15 |
0.048 |
| Preferred Language |
|
|
|
| English |
— |
— |
|
| Other |
0.65 |
0.39, 1.09 |
0.10 |
| Any Religious Affiliation |
|
|
|
| Yes |
— |
— |
|
| No |
0.95 |
0.86, 1.06 |
0.4 |
| Marital Status |
|
|
|
| Married |
— |
— |
|
| Unknown |
1.00 |
0.86, 1.17 |
>0.9 |
| Unmarried |
0.74 |
0.65, 0.86 |
<0.001 |
| DivorcedSeparated |
0.71 |
0.51, 0.98 |
0.034 |
| Widow |
0.55 |
0.36, 0.83 |
0.004 |
| Active Tobacco Use |
|
|
|
| No |
— |
— |
|
| Yes |
0.64 |
0.55, 0.76 |
<0.001 |
| Charlson Comorbidity Index |
1.01 |
0.99, 1.02 |
0.4 |
| Immunocompromised |
1.66 |
1.48, 1.88 |
<0.001 |
| Population Density |
1.00 |
1.00, 1.00 |
<0.001 |
| Percent Republican |
0.98 |
0.98, 0.99 |
<0.001 |
| Soceioeconomic Status |
0.56 |
0.41, 0.75 |
<0.001 |
| Household Composition |
0.60 |
0.46, 0.78 |
<0.001 |
| Minority Status and Language |
1.21 |
0.98, 1.51 |
0.082 |
| Housing and Transportation |
0.76 |
0.61, 0.95 |
0.018 |
performance::check_model(covid_full3, panel = TRUE)

Fully vaccinated and boosted
RPL_Themes
boosted1 <- glm(vax_boost ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch + IC + pop_dens + r_pct + RPL_THEMES,
family = binomial,
data = cov_clean1)
summary(boosted1)
Call:
glm(formula = vax_boost ~ ibd_3 + age_yrs + gender + race_5 +
ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch +
IC + pop_dens + r_pct + RPL_THEMES, family = binomial, data = cov_clean1)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.0622 -0.9766 -0.6725 1.1275 2.5576
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 2.507e-01 1.706e-01 1.470 0.141574
ibd_3UC 9.039e-03 5.813e-02 0.156 0.876421
ibd_3Unspecified -8.686e-01 4.475e-01 -1.941 0.052226 .
age_yrs 2.171e-02 1.913e-03 11.347 < 2e-16 ***
genderFemale 1.700e-01 5.475e-02 3.106 0.001898 **
race_5Black -4.871e-01 1.171e-01 -4.158 3.21e-05 ***
race_5Asian 5.447e-01 1.641e-01 3.321 0.000898 ***
race_5Native -5.242e-01 4.737e-01 -1.106 0.268511
race_5Other -4.609e-01 1.634e-01 -2.820 0.004799 **
ethnic_3Hispanic 1.426e-01 1.945e-01 0.733 0.463397
lang_3Other -1.008e+00 3.073e-01 -3.281 0.001034 **
relig_affilNo -3.798e-02 5.626e-02 -0.675 0.499659
mstat_5Unknown -1.059e-01 7.636e-02 -1.386 0.165599
mstat_5Unmarried -2.985e-01 7.281e-02 -4.099 4.15e-05 ***
mstat_5DivorcedSeparated -3.212e-01 1.680e-01 -1.912 0.055843 .
mstat_5Widow -7.817e-01 2.112e-01 -3.702 0.000214 ***
act_tobYes -4.862e-01 9.276e-02 -5.241 1.60e-07 ***
max_ch 1.380e-02 6.099e-03 2.263 0.023611 *
IC 4.306e-01 6.227e-02 6.916 4.66e-12 ***
pop_dens -4.768e-05 1.147e-05 -4.156 3.24e-05 ***
r_pct -2.821e-02 1.912e-03 -14.759 < 2e-16 ***
RPL_THEMES -1.176e+00 1.139e-01 -10.320 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 8685.2 on 6407 degrees of freedom
Residual deviance: 7902.4 on 6386 degrees of freedom
(8800 observations deleted due to missingness)
AIC: 7946.4
Number of Fisher Scoring iterations: 4
broom::glance(boosted1)
broom::tidy(boosted1, exponentiate = TRUE)
model_performance(boosted1)
# Indices of model performance
AIC | BIC | Tjur's R2 | RMSE | Sigma | Log_loss | Score_log | Score_spherical | PCP
------------------------------------------------------------------------------------------------
7946.426 | 8095.262 | 0.116 | 0.463 | 1.112 | 0.617 | -Inf | 1.561e-04 | 0.572
tbl_regression(boosted1, label = list(age_yrs ~ "Age", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", race_5 ~ "Race", RPL_THEMES ~ "Total SVI", r_pct ~ "Percent Republican", relig_affil ~ "Any Religious Affiliation", mstat_5 ~ "Marital Status", pop_dens ~ "Population Density", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index", IC ~ "Immunocompromised", ibd_3 ~ "IBD Type"), exponentiate = TRUE)
| Characteristic |
OR |
95% CI |
p-value |
| IBD Type |
|
|
|
| CD |
— |
— |
|
| UC |
1.01 |
0.90, 1.13 |
0.9 |
| Unspecified |
0.42 |
0.16, 0.96 |
0.052 |
| Age |
1.02 |
1.02, 1.03 |
<0.001 |
| Gender |
|
|
|
| Male |
— |
— |
|
| Female |
1.19 |
1.06, 1.32 |
0.002 |
| Race |
|
|
|
| White |
— |
— |
|
| Black |
0.61 |
0.49, 0.77 |
<0.001 |
| Asian |
1.72 |
1.25, 2.38 |
<0.001 |
| Native |
0.59 |
0.22, 1.46 |
0.3 |
| Other |
0.63 |
0.46, 0.87 |
0.005 |
| Ethnicity |
|
|
|
| NonHispanic |
— |
— |
|
| Hispanic |
1.15 |
0.78, 1.68 |
0.5 |
| Preferred Language |
|
|
|
| English |
— |
— |
|
| Other |
0.36 |
0.19, 0.65 |
0.001 |
| Any Religious Affiliation |
|
|
|
| Yes |
— |
— |
|
| No |
0.96 |
0.86, 1.07 |
0.5 |
| Marital Status |
|
|
|
| Married |
— |
— |
|
| Unknown |
0.90 |
0.77, 1.04 |
0.2 |
| Unmarried |
0.74 |
0.64, 0.86 |
<0.001 |
| DivorcedSeparated |
0.73 |
0.52, 1.01 |
0.056 |
| Widow |
0.46 |
0.30, 0.69 |
<0.001 |
| Active Tobacco Use |
|
|
|
| No |
— |
— |
|
| Yes |
0.61 |
0.51, 0.74 |
<0.001 |
| Charlson Comorbidity Index |
1.01 |
1.00, 1.03 |
0.024 |
| Immunocompromised |
1.54 |
1.36, 1.74 |
<0.001 |
| Population Density |
1.00 |
1.00, 1.00 |
<0.001 |
| Percent Republican |
0.97 |
0.97, 0.98 |
<0.001 |
| Total SVI |
0.31 |
0.25, 0.39 |
<0.001 |
performance::check_model(boosted1, panel = TRUE)

RPL Quartiles
covid_boost2 <- glm(vax_boost ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch + IC + pop_dens + r_pct + RPL_4,
family = binomial,
data = cov_clean1)
summary(covid_boost2)
Call:
glm(formula = vax_boost ~ ibd_3 + age_yrs + gender + race_5 +
ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch +
IC + pop_dens + r_pct + RPL_4, family = binomial, data = cov_clean1)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.0159 -0.9801 -0.6705 1.1221 2.5547
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 1.342e-01 1.696e-01 0.791 0.428879
ibd_3UC 1.063e-02 5.813e-02 0.183 0.854887
ibd_3Unspecified -9.189e-01 4.452e-01 -2.064 0.039009 *
age_yrs 2.155e-02 1.912e-03 11.271 < 2e-16 ***
genderFemale 1.699e-01 5.473e-02 3.104 0.001907 **
race_5Black -4.944e-01 1.176e-01 -4.206 2.60e-05 ***
race_5Asian 5.461e-01 1.638e-01 3.333 0.000858 ***
race_5Native -5.297e-01 4.752e-01 -1.115 0.265052
race_5Other -4.655e-01 1.635e-01 -2.846 0.004421 **
ethnic_3Hispanic 1.387e-01 1.945e-01 0.713 0.475943
lang_3Other -1.022e+00 3.074e-01 -3.326 0.000880 ***
relig_affilNo -3.728e-02 5.624e-02 -0.663 0.507443
mstat_5Unknown -1.149e-01 7.630e-02 -1.506 0.131995
mstat_5Unmarried -3.054e-01 7.278e-02 -4.196 2.72e-05 ***
mstat_5DivorcedSeparated -3.358e-01 1.680e-01 -1.999 0.045641 *
mstat_5Widow -7.909e-01 2.106e-01 -3.755 0.000173 ***
act_tobYes -4.968e-01 9.267e-02 -5.361 8.27e-08 ***
max_ch 1.382e-02 6.095e-03 2.268 0.023320 *
IC 4.258e-01 6.222e-02 6.844 7.69e-12 ***
pop_dens -4.961e-05 1.164e-05 -4.262 2.03e-05 ***
r_pct -2.842e-02 1.924e-03 -14.777 < 2e-16 ***
RPL_4Second -3.148e-01 6.437e-02 -4.891 1.00e-06 ***
RPL_4Third -4.319e-01 7.682e-02 -5.622 1.89e-08 ***
RPL_4Fourth -1.028e+00 1.112e-01 -9.249 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 8685.2 on 6407 degrees of freedom
Residual deviance: 7906.1 on 6384 degrees of freedom
(8800 observations deleted due to missingness)
AIC: 7954.1
Number of Fisher Scoring iterations: 4
broom::glance(covid_boost2)
broom::tidy(covid_boost2, exponentiate = TRUE)
model_performance(covid_boost2)
# Indices of model performance
AIC | BIC | Tjur's R2 | RMSE | Sigma | Log_loss | Score_log | Score_spherical | PCP
------------------------------------------------------------------------------------------------
7954.124 | 8116.491 | 0.116 | 0.463 | 1.113 | 0.617 | -Inf | 1.561e-04 | 0.571
tbl_regression(covid_boost2, label = list(age_yrs ~ "Age", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", race_5 ~ "Race", RPL_4 ~ "SVI Quartile", r_pct ~ "Percent Republican", relig_affil ~ "Any Religious Affiliation", mstat_5 ~ "Marital Status", pop_dens ~ "Population Density", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index", IC ~ "Immunocompromised", ibd_3 ~ "IBD Type"), exponentiate = TRUE)
| Characteristic |
OR |
95% CI |
p-value |
| IBD Type |
|
|
|
| CD |
— |
— |
|
| UC |
1.01 |
0.90, 1.13 |
0.9 |
| Unspecified |
0.40 |
0.15, 0.91 |
0.039 |
| Age |
1.02 |
1.02, 1.03 |
<0.001 |
| Gender |
|
|
|
| Male |
— |
— |
|
| Female |
1.19 |
1.06, 1.32 |
0.002 |
| Race |
|
|
|
| White |
— |
— |
|
| Black |
0.61 |
0.48, 0.77 |
<0.001 |
| Asian |
1.73 |
1.25, 2.39 |
<0.001 |
| Native |
0.59 |
0.22, 1.46 |
0.3 |
| Other |
0.63 |
0.45, 0.86 |
0.004 |
| Ethnicity |
|
|
|
| NonHispanic |
— |
— |
|
| Hispanic |
1.15 |
0.78, 1.68 |
0.5 |
| Preferred Language |
|
|
|
| English |
— |
— |
|
| Other |
0.36 |
0.19, 0.64 |
<0.001 |
| Any Religious Affiliation |
|
|
|
| Yes |
— |
— |
|
| No |
0.96 |
0.86, 1.08 |
0.5 |
| Marital Status |
|
|
|
| Married |
— |
— |
|
| Unknown |
0.89 |
0.77, 1.04 |
0.13 |
| Unmarried |
0.74 |
0.64, 0.85 |
<0.001 |
| DivorcedSeparated |
0.71 |
0.51, 0.99 |
0.046 |
| Widow |
0.45 |
0.30, 0.68 |
<0.001 |
| Active Tobacco Use |
|
|
|
| No |
— |
— |
|
| Yes |
0.61 |
0.51, 0.73 |
<0.001 |
| Charlson Comorbidity Index |
1.01 |
1.00, 1.03 |
0.023 |
| Immunocompromised |
1.53 |
1.36, 1.73 |
<0.001 |
| Population Density |
1.00 |
1.00, 1.00 |
<0.001 |
| Percent Republican |
0.97 |
0.97, 0.98 |
<0.001 |
| SVI Quartile |
|
|
|
| First |
— |
— |
|
| Second |
0.73 |
0.64, 0.83 |
<0.001 |
| Third |
0.65 |
0.56, 0.75 |
<0.001 |
| Fourth |
0.36 |
0.29, 0.44 |
<0.001 |
performance::check_model(covid_boost2, panel = TRUE)

All themes
boost3 <- glm(vax_boost ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch + IC + pop_dens + r_pct + RPL_THEME1
+ RPL_THEME2 + RPL_THEME3 + RPL_THEME4,
family = binomial,
data = cov_clean1)
summary(boost3)
Call:
glm(formula = vax_boost ~ ibd_3 + age_yrs + gender + race_5 +
ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch +
IC + pop_dens + r_pct + RPL_THEME1 + RPL_THEME2 + RPL_THEME3 +
RPL_THEME4, family = binomial, data = cov_clean1)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.0596 -0.9724 -0.6616 1.1233 2.6140
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 1.472e-02 2.014e-01 0.073 0.941732
ibd_3UC 5.886e-03 5.830e-02 0.101 0.919587
ibd_3Unspecified -8.623e-01 4.457e-01 -1.935 0.053041 .
age_yrs 2.208e-02 1.921e-03 11.495 < 2e-16 ***
genderFemale 1.716e-01 5.489e-02 3.127 0.001767 **
race_5Black -4.555e-01 1.180e-01 -3.859 0.000114 ***
race_5Asian 4.533e-01 1.654e-01 2.741 0.006123 **
race_5Native -5.205e-01 4.763e-01 -1.093 0.274530
race_5Other -4.859e-01 1.641e-01 -2.962 0.003056 **
ethnic_3Hispanic 1.245e-01 1.952e-01 0.638 0.523597
lang_3Other -1.068e+00 3.075e-01 -3.472 0.000516 ***
relig_affilNo -2.475e-02 5.655e-02 -0.438 0.661634
mstat_5Unknown -1.033e-01 7.658e-02 -1.348 0.177558
mstat_5Unmarried -2.932e-01 7.305e-02 -4.013 5.99e-05 ***
mstat_5DivorcedSeparated -3.114e-01 1.684e-01 -1.849 0.064478 .
mstat_5Widow -7.868e-01 2.113e-01 -3.724 0.000196 ***
act_tobYes -4.855e-01 9.303e-02 -5.218 1.81e-07 ***
max_ch 1.398e-02 6.118e-03 2.284 0.022344 *
IC 4.254e-01 6.246e-02 6.811 9.67e-12 ***
pop_dens -4.315e-05 1.163e-05 -3.710 0.000208 ***
r_pct -2.300e-02 2.223e-03 -10.347 < 2e-16 ***
RPL_THEME1 -6.717e-01 1.625e-01 -4.134 3.57e-05 ***
RPL_THEME2 -5.733e-01 1.410e-01 -4.066 4.79e-05 ***
RPL_THEME3 2.130e-01 1.138e-01 1.872 0.061252 .
RPL_THEME4 -2.555e-01 1.199e-01 -2.132 0.033009 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 8685.2 on 6407 degrees of freedom
Residual deviance: 7873.2 on 6383 degrees of freedom
(8800 observations deleted due to missingness)
AIC: 7923.2
Number of Fisher Scoring iterations: 4
broom::glance(boost3)
broom::tidy(boost3, exponentiate = TRUE)
model_performance(boost3)
# Indices of model performance
AIC | BIC | Tjur's R2 | RMSE | Sigma | Log_loss | Score_log | Score_spherical | PCP
------------------------------------------------------------------------------------------------
7923.178 | 8092.310 | 0.120 | 0.462 | 1.111 | 0.614 | -Inf | 1.561e-04 | 0.574
tbl_regression(boost3, label = list(age_yrs ~ "Age", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", race_5 ~ "Race", RPL_THEME1 ~ "Soceioeconomic Status", RPL_THEME2 ~ "Household Composition", RPL_THEME3 ~ "Minority Status and Language", RPL_THEME4 ~ "Housing and Transportation", r_pct ~ "Percent Republican", relig_affil ~ "Any Religious Affiliation", mstat_5 ~ "Marital Status", pop_dens ~ "Population Density", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index", IC ~ "Immunocompromised", ibd_3 ~ "IBD Type"), exponentiate = TRUE)
| Characteristic |
OR |
95% CI |
p-value |
| IBD Type |
|
|
|
| CD |
— |
— |
|
| UC |
1.01 |
0.90, 1.13 |
>0.9 |
| Unspecified |
0.42 |
0.16, 0.96 |
0.053 |
| Age |
1.02 |
1.02, 1.03 |
<0.001 |
| Gender |
|
|
|
| Male |
— |
— |
|
| Female |
1.19 |
1.07, 1.32 |
0.002 |
| Race |
|
|
|
| White |
— |
— |
|
| Black |
0.63 |
0.50, 0.80 |
<0.001 |
| Asian |
1.57 |
1.14, 2.18 |
0.006 |
| Native |
0.59 |
0.22, 1.48 |
0.3 |
| Other |
0.62 |
0.44, 0.85 |
0.003 |
| Ethnicity |
|
|
|
| NonHispanic |
— |
— |
|
| Hispanic |
1.13 |
0.77, 1.66 |
0.5 |
| Preferred Language |
|
|
|
| English |
— |
— |
|
| Other |
0.34 |
0.18, 0.62 |
<0.001 |
| Any Religious Affiliation |
|
|
|
| Yes |
— |
— |
|
| No |
0.98 |
0.87, 1.09 |
0.7 |
| Marital Status |
|
|
|
| Married |
— |
— |
|
| Unknown |
0.90 |
0.78, 1.05 |
0.2 |
| Unmarried |
0.75 |
0.65, 0.86 |
<0.001 |
| DivorcedSeparated |
0.73 |
0.52, 1.02 |
0.064 |
| Widow |
0.46 |
0.30, 0.69 |
<0.001 |
| Active Tobacco Use |
|
|
|
| No |
— |
— |
|
| Yes |
0.62 |
0.51, 0.74 |
<0.001 |
| Charlson Comorbidity Index |
1.01 |
1.00, 1.03 |
0.022 |
| Immunocompromised |
1.53 |
1.35, 1.73 |
<0.001 |
| Population Density |
1.00 |
1.00, 1.00 |
<0.001 |
| Percent Republican |
0.98 |
0.97, 0.98 |
<0.001 |
| Soceioeconomic Status |
0.51 |
0.37, 0.70 |
<0.001 |
| Household Composition |
0.56 |
0.43, 0.74 |
<0.001 |
| Minority Status and Language |
1.24 |
0.99, 1.55 |
0.061 |
| Housing and Transportation |
0.77 |
0.61, 0.98 |
0.033 |
performance::check_model(boost3, panel = TRUE)

OLD ANALYSIS
Main Model with all variables
covid.nb <- glm.nb(total_cov_vax ~ age_yrs + gender + race_5 + ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch + pop_dens + r_pct + RPL_THEMES,
data = covid_vax_dta)
summary(covid.nb)
broom::glance(covid.nb)
broom::tidy(covid.nb, exponentiate = TRUE)
model_performance(covid.nb)
tbl_regression(covid.nb, label = list(age_yrs ~ "Age", pop_dens ~ "Population density", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", relig_affil ~ "Any Religious Affiliation", RPL_THEMES ~ "Total SVI", mstat_5 ~ "Marital Status", r_pct ~ "Percent Rebuplican", race_5 ~ "race", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index"), exponentiate = TRUE)
## Model Performance
performance::check_model(covid.nb, panel = TRUE)
## Margins
cplot(covid.nb, "RPL_THEMES", what = "prediction", main = "Predicted # COVID Vaccines Given SVI")
Drop tobacco use
covid.nb1 <- glm.nb(total_cov_vax ~ age_yrs + gender + race_5 + ethnic_3 + lang_3 + relig_affil + mstat_5 + max_ch + pop_dens + r_pct + RPL_THEMES,
data = covid_vax_dta)
summary(covid.nb1)
broom::glance(covid.nb1)
broom::tidy(covid.nb1, exponentiate = TRUE)
model_performance(covid.nb1)
tbl_regression(covid.nb1, label = list(age_yrs ~ "Age", pop_dens ~ "Population density", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", relig_affil ~ "Any Religious Affiliation", RPL_THEMES ~ "Total SVI", mstat_5 ~ "Marital Status", r_pct ~ "Percent Rebuplican", race_5 ~ "race", max_ch ~ "Charlson Comorbidity Index"), exponentiate = TRUE)
## NB Model Performance
performance::check_model(covid.nb1, panel = TRUE)
## NB Margins
cplot(covid.nb1, "RPL_THEMES", what = "prediction", main = "Predicted # COVID Vaccines Given SVI")
Quadratics
covid.nb3 <- glm.nb(total_cov_vax ~ I(age_yrs^2) + gender + race_5 + ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch + pop_dens + r_pct + I(RPL_THEMES^2),
data = covid_vax_dta)
summary(covid.nb3)
broom::glance(covid.nb3)
broom::tidy(covid.nb3, exponentiate = TRUE)
model_performance(covid.nb3)
tbl_regression(covid.nb3, label = list(pop_dens ~ "Population density", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", relig_affil ~ "Any Religious Affiliation", mstat_5 ~ "Marital Status", r_pct ~ "Percent Rebuplican", race_5 ~ "race", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index"), exponentiate = TRUE)
## Model Performance (R^2 essentially unchanged)
performance::check_model(covid.nb3, panel = TRUE)
## Margins
library(margins)
cplot(covid.nb3, "RPL_THEMES", what = "prediction", main = "Predicted # COVID Vaccines Given SVI")
Drop r_pct
covid.nb4 <- glm.nb(total_cov_vax ~ age_yrs + gender + race_5 + ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch + pop_dens + RPL_THEMES,
data = covid_vax_dta)
summary(covid.nb4)
broom::glance(covid.nb4)
broom::tidy(covid.nb4, exponentiate = TRUE)
model_performance(covid.nb4)
tbl_regression(covid.nb4, label = list(age_yrs ~ "Age", pop_dens ~ "Population density", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", relig_affil ~ "Any Religious Affiliation", RPL_THEMES ~ "Total SVI", mstat_5 ~ "Marital Status", race_5 ~ "race", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index"), exponentiate = TRUE)
## Model Performance - R^2 goes from 10 to 6
performance::check_model(covid.nb4, panel = TRUE)
## Margins
cplot(covid.nb4, "RPL_THEMES", what = "prediction", main = "Predicted # COVID Vaccines Given SVI")
Interaction between r_pct and SVI
covid.nb5 <- glm.nb(total_cov_vax ~ age_yrs + gender + race_5 + ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch + pop_dens + r_pct*RPL_THEMES,
data = covid_vax_dta)
summary(covid.nb5)
broom::glance(covid.nb5)
broom::tidy(covid.nb5, exponentiate = TRUE)
model_performance(covid.nb5)
tbl_regression(covid.nb5, label = list(age_yrs ~ "Age", pop_dens ~ "Population density", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", relig_affil ~ "Any Religious Affiliation", RPL_THEMES ~ "Total SVI", mstat_5 ~ "Marital Status", race_5 ~ "race", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index", r_pct ~ "Percent Republican"), exponentiate = TRUE)
## Model Performance - R^2 goes from 10 to 6
performance::check_model(covid.nb5, panel = TRUE)
## Margins
cplot(covid.nb5, "RPL_THEMES", what = "prediction", main = "Predicted # COVID Vaccines Given SVI")
Interaction between race + SVI
covid.nb6 <- glm.nb(total_cov_vax ~ age_yrs + gender + ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch + r_pct + pop_dens + race_5*RPL_THEMES,
data = covid_vax_dta)
summary(covid.nb6)
broom::glance(covid.nb6)
broom::tidy(covid.nb6, exponentiate = TRUE)
model_performance(covid.nb6)
tbl_regression(covid.nb6, label = list(age_yrs ~ "Age", pop_dens ~ "Population density", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", relig_affil ~ "Any Religious Affiliation", RPL_THEMES ~ "Total SVI", mstat_5 ~ "Marital Status", race_5 ~ "race", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index", r_pct ~ "Percent Republican"), exponentiate = TRUE)
## Model Performance - R^2 goes from 10 to 6
performance::check_model(covid.nb6, panel = TRUE)
## Margins
cplot(covid.nb6, "RPL_THEMES", what = "prediction", main = "Predicted # COVID Vaccines Given SVI")
All Themes
Negative binomial model with all variables
covid_themes.nb <- glm.nb(total_cov_vax ~ age_yrs + gender + race_5 + ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch + pop_dens + r_pct + RPL_THEME1 + RPL_THEME2 + RPL_THEME3 + RPL_THEME4,
data = covid_vax_dta)
summary(covid_themes.nb)
broom::glance(covid_themes.nb)
broom::tidy(covid_themes.nb, exponentiate = TRUE)
model_performance(covid_themes.nb)
tbl_regression(covid_themes.nb, label = list(age_yrs ~ "Age", pop_dens ~ "Population density", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", relig_affil ~ "Any Religious Affiliation", RPL_THEME1 ~ "Soceioeconomic Status", RPL_THEME2 ~ "Household Composition", RPL_THEME3 ~ "Minority Status and Language", RPL_THEME4 ~ "Housing and Transportation", mstat_5 ~ "Marital Status", r_pct ~ "Percent Rebuplican", race_5 ~ "race", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index"), exponentiate = TRUE)
## Model Performance
performance::check_model(covid_themes.nb, panel = TRUE)
## Margins
cplot(covid_themes.nb, "RPL_THEME1", what = "prediction", main = "Predicted # COVID Vaccines Given THEME1")
cplot(covid_themes.nb, "RPL_THEME2", what = "prediction", main = "Predicted # COVID Vaccines Given THEME2")
cplot(covid_themes.nb, "RPL_THEME3", what = "prediction", main = "Predicted # COVID Vaccines Given THEME3")
cplot(covid_themes.nb, "RPL_THEME4", what = "prediction", main = "Predicted # COVID Vaccines Given THEME4")
LS0tCnRpdGxlOiAiQ09WSUQgVmF4IE1vZGVscyIKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2s6CiAgICB0aGVtZXM6IHBhcGVyCiAgICB0b2M6IHllcwogICAgdG9jX2Zsb2F0OiB5ZXMKZWRpdG9yX29wdGlvbnM6CiAgY2h1bmtfb3V0cHV0X3R5cGU6IGlubGluZQpkYXRlOiAnMjAyMi0xMS04JwotLS0KCiMgTG9hZCBQYWNrYWdlcyAKYGBge3J9CmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KGNvZGVib29rcikKbGlicmFyeShzdW1tYXJ5dG9vbHMpCmxpYnJhcnkoYnJvb20pIApsaWJyYXJ5KHBlcmZvcm1hbmNlKQpsaWJyYXJ5KGd0KQpsaWJyYXJ5KGd0c3VtbWFyeSkKbGlicmFyeShqYW5pdG9yKQpsaWJyYXJ5KGZvcmNhdHMpCmxpYnJhcnkoaGVyZSkKbGlicmFyeShtYXJnaW5zKQpsaWJyYXJ5KGdncGxvdDIpCmBgYAoKIyBJbXBvcnQgRGF0YSAKYGBge3J9CmxvYWQoZmlsZSA9ICJ+L0Rlc2t0b3AvUi1Db2RlL1NET0hfVmF4L3ZheF9jbGVhbjEucmRhIikKCgpgYGAKCiMgQ292aWQgdmFyaWFibGUgCmBgYHtyfQp2YXhfY2xlYW4xICU+JSAKbXV0YXRlKGZ1bGxfdmF4ID0gY2FzZV93aGVuKHRvdGFsX2Nvdl92YXg+PSAyIH4gJzEnLFRSVUUgfiAiMCIpKSAlPiUgCiAgbXV0YXRlKHZheF9ib29zdCA9IGNhc2Vfd2hlbih0b3RhbF9jb3ZfdmF4Pj0gMyB+ICcxJyxUUlVFIH4gIjAiKSkgLT4gY292X2NsZWFuMQpgYGAKCiMgQ29kZWJvb2sKYGBge3J9CnByaW50KGRmU3VtbWFyeShjb3ZfY2xlYW4xKSwgbWV0aG9kID0gJ3JlbmRlcicpCmBgYAoKIyBCYXNlbGluZSBDaGFyYWN0ZXJpc3RpY3Mgey50YWJzZXR9CiMjIFRvdGFsIApgYGB7cn0KY292X2NsZWFuMSAlPiUgCiAgZHBseXI6OnNlbGVjdChpYmRfMywgYWdlX3lycywgZ2VuZGVyLCByYWNlXzUsIGV0aG5pY18zLCBsYW5nXzMsIHJlbGlnX2FmZmlsLCBtc3RhdF81LCBhY3RfdG9iLCBtYXhfY2gsIElDLCBwb3BfZGVucyxyX3BjdCwgdG90YWxfY292X3ZheCwgZnVsbF92YXgsIHZheF9ib29zdCwgUlBMX1RIRU1FUywgUlBMXzQsIFJQTF9USEVNRTEsIFJQTF9USEVNRTIsIFJQTF9USEVNRTMsIFJQTF9USEVNRTQpIC0+IGJhc2VsaW5lCmJhc2VsaW5lICU+JSB0Ymxfc3VtbWFyeShsYWJlbCA9IGxpc3QoYWdlX3lycyB+ICJBZ2UiLCBnZW5kZXJ+ICJHZW5kZXIiLCByYWNlXzUgfiAiUmFjZSIsIGV0aG5pY18zIH4gIkV0aG5pY2l0eSIsIGxhbmdfMyB+ICJQcmltYXJ5IExhbmd1YWdlIiwgcmVsaWdfYWZmaWwgfiAiQW55IFJlbGlnaW91cyBBZmZpbGlhdGlvbiIsIG1zdGF0XzUgfiAiTWFyaXRhbCBTdGF0dXMiLCBSUExfVEhFTUVTIH4gIlRvdGFsIFNWSSIsIFJQTF9USEVNRTEgfiAiU29jZWlvZWNvbm9taWMgU3RhdHVzIiwgUlBMX1RIRU1FMiB+ICJIb3VzZWhvbGQgQ29tcG9zaXRpb24iLCBSUExfVEhFTUUzIH4gIk1pbm9yaXR5IFN0YXR1cyBhbmQgTGFuZ3VhZ2UiLCBSUExfVEhFTUU0IH4gIkhvdXNpbmcgYW5kIFRyYW5zcG9ydGF0aW9uIiwgcG9wX2RlbnMgfiAiUG9wdWxhdGlvbiBEZW5zaXR5IiwgUlBMXzQgfiAiU1ZJIFF1YXJ0aWxlcyIsIHJfcGN0IH4gIlBlcmNlbnQgUmVwdWJsaWNhbiIsIGFjdF90b2IgfiJBY3RpdmUgVG9iYWNjbyBVc2UiLCBtYXhfY2ggfiAiQ2hhcmxzb24gQ29tb3JiaWRpdHkgSW5kZXgiLCBpYmRfMyB+ICJJQkQgVHlwZSIsIGZ1bGxfdmF4IH4gIkZ1bGx5IFZhY2NpbmF0ZWQiLCB0b3RhbF9jb3ZfdmF4IH4gIlRvdGFsIENPVklEIFZhY2NpbmVzIiwgdmF4X2Jvb3N0IH4gIkJvb3N0ZWQiLCBJQyB+ICJJbW11bm9jb21wcm9taXNlZCIpLAogICAgICAgIHN0YXRpc3RpYyA9IGxpc3QoYWxsX2NvbnRpbnVvdXMoKSB+ICJ7bWVhbn0gKHtzZH0pIiksCiAgICAgICAgbWlzc2luZ190ZXh0ID0gIihNaXNzaW5nKSIpCmBgYAoKCiMjIEJ5IFNWSSBRdWFydGlsZSAKYGBge3J9CmJhc2VsaW5lICU+JSAKdGJsX3N1bW1hcnkoYnkgPSBSUExfNCwKICAgICAgICAgbGFiZWwgPSBsaXN0KGFnZV95cnMgfiAiQWdlIiwgZ2VuZGVyfiAiR2VuZGVyIiwgcmFjZV81IH4gIlJhY2UiLCBldGhuaWNfMyB+ICJFdGhuaWNpdHkiLCBsYW5nXzMgfiAiUHJpbWFyeSBMYW5ndWFnZSIsIHJlbGlnX2FmZmlsIH4gIkFueSBSZWxpZ2lvdXMgQWZmaWxpYXRpb24iLCBtc3RhdF81IH4gIk1hcml0YWwgU3RhdHVzIiwgUlBMX1RIRU1FUyB+ICJUb3RhbCBTVkkiLCBSUExfVEhFTUUxIH4gIlNvY2Vpb2Vjb25vbWljIFN0YXR1cyIsIFJQTF9USEVNRTIgfiAiSG91c2Vob2xkIENvbXBvc2l0aW9uIiwgUlBMX1RIRU1FMyB+ICJNaW5vcml0eSBTdGF0dXMgYW5kIExhbmd1YWdlIiwgUlBMX1RIRU1FNCB+ICJIb3VzaW5nIGFuZCBUcmFuc3BvcnRhdGlvbiIsIHBvcF9kZW5zIH4gIlBvcHVsYXRpb24gRGVuc2l0eSIsIFJQTF80IH4gIlNWSSBRdWFydGlsZXMiLCByX3BjdCB+ICJQZXJjZW50IFJlcHVibGljYW4iLCBhY3RfdG9iIH4iQWN0aXZlIFRvYmFjY28gVXNlIiwgbWF4X2NoIH4gIkNoYXJsc29uIENvbW9yYmlkaXR5IEluZGV4IiwgaWJkXzMgfiAiSUJEIFR5cGUiLCBmdWxsX3ZheCB+ICJGdWxseSBWYWNjaW5hdGVkIiwgdG90YWxfY292X3ZheCB+ICJUb3RhbCBDT1ZJRCBWYWNjaW5lcyIsIHZheF9ib29zdCB+ICJCb29zdGVkIiwgSUMgfiAiSW1tdW5vY29tcHJvbWlzZWQiKSwKICAgICAgICBzdGF0aXN0aWMgPSBsaXN0KGFsbF9jb250aW51b3VzKCkgfiAie21lYW59ICh7c2R9KSIpLAogICAgICAgIG1pc3NpbmdfdGV4dCA9ICIoTWlzc2luZykiKSAlPiUgYWRkX3AoKQpgYGAKCiMgQml2YXJpYXRlIEFuYWx5c2lzIHsudGFic2V0fQoKIyMgVG90YWwgIyBWYWNjaW5lcyAKYGBge3J9CmxpYnJhcnkoTUFTUykKdGJsX2NvdmlkX2JpdiA8LQogIHRibF91dnJlZ3Jlc3Npb24oCiAgICBjb3ZfY2xlYW4xW2MoInRvdGFsX2Nvdl92YXgiLCAiaWJkXzMiLCAiYWdlX3lycyIsICJnZW5kZXIiLCAicmFjZV81IiwgImV0aG5pY18zIiwgImxhbmdfMyIsICJtc3RhdF81IiwgInJlbGlnX2FmZmlsIiwgImFjdF90b2IiLCAibWF4X2NoIiwgIklDIiwgInBvcF9kZW5zIiwgInJfcGN0IiwgIlJQTF9USEVNRVMiLCAiUlBMX1RIRU1FMSIsICJSUExfVEhFTUUyIiwgIlJQTF9USEVNRTMiLCAiUlBMX1RIRU1FNCIpXSwKICAgIG1ldGhvZCA9IGdsbS5uYiwKICAgIHkgPSB0b3RhbF9jb3ZfdmF4LAogICAgbGFiZWwgPSBsaXN0KGFnZV95cnMgfiAiQWdlIiwgZ2VuZGVyfiAiR2VuZGVyIiwgZXRobmljXzMgfiAiRXRobmljaXR5IiwgbGFuZ18zIH4gIlByZWZlcnJlZCBMYW5ndWFnZSIsIHJhY2VfNSB+ICJSYWNlIiwgUlBMX1RIRU1FUyB+ICJUb3RhbCBTVkkiLCBSUExfVEhFTUUxIH4gIlNvY2Vpb2Vjb25vbWljIFN0YXR1cyIsIFJQTF9USEVNRTIgfiAiSG91c2Vob2xkIENvbXBvc2l0aW9uIiwgUlBMX1RIRU1FMyB+ICJNaW5vcml0eSBTdGF0dXMgYW5kIExhbmd1YWdlIiwgUlBMX1RIRU1FNCB+ICJIb3VzaW5nIGFuZCBUcmFuc3BvcnRhdGlvbiIsIHJfcGN0IH4gIlBlcmNlbnQgUmVwdWJsaWNhbiIsIHJlbGlnX2FmZmlsIH4gIkFueSBSZWxpZ2lvdXMgQWZmaWxpYXRpb24iLCBtc3RhdF81IH4gIk1hcml0YWwgU3RhdHVzIiwgcG9wX2RlbnMgfiAiUG9wdWxhdGlvbiBEZW5zaXR5IiwgYWN0X3RvYiB+IkFjdGl2ZSBUb2JhY2NvIFVzZSIsIG1heF9jaCB+ICJDaGFybHNvbiBDb21vcmJpZGl0eSBJbmRleCIsIElDIH4gIkltbXVub2NvbXByb21pc2VkIiwgaWJkXzMgfiAiSUJEIFR5cGUiKSwKICBleHBvbmVudGlhdGUgPSBUUlVFKQpwcmludCh0YmxfY292aWRfYml2LCBtZXRob2QgPSByZW5kZXIpCmBgYAojIyBGdWxseSB2YWNjaW5hdGVkIApgYGB7cn0KY292X2NsZWFuMSRmdWxsX3ZheCA9IGFzLm51bWVyaWMoY292X2NsZWFuMSRmdWxsX3ZheCkKdGJsX2Z1bGxfYml2IDwtCiAgdGJsX3V2cmVncmVzc2lvbigKICAgIGNvdl9jbGVhbjFbYygiZnVsbF92YXgiLCAiaWJkXzMiLCAiYWdlX3lycyIsICJnZW5kZXIiLCAicmFjZV81IiwgImV0aG5pY18zIiwgImxhbmdfMyIsICJtc3RhdF81IiwgInJlbGlnX2FmZmlsIiwgImFjdF90b2IiLCAibWF4X2NoIiwgIklDIiwgInBvcF9kZW5zIiwgInJfcGN0IiwgIlJQTF9USEVNRVMiLCAiUlBMX1RIRU1FMSIsICJSUExfVEhFTUUyIiwgIlJQTF9USEVNRTMiLCAiUlBMX1RIRU1FNCIpXSwKICAgIG1ldGhvZCA9IGdsbSwKICAgIHkgPSBmdWxsX3ZheCwKICAgIG1ldGhvZC5hcmdzID0gbGlzdChmYW1pbHkgPSBiaW5vbWlhbCksCiAgICBsYWJlbCA9IGxpc3QoYWdlX3lycyB+ICJBZ2UiLCBnZW5kZXJ+ICJHZW5kZXIiLCBldGhuaWNfMyB+ICJFdGhuaWNpdHkiLCBsYW5nXzMgfiAiUHJlZmVycmVkIExhbmd1YWdlIiwgcmFjZV81IH4gIlJhY2UiLCBSUExfVEhFTUVTIH4gIlRvdGFsIFNWSSIsIFJQTF9USEVNRTEgfiAiU29jZWlvZWNvbm9taWMgU3RhdHVzIiwgUlBMX1RIRU1FMiB+ICJIb3VzZWhvbGQgQ29tcG9zaXRpb24iLCBSUExfVEhFTUUzIH4gIk1pbm9yaXR5IFN0YXR1cyBhbmQgTGFuZ3VhZ2UiLCBSUExfVEhFTUU0IH4gIkhvdXNpbmcgYW5kIFRyYW5zcG9ydGF0aW9uIiwgcl9wY3QgfiAiUGVyY2VudCBSZXB1YmxpY2FuIiwgcmVsaWdfYWZmaWwgfiAiQW55IFJlbGlnaW91cyBBZmZpbGlhdGlvbiIsIG1zdGF0XzUgfiAiTWFyaXRhbCBTdGF0dXMiLCBwb3BfZGVucyB+ICJQb3B1bGF0aW9uIERlbnNpdHkiLCBhY3RfdG9iIH4iQWN0aXZlIFRvYmFjY28gVXNlIiwgbWF4X2NoIH4gIkNoYXJsc29uIENvbW9yYmlkaXR5IEluZGV4IiwgSUMgfiAiSW1tdW5vY29tcHJvbWlzZWQiLCBpYmRfMyB+ICJJQkQgVHlwZSIpLAogIGV4cG9uZW50aWF0ZSA9IFRSVUUpCnByaW50KHRibF9mdWxsX2JpdiwgbWV0aG9kID0gcmVuZGVyKQpgYGAKIyMgVmFjY2luYXRlZCBhbmQgQm9vc3RlZCAKYGBge3J9CmNvdl9jbGVhbjEkdmF4X2Jvb3N0ID0gYXMubnVtZXJpYyhjb3ZfY2xlYW4xJHZheF9ib29zdCkKdGJsX2Jvb3N0X2JpdiA8LQogIHRibF91dnJlZ3Jlc3Npb24oCiAgICBjb3ZfY2xlYW4xW2MoInZheF9ib29zdCIsICJpYmRfMyIsICJhZ2VfeXJzIiwgImdlbmRlciIsICJyYWNlXzUiLCAiZXRobmljXzMiLCAibGFuZ18zIiwgIm1zdGF0XzUiLCAicmVsaWdfYWZmaWwiLCAiYWN0X3RvYiIsICJtYXhfY2giLCAiSUMiLCAicG9wX2RlbnMiLCAicl9wY3QiLCAiUlBMX1RIRU1FUyIsICJSUExfVEhFTUUxIiwgIlJQTF9USEVNRTIiLCAiUlBMX1RIRU1FMyIsICJSUExfVEhFTUU0IildLAogICAgbWV0aG9kID0gZ2xtLAogICAgeSA9IHZheF9ib29zdCwKICAgIG1ldGhvZC5hcmdzID0gbGlzdChmYW1pbHkgPSBiaW5vbWlhbCksCiAgICBsYWJlbCA9IGxpc3QoYWdlX3lycyB+ICJBZ2UiLCBnZW5kZXJ+ICJHZW5kZXIiLCBldGhuaWNfMyB+ICJFdGhuaWNpdHkiLCBsYW5nXzMgfiAiUHJlZmVycmVkIExhbmd1YWdlIiwgcmFjZV81IH4gIlJhY2UiLCBSUExfVEhFTUVTIH4gIlRvdGFsIFNWSSIsIFJQTF9USEVNRTEgfiAiU29jZWlvZWNvbm9taWMgU3RhdHVzIiwgUlBMX1RIRU1FMiB+ICJIb3VzZWhvbGQgQ29tcG9zaXRpb24iLCBSUExfVEhFTUUzIH4gIk1pbm9yaXR5IFN0YXR1cyBhbmQgTGFuZ3VhZ2UiLCBSUExfVEhFTUU0IH4gIkhvdXNpbmcgYW5kIFRyYW5zcG9ydGF0aW9uIiwgcl9wY3QgfiAiUGVyY2VudCBSZXB1YmxpY2FuIiwgcmVsaWdfYWZmaWwgfiAiQW55IFJlbGlnaW91cyBBZmZpbGlhdGlvbiIsIG1zdGF0XzUgfiAiTWFyaXRhbCBTdGF0dXMiLCBwb3BfZGVucyB+ICJQb3B1bGF0aW9uIERlbnNpdHkiLCBhY3RfdG9iIH4iQWN0aXZlIFRvYmFjY28gVXNlIiwgbWF4X2NoIH4gIkNoYXJsc29uIENvbW9yYmlkaXR5IEluZGV4IiwgSUMgfiAiSW1tdW5vY29tcHJvbWlzZWQiLCBpYmRfMyB+ICJJQkQgVHlwZSIpLAogIGV4cG9uZW50aWF0ZSA9IFRSVUUpCnByaW50KHRibF9ib29zdF9iaXYsIG1ldGhvZCA9IHJlbmRlcikKYGBgCgojIFRvdGFsIENPVklEIENvdW50IHsudGFic2V0fQoKIyMgUlBMX1RIRU1FUwpgYGB7cn0KbGlicmFyeShNQVNTKQpjb3ZpZC5uYiA8LSBnbG0ubmIodG90YWxfY292X3ZheCB+IGliZF8zICsgYWdlX3lycyArIGdlbmRlciArIHJhY2VfNSArIGV0aG5pY18zICsgbGFuZ18zICsgcmVsaWdfYWZmaWwgKyBtc3RhdF81ICsgYWN0X3RvYiArIG1heF9jaCArIElDICsgcG9wX2RlbnMgKyByX3BjdCArIFJQTF9USEVNRVMsCiAgICAgICAgICAgICAgIGRhdGEgPSBjb3ZfY2xlYW4xKSAKc3VtbWFyeShjb3ZpZC5uYikKYnJvb206OmdsYW5jZShjb3ZpZC5uYikKYnJvb206OnRpZHkoY292aWQubmIsIGV4cG9uZW50aWF0ZSA9IFRSVUUpCm1vZGVsX3BlcmZvcm1hbmNlKGNvdmlkLm5iKQp0YmxfcmVncmVzc2lvbihjb3ZpZC5uYiwgbGFiZWwgPSBsaXN0KGFnZV95cnMgfiAiQWdlIiwgZ2VuZGVyfiAiR2VuZGVyIiwgZXRobmljXzMgfiAiRXRobmljaXR5IiwgbGFuZ18zIH4gIlByZWZlcnJlZCBMYW5ndWFnZSIsIHJhY2VfNSB+ICJSYWNlIiwgUlBMX1RIRU1FUyB+ICJUb3RhbCBTVkkiLCByX3BjdCB+ICJQZXJjZW50IFJlcHVibGljYW4iLCByZWxpZ19hZmZpbCB+ICJBbnkgUmVsaWdpb3VzIEFmZmlsaWF0aW9uIiwgbXN0YXRfNSB+ICJNYXJpdGFsIFN0YXR1cyIsIHBvcF9kZW5zIH4gIlBvcHVsYXRpb24gRGVuc2l0eSIsIGFjdF90b2IgfiJBY3RpdmUgVG9iYWNjbyBVc2UiLCBtYXhfY2ggfiAiQ2hhcmxzb24gQ29tb3JiaWRpdHkgSW5kZXgiLCBJQyB+ICJJbW11bm9jb21wcm9taXNlZCIsIGliZF8zIH4gIklCRCBUeXBlIiksIGV4cG9uZW50aWF0ZSA9IFRSVUUpCgojIE5CIFJlc2lkdWFsIFBsb3QKY292aWQubmJfcmVzIDwtIHJlc2lkKGNvdmlkLm5iKQpwbG90KGZpdHRlZChjb3ZpZC5uYiksIGNvdmlkLm5iX3JlcywgY29sPSdzdGVlbGJsdWUnLCBwY2g9MTYsCiAgICAgeGxhYj0nUHJlZGljdGVkIFZhY2NpbmVzJywgeWxhYj0nU3RhbmRhcmRpemVkIFJlc2lkdWFscycsIG1haW49J05lZ2F0aXZlIEJpbm9taWFsJykKYWJsaW5lKDAsMCkKIyBOQiByZWdyZXNzaW9uIG1vcmUgYXBwcm9wcmlhdGUgYmVjYXVzZSByZXNpZHVhbHMgb2YgdGhlIG1vZGVsIGFyZSBzbWFsbGVyIAoKIyBMaWtlbGlob29kIHJhdGlvIHRlc3QgCnBjaGlzcSgyICogKGxvZ0xpayhjb3ZpZC5uYikgLSBsb2dMaWsoY292aWQubmIpKSwgZGYgPSAxLCBsb3dlci50YWlsID0gRkFMU0UpCiMgcC12YWx1ZSBvZiBsb2dsaWsgaXMgPCAwLjA1IHNvIE5CIHJlZ3Jlc3Npb24gaXMgdGhlIG1vcmUgYXBwcm9wcmlhdGUgbW9kZWwgCgpwZXJmb3JtYW5jZTo6Y2hlY2tfbW9kZWwoY292aWQubmIsIHBhbmVsID0gVFJVRSkKYGBgCiMjIFJQTCBRdWFydGlsZXMgCmBgYHtyfQpjb3ZpZC5uYjIgPC0gZ2xtLm5iKHRvdGFsX2Nvdl92YXggfiBpYmRfMyArIGFnZV95cnMgKyBnZW5kZXIgKyByYWNlXzUgKyBldGhuaWNfMyArIGxhbmdfMyArIHJlbGlnX2FmZmlsICsgbXN0YXRfNSArIGFjdF90b2IgKyBtYXhfY2ggKyBJQyArIHBvcF9kZW5zICsgcl9wY3QgKyBSUExfNCwKICAgICAgICAgICAgICAgZGF0YSA9IGNvdl9jbGVhbjEpIApzdW1tYXJ5KGNvdmlkLm5iMikKYnJvb206OmdsYW5jZShjb3ZpZC5uYjIpCmJyb29tOjp0aWR5KGNvdmlkLm5iMiwgZXhwb25lbnRpYXRlID0gVFJVRSkKbW9kZWxfcGVyZm9ybWFuY2UoY292aWQubmIyKQp0YmxfcmVncmVzc2lvbihjb3ZpZC5uYjIsIGxhYmVsID0gbGlzdChhZ2VfeXJzIH4gIkFnZSIsIGdlbmRlcn4gIkdlbmRlciIsIGV0aG5pY18zIH4gIkV0aG5pY2l0eSIsIGxhbmdfMyB+ICJQcmVmZXJyZWQgTGFuZ3VhZ2UiLCByYWNlXzUgfiAiUmFjZSIsIFJQTF80IH4gIlNWSSBRdWFydGlsZSIsIHJfcGN0IH4gIlBlcmNlbnQgUmVwdWJsaWNhbiIsIHJlbGlnX2FmZmlsIH4gIkFueSBSZWxpZ2lvdXMgQWZmaWxpYXRpb24iLCBtc3RhdF81IH4gIk1hcml0YWwgU3RhdHVzIiwgcG9wX2RlbnMgfiAiUG9wdWxhdGlvbiBEZW5zaXR5IiwgYWN0X3RvYiB+IkFjdGl2ZSBUb2JhY2NvIFVzZSIsIG1heF9jaCB+ICJDaGFybHNvbiBDb21vcmJpZGl0eSBJbmRleCIsIElDIH4gIkltbXVub2NvbXByb21pc2VkIiwgaWJkXzMgfiAiSUJEIFR5cGUiKSwgZXhwb25lbnRpYXRlID0gVFJVRSkKCnBlcmZvcm1hbmNlOjpjaGVja19tb2RlbChjb3ZpZC5uYjIsIHBhbmVsID0gVFJVRSkKYGBgCiMjIEFsbCBUaGVtZXMgCmBgYHtyfQpjb3ZpZC5uYjMgPC0gZ2xtLm5iKHRvdGFsX2Nvdl92YXggfiBpYmRfMyArIGFnZV95cnMgKyBnZW5kZXIgKyByYWNlXzUgKyBldGhuaWNfMyArIGxhbmdfMyArIHJlbGlnX2FmZmlsICsgbXN0YXRfNSArIGFjdF90b2IgKyBtYXhfY2ggKyBJQyArIHBvcF9kZW5zICsgcl9wY3QgKyBSUExfVEhFTUUxCiAgICAgICAgICAgICAgICAgICAgKyBSUExfVEhFTUUyICsgUlBMX1RIRU1FMyArIFJQTF9USEVNRTQsCiAgICAgICAgICAgICAgIGRhdGEgPSBjb3ZfY2xlYW4xKSAKc3VtbWFyeShjb3ZpZC5uYjMpCmJyb29tOjpnbGFuY2UoY292aWQubmIzKQpicm9vbTo6dGlkeShjb3ZpZC5uYjMsIGV4cG9uZW50aWF0ZSA9IFRSVUUpCm1vZGVsX3BlcmZvcm1hbmNlKGNvdmlkLm5iMykKdGJsX3JlZ3Jlc3Npb24oY292aWQubmIzLCBsYWJlbCA9IGxpc3QoYWdlX3lycyB+ICJBZ2UiLCBnZW5kZXJ+ICJHZW5kZXIiLCBldGhuaWNfMyB+ICJFdGhuaWNpdHkiLCBsYW5nXzMgfiAiUHJlZmVycmVkIExhbmd1YWdlIiwgcmFjZV81IH4gIlJhY2UiLCBSUExfVEhFTUUxIH4gIlNvY2Vpb2Vjb25vbWljIFN0YXR1cyIsIFJQTF9USEVNRTIgfiAiSG91c2Vob2xkIENvbXBvc2l0aW9uIiwgUlBMX1RIRU1FMyB+ICJNaW5vcml0eSBTdGF0dXMgYW5kIExhbmd1YWdlIiwgUlBMX1RIRU1FNCB+ICJIb3VzaW5nIGFuZCBUcmFuc3BvcnRhdGlvbiIsIHJfcGN0IH4gIlBlcmNlbnQgUmVwdWJsaWNhbiIsIHJlbGlnX2FmZmlsIH4gIkFueSBSZWxpZ2lvdXMgQWZmaWxpYXRpb24iLCBtc3RhdF81IH4gIk1hcml0YWwgU3RhdHVzIiwgcG9wX2RlbnMgfiAiUG9wdWxhdGlvbiBEZW5zaXR5IiwgYWN0X3RvYiB+IkFjdGl2ZSBUb2JhY2NvIFVzZSIsIG1heF9jaCB+ICJDaGFybHNvbiBDb21vcmJpZGl0eSBJbmRleCIsIElDIH4gIkltbXVub2NvbXByb21pc2VkIiwgaWJkXzMgfiAiSUJEIFR5cGUiKSwgZXhwb25lbnRpYXRlID0gVFJVRSkKCnBlcmZvcm1hbmNlOjpjaGVja19tb2RlbChjb3ZpZC5uYjMsIHBhbmVsID0gVFJVRSkKYGBgCgojIEZ1bGx5IFZhY2NpbmF0ZWQgKG5vdCBib29zdGVkKSB7LnRhYnNldH0KIyMgUlBMX1RIRU1FUwpgYGB7cn0KY292aWRfZnVsbDEgPC0gZ2xtKGZ1bGxfdmF4IH4gaWJkXzMgKyBhZ2VfeXJzICsgZ2VuZGVyICsgcmFjZV81ICsgZXRobmljXzMgKyBsYW5nXzMgKyByZWxpZ19hZmZpbCArIG1zdGF0XzUgKyBhY3RfdG9iICsgbWF4X2NoICsgSUMgKyBwb3BfZGVucyArIHJfcGN0ICsgUlBMX1RIRU1FUywKICAgICAgICAgICAgICAgICAgIGZhbWlseSA9IGJpbm9taWFsLCAKICAgICAgICAgICAgICAgZGF0YSA9IGNvdl9jbGVhbjEpIApzdW1tYXJ5KGNvdmlkX2Z1bGwxKQpicm9vbTo6Z2xhbmNlKGNvdmlkX2Z1bGwxKQpicm9vbTo6dGlkeShjb3ZpZF9mdWxsMSwgZXhwb25lbnRpYXRlID0gVFJVRSkKbW9kZWxfcGVyZm9ybWFuY2UoY292aWRfZnVsbDEpCnRibF9yZWdyZXNzaW9uKGNvdmlkX2Z1bGwxLCBsYWJlbCA9IGxpc3QoYWdlX3lycyB+ICJBZ2UiLCBnZW5kZXJ+ICJHZW5kZXIiLCBldGhuaWNfMyB+ICJFdGhuaWNpdHkiLCBsYW5nXzMgfiAiUHJlZmVycmVkIExhbmd1YWdlIiwgcmFjZV81IH4gIlJhY2UiLCBSUExfVEhFTUVTIH4gIlRvdGFsIFNWSSIsIHJfcGN0IH4gIlBlcmNlbnQgUmVwdWJsaWNhbiIsIHJlbGlnX2FmZmlsIH4gIkFueSBSZWxpZ2lvdXMgQWZmaWxpYXRpb24iLCBtc3RhdF81IH4gIk1hcml0YWwgU3RhdHVzIiwgcG9wX2RlbnMgfiAiUG9wdWxhdGlvbiBEZW5zaXR5IiwgYWN0X3RvYiB+IkFjdGl2ZSBUb2JhY2NvIFVzZSIsIG1heF9jaCB+ICJDaGFybHNvbiBDb21vcmJpZGl0eSBJbmRleCIsIElDIH4gIkltbXVub2NvbXByb21pc2VkIiwgaWJkXzMgfiAiSUJEIFR5cGUiKSwgZXhwb25lbnRpYXRlID0gVFJVRSkKCnBlcmZvcm1hbmNlOjpjaGVja19tb2RlbChjb3ZpZF9mdWxsMSwgcGFuZWwgPSBUUlVFKQoKYGBgCiMjIFJQTCBRdWFydGlsZXMgCmBgYHtyfQpjb3ZpZF9mdWxsMiA8LSBnbG0oZnVsbF92YXggfiBpYmRfMyArIGFnZV95cnMgKyBnZW5kZXIgKyByYWNlXzUgKyBldGhuaWNfMyArIGxhbmdfMyArIHJlbGlnX2FmZmlsICsgbXN0YXRfNSArIGFjdF90b2IgKyBtYXhfY2ggKyBJQyArIHBvcF9kZW5zICsgcl9wY3QgKyBSUExfNCwKICAgICAgICAgICAgICAgICAgIGZhbWlseSA9IGJpbm9taWFsLAogICAgICAgICAgICAgICBkYXRhID0gY292X2NsZWFuMSkgCnN1bW1hcnkoY292aWRfZnVsbDIpCmJyb29tOjpnbGFuY2UoY292aWRfZnVsbDIpCmJyb29tOjp0aWR5KGNvdmlkX2Z1bGwyLCBleHBvbmVudGlhdGUgPSBUUlVFKQptb2RlbF9wZXJmb3JtYW5jZShjb3ZpZF9mdWxsMikKdGJsX3JlZ3Jlc3Npb24oY292aWRfZnVsbDIsIGxhYmVsID0gbGlzdChhZ2VfeXJzIH4gIkFnZSIsIGdlbmRlcn4gIkdlbmRlciIsIGV0aG5pY18zIH4gIkV0aG5pY2l0eSIsIGxhbmdfMyB+ICJQcmVmZXJyZWQgTGFuZ3VhZ2UiLCByYWNlXzUgfiAiUmFjZSIsIFJQTF80IH4gIlNWSSBRdWFydGlsZSIsIHJfcGN0IH4gIlBlcmNlbnQgUmVwdWJsaWNhbiIsIHJlbGlnX2FmZmlsIH4gIkFueSBSZWxpZ2lvdXMgQWZmaWxpYXRpb24iLCBtc3RhdF81IH4gIk1hcml0YWwgU3RhdHVzIiwgcG9wX2RlbnMgfiAiUG9wdWxhdGlvbiBEZW5zaXR5IiwgYWN0X3RvYiB+IkFjdGl2ZSBUb2JhY2NvIFVzZSIsIG1heF9jaCB+ICJDaGFybHNvbiBDb21vcmJpZGl0eSBJbmRleCIsIElDIH4gIkltbXVub2NvbXByb21pc2VkIiwgaWJkXzMgfiAiSUJEIFR5cGUiKSwgZXhwb25lbnRpYXRlID0gVFJVRSkKCnBlcmZvcm1hbmNlOjpjaGVja19tb2RlbChjb3ZpZF9mdWxsMiwgcGFuZWwgPSBUUlVFKQpgYGAKCiMjIEFsbCBUaGVtZXMgCmBgYHtyfQpjb3ZpZF9mdWxsMyA8LSBnbG0oZnVsbF92YXggfiBpYmRfMyArIGFnZV95cnMgKyBnZW5kZXIgKyByYWNlXzUgKyBldGhuaWNfMyArIGxhbmdfMyArIHJlbGlnX2FmZmlsICsgbXN0YXRfNSArIGFjdF90b2IgKyBtYXhfY2ggKyBJQyArIHBvcF9kZW5zICsgcl9wY3QgKyBSUExfVEhFTUUxCiAgICAgICAgICAgICAgICAgICAgKyBSUExfVEhFTUUyICsgUlBMX1RIRU1FMyArIFJQTF9USEVNRTQsCiAgICAgICAgICAgICAgICAgICBmYW1pbHkgPSBiaW5vbWlhbCwKICAgICAgICAgICAgICAgZGF0YSA9IGNvdl9jbGVhbjEpIApzdW1tYXJ5KGNvdmlkX2Z1bGwzKQpicm9vbTo6Z2xhbmNlKGNvdmlkX2Z1bGwzKQpicm9vbTo6dGlkeShjb3ZpZF9mdWxsMywgZXhwb25lbnRpYXRlID0gVFJVRSkKbW9kZWxfcGVyZm9ybWFuY2UoY292aWRfZnVsbDMpCnRibF9yZWdyZXNzaW9uKGNvdmlkX2Z1bGwzLCBsYWJlbCA9IGxpc3QoYWdlX3lycyB+ICJBZ2UiLCBnZW5kZXJ+ICJHZW5kZXIiLCBldGhuaWNfMyB+ICJFdGhuaWNpdHkiLCBsYW5nXzMgfiAiUHJlZmVycmVkIExhbmd1YWdlIiwgcmFjZV81IH4gIlJhY2UiLCBSUExfVEhFTUUxIH4gIlNvY2Vpb2Vjb25vbWljIFN0YXR1cyIsIFJQTF9USEVNRTIgfiAiSG91c2Vob2xkIENvbXBvc2l0aW9uIiwgUlBMX1RIRU1FMyB+ICJNaW5vcml0eSBTdGF0dXMgYW5kIExhbmd1YWdlIiwgUlBMX1RIRU1FNCB+ICJIb3VzaW5nIGFuZCBUcmFuc3BvcnRhdGlvbiIsIHJfcGN0IH4gIlBlcmNlbnQgUmVwdWJsaWNhbiIsIHJlbGlnX2FmZmlsIH4gIkFueSBSZWxpZ2lvdXMgQWZmaWxpYXRpb24iLCBtc3RhdF81IH4gIk1hcml0YWwgU3RhdHVzIiwgcG9wX2RlbnMgfiAiUG9wdWxhdGlvbiBEZW5zaXR5IiwgYWN0X3RvYiB+IkFjdGl2ZSBUb2JhY2NvIFVzZSIsIG1heF9jaCB+ICJDaGFybHNvbiBDb21vcmJpZGl0eSBJbmRleCIsIElDIH4gIkltbXVub2NvbXByb21pc2VkIiwgaWJkXzMgfiAiSUJEIFR5cGUiKSwgZXhwb25lbnRpYXRlID0gVFJVRSkKCnBlcmZvcm1hbmNlOjpjaGVja19tb2RlbChjb3ZpZF9mdWxsMywgcGFuZWwgPSBUUlVFKQpgYGAKCiMgRnVsbHkgdmFjY2luYXRlZCBhbmQgYm9vc3RlZCB7LnRhYnNldH0KIyMgUlBMX1RoZW1lcwpgYGB7cn0KYm9vc3RlZDEgPC0gZ2xtKHZheF9ib29zdCB+IGliZF8zICsgYWdlX3lycyArIGdlbmRlciArIHJhY2VfNSArIGV0aG5pY18zICsgbGFuZ18zICsgcmVsaWdfYWZmaWwgKyBtc3RhdF81ICsgYWN0X3RvYiArIG1heF9jaCArIElDICsgcG9wX2RlbnMgKyByX3BjdCArIFJQTF9USEVNRVMsCiAgICAgICAgICAgICAgICAgICBmYW1pbHkgPSBiaW5vbWlhbCwgCiAgICAgICAgICAgICAgIGRhdGEgPSBjb3ZfY2xlYW4xKSAKc3VtbWFyeShib29zdGVkMSkKYnJvb206OmdsYW5jZShib29zdGVkMSkKYnJvb206OnRpZHkoYm9vc3RlZDEsIGV4cG9uZW50aWF0ZSA9IFRSVUUpCm1vZGVsX3BlcmZvcm1hbmNlKGJvb3N0ZWQxKQp0YmxfcmVncmVzc2lvbihib29zdGVkMSwgbGFiZWwgPSBsaXN0KGFnZV95cnMgfiAiQWdlIiwgZ2VuZGVyfiAiR2VuZGVyIiwgZXRobmljXzMgfiAiRXRobmljaXR5IiwgbGFuZ18zIH4gIlByZWZlcnJlZCBMYW5ndWFnZSIsIHJhY2VfNSB+ICJSYWNlIiwgUlBMX1RIRU1FUyB+ICJUb3RhbCBTVkkiLCByX3BjdCB+ICJQZXJjZW50IFJlcHVibGljYW4iLCByZWxpZ19hZmZpbCB+ICJBbnkgUmVsaWdpb3VzIEFmZmlsaWF0aW9uIiwgbXN0YXRfNSB+ICJNYXJpdGFsIFN0YXR1cyIsIHBvcF9kZW5zIH4gIlBvcHVsYXRpb24gRGVuc2l0eSIsIGFjdF90b2IgfiJBY3RpdmUgVG9iYWNjbyBVc2UiLCBtYXhfY2ggfiAiQ2hhcmxzb24gQ29tb3JiaWRpdHkgSW5kZXgiLCBJQyB+ICJJbW11bm9jb21wcm9taXNlZCIsIGliZF8zIH4gIklCRCBUeXBlIiksIGV4cG9uZW50aWF0ZSA9IFRSVUUpCgpwZXJmb3JtYW5jZTo6Y2hlY2tfbW9kZWwoYm9vc3RlZDEsIHBhbmVsID0gVFJVRSkKYGBgCiMjIFJQTCBRdWFydGlsZXMgCmBgYHtyfQpjb3ZpZF9ib29zdDIgPC0gZ2xtKHZheF9ib29zdCB+IGliZF8zICsgYWdlX3lycyArIGdlbmRlciArIHJhY2VfNSArIGV0aG5pY18zICsgbGFuZ18zICsgcmVsaWdfYWZmaWwgKyBtc3RhdF81ICsgYWN0X3RvYiArIG1heF9jaCArIElDICsgcG9wX2RlbnMgKyByX3BjdCArIFJQTF80LAogICAgICAgICAgICAgICAgICAgZmFtaWx5ID0gYmlub21pYWwsCiAgICAgICAgICAgICAgIGRhdGEgPSBjb3ZfY2xlYW4xKSAKc3VtbWFyeShjb3ZpZF9ib29zdDIpCmJyb29tOjpnbGFuY2UoY292aWRfYm9vc3QyKQpicm9vbTo6dGlkeShjb3ZpZF9ib29zdDIsIGV4cG9uZW50aWF0ZSA9IFRSVUUpCm1vZGVsX3BlcmZvcm1hbmNlKGNvdmlkX2Jvb3N0MikKdGJsX3JlZ3Jlc3Npb24oY292aWRfYm9vc3QyLCBsYWJlbCA9IGxpc3QoYWdlX3lycyB+ICJBZ2UiLCBnZW5kZXJ+ICJHZW5kZXIiLCBldGhuaWNfMyB+ICJFdGhuaWNpdHkiLCBsYW5nXzMgfiAiUHJlZmVycmVkIExhbmd1YWdlIiwgcmFjZV81IH4gIlJhY2UiLCBSUExfNCB+ICJTVkkgUXVhcnRpbGUiLCByX3BjdCB+ICJQZXJjZW50IFJlcHVibGljYW4iLCByZWxpZ19hZmZpbCB+ICJBbnkgUmVsaWdpb3VzIEFmZmlsaWF0aW9uIiwgbXN0YXRfNSB+ICJNYXJpdGFsIFN0YXR1cyIsIHBvcF9kZW5zIH4gIlBvcHVsYXRpb24gRGVuc2l0eSIsIGFjdF90b2IgfiJBY3RpdmUgVG9iYWNjbyBVc2UiLCBtYXhfY2ggfiAiQ2hhcmxzb24gQ29tb3JiaWRpdHkgSW5kZXgiLCBJQyB+ICJJbW11bm9jb21wcm9taXNlZCIsIGliZF8zIH4gIklCRCBUeXBlIiksIGV4cG9uZW50aWF0ZSA9IFRSVUUpCgpwZXJmb3JtYW5jZTo6Y2hlY2tfbW9kZWwoY292aWRfYm9vc3QyLCBwYW5lbCA9IFRSVUUpCmBgYAojIyBBbGwgdGhlbWVzIApgYGB7cn0KYm9vc3QzIDwtIGdsbSh2YXhfYm9vc3QgfiBpYmRfMyArIGFnZV95cnMgKyBnZW5kZXIgKyByYWNlXzUgKyBldGhuaWNfMyArIGxhbmdfMyArIHJlbGlnX2FmZmlsICsgbXN0YXRfNSArIGFjdF90b2IgKyBtYXhfY2ggKyBJQyArIHBvcF9kZW5zICsgcl9wY3QgKyBSUExfVEhFTUUxCiAgICAgICAgICAgICAgICAgICAgKyBSUExfVEhFTUUyICsgUlBMX1RIRU1FMyArIFJQTF9USEVNRTQsCiAgICAgICAgICAgICAgICAgICBmYW1pbHkgPSBiaW5vbWlhbCwKICAgICAgICAgICAgICAgZGF0YSA9IGNvdl9jbGVhbjEpIApzdW1tYXJ5KGJvb3N0MykKYnJvb206OmdsYW5jZShib29zdDMpCmJyb29tOjp0aWR5KGJvb3N0MywgZXhwb25lbnRpYXRlID0gVFJVRSkKbW9kZWxfcGVyZm9ybWFuY2UoYm9vc3QzKQp0YmxfcmVncmVzc2lvbihib29zdDMsIGxhYmVsID0gbGlzdChhZ2VfeXJzIH4gIkFnZSIsIGdlbmRlcn4gIkdlbmRlciIsIGV0aG5pY18zIH4gIkV0aG5pY2l0eSIsIGxhbmdfMyB+ICJQcmVmZXJyZWQgTGFuZ3VhZ2UiLCByYWNlXzUgfiAiUmFjZSIsIFJQTF9USEVNRTEgfiAiU29jZWlvZWNvbm9taWMgU3RhdHVzIiwgUlBMX1RIRU1FMiB+ICJIb3VzZWhvbGQgQ29tcG9zaXRpb24iLCBSUExfVEhFTUUzIH4gIk1pbm9yaXR5IFN0YXR1cyBhbmQgTGFuZ3VhZ2UiLCBSUExfVEhFTUU0IH4gIkhvdXNpbmcgYW5kIFRyYW5zcG9ydGF0aW9uIiwgcl9wY3QgfiAiUGVyY2VudCBSZXB1YmxpY2FuIiwgcmVsaWdfYWZmaWwgfiAiQW55IFJlbGlnaW91cyBBZmZpbGlhdGlvbiIsIG1zdGF0XzUgfiAiTWFyaXRhbCBTdGF0dXMiLCBwb3BfZGVucyB+ICJQb3B1bGF0aW9uIERlbnNpdHkiLCBhY3RfdG9iIH4iQWN0aXZlIFRvYmFjY28gVXNlIiwgbWF4X2NoIH4gIkNoYXJsc29uIENvbW9yYmlkaXR5IEluZGV4IiwgSUMgfiAiSW1tdW5vY29tcHJvbWlzZWQiLCBpYmRfMyB+ICJJQkQgVHlwZSIpLCBleHBvbmVudGlhdGUgPSBUUlVFKQoKcGVyZm9ybWFuY2U6OmNoZWNrX21vZGVsKGJvb3N0MywgcGFuZWwgPSBUUlVFKQpgYGAKCiMgTWVkaWF0aW9uIEFuYWx5c2lzIHsudGFic2V0fQojIyBGdWxseSB2YWNjaW5hdGVkIApgYGB7cn0KY292X2NsZWFuMSAlPiUgCm11dGF0ZShibGFjayA9IGFzX2ZhY3RvcihyYWNlXzUpLAogICAgICAgICBibGFjayA9IGZjdF9yZWNvZGUoYmxhY2ssIE5vID0gIk90aGVyIiwKICAgICAgICAgICAgICAgICAgTm8gPSAiQXNpYW4iLAogICAgICAgICAgICAgICAgICBObyA9ICJXaGl0ZSIsIFllcyA9ICJCbGFjayIsCiAgICAgICAgICAgICAgICAgIE5vID0gIk5hdGl2ZSIpLAogICAgICAgICBibGFjayA9IGZjdF9yZWxldmVsKGJsYWNrLCByZWYgPSAnTm8nKSkgLT4gcmFjZV9kaWNoCgpyYWNlX2RpY2gkYmxhY2s8LWlmZWxzZShyYWNlX2RpY2gkYmxhY2s9PSJZZXMiLDEsMCkKCnJhY2VfZGljaCAlPiUgCiAgbXV0YXRlKHN2aV8yID0gY2FzZV93aGVuKFJQTF9USEVNRVM+PSAwLjUgfiAnMScsVFJVRSB+ICIwIikpIC0+ICB0aGVtZXNfZGljaAoKdGhlbWVzX2RpY2gkc3ZpXzIgPSBhcy5udW1lcmljKHRoZW1lc19kaWNoJHN2aV8yKQoKI1N0ZXAgMTogSXMgdGhlcmUgYSByZWxhdGlvbnNoaXAgYmV0d2VlbiBYKHJhY2UpIGFuZCBZKGZsdSB2YWNjaW5lKS4gWWVzIC0gYmxhY2sgYW5kIG90aGVyIHBhdGllbnRzIHdlcmUgbGVzcyBsaWtlbHkgdG8gcmVjZWl2ZSB0aGUgZmx1IHZhY2NpbmUgdGhhbiBBc2lhbiBhbmQgd2hpdGUgcGF0aWVudHMKYm9vc3RlZC4wIDwtIGdsbSh2YXhfYm9vc3QgfiBpYmRfMyArIGFnZV95cnMgKyBnZW5kZXIgKyBibGFjayArIGV0aG5pY18zICsgbGFuZ18zICsKICAgICAgICAgICAgICAgICAgIG1zdGF0XzUrIHJlbGlnX2FmZmlsICsgbWF4X2NoICsgSUMgKyBwb3BfZGVucyArIHJfcGN0ICsgc3ZpXzIsCiAgICAgICAgICAgICAgICAgZmFtaWx5ID0gYmlub21pYWwsIGRhdGEgPSB0aGVtZXNfZGljaCkKCiMgU3RlcCAyOiBJcyB0aGVyZSBhIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHRoZSBtZWRpYXRvciAoU1ZJKSBhbmQgcmFjZT8gWWVzLCBwYXRpZW50cyB3aXRoIGhpZ2hlciBTVkkgd2VyZSBtb3JlIGxpa2VseSB0byBiZSBibGFjayAKYm9vdGVkLk0gPC0gZ2xtKHN2aV8yIH4gaWJkXzMgKyBhZ2VfeXJzICsgZ2VuZGVyICsgYmxhY2sgKyBldGhuaWNfMyArIGxhbmdfMyArCiAgICAgICAgICAgICAgICAgICBtc3RhdF81KyByZWxpZ19hZmZpbCArIG1heF9jaCArIElDICsgcG9wX2RlbnMgKyByX3BjdCArIHZheF9ib29zdCwKICAgICAgICAgICAgICAgICBmYW1pbHkgPSBiaW5vbWlhbCwgCiAgICAgICAgICAgICAgICAgZGF0YSA9IHRoZW1lc19kaWNoKQoKIyBTdGVwIDM6IE1lZGlhdGlvbiBhbmFseXNpcwpjb3ZpZF9tZWQgPC0gbWVkaWF0ZShib290ZWQuTSwgYm9vc3RlZC4wLCB0cmVhdD0gImJsYWNrIiwgbWVkaWF0b3I9InN2aV8yIiwKICAgICAgICAgICAgICAgICAgIGJvb3Q9VFJVRSwgc2ltcz01MDApCnN1bW1hcnkoY292aWRfbWVkKQpgYGAKCgojIE9MRCBBTkFMWVNJUyB7LnRhYnNldH0KCiMjIE1haW4gTW9kZWwgd2l0aCBhbGwgdmFyaWFibGVzIApgYGB7cn0KY292aWQubmIgPC0gZ2xtLm5iKHRvdGFsX2Nvdl92YXggfiBhZ2VfeXJzICsgZ2VuZGVyICsgcmFjZV81ICsgZXRobmljXzMgKyBsYW5nXzMgKyByZWxpZ19hZmZpbCArIG1zdGF0XzUgKyBhY3RfdG9iICsgbWF4X2NoICsgcG9wX2RlbnMgKyByX3BjdCArIFJQTF9USEVNRVMsCiAgICAgICAgICAgICAgIGRhdGEgPSBjb3ZpZF92YXhfZHRhKSAKc3VtbWFyeShjb3ZpZC5uYikKYnJvb206OmdsYW5jZShjb3ZpZC5uYikKYnJvb206OnRpZHkoY292aWQubmIsIGV4cG9uZW50aWF0ZSA9IFRSVUUpCm1vZGVsX3BlcmZvcm1hbmNlKGNvdmlkLm5iKQp0YmxfcmVncmVzc2lvbihjb3ZpZC5uYiwgbGFiZWwgPSBsaXN0KGFnZV95cnMgfiAiQWdlIiwgcG9wX2RlbnMgfiAiUG9wdWxhdGlvbiBkZW5zaXR5IiwgZ2VuZGVyfiAiR2VuZGVyIiwgZXRobmljXzMgfiAiRXRobmljaXR5IiwgbGFuZ18zIH4gIlByZWZlcnJlZCBMYW5ndWFnZSIsIHJlbGlnX2FmZmlsIH4gIkFueSBSZWxpZ2lvdXMgQWZmaWxpYXRpb24iLCBSUExfVEhFTUVTIH4gIlRvdGFsIFNWSSIsIG1zdGF0XzUgfiAiTWFyaXRhbCBTdGF0dXMiLCByX3BjdCB+ICJQZXJjZW50IFJlYnVwbGljYW4iLCByYWNlXzUgfiAicmFjZSIsIGFjdF90b2IgfiJBY3RpdmUgVG9iYWNjbyBVc2UiLCBtYXhfY2ggfiAiQ2hhcmxzb24gQ29tb3JiaWRpdHkgSW5kZXgiKSwgZXhwb25lbnRpYXRlID0gVFJVRSkKCiMjIE1vZGVsIFBlcmZvcm1hbmNlIApwZXJmb3JtYW5jZTo6Y2hlY2tfbW9kZWwoY292aWQubmIsIHBhbmVsID0gVFJVRSkKCiMjIE1hcmdpbnMgCmNwbG90KGNvdmlkLm5iLCAiUlBMX1RIRU1FUyIsIHdoYXQgPSAicHJlZGljdGlvbiIsIG1haW4gPSAiUHJlZGljdGVkICMgQ09WSUQgVmFjY2luZXMgR2l2ZW4gU1ZJIikKCmBgYAoKCgojIyBEcm9wIHRvYmFjY28gdXNlIApgYGB7cn0KY292aWQubmIxIDwtIGdsbS5uYih0b3RhbF9jb3ZfdmF4IH4gYWdlX3lycyArIGdlbmRlciArIHJhY2VfNSArIGV0aG5pY18zICsgbGFuZ18zICsgcmVsaWdfYWZmaWwgKyBtc3RhdF81ICArIG1heF9jaCArIHBvcF9kZW5zICsgcl9wY3QgKyBSUExfVEhFTUVTLAogICAgICAgICAgICAgICBkYXRhID0gY292aWRfdmF4X2R0YSkgCnN1bW1hcnkoY292aWQubmIxKQpicm9vbTo6Z2xhbmNlKGNvdmlkLm5iMSkKYnJvb206OnRpZHkoY292aWQubmIxLCBleHBvbmVudGlhdGUgPSBUUlVFKQptb2RlbF9wZXJmb3JtYW5jZShjb3ZpZC5uYjEpCnRibF9yZWdyZXNzaW9uKGNvdmlkLm5iMSwgbGFiZWwgPSBsaXN0KGFnZV95cnMgfiAiQWdlIiwgcG9wX2RlbnMgfiAiUG9wdWxhdGlvbiBkZW5zaXR5IiwgZ2VuZGVyfiAiR2VuZGVyIiwgZXRobmljXzMgfiAiRXRobmljaXR5IiwgbGFuZ18zIH4gIlByZWZlcnJlZCBMYW5ndWFnZSIsIHJlbGlnX2FmZmlsIH4gIkFueSBSZWxpZ2lvdXMgQWZmaWxpYXRpb24iLCBSUExfVEhFTUVTIH4gIlRvdGFsIFNWSSIsIG1zdGF0XzUgfiAiTWFyaXRhbCBTdGF0dXMiLCByX3BjdCB+ICJQZXJjZW50IFJlYnVwbGljYW4iLCByYWNlXzUgfiAicmFjZSIsIG1heF9jaCB+ICJDaGFybHNvbiBDb21vcmJpZGl0eSBJbmRleCIpLCBleHBvbmVudGlhdGUgPSBUUlVFKQoKIyMgTkIgTW9kZWwgUGVyZm9ybWFuY2UgCnBlcmZvcm1hbmNlOjpjaGVja19tb2RlbChjb3ZpZC5uYjEsIHBhbmVsID0gVFJVRSkKCiMjIE5CIE1hcmdpbnMgCmNwbG90KGNvdmlkLm5iMSwgIlJQTF9USEVNRVMiLCB3aGF0ID0gInByZWRpY3Rpb24iLCBtYWluID0gIlByZWRpY3RlZCAjIENPVklEIFZhY2NpbmVzIEdpdmVuIFNWSSIpCmBgYAoKCiMjIFF1YWRyYXRpY3MKYGBge3J9CmNvdmlkLm5iMyA8LSBnbG0ubmIodG90YWxfY292X3ZheCB+IEkoYWdlX3lyc14yKSArIGdlbmRlciArIHJhY2VfNSArIGV0aG5pY18zICsgbGFuZ18zICsgcmVsaWdfYWZmaWwgKyBtc3RhdF81ICArIGFjdF90b2IgKyBtYXhfY2ggKyBwb3BfZGVucyArIHJfcGN0ICsgSShSUExfVEhFTUVTXjIpLAogICAgICAgICAgICAgICBkYXRhID0gY292aWRfdmF4X2R0YSkKc3VtbWFyeShjb3ZpZC5uYjMpCmJyb29tOjpnbGFuY2UoY292aWQubmIzKQpicm9vbTo6dGlkeShjb3ZpZC5uYjMsIGV4cG9uZW50aWF0ZSA9IFRSVUUpCm1vZGVsX3BlcmZvcm1hbmNlKGNvdmlkLm5iMykKdGJsX3JlZ3Jlc3Npb24oY292aWQubmIzLCBsYWJlbCA9IGxpc3QocG9wX2RlbnMgfiAiUG9wdWxhdGlvbiBkZW5zaXR5IiwgZ2VuZGVyfiAiR2VuZGVyIiwgZXRobmljXzMgfiAiRXRobmljaXR5IiwgbGFuZ18zIH4gIlByZWZlcnJlZCBMYW5ndWFnZSIsIHJlbGlnX2FmZmlsIH4gIkFueSBSZWxpZ2lvdXMgQWZmaWxpYXRpb24iLCBtc3RhdF81IH4gIk1hcml0YWwgU3RhdHVzIiwgcl9wY3QgfiAiUGVyY2VudCBSZWJ1cGxpY2FuIiwgcmFjZV81IH4gInJhY2UiLCBhY3RfdG9iIH4iQWN0aXZlIFRvYmFjY28gVXNlIiwgbWF4X2NoIH4gIkNoYXJsc29uIENvbW9yYmlkaXR5IEluZGV4IiksIGV4cG9uZW50aWF0ZSA9IFRSVUUpCgojIyBNb2RlbCBQZXJmb3JtYW5jZSAoUl4yIGVzc2VudGlhbGx5IHVuY2hhbmdlZCkKcGVyZm9ybWFuY2U6OmNoZWNrX21vZGVsKGNvdmlkLm5iMywgcGFuZWwgPSBUUlVFKQoKIyMgTWFyZ2lucyAKbGlicmFyeShtYXJnaW5zKQpjcGxvdChjb3ZpZC5uYjMsICJSUExfVEhFTUVTIiwgd2hhdCA9ICJwcmVkaWN0aW9uIiwgbWFpbiA9ICJQcmVkaWN0ZWQgIyBDT1ZJRCBWYWNjaW5lcyBHaXZlbiBTVkkiKQpgYGAKCiMjIERyb3Agcl9wY3QKYGBge3J9CmNvdmlkLm5iNCA8LSBnbG0ubmIodG90YWxfY292X3ZheCB+IGFnZV95cnMgKyBnZW5kZXIgKyByYWNlXzUgKyBldGhuaWNfMyArIGxhbmdfMyArIHJlbGlnX2FmZmlsICsgbXN0YXRfNSAgKyBhY3RfdG9iICsgbWF4X2NoICsgcG9wX2RlbnMgKyBSUExfVEhFTUVTLAogICAgICAgICAgICAgICBkYXRhID0gY292aWRfdmF4X2R0YSkKc3VtbWFyeShjb3ZpZC5uYjQpCmJyb29tOjpnbGFuY2UoY292aWQubmI0KQpicm9vbTo6dGlkeShjb3ZpZC5uYjQsIGV4cG9uZW50aWF0ZSA9IFRSVUUpCm1vZGVsX3BlcmZvcm1hbmNlKGNvdmlkLm5iNCkKdGJsX3JlZ3Jlc3Npb24oY292aWQubmI0LCBsYWJlbCA9IGxpc3QoYWdlX3lycyB+ICJBZ2UiLCBwb3BfZGVucyB+ICJQb3B1bGF0aW9uIGRlbnNpdHkiLCBnZW5kZXJ+ICJHZW5kZXIiLCBldGhuaWNfMyB+ICJFdGhuaWNpdHkiLCBsYW5nXzMgfiAiUHJlZmVycmVkIExhbmd1YWdlIiwgcmVsaWdfYWZmaWwgfiAiQW55IFJlbGlnaW91cyBBZmZpbGlhdGlvbiIsIFJQTF9USEVNRVMgfiAiVG90YWwgU1ZJIiwgbXN0YXRfNSB+ICJNYXJpdGFsIFN0YXR1cyIsIHJhY2VfNSB+ICJyYWNlIiwgYWN0X3RvYiB+IkFjdGl2ZSBUb2JhY2NvIFVzZSIsIG1heF9jaCB+ICJDaGFybHNvbiBDb21vcmJpZGl0eSBJbmRleCIpLCBleHBvbmVudGlhdGUgPSBUUlVFKQoKIyMgTW9kZWwgUGVyZm9ybWFuY2UgLSBSXjIgZ29lcyBmcm9tIDEwIHRvIDYKcGVyZm9ybWFuY2U6OmNoZWNrX21vZGVsKGNvdmlkLm5iNCwgcGFuZWwgPSBUUlVFKQoKIyMgTWFyZ2lucyAKY3Bsb3QoY292aWQubmI0LCAiUlBMX1RIRU1FUyIsIHdoYXQgPSAicHJlZGljdGlvbiIsIG1haW4gPSAiUHJlZGljdGVkICMgQ09WSUQgVmFjY2luZXMgR2l2ZW4gU1ZJIikKYGBgCgojIyBJbnRlcmFjdGlvbiBiZXR3ZWVuIHJfcGN0IGFuZCBTVkkgCmBgYHtyfQpjb3ZpZC5uYjUgPC0gZ2xtLm5iKHRvdGFsX2Nvdl92YXggfiBhZ2VfeXJzICsgZ2VuZGVyICsgcmFjZV81ICsgZXRobmljXzMgKyBsYW5nXzMgKyByZWxpZ19hZmZpbCArIG1zdGF0XzUgKyBhY3RfdG9iICsgbWF4X2NoICsgcG9wX2RlbnMgKyByX3BjdCpSUExfVEhFTUVTLAogICAgICAgICAgICAgICBkYXRhID0gY292aWRfdmF4X2R0YSkKc3VtbWFyeShjb3ZpZC5uYjUpCmJyb29tOjpnbGFuY2UoY292aWQubmI1KQpicm9vbTo6dGlkeShjb3ZpZC5uYjUsIGV4cG9uZW50aWF0ZSA9IFRSVUUpCm1vZGVsX3BlcmZvcm1hbmNlKGNvdmlkLm5iNSkKdGJsX3JlZ3Jlc3Npb24oY292aWQubmI1LCBsYWJlbCA9IGxpc3QoYWdlX3lycyB+ICJBZ2UiLCBwb3BfZGVucyB+ICJQb3B1bGF0aW9uIGRlbnNpdHkiLCBnZW5kZXJ+ICJHZW5kZXIiLCBldGhuaWNfMyB+ICJFdGhuaWNpdHkiLCBsYW5nXzMgfiAiUHJlZmVycmVkIExhbmd1YWdlIiwgcmVsaWdfYWZmaWwgfiAiQW55IFJlbGlnaW91cyBBZmZpbGlhdGlvbiIsIFJQTF9USEVNRVMgfiAiVG90YWwgU1ZJIiwgbXN0YXRfNSB+ICJNYXJpdGFsIFN0YXR1cyIsIHJhY2VfNSB+ICJyYWNlIiwgYWN0X3RvYiB+IkFjdGl2ZSBUb2JhY2NvIFVzZSIsIG1heF9jaCB+ICJDaGFybHNvbiBDb21vcmJpZGl0eSBJbmRleCIsIHJfcGN0IH4gIlBlcmNlbnQgUmVwdWJsaWNhbiIpLCBleHBvbmVudGlhdGUgPSBUUlVFKQoKIyMgTW9kZWwgUGVyZm9ybWFuY2UgLSBSXjIgZ29lcyBmcm9tIDEwIHRvIDYKcGVyZm9ybWFuY2U6OmNoZWNrX21vZGVsKGNvdmlkLm5iNSwgcGFuZWwgPSBUUlVFKQoKIyMgTWFyZ2lucyAKY3Bsb3QoY292aWQubmI1LCAiUlBMX1RIRU1FUyIsIHdoYXQgPSAicHJlZGljdGlvbiIsIG1haW4gPSAiUHJlZGljdGVkICMgQ09WSUQgVmFjY2luZXMgR2l2ZW4gU1ZJIikKYGBgCgojIyBJbnRlcmFjdGlvbiBiZXR3ZWVuIHJhY2UgKyBTVkkgCmBgYHtyfQpjb3ZpZC5uYjYgPC0gZ2xtLm5iKHRvdGFsX2Nvdl92YXggfiBhZ2VfeXJzICsgZ2VuZGVyICsgZXRobmljXzMgKyBsYW5nXzMgKyByZWxpZ19hZmZpbCArIG1zdGF0XzUgKyBhY3RfdG9iICsgbWF4X2NoICsgcl9wY3QgKyBwb3BfZGVucyArIHJhY2VfNSpSUExfVEhFTUVTLAogICAgICAgICAgICAgICBkYXRhID0gY292aWRfdmF4X2R0YSkKc3VtbWFyeShjb3ZpZC5uYjYpCmJyb29tOjpnbGFuY2UoY292aWQubmI2KQpicm9vbTo6dGlkeShjb3ZpZC5uYjYsIGV4cG9uZW50aWF0ZSA9IFRSVUUpCm1vZGVsX3BlcmZvcm1hbmNlKGNvdmlkLm5iNikKdGJsX3JlZ3Jlc3Npb24oY292aWQubmI2LCBsYWJlbCA9IGxpc3QoYWdlX3lycyB+ICJBZ2UiLCBwb3BfZGVucyB+ICJQb3B1bGF0aW9uIGRlbnNpdHkiLCBnZW5kZXJ+ICJHZW5kZXIiLCBldGhuaWNfMyB+ICJFdGhuaWNpdHkiLCBsYW5nXzMgfiAiUHJlZmVycmVkIExhbmd1YWdlIiwgcmVsaWdfYWZmaWwgfiAiQW55IFJlbGlnaW91cyBBZmZpbGlhdGlvbiIsIFJQTF9USEVNRVMgfiAiVG90YWwgU1ZJIiwgbXN0YXRfNSB+ICJNYXJpdGFsIFN0YXR1cyIsIHJhY2VfNSB+ICJyYWNlIiwgYWN0X3RvYiB+IkFjdGl2ZSBUb2JhY2NvIFVzZSIsIG1heF9jaCB+ICJDaGFybHNvbiBDb21vcmJpZGl0eSBJbmRleCIsIHJfcGN0IH4gIlBlcmNlbnQgUmVwdWJsaWNhbiIpLCBleHBvbmVudGlhdGUgPSBUUlVFKQoKIyMgTW9kZWwgUGVyZm9ybWFuY2UgLSBSXjIgZ29lcyBmcm9tIDEwIHRvIDYKcGVyZm9ybWFuY2U6OmNoZWNrX21vZGVsKGNvdmlkLm5iNiwgcGFuZWwgPSBUUlVFKQoKIyMgTWFyZ2lucyAKY3Bsb3QoY292aWQubmI2LCAiUlBMX1RIRU1FUyIsIHdoYXQgPSAicHJlZGljdGlvbiIsIG1haW4gPSAiUHJlZGljdGVkICMgQ09WSUQgVmFjY2luZXMgR2l2ZW4gU1ZJIikKYGBgCiMjIFNWSSBhcyBhIG1lZGlhdG9yIG9mIHJhY2UgLT4gdmFjY2luYXRpb24gCmBgYHtyfQpDT1ZJRF9NIDwtIGxtKFJQTF9USEVNRVMgfiBhZ2VfeXJzICsgZ2VuZGVyICsgcmFjZV81ICsgZXRobmljXzMgKyBsYW5nXzMgKyBtc3RhdF81CiAgICAgICAgICAgICAgICArIHJlbGlnX2FmZmlsICsgbWF4X2NoICsgYWN0X3RvYiArIHBvcF9kZW5zICsgcl9wY3QgKyB0b3RhbF9jb3ZfdmF4LAogICAgICAgICAgICAgIGRhdGEgPSBjb3ZpZF92YXhfZHRhKQpzdW1tYXJ5KENPVklEX00gKQpicm9vbTo6Z2xhbmNlKENPVklEX00gKQp0YmxfcmVncmVzc2lvbihDT1ZJRF9NLCBsYWJlbCA9IGxpc3QoYWdlX3lycyB+ICJBZ2UiLCBwb3BfZGVucyB+ICJQb3B1bGF0aW9uIGRlbnNpdHkiLCBnZW5kZXJ+ICJHZW5kZXIiLCBldGhuaWNfMyB+ICJFdGhuaWNpdHkiLCBsYW5nXzMgfiAiUHJlZmVycmVkIExhbmd1YWdlIiwgcmVsaWdfYWZmaWwgfiAiQW55IFJlbGlnaW91cyBBZmZpbGlhdGlvbiIsIG1zdGF0XzUgfiAiTWFyaXRhbCBTdGF0dXMiLCByX3BjdCB+ICJQZXJjZW50IFJlYnVwbGljYW4iLCByYWNlXzUgfiAicmFjZSIsIGFjdF90b2IgfiJBY3RpdmUgVG9iYWNjbyBVc2UiLCBtYXhfY2ggfiAiQ2hhcmxzb24gQ29tb3JiaWRpdHkgSW5kZXgiKSkKCiMgU3RlcCAzOiBNZWRpYXRpb24gYW5hbHlzaXMKcmVzdWx0cyA8LSBtZWRpYXRlKENPVklEX00sIGNvdmlkLm5iLCB0cmVhdD0icmFjZV81IiwgbWVkaWF0b3I9IlJQTF9USEVNRVMiLAogICAgICAgICAgICAgICAgICAgYm9vdD1UUlVFLCBzaW1zPTUwMCkKc3VtbWFyeShyZXN1bHRzKQpgYGAKCgojIFNWSSBCeSBRdWFydGlsZXMgey50YWJzZXR9CiMjIE5lZ2F0aXZlIGJpbm9taWFsIG1vZGVsIHdpdGggYWxsIHZhcmlhYmxlcyAKYGBge3J9CmNvdmlkNC5uYiA8LSBnbG0ubmIodG90YWxfY292X3ZheCB+IGFnZV95cnMgKyBnZW5kZXIgKyByYWNlXzUgKyBldGhuaWNfMyArIGxhbmdfMyArIHJlbGlnX2FmZmlsICsgbXN0YXRfNSArIGFjdF90b2IgKyBtYXhfY2ggKyBwb3BfZGVucyArIHJfcGN0ICsgUlBMXzQsCiAgICAgICAgICAgICAgIGRhdGEgPSBjb3ZpZF92YXhfZHRhKSAKc3VtbWFyeShjb3ZpZDQubmIpCmJyb29tOjpnbGFuY2UoY292aWQ0Lm5iKQpicm9vbTo6dGlkeShjb3ZpZDQubmIsIGV4cG9uZW50aWF0ZSA9IFRSVUUpCm1vZGVsX3BlcmZvcm1hbmNlKGNvdmlkNC5uYikKdGJsX3JlZ3Jlc3Npb24oY292aWQ0Lm5iLCBsYWJlbCA9IGxpc3QoYWdlX3lycyB+ICJBZ2UiLCBwb3BfZGVucyB+ICJQb3B1bGF0aW9uIGRlbnNpdHkiLCBnZW5kZXJ+ICJHZW5kZXIiLCBldGhuaWNfMyB+ICJFdGhuaWNpdHkiLCBsYW5nXzMgfiAiUHJlZmVycmVkIExhbmd1YWdlIiwgcmVsaWdfYWZmaWwgfiAiQW55IFJlbGlnaW91cyBBZmZpbGlhdGlvbiIsIFJQTF80IH4gIlNWSSBRdWFydGlsZXMiLCBtc3RhdF81IH4gIk1hcml0YWwgU3RhdHVzIiwgcl9wY3QgfiAiUGVyY2VudCBSZWJ1cGxpY2FuIiwgcmFjZV81IH4gInJhY2UiLCBhY3RfdG9iIH4iQWN0aXZlIFRvYmFjY28gVXNlIiwgbWF4X2NoIH4gIkNoYXJsc29uIENvbW9yYmlkaXR5IEluZGV4IiksIGV4cG9uZW50aWF0ZSA9IFRSVUUpCgojIyBNb2RlbCBQZXJmb3JtYW5jZSAKcGVyZm9ybWFuY2U6OmNoZWNrX21vZGVsKGNvdmlkNC5uYiwgcGFuZWwgPSBUUlVFKQoKIyMgTWFyZ2lucyAKY3Bsb3QoY292aWQ0Lm5iLCAiUlBMXzQiLCB3aGF0ID0gInByZWRpY3Rpb24iLCBtYWluID0gIlByZWRpY3RlZCAjIENPVklEIFZhY2NpbmVzIEdpdmVuIFNWSSBRdWFydGlsZSIpCmBgYAoKIyBBbGwgVGhlbWVzIHsudGFic2V0fQpOZWdhdGl2ZSBiaW5vbWlhbCBtb2RlbCB3aXRoIGFsbCB2YXJpYWJsZXMgCmBgYHtyfQpjb3ZpZF90aGVtZXMubmIgPC0gZ2xtLm5iKHRvdGFsX2Nvdl92YXggfiBhZ2VfeXJzICsgZ2VuZGVyICsgcmFjZV81ICsgZXRobmljXzMgKyBsYW5nXzMgKyByZWxpZ19hZmZpbCArIG1zdGF0XzUgKyBhY3RfdG9iICsgbWF4X2NoICsgcG9wX2RlbnMgKyByX3BjdCArIFJQTF9USEVNRTEgKyBSUExfVEhFTUUyICsgUlBMX1RIRU1FMyArIFJQTF9USEVNRTQsCiAgICAgICAgICAgICAgIGRhdGEgPSBjb3ZpZF92YXhfZHRhKSAKc3VtbWFyeShjb3ZpZF90aGVtZXMubmIpCmJyb29tOjpnbGFuY2UoY292aWRfdGhlbWVzLm5iKQpicm9vbTo6dGlkeShjb3ZpZF90aGVtZXMubmIsIGV4cG9uZW50aWF0ZSA9IFRSVUUpCm1vZGVsX3BlcmZvcm1hbmNlKGNvdmlkX3RoZW1lcy5uYikKdGJsX3JlZ3Jlc3Npb24oY292aWRfdGhlbWVzLm5iLCBsYWJlbCA9IGxpc3QoYWdlX3lycyB+ICJBZ2UiLCBwb3BfZGVucyB+ICJQb3B1bGF0aW9uIGRlbnNpdHkiLCBnZW5kZXJ+ICJHZW5kZXIiLCBldGhuaWNfMyB+ICJFdGhuaWNpdHkiLCBsYW5nXzMgfiAiUHJlZmVycmVkIExhbmd1YWdlIiwgcmVsaWdfYWZmaWwgfiAiQW55IFJlbGlnaW91cyBBZmZpbGlhdGlvbiIsIFJQTF9USEVNRTEgfiAiU29jZWlvZWNvbm9taWMgU3RhdHVzIiwgUlBMX1RIRU1FMiB+ICJIb3VzZWhvbGQgQ29tcG9zaXRpb24iLCBSUExfVEhFTUUzIH4gIk1pbm9yaXR5IFN0YXR1cyBhbmQgTGFuZ3VhZ2UiLCBSUExfVEhFTUU0IH4gIkhvdXNpbmcgYW5kIFRyYW5zcG9ydGF0aW9uIiwgbXN0YXRfNSB+ICJNYXJpdGFsIFN0YXR1cyIsIHJfcGN0IH4gIlBlcmNlbnQgUmVidXBsaWNhbiIsIHJhY2VfNSB+ICJyYWNlIiwgYWN0X3RvYiB+IkFjdGl2ZSBUb2JhY2NvIFVzZSIsIG1heF9jaCB+ICJDaGFybHNvbiBDb21vcmJpZGl0eSBJbmRleCIpLCBleHBvbmVudGlhdGUgPSBUUlVFKQoKIyMgTW9kZWwgUGVyZm9ybWFuY2UgCnBlcmZvcm1hbmNlOjpjaGVja19tb2RlbChjb3ZpZF90aGVtZXMubmIsIHBhbmVsID0gVFJVRSkKCiMjIE1hcmdpbnMgCmNwbG90KGNvdmlkX3RoZW1lcy5uYiwgIlJQTF9USEVNRTEiLCB3aGF0ID0gInByZWRpY3Rpb24iLCBtYWluID0gIlByZWRpY3RlZCAjIENPVklEIFZhY2NpbmVzIEdpdmVuIFRIRU1FMSIpCmNwbG90KGNvdmlkX3RoZW1lcy5uYiwgIlJQTF9USEVNRTIiLCB3aGF0ID0gInByZWRpY3Rpb24iLCBtYWluID0gIlByZWRpY3RlZCAjIENPVklEIFZhY2NpbmVzIEdpdmVuIFRIRU1FMiIpCmNwbG90KGNvdmlkX3RoZW1lcy5uYiwgIlJQTF9USEVNRTMiLCB3aGF0ID0gInByZWRpY3Rpb24iLCBtYWluID0gIlByZWRpY3RlZCAjIENPVklEIFZhY2NpbmVzIEdpdmVuIFRIRU1FMyIpCmNwbG90KGNvdmlkX3RoZW1lcy5uYiwgIlJQTF9USEVNRTQiLCB3aGF0ID0gInByZWRpY3Rpb24iLCBtYWluID0gIlByZWRpY3RlZCAjIENPVklEIFZhY2NpbmVzIEdpdmVuIFRIRU1FNCIpCmBgYAoK