library(tidyverse)
library(openintro)

Exercise 1

Make a plot (or plots) to visualize the distributions of the amount of calories from fat of the options from these two restaurants. How do their centers, shapes, and spreads compare?

ggplot(data = mcdonalds, aes(x = cal_fat)) +
  geom_bar(stat="count", width=5.0, fill="steelblue")+ 
  ggtitle("Mcdonald's: Calories from Fat")

ggplot(data = dairy_queen, aes(x = cal_fat)) +
  geom_bar(stat="count", width=5.0, fill="steelblue")+ 
  ggtitle("Dairy Queen: Calories from Fat")

The McDonald’s data is skewed further to the right than the Dairy Queen data.

Exercise 2

Based on the this plot, does it appear that the data follow a nearly normal distribution?

dqmean <- mean(dairy_queen$cal_fat)
dqsd   <- sd(dairy_queen$cal_fat)
ggplot(data = dairy_queen, aes(x = cal_fat)) +
        geom_blank() +
        geom_histogram(aes(y = ..density..)) +
        stat_function(fun = dnorm, args = c(mean = dqmean, sd = dqsd), col = "tomato")

Using the density plot the distribution curve nearly follows a normal distribution.

Exercise 3

Make a normal probability plot of sim_norm. Do all of the points fall on the line? How does this plot compare to the probability plot for the real data? (Since sim_norm is not a data frame, it can be put directly into the sample argument and the data argument can be dropped.)
When comparing the dairy queen density plot to a simulated normal distribution it can be seen that the dairy queen plot does match match a normal distribution. Within the 1st, 2nd, 3rd quantile the dairy queen is close but 4th is deviates from the normal line. Looking at the simulated normal plot it produced a similar result.

ggplot(data = dairy_queen, aes(sample = cal_fat)) + 
  geom_line(stat = "qq")

sim_norm <- rnorm(n = nrow(dairy_queen), mean = dqmean, sd = dqsd)
qqnorm(sim_norm)
qqline(sim_norm)

Exercise 4

qqnormsim(sample = cal_fat, data = dairy_queen)

Does the normal probability plot for the calories from fat look similar to the plots created for the simulated data? That is, do the plots provide evidence that the calories are nearly normal?
Looking at multiple simulations it can be seen that the dairy queen data is most similar to simulation 5. This suggests that the data is nearly normal.

Exercise 5

Using the same technique, determine whether or not the calories from McDonald’s menu appear to come from a normal distribution.
It can be said the data set from McDonald’s is not a normal distribution

ggplot(data = mcdonalds, aes(sample = cal_fat)) + 
  geom_line(stat = "qq")

Exercise 6

Write out two probability questions that you would like to answer about any of the restaurants in this dataset. Calculate those probabilities using both the theoretical normal distribution as well as the empirical distribution (four probabilities in all). Which one had a closer agreement between the two methods?
Do the calories from fat at Arby’s follow a normal distribution? Do the calories from fat at Sonic follow a normal distribution?

Arbys <- fastfood %>%
  filter(restaurant == "Arbys")
Sonic <- fastfood %>%
  filter(restaurant == "Sonic")

ggplot(data = Arbys, aes(sample = cal_fat)) + 
  geom_line(stat = "qq")+ 
  ggtitle("Arby's")

ggplot(data = Sonic, aes(sample = cal_fat)) + 
  geom_line(stat = "qq")+ 
  ggtitle("Sonic")

After reviewing the QQ plot for Arbys and Sonic, it can be seen that only Arby’s data follows closely a normal distribution

Exercise 7

Now let’s consider some of the other variables in the dataset. Out of all the different restaurants, which ones’ distribution is the closest to normal for sodium?
In reviewing the distribution of data from all restaurants, it was found that Burger King and .

ChickFilA <- fastfood %>%
  filter(restaurant == "Chick Fil-A")

BurgerKing <- fastfood %>%
  filter(restaurant == "Burger King")

Subway <- fastfood %>%
  filter(restaurant == "Subway")

TacoBell <- fastfood %>%
  filter(restaurant == "Taco Bell")

ggplot(data = Arbys, aes(sample = sodium)) + 
  geom_line(stat = "qq")+ 
  ggtitle("Arby's")

ggplot(data = BurgerKing, aes(sample = sodium)) + 
  geom_line(stat = "qq")+ 
  ggtitle("Burger King")

