Plotting and linear models
To run your code, click run. It will let you know if your code is correct or not, and will offer hints on what to fix if needed. If you are stuck, you can see the solution by clicking Solution.
Exercise 1: Calculate a Linear model
eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6ImxpYnJhcnkoZHBseXIpICMgbG9hZHMgZHBseXIgZm9yIGRhdGEgbWFuaXB1bGF0aW9uXG5kZiA8LSBkYXRhLmZyYW1lKHRpYz1yZXAoXCJXTVRcIiwxOTQpLFxuICAgICAgICAgICAgICAgICBmeWVhcnE9YygxOTcwLDE5NzAsMTk3MCwxOTcwLDE5NzEsMTk3MSwxOTcxLDE5NzEsMTk3MiwxOTcyLDE5NzIsMTk3MiwxOTczLDE5NzMsMTk3MywxOTczLDE5NzQsMTk3NCwxOTc0LDE5NzQsMTk3NSwxOTc1LDE5NzUsMTk3NSwxOTc2LDE5NzYsMTk3NiwxOTc2LDE5NzcsMTk3NywxOTc3LDE5NzcsMTk3OCwxOTc4LDE5NzgsMTk3OCwxOTc5LDE5NzksMTk3OSwxOTc5LDE5ODAsMTk4MCwxOTgwLDE5ODAsMTk4MSwxOTgxLDE5ODEsMTk4MSwxOTgyLDE5ODIsMTk4MiwxOTgyLDE5ODMsMTk4MywxOTgzLDE5ODMsMTk4NCwxOTg0LDE5ODQsMTk4NCwxOTg1LDE5ODUsMTk4NSwxOTg1LDE5ODYsMTk4NiwxOTg2LDE5ODYsMTk4NywxOTg3LDE5ODcsMTk4NywxOTg4LDE5ODgsMTk4OCwxOTg4LDE5ODksMTk4OSwxOTg5LDE5ODksMTk5MCwxOTkwLDE5OTAsMTk5MCwxOTkxLDE5OTEsMTk5MSwxOTkxLDE5OTIsMTk5MiwxOTkyLDE5OTIsMTk5MywxOTkzLDE5OTMsMTk5MywxOTk0LDE5OTQsMTk5NCwxOTk0LDE5OTUsMTk5NSwxOTk1LDE5OTUsMTk5NiwxOTk2LDE5OTYsMTk5NiwxOTk3LDE5OTcsMTk5NywxOTk3LDE5OTgsMTk5OCwxOTk4LDE5OTgsMTk5OSwxOTk5LDE5OTksMTk5OSwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDEsMjAwMSwyMDAxLDIwMDEsMjAwMiwyMDAyLDIwMDIsMjAwMiwyMDAzLDIwMDMsMjAwMywyMDAzLDIwMDQsMjAwNCwyMDA0LDIwMDQsMjAwNSwyMDA1LDIwMDUsMjAwNSwyMDA2LDIwMDYsMjAwNiwyMDA2LDIwMDcsMjAwNywyMDA3LDIwMDcsMjAwOCwyMDA4LDIwMDgsMjAwOCwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMTAsMjAxMCwyMDEwLDIwMTAsMjAxMSwyMDExLDIwMTEsMjAxMSwyMDEyLDIwMTIsMjAxMiwyMDEyLDIwMTMsMjAxMywyMDEzLDIwMTMsMjAxNCwyMDE0LDIwMTQsMjAxNCwyMDE1LDIwMTUsMjAxNSwyMDE1LDIwMTYsMjAxNiwyMDE2LDIwMTYsMjAxNywyMDE3LDIwMTcsMjAxNywyMDE4LDIwMTgpLFxuICAgICAgICAgICAgICAgICBmcXRyPWMoMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyKSxcbiAgICAgICAgICAgICAgICAgcmV2dHE9Yyg3LjI2Nyw5LjkzOSwxMS40NywxNS42MSwxMi43NTgsMTguMjA3LDE5LjIwNSwyNy44NDQsMjEuMDExLDI5LjkxOCwzMi42ODMsNDEuMjc3LDMyLjczNywzNy42NTUsNDIuMDk4LDU1LjA3MSw0Ni4zNTUsNTYuMTc3LDU5LjQ2Miw3NC4yMTUsNjQuNjUsNzguODUyLDg2LjEwOCwxMTAuNzIxLDkzLjk3MSwxMTUuMTg2LDEyMS44NzUsMTQ3Ljc3NSwxMjIuNjU1LDE1Mi4zODEsMTcyLjYzNywyMzAuNzgzLDE2Ny4yNzQsMjA0LjA4NSwyMjEuOTgyLDMwNi45NTcsMjM4LjU2OSwyOTEuNjg1LDMwMC43NDcsNDE3LjE3NSwzMTQuNTc1LDM3Mi41OTgsNDAxLjg0Miw1NTQuMTg0LDQzNC4yNTEsNTMzLjY1Myw2MzQuNDc2LDg0Mi42MTcsNjY1LjIyOSw3ODguNzA1LDgyNy43NjcsMTA5NC41NTEsODU0LjczNCwxMDk4Ljk0MiwxMTY2LjU5NCwxNTQ2LjYzOSwxMjM0Ljc2OCwxNTA4LjUzMywxNTgzLjU3MywyMDczLjk4MywxNjU1LjY2MSwxOTM0LjM1OCwyMDg3LjUzMywyNzczLjkzNiwyMzQ0LjI1MywyNzcwLjI3NiwyOTQ5LjAwOCwzODQ1LjU1NywzMjExLjc2MSwzNzMyLjIzNyw0MDE1LjAxNyw1MDAwLjIzOCw0MjgyLjAxMiw0ODQ1LjEzMyw0OTkxLjExMyw2NTMwLjczNCw1MzczLjI1OCw2MDQ2LjQxLDYyODMuNDk2LDgxMDcuNDg0LDY3NjguMTkxLDc1NDMuNTA4LDc5MzAuOTQ5LDEwMzU4Ljg5OCw5MjgwLjU2NiwxMDMzOS44OTgsMTA2MjcuNSwxMzYzOC43OTcsMTE2NDkuMzk4LDEzMDI4LjM5OCwxMzY4My43OTcsMTcxMjIsMTM5MjAuMzk4LDE2MjM2LjUsMTY4MjYuODk4LDIwMzYwLjUsMTc2ODYuMDk4LDE5OTQyLjI5NywyMDQxNy42OTksMjQ0NDcuNzk3LDIwNDQwLDIyNzIzLDIyOTE0LDI3NTUwLDIyNzcyLDI1NTg3LDI1NjQ0LDMwODU2LDI1NDA5LDI4Mzg2LDI4Nzc3LDM1Mzg2LDI5ODE5LDMzNTIxLDMzNTA5LDQwNzg1LDM1MTI5LDM4OTEzLDQwODk5LDUxODY4LDQzNDQ3LDQ2NTg4LDQ2MTgxLDU3MDc5LDQ4NTY1LDUzMTg3LDUzMTg1LDY0NzM1LDUyMTI2LDU2NzgxLDU1NzY1LDY2OTA1LDU3MjI0LDYzMjMxLDYzMDM2LDc1MTkwLDY1NDM0LDcwNTE2LDY5MjgyLDgyOTAwLDcwNzU1LDc2Njk3LDc1Mzk3LDg5MjUyLDc5Njc1LDg1NDMwLDg0NDY3LDk5MDc4LDg2Mzc4LDkyODI3LDkxNzk0LDEwNzI4OSw5NDk0MCwxMDIzNDIsOTgzNDUsMTA4NzQ3LDk0MjE0LDEwMDg3Niw5OTM3MywxMTM2MjIsOTk4MTEsMTAzNzI2LDEwMTk1MiwxMTYzNjAsMTA0MTg5LDEwOTM2NiwxMTAyMjYsMTIzMTY5LDExMzAxMCwxMTQwNjUsMTEzODAwLDEyNzc3NiwxMTQwNzAsMTE2ODMwLDExNTY4OCwxMjk3MDYsMTE0OTYwLDEyMDEyNSwxMTkwMDEsMTMxNTY1LDExNDgyNiwxMjAyMjksMTE3NDA4LDEyOTY2NywxMTU5MDQsMTIwMzE5LDExODE3OSwxMzA5MzYsMTE3NTQyLDEyMjk2OCwxMjMxNzksMTM2MjY3LDEyMjY5MCwxMjgwMjgpKVxuZGYgPC0gZGYgJT4lIG11dGF0ZShyZXZ0cV9sYWc9bGFnKHJldnRxKSkiLCJzYW1wbGUiOiIjIFRoZSBkYXRhZnJhbWUgYmVsb3cgY29udGFpbnMgaGlzdG9yaWNhbCByZXZlbnVlIGZvciBXYWxtYXJ0IHNpbmNlIDE5NzBcbiMgVGhlIGZpbGUgdXNlcyBDb21wdXN0YXQncyBub21lbmNsYXR1cmU6XG4jICAgICAtIHJldmVudWUgaXMgcmV2dHFcbiMgICAgIC0gdGlja2VyIGlzIHRpY1xuIyAgICAgLSBmeWVhcnEgaXMgeWVhclxuIyAgICAgLSBmcXRyIGlzIHF1YXJ0ZXJcbiMgSXQgYWxzbyBjb250YWlucyB0aGUgbGFnIG9mIHJldmVudWUsIHJldnRxX2xhZ1xuZGZbMTo1LF1cblxuIyBTcGxpdCB0aGUgZGF0YSBpbnRvIHRyYWluaW5nIGFuZCB0ZXN0aW5nIGRhdGFcbnRyYWluaW5nIDwtIGZpbHRlcihkZiwgZnllYXJxIDwgMjAxNSlcbnRlc3RpbmcgPC0gZmlsdGVyKGRmLCBmeWVhcnEgPj0gMjAxNSlcblxuIyBDYWxjdWxhdGUgYSBsaW5lYXIgbW9kZWwgb2YgcmV2ZW51ZSBvbiBsYWcgcmV2ZW51ZSwgc3RvcmUgaXQgaW4gbW9kMVxuIyBVc2UgdGhlIHRyYWluaW5nIGRhdGEgb25seVxubW9kMSA8LSBsbSggfiAsIGRhdGE9KVxuXG4jIFByaW50IG91dCBhIHN1bW1hcnkgb2YgdGhlIG1vZGVsIHVzaW5nIHN1bW1hcnlcblxuXG4jRU5EIiwic29sdXRpb24iOiIjIFRoZSBkYXRhZnJhbWUgYmVsb3cgY29udGFpbnMgaGlzdG9yaWNhbCByZXZlbnVlIGZvciBXYWxtYXJ0IHNpbmNlIDE5NzBcbiMgVGhlIGZpbGUgdXNlcyBDb21wdXN0YXQncyBub21lbmNsYXR1cmU6XG4jICAgICAtIHJldmVudWUgaXMgcmV2dHFcbiMgICAgIC0gdGlja2VyIGlzIHRpY1xuIyAgICAgLSBmeWVhcnEgaXMgeWVhclxuIyAgICAgLSBmcXRyIGlzIHF1YXJ0ZXJcbiMgSXQgYWxzbyBjb250YWlucyB0aGUgbGFnIG9mIHJldmVudWUsIHJldnRxX2xhZ1xuZGZbMTo1LF1cblxuIyBTcGxpdCB0aGUgZGF0YSBpbnRvIHRyYWluaW5nIGFuZCB0ZXN0aW5nIGRhdGFcbnRyYWluaW5nIDwtIGZpbHRlcihkZiwgZnllYXJxIDwgMjAxNSlcbnRlc3RpbmcgPC0gZmlsdGVyKGRmLCBmeWVhcnEgPj0gMjAxNSlcblxuIyBDYWxjdWxhdGUgYSBsaW5lYXIgbW9kZWwgb2YgcmV2ZW51ZSBvbiBsYWcgcmV2ZW51ZSwgc3RvcmUgaXQgaW4gbW9kMVxuIyBVc2UgdGhlIHRyYWluaW5nIGRhdGEgb25seVxubW9kMSA8LSBsbShyZXZ0cSB+IHJldnRxX2xhZywgZGF0YT10cmFpbmluZylcblxuIyBQcmludCBvdXQgYSBzdW1tYXJ5IG9mIHRoZSBtb2RlbCB1c2luZyBzdW1tYXJ5XG5zdW1tYXJ5KG1vZDEpXG5cbiNFTkQiLCJzY3QiOiIjIFRlbXBsYXRlIGJhc2VkIG9uIGh0dHBzOi8vd3d3LnJkb2N1bWVudGF0aW9uLm9yZy9wYWNrYWdlcy90ZXN0d2hhdC92ZXJzaW9ucy80LjEuMVxuIyBDaGVjayBpZiBzb21ldGhpbmcgaXMgZXhwbGljaXRseSB0eXBlZFxuXG50ZXN0X3N0dWRlbnRfdHlwZWQoJ3JldnRxIH4gcmV2dHFfbGFnJyxub3RfdHlwZWRfbXNnPSdNYWtlIHN1cmUgdG8gcmVncmVzcyBgcmV2dHFgIG9uIGByZXZ0cV9sYWdgLicpXG50ZXN0X3N0dWRlbnRfdHlwZWQoJ2RhdGE9dHJhaW5pbmcnLG5vdF90eXBlZF9tc2c9J01ha2Ugc3VyZSB0byB1c2luZyB0aGUgYHRyYWluaW5nYCBkYXRhIGZvciB0aGUgdGVzdC4nKVxudGVzdF9leHByZXNzaW9uX291dHB1dChcIm1vZDFcIiwgaW5jb3JyZWN0X21zZz1cIllvdXIgcmVncmVzc2lvbiBtb2RlbCBpc24ndCBxdWl0ZSByaWdodC5cIilcbnRlc3Rfc3R1ZGVudF90eXBlZCgnc3VtbWFyeShtb2QxKScsbm90X3R5cGVkX21zZz0nWW91ciBtb2RlbCBpcyBjb3JyZWN0LCBidXQgZGlkIHlvdSByZW1lbWJlciB0byBzdW1tYXJpemUgaXQgd2l0aCBgc3VtbWFyeSgpYD8nKVxuXG4jIHRlc3Rfc3R1ZGVudF90eXBlZCgneCA8LSAyJywgbm90X3R5cGVkX21zZz0nJylcblxuIyBDaGVjayBpZiBmdW5jdGlvbiB3YXMgdXNlZCBpbiBpbnB1dCBjb2RlXG4jIHRlc3RfZnVuY3Rpb24oJ2MnLGluY29ycmVjdF9tc2c9JycpICBcblxuIyBSZXF1aXJlcyBhbiBvYmplY3QgYHhgIHRvIGhhdmUgdGhlIHNhbWUgdmFsdWUgYXMgdGhlIHNvbHV0aW9uXG4jIHRlc3Rfb2JqZWN0KFwieFwiLGluY29ycmVjdF9tc2cgPSBcIlwiLHVuZGVmaW5lZF9tc2cgPSBcIlwiKSAgXG5cbiMgUmVxdWlyZXMgYW4gb25qZWN0IHdpdGggdGhlIHNhbWUgdmFsdWUgb2YgYHhgIGluIHRoZSBzb2x1dGlvblxuIyB0ZXN0X2FuX29iamVjdChcInhcIix1bmRlZmluZWRfbXNnPVwiXCIpXG5cbiMgQ2hlY2tzIGlmIG91dHB1dCBvZiBzdHVkZW50J3MgY29kZSBjb250YWlucyBnaXZlbiBldmFsdWF0ZWQgZXhwcmVzc2lvblxuIyB0ZXN0X291dHB1dF9jb250YWlucyhcInhcIixpbmNvcnJlY3RfbXNnID0gXCJcIilcblxuIyBDaGVjayBpZiBhIHZlY3RvciBvZiBwcmVkZWZpbmVkIG9iamVjdHMgYXJlIHVuY2hhbmdlZFxuIyB0ZXN0X3ByZWRlZmluZWRfb2JqZWN0cyhjKCd4JywneScpLGluY29ycmVjdF9tc2c9XCJEb24ndCBvbnZlcndyaXRlIHRoZSBwcmVkZWZpbmVkIHZhcmlhYmxlc1wiKVxuXG4jIENoZWNrcyBmb3IgYSByZWdleCBwYXR0ZXJuIGluIHRyaGUgb3V0cHV0XG4jIHRlc3Rfb3V0cHV0X3JlZ2V4KHBhdHRlcm4sZml4ZWQ9RiwgdGltZXM9MSwgaW5jb3JyZWN0X21zZz0nJylcblxuIyBDYW4gY2hlY2sgYW4gYXJiaXRyYXJ5IGV4cHJlc3Npb24gYWNyb3NzIGJvdGggc29sdXRpb24gYW5kIHN0dWRlbnQgY29kZVxuI3Rlc3RfZXhwcmVzc2lvbl9vdXRwdXQoXCJ0eXBlb2YoY29tcGFueV9uYW1lKVwiLCBpbmNvcnJlY3RfbXNnPVwiRGlkIHlvdSBzdG9yZSB0ZXh0dWFsIGRhdGEgaW4gYGNvbXBhbnlfbmFtZWA/XCIpXG5cbnRlc3RfZXJyb3IoKVxuc3VjY2Vzc19tc2coXCJBd2Vzb21lIVwiKVxuXG4jIE90aGVyIGZ1bmN0aW9ucyB0byBub3RlOlxuIyAgICAgLSB0ZXN0X29yKGEsYikgLS0gY2hlY2tzIGlmIGVpdGhlciB0ZXN0IGEgb3IgdGVzdCBiIHBhc3NcbiMgICAgIC0gdGVzdF9nZ3Bsb3QoKSAtLSBjYW4gY2hlY2sgaWYgcGxvdHMgYXJlIGNvcnJlY3RcbiMgICAgIC0gdGVzdF9mdW5jdGlvbigpIC0tIGNhbiBhbHNvIGNoZWNrIGluY2x1ZGVkIHBhcmFtZXRlcnNcbiMgICAgIC0gdGVzdF9sb29wKCkgLS0gY2hlY2tpbmcgZm9yIGFuZCB3aGlsZSBsb29wc1xuIyAgICAgLSB0ZXN0X2xpYnJhcnlfZnVuY3Rpb24oJ3BhY2thZ2UnLCBub3RfY2FsbGVkX21zZz0nJyxpbmNvcnJlY3RfbXNnPScnKVxuIyAgICAgLSB0ZXN0X2lmX2Vsc2UoKSAtLSBjaGVja2luZyBpZiBzdGF0ZW1lbnRzXG4jICAgICAtIHRlc3RfZXhwcmVzc2lvbl9lcnJvcigpIC0tIGNhbiBjaGVjayBpZiBmdW5jdGlvbnMgYXJlIHByb3Blcmx5IGRlZmluZWRcbiMgICAgIC0gdGVzdF9vcGVyYXRvcignb3BlcmF0b3InLCksIG5vdF9jYWxsZWRfbXNnPScnLGluY29ycmVjdF9tc2c9JycpXG4jICAgICAtIHRlc3RfZnVuY3Rpb25fZGVmaW5pdGlvbigpIC0tIHJpZ29yb3VzbHkgY2hlY2sgZGVmaW5lZCBmdW5jdGlvblxuIyAgICAgLSB0ZXN0X2RhdGFfZnJhbWUoKSAtLSBjaGVjayBpZiBkYXRhZnJhbWUgW2NvbHVtbnNdIGFyZSBlcXVpdmFsZW50XG4jICAgICAtIHRlc3RfZnVuY3Rpb25fcmVzdWx0LCB0ZXN0X2V4cHJlc3Npb25fcmVzdWx0In0=
Exercise 2: Using ggplot()
Note: it appears that Datacamp-light can’t test plot accuracy at the time of writing this. As such, please manually check the solution once you think you know the answer, or if you get stuck.
eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6ImxpYnJhcnkoZHBseXIpICMgbG9hZHMgZHBseXIgZm9yIGRhdGEgbWFuaXB1bGF0aW9uXG5kZiA8LSBkYXRhLmZyYW1lKHRpYz1yZXAoXCJXTVRcIiwxOTQpLFxuICAgICAgICAgICAgICAgICBmeWVhcnE9YygxOTcwLDE5NzAsMTk3MCwxOTcwLDE5NzEsMTk3MSwxOTcxLDE5NzEsMTk3MiwxOTcyLDE5NzIsMTk3MiwxOTczLDE5NzMsMTk3MywxOTczLDE5NzQsMTk3NCwxOTc0LDE5NzQsMTk3NSwxOTc1LDE5NzUsMTk3NSwxOTc2LDE5NzYsMTk3NiwxOTc2LDE5NzcsMTk3NywxOTc3LDE5NzcsMTk3OCwxOTc4LDE5NzgsMTk3OCwxOTc5LDE5NzksMTk3OSwxOTc5LDE5ODAsMTk4MCwxOTgwLDE5ODAsMTk4MSwxOTgxLDE5ODEsMTk4MSwxOTgyLDE5ODIsMTk4MiwxOTgyLDE5ODMsMTk4MywxOTgzLDE5ODMsMTk4NCwxOTg0LDE5ODQsMTk4NCwxOTg1LDE5ODUsMTk4NSwxOTg1LDE5ODYsMTk4NiwxOTg2LDE5ODYsMTk4NywxOTg3LDE5ODcsMTk4NywxOTg4LDE5ODgsMTk4OCwxOTg4LDE5ODksMTk4OSwxOTg5LDE5ODksMTk5MCwxOTkwLDE5OTAsMTk5MCwxOTkxLDE5OTEsMTk5MSwxOTkxLDE5OTIsMTk5MiwxOTkyLDE5OTIsMTk5MywxOTkzLDE5OTMsMTk5MywxOTk0LDE5OTQsMTk5NCwxOTk0LDE5OTUsMTk5NSwxOTk1LDE5OTUsMTk5NiwxOTk2LDE5OTYsMTk5NiwxOTk3LDE5OTcsMTk5NywxOTk3LDE5OTgsMTk5OCwxOTk4LDE5OTgsMTk5OSwxOTk5LDE5OTksMTk5OSwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDEsMjAwMSwyMDAxLDIwMDEsMjAwMiwyMDAyLDIwMDIsMjAwMiwyMDAzLDIwMDMsMjAwMywyMDAzLDIwMDQsMjAwNCwyMDA0LDIwMDQsMjAwNSwyMDA1LDIwMDUsMjAwNSwyMDA2LDIwMDYsMjAwNiwyMDA2LDIwMDcsMjAwNywyMDA3LDIwMDcsMjAwOCwyMDA4LDIwMDgsMjAwOCwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMTAsMjAxMCwyMDEwLDIwMTAsMjAxMSwyMDExLDIwMTEsMjAxMSwyMDEyLDIwMTIsMjAxMiwyMDEyLDIwMTMsMjAxMywyMDEzLDIwMTMsMjAxNCwyMDE0LDIwMTQsMjAxNCwyMDE1LDIwMTUsMjAxNSwyMDE1LDIwMTYsMjAxNiwyMDE2LDIwMTYsMjAxNywyMDE3LDIwMTcsMjAxNywyMDE4LDIwMTgpLFxuICAgICAgICAgICAgICAgICBmcXRyPWMoMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyKSxcbiAgICAgICAgICAgICAgICAgcmV2dHE9Yyg3LjI2Nyw5LjkzOSwxMS40NywxNS42MSwxMi43NTgsMTguMjA3LDE5LjIwNSwyNy44NDQsMjEuMDExLDI5LjkxOCwzMi42ODMsNDEuMjc3LDMyLjczNywzNy42NTUsNDIuMDk4LDU1LjA3MSw0Ni4zNTUsNTYuMTc3LDU5LjQ2Miw3NC4yMTUsNjQuNjUsNzguODUyLDg2LjEwOCwxMTAuNzIxLDkzLjk3MSwxMTUuMTg2LDEyMS44NzUsMTQ3Ljc3NSwxMjIuNjU1LDE1Mi4zODEsMTcyLjYzNywyMzAuNzgzLDE2Ny4yNzQsMjA0LjA4NSwyMjEuOTgyLDMwNi45NTcsMjM4LjU2OSwyOTEuNjg1LDMwMC43NDcsNDE3LjE3NSwzMTQuNTc1LDM3Mi41OTgsNDAxLjg0Miw1NTQuMTg0LDQzNC4yNTEsNTMzLjY1Myw2MzQuNDc2LDg0Mi42MTcsNjY1LjIyOSw3ODguNzA1LDgyNy43NjcsMTA5NC41NTEsODU0LjczNCwxMDk4Ljk0MiwxMTY2LjU5NCwxNTQ2LjYzOSwxMjM0Ljc2OCwxNTA4LjUzMywxNTgzLjU3MywyMDczLjk4MywxNjU1LjY2MSwxOTM0LjM1OCwyMDg3LjUzMywyNzczLjkzNiwyMzQ0LjI1MywyNzcwLjI3NiwyOTQ5LjAwOCwzODQ1LjU1NywzMjExLjc2MSwzNzMyLjIzNyw0MDE1LjAxNyw1MDAwLjIzOCw0MjgyLjAxMiw0ODQ1LjEzMyw0OTkxLjExMyw2NTMwLjczNCw1MzczLjI1OCw2MDQ2LjQxLDYyODMuNDk2LDgxMDcuNDg0LDY3NjguMTkxLDc1NDMuNTA4LDc5MzAuOTQ5LDEwMzU4Ljg5OCw5MjgwLjU2NiwxMDMzOS44OTgsMTA2MjcuNSwxMzYzOC43OTcsMTE2NDkuMzk4LDEzMDI4LjM5OCwxMzY4My43OTcsMTcxMjIsMTM5MjAuMzk4LDE2MjM2LjUsMTY4MjYuODk4LDIwMzYwLjUsMTc2ODYuMDk4LDE5OTQyLjI5NywyMDQxNy42OTksMjQ0NDcuNzk3LDIwNDQwLDIyNzIzLDIyOTE0LDI3NTUwLDIyNzcyLDI1NTg3LDI1NjQ0LDMwODU2LDI1NDA5LDI4Mzg2LDI4Nzc3LDM1Mzg2LDI5ODE5LDMzNTIxLDMzNTA5LDQwNzg1LDM1MTI5LDM4OTEzLDQwODk5LDUxODY4LDQzNDQ3LDQ2NTg4LDQ2MTgxLDU3MDc5LDQ4NTY1LDUzMTg3LDUzMTg1LDY0NzM1LDUyMTI2LDU2NzgxLDU1NzY1LDY2OTA1LDU3MjI0LDYzMjMxLDYzMDM2LDc1MTkwLDY1NDM0LDcwNTE2LDY5MjgyLDgyOTAwLDcwNzU1LDc2Njk3LDc1Mzk3LDg5MjUyLDc5Njc1LDg1NDMwLDg0NDY3LDk5MDc4LDg2Mzc4LDkyODI3LDkxNzk0LDEwNzI4OSw5NDk0MCwxMDIzNDIsOTgzNDUsMTA4NzQ3LDk0MjE0LDEwMDg3Niw5OTM3MywxMTM2MjIsOTk4MTEsMTAzNzI2LDEwMTk1MiwxMTYzNjAsMTA0MTg5LDEwOTM2NiwxMTAyMjYsMTIzMTY5LDExMzAxMCwxMTQwNjUsMTEzODAwLDEyNzc3NiwxMTQwNzAsMTE2ODMwLDExNTY4OCwxMjk3MDYsMTE0OTYwLDEyMDEyNSwxMTkwMDEsMTMxNTY1LDExNDgyNiwxMjAyMjksMTE3NDA4LDEyOTY2NywxMTU5MDQsMTIwMzE5LDExODE3OSwxMzA5MzYsMTE3NTQyLDEyMjk2OCwxMjMxNzksMTM2MjY3LDEyMjY5MCwxMjgwMjgpKVxuZGYgPC0gZGYgJT4lIG11dGF0ZShyZXZ0cV9sYWc9bGFnKHJldnRxKSlcblxudHJhaW5pbmcgPC0gZmlsdGVyKGRmLCBmeWVhcnEgPCAyMDE1KVxudGVzdGluZyA8LSBmaWx0ZXIoZGYsIGZ5ZWFycSA+PSAyMDE1KVxuXG5tb2QxIDwtIGxtKHJldnRxIH4gcmV2dHFfbGFnLCBkYXRhPXRyYWluaW5nKSIsInNhbXBsZSI6IiMgVGhlIGRhdGFmcmFtZSBiZWxvdyBjb250YWlucyBoaXN0b3JpY2FsIHJldmVudWUgZm9yIFdhbG1hcnQgc2luY2UgMTk3MFxuIyBUaGUgZmlsZSB1c2VzIENvbXB1c3RhdCdzIG5vbWVuY2xhdHVyZTpcbiMgICAgIC0gcmV2ZW51ZSBpcyByZXZ0cVxuIyAgICAgLSB0aWNrZXIgaXMgdGljXG4jICAgICAtIGZ5ZWFycSBpcyB5ZWFyXG4jICAgICAtIGZxdHIgaXMgcXVhcnRlclxuIyBJdCBhbHNvIGNvbnRhaW5zIHRoZSBsYWcgb2YgcmV2ZW51ZSwgcmV2dHFfbGFnXG4jIHRyYWluaW5nIGFuZCBtb2QxIGZyb20gRXhlcmNpc2UgMSBhcmUgYWxzbyBsb2FkZWRcbnRyYWluaW5nWzE6NSxdXG5cbiMgTG9hZCBnZ3Bsb3QyIGZvciBwbG90dGluZ1xubGlicmFyeShnZ3Bsb3QyKVxuXG4jIFBsb3Qgb3V0IHRoZSBhY3R1YWwgYW5kIHByZWRpY3RlZCB2YWx1ZXMgYXMgYSBzY2F0dGVycGxvdCB1c2luZyBnZ3Bsb3QyXG4jIFByZWRpY3RlZCB2YWx1ZXMgY2FuIGJlIGNhbGN1bGF0ZWQgdXNpbmcgYHByZWRpY3QobW9kMSwgdHJhaW5pbmcpYFxuIyBVc2UgdGhlIGdncGxvdCgpIGFuZCBnZW9tX3BvaW50KCkgZnVuY3Rpb25zIHRvIHBsb3RcbiMgVXNlIGZhY3RvciB0byBzcGVjaWZ5IGNvbG9yIGJ5IHF1YXJ0ZXIgKGZxdHIpXG4jIFRvIG1ha2UgdGhlIGdyYXBoIG5pY2VyIGxvb2tpbmcsIHlvdSBjYW4gdXNlIHRoZSB4bGFiKCkgYW5kIHlsYWIoKSBmdW5jdGlvbiB0byBsYWJlbCB0aGUgYXhlc1xuIyBJIHJlY29tbWVuZCBhZGRpbmcgYGdlb21fYWJsaW5lKHNsb3BlPTEpYCB0byB0aGUgcGxvdCBhcyB3ZWxsIHRvIHNlZSB3aGVyZSBwZXJmZWN0IGFjY3VyYWN5IHdvdWxkIGJlXG5nZ3Bsb3QoZGF0YT0sIGFlcyh5PSwgeD0sIGNvbG9yPSkpICsgXG4gIGdlb21fcG9pbnQoKVxuXG4jRU5EIiwic29sdXRpb24iOiIjIFRoZSBkYXRhZnJhbWUgYmVsb3cgY29udGFpbnMgaGlzdG9yaWNhbCByZXZlbnVlIGZvciBXYWxtYXJ0IHNpbmNlIDE5NzBcbiMgVGhlIGZpbGUgdXNlcyBDb21wdXN0YXQncyBub21lbmNsYXR1cmU6XG4jICAgICAtIHJldmVudWUgaXMgcmV2dHFcbiMgICAgIC0gdGlja2VyIGlzIHRpY1xuIyAgICAgLSBmeWVhcnEgaXMgeWVhclxuIyAgICAgLSBmcXRyIGlzIHF1YXJ0ZXJcbiMgSXQgYWxzbyBjb250YWlucyB0aGUgbGFnIG9mIHJldmVudWUsIHJldnRxX2xhZ1xuIyB0cmFpbmluZyBhbmQgbW9kMSBmcm9tIEV4ZXJjaXNlIDEgYXJlIGFsc28gbG9hZGVkXG50cmFpbmluZ1sxOjUsXVxuXG4jIExvYWQgZ2dwbG90MiBmb3IgcGxvdHRpbmdcbmxpYnJhcnkoZ2dwbG90MilcblxuIyBQbG90IG91dCB0aGUgYWN0dWFsIGFuZCBwcmVkaWN0ZWQgdmFsdWVzIGFzIGEgc2NhdHRlcnBsb3QgdXNpbmcgZ2dwbG90MlxuIyBQcmVkaWN0ZWQgdmFsdWVzIGNhbiBiZSBjYWxjdWxhdGVkIHVzaW5nIGBwcmVkaWN0KG1vZDEsIHRyYWluaW5nKWBcbiMgVXNlIHRoZSBnZ3Bsb3QoKSBhbmQgZ2VvbV9wb2ludCgpIGZ1bmN0aW9ucyB0byBwbG90XG4jIFVzZSBmYWN0b3IgdG8gc3BlY2lmeSBjb2xvciBieSBxdWFydGVyIChmcXRyKVxuIyBUbyBtYWtlIHRoZSBncmFwaCBuaWNlciBsb29raW5nLCB5b3UgY2FuIHVzZSB0aGUgeGxhYigpIGFuZCB5bGFiKCkgZnVuY3Rpb24gdG8gbGFiZWwgdGhlIGF4ZXNcbiMgSSByZWNvbW1lbmQgYWRkaW5nIGBnZW9tX2FibGluZShzbG9wZT0xKWAgdG8gdGhlIHBsb3QgYXMgd2VsbCB0byBzZWUgd2hlcmUgcGVyZmVjdCBhY2N1cmFjeSB3b3VsZCBiZVxuZ2dwbG90KGRhdGE9dHJhaW5pbmcsIGFlcyh5PXJldnRxLHg9cHJlZGljdChtb2QxLCB0cmFpbmluZyksIGNvbG9yPWZhY3RvcihmcXRyKSkpICsgXG4gIGdlb21fcG9pbnQoKSArIFxuICBnZW9tX2FibGluZShzbG9wZT0xKSArIFxuICB4bGFiKFwiUHJlZGljdGVkIHJldmVudWVcIikgKyBcbiAgeWxhYihcIkFjdHVhbCByZXZlbnVlXCIpXG5cbiNFTkQiLCJzY3QiOiIjIFRlbXBsYXRlIGJhc2VkIG9uIGh0dHBzOi8vd3d3LnJkb2N1bWVudGF0aW9uLm9yZy9wYWNrYWdlcy90ZXN0d2hhdC92ZXJzaW9ucy80LjEuMVxuIyBDaGVjayBpZiBzb21ldGhpbmcgaXMgZXhwbGljaXRseSB0eXBlZFxuXG50ZXN0X3N0dWRlbnRfdHlwZWQoJ3k9cmV2dHEnLG5vdF90eXBlZF9tc2c9J01ha2Ugc3VyZSB0byBzZXQgYHk9YCB0byBiZSBgcmV2dHFgJylcbnRlc3Rfc3R1ZGVudF90eXBlZCgneD1wcmVkaWN0KG1vZDEsIHRyYWluaW5nKScsbm90X3R5cGVkX21zZz0nTWFrZSBzdXJlIHRvIHNldCBgeD1gIHRvIGJlIGBwcmVkaWN0KG1vZDEsIHRyYWluaW5nKWAuJylcbnRlc3Rfc3R1ZGVudF90eXBlZCgnY29sb3I9ZmFjdG9yKGZxdHIpJyxub3RfdHlwZWRfbXNnPSdZb3Ugc2hvdWxkIHB1dCBgZmFjdG9yKClgIGluIHlvdXIgZXhwcmVzc2lvbiBmb3IgY29sb3IsIHNvIGFzIHRvIGdldCBtb3JlIGRpc3RpbmN0IGNvbG9ycyAoYXMgb3Bwb3NlZCB0byBhIGNvbG9yIHNjYWxlIHdpdGggYGNvbG9yPWZxdHJgLicpXG50ZXN0X3N0dWRlbnRfdHlwZWQoJ2dlb21fcG9pbnQoKScsbm90X3R5cGVkX21zZz0nQWRkIGBnZW9tX3BvaW50KClgIHRvIHlvdXIgYGdncGxvdCgpIGNhbGwgdG8gbWFrZSBhIHNjYXR0ZXIgcGxvdC4nKVxuXG4jIHRlc3Rfc3R1ZGVudF90eXBlZCgneCA8LSAyJywgbm90X3R5cGVkX21zZz0nJylcblxuIyBDaGVjayBpZiBmdW5jdGlvbiB3YXMgdXNlZCBpbiBpbnB1dCBjb2RlXG4jIHRlc3RfZnVuY3Rpb24oJ2MnLGluY29ycmVjdF9tc2c9JycpICBcblxuIyBSZXF1aXJlcyBhbiBvYmplY3QgYHhgIHRvIGhhdmUgdGhlIHNhbWUgdmFsdWUgYXMgdGhlIHNvbHV0aW9uXG4jIHRlc3Rfb2JqZWN0KFwieFwiLGluY29ycmVjdF9tc2cgPSBcIlwiLHVuZGVmaW5lZF9tc2cgPSBcIlwiKSAgXG5cbiMgUmVxdWlyZXMgYW4gb25qZWN0IHdpdGggdGhlIHNhbWUgdmFsdWUgb2YgYHhgIGluIHRoZSBzb2x1dGlvblxuIyB0ZXN0X2FuX29iamVjdChcInhcIix1bmRlZmluZWRfbXNnPVwiXCIpXG5cbiMgQ2hlY2tzIGlmIG91dHB1dCBvZiBzdHVkZW50J3MgY29kZSBjb250YWlucyBnaXZlbiBldmFsdWF0ZWQgZXhwcmVzc2lvblxuIyB0ZXN0X291dHB1dF9jb250YWlucyhcInhcIixpbmNvcnJlY3RfbXNnID0gXCJcIilcblxuIyBDaGVjayBpZiBhIHZlY3RvciBvZiBwcmVkZWZpbmVkIG9iamVjdHMgYXJlIHVuY2hhbmdlZFxuIyB0ZXN0X3ByZWRlZmluZWRfb2JqZWN0cyhjKCd4JywneScpLGluY29ycmVjdF9tc2c9XCJEb24ndCBvbnZlcndyaXRlIHRoZSBwcmVkZWZpbmVkIHZhcmlhYmxlc1wiKVxuXG4jIENoZWNrcyBmb3IgYSByZWdleCBwYXR0ZXJuIGluIHRyaGUgb3V0cHV0XG4jIHRlc3Rfb3V0cHV0X3JlZ2V4KHBhdHRlcm4sZml4ZWQ9RiwgdGltZXM9MSwgaW5jb3JyZWN0X21zZz0nJylcblxuIyBDYW4gY2hlY2sgYW4gYXJiaXRyYXJ5IGV4cHJlc3Npb24gYWNyb3NzIGJvdGggc29sdXRpb24gYW5kIHN0dWRlbnQgY29kZVxuI3Rlc3RfZXhwcmVzc2lvbl9vdXRwdXQoXCJ0eXBlb2YoY29tcGFueV9uYW1lKVwiLCBpbmNvcnJlY3RfbXNnPVwiRGlkIHlvdSBzdG9yZSB0ZXh0dWFsIGRhdGEgaW4gYGNvbXBhbnlfbmFtZWA/XCIpXG5cbnRlc3RfZXJyb3IoKVxuc3VjY2Vzc19tc2coXCJBd2Vzb21lIVwiKVxuXG4jIE90aGVyIGZ1bmN0aW9ucyB0byBub3RlOlxuIyAgICAgLSB0ZXN0X29yKGEsYikgLS0gY2hlY2tzIGlmIGVpdGhlciB0ZXN0IGEgb3IgdGVzdCBiIHBhc3NcbiMgICAgIC0gdGVzdF9nZ3Bsb3QoKSAtLSBjYW4gY2hlY2sgaWYgcGxvdHMgYXJlIGNvcnJlY3RcbiMgICAgIC0gdGVzdF9mdW5jdGlvbigpIC0tIGNhbiBhbHNvIGNoZWNrIGluY2x1ZGVkIHBhcmFtZXRlcnNcbiMgICAgIC0gdGVzdF9sb29wKCkgLS0gY2hlY2tpbmcgZm9yIGFuZCB3aGlsZSBsb29wc1xuIyAgICAgLSB0ZXN0X2xpYnJhcnlfZnVuY3Rpb24oJ3BhY2thZ2UnLCBub3RfY2FsbGVkX21zZz0nJyxpbmNvcnJlY3RfbXNnPScnKVxuIyAgICAgLSB0ZXN0X2lmX2Vsc2UoKSAtLSBjaGVja2luZyBpZiBzdGF0ZW1lbnRzXG4jICAgICAtIHRlc3RfZXhwcmVzc2lvbl9lcnJvcigpIC0tIGNhbiBjaGVjayBpZiBmdW5jdGlvbnMgYXJlIHByb3Blcmx5IGRlZmluZWRcbiMgICAgIC0gdGVzdF9vcGVyYXRvcignb3BlcmF0b3InLCksIG5vdF9jYWxsZWRfbXNnPScnLGluY29ycmVjdF9tc2c9JycpXG4jICAgICAtIHRlc3RfZnVuY3Rpb25fZGVmaW5pdGlvbigpIC0tIHJpZ29yb3VzbHkgY2hlY2sgZGVmaW5lZCBmdW5jdGlvblxuIyAgICAgLSB0ZXN0X2RhdGFfZnJhbWUoKSAtLSBjaGVjayBpZiBkYXRhZnJhbWUgW2NvbHVtbnNdIGFyZSBlcXVpdmFsZW50XG4jICAgICAtIHRlc3RfZnVuY3Rpb25fcmVzdWx0LCB0ZXN0X2V4cHJlc3Npb25fcmVzdWx0In0=
Exercise 3: A better linear model
Reminder: interactions in a linear model can be done fully using * or partially using :.
eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6ImxpYnJhcnkoZHBseXIpICMgbG9hZHMgZHBseXIgZm9yIGRhdGEgbWFuaXB1bGF0aW9uXG5kZiA8LSBkYXRhLmZyYW1lKHRpYz1yZXAoXCJXTVRcIiwxOTQpLFxuICAgICAgICAgICAgICAgICBmeWVhcnE9YygxOTcwLDE5NzAsMTk3MCwxOTcwLDE5NzEsMTk3MSwxOTcxLDE5NzEsMTk3MiwxOTcyLDE5NzIsMTk3MiwxOTczLDE5NzMsMTk3MywxOTczLDE5NzQsMTk3NCwxOTc0LDE5NzQsMTk3NSwxOTc1LDE5NzUsMTk3NSwxOTc2LDE5NzYsMTk3NiwxOTc2LDE5NzcsMTk3NywxOTc3LDE5NzcsMTk3OCwxOTc4LDE5NzgsMTk3OCwxOTc5LDE5NzksMTk3OSwxOTc5LDE5ODAsMTk4MCwxOTgwLDE5ODAsMTk4MSwxOTgxLDE5ODEsMTk4MSwxOTgyLDE5ODIsMTk4MiwxOTgyLDE5ODMsMTk4MywxOTgzLDE5ODMsMTk4NCwxOTg0LDE5ODQsMTk4NCwxOTg1LDE5ODUsMTk4NSwxOTg1LDE5ODYsMTk4NiwxOTg2LDE5ODYsMTk4NywxOTg3LDE5ODcsMTk4NywxOTg4LDE5ODgsMTk4OCwxOTg4LDE5ODksMTk4OSwxOTg5LDE5ODksMTk5MCwxOTkwLDE5OTAsMTk5MCwxOTkxLDE5OTEsMTk5MSwxOTkxLDE5OTIsMTk5MiwxOTkyLDE5OTIsMTk5MywxOTkzLDE5OTMsMTk5MywxOTk0LDE5OTQsMTk5NCwxOTk0LDE5OTUsMTk5NSwxOTk1LDE5OTUsMTk5NiwxOTk2LDE5OTYsMTk5NiwxOTk3LDE5OTcsMTk5NywxOTk3LDE5OTgsMTk5OCwxOTk4LDE5OTgsMTk5OSwxOTk5LDE5OTksMTk5OSwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDEsMjAwMSwyMDAxLDIwMDEsMjAwMiwyMDAyLDIwMDIsMjAwMiwyMDAzLDIwMDMsMjAwMywyMDAzLDIwMDQsMjAwNCwyMDA0LDIwMDQsMjAwNSwyMDA1LDIwMDUsMjAwNSwyMDA2LDIwMDYsMjAwNiwyMDA2LDIwMDcsMjAwNywyMDA3LDIwMDcsMjAwOCwyMDA4LDIwMDgsMjAwOCwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMTAsMjAxMCwyMDEwLDIwMTAsMjAxMSwyMDExLDIwMTEsMjAxMSwyMDEyLDIwMTIsMjAxMiwyMDEyLDIwMTMsMjAxMywyMDEzLDIwMTMsMjAxNCwyMDE0LDIwMTQsMjAxNCwyMDE1LDIwMTUsMjAxNSwyMDE1LDIwMTYsMjAxNiwyMDE2LDIwMTYsMjAxNywyMDE3LDIwMTcsMjAxNywyMDE4LDIwMTgpLFxuICAgICAgICAgICAgICAgICBmcXRyPWMoMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyKSxcbiAgICAgICAgICAgICAgICAgcmV2dHE9Yyg3LjI2Nyw5LjkzOSwxMS40NywxNS42MSwxMi43NTgsMTguMjA3LDE5LjIwNSwyNy44NDQsMjEuMDExLDI5LjkxOCwzMi42ODMsNDEuMjc3LDMyLjczNywzNy42NTUsNDIuMDk4LDU1LjA3MSw0Ni4zNTUsNTYuMTc3LDU5LjQ2Miw3NC4yMTUsNjQuNjUsNzguODUyLDg2LjEwOCwxMTAuNzIxLDkzLjk3MSwxMTUuMTg2LDEyMS44NzUsMTQ3Ljc3NSwxMjIuNjU1LDE1Mi4zODEsMTcyLjYzNywyMzAuNzgzLDE2Ny4yNzQsMjA0LjA4NSwyMjEuOTgyLDMwNi45NTcsMjM4LjU2OSwyOTEuNjg1LDMwMC43NDcsNDE3LjE3NSwzMTQuNTc1LDM3Mi41OTgsNDAxLjg0Miw1NTQuMTg0LDQzNC4yNTEsNTMzLjY1Myw2MzQuNDc2LDg0Mi42MTcsNjY1LjIyOSw3ODguNzA1LDgyNy43NjcsMTA5NC41NTEsODU0LjczNCwxMDk4Ljk0MiwxMTY2LjU5NCwxNTQ2LjYzOSwxMjM0Ljc2OCwxNTA4LjUzMywxNTgzLjU3MywyMDczLjk4MywxNjU1LjY2MSwxOTM0LjM1OCwyMDg3LjUzMywyNzczLjkzNiwyMzQ0LjI1MywyNzcwLjI3NiwyOTQ5LjAwOCwzODQ1LjU1NywzMjExLjc2MSwzNzMyLjIzNyw0MDE1LjAxNyw1MDAwLjIzOCw0MjgyLjAxMiw0ODQ1LjEzMyw0OTkxLjExMyw2NTMwLjczNCw1MzczLjI1OCw2MDQ2LjQxLDYyODMuNDk2LDgxMDcuNDg0LDY3NjguMTkxLDc1NDMuNTA4LDc5MzAuOTQ5LDEwMzU4Ljg5OCw5MjgwLjU2NiwxMDMzOS44OTgsMTA2MjcuNSwxMzYzOC43OTcsMTE2NDkuMzk4LDEzMDI4LjM5OCwxMzY4My43OTcsMTcxMjIsMTM5MjAuMzk4LDE2MjM2LjUsMTY4MjYuODk4LDIwMzYwLjUsMTc2ODYuMDk4LDE5OTQyLjI5NywyMDQxNy42OTksMjQ0NDcuNzk3LDIwNDQwLDIyNzIzLDIyOTE0LDI3NTUwLDIyNzcyLDI1NTg3LDI1NjQ0LDMwODU2LDI1NDA5LDI4Mzg2LDI4Nzc3LDM1Mzg2LDI5ODE5LDMzNTIxLDMzNTA5LDQwNzg1LDM1MTI5LDM4OTEzLDQwODk5LDUxODY4LDQzNDQ3LDQ2NTg4LDQ2MTgxLDU3MDc5LDQ4NTY1LDUzMTg3LDUzMTg1LDY0NzM1LDUyMTI2LDU2NzgxLDU1NzY1LDY2OTA1LDU3MjI0LDYzMjMxLDYzMDM2LDc1MTkwLDY1NDM0LDcwNTE2LDY5MjgyLDgyOTAwLDcwNzU1LDc2Njk3LDc1Mzk3LDg5MjUyLDc5Njc1LDg1NDMwLDg0NDY3LDk5MDc4LDg2Mzc4LDkyODI3LDkxNzk0LDEwNzI4OSw5NDk0MCwxMDIzNDIsOTgzNDUsMTA4NzQ3LDk0MjE0LDEwMDg3Niw5OTM3MywxMTM2MjIsOTk4MTEsMTAzNzI2LDEwMTk1MiwxMTYzNjAsMTA0MTg5LDEwOTM2NiwxMTAyMjYsMTIzMTY5LDExMzAxMCwxMTQwNjUsMTEzODAwLDEyNzc3NiwxMTQwNzAsMTE2ODMwLDExNTY4OCwxMjk3MDYsMTE0OTYwLDEyMDEyNSwxMTkwMDEsMTMxNTY1LDExNDgyNiwxMjAyMjksMTE3NDA4LDEyOTY2NywxMTU5MDQsMTIwMzE5LDExODE3OSwxMzA5MzYsMTE3NTQyLDEyMjk2OCwxMjMxNzksMTM2MjY3LDEyMjY5MCwxMjgwMjgpKVxuZGYgPC0gZGYgJT4lIG11dGF0ZShyZXZ0cV9sYWc9bGFnKHJldnRxKSkiLCJzYW1wbGUiOiIjIFRoZSBkYXRhZnJhbWUgYmVsb3cgY29udGFpbnMgaGlzdG9yaWNhbCByZXZlbnVlIGZvciBXYWxtYXJ0IHNpbmNlIDE5NzBcbiMgVGhlIGZpbGUgdXNlcyBDb21wdXN0YXQncyBub21lbmNsYXR1cmU6XG4jICAgICAtIHJldmVudWUgaXMgcmV2dHFcbiMgICAgIC0gdGlja2VyIGlzIHRpY1xuIyAgICAgLSBmeWVhcnEgaXMgeWVhclxuIyAgICAgLSBmcXRyIGlzIHF1YXJ0ZXJcbiMgSXQgYWxzbyBjb250YWlucyB0aGUgbGFnIG9mIHJldmVudWUsIHJldnRxX2xhZ1xuZGZbMTo1LF1cblxuIyBTcGxpdCB0aGUgZGF0YSBpbnRvIHRyYWluaW5nIGFuZCB0ZXN0aW5nIGRhdGFcbnRyYWluaW5nIDwtIGZpbHRlcihkZiwgZnllYXJxIDwgMjAxNSlcbnRlc3RpbmcgPC0gZmlsdGVyKGRmLCBmeWVhcnEgPj0gMjAxNSlcblxuIyBDYWxjdWxhdGUgYSBsaW5lYXIgbW9kZWwgb2YgcmV2ZW51ZSBvbiBsYWcgcmV2ZW51ZSBwYXJ0aWFsbHkgaW50ZXJhY3RlZCB3aXRoIHF1YXJ0ZXIsIHN0b3JlIGl0IGluIG1vZDJcbiMgVXNpbmcgdGhlIHRyYWluaW5nIGRhdGEgb25seVxubW9kMiA8LSBsbSggfiAsIGRhdGE9dHJhaW5pbmcpXG5cbiMgUHJpbnQgb3V0IGEgc3VtbWFyeSBvZiB0aGUgbW9kZWwgdXNpbmcgc3VtbWFyeVxuc3VtbWFyeShtb2QyKVxuXG4jRU5EIiwic29sdXRpb24iOiIjIFRoZSBkYXRhZnJhbWUgYmVsb3cgY29udGFpbnMgaGlzdG9yaWNhbCByZXZlbnVlIGZvciBXYWxtYXJ0IHNpbmNlIDE5NzBcbiMgVGhlIGZpbGUgdXNlcyBDb21wdXN0YXQncyBub21lbmNsYXR1cmU6XG4jICAgICAtIHJldmVudWUgaXMgcmV2dHFcbiMgICAgIC0gdGlja2VyIGlzIHRpY1xuIyAgICAgLSBmeWVhcnEgaXMgeWVhclxuIyAgICAgLSBmcXRyIGlzIHF1YXJ0ZXJcbiMgSXQgYWxzbyBjb250YWlucyB0aGUgbGFnIG9mIHJldmVudWUsIHJldnRxX2xhZ1xuZGZbMTo1LF1cblxuIyBTcGxpdCB0aGUgZGF0YSBpbnRvIHRyYWluaW5nIGFuZCB0ZXN0aW5nIGRhdGFcbnRyYWluaW5nIDwtIGZpbHRlcihkZiwgZnllYXJxIDwgMjAxNSlcbnRlc3RpbmcgPC0gZmlsdGVyKGRmLCBmeWVhcnEgPj0gMjAxNSlcblxuIyBDYWxjdWxhdGUgYSBsaW5lYXIgbW9kZWwgb2YgcmV2ZW51ZSBvbiBsYWcgcmV2ZW51ZSBwYXJ0aWFsbHkgaW50ZXJhY3RlZCB3aXRoIHF1YXJ0ZXIsIHN0b3JlIGl0IGluIG1vZDJcbiMgVXNpbmcgdGhlIHRyYWluaW5nIGRhdGEgb25seVxubW9kMiA8LSBsbShyZXZ0cSB+IHJldnRxX2xhZzpmYWN0b3IoZnF0ciksIGRhdGE9dHJhaW5pbmcpXG5cbiMgUHJpbnQgb3V0IGEgc3VtbWFyeSBvZiB0aGUgbW9kZWwgdXNpbmcgc3VtbWFyeVxuc3VtbWFyeShtb2QyKVxuXG4jRU5EIiwic2N0IjoiIyBUZW1wbGF0ZSBiYXNlZCBvbiBodHRwczovL3d3dy5yZG9jdW1lbnRhdGlvbi5vcmcvcGFja2FnZXMvdGVzdHdoYXQvdmVyc2lvbnMvNC4xLjFcbiMgQ2hlY2sgaWYgc29tZXRoaW5nIGlzIGV4cGxpY2l0bHkgdHlwZWRcblxudGVzdF9zdHVkZW50X3R5cGVkKCdyZXZ0cSB+ICcsbm90X3R5cGVkX21zZz0nTWFrZSBzdXJlIHRvIGhhdmUgYHJldnRxYCBhcyB5b3VyIGRlcGVuZGVudCB2YXJpYWJsZS4nKVxudGVzdF9zdHVkZW50X3R5cGVkKCc6Jywgbm90X3R5cGVkX21zZz1cIk1ha2Ugc3VyZSB0byBpbnRlcmFjdCBgcmV2dHFfbGFnYCB3aXRoIGBmYWN0b3IoZnF0cilgIHVzaW5nIGA6YC5cIilcbnRlc3Rfc3R1ZGVudF90eXBlZCgnZmFjdG9yJywgbm90X3R5cGVkX21zZz1cIk1ha2Ugc3VyZSB0byB1c2UgZmFjdG9yIHRvIHR1cm4gZnF0ciBpbnRvIGEgZmFjdG9yIHZhcmlhYmxlLlwiKVxudGVzdF9leHByZXNzaW9uX291dHB1dChcInVubmFtZShtb2QyJGNvZWZmaWNpZW50cylcIiwgaW5jb3JyZWN0X21zZz1cIllvdXIgcmVncmVzc2lvbiBtb2RlbCBpc24ndCBxdWl0ZSByaWdodC5cIilcbnRlc3Rfc3R1ZGVudF90eXBlZCgnc3VtbWFyeShtb2QyKScsbm90X3R5cGVkX21zZz0nWW91ciBtb2RlbCBpcyBjb3JyZWN0LCBidXQgZGlkIHlvdSByZW1lbWJlciB0byBzdW1tYXJpemUgaXQgd2l0aCBgc3VtbWFyeSgpYD8nKVxuXG4jIHRlc3Rfc3R1ZGVudF90eXBlZCgneCA8LSAyJywgbm90X3R5cGVkX21zZz0nJylcblxuIyBDaGVjayBpZiBmdW5jdGlvbiB3YXMgdXNlZCBpbiBpbnB1dCBjb2RlXG4jIHRlc3RfZnVuY3Rpb24oJ2MnLGluY29ycmVjdF9tc2c9JycpICBcblxuIyBSZXF1aXJlcyBhbiBvYmplY3QgYHhgIHRvIGhhdmUgdGhlIHNhbWUgdmFsdWUgYXMgdGhlIHNvbHV0aW9uXG4jIHRlc3Rfb2JqZWN0KFwieFwiLGluY29ycmVjdF9tc2cgPSBcIlwiLHVuZGVmaW5lZF9tc2cgPSBcIlwiKSAgXG5cbiMgUmVxdWlyZXMgYW4gb25qZWN0IHdpdGggdGhlIHNhbWUgdmFsdWUgb2YgYHhgIGluIHRoZSBzb2x1dGlvblxuIyB0ZXN0X2FuX29iamVjdChcInhcIix1bmRlZmluZWRfbXNnPVwiXCIpXG5cbiMgQ2hlY2tzIGlmIG91dHB1dCBvZiBzdHVkZW50J3MgY29kZSBjb250YWlucyBnaXZlbiBldmFsdWF0ZWQgZXhwcmVzc2lvblxuIyB0ZXN0X291dHB1dF9jb250YWlucyhcInhcIixpbmNvcnJlY3RfbXNnID0gXCJcIilcblxuIyBDaGVjayBpZiBhIHZlY3RvciBvZiBwcmVkZWZpbmVkIG9iamVjdHMgYXJlIHVuY2hhbmdlZFxuIyB0ZXN0X3ByZWRlZmluZWRfb2JqZWN0cyhjKCd4JywneScpLGluY29ycmVjdF9tc2c9XCJEb24ndCBvbnZlcndyaXRlIHRoZSBwcmVkZWZpbmVkIHZhcmlhYmxlc1wiKVxuXG4jIENoZWNrcyBmb3IgYSByZWdleCBwYXR0ZXJuIGluIHRyaGUgb3V0cHV0XG4jIHRlc3Rfb3V0cHV0X3JlZ2V4KHBhdHRlcm4sZml4ZWQ9RiwgdGltZXM9MSwgaW5jb3JyZWN0X21zZz0nJylcblxuIyBDYW4gY2hlY2sgYW4gYXJiaXRyYXJ5IGV4cHJlc3Npb24gYWNyb3NzIGJvdGggc29sdXRpb24gYW5kIHN0dWRlbnQgY29kZVxuI3Rlc3RfZXhwcmVzc2lvbl9vdXRwdXQoXCJ0eXBlb2YoY29tcGFueV9uYW1lKVwiLCBpbmNvcnJlY3RfbXNnPVwiRGlkIHlvdSBzdG9yZSB0ZXh0dWFsIGRhdGEgaW4gYGNvbXBhbnlfbmFtZWA/XCIpXG5cbnRlc3RfZXJyb3IoKVxuc3VjY2Vzc19tc2coXCJBd2Vzb21lIVwiKVxuXG4jIE90aGVyIGZ1bmN0aW9ucyB0byBub3RlOlxuIyAgICAgLSB0ZXN0X29yKGEsYikgLS0gY2hlY2tzIGlmIGVpdGhlciB0ZXN0IGEgb3IgdGVzdCBiIHBhc3NcbiMgICAgIC0gdGVzdF9nZ3Bsb3QoKSAtLSBjYW4gY2hlY2sgaWYgcGxvdHMgYXJlIGNvcnJlY3RcbiMgICAgIC0gdGVzdF9mdW5jdGlvbigpIC0tIGNhbiBhbHNvIGNoZWNrIGluY2x1ZGVkIHBhcmFtZXRlcnNcbiMgICAgIC0gdGVzdF9sb29wKCkgLS0gY2hlY2tpbmcgZm9yIGFuZCB3aGlsZSBsb29wc1xuIyAgICAgLSB0ZXN0X2xpYnJhcnlfZnVuY3Rpb24oJ3BhY2thZ2UnLCBub3RfY2FsbGVkX21zZz0nJyxpbmNvcnJlY3RfbXNnPScnKVxuIyAgICAgLSB0ZXN0X2lmX2Vsc2UoKSAtLSBjaGVja2luZyBpZiBzdGF0ZW1lbnRzXG4jICAgICAtIHRlc3RfZXhwcmVzc2lvbl9lcnJvcigpIC0tIGNhbiBjaGVjayBpZiBmdW5jdGlvbnMgYXJlIHByb3Blcmx5IGRlZmluZWRcbiMgICAgIC0gdGVzdF9vcGVyYXRvcignb3BlcmF0b3InLCksIG5vdF9jYWxsZWRfbXNnPScnLGluY29ycmVjdF9tc2c9JycpXG4jICAgICAtIHRlc3RfZnVuY3Rpb25fZGVmaW5pdGlvbigpIC0tIHJpZ29yb3VzbHkgY2hlY2sgZGVmaW5lZCBmdW5jdGlvblxuIyAgICAgLSB0ZXN0X2RhdGFfZnJhbWUoKSAtLSBjaGVjayBpZiBkYXRhZnJhbWUgW2NvbHVtbnNdIGFyZSBlcXVpdmFsZW50XG4jICAgICAtIHRlc3RfZnVuY3Rpb25fcmVzdWx0LCB0ZXN0X2V4cHJlc3Npb25fcmVzdWx0In0=
Exercise 4: Plotting the better linear model
Note: it appears that Datacamp-light can’t test plot accuracy at the time of writing this. As such, please manually check the solution once you think you know the answer, or if you get stuck.
Notice how this code is identical to exercise 3, except with the different model name.
eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6ImxpYnJhcnkoZHBseXIpICMgbG9hZHMgZHBseXIgZm9yIGRhdGEgbWFuaXB1bGF0aW9uXG5kZiA8LSBkYXRhLmZyYW1lKHRpYz1yZXAoXCJXTVRcIiwxOTQpLFxuICAgICAgICAgICAgICAgICBmeWVhcnE9YygxOTcwLDE5NzAsMTk3MCwxOTcwLDE5NzEsMTk3MSwxOTcxLDE5NzEsMTk3MiwxOTcyLDE5NzIsMTk3MiwxOTczLDE5NzMsMTk3MywxOTczLDE5NzQsMTk3NCwxOTc0LDE5NzQsMTk3NSwxOTc1LDE5NzUsMTk3NSwxOTc2LDE5NzYsMTk3NiwxOTc2LDE5NzcsMTk3NywxOTc3LDE5NzcsMTk3OCwxOTc4LDE5NzgsMTk3OCwxOTc5LDE5NzksMTk3OSwxOTc5LDE5ODAsMTk4MCwxOTgwLDE5ODAsMTk4MSwxOTgxLDE5ODEsMTk4MSwxOTgyLDE5ODIsMTk4MiwxOTgyLDE5ODMsMTk4MywxOTgzLDE5ODMsMTk4NCwxOTg0LDE5ODQsMTk4NCwxOTg1LDE5ODUsMTk4NSwxOTg1LDE5ODYsMTk4NiwxOTg2LDE5ODYsMTk4NywxOTg3LDE5ODcsMTk4NywxOTg4LDE5ODgsMTk4OCwxOTg4LDE5ODksMTk4OSwxOTg5LDE5ODksMTk5MCwxOTkwLDE5OTAsMTk5MCwxOTkxLDE5OTEsMTk5MSwxOTkxLDE5OTIsMTk5MiwxOTkyLDE5OTIsMTk5MywxOTkzLDE5OTMsMTk5MywxOTk0LDE5OTQsMTk5NCwxOTk0LDE5OTUsMTk5NSwxOTk1LDE5OTUsMTk5NiwxOTk2LDE5OTYsMTk5NiwxOTk3LDE5OTcsMTk5NywxOTk3LDE5OTgsMTk5OCwxOTk4LDE5OTgsMTk5OSwxOTk5LDE5OTksMTk5OSwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDEsMjAwMSwyMDAxLDIwMDEsMjAwMiwyMDAyLDIwMDIsMjAwMiwyMDAzLDIwMDMsMjAwMywyMDAzLDIwMDQsMjAwNCwyMDA0LDIwMDQsMjAwNSwyMDA1LDIwMDUsMjAwNSwyMDA2LDIwMDYsMjAwNiwyMDA2LDIwMDcsMjAwNywyMDA3LDIwMDcsMjAwOCwyMDA4LDIwMDgsMjAwOCwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMTAsMjAxMCwyMDEwLDIwMTAsMjAxMSwyMDExLDIwMTEsMjAxMSwyMDEyLDIwMTIsMjAxMiwyMDEyLDIwMTMsMjAxMywyMDEzLDIwMTMsMjAxNCwyMDE0LDIwMTQsMjAxNCwyMDE1LDIwMTUsMjAxNSwyMDE1LDIwMTYsMjAxNiwyMDE2LDIwMTYsMjAxNywyMDE3LDIwMTcsMjAxNywyMDE4LDIwMTgpLFxuICAgICAgICAgICAgICAgICBmcXRyPWMoMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyKSxcbiAgICAgICAgICAgICAgICAgcmV2dHE9Yyg3LjI2Nyw5LjkzOSwxMS40NywxNS42MSwxMi43NTgsMTguMjA3LDE5LjIwNSwyNy44NDQsMjEuMDExLDI5LjkxOCwzMi42ODMsNDEuMjc3LDMyLjczNywzNy42NTUsNDIuMDk4LDU1LjA3MSw0Ni4zNTUsNTYuMTc3LDU5LjQ2Miw3NC4yMTUsNjQuNjUsNzguODUyLDg2LjEwOCwxMTAuNzIxLDkzLjk3MSwxMTUuMTg2LDEyMS44NzUsMTQ3Ljc3NSwxMjIuNjU1LDE1Mi4zODEsMTcyLjYzNywyMzAuNzgzLDE2Ny4yNzQsMjA0LjA4NSwyMjEuOTgyLDMwNi45NTcsMjM4LjU2OSwyOTEuNjg1LDMwMC43NDcsNDE3LjE3NSwzMTQuNTc1LDM3Mi41OTgsNDAxLjg0Miw1NTQuMTg0LDQzNC4yNTEsNTMzLjY1Myw2MzQuNDc2LDg0Mi42MTcsNjY1LjIyOSw3ODguNzA1LDgyNy43NjcsMTA5NC41NTEsODU0LjczNCwxMDk4Ljk0MiwxMTY2LjU5NCwxNTQ2LjYzOSwxMjM0Ljc2OCwxNTA4LjUzMywxNTgzLjU3MywyMDczLjk4MywxNjU1LjY2MSwxOTM0LjM1OCwyMDg3LjUzMywyNzczLjkzNiwyMzQ0LjI1MywyNzcwLjI3NiwyOTQ5LjAwOCwzODQ1LjU1NywzMjExLjc2MSwzNzMyLjIzNyw0MDE1LjAxNyw1MDAwLjIzOCw0MjgyLjAxMiw0ODQ1LjEzMyw0OTkxLjExMyw2NTMwLjczNCw1MzczLjI1OCw2MDQ2LjQxLDYyODMuNDk2LDgxMDcuNDg0LDY3NjguMTkxLDc1NDMuNTA4LDc5MzAuOTQ5LDEwMzU4Ljg5OCw5MjgwLjU2NiwxMDMzOS44OTgsMTA2MjcuNSwxMzYzOC43OTcsMTE2NDkuMzk4LDEzMDI4LjM5OCwxMzY4My43OTcsMTcxMjIsMTM5MjAuMzk4LDE2MjM2LjUsMTY4MjYuODk4LDIwMzYwLjUsMTc2ODYuMDk4LDE5OTQyLjI5NywyMDQxNy42OTksMjQ0NDcuNzk3LDIwNDQwLDIyNzIzLDIyOTE0LDI3NTUwLDIyNzcyLDI1NTg3LDI1NjQ0LDMwODU2LDI1NDA5LDI4Mzg2LDI4Nzc3LDM1Mzg2LDI5ODE5LDMzNTIxLDMzNTA5LDQwNzg1LDM1MTI5LDM4OTEzLDQwODk5LDUxODY4LDQzNDQ3LDQ2NTg4LDQ2MTgxLDU3MDc5LDQ4NTY1LDUzMTg3LDUzMTg1LDY0NzM1LDUyMTI2LDU2NzgxLDU1NzY1LDY2OTA1LDU3MjI0LDYzMjMxLDYzMDM2LDc1MTkwLDY1NDM0LDcwNTE2LDY5MjgyLDgyOTAwLDcwNzU1LDc2Njk3LDc1Mzk3LDg5MjUyLDc5Njc1LDg1NDMwLDg0NDY3LDk5MDc4LDg2Mzc4LDkyODI3LDkxNzk0LDEwNzI4OSw5NDk0MCwxMDIzNDIsOTgzNDUsMTA4NzQ3LDk0MjE0LDEwMDg3Niw5OTM3MywxMTM2MjIsOTk4MTEsMTAzNzI2LDEwMTk1MiwxMTYzNjAsMTA0MTg5LDEwOTM2NiwxMTAyMjYsMTIzMTY5LDExMzAxMCwxMTQwNjUsMTEzODAwLDEyNzc3NiwxMTQwNzAsMTE2ODMwLDExNTY4OCwxMjk3MDYsMTE0OTYwLDEyMDEyNSwxMTkwMDEsMTMxNTY1LDExNDgyNiwxMjAyMjksMTE3NDA4LDEyOTY2NywxMTU5MDQsMTIwMzE5LDExODE3OSwxMzA5MzYsMTE3NTQyLDEyMjk2OCwxMjMxNzksMTM2MjY3LDEyMjY5MCwxMjgwMjgpKVxuZGYgPC0gZGYgJT4lIG11dGF0ZShyZXZ0cV9sYWc9bGFnKHJldnRxKSlcblxudHJhaW5pbmcgPC0gZmlsdGVyKGRmLCBmeWVhcnEgPCAyMDE1KVxudGVzdGluZyA8LSBmaWx0ZXIoZGYsIGZ5ZWFycSA+PSAyMDE1KVxuXG5tb2QxIDwtIGxtKHJldnRxIH4gcmV2dHFfbGFnLCBkYXRhPXRyYWluaW5nKVxubW9kMiA8LSBsbShyZXZ0cSB+IHJldnRxX2xhZzpmYWN0b3IoZnF0ciksIGRhdGE9dHJhaW5pbmcpIiwic2FtcGxlIjoiIyBUaGUgZGF0YWZyYW1lIGJlbG93IGNvbnRhaW5zIGhpc3RvcmljYWwgcmV2ZW51ZSBmb3IgV2FsbWFydCBzaW5jZSAxOTcwXG4jIFRoZSBmaWxlIHVzZXMgQ29tcHVzdGF0J3Mgbm9tZW5jbGF0dXJlOlxuIyAgICAgLSByZXZlbnVlIGlzIHJldnRxXG4jICAgICAtIHRpY2tlciBpcyB0aWNcbiMgICAgIC0gZnllYXJxIGlzIHllYXJcbiMgICAgIC0gZnF0ciBpcyBxdWFydGVyXG4jIEl0IGFsc28gY29udGFpbnMgdGhlIGxhZyBvZiByZXZlbnVlLCByZXZ0cV9sYWdcbmRmWzE6NSxdXG4jIG1vZDIgYW5kIHRyYWluaW5nIGZyb20gRXhlcmNpc2UgMyBhcmUgYWxzbyBsb2FkZWRcblxuIyBMb2FkIGdncGxvdDIgZm9yIHBsb3R0aW5nXG5saWJyYXJ5KGdncGxvdDIpXG5cbiMgUGxvdCBvdXQgdGhlIGFjdHVhbCBhbmQgcHJlZGljdGVkIHZhbHVlcyBhcyBhIHNjYXR0ZXJwbG90IHVzaW5nIGdncGxvdDJcbiMgUHJlZGljdGVkIHZhbHVlcyBjYW4gYmUgY2FsY3VsYXRlZCB1c2luZyBgcHJlZGljdChtb2QyLCB0cmFpbmluZylgXG4jIFVzZSB0aGUgZ2dwbG90KCkgYW5kIGdlb21fcG9pbnQoKSBmdW5jdGlvbnMgdG8gcGxvdFxuIyBVc2UgZmFjdG9yIHRvIHNwZWNpZnkgY29sb3IgYnkgcXVhcnRlciAoZnF0cilcbiMgVG8gbWFrZSB0aGUgZ3JhcGggbmljZXIgbG9va2luZywgeW91IGNhbiB1c2UgdGhlIHhsYWIoKSBhbmQgeWxhYigpIGZ1bmN0aW9uIHRvIGxhYmVsIHRoZSBheGVzXG4jIEkgcmVjb21tZW5kIGFkZGluZyBgZ2VvbV9hYmxpbmUoc2xvcGU9MSlgIHRvIHRoZSBwbG90IGFzIHdlbGwgdG8gc2VlIHdoZXJlIHBlcmZlY3QgYWNjdXJhY3kgd291bGQgYmVcbmdncGxvdChkYXRhPXRyYWluaW5nLCBhZXMoeT1yZXZ0cSx4PXByZWRpY3QobW9kMiwgdHJhaW5pbmcpLCBjb2xvcj1mYWN0b3IoZnF0cikpKSArIFxuICBnZW9tX3BvaW50KCkgKyBcbiAgZ2VvbV9hYmxpbmUoc2xvcGU9MSkgKyBcbiAgeGxhYihcIlByZWRpY3RlZCByZXZlbnVlXCIpICsgXG4gIHlsYWIoXCJBY3R1YWwgcmV2ZW51ZVwiKVxuXG4jRU5EIiwic29sdXRpb24iOiIjIFRoZSBkYXRhZnJhbWUgYmVsb3cgY29udGFpbnMgaGlzdG9yaWNhbCByZXZlbnVlIGZvciBXYWxtYXJ0IHNpbmNlIDE5NzBcbiMgVGhlIGZpbGUgdXNlcyBDb21wdXN0YXQncyBub21lbmNsYXR1cmU6XG4jICAgICAtIHJldmVudWUgaXMgcmV2dHFcbiMgICAgIC0gdGlja2VyIGlzIHRpY1xuIyAgICAgLSBmeWVhcnEgaXMgeWVhclxuIyAgICAgLSBmcXRyIGlzIHF1YXJ0ZXJcbiMgSXQgYWxzbyBjb250YWlucyB0aGUgbGFnIG9mIHJldmVudWUsIHJldnRxX2xhZ1xuZGZbMTo1LF1cbiMgbW9kMiBhbmQgdHJhaW5pbmcgZnJvbSBFeGVyY2lzZSAzIGFyZSBhbHNvIGxvYWRlZFxuXG4jIExvYWQgZ2dwbG90MiBmb3IgcGxvdHRpbmdcbmxpYnJhcnkoZ2dwbG90MilcblxuIyBQbG90IG91dCB0aGUgYWN0dWFsIGFuZCBwcmVkaWN0ZWQgdmFsdWVzIGFzIGEgc2NhdHRlcnBsb3QgdXNpbmcgZ2dwbG90MlxuIyBQcmVkaWN0ZWQgdmFsdWVzIGNhbiBiZSBjYWxjdWxhdGVkIHVzaW5nIGBwcmVkaWN0KG1vZDIsIHRyYWluaW5nKWBcbiMgVXNlIHRoZSBnZ3Bsb3QoKSBhbmQgZ2VvbV9wb2ludCgpIGZ1bmN0aW9ucyB0byBwbG90XG4jIFVzZSBmYWN0b3IgdG8gc3BlY2lmeSBjb2xvciBieSBxdWFydGVyIChmcXRyKVxuIyBUbyBtYWtlIHRoZSBncmFwaCBuaWNlciBsb29raW5nLCB5b3UgY2FuIHVzZSB0aGUgeGxhYigpIGFuZCB5bGFiKCkgZnVuY3Rpb24gdG8gbGFiZWwgdGhlIGF4ZXNcbiMgSSByZWNvbW1lbmQgYWRkaW5nIGBnZW9tX2FibGluZShzbG9wZT0xKWAgdG8gdGhlIHBsb3QgYXMgd2VsbCB0byBzZWUgd2hlcmUgcGVyZmVjdCBhY2N1cmFjeSB3b3VsZCBiZVxuZ2dwbG90KGRhdGE9dHJhaW5pbmcsIGFlcyh5PXJldnRxLHg9cHJlZGljdChtb2QyLCB0cmFpbmluZyksIGNvbG9yPWZhY3RvcihmcXRyKSkpICsgXG4gIGdlb21fcG9pbnQoKSArIFxuICBnZW9tX2FibGluZShzbG9wZT0xKSArIFxuICB4bGFiKFwiUHJlZGljdGVkIHJldmVudWVcIikgKyBcbiAgeWxhYihcIkFjdHVhbCByZXZlbnVlXCIpXG5cbiNFTkQiLCJzY3QiOiIjIFRlbXBsYXRlIGJhc2VkIG9uIGh0dHBzOi8vd3d3LnJkb2N1bWVudGF0aW9uLm9yZy9wYWNrYWdlcy90ZXN0d2hhdC92ZXJzaW9ucy80LjEuMVxuIyBDaGVjayBpZiBzb21ldGhpbmcgaXMgZXhwbGljaXRseSB0eXBlZFxuXG50ZXN0X3N0dWRlbnRfdHlwZWQoJ3k9cmV2dHEnLG5vdF90eXBlZF9tc2c9J01ha2Ugc3VyZSB0byBzZXQgYHk9YCB0byBiZSBgcmV2dHFgJylcbnRlc3Rfc3R1ZGVudF90eXBlZCgneD1wcmVkaWN0KG1vZDIsIHRyYWluaW5nKScsbm90X3R5cGVkX21zZz0nTWFrZSBzdXJlIHRvIHNldCBgeD1gIHRvIGJlIGBwcmVkaWN0KG1vZDIsIHRyYWluaW5nKWAuJylcbnRlc3Rfc3R1ZGVudF90eXBlZCgnY29sb3I9ZmFjdG9yKGZxdHIpJyxub3RfdHlwZWRfbXNnPSdZb3Ugc2hvdWxkIHB1dCBgZmFjdG9yKClgIGluIHlvdXIgZXhwcmVzc2lvbiBmb3IgY29sb3IsIHNvIGFzIHRvIGdldCBtb3JlIGRpc3RpbmN0IGNvbG9ycyAoYXMgb3Bwb3NlZCB0byBhIGNvbG9yIHNjYWxlIHdpdGggYGNvbG9yPWZxdHJgLicpXG50ZXN0X3N0dWRlbnRfdHlwZWQoJ2dlb21fcG9pbnQoKScsbm90X3R5cGVkX21zZz0nQWRkIGBnZW9tX3BvaW50KClgIHRvIHlvdXIgYGdncGxvdCgpIGNhbGwgdG8gbWFrZSBhIHNjYXR0ZXIgcGxvdC4nKVxuXG4jIHRlc3Rfc3R1ZGVudF90eXBlZCgneCA8LSAyJywgbm90X3R5cGVkX21zZz0nJylcblxuIyBDaGVjayBpZiBmdW5jdGlvbiB3YXMgdXNlZCBpbiBpbnB1dCBjb2RlXG4jIHRlc3RfZnVuY3Rpb24oJ2MnLGluY29ycmVjdF9tc2c9JycpICBcblxuIyBSZXF1aXJlcyBhbiBvYmplY3QgYHhgIHRvIGhhdmUgdGhlIHNhbWUgdmFsdWUgYXMgdGhlIHNvbHV0aW9uXG4jIHRlc3Rfb2JqZWN0KFwieFwiLGluY29ycmVjdF9tc2cgPSBcIlwiLHVuZGVmaW5lZF9tc2cgPSBcIlwiKSAgXG5cbiMgUmVxdWlyZXMgYW4gb25qZWN0IHdpdGggdGhlIHNhbWUgdmFsdWUgb2YgYHhgIGluIHRoZSBzb2x1dGlvblxuIyB0ZXN0X2FuX29iamVjdChcInhcIix1bmRlZmluZWRfbXNnPVwiXCIpXG5cbiMgQ2hlY2tzIGlmIG91dHB1dCBvZiBzdHVkZW50J3MgY29kZSBjb250YWlucyBnaXZlbiBldmFsdWF0ZWQgZXhwcmVzc2lvblxuIyB0ZXN0X291dHB1dF9jb250YWlucyhcInhcIixpbmNvcnJlY3RfbXNnID0gXCJcIilcblxuIyBDaGVjayBpZiBhIHZlY3RvciBvZiBwcmVkZWZpbmVkIG9iamVjdHMgYXJlIHVuY2hhbmdlZFxuIyB0ZXN0X3ByZWRlZmluZWRfb2JqZWN0cyhjKCd4JywneScpLGluY29ycmVjdF9tc2c9XCJEb24ndCBvbnZlcndyaXRlIHRoZSBwcmVkZWZpbmVkIHZhcmlhYmxlc1wiKVxuXG4jIENoZWNrcyBmb3IgYSByZWdleCBwYXR0ZXJuIGluIHRyaGUgb3V0cHV0XG4jIHRlc3Rfb3V0cHV0X3JlZ2V4KHBhdHRlcm4sZml4ZWQ9RiwgdGltZXM9MSwgaW5jb3JyZWN0X21zZz0nJylcblxuIyBDYW4gY2hlY2sgYW4gYXJiaXRyYXJ5IGV4cHJlc3Npb24gYWNyb3NzIGJvdGggc29sdXRpb24gYW5kIHN0dWRlbnQgY29kZVxuI3Rlc3RfZXhwcmVzc2lvbl9vdXRwdXQoXCJ0eXBlb2YoY29tcGFueV9uYW1lKVwiLCBpbmNvcnJlY3RfbXNnPVwiRGlkIHlvdSBzdG9yZSB0ZXh0dWFsIGRhdGEgaW4gYGNvbXBhbnlfbmFtZWA/XCIpXG5cbnRlc3RfZXJyb3IoKVxuc3VjY2Vzc19tc2coXCJBd2Vzb21lIVwiKVxuXG4jIE90aGVyIGZ1bmN0aW9ucyB0byBub3RlOlxuIyAgICAgLSB0ZXN0X29yKGEsYikgLS0gY2hlY2tzIGlmIGVpdGhlciB0ZXN0IGEgb3IgdGVzdCBiIHBhc3NcbiMgICAgIC0gdGVzdF9nZ3Bsb3QoKSAtLSBjYW4gY2hlY2sgaWYgcGxvdHMgYXJlIGNvcnJlY3RcbiMgICAgIC0gdGVzdF9mdW5jdGlvbigpIC0tIGNhbiBhbHNvIGNoZWNrIGluY2x1ZGVkIHBhcmFtZXRlcnNcbiMgICAgIC0gdGVzdF9sb29wKCkgLS0gY2hlY2tpbmcgZm9yIGFuZCB3aGlsZSBsb29wc1xuIyAgICAgLSB0ZXN0X2xpYnJhcnlfZnVuY3Rpb24oJ3BhY2thZ2UnLCBub3RfY2FsbGVkX21zZz0nJyxpbmNvcnJlY3RfbXNnPScnKVxuIyAgICAgLSB0ZXN0X2lmX2Vsc2UoKSAtLSBjaGVja2luZyBpZiBzdGF0ZW1lbnRzXG4jICAgICAtIHRlc3RfZXhwcmVzc2lvbl9lcnJvcigpIC0tIGNhbiBjaGVjayBpZiBmdW5jdGlvbnMgYXJlIHByb3Blcmx5IGRlZmluZWRcbiMgICAgIC0gdGVzdF9vcGVyYXRvcignb3BlcmF0b3InLCksIG5vdF9jYWxsZWRfbXNnPScnLGluY29ycmVjdF9tc2c9JycpXG4jICAgICAtIHRlc3RfZnVuY3Rpb25fZGVmaW5pdGlvbigpIC0tIHJpZ29yb3VzbHkgY2hlY2sgZGVmaW5lZCBmdW5jdGlvblxuIyAgICAgLSB0ZXN0X2RhdGFfZnJhbWUoKSAtLSBjaGVjayBpZiBkYXRhZnJhbWUgW2NvbHVtbnNdIGFyZSBlcXVpdmFsZW50XG4jICAgICAtIHRlc3RfZnVuY3Rpb25fcmVzdWx0LCB0ZXN0X2V4cHJlc3Npb25fcmVzdWx0In0=
Exercise 5: Comparing the models with a line plot
Note: it appears that Datacamp-light can’t test plot accuracy at the time of writing this. As such, please manually check the solution once you think you know the answer, or if you get stuck.
eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6ImxpYnJhcnkoZHBseXIpICMgbG9hZHMgZHBseXIgZm9yIGRhdGEgbWFuaXB1bGF0aW9uXG5kZiA8LSBkYXRhLmZyYW1lKHRpYz1yZXAoXCJXTVRcIiwxOTQpLFxuICAgICAgICAgICAgICAgICBmeWVhcnE9YygxOTcwLDE5NzAsMTk3MCwxOTcwLDE5NzEsMTk3MSwxOTcxLDE5NzEsMTk3MiwxOTcyLDE5NzIsMTk3MiwxOTczLDE5NzMsMTk3MywxOTczLDE5NzQsMTk3NCwxOTc0LDE5NzQsMTk3NSwxOTc1LDE5NzUsMTk3NSwxOTc2LDE5NzYsMTk3NiwxOTc2LDE5NzcsMTk3NywxOTc3LDE5NzcsMTk3OCwxOTc4LDE5NzgsMTk3OCwxOTc5LDE5NzksMTk3OSwxOTc5LDE5ODAsMTk4MCwxOTgwLDE5ODAsMTk4MSwxOTgxLDE5ODEsMTk4MSwxOTgyLDE5ODIsMTk4MiwxOTgyLDE5ODMsMTk4MywxOTgzLDE5ODMsMTk4NCwxOTg0LDE5ODQsMTk4NCwxOTg1LDE5ODUsMTk4NSwxOTg1LDE5ODYsMTk4NiwxOTg2LDE5ODYsMTk4NywxOTg3LDE5ODcsMTk4NywxOTg4LDE5ODgsMTk4OCwxOTg4LDE5ODksMTk4OSwxOTg5LDE5ODksMTk5MCwxOTkwLDE5OTAsMTk5MCwxOTkxLDE5OTEsMTk5MSwxOTkxLDE5OTIsMTk5MiwxOTkyLDE5OTIsMTk5MywxOTkzLDE5OTMsMTk5MywxOTk0LDE5OTQsMTk5NCwxOTk0LDE5OTUsMTk5NSwxOTk1LDE5OTUsMTk5NiwxOTk2LDE5OTYsMTk5NiwxOTk3LDE5OTcsMTk5NywxOTk3LDE5OTgsMTk5OCwxOTk4LDE5OTgsMTk5OSwxOTk5LDE5OTksMTk5OSwyMDAwLDIwMDAsMjAwMCwyMDAwLDIwMDEsMjAwMSwyMDAxLDIwMDEsMjAwMiwyMDAyLDIwMDIsMjAwMiwyMDAzLDIwMDMsMjAwMywyMDAzLDIwMDQsMjAwNCwyMDA0LDIwMDQsMjAwNSwyMDA1LDIwMDUsMjAwNSwyMDA2LDIwMDYsMjAwNiwyMDA2LDIwMDcsMjAwNywyMDA3LDIwMDcsMjAwOCwyMDA4LDIwMDgsMjAwOCwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMTAsMjAxMCwyMDEwLDIwMTAsMjAxMSwyMDExLDIwMTEsMjAxMSwyMDEyLDIwMTIsMjAxMiwyMDEyLDIwMTMsMjAxMywyMDEzLDIwMTMsMjAxNCwyMDE0LDIwMTQsMjAxNCwyMDE1LDIwMTUsMjAxNSwyMDE1LDIwMTYsMjAxNiwyMDE2LDIwMTYsMjAxNywyMDE3LDIwMTcsMjAxNywyMDE4LDIwMTgpLFxuICAgICAgICAgICAgICAgICBmcXRyPWMoMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyLDMsNCwxLDIsMyw0LDEsMiwzLDQsMSwyKSxcbiAgICAgICAgICAgICAgICAgcmV2dHE9Yyg3LjI2Nyw5LjkzOSwxMS40NywxNS42MSwxMi43NTgsMTguMjA3LDE5LjIwNSwyNy44NDQsMjEuMDExLDI5LjkxOCwzMi42ODMsNDEuMjc3LDMyLjczNywzNy42NTUsNDIuMDk4LDU1LjA3MSw0Ni4zNTUsNTYuMTc3LDU5LjQ2Miw3NC4yMTUsNjQuNjUsNzguODUyLDg2LjEwOCwxMTAuNzIxLDkzLjk3MSwxMTUuMTg2LDEyMS44NzUsMTQ3Ljc3NSwxMjIuNjU1LDE1Mi4zODEsMTcyLjYzNywyMzAuNzgzLDE2Ny4yNzQsMjA0LjA4NSwyMjEuOTgyLDMwNi45NTcsMjM4LjU2OSwyOTEuNjg1LDMwMC43NDcsNDE3LjE3NSwzMTQuNTc1LDM3Mi41OTgsNDAxLjg0Miw1NTQuMTg0LDQzNC4yNTEsNTMzLjY1Myw2MzQuNDc2LDg0Mi42MTcsNjY1LjIyOSw3ODguNzA1LDgyNy43NjcsMTA5NC41NTEsODU0LjczNCwxMDk4Ljk0MiwxMTY2LjU5NCwxNTQ2LjYzOSwxMjM0Ljc2OCwxNTA4LjUzMywxNTgzLjU3MywyMDczLjk4MywxNjU1LjY2MSwxOTM0LjM1OCwyMDg3LjUzMywyNzczLjkzNiwyMzQ0LjI1MywyNzcwLjI3NiwyOTQ5LjAwOCwzODQ1LjU1NywzMjExLjc2MSwzNzMyLjIzNyw0MDE1LjAxNyw1MDAwLjIzOCw0MjgyLjAxMiw0ODQ1LjEzMyw0OTkxLjExMyw2NTMwLjczNCw1MzczLjI1OCw2MDQ2LjQxLDYyODMuNDk2LDgxMDcuNDg0LDY3NjguMTkxLDc1NDMuNTA4LDc5MzAuOTQ5LDEwMzU4Ljg5OCw5MjgwLjU2NiwxMDMzOS44OTgsMTA2MjcuNSwxMzYzOC43OTcsMTE2NDkuMzk4LDEzMDI4LjM5OCwxMzY4My43OTcsMTcxMjIsMTM5MjAuMzk4LDE2MjM2LjUsMTY4MjYuODk4LDIwMzYwLjUsMTc2ODYuMDk4LDE5OTQyLjI5NywyMDQxNy42OTksMjQ0NDcuNzk3LDIwNDQwLDIyNzIzLDIyOTE0LDI3NTUwLDIyNzcyLDI1NTg3LDI1NjQ0LDMwODU2LDI1NDA5LDI4Mzg2LDI4Nzc3LDM1Mzg2LDI5ODE5LDMzNTIxLDMzNTA5LDQwNzg1LDM1MTI5LDM4OTEzLDQwODk5LDUxODY4LDQzNDQ3LDQ2NTg4LDQ2MTgxLDU3MDc5LDQ4NTY1LDUzMTg3LDUzMTg1LDY0NzM1LDUyMTI2LDU2NzgxLDU1NzY1LDY2OTA1LDU3MjI0LDYzMjMxLDYzMDM2LDc1MTkwLDY1NDM0LDcwNTE2LDY5MjgyLDgyOTAwLDcwNzU1LDc2Njk3LDc1Mzk3LDg5MjUyLDc5Njc1LDg1NDMwLDg0NDY3LDk5MDc4LDg2Mzc4LDkyODI3LDkxNzk0LDEwNzI4OSw5NDk0MCwxMDIzNDIsOTgzNDUsMTA4NzQ3LDk0MjE0LDEwMDg3Niw5OTM3MywxMTM2MjIsOTk4MTEsMTAzNzI2LDEwMTk1MiwxMTYzNjAsMTA0MTg5LDEwOTM2NiwxMTAyMjYsMTIzMTY5LDExMzAxMCwxMTQwNjUsMTEzODAwLDEyNzc3NiwxMTQwNzAsMTE2ODMwLDExNTY4OCwxMjk3MDYsMTE0OTYwLDEyMDEyNSwxMTkwMDEsMTMxNTY1LDExNDgyNiwxMjAyMjksMTE3NDA4LDEyOTY2NywxMTU5MDQsMTIwMzE5LDExODE3OSwxMzA5MzYsMTE3NTQyLDEyMjk2OCwxMjMxNzksMTM2MjY3LDEyMjY5MCwxMjgwMjgpKVxuZGYgPC0gZGYgJT4lIG11dGF0ZShyZXZ0cV9sYWc9bGFnKHJldnRxKSlcblxudHJhaW5pbmcgPC0gZmlsdGVyKGRmLCBmeWVhcnEgPCAyMDE1KVxudGVzdGluZyA8LSBmaWx0ZXIoZGYsIGZ5ZWFycSA+PSAyMDE1KVxuXG5tb2QxIDwtIGxtKHJldnRxIH4gcmV2dHFfbGFnLCBkYXRhPXRyYWluaW5nKVxubW9kMiA8LSBsbShyZXZ0cSB+IHJldnRxX2xhZzpmYWN0b3IoZnF0ciksIGRhdGE9dHJhaW5pbmcpIiwic2FtcGxlIjoiIyBUaGUgZGF0YWZyYW1lIGJlbG93IGNvbnRhaW5zIGhpc3RvcmljYWwgcmV2ZW51ZSBmb3IgV2FsbWFydCBzaW5jZSAxOTcwXG4jIFRoZSBmaWxlIHVzZXMgQ29tcHVzdGF0J3Mgbm9tZW5jbGF0dXJlOlxuIyAgICAgLSByZXZlbnVlIGlzIHJldnRxXG4jICAgICAtIHRpY2tlciBpcyB0aWNcbiMgICAgIC0gZnllYXJxIGlzIHllYXJcbiMgICAgIC0gZnF0ciBpcyBxdWFydGVyXG4jIEl0IGFsc28gY29udGFpbnMgdGhlIGxhZyBvZiByZXZlbnVlLCByZXZ0cV9sYWdcbnRlc3RpbmdbMTo1LF1cbiMgbW9kMSwgbW9kMiwgYW5kIHRlc3RpbmcgYXJlIGFsc28gbG9hZGVkXG5cbiMgTG9hZCBnZ3Bsb3QyIGZvciBwbG90dGluZ1xubGlicmFyeShnZ3Bsb3QyKVxuXG4jIE1ha2UgYSBiZXR0ZXIgaW5kZXggZm9yIGRhdGVzXG50ZXN0aW5nJHF1YXJ0ZXIgPC0gdGVzdGluZyRmeWVhcnEgKyAodGVzdGluZyRmcXRyIC0gMSkgLyA0XG5cbiMgUGxvdCBvdXQgMyBsaW5lczpcbiMgICAgIDEpIGByZXZ0cWAgdnMgYHF1YXJ0ZXJgXG4jICAgICAyKSBwcmVkaWN0ZWQgdXNpbmcgbW9kMSB2cyBgcXVhcnRlcmBcbiMgICAgIDIpIHByZWRpY3RlZCB1c2luZyBtb2QyIHZzIGBxdWFydGVyYFxuIyBQcmVkaWN0ZWQgdmFsdWVzIGNhbiBiZSBjYWxjdWxhdGVkIHVzaW5nIGBwcmVkaWN0KG1vZDEsIHRlc3RpbmcpYCBhbmQgYHByZWRpY3QobW9kMiwgdGVzdGluZylgXG4jIFVzZSB0aGUgZ2dwbG90KCkgYW5kIGdlb21fbGluZSgpIGZ1bmN0aW9ucyB0byBwbG90XG4jIFRvIG1ha2UgdGhlIGdyYXBoIG5pY2VyIGxvb2tpbmcsIHlvdSBjYW4gdXNlIHRoZSB4bGFiKCkgYW5kIHlsYWIoKSBmdW5jdGlvbiB0byBsYWJlbCB0aGUgYXhlc1xuZ2dwbG90KGRhdGE9dGVzdGluZykgKyBcbiAgZ2VvbV9saW5lKGFlcyh5PSwgeD0sIGNvbG9yPVwiQWN0dWFsXCIpKSArXG4gIGdlb21fbGluZShhZXMoeT0sIHg9LCBjb2xvcj1cIlNpbXBsZSBtb2RlbFwiKSkgK1xuICBnZW9tX2xpbmUoYWVzKHk9LCB4PSwgY29sb3I9XCJBZHZhbmNlZCBtb2RlbFwiKSkgKyBcbiAgeGxhYihcIlF1YXJ0ZXJcIikgKyBcbiAgeWxhYihcIldhbG1hcnQncyByZXZlbnVlXCIpXG4jRU5EIiwic29sdXRpb24iOiIjIFRoZSBkYXRhZnJhbWUgYmVsb3cgY29udGFpbnMgaGlzdG9yaWNhbCByZXZlbnVlIGZvciBXYWxtYXJ0IHNpbmNlIDE5NzBcbiMgVGhlIGZpbGUgdXNlcyBDb21wdXN0YXQncyBub21lbmNsYXR1cmU6XG4jICAgICAtIHJldmVudWUgaXMgcmV2dHFcbiMgICAgIC0gdGlja2VyIGlzIHRpY1xuIyAgICAgLSBmeWVhcnEgaXMgeWVhclxuIyAgICAgLSBmcXRyIGlzIHF1YXJ0ZXJcbiMgSXQgYWxzbyBjb250YWlucyB0aGUgbGFnIG9mIHJldmVudWUsIHJldnRxX2xhZ1xudGVzdGluZ1sxOjUsXVxuIyBtb2QxLCBtb2QyLCBhbmQgdGVzdGluZyBhcmUgYWxzbyBsb2FkZWRcblxuIyBMb2FkIGdncGxvdDIgZm9yIHBsb3R0aW5nXG5saWJyYXJ5KGdncGxvdDIpXG5cbiMgTWFrZSBhIGJldHRlciBpbmRleCBmb3IgZGF0ZXNcbnRlc3RpbmckcXVhcnRlciA8LSB0ZXN0aW5nJGZ5ZWFycSArICh0ZXN0aW5nJGZxdHIgLSAxKSAvIDRcblxuIyBQbG90IG91dCAzIGxpbmVzOlxuIyAgICAgMSkgYHJldnRxYCB2cyBgcXVhcnRlcmBcbiMgICAgIDIpIHByZWRpY3RlZCB1c2luZyBtb2QxIHZzIGBxdWFydGVyYFxuIyAgICAgMikgcHJlZGljdGVkIHVzaW5nIG1vZDIgdnMgYHF1YXJ0ZXJgXG4jIFByZWRpY3RlZCB2YWx1ZXMgY2FuIGJlIGNhbGN1bGF0ZWQgdXNpbmcgYHByZWRpY3QobW9kMSwgdGVzdGluZylgIGFuZCBgcHJlZGljdChtb2QyLCB0ZXN0aW5nKWBcbiMgVXNlIHRoZSBnZ3Bsb3QoKSBhbmQgZ2VvbV9saW5lKCkgZnVuY3Rpb25zIHRvIHBsb3RcbiMgVG8gbWFrZSB0aGUgZ3JhcGggbmljZXIgbG9va2luZywgeW91IGNhbiB1c2UgdGhlIHhsYWIoKSBhbmQgeWxhYigpIGZ1bmN0aW9uIHRvIGxhYmVsIHRoZSBheGVzXG5nZ3Bsb3QoZGF0YT10ZXN0aW5nKSArIFxuICBnZW9tX2xpbmUoYWVzKHk9cmV2dHEsIHg9cXVhcnRlciwgY29sb3I9XCJBY3R1YWxcIikpICtcbiAgZ2VvbV9saW5lKGFlcyh5PXByZWRpY3QobW9kMSwgdGVzdGluZyksIHg9cXVhcnRlciwgY29sb3I9XCJTaW1wbGUgbW9kZWxcIikpICtcbiAgZ2VvbV9saW5lKGFlcyh5PXByZWRpY3QobW9kMiwgdGVzdGluZyksIHg9cXVhcnRlciwgY29sb3I9XCJBZHZhbmNlZCBtb2RlbFwiKSkgKyBcbiAgeGxhYihcIlF1YXJ0ZXJcIikgKyBcbiAgeWxhYihcIldhbG1hcnQncyByZXZlbnVlXCIpXG4jRU5EIiwic2N0IjoiIyBUZW1wbGF0ZSBiYXNlZCBvbiBodHRwczovL3d3dy5yZG9jdW1lbnRhdGlvbi5vcmcvcGFja2FnZXMvdGVzdHdoYXQvdmVyc2lvbnMvNC4xLjFcbiMgQ2hlY2sgaWYgc29tZXRoaW5nIGlzIGV4cGxpY2l0bHkgdHlwZWRcblxudGVzdF9zdHVkZW50X3R5cGVkKCd5PXJldnRxJyxub3RfdHlwZWRfbXNnPSdNYWtlIHN1cmUgdG8gc2V0IGB5PWAgdG8gYmUgYHJldnRxYCBmb3IgYSBsaW5lJylcbnRlc3Rfc3R1ZGVudF90eXBlZCgneT1wcmVkaWN0KG1vZDEsIHRyYWluaW5nKScsbm90X3R5cGVkX21zZz0nTWFrZSBzdXJlIHRvIHNldCBgeT1gIHRvIGJlIGBwcmVkaWN0KG1vZDEsIHRyYWluaW5nKWAgZm9yIGEgbGluZS4nKVxudGVzdF9zdHVkZW50X3R5cGVkKCd5PXByZWRpY3QobW9kMiwgdHJhaW5pbmcpJyxub3RfdHlwZWRfbXNnPSdNYWtlIHN1cmUgdG8gc2V0IGB5PWAgdG8gYmUgYHByZWRpY3QobW9kMiwgdHJhaW5pbmcpYCBmb3IgYSBsaW5lLicpXG50ZXN0X3N0dWRlbnRfdHlwZWQoJ3g9cXVhcnRlcicsbm90X3R5cGVkX21zZz0nTWFrZSBzdXJlIHRvIHNldCBgeD1gIHRvIGJlIGBxdWFydGVyYCBmb3IgYWxsIGxpbmVzLicpXG50ZXN0X3N0dWRlbnRfdHlwZWQoJ2dlb21fbGluZSgpJyxub3RfdHlwZWRfbXNnPSdVc2UgdGhlIHByb3ZpZGVkIGBnZW9tX2xpbmUoKWAgY2FsbHMgdG8gbWFrZSBhIGxpbmUgY2hhcnQuJylcblxuIyB0ZXN0X3N0dWRlbnRfdHlwZWQoJ3ggPC0gMicsIG5vdF90eXBlZF9tc2c9JycpXG5cbiMgQ2hlY2sgaWYgZnVuY3Rpb24gd2FzIHVzZWQgaW4gaW5wdXQgY29kZVxuIyB0ZXN0X2Z1bmN0aW9uKCdjJyxpbmNvcnJlY3RfbXNnPScnKSAgXG5cbiMgUmVxdWlyZXMgYW4gb2JqZWN0IGB4YCB0byBoYXZlIHRoZSBzYW1lIHZhbHVlIGFzIHRoZSBzb2x1dGlvblxuIyB0ZXN0X29iamVjdChcInhcIixpbmNvcnJlY3RfbXNnID0gXCJcIix1bmRlZmluZWRfbXNnID0gXCJcIikgIFxuXG4jIFJlcXVpcmVzIGFuIG9uamVjdCB3aXRoIHRoZSBzYW1lIHZhbHVlIG9mIGB4YCBpbiB0aGUgc29sdXRpb25cbiMgdGVzdF9hbl9vYmplY3QoXCJ4XCIsdW5kZWZpbmVkX21zZz1cIlwiKVxuXG4jIENoZWNrcyBpZiBvdXRwdXQgb2Ygc3R1ZGVudCdzIGNvZGUgY29udGFpbnMgZ2l2ZW4gZXZhbHVhdGVkIGV4cHJlc3Npb25cbiMgdGVzdF9vdXRwdXRfY29udGFpbnMoXCJ4XCIsaW5jb3JyZWN0X21zZyA9IFwiXCIpXG5cbiMgQ2hlY2sgaWYgYSB2ZWN0b3Igb2YgcHJlZGVmaW5lZCBvYmplY3RzIGFyZSB1bmNoYW5nZWRcbiMgdGVzdF9wcmVkZWZpbmVkX29iamVjdHMoYygneCcsJ3knKSxpbmNvcnJlY3RfbXNnPVwiRG9uJ3Qgb252ZXJ3cml0ZSB0aGUgcHJlZGVmaW5lZCB2YXJpYWJsZXNcIilcblxuIyBDaGVja3MgZm9yIGEgcmVnZXggcGF0dGVybiBpbiB0cmhlIG91dHB1dFxuIyB0ZXN0X291dHB1dF9yZWdleChwYXR0ZXJuLGZpeGVkPUYsIHRpbWVzPTEsIGluY29ycmVjdF9tc2c9JycpXG5cbiMgQ2FuIGNoZWNrIGFuIGFyYml0cmFyeSBleHByZXNzaW9uIGFjcm9zcyBib3RoIHNvbHV0aW9uIGFuZCBzdHVkZW50IGNvZGVcbiN0ZXN0X2V4cHJlc3Npb25fb3V0cHV0KFwidHlwZW9mKGNvbXBhbnlfbmFtZSlcIiwgaW5jb3JyZWN0X21zZz1cIkRpZCB5b3Ugc3RvcmUgdGV4dHVhbCBkYXRhIGluIGBjb21wYW55X25hbWVgP1wiKVxuXG50ZXN0X2Vycm9yKClcbnN1Y2Nlc3NfbXNnKFwiQXdlc29tZSFcIilcblxuIyBPdGhlciBmdW5jdGlvbnMgdG8gbm90ZTpcbiMgICAgIC0gdGVzdF9vcihhLGIpIC0tIGNoZWNrcyBpZiBlaXRoZXIgdGVzdCBhIG9yIHRlc3QgYiBwYXNzXG4jICAgICAtIHRlc3RfZ2dwbG90KCkgLS0gY2FuIGNoZWNrIGlmIHBsb3RzIGFyZSBjb3JyZWN0XG4jICAgICAtIHRlc3RfZnVuY3Rpb24oKSAtLSBjYW4gYWxzbyBjaGVjayBpbmNsdWRlZCBwYXJhbWV0ZXJzXG4jICAgICAtIHRlc3RfbG9vcCgpIC0tIGNoZWNraW5nIGZvciBhbmQgd2hpbGUgbG9vcHNcbiMgICAgIC0gdGVzdF9saWJyYXJ5X2Z1bmN0aW9uKCdwYWNrYWdlJywgbm90X2NhbGxlZF9tc2c9JycsaW5jb3JyZWN0X21zZz0nJylcbiMgICAgIC0gdGVzdF9pZl9lbHNlKCkgLS0gY2hlY2tpbmcgaWYgc3RhdGVtZW50c1xuIyAgICAgLSB0ZXN0X2V4cHJlc3Npb25fZXJyb3IoKSAtLSBjYW4gY2hlY2sgaWYgZnVuY3Rpb25zIGFyZSBwcm9wZXJseSBkZWZpbmVkXG4jICAgICAtIHRlc3Rfb3BlcmF0b3IoJ29wZXJhdG9yJywpLCBub3RfY2FsbGVkX21zZz0nJyxpbmNvcnJlY3RfbXNnPScnKVxuIyAgICAgLSB0ZXN0X2Z1bmN0aW9uX2RlZmluaXRpb24oKSAtLSByaWdvcm91c2x5IGNoZWNrIGRlZmluZWQgZnVuY3Rpb25cbiMgICAgIC0gdGVzdF9kYXRhX2ZyYW1lKCkgLS0gY2hlY2sgaWYgZGF0YWZyYW1lIFtjb2x1bW5zXSBhcmUgZXF1aXZhbGVudFxuIyAgICAgLSB0ZXN0X2Z1bmN0aW9uX3Jlc3VsdCwgdGVzdF9leHByZXNzaW9uX3Jlc3VsdCJ9