1 Introduction

This data set looks at the Dallas Wings WNBA team’s game data from the 2025 year. The team did not make it to the playoffs. They won 9 games and lost 31. Below are Tables 1 and 2. Table 1 describes the overall season results for all teams, while Table 2 describes a summary of Dallas Wings’s results from the season. Based on the data from this season, we will try to predict the point score for a median game for the Dallas Wings

2 Tables/Season Summary

summary %>%
  kbl(caption = "team score summary", digits = 2) %>%
  kable_classic(full_width = F)
team score summary
team_name mean_score sd_score mean_rebounds sd_rebounds mean_field_goal_pct sd_field_goal_pct mean_3PFGper sd_3PFGper mean_steals sd_steals
Aces 85.52 9.56 33.78 5.88 45.27 5.82 35.27 7.08 6.80 2.67
Dream 76.93 10.59 35.95 4.41 41.28 6.78 30.83 9.32 7.14 2.82
Fever 84.50 10.17 35.10 5.49 45.56 5.38 35.00 8.99 5.88 2.29
Liberty 84.98 9.92 36.90 5.77 44.53 5.61 35.38 10.06 7.75 2.19
Lynx 82.36 11.39 33.15 5.06 45.21 6.34 37.80 9.43 8.36 3.17
Mercury 81.93 12.60 32.26 5.39 44.28 7.34 32.97 10.34 6.55 2.12
Mystics 79.30 8.69 31.85 4.66 43.36 4.82 36.64 8.69 7.28 2.24
Sky 77.40 9.62 36.60 5.57 42.44 5.22 31.74 11.62 7.00 3.30
Sparks 78.40 10.57 32.67 5.52 42.63 6.15 32.09 11.00 7.30 2.78
Storm 82.67 9.65 34.67 6.02 43.43 5.39 28.35 9.03 9.24 3.27
Sun 80.36 9.89 33.43 4.62 44.30 5.28 32.84 11.67 7.89 3.29
Wings 84.20 11.47 34.75 4.65 44.47 5.24 32.06 11.75 7.12 2.95
my_team_win %>%
  kbl(caption = "Wings Win Summary", digits = 2) %>%
  kable_classic(full_width = F)
Wings Win Summary
team_winner mean sd
FALSE 80.97 9.83
TRUE 95.33 9.96

3 Box Plots

below are my histograms and here is a great and wonderful discussion, through a few sentences, on all they have to offer. looking at winning vs losing and now here they are so special and great, right? Below are two boxplots based on the points scored by game result (win or lose).

#i refuse to have a 6-7 joke in my coding. you cannot make me
p <- data %>%
  ggplot(aes(x=team_score, fill = team_winner)) +
    geom_histogram(color = "#e9ecef", alpha=0.6, position = 'identity') +
    scale_fill_manual(values=c("#002b5c", "#c4d600")) 

boxplot(team_score ~ result, data = df_hist, notch = FALSE, 
        col = c("#002b5c", "#c4d600"),
        main = "Points score by game result",
        xlab = "Result", ylab = "Points")

4 Models

5 Interaction Models

Call: lm(formula = team_score ~ field_goal_pct + total_rebounds + three_point_field_goal_pct + field_goal_pct * total_rebounds + field_goal_pct * three_point_field_goal_pct + total_rebounds * three_point_field_goal_pct, data = my_team)

Residuals: Min 1Q Median 3Q Max -20.0621 -2.8317 0.2787 3.8935 16.3294

Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 22.297634 95.796054 0.233 0.817 field_goal_pct 0.800250 2.399886 0.333 0.741 total_rebounds -0.237118 2.587190 -0.092 0.928 three_point_field_goal_pct -0.034367 1.249697 -0.028 0.978 field_goal_pct:total_rebounds 0.016969 0.063750 0.266 0.792 field_goal_pct:three_point_field_goal_pct 0.001972 0.023458 0.084 0.934 total_rebounds:three_point_field_goal_pct 0.006036 0.027642 0.218 0.829