ggplot(data = mcdonalds, aes(sample = sodium)) + 
  geom_line(stat = "qq")+ 
  ggtitle("McDonald's")

ggplot(data = Sonic, aes(sample = sodium)) + 
  geom_line(stat = "qq")+ 
  ggtitle("Sonic")

ggplot(data = ChickFilA, aes(sample = sodium)) + 
  geom_line(stat = "qq")+ 
  ggtitle("Chick Fil-A")

ggplot(data = dairy_queen, aes(sample = sodium)) + 
  geom_line(stat = "qq")+ 
  ggtitle("Dairy Queen")

Exercise 8

Note that some of the normal probability plots for sodium distributions seem to have a stepwise pattern. why do you think this might be the case?
This plot seems to indicate that sodium for foods at the restaurants are left skewed.

Exercise 9

As you can see, normal probability plots can be used both to assess normality and visualize skewness. Make a normal probability plot for the total carbohydrates from a restaurant of your choice. Based on this normal probability plot, is this variable left skewed, symmetric, or right skewed? Use a histogram to confirm your findings.

ggplot(data = Sonic, aes(sample = total_carb)) + 
  geom_line(stat = "qq")+ 
  ggtitle("Sonic")

This plot seems to indicate that the carbohydrate for foods at Sonic are left skewed.

