Overview
I found that county-level crime rates (violent, property, and total)
have little statistical impact on educational outcomes in West Virginia.
There are a few reasons for this including generally low crime rates,
positive correlation between funding and crime rates, and positive
correlation between funding and educational outcomes.
The educational outcome I thought would be most impacted by crime
rates was 11th grade math. I tested multiple grade levels and subjects
before choosing this measure.
Correlations

Firstly, observing the correlations between these variables reveals
interesting relationships with crime rates. For Example)
Crime rates are positively correlated with population, which has a
strong pull on the model by influencing revenues and enrollment.
Surprisingly, but likely tied to their correlation with population,
crime rates have a positive correlation with 11th grade math
proficiency. This trend held true across grade levels and subjects.
Linear Regression Model
This model utilizes unemployment and total crime rate to predict
11th grade math scores. I intentionally excluded revenue from the model,
as local revenue is by far the best predictor in the dataset which could
overpower the other factors.
Call:
lm(formula = math_proficiency ~ total_crime_rate + unemployed,
data = t_train)
Residuals:
Min 1Q Median 3Q Max
-10.7893 -4.8249 -0.8843 3.3967 22.9208
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 24.4371 4.0317 6.061 6.41e-07 ***
total_crime_rate 0.2271 0.1504 1.511 0.1399
unemployed -0.9998 0.3919 -2.551 0.0153 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 7.138 on 35 degrees of freedom
Multiple R-squared: 0.2438, Adjusted R-squared: 0.2006
F-statistic: 5.642 on 2 and 35 DF, p-value: 0.007519
Min. 1st Qu. Median Mean 3rd Qu. Max.
-13.20134 -2.80471 -0.58314 0.08583 6.82420 10.03340
Warning: Ignoring unknown parameters: `method`