Residual standard error: 7.467 on 33 degrees of freedom Multiple R-squared: 0.6414, Adjusted R-squared: 0.5762 F-statistic: 9.836 on 6 and 33 DF, p-value: 3.182e-06

\(~\)

After after running all models and reducing models, my final model is team_score= -12.3047153 + 1.4462277 * field_goal_pct + 0.6871829 * total_rebounds + 0.2593569 * three_point_field_goal_pct.

This model significantly predicts team score, F(3, 36) = 21.2378708, p<.0001, 0.6088799.

See table below for results:

Dependent variable:
team_score
field_goal_pct 1.446***
(0.253)
total_rebounds 0.687**
(0.255)
three_point_field_goal_pct 0.259**
(0.112)
Constant -12.305
(14.869)
Observations 40
R2 0.639
Adjusted R2 0.609
Residual Std. Error 7.173 (df = 36)
F Statistic 21.238*** (df = 3; 36)
Note: p<0.1; p<0.05; p<0.01

6 Residuals

#residual plots of a variety of times
ols_plot_resid_fit(model4)

ols_plot_resid_hist(model4)

ols_plot_resid_stud(model4)

ols_plot_resid_lev(model4, threshold = 3)

ols_plot_cooksd_chart(model4)

7 Prediction

I built this model to predict my team’s points for a game in which they achieve the median value for each variable. The predicted team score is 83.908595, with 95% confidence interval (81.5603447, 86.2568453).

