Data Description
First few records in the data set
| 1 |
42826 |
42826 |
46.0 |
37 |
0.00 |
1915 |
5397 |
| 2 |
42827 |
42827 |
62.1 |
41 |
0.00 |
4207 |
13033 |
| 3 |
42828 |
42828 |
63.0 |
50 |
0.03 |
5178 |
16325 |
| 4 |
42829 |
42829 |
51.1 |
46 |
1.18 |
2279 |
6581 |
| 5 |
42830 |
42830 |
63.0 |
46 |
0.00 |
5711 |
17991 |
| 6 |
42831 |
42831 |
48.9 |
41 |
0.73 |
1739 |
4896 |
Research
Question
In this assignment we are looking at how many cyclists are entering
and leaving Queens, Manhattan, and Brooklyn via the East River Bridges
on a 24 hour basis. We are specifically looking at the Williamsburg
Bridge.
Poisson Regression on
Bike Count
We first build a Poisson frequency regression model.
The Poisson regression model for the Williamsburg Bridge counts
of bikes versus predictor variables.
| (Intercept) |
92.5585282 |
15.8473148 |
5.840644 |
0e+00 |
| Date |
-0.0019898 |
0.0003702 |
-5.375607 |
1e-07 |
| HighTemp |
0.0124176 |
0.0005280 |
23.516474 |
0e+00 |
| LowTemp |
0.0090757 |
0.0007776 |
11.671588 |
0e+00 |
| Precipitation |
-0.8475197 |
0.0153209 |
-55.317891 |
0e+00 |
The above inferential table about the regression coefficients
indicates all variables are significant. This means, if we look at
Williamsburg bridge bike count across all predictor variables, there is
statistical evidence to support the potential discrepancy across the
variables.
Poisson Regression on
Rates
The following model assesses the potential relationship between
Williamsburg bridge bike count rates of people entering and leaving the
bridge. This is the primary interest of the model.
Poisson regression on the rate of the the Williamsburg Bridge
bikers leaving and entering from this bridge.
| (Intercept) |
16.2190289 |
15.7531962 |
1.029571 |
0.3032116 |
| Date |
-0.0004033 |
0.0003679 |
-1.096057 |
0.2730539 |
| HighTemp |
-0.0016855 |
0.0005412 |
-3.114497 |
0.0018426 |
| LowTemp |
0.0010453 |
0.0007805 |
1.339286 |
0.1804777 |
| Precipitation |
0.0473201 |
0.0147457 |
3.209079 |
0.0013316 |
The above table indicates that the log of Williamsburg bridge rates
is not identical across date, temps, and precipitation. The log rates of
precipitation were higher than all the other predictor variables.
LowTemp has the lowest log rate. The regression coefficients represent
the change of log rate between the count of bikes passing on the bridge
each day.
FALSE
FALSE Call:
FALSE glm(formula = WilliamsburgBridge ~ Date + HighTemp + LowTemp +
FALSE Precipitation, family = quasipoisson, data = bikes, offset = log(Total))
FALSE
FALSE Coefficients:
FALSE Estimate Std. Error t value Pr(>|t|)
FALSE (Intercept) 16.2190289 31.5869867 0.513 0.612
FALSE Date -0.0004033 0.0007377 -0.547 0.589
FALSE HighTemp -0.0016855 0.0010851 -1.553 0.133
FALSE LowTemp 0.0010453 0.0015650 0.668 0.510
FALSE Precipitation 0.0473201 0.0295668 1.600 0.122
FALSE
FALSE (Dispersion parameter for quasipoisson family taken to be 4.02049)
FALSE
FALSE Null deviance: 151.051 on 29 degrees of freedom
FALSE Residual deviance: 99.642 on 25 degrees of freedom
FALSE AIC: NA
FALSE
FALSE Number of Fisher Scoring iterations: 3
Discussions and
Conclusions
The regression model based on the bike count is appropriate since the
information on the total count is an important variable. Including the
temperature of the days will decrease the significance of the other
variables so we will not put the temperature variables in the final
model. See the following output of the fitted Poisson regression model
of count adjusted by total count.
The Poisson regression model for the counts of bikers onnthe
Williamsburg Bridge cases versus the date, precipitation, and total
biker count.
| (Intercept) |
21.9017937 |
15.8197149 |
1.3844620 |
0.1662170 |
| Date |
-0.0005253 |
0.0003692 |
-1.4225474 |
0.1548674 |
| HighTemp |
-0.0009698 |
0.0005706 |
-1.6995988 |
0.0892064 |
| LowTemp |
0.0014775 |
0.0007879 |
1.8753115 |
0.0607499 |
| Precipitation |
-0.0014458 |
0.0193091 |
-0.0748743 |
0.9403148 |
| log(Total) |
0.9459994 |
0.0137645 |
68.7272667 |
0.0000000 |
We can see from the above output the adding total count to the model
changes the p-values associated with all predictor variables. There is a
strong correlation between the total bike count and the Williamsburg
bridge count. On the other hand, adding the total has increased some of
the other variables p-values like precipitation.
Looking at the final model, it would be best to take precipitation
out since it has a very high p-value and could be brining other
variables p-values up with it.
This is a small data set with limited information. All conclusions in
this report are only based on the given data set.
LS0tCnRpdGxlOiAiV2VlayA5IEhXIFNUQSAzMjEiCmF1dGhvcjogIlJ5YW4gTGVibyIKZGF0ZTogIjIwMjQtMTAtMjIiCm91dHB1dDogCiAgaHRtbF9kb2N1bWVudDoKICAgIHRvYzogeWVzCiAgICB0b2NfZGVwdGg6IDQKICAgIHRvY19mbG9hdDogeWVzCiAgICBmaWdfd2lkdGg6IDQKICAgIGZpZ19jYXB0aW9uOiB5ZXMKICAgIG51bWJlcl9zZWN0aW9uczogeWVzCiAgICB0b2NfY29sbGFwc2VkOiB5ZXMKICAgIGNvZGVfZm9sZGluZzogaGlkZQogICAgY29kZV9kb3dubG9hZDogeWVzCiAgICBzbW9vdGhfc2Nyb2xsOiB5ZXMKICAgIHRoZW1lOiBsdW1lbgogIHdvcmRfZG9jdW1lbnQ6CiAgICB0b2M6IHllcwogICAgdG9jX2RlcHRoOiA0CiAgICBmaWdfY2FwdGlvbjogeWVzCiAgICBrZWVwX21kOiB5ZXMKICBwZGZfZG9jdW1lbnQ6CiAgICB0b2M6IHllcwogICAgdG9jX2RlcHRoOiA0CiAgICBmaWdfY2FwdGlvbjogeWVzCiAgICBudW1iZXJfc2VjdGlvbnM6IHllcwogICAgZmlnX3dpZHRoOiAzCiAgICBmaWdfaGVpZ2h0OiAzCmVkaXRvcl9vcHRpb25zOgogIGNodW5rX291dHB1dF90eXBlOiBpbmxpbmUKc2x3YXlzX2FsbG93X2h0bWw6IHRydWUKLS0tCgpgYGB7PWh0bWx9Cgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoKLyogQ2FzY2FkaW5nIFN0eWxlIFNoZWV0cyAoQ1NTKSBpcyBhIHN0eWxlc2hlZXQgbGFuZ3VhZ2UgdXNlZCB0byBkZXNjcmliZSB0aGUgcHJlc2VudGF0aW9uIG9mIGEgZG9jdW1lbnQgd3JpdHRlbiBpbiBIVE1MIG9yIFhNTC4gaXQgaXMgYSBzaW1wbGUgbWVjaGFuaXNtIGZvciBhZGRpbmcgc3R5bGUgKGUuZy4sIGZvbnRzLCBjb2xvcnMsIHNwYWNpbmcpIHRvIFdlYiBkb2N1bWVudHMuICovCgpoMS50aXRsZSB7ICAvKiBUaXRsZSAtIGZvbnQgc3BlY2lmaWNhdGlvbnMgb2YgdGhlIHJlcG9ydCB0aXRsZSAqLwogIGZvbnQtc2l6ZTogMjRweDsKICBjb2xvcjogRGFya1JlZDsKICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgZm9udC1mYW1pbHk6ICJHaWxsIFNhbnMiLCBzYW5zLXNlcmlmOwp9Cmg0LmF1dGhvciB7IC8qIEhlYWRlciA0IC0gZm9udCBzcGVjaWZpY2F0aW9ucyBmb3IgYXV0aG9ycyAgKi8KICBmb250LXNpemU6IDIwcHg7CiAgZm9udC1mYW1pbHk6IHN5c3RlbS11aTsKICBjb2xvcjogRGFya1JlZDsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KaDQuZGF0ZSB7IC8qIEhlYWRlciA0IC0gZm9udCBzcGVjaWZpY2F0aW9ucyBmb3IgdGhlIGRhdGUgICovCiAgZm9udC1zaXplOiAxOHB4OwogIGZvbnQtZmFtaWx5OiBzeXN0ZW0tdWk7CiAgY29sb3I6IERhcmtCbHVlOwogIHRleHQtYWxpZ246IGNlbnRlcjsKfQpoMSB7IC8qIEhlYWRlciAxIC0gZm9udCBzcGVjaWZpY2F0aW9ucyBmb3IgbGV2ZWwgMSBzZWN0aW9uIHRpdGxlICAqLwogICAgZm9udC1zaXplOiAyMnB4OwogICAgZm9udC1mYW1pbHk6ICJUaW1lcyBOZXcgUm9tYW4iLCBUaW1lcywgc2VyaWY7CiAgICBjb2xvcjogbmF2eTsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKfQpoMiB7IC8qIEhlYWRlciAyIC0gZm9udCBzcGVjaWZpY2F0aW9ucyBmb3IgbGV2ZWwgMiBzZWN0aW9uIHRpdGxlICovCiAgICBmb250LXNpemU6IDIwcHg7CiAgICBmb250LWZhbWlseTogIlRpbWVzIE5ldyBSb21hbiIsIFRpbWVzLCBzZXJpZjsKICAgIGNvbG9yOiBuYXZ5OwogICAgdGV4dC1hbGlnbjogbGVmdDsKfQoKaDMgeyAvKiBIZWFkZXIgMyAtIGZvbnQgc3BlY2lmaWNhdGlvbnMgb2YgbGV2ZWwgMyBzZWN0aW9uIHRpdGxlICAqLwogICAgZm9udC1zaXplOiAxOHB4OwogICAgZm9udC1mYW1pbHk6ICJUaW1lcyBOZXcgUm9tYW4iLCBUaW1lcywgc2VyaWY7CiAgICBjb2xvcjogbmF2eTsKICAgIHRleHQtYWxpZ246IGxlZnQ7Cn0KCmg0IHsgLyogSGVhZGVyIDQgLSBmb250IHNwZWNpZmljYXRpb25zIG9mIGxldmVsIDQgc2VjdGlvbiB0aXRsZSAgKi8KICAgIGZvbnQtc2l6ZTogMThweDsKICAgIGZvbnQtZmFtaWx5OiAiVGltZXMgTmV3IFJvbWFuIiwgVGltZXMsIHNlcmlmOwogICAgY29sb3I6IGRhcmtyZWQ7CiAgICB0ZXh0LWFsaWduOiBsZWZ0Owp9Cgpib2R5IHsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgfQoKLmhpZ2hsaWdodG1lIHsgYmFja2dyb3VuZC1jb2xvcjp5ZWxsb3c7IH0KCnAgeyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB9Cgo8L3N0eWxlPgpgYGAKYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9CiMgRGV0ZWN0LCBpbnN0YWxsLCBhbmQgbG9hZCBwYWNrYWdlcyBpZiBuZWVkZWQuCmlmICghcmVxdWlyZSgia25pdHIiKSkgewogICBpbnN0YWxsLnBhY2thZ2VzKCJrbml0ciIpCiAgIGxpYnJhcnkoa25pdHIpCn0KaWYgKCFyZXF1aXJlKCJsZWFmbGV0IikpIHsKICAgaW5zdGFsbC5wYWNrYWdlcygibGVhZmxldCIpCiAgIGxpYnJhcnkobGVhZmxldCkKfQppZiAoIXJlcXVpcmUoIkVudlN0YXRzIikpIHsKICAgaW5zdGFsbC5wYWNrYWdlcygiRW52U3RhdHMiKQogICBsaWJyYXJ5KEVudlN0YXRzKQp9CmlmICghcmVxdWlyZSgiTUFTUyIpKSB7CiAgIGluc3RhbGwucGFja2FnZXMoIk1BU1MiKQogICBsaWJyYXJ5KE1BU1MpCn0KaWYgKCFyZXF1aXJlKCJwaHl0b29scyIpKSB7CiAgIGluc3RhbGwucGFja2FnZXMoInBoeXRvb2xzIikKICAgbGlicmFyeShwaHl0b29scykKfQppZiAoIXJlcXVpcmUoIm1sYmVuY2giKSkgewogICBpbnN0YWxsLnBhY2thZ2VzKCJtbGJlbmNoIikKICAgbGlicmFyeShtbGJlbmNoKQp9CmlmICghcmVxdWlyZSgicGFuZGVyIikpIHsKICAgaW5zdGFsbC5wYWNrYWdlcygicGFuZGVyIikKICAgbGlicmFyeShwYW5kZXIpCn0KCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gRkFMU0UsICAKICAgICAgICAgICAgICAgICAgIHdhcm5pbmcgPSBGQUxTRSwgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gRkFMU0UsICAKICAgICAgICAgICAgICAgICAgIHJlc3VsdHMgPSBUUlVFLCAgCiAgICAgICAgICAgICAgICAgICBjb21tZW50ID0gRkFMU0UgICAKICAgICAgICAgICAgICAgICAgICAgICkgICAKYGBgCgoKYGBge3J9CmJpa2VzIDwtIHJlYWQuY3N2KCJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vUnlhbkxlYm8vU1RBLTMyMS9yZWZzL2hlYWRzL21haW4vRGF0YSUyMGZpbGVXaWxsaWFtc2J1cmdCcmlkZ2UuY3N2IiwgaGVhZGVyID0gVFJVRSkKYGBgCgojIyBEYXRhIERlc2NyaXB0aW9uCgpgYGB7cn0KZGF0YShiaWtlcykKa2FibGUoaGVhZChiaWtlcyksIGNhcHRpb24gPSAiRmlyc3QgZmV3IHJlY29yZHMgaW4gdGhlIGRhdGEgc2V0IikgCgpgYGAKCgojIyBSZXNlYXJjaCBRdWVzdGlvbgpJbiB0aGlzIGFzc2lnbm1lbnQgd2UgYXJlIGxvb2tpbmcgYXQgaG93IG1hbnkgY3ljbGlzdHMgYXJlIGVudGVyaW5nIGFuZCBsZWF2aW5nIFF1ZWVucywgTWFuaGF0dGFuLCBhbmQgQnJvb2tseW4gdmlhIHRoZSBFYXN0IFJpdmVyIEJyaWRnZXMgb24gYSAyNCBob3VyIGJhc2lzLiBXZSBhcmUgc3BlY2lmaWNhbGx5IGxvb2tpbmcgYXQgdGhlIFdpbGxpYW1zYnVyZyBCcmlkZ2UuCgoKIyMgUG9pc3NvbiBSZWdyZXNzaW9uIG9uIEJpa2UgQ291bnQKCldlIGZpcnN0IGJ1aWxkIGEgUG9pc3NvbiBmcmVxdWVuY3kgcmVncmVzc2lvbiBtb2RlbC4KCmBgYHtyfQptb2RlbC5mcmVxIDwtIGdsbShXaWxsaWFtc2J1cmdCcmlkZ2UgfiBEYXRlKyBIaWdoVGVtcCsgTG93VGVtcCsgUHJlY2lwaXRhdGlvbiAsIGZhbWlseSA9IHBvaXNzb24obGluayA9ICJsb2ciKSwgZGF0YSA9IGJpa2VzKQoKcG9pcy5jb3VudC5jb2VmID0gc3VtbWFyeShtb2RlbC5mcmVxKSRjb2VmCmthYmxlKHBvaXMuY291bnQuY29lZiwgY2FwdGlvbiA9ICJUaGUgUG9pc3NvbiByZWdyZXNzaW9uIG1vZGVsIGZvciB0aGUgV2lsbGlhbXNidXJnIEJyaWRnZSBjb3VudHMgb2YgYmlrZXMgdmVyc3VzIHByZWRpY3RvciB2YXJpYWJsZXMuIikKCmBgYAoKVGhlIGFib3ZlIGluZmVyZW50aWFsIHRhYmxlIGFib3V0IHRoZSByZWdyZXNzaW9uIGNvZWZmaWNpZW50cyBpbmRpY2F0ZXMgYWxsIHZhcmlhYmxlcyBhcmUgc2lnbmlmaWNhbnQuIFRoaXMgbWVhbnMsIGlmIHdlIGxvb2sgYXQgV2lsbGlhbXNidXJnIGJyaWRnZSBiaWtlIGNvdW50IGFjcm9zcyBhbGwgcHJlZGljdG9yIHZhcmlhYmxlcywgdGhlcmUgaXMgc3RhdGlzdGljYWwgZXZpZGVuY2UgdG8gc3VwcG9ydCB0aGUgcG90ZW50aWFsIGRpc2NyZXBhbmN5IGFjcm9zcyB0aGUgdmFyaWFibGVzLiAKCgojIyBQb2lzc29uIFJlZ3Jlc3Npb24gb24gUmF0ZXMKClRoZSBmb2xsb3dpbmcgbW9kZWwgYXNzZXNzZXMgdGhlIHBvdGVudGlhbCByZWxhdGlvbnNoaXAgYmV0d2VlbiBXaWxsaWFtc2J1cmcgYnJpZGdlIGJpa2UgY291bnQgcmF0ZXMgb2YgcGVvcGxlIGVudGVyaW5nIGFuZCBsZWF2aW5nIHRoZSBicmlkZ2UuIFRoaXMgaXMgdGhlIHByaW1hcnkgaW50ZXJlc3Qgb2YgdGhlIG1vZGVsLgoKYGBge3J9Cm1vZGVsLnJhdGVzIDwtIGdsbShXaWxsaWFtc2J1cmdCcmlkZ2UgfiBEYXRlKyBIaWdoVGVtcCsgTG93VGVtcCsgUHJlY2lwaXRhdGlvbiwgb2Zmc2V0ID0gbG9nKFRvdGFsKSwgCiAgICAgICAgICAgICAgICAgICBmYW1pbHkgPSBwb2lzc29uKGxpbmsgPSAibG9nIiksIGRhdGEgPSBiaWtlcykKa2FibGUoc3VtbWFyeShtb2RlbC5yYXRlcykkY29lZiwgY2FwdGlvbiA9ICJQb2lzc29uIHJlZ3Jlc3Npb24gb24gdGhlIHJhdGUgb2YgdGhlIAogICAgICB0aGUgV2lsbGlhbXNidXJnIEJyaWRnZSBiaWtlcnMgbGVhdmluZyBhbmQgZW50ZXJpbmcgZnJvbSB0aGlzIGJyaWRnZS4iKQpgYGAKClRoZSBhYm92ZSB0YWJsZSBpbmRpY2F0ZXMgdGhhdCB0aGUgbG9nIG9mIFdpbGxpYW1zYnVyZyBicmlkZ2UgcmF0ZXMgaXMgbm90IGlkZW50aWNhbCBhY3Jvc3MgZGF0ZSwgdGVtcHMsIGFuZCBwcmVjaXBpdGF0aW9uLiBUaGUgbG9nIHJhdGVzIG9mIHByZWNpcGl0YXRpb24gd2VyZSBoaWdoZXIgdGhhbiBhbGwgdGhlIG90aGVyIHByZWRpY3RvciB2YXJpYWJsZXMuIExvd1RlbXAgaGFzIHRoZSBsb3dlc3QgbG9nIHJhdGUuIFRoZSByZWdyZXNzaW9uIGNvZWZmaWNpZW50cyByZXByZXNlbnQgdGhlIGNoYW5nZSBvZiBsb2cgcmF0ZSBiZXR3ZWVuIHRoZSBjb3VudCBvZiBiaWtlcyBwYXNzaW5nIG9uIHRoZSBicmlkZ2UgZWFjaCBkYXkuCgpgYGB7cn0KbW9kZWwucmF0ZXMgPC0gZ2xtKFdpbGxpYW1zYnVyZ0JyaWRnZSB+IERhdGUrIEhpZ2hUZW1wKyBMb3dUZW1wKyBQcmVjaXBpdGF0aW9uLCBvZmZzZXQgPSBsb2coVG90YWwpLCAKICAgICAgICAgICAgICAgICAgIGZhbWlseSA9IHF1YXNpcG9pc3NvbiwgZGF0YSA9IGJpa2VzKQpzdW1tYXJ5KG1vZGVsLnJhdGVzKQoKYGBgCgojIyBEaXNjdXNzaW9ucyBhbmQgQ29uY2x1c2lvbnMKClRoZSByZWdyZXNzaW9uIG1vZGVsIGJhc2VkIG9uIHRoZSBiaWtlIGNvdW50IGlzIGFwcHJvcHJpYXRlIHNpbmNlIHRoZSBpbmZvcm1hdGlvbiBvbiB0aGUgdG90YWwgY291bnQgaXMgYW4gaW1wb3J0YW50IHZhcmlhYmxlLiBJbmNsdWRpbmcgdGhlIHRlbXBlcmF0dXJlIG9mIHRoZSBkYXlzIHdpbGwgZGVjcmVhc2UgdGhlIHNpZ25pZmljYW5jZSBvZiB0aGUgb3RoZXIgdmFyaWFibGVzIHNvIHdlIHdpbGwgbm90IHB1dCB0aGUgdGVtcGVyYXR1cmUgdmFyaWFibGVzIGluIHRoZSBmaW5hbCBtb2RlbC4gU2VlIHRoZSBmb2xsb3dpbmcgb3V0cHV0IG9mIHRoZSBmaXR0ZWQgUG9pc3NvbiByZWdyZXNzaW9uIG1vZGVsIG9mIGNvdW50IGFkanVzdGVkIGJ5IHRvdGFsIGNvdW50LgoKYGBge3J9Cm1vZGVsLmZyZXEucG9wIDwtIGdsbShXaWxsaWFtc2J1cmdCcmlkZ2UgfiBEYXRlK0hpZ2hUZW1wKyBMb3dUZW1wKyBQcmVjaXBpdGF0aW9uKyBsb2coVG90YWwpLCBmYW1pbHkgPSBwb2lzc29uKGxpbmsgPSAibG9nIiksIGRhdGEgPSBiaWtlcykKIyMKcG9pcy5jb3VudC5jb2VmLnBvcCA9IHN1bW1hcnkobW9kZWwuZnJlcS5wb3ApJGNvZWYKa2FibGUocG9pcy5jb3VudC5jb2VmLnBvcCwgY2FwdGlvbiA9ICJUaGUgUG9pc3NvbiByZWdyZXNzaW9uIG1vZGVsIGZvciAKICAgICAgICAgdGhlIGNvdW50cyBvZiBiaWtlcnMgb25udGhlIFdpbGxpYW1zYnVyZyBCcmlkZ2UgY2FzZXMgdmVyc3VzIHRoZSBkYXRlLAogICAgICAgICBwcmVjaXBpdGF0aW9uLCBhbmQgdG90YWwgYmlrZXIgY291bnQuIikKYGBgCgpXZSBjYW4gc2VlIGZyb20gdGhlIGFib3ZlIG91dHB1dCB0aGUgYWRkaW5nIHRvdGFsIGNvdW50IHRvIHRoZSBtb2RlbCBjaGFuZ2VzIHRoZSBwLXZhbHVlcyBhc3NvY2lhdGVkIHdpdGggYWxsIHByZWRpY3RvciB2YXJpYWJsZXMuIFRoZXJlIGlzIGEgc3Ryb25nIGNvcnJlbGF0aW9uIGJldHdlZW4gdGhlIHRvdGFsIGJpa2UgY291bnQgYW5kIHRoZSBXaWxsaWFtc2J1cmcgYnJpZGdlIGNvdW50LiBPbiB0aGUgb3RoZXIgaGFuZCwgYWRkaW5nIHRoZSB0b3RhbCBoYXMgaW5jcmVhc2VkIHNvbWUgb2YgdGhlIG90aGVyIHZhcmlhYmxlcyBwLXZhbHVlcyBsaWtlIHByZWNpcGl0YXRpb24uIAoKTG9va2luZyBhdCB0aGUgZmluYWwgbW9kZWwsIGl0IHdvdWxkIGJlIGJlc3QgdG8gdGFrZSBwcmVjaXBpdGF0aW9uIG91dCBzaW5jZSBpdCBoYXMgYSB2ZXJ5IGhpZ2ggcC12YWx1ZSBhbmQgY291bGQgYmUgYnJpbmluZyBvdGhlciB2YXJpYWJsZXMgcC12YWx1ZXMgdXAgd2l0aCBpdC4KClRoaXMgaXMgYSBzbWFsbCBkYXRhIHNldCB3aXRoIGxpbWl0ZWQgaW5mb3JtYXRpb24uIEFsbCBjb25jbHVzaW9ucyBpbiB0aGlzIHJlcG9ydCBhcmUgb25seSBiYXNlZCBvbiB0aGUgZ2l2ZW4gZGF0YSBzZXQuCgo=