Name: series-workflowkv4k4 Phase: Failed StartedAt: 2026-07-25 11:34:46 +0000 UTC FinishedAt: 2026-07-25 13:10:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkv4k4[0] Phase: Succeeded StartedAt: 2026-07-25 11:34:46 +0000 UTC FinishedAt: 2026-07-25 13:09:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkv4k4[0].run-triage Phase: Succeeded StartedAt: 2026-07-25 11:34:46 +0000 UTC FinishedAt: 2026-07-25 13:09:22 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDEzOjAwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+OG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsZWdhY3kgYXg4ODc5NiBwbGF0Zm9ybSBkcml2ZXIsIHdoaWNoIGlzIG9ubHkgcmVnaXN0ZXJlZCBieSBzcGVjaWZpYyBoYXJkd2FyZSBib2FyZCBjb2RlIChTdXBlckggSGlnaGxhbmRlciBhbmQgQW1pZ2EgWm9ycm8pLiBJdCBjYW5ub3QgYmUgcHJvYmVkIG9yIGV4ZWN1dGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFIHVzZWQgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDEzOjAwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNjM5ZmY3ODA0MDU2YTRjZmM2MjNmZDcyMjIzODE5MTk3OWVhYWU5MVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgSnVsIDI1IDEzOjAwOjU2IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmNcbmluZGV4IGUxNjk1ZDBmYmQ4YmIwLi41ZWUxZmJhZmRjZmNkZiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuY1xuQEAgLTcyMiwxMiAmIzQzOzcyMiwxMiBAQCBzdGF0aWMgaW50IGF4X2luaXRfZGV2KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4gI2lmZGVmIENPTkZJR19BWDg4Nzk2XzkzQ1g2XG4gXHRpZiAoYXgtXHUwMDNlcGxhdC1cdTAwM2VmbGFncyBcdTAwMjYgQVhGTEdfSEFTXzkzQ1g2KSB7XG4gXHRcdHVuc2lnbmVkIGNoYXIgbWFjX2FkZHJbRVRIX0FMRU5dO1xuLVx0XHRzdHJ1Y3QgZWVwcm9tXzkzY3g2IGVlcHJvbTtcbi1cbi1cdFx0ZWVwcm9tLmRhdGEgPSBlaV9sb2NhbDtcbi1cdFx0ZWVwcm9tLnJlZ2lzdGVyX3JlYWQgPSBheF9lZXByb21fcmVnaXN0ZXJfcmVhZDtcbi1cdFx0ZWVwcm9tLnJlZ2lzdGVyX3dyaXRlID0gYXhfZWVwcm9tX3JlZ2lzdGVyX3dyaXRlO1xuLVx0XHRlZXByb20ud2lkdGggPSBQQ0lfRUVQUk9NX1dJRFRIXzkzQzU2O1xuJiM0MztcdFx0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb20gPSB7XG4mIzQzO1x0XHRcdC5kYXRhID0gZWlfbG9jYWwsXG4mIzQzO1x0XHRcdC5yZWdpc3Rlcl9yZWFkID0gYXhfZWVwcm9tX3JlZ2lzdGVyX3JlYWQsXG4mIzQzO1x0XHRcdC5yZWdpc3Rlcl93cml0ZSA9IGF4X2VlcHJvbV9yZWdpc3Rlcl93cml0ZSxcbiYjNDM7XHRcdFx0LndpZHRoID0gUENJX0VFUFJPTV9XSURUSF85M0M1NixcbiYjNDM7XHRcdH07XG4gXG4gXHRcdGVlcHJvbV85M2N4Nl9tdWx0aXJlYWQoXHUwMDI2ZWVwcm9tLCAwLFxuIFx0XHRcdFx0ICAgICAgIChfX2xlMTYgX19mb3JjZSAqKW1hY19hZGRyLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDEzOjAwPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjhtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbGVnYWN5IGF4ODg3OTYgcGxhdGZvcm0gZHJpdmVyLCB3aGljaCBpcyBvbmx5IHJlZ2lzdGVyZWQgYnkgc3BlY2lmaWMgaGFyZHdhcmUgYm9hcmQgY29kZSAoU3VwZXJIIEhpZ2hsYW5kZXIgYW5kIEFtaWdhIFpvcnJvKS4gSXQgY2Fubm90IGJlIHByb2JlZCBvciBleGVjdXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSB1c2VkIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDYzOWZmNzgwNDA1NmE0Y2ZjNjIzZmQ3MjIyMzgxOTE5NzllYWFlOTEKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU2F0IEp1bCAyNSAxMzowMDo1NiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMKaW5kZXggZTE2OTVkMGZiZDhiYjAuLjVlZTFmYmFmZGNmY2RmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYwpAQCAtNzIyLDEyICYjNDM7NzIyLDEyIEBAIHN0YXRpYyBpbnQgYXhfaW5pdF9kZXYoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKICNpZmRlZiBDT05GSUdfQVg4ODc5Nl85M0NYNgogCWlmIChheC0mZ3Q7cGxhdC0mZ3Q7ZmxhZ3MgJmFtcDsgQVhGTEdfSEFTXzkzQ1g2KSB7CiAJCXVuc2lnbmVkIGNoYXIgbWFjX2FkZHJbRVRIX0FMRU5dOwotCQlzdHJ1Y3QgZWVwcm9tXzkzY3g2IGVlcHJvbTsKLQotCQllZXByb20uZGF0YSA9IGVpX2xvY2FsOwotCQllZXByb20ucmVnaXN0ZXJfcmVhZCA9IGF4X2VlcHJvbV9yZWdpc3Rlcl9yZWFkOwotCQllZXByb20ucmVnaXN0ZXJfd3JpdGUgPSBheF9lZXByb21fcmVnaXN0ZXJfd3JpdGU7Ci0JCWVlcHJvbS53aWR0aCA9IFBDSV9FRVBST01fV0lEVEhfOTNDNTY7CiYjNDM7CQlzdHJ1Y3QgZWVwcm9tXzkzY3g2IGVlcHJvbSA9IHsKJiM0MzsJCQkuZGF0YSA9IGVpX2xvY2FsLAomIzQzOwkJCS5yZWdpc3Rlcl9yZWFkID0gYXhfZWVwcm9tX3JlZ2lzdGVyX3JlYWQsCiYjNDM7CQkJLnJlZ2lzdGVyX3dyaXRlID0gYXhfZWVwcm9tX3JlZ2lzdGVyX3dyaXRlLAomIzQzOwkJCS53aWR0aCA9IFBDSV9FRVBST01fV0lEVEhfOTNDNTYsCiYjNDM7CQl9OwogCiAJCWVlcHJvbV85M2N4Nl9tdWx0aXJlYWQoJmFtcDtlZXByb20sIDAsCiAJCQkJICAgICAgIChfX2xlMTYgX19mb3JjZSAqKW1hY19hZGRyLAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAxMzowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjYwCgkJCQkJCQlvdXRwdXQ6IDI0CgkJCQkJCQl0aG91Z2h0czogMTE3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlJlZmFjdG9yaW5nIGEgRHJpdmVyIEluaXRpYWxpemF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmNgLiBJdCYjMzk7cyBhIHNtYWxsIGNoYW5nZSwgYWZmZWN0aW5nIHRoZSBgYXhfaW5pdF9kZXZgIGZ1bmN0aW9uLiBUaGUgY29yZSBvZiB0aGUgbW9kaWZpY2F0aW9uIGlzIGhvdyB0aGUgYHN0cnVjdCBlZXByb21fOTNjeDYgZWVwcm9tYCBpcyBpbml0aWFsaXplZC4gSW5zdGVhZCBvZiB0aGUgdXN1YWwgZmllbGQtYnktZmllbGQgYXNzaWdubWVudCwgdGhleSYjMzk7dmUgdXNlZCBhIGRlc2lnbmF0ZWQgaW5pdGlhbGl6ZXIuIEZyb20gYSBmdW5jdGlvbmFsIHBlcnNwZWN0aXZlLCB0aGlzIGlzIHB1cmVseSBzdHlsaXN0aWMg4oCTIGEgcmVmYWN0b3JpbmcuIE5vIHJlYWwgY29kZSBiZWhhdmlvciBjaGFuZ2UgaGVyZSwganVzdCBjbGVhbmluZyB0aGluZ3MgdXAuCgpCdXQgd2FpdCBhIG1pbnV0ZeKApiBkb2VzIHRoaXMgZGVzaWduYXRlZCBpbml0aWFsaXphdGlvbiBpbXBsaWNpdGx5IHplcm8gb3V0IHRoZSByZW1haW5pbmcgZmllbGRzIG9mIHRoZSBzdHJ1Y3Q/IFRoYXQmIzM5O3MgYSBzdWJ0bGUgYnV0IHBvdGVudGlhbGx5IGltcG9ydGFudCBkZXRhaWwuIEkmIzM5O2QgYmV0dGVyIGRvdWJsZS1jaGVjayB0aGUgZGVmaW5pdGlvbiBvZiBgc3RydWN0IGVlcHJvbV85M2N4NmAgaXRzZWxmLiBOZWVkIHRvIGJlIGNlcnRhaW4gdGhlcmUgYXJlIG5vIHVuaW50ZW5kZWQgc2lkZSBlZmZlY3RzLiBKdXN0IGJlY2F1c2UgaXQmIzM5O3MgYSByZWZhY3RvcmluZyBkb2VzbiYjMzk7dCBtZWFuIGl0IGlzIHByb2JsZW0tZnJlZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAxMzowMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzdHJ1Y3QgZWVwcm9tXzkzY3g2IFxceyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL2xpbnV4L2VlcHJvbV85M2N4Ni5oLTQ4LSAqL1xuaW5jbHVkZS9saW51eC9lZXByb21fOTNjeDYuaDo0OTpzdHJ1Y3QgZWVwcm9tXzkzY3g2IHtcbmluY2x1ZGUvbGludXgvZWVwcm9tXzkzY3g2LmgtNTAtXHR2b2lkICpkYXRhO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDEzOjAxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2OTUKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiA5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIEkgbmVlZCB0byBnZXQgYSBjb21wbGV0ZSB1bmRlcnN0YW5kaW5nIG9mIHRoaXMgc3RydWN0LCBzbyBteSBmaXJzdCB0aG91Z2h0IGlzOgoKKipHcmFiYmluZyB0aGUgV2hvbGUgUGljdHVyZTogTGV0JiMzOTtzIFNlZSB0aGUgRnVsbCBTdHJ1Y3QgRGVmaW5pdGlvbioqCgpJIGtub3cgSSBjYW4mIzM5O3QgcmVhbGx5IGFuYWx5emUgdGhpcyBlZmZlY3RpdmVseSB3aXRob3V0IHRoZSBjb21wbGV0ZSBjb250ZXh0LiBVbmRlcnN0YW5kaW5nIGV2ZXJ5IG1lbWJlciwgdGhlaXIgZGF0YSB0eXBlcywgYW5kIGFueSBhc3NvY2lhdGVkIGF0dHJpYnV0ZXMgaXMgYWJzb2x1dGVseSBjcnVjaWFsIHRvIGZvcm1pbmcgYSBzb3VuZCBvcGluaW9uIG9yIHVuZGVyc3RhbmRpbmcgaXRzIHB1cnBvc2UuIEl0JiMzOTtzIHRoZSBibHVlcHJpbnQsIHRoZSBmb3VuZGF0aW9uLiBJIG5lZWQgdG8gc2VlIHRoZSB3aG9sZSBkZWZpbml0aW9uIGJlZm9yZSBJIGNhbiBtYWtlIGFueSBtZWFuaW5nZnVsIGp1ZGdlbWVudHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMTM6MDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtpbmNsdWRlL2xpbnV4L2VlcHJvbV85M2N4Ni5oJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogNDksCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICA0OTpcdHN0cnVjdCBlZXByb21fOTNjeDYge1xuICA1MDpcdFx0dm9pZCAqZGF0YTtcbiAgNTE6XHRcbiAgNTI6XHRcdHZvaWQgKCpyZWdpc3Rlcl9yZWFkKShzdHJ1Y3QgZWVwcm9tXzkzY3g2ICplZXByb20pO1xuICA1MzpcdFx0dm9pZCAoKnJlZ2lzdGVyX3dyaXRlKShzdHJ1Y3QgZWVwcm9tXzkzY3g2ICplZXByb20pO1xuICA1NDpcdFxuICA1NTpcdFx0aW50IHdpZHRoO1xuICA1NjpcdFx0dW5zaWduZWQgaW50IHF1aXJrcztcbiAgNTc6XHQvKiBTb21lIEVFUFJPTXMgcmVxdWlyZSBhbiBleHRyYSBjbG9jayBjeWNsZSBiZWZvcmUgcmVhZGluZyAqL1xuICA1ODpcdCNkZWZpbmUgUENJX0VFUFJPTV9RVUlSS19FWFRSQV9SRUFEX0NZQ0xFXHRCSVQoMClcbiAgNTk6XHRcbiAgNjA6XHRcdGNoYXIgZHJpdmVfZGF0YTtcbiAgNjE6XHRcdGNoYXIgcmVnX2RhdGFfaW47XG4gIDYyOlx0XHRjaGFyIHJlZ19kYXRhX291dDtcbiAgNjM6XHRcdGNoYXIgcmVnX2RhdGFfY2xvY2s7XG4gIDY0Olx0XHRjaGFyIHJlZ19jaGlwX3NlbGVjdDtcbiAgNjU6XHR9O1xuICA2NjpcdFxuICA2NzpcdGV4dGVybiB2b2lkIGVlcHJvbV85M2N4Nl9yZWFkKHN0cnVjdCBlZXByb21fOTNjeDYgKmVlcHJvbSxcbiAgNjg6XHRcdGNvbnN0IHU4IHdvcmQsIHUxNiAqZGF0YSk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMTM6MDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzE1MAoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDExNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbml0aWFsIFRob3VnaHRzIG9uIFN0cnVjdCBJbml0aWFsaXphdGlvbioqCgpPa2F5LCBzbyB0aGUgZGVzaWduYXRlZCBpbml0aWFsaXplciBpcyBnb2luZyB0byB0YWtlIGNhcmUgb2YgemVyb2luZyBvdXQgYWxsIHRob3NlIGV4dHJhIGZpZWxkcyBJIHdhcyB3b3JyaWVkIGFib3V0OiBgcXVpcmtzYCwgYGRyaXZlX2RhdGFgLCBgcmVnX2RhdGFfaW5gLCBgcmVnX2RhdGFfb3V0YCwgYHJlZ19kYXRhX2Nsb2NrYCwgYW5kIGByZWdfY2hpcF9zZWxlY3RgLiBHb29kLCBnb29kLiBCZWZvcmUsIHRoZXkgd2VyZSBqdXN0IGhhbmdpbmcgb3V0LCB1bmluaXRpYWxpemVkLiBUaGF0IHdhcyBidWdnaW5nIG1lIGEgYml0LgoKQnV0IHdhaXQgYSBzZWNvbmQuLi5kb2VzIGBlZXByb21fOTNjeDZfbXVsdGlyZWFkYCBldmVuICp1c2UqIHRob3NlIGZpZWxkcz8gSXQgdGFrZXMgYSByZWZlcmVuY2UgdG8gdGhlIGBlZXByb21gIHN0cnVjdCBhcyBhbiBhcmd1bWVudCwgYCZhbXA7ZWVwcm9tYC4gSSBuZWVkIHRvIGJlIGFic29sdXRlbHkgc3VyZS4gTGV0IG1lIHF1aWNrbHkgZG91YmxlLWNoZWNrIHRoZSBpbXBsZW1lbnRhdGlvbnMgb2YgYGVlcHJvbV85M2N4Nl9tdWx0aXJlYWRgIGFuZCBhbHNvIGBlZXByb21fOTNjeDZfcmVhZGAuIEkgY2FuJiMzOTt0IGxlYXZlIHRoaXMgdG8gY2hhbmNlLCBlc3BlY2lhbGx5IHdoZW4gd29ya2luZyB3aXRoIEVFUFJPTSBpbnRlcmFjdGlvbnMuIEdvdHRhIGNvbmZpcm0gd2hhdCBwYXJ0cyBvZiB0aGUgc3RydWN0IGFyZSBhY3R1YWxseSBiZWluZyBhY2Nlc3NlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAxMzowMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2b2lkIGVlcHJvbV85M2N4Nl9tdWx0aXJlYWQmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9taXNjL2VlcHJvbS9lZXByb21fOTNjeDYuYz0yMDU9RVhQT1JUX1NZTUJPTF9HUEwoZWVwcm9tXzkzY3g2X3JlYWQpO1xuLS1cbmRyaXZlcnMvbWlzYy9lZXByb20vZWVwcm9tXzkzY3g2LmMtMjE5LSAqL1xuZHJpdmVycy9taXNjL2VlcHJvbS9lZXByb21fOTNjeDYuYzoyMjA6dm9pZCBlZXByb21fOTNjeDZfbXVsdGlyZWFkKHN0cnVjdCBlZXByb21fOTNjeDYgKmVlcHJvbSwgY29uc3QgdTggd29yZCxcbmRyaXZlcnMvbWlzYy9lZXByb20vZWVwcm9tXzkzY3g2LmMtMjIxLVx0X19sZTE2ICpkYXRhLCBjb25zdCB1MTYgd29yZHMpXG4tLVxuZHJpdmVycy9taXNjL2VlcHJvbS9lZXByb21fOTNjeDYuYz0yNzc9RVhQT1JUX1NZTUJPTF9HUEwoZWVwcm9tXzkzY3g2X3JlYWRiKTtcbi0tXG5kcml2ZXJzL21pc2MvZWVwcm9tL2VlcHJvbV85M2N4Ni5jLTI4OC0gKi9cbmRyaXZlcnMvbWlzYy9lZXByb20vZWVwcm9tXzkzY3g2LmM6Mjg5OnZvaWQgZWVwcm9tXzkzY3g2X211bHRpcmVhZGIoc3RydWN0IGVlcHJvbV85M2N4NiAqZWVwcm9tLCBjb25zdCB1OCBieXRlLFxuZHJpdmVycy9taXNjL2VlcHJvbS9lZXByb21fOTNjeDYuYy0yOTAtXHR1OCAqZGF0YSwgY29uc3QgdTE2IGJ5dGVzKVxuLS1cbmluY2x1ZGUvbGludXgvZWVwcm9tXzkzY3g2Lmg9Njc9ZXh0ZXJuIHZvaWQgZWVwcm9tXzkzY3g2X3JlYWQoc3RydWN0IGVlcHJvbV85M2N4NiAqZWVwcm9tLFxuaW5jbHVkZS9saW51eC9lZXByb21fOTNjeDYuaC02OC1cdGNvbnN0IHU4IHdvcmQsIHUxNiAqZGF0YSk7XG5pbmNsdWRlL2xpbnV4L2VlcHJvbV85M2N4Ni5oOjY5OmV4dGVybiB2b2lkIGVlcHJvbV85M2N4Nl9tdWx0aXJlYWQoc3RydWN0IGVlcHJvbV85M2N4NiAqZWVwcm9tLFxuaW5jbHVkZS9saW51eC9lZXByb21fOTNjeDYuaC03MC1cdGNvbnN0IHU4IHdvcmQsIF9fbGUxNiAqZGF0YSwgY29uc3QgdTE2IHdvcmRzKTtcbmluY2x1ZGUvbGludXgvZWVwcm9tXzkzY3g2Lmg9NzE9ZXh0ZXJuIHZvaWQgZWVwcm9tXzkzY3g2X3JlYWRiKHN0cnVjdCBlZXByb21fOTNjeDYgKmVlcHJvbSxcbmluY2x1ZGUvbGludXgvZWVwcm9tXzkzY3g2LmgtNzItXHRjb25zdCB1OCBieXRlLCB1OCAqZGF0YSk7XG5pbmNsdWRlL2xpbnV4L2VlcHJvbV85M2N4Ni5oOjczOmV4dGVybiB2b2lkIGVlcHJvbV85M2N4Nl9tdWx0aXJlYWRiKHN0cnVjdCBlZXByb21fOTNjeDYgKmVlcHJvbSxcbmluY2x1ZGUvbGludXgvZWVwcm9tXzkzY3g2LmgtNzQtXHRjb25zdCB1OCBieXRlLCB1OCAqZGF0YSwgY29uc3QgdTE2IGJ5dGVzKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAxMzowMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MTQxCgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMjkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhlc2UgZnVuY3Rpb25zLiBIZXJlJiMzOTtzIHdoYXQgSSYjMzk7bSB0aGlua2luZyBhcyBJIHByZXBhcmUgdG8gZXhhbWluZSBgZWVwcm9tXzkzY3g2X211bHRpcmVhZGAgYW5kIGBlZXByb21fOTNjeDZfcmVhZGA6CgoqKkRpc3NlY3RpbmcgRUVQUk9NIFJlYWQgRnVuY3Rpb25zKioKCkFscmlnaHQsIEkmIzM5O20gZXhwZWN0aW5nIHNvbWUgc3RhbmRhcmQgRUVQUk9NIGludGVyYWN0aW9uIHJvdXRpbmVzIGhlcmUsIHNwZWNpZmljYWxseSB0YWlsb3JlZCBmb3IgdGhlIDkzQ3h4IGZhbWlseS4gU2luY2UgYG11bHRpcmVhZGAgaXMgaW4gdGhlIG5hbWUsIEkmIzM5O20gYW50aWNpcGF0aW5nIHRoaXMgb25lIHdpbGwgaGFuZGxlIHJlYWRpbmcgbXVsdGlwbGUgYnl0ZXMgZnJvbSB0aGUgRUVQUk9NIGluIGEgc2luZ2xlIG9wZXJhdGlvbi4gVGhpcyBsaWtlbHkgd2lsbCBpbnZvbHZlIG9wdGltaXphdGlvbiBmb3Igc3BlZWQgYnkgbWluaW1pemluZyB0aGUgb3ZlcmhlYWQgb2YgcmVwZWF0ZWQgYWRkcmVzcyBzZXR1cCBvciBvdGhlciBjb21tdW5pY2F0aW9uIHN0ZXBzLiBJJiMzOTtsbCBuZWVkIHRvIGxvb2sgY2xvc2VseSBhdCBob3cgdGhlIGNoaXAgc2VsZWN0IChDUykgYW5kIGNsb2NrIChDTEspIGxpbmVzIGFyZSBtYW5hZ2VkLCBlc3BlY2lhbGx5IGlmIGl0JiMzOTtzIHVzaW5nIGEgU1BJLWxpa2UgcHJvdG9jb2wgb3Igc29tZXRoaW5nIG1vcmUgYmVzcG9rZS4KClRoZW4sIHRoZXJlJiMzOTtzIGBlZXByb21fOTNjeDZfcmVhZGAuIFRoaXMgb25lLCBwcm9iYWJseSBmb3IgYSBzaW5nbGUgYnl0ZSwgbWlnaHQgYmUgYSBzaW1wbGVyIGltcGxlbWVudGF0aW9uLCBwb3RlbnRpYWxseSBzZXJ2aW5nIGFzIHRoZSBidWlsZGluZyBibG9jayBmb3IgdGhlIGBtdWx0aXJlYWRgIGZ1bmN0aW9uIG9yIHVzZWQgaW4gc2NlbmFyaW9zIHdoZXJlIHJlYWRpbmcgYSBzaW5nbGUgdmFsdWUgaXMgbW9yZSBhcHByb3ByaWF0ZS4gSSYjMzk7bGwgYmUgbG9va2luZyB0byBjb21wYXJlIHRoZWlyIGltcGxlbWVudGF0aW9ucywgcGFydGljdWxhcmx5IHRvIHNlZSBpZiBhbnkgbG93LWxldmVsIGhhcmR3YXJlIGFjY2VzcyBpcyBhYnN0cmFjdGVkIGluIGVpdGhlciBmdW5jdGlvbiwgb3IgaWYgaXQmIzM5O3MgYWxsIGhhbmRsZWQgaW5saW5lLiBBcmUgdGhlcmUgYW55IGVycm9yIGNoZWNrcyBwcmVzZW50PyBMaWtlLCBjaGVja2luZyBmb3IgYSB2YWxpZCBhZGRyZXNzIGlucHV0PyBBcmUgdGhlcmUgYW55IG9wdGltaXphdGlvbnMgdGhhdCBtaWdodCBsZWFkIHRvIHBvdGVudGlhbCBpc3N1ZXMgaW4gY2VydGFpbiBzY2VuYXJpb3MgKGxpa2UgdGltaW5nIGNvbnN0cmFpbnRzKT8KCkkmIzM5O20gaG9waW5nIHRvIHNlZSB3ZWxsLWNvbW1lbnRlZCBjb2RlLCBnaXZlbiB0aGUgbmF0dXJlIG9mIEVFUFJPTSBpbnRlcmFjdGlvbiwgd2hpY2ggb2Z0ZW4gbmVlZHMgdG8gYmUgcHJlY2lzZS4gSSYjMzk7bGwgYmUgZm9jdXNlZCBvbiBlZmZpY2llbmN5LCBlcnJvciBoYW5kbGluZywgYW5kIHRoZSBvdmVyYWxsIGRlc2lnbiBjaG9pY2VzIG1hZGUgdG8gb3B0aW1pemUgdGhlIHJlYWQgcHJvY2VzcyBmb3IgdGhlc2Ugc3BlY2lmaWMgY2hpcHMuIFRoaXMgaXMgZ29pbmcgdG8gYmUgaW50ZXJlc3RpbmchCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDEzOjAxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9taXNjL2VlcHJvbS9lZXByb21fOTNjeDYuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDE0MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA4MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgMTQwOlx0XHQgKiBTdGFydCByZWFkaW5nIGFsbCBiaXRzLlxuIDE0MTpcdFx0ICovXG4gMTQyOlx0XHRmb3IgKGkgPSBjb3VudDsgaSBcdTAwM2UgMDsgaS0tKSB7XG4gMTQzOlx0XHRcdGVlcHJvbV85M2N4Nl9wdWxzZV9oaWdoKGVlcHJvbSk7XG4gMTQ0Olx0XG4gMTQ1Olx0XHRcdGVlcHJvbS1cdTAwM2VyZWdpc3Rlcl9yZWFkKGVlcHJvbSk7XG4gMTQ2Olx0XG4gMTQ3Olx0XHRcdC8qXG4gMTQ4Olx0XHRcdCAqIENsZWFyIGRhdGFfaW4gZmxhZy5cbiAxNDk6XHRcdFx0ICovXG4gMTUwOlx0XHRcdGVlcHJvbS1cdTAwM2VyZWdfZGF0YV9pbiA9IDA7XG4gMTUxOlx0XG4gMTUyOlx0XHRcdC8qXG4gMTUzOlx0XHRcdCAqIFJlYWQgaWYgdGhlIGJpdCBoYXMgYmVlbiBzZXQuXG4gMTU0Olx0XHRcdCAqL1xuIDE1NTpcdFx0XHRpZiAoZWVwcm9tLVx1MDAzZXJlZ19kYXRhX291dClcbiAxNTY6XHRcdFx0XHRidWYgfD0gQklUKGkgLSAxKTtcbiAxNTc6XHRcbiAxNTg6XHRcdFx0ZWVwcm9tXzkzY3g2X3B1bHNlX2xvdyhlZXByb20pO1xuIDE1OTpcdFx0fVxuIDE2MDpcdFxuIDE2MTpcdFx0KmRhdGEgPSBidWY7XG4gMTYyOlx0fVxuIDE2MzpcdFxuIDE2NDpcdC8qKlxuIDE2NTpcdCAqIGVlcHJvbV85M2N4Nl9yZWFkIC0gUmVhZCBhIHdvcmQgZnJvbSBlZXByb21cbiAxNjY6XHQgKiBAZWVwcm9tOiBQb2ludGVyIHRvIGVlcHJvbSBzdHJ1Y3R1cmVcbiAxNjc6XHQgKiBAd29yZDogV29yZCBpbmRleCBmcm9tIHdoZXJlIHdlIHNob3VsZCBzdGFydCByZWFkaW5nXG4gMTY4Olx0ICogQGRhdGE6IHRhcmdldCBwb2ludGVyIHdoZXJlIHRoZSBpbmZvcm1hdGlvbiB3aWxsIGhhdmUgdG8gYmUgc3RvcmVkXG4gMTY5Olx0ICpcbiAxNzA6XHQgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgcmVhZCB0aGUgZWVwcm9tIGRhdGEgYXMgaG9zdC1lbmRpYW4gd29yZFxuIDE3MTpcdCAqIGludG8gdGhlIGdpdmVuIGRhdGEgcG9pbnRlci5cbiAxNzI6XHQgKi9cbiAxNzM6XHR2b2lkIGVlcHJvbV85M2N4Nl9yZWFkKHN0cnVjdCBlZXByb21fOTNjeDYgKmVlcHJvbSwgY29uc3QgdTggd29yZCxcbiAxNzQ6XHRcdHUxNiAqZGF0YSlcbiAxNzU6XHR7XG4gMTc2Olx0XHR1MTYgY29tbWFuZDtcbiAxNzc6XHRcbiAxNzg6XHRcdC8qXG4gMTc5Olx0XHQgKiBJbml0aWFsaXplIHRoZSBlZXByb20gcmVnaXN0ZXJcbiAxODA6XHRcdCAqL1xuIDE4MTpcdFx0ZWVwcm9tXzkzY3g2X3N0YXJ0dXAoZWVwcm9tKTtcbiAxODI6XHRcbiAxODM6XHRcdC8qXG4gMTg0Olx0XHQgKiBTZWxlY3QgdGhlIHJlYWQgb3Bjb2RlIGFuZCB0aGUgd29yZCB0byBiZSByZWFkLlxuIDE4NTpcdFx0ICovXG4gMTg2Olx0XHRjb21tYW5kID0gKFBDSV9FRVBST01fUkVBRF9PUENPREUgXHUwMDNjXHUwMDNjIGVlcHJvbS1cdTAwM2V3aWR0aCkgfCB3b3JkO1xuIDE4NzpcdFx0ZWVwcm9tXzkzY3g2X3dyaXRlX2JpdHMoZWVwcm9tLCBjb21tYW5kLFxuIDE4ODpcdFx0XHRQQ0lfRUVQUk9NX1dJRFRIX09QQ09ERSAmIzQzOyBlZXByb20tXHUwMDNld2lkdGgpO1xuIDE4OTpcdFxuIDE5MDpcdFx0aWYgKGhhc19xdWlya19leHRyYV9yZWFkX2N5Y2xlKGVlcHJvbSkpIHtcbiAxOTE6XHRcdFx0ZWVwcm9tXzkzY3g2X3B1bHNlX2hpZ2goZWVwcm9tKTtcbiAxOTI6XHRcdFx0ZWVwcm9tXzkzY3g2X3B1bHNlX2xvdyhlZXByb20pO1xuIDE5MzpcdFx0fVxuIDE5NDpcdFxuIDE5NTpcdFx0LypcbiAxOTY6XHRcdCAqIFJlYWQgdGhlIHJlcXVlc3RlZCAxNiBiaXRzLlxuIDE5NzpcdFx0ICovXG4gMTk4Olx0XHRlZXByb21fOTNjeDZfcmVhZF9iaXRzKGVlcHJvbSwgZGF0YSwgMTYpO1xuIDE5OTpcdFxuIDIwMDpcdFx0LypcbiAyMDE6XHRcdCAqIENsZWFudXAgZWVwcm9tIHJlZ2lzdGVyLlxuIDIwMjpcdFx0ICovXG4gMjAzOlx0XHRlZXByb21fOTNjeDZfY2xlYW51cChlZXByb20pO1xuIDIwNDpcdH1cbiAyMDU6XHRFWFBPUlRfU1lNQk9MX0dQTChlZXByb21fOTNjeDZfcmVhZCk7XG4gMjA2Olx0XG4gMjA3Olx0LyoqXG4gMjA4Olx0ICogZWVwcm9tXzkzY3g2X211bHRpcmVhZCAtIFJlYWQgbXVsdGlwbGUgd29yZHMgZnJvbSBlZXByb21cbiAyMDk6XHQgKiBAZWVwcm9tOiBQb2ludGVyIHRvIGVlcHJvbSBzdHJ1Y3R1cmVcbiAyMTA6XHQgKiBAd29yZDogV29yZCBpbmRleCBmcm9tIHdoZXJlIHdlIHNob3VsZCBzdGFydCByZWFkaW5nXG4gMjExOlx0ICogQGRhdGE6IHRhcmdldCBwb2ludGVyIHdoZXJlIHRoZSBpbmZvcm1hdGlvbiB3aWxsIGhhdmUgdG8gYmUgc3RvcmVkXG4gMjEyOlx0ICogQHdvcmRzOiBOdW1iZXIgb2Ygd29yZHMgdGhhdCBzaG91bGQgYmUgcmVhZC5cbiAyMTM6XHQgKlxuIDIxNDpcdCAqIFRoaXMgZnVuY3Rpb24gd2lsbCByZWFkIGFsbCByZXF1ZXN0ZWQgd29yZHMgZnJvbSB0aGUgZWVwcm9tLFxuIDIxNTpcdCAqIHRoaXMgaXMgZG9uZSBieSBjYWxsaW5nIGVlcHJvbV85M2N4Nl9yZWFkKCkgbXVsdGlwbGUgdGltZXMuXG4gMjE2Olx0ICogQnV0IHdpdGggdGhlIGFkZGl0aW9uYWwgY2hhbmdlIHRoYXQgd2hpbGUgdGhlIGVlcHJvbV85M2N4Nl9yZWFkXG4gMjE3Olx0ICogd2lsbCByZXR1cm4gaG9zdCBvcmRlcmVkIGJ5dGVzLCB0aGlzIG1ldGhvZCB3aWxsIHJldHVybiBsaXR0bGVcbiAyMTg6XHQgKiBlbmRpYW4gd29yZHMuXG4gMjE5Olx0ICovXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDEzOjAxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU3NDgKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiAyODkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRml4aW5nIGEgU3VidGxlIEVFUFJPTSBJbml0aWFsaXphdGlvbiBCdWcqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYGVlcHJvbV85M2N4Nl9yZWFkYCBmdW5jdGlvbiwgYW5kIGl0IGNhbGxzIGBlZXByb21fOTNjeDZfc3RhcnR1cGAuICBSaWdodCwgdGhhdCBzZXRzIGFsbCB0aGUgY29udHJvbCByZWdpc3RlcnMgZm9yIHRoZSBFRVBST006IGBkYXRhX2luYCwgYGRhdGFfb3V0YCwgYGNsb2NrYCwgYGNoaXBfc2VsZWN0YCwgYW5kIGBkcml2ZV9kYXRhYC4gRXZlcnl0aGluZyBzZWVtcyBub3JtYWwgdGhlcmUuCgpCdXQgdGhlbiwgSSBzZWUgdGhpcyBgaGFzX3F1aXJrX2V4dHJhX3JlYWRfY3ljbGUoZWVwcm9tKWAgY2hlY2suICBJdCYjMzk7cyBjaGVja2luZyB0aGUgYGVlcHJvbS0mZ3Q7cXVpcmtzYCBmaWVsZC4gSG1tLi4uIGlmIGBlZXByb20tJmd0O3F1aXJrc2Agd2FzbiYjMzk7dCBpbml0aWFsaXplZCwgaXQgY291bGQgY29udGFpbiBnYXJiYWdlIHZhbHVlcy4gVGhhdCBjb3VsZCBsZWFkIGBoYXNfcXVpcmtfZXh0cmFfcmVhZF9jeWNsZWAgdG8gcmV0dXJuIHRydWUgd2hlbiBpdCBzaG91bGRuJiMzOTt0LiBBbmQgSSBiZXQgaXQgaGFzIQoKQWgsIHJpZ2h0LCBub3cgSSByZW1lbWJlci4gVGhlIGBzdHJ1Y3QgZWVwcm9tXzkzY3g2IGVlcHJvbTtgIGlzIGRlY2xhcmVkIG9uIHRoZSBzdGFjaywgd2l0aGluIHRoZSBgYXhfaW5pdF9kZXZgIGZ1bmN0aW9uLiBUaGUgY29tcGlsZXIgd29uJiMzOTt0IGluaXRpYWxpemUgaXQsIHNvIGl0JiMzOTtsbCBoYXZlIHdoYXRldmVyIGdhcmJhZ2Ugd2FzIGFscmVhZHkgdGhlcmUhIEFuZCB0aGUgYHF1aXJrc2AgZmllbGQgd2l0aGluIGBlZXByb21gIHdvdWxkIGhhdmUgYmVlbiB1bmluaXRpYWxpemVkLgoKVGhlIHNvbHV0aW9uIGlzIHNpbXBsZS4gVXNpbmcgYSBkZXNpZ25hdGVkIGluaXRpYWxpemVyLCBJIGNhbiBleHBsaWNpdGx5IHplcm8taW5pdGlhbGl6ZSBgZWVwcm9tLnF1aXJrc2AuIFRoaXMgZ3VhcmFudGVlcyB0aGF0IGBxdWlya3NgIHdpbGwgc3RhcnQgYXQgemVybywgZml4aW5nIHRoaXMgcG90ZW50aWFsIGJ1Zy4gVGhpcyBpcyBncmVhdCwgbm8gbW9yZSByYW5kb20gcmVhZHMuCgpOb3csIEkgd29uZGVyIGlmIHRoZSBgYXg4ODc5NmAgZHJpdmVyLCB0aGUgb25lIHRoYXQgdXNlcyB0aGlzIGNvZGUsIGlzIGEgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBJdCYjMzk7cyBhbiBJU0EvcGxhdGZvcm0gZHJpdmVyLCBzbyBpdCBjb3VsZCBiZS4gTGV0IG1lIGNoZWNrIHRoZSBzb3VyY2UgY29kZSBpbiBgYXg4ODc5Ni5jYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMTM6MDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNTAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbiAgIDI6XHQvKiBkcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuY1xuICAgMzpcdCAqXG4gICA0Olx0ICogQ29weXJpZ2h0IDIwMDUsMjAwNyBTaW10ZWMgRWxlY3Ryb25pY3NcbiAgIDU6XHQgKlx0QmVuIERvb2tzIFx1MDAzY2JlbkBzaW10ZWMuY28udWtcdTAwM2VcbiAgIDY6XHQgKlxuICAgNzpcdCAqIEFzaXggQVg4ODc5NiAxMC8xMDAgRXRoZXJuZXQgY29udHJvbGxlciBzdXBwb3J0XG4gICA4Olx0ICpcdEJhc2VkIG9uIG5lLmMsIGJ5IERvbmFsZCBCZWNrZXIsIGV0LWFsLlxuICAgOTpcdCAqL1xuICAxMDpcdFxuICAxMTpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L21vZHVsZS5oXHUwMDNlXG4gIDEyOlx0I2luY2x1ZGUgXHUwMDNjbGludXgva2VybmVsLmhcdTAwM2VcbiAgMTM6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9lcnJuby5oXHUwMDNlXG4gIDE0Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvaXNhcG5wLmhcdTAwM2VcbiAgMTU6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9pbnRlcnJ1cHQuaFx1MDAzZVxuICAxNjpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L2lvLmhcdTAwM2VcbiAgMTc6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaFx1MDAzZVxuICAxODpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L2RlbGF5LmhcdTAwM2VcbiAgMTk6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC90aW1lci5oXHUwMDNlXG4gIDIwOlx0I2luY2x1ZGUgXHUwMDNjbGludXgvbmV0ZGV2aWNlLmhcdTAwM2VcbiAgMjE6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9ldGhlcmRldmljZS5oXHUwMDNlXG4gIDIyOlx0I2luY2x1ZGUgXHUwMDNjbGludXgvZXRodG9vbC5oXHUwMDNlXG4gIDIzOlx0I2luY2x1ZGUgXHUwMDNjbGludXgvbWRpby1iaXRiYW5nLmhcdTAwM2VcbiAgMjQ6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9waHkuaFx1MDAzZVxuICAyNTpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L2VlcHJvbV85M2N4Ni5oXHUwMDNlXG4gIDI2Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvc2xhYi5oXHUwMDNlXG4gIDI3Olx0XG4gIDI4Olx0I2luY2x1ZGUgXHUwMDNjbmV0L2F4ODg3OTYuaFx1MDAzZVxuICAyOTpcdFxuICAzMDpcdFxuICAzMTpcdC8qIFJlbmFtZSB0aGUgbGliODM5MC5jIGZ1bmN0aW9ucyB0byBzaG93IHRoYXQgdGhleSBhcmUgaW4gdGhpcyBkcml2ZXIgKi9cbiAgMzI6XHQjZGVmaW5lIF9fZWlfb3BlbiBheF9laV9vcGVuXG4gIDMzOlx0I2RlZmluZSBfX2VpX2Nsb3NlIGF4X2VpX2Nsb3NlXG4gIDM0Olx0I2RlZmluZSBfX2VpX3BvbGwgYXhfZWlfcG9sbFxuICAzNTpcdCNkZWZpbmUgX19laV9zdGFydF94bWl0IGF4X2VpX3N0YXJ0X3htaXRcbiAgMzY6XHQjZGVmaW5lIF9fZWlfdHhfdGltZW91dCBheF9laV90eF90aW1lb3V0XG4gIDM3Olx0I2RlZmluZSBfX2VpX2dldF9zdGF0cyBheF9laV9nZXRfc3RhdHNcbiAgMzg6XHQjZGVmaW5lIF9fZWlfc2V0X211bHRpY2FzdF9saXN0IGF4X2VpX3NldF9tdWx0aWNhc3RfbGlzdFxuICAzOTpcdCNkZWZpbmUgX19laV9pbnRlcnJ1cHQgYXhfZWlfaW50ZXJydXB0XG4gIDQwOlx0I2RlZmluZSBfX19fYWxsb2NfZWlfbmV0ZGV2IGF4X19hbGxvY19laV9uZXRkZXZcbiAgNDE6XHQjZGVmaW5lIF9fTlM4MzkwX2luaXQgYXhfTlM4MzkwX2luaXRcbiAgNDI6XHRcbiAgNDM6XHQvKiBmb3JjZSB1bnNpZ25lZCBsb25nIGJhY2sgdG8gJiMzOTt2b2lkIF9faW9tZW0gKiYjMzk7ICovXG4gIDQ0Olx0I2RlZmluZSBheF9jb252ZXJ0X2FkZHIoX2EpICgodm9pZCBfX2ZvcmNlIF9faW9tZW0gKikoX2EpKVxuICA0NTpcdFxuICA0NjpcdCNkZWZpbmUgZWlfaW5iKF9hKSByZWFkYihheF9jb252ZXJ0X2FkZHIoX2EpKVxuICA0NzpcdCNkZWZpbmUgZWlfb3V0YihfdiwgX2EpIHdyaXRlYihfdiwgYXhfY29udmVydF9hZGRyKF9hKSlcbiAgNDg6XHRcbiAgNDk6XHQjZGVmaW5lIGVpX2luYl9wKF9hKSBlaV9pbmIoX2EpXG4gIDUwOlx0I2RlZmluZSBlaV9vdXRiX3AoX3YsIF9hKSBlaV9vdXRiKF92LCBfYSlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMTM6MDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzMzMAoJCQkJCQkJb3V0cHV0OiAxOQoJCQkJCQkJdGhvdWdodHM6IDY3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQgbWUgYnJlYWsgdGhpcyBkb3duLgoKKipGdXp6aW5nIGEgUGxhdGZvcm0gRGV2aWNlIERyaXZlcioqCgpSaWdodCwgc28gdGhpcyBjb2RlIGlzIGRlZmluaXRlbHkgYSBwbGF0Zm9ybSBkZXZpY2UgZHJpdmVyLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgJiMzNDtDYW4gdGhpcyBiZSBmdXp6ZWQgZWZmZWN0aXZlbHk/JiMzNDsgVGhlIGFuc3dlciwgYXMgSSB1bmRlcnN0YW5kIGl0LCBpcyB5ZXMuIFdlIGNhbiBsZXZlcmFnZSB0b29scyBsaWtlIFN5emthbGxlci4gSXQgY2FuIGNyZWF0ZSBwbGF0Zm9ybSBkZXZpY2VzIGZvciB1cywgbGlrZWx5IHVzaW5nIGBzeXpfZGV2X2NyZWF0ZWAgb3Igc29tZXRoaW5nIGFuYWxvZ291cy4gSWYgdGhlIHRhcmdldCBwbGF0Zm9ybSBzdXBwb3J0cyBpbmplY3Rpb24sIGV2ZW4gYmV0dGVyLCB3ZSBoYXZlIG1vcmUgY29udHJvbC4KClRoZW4gSSBxdWlja2x5IHJlYWxpemVkLCBJIG5lZWQgdG8gY2hlY2sgaG93IHRoZSBwbGF0Zm9ybSBkZXZpY2UgaW50ZXJhY3RzIHdpdGggdGhlIHN5c3RlbS4gSSByZW1lbWJlciB0aGF0IGBheF9pbml0X2RldmAgZ2V0cyBjYWxsZWQgZnJvbSBgYXhfcHJvYmVgLiBPa2F5LCB0aGF0JiMzOTtzIHRoZSBpbml0aWFsaXphdGlvbiwgc28gSSBuZWVkIHRvIGZvY3VzIG9uIHdoYXQgaGFwcGVucyB3aXRoaW4gdGhvc2UgZnVuY3Rpb25zIHdoZW4gZGVzaWduaW5nIG15IGZ1enppbmcgYXBwcm9hY2guCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDEzOjAxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2F4X2luaXRfZGV2JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jPTY2MD1zdGF0aWMgdm9pZCBheF9pbml0aWFsX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBlaV9kZXZpY2UgKmVpX2xvY2FsKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTY3My0vKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM6Njc0OiAqIGF4X2luaXRfZGV2XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy02NzUtICpcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy02ODAtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYzo2ODE6c3RhdGljIGludCBheF9pbml0X2RldihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtNjgyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYz04NDQ9c3RhdGljIGludCBheF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTk0NC1cdC8qIGdvdCByZXNvdXJjZXMsIG5vdyBpbml0aWFsaXNlIGFuZCByZWdpc3RlciBkZXZpY2UgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjk0NTpcdHJldCA9IGF4X2luaXRfZGV2KGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy05NDYtXHRpZiAoIXJldClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMTM6MDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzk3NwoJCQkJCQkJb3V0cHV0OiAyMQoJCQkJCQkJdGhvdWdodHM6IDc1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLgoKKipJbml0aWFsIEFzc2Vzc21lbnQgb2YgYSBEcml2ZXIgUGF0Y2gqKgoKUmlnaHQsIHNvIGBheF9pbml0X2RldmAgaXMgY2FsbGVkIHdpdGhpbiB0aGUgcHJvYmUgZnVuY3Rpb24uIFRoYXQmIzM5O3MgYSBnb29kIHBsYWNlIHRvIHN0YXJ0LCBpdCYjMzk7cyB0aGUgaW5pdGlhbGl6YXRpb24gcGhhc2UuIFRoZSBwYXRjaCwgc3BlY2lmaWNhbGx5LCBpcyBhZGRyZXNzaW5nIGFuIHVuaW5pdGlhbGl6ZWQgc3RhY2sgdmFyaWFibGUuIE15IGluaXRpYWwgcmVhY3Rpb24gaXMsICp5ZXMqLCB0aGF0JiMzOTtzIHNvbWV0aGluZyB0byBwYXkgYXR0ZW50aW9uIHRvLiBVbmluaXRpYWxpemVkIHZhcmlhYmxlcyBhcmUgYSBjbGFzc2ljIHNvdXJjZSBvZiBwcm9ibGVtcywgYW5kIHRoZXkgY2FuIGxlYWQgdG8gc29tZSByZWFsbHkgbmFzdHksIGhhcmQtdG8tZGVidWcgYmVoYXZpb3IsIGVzcGVjaWFsbHkgaW4gYSBkcml2ZXIuCgpUaGUgbmV4dCBxdWVzdGlvbjogaXMgaXQgd29ydGggZnV6emluZyB0aGlzPyBBYnNvbHV0ZWx5LCBpbiB0aGlzIGNhc2UuIEZpeGluZyBhIGJ1ZyBpbiB0aGUgcHJvYmUgcGF0aCBvZiBhIGRyaXZlciBpcyBzaWduaWZpY2FudC4gSXQmIzM5O3MgYSBoaWdoLXZhbHVlIHRhcmdldCBmb3IgZnV6emluZyBiZWNhdXNlIGl0IGNhbiB1bmNvdmVyIGEgdmFyaWV0eSBvZiBtZW1vcnktcmVsYXRlZCBpc3N1ZXMsIHJhY2UgY29uZGl0aW9ucywgb3Igb3RoZXIgdW5leHBlY3RlZCBiZWhhdmlvcnMgdGhhdCBzdGVtIGZyb20gdW5pbml0aWFsaXplZCB2YXJpYWJsZXMuCgpBbHJpZ2h0LCBub3cgbGV0IG1lIGNoZWNrIHRoZSByZWxldmFudCBLY29uZmlnIG9wdGlvbnM6IGBBWDg4Nzk2XzkzQ1g2YCBhbmQgYEFYODg3OTZgLiBJIHdhbnQgdG8gdW5kZXJzdGFuZCB0aGUgY29uZmlndXJhdGlvbiBzcGFjZSBvZiB0aGUgZHJpdmVyIGFuZCBpdHMgZGVwZW5kZW5jaWVzLiBUaGlzIGluZm9ybWF0aW9uIHdpbGwgaW5mb3JtIG15IGZ1enppbmcgc3RyYXRlZ3kgYnkgaGVscGluZyBtZSBkZXRlcm1pbmUgd2hpY2ggYnVpbGQgY29uZmlndXJhdGlvbnMgYXJlIHRoZSBtb3N0IGltcG9ydGFudCBhbmQgaG93IHRoZSBuZXcgcGF0Y2ggd2lsbCBpbXBhY3QgZGlmZmVyZW50IHN5c3RlbXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDEzOjAxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBBWDg4Nzk2JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvS2NvbmZpZz0xOD1pZiBORVRfVkVORE9SXzgzOTBcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvS2NvbmZpZy0xOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvS2NvbmZpZzoyMDpjb25maWcgQVg4ODc5NlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9LY29uZmlnLTIxLVx0dHJpc3RhdGUgXCYjMzQ7QVNJWCBBWDg4Nzk2IE5FMjAwMCBjbG9uZSBzdXBwb3J0XCYjMzQ7IGlmICFaT1JST1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvS2NvbmZpZy0yOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvS2NvbmZpZzozMDpjb25maWcgQVg4ODc5Nl85M0NYNlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9LY29uZmlnLTMxLVx0Ym9vbCBcJiMzNDtBU0lYIEFYODg3OTYgZXh0ZXJuYWwgOTNDWDYgZWVwcm9tIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9waHkvS2NvbmZpZz0xNTI9c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L3BoeS9hcXVhbnRpYS9LY29uZmlnXCYjMzQ7XG5kcml2ZXJzL25ldC9waHkvS2NvbmZpZy0xNTMtXG5kcml2ZXJzL25ldC9waHkvS2NvbmZpZzoxNTQ6Y29uZmlnIEFYODg3OTZCX1BIWVxuZHJpdmVycy9uZXQvcGh5L0tjb25maWctMTU1LVx0dHJpc3RhdGUgXCYjMzQ7QXNpeCBQSFlzXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvcGh5L0tjb25maWctMTU5LVxuZHJpdmVycy9uZXQvcGh5L0tjb25maWc6MTYwOmNvbmZpZyBBWDg4Nzk2Ql9SVVNUX1BIWVxuZHJpdmVycy9uZXQvcGh5L0tjb25maWctMTYxLVx0Ym9vbCBcJiMzNDtSdXN0IHJlZmVyZW5jZSBkcml2ZXIgZm9yIEFzaXggUEhZc1wmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAxMzowMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4NzE4CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEZXBlbmRlbmN5IERlZXAgRGl2ZSoqCgpPa2F5LCB0aW1lIHRvIGdldCBncmFudWxhci4gVGhlIHRhc2sgaXMgY2xlYXI6IEkgbmVlZCB0byBkaXNzZWN0IHRoZSBkZXBlbmRlbmNpZXMgb2YgYEFYODg3OTZgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gaW1tZWRpYXRlbHkgZGl2ZSBpbnRvIHRoZSBtYW5pZmVzdCBmaWxlcywgb2YgY291cnNlLiBJJiMzOTtsbCBuZWVkIHRvIG1hcCBvdXQgdGhlIGVudGlyZSBkZXBlbmRlbmN5IGdyYXBoLCBmcm9tIGRpcmVjdCBkZXBlbmRlbmNpZXMgdG8gdHJhbnNpdGl2ZSBvbmVzLCBiZWNhdXNlIGhpZGRlbiBkZXBlbmRlbmNpZXMgYXJlIHRoZSBvbmVzIHRoYXQgdXN1YWxseSBiaXRlIHlvdSBsYXRlciwgeW91IGtub3c/IE15IGd1dCB0ZWxscyBtZSB0aGVyZSBtaWdodCBiZSBzb21lIGNvbXBsZXhpdGllcyB3aXRoIGl0cyBwYWNrYWdlIGZvcm1hdCwgc28gSSB3aWxsIHdhdGNoIGZvciBhbnl0aGluZyBvdXQgb2YgdGhlIG9yZGluYXJ5IHJpZ2h0IGF3YXkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGlmIHRoZXJlIGFyZSBhbnkgdmVyc2lvbiBjb25mbGljdHMgb3IgcG90ZW50aWFsIHNlY3VyaXR5IHZ1bG5lcmFiaWxpdGllcyBsdXJraW5nIHdpdGhpbiB0aGlzIGRlcGVuZGVuY3kgY2hhaW4uIFRoZSBtb3JlIEkgbGVhcm4gdXAgZnJvbnQsIHRoZSBiZXR0ZXIgbXkgdW5kZXJzdGFuZGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMTM6MDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxOCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgIDE4Olx0aWYgTkVUX1ZFTkRPUl84MzkwXG4gIDE5Olx0XG4gIDIwOlx0Y29uZmlnIEFYODg3OTZcbiAgMjE6XHRcdHRyaXN0YXRlIFwmIzM0O0FTSVggQVg4ODc5NiBORTIwMDAgY2xvbmUgc3VwcG9ydFwmIzM0OyBpZiAhWk9SUk9cbiAgMjI6XHRcdGRlcGVuZHMgb24gKEFSTSB8fCBNSVBTIHx8IFNVUEVSSCB8fCBaT1JSTyB8fCBDT01QSUxFX1RFU1QpXG4gIDIzOlx0XHRzZWxlY3QgQ1JDMzJcbiAgMjQ6XHRcdHNlbGVjdCBQSFlMSUJcbiAgMjU6XHRcdHNlbGVjdCBNRElPX0JJVEJBTkdcbiAgMjY6XHRcdGhlbHBcbiAgMjc6XHRcdCAgQVg4ODc5NiBkcml2ZXIsIHVzaW5nIHBsYXRmb3JtIGJ1cyB0byBwcm92aWRlXG4gIDI4Olx0XHQgIGNoaXAgZGV0ZWN0aW9uIGFuZCByZXNvdXJjZXNcbiAgMjk6XHRcbiAgMzA6XHRjb25maWcgQVg4ODc5Nl85M0NYNlxuICAzMTpcdFx0Ym9vbCBcJiMzNDtBU0lYIEFYODg3OTYgZXh0ZXJuYWwgOTNDWDYgZWVwcm9tIHN1cHBvcnRcJiMzNDtcbiAgMzI6XHRcdGRlcGVuZHMgb24gQVg4ODc5NlxuICAzMzpcdFx0c2VsZWN0IEVFUFJPTV85M0NYNlxuICAzNDpcdFx0aGVscFxuICAzNTpcdFx0ICBTZWxlY3QgdGhpcyBpZiB5b3VyIHBsYXRmb3JtIGNvbWVzIHdpdGggYW4gZXh0ZXJuYWwgOTNDWDYgZWVwcm9tLlxuICAzNjpcdFxuICAzNzpcdGNvbmZpZyBYU1VSRjEwMFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAxMzowMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5MjM2CgkJCQkJCQlvdXRwdXQ6IDIwCgkJCQkJCQl0aG91Z2h0czogMjg4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgRnV6emluZyBQb3RlbnRpYWwgb2YgdGhlIEFYODg3OTYgTmV0d29yayBEcml2ZXIgaW4gU3l6a2FsbGVyKioKCk9rYXksIHNvIEkmIzM5O20gZGlnZ2luZyBpbnRvIGhvdyB3ZSBjYW4gcG90ZW50aWFsbHkgZnV6eiB0aGUgYEFYODg3OTZgIG5ldHdvcmsgZHJpdmVyIHVzaW5nIFN5emthbGxlci4gSXQgbG9va3MgbGlrZSBgQVg4ODc5NmAgcmVsaWVzIG9uIGJvdGggYE5FVF9WRU5ET1JfODM5MGAgYW5kIGEgZmV3IGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBvcHRpb25zOiBgQVJNYCwgYE1JUFNgLCBgU1VQRVJIYCwgYFpPUlJPYCwgb3IgYENPTVBJTEVfVEVTVGAuIEdpdmVuIHRoYXQgU3l6a2FsbGVyIGlzIHJ1bm5pbmcgb24geDg2XzY0LCBgQ09NUElMRV9URVNUYCBzZWVtcyBuZWNlc3NhcnkgdG8gZXZlbiBjb21waWxlIHRoZSBkcml2ZXIsIGJ1dCB0aGUgcmVhbCBxdWVzdGlvbiBpcyB3aGV0aGVyIGl0IGNhbiBiZSBtZWFuaW5nZnVsbHkgJiMzNDtwcm9iZWQuJiMzNDsKCldhaXQgYSBtaW51dGUsIHRoZSBgYXg4ODc5NmAgZHJpdmVyIGlzIGFjdHVhbGx5IGEgKnBsYXRmb3JtKiBkcml2ZXIuIFRoYXQgY2hhbmdlcyB0aGluZ3MuIFBsYXRmb3JtIGRyaXZlcnMgYXJlIHR5cGljYWxseSBwcm9iZWQgaWYgYSBwbGF0Zm9ybSBkZXZpY2UgaXMgY3JlYXRlZCBpbiB0aGUgc3lzdGVtLiBJIHdhcyBpbml0aWFsbHkgdGhpbmtpbmcgYWJvdXQgYHN5el9kZXZfY3JlYXRlYCDigJMgdGhhdCBwc2V1ZG8tc3lzY2FsbCBtaWdodCBoYXZlIGJlZW4gdXNlZnVsIHRvIGNyZWF0ZSBhIGRldmljZSBvbiB0aGUgZmx5LCBidXQgSSByZW1lbWJlciB0aGF0JiMzOTtzIG1vcmUgbGltaXRlZCBpbiBzY29wZSwgYW5kIG5vdCB0aGUgcmlnaHQgYXBwcm9hY2ggaGVyZS4gQ291bGQgSSBtYXliZSBsZXZlcmFnZSBgc3l6X2dlbmV0bGlua19nZXRfZmFtaWx5YCB0byBpbmplY3QgYSBwbGF0Zm9ybSBkZXZpY2U/IE5vLCB0aGF0JiMzOTtzIGdlbmVyYWxseSBub3QgaG93IHBsYXRmb3JtIGRldmljZXMgYXJlIGhhbmRsZWQuIFRoZXkmIzM5O3JlIHVzdWFsbHkgY3JlYXRlZCB2aWEgdGhlIGRldmljZSB0cmVlIG9yIHRoZSBib2FyZCBjb2RlLgoKT2theSwgbGV0JiMzOTtzIHJlY2FsaWJyYXRlLiBEb2VzIFN5emthbGxlciBoYXZlIGEgcHNldWRvLXN5c2NhbGwgbGlrZSBgc3l6X3BsYXRmb3JtX2RldmljZV9hZGRgIHRoYXQgSSYjMzk7bSBmb3JnZXR0aW5nIGFib3V0PyBObywgdGhhdCYjMzk7cyBub3QgcmluZ2luZyBhbnkgYmVsbHMuIEl0IGxvb2tzIGxpa2UgdGhlIG9ubHkgcmVhbGlzdGljIHJvdXRlIGlzIGlmIHRoZSBwbGF0Zm9ybSBkcml2ZXIgaXMgKmFscmVhZHkqIHJlZ2lzdGVyZWQgaW4gdGhlIGtlcm5lbCBhbmQgdGhlcmUmIzM5O3MgYSBtZWNoYW5pc20gaW4gdGhlIGtlcm5lbCB0byB0cmlnZ2VyIGl0cyBwcm9iZSBmdW5jdGlvbi4gVGhlIGtleSBxdWVzdGlvbiBpcyB3aGV0aGVyIFN5emthbGxlciBjYW4gc29tZWhvdyB0cmlnZ2VyIHRoYXQgcHJvYmUgZm9yIGBheDg4Nzk2YC4KClNvLCB0aGUgbmV4dCBzdGVwIGlzIGRlZmluaXRlbHkgdG8gc2VlIGlmIHRoZXJlJiMzOTtzIGFueSBleGlzdGluZyBTeXprYWxsZXIgZGVzY3JpcHRpb24sIG9yIGlmIHNvbWVvbmUgaGFzIGFscmVhZHkgdGhvdWdodCBhYm91dCBhbmQgcG90ZW50aWFsbHkgaW1wbGVtZW50ZWQgZnV6emluZyBmb3IgYGF4ODg3OTZgLiBUaGF0IHNob3VsZCB0ZWxsIG1lIGlmIHRoZXJlJiMzOTtzIGEgcHJhY3RpY2FsIHBhdGggZm9yd2FyZCBvciBpZiBzb21lIHNpZ25pZmljYW50IGtlcm5lbCBjaGFuZ2VzIG9yIG5ldyBwc2V1ZG8tc3lzY2FsbHMgd291bGQgYmUgbmVlZGVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAxMzowMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtheDg4Nzk2JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA3MTMgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sLTMtLS0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvbmV0L2FzaXgsYXg4ODc5NmMueWFtbCNcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sLTUtJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWw9MjQ9cHJvcGVydGllczpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sLTI1LSAgY29tcGF0aWJsZTpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sOjI2OiAgICBjb25zdDogYXNpeCxheDg4Nzk2Y1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWwtMjctXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWw9NTY9ZXhhbXBsZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWwtNjUtICAgICAgICBldGhlcm5ldEAwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sOjY2OiAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDthc2l4LGF4ODg3OTZjXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWwtNjctICAgICAgICAgICAgcmVnID0gXHUwMDNjMHgwXHUwMDNlO1xuLS1cbk1BSU5UQUlORVJTPTQwMDE9UzpcdE1haW50YWluZWRcbk1BSU5UQUlORVJTOjQwMDI6RjpcdERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sXG5NQUlOVEFJTkVSUzo0MDAzOkY6XHRkcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjXypcbk1BSU5UQUlORVJTLTQwMDQtXG4tLVxuTUFJTlRBSU5FUlM9NDAxMD1TOlx0TWFpbnRhaW5lZFxuTUFJTlRBSU5FUlM6NDAxMTpGOlx0ZHJpdmVycy9uZXQvcGh5L2F4ODg3OTZiX3J1c3QucnNcbk1BSU5UQUlORVJTLTQwMTItXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvc2Ftc3VuZy9leHlub3MzMjUwLWFydGlrNS1ldmFsLmR0cz01Nj1cdGV0aGVybmV0QDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvc2Ftc3VuZy9leHlub3MzMjUwLWFydGlrNS1ldmFsLmR0czo1NzpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O2FzaXgsYXg4ODc5NmNcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9zYW1zdW5nL2V4eW5vczMyNTAtYXJ0aWs1LWV2YWwuZHRzLTU4LVx0XHRyZWcgPSBcdTAwM2MweDBcdTAwM2U7XG4tLVxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMjQtI2luY2x1ZGUgXHUwMDNjbGludXgvY2xrZGV2LmhcdTAwM2VcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jOjI1OiNpbmNsdWRlIFx1MDAzY25ldC9heDg4Nzk2LmhcdTAwM2VcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTI2LSNpbmNsdWRlIFx1MDAzY2FzbS9tYWNodmVjLmhcdTAwM2Vcbi0tXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYz0xNDM9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgaGVhcnRiZWF0X2RldmljZSA9IHtcbi0tXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0xNTYtXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYzoxNTc6c3RhdGljIHN0cnVjdCBheF9wbGF0X2RhdGEgYXg4ODc5Nl9wbGF0ZGF0YSA9IHtcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE1OC1cdC5mbGFncyAgICAgICAgICA9IEFYRkxHX0hBU185M0NYNixcbi0tXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0xNjMtXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYzoxNjQ6c3RhdGljIHN0cnVjdCByZXNvdXJjZSBheDg4Nzk2X3Jlc291cmNlc1tdID0ge1xuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMTY1LVx0e1xuLS1cbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE4MS1cbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jOjE4MjpzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBheDg4Nzk2X2RldmljZSA9IHtcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jOjE4MzpcdC5uYW1lICAgICAgICAgICA9IFwmIzM0O2F4ODg3OTZcJiMzNDssXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0xODQtXHQuaWQgICAgICAgICAgICAgPSAwLFxuLS1cbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE4Ni1cdC5kZXYgICAgPSB7XG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYzoxODc6XHRcdC5wbGF0Zm9ybV9kYXRhID0gXHUwMDI2YXg4ODc5Nl9wbGF0ZGF0YSxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE4OC1cdH0sXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0xODktXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYzoxOTA6XHQubnVtX3Jlc291cmNlcyAgPSBBUlJBWV9TSVpFKGF4ODg3OTZfcmVzb3VyY2VzKSxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jOjE5MTpcdC5yZXNvdXJjZSAgICAgICA9IGF4ODg3OTZfcmVzb3VyY2VzLFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMTkyLX07XG4tLVxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmM9MjY3PXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpyNzc4MHJwX2RldmljZXNbXSBfX2luaXRkYXRhID0ge1xuLS1cbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTI3My0jaWZuZGVmIENPTkZJR19TSF9SNzc4MFJQXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYzoyNzQ6XHRcdTAwMjZheDg4Nzk2X2RldmljZSxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTI3NS0jZW5kaWZcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL01ha2VmaWxlPTg9b2JqLSQoQ09ORklHX0FSTV9FVEhFUkgpICYjNDM7PSBldGhlcmgub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9NYWtlZmlsZTo5Om9iai0kKENPTkZJR19BWDg4Nzk2KSAmIzQzOz0gYXg4ODc5Ni5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL01ha2VmaWxlLTEwLW9iai0kKENPTkZJR19IWURSQSkgJiM0Mzs9IGh5ZHJhLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy0xLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjI6LyogZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmNcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTMtICpcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy0yNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjI4OiNpbmNsdWRlIFx1MDAzY25ldC9heDg4Nzk2LmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTI5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM6NTg6c3RhdGljIHVuc2lnbmVkIGNoYXIgdmVyc2lvbltdID0gXCYjMzQ7YXg4ODc5Ni5jOiBDb3B5cmlnaHQgMjAwNSwyMDA3IFNpbXRlYyBFbGVjdHJvbmljc1xcblwmIzM0OztcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTU5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTYxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM6NjI6I2RlZmluZSBEUlZfTkFNRSBcJiMzNDtheDg4Nzk2XCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy02My0jZGVmaW5lIERSVl9WRVJTSU9OIFwmIzM0OzEuMDBcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYz0xNDY9c3RhdGljIHZvaWQgYXhfcmVzZXRfODM5MChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTE3MS0gKiB3YXkgdG8gZmluZCBvdXQgd2hldGhlciB0aGUgaW50ZXJydXB0IHJlcXVlc3QgbWlnaHQgYmUgY2F1c2VkIGJ5XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYzoxNzI6ICogdGhlIGF4ODg3OTYgY2hpcC5cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTE3My0gKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYz00NTk9c3RhdGljIGludCBheF9taWlfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTQ3My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjQ3NDpcdGF4LVx1MDAzZW1paV9idXMtXHUwMDNlbmFtZSA9IFwmIzM0O2F4ODg3OTZfbWlpX2J1c1wmIzM0OztcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTQ3NS1cdGF4LVx1MDAzZW1paV9idXMtXHUwMDNlcGFyZW50ID0gZGV2LVx1MDAzZWRldi5wYXJlbnQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM9MTAwNz1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBheGRydiA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTEwMDgtXHQuZHJpdmVyXHQ9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjEwMDk6XHRcdC5uYW1lXHRcdD0gXCYjMzQ7YXg4ODc5NlwmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTEwMTAtXHR9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jPTEwMjE9TU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMIHYyXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjEwMjI6TU9EVUxFX0FMSUFTKFwmIzM0O3BsYXRmb3JtOmF4ODg3OTZcJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy01LSNpbmNsdWRlIFx1MDAzY2xpbnV4L3pvcnJvLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzo2OiNpbmNsdWRlIFx1MDAzY25ldC9heDg4Nzk2LmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy03LSNpbmNsdWRlIFx1MDAzY2FzbS9hbWlnYWludHMuaFx1MDAzZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYz0yMzk9c3RhdGljIGludCB4c3VyZjEwMF9wcm9iZShzdHJ1Y3Qgem9ycm9fZGV2ICp6ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0yNDItXHRzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI0MzpcdHN0cnVjdCB4c3VyZjEwMF9heF9wbGF0X2RhdGEgYXg4ODc5Nl9kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI0NC1cdHN0cnVjdCByZXNvdXJjZSByZXNbMl0gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI1Ny1cdC8qIFgtU3VyZiAxMDAgY29udHJvbCBhbmQgMzIgYml0IHJpbmcgYnVmZmVyIGRhdGEgYWNjZXNzIGFyZWFzLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI1ODpcdCAqIFRoZXNlIHJlc291cmNlcyBhcmUgbm90IHVzZWQgYnkgdGhlIGF4ODg3OTYgZHJpdmVyLCBzbyBtdXN0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMjU5LVx0ICogYmUgcmVxdWVzdGVkIGhlcmUgYW5kIHBhc3NlZCB2aWEgcGxhdGZvcm0gZGF0YS5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMjc4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI3OTpcdG1lbXNldChcdTAwMjZheDg4Nzk2X2RhdGEsIDAsIHNpemVvZihheDg4Nzk2X2RhdGEpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzoyODA6XHRheDg4Nzk2X2RhdGEuYXguZmxhZ3MgPSBBWEZMR19IQVNfRUVQUk9NO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI4MTpcdGF4ODg3OTZfZGF0YS5heC53b3JkbGVuZ3RoID0gMjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzoyODI6XHRheDg4Nzk2X2RhdGEuYXguZGNyX3ZhbCA9IDB4NDg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MjgzOlx0YXg4ODc5Nl9kYXRhLmF4LnJjcl92YWwgPSAweDQwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI4NDpcdGF4ODg3OTZfZGF0YS5heC5yZWdfb2Zmc2V0cyA9IHJlZ19vZmZzZXRzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI4NTpcdGF4ODg3OTZfZGF0YS5heC5jaGVja19pcnEgPSBpc194c3VyZjEwMF9uZXR3b3JrX2lycTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzoyODY6XHRheDg4Nzk2X2RhdGEuYmFzZV9yZWdzID0gaW9yZW1hcCh6ZGV2LVx1MDAzZXJlc291cmNlLnN0YXJ0LCAweDEwMCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMjg3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI4OC1cdC8qIGVycm9yIGhhbmRsaW5nIGZvciBpb3JlbWFwIHJlZ3MgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzoyODk6XHRpZiAoIWF4ODg3OTZfZGF0YS5iYXNlX3JlZ3MpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0yOTAtXHRcdGRldl9lcnIoXHUwMDI2emRldi1cdTAwM2VkZXYsIFwmIzM0O0Nhbm5vdCBpb3JlbWFwIGFyZWEgJXBSIChyZWdpc3RlcnMpXFxuXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0yOTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6Mjk3Olx0YXg4ODc5Nl9kYXRhLmRhdGFfYXJlYSA9IGlvcmVtYXAoemRldi1cdTAwM2VyZXNvdXJjZS5zdGFydCAmIzQzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI5OC1cdFx0XHRYUzEwMF84MzkwX0RBVEEzMl9CQVNFLCBYUzEwMF84MzkwX0RBVEEzMl9TSVpFKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMzAwLVx0LyogZXJyb3IgaGFuZGxpbmcgZm9yIGlvcmVtYXAgZGF0YSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjMwMTpcdGlmICghYXg4ODc5Nl9kYXRhLmRhdGFfYXJlYSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTMwMi1cdFx0ZGV2X2VycihcdTAwMjZ6ZGV2LVx1MDAzZWRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMzA5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjMxMDpcdGF4ODg3OTZfZGF0YS5heC5ibG9ja19vdXRwdXQgPSB4czEwMF9ibG9ja19vdXRwdXQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MzExOlx0YXg4ODc5Nl9kYXRhLmF4LmJsb2NrX2lucHV0ID0geHMxMDBfYmxvY2tfaW5wdXQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMzEyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjMxMzpcdHBkZXYgPSBwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfcmVzbmRhdGEoXHUwMDI2emRldi1cdTAwM2VkZXYsIFwmIzM0O2F4ODg3OTZcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMzE0LVx0XHRcdFx0XHRcdCB6ZGV2LVx1MDAzZXNsb3RhZGRyLCByZXMsIDIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MzE1Olx0XHRcdFx0XHRcdCBcdTAwMjZheDg4Nzk2X2RhdGEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MzE2Olx0XHRcdFx0XHRcdCBzaXplb2YoYXg4ODc5Nl9kYXRhKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMzE3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMjktIGV4aXRfbWVtMjpcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzozMzA6XHRpb3VubWFwKGF4ODg3OTZfZGF0YS5kYXRhX2FyZWEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTMzMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMzItIGV4aXRfbWVtOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjMzMzpcdGlvdW5tYXAoYXg4ODc5Nl9kYXRhLmJhc2VfcmVncyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMzM0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvTWFrZWZpbGUtNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvTWFrZWZpbGU6NTpvYmotJChDT05GSUdfU1BJX0FYODg3OTZDKSAmIzQzOz0gYXg4ODc5NmMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9NYWtlZmlsZTo2OmF4ODg3OTZjLXkgOj0gYXg4ODc5NmNfbWFpbi5vIGF4ODg3OTZjX2lvY3RsLm8gYXg4ODc5NmNfc3BpLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzo5OiNkZWZpbmUgcHJfZm10KGZtdClcdFwmIzM0O2F4ODg3OTZjOiBcJiMzNDsgZm10XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE2OiNpbmNsdWRlIFwmIzM0O2F4ODg3OTZjX21haW4uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE3OiNpbmNsdWRlIFwmIzM0O2F4ODg3OTZjX2lvY3RsLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxOTpzdGF0aWMgY29uc3QgY2hhciBheDg4Nzk2Y19wcml2X2ZsYWdfbmFtZXNbXVtFVEhfR1NUUklOR19MRU5dID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTIwLVx0XCYjMzQ7U1BJQ29tcHJlc3Npb25cJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jPTIzPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjQ6YXg4ODc5NmNfZ2V0X2RydmluZm8oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCBldGh0b29sX2RydmluZm8gKmluZm8pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0yOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzozMDpzdGF0aWMgdTMyIGF4ODg3OTZjX2dldF9tc2dsZXZlbChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0zMS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MzI6XHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0zMy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6Mzc6c3RhdGljIHZvaWQgYXg4ODc5NmNfc2V0X21zZ2xldmVsKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCB1MzIgbGV2ZWwpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMzgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjM5Olx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtNDAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jPTQ0PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6NDU6YXg4ODc5NmNfZ2V0X3BhdXNlcGFyYW0oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCBldGh0b29sX3BhdXNlcGFyYW0gKnBhdXNlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTQ2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzo0NzpcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTQ4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYz01Nj1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6NTc6YXg4ODc5NmNfc2V0X3BhdXNlcGFyYW0oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCBldGh0b29sX3BhdXNlcGFyYW0gKnBhdXNlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTU4LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzo1OTpcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTYwLVx0aW50IGZjO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy05MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzo5MTpzdGF0aWMgaW50IGF4ODg3OTZjX2dldF9yZWdzX2xlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy05Mi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jPTk2PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6OTc6YXg4ODc5NmNfZ2V0X3JlZ3Moc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCBldGh0b29sX3JlZ3MgKnJlZ3MsIHZvaWQgKl9wKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTk4LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzo5OTpcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTEwMC1cdGludCBvZmZzZXQsIGk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTEwMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxMDM6XHRtZW1zZXQocCwgMCwgYXg4ODc5NmNfZ2V0X3JlZ3NfbGVuKG5kZXYpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xMDQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTEwNy1cdGZvciAob2Zmc2V0ID0gMDsgb2Zmc2V0IFx1MDAzYyBBWDg4Nzk2Q19SRUdEVU1QX0xFTjsgb2Zmc2V0ICYjNDM7PSAyKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTA4Olx0XHRpZiAoIXRlc3RfYml0KG9mZnNldCAvIDIsIGF4ODg3OTZjX25vX3JlZ3NfbWFzaykpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTA5LVx0XHRcdCpwID0gQVhfUkVBRChcdTAwMjZheF9sb2NhbC1cdTAwM2VheF9zcGksIG9mZnNldCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jPTEyMT1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjEyMjpheDg4Nzk2Y19nZXRfc3RyaW5ncyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgdTMyIHN0cmluZ3NldCwgdTggKmRhdGEpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTIzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTI1LVx0Y2FzZSBFVEhfU1NfUFJJVl9GTEFHUzpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxMjY6XHRcdG1lbWNweShkYXRhLCBheDg4Nzk2Y19wcml2X2ZsYWdfbmFtZXMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTI3Olx0XHQgICAgICAgc2l6ZW9mKGF4ODg3OTZjX3ByaXZfZmxhZ19uYW1lcykpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTEyOC1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jPTEzMj1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTMzOmF4ODg3OTZjX2dldF9zc2V0X2NvdW50KHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCBpbnQgc3RyaW5nc2V0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTEzNC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTEzOC1cdGNhc2UgRVRIX1NTX1BSSVZfRkxBR1M6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTM5Olx0XHRyZXQgPSBBUlJBWV9TSVpFKGF4ODg3OTZjX3ByaXZfZmxhZ19uYW1lcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTQwLVx0XHRicmVhaztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTQ3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE0ODpzdGF0aWMgaW50IGF4ODg3OTZjX3NldF9wcml2X2ZsYWdzKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCB1MzIgZmxhZ3MpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTQ5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxNTA6XHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xNTEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE2My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxNjQ6c3RhdGljIHUzMiBheDg4Nzk2Y19nZXRfcHJpdl9mbGFncyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xNjUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE2NjpcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE2Ny1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTcwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE3MTppbnQgYXg4ODc5NmNfbWRpb19yZWFkKHN0cnVjdCBtaWlfYnVzICptZGlvYnVzLCBpbnQgcGh5X2lkLCBpbnQgbG9jKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE3Mi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTczOlx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSBtZGlvYnVzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTc0LVx0aW50IHJldDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM9MTkyPWludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE5MzpheDg4Nzk2Y19tZGlvX3dyaXRlKHN0cnVjdCBtaWlfYnVzICptZGlvYnVzLCBpbnQgcGh5X2lkLCBpbnQgbG9jLCB1MTYgdmFsKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE5NC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTk1Olx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSBtZGlvYnVzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTk2LVx0aW50IHJldDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIxNDpjb25zdCBzdHJ1Y3QgZXRodG9vbF9vcHMgYXg4ODc5NmNfZXRodG9vbF9vcHMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjE1Olx0LmdldF9kcnZpbmZvXHRcdD0gYXg4ODc5NmNfZ2V0X2RydmluZm8sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjE2LVx0LmdldF9saW5rXHRcdD0gZXRodG9vbF9vcF9nZXRfbGluayxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyMTc6XHQuZ2V0X21zZ2xldmVsXHRcdD0gYXg4ODc5NmNfZ2V0X21zZ2xldmVsLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIxODpcdC5zZXRfbXNnbGV2ZWxcdFx0PSBheDg4Nzk2Y19zZXRfbXNnbGV2ZWwsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjE5LVx0LmdldF9saW5rX2tzZXR0aW5nc1x0PSBwaHlfZXRodG9vbF9nZXRfbGlua19rc2V0dGluZ3MsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTIyMS1cdC5ud2F5X3Jlc2V0XHRcdD0gcGh5X2V0aHRvb2xfbndheV9yZXNldCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyMjI6XHQuZ2V0X3BhdXNlcGFyYW1cdFx0PSBheDg4Nzk2Y19nZXRfcGF1c2VwYXJhbSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyMjM6XHQuc2V0X3BhdXNlcGFyYW1cdFx0PSBheDg4Nzk2Y19zZXRfcGF1c2VwYXJhbSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyMjQ6XHQuZ2V0X3JlZ3NfbGVuXHRcdD0gYXg4ODc5NmNfZ2V0X3JlZ3NfbGVuLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIyNTpcdC5nZXRfcmVnc1x0XHQ9IGF4ODg3OTZjX2dldF9yZWdzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIyNjpcdC5nZXRfc3RyaW5nc1x0XHQ9IGF4ODg3OTZjX2dldF9zdHJpbmdzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIyNzpcdC5nZXRfc3NldF9jb3VudFx0XHQ9IGF4ODg3OTZjX2dldF9zc2V0X2NvdW50LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIyODpcdC5nZXRfcHJpdl9mbGFnc1x0XHQ9IGF4ODg3OTZjX2dldF9wcml2X2ZsYWdzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIyOTpcdC5zZXRfcHJpdl9mbGFnc1x0XHQ9IGF4ODg3OTZjX3NldF9wcml2X2ZsYWdzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTIzMC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTIzMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyMzI6aW50IGF4ODg3OTZjX2lvY3RsKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCBzdHJ1Y3QgaWZyZXEgKmlmciwgaW50IGNtZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0yMzMte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuaC0xNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuaDoxNTojaW5jbHVkZSBcJiMzNDtheDg4Nzk2Y19tYWluLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuaC0xNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuaDoxNzpleHRlcm4gY29uc3Qgc3RydWN0IGV0aHRvb2xfb3BzIGF4ODg3OTZjX2V0aHRvb2xfb3BzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oLTE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oOjE5OmJvb2wgYXg4ODc5NmNfY2hlY2tfcG93ZXIoY29uc3Qgc3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oOjIwOmJvb2wgYXg4ODc5NmNfY2hlY2tfcG93ZXJfYW5kX3dha2Uoc3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oOjIxOnZvaWQgYXg4ODc5NmNfc2V0X3Bvd2VyX3NhdmluZyhzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCwgdTggcHNfbGV2ZWwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oOjIyOmludCBheDg4Nzk2Y19tZGlvX3JlYWQoc3RydWN0IG1paV9idXMgKm1kaW9idXMsIGludCBwaHlfaWQsIGludCBsb2MpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oOjIzOmludCBheDg4Nzk2Y19tZGlvX3dyaXRlKHN0cnVjdCBtaWlfYnVzICptZGlvYnVzLCBpbnQgcGh5X2lkLCBpbnQgbG9jLCB1MTYgdmFsKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuaDoyNDppbnQgYXg4ODc5NmNfaW9jdGwoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGlmcmVxICppZnIsIGludCBjbWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oLTI1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo5OiNkZWZpbmUgcHJfZm10KGZtdClcdFwmIzM0O2F4ODg3OTZjOiBcJiMzNDsgZm10XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0xMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjExOiNpbmNsdWRlIFwmIzM0O2F4ODg3OTZjX21haW4uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MTI6I2luY2x1ZGUgXCYjMzQ7YXg4ODc5NmNfaW9jdGwuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM9MzM9c3RhdGljIGNvbnN0IGNoYXIgKm5vX3JlZ3NfbGlzdCA9IFwmIzM0OzgwMDE4MDAxLGUxOTE4MDAxLDgwMDFhMDAxLGZjMGQwMDAwXCYjMzQ7O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MzQ6dW5zaWduZWQgbG9uZyBheDg4Nzk2Y19ub19yZWdzX21hc2tbQVg4ODc5NkNfUkVHRFVNUF9MRU4gLyAoc2l6ZW9mKHVuc2lnbmVkIGxvbmcpICogOCldO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMzUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM9Mzc9TU9EVUxFX1BBUk1fREVTQyhtc2dfZW5hYmxlLCBcJiMzNDtNZXNzYWdlIG1hc2sgKHNlZSBsaW51eC9uZXRkZXZpY2UuaCBmb3IgYml0bWFwKVwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0zOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjM5OnN0YXRpYyBpbnQgYXg4ODc5NmNfc29mdF9yZXNldChzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjcwOnN0YXRpYyBpbnQgYXg4ODc5NmNfcmVsb2FkX2VlcHJvbShzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTcxLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy05MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjkxOnN0YXRpYyB2b2lkIGF4ODg3OTZjX3NldF9od19tdWx0aWNhc3Qoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy05Mi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo5MzpcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtOTQtXHRpbnQgbWNfY291bnQgPSBuZXRkZXZfbWNfY291bnQobmRldik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTI5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MTMwOnN0YXRpYyB2b2lkIGF4ODg3OTZjX3NldF9tYWNfYWRkcihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTEzMS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoxMzI6XHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTEzMy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0xNDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoxNDQ6c3RhdGljIHZvaWQgYXg4ODc5NmNfbG9hZF9tYWNfYWRkcihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTE0NS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoxNDY6XHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTE0Ny1cdHU4IGFkZHJbRVRIX0FMRU5dO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTE4Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjE4ODpzdGF0aWMgdm9pZCBheDg4Nzk2Y19wcm9jX3R4X2hkcihzdHJ1Y3QgdHhfcGt0X2luZm8gKmluZm8sIHU4IGlwX3N1bW1lZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTE4OS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM9MjIxPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjIyMjpheDg4Nzk2Y19jaGVja19mcmVlX3BhZ2VzKHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsLCB1OCBuZWVkX3BhZ2VzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMjIzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz0yNDM9c3RhdGljIHN0cnVjdCBza19idWZmICpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjI0NDpheDg4Nzk2Y190eF9maXh1cChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqcSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTI0NS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoyNDY6XHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTI0Ny1cdHU4IHNwaV9sZW4gPSBheF9sb2NhbC1cdTAwM2VheF9zcGkuY29tcCA/IDEgOiA0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTI2Mi1cdG5lZWRfcGFnZXMgPSAocGt0X2xlbiAmIzQzOyBUWF9PVkVSSEVBRCAmIzQzOyAxMjcpIFx1MDAzZVx1MDAzZSA3O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MjYzOlx0aWYgKGF4ODg3OTZjX2NoZWNrX2ZyZWVfcGFnZXMoYXhfbG9jYWwsIG5lZWRfcGFnZXMpICE9IDApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0yNjQtXHRcdHJldHVybiBOVUxMO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTI4My1cdGluZm8uc2VxX251bSA9IHNlcV9udW07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoyODQ6XHRheDg4Nzk2Y19wcm9jX3R4X2hkcihcdTAwMjZpbmZvLCBza2ItXHUwMDNlaXBfc3VtbWVkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTI4NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0yODktXHQvKiBXcml0ZSBTUEkgVFhRIGhlYWRlciAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MjkwOlx0bWVtY3B5KHNrYl9wdXNoKHNrYiwgc3BpX2xlbiksIGF4ODg3OTZjX3R4X2NtZF9idWYsIHNwaV9sZW4pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMjkxLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTMzMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjMzMzpzdGF0aWMgaW50IGF4ODg3OTZjX2hhcmRfeG1pdChzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTMzNC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzozMzU6XHRzdHJ1Y3QgYXg4ODc5NmNfcGNwdV9zdGF0cyAqc3RhdHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0zMzYtXHRzdHJ1Y3Qgc2tfYnVmZiAqdHhfc2tiO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTM0Mi1cdHN0YXRzID0gdGhpc19jcHVfcHRyKGF4X2xvY2FsLVx1MDAzZXN0YXRzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjM0MzpcdHR4X3NrYiA9IGF4ODg3OTZjX3R4X2ZpeHVwKGF4X2xvY2FsLVx1MDAzZW5kZXYsIFx1MDAyNmF4X2xvY2FsLVx1MDAzZXR4X3dhaXRfcSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0zNDQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM9Mzg0PXN0YXRpYyBuZXRkZXZfdHhfdFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6Mzg1OmF4ODg3OTZjX3N0YXJ0X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0zODYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6Mzg3Olx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0zODgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM9Mzk5PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo0MDA6YXg4ODc5NmNfc2tiX3JldHVybihzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQwMS1cdFx0ICAgIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCByeF9oZWFkZXIgKnJ4aGRyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQwMy1cdHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2ID0gYXhfbG9jYWwtXHUwMDNlbmRldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjQwNDpcdHN0cnVjdCBheDg4Nzk2Y19wY3B1X3N0YXRzICpzdGF0cztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQwNS1cdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM9NDQyPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo0NDM6YXg4ODc5NmNfcnhfZml4dXAoc3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwsIHN0cnVjdCBza19idWZmICpyeF9za2IpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy00NDQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQ5MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjQ5MTpcdGF4ODg3OTZjX3NrYl9yZXR1cm4oYXhfbG9jYWwsIHJ4X3NrYiwgcnhoZHIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNDkyLX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQ5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjQ5NDpzdGF0aWMgaW50IGF4ODg3OTZjX3JlY2VpdmUoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy00OTUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NDk2Olx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy00OTctXHRzdHJ1Y3Qgc2tiX2RhdGEgKmVudHJ5O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU0Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjU0MzpcdGF4ODg3OTZjX3J4X2ZpeHVwKGF4X2xvY2FsLCBza2IpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNTQ0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU0Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjU0ODpzdGF0aWMgaW50IGF4ODg3OTZjX3Byb2Nlc3NfaXNyKHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNTQ5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01NzgtXHRcdG5ldGlmX2RiZyhheF9sb2NhbCwgaW50ciwgbmRldiwgXCYjMzQ7ICBSWCBpbnRlcnJ1cHRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NTc5Olx0XHR0b2RvID0gYXg4ODc5NmNfcmVjZWl2ZShheF9sb2NhbC1cdTAwM2VuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU4MC1cdH1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01ODQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo1ODU6c3RhdGljIGlycXJldHVybl90IGF4ODg3OTZjX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaW5zdGFuY2UpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01ODYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NTg3Olx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWw7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01ODgtXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmRldjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01OTQtXHR9XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo1OTU6XHRheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU5Ni1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02MDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo2MDc6c3RhdGljIHZvaWQgYXg4ODc5NmNfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02MDgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NjA5Olx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NjEwOlx0XHRcdGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlLCBheF93b3JrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYxMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02MTQtXHRpZiAodGVzdF9iaXQoRVZFTlRfU0VUX01VTFRJLCBcdTAwMjZheF9sb2NhbC1cdTAwM2VmbGFncykpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjYxNTpcdFx0YXg4ODc5NmNfc2V0X2h3X211bHRpY2FzdChheF9sb2NhbC1cdTAwM2VuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYxNi1cdFx0Y2xlYXJfYml0KEVWRU5UX1NFVF9NVUxUSSwgXHUwMDI2YXhfbG9jYWwtXHUwMDNlZmxhZ3MpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYyMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjYyMjpcdFx0d2hpbGUgKGF4ODg3OTZjX3Byb2Nlc3NfaXNyKGF4X2xvY2FsKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYyMy1cdFx0XHQvKiBub3RoaW5nICovO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYzMy1cdFx0d2hpbGUgKHNrYl9xdWV1ZV9sZW4oXHUwMDI2YXhfbG9jYWwtXHUwMDNldHhfd2FpdF9xKSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NjM0Olx0XHRcdGlmICghYXg4ODc5NmNfaGFyZF94bWl0KGF4X2xvY2FsKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYzNS1cdFx0XHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTY0Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjY0ODpzdGF0aWMgdm9pZCBheDg4Nzk2Y19nZXRfc3RhdHM2NChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTY0OS1cdFx0XHRcdCBzdHJ1Y3QgcnRubF9saW5rX3N0YXRzNjQgKnN0YXRzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjUwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjY1MTpcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjUyLVx0dTMyIHJ4X2ZyYW1lX2Vycm9ycyA9IDAsIHJ4X2NyY19lcnJvcnMgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTY1Ny1cdGZvcl9lYWNoX3Bvc3NpYmxlX2NwdShjcHUpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjY1ODpcdFx0c3RydWN0IGF4ODg3OTZjX3BjcHVfc3RhdHMgKnM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02NTktXHRcdHU2NCByeF9wYWNrZXRzLCByeF9ieXRlcztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02ODgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo2ODk6c3RhdGljIHZvaWQgYXg4ODc5NmNfc2V0X21hYyhzdHJ1Y3QgIGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02OTAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTczNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjczNzpzdGF0aWMgdm9pZCBheDg4Nzk2Y19oYW5kbGVfbGlua19jaGFuZ2Uoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy03Mzgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NzM5Olx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy03NDAtXHRzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2ID0gbmRldi1cdTAwM2VwaHlkZXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzY0LVx0aWYgKHVwZGF0ZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjc2NTpcdFx0YXg4ODc5NmNfc2V0X21hYyhheF9sb2NhbCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy03NjYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzcwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NzcxOnN0YXRpYyB2b2lkIGF4ODg3OTZjX3NldF9jc3VtcyhzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTc3Mi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM9Nzk0PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjc5NTpheDg4Nzk2Y19vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzk2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjc5NzpcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzk4LVx0dW5zaWduZWQgbG9uZyBpcnFfZmxhZyA9IDA7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtODAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6ODAzOlx0cmV0ID0gcmVxdWVzdF9pcnEobmRldi1cdTAwM2VpcnEsIGF4ODg3OTZjX2ludGVycnVwdCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTgwNC1cdFx0XHQgIGlycV9mbGFnLCBuZGV2LVx1MDAzZW5hbWUsIG5kZXYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTgxMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjgxMzpcdHJldCA9IGF4ODg3OTZjX3NvZnRfcmVzZXQoYXhfbG9jYWwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtODE0LVx0aWYgKHJldCBcdTAwM2MgMCkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTgyMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjgyMTpcdGF4ODg3OTZjX3NldF9tYWNfYWRkcihuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjgyMjpcdGF4ODg3OTZjX3NldF9jc3VtcyhheF9sb2NhbCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy04MjMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM9ODc4PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjg3OTpheDg4Nzk2Y19jbG9zZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTg4MC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo4ODE6XHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTg4Mi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy04ODYtXHQgKiBhZ2FpbnN0IGNvbmN1cnJlbnQgYWNjZXNzLCBidXQgYWxzbyBhdm9pZCB3YWtpbmcgdXAgdGhlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo4ODc6XHQgKiBxdWV1ZSBpbiBheDg4Nzk2Y193b3JrKCkuIHBoeV9zdG9wKCkgbmVlZHMgdG8gYmUgY2FsbGVkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy04ODgtXHQgKiBiZWZvcmUgYmVjYXVzZSBpdCBsb2NrcyB0aGUgbXV0ZXggdG8gYWNjZXNzIFNQSS5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy05MDUtXHRfX3NrYl9xdWV1ZV9wdXJnZShcdTAwMjZheF9sb2NhbC1cdTAwM2V0eF93YWl0X3EpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6OTA2Olx0YXg4ODc5NmNfc29mdF9yZXNldChheF9sb2NhbCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy05MDctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM9OTE3PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjkxODpheDg4Nzk2Y19zZXRfZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIG5ldGRldl9mZWF0dXJlc190IGZlYXR1cmVzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtOTE5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjkyMDpcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtOTIxLVx0bmV0ZGV2X2ZlYXR1cmVzX3QgY2hhbmdlZCA9IGZlYXR1cmVzIF4gbmRldi1cdTAwM2VmZWF0dXJlcztcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAxMzowMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTU1OQoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDc0NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEFYODg3OTYgRHJpdmVyIFBhdGNoKioKCk9rYXksIGZpcnN0IHRoaW5ncyBmaXJzdC4gSSBzZWUgYSBwYXRjaCByZWxhdGVkIHRvIGBheDg4Nzk2YCwgYnV0IHdhaXQsIHRoZSBtYWluIGRyaXZlciBpcyBgYXg4ODc5NmNgIHdoaWNoIGlzIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uY2AsIGFuZCB0aGUgcGF0Y2ggaXMgdGFyZ2V0aW5nIHRoZSBvbGRlciBgYXg4ODc5NmAgZmlsZSB1bmRlciBgZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmNgLiBUaGF0JiMzOTtzIHRoZSBmaXJzdCByZWQgZmxhZywgcG90ZW50aWFsIGNvbmZ1c2lvbiB0aGVyZS4gSSBzaG91bGQgY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBzeXprYWxsZXIgZGVzY3JpcHRpb25zIGZvciB0aGUgb2xkZXIgYGF4ODg3OTZgIGRyaXZlci4KCkhtbSwgb2theSwgSSBzZWUgYGFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jYCByZWdpc3RlcnMgYGF4ODg3OTZfZGV2aWNlYCwgYW5kIGBkcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmNgIHJlZ2lzdGVycyBgYXg4ODc5NmAgYXMgd2VsbC4gTG9va3MgbGlrZSBhIHBsYXRmb3JtIGRyaXZlciwgc3BlY2lmaWNhbGx5LiBUaGUgcXVlc3Rpb24gbm93IGlzLCBpcyBpdCBldmVuIGZ1enplZCBieSBzeXprYWxsZXI/IFN5emthbGxlciAqY2FuKiBmdXp6IHBsYXRmb3JtIGRyaXZlcnMsIGJ1dCBvbmx5IGlmIGl0IGNhbiBjcmVhdGUgdGhlIHBsYXRmb3JtIGRldmljZS4gTGV0IG1lIHRoaW5rLi4uIHN5emthbGxlciBoYXMgYHN5el9kZXZfY3JlYXRlYCwgYnV0IHRoYXQmIzM5O3Mgbm90IGZvciBwbGF0Zm9ybSBkZXZpY2VzLCBpcyBpdD8gTm8sIHRoYXQmIzM5O3Mgbm90IGdvaW5nIHRvIHdvcmsuIFdhaXQsIGNhbiBpdCB1c2UgYHN5el9nZW5ldGxpbmtfZ2V0X2ZhbWlseWA/IE5vcGUuCgpPa2F5LCBJIHJlbWVtYmVyLCBTeXprYWxsZXIgKmNhbiogZnV6eiBwbGF0Zm9ybSBkcml2ZXJzIGlmIHRoZXkgYXJlIHJlZ2lzdGVyZWQgYnkgZGVmYXVsdCBpbiB0aGUga2VybmVsLCBsaWtlbHkgdmlhIGRldmljZSB0cmVlIG9yIGJvYXJkIGNvZGUuIEJ1dCwgbG9va2luZyBhdCB0aGUgY29kZSwgYGF4ODg3OTZgIGlzIG9ubHkgcmVnaXN0ZXJlZCBvbiBTdXBlckggKGBtYWNoLWhpZ2hsYW5kZXJgKSBhbmQgQW1pZ2EgKGB4c3VyZjEwMGApLiBTeXprYWxsZXIgcnVucyBvbiB4ODZfNjQgb3IgYXJtNjQuIFNvIGl0IHdvbiYjMzk7dCBiZSBwcm9iZWQgb24gdGhvc2UgYXJjaGl0ZWN0dXJlcywgdW5sZXNzIHRoZXJlIGlzIGEgd2F5IHRvIGluamVjdCBwbGF0Zm9ybSBkZXZpY2VzLiBOb3csIGRvZXMgc3l6a2FsbGVyIGhhdmUgYW4gaW5qZWN0IGZ1bmN0aW9uPyBObyBgc3l6X3BsYXRmb3JtX2RldmljZV9hZGRgPyBOb3BlLiBOb3QgdmlhIE5ldGxpbmsgZWl0aGVyLCBvciBgc3lzZnNgIG9yIGBzeXpfdXNiX2Nvbm5lY3RgLiBObywgdGhhdCYjMzk7cyBub3QgYSBVU0IgZGV2aWNlISBPciBgc3l6X3BjaV9kZXZpY2VfYWRkYC4uLiBubywgaXQmIzM5O3MgYSBwbGF0Zm9ybSBkZXZpY2UhCgpBaCwgaGFuZyBvbiBhIHNlY29uZC4gVGhlIGNvbW1pdCBtZXNzYWdlIG1lbnRpb25zIHRoYXQgdGhlIHBhdGNoIHdhcyBhcHBsaWVkIGJ5IGBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdgLiBUaGF0IG1lYW5zIHNvbWVvbmUgc2VudCBhIHBhdGNoIHRvIHRoZSBtYWlsaW5nIGxpc3QsIGFuZCBzeXpib3QgaXMgdGVzdGluZyBpdC4gSWYgc3l6Ym90IGlzIHRlc3RpbmcgaXQsIGl0IG1pZ2h0IGp1c3QgYmUgYSBjb21waWxlIHRlc3QsIG9yIGEgZnVuY3Rpb25hbCB0ZXN0LCBpZiBpdCYjMzk7cyByZWFjaGFibGUuIEJ1dCBnaXZlbiB0aGF0IHRoaXMgaXMgYSBwbGF0Zm9ybSBkcml2ZXIgZm9yIFN1cGVySC9BbWlnYSwgaXQmIzM5O3MgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSBvbiB4ODZfNjQsIHdoaWNoIHN5emthbGxlciB1c2VzLgoKTGV0JiMzOTtzIGxvb2sgYXQgdGhlIGluc3RydWN0aW9ucywgdGhleSBzdGF0ZTogJiMzNDtSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOiAtIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSYjMzQ7LiBTaW5jZSBgYXg4ODc5NmAgaXMgYSBwbGF0Zm9ybSBkcml2ZXIgZm9yIHNwZWNpZmljIGJvYXJkcywgaXQmIzM5O3MgdW5yZWFjaGFibGUgaW4gdGhlc2Ugc3RhbmRhcmQgeDg2XzY0L2FybTY0IFFFTVUvR0NFIGluc3RhbmNlcyB1c2VkIGJ5IHN5emthbGxlci4KCklzIHRoZXJlIGFueSBvdGhlciB3YXkgdG8gcHJvYmUgaXQ/IEkgc2hvdWxkIGNoZWNrIGlmIHRoZXJlJiMzOTtzIGFueSBkZXZpY2UgdHJlZSBiaW5kaW5nIGZvciBgYXg4ODc5NmAuIFRoYXQgbWlnaHQgYmUgdGhlIG9ubHkgb3RoZXIgYXZlbnVlIHRvIGV4cGxvcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDEzOjAyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2F4ODg3OTYmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDcxMyBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWwtMy0tLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sOjQ6JGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWwtNS0kc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCNcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbD0yND1wcm9wZXJ0aWVzOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWwtMjUtICBjb21wYXRpYmxlOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWw6MjY6ICAgIGNvbnN0OiBhc2l4LGF4ODg3OTZjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbC0yNy1cbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbD01Nj1leGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbC02NS0gICAgICAgIGV0aGVybmV0QDAge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWw6NjY6ICAgICAgICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O2FzaXgsYXg4ODc5NmNcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbC02Ny0gICAgICAgICAgICByZWcgPSBcdTAwM2MweDBcdTAwM2U7XG4tLVxuTUFJTlRBSU5FUlM9NDAwMT1TOlx0TWFpbnRhaW5lZFxuTUFJTlRBSU5FUlM6NDAwMjpGOlx0RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWxcbk1BSU5UQUlORVJTOjQwMDM6RjpcdGRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfKlxuTUFJTlRBSU5FUlMtNDAwNC1cbi0tXG5NQUlOVEFJTkVSUz00MDEwPVM6XHRNYWludGFpbmVkXG5NQUlOVEFJTkVSUzo0MDExOkY6XHRkcml2ZXJzL25ldC9waHkvYXg4ODc5NmJfcnVzdC5yc1xuTUFJTlRBSU5FUlMtNDAxMi1cbi0tXG5hcmNoL2FybS9ib290L2R0cy9zYW1zdW5nL2V4eW5vczMyNTAtYXJ0aWs1LWV2YWwuZHRzPTU2PVx0ZXRoZXJuZXRAMCB7XG5hcmNoL2FybS9ib290L2R0cy9zYW1zdW5nL2V4eW5vczMyNTAtYXJ0aWs1LWV2YWwuZHRzOjU3Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7YXNpeCxheDg4Nzk2Y1wmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL3NhbXN1bmcvZXh5bm9zMzI1MC1hcnRpazUtZXZhbC5kdHMtNTgtXHRcdHJlZyA9IFx1MDAzYzB4MFx1MDAzZTtcbi0tXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0yNC0jaW5jbHVkZSBcdTAwM2NsaW51eC9jbGtkZXYuaFx1MDAzZVxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmM6MjU6I2luY2x1ZGUgXHUwMDNjbmV0L2F4ODg3OTYuaFx1MDAzZVxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMjYtI2luY2x1ZGUgXHUwMDNjYXNtL21hY2h2ZWMuaFx1MDAzZVxuLS1cbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jPTE0Mz1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBoZWFydGJlYXRfZGV2aWNlID0ge1xuLS1cbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE1Ni1cbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jOjE1NzpzdGF0aWMgc3RydWN0IGF4X3BsYXRfZGF0YSBheDg4Nzk2X3BsYXRkYXRhID0ge1xuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMTU4LVx0LmZsYWdzICAgICAgICAgID0gQVhGTEdfSEFTXzkzQ1g2LFxuLS1cbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE2My1cbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jOjE2NDpzdGF0aWMgc3RydWN0IHJlc291cmNlIGF4ODg3OTZfcmVzb3VyY2VzW10gPSB7XG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0xNjUtXHR7XG4tLVxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMTgxLVxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmM6MTgyOnN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGF4ODg3OTZfZGV2aWNlID0ge1xuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmM6MTgzOlx0Lm5hbWUgICAgICAgICAgID0gXCYjMzQ7YXg4ODc5NlwmIzM0OyxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE4NC1cdC5pZCAgICAgICAgICAgICA9IDAsXG4tLVxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMTg2LVx0LmRldiAgICA9IHtcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jOjE4NzpcdFx0LnBsYXRmb3JtX2RhdGEgPSBcdTAwMjZheDg4Nzk2X3BsYXRkYXRhLFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMTg4LVx0fSxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE4OS1cbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jOjE5MDpcdC5udW1fcmVzb3VyY2VzICA9IEFSUkFZX1NJWkUoYXg4ODc5Nl9yZXNvdXJjZXMpLFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmM6MTkxOlx0LnJlc291cmNlICAgICAgID0gYXg4ODc5Nl9yZXNvdXJjZXMsXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0xOTItfTtcbi0tXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYz0yNjc9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnI3NzgwcnBfZGV2aWNlc1tdIF9faW5pdGRhdGEgPSB7XG4tLVxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMjczLSNpZm5kZWYgQ09ORklHX1NIX1I3NzgwUlBcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jOjI3NDpcdFx1MDAyNmF4ODg3OTZfZGV2aWNlLFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMjc1LSNlbmRpZlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvTWFrZWZpbGU9OD1vYmotJChDT05GSUdfQVJNX0VUSEVSSCkgJiM0Mzs9IGV0aGVyaC5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX0FYODg3OTYpICYjNDM7PSBheDg4Nzk2Lm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvTWFrZWZpbGUtMTAtb2JqLSQoQ09ORklHX0hZRFJBKSAmIzQzOz0gaHlkcmEub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTEtLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM6MjovKiBkcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuY1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtMy0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTI3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM6Mjg6I2luY2x1ZGUgXHUwMDNjbmV0L2F4ODg3OTYuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtMjktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtNTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYzo1ODpzdGF0aWMgdW5zaWduZWQgY2hhciB2ZXJzaW9uW10gPSBcJiMzNDtheDg4Nzk2LmM6IENvcHlyaWdodCAyMDA1LDIwMDcgU2ltdGVjIEVsZWN0cm9uaWNzXFxuXCYjMzQ7O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtNTktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtNjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYzo2MjojZGVmaW5lIERSVl9OQU1FIFwmIzM0O2F4ODg3OTZcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTYzLSNkZWZpbmUgRFJWX1ZFUlNJT04gXCYjMzQ7MS4wMFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jPTE0Nj1zdGF0aWMgdm9pZCBheF9yZXNldF84MzkwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtMTcxLSAqIHdheSB0byBmaW5kIG91dCB3aGV0aGVyIHRoZSBpbnRlcnJ1cHQgcmVxdWVzdCBtaWdodCBiZSBjYXVzZWQgYnlcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjE3MjogKiB0aGUgYXg4ODc5NiBjaGlwLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtMTczLSAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jPTQ1OT1zdGF0aWMgaW50IGF4X21paV9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtNDczLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM6NDc0Olx0YXgtXHUwMDNlbWlpX2J1cy1cdTAwM2VuYW1lID0gXCYjMzQ7YXg4ODc5Nl9taWlfYnVzXCYjMzQ7O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtNDc1LVx0YXgtXHUwMDNlbWlpX2J1cy1cdTAwM2VwYXJlbnQgPSBkZXYtXHUwMDNlZGV2LnBhcmVudDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYz0xMDA3PXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGF4ZHJ2ID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtMTAwOC1cdC5kcml2ZXJcdD0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM6MTAwOTpcdFx0Lm5hbWVcdFx0PSBcJiMzNDtheDg4Nzk2XCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtMTAxMC1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM9MTAyMT1NT0RVTEVfTElDRU5TRShcJiMzNDtHUEwgdjJcJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM6MTAyMjpNT0RVTEVfQUxJQVMoXCYjMzQ7cGxhdGZvcm06YXg4ODc5NlwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTUtI2luY2x1ZGUgXHUwMDNjbGludXgvem9ycm8uaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjY6I2luY2x1ZGUgXHUwMDNjbmV0L2F4ODg3OTYuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTctI2luY2x1ZGUgXHUwMDNjYXNtL2FtaWdhaW50cy5oXHUwMDNlXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jPTIzOT1zdGF0aWMgaW50IHhzdXJmMTAwX3Byb2JlKHN0cnVjdCB6b3Jyb19kZXYgKnpkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI0Mi1cdHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MjQzOlx0c3RydWN0IHhzdXJmMTAwX2F4X3BsYXRfZGF0YSBheDg4Nzk2X2RhdGE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMjQ0LVx0c3RydWN0IHJlc291cmNlIHJlc1syXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMjU3LVx0LyogWC1TdXJmIDEwMCBjb250cm9sIGFuZCAzMiBiaXQgcmluZyBidWZmZXIgZGF0YSBhY2Nlc3MgYXJlYXMuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MjU4Olx0ICogVGhlc2UgcmVzb3VyY2VzIGFyZSBub3QgdXNlZCBieSB0aGUgYXg4ODc5NiBkcml2ZXIsIHNvIG11c3RcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0yNTktXHQgKiBiZSByZXF1ZXN0ZWQgaGVyZSBhbmQgcGFzc2VkIHZpYSBwbGF0Zm9ybSBkYXRhLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0yNzgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6Mjc5Olx0bWVtc2V0KFx1MDAyNmF4ODg3OTZfZGF0YSwgMCwgc2l6ZW9mKGF4ODg3OTZfZGF0YSkpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI4MDpcdGF4ODg3OTZfZGF0YS5heC5mbGFncyA9IEFYRkxHX0hBU19FRVBST007XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MjgxOlx0YXg4ODc5Nl9kYXRhLmF4LndvcmRsZW5ndGggPSAyO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI4MjpcdGF4ODg3OTZfZGF0YS5heC5kY3JfdmFsID0gMHg0ODtcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzoyODM6XHRheDg4Nzk2X2RhdGEuYXgucmNyX3ZhbCA9IDB4NDA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6Mjg0Olx0YXg4ODc5Nl9kYXRhLmF4LnJlZ19vZmZzZXRzID0gcmVnX29mZnNldHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6Mjg1Olx0YXg4ODc5Nl9kYXRhLmF4LmNoZWNrX2lycSA9IGlzX3hzdXJmMTAwX25ldHdvcmtfaXJxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI4NjpcdGF4ODg3OTZfZGF0YS5iYXNlX3JlZ3MgPSBpb3JlbWFwKHpkZXYtXHUwMDNlcmVzb3VyY2Uuc3RhcnQsIDB4MTAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0yODctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMjg4LVx0LyogZXJyb3IgaGFuZGxpbmcgZm9yIGlvcmVtYXAgcmVncyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI4OTpcdGlmICghYXg4ODc5Nl9kYXRhLmJhc2VfcmVncykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI5MC1cdFx0ZGV2X2VycihcdTAwMjZ6ZGV2LVx1MDAzZWRldiwgXCYjMzQ7Q2Fubm90IGlvcmVtYXAgYXJlYSAlcFIgKHJlZ2lzdGVycylcXG5cJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI5Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzoyOTc6XHRheDg4Nzk2X2RhdGEuZGF0YV9hcmVhID0gaW9yZW1hcCh6ZGV2LVx1MDAzZXJlc291cmNlLnN0YXJ0ICYjNDM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMjk4LVx0XHRcdFhTMTAwXzgzOTBfREFUQTMyX0JBU0UsIFhTMTAwXzgzOTBfREFUQTMyX1NJWkUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMDAtXHQvKiBlcnJvciBoYW5kbGluZyBmb3IgaW9yZW1hcCBkYXRhICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MzAxOlx0aWYgKCFheDg4Nzk2X2RhdGEuZGF0YV9hcmVhKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMzAyLVx0XHRkZXZfZXJyKFx1MDAyNnpkZXYtXHUwMDNlZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MzEwOlx0YXg4ODc5Nl9kYXRhLmF4LmJsb2NrX291dHB1dCA9IHhzMTAwX2Jsb2NrX291dHB1dDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzozMTE6XHRheDg4Nzk2X2RhdGEuYXguYmxvY2tfaW5wdXQgPSB4czEwMF9ibG9ja19pbnB1dDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MzEzOlx0cGRldiA9IHBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcl9yZXNuZGF0YShcdTAwMjZ6ZGV2LVx1MDAzZWRldiwgXCYjMzQ7YXg4ODc5NlwmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMTQtXHRcdFx0XHRcdFx0IHpkZXYtXHUwMDNlc2xvdGFkZHIsIHJlcywgMixcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzozMTU6XHRcdFx0XHRcdFx0IFx1MDAyNmF4ODg3OTZfZGF0YSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzozMTY6XHRcdFx0XHRcdFx0IHNpemVvZihheDg4Nzk2X2RhdGEpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMTctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTMyOS0gZXhpdF9tZW0yOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjMzMDpcdGlvdW5tYXAoYXg4ODc5Nl9kYXRhLmRhdGFfYXJlYSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMzMxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTMzMi0gZXhpdF9tZW06XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MzMzOlx0aW91bm1hcChheDg4Nzk2X2RhdGEuYmFzZV9yZWdzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMzQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9NYWtlZmlsZS00LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9NYWtlZmlsZTo1Om9iai0kKENPTkZJR19TUElfQVg4ODc5NkMpICYjNDM7PSBheDg4Nzk2Yy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L01ha2VmaWxlOjY6YXg4ODc5NmMteSA6PSBheDg4Nzk2Y19tYWluLm8gYXg4ODc5NmNfaW9jdGwubyBheDg4Nzk2Y19zcGkub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy04LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjk6I2RlZmluZSBwcl9mbXQoZm10KVx0XCYjMzQ7YXg4ODc5NmM6IFwmIzM0OyBmbXRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xMC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTY6I2luY2x1ZGUgXCYjMzQ7YXg4ODc5NmNfbWFpbi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTc6I2luY2x1ZGUgXCYjMzQ7YXg4ODc5NmNfaW9jdGwuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE5OnN0YXRpYyBjb25zdCBjaGFyIGF4ODg3OTZjX3ByaXZfZmxhZ19uYW1lc1tdW0VUSF9HU1RSSU5HX0xFTl0gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjAtXHRcJiMzNDtTUElDb21wcmVzc2lvblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM9MjM9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyNDpheDg4Nzk2Y19nZXRfZHJ2aW5mbyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGV0aHRvb2xfZHJ2aW5mbyAqaW5mbylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0yNS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTI5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjMwOnN0YXRpYyB1MzIgYXg4ODc5NmNfZ2V0X21zZ2xldmVsKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTMxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzozMjpcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTMzLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0zNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzozNzpzdGF0aWMgdm9pZCBheDg4Nzk2Y19zZXRfbXNnbGV2ZWwoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHUzMiBsZXZlbClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0zOC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6Mzk6XHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy00MC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM9NDQ9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzo0NTpheDg4Nzk2Y19nZXRfcGF1c2VwYXJhbShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGV0aHRvb2xfcGF1c2VwYXJhbSAqcGF1c2UpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtNDYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjQ3Olx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtNDgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jPTU2PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzo1NzpheDg4Nzk2Y19zZXRfcGF1c2VwYXJhbShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGV0aHRvb2xfcGF1c2VwYXJhbSAqcGF1c2UpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtNTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjU5Olx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtNjAtXHRpbnQgZmM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTkwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjkxOnN0YXRpYyBpbnQgYXg4ODc5NmNfZ2V0X3JlZ3NfbGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTkyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM9OTY9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzo5NzpheDg4Nzk2Y19nZXRfcmVncyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGV0aHRvb2xfcmVncyAqcmVncywgdm9pZCAqX3ApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtOTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjk5Olx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTAwLVx0aW50IG9mZnNldCwgaTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjEwMzpcdG1lbXNldChwLCAwLCBheDg4Nzk2Y19nZXRfcmVnc19sZW4obmRldikpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTEwNC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTA3LVx0Zm9yIChvZmZzZXQgPSAwOyBvZmZzZXQgXHUwMDNjIEFYODg3OTZDX1JFR0RVTVBfTEVOOyBvZmZzZXQgJiM0Mzs9IDIpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxMDg6XHRcdGlmICghdGVzdF9iaXQob2Zmc2V0IC8gMiwgYXg4ODc5NmNfbm9fcmVnc19tYXNrKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xMDktXHRcdFx0KnAgPSBBWF9SRUFEKFx1MDAyNmF4X2xvY2FsLVx1MDAzZWF4X3NwaSwgb2Zmc2V0KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM9MTIxPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTIyOmF4ODg3OTZjX2dldF9zdHJpbmdzKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCB1MzIgc3RyaW5nc2V0LCB1OCAqZGF0YSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xMjMte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xMjUtXHRjYXNlIEVUSF9TU19QUklWX0ZMQUdTOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjEyNjpcdFx0bWVtY3B5KGRhdGEsIGF4ODg3OTZjX3ByaXZfZmxhZ19uYW1lcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxMjc6XHRcdCAgICAgICBzaXplb2YoYXg4ODc5NmNfcHJpdl9mbGFnX25hbWVzKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTI4LVx0XHRicmVhaztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM9MTMyPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxMzM6YXg4ODc5NmNfZ2V0X3NzZXRfY291bnQoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIGludCBzdHJpbmdzZXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTM0LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTM4LVx0Y2FzZSBFVEhfU1NfUFJJVl9GTEFHUzpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxMzk6XHRcdHJldCA9IEFSUkFZX1NJWkUoYXg4ODc5NmNfcHJpdl9mbGFnX25hbWVzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xNDAtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xNDctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTQ4OnN0YXRpYyBpbnQgYXg4ODc5NmNfc2V0X3ByaXZfZmxhZ3Moc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHUzMiBmbGFncylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xNDkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE1MDpcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE1MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTYzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE2NDpzdGF0aWMgdTMyIGF4ODg3OTZjX2dldF9wcml2X2ZsYWdzKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE2NS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTY2Olx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTY3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xNzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTcxOmludCBheDg4Nzk2Y19tZGlvX3JlYWQoc3RydWN0IG1paV9idXMgKm1kaW9idXMsIGludCBwaHlfaWQsIGludCBsb2MpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTcyLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxNzM6XHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IG1kaW9idXMtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xNzQtXHRpbnQgcmV0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYz0xOTI9aW50XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTkzOmF4ODg3OTZjX21kaW9fd3JpdGUoc3RydWN0IG1paV9idXMgKm1kaW9idXMsIGludCBwaHlfaWQsIGludCBsb2MsIHUxNiB2YWwpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTk0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxOTU6XHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IG1kaW9idXMtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xOTYtXHRpbnQgcmV0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0yMTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjE0OmNvbnN0IHN0cnVjdCBldGh0b29sX29wcyBheDg4Nzk2Y19ldGh0b29sX29wcyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyMTU6XHQuZ2V0X2RydmluZm9cdFx0PSBheDg4Nzk2Y19nZXRfZHJ2aW5mbyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0yMTYtXHQuZ2V0X2xpbmtcdFx0PSBldGh0b29sX29wX2dldF9saW5rLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIxNzpcdC5nZXRfbXNnbGV2ZWxcdFx0PSBheDg4Nzk2Y19nZXRfbXNnbGV2ZWwsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjE4Olx0LnNldF9tc2dsZXZlbFx0XHQ9IGF4ODg3OTZjX3NldF9tc2dsZXZlbCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0yMTktXHQuZ2V0X2xpbmtfa3NldHRpbmdzXHQ9IHBoeV9ldGh0b29sX2dldF9saW5rX2tzZXR0aW5ncyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjIxLVx0Lm53YXlfcmVzZXRcdFx0PSBwaHlfZXRodG9vbF9ud2F5X3Jlc2V0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIyMjpcdC5nZXRfcGF1c2VwYXJhbVx0XHQ9IGF4ODg3OTZjX2dldF9wYXVzZXBhcmFtLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIyMzpcdC5zZXRfcGF1c2VwYXJhbVx0XHQ9IGF4ODg3OTZjX3NldF9wYXVzZXBhcmFtLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIyNDpcdC5nZXRfcmVnc19sZW5cdFx0PSBheDg4Nzk2Y19nZXRfcmVnc19sZW4sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjI1Olx0LmdldF9yZWdzXHRcdD0gYXg4ODc5NmNfZ2V0X3JlZ3MsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjI2Olx0LmdldF9zdHJpbmdzXHRcdD0gYXg4ODc5NmNfZ2V0X3N0cmluZ3MsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjI3Olx0LmdldF9zc2V0X2NvdW50XHRcdD0gYXg4ODc5NmNfZ2V0X3NzZXRfY291bnQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjI4Olx0LmdldF9wcml2X2ZsYWdzXHRcdD0gYXg4ODc5NmNfZ2V0X3ByaXZfZmxhZ3MsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjI5Olx0LnNldF9wcml2X2ZsYWdzXHRcdD0gYXg4ODc5NmNfc2V0X3ByaXZfZmxhZ3MsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjMwLX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjMxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIzMjppbnQgYXg4ODc5NmNfaW9jdGwoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCBpZnJlcSAqaWZyLCBpbnQgY21kKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTIzMy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oLTE0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oOjE1OiNpbmNsdWRlIFwmIzM0O2F4ODg3OTZjX21haW4uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oLTE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oOjE3OmV4dGVybiBjb25zdCBzdHJ1Y3QgZXRodG9vbF9vcHMgYXg4ODc5NmNfZXRodG9vbF9vcHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmgtMTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmg6MTk6Ym9vbCBheDg4Nzk2Y19jaGVja19wb3dlcihjb25zdCBzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmg6MjA6Ym9vbCBheDg4Nzk2Y19jaGVja19wb3dlcl9hbmRfd2FrZShzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmg6MjE6dm9pZCBheDg4Nzk2Y19zZXRfcG93ZXJfc2F2aW5nKHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsLCB1OCBwc19sZXZlbCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmg6MjI6aW50IGF4ODg3OTZjX21kaW9fcmVhZChzdHJ1Y3QgbWlpX2J1cyAqbWRpb2J1cywgaW50IHBoeV9pZCwgaW50IGxvYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmg6MjM6aW50IGF4ODg3OTZjX21kaW9fd3JpdGUoc3RydWN0IG1paV9idXMgKm1kaW9idXMsIGludCBwaHlfaWQsIGludCBsb2MsIHUxNiB2YWwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oOjI0OmludCBheDg4Nzk2Y19pb2N0bChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgaWZyZXEgKmlmciwgaW50IGNtZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmgtMjUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjk6I2RlZmluZSBwcl9mbXQoZm10KVx0XCYjMzQ7YXg4ODc5NmM6IFwmIzM0OyBmbXRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MTE6I2luY2x1ZGUgXCYjMzQ7YXg4ODc5NmNfbWFpbi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoxMjojaW5jbHVkZSBcJiMzNDtheDg4Nzk2Y19pb2N0bC5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0xMy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz0zMz1zdGF0aWMgY29uc3QgY2hhciAqbm9fcmVnc19saXN0ID0gXCYjMzQ7ODAwMTgwMDEsZTE5MTgwMDEsODAwMWEwMDEsZmMwZDAwMDBcJiMzNDs7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzozNDp1bnNpZ25lZCBsb25nIGF4ODg3OTZjX25vX3JlZ3NfbWFza1tBWDg4Nzk2Q19SRUdEVU1QX0xFTiAvIChzaXplb2YodW5zaWduZWQgbG9uZykgKiA4KV07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0zNS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz0zNz1NT0RVTEVfUEFSTV9ERVNDKG1zZ19lbmFibGUsIFwmIzM0O01lc3NhZ2UgbWFzayAoc2VlIGxpbnV4L25ldGRldmljZS5oIGZvciBiaXRtYXApXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTM4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6Mzk6c3RhdGljIGludCBheDg4Nzk2Y19zb2Z0X3Jlc2V0KHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNDAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTY5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NzA6c3RhdGljIGludCBheDg4Nzk2Y19yZWxvYWRfZWVwcm9tKHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzEte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTkwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6OTE6c3RhdGljIHZvaWQgYXg4ODc5NmNfc2V0X2h3X211bHRpY2FzdChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTkyLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjkzOlx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy05NC1cdGludCBtY19jb3VudCA9IG5ldGRldl9tY19jb3VudChuZGV2KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0xMjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoxMzA6c3RhdGljIHZvaWQgYXg4ODc5NmNfc2V0X21hY19hZGRyKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTMxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjEzMjpcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTMzLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTE0My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjE0NDpzdGF0aWMgdm9pZCBheDg4Nzk2Y19sb2FkX21hY19hZGRyKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTQ1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjE0NjpcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTQ3LVx0dTggYWRkcltFVEhfQUxFTl07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTg3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MTg4OnN0YXRpYyB2b2lkIGF4ODg3OTZjX3Byb2NfdHhfaGRyKHN0cnVjdCB0eF9wa3RfaW5mbyAqaW5mbywgdTggaXBfc3VtbWVkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTg5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz0yMjE9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MjIyOmF4ODg3OTZjX2NoZWNrX2ZyZWVfcGFnZXMoc3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwsIHU4IG5lZWRfcGFnZXMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0yMjMte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jPTI0Mz1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MjQ0OmF4ODg3OTZjX3R4X2ZpeHVwKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpxKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMjQ1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjI0NjpcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMjQ3LVx0dTggc3BpX2xlbiA9IGF4X2xvY2FsLVx1MDAzZWF4X3NwaS5jb21wID8gMSA6IDQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMjYyLVx0bmVlZF9wYWdlcyA9IChwa3RfbGVuICYjNDM7IFRYX09WRVJIRUFEICYjNDM7IDEyNykgXHUwMDNlXHUwMDNlIDc7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoyNjM6XHRpZiAoYXg4ODc5NmNfY2hlY2tfZnJlZV9wYWdlcyhheF9sb2NhbCwgbmVlZF9wYWdlcykgIT0gMClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTI2NC1cdFx0cmV0dXJuIE5VTEw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMjgzLVx0aW5mby5zZXFfbnVtID0gc2VxX251bTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjI4NDpcdGF4ODg3OTZjX3Byb2NfdHhfaGRyKFx1MDAyNmluZm8sIHNrYi1cdTAwM2VpcF9zdW1tZWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMjg1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTI4OS1cdC8qIFdyaXRlIFNQSSBUWFEgaGVhZGVyICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoyOTA6XHRtZW1jcHkoc2tiX3B1c2goc2tiLCBzcGlfbGVuKSwgYXg4ODc5NmNfdHhfY21kX2J1Ziwgc3BpX2xlbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0yOTEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMzMyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MzMzOnN0YXRpYyBpbnQgYXg4ODc5NmNfaGFyZF94bWl0KHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMzM0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjMzNTpcdHN0cnVjdCBheDg4Nzk2Y19wY3B1X3N0YXRzICpzdGF0cztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTMzNi1cdHN0cnVjdCBza19idWZmICp0eF9za2I7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMzQyLVx0c3RhdHMgPSB0aGlzX2NwdV9wdHIoYXhfbG9jYWwtXHUwMDNlc3RhdHMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MzQzOlx0dHhfc2tiID0gYXg4ODc5NmNfdHhfZml4dXAoYXhfbG9jYWwtXHUwMDNlbmRldiwgXHUwMDI2YXhfbG9jYWwtXHUwMDNldHhfd2FpdF9xKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTM0NC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz0zODQ9c3RhdGljIG5ldGRldl90eF90XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzozODU6YXg4ODc5NmNfc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTM4Ni17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzozODc6XHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTM4OC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz0zOTk9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjQwMDpheDg4Nzk2Y19za2JfcmV0dXJuKHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNDAxLVx0XHQgICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHJ4X2hlYWRlciAqcnhoZHIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNDAzLVx0c3RydWN0IG5ldF9kZXZpY2UgKm5kZXYgPSBheF9sb2NhbC1cdTAwM2VuZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NDA0Olx0c3RydWN0IGF4ODg3OTZjX3BjcHVfc3RhdHMgKnN0YXRzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNDA1LVx0dW5zaWduZWQgbG9uZyBmbGFncztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz00NDI9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjQ0MzpheDg4Nzk2Y19yeF9maXh1cChzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCwgc3RydWN0IHNrX2J1ZmYgKnJ4X3NrYilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQ0NC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNDkwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NDkxOlx0YXg4ODc5NmNfc2tiX3JldHVybihheF9sb2NhbCwgcnhfc2tiLCByeGhkcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy00OTItfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNDkzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NDk0OnN0YXRpYyBpbnQgYXg4ODc5NmNfcmVjZWl2ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQ5NS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo0OTY6XHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQ5Ny1cdHN0cnVjdCBza2JfZGF0YSAqZW50cnk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNTQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NTQzOlx0YXg4ODc5NmNfcnhfZml4dXAoYXhfbG9jYWwsIHNrYik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01NDQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNTQ3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NTQ4OnN0YXRpYyBpbnQgYXg4ODc5NmNfcHJvY2Vzc19pc3Ioc3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01NDkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU3OC1cdFx0bmV0aWZfZGJnKGF4X2xvY2FsLCBpbnRyLCBuZGV2LCBcJiMzNDsgIFJYIGludGVycnVwdFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo1Nzk6XHRcdHRvZG8gPSBheDg4Nzk2Y19yZWNlaXZlKGF4X2xvY2FsLVx1MDAzZW5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNTgwLVx0fVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU4NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjU4NTpzdGF0aWMgaXJxcmV0dXJuX3QgYXg4ODc5NmNfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pbnN0YW5jZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU4Ni17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo1ODc6XHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU4OC1cdHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU5NC1cdH1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjU5NTpcdGF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNTk2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYwNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjYwNzpzdGF0aWMgdm9pZCBheDg4Nzk2Y193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYwOC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo2MDk6XHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo2MTA6XHRcdFx0Y29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UsIGF4X3dvcmspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjExLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYxNC1cdGlmICh0ZXN0X2JpdChFVkVOVF9TRVRfTVVMVEksIFx1MDAyNmF4X2xvY2FsLVx1MDAzZWZsYWdzKSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NjE1Olx0XHRheDg4Nzk2Y19zZXRfaHdfbXVsdGljYXN0KGF4X2xvY2FsLVx1MDAzZW5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjE2LVx0XHRjbGVhcl9iaXQoRVZFTlRfU0VUX01VTFRJLCBcdTAwMjZheF9sb2NhbC1cdTAwM2VmbGFncyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjIxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NjIyOlx0XHR3aGlsZSAoYXg4ODc5NmNfcHJvY2Vzc19pc3IoYXhfbG9jYWwpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjIzLVx0XHRcdC8qIG5vdGhpbmcgKi87XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjMzLVx0XHR3aGlsZSAoc2tiX3F1ZXVlX2xlbihcdTAwMjZheF9sb2NhbC1cdTAwM2V0eF93YWl0X3EpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo2MzQ6XHRcdFx0aWYgKCFheDg4Nzk2Y19oYXJkX3htaXQoYXhfbG9jYWwpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjM1LVx0XHRcdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjQ3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NjQ4OnN0YXRpYyB2b2lkIGF4ODg3OTZjX2dldF9zdGF0czY0KHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjQ5LVx0XHRcdFx0IHN0cnVjdCBydG5sX2xpbmtfc3RhdHM2NCAqc3RhdHMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02NTAte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NjUxOlx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02NTItXHR1MzIgcnhfZnJhbWVfZXJyb3JzID0gMCwgcnhfY3JjX2Vycm9ycyA9IDA7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjU3LVx0Zm9yX2VhY2hfcG9zc2libGVfY3B1KGNwdSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NjU4Olx0XHRzdHJ1Y3QgYXg4ODc5NmNfcGNwdV9zdGF0cyAqcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTY1OS1cdFx0dTY0IHJ4X3BhY2tldHMsIHJ4X2J5dGVzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTY4OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjY4OTpzdGF0aWMgdm9pZCBheDg4Nzk2Y19zZXRfbWFjKHN0cnVjdCAgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTY5MC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzM2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NzM3OnN0YXRpYyB2b2lkIGF4ODg3OTZjX2hhbmRsZV9saW5rX2NoYW5nZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTczOC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo3Mzk6XHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTc0MC1cdHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYgPSBuZGV2LVx1MDAzZXBoeWRldjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy03NjQtXHRpZiAodXBkYXRlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NzY1Olx0XHRheDg4Nzk2Y19zZXRfbWFjKGF4X2xvY2FsKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTc2Ni1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy03NzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo3NzE6c3RhdGljIHZvaWQgYXg4ODc5NmNfc2V0X2NzdW1zKHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzcyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz03OTQ9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6Nzk1OmF4ODg3OTZjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy03OTYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6Nzk3Olx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy03OTgtXHR1bnNpZ25lZCBsb25nIGlycV9mbGFnID0gMDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy04MDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo4MDM6XHRyZXQgPSByZXF1ZXN0X2lycShuZGV2LVx1MDAzZWlycSwgYXg4ODc5NmNfaW50ZXJydXB0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtODA0LVx0XHRcdCAgaXJxX2ZsYWcsIG5kZXYtXHUwMDNlbmFtZSwgbmRldik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtODEyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6ODEzOlx0cmV0ID0gYXg4ODc5NmNfc29mdF9yZXNldChheF9sb2NhbCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy04MTQtXHRpZiAocmV0IFx1MDAzYyAwKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtODIwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6ODIxOlx0YXg4ODc5NmNfc2V0X21hY19hZGRyKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6ODIyOlx0YXg4ODc5NmNfc2V0X2NzdW1zKGF4X2xvY2FsKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTgyMy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz04Nzg9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6ODc5OmF4ODg3OTZjX2Nsb3NlKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtODgwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjg4MTpcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtODgyLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTg4Ni1cdCAqIGFnYWluc3QgY29uY3VycmVudCBhY2Nlc3MsIGJ1dCBhbHNvIGF2b2lkIHdha2luZyB1cCB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjg4NzpcdCAqIHF1ZXVlIGluIGF4ODg3OTZjX3dvcmsoKS4gcGh5X3N0b3AoKSBuZWVkcyB0byBiZSBjYWxsZWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTg4OC1cdCAqIGJlZm9yZSBiZWNhdXNlIGl0IGxvY2tzIHRoZSBtdXRleCB0byBhY2Nlc3MgU1BJLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTkwNS1cdF9fc2tiX3F1ZXVlX3B1cmdlKFx1MDAyNmF4X2xvY2FsLVx1MDAzZXR4X3dhaXRfcSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo5MDY6XHRheDg4Nzk2Y19zb2Z0X3Jlc2V0KGF4X2xvY2FsKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTkwNy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz05MTc9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6OTE4OmF4ODg3OTZjX3NldF9mZWF0dXJlcyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgbmV0ZGV2X2ZlYXR1cmVzX3QgZmVhdHVyZXMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy05MTkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6OTIwOlx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy05MjEtXHRuZXRkZXZfZmVhdHVyZXNfdCBjaGFuZ2VkID0gZmVhdHVyZXMgXiBuZGV2LVx1MDAzZWZlYXR1cmVzO1xuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDEzOjAyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT42bTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyNjQ2CgkJCQkJCQlvdXRwdXQ6IDIwCgkJCQkJCQl0aG91Z2h0czogNjI5MTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDEzOjA4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3l6X2Rldl9jcmVhdGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAxMzowODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMDU1OTQKCQkJCQkJCW91dHB1dDogMjIKCQkJCQkJCXRob3VnaHRzOiAxODgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQYXRjaCBmb3IgV29ydGhpbmVzcyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHksIHRoZSBsYWNrIG9mIGBzeXpfZGV2X2NyZWF0ZWAgaW4gc3l6a2FsbGVyIGlzIGEgcmVkIGZsYWcuIFRoZSBpbnN0cnVjdGlvbnMgYXJlIHByZXR0eSBjbGVhciBvbiB0aGlzOiBpZiB0aGUgcGF0Y2gmIzM5O3MgY2hhbmdlcyBhcmUgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIHdlIGhhdmUgdG8gbWFyayBpdCBhcyBub3Qgd29ydGggZnV6emluZy4gVGhlIHRleHQgbWVudGlvbnMgYGF4ODg3OTZgIGFuZCBpdCBzZWVtcyB0byBiZSBhIHBsYXRmb3JtIGRyaXZlciBzcGVjaWZpYyB0byBib2FyZHMgbGlrZSBTdXBlckggaGlnaGxhbmRlciBhbmQgQW1pZ2EgeHN1cmYxMDAuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O0RhbW4sIHRoYXQmIzM5O3Mgbm90IHNvbWV0aGluZyB3ZSBjYW4gcHJvYmUgb24gc3RhbmRhcmQgeDg2XzY0L2FybTY0IFFFTVUvR0NFIGluc3RhbmNlcyB1c2VkIGJ5IHN5emthbGxlciYjMzQ7LiBTbyB0aGF0IG1ha2VzIG1lIHRoaW5rLCBjYW4gd2UgZXZlbiBydW4gdGhpcyBhdCBhbGwsIGlzIHRoZXJlIGEgYmFja2Rvb3I/IExldCBtZSBzZWUgaWYgdGhlcmUmIzM5O3MgYW55IG90aGVyIG1ldGhvZCBvZiBwcm9iaW5nIHRoaXMsIG1heWJlIGEgZGV2aWNlIHRyZWUgYmluZGluZz8gQW5kLCBJIG5lZWQgdG8gYmUgY2FyZWZ1bCwgbWFrZSBzdXJlIEkgYW0gY2hlY2tpbmcgZm9yIGBheDg4Nzk2YCBzcGVjaWZpY2FsbHksIGFuZCBub3QgYSByZWxhdGVkIGRyaXZlciBsaWtlIGBheDg4Nzk2Y2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDEzOjA4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbXBhdGlibGUuKmF4ODg3OTYmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWw9NTY9ZXhhbXBsZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWwtNjUtICAgICAgICBldGhlcm5ldEAwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sOjY2OiAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDthc2l4LGF4ODg3OTZjXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWwtNjctICAgICAgICAgICAgcmVnID0gXHUwMDNjMHgwXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL3NhbXN1bmcvZXh5bm9zMzI1MC1hcnRpazUtZXZhbC5kdHM9NTY9XHRldGhlcm5ldEAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL3NhbXN1bmcvZXh5bm9zMzI1MC1hcnRpazUtZXZhbC5kdHM6NTc6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDthc2l4LGF4ODg3OTZjXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvc2Ftc3VuZy9leHlub3MzMjUwLWFydGlrNS1ldmFsLmR0cy01OC1cdFx0cmVnID0gXHUwMDNjMHgwXHUwMDNlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jPTExMTg9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgYXg4ODc5NmNfZHRfaWRzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoxMTE5Olx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2FzaXgsYXg4ODc5NmNcJiMzNDsgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTExMjAtXHR7fSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMTM6MDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTA2NDUzCgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogMTA2MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXNpcyBvZiB0aGUgYGF4ODg3OTZgIERyaXZlciBmb3IgRnV6emluZyBTdWl0YWJpbGl0eSoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsICYjMzQ7V2hlcmUgZG9lcyB0aGlzIGRyaXZlciBldmVuIGV4aXN0PyYjMzQ7IEl0JiMzOTtzIGEgbGVnYWN5IHBsYXRmb3JtIGRyaXZlciwgYW5kIG15IGltbWVkaWF0ZSBjb25jZXJuIGlzIHdoZXRoZXIgc3l6a2FsbGVyIGhhcyBhIHdheSB0byBjcmVhdGUgdGhlIG5lY2Vzc2FyeSBwbGF0Zm9ybSBkZXZpY2UgZm9yIGl0LiBJIHN0YXJ0IGRvd24gdGhlIHBhdGggb2YgY2hlY2tpbmcgZm9yIGFueSBwc2V1ZG8tc3lzY2FsbHMgbGlrZSBgc3l6X3BsYXRmb3JtX2RldmljZV9hZGRgIG9yIGV2ZW4gc29tZSBjbGV2ZXIgaGFjayBsaWtlIGBzeXpfZGV2X2NyZWF0ZWAuIEkga25vdyBiZXR0ZXIgdGhhbiB0byB0cnkgc2VhcmNoaW5nIHRoZSBgc3l6bGFuZ2AgZGVzY3JpcHRpb25zIGRpcmVjdGx5LCBvZiBjb3Vyc2UuIE5vLCBJIHJlYWxpemUsIHN5emthbGxlciBkb2VzbiYjMzk7dCBoYXZlIGEgZ2VuZXJpYyAmIzM0O2NyZWF0ZSBhbnkgcGxhdGZvcm0gZGV2aWNlJiMzNDsgZnVuY3Rpb25hbGl0eS4gSXQmIzM5O3MgbW9yZSB0YXJnZXRlZCwgbGlrZSB3aXRoIFVTQiBvciA4MDIuMTEuCgpUaGVuLCB0aGUgc3BlY2lmaWNzIG9mIHRoZSBgYXg4ODc5NmAgZHJpdmVyIGtpY2sgaW4uIFRoaXMgaXMgYSB2ZXJ5IG5pY2hlIHBpZWNlIG9mIGhhcmR3YXJl4oCUYW4gQVNJWCBBWDg4Nzk2LCB3aGljaCBpcyBhbiBORTIwMDAgY2xvbmUuIFRoaXMgaXMgdXNlZCBvbiBTdXBlckggYW5kIEFtaWdhLCB3aGljaCBkb2VzbiYjMzk7dCBzZWVtIHRvIGhhdmUgYSBjaGFuY2Ugb2YgcnVubmluZyB0aGlzIGluIGFuIGVtdWxhdGVkIGVudmlyb25tZW50LiBUaGVyZSBpcyBubyBzdWNoIHZpcnR1YWwgZGV2aWNlLiBJdCBpcyBub3QgVVNCL1BDSSwgd2hpY2ggc3l6a2FsbGVyICptaWdodCogYmUgYWJsZSB0byBoZWxwLgoKVGhlIGZhY3QgdGhhdCB0aGUgcGF0Y2ggaXMgJiMzNDt1bmRlciByZXZpZXcmIzM0OyBvbiBzeXpib3QgZG9lc24mIzM5O3QgbWVhbiBzeXpib3QgKmZvdW5kKiBhIGJ1Zy4gSXQganVzdCBtZWFucyB0aGUgcGF0Y2ggaXMgKmJlaW5nKiB0ZXN0ZWQuIEl0IGlzIG5vdCB0aGUgc2lnbmFsIG9mIHdoZXRoZXIgdGhlIGNvZGUgaXMgcmVhY2hhYmxlIGluIFFFTVUvR0NFLiBJZiB0aGUgY29kZSBpcyBub3QgcmVhY2hhYmxlIGluIFFFTVUvR0NFLCBpdCYjMzk7cyBub3Qgd29ydGggZnV6emluZy4KCk15IG5leHQgc3RlcCBpcyB0byBzZWUgaWYsIGJ5IHNvbWUgZmx1a2UsIGl0ICpjb3VsZCogYmUgcHJvYmVkIG9uIHg4Nl82NC4gSSBjaGVjayBpZiB0aGVyZSBpcyBzb21lIHBsYXRmb3JtIGRldmljZSByZWdpc3RlcmVkIHVzaW5nIHRoZSAmIzM0O2F4ODg3OTYmIzM0OyBuYW1lLiBQbGF0Zm9ybSBkZXZpY2VzIGFyZSBlaXRoZXIgY3JlYXRlZCBieSBib2FyZCBjb2RlIG9yIGRldmljZSB0cmVlIGJpbmRpbmdzLiBJJiMzOTttIGNvbmZpZGVudCB0aGVyZSBhcmUgbm8gZGV2aWNlIHRyZWUgYmluZGluZ3MuIEkgY2FuJiMzOTt0IGNyZWF0ZSBkZXZpY2VzIHZpYSBzeXNmcywgb3IgdXNlIGEgcHNldWRvLXN5c2NhbGwuCgpUaGVyZWZvcmUsIHRoaXMgZHJpdmVyIGlzIHVucmVhY2hhYmxlIGluIHRoZSBzeXprYWxsZXIgZW52aXJvbm1lbnQuIEl0JiMzOTtzIGEgcGxhdGZvcm0gZHJpdmVyIGZvciBzcGVjaWZpYyBib2FyZHMgKFN1cGVySC9BbWlnYSkgYW5kIHdpbGwgbm90IGJlIHByb2JlZCBpbiBRRU1VL0dDRS4gVGhlcmVmb3JlLCBJJiMzOTttIG1hcmtpbmcgaXQgYXMgYFdvcnRoRnV6emluZz1mYWxzZWAuCgpJIGFtIHJldmlld2luZyB0aGUgYWN0dWFsIHBhdGNoIHRoYXQgd2FzIHN1Ym1pdHRlZC4gSXQmIzM5O3MgZml4aW5nIGEgc3RhY2sgdmFyaWFibGUgdGhhdCB3YXMgdW5pbml0aWFsaXplZC4gUmVnYXJkbGVzcywgdGhlIHJlYWNoYWJpbGl0eSBpc3N1ZSBzdGlsbCByZW1haW5zIGFuZCBJIGFtIGNvbmZpZGVudCBpbiBteSBhc3Nlc3NtZW50LgoKSSBhbSByZS1jaGVja2luZyB0byBlbnN1cmUgdGhlcmUgYXJlIG5vIG90aGVyIHBsYWNlcyB3aGVyZSB0aGlzIHBsYXRmb3JtIGRldmljZSBpcyByZWdpc3RlcmVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAxMzowODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIuKmF4ODg3OTYmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jPTIzOT1zdGF0aWMgaW50IHhzdXJmMTAwX3Byb2JlKHN0cnVjdCB6b3Jyb19kZXYgKnpkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTMxMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzozMTM6XHRwZGV2ID0gcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyX3Jlc25kYXRhKFx1MDAyNnpkZXYtXHUwMDNlZGV2LCBcJiMzNDtheDg4Nzk2XCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTMxNC1cdFx0XHRcdFx0XHQgemRldi1cdTAwM2VzbG90YWRkciwgcmVzLCAyLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAxMzowOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMDgyNzAKCQkJCQkJCW91dHB1dDogODcKCQkJCQkJCXRob3VnaHRzOiAxODIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqVW5yZWFjaGFibGUgQ29kZSBpbiBMZWdhY3kgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O3ZlIGR1ZyBpbnRvIHRoaXMgY29kZSwgYW5kIGl0JiMzOTtzIHByZXR0eSBjbGVhciB0aGlzIHBhcnRpY3VsYXIgZHJpdmVyIG1vZGlmaWNhdGlvbiwgc3BlY2lmaWNhbGx5IHdpdGhpbiBgeHN1cmYxMDAuY2AgYW5kIHRoYXQgYHNldHVwLmNgIGZpbGUgZm9yIHRoZSBTdXBlckggSGlnaGxhbmRlciBib2FyZCwgaXMgb25seSBhY2Nlc3NpYmxlIG9uIHZlcnkgc3BlY2lmaWMsIG9sZGVyIGhhcmR3YXJlLiBJJiMzOTttIHRhbGtpbmcgQW1pZ2EgWm9ycm8gYnVzIGFuZCB0aGUgU3VwZXJIIEhpZ2hsYW5kZXIgYm9hcmQuIE5vdGhpbmcgaW4gdGhpcyBwYXRjaCBpcyBnb2luZyB0byBiZSB0cmlnZ2VyZWQgaW4gYW55IHN0YW5kYXJkIGZ1enppbmcgZW52aXJvbm1lbnQgdGhhdCBzeXprYWxsZXIgaXMgdXNpbmcsIHlvdSBrbm93LCB0aGUgdXN1YWwgeDg2XzY0IG9yIGFybTY0IFZNcyBsaWtlIHdlIHNlZSB3aXRoIFFFTVUgb3IgR0NFLgoKVGhlcmUmIzM5O3MganVzdCBubyBwYXRoIGZvciBpdCB0byBiZSBwcm9iZWQgb3IgZXhlY3V0ZWQgZ2l2ZW4gb3VyIGN1cnJlbnQgc2V0dXAuIEl0JiMzOTtzIGdlb2dyYXBoaWNhbGx5IGlzb2xhdGVkLCBzbyB0byBzcGVhay4KClRoZXJlZm9yZSwgYFdvcnRoRnV6emluZ2AgaXMgZGVmaW5pdGl2ZWx5IGdldHRpbmcgc2V0IHRvIGBmYWxzZWAuIE15IHJlYXNvbmluZyBpcyBzb2xpZDogVGhpcyBwYXRjaCB0b3VjaGVzIGEgbGVnYWN5IHBsYXRmb3JtIGRyaXZlciBmb3IgdGhlIGF4ODg3OTYsIHdoaWNoIHJlcXVpcmVzIHRoZXNlIHNwZWNpZmljLCBuaWNoZSBoYXJkd2FyZSBjb25maWd1cmF0aW9ucywgYW5kIHRoYXQmIzM5O3MgYSBkZWFkIGVuZCBhcyBmYXIgYXMgcmVhY2hpbmcgaXQgdGhyb3VnaCBmdXp6aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAxMzowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsZWdhY3kgYXg4ODc5NiBwbGF0Zm9ybSBkcml2ZXIsIHdoaWNoIGlzIG9ubHkgcmVnaXN0ZXJlZCBieSBzcGVjaWZpYyBoYXJkd2FyZSBib2FyZCBjb2RlIChTdXBlckggSGlnaGxhbmRlciBhbmQgQW1pZ2EgWm9ycm8pLiBJdCBjYW5ub3QgYmUgcHJvYmVkIG9yIGV4ZWN1dGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFIHVzZWQgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbGVnYWN5IGF4ODg3OTYgcGxhdGZvcm0gZHJpdmVyLCB3aGljaCBpcyBvbmx5IHJlZ2lzdGVyZWQgYnkgc3BlY2lmaWMgaGFyZHdhcmUgYm9hcmQgY29kZSAoU3VwZXJIIEhpZ2hsYW5kZXIgYW5kIEFtaWdhIFpvcnJvKS4gSXQgY2Fubm90IGJlIHByb2JlZCBvciBleGVjdXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSB1c2VkIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDEzOjAwOjU4LjQ3MjYxMjA2OFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5MjA2NjkxMTMzOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxlZ2FjeSBheDg4Nzk2IHBsYXRmb3JtIGRyaXZlciwgd2hpY2ggaXMgb25seSByZWdpc3RlcmVkIGJ5IHNwZWNpZmljIGhhcmR3YXJlIGJvYXJkIGNvZGUgKFN1cGVySCBIaWdobGFuZGVyIGFuZCBBbWlnYSBab3JybykuIEl0IGNhbm5vdCBiZSBwcm9iZWQgb3IgZXhlY3V0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UgdXNlZCBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDEzOjAwOjU4LjQ3MjYxODE3OFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTk2ODA4NjM5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNjM5ZmY3ODA0MDU2YTRjZmM2MjNmZDcyMjIzODE5MTk3OWVhYWU5MVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU2F0IEp1bCAyNSAxMzowMDo1NiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jXFxuaW5kZXggZTE2OTVkMGZiZDhiYjAuLjVlZTFmYmFmZGNmY2RmIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmNcXG5AQCAtNzIyLDEyICs3MjIsMTIgQEAgc3RhdGljIGludCBheF9pbml0X2RldihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbiAjaWZkZWYgQ09ORklHX0FYODg3OTZfOTNDWDZcXG4gXFx0aWYgKGF4LVxcdTAwM2VwbGF0LVxcdTAwM2VmbGFncyBcXHUwMDI2IEFYRkxHX0hBU185M0NYNikge1xcbiBcXHRcXHR1bnNpZ25lZCBjaGFyIG1hY19hZGRyW0VUSF9BTEVOXTtcXG4tXFx0XFx0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb207XFxuLVxcbi1cXHRcXHRlZXByb20uZGF0YSA9IGVpX2xvY2FsO1xcbi1cXHRcXHRlZXByb20ucmVnaXN0ZXJfcmVhZCA9IGF4X2VlcHJvbV9yZWdpc3Rlcl9yZWFkO1xcbi1cXHRcXHRlZXByb20ucmVnaXN0ZXJfd3JpdGUgPSBheF9lZXByb21fcmVnaXN0ZXJfd3JpdGU7XFxuLVxcdFxcdGVlcHJvbS53aWR0aCA9IFBDSV9FRVBST01fV0lEVEhfOTNDNTY7XFxuK1xcdFxcdHN0cnVjdCBlZXByb21fOTNjeDYgZWVwcm9tID0ge1xcbitcXHRcXHRcXHQuZGF0YSA9IGVpX2xvY2FsLFxcbitcXHRcXHRcXHQucmVnaXN0ZXJfcmVhZCA9IGF4X2VlcHJvbV9yZWdpc3Rlcl9yZWFkLFxcbitcXHRcXHRcXHQucmVnaXN0ZXJfd3JpdGUgPSBheF9lZXByb21fcmVnaXN0ZXJfd3JpdGUsXFxuK1xcdFxcdFxcdC53aWR0aCA9IFBDSV9FRVBST01fV0lEVEhfOTNDNTYsXFxuK1xcdFxcdH07XFxuIFxcbiBcXHRcXHRlZXByb21fOTNjeDZfbXVsdGlyZWFkKFxcdTAwMjZlZXByb20sIDAsXFxuIFxcdFxcdFxcdFxcdCAgICAgICAoX19sZTE2IF9fZm9yY2UgKiltYWNfYWRkcixcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMTM6MDA6NTkuMDcwMTc2MTc3WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NDkxNDY5MzMzOTk5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbGVnYWN5IGF4ODg3OTYgcGxhdGZvcm0gZHJpdmVyLCB3aGljaCBpcyBvbmx5IHJlZ2lzdGVyZWQgYnkgc3BlY2lmaWMgaGFyZHdhcmUgYm9hcmQgY29kZSAoU3VwZXJIIEhpZ2hsYW5kZXIgYW5kIEFtaWdhIFpvcnJvKS4gSXQgY2Fubm90IGJlIHByb2JlZCBvciBleGVjdXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSB1c2VkIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNjM5ZmY3ODA0MDU2YTRjZmM2MjNmZDcyMjIzODE5MTk3OWVhYWU5MVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgSnVsIDI1IDEzOjAwOjU2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuY1xuaW5kZXggZTE2OTVkMGZiZDhiYjAuLjVlZTFmYmFmZGNmY2RmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jXG5AQCAtNzIyLDEyICs3MjIsMTIgQEAgc3RhdGljIGludCBheF9pbml0X2RldihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuICNpZmRlZiBDT05GSUdfQVg4ODc5Nl85M0NYNlxuIFx0aWYgKGF4LVx1MDAzZXBsYXQtXHUwMDNlZmxhZ3MgXHUwMDI2IEFYRkxHX0hBU185M0NYNikge1xuIFx0XHR1bnNpZ25lZCBjaGFyIG1hY19hZGRyW0VUSF9BTEVOXTtcbi1cdFx0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb207XG4tXG4tXHRcdGVlcHJvbS5kYXRhID0gZWlfbG9jYWw7XG4tXHRcdGVlcHJvbS5yZWdpc3Rlcl9yZWFkID0gYXhfZWVwcm9tX3JlZ2lzdGVyX3JlYWQ7XG4tXHRcdGVlcHJvbS5yZWdpc3Rlcl93cml0ZSA9IGF4X2VlcHJvbV9yZWdpc3Rlcl93cml0ZTtcbi1cdFx0ZWVwcm9tLndpZHRoID0gUENJX0VFUFJPTV9XSURUSF85M0M1NjtcbitcdFx0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb20gPSB7XG4rXHRcdFx0LmRhdGEgPSBlaV9sb2NhbCxcbitcdFx0XHQucmVnaXN0ZXJfcmVhZCA9IGF4X2VlcHJvbV9yZWdpc3Rlcl9yZWFkLFxuK1x0XHRcdC5yZWdpc3Rlcl93cml0ZSA9IGF4X2VlcHJvbV9yZWdpc3Rlcl93cml0ZSxcbitcdFx0XHQud2lkdGggPSBQQ0lfRUVQUk9NX1dJRFRIXzkzQzU2LFxuK1x0XHR9O1xuIFxuIFx0XHRlZXByb21fOTNjeDZfbXVsdGlyZWFkKFx1MDAyNmVlcHJvbSwgMCxcbiBcdFx0XHRcdCAgICAgICAoX19sZTE2IF9fZm9yY2UgKiltYWNfYWRkcixcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDEzOjAwOjU5LjA3MDE3NzE1N1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM5NTI1MDEzOTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqUmVmYWN0b3JpbmcgYSBEcml2ZXIgSW5pdGlhbGl6YXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmNgLiBJdCdzIGEgc21hbGwgY2hhbmdlLCBhZmZlY3RpbmcgdGhlIGBheF9pbml0X2RldmAgZnVuY3Rpb24uIFRoZSBjb3JlIG9mIHRoZSBtb2RpZmljYXRpb24gaXMgaG93IHRoZSBgc3RydWN0IGVlcHJvbV85M2N4NiBlZXByb21gIGlzIGluaXRpYWxpemVkLiBJbnN0ZWFkIG9mIHRoZSB1c3VhbCBmaWVsZC1ieS1maWVsZCBhc3NpZ25tZW50LCB0aGV5J3ZlIHVzZWQgYSBkZXNpZ25hdGVkIGluaXRpYWxpemVyLiBGcm9tIGEgZnVuY3Rpb25hbCBwZXJzcGVjdGl2ZSwgdGhpcyBpcyBwdXJlbHkgc3R5bGlzdGljIOKAkyBhIHJlZmFjdG9yaW5nLiBObyByZWFsIGNvZGUgYmVoYXZpb3IgY2hhbmdlIGhlcmUsIGp1c3QgY2xlYW5pbmcgdGhpbmdzIHVwLlxuXG5CdXQgd2FpdCBhIG1pbnV0ZeKApiBkb2VzIHRoaXMgZGVzaWduYXRlZCBpbml0aWFsaXphdGlvbiBpbXBsaWNpdGx5IHplcm8gb3V0IHRoZSByZW1haW5pbmcgZmllbGRzIG9mIHRoZSBzdHJ1Y3Q/IFRoYXQncyBhIHN1YnRsZSBidXQgcG90ZW50aWFsbHkgaW1wb3J0YW50IGRldGFpbC4gSSdkIGJldHRlciBkb3VibGUtY2hlY2sgdGhlIGRlZmluaXRpb24gb2YgYHN0cnVjdCBlZXByb21fOTNjeDZgIGl0c2VsZi4gTmVlZCB0byBiZSBjZXJ0YWluIHRoZXJlIGFyZSBubyB1bmludGVuZGVkIHNpZGUgZWZmZWN0cy4gSnVzdCBiZWNhdXNlIGl0J3MgYSByZWZhY3RvcmluZyBkb2Vzbid0IG1lYW4gaXQgaXMgcHJvYmxlbS1mcmVlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjYwLCJPdXRwdXRUb2tlbnMiOjI0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE3LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMTM6MDE6MDMuMDIyNjgxNjY5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYwNDEwOTExMjQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3RydWN0IGVlcHJvbV85M2N4NiBcXFxce1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJpbmNsdWRlL2xpbnV4L2VlcHJvbV85M2N4Ni5oLTQ4LSAqL1xcbmluY2x1ZGUvbGludXgvZWVwcm9tXzkzY3g2Lmg6NDk6c3RydWN0IGVlcHJvbV85M2N4NiB7XFxuaW5jbHVkZS9saW51eC9lZXByb21fOTNjeDYuaC01MC1cXHR2b2lkICpkYXRhO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQxMzowMTowOS4wNjM3Nzk1MDNaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNzM0MDU1ODc2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBkaXZlIGludG8gdGhpcy4gSSBuZWVkIHRvIGdldCBhIGNvbXBsZXRlIHVuZGVyc3RhbmRpbmcgb2YgdGhpcyBzdHJ1Y3QsIHNvIG15IGZpcnN0IHRob3VnaHQgaXM6XG5cbioqR3JhYmJpbmcgdGhlIFdob2xlIFBpY3R1cmU6IExldCdzIFNlZSB0aGUgRnVsbCBTdHJ1Y3QgRGVmaW5pdGlvbioqXG5cbkkga25vdyBJIGNhbid0IHJlYWxseSBhbmFseXplIHRoaXMgZWZmZWN0aXZlbHkgd2l0aG91dCB0aGUgY29tcGxldGUgY29udGV4dC4gVW5kZXJzdGFuZGluZyBldmVyeSBtZW1iZXIsIHRoZWlyIGRhdGEgdHlwZXMsIGFuZCBhbnkgYXNzb2NpYXRlZCBhdHRyaWJ1dGVzIGlzIGFic29sdXRlbHkgY3J1Y2lhbCB0byBmb3JtaW5nIGEgc291bmQgb3BpbmlvbiBvciB1bmRlcnN0YW5kaW5nIGl0cyBwdXJwb3NlLiBJdCdzIHRoZSBibHVlcHJpbnQsIHRoZSBmb3VuZGF0aW9uLiBJIG5lZWQgdG8gc2VlIHRoZSB3aG9sZSBkZWZpbml0aW9uIGJlZm9yZSBJIGNhbiBtYWtlIGFueSBtZWFuaW5nZnVsIGp1ZGdlbWVudHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2OTUsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDEzOjAxOjExLjc5NzgzODI3OVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgwNDQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImluY2x1ZGUvbGludXgvZWVwcm9tXzkzY3g2LmhcIixcbiAgXCJGaXJzdExpbmVcIjogNDksXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgNDk6XFx0c3RydWN0IGVlcHJvbV85M2N4NiB7XFxuICA1MDpcXHRcXHR2b2lkICpkYXRhO1xcbiAgNTE6XFx0XFxuICA1MjpcXHRcXHR2b2lkICgqcmVnaXN0ZXJfcmVhZCkoc3RydWN0IGVlcHJvbV85M2N4NiAqZWVwcm9tKTtcXG4gIDUzOlxcdFxcdHZvaWQgKCpyZWdpc3Rlcl93cml0ZSkoc3RydWN0IGVlcHJvbV85M2N4NiAqZWVwcm9tKTtcXG4gIDU0OlxcdFxcbiAgNTU6XFx0XFx0aW50IHdpZHRoO1xcbiAgNTY6XFx0XFx0dW5zaWduZWQgaW50IHF1aXJrcztcXG4gIDU3OlxcdC8qIFNvbWUgRUVQUk9NcyByZXF1aXJlIGFuIGV4dHJhIGNsb2NrIGN5Y2xlIGJlZm9yZSByZWFkaW5nICovXFxuICA1ODpcXHQjZGVmaW5lIFBDSV9FRVBST01fUVVJUktfRVhUUkFfUkVBRF9DWUNMRVxcdEJJVCgwKVxcbiAgNTk6XFx0XFxuICA2MDpcXHRcXHRjaGFyIGRyaXZlX2RhdGE7XFxuICA2MTpcXHRcXHRjaGFyIHJlZ19kYXRhX2luO1xcbiAgNjI6XFx0XFx0Y2hhciByZWdfZGF0YV9vdXQ7XFxuICA2MzpcXHRcXHRjaGFyIHJlZ19kYXRhX2Nsb2NrO1xcbiAgNjQ6XFx0XFx0Y2hhciByZWdfY2hpcF9zZWxlY3Q7XFxuICA2NTpcXHR9O1xcbiAgNjY6XFx0XFxuICA2NzpcXHRleHRlcm4gdm9pZCBlZXByb21fOTNjeDZfcmVhZChzdHJ1Y3QgZWVwcm9tXzkzY3g2ICplZXByb20sXFxuICA2ODpcXHRcXHRjb25zdCB1OCB3b3JkLCB1MTYgKmRhdGEpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQxMzowMToxMS43OTc5MjA0NzlaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDk0MTM5NDMxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkluaXRpYWwgVGhvdWdodHMgb24gU3RydWN0IEluaXRpYWxpemF0aW9uKipcblxuT2theSwgc28gdGhlIGRlc2lnbmF0ZWQgaW5pdGlhbGl6ZXIgaXMgZ29pbmcgdG8gdGFrZSBjYXJlIG9mIHplcm9pbmcgb3V0IGFsbCB0aG9zZSBleHRyYSBmaWVsZHMgSSB3YXMgd29ycmllZCBhYm91dDogYHF1aXJrc2AsIGBkcml2ZV9kYXRhYCwgYHJlZ19kYXRhX2luYCwgYHJlZ19kYXRhX291dGAsIGByZWdfZGF0YV9jbG9ja2AsIGFuZCBgcmVnX2NoaXBfc2VsZWN0YC4gR29vZCwgZ29vZC4gQmVmb3JlLCB0aGV5IHdlcmUganVzdCBoYW5naW5nIG91dCwgdW5pbml0aWFsaXplZC4gVGhhdCB3YXMgYnVnZ2luZyBtZSBhIGJpdC5cblxuQnV0IHdhaXQgYSBzZWNvbmQuLi5kb2VzIGBlZXByb21fOTNjeDZfbXVsdGlyZWFkYCBldmVuICp1c2UqIHRob3NlIGZpZWxkcz8gSXQgdGFrZXMgYSByZWZlcmVuY2UgdG8gdGhlIGBlZXByb21gIHN0cnVjdCBhcyBhbiBhcmd1bWVudCwgYFx1MDAyNmVlcHJvbWAuIEkgbmVlZCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUuIExldCBtZSBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGUgaW1wbGVtZW50YXRpb25zIG9mIGBlZXByb21fOTNjeDZfbXVsdGlyZWFkYCBhbmQgYWxzbyBgZWVwcm9tXzkzY3g2X3JlYWRgLiBJIGNhbid0IGxlYXZlIHRoaXMgdG8gY2hhbmNlLCBlc3BlY2lhbGx5IHdoZW4gd29ya2luZyB3aXRoIEVFUFJPTSBpbnRlcmFjdGlvbnMuIEdvdHRhIGNvbmZpcm0gd2hhdCBwYXJ0cyBvZiB0aGUgc3RydWN0IGFyZSBhY3R1YWxseSBiZWluZyBhY2Nlc3NlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzE1MCwiT3V0cHV0VG9rZW5zIjoyNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExNywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDEzOjAxOjE1LjI5MjA2MloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzYyOTQ2NzQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZvaWQgZWVwcm9tXzkzY3g2X211bHRpcmVhZFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL21pc2MvZWVwcm9tL2VlcHJvbV85M2N4Ni5jPTIwNT1FWFBPUlRfU1lNQk9MX0dQTChlZXByb21fOTNjeDZfcmVhZCk7XFxuLS1cXG5kcml2ZXJzL21pc2MvZWVwcm9tL2VlcHJvbV85M2N4Ni5jLTIxOS0gKi9cXG5kcml2ZXJzL21pc2MvZWVwcm9tL2VlcHJvbV85M2N4Ni5jOjIyMDp2b2lkIGVlcHJvbV85M2N4Nl9tdWx0aXJlYWQoc3RydWN0IGVlcHJvbV85M2N4NiAqZWVwcm9tLCBjb25zdCB1OCB3b3JkLFxcbmRyaXZlcnMvbWlzYy9lZXByb20vZWVwcm9tXzkzY3g2LmMtMjIxLVxcdF9fbGUxNiAqZGF0YSwgY29uc3QgdTE2IHdvcmRzKVxcbi0tXFxuZHJpdmVycy9taXNjL2VlcHJvbS9lZXByb21fOTNjeDYuYz0yNzc9RVhQT1JUX1NZTUJPTF9HUEwoZWVwcm9tXzkzY3g2X3JlYWRiKTtcXG4tLVxcbmRyaXZlcnMvbWlzYy9lZXByb20vZWVwcm9tXzkzY3g2LmMtMjg4LSAqL1xcbmRyaXZlcnMvbWlzYy9lZXByb20vZWVwcm9tXzkzY3g2LmM6Mjg5OnZvaWQgZWVwcm9tXzkzY3g2X211bHRpcmVhZGIoc3RydWN0IGVlcHJvbV85M2N4NiAqZWVwcm9tLCBjb25zdCB1OCBieXRlLFxcbmRyaXZlcnMvbWlzYy9lZXByb20vZWVwcm9tXzkzY3g2LmMtMjkwLVxcdHU4ICpkYXRhLCBjb25zdCB1MTYgYnl0ZXMpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2VlcHJvbV85M2N4Ni5oPTY3PWV4dGVybiB2b2lkIGVlcHJvbV85M2N4Nl9yZWFkKHN0cnVjdCBlZXByb21fOTNjeDYgKmVlcHJvbSxcXG5pbmNsdWRlL2xpbnV4L2VlcHJvbV85M2N4Ni5oLTY4LVxcdGNvbnN0IHU4IHdvcmQsIHUxNiAqZGF0YSk7XFxuaW5jbHVkZS9saW51eC9lZXByb21fOTNjeDYuaDo2OTpleHRlcm4gdm9pZCBlZXByb21fOTNjeDZfbXVsdGlyZWFkKHN0cnVjdCBlZXByb21fOTNjeDYgKmVlcHJvbSxcXG5pbmNsdWRlL2xpbnV4L2VlcHJvbV85M2N4Ni5oLTcwLVxcdGNvbnN0IHU4IHdvcmQsIF9fbGUxNiAqZGF0YSwgY29uc3QgdTE2IHdvcmRzKTtcXG5pbmNsdWRlL2xpbnV4L2VlcHJvbV85M2N4Ni5oPTcxPWV4dGVybiB2b2lkIGVlcHJvbV85M2N4Nl9yZWFkYihzdHJ1Y3QgZWVwcm9tXzkzY3g2ICplZXByb20sXFxuaW5jbHVkZS9saW51eC9lZXByb21fOTNjeDYuaC03Mi1cXHRjb25zdCB1OCBieXRlLCB1OCAqZGF0YSk7XFxuaW5jbHVkZS9saW51eC9lZXByb21fOTNjeDYuaDo3MzpleHRlcm4gdm9pZCBlZXByb21fOTNjeDZfbXVsdGlyZWFkYihzdHJ1Y3QgZWVwcm9tXzkzY3g2ICplZXByb20sXFxuaW5jbHVkZS9saW51eC9lZXByb21fOTNjeDYuaC03NC1cXHRjb25zdCB1OCBieXRlLCB1OCAqZGF0YSwgY29uc3QgdTE2IGJ5dGVzKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMTM6MDE6MTcuNjU1MDE0Njk4WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzk4MjI1Mjg3OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoZXNlIGZ1bmN0aW9ucy4gSGVyZSdzIHdoYXQgSSdtIHRoaW5raW5nIGFzIEkgcHJlcGFyZSB0byBleGFtaW5lIGBlZXByb21fOTNjeDZfbXVsdGlyZWFkYCBhbmQgYGVlcHJvbV85M2N4Nl9yZWFkYDpcblxuKipEaXNzZWN0aW5nIEVFUFJPTSBSZWFkIEZ1bmN0aW9ucyoqXG5cbkFscmlnaHQsIEknbSBleHBlY3Rpbmcgc29tZSBzdGFuZGFyZCBFRVBST00gaW50ZXJhY3Rpb24gcm91dGluZXMgaGVyZSwgc3BlY2lmaWNhbGx5IHRhaWxvcmVkIGZvciB0aGUgOTNDeHggZmFtaWx5LiBTaW5jZSBgbXVsdGlyZWFkYCBpcyBpbiB0aGUgbmFtZSwgSSdtIGFudGljaXBhdGluZyB0aGlzIG9uZSB3aWxsIGhhbmRsZSByZWFkaW5nIG11bHRpcGxlIGJ5dGVzIGZyb20gdGhlIEVFUFJPTSBpbiBhIHNpbmdsZSBvcGVyYXRpb24uIFRoaXMgbGlrZWx5IHdpbGwgaW52b2x2ZSBvcHRpbWl6YXRpb24gZm9yIHNwZWVkIGJ5IG1pbmltaXppbmcgdGhlIG92ZXJoZWFkIG9mIHJlcGVhdGVkIGFkZHJlc3Mgc2V0dXAgb3Igb3RoZXIgY29tbXVuaWNhdGlvbiBzdGVwcy4gSSdsbCBuZWVkIHRvIGxvb2sgY2xvc2VseSBhdCBob3cgdGhlIGNoaXAgc2VsZWN0IChDUykgYW5kIGNsb2NrIChDTEspIGxpbmVzIGFyZSBtYW5hZ2VkLCBlc3BlY2lhbGx5IGlmIGl0J3MgdXNpbmcgYSBTUEktbGlrZSBwcm90b2NvbCBvciBzb21ldGhpbmcgbW9yZSBiZXNwb2tlLlxuXG5UaGVuLCB0aGVyZSdzIGBlZXByb21fOTNjeDZfcmVhZGAuIFRoaXMgb25lLCBwcm9iYWJseSBmb3IgYSBzaW5nbGUgYnl0ZSwgbWlnaHQgYmUgYSBzaW1wbGVyIGltcGxlbWVudGF0aW9uLCBwb3RlbnRpYWxseSBzZXJ2aW5nIGFzIHRoZSBidWlsZGluZyBibG9jayBmb3IgdGhlIGBtdWx0aXJlYWRgIGZ1bmN0aW9uIG9yIHVzZWQgaW4gc2NlbmFyaW9zIHdoZXJlIHJlYWRpbmcgYSBzaW5nbGUgdmFsdWUgaXMgbW9yZSBhcHByb3ByaWF0ZS4gSSdsbCBiZSBsb29raW5nIHRvIGNvbXBhcmUgdGhlaXIgaW1wbGVtZW50YXRpb25zLCBwYXJ0aWN1bGFybHkgdG8gc2VlIGlmIGFueSBsb3ctbGV2ZWwgaGFyZHdhcmUgYWNjZXNzIGlzIGFic3RyYWN0ZWQgaW4gZWl0aGVyIGZ1bmN0aW9uLCBvciBpZiBpdCdzIGFsbCBoYW5kbGVkIGlubGluZS4gQXJlIHRoZXJlIGFueSBlcnJvciBjaGVja3MgcHJlc2VudD8gTGlrZSwgY2hlY2tpbmcgZm9yIGEgdmFsaWQgYWRkcmVzcyBpbnB1dD8gQXJlIHRoZXJlIGFueSBvcHRpbWl6YXRpb25zIHRoYXQgbWlnaHQgbGVhZCB0byBwb3RlbnRpYWwgaXNzdWVzIGluIGNlcnRhaW4gc2NlbmFyaW9zIChsaWtlIHRpbWluZyBjb25zdHJhaW50cyk/XG5cbkknbSBob3BpbmcgdG8gc2VlIHdlbGwtY29tbWVudGVkIGNvZGUsIGdpdmVuIHRoZSBuYXR1cmUgb2YgRUVQUk9NIGludGVyYWN0aW9uLCB3aGljaCBvZnRlbiBuZWVkcyB0byBiZSBwcmVjaXNlLiBJJ2xsIGJlIGZvY3VzZWQgb24gZWZmaWNpZW5jeSwgZXJyb3IgaGFuZGxpbmcsIGFuZCB0aGUgb3ZlcmFsbCBkZXNpZ24gY2hvaWNlcyBtYWRlIHRvIG9wdGltaXplIHRoZSByZWFkIHByb2Nlc3MgZm9yIHRoZXNlIHNwZWNpZmljIGNoaXBzLiBUaGlzIGlzIGdvaW5nIHRvIGJlIGludGVyZXN0aW5nIVxuXG5cbiIsIklucHV0VG9rZW5zIjo0MTQxLCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMTM6MDE6MjEuNjM3MjcwMzY3WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg4NTYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbWlzYy9lZXByb20vZWVwcm9tXzkzY3g2LmNcIixcbiAgXCJGaXJzdExpbmVcIjogMTQwLFxuICBcIkxpbmVDb3VudFwiOiA4MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMTQwOlxcdFxcdCAqIFN0YXJ0IHJlYWRpbmcgYWxsIGJpdHMuXFxuIDE0MTpcXHRcXHQgKi9cXG4gMTQyOlxcdFxcdGZvciAoaSA9IGNvdW50OyBpIFxcdTAwM2UgMDsgaS0tKSB7XFxuIDE0MzpcXHRcXHRcXHRlZXByb21fOTNjeDZfcHVsc2VfaGlnaChlZXByb20pO1xcbiAxNDQ6XFx0XFxuIDE0NTpcXHRcXHRcXHRlZXByb20tXFx1MDAzZXJlZ2lzdGVyX3JlYWQoZWVwcm9tKTtcXG4gMTQ2OlxcdFxcbiAxNDc6XFx0XFx0XFx0LypcXG4gMTQ4OlxcdFxcdFxcdCAqIENsZWFyIGRhdGFfaW4gZmxhZy5cXG4gMTQ5OlxcdFxcdFxcdCAqL1xcbiAxNTA6XFx0XFx0XFx0ZWVwcm9tLVxcdTAwM2VyZWdfZGF0YV9pbiA9IDA7XFxuIDE1MTpcXHRcXG4gMTUyOlxcdFxcdFxcdC8qXFxuIDE1MzpcXHRcXHRcXHQgKiBSZWFkIGlmIHRoZSBiaXQgaGFzIGJlZW4gc2V0LlxcbiAxNTQ6XFx0XFx0XFx0ICovXFxuIDE1NTpcXHRcXHRcXHRpZiAoZWVwcm9tLVxcdTAwM2VyZWdfZGF0YV9vdXQpXFxuIDE1NjpcXHRcXHRcXHRcXHRidWYgfD0gQklUKGkgLSAxKTtcXG4gMTU3OlxcdFxcbiAxNTg6XFx0XFx0XFx0ZWVwcm9tXzkzY3g2X3B1bHNlX2xvdyhlZXByb20pO1xcbiAxNTk6XFx0XFx0fVxcbiAxNjA6XFx0XFxuIDE2MTpcXHRcXHQqZGF0YSA9IGJ1ZjtcXG4gMTYyOlxcdH1cXG4gMTYzOlxcdFxcbiAxNjQ6XFx0LyoqXFxuIDE2NTpcXHQgKiBlZXByb21fOTNjeDZfcmVhZCAtIFJlYWQgYSB3b3JkIGZyb20gZWVwcm9tXFxuIDE2NjpcXHQgKiBAZWVwcm9tOiBQb2ludGVyIHRvIGVlcHJvbSBzdHJ1Y3R1cmVcXG4gMTY3OlxcdCAqIEB3b3JkOiBXb3JkIGluZGV4IGZyb20gd2hlcmUgd2Ugc2hvdWxkIHN0YXJ0IHJlYWRpbmdcXG4gMTY4OlxcdCAqIEBkYXRhOiB0YXJnZXQgcG9pbnRlciB3aGVyZSB0aGUgaW5mb3JtYXRpb24gd2lsbCBoYXZlIHRvIGJlIHN0b3JlZFxcbiAxNjk6XFx0ICpcXG4gMTcwOlxcdCAqIFRoaXMgZnVuY3Rpb24gd2lsbCByZWFkIHRoZSBlZXByb20gZGF0YSBhcyBob3N0LWVuZGlhbiB3b3JkXFxuIDE3MTpcXHQgKiBpbnRvIHRoZSBnaXZlbiBkYXRhIHBvaW50ZXIuXFxuIDE3MjpcXHQgKi9cXG4gMTczOlxcdHZvaWQgZWVwcm9tXzkzY3g2X3JlYWQoc3RydWN0IGVlcHJvbV85M2N4NiAqZWVwcm9tLCBjb25zdCB1OCB3b3JkLFxcbiAxNzQ6XFx0XFx0dTE2ICpkYXRhKVxcbiAxNzU6XFx0e1xcbiAxNzY6XFx0XFx0dTE2IGNvbW1hbmQ7XFxuIDE3NzpcXHRcXG4gMTc4OlxcdFxcdC8qXFxuIDE3OTpcXHRcXHQgKiBJbml0aWFsaXplIHRoZSBlZXByb20gcmVnaXN0ZXJcXG4gMTgwOlxcdFxcdCAqL1xcbiAxODE6XFx0XFx0ZWVwcm9tXzkzY3g2X3N0YXJ0dXAoZWVwcm9tKTtcXG4gMTgyOlxcdFxcbiAxODM6XFx0XFx0LypcXG4gMTg0OlxcdFxcdCAqIFNlbGVjdCB0aGUgcmVhZCBvcGNvZGUgYW5kIHRoZSB3b3JkIHRvIGJlIHJlYWQuXFxuIDE4NTpcXHRcXHQgKi9cXG4gMTg2OlxcdFxcdGNvbW1hbmQgPSAoUENJX0VFUFJPTV9SRUFEX09QQ09ERSBcXHUwMDNjXFx1MDAzYyBlZXByb20tXFx1MDAzZXdpZHRoKSB8IHdvcmQ7XFxuIDE4NzpcXHRcXHRlZXByb21fOTNjeDZfd3JpdGVfYml0cyhlZXByb20sIGNvbW1hbmQsXFxuIDE4ODpcXHRcXHRcXHRQQ0lfRUVQUk9NX1dJRFRIX09QQ09ERSArIGVlcHJvbS1cXHUwMDNld2lkdGgpO1xcbiAxODk6XFx0XFxuIDE5MDpcXHRcXHRpZiAoaGFzX3F1aXJrX2V4dHJhX3JlYWRfY3ljbGUoZWVwcm9tKSkge1xcbiAxOTE6XFx0XFx0XFx0ZWVwcm9tXzkzY3g2X3B1bHNlX2hpZ2goZWVwcm9tKTtcXG4gMTkyOlxcdFxcdFxcdGVlcHJvbV85M2N4Nl9wdWxzZV9sb3coZWVwcm9tKTtcXG4gMTkzOlxcdFxcdH1cXG4gMTk0OlxcdFxcbiAxOTU6XFx0XFx0LypcXG4gMTk2OlxcdFxcdCAqIFJlYWQgdGhlIHJlcXVlc3RlZCAxNiBiaXRzLlxcbiAxOTc6XFx0XFx0ICovXFxuIDE5ODpcXHRcXHRlZXByb21fOTNjeDZfcmVhZF9iaXRzKGVlcHJvbSwgZGF0YSwgMTYpO1xcbiAxOTk6XFx0XFxuIDIwMDpcXHRcXHQvKlxcbiAyMDE6XFx0XFx0ICogQ2xlYW51cCBlZXByb20gcmVnaXN0ZXIuXFxuIDIwMjpcXHRcXHQgKi9cXG4gMjAzOlxcdFxcdGVlcHJvbV85M2N4Nl9jbGVhbnVwKGVlcHJvbSk7XFxuIDIwNDpcXHR9XFxuIDIwNTpcXHRFWFBPUlRfU1lNQk9MX0dQTChlZXByb21fOTNjeDZfcmVhZCk7XFxuIDIwNjpcXHRcXG4gMjA3OlxcdC8qKlxcbiAyMDg6XFx0ICogZWVwcm9tXzkzY3g2X211bHRpcmVhZCAtIFJlYWQgbXVsdGlwbGUgd29yZHMgZnJvbSBlZXByb21cXG4gMjA5OlxcdCAqIEBlZXByb206IFBvaW50ZXIgdG8gZWVwcm9tIHN0cnVjdHVyZVxcbiAyMTA6XFx0ICogQHdvcmQ6IFdvcmQgaW5kZXggZnJvbSB3aGVyZSB3ZSBzaG91bGQgc3RhcnQgcmVhZGluZ1xcbiAyMTE6XFx0ICogQGRhdGE6IHRhcmdldCBwb2ludGVyIHdoZXJlIHRoZSBpbmZvcm1hdGlvbiB3aWxsIGhhdmUgdG8gYmUgc3RvcmVkXFxuIDIxMjpcXHQgKiBAd29yZHM6IE51bWJlciBvZiB3b3JkcyB0aGF0IHNob3VsZCBiZSByZWFkLlxcbiAyMTM6XFx0ICpcXG4gMjE0OlxcdCAqIFRoaXMgZnVuY3Rpb24gd2lsbCByZWFkIGFsbCByZXF1ZXN0ZWQgd29yZHMgZnJvbSB0aGUgZWVwcm9tLFxcbiAyMTU6XFx0ICogdGhpcyBpcyBkb25lIGJ5IGNhbGxpbmcgZWVwcm9tXzkzY3g2X3JlYWQoKSBtdWx0aXBsZSB0aW1lcy5cXG4gMjE2OlxcdCAqIEJ1dCB3aXRoIHRoZSBhZGRpdGlvbmFsIGNoYW5nZSB0aGF0IHdoaWxlIHRoZSBlZXByb21fOTNjeDZfcmVhZFxcbiAyMTc6XFx0ICogd2lsbCByZXR1cm4gaG9zdCBvcmRlcmVkIGJ5dGVzLCB0aGlzIG1ldGhvZCB3aWxsIHJldHVybiBsaXR0bGVcXG4gMjE4OlxcdCAqIGVuZGlhbiB3b3Jkcy5cXG4gMjE5OlxcdCAqL1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQxMzowMToyMS42MzczNjE3NDdaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjM3MDU1NDU4NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGaXhpbmcgYSBTdWJ0bGUgRUVQUk9NIEluaXRpYWxpemF0aW9uIEJ1ZyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYGVlcHJvbV85M2N4Nl9yZWFkYCBmdW5jdGlvbiwgYW5kIGl0IGNhbGxzIGBlZXByb21fOTNjeDZfc3RhcnR1cGAuICBSaWdodCwgdGhhdCBzZXRzIGFsbCB0aGUgY29udHJvbCByZWdpc3RlcnMgZm9yIHRoZSBFRVBST006IGBkYXRhX2luYCwgYGRhdGFfb3V0YCwgYGNsb2NrYCwgYGNoaXBfc2VsZWN0YCwgYW5kIGBkcml2ZV9kYXRhYC4gRXZlcnl0aGluZyBzZWVtcyBub3JtYWwgdGhlcmUuXG5cbkJ1dCB0aGVuLCBJIHNlZSB0aGlzIGBoYXNfcXVpcmtfZXh0cmFfcmVhZF9jeWNsZShlZXByb20pYCBjaGVjay4gIEl0J3MgY2hlY2tpbmcgdGhlIGBlZXByb20tXHUwMDNlcXVpcmtzYCBmaWVsZC4gSG1tLi4uIGlmIGBlZXByb20tXHUwMDNlcXVpcmtzYCB3YXNuJ3QgaW5pdGlhbGl6ZWQsIGl0IGNvdWxkIGNvbnRhaW4gZ2FyYmFnZSB2YWx1ZXMuIFRoYXQgY291bGQgbGVhZCBgaGFzX3F1aXJrX2V4dHJhX3JlYWRfY3ljbGVgIHRvIHJldHVybiB0cnVlIHdoZW4gaXQgc2hvdWxkbid0LiBBbmQgSSBiZXQgaXQgaGFzIVxuXG5BaCwgcmlnaHQsIG5vdyBJIHJlbWVtYmVyLiBUaGUgYHN0cnVjdCBlZXByb21fOTNjeDYgZWVwcm9tO2AgaXMgZGVjbGFyZWQgb24gdGhlIHN0YWNrLCB3aXRoaW4gdGhlIGBheF9pbml0X2RldmAgZnVuY3Rpb24uIFRoZSBjb21waWxlciB3b24ndCBpbml0aWFsaXplIGl0LCBzbyBpdCdsbCBoYXZlIHdoYXRldmVyIGdhcmJhZ2Ugd2FzIGFscmVhZHkgdGhlcmUhIEFuZCB0aGUgYHF1aXJrc2AgZmllbGQgd2l0aGluIGBlZXByb21gIHdvdWxkIGhhdmUgYmVlbiB1bmluaXRpYWxpemVkLlxuXG5UaGUgc29sdXRpb24gaXMgc2ltcGxlLiBVc2luZyBhIGRlc2lnbmF0ZWQgaW5pdGlhbGl6ZXIsIEkgY2FuIGV4cGxpY2l0bHkgemVyby1pbml0aWFsaXplIGBlZXByb20ucXVpcmtzYC4gVGhpcyBndWFyYW50ZWVzIHRoYXQgYHF1aXJrc2Agd2lsbCBzdGFydCBhdCB6ZXJvLCBmaXhpbmcgdGhpcyBwb3RlbnRpYWwgYnVnLiBUaGlzIGlzIGdyZWF0LCBubyBtb3JlIHJhbmRvbSByZWFkcy5cblxuTm93LCBJIHdvbmRlciBpZiB0aGUgYGF4ODg3OTZgIGRyaXZlciwgdGhlIG9uZSB0aGF0IHVzZXMgdGhpcyBjb2RlLCBpcyBhIGNhbmRpZGF0ZSBmb3IgZnV6emluZy4gSXQncyBhbiBJU0EvcGxhdGZvcm0gZHJpdmVyLCBzbyBpdCBjb3VsZCBiZS4gTGV0IG1lIGNoZWNrIHRoZSBzb3VyY2UgY29kZSBpbiBgYXg4ODc5Ni5jYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTc0OCwiT3V0cHV0VG9rZW5zIjo0NiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4OSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDEzOjAxOjI4LjAwNzkxOTg5MloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTExMjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmNcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogNTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHQvKiBkcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuY1xcbiAgIDM6XFx0ICpcXG4gICA0OlxcdCAqIENvcHlyaWdodCAyMDA1LDIwMDcgU2ltdGVjIEVsZWN0cm9uaWNzXFxuICAgNTpcXHQgKlxcdEJlbiBEb29rcyBcXHUwMDNjYmVuQHNpbXRlYy5jby51a1xcdTAwM2VcXG4gICA2OlxcdCAqXFxuICAgNzpcXHQgKiBBc2l4IEFYODg3OTYgMTAvMTAwIEV0aGVybmV0IGNvbnRyb2xsZXIgc3VwcG9ydFxcbiAgIDg6XFx0ICpcXHRCYXNlZCBvbiBuZS5jLCBieSBEb25hbGQgQmVja2VyLCBldC1hbC5cXG4gICA5OlxcdCAqL1xcbiAgMTA6XFx0XFxuICAxMTpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvbW9kdWxlLmhcXHUwMDNlXFxuICAxMjpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgva2VybmVsLmhcXHUwMDNlXFxuICAxMzpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvZXJybm8uaFxcdTAwM2VcXG4gIDE0OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9pc2FwbnAuaFxcdTAwM2VcXG4gIDE1OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9pbnRlcnJ1cHQuaFxcdTAwM2VcXG4gIDE2OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9pby5oXFx1MDAzZVxcbiAgMTc6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3BsYXRmb3JtX2RldmljZS5oXFx1MDAzZVxcbiAgMTg6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2RlbGF5LmhcXHUwMDNlXFxuICAxOTpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvdGltZXIuaFxcdTAwM2VcXG4gIDIwOlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9uZXRkZXZpY2UuaFxcdTAwM2VcXG4gIDIxOlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9ldGhlcmRldmljZS5oXFx1MDAzZVxcbiAgMjI6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2V0aHRvb2wuaFxcdTAwM2VcXG4gIDIzOlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9tZGlvLWJpdGJhbmcuaFxcdTAwM2VcXG4gIDI0OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9waHkuaFxcdTAwM2VcXG4gIDI1OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9lZXByb21fOTNjeDYuaFxcdTAwM2VcXG4gIDI2OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9zbGFiLmhcXHUwMDNlXFxuICAyNzpcXHRcXG4gIDI4OlxcdCNpbmNsdWRlIFxcdTAwM2NuZXQvYXg4ODc5Ni5oXFx1MDAzZVxcbiAgMjk6XFx0XFxuICAzMDpcXHRcXG4gIDMxOlxcdC8qIFJlbmFtZSB0aGUgbGliODM5MC5jIGZ1bmN0aW9ucyB0byBzaG93IHRoYXQgdGhleSBhcmUgaW4gdGhpcyBkcml2ZXIgKi9cXG4gIDMyOlxcdCNkZWZpbmUgX19laV9vcGVuIGF4X2VpX29wZW5cXG4gIDMzOlxcdCNkZWZpbmUgX19laV9jbG9zZSBheF9laV9jbG9zZVxcbiAgMzQ6XFx0I2RlZmluZSBfX2VpX3BvbGwgYXhfZWlfcG9sbFxcbiAgMzU6XFx0I2RlZmluZSBfX2VpX3N0YXJ0X3htaXQgYXhfZWlfc3RhcnRfeG1pdFxcbiAgMzY6XFx0I2RlZmluZSBfX2VpX3R4X3RpbWVvdXQgYXhfZWlfdHhfdGltZW91dFxcbiAgMzc6XFx0I2RlZmluZSBfX2VpX2dldF9zdGF0cyBheF9laV9nZXRfc3RhdHNcXG4gIDM4OlxcdCNkZWZpbmUgX19laV9zZXRfbXVsdGljYXN0X2xpc3QgYXhfZWlfc2V0X211bHRpY2FzdF9saXN0XFxuICAzOTpcXHQjZGVmaW5lIF9fZWlfaW50ZXJydXB0IGF4X2VpX2ludGVycnVwdFxcbiAgNDA6XFx0I2RlZmluZSBfX19fYWxsb2NfZWlfbmV0ZGV2IGF4X19hbGxvY19laV9uZXRkZXZcXG4gIDQxOlxcdCNkZWZpbmUgX19OUzgzOTBfaW5pdCBheF9OUzgzOTBfaW5pdFxcbiAgNDI6XFx0XFxuICA0MzpcXHQvKiBmb3JjZSB1bnNpZ25lZCBsb25nIGJhY2sgdG8gJ3ZvaWQgX19pb21lbSAqJyAqL1xcbiAgNDQ6XFx0I2RlZmluZSBheF9jb252ZXJ0X2FkZHIoX2EpICgodm9pZCBfX2ZvcmNlIF9faW9tZW0gKikoX2EpKVxcbiAgNDU6XFx0XFxuICA0NjpcXHQjZGVmaW5lIGVpX2luYihfYSkgcmVhZGIoYXhfY29udmVydF9hZGRyKF9hKSlcXG4gIDQ3OlxcdCNkZWZpbmUgZWlfb3V0YihfdiwgX2EpIHdyaXRlYihfdiwgYXhfY29udmVydF9hZGRyKF9hKSlcXG4gIDQ4OlxcdFxcbiAgNDk6XFx0I2RlZmluZSBlaV9pbmJfcChfYSkgZWlfaW5iKF9hKVxcbiAgNTA6XFx0I2RlZmluZSBlaV9vdXRiX3AoX3YsIF9hKSBlaV9vdXRiKF92LCBfYSlcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMTM6MDE6MjguMDA4MDMyNjgyWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyODUxMzk2NzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCBtZSBicmVhayB0aGlzIGRvd24uXG5cbioqRnV6emluZyBhIFBsYXRmb3JtIERldmljZSBEcml2ZXIqKlxuXG5SaWdodCwgc28gdGhpcyBjb2RlIGlzIGRlZmluaXRlbHkgYSBwbGF0Zm9ybSBkZXZpY2UgZHJpdmVyLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgXCJDYW4gdGhpcyBiZSBmdXp6ZWQgZWZmZWN0aXZlbHk/XCIgVGhlIGFuc3dlciwgYXMgSSB1bmRlcnN0YW5kIGl0LCBpcyB5ZXMuIFdlIGNhbiBsZXZlcmFnZSB0b29scyBsaWtlIFN5emthbGxlci4gSXQgY2FuIGNyZWF0ZSBwbGF0Zm9ybSBkZXZpY2VzIGZvciB1cywgbGlrZWx5IHVzaW5nIGBzeXpfZGV2X2NyZWF0ZWAgb3Igc29tZXRoaW5nIGFuYWxvZ291cy4gSWYgdGhlIHRhcmdldCBwbGF0Zm9ybSBzdXBwb3J0cyBpbmplY3Rpb24sIGV2ZW4gYmV0dGVyLCB3ZSBoYXZlIG1vcmUgY29udHJvbC5cblxuVGhlbiBJIHF1aWNrbHkgcmVhbGl6ZWQsIEkgbmVlZCB0byBjaGVjayBob3cgdGhlIHBsYXRmb3JtIGRldmljZSBpbnRlcmFjdHMgd2l0aCB0aGUgc3lzdGVtLiBJIHJlbWVtYmVyIHRoYXQgYGF4X2luaXRfZGV2YCBnZXRzIGNhbGxlZCBmcm9tIGBheF9wcm9iZWAuIE9rYXksIHRoYXQncyB0aGUgaW5pdGlhbGl6YXRpb24sIHNvIEkgbmVlZCB0byBmb2N1cyBvbiB3aGF0IGhhcHBlbnMgd2l0aGluIHRob3NlIGZ1bmN0aW9ucyB3aGVuIGRlc2lnbmluZyBteSBmdXp6aW5nIGFwcHJvYWNoLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3MzMwLCJPdXRwdXRUb2tlbnMiOjE5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjcsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQxMzowMTozMS4yOTMxNzUzNVoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjAwMzkxNzc2OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJheF9pbml0X2RldlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYz02NjA9c3RhdGljIHZvaWQgYXhfaW5pdGlhbF9zZXR1cChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgZWlfZGV2aWNlICplaV9sb2NhbClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTY3My0vKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjY3NDogKiBheF9pbml0X2RldlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTY3NS0gKlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtNjgwLSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjY4MTpzdGF0aWMgaW50IGF4X2luaXRfZGV2KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtNjgyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jPTg0ND1zdGF0aWMgaW50IGF4X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy05NDQtXFx0LyogZ290IHJlc291cmNlcywgbm93IGluaXRpYWxpc2UgYW5kIHJlZ2lzdGVyIGRldmljZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjk0NTpcXHRyZXQgPSBheF9pbml0X2RldihkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTk0Ni1cXHRpZiAoIXJldClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMTM6MDE6MzMuMjk3MDk4ODg5WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1NDEwNzY1MjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi5cblxuKipJbml0aWFsIEFzc2Vzc21lbnQgb2YgYSBEcml2ZXIgUGF0Y2gqKlxuXG5SaWdodCwgc28gYGF4X2luaXRfZGV2YCBpcyBjYWxsZWQgd2l0aGluIHRoZSBwcm9iZSBmdW5jdGlvbi4gVGhhdCdzIGEgZ29vZCBwbGFjZSB0byBzdGFydCwgaXQncyB0aGUgaW5pdGlhbGl6YXRpb24gcGhhc2UuIFRoZSBwYXRjaCwgc3BlY2lmaWNhbGx5LCBpcyBhZGRyZXNzaW5nIGFuIHVuaW5pdGlhbGl6ZWQgc3RhY2sgdmFyaWFibGUuIE15IGluaXRpYWwgcmVhY3Rpb24gaXMsICp5ZXMqLCB0aGF0J3Mgc29tZXRoaW5nIHRvIHBheSBhdHRlbnRpb24gdG8uIFVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzIGFyZSBhIGNsYXNzaWMgc291cmNlIG9mIHByb2JsZW1zLCBhbmQgdGhleSBjYW4gbGVhZCB0byBzb21lIHJlYWxseSBuYXN0eSwgaGFyZC10by1kZWJ1ZyBiZWhhdmlvciwgZXNwZWNpYWxseSBpbiBhIGRyaXZlci5cblxuVGhlIG5leHQgcXVlc3Rpb246IGlzIGl0IHdvcnRoIGZ1enppbmcgdGhpcz8gQWJzb2x1dGVseSwgaW4gdGhpcyBjYXNlLiBGaXhpbmcgYSBidWcgaW4gdGhlIHByb2JlIHBhdGggb2YgYSBkcml2ZXIgaXMgc2lnbmlmaWNhbnQuIEl0J3MgYSBoaWdoLXZhbHVlIHRhcmdldCBmb3IgZnV6emluZyBiZWNhdXNlIGl0IGNhbiB1bmNvdmVyIGEgdmFyaWV0eSBvZiBtZW1vcnktcmVsYXRlZCBpc3N1ZXMsIHJhY2UgY29uZGl0aW9ucywgb3Igb3RoZXIgdW5leHBlY3RlZCBiZWhhdmlvcnMgdGhhdCBzdGVtIGZyb20gdW5pbml0aWFsaXplZCB2YXJpYWJsZXMuXG5cbkFscmlnaHQsIG5vdyBsZXQgbWUgY2hlY2sgdGhlIHJlbGV2YW50IEtjb25maWcgb3B0aW9uczogYEFYODg3OTZfOTNDWDZgIGFuZCBgQVg4ODc5NmAuIEkgd2FudCB0byB1bmRlcnN0YW5kIHRoZSBjb25maWd1cmF0aW9uIHNwYWNlIG9mIHRoZSBkcml2ZXIgYW5kIGl0cyBkZXBlbmRlbmNpZXMuIFRoaXMgaW5mb3JtYXRpb24gd2lsbCBpbmZvcm0gbXkgZnV6emluZyBzdHJhdGVneSBieSBoZWxwaW5nIG1lIGRldGVybWluZSB3aGljaCBidWlsZCBjb25maWd1cmF0aW9ucyBhcmUgdGhlIG1vc3QgaW1wb3J0YW50IGFuZCBob3cgdGhlIG5ldyBwYXRjaCB3aWxsIGltcGFjdCBkaWZmZXJlbnQgc3lzdGVtcy5cblxuXG4iLCJJbnB1dFRva2VucyI6Nzk3NywiT3V0cHV0VG9rZW5zIjoyMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDEzOjAxOjM2LjgzODE3Nzc2NVoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjIwNzI0MTA2MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQVg4ODc5NlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL0tjb25maWc9MTg9aWYgTkVUX1ZFTkRPUl84MzkwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9LY29uZmlnLTE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvS2NvbmZpZzoyMDpjb25maWcgQVg4ODc5NlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZSBcXFwiQVNJWCBBWDg4Nzk2IE5FMjAwMCBjbG9uZSBzdXBwb3J0XFxcIiBpZiAhWk9SUk9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvS2NvbmZpZy0yOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL0tjb25maWc6MzA6Y29uZmlnIEFYODg3OTZfOTNDWDZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL0tjb25maWctMzEtXFx0Ym9vbCBcXFwiQVNJWCBBWDg4Nzk2IGV4dGVybmFsIDkzQ1g2IGVlcHJvbSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L0tjb25maWc9MTUyPXNvdXJjZSBcXFwiZHJpdmVycy9uZXQvcGh5L2FxdWFudGlhL0tjb25maWdcXFwiXFxuZHJpdmVycy9uZXQvcGh5L0tjb25maWctMTUzLVxcbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnOjE1NDpjb25maWcgQVg4ODc5NkJfUEhZXFxuZHJpdmVycy9uZXQvcGh5L0tjb25maWctMTU1LVxcdHRyaXN0YXRlIFxcXCJBc2l4IFBIWXNcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvS2NvbmZpZy0xNTktXFxuZHJpdmVycy9uZXQvcGh5L0tjb25maWc6MTYwOmNvbmZpZyBBWDg4Nzk2Ql9SVVNUX1BIWVxcbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnLTE2MS1cXHRib29sIFxcXCJSdXN0IHJlZmVyZW5jZSBkcml2ZXIgZm9yIEFzaXggUEhZc1xcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMTM6MDE6MzkuMDQ1NDI1NDk2WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5NTc5Njg3NTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRGVwZW5kZW5jeSBEZWVwIERpdmUqKlxuXG5Pa2F5LCB0aW1lIHRvIGdldCBncmFudWxhci4gVGhlIHRhc2sgaXMgY2xlYXI6IEkgbmVlZCB0byBkaXNzZWN0IHRoZSBkZXBlbmRlbmNpZXMgb2YgYEFYODg3OTZgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gaW1tZWRpYXRlbHkgZGl2ZSBpbnRvIHRoZSBtYW5pZmVzdCBmaWxlcywgb2YgY291cnNlLiBJJ2xsIG5lZWQgdG8gbWFwIG91dCB0aGUgZW50aXJlIGRlcGVuZGVuY3kgZ3JhcGgsIGZyb20gZGlyZWN0IGRlcGVuZGVuY2llcyB0byB0cmFuc2l0aXZlIG9uZXMsIGJlY2F1c2UgaGlkZGVuIGRlcGVuZGVuY2llcyBhcmUgdGhlIG9uZXMgdGhhdCB1c3VhbGx5IGJpdGUgeW91IGxhdGVyLCB5b3Uga25vdz8gTXkgZ3V0IHRlbGxzIG1lIHRoZXJlIG1pZ2h0IGJlIHNvbWUgY29tcGxleGl0aWVzIHdpdGggaXRzIHBhY2thZ2UgZm9ybWF0LCBzbyBJIHdpbGwgd2F0Y2ggZm9yIGFueXRoaW5nIG91dCBvZiB0aGUgb3JkaW5hcnkgcmlnaHQgYXdheS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaWYgdGhlcmUgYXJlIGFueSB2ZXJzaW9uIGNvbmZsaWN0cyBvciBwb3RlbnRpYWwgc2VjdXJpdHkgdnVsbmVyYWJpbGl0aWVzIGx1cmtpbmcgd2l0aGluIHRoaXMgZGVwZW5kZW5jeSBjaGFpbi4gVGhlIG1vcmUgSSBsZWFybiB1cCBmcm9udCwgdGhlIGJldHRlciBteSB1bmRlcnN0YW5kaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4NzE4LCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMTM6MDE6NDIuMDAzMzk2NDQyWiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcwMDIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxOCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAxODpcXHRpZiBORVRfVkVORE9SXzgzOTBcXG4gIDE5OlxcdFxcbiAgMjA6XFx0Y29uZmlnIEFYODg3OTZcXG4gIDIxOlxcdFxcdHRyaXN0YXRlIFxcXCJBU0lYIEFYODg3OTYgTkUyMDAwIGNsb25lIHN1cHBvcnRcXFwiIGlmICFaT1JST1xcbiAgMjI6XFx0XFx0ZGVwZW5kcyBvbiAoQVJNIHx8IE1JUFMgfHwgU1VQRVJIIHx8IFpPUlJPIHx8IENPTVBJTEVfVEVTVClcXG4gIDIzOlxcdFxcdHNlbGVjdCBDUkMzMlxcbiAgMjQ6XFx0XFx0c2VsZWN0IFBIWUxJQlxcbiAgMjU6XFx0XFx0c2VsZWN0IE1ESU9fQklUQkFOR1xcbiAgMjY6XFx0XFx0aGVscFxcbiAgMjc6XFx0XFx0ICBBWDg4Nzk2IGRyaXZlciwgdXNpbmcgcGxhdGZvcm0gYnVzIHRvIHByb3ZpZGVcXG4gIDI4OlxcdFxcdCAgY2hpcCBkZXRlY3Rpb24gYW5kIHJlc291cmNlc1xcbiAgMjk6XFx0XFxuICAzMDpcXHRjb25maWcgQVg4ODc5Nl85M0NYNlxcbiAgMzE6XFx0XFx0Ym9vbCBcXFwiQVNJWCBBWDg4Nzk2IGV4dGVybmFsIDkzQ1g2IGVlcHJvbSBzdXBwb3J0XFxcIlxcbiAgMzI6XFx0XFx0ZGVwZW5kcyBvbiBBWDg4Nzk2XFxuICAzMzpcXHRcXHRzZWxlY3QgRUVQUk9NXzkzQ1g2XFxuICAzNDpcXHRcXHRoZWxwXFxuICAzNTpcXHRcXHQgIFNlbGVjdCB0aGlzIGlmIHlvdXIgcGxhdGZvcm0gY29tZXMgd2l0aCBhbiBleHRlcm5hbCA5M0NYNiBlZXByb20uXFxuICAzNjpcXHRcXG4gIDM3OlxcdGNvbmZpZyBYU1VSRjEwMFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQxMzowMTo0Mi4wMDM0NjgxNTJaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjMwMDQ5MjQ0OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEZ1enppbmcgUG90ZW50aWFsIG9mIHRoZSBBWDg4Nzk2IE5ldHdvcmsgRHJpdmVyIGluIFN5emthbGxlcioqXG5cbk9rYXksIHNvIEknbSBkaWdnaW5nIGludG8gaG93IHdlIGNhbiBwb3RlbnRpYWxseSBmdXp6IHRoZSBgQVg4ODc5NmAgbmV0d29yayBkcml2ZXIgdXNpbmcgU3l6a2FsbGVyLiBJdCBsb29rcyBsaWtlIGBBWDg4Nzk2YCByZWxpZXMgb24gYm90aCBgTkVUX1ZFTkRPUl84MzkwYCBhbmQgYSBmZXcgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIG9wdGlvbnM6IGBBUk1gLCBgTUlQU2AsIGBTVVBFUkhgLCBgWk9SUk9gLCBvciBgQ09NUElMRV9URVNUYC4gR2l2ZW4gdGhhdCBTeXprYWxsZXIgaXMgcnVubmluZyBvbiB4ODZfNjQsIGBDT01QSUxFX1RFU1RgIHNlZW1zIG5lY2Vzc2FyeSB0byBldmVuIGNvbXBpbGUgdGhlIGRyaXZlciwgYnV0IHRoZSByZWFsIHF1ZXN0aW9uIGlzIHdoZXRoZXIgaXQgY2FuIGJlIG1lYW5pbmdmdWxseSBcInByb2JlZC5cIlxuXG5XYWl0IGEgbWludXRlLCB0aGUgYGF4ODg3OTZgIGRyaXZlciBpcyBhY3R1YWxseSBhICpwbGF0Zm9ybSogZHJpdmVyLiBUaGF0IGNoYW5nZXMgdGhpbmdzLiBQbGF0Zm9ybSBkcml2ZXJzIGFyZSB0eXBpY2FsbHkgcHJvYmVkIGlmIGEgcGxhdGZvcm0gZGV2aWNlIGlzIGNyZWF0ZWQgaW4gdGhlIHN5c3RlbS4gSSB3YXMgaW5pdGlhbGx5IHRoaW5raW5nIGFib3V0IGBzeXpfZGV2X2NyZWF0ZWAg4oCTIHRoYXQgcHNldWRvLXN5c2NhbGwgbWlnaHQgaGF2ZSBiZWVuIHVzZWZ1bCB0byBjcmVhdGUgYSBkZXZpY2Ugb24gdGhlIGZseSwgYnV0IEkgcmVtZW1iZXIgdGhhdCdzIG1vcmUgbGltaXRlZCBpbiBzY29wZSwgYW5kIG5vdCB0aGUgcmlnaHQgYXBwcm9hY2ggaGVyZS4gQ291bGQgSSBtYXliZSBsZXZlcmFnZSBgc3l6X2dlbmV0bGlua19nZXRfZmFtaWx5YCB0byBpbmplY3QgYSBwbGF0Zm9ybSBkZXZpY2U/IE5vLCB0aGF0J3MgZ2VuZXJhbGx5IG5vdCBob3cgcGxhdGZvcm0gZGV2aWNlcyBhcmUgaGFuZGxlZC4gVGhleSdyZSB1c3VhbGx5IGNyZWF0ZWQgdmlhIHRoZSBkZXZpY2UgdHJlZSBvciB0aGUgYm9hcmQgY29kZS5cblxuT2theSwgbGV0J3MgcmVjYWxpYnJhdGUuIERvZXMgU3l6a2FsbGVyIGhhdmUgYSBwc2V1ZG8tc3lzY2FsbCBsaWtlIGBzeXpfcGxhdGZvcm1fZGV2aWNlX2FkZGAgdGhhdCBJJ20gZm9yZ2V0dGluZyBhYm91dD8gTm8sIHRoYXQncyBub3QgcmluZ2luZyBhbnkgYmVsbHMuIEl0IGxvb2tzIGxpa2UgdGhlIG9ubHkgcmVhbGlzdGljIHJvdXRlIGlzIGlmIHRoZSBwbGF0Zm9ybSBkcml2ZXIgaXMgKmFscmVhZHkqIHJlZ2lzdGVyZWQgaW4gdGhlIGtlcm5lbCBhbmQgdGhlcmUncyBhIG1lY2hhbmlzbSBpbiB0aGUga2VybmVsIHRvIHRyaWdnZXIgaXRzIHByb2JlIGZ1bmN0aW9uLiBUaGUga2V5IHF1ZXN0aW9uIGlzIHdoZXRoZXIgU3l6a2FsbGVyIGNhbiBzb21laG93IHRyaWdnZXIgdGhhdCBwcm9iZSBmb3IgYGF4ODg3OTZgLlxuXG5TbywgdGhlIG5leHQgc3RlcCBpcyBkZWZpbml0ZWx5IHRvIHNlZSBpZiB0aGVyZSdzIGFueSBleGlzdGluZyBTeXprYWxsZXIgZGVzY3JpcHRpb24sIG9yIGlmIHNvbWVvbmUgaGFzIGFscmVhZHkgdGhvdWdodCBhYm91dCBhbmQgcG90ZW50aWFsbHkgaW1wbGVtZW50ZWQgZnV6emluZyBmb3IgYGF4ODg3OTZgLiBUaGF0IHNob3VsZCB0ZWxsIG1lIGlmIHRoZXJlJ3MgYSBwcmFjdGljYWwgcGF0aCBmb3J3YXJkIG9yIGlmIHNvbWUgc2lnbmlmaWNhbnQga2VybmVsIGNoYW5nZXMgb3IgbmV3IHBzZXVkby1zeXNjYWxscyB3b3VsZCBiZSBuZWVkZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjkyMzYsIk91dHB1dFRva2VucyI6MjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyODgsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQxMzowMTo0OC4zMDM5NjI5MDFaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4NTMwODI5NjEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXg4ODc5NlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDcxMyBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWwtMy0tLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvbmV0L2FzaXgsYXg4ODc5NmMueWFtbCNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbC01LSRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sI1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWw9MjQ9cHJvcGVydGllczpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbC0yNS0gIGNvbXBhdGlibGU6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWw6MjY6ICAgIGNvbnN0OiBhc2l4LGF4ODg3OTZjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWwtMjctXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbD01Nj1leGFtcGxlczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sLTY1LSAgICAgICAgZXRoZXJuZXRAMCB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWw6NjY6ICAgICAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJhc2l4LGF4ODg3OTZjXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbC02Ny0gICAgICAgICAgICByZWcgPSBcXHUwMDNjMHgwXFx1MDAzZTtcXG4tLVxcbk1BSU5UQUlORVJTPTQwMDE9UzpcXHRNYWludGFpbmVkXFxuTUFJTlRBSU5FUlM6NDAwMjpGOlxcdERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sXFxuTUFJTlRBSU5FUlM6NDAwMzpGOlxcdGRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfKlxcbk1BSU5UQUlORVJTLTQwMDQtXFxuLS1cXG5NQUlOVEFJTkVSUz00MDEwPVM6XFx0TWFpbnRhaW5lZFxcbk1BSU5UQUlORVJTOjQwMTE6RjpcXHRkcml2ZXJzL25ldC9waHkvYXg4ODc5NmJfcnVzdC5yc1xcbk1BSU5UQUlORVJTLTQwMTItXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9zYW1zdW5nL2V4eW5vczMyNTAtYXJ0aWs1LWV2YWwuZHRzPTU2PVxcdGV0aGVybmV0QDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL3NhbXN1bmcvZXh5bm9zMzI1MC1hcnRpazUtZXZhbC5kdHM6NTc6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJhc2l4LGF4ODg3OTZjXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9zYW1zdW5nL2V4eW5vczMyNTAtYXJ0aWs1LWV2YWwuZHRzLTU4LVxcdFxcdHJlZyA9IFxcdTAwM2MweDBcXHUwMDNlO1xcbi0tXFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMjQtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2Nsa2Rldi5oXFx1MDAzZVxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jOjI1OiNpbmNsdWRlIFxcdTAwM2NuZXQvYXg4ODc5Ni5oXFx1MDAzZVxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTI2LSNpbmNsdWRlIFxcdTAwM2Nhc20vbWFjaHZlYy5oXFx1MDAzZVxcbi0tXFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmM9MTQzPXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGhlYXJ0YmVhdF9kZXZpY2UgPSB7XFxuLS1cXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0xNTYtXFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmM6MTU3OnN0YXRpYyBzdHJ1Y3QgYXhfcGxhdF9kYXRhIGF4ODg3OTZfcGxhdGRhdGEgPSB7XFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMTU4LVxcdC5mbGFncyAgICAgICAgICA9IEFYRkxHX0hBU185M0NYNixcXG4tLVxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE2My1cXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYzoxNjQ6c3RhdGljIHN0cnVjdCByZXNvdXJjZSBheDg4Nzk2X3Jlc291cmNlc1tdID0ge1xcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE2NS1cXHR7XFxuLS1cXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0xODEtXFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmM6MTgyOnN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGF4ODg3OTZfZGV2aWNlID0ge1xcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jOjE4MzpcXHQubmFtZSAgICAgICAgICAgPSBcXFwiYXg4ODc5NlxcXCIsXFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMTg0LVxcdC5pZCAgICAgICAgICAgICA9IDAsXFxuLS1cXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0xODYtXFx0LmRldiAgICA9IHtcXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYzoxODc6XFx0XFx0LnBsYXRmb3JtX2RhdGEgPSBcXHUwMDI2YXg4ODc5Nl9wbGF0ZGF0YSxcXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0xODgtXFx0fSxcXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0xODktXFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmM6MTkwOlxcdC5udW1fcmVzb3VyY2VzICA9IEFSUkFZX1NJWkUoYXg4ODc5Nl9yZXNvdXJjZXMpLFxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jOjE5MTpcXHQucmVzb3VyY2UgICAgICAgPSBheDg4Nzk2X3Jlc291cmNlcyxcXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0xOTItfTtcXG4tLVxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jPTI2Nz1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcjc3ODBycF9kZXZpY2VzW10gX19pbml0ZGF0YSA9IHtcXG4tLVxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTI3My0jaWZuZGVmIENPTkZJR19TSF9SNzc4MFJQXFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmM6Mjc0OlxcdFxcdTAwMjZheDg4Nzk2X2RldmljZSxcXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0yNzUtI2VuZGlmXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL01ha2VmaWxlPTg9b2JqLSQoQ09ORklHX0FSTV9FVEhFUkgpICs9IGV0aGVyaC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9NYWtlZmlsZTo5Om9iai0kKENPTkZJR19BWDg4Nzk2KSArPSBheDg4Nzk2Lm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL01ha2VmaWxlLTEwLW9iai0kKENPTkZJR19IWURSQSkgKz0gaHlkcmEub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtMS0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM6MjovKiBkcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuY1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTMtICpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTI3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjI4OiNpbmNsdWRlIFxcdTAwM2NuZXQvYXg4ODc5Ni5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTI5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtNTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM6NTg6c3RhdGljIHVuc2lnbmVkIGNoYXIgdmVyc2lvbltdID0gXFxcImF4ODg3OTYuYzogQ29weXJpZ2h0IDIwMDUsMjAwNyBTaW10ZWMgRWxlY3Ryb25pY3NcXFxcblxcXCI7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtNTktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy02MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYzo2MjojZGVmaW5lIERSVl9OQU1FIFxcXCJheDg4Nzk2XFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTYzLSNkZWZpbmUgRFJWX1ZFUlNJT04gXFxcIjEuMDBcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYz0xNDY9c3RhdGljIHZvaWQgYXhfcmVzZXRfODM5MChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtMTcxLSAqIHdheSB0byBmaW5kIG91dCB3aGV0aGVyIHRoZSBpbnRlcnJ1cHQgcmVxdWVzdCBtaWdodCBiZSBjYXVzZWQgYnlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYzoxNzI6ICogdGhlIGF4ODg3OTYgY2hpcC5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy0xNzMtICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYz00NTk9c3RhdGljIGludCBheF9taWlfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtNDczLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjQ3NDpcXHRheC1cXHUwMDNlbWlpX2J1cy1cXHUwMDNlbmFtZSA9IFxcXCJheDg4Nzk2X21paV9idXNcXFwiO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTQ3NS1cXHRheC1cXHUwMDNlbWlpX2J1cy1cXHUwMDNlcGFyZW50ID0gZGV2LVxcdTAwM2VkZXYucGFyZW50O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM9MTAwNz1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBheGRydiA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy0xMDA4LVxcdC5kcml2ZXJcXHQ9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYzoxMDA5OlxcdFxcdC5uYW1lXFx0XFx0PSBcXFwiYXg4ODc5NlxcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtMTAxMC1cXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM9MTAyMT1NT0RVTEVfTElDRU5TRShcXFwiR1BMIHYyXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM6MTAyMjpNT0RVTEVfQUxJQVMoXFxcInBsYXRmb3JtOmF4ODg3OTZcXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy01LSNpbmNsdWRlIFxcdTAwM2NsaW51eC96b3Jyby5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzo2OiNpbmNsdWRlIFxcdTAwM2NuZXQvYXg4ODc5Ni5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy03LSNpbmNsdWRlIFxcdTAwM2Nhc20vYW1pZ2FpbnRzLmhcXHUwMDNlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM9MjM5PXN0YXRpYyBpbnQgeHN1cmYxMDBfcHJvYmUoc3RydWN0IHpvcnJvX2RldiAqemRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0yNDItXFx0c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MjQzOlxcdHN0cnVjdCB4c3VyZjEwMF9heF9wbGF0X2RhdGEgYXg4ODc5Nl9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0yNDQtXFx0c3RydWN0IHJlc291cmNlIHJlc1syXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0yNTctXFx0LyogWC1TdXJmIDEwMCBjb250cm9sIGFuZCAzMiBiaXQgcmluZyBidWZmZXIgZGF0YSBhY2Nlc3MgYXJlYXMuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI1ODpcXHQgKiBUaGVzZSByZXNvdXJjZXMgYXJlIG5vdCB1c2VkIGJ5IHRoZSBheDg4Nzk2IGRyaXZlciwgc28gbXVzdFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0yNTktXFx0ICogYmUgcmVxdWVzdGVkIGhlcmUgYW5kIHBhc3NlZCB2aWEgcGxhdGZvcm0gZGF0YS5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0yNzgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI3OTpcXHRtZW1zZXQoXFx1MDAyNmF4ODg3OTZfZGF0YSwgMCwgc2l6ZW9mKGF4ODg3OTZfZGF0YSkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzoyODA6XFx0YXg4ODc5Nl9kYXRhLmF4LmZsYWdzID0gQVhGTEdfSEFTX0VFUFJPTTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MjgxOlxcdGF4ODg3OTZfZGF0YS5heC53b3JkbGVuZ3RoID0gMjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MjgyOlxcdGF4ODg3OTZfZGF0YS5heC5kY3JfdmFsID0gMHg0ODtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MjgzOlxcdGF4ODg3OTZfZGF0YS5heC5yY3JfdmFsID0gMHg0MDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6Mjg0OlxcdGF4ODg3OTZfZGF0YS5heC5yZWdfb2Zmc2V0cyA9IHJlZ19vZmZzZXRzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzoyODU6XFx0YXg4ODc5Nl9kYXRhLmF4LmNoZWNrX2lycSA9IGlzX3hzdXJmMTAwX25ldHdvcmtfaXJxO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzoyODY6XFx0YXg4ODc5Nl9kYXRhLmJhc2VfcmVncyA9IGlvcmVtYXAoemRldi1cXHUwMDNlcmVzb3VyY2Uuc3RhcnQsIDB4MTAwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMjg3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0yODgtXFx0LyogZXJyb3IgaGFuZGxpbmcgZm9yIGlvcmVtYXAgcmVncyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzoyODk6XFx0aWYgKCFheDg4Nzk2X2RhdGEuYmFzZV9yZWdzKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI5MC1cXHRcXHRkZXZfZXJyKFxcdTAwMjZ6ZGV2LVxcdTAwM2VkZXYsIFxcXCJDYW5ub3QgaW9yZW1hcCBhcmVhICVwUiAocmVnaXN0ZXJzKVxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0yOTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI5NzpcXHRheDg4Nzk2X2RhdGEuZGF0YV9hcmVhID0gaW9yZW1hcCh6ZGV2LVxcdTAwM2VyZXNvdXJjZS5zdGFydCArXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI5OC1cXHRcXHRcXHRYUzEwMF84MzkwX0RBVEEzMl9CQVNFLCBYUzEwMF84MzkwX0RBVEEzMl9TSVpFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMDAtXFx0LyogZXJyb3IgaGFuZGxpbmcgZm9yIGlvcmVtYXAgZGF0YSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzozMDE6XFx0aWYgKCFheDg4Nzk2X2RhdGEuZGF0YV9hcmVhKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTMwMi1cXHRcXHRkZXZfZXJyKFxcdTAwMjZ6ZGV2LVxcdTAwM2VkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMzA5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzozMTA6XFx0YXg4ODc5Nl9kYXRhLmF4LmJsb2NrX291dHB1dCA9IHhzMTAwX2Jsb2NrX291dHB1dDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MzExOlxcdGF4ODg3OTZfZGF0YS5heC5ibG9ja19pbnB1dCA9IHhzMTAwX2Jsb2NrX2lucHV0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjMxMzpcXHRwZGV2ID0gcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyX3Jlc25kYXRhKFxcdTAwMjZ6ZGV2LVxcdTAwM2VkZXYsIFxcXCJheDg4Nzk2XFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMzE0LVxcdFxcdFxcdFxcdFxcdFxcdCB6ZGV2LVxcdTAwM2VzbG90YWRkciwgcmVzLCAyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzozMTU6XFx0XFx0XFx0XFx0XFx0XFx0IFxcdTAwMjZheDg4Nzk2X2RhdGEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjMxNjpcXHRcXHRcXHRcXHRcXHRcXHQgc2l6ZW9mKGF4ODg3OTZfZGF0YSkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMTctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMzI5LSBleGl0X21lbTI6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjMzMDpcXHRpb3VubWFwKGF4ODg3OTZfZGF0YS5kYXRhX2FyZWEpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMzEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTMzMi0gZXhpdF9tZW06XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjMzMzpcXHRpb3VubWFwKGF4ODg3OTZfZGF0YS5iYXNlX3JlZ3MpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMzQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L01ha2VmaWxlLTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9NYWtlZmlsZTo1Om9iai0kKENPTkZJR19TUElfQVg4ODc5NkMpICs9IGF4ODg3OTZjLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L01ha2VmaWxlOjY6YXg4ODc5NmMteSA6PSBheDg4Nzk2Y19tYWluLm8gYXg4ODc5NmNfaW9jdGwubyBheDg4Nzk2Y19zcGkub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjk6I2RlZmluZSBwcl9mbXQoZm10KVxcdFxcXCJheDg4Nzk2YzogXFxcIiBmbXRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE2OiNpbmNsdWRlIFxcXCJheDg4Nzk2Y19tYWluLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE3OiNpbmNsdWRlIFxcXCJheDg4Nzk2Y19pb2N0bC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTk6c3RhdGljIGNvbnN0IGNoYXIgYXg4ODc5NmNfcHJpdl9mbGFnX25hbWVzW11bRVRIX0dTVFJJTkdfTEVOXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjAtXFx0XFxcIlNQSUNvbXByZXNzaW9uXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYz0yMz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyNDpheDg4Nzk2Y19nZXRfZHJ2aW5mbyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGV0aHRvb2xfZHJ2aW5mbyAqaW5mbylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTI5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzozMDpzdGF0aWMgdTMyIGF4ODg3OTZjX2dldF9tc2dsZXZlbChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMzEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzozMjpcXHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMzMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjM3OnN0YXRpYyB2b2lkIGF4ODg3OTZjX3NldF9tc2dsZXZlbChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgdTMyIGxldmVsKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0zOC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjM5OlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy00MC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYz00ND1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzo0NTpheDg4Nzk2Y19nZXRfcGF1c2VwYXJhbShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGV0aHRvb2xfcGF1c2VwYXJhbSAqcGF1c2UpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTQ2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6NDc6XFx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTQ4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jPTU2PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6NTc6YXg4ODc5NmNfc2V0X3BhdXNlcGFyYW0oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCBldGh0b29sX3BhdXNlcGFyYW0gKnBhdXNlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy01OC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjU5OlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy02MC1cXHRpbnQgZmM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtOTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjkxOnN0YXRpYyBpbnQgYXg4ODc5NmNfZ2V0X3JlZ3NfbGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy05Mi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM9OTY9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6OTc6YXg4ODc5NmNfZ2V0X3JlZ3Moc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCBldGh0b29sX3JlZ3MgKnJlZ3MsIHZvaWQgKl9wKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy05OC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjk5OlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xMDAtXFx0aW50IG9mZnNldCwgaTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xMDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjEwMzpcXHRtZW1zZXQocCwgMCwgYXg4ODc5NmNfZ2V0X3JlZ3NfbGVuKG5kZXYpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTA0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTEwNy1cXHRmb3IgKG9mZnNldCA9IDA7IG9mZnNldCBcXHUwMDNjIEFYODg3OTZDX1JFR0RVTVBfTEVOOyBvZmZzZXQgKz0gMikge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxMDg6XFx0XFx0aWYgKCF0ZXN0X2JpdChvZmZzZXQgLyAyLCBheDg4Nzk2Y19ub19yZWdzX21hc2spKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xMDktXFx0XFx0XFx0KnAgPSBBWF9SRUFEKFxcdTAwMjZheF9sb2NhbC1cXHUwMDNlYXhfc3BpLCBvZmZzZXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jPTEyMT1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxMjI6YXg4ODc5NmNfZ2V0X3N0cmluZ3Moc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHUzMiBzdHJpbmdzZXQsIHU4ICpkYXRhKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xMjMte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTEyNS1cXHRjYXNlIEVUSF9TU19QUklWX0ZMQUdTOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxMjY6XFx0XFx0bWVtY3B5KGRhdGEsIGF4ODg3OTZjX3ByaXZfZmxhZ19uYW1lcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTI3OlxcdFxcdCAgICAgICBzaXplb2YoYXg4ODc5NmNfcHJpdl9mbGFnX25hbWVzKSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTEyOC1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYz0xMzI9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxMzM6YXg4ODc5NmNfZ2V0X3NzZXRfY291bnQoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIGludCBzdHJpbmdzZXQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTEzNC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTM4LVxcdGNhc2UgRVRIX1NTX1BSSVZfRkxBR1M6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjEzOTpcXHRcXHRyZXQgPSBBUlJBWV9TSVpFKGF4ODg3OTZjX3ByaXZfZmxhZ19uYW1lcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE0MC1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xNDctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE0ODpzdGF0aWMgaW50IGF4ODg3OTZjX3NldF9wcml2X2ZsYWdzKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCB1MzIgZmxhZ3MpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE0OS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE1MDpcXHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTUxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE2My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTY0OnN0YXRpYyB1MzIgYXg4ODc5NmNfZ2V0X3ByaXZfZmxhZ3Moc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE2NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE2NjpcXHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTY3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE3MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTcxOmludCBheDg4Nzk2Y19tZGlvX3JlYWQoc3RydWN0IG1paV9idXMgKm1kaW9idXMsIGludCBwaHlfaWQsIGludCBsb2MpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE3Mi17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE3MzpcXHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IG1kaW9idXMtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE3NC1cXHRpbnQgcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jPTE5Mj1pbnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTkzOmF4ODg3OTZjX21kaW9fd3JpdGUoc3RydWN0IG1paV9idXMgKm1kaW9idXMsIGludCBwaHlfaWQsIGludCBsb2MsIHUxNiB2YWwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE5NC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE5NTpcXHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IG1kaW9idXMtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE5Ni1cXHRpbnQgcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTIxMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjE0OmNvbnN0IHN0cnVjdCBldGh0b29sX29wcyBheDg4Nzk2Y19ldGh0b29sX29wcyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjE1OlxcdC5nZXRfZHJ2aW5mb1xcdFxcdD0gYXg4ODc5NmNfZ2V0X2RydmluZm8sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTIxNi1cXHQuZ2V0X2xpbmtcXHRcXHQ9IGV0aHRvb2xfb3BfZ2V0X2xpbmssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIxNzpcXHQuZ2V0X21zZ2xldmVsXFx0XFx0PSBheDg4Nzk2Y19nZXRfbXNnbGV2ZWwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIxODpcXHQuc2V0X21zZ2xldmVsXFx0XFx0PSBheDg4Nzk2Y19zZXRfbXNnbGV2ZWwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTIxOS1cXHQuZ2V0X2xpbmtfa3NldHRpbmdzXFx0PSBwaHlfZXRodG9vbF9nZXRfbGlua19rc2V0dGluZ3MsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjIxLVxcdC5ud2F5X3Jlc2V0XFx0XFx0PSBwaHlfZXRodG9vbF9ud2F5X3Jlc2V0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyMjI6XFx0LmdldF9wYXVzZXBhcmFtXFx0XFx0PSBheDg4Nzk2Y19nZXRfcGF1c2VwYXJhbSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjIzOlxcdC5zZXRfcGF1c2VwYXJhbVxcdFxcdD0gYXg4ODc5NmNfc2V0X3BhdXNlcGFyYW0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIyNDpcXHQuZ2V0X3JlZ3NfbGVuXFx0XFx0PSBheDg4Nzk2Y19nZXRfcmVnc19sZW4sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIyNTpcXHQuZ2V0X3JlZ3NcXHRcXHQ9IGF4ODg3OTZjX2dldF9yZWdzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyMjY6XFx0LmdldF9zdHJpbmdzXFx0XFx0PSBheDg4Nzk2Y19nZXRfc3RyaW5ncyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjI3OlxcdC5nZXRfc3NldF9jb3VudFxcdFxcdD0gYXg4ODc5NmNfZ2V0X3NzZXRfY291bnQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIyODpcXHQuZ2V0X3ByaXZfZmxhZ3NcXHRcXHQ9IGF4ODg3OTZjX2dldF9wcml2X2ZsYWdzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyMjk6XFx0LnNldF9wcml2X2ZsYWdzXFx0XFx0PSBheDg4Nzk2Y19zZXRfcHJpdl9mbGFncyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjMwLX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTIzMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjMyOmludCBheDg4Nzk2Y19pb2N0bChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGlmcmVxICppZnIsIGludCBjbWQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTIzMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmgtMTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oOjE1OiNpbmNsdWRlIFxcXCJheDg4Nzk2Y19tYWluLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oLTE2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuaDoxNzpleHRlcm4gY29uc3Qgc3RydWN0IGV0aHRvb2xfb3BzIGF4ODg3OTZjX2V0aHRvb2xfb3BzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuaC0xOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmg6MTk6Ym9vbCBheDg4Nzk2Y19jaGVja19wb3dlcihjb25zdCBzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oOjIwOmJvb2wgYXg4ODc5NmNfY2hlY2tfcG93ZXJfYW5kX3dha2Uoc3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuaDoyMTp2b2lkIGF4ODg3OTZjX3NldF9wb3dlcl9zYXZpbmcoc3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwsIHU4IHBzX2xldmVsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmg6MjI6aW50IGF4ODg3OTZjX21kaW9fcmVhZChzdHJ1Y3QgbWlpX2J1cyAqbWRpb2J1cywgaW50IHBoeV9pZCwgaW50IGxvYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oOjIzOmludCBheDg4Nzk2Y19tZGlvX3dyaXRlKHN0cnVjdCBtaWlfYnVzICptZGlvYnVzLCBpbnQgcGh5X2lkLCBpbnQgbG9jLCB1MTYgdmFsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmg6MjQ6aW50IGF4ODg3OTZjX2lvY3RsKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBpZnJlcSAqaWZyLCBpbnQgY21kKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmgtMjUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy04LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjk6I2RlZmluZSBwcl9mbXQoZm10KVxcdFxcXCJheDg4Nzk2YzogXFxcIiBmbXRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0xMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoxMTojaW5jbHVkZSBcXFwiYXg4ODc5NmNfbWFpbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjEyOiNpbmNsdWRlIFxcXCJheDg4Nzk2Y19pb2N0bC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTEzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM9MzM9c3RhdGljIGNvbnN0IGNoYXIgKm5vX3JlZ3NfbGlzdCA9IFxcXCI4MDAxODAwMSxlMTkxODAwMSw4MDAxYTAwMSxmYzBkMDAwMFxcXCI7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MzQ6dW5zaWduZWQgbG9uZyBheDg4Nzk2Y19ub19yZWdzX21hc2tbQVg4ODc5NkNfUkVHRFVNUF9MRU4gLyAoc2l6ZW9mKHVuc2lnbmVkIGxvbmcpICogOCldO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTM1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM9Mzc9TU9EVUxFX1BBUk1fREVTQyhtc2dfZW5hYmxlLCBcXFwiTWVzc2FnZSBtYXNrIChzZWUgbGludXgvbmV0ZGV2aWNlLmggZm9yIGJpdG1hcClcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0zOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzozOTpzdGF0aWMgaW50IGF4ODg3OTZjX3NvZnRfcmVzZXQoc3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNDAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NzA6c3RhdGljIGludCBheDg4Nzk2Y19yZWxvYWRfZWVwcm9tKHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTcxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTkwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjkxOnN0YXRpYyB2b2lkIGF4ODg3OTZjX3NldF9od19tdWx0aWNhc3Qoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtOTIte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjkzOlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTk0LVxcdGludCBtY19jb3VudCA9IG5ldGRldl9tY19jb3VudChuZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTEyOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoxMzA6c3RhdGljIHZvaWQgYXg4ODc5NmNfc2V0X21hY19hZGRyKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTEzMS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MTMyOlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTEzMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTE0My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoxNDQ6c3RhdGljIHZvaWQgYXg4ODc5NmNfbG9hZF9tYWNfYWRkcihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0xNDUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjE0NjpcXHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0xNDctXFx0dTggYWRkcltFVEhfQUxFTl07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0xODctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MTg4OnN0YXRpYyB2b2lkIGF4ODg3OTZjX3Byb2NfdHhfaGRyKHN0cnVjdCB0eF9wa3RfaW5mbyAqaW5mbywgdTggaXBfc3VtbWVkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTE4OS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz0yMjE9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjIyMjpheDg4Nzk2Y19jaGVja19mcmVlX3BhZ2VzKHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsLCB1OCBuZWVkX3BhZ2VzKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTIyMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz0yNDM9c3RhdGljIHN0cnVjdCBza19idWZmICpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoyNDQ6YXg4ODc5NmNfdHhfZml4dXAoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCBza19idWZmX2hlYWQgKnEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMjQ1LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoyNDY6XFx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMjQ3LVxcdHU4IHNwaV9sZW4gPSBheF9sb2NhbC1cXHUwMDNlYXhfc3BpLmNvbXAgPyAxIDogNDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTI2Mi1cXHRuZWVkX3BhZ2VzID0gKHBrdF9sZW4gKyBUWF9PVkVSSEVBRCArIDEyNykgXFx1MDAzZVxcdTAwM2UgNztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoyNjM6XFx0aWYgKGF4ODg3OTZjX2NoZWNrX2ZyZWVfcGFnZXMoYXhfbG9jYWwsIG5lZWRfcGFnZXMpICE9IDApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMjY0LVxcdFxcdHJldHVybiBOVUxMO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMjgzLVxcdGluZm8uc2VxX251bSA9IHNlcV9udW07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6Mjg0OlxcdGF4ODg3OTZjX3Byb2NfdHhfaGRyKFxcdTAwMjZpbmZvLCBza2ItXFx1MDAzZWlwX3N1bW1lZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMjg1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMjg5LVxcdC8qIFdyaXRlIFNQSSBUWFEgaGVhZGVyICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MjkwOlxcdG1lbWNweShza2JfcHVzaChza2IsIHNwaV9sZW4pLCBheDg4Nzk2Y190eF9jbWRfYnVmLCBzcGlfbGVuKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0yOTEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0zMzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MzMzOnN0YXRpYyBpbnQgYXg4ODc5NmNfaGFyZF94bWl0KHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTMzNC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MzM1OlxcdHN0cnVjdCBheDg4Nzk2Y19wY3B1X3N0YXRzICpzdGF0cztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0zMzYtXFx0c3RydWN0IHNrX2J1ZmYgKnR4X3NrYjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTM0Mi1cXHRzdGF0cyA9IHRoaXNfY3B1X3B0cihheF9sb2NhbC1cXHUwMDNlc3RhdHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjM0MzpcXHR0eF9za2IgPSBheDg4Nzk2Y190eF9maXh1cChheF9sb2NhbC1cXHUwMDNlbmRldiwgXFx1MDAyNmF4X2xvY2FsLVxcdTAwM2V0eF93YWl0X3EpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTM0NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jPTM4ND1zdGF0aWMgbmV0ZGV2X3R4X3RcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzozODU6YXg4ODc5NmNfc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0zODYte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjM4NzpcXHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0zODgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz0zOTk9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo0MDA6YXg4ODc5NmNfc2tiX3JldHVybihzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy00MDEtXFx0XFx0ICAgIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCByeF9oZWFkZXIgKnJ4aGRyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNDAzLVxcdHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2ID0gYXhfbG9jYWwtXFx1MDAzZW5kZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NDA0OlxcdHN0cnVjdCBheDg4Nzk2Y19wY3B1X3N0YXRzICpzdGF0cztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy00MDUtXFx0dW5zaWduZWQgbG9uZyBmbGFncztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jPTQ0Mj1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjQ0MzpheDg4Nzk2Y19yeF9maXh1cChzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCwgc3RydWN0IHNrX2J1ZmYgKnJ4X3NrYilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy00NDQte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNDkwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjQ5MTpcXHRheDg4Nzk2Y19za2JfcmV0dXJuKGF4X2xvY2FsLCByeF9za2IsIHJ4aGRyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy00OTItfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQ5My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo0OTQ6c3RhdGljIGludCBheDg4Nzk2Y19yZWNlaXZlKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQ5NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NDk2OlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQ5Ny1cXHRzdHJ1Y3Qgc2tiX2RhdGEgKmVudHJ5O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNTQyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjU0MzpcXHRheDg4Nzk2Y19yeF9maXh1cChheF9sb2NhbCwgc2tiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01NDQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01NDctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NTQ4OnN0YXRpYyBpbnQgYXg4ODc5NmNfcHJvY2Vzc19pc3Ioc3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNTQ5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU3OC1cXHRcXHRuZXRpZl9kYmcoYXhfbG9jYWwsIGludHIsIG5kZXYsIFxcXCIgIFJYIGludGVycnVwdFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NTc5OlxcdFxcdHRvZG8gPSBheDg4Nzk2Y19yZWNlaXZlKGF4X2xvY2FsLVxcdTAwM2VuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01ODAtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNTg0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjU4NTpzdGF0aWMgaXJxcmV0dXJuX3QgYXg4ODc5NmNfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pbnN0YW5jZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01ODYte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjU4NzpcXHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01ODgtXFx0c3RydWN0IG5ldF9kZXZpY2UgKm5kZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01OTQtXFx0fVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjU5NTpcXHRheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01OTYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02MDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NjA3OnN0YXRpYyB2b2lkIGF4ODg3OTZjX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYwOC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NjA5OlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo2MTA6XFx0XFx0XFx0Y29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UsIGF4X3dvcmspO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYxMS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYxNC1cXHRpZiAodGVzdF9iaXQoRVZFTlRfU0VUX01VTFRJLCBcXHUwMDI2YXhfbG9jYWwtXFx1MDAzZWZsYWdzKSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjYxNTpcXHRcXHRheDg4Nzk2Y19zZXRfaHdfbXVsdGljYXN0KGF4X2xvY2FsLVxcdTAwM2VuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02MTYtXFx0XFx0Y2xlYXJfYml0KEVWRU5UX1NFVF9NVUxUSSwgXFx1MDAyNmF4X2xvY2FsLVxcdTAwM2VmbGFncyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02MjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NjIyOlxcdFxcdHdoaWxlIChheDg4Nzk2Y19wcm9jZXNzX2lzcihheF9sb2NhbCkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjIzLVxcdFxcdFxcdC8qIG5vdGhpbmcgKi87XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02MzMtXFx0XFx0d2hpbGUgKHNrYl9xdWV1ZV9sZW4oXFx1MDAyNmF4X2xvY2FsLVxcdTAwM2V0eF93YWl0X3EpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NjM0OlxcdFxcdFxcdGlmICghYXg4ODc5NmNfaGFyZF94bWl0KGF4X2xvY2FsKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02MzUtXFx0XFx0XFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02NDctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NjQ4OnN0YXRpYyB2b2lkIGF4ODg3OTZjX2dldF9zdGF0czY0KHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTY0OS1cXHRcXHRcXHRcXHQgc3RydWN0IHJ0bmxfbGlua19zdGF0czY0ICpzdGF0cylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02NTAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjY1MTpcXHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02NTItXFx0dTMyIHJ4X2ZyYW1lX2Vycm9ycyA9IDAsIHJ4X2NyY19lcnJvcnMgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjU3LVxcdGZvcl9lYWNoX3Bvc3NpYmxlX2NwdShjcHUpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo2NTg6XFx0XFx0c3RydWN0IGF4ODg3OTZjX3BjcHVfc3RhdHMgKnM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjU5LVxcdFxcdHU2NCByeF9wYWNrZXRzLCByeF9ieXRlcztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTY4OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo2ODk6c3RhdGljIHZvaWQgYXg4ODc5NmNfc2V0X21hYyhzdHJ1Y3QgIGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjkwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTczNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo3Mzc6c3RhdGljIHZvaWQgYXg4ODc5NmNfaGFuZGxlX2xpbmtfY2hhbmdlKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTczOC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NzM5OlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTc0MC1cXHRzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2ID0gbmRldi1cXHUwMDNlcGh5ZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzY0LVxcdGlmICh1cGRhdGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NzY1OlxcdFxcdGF4ODg3OTZjX3NldF9tYWMoYXhfbG9jYWwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTc2Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTc3MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo3NzE6c3RhdGljIHZvaWQgYXg4ODc5NmNfc2V0X2NzdW1zKHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTc3Mi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz03OTQ9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjc5NTpheDg4Nzk2Y19vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTc5Ni17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6Nzk3OlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTc5OC1cXHR1bnNpZ25lZCBsb25nIGlycV9mbGFnID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTgwMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo4MDM6XFx0cmV0ID0gcmVxdWVzdF9pcnEobmRldi1cXHUwMDNlaXJxLCBheDg4Nzk2Y19pbnRlcnJ1cHQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtODA0LVxcdFxcdFxcdCAgaXJxX2ZsYWcsIG5kZXYtXFx1MDAzZW5hbWUsIG5kZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtODEyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjgxMzpcXHRyZXQgPSBheDg4Nzk2Y19zb2Z0X3Jlc2V0KGF4X2xvY2FsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy04MTQtXFx0aWYgKHJldCBcXHUwMDNjIDApIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTgyMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo4MjE6XFx0YXg4ODc5NmNfc2V0X21hY19hZGRyKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjgyMjpcXHRheDg4Nzk2Y19zZXRfY3N1bXMoYXhfbG9jYWwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTgyMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jPTg3OD1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6ODc5OmF4ODg3OTZjX2Nsb3NlKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTg4MC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6ODgxOlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTg4Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTg4Ni1cXHQgKiBhZ2FpbnN0IGNvbmN1cnJlbnQgYWNjZXNzLCBidXQgYWxzbyBhdm9pZCB3YWtpbmcgdXAgdGhlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6ODg3OlxcdCAqIHF1ZXVlIGluIGF4ODg3OTZjX3dvcmsoKS4gcGh5X3N0b3AoKSBuZWVkcyB0byBiZSBjYWxsZWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy04ODgtXFx0ICogYmVmb3JlIGJlY2F1c2UgaXQgbG9ja3MgdGhlIG11dGV4IHRvIGFjY2VzcyBTUEkuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy05MDUtXFx0X19za2JfcXVldWVfcHVyZ2UoXFx1MDAyNmF4X2xvY2FsLVxcdTAwM2V0eF93YWl0X3EpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjkwNjpcXHRheDg4Nzk2Y19zb2Z0X3Jlc2V0KGF4X2xvY2FsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy05MDctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz05MTc9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjkxODpheDg4Nzk2Y19zZXRfZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIG5ldGRldl9mZWF0dXJlc190IGZlYXR1cmVzKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTkxOS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6OTIwOlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTkyMS1cXHRuZXRkZXZfZmVhdHVyZXNfdCBjaGFuZ2VkID0gZmVhdHVyZXMgXiBuZGV2LVxcdTAwM2VmZWF0dXJlcztcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMTM6MDE6NTAuMTU3MDUwOTkyWiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjExMDAzMTU5MDY2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgQVg4ODc5NiBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBmaXJzdCB0aGluZ3MgZmlyc3QuIEkgc2VlIGEgcGF0Y2ggcmVsYXRlZCB0byBgYXg4ODc5NmAsIGJ1dCB3YWl0LCB0aGUgbWFpbiBkcml2ZXIgaXMgYGF4ODg3OTZjYCB3aGljaCBpcyBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmNgLCBhbmQgdGhlIHBhdGNoIGlzIHRhcmdldGluZyB0aGUgb2xkZXIgYGF4ODg3OTZgIGZpbGUgdW5kZXIgYGRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jYC4gVGhhdCdzIHRoZSBmaXJzdCByZWQgZmxhZywgcG90ZW50aWFsIGNvbmZ1c2lvbiB0aGVyZS4gSSBzaG91bGQgY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBzeXprYWxsZXIgZGVzY3JpcHRpb25zIGZvciB0aGUgb2xkZXIgYGF4ODg3OTZgIGRyaXZlci5cblxuSG1tLCBva2F5LCBJIHNlZSBgYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmNgIHJlZ2lzdGVycyBgYXg4ODc5Nl9kZXZpY2VgLCBhbmQgYGRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuY2AgcmVnaXN0ZXJzIGBheDg4Nzk2YCBhcyB3ZWxsLiBMb29rcyBsaWtlIGEgcGxhdGZvcm0gZHJpdmVyLCBzcGVjaWZpY2FsbHkuIFRoZSBxdWVzdGlvbiBub3cgaXMsIGlzIGl0IGV2ZW4gZnV6emVkIGJ5IHN5emthbGxlcj8gU3l6a2FsbGVyICpjYW4qIGZ1enogcGxhdGZvcm0gZHJpdmVycywgYnV0IG9ubHkgaWYgaXQgY2FuIGNyZWF0ZSB0aGUgcGxhdGZvcm0gZGV2aWNlLiBMZXQgbWUgdGhpbmsuLi4gc3l6a2FsbGVyIGhhcyBgc3l6X2Rldl9jcmVhdGVgLCBidXQgdGhhdCdzIG5vdCBmb3IgcGxhdGZvcm0gZGV2aWNlcywgaXMgaXQ/IE5vLCB0aGF0J3Mgbm90IGdvaW5nIHRvIHdvcmsuIFdhaXQsIGNhbiBpdCB1c2UgYHN5el9nZW5ldGxpbmtfZ2V0X2ZhbWlseWA/IE5vcGUuXG5cbk9rYXksIEkgcmVtZW1iZXIsIFN5emthbGxlciAqY2FuKiBmdXp6IHBsYXRmb3JtIGRyaXZlcnMgaWYgdGhleSBhcmUgcmVnaXN0ZXJlZCBieSBkZWZhdWx0IGluIHRoZSBrZXJuZWwsIGxpa2VseSB2aWEgZGV2aWNlIHRyZWUgb3IgYm9hcmQgY29kZS4gQnV0LCBsb29raW5nIGF0IHRoZSBjb2RlLCBgYXg4ODc5NmAgaXMgb25seSByZWdpc3RlcmVkIG9uIFN1cGVySCAoYG1hY2gtaGlnaGxhbmRlcmApIGFuZCBBbWlnYSAoYHhzdXJmMTAwYCkuIFN5emthbGxlciBydW5zIG9uIHg4Nl82NCBvciBhcm02NC4gU28gaXQgd29uJ3QgYmUgcHJvYmVkIG9uIHRob3NlIGFyY2hpdGVjdHVyZXMsIHVubGVzcyB0aGVyZSBpcyBhIHdheSB0byBpbmplY3QgcGxhdGZvcm0gZGV2aWNlcy4gTm93LCBkb2VzIHN5emthbGxlciBoYXZlIGFuIGluamVjdCBmdW5jdGlvbj8gTm8gYHN5el9wbGF0Zm9ybV9kZXZpY2VfYWRkYD8gTm9wZS4gTm90IHZpYSBOZXRsaW5rIGVpdGhlciwgb3IgYHN5c2ZzYCBvciBgc3l6X3VzYl9jb25uZWN0YC4gTm8sIHRoYXQncyBub3QgYSBVU0IgZGV2aWNlISBPciBgc3l6X3BjaV9kZXZpY2VfYWRkYC4uLiBubywgaXQncyBhIHBsYXRmb3JtIGRldmljZSFcblxuQWgsIGhhbmcgb24gYSBzZWNvbmQuIFRoZSBjb21taXQgbWVzc2FnZSBtZW50aW9ucyB0aGF0IHRoZSBwYXRjaCB3YXMgYXBwbGllZCBieSBgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3YC4gVGhhdCBtZWFucyBzb21lb25lIHNlbnQgYSBwYXRjaCB0byB0aGUgbWFpbGluZyBsaXN0LCBhbmQgc3l6Ym90IGlzIHRlc3RpbmcgaXQuIElmIHN5emJvdCBpcyB0ZXN0aW5nIGl0LCBpdCBtaWdodCBqdXN0IGJlIGEgY29tcGlsZSB0ZXN0LCBvciBhIGZ1bmN0aW9uYWwgdGVzdCwgaWYgaXQncyByZWFjaGFibGUuIEJ1dCBnaXZlbiB0aGF0IHRoaXMgaXMgYSBwbGF0Zm9ybSBkcml2ZXIgZm9yIFN1cGVySC9BbWlnYSwgaXQncyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VIG9uIHg4Nl82NCwgd2hpY2ggc3l6a2FsbGVyIHVzZXMuXG5cbkxldCdzIGxvb2sgYXQgdGhlIGluc3RydWN0aW9ucywgdGhleSBzdGF0ZTogXCJSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOiAtIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZVwiLiBTaW5jZSBgYXg4ODc5NmAgaXMgYSBwbGF0Zm9ybSBkcml2ZXIgZm9yIHNwZWNpZmljIGJvYXJkcywgaXQncyB1bnJlYWNoYWJsZSBpbiB0aGVzZSBzdGFuZGFyZCB4ODZfNjQvYXJtNjQgUUVNVS9HQ0UgaW5zdGFuY2VzIHVzZWQgYnkgc3l6a2FsbGVyLlxuXG5JcyB0aGVyZSBhbnkgb3RoZXIgd2F5IHRvIHByb2JlIGl0PyBJIHNob3VsZCBjaGVjayBpZiB0aGVyZSdzIGFueSBkZXZpY2UgdHJlZSBiaW5kaW5nIGZvciBgYXg4ODc5NmAuIFRoYXQgbWlnaHQgYmUgdGhlIG9ubHkgb3RoZXIgYXZlbnVlIHRvIGV4cGxvcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1NTU5LCJPdXRwdXRUb2tlbnMiOjIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzQ1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDEzOjAyOjAxLjE2MDIxMzI5OFoiLCJTZXEiOjIyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjE5NDUwNjE1MiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJheDg4Nzk2XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNzEzIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbC0zLS0tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sOjQ6JGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sI1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sLTUtJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbD0yND1wcm9wZXJ0aWVzOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sLTI1LSAgY29tcGF0aWJsZTpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbDoyNjogICAgY29uc3Q6IGFzaXgsYXg4ODc5NmNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbC0yNy1cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sPTU2PWV4YW1wbGVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWwtNjUtICAgICAgICBldGhlcm5ldEAwIHtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbDo2NjogICAgICAgICAgICBjb21wYXRpYmxlID0gXFxcImFzaXgsYXg4ODc5NmNcXFwiO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sLTY3LSAgICAgICAgICAgIHJlZyA9IFxcdTAwM2MweDBcXHUwMDNlO1xcbi0tXFxuTUFJTlRBSU5FUlM9NDAwMT1TOlxcdE1haW50YWluZWRcXG5NQUlOVEFJTkVSUzo0MDAyOkY6XFx0RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWxcXG5NQUlOVEFJTkVSUzo0MDAzOkY6XFx0ZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y18qXFxuTUFJTlRBSU5FUlMtNDAwNC1cXG4tLVxcbk1BSU5UQUlORVJTPTQwMTA9UzpcXHRNYWludGFpbmVkXFxuTUFJTlRBSU5FUlM6NDAxMTpGOlxcdGRyaXZlcnMvbmV0L3BoeS9heDg4Nzk2Yl9ydXN0LnJzXFxuTUFJTlRBSU5FUlMtNDAxMi1cXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL3NhbXN1bmcvZXh5bm9zMzI1MC1hcnRpazUtZXZhbC5kdHM9NTY9XFx0ZXRoZXJuZXRAMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvc2Ftc3VuZy9leHlub3MzMjUwLWFydGlrNS1ldmFsLmR0czo1NzpcXHRcXHRjb21wYXRpYmxlID0gXFxcImFzaXgsYXg4ODc5NmNcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL3NhbXN1bmcvZXh5bm9zMzI1MC1hcnRpazUtZXZhbC5kdHMtNTgtXFx0XFx0cmVnID0gXFx1MDAzYzB4MFxcdTAwM2U7XFxuLS1cXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0yNC0jaW5jbHVkZSBcXHUwMDNjbGludXgvY2xrZGV2LmhcXHUwMDNlXFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmM6MjU6I2luY2x1ZGUgXFx1MDAzY25ldC9heDg4Nzk2LmhcXHUwMDNlXFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMjYtI2luY2x1ZGUgXFx1MDAzY2FzbS9tYWNodmVjLmhcXHUwMDNlXFxuLS1cXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYz0xNDM9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgaGVhcnRiZWF0X2RldmljZSA9IHtcXG4tLVxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE1Ni1cXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYzoxNTc6c3RhdGljIHN0cnVjdCBheF9wbGF0X2RhdGEgYXg4ODc5Nl9wbGF0ZGF0YSA9IHtcXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0xNTgtXFx0LmZsYWdzICAgICAgICAgID0gQVhGTEdfSEFTXzkzQ1g2LFxcbi0tXFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMTYzLVxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jOjE2NDpzdGF0aWMgc3RydWN0IHJlc291cmNlIGF4ODg3OTZfcmVzb3VyY2VzW10gPSB7XFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMTY1LVxcdHtcXG4tLVxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE4MS1cXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYzoxODI6c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgYXg4ODc5Nl9kZXZpY2UgPSB7XFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmM6MTgzOlxcdC5uYW1lICAgICAgICAgICA9IFxcXCJheDg4Nzk2XFxcIixcXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0xODQtXFx0LmlkICAgICAgICAgICAgID0gMCxcXG4tLVxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE4Ni1cXHQuZGV2ICAgID0ge1xcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jOjE4NzpcXHRcXHQucGxhdGZvcm1fZGF0YSA9IFxcdTAwMjZheDg4Nzk2X3BsYXRkYXRhLFxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE4OC1cXHR9LFxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE4OS1cXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYzoxOTA6XFx0Lm51bV9yZXNvdXJjZXMgID0gQVJSQVlfU0laRShheDg4Nzk2X3Jlc291cmNlcyksXFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmM6MTkxOlxcdC5yZXNvdXJjZSAgICAgICA9IGF4ODg3OTZfcmVzb3VyY2VzLFxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE5Mi19O1xcbi0tXFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmM9MjY3PXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpyNzc4MHJwX2RldmljZXNbXSBfX2luaXRkYXRhID0ge1xcbi0tXFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMjczLSNpZm5kZWYgQ09ORklHX1NIX1I3NzgwUlBcXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYzoyNzQ6XFx0XFx1MDAyNmF4ODg3OTZfZGV2aWNlLFxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTI3NS0jZW5kaWZcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvTWFrZWZpbGU9OD1vYmotJChDT05GSUdfQVJNX0VUSEVSSCkgKz0gZXRoZXJoLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX0FYODg3OTYpICs9IGF4ODg3OTYub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvTWFrZWZpbGUtMTAtb2JqLSQoQ09ORklHX0hZRFJBKSArPSBoeWRyYS5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy0xLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYzoyOi8qIGRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtMy0gKlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtMjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM6Mjg6I2luY2x1ZGUgXFx1MDAzY25ldC9heDg4Nzk2LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtMjktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy01Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYzo1ODpzdGF0aWMgdW5zaWduZWQgY2hhciB2ZXJzaW9uW10gPSBcXFwiYXg4ODc5Ni5jOiBDb3B5cmlnaHQgMjAwNSwyMDA3IFNpbXRlYyBFbGVjdHJvbmljc1xcXFxuXFxcIjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy01OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTYxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjYyOiNkZWZpbmUgRFJWX05BTUUgXFxcImF4ODg3OTZcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtNjMtI2RlZmluZSBEUlZfVkVSU0lPTiBcXFwiMS4wMFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jPTE0Nj1zdGF0aWMgdm9pZCBheF9yZXNldF84MzkwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy0xNzEtICogd2F5IHRvIGZpbmQgb3V0IHdoZXRoZXIgdGhlIGludGVycnVwdCByZXF1ZXN0IG1pZ2h0IGJlIGNhdXNlZCBieVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjE3MjogKiB0aGUgYXg4ODc5NiBjaGlwLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTE3My0gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jPTQ1OT1zdGF0aWMgaW50IGF4X21paV9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy00NzMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM6NDc0OlxcdGF4LVxcdTAwM2VtaWlfYnVzLVxcdTAwM2VuYW1lID0gXFxcImF4ODg3OTZfbWlpX2J1c1xcXCI7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtNDc1LVxcdGF4LVxcdTAwM2VtaWlfYnVzLVxcdTAwM2VwYXJlbnQgPSBkZXYtXFx1MDAzZWRldi5wYXJlbnQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYz0xMDA3PXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGF4ZHJ2ID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTEwMDgtXFx0LmRyaXZlclxcdD0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjEwMDk6XFx0XFx0Lm5hbWVcXHRcXHQ9IFxcXCJheDg4Nzk2XFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy0xMDEwLVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYz0xMDIxPU1PRFVMRV9MSUNFTlNFKFxcXCJHUEwgdjJcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYzoxMDIyOk1PRFVMRV9BTElBUyhcXFwicGxhdGZvcm06YXg4ODc5NlxcXCIpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTUtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3pvcnJvLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjY6I2luY2x1ZGUgXFx1MDAzY25ldC9heDg4Nzk2LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTctI2luY2x1ZGUgXFx1MDAzY2FzbS9hbWlnYWludHMuaFxcdTAwM2VcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYz0yMzk9c3RhdGljIGludCB4c3VyZjEwMF9wcm9iZShzdHJ1Y3Qgem9ycm9fZGV2ICp6ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI0Mi1cXHRzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzoyNDM6XFx0c3RydWN0IHhzdXJmMTAwX2F4X3BsYXRfZGF0YSBheDg4Nzk2X2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI0NC1cXHRzdHJ1Y3QgcmVzb3VyY2UgcmVzWzJdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI1Ny1cXHQvKiBYLVN1cmYgMTAwIGNvbnRyb2wgYW5kIDMyIGJpdCByaW5nIGJ1ZmZlciBkYXRhIGFjY2VzcyBhcmVhcy5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MjU4OlxcdCAqIFRoZXNlIHJlc291cmNlcyBhcmUgbm90IHVzZWQgYnkgdGhlIGF4ODg3OTYgZHJpdmVyLCBzbyBtdXN0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI1OS1cXHQgKiBiZSByZXF1ZXN0ZWQgaGVyZSBhbmQgcGFzc2VkIHZpYSBwbGF0Zm9ybSBkYXRhLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI3OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6Mjc5OlxcdG1lbXNldChcXHUwMDI2YXg4ODc5Nl9kYXRhLCAwLCBzaXplb2YoYXg4ODc5Nl9kYXRhKSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI4MDpcXHRheDg4Nzk2X2RhdGEuYXguZmxhZ3MgPSBBWEZMR19IQVNfRUVQUk9NO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzoyODE6XFx0YXg4ODc5Nl9kYXRhLmF4LndvcmRsZW5ndGggPSAyO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzoyODI6XFx0YXg4ODc5Nl9kYXRhLmF4LmRjcl92YWwgPSAweDQ4O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzoyODM6XFx0YXg4ODc5Nl9kYXRhLmF4LnJjcl92YWwgPSAweDQwO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzoyODQ6XFx0YXg4ODc5Nl9kYXRhLmF4LnJlZ19vZmZzZXRzID0gcmVnX29mZnNldHM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI4NTpcXHRheDg4Nzk2X2RhdGEuYXguY2hlY2tfaXJxID0gaXNfeHN1cmYxMDBfbmV0d29ya19pcnE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI4NjpcXHRheDg4Nzk2X2RhdGEuYmFzZV9yZWdzID0gaW9yZW1hcCh6ZGV2LVxcdTAwM2VyZXNvdXJjZS5zdGFydCwgMHgxMDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0yODctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI4OC1cXHQvKiBlcnJvciBoYW5kbGluZyBmb3IgaW9yZW1hcCByZWdzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI4OTpcXHRpZiAoIWF4ODg3OTZfZGF0YS5iYXNlX3JlZ3MpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMjkwLVxcdFxcdGRldl9lcnIoXFx1MDAyNnpkZXYtXFx1MDAzZWRldiwgXFxcIkNhbm5vdCBpb3JlbWFwIGFyZWEgJXBSIChyZWdpc3RlcnMpXFxcXG5cXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI5Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6Mjk3OlxcdGF4ODg3OTZfZGF0YS5kYXRhX2FyZWEgPSBpb3JlbWFwKHpkZXYtXFx1MDAzZXJlc291cmNlLnN0YXJ0ICtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMjk4LVxcdFxcdFxcdFhTMTAwXzgzOTBfREFUQTMyX0JBU0UsIFhTMTAwXzgzOTBfREFUQTMyX1NJWkUpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTMwMC1cXHQvKiBlcnJvciBoYW5kbGluZyBmb3IgaW9yZW1hcCBkYXRhICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjMwMTpcXHRpZiAoIWF4ODg3OTZfZGF0YS5kYXRhX2FyZWEpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMzAyLVxcdFxcdGRldl9lcnIoXFx1MDAyNnpkZXYtXFx1MDAzZWRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjMxMDpcXHRheDg4Nzk2X2RhdGEuYXguYmxvY2tfb3V0cHV0ID0geHMxMDBfYmxvY2tfb3V0cHV0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzozMTE6XFx0YXg4ODc5Nl9kYXRhLmF4LmJsb2NrX2lucHV0ID0geHMxMDBfYmxvY2tfaW5wdXQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTMxMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MzEzOlxcdHBkZXYgPSBwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfcmVzbmRhdGEoXFx1MDAyNnpkZXYtXFx1MDAzZWRldiwgXFxcImF4ODg3OTZcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMTQtXFx0XFx0XFx0XFx0XFx0XFx0IHpkZXYtXFx1MDAzZXNsb3RhZGRyLCByZXMsIDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjMxNTpcXHRcXHRcXHRcXHRcXHRcXHQgXFx1MDAyNmF4ODg3OTZfZGF0YSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MzE2OlxcdFxcdFxcdFxcdFxcdFxcdCBzaXplb2YoYXg4ODc5Nl9kYXRhKSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTMxNy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMjktIGV4aXRfbWVtMjpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MzMwOlxcdGlvdW5tYXAoYXg4ODc5Nl9kYXRhLmRhdGFfYXJlYSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTMzMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMzMyLSBleGl0X21lbTpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MzMzOlxcdGlvdW5tYXAoYXg4ODc5Nl9kYXRhLmJhc2VfcmVncyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTMzNC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvTWFrZWZpbGUtNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L01ha2VmaWxlOjU6b2JqLSQoQ09ORklHX1NQSV9BWDg4Nzk2QykgKz0gYXg4ODc5NmMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvTWFrZWZpbGU6NjpheDg4Nzk2Yy15IDo9IGF4ODg3OTZjX21haW4ubyBheDg4Nzk2Y19pb2N0bC5vIGF4ODg3OTZjX3NwaS5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6OTojZGVmaW5lIHByX2ZtdChmbXQpXFx0XFxcImF4ODg3OTZjOiBcXFwiIGZtdFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xMC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTY6I2luY2x1ZGUgXFxcImF4ODg3OTZjX21haW4uaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTc6I2luY2x1ZGUgXFxcImF4ODg3OTZjX2lvY3RsLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxOTpzdGF0aWMgY29uc3QgY2hhciBheDg4Nzk2Y19wcml2X2ZsYWdfbmFtZXNbXVtFVEhfR1NUUklOR19MRU5dID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0yMC1cXHRcXFwiU1BJQ29tcHJlc3Npb25cXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jPTIzPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjI0OmF4ODg3OTZjX2dldF9kcnZpbmZvKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCBzdHJ1Y3QgZXRodG9vbF9kcnZpbmZvICppbmZvKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0yNS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjMwOnN0YXRpYyB1MzIgYXg4ODc5NmNfZ2V0X21zZ2xldmVsKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0zMS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjMyOlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0zMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0zNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6Mzc6c3RhdGljIHZvaWQgYXg4ODc5NmNfc2V0X21zZ2xldmVsKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCB1MzIgbGV2ZWwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTM4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6Mzk6XFx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTQwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jPTQ0PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjQ1OmF4ODg3OTZjX2dldF9wYXVzZXBhcmFtKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCBzdHJ1Y3QgZXRodG9vbF9wYXVzZXBhcmFtICpwYXVzZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtNDYte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzo0NzpcXHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtNDgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM9NTY9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzo1NzpheDg4Nzk2Y19zZXRfcGF1c2VwYXJhbShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGV0aHRvb2xfcGF1c2VwYXJhbSAqcGF1c2UpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTU4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6NTk6XFx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTYwLVxcdGludCBmYztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy05MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6OTE6c3RhdGljIGludCBheDg4Nzk2Y19nZXRfcmVnc19sZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTkyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYz05Nj1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzo5NzpheDg4Nzk2Y19nZXRfcmVncyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGV0aHRvb2xfcmVncyAqcmVncywgdm9pZCAqX3ApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTk4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6OTk6XFx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTEwMC1cXHRpbnQgb2Zmc2V0LCBpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTEwMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTAzOlxcdG1lbXNldChwLCAwLCBheDg4Nzk2Y19nZXRfcmVnc19sZW4obmRldikpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xMDQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTA3LVxcdGZvciAob2Zmc2V0ID0gMDsgb2Zmc2V0IFxcdTAwM2MgQVg4ODc5NkNfUkVHRFVNUF9MRU47IG9mZnNldCArPSAyKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjEwODpcXHRcXHRpZiAoIXRlc3RfYml0KG9mZnNldCAvIDIsIGF4ODg3OTZjX25vX3JlZ3NfbWFzaykpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTEwOS1cXHRcXHRcXHQqcCA9IEFYX1JFQUQoXFx1MDAyNmF4X2xvY2FsLVxcdTAwM2VheF9zcGksIG9mZnNldCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM9MTIxPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjEyMjpheDg4Nzk2Y19nZXRfc3RyaW5ncyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgdTMyIHN0cmluZ3NldCwgdTggKmRhdGEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTEyMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTI1LVxcdGNhc2UgRVRIX1NTX1BSSVZfRkxBR1M6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjEyNjpcXHRcXHRtZW1jcHkoZGF0YSwgYXg4ODc5NmNfcHJpdl9mbGFnX25hbWVzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxMjc6XFx0XFx0ICAgICAgIHNpemVvZihheDg4Nzk2Y19wcml2X2ZsYWdfbmFtZXMpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTI4LVxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jPTEzMj1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjEzMzpheDg4Nzk2Y19nZXRfc3NldF9jb3VudChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgaW50IHN0cmluZ3NldClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTM0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xMzgtXFx0Y2FzZSBFVEhfU1NfUFJJVl9GTEFHUzpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTM5OlxcdFxcdHJldCA9IEFSUkFZX1NJWkUoYXg4ODc5NmNfcHJpdl9mbGFnX25hbWVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTQwLVxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE0Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTQ4OnN0YXRpYyBpbnQgYXg4ODc5NmNfc2V0X3ByaXZfZmxhZ3Moc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHUzMiBmbGFncylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTQ5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTUwOlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xNTEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTYzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxNjQ6c3RhdGljIHUzMiBheDg4Nzk2Y19nZXRfcHJpdl9mbGFncyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTY1LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTY2OlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xNjctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTcwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxNzE6aW50IGF4ODg3OTZjX21kaW9fcmVhZChzdHJ1Y3QgbWlpX2J1cyAqbWRpb2J1cywgaW50IHBoeV9pZCwgaW50IGxvYylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTcyLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTczOlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gbWRpb2J1cy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTc0LVxcdGludCByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM9MTkyPWludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxOTM6YXg4ODc5NmNfbWRpb193cml0ZShzdHJ1Y3QgbWlpX2J1cyAqbWRpb2J1cywgaW50IHBoeV9pZCwgaW50IGxvYywgdTE2IHZhbClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTk0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTk1OlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gbWRpb2J1cy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTk2LVxcdGludCByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjEzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyMTQ6Y29uc3Qgc3RydWN0IGV0aHRvb2xfb3BzIGF4ODg3OTZjX2V0aHRvb2xfb3BzID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyMTU6XFx0LmdldF9kcnZpbmZvXFx0XFx0PSBheDg4Nzk2Y19nZXRfZHJ2aW5mbyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjE2LVxcdC5nZXRfbGlua1xcdFxcdD0gZXRodG9vbF9vcF9nZXRfbGluayxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjE3OlxcdC5nZXRfbXNnbGV2ZWxcXHRcXHQ9IGF4ODg3OTZjX2dldF9tc2dsZXZlbCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjE4OlxcdC5zZXRfbXNnbGV2ZWxcXHRcXHQ9IGF4ODg3OTZjX3NldF9tc2dsZXZlbCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjE5LVxcdC5nZXRfbGlua19rc2V0dGluZ3NcXHQ9IHBoeV9ldGh0b29sX2dldF9saW5rX2tzZXR0aW5ncyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0yMjEtXFx0Lm53YXlfcmVzZXRcXHRcXHQ9IHBoeV9ldGh0b29sX253YXlfcmVzZXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIyMjpcXHQuZ2V0X3BhdXNlcGFyYW1cXHRcXHQ9IGF4ODg3OTZjX2dldF9wYXVzZXBhcmFtLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyMjM6XFx0LnNldF9wYXVzZXBhcmFtXFx0XFx0PSBheDg4Nzk2Y19zZXRfcGF1c2VwYXJhbSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjI0OlxcdC5nZXRfcmVnc19sZW5cXHRcXHQ9IGF4ODg3OTZjX2dldF9yZWdzX2xlbixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjI1OlxcdC5nZXRfcmVnc1xcdFxcdD0gYXg4ODc5NmNfZ2V0X3JlZ3MsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIyNjpcXHQuZ2V0X3N0cmluZ3NcXHRcXHQ9IGF4ODg3OTZjX2dldF9zdHJpbmdzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyMjc6XFx0LmdldF9zc2V0X2NvdW50XFx0XFx0PSBheDg4Nzk2Y19nZXRfc3NldF9jb3VudCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjI4OlxcdC5nZXRfcHJpdl9mbGFnc1xcdFxcdD0gYXg4ODc5NmNfZ2V0X3ByaXZfZmxhZ3MsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIyOTpcXHQuc2V0X3ByaXZfZmxhZ3NcXHRcXHQ9IGF4ODg3OTZjX3NldF9wcml2X2ZsYWdzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0yMzAtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjMxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyMzI6aW50IGF4ODg3OTZjX2lvY3RsKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCBzdHJ1Y3QgaWZyZXEgKmlmciwgaW50IGNtZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjMzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuaC0xNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmg6MTU6I2luY2x1ZGUgXFxcImF4ODg3OTZjX21haW4uaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmgtMTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oOjE3OmV4dGVybiBjb25zdCBzdHJ1Y3QgZXRodG9vbF9vcHMgYXg4ODc5NmNfZXRodG9vbF9vcHM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oLTE4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuaDoxOTpib29sIGF4ODg3OTZjX2NoZWNrX3Bvd2VyKGNvbnN0IHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmg6MjA6Ym9vbCBheDg4Nzk2Y19jaGVja19wb3dlcl9hbmRfd2FrZShzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oOjIxOnZvaWQgYXg4ODc5NmNfc2V0X3Bvd2VyX3NhdmluZyhzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCwgdTggcHNfbGV2ZWwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuaDoyMjppbnQgYXg4ODc5NmNfbWRpb19yZWFkKHN0cnVjdCBtaWlfYnVzICptZGlvYnVzLCBpbnQgcGh5X2lkLCBpbnQgbG9jKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmg6MjM6aW50IGF4ODg3OTZjX21kaW9fd3JpdGUoc3RydWN0IG1paV9idXMgKm1kaW9idXMsIGludCBwaHlfaWQsIGludCBsb2MsIHUxNiB2YWwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuaDoyNDppbnQgYXg4ODc5NmNfaW9jdGwoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGlmcmVxICppZnIsIGludCBjbWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuaC0yNS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6OTojZGVmaW5lIHByX2ZtdChmbXQpXFx0XFxcImF4ODg3OTZjOiBcXFwiIGZtdFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjExOiNpbmNsdWRlIFxcXCJheDg4Nzk2Y19tYWluLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MTI6I2luY2x1ZGUgXFxcImF4ODg3OTZjX2lvY3RsLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz0zMz1zdGF0aWMgY29uc3QgY2hhciAqbm9fcmVnc19saXN0ID0gXFxcIjgwMDE4MDAxLGUxOTE4MDAxLDgwMDFhMDAxLGZjMGQwMDAwXFxcIjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzozNDp1bnNpZ25lZCBsb25nIGF4ODg3OTZjX25vX3JlZ3NfbWFza1tBWDg4Nzk2Q19SRUdEVU1QX0xFTiAvIChzaXplb2YodW5zaWduZWQgbG9uZykgKiA4KV07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMzUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz0zNz1NT0RVTEVfUEFSTV9ERVNDKG1zZ19lbmFibGUsIFxcXCJNZXNzYWdlIG1hc2sgKHNlZSBsaW51eC9uZXRkZXZpY2UuaCBmb3IgYml0bWFwKVxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTM4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjM5OnN0YXRpYyBpbnQgYXg4ODc5NmNfc29mdF9yZXNldChzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy00MC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo3MDpzdGF0aWMgaW50IGF4ODg3OTZjX3JlbG9hZF9lZXByb20oc3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzEte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtOTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6OTE6c3RhdGljIHZvaWQgYXg4ODc5NmNfc2V0X2h3X211bHRpY2FzdChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy05Mi17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6OTM6XFx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtOTQtXFx0aW50IG1jX2NvdW50ID0gbmV0ZGV2X21jX2NvdW50KG5kZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTI5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjEzMDpzdGF0aWMgdm9pZCBheDg4Nzk2Y19zZXRfbWFjX2FkZHIoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTMxLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoxMzI6XFx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTMzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTQzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjE0NDpzdGF0aWMgdm9pZCBheDg4Nzk2Y19sb2FkX21hY19hZGRyKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTE0NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MTQ2OlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTE0Ny1cXHR1OCBhZGRyW0VUSF9BTEVOXTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTE4Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoxODg6c3RhdGljIHZvaWQgYXg4ODc5NmNfcHJvY190eF9oZHIoc3RydWN0IHR4X3BrdF9pbmZvICppbmZvLCB1OCBpcF9zdW1tZWQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTg5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jPTIyMT1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MjIyOmF4ODg3OTZjX2NoZWNrX2ZyZWVfcGFnZXMoc3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwsIHU4IG5lZWRfcGFnZXMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMjIzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jPTI0Mz1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjI0NDpheDg4Nzk2Y190eF9maXh1cChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqcSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0yNDUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjI0NjpcXHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0yNDctXFx0dTggc3BpX2xlbiA9IGF4X2xvY2FsLVxcdTAwM2VheF9zcGkuY29tcCA/IDEgOiA0O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMjYyLVxcdG5lZWRfcGFnZXMgPSAocGt0X2xlbiArIFRYX09WRVJIRUFEICsgMTI3KSBcXHUwMDNlXFx1MDAzZSA3O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjI2MzpcXHRpZiAoYXg4ODc5NmNfY2hlY2tfZnJlZV9wYWdlcyhheF9sb2NhbCwgbmVlZF9wYWdlcykgIT0gMClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0yNjQtXFx0XFx0cmV0dXJuIE5VTEw7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0yODMtXFx0aW5mby5zZXFfbnVtID0gc2VxX251bTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoyODQ6XFx0YXg4ODc5NmNfcHJvY190eF9oZHIoXFx1MDAyNmluZm8sIHNrYi1cXHUwMDNlaXBfc3VtbWVkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0yODUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0yODktXFx0LyogV3JpdGUgU1BJIFRYUSBoZWFkZXIgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoyOTA6XFx0bWVtY3B5KHNrYl9wdXNoKHNrYiwgc3BpX2xlbiksIGF4ODg3OTZjX3R4X2NtZF9idWYsIHNwaV9sZW4pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTI5MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTMzMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzozMzM6c3RhdGljIGludCBheDg4Nzk2Y19oYXJkX3htaXQoc3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMzM0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzozMzU6XFx0c3RydWN0IGF4ODg3OTZjX3BjcHVfc3RhdHMgKnN0YXRzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTMzNi1cXHRzdHJ1Y3Qgc2tfYnVmZiAqdHhfc2tiO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMzQyLVxcdHN0YXRzID0gdGhpc19jcHVfcHRyKGF4X2xvY2FsLVxcdTAwM2VzdGF0cyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MzQzOlxcdHR4X3NrYiA9IGF4ODg3OTZjX3R4X2ZpeHVwKGF4X2xvY2FsLVxcdTAwM2VuZGV2LCBcXHUwMDI2YXhfbG9jYWwtXFx1MDAzZXR4X3dhaXRfcSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMzQ0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM9Mzg0PXN0YXRpYyBuZXRkZXZfdHhfdFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjM4NTpheDg4Nzk2Y19zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTM4Ni17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6Mzg3OlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTM4OC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jPTM5OT1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjQwMDpheDg4Nzk2Y19za2JfcmV0dXJuKHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQwMS1cXHRcXHQgICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHJ4X2hlYWRlciAqcnhoZHIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy00MDMtXFx0c3RydWN0IG5ldF9kZXZpY2UgKm5kZXYgPSBheF9sb2NhbC1cXHUwMDNlbmRldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo0MDQ6XFx0c3RydWN0IGF4ODg3OTZjX3BjcHVfc3RhdHMgKnN0YXRzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQwNS1cXHR1bnNpZ25lZCBsb25nIGZsYWdzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM9NDQyPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NDQzOmF4ODg3OTZjX3J4X2ZpeHVwKHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsLCBzdHJ1Y3Qgc2tfYnVmZiAqcnhfc2tiKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQ0NC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy00OTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NDkxOlxcdGF4ODg3OTZjX3NrYl9yZXR1cm4oYXhfbG9jYWwsIHJ4X3NrYiwgcnhoZHIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQ5Mi19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNDkzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjQ5NDpzdGF0aWMgaW50IGF4ODg3OTZjX3JlY2VpdmUoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNDk1LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo0OTY6XFx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNDk3LVxcdHN0cnVjdCBza2JfZGF0YSAqZW50cnk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01NDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NTQzOlxcdGF4ODg3OTZjX3J4X2ZpeHVwKGF4X2xvY2FsLCBza2IpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU0NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU0Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo1NDg6c3RhdGljIGludCBheDg4Nzk2Y19wcm9jZXNzX2lzcihzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01NDkte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNTc4LVxcdFxcdG5ldGlmX2RiZyhheF9sb2NhbCwgaW50ciwgbmRldiwgXFxcIiAgUlggaW50ZXJydXB0XFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo1Nzk6XFx0XFx0dG9kbyA9IGF4ODg3OTZjX3JlY2VpdmUoYXhfbG9jYWwtXFx1MDAzZW5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU4MC1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01ODQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NTg1OnN0YXRpYyBpcnFyZXR1cm5fdCBheDg4Nzk2Y19pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2luc3RhbmNlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU4Ni17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NTg3OlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU4OC1cXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmRldjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU5NC1cXHR9XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NTk1OlxcdGF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU5Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo2MDc6c3RhdGljIHZvaWQgYXg4ODc5NmNfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjA4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo2MDk6XFx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjYxMDpcXHRcXHRcXHRjb250YWluZXJfb2Yod29yaywgc3RydWN0IGF4ODg3OTZjX2RldmljZSwgYXhfd29yayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjExLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjE0LVxcdGlmICh0ZXN0X2JpdChFVkVOVF9TRVRfTVVMVEksIFxcdTAwMjZheF9sb2NhbC1cXHUwMDNlZmxhZ3MpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NjE1OlxcdFxcdGF4ODg3OTZjX3NldF9od19tdWx0aWNhc3QoYXhfbG9jYWwtXFx1MDAzZW5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYxNi1cXHRcXHRjbGVhcl9iaXQoRVZFTlRfU0VUX01VTFRJLCBcXHUwMDI2YXhfbG9jYWwtXFx1MDAzZWZsYWdzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYyMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo2MjI6XFx0XFx0d2hpbGUgKGF4ODg3OTZjX3Byb2Nlc3NfaXNyKGF4X2xvY2FsKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02MjMtXFx0XFx0XFx0Lyogbm90aGluZyAqLztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYzMy1cXHRcXHR3aGlsZSAoc2tiX3F1ZXVlX2xlbihcXHUwMDI2YXhfbG9jYWwtXFx1MDAzZXR4X3dhaXRfcSkpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo2MzQ6XFx0XFx0XFx0aWYgKCFheDg4Nzk2Y19oYXJkX3htaXQoYXhfbG9jYWwpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYzNS1cXHRcXHRcXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTY0Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo2NDg6c3RhdGljIHZvaWQgYXg4ODc5NmNfZ2V0X3N0YXRzNjQoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjQ5LVxcdFxcdFxcdFxcdCBzdHJ1Y3QgcnRubF9saW5rX3N0YXRzNjQgKnN0YXRzKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTY1MC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NjUxOlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTY1Mi1cXHR1MzIgcnhfZnJhbWVfZXJyb3JzID0gMCwgcnhfY3JjX2Vycm9ycyA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02NTctXFx0Zm9yX2VhY2hfcG9zc2libGVfY3B1KGNwdSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjY1ODpcXHRcXHRzdHJ1Y3QgYXg4ODc5NmNfcGNwdV9zdGF0cyAqcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02NTktXFx0XFx0dTY0IHJ4X3BhY2tldHMsIHJ4X2J5dGVzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjg4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjY4OTpzdGF0aWMgdm9pZCBheDg4Nzk2Y19zZXRfbWFjKHN0cnVjdCAgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02OTAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzM2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjczNzpzdGF0aWMgdm9pZCBheDg4Nzk2Y19oYW5kbGVfbGlua19jaGFuZ2Uoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzM4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo3Mzk6XFx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzQwLVxcdHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYgPSBuZGV2LVxcdTAwM2VwaHlkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy03NjQtXFx0aWYgKHVwZGF0ZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo3NjU6XFx0XFx0YXg4ODc5NmNfc2V0X21hYyhheF9sb2NhbCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzY2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzcwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjc3MTpzdGF0aWMgdm9pZCBheDg4Nzk2Y19zZXRfY3N1bXMoc3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzcyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jPTc5ND1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6Nzk1OmF4ODg3OTZjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzk2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo3OTc6XFx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzk4LVxcdHVuc2lnbmVkIGxvbmcgaXJxX2ZsYWcgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtODAyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjgwMzpcXHRyZXQgPSByZXF1ZXN0X2lycShuZGV2LVxcdTAwM2VpcnEsIGF4ODg3OTZjX2ludGVycnVwdCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy04MDQtXFx0XFx0XFx0ICBpcnFfZmxhZywgbmRldi1cXHUwMDNlbmFtZSwgbmRldik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy04MTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6ODEzOlxcdHJldCA9IGF4ODg3OTZjX3NvZnRfcmVzZXQoYXhfbG9jYWwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTgxNC1cXHRpZiAocmV0IFxcdTAwM2MgMCkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtODIwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjgyMTpcXHRheDg4Nzk2Y19zZXRfbWFjX2FkZHIobmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6ODIyOlxcdGF4ODg3OTZjX3NldF9jc3VtcyhheF9sb2NhbCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtODIzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM9ODc4PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo4Nzk6YXg4ODc5NmNfY2xvc2Uoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtODgwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo4ODE6XFx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtODgyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtODg2LVxcdCAqIGFnYWluc3QgY29uY3VycmVudCBhY2Nlc3MsIGJ1dCBhbHNvIGF2b2lkIHdha2luZyB1cCB0aGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo4ODc6XFx0ICogcXVldWUgaW4gYXg4ODc5NmNfd29yaygpLiBwaHlfc3RvcCgpIG5lZWRzIHRvIGJlIGNhbGxlZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTg4OC1cXHQgKiBiZWZvcmUgYmVjYXVzZSBpdCBsb2NrcyB0aGUgbXV0ZXggdG8gYWNjZXNzIFNQSS5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTkwNS1cXHRfX3NrYl9xdWV1ZV9wdXJnZShcXHUwMDI2YXhfbG9jYWwtXFx1MDAzZXR4X3dhaXRfcSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6OTA2OlxcdGF4ODg3OTZjX3NvZnRfcmVzZXQoYXhfbG9jYWwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTkwNy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jPTkxNz1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6OTE4OmF4ODg3OTZjX3NldF9mZWF0dXJlcyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgbmV0ZGV2X2ZlYXR1cmVzX3QgZmVhdHVyZXMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtOTE5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo5MjA6XFx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtOTIxLVxcdG5ldGRldl9mZWF0dXJlc190IGNoYW5nZWQgPSBmZWF0dXJlcyBeIG5kZXYtXFx1MDAzZWZlYXR1cmVzO1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQxMzowMjowMy4zNTQ3Mjc0MzlaIiwiU2VxIjoyMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzc5NDA1NTg0OTM5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6NDI2NDYsIk91dHB1dFRva2VucyI6MjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MjkxNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQxMzowODoyMi43NjAzMTYyNjdaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgzMzQxMDQ5MjQsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN5el9kZXZfY3JlYXRlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQxMzowODozMS4wOTQ0MzAwMjJaIiwiU2VxIjoyNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjY4NzUxMzM3NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFBhdGNoIGZvciBXb3J0aGluZXNzKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHksIHRoZSBsYWNrIG9mIGBzeXpfZGV2X2NyZWF0ZWAgaW4gc3l6a2FsbGVyIGlzIGEgcmVkIGZsYWcuIFRoZSBpbnN0cnVjdGlvbnMgYXJlIHByZXR0eSBjbGVhciBvbiB0aGlzOiBpZiB0aGUgcGF0Y2gncyBjaGFuZ2VzIGFyZSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgd2UgaGF2ZSB0byBtYXJrIGl0IGFzIG5vdCB3b3J0aCBmdXp6aW5nLiBUaGUgdGV4dCBtZW50aW9ucyBgYXg4ODc5NmAgYW5kIGl0IHNlZW1zIHRvIGJlIGEgcGxhdGZvcm0gZHJpdmVyIHNwZWNpZmljIHRvIGJvYXJkcyBsaWtlIFN1cGVySCBoaWdobGFuZGVyIGFuZCBBbWlnYSB4c3VyZjEwMC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiRGFtbiwgdGhhdCdzIG5vdCBzb21ldGhpbmcgd2UgY2FuIHByb2JlIG9uIHN0YW5kYXJkIHg4Nl82NC9hcm02NCBRRU1VL0dDRSBpbnN0YW5jZXMgdXNlZCBieSBzeXprYWxsZXJcIi4gU28gdGhhdCBtYWtlcyBtZSB0aGluaywgY2FuIHdlIGV2ZW4gcnVuIHRoaXMgYXQgYWxsLCBpcyB0aGVyZSBhIGJhY2tkb29yPyBMZXQgbWUgc2VlIGlmIHRoZXJlJ3MgYW55IG90aGVyIG1ldGhvZCBvZiBwcm9iaW5nIHRoaXMsIG1heWJlIGEgZGV2aWNlIHRyZWUgYmluZGluZz8gQW5kLCBJIG5lZWQgdG8gYmUgY2FyZWZ1bCwgbWFrZSBzdXJlIEkgYW0gY2hlY2tpbmcgZm9yIGBheDg4Nzk2YCBzcGVjaWZpY2FsbHksIGFuZCBub3QgYSByZWxhdGVkIGRyaXZlciBsaWtlIGBheDg4Nzk2Y2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEwNTU5NCwiT3V0cHV0VG9rZW5zIjoyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQxMzowODozNy43ODE5NDY4MDhaIiwiU2VxIjoyNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcwNzM2NjU4MjIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29tcGF0aWJsZS4qYXg4ODc5NlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbD01Nj1leGFtcGxlczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sLTY1LSAgICAgICAgZXRoZXJuZXRAMCB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWw6NjY6ICAgICAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJhc2l4LGF4ODg3OTZjXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbC02Ny0gICAgICAgICAgICByZWcgPSBcXHUwMDNjMHgwXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL3NhbXN1bmcvZXh5bm9zMzI1MC1hcnRpazUtZXZhbC5kdHM9NTY9XFx0ZXRoZXJuZXRAMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvc2Ftc3VuZy9leHlub3MzMjUwLWFydGlrNS1ldmFsLmR0czo1NzpcXHRcXHRjb21wYXRpYmxlID0gXFxcImFzaXgsYXg4ODc5NmNcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL3NhbXN1bmcvZXh5bm9zMzI1MC1hcnRpazUtZXZhbC5kdHMtNTgtXFx0XFx0cmVnID0gXFx1MDAzYzB4MFxcdTAwM2U7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz0xMTE4PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGF4ODg3OTZjX2R0X2lkc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjExMTk6XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJhc2l4LGF4ODg3OTZjXFxcIiB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTExMjAtXFx0e30sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDEzOjA4OjQ0Ljg1NTYxODA2WiIsIlNlcSI6MjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEzMTc2MDA4NDc5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5c2lzIG9mIHRoZSBgYXg4ODc5NmAgRHJpdmVyIGZvciBGdXp6aW5nIFN1aXRhYmlsaXR5KipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIFwiV2hlcmUgZG9lcyB0aGlzIGRyaXZlciBldmVuIGV4aXN0P1wiIEl0J3MgYSBsZWdhY3kgcGxhdGZvcm0gZHJpdmVyLCBhbmQgbXkgaW1tZWRpYXRlIGNvbmNlcm4gaXMgd2hldGhlciBzeXprYWxsZXIgaGFzIGEgd2F5IHRvIGNyZWF0ZSB0aGUgbmVjZXNzYXJ5IHBsYXRmb3JtIGRldmljZSBmb3IgaXQuIEkgc3RhcnQgZG93biB0aGUgcGF0aCBvZiBjaGVja2luZyBmb3IgYW55IHBzZXVkby1zeXNjYWxscyBsaWtlIGBzeXpfcGxhdGZvcm1fZGV2aWNlX2FkZGAgb3IgZXZlbiBzb21lIGNsZXZlciBoYWNrIGxpa2UgYHN5el9kZXZfY3JlYXRlYC4gSSBrbm93IGJldHRlciB0aGFuIHRvIHRyeSBzZWFyY2hpbmcgdGhlIGBzeXpsYW5nYCBkZXNjcmlwdGlvbnMgZGlyZWN0bHksIG9mIGNvdXJzZS4gTm8sIEkgcmVhbGl6ZSwgc3l6a2FsbGVyIGRvZXNuJ3QgaGF2ZSBhIGdlbmVyaWMgXCJjcmVhdGUgYW55IHBsYXRmb3JtIGRldmljZVwiIGZ1bmN0aW9uYWxpdHkuIEl0J3MgbW9yZSB0YXJnZXRlZCwgbGlrZSB3aXRoIFVTQiBvciA4MDIuMTEuXG5cblRoZW4sIHRoZSBzcGVjaWZpY3Mgb2YgdGhlIGBheDg4Nzk2YCBkcml2ZXIga2ljayBpbi4gVGhpcyBpcyBhIHZlcnkgbmljaGUgcGllY2Ugb2YgaGFyZHdhcmXigJRhbiBBU0lYIEFYODg3OTYsIHdoaWNoIGlzIGFuIE5FMjAwMCBjbG9uZS4gVGhpcyBpcyB1c2VkIG9uIFN1cGVySCBhbmQgQW1pZ2EsIHdoaWNoIGRvZXNuJ3Qgc2VlbSB0byBoYXZlIGEgY2hhbmNlIG9mIHJ1bm5pbmcgdGhpcyBpbiBhbiBlbXVsYXRlZCBlbnZpcm9ubWVudC4gVGhlcmUgaXMgbm8gc3VjaCB2aXJ0dWFsIGRldmljZS4gSXQgaXMgbm90IFVTQi9QQ0ksIHdoaWNoIHN5emthbGxlciAqbWlnaHQqIGJlIGFibGUgdG8gaGVscC5cblxuVGhlIGZhY3QgdGhhdCB0aGUgcGF0Y2ggaXMgXCJ1bmRlciByZXZpZXdcIiBvbiBzeXpib3QgZG9lc24ndCBtZWFuIHN5emJvdCAqZm91bmQqIGEgYnVnLiBJdCBqdXN0IG1lYW5zIHRoZSBwYXRjaCBpcyAqYmVpbmcqIHRlc3RlZC4gSXQgaXMgbm90IHRoZSBzaWduYWwgb2Ygd2hldGhlciB0aGUgY29kZSBpcyByZWFjaGFibGUgaW4gUUVNVS9HQ0UuIElmIHRoZSBjb2RlIGlzIG5vdCByZWFjaGFibGUgaW4gUUVNVS9HQ0UsIGl0J3Mgbm90IHdvcnRoIGZ1enppbmcuXG5cbk15IG5leHQgc3RlcCBpcyB0byBzZWUgaWYsIGJ5IHNvbWUgZmx1a2UsIGl0ICpjb3VsZCogYmUgcHJvYmVkIG9uIHg4Nl82NC4gSSBjaGVjayBpZiB0aGVyZSBpcyBzb21lIHBsYXRmb3JtIGRldmljZSByZWdpc3RlcmVkIHVzaW5nIHRoZSBcImF4ODg3OTZcIiBuYW1lLiBQbGF0Zm9ybSBkZXZpY2VzIGFyZSBlaXRoZXIgY3JlYXRlZCBieSBib2FyZCBjb2RlIG9yIGRldmljZSB0cmVlIGJpbmRpbmdzLiBJJ20gY29uZmlkZW50IHRoZXJlIGFyZSBubyBkZXZpY2UgdHJlZSBiaW5kaW5ncy4gSSBjYW4ndCBjcmVhdGUgZGV2aWNlcyB2aWEgc3lzZnMsIG9yIHVzZSBhIHBzZXVkby1zeXNjYWxsLlxuXG5UaGVyZWZvcmUsIHRoaXMgZHJpdmVyIGlzIHVucmVhY2hhYmxlIGluIHRoZSBzeXprYWxsZXIgZW52aXJvbm1lbnQuIEl0J3MgYSBwbGF0Zm9ybSBkcml2ZXIgZm9yIHNwZWNpZmljIGJvYXJkcyAoU3VwZXJIL0FtaWdhKSBhbmQgd2lsbCBub3QgYmUgcHJvYmVkIGluIFFFTVUvR0NFLiBUaGVyZWZvcmUsIEknbSBtYXJraW5nIGl0IGFzIGBXb3J0aEZ1enppbmc9ZmFsc2VgLlxuXG5JIGFtIHJldmlld2luZyB0aGUgYWN0dWFsIHBhdGNoIHRoYXQgd2FzIHN1Ym1pdHRlZC4gSXQncyBmaXhpbmcgYSBzdGFjayB2YXJpYWJsZSB0aGF0IHdhcyB1bmluaXRpYWxpemVkLiBSZWdhcmRsZXNzLCB0aGUgcmVhY2hhYmlsaXR5IGlzc3VlIHN0aWxsIHJlbWFpbnMgYW5kIEkgYW0gY29uZmlkZW50IGluIG15IGFzc2Vzc21lbnQuXG5cbkkgYW0gcmUtY2hlY2tpbmcgdG8gZW5zdXJlIHRoZXJlIGFyZSBubyBvdGhlciBwbGFjZXMgd2hlcmUgdGhpcyBwbGF0Zm9ybSBkZXZpY2UgaXMgcmVnaXN0ZXJlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTA2NDUzLCJPdXRwdXRUb2tlbnMiOjI2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTA2MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQxMzowODo1OC4wMzE2MzA5MjlaIiwiU2VxIjoyOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcxMDU2OTMzNjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyLipheDg4Nzk2XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYz0yMzk9c3RhdGljIGludCB4c3VyZjEwMF9wcm9iZShzdHJ1Y3Qgem9ycm9fZGV2ICp6ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTMxMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MzEzOlxcdHBkZXYgPSBwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfcmVzbmRhdGEoXFx1MDAyNnpkZXYtXFx1MDAzZWRldiwgXFxcImF4ODg3OTZcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMTQtXFx0XFx0XFx0XFx0XFx0XFx0IHpkZXYtXFx1MDAzZXNsb3RhZGRyLCByZXMsIDIsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDEzOjA5OjA1LjEzNzMyOTQxOVoiLCJTZXEiOjI5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NDAyMTIzMDA3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlVucmVhY2hhYmxlIENvZGUgaW4gTGVnYWN5IERyaXZlcioqXG5cbk9rYXksIHNvIEkndmUgZHVnIGludG8gdGhpcyBjb2RlLCBhbmQgaXQncyBwcmV0dHkgY2xlYXIgdGhpcyBwYXJ0aWN1bGFyIGRyaXZlciBtb2RpZmljYXRpb24sIHNwZWNpZmljYWxseSB3aXRoaW4gYHhzdXJmMTAwLmNgIGFuZCB0aGF0IGBzZXR1cC5jYCBmaWxlIGZvciB0aGUgU3VwZXJIIEhpZ2hsYW5kZXIgYm9hcmQsIGlzIG9ubHkgYWNjZXNzaWJsZSBvbiB2ZXJ5IHNwZWNpZmljLCBvbGRlciBoYXJkd2FyZS4gSSdtIHRhbGtpbmcgQW1pZ2EgWm9ycm8gYnVzIGFuZCB0aGUgU3VwZXJIIEhpZ2hsYW5kZXIgYm9hcmQuIE5vdGhpbmcgaW4gdGhpcyBwYXRjaCBpcyBnb2luZyB0byBiZSB0cmlnZ2VyZWQgaW4gYW55IHN0YW5kYXJkIGZ1enppbmcgZW52aXJvbm1lbnQgdGhhdCBzeXprYWxsZXIgaXMgdXNpbmcsIHlvdSBrbm93LCB0aGUgdXN1YWwgeDg2XzY0IG9yIGFybTY0IFZNcyBsaWtlIHdlIHNlZSB3aXRoIFFFTVUgb3IgR0NFLlxuXG5UaGVyZSdzIGp1c3Qgbm8gcGF0aCBmb3IgaXQgdG8gYmUgcHJvYmVkIG9yIGV4ZWN1dGVkIGdpdmVuIG91ciBjdXJyZW50IHNldHVwLiBJdCdzIGdlb2dyYXBoaWNhbGx5IGlzb2xhdGVkLCBzbyB0byBzcGVhay5cblxuVGhlcmVmb3JlLCBgV29ydGhGdXp6aW5nYCBpcyBkZWZpbml0aXZlbHkgZ2V0dGluZyBzZXQgdG8gYGZhbHNlYC4gTXkgcmVhc29uaW5nIGlzIHNvbGlkOiBUaGlzIHBhdGNoIHRvdWNoZXMgYSBsZWdhY3kgcGxhdGZvcm0gZHJpdmVyIGZvciB0aGUgYXg4ODc5Niwgd2hpY2ggcmVxdWlyZXMgdGhlc2Ugc3BlY2lmaWMsIG5pY2hlIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb25zLCBhbmQgdGhhdCdzIGEgZGVhZCBlbmQgYXMgZmFyIGFzIHJlYWNoaW5nIGl0IHRocm91Z2ggZnV6emluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTA4MjcwLCJPdXRwdXRUb2tlbnMiOjg3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDEzOjA5OjEwLjUzOTQ1ODI3NloiLCJTZXEiOjMwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4NzAwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsZWdhY3kgYXg4ODc5NiBwbGF0Zm9ybSBkcml2ZXIsIHdoaWNoIGlzIG9ubHkgcmVnaXN0ZXJlZCBieSBzcGVjaWZpYyBoYXJkd2FyZSBib2FyZCBjb2RlIChTdXBlckggSGlnaGxhbmRlciBhbmQgQW1pZ2EgWm9ycm8pLiBJdCBjYW5ub3QgYmUgcHJvYmVkIG9yIGV4ZWN1dGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFIHVzZWQgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbGVnYWN5IGF4ODg3OTYgcGxhdGZvcm0gZHJpdmVyLCB3aGljaCBpcyBvbmx5IHJlZ2lzdGVyZWQgYnkgc3BlY2lmaWMgaGFyZHdhcmUgYm9hcmQgY29kZSAoU3VwZXJIIEhpZ2hsYW5kZXIgYW5kIEFtaWdhIFpvcnJvKS4gSXQgY2Fubm90IGJlIHByb2JlZCBvciBleGVjdXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSB1c2VkIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowkv4k4[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-25 11:34:46 +0000 UTC FinishedAt: 2026-07-25 13:09:11 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDEzOjAwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+OG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsZWdhY3kgYXg4ODc5NiBwbGF0Zm9ybSBkcml2ZXIsIHdoaWNoIGlzIG9ubHkgcmVnaXN0ZXJlZCBieSBzcGVjaWZpYyBoYXJkd2FyZSBib2FyZCBjb2RlIChTdXBlckggSGlnaGxhbmRlciBhbmQgQW1pZ2EgWm9ycm8pLiBJdCBjYW5ub3QgYmUgcHJvYmVkIG9yIGV4ZWN1dGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFIHVzZWQgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDEzOjAwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNjM5ZmY3ODA0MDU2YTRjZmM2MjNmZDcyMjIzODE5MTk3OWVhYWU5MVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgSnVsIDI1IDEzOjAwOjU2IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmNcbmluZGV4IGUxNjk1ZDBmYmQ4YmIwLi41ZWUxZmJhZmRjZmNkZiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuY1xuQEAgLTcyMiwxMiAmIzQzOzcyMiwxMiBAQCBzdGF0aWMgaW50IGF4X2luaXRfZGV2KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4gI2lmZGVmIENPTkZJR19BWDg4Nzk2XzkzQ1g2XG4gXHRpZiAoYXgtXHUwMDNlcGxhdC1cdTAwM2VmbGFncyBcdTAwMjYgQVhGTEdfSEFTXzkzQ1g2KSB7XG4gXHRcdHVuc2lnbmVkIGNoYXIgbWFjX2FkZHJbRVRIX0FMRU5dO1xuLVx0XHRzdHJ1Y3QgZWVwcm9tXzkzY3g2IGVlcHJvbTtcbi1cbi1cdFx0ZWVwcm9tLmRhdGEgPSBlaV9sb2NhbDtcbi1cdFx0ZWVwcm9tLnJlZ2lzdGVyX3JlYWQgPSBheF9lZXByb21fcmVnaXN0ZXJfcmVhZDtcbi1cdFx0ZWVwcm9tLnJlZ2lzdGVyX3dyaXRlID0gYXhfZWVwcm9tX3JlZ2lzdGVyX3dyaXRlO1xuLVx0XHRlZXByb20ud2lkdGggPSBQQ0lfRUVQUk9NX1dJRFRIXzkzQzU2O1xuJiM0MztcdFx0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb20gPSB7XG4mIzQzO1x0XHRcdC5kYXRhID0gZWlfbG9jYWwsXG4mIzQzO1x0XHRcdC5yZWdpc3Rlcl9yZWFkID0gYXhfZWVwcm9tX3JlZ2lzdGVyX3JlYWQsXG4mIzQzO1x0XHRcdC5yZWdpc3Rlcl93cml0ZSA9IGF4X2VlcHJvbV9yZWdpc3Rlcl93cml0ZSxcbiYjNDM7XHRcdFx0LndpZHRoID0gUENJX0VFUFJPTV9XSURUSF85M0M1NixcbiYjNDM7XHRcdH07XG4gXG4gXHRcdGVlcHJvbV85M2N4Nl9tdWx0aXJlYWQoXHUwMDI2ZWVwcm9tLCAwLFxuIFx0XHRcdFx0ICAgICAgIChfX2xlMTYgX19mb3JjZSAqKW1hY19hZGRyLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDEzOjAwPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjhtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbGVnYWN5IGF4ODg3OTYgcGxhdGZvcm0gZHJpdmVyLCB3aGljaCBpcyBvbmx5IHJlZ2lzdGVyZWQgYnkgc3BlY2lmaWMgaGFyZHdhcmUgYm9hcmQgY29kZSAoU3VwZXJIIEhpZ2hsYW5kZXIgYW5kIEFtaWdhIFpvcnJvKS4gSXQgY2Fubm90IGJlIHByb2JlZCBvciBleGVjdXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSB1c2VkIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDYzOWZmNzgwNDA1NmE0Y2ZjNjIzZmQ3MjIyMzgxOTE5NzllYWFlOTEKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU2F0IEp1bCAyNSAxMzowMDo1NiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMKaW5kZXggZTE2OTVkMGZiZDhiYjAuLjVlZTFmYmFmZGNmY2RmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYwpAQCAtNzIyLDEyICYjNDM7NzIyLDEyIEBAIHN0YXRpYyBpbnQgYXhfaW5pdF9kZXYoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKICNpZmRlZiBDT05GSUdfQVg4ODc5Nl85M0NYNgogCWlmIChheC0mZ3Q7cGxhdC0mZ3Q7ZmxhZ3MgJmFtcDsgQVhGTEdfSEFTXzkzQ1g2KSB7CiAJCXVuc2lnbmVkIGNoYXIgbWFjX2FkZHJbRVRIX0FMRU5dOwotCQlzdHJ1Y3QgZWVwcm9tXzkzY3g2IGVlcHJvbTsKLQotCQllZXByb20uZGF0YSA9IGVpX2xvY2FsOwotCQllZXByb20ucmVnaXN0ZXJfcmVhZCA9IGF4X2VlcHJvbV9yZWdpc3Rlcl9yZWFkOwotCQllZXByb20ucmVnaXN0ZXJfd3JpdGUgPSBheF9lZXByb21fcmVnaXN0ZXJfd3JpdGU7Ci0JCWVlcHJvbS53aWR0aCA9IFBDSV9FRVBST01fV0lEVEhfOTNDNTY7CiYjNDM7CQlzdHJ1Y3QgZWVwcm9tXzkzY3g2IGVlcHJvbSA9IHsKJiM0MzsJCQkuZGF0YSA9IGVpX2xvY2FsLAomIzQzOwkJCS5yZWdpc3Rlcl9yZWFkID0gYXhfZWVwcm9tX3JlZ2lzdGVyX3JlYWQsCiYjNDM7CQkJLnJlZ2lzdGVyX3dyaXRlID0gYXhfZWVwcm9tX3JlZ2lzdGVyX3dyaXRlLAomIzQzOwkJCS53aWR0aCA9IFBDSV9FRVBST01fV0lEVEhfOTNDNTYsCiYjNDM7CQl9OwogCiAJCWVlcHJvbV85M2N4Nl9tdWx0aXJlYWQoJmFtcDtlZXByb20sIDAsCiAJCQkJICAgICAgIChfX2xlMTYgX19mb3JjZSAqKW1hY19hZGRyLAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAxMzowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjYwCgkJCQkJCQlvdXRwdXQ6IDI0CgkJCQkJCQl0aG91Z2h0czogMTE3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlJlZmFjdG9yaW5nIGEgRHJpdmVyIEluaXRpYWxpemF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmNgLiBJdCYjMzk7cyBhIHNtYWxsIGNoYW5nZSwgYWZmZWN0aW5nIHRoZSBgYXhfaW5pdF9kZXZgIGZ1bmN0aW9uLiBUaGUgY29yZSBvZiB0aGUgbW9kaWZpY2F0aW9uIGlzIGhvdyB0aGUgYHN0cnVjdCBlZXByb21fOTNjeDYgZWVwcm9tYCBpcyBpbml0aWFsaXplZC4gSW5zdGVhZCBvZiB0aGUgdXN1YWwgZmllbGQtYnktZmllbGQgYXNzaWdubWVudCwgdGhleSYjMzk7dmUgdXNlZCBhIGRlc2lnbmF0ZWQgaW5pdGlhbGl6ZXIuIEZyb20gYSBmdW5jdGlvbmFsIHBlcnNwZWN0aXZlLCB0aGlzIGlzIHB1cmVseSBzdHlsaXN0aWMg4oCTIGEgcmVmYWN0b3JpbmcuIE5vIHJlYWwgY29kZSBiZWhhdmlvciBjaGFuZ2UgaGVyZSwganVzdCBjbGVhbmluZyB0aGluZ3MgdXAuCgpCdXQgd2FpdCBhIG1pbnV0ZeKApiBkb2VzIHRoaXMgZGVzaWduYXRlZCBpbml0aWFsaXphdGlvbiBpbXBsaWNpdGx5IHplcm8gb3V0IHRoZSByZW1haW5pbmcgZmllbGRzIG9mIHRoZSBzdHJ1Y3Q/IFRoYXQmIzM5O3MgYSBzdWJ0bGUgYnV0IHBvdGVudGlhbGx5IGltcG9ydGFudCBkZXRhaWwuIEkmIzM5O2QgYmV0dGVyIGRvdWJsZS1jaGVjayB0aGUgZGVmaW5pdGlvbiBvZiBgc3RydWN0IGVlcHJvbV85M2N4NmAgaXRzZWxmLiBOZWVkIHRvIGJlIGNlcnRhaW4gdGhlcmUgYXJlIG5vIHVuaW50ZW5kZWQgc2lkZSBlZmZlY3RzLiBKdXN0IGJlY2F1c2UgaXQmIzM5O3MgYSByZWZhY3RvcmluZyBkb2VzbiYjMzk7dCBtZWFuIGl0IGlzIHByb2JsZW0tZnJlZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAxMzowMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzdHJ1Y3QgZWVwcm9tXzkzY3g2IFxceyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL2xpbnV4L2VlcHJvbV85M2N4Ni5oLTQ4LSAqL1xuaW5jbHVkZS9saW51eC9lZXByb21fOTNjeDYuaDo0OTpzdHJ1Y3QgZWVwcm9tXzkzY3g2IHtcbmluY2x1ZGUvbGludXgvZWVwcm9tXzkzY3g2LmgtNTAtXHR2b2lkICpkYXRhO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDEzOjAxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2OTUKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiA5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIEkgbmVlZCB0byBnZXQgYSBjb21wbGV0ZSB1bmRlcnN0YW5kaW5nIG9mIHRoaXMgc3RydWN0LCBzbyBteSBmaXJzdCB0aG91Z2h0IGlzOgoKKipHcmFiYmluZyB0aGUgV2hvbGUgUGljdHVyZTogTGV0JiMzOTtzIFNlZSB0aGUgRnVsbCBTdHJ1Y3QgRGVmaW5pdGlvbioqCgpJIGtub3cgSSBjYW4mIzM5O3QgcmVhbGx5IGFuYWx5emUgdGhpcyBlZmZlY3RpdmVseSB3aXRob3V0IHRoZSBjb21wbGV0ZSBjb250ZXh0LiBVbmRlcnN0YW5kaW5nIGV2ZXJ5IG1lbWJlciwgdGhlaXIgZGF0YSB0eXBlcywgYW5kIGFueSBhc3NvY2lhdGVkIGF0dHJpYnV0ZXMgaXMgYWJzb2x1dGVseSBjcnVjaWFsIHRvIGZvcm1pbmcgYSBzb3VuZCBvcGluaW9uIG9yIHVuZGVyc3RhbmRpbmcgaXRzIHB1cnBvc2UuIEl0JiMzOTtzIHRoZSBibHVlcHJpbnQsIHRoZSBmb3VuZGF0aW9uLiBJIG5lZWQgdG8gc2VlIHRoZSB3aG9sZSBkZWZpbml0aW9uIGJlZm9yZSBJIGNhbiBtYWtlIGFueSBtZWFuaW5nZnVsIGp1ZGdlbWVudHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMTM6MDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtpbmNsdWRlL2xpbnV4L2VlcHJvbV85M2N4Ni5oJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogNDksCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICA0OTpcdHN0cnVjdCBlZXByb21fOTNjeDYge1xuICA1MDpcdFx0dm9pZCAqZGF0YTtcbiAgNTE6XHRcbiAgNTI6XHRcdHZvaWQgKCpyZWdpc3Rlcl9yZWFkKShzdHJ1Y3QgZWVwcm9tXzkzY3g2ICplZXByb20pO1xuICA1MzpcdFx0dm9pZCAoKnJlZ2lzdGVyX3dyaXRlKShzdHJ1Y3QgZWVwcm9tXzkzY3g2ICplZXByb20pO1xuICA1NDpcdFxuICA1NTpcdFx0aW50IHdpZHRoO1xuICA1NjpcdFx0dW5zaWduZWQgaW50IHF1aXJrcztcbiAgNTc6XHQvKiBTb21lIEVFUFJPTXMgcmVxdWlyZSBhbiBleHRyYSBjbG9jayBjeWNsZSBiZWZvcmUgcmVhZGluZyAqL1xuICA1ODpcdCNkZWZpbmUgUENJX0VFUFJPTV9RVUlSS19FWFRSQV9SRUFEX0NZQ0xFXHRCSVQoMClcbiAgNTk6XHRcbiAgNjA6XHRcdGNoYXIgZHJpdmVfZGF0YTtcbiAgNjE6XHRcdGNoYXIgcmVnX2RhdGFfaW47XG4gIDYyOlx0XHRjaGFyIHJlZ19kYXRhX291dDtcbiAgNjM6XHRcdGNoYXIgcmVnX2RhdGFfY2xvY2s7XG4gIDY0Olx0XHRjaGFyIHJlZ19jaGlwX3NlbGVjdDtcbiAgNjU6XHR9O1xuICA2NjpcdFxuICA2NzpcdGV4dGVybiB2b2lkIGVlcHJvbV85M2N4Nl9yZWFkKHN0cnVjdCBlZXByb21fOTNjeDYgKmVlcHJvbSxcbiAgNjg6XHRcdGNvbnN0IHU4IHdvcmQsIHUxNiAqZGF0YSk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMTM6MDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzE1MAoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDExNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbml0aWFsIFRob3VnaHRzIG9uIFN0cnVjdCBJbml0aWFsaXphdGlvbioqCgpPa2F5LCBzbyB0aGUgZGVzaWduYXRlZCBpbml0aWFsaXplciBpcyBnb2luZyB0byB0YWtlIGNhcmUgb2YgemVyb2luZyBvdXQgYWxsIHRob3NlIGV4dHJhIGZpZWxkcyBJIHdhcyB3b3JyaWVkIGFib3V0OiBgcXVpcmtzYCwgYGRyaXZlX2RhdGFgLCBgcmVnX2RhdGFfaW5gLCBgcmVnX2RhdGFfb3V0YCwgYHJlZ19kYXRhX2Nsb2NrYCwgYW5kIGByZWdfY2hpcF9zZWxlY3RgLiBHb29kLCBnb29kLiBCZWZvcmUsIHRoZXkgd2VyZSBqdXN0IGhhbmdpbmcgb3V0LCB1bmluaXRpYWxpemVkLiBUaGF0IHdhcyBidWdnaW5nIG1lIGEgYml0LgoKQnV0IHdhaXQgYSBzZWNvbmQuLi5kb2VzIGBlZXByb21fOTNjeDZfbXVsdGlyZWFkYCBldmVuICp1c2UqIHRob3NlIGZpZWxkcz8gSXQgdGFrZXMgYSByZWZlcmVuY2UgdG8gdGhlIGBlZXByb21gIHN0cnVjdCBhcyBhbiBhcmd1bWVudCwgYCZhbXA7ZWVwcm9tYC4gSSBuZWVkIHRvIGJlIGFic29sdXRlbHkgc3VyZS4gTGV0IG1lIHF1aWNrbHkgZG91YmxlLWNoZWNrIHRoZSBpbXBsZW1lbnRhdGlvbnMgb2YgYGVlcHJvbV85M2N4Nl9tdWx0aXJlYWRgIGFuZCBhbHNvIGBlZXByb21fOTNjeDZfcmVhZGAuIEkgY2FuJiMzOTt0IGxlYXZlIHRoaXMgdG8gY2hhbmNlLCBlc3BlY2lhbGx5IHdoZW4gd29ya2luZyB3aXRoIEVFUFJPTSBpbnRlcmFjdGlvbnMuIEdvdHRhIGNvbmZpcm0gd2hhdCBwYXJ0cyBvZiB0aGUgc3RydWN0IGFyZSBhY3R1YWxseSBiZWluZyBhY2Nlc3NlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAxMzowMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2b2lkIGVlcHJvbV85M2N4Nl9tdWx0aXJlYWQmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9taXNjL2VlcHJvbS9lZXByb21fOTNjeDYuYz0yMDU9RVhQT1JUX1NZTUJPTF9HUEwoZWVwcm9tXzkzY3g2X3JlYWQpO1xuLS1cbmRyaXZlcnMvbWlzYy9lZXByb20vZWVwcm9tXzkzY3g2LmMtMjE5LSAqL1xuZHJpdmVycy9taXNjL2VlcHJvbS9lZXByb21fOTNjeDYuYzoyMjA6dm9pZCBlZXByb21fOTNjeDZfbXVsdGlyZWFkKHN0cnVjdCBlZXByb21fOTNjeDYgKmVlcHJvbSwgY29uc3QgdTggd29yZCxcbmRyaXZlcnMvbWlzYy9lZXByb20vZWVwcm9tXzkzY3g2LmMtMjIxLVx0X19sZTE2ICpkYXRhLCBjb25zdCB1MTYgd29yZHMpXG4tLVxuZHJpdmVycy9taXNjL2VlcHJvbS9lZXByb21fOTNjeDYuYz0yNzc9RVhQT1JUX1NZTUJPTF9HUEwoZWVwcm9tXzkzY3g2X3JlYWRiKTtcbi0tXG5kcml2ZXJzL21pc2MvZWVwcm9tL2VlcHJvbV85M2N4Ni5jLTI4OC0gKi9cbmRyaXZlcnMvbWlzYy9lZXByb20vZWVwcm9tXzkzY3g2LmM6Mjg5OnZvaWQgZWVwcm9tXzkzY3g2X211bHRpcmVhZGIoc3RydWN0IGVlcHJvbV85M2N4NiAqZWVwcm9tLCBjb25zdCB1OCBieXRlLFxuZHJpdmVycy9taXNjL2VlcHJvbS9lZXByb21fOTNjeDYuYy0yOTAtXHR1OCAqZGF0YSwgY29uc3QgdTE2IGJ5dGVzKVxuLS1cbmluY2x1ZGUvbGludXgvZWVwcm9tXzkzY3g2Lmg9Njc9ZXh0ZXJuIHZvaWQgZWVwcm9tXzkzY3g2X3JlYWQoc3RydWN0IGVlcHJvbV85M2N4NiAqZWVwcm9tLFxuaW5jbHVkZS9saW51eC9lZXByb21fOTNjeDYuaC02OC1cdGNvbnN0IHU4IHdvcmQsIHUxNiAqZGF0YSk7XG5pbmNsdWRlL2xpbnV4L2VlcHJvbV85M2N4Ni5oOjY5OmV4dGVybiB2b2lkIGVlcHJvbV85M2N4Nl9tdWx0aXJlYWQoc3RydWN0IGVlcHJvbV85M2N4NiAqZWVwcm9tLFxuaW5jbHVkZS9saW51eC9lZXByb21fOTNjeDYuaC03MC1cdGNvbnN0IHU4IHdvcmQsIF9fbGUxNiAqZGF0YSwgY29uc3QgdTE2IHdvcmRzKTtcbmluY2x1ZGUvbGludXgvZWVwcm9tXzkzY3g2Lmg9NzE9ZXh0ZXJuIHZvaWQgZWVwcm9tXzkzY3g2X3JlYWRiKHN0cnVjdCBlZXByb21fOTNjeDYgKmVlcHJvbSxcbmluY2x1ZGUvbGludXgvZWVwcm9tXzkzY3g2LmgtNzItXHRjb25zdCB1OCBieXRlLCB1OCAqZGF0YSk7XG5pbmNsdWRlL2xpbnV4L2VlcHJvbV85M2N4Ni5oOjczOmV4dGVybiB2b2lkIGVlcHJvbV85M2N4Nl9tdWx0aXJlYWRiKHN0cnVjdCBlZXByb21fOTNjeDYgKmVlcHJvbSxcbmluY2x1ZGUvbGludXgvZWVwcm9tXzkzY3g2LmgtNzQtXHRjb25zdCB1OCBieXRlLCB1OCAqZGF0YSwgY29uc3QgdTE2IGJ5dGVzKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAxMzowMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MTQxCgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMjkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhlc2UgZnVuY3Rpb25zLiBIZXJlJiMzOTtzIHdoYXQgSSYjMzk7bSB0aGlua2luZyBhcyBJIHByZXBhcmUgdG8gZXhhbWluZSBgZWVwcm9tXzkzY3g2X211bHRpcmVhZGAgYW5kIGBlZXByb21fOTNjeDZfcmVhZGA6CgoqKkRpc3NlY3RpbmcgRUVQUk9NIFJlYWQgRnVuY3Rpb25zKioKCkFscmlnaHQsIEkmIzM5O20gZXhwZWN0aW5nIHNvbWUgc3RhbmRhcmQgRUVQUk9NIGludGVyYWN0aW9uIHJvdXRpbmVzIGhlcmUsIHNwZWNpZmljYWxseSB0YWlsb3JlZCBmb3IgdGhlIDkzQ3h4IGZhbWlseS4gU2luY2UgYG11bHRpcmVhZGAgaXMgaW4gdGhlIG5hbWUsIEkmIzM5O20gYW50aWNpcGF0aW5nIHRoaXMgb25lIHdpbGwgaGFuZGxlIHJlYWRpbmcgbXVsdGlwbGUgYnl0ZXMgZnJvbSB0aGUgRUVQUk9NIGluIGEgc2luZ2xlIG9wZXJhdGlvbi4gVGhpcyBsaWtlbHkgd2lsbCBpbnZvbHZlIG9wdGltaXphdGlvbiBmb3Igc3BlZWQgYnkgbWluaW1pemluZyB0aGUgb3ZlcmhlYWQgb2YgcmVwZWF0ZWQgYWRkcmVzcyBzZXR1cCBvciBvdGhlciBjb21tdW5pY2F0aW9uIHN0ZXBzLiBJJiMzOTtsbCBuZWVkIHRvIGxvb2sgY2xvc2VseSBhdCBob3cgdGhlIGNoaXAgc2VsZWN0IChDUykgYW5kIGNsb2NrIChDTEspIGxpbmVzIGFyZSBtYW5hZ2VkLCBlc3BlY2lhbGx5IGlmIGl0JiMzOTtzIHVzaW5nIGEgU1BJLWxpa2UgcHJvdG9jb2wgb3Igc29tZXRoaW5nIG1vcmUgYmVzcG9rZS4KClRoZW4sIHRoZXJlJiMzOTtzIGBlZXByb21fOTNjeDZfcmVhZGAuIFRoaXMgb25lLCBwcm9iYWJseSBmb3IgYSBzaW5nbGUgYnl0ZSwgbWlnaHQgYmUgYSBzaW1wbGVyIGltcGxlbWVudGF0aW9uLCBwb3RlbnRpYWxseSBzZXJ2aW5nIGFzIHRoZSBidWlsZGluZyBibG9jayBmb3IgdGhlIGBtdWx0aXJlYWRgIGZ1bmN0aW9uIG9yIHVzZWQgaW4gc2NlbmFyaW9zIHdoZXJlIHJlYWRpbmcgYSBzaW5nbGUgdmFsdWUgaXMgbW9yZSBhcHByb3ByaWF0ZS4gSSYjMzk7bGwgYmUgbG9va2luZyB0byBjb21wYXJlIHRoZWlyIGltcGxlbWVudGF0aW9ucywgcGFydGljdWxhcmx5IHRvIHNlZSBpZiBhbnkgbG93LWxldmVsIGhhcmR3YXJlIGFjY2VzcyBpcyBhYnN0cmFjdGVkIGluIGVpdGhlciBmdW5jdGlvbiwgb3IgaWYgaXQmIzM5O3MgYWxsIGhhbmRsZWQgaW5saW5lLiBBcmUgdGhlcmUgYW55IGVycm9yIGNoZWNrcyBwcmVzZW50PyBMaWtlLCBjaGVja2luZyBmb3IgYSB2YWxpZCBhZGRyZXNzIGlucHV0PyBBcmUgdGhlcmUgYW55IG9wdGltaXphdGlvbnMgdGhhdCBtaWdodCBsZWFkIHRvIHBvdGVudGlhbCBpc3N1ZXMgaW4gY2VydGFpbiBzY2VuYXJpb3MgKGxpa2UgdGltaW5nIGNvbnN0cmFpbnRzKT8KCkkmIzM5O20gaG9waW5nIHRvIHNlZSB3ZWxsLWNvbW1lbnRlZCBjb2RlLCBnaXZlbiB0aGUgbmF0dXJlIG9mIEVFUFJPTSBpbnRlcmFjdGlvbiwgd2hpY2ggb2Z0ZW4gbmVlZHMgdG8gYmUgcHJlY2lzZS4gSSYjMzk7bGwgYmUgZm9jdXNlZCBvbiBlZmZpY2llbmN5LCBlcnJvciBoYW5kbGluZywgYW5kIHRoZSBvdmVyYWxsIGRlc2lnbiBjaG9pY2VzIG1hZGUgdG8gb3B0aW1pemUgdGhlIHJlYWQgcHJvY2VzcyBmb3IgdGhlc2Ugc3BlY2lmaWMgY2hpcHMuIFRoaXMgaXMgZ29pbmcgdG8gYmUgaW50ZXJlc3RpbmchCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDEzOjAxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9taXNjL2VlcHJvbS9lZXByb21fOTNjeDYuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDE0MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA4MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgMTQwOlx0XHQgKiBTdGFydCByZWFkaW5nIGFsbCBiaXRzLlxuIDE0MTpcdFx0ICovXG4gMTQyOlx0XHRmb3IgKGkgPSBjb3VudDsgaSBcdTAwM2UgMDsgaS0tKSB7XG4gMTQzOlx0XHRcdGVlcHJvbV85M2N4Nl9wdWxzZV9oaWdoKGVlcHJvbSk7XG4gMTQ0Olx0XG4gMTQ1Olx0XHRcdGVlcHJvbS1cdTAwM2VyZWdpc3Rlcl9yZWFkKGVlcHJvbSk7XG4gMTQ2Olx0XG4gMTQ3Olx0XHRcdC8qXG4gMTQ4Olx0XHRcdCAqIENsZWFyIGRhdGFfaW4gZmxhZy5cbiAxNDk6XHRcdFx0ICovXG4gMTUwOlx0XHRcdGVlcHJvbS1cdTAwM2VyZWdfZGF0YV9pbiA9IDA7XG4gMTUxOlx0XG4gMTUyOlx0XHRcdC8qXG4gMTUzOlx0XHRcdCAqIFJlYWQgaWYgdGhlIGJpdCBoYXMgYmVlbiBzZXQuXG4gMTU0Olx0XHRcdCAqL1xuIDE1NTpcdFx0XHRpZiAoZWVwcm9tLVx1MDAzZXJlZ19kYXRhX291dClcbiAxNTY6XHRcdFx0XHRidWYgfD0gQklUKGkgLSAxKTtcbiAxNTc6XHRcbiAxNTg6XHRcdFx0ZWVwcm9tXzkzY3g2X3B1bHNlX2xvdyhlZXByb20pO1xuIDE1OTpcdFx0fVxuIDE2MDpcdFxuIDE2MTpcdFx0KmRhdGEgPSBidWY7XG4gMTYyOlx0fVxuIDE2MzpcdFxuIDE2NDpcdC8qKlxuIDE2NTpcdCAqIGVlcHJvbV85M2N4Nl9yZWFkIC0gUmVhZCBhIHdvcmQgZnJvbSBlZXByb21cbiAxNjY6XHQgKiBAZWVwcm9tOiBQb2ludGVyIHRvIGVlcHJvbSBzdHJ1Y3R1cmVcbiAxNjc6XHQgKiBAd29yZDogV29yZCBpbmRleCBmcm9tIHdoZXJlIHdlIHNob3VsZCBzdGFydCByZWFkaW5nXG4gMTY4Olx0ICogQGRhdGE6IHRhcmdldCBwb2ludGVyIHdoZXJlIHRoZSBpbmZvcm1hdGlvbiB3aWxsIGhhdmUgdG8gYmUgc3RvcmVkXG4gMTY5Olx0ICpcbiAxNzA6XHQgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgcmVhZCB0aGUgZWVwcm9tIGRhdGEgYXMgaG9zdC1lbmRpYW4gd29yZFxuIDE3MTpcdCAqIGludG8gdGhlIGdpdmVuIGRhdGEgcG9pbnRlci5cbiAxNzI6XHQgKi9cbiAxNzM6XHR2b2lkIGVlcHJvbV85M2N4Nl9yZWFkKHN0cnVjdCBlZXByb21fOTNjeDYgKmVlcHJvbSwgY29uc3QgdTggd29yZCxcbiAxNzQ6XHRcdHUxNiAqZGF0YSlcbiAxNzU6XHR7XG4gMTc2Olx0XHR1MTYgY29tbWFuZDtcbiAxNzc6XHRcbiAxNzg6XHRcdC8qXG4gMTc5Olx0XHQgKiBJbml0aWFsaXplIHRoZSBlZXByb20gcmVnaXN0ZXJcbiAxODA6XHRcdCAqL1xuIDE4MTpcdFx0ZWVwcm9tXzkzY3g2X3N0YXJ0dXAoZWVwcm9tKTtcbiAxODI6XHRcbiAxODM6XHRcdC8qXG4gMTg0Olx0XHQgKiBTZWxlY3QgdGhlIHJlYWQgb3Bjb2RlIGFuZCB0aGUgd29yZCB0byBiZSByZWFkLlxuIDE4NTpcdFx0ICovXG4gMTg2Olx0XHRjb21tYW5kID0gKFBDSV9FRVBST01fUkVBRF9PUENPREUgXHUwMDNjXHUwMDNjIGVlcHJvbS1cdTAwM2V3aWR0aCkgfCB3b3JkO1xuIDE4NzpcdFx0ZWVwcm9tXzkzY3g2X3dyaXRlX2JpdHMoZWVwcm9tLCBjb21tYW5kLFxuIDE4ODpcdFx0XHRQQ0lfRUVQUk9NX1dJRFRIX09QQ09ERSAmIzQzOyBlZXByb20tXHUwMDNld2lkdGgpO1xuIDE4OTpcdFxuIDE5MDpcdFx0aWYgKGhhc19xdWlya19leHRyYV9yZWFkX2N5Y2xlKGVlcHJvbSkpIHtcbiAxOTE6XHRcdFx0ZWVwcm9tXzkzY3g2X3B1bHNlX2hpZ2goZWVwcm9tKTtcbiAxOTI6XHRcdFx0ZWVwcm9tXzkzY3g2X3B1bHNlX2xvdyhlZXByb20pO1xuIDE5MzpcdFx0fVxuIDE5NDpcdFxuIDE5NTpcdFx0LypcbiAxOTY6XHRcdCAqIFJlYWQgdGhlIHJlcXVlc3RlZCAxNiBiaXRzLlxuIDE5NzpcdFx0ICovXG4gMTk4Olx0XHRlZXByb21fOTNjeDZfcmVhZF9iaXRzKGVlcHJvbSwgZGF0YSwgMTYpO1xuIDE5OTpcdFxuIDIwMDpcdFx0LypcbiAyMDE6XHRcdCAqIENsZWFudXAgZWVwcm9tIHJlZ2lzdGVyLlxuIDIwMjpcdFx0ICovXG4gMjAzOlx0XHRlZXByb21fOTNjeDZfY2xlYW51cChlZXByb20pO1xuIDIwNDpcdH1cbiAyMDU6XHRFWFBPUlRfU1lNQk9MX0dQTChlZXByb21fOTNjeDZfcmVhZCk7XG4gMjA2Olx0XG4gMjA3Olx0LyoqXG4gMjA4Olx0ICogZWVwcm9tXzkzY3g2X211bHRpcmVhZCAtIFJlYWQgbXVsdGlwbGUgd29yZHMgZnJvbSBlZXByb21cbiAyMDk6XHQgKiBAZWVwcm9tOiBQb2ludGVyIHRvIGVlcHJvbSBzdHJ1Y3R1cmVcbiAyMTA6XHQgKiBAd29yZDogV29yZCBpbmRleCBmcm9tIHdoZXJlIHdlIHNob3VsZCBzdGFydCByZWFkaW5nXG4gMjExOlx0ICogQGRhdGE6IHRhcmdldCBwb2ludGVyIHdoZXJlIHRoZSBpbmZvcm1hdGlvbiB3aWxsIGhhdmUgdG8gYmUgc3RvcmVkXG4gMjEyOlx0ICogQHdvcmRzOiBOdW1iZXIgb2Ygd29yZHMgdGhhdCBzaG91bGQgYmUgcmVhZC5cbiAyMTM6XHQgKlxuIDIxNDpcdCAqIFRoaXMgZnVuY3Rpb24gd2lsbCByZWFkIGFsbCByZXF1ZXN0ZWQgd29yZHMgZnJvbSB0aGUgZWVwcm9tLFxuIDIxNTpcdCAqIHRoaXMgaXMgZG9uZSBieSBjYWxsaW5nIGVlcHJvbV85M2N4Nl9yZWFkKCkgbXVsdGlwbGUgdGltZXMuXG4gMjE2Olx0ICogQnV0IHdpdGggdGhlIGFkZGl0aW9uYWwgY2hhbmdlIHRoYXQgd2hpbGUgdGhlIGVlcHJvbV85M2N4Nl9yZWFkXG4gMjE3Olx0ICogd2lsbCByZXR1cm4gaG9zdCBvcmRlcmVkIGJ5dGVzLCB0aGlzIG1ldGhvZCB3aWxsIHJldHVybiBsaXR0bGVcbiAyMTg6XHQgKiBlbmRpYW4gd29yZHMuXG4gMjE5Olx0ICovXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDEzOjAxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU3NDgKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiAyODkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRml4aW5nIGEgU3VidGxlIEVFUFJPTSBJbml0aWFsaXphdGlvbiBCdWcqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYGVlcHJvbV85M2N4Nl9yZWFkYCBmdW5jdGlvbiwgYW5kIGl0IGNhbGxzIGBlZXByb21fOTNjeDZfc3RhcnR1cGAuICBSaWdodCwgdGhhdCBzZXRzIGFsbCB0aGUgY29udHJvbCByZWdpc3RlcnMgZm9yIHRoZSBFRVBST006IGBkYXRhX2luYCwgYGRhdGFfb3V0YCwgYGNsb2NrYCwgYGNoaXBfc2VsZWN0YCwgYW5kIGBkcml2ZV9kYXRhYC4gRXZlcnl0aGluZyBzZWVtcyBub3JtYWwgdGhlcmUuCgpCdXQgdGhlbiwgSSBzZWUgdGhpcyBgaGFzX3F1aXJrX2V4dHJhX3JlYWRfY3ljbGUoZWVwcm9tKWAgY2hlY2suICBJdCYjMzk7cyBjaGVja2luZyB0aGUgYGVlcHJvbS0mZ3Q7cXVpcmtzYCBmaWVsZC4gSG1tLi4uIGlmIGBlZXByb20tJmd0O3F1aXJrc2Agd2FzbiYjMzk7dCBpbml0aWFsaXplZCwgaXQgY291bGQgY29udGFpbiBnYXJiYWdlIHZhbHVlcy4gVGhhdCBjb3VsZCBsZWFkIGBoYXNfcXVpcmtfZXh0cmFfcmVhZF9jeWNsZWAgdG8gcmV0dXJuIHRydWUgd2hlbiBpdCBzaG91bGRuJiMzOTt0LiBBbmQgSSBiZXQgaXQgaGFzIQoKQWgsIHJpZ2h0LCBub3cgSSByZW1lbWJlci4gVGhlIGBzdHJ1Y3QgZWVwcm9tXzkzY3g2IGVlcHJvbTtgIGlzIGRlY2xhcmVkIG9uIHRoZSBzdGFjaywgd2l0aGluIHRoZSBgYXhfaW5pdF9kZXZgIGZ1bmN0aW9uLiBUaGUgY29tcGlsZXIgd29uJiMzOTt0IGluaXRpYWxpemUgaXQsIHNvIGl0JiMzOTtsbCBoYXZlIHdoYXRldmVyIGdhcmJhZ2Ugd2FzIGFscmVhZHkgdGhlcmUhIEFuZCB0aGUgYHF1aXJrc2AgZmllbGQgd2l0aGluIGBlZXByb21gIHdvdWxkIGhhdmUgYmVlbiB1bmluaXRpYWxpemVkLgoKVGhlIHNvbHV0aW9uIGlzIHNpbXBsZS4gVXNpbmcgYSBkZXNpZ25hdGVkIGluaXRpYWxpemVyLCBJIGNhbiBleHBsaWNpdGx5IHplcm8taW5pdGlhbGl6ZSBgZWVwcm9tLnF1aXJrc2AuIFRoaXMgZ3VhcmFudGVlcyB0aGF0IGBxdWlya3NgIHdpbGwgc3RhcnQgYXQgemVybywgZml4aW5nIHRoaXMgcG90ZW50aWFsIGJ1Zy4gVGhpcyBpcyBncmVhdCwgbm8gbW9yZSByYW5kb20gcmVhZHMuCgpOb3csIEkgd29uZGVyIGlmIHRoZSBgYXg4ODc5NmAgZHJpdmVyLCB0aGUgb25lIHRoYXQgdXNlcyB0aGlzIGNvZGUsIGlzIGEgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBJdCYjMzk7cyBhbiBJU0EvcGxhdGZvcm0gZHJpdmVyLCBzbyBpdCBjb3VsZCBiZS4gTGV0IG1lIGNoZWNrIHRoZSBzb3VyY2UgY29kZSBpbiBgYXg4ODc5Ni5jYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMTM6MDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNTAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbiAgIDI6XHQvKiBkcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuY1xuICAgMzpcdCAqXG4gICA0Olx0ICogQ29weXJpZ2h0IDIwMDUsMjAwNyBTaW10ZWMgRWxlY3Ryb25pY3NcbiAgIDU6XHQgKlx0QmVuIERvb2tzIFx1MDAzY2JlbkBzaW10ZWMuY28udWtcdTAwM2VcbiAgIDY6XHQgKlxuICAgNzpcdCAqIEFzaXggQVg4ODc5NiAxMC8xMDAgRXRoZXJuZXQgY29udHJvbGxlciBzdXBwb3J0XG4gICA4Olx0ICpcdEJhc2VkIG9uIG5lLmMsIGJ5IERvbmFsZCBCZWNrZXIsIGV0LWFsLlxuICAgOTpcdCAqL1xuICAxMDpcdFxuICAxMTpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L21vZHVsZS5oXHUwMDNlXG4gIDEyOlx0I2luY2x1ZGUgXHUwMDNjbGludXgva2VybmVsLmhcdTAwM2VcbiAgMTM6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9lcnJuby5oXHUwMDNlXG4gIDE0Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvaXNhcG5wLmhcdTAwM2VcbiAgMTU6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9pbnRlcnJ1cHQuaFx1MDAzZVxuICAxNjpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L2lvLmhcdTAwM2VcbiAgMTc6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaFx1MDAzZVxuICAxODpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L2RlbGF5LmhcdTAwM2VcbiAgMTk6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC90aW1lci5oXHUwMDNlXG4gIDIwOlx0I2luY2x1ZGUgXHUwMDNjbGludXgvbmV0ZGV2aWNlLmhcdTAwM2VcbiAgMjE6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9ldGhlcmRldmljZS5oXHUwMDNlXG4gIDIyOlx0I2luY2x1ZGUgXHUwMDNjbGludXgvZXRodG9vbC5oXHUwMDNlXG4gIDIzOlx0I2luY2x1ZGUgXHUwMDNjbGludXgvbWRpby1iaXRiYW5nLmhcdTAwM2VcbiAgMjQ6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9waHkuaFx1MDAzZVxuICAyNTpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L2VlcHJvbV85M2N4Ni5oXHUwMDNlXG4gIDI2Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvc2xhYi5oXHUwMDNlXG4gIDI3Olx0XG4gIDI4Olx0I2luY2x1ZGUgXHUwMDNjbmV0L2F4ODg3OTYuaFx1MDAzZVxuICAyOTpcdFxuICAzMDpcdFxuICAzMTpcdC8qIFJlbmFtZSB0aGUgbGliODM5MC5jIGZ1bmN0aW9ucyB0byBzaG93IHRoYXQgdGhleSBhcmUgaW4gdGhpcyBkcml2ZXIgKi9cbiAgMzI6XHQjZGVmaW5lIF9fZWlfb3BlbiBheF9laV9vcGVuXG4gIDMzOlx0I2RlZmluZSBfX2VpX2Nsb3NlIGF4X2VpX2Nsb3NlXG4gIDM0Olx0I2RlZmluZSBfX2VpX3BvbGwgYXhfZWlfcG9sbFxuICAzNTpcdCNkZWZpbmUgX19laV9zdGFydF94bWl0IGF4X2VpX3N0YXJ0X3htaXRcbiAgMzY6XHQjZGVmaW5lIF9fZWlfdHhfdGltZW91dCBheF9laV90eF90aW1lb3V0XG4gIDM3Olx0I2RlZmluZSBfX2VpX2dldF9zdGF0cyBheF9laV9nZXRfc3RhdHNcbiAgMzg6XHQjZGVmaW5lIF9fZWlfc2V0X211bHRpY2FzdF9saXN0IGF4X2VpX3NldF9tdWx0aWNhc3RfbGlzdFxuICAzOTpcdCNkZWZpbmUgX19laV9pbnRlcnJ1cHQgYXhfZWlfaW50ZXJydXB0XG4gIDQwOlx0I2RlZmluZSBfX19fYWxsb2NfZWlfbmV0ZGV2IGF4X19hbGxvY19laV9uZXRkZXZcbiAgNDE6XHQjZGVmaW5lIF9fTlM4MzkwX2luaXQgYXhfTlM4MzkwX2luaXRcbiAgNDI6XHRcbiAgNDM6XHQvKiBmb3JjZSB1bnNpZ25lZCBsb25nIGJhY2sgdG8gJiMzOTt2b2lkIF9faW9tZW0gKiYjMzk7ICovXG4gIDQ0Olx0I2RlZmluZSBheF9jb252ZXJ0X2FkZHIoX2EpICgodm9pZCBfX2ZvcmNlIF9faW9tZW0gKikoX2EpKVxuICA0NTpcdFxuICA0NjpcdCNkZWZpbmUgZWlfaW5iKF9hKSByZWFkYihheF9jb252ZXJ0X2FkZHIoX2EpKVxuICA0NzpcdCNkZWZpbmUgZWlfb3V0YihfdiwgX2EpIHdyaXRlYihfdiwgYXhfY29udmVydF9hZGRyKF9hKSlcbiAgNDg6XHRcbiAgNDk6XHQjZGVmaW5lIGVpX2luYl9wKF9hKSBlaV9pbmIoX2EpXG4gIDUwOlx0I2RlZmluZSBlaV9vdXRiX3AoX3YsIF9hKSBlaV9vdXRiKF92LCBfYSlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMTM6MDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzMzMAoJCQkJCQkJb3V0cHV0OiAxOQoJCQkJCQkJdGhvdWdodHM6IDY3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQgbWUgYnJlYWsgdGhpcyBkb3duLgoKKipGdXp6aW5nIGEgUGxhdGZvcm0gRGV2aWNlIERyaXZlcioqCgpSaWdodCwgc28gdGhpcyBjb2RlIGlzIGRlZmluaXRlbHkgYSBwbGF0Zm9ybSBkZXZpY2UgZHJpdmVyLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgJiMzNDtDYW4gdGhpcyBiZSBmdXp6ZWQgZWZmZWN0aXZlbHk/JiMzNDsgVGhlIGFuc3dlciwgYXMgSSB1bmRlcnN0YW5kIGl0LCBpcyB5ZXMuIFdlIGNhbiBsZXZlcmFnZSB0b29scyBsaWtlIFN5emthbGxlci4gSXQgY2FuIGNyZWF0ZSBwbGF0Zm9ybSBkZXZpY2VzIGZvciB1cywgbGlrZWx5IHVzaW5nIGBzeXpfZGV2X2NyZWF0ZWAgb3Igc29tZXRoaW5nIGFuYWxvZ291cy4gSWYgdGhlIHRhcmdldCBwbGF0Zm9ybSBzdXBwb3J0cyBpbmplY3Rpb24sIGV2ZW4gYmV0dGVyLCB3ZSBoYXZlIG1vcmUgY29udHJvbC4KClRoZW4gSSBxdWlja2x5IHJlYWxpemVkLCBJIG5lZWQgdG8gY2hlY2sgaG93IHRoZSBwbGF0Zm9ybSBkZXZpY2UgaW50ZXJhY3RzIHdpdGggdGhlIHN5c3RlbS4gSSByZW1lbWJlciB0aGF0IGBheF9pbml0X2RldmAgZ2V0cyBjYWxsZWQgZnJvbSBgYXhfcHJvYmVgLiBPa2F5LCB0aGF0JiMzOTtzIHRoZSBpbml0aWFsaXphdGlvbiwgc28gSSBuZWVkIHRvIGZvY3VzIG9uIHdoYXQgaGFwcGVucyB3aXRoaW4gdGhvc2UgZnVuY3Rpb25zIHdoZW4gZGVzaWduaW5nIG15IGZ1enppbmcgYXBwcm9hY2guCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDEzOjAxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2F4X2luaXRfZGV2JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jPTY2MD1zdGF0aWMgdm9pZCBheF9pbml0aWFsX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBlaV9kZXZpY2UgKmVpX2xvY2FsKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTY3My0vKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM6Njc0OiAqIGF4X2luaXRfZGV2XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy02NzUtICpcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy02ODAtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYzo2ODE6c3RhdGljIGludCBheF9pbml0X2RldihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtNjgyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYz04NDQ9c3RhdGljIGludCBheF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTk0NC1cdC8qIGdvdCByZXNvdXJjZXMsIG5vdyBpbml0aWFsaXNlIGFuZCByZWdpc3RlciBkZXZpY2UgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjk0NTpcdHJldCA9IGF4X2luaXRfZGV2KGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy05NDYtXHRpZiAoIXJldClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMTM6MDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzk3NwoJCQkJCQkJb3V0cHV0OiAyMQoJCQkJCQkJdGhvdWdodHM6IDc1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLgoKKipJbml0aWFsIEFzc2Vzc21lbnQgb2YgYSBEcml2ZXIgUGF0Y2gqKgoKUmlnaHQsIHNvIGBheF9pbml0X2RldmAgaXMgY2FsbGVkIHdpdGhpbiB0aGUgcHJvYmUgZnVuY3Rpb24uIFRoYXQmIzM5O3MgYSBnb29kIHBsYWNlIHRvIHN0YXJ0LCBpdCYjMzk7cyB0aGUgaW5pdGlhbGl6YXRpb24gcGhhc2UuIFRoZSBwYXRjaCwgc3BlY2lmaWNhbGx5LCBpcyBhZGRyZXNzaW5nIGFuIHVuaW5pdGlhbGl6ZWQgc3RhY2sgdmFyaWFibGUuIE15IGluaXRpYWwgcmVhY3Rpb24gaXMsICp5ZXMqLCB0aGF0JiMzOTtzIHNvbWV0aGluZyB0byBwYXkgYXR0ZW50aW9uIHRvLiBVbmluaXRpYWxpemVkIHZhcmlhYmxlcyBhcmUgYSBjbGFzc2ljIHNvdXJjZSBvZiBwcm9ibGVtcywgYW5kIHRoZXkgY2FuIGxlYWQgdG8gc29tZSByZWFsbHkgbmFzdHksIGhhcmQtdG8tZGVidWcgYmVoYXZpb3IsIGVzcGVjaWFsbHkgaW4gYSBkcml2ZXIuCgpUaGUgbmV4dCBxdWVzdGlvbjogaXMgaXQgd29ydGggZnV6emluZyB0aGlzPyBBYnNvbHV0ZWx5LCBpbiB0aGlzIGNhc2UuIEZpeGluZyBhIGJ1ZyBpbiB0aGUgcHJvYmUgcGF0aCBvZiBhIGRyaXZlciBpcyBzaWduaWZpY2FudC4gSXQmIzM5O3MgYSBoaWdoLXZhbHVlIHRhcmdldCBmb3IgZnV6emluZyBiZWNhdXNlIGl0IGNhbiB1bmNvdmVyIGEgdmFyaWV0eSBvZiBtZW1vcnktcmVsYXRlZCBpc3N1ZXMsIHJhY2UgY29uZGl0aW9ucywgb3Igb3RoZXIgdW5leHBlY3RlZCBiZWhhdmlvcnMgdGhhdCBzdGVtIGZyb20gdW5pbml0aWFsaXplZCB2YXJpYWJsZXMuCgpBbHJpZ2h0LCBub3cgbGV0IG1lIGNoZWNrIHRoZSByZWxldmFudCBLY29uZmlnIG9wdGlvbnM6IGBBWDg4Nzk2XzkzQ1g2YCBhbmQgYEFYODg3OTZgLiBJIHdhbnQgdG8gdW5kZXJzdGFuZCB0aGUgY29uZmlndXJhdGlvbiBzcGFjZSBvZiB0aGUgZHJpdmVyIGFuZCBpdHMgZGVwZW5kZW5jaWVzLiBUaGlzIGluZm9ybWF0aW9uIHdpbGwgaW5mb3JtIG15IGZ1enppbmcgc3RyYXRlZ3kgYnkgaGVscGluZyBtZSBkZXRlcm1pbmUgd2hpY2ggYnVpbGQgY29uZmlndXJhdGlvbnMgYXJlIHRoZSBtb3N0IGltcG9ydGFudCBhbmQgaG93IHRoZSBuZXcgcGF0Y2ggd2lsbCBpbXBhY3QgZGlmZmVyZW50IHN5c3RlbXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDEzOjAxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBBWDg4Nzk2JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvS2NvbmZpZz0xOD1pZiBORVRfVkVORE9SXzgzOTBcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvS2NvbmZpZy0xOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvS2NvbmZpZzoyMDpjb25maWcgQVg4ODc5NlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9LY29uZmlnLTIxLVx0dHJpc3RhdGUgXCYjMzQ7QVNJWCBBWDg4Nzk2IE5FMjAwMCBjbG9uZSBzdXBwb3J0XCYjMzQ7IGlmICFaT1JST1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvS2NvbmZpZy0yOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvS2NvbmZpZzozMDpjb25maWcgQVg4ODc5Nl85M0NYNlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9LY29uZmlnLTMxLVx0Ym9vbCBcJiMzNDtBU0lYIEFYODg3OTYgZXh0ZXJuYWwgOTNDWDYgZWVwcm9tIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9waHkvS2NvbmZpZz0xNTI9c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L3BoeS9hcXVhbnRpYS9LY29uZmlnXCYjMzQ7XG5kcml2ZXJzL25ldC9waHkvS2NvbmZpZy0xNTMtXG5kcml2ZXJzL25ldC9waHkvS2NvbmZpZzoxNTQ6Y29uZmlnIEFYODg3OTZCX1BIWVxuZHJpdmVycy9uZXQvcGh5L0tjb25maWctMTU1LVx0dHJpc3RhdGUgXCYjMzQ7QXNpeCBQSFlzXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvcGh5L0tjb25maWctMTU5LVxuZHJpdmVycy9uZXQvcGh5L0tjb25maWc6MTYwOmNvbmZpZyBBWDg4Nzk2Ql9SVVNUX1BIWVxuZHJpdmVycy9uZXQvcGh5L0tjb25maWctMTYxLVx0Ym9vbCBcJiMzNDtSdXN0IHJlZmVyZW5jZSBkcml2ZXIgZm9yIEFzaXggUEhZc1wmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAxMzowMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4NzE4CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEZXBlbmRlbmN5IERlZXAgRGl2ZSoqCgpPa2F5LCB0aW1lIHRvIGdldCBncmFudWxhci4gVGhlIHRhc2sgaXMgY2xlYXI6IEkgbmVlZCB0byBkaXNzZWN0IHRoZSBkZXBlbmRlbmNpZXMgb2YgYEFYODg3OTZgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gaW1tZWRpYXRlbHkgZGl2ZSBpbnRvIHRoZSBtYW5pZmVzdCBmaWxlcywgb2YgY291cnNlLiBJJiMzOTtsbCBuZWVkIHRvIG1hcCBvdXQgdGhlIGVudGlyZSBkZXBlbmRlbmN5IGdyYXBoLCBmcm9tIGRpcmVjdCBkZXBlbmRlbmNpZXMgdG8gdHJhbnNpdGl2ZSBvbmVzLCBiZWNhdXNlIGhpZGRlbiBkZXBlbmRlbmNpZXMgYXJlIHRoZSBvbmVzIHRoYXQgdXN1YWxseSBiaXRlIHlvdSBsYXRlciwgeW91IGtub3c/IE15IGd1dCB0ZWxscyBtZSB0aGVyZSBtaWdodCBiZSBzb21lIGNvbXBsZXhpdGllcyB3aXRoIGl0cyBwYWNrYWdlIGZvcm1hdCwgc28gSSB3aWxsIHdhdGNoIGZvciBhbnl0aGluZyBvdXQgb2YgdGhlIG9yZGluYXJ5IHJpZ2h0IGF3YXkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGlmIHRoZXJlIGFyZSBhbnkgdmVyc2lvbiBjb25mbGljdHMgb3IgcG90ZW50aWFsIHNlY3VyaXR5IHZ1bG5lcmFiaWxpdGllcyBsdXJraW5nIHdpdGhpbiB0aGlzIGRlcGVuZGVuY3kgY2hhaW4uIFRoZSBtb3JlIEkgbGVhcm4gdXAgZnJvbnQsIHRoZSBiZXR0ZXIgbXkgdW5kZXJzdGFuZGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMTM6MDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxOCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgIDE4Olx0aWYgTkVUX1ZFTkRPUl84MzkwXG4gIDE5Olx0XG4gIDIwOlx0Y29uZmlnIEFYODg3OTZcbiAgMjE6XHRcdHRyaXN0YXRlIFwmIzM0O0FTSVggQVg4ODc5NiBORTIwMDAgY2xvbmUgc3VwcG9ydFwmIzM0OyBpZiAhWk9SUk9cbiAgMjI6XHRcdGRlcGVuZHMgb24gKEFSTSB8fCBNSVBTIHx8IFNVUEVSSCB8fCBaT1JSTyB8fCBDT01QSUxFX1RFU1QpXG4gIDIzOlx0XHRzZWxlY3QgQ1JDMzJcbiAgMjQ6XHRcdHNlbGVjdCBQSFlMSUJcbiAgMjU6XHRcdHNlbGVjdCBNRElPX0JJVEJBTkdcbiAgMjY6XHRcdGhlbHBcbiAgMjc6XHRcdCAgQVg4ODc5NiBkcml2ZXIsIHVzaW5nIHBsYXRmb3JtIGJ1cyB0byBwcm92aWRlXG4gIDI4Olx0XHQgIGNoaXAgZGV0ZWN0aW9uIGFuZCByZXNvdXJjZXNcbiAgMjk6XHRcbiAgMzA6XHRjb25maWcgQVg4ODc5Nl85M0NYNlxuICAzMTpcdFx0Ym9vbCBcJiMzNDtBU0lYIEFYODg3OTYgZXh0ZXJuYWwgOTNDWDYgZWVwcm9tIHN1cHBvcnRcJiMzNDtcbiAgMzI6XHRcdGRlcGVuZHMgb24gQVg4ODc5NlxuICAzMzpcdFx0c2VsZWN0IEVFUFJPTV85M0NYNlxuICAzNDpcdFx0aGVscFxuICAzNTpcdFx0ICBTZWxlY3QgdGhpcyBpZiB5b3VyIHBsYXRmb3JtIGNvbWVzIHdpdGggYW4gZXh0ZXJuYWwgOTNDWDYgZWVwcm9tLlxuICAzNjpcdFxuICAzNzpcdGNvbmZpZyBYU1VSRjEwMFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAxMzowMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5MjM2CgkJCQkJCQlvdXRwdXQ6IDIwCgkJCQkJCQl0aG91Z2h0czogMjg4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgRnV6emluZyBQb3RlbnRpYWwgb2YgdGhlIEFYODg3OTYgTmV0d29yayBEcml2ZXIgaW4gU3l6a2FsbGVyKioKCk9rYXksIHNvIEkmIzM5O20gZGlnZ2luZyBpbnRvIGhvdyB3ZSBjYW4gcG90ZW50aWFsbHkgZnV6eiB0aGUgYEFYODg3OTZgIG5ldHdvcmsgZHJpdmVyIHVzaW5nIFN5emthbGxlci4gSXQgbG9va3MgbGlrZSBgQVg4ODc5NmAgcmVsaWVzIG9uIGJvdGggYE5FVF9WRU5ET1JfODM5MGAgYW5kIGEgZmV3IGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBvcHRpb25zOiBgQVJNYCwgYE1JUFNgLCBgU1VQRVJIYCwgYFpPUlJPYCwgb3IgYENPTVBJTEVfVEVTVGAuIEdpdmVuIHRoYXQgU3l6a2FsbGVyIGlzIHJ1bm5pbmcgb24geDg2XzY0LCBgQ09NUElMRV9URVNUYCBzZWVtcyBuZWNlc3NhcnkgdG8gZXZlbiBjb21waWxlIHRoZSBkcml2ZXIsIGJ1dCB0aGUgcmVhbCBxdWVzdGlvbiBpcyB3aGV0aGVyIGl0IGNhbiBiZSBtZWFuaW5nZnVsbHkgJiMzNDtwcm9iZWQuJiMzNDsKCldhaXQgYSBtaW51dGUsIHRoZSBgYXg4ODc5NmAgZHJpdmVyIGlzIGFjdHVhbGx5IGEgKnBsYXRmb3JtKiBkcml2ZXIuIFRoYXQgY2hhbmdlcyB0aGluZ3MuIFBsYXRmb3JtIGRyaXZlcnMgYXJlIHR5cGljYWxseSBwcm9iZWQgaWYgYSBwbGF0Zm9ybSBkZXZpY2UgaXMgY3JlYXRlZCBpbiB0aGUgc3lzdGVtLiBJIHdhcyBpbml0aWFsbHkgdGhpbmtpbmcgYWJvdXQgYHN5el9kZXZfY3JlYXRlYCDigJMgdGhhdCBwc2V1ZG8tc3lzY2FsbCBtaWdodCBoYXZlIGJlZW4gdXNlZnVsIHRvIGNyZWF0ZSBhIGRldmljZSBvbiB0aGUgZmx5LCBidXQgSSByZW1lbWJlciB0aGF0JiMzOTtzIG1vcmUgbGltaXRlZCBpbiBzY29wZSwgYW5kIG5vdCB0aGUgcmlnaHQgYXBwcm9hY2ggaGVyZS4gQ291bGQgSSBtYXliZSBsZXZlcmFnZSBgc3l6X2dlbmV0bGlua19nZXRfZmFtaWx5YCB0byBpbmplY3QgYSBwbGF0Zm9ybSBkZXZpY2U/IE5vLCB0aGF0JiMzOTtzIGdlbmVyYWxseSBub3QgaG93IHBsYXRmb3JtIGRldmljZXMgYXJlIGhhbmRsZWQuIFRoZXkmIzM5O3JlIHVzdWFsbHkgY3JlYXRlZCB2aWEgdGhlIGRldmljZSB0cmVlIG9yIHRoZSBib2FyZCBjb2RlLgoKT2theSwgbGV0JiMzOTtzIHJlY2FsaWJyYXRlLiBEb2VzIFN5emthbGxlciBoYXZlIGEgcHNldWRvLXN5c2NhbGwgbGlrZSBgc3l6X3BsYXRmb3JtX2RldmljZV9hZGRgIHRoYXQgSSYjMzk7bSBmb3JnZXR0aW5nIGFib3V0PyBObywgdGhhdCYjMzk7cyBub3QgcmluZ2luZyBhbnkgYmVsbHMuIEl0IGxvb2tzIGxpa2UgdGhlIG9ubHkgcmVhbGlzdGljIHJvdXRlIGlzIGlmIHRoZSBwbGF0Zm9ybSBkcml2ZXIgaXMgKmFscmVhZHkqIHJlZ2lzdGVyZWQgaW4gdGhlIGtlcm5lbCBhbmQgdGhlcmUmIzM5O3MgYSBtZWNoYW5pc20gaW4gdGhlIGtlcm5lbCB0byB0cmlnZ2VyIGl0cyBwcm9iZSBmdW5jdGlvbi4gVGhlIGtleSBxdWVzdGlvbiBpcyB3aGV0aGVyIFN5emthbGxlciBjYW4gc29tZWhvdyB0cmlnZ2VyIHRoYXQgcHJvYmUgZm9yIGBheDg4Nzk2YC4KClNvLCB0aGUgbmV4dCBzdGVwIGlzIGRlZmluaXRlbHkgdG8gc2VlIGlmIHRoZXJlJiMzOTtzIGFueSBleGlzdGluZyBTeXprYWxsZXIgZGVzY3JpcHRpb24sIG9yIGlmIHNvbWVvbmUgaGFzIGFscmVhZHkgdGhvdWdodCBhYm91dCBhbmQgcG90ZW50aWFsbHkgaW1wbGVtZW50ZWQgZnV6emluZyBmb3IgYGF4ODg3OTZgLiBUaGF0IHNob3VsZCB0ZWxsIG1lIGlmIHRoZXJlJiMzOTtzIGEgcHJhY3RpY2FsIHBhdGggZm9yd2FyZCBvciBpZiBzb21lIHNpZ25pZmljYW50IGtlcm5lbCBjaGFuZ2VzIG9yIG5ldyBwc2V1ZG8tc3lzY2FsbHMgd291bGQgYmUgbmVlZGVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAxMzowMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtheDg4Nzk2JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA3MTMgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sLTMtLS0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvbmV0L2FzaXgsYXg4ODc5NmMueWFtbCNcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sLTUtJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWw9MjQ9cHJvcGVydGllczpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sLTI1LSAgY29tcGF0aWJsZTpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sOjI2OiAgICBjb25zdDogYXNpeCxheDg4Nzk2Y1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWwtMjctXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWw9NTY9ZXhhbXBsZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWwtNjUtICAgICAgICBldGhlcm5ldEAwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sOjY2OiAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDthc2l4LGF4ODg3OTZjXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWwtNjctICAgICAgICAgICAgcmVnID0gXHUwMDNjMHgwXHUwMDNlO1xuLS1cbk1BSU5UQUlORVJTPTQwMDE9UzpcdE1haW50YWluZWRcbk1BSU5UQUlORVJTOjQwMDI6RjpcdERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sXG5NQUlOVEFJTkVSUzo0MDAzOkY6XHRkcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjXypcbk1BSU5UQUlORVJTLTQwMDQtXG4tLVxuTUFJTlRBSU5FUlM9NDAxMD1TOlx0TWFpbnRhaW5lZFxuTUFJTlRBSU5FUlM6NDAxMTpGOlx0ZHJpdmVycy9uZXQvcGh5L2F4ODg3OTZiX3J1c3QucnNcbk1BSU5UQUlORVJTLTQwMTItXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvc2Ftc3VuZy9leHlub3MzMjUwLWFydGlrNS1ldmFsLmR0cz01Nj1cdGV0aGVybmV0QDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvc2Ftc3VuZy9leHlub3MzMjUwLWFydGlrNS1ldmFsLmR0czo1NzpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O2FzaXgsYXg4ODc5NmNcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9zYW1zdW5nL2V4eW5vczMyNTAtYXJ0aWs1LWV2YWwuZHRzLTU4LVx0XHRyZWcgPSBcdTAwM2MweDBcdTAwM2U7XG4tLVxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMjQtI2luY2x1ZGUgXHUwMDNjbGludXgvY2xrZGV2LmhcdTAwM2VcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jOjI1OiNpbmNsdWRlIFx1MDAzY25ldC9heDg4Nzk2LmhcdTAwM2VcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTI2LSNpbmNsdWRlIFx1MDAzY2FzbS9tYWNodmVjLmhcdTAwM2Vcbi0tXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYz0xNDM9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgaGVhcnRiZWF0X2RldmljZSA9IHtcbi0tXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0xNTYtXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYzoxNTc6c3RhdGljIHN0cnVjdCBheF9wbGF0X2RhdGEgYXg4ODc5Nl9wbGF0ZGF0YSA9IHtcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE1OC1cdC5mbGFncyAgICAgICAgICA9IEFYRkxHX0hBU185M0NYNixcbi0tXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0xNjMtXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYzoxNjQ6c3RhdGljIHN0cnVjdCByZXNvdXJjZSBheDg4Nzk2X3Jlc291cmNlc1tdID0ge1xuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMTY1LVx0e1xuLS1cbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE4MS1cbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jOjE4MjpzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBheDg4Nzk2X2RldmljZSA9IHtcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jOjE4MzpcdC5uYW1lICAgICAgICAgICA9IFwmIzM0O2F4ODg3OTZcJiMzNDssXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0xODQtXHQuaWQgICAgICAgICAgICAgPSAwLFxuLS1cbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE4Ni1cdC5kZXYgICAgPSB7XG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYzoxODc6XHRcdC5wbGF0Zm9ybV9kYXRhID0gXHUwMDI2YXg4ODc5Nl9wbGF0ZGF0YSxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE4OC1cdH0sXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0xODktXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYzoxOTA6XHQubnVtX3Jlc291cmNlcyAgPSBBUlJBWV9TSVpFKGF4ODg3OTZfcmVzb3VyY2VzKSxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jOjE5MTpcdC5yZXNvdXJjZSAgICAgICA9IGF4ODg3OTZfcmVzb3VyY2VzLFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMTkyLX07XG4tLVxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmM9MjY3PXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpyNzc4MHJwX2RldmljZXNbXSBfX2luaXRkYXRhID0ge1xuLS1cbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTI3My0jaWZuZGVmIENPTkZJR19TSF9SNzc4MFJQXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYzoyNzQ6XHRcdTAwMjZheDg4Nzk2X2RldmljZSxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTI3NS0jZW5kaWZcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL01ha2VmaWxlPTg9b2JqLSQoQ09ORklHX0FSTV9FVEhFUkgpICYjNDM7PSBldGhlcmgub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9NYWtlZmlsZTo5Om9iai0kKENPTkZJR19BWDg4Nzk2KSAmIzQzOz0gYXg4ODc5Ni5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL01ha2VmaWxlLTEwLW9iai0kKENPTkZJR19IWURSQSkgJiM0Mzs9IGh5ZHJhLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy0xLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjI6LyogZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmNcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTMtICpcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy0yNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjI4OiNpbmNsdWRlIFx1MDAzY25ldC9heDg4Nzk2LmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTI5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM6NTg6c3RhdGljIHVuc2lnbmVkIGNoYXIgdmVyc2lvbltdID0gXCYjMzQ7YXg4ODc5Ni5jOiBDb3B5cmlnaHQgMjAwNSwyMDA3IFNpbXRlYyBFbGVjdHJvbmljc1xcblwmIzM0OztcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTU5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTYxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM6NjI6I2RlZmluZSBEUlZfTkFNRSBcJiMzNDtheDg4Nzk2XCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy02My0jZGVmaW5lIERSVl9WRVJTSU9OIFwmIzM0OzEuMDBcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYz0xNDY9c3RhdGljIHZvaWQgYXhfcmVzZXRfODM5MChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTE3MS0gKiB3YXkgdG8gZmluZCBvdXQgd2hldGhlciB0aGUgaW50ZXJydXB0IHJlcXVlc3QgbWlnaHQgYmUgY2F1c2VkIGJ5XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYzoxNzI6ICogdGhlIGF4ODg3OTYgY2hpcC5cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTE3My0gKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYz00NTk9c3RhdGljIGludCBheF9taWlfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTQ3My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjQ3NDpcdGF4LVx1MDAzZW1paV9idXMtXHUwMDNlbmFtZSA9IFwmIzM0O2F4ODg3OTZfbWlpX2J1c1wmIzM0OztcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTQ3NS1cdGF4LVx1MDAzZW1paV9idXMtXHUwMDNlcGFyZW50ID0gZGV2LVx1MDAzZWRldi5wYXJlbnQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM9MTAwNz1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBheGRydiA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTEwMDgtXHQuZHJpdmVyXHQ9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjEwMDk6XHRcdC5uYW1lXHRcdD0gXCYjMzQ7YXg4ODc5NlwmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTEwMTAtXHR9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jPTEwMjE9TU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMIHYyXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjEwMjI6TU9EVUxFX0FMSUFTKFwmIzM0O3BsYXRmb3JtOmF4ODg3OTZcJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy01LSNpbmNsdWRlIFx1MDAzY2xpbnV4L3pvcnJvLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzo2OiNpbmNsdWRlIFx1MDAzY25ldC9heDg4Nzk2LmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy03LSNpbmNsdWRlIFx1MDAzY2FzbS9hbWlnYWludHMuaFx1MDAzZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYz0yMzk9c3RhdGljIGludCB4c3VyZjEwMF9wcm9iZShzdHJ1Y3Qgem9ycm9fZGV2ICp6ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0yNDItXHRzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI0MzpcdHN0cnVjdCB4c3VyZjEwMF9heF9wbGF0X2RhdGEgYXg4ODc5Nl9kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI0NC1cdHN0cnVjdCByZXNvdXJjZSByZXNbMl0gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI1Ny1cdC8qIFgtU3VyZiAxMDAgY29udHJvbCBhbmQgMzIgYml0IHJpbmcgYnVmZmVyIGRhdGEgYWNjZXNzIGFyZWFzLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI1ODpcdCAqIFRoZXNlIHJlc291cmNlcyBhcmUgbm90IHVzZWQgYnkgdGhlIGF4ODg3OTYgZHJpdmVyLCBzbyBtdXN0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMjU5LVx0ICogYmUgcmVxdWVzdGVkIGhlcmUgYW5kIHBhc3NlZCB2aWEgcGxhdGZvcm0gZGF0YS5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMjc4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI3OTpcdG1lbXNldChcdTAwMjZheDg4Nzk2X2RhdGEsIDAsIHNpemVvZihheDg4Nzk2X2RhdGEpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzoyODA6XHRheDg4Nzk2X2RhdGEuYXguZmxhZ3MgPSBBWEZMR19IQVNfRUVQUk9NO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI4MTpcdGF4ODg3OTZfZGF0YS5heC53b3JkbGVuZ3RoID0gMjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzoyODI6XHRheDg4Nzk2X2RhdGEuYXguZGNyX3ZhbCA9IDB4NDg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MjgzOlx0YXg4ODc5Nl9kYXRhLmF4LnJjcl92YWwgPSAweDQwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI4NDpcdGF4ODg3OTZfZGF0YS5heC5yZWdfb2Zmc2V0cyA9IHJlZ19vZmZzZXRzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI4NTpcdGF4ODg3OTZfZGF0YS5heC5jaGVja19pcnEgPSBpc194c3VyZjEwMF9uZXR3b3JrX2lycTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzoyODY6XHRheDg4Nzk2X2RhdGEuYmFzZV9yZWdzID0gaW9yZW1hcCh6ZGV2LVx1MDAzZXJlc291cmNlLnN0YXJ0LCAweDEwMCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMjg3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI4OC1cdC8qIGVycm9yIGhhbmRsaW5nIGZvciBpb3JlbWFwIHJlZ3MgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzoyODk6XHRpZiAoIWF4ODg3OTZfZGF0YS5iYXNlX3JlZ3MpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0yOTAtXHRcdGRldl9lcnIoXHUwMDI2emRldi1cdTAwM2VkZXYsIFwmIzM0O0Nhbm5vdCBpb3JlbWFwIGFyZWEgJXBSIChyZWdpc3RlcnMpXFxuXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0yOTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6Mjk3Olx0YXg4ODc5Nl9kYXRhLmRhdGFfYXJlYSA9IGlvcmVtYXAoemRldi1cdTAwM2VyZXNvdXJjZS5zdGFydCAmIzQzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI5OC1cdFx0XHRYUzEwMF84MzkwX0RBVEEzMl9CQVNFLCBYUzEwMF84MzkwX0RBVEEzMl9TSVpFKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMzAwLVx0LyogZXJyb3IgaGFuZGxpbmcgZm9yIGlvcmVtYXAgZGF0YSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjMwMTpcdGlmICghYXg4ODc5Nl9kYXRhLmRhdGFfYXJlYSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTMwMi1cdFx0ZGV2X2VycihcdTAwMjZ6ZGV2LVx1MDAzZWRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMzA5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjMxMDpcdGF4ODg3OTZfZGF0YS5heC5ibG9ja19vdXRwdXQgPSB4czEwMF9ibG9ja19vdXRwdXQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MzExOlx0YXg4ODc5Nl9kYXRhLmF4LmJsb2NrX2lucHV0ID0geHMxMDBfYmxvY2tfaW5wdXQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMzEyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjMxMzpcdHBkZXYgPSBwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfcmVzbmRhdGEoXHUwMDI2emRldi1cdTAwM2VkZXYsIFwmIzM0O2F4ODg3OTZcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMzE0LVx0XHRcdFx0XHRcdCB6ZGV2LVx1MDAzZXNsb3RhZGRyLCByZXMsIDIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MzE1Olx0XHRcdFx0XHRcdCBcdTAwMjZheDg4Nzk2X2RhdGEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MzE2Olx0XHRcdFx0XHRcdCBzaXplb2YoYXg4ODc5Nl9kYXRhKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMzE3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMjktIGV4aXRfbWVtMjpcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzozMzA6XHRpb3VubWFwKGF4ODg3OTZfZGF0YS5kYXRhX2FyZWEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTMzMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMzItIGV4aXRfbWVtOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjMzMzpcdGlvdW5tYXAoYXg4ODc5Nl9kYXRhLmJhc2VfcmVncyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMzM0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvTWFrZWZpbGUtNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvTWFrZWZpbGU6NTpvYmotJChDT05GSUdfU1BJX0FYODg3OTZDKSAmIzQzOz0gYXg4ODc5NmMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9NYWtlZmlsZTo2OmF4ODg3OTZjLXkgOj0gYXg4ODc5NmNfbWFpbi5vIGF4ODg3OTZjX2lvY3RsLm8gYXg4ODc5NmNfc3BpLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzo5OiNkZWZpbmUgcHJfZm10KGZtdClcdFwmIzM0O2F4ODg3OTZjOiBcJiMzNDsgZm10XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE2OiNpbmNsdWRlIFwmIzM0O2F4ODg3OTZjX21haW4uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE3OiNpbmNsdWRlIFwmIzM0O2F4ODg3OTZjX2lvY3RsLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxOTpzdGF0aWMgY29uc3QgY2hhciBheDg4Nzk2Y19wcml2X2ZsYWdfbmFtZXNbXVtFVEhfR1NUUklOR19MRU5dID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTIwLVx0XCYjMzQ7U1BJQ29tcHJlc3Npb25cJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jPTIzPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjQ6YXg4ODc5NmNfZ2V0X2RydmluZm8oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCBldGh0b29sX2RydmluZm8gKmluZm8pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0yOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzozMDpzdGF0aWMgdTMyIGF4ODg3OTZjX2dldF9tc2dsZXZlbChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0zMS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MzI6XHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0zMy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6Mzc6c3RhdGljIHZvaWQgYXg4ODc5NmNfc2V0X21zZ2xldmVsKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCB1MzIgbGV2ZWwpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMzgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjM5Olx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtNDAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jPTQ0PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6NDU6YXg4ODc5NmNfZ2V0X3BhdXNlcGFyYW0oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCBldGh0b29sX3BhdXNlcGFyYW0gKnBhdXNlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTQ2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzo0NzpcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTQ4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYz01Nj1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6NTc6YXg4ODc5NmNfc2V0X3BhdXNlcGFyYW0oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCBldGh0b29sX3BhdXNlcGFyYW0gKnBhdXNlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTU4LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzo1OTpcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTYwLVx0aW50IGZjO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy05MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzo5MTpzdGF0aWMgaW50IGF4ODg3OTZjX2dldF9yZWdzX2xlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy05Mi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jPTk2PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6OTc6YXg4ODc5NmNfZ2V0X3JlZ3Moc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCBldGh0b29sX3JlZ3MgKnJlZ3MsIHZvaWQgKl9wKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTk4LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzo5OTpcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTEwMC1cdGludCBvZmZzZXQsIGk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTEwMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxMDM6XHRtZW1zZXQocCwgMCwgYXg4ODc5NmNfZ2V0X3JlZ3NfbGVuKG5kZXYpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xMDQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTEwNy1cdGZvciAob2Zmc2V0ID0gMDsgb2Zmc2V0IFx1MDAzYyBBWDg4Nzk2Q19SRUdEVU1QX0xFTjsgb2Zmc2V0ICYjNDM7PSAyKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTA4Olx0XHRpZiAoIXRlc3RfYml0KG9mZnNldCAvIDIsIGF4ODg3OTZjX25vX3JlZ3NfbWFzaykpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTA5LVx0XHRcdCpwID0gQVhfUkVBRChcdTAwMjZheF9sb2NhbC1cdTAwM2VheF9zcGksIG9mZnNldCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jPTEyMT1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjEyMjpheDg4Nzk2Y19nZXRfc3RyaW5ncyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgdTMyIHN0cmluZ3NldCwgdTggKmRhdGEpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTIzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTI1LVx0Y2FzZSBFVEhfU1NfUFJJVl9GTEFHUzpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxMjY6XHRcdG1lbWNweShkYXRhLCBheDg4Nzk2Y19wcml2X2ZsYWdfbmFtZXMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTI3Olx0XHQgICAgICAgc2l6ZW9mKGF4ODg3OTZjX3ByaXZfZmxhZ19uYW1lcykpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTEyOC1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jPTEzMj1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTMzOmF4ODg3OTZjX2dldF9zc2V0X2NvdW50KHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCBpbnQgc3RyaW5nc2V0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTEzNC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTEzOC1cdGNhc2UgRVRIX1NTX1BSSVZfRkxBR1M6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTM5Olx0XHRyZXQgPSBBUlJBWV9TSVpFKGF4ODg3OTZjX3ByaXZfZmxhZ19uYW1lcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTQwLVx0XHRicmVhaztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTQ3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE0ODpzdGF0aWMgaW50IGF4ODg3OTZjX3NldF9wcml2X2ZsYWdzKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCB1MzIgZmxhZ3MpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTQ5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxNTA6XHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xNTEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE2My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxNjQ6c3RhdGljIHUzMiBheDg4Nzk2Y19nZXRfcHJpdl9mbGFncyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xNjUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE2NjpcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE2Ny1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTcwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE3MTppbnQgYXg4ODc5NmNfbWRpb19yZWFkKHN0cnVjdCBtaWlfYnVzICptZGlvYnVzLCBpbnQgcGh5X2lkLCBpbnQgbG9jKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE3Mi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTczOlx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSBtZGlvYnVzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTc0LVx0aW50IHJldDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM9MTkyPWludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE5MzpheDg4Nzk2Y19tZGlvX3dyaXRlKHN0cnVjdCBtaWlfYnVzICptZGlvYnVzLCBpbnQgcGh5X2lkLCBpbnQgbG9jLCB1MTYgdmFsKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE5NC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTk1Olx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSBtZGlvYnVzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTk2LVx0aW50IHJldDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIxNDpjb25zdCBzdHJ1Y3QgZXRodG9vbF9vcHMgYXg4ODc5NmNfZXRodG9vbF9vcHMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjE1Olx0LmdldF9kcnZpbmZvXHRcdD0gYXg4ODc5NmNfZ2V0X2RydmluZm8sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjE2LVx0LmdldF9saW5rXHRcdD0gZXRodG9vbF9vcF9nZXRfbGluayxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyMTc6XHQuZ2V0X21zZ2xldmVsXHRcdD0gYXg4ODc5NmNfZ2V0X21zZ2xldmVsLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIxODpcdC5zZXRfbXNnbGV2ZWxcdFx0PSBheDg4Nzk2Y19zZXRfbXNnbGV2ZWwsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjE5LVx0LmdldF9saW5rX2tzZXR0aW5nc1x0PSBwaHlfZXRodG9vbF9nZXRfbGlua19rc2V0dGluZ3MsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTIyMS1cdC5ud2F5X3Jlc2V0XHRcdD0gcGh5X2V0aHRvb2xfbndheV9yZXNldCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyMjI6XHQuZ2V0X3BhdXNlcGFyYW1cdFx0PSBheDg4Nzk2Y19nZXRfcGF1c2VwYXJhbSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyMjM6XHQuc2V0X3BhdXNlcGFyYW1cdFx0PSBheDg4Nzk2Y19zZXRfcGF1c2VwYXJhbSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyMjQ6XHQuZ2V0X3JlZ3NfbGVuXHRcdD0gYXg4ODc5NmNfZ2V0X3JlZ3NfbGVuLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIyNTpcdC5nZXRfcmVnc1x0XHQ9IGF4ODg3OTZjX2dldF9yZWdzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIyNjpcdC5nZXRfc3RyaW5nc1x0XHQ9IGF4ODg3OTZjX2dldF9zdHJpbmdzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIyNzpcdC5nZXRfc3NldF9jb3VudFx0XHQ9IGF4ODg3OTZjX2dldF9zc2V0X2NvdW50LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIyODpcdC5nZXRfcHJpdl9mbGFnc1x0XHQ9IGF4ODg3OTZjX2dldF9wcml2X2ZsYWdzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIyOTpcdC5zZXRfcHJpdl9mbGFnc1x0XHQ9IGF4ODg3OTZjX3NldF9wcml2X2ZsYWdzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTIzMC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTIzMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyMzI6aW50IGF4ODg3OTZjX2lvY3RsKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCBzdHJ1Y3QgaWZyZXEgKmlmciwgaW50IGNtZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0yMzMte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuaC0xNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuaDoxNTojaW5jbHVkZSBcJiMzNDtheDg4Nzk2Y19tYWluLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuaC0xNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuaDoxNzpleHRlcm4gY29uc3Qgc3RydWN0IGV0aHRvb2xfb3BzIGF4ODg3OTZjX2V0aHRvb2xfb3BzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oLTE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oOjE5OmJvb2wgYXg4ODc5NmNfY2hlY2tfcG93ZXIoY29uc3Qgc3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oOjIwOmJvb2wgYXg4ODc5NmNfY2hlY2tfcG93ZXJfYW5kX3dha2Uoc3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oOjIxOnZvaWQgYXg4ODc5NmNfc2V0X3Bvd2VyX3NhdmluZyhzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCwgdTggcHNfbGV2ZWwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oOjIyOmludCBheDg4Nzk2Y19tZGlvX3JlYWQoc3RydWN0IG1paV9idXMgKm1kaW9idXMsIGludCBwaHlfaWQsIGludCBsb2MpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oOjIzOmludCBheDg4Nzk2Y19tZGlvX3dyaXRlKHN0cnVjdCBtaWlfYnVzICptZGlvYnVzLCBpbnQgcGh5X2lkLCBpbnQgbG9jLCB1MTYgdmFsKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuaDoyNDppbnQgYXg4ODc5NmNfaW9jdGwoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGlmcmVxICppZnIsIGludCBjbWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oLTI1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo5OiNkZWZpbmUgcHJfZm10KGZtdClcdFwmIzM0O2F4ODg3OTZjOiBcJiMzNDsgZm10XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0xMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjExOiNpbmNsdWRlIFwmIzM0O2F4ODg3OTZjX21haW4uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MTI6I2luY2x1ZGUgXCYjMzQ7YXg4ODc5NmNfaW9jdGwuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM9MzM9c3RhdGljIGNvbnN0IGNoYXIgKm5vX3JlZ3NfbGlzdCA9IFwmIzM0OzgwMDE4MDAxLGUxOTE4MDAxLDgwMDFhMDAxLGZjMGQwMDAwXCYjMzQ7O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MzQ6dW5zaWduZWQgbG9uZyBheDg4Nzk2Y19ub19yZWdzX21hc2tbQVg4ODc5NkNfUkVHRFVNUF9MRU4gLyAoc2l6ZW9mKHVuc2lnbmVkIGxvbmcpICogOCldO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMzUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM9Mzc9TU9EVUxFX1BBUk1fREVTQyhtc2dfZW5hYmxlLCBcJiMzNDtNZXNzYWdlIG1hc2sgKHNlZSBsaW51eC9uZXRkZXZpY2UuaCBmb3IgYml0bWFwKVwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0zOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjM5OnN0YXRpYyBpbnQgYXg4ODc5NmNfc29mdF9yZXNldChzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjcwOnN0YXRpYyBpbnQgYXg4ODc5NmNfcmVsb2FkX2VlcHJvbShzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTcxLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy05MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjkxOnN0YXRpYyB2b2lkIGF4ODg3OTZjX3NldF9od19tdWx0aWNhc3Qoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy05Mi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo5MzpcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtOTQtXHRpbnQgbWNfY291bnQgPSBuZXRkZXZfbWNfY291bnQobmRldik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTI5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MTMwOnN0YXRpYyB2b2lkIGF4ODg3OTZjX3NldF9tYWNfYWRkcihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTEzMS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoxMzI6XHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTEzMy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0xNDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoxNDQ6c3RhdGljIHZvaWQgYXg4ODc5NmNfbG9hZF9tYWNfYWRkcihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTE0NS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoxNDY6XHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTE0Ny1cdHU4IGFkZHJbRVRIX0FMRU5dO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTE4Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjE4ODpzdGF0aWMgdm9pZCBheDg4Nzk2Y19wcm9jX3R4X2hkcihzdHJ1Y3QgdHhfcGt0X2luZm8gKmluZm8sIHU4IGlwX3N1bW1lZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTE4OS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM9MjIxPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjIyMjpheDg4Nzk2Y19jaGVja19mcmVlX3BhZ2VzKHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsLCB1OCBuZWVkX3BhZ2VzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMjIzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz0yNDM9c3RhdGljIHN0cnVjdCBza19idWZmICpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjI0NDpheDg4Nzk2Y190eF9maXh1cChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqcSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTI0NS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoyNDY6XHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTI0Ny1cdHU4IHNwaV9sZW4gPSBheF9sb2NhbC1cdTAwM2VheF9zcGkuY29tcCA/IDEgOiA0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTI2Mi1cdG5lZWRfcGFnZXMgPSAocGt0X2xlbiAmIzQzOyBUWF9PVkVSSEVBRCAmIzQzOyAxMjcpIFx1MDAzZVx1MDAzZSA3O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MjYzOlx0aWYgKGF4ODg3OTZjX2NoZWNrX2ZyZWVfcGFnZXMoYXhfbG9jYWwsIG5lZWRfcGFnZXMpICE9IDApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0yNjQtXHRcdHJldHVybiBOVUxMO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTI4My1cdGluZm8uc2VxX251bSA9IHNlcV9udW07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoyODQ6XHRheDg4Nzk2Y19wcm9jX3R4X2hkcihcdTAwMjZpbmZvLCBza2ItXHUwMDNlaXBfc3VtbWVkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTI4NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0yODktXHQvKiBXcml0ZSBTUEkgVFhRIGhlYWRlciAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MjkwOlx0bWVtY3B5KHNrYl9wdXNoKHNrYiwgc3BpX2xlbiksIGF4ODg3OTZjX3R4X2NtZF9idWYsIHNwaV9sZW4pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMjkxLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTMzMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjMzMzpzdGF0aWMgaW50IGF4ODg3OTZjX2hhcmRfeG1pdChzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTMzNC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzozMzU6XHRzdHJ1Y3QgYXg4ODc5NmNfcGNwdV9zdGF0cyAqc3RhdHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0zMzYtXHRzdHJ1Y3Qgc2tfYnVmZiAqdHhfc2tiO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTM0Mi1cdHN0YXRzID0gdGhpc19jcHVfcHRyKGF4X2xvY2FsLVx1MDAzZXN0YXRzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjM0MzpcdHR4X3NrYiA9IGF4ODg3OTZjX3R4X2ZpeHVwKGF4X2xvY2FsLVx1MDAzZW5kZXYsIFx1MDAyNmF4X2xvY2FsLVx1MDAzZXR4X3dhaXRfcSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0zNDQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM9Mzg0PXN0YXRpYyBuZXRkZXZfdHhfdFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6Mzg1OmF4ODg3OTZjX3N0YXJ0X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0zODYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6Mzg3Olx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0zODgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM9Mzk5PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo0MDA6YXg4ODc5NmNfc2tiX3JldHVybihzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQwMS1cdFx0ICAgIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCByeF9oZWFkZXIgKnJ4aGRyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQwMy1cdHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2ID0gYXhfbG9jYWwtXHUwMDNlbmRldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjQwNDpcdHN0cnVjdCBheDg4Nzk2Y19wY3B1X3N0YXRzICpzdGF0cztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQwNS1cdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM9NDQyPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo0NDM6YXg4ODc5NmNfcnhfZml4dXAoc3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwsIHN0cnVjdCBza19idWZmICpyeF9za2IpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy00NDQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQ5MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjQ5MTpcdGF4ODg3OTZjX3NrYl9yZXR1cm4oYXhfbG9jYWwsIHJ4X3NrYiwgcnhoZHIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNDkyLX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQ5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjQ5NDpzdGF0aWMgaW50IGF4ODg3OTZjX3JlY2VpdmUoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy00OTUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NDk2Olx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy00OTctXHRzdHJ1Y3Qgc2tiX2RhdGEgKmVudHJ5O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU0Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjU0MzpcdGF4ODg3OTZjX3J4X2ZpeHVwKGF4X2xvY2FsLCBza2IpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNTQ0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU0Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjU0ODpzdGF0aWMgaW50IGF4ODg3OTZjX3Byb2Nlc3NfaXNyKHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNTQ5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01NzgtXHRcdG5ldGlmX2RiZyhheF9sb2NhbCwgaW50ciwgbmRldiwgXCYjMzQ7ICBSWCBpbnRlcnJ1cHRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NTc5Olx0XHR0b2RvID0gYXg4ODc5NmNfcmVjZWl2ZShheF9sb2NhbC1cdTAwM2VuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU4MC1cdH1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01ODQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo1ODU6c3RhdGljIGlycXJldHVybl90IGF4ODg3OTZjX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaW5zdGFuY2UpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01ODYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NTg3Olx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWw7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01ODgtXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmRldjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01OTQtXHR9XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo1OTU6XHRheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU5Ni1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02MDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo2MDc6c3RhdGljIHZvaWQgYXg4ODc5NmNfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02MDgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NjA5Olx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NjEwOlx0XHRcdGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlLCBheF93b3JrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYxMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02MTQtXHRpZiAodGVzdF9iaXQoRVZFTlRfU0VUX01VTFRJLCBcdTAwMjZheF9sb2NhbC1cdTAwM2VmbGFncykpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjYxNTpcdFx0YXg4ODc5NmNfc2V0X2h3X211bHRpY2FzdChheF9sb2NhbC1cdTAwM2VuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYxNi1cdFx0Y2xlYXJfYml0KEVWRU5UX1NFVF9NVUxUSSwgXHUwMDI2YXhfbG9jYWwtXHUwMDNlZmxhZ3MpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYyMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjYyMjpcdFx0d2hpbGUgKGF4ODg3OTZjX3Byb2Nlc3NfaXNyKGF4X2xvY2FsKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYyMy1cdFx0XHQvKiBub3RoaW5nICovO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYzMy1cdFx0d2hpbGUgKHNrYl9xdWV1ZV9sZW4oXHUwMDI2YXhfbG9jYWwtXHUwMDNldHhfd2FpdF9xKSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NjM0Olx0XHRcdGlmICghYXg4ODc5NmNfaGFyZF94bWl0KGF4X2xvY2FsKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYzNS1cdFx0XHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTY0Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjY0ODpzdGF0aWMgdm9pZCBheDg4Nzk2Y19nZXRfc3RhdHM2NChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTY0OS1cdFx0XHRcdCBzdHJ1Y3QgcnRubF9saW5rX3N0YXRzNjQgKnN0YXRzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjUwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjY1MTpcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjUyLVx0dTMyIHJ4X2ZyYW1lX2Vycm9ycyA9IDAsIHJ4X2NyY19lcnJvcnMgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTY1Ny1cdGZvcl9lYWNoX3Bvc3NpYmxlX2NwdShjcHUpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjY1ODpcdFx0c3RydWN0IGF4ODg3OTZjX3BjcHVfc3RhdHMgKnM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02NTktXHRcdHU2NCByeF9wYWNrZXRzLCByeF9ieXRlcztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02ODgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo2ODk6c3RhdGljIHZvaWQgYXg4ODc5NmNfc2V0X21hYyhzdHJ1Y3QgIGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02OTAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTczNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjczNzpzdGF0aWMgdm9pZCBheDg4Nzk2Y19oYW5kbGVfbGlua19jaGFuZ2Uoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy03Mzgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NzM5Olx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy03NDAtXHRzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2ID0gbmRldi1cdTAwM2VwaHlkZXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzY0LVx0aWYgKHVwZGF0ZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjc2NTpcdFx0YXg4ODc5NmNfc2V0X21hYyhheF9sb2NhbCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy03NjYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzcwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NzcxOnN0YXRpYyB2b2lkIGF4ODg3OTZjX3NldF9jc3VtcyhzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTc3Mi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM9Nzk0PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjc5NTpheDg4Nzk2Y19vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzk2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjc5NzpcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzk4LVx0dW5zaWduZWQgbG9uZyBpcnFfZmxhZyA9IDA7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtODAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6ODAzOlx0cmV0ID0gcmVxdWVzdF9pcnEobmRldi1cdTAwM2VpcnEsIGF4ODg3OTZjX2ludGVycnVwdCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTgwNC1cdFx0XHQgIGlycV9mbGFnLCBuZGV2LVx1MDAzZW5hbWUsIG5kZXYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTgxMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjgxMzpcdHJldCA9IGF4ODg3OTZjX3NvZnRfcmVzZXQoYXhfbG9jYWwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtODE0LVx0aWYgKHJldCBcdTAwM2MgMCkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTgyMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjgyMTpcdGF4ODg3OTZjX3NldF9tYWNfYWRkcihuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjgyMjpcdGF4ODg3OTZjX3NldF9jc3VtcyhheF9sb2NhbCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy04MjMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM9ODc4PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjg3OTpheDg4Nzk2Y19jbG9zZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTg4MC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo4ODE6XHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTg4Mi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy04ODYtXHQgKiBhZ2FpbnN0IGNvbmN1cnJlbnQgYWNjZXNzLCBidXQgYWxzbyBhdm9pZCB3YWtpbmcgdXAgdGhlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo4ODc6XHQgKiBxdWV1ZSBpbiBheDg4Nzk2Y193b3JrKCkuIHBoeV9zdG9wKCkgbmVlZHMgdG8gYmUgY2FsbGVkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy04ODgtXHQgKiBiZWZvcmUgYmVjYXVzZSBpdCBsb2NrcyB0aGUgbXV0ZXggdG8gYWNjZXNzIFNQSS5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy05MDUtXHRfX3NrYl9xdWV1ZV9wdXJnZShcdTAwMjZheF9sb2NhbC1cdTAwM2V0eF93YWl0X3EpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6OTA2Olx0YXg4ODc5NmNfc29mdF9yZXNldChheF9sb2NhbCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy05MDctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM9OTE3PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjkxODpheDg4Nzk2Y19zZXRfZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIG5ldGRldl9mZWF0dXJlc190IGZlYXR1cmVzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtOTE5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjkyMDpcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtOTIxLVx0bmV0ZGV2X2ZlYXR1cmVzX3QgY2hhbmdlZCA9IGZlYXR1cmVzIF4gbmRldi1cdTAwM2VmZWF0dXJlcztcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAxMzowMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTU1OQoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDc0NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEFYODg3OTYgRHJpdmVyIFBhdGNoKioKCk9rYXksIGZpcnN0IHRoaW5ncyBmaXJzdC4gSSBzZWUgYSBwYXRjaCByZWxhdGVkIHRvIGBheDg4Nzk2YCwgYnV0IHdhaXQsIHRoZSBtYWluIGRyaXZlciBpcyBgYXg4ODc5NmNgIHdoaWNoIGlzIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uY2AsIGFuZCB0aGUgcGF0Y2ggaXMgdGFyZ2V0aW5nIHRoZSBvbGRlciBgYXg4ODc5NmAgZmlsZSB1bmRlciBgZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmNgLiBUaGF0JiMzOTtzIHRoZSBmaXJzdCByZWQgZmxhZywgcG90ZW50aWFsIGNvbmZ1c2lvbiB0aGVyZS4gSSBzaG91bGQgY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBzeXprYWxsZXIgZGVzY3JpcHRpb25zIGZvciB0aGUgb2xkZXIgYGF4ODg3OTZgIGRyaXZlci4KCkhtbSwgb2theSwgSSBzZWUgYGFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jYCByZWdpc3RlcnMgYGF4ODg3OTZfZGV2aWNlYCwgYW5kIGBkcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmNgIHJlZ2lzdGVycyBgYXg4ODc5NmAgYXMgd2VsbC4gTG9va3MgbGlrZSBhIHBsYXRmb3JtIGRyaXZlciwgc3BlY2lmaWNhbGx5LiBUaGUgcXVlc3Rpb24gbm93IGlzLCBpcyBpdCBldmVuIGZ1enplZCBieSBzeXprYWxsZXI/IFN5emthbGxlciAqY2FuKiBmdXp6IHBsYXRmb3JtIGRyaXZlcnMsIGJ1dCBvbmx5IGlmIGl0IGNhbiBjcmVhdGUgdGhlIHBsYXRmb3JtIGRldmljZS4gTGV0IG1lIHRoaW5rLi4uIHN5emthbGxlciBoYXMgYHN5el9kZXZfY3JlYXRlYCwgYnV0IHRoYXQmIzM5O3Mgbm90IGZvciBwbGF0Zm9ybSBkZXZpY2VzLCBpcyBpdD8gTm8sIHRoYXQmIzM5O3Mgbm90IGdvaW5nIHRvIHdvcmsuIFdhaXQsIGNhbiBpdCB1c2UgYHN5el9nZW5ldGxpbmtfZ2V0X2ZhbWlseWA/IE5vcGUuCgpPa2F5LCBJIHJlbWVtYmVyLCBTeXprYWxsZXIgKmNhbiogZnV6eiBwbGF0Zm9ybSBkcml2ZXJzIGlmIHRoZXkgYXJlIHJlZ2lzdGVyZWQgYnkgZGVmYXVsdCBpbiB0aGUga2VybmVsLCBsaWtlbHkgdmlhIGRldmljZSB0cmVlIG9yIGJvYXJkIGNvZGUuIEJ1dCwgbG9va2luZyBhdCB0aGUgY29kZSwgYGF4ODg3OTZgIGlzIG9ubHkgcmVnaXN0ZXJlZCBvbiBTdXBlckggKGBtYWNoLWhpZ2hsYW5kZXJgKSBhbmQgQW1pZ2EgKGB4c3VyZjEwMGApLiBTeXprYWxsZXIgcnVucyBvbiB4ODZfNjQgb3IgYXJtNjQuIFNvIGl0IHdvbiYjMzk7dCBiZSBwcm9iZWQgb24gdGhvc2UgYXJjaGl0ZWN0dXJlcywgdW5sZXNzIHRoZXJlIGlzIGEgd2F5IHRvIGluamVjdCBwbGF0Zm9ybSBkZXZpY2VzLiBOb3csIGRvZXMgc3l6a2FsbGVyIGhhdmUgYW4gaW5qZWN0IGZ1bmN0aW9uPyBObyBgc3l6X3BsYXRmb3JtX2RldmljZV9hZGRgPyBOb3BlLiBOb3QgdmlhIE5ldGxpbmsgZWl0aGVyLCBvciBgc3lzZnNgIG9yIGBzeXpfdXNiX2Nvbm5lY3RgLiBObywgdGhhdCYjMzk7cyBub3QgYSBVU0IgZGV2aWNlISBPciBgc3l6X3BjaV9kZXZpY2VfYWRkYC4uLiBubywgaXQmIzM5O3MgYSBwbGF0Zm9ybSBkZXZpY2UhCgpBaCwgaGFuZyBvbiBhIHNlY29uZC4gVGhlIGNvbW1pdCBtZXNzYWdlIG1lbnRpb25zIHRoYXQgdGhlIHBhdGNoIHdhcyBhcHBsaWVkIGJ5IGBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdgLiBUaGF0IG1lYW5zIHNvbWVvbmUgc2VudCBhIHBhdGNoIHRvIHRoZSBtYWlsaW5nIGxpc3QsIGFuZCBzeXpib3QgaXMgdGVzdGluZyBpdC4gSWYgc3l6Ym90IGlzIHRlc3RpbmcgaXQsIGl0IG1pZ2h0IGp1c3QgYmUgYSBjb21waWxlIHRlc3QsIG9yIGEgZnVuY3Rpb25hbCB0ZXN0LCBpZiBpdCYjMzk7cyByZWFjaGFibGUuIEJ1dCBnaXZlbiB0aGF0IHRoaXMgaXMgYSBwbGF0Zm9ybSBkcml2ZXIgZm9yIFN1cGVySC9BbWlnYSwgaXQmIzM5O3MgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSBvbiB4ODZfNjQsIHdoaWNoIHN5emthbGxlciB1c2VzLgoKTGV0JiMzOTtzIGxvb2sgYXQgdGhlIGluc3RydWN0aW9ucywgdGhleSBzdGF0ZTogJiMzNDtSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOiAtIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSYjMzQ7LiBTaW5jZSBgYXg4ODc5NmAgaXMgYSBwbGF0Zm9ybSBkcml2ZXIgZm9yIHNwZWNpZmljIGJvYXJkcywgaXQmIzM5O3MgdW5yZWFjaGFibGUgaW4gdGhlc2Ugc3RhbmRhcmQgeDg2XzY0L2FybTY0IFFFTVUvR0NFIGluc3RhbmNlcyB1c2VkIGJ5IHN5emthbGxlci4KCklzIHRoZXJlIGFueSBvdGhlciB3YXkgdG8gcHJvYmUgaXQ/IEkgc2hvdWxkIGNoZWNrIGlmIHRoZXJlJiMzOTtzIGFueSBkZXZpY2UgdHJlZSBiaW5kaW5nIGZvciBgYXg4ODc5NmAuIFRoYXQgbWlnaHQgYmUgdGhlIG9ubHkgb3RoZXIgYXZlbnVlIHRvIGV4cGxvcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDEzOjAyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2F4ODg3OTYmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDcxMyBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWwtMy0tLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sOjQ6JGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWwtNS0kc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCNcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbD0yND1wcm9wZXJ0aWVzOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWwtMjUtICBjb21wYXRpYmxlOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWw6MjY6ICAgIGNvbnN0OiBhc2l4LGF4ODg3OTZjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbC0yNy1cbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbD01Nj1leGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbC02NS0gICAgICAgIGV0aGVybmV0QDAge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWw6NjY6ICAgICAgICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O2FzaXgsYXg4ODc5NmNcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbC02Ny0gICAgICAgICAgICByZWcgPSBcdTAwM2MweDBcdTAwM2U7XG4tLVxuTUFJTlRBSU5FUlM9NDAwMT1TOlx0TWFpbnRhaW5lZFxuTUFJTlRBSU5FUlM6NDAwMjpGOlx0RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWxcbk1BSU5UQUlORVJTOjQwMDM6RjpcdGRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfKlxuTUFJTlRBSU5FUlMtNDAwNC1cbi0tXG5NQUlOVEFJTkVSUz00MDEwPVM6XHRNYWludGFpbmVkXG5NQUlOVEFJTkVSUzo0MDExOkY6XHRkcml2ZXJzL25ldC9waHkvYXg4ODc5NmJfcnVzdC5yc1xuTUFJTlRBSU5FUlMtNDAxMi1cbi0tXG5hcmNoL2FybS9ib290L2R0cy9zYW1zdW5nL2V4eW5vczMyNTAtYXJ0aWs1LWV2YWwuZHRzPTU2PVx0ZXRoZXJuZXRAMCB7XG5hcmNoL2FybS9ib290L2R0cy9zYW1zdW5nL2V4eW5vczMyNTAtYXJ0aWs1LWV2YWwuZHRzOjU3Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7YXNpeCxheDg4Nzk2Y1wmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL3NhbXN1bmcvZXh5bm9zMzI1MC1hcnRpazUtZXZhbC5kdHMtNTgtXHRcdHJlZyA9IFx1MDAzYzB4MFx1MDAzZTtcbi0tXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0yNC0jaW5jbHVkZSBcdTAwM2NsaW51eC9jbGtkZXYuaFx1MDAzZVxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmM6MjU6I2luY2x1ZGUgXHUwMDNjbmV0L2F4ODg3OTYuaFx1MDAzZVxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMjYtI2luY2x1ZGUgXHUwMDNjYXNtL21hY2h2ZWMuaFx1MDAzZVxuLS1cbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jPTE0Mz1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBoZWFydGJlYXRfZGV2aWNlID0ge1xuLS1cbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE1Ni1cbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jOjE1NzpzdGF0aWMgc3RydWN0IGF4X3BsYXRfZGF0YSBheDg4Nzk2X3BsYXRkYXRhID0ge1xuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMTU4LVx0LmZsYWdzICAgICAgICAgID0gQVhGTEdfSEFTXzkzQ1g2LFxuLS1cbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE2My1cbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jOjE2NDpzdGF0aWMgc3RydWN0IHJlc291cmNlIGF4ODg3OTZfcmVzb3VyY2VzW10gPSB7XG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0xNjUtXHR7XG4tLVxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMTgxLVxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmM6MTgyOnN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGF4ODg3OTZfZGV2aWNlID0ge1xuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmM6MTgzOlx0Lm5hbWUgICAgICAgICAgID0gXCYjMzQ7YXg4ODc5NlwmIzM0OyxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE4NC1cdC5pZCAgICAgICAgICAgICA9IDAsXG4tLVxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMTg2LVx0LmRldiAgICA9IHtcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jOjE4NzpcdFx0LnBsYXRmb3JtX2RhdGEgPSBcdTAwMjZheDg4Nzk2X3BsYXRkYXRhLFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMTg4LVx0fSxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE4OS1cbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jOjE5MDpcdC5udW1fcmVzb3VyY2VzICA9IEFSUkFZX1NJWkUoYXg4ODc5Nl9yZXNvdXJjZXMpLFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmM6MTkxOlx0LnJlc291cmNlICAgICAgID0gYXg4ODc5Nl9yZXNvdXJjZXMsXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0xOTItfTtcbi0tXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYz0yNjc9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnI3NzgwcnBfZGV2aWNlc1tdIF9faW5pdGRhdGEgPSB7XG4tLVxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMjczLSNpZm5kZWYgQ09ORklHX1NIX1I3NzgwUlBcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jOjI3NDpcdFx1MDAyNmF4ODg3OTZfZGV2aWNlLFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMjc1LSNlbmRpZlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvTWFrZWZpbGU9OD1vYmotJChDT05GSUdfQVJNX0VUSEVSSCkgJiM0Mzs9IGV0aGVyaC5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX0FYODg3OTYpICYjNDM7PSBheDg4Nzk2Lm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvTWFrZWZpbGUtMTAtb2JqLSQoQ09ORklHX0hZRFJBKSAmIzQzOz0gaHlkcmEub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTEtLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM6MjovKiBkcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuY1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtMy0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTI3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM6Mjg6I2luY2x1ZGUgXHUwMDNjbmV0L2F4ODg3OTYuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtMjktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtNTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYzo1ODpzdGF0aWMgdW5zaWduZWQgY2hhciB2ZXJzaW9uW10gPSBcJiMzNDtheDg4Nzk2LmM6IENvcHlyaWdodCAyMDA1LDIwMDcgU2ltdGVjIEVsZWN0cm9uaWNzXFxuXCYjMzQ7O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtNTktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtNjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYzo2MjojZGVmaW5lIERSVl9OQU1FIFwmIzM0O2F4ODg3OTZcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTYzLSNkZWZpbmUgRFJWX1ZFUlNJT04gXCYjMzQ7MS4wMFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jPTE0Nj1zdGF0aWMgdm9pZCBheF9yZXNldF84MzkwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtMTcxLSAqIHdheSB0byBmaW5kIG91dCB3aGV0aGVyIHRoZSBpbnRlcnJ1cHQgcmVxdWVzdCBtaWdodCBiZSBjYXVzZWQgYnlcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjE3MjogKiB0aGUgYXg4ODc5NiBjaGlwLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtMTczLSAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jPTQ1OT1zdGF0aWMgaW50IGF4X21paV9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtNDczLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM6NDc0Olx0YXgtXHUwMDNlbWlpX2J1cy1cdTAwM2VuYW1lID0gXCYjMzQ7YXg4ODc5Nl9taWlfYnVzXCYjMzQ7O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtNDc1LVx0YXgtXHUwMDNlbWlpX2J1cy1cdTAwM2VwYXJlbnQgPSBkZXYtXHUwMDNlZGV2LnBhcmVudDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYz0xMDA3PXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGF4ZHJ2ID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtMTAwOC1cdC5kcml2ZXJcdD0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM6MTAwOTpcdFx0Lm5hbWVcdFx0PSBcJiMzNDtheDg4Nzk2XCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtMTAxMC1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM9MTAyMT1NT0RVTEVfTElDRU5TRShcJiMzNDtHUEwgdjJcJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM6MTAyMjpNT0RVTEVfQUxJQVMoXCYjMzQ7cGxhdGZvcm06YXg4ODc5NlwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTUtI2luY2x1ZGUgXHUwMDNjbGludXgvem9ycm8uaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjY6I2luY2x1ZGUgXHUwMDNjbmV0L2F4ODg3OTYuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTctI2luY2x1ZGUgXHUwMDNjYXNtL2FtaWdhaW50cy5oXHUwMDNlXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jPTIzOT1zdGF0aWMgaW50IHhzdXJmMTAwX3Byb2JlKHN0cnVjdCB6b3Jyb19kZXYgKnpkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI0Mi1cdHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MjQzOlx0c3RydWN0IHhzdXJmMTAwX2F4X3BsYXRfZGF0YSBheDg4Nzk2X2RhdGE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMjQ0LVx0c3RydWN0IHJlc291cmNlIHJlc1syXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMjU3LVx0LyogWC1TdXJmIDEwMCBjb250cm9sIGFuZCAzMiBiaXQgcmluZyBidWZmZXIgZGF0YSBhY2Nlc3MgYXJlYXMuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MjU4Olx0ICogVGhlc2UgcmVzb3VyY2VzIGFyZSBub3QgdXNlZCBieSB0aGUgYXg4ODc5NiBkcml2ZXIsIHNvIG11c3RcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0yNTktXHQgKiBiZSByZXF1ZXN0ZWQgaGVyZSBhbmQgcGFzc2VkIHZpYSBwbGF0Zm9ybSBkYXRhLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0yNzgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6Mjc5Olx0bWVtc2V0KFx1MDAyNmF4ODg3OTZfZGF0YSwgMCwgc2l6ZW9mKGF4ODg3OTZfZGF0YSkpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI4MDpcdGF4ODg3OTZfZGF0YS5heC5mbGFncyA9IEFYRkxHX0hBU19FRVBST007XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MjgxOlx0YXg4ODc5Nl9kYXRhLmF4LndvcmRsZW5ndGggPSAyO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI4MjpcdGF4ODg3OTZfZGF0YS5heC5kY3JfdmFsID0gMHg0ODtcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzoyODM6XHRheDg4Nzk2X2RhdGEuYXgucmNyX3ZhbCA9IDB4NDA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6Mjg0Olx0YXg4ODc5Nl9kYXRhLmF4LnJlZ19vZmZzZXRzID0gcmVnX29mZnNldHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6Mjg1Olx0YXg4ODc5Nl9kYXRhLmF4LmNoZWNrX2lycSA9IGlzX3hzdXJmMTAwX25ldHdvcmtfaXJxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI4NjpcdGF4ODg3OTZfZGF0YS5iYXNlX3JlZ3MgPSBpb3JlbWFwKHpkZXYtXHUwMDNlcmVzb3VyY2Uuc3RhcnQsIDB4MTAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0yODctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMjg4LVx0LyogZXJyb3IgaGFuZGxpbmcgZm9yIGlvcmVtYXAgcmVncyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI4OTpcdGlmICghYXg4ODc5Nl9kYXRhLmJhc2VfcmVncykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI5MC1cdFx0ZGV2X2VycihcdTAwMjZ6ZGV2LVx1MDAzZWRldiwgXCYjMzQ7Q2Fubm90IGlvcmVtYXAgYXJlYSAlcFIgKHJlZ2lzdGVycylcXG5cJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI5Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzoyOTc6XHRheDg4Nzk2X2RhdGEuZGF0YV9hcmVhID0gaW9yZW1hcCh6ZGV2LVx1MDAzZXJlc291cmNlLnN0YXJ0ICYjNDM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMjk4LVx0XHRcdFhTMTAwXzgzOTBfREFUQTMyX0JBU0UsIFhTMTAwXzgzOTBfREFUQTMyX1NJWkUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMDAtXHQvKiBlcnJvciBoYW5kbGluZyBmb3IgaW9yZW1hcCBkYXRhICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MzAxOlx0aWYgKCFheDg4Nzk2X2RhdGEuZGF0YV9hcmVhKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMzAyLVx0XHRkZXZfZXJyKFx1MDAyNnpkZXYtXHUwMDNlZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MzEwOlx0YXg4ODc5Nl9kYXRhLmF4LmJsb2NrX291dHB1dCA9IHhzMTAwX2Jsb2NrX291dHB1dDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzozMTE6XHRheDg4Nzk2X2RhdGEuYXguYmxvY2tfaW5wdXQgPSB4czEwMF9ibG9ja19pbnB1dDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MzEzOlx0cGRldiA9IHBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcl9yZXNuZGF0YShcdTAwMjZ6ZGV2LVx1MDAzZWRldiwgXCYjMzQ7YXg4ODc5NlwmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMTQtXHRcdFx0XHRcdFx0IHpkZXYtXHUwMDNlc2xvdGFkZHIsIHJlcywgMixcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzozMTU6XHRcdFx0XHRcdFx0IFx1MDAyNmF4ODg3OTZfZGF0YSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzozMTY6XHRcdFx0XHRcdFx0IHNpemVvZihheDg4Nzk2X2RhdGEpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMTctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTMyOS0gZXhpdF9tZW0yOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjMzMDpcdGlvdW5tYXAoYXg4ODc5Nl9kYXRhLmRhdGFfYXJlYSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMzMxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTMzMi0gZXhpdF9tZW06XG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MzMzOlx0aW91bm1hcChheDg4Nzk2X2RhdGEuYmFzZV9yZWdzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMzQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9NYWtlZmlsZS00LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9NYWtlZmlsZTo1Om9iai0kKENPTkZJR19TUElfQVg4ODc5NkMpICYjNDM7PSBheDg4Nzk2Yy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L01ha2VmaWxlOjY6YXg4ODc5NmMteSA6PSBheDg4Nzk2Y19tYWluLm8gYXg4ODc5NmNfaW9jdGwubyBheDg4Nzk2Y19zcGkub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy04LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjk6I2RlZmluZSBwcl9mbXQoZm10KVx0XCYjMzQ7YXg4ODc5NmM6IFwmIzM0OyBmbXRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xMC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTY6I2luY2x1ZGUgXCYjMzQ7YXg4ODc5NmNfbWFpbi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTc6I2luY2x1ZGUgXCYjMzQ7YXg4ODc5NmNfaW9jdGwuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE5OnN0YXRpYyBjb25zdCBjaGFyIGF4ODg3OTZjX3ByaXZfZmxhZ19uYW1lc1tdW0VUSF9HU1RSSU5HX0xFTl0gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjAtXHRcJiMzNDtTUElDb21wcmVzc2lvblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM9MjM9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyNDpheDg4Nzk2Y19nZXRfZHJ2aW5mbyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGV0aHRvb2xfZHJ2aW5mbyAqaW5mbylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0yNS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTI5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjMwOnN0YXRpYyB1MzIgYXg4ODc5NmNfZ2V0X21zZ2xldmVsKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTMxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzozMjpcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTMzLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0zNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzozNzpzdGF0aWMgdm9pZCBheDg4Nzk2Y19zZXRfbXNnbGV2ZWwoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHUzMiBsZXZlbClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0zOC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6Mzk6XHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy00MC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM9NDQ9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzo0NTpheDg4Nzk2Y19nZXRfcGF1c2VwYXJhbShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGV0aHRvb2xfcGF1c2VwYXJhbSAqcGF1c2UpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtNDYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjQ3Olx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtNDgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jPTU2PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzo1NzpheDg4Nzk2Y19zZXRfcGF1c2VwYXJhbShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGV0aHRvb2xfcGF1c2VwYXJhbSAqcGF1c2UpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtNTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjU5Olx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtNjAtXHRpbnQgZmM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTkwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjkxOnN0YXRpYyBpbnQgYXg4ODc5NmNfZ2V0X3JlZ3NfbGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTkyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM9OTY9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzo5NzpheDg4Nzk2Y19nZXRfcmVncyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGV0aHRvb2xfcmVncyAqcmVncywgdm9pZCAqX3ApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtOTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjk5Olx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTAwLVx0aW50IG9mZnNldCwgaTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjEwMzpcdG1lbXNldChwLCAwLCBheDg4Nzk2Y19nZXRfcmVnc19sZW4obmRldikpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTEwNC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTA3LVx0Zm9yIChvZmZzZXQgPSAwOyBvZmZzZXQgXHUwMDNjIEFYODg3OTZDX1JFR0RVTVBfTEVOOyBvZmZzZXQgJiM0Mzs9IDIpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxMDg6XHRcdGlmICghdGVzdF9iaXQob2Zmc2V0IC8gMiwgYXg4ODc5NmNfbm9fcmVnc19tYXNrKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xMDktXHRcdFx0KnAgPSBBWF9SRUFEKFx1MDAyNmF4X2xvY2FsLVx1MDAzZWF4X3NwaSwgb2Zmc2V0KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM9MTIxPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTIyOmF4ODg3OTZjX2dldF9zdHJpbmdzKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCB1MzIgc3RyaW5nc2V0LCB1OCAqZGF0YSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xMjMte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xMjUtXHRjYXNlIEVUSF9TU19QUklWX0ZMQUdTOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjEyNjpcdFx0bWVtY3B5KGRhdGEsIGF4ODg3OTZjX3ByaXZfZmxhZ19uYW1lcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxMjc6XHRcdCAgICAgICBzaXplb2YoYXg4ODc5NmNfcHJpdl9mbGFnX25hbWVzKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTI4LVx0XHRicmVhaztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM9MTMyPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxMzM6YXg4ODc5NmNfZ2V0X3NzZXRfY291bnQoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIGludCBzdHJpbmdzZXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTM0LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTM4LVx0Y2FzZSBFVEhfU1NfUFJJVl9GTEFHUzpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxMzk6XHRcdHJldCA9IEFSUkFZX1NJWkUoYXg4ODc5NmNfcHJpdl9mbGFnX25hbWVzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xNDAtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xNDctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTQ4OnN0YXRpYyBpbnQgYXg4ODc5NmNfc2V0X3ByaXZfZmxhZ3Moc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHUzMiBmbGFncylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xNDkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE1MDpcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE1MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTYzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE2NDpzdGF0aWMgdTMyIGF4ODg3OTZjX2dldF9wcml2X2ZsYWdzKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE2NS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTY2Olx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTY3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xNzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTcxOmludCBheDg4Nzk2Y19tZGlvX3JlYWQoc3RydWN0IG1paV9idXMgKm1kaW9idXMsIGludCBwaHlfaWQsIGludCBsb2MpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTcyLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxNzM6XHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IG1kaW9idXMtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xNzQtXHRpbnQgcmV0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYz0xOTI9aW50XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTkzOmF4ODg3OTZjX21kaW9fd3JpdGUoc3RydWN0IG1paV9idXMgKm1kaW9idXMsIGludCBwaHlfaWQsIGludCBsb2MsIHUxNiB2YWwpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTk0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxOTU6XHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IG1kaW9idXMtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xOTYtXHRpbnQgcmV0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0yMTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjE0OmNvbnN0IHN0cnVjdCBldGh0b29sX29wcyBheDg4Nzk2Y19ldGh0b29sX29wcyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyMTU6XHQuZ2V0X2RydmluZm9cdFx0PSBheDg4Nzk2Y19nZXRfZHJ2aW5mbyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0yMTYtXHQuZ2V0X2xpbmtcdFx0PSBldGh0b29sX29wX2dldF9saW5rLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIxNzpcdC5nZXRfbXNnbGV2ZWxcdFx0PSBheDg4Nzk2Y19nZXRfbXNnbGV2ZWwsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjE4Olx0LnNldF9tc2dsZXZlbFx0XHQ9IGF4ODg3OTZjX3NldF9tc2dsZXZlbCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0yMTktXHQuZ2V0X2xpbmtfa3NldHRpbmdzXHQ9IHBoeV9ldGh0b29sX2dldF9saW5rX2tzZXR0aW5ncyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjIxLVx0Lm53YXlfcmVzZXRcdFx0PSBwaHlfZXRodG9vbF9ud2F5X3Jlc2V0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIyMjpcdC5nZXRfcGF1c2VwYXJhbVx0XHQ9IGF4ODg3OTZjX2dldF9wYXVzZXBhcmFtLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIyMzpcdC5zZXRfcGF1c2VwYXJhbVx0XHQ9IGF4ODg3OTZjX3NldF9wYXVzZXBhcmFtLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIyNDpcdC5nZXRfcmVnc19sZW5cdFx0PSBheDg4Nzk2Y19nZXRfcmVnc19sZW4sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjI1Olx0LmdldF9yZWdzXHRcdD0gYXg4ODc5NmNfZ2V0X3JlZ3MsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjI2Olx0LmdldF9zdHJpbmdzXHRcdD0gYXg4ODc5NmNfZ2V0X3N0cmluZ3MsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjI3Olx0LmdldF9zc2V0X2NvdW50XHRcdD0gYXg4ODc5NmNfZ2V0X3NzZXRfY291bnQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjI4Olx0LmdldF9wcml2X2ZsYWdzXHRcdD0gYXg4ODc5NmNfZ2V0X3ByaXZfZmxhZ3MsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjI5Olx0LnNldF9wcml2X2ZsYWdzXHRcdD0gYXg4ODc5NmNfc2V0X3ByaXZfZmxhZ3MsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjMwLX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjMxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIzMjppbnQgYXg4ODc5NmNfaW9jdGwoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCBpZnJlcSAqaWZyLCBpbnQgY21kKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTIzMy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oLTE0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oOjE1OiNpbmNsdWRlIFwmIzM0O2F4ODg3OTZjX21haW4uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oLTE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oOjE3OmV4dGVybiBjb25zdCBzdHJ1Y3QgZXRodG9vbF9vcHMgYXg4ODc5NmNfZXRodG9vbF9vcHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmgtMTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmg6MTk6Ym9vbCBheDg4Nzk2Y19jaGVja19wb3dlcihjb25zdCBzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmg6MjA6Ym9vbCBheDg4Nzk2Y19jaGVja19wb3dlcl9hbmRfd2FrZShzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmg6MjE6dm9pZCBheDg4Nzk2Y19zZXRfcG93ZXJfc2F2aW5nKHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsLCB1OCBwc19sZXZlbCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmg6MjI6aW50IGF4ODg3OTZjX21kaW9fcmVhZChzdHJ1Y3QgbWlpX2J1cyAqbWRpb2J1cywgaW50IHBoeV9pZCwgaW50IGxvYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmg6MjM6aW50IGF4ODg3OTZjX21kaW9fd3JpdGUoc3RydWN0IG1paV9idXMgKm1kaW9idXMsIGludCBwaHlfaWQsIGludCBsb2MsIHUxNiB2YWwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oOjI0OmludCBheDg4Nzk2Y19pb2N0bChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgaWZyZXEgKmlmciwgaW50IGNtZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmgtMjUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjk6I2RlZmluZSBwcl9mbXQoZm10KVx0XCYjMzQ7YXg4ODc5NmM6IFwmIzM0OyBmbXRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MTE6I2luY2x1ZGUgXCYjMzQ7YXg4ODc5NmNfbWFpbi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoxMjojaW5jbHVkZSBcJiMzNDtheDg4Nzk2Y19pb2N0bC5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0xMy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz0zMz1zdGF0aWMgY29uc3QgY2hhciAqbm9fcmVnc19saXN0ID0gXCYjMzQ7ODAwMTgwMDEsZTE5MTgwMDEsODAwMWEwMDEsZmMwZDAwMDBcJiMzNDs7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzozNDp1bnNpZ25lZCBsb25nIGF4ODg3OTZjX25vX3JlZ3NfbWFza1tBWDg4Nzk2Q19SRUdEVU1QX0xFTiAvIChzaXplb2YodW5zaWduZWQgbG9uZykgKiA4KV07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0zNS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz0zNz1NT0RVTEVfUEFSTV9ERVNDKG1zZ19lbmFibGUsIFwmIzM0O01lc3NhZ2UgbWFzayAoc2VlIGxpbnV4L25ldGRldmljZS5oIGZvciBiaXRtYXApXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTM4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6Mzk6c3RhdGljIGludCBheDg4Nzk2Y19zb2Z0X3Jlc2V0KHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNDAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTY5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NzA6c3RhdGljIGludCBheDg4Nzk2Y19yZWxvYWRfZWVwcm9tKHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzEte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTkwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6OTE6c3RhdGljIHZvaWQgYXg4ODc5NmNfc2V0X2h3X211bHRpY2FzdChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTkyLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjkzOlx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy05NC1cdGludCBtY19jb3VudCA9IG5ldGRldl9tY19jb3VudChuZGV2KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0xMjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoxMzA6c3RhdGljIHZvaWQgYXg4ODc5NmNfc2V0X21hY19hZGRyKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTMxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjEzMjpcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTMzLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTE0My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjE0NDpzdGF0aWMgdm9pZCBheDg4Nzk2Y19sb2FkX21hY19hZGRyKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTQ1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjE0NjpcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTQ3LVx0dTggYWRkcltFVEhfQUxFTl07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTg3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MTg4OnN0YXRpYyB2b2lkIGF4ODg3OTZjX3Byb2NfdHhfaGRyKHN0cnVjdCB0eF9wa3RfaW5mbyAqaW5mbywgdTggaXBfc3VtbWVkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTg5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz0yMjE9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MjIyOmF4ODg3OTZjX2NoZWNrX2ZyZWVfcGFnZXMoc3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwsIHU4IG5lZWRfcGFnZXMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0yMjMte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jPTI0Mz1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MjQ0OmF4ODg3OTZjX3R4X2ZpeHVwKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpxKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMjQ1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjI0NjpcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMjQ3LVx0dTggc3BpX2xlbiA9IGF4X2xvY2FsLVx1MDAzZWF4X3NwaS5jb21wID8gMSA6IDQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMjYyLVx0bmVlZF9wYWdlcyA9IChwa3RfbGVuICYjNDM7IFRYX09WRVJIRUFEICYjNDM7IDEyNykgXHUwMDNlXHUwMDNlIDc7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoyNjM6XHRpZiAoYXg4ODc5NmNfY2hlY2tfZnJlZV9wYWdlcyhheF9sb2NhbCwgbmVlZF9wYWdlcykgIT0gMClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTI2NC1cdFx0cmV0dXJuIE5VTEw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMjgzLVx0aW5mby5zZXFfbnVtID0gc2VxX251bTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjI4NDpcdGF4ODg3OTZjX3Byb2NfdHhfaGRyKFx1MDAyNmluZm8sIHNrYi1cdTAwM2VpcF9zdW1tZWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMjg1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTI4OS1cdC8qIFdyaXRlIFNQSSBUWFEgaGVhZGVyICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoyOTA6XHRtZW1jcHkoc2tiX3B1c2goc2tiLCBzcGlfbGVuKSwgYXg4ODc5NmNfdHhfY21kX2J1Ziwgc3BpX2xlbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0yOTEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMzMyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MzMzOnN0YXRpYyBpbnQgYXg4ODc5NmNfaGFyZF94bWl0KHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMzM0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjMzNTpcdHN0cnVjdCBheDg4Nzk2Y19wY3B1X3N0YXRzICpzdGF0cztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTMzNi1cdHN0cnVjdCBza19idWZmICp0eF9za2I7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMzQyLVx0c3RhdHMgPSB0aGlzX2NwdV9wdHIoYXhfbG9jYWwtXHUwMDNlc3RhdHMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MzQzOlx0dHhfc2tiID0gYXg4ODc5NmNfdHhfZml4dXAoYXhfbG9jYWwtXHUwMDNlbmRldiwgXHUwMDI2YXhfbG9jYWwtXHUwMDNldHhfd2FpdF9xKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTM0NC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz0zODQ9c3RhdGljIG5ldGRldl90eF90XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzozODU6YXg4ODc5NmNfc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTM4Ni17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzozODc6XHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTM4OC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz0zOTk9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjQwMDpheDg4Nzk2Y19za2JfcmV0dXJuKHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNDAxLVx0XHQgICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHJ4X2hlYWRlciAqcnhoZHIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNDAzLVx0c3RydWN0IG5ldF9kZXZpY2UgKm5kZXYgPSBheF9sb2NhbC1cdTAwM2VuZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NDA0Olx0c3RydWN0IGF4ODg3OTZjX3BjcHVfc3RhdHMgKnN0YXRzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNDA1LVx0dW5zaWduZWQgbG9uZyBmbGFncztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz00NDI9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjQ0MzpheDg4Nzk2Y19yeF9maXh1cChzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCwgc3RydWN0IHNrX2J1ZmYgKnJ4X3NrYilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQ0NC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNDkwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NDkxOlx0YXg4ODc5NmNfc2tiX3JldHVybihheF9sb2NhbCwgcnhfc2tiLCByeGhkcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy00OTItfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNDkzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NDk0OnN0YXRpYyBpbnQgYXg4ODc5NmNfcmVjZWl2ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQ5NS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo0OTY6XHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQ5Ny1cdHN0cnVjdCBza2JfZGF0YSAqZW50cnk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNTQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NTQzOlx0YXg4ODc5NmNfcnhfZml4dXAoYXhfbG9jYWwsIHNrYik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01NDQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNTQ3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NTQ4OnN0YXRpYyBpbnQgYXg4ODc5NmNfcHJvY2Vzc19pc3Ioc3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01NDkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU3OC1cdFx0bmV0aWZfZGJnKGF4X2xvY2FsLCBpbnRyLCBuZGV2LCBcJiMzNDsgIFJYIGludGVycnVwdFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo1Nzk6XHRcdHRvZG8gPSBheDg4Nzk2Y19yZWNlaXZlKGF4X2xvY2FsLVx1MDAzZW5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNTgwLVx0fVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU4NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjU4NTpzdGF0aWMgaXJxcmV0dXJuX3QgYXg4ODc5NmNfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pbnN0YW5jZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU4Ni17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo1ODc6XHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU4OC1cdHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU5NC1cdH1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjU5NTpcdGF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNTk2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYwNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjYwNzpzdGF0aWMgdm9pZCBheDg4Nzk2Y193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYwOC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo2MDk6XHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo2MTA6XHRcdFx0Y29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UsIGF4X3dvcmspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjExLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYxNC1cdGlmICh0ZXN0X2JpdChFVkVOVF9TRVRfTVVMVEksIFx1MDAyNmF4X2xvY2FsLVx1MDAzZWZsYWdzKSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NjE1Olx0XHRheDg4Nzk2Y19zZXRfaHdfbXVsdGljYXN0KGF4X2xvY2FsLVx1MDAzZW5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjE2LVx0XHRjbGVhcl9iaXQoRVZFTlRfU0VUX01VTFRJLCBcdTAwMjZheF9sb2NhbC1cdTAwM2VmbGFncyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjIxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NjIyOlx0XHR3aGlsZSAoYXg4ODc5NmNfcHJvY2Vzc19pc3IoYXhfbG9jYWwpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjIzLVx0XHRcdC8qIG5vdGhpbmcgKi87XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjMzLVx0XHR3aGlsZSAoc2tiX3F1ZXVlX2xlbihcdTAwMjZheF9sb2NhbC1cdTAwM2V0eF93YWl0X3EpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo2MzQ6XHRcdFx0aWYgKCFheDg4Nzk2Y19oYXJkX3htaXQoYXhfbG9jYWwpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjM1LVx0XHRcdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjQ3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NjQ4OnN0YXRpYyB2b2lkIGF4ODg3OTZjX2dldF9zdGF0czY0KHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjQ5LVx0XHRcdFx0IHN0cnVjdCBydG5sX2xpbmtfc3RhdHM2NCAqc3RhdHMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02NTAte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NjUxOlx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02NTItXHR1MzIgcnhfZnJhbWVfZXJyb3JzID0gMCwgcnhfY3JjX2Vycm9ycyA9IDA7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjU3LVx0Zm9yX2VhY2hfcG9zc2libGVfY3B1KGNwdSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NjU4Olx0XHRzdHJ1Y3QgYXg4ODc5NmNfcGNwdV9zdGF0cyAqcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTY1OS1cdFx0dTY0IHJ4X3BhY2tldHMsIHJ4X2J5dGVzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTY4OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjY4OTpzdGF0aWMgdm9pZCBheDg4Nzk2Y19zZXRfbWFjKHN0cnVjdCAgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTY5MC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzM2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NzM3OnN0YXRpYyB2b2lkIGF4ODg3OTZjX2hhbmRsZV9saW5rX2NoYW5nZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTczOC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo3Mzk6XHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTc0MC1cdHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYgPSBuZGV2LVx1MDAzZXBoeWRldjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy03NjQtXHRpZiAodXBkYXRlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NzY1Olx0XHRheDg4Nzk2Y19zZXRfbWFjKGF4X2xvY2FsKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTc2Ni1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy03NzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo3NzE6c3RhdGljIHZvaWQgYXg4ODc5NmNfc2V0X2NzdW1zKHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzcyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz03OTQ9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6Nzk1OmF4ODg3OTZjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy03OTYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6Nzk3Olx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy03OTgtXHR1bnNpZ25lZCBsb25nIGlycV9mbGFnID0gMDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy04MDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo4MDM6XHRyZXQgPSByZXF1ZXN0X2lycShuZGV2LVx1MDAzZWlycSwgYXg4ODc5NmNfaW50ZXJydXB0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtODA0LVx0XHRcdCAgaXJxX2ZsYWcsIG5kZXYtXHUwMDNlbmFtZSwgbmRldik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtODEyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6ODEzOlx0cmV0ID0gYXg4ODc5NmNfc29mdF9yZXNldChheF9sb2NhbCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy04MTQtXHRpZiAocmV0IFx1MDAzYyAwKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtODIwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6ODIxOlx0YXg4ODc5NmNfc2V0X21hY19hZGRyKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6ODIyOlx0YXg4ODc5NmNfc2V0X2NzdW1zKGF4X2xvY2FsKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTgyMy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz04Nzg9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6ODc5OmF4ODg3OTZjX2Nsb3NlKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtODgwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjg4MTpcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtODgyLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTg4Ni1cdCAqIGFnYWluc3QgY29uY3VycmVudCBhY2Nlc3MsIGJ1dCBhbHNvIGF2b2lkIHdha2luZyB1cCB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjg4NzpcdCAqIHF1ZXVlIGluIGF4ODg3OTZjX3dvcmsoKS4gcGh5X3N0b3AoKSBuZWVkcyB0byBiZSBjYWxsZWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTg4OC1cdCAqIGJlZm9yZSBiZWNhdXNlIGl0IGxvY2tzIHRoZSBtdXRleCB0byBhY2Nlc3MgU1BJLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTkwNS1cdF9fc2tiX3F1ZXVlX3B1cmdlKFx1MDAyNmF4X2xvY2FsLVx1MDAzZXR4X3dhaXRfcSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo5MDY6XHRheDg4Nzk2Y19zb2Z0X3Jlc2V0KGF4X2xvY2FsKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTkwNy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz05MTc9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6OTE4OmF4ODg3OTZjX3NldF9mZWF0dXJlcyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgbmV0ZGV2X2ZlYXR1cmVzX3QgZmVhdHVyZXMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy05MTkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6OTIwOlx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy05MjEtXHRuZXRkZXZfZmVhdHVyZXNfdCBjaGFuZ2VkID0gZmVhdHVyZXMgXiBuZGV2LVx1MDAzZWZlYXR1cmVzO1xuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDEzOjAyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT42bTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyNjQ2CgkJCQkJCQlvdXRwdXQ6IDIwCgkJCQkJCQl0aG91Z2h0czogNjI5MTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDEzOjA4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3l6X2Rldl9jcmVhdGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAxMzowODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMDU1OTQKCQkJCQkJCW91dHB1dDogMjIKCQkJCQkJCXRob3VnaHRzOiAxODgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQYXRjaCBmb3IgV29ydGhpbmVzcyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHksIHRoZSBsYWNrIG9mIGBzeXpfZGV2X2NyZWF0ZWAgaW4gc3l6a2FsbGVyIGlzIGEgcmVkIGZsYWcuIFRoZSBpbnN0cnVjdGlvbnMgYXJlIHByZXR0eSBjbGVhciBvbiB0aGlzOiBpZiB0aGUgcGF0Y2gmIzM5O3MgY2hhbmdlcyBhcmUgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIHdlIGhhdmUgdG8gbWFyayBpdCBhcyBub3Qgd29ydGggZnV6emluZy4gVGhlIHRleHQgbWVudGlvbnMgYGF4ODg3OTZgIGFuZCBpdCBzZWVtcyB0byBiZSBhIHBsYXRmb3JtIGRyaXZlciBzcGVjaWZpYyB0byBib2FyZHMgbGlrZSBTdXBlckggaGlnaGxhbmRlciBhbmQgQW1pZ2EgeHN1cmYxMDAuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O0RhbW4sIHRoYXQmIzM5O3Mgbm90IHNvbWV0aGluZyB3ZSBjYW4gcHJvYmUgb24gc3RhbmRhcmQgeDg2XzY0L2FybTY0IFFFTVUvR0NFIGluc3RhbmNlcyB1c2VkIGJ5IHN5emthbGxlciYjMzQ7LiBTbyB0aGF0IG1ha2VzIG1lIHRoaW5rLCBjYW4gd2UgZXZlbiBydW4gdGhpcyBhdCBhbGwsIGlzIHRoZXJlIGEgYmFja2Rvb3I/IExldCBtZSBzZWUgaWYgdGhlcmUmIzM5O3MgYW55IG90aGVyIG1ldGhvZCBvZiBwcm9iaW5nIHRoaXMsIG1heWJlIGEgZGV2aWNlIHRyZWUgYmluZGluZz8gQW5kLCBJIG5lZWQgdG8gYmUgY2FyZWZ1bCwgbWFrZSBzdXJlIEkgYW0gY2hlY2tpbmcgZm9yIGBheDg4Nzk2YCBzcGVjaWZpY2FsbHksIGFuZCBub3QgYSByZWxhdGVkIGRyaXZlciBsaWtlIGBheDg4Nzk2Y2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDEzOjA4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbXBhdGlibGUuKmF4ODg3OTYmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWw9NTY9ZXhhbXBsZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWwtNjUtICAgICAgICBldGhlcm5ldEAwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sOjY2OiAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDthc2l4LGF4ODg3OTZjXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWwtNjctICAgICAgICAgICAgcmVnID0gXHUwMDNjMHgwXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL3NhbXN1bmcvZXh5bm9zMzI1MC1hcnRpazUtZXZhbC5kdHM9NTY9XHRldGhlcm5ldEAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL3NhbXN1bmcvZXh5bm9zMzI1MC1hcnRpazUtZXZhbC5kdHM6NTc6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDthc2l4LGF4ODg3OTZjXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvc2Ftc3VuZy9leHlub3MzMjUwLWFydGlrNS1ldmFsLmR0cy01OC1cdFx0cmVnID0gXHUwMDNjMHgwXHUwMDNlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jPTExMTg9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgYXg4ODc5NmNfZHRfaWRzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoxMTE5Olx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2FzaXgsYXg4ODc5NmNcJiMzNDsgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTExMjAtXHR7fSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMTM6MDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTA2NDUzCgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogMTA2MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXNpcyBvZiB0aGUgYGF4ODg3OTZgIERyaXZlciBmb3IgRnV6emluZyBTdWl0YWJpbGl0eSoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsICYjMzQ7V2hlcmUgZG9lcyB0aGlzIGRyaXZlciBldmVuIGV4aXN0PyYjMzQ7IEl0JiMzOTtzIGEgbGVnYWN5IHBsYXRmb3JtIGRyaXZlciwgYW5kIG15IGltbWVkaWF0ZSBjb25jZXJuIGlzIHdoZXRoZXIgc3l6a2FsbGVyIGhhcyBhIHdheSB0byBjcmVhdGUgdGhlIG5lY2Vzc2FyeSBwbGF0Zm9ybSBkZXZpY2UgZm9yIGl0LiBJIHN0YXJ0IGRvd24gdGhlIHBhdGggb2YgY2hlY2tpbmcgZm9yIGFueSBwc2V1ZG8tc3lzY2FsbHMgbGlrZSBgc3l6X3BsYXRmb3JtX2RldmljZV9hZGRgIG9yIGV2ZW4gc29tZSBjbGV2ZXIgaGFjayBsaWtlIGBzeXpfZGV2X2NyZWF0ZWAuIEkga25vdyBiZXR0ZXIgdGhhbiB0byB0cnkgc2VhcmNoaW5nIHRoZSBgc3l6bGFuZ2AgZGVzY3JpcHRpb25zIGRpcmVjdGx5LCBvZiBjb3Vyc2UuIE5vLCBJIHJlYWxpemUsIHN5emthbGxlciBkb2VzbiYjMzk7dCBoYXZlIGEgZ2VuZXJpYyAmIzM0O2NyZWF0ZSBhbnkgcGxhdGZvcm0gZGV2aWNlJiMzNDsgZnVuY3Rpb25hbGl0eS4gSXQmIzM5O3MgbW9yZSB0YXJnZXRlZCwgbGlrZSB3aXRoIFVTQiBvciA4MDIuMTEuCgpUaGVuLCB0aGUgc3BlY2lmaWNzIG9mIHRoZSBgYXg4ODc5NmAgZHJpdmVyIGtpY2sgaW4uIFRoaXMgaXMgYSB2ZXJ5IG5pY2hlIHBpZWNlIG9mIGhhcmR3YXJl4oCUYW4gQVNJWCBBWDg4Nzk2LCB3aGljaCBpcyBhbiBORTIwMDAgY2xvbmUuIFRoaXMgaXMgdXNlZCBvbiBTdXBlckggYW5kIEFtaWdhLCB3aGljaCBkb2VzbiYjMzk7dCBzZWVtIHRvIGhhdmUgYSBjaGFuY2Ugb2YgcnVubmluZyB0aGlzIGluIGFuIGVtdWxhdGVkIGVudmlyb25tZW50LiBUaGVyZSBpcyBubyBzdWNoIHZpcnR1YWwgZGV2aWNlLiBJdCBpcyBub3QgVVNCL1BDSSwgd2hpY2ggc3l6a2FsbGVyICptaWdodCogYmUgYWJsZSB0byBoZWxwLgoKVGhlIGZhY3QgdGhhdCB0aGUgcGF0Y2ggaXMgJiMzNDt1bmRlciByZXZpZXcmIzM0OyBvbiBzeXpib3QgZG9lc24mIzM5O3QgbWVhbiBzeXpib3QgKmZvdW5kKiBhIGJ1Zy4gSXQganVzdCBtZWFucyB0aGUgcGF0Y2ggaXMgKmJlaW5nKiB0ZXN0ZWQuIEl0IGlzIG5vdCB0aGUgc2lnbmFsIG9mIHdoZXRoZXIgdGhlIGNvZGUgaXMgcmVhY2hhYmxlIGluIFFFTVUvR0NFLiBJZiB0aGUgY29kZSBpcyBub3QgcmVhY2hhYmxlIGluIFFFTVUvR0NFLCBpdCYjMzk7cyBub3Qgd29ydGggZnV6emluZy4KCk15IG5leHQgc3RlcCBpcyB0byBzZWUgaWYsIGJ5IHNvbWUgZmx1a2UsIGl0ICpjb3VsZCogYmUgcHJvYmVkIG9uIHg4Nl82NC4gSSBjaGVjayBpZiB0aGVyZSBpcyBzb21lIHBsYXRmb3JtIGRldmljZSByZWdpc3RlcmVkIHVzaW5nIHRoZSAmIzM0O2F4ODg3OTYmIzM0OyBuYW1lLiBQbGF0Zm9ybSBkZXZpY2VzIGFyZSBlaXRoZXIgY3JlYXRlZCBieSBib2FyZCBjb2RlIG9yIGRldmljZSB0cmVlIGJpbmRpbmdzLiBJJiMzOTttIGNvbmZpZGVudCB0aGVyZSBhcmUgbm8gZGV2aWNlIHRyZWUgYmluZGluZ3MuIEkgY2FuJiMzOTt0IGNyZWF0ZSBkZXZpY2VzIHZpYSBzeXNmcywgb3IgdXNlIGEgcHNldWRvLXN5c2NhbGwuCgpUaGVyZWZvcmUsIHRoaXMgZHJpdmVyIGlzIHVucmVhY2hhYmxlIGluIHRoZSBzeXprYWxsZXIgZW52aXJvbm1lbnQuIEl0JiMzOTtzIGEgcGxhdGZvcm0gZHJpdmVyIGZvciBzcGVjaWZpYyBib2FyZHMgKFN1cGVySC9BbWlnYSkgYW5kIHdpbGwgbm90IGJlIHByb2JlZCBpbiBRRU1VL0dDRS4gVGhlcmVmb3JlLCBJJiMzOTttIG1hcmtpbmcgaXQgYXMgYFdvcnRoRnV6emluZz1mYWxzZWAuCgpJIGFtIHJldmlld2luZyB0aGUgYWN0dWFsIHBhdGNoIHRoYXQgd2FzIHN1Ym1pdHRlZC4gSXQmIzM5O3MgZml4aW5nIGEgc3RhY2sgdmFyaWFibGUgdGhhdCB3YXMgdW5pbml0aWFsaXplZC4gUmVnYXJkbGVzcywgdGhlIHJlYWNoYWJpbGl0eSBpc3N1ZSBzdGlsbCByZW1haW5zIGFuZCBJIGFtIGNvbmZpZGVudCBpbiBteSBhc3Nlc3NtZW50LgoKSSBhbSByZS1jaGVja2luZyB0byBlbnN1cmUgdGhlcmUgYXJlIG5vIG90aGVyIHBsYWNlcyB3aGVyZSB0aGlzIHBsYXRmb3JtIGRldmljZSBpcyByZWdpc3RlcmVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAxMzowODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIuKmF4ODg3OTYmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jPTIzOT1zdGF0aWMgaW50IHhzdXJmMTAwX3Byb2JlKHN0cnVjdCB6b3Jyb19kZXYgKnpkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTMxMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzozMTM6XHRwZGV2ID0gcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyX3Jlc25kYXRhKFx1MDAyNnpkZXYtXHUwMDNlZGV2LCBcJiMzNDtheDg4Nzk2XCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTMxNC1cdFx0XHRcdFx0XHQgemRldi1cdTAwM2VzbG90YWRkciwgcmVzLCAyLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAxMzowOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMDgyNzAKCQkJCQkJCW91dHB1dDogODcKCQkJCQkJCXRob3VnaHRzOiAxODIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqVW5yZWFjaGFibGUgQ29kZSBpbiBMZWdhY3kgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O3ZlIGR1ZyBpbnRvIHRoaXMgY29kZSwgYW5kIGl0JiMzOTtzIHByZXR0eSBjbGVhciB0aGlzIHBhcnRpY3VsYXIgZHJpdmVyIG1vZGlmaWNhdGlvbiwgc3BlY2lmaWNhbGx5IHdpdGhpbiBgeHN1cmYxMDAuY2AgYW5kIHRoYXQgYHNldHVwLmNgIGZpbGUgZm9yIHRoZSBTdXBlckggSGlnaGxhbmRlciBib2FyZCwgaXMgb25seSBhY2Nlc3NpYmxlIG9uIHZlcnkgc3BlY2lmaWMsIG9sZGVyIGhhcmR3YXJlLiBJJiMzOTttIHRhbGtpbmcgQW1pZ2EgWm9ycm8gYnVzIGFuZCB0aGUgU3VwZXJIIEhpZ2hsYW5kZXIgYm9hcmQuIE5vdGhpbmcgaW4gdGhpcyBwYXRjaCBpcyBnb2luZyB0byBiZSB0cmlnZ2VyZWQgaW4gYW55IHN0YW5kYXJkIGZ1enppbmcgZW52aXJvbm1lbnQgdGhhdCBzeXprYWxsZXIgaXMgdXNpbmcsIHlvdSBrbm93LCB0aGUgdXN1YWwgeDg2XzY0IG9yIGFybTY0IFZNcyBsaWtlIHdlIHNlZSB3aXRoIFFFTVUgb3IgR0NFLgoKVGhlcmUmIzM5O3MganVzdCBubyBwYXRoIGZvciBpdCB0byBiZSBwcm9iZWQgb3IgZXhlY3V0ZWQgZ2l2ZW4gb3VyIGN1cnJlbnQgc2V0dXAuIEl0JiMzOTtzIGdlb2dyYXBoaWNhbGx5IGlzb2xhdGVkLCBzbyB0byBzcGVhay4KClRoZXJlZm9yZSwgYFdvcnRoRnV6emluZ2AgaXMgZGVmaW5pdGl2ZWx5IGdldHRpbmcgc2V0IHRvIGBmYWxzZWAuIE15IHJlYXNvbmluZyBpcyBzb2xpZDogVGhpcyBwYXRjaCB0b3VjaGVzIGEgbGVnYWN5IHBsYXRmb3JtIGRyaXZlciBmb3IgdGhlIGF4ODg3OTYsIHdoaWNoIHJlcXVpcmVzIHRoZXNlIHNwZWNpZmljLCBuaWNoZSBoYXJkd2FyZSBjb25maWd1cmF0aW9ucywgYW5kIHRoYXQmIzM5O3MgYSBkZWFkIGVuZCBhcyBmYXIgYXMgcmVhY2hpbmcgaXQgdGhyb3VnaCBmdXp6aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAxMzowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsZWdhY3kgYXg4ODc5NiBwbGF0Zm9ybSBkcml2ZXIsIHdoaWNoIGlzIG9ubHkgcmVnaXN0ZXJlZCBieSBzcGVjaWZpYyBoYXJkd2FyZSBib2FyZCBjb2RlIChTdXBlckggSGlnaGxhbmRlciBhbmQgQW1pZ2EgWm9ycm8pLiBJdCBjYW5ub3QgYmUgcHJvYmVkIG9yIGV4ZWN1dGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFIHVzZWQgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbGVnYWN5IGF4ODg3OTYgcGxhdGZvcm0gZHJpdmVyLCB3aGljaCBpcyBvbmx5IHJlZ2lzdGVyZWQgYnkgc3BlY2lmaWMgaGFyZHdhcmUgYm9hcmQgY29kZSAoU3VwZXJIIEhpZ2hsYW5kZXIgYW5kIEFtaWdhIFpvcnJvKS4gSXQgY2Fubm90IGJlIHByb2JlZCBvciBleGVjdXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSB1c2VkIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDEzOjAwOjU4LjQ3MjYxMjA2OFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5MjA2NjkxMTMzOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxlZ2FjeSBheDg4Nzk2IHBsYXRmb3JtIGRyaXZlciwgd2hpY2ggaXMgb25seSByZWdpc3RlcmVkIGJ5IHNwZWNpZmljIGhhcmR3YXJlIGJvYXJkIGNvZGUgKFN1cGVySCBIaWdobGFuZGVyIGFuZCBBbWlnYSBab3JybykuIEl0IGNhbm5vdCBiZSBwcm9iZWQgb3IgZXhlY3V0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UgdXNlZCBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDEzOjAwOjU4LjQ3MjYxODE3OFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTk2ODA4NjM5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNjM5ZmY3ODA0MDU2YTRjZmM2MjNmZDcyMjIzODE5MTk3OWVhYWU5MVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU2F0IEp1bCAyNSAxMzowMDo1NiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jXFxuaW5kZXggZTE2OTVkMGZiZDhiYjAuLjVlZTFmYmFmZGNmY2RmIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmNcXG5AQCAtNzIyLDEyICs3MjIsMTIgQEAgc3RhdGljIGludCBheF9pbml0X2RldihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbiAjaWZkZWYgQ09ORklHX0FYODg3OTZfOTNDWDZcXG4gXFx0aWYgKGF4LVxcdTAwM2VwbGF0LVxcdTAwM2VmbGFncyBcXHUwMDI2IEFYRkxHX0hBU185M0NYNikge1xcbiBcXHRcXHR1bnNpZ25lZCBjaGFyIG1hY19hZGRyW0VUSF9BTEVOXTtcXG4tXFx0XFx0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb207XFxuLVxcbi1cXHRcXHRlZXByb20uZGF0YSA9IGVpX2xvY2FsO1xcbi1cXHRcXHRlZXByb20ucmVnaXN0ZXJfcmVhZCA9IGF4X2VlcHJvbV9yZWdpc3Rlcl9yZWFkO1xcbi1cXHRcXHRlZXByb20ucmVnaXN0ZXJfd3JpdGUgPSBheF9lZXByb21fcmVnaXN0ZXJfd3JpdGU7XFxuLVxcdFxcdGVlcHJvbS53aWR0aCA9IFBDSV9FRVBST01fV0lEVEhfOTNDNTY7XFxuK1xcdFxcdHN0cnVjdCBlZXByb21fOTNjeDYgZWVwcm9tID0ge1xcbitcXHRcXHRcXHQuZGF0YSA9IGVpX2xvY2FsLFxcbitcXHRcXHRcXHQucmVnaXN0ZXJfcmVhZCA9IGF4X2VlcHJvbV9yZWdpc3Rlcl9yZWFkLFxcbitcXHRcXHRcXHQucmVnaXN0ZXJfd3JpdGUgPSBheF9lZXByb21fcmVnaXN0ZXJfd3JpdGUsXFxuK1xcdFxcdFxcdC53aWR0aCA9IFBDSV9FRVBST01fV0lEVEhfOTNDNTYsXFxuK1xcdFxcdH07XFxuIFxcbiBcXHRcXHRlZXByb21fOTNjeDZfbXVsdGlyZWFkKFxcdTAwMjZlZXByb20sIDAsXFxuIFxcdFxcdFxcdFxcdCAgICAgICAoX19sZTE2IF9fZm9yY2UgKiltYWNfYWRkcixcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMTM6MDA6NTkuMDcwMTc2MTc3WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NDkxNDY5MzMzOTk5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbGVnYWN5IGF4ODg3OTYgcGxhdGZvcm0gZHJpdmVyLCB3aGljaCBpcyBvbmx5IHJlZ2lzdGVyZWQgYnkgc3BlY2lmaWMgaGFyZHdhcmUgYm9hcmQgY29kZSAoU3VwZXJIIEhpZ2hsYW5kZXIgYW5kIEFtaWdhIFpvcnJvKS4gSXQgY2Fubm90IGJlIHByb2JlZCBvciBleGVjdXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSB1c2VkIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNjM5ZmY3ODA0MDU2YTRjZmM2MjNmZDcyMjIzODE5MTk3OWVhYWU5MVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgSnVsIDI1IDEzOjAwOjU2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuY1xuaW5kZXggZTE2OTVkMGZiZDhiYjAuLjVlZTFmYmFmZGNmY2RmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jXG5AQCAtNzIyLDEyICs3MjIsMTIgQEAgc3RhdGljIGludCBheF9pbml0X2RldihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuICNpZmRlZiBDT05GSUdfQVg4ODc5Nl85M0NYNlxuIFx0aWYgKGF4LVx1MDAzZXBsYXQtXHUwMDNlZmxhZ3MgXHUwMDI2IEFYRkxHX0hBU185M0NYNikge1xuIFx0XHR1bnNpZ25lZCBjaGFyIG1hY19hZGRyW0VUSF9BTEVOXTtcbi1cdFx0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb207XG4tXG4tXHRcdGVlcHJvbS5kYXRhID0gZWlfbG9jYWw7XG4tXHRcdGVlcHJvbS5yZWdpc3Rlcl9yZWFkID0gYXhfZWVwcm9tX3JlZ2lzdGVyX3JlYWQ7XG4tXHRcdGVlcHJvbS5yZWdpc3Rlcl93cml0ZSA9IGF4X2VlcHJvbV9yZWdpc3Rlcl93cml0ZTtcbi1cdFx0ZWVwcm9tLndpZHRoID0gUENJX0VFUFJPTV9XSURUSF85M0M1NjtcbitcdFx0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb20gPSB7XG4rXHRcdFx0LmRhdGEgPSBlaV9sb2NhbCxcbitcdFx0XHQucmVnaXN0ZXJfcmVhZCA9IGF4X2VlcHJvbV9yZWdpc3Rlcl9yZWFkLFxuK1x0XHRcdC5yZWdpc3Rlcl93cml0ZSA9IGF4X2VlcHJvbV9yZWdpc3Rlcl93cml0ZSxcbitcdFx0XHQud2lkdGggPSBQQ0lfRUVQUk9NX1dJRFRIXzkzQzU2LFxuK1x0XHR9O1xuIFxuIFx0XHRlZXByb21fOTNjeDZfbXVsdGlyZWFkKFx1MDAyNmVlcHJvbSwgMCxcbiBcdFx0XHRcdCAgICAgICAoX19sZTE2IF9fZm9yY2UgKiltYWNfYWRkcixcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDEzOjAwOjU5LjA3MDE3NzE1N1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM5NTI1MDEzOTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqUmVmYWN0b3JpbmcgYSBEcml2ZXIgSW5pdGlhbGl6YXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmNgLiBJdCdzIGEgc21hbGwgY2hhbmdlLCBhZmZlY3RpbmcgdGhlIGBheF9pbml0X2RldmAgZnVuY3Rpb24uIFRoZSBjb3JlIG9mIHRoZSBtb2RpZmljYXRpb24gaXMgaG93IHRoZSBgc3RydWN0IGVlcHJvbV85M2N4NiBlZXByb21gIGlzIGluaXRpYWxpemVkLiBJbnN0ZWFkIG9mIHRoZSB1c3VhbCBmaWVsZC1ieS1maWVsZCBhc3NpZ25tZW50LCB0aGV5J3ZlIHVzZWQgYSBkZXNpZ25hdGVkIGluaXRpYWxpemVyLiBGcm9tIGEgZnVuY3Rpb25hbCBwZXJzcGVjdGl2ZSwgdGhpcyBpcyBwdXJlbHkgc3R5bGlzdGljIOKAkyBhIHJlZmFjdG9yaW5nLiBObyByZWFsIGNvZGUgYmVoYXZpb3IgY2hhbmdlIGhlcmUsIGp1c3QgY2xlYW5pbmcgdGhpbmdzIHVwLlxuXG5CdXQgd2FpdCBhIG1pbnV0ZeKApiBkb2VzIHRoaXMgZGVzaWduYXRlZCBpbml0aWFsaXphdGlvbiBpbXBsaWNpdGx5IHplcm8gb3V0IHRoZSByZW1haW5pbmcgZmllbGRzIG9mIHRoZSBzdHJ1Y3Q/IFRoYXQncyBhIHN1YnRsZSBidXQgcG90ZW50aWFsbHkgaW1wb3J0YW50IGRldGFpbC4gSSdkIGJldHRlciBkb3VibGUtY2hlY2sgdGhlIGRlZmluaXRpb24gb2YgYHN0cnVjdCBlZXByb21fOTNjeDZgIGl0c2VsZi4gTmVlZCB0byBiZSBjZXJ0YWluIHRoZXJlIGFyZSBubyB1bmludGVuZGVkIHNpZGUgZWZmZWN0cy4gSnVzdCBiZWNhdXNlIGl0J3MgYSByZWZhY3RvcmluZyBkb2Vzbid0IG1lYW4gaXQgaXMgcHJvYmxlbS1mcmVlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjYwLCJPdXRwdXRUb2tlbnMiOjI0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE3LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMTM6MDE6MDMuMDIyNjgxNjY5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYwNDEwOTExMjQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3RydWN0IGVlcHJvbV85M2N4NiBcXFxce1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJpbmNsdWRlL2xpbnV4L2VlcHJvbV85M2N4Ni5oLTQ4LSAqL1xcbmluY2x1ZGUvbGludXgvZWVwcm9tXzkzY3g2Lmg6NDk6c3RydWN0IGVlcHJvbV85M2N4NiB7XFxuaW5jbHVkZS9saW51eC9lZXByb21fOTNjeDYuaC01MC1cXHR2b2lkICpkYXRhO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQxMzowMTowOS4wNjM3Nzk1MDNaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNzM0MDU1ODc2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBkaXZlIGludG8gdGhpcy4gSSBuZWVkIHRvIGdldCBhIGNvbXBsZXRlIHVuZGVyc3RhbmRpbmcgb2YgdGhpcyBzdHJ1Y3QsIHNvIG15IGZpcnN0IHRob3VnaHQgaXM6XG5cbioqR3JhYmJpbmcgdGhlIFdob2xlIFBpY3R1cmU6IExldCdzIFNlZSB0aGUgRnVsbCBTdHJ1Y3QgRGVmaW5pdGlvbioqXG5cbkkga25vdyBJIGNhbid0IHJlYWxseSBhbmFseXplIHRoaXMgZWZmZWN0aXZlbHkgd2l0aG91dCB0aGUgY29tcGxldGUgY29udGV4dC4gVW5kZXJzdGFuZGluZyBldmVyeSBtZW1iZXIsIHRoZWlyIGRhdGEgdHlwZXMsIGFuZCBhbnkgYXNzb2NpYXRlZCBhdHRyaWJ1dGVzIGlzIGFic29sdXRlbHkgY3J1Y2lhbCB0byBmb3JtaW5nIGEgc291bmQgb3BpbmlvbiBvciB1bmRlcnN0YW5kaW5nIGl0cyBwdXJwb3NlLiBJdCdzIHRoZSBibHVlcHJpbnQsIHRoZSBmb3VuZGF0aW9uLiBJIG5lZWQgdG8gc2VlIHRoZSB3aG9sZSBkZWZpbml0aW9uIGJlZm9yZSBJIGNhbiBtYWtlIGFueSBtZWFuaW5nZnVsIGp1ZGdlbWVudHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2OTUsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDEzOjAxOjExLjc5NzgzODI3OVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgwNDQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImluY2x1ZGUvbGludXgvZWVwcm9tXzkzY3g2LmhcIixcbiAgXCJGaXJzdExpbmVcIjogNDksXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgNDk6XFx0c3RydWN0IGVlcHJvbV85M2N4NiB7XFxuICA1MDpcXHRcXHR2b2lkICpkYXRhO1xcbiAgNTE6XFx0XFxuICA1MjpcXHRcXHR2b2lkICgqcmVnaXN0ZXJfcmVhZCkoc3RydWN0IGVlcHJvbV85M2N4NiAqZWVwcm9tKTtcXG4gIDUzOlxcdFxcdHZvaWQgKCpyZWdpc3Rlcl93cml0ZSkoc3RydWN0IGVlcHJvbV85M2N4NiAqZWVwcm9tKTtcXG4gIDU0OlxcdFxcbiAgNTU6XFx0XFx0aW50IHdpZHRoO1xcbiAgNTY6XFx0XFx0dW5zaWduZWQgaW50IHF1aXJrcztcXG4gIDU3OlxcdC8qIFNvbWUgRUVQUk9NcyByZXF1aXJlIGFuIGV4dHJhIGNsb2NrIGN5Y2xlIGJlZm9yZSByZWFkaW5nICovXFxuICA1ODpcXHQjZGVmaW5lIFBDSV9FRVBST01fUVVJUktfRVhUUkFfUkVBRF9DWUNMRVxcdEJJVCgwKVxcbiAgNTk6XFx0XFxuICA2MDpcXHRcXHRjaGFyIGRyaXZlX2RhdGE7XFxuICA2MTpcXHRcXHRjaGFyIHJlZ19kYXRhX2luO1xcbiAgNjI6XFx0XFx0Y2hhciByZWdfZGF0YV9vdXQ7XFxuICA2MzpcXHRcXHRjaGFyIHJlZ19kYXRhX2Nsb2NrO1xcbiAgNjQ6XFx0XFx0Y2hhciByZWdfY2hpcF9zZWxlY3Q7XFxuICA2NTpcXHR9O1xcbiAgNjY6XFx0XFxuICA2NzpcXHRleHRlcm4gdm9pZCBlZXByb21fOTNjeDZfcmVhZChzdHJ1Y3QgZWVwcm9tXzkzY3g2ICplZXByb20sXFxuICA2ODpcXHRcXHRjb25zdCB1OCB3b3JkLCB1MTYgKmRhdGEpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQxMzowMToxMS43OTc5MjA0NzlaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDk0MTM5NDMxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkluaXRpYWwgVGhvdWdodHMgb24gU3RydWN0IEluaXRpYWxpemF0aW9uKipcblxuT2theSwgc28gdGhlIGRlc2lnbmF0ZWQgaW5pdGlhbGl6ZXIgaXMgZ29pbmcgdG8gdGFrZSBjYXJlIG9mIHplcm9pbmcgb3V0IGFsbCB0aG9zZSBleHRyYSBmaWVsZHMgSSB3YXMgd29ycmllZCBhYm91dDogYHF1aXJrc2AsIGBkcml2ZV9kYXRhYCwgYHJlZ19kYXRhX2luYCwgYHJlZ19kYXRhX291dGAsIGByZWdfZGF0YV9jbG9ja2AsIGFuZCBgcmVnX2NoaXBfc2VsZWN0YC4gR29vZCwgZ29vZC4gQmVmb3JlLCB0aGV5IHdlcmUganVzdCBoYW5naW5nIG91dCwgdW5pbml0aWFsaXplZC4gVGhhdCB3YXMgYnVnZ2luZyBtZSBhIGJpdC5cblxuQnV0IHdhaXQgYSBzZWNvbmQuLi5kb2VzIGBlZXByb21fOTNjeDZfbXVsdGlyZWFkYCBldmVuICp1c2UqIHRob3NlIGZpZWxkcz8gSXQgdGFrZXMgYSByZWZlcmVuY2UgdG8gdGhlIGBlZXByb21gIHN0cnVjdCBhcyBhbiBhcmd1bWVudCwgYFx1MDAyNmVlcHJvbWAuIEkgbmVlZCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUuIExldCBtZSBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGUgaW1wbGVtZW50YXRpb25zIG9mIGBlZXByb21fOTNjeDZfbXVsdGlyZWFkYCBhbmQgYWxzbyBgZWVwcm9tXzkzY3g2X3JlYWRgLiBJIGNhbid0IGxlYXZlIHRoaXMgdG8gY2hhbmNlLCBlc3BlY2lhbGx5IHdoZW4gd29ya2luZyB3aXRoIEVFUFJPTSBpbnRlcmFjdGlvbnMuIEdvdHRhIGNvbmZpcm0gd2hhdCBwYXJ0cyBvZiB0aGUgc3RydWN0IGFyZSBhY3R1YWxseSBiZWluZyBhY2Nlc3NlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzE1MCwiT3V0cHV0VG9rZW5zIjoyNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExNywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDEzOjAxOjE1LjI5MjA2MloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzYyOTQ2NzQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZvaWQgZWVwcm9tXzkzY3g2X211bHRpcmVhZFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL21pc2MvZWVwcm9tL2VlcHJvbV85M2N4Ni5jPTIwNT1FWFBPUlRfU1lNQk9MX0dQTChlZXByb21fOTNjeDZfcmVhZCk7XFxuLS1cXG5kcml2ZXJzL21pc2MvZWVwcm9tL2VlcHJvbV85M2N4Ni5jLTIxOS0gKi9cXG5kcml2ZXJzL21pc2MvZWVwcm9tL2VlcHJvbV85M2N4Ni5jOjIyMDp2b2lkIGVlcHJvbV85M2N4Nl9tdWx0aXJlYWQoc3RydWN0IGVlcHJvbV85M2N4NiAqZWVwcm9tLCBjb25zdCB1OCB3b3JkLFxcbmRyaXZlcnMvbWlzYy9lZXByb20vZWVwcm9tXzkzY3g2LmMtMjIxLVxcdF9fbGUxNiAqZGF0YSwgY29uc3QgdTE2IHdvcmRzKVxcbi0tXFxuZHJpdmVycy9taXNjL2VlcHJvbS9lZXByb21fOTNjeDYuYz0yNzc9RVhQT1JUX1NZTUJPTF9HUEwoZWVwcm9tXzkzY3g2X3JlYWRiKTtcXG4tLVxcbmRyaXZlcnMvbWlzYy9lZXByb20vZWVwcm9tXzkzY3g2LmMtMjg4LSAqL1xcbmRyaXZlcnMvbWlzYy9lZXByb20vZWVwcm9tXzkzY3g2LmM6Mjg5OnZvaWQgZWVwcm9tXzkzY3g2X211bHRpcmVhZGIoc3RydWN0IGVlcHJvbV85M2N4NiAqZWVwcm9tLCBjb25zdCB1OCBieXRlLFxcbmRyaXZlcnMvbWlzYy9lZXByb20vZWVwcm9tXzkzY3g2LmMtMjkwLVxcdHU4ICpkYXRhLCBjb25zdCB1MTYgYnl0ZXMpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2VlcHJvbV85M2N4Ni5oPTY3PWV4dGVybiB2b2lkIGVlcHJvbV85M2N4Nl9yZWFkKHN0cnVjdCBlZXByb21fOTNjeDYgKmVlcHJvbSxcXG5pbmNsdWRlL2xpbnV4L2VlcHJvbV85M2N4Ni5oLTY4LVxcdGNvbnN0IHU4IHdvcmQsIHUxNiAqZGF0YSk7XFxuaW5jbHVkZS9saW51eC9lZXByb21fOTNjeDYuaDo2OTpleHRlcm4gdm9pZCBlZXByb21fOTNjeDZfbXVsdGlyZWFkKHN0cnVjdCBlZXByb21fOTNjeDYgKmVlcHJvbSxcXG5pbmNsdWRlL2xpbnV4L2VlcHJvbV85M2N4Ni5oLTcwLVxcdGNvbnN0IHU4IHdvcmQsIF9fbGUxNiAqZGF0YSwgY29uc3QgdTE2IHdvcmRzKTtcXG5pbmNsdWRlL2xpbnV4L2VlcHJvbV85M2N4Ni5oPTcxPWV4dGVybiB2b2lkIGVlcHJvbV85M2N4Nl9yZWFkYihzdHJ1Y3QgZWVwcm9tXzkzY3g2ICplZXByb20sXFxuaW5jbHVkZS9saW51eC9lZXByb21fOTNjeDYuaC03Mi1cXHRjb25zdCB1OCBieXRlLCB1OCAqZGF0YSk7XFxuaW5jbHVkZS9saW51eC9lZXByb21fOTNjeDYuaDo3MzpleHRlcm4gdm9pZCBlZXByb21fOTNjeDZfbXVsdGlyZWFkYihzdHJ1Y3QgZWVwcm9tXzkzY3g2ICplZXByb20sXFxuaW5jbHVkZS9saW51eC9lZXByb21fOTNjeDYuaC03NC1cXHRjb25zdCB1OCBieXRlLCB1OCAqZGF0YSwgY29uc3QgdTE2IGJ5dGVzKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMTM6MDE6MTcuNjU1MDE0Njk4WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzk4MjI1Mjg3OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoZXNlIGZ1bmN0aW9ucy4gSGVyZSdzIHdoYXQgSSdtIHRoaW5raW5nIGFzIEkgcHJlcGFyZSB0byBleGFtaW5lIGBlZXByb21fOTNjeDZfbXVsdGlyZWFkYCBhbmQgYGVlcHJvbV85M2N4Nl9yZWFkYDpcblxuKipEaXNzZWN0aW5nIEVFUFJPTSBSZWFkIEZ1bmN0aW9ucyoqXG5cbkFscmlnaHQsIEknbSBleHBlY3Rpbmcgc29tZSBzdGFuZGFyZCBFRVBST00gaW50ZXJhY3Rpb24gcm91dGluZXMgaGVyZSwgc3BlY2lmaWNhbGx5IHRhaWxvcmVkIGZvciB0aGUgOTNDeHggZmFtaWx5LiBTaW5jZSBgbXVsdGlyZWFkYCBpcyBpbiB0aGUgbmFtZSwgSSdtIGFudGljaXBhdGluZyB0aGlzIG9uZSB3aWxsIGhhbmRsZSByZWFkaW5nIG11bHRpcGxlIGJ5dGVzIGZyb20gdGhlIEVFUFJPTSBpbiBhIHNpbmdsZSBvcGVyYXRpb24uIFRoaXMgbGlrZWx5IHdpbGwgaW52b2x2ZSBvcHRpbWl6YXRpb24gZm9yIHNwZWVkIGJ5IG1pbmltaXppbmcgdGhlIG92ZXJoZWFkIG9mIHJlcGVhdGVkIGFkZHJlc3Mgc2V0dXAgb3Igb3RoZXIgY29tbXVuaWNhdGlvbiBzdGVwcy4gSSdsbCBuZWVkIHRvIGxvb2sgY2xvc2VseSBhdCBob3cgdGhlIGNoaXAgc2VsZWN0IChDUykgYW5kIGNsb2NrIChDTEspIGxpbmVzIGFyZSBtYW5hZ2VkLCBlc3BlY2lhbGx5IGlmIGl0J3MgdXNpbmcgYSBTUEktbGlrZSBwcm90b2NvbCBvciBzb21ldGhpbmcgbW9yZSBiZXNwb2tlLlxuXG5UaGVuLCB0aGVyZSdzIGBlZXByb21fOTNjeDZfcmVhZGAuIFRoaXMgb25lLCBwcm9iYWJseSBmb3IgYSBzaW5nbGUgYnl0ZSwgbWlnaHQgYmUgYSBzaW1wbGVyIGltcGxlbWVudGF0aW9uLCBwb3RlbnRpYWxseSBzZXJ2aW5nIGFzIHRoZSBidWlsZGluZyBibG9jayBmb3IgdGhlIGBtdWx0aXJlYWRgIGZ1bmN0aW9uIG9yIHVzZWQgaW4gc2NlbmFyaW9zIHdoZXJlIHJlYWRpbmcgYSBzaW5nbGUgdmFsdWUgaXMgbW9yZSBhcHByb3ByaWF0ZS4gSSdsbCBiZSBsb29raW5nIHRvIGNvbXBhcmUgdGhlaXIgaW1wbGVtZW50YXRpb25zLCBwYXJ0aWN1bGFybHkgdG8gc2VlIGlmIGFueSBsb3ctbGV2ZWwgaGFyZHdhcmUgYWNjZXNzIGlzIGFic3RyYWN0ZWQgaW4gZWl0aGVyIGZ1bmN0aW9uLCBvciBpZiBpdCdzIGFsbCBoYW5kbGVkIGlubGluZS4gQXJlIHRoZXJlIGFueSBlcnJvciBjaGVja3MgcHJlc2VudD8gTGlrZSwgY2hlY2tpbmcgZm9yIGEgdmFsaWQgYWRkcmVzcyBpbnB1dD8gQXJlIHRoZXJlIGFueSBvcHRpbWl6YXRpb25zIHRoYXQgbWlnaHQgbGVhZCB0byBwb3RlbnRpYWwgaXNzdWVzIGluIGNlcnRhaW4gc2NlbmFyaW9zIChsaWtlIHRpbWluZyBjb25zdHJhaW50cyk/XG5cbkknbSBob3BpbmcgdG8gc2VlIHdlbGwtY29tbWVudGVkIGNvZGUsIGdpdmVuIHRoZSBuYXR1cmUgb2YgRUVQUk9NIGludGVyYWN0aW9uLCB3aGljaCBvZnRlbiBuZWVkcyB0byBiZSBwcmVjaXNlLiBJJ2xsIGJlIGZvY3VzZWQgb24gZWZmaWNpZW5jeSwgZXJyb3IgaGFuZGxpbmcsIGFuZCB0aGUgb3ZlcmFsbCBkZXNpZ24gY2hvaWNlcyBtYWRlIHRvIG9wdGltaXplIHRoZSByZWFkIHByb2Nlc3MgZm9yIHRoZXNlIHNwZWNpZmljIGNoaXBzLiBUaGlzIGlzIGdvaW5nIHRvIGJlIGludGVyZXN0aW5nIVxuXG5cbiIsIklucHV0VG9rZW5zIjo0MTQxLCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMTM6MDE6MjEuNjM3MjcwMzY3WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg4NTYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbWlzYy9lZXByb20vZWVwcm9tXzkzY3g2LmNcIixcbiAgXCJGaXJzdExpbmVcIjogMTQwLFxuICBcIkxpbmVDb3VudFwiOiA4MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMTQwOlxcdFxcdCAqIFN0YXJ0IHJlYWRpbmcgYWxsIGJpdHMuXFxuIDE0MTpcXHRcXHQgKi9cXG4gMTQyOlxcdFxcdGZvciAoaSA9IGNvdW50OyBpIFxcdTAwM2UgMDsgaS0tKSB7XFxuIDE0MzpcXHRcXHRcXHRlZXByb21fOTNjeDZfcHVsc2VfaGlnaChlZXByb20pO1xcbiAxNDQ6XFx0XFxuIDE0NTpcXHRcXHRcXHRlZXByb20tXFx1MDAzZXJlZ2lzdGVyX3JlYWQoZWVwcm9tKTtcXG4gMTQ2OlxcdFxcbiAxNDc6XFx0XFx0XFx0LypcXG4gMTQ4OlxcdFxcdFxcdCAqIENsZWFyIGRhdGFfaW4gZmxhZy5cXG4gMTQ5OlxcdFxcdFxcdCAqL1xcbiAxNTA6XFx0XFx0XFx0ZWVwcm9tLVxcdTAwM2VyZWdfZGF0YV9pbiA9IDA7XFxuIDE1MTpcXHRcXG4gMTUyOlxcdFxcdFxcdC8qXFxuIDE1MzpcXHRcXHRcXHQgKiBSZWFkIGlmIHRoZSBiaXQgaGFzIGJlZW4gc2V0LlxcbiAxNTQ6XFx0XFx0XFx0ICovXFxuIDE1NTpcXHRcXHRcXHRpZiAoZWVwcm9tLVxcdTAwM2VyZWdfZGF0YV9vdXQpXFxuIDE1NjpcXHRcXHRcXHRcXHRidWYgfD0gQklUKGkgLSAxKTtcXG4gMTU3OlxcdFxcbiAxNTg6XFx0XFx0XFx0ZWVwcm9tXzkzY3g2X3B1bHNlX2xvdyhlZXByb20pO1xcbiAxNTk6XFx0XFx0fVxcbiAxNjA6XFx0XFxuIDE2MTpcXHRcXHQqZGF0YSA9IGJ1ZjtcXG4gMTYyOlxcdH1cXG4gMTYzOlxcdFxcbiAxNjQ6XFx0LyoqXFxuIDE2NTpcXHQgKiBlZXByb21fOTNjeDZfcmVhZCAtIFJlYWQgYSB3b3JkIGZyb20gZWVwcm9tXFxuIDE2NjpcXHQgKiBAZWVwcm9tOiBQb2ludGVyIHRvIGVlcHJvbSBzdHJ1Y3R1cmVcXG4gMTY3OlxcdCAqIEB3b3JkOiBXb3JkIGluZGV4IGZyb20gd2hlcmUgd2Ugc2hvdWxkIHN0YXJ0IHJlYWRpbmdcXG4gMTY4OlxcdCAqIEBkYXRhOiB0YXJnZXQgcG9pbnRlciB3aGVyZSB0aGUgaW5mb3JtYXRpb24gd2lsbCBoYXZlIHRvIGJlIHN0b3JlZFxcbiAxNjk6XFx0ICpcXG4gMTcwOlxcdCAqIFRoaXMgZnVuY3Rpb24gd2lsbCByZWFkIHRoZSBlZXByb20gZGF0YSBhcyBob3N0LWVuZGlhbiB3b3JkXFxuIDE3MTpcXHQgKiBpbnRvIHRoZSBnaXZlbiBkYXRhIHBvaW50ZXIuXFxuIDE3MjpcXHQgKi9cXG4gMTczOlxcdHZvaWQgZWVwcm9tXzkzY3g2X3JlYWQoc3RydWN0IGVlcHJvbV85M2N4NiAqZWVwcm9tLCBjb25zdCB1OCB3b3JkLFxcbiAxNzQ6XFx0XFx0dTE2ICpkYXRhKVxcbiAxNzU6XFx0e1xcbiAxNzY6XFx0XFx0dTE2IGNvbW1hbmQ7XFxuIDE3NzpcXHRcXG4gMTc4OlxcdFxcdC8qXFxuIDE3OTpcXHRcXHQgKiBJbml0aWFsaXplIHRoZSBlZXByb20gcmVnaXN0ZXJcXG4gMTgwOlxcdFxcdCAqL1xcbiAxODE6XFx0XFx0ZWVwcm9tXzkzY3g2X3N0YXJ0dXAoZWVwcm9tKTtcXG4gMTgyOlxcdFxcbiAxODM6XFx0XFx0LypcXG4gMTg0OlxcdFxcdCAqIFNlbGVjdCB0aGUgcmVhZCBvcGNvZGUgYW5kIHRoZSB3b3JkIHRvIGJlIHJlYWQuXFxuIDE4NTpcXHRcXHQgKi9cXG4gMTg2OlxcdFxcdGNvbW1hbmQgPSAoUENJX0VFUFJPTV9SRUFEX09QQ09ERSBcXHUwMDNjXFx1MDAzYyBlZXByb20tXFx1MDAzZXdpZHRoKSB8IHdvcmQ7XFxuIDE4NzpcXHRcXHRlZXByb21fOTNjeDZfd3JpdGVfYml0cyhlZXByb20sIGNvbW1hbmQsXFxuIDE4ODpcXHRcXHRcXHRQQ0lfRUVQUk9NX1dJRFRIX09QQ09ERSArIGVlcHJvbS1cXHUwMDNld2lkdGgpO1xcbiAxODk6XFx0XFxuIDE5MDpcXHRcXHRpZiAoaGFzX3F1aXJrX2V4dHJhX3JlYWRfY3ljbGUoZWVwcm9tKSkge1xcbiAxOTE6XFx0XFx0XFx0ZWVwcm9tXzkzY3g2X3B1bHNlX2hpZ2goZWVwcm9tKTtcXG4gMTkyOlxcdFxcdFxcdGVlcHJvbV85M2N4Nl9wdWxzZV9sb3coZWVwcm9tKTtcXG4gMTkzOlxcdFxcdH1cXG4gMTk0OlxcdFxcbiAxOTU6XFx0XFx0LypcXG4gMTk2OlxcdFxcdCAqIFJlYWQgdGhlIHJlcXVlc3RlZCAxNiBiaXRzLlxcbiAxOTc6XFx0XFx0ICovXFxuIDE5ODpcXHRcXHRlZXByb21fOTNjeDZfcmVhZF9iaXRzKGVlcHJvbSwgZGF0YSwgMTYpO1xcbiAxOTk6XFx0XFxuIDIwMDpcXHRcXHQvKlxcbiAyMDE6XFx0XFx0ICogQ2xlYW51cCBlZXByb20gcmVnaXN0ZXIuXFxuIDIwMjpcXHRcXHQgKi9cXG4gMjAzOlxcdFxcdGVlcHJvbV85M2N4Nl9jbGVhbnVwKGVlcHJvbSk7XFxuIDIwNDpcXHR9XFxuIDIwNTpcXHRFWFBPUlRfU1lNQk9MX0dQTChlZXByb21fOTNjeDZfcmVhZCk7XFxuIDIwNjpcXHRcXG4gMjA3OlxcdC8qKlxcbiAyMDg6XFx0ICogZWVwcm9tXzkzY3g2X211bHRpcmVhZCAtIFJlYWQgbXVsdGlwbGUgd29yZHMgZnJvbSBlZXByb21cXG4gMjA5OlxcdCAqIEBlZXByb206IFBvaW50ZXIgdG8gZWVwcm9tIHN0cnVjdHVyZVxcbiAyMTA6XFx0ICogQHdvcmQ6IFdvcmQgaW5kZXggZnJvbSB3aGVyZSB3ZSBzaG91bGQgc3RhcnQgcmVhZGluZ1xcbiAyMTE6XFx0ICogQGRhdGE6IHRhcmdldCBwb2ludGVyIHdoZXJlIHRoZSBpbmZvcm1hdGlvbiB3aWxsIGhhdmUgdG8gYmUgc3RvcmVkXFxuIDIxMjpcXHQgKiBAd29yZHM6IE51bWJlciBvZiB3b3JkcyB0aGF0IHNob3VsZCBiZSByZWFkLlxcbiAyMTM6XFx0ICpcXG4gMjE0OlxcdCAqIFRoaXMgZnVuY3Rpb24gd2lsbCByZWFkIGFsbCByZXF1ZXN0ZWQgd29yZHMgZnJvbSB0aGUgZWVwcm9tLFxcbiAyMTU6XFx0ICogdGhpcyBpcyBkb25lIGJ5IGNhbGxpbmcgZWVwcm9tXzkzY3g2X3JlYWQoKSBtdWx0aXBsZSB0aW1lcy5cXG4gMjE2OlxcdCAqIEJ1dCB3aXRoIHRoZSBhZGRpdGlvbmFsIGNoYW5nZSB0aGF0IHdoaWxlIHRoZSBlZXByb21fOTNjeDZfcmVhZFxcbiAyMTc6XFx0ICogd2lsbCByZXR1cm4gaG9zdCBvcmRlcmVkIGJ5dGVzLCB0aGlzIG1ldGhvZCB3aWxsIHJldHVybiBsaXR0bGVcXG4gMjE4OlxcdCAqIGVuZGlhbiB3b3Jkcy5cXG4gMjE5OlxcdCAqL1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQxMzowMToyMS42MzczNjE3NDdaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjM3MDU1NDU4NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGaXhpbmcgYSBTdWJ0bGUgRUVQUk9NIEluaXRpYWxpemF0aW9uIEJ1ZyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYGVlcHJvbV85M2N4Nl9yZWFkYCBmdW5jdGlvbiwgYW5kIGl0IGNhbGxzIGBlZXByb21fOTNjeDZfc3RhcnR1cGAuICBSaWdodCwgdGhhdCBzZXRzIGFsbCB0aGUgY29udHJvbCByZWdpc3RlcnMgZm9yIHRoZSBFRVBST006IGBkYXRhX2luYCwgYGRhdGFfb3V0YCwgYGNsb2NrYCwgYGNoaXBfc2VsZWN0YCwgYW5kIGBkcml2ZV9kYXRhYC4gRXZlcnl0aGluZyBzZWVtcyBub3JtYWwgdGhlcmUuXG5cbkJ1dCB0aGVuLCBJIHNlZSB0aGlzIGBoYXNfcXVpcmtfZXh0cmFfcmVhZF9jeWNsZShlZXByb20pYCBjaGVjay4gIEl0J3MgY2hlY2tpbmcgdGhlIGBlZXByb20tXHUwMDNlcXVpcmtzYCBmaWVsZC4gSG1tLi4uIGlmIGBlZXByb20tXHUwMDNlcXVpcmtzYCB3YXNuJ3QgaW5pdGlhbGl6ZWQsIGl0IGNvdWxkIGNvbnRhaW4gZ2FyYmFnZSB2YWx1ZXMuIFRoYXQgY291bGQgbGVhZCBgaGFzX3F1aXJrX2V4dHJhX3JlYWRfY3ljbGVgIHRvIHJldHVybiB0cnVlIHdoZW4gaXQgc2hvdWxkbid0LiBBbmQgSSBiZXQgaXQgaGFzIVxuXG5BaCwgcmlnaHQsIG5vdyBJIHJlbWVtYmVyLiBUaGUgYHN0cnVjdCBlZXByb21fOTNjeDYgZWVwcm9tO2AgaXMgZGVjbGFyZWQgb24gdGhlIHN0YWNrLCB3aXRoaW4gdGhlIGBheF9pbml0X2RldmAgZnVuY3Rpb24uIFRoZSBjb21waWxlciB3b24ndCBpbml0aWFsaXplIGl0LCBzbyBpdCdsbCBoYXZlIHdoYXRldmVyIGdhcmJhZ2Ugd2FzIGFscmVhZHkgdGhlcmUhIEFuZCB0aGUgYHF1aXJrc2AgZmllbGQgd2l0aGluIGBlZXByb21gIHdvdWxkIGhhdmUgYmVlbiB1bmluaXRpYWxpemVkLlxuXG5UaGUgc29sdXRpb24gaXMgc2ltcGxlLiBVc2luZyBhIGRlc2lnbmF0ZWQgaW5pdGlhbGl6ZXIsIEkgY2FuIGV4cGxpY2l0bHkgemVyby1pbml0aWFsaXplIGBlZXByb20ucXVpcmtzYC4gVGhpcyBndWFyYW50ZWVzIHRoYXQgYHF1aXJrc2Agd2lsbCBzdGFydCBhdCB6ZXJvLCBmaXhpbmcgdGhpcyBwb3RlbnRpYWwgYnVnLiBUaGlzIGlzIGdyZWF0LCBubyBtb3JlIHJhbmRvbSByZWFkcy5cblxuTm93LCBJIHdvbmRlciBpZiB0aGUgYGF4ODg3OTZgIGRyaXZlciwgdGhlIG9uZSB0aGF0IHVzZXMgdGhpcyBjb2RlLCBpcyBhIGNhbmRpZGF0ZSBmb3IgZnV6emluZy4gSXQncyBhbiBJU0EvcGxhdGZvcm0gZHJpdmVyLCBzbyBpdCBjb3VsZCBiZS4gTGV0IG1lIGNoZWNrIHRoZSBzb3VyY2UgY29kZSBpbiBgYXg4ODc5Ni5jYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTc0OCwiT3V0cHV0VG9rZW5zIjo0NiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4OSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDEzOjAxOjI4LjAwNzkxOTg5MloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTExMjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmNcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogNTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHQvKiBkcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuY1xcbiAgIDM6XFx0ICpcXG4gICA0OlxcdCAqIENvcHlyaWdodCAyMDA1LDIwMDcgU2ltdGVjIEVsZWN0cm9uaWNzXFxuICAgNTpcXHQgKlxcdEJlbiBEb29rcyBcXHUwMDNjYmVuQHNpbXRlYy5jby51a1xcdTAwM2VcXG4gICA2OlxcdCAqXFxuICAgNzpcXHQgKiBBc2l4IEFYODg3OTYgMTAvMTAwIEV0aGVybmV0IGNvbnRyb2xsZXIgc3VwcG9ydFxcbiAgIDg6XFx0ICpcXHRCYXNlZCBvbiBuZS5jLCBieSBEb25hbGQgQmVja2VyLCBldC1hbC5cXG4gICA5OlxcdCAqL1xcbiAgMTA6XFx0XFxuICAxMTpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvbW9kdWxlLmhcXHUwMDNlXFxuICAxMjpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgva2VybmVsLmhcXHUwMDNlXFxuICAxMzpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvZXJybm8uaFxcdTAwM2VcXG4gIDE0OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9pc2FwbnAuaFxcdTAwM2VcXG4gIDE1OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9pbnRlcnJ1cHQuaFxcdTAwM2VcXG4gIDE2OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9pby5oXFx1MDAzZVxcbiAgMTc6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3BsYXRmb3JtX2RldmljZS5oXFx1MDAzZVxcbiAgMTg6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2RlbGF5LmhcXHUwMDNlXFxuICAxOTpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvdGltZXIuaFxcdTAwM2VcXG4gIDIwOlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9uZXRkZXZpY2UuaFxcdTAwM2VcXG4gIDIxOlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9ldGhlcmRldmljZS5oXFx1MDAzZVxcbiAgMjI6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2V0aHRvb2wuaFxcdTAwM2VcXG4gIDIzOlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9tZGlvLWJpdGJhbmcuaFxcdTAwM2VcXG4gIDI0OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9waHkuaFxcdTAwM2VcXG4gIDI1OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9lZXByb21fOTNjeDYuaFxcdTAwM2VcXG4gIDI2OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9zbGFiLmhcXHUwMDNlXFxuICAyNzpcXHRcXG4gIDI4OlxcdCNpbmNsdWRlIFxcdTAwM2NuZXQvYXg4ODc5Ni5oXFx1MDAzZVxcbiAgMjk6XFx0XFxuICAzMDpcXHRcXG4gIDMxOlxcdC8qIFJlbmFtZSB0aGUgbGliODM5MC5jIGZ1bmN0aW9ucyB0byBzaG93IHRoYXQgdGhleSBhcmUgaW4gdGhpcyBkcml2ZXIgKi9cXG4gIDMyOlxcdCNkZWZpbmUgX19laV9vcGVuIGF4X2VpX29wZW5cXG4gIDMzOlxcdCNkZWZpbmUgX19laV9jbG9zZSBheF9laV9jbG9zZVxcbiAgMzQ6XFx0I2RlZmluZSBfX2VpX3BvbGwgYXhfZWlfcG9sbFxcbiAgMzU6XFx0I2RlZmluZSBfX2VpX3N0YXJ0X3htaXQgYXhfZWlfc3RhcnRfeG1pdFxcbiAgMzY6XFx0I2RlZmluZSBfX2VpX3R4X3RpbWVvdXQgYXhfZWlfdHhfdGltZW91dFxcbiAgMzc6XFx0I2RlZmluZSBfX2VpX2dldF9zdGF0cyBheF9laV9nZXRfc3RhdHNcXG4gIDM4OlxcdCNkZWZpbmUgX19laV9zZXRfbXVsdGljYXN0X2xpc3QgYXhfZWlfc2V0X211bHRpY2FzdF9saXN0XFxuICAzOTpcXHQjZGVmaW5lIF9fZWlfaW50ZXJydXB0IGF4X2VpX2ludGVycnVwdFxcbiAgNDA6XFx0I2RlZmluZSBfX19fYWxsb2NfZWlfbmV0ZGV2IGF4X19hbGxvY19laV9uZXRkZXZcXG4gIDQxOlxcdCNkZWZpbmUgX19OUzgzOTBfaW5pdCBheF9OUzgzOTBfaW5pdFxcbiAgNDI6XFx0XFxuICA0MzpcXHQvKiBmb3JjZSB1bnNpZ25lZCBsb25nIGJhY2sgdG8gJ3ZvaWQgX19pb21lbSAqJyAqL1xcbiAgNDQ6XFx0I2RlZmluZSBheF9jb252ZXJ0X2FkZHIoX2EpICgodm9pZCBfX2ZvcmNlIF9faW9tZW0gKikoX2EpKVxcbiAgNDU6XFx0XFxuICA0NjpcXHQjZGVmaW5lIGVpX2luYihfYSkgcmVhZGIoYXhfY29udmVydF9hZGRyKF9hKSlcXG4gIDQ3OlxcdCNkZWZpbmUgZWlfb3V0YihfdiwgX2EpIHdyaXRlYihfdiwgYXhfY29udmVydF9hZGRyKF9hKSlcXG4gIDQ4OlxcdFxcbiAgNDk6XFx0I2RlZmluZSBlaV9pbmJfcChfYSkgZWlfaW5iKF9hKVxcbiAgNTA6XFx0I2RlZmluZSBlaV9vdXRiX3AoX3YsIF9hKSBlaV9vdXRiKF92LCBfYSlcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMTM6MDE6MjguMDA4MDMyNjgyWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyODUxMzk2NzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCBtZSBicmVhayB0aGlzIGRvd24uXG5cbioqRnV6emluZyBhIFBsYXRmb3JtIERldmljZSBEcml2ZXIqKlxuXG5SaWdodCwgc28gdGhpcyBjb2RlIGlzIGRlZmluaXRlbHkgYSBwbGF0Zm9ybSBkZXZpY2UgZHJpdmVyLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgXCJDYW4gdGhpcyBiZSBmdXp6ZWQgZWZmZWN0aXZlbHk/XCIgVGhlIGFuc3dlciwgYXMgSSB1bmRlcnN0YW5kIGl0LCBpcyB5ZXMuIFdlIGNhbiBsZXZlcmFnZSB0b29scyBsaWtlIFN5emthbGxlci4gSXQgY2FuIGNyZWF0ZSBwbGF0Zm9ybSBkZXZpY2VzIGZvciB1cywgbGlrZWx5IHVzaW5nIGBzeXpfZGV2X2NyZWF0ZWAgb3Igc29tZXRoaW5nIGFuYWxvZ291cy4gSWYgdGhlIHRhcmdldCBwbGF0Zm9ybSBzdXBwb3J0cyBpbmplY3Rpb24sIGV2ZW4gYmV0dGVyLCB3ZSBoYXZlIG1vcmUgY29udHJvbC5cblxuVGhlbiBJIHF1aWNrbHkgcmVhbGl6ZWQsIEkgbmVlZCB0byBjaGVjayBob3cgdGhlIHBsYXRmb3JtIGRldmljZSBpbnRlcmFjdHMgd2l0aCB0aGUgc3lzdGVtLiBJIHJlbWVtYmVyIHRoYXQgYGF4X2luaXRfZGV2YCBnZXRzIGNhbGxlZCBmcm9tIGBheF9wcm9iZWAuIE9rYXksIHRoYXQncyB0aGUgaW5pdGlhbGl6YXRpb24sIHNvIEkgbmVlZCB0byBmb2N1cyBvbiB3aGF0IGhhcHBlbnMgd2l0aGluIHRob3NlIGZ1bmN0aW9ucyB3aGVuIGRlc2lnbmluZyBteSBmdXp6aW5nIGFwcHJvYWNoLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3MzMwLCJPdXRwdXRUb2tlbnMiOjE5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjcsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQxMzowMTozMS4yOTMxNzUzNVoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjAwMzkxNzc2OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJheF9pbml0X2RldlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYz02NjA9c3RhdGljIHZvaWQgYXhfaW5pdGlhbF9zZXR1cChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgZWlfZGV2aWNlICplaV9sb2NhbClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTY3My0vKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjY3NDogKiBheF9pbml0X2RldlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTY3NS0gKlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtNjgwLSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjY4MTpzdGF0aWMgaW50IGF4X2luaXRfZGV2KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtNjgyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jPTg0ND1zdGF0aWMgaW50IGF4X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy05NDQtXFx0LyogZ290IHJlc291cmNlcywgbm93IGluaXRpYWxpc2UgYW5kIHJlZ2lzdGVyIGRldmljZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjk0NTpcXHRyZXQgPSBheF9pbml0X2RldihkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTk0Ni1cXHRpZiAoIXJldClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMTM6MDE6MzMuMjk3MDk4ODg5WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1NDEwNzY1MjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi5cblxuKipJbml0aWFsIEFzc2Vzc21lbnQgb2YgYSBEcml2ZXIgUGF0Y2gqKlxuXG5SaWdodCwgc28gYGF4X2luaXRfZGV2YCBpcyBjYWxsZWQgd2l0aGluIHRoZSBwcm9iZSBmdW5jdGlvbi4gVGhhdCdzIGEgZ29vZCBwbGFjZSB0byBzdGFydCwgaXQncyB0aGUgaW5pdGlhbGl6YXRpb24gcGhhc2UuIFRoZSBwYXRjaCwgc3BlY2lmaWNhbGx5LCBpcyBhZGRyZXNzaW5nIGFuIHVuaW5pdGlhbGl6ZWQgc3RhY2sgdmFyaWFibGUuIE15IGluaXRpYWwgcmVhY3Rpb24gaXMsICp5ZXMqLCB0aGF0J3Mgc29tZXRoaW5nIHRvIHBheSBhdHRlbnRpb24gdG8uIFVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzIGFyZSBhIGNsYXNzaWMgc291cmNlIG9mIHByb2JsZW1zLCBhbmQgdGhleSBjYW4gbGVhZCB0byBzb21lIHJlYWxseSBuYXN0eSwgaGFyZC10by1kZWJ1ZyBiZWhhdmlvciwgZXNwZWNpYWxseSBpbiBhIGRyaXZlci5cblxuVGhlIG5leHQgcXVlc3Rpb246IGlzIGl0IHdvcnRoIGZ1enppbmcgdGhpcz8gQWJzb2x1dGVseSwgaW4gdGhpcyBjYXNlLiBGaXhpbmcgYSBidWcgaW4gdGhlIHByb2JlIHBhdGggb2YgYSBkcml2ZXIgaXMgc2lnbmlmaWNhbnQuIEl0J3MgYSBoaWdoLXZhbHVlIHRhcmdldCBmb3IgZnV6emluZyBiZWNhdXNlIGl0IGNhbiB1bmNvdmVyIGEgdmFyaWV0eSBvZiBtZW1vcnktcmVsYXRlZCBpc3N1ZXMsIHJhY2UgY29uZGl0aW9ucywgb3Igb3RoZXIgdW5leHBlY3RlZCBiZWhhdmlvcnMgdGhhdCBzdGVtIGZyb20gdW5pbml0aWFsaXplZCB2YXJpYWJsZXMuXG5cbkFscmlnaHQsIG5vdyBsZXQgbWUgY2hlY2sgdGhlIHJlbGV2YW50IEtjb25maWcgb3B0aW9uczogYEFYODg3OTZfOTNDWDZgIGFuZCBgQVg4ODc5NmAuIEkgd2FudCB0byB1bmRlcnN0YW5kIHRoZSBjb25maWd1cmF0aW9uIHNwYWNlIG9mIHRoZSBkcml2ZXIgYW5kIGl0cyBkZXBlbmRlbmNpZXMuIFRoaXMgaW5mb3JtYXRpb24gd2lsbCBpbmZvcm0gbXkgZnV6emluZyBzdHJhdGVneSBieSBoZWxwaW5nIG1lIGRldGVybWluZSB3aGljaCBidWlsZCBjb25maWd1cmF0aW9ucyBhcmUgdGhlIG1vc3QgaW1wb3J0YW50IGFuZCBob3cgdGhlIG5ldyBwYXRjaCB3aWxsIGltcGFjdCBkaWZmZXJlbnQgc3lzdGVtcy5cblxuXG4iLCJJbnB1dFRva2VucyI6Nzk3NywiT3V0cHV0VG9rZW5zIjoyMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDEzOjAxOjM2LjgzODE3Nzc2NVoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjIwNzI0MTA2MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQVg4ODc5NlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL0tjb25maWc9MTg9aWYgTkVUX1ZFTkRPUl84MzkwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9LY29uZmlnLTE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvS2NvbmZpZzoyMDpjb25maWcgQVg4ODc5NlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZSBcXFwiQVNJWCBBWDg4Nzk2IE5FMjAwMCBjbG9uZSBzdXBwb3J0XFxcIiBpZiAhWk9SUk9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvS2NvbmZpZy0yOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL0tjb25maWc6MzA6Y29uZmlnIEFYODg3OTZfOTNDWDZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL0tjb25maWctMzEtXFx0Ym9vbCBcXFwiQVNJWCBBWDg4Nzk2IGV4dGVybmFsIDkzQ1g2IGVlcHJvbSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L0tjb25maWc9MTUyPXNvdXJjZSBcXFwiZHJpdmVycy9uZXQvcGh5L2FxdWFudGlhL0tjb25maWdcXFwiXFxuZHJpdmVycy9uZXQvcGh5L0tjb25maWctMTUzLVxcbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnOjE1NDpjb25maWcgQVg4ODc5NkJfUEhZXFxuZHJpdmVycy9uZXQvcGh5L0tjb25maWctMTU1LVxcdHRyaXN0YXRlIFxcXCJBc2l4IFBIWXNcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvS2NvbmZpZy0xNTktXFxuZHJpdmVycy9uZXQvcGh5L0tjb25maWc6MTYwOmNvbmZpZyBBWDg4Nzk2Ql9SVVNUX1BIWVxcbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnLTE2MS1cXHRib29sIFxcXCJSdXN0IHJlZmVyZW5jZSBkcml2ZXIgZm9yIEFzaXggUEhZc1xcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMTM6MDE6MzkuMDQ1NDI1NDk2WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5NTc5Njg3NTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRGVwZW5kZW5jeSBEZWVwIERpdmUqKlxuXG5Pa2F5LCB0aW1lIHRvIGdldCBncmFudWxhci4gVGhlIHRhc2sgaXMgY2xlYXI6IEkgbmVlZCB0byBkaXNzZWN0IHRoZSBkZXBlbmRlbmNpZXMgb2YgYEFYODg3OTZgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gaW1tZWRpYXRlbHkgZGl2ZSBpbnRvIHRoZSBtYW5pZmVzdCBmaWxlcywgb2YgY291cnNlLiBJJ2xsIG5lZWQgdG8gbWFwIG91dCB0aGUgZW50aXJlIGRlcGVuZGVuY3kgZ3JhcGgsIGZyb20gZGlyZWN0IGRlcGVuZGVuY2llcyB0byB0cmFuc2l0aXZlIG9uZXMsIGJlY2F1c2UgaGlkZGVuIGRlcGVuZGVuY2llcyBhcmUgdGhlIG9uZXMgdGhhdCB1c3VhbGx5IGJpdGUgeW91IGxhdGVyLCB5b3Uga25vdz8gTXkgZ3V0IHRlbGxzIG1lIHRoZXJlIG1pZ2h0IGJlIHNvbWUgY29tcGxleGl0aWVzIHdpdGggaXRzIHBhY2thZ2UgZm9ybWF0LCBzbyBJIHdpbGwgd2F0Y2ggZm9yIGFueXRoaW5nIG91dCBvZiB0aGUgb3JkaW5hcnkgcmlnaHQgYXdheS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaWYgdGhlcmUgYXJlIGFueSB2ZXJzaW9uIGNvbmZsaWN0cyBvciBwb3RlbnRpYWwgc2VjdXJpdHkgdnVsbmVyYWJpbGl0aWVzIGx1cmtpbmcgd2l0aGluIHRoaXMgZGVwZW5kZW5jeSBjaGFpbi4gVGhlIG1vcmUgSSBsZWFybiB1cCBmcm9udCwgdGhlIGJldHRlciBteSB1bmRlcnN0YW5kaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4NzE4LCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMTM6MDE6NDIuMDAzMzk2NDQyWiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcwMDIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxOCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAxODpcXHRpZiBORVRfVkVORE9SXzgzOTBcXG4gIDE5OlxcdFxcbiAgMjA6XFx0Y29uZmlnIEFYODg3OTZcXG4gIDIxOlxcdFxcdHRyaXN0YXRlIFxcXCJBU0lYIEFYODg3OTYgTkUyMDAwIGNsb25lIHN1cHBvcnRcXFwiIGlmICFaT1JST1xcbiAgMjI6XFx0XFx0ZGVwZW5kcyBvbiAoQVJNIHx8IE1JUFMgfHwgU1VQRVJIIHx8IFpPUlJPIHx8IENPTVBJTEVfVEVTVClcXG4gIDIzOlxcdFxcdHNlbGVjdCBDUkMzMlxcbiAgMjQ6XFx0XFx0c2VsZWN0IFBIWUxJQlxcbiAgMjU6XFx0XFx0c2VsZWN0IE1ESU9fQklUQkFOR1xcbiAgMjY6XFx0XFx0aGVscFxcbiAgMjc6XFx0XFx0ICBBWDg4Nzk2IGRyaXZlciwgdXNpbmcgcGxhdGZvcm0gYnVzIHRvIHByb3ZpZGVcXG4gIDI4OlxcdFxcdCAgY2hpcCBkZXRlY3Rpb24gYW5kIHJlc291cmNlc1xcbiAgMjk6XFx0XFxuICAzMDpcXHRjb25maWcgQVg4ODc5Nl85M0NYNlxcbiAgMzE6XFx0XFx0Ym9vbCBcXFwiQVNJWCBBWDg4Nzk2IGV4dGVybmFsIDkzQ1g2IGVlcHJvbSBzdXBwb3J0XFxcIlxcbiAgMzI6XFx0XFx0ZGVwZW5kcyBvbiBBWDg4Nzk2XFxuICAzMzpcXHRcXHRzZWxlY3QgRUVQUk9NXzkzQ1g2XFxuICAzNDpcXHRcXHRoZWxwXFxuICAzNTpcXHRcXHQgIFNlbGVjdCB0aGlzIGlmIHlvdXIgcGxhdGZvcm0gY29tZXMgd2l0aCBhbiBleHRlcm5hbCA5M0NYNiBlZXByb20uXFxuICAzNjpcXHRcXG4gIDM3OlxcdGNvbmZpZyBYU1VSRjEwMFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQxMzowMTo0Mi4wMDM0NjgxNTJaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjMwMDQ5MjQ0OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEZ1enppbmcgUG90ZW50aWFsIG9mIHRoZSBBWDg4Nzk2IE5ldHdvcmsgRHJpdmVyIGluIFN5emthbGxlcioqXG5cbk9rYXksIHNvIEknbSBkaWdnaW5nIGludG8gaG93IHdlIGNhbiBwb3RlbnRpYWxseSBmdXp6IHRoZSBgQVg4ODc5NmAgbmV0d29yayBkcml2ZXIgdXNpbmcgU3l6a2FsbGVyLiBJdCBsb29rcyBsaWtlIGBBWDg4Nzk2YCByZWxpZXMgb24gYm90aCBgTkVUX1ZFTkRPUl84MzkwYCBhbmQgYSBmZXcgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIG9wdGlvbnM6IGBBUk1gLCBgTUlQU2AsIGBTVVBFUkhgLCBgWk9SUk9gLCBvciBgQ09NUElMRV9URVNUYC4gR2l2ZW4gdGhhdCBTeXprYWxsZXIgaXMgcnVubmluZyBvbiB4ODZfNjQsIGBDT01QSUxFX1RFU1RgIHNlZW1zIG5lY2Vzc2FyeSB0byBldmVuIGNvbXBpbGUgdGhlIGRyaXZlciwgYnV0IHRoZSByZWFsIHF1ZXN0aW9uIGlzIHdoZXRoZXIgaXQgY2FuIGJlIG1lYW5pbmdmdWxseSBcInByb2JlZC5cIlxuXG5XYWl0IGEgbWludXRlLCB0aGUgYGF4ODg3OTZgIGRyaXZlciBpcyBhY3R1YWxseSBhICpwbGF0Zm9ybSogZHJpdmVyLiBUaGF0IGNoYW5nZXMgdGhpbmdzLiBQbGF0Zm9ybSBkcml2ZXJzIGFyZSB0eXBpY2FsbHkgcHJvYmVkIGlmIGEgcGxhdGZvcm0gZGV2aWNlIGlzIGNyZWF0ZWQgaW4gdGhlIHN5c3RlbS4gSSB3YXMgaW5pdGlhbGx5IHRoaW5raW5nIGFib3V0IGBzeXpfZGV2X2NyZWF0ZWAg4oCTIHRoYXQgcHNldWRvLXN5c2NhbGwgbWlnaHQgaGF2ZSBiZWVuIHVzZWZ1bCB0byBjcmVhdGUgYSBkZXZpY2Ugb24gdGhlIGZseSwgYnV0IEkgcmVtZW1iZXIgdGhhdCdzIG1vcmUgbGltaXRlZCBpbiBzY29wZSwgYW5kIG5vdCB0aGUgcmlnaHQgYXBwcm9hY2ggaGVyZS4gQ291bGQgSSBtYXliZSBsZXZlcmFnZSBgc3l6X2dlbmV0bGlua19nZXRfZmFtaWx5YCB0byBpbmplY3QgYSBwbGF0Zm9ybSBkZXZpY2U/IE5vLCB0aGF0J3MgZ2VuZXJhbGx5IG5vdCBob3cgcGxhdGZvcm0gZGV2aWNlcyBhcmUgaGFuZGxlZC4gVGhleSdyZSB1c3VhbGx5IGNyZWF0ZWQgdmlhIHRoZSBkZXZpY2UgdHJlZSBvciB0aGUgYm9hcmQgY29kZS5cblxuT2theSwgbGV0J3MgcmVjYWxpYnJhdGUuIERvZXMgU3l6a2FsbGVyIGhhdmUgYSBwc2V1ZG8tc3lzY2FsbCBsaWtlIGBzeXpfcGxhdGZvcm1fZGV2aWNlX2FkZGAgdGhhdCBJJ20gZm9yZ2V0dGluZyBhYm91dD8gTm8sIHRoYXQncyBub3QgcmluZ2luZyBhbnkgYmVsbHMuIEl0IGxvb2tzIGxpa2UgdGhlIG9ubHkgcmVhbGlzdGljIHJvdXRlIGlzIGlmIHRoZSBwbGF0Zm9ybSBkcml2ZXIgaXMgKmFscmVhZHkqIHJlZ2lzdGVyZWQgaW4gdGhlIGtlcm5lbCBhbmQgdGhlcmUncyBhIG1lY2hhbmlzbSBpbiB0aGUga2VybmVsIHRvIHRyaWdnZXIgaXRzIHByb2JlIGZ1bmN0aW9uLiBUaGUga2V5IHF1ZXN0aW9uIGlzIHdoZXRoZXIgU3l6a2FsbGVyIGNhbiBzb21laG93IHRyaWdnZXIgdGhhdCBwcm9iZSBmb3IgYGF4ODg3OTZgLlxuXG5TbywgdGhlIG5leHQgc3RlcCBpcyBkZWZpbml0ZWx5IHRvIHNlZSBpZiB0aGVyZSdzIGFueSBleGlzdGluZyBTeXprYWxsZXIgZGVzY3JpcHRpb24sIG9yIGlmIHNvbWVvbmUgaGFzIGFscmVhZHkgdGhvdWdodCBhYm91dCBhbmQgcG90ZW50aWFsbHkgaW1wbGVtZW50ZWQgZnV6emluZyBmb3IgYGF4ODg3OTZgLiBUaGF0IHNob3VsZCB0ZWxsIG1lIGlmIHRoZXJlJ3MgYSBwcmFjdGljYWwgcGF0aCBmb3J3YXJkIG9yIGlmIHNvbWUgc2lnbmlmaWNhbnQga2VybmVsIGNoYW5nZXMgb3IgbmV3IHBzZXVkby1zeXNjYWxscyB3b3VsZCBiZSBuZWVkZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjkyMzYsIk91dHB1dFRva2VucyI6MjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyODgsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQxMzowMTo0OC4zMDM5NjI5MDFaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4NTMwODI5NjEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXg4ODc5NlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDcxMyBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWwtMy0tLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvbmV0L2FzaXgsYXg4ODc5NmMueWFtbCNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbC01LSRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sI1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWw9MjQ9cHJvcGVydGllczpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbC0yNS0gIGNvbXBhdGlibGU6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWw6MjY6ICAgIGNvbnN0OiBhc2l4LGF4ODg3OTZjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWwtMjctXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbD01Nj1leGFtcGxlczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sLTY1LSAgICAgICAgZXRoZXJuZXRAMCB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWw6NjY6ICAgICAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJhc2l4LGF4ODg3OTZjXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbC02Ny0gICAgICAgICAgICByZWcgPSBcXHUwMDNjMHgwXFx1MDAzZTtcXG4tLVxcbk1BSU5UQUlORVJTPTQwMDE9UzpcXHRNYWludGFpbmVkXFxuTUFJTlRBSU5FUlM6NDAwMjpGOlxcdERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sXFxuTUFJTlRBSU5FUlM6NDAwMzpGOlxcdGRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfKlxcbk1BSU5UQUlORVJTLTQwMDQtXFxuLS1cXG5NQUlOVEFJTkVSUz00MDEwPVM6XFx0TWFpbnRhaW5lZFxcbk1BSU5UQUlORVJTOjQwMTE6RjpcXHRkcml2ZXJzL25ldC9waHkvYXg4ODc5NmJfcnVzdC5yc1xcbk1BSU5UQUlORVJTLTQwMTItXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9zYW1zdW5nL2V4eW5vczMyNTAtYXJ0aWs1LWV2YWwuZHRzPTU2PVxcdGV0aGVybmV0QDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL3NhbXN1bmcvZXh5bm9zMzI1MC1hcnRpazUtZXZhbC5kdHM6NTc6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJhc2l4LGF4ODg3OTZjXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9zYW1zdW5nL2V4eW5vczMyNTAtYXJ0aWs1LWV2YWwuZHRzLTU4LVxcdFxcdHJlZyA9IFxcdTAwM2MweDBcXHUwMDNlO1xcbi0tXFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMjQtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2Nsa2Rldi5oXFx1MDAzZVxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jOjI1OiNpbmNsdWRlIFxcdTAwM2NuZXQvYXg4ODc5Ni5oXFx1MDAzZVxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTI2LSNpbmNsdWRlIFxcdTAwM2Nhc20vbWFjaHZlYy5oXFx1MDAzZVxcbi0tXFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmM9MTQzPXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGhlYXJ0YmVhdF9kZXZpY2UgPSB7XFxuLS1cXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0xNTYtXFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmM6MTU3OnN0YXRpYyBzdHJ1Y3QgYXhfcGxhdF9kYXRhIGF4ODg3OTZfcGxhdGRhdGEgPSB7XFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMTU4LVxcdC5mbGFncyAgICAgICAgICA9IEFYRkxHX0hBU185M0NYNixcXG4tLVxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE2My1cXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYzoxNjQ6c3RhdGljIHN0cnVjdCByZXNvdXJjZSBheDg4Nzk2X3Jlc291cmNlc1tdID0ge1xcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE2NS1cXHR7XFxuLS1cXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0xODEtXFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmM6MTgyOnN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGF4ODg3OTZfZGV2aWNlID0ge1xcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jOjE4MzpcXHQubmFtZSAgICAgICAgICAgPSBcXFwiYXg4ODc5NlxcXCIsXFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMTg0LVxcdC5pZCAgICAgICAgICAgICA9IDAsXFxuLS1cXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0xODYtXFx0LmRldiAgICA9IHtcXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYzoxODc6XFx0XFx0LnBsYXRmb3JtX2RhdGEgPSBcXHUwMDI2YXg4ODc5Nl9wbGF0ZGF0YSxcXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0xODgtXFx0fSxcXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0xODktXFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmM6MTkwOlxcdC5udW1fcmVzb3VyY2VzICA9IEFSUkFZX1NJWkUoYXg4ODc5Nl9yZXNvdXJjZXMpLFxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jOjE5MTpcXHQucmVzb3VyY2UgICAgICAgPSBheDg4Nzk2X3Jlc291cmNlcyxcXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0xOTItfTtcXG4tLVxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jPTI2Nz1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcjc3ODBycF9kZXZpY2VzW10gX19pbml0ZGF0YSA9IHtcXG4tLVxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTI3My0jaWZuZGVmIENPTkZJR19TSF9SNzc4MFJQXFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmM6Mjc0OlxcdFxcdTAwMjZheDg4Nzk2X2RldmljZSxcXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0yNzUtI2VuZGlmXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL01ha2VmaWxlPTg9b2JqLSQoQ09ORklHX0FSTV9FVEhFUkgpICs9IGV0aGVyaC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9NYWtlZmlsZTo5Om9iai0kKENPTkZJR19BWDg4Nzk2KSArPSBheDg4Nzk2Lm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL01ha2VmaWxlLTEwLW9iai0kKENPTkZJR19IWURSQSkgKz0gaHlkcmEub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtMS0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM6MjovKiBkcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuY1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTMtICpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTI3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjI4OiNpbmNsdWRlIFxcdTAwM2NuZXQvYXg4ODc5Ni5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTI5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtNTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM6NTg6c3RhdGljIHVuc2lnbmVkIGNoYXIgdmVyc2lvbltdID0gXFxcImF4ODg3OTYuYzogQ29weXJpZ2h0IDIwMDUsMjAwNyBTaW10ZWMgRWxlY3Ryb25pY3NcXFxcblxcXCI7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtNTktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy02MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYzo2MjojZGVmaW5lIERSVl9OQU1FIFxcXCJheDg4Nzk2XFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTYzLSNkZWZpbmUgRFJWX1ZFUlNJT04gXFxcIjEuMDBcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYz0xNDY9c3RhdGljIHZvaWQgYXhfcmVzZXRfODM5MChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtMTcxLSAqIHdheSB0byBmaW5kIG91dCB3aGV0aGVyIHRoZSBpbnRlcnJ1cHQgcmVxdWVzdCBtaWdodCBiZSBjYXVzZWQgYnlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYzoxNzI6ICogdGhlIGF4ODg3OTYgY2hpcC5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy0xNzMtICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYz00NTk9c3RhdGljIGludCBheF9taWlfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtNDczLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjQ3NDpcXHRheC1cXHUwMDNlbWlpX2J1cy1cXHUwMDNlbmFtZSA9IFxcXCJheDg4Nzk2X21paV9idXNcXFwiO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTQ3NS1cXHRheC1cXHUwMDNlbWlpX2J1cy1cXHUwMDNlcGFyZW50ID0gZGV2LVxcdTAwM2VkZXYucGFyZW50O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM9MTAwNz1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBheGRydiA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy0xMDA4LVxcdC5kcml2ZXJcXHQ9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYzoxMDA5OlxcdFxcdC5uYW1lXFx0XFx0PSBcXFwiYXg4ODc5NlxcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtMTAxMC1cXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM9MTAyMT1NT0RVTEVfTElDRU5TRShcXFwiR1BMIHYyXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM6MTAyMjpNT0RVTEVfQUxJQVMoXFxcInBsYXRmb3JtOmF4ODg3OTZcXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy01LSNpbmNsdWRlIFxcdTAwM2NsaW51eC96b3Jyby5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzo2OiNpbmNsdWRlIFxcdTAwM2NuZXQvYXg4ODc5Ni5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy03LSNpbmNsdWRlIFxcdTAwM2Nhc20vYW1pZ2FpbnRzLmhcXHUwMDNlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM9MjM5PXN0YXRpYyBpbnQgeHN1cmYxMDBfcHJvYmUoc3RydWN0IHpvcnJvX2RldiAqemRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0yNDItXFx0c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MjQzOlxcdHN0cnVjdCB4c3VyZjEwMF9heF9wbGF0X2RhdGEgYXg4ODc5Nl9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0yNDQtXFx0c3RydWN0IHJlc291cmNlIHJlc1syXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0yNTctXFx0LyogWC1TdXJmIDEwMCBjb250cm9sIGFuZCAzMiBiaXQgcmluZyBidWZmZXIgZGF0YSBhY2Nlc3MgYXJlYXMuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI1ODpcXHQgKiBUaGVzZSByZXNvdXJjZXMgYXJlIG5vdCB1c2VkIGJ5IHRoZSBheDg4Nzk2IGRyaXZlciwgc28gbXVzdFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0yNTktXFx0ICogYmUgcmVxdWVzdGVkIGhlcmUgYW5kIHBhc3NlZCB2aWEgcGxhdGZvcm0gZGF0YS5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0yNzgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI3OTpcXHRtZW1zZXQoXFx1MDAyNmF4ODg3OTZfZGF0YSwgMCwgc2l6ZW9mKGF4ODg3OTZfZGF0YSkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzoyODA6XFx0YXg4ODc5Nl9kYXRhLmF4LmZsYWdzID0gQVhGTEdfSEFTX0VFUFJPTTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MjgxOlxcdGF4ODg3OTZfZGF0YS5heC53b3JkbGVuZ3RoID0gMjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MjgyOlxcdGF4ODg3OTZfZGF0YS5heC5kY3JfdmFsID0gMHg0ODtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MjgzOlxcdGF4ODg3OTZfZGF0YS5heC5yY3JfdmFsID0gMHg0MDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6Mjg0OlxcdGF4ODg3OTZfZGF0YS5heC5yZWdfb2Zmc2V0cyA9IHJlZ19vZmZzZXRzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzoyODU6XFx0YXg4ODc5Nl9kYXRhLmF4LmNoZWNrX2lycSA9IGlzX3hzdXJmMTAwX25ldHdvcmtfaXJxO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzoyODY6XFx0YXg4ODc5Nl9kYXRhLmJhc2VfcmVncyA9IGlvcmVtYXAoemRldi1cXHUwMDNlcmVzb3VyY2Uuc3RhcnQsIDB4MTAwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMjg3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0yODgtXFx0LyogZXJyb3IgaGFuZGxpbmcgZm9yIGlvcmVtYXAgcmVncyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzoyODk6XFx0aWYgKCFheDg4Nzk2X2RhdGEuYmFzZV9yZWdzKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI5MC1cXHRcXHRkZXZfZXJyKFxcdTAwMjZ6ZGV2LVxcdTAwM2VkZXYsIFxcXCJDYW5ub3QgaW9yZW1hcCBhcmVhICVwUiAocmVnaXN0ZXJzKVxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0yOTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI5NzpcXHRheDg4Nzk2X2RhdGEuZGF0YV9hcmVhID0gaW9yZW1hcCh6ZGV2LVxcdTAwM2VyZXNvdXJjZS5zdGFydCArXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI5OC1cXHRcXHRcXHRYUzEwMF84MzkwX0RBVEEzMl9CQVNFLCBYUzEwMF84MzkwX0RBVEEzMl9TSVpFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMDAtXFx0LyogZXJyb3IgaGFuZGxpbmcgZm9yIGlvcmVtYXAgZGF0YSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzozMDE6XFx0aWYgKCFheDg4Nzk2X2RhdGEuZGF0YV9hcmVhKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTMwMi1cXHRcXHRkZXZfZXJyKFxcdTAwMjZ6ZGV2LVxcdTAwM2VkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMzA5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzozMTA6XFx0YXg4ODc5Nl9kYXRhLmF4LmJsb2NrX291dHB1dCA9IHhzMTAwX2Jsb2NrX291dHB1dDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MzExOlxcdGF4ODg3OTZfZGF0YS5heC5ibG9ja19pbnB1dCA9IHhzMTAwX2Jsb2NrX2lucHV0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjMxMzpcXHRwZGV2ID0gcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyX3Jlc25kYXRhKFxcdTAwMjZ6ZGV2LVxcdTAwM2VkZXYsIFxcXCJheDg4Nzk2XFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMzE0LVxcdFxcdFxcdFxcdFxcdFxcdCB6ZGV2LVxcdTAwM2VzbG90YWRkciwgcmVzLCAyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzozMTU6XFx0XFx0XFx0XFx0XFx0XFx0IFxcdTAwMjZheDg4Nzk2X2RhdGEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjMxNjpcXHRcXHRcXHRcXHRcXHRcXHQgc2l6ZW9mKGF4ODg3OTZfZGF0YSkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMTctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMzI5LSBleGl0X21lbTI6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjMzMDpcXHRpb3VubWFwKGF4ODg3OTZfZGF0YS5kYXRhX2FyZWEpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMzEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTMzMi0gZXhpdF9tZW06XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjMzMzpcXHRpb3VubWFwKGF4ODg3OTZfZGF0YS5iYXNlX3JlZ3MpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMzQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L01ha2VmaWxlLTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9NYWtlZmlsZTo1Om9iai0kKENPTkZJR19TUElfQVg4ODc5NkMpICs9IGF4ODg3OTZjLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L01ha2VmaWxlOjY6YXg4ODc5NmMteSA6PSBheDg4Nzk2Y19tYWluLm8gYXg4ODc5NmNfaW9jdGwubyBheDg4Nzk2Y19zcGkub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjk6I2RlZmluZSBwcl9mbXQoZm10KVxcdFxcXCJheDg4Nzk2YzogXFxcIiBmbXRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE2OiNpbmNsdWRlIFxcXCJheDg4Nzk2Y19tYWluLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE3OiNpbmNsdWRlIFxcXCJheDg4Nzk2Y19pb2N0bC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTk6c3RhdGljIGNvbnN0IGNoYXIgYXg4ODc5NmNfcHJpdl9mbGFnX25hbWVzW11bRVRIX0dTVFJJTkdfTEVOXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjAtXFx0XFxcIlNQSUNvbXByZXNzaW9uXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYz0yMz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyNDpheDg4Nzk2Y19nZXRfZHJ2aW5mbyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGV0aHRvb2xfZHJ2aW5mbyAqaW5mbylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTI5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzozMDpzdGF0aWMgdTMyIGF4ODg3OTZjX2dldF9tc2dsZXZlbChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMzEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzozMjpcXHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMzMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjM3OnN0YXRpYyB2b2lkIGF4ODg3OTZjX3NldF9tc2dsZXZlbChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgdTMyIGxldmVsKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0zOC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjM5OlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy00MC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYz00ND1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzo0NTpheDg4Nzk2Y19nZXRfcGF1c2VwYXJhbShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGV0aHRvb2xfcGF1c2VwYXJhbSAqcGF1c2UpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTQ2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6NDc6XFx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTQ4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jPTU2PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6NTc6YXg4ODc5NmNfc2V0X3BhdXNlcGFyYW0oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCBldGh0b29sX3BhdXNlcGFyYW0gKnBhdXNlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy01OC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjU5OlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy02MC1cXHRpbnQgZmM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtOTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjkxOnN0YXRpYyBpbnQgYXg4ODc5NmNfZ2V0X3JlZ3NfbGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy05Mi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM9OTY9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6OTc6YXg4ODc5NmNfZ2V0X3JlZ3Moc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCBldGh0b29sX3JlZ3MgKnJlZ3MsIHZvaWQgKl9wKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy05OC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjk5OlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xMDAtXFx0aW50IG9mZnNldCwgaTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xMDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjEwMzpcXHRtZW1zZXQocCwgMCwgYXg4ODc5NmNfZ2V0X3JlZ3NfbGVuKG5kZXYpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTA0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTEwNy1cXHRmb3IgKG9mZnNldCA9IDA7IG9mZnNldCBcXHUwMDNjIEFYODg3OTZDX1JFR0RVTVBfTEVOOyBvZmZzZXQgKz0gMikge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxMDg6XFx0XFx0aWYgKCF0ZXN0X2JpdChvZmZzZXQgLyAyLCBheDg4Nzk2Y19ub19yZWdzX21hc2spKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xMDktXFx0XFx0XFx0KnAgPSBBWF9SRUFEKFxcdTAwMjZheF9sb2NhbC1cXHUwMDNlYXhfc3BpLCBvZmZzZXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jPTEyMT1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxMjI6YXg4ODc5NmNfZ2V0X3N0cmluZ3Moc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHUzMiBzdHJpbmdzZXQsIHU4ICpkYXRhKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xMjMte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTEyNS1cXHRjYXNlIEVUSF9TU19QUklWX0ZMQUdTOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxMjY6XFx0XFx0bWVtY3B5KGRhdGEsIGF4ODg3OTZjX3ByaXZfZmxhZ19uYW1lcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTI3OlxcdFxcdCAgICAgICBzaXplb2YoYXg4ODc5NmNfcHJpdl9mbGFnX25hbWVzKSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTEyOC1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYz0xMzI9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxMzM6YXg4ODc5NmNfZ2V0X3NzZXRfY291bnQoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIGludCBzdHJpbmdzZXQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTEzNC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTM4LVxcdGNhc2UgRVRIX1NTX1BSSVZfRkxBR1M6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjEzOTpcXHRcXHRyZXQgPSBBUlJBWV9TSVpFKGF4ODg3OTZjX3ByaXZfZmxhZ19uYW1lcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE0MC1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xNDctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE0ODpzdGF0aWMgaW50IGF4ODg3OTZjX3NldF9wcml2X2ZsYWdzKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCB1MzIgZmxhZ3MpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE0OS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE1MDpcXHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTUxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE2My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTY0OnN0YXRpYyB1MzIgYXg4ODc5NmNfZ2V0X3ByaXZfZmxhZ3Moc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE2NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE2NjpcXHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTY3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE3MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTcxOmludCBheDg4Nzk2Y19tZGlvX3JlYWQoc3RydWN0IG1paV9idXMgKm1kaW9idXMsIGludCBwaHlfaWQsIGludCBsb2MpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE3Mi17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE3MzpcXHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IG1kaW9idXMtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE3NC1cXHRpbnQgcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jPTE5Mj1pbnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTkzOmF4ODg3OTZjX21kaW9fd3JpdGUoc3RydWN0IG1paV9idXMgKm1kaW9idXMsIGludCBwaHlfaWQsIGludCBsb2MsIHUxNiB2YWwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE5NC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjE5NTpcXHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IG1kaW9idXMtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE5Ni1cXHRpbnQgcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTIxMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjE0OmNvbnN0IHN0cnVjdCBldGh0b29sX29wcyBheDg4Nzk2Y19ldGh0b29sX29wcyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjE1OlxcdC5nZXRfZHJ2aW5mb1xcdFxcdD0gYXg4ODc5NmNfZ2V0X2RydmluZm8sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTIxNi1cXHQuZ2V0X2xpbmtcXHRcXHQ9IGV0aHRvb2xfb3BfZ2V0X2xpbmssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIxNzpcXHQuZ2V0X21zZ2xldmVsXFx0XFx0PSBheDg4Nzk2Y19nZXRfbXNnbGV2ZWwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIxODpcXHQuc2V0X21zZ2xldmVsXFx0XFx0PSBheDg4Nzk2Y19zZXRfbXNnbGV2ZWwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTIxOS1cXHQuZ2V0X2xpbmtfa3NldHRpbmdzXFx0PSBwaHlfZXRodG9vbF9nZXRfbGlua19rc2V0dGluZ3MsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjIxLVxcdC5ud2F5X3Jlc2V0XFx0XFx0PSBwaHlfZXRodG9vbF9ud2F5X3Jlc2V0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyMjI6XFx0LmdldF9wYXVzZXBhcmFtXFx0XFx0PSBheDg4Nzk2Y19nZXRfcGF1c2VwYXJhbSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjIzOlxcdC5zZXRfcGF1c2VwYXJhbVxcdFxcdD0gYXg4ODc5NmNfc2V0X3BhdXNlcGFyYW0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIyNDpcXHQuZ2V0X3JlZ3NfbGVuXFx0XFx0PSBheDg4Nzk2Y19nZXRfcmVnc19sZW4sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIyNTpcXHQuZ2V0X3JlZ3NcXHRcXHQ9IGF4ODg3OTZjX2dldF9yZWdzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyMjY6XFx0LmdldF9zdHJpbmdzXFx0XFx0PSBheDg4Nzk2Y19nZXRfc3RyaW5ncyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjI3OlxcdC5nZXRfc3NldF9jb3VudFxcdFxcdD0gYXg4ODc5NmNfZ2V0X3NzZXRfY291bnQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIyODpcXHQuZ2V0X3ByaXZfZmxhZ3NcXHRcXHQ9IGF4ODg3OTZjX2dldF9wcml2X2ZsYWdzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyMjk6XFx0LnNldF9wcml2X2ZsYWdzXFx0XFx0PSBheDg4Nzk2Y19zZXRfcHJpdl9mbGFncyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjMwLX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTIzMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjMyOmludCBheDg4Nzk2Y19pb2N0bChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGlmcmVxICppZnIsIGludCBjbWQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTIzMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmgtMTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oOjE1OiNpbmNsdWRlIFxcXCJheDg4Nzk2Y19tYWluLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oLTE2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuaDoxNzpleHRlcm4gY29uc3Qgc3RydWN0IGV0aHRvb2xfb3BzIGF4ODg3OTZjX2V0aHRvb2xfb3BzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuaC0xOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmg6MTk6Ym9vbCBheDg4Nzk2Y19jaGVja19wb3dlcihjb25zdCBzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oOjIwOmJvb2wgYXg4ODc5NmNfY2hlY2tfcG93ZXJfYW5kX3dha2Uoc3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuaDoyMTp2b2lkIGF4ODg3OTZjX3NldF9wb3dlcl9zYXZpbmcoc3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwsIHU4IHBzX2xldmVsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmg6MjI6aW50IGF4ODg3OTZjX21kaW9fcmVhZChzdHJ1Y3QgbWlpX2J1cyAqbWRpb2J1cywgaW50IHBoeV9pZCwgaW50IGxvYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oOjIzOmludCBheDg4Nzk2Y19tZGlvX3dyaXRlKHN0cnVjdCBtaWlfYnVzICptZGlvYnVzLCBpbnQgcGh5X2lkLCBpbnQgbG9jLCB1MTYgdmFsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmg6MjQ6aW50IGF4ODg3OTZjX2lvY3RsKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBpZnJlcSAqaWZyLCBpbnQgY21kKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmgtMjUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy04LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjk6I2RlZmluZSBwcl9mbXQoZm10KVxcdFxcXCJheDg4Nzk2YzogXFxcIiBmbXRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0xMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoxMTojaW5jbHVkZSBcXFwiYXg4ODc5NmNfbWFpbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjEyOiNpbmNsdWRlIFxcXCJheDg4Nzk2Y19pb2N0bC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTEzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM9MzM9c3RhdGljIGNvbnN0IGNoYXIgKm5vX3JlZ3NfbGlzdCA9IFxcXCI4MDAxODAwMSxlMTkxODAwMSw4MDAxYTAwMSxmYzBkMDAwMFxcXCI7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MzQ6dW5zaWduZWQgbG9uZyBheDg4Nzk2Y19ub19yZWdzX21hc2tbQVg4ODc5NkNfUkVHRFVNUF9MRU4gLyAoc2l6ZW9mKHVuc2lnbmVkIGxvbmcpICogOCldO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTM1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM9Mzc9TU9EVUxFX1BBUk1fREVTQyhtc2dfZW5hYmxlLCBcXFwiTWVzc2FnZSBtYXNrIChzZWUgbGludXgvbmV0ZGV2aWNlLmggZm9yIGJpdG1hcClcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0zOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzozOTpzdGF0aWMgaW50IGF4ODg3OTZjX3NvZnRfcmVzZXQoc3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNDAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NzA6c3RhdGljIGludCBheDg4Nzk2Y19yZWxvYWRfZWVwcm9tKHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTcxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTkwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjkxOnN0YXRpYyB2b2lkIGF4ODg3OTZjX3NldF9od19tdWx0aWNhc3Qoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtOTIte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjkzOlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTk0LVxcdGludCBtY19jb3VudCA9IG5ldGRldl9tY19jb3VudChuZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTEyOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoxMzA6c3RhdGljIHZvaWQgYXg4ODc5NmNfc2V0X21hY19hZGRyKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTEzMS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MTMyOlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTEzMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTE0My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoxNDQ6c3RhdGljIHZvaWQgYXg4ODc5NmNfbG9hZF9tYWNfYWRkcihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0xNDUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjE0NjpcXHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0xNDctXFx0dTggYWRkcltFVEhfQUxFTl07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0xODctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MTg4OnN0YXRpYyB2b2lkIGF4ODg3OTZjX3Byb2NfdHhfaGRyKHN0cnVjdCB0eF9wa3RfaW5mbyAqaW5mbywgdTggaXBfc3VtbWVkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTE4OS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz0yMjE9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjIyMjpheDg4Nzk2Y19jaGVja19mcmVlX3BhZ2VzKHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsLCB1OCBuZWVkX3BhZ2VzKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTIyMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz0yNDM9c3RhdGljIHN0cnVjdCBza19idWZmICpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoyNDQ6YXg4ODc5NmNfdHhfZml4dXAoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCBza19idWZmX2hlYWQgKnEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMjQ1LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoyNDY6XFx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMjQ3LVxcdHU4IHNwaV9sZW4gPSBheF9sb2NhbC1cXHUwMDNlYXhfc3BpLmNvbXAgPyAxIDogNDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTI2Mi1cXHRuZWVkX3BhZ2VzID0gKHBrdF9sZW4gKyBUWF9PVkVSSEVBRCArIDEyNykgXFx1MDAzZVxcdTAwM2UgNztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoyNjM6XFx0aWYgKGF4ODg3OTZjX2NoZWNrX2ZyZWVfcGFnZXMoYXhfbG9jYWwsIG5lZWRfcGFnZXMpICE9IDApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMjY0LVxcdFxcdHJldHVybiBOVUxMO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMjgzLVxcdGluZm8uc2VxX251bSA9IHNlcV9udW07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6Mjg0OlxcdGF4ODg3OTZjX3Byb2NfdHhfaGRyKFxcdTAwMjZpbmZvLCBza2ItXFx1MDAzZWlwX3N1bW1lZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMjg1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMjg5LVxcdC8qIFdyaXRlIFNQSSBUWFEgaGVhZGVyICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MjkwOlxcdG1lbWNweShza2JfcHVzaChza2IsIHNwaV9sZW4pLCBheDg4Nzk2Y190eF9jbWRfYnVmLCBzcGlfbGVuKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0yOTEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0zMzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MzMzOnN0YXRpYyBpbnQgYXg4ODc5NmNfaGFyZF94bWl0KHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTMzNC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MzM1OlxcdHN0cnVjdCBheDg4Nzk2Y19wY3B1X3N0YXRzICpzdGF0cztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0zMzYtXFx0c3RydWN0IHNrX2J1ZmYgKnR4X3NrYjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTM0Mi1cXHRzdGF0cyA9IHRoaXNfY3B1X3B0cihheF9sb2NhbC1cXHUwMDNlc3RhdHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjM0MzpcXHR0eF9za2IgPSBheDg4Nzk2Y190eF9maXh1cChheF9sb2NhbC1cXHUwMDNlbmRldiwgXFx1MDAyNmF4X2xvY2FsLVxcdTAwM2V0eF93YWl0X3EpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTM0NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jPTM4ND1zdGF0aWMgbmV0ZGV2X3R4X3RcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzozODU6YXg4ODc5NmNfc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0zODYte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjM4NzpcXHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0zODgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz0zOTk9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo0MDA6YXg4ODc5NmNfc2tiX3JldHVybihzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy00MDEtXFx0XFx0ICAgIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCByeF9oZWFkZXIgKnJ4aGRyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNDAzLVxcdHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2ID0gYXhfbG9jYWwtXFx1MDAzZW5kZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NDA0OlxcdHN0cnVjdCBheDg4Nzk2Y19wY3B1X3N0YXRzICpzdGF0cztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy00MDUtXFx0dW5zaWduZWQgbG9uZyBmbGFncztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jPTQ0Mj1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjQ0MzpheDg4Nzk2Y19yeF9maXh1cChzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCwgc3RydWN0IHNrX2J1ZmYgKnJ4X3NrYilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy00NDQte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNDkwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjQ5MTpcXHRheDg4Nzk2Y19za2JfcmV0dXJuKGF4X2xvY2FsLCByeF9za2IsIHJ4aGRyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy00OTItfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQ5My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo0OTQ6c3RhdGljIGludCBheDg4Nzk2Y19yZWNlaXZlKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQ5NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NDk2OlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQ5Ny1cXHRzdHJ1Y3Qgc2tiX2RhdGEgKmVudHJ5O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNTQyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjU0MzpcXHRheDg4Nzk2Y19yeF9maXh1cChheF9sb2NhbCwgc2tiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01NDQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01NDctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NTQ4OnN0YXRpYyBpbnQgYXg4ODc5NmNfcHJvY2Vzc19pc3Ioc3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNTQ5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU3OC1cXHRcXHRuZXRpZl9kYmcoYXhfbG9jYWwsIGludHIsIG5kZXYsIFxcXCIgIFJYIGludGVycnVwdFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NTc5OlxcdFxcdHRvZG8gPSBheDg4Nzk2Y19yZWNlaXZlKGF4X2xvY2FsLVxcdTAwM2VuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01ODAtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNTg0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjU4NTpzdGF0aWMgaXJxcmV0dXJuX3QgYXg4ODc5NmNfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pbnN0YW5jZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01ODYte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjU4NzpcXHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01ODgtXFx0c3RydWN0IG5ldF9kZXZpY2UgKm5kZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01OTQtXFx0fVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjU5NTpcXHRheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01OTYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02MDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NjA3OnN0YXRpYyB2b2lkIGF4ODg3OTZjX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYwOC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NjA5OlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo2MTA6XFx0XFx0XFx0Y29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UsIGF4X3dvcmspO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYxMS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYxNC1cXHRpZiAodGVzdF9iaXQoRVZFTlRfU0VUX01VTFRJLCBcXHUwMDI2YXhfbG9jYWwtXFx1MDAzZWZsYWdzKSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjYxNTpcXHRcXHRheDg4Nzk2Y19zZXRfaHdfbXVsdGljYXN0KGF4X2xvY2FsLVxcdTAwM2VuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02MTYtXFx0XFx0Y2xlYXJfYml0KEVWRU5UX1NFVF9NVUxUSSwgXFx1MDAyNmF4X2xvY2FsLVxcdTAwM2VmbGFncyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02MjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NjIyOlxcdFxcdHdoaWxlIChheDg4Nzk2Y19wcm9jZXNzX2lzcihheF9sb2NhbCkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjIzLVxcdFxcdFxcdC8qIG5vdGhpbmcgKi87XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02MzMtXFx0XFx0d2hpbGUgKHNrYl9xdWV1ZV9sZW4oXFx1MDAyNmF4X2xvY2FsLVxcdTAwM2V0eF93YWl0X3EpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NjM0OlxcdFxcdFxcdGlmICghYXg4ODc5NmNfaGFyZF94bWl0KGF4X2xvY2FsKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02MzUtXFx0XFx0XFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02NDctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NjQ4OnN0YXRpYyB2b2lkIGF4ODg3OTZjX2dldF9zdGF0czY0KHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTY0OS1cXHRcXHRcXHRcXHQgc3RydWN0IHJ0bmxfbGlua19zdGF0czY0ICpzdGF0cylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02NTAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjY1MTpcXHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02NTItXFx0dTMyIHJ4X2ZyYW1lX2Vycm9ycyA9IDAsIHJ4X2NyY19lcnJvcnMgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjU3LVxcdGZvcl9lYWNoX3Bvc3NpYmxlX2NwdShjcHUpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo2NTg6XFx0XFx0c3RydWN0IGF4ODg3OTZjX3BjcHVfc3RhdHMgKnM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjU5LVxcdFxcdHU2NCByeF9wYWNrZXRzLCByeF9ieXRlcztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTY4OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo2ODk6c3RhdGljIHZvaWQgYXg4ODc5NmNfc2V0X21hYyhzdHJ1Y3QgIGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjkwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTczNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo3Mzc6c3RhdGljIHZvaWQgYXg4ODc5NmNfaGFuZGxlX2xpbmtfY2hhbmdlKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTczOC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NzM5OlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTc0MC1cXHRzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2ID0gbmRldi1cXHUwMDNlcGh5ZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzY0LVxcdGlmICh1cGRhdGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NzY1OlxcdFxcdGF4ODg3OTZjX3NldF9tYWMoYXhfbG9jYWwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTc2Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTc3MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo3NzE6c3RhdGljIHZvaWQgYXg4ODc5NmNfc2V0X2NzdW1zKHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTc3Mi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz03OTQ9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjc5NTpheDg4Nzk2Y19vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTc5Ni17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6Nzk3OlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTc5OC1cXHR1bnNpZ25lZCBsb25nIGlycV9mbGFnID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTgwMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo4MDM6XFx0cmV0ID0gcmVxdWVzdF9pcnEobmRldi1cXHUwMDNlaXJxLCBheDg4Nzk2Y19pbnRlcnJ1cHQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtODA0LVxcdFxcdFxcdCAgaXJxX2ZsYWcsIG5kZXYtXFx1MDAzZW5hbWUsIG5kZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtODEyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjgxMzpcXHRyZXQgPSBheDg4Nzk2Y19zb2Z0X3Jlc2V0KGF4X2xvY2FsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy04MTQtXFx0aWYgKHJldCBcXHUwMDNjIDApIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTgyMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo4MjE6XFx0YXg4ODc5NmNfc2V0X21hY19hZGRyKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjgyMjpcXHRheDg4Nzk2Y19zZXRfY3N1bXMoYXhfbG9jYWwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTgyMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jPTg3OD1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6ODc5OmF4ODg3OTZjX2Nsb3NlKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTg4MC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6ODgxOlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTg4Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTg4Ni1cXHQgKiBhZ2FpbnN0IGNvbmN1cnJlbnQgYWNjZXNzLCBidXQgYWxzbyBhdm9pZCB3YWtpbmcgdXAgdGhlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6ODg3OlxcdCAqIHF1ZXVlIGluIGF4ODg3OTZjX3dvcmsoKS4gcGh5X3N0b3AoKSBuZWVkcyB0byBiZSBjYWxsZWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy04ODgtXFx0ICogYmVmb3JlIGJlY2F1c2UgaXQgbG9ja3MgdGhlIG11dGV4IHRvIGFjY2VzcyBTUEkuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy05MDUtXFx0X19za2JfcXVldWVfcHVyZ2UoXFx1MDAyNmF4X2xvY2FsLVxcdTAwM2V0eF93YWl0X3EpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjkwNjpcXHRheDg4Nzk2Y19zb2Z0X3Jlc2V0KGF4X2xvY2FsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy05MDctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz05MTc9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjkxODpheDg4Nzk2Y19zZXRfZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIG5ldGRldl9mZWF0dXJlc190IGZlYXR1cmVzKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTkxOS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6OTIwOlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTkyMS1cXHRuZXRkZXZfZmVhdHVyZXNfdCBjaGFuZ2VkID0gZmVhdHVyZXMgXiBuZGV2LVxcdTAwM2VmZWF0dXJlcztcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMTM6MDE6NTAuMTU3MDUwOTkyWiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjExMDAzMTU5MDY2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgQVg4ODc5NiBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBmaXJzdCB0aGluZ3MgZmlyc3QuIEkgc2VlIGEgcGF0Y2ggcmVsYXRlZCB0byBgYXg4ODc5NmAsIGJ1dCB3YWl0LCB0aGUgbWFpbiBkcml2ZXIgaXMgYGF4ODg3OTZjYCB3aGljaCBpcyBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmNgLCBhbmQgdGhlIHBhdGNoIGlzIHRhcmdldGluZyB0aGUgb2xkZXIgYGF4ODg3OTZgIGZpbGUgdW5kZXIgYGRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jYC4gVGhhdCdzIHRoZSBmaXJzdCByZWQgZmxhZywgcG90ZW50aWFsIGNvbmZ1c2lvbiB0aGVyZS4gSSBzaG91bGQgY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBzeXprYWxsZXIgZGVzY3JpcHRpb25zIGZvciB0aGUgb2xkZXIgYGF4ODg3OTZgIGRyaXZlci5cblxuSG1tLCBva2F5LCBJIHNlZSBgYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmNgIHJlZ2lzdGVycyBgYXg4ODc5Nl9kZXZpY2VgLCBhbmQgYGRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuY2AgcmVnaXN0ZXJzIGBheDg4Nzk2YCBhcyB3ZWxsLiBMb29rcyBsaWtlIGEgcGxhdGZvcm0gZHJpdmVyLCBzcGVjaWZpY2FsbHkuIFRoZSBxdWVzdGlvbiBub3cgaXMsIGlzIGl0IGV2ZW4gZnV6emVkIGJ5IHN5emthbGxlcj8gU3l6a2FsbGVyICpjYW4qIGZ1enogcGxhdGZvcm0gZHJpdmVycywgYnV0IG9ubHkgaWYgaXQgY2FuIGNyZWF0ZSB0aGUgcGxhdGZvcm0gZGV2aWNlLiBMZXQgbWUgdGhpbmsuLi4gc3l6a2FsbGVyIGhhcyBgc3l6X2Rldl9jcmVhdGVgLCBidXQgdGhhdCdzIG5vdCBmb3IgcGxhdGZvcm0gZGV2aWNlcywgaXMgaXQ/IE5vLCB0aGF0J3Mgbm90IGdvaW5nIHRvIHdvcmsuIFdhaXQsIGNhbiBpdCB1c2UgYHN5el9nZW5ldGxpbmtfZ2V0X2ZhbWlseWA/IE5vcGUuXG5cbk9rYXksIEkgcmVtZW1iZXIsIFN5emthbGxlciAqY2FuKiBmdXp6IHBsYXRmb3JtIGRyaXZlcnMgaWYgdGhleSBhcmUgcmVnaXN0ZXJlZCBieSBkZWZhdWx0IGluIHRoZSBrZXJuZWwsIGxpa2VseSB2aWEgZGV2aWNlIHRyZWUgb3IgYm9hcmQgY29kZS4gQnV0LCBsb29raW5nIGF0IHRoZSBjb2RlLCBgYXg4ODc5NmAgaXMgb25seSByZWdpc3RlcmVkIG9uIFN1cGVySCAoYG1hY2gtaGlnaGxhbmRlcmApIGFuZCBBbWlnYSAoYHhzdXJmMTAwYCkuIFN5emthbGxlciBydW5zIG9uIHg4Nl82NCBvciBhcm02NC4gU28gaXQgd29uJ3QgYmUgcHJvYmVkIG9uIHRob3NlIGFyY2hpdGVjdHVyZXMsIHVubGVzcyB0aGVyZSBpcyBhIHdheSB0byBpbmplY3QgcGxhdGZvcm0gZGV2aWNlcy4gTm93LCBkb2VzIHN5emthbGxlciBoYXZlIGFuIGluamVjdCBmdW5jdGlvbj8gTm8gYHN5el9wbGF0Zm9ybV9kZXZpY2VfYWRkYD8gTm9wZS4gTm90IHZpYSBOZXRsaW5rIGVpdGhlciwgb3IgYHN5c2ZzYCBvciBgc3l6X3VzYl9jb25uZWN0YC4gTm8sIHRoYXQncyBub3QgYSBVU0IgZGV2aWNlISBPciBgc3l6X3BjaV9kZXZpY2VfYWRkYC4uLiBubywgaXQncyBhIHBsYXRmb3JtIGRldmljZSFcblxuQWgsIGhhbmcgb24gYSBzZWNvbmQuIFRoZSBjb21taXQgbWVzc2FnZSBtZW50aW9ucyB0aGF0IHRoZSBwYXRjaCB3YXMgYXBwbGllZCBieSBgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3YC4gVGhhdCBtZWFucyBzb21lb25lIHNlbnQgYSBwYXRjaCB0byB0aGUgbWFpbGluZyBsaXN0LCBhbmQgc3l6Ym90IGlzIHRlc3RpbmcgaXQuIElmIHN5emJvdCBpcyB0ZXN0aW5nIGl0LCBpdCBtaWdodCBqdXN0IGJlIGEgY29tcGlsZSB0ZXN0LCBvciBhIGZ1bmN0aW9uYWwgdGVzdCwgaWYgaXQncyByZWFjaGFibGUuIEJ1dCBnaXZlbiB0aGF0IHRoaXMgaXMgYSBwbGF0Zm9ybSBkcml2ZXIgZm9yIFN1cGVySC9BbWlnYSwgaXQncyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VIG9uIHg4Nl82NCwgd2hpY2ggc3l6a2FsbGVyIHVzZXMuXG5cbkxldCdzIGxvb2sgYXQgdGhlIGluc3RydWN0aW9ucywgdGhleSBzdGF0ZTogXCJSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOiAtIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZVwiLiBTaW5jZSBgYXg4ODc5NmAgaXMgYSBwbGF0Zm9ybSBkcml2ZXIgZm9yIHNwZWNpZmljIGJvYXJkcywgaXQncyB1bnJlYWNoYWJsZSBpbiB0aGVzZSBzdGFuZGFyZCB4ODZfNjQvYXJtNjQgUUVNVS9HQ0UgaW5zdGFuY2VzIHVzZWQgYnkgc3l6a2FsbGVyLlxuXG5JcyB0aGVyZSBhbnkgb3RoZXIgd2F5IHRvIHByb2JlIGl0PyBJIHNob3VsZCBjaGVjayBpZiB0aGVyZSdzIGFueSBkZXZpY2UgdHJlZSBiaW5kaW5nIGZvciBgYXg4ODc5NmAuIFRoYXQgbWlnaHQgYmUgdGhlIG9ubHkgb3RoZXIgYXZlbnVlIHRvIGV4cGxvcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1NTU5LCJPdXRwdXRUb2tlbnMiOjIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzQ1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDEzOjAyOjAxLjE2MDIxMzI5OFoiLCJTZXEiOjIyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjE5NDUwNjE1MiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJheDg4Nzk2XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNzEzIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbC0zLS0tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sOjQ6JGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sI1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sLTUtJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbD0yND1wcm9wZXJ0aWVzOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sLTI1LSAgY29tcGF0aWJsZTpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbDoyNjogICAgY29uc3Q6IGFzaXgsYXg4ODc5NmNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbC0yNy1cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sPTU2PWV4YW1wbGVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWwtNjUtICAgICAgICBldGhlcm5ldEAwIHtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbDo2NjogICAgICAgICAgICBjb21wYXRpYmxlID0gXFxcImFzaXgsYXg4ODc5NmNcXFwiO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sLTY3LSAgICAgICAgICAgIHJlZyA9IFxcdTAwM2MweDBcXHUwMDNlO1xcbi0tXFxuTUFJTlRBSU5FUlM9NDAwMT1TOlxcdE1haW50YWluZWRcXG5NQUlOVEFJTkVSUzo0MDAyOkY6XFx0RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWxcXG5NQUlOVEFJTkVSUzo0MDAzOkY6XFx0ZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y18qXFxuTUFJTlRBSU5FUlMtNDAwNC1cXG4tLVxcbk1BSU5UQUlORVJTPTQwMTA9UzpcXHRNYWludGFpbmVkXFxuTUFJTlRBSU5FUlM6NDAxMTpGOlxcdGRyaXZlcnMvbmV0L3BoeS9heDg4Nzk2Yl9ydXN0LnJzXFxuTUFJTlRBSU5FUlMtNDAxMi1cXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL3NhbXN1bmcvZXh5bm9zMzI1MC1hcnRpazUtZXZhbC5kdHM9NTY9XFx0ZXRoZXJuZXRAMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvc2Ftc3VuZy9leHlub3MzMjUwLWFydGlrNS1ldmFsLmR0czo1NzpcXHRcXHRjb21wYXRpYmxlID0gXFxcImFzaXgsYXg4ODc5NmNcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL3NhbXN1bmcvZXh5bm9zMzI1MC1hcnRpazUtZXZhbC5kdHMtNTgtXFx0XFx0cmVnID0gXFx1MDAzYzB4MFxcdTAwM2U7XFxuLS1cXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0yNC0jaW5jbHVkZSBcXHUwMDNjbGludXgvY2xrZGV2LmhcXHUwMDNlXFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmM6MjU6I2luY2x1ZGUgXFx1MDAzY25ldC9heDg4Nzk2LmhcXHUwMDNlXFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMjYtI2luY2x1ZGUgXFx1MDAzY2FzbS9tYWNodmVjLmhcXHUwMDNlXFxuLS1cXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYz0xNDM9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgaGVhcnRiZWF0X2RldmljZSA9IHtcXG4tLVxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE1Ni1cXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYzoxNTc6c3RhdGljIHN0cnVjdCBheF9wbGF0X2RhdGEgYXg4ODc5Nl9wbGF0ZGF0YSA9IHtcXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0xNTgtXFx0LmZsYWdzICAgICAgICAgID0gQVhGTEdfSEFTXzkzQ1g2LFxcbi0tXFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMTYzLVxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jOjE2NDpzdGF0aWMgc3RydWN0IHJlc291cmNlIGF4ODg3OTZfcmVzb3VyY2VzW10gPSB7XFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMTY1LVxcdHtcXG4tLVxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE4MS1cXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYzoxODI6c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgYXg4ODc5Nl9kZXZpY2UgPSB7XFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmM6MTgzOlxcdC5uYW1lICAgICAgICAgICA9IFxcXCJheDg4Nzk2XFxcIixcXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYy0xODQtXFx0LmlkICAgICAgICAgICAgID0gMCxcXG4tLVxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE4Ni1cXHQuZGV2ICAgID0ge1xcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jOjE4NzpcXHRcXHQucGxhdGZvcm1fZGF0YSA9IFxcdTAwMjZheDg4Nzk2X3BsYXRkYXRhLFxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE4OC1cXHR9LFxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE4OS1cXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYzoxOTA6XFx0Lm51bV9yZXNvdXJjZXMgID0gQVJSQVlfU0laRShheDg4Nzk2X3Jlc291cmNlcyksXFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmM6MTkxOlxcdC5yZXNvdXJjZSAgICAgICA9IGF4ODg3OTZfcmVzb3VyY2VzLFxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTE5Mi19O1xcbi0tXFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmM9MjY3PXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpyNzc4MHJwX2RldmljZXNbXSBfX2luaXRkYXRhID0ge1xcbi0tXFxuYXJjaC9zaC9ib2FyZHMvbWFjaC1oaWdobGFuZGVyL3NldHVwLmMtMjczLSNpZm5kZWYgQ09ORklHX1NIX1I3NzgwUlBcXG5hcmNoL3NoL2JvYXJkcy9tYWNoLWhpZ2hsYW5kZXIvc2V0dXAuYzoyNzQ6XFx0XFx1MDAyNmF4ODg3OTZfZGV2aWNlLFxcbmFyY2gvc2gvYm9hcmRzL21hY2gtaGlnaGxhbmRlci9zZXR1cC5jLTI3NS0jZW5kaWZcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvTWFrZWZpbGU9OD1vYmotJChDT05GSUdfQVJNX0VUSEVSSCkgKz0gZXRoZXJoLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX0FYODg3OTYpICs9IGF4ODg3OTYub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvTWFrZWZpbGUtMTAtb2JqLSQoQ09ORklHX0hZRFJBKSArPSBoeWRyYS5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy0xLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYzoyOi8qIGRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtMy0gKlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtMjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM6Mjg6I2luY2x1ZGUgXFx1MDAzY25ldC9heDg4Nzk2LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtMjktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy01Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYzo1ODpzdGF0aWMgdW5zaWduZWQgY2hhciB2ZXJzaW9uW10gPSBcXFwiYXg4ODc5Ni5jOiBDb3B5cmlnaHQgMjAwNSwyMDA3IFNpbXRlYyBFbGVjdHJvbmljc1xcXFxuXFxcIjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy01OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTYxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjYyOiNkZWZpbmUgRFJWX05BTUUgXFxcImF4ODg3OTZcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtNjMtI2RlZmluZSBEUlZfVkVSU0lPTiBcXFwiMS4wMFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jPTE0Nj1zdGF0aWMgdm9pZCBheF9yZXNldF84MzkwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy0xNzEtICogd2F5IHRvIGZpbmQgb3V0IHdoZXRoZXIgdGhlIGludGVycnVwdCByZXF1ZXN0IG1pZ2h0IGJlIGNhdXNlZCBieVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjE3MjogKiB0aGUgYXg4ODc5NiBjaGlwLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTE3My0gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jPTQ1OT1zdGF0aWMgaW50IGF4X21paV9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy00NzMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM6NDc0OlxcdGF4LVxcdTAwM2VtaWlfYnVzLVxcdTAwM2VuYW1lID0gXFxcImF4ODg3OTZfbWlpX2J1c1xcXCI7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtNDc1LVxcdGF4LVxcdTAwM2VtaWlfYnVzLVxcdTAwM2VwYXJlbnQgPSBkZXYtXFx1MDAzZWRldi5wYXJlbnQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYz0xMDA3PXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGF4ZHJ2ID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jLTEwMDgtXFx0LmRyaXZlclxcdD0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjEwMDk6XFx0XFx0Lm5hbWVcXHRcXHQ9IFxcXCJheDg4Nzk2XFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy0xMDEwLVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYz0xMDIxPU1PRFVMRV9MSUNFTlNFKFxcXCJHUEwgdjJcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYzoxMDIyOk1PRFVMRV9BTElBUyhcXFwicGxhdGZvcm06YXg4ODc5NlxcXCIpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTUtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3pvcnJvLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjY6I2luY2x1ZGUgXFx1MDAzY25ldC9heDg4Nzk2LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTctI2luY2x1ZGUgXFx1MDAzY2FzbS9hbWlnYWludHMuaFxcdTAwM2VcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYz0yMzk9c3RhdGljIGludCB4c3VyZjEwMF9wcm9iZShzdHJ1Y3Qgem9ycm9fZGV2ICp6ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI0Mi1cXHRzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzoyNDM6XFx0c3RydWN0IHhzdXJmMTAwX2F4X3BsYXRfZGF0YSBheDg4Nzk2X2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI0NC1cXHRzdHJ1Y3QgcmVzb3VyY2UgcmVzWzJdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI1Ny1cXHQvKiBYLVN1cmYgMTAwIGNvbnRyb2wgYW5kIDMyIGJpdCByaW5nIGJ1ZmZlciBkYXRhIGFjY2VzcyBhcmVhcy5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MjU4OlxcdCAqIFRoZXNlIHJlc291cmNlcyBhcmUgbm90IHVzZWQgYnkgdGhlIGF4ODg3OTYgZHJpdmVyLCBzbyBtdXN0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI1OS1cXHQgKiBiZSByZXF1ZXN0ZWQgaGVyZSBhbmQgcGFzc2VkIHZpYSBwbGF0Zm9ybSBkYXRhLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI3OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6Mjc5OlxcdG1lbXNldChcXHUwMDI2YXg4ODc5Nl9kYXRhLCAwLCBzaXplb2YoYXg4ODc5Nl9kYXRhKSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI4MDpcXHRheDg4Nzk2X2RhdGEuYXguZmxhZ3MgPSBBWEZMR19IQVNfRUVQUk9NO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzoyODE6XFx0YXg4ODc5Nl9kYXRhLmF4LndvcmRsZW5ndGggPSAyO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzoyODI6XFx0YXg4ODc5Nl9kYXRhLmF4LmRjcl92YWwgPSAweDQ4O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzoyODM6XFx0YXg4ODc5Nl9kYXRhLmF4LnJjcl92YWwgPSAweDQwO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzoyODQ6XFx0YXg4ODc5Nl9kYXRhLmF4LnJlZ19vZmZzZXRzID0gcmVnX29mZnNldHM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI4NTpcXHRheDg4Nzk2X2RhdGEuYXguY2hlY2tfaXJxID0gaXNfeHN1cmYxMDBfbmV0d29ya19pcnE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI4NjpcXHRheDg4Nzk2X2RhdGEuYmFzZV9yZWdzID0gaW9yZW1hcCh6ZGV2LVxcdTAwM2VyZXNvdXJjZS5zdGFydCwgMHgxMDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0yODctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI4OC1cXHQvKiBlcnJvciBoYW5kbGluZyBmb3IgaW9yZW1hcCByZWdzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjI4OTpcXHRpZiAoIWF4ODg3OTZfZGF0YS5iYXNlX3JlZ3MpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMjkwLVxcdFxcdGRldl9lcnIoXFx1MDAyNnpkZXYtXFx1MDAzZWRldiwgXFxcIkNhbm5vdCBpb3JlbWFwIGFyZWEgJXBSIChyZWdpc3RlcnMpXFxcXG5cXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTI5Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6Mjk3OlxcdGF4ODg3OTZfZGF0YS5kYXRhX2FyZWEgPSBpb3JlbWFwKHpkZXYtXFx1MDAzZXJlc291cmNlLnN0YXJ0ICtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMjk4LVxcdFxcdFxcdFhTMTAwXzgzOTBfREFUQTMyX0JBU0UsIFhTMTAwXzgzOTBfREFUQTMyX1NJWkUpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTMwMC1cXHQvKiBlcnJvciBoYW5kbGluZyBmb3IgaW9yZW1hcCBkYXRhICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjMwMTpcXHRpZiAoIWF4ODg3OTZfZGF0YS5kYXRhX2FyZWEpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMzAyLVxcdFxcdGRldl9lcnIoXFx1MDAyNnpkZXYtXFx1MDAzZWRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjMxMDpcXHRheDg4Nzk2X2RhdGEuYXguYmxvY2tfb3V0cHV0ID0geHMxMDBfYmxvY2tfb3V0cHV0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYzozMTE6XFx0YXg4ODc5Nl9kYXRhLmF4LmJsb2NrX2lucHV0ID0geHMxMDBfYmxvY2tfaW5wdXQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTMxMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MzEzOlxcdHBkZXYgPSBwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfcmVzbmRhdGEoXFx1MDAyNnpkZXYtXFx1MDAzZWRldiwgXFxcImF4ODg3OTZcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMTQtXFx0XFx0XFx0XFx0XFx0XFx0IHpkZXYtXFx1MDAzZXNsb3RhZGRyLCByZXMsIDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jOjMxNTpcXHRcXHRcXHRcXHRcXHRcXHQgXFx1MDAyNmF4ODg3OTZfZGF0YSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MzE2OlxcdFxcdFxcdFxcdFxcdFxcdCBzaXplb2YoYXg4ODc5Nl9kYXRhKSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTMxNy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMjktIGV4aXRfbWVtMjpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MzMwOlxcdGlvdW5tYXAoYXg4ODc5Nl9kYXRhLmRhdGFfYXJlYSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTMzMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmMtMzMyLSBleGl0X21lbTpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MzMzOlxcdGlvdW5tYXAoYXg4ODc5Nl9kYXRhLmJhc2VfcmVncyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTMzNC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvTWFrZWZpbGUtNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L01ha2VmaWxlOjU6b2JqLSQoQ09ORklHX1NQSV9BWDg4Nzk2QykgKz0gYXg4ODc5NmMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvTWFrZWZpbGU6NjpheDg4Nzk2Yy15IDo9IGF4ODg3OTZjX21haW4ubyBheDg4Nzk2Y19pb2N0bC5vIGF4ODg3OTZjX3NwaS5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6OTojZGVmaW5lIHByX2ZtdChmbXQpXFx0XFxcImF4ODg3OTZjOiBcXFwiIGZtdFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xMC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTY6I2luY2x1ZGUgXFxcImF4ODg3OTZjX21haW4uaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTc6I2luY2x1ZGUgXFxcImF4ODg3OTZjX2lvY3RsLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxOTpzdGF0aWMgY29uc3QgY2hhciBheDg4Nzk2Y19wcml2X2ZsYWdfbmFtZXNbXVtFVEhfR1NUUklOR19MRU5dID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0yMC1cXHRcXFwiU1BJQ29tcHJlc3Npb25cXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jPTIzPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjI0OmF4ODg3OTZjX2dldF9kcnZpbmZvKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCBzdHJ1Y3QgZXRodG9vbF9kcnZpbmZvICppbmZvKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0yNS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjMwOnN0YXRpYyB1MzIgYXg4ODc5NmNfZ2V0X21zZ2xldmVsKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0zMS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjMyOlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0zMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0zNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6Mzc6c3RhdGljIHZvaWQgYXg4ODc5NmNfc2V0X21zZ2xldmVsKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCB1MzIgbGV2ZWwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTM4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6Mzk6XFx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTQwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jPTQ0PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjQ1OmF4ODg3OTZjX2dldF9wYXVzZXBhcmFtKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCBzdHJ1Y3QgZXRodG9vbF9wYXVzZXBhcmFtICpwYXVzZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtNDYte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzo0NzpcXHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtNDgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM9NTY9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzo1NzpheDg4Nzk2Y19zZXRfcGF1c2VwYXJhbShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGV0aHRvb2xfcGF1c2VwYXJhbSAqcGF1c2UpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTU4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6NTk6XFx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTYwLVxcdGludCBmYztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy05MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6OTE6c3RhdGljIGludCBheDg4Nzk2Y19nZXRfcmVnc19sZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTkyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYz05Nj1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzo5NzpheDg4Nzk2Y19nZXRfcmVncyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGV0aHRvb2xfcmVncyAqcmVncywgdm9pZCAqX3ApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTk4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6OTk6XFx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTEwMC1cXHRpbnQgb2Zmc2V0LCBpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTEwMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTAzOlxcdG1lbXNldChwLCAwLCBheDg4Nzk2Y19nZXRfcmVnc19sZW4obmRldikpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xMDQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTA3LVxcdGZvciAob2Zmc2V0ID0gMDsgb2Zmc2V0IFxcdTAwM2MgQVg4ODc5NkNfUkVHRFVNUF9MRU47IG9mZnNldCArPSAyKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjEwODpcXHRcXHRpZiAoIXRlc3RfYml0KG9mZnNldCAvIDIsIGF4ODg3OTZjX25vX3JlZ3NfbWFzaykpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTEwOS1cXHRcXHRcXHQqcCA9IEFYX1JFQUQoXFx1MDAyNmF4X2xvY2FsLVxcdTAwM2VheF9zcGksIG9mZnNldCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM9MTIxPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjEyMjpheDg4Nzk2Y19nZXRfc3RyaW5ncyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgdTMyIHN0cmluZ3NldCwgdTggKmRhdGEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTEyMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTI1LVxcdGNhc2UgRVRIX1NTX1BSSVZfRkxBR1M6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjEyNjpcXHRcXHRtZW1jcHkoZGF0YSwgYXg4ODc5NmNfcHJpdl9mbGFnX25hbWVzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxMjc6XFx0XFx0ICAgICAgIHNpemVvZihheDg4Nzk2Y19wcml2X2ZsYWdfbmFtZXMpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTI4LVxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jPTEzMj1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjEzMzpheDg4Nzk2Y19nZXRfc3NldF9jb3VudChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgaW50IHN0cmluZ3NldClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTM0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xMzgtXFx0Y2FzZSBFVEhfU1NfUFJJVl9GTEFHUzpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTM5OlxcdFxcdHJldCA9IEFSUkFZX1NJWkUoYXg4ODc5NmNfcHJpdl9mbGFnX25hbWVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTQwLVxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jLTE0Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTQ4OnN0YXRpYyBpbnQgYXg4ODc5NmNfc2V0X3ByaXZfZmxhZ3Moc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHUzMiBmbGFncylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTQ5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTUwOlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xNTEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTYzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxNjQ6c3RhdGljIHUzMiBheDg4Nzk2Y19nZXRfcHJpdl9mbGFncyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTY1LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTY2OlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0xNjctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTcwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxNzE6aW50IGF4ODg3OTZjX21kaW9fcmVhZChzdHJ1Y3QgbWlpX2J1cyAqbWRpb2J1cywgaW50IHBoeV9pZCwgaW50IGxvYylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTcyLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTczOlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gbWRpb2J1cy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTc0LVxcdGludCByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM9MTkyPWludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoxOTM6YXg4ODc5NmNfbWRpb193cml0ZShzdHJ1Y3QgbWlpX2J1cyAqbWRpb2J1cywgaW50IHBoeV9pZCwgaW50IGxvYywgdTE2IHZhbClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTk0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MTk1OlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gbWRpb2J1cy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMTk2LVxcdGludCByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjEzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyMTQ6Y29uc3Qgc3RydWN0IGV0aHRvb2xfb3BzIGF4ODg3OTZjX2V0aHRvb2xfb3BzID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyMTU6XFx0LmdldF9kcnZpbmZvXFx0XFx0PSBheDg4Nzk2Y19nZXRfZHJ2aW5mbyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjE2LVxcdC5nZXRfbGlua1xcdFxcdD0gZXRodG9vbF9vcF9nZXRfbGluayxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjE3OlxcdC5nZXRfbXNnbGV2ZWxcXHRcXHQ9IGF4ODg3OTZjX2dldF9tc2dsZXZlbCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjE4OlxcdC5zZXRfbXNnbGV2ZWxcXHRcXHQ9IGF4ODg3OTZjX3NldF9tc2dsZXZlbCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjE5LVxcdC5nZXRfbGlua19rc2V0dGluZ3NcXHQ9IHBoeV9ldGh0b29sX2dldF9saW5rX2tzZXR0aW5ncyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0yMjEtXFx0Lm53YXlfcmVzZXRcXHRcXHQ9IHBoeV9ldGh0b29sX253YXlfcmVzZXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIyMjpcXHQuZ2V0X3BhdXNlcGFyYW1cXHRcXHQ9IGF4ODg3OTZjX2dldF9wYXVzZXBhcmFtLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyMjM6XFx0LnNldF9wYXVzZXBhcmFtXFx0XFx0PSBheDg4Nzk2Y19zZXRfcGF1c2VwYXJhbSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjI0OlxcdC5nZXRfcmVnc19sZW5cXHRcXHQ9IGF4ODg3OTZjX2dldF9yZWdzX2xlbixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjI1OlxcdC5nZXRfcmVnc1xcdFxcdD0gYXg4ODc5NmNfZ2V0X3JlZ3MsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIyNjpcXHQuZ2V0X3N0cmluZ3NcXHRcXHQ9IGF4ODg3OTZjX2dldF9zdHJpbmdzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyMjc6XFx0LmdldF9zc2V0X2NvdW50XFx0XFx0PSBheDg4Nzk2Y19nZXRfc3NldF9jb3VudCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmM6MjI4OlxcdC5nZXRfcHJpdl9mbGFnc1xcdFxcdD0gYXg4ODc5NmNfZ2V0X3ByaXZfZmxhZ3MsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5jOjIyOTpcXHQuc2V0X3ByaXZfZmxhZ3NcXHRcXHQ9IGF4ODg3OTZjX3NldF9wcml2X2ZsYWdzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYy0yMzAtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjMxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuYzoyMzI6aW50IGF4ODg3OTZjX2lvY3RsKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCBzdHJ1Y3QgaWZyZXEgKmlmciwgaW50IGNtZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmMtMjMzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuaC0xNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmg6MTU6I2luY2x1ZGUgXFxcImF4ODg3OTZjX21haW4uaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmgtMTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oOjE3OmV4dGVybiBjb25zdCBzdHJ1Y3QgZXRodG9vbF9vcHMgYXg4ODc5NmNfZXRodG9vbF9vcHM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oLTE4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuaDoxOTpib29sIGF4ODg3OTZjX2NoZWNrX3Bvd2VyKGNvbnN0IHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmg6MjA6Ym9vbCBheDg4Nzk2Y19jaGVja19wb3dlcl9hbmRfd2FrZShzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19pb2N0bC5oOjIxOnZvaWQgYXg4ODc5NmNfc2V0X3Bvd2VyX3NhdmluZyhzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCwgdTggcHNfbGV2ZWwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuaDoyMjppbnQgYXg4ODc5NmNfbWRpb19yZWFkKHN0cnVjdCBtaWlfYnVzICptZGlvYnVzLCBpbnQgcGh5X2lkLCBpbnQgbG9jKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX2lvY3RsLmg6MjM6aW50IGF4ODg3OTZjX21kaW9fd3JpdGUoc3RydWN0IG1paV9idXMgKm1kaW9idXMsIGludCBwaHlfaWQsIGludCBsb2MsIHUxNiB2YWwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuaDoyNDppbnQgYXg4ODc5NmNfaW9jdGwoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGlmcmVxICppZnIsIGludCBjbWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfaW9jdGwuaC0yNS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6OTojZGVmaW5lIHByX2ZtdChmbXQpXFx0XFxcImF4ODg3OTZjOiBcXFwiIGZtdFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjExOiNpbmNsdWRlIFxcXCJheDg4Nzk2Y19tYWluLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MTI6I2luY2x1ZGUgXFxcImF4ODg3OTZjX2lvY3RsLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz0zMz1zdGF0aWMgY29uc3QgY2hhciAqbm9fcmVnc19saXN0ID0gXFxcIjgwMDE4MDAxLGUxOTE4MDAxLDgwMDFhMDAxLGZjMGQwMDAwXFxcIjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzozNDp1bnNpZ25lZCBsb25nIGF4ODg3OTZjX25vX3JlZ3NfbWFza1tBWDg4Nzk2Q19SRUdEVU1QX0xFTiAvIChzaXplb2YodW5zaWduZWQgbG9uZykgKiA4KV07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMzUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz0zNz1NT0RVTEVfUEFSTV9ERVNDKG1zZ19lbmFibGUsIFxcXCJNZXNzYWdlIG1hc2sgKHNlZSBsaW51eC9uZXRkZXZpY2UuaCBmb3IgYml0bWFwKVxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTM4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjM5OnN0YXRpYyBpbnQgYXg4ODc5NmNfc29mdF9yZXNldChzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy00MC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo3MDpzdGF0aWMgaW50IGF4ODg3OTZjX3JlbG9hZF9lZXByb20oc3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzEte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtOTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6OTE6c3RhdGljIHZvaWQgYXg4ODc5NmNfc2V0X2h3X211bHRpY2FzdChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy05Mi17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6OTM6XFx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtOTQtXFx0aW50IG1jX2NvdW50ID0gbmV0ZGV2X21jX2NvdW50KG5kZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTI5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjEzMDpzdGF0aWMgdm9pZCBheDg4Nzk2Y19zZXRfbWFjX2FkZHIoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTMxLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoxMzI6XFx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTMzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTQzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjE0NDpzdGF0aWMgdm9pZCBheDg4Nzk2Y19sb2FkX21hY19hZGRyKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTE0NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MTQ2OlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTE0Ny1cXHR1OCBhZGRyW0VUSF9BTEVOXTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTE4Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoxODg6c3RhdGljIHZvaWQgYXg4ODc5NmNfcHJvY190eF9oZHIoc3RydWN0IHR4X3BrdF9pbmZvICppbmZvLCB1OCBpcF9zdW1tZWQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTg5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jPTIyMT1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MjIyOmF4ODg3OTZjX2NoZWNrX2ZyZWVfcGFnZXMoc3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwsIHU4IG5lZWRfcGFnZXMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMjIzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jPTI0Mz1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjI0NDpheDg4Nzk2Y190eF9maXh1cChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqcSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0yNDUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjI0NjpcXHRzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbCA9IHRvX2F4ODg3OTZjX2RldmljZShuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0yNDctXFx0dTggc3BpX2xlbiA9IGF4X2xvY2FsLVxcdTAwM2VheF9zcGkuY29tcCA/IDEgOiA0O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMjYyLVxcdG5lZWRfcGFnZXMgPSAocGt0X2xlbiArIFRYX09WRVJIRUFEICsgMTI3KSBcXHUwMDNlXFx1MDAzZSA3O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjI2MzpcXHRpZiAoYXg4ODc5NmNfY2hlY2tfZnJlZV9wYWdlcyhheF9sb2NhbCwgbmVlZF9wYWdlcykgIT0gMClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0yNjQtXFx0XFx0cmV0dXJuIE5VTEw7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0yODMtXFx0aW5mby5zZXFfbnVtID0gc2VxX251bTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoyODQ6XFx0YXg4ODc5NmNfcHJvY190eF9oZHIoXFx1MDAyNmluZm8sIHNrYi1cXHUwMDNlaXBfc3VtbWVkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0yODUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy0yODktXFx0LyogV3JpdGUgU1BJIFRYUSBoZWFkZXIgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoyOTA6XFx0bWVtY3B5KHNrYl9wdXNoKHNrYiwgc3BpX2xlbiksIGF4ODg3OTZjX3R4X2NtZF9idWYsIHNwaV9sZW4pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTI5MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTMzMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzozMzM6c3RhdGljIGludCBheDg4Nzk2Y19oYXJkX3htaXQoc3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMzM0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzozMzU6XFx0c3RydWN0IGF4ODg3OTZjX3BjcHVfc3RhdHMgKnN0YXRzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTMzNi1cXHRzdHJ1Y3Qgc2tfYnVmZiAqdHhfc2tiO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMzQyLVxcdHN0YXRzID0gdGhpc19jcHVfcHRyKGF4X2xvY2FsLVxcdTAwM2VzdGF0cyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MzQzOlxcdHR4X3NrYiA9IGF4ODg3OTZjX3R4X2ZpeHVwKGF4X2xvY2FsLVxcdTAwM2VuZGV2LCBcXHUwMDI2YXhfbG9jYWwtXFx1MDAzZXR4X3dhaXRfcSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMzQ0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM9Mzg0PXN0YXRpYyBuZXRkZXZfdHhfdFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjM4NTpheDg4Nzk2Y19zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTM4Ni17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6Mzg3OlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTM4OC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jPTM5OT1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjQwMDpheDg4Nzk2Y19za2JfcmV0dXJuKHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQwMS1cXHRcXHQgICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHJ4X2hlYWRlciAqcnhoZHIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy00MDMtXFx0c3RydWN0IG5ldF9kZXZpY2UgKm5kZXYgPSBheF9sb2NhbC1cXHUwMDNlbmRldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo0MDQ6XFx0c3RydWN0IGF4ODg3OTZjX3BjcHVfc3RhdHMgKnN0YXRzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQwNS1cXHR1bnNpZ25lZCBsb25nIGZsYWdzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM9NDQyPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NDQzOmF4ODg3OTZjX3J4X2ZpeHVwKHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsLCBzdHJ1Y3Qgc2tfYnVmZiAqcnhfc2tiKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQ0NC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy00OTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NDkxOlxcdGF4ODg3OTZjX3NrYl9yZXR1cm4oYXhfbG9jYWwsIHJ4X3NrYiwgcnhoZHIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTQ5Mi19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNDkzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjQ5NDpzdGF0aWMgaW50IGF4ODg3OTZjX3JlY2VpdmUoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNDk1LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo0OTY6XFx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNDk3LVxcdHN0cnVjdCBza2JfZGF0YSAqZW50cnk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01NDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NTQzOlxcdGF4ODg3OTZjX3J4X2ZpeHVwKGF4X2xvY2FsLCBza2IpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU0NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU0Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo1NDg6c3RhdGljIGludCBheDg4Nzk2Y19wcm9jZXNzX2lzcihzdHJ1Y3QgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01NDkte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNTc4LVxcdFxcdG5ldGlmX2RiZyhheF9sb2NhbCwgaW50ciwgbmRldiwgXFxcIiAgUlggaW50ZXJydXB0XFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo1Nzk6XFx0XFx0dG9kbyA9IGF4ODg3OTZjX3JlY2VpdmUoYXhfbG9jYWwtXFx1MDAzZW5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU4MC1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy01ODQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NTg1OnN0YXRpYyBpcnFyZXR1cm5fdCBheDg4Nzk2Y19pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2luc3RhbmNlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU4Ni17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NTg3OlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU4OC1cXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmRldjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU5NC1cXHR9XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NTk1OlxcdGF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTU5Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo2MDc6c3RhdGljIHZvaWQgYXg4ODc5NmNfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjA4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo2MDk6XFx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjYxMDpcXHRcXHRcXHRjb250YWluZXJfb2Yod29yaywgc3RydWN0IGF4ODg3OTZjX2RldmljZSwgYXhfd29yayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjExLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjE0LVxcdGlmICh0ZXN0X2JpdChFVkVOVF9TRVRfTVVMVEksIFxcdTAwMjZheF9sb2NhbC1cXHUwMDNlZmxhZ3MpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NjE1OlxcdFxcdGF4ODg3OTZjX3NldF9od19tdWx0aWNhc3QoYXhfbG9jYWwtXFx1MDAzZW5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYxNi1cXHRcXHRjbGVhcl9iaXQoRVZFTlRfU0VUX01VTFRJLCBcXHUwMDI2YXhfbG9jYWwtXFx1MDAzZWZsYWdzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYyMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo2MjI6XFx0XFx0d2hpbGUgKGF4ODg3OTZjX3Byb2Nlc3NfaXNyKGF4X2xvY2FsKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02MjMtXFx0XFx0XFx0Lyogbm90aGluZyAqLztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYzMy1cXHRcXHR3aGlsZSAoc2tiX3F1ZXVlX2xlbihcXHUwMDI2YXhfbG9jYWwtXFx1MDAzZXR4X3dhaXRfcSkpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo2MzQ6XFx0XFx0XFx0aWYgKCFheDg4Nzk2Y19oYXJkX3htaXQoYXhfbG9jYWwpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTYzNS1cXHRcXHRcXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTY0Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo2NDg6c3RhdGljIHZvaWQgYXg4ODc5NmNfZ2V0X3N0YXRzNjQoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjQ5LVxcdFxcdFxcdFxcdCBzdHJ1Y3QgcnRubF9saW5rX3N0YXRzNjQgKnN0YXRzKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTY1MC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6NjUxOlxcdHN0cnVjdCBheDg4Nzk2Y19kZXZpY2UgKmF4X2xvY2FsID0gdG9fYXg4ODc5NmNfZGV2aWNlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTY1Mi1cXHR1MzIgcnhfZnJhbWVfZXJyb3JzID0gMCwgcnhfY3JjX2Vycm9ycyA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02NTctXFx0Zm9yX2VhY2hfcG9zc2libGVfY3B1KGNwdSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjY1ODpcXHRcXHRzdHJ1Y3QgYXg4ODc5NmNfcGNwdV9zdGF0cyAqcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02NTktXFx0XFx0dTY0IHJ4X3BhY2tldHMsIHJ4X2J5dGVzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNjg4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjY4OTpzdGF0aWMgdm9pZCBheDg4Nzk2Y19zZXRfbWFjKHN0cnVjdCAgYXg4ODc5NmNfZGV2aWNlICpheF9sb2NhbClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy02OTAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzM2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjczNzpzdGF0aWMgdm9pZCBheDg4Nzk2Y19oYW5kbGVfbGlua19jaGFuZ2Uoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzM4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo3Mzk6XFx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzQwLVxcdHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYgPSBuZGV2LVxcdTAwM2VwaHlkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy03NjQtXFx0aWYgKHVwZGF0ZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo3NjU6XFx0XFx0YXg4ODc5NmNfc2V0X21hYyhheF9sb2NhbCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzY2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzcwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjc3MTpzdGF0aWMgdm9pZCBheDg4Nzk2Y19zZXRfY3N1bXMoc3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzcyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jPTc5ND1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6Nzk1OmF4ODg3OTZjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzk2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo3OTc6XFx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtNzk4LVxcdHVuc2lnbmVkIGxvbmcgaXJxX2ZsYWcgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtODAyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjgwMzpcXHRyZXQgPSByZXF1ZXN0X2lycShuZGV2LVxcdTAwM2VpcnEsIGF4ODg3OTZjX2ludGVycnVwdCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy04MDQtXFx0XFx0XFx0ICBpcnFfZmxhZywgbmRldi1cXHUwMDNlbmFtZSwgbmRldik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYy04MTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6ODEzOlxcdHJldCA9IGF4ODg3OTZjX3NvZnRfcmVzZXQoYXhfbG9jYWwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTgxNC1cXHRpZiAocmV0IFxcdTAwM2MgMCkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtODIwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjgyMTpcXHRheDg4Nzk2Y19zZXRfbWFjX2FkZHIobmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6ODIyOlxcdGF4ODg3OTZjX3NldF9jc3VtcyhheF9sb2NhbCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtODIzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM9ODc4PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo4Nzk6YXg4ODc5NmNfY2xvc2Uoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtODgwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo4ODE6XFx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtODgyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtODg2LVxcdCAqIGFnYWluc3QgY29uY3VycmVudCBhY2Nlc3MsIGJ1dCBhbHNvIGF2b2lkIHdha2luZyB1cCB0aGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo4ODc6XFx0ICogcXVldWUgaW4gYXg4ODc5NmNfd29yaygpLiBwaHlfc3RvcCgpIG5lZWRzIHRvIGJlIGNhbGxlZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTg4OC1cXHQgKiBiZWZvcmUgYmVjYXVzZSBpdCBsb2NrcyB0aGUgbXV0ZXggdG8gYWNjZXNzIFNQSS5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTkwNS1cXHRfX3NrYl9xdWV1ZV9wdXJnZShcXHUwMDI2YXhfbG9jYWwtXFx1MDAzZXR4X3dhaXRfcSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6OTA2OlxcdGF4ODg3OTZjX3NvZnRfcmVzZXQoYXhfbG9jYWwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTkwNy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jPTkxNz1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6OTE4OmF4ODg3OTZjX3NldF9mZWF0dXJlcyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgbmV0ZGV2X2ZlYXR1cmVzX3QgZmVhdHVyZXMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtOTE5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzo5MjA6XFx0c3RydWN0IGF4ODg3OTZjX2RldmljZSAqYXhfbG9jYWwgPSB0b19heDg4Nzk2Y19kZXZpY2UobmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtOTIxLVxcdG5ldGRldl9mZWF0dXJlc190IGNoYW5nZWQgPSBmZWF0dXJlcyBeIG5kZXYtXFx1MDAzZWZlYXR1cmVzO1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQxMzowMjowMy4zNTQ3Mjc0MzlaIiwiU2VxIjoyMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzc5NDA1NTg0OTM5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6NDI2NDYsIk91dHB1dFRva2VucyI6MjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MjkxNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQxMzowODoyMi43NjAzMTYyNjdaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgzMzQxMDQ5MjQsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN5el9kZXZfY3JlYXRlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQxMzowODozMS4wOTQ0MzAwMjJaIiwiU2VxIjoyNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjY4NzUxMzM3NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFBhdGNoIGZvciBXb3J0aGluZXNzKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHksIHRoZSBsYWNrIG9mIGBzeXpfZGV2X2NyZWF0ZWAgaW4gc3l6a2FsbGVyIGlzIGEgcmVkIGZsYWcuIFRoZSBpbnN0cnVjdGlvbnMgYXJlIHByZXR0eSBjbGVhciBvbiB0aGlzOiBpZiB0aGUgcGF0Y2gncyBjaGFuZ2VzIGFyZSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgd2UgaGF2ZSB0byBtYXJrIGl0IGFzIG5vdCB3b3J0aCBmdXp6aW5nLiBUaGUgdGV4dCBtZW50aW9ucyBgYXg4ODc5NmAgYW5kIGl0IHNlZW1zIHRvIGJlIGEgcGxhdGZvcm0gZHJpdmVyIHNwZWNpZmljIHRvIGJvYXJkcyBsaWtlIFN1cGVySCBoaWdobGFuZGVyIGFuZCBBbWlnYSB4c3VyZjEwMC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiRGFtbiwgdGhhdCdzIG5vdCBzb21ldGhpbmcgd2UgY2FuIHByb2JlIG9uIHN0YW5kYXJkIHg4Nl82NC9hcm02NCBRRU1VL0dDRSBpbnN0YW5jZXMgdXNlZCBieSBzeXprYWxsZXJcIi4gU28gdGhhdCBtYWtlcyBtZSB0aGluaywgY2FuIHdlIGV2ZW4gcnVuIHRoaXMgYXQgYWxsLCBpcyB0aGVyZSBhIGJhY2tkb29yPyBMZXQgbWUgc2VlIGlmIHRoZXJlJ3MgYW55IG90aGVyIG1ldGhvZCBvZiBwcm9iaW5nIHRoaXMsIG1heWJlIGEgZGV2aWNlIHRyZWUgYmluZGluZz8gQW5kLCBJIG5lZWQgdG8gYmUgY2FyZWZ1bCwgbWFrZSBzdXJlIEkgYW0gY2hlY2tpbmcgZm9yIGBheDg4Nzk2YCBzcGVjaWZpY2FsbHksIGFuZCBub3QgYSByZWxhdGVkIGRyaXZlciBsaWtlIGBheDg4Nzk2Y2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEwNTU5NCwiT3V0cHV0VG9rZW5zIjoyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQxMzowODozNy43ODE5NDY4MDhaIiwiU2VxIjoyNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcwNzM2NjU4MjIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29tcGF0aWJsZS4qYXg4ODc5NlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbD01Nj1leGFtcGxlczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYXNpeCxheDg4Nzk2Yy55YW1sLTY1LSAgICAgICAgZXRoZXJuZXRAMCB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hc2l4LGF4ODg3OTZjLnlhbWw6NjY6ICAgICAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJhc2l4LGF4ODg3OTZjXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FzaXgsYXg4ODc5NmMueWFtbC02Ny0gICAgICAgICAgICByZWcgPSBcXHUwMDNjMHgwXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL3NhbXN1bmcvZXh5bm9zMzI1MC1hcnRpazUtZXZhbC5kdHM9NTY9XFx0ZXRoZXJuZXRAMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvc2Ftc3VuZy9leHlub3MzMjUwLWFydGlrNS1ldmFsLmR0czo1NzpcXHRcXHRjb21wYXRpYmxlID0gXFxcImFzaXgsYXg4ODc5NmNcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL3NhbXN1bmcvZXh5bm9zMzI1MC1hcnRpazUtZXZhbC5kdHMtNTgtXFx0XFx0cmVnID0gXFx1MDAzYzB4MFxcdTAwM2U7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz0xMTE4PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGF4ODg3OTZjX2R0X2lkc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jOjExMTk6XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJhc2l4LGF4ODg3OTZjXFxcIiB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTExMjAtXFx0e30sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDEzOjA4OjQ0Ljg1NTYxODA2WiIsIlNlcSI6MjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEzMTc2MDA4NDc5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5c2lzIG9mIHRoZSBgYXg4ODc5NmAgRHJpdmVyIGZvciBGdXp6aW5nIFN1aXRhYmlsaXR5KipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIFwiV2hlcmUgZG9lcyB0aGlzIGRyaXZlciBldmVuIGV4aXN0P1wiIEl0J3MgYSBsZWdhY3kgcGxhdGZvcm0gZHJpdmVyLCBhbmQgbXkgaW1tZWRpYXRlIGNvbmNlcm4gaXMgd2hldGhlciBzeXprYWxsZXIgaGFzIGEgd2F5IHRvIGNyZWF0ZSB0aGUgbmVjZXNzYXJ5IHBsYXRmb3JtIGRldmljZSBmb3IgaXQuIEkgc3RhcnQgZG93biB0aGUgcGF0aCBvZiBjaGVja2luZyBmb3IgYW55IHBzZXVkby1zeXNjYWxscyBsaWtlIGBzeXpfcGxhdGZvcm1fZGV2aWNlX2FkZGAgb3IgZXZlbiBzb21lIGNsZXZlciBoYWNrIGxpa2UgYHN5el9kZXZfY3JlYXRlYC4gSSBrbm93IGJldHRlciB0aGFuIHRvIHRyeSBzZWFyY2hpbmcgdGhlIGBzeXpsYW5nYCBkZXNjcmlwdGlvbnMgZGlyZWN0bHksIG9mIGNvdXJzZS4gTm8sIEkgcmVhbGl6ZSwgc3l6a2FsbGVyIGRvZXNuJ3QgaGF2ZSBhIGdlbmVyaWMgXCJjcmVhdGUgYW55IHBsYXRmb3JtIGRldmljZVwiIGZ1bmN0aW9uYWxpdHkuIEl0J3MgbW9yZSB0YXJnZXRlZCwgbGlrZSB3aXRoIFVTQiBvciA4MDIuMTEuXG5cblRoZW4sIHRoZSBzcGVjaWZpY3Mgb2YgdGhlIGBheDg4Nzk2YCBkcml2ZXIga2ljayBpbi4gVGhpcyBpcyBhIHZlcnkgbmljaGUgcGllY2Ugb2YgaGFyZHdhcmXigJRhbiBBU0lYIEFYODg3OTYsIHdoaWNoIGlzIGFuIE5FMjAwMCBjbG9uZS4gVGhpcyBpcyB1c2VkIG9uIFN1cGVySCBhbmQgQW1pZ2EsIHdoaWNoIGRvZXNuJ3Qgc2VlbSB0byBoYXZlIGEgY2hhbmNlIG9mIHJ1bm5pbmcgdGhpcyBpbiBhbiBlbXVsYXRlZCBlbnZpcm9ubWVudC4gVGhlcmUgaXMgbm8gc3VjaCB2aXJ0dWFsIGRldmljZS4gSXQgaXMgbm90IFVTQi9QQ0ksIHdoaWNoIHN5emthbGxlciAqbWlnaHQqIGJlIGFibGUgdG8gaGVscC5cblxuVGhlIGZhY3QgdGhhdCB0aGUgcGF0Y2ggaXMgXCJ1bmRlciByZXZpZXdcIiBvbiBzeXpib3QgZG9lc24ndCBtZWFuIHN5emJvdCAqZm91bmQqIGEgYnVnLiBJdCBqdXN0IG1lYW5zIHRoZSBwYXRjaCBpcyAqYmVpbmcqIHRlc3RlZC4gSXQgaXMgbm90IHRoZSBzaWduYWwgb2Ygd2hldGhlciB0aGUgY29kZSBpcyByZWFjaGFibGUgaW4gUUVNVS9HQ0UuIElmIHRoZSBjb2RlIGlzIG5vdCByZWFjaGFibGUgaW4gUUVNVS9HQ0UsIGl0J3Mgbm90IHdvcnRoIGZ1enppbmcuXG5cbk15IG5leHQgc3RlcCBpcyB0byBzZWUgaWYsIGJ5IHNvbWUgZmx1a2UsIGl0ICpjb3VsZCogYmUgcHJvYmVkIG9uIHg4Nl82NC4gSSBjaGVjayBpZiB0aGVyZSBpcyBzb21lIHBsYXRmb3JtIGRldmljZSByZWdpc3RlcmVkIHVzaW5nIHRoZSBcImF4ODg3OTZcIiBuYW1lLiBQbGF0Zm9ybSBkZXZpY2VzIGFyZSBlaXRoZXIgY3JlYXRlZCBieSBib2FyZCBjb2RlIG9yIGRldmljZSB0cmVlIGJpbmRpbmdzLiBJJ20gY29uZmlkZW50IHRoZXJlIGFyZSBubyBkZXZpY2UgdHJlZSBiaW5kaW5ncy4gSSBjYW4ndCBjcmVhdGUgZGV2aWNlcyB2aWEgc3lzZnMsIG9yIHVzZSBhIHBzZXVkby1zeXNjYWxsLlxuXG5UaGVyZWZvcmUsIHRoaXMgZHJpdmVyIGlzIHVucmVhY2hhYmxlIGluIHRoZSBzeXprYWxsZXIgZW52aXJvbm1lbnQuIEl0J3MgYSBwbGF0Zm9ybSBkcml2ZXIgZm9yIHNwZWNpZmljIGJvYXJkcyAoU3VwZXJIL0FtaWdhKSBhbmQgd2lsbCBub3QgYmUgcHJvYmVkIGluIFFFTVUvR0NFLiBUaGVyZWZvcmUsIEknbSBtYXJraW5nIGl0IGFzIGBXb3J0aEZ1enppbmc9ZmFsc2VgLlxuXG5JIGFtIHJldmlld2luZyB0aGUgYWN0dWFsIHBhdGNoIHRoYXQgd2FzIHN1Ym1pdHRlZC4gSXQncyBmaXhpbmcgYSBzdGFjayB2YXJpYWJsZSB0aGF0IHdhcyB1bmluaXRpYWxpemVkLiBSZWdhcmRsZXNzLCB0aGUgcmVhY2hhYmlsaXR5IGlzc3VlIHN0aWxsIHJlbWFpbnMgYW5kIEkgYW0gY29uZmlkZW50IGluIG15IGFzc2Vzc21lbnQuXG5cbkkgYW0gcmUtY2hlY2tpbmcgdG8gZW5zdXJlIHRoZXJlIGFyZSBubyBvdGhlciBwbGFjZXMgd2hlcmUgdGhpcyBwbGF0Zm9ybSBkZXZpY2UgaXMgcmVnaXN0ZXJlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTA2NDUzLCJPdXRwdXRUb2tlbnMiOjI2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTA2MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQxMzowODo1OC4wMzE2MzA5MjlaIiwiU2VxIjoyOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcxMDU2OTMzNjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyLipheDg4Nzk2XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYz0yMzk9c3RhdGljIGludCB4c3VyZjEwMF9wcm9iZShzdHJ1Y3Qgem9ycm9fZGV2ICp6ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC94c3VyZjEwMC5jLTMxMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL3hzdXJmMTAwLmM6MzEzOlxcdHBkZXYgPSBwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfcmVzbmRhdGEoXFx1MDAyNnpkZXYtXFx1MDAzZWRldiwgXFxcImF4ODg3OTZcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAveHN1cmYxMDAuYy0zMTQtXFx0XFx0XFx0XFx0XFx0XFx0IHpkZXYtXFx1MDAzZXNsb3RhZGRyLCByZXMsIDIsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDEzOjA5OjA1LjEzNzMyOTQxOVoiLCJTZXEiOjI5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NDAyMTIzMDA3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlVucmVhY2hhYmxlIENvZGUgaW4gTGVnYWN5IERyaXZlcioqXG5cbk9rYXksIHNvIEkndmUgZHVnIGludG8gdGhpcyBjb2RlLCBhbmQgaXQncyBwcmV0dHkgY2xlYXIgdGhpcyBwYXJ0aWN1bGFyIGRyaXZlciBtb2RpZmljYXRpb24sIHNwZWNpZmljYWxseSB3aXRoaW4gYHhzdXJmMTAwLmNgIGFuZCB0aGF0IGBzZXR1cC5jYCBmaWxlIGZvciB0aGUgU3VwZXJIIEhpZ2hsYW5kZXIgYm9hcmQsIGlzIG9ubHkgYWNjZXNzaWJsZSBvbiB2ZXJ5IHNwZWNpZmljLCBvbGRlciBoYXJkd2FyZS4gSSdtIHRhbGtpbmcgQW1pZ2EgWm9ycm8gYnVzIGFuZCB0aGUgU3VwZXJIIEhpZ2hsYW5kZXIgYm9hcmQuIE5vdGhpbmcgaW4gdGhpcyBwYXRjaCBpcyBnb2luZyB0byBiZSB0cmlnZ2VyZWQgaW4gYW55IHN0YW5kYXJkIGZ1enppbmcgZW52aXJvbm1lbnQgdGhhdCBzeXprYWxsZXIgaXMgdXNpbmcsIHlvdSBrbm93LCB0aGUgdXN1YWwgeDg2XzY0IG9yIGFybTY0IFZNcyBsaWtlIHdlIHNlZSB3aXRoIFFFTVUgb3IgR0NFLlxuXG5UaGVyZSdzIGp1c3Qgbm8gcGF0aCBmb3IgaXQgdG8gYmUgcHJvYmVkIG9yIGV4ZWN1dGVkIGdpdmVuIG91ciBjdXJyZW50IHNldHVwLiBJdCdzIGdlb2dyYXBoaWNhbGx5IGlzb2xhdGVkLCBzbyB0byBzcGVhay5cblxuVGhlcmVmb3JlLCBgV29ydGhGdXp6aW5nYCBpcyBkZWZpbml0aXZlbHkgZ2V0dGluZyBzZXQgdG8gYGZhbHNlYC4gTXkgcmVhc29uaW5nIGlzIHNvbGlkOiBUaGlzIHBhdGNoIHRvdWNoZXMgYSBsZWdhY3kgcGxhdGZvcm0gZHJpdmVyIGZvciB0aGUgYXg4ODc5Niwgd2hpY2ggcmVxdWlyZXMgdGhlc2Ugc3BlY2lmaWMsIG5pY2hlIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb25zLCBhbmQgdGhhdCdzIGEgZGVhZCBlbmQgYXMgZmFyIGFzIHJlYWNoaW5nIGl0IHRocm91Z2ggZnV6emluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTA4MjcwLCJPdXRwdXRUb2tlbnMiOjg3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDEzOjA5OjEwLjUzOTQ1ODI3NloiLCJTZXEiOjMwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4NzAwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsZWdhY3kgYXg4ODc5NiBwbGF0Zm9ybSBkcml2ZXIsIHdoaWNoIGlzIG9ubHkgcmVnaXN0ZXJlZCBieSBzcGVjaWZpYyBoYXJkd2FyZSBib2FyZCBjb2RlIChTdXBlckggSGlnaGxhbmRlciBhbmQgQW1pZ2EgWm9ycm8pLiBJdCBjYW5ub3QgYmUgcHJvYmVkIG9yIGV4ZWN1dGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFIHVzZWQgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbGVnYWN5IGF4ODg3OTYgcGxhdGZvcm0gZHJpdmVyLCB3aGljaCBpcyBvbmx5IHJlZ2lzdGVyZWQgYnkgc3BlY2lmaWMgaGFyZHdhcmUgYm9hcmQgY29kZSAoU3VwZXJIIEhpZ2hsYW5kZXIgYW5kIEFtaWdhIFpvcnJvKS4gSXQgY2Fubm90IGJlIHByb2JlZCBvciBleGVjdXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSB1c2VkIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowkv4k4[1] Phase: Running StartedAt: 2026-07-25 13:09:22 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkv4k4[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-25 13:09:22 +0000 UTC FinishedAt: 2026-07-25 13:10:30 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}