LS0tCnRpdGxlOiAiQXNzaWdubWVudCA2IFNUQTMxOSBTcHJpbmcgMjAyNiIKYXV0aG9yOiAiIgpkYXRlOiAiYHIgU3lzLkRhdGUoKWAiCm91dHB1dDoKICBodG1sX2RvY3VtZW50OiAKICAgIHRvYzogeWVzCiAgICB0b2NfZGVwdGg6IDQKICAgIHRvY19mbG9hdDogeWVzCiAgICBudW1iZXJfc2VjdGlvbnM6IHllcwogICAgdG9jX2NvbGxhcHNlZDogeWVzCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUKICAgIGNvZGVfZG93bmxvYWQ6IHllcwogICAgc21vb3RoX3Njcm9sbDogeWVzCiAgICB0aGVtZTogbHVtZW4KICBwZGZfZG9jdW1lbnQ6IAogICAgdG9jOiB5ZXMKICAgIHRvY19kZXB0aDogNAogICAgZmlnX2NhcHRpb246IHllcwogICAgbnVtYmVyX3NlY3Rpb25zOiB5ZXMKICAgIGZpZ193aWR0aDogMwogICAgZmlnX2hlaWdodDogMwogIHdvcmRfZG9jdW1lbnQ6IAogICAgdG9jOiB5ZXMKICAgIHRvY19kZXB0aDogNAogICAgZmlnX2NhcHRpb246IHllcwogICAga2VlcF9tZDogeWVzCmVkaXRvcl9vcHRpb25zOiAKICBjaHVua19vdXRwdXRfdHlwZTogaW5saW5lCi0tLQoKYGBge2NzcywgZWNobyA9IEZBTFNFfQojVE9DOjpiZWZvcmUgewogIGNvbnRlbnQ6ICJUYWJsZSBvZiBDb250ZW50cyI7CiAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgZm9udC1zaXplOiAxLjJlbTsKICBkaXNwbGF5OiBibG9jazsKICBjb2xvcjogbmF2eTsKICBtYXJnaW4tYm90dG9tOiAxMHB4Owp9CgoKZGl2I1RPQyBsaSB7ICAgICAvKiB0YWJsZSBvZiBjb250ZW50ICAqLwogICAgbGlzdC1zdHlsZTp1cHBlci1yb21hbjsKICAgIGJhY2tncm91bmQtaW1hZ2U6bm9uZTsKICAgIGJhY2tncm91bmQtcmVwZWF0Om5vbmU7CiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOjA7Cn0KCmgxLnRpdGxlIHsgICAgLyogbGV2ZWwgMSBoZWFkZXIgb2YgdGl0bGUgICovCiAgZm9udC1zaXplOiAyMnB4OwogIGZvbnQtd2VpZ2h0OiBib2xkOwogIGNvbG9yOiBEYXJrUmVkOwogIHRleHQtYWxpZ246IGNlbnRlcjsKICBmb250LWZhbWlseTogIkdpbGwgU2FucyIsIHNhbnMtc2VyaWY7Cn0KCmg0LmF1dGhvciB7IC8qIEhlYWRlciA0IC0gYW5kIHRoZSBhdXRob3IgYW5kIGRhdGEgaGVhZGVycyB1c2UgdGhpcyB0b28gICovCiAgZm9udC1zaXplOiAxNXB4OwogIGZvbnQtd2VpZ2h0OiBib2xkOwogIGZvbnQtZmFtaWx5OiBzeXN0ZW0tdWk7CiAgY29sb3I6IG5hdnk7CiAgdGV4dC1hbGlnbjogY2VudGVyOwp9CgpoNC5kYXRlIHsgLyogSGVhZGVyIDQgLSBhbmQgdGhlIGF1dGhvciBhbmQgZGF0YSBoZWFkZXJzIHVzZSB0aGlzIHRvbyAgKi8KICBmb250LXNpemU6IDE4cHg7CiAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgZm9udC1mYW1pbHk6ICJHaWxsIFNhbnMiLCBzYW5zLXNlcmlmOwogIGNvbG9yOiBEYXJrQmx1ZTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCmgxIHsgLyogSGVhZGVyIDEgLSBhbmQgdGhlIGF1dGhvciBhbmQgZGF0YSBoZWFkZXJzIHVzZSB0aGlzIHRvbyAgKi8KICAgIGZvbnQtc2l6ZTogMjBweDsKICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgZm9udC1mYW1pbHk6ICJUaW1lcyBOZXcgUm9tYW4iLCBUaW1lcywgc2VyaWY7CiAgICBjb2xvcjogZGFya3JlZDsKICAgIHRleHQtYWxpZ246IGxlZnQ7Cn0KCmgyIHsgLyogSGVhZGVyIDIgLSBhbmQgdGhlIGF1dGhvciBhbmQgZGF0YSBoZWFkZXJzIHVzZSB0aGlzIHRvbyAgKi8KICAgIGZvbnQtc2l6ZTogMThweDsKICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgZm9udC1mYW1pbHk6ICJUaW1lcyBOZXcgUm9tYW4iLCBUaW1lcywgc2VyaWY7CiAgICBjb2xvcjogbmF2eTsKICAgIHRleHQtYWxpZ246IGxlZnQ7Cn0KCmgzIHsgLyogSGVhZGVyIDMgLSBhbmQgdGhlIGF1dGhvciBhbmQgZGF0YSBoZWFkZXJzIHVzZSB0aGlzIHRvbyAgKi8KICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgZm9udC1mYW1pbHk6ICJUaW1lcyBOZXcgUm9tYW4iLCBUaW1lcywgc2VyaWY7CiAgICBjb2xvcjogbmF2eTsKICAgIHRleHQtYWxpZ246IGxlZnQ7Cn0KCmg0IHsgLyogSGVhZGVyIDQgLSBhbmQgdGhlIGF1dGhvciBhbmQgZGF0YSBoZWFkZXJzIHVzZSB0aGlzIHRvbyAgKi8KICAgIGZvbnQtc2l6ZTogMTRweDsKICBmb250LXdlaWdodDogYm9sZDsKICAgIGZvbnQtZmFtaWx5OiAiVGltZXMgTmV3IFJvbWFuIiwgVGltZXMsIHNlcmlmOwogICAgY29sb3I6IGRhcmtyZWQ7CiAgICB0ZXh0LWFsaWduOiBsZWZ0Owp9CgovKiBBZGQgZG90cyBhZnRlciBudW1iZXJlZCBoZWFkZXJzICovCi5oZWFkZXItc2VjdGlvbi1udW1iZXI6OmFmdGVyIHsKICBjb250ZW50OiAiLiI7Cgpib2R5IHsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgfQoKLmhpZ2hsaWdodG1lIHsgYmFja2dyb3VuZC1jb2xvcjp5ZWxsb3c7IH0KCnAgeyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB9Cgp9CmBgYAoKCmBgYCB7ciBzZXR1cCwgaW5jbHVkZT1GfQogc2V0d2QoIn4vRGVza3RvcC9Db2xsZWdlL1NUQTMxOSIpCgpkYXRhPXJlYWQuY3N2KCJXTkJBXzIwMjVfYm94LXNjb3Jlcy5jc3YiLCBoZWFkZXI9VCkKCmxpYnJhcnkoZ2dwbG90MikKbGlicmFyeShkcGx5cikKI3ZpZiBmdW5jdGlvbiBpbiB0aGUgY2FyIHBhY2thZ2UKbGlicmFyeShjYXIpCmxpYnJhcnkob2xzcnIpCiNrYWJsZWV4dHJhIGZvciBuaWNlIG1hcmtkb3duIHRhYmxlcwpsaWJyYXJ5KGthYmxlRXh0cmEpCgpgYGAKCgpgYGB7ciB3cmFuZ2xpbmcsIGluY2x1ZGU9Rn0Kc3VtbWFyeShkYXRhKQpsaWJyYXJ5KGRwbHlyKQoKI2ZpbHRlcmluZyBvdXQgZXh0cmFuZW91cyBvYnNlcnZhdGlvbnMsIGFsbCBXTkJBIHRlYW1zIGluY2x1ZGVkLCByZW1vdmUgc2NvcmVzIGZyb20gQUxMIHN0YXJ0IGdhbWUKZGF0YSA9IGRhdGEgJT4lCiAgZmlsdGVyKHRlYW1fbmFtZSAhPSAiVGVhbSBXTkJBIiAmIHRlYW1fbmFtZSAhPSAiVGVhbSBVU0EiKQoKI2dyb3VwIGRhdGEgYnkgdGVhbSwgZmluZCBNIGFuZCBTRCBvZiBhbGwgdmFyaWFibGVzCnN1bW1hcnkgPSBkYXRhICU+JQogIGdyb3VwX2J5KHRlYW1fbmFtZSkgJT4lCiAgc3VtbWFyaXNlKG1lYW5fc2NvcmU9bWVhbih0ZWFtX3Njb3JlKSwgc2Rfc2NvcmU9c2QodGVhbV9zY29yZSksCiAgICAgICAgICAgIG1lYW5fcmVib3VuZHM9bWVhbih0b3RhbF9yZWJvdW5kcyksIHNkX3JlYm91bmRzPXNkKHRvdGFsX3JlYm91bmRzKSwKICAgICAgICAgICAgbWVhbl9maWVsZF9nb2FsX3BjdD1tZWFuKGZpZWxkX2dvYWxfcGN0KSwKICAgICAgICAgICAgc2RfZmllbGRfZ29hbF9wY3Q9c2QoZmllbGRfZ29hbF9wY3QpLAogICAgICAgICAgICBtZWFuXzNQRkdwZXI9bWVhbih0aHJlZV9wb2ludF9maWVsZF9nb2FsX3BjdCksCiAgICAgICAgICAgIHNkXzNQRkdwZXI9c2QodGhyZWVfcG9pbnRfZmllbGRfZ29hbF9wY3QpLAogICAgICAgICAgICBtZWFuX3N0ZWFscz1tZWFuKHN0ZWFscyksIHNkX3N0ZWFscz1zZChzdGVhbHMpCiAgICAgICAgICAgICkKCiNzZWxlY3RpbmcgdmFyaWFibGVzIHdlIG5lZWQgYW5kIGZpbHRlciBteSB0ZWFtLCB3aW5ncyBkaWQgTk9UIG1ha2UgdGhlIHBsYXlvZmZzLCBiIGFuZCBzb21lIG9mIGQKbXlfdGVhbSA9IGRhdGEgJT4lIAogIHNlbGVjdCh0ZWFtX3Njb3JlLCBmaWVsZF9nb2FsX3BjdCwgdG90YWxfcmVib3VuZHMsIAogICAgICAgICB0aHJlZV9wb2ludF9maWVsZF9nb2FsX3BjdCwgc3RlYWxzLCB0ZWFtX25hbWUsIHRlYW1fd2lubmVyKSAlPiUgCiAgZmlsdGVyKHRlYW1fbmFtZSA9PSAiV2luZ3MiKQoKI2dyb3VwcyBjYXNlcyBieSB3aW4gdnMgbG9zcwojc3VtbWFyaXplIGFsbCB2YXJpYWJsZXMgd2l0aCBtZWFuIGFuZCBTRApteV90ZWFtX3dpbiA9IG15X3RlYW0gJT4lCiAgZ3JvdXBfYnkodGVhbV93aW5uZXIpICU+JQogIHN1bW1hcmlzZShtZWFuPW1lYW4odGVhbV9zY29yZSksIHNkPXNkKHRlYW1fc2NvcmUpKQoKZGZfaGlzdCA9IGRhdGEgJT4lCiAgZmlsdGVyKHRlYW1fbmFtZSA9PSAiV2luZ3MiKSU+JQogIG11dGF0ZShyZXN1bHQgPSBjYXNlX3doZW4odGVhbV93aW5uZXI9PVRSVUUgfiJXaW4iLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlYW1fd2lubmVyPT1GQUxTRSB+ICJMb3NzIikpCmRmX21vZGVsMSA9IGRhdGEgJT4lCiAgZmlsdGVyKHRlYW1fbmFtZSA9PSAiV2luZ3MiKQpgYGAKCiMgSW50cm9kdWN0aW9uClRoaXMgZGF0YSBzZXQgbG9va3MgYXQgdGhlIERhbGxhcyBXaW5ncyBXTkJBIHRlYW0ncyBnYW1lIGRhdGEgZnJvbSB0aGUgMjAyNSB5ZWFyLiBUaGUgdGVhbSBkaWQgbm90IG1ha2UgaXQgdG8gdGhlIHBsYXlvZmZzLiBUaGV5IHdvbiA5IGdhbWVzIGFuZCBsb3N0IDMxLiBCZWxvdyBhcmUgVGFibGVzIDEgYW5kIDIuIFRhYmxlIDEgZGVzY3JpYmVzIHRoZSBvdmVyYWxsIHNlYXNvbiByZXN1bHRzIGZvciBhbGwgdGVhbXMsIHdoaWxlIFRhYmxlIDIgZGVzY3JpYmVzIGEgc3VtbWFyeSBvZiBEYWxsYXMgV2luZ3MncyByZXN1bHRzIGZyb20gdGhlIHNlYXNvbi4gQmFzZWQgb24gdGhlIGRhdGEgZnJvbSB0aGlzIHNlYXNvbiwgd2Ugd2lsbCB0cnkgdG8gcHJlZGljdCB0aGUgcG9pbnQgc2NvcmUgZm9yIGEgbWVkaWFuIGdhbWUgZm9yIHRoZSBEYWxsYXMgV2luZ3MKCiMgVGFibGVzL1NlYXNvbiBTdW1tYXJ5CgpgYGB7ciB0YWJsZXMsIGluY2x1ZGU9VH0Kc3VtbWFyeSAlPiUKICBrYmwoY2FwdGlvbiA9ICJ0ZWFtIHNjb3JlIHN1bW1hcnkiLCBkaWdpdHMgPSAyKSAlPiUKICBrYWJsZV9jbGFzc2ljKGZ1bGxfd2lkdGggPSBGKQoKbXlfdGVhbV93aW4gJT4lCiAga2JsKGNhcHRpb24gPSAiV2luZ3MgV2luIFN1bW1hcnkiLCBkaWdpdHMgPSAyKSAlPiUKICBrYWJsZV9jbGFzc2ljKGZ1bGxfd2lkdGggPSBGKQoKYGBgCgojIEJveCBQbG90cwpiZWxvdyBhcmUgbXkgaGlzdG9ncmFtcyBhbmQgaGVyZSBpcyBhIGdyZWF0IGFuZCB3b25kZXJmdWwgZGlzY3Vzc2lvbiwgdGhyb3VnaCBhIGZldyBzZW50ZW5jZXMsIG9uIGFsbCB0aGV5IGhhdmUgdG8gb2ZmZXIuIGxvb2tpbmcgYXQgd2lubmluZyB2cyBsb3NpbmcgYW5kIG5vdyBoZXJlIHRoZXkgYXJlIHNvIHNwZWNpYWwgYW5kIGdyZWF0LCByaWdodD8KQmVsb3cgYXJlIHR3byBib3hwbG90cyBiYXNlZCBvbiB0aGUgcG9pbnRzIHNjb3JlZCBieSBnYW1lIHJlc3VsdCAod2luIG9yIGxvc2UpLiAKCgpgYGB7ciBncmFwaHMsIGluY2x1ZGU9VCwgZmlnLndpZHRoPTcsIGZpZy5oZWlnaHQ9N30KI2kgcmVmdXNlIHRvIGhhdmUgYSA2LTcgam9rZSBpbiBteSBjb2RpbmcuIHlvdSBjYW5ub3QgbWFrZSBtZQpwIDwtIGRhdGEgJT4lCiAgZ2dwbG90KGFlcyh4PXRlYW1fc2NvcmUsIGZpbGwgPSB0ZWFtX3dpbm5lcikpICsKICAgIGdlb21faGlzdG9ncmFtKGNvbG9yID0gIiNlOWVjZWYiLCBhbHBoYT0wLjYsIHBvc2l0aW9uID0gJ2lkZW50aXR5JykgKwogICAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzPWMoIiMwMDJiNWMiLCAiI2M0ZDYwMCIpKSAKCmJveHBsb3QodGVhbV9zY29yZSB+IHJlc3VsdCwgZGF0YSA9IGRmX2hpc3QsIG5vdGNoID0gRkFMU0UsIAogICAgICAgIGNvbCA9IGMoIiMwMDJiNWMiLCAiI2M0ZDYwMCIpLAogICAgICAgIG1haW4gPSAiUG9pbnRzIHNjb3JlIGJ5IGdhbWUgcmVzdWx0IiwKICAgICAgICB4bGFiID0gIlJlc3VsdCIsIHlsYWIgPSAiUG9pbnRzIikKYGBgCgojIE1vZGVscwoKYGBge3IgRmlyc3QgT3JkZXIgTW9kZWwsIGluY2x1ZGUgPSBGfQoKI2NyZWF0aW5nIG1vZGVsIDEKbW9kZWwxPWxtKHRlYW1fc2NvcmV+ZmllbGRfZ29hbF9wY3QrdG90YWxfcmVib3VuZHMrdGhyZWVfcG9pbnRfZmllbGRfZ29hbF9wY3QrCiAgICAgICAgICAgIHN0ZWFscywgZGF0YT1teV90ZWFtKQpzdW1tYXJ5KG1vZGVsMSkKCiNjcmVhdGluZyBjb3JyZWxhdGlvbiBtYXRyaXgKY29yX2RhdGEgPSBteV90ZWFtICU+JQogIHNlbGVjdCh0ZWFtX3Njb3JlLCBmaWVsZF9nb2FsX3BjdCwgdG90YWxfcmVib3VuZHMsIAogICAgICAgICB0aHJlZV9wb2ludF9maWVsZF9nb2FsX3BjdCwgc3RlYWxzKQoKY29yKGNvcl9kYXRhKQoKI2ZpbmRpbmcgdmlmIHZhbHVlcwp2aWYobW9kZWwxKQoKCiNjcmVhdGluZyBtb2RlbCAyLCBzYW1lIGFzIG1vZGVsIDEgZHVlIHRvIG5vIGhpZ2hseSBjb3JyZWxhdGVkIHBhaXJzCm1vZGVsMj1sbSh0ZWFtX3Njb3JlfmZpZWxkX2dvYWxfcGN0K3RvdGFsX3JlYm91bmRzK3RocmVlX3BvaW50X2ZpZWxkX2dvYWxfcGN0KwogICAgICAgICAgICBzdGVhbHMsIGRhdGE9bXlfdGVhbSkKc3VtbWFyeShtb2RlbDIpCgpgYGAKCiMgSW50ZXJhY3Rpb24gTW9kZWxzCgpgYGB7ciBJbnRlcmFjdGlvbiBNb2RlbCwgcmVzdWx0cz0nYXNpcycsIGVjaG89RiwgaW5jbHVkZSA9IFQsIGNvbW1lbnQ9TkF9CiNjcmVhdGluZyBtb2RlbCAzCm1vZGVsMz1sbSh0ZWFtX3Njb3JlfmZpZWxkX2dvYWxfcGN0K3RvdGFsX3JlYm91bmRzK3RocmVlX3BvaW50X2ZpZWxkX2dvYWxfcGN0ICsgZmllbGRfZ29hbF9wY3QqdG90YWxfcmVib3VuZHMgKyBmaWVsZF9nb2FsX3BjdCp0aHJlZV9wb2ludF9maWVsZF9nb2FsX3BjdCt0b3RhbF9yZWJvdW5kcyp0aHJlZV9wb2ludF9maWVsZF9nb2FsX3BjdCwgZGF0YT1teV90ZWFtKQpzdW1tYXJ5KG1vZGVsMykKCiNtb2RlbDMgaGFkIG5vIHNpZ25pZmljYW50IGVmZmVjdHMsIHNvIHRoaXMgaXMgYSByZWR1Y2VkIG1vZGVsIGluY2x1ZGluZyB0aGUgcmVtb3ZhbCBvZiBzdGVhbHMgZHVlIHRvIGl0IG5vdCBiZWluZyBzaWduaWZpY2FudCBldmVuIHdpdGhvdXQgdGhlIGludGVyYWN0aW9uIGVmZmVjdHMKbW9kZWw0PWxtKHRlYW1fc2NvcmV+ZmllbGRfZ29hbF9wY3QrdG90YWxfcmVib3VuZHMrdGhyZWVfcG9pbnRfZmllbGRfZ29hbF9wY3QsIGRhdGE9bXlfdGVhbSkKbW9kZWw0c3VtPXN1bW1hcnkobW9kZWw0KQoKCmBgYAoKJH4kCgpBZnRlciBhZnRlciBydW5uaW5nIGFsbCBtb2RlbHMgYW5kIHJlZHVjaW5nIG1vZGVscywgbXkgZmluYWwgbW9kZWwgaXMgdGVhbV9zY29yZT0gYHIgbW9kZWw0JGNvZWZmaWNpZW50c1sxXWAgKyBgciBtb2RlbDQkY29lZmZpY2llbnRzWzJdYCAqIGZpZWxkX2dvYWxfcGN0ICsgYHIgbW9kZWw0JGNvZWZmaWNpZW50c1szXWAgKiB0b3RhbF9yZWJvdW5kcyArIGByIG1vZGVsNCRjb2VmZmljaWVudHNbNF1gICogdGhyZWVfcG9pbnRfZmllbGRfZ29hbF9wY3QuCgpUaGlzIG1vZGVsIHNpZ25pZmljYW50bHkgcHJlZGljdHMgdGVhbSBzY29yZSwgRihgciBtb2RlbDRzdW0kZnN0YXRpc3RpY1syXWAsIGByIG1vZGVsNHN1bSRmc3RhdGlzdGljWzNdYCkgPSBgciBtb2RlbDRzdW0kZnN0YXRpc3RpY1sxXWAsIHA8LjAwMDEsIGByIG1vZGVsNHN1bSRhZGouci5zcXVhcmVkYC4KClNlZSB0YWJsZSBiZWxvdyBmb3IgcmVzdWx0czoKYGBge3IsIGluY2x1ZGU9VCwgZWNobz1GLCByZXN1bHRzPSJhc2lzIiwgbWVzc2FnZT1GfQpsaWJyYXJ5KHN0YXJnYXplcikKc3RhcmdhemVyKG1vZGVsNCwgdHlwZSA9ICJodG1sIikKYGBgCgojIFJlc2lkdWFscwoKYGBge3IgUmVzaWR1YWxzfQojcmVzaWR1YWwgcGxvdHMgb2YgYSB2YXJpZXR5IG9mIHRpbWVzCm9sc19wbG90X3Jlc2lkX2ZpdChtb2RlbDQpCm9sc19wbG90X3Jlc2lkX2hpc3QobW9kZWw0KQpvbHNfcGxvdF9yZXNpZF9zdHVkKG1vZGVsNCkKb2xzX3Bsb3RfcmVzaWRfbGV2KG1vZGVsNCwgdGhyZXNob2xkID0gMykKb2xzX3Bsb3RfY29va3NkX2NoYXJ0KG1vZGVsNCkKYGBgCgojIFByZWRpY3Rpb24KCmBgYHtyIFByZWRpY3Rpb24sIGluY2x1ZGUgPSBGfQojZm9yIGZpbmRpbmcgbWVkaWFuIHZhbHVlcwpzdW1tYXJ5KGNvcl9kYXRhKQoKI25ldyBkYXRhIGZyYW1lIGZvciB0aGUgbWVkaWFuIGdhbWUKbmV3ZGF0YT1kYXRhLmZyYW1lKGZpZWxkX2dvYWxfcGN0PTQ0LjQwLCB0b3RhbF9yZWJvdW5kcz0zNC4wMCwgdGhyZWVfcG9pbnRfZmllbGRfZ29hbF9wY3Q9MzMuMzAsIHN0ZWFscz02LjUwKQoKI3ByZWRpY3RpbmcgbWVkaWFuIGdhbWUKcHJlZGljdGlvbiA9IHByZWRpY3QobW9kZWw0LCBuZXdkYXRhLCBpbnRlcnZhbCA9ICJjb25maWRlbmNlIiwgbGV2ZWw9Ljk1KQpgYGAKSSBidWlsdCB0aGlzIG1vZGVsIHRvIHByZWRpY3QgbXkgdGVhbSdzIHBvaW50cyBmb3IgYSBnYW1lIGluIHdoaWNoIHRoZXkgYWNoaWV2ZSB0aGUgbWVkaWFuIHZhbHVlIGZvciBlYWNoIHZhcmlhYmxlLiBUaGUgcHJlZGljdGVkIHRlYW0gc2NvcmUgaXMgYHIgcHJlZGljdGlvblsxXWAsIHdpdGggOTUlIGNvbmZpZGVuY2UgaW50ZXJ2YWwgKGByIHByZWRpY3Rpb25bMl1gLCBgciBwcmVkaWN0aW9uWzNdYCkuCgogICAgIA==