LS0tDQp0aXRsZTogIkxhYiA0OiBUaGUgTm9ybWFsIERpc3RyaWJ1dGlvbiINCmF1dGhvcjogIkV1Y2xpZGUgTi4gUm9kcmlndWV6Ig0KZGF0ZTogImByIFN5cy5EYXRlKClgIg0Kb3V0cHV0OiBvcGVuaW50cm86OmxhYl9yZXBvcnQNCi0tLQ0KDQpgYGB7ciBsb2FkLXBhY2thZ2VzLCBtZXNzYWdlPUZBTFNFfQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KG9wZW5pbnRybykNCmBgYA0KDQpgYGB7ciwgbWVzc2FnZT1GQUxTRSwgaW5jbHVkZT1GQUxTRX0NCmRhdGEoImZhc3Rmb29kIiwgcGFja2FnZT0nb3BlbmludHJvJykNCmhlYWQoZmFzdGZvb2QpDQpmYXN0Zm9vZA0KYGBgDQoNCg0KYGBge3IsIG1lc3NhZ2U9RkFMU0UsIGluY2x1ZGU9RkFMU0V9DQoNCm1jZG9uYWxkcyA8LSBmYXN0Zm9vZCAlPiUNCiAgZmlsdGVyKHJlc3RhdXJhbnQgPT0gIk1jZG9uYWxkcyIpDQpkYWlyeV9xdWVlbiA8LSBmYXN0Zm9vZCAlPiUNCiAgZmlsdGVyKHJlc3RhdXJhbnQgPT0gIkRhaXJ5IFF1ZWVuIikNCmBgYA0KDQojIyMgRXhlcmNpc2UgMQ0KTWFrZSBhIHBsb3QgKG9yIHBsb3RzKSB0byB2aXN1YWxpemUgdGhlIGRpc3RyaWJ1dGlvbnMgb2YgdGhlIGFtb3VudCBvZiBjYWxvcmllcyBmcm9tIGZhdCBvZiB0aGUgb3B0aW9ucyBmcm9tIHRoZXNlIHR3byByZXN0YXVyYW50cy4gSG93IGRvIHRoZWlyIGNlbnRlcnMsIHNoYXBlcywgYW5kIHNwcmVhZHMgY29tcGFyZT8NCmBgYHtyfQ0KZ2dwbG90KGRhdGEgPSBtY2RvbmFsZHMsIGFlcyh4ID0gY2FsX2ZhdCkpICsNCiAgZ2VvbV9iYXIoc3RhdD0iY291bnQiLCB3aWR0aD01LjAsIGZpbGw9InN0ZWVsYmx1ZSIpKyANCiAgZ2d0aXRsZSgiTWNkb25hbGQnczogQ2Fsb3JpZXMgZnJvbSBGYXQiKQ0KDQpnZ3Bsb3QoZGF0YSA9IGRhaXJ5X3F1ZWVuLCBhZXMoeCA9IGNhbF9mYXQpKSArDQogIGdlb21fYmFyKHN0YXQ9ImNvdW50Iiwgd2lkdGg9NS4wLCBmaWxsPSJzdGVlbGJsdWUiKSsgDQogIGdndGl0bGUoIkRhaXJ5IFF1ZWVuOiBDYWxvcmllcyBmcm9tIEZhdCIpDQoNCmBgYA0KKipUaGUgTWNEb25hbGQncyBkYXRhIGlzIHNrZXdlZCBmdXJ0aGVyIHRvIHRoZSByaWdodCB0aGFuIHRoZSBEYWlyeSBRdWVlbiBkYXRhLioqICANCg0KIyMjIEV4ZXJjaXNlIDINCg0KQmFzZWQgb24gdGhlIHRoaXMgcGxvdCwgZG9lcyBpdCBhcHBlYXIgdGhhdCB0aGUgZGF0YSBmb2xsb3cgYSBuZWFybHkgbm9ybWFsIGRpc3RyaWJ1dGlvbj8NCmBgYHtyLCBtZXNzYWdlPUZBTFNFfQ0KZHFtZWFuIDwtIG1lYW4oZGFpcnlfcXVlZW4kY2FsX2ZhdCkNCmRxc2QgICA8LSBzZChkYWlyeV9xdWVlbiRjYWxfZmF0KQ0KZ2dwbG90KGRhdGEgPSBkYWlyeV9xdWVlbiwgYWVzKHggPSBjYWxfZmF0KSkgKw0KICAgICAgICBnZW9tX2JsYW5rKCkgKw0KICAgICAgICBnZW9tX2hpc3RvZ3JhbShhZXMoeSA9IC4uZGVuc2l0eS4uKSkgKw0KICAgICAgICBzdGF0X2Z1bmN0aW9uKGZ1biA9IGRub3JtLCBhcmdzID0gYyhtZWFuID0gZHFtZWFuLCBzZCA9IGRxc2QpLCBjb2wgPSAidG9tYXRvIikNCmBgYA0KKipVc2luZyB0aGUgZGVuc2l0eSBwbG90IHRoZSBkaXN0cmlidXRpb24gY3VydmUgbmVhcmx5IGZvbGxvd3MgYSBub3JtYWwgZGlzdHJpYnV0aW9uLioqIA0KDQojIyMgRXhlcmNpc2UgMw0KTWFrZSBhIG5vcm1hbCBwcm9iYWJpbGl0eSBwbG90IG9mIHNpbV9ub3JtLiBEbyBhbGwgb2YgdGhlIHBvaW50cyBmYWxsIG9uIHRoZSBsaW5lPyBIb3cgZG9lcyB0aGlzIHBsb3QgY29tcGFyZSB0byB0aGUgcHJvYmFiaWxpdHkgcGxvdCBmb3IgdGhlIHJlYWwgZGF0YT8gKFNpbmNlIHNpbV9ub3JtIGlzIG5vdCBhIGRhdGEgZnJhbWUsIGl0IGNhbiBiZSBwdXQgZGlyZWN0bHkgaW50byB0aGUgc2FtcGxlIGFyZ3VtZW50IGFuZCB0aGUgZGF0YSBhcmd1bWVudCBjYW4gYmUgZHJvcHBlZC4pICAgIA0KKipXaGVuIGNvbXBhcmluZyB0aGUgZGFpcnkgcXVlZW4gZGVuc2l0eSBwbG90IHRvIGEgc2ltdWxhdGVkIG5vcm1hbCBkaXN0cmlidXRpb24gaXQgY2FuIGJlIHNlZW4gdGhhdCB0aGUgZGFpcnkgcXVlZW4gcGxvdCBkb2VzIG1hdGNoIG1hdGNoIGEgbm9ybWFsIGRpc3RyaWJ1dGlvbi4gIFdpdGhpbiB0aGUgMXN0LCAybmQsIDNyZCBxdWFudGlsZSB0aGUgZGFpcnkgcXVlZW4gaXMgY2xvc2UgYnV0IDR0aCBpcyBkZXZpYXRlcyBmcm9tIHRoZSBub3JtYWwgbGluZS4gIExvb2tpbmcgYXQgdGhlIHNpbXVsYXRlZCBub3JtYWwgcGxvdCBpdCBwcm9kdWNlZCBhIHNpbWlsYXIgcmVzdWx0LioqDQoNCmBgYHtyfQ0KZ2dwbG90KGRhdGEgPSBkYWlyeV9xdWVlbiwgYWVzKHNhbXBsZSA9IGNhbF9mYXQpKSArIA0KICBnZW9tX2xpbmUoc3RhdCA9ICJxcSIpDQoNCnNpbV9ub3JtIDwtIHJub3JtKG4gPSBucm93KGRhaXJ5X3F1ZWVuKSwgbWVhbiA9IGRxbWVhbiwgc2QgPSBkcXNkKQ0KDQpgYGANCg0KYGBge3J9DQpxcW5vcm0oc2ltX25vcm0pDQpxcWxpbmUoc2ltX25vcm0pDQpgYGANCg0KIyMjIEV4ZXJjaXNlIDQNCg0KDQoNCmBgYHtyLCBtZXNzYWdlPUZBTFNFfQ0KcXFub3Jtc2ltKHNhbXBsZSA9IGNhbF9mYXQsIGRhdGEgPSBkYWlyeV9xdWVlbikNCmBgYA0KDQpEb2VzIHRoZSBub3JtYWwgcHJvYmFiaWxpdHkgcGxvdCBmb3IgdGhlIGNhbG9yaWVzIGZyb20gZmF0IGxvb2sgc2ltaWxhciB0byB0aGUgcGxvdHMgY3JlYXRlZCBmb3IgdGhlIHNpbXVsYXRlZCBkYXRhPyBUaGF0IGlzLCBkbyB0aGUgcGxvdHMgcHJvdmlkZSBldmlkZW5jZSB0aGF0IHRoZSBjYWxvcmllcyBhcmUgbmVhcmx5IG5vcm1hbD8gIA0KKipMb29raW5nIGF0IG11bHRpcGxlIHNpbXVsYXRpb25zIGl0IGNhbiBiZSBzZWVuIHRoYXQgdGhlIGRhaXJ5IHF1ZWVuIGRhdGEgaXMgbW9zdCBzaW1pbGFyIHRvIHNpbXVsYXRpb24gNS4gIFRoaXMgc3VnZ2VzdHMgdGhhdCB0aGUgZGF0YSBpcyBuZWFybHkgbm9ybWFsLioqDQoNCmBgYHtyLCBtZXNzYWdlPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQ0KMSAtIHBub3JtKHEgPSA2MDAsIG1lYW4gPSBkcW1lYW4sIHNkID0gZHFzZCkNCg0KZGFpcnlfcXVlZW4gJT4lIA0KICBmaWx0ZXIoY2FsX2ZhdCA+IDYwMCkgJT4lDQogIHN1bW1hcmlzZShwZXJjZW50ID0gbigpIC8gbnJvdyhkYWlyeV9xdWVlbikpDQpgYGANCg0KDQoNCiMjIyBFeGVyY2lzZSA1DQpVc2luZyB0aGUgc2FtZSB0ZWNobmlxdWUsIGRldGVybWluZSB3aGV0aGVyIG9yIG5vdCB0aGUgY2Fsb3JpZXMgZnJvbSBNY0RvbmFsZOKAmXMgbWVudSBhcHBlYXIgdG8gY29tZSBmcm9tIGEgbm9ybWFsIGRpc3RyaWJ1dGlvbi4gIA0KKipJdCBjYW4gYmUgc2FpZCB0aGUgZGF0YSBzZXQgZnJvbSBNY0RvbmFsZCdzIGlzIG5vdCBhIG5vcm1hbCBkaXN0cmlidXRpb24qKg0KYGBge3J9DQpnZ3Bsb3QoZGF0YSA9IG1jZG9uYWxkcywgYWVzKHNhbXBsZSA9IGNhbF9mYXQpKSArIA0KICBnZW9tX2xpbmUoc3RhdCA9ICJxcSIpDQpgYGANCg0KIyMjIEV4ZXJjaXNlIDYNCldyaXRlIG91dCB0d28gcHJvYmFiaWxpdHkgcXVlc3Rpb25zIHRoYXQgeW91IHdvdWxkIGxpa2UgdG8gYW5zd2VyIGFib3V0IGFueSBvZiB0aGUgcmVzdGF1cmFudHMgaW4gdGhpcyBkYXRhc2V0LiBDYWxjdWxhdGUgdGhvc2UgcHJvYmFiaWxpdGllcyB1c2luZyBib3RoIHRoZSB0aGVvcmV0aWNhbCBub3JtYWwgZGlzdHJpYnV0aW9uIGFzIHdlbGwgYXMgdGhlIGVtcGlyaWNhbCBkaXN0cmlidXRpb24gKGZvdXIgcHJvYmFiaWxpdGllcyBpbiBhbGwpLiBXaGljaCBvbmUgaGFkIGEgY2xvc2VyIGFncmVlbWVudCBiZXR3ZWVuIHRoZSB0d28gbWV0aG9kcz8gIA0KKipEbyB0aGUgY2Fsb3JpZXMgZnJvbSBmYXQgYXQgQXJieSdzIGZvbGxvdyBhIG5vcm1hbCBkaXN0cmlidXRpb24/IERvIHRoZSBjYWxvcmllcyBmcm9tIGZhdCBhdCBTb25pYyBmb2xsb3cgYSBub3JtYWwgZGlzdHJpYnV0aW9uPyoqDQoNCmBgYHtyfQ0KQXJieXMgPC0gZmFzdGZvb2QgJT4lDQogIGZpbHRlcihyZXN0YXVyYW50ID09ICJBcmJ5cyIpDQpTb25pYyA8LSBmYXN0Zm9vZCAlPiUNCiAgZmlsdGVyKHJlc3RhdXJhbnQgPT0gIlNvbmljIikNCg0KZ2dwbG90KGRhdGEgPSBBcmJ5cywgYWVzKHNhbXBsZSA9IGNhbF9mYXQpKSArIA0KICBnZW9tX2xpbmUoc3RhdCA9ICJxcSIpKyANCiAgZ2d0aXRsZSgiQXJieSdzIikNCg0KZ2dwbG90KGRhdGEgPSBTb25pYywgYWVzKHNhbXBsZSA9IGNhbF9mYXQpKSArIA0KICBnZW9tX2xpbmUoc3RhdCA9ICJxcSIpKyANCiAgZ2d0aXRsZSgiU29uaWMiKQ0KYGBgDQoqKkFmdGVyIHJldmlld2luZyB0aGUgUVEgcGxvdCBmb3IgQXJieXMgYW5kIFNvbmljLCBpdCBjYW4gYmUgc2VlbiB0aGF0IG9ubHkgQXJieSdzIGRhdGEgZm9sbG93cyBjbG9zZWx5IGEgbm9ybWFsIGRpc3RyaWJ1dGlvbioqDQoNCiMjIyBFeGVyY2lzZSA3DQpOb3cgbGV04oCZcyBjb25zaWRlciBzb21lIG9mIHRoZSBvdGhlciB2YXJpYWJsZXMgaW4gdGhlIGRhdGFzZXQuIE91dCBvZiBhbGwgdGhlIGRpZmZlcmVudCByZXN0YXVyYW50cywgd2hpY2ggb25lc+KAmSBkaXN0cmlidXRpb24gaXMgdGhlIGNsb3Nlc3QgdG8gbm9ybWFsIGZvciBzb2RpdW0/ICANCioqSW4gcmV2aWV3aW5nIHRoZSBkaXN0cmlidXRpb24gb2YgZGF0YSBmcm9tIGFsbCByZXN0YXVyYW50cywgaXQgd2FzIGZvdW5kIHRoYXQgQnVyZ2VyIEtpbmcgYW5kIC4qKg0KDQpgYGB7cn0NCkNoaWNrRmlsQSA8LSBmYXN0Zm9vZCAlPiUNCiAgZmlsdGVyKHJlc3RhdXJhbnQgPT0gIkNoaWNrIEZpbC1BIikNCg0KQnVyZ2VyS2luZyA8LSBmYXN0Zm9vZCAlPiUNCiAgZmlsdGVyKHJlc3RhdXJhbnQgPT0gIkJ1cmdlciBLaW5nIikNCg0KU3Vid2F5IDwtIGZhc3Rmb29kICU+JQ0KICBmaWx0ZXIocmVzdGF1cmFudCA9PSAiU3Vid2F5IikNCg0KVGFjb0JlbGwgPC0gZmFzdGZvb2QgJT4lDQogIGZpbHRlcihyZXN0YXVyYW50ID09ICJUYWNvIEJlbGwiKQ0KDQpnZ3Bsb3QoZGF0YSA9IEFyYnlzLCBhZXMoc2FtcGxlID0gc29kaXVtKSkgKyANCiAgZ2VvbV9saW5lKHN0YXQgPSAicXEiKSsgDQogIGdndGl0bGUoIkFyYnkncyIpDQoNCmdncGxvdChkYXRhID0gQnVyZ2VyS2luZywgYWVzKHNhbXBsZSA9IHNvZGl1bSkpICsgDQogIGdlb21fbGluZShzdGF0ID0gInFxIikrIA0KICBnZ3RpdGxlKCJCdXJnZXIgS2luZyIpDQoNCmdncGxvdChkYXRhID0gbWNkb25hbGRzLCBhZXMoc2FtcGxlID0gc29kaXVtKSkgKyANCiAgZ2VvbV9saW5lKHN0YXQgPSAicXEiKSsgDQogIGdndGl0bGUoIk1jRG9uYWxkJ3MiKQ0KDQpnZ3Bsb3QoZGF0YSA9IFNvbmljLCBhZXMoc2FtcGxlID0gc29kaXVtKSkgKyANCiAgZ2VvbV9saW5lKHN0YXQgPSAicXEiKSsgDQogIGdndGl0bGUoIlNvbmljIikNCg0KZ2dwbG90KGRhdGEgPSBDaGlja0ZpbEEsIGFlcyhzYW1wbGUgPSBzb2RpdW0pKSArIA0KICBnZW9tX2xpbmUoc3RhdCA9ICJxcSIpKyANCiAgZ2d0aXRsZSgiQ2hpY2sgRmlsLUEiKQ0KDQpnZ3Bsb3QoZGF0YSA9IGRhaXJ5X3F1ZWVuLCBhZXMoc2FtcGxlID0gc29kaXVtKSkgKyANCiAgZ2VvbV9saW5lKHN0YXQgPSAicXEiKSsgDQogIGdndGl0bGUoIkRhaXJ5IFF1ZWVuIikNCg0KYGBgDQoNCiMjIyBFeGVyY2lzZSA4DQpOb3RlIHRoYXQgc29tZSBvZiB0aGUgbm9ybWFsIHByb2JhYmlsaXR5IHBsb3RzIGZvciBzb2RpdW0gZGlzdHJpYnV0aW9ucyBzZWVtIHRvIGhhdmUgYSBzdGVwd2lzZSBwYXR0ZXJuLiB3aHkgZG8geW91IHRoaW5rIHRoaXMgbWlnaHQgYmUgdGhlIGNhc2U/ICANCioqVGhpcyBwbG90IHNlZW1zIHRvIGluZGljYXRlIHRoYXQgc29kaXVtIGZvciBmb29kcyBhdCB0aGUgcmVzdGF1cmFudHMgYXJlIGxlZnQgc2tld2VkLioqDQoNCiMjIyBFeGVyY2lzZSA5DQpBcyB5b3UgY2FuIHNlZSwgbm9ybWFsIHByb2JhYmlsaXR5IHBsb3RzIGNhbiBiZSB1c2VkIGJvdGggdG8gYXNzZXNzIG5vcm1hbGl0eSBhbmQgdmlzdWFsaXplIHNrZXduZXNzLiBNYWtlIGEgbm9ybWFsIHByb2JhYmlsaXR5IHBsb3QgZm9yIHRoZSB0b3RhbCBjYXJib2h5ZHJhdGVzIGZyb20gYSByZXN0YXVyYW50IG9mIHlvdXIgY2hvaWNlLiBCYXNlZCBvbiB0aGlzIG5vcm1hbCBwcm9iYWJpbGl0eSBwbG90LCBpcyB0aGlzIHZhcmlhYmxlIGxlZnQgc2tld2VkLCBzeW1tZXRyaWMsIG9yIHJpZ2h0IHNrZXdlZD8gVXNlIGEgaGlzdG9ncmFtIHRvIGNvbmZpcm0geW91ciBmaW5kaW5ncy4gIA0KYGBge3J9DQpnZ3Bsb3QoZGF0YSA9IFNvbmljLCBhZXMoc2FtcGxlID0gdG90YWxfY2FyYikpICsgDQogIGdlb21fbGluZShzdGF0ID0gInFxIikrIA0KICBnZ3RpdGxlKCJTb25pYyIpDQoNCmBgYA0KDQoqKlRoaXMgcGxvdCBzZWVtcyB0byBpbmRpY2F0ZSB0aGF0IHRoZSBjYXJib2h5ZHJhdGUgZm9yIGZvb2RzIGF0IFNvbmljIGFyZSBsZWZ0IHNrZXdlZC4qKg0K