Discussion and Explanation
West Virginia is one of the lowest crime-rate states in the country,
ranking in the bottom 10 in terms of crime rates. The state is also
mostly rural with small populations and low funding.
Higher population areas in WV have (while still low) higher crime
rates, but they also have higher populations, more funding, and
generally better educational outcomes. Therefore, the state’s rural
demographics and relatively low crime rates create this positive
correlation because crime rates serve as a proxy for population and
funding.
It is important to note in this example that correlation IS NOT
causation. All else equal, one would normally expect higher crime rates
to create worse educational outcomes.
Reccomendation
My understanding from analyzing this model is that many districts in
WV are so underfunded that higher populations and subsequent increases
in crime rates are actually beneficial for educational outcomes due to
the higher funding that comes with higher populations. This may be a
case where more state or federal funding needs to be allocated to
districts that cannot meet their needs with local revenues.
LS0tDQp0aXRsZTogIlRoZSBJbXBhY3Qgb2YgQ3JpbWUgUmF0ZXMgb24gV1YgRWR1Y2F0aW9uYWwgT3V0Y29tZXMiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQojIE92ZXJ2aWV3DQoNCiMjIyBJIGZvdW5kIHRoYXQgY291bnR5LWxldmVsIGNyaW1lIHJhdGVzICh2aW9sZW50LCBwcm9wZXJ0eSwgYW5kIHRvdGFsKSBoYXZlIGxpdHRsZSBzdGF0aXN0aWNhbCBpbXBhY3Qgb24gZWR1Y2F0aW9uYWwgb3V0Y29tZXMgaW4gV2VzdCBWaXJnaW5pYS4gVGhlcmUgYXJlIGEgZmV3IHJlYXNvbnMgZm9yIHRoaXMgaW5jbHVkaW5nIGdlbmVyYWxseSBsb3cgY3JpbWUgcmF0ZXMsIHBvc2l0aXZlIGNvcnJlbGF0aW9uIGJldHdlZW4gZnVuZGluZyBhbmQgY3JpbWUgcmF0ZXMsIGFuZCBwb3NpdGl2ZSBjb3JyZWxhdGlvbiBiZXR3ZWVuIGZ1bmRpbmcgYW5kIGVkdWNhdGlvbmFsIG91dGNvbWVzLg0KDQojIyMgVGhlIGVkdWNhdGlvbmFsIG91dGNvbWUgSSB0aG91Z2h0IHdvdWxkIGJlIG1vc3QgaW1wYWN0ZWQgYnkgY3JpbWUgcmF0ZXMgd2FzIDExdGggZ3JhZGUgbWF0aC4gSSB0ZXN0ZWQgbXVsdGlwbGUgZ3JhZGUgbGV2ZWxzIGFuZCBzdWJqZWN0cyBiZWZvcmUgY2hvb3NpbmcgdGhpcyBtZWFzdXJlLg0KDQoNCg0KYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgaW5jbHVkZT1GQUxTRX0NCiMjIExvYWQgYXNzZXNzbWVudCBkYXRhDQoNCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeShjYXJldCkNCmxpYnJhcnkocnBhcnQpDQpsaWJyYXJ5KHJlYWR4bCkNCg0KYXNzZXNzbWVudF9wYXRoIDwtICcuL3d2IGVkIHN0dWRlbnQgYWNoaWV2ZW1lbnQvSGlzdG9yaWNhbF9Bc3Nlc3NtZW50UmVzdWx0c19TWTE1LXRvLVNZMjEueGxzeCcNCg0KDQp0X2Fzc2Vzc19yYXdfc2Nob29sIDwtIHJlYWRfZXhjZWwocGF0aCA9IGFzc2Vzc21lbnRfcGF0aCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoZWV0ID0gJ1NZMjEgU2Nob29sICYgRGlzdHJpY3QnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2UgPSAnYjI6ZjczMTInKQ0KDQoNCnRfYXNzZXNzX3Jhd19tYXRoIDwtIHJlYWRfZXhjZWwocGF0aCA9IGFzc2Vzc21lbnRfcGF0aCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoZWV0ID0gJ1NZMjEgU2Nob29sICYgRGlzdHJpY3QnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2UgPSAnYW8zOmFvNzMxMicsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX25hbWVzID0gYygnbWF0aF9wcm9maWNpZW5jeScpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgbmEgPSAnKionKQ0KDQp0X2Fzc2Vzc19yYXcgPC0gdF9hc3Nlc3NfcmF3X3NjaG9vbCAlPiUNCiAgYmluZF9jb2xzKHRfYXNzZXNzX3Jhd19tYXRoKSAlPiUgDQogIGphbml0b3I6OmNsZWFuX25hbWVzKCkgIA0KDQoNCiMgUmVtb3ZlIHN1Ymdyb3Vwcw0KdF9hc3Nlc3MgPC0gdF9hc3Nlc3NfcmF3ICU+JSANCiAgZmlsdGVyKHNjaG9vbCA9PSA5OTkpICU+JSANCiAgZmlsdGVyKHBvcHVsYXRpb25fZ3JvdXAgPT0gJ1RvdGFsIFBvcHVsYXRpb24nKSAlPiUgDQogIGZpbHRlcihjb3VudHkgIT0gJ1N0YXRld2lkZScpICU+JSANCiAgbXV0YXRlKHByb2ZpY2llbmN5ID0gbWF0aF9wcm9maWNpZW5jeSkgIA0KDQpwcmludCh0X2Fzc2VzcykNCmBgYA0KDQoNCg0KDQpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQ0KDQojIyBMb2FkIHNwZW5kaW5nIGRhdGENCg0Kc3BlbmRpbmdfcGF0aCA8LSAnLi91cyBjZW5zdXMgZWQgc3BlbmRpbmcvZWxzZWMyMnQueGxzJw0KDQp0X3NwZW5kaW5nX3JhdyA8LSByZWFkX2V4Y2VsKHBhdGggPSBzcGVuZGluZ19wYXRoLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hlZXQgPSAnZWxzZWMyMnQnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2UgPSAnYTE6Z2IxNDEwNicpICU+JSANCiAgamFuaXRvcjo6Y2xlYW5fbmFtZXMoKQ0KDQoNCmNvb3BlcmF0ZXMgPC0gYygnTU9VTlRBSU4gU1RBVEUgRURVQ0FUSU9OQUwgU0VSVklDRVMgQ09PUEVSQVRJVkUnLA0KICAgICAgICAgICAgICAgICdFQVNURVJOIFBBTkhBTkRMRSBJTlNUUlVDVElPTkFMIENPT1BFUkFUSVZFJywNCiAgICAgICAgICAgICAgICAnU09VVEhFUk4gRURVQ0FUSU9OQUwgU0VSVklDRVMgQ09PUEVSQVRJVkUnKQ0KDQp0X3NwZW5kaW5nIDwtIHRfc3BlbmRpbmdfcmF3ICU+JSANCiAgZmlsdGVyKHN0YXRlID09IDQ5KSAlPiUgDQogIGZpbHRlcighbmFtZSAlaW4lIGNvb3BlcmF0ZXMpICU+JSANCiAgc2VsZWN0KG5hbWUsIGVucm9sbCwgdGZlZHJldiwgdHN0cmV2LCB0bG9jcmV2LCB0b3RhbGV4cCwgcHBjc3RvdCkgJT4lIA0KICBtdXRhdGUoY291bnR5ID0gc3RyX3RvX3RpdGxlKHN0cl9zcGxpdF9pKG5hbWUsICcgJywxKSksDQogICAgICAgICBjb3VudHkgPSBpZmVsc2UoY291bnR5ID09ICdNYycsICdNY0Rvd2VsbCcsIGNvdW50eSkpDQoNCg0KcHJpbnQodF9zcGVuZGluZykNCmBgYA0KDQoNCg0KYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgaW5jbHVkZT1GQUxTRX0NCiMjIExvYWQgZGVtb2dyYXBoaWMgZGF0YQ0KICANCg0KdF9kZW1vZ3JhcGhpY3NfdW5lbXBsb3llZCA8LSByZWFkX2NzdignLi9kZW1vZ3JhcGhpY3MvdW5lbXBsb3llZC5jc3YnLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwID0gNCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYSA9ICdOL0EnKSAlPiUNCiAgamFuaXRvcjo6Y2xlYW5fbmFtZXMoKSAlPiUgDQogIGZpbHRlcihjb3VudHkgIT0gJ1dlc3QgVmlyZ2luaWEnLA0KICAgICAgICAgY291bnR5ICE9ICdVbml0ZWQgU3RhdGVzJywNCiAgICAgICAgICFpcy5uYSh2YWx1ZV9wZXJjZW50KSApICU+JSANCiAgc2VsZWN0KGNvdW50eSwgdmFsdWVfcGVyY2VudCkgJT4lDQogIHJlbmFtZSh1bmVtcGxveWVkID0gdmFsdWVfcGVyY2VudCkNCg0KDQp0X2RlbW9ncmFwaGljcyA8LSAgdF9kZW1vZ3JhcGhpY3NfdW5lbXBsb3llZA0KDQpwcmludCh0X2RlbW9ncmFwaGljcykNCmBgYA0KDQoNCg0KYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgaW5jbHVkZT1GQUxTRX0NCg0KIyMgSm9pbmVkIGRhdGENCg0KIyBNZXJnZSBkYXRhDQp0IDwtIHRfYXNzZXNzICU+JSANCiAgbGVmdF9qb2luKHRfc3BlbmRpbmcsIGJ5ID0gImNvdW50eSIpICU+JSANCiAgc2VsZWN0KC1zY2hvb2wsIC1zdWJncm91cCwgLXBvcHVsYXRpb25fZ3JvdXAsIC1zY2hvb2xfbmFtZSwgLW5hbWUsIC1wcm9maWNpZW5jeSkgJT4lIA0KICBtdXRhdGUodGVtcF9jb3VudHkgPSBwYXN0ZShjb3VudHksICJDb3VudHkiLCBzZXAgPSAiICIpKSAlPiUgDQogIGxlZnRfam9pbih0X2RlbW9ncmFwaGljcywgYnkgPSBjKCJ0ZW1wX2NvdW50eSIgPSAiY291bnR5IikpICU+JSANCiAgc2VsZWN0KC10ZW1wX2NvdW50eSkgJT4lIA0KICBtdXRhdGUocmV2X3Blcl9zdHVkZW50ID0gKHRmZWRyZXYgKyB0c3RyZXYgKyB0bG9jcmV2KSAvIGVucm9sbCAqIDEwMDApICU+JSANCiAgbXV0YXRlKHN1cnBsdXNfcGVyX3N0dWRlbnQgPSByZXZfcGVyX3N0dWRlbnQgLSBwcGNzdG90KQ0KDQp0X2NyaW1lIDwtIHJlYWQuY3N2KCd3dl9jcmltZS5jc3YnKSAlPiUgDQogIHJlbmFtZShjb3VudHkgPSAnQ291bnR5JykNCg0KdCA8LSB0ICU+JSANCiAgbGVmdF9qb2luKHRfY3JpbWUsIGJ5ID0gJ2NvdW50eScpICU+JSANCiAgcmVuYW1lKHBvcF8yMDE5ID0gJ1gyMDE5LlBvcHVsYXRpb24nLA0KICAgICAgICAgdmlvbGVudF9jcmltZV9yYXRlID0gJ1Zpb2xlbnQuQ3JpbWUuUmF0ZScsDQogICAgICAgICBwcm9wZXJ0eV9jcmltZV9yYXRlID0gJ1Byb3BlcnR5LkNyaW1lLlJhdGUnLA0KICAgICAgICAgdG90YWxfY3JpbWVfcmF0ZSA9ICdUb3RhbC5DcmltZS5SYXRlJykgJT4lIA0KICBtdXRhdGUocGVyY2VudF9zdHVkZW50ID0gZW5yb2xsIC8gcG9wXzIwMTkgKiAxMDApDQpgYGANCg0KDQojIyBDb3JyZWxhdGlvbnMNCg0KYGBge3IgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCmxpYnJhcnkoZ2djb3JycGxvdCkNCg0KdF9udW1lcmljIDwtIHQgJT4lIA0KICBtdXRhdGUocG9wXzIwMTkgPSBhcy5udW1lcmljKHBvcF8yMDE5KSkgJT4lIA0KICBzZWxlY3Qod2hlcmUoaXMubnVtZXJpYykpDQoNCmdnY29ycnBsb3QoY29yKHRfbnVtZXJpYyksIA0KICAgICAgICAgICBjb2xvcnMgPSBjKCJkYXJrcmVkIiwgIndoaXRlIiwgInB1cnBsZTQiKSkNCmBgYA0KDQoNCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0UsIGluY2x1ZGU9RkFMU0V9DQpjb3IodF9udW1lcmljKQ0KY29yLnRlc3QodF9udW1lcmljJHJldl9wZXJfc3R1ZGVudCwgdF9udW1lcmljJG1hdGhfcHJvZmljaWVuY3kpDQpjb3IudGVzdCh0X251bWVyaWMkcHBjc3RvdCwgdF9udW1lcmljJG1hdGhfcHJvZmljaWVuY3kpDQpjb3IudGVzdCh0X251bWVyaWMkdG90YWxfY3JpbWVfcmF0ZSwgdF9udW1lcmljJG1hdGhfcHJvZmljaWVuY3kpDQpgYGANCg0KIyMjIEZpcnN0bHksIG9ic2VydmluZyB0aGUgY29ycmVsYXRpb25zIGJldHdlZW4gdGhlc2UgdmFyaWFibGVzIHJldmVhbHMgaW50ZXJlc3RpbmcgcmVsYXRpb25zaGlwcyB3aXRoIGNyaW1lIHJhdGVzLiBGb3IgRXhhbXBsZSkNCg0KIyMjIENyaW1lIHJhdGVzIGFyZSBwb3NpdGl2ZWx5IGNvcnJlbGF0ZWQgd2l0aCBwb3B1bGF0aW9uLCB3aGljaCBoYXMgYSBzdHJvbmcgcHVsbCBvbiB0aGUgbW9kZWwgYnkgaW5mbHVlbmNpbmcgcmV2ZW51ZXMgYW5kIGVucm9sbG1lbnQuDQoNCiMjIyBTdXJwcmlzaW5nbHksIGJ1dCBsaWtlbHkgdGllZCB0byB0aGVpciBjb3JyZWxhdGlvbiB3aXRoIHBvcHVsYXRpb24sIGNyaW1lIHJhdGVzIGhhdmUgYSBwb3NpdGl2ZSBjb3JyZWxhdGlvbiB3aXRoIDExdGggZ3JhZGUgbWF0aCBwcm9maWNpZW5jeS4gVGhpcyB0cmVuZCBoZWxkIHRydWUgYWNyb3NzIGdyYWRlIGxldmVscyBhbmQgc3ViamVjdHMuDQoNCg0KDQojIyBMaW5lYXIgUmVncmVzc2lvbiBNb2RlbA0KDQojIyMgVGhpcyBtb2RlbCB1dGlsaXplcyB1bmVtcGxveW1lbnQgYW5kIHRvdGFsIGNyaW1lIHJhdGUgdG8gcHJlZGljdCAxMXRoIGdyYWRlIG1hdGggc2NvcmVzLiBJIGludGVudGlvbmFsbHkgZXhjbHVkZWQgcmV2ZW51ZSBmcm9tIHRoZSBtb2RlbCwgYXMgbG9jYWwgcmV2ZW51ZSBpcyBieSBmYXIgdGhlIGJlc3QgcHJlZGljdG9yIGluIHRoZSBkYXRhc2V0IHdoaWNoIGNvdWxkIG92ZXJwb3dlciB0aGUgb3RoZXIgZmFjdG9ycy4NCg0KYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgaW5jbHVkZT1GQUxTRX0NCnNldC5zZWVkKDEpDQoNCnNhbXBsZSA8LSBzYW1wbGUobnJvdyh0X251bWVyaWMpLCBzaXplID0gMC43ICogbnJvdyh0X251bWVyaWMpKQ0KDQp0X3RyYWluIDwtIHRfbnVtZXJpYyAlPiUgc2xpY2Uoc2FtcGxlKQ0KdF90ZXN0IDwtIHRfbnVtZXJpYyAlPiUgc2xpY2UoLXNhbXBsZSkNCmBgYA0KDQoNCmBgYHtyIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQptMSA8LSBsbShmb3JtdWxhID0gbWF0aF9wcm9maWNpZW5jeSB+IHRvdGFsX2NyaW1lX3JhdGUgKyB1bmVtcGxveWVkLCBkYXRhID0gdF90cmFpbikNCnN1bW1hcnkobTEpDQpgYGANCg0KDQpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KdF90ZXN0IDwtIHRfdGVzdCAlPiUgDQogIG11dGF0ZShwcmVkaWN0ZWQgPSBwcmVkaWN0KG0xLCBuZXdkYXRhID0gdF90ZXN0KSkgJT4lIA0KICBtdXRhdGUocmVzaWR1YWxzID0gcHJlZGljdGVkIC0gbWF0aF9wcm9maWNpZW5jeSkNCg0Kc3VtbWFyeSh0X3Rlc3QkcmVzaWR1YWxzKQ0KDQpnZ3Bsb3QodF90ZXN0KSArDQogIGFlcyh4ID0gcHJlZGljdGVkLCB5ID0gbWF0aF9wcm9maWNpZW5jeSkgKw0KICBnZW9tX3BvaW50KGNvbG9yID0gIiMxMTI0NDYiKSArDQogIGdlb21fYWJsaW5lKG1ldGhvZCA9IGxtKSArDQogIGNvb3JkX2VxdWFsKCkgKw0KICB0aGVtZV9taW5pbWFsKCkNCg0KDQoNCg0KYGBgDQojIyBBZGRpdGlvbmFsIFBsb3RzDQoNCiMjIyBCZWxvdyBhcmUgc29tZSBhZGRpdGlvbmFsIHBsb3RzIHdoaWNoIGFyZSBoZWxwZnVsIGluIHVuZGVyc3RhbmRpbmcgd2h5IGNyaW1lIHJhdGVzIGFyZSBwb3NpdGl2ZWx5IGNvcnJlbGF0ZWQgd2l0aCBlZHVjYXRpb25hbCBvdXRjb21lcyBpbiBXZXN0IFZpcmdpbmlhLg0KDQoNCmBgYHtyIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQpnZ3Bsb3QodCkgKw0KICBhZXMoeCA9IHRvdGFsX2NyaW1lX3JhdGUsIHkgPSBtYXRoX3Byb2ZpY2llbmN5KSArDQogIGdlb21fcG9pbnQoY29sb3IgPSAiIzExMjQ0NiIpICsNCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gbG0pICsNCiAgdGhlbWVfbWluaW1hbCgpDQpgYGANCg0KDQpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KZ2dwbG90KHQpICsNCiAgYWVzKHggPSBwb3BfMjAxOSwgeSA9IHRvdGFsX2NyaW1lX3JhdGUpICsNCiAgZ2VvbV9wb2ludChjb2xvciA9ICIjMTEyNDQ2IikgKw0KICBnZW9tX3Ntb290aChtZXRob2QgPSBsbSkgKw0KICB0aGVtZV9taW5pbWFsKCkNCmBgYA0KDQoNCmBgYHtyIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQpnZ3Bsb3QodCkgKw0KICBhZXMoeCA9IGVucm9sbCwgeSA9IHRvdGFsX2NyaW1lX3JhdGUpICsNCiAgZ2VvbV9wb2ludChjb2xvdXIgPSAiIzExMjQ0NiIpICsNCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gbG0pICsNCiAgdGhlbWVfbWluaW1hbCgpDQpgYGANCg0KDQpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KZ2dwbG90KHQpICsNCiAgYWVzKHggPSBwZXJjZW50X3N0dWRlbnQsIHkgPSB0b3RhbF9jcmltZV9yYXRlKSArDQogIGdlb21fcG9pbnQoY29sb3VyID0gIiMxMTI0NDYiKSArDQogIGdlb21fc21vb3RoKG1ldGhvZCA9IGxtKSArDQogIHRoZW1lX21pbmltYWwoKQ0KYGBgDQoNCiMjIERpc2N1c3Npb24gYW5kIEV4cGxhbmF0aW9uDQoNCiMjIyBXZXN0IFZpcmdpbmlhIGlzIG9uZSBvZiB0aGUgbG93ZXN0IGNyaW1lLXJhdGUgc3RhdGVzIGluIHRoZSBjb3VudHJ5LCByYW5raW5nIGluIHRoZSBib3R0b20gMTAgaW4gdGVybXMgb2YgY3JpbWUgcmF0ZXMuIFRoZSBzdGF0ZSBpcyBhbHNvIG1vc3RseSBydXJhbCB3aXRoIHNtYWxsIHBvcHVsYXRpb25zIGFuZCBsb3cgZnVuZGluZy4gDQoNCiMjIyBIaWdoZXIgcG9wdWxhdGlvbiBhcmVhcyBpbiBXViBoYXZlICh3aGlsZSBzdGlsbCBsb3cpIGhpZ2hlciBjcmltZSByYXRlcywgYnV0IHRoZXkgYWxzbyBoYXZlIGhpZ2hlciBwb3B1bGF0aW9ucywgbW9yZSBmdW5kaW5nLCBhbmQgZ2VuZXJhbGx5IGJldHRlciBlZHVjYXRpb25hbCBvdXRjb21lcy4gVGhlcmVmb3JlLCB0aGUgc3RhdGUncyBydXJhbCBkZW1vZ3JhcGhpY3MgYW5kIHJlbGF0aXZlbHkgbG93IGNyaW1lIHJhdGVzIGNyZWF0ZSB0aGlzIHBvc2l0aXZlIGNvcnJlbGF0aW9uIGJlY2F1c2UgY3JpbWUgcmF0ZXMgc2VydmUgYXMgYSBwcm94eSBmb3IgcG9wdWxhdGlvbiBhbmQgZnVuZGluZy4gDQoNCiMjIyBJdCBpcyBpbXBvcnRhbnQgdG8gbm90ZSBpbiB0aGlzIGV4YW1wbGUgdGhhdCBjb3JyZWxhdGlvbiBJUyBOT1QgY2F1c2F0aW9uLiBBbGwgZWxzZSBlcXVhbCwgb25lIHdvdWxkIG5vcm1hbGx5IGV4cGVjdCBoaWdoZXIgY3JpbWUgcmF0ZXMgdG8gY3JlYXRlIHdvcnNlIGVkdWNhdGlvbmFsIG91dGNvbWVzLg0KDQojIyBSZWNjb21lbmRhdGlvbg0KDQojIyMgTXkgdW5kZXJzdGFuZGluZyBmcm9tIGFuYWx5emluZyB0aGlzIG1vZGVsIGlzIHRoYXQgbWFueSBkaXN0cmljdHMgaW4gV1YgYXJlIHNvIHVuZGVyZnVuZGVkIHRoYXQgaGlnaGVyIHBvcHVsYXRpb25zIGFuZCBzdWJzZXF1ZW50IGluY3JlYXNlcyBpbiBjcmltZSByYXRlcyBhcmUgYWN0dWFsbHkgYmVuZWZpY2lhbCBmb3IgZWR1Y2F0aW9uYWwgb3V0Y29tZXMgZHVlIHRvIHRoZSBoaWdoZXIgZnVuZGluZyB0aGF0IGNvbWVzIHdpdGggaGlnaGVyIHBvcHVsYXRpb25zLiBUaGlzIG1heSBiZSBhIGNhc2Ugd2hlcmUgbW9yZSBzdGF0ZSBvciBmZWRlcmFsIGZ1bmRpbmcgbmVlZHMgdG8gYmUgYWxsb2NhdGVkIHRvIGRpc3RyaWN0cyB0aGF0IGNhbm5vdCBtZWV0IHRoZWlyIG5lZWRzIHdpdGggbG9jYWwgcmV2ZW51ZXMuDQoNCiMjIFJlc291cmNlcw0KDQojIyMgIFdWIENyaW1lIFN0YXRzOiBodHRwczovL2Rhcy53di5nb3YvSkNTL09SU1AvU0FDL1B1YmxpY2F0aW9ucy9Eb2N1bWVudHMvQ3JpbWUlMjBpbiUyMFdWLUZpbmFsJTIwQ29weSUyMCUyODElMjklMjAlMjgyJTI5LnBkZg0KDQojIyMgQ3JpbWUgUmF0ZXMgYnkgU3RhdGU6IGh0dHBzOi8vd29ybGRwb3B1bGF0aW9ucmV2aWV3LmNvbS9zdGF0ZS1yYW5raW5ncy9jcmltZS1yYXRlLWJ5LXN0YXRlDQoNCiMjIyBMaW5rOiBodHRwczovL3JwdWJzLmNvbS9DbGF5Y2FuVENvZGUvMTI1MjM4NQ0K