Name: series-workflows7mhj Phase: Failed StartedAt: 2026-07-26 06:16:33 +0000 UTC FinishedAt: 2026-07-26 06:58:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7mhj[0] Phase: Succeeded StartedAt: 2026-07-26 06:16:33 +0000 UTC FinishedAt: 2026-07-26 06:57:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7mhj[0].run-triage Phase: Succeeded StartedAt: 2026-07-26 06:16:33 +0000 UTC FinishedAt: 2026-07-26 06:57:54 +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+CgkJCTx0ZD4yMDI2LzA3LzI2IDA2OjU1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYVRlayBXaXJlbGVzcyBFdGhlcm5ldCBEaXNwYXRjaGVyIChXRUQpIGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBvZmZsb2FkIGVuZ2luZSBmb3IgTWVkaWFUZWsgU29DcyAoZS5nLiwgTVQ3OTg2KS4gVGhpcyBjb2RlIHJlcXVpcmVzIHBoeXNpY2FsIE1lZGlhVGVrIGhhcmR3YXJlIGFuZCBpcyBub3QgcmVhY2hhYmxlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgdXNlZCBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMDY6NTU8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA2NWY0MDVkY2M5YjhmODAyNjdhODdlYmEzZTE2NGJhY2YwNTVjZGNhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBKdWwgMjYgMDY6NTU6NTUgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jXG5pbmRleCAxMGQ5YmVhYWUzNzIxNS4uYjQ4YWJhZDk5NWQ3YWMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuY1xuQEAgLTE5MzgsNyAmIzQzOzE5MzgsNyBAQCBtdGtfd2VkX3dkbWFfdHhfcmluZ19zZXR1cChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgaW50IGlkeCwgaW50IHNpemUsXG4gXHR3ZG1hX3czMihkZXYsIE1US19XRE1BX1JJTkdfVFgoaWR4KSAmIzQzOyBNVEtfV0VEX1JJTkdfT0ZTX0NQVV9JRFgsIDApO1xuIFx0d2RtYV93MzIoZGV2LCBNVEtfV0RNQV9SSU5HX1RYKGlkeCkgJiM0MzsgTVRLX1dFRF9SSU5HX09GU19ETUFfSURYLCAwKTtcbiBcbi1cdGlmIChyZXNldClcbiYjNDM7XHRpZiAoIW10a193ZWRfaXNfdjNfb3JfZ3JlYXRlcihkZXYtXHUwMDNlaHcpIFx1MDAyNlx1MDAyNiByZXNldClcbiBcdFx0bXRrX3dlZF9yaW5nX3Jlc2V0KHdkbWEsIE1US19XRURfV0RNQV9SSU5HX1NJWkUsIHRydWUpO1xuIFxuIFx0aWYgKCFpZHgpICB7XG5AQCAtMjMzNCw2ICYjNDM7MjMzNCwxMyBAQCBtdGtfd2VkX3N0YXJ0KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2LCB1MzIgaXJxX21hc2spXG4gXHRcdGlmICghZGV2LVx1MDAzZXJ4X3dkbWFbaV0uZGVzYylcbiBcdFx0XHRtdGtfd2VkX3dkbWFfcnhfcmluZ19zZXR1cChkZXYsIGksIDE2LCBmYWxzZSk7XG4gXG4mIzQzO1x0LypcbiYjNDM7XHQgKiBub24tREJEQyBNVDc5ODYgYWxsb2NhdGVzIG9ubHkgcnhfcmluZ1sxXSBhbmQgdHhfd2RtYVsxXSBkdXJpbmcgc2V0dXBcbiYjNDM7XHQgKiBidXQgdHhfd2RtYVswXSBpcyBhbHNvIG5lZWRlZCBmb3IgV0VEIHRvIGZ1bmN0aW9uLlxuJiM0MztcdCAqL1xuJiM0MztcdGlmIChtdGtfd2VkX2lzX3YyKGRldi1cdTAwM2VodykgXHUwMDI2XHUwMDI2ICFkZXYtXHUwMDNlcnhfcmluZ1swXS5kZXNjKVxuJiM0MztcdFx0bXRrX3dlZF93ZG1hX3R4X3Jpbmdfc2V0dXAoZGV2LCAwLCBNVEtfV0VEX1dETUFfUklOR19TSVpFLCAhIWRldi1cdTAwM2V0eF93ZG1hWzBdLmRlc2MpO1xuJiM0MztcbiBcdGlmIChkZXYtXHUwMDNld2xhbi5od19ycm8pIHtcbiBcdFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgTVRLX1dFRF9SWF9QQUdFX1FVRVVFUzsgaSYjNDM7JiM0MzspIHtcbiBcdFx0XHR1MzIgYWRkciA9IE1US19XRURfUlJPX01TRFVfUEdfQ1RSTDAoaSkgJiM0MztcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAwNjo1NTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIFdpcmVsZXNzIEV0aGVybmV0IERpc3BhdGNoZXIgKFdFRCkgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIG9mZmxvYWQgZW5naW5lIGZvciBNZWRpYVRlayBTb0NzIChlLmcuLCBNVDc5ODYpLiBUaGlzIGNvZGUgcmVxdWlyZXMgcGh5c2ljYWwgTWVkaWFUZWsgaGFyZHdhcmUgYW5kIGlzIG5vdCByZWFjaGFibGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSB1c2VkIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDY1ZjQwNWRjYzliOGY4MDI2N2E4N2ViYTNlMTY0YmFjZjA1NWNkY2EKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU3VuIEp1bCAyNiAwNjo1NTo1NSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYwppbmRleCAxMGQ5YmVhYWUzNzIxNS4uYjQ4YWJhZDk5NWQ3YWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMKQEAgLTE5MzgsNyAmIzQzOzE5MzgsNyBAQCBtdGtfd2VkX3dkbWFfdHhfcmluZ19zZXR1cChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgaW50IGlkeCwgaW50IHNpemUsCiAJd2RtYV93MzIoZGV2LCBNVEtfV0RNQV9SSU5HX1RYKGlkeCkgJiM0MzsgTVRLX1dFRF9SSU5HX09GU19DUFVfSURYLCAwKTsKIAl3ZG1hX3czMihkZXYsIE1US19XRE1BX1JJTkdfVFgoaWR4KSAmIzQzOyBNVEtfV0VEX1JJTkdfT0ZTX0RNQV9JRFgsIDApOwogCi0JaWYgKHJlc2V0KQomIzQzOwlpZiAoIW10a193ZWRfaXNfdjNfb3JfZ3JlYXRlcihkZXYtJmd0O2h3KSAmYW1wOyZhbXA7IHJlc2V0KQogCQltdGtfd2VkX3JpbmdfcmVzZXQod2RtYSwgTVRLX1dFRF9XRE1BX1JJTkdfU0laRSwgdHJ1ZSk7CiAKIAlpZiAoIWlkeCkgIHsKQEAgLTIzMzQsNiAmIzQzOzIzMzQsMTMgQEAgbXRrX3dlZF9zdGFydChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgdTMyIGlycV9tYXNrKQogCQlpZiAoIWRldi0mZ3Q7cnhfd2RtYVtpXS5kZXNjKQogCQkJbXRrX3dlZF93ZG1hX3J4X3Jpbmdfc2V0dXAoZGV2LCBpLCAxNiwgZmFsc2UpOwogCiYjNDM7CS8qCiYjNDM7CSAqIG5vbi1EQkRDIE1UNzk4NiBhbGxvY2F0ZXMgb25seSByeF9yaW5nWzFdIGFuZCB0eF93ZG1hWzFdIGR1cmluZyBzZXR1cAomIzQzOwkgKiBidXQgdHhfd2RtYVswXSBpcyBhbHNvIG5lZWRlZCBmb3IgV0VEIHRvIGZ1bmN0aW9uLgomIzQzOwkgKi8KJiM0MzsJaWYgKG10a193ZWRfaXNfdjIoZGV2LSZndDtodykgJmFtcDsmYW1wOyAhZGV2LSZndDtyeF9yaW5nWzBdLmRlc2MpCiYjNDM7CQltdGtfd2VkX3dkbWFfdHhfcmluZ19zZXR1cChkZXYsIDAsIE1US19XRURfV0RNQV9SSU5HX1NJWkUsICEhZGV2LSZndDt0eF93ZG1hWzBdLmRlc2MpOwomIzQzOwogCWlmIChkZXYtJmd0O3dsYW4uaHdfcnJvKSB7CiAJCWZvciAoaSA9IDA7IGkgJmx0OyBNVEtfV0VEX1JYX1BBR0VfUVVFVUVTOyBpJiM0MzsmIzQzOykgewogCQkJdTMyIGFkZHIgPSBNVEtfV0VEX1JST19NU0RVX1BHX0NUUkwwKGkpICYjNDM7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDA2OjU1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0NTEKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAxOTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgTWVkaWF0ZWsgV0VEIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IHRvdWNoZXMgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuY2AuIFNwZWNpZmljYWxseSwgaXQgc2VlbXMgdG8gYmUgbW9kaWZ5aW5nIGBtdGtfd2VkX3dkbWFfdHhfcmluZ19zZXR1cGAgYW5kIGBtdGtfd2VkX3N0YXJ0YC4gVGhhdCB0ZWxscyBtZSB0aGlzIGlzIGEgTWVkaWF0ZWsgV0VEIChXaXJlbGVzcyBFdGhlcm5ldCBEaXNwYXRjaGVyKSBkcml2ZXIuIE15IGltbWVkaWF0ZSBjb25jZXJuLCBhcyBhbHdheXMgd2hlbiBJIHNlZSBhIGRyaXZlciBjaGFuZ2UsIGlzIGhvdyBhY2Nlc3NpYmxlIGl0IGlzIGZvciBmdXp6aW5nLiBDYW4gSSBldmVuICpyZWFjaCogdGhpcyBpbiBhIHN0YW5kYXJkIFFFTVUgc2V0dXA/IE1lZGlhdGVrIFNvQyBFdGhlcm5ldCBkcml2ZXJzIGFyZSBvZnRlbiBhIHBhaW4uIFRoZXkgdXN1YWxseSByZXF1aXJlIHNwZWNpZmljIGVtdWxhdGlvbiBvciwgYXQgYmVzdCwgYSBQQ0kgcGFzc3Rocm91Z2ggb3IgZ29vZCBlbXVsYXRpb24sIHdoaWNoIGlzbiYjMzk7dCBhbHdheXMgdGhlIGVhc2llc3QgdG8gc2V0IHVwLgoKQWxyaWdodCwgbGV0JiMzOTtzIHN0ZXAgYmFjay4gSXQmIzM5O3MgaW4gdGhlIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9gIGRpcmVjdG9yeSwgc28gdGhhdCYjMzk7cyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIEkgbmVlZCB0byBxdWlja2x5IGRldGVybWluZSBpZiBpdCYjMzk7cyBhIHBsYXRmb3JtIGRyaXZlciBvciBQQ0kuIEEgcGxhdGZvcm0gZHJpdmVyIGlzIGdlbmVyYWxseSBnb2luZyB0byBiZSBlYXNpZXIgdG8gd29yayB3aXRoLCBhdCBsZWFzdCBpbiBzb21lIGVtdWxhdGVkIGVudmlyb25tZW50cy4gTGV0JiMzOTtzIGRvIGEgcXVpY2sgYGdyZXBgIGZvciBgbXRrX3dlZGAgd2l0aGluIHRoYXQgZGlyZWN0b3J5LCBhbmQgc2VlIHdoYXQgdGhlIGRldmljZSBiaW5kaW5nIGxvb2tzIGxpa2UuIFRoYXQgd2lsbCB0ZWxsIG1lIHdoZXJlIEkgc3RhbmQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMDY6NTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXRrX3dlZCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTg3MyBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvTWFrZWZpbGU9Nz1tdGtfZXRoLXkgOj0gbXRrX2V0aF9zb2MubyBtdGtfZXRoX3BhdGgubyBtdGtfcHBlLm8gbXRrX3BwZV9kZWJ1Z2ZzLm8gbXRrX3BwZV9vZmZsb2FkLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL01ha2VmaWxlOjg6bXRrX2V0aC0kKENPTkZJR19ORVRfTUVESUFURUtfU09DX1dFRCkgJiM0Mzs9IG10a193ZWQubyBtdGtfd2VkX21jdS5vIG10a193ZWRfd28ub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvTWFrZWZpbGUtOS1pZmRlZiBDT05GSUdfREVCVUdfRlNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL01ha2VmaWxlOjEwOm10a19ldGgtJChDT05GSUdfTkVUX01FRElBVEVLX1NPQ19XRUQpICYjNDM7PSBtdGtfd2VkX2RlYnVnZnMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvTWFrZWZpbGUtMTEtZW5kaWZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL01ha2VmaWxlOjEyOm9iai0kKENPTkZJR19ORVRfTUVESUFURUtfU09DX1dFRCkgJiM0Mzs9IG10a193ZWRfb3BzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL01ha2VmaWxlLTEzLW9iai0kKENPTkZJR19ORVRfTUVESUFURUtfU1RBUl9FTUFDKSAmIzQzOz0gbXRrX3N0YXJfZW1hYy5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYy0zMi0jaW5jbHVkZSBcJiMzNDttdGtfZXRoX3NvYy5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jOjMzOiNpbmNsdWRlIFwmIzM0O210a193ZWQuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYy0zNC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jPTQ0MTY9c3RhdGljIHZvaWQgbXRrX3BlbmRpbmdfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYy00NDI2LVx0bXRrX3ByZXBhcmVfZm9yX3Jlc2V0KGV0aCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jOjQ0Mjc6XHRtdGtfd2VkX2ZlX3Jlc2V0KCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jLTQ0MjgtXHQvKiBSdW4gYWdhaW4gcmVzZXQgcHJlbGltaW5hcnkgY29uZmlndXJhdGlvbiBpbiBvcmRlciB0byBhdm9pZCBhbnlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jLTQ0NzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jOjQ0NzY6XHRtdGtfd2VkX2ZlX3Jlc2V0X2NvbXBsZXRlKCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jLTQ0NzctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYz01MDk1PXN0YXRpYyBpbnQgbXRrX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYy01MjI1LVx0XHRcdHdkbWFfcGh5ID0gcmVzID8gcmVzLVx1MDAzZXN0YXJ0ICYjNDM7IHdkbWFfYmFzZSA6IDA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jOjUyMjY6XHRcdFx0bXRrX3dlZF9hZGRfaHcobnAsIGV0aCwgZXRoLVx1MDAzZWJhc2UgJiM0Mzsgd2RtYV9iYXNlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYy01MjI3LVx0XHRcdFx0ICAgICAgIHdkbWFfcGh5LCBpKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jLTUzNjQtZXJyX3dlZF9leGl0OlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYzo1MzY1Olx0bXRrX3dlZF9leGl0KCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jLTUzNjYtZXJyX2Rlc3Ryb3lfc2dtaWk6XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYz01MzcyPXN0YXRpYyB2b2lkIG10a19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jLTUzODYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jOjUzODc6XHRtdGtfd2VkX2V4aXQoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmMtNTM4OC1cdG10a19od19kZWluaXQoZXRoKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfcHBlX29mZmxvYWQuYy0xMy0jaW5jbHVkZSBcJiMzNDttdGtfZXRoX3NvYy5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfcHBlX29mZmxvYWQuYzoxNDojaW5jbHVkZSBcJiMzNDttdGtfd2VkLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19wcGVfb2ZmbG9hZC5jLTE1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19wcGVfb2ZmbG9hZC5jPTI2Nz1tdGtfZmxvd19vZmZsb2FkX3JlcGxhY2Uoc3RydWN0IG10a19ldGggKmV0aCwgc3RydWN0IGZsb3dfY2xzX29mZmxvYWQgKmYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3BwZV9vZmZsb2FkLmMtNDg3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3BwZV9vZmZsb2FkLmM6NDg4Olx0aWYgKHdlZF9pbmRleCBcdTAwM2U9IDAgXHUwMDI2XHUwMDI2IChlcnIgPSBtdGtfd2VkX2Zsb3dfYWRkKHdlZF9pbmRleCkpIFx1MDAzYyAwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3BwZV9vZmZsb2FkLmMtNDg5LVx0XHRyZXR1cm4gZXJyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19wcGVfb2ZmbG9hZC5jLTUxNS1cdGlmICh3ZWRfaW5kZXggXHUwMDNlPSAwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3BwZV9vZmZsb2FkLmM6NTE2Olx0ICAgIG10a193ZWRfZmxvd19yZW1vdmUod2VkX2luZGV4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19wcGVfb2ZmbG9hZC5jLTUxNy1cdHJldHVybiBlcnI7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3BwZV9vZmZsb2FkLmM9NTIxPW10a19mbG93X29mZmxvYWRfZGVzdHJveShzdHJ1Y3QgbXRrX2V0aCAqZXRoLCBzdHJ1Y3QgZmxvd19jbHNfb2ZmbG9hZCAqZilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfcHBlX29mZmxvYWQuYy01MzMtXHRpZiAoZW50cnktXHUwMDNld2VkX2luZGV4IFx1MDAzZT0gMClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19wcGVfb2ZmbG9hZC5jOjUzNDpcdFx0bXRrX3dlZF9mbG93X3JlbW92ZShlbnRyeS1cdTAwM2V3ZWRfaW5kZXgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3BwZV9vZmZsb2FkLmMtNTM1LVx0a2ZyZWUoZW50cnkpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xNS0jaW5jbHVkZSBcdTAwM2NsaW51eC9kZWJ1Z2ZzLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxNjojaW5jbHVkZSBcdTAwM2NsaW51eC9zb2MvbWVkaWF0ZWsvbXRrX3dlZC5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTctI2luY2x1ZGUgXHUwMDNjbmV0L2Zsb3dfb2ZmbG9hZC5oXHUwMDNlXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTE5LSNpbmNsdWRlIFwmIzM0O210a19ldGhfc29jLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoyMDojaW5jbHVkZSBcJiMzNDttdGtfd2VkLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0yMS0jaW5jbHVkZSBcJiMzNDttdGtfcHBlLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoyMjojaW5jbHVkZSBcJiMzNDttdGtfd2VkX3dvLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0yMy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NTE6c3RhdGljIHN0cnVjdCBtdGtfd2VkX2h3ICpod19saXN0WzNdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTUyLXN0YXRpYyBERUZJTkVfTVVURVgoaHdfbG9jayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NTQ6c3RydWN0IG10a193ZWRfZmxvd19ibG9ja19wcml2IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo1NTpcdHN0cnVjdCBtdGtfd2VkX2h3ICpodztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy01Ni1cdHN0cnVjdCBuZXRfZGV2aWNlICpkZXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTU4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjU5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX3dlZF9zb2NfZGF0YSBtdDc2MjJfZGF0YSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy02MC1cdC5yZWdtYXAgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTcxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjcyOnN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX3dlZF9zb2NfZGF0YSBtdDc5ODZfZGF0YSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy03My1cdC5yZWdtYXAgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTg0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjg1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX3dlZF9zb2NfZGF0YSBtdDc5ODhfZGF0YSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy04Ni1cdC5yZWdtYXAgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTk0LVx0fSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo5NTpcdC50eF9yaW5nX2Rlc2Nfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgbXRrX3dlZF9ibV9kZXNjKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy05Ni1cdC53ZG1hX2Rlc2Nfc2l6ZSA9IDIgKiBzaXplb2Yoc3RydWN0IG10a193ZG1hX2Rlc2MpLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz05OT1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEwMDp3ZWRfbTMyKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2LCB1MzIgcmVnLCB1MzIgbWFzaywgdTMyIHZhbClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMDEte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMDU9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMDY6d2VkX3NldChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgdTMyIHJlZywgdTMyIG1hc2spXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTA3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9MTExPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTEyOndlZF9jbHIoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYsIHUzMiByZWcsIHUzMiBtYXNrKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTExMy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTExNz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExODp3ZG1hX20zMihzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgdTMyIHJlZywgdTMyIG1hc2ssIHUzMiB2YWwpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTE5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9MTIzPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTI0OndkbWFfc2V0KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2LCB1MzIgcmVnLCB1MzIgbWFzaylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMjUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMjk9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMzA6d2RtYV9jbHIoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYsIHUzMiByZWcsIHUzMiBtYXNrKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEzMS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTEzNT1zdGF0aWMgdTMyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTM2OndpZmlfcjMyKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2LCB1MzIgcmVnKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEzNy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTE0MT1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjE0Mjp3aWZpX3czMihzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgdTMyIHJlZywgdTMyIHZhbClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xNDMte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xNDc9c3RhdGljIHUzMlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjE0ODptdGtfd2VkX3JlYWRfcmVzZXQoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTQ5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9MTUzPXN0YXRpYyB1MzJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxNTQ6bXRrX3dkbWFfcmVhZF9yZXNldChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xNTUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xNTk9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxNjA6bXRrX3dkbWFfdjNfcnhfcmVzZXQoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTYxLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTYzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjE2NDpcdGlmICghbXRrX3dlZF9pc192M19vcl9ncmVhdGVyKGRldi1cdTAwM2VodykpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTY1LVx0XHRyZXR1cm47XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTI0Mz1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MjQ0Om10a193ZG1hX3J4X3Jlc2V0KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTI0NS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTI3MD1zdGF0aWMgdTMyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MjcxOm10a193ZWRfY2hlY2tfYnVzeShzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgdTMyIHJlZywgdTMyIG1hc2spXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMjcyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9Mjc2PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoyNzc6bXRrX3dlZF9wb2xsX2J1c3koc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYsIHUzMiByZWcsIHUzMiBtYXNrKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTI3OC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTI4Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoyODM6XHRyZXR1cm4gcmVhZF9wb2xsX3RpbWVvdXQobXRrX3dlZF9jaGVja19idXN5LCB2YWwsICF2YWwsIHNsZWVwLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTI4NC1cdFx0XHRcdCB0aW1lb3V0LCBmYWxzZSwgZGV2LCByZWcsIG1hc2spO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0yODc9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoyODg6bXRrX3dkbWFfdjNfdHhfcmVzZXQoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMjg5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMjkxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjI5MjpcdGlmICghbXRrX3dlZF9pc192M19vcl9ncmVhdGVyKGRldi1cdTAwM2VodykpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMjkzLVx0XHRyZXR1cm47XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTM2NT1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjM2NjptdGtfd2RtYV90eF9yZXNldChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0zNjcte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0zODU9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzozODY6bXRrX3dlZF9yZXNldChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgdTMyIG1hc2spXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMzg3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMzkwLVx0d2VkX3czMihkZXYsIE1US19XRURfUkVTRVQsIG1hc2spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjM5MTpcdGlmIChyZWFkeF9wb2xsX3RpbWVvdXQobXRrX3dlZF9yZWFkX3Jlc2V0LCBkZXYsIHN0YXR1cyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0zOTItXHRcdFx0ICAgICAgICEoc3RhdHVzIFx1MDAyNiBtYXNrKSwgMCwgMTAwMCkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTM5Nj1zdGF0aWMgdTMyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6Mzk3Om10a193ZWRfd29fcmVhZF9zdGF0dXMoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMzk4LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9NDAyPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NDAzOm10a193ZWRfd29fcmVzZXQoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDA0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo0MDU6XHRzdHJ1Y3QgbXRrX3dlZF93byAqd28gPSBkZXYtXHUwMDNlaHctXHUwMDNld2VkX3dvO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTQwNi1cdHU4IHN0YXRlID0gTVRLX1dFRF9XT19TVEFURV9ESVNBQkxFO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy00MTAtXHRtdGtfd2RtYV90eF9yZXNldChkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjQxMTpcdG10a193ZWRfcmVzZXQoZGV2LCBNVEtfV0VEX1JFU0VUX1dFRCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDEyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjQxMzpcdGlmIChtdGtfd2VkX21jdV9zZW5kX21zZyh3bywgTVRLX1dFRF9NT0RVTEVfSURfV08sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDE0LVx0XHRcdFx0IE1US19XRURfV09fQ01EX0NIQU5HRV9TVEFURSwgXHUwMDI2c3RhdGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTQxNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo0MTg6XHRpZiAocmVhZHhfcG9sbF90aW1lb3V0KG10a193ZWRfd29fcmVhZF9zdGF0dXMsIGRldiwgdmFsLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTQxOS1cdFx0XHQgICAgICAgdmFsID09IE1US19XRURfV09JRl9ESVNBQkxFX0RPTkUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTQ0NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo0NDU6dm9pZCBtdGtfd2VkX2ZlX3Jlc2V0KHZvaWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDQ2LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDUxLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRShod19saXN0KTsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo0NTI6XHRcdHN0cnVjdCBtdGtfd2VkX2h3ICpodyA9IGh3X2xpc3RbaV07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NDUzOlx0XHRzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy00NTQtXHRcdGludCBlcnI7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTQ3MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo0NzI6dm9pZCBtdGtfd2VkX2ZlX3Jlc2V0X2NvbXBsZXRlKHZvaWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDczLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDc4LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRShod19saXN0KTsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo0Nzk6XHRcdHN0cnVjdCBtdGtfd2VkX2h3ICpodyA9IGh3X2xpc3RbaV07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NDgwOlx0XHRzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy00ODEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTQ5NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo0OTU6c3RhdGljIHN0cnVjdCBtdGtfd2VkX2h3ICpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo0OTY6bXRrX3dlZF9hc3NpZ24oc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDk3LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo0OTg6XHRzdHJ1Y3QgbXRrX3dlZF9odyAqaHc7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDk5LVx0aW50IGk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTUwOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo1MDk6XHRcdGlmIChtdGtfd2VkX2lzX3YxKGh3KSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy01MTAtXHRcdFx0cmV0dXJuIE5VTEw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTUyOD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NTI5Om10a193ZWRfYW1zZHVfYnVmZmVyX2FsbG9jKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTUzMC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NTMxOlx0c3RydWN0IG10a193ZWRfaHcgKmh3ID0gZGV2LVx1MDAzZWh3O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjUzMjpcdHN0cnVjdCBtdGtfd2VkX2Ftc2R1ICp3ZWRfYW1zZHU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNTMzLVx0aW50IGk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNTM0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjUzNTpcdGlmICghbXRrX3dlZF9pc192M19vcl9ncmVhdGVyKGh3KSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy01MzYtXHRcdHJldHVybiAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz01NzI9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo1NzM6bXRrX3dlZF9hbXNkdV9mcmVlX2J1ZmZlcihzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy01NzQte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjU3NTpcdHN0cnVjdCBtdGtfd2VkX2Ftc2R1ICp3ZWRfYW1zZHUgPSBkZXYtXHUwMDNlaHctXHUwMDNld2VkX2Ftc2R1O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTU3Ni1cdGludCBpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz01ODk9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjU5MDptdGtfd2VkX2Ftc2R1X2luaXQoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNTkxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo1OTI6XHRzdHJ1Y3QgbXRrX3dlZF9hbXNkdSAqd2VkX2Ftc2R1ID0gZGV2LVx1MDAzZWh3LVx1MDAzZXdlZF9hbXNkdTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy01OTMtXHRpbnQgaSwgcmV0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy02MTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NjEyOlx0cmV0ID0gbXRrX3dlZF9wb2xsX2J1c3koZGV2LCBNVEtfV0VEX0FNU0RVX1NUQV9JTkZPLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTYxMy1cdFx0XHRcdE1US19XRURfQU1TRFVfU1RBX0lORk9fRE9fSU5JVCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTYyNC1cdHdlZF9zZXQoZGV2LCBNVEtfV0VEX0FNU0RVX1BTRSwgTVRLX1dFRF9BTVNEVV9QU0VfUkVTRVQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjYyNTpcdHJldCA9IG10a193ZWRfcG9sbF9idXN5KGRldiwgTVRLX1dFRF9NT05fQU1TRFVfUU1FTV9TVFMxLCBCSVQoMjkpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy02MjYtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTY0MD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NjQxOm10a193ZWRfdHhfYnVmZmVyX2FsbG9jKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTY0Mi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTY0NS1cdGludCB0b2tlbiA9IGRldi1cdTAwM2V3bGFuLnRva2VuX3N0YXJ0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjY0NjpcdHN0cnVjdCBtdGtfd2VkX2J1ZiAqcGFnZV9saXN0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTY0Ny1cdGRtYV9hZGRyX3QgZGVzY19waHlzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy02NDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NjUwOlx0aWYgKCFtdGtfd2VkX2lzX3YzX29yX2dyZWF0ZXIoZGV2LVx1MDAzZWh3KSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTY1MS1cdFx0cmluZ19zaXplID0gZGV2LVx1MDAzZXdsYW4ubmJ1ZiBcdTAwMjYgfihNVEtfV0VEX0JVRl9QRVJfUEFHRSAtIDEpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy03MDMtXHRcdFx0ZGVzYy1cdTAwM2VidWYwID0gY3B1X3RvX2xlMzIoYnVmX3BoeXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjcwNDpcdFx0XHRpZiAoIW10a193ZWRfaXNfdjNfb3JfZ3JlYXRlcihkZXYtXHUwMDNlaHcpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNzA1LVx0XHRcdFx0dTMyIHR4ZF9zaXplO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy03MTAtXHRcdFx0XHRjdHJsID0gRklFTERfUFJFUChNVEtfV0RNQV9ERVNDX0NUUkxfTEVOMCwgdHhkX3NpemUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjcxMTpcdFx0XHRcdGlmIChtdGtfd2VkX2lzX3YxKGRldi1cdTAwM2VodykpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNzEyLVx0XHRcdFx0XHRjdHJsIHw9IE1US19XRE1BX0RFU0NfQ1RSTF9MQVNUX1NFRzEgfFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz03Mzc9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo3Mzg6bXRrX3dlZF9mcmVlX3R4X2J1ZmZlcihzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy03Mzkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjc0MDpcdHN0cnVjdCBtdGtfd2VkX2J1ZiAqcGFnZV9saXN0ID0gZGV2LVx1MDAzZXR4X2J1Zl9yaW5nLnBhZ2VzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjc0MTpcdHN0cnVjdCBtdGtfd2VkX2h3ICpodyA9IGRldi1cdTAwM2VodztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy03NDItXHRpbnQgaSwgcGFnZV9pZHggPSAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz03NzE9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjc3MjptdGtfd2VkX2h3cnJvX2J1ZmZlcl9hbGxvYyhzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy03NzMte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTc3NC1cdGludCBuX3BhZ2VzID0gTVRLX1dFRF9SWF9QR19CTV9DTlQgLyBNVEtfV0VEX1JYX0JVRl9QRVJfUEFHRTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo3NzU6XHRzdHJ1Y3QgbXRrX3dlZF9idWYgKnBhZ2VfbGlzdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo3NzY6XHRzdHJ1Y3QgbXRrX3dlZF9ibV9kZXNjICpkZXNjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTc3Ny1cdGRtYV9hZGRyX3QgZGVzY19waHlzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz04MzQ9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjgzNTptdGtfd2VkX3J4X2J1ZmZlcl9hbGxvYyhzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy04MzYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjgzNzpcdHN0cnVjdCBtdGtfd2VkX2JtX2Rlc2MgKmRlc2M7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtODM4LVx0ZG1hX2FkZHJfdCBkZXNjX3BoeXM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTg1MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo4NTE6XHRyZXR1cm4gbXRrX3dlZF9od3Jyb19idWZmZXJfYWxsb2MoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy04NTItfVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz04NTQ9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo4NTU6bXRrX3dlZF9od3Jyb19mcmVlX2J1ZmZlcihzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy04NTYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjg1NzpcdHN0cnVjdCBtdGtfd2VkX2J1ZiAqcGFnZV9saXN0ID0gZGV2LVx1MDAzZWh3X3Jyby5wYWdlcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo4NTg6XHRzdHJ1Y3QgbXRrX3dlZF9ibV9kZXNjICpkZXNjID0gZGV2LVx1MDAzZWh3X3Jyby5kZXNjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTg1OS1cdGludCBpLCBwYWdlX2lkeCA9IDA7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTg4OT1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjg5MDptdGtfd2VkX2ZyZWVfcnhfYnVmZmVyKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTg5MS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6ODkyOlx0c3RydWN0IG10a193ZWRfYm1fZGVzYyAqZGVzYyA9IGRldi1cdTAwM2VyeF9idWZfcmluZy5kZXNjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTg5My1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtOTAwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjkwMTpcdG10a193ZWRfaHdycm9fZnJlZV9idWZmZXIoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy05MDItfVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz05MDQ9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo5MDU6bXRrX3dlZF9od3Jyb19pbml0KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTkwNi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6OTA3Olx0aWYgKCFtdGtfd2VkX2dldF9yeF9jYXBhKGRldikgfHwgIWRldi1cdTAwM2V3bGFuLmh3X3JybylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy05MDgtXHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9OTI0PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6OTI1Om10a193ZWRfcnhfYnVmZmVyX2h3X2luaXQoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtOTI2LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtOTM1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjkzNjpcdG10a193ZWRfaHdycm9faW5pdChkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTkzNy19XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTkzOT1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjk0MDptdGtfd2VkX2ZyZWVfcmluZyhzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgc3RydWN0IG10a193ZWRfcmluZyAqcmluZylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy05NDEte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz05NDk9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo5NTA6bXRrX3dlZF9mcmVlX3J4X3JpbmdzKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTk1MS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6OTUyOlx0bXRrX3dlZF9mcmVlX3J4X2J1ZmZlcihkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjk1MzpcdG10a193ZWRfZnJlZV9yaW5nKGRldiwgXHUwMDI2ZGV2LVx1MDAzZXJyby5yaW5nKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy05NTQtfVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz05NTY9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo5NTc6bXRrX3dlZF9mcmVlX3R4X3JpbmdzKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTk1OC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTk2MS1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUoZGV2LVx1MDAzZXR4X3JpbmcpOyBpJiM0MzsmIzQzOylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo5NjI6XHRcdG10a193ZWRfZnJlZV9yaW5nKGRldiwgXHUwMDI2ZGV2LVx1MDAzZXR4X3JpbmdbaV0pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTk2My1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUoZGV2LVx1MDAzZXJ4X3dkbWEpOyBpJiM0MzsmIzQzOylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo5NjQ6XHRcdG10a193ZWRfZnJlZV9yaW5nKGRldiwgXHUwMDI2ZGV2LVx1MDAzZXJ4X3dkbWFbaV0pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTk2NS19XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTk2Nz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjk2ODptdGtfd2VkX3NldF9leHRfaW50KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2LCBib29sIGVuKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTk2OS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTk5Nz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjk5ODptdGtfd2VkX3NldF81MTJfc3VwcG9ydChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgYm9vbCBlbmFibGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtOTk5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMDAwOlx0aWYgKCFtdGtfd2VkX2lzX3YyKGRldi1cdTAwM2VodykpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTAwMS1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMDE0PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMDE1Om10a193ZWRfY2hlY2tfd2ZkbWFfcnhfZmlsbChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMDE2Olx0XHRcdCAgICBzdHJ1Y3QgbXRrX3dlZF9yaW5nICpyaW5nKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEwMTcte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMDM3PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTAzODptdGtfd2VkX2RtYV9kaXNhYmxlKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEwMzkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMDU0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEwNTU6XHRpZiAobXRrX3dlZF9pc192MShkZXYtXHUwMDNlaHcpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTA1Ni1cdFx0cmVnbWFwX3dyaXRlKGRldi1cdTAwM2Vody1cdTAwM2VtaXJyb3IsIGRldi1cdTAwM2Vody1cdTAwM2VpbmRleCAqIDQsIDApO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMDY4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEwNjk6XHRcdGlmIChtdGtfd2VkX2lzX3YzX29yX2dyZWF0ZXIoZGV2LVx1MDAzZWh3KSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMDcwOlx0XHQgICAgbXRrX3dlZF9nZXRfcnhfY2FwYShkZXYpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTA3MS1cdFx0XHR3ZG1hX2NscihkZXYsIE1US19XRE1BX1BSRUZfVFhfQ0ZHLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMDc3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEwNzg6XHRtdGtfd2VkX3NldF81MTJfc3VwcG9ydChkZXYsIGZhbHNlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMDc5LX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9MTA4MT1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEwODI6bXRrX3dlZF9zdG9wKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEwODMte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEwODQ6XHRtdGtfd2VkX2RtYV9kaXNhYmxlKGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTA4NTpcdG10a193ZWRfc2V0X2V4dF9pbnQoZGV2LCBmYWxzZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTA4Ni1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTA5MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMDkyOlx0aWYgKCFtdGtfd2VkX2dldF9yeF9jYXBhKGRldikpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTA5My1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMDk5PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTEwMDptdGtfd2VkX2RlaW5pdChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMTAxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMTAyOlx0bXRrX3dlZF9zdG9wKGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTEwMy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTEwOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMTEwOlx0aWYgKG10a193ZWRfaXNfdjEoZGV2LVx1MDAzZWh3KSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMTExLVx0XHRyZXR1cm47XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTExMTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTExODpcdGlmIChtdGtfd2VkX2lzX3YzX29yX2dyZWF0ZXIoZGV2LVx1MDAzZWh3KSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTExMTktXHRcdHdlZF9jbHIoZGV2LCBNVEtfV0VEX0NUUkwsIE1US19XRURfQ1RSTF9UWF9BTVNEVV9FTik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTExMjc9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMTI4Ol9fbXRrX3dlZF9kZXRhY2goc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTEyOS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTEzMDpcdHN0cnVjdCBtdGtfd2VkX2h3ICpodyA9IGRldi1cdTAwM2VodztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMTMxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExMzI6XHRtdGtfd2VkX2RlaW5pdChkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTExMzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTEzNC1cdG10a193ZG1hX3J4X3Jlc2V0KGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTEzNTpcdG10a193ZWRfcmVzZXQoZGV2LCBNVEtfV0VEX1JFU0VUX1dFRCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTEzNjpcdG10a193ZWRfYW1zZHVfZnJlZV9idWZmZXIoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMTM3Olx0bXRrX3dlZF9mcmVlX3R4X2J1ZmZlcihkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExMzg6XHRtdGtfd2VkX2ZyZWVfdHhfcmluZ3MoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMTM5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExNDA6XHRpZiAobXRrX3dlZF9nZXRfcnhfY2FwYShkZXYpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTE0MS1cdFx0aWYgKGh3LVx1MDAzZXdlZF93bylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMTQyOlx0XHRcdG10a193ZWRfd29fcmVzZXQoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMTQzOlx0XHRtdGtfd2VkX2ZyZWVfcnhfcmluZ3MoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMTQ0LVx0XHRpZiAoaHctXHUwMDNld2VkX3dvKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExNDU6XHRcdFx0bXRrX3dlZF93b19kZWluaXQoaHcpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTExNDYtXHR9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTExNjc9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMTY4Om10a193ZWRfZGV0YWNoKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTExNjkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTExNzAtXHRtdXRleF9sb2NrKFx1MDAyNmh3X2xvY2spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExNzE6XHRfX210a193ZWRfZGV0YWNoKGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTE3Mi1cdG11dGV4X3VubG9jayhcdTAwMjZod19sb2NrKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9MTE3NT1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExNzY6bXRrX3dlZF9idXNfaW5pdChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMTc3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTE4MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMTgyOlx0XHRpZiAobXRrX3dlZF9pc192MihkZXYtXHUwMDNlaHcpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTE4My1cdFx0XHRzdHJ1Y3QgcmVnbWFwICpyZWdzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMjI4PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTIyOTptdGtfd2VkX3NldF93cGRtYShzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMjMwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTIzMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMjMzOlx0aWYgKG10a193ZWRfaXNfdjEoZGV2LVx1MDAzZWh3KSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEyMzQtXHRcdHdlZF93MzIoZGV2LCBNVEtfV0VEX1dQRE1BX0NGR19CQVNFLCAgZGV2LVx1MDAzZXdsYW4ud3BkbWFfcGh5cyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEyMzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTIzODpcdG10a193ZWRfYnVzX2luaXQoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMjM5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMjQ0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEyNDU6XHRpZiAoIW10a193ZWRfZ2V0X3J4X2NhcGEoZGV2KSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMjQ2LVx0XHRyZXR1cm47XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEyNTAtXHRcdGRldi1cdTAwM2V3bGFuLndwZG1hX3J4WzBdKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMjUxOlx0aWYgKG10a193ZWRfaXNfdjNfb3JfZ3JlYXRlcihkZXYtXHUwMDNlaHcpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEyNTItXHRcdHdlZF93MzIoZGV2LCBkZXYtXHUwMDNlaHctXHUwMDNlc29jLVx1MDAzZXJlZ21hcC53cGRtYV9yeF9yaW5nWzFdLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMjY1PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTI2NjptdGtfd2VkX2h3X2luaXRfZWFybHkoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTI2Ny17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEyNzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTI3MTpcdG10a193ZWRfZGVpbml0KGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTI3MjpcdG10a193ZWRfcmVzZXQoZGV2LCBNVEtfV0VEX1JFU0VUX1dFRCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTI3MzpcdG10a193ZWRfc2V0X3dwZG1hKGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTI3NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMjc1Olx0aWYgKCFtdGtfd2VkX2lzX3YzX29yX2dyZWF0ZXIoZGV2LVx1MDAzZWh3KSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEyNzYtXHRcdG1hc2sgfD0gTVRLX1dFRF9XRE1BX0dMT19DRkdfRFlOQU1JQ19ETUFEX1JFQ1lDTEUgfFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMjgyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEyODM6XHRpZiAobXRrX3dlZF9pc192MShkZXYtXHUwMDNlaHcpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTI4NC1cdFx0dTMyIG9mZnNldCA9IGRldi1cdTAwM2Vody1cdTAwM2VpbmRleCA/IDB4MDQwMDA0MDAgOiAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMzEyPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMzEzOm10a193ZWRfcnJvX3JpbmdfYWxsb2Moc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYsIHN0cnVjdCBtdGtfd2VkX3JpbmcgKnJpbmcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTMxNC1cdFx0ICAgICAgIGludCBzaXplKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMzI5PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMzMwOm10a193ZWRfcnJvX2FsbG9jKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEzMzEte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMzQxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEzNDI6XHRyZXR1cm4gbXRrX3dlZF9ycm9fcmluZ19hbGxvYyhkZXYsIFx1MDAyNmRldi1cdTAwM2Vycm8ucmluZyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMzQzLVx0XHRcdFx0ICAgICAgTVRLX1dFRF9SUk9fUVVFX0NOVCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTEzNDY9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEzNDc6bXRrX3dlZF9ycm9fY2ZnKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEzNDgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEzNDk6XHRzdHJ1Y3QgbXRrX3dlZF93byAqd28gPSBkZXYtXHUwMDNlaHctXHUwMDNld2VkX3dvO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEzNTAtXHRzdHJ1Y3Qge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMzcxLVxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMDY6NTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTYxODIKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiA1MDUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQXNzZXNzaW5nIHRoZSBGdXp6YWJpbGl0eSBvZiB0aGUgbXRrX3dlZCBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYG10a193ZWRgIGRyaXZlci4gRnJvbSB0aGUgY29kZSwgaXQgbG9va3MgbGlrZSBpdCYjMzk7cyBhIGhhcmR3YXJlIGRyaXZlciBmb3IgTWVkaWF0ZWsgU29Dcywgc3BlY2lmaWNhbGx5IHVzaW5nIGZ1bmN0aW9ucyBsaWtlIGBtdGtfd2VkX2lzX3YyKGRldi0mZ3Q7aHcpYCBhbmQgYG10a193ZWRfaXNfdjNfb3JfZ3JlYXRlcihkZXYtJmd0O2h3KWAuIE15IGluaXRpYWwgdGhvdWdodCBpcywgY2FuIHdlIGV2ZW4gZnV6eiB0aGlzIGluIFFFTVU/IExldCYjMzk7cyBmaWd1cmUgb3V0IHRoZSBkZXZpY2UgdHlwZSBmaXJzdDsgaXMgaXQgYSBQQ0kgZGV2aWNlIG9yIGEgcGxhdGZvcm0gZGV2aWNlPwoKQSBxdWljayBzZWFyY2ggaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmNgIHJldmVhbHMgdGhhdCBgbXRrX3Byb2JlYCBpcyBhIHBsYXRmb3JtIGRyaXZlciBwcm9iZS4gVGhhdCBtYWtlcyB0aGluZ3MgaW1tZWRpYXRlbHkgbW9yZSBjb21wbGljYXRlZC4gUGxhdGZvcm0gZHJpdmVycyBmb3IgTWVkaWF0ZWsgU29DcywgcGFydGljdWxhcmx5IHRob3NlIHRhcmdldGluZyBzcGVjaWZpYyBjaGlwcyBsaWtlIHRoZSBNVDc2MjIsIE1UNzk4Niwgb3IgTVQ3OTg4LCBhcmUgKm5vdCogdHlwaWNhbGx5IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCgpXYWl0LCB0aGlzIHNwZWNpZmljIHByb2JsZW0gc3RhdGVtZW50IG1lbnRpb25zIHNvbWV0aGluZyBhYm91dCBkcml2ZXJzLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgZHJpdmVyIGlzICphY3R1YWxseSogd29ydGggZnV6emluZy4gSSByZW1lbWJlciByZWFkaW5nIHNvbWV0aGluZyBhYm91dCB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyBiZWluZyBleHBsaWNpdGx5IGV4Y2x1ZGVkLiAgRG9lcyB0aGUgZXhjbHVzaW9uIGluY2x1ZGUgcGxhdGZvcm0gZHJpdmVycyBmb3Igc3BlY2lmaWMgU29Dcz8gQmFzZWQgb24gbXkgZXhwZXJpZW5jZSwgaXQgdXN1YWxseSBkb2VzOyB0aGVzZSBraW5kcyBvZiBkcml2ZXJzIGNhbiYjMzk7dCBiZSBwcm9iZWQgaW4gc3RhbmRhcmQgUUVNVSB1bmxlc3MgdGhlcmUmIzM5O3MgYSB2ZXJ5IHNwZWNpZmljIG1hY2hpbmUgdHlwZSwgbGlrZSBgcmFzcGkzYmAgb3IgYHZpcnRgLCB0aGF0IGhhcHBlbnMgdG8gZW11bGF0ZSB0aGUgcmVsZXZhbnQgTWVkaWF0ZWsgaGFyZHdhcmUuIFFFTVUgZGVmaW5pdGVseSBkb2VzbiYjMzk7dCBlbXVsYXRlIE1lZGlhdGVrIE1UNzk4Ni9NVDc5ODggRXRoZXJuZXQuCgpPa2F5LCBsZXQgbWUgZG91YmxlLWNoZWNrIHRob3VnaC4gSXQmIzM5O3MgYWx3YXlzIHdvcnRoIHZlcmlmeWluZyBhc3N1bXB0aW9ucy4gSXMgdGhlcmUgKmFueSogdmlydHVhbCBvciBlbXVsYXRlZCBNZWRpYXRlayBFdGhlcm5ldCBpbiBzdGFuZGFyZCBRRU1VIHRoYXQgY291bGQgcG9zc2libHkgbGVhZCB1cyB0byByZWFjaCB0aGlzIGRyaXZlcj8KCk5vLCB0aGUgYW5zd2VyIGlzIHN0aWxsIG5vLiBTdGFuZGFyZCBRRU1VIGRvZXNuJiMzOTt0IGVtdWxhdGUgTWVkaWF0ZWsgRXRoZXJuZXQuCgpXYWl0LCBTeXprYWxsZXIgbWlnaHQgb2ZmZXIgYSB3YXkgaW4gaWYgaXQgdXNlcyBzb21ldGhpbmcgbGlrZSBgc3l6X21vdW50YCwgb3IgcGVyaGFwcyBzb21lIG90aGVyIG1ldGhvZC4gIEJ1dCB0aGlzICppcyogYSBwbGF0Zm9ybSBkZXZpY2UuIFdoaWxlIFN5emthbGxlciAqY2FuKiBmdXp6IHBsYXRmb3JtIGRldmljZXMsIGl0JiMzOTtzIHJlbGlhbnQgb24gYSBtZXRob2QgdG8gaW5qZWN0IGRldmljZSB0cmVlIG5vZGVzIG9yIHNvbWUgb3RoZXIgbWVhbnMgdG8gaW5zdGFudGlhdGUgdGhlIGRldmljZS4gUmVhY2hpbmcgaGFyZHdhcmUtc3BlY2lmaWMgcGxhdGZvcm0gZHJpdmVyIGNvZGUgd2l0aG91dCBlbXVsYXRpb24gaXMgZ2VuZXJhbGx5IGV4dHJlbWVseSBkaWZmaWN1bHQuIFRoaXMgY291bGQgYmUgaW5jcmVkaWJseSBkaWZmaWN1bHQgdG8gcmVhY2guCgpPa2F5LCBsZXQmIzM5O3MgbG9vayBhdCByZWFjaGFiaWxpdHkuIFRoZSBwYXRjaCBtb2RpZmllcyBgbXRrX3dlZF93ZG1hX3R4X3Jpbmdfc2V0dXBgIGFuZCBgbXRrX3dlZF9zdGFydGAuIFRoYXQmIzM5O3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBCdXQsIHdoZXJlIGlzIGBtdGtfd2VkX3N0YXJ0YCAqY2FsbGVkKiBmcm9tPyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY2FsbCBjaGFpbiB0byBhc3Nlc3Mgd2hldGhlciB3ZSBjYW4gcmVhc29uYWJseSB0cmlnZ2VyIHRoaXMgY29kZSBwYXRoLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDA2OjU2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210a193ZWRfc3RhcnQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTIxNjA9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoyMTYxOm10a193ZWRfc3RhcnRfaHdfcnJvKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2LCB1MzIgaXJxX21hc2ssIGJvb2wgcmVzZXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMjE2Mi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTIzMjU9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoyMzI2Om10a193ZWRfc3RhcnQoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYsIHUzMiBpcnFfbWFzaylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0yMzI3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9Mjc3OT12b2lkIG10a193ZWRfYWRkX2h3KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsIHN0cnVjdCBtdGtfZXRoICpldGgsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTI3ODgtXHRcdC5tc2dfdXBkYXRlID0gbXRrX3dlZF9tY3VfbXNnX3VwZGF0ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoyNzg5Olx0XHQuc3RhcnQgPSBtdGtfd2VkX3N0YXJ0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTI3OTAtXHRcdC5zdG9wID0gbXRrX3dlZF9zdG9wLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0yNzk4LVx0XHQuc2V0dXBfdGMgPSBtdGtfd2VkX3NldHVwX3RjLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjI3OTk6XHRcdC5zdGFydF9od19ycm8gPSBtdGtfd2VkX3N0YXJ0X2h3X3JybyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0yODAwLVx0XHQucnJvX3J4X3Jpbmdfc2V0dXAgPSBtdGtfd2VkX3Jyb19yeF9yaW5nX3NldHVwLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDA2OjU2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE3ODM0CgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogNDUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkludmVzdGlnYXRpbmcgdGhlIGBtdGtfd2VkX29wc2AgU3RydWN0dXJlKioKClJpZ2h0LCBgbXRrX3dlZF9vcHNgLi4uIHRoYXQgcmluZ3MgYSBiZWxsLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGl0JiMzOTtzIGRlZmluaXRlbHkgcmVnaXN0ZXJlZCBpbiBgbXRrX3dlZF9vcHNgLCB3aGljaCBzY3JlYW1zIE1lZGlhdGVrIFdpRmkgZHJpdmVyIGludm9sdmVtZW50LCBwcm9iYWJseSBhbG9uZyB0aGUgbGluZXMgb2YgdGhlIGBtdDc2YCBzZXJpZXMuIFRoaXMgc3VnZ2VzdHMgaXQmIzM5O3MgbGlrZWx5IGEga2V5IGludGVyZmFjZSBvciBhIHNldCBvZiBvcGVyYXRpb25hbCBmdW5jdGlvbnMgZm9yIGhhcmR3YXJlIGFjY2VsZXJhdGlvbiB3aXRoaW4gdGhlaXIgV2lGaSBzb2x1dGlvbnMuIFRoZSBuYW1lIGRlZmluaXRlbHkgbGVhbnMgaW4gdGhlIGRpcmVjdGlvbiBvZiBzb21ldGhpbmcgcmVsYXRlZCB0byAmIzM0O1dpcmVsZXNzIEVuaGFuY2VkIERhdGEmIzM0OyBvcGVyYXRpb25zLCBvciBwZXJoYXBzICYjMzQ7V2lyZWxlc3MgRW5jcnlwdGlvbiBhbmQgRGVjcnlwdGlvbiYjMzQ7LCB3aGljaCB3b3VsZCBiZSBzdGFuZGFyZCBmb3IgdGhpcyBjb250ZXh0LgoKTXkgbmV4dCBpbW1lZGlhdGUgcXVlc3Rpb24g4oCTIG9yIHJhdGhlciwgdGhlICpmaXJzdCogc3RlcCBpbiBteSBtZW50YWwgZGVidWdnaW5nIHByb2Nlc3Mg4oCTIGlzLCAqd2hlcmUqIGlzIHRoaXMgYG10a193ZWRfb3BzYCBzdHJ1Y3R1cmUgYWN0dWFsbHkgKnVzZWQqPyBJIG5lZWQgdG8gdHJhY2sgZG93biBhbGwgdGhlIGluc3RhbmNlcyB3aGVyZSBpdCYjMzk7cyByZWZlcmVuY2VkLCB0aGUgY2FsbHMgb3IgYXNzaWdubWVudHMgdGhhdCBpbnRlcmZhY2Ugd2l0aCBpdC4gSSYjMzk7ZCBuZWVkIHRvIGxvb2sgYXQgdGhlIGRlZmluaXRpb25zIHdpdGhpbiB0aGUgcmVsZXZhbnQgZHJpdmVyIG1vZHVsZXMsIGlkZWFsbHkgdHJhY2luZyB0aGUgZXhlY3V0aW9uIGZsb3cuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyByZWxhdGlvbnNoaXAgdG8gdGhlIHVuZGVybHlpbmcgaGFyZHdhcmUgYWNjZWxlcmF0aW9uIG1lY2hhbmlzbXMsIHByb2JhYmx5IHdpdGhpbiB0aGUgbmV0d29yayBpbnRlcmZhY2UuIEZpbmRpbmcgYWxsIG9mIGl0cyB1c2VzIGlzIHdoZXJlIEkgd291bGQgc3RhcnQuIFRoaXMgaXMgdGhlIGx5bmNocGluLCB0aGUgY3J1Y2lhbCBwaWVjZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAwNjo1NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdGtfd2VkX29wcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9NYWtlZmlsZT0xMT1lbmRpZlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvTWFrZWZpbGU6MTI6b2JqLSQoQ09ORklHX05FVF9NRURJQVRFS19TT0NfV0VEKSAmIzQzOz0gbXRrX3dlZF9vcHMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvTWFrZWZpbGUtMTMtb2JqLSQoQ09ORklHX05FVF9NRURJQVRFS19TVEFSX0VNQUMpICYjNDM7PSBtdGtfc3Rhcl9lbWFjLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9Mjc3OT12b2lkIG10a193ZWRfYWRkX2h3KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsIHN0cnVjdCBtdGtfZXRoICpldGgsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTI3ODIte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjI3ODM6XHRzdGF0aWMgY29uc3Qgc3RydWN0IG10a193ZWRfb3BzIHdlZF9vcHMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMjc4NC1cdFx0LmF0dGFjaCA9IG10a193ZWRfYXR0YWNoLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWRfb3BzLmMtNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWRfb3BzLmM6Nzpjb25zdCBzdHJ1Y3QgbXRrX3dlZF9vcHMgX19yY3UgKm10a19zb2Nfd2VkX29wcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWRfb3BzLmMtOC1FWFBPUlRfU1lNQk9MX0dQTChtdGtfc29jX3dlZF9vcHMpO1xuLS1cbmluY2x1ZGUvbGludXgvc29jL21lZGlhdGVrL210a193ZWQuaD04NT1zdHJ1Y3QgbXRrX3dlZF9kZXZpY2Uge1xuaW5jbHVkZS9saW51eC9zb2MvbWVkaWF0ZWsvbXRrX3dlZC5oLTg2LSNpZmRlZiBDT05GSUdfTkVUX01FRElBVEVLX1NPQ19XRURcbmluY2x1ZGUvbGludXgvc29jL21lZGlhdGVrL210a193ZWQuaDo4NzpcdGNvbnN0IHN0cnVjdCBtdGtfd2VkX29wcyAqb3BzO1xuaW5jbHVkZS9saW51eC9zb2MvbWVkaWF0ZWsvbXRrX3dlZC5oLTg4LVx0c3RydWN0IGRldmljZSAqZGV2O1xuLS1cbmluY2x1ZGUvbGludXgvc29jL21lZGlhdGVrL210a193ZWQuaC0xOTQtXG5pbmNsdWRlL2xpbnV4L3NvYy9tZWRpYXRlay9tdGtfd2VkLmg6MTk1OnN0cnVjdCBtdGtfd2VkX29wcyB7XG5pbmNsdWRlL2xpbnV4L3NvYy9tZWRpYXRlay9tdGtfd2VkLmgtMTk2LVx0aW50ICgqYXR0YWNoKShzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldikgX19yZWxlYXNlcyhSQ1UpO1xuLS1cbmluY2x1ZGUvbGludXgvc29jL21lZGlhdGVrL210a193ZWQuaC0yMjktXG5pbmNsdWRlL2xpbnV4L3NvYy9tZWRpYXRlay9tdGtfd2VkLmg6MjMwOmV4dGVybiBjb25zdCBzdHJ1Y3QgbXRrX3dlZF9vcHMgX19yY3UgKm10a19zb2Nfd2VkX29wcztcbmluY2x1ZGUvbGludXgvc29jL21lZGlhdGVrL210a193ZWQuaC0yMzEtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMDY6NTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTg4NDQKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiA1MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqSW52ZXN0aWdhdGluZyB0aGUgbXQ3NiBEcml2ZXImIzM5O3MgV0VEIE9wZXJhdGlvbnMqKgoKUmlnaHQsIHNvIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgdGhlIGBtdGtfd2VkX29wc2Agc3RydWN0dXJlLiBJIGtub3cgaXQmIzM5O3MgZnVuZGFtZW50YWwgdG8gdGhlIG9wZXJhdGlvbiBvZiB0aGUgYG10NzZgIGRyaXZlci4gTXkgaW1tZWRpYXRlIGdvYWwgaXMgdG8gdW5kZXJzdGFuZCBob3cgdGhpcyBzdHJ1Y3R1cmUgaXMgYWN0dWFsbHkgdXNlZCB3aXRoaW4gdGhhdCBzcGVjaWZpYyBkcml2ZXIuCgpUaGVyZWZvcmUsIEkmIzM5O2xsIHVzZSBgZ3JlcGAgdG8gcXVpY2tseSBsb2NhdGUgYWxsIGluc3RhbmNlcyBvZiBgbXRrX3NvY193ZWRfb3BzYCB3aXRoaW4gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2YCBkaXJlY3RvcnkuIFRoaXMgc2hvdWxkIGdpdmUgbWUgYSBzb2xpZCBvdmVydmlldyBvZiBpdHMgcm9sZSBhbmQgaG93IGl0JiMzOTtzIGludGVncmF0ZWQgd2l0aCB0aGUgYnJvYWRlciBgbXQ3NmAgZnJhbWV3b3JrLiBJIGV4cGVjdCB0byBmaW5kIGl0cyBkZWNsYXJhdGlvbiwgYXNzaWdubWVudHMsIGFuZCBjYWxscy4gVGhpcyB0YXJnZXRlZCBhcHByb2FjaCB3aWxsIGhvcGVmdWxseSBleHBvc2UgdGhlIGRyaXZlciYjMzk7cyBXRUQgaW5pdGlhbGl6YXRpb24gYW5kIGludGVyYWN0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAwNjo1NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210a19zb2Nfd2VkX29wcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMDY6NTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTkxMzQKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAyOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDoKCioqRGlnZ2luZyBpbnRvIHRoZSBNZWRpYXRlayBXaXJlbGVzcyBEcml2ZXIqKgoKT2theSwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhpcyBNZWRpYXRlayB3aXJlbGVzcyBkcml2ZXIgYmV0dGVyLiBTcGVjaWZpY2FsbHksIEkmIzM5O20gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgc29tZXRoaW5nIHJlbGF0ZWQgdG8gYG10a193ZWRgLiBMZXQmIzM5O3MgZ2V0IHJpZ2h0IHRvIGl0LiBNeSBmaXJzdCBpbnN0aW5jdCBpcyB0byBkaXZlIGludG8gdGhlIGNvZGUuIEdpdmVuIHdoYXQgSSBrbm93IGFib3V0IE1lZGlhdGVrJiMzOTtzIHdpcmVsZXNzIG9mZmVyaW5ncywgdGhlIGxvZ2ljYWwgcGxhY2UgdG8gc3RhcnQgaXMgdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2AgZGlyZWN0b3J5LiBUaGF0IHNlZW1zIGxpa2UgdGhlIGNhbm9uaWNhbCBsb2NhdGlvbiBmb3IgdGhlaXIgY3VycmVudCBkcml2ZXJzLiBOb3csIGxldCYjMzk7cyBmaXJlIHVwIGEgYGdyZXBgIGNvbW1hbmQgdG8gc2VhcmNoIHNwZWNpZmljYWxseSBmb3IgYG10a193ZWRgIHdpdGhpbiB0aGF0IGRpcmVjdG9yeS4gSSYjMzk7bSBob3BpbmcgdG8gcXVpY2tseSBpZGVudGlmeSB0aGUgcmVsZXZhbnQgZmlsZXMgb3IgZnVuY3Rpb25zIHdoZXJlIHRoaXMgc3BlY2lmaWMgdGVybSBpcyB1c2VkIGFuZCwgYnkgZXh0ZW5zaW9uLCBnZXQgYSBoYW5kbGUgb24gd2hhdCBpdCByZWZlcnMgdG8uIFRoaXMgc2hvdWxkIGdpdmUgbWUgYSBnb29kIGp1bXBpbmctb2ZmIHBvaW50IGZvciBmdXJ0aGVyIGludmVzdGlnYXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDA2OjU2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210a193ZWQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNzg4IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTgwMj1tdDc2X2RtYV9hbGxvY19xdWV1ZShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy04NDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjg0NjpcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2ZGV2LVx1MDAzZW1taW8ud2VkKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzo4NDc6XHRcdGlmICgobXRrX3dlZF9nZXRfcnhfY2FwYShcdTAwMjZkZXYtXHUwMDNlbW1pby53ZWQpIFx1MDAyNlx1MDAyNiBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkpIHx8XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTg0OC1cdFx0ICAgIG10NzZfcXVldWVfaXNfd2VkX3R4X2ZyZWUocSkpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz04NjE9bXQ3Nl9kbWFfcnhfY2xlYW51cChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy04ODEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjg4MjpcdFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZkZXYtXHUwMDNlbW1pby53ZWQpIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy04ODMtXHRcdCAgICBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz05MDU9bXQ3Nl9kbWFfcnhfcmVzZXQoc3RydWN0IG10NzZfZGV2ICpkZXYsIGVudW0gbXQ3Nl9yeHFfaWQgcWlkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtOTI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzo5Mjg6XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNmRldi1cdTAwM2VtbWlvLndlZCkgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTkyOS1cdCAgICBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz0xMTY3PXZvaWQgbXQ3Nl9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTEyMDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjEyMDE6XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNmRldi1cdTAwM2VtbWlvLndlZCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjEyMDI6XHRcdG10a193ZWRfZGV2aWNlX2RldGFjaChcdTAwMjZkZXYtXHUwMDNlbW1pby53ZWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xMjAzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoxMjA0Olx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZkZXYtXHUwMDNlbW1pby53ZWRfaGlmMikpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjEyMDU6XHRcdG10a193ZWRfZGV2aWNlX2RldGFjaChcdTAwMjZkZXYtXHUwMDNlbW1pby53ZWRfaGlmMik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTEyMDYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaC01NC1cdGlmICgoX3EpLVx1MDAzZWZsYWdzIFx1MDAyNiBNVF9RRkxBR19XRUQpXHRcdFx0XHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5oOjU1Olx0XHRfdmFsID0gbXRrX3dlZF9kZXZpY2VfcmVnX3JlYWQoKF9xKS1cdTAwM2V3ZWQsXHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5oLTU2LVx0XHRcdFx0XHQgICAgICAgKChfcSktXHUwMDNld2VkX3JlZ3MgJiM0MztcdFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaC02NS1cdGlmICgoX3EpLVx1MDAzZWZsYWdzIFx1MDAyNiBNVF9RRkxBR19XRUQpXHRcdFx0XHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5oOjY2Olx0XHRtdGtfd2VkX2RldmljZV9yZWdfd3JpdGUoKF9xKS1cdTAwM2V3ZWQsXHRcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmgtNjctXHRcdFx0XHRcdCAoKF9xKS1cdTAwM2V3ZWRfcmVncyAmIzQzOyBfb2Zmc2V0KSxcdFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaD0xNzU9bXQ3Nl9kbWFfcmVzZXRfdHhfcXVldWUoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmgtMTc5LVx0ZGV2LVx1MDAzZXF1ZXVlX29wcy1cdTAwM2VyZXNldF9xKGRldiwgcSwgcmVzZXRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmg6MTgwOlx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZkZXYtXHUwMDNlbW1pby53ZWQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaC0xODEtXHRcdG10NzZfd2VkX2RtYV9zZXR1cChkZXYsIHEsIHRydWUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYz0xNTU0PXZvaWQgbXQ3Nl9yeF9wb2xsX2NvbXBsZXRlKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBlbnVtIG10NzZfcnhxX2lkIHEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTE1NjMtXHRcdG10NzZfY2hlY2tfc3RhKGRldiwgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYzoxNTY0Olx0XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNmRldi1cdTAwM2VtbWlvLndlZCkgfHxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy0xNTY1LVx0XHQgICAgbXQ3Nl9ucHVfZGV2aWNlX2FjdGl2ZShkZXYpKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbW1pby5jPTc3PXZvaWQgbXQ3Nl9zZXRfaXJxX21hc2soc3RydWN0IG10NzZfZGV2ICpkZXYsIHUzMiBhZGRyLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbW1pby5jLTg1LVx0aWYgKGFkZHIpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbW1pby5jOjg2Olx0XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNmRldi1cdTAwM2VtbWlvLndlZCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21taW8uYzo4NzpcdFx0XHRtdGtfd2VkX2RldmljZV9pcnFfc2V0X21hc2soXHUwMDI2ZGV2LVx1MDAzZW1taW8ud2VkLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tbWlvLmMtODgtXHRcdFx0XHRcdFx0ICAgIGRldi1cdTAwM2VtbWlvLmlycW1hc2spO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE2LSNpbmNsdWRlIFx1MDAzY2xpbnV4L3NvYy9haXJvaGEvYWlyb2hhX29mZmxvYWQuaFx1MDAzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTc6I2luY2x1ZGUgXHUwMDNjbGludXgvc29jL21lZGlhdGVrL210a193ZWQuaFx1MDAzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTgtI2luY2x1ZGUgXHUwMDNjbmV0L21hYzgwMjExLmhcdTAwM2Vcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaD0yMzU9c3RydWN0IG10NzZfcXVldWUge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTI2MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjI2MTpcdHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMjYyLVx0c3RydWN0IG10NzZfZGV2ICpkZXY7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg9NzE1PXN0cnVjdCBtdDc2X21taW8ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTcxOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjcyMDpcdHN0cnVjdCBtdGtfd2VkX2RldmljZSB3ZWQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDo3MjE6XHRzdHJ1Y3QgbXRrX3dlZF9kZXZpY2Ugd2VkX2hpZjI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC03MjItXHRzdHJ1Y3QgY29tcGxldGlvbiB3ZWRfcmVzZXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg9MTIzNT1zdGF0aWMgaW5saW5lIHUxNiBtdDc2X3JldihzdHJ1Y3QgbXQ3Nl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xMjM5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTI0MDp2b2lkIG10NzZfd2VkX3JlbGVhc2VfcnhfYnVmKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjEyNDE6dm9pZCBtdDc2X3dlZF9vZmZsb2FkX2Rpc2FibGUoc3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTI0Mjp2b2lkIG10NzZfd2VkX3Jlc2V0X2NvbXBsZXRlKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTEyNDMtdm9pZCBtdDc2X3dlZF9kbWFfcmVzZXQoc3RydWN0IG10NzZfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg9MTI0ND1pbnQgbXQ3Nl93ZWRfbmV0X3NldHVwX3RjKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTEyNDctI2lmZGVmIENPTkZJR19ORVRfTUVESUFURUtfU09DX1dFRFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTI0ODp1MzIgbXQ3Nl93ZWRfaW5pdF9yeF9idWYoc3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQsIGludCBzaXplKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjEyNDk6aW50IG10NzZfd2VkX29mZmxvYWRfZW5hYmxlKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTEyNTAtaW50IG10NzZfd2VkX2RtYV9zZXR1cChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEsIGJvb2wgcmVzZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTI1MS0jZWxzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTI1MjpzdGF0aWMgaW5saW5lIHUzMiBtdDc2X3dlZF9pbml0X3J4X2J1ZihzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZCwgaW50IHNpemUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xMjUzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xMjU2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTI1NzpzdGF0aWMgaW5saW5lIGludCBtdDc2X3dlZF9vZmZsb2FkX2VuYWJsZShzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTEyNTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oPTEyNjI9c3RhdGljIGlubGluZSBpbnQgbXQ3Nl93ZWRfZG1hX3NldHVwKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xMjkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTI5MTpzdGF0aWMgaW5saW5lIHN0cnVjdCBtdDc2X2RldiAqbXQ3Nl93ZWRfdG9fZGV2KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTI5Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tYWMuYz01MDQ9dm9pZCBtdDc2X2Nvbm5hYzJfbWFjX3dyaXRlX3R4d2koc3RydWN0IG10NzZfZGV2ICpkZXYsIF9fbGUzMiAqdHh3aSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21hYy5jLTU0Ny1cdFx0LyogbXQ3OTE1IFdBIG9ubHkgY291bnRzIFdFRCBwYXRoICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21hYy5jOjU0ODpcdFx0aWYgKGlzX210NzkxNShkZXYpIFx1MDAyNlx1MDAyNiBtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2ZGV2LVx1MDAzZW1taW8ud2VkKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWFjLmMtNTQ5LVx0XHRcdHdjaWQtXHUwMDNlc3RhdHMudHhfcGFja2V0cyYjNDM7JiM0Mzs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tYWMuYz02MjQ9Ym9vbCBtdDc2X2Nvbm5hYzJfbWFjX2ZpbGxfdHhzKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWFjLmMtNjM2LVx0LyogUFBEVSBiYXNlZCByZXBvcnRpbmcgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWFjLmM6NjM3Olx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZkZXYtXHUwMDNlbW1pby53ZWQpIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tYWMuYy02MzgtXHQgICAgRklFTERfR0VUKE1UX1RYUzBfVFhTX0ZPUk1BVCwgdHhzKSBcdTAwM2UgMSkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmM9MTI3Mj1pbnQgbXQ3Nl9jb25uYWNfbWN1X3N0YV93ZWRfdXBkYXRlKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmMtMTI3Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmM6MTI3NzpcdGlmICghbXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNmRldi1cdTAwM2VtbWlvLndlZCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jLTEyNzgtXHRcdHJldHVybiAwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYy0xMjc5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYzoxMjgwOlx0cmV0dXJuIG10a193ZWRfZGV2aWNlX3VwZGF0ZV9tc2coXHUwMDI2ZGV2LVx1MDAzZW1taW8ud2VkLCBXRURfV09fU1RBX1JFQyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmMtMTI4MS1cdFx0XHRcdFx0IHNrYi1cdTAwM2VkYXRhLCBza2ItXHUwMDNlbGVuKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYz05PW10NzkxNV9pbml0X3R4X3F1ZXVlcyhzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5LCBpbnQgaWR4LCBpbnQgbl9kZXNjLCBpbnQgcmluZ19iYXNlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTExLVx0c3RydWN0IG10NzkxNV9kZXYgKmRldiA9IHBoeS1cdTAwM2VkZXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzoxMjpcdHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkID0gTlVMTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6MTQ6XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNmRldi1cdTAwM2VtdDc2Lm1taW8ud2VkKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtMTUtXHRcdGlmIChpc19tdDc5OHgoXHUwMDI2ZGV2LVx1MDAzZW10NzYpKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jPTQxPXN0YXRpYyB2b2lkIG10NzkxNV9kbWFfY29uZmlnKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtODYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo4NzpcdFx0aWYgKGlzX210NzkxNihcdTAwMjZkZXYtXHUwMDNlbXQ3NikgXHUwMDI2XHUwMDI2IG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTg4LVx0XHRcdFJYUV9DT05GSUcoTVRfUlhRX01BSU4sIFdGRE1BMCwgTVRfSU5UX1dFRF9SWF9ET05FX0JBTkQwX01UNzkxNixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYz0yNTU9aW50IG10NzkxNV9kbWFfc3RhcnQoc3RydWN0IG10NzkxNV9kZXYgKmRldiwgYm9vbCByZXNldCwgYm9vbCB3ZWRfcmVzZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtMzA4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6MzA5Olx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZCkgXHUwMDI2XHUwMDI2IHdlZF9yZXNldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtMzEwLVx0XHR1MzIgd2VkX2lycV9tYXNrID0gaXJxX21hc2s7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtMzIyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6MzIzOlx0XHRtdGtfd2VkX2RldmljZV9zdGFydChcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZCwgd2VkX2lycV9tYXNrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTMyNC1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYz00MDg9aW50IG10NzkxNV9kbWFfaW5pdChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5Milcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy00MjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo0MjQ6XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNm1kZXYtXHUwMDNlbW1pby53ZWQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy00MjUtXHRcdGlmICghaXNfbXQ3OTh4KG1kZXYpKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNDkzLVx0LyogZXZlbnQgZnJvbSBXQSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NDk0Olx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZtZGV2LVx1MDAzZW1taW8ud2VkKSBcdTAwMjZcdTAwMjYgaXNfbXQ3OTE1KG1kZXYpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy00OTUtXHRcdHdhX3J4X2Jhc2UgPSBNVF9XRURfUlhfUklOR19CQVNFO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTUxMC1cdGlmICghZGV2LVx1MDAzZXBoeS5tdDc2LVx1MDAzZWJhbmRfaWR4KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo1MTE6XHRcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2bWRldi1cdTAwM2VtbWlvLndlZCkgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo1MTI6XHRcdCAgICBtdGtfd2VkX2dldF9yeF9jYXBhKFx1MDAyNm1kZXYtXHUwMDNlbW1pby53ZWQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01MTMtXHRcdFx0bWRldi1cdTAwM2VxX3J4W01UX1JYUV9NQUlOXS5mbGFncyA9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNTMyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTMzOlx0XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNm1kZXYtXHUwMDNlbW1pby53ZWQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01MzQtXHRcdFx0bWRldi1cdTAwM2VxX3J4W01UX1JYUV9NQUlOX1dBXS5mbGFncyA9IE1UX1dFRF9RX1RYRlJFRTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01NDktXHRpZiAoZGV2LVx1MDAzZWRiZGNfc3VwcG9ydCB8fCBkZXYtXHUwMDNlcGh5Lm10NzYtXHUwMDNlYmFuZF9pZHgpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjU1MDpcdFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZtZGV2LVx1MDAzZW1taW8ud2VkKSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjU1MTpcdFx0ICAgIG10a193ZWRfZ2V0X3J4X2NhcGEoXHUwMDI2bWRldi1cdTAwM2VtbWlvLndlZCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTU1Mi1cdFx0XHRtZGV2LVx1MDAzZXFfcnhbTVRfUlhRX0JBTkQxXS5mbGFncyA9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM9NTkwPWludCBtdDc5MTVfZG1hX3Jlc2V0KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIGJvb2wgZm9yY2UpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNTkyLVx0c3RydWN0IG10NzZfcGh5ICptcGh5X2V4dCA9IGRldi1cdTAwM2VtdDc2LnBoeXNbTVRfQkFORDFdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTkzOlx0c3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQgPSBcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTU5NC1cdGludCBpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTYxMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjYxMzpcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUod2VkKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjYxNDpcdFx0bXRrX3dlZF9kZXZpY2VfZG1hX3Jlc2V0KHdlZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy02MTUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNjQwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NjQxOlx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWQpIFx1MDAyNlx1MDAyNiBpc19tdDc5MTUoXHUwMDI2ZGV2LVx1MDAzZW10NzYpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNjQyLVx0XHRtdDc2X3JtdyhkZXYsIE1UX1dGRE1BMF9FWFQwX0NGRywgTVRfV0ZETUEwX0VYVDBfUlhXQl9LRUVQLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0zNTg9bXQ3OTE1X2luaXRfd2lwaHkoc3RydWN0IG10NzkxNV9waHkgKnBoeSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMzcwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjM3MTpcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2bWRldi1cdTAwM2VtbWlvLndlZCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMzcyLVx0XHRody1cdTAwM2VuZXRkZXZfZmVhdHVyZXMgfD0gTkVUSUZfRl9IV19UQztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9NDg0PW10NzkxNV9tYWNfaW5pdF9iYW5kKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIHU4IGJhbmQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTU0OS1cdCAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjU1MDpcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2ZGV2LVx1MDAzZW10NzYubW1pby53ZWQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTU1MS1cdFx0bXQ3Nl9zZXQoZGV2LCBNVF9BR0dfQUNSNChiYW5kKSwgTVRfQUdHX0FDUl9QUERVX1RYUzJIKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYz0yMzY9bXQ3OTE1X3dlZF9jaGVja19wcGUoc3RydWN0IG10NzkxNV9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMjU2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM6MjU3Olx0bXRrX3dlZF9kZXZpY2VfcHBlX2NoZWNrKFx1MDAyNmRldi1cdTAwM2VtdDc2Lm1taW8ud2VkLCBza2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy0yNTgtXHRcdFx0XHQgRklFTERfR0VUKE1UX0RNQV9QUEVfQ1BVX1JFQVNPTiwgaW5mbyksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM9ODY3PW10NzkxNV9tYWNfdHhfZnJlZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCB2b2lkICpkYXRhLCBpbnQgbGVuKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTkxMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jOjkxNDpcdFx0aWYgKCFtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2bWRldi1cdTAwM2VtbWlvLndlZCkgXHUwMDI2XHUwMDI2IHdjaWQpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTkxNS1cdFx0XHR1MzIgdHhfcmV0cmllcyA9IDAsIHR4X2ZhaWxlZCA9IDAsIGNvdW50O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jPTE0NzM9dm9pZCBtdDc5MTVfbWFjX3Jlc2V0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTE1MzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYzoxNTM0Olx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYzoxNTM1Olx0XHRtdGtfd2VkX2RldmljZV9zdG9wKFx1MDAyNmRldi1cdTAwM2VtdDc2Lm1taW8ud2VkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTE1MzYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jPTExNTc9c3RhdGljIHZvaWQgbXQ3OTE1X3N0YV9zdGF0aXN0aWNzKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0xMTg5LVx0ICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6MTE5MDpcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2cGh5LVx1MDAzZWRldi1cdTAwM2VtdDc2Lm1taW8ud2VkKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTExOTEtXHRcdHNpbmZvLVx1MDAzZXR4X2J5dGVzID0gbXN0YS1cdTAwM2V3Y2lkLnN0YXRzLnR4X2J5dGVzO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0xMTk4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jOjExOTk6XHRcdGlmIChtdGtfd2VkX2dldF9yeF9jYXBhKFx1MDAyNnBoeS1cdTAwM2VkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0xMjAwLVx0XHRcdHNpbmZvLVx1MDAzZXJ4X2J5dGVzID0gbXN0YS1cdTAwM2V3Y2lkLnN0YXRzLnJ4X2J5dGVzO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYz0xNzIzPW10NzkxNV9uZXRfZmlsbF9mb3J3YXJkX3BhdGgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTE3MzItXHRzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5ID0gbXQ3OTE1X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6MTczMzpcdHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkID0gXHUwMDI2ZGV2LVx1MDAzZW10NzYubW1pby53ZWQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtMTczNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYzoxNzM1Olx0aWYgKCFtdGtfd2VkX2RldmljZV9hY3RpdmUod2VkKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0xNzM2LVx0XHRyZXR1cm4gLUVOT0RFVjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYz0xNzg1PWludCBtdDc5MTVfbWN1X3dlZF9lbmFibGVfcnhfc3RhdHMoc3RydWN0IG10NzkxNV9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0xNzg3LSNpZmRlZiBDT05GSUdfTkVUX01FRElBVEVLX1NPQ19XRURcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjE3ODg6XHRzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZCA9IFx1MDAyNmRldi1cdTAwM2VtdDc2Lm1taW8ud2VkO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMTc4OS1cdHN0cnVjdCB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMTc5NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjE3OTY6XHRyZXR1cm4gbXRrX3dlZF9kZXZpY2VfdXBkYXRlX21zZyh3ZWQsIE1US19XRURfV09fQ01EX1JYQ05UX0NUUkwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0xNzk3LVx0XHRcdFx0XHQgXHUwMDI2cmVxLCBzaXplb2YocmVxKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM9MjM5Mj1pbnQgbXQ3OTE1X21jdV9pbml0X2Zpcm13YXJlKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMjQyNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjI0MjY6XHRpZiAoKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZCkgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yNDI3LVx0ICAgICBpc19tdDc5MTUoXHUwMDI2ZGV2LVx1MDAzZW10NzYpKSB8fFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM6MjQyODpcdCAgICAhbXRrX3dlZF9nZXRfcnhfY2FwYShcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yNDI5LVx0XHRtdDc5MTVfbWN1X3dhX2NtZChkZXYsIE1DVV9XQV9QQVJBTV9DTUQoQ0FQQUJJTElUWSksIDAsIDAsIDApO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTI0NDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzoyNDQ0Olx0cmV0dXJuIG10NzkxNV9tY3Vfc2V0X3JlZChkZXYsIG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZCkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMjQ0NS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jPTU2NT1zdGF0aWMgdTMyIG10NzkxNV9ybXcoc3RydWN0IG10NzZfZGV2ICptZGV2LCB1MzIgb2Zmc2V0LCB1MzIgbWFzaywgdTMyIHZhbClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtNTgwLSNpZmRlZiBDT05GSUdfTkVUX01FRElBVEVLX1NPQ19XRURcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYzo1ODE6c3RhdGljIHZvaWQgbXQ3OTE1X21taW9fd2VkX3VwZGF0ZV9yeF9zdGF0cyhzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYzo1ODI6XHRcdFx0XHRcdCAgICBzdHJ1Y3QgbXRrX3dlZF93b19yeF9zdGF0cyAqc3RhdHMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtNTgzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtNjAyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjYwMzpzdGF0aWMgaW50IG10NzkxNV9tbWlvX3dlZF9yZXNldChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy02MDQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYz02MzM9aW50IG10NzkxNV9tbWlvX3dlZF9pbml0KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIHZvaWQgKnBkZXZfcHRyLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy02MzYtI2lmZGVmIENPTkZJR19ORVRfTUVESUFURUtfU09DX1dFRFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjYzNzpcdHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkID0gXHUwMDI2ZGV2LVx1MDAzZW10NzYubW1pby53ZWQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtNjM4LVx0aW50IHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtNzIzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjcyNDpcdGlmIChtdGtfd2VkX2RldmljZV9hdHRhY2god2VkKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy03MjUtXHRcdHJldHVybiAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYz03OTM9dm9pZCBtdDc5MTVfZHVhbF9oaWZfc2V0X2lycV9tYXNrKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTgwNS1cdGlmICh3cml0ZV9yZWcpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYzo4MDY6XHRcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2bWRldi1cdTAwM2VtbWlvLndlZCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6ODA3Olx0XHRcdG10a193ZWRfZGV2aWNlX2lycV9zZXRfbWFzayhcdTAwMjZtZGV2LVx1MDAzZW1taW8ud2VkLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTgwOC1cdFx0XHRcdFx0XHQgICAgbWRldi1cdTAwM2VtbWlvLmlycW1hc2spO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYz04MjY9c3RhdGljIHZvaWQgbXQ3OTE1X2lycV90YXNrbGV0KHN0cnVjdCB0YXNrbGV0X3N0cnVjdCAqdClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtODI4LVx0c3RydWN0IG10NzkxNV9kZXYgKmRldiA9IGZyb21fdGFza2xldChkZXYsIHQsIG10NzYuaXJxX3Rhc2tsZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjgyOTpcdHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkID0gXHUwMDI2ZGV2LVx1MDAzZW10NzYubW1pby53ZWQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtODMwLVx0dTMyIGludHIsIGludHIxLCBtYXNrO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTgzMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYzo4MzI6XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYzo4MzM6XHRcdG10a193ZWRfZGV2aWNlX2lycV9zZXRfbWFzayh3ZWQsIDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTgzNC1cdFx0aWYgKGRldi1cdTAwM2VoaWYyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTgzNS1cdFx0XHRtdDc2X3dyKGRldiwgTVRfSU5UMV9NQVNLX0NTUiwgMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6ODM2Olx0XHRpbnRyID0gbXRrX3dlZF9kZXZpY2VfaXJxX2dldCh3ZWQsIGRldi1cdTAwM2VtdDc2Lm1taW8uaXJxbWFzayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtODM3LVx0fSBlbHNlIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM9ODk2PWlycXJldHVybl90IG10NzkxNV9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkZXZfaW5zdGFuY2UpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTg5OC1cdHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYgPSBkZXZfaW5zdGFuY2U7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6ODk5Olx0c3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQgPSBcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy05MDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6OTAxOlx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjkwMjpcdFx0bXRrX3dlZF9kZXZpY2VfaXJxX3NldF9tYXNrKHdlZCwgMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtOTAzLVx0ZWxzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jPTEwMz1zdGF0aWMgaW50IG10NzkxNV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmMtMTkyLWZyZWVfd2VkX29yX2lycV92ZWN0b3I6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9wY2kuYzoxOTM6XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNm1kZXYtXHUwMDNlbW1pby53ZWQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmM6MTk0Olx0XHRtdGtfd2VkX2RldmljZV9kZXRhY2goXHUwMDI2bWRldi1cdTAwM2VtbWlvLndlZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9wY2kuYy0xOTUtXHRlbHNlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmM9MTIyMD1zdGF0aWMgaW50IG10Nzk4eF93bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmMtMTI3Mi1mcmVlX2RldmljZTpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3NvYy5jOjEyNzM6XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNm1kZXYtXHUwMDNlbW1pby53ZWQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmM6MTI3NDpcdFx0bXRrX3dlZF9kZXZpY2VfZGV0YWNoKFx1MDAyNm1kZXYtXHUwMDNlbW1pby53ZWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmMtMTI3NS1cdG10NzZfZnJlZV9kZXZpY2UobWRldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM9MTA9aW50IG10Nzk5Nl9pbml0X3R4X3F1ZXVlcyhzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LCBpbnQgaWR4LCBpbnQgbl9kZXNjLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTE6XHRcdFx0ICBpbnQgcmluZ19iYXNlLCBzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE2Olx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNy1cdFx0cmluZ19iYXNlICYjNDM7PSBNVF9UWFFfSUQoMCkgKiBNVF9SSU5HX1NJWkU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM9MzA2PXZvaWQgbXQ3OTk2X2RtYV9zdGFydChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBib29sIHJlc2V0LCBib29sIHdlZF9yZXNldClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTMwNy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzozMDg6XHRzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZCA9IFx1MDAyNmRldi1cdTAwM2VtdDc2Lm1taW8ud2VkO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMzA5LVx0dTMyIGhpZjFfb2ZzID0gMDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0zMTYtXHRpZiAoIXJlc2V0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzozMTc6XHRcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUod2VkKSBcdTAwMjZcdTAwMjYgbXRrX3dlZF9nZXRfcnhfY2FwYSh3ZWQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMzE4LVx0XHRcdG10NzZfc2V0KGRldiwgTVRfV0ZETUEwX0dMT19DRkcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMzUzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MzU0Olx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWQpIFx1MDAyNlx1MDAyNiB3ZWRfcmVzZXQpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTM1NS1cdFx0dTMyIHdlZF9pcnFfbWFzayA9IGlycV9tYXNrO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTM1OC1cdFx0bXQ3Nl93cihkZXYsIE1UX0lOVF9NQVNLX0NTUiwgd2VkX2lycV9tYXNrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjM1OTpcdFx0bXRrX3dlZF9kZXZpY2Vfc3RhcnQod2VkLCB3ZWRfaXJxX21hc2spO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMzYwLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jPTM3ND1zdGF0aWMgdm9pZCBtdDc5OTZfZG1hX2VuYWJsZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBib29sIHJlc2V0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTUwMi1cdFx0ICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1MDM6XHRcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2ZGV2LVx1MDAzZW10NzYubW1pby53ZWQpIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTA0LVx0XHQgICAgbXQ3OTk2X2hhc19od3JybyhkZXYpKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM9NTIxPWludCBtdDc5OTZfZG1hX3Jyb19pbml0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTI5LVx0XHRtZGV2LVx1MDAzZXFfcnhbTVRfUlhRX1JST19SWERNQURfQ10uZmxhZ3MgPSBNVF9XRURfUlJPX1FfUlhETUFEX0M7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1MzA6XHRcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2bWRldi1cdTAwM2VtbWlvLndlZCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01MzEtXHRcdFx0bWRldi1cdTAwM2VxX3J4W01UX1JYUV9SUk9fUlhETUFEX0NdLndlZCA9IFx1MDAyNm1kZXYtXHUwMDNlbW1pby53ZWQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTQxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NTQyOlx0XHRpZiAoIW10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZtZGV2LVx1MDAzZW1taW8ud2VkKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTQzLVx0XHRcdC8qIFdlIG5lZWQgdG8gc2V0IGNwdSBpZHggcG9pbnRlciBiZWZvcmUgcmVzZXR0aW5nIHRoZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTU1Ni1cdG1kZXYtXHUwMDNlcV9yeFtNVF9SWFFfUlJPX0lORF0uZmxhZ3MgPSBNVF9XRURfUlJPX1FfSU5EO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NTU3Olx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZtZGV2LVx1MDAzZW1taW8ud2VkKSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjU1ODpcdCAgICBtdGtfd2VkX2dldF9yeF9jYXBhKFx1MDAyNm1kZXYtXHUwMDNlbW1pby53ZWQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTU5LVx0XHRtZGV2LVx1MDAzZXFfcnhbTVRfUlhRX1JST19JTkRdLndlZCA9IFx1MDAyNm1kZXYtXHUwMDNlbW1pby53ZWQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTY5LVx0XHRNVF9XRURfUlJPX1FfTVNEVV9QRygwKSB8IE1UX1FGTEFHX1dFRF9SUk9fRU47XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1NzA6XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNm1kZXYtXHUwMDNlbW1pby53ZWQpIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NTcxOlx0ICAgIG10a193ZWRfZ2V0X3J4X2NhcGEoXHUwMDI2bWRldi1cdTAwM2VtbWlvLndlZCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01NzItXHRcdG1kZXYtXHUwMDNlcV9yeFtNVF9SWFFfTVNEVV9QQUdFX0JBTkQwXS53ZWQgPSBcdTAwMjZtZGV2LVx1MDAzZW1taW8ud2VkO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTU4Ni1cdFx0XHRNVF9XRURfUlJPX1FfTVNEVV9QRygxKSB8IE1UX1FGTEFHX1dFRF9SUk9fRU47XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1ODc6XHRcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2bWRldi1cdTAwM2VtbWlvLndlZCkgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1ODg6XHRcdCAgICBtdGtfd2VkX2dldF9yeF9jYXBhKFx1MDAyNm1kZXYtXHUwMDNlbW1pby53ZWQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTg5LVx0XHRcdG1kZXYtXHUwMDNlcV9yeFtNVF9SWFFfTVNEVV9QQUdFX0JBTkQxXS53ZWQgPSBcdTAwMjZtZGV2LVx1MDAzZW1taW8ud2VkO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYwNC1cdFx0XHRNVF9XRURfUlJPX1FfTVNEVV9QRygyKSB8IE1UX1FGTEFHX1dFRF9SUk9fRU47XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2MDU6XHRcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2bWRldi1cdTAwM2VtbWlvLndlZCkgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2MDY6XHRcdCAgICBtdGtfd2VkX2dldF9yeF9jYXBhKFx1MDAyNm1kZXYtXHUwMDNlbW1pby53ZWQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjA3LVx0XHRcdG1kZXYtXHUwMDNlcV9yeFtNVF9SWFFfTVNEVV9QQUdFX0JBTkQyXS53ZWQgPSBcdTAwMjZtZGV2LVx1MDAzZW1taW8ud2VkO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jPTYyMj12b2lkIG10Nzk5Nl9kbWFfcnJvX3N0YXJ0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjI2Olx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYyNy1cdFx0aXJxX21hc2sgPSBkZXYtXHUwMDNlbXQ3Ni5tbWlvLmlycW1hc2sgfFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYzMC1cdFx0bXQ3Nl93cihkZXYsIE1UX0lOVF9NQVNLX0NTUiwgaXJxX21hc2spO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjMxOlx0XHRtdGtfd2VkX2RldmljZV9zdGFydF9od19ycm8oXHUwMDI2ZGV2LVx1MDAzZW10NzYubW1pby53ZWQsIGlycV9tYXNrLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjMyLVx0XHRcdFx0XHQgICAgZmFsc2UpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jPTY2ND1pbnQgbXQ3OTk2X2RtYV9pbml0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02NjUte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjY2Olx0c3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQgPSBcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjY2NzpcdHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkX2hpZjIgPSBcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZF9oaWYyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjY4LVx0dTMyIHJ4X2Jhc2U7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzM5LVx0LyogcnggZGF0YSBxdWV1ZSBmb3IgYmFuZDAgYW5kIG10Nzk5NiBiYW5kMSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzQwOlx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWQpIFx1MDAyNlx1MDAyNiBtdGtfd2VkX2dldF9yeF9jYXBhKHdlZCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc0MS1cdFx0ZGV2LVx1MDAzZW10NzYucV9yeFtNVF9SWFFfTUFJTl0uZmxhZ3MgPSBNVF9XRURfUV9SWCgwKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03NTMtXHQvKiB0eCBmcmVlIG5vdGlmeSBldmVudCBmcm9tIFdBIGZvciBiYW5kMCAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzU0Olx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWQpIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzU1LVx0ICAgICgoaXNfbXQ3OTk2KFx1MDAyNmRldi1cdTAwM2VtdDc2KSBcdTAwMjZcdTAwMjYgIW10Nzk5Nl9oYXNfaHdycm8oZGV2KSkgfHxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03NzItXHR9IGVsc2Uge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzczOlx0XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc3NC1cdFx0XHRkZXYtXHUwMDNlbXQ3Ni5xX3J4W01UX1JYUV9UWEZSRUVfQkFORDBdLmZsYWdzID0gTVRfV0VEX1FfVFhGUkVFO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc4Ni1cdGlmICghbXQ3OTk2X2hhc193YShkZXYpIFx1MDAyNlx1MDAyNiBkZXYtXHUwMDNlaGlmMikge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6Nzg3Olx0XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc4OC1cdFx0XHRkZXYtXHUwMDNlbXQ3Ni5xX3J4W01UX1JYUV9UWEZSRUVfQkFORDFdLmZsYWdzID0gTVRfV0VEX1FfVFhGUkVFO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTgxMy1cdFx0ICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4MTQ6XHRcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUod2VkX2hpZjIpIFx1MDAyNlx1MDAyNiAhbXQ3OTk2X2hhc19od3JybyhkZXYpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MTUtXHRcdFx0ZGV2LVx1MDAzZW10NzYucV9yeFtNVF9SWFFfQkFORDJfV0FdLmZsYWdzID0gTVRfV0VEX1FfVFhGUkVFO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTgyOC1cdFx0cnhfYmFzZSA9IE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX0JBTkQxKSAmIzQzOyBoaWYxX29mcztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjgyOTpcdFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWQpIFx1MDAyNlx1MDAyNiBtdGtfd2VkX2dldF9yeF9jYXBhKHdlZCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTgzMC1cdFx0XHRkZXYtXHUwMDNlbXQ3Ni5xX3J4W01UX1JYUV9CQU5EMV0uZmxhZ3MgPSBNVF9XRURfUV9SWCgxKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04NDQtXHRcdFx0cnhfYmFzZSA9IE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX0JBTkQxX1dBKSAmIzQzOyBoaWYxX29mcztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjg0NTpcdFx0XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZF9oaWYyKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODQ2LVx0XHRcdFx0ZGV2LVx1MDAzZW10NzYucV9yeFtNVF9SWFFfQkFORDFfV0FdLmZsYWdzID1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04NjQtXHRcdFx0TVRfV0VEX1JST19RX0RBVEEoMCkgfCBNVF9RRkxBR19XRURfUlJPX0VOO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODY1Olx0XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZCkgXHUwMDI2XHUwMDI2IG10a193ZWRfZ2V0X3J4X2NhcGEod2VkKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTg2Ni1cdFx0XHRkZXYtXHUwMDNlbXQ3Ni5xX3J4W01UX1JYUV9SUk9fQkFORDBdLndlZCA9IHdlZDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04NzctXHRcdFx0XHRNVF9XRURfUlJPX1FfREFUQSgxKSB8IE1UX1FGTEFHX1dFRF9SUk9fRU47XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4Nzg6XHRcdFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWQpIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODc5Olx0XHRcdCAgICBtdGtfd2VkX2dldF9yeF9jYXBhKHdlZCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04ODAtXHRcdFx0XHRkZXYtXHUwMDNlbXQ3Ni5xX3J4W01UX1JYUV9SUk9fQkFORDFdLndlZCA9IHdlZDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04ODktXHRcdH0gZWxzZSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4OTA6XHRcdFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04OTEtXHRcdFx0XHQvKiB0eCBmcmVlIG5vdGlmeSBldmVudCBmcm9tIFdBIGZvciBiYW5kMCAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkxMy1cdFx0XHRcdE1UX1dFRF9SUk9fUV9EQVRBKDEpIHwgTVRfUUZMQUdfV0VEX1JST19FTjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjkxNDpcdFx0XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZCkgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo5MTU6XHRcdFx0ICAgIG10a193ZWRfZ2V0X3J4X2NhcGEod2VkKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkxNi1cdFx0XHRcdGRldi1cdTAwM2VtdDc2LnFfcnhbTVRfUlhRX1JST19CQU5EMl0ud2VkID0gd2VkO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkyOC1cdFx0XHQvKiB0eCBmcmVlIG5vdGlmeSBldmVudCBmcm9tIE1BQyBmb3IgYmFuZDIgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjkyOTpcdFx0XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZF9oaWYyKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTMwLVx0XHRcdFx0ZGV2LVx1MDAzZW10NzYucV9yeFtNVF9SWFFfVFhGUkVFX0JBTkQyXS5mbGFncyA9IE1UX1dFRF9RX1RYRlJFRTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz05NjA9dm9pZCBtdDc5OTZfZG1hX3Jlc2V0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGJvb2wgZm9yY2UpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTk0LVx0aWYgKG10Nzk5Nl9oYXNfaHdycm8oZGV2KSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjk5NTpcdCAgICAhbXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNmRldi1cdTAwM2VtdDc2Lm1taW8ud2VkKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTk5Ni1cdFx0bXQ3OTk2X3Jyb19tc2R1X3BhZ2VfbWFwX2ZyZWUoZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDAxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTAwMjpcdGlmIChkZXYtXHUwMDNlaGlmMiBcdTAwMjZcdTAwMjYgbXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNmRldi1cdTAwM2VtdDc2Lm1taW8ud2VkX2hpZjIpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTAwMzpcdFx0bXRrX3dlZF9kZXZpY2VfZG1hX3Jlc2V0KFx1MDAyNmRldi1cdTAwM2VtdDc2Lm1taW8ud2VkX2hpZjIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTAwNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEwMDU6XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNmRldi1cdTAwM2VtdDc2Lm1taW8ud2VkKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEwMDY6XHRcdG10a193ZWRfZGV2aWNlX2RtYV9yZXNldChcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDA3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwMjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMDI3Olx0XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNmRldi1cdTAwM2VtdDc2Lm1taW8ud2VkKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTAyOC1cdFx0XHRpZiAobXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHEpIHx8XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTA0MC1cdG10NzZfZm9yX2VhY2hfcV9yeChcdTAwMjZkZXYtXHUwMDNlbXQ3NiwgaSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTA0MTpcdFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZCkgXHUwMDI2XHUwMDI2IGZvcmNlIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTA0Mi1cdFx0ICAgIChtdDc2X3F1ZXVlX2lzX3dlZF9ycm9faW5kKFx1MDAyNmRldi1cdTAwM2VtdDc2LnFfcnhbaV0pIHx8XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTQ3Nz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjQ3ODptdDc5OTZfaW5pdF93aXBoeShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDc5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDkyLVx0aHctXHUwMDNlbmV0ZGV2X2ZlYXR1cmVzID0gTkVUSUZfRl9SWENTVU07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NDkzOlx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWQpIHx8IG10NzZfbnB1X2RldmljZV9hY3RpdmUobWRldikpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDk0LVx0XHRody1cdTAwM2VuZXRkZXZfZmVhdHVyZXMgfD0gTkVUSUZfRl9IV19UQztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9NjgyPXN0YXRpYyBpbnQgbXQ3OTk2X3JlZ2lzdGVyX3BoeShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBlbnVtIG10NzZfYmFuZF9pZCBiYW5kKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy02ODctXHRpbnQgcmV0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjY4ODpcdHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkID0gXHUwMDI2ZGV2LVx1MDAzZW10NzYubW1pby53ZWQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNjg5LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy03NTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NzYwOlx0aWYgKHdlZCA9PSBcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZF9oaWYyIFx1MDAyNlx1MDAyNiBtdGtfd2VkX2RldmljZV9hY3RpdmUod2VkKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTc2MS1cdFx0bXQ3Nl93cihkZXYsIE1UX0lOVF9QQ0lFMV9NQVNLX0NTUiwgTVRfSU5UX1RYX1JYX0RPTkVfRVhUKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo3NjI6XHRcdG10a193ZWRfZGV2aWNlX3N0YXJ0KFx1MDAyNmRldi1cdTAwM2VtdDc2Lm1taW8ud2VkX2hpZjIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNzYzLVx0XHRcdFx0ICAgICBNVF9JTlRfVFhfUlhfRE9ORV9FWFQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz04MjU9c3RhdGljIHZvaWQgbXQ3OTk2X3Jyb19od19pbml0X3YzKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtODI2LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo4Mjc6XHRzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZCA9IFx1MDAyNmRldi1cdTAwM2VtdDc2Lm1taW8ud2VkO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTgyOC1cdHUzMiBzZXNzaW9uX2lkO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy04MzMtI2lmZGVmIENPTkZJR19ORVRfTUVESUFURUtfU09DX1dFRFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjgzNDpcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUod2VkKSBcdTAwMjZcdTAwMjYgbXRrX3dlZF9nZXRfcnhfY2FwYSh3ZWQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtODM1LVx0XHR3ZWQtXHUwMDNld2xhbi5pbmRfY21kLndpbl9zaXplID1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtODQ4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjg0OTpcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUod2VkKSBcdTAwMjZcdTAwMjYgbXRrX3dlZF9nZXRfcnhfY2FwYSh3ZWQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtODUwLVx0XHRtdDc2X3dyKGRldiwgTVRfUlJPX0lORF9DTURfU0lHTkFUVVJFX0JBU0UwLCAweDE1MDEwZTAwKTtcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAwNjo1NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjYyOQoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDU4NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBXb3J0aEZ1enppbmcgUGF0Y2ggZm9yIG10a193ZWQqKgoKT2theSwgbGV0IG1lIGJyZWFrIHRoaXMgZG93bi4gVGhpcyBgbXRrX3dlZGAgZHJpdmVyIGlzIHBhcnQgb2YgTWVkaWF0ZWsmIzM5O3MgV0VEIG9mZmxvYWQgZW5naW5lLiBJIGtub3cgaXQmIzM5O3MgdXNlZCB3aXRoIHRoZWlyIFdpRmkgZHJpdmVycywgc3BlY2lmaWNhbGx5IHRoaW5ncyBsaWtlIGBtdDc5MTVgIGFuZCBgbXQ3OTk2YCwgd2hpY2ggYXJlIFBDSWUgZGV2aWNlcy4gSSBqdXN0IGNvbmZpcm1lZCBgbXQ3OTE1YCBpcyBpbmRlZWQgYSBQQ0kgZHJpdmVyLCBzZWVpbmcgdGhlIGBtdDc5MTVfcGNpX3Byb2JlYCBmdW5jdGlvbiBpbiBpdHMgUENJLXNwZWNpZmljIGNvZGUuCgpOb3csIHRoZSBjcnVjaWFsIHF1ZXN0aW9uOiBjYW4gc3RhbmRhcmQgUUVNVSBlbXVsYXRlIHRoZSBNVDc5MTU/IE5vLCBpdCBjYW4mIzM5O3QuIFRoaXMgaXMgd2hlcmUgdGhhdCAmIzM0O1dvcnRoRnV6emluZz1mYWxzZSYjMzQ7IGZsYWcgY29tZXMgaW50byBwbGF5LiBUaGUgcHJvbXB0IG1lbnRpb25zIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlcnMgdGhhdCByZXF1aXJlIHJlYWwgaGFyZHdhcmUsIGFuZCAqYmluZ28qLCBgbXQ3OTE1YCBpcyBwcmVjaXNlbHkgdGhhdDogYSBNZWRpYXRlayBXaUZpIFBDSWUgZHJpdmVyLiBJdCYjMzk7cyBub3QgbGlrZSBgbWFjODAyMTFfaHdzaW1gLCB3aGljaCBpcyBkZXNpZ25lZCBmb3IgZW11bGF0aW9uLiBgbXQ3OTE1YCBpbnRlcmFjdHMgZGlyZWN0bHkgd2l0aCByZWFsIGhhcmR3YXJlLgoKVGhlIG5leHQgcXVlc3Rpb246IGNhbiBzeXprYWxsZXIgZnV6eiBpdD8gU3l6a2FsbGVyIGhhcyBpdHMgYHN5el84MDIxMV8uLi5gIHN5c2NhbGxzLCBidXQgdGhvc2UgbW9zdGx5IGRlYWwgd2l0aCB0aGUgZ2VuZXJpYyBtYWM4MDIxMSBzdGFjay4gVGhleSBkb24mIzM5O3QgcmVhY2ggZGVlcGx5IGludG8gdGhlIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciB1bmxlc3MsIGFzIEkgbWVudGlvbmVkLCBpdCBoYXMgYSBzaW11bGF0aW9uIGNvbXBvbmVudC4gSG93ZXZlciwgU3l6a2FsbGVyICpkb2VzKiBoYXZlIFBDSSBmdXp6aW5nIGNhcGFiaWxpdGllcywgYW5kIHRoYXQmIzM5O3MgaW50ZXJlc3RpbmcuIEl0IGNhbiBpbmplY3QgUENJIGRldmljZXMsIHNvIGl0IGNvdWxkIHBvdGVudGlhbGx5IHJlYWNoIHRoZSBgbXQ3OTE1YCBkcml2ZXIuIEJ1dCBkb2VzIGl0IGdvIGRlZXAgZW5vdWdoLCBzcGVjaWZpY2FsbHkgaW50byB0aGUgZHJpdmVyJiMzOTtzIHJpbmcgc2V0dXAsIHdoaWNoIGlzIHdoYXQgdGhlIHBhdGNoIG1vZGlmaWVzPwoKVGhlIHBhdGNoIHRhcmdldHMgYG10a193ZWRfd2RtYV90eF9yaW5nX3NldHVwYCBhbmQgYG10a193ZWRfc3RhcnRgIHdpdGhpbiBgbXRrX3dlZC5jYC4gVGhpcyBpcyB3aGVyZSB0aGUgY29yZSBvZiBteSBhc3Nlc3NtZW50IGxpZXMuIFNpbmNlIHRoaXMgZHJpdmVyIGlzIGNvbXBpbGVkIHVuZGVyIGBDT05GSUdfTkVUX01FRElBVEVLX1NPQ19XRURgLCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb24gaGFzIHRvIGJlIGNvbnNpZGVyZWQuIFN5emthbGxlciYjMzk7cyBQQ0kgZnV6emluZyAqbWlnaHQqIGJlIGFibGUgdG8gcmVhY2ggaXQsIGlmIGl0JiMzOTtzIGNvbmZpZ3VyZWQgYW5kIHRoZSBlbXVsYXRpb24gb2YgUENJIGlzIGdvb2QgZW5vdWdoLiBIb3dldmVyLCBJIGhhdmUgZG91YnRzIHRoYXQsIGV2ZW4gd2l0aCB0aGUgUENJIGVtdWxhdGlvbiBhbmQgZnV6emluZyBjYXBhYmlsaXRpZXMsIHN5emthbGxlciB3aWxsIGJlIGFibGUgdG8gdGFyZ2V0IHRoaXMgZHJpdmVyLCBhcyBpdCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0kgZGV2aWNlLCBhbmQgSSBzdXNwZWN0IGl0IHdpbGwgZmFpbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMDY6NTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE5FVF9NRURJQVRFS19TT0NfV0VEJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL0tjb25maWc9OD1pZiBORVRfVkVORE9SX01FRElBVEVLXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9LY29uZmlnLTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9LY29uZmlnOjEwOmNvbmZpZyBORVRfTUVESUFURUtfU09DX1dFRFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvS2NvbmZpZy0xMS1cdGRlcGVuZHMgb24gQVJDSF9NRURJQVRFSyB8fCBDT01QSUxFX1RFU1RcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMDY6NTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzc4NzUKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBzdW1tYXJ5LCBhcyB0aGUgZXhwZXJ0OgoKKipEZWx2aW5nIGludG8gdGhlIE1lZGlhdGVrIEV0aGVybmV0IENvbmZpZ3VyYXRpb24qKgoKQWxyaWdodCwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGUgY29yZSBjb25maWd1cmF0aW9uIGZvciBNZWRpYXRlayBFdGhlcm5ldCBkcml2ZXJzLiBJJiMzOTttIGdvaW5nIHRvIHB1bGwgdXAgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL0tjb25maWdgIGFuZCB6ZXJvIGluIGFyb3VuZCBsaW5lIDEwLiBJIHN1c3BlY3QgdGhpcyB3aWxsIGdpdmUgbWUgdGhlIHRvcC1sZXZlbCBjb25maWd1cmF0aW9uIG9wdGlvbnMsIHRoZSBjb3JlIGRlcGVuZGVuY2llcywgb3IgcGVyaGFwcyBldmVuIHRoZSBhcmNoaXRlY3R1cmUgc2VsZWN0aW9uLiBJJiMzOTttIGxvb2tpbmcgZm9yIHRoZSBmb3VuZGF0aW9uYWwgYnVpbGRpbmcgYmxvY2tzIC0gd2hhdCBmZWF0dXJlcyBhcmUgZW5hYmxlZCBieSBkZWZhdWx0LCB3aGF0IGZhbWlsaWVzIGFyZSBzdXBwb3J0ZWQsIGFuZCB3aGljaCBvbmVzIGFyZSBsaWtlbHkgdG8gbmVlZCBzcGVjaWFsIGF0dGVudGlvbi4gQmFzZWQgb24gcGFzdCBleHBlcmllbmNlLCB0aGlzIEtjb25maWcgZmlsZSBzaG91bGQgaWxsdW1pbmF0ZSB0aGUgc3RydWN0dXJlIG9mIHRoZSBNZWRpYXRlayBldGhlcm5ldCBkcml2ZXIgZWNvc3lzdGVtLCB3aGljaCBoZWxwcyBtZSBpbW1lZGlhdGVseSBnYWluIGNvbnRleHQgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIGRyaXZlciBmZWF0dXJlcy4gTGV0JiMzOTtzIHNlZSB3aGF0JiMzOTtzIHRoZXJlLi4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDA2OjU2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMzAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuICAgMjpcdGNvbmZpZyBORVRfVkVORE9SX01FRElBVEVLXG4gICAzOlx0XHRib29sIFwmIzM0O01lZGlhVGVrIGRldmljZXNcJiMzNDtcbiAgIDQ6XHRcdGRlcGVuZHMgb24gQVJDSF9NRURJQVRFSyB8fCBBUkNIX0FJUk9IQSB8fCBTT0NfTVQ3NjIxIHx8IFNPQ19NVDc2MjAgfHwgQ09NUElMRV9URVNUXG4gICA1Olx0XHRoZWxwXG4gICA2Olx0XHQgIElmIHlvdSBoYXZlIGEgTWVkaWF0ZWsgU29DIHdpdGggZXRoZXJuZXQsIHNheSBZLlxuICAgNzpcdFxuICAgODpcdGlmIE5FVF9WRU5ET1JfTUVESUFURUtcbiAgIDk6XHRcbiAgMTA6XHRjb25maWcgTkVUX01FRElBVEVLX1NPQ19XRURcbiAgMTE6XHRcdGRlcGVuZHMgb24gQVJDSF9NRURJQVRFSyB8fCBDT01QSUxFX1RFU1RcbiAgMTI6XHRcdGRlZl9ib29sIE5FVF9NRURJQVRFS19TT0MgIT0gblxuICAxMzpcdFxuICAxNDpcdGNvbmZpZyBORVRfTUVESUFURUtfU09DXG4gIDE1Olx0XHR0cmlzdGF0ZSBcJiMzNDtNZWRpYVRlayBTb0MgR2lnYWJpdCBFdGhlcm5ldCBzdXBwb3J0XCYjMzQ7XG4gIDE2Olx0XHRkZXBlbmRzIG9uIE5FVF9EU0EgfHwgIU5FVF9EU0FcbiAgMTc6XHRcdHNlbGVjdCBQSU5DVFJMXG4gIDE4Olx0XHRzZWxlY3QgUEhZTElOS1xuICAxOTpcdFx0c2VsZWN0IERJTUxJQlxuICAyMDpcdFx0c2VsZWN0IEdFTkVSSUNfQUxMT0NBVE9SXG4gIDIxOlx0XHRzZWxlY3QgUEFHRV9QT09MXG4gIDIyOlx0XHRzZWxlY3QgUEFHRV9QT09MX1NUQVRTXG4gIDIzOlx0XHRzZWxlY3QgUENTX01US19MWU5YSVxuICAyNDpcdFx0c2VsZWN0IFJFR01BUF9NTUlPXG4gIDI1Olx0XHRoZWxwXG4gIDI2Olx0XHQgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIHRoZSBnaWdhYml0IGV0aGVybmV0IE1BQ3MgaW4gdGhlXG4gIDI3Olx0XHQgIE1lZGlhVGVrIFNvQyBmYW1pbHkuXG4gIDI4Olx0XG4gIDI5Olx0Y29uZmlnIE5FVF9NRURJQVRFS19TVEFSX0VNQUNcbiAgMzA6XHRcdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIFNUQVIgRXRoZXJuZXQgTUFDIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMDY6NTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzg1MjMKCQkJCQkJCW91dHB1dDogOTYKCQkJCQkJCXRob3VnaHRzOiA1OTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqV29ydGhGdXp6aW5nPWZhbHNlOiBNZWRpYVRlayBTb0MgRXRoZXJuZXQvV2lGaSBPZmZsb2FkIERyaXZlcioqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBgTkVUX01FRElBVEVLX1NPQ19XRURgIGlzIGRlZmluZWQgYXMgYSBgZGVmX2Jvb2xgLCBtZWFuaW5nIGl0JiMzOTtzIGNvbmRpdGlvbmFsLiBJdCBib2lscyBkb3duIHRvIHdoZXRoZXIgYE5FVF9NRURJQVRFS19TT0NgIGlzICpub3QqIGVxdWFsIHRvICYjMzk7biYjMzk7LiBUaGlzIHBvaW50cyB0byBhIHBsYXRmb3JtIGRyaXZlciwgc3BlY2lmaWNhbGx5IGZvciBNZWRpYVRlayBTb0NzIGFuZCBHaWdhYml0IEV0aGVybmV0IHN1cHBvcnQuIFBsYXRmb3JtIGRyaXZlcnMgdXN1YWxseSBhcmVuJiMzOTt0IGlkZWFsIGZvciBzdGFuZGFyZCBRRU1VIGZ1enppbmcgdW5sZXNzIHRoZXJlJiMzOTtzIGEgc3BlY2lmaWMgbWFjaGluZSB0eXBlIGRlZmluZWQgZm9yIHRoZW0uCgpUaGUgY29kZSBpbiBxdWVzdGlvbiBpcyB3aXRoaW4gYG10a193ZWQuY2AsIHRoZSBXaXJlbGVzcyBFdGhlcm5ldCBEaXNwYXRjaGVyLiBUaGUgY29tbWl0IG1lc3NhZ2UgY2xhcmlmaWVzIHRoYXQgaXQmIzM5O3MgZGVhbGluZyB3aXRoIGEgc3BlY2lmaWMgaGFyZHdhcmUgcXVpcmsgaW4gdGhlIE1UNzk4NiAoRmlsb2dpYyA4MzApIFNvQzsgaXQmIzM5O3MgYSBoYXJkd2FyZSBvZmZsb2FkIGVuZ2luZS4gVGhlIGZpeCBjb25jZXJucyBhbGxvY2F0aW9uIG9mIHJlY2VpdmUgYW5kIHRyYW5zbWl0IHJpbmdzIGFuZCBXRE1BIGNoYW5uZWxzLCBzcGVjaWZpY2FsbHkgbmVlZGluZyB0byBhbGxvY2F0ZSBhbiBleHRyYSBgdHhfd2RtYWAgY2hhbm5lbCBmb3IgV0VEIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS4gVGhpcyBpcyB2ZXJ5IGhhcmR3YXJlLXNwZWNpZmljLgoKTXkgaW5pdGlhbCB0aG91Z2h0IHdhcyBtYXliZSBzeXprYWxsZXIgY291bGQgaW5qZWN0IGEgZGV2aWNlIHRyZWUgbm9kZSBmb3IgcGxhdGZvcm0gZGV2aWNlcy4gSG93ZXZlciwgdGhhdCYjMzk7cyBsaW1pdGVkLCBhbmQgd2l0aG91dCB0aGUgYWN0dWFsIGhhcmR3YXJlIG9yIGEgcm9idXN0IG1vY2ssIGl0JiMzOTtzIHVubGlrZWx5IHRvIGdldCBhbnl3aGVyZS4KCkhvbGQgb24sIHRoZSBwcm9tcHQgcHJvdmlkZXMgdGhlIGtleTogJiMzNDtSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zIGNvZGUgaW4gdmVuZG9yLXNwZWNpZmljLi4uIGRyaXZlcnMgdGhhdCByZXF1aXJlIHBoeXNpY2FsLi4uIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiYjMzQ7IFRoaXMgZGlyZWN0bHkgYXBwbGllcy4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBTb0MgRXRoZXJuZXQvV2lGaSBvZmZsb2FkIGRyaXZlciEgSXQgKnJlcXVpcmVzKiBNZWRpYVRlayBTb0MgaGFyZHdhcmUuCgpKdXN0IHRvIGJlIGFic29sdXRlbHkgc3VyZSwgbGV0JiMzOTtzIHNlZSBpZiBRRU1VIGV2ZW4gKnByZXRlbmRzKiB0byBoYXZlIE1UNzk4NiBzdXBwb3J0LiBJdCBkb2VzIGVtdWxhdGUgc29tZSBNZWRpYVRlayBib2FyZHMsIGJ1dCBhIHF1aWNrIGNoZWNrIHJldmVhbHMgdGhhdCBzdGFuZGFyZCBRRU1VIGRvZXMgbm90IHN1cHBvcnQgTVQ3OTg2IG9yIGFueSBzaW1pbGFyIGJvYXJkLiBFdmVuIGlmIGl0ICpkaWQqLCB0aGUgYG10a193ZWRgIGlzIGEgc3BlY2lhbGl6ZWQgaGFyZHdhcmUgb2ZmbG9hZCBlbmdpbmU7IGl0JiMzOTtzIGV4dHJlbWVseSB1bmxpa2VseSB0byBiZSBlbXVsYXRlZCBhY2N1cmF0ZWx5LgoKVGhlcmVmb3JlLCBiZWNhdXNlIHRoaXMgY2hhbmdlIHRhcmdldHMgYSBoYXJkd2FyZS1zcGVjaWZpYyBvZmZsb2FkIGRyaXZlciBmb3IgTWVkaWFUZWsgU29DcyBub3QgZW11bGF0ZWQgaW4gdGhlIHN0YW5kYXJkIFFFTVUgZnV6emluZyBlbnZpcm9ubWVudCwgSSYjMzk7bSByZXR1cm5pbmcgYFdvcnRoRnV6emluZz1mYWxzZWAuIFRoZSBwYXRjaCBtb2RpZmllcyBNZWRpYVRlayYjMzk7cyBXRUQgZHJpdmVyIHdoaWNoIHJlbGllcyBvbiB0aGUgcGh5c2ljYWwgaGFyZHdhcmUgYW5kIGlzbiYjMzk7dCBhY2Nlc3NpYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMDY6NTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVkaWFUZWsgV2lyZWxlc3MgRXRoZXJuZXQgRGlzcGF0Y2hlciAoV0VEKSBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgb2ZmbG9hZCBlbmdpbmUgZm9yIE1lZGlhVGVrIFNvQ3MgKGUuZy4sIE1UNzk4NikuIFRoaXMgY29kZSByZXF1aXJlcyBwaHlzaWNhbCBNZWRpYVRlayBoYXJkd2FyZSBhbmQgaXMgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIHVzZWQgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVkaWFUZWsgV2lyZWxlc3MgRXRoZXJuZXQgRGlzcGF0Y2hlciAoV0VEKSBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgb2ZmbG9hZCBlbmdpbmUgZm9yIE1lZGlhVGVrIFNvQ3MgKGUuZy4sIE1UNzk4NikuIFRoaXMgY29kZSByZXF1aXJlcyBwaHlzaWNhbCBNZWRpYVRlayBoYXJkd2FyZSBhbmQgaXMgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIHVzZWQgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjZUMDY6NTU6NTYuOTY4MTMyOTNaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MzUyMzI3MTc5NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIFdpcmVsZXNzIEV0aGVybmV0IERpc3BhdGNoZXIgKFdFRCkgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIG9mZmxvYWQgZW5naW5lIGZvciBNZWRpYVRlayBTb0NzIChlLmcuLCBNVDc5ODYpLiBUaGlzIGNvZGUgcmVxdWlyZXMgcGh5c2ljYWwgTWVkaWFUZWsgaGFyZHdhcmUgYW5kIGlzIG5vdCByZWFjaGFibGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSB1c2VkIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjZUMDY6NTU6NTYuOTY4MTQwNjJaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYwNzQ5MTc4OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDY1ZjQwNWRjYzliOGY4MDI2N2E4N2ViYTNlMTY0YmFjZjA1NWNkY2FcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFN1biBKdWwgMjYgMDY6NTU6NTUgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jXFxuaW5kZXggMTBkOWJlYWFlMzcyMTUuLmI0OGFiYWQ5OTVkN2FjIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuY1xcbkBAIC0xOTM4LDcgKzE5MzgsNyBAQCBtdGtfd2VkX3dkbWFfdHhfcmluZ19zZXR1cChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgaW50IGlkeCwgaW50IHNpemUsXFxuIFxcdHdkbWFfdzMyKGRldiwgTVRLX1dETUFfUklOR19UWChpZHgpICsgTVRLX1dFRF9SSU5HX09GU19DUFVfSURYLCAwKTtcXG4gXFx0d2RtYV93MzIoZGV2LCBNVEtfV0RNQV9SSU5HX1RYKGlkeCkgKyBNVEtfV0VEX1JJTkdfT0ZTX0RNQV9JRFgsIDApO1xcbiBcXG4tXFx0aWYgKHJlc2V0KVxcbitcXHRpZiAoIW10a193ZWRfaXNfdjNfb3JfZ3JlYXRlcihkZXYtXFx1MDAzZWh3KSBcXHUwMDI2XFx1MDAyNiByZXNldClcXG4gXFx0XFx0bXRrX3dlZF9yaW5nX3Jlc2V0KHdkbWEsIE1US19XRURfV0RNQV9SSU5HX1NJWkUsIHRydWUpO1xcbiBcXG4gXFx0aWYgKCFpZHgpICB7XFxuQEAgLTIzMzQsNiArMjMzNCwxMyBAQCBtdGtfd2VkX3N0YXJ0KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2LCB1MzIgaXJxX21hc2spXFxuIFxcdFxcdGlmICghZGV2LVxcdTAwM2VyeF93ZG1hW2ldLmRlc2MpXFxuIFxcdFxcdFxcdG10a193ZWRfd2RtYV9yeF9yaW5nX3NldHVwKGRldiwgaSwgMTYsIGZhbHNlKTtcXG4gXFxuK1xcdC8qXFxuK1xcdCAqIG5vbi1EQkRDIE1UNzk4NiBhbGxvY2F0ZXMgb25seSByeF9yaW5nWzFdIGFuZCB0eF93ZG1hWzFdIGR1cmluZyBzZXR1cFxcbitcXHQgKiBidXQgdHhfd2RtYVswXSBpcyBhbHNvIG5lZWRlZCBmb3IgV0VEIHRvIGZ1bmN0aW9uLlxcbitcXHQgKi9cXG4rXFx0aWYgKG10a193ZWRfaXNfdjIoZGV2LVxcdTAwM2VodykgXFx1MDAyNlxcdTAwMjYgIWRldi1cXHUwMDNlcnhfcmluZ1swXS5kZXNjKVxcbitcXHRcXHRtdGtfd2VkX3dkbWFfdHhfcmluZ19zZXR1cChkZXYsIDAsIE1US19XRURfV0RNQV9SSU5HX1NJWkUsICEhZGV2LVxcdTAwM2V0eF93ZG1hWzBdLmRlc2MpO1xcbitcXG4gXFx0aWYgKGRldi1cXHUwMDNld2xhbi5od19ycm8pIHtcXG4gXFx0XFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIE1US19XRURfUlhfUEFHRV9RVUVVRVM7IGkrKykge1xcbiBcXHRcXHRcXHR1MzIgYWRkciA9IE1US19XRURfUlJPX01TRFVfUEdfQ1RSTDAoaSkgK1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwNjo1NTo1Ny41NzYyNzA5MzlaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo1MjkxNTEyNzc1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIFdpcmVsZXNzIEV0aGVybmV0IERpc3BhdGNoZXIgKFdFRCkgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIG9mZmxvYWQgZW5naW5lIGZvciBNZWRpYVRlayBTb0NzIChlLmcuLCBNVDc5ODYpLiBUaGlzIGNvZGUgcmVxdWlyZXMgcGh5c2ljYWwgTWVkaWFUZWsgaGFyZHdhcmUgYW5kIGlzIG5vdCByZWFjaGFibGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSB1c2VkIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNjVmNDA1ZGNjOWI4ZjgwMjY3YTg3ZWJhM2UxNjRiYWNmMDU1Y2RjYVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gSnVsIDI2IDA2OjU1OjU1IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jXG5pbmRleCAxMGQ5YmVhYWUzNzIxNS4uYjQ4YWJhZDk5NWQ3YWMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuY1xuQEAgLTE5MzgsNyArMTkzOCw3IEBAIG10a193ZWRfd2RtYV90eF9yaW5nX3NldHVwKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2LCBpbnQgaWR4LCBpbnQgc2l6ZSxcbiBcdHdkbWFfdzMyKGRldiwgTVRLX1dETUFfUklOR19UWChpZHgpICsgTVRLX1dFRF9SSU5HX09GU19DUFVfSURYLCAwKTtcbiBcdHdkbWFfdzMyKGRldiwgTVRLX1dETUFfUklOR19UWChpZHgpICsgTVRLX1dFRF9SSU5HX09GU19ETUFfSURYLCAwKTtcbiBcbi1cdGlmIChyZXNldClcbitcdGlmICghbXRrX3dlZF9pc192M19vcl9ncmVhdGVyKGRldi1cdTAwM2VodykgXHUwMDI2XHUwMDI2IHJlc2V0KVxuIFx0XHRtdGtfd2VkX3JpbmdfcmVzZXQod2RtYSwgTVRLX1dFRF9XRE1BX1JJTkdfU0laRSwgdHJ1ZSk7XG4gXG4gXHRpZiAoIWlkeCkgIHtcbkBAIC0yMzM0LDYgKzIzMzQsMTMgQEAgbXRrX3dlZF9zdGFydChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgdTMyIGlycV9tYXNrKVxuIFx0XHRpZiAoIWRldi1cdTAwM2VyeF93ZG1hW2ldLmRlc2MpXG4gXHRcdFx0bXRrX3dlZF93ZG1hX3J4X3Jpbmdfc2V0dXAoZGV2LCBpLCAxNiwgZmFsc2UpO1xuIFxuK1x0LypcbitcdCAqIG5vbi1EQkRDIE1UNzk4NiBhbGxvY2F0ZXMgb25seSByeF9yaW5nWzFdIGFuZCB0eF93ZG1hWzFdIGR1cmluZyBzZXR1cFxuK1x0ICogYnV0IHR4X3dkbWFbMF0gaXMgYWxzbyBuZWVkZWQgZm9yIFdFRCB0byBmdW5jdGlvbi5cbitcdCAqL1xuK1x0aWYgKG10a193ZWRfaXNfdjIoZGV2LVx1MDAzZWh3KSBcdTAwMjZcdTAwMjYgIWRldi1cdTAwM2VyeF9yaW5nWzBdLmRlc2MpXG4rXHRcdG10a193ZWRfd2RtYV90eF9yaW5nX3NldHVwKGRldiwgMCwgTVRLX1dFRF9XRE1BX1JJTkdfU0laRSwgISFkZXYtXHUwMDNldHhfd2RtYVswXS5kZXNjKTtcbitcbiBcdGlmIChkZXYtXHUwMDNld2xhbi5od19ycm8pIHtcbiBcdFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgTVRLX1dFRF9SWF9QQUdFX1FVRVVFUzsgaSsrKSB7XG4gXHRcdFx0dTMyIGFkZHIgPSBNVEtfV0VEX1JST19NU0RVX1BHX0NUUkwwKGkpICtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDA2OjU1OjU3LjU3NjI3MTk5OVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ1NTUyODgwMTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgTWVkaWF0ZWsgV0VEIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCB0b3VjaGVzIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmNgLiBTcGVjaWZpY2FsbHksIGl0IHNlZW1zIHRvIGJlIG1vZGlmeWluZyBgbXRrX3dlZF93ZG1hX3R4X3Jpbmdfc2V0dXBgIGFuZCBgbXRrX3dlZF9zdGFydGAuIFRoYXQgdGVsbHMgbWUgdGhpcyBpcyBhIE1lZGlhdGVrIFdFRCAoV2lyZWxlc3MgRXRoZXJuZXQgRGlzcGF0Y2hlcikgZHJpdmVyLiBNeSBpbW1lZGlhdGUgY29uY2VybiwgYXMgYWx3YXlzIHdoZW4gSSBzZWUgYSBkcml2ZXIgY2hhbmdlLCBpcyBob3cgYWNjZXNzaWJsZSBpdCBpcyBmb3IgZnV6emluZy4gQ2FuIEkgZXZlbiAqcmVhY2gqIHRoaXMgaW4gYSBzdGFuZGFyZCBRRU1VIHNldHVwPyBNZWRpYXRlayBTb0MgRXRoZXJuZXQgZHJpdmVycyBhcmUgb2Z0ZW4gYSBwYWluLiBUaGV5IHVzdWFsbHkgcmVxdWlyZSBzcGVjaWZpYyBlbXVsYXRpb24gb3IsIGF0IGJlc3QsIGEgUENJIHBhc3N0aHJvdWdoIG9yIGdvb2QgZW11bGF0aW9uLCB3aGljaCBpc24ndCBhbHdheXMgdGhlIGVhc2llc3QgdG8gc2V0IHVwLlxuXG5BbHJpZ2h0LCBsZXQncyBzdGVwIGJhY2suIEl0J3MgaW4gdGhlIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9gIGRpcmVjdG9yeSwgc28gdGhhdCdzIGEgZ29vZCBzdGFydGluZyBwb2ludC4gSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIGlmIGl0J3MgYSBwbGF0Zm9ybSBkcml2ZXIgb3IgUENJLiBBIHBsYXRmb3JtIGRyaXZlciBpcyBnZW5lcmFsbHkgZ29pbmcgdG8gYmUgZWFzaWVyIHRvIHdvcmsgd2l0aCwgYXQgbGVhc3QgaW4gc29tZSBlbXVsYXRlZCBlbnZpcm9ubWVudHMuIExldCdzIGRvIGEgcXVpY2sgYGdyZXBgIGZvciBgbXRrX3dlZGAgd2l0aGluIHRoYXQgZGlyZWN0b3J5LCBhbmQgc2VlIHdoYXQgdGhlIGRldmljZSBiaW5kaW5nIGxvb2tzIGxpa2UuIFRoYXQgd2lsbCB0ZWxsIG1lIHdoZXJlIEkgc3RhbmQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0NTEsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOTAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwNjo1NjowMi4xMzE1NjE4NloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NjE1NzQ1NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdGtfd2VkXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDE4NzMgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL01ha2VmaWxlPTc9bXRrX2V0aC15IDo9IG10a19ldGhfc29jLm8gbXRrX2V0aF9wYXRoLm8gbXRrX3BwZS5vIG10a19wcGVfZGVidWdmcy5vIG10a19wcGVfb2ZmbG9hZC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvTWFrZWZpbGU6ODptdGtfZXRoLSQoQ09ORklHX05FVF9NRURJQVRFS19TT0NfV0VEKSArPSBtdGtfd2VkLm8gbXRrX3dlZF9tY3UubyBtdGtfd2VkX3dvLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9NYWtlZmlsZS05LWlmZGVmIENPTkZJR19ERUJVR19GU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL01ha2VmaWxlOjEwOm10a19ldGgtJChDT05GSUdfTkVUX01FRElBVEVLX1NPQ19XRUQpICs9IG10a193ZWRfZGVidWdmcy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvTWFrZWZpbGUtMTEtZW5kaWZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9NYWtlZmlsZToxMjpvYmotJChDT05GSUdfTkVUX01FRElBVEVLX1NPQ19XRUQpICs9IG10a193ZWRfb3BzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9NYWtlZmlsZS0xMy1vYmotJChDT05GSUdfTkVUX01FRElBVEVLX1NUQVJfRU1BQykgKz0gbXRrX3N0YXJfZW1hYy5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jLTMyLSNpbmNsdWRlIFxcXCJtdGtfZXRoX3NvYy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmM6MzM6I2luY2x1ZGUgXFxcIm10a193ZWQuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jLTM0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYz00NDE2PXN0YXRpYyB2b2lkIG10a19wZW5kaW5nX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYy00NDI2LVxcdG10a19wcmVwYXJlX2Zvcl9yZXNldChldGgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmM6NDQyNzpcXHRtdGtfd2VkX2ZlX3Jlc2V0KCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYy00NDI4LVxcdC8qIFJ1biBhZ2FpbiByZXNldCBwcmVsaW1pbmFyeSBjb25maWd1cmF0aW9uIGluIG9yZGVyIHRvIGF2b2lkIGFueVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYy00NDc1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmM6NDQ3NjpcXHRtdGtfd2VkX2ZlX3Jlc2V0X2NvbXBsZXRlKCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYy00NDc3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYz01MDk1PXN0YXRpYyBpbnQgbXRrX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jLTUyMjUtXFx0XFx0XFx0d2RtYV9waHkgPSByZXMgPyByZXMtXFx1MDAzZXN0YXJ0ICsgd2RtYV9iYXNlIDogMDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jOjUyMjY6XFx0XFx0XFx0bXRrX3dlZF9hZGRfaHcobnAsIGV0aCwgZXRoLVxcdTAwM2ViYXNlICsgd2RtYV9iYXNlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmMtNTIyNy1cXHRcXHRcXHRcXHQgICAgICAgd2RtYV9waHksIGkpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYy01MzY0LWVycl93ZWRfZXhpdDpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jOjUzNjU6XFx0bXRrX3dlZF9leGl0KCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYy01MzY2LWVycl9kZXN0cm95X3NnbWlpOlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYz01MzcyPXN0YXRpYyB2b2lkIG10a19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmMtNTM4Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jOjUzODc6XFx0bXRrX3dlZF9leGl0KCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYy01Mzg4LVxcdG10a19od19kZWluaXQoZXRoKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19wcGVfb2ZmbG9hZC5jLTEzLSNpbmNsdWRlIFxcXCJtdGtfZXRoX3NvYy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19wcGVfb2ZmbG9hZC5jOjE0OiNpbmNsdWRlIFxcXCJtdGtfd2VkLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3BwZV9vZmZsb2FkLmMtMTUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfcHBlX29mZmxvYWQuYz0yNjc9bXRrX2Zsb3dfb2ZmbG9hZF9yZXBsYWNlKHN0cnVjdCBtdGtfZXRoICpldGgsIHN0cnVjdCBmbG93X2Nsc19vZmZsb2FkICpmLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3BwZV9vZmZsb2FkLmMtNDg3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19wcGVfb2ZmbG9hZC5jOjQ4ODpcXHRpZiAod2VkX2luZGV4IFxcdTAwM2U9IDAgXFx1MDAyNlxcdTAwMjYgKGVyciA9IG10a193ZWRfZmxvd19hZGQod2VkX2luZGV4KSkgXFx1MDAzYyAwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19wcGVfb2ZmbG9hZC5jLTQ4OS1cXHRcXHRyZXR1cm4gZXJyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3BwZV9vZmZsb2FkLmMtNTE1LVxcdGlmICh3ZWRfaW5kZXggXFx1MDAzZT0gMClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfcHBlX29mZmxvYWQuYzo1MTY6XFx0ICAgIG10a193ZWRfZmxvd19yZW1vdmUod2VkX2luZGV4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfcHBlX29mZmxvYWQuYy01MTctXFx0cmV0dXJuIGVycjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19wcGVfb2ZmbG9hZC5jPTUyMT1tdGtfZmxvd19vZmZsb2FkX2Rlc3Ryb3koc3RydWN0IG10a19ldGggKmV0aCwgc3RydWN0IGZsb3dfY2xzX29mZmxvYWQgKmYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfcHBlX29mZmxvYWQuYy01MzMtXFx0aWYgKGVudHJ5LVxcdTAwM2V3ZWRfaW5kZXggXFx1MDAzZT0gMClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfcHBlX29mZmxvYWQuYzo1MzQ6XFx0XFx0bXRrX3dlZF9mbG93X3JlbW92ZShlbnRyeS1cXHUwMDNld2VkX2luZGV4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfcHBlX29mZmxvYWQuYy01MzUtXFx0a2ZyZWUoZW50cnkpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTE1LSNpbmNsdWRlIFxcdTAwM2NsaW51eC9kZWJ1Z2ZzLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjE2OiNpbmNsdWRlIFxcdTAwM2NsaW51eC9zb2MvbWVkaWF0ZWsvbXRrX3dlZC5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xNy0jaW5jbHVkZSBcXHUwMDNjbmV0L2Zsb3dfb2ZmbG9hZC5oXFx1MDAzZVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTE5LSNpbmNsdWRlIFxcXCJtdGtfZXRoX3NvYy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoyMDojaW5jbHVkZSBcXFwibXRrX3dlZC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0yMS0jaW5jbHVkZSBcXFwibXRrX3BwZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoyMjojaW5jbHVkZSBcXFwibXRrX3dlZF93by5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0yMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy01MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NTE6c3RhdGljIHN0cnVjdCBtdGtfd2VkX2h3ICpod19saXN0WzNdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy01Mi1zdGF0aWMgREVGSU5FX01VVEVYKGh3X2xvY2spO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy01My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NTQ6c3RydWN0IG10a193ZWRfZmxvd19ibG9ja19wcml2IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NTU6XFx0c3RydWN0IG10a193ZWRfaHcgKmh3O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy01Ni1cXHRzdHJ1Y3QgbmV0X2RldmljZSAqZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTU4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo1OTpzdGF0aWMgY29uc3Qgc3RydWN0IG10a193ZWRfc29jX2RhdGEgbXQ3NjIyX2RhdGEgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTYwLVxcdC5yZWdtYXAgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNzEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjcyOnN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX3dlZF9zb2NfZGF0YSBtdDc5ODZfZGF0YSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNzMtXFx0LnJlZ21hcCA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy04NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6ODU6c3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfd2VkX3NvY19kYXRhIG10Nzk4OF9kYXRhID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy04Ni1cXHQucmVnbWFwID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTk0LVxcdH0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjk1OlxcdC50eF9yaW5nX2Rlc2Nfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgbXRrX3dlZF9ibV9kZXNjKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtOTYtXFx0LndkbWFfZGVzY19zaXplID0gMiAqIHNpemVvZihzdHJ1Y3QgbXRrX3dkbWFfZGVzYyksXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9OTk9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTAwOndlZF9tMzIoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYsIHUzMiByZWcsIHUzMiBtYXNrLCB1MzIgdmFsKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMDEte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTEwNT1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMDY6d2VkX3NldChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgdTMyIHJlZywgdTMyIG1hc2spXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEwNy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9MTExPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExMjp3ZWRfY2xyKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2LCB1MzIgcmVnLCB1MzIgbWFzaylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTEzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMTc9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTE4OndkbWFfbTMyKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2LCB1MzIgcmVnLCB1MzIgbWFzaywgdTMyIHZhbClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTE5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMjM9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTI0OndkbWFfc2V0KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2LCB1MzIgcmVnLCB1MzIgbWFzaylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTI1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMjk9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTMwOndkbWFfY2xyKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2LCB1MzIgcmVnLCB1MzIgbWFzaylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTMxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMzU9c3RhdGljIHUzMlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMzY6d2lmaV9yMzIoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYsIHUzMiByZWcpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEzNy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9MTQxPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjE0Mjp3aWZpX3czMihzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgdTMyIHJlZywgdTMyIHZhbClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTQzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xNDc9c3RhdGljIHUzMlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxNDg6bXRrX3dlZF9yZWFkX3Jlc2V0KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xNDkte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTE1Mz1zdGF0aWMgdTMyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjE1NDptdGtfd2RtYV9yZWFkX3Jlc2V0KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xNTUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTE1OT1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxNjA6bXRrX3dkbWFfdjNfcnhfcmVzZXQoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTE2MS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTYzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxNjQ6XFx0aWYgKCFtdGtfd2VkX2lzX3YzX29yX2dyZWF0ZXIoZGV2LVxcdTAwM2VodykpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTE2NS1cXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9MjQzPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MjQ0Om10a193ZG1hX3J4X3Jlc2V0KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0yNDUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTI3MD1zdGF0aWMgdTMyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjI3MTptdGtfd2VkX2NoZWNrX2J1c3koc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYsIHUzMiByZWcsIHUzMiBtYXNrKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0yNzIte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTI3Nj1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjI3NzptdGtfd2VkX3BvbGxfYnVzeShzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgdTMyIHJlZywgdTMyIG1hc2spXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTI3OC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMjgyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoyODM6XFx0cmV0dXJuIHJlYWRfcG9sbF90aW1lb3V0KG10a193ZWRfY2hlY2tfYnVzeSwgdmFsLCAhdmFsLCBzbGVlcCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMjg0LVxcdFxcdFxcdFxcdCB0aW1lb3V0LCBmYWxzZSwgZGV2LCByZWcsIG1hc2spO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTI4Nz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoyODg6bXRrX3dkbWFfdjNfdHhfcmVzZXQoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTI4OS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMjkxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoyOTI6XFx0aWYgKCFtdGtfd2VkX2lzX3YzX29yX2dyZWF0ZXIoZGV2LVxcdTAwM2VodykpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTI5My1cXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9MzY1PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjM2NjptdGtfd2RtYV90eF9yZXNldChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMzY3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0zODU9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6Mzg2Om10a193ZWRfcmVzZXQoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYsIHUzMiBtYXNrKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0zODcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTM5MC1cXHR3ZWRfdzMyKGRldiwgTVRLX1dFRF9SRVNFVCwgbWFzayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjM5MTpcXHRpZiAocmVhZHhfcG9sbF90aW1lb3V0KG10a193ZWRfcmVhZF9yZXNldCwgZGV2LCBzdGF0dXMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTM5Mi1cXHRcXHRcXHQgICAgICAgIShzdGF0dXMgXFx1MDAyNiBtYXNrKSwgMCwgMTAwMCkpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9Mzk2PXN0YXRpYyB1MzJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6Mzk3Om10a193ZWRfd29fcmVhZF9zdGF0dXMoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTM5OC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9NDAyPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjQwMzptdGtfd2VkX3dvX3Jlc2V0KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy00MDQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo0MDU6XFx0c3RydWN0IG10a193ZWRfd28gKndvID0gZGV2LVxcdTAwM2Vody1cXHUwMDNld2VkX3dvO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy00MDYtXFx0dTggc3RhdGUgPSBNVEtfV0VEX1dPX1NUQVRFX0RJU0FCTEU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDEwLVxcdG10a193ZG1hX3R4X3Jlc2V0KGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjQxMTpcXHRtdGtfd2VkX3Jlc2V0KGRldiwgTVRLX1dFRF9SRVNFVF9XRUQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy00MTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjQxMzpcXHRpZiAobXRrX3dlZF9tY3Vfc2VuZF9tc2cod28sIE1US19XRURfTU9EVUxFX0lEX1dPLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy00MTQtXFx0XFx0XFx0XFx0IE1US19XRURfV09fQ01EX0NIQU5HRV9TVEFURSwgXFx1MDAyNnN0YXRlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTQxNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NDE4OlxcdGlmIChyZWFkeF9wb2xsX3RpbWVvdXQobXRrX3dlZF93b19yZWFkX3N0YXR1cywgZGV2LCB2YWwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTQxOS1cXHRcXHRcXHQgICAgICAgdmFsID09IE1US19XRURfV09JRl9ESVNBQkxFX0RPTkUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDQ0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo0NDU6dm9pZCBtdGtfd2VkX2ZlX3Jlc2V0KHZvaWQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTQ0Ni17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDUxLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBUlJBWV9TSVpFKGh3X2xpc3QpOyBpKyspIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NDUyOlxcdFxcdHN0cnVjdCBtdGtfd2VkX2h3ICpodyA9IGh3X2xpc3RbaV07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjQ1MzpcXHRcXHRzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDU0LVxcdFxcdGludCBlcnI7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDcxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo0NzI6dm9pZCBtdGtfd2VkX2ZlX3Jlc2V0X2NvbXBsZXRlKHZvaWQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTQ3My17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDc4LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBUlJBWV9TSVpFKGh3X2xpc3QpOyBpKyspIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NDc5OlxcdFxcdHN0cnVjdCBtdGtfd2VkX2h3ICpodyA9IGh3X2xpc3RbaV07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjQ4MDpcXHRcXHRzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDgxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTQ5NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NDk1OnN0YXRpYyBzdHJ1Y3QgbXRrX3dlZF9odyAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjQ5NjptdGtfd2VkX2Fzc2lnbihzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDk3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NDk4OlxcdHN0cnVjdCBtdGtfd2VkX2h3ICpodztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDk5LVxcdGludCBpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTUwOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NTA5OlxcdFxcdGlmIChtdGtfd2VkX2lzX3YxKGh3KSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNTEwLVxcdFxcdFxcdHJldHVybiBOVUxMO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTUyOD1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjUyOTptdGtfd2VkX2Ftc2R1X2J1ZmZlcl9hbGxvYyhzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNTMwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NTMxOlxcdHN0cnVjdCBtdGtfd2VkX2h3ICpodyA9IGRldi1cXHUwMDNlaHc7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjUzMjpcXHRzdHJ1Y3QgbXRrX3dlZF9hbXNkdSAqd2VkX2Ftc2R1O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy01MzMtXFx0aW50IGk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTUzNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NTM1OlxcdGlmICghbXRrX3dlZF9pc192M19vcl9ncmVhdGVyKGh3KSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNTM2LVxcdFxcdHJldHVybiAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTU3Mj1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo1NzM6bXRrX3dlZF9hbXNkdV9mcmVlX2J1ZmZlcihzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNTc0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NTc1OlxcdHN0cnVjdCBtdGtfd2VkX2Ftc2R1ICp3ZWRfYW1zZHUgPSBkZXYtXFx1MDAzZWh3LVxcdTAwM2V3ZWRfYW1zZHU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTU3Ni1cXHRpbnQgaTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz01ODk9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo1OTA6bXRrX3dlZF9hbXNkdV9pbml0KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy01OTEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo1OTI6XFx0c3RydWN0IG10a193ZWRfYW1zZHUgKndlZF9hbXNkdSA9IGRldi1cXHUwMDNlaHctXFx1MDAzZXdlZF9hbXNkdTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNTkzLVxcdGludCBpLCByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNjExLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo2MTI6XFx0cmV0ID0gbXRrX3dlZF9wb2xsX2J1c3koZGV2LCBNVEtfV0VEX0FNU0RVX1NUQV9JTkZPLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy02MTMtXFx0XFx0XFx0XFx0TVRLX1dFRF9BTVNEVV9TVEFfSU5GT19ET19JTklUKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy02MjQtXFx0d2VkX3NldChkZXYsIE1US19XRURfQU1TRFVfUFNFLCBNVEtfV0VEX0FNU0RVX1BTRV9SRVNFVCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjYyNTpcXHRyZXQgPSBtdGtfd2VkX3BvbGxfYnVzeShkZXYsIE1US19XRURfTU9OX0FNU0RVX1FNRU1fU1RTMSwgQklUKDI5KSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTYyNi1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9NjQwPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NjQxOm10a193ZWRfdHhfYnVmZmVyX2FsbG9jKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy02NDIte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTY0NS1cXHRpbnQgdG9rZW4gPSBkZXYtXFx1MDAzZXdsYW4udG9rZW5fc3RhcnQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjY0NjpcXHRzdHJ1Y3QgbXRrX3dlZF9idWYgKnBhZ2VfbGlzdDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNjQ3LVxcdGRtYV9hZGRyX3QgZGVzY19waHlzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTY0OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NjUwOlxcdGlmICghbXRrX3dlZF9pc192M19vcl9ncmVhdGVyKGRldi1cXHUwMDNlaHcpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTY1MS1cXHRcXHRyaW5nX3NpemUgPSBkZXYtXFx1MDAzZXdsYW4ubmJ1ZiBcXHUwMDI2IH4oTVRLX1dFRF9CVUZfUEVSX1BBR0UgLSAxKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy03MDMtXFx0XFx0XFx0ZGVzYy1cXHUwMDNlYnVmMCA9IGNwdV90b19sZTMyKGJ1Zl9waHlzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NzA0OlxcdFxcdFxcdGlmICghbXRrX3dlZF9pc192M19vcl9ncmVhdGVyKGRldi1cXHUwMDNlaHcpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTcwNS1cXHRcXHRcXHRcXHR1MzIgdHhkX3NpemU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNzEwLVxcdFxcdFxcdFxcdGN0cmwgPSBGSUVMRF9QUkVQKE1US19XRE1BX0RFU0NfQ1RSTF9MRU4wLCB0eGRfc2l6ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjcxMTpcXHRcXHRcXHRcXHRpZiAobXRrX3dlZF9pc192MShkZXYtXFx1MDAzZWh3KSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNzEyLVxcdFxcdFxcdFxcdFxcdGN0cmwgfD0gTVRLX1dETUFfREVTQ19DVFJMX0xBU1RfU0VHMSB8XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9NzM3PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjczODptdGtfd2VkX2ZyZWVfdHhfYnVmZmVyKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy03Mzkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo3NDA6XFx0c3RydWN0IG10a193ZWRfYnVmICpwYWdlX2xpc3QgPSBkZXYtXFx1MDAzZXR4X2J1Zl9yaW5nLnBhZ2VzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo3NDE6XFx0c3RydWN0IG10a193ZWRfaHcgKmh3ID0gZGV2LVxcdTAwM2VodztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNzQyLVxcdGludCBpLCBwYWdlX2lkeCA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9NzcxPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NzcyOm10a193ZWRfaHdycm9fYnVmZmVyX2FsbG9jKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy03NzMte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy03NzQtXFx0aW50IG5fcGFnZXMgPSBNVEtfV0VEX1JYX1BHX0JNX0NOVCAvIE1US19XRURfUlhfQlVGX1BFUl9QQUdFO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo3NzU6XFx0c3RydWN0IG10a193ZWRfYnVmICpwYWdlX2xpc3Q7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjc3NjpcXHRzdHJ1Y3QgbXRrX3dlZF9ibV9kZXNjICpkZXNjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy03NzctXFx0ZG1hX2FkZHJfdCBkZXNjX3BoeXM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9ODM0PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6ODM1Om10a193ZWRfcnhfYnVmZmVyX2FsbG9jKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy04MzYte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo4Mzc6XFx0c3RydWN0IG10a193ZWRfYm1fZGVzYyAqZGVzYztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtODM4LVxcdGRtYV9hZGRyX3QgZGVzY19waHlzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTg1MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6ODUxOlxcdHJldHVybiBtdGtfd2VkX2h3cnJvX2J1ZmZlcl9hbGxvYyhkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy04NTItfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTg1ND1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo4NTU6bXRrX3dlZF9od3Jyb19mcmVlX2J1ZmZlcihzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtODU2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6ODU3OlxcdHN0cnVjdCBtdGtfd2VkX2J1ZiAqcGFnZV9saXN0ID0gZGV2LVxcdTAwM2Vod19ycm8ucGFnZXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjg1ODpcXHRzdHJ1Y3QgbXRrX3dlZF9ibV9kZXNjICpkZXNjID0gZGV2LVxcdTAwM2Vod19ycm8uZGVzYztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtODU5LVxcdGludCBpLCBwYWdlX2lkeCA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9ODg5PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjg5MDptdGtfd2VkX2ZyZWVfcnhfYnVmZmVyKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy04OTEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo4OTI6XFx0c3RydWN0IG10a193ZWRfYm1fZGVzYyAqZGVzYyA9IGRldi1cXHUwMDNlcnhfYnVmX3JpbmcuZGVzYztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtODkzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTkwMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6OTAxOlxcdG10a193ZWRfaHdycm9fZnJlZV9idWZmZXIoZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtOTAyLX1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz05MDQ9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6OTA1Om10a193ZWRfaHdycm9faW5pdChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtOTA2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6OTA3OlxcdGlmICghbXRrX3dlZF9nZXRfcnhfY2FwYShkZXYpIHx8ICFkZXYtXFx1MDAzZXdsYW4uaHdfcnJvKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy05MDgtXFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTkyND1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo5MjU6bXRrX3dlZF9yeF9idWZmZXJfaHdfaW5pdChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtOTI2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy05MzUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjkzNjpcXHRtdGtfd2VkX2h3cnJvX2luaXQoZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtOTM3LX1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz05Mzk9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6OTQwOm10a193ZWRfZnJlZV9yaW5nKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2LCBzdHJ1Y3QgbXRrX3dlZF9yaW5nICpyaW5nKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy05NDEte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTk0OT1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo5NTA6bXRrX3dlZF9mcmVlX3J4X3JpbmdzKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy05NTEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo5NTI6XFx0bXRrX3dlZF9mcmVlX3J4X2J1ZmZlcihkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo5NTM6XFx0bXRrX3dlZF9mcmVlX3JpbmcoZGV2LCBcXHUwMDI2ZGV2LVxcdTAwM2Vycm8ucmluZyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTk1NC19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9OTU2PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjk1NzptdGtfd2VkX2ZyZWVfdHhfcmluZ3Moc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTk1OC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtOTYxLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBUlJBWV9TSVpFKGRldi1cXHUwMDNldHhfcmluZyk7IGkrKylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6OTYyOlxcdFxcdG10a193ZWRfZnJlZV9yaW5nKGRldiwgXFx1MDAyNmRldi1cXHUwMDNldHhfcmluZ1tpXSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTk2My1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRShkZXYtXFx1MDAzZXJ4X3dkbWEpOyBpKyspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjk2NDpcXHRcXHRtdGtfd2VkX2ZyZWVfcmluZyhkZXYsIFxcdTAwMjZkZXYtXFx1MDAzZXJ4X3dkbWFbaV0pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy05NjUtfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTk2Nz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo5Njg6bXRrX3dlZF9zZXRfZXh0X2ludChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgYm9vbCBlbilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtOTY5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz05OTc9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6OTk4Om10a193ZWRfc2V0XzUxMl9zdXBwb3J0KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2LCBib29sIGVuYWJsZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtOTk5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTAwMDpcXHRpZiAoIW10a193ZWRfaXNfdjIoZGV2LVxcdTAwM2VodykpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEwMDEtXFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTEwMTQ9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMDE1Om10a193ZWRfY2hlY2tfd2ZkbWFfcnhfZmlsbChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTAxNjpcXHRcXHRcXHQgICAgc3RydWN0IG10a193ZWRfcmluZyAqcmluZylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTAxNy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9MTAzNz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMDM4Om10a193ZWRfZG1hX2Rpc2FibGUoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEwMzkte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEwNTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEwNTU6XFx0aWYgKG10a193ZWRfaXNfdjEoZGV2LVxcdTAwM2VodykpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTA1Ni1cXHRcXHRyZWdtYXBfd3JpdGUoZGV2LVxcdTAwM2Vody1cXHUwMDNlbWlycm9yLCBkZXYtXFx1MDAzZWh3LVxcdTAwM2VpbmRleCAqIDQsIDApO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEwNjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEwNjk6XFx0XFx0aWYgKG10a193ZWRfaXNfdjNfb3JfZ3JlYXRlcihkZXYtXFx1MDAzZWh3KSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMDcwOlxcdFxcdCAgICBtdGtfd2VkX2dldF9yeF9jYXBhKGRldikpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTA3MS1cXHRcXHRcXHR3ZG1hX2NscihkZXYsIE1US19XRE1BX1BSRUZfVFhfQ0ZHLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEwNzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEwNzg6XFx0bXRrX3dlZF9zZXRfNTEyX3N1cHBvcnQoZGV2LCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEwNzktfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTEwODE9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTA4MjptdGtfd2VkX3N0b3Aoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEwODMte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMDg0OlxcdG10a193ZWRfZG1hX2Rpc2FibGUoZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTA4NTpcXHRtdGtfd2VkX3NldF9leHRfaW50KGRldiwgZmFsc2UpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMDg2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEwOTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEwOTI6XFx0aWYgKCFtdGtfd2VkX2dldF9yeF9jYXBhKGRldikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEwOTMtXFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTEwOTk9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTEwMDptdGtfd2VkX2RlaW5pdChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTEwMS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExMDI6XFx0bXRrX3dlZF9zdG9wKGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTExMDMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTEwOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTExMDpcXHRpZiAobXRrX3dlZF9pc192MShkZXYtXFx1MDAzZWh3KSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTExMS1cXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTExNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTExODpcXHRpZiAobXRrX3dlZF9pc192M19vcl9ncmVhdGVyKGRldi1cXHUwMDNlaHcpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTExMTktXFx0XFx0d2VkX2NscihkZXYsIE1US19XRURfQ1RSTCwgTVRLX1dFRF9DVFJMX1RYX0FNU0RVX0VOKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMTI3PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExMjg6X19tdGtfd2VkX2RldGFjaChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTEyOS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExMzA6XFx0c3RydWN0IG10a193ZWRfaHcgKmh3ID0gZGV2LVxcdTAwM2VodztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTEzMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTEzMjpcXHRtdGtfd2VkX2RlaW5pdChkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMTMzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMTM0LVxcdG10a193ZG1hX3J4X3Jlc2V0KGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExMzU6XFx0bXRrX3dlZF9yZXNldChkZXYsIE1US19XRURfUkVTRVRfV0VEKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTEzNjpcXHRtdGtfd2VkX2Ftc2R1X2ZyZWVfYnVmZmVyKGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExMzc6XFx0bXRrX3dlZF9mcmVlX3R4X2J1ZmZlcihkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMTM4OlxcdG10a193ZWRfZnJlZV90eF9yaW5ncyhkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMTM5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMTQwOlxcdGlmIChtdGtfd2VkX2dldF9yeF9jYXBhKGRldikpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTE0MS1cXHRcXHRpZiAoaHctXFx1MDAzZXdlZF93bylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTE0MjpcXHRcXHRcXHRtdGtfd2VkX3dvX3Jlc2V0KGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExNDM6XFx0XFx0bXRrX3dlZF9mcmVlX3J4X3JpbmdzKGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTExNDQtXFx0XFx0aWYgKGh3LVxcdTAwM2V3ZWRfd28pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExNDU6XFx0XFx0XFx0bXRrX3dlZF93b19kZWluaXQoaHcpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMTQ2LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMTY3PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExNjg6bXRrX3dlZF9kZXRhY2goc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTExNjkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMTcwLVxcdG11dGV4X2xvY2soXFx1MDAyNmh3X2xvY2spO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMTcxOlxcdF9fbXRrX3dlZF9kZXRhY2goZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTE3Mi1cXHRtdXRleF91bmxvY2soXFx1MDAyNmh3X2xvY2spO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTExNzU9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTE3NjptdGtfd2VkX2J1c19pbml0KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMTc3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMTgxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMTgyOlxcdFxcdGlmIChtdGtfd2VkX2lzX3YyKGRldi1cXHUwMDNlaHcpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTExODMtXFx0XFx0XFx0c3RydWN0IHJlZ21hcCAqcmVncztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMjI4PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEyMjk6bXRrX3dlZF9zZXRfd3BkbWEoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEyMzAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEyMzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEyMzM6XFx0aWYgKG10a193ZWRfaXNfdjEoZGV2LVxcdTAwM2VodykpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTIzNC1cXHRcXHR3ZWRfdzMyKGRldiwgTVRLX1dFRF9XUERNQV9DRkdfQkFTRSwgIGRldi1cXHUwMDNld2xhbi53cGRtYV9waHlzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMjM3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMjM4OlxcdG10a193ZWRfYnVzX2luaXQoZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTIzOS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMjQ0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMjQ1OlxcdGlmICghbXRrX3dlZF9nZXRfcnhfY2FwYShkZXYpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMjQ2LVxcdFxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMjUwLVxcdFxcdGRldi1cXHUwMDNld2xhbi53cGRtYV9yeFswXSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEyNTE6XFx0aWYgKG10a193ZWRfaXNfdjNfb3JfZ3JlYXRlcihkZXYtXFx1MDAzZWh3KSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTI1Mi1cXHRcXHR3ZWRfdzMyKGRldiwgZGV2LVxcdTAwM2Vody1cXHUwMDNlc29jLVxcdTAwM2VyZWdtYXAud3BkbWFfcnhfcmluZ1sxXSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMjY1PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEyNjY6bXRrX3dlZF9od19pbml0X2Vhcmx5KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMjY3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMjcwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMjcxOlxcdG10a193ZWRfZGVpbml0KGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEyNzI6XFx0bXRrX3dlZF9yZXNldChkZXYsIE1US19XRURfUkVTRVRfV0VEKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTI3MzpcXHRtdGtfd2VkX3NldF93cGRtYShkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMjc0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMjc1OlxcdGlmICghbXRrX3dlZF9pc192M19vcl9ncmVhdGVyKGRldi1cXHUwMDNlaHcpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEyNzYtXFx0XFx0bWFzayB8PSBNVEtfV0VEX1dETUFfR0xPX0NGR19EWU5BTUlDX0RNQURfUkVDWUNMRSB8XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTI4Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTI4MzpcXHRpZiAobXRrX3dlZF9pc192MShkZXYtXFx1MDAzZWh3KSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMjg0LVxcdFxcdHUzMiBvZmZzZXQgPSBkZXYtXFx1MDAzZWh3LVxcdTAwM2VpbmRleCA/IDB4MDQwMDA0MDAgOiAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTEzMTI9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMzEzOm10a193ZWRfcnJvX3JpbmdfYWxsb2Moc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYsIHN0cnVjdCBtdGtfd2VkX3JpbmcgKnJpbmcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEzMTQtXFx0XFx0ICAgICAgIGludCBzaXplKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTEzMjk9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMzMwOm10a193ZWRfcnJvX2FsbG9jKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMzMxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMzQxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMzQyOlxcdHJldHVybiBtdGtfd2VkX3Jyb19yaW5nX2FsbG9jKGRldiwgXFx1MDAyNmRldi1cXHUwMDNlcnJvLnJpbmcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEzNDMtXFx0XFx0XFx0XFx0ICAgICAgTVRLX1dFRF9SUk9fUVVFX0NOVCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9MTM0Nj1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEzNDc6bXRrX3dlZF9ycm9fY2ZnKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMzQ4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTM0OTpcXHRzdHJ1Y3QgbXRrX3dlZF93byAqd28gPSBkZXYtXFx1MDAzZWh3LVxcdTAwM2V3ZWRfd287XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEzNTAtXFx0c3RydWN0IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMzcxLVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwNjo1NjowMi4yMTc3MjU1ODZaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4Njc0NTI3NDQ1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFzc2Vzc2luZyB0aGUgRnV6emFiaWxpdHkgb2YgdGhlIG10a193ZWQgRHJpdmVyKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBgbXRrX3dlZGAgZHJpdmVyLiBGcm9tIHRoZSBjb2RlLCBpdCBsb29rcyBsaWtlIGl0J3MgYSBoYXJkd2FyZSBkcml2ZXIgZm9yIE1lZGlhdGVrIFNvQ3MsIHNwZWNpZmljYWxseSB1c2luZyBmdW5jdGlvbnMgbGlrZSBgbXRrX3dlZF9pc192MihkZXYtXHUwMDNlaHcpYCBhbmQgYG10a193ZWRfaXNfdjNfb3JfZ3JlYXRlcihkZXYtXHUwMDNlaHcpYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBjYW4gd2UgZXZlbiBmdXp6IHRoaXMgaW4gUUVNVT8gTGV0J3MgZmlndXJlIG91dCB0aGUgZGV2aWNlIHR5cGUgZmlyc3Q7IGlzIGl0IGEgUENJIGRldmljZSBvciBhIHBsYXRmb3JtIGRldmljZT9cblxuQSBxdWljayBzZWFyY2ggaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmNgIHJldmVhbHMgdGhhdCBgbXRrX3Byb2JlYCBpcyBhIHBsYXRmb3JtIGRyaXZlciBwcm9iZS4gVGhhdCBtYWtlcyB0aGluZ3MgaW1tZWRpYXRlbHkgbW9yZSBjb21wbGljYXRlZC4gUGxhdGZvcm0gZHJpdmVycyBmb3IgTWVkaWF0ZWsgU29DcywgcGFydGljdWxhcmx5IHRob3NlIHRhcmdldGluZyBzcGVjaWZpYyBjaGlwcyBsaWtlIHRoZSBNVDc2MjIsIE1UNzk4Niwgb3IgTVQ3OTg4LCBhcmUgKm5vdCogdHlwaWNhbGx5IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG5cbldhaXQsIHRoaXMgc3BlY2lmaWMgcHJvYmxlbSBzdGF0ZW1lbnQgbWVudGlvbnMgc29tZXRoaW5nIGFib3V0IGRyaXZlcnMuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhpcyBkcml2ZXIgaXMgKmFjdHVhbGx5KiB3b3J0aCBmdXp6aW5nLiBJIHJlbWVtYmVyIHJlYWRpbmcgc29tZXRoaW5nIGFib3V0IHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIGJlaW5nIGV4cGxpY2l0bHkgZXhjbHVkZWQuICBEb2VzIHRoZSBleGNsdXNpb24gaW5jbHVkZSBwbGF0Zm9ybSBkcml2ZXJzIGZvciBzcGVjaWZpYyBTb0NzPyBCYXNlZCBvbiBteSBleHBlcmllbmNlLCBpdCB1c3VhbGx5IGRvZXM7IHRoZXNlIGtpbmRzIG9mIGRyaXZlcnMgY2FuJ3QgYmUgcHJvYmVkIGluIHN0YW5kYXJkIFFFTVUgdW5sZXNzIHRoZXJlJ3MgYSB2ZXJ5IHNwZWNpZmljIG1hY2hpbmUgdHlwZSwgbGlrZSBgcmFzcGkzYmAgb3IgYHZpcnRgLCB0aGF0IGhhcHBlbnMgdG8gZW11bGF0ZSB0aGUgcmVsZXZhbnQgTWVkaWF0ZWsgaGFyZHdhcmUuIFFFTVUgZGVmaW5pdGVseSBkb2Vzbid0IGVtdWxhdGUgTWVkaWF0ZWsgTVQ3OTg2L01UNzk4OCBFdGhlcm5ldC5cblxuT2theSwgbGV0IG1lIGRvdWJsZS1jaGVjayB0aG91Z2guIEl0J3MgYWx3YXlzIHdvcnRoIHZlcmlmeWluZyBhc3N1bXB0aW9ucy4gSXMgdGhlcmUgKmFueSogdmlydHVhbCBvciBlbXVsYXRlZCBNZWRpYXRlayBFdGhlcm5ldCBpbiBzdGFuZGFyZCBRRU1VIHRoYXQgY291bGQgcG9zc2libHkgbGVhZCB1cyB0byByZWFjaCB0aGlzIGRyaXZlcj9cblxuTm8sIHRoZSBhbnN3ZXIgaXMgc3RpbGwgbm8uIFN0YW5kYXJkIFFFTVUgZG9lc24ndCBlbXVsYXRlIE1lZGlhdGVrIEV0aGVybmV0LlxuXG5XYWl0LCBTeXprYWxsZXIgbWlnaHQgb2ZmZXIgYSB3YXkgaW4gaWYgaXQgdXNlcyBzb21ldGhpbmcgbGlrZSBgc3l6X21vdW50YCwgb3IgcGVyaGFwcyBzb21lIG90aGVyIG1ldGhvZC4gIEJ1dCB0aGlzICppcyogYSBwbGF0Zm9ybSBkZXZpY2UuIFdoaWxlIFN5emthbGxlciAqY2FuKiBmdXp6IHBsYXRmb3JtIGRldmljZXMsIGl0J3MgcmVsaWFudCBvbiBhIG1ldGhvZCB0byBpbmplY3QgZGV2aWNlIHRyZWUgbm9kZXMgb3Igc29tZSBvdGhlciBtZWFucyB0byBpbnN0YW50aWF0ZSB0aGUgZGV2aWNlLiBSZWFjaGluZyBoYXJkd2FyZS1zcGVjaWZpYyBwbGF0Zm9ybSBkcml2ZXIgY29kZSB3aXRob3V0IGVtdWxhdGlvbiBpcyBnZW5lcmFsbHkgZXh0cmVtZWx5IGRpZmZpY3VsdC4gVGhpcyBjb3VsZCBiZSBpbmNyZWRpYmx5IGRpZmZpY3VsdCB0byByZWFjaC5cblxuT2theSwgbGV0J3MgbG9vayBhdCByZWFjaGFiaWxpdHkuIFRoZSBwYXRjaCBtb2RpZmllcyBgbXRrX3dlZF93ZG1hX3R4X3Jpbmdfc2V0dXBgIGFuZCBgbXRrX3dlZF9zdGFydGAuIFRoYXQncyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIEJ1dCwgd2hlcmUgaXMgYG10a193ZWRfc3RhcnRgICpjYWxsZWQqIGZyb20/IEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjYWxsIGNoYWluIHRvIGFzc2VzcyB3aGV0aGVyIHdlIGNhbiByZWFzb25hYmx5IHRyaWdnZXIgdGhpcyBjb2RlIHBhdGguXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE2MTgyLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTA1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDA2OjU2OjEwLjg5MjI1NTQyMVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzA3MjgzNTM0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10a193ZWRfc3RhcnRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0yMTYwPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjIxNjE6bXRrX3dlZF9zdGFydF9od19ycm8oc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYsIHUzMiBpcnFfbWFzaywgYm9vbCByZXNldClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMjE2Mi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9MjMyNT1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoyMzI2Om10a193ZWRfc3RhcnQoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYsIHUzMiBpcnFfbWFzaylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMjMyNy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9Mjc3OT12b2lkIG10a193ZWRfYWRkX2h3KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsIHN0cnVjdCBtdGtfZXRoICpldGgsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMjc4OC1cXHRcXHQubXNnX3VwZGF0ZSA9IG10a193ZWRfbWN1X21zZ191cGRhdGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjI3ODk6XFx0XFx0LnN0YXJ0ID0gbXRrX3dlZF9zdGFydCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMjc5MC1cXHRcXHQuc3RvcCA9IG10a193ZWRfc3RvcCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0yNzk4LVxcdFxcdC5zZXR1cF90YyA9IG10a193ZWRfc2V0dXBfdGMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjI3OTk6XFx0XFx0LnN0YXJ0X2h3X3JybyA9IG10a193ZWRfc3RhcnRfaHdfcnJvLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0yODAwLVxcdFxcdC5ycm9fcnhfcmluZ19zZXR1cCA9IG10a193ZWRfcnJvX3J4X3Jpbmdfc2V0dXAsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDA2OjU2OjEyLjU5OTU0NTUzNVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ3NDc0NDI1OTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBgbXRrX3dlZF9vcHNgIFN0cnVjdHVyZSoqXG5cblJpZ2h0LCBgbXRrX3dlZF9vcHNgLi4uIHRoYXQgcmluZ3MgYSBiZWxsLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGl0J3MgZGVmaW5pdGVseSByZWdpc3RlcmVkIGluIGBtdGtfd2VkX29wc2AsIHdoaWNoIHNjcmVhbXMgTWVkaWF0ZWsgV2lGaSBkcml2ZXIgaW52b2x2ZW1lbnQsIHByb2JhYmx5IGFsb25nIHRoZSBsaW5lcyBvZiB0aGUgYG10NzZgIHNlcmllcy4gVGhpcyBzdWdnZXN0cyBpdCdzIGxpa2VseSBhIGtleSBpbnRlcmZhY2Ugb3IgYSBzZXQgb2Ygb3BlcmF0aW9uYWwgZnVuY3Rpb25zIGZvciBoYXJkd2FyZSBhY2NlbGVyYXRpb24gd2l0aGluIHRoZWlyIFdpRmkgc29sdXRpb25zLiBUaGUgbmFtZSBkZWZpbml0ZWx5IGxlYW5zIGluIHRoZSBkaXJlY3Rpb24gb2Ygc29tZXRoaW5nIHJlbGF0ZWQgdG8gXCJXaXJlbGVzcyBFbmhhbmNlZCBEYXRhXCIgb3BlcmF0aW9ucywgb3IgcGVyaGFwcyBcIldpcmVsZXNzIEVuY3J5cHRpb24gYW5kIERlY3J5cHRpb25cIiwgd2hpY2ggd291bGQgYmUgc3RhbmRhcmQgZm9yIHRoaXMgY29udGV4dC5cblxuTXkgbmV4dCBpbW1lZGlhdGUgcXVlc3Rpb24g4oCTIG9yIHJhdGhlciwgdGhlICpmaXJzdCogc3RlcCBpbiBteSBtZW50YWwgZGVidWdnaW5nIHByb2Nlc3Mg4oCTIGlzLCAqd2hlcmUqIGlzIHRoaXMgYG10a193ZWRfb3BzYCBzdHJ1Y3R1cmUgYWN0dWFsbHkgKnVzZWQqPyBJIG5lZWQgdG8gdHJhY2sgZG93biBhbGwgdGhlIGluc3RhbmNlcyB3aGVyZSBpdCdzIHJlZmVyZW5jZWQsIHRoZSBjYWxscyBvciBhc3NpZ25tZW50cyB0aGF0IGludGVyZmFjZSB3aXRoIGl0LiBJJ2QgbmVlZCB0byBsb29rIGF0IHRoZSBkZWZpbml0aW9ucyB3aXRoaW4gdGhlIHJlbGV2YW50IGRyaXZlciBtb2R1bGVzLCBpZGVhbGx5IHRyYWNpbmcgdGhlIGV4ZWN1dGlvbiBmbG93LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgcmVsYXRpb25zaGlwIHRvIHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlIGFjY2VsZXJhdGlvbiBtZWNoYW5pc21zLCBwcm9iYWJseSB3aXRoaW4gdGhlIG5ldHdvcmsgaW50ZXJmYWNlLiBGaW5kaW5nIGFsbCBvZiBpdHMgdXNlcyBpcyB3aGVyZSBJIHdvdWxkIHN0YXJ0LiBUaGlzIGlzIHRoZSBseW5jaHBpbiwgdGhlIGNydWNpYWwgcGllY2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE3ODM0LCJPdXRwdXRUb2tlbnMiOjI2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjZUMDY6NTY6MTcuMzQ2OTkxMDIzWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0MzQ2OTk5NzQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXRrX3dlZF9vcHNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL01ha2VmaWxlPTExPWVuZGlmXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvTWFrZWZpbGU6MTI6b2JqLSQoQ09ORklHX05FVF9NRURJQVRFS19TT0NfV0VEKSArPSBtdGtfd2VkX29wcy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvTWFrZWZpbGUtMTMtb2JqLSQoQ09ORklHX05FVF9NRURJQVRFS19TVEFSX0VNQUMpICs9IG10a19zdGFyX2VtYWMub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTI3Nzk9dm9pZCBtdGtfd2VkX2FkZF9odyhzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLCBzdHJ1Y3QgbXRrX2V0aCAqZXRoLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTI3ODIte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoyNzgzOlxcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX3dlZF9vcHMgd2VkX29wcyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMjc4NC1cXHRcXHQuYXR0YWNoID0gbXRrX3dlZF9hdHRhY2gsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkX29wcy5jLTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZF9vcHMuYzo3OmNvbnN0IHN0cnVjdCBtdGtfd2VkX29wcyBfX3JjdSAqbXRrX3NvY193ZWRfb3BzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWRfb3BzLmMtOC1FWFBPUlRfU1lNQk9MX0dQTChtdGtfc29jX3dlZF9vcHMpO1xcbi0tXFxuaW5jbHVkZS9saW51eC9zb2MvbWVkaWF0ZWsvbXRrX3dlZC5oPTg1PXN0cnVjdCBtdGtfd2VkX2RldmljZSB7XFxuaW5jbHVkZS9saW51eC9zb2MvbWVkaWF0ZWsvbXRrX3dlZC5oLTg2LSNpZmRlZiBDT05GSUdfTkVUX01FRElBVEVLX1NPQ19XRURcXG5pbmNsdWRlL2xpbnV4L3NvYy9tZWRpYXRlay9tdGtfd2VkLmg6ODc6XFx0Y29uc3Qgc3RydWN0IG10a193ZWRfb3BzICpvcHM7XFxuaW5jbHVkZS9saW51eC9zb2MvbWVkaWF0ZWsvbXRrX3dlZC5oLTg4LVxcdHN0cnVjdCBkZXZpY2UgKmRldjtcXG4tLVxcbmluY2x1ZGUvbGludXgvc29jL21lZGlhdGVrL210a193ZWQuaC0xOTQtXFxuaW5jbHVkZS9saW51eC9zb2MvbWVkaWF0ZWsvbXRrX3dlZC5oOjE5NTpzdHJ1Y3QgbXRrX3dlZF9vcHMge1xcbmluY2x1ZGUvbGludXgvc29jL21lZGlhdGVrL210a193ZWQuaC0xOTYtXFx0aW50ICgqYXR0YWNoKShzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldikgX19yZWxlYXNlcyhSQ1UpO1xcbi0tXFxuaW5jbHVkZS9saW51eC9zb2MvbWVkaWF0ZWsvbXRrX3dlZC5oLTIyOS1cXG5pbmNsdWRlL2xpbnV4L3NvYy9tZWRpYXRlay9tdGtfd2VkLmg6MjMwOmV4dGVybiBjb25zdCBzdHJ1Y3QgbXRrX3dlZF9vcHMgX19yY3UgKm10a19zb2Nfd2VkX29wcztcXG5pbmNsdWRlL2xpbnV4L3NvYy9tZWRpYXRlay9tdGtfd2VkLmgtMjMxLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwNjo1NjoxOS43ODE3MDAyMzdaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzE0ODk0MjMyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgbXQ3NiBEcml2ZXIncyBXRUQgT3BlcmF0aW9ucyoqXG5cblJpZ2h0LCBzbyBJJ20gdGhpbmtpbmcgYWJvdXQgdGhlIGBtdGtfd2VkX29wc2Agc3RydWN0dXJlLiBJIGtub3cgaXQncyBmdW5kYW1lbnRhbCB0byB0aGUgb3BlcmF0aW9uIG9mIHRoZSBgbXQ3NmAgZHJpdmVyLiBNeSBpbW1lZGlhdGUgZ29hbCBpcyB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIHN0cnVjdHVyZSBpcyBhY3R1YWxseSB1c2VkIHdpdGhpbiB0aGF0IHNwZWNpZmljIGRyaXZlci5cblxuVGhlcmVmb3JlLCBJJ2xsIHVzZSBgZ3JlcGAgdG8gcXVpY2tseSBsb2NhdGUgYWxsIGluc3RhbmNlcyBvZiBgbXRrX3NvY193ZWRfb3BzYCB3aXRoaW4gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2YCBkaXJlY3RvcnkuIFRoaXMgc2hvdWxkIGdpdmUgbWUgYSBzb2xpZCBvdmVydmlldyBvZiBpdHMgcm9sZSBhbmQgaG93IGl0J3MgaW50ZWdyYXRlZCB3aXRoIHRoZSBicm9hZGVyIGBtdDc2YCBmcmFtZXdvcmsuIEkgZXhwZWN0IHRvIGZpbmQgaXRzIGRlY2xhcmF0aW9uLCBhc3NpZ25tZW50cywgYW5kIGNhbGxzLiBUaGlzIHRhcmdldGVkIGFwcHJvYWNoIHdpbGwgaG9wZWZ1bGx5IGV4cG9zZSB0aGUgZHJpdmVyJ3MgV0VEIGluaXRpYWxpemF0aW9uIGFuZCBpbnRlcmFjdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MTg4NDQsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwNjo1NjoyMy4wOTY1OTcxOTlaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0MTczNzUwNSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXRrX3NvY193ZWRfb3BzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwNjo1NjoyMy4yMzgzNTc2NDNaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzI5MTQxNzQ3OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOlxuXG4qKkRpZ2dpbmcgaW50byB0aGUgTWVkaWF0ZWsgV2lyZWxlc3MgRHJpdmVyKipcblxuT2theSwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhpcyBNZWRpYXRlayB3aXJlbGVzcyBkcml2ZXIgYmV0dGVyLiBTcGVjaWZpY2FsbHksIEknbSB0cnlpbmcgdG8gZmlndXJlIG91dCBzb21ldGhpbmcgcmVsYXRlZCB0byBgbXRrX3dlZGAuIExldCdzIGdldCByaWdodCB0byBpdC4gTXkgZmlyc3QgaW5zdGluY3QgaXMgdG8gZGl2ZSBpbnRvIHRoZSBjb2RlLiBHaXZlbiB3aGF0IEkga25vdyBhYm91dCBNZWRpYXRlaydzIHdpcmVsZXNzIG9mZmVyaW5ncywgdGhlIGxvZ2ljYWwgcGxhY2UgdG8gc3RhcnQgaXMgdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2AgZGlyZWN0b3J5LiBUaGF0IHNlZW1zIGxpa2UgdGhlIGNhbm9uaWNhbCBsb2NhdGlvbiBmb3IgdGhlaXIgY3VycmVudCBkcml2ZXJzLiBOb3csIGxldCdzIGZpcmUgdXAgYSBgZ3JlcGAgY29tbWFuZCB0byBzZWFyY2ggc3BlY2lmaWNhbGx5IGZvciBgbXRrX3dlZGAgd2l0aGluIHRoYXQgZGlyZWN0b3J5LiBJJ20gaG9waW5nIHRvIHF1aWNrbHkgaWRlbnRpZnkgdGhlIHJlbGV2YW50IGZpbGVzIG9yIGZ1bmN0aW9ucyB3aGVyZSB0aGlzIHNwZWNpZmljIHRlcm0gaXMgdXNlZCBhbmQsIGJ5IGV4dGVuc2lvbiwgZ2V0IGEgaGFuZGxlIG9uIHdoYXQgaXQgcmVmZXJzIHRvLiBUaGlzIHNob3VsZCBnaXZlIG1lIGEgZ29vZCBqdW1waW5nLW9mZiBwb2ludCBmb3IgZnVydGhlciBpbnZlc3RpZ2F0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTEzNCwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDA2OjU2OjI2LjUyOTc3NzcyMloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzM4MDU4MzE5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10a193ZWRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA3ODggbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM9ODAyPW10NzZfZG1hX2FsbG9jX3F1ZXVlKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtODQ1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6ODQ2OlxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbW1pby53ZWQpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzo4NDc6XFx0XFx0aWYgKChtdGtfd2VkX2dldF9yeF9jYXBhKFxcdTAwMjZkZXYtXFx1MDAzZW1taW8ud2VkKSBcXHUwMDI2XFx1MDAyNiBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkpIHx8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy04NDgtXFx0XFx0ICAgIG10NzZfcXVldWVfaXNfd2VkX3R4X2ZyZWUocSkpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTg2MT1tdDc2X2RtYV9yeF9jbGVhbnVwKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtODgxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6ODgyOlxcdFxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbW1pby53ZWQpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy04ODMtXFx0XFx0ICAgIG10NzZfcXVldWVfaXNfd2VkX3JybyhxKSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM9OTA1PW10NzZfZG1hX3J4X3Jlc2V0KHN0cnVjdCBtdDc2X2RldiAqZGV2LCBlbnVtIG10NzZfcnhxX2lkIHFpZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtOTI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6OTI4OlxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbW1pby53ZWQpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy05MjktXFx0ICAgIG10NzZfcXVldWVfaXNfd2VkX3JybyhxKSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM9MTE2Nz12b2lkIG10NzZfZG1hX2NsZWFudXAoc3RydWN0IG10NzZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTEyMDAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoxMjAxOlxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbW1pby53ZWQpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6MTIwMjpcXHRcXHRtdGtfd2VkX2RldmljZV9kZXRhY2goXFx1MDAyNmRldi1cXHUwMDNlbW1pby53ZWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTIwMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjEyMDQ6XFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcXHUwMDI2ZGV2LVxcdTAwM2VtbWlvLndlZF9oaWYyKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjEyMDU6XFx0XFx0bXRrX3dlZF9kZXZpY2VfZGV0YWNoKFxcdTAwMjZkZXYtXFx1MDAzZW1taW8ud2VkX2hpZjIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTIwNi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmgtNTQtXFx0aWYgKChfcSktXFx1MDAzZWZsYWdzIFxcdTAwMjYgTVRfUUZMQUdfV0VEKVxcdFxcdFxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5oOjU1OlxcdFxcdF92YWwgPSBtdGtfd2VkX2RldmljZV9yZWdfcmVhZCgoX3EpLVxcdTAwM2V3ZWQsXFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmgtNTYtXFx0XFx0XFx0XFx0XFx0ICAgICAgICgoX3EpLVxcdTAwM2V3ZWRfcmVncyArXFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaC02NS1cXHRpZiAoKF9xKS1cXHUwMDNlZmxhZ3MgXFx1MDAyNiBNVF9RRkxBR19XRUQpXFx0XFx0XFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmg6NjY6XFx0XFx0bXRrX3dlZF9kZXZpY2VfcmVnX3dyaXRlKChfcSktXFx1MDAzZXdlZCxcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaC02Ny1cXHRcXHRcXHRcXHRcXHQgKChfcSktXFx1MDAzZXdlZF9yZWdzICsgX29mZnNldCksXFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaD0xNzU9bXQ3Nl9kbWFfcmVzZXRfdHhfcXVldWUoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaC0xNzktXFx0ZGV2LVxcdTAwM2VxdWV1ZV9vcHMtXFx1MDAzZXJlc2V0X3EoZGV2LCBxLCByZXNldF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmg6MTgwOlxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbW1pby53ZWQpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmgtMTgxLVxcdFxcdG10NzZfd2VkX2RtYV9zZXR1cChkZXYsIHEsIHRydWUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jPTE1NTQ9dm9pZCBtdDc2X3J4X3BvbGxfY29tcGxldGUoc3RydWN0IG10NzZfZGV2ICpkZXYsIGVudW0gbXQ3Nl9yeHFfaWQgcSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy0xNTYzLVxcdFxcdG10NzZfY2hlY2tfc3RhKGRldiwgc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmM6MTU2NDpcXHRcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZkZXYtXFx1MDAzZW1taW8ud2VkKSB8fFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy0xNTY1LVxcdFxcdCAgICBtdDc2X25wdV9kZXZpY2VfYWN0aXZlKGRldikpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21taW8uYz03Nz12b2lkIG10NzZfc2V0X2lycV9tYXNrKHN0cnVjdCBtdDc2X2RldiAqZGV2LCB1MzIgYWRkcixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbW1pby5jLTg1LVxcdGlmIChhZGRyKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tbWlvLmM6ODY6XFx0XFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcXHUwMDI2ZGV2LVxcdTAwM2VtbWlvLndlZCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tbWlvLmM6ODc6XFx0XFx0XFx0bXRrX3dlZF9kZXZpY2VfaXJxX3NldF9tYXNrKFxcdTAwMjZkZXYtXFx1MDAzZW1taW8ud2VkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbW1pby5jLTg4LVxcdFxcdFxcdFxcdFxcdFxcdCAgICBkZXYtXFx1MDAzZW1taW8uaXJxbWFzayk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xNi0jaW5jbHVkZSBcXHUwMDNjbGludXgvc29jL2Fpcm9oYS9haXJvaGFfb2ZmbG9hZC5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjE3OiNpbmNsdWRlIFxcdTAwM2NsaW51eC9zb2MvbWVkaWF0ZWsvbXRrX3dlZC5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE4LSNpbmNsdWRlIFxcdTAwM2NuZXQvbWFjODAyMTEuaFxcdTAwM2VcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oPTIzNT1zdHJ1Y3QgbXQ3Nl9xdWV1ZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0yNjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MjYxOlxcdHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTI2Mi1cXHRzdHJ1Y3QgbXQ3Nl9kZXYgKmRldjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oPTcxNT1zdHJ1Y3QgbXQ3Nl9tbWlvIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTcxOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDo3MjA6XFx0c3RydWN0IG10a193ZWRfZGV2aWNlIHdlZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDo3MjE6XFx0c3RydWN0IG10a193ZWRfZGV2aWNlIHdlZF9oaWYyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTcyMi1cXHRzdHJ1Y3QgY29tcGxldGlvbiB3ZWRfcmVzZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaD0xMjM1PXN0YXRpYyBpbmxpbmUgdTE2IG10NzZfcmV2KHN0cnVjdCBtdDc2X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTIzOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxMjQwOnZvaWQgbXQ3Nl93ZWRfcmVsZWFzZV9yeF9idWYoc3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjEyNDE6dm9pZCBtdDc2X3dlZF9vZmZsb2FkX2Rpc2FibGUoc3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjEyNDI6dm9pZCBtdDc2X3dlZF9yZXNldF9jb21wbGV0ZShzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTI0My12b2lkIG10NzZfd2VkX2RtYV9yZXNldChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg9MTI0ND1pbnQgbXQ3Nl93ZWRfbmV0X3NldHVwX3RjKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTI0Ny0jaWZkZWYgQ09ORklHX05FVF9NRURJQVRFS19TT0NfV0VEXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTI0ODp1MzIgbXQ3Nl93ZWRfaW5pdF9yeF9idWYoc3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQsIGludCBzaXplKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxMjQ5OmludCBtdDc2X3dlZF9vZmZsb2FkX2VuYWJsZShzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTI1MC1pbnQgbXQ3Nl93ZWRfZG1hX3NldHVwKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSwgYm9vbCByZXNldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTI1MS0jZWxzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjEyNTI6c3RhdGljIGlubGluZSB1MzIgbXQ3Nl93ZWRfaW5pdF9yeF9idWYoc3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQsIGludCBzaXplKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTEyNTMte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTI1Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxMjU3OnN0YXRpYyBpbmxpbmUgaW50IG10NzZfd2VkX29mZmxvYWRfZW5hYmxlKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTEyNTgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg9MTI2Mj1zdGF0aWMgaW5saW5lIGludCBtdDc2X3dlZF9kbWFfc2V0dXAoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTI5MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxMjkxOnN0YXRpYyBpbmxpbmUgc3RydWN0IG10NzZfZGV2ICptdDc2X3dlZF90b19kZXYoc3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTI5Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21hYy5jPTUwND12b2lkIG10NzZfY29ubmFjMl9tYWNfd3JpdGVfdHh3aShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgX19sZTMyICp0eHdpLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tYWMuYy01NDctXFx0XFx0LyogbXQ3OTE1IFdBIG9ubHkgY291bnRzIFdFRCBwYXRoICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tYWMuYzo1NDg6XFx0XFx0aWYgKGlzX210NzkxNShkZXYpIFxcdTAwMjZcXHUwMDI2IG10a193ZWRfZGV2aWNlX2FjdGl2ZShcXHUwMDI2ZGV2LVxcdTAwM2VtbWlvLndlZCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tYWMuYy01NDktXFx0XFx0XFx0d2NpZC1cXHUwMDNlc3RhdHMudHhfcGFja2V0cysrO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tYWMuYz02MjQ9Ym9vbCBtdDc2X2Nvbm5hYzJfbWFjX2ZpbGxfdHhzKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tYWMuYy02MzYtXFx0LyogUFBEVSBiYXNlZCByZXBvcnRpbmcgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21hYy5jOjYzNzpcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZkZXYtXFx1MDAzZW1taW8ud2VkKSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWFjLmMtNjM4LVxcdCAgICBGSUVMRF9HRVQoTVRfVFhTMF9UWFNfRk9STUFULCB0eHMpIFxcdTAwM2UgMSkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYz0xMjcyPWludCBtdDc2X2Nvbm5hY19tY3Vfc3RhX3dlZF91cGRhdGUoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jLTEyNzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYzoxMjc3OlxcdGlmICghbXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZkZXYtXFx1MDAzZW1taW8ud2VkKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jLTEyNzgtXFx0XFx0cmV0dXJuIDA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYy0xMjc5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmM6MTI4MDpcXHRyZXR1cm4gbXRrX3dlZF9kZXZpY2VfdXBkYXRlX21zZyhcXHUwMDI2ZGV2LVxcdTAwM2VtbWlvLndlZCwgV0VEX1dPX1NUQV9SRUMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYy0xMjgxLVxcdFxcdFxcdFxcdFxcdCBza2ItXFx1MDAzZWRhdGEsIHNrYi1cXHUwMDNlbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jPTk9bXQ3OTE1X2luaXRfdHhfcXVldWVzKHN0cnVjdCBtdDc5MTVfcGh5ICpwaHksIGludCBpZHgsIGludCBuX2Rlc2MsIGludCByaW5nX2Jhc2UpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy0xMS1cXHRzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2ID0gcGh5LVxcdTAwM2VkZXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6MTI6XFx0c3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQgPSBOVUxMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTEzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjE0OlxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5tbWlvLndlZCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy0xNS1cXHRcXHRpZiAoaXNfbXQ3OTh4KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM9NDE9c3RhdGljIHZvaWQgbXQ3OTE1X2RtYV9jb25maWcoc3RydWN0IG10NzkxNV9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTg2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjg3OlxcdFxcdGlmIChpc19tdDc5MTYoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NikgXFx1MDAyNlxcdTAwMjYgbXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtODgtXFx0XFx0XFx0UlhRX0NPTkZJRyhNVF9SWFFfTUFJTiwgV0ZETUEwLCBNVF9JTlRfV0VEX1JYX0RPTkVfQkFORDBfTVQ3OTE2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM9MjU1PWludCBtdDc5MTVfZG1hX3N0YXJ0KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIGJvb2wgcmVzZXQsIGJvb2wgd2VkX3Jlc2V0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtMzA4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjMwOTpcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQpIFxcdTAwMjZcXHUwMDI2IHdlZF9yZXNldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTMxMC1cXHRcXHR1MzIgd2VkX2lycV9tYXNrID0gaXJxX21hc2s7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy0zMjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6MzIzOlxcdFxcdG10a193ZWRfZGV2aWNlX3N0YXJ0KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQsIHdlZF9pcnFfbWFzayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtMzI0LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jPTQwOD1pbnQgbXQ3OTE1X2RtYV9pbml0KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkyKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNDIzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjQyNDpcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZtZGV2LVxcdTAwM2VtbWlvLndlZCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy00MjUtXFx0XFx0aWYgKCFpc19tdDc5OHgobWRldikpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTQ5My1cXHQvKiBldmVudCBmcm9tIFdBICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NDk0OlxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNm1kZXYtXFx1MDAzZW1taW8ud2VkKSBcXHUwMDI2XFx1MDAyNiBpc19tdDc5MTUobWRldikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy00OTUtXFx0XFx0d2FfcnhfYmFzZSA9IE1UX1dFRF9SWF9SSU5HX0JBU0U7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01MTAtXFx0aWYgKCFkZXYtXFx1MDAzZXBoeS5tdDc2LVxcdTAwM2ViYW5kX2lkeCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjUxMTpcXHRcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZtZGV2LVxcdTAwM2VtbWlvLndlZCkgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo1MTI6XFx0XFx0ICAgIG10a193ZWRfZ2V0X3J4X2NhcGEoXFx1MDAyNm1kZXYtXFx1MDAzZW1taW8ud2VkKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTUxMy1cXHRcXHRcXHRtZGV2LVxcdTAwM2VxX3J4W01UX1JYUV9NQUlOXS5mbGFncyA9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01MzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTMzOlxcdFxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNm1kZXYtXFx1MDAzZW1taW8ud2VkKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTUzNC1cXHRcXHRcXHRtZGV2LVxcdTAwM2VxX3J4W01UX1JYUV9NQUlOX1dBXS5mbGFncyA9IE1UX1dFRF9RX1RYRlJFRTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTU0OS1cXHRpZiAoZGV2LVxcdTAwM2VkYmRjX3N1cHBvcnQgfHwgZGV2LVxcdTAwM2VwaHkubXQ3Ni1cXHUwMDNlYmFuZF9pZHgpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo1NTA6XFx0XFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcXHUwMDI2bWRldi1cXHUwMDNlbW1pby53ZWQpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTUxOlxcdFxcdCAgICBtdGtfd2VkX2dldF9yeF9jYXBhKFxcdTAwMjZtZGV2LVxcdTAwM2VtbWlvLndlZCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01NTItXFx0XFx0XFx0bWRldi1cXHUwMDNlcV9yeFtNVF9SWFFfQkFORDFdLmZsYWdzID1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jPTU5MD1pbnQgbXQ3OTE1X2RtYV9yZXNldChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCBib29sIGZvcmNlKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNTkyLVxcdHN0cnVjdCBtdDc2X3BoeSAqbXBoeV9leHQgPSBkZXYtXFx1MDAzZW10NzYucGh5c1tNVF9CQU5EMV07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTkzOlxcdHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkID0gXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5tbWlvLndlZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01OTQtXFx0aW50IGk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy02MTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NjEzOlxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUod2VkKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo2MTQ6XFx0XFx0bXRrX3dlZF9kZXZpY2VfZG1hX3Jlc2V0KHdlZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNjE1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNjQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjY0MTpcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZCkgXFx1MDAyNlxcdTAwMjYgaXNfbXQ3OTE1KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTY0Mi1cXHRcXHRtdDc2X3JtdyhkZXYsIE1UX1dGRE1BMF9FWFQwX0NGRywgTVRfV0ZETUEwX0VYVDBfUlhXQl9LRUVQLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTM1OD1tdDc5MTVfaW5pdF93aXBoeShzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTM3MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MzcxOlxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNm1kZXYtXFx1MDAzZW1taW8ud2VkKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMzcyLVxcdFxcdGh3LVxcdTAwM2VuZXRkZXZfZmVhdHVyZXMgfD0gTkVUSUZfRl9IV19UQztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz00ODQ9bXQ3OTE1X21hY19pbml0X2JhbmQoc3RydWN0IG10NzkxNV9kZXYgKmRldiwgdTggYmFuZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy01NDktXFx0ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjU1MDpcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy01NTEtXFx0XFx0bXQ3Nl9zZXQoZGV2LCBNVF9BR0dfQUNSNChiYW5kKSwgTVRfQUdHX0FDUl9QUERVX1RYUzJIKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jPTIzNj1tdDc5MTVfd2VkX2NoZWNrX3BwZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTI1Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYzoyNTc6XFx0bXRrX3dlZF9kZXZpY2VfcHBlX2NoZWNrKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQsIHNrYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy0yNTgtXFx0XFx0XFx0XFx0IEZJRUxEX0dFVChNVF9ETUFfUFBFX0NQVV9SRUFTT04sIGluZm8pLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM9ODY3PW10NzkxNV9tYWNfdHhfZnJlZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCB2b2lkICpkYXRhLCBpbnQgbGVuKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtOTEzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jOjkxNDpcXHRcXHRpZiAoIW10a193ZWRfZGV2aWNlX2FjdGl2ZShcXHUwMDI2bWRldi1cXHUwMDNlbW1pby53ZWQpIFxcdTAwMjZcXHUwMDI2IHdjaWQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy05MTUtXFx0XFx0XFx0dTMyIHR4X3JldHJpZXMgPSAwLCB0eF9mYWlsZWQgPSAwLCBjb3VudDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jPTE0NzM9dm9pZCBtdDc5MTVfbWFjX3Jlc2V0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMTUzMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYzoxNTM0OlxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5tbWlvLndlZCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM6MTUzNTpcXHRcXHRtdGtfd2VkX2RldmljZV9zdG9wKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTE1MzYtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM9MTE1Nz1zdGF0aWMgdm9pZCBtdDc5MTVfc3RhX3N0YXRpc3RpY3Moc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtMTE4OS1cXHQgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6MTE5MDpcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZwaHktXFx1MDAzZWRldi1cXHUwMDNlbXQ3Ni5tbWlvLndlZCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtMTE5MS1cXHRcXHRzaW5mby1cXHUwMDNldHhfYnl0ZXMgPSBtc3RhLVxcdTAwM2V3Y2lkLnN0YXRzLnR4X2J5dGVzO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTExOTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jOjExOTk6XFx0XFx0aWYgKG10a193ZWRfZ2V0X3J4X2NhcGEoXFx1MDAyNnBoeS1cXHUwMDNlZGV2LVxcdTAwM2VtdDc2Lm1taW8ud2VkKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0xMjAwLVxcdFxcdFxcdHNpbmZvLVxcdTAwM2VyeF9ieXRlcyA9IG1zdGEtXFx1MDAzZXdjaWQuc3RhdHMucnhfYnl0ZXM7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM9MTcyMz1tdDc5MTVfbmV0X2ZpbGxfZm9yd2FyZF9wYXRoKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTE3MzItXFx0c3RydWN0IG10NzkxNV9waHkgKnBoeSA9IG10NzkxNV9od19waHkoaHcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYzoxNzMzOlxcdHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkID0gXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5tbWlvLndlZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtMTczNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6MTczNTpcXHRpZiAoIW10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWQpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0xNzM2LVxcdFxcdHJldHVybiAtRU5PREVWO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM9MTc4NT1pbnQgbXQ3OTE1X21jdV93ZWRfZW5hYmxlX3J4X3N0YXRzKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0xNzg3LSNpZmRlZiBDT05GSUdfTkVUX01FRElBVEVLX1NPQ19XRURcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzoxNzg4OlxcdHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkID0gXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5tbWlvLndlZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0xNzg5LVxcdHN0cnVjdCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0xNzk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjE3OTY6XFx0cmV0dXJuIG10a193ZWRfZGV2aWNlX3VwZGF0ZV9tc2cod2VkLCBNVEtfV0VEX1dPX0NNRF9SWENOVF9DVFJMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTE3OTctXFx0XFx0XFx0XFx0XFx0IFxcdTAwMjZyZXEsIHNpemVvZihyZXEpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jPTIzOTI9aW50IG10NzkxNV9tY3VfaW5pdF9maXJtd2FyZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMjQyNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzoyNDI2OlxcdGlmICgobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMjQyNy1cXHQgICAgIGlzX210NzkxNShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSkgfHxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzoyNDI4OlxcdCAgICAhbXRrX3dlZF9nZXRfcnhfY2FwYShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2Lm1taW8ud2VkKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yNDI5LVxcdFxcdG10NzkxNV9tY3Vfd2FfY21kKGRldiwgTUNVX1dBX1BBUkFNX0NNRChDQVBBQklMSVRZKSwgMCwgMCwgMCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yNDQzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjI0NDQ6XFx0cmV0dXJuIG10NzkxNV9tY3Vfc2V0X3JlZChkZXYsIG10a193ZWRfZGV2aWNlX2FjdGl2ZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2Lm1taW8ud2VkKSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMjQ0NS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM9NTY1PXN0YXRpYyB1MzIgbXQ3OTE1X3JtdyhzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHUzMiBvZmZzZXQsIHUzMiBtYXNrLCB1MzIgdmFsKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTU4MC0jaWZkZWYgQ09ORklHX05FVF9NRURJQVRFS19TT0NfV0VEXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjU4MTpzdGF0aWMgdm9pZCBtdDc5MTVfbW1pb193ZWRfdXBkYXRlX3J4X3N0YXRzKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYzo1ODI6XFx0XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBtdGtfd2VkX3dvX3J4X3N0YXRzICpzdGF0cylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtNTgzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy02MDItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjYwMzpzdGF0aWMgaW50IG10NzkxNV9tbWlvX3dlZF9yZXNldChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtNjA0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYz02MzM9aW50IG10NzkxNV9tbWlvX3dlZF9pbml0KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIHZvaWQgKnBkZXZfcHRyLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTYzNi0jaWZkZWYgQ09ORklHX05FVF9NRURJQVRFS19TT0NfV0VEXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjYzNzpcXHRzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZCA9IFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTYzOC1cXHRpbnQgcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTcyMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6NzI0OlxcdGlmIChtdGtfd2VkX2RldmljZV9hdHRhY2god2VkKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtNzI1LVxcdFxcdHJldHVybiAwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jPTc5Mz12b2lkIG10NzkxNV9kdWFsX2hpZl9zZXRfaXJxX21hc2soc3RydWN0IG10NzkxNV9kZXYgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy04MDUtXFx0aWYgKHdyaXRlX3JlZykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYzo4MDY6XFx0XFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcXHUwMDI2bWRldi1cXHUwMDNlbW1pby53ZWQpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYzo4MDc6XFx0XFx0XFx0bXRrX3dlZF9kZXZpY2VfaXJxX3NldF9tYXNrKFxcdTAwMjZtZGV2LVxcdTAwM2VtbWlvLndlZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtODA4LVxcdFxcdFxcdFxcdFxcdFxcdCAgICBtZGV2LVxcdTAwM2VtbWlvLmlycW1hc2spO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jPTgyNj1zdGF0aWMgdm9pZCBtdDc5MTVfaXJxX3Rhc2tsZXQoc3RydWN0IHRhc2tsZXRfc3RydWN0ICp0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTgyOC1cXHRzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2ID0gZnJvbV90YXNrbGV0KGRldiwgdCwgbXQ3Ni5pcnFfdGFza2xldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjgyOTpcXHRzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZCA9IFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTgzMC1cXHR1MzIgaW50ciwgaW50cjEsIG1hc2s7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTgzMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6ODMyOlxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUod2VkKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYzo4MzM6XFx0XFx0bXRrX3dlZF9kZXZpY2VfaXJxX3NldF9tYXNrKHdlZCwgMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTgzNC1cXHRcXHRpZiAoZGV2LVxcdTAwM2VoaWYyKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy04MzUtXFx0XFx0XFx0bXQ3Nl93cihkZXYsIE1UX0lOVDFfTUFTS19DU1IsIDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYzo4MzY6XFx0XFx0aW50ciA9IG10a193ZWRfZGV2aWNlX2lycV9nZXQod2VkLCBkZXYtXFx1MDAzZW10NzYubW1pby5pcnFtYXNrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtODM3LVxcdH0gZWxzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM9ODk2PWlycXJldHVybl90IG10NzkxNV9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkZXZfaW5zdGFuY2UpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtODk4LVxcdHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYgPSBkZXZfaW5zdGFuY2U7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjg5OTpcXHRzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZCA9IFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTkwMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6OTAxOlxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUod2VkKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6OTAyOlxcdFxcdG10a193ZWRfZGV2aWNlX2lycV9zZXRfbWFzayh3ZWQsIDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy05MDMtXFx0ZWxzZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmM9MTAzPXN0YXRpYyBpbnQgbXQ3OTE1X3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jLTE5Mi1mcmVlX3dlZF9vcl9pcnFfdmVjdG9yOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jOjE5MzpcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZtZGV2LVxcdTAwM2VtbWlvLndlZCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmM6MTk0OlxcdFxcdG10a193ZWRfZGV2aWNlX2RldGFjaChcXHUwMDI2bWRldi1cXHUwMDNlbW1pby53ZWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jLTE5NS1cXHRlbHNlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9zb2MuYz0xMjIwPXN0YXRpYyBpbnQgbXQ3OTh4X3dtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3NvYy5jLTEyNzItZnJlZV9kZXZpY2U6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmM6MTI3MzpcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZtZGV2LVxcdTAwM2VtbWlvLndlZCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmM6MTI3NDpcXHRcXHRtdGtfd2VkX2RldmljZV9kZXRhY2goXFx1MDAyNm1kZXYtXFx1MDAzZW1taW8ud2VkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9zb2MuYy0xMjc1LVxcdG10NzZfZnJlZV9kZXZpY2UobWRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz0xMD1pbnQgbXQ3OTk2X2luaXRfdHhfcXVldWVzKHN0cnVjdCBtdDc5OTZfcGh5ICpwaHksIGludCBpZHgsIGludCBuX2Rlc2MsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTE6XFx0XFx0XFx0ICBpbnQgcmluZ19iYXNlLCBzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxNjpcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNy1cXHRcXHRyaW5nX2Jhc2UgKz0gTVRfVFhRX0lEKDApICogTVRfUklOR19TSVpFO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM9MzA2PXZvaWQgbXQ3OTk2X2RtYV9zdGFydChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBib29sIHJlc2V0LCBib29sIHdlZF9yZXNldClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0zMDcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjMwODpcXHRzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZCA9IFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMzA5LVxcdHUzMiBoaWYxX29mcyA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0zMTYtXFx0aWYgKCFyZXNldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjMxNzpcXHRcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZCkgXFx1MDAyNlxcdTAwMjYgbXRrX3dlZF9nZXRfcnhfY2FwYSh3ZWQpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTMxOC1cXHRcXHRcXHRtdDc2X3NldChkZXYsIE1UX1dGRE1BMF9HTE9fQ0ZHLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMzUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjM1NDpcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZCkgXFx1MDAyNlxcdTAwMjYgd2VkX3Jlc2V0KSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMzU1LVxcdFxcdHUzMiB3ZWRfaXJxX21hc2sgPSBpcnFfbWFzaztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTM1OC1cXHRcXHRtdDc2X3dyKGRldiwgTVRfSU5UX01BU0tfQ1NSLCB3ZWRfaXJxX21hc2spO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjM1OTpcXHRcXHRtdGtfd2VkX2RldmljZV9zdGFydCh3ZWQsIHdlZF9pcnFfbWFzayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMzYwLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jPTM3ND1zdGF0aWMgdm9pZCBtdDc5OTZfZG1hX2VuYWJsZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBib29sIHJlc2V0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTAyLVxcdFxcdCAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjUwMzpcXHRcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTA0LVxcdFxcdCAgICBtdDc5OTZfaGFzX2h3cnJvKGRldikpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jPTUyMT1pbnQgbXQ3OTk2X2RtYV9ycm9faW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTI5LVxcdFxcdG1kZXYtXFx1MDAzZXFfcnhbTVRfUlhRX1JST19SWERNQURfQ10uZmxhZ3MgPSBNVF9XRURfUlJPX1FfUlhETUFEX0M7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NTMwOlxcdFxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNm1kZXYtXFx1MDAzZW1taW8ud2VkKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01MzEtXFx0XFx0XFx0bWRldi1cXHUwMDNlcV9yeFtNVF9SWFFfUlJPX1JYRE1BRF9DXS53ZWQgPSBcXHUwMDI2bWRldi1cXHUwMDNlbW1pby53ZWQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01NDEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NTQyOlxcdFxcdGlmICghbXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZtZGV2LVxcdTAwM2VtbWlvLndlZCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01NDMtXFx0XFx0XFx0LyogV2UgbmVlZCB0byBzZXQgY3B1IGlkeCBwb2ludGVyIGJlZm9yZSByZXNldHRpbmcgdGhlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01NTYtXFx0bWRldi1cXHUwMDNlcV9yeFtNVF9SWFFfUlJPX0lORF0uZmxhZ3MgPSBNVF9XRURfUlJPX1FfSU5EO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjU1NzpcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZtZGV2LVxcdTAwM2VtbWlvLndlZCkgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1NTg6XFx0ICAgIG10a193ZWRfZ2V0X3J4X2NhcGEoXFx1MDAyNm1kZXYtXFx1MDAzZW1taW8ud2VkKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01NTktXFx0XFx0bWRldi1cXHUwMDNlcV9yeFtNVF9SWFFfUlJPX0lORF0ud2VkID0gXFx1MDAyNm1kZXYtXFx1MDAzZW1taW8ud2VkO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTY5LVxcdFxcdE1UX1dFRF9SUk9fUV9NU0RVX1BHKDApIHwgTVRfUUZMQUdfV0VEX1JST19FTjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1NzA6XFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcXHUwMDI2bWRldi1cXHUwMDNlbW1pby53ZWQpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NTcxOlxcdCAgICBtdGtfd2VkX2dldF9yeF9jYXBhKFxcdTAwMjZtZGV2LVxcdTAwM2VtbWlvLndlZCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTcyLVxcdFxcdG1kZXYtXFx1MDAzZXFfcnhbTVRfUlhRX01TRFVfUEFHRV9CQU5EMF0ud2VkID0gXFx1MDAyNm1kZXYtXFx1MDAzZW1taW8ud2VkO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTg2LVxcdFxcdFxcdE1UX1dFRF9SUk9fUV9NU0RVX1BHKDEpIHwgTVRfUUZMQUdfV0VEX1JST19FTjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1ODc6XFx0XFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcXHUwMDI2bWRldi1cXHUwMDNlbW1pby53ZWQpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NTg4OlxcdFxcdCAgICBtdGtfd2VkX2dldF9yeF9jYXBhKFxcdTAwMjZtZGV2LVxcdTAwM2VtbWlvLndlZCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTg5LVxcdFxcdFxcdG1kZXYtXFx1MDAzZXFfcnhbTVRfUlhRX01TRFVfUEFHRV9CQU5EMV0ud2VkID0gXFx1MDAyNm1kZXYtXFx1MDAzZW1taW8ud2VkO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjA0LVxcdFxcdFxcdE1UX1dFRF9SUk9fUV9NU0RVX1BHKDIpIHwgTVRfUUZMQUdfV0VEX1JST19FTjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2MDU6XFx0XFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcXHUwMDI2bWRldi1cXHUwMDNlbW1pby53ZWQpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjA2OlxcdFxcdCAgICBtdGtfd2VkX2dldF9yeF9jYXBhKFxcdTAwMjZtZGV2LVxcdTAwM2VtbWlvLndlZCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjA3LVxcdFxcdFxcdG1kZXYtXFx1MDAzZXFfcnhbTVRfUlhRX01TRFVfUEFHRV9CQU5EMl0ud2VkID0gXFx1MDAyNm1kZXYtXFx1MDAzZW1taW8ud2VkO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM9NjIyPXZvaWQgbXQ3OTk2X2RtYV9ycm9fc3RhcnQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYyNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2MjY6XFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2Lm1taW8ud2VkKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYyNy1cXHRcXHRpcnFfbWFzayA9IGRldi1cXHUwMDNlbXQ3Ni5tbWlvLmlycW1hc2sgfFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjMwLVxcdFxcdG10NzZfd3IoZGV2LCBNVF9JTlRfTUFTS19DU1IsIGlycV9tYXNrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2MzE6XFx0XFx0bXRrX3dlZF9kZXZpY2Vfc3RhcnRfaHdfcnJvKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQsIGlycV9tYXNrLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYzMi1cXHRcXHRcXHRcXHRcXHQgICAgZmFsc2UpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM9NjY0PWludCBtdDc5OTZfZG1hX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02NjUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjY2NjpcXHRzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZCA9IFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjY3OlxcdHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkX2hpZjIgPSBcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2Lm1taW8ud2VkX2hpZjI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjY4LVxcdHUzMiByeF9iYXNlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzM5LVxcdC8qIHJ4IGRhdGEgcXVldWUgZm9yIGJhbmQwIGFuZCBtdDc5OTYgYmFuZDEgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3NDA6XFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWQpIFxcdTAwMjZcXHUwMDI2IG10a193ZWRfZ2V0X3J4X2NhcGEod2VkKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc0MS1cXHRcXHRkZXYtXFx1MDAzZW10NzYucV9yeFtNVF9SWFFfTUFJTl0uZmxhZ3MgPSBNVF9XRURfUV9SWCgwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc1My1cXHQvKiB0eCBmcmVlIG5vdGlmeSBldmVudCBmcm9tIFdBIGZvciBiYW5kMCAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjc1NDpcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZCkgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03NTUtXFx0ICAgICgoaXNfbXQ3OTk2KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpIFxcdTAwMjZcXHUwMDI2ICFtdDc5OTZfaGFzX2h3cnJvKGRldikpIHx8XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03NzItXFx0fSBlbHNlIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3NzM6XFx0XFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWQpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzc0LVxcdFxcdFxcdGRldi1cXHUwMDNlbXQ3Ni5xX3J4W01UX1JYUV9UWEZSRUVfQkFORDBdLmZsYWdzID0gTVRfV0VEX1FfVFhGUkVFO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzg2LVxcdGlmICghbXQ3OTk2X2hhc193YShkZXYpIFxcdTAwMjZcXHUwMDI2IGRldi1cXHUwMDNlaGlmMikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjc4NzpcXHRcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03ODgtXFx0XFx0XFx0ZGV2LVxcdTAwM2VtdDc2LnFfcnhbTVRfUlhRX1RYRlJFRV9CQU5EMV0uZmxhZ3MgPSBNVF9XRURfUV9UWEZSRUU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MTMtXFx0XFx0ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODE0OlxcdFxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUod2VkX2hpZjIpIFxcdTAwMjZcXHUwMDI2ICFtdDc5OTZfaGFzX2h3cnJvKGRldikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MTUtXFx0XFx0XFx0ZGV2LVxcdTAwM2VtdDc2LnFfcnhbTVRfUlhRX0JBTkQyX1dBXS5mbGFncyA9IE1UX1dFRF9RX1RYRlJFRTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTgyOC1cXHRcXHRyeF9iYXNlID0gTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfQkFORDEpICsgaGlmMV9vZnM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODI5OlxcdFxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUod2VkKSBcXHUwMDI2XFx1MDAyNiBtdGtfd2VkX2dldF9yeF9jYXBhKHdlZCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MzAtXFx0XFx0XFx0ZGV2LVxcdTAwM2VtdDc2LnFfcnhbTVRfUlhRX0JBTkQxXS5mbGFncyA9IE1UX1dFRF9RX1JYKDEpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODQ0LVxcdFxcdFxcdHJ4X2Jhc2UgPSBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9CQU5EMV9XQSkgKyBoaWYxX29mcztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4NDU6XFx0XFx0XFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWRfaGlmMikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04NDYtXFx0XFx0XFx0XFx0ZGV2LVxcdTAwM2VtdDc2LnFfcnhbTVRfUlhRX0JBTkQxX1dBXS5mbGFncyA9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04NjQtXFx0XFx0XFx0TVRfV0VEX1JST19RX0RBVEEoMCkgfCBNVF9RRkxBR19XRURfUlJPX0VOO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjg2NTpcXHRcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZCkgXFx1MDAyNlxcdTAwMjYgbXRrX3dlZF9nZXRfcnhfY2FwYSh3ZWQpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTg2Ni1cXHRcXHRcXHRkZXYtXFx1MDAzZW10NzYucV9yeFtNVF9SWFFfUlJPX0JBTkQwXS53ZWQgPSB3ZWQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04NzctXFx0XFx0XFx0XFx0TVRfV0VEX1JST19RX0RBVEEoMSkgfCBNVF9RRkxBR19XRURfUlJPX0VOO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjg3ODpcXHRcXHRcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZCkgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4Nzk6XFx0XFx0XFx0ICAgIG10a193ZWRfZ2V0X3J4X2NhcGEod2VkKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04ODAtXFx0XFx0XFx0XFx0ZGV2LVxcdTAwM2VtdDc2LnFfcnhbTVRfUlhRX1JST19CQU5EMV0ud2VkID0gd2VkO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODg5LVxcdFxcdH0gZWxzZSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODkwOlxcdFxcdFxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUod2VkKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTg5MS1cXHRcXHRcXHRcXHQvKiB0eCBmcmVlIG5vdGlmeSBldmVudCBmcm9tIFdBIGZvciBiYW5kMCAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTEzLVxcdFxcdFxcdFxcdE1UX1dFRF9SUk9fUV9EQVRBKDEpIHwgTVRfUUZMQUdfV0VEX1JST19FTjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo5MTQ6XFx0XFx0XFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWQpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6OTE1OlxcdFxcdFxcdCAgICBtdGtfd2VkX2dldF9yeF9jYXBhKHdlZCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTE2LVxcdFxcdFxcdFxcdGRldi1cXHUwMDNlbXQ3Ni5xX3J4W01UX1JYUV9SUk9fQkFORDJdLndlZCA9IHdlZDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkyOC1cXHRcXHRcXHQvKiB0eCBmcmVlIG5vdGlmeSBldmVudCBmcm9tIE1BQyBmb3IgYmFuZDIgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo5Mjk6XFx0XFx0XFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWRfaGlmMikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05MzAtXFx0XFx0XFx0XFx0ZGV2LVxcdTAwM2VtdDc2LnFfcnhbTVRfUlhRX1RYRlJFRV9CQU5EMl0uZmxhZ3MgPSBNVF9XRURfUV9UWEZSRUU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz05NjA9dm9pZCBtdDc5OTZfZG1hX3Jlc2V0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGJvb2wgZm9yY2UpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05OTQtXFx0aWYgKG10Nzk5Nl9oYXNfaHdycm8oZGV2KSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjk5NTpcXHQgICAgIW10a193ZWRfZGV2aWNlX2FjdGl2ZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2Lm1taW8ud2VkKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05OTYtXFx0XFx0bXQ3OTk2X3Jyb19tc2R1X3BhZ2VfbWFwX2ZyZWUoZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwMDEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTAwMjpcXHRpZiAoZGV2LVxcdTAwM2VoaWYyIFxcdTAwMjZcXHUwMDI2IG10a193ZWRfZGV2aWNlX2FjdGl2ZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2Lm1taW8ud2VkX2hpZjIpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEwMDM6XFx0XFx0bXRrX3dlZF9kZXZpY2VfZG1hX3Jlc2V0KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWRfaGlmMik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTAwNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMDA1OlxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5tbWlvLndlZCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTAwNjpcXHRcXHRtdGtfd2VkX2RldmljZV9kbWFfcmVzZXQoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5tbWlvLndlZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTAwNy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwMjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTAyNzpcXHRcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTAyOC1cXHRcXHRcXHRpZiAobXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHEpIHx8XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDQwLVxcdG10NzZfZm9yX2VhY2hfcV9yeChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LCBpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTA0MTpcXHRcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQpIFxcdTAwMjZcXHUwMDI2IGZvcmNlIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTA0Mi1cXHRcXHQgICAgKG10NzZfcXVldWVfaXNfd2VkX3Jyb19pbmQoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5xX3J4W2ldKSB8fFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTQ3Nz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo0Nzg6bXQ3OTk2X2luaXRfd2lwaHkoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy00Nzkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTQ5Mi1cXHRody1cXHUwMDNlbmV0ZGV2X2ZlYXR1cmVzID0gTkVUSUZfRl9SWENTVU07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjQ5MzpcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZCkgfHwgbXQ3Nl9ucHVfZGV2aWNlX2FjdGl2ZShtZGV2KSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDk0LVxcdFxcdGh3LVxcdTAwM2VuZXRkZXZfZmVhdHVyZXMgfD0gTkVUSUZfRl9IV19UQztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz02ODI9c3RhdGljIGludCBtdDc5OTZfcmVnaXN0ZXJfcGh5KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGVudW0gbXQ3Nl9iYW5kX2lkIGJhbmQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNjg3LVxcdGludCByZXQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjY4ODpcXHRzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZCA9IFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTY4OS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy03NTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjc2MDpcXHRpZiAod2VkID09IFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWRfaGlmMiBcXHUwMDI2XFx1MDAyNiBtdGtfd2VkX2RldmljZV9hY3RpdmUod2VkKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy03NjEtXFx0XFx0bXQ3Nl93cihkZXYsIE1UX0lOVF9QQ0lFMV9NQVNLX0NTUiwgTVRfSU5UX1RYX1JYX0RPTkVfRVhUKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NzYyOlxcdFxcdG10a193ZWRfZGV2aWNlX3N0YXJ0KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWRfaGlmMixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNzYzLVxcdFxcdFxcdFxcdCAgICAgTVRfSU5UX1RYX1JYX0RPTkVfRVhUKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz04MjU9c3RhdGljIHZvaWQgbXQ3OTk2X3Jyb19od19pbml0X3YzKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTgyNi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjgyNzpcXHRzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZCA9IFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTgyOC1cXHR1MzIgc2Vzc2lvbl9pZDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy04MzMtI2lmZGVmIENPTkZJR19ORVRfTUVESUFURUtfU09DX1dFRFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo4MzQ6XFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWQpIFxcdTAwMjZcXHUwMDI2IG10a193ZWRfZ2V0X3J4X2NhcGEod2VkKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy04MzUtXFx0XFx0d2VkLVxcdTAwM2V3bGFuLmluZF9jbWQud2luX3NpemUgPVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg0OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6ODQ5OlxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUod2VkKSBcXHUwMDI2XFx1MDAyNiBtdGtfd2VkX2dldF9yeF9jYXBhKHdlZCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtODUwLVxcdFxcdG10NzZfd3IoZGV2LCBNVF9SUk9fSU5EX0NNRF9TSUdOQVRVUkVfQkFTRTAsIDB4MTUwMTBlMDApO1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwNjo1NjoyNi44Njc4NDI1OTFaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODgzNjQwMzA1NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBXb3J0aEZ1enppbmcgUGF0Y2ggZm9yIG10a193ZWQqKlxuXG5Pa2F5LCBsZXQgbWUgYnJlYWsgdGhpcyBkb3duLiBUaGlzIGBtdGtfd2VkYCBkcml2ZXIgaXMgcGFydCBvZiBNZWRpYXRlaydzIFdFRCBvZmZsb2FkIGVuZ2luZS4gSSBrbm93IGl0J3MgdXNlZCB3aXRoIHRoZWlyIFdpRmkgZHJpdmVycywgc3BlY2lmaWNhbGx5IHRoaW5ncyBsaWtlIGBtdDc5MTVgIGFuZCBgbXQ3OTk2YCwgd2hpY2ggYXJlIFBDSWUgZGV2aWNlcy4gSSBqdXN0IGNvbmZpcm1lZCBgbXQ3OTE1YCBpcyBpbmRlZWQgYSBQQ0kgZHJpdmVyLCBzZWVpbmcgdGhlIGBtdDc5MTVfcGNpX3Byb2JlYCBmdW5jdGlvbiBpbiBpdHMgUENJLXNwZWNpZmljIGNvZGUuXG5cbk5vdywgdGhlIGNydWNpYWwgcXVlc3Rpb246IGNhbiBzdGFuZGFyZCBRRU1VIGVtdWxhdGUgdGhlIE1UNzkxNT8gTm8sIGl0IGNhbid0LiBUaGlzIGlzIHdoZXJlIHRoYXQgXCJXb3J0aEZ1enppbmc9ZmFsc2VcIiBmbGFnIGNvbWVzIGludG8gcGxheS4gVGhlIHByb21wdCBtZW50aW9ucyB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkcml2ZXJzIHRoYXQgcmVxdWlyZSByZWFsIGhhcmR3YXJlLCBhbmQgKmJpbmdvKiwgYG10NzkxNWAgaXMgcHJlY2lzZWx5IHRoYXQ6IGEgTWVkaWF0ZWsgV2lGaSBQQ0llIGRyaXZlci4gSXQncyBub3QgbGlrZSBgbWFjODAyMTFfaHdzaW1gLCB3aGljaCBpcyBkZXNpZ25lZCBmb3IgZW11bGF0aW9uLiBgbXQ3OTE1YCBpbnRlcmFjdHMgZGlyZWN0bHkgd2l0aCByZWFsIGhhcmR3YXJlLlxuXG5UaGUgbmV4dCBxdWVzdGlvbjogY2FuIHN5emthbGxlciBmdXp6IGl0PyBTeXprYWxsZXIgaGFzIGl0cyBgc3l6XzgwMjExXy4uLmAgc3lzY2FsbHMsIGJ1dCB0aG9zZSBtb3N0bHkgZGVhbCB3aXRoIHRoZSBnZW5lcmljIG1hYzgwMjExIHN0YWNrLiBUaGV5IGRvbid0IHJlYWNoIGRlZXBseSBpbnRvIHRoZSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIgdW5sZXNzLCBhcyBJIG1lbnRpb25lZCwgaXQgaGFzIGEgc2ltdWxhdGlvbiBjb21wb25lbnQuIEhvd2V2ZXIsIFN5emthbGxlciAqZG9lcyogaGF2ZSBQQ0kgZnV6emluZyBjYXBhYmlsaXRpZXMsIGFuZCB0aGF0J3MgaW50ZXJlc3RpbmcuIEl0IGNhbiBpbmplY3QgUENJIGRldmljZXMsIHNvIGl0IGNvdWxkIHBvdGVudGlhbGx5IHJlYWNoIHRoZSBgbXQ3OTE1YCBkcml2ZXIuIEJ1dCBkb2VzIGl0IGdvIGRlZXAgZW5vdWdoLCBzcGVjaWZpY2FsbHkgaW50byB0aGUgZHJpdmVyJ3MgcmluZyBzZXR1cCwgd2hpY2ggaXMgd2hhdCB0aGUgcGF0Y2ggbW9kaWZpZXM/XG5cblRoZSBwYXRjaCB0YXJnZXRzIGBtdGtfd2VkX3dkbWFfdHhfcmluZ19zZXR1cGAgYW5kIGBtdGtfd2VkX3N0YXJ0YCB3aXRoaW4gYG10a193ZWQuY2AuIFRoaXMgaXMgd2hlcmUgdGhlIGNvcmUgb2YgbXkgYXNzZXNzbWVudCBsaWVzLiBTaW5jZSB0aGlzIGRyaXZlciBpcyBjb21waWxlZCB1bmRlciBgQ09ORklHX05FVF9NRURJQVRFS19TT0NfV0VEYCwgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGhhcyB0byBiZSBjb25zaWRlcmVkLiBTeXprYWxsZXIncyBQQ0kgZnV6emluZyAqbWlnaHQqIGJlIGFibGUgdG8gcmVhY2ggaXQsIGlmIGl0J3MgY29uZmlndXJlZCBhbmQgdGhlIGVtdWxhdGlvbiBvZiBQQ0kgaXMgZ29vZCBlbm91Z2guIEhvd2V2ZXIsIEkgaGF2ZSBkb3VidHMgdGhhdCwgZXZlbiB3aXRoIHRoZSBQQ0kgZW11bGF0aW9uIGFuZCBmdXp6aW5nIGNhcGFiaWxpdGllcywgc3l6a2FsbGVyIHdpbGwgYmUgYWJsZSB0byB0YXJnZXQgdGhpcyBkcml2ZXIsIGFzIGl0IGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSSBkZXZpY2UsIGFuZCBJIHN1c3BlY3QgaXQgd2lsbCBmYWlsLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjYyOSwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU4NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwNjo1NjozNS43MDQyNDgyMThaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxNjgwMzM3NTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE5FVF9NRURJQVRFS19TT0NfV0VEXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9LY29uZmlnPTg9aWYgTkVUX1ZFTkRPUl9NRURJQVRFS1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL0tjb25maWctOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9LY29uZmlnOjEwOmNvbmZpZyBORVRfTUVESUFURUtfU09DX1dFRFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL0tjb25maWctMTEtXFx0ZGVwZW5kcyBvbiBBUkNIX01FRElBVEVLIHx8IENPTVBJTEVfVEVTVFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwNjo1NjozNy44NzIyODgxMTdaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzY0MjMwNjI1OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHN1bW1hcnksIGFzIHRoZSBleHBlcnQ6XG5cbioqRGVsdmluZyBpbnRvIHRoZSBNZWRpYXRlayBFdGhlcm5ldCBDb25maWd1cmF0aW9uKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbnRvIHRoZSBjb3JlIGNvbmZpZ3VyYXRpb24gZm9yIE1lZGlhdGVrIEV0aGVybmV0IGRyaXZlcnMuIEknbSBnb2luZyB0byBwdWxsIHVwIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9LY29uZmlnYCBhbmQgemVybyBpbiBhcm91bmQgbGluZSAxMC4gSSBzdXNwZWN0IHRoaXMgd2lsbCBnaXZlIG1lIHRoZSB0b3AtbGV2ZWwgY29uZmlndXJhdGlvbiBvcHRpb25zLCB0aGUgY29yZSBkZXBlbmRlbmNpZXMsIG9yIHBlcmhhcHMgZXZlbiB0aGUgYXJjaGl0ZWN0dXJlIHNlbGVjdGlvbi4gSSdtIGxvb2tpbmcgZm9yIHRoZSBmb3VuZGF0aW9uYWwgYnVpbGRpbmcgYmxvY2tzIC0gd2hhdCBmZWF0dXJlcyBhcmUgZW5hYmxlZCBieSBkZWZhdWx0LCB3aGF0IGZhbWlsaWVzIGFyZSBzdXBwb3J0ZWQsIGFuZCB3aGljaCBvbmVzIGFyZSBsaWtlbHkgdG8gbmVlZCBzcGVjaWFsIGF0dGVudGlvbi4gQmFzZWQgb24gcGFzdCBleHBlcmllbmNlLCB0aGlzIEtjb25maWcgZmlsZSBzaG91bGQgaWxsdW1pbmF0ZSB0aGUgc3RydWN0dXJlIG9mIHRoZSBNZWRpYXRlayBldGhlcm5ldCBkcml2ZXIgZWNvc3lzdGVtLCB3aGljaCBoZWxwcyBtZSBpbW1lZGlhdGVseSBnYWluIGNvbnRleHQgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIGRyaXZlciBmZWF0dXJlcy4gTGV0J3Mgc2VlIHdoYXQncyB0aGVyZS4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNzg3NSwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDA2OjU2OjQxLjUxNDU5NzU4NloiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1ODc3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDMwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHRjb25maWcgTkVUX1ZFTkRPUl9NRURJQVRFS1xcbiAgIDM6XFx0XFx0Ym9vbCBcXFwiTWVkaWFUZWsgZGV2aWNlc1xcXCJcXG4gICA0OlxcdFxcdGRlcGVuZHMgb24gQVJDSF9NRURJQVRFSyB8fCBBUkNIX0FJUk9IQSB8fCBTT0NfTVQ3NjIxIHx8IFNPQ19NVDc2MjAgfHwgQ09NUElMRV9URVNUXFxuICAgNTpcXHRcXHRoZWxwXFxuICAgNjpcXHRcXHQgIElmIHlvdSBoYXZlIGEgTWVkaWF0ZWsgU29DIHdpdGggZXRoZXJuZXQsIHNheSBZLlxcbiAgIDc6XFx0XFxuICAgODpcXHRpZiBORVRfVkVORE9SX01FRElBVEVLXFxuICAgOTpcXHRcXG4gIDEwOlxcdGNvbmZpZyBORVRfTUVESUFURUtfU09DX1dFRFxcbiAgMTE6XFx0XFx0ZGVwZW5kcyBvbiBBUkNIX01FRElBVEVLIHx8IENPTVBJTEVfVEVTVFxcbiAgMTI6XFx0XFx0ZGVmX2Jvb2wgTkVUX01FRElBVEVLX1NPQyAhPSBuXFxuICAxMzpcXHRcXG4gIDE0OlxcdGNvbmZpZyBORVRfTUVESUFURUtfU09DXFxuICAxNTpcXHRcXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgU29DIEdpZ2FiaXQgRXRoZXJuZXQgc3VwcG9ydFxcXCJcXG4gIDE2OlxcdFxcdGRlcGVuZHMgb24gTkVUX0RTQSB8fCAhTkVUX0RTQVxcbiAgMTc6XFx0XFx0c2VsZWN0IFBJTkNUUkxcXG4gIDE4OlxcdFxcdHNlbGVjdCBQSFlMSU5LXFxuICAxOTpcXHRcXHRzZWxlY3QgRElNTElCXFxuICAyMDpcXHRcXHRzZWxlY3QgR0VORVJJQ19BTExPQ0FUT1JcXG4gIDIxOlxcdFxcdHNlbGVjdCBQQUdFX1BPT0xcXG4gIDIyOlxcdFxcdHNlbGVjdCBQQUdFX1BPT0xfU1RBVFNcXG4gIDIzOlxcdFxcdHNlbGVjdCBQQ1NfTVRLX0xZTlhJXFxuICAyNDpcXHRcXHRzZWxlY3QgUkVHTUFQX01NSU9cXG4gIDI1OlxcdFxcdGhlbHBcXG4gIDI2OlxcdFxcdCAgVGhpcyBkcml2ZXIgc3VwcG9ydHMgdGhlIGdpZ2FiaXQgZXRoZXJuZXQgTUFDcyBpbiB0aGVcXG4gIDI3OlxcdFxcdCAgTWVkaWFUZWsgU29DIGZhbWlseS5cXG4gIDI4OlxcdFxcbiAgMjk6XFx0Y29uZmlnIE5FVF9NRURJQVRFS19TVEFSX0VNQUNcXG4gIDMwOlxcdFxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBTVEFSIEV0aGVybmV0IE1BQyBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwNjo1Njo0MS41MTQ2NTc0NjZaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODk3NjcwOTM3OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipXb3J0aEZ1enppbmc9ZmFsc2U6IE1lZGlhVGVrIFNvQyBFdGhlcm5ldC9XaUZpIE9mZmxvYWQgRHJpdmVyKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBgTkVUX01FRElBVEVLX1NPQ19XRURgIGlzIGRlZmluZWQgYXMgYSBgZGVmX2Jvb2xgLCBtZWFuaW5nIGl0J3MgY29uZGl0aW9uYWwuIEl0IGJvaWxzIGRvd24gdG8gd2hldGhlciBgTkVUX01FRElBVEVLX1NPQ2AgaXMgKm5vdCogZXF1YWwgdG8gJ24nLiBUaGlzIHBvaW50cyB0byBhIHBsYXRmb3JtIGRyaXZlciwgc3BlY2lmaWNhbGx5IGZvciBNZWRpYVRlayBTb0NzIGFuZCBHaWdhYml0IEV0aGVybmV0IHN1cHBvcnQuIFBsYXRmb3JtIGRyaXZlcnMgdXN1YWxseSBhcmVuJ3QgaWRlYWwgZm9yIHN0YW5kYXJkIFFFTVUgZnV6emluZyB1bmxlc3MgdGhlcmUncyBhIHNwZWNpZmljIG1hY2hpbmUgdHlwZSBkZWZpbmVkIGZvciB0aGVtLlxuXG5UaGUgY29kZSBpbiBxdWVzdGlvbiBpcyB3aXRoaW4gYG10a193ZWQuY2AsIHRoZSBXaXJlbGVzcyBFdGhlcm5ldCBEaXNwYXRjaGVyLiBUaGUgY29tbWl0IG1lc3NhZ2UgY2xhcmlmaWVzIHRoYXQgaXQncyBkZWFsaW5nIHdpdGggYSBzcGVjaWZpYyBoYXJkd2FyZSBxdWlyayBpbiB0aGUgTVQ3OTg2IChGaWxvZ2ljIDgzMCkgU29DOyBpdCdzIGEgaGFyZHdhcmUgb2ZmbG9hZCBlbmdpbmUuIFRoZSBmaXggY29uY2VybnMgYWxsb2NhdGlvbiBvZiByZWNlaXZlIGFuZCB0cmFuc21pdCByaW5ncyBhbmQgV0RNQSBjaGFubmVscywgc3BlY2lmaWNhbGx5IG5lZWRpbmcgdG8gYWxsb2NhdGUgYW4gZXh0cmEgYHR4X3dkbWFgIGNoYW5uZWwgZm9yIFdFRCB0byBmdW5jdGlvbiBjb3JyZWN0bHkuIFRoaXMgaXMgdmVyeSBoYXJkd2FyZS1zcGVjaWZpYy5cblxuTXkgaW5pdGlhbCB0aG91Z2h0IHdhcyBtYXliZSBzeXprYWxsZXIgY291bGQgaW5qZWN0IGEgZGV2aWNlIHRyZWUgbm9kZSBmb3IgcGxhdGZvcm0gZGV2aWNlcy4gSG93ZXZlciwgdGhhdCdzIGxpbWl0ZWQsIGFuZCB3aXRob3V0IHRoZSBhY3R1YWwgaGFyZHdhcmUgb3IgYSByb2J1c3QgbW9jaywgaXQncyB1bmxpa2VseSB0byBnZXQgYW55d2hlcmUuXG5cbkhvbGQgb24sIHRoZSBwcm9tcHQgcHJvdmlkZXMgdGhlIGtleTogXCJSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zIGNvZGUgaW4gdmVuZG9yLXNwZWNpZmljLi4uIGRyaXZlcnMgdGhhdCByZXF1aXJlIHBoeXNpY2FsLi4uIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlwiIFRoaXMgZGlyZWN0bHkgYXBwbGllcy4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBTb0MgRXRoZXJuZXQvV2lGaSBvZmZsb2FkIGRyaXZlciEgSXQgKnJlcXVpcmVzKiBNZWRpYVRlayBTb0MgaGFyZHdhcmUuXG5cbkp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLCBsZXQncyBzZWUgaWYgUUVNVSBldmVuICpwcmV0ZW5kcyogdG8gaGF2ZSBNVDc5ODYgc3VwcG9ydC4gSXQgZG9lcyBlbXVsYXRlIHNvbWUgTWVkaWFUZWsgYm9hcmRzLCBidXQgYSBxdWljayBjaGVjayByZXZlYWxzIHRoYXQgc3RhbmRhcmQgUUVNVSBkb2VzIG5vdCBzdXBwb3J0IE1UNzk4NiBvciBhbnkgc2ltaWxhciBib2FyZC4gRXZlbiBpZiBpdCAqZGlkKiwgdGhlIGBtdGtfd2VkYCBpcyBhIHNwZWNpYWxpemVkIGhhcmR3YXJlIG9mZmxvYWQgZW5naW5lOyBpdCdzIGV4dHJlbWVseSB1bmxpa2VseSB0byBiZSBlbXVsYXRlZCBhY2N1cmF0ZWx5LlxuXG5UaGVyZWZvcmUsIGJlY2F1c2UgdGhpcyBjaGFuZ2UgdGFyZ2V0cyBhIGhhcmR3YXJlLXNwZWNpZmljIG9mZmxvYWQgZHJpdmVyIGZvciBNZWRpYVRlayBTb0NzIG5vdCBlbXVsYXRlZCBpbiB0aGUgc3RhbmRhcmQgUUVNVSBmdXp6aW5nIGVudmlyb25tZW50LCBJJ20gcmV0dXJuaW5nIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGUgcGF0Y2ggbW9kaWZpZXMgTWVkaWFUZWsncyBXRUQgZHJpdmVyIHdoaWNoIHJlbGllcyBvbiB0aGUgcGh5c2ljYWwgaGFyZHdhcmUgYW5kIGlzbid0IGFjY2Vzc2libGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozODUyMywiT3V0cHV0VG9rZW5zIjo5NiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU5NCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDA2OjU2OjUwLjQ5MTM3MTMyNVoiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0NzYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYVRlayBXaXJlbGVzcyBFdGhlcm5ldCBEaXNwYXRjaGVyIChXRUQpIGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBvZmZsb2FkIGVuZ2luZSBmb3IgTWVkaWFUZWsgU29DcyAoZS5nLiwgTVQ3OTg2KS4gVGhpcyBjb2RlIHJlcXVpcmVzIHBoeXNpY2FsIE1lZGlhVGVrIGhhcmR3YXJlIGFuZCBpcyBub3QgcmVhY2hhYmxlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgdXNlZCBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYVRlayBXaXJlbGVzcyBFdGhlcm5ldCBEaXNwYXRjaGVyIChXRUQpIGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBvZmZsb2FkIGVuZ2luZSBmb3IgTWVkaWFUZWsgU29DcyAoZS5nLiwgTVQ3OTg2KS4gVGhpcyBjb2RlIHJlcXVpcmVzIHBoeXNpY2FsIE1lZGlhVGVrIGhhcmR3YXJlIGFuZCBpcyBub3QgcmVhY2hhYmxlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgdXNlZCBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflows7mhj[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-26 06:16:33 +0000 UTC FinishedAt: 2026-07-26 06:56:52 +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+CgkJCTx0ZD4yMDI2LzA3LzI2IDA2OjU1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYVRlayBXaXJlbGVzcyBFdGhlcm5ldCBEaXNwYXRjaGVyIChXRUQpIGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBvZmZsb2FkIGVuZ2luZSBmb3IgTWVkaWFUZWsgU29DcyAoZS5nLiwgTVQ3OTg2KS4gVGhpcyBjb2RlIHJlcXVpcmVzIHBoeXNpY2FsIE1lZGlhVGVrIGhhcmR3YXJlIGFuZCBpcyBub3QgcmVhY2hhYmxlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgdXNlZCBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMDY6NTU8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA2NWY0MDVkY2M5YjhmODAyNjdhODdlYmEzZTE2NGJhY2YwNTVjZGNhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBKdWwgMjYgMDY6NTU6NTUgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jXG5pbmRleCAxMGQ5YmVhYWUzNzIxNS4uYjQ4YWJhZDk5NWQ3YWMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuY1xuQEAgLTE5MzgsNyAmIzQzOzE5MzgsNyBAQCBtdGtfd2VkX3dkbWFfdHhfcmluZ19zZXR1cChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgaW50IGlkeCwgaW50IHNpemUsXG4gXHR3ZG1hX3czMihkZXYsIE1US19XRE1BX1JJTkdfVFgoaWR4KSAmIzQzOyBNVEtfV0VEX1JJTkdfT0ZTX0NQVV9JRFgsIDApO1xuIFx0d2RtYV93MzIoZGV2LCBNVEtfV0RNQV9SSU5HX1RYKGlkeCkgJiM0MzsgTVRLX1dFRF9SSU5HX09GU19ETUFfSURYLCAwKTtcbiBcbi1cdGlmIChyZXNldClcbiYjNDM7XHRpZiAoIW10a193ZWRfaXNfdjNfb3JfZ3JlYXRlcihkZXYtXHUwMDNlaHcpIFx1MDAyNlx1MDAyNiByZXNldClcbiBcdFx0bXRrX3dlZF9yaW5nX3Jlc2V0KHdkbWEsIE1US19XRURfV0RNQV9SSU5HX1NJWkUsIHRydWUpO1xuIFxuIFx0aWYgKCFpZHgpICB7XG5AQCAtMjMzNCw2ICYjNDM7MjMzNCwxMyBAQCBtdGtfd2VkX3N0YXJ0KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2LCB1MzIgaXJxX21hc2spXG4gXHRcdGlmICghZGV2LVx1MDAzZXJ4X3dkbWFbaV0uZGVzYylcbiBcdFx0XHRtdGtfd2VkX3dkbWFfcnhfcmluZ19zZXR1cChkZXYsIGksIDE2LCBmYWxzZSk7XG4gXG4mIzQzO1x0LypcbiYjNDM7XHQgKiBub24tREJEQyBNVDc5ODYgYWxsb2NhdGVzIG9ubHkgcnhfcmluZ1sxXSBhbmQgdHhfd2RtYVsxXSBkdXJpbmcgc2V0dXBcbiYjNDM7XHQgKiBidXQgdHhfd2RtYVswXSBpcyBhbHNvIG5lZWRlZCBmb3IgV0VEIHRvIGZ1bmN0aW9uLlxuJiM0MztcdCAqL1xuJiM0MztcdGlmIChtdGtfd2VkX2lzX3YyKGRldi1cdTAwM2VodykgXHUwMDI2XHUwMDI2ICFkZXYtXHUwMDNlcnhfcmluZ1swXS5kZXNjKVxuJiM0MztcdFx0bXRrX3dlZF93ZG1hX3R4X3Jpbmdfc2V0dXAoZGV2LCAwLCBNVEtfV0VEX1dETUFfUklOR19TSVpFLCAhIWRldi1cdTAwM2V0eF93ZG1hWzBdLmRlc2MpO1xuJiM0MztcbiBcdGlmIChkZXYtXHUwMDNld2xhbi5od19ycm8pIHtcbiBcdFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgTVRLX1dFRF9SWF9QQUdFX1FVRVVFUzsgaSYjNDM7JiM0MzspIHtcbiBcdFx0XHR1MzIgYWRkciA9IE1US19XRURfUlJPX01TRFVfUEdfQ1RSTDAoaSkgJiM0MztcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAwNjo1NTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIFdpcmVsZXNzIEV0aGVybmV0IERpc3BhdGNoZXIgKFdFRCkgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIG9mZmxvYWQgZW5naW5lIGZvciBNZWRpYVRlayBTb0NzIChlLmcuLCBNVDc5ODYpLiBUaGlzIGNvZGUgcmVxdWlyZXMgcGh5c2ljYWwgTWVkaWFUZWsgaGFyZHdhcmUgYW5kIGlzIG5vdCByZWFjaGFibGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSB1c2VkIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDY1ZjQwNWRjYzliOGY4MDI2N2E4N2ViYTNlMTY0YmFjZjA1NWNkY2EKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU3VuIEp1bCAyNiAwNjo1NTo1NSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYwppbmRleCAxMGQ5YmVhYWUzNzIxNS4uYjQ4YWJhZDk5NWQ3YWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMKQEAgLTE5MzgsNyAmIzQzOzE5MzgsNyBAQCBtdGtfd2VkX3dkbWFfdHhfcmluZ19zZXR1cChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgaW50IGlkeCwgaW50IHNpemUsCiAJd2RtYV93MzIoZGV2LCBNVEtfV0RNQV9SSU5HX1RYKGlkeCkgJiM0MzsgTVRLX1dFRF9SSU5HX09GU19DUFVfSURYLCAwKTsKIAl3ZG1hX3czMihkZXYsIE1US19XRE1BX1JJTkdfVFgoaWR4KSAmIzQzOyBNVEtfV0VEX1JJTkdfT0ZTX0RNQV9JRFgsIDApOwogCi0JaWYgKHJlc2V0KQomIzQzOwlpZiAoIW10a193ZWRfaXNfdjNfb3JfZ3JlYXRlcihkZXYtJmd0O2h3KSAmYW1wOyZhbXA7IHJlc2V0KQogCQltdGtfd2VkX3JpbmdfcmVzZXQod2RtYSwgTVRLX1dFRF9XRE1BX1JJTkdfU0laRSwgdHJ1ZSk7CiAKIAlpZiAoIWlkeCkgIHsKQEAgLTIzMzQsNiAmIzQzOzIzMzQsMTMgQEAgbXRrX3dlZF9zdGFydChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgdTMyIGlycV9tYXNrKQogCQlpZiAoIWRldi0mZ3Q7cnhfd2RtYVtpXS5kZXNjKQogCQkJbXRrX3dlZF93ZG1hX3J4X3Jpbmdfc2V0dXAoZGV2LCBpLCAxNiwgZmFsc2UpOwogCiYjNDM7CS8qCiYjNDM7CSAqIG5vbi1EQkRDIE1UNzk4NiBhbGxvY2F0ZXMgb25seSByeF9yaW5nWzFdIGFuZCB0eF93ZG1hWzFdIGR1cmluZyBzZXR1cAomIzQzOwkgKiBidXQgdHhfd2RtYVswXSBpcyBhbHNvIG5lZWRlZCBmb3IgV0VEIHRvIGZ1bmN0aW9uLgomIzQzOwkgKi8KJiM0MzsJaWYgKG10a193ZWRfaXNfdjIoZGV2LSZndDtodykgJmFtcDsmYW1wOyAhZGV2LSZndDtyeF9yaW5nWzBdLmRlc2MpCiYjNDM7CQltdGtfd2VkX3dkbWFfdHhfcmluZ19zZXR1cChkZXYsIDAsIE1US19XRURfV0RNQV9SSU5HX1NJWkUsICEhZGV2LSZndDt0eF93ZG1hWzBdLmRlc2MpOwomIzQzOwogCWlmIChkZXYtJmd0O3dsYW4uaHdfcnJvKSB7CiAJCWZvciAoaSA9IDA7IGkgJmx0OyBNVEtfV0VEX1JYX1BBR0VfUVVFVUVTOyBpJiM0MzsmIzQzOykgewogCQkJdTMyIGFkZHIgPSBNVEtfV0VEX1JST19NU0RVX1BHX0NUUkwwKGkpICYjNDM7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDA2OjU1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0NTEKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAxOTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgTWVkaWF0ZWsgV0VEIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IHRvdWNoZXMgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuY2AuIFNwZWNpZmljYWxseSwgaXQgc2VlbXMgdG8gYmUgbW9kaWZ5aW5nIGBtdGtfd2VkX3dkbWFfdHhfcmluZ19zZXR1cGAgYW5kIGBtdGtfd2VkX3N0YXJ0YC4gVGhhdCB0ZWxscyBtZSB0aGlzIGlzIGEgTWVkaWF0ZWsgV0VEIChXaXJlbGVzcyBFdGhlcm5ldCBEaXNwYXRjaGVyKSBkcml2ZXIuIE15IGltbWVkaWF0ZSBjb25jZXJuLCBhcyBhbHdheXMgd2hlbiBJIHNlZSBhIGRyaXZlciBjaGFuZ2UsIGlzIGhvdyBhY2Nlc3NpYmxlIGl0IGlzIGZvciBmdXp6aW5nLiBDYW4gSSBldmVuICpyZWFjaCogdGhpcyBpbiBhIHN0YW5kYXJkIFFFTVUgc2V0dXA/IE1lZGlhdGVrIFNvQyBFdGhlcm5ldCBkcml2ZXJzIGFyZSBvZnRlbiBhIHBhaW4uIFRoZXkgdXN1YWxseSByZXF1aXJlIHNwZWNpZmljIGVtdWxhdGlvbiBvciwgYXQgYmVzdCwgYSBQQ0kgcGFzc3Rocm91Z2ggb3IgZ29vZCBlbXVsYXRpb24sIHdoaWNoIGlzbiYjMzk7dCBhbHdheXMgdGhlIGVhc2llc3QgdG8gc2V0IHVwLgoKQWxyaWdodCwgbGV0JiMzOTtzIHN0ZXAgYmFjay4gSXQmIzM5O3MgaW4gdGhlIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9gIGRpcmVjdG9yeSwgc28gdGhhdCYjMzk7cyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIEkgbmVlZCB0byBxdWlja2x5IGRldGVybWluZSBpZiBpdCYjMzk7cyBhIHBsYXRmb3JtIGRyaXZlciBvciBQQ0kuIEEgcGxhdGZvcm0gZHJpdmVyIGlzIGdlbmVyYWxseSBnb2luZyB0byBiZSBlYXNpZXIgdG8gd29yayB3aXRoLCBhdCBsZWFzdCBpbiBzb21lIGVtdWxhdGVkIGVudmlyb25tZW50cy4gTGV0JiMzOTtzIGRvIGEgcXVpY2sgYGdyZXBgIGZvciBgbXRrX3dlZGAgd2l0aGluIHRoYXQgZGlyZWN0b3J5LCBhbmQgc2VlIHdoYXQgdGhlIGRldmljZSBiaW5kaW5nIGxvb2tzIGxpa2UuIFRoYXQgd2lsbCB0ZWxsIG1lIHdoZXJlIEkgc3RhbmQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMDY6NTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXRrX3dlZCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTg3MyBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvTWFrZWZpbGU9Nz1tdGtfZXRoLXkgOj0gbXRrX2V0aF9zb2MubyBtdGtfZXRoX3BhdGgubyBtdGtfcHBlLm8gbXRrX3BwZV9kZWJ1Z2ZzLm8gbXRrX3BwZV9vZmZsb2FkLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL01ha2VmaWxlOjg6bXRrX2V0aC0kKENPTkZJR19ORVRfTUVESUFURUtfU09DX1dFRCkgJiM0Mzs9IG10a193ZWQubyBtdGtfd2VkX21jdS5vIG10a193ZWRfd28ub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvTWFrZWZpbGUtOS1pZmRlZiBDT05GSUdfREVCVUdfRlNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL01ha2VmaWxlOjEwOm10a19ldGgtJChDT05GSUdfTkVUX01FRElBVEVLX1NPQ19XRUQpICYjNDM7PSBtdGtfd2VkX2RlYnVnZnMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvTWFrZWZpbGUtMTEtZW5kaWZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL01ha2VmaWxlOjEyOm9iai0kKENPTkZJR19ORVRfTUVESUFURUtfU09DX1dFRCkgJiM0Mzs9IG10a193ZWRfb3BzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL01ha2VmaWxlLTEzLW9iai0kKENPTkZJR19ORVRfTUVESUFURUtfU1RBUl9FTUFDKSAmIzQzOz0gbXRrX3N0YXJfZW1hYy5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYy0zMi0jaW5jbHVkZSBcJiMzNDttdGtfZXRoX3NvYy5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jOjMzOiNpbmNsdWRlIFwmIzM0O210a193ZWQuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYy0zNC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jPTQ0MTY9c3RhdGljIHZvaWQgbXRrX3BlbmRpbmdfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYy00NDI2LVx0bXRrX3ByZXBhcmVfZm9yX3Jlc2V0KGV0aCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jOjQ0Mjc6XHRtdGtfd2VkX2ZlX3Jlc2V0KCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jLTQ0MjgtXHQvKiBSdW4gYWdhaW4gcmVzZXQgcHJlbGltaW5hcnkgY29uZmlndXJhdGlvbiBpbiBvcmRlciB0byBhdm9pZCBhbnlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jLTQ0NzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jOjQ0NzY6XHRtdGtfd2VkX2ZlX3Jlc2V0X2NvbXBsZXRlKCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jLTQ0NzctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYz01MDk1PXN0YXRpYyBpbnQgbXRrX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYy01MjI1LVx0XHRcdHdkbWFfcGh5ID0gcmVzID8gcmVzLVx1MDAzZXN0YXJ0ICYjNDM7IHdkbWFfYmFzZSA6IDA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jOjUyMjY6XHRcdFx0bXRrX3dlZF9hZGRfaHcobnAsIGV0aCwgZXRoLVx1MDAzZWJhc2UgJiM0Mzsgd2RtYV9iYXNlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYy01MjI3LVx0XHRcdFx0ICAgICAgIHdkbWFfcGh5LCBpKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jLTUzNjQtZXJyX3dlZF9leGl0OlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYzo1MzY1Olx0bXRrX3dlZF9leGl0KCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jLTUzNjYtZXJyX2Rlc3Ryb3lfc2dtaWk6XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYz01MzcyPXN0YXRpYyB2b2lkIG10a19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jLTUzODYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jOjUzODc6XHRtdGtfd2VkX2V4aXQoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmMtNTM4OC1cdG10a19od19kZWluaXQoZXRoKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfcHBlX29mZmxvYWQuYy0xMy0jaW5jbHVkZSBcJiMzNDttdGtfZXRoX3NvYy5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfcHBlX29mZmxvYWQuYzoxNDojaW5jbHVkZSBcJiMzNDttdGtfd2VkLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19wcGVfb2ZmbG9hZC5jLTE1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19wcGVfb2ZmbG9hZC5jPTI2Nz1tdGtfZmxvd19vZmZsb2FkX3JlcGxhY2Uoc3RydWN0IG10a19ldGggKmV0aCwgc3RydWN0IGZsb3dfY2xzX29mZmxvYWQgKmYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3BwZV9vZmZsb2FkLmMtNDg3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3BwZV9vZmZsb2FkLmM6NDg4Olx0aWYgKHdlZF9pbmRleCBcdTAwM2U9IDAgXHUwMDI2XHUwMDI2IChlcnIgPSBtdGtfd2VkX2Zsb3dfYWRkKHdlZF9pbmRleCkpIFx1MDAzYyAwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3BwZV9vZmZsb2FkLmMtNDg5LVx0XHRyZXR1cm4gZXJyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19wcGVfb2ZmbG9hZC5jLTUxNS1cdGlmICh3ZWRfaW5kZXggXHUwMDNlPSAwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3BwZV9vZmZsb2FkLmM6NTE2Olx0ICAgIG10a193ZWRfZmxvd19yZW1vdmUod2VkX2luZGV4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19wcGVfb2ZmbG9hZC5jLTUxNy1cdHJldHVybiBlcnI7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3BwZV9vZmZsb2FkLmM9NTIxPW10a19mbG93X29mZmxvYWRfZGVzdHJveShzdHJ1Y3QgbXRrX2V0aCAqZXRoLCBzdHJ1Y3QgZmxvd19jbHNfb2ZmbG9hZCAqZilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfcHBlX29mZmxvYWQuYy01MzMtXHRpZiAoZW50cnktXHUwMDNld2VkX2luZGV4IFx1MDAzZT0gMClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19wcGVfb2ZmbG9hZC5jOjUzNDpcdFx0bXRrX3dlZF9mbG93X3JlbW92ZShlbnRyeS1cdTAwM2V3ZWRfaW5kZXgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3BwZV9vZmZsb2FkLmMtNTM1LVx0a2ZyZWUoZW50cnkpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xNS0jaW5jbHVkZSBcdTAwM2NsaW51eC9kZWJ1Z2ZzLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxNjojaW5jbHVkZSBcdTAwM2NsaW51eC9zb2MvbWVkaWF0ZWsvbXRrX3dlZC5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTctI2luY2x1ZGUgXHUwMDNjbmV0L2Zsb3dfb2ZmbG9hZC5oXHUwMDNlXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTE5LSNpbmNsdWRlIFwmIzM0O210a19ldGhfc29jLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoyMDojaW5jbHVkZSBcJiMzNDttdGtfd2VkLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0yMS0jaW5jbHVkZSBcJiMzNDttdGtfcHBlLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoyMjojaW5jbHVkZSBcJiMzNDttdGtfd2VkX3dvLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0yMy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NTE6c3RhdGljIHN0cnVjdCBtdGtfd2VkX2h3ICpod19saXN0WzNdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTUyLXN0YXRpYyBERUZJTkVfTVVURVgoaHdfbG9jayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NTQ6c3RydWN0IG10a193ZWRfZmxvd19ibG9ja19wcml2IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo1NTpcdHN0cnVjdCBtdGtfd2VkX2h3ICpodztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy01Ni1cdHN0cnVjdCBuZXRfZGV2aWNlICpkZXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTU4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjU5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX3dlZF9zb2NfZGF0YSBtdDc2MjJfZGF0YSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy02MC1cdC5yZWdtYXAgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTcxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjcyOnN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX3dlZF9zb2NfZGF0YSBtdDc5ODZfZGF0YSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy03My1cdC5yZWdtYXAgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTg0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjg1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX3dlZF9zb2NfZGF0YSBtdDc5ODhfZGF0YSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy04Ni1cdC5yZWdtYXAgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTk0LVx0fSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo5NTpcdC50eF9yaW5nX2Rlc2Nfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgbXRrX3dlZF9ibV9kZXNjKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy05Ni1cdC53ZG1hX2Rlc2Nfc2l6ZSA9IDIgKiBzaXplb2Yoc3RydWN0IG10a193ZG1hX2Rlc2MpLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz05OT1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEwMDp3ZWRfbTMyKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2LCB1MzIgcmVnLCB1MzIgbWFzaywgdTMyIHZhbClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMDEte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMDU9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMDY6d2VkX3NldChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgdTMyIHJlZywgdTMyIG1hc2spXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTA3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9MTExPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTEyOndlZF9jbHIoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYsIHUzMiByZWcsIHUzMiBtYXNrKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTExMy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTExNz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExODp3ZG1hX20zMihzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgdTMyIHJlZywgdTMyIG1hc2ssIHUzMiB2YWwpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTE5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9MTIzPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTI0OndkbWFfc2V0KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2LCB1MzIgcmVnLCB1MzIgbWFzaylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMjUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMjk9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMzA6d2RtYV9jbHIoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYsIHUzMiByZWcsIHUzMiBtYXNrKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEzMS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTEzNT1zdGF0aWMgdTMyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTM2OndpZmlfcjMyKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2LCB1MzIgcmVnKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEzNy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTE0MT1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjE0Mjp3aWZpX3czMihzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgdTMyIHJlZywgdTMyIHZhbClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xNDMte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xNDc9c3RhdGljIHUzMlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjE0ODptdGtfd2VkX3JlYWRfcmVzZXQoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTQ5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9MTUzPXN0YXRpYyB1MzJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxNTQ6bXRrX3dkbWFfcmVhZF9yZXNldChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xNTUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xNTk9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxNjA6bXRrX3dkbWFfdjNfcnhfcmVzZXQoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTYxLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTYzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjE2NDpcdGlmICghbXRrX3dlZF9pc192M19vcl9ncmVhdGVyKGRldi1cdTAwM2VodykpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTY1LVx0XHRyZXR1cm47XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTI0Mz1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MjQ0Om10a193ZG1hX3J4X3Jlc2V0KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTI0NS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTI3MD1zdGF0aWMgdTMyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MjcxOm10a193ZWRfY2hlY2tfYnVzeShzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgdTMyIHJlZywgdTMyIG1hc2spXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMjcyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9Mjc2PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoyNzc6bXRrX3dlZF9wb2xsX2J1c3koc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYsIHUzMiByZWcsIHUzMiBtYXNrKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTI3OC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTI4Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoyODM6XHRyZXR1cm4gcmVhZF9wb2xsX3RpbWVvdXQobXRrX3dlZF9jaGVja19idXN5LCB2YWwsICF2YWwsIHNsZWVwLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTI4NC1cdFx0XHRcdCB0aW1lb3V0LCBmYWxzZSwgZGV2LCByZWcsIG1hc2spO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0yODc9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoyODg6bXRrX3dkbWFfdjNfdHhfcmVzZXQoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMjg5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMjkxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjI5MjpcdGlmICghbXRrX3dlZF9pc192M19vcl9ncmVhdGVyKGRldi1cdTAwM2VodykpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMjkzLVx0XHRyZXR1cm47XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTM2NT1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjM2NjptdGtfd2RtYV90eF9yZXNldChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0zNjcte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0zODU9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzozODY6bXRrX3dlZF9yZXNldChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgdTMyIG1hc2spXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMzg3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMzkwLVx0d2VkX3czMihkZXYsIE1US19XRURfUkVTRVQsIG1hc2spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjM5MTpcdGlmIChyZWFkeF9wb2xsX3RpbWVvdXQobXRrX3dlZF9yZWFkX3Jlc2V0LCBkZXYsIHN0YXR1cyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0zOTItXHRcdFx0ICAgICAgICEoc3RhdHVzIFx1MDAyNiBtYXNrKSwgMCwgMTAwMCkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTM5Nj1zdGF0aWMgdTMyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6Mzk3Om10a193ZWRfd29fcmVhZF9zdGF0dXMoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMzk4LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9NDAyPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NDAzOm10a193ZWRfd29fcmVzZXQoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDA0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo0MDU6XHRzdHJ1Y3QgbXRrX3dlZF93byAqd28gPSBkZXYtXHUwMDNlaHctXHUwMDNld2VkX3dvO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTQwNi1cdHU4IHN0YXRlID0gTVRLX1dFRF9XT19TVEFURV9ESVNBQkxFO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy00MTAtXHRtdGtfd2RtYV90eF9yZXNldChkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjQxMTpcdG10a193ZWRfcmVzZXQoZGV2LCBNVEtfV0VEX1JFU0VUX1dFRCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDEyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjQxMzpcdGlmIChtdGtfd2VkX21jdV9zZW5kX21zZyh3bywgTVRLX1dFRF9NT0RVTEVfSURfV08sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDE0LVx0XHRcdFx0IE1US19XRURfV09fQ01EX0NIQU5HRV9TVEFURSwgXHUwMDI2c3RhdGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTQxNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo0MTg6XHRpZiAocmVhZHhfcG9sbF90aW1lb3V0KG10a193ZWRfd29fcmVhZF9zdGF0dXMsIGRldiwgdmFsLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTQxOS1cdFx0XHQgICAgICAgdmFsID09IE1US19XRURfV09JRl9ESVNBQkxFX0RPTkUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTQ0NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo0NDU6dm9pZCBtdGtfd2VkX2ZlX3Jlc2V0KHZvaWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDQ2LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDUxLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRShod19saXN0KTsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo0NTI6XHRcdHN0cnVjdCBtdGtfd2VkX2h3ICpodyA9IGh3X2xpc3RbaV07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NDUzOlx0XHRzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy00NTQtXHRcdGludCBlcnI7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTQ3MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo0NzI6dm9pZCBtdGtfd2VkX2ZlX3Jlc2V0X2NvbXBsZXRlKHZvaWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDczLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDc4LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRShod19saXN0KTsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo0Nzk6XHRcdHN0cnVjdCBtdGtfd2VkX2h3ICpodyA9IGh3X2xpc3RbaV07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NDgwOlx0XHRzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy00ODEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTQ5NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo0OTU6c3RhdGljIHN0cnVjdCBtdGtfd2VkX2h3ICpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo0OTY6bXRrX3dlZF9hc3NpZ24oc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDk3LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo0OTg6XHRzdHJ1Y3QgbXRrX3dlZF9odyAqaHc7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDk5LVx0aW50IGk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTUwOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo1MDk6XHRcdGlmIChtdGtfd2VkX2lzX3YxKGh3KSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy01MTAtXHRcdFx0cmV0dXJuIE5VTEw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTUyOD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NTI5Om10a193ZWRfYW1zZHVfYnVmZmVyX2FsbG9jKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTUzMC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NTMxOlx0c3RydWN0IG10a193ZWRfaHcgKmh3ID0gZGV2LVx1MDAzZWh3O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjUzMjpcdHN0cnVjdCBtdGtfd2VkX2Ftc2R1ICp3ZWRfYW1zZHU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNTMzLVx0aW50IGk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNTM0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjUzNTpcdGlmICghbXRrX3dlZF9pc192M19vcl9ncmVhdGVyKGh3KSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy01MzYtXHRcdHJldHVybiAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz01NzI9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo1NzM6bXRrX3dlZF9hbXNkdV9mcmVlX2J1ZmZlcihzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy01NzQte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjU3NTpcdHN0cnVjdCBtdGtfd2VkX2Ftc2R1ICp3ZWRfYW1zZHUgPSBkZXYtXHUwMDNlaHctXHUwMDNld2VkX2Ftc2R1O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTU3Ni1cdGludCBpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz01ODk9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjU5MDptdGtfd2VkX2Ftc2R1X2luaXQoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNTkxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo1OTI6XHRzdHJ1Y3QgbXRrX3dlZF9hbXNkdSAqd2VkX2Ftc2R1ID0gZGV2LVx1MDAzZWh3LVx1MDAzZXdlZF9hbXNkdTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy01OTMtXHRpbnQgaSwgcmV0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy02MTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NjEyOlx0cmV0ID0gbXRrX3dlZF9wb2xsX2J1c3koZGV2LCBNVEtfV0VEX0FNU0RVX1NUQV9JTkZPLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTYxMy1cdFx0XHRcdE1US19XRURfQU1TRFVfU1RBX0lORk9fRE9fSU5JVCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTYyNC1cdHdlZF9zZXQoZGV2LCBNVEtfV0VEX0FNU0RVX1BTRSwgTVRLX1dFRF9BTVNEVV9QU0VfUkVTRVQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjYyNTpcdHJldCA9IG10a193ZWRfcG9sbF9idXN5KGRldiwgTVRLX1dFRF9NT05fQU1TRFVfUU1FTV9TVFMxLCBCSVQoMjkpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy02MjYtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTY0MD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NjQxOm10a193ZWRfdHhfYnVmZmVyX2FsbG9jKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTY0Mi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTY0NS1cdGludCB0b2tlbiA9IGRldi1cdTAwM2V3bGFuLnRva2VuX3N0YXJ0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjY0NjpcdHN0cnVjdCBtdGtfd2VkX2J1ZiAqcGFnZV9saXN0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTY0Ny1cdGRtYV9hZGRyX3QgZGVzY19waHlzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy02NDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NjUwOlx0aWYgKCFtdGtfd2VkX2lzX3YzX29yX2dyZWF0ZXIoZGV2LVx1MDAzZWh3KSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTY1MS1cdFx0cmluZ19zaXplID0gZGV2LVx1MDAzZXdsYW4ubmJ1ZiBcdTAwMjYgfihNVEtfV0VEX0JVRl9QRVJfUEFHRSAtIDEpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy03MDMtXHRcdFx0ZGVzYy1cdTAwM2VidWYwID0gY3B1X3RvX2xlMzIoYnVmX3BoeXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjcwNDpcdFx0XHRpZiAoIW10a193ZWRfaXNfdjNfb3JfZ3JlYXRlcihkZXYtXHUwMDNlaHcpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNzA1LVx0XHRcdFx0dTMyIHR4ZF9zaXplO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy03MTAtXHRcdFx0XHRjdHJsID0gRklFTERfUFJFUChNVEtfV0RNQV9ERVNDX0NUUkxfTEVOMCwgdHhkX3NpemUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjcxMTpcdFx0XHRcdGlmIChtdGtfd2VkX2lzX3YxKGRldi1cdTAwM2VodykpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNzEyLVx0XHRcdFx0XHRjdHJsIHw9IE1US19XRE1BX0RFU0NfQ1RSTF9MQVNUX1NFRzEgfFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz03Mzc9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo3Mzg6bXRrX3dlZF9mcmVlX3R4X2J1ZmZlcihzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy03Mzkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjc0MDpcdHN0cnVjdCBtdGtfd2VkX2J1ZiAqcGFnZV9saXN0ID0gZGV2LVx1MDAzZXR4X2J1Zl9yaW5nLnBhZ2VzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjc0MTpcdHN0cnVjdCBtdGtfd2VkX2h3ICpodyA9IGRldi1cdTAwM2VodztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy03NDItXHRpbnQgaSwgcGFnZV9pZHggPSAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz03NzE9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjc3MjptdGtfd2VkX2h3cnJvX2J1ZmZlcl9hbGxvYyhzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy03NzMte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTc3NC1cdGludCBuX3BhZ2VzID0gTVRLX1dFRF9SWF9QR19CTV9DTlQgLyBNVEtfV0VEX1JYX0JVRl9QRVJfUEFHRTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo3NzU6XHRzdHJ1Y3QgbXRrX3dlZF9idWYgKnBhZ2VfbGlzdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo3NzY6XHRzdHJ1Y3QgbXRrX3dlZF9ibV9kZXNjICpkZXNjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTc3Ny1cdGRtYV9hZGRyX3QgZGVzY19waHlzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz04MzQ9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjgzNTptdGtfd2VkX3J4X2J1ZmZlcl9hbGxvYyhzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy04MzYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjgzNzpcdHN0cnVjdCBtdGtfd2VkX2JtX2Rlc2MgKmRlc2M7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtODM4LVx0ZG1hX2FkZHJfdCBkZXNjX3BoeXM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTg1MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo4NTE6XHRyZXR1cm4gbXRrX3dlZF9od3Jyb19idWZmZXJfYWxsb2MoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy04NTItfVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz04NTQ9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo4NTU6bXRrX3dlZF9od3Jyb19mcmVlX2J1ZmZlcihzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy04NTYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjg1NzpcdHN0cnVjdCBtdGtfd2VkX2J1ZiAqcGFnZV9saXN0ID0gZGV2LVx1MDAzZWh3X3Jyby5wYWdlcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo4NTg6XHRzdHJ1Y3QgbXRrX3dlZF9ibV9kZXNjICpkZXNjID0gZGV2LVx1MDAzZWh3X3Jyby5kZXNjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTg1OS1cdGludCBpLCBwYWdlX2lkeCA9IDA7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTg4OT1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjg5MDptdGtfd2VkX2ZyZWVfcnhfYnVmZmVyKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTg5MS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6ODkyOlx0c3RydWN0IG10a193ZWRfYm1fZGVzYyAqZGVzYyA9IGRldi1cdTAwM2VyeF9idWZfcmluZy5kZXNjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTg5My1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtOTAwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjkwMTpcdG10a193ZWRfaHdycm9fZnJlZV9idWZmZXIoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy05MDItfVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz05MDQ9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo5MDU6bXRrX3dlZF9od3Jyb19pbml0KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTkwNi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6OTA3Olx0aWYgKCFtdGtfd2VkX2dldF9yeF9jYXBhKGRldikgfHwgIWRldi1cdTAwM2V3bGFuLmh3X3JybylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy05MDgtXHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9OTI0PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6OTI1Om10a193ZWRfcnhfYnVmZmVyX2h3X2luaXQoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtOTI2LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtOTM1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjkzNjpcdG10a193ZWRfaHdycm9faW5pdChkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTkzNy19XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTkzOT1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjk0MDptdGtfd2VkX2ZyZWVfcmluZyhzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgc3RydWN0IG10a193ZWRfcmluZyAqcmluZylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy05NDEte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz05NDk9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo5NTA6bXRrX3dlZF9mcmVlX3J4X3JpbmdzKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTk1MS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6OTUyOlx0bXRrX3dlZF9mcmVlX3J4X2J1ZmZlcihkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjk1MzpcdG10a193ZWRfZnJlZV9yaW5nKGRldiwgXHUwMDI2ZGV2LVx1MDAzZXJyby5yaW5nKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy05NTQtfVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz05NTY9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo5NTc6bXRrX3dlZF9mcmVlX3R4X3JpbmdzKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTk1OC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTk2MS1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUoZGV2LVx1MDAzZXR4X3JpbmcpOyBpJiM0MzsmIzQzOylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo5NjI6XHRcdG10a193ZWRfZnJlZV9yaW5nKGRldiwgXHUwMDI2ZGV2LVx1MDAzZXR4X3JpbmdbaV0pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTk2My1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUoZGV2LVx1MDAzZXJ4X3dkbWEpOyBpJiM0MzsmIzQzOylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo5NjQ6XHRcdG10a193ZWRfZnJlZV9yaW5nKGRldiwgXHUwMDI2ZGV2LVx1MDAzZXJ4X3dkbWFbaV0pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTk2NS19XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTk2Nz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjk2ODptdGtfd2VkX3NldF9leHRfaW50KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2LCBib29sIGVuKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTk2OS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTk5Nz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjk5ODptdGtfd2VkX3NldF81MTJfc3VwcG9ydChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgYm9vbCBlbmFibGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtOTk5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMDAwOlx0aWYgKCFtdGtfd2VkX2lzX3YyKGRldi1cdTAwM2VodykpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTAwMS1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMDE0PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMDE1Om10a193ZWRfY2hlY2tfd2ZkbWFfcnhfZmlsbChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMDE2Olx0XHRcdCAgICBzdHJ1Y3QgbXRrX3dlZF9yaW5nICpyaW5nKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEwMTcte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMDM3PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTAzODptdGtfd2VkX2RtYV9kaXNhYmxlKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEwMzkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMDU0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEwNTU6XHRpZiAobXRrX3dlZF9pc192MShkZXYtXHUwMDNlaHcpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTA1Ni1cdFx0cmVnbWFwX3dyaXRlKGRldi1cdTAwM2Vody1cdTAwM2VtaXJyb3IsIGRldi1cdTAwM2Vody1cdTAwM2VpbmRleCAqIDQsIDApO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMDY4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEwNjk6XHRcdGlmIChtdGtfd2VkX2lzX3YzX29yX2dyZWF0ZXIoZGV2LVx1MDAzZWh3KSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMDcwOlx0XHQgICAgbXRrX3dlZF9nZXRfcnhfY2FwYShkZXYpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTA3MS1cdFx0XHR3ZG1hX2NscihkZXYsIE1US19XRE1BX1BSRUZfVFhfQ0ZHLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMDc3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEwNzg6XHRtdGtfd2VkX3NldF81MTJfc3VwcG9ydChkZXYsIGZhbHNlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMDc5LX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9MTA4MT1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEwODI6bXRrX3dlZF9zdG9wKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEwODMte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEwODQ6XHRtdGtfd2VkX2RtYV9kaXNhYmxlKGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTA4NTpcdG10a193ZWRfc2V0X2V4dF9pbnQoZGV2LCBmYWxzZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTA4Ni1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTA5MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMDkyOlx0aWYgKCFtdGtfd2VkX2dldF9yeF9jYXBhKGRldikpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTA5My1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMDk5PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTEwMDptdGtfd2VkX2RlaW5pdChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMTAxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMTAyOlx0bXRrX3dlZF9zdG9wKGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTEwMy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTEwOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMTEwOlx0aWYgKG10a193ZWRfaXNfdjEoZGV2LVx1MDAzZWh3KSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMTExLVx0XHRyZXR1cm47XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTExMTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTExODpcdGlmIChtdGtfd2VkX2lzX3YzX29yX2dyZWF0ZXIoZGV2LVx1MDAzZWh3KSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTExMTktXHRcdHdlZF9jbHIoZGV2LCBNVEtfV0VEX0NUUkwsIE1US19XRURfQ1RSTF9UWF9BTVNEVV9FTik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTExMjc9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMTI4Ol9fbXRrX3dlZF9kZXRhY2goc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTEyOS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTEzMDpcdHN0cnVjdCBtdGtfd2VkX2h3ICpodyA9IGRldi1cdTAwM2VodztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMTMxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExMzI6XHRtdGtfd2VkX2RlaW5pdChkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTExMzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTEzNC1cdG10a193ZG1hX3J4X3Jlc2V0KGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTEzNTpcdG10a193ZWRfcmVzZXQoZGV2LCBNVEtfV0VEX1JFU0VUX1dFRCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTEzNjpcdG10a193ZWRfYW1zZHVfZnJlZV9idWZmZXIoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMTM3Olx0bXRrX3dlZF9mcmVlX3R4X2J1ZmZlcihkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExMzg6XHRtdGtfd2VkX2ZyZWVfdHhfcmluZ3MoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMTM5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExNDA6XHRpZiAobXRrX3dlZF9nZXRfcnhfY2FwYShkZXYpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTE0MS1cdFx0aWYgKGh3LVx1MDAzZXdlZF93bylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMTQyOlx0XHRcdG10a193ZWRfd29fcmVzZXQoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMTQzOlx0XHRtdGtfd2VkX2ZyZWVfcnhfcmluZ3MoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMTQ0LVx0XHRpZiAoaHctXHUwMDNld2VkX3dvKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExNDU6XHRcdFx0bXRrX3dlZF93b19kZWluaXQoaHcpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTExNDYtXHR9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTExNjc9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMTY4Om10a193ZWRfZGV0YWNoKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTExNjkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTExNzAtXHRtdXRleF9sb2NrKFx1MDAyNmh3X2xvY2spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExNzE6XHRfX210a193ZWRfZGV0YWNoKGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTE3Mi1cdG11dGV4X3VubG9jayhcdTAwMjZod19sb2NrKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9MTE3NT1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExNzY6bXRrX3dlZF9idXNfaW5pdChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMTc3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTE4MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMTgyOlx0XHRpZiAobXRrX3dlZF9pc192MihkZXYtXHUwMDNlaHcpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTE4My1cdFx0XHRzdHJ1Y3QgcmVnbWFwICpyZWdzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMjI4PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTIyOTptdGtfd2VkX3NldF93cGRtYShzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMjMwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTIzMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMjMzOlx0aWYgKG10a193ZWRfaXNfdjEoZGV2LVx1MDAzZWh3KSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEyMzQtXHRcdHdlZF93MzIoZGV2LCBNVEtfV0VEX1dQRE1BX0NGR19CQVNFLCAgZGV2LVx1MDAzZXdsYW4ud3BkbWFfcGh5cyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEyMzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTIzODpcdG10a193ZWRfYnVzX2luaXQoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMjM5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMjQ0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEyNDU6XHRpZiAoIW10a193ZWRfZ2V0X3J4X2NhcGEoZGV2KSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMjQ2LVx0XHRyZXR1cm47XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEyNTAtXHRcdGRldi1cdTAwM2V3bGFuLndwZG1hX3J4WzBdKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMjUxOlx0aWYgKG10a193ZWRfaXNfdjNfb3JfZ3JlYXRlcihkZXYtXHUwMDNlaHcpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEyNTItXHRcdHdlZF93MzIoZGV2LCBkZXYtXHUwMDNlaHctXHUwMDNlc29jLVx1MDAzZXJlZ21hcC53cGRtYV9yeF9yaW5nWzFdLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMjY1PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTI2NjptdGtfd2VkX2h3X2luaXRfZWFybHkoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTI2Ny17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEyNzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTI3MTpcdG10a193ZWRfZGVpbml0KGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTI3MjpcdG10a193ZWRfcmVzZXQoZGV2LCBNVEtfV0VEX1JFU0VUX1dFRCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTI3MzpcdG10a193ZWRfc2V0X3dwZG1hKGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTI3NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMjc1Olx0aWYgKCFtdGtfd2VkX2lzX3YzX29yX2dyZWF0ZXIoZGV2LVx1MDAzZWh3KSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEyNzYtXHRcdG1hc2sgfD0gTVRLX1dFRF9XRE1BX0dMT19DRkdfRFlOQU1JQ19ETUFEX1JFQ1lDTEUgfFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMjgyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEyODM6XHRpZiAobXRrX3dlZF9pc192MShkZXYtXHUwMDNlaHcpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTI4NC1cdFx0dTMyIG9mZnNldCA9IGRldi1cdTAwM2Vody1cdTAwM2VpbmRleCA/IDB4MDQwMDA0MDAgOiAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMzEyPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMzEzOm10a193ZWRfcnJvX3JpbmdfYWxsb2Moc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYsIHN0cnVjdCBtdGtfd2VkX3JpbmcgKnJpbmcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTMxNC1cdFx0ICAgICAgIGludCBzaXplKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMzI5PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMzMwOm10a193ZWRfcnJvX2FsbG9jKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEzMzEte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMzQxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEzNDI6XHRyZXR1cm4gbXRrX3dlZF9ycm9fcmluZ19hbGxvYyhkZXYsIFx1MDAyNmRldi1cdTAwM2Vycm8ucmluZyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMzQzLVx0XHRcdFx0ICAgICAgTVRLX1dFRF9SUk9fUVVFX0NOVCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTEzNDY9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEzNDc6bXRrX3dlZF9ycm9fY2ZnKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEzNDgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEzNDk6XHRzdHJ1Y3QgbXRrX3dlZF93byAqd28gPSBkZXYtXHUwMDNlaHctXHUwMDNld2VkX3dvO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEzNTAtXHRzdHJ1Y3Qge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMzcxLVxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMDY6NTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTYxODIKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiA1MDUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQXNzZXNzaW5nIHRoZSBGdXp6YWJpbGl0eSBvZiB0aGUgbXRrX3dlZCBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYG10a193ZWRgIGRyaXZlci4gRnJvbSB0aGUgY29kZSwgaXQgbG9va3MgbGlrZSBpdCYjMzk7cyBhIGhhcmR3YXJlIGRyaXZlciBmb3IgTWVkaWF0ZWsgU29Dcywgc3BlY2lmaWNhbGx5IHVzaW5nIGZ1bmN0aW9ucyBsaWtlIGBtdGtfd2VkX2lzX3YyKGRldi0mZ3Q7aHcpYCBhbmQgYG10a193ZWRfaXNfdjNfb3JfZ3JlYXRlcihkZXYtJmd0O2h3KWAuIE15IGluaXRpYWwgdGhvdWdodCBpcywgY2FuIHdlIGV2ZW4gZnV6eiB0aGlzIGluIFFFTVU/IExldCYjMzk7cyBmaWd1cmUgb3V0IHRoZSBkZXZpY2UgdHlwZSBmaXJzdDsgaXMgaXQgYSBQQ0kgZGV2aWNlIG9yIGEgcGxhdGZvcm0gZGV2aWNlPwoKQSBxdWljayBzZWFyY2ggaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmNgIHJldmVhbHMgdGhhdCBgbXRrX3Byb2JlYCBpcyBhIHBsYXRmb3JtIGRyaXZlciBwcm9iZS4gVGhhdCBtYWtlcyB0aGluZ3MgaW1tZWRpYXRlbHkgbW9yZSBjb21wbGljYXRlZC4gUGxhdGZvcm0gZHJpdmVycyBmb3IgTWVkaWF0ZWsgU29DcywgcGFydGljdWxhcmx5IHRob3NlIHRhcmdldGluZyBzcGVjaWZpYyBjaGlwcyBsaWtlIHRoZSBNVDc2MjIsIE1UNzk4Niwgb3IgTVQ3OTg4LCBhcmUgKm5vdCogdHlwaWNhbGx5IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCgpXYWl0LCB0aGlzIHNwZWNpZmljIHByb2JsZW0gc3RhdGVtZW50IG1lbnRpb25zIHNvbWV0aGluZyBhYm91dCBkcml2ZXJzLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgZHJpdmVyIGlzICphY3R1YWxseSogd29ydGggZnV6emluZy4gSSByZW1lbWJlciByZWFkaW5nIHNvbWV0aGluZyBhYm91dCB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyBiZWluZyBleHBsaWNpdGx5IGV4Y2x1ZGVkLiAgRG9lcyB0aGUgZXhjbHVzaW9uIGluY2x1ZGUgcGxhdGZvcm0gZHJpdmVycyBmb3Igc3BlY2lmaWMgU29Dcz8gQmFzZWQgb24gbXkgZXhwZXJpZW5jZSwgaXQgdXN1YWxseSBkb2VzOyB0aGVzZSBraW5kcyBvZiBkcml2ZXJzIGNhbiYjMzk7dCBiZSBwcm9iZWQgaW4gc3RhbmRhcmQgUUVNVSB1bmxlc3MgdGhlcmUmIzM5O3MgYSB2ZXJ5IHNwZWNpZmljIG1hY2hpbmUgdHlwZSwgbGlrZSBgcmFzcGkzYmAgb3IgYHZpcnRgLCB0aGF0IGhhcHBlbnMgdG8gZW11bGF0ZSB0aGUgcmVsZXZhbnQgTWVkaWF0ZWsgaGFyZHdhcmUuIFFFTVUgZGVmaW5pdGVseSBkb2VzbiYjMzk7dCBlbXVsYXRlIE1lZGlhdGVrIE1UNzk4Ni9NVDc5ODggRXRoZXJuZXQuCgpPa2F5LCBsZXQgbWUgZG91YmxlLWNoZWNrIHRob3VnaC4gSXQmIzM5O3MgYWx3YXlzIHdvcnRoIHZlcmlmeWluZyBhc3N1bXB0aW9ucy4gSXMgdGhlcmUgKmFueSogdmlydHVhbCBvciBlbXVsYXRlZCBNZWRpYXRlayBFdGhlcm5ldCBpbiBzdGFuZGFyZCBRRU1VIHRoYXQgY291bGQgcG9zc2libHkgbGVhZCB1cyB0byByZWFjaCB0aGlzIGRyaXZlcj8KCk5vLCB0aGUgYW5zd2VyIGlzIHN0aWxsIG5vLiBTdGFuZGFyZCBRRU1VIGRvZXNuJiMzOTt0IGVtdWxhdGUgTWVkaWF0ZWsgRXRoZXJuZXQuCgpXYWl0LCBTeXprYWxsZXIgbWlnaHQgb2ZmZXIgYSB3YXkgaW4gaWYgaXQgdXNlcyBzb21ldGhpbmcgbGlrZSBgc3l6X21vdW50YCwgb3IgcGVyaGFwcyBzb21lIG90aGVyIG1ldGhvZC4gIEJ1dCB0aGlzICppcyogYSBwbGF0Zm9ybSBkZXZpY2UuIFdoaWxlIFN5emthbGxlciAqY2FuKiBmdXp6IHBsYXRmb3JtIGRldmljZXMsIGl0JiMzOTtzIHJlbGlhbnQgb24gYSBtZXRob2QgdG8gaW5qZWN0IGRldmljZSB0cmVlIG5vZGVzIG9yIHNvbWUgb3RoZXIgbWVhbnMgdG8gaW5zdGFudGlhdGUgdGhlIGRldmljZS4gUmVhY2hpbmcgaGFyZHdhcmUtc3BlY2lmaWMgcGxhdGZvcm0gZHJpdmVyIGNvZGUgd2l0aG91dCBlbXVsYXRpb24gaXMgZ2VuZXJhbGx5IGV4dHJlbWVseSBkaWZmaWN1bHQuIFRoaXMgY291bGQgYmUgaW5jcmVkaWJseSBkaWZmaWN1bHQgdG8gcmVhY2guCgpPa2F5LCBsZXQmIzM5O3MgbG9vayBhdCByZWFjaGFiaWxpdHkuIFRoZSBwYXRjaCBtb2RpZmllcyBgbXRrX3dlZF93ZG1hX3R4X3Jpbmdfc2V0dXBgIGFuZCBgbXRrX3dlZF9zdGFydGAuIFRoYXQmIzM5O3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBCdXQsIHdoZXJlIGlzIGBtdGtfd2VkX3N0YXJ0YCAqY2FsbGVkKiBmcm9tPyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY2FsbCBjaGFpbiB0byBhc3Nlc3Mgd2hldGhlciB3ZSBjYW4gcmVhc29uYWJseSB0cmlnZ2VyIHRoaXMgY29kZSBwYXRoLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDA2OjU2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210a193ZWRfc3RhcnQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTIxNjA9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoyMTYxOm10a193ZWRfc3RhcnRfaHdfcnJvKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2LCB1MzIgaXJxX21hc2ssIGJvb2wgcmVzZXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMjE2Mi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTIzMjU9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoyMzI2Om10a193ZWRfc3RhcnQoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYsIHUzMiBpcnFfbWFzaylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0yMzI3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9Mjc3OT12b2lkIG10a193ZWRfYWRkX2h3KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsIHN0cnVjdCBtdGtfZXRoICpldGgsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTI3ODgtXHRcdC5tc2dfdXBkYXRlID0gbXRrX3dlZF9tY3VfbXNnX3VwZGF0ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoyNzg5Olx0XHQuc3RhcnQgPSBtdGtfd2VkX3N0YXJ0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTI3OTAtXHRcdC5zdG9wID0gbXRrX3dlZF9zdG9wLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0yNzk4LVx0XHQuc2V0dXBfdGMgPSBtdGtfd2VkX3NldHVwX3RjLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjI3OTk6XHRcdC5zdGFydF9od19ycm8gPSBtdGtfd2VkX3N0YXJ0X2h3X3JybyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0yODAwLVx0XHQucnJvX3J4X3Jpbmdfc2V0dXAgPSBtdGtfd2VkX3Jyb19yeF9yaW5nX3NldHVwLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDA2OjU2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE3ODM0CgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogNDUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkludmVzdGlnYXRpbmcgdGhlIGBtdGtfd2VkX29wc2AgU3RydWN0dXJlKioKClJpZ2h0LCBgbXRrX3dlZF9vcHNgLi4uIHRoYXQgcmluZ3MgYSBiZWxsLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGl0JiMzOTtzIGRlZmluaXRlbHkgcmVnaXN0ZXJlZCBpbiBgbXRrX3dlZF9vcHNgLCB3aGljaCBzY3JlYW1zIE1lZGlhdGVrIFdpRmkgZHJpdmVyIGludm9sdmVtZW50LCBwcm9iYWJseSBhbG9uZyB0aGUgbGluZXMgb2YgdGhlIGBtdDc2YCBzZXJpZXMuIFRoaXMgc3VnZ2VzdHMgaXQmIzM5O3MgbGlrZWx5IGEga2V5IGludGVyZmFjZSBvciBhIHNldCBvZiBvcGVyYXRpb25hbCBmdW5jdGlvbnMgZm9yIGhhcmR3YXJlIGFjY2VsZXJhdGlvbiB3aXRoaW4gdGhlaXIgV2lGaSBzb2x1dGlvbnMuIFRoZSBuYW1lIGRlZmluaXRlbHkgbGVhbnMgaW4gdGhlIGRpcmVjdGlvbiBvZiBzb21ldGhpbmcgcmVsYXRlZCB0byAmIzM0O1dpcmVsZXNzIEVuaGFuY2VkIERhdGEmIzM0OyBvcGVyYXRpb25zLCBvciBwZXJoYXBzICYjMzQ7V2lyZWxlc3MgRW5jcnlwdGlvbiBhbmQgRGVjcnlwdGlvbiYjMzQ7LCB3aGljaCB3b3VsZCBiZSBzdGFuZGFyZCBmb3IgdGhpcyBjb250ZXh0LgoKTXkgbmV4dCBpbW1lZGlhdGUgcXVlc3Rpb24g4oCTIG9yIHJhdGhlciwgdGhlICpmaXJzdCogc3RlcCBpbiBteSBtZW50YWwgZGVidWdnaW5nIHByb2Nlc3Mg4oCTIGlzLCAqd2hlcmUqIGlzIHRoaXMgYG10a193ZWRfb3BzYCBzdHJ1Y3R1cmUgYWN0dWFsbHkgKnVzZWQqPyBJIG5lZWQgdG8gdHJhY2sgZG93biBhbGwgdGhlIGluc3RhbmNlcyB3aGVyZSBpdCYjMzk7cyByZWZlcmVuY2VkLCB0aGUgY2FsbHMgb3IgYXNzaWdubWVudHMgdGhhdCBpbnRlcmZhY2Ugd2l0aCBpdC4gSSYjMzk7ZCBuZWVkIHRvIGxvb2sgYXQgdGhlIGRlZmluaXRpb25zIHdpdGhpbiB0aGUgcmVsZXZhbnQgZHJpdmVyIG1vZHVsZXMsIGlkZWFsbHkgdHJhY2luZyB0aGUgZXhlY3V0aW9uIGZsb3cuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyByZWxhdGlvbnNoaXAgdG8gdGhlIHVuZGVybHlpbmcgaGFyZHdhcmUgYWNjZWxlcmF0aW9uIG1lY2hhbmlzbXMsIHByb2JhYmx5IHdpdGhpbiB0aGUgbmV0d29yayBpbnRlcmZhY2UuIEZpbmRpbmcgYWxsIG9mIGl0cyB1c2VzIGlzIHdoZXJlIEkgd291bGQgc3RhcnQuIFRoaXMgaXMgdGhlIGx5bmNocGluLCB0aGUgY3J1Y2lhbCBwaWVjZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAwNjo1NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdGtfd2VkX29wcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9NYWtlZmlsZT0xMT1lbmRpZlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvTWFrZWZpbGU6MTI6b2JqLSQoQ09ORklHX05FVF9NRURJQVRFS19TT0NfV0VEKSAmIzQzOz0gbXRrX3dlZF9vcHMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvTWFrZWZpbGUtMTMtb2JqLSQoQ09ORklHX05FVF9NRURJQVRFS19TVEFSX0VNQUMpICYjNDM7PSBtdGtfc3Rhcl9lbWFjLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9Mjc3OT12b2lkIG10a193ZWRfYWRkX2h3KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsIHN0cnVjdCBtdGtfZXRoICpldGgsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTI3ODIte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjI3ODM6XHRzdGF0aWMgY29uc3Qgc3RydWN0IG10a193ZWRfb3BzIHdlZF9vcHMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMjc4NC1cdFx0LmF0dGFjaCA9IG10a193ZWRfYXR0YWNoLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWRfb3BzLmMtNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWRfb3BzLmM6Nzpjb25zdCBzdHJ1Y3QgbXRrX3dlZF9vcHMgX19yY3UgKm10a19zb2Nfd2VkX29wcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWRfb3BzLmMtOC1FWFBPUlRfU1lNQk9MX0dQTChtdGtfc29jX3dlZF9vcHMpO1xuLS1cbmluY2x1ZGUvbGludXgvc29jL21lZGlhdGVrL210a193ZWQuaD04NT1zdHJ1Y3QgbXRrX3dlZF9kZXZpY2Uge1xuaW5jbHVkZS9saW51eC9zb2MvbWVkaWF0ZWsvbXRrX3dlZC5oLTg2LSNpZmRlZiBDT05GSUdfTkVUX01FRElBVEVLX1NPQ19XRURcbmluY2x1ZGUvbGludXgvc29jL21lZGlhdGVrL210a193ZWQuaDo4NzpcdGNvbnN0IHN0cnVjdCBtdGtfd2VkX29wcyAqb3BzO1xuaW5jbHVkZS9saW51eC9zb2MvbWVkaWF0ZWsvbXRrX3dlZC5oLTg4LVx0c3RydWN0IGRldmljZSAqZGV2O1xuLS1cbmluY2x1ZGUvbGludXgvc29jL21lZGlhdGVrL210a193ZWQuaC0xOTQtXG5pbmNsdWRlL2xpbnV4L3NvYy9tZWRpYXRlay9tdGtfd2VkLmg6MTk1OnN0cnVjdCBtdGtfd2VkX29wcyB7XG5pbmNsdWRlL2xpbnV4L3NvYy9tZWRpYXRlay9tdGtfd2VkLmgtMTk2LVx0aW50ICgqYXR0YWNoKShzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldikgX19yZWxlYXNlcyhSQ1UpO1xuLS1cbmluY2x1ZGUvbGludXgvc29jL21lZGlhdGVrL210a193ZWQuaC0yMjktXG5pbmNsdWRlL2xpbnV4L3NvYy9tZWRpYXRlay9tdGtfd2VkLmg6MjMwOmV4dGVybiBjb25zdCBzdHJ1Y3QgbXRrX3dlZF9vcHMgX19yY3UgKm10a19zb2Nfd2VkX29wcztcbmluY2x1ZGUvbGludXgvc29jL21lZGlhdGVrL210a193ZWQuaC0yMzEtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMDY6NTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTg4NDQKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiA1MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqSW52ZXN0aWdhdGluZyB0aGUgbXQ3NiBEcml2ZXImIzM5O3MgV0VEIE9wZXJhdGlvbnMqKgoKUmlnaHQsIHNvIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgdGhlIGBtdGtfd2VkX29wc2Agc3RydWN0dXJlLiBJIGtub3cgaXQmIzM5O3MgZnVuZGFtZW50YWwgdG8gdGhlIG9wZXJhdGlvbiBvZiB0aGUgYG10NzZgIGRyaXZlci4gTXkgaW1tZWRpYXRlIGdvYWwgaXMgdG8gdW5kZXJzdGFuZCBob3cgdGhpcyBzdHJ1Y3R1cmUgaXMgYWN0dWFsbHkgdXNlZCB3aXRoaW4gdGhhdCBzcGVjaWZpYyBkcml2ZXIuCgpUaGVyZWZvcmUsIEkmIzM5O2xsIHVzZSBgZ3JlcGAgdG8gcXVpY2tseSBsb2NhdGUgYWxsIGluc3RhbmNlcyBvZiBgbXRrX3NvY193ZWRfb3BzYCB3aXRoaW4gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2YCBkaXJlY3RvcnkuIFRoaXMgc2hvdWxkIGdpdmUgbWUgYSBzb2xpZCBvdmVydmlldyBvZiBpdHMgcm9sZSBhbmQgaG93IGl0JiMzOTtzIGludGVncmF0ZWQgd2l0aCB0aGUgYnJvYWRlciBgbXQ3NmAgZnJhbWV3b3JrLiBJIGV4cGVjdCB0byBmaW5kIGl0cyBkZWNsYXJhdGlvbiwgYXNzaWdubWVudHMsIGFuZCBjYWxscy4gVGhpcyB0YXJnZXRlZCBhcHByb2FjaCB3aWxsIGhvcGVmdWxseSBleHBvc2UgdGhlIGRyaXZlciYjMzk7cyBXRUQgaW5pdGlhbGl6YXRpb24gYW5kIGludGVyYWN0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAwNjo1NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210a19zb2Nfd2VkX29wcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMDY6NTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTkxMzQKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAyOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDoKCioqRGlnZ2luZyBpbnRvIHRoZSBNZWRpYXRlayBXaXJlbGVzcyBEcml2ZXIqKgoKT2theSwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhpcyBNZWRpYXRlayB3aXJlbGVzcyBkcml2ZXIgYmV0dGVyLiBTcGVjaWZpY2FsbHksIEkmIzM5O20gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgc29tZXRoaW5nIHJlbGF0ZWQgdG8gYG10a193ZWRgLiBMZXQmIzM5O3MgZ2V0IHJpZ2h0IHRvIGl0LiBNeSBmaXJzdCBpbnN0aW5jdCBpcyB0byBkaXZlIGludG8gdGhlIGNvZGUuIEdpdmVuIHdoYXQgSSBrbm93IGFib3V0IE1lZGlhdGVrJiMzOTtzIHdpcmVsZXNzIG9mZmVyaW5ncywgdGhlIGxvZ2ljYWwgcGxhY2UgdG8gc3RhcnQgaXMgdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2AgZGlyZWN0b3J5LiBUaGF0IHNlZW1zIGxpa2UgdGhlIGNhbm9uaWNhbCBsb2NhdGlvbiBmb3IgdGhlaXIgY3VycmVudCBkcml2ZXJzLiBOb3csIGxldCYjMzk7cyBmaXJlIHVwIGEgYGdyZXBgIGNvbW1hbmQgdG8gc2VhcmNoIHNwZWNpZmljYWxseSBmb3IgYG10a193ZWRgIHdpdGhpbiB0aGF0IGRpcmVjdG9yeS4gSSYjMzk7bSBob3BpbmcgdG8gcXVpY2tseSBpZGVudGlmeSB0aGUgcmVsZXZhbnQgZmlsZXMgb3IgZnVuY3Rpb25zIHdoZXJlIHRoaXMgc3BlY2lmaWMgdGVybSBpcyB1c2VkIGFuZCwgYnkgZXh0ZW5zaW9uLCBnZXQgYSBoYW5kbGUgb24gd2hhdCBpdCByZWZlcnMgdG8uIFRoaXMgc2hvdWxkIGdpdmUgbWUgYSBnb29kIGp1bXBpbmctb2ZmIHBvaW50IGZvciBmdXJ0aGVyIGludmVzdGlnYXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDA2OjU2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210a193ZWQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNzg4IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTgwMj1tdDc2X2RtYV9hbGxvY19xdWV1ZShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy04NDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjg0NjpcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2ZGV2LVx1MDAzZW1taW8ud2VkKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzo4NDc6XHRcdGlmICgobXRrX3dlZF9nZXRfcnhfY2FwYShcdTAwMjZkZXYtXHUwMDNlbW1pby53ZWQpIFx1MDAyNlx1MDAyNiBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkpIHx8XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTg0OC1cdFx0ICAgIG10NzZfcXVldWVfaXNfd2VkX3R4X2ZyZWUocSkpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz04NjE9bXQ3Nl9kbWFfcnhfY2xlYW51cChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy04ODEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjg4MjpcdFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZkZXYtXHUwMDNlbW1pby53ZWQpIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy04ODMtXHRcdCAgICBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz05MDU9bXQ3Nl9kbWFfcnhfcmVzZXQoc3RydWN0IG10NzZfZGV2ICpkZXYsIGVudW0gbXQ3Nl9yeHFfaWQgcWlkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtOTI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzo5Mjg6XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNmRldi1cdTAwM2VtbWlvLndlZCkgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTkyOS1cdCAgICBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz0xMTY3PXZvaWQgbXQ3Nl9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTEyMDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjEyMDE6XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNmRldi1cdTAwM2VtbWlvLndlZCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjEyMDI6XHRcdG10a193ZWRfZGV2aWNlX2RldGFjaChcdTAwMjZkZXYtXHUwMDNlbW1pby53ZWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xMjAzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoxMjA0Olx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZkZXYtXHUwMDNlbW1pby53ZWRfaGlmMikpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjEyMDU6XHRcdG10a193ZWRfZGV2aWNlX2RldGFjaChcdTAwMjZkZXYtXHUwMDNlbW1pby53ZWRfaGlmMik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTEyMDYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaC01NC1cdGlmICgoX3EpLVx1MDAzZWZsYWdzIFx1MDAyNiBNVF9RRkxBR19XRUQpXHRcdFx0XHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5oOjU1Olx0XHRfdmFsID0gbXRrX3dlZF9kZXZpY2VfcmVnX3JlYWQoKF9xKS1cdTAwM2V3ZWQsXHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5oLTU2LVx0XHRcdFx0XHQgICAgICAgKChfcSktXHUwMDNld2VkX3JlZ3MgJiM0MztcdFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaC02NS1cdGlmICgoX3EpLVx1MDAzZWZsYWdzIFx1MDAyNiBNVF9RRkxBR19XRUQpXHRcdFx0XHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5oOjY2Olx0XHRtdGtfd2VkX2RldmljZV9yZWdfd3JpdGUoKF9xKS1cdTAwM2V3ZWQsXHRcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmgtNjctXHRcdFx0XHRcdCAoKF9xKS1cdTAwM2V3ZWRfcmVncyAmIzQzOyBfb2Zmc2V0KSxcdFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaD0xNzU9bXQ3Nl9kbWFfcmVzZXRfdHhfcXVldWUoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmgtMTc5LVx0ZGV2LVx1MDAzZXF1ZXVlX29wcy1cdTAwM2VyZXNldF9xKGRldiwgcSwgcmVzZXRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmg6MTgwOlx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZkZXYtXHUwMDNlbW1pby53ZWQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaC0xODEtXHRcdG10NzZfd2VkX2RtYV9zZXR1cChkZXYsIHEsIHRydWUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYz0xNTU0PXZvaWQgbXQ3Nl9yeF9wb2xsX2NvbXBsZXRlKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBlbnVtIG10NzZfcnhxX2lkIHEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTE1NjMtXHRcdG10NzZfY2hlY2tfc3RhKGRldiwgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYzoxNTY0Olx0XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNmRldi1cdTAwM2VtbWlvLndlZCkgfHxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy0xNTY1LVx0XHQgICAgbXQ3Nl9ucHVfZGV2aWNlX2FjdGl2ZShkZXYpKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbW1pby5jPTc3PXZvaWQgbXQ3Nl9zZXRfaXJxX21hc2soc3RydWN0IG10NzZfZGV2ICpkZXYsIHUzMiBhZGRyLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbW1pby5jLTg1LVx0aWYgKGFkZHIpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbW1pby5jOjg2Olx0XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNmRldi1cdTAwM2VtbWlvLndlZCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21taW8uYzo4NzpcdFx0XHRtdGtfd2VkX2RldmljZV9pcnFfc2V0X21hc2soXHUwMDI2ZGV2LVx1MDAzZW1taW8ud2VkLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tbWlvLmMtODgtXHRcdFx0XHRcdFx0ICAgIGRldi1cdTAwM2VtbWlvLmlycW1hc2spO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE2LSNpbmNsdWRlIFx1MDAzY2xpbnV4L3NvYy9haXJvaGEvYWlyb2hhX29mZmxvYWQuaFx1MDAzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTc6I2luY2x1ZGUgXHUwMDNjbGludXgvc29jL21lZGlhdGVrL210a193ZWQuaFx1MDAzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTgtI2luY2x1ZGUgXHUwMDNjbmV0L21hYzgwMjExLmhcdTAwM2Vcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaD0yMzU9c3RydWN0IG10NzZfcXVldWUge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTI2MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjI2MTpcdHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMjYyLVx0c3RydWN0IG10NzZfZGV2ICpkZXY7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg9NzE1PXN0cnVjdCBtdDc2X21taW8ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTcxOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjcyMDpcdHN0cnVjdCBtdGtfd2VkX2RldmljZSB3ZWQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDo3MjE6XHRzdHJ1Y3QgbXRrX3dlZF9kZXZpY2Ugd2VkX2hpZjI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC03MjItXHRzdHJ1Y3QgY29tcGxldGlvbiB3ZWRfcmVzZXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg9MTIzNT1zdGF0aWMgaW5saW5lIHUxNiBtdDc2X3JldihzdHJ1Y3QgbXQ3Nl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xMjM5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTI0MDp2b2lkIG10NzZfd2VkX3JlbGVhc2VfcnhfYnVmKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjEyNDE6dm9pZCBtdDc2X3dlZF9vZmZsb2FkX2Rpc2FibGUoc3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTI0Mjp2b2lkIG10NzZfd2VkX3Jlc2V0X2NvbXBsZXRlKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTEyNDMtdm9pZCBtdDc2X3dlZF9kbWFfcmVzZXQoc3RydWN0IG10NzZfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg9MTI0ND1pbnQgbXQ3Nl93ZWRfbmV0X3NldHVwX3RjKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTEyNDctI2lmZGVmIENPTkZJR19ORVRfTUVESUFURUtfU09DX1dFRFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTI0ODp1MzIgbXQ3Nl93ZWRfaW5pdF9yeF9idWYoc3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQsIGludCBzaXplKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjEyNDk6aW50IG10NzZfd2VkX29mZmxvYWRfZW5hYmxlKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTEyNTAtaW50IG10NzZfd2VkX2RtYV9zZXR1cChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEsIGJvb2wgcmVzZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTI1MS0jZWxzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTI1MjpzdGF0aWMgaW5saW5lIHUzMiBtdDc2X3dlZF9pbml0X3J4X2J1ZihzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZCwgaW50IHNpemUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xMjUzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xMjU2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTI1NzpzdGF0aWMgaW5saW5lIGludCBtdDc2X3dlZF9vZmZsb2FkX2VuYWJsZShzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTEyNTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oPTEyNjI9c3RhdGljIGlubGluZSBpbnQgbXQ3Nl93ZWRfZG1hX3NldHVwKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xMjkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTI5MTpzdGF0aWMgaW5saW5lIHN0cnVjdCBtdDc2X2RldiAqbXQ3Nl93ZWRfdG9fZGV2KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTI5Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tYWMuYz01MDQ9dm9pZCBtdDc2X2Nvbm5hYzJfbWFjX3dyaXRlX3R4d2koc3RydWN0IG10NzZfZGV2ICpkZXYsIF9fbGUzMiAqdHh3aSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21hYy5jLTU0Ny1cdFx0LyogbXQ3OTE1IFdBIG9ubHkgY291bnRzIFdFRCBwYXRoICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21hYy5jOjU0ODpcdFx0aWYgKGlzX210NzkxNShkZXYpIFx1MDAyNlx1MDAyNiBtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2ZGV2LVx1MDAzZW1taW8ud2VkKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWFjLmMtNTQ5LVx0XHRcdHdjaWQtXHUwMDNlc3RhdHMudHhfcGFja2V0cyYjNDM7JiM0Mzs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tYWMuYz02MjQ9Ym9vbCBtdDc2X2Nvbm5hYzJfbWFjX2ZpbGxfdHhzKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWFjLmMtNjM2LVx0LyogUFBEVSBiYXNlZCByZXBvcnRpbmcgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWFjLmM6NjM3Olx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZkZXYtXHUwMDNlbW1pby53ZWQpIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tYWMuYy02MzgtXHQgICAgRklFTERfR0VUKE1UX1RYUzBfVFhTX0ZPUk1BVCwgdHhzKSBcdTAwM2UgMSkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmM9MTI3Mj1pbnQgbXQ3Nl9jb25uYWNfbWN1X3N0YV93ZWRfdXBkYXRlKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmMtMTI3Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmM6MTI3NzpcdGlmICghbXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNmRldi1cdTAwM2VtbWlvLndlZCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jLTEyNzgtXHRcdHJldHVybiAwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYy0xMjc5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYzoxMjgwOlx0cmV0dXJuIG10a193ZWRfZGV2aWNlX3VwZGF0ZV9tc2coXHUwMDI2ZGV2LVx1MDAzZW1taW8ud2VkLCBXRURfV09fU1RBX1JFQyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmMtMTI4MS1cdFx0XHRcdFx0IHNrYi1cdTAwM2VkYXRhLCBza2ItXHUwMDNlbGVuKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYz05PW10NzkxNV9pbml0X3R4X3F1ZXVlcyhzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5LCBpbnQgaWR4LCBpbnQgbl9kZXNjLCBpbnQgcmluZ19iYXNlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTExLVx0c3RydWN0IG10NzkxNV9kZXYgKmRldiA9IHBoeS1cdTAwM2VkZXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzoxMjpcdHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkID0gTlVMTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6MTQ6XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNmRldi1cdTAwM2VtdDc2Lm1taW8ud2VkKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtMTUtXHRcdGlmIChpc19tdDc5OHgoXHUwMDI2ZGV2LVx1MDAzZW10NzYpKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jPTQxPXN0YXRpYyB2b2lkIG10NzkxNV9kbWFfY29uZmlnKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtODYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo4NzpcdFx0aWYgKGlzX210NzkxNihcdTAwMjZkZXYtXHUwMDNlbXQ3NikgXHUwMDI2XHUwMDI2IG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTg4LVx0XHRcdFJYUV9DT05GSUcoTVRfUlhRX01BSU4sIFdGRE1BMCwgTVRfSU5UX1dFRF9SWF9ET05FX0JBTkQwX01UNzkxNixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYz0yNTU9aW50IG10NzkxNV9kbWFfc3RhcnQoc3RydWN0IG10NzkxNV9kZXYgKmRldiwgYm9vbCByZXNldCwgYm9vbCB3ZWRfcmVzZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtMzA4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6MzA5Olx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZCkgXHUwMDI2XHUwMDI2IHdlZF9yZXNldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtMzEwLVx0XHR1MzIgd2VkX2lycV9tYXNrID0gaXJxX21hc2s7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtMzIyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6MzIzOlx0XHRtdGtfd2VkX2RldmljZV9zdGFydChcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZCwgd2VkX2lycV9tYXNrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTMyNC1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYz00MDg9aW50IG10NzkxNV9kbWFfaW5pdChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5Milcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy00MjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo0MjQ6XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNm1kZXYtXHUwMDNlbW1pby53ZWQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy00MjUtXHRcdGlmICghaXNfbXQ3OTh4KG1kZXYpKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNDkzLVx0LyogZXZlbnQgZnJvbSBXQSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NDk0Olx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZtZGV2LVx1MDAzZW1taW8ud2VkKSBcdTAwMjZcdTAwMjYgaXNfbXQ3OTE1KG1kZXYpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy00OTUtXHRcdHdhX3J4X2Jhc2UgPSBNVF9XRURfUlhfUklOR19CQVNFO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTUxMC1cdGlmICghZGV2LVx1MDAzZXBoeS5tdDc2LVx1MDAzZWJhbmRfaWR4KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo1MTE6XHRcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2bWRldi1cdTAwM2VtbWlvLndlZCkgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo1MTI6XHRcdCAgICBtdGtfd2VkX2dldF9yeF9jYXBhKFx1MDAyNm1kZXYtXHUwMDNlbW1pby53ZWQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01MTMtXHRcdFx0bWRldi1cdTAwM2VxX3J4W01UX1JYUV9NQUlOXS5mbGFncyA9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNTMyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTMzOlx0XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNm1kZXYtXHUwMDNlbW1pby53ZWQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01MzQtXHRcdFx0bWRldi1cdTAwM2VxX3J4W01UX1JYUV9NQUlOX1dBXS5mbGFncyA9IE1UX1dFRF9RX1RYRlJFRTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01NDktXHRpZiAoZGV2LVx1MDAzZWRiZGNfc3VwcG9ydCB8fCBkZXYtXHUwMDNlcGh5Lm10NzYtXHUwMDNlYmFuZF9pZHgpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjU1MDpcdFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZtZGV2LVx1MDAzZW1taW8ud2VkKSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjU1MTpcdFx0ICAgIG10a193ZWRfZ2V0X3J4X2NhcGEoXHUwMDI2bWRldi1cdTAwM2VtbWlvLndlZCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTU1Mi1cdFx0XHRtZGV2LVx1MDAzZXFfcnhbTVRfUlhRX0JBTkQxXS5mbGFncyA9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM9NTkwPWludCBtdDc5MTVfZG1hX3Jlc2V0KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIGJvb2wgZm9yY2UpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNTkyLVx0c3RydWN0IG10NzZfcGh5ICptcGh5X2V4dCA9IGRldi1cdTAwM2VtdDc2LnBoeXNbTVRfQkFORDFdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTkzOlx0c3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQgPSBcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTU5NC1cdGludCBpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTYxMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjYxMzpcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUod2VkKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjYxNDpcdFx0bXRrX3dlZF9kZXZpY2VfZG1hX3Jlc2V0KHdlZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy02MTUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNjQwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NjQxOlx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWQpIFx1MDAyNlx1MDAyNiBpc19tdDc5MTUoXHUwMDI2ZGV2LVx1MDAzZW10NzYpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNjQyLVx0XHRtdDc2X3JtdyhkZXYsIE1UX1dGRE1BMF9FWFQwX0NGRywgTVRfV0ZETUEwX0VYVDBfUlhXQl9LRUVQLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0zNTg9bXQ3OTE1X2luaXRfd2lwaHkoc3RydWN0IG10NzkxNV9waHkgKnBoeSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMzcwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjM3MTpcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2bWRldi1cdTAwM2VtbWlvLndlZCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMzcyLVx0XHRody1cdTAwM2VuZXRkZXZfZmVhdHVyZXMgfD0gTkVUSUZfRl9IV19UQztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9NDg0PW10NzkxNV9tYWNfaW5pdF9iYW5kKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIHU4IGJhbmQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTU0OS1cdCAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjU1MDpcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2ZGV2LVx1MDAzZW10NzYubW1pby53ZWQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTU1MS1cdFx0bXQ3Nl9zZXQoZGV2LCBNVF9BR0dfQUNSNChiYW5kKSwgTVRfQUdHX0FDUl9QUERVX1RYUzJIKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYz0yMzY9bXQ3OTE1X3dlZF9jaGVja19wcGUoc3RydWN0IG10NzkxNV9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMjU2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM6MjU3Olx0bXRrX3dlZF9kZXZpY2VfcHBlX2NoZWNrKFx1MDAyNmRldi1cdTAwM2VtdDc2Lm1taW8ud2VkLCBza2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy0yNTgtXHRcdFx0XHQgRklFTERfR0VUKE1UX0RNQV9QUEVfQ1BVX1JFQVNPTiwgaW5mbyksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM9ODY3PW10NzkxNV9tYWNfdHhfZnJlZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCB2b2lkICpkYXRhLCBpbnQgbGVuKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTkxMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jOjkxNDpcdFx0aWYgKCFtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2bWRldi1cdTAwM2VtbWlvLndlZCkgXHUwMDI2XHUwMDI2IHdjaWQpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTkxNS1cdFx0XHR1MzIgdHhfcmV0cmllcyA9IDAsIHR4X2ZhaWxlZCA9IDAsIGNvdW50O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jPTE0NzM9dm9pZCBtdDc5MTVfbWFjX3Jlc2V0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTE1MzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYzoxNTM0Olx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYzoxNTM1Olx0XHRtdGtfd2VkX2RldmljZV9zdG9wKFx1MDAyNmRldi1cdTAwM2VtdDc2Lm1taW8ud2VkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTE1MzYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jPTExNTc9c3RhdGljIHZvaWQgbXQ3OTE1X3N0YV9zdGF0aXN0aWNzKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0xMTg5LVx0ICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6MTE5MDpcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2cGh5LVx1MDAzZWRldi1cdTAwM2VtdDc2Lm1taW8ud2VkKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTExOTEtXHRcdHNpbmZvLVx1MDAzZXR4X2J5dGVzID0gbXN0YS1cdTAwM2V3Y2lkLnN0YXRzLnR4X2J5dGVzO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0xMTk4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jOjExOTk6XHRcdGlmIChtdGtfd2VkX2dldF9yeF9jYXBhKFx1MDAyNnBoeS1cdTAwM2VkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0xMjAwLVx0XHRcdHNpbmZvLVx1MDAzZXJ4X2J5dGVzID0gbXN0YS1cdTAwM2V3Y2lkLnN0YXRzLnJ4X2J5dGVzO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYz0xNzIzPW10NzkxNV9uZXRfZmlsbF9mb3J3YXJkX3BhdGgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTE3MzItXHRzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5ID0gbXQ3OTE1X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6MTczMzpcdHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkID0gXHUwMDI2ZGV2LVx1MDAzZW10NzYubW1pby53ZWQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtMTczNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYzoxNzM1Olx0aWYgKCFtdGtfd2VkX2RldmljZV9hY3RpdmUod2VkKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0xNzM2LVx0XHRyZXR1cm4gLUVOT0RFVjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYz0xNzg1PWludCBtdDc5MTVfbWN1X3dlZF9lbmFibGVfcnhfc3RhdHMoc3RydWN0IG10NzkxNV9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0xNzg3LSNpZmRlZiBDT05GSUdfTkVUX01FRElBVEVLX1NPQ19XRURcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjE3ODg6XHRzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZCA9IFx1MDAyNmRldi1cdTAwM2VtdDc2Lm1taW8ud2VkO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMTc4OS1cdHN0cnVjdCB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMTc5NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjE3OTY6XHRyZXR1cm4gbXRrX3dlZF9kZXZpY2VfdXBkYXRlX21zZyh3ZWQsIE1US19XRURfV09fQ01EX1JYQ05UX0NUUkwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0xNzk3LVx0XHRcdFx0XHQgXHUwMDI2cmVxLCBzaXplb2YocmVxKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM9MjM5Mj1pbnQgbXQ3OTE1X21jdV9pbml0X2Zpcm13YXJlKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMjQyNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjI0MjY6XHRpZiAoKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZCkgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yNDI3LVx0ICAgICBpc19tdDc5MTUoXHUwMDI2ZGV2LVx1MDAzZW10NzYpKSB8fFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM6MjQyODpcdCAgICAhbXRrX3dlZF9nZXRfcnhfY2FwYShcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yNDI5LVx0XHRtdDc5MTVfbWN1X3dhX2NtZChkZXYsIE1DVV9XQV9QQVJBTV9DTUQoQ0FQQUJJTElUWSksIDAsIDAsIDApO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTI0NDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzoyNDQ0Olx0cmV0dXJuIG10NzkxNV9tY3Vfc2V0X3JlZChkZXYsIG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZCkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMjQ0NS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jPTU2NT1zdGF0aWMgdTMyIG10NzkxNV9ybXcoc3RydWN0IG10NzZfZGV2ICptZGV2LCB1MzIgb2Zmc2V0LCB1MzIgbWFzaywgdTMyIHZhbClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtNTgwLSNpZmRlZiBDT05GSUdfTkVUX01FRElBVEVLX1NPQ19XRURcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYzo1ODE6c3RhdGljIHZvaWQgbXQ3OTE1X21taW9fd2VkX3VwZGF0ZV9yeF9zdGF0cyhzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYzo1ODI6XHRcdFx0XHRcdCAgICBzdHJ1Y3QgbXRrX3dlZF93b19yeF9zdGF0cyAqc3RhdHMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtNTgzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtNjAyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjYwMzpzdGF0aWMgaW50IG10NzkxNV9tbWlvX3dlZF9yZXNldChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy02MDQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYz02MzM9aW50IG10NzkxNV9tbWlvX3dlZF9pbml0KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIHZvaWQgKnBkZXZfcHRyLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy02MzYtI2lmZGVmIENPTkZJR19ORVRfTUVESUFURUtfU09DX1dFRFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjYzNzpcdHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkID0gXHUwMDI2ZGV2LVx1MDAzZW10NzYubW1pby53ZWQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtNjM4LVx0aW50IHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtNzIzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjcyNDpcdGlmIChtdGtfd2VkX2RldmljZV9hdHRhY2god2VkKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy03MjUtXHRcdHJldHVybiAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYz03OTM9dm9pZCBtdDc5MTVfZHVhbF9oaWZfc2V0X2lycV9tYXNrKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTgwNS1cdGlmICh3cml0ZV9yZWcpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYzo4MDY6XHRcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2bWRldi1cdTAwM2VtbWlvLndlZCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6ODA3Olx0XHRcdG10a193ZWRfZGV2aWNlX2lycV9zZXRfbWFzayhcdTAwMjZtZGV2LVx1MDAzZW1taW8ud2VkLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTgwOC1cdFx0XHRcdFx0XHQgICAgbWRldi1cdTAwM2VtbWlvLmlycW1hc2spO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYz04MjY9c3RhdGljIHZvaWQgbXQ3OTE1X2lycV90YXNrbGV0KHN0cnVjdCB0YXNrbGV0X3N0cnVjdCAqdClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtODI4LVx0c3RydWN0IG10NzkxNV9kZXYgKmRldiA9IGZyb21fdGFza2xldChkZXYsIHQsIG10NzYuaXJxX3Rhc2tsZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjgyOTpcdHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkID0gXHUwMDI2ZGV2LVx1MDAzZW10NzYubW1pby53ZWQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtODMwLVx0dTMyIGludHIsIGludHIxLCBtYXNrO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTgzMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYzo4MzI6XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYzo4MzM6XHRcdG10a193ZWRfZGV2aWNlX2lycV9zZXRfbWFzayh3ZWQsIDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTgzNC1cdFx0aWYgKGRldi1cdTAwM2VoaWYyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTgzNS1cdFx0XHRtdDc2X3dyKGRldiwgTVRfSU5UMV9NQVNLX0NTUiwgMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6ODM2Olx0XHRpbnRyID0gbXRrX3dlZF9kZXZpY2VfaXJxX2dldCh3ZWQsIGRldi1cdTAwM2VtdDc2Lm1taW8uaXJxbWFzayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtODM3LVx0fSBlbHNlIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM9ODk2PWlycXJldHVybl90IG10NzkxNV9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkZXZfaW5zdGFuY2UpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTg5OC1cdHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYgPSBkZXZfaW5zdGFuY2U7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6ODk5Olx0c3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQgPSBcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy05MDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6OTAxOlx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjkwMjpcdFx0bXRrX3dlZF9kZXZpY2VfaXJxX3NldF9tYXNrKHdlZCwgMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtOTAzLVx0ZWxzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jPTEwMz1zdGF0aWMgaW50IG10NzkxNV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmMtMTkyLWZyZWVfd2VkX29yX2lycV92ZWN0b3I6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9wY2kuYzoxOTM6XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNm1kZXYtXHUwMDNlbW1pby53ZWQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmM6MTk0Olx0XHRtdGtfd2VkX2RldmljZV9kZXRhY2goXHUwMDI2bWRldi1cdTAwM2VtbWlvLndlZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9wY2kuYy0xOTUtXHRlbHNlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmM9MTIyMD1zdGF0aWMgaW50IG10Nzk4eF93bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmMtMTI3Mi1mcmVlX2RldmljZTpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3NvYy5jOjEyNzM6XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNm1kZXYtXHUwMDNlbW1pby53ZWQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmM6MTI3NDpcdFx0bXRrX3dlZF9kZXZpY2VfZGV0YWNoKFx1MDAyNm1kZXYtXHUwMDNlbW1pby53ZWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmMtMTI3NS1cdG10NzZfZnJlZV9kZXZpY2UobWRldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM9MTA9aW50IG10Nzk5Nl9pbml0X3R4X3F1ZXVlcyhzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LCBpbnQgaWR4LCBpbnQgbl9kZXNjLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTE6XHRcdFx0ICBpbnQgcmluZ19iYXNlLCBzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE2Olx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNy1cdFx0cmluZ19iYXNlICYjNDM7PSBNVF9UWFFfSUQoMCkgKiBNVF9SSU5HX1NJWkU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM9MzA2PXZvaWQgbXQ3OTk2X2RtYV9zdGFydChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBib29sIHJlc2V0LCBib29sIHdlZF9yZXNldClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTMwNy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzozMDg6XHRzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZCA9IFx1MDAyNmRldi1cdTAwM2VtdDc2Lm1taW8ud2VkO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMzA5LVx0dTMyIGhpZjFfb2ZzID0gMDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0zMTYtXHRpZiAoIXJlc2V0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzozMTc6XHRcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUod2VkKSBcdTAwMjZcdTAwMjYgbXRrX3dlZF9nZXRfcnhfY2FwYSh3ZWQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMzE4LVx0XHRcdG10NzZfc2V0KGRldiwgTVRfV0ZETUEwX0dMT19DRkcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMzUzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MzU0Olx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWQpIFx1MDAyNlx1MDAyNiB3ZWRfcmVzZXQpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTM1NS1cdFx0dTMyIHdlZF9pcnFfbWFzayA9IGlycV9tYXNrO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTM1OC1cdFx0bXQ3Nl93cihkZXYsIE1UX0lOVF9NQVNLX0NTUiwgd2VkX2lycV9tYXNrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjM1OTpcdFx0bXRrX3dlZF9kZXZpY2Vfc3RhcnQod2VkLCB3ZWRfaXJxX21hc2spO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMzYwLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jPTM3ND1zdGF0aWMgdm9pZCBtdDc5OTZfZG1hX2VuYWJsZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBib29sIHJlc2V0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTUwMi1cdFx0ICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1MDM6XHRcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2ZGV2LVx1MDAzZW10NzYubW1pby53ZWQpIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTA0LVx0XHQgICAgbXQ3OTk2X2hhc19od3JybyhkZXYpKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM9NTIxPWludCBtdDc5OTZfZG1hX3Jyb19pbml0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTI5LVx0XHRtZGV2LVx1MDAzZXFfcnhbTVRfUlhRX1JST19SWERNQURfQ10uZmxhZ3MgPSBNVF9XRURfUlJPX1FfUlhETUFEX0M7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1MzA6XHRcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2bWRldi1cdTAwM2VtbWlvLndlZCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01MzEtXHRcdFx0bWRldi1cdTAwM2VxX3J4W01UX1JYUV9SUk9fUlhETUFEX0NdLndlZCA9IFx1MDAyNm1kZXYtXHUwMDNlbW1pby53ZWQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTQxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NTQyOlx0XHRpZiAoIW10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZtZGV2LVx1MDAzZW1taW8ud2VkKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTQzLVx0XHRcdC8qIFdlIG5lZWQgdG8gc2V0IGNwdSBpZHggcG9pbnRlciBiZWZvcmUgcmVzZXR0aW5nIHRoZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTU1Ni1cdG1kZXYtXHUwMDNlcV9yeFtNVF9SWFFfUlJPX0lORF0uZmxhZ3MgPSBNVF9XRURfUlJPX1FfSU5EO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NTU3Olx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZtZGV2LVx1MDAzZW1taW8ud2VkKSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjU1ODpcdCAgICBtdGtfd2VkX2dldF9yeF9jYXBhKFx1MDAyNm1kZXYtXHUwMDNlbW1pby53ZWQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTU5LVx0XHRtZGV2LVx1MDAzZXFfcnhbTVRfUlhRX1JST19JTkRdLndlZCA9IFx1MDAyNm1kZXYtXHUwMDNlbW1pby53ZWQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTY5LVx0XHRNVF9XRURfUlJPX1FfTVNEVV9QRygwKSB8IE1UX1FGTEFHX1dFRF9SUk9fRU47XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1NzA6XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNm1kZXYtXHUwMDNlbW1pby53ZWQpIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NTcxOlx0ICAgIG10a193ZWRfZ2V0X3J4X2NhcGEoXHUwMDI2bWRldi1cdTAwM2VtbWlvLndlZCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01NzItXHRcdG1kZXYtXHUwMDNlcV9yeFtNVF9SWFFfTVNEVV9QQUdFX0JBTkQwXS53ZWQgPSBcdTAwMjZtZGV2LVx1MDAzZW1taW8ud2VkO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTU4Ni1cdFx0XHRNVF9XRURfUlJPX1FfTVNEVV9QRygxKSB8IE1UX1FGTEFHX1dFRF9SUk9fRU47XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1ODc6XHRcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2bWRldi1cdTAwM2VtbWlvLndlZCkgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1ODg6XHRcdCAgICBtdGtfd2VkX2dldF9yeF9jYXBhKFx1MDAyNm1kZXYtXHUwMDNlbW1pby53ZWQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTg5LVx0XHRcdG1kZXYtXHUwMDNlcV9yeFtNVF9SWFFfTVNEVV9QQUdFX0JBTkQxXS53ZWQgPSBcdTAwMjZtZGV2LVx1MDAzZW1taW8ud2VkO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYwNC1cdFx0XHRNVF9XRURfUlJPX1FfTVNEVV9QRygyKSB8IE1UX1FGTEFHX1dFRF9SUk9fRU47XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2MDU6XHRcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2bWRldi1cdTAwM2VtbWlvLndlZCkgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2MDY6XHRcdCAgICBtdGtfd2VkX2dldF9yeF9jYXBhKFx1MDAyNm1kZXYtXHUwMDNlbW1pby53ZWQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjA3LVx0XHRcdG1kZXYtXHUwMDNlcV9yeFtNVF9SWFFfTVNEVV9QQUdFX0JBTkQyXS53ZWQgPSBcdTAwMjZtZGV2LVx1MDAzZW1taW8ud2VkO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jPTYyMj12b2lkIG10Nzk5Nl9kbWFfcnJvX3N0YXJ0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjI2Olx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYyNy1cdFx0aXJxX21hc2sgPSBkZXYtXHUwMDNlbXQ3Ni5tbWlvLmlycW1hc2sgfFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYzMC1cdFx0bXQ3Nl93cihkZXYsIE1UX0lOVF9NQVNLX0NTUiwgaXJxX21hc2spO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjMxOlx0XHRtdGtfd2VkX2RldmljZV9zdGFydF9od19ycm8oXHUwMDI2ZGV2LVx1MDAzZW10NzYubW1pby53ZWQsIGlycV9tYXNrLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjMyLVx0XHRcdFx0XHQgICAgZmFsc2UpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jPTY2ND1pbnQgbXQ3OTk2X2RtYV9pbml0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02NjUte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjY2Olx0c3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQgPSBcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjY2NzpcdHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkX2hpZjIgPSBcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZF9oaWYyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjY4LVx0dTMyIHJ4X2Jhc2U7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzM5LVx0LyogcnggZGF0YSBxdWV1ZSBmb3IgYmFuZDAgYW5kIG10Nzk5NiBiYW5kMSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzQwOlx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWQpIFx1MDAyNlx1MDAyNiBtdGtfd2VkX2dldF9yeF9jYXBhKHdlZCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc0MS1cdFx0ZGV2LVx1MDAzZW10NzYucV9yeFtNVF9SWFFfTUFJTl0uZmxhZ3MgPSBNVF9XRURfUV9SWCgwKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03NTMtXHQvKiB0eCBmcmVlIG5vdGlmeSBldmVudCBmcm9tIFdBIGZvciBiYW5kMCAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzU0Olx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWQpIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzU1LVx0ICAgICgoaXNfbXQ3OTk2KFx1MDAyNmRldi1cdTAwM2VtdDc2KSBcdTAwMjZcdTAwMjYgIW10Nzk5Nl9oYXNfaHdycm8oZGV2KSkgfHxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03NzItXHR9IGVsc2Uge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzczOlx0XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc3NC1cdFx0XHRkZXYtXHUwMDNlbXQ3Ni5xX3J4W01UX1JYUV9UWEZSRUVfQkFORDBdLmZsYWdzID0gTVRfV0VEX1FfVFhGUkVFO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc4Ni1cdGlmICghbXQ3OTk2X2hhc193YShkZXYpIFx1MDAyNlx1MDAyNiBkZXYtXHUwMDNlaGlmMikge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6Nzg3Olx0XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc4OC1cdFx0XHRkZXYtXHUwMDNlbXQ3Ni5xX3J4W01UX1JYUV9UWEZSRUVfQkFORDFdLmZsYWdzID0gTVRfV0VEX1FfVFhGUkVFO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTgxMy1cdFx0ICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4MTQ6XHRcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUod2VkX2hpZjIpIFx1MDAyNlx1MDAyNiAhbXQ3OTk2X2hhc19od3JybyhkZXYpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MTUtXHRcdFx0ZGV2LVx1MDAzZW10NzYucV9yeFtNVF9SWFFfQkFORDJfV0FdLmZsYWdzID0gTVRfV0VEX1FfVFhGUkVFO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTgyOC1cdFx0cnhfYmFzZSA9IE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX0JBTkQxKSAmIzQzOyBoaWYxX29mcztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjgyOTpcdFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWQpIFx1MDAyNlx1MDAyNiBtdGtfd2VkX2dldF9yeF9jYXBhKHdlZCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTgzMC1cdFx0XHRkZXYtXHUwMDNlbXQ3Ni5xX3J4W01UX1JYUV9CQU5EMV0uZmxhZ3MgPSBNVF9XRURfUV9SWCgxKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04NDQtXHRcdFx0cnhfYmFzZSA9IE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX0JBTkQxX1dBKSAmIzQzOyBoaWYxX29mcztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjg0NTpcdFx0XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZF9oaWYyKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODQ2LVx0XHRcdFx0ZGV2LVx1MDAzZW10NzYucV9yeFtNVF9SWFFfQkFORDFfV0FdLmZsYWdzID1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04NjQtXHRcdFx0TVRfV0VEX1JST19RX0RBVEEoMCkgfCBNVF9RRkxBR19XRURfUlJPX0VOO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODY1Olx0XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZCkgXHUwMDI2XHUwMDI2IG10a193ZWRfZ2V0X3J4X2NhcGEod2VkKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTg2Ni1cdFx0XHRkZXYtXHUwMDNlbXQ3Ni5xX3J4W01UX1JYUV9SUk9fQkFORDBdLndlZCA9IHdlZDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04NzctXHRcdFx0XHRNVF9XRURfUlJPX1FfREFUQSgxKSB8IE1UX1FGTEFHX1dFRF9SUk9fRU47XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4Nzg6XHRcdFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWQpIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODc5Olx0XHRcdCAgICBtdGtfd2VkX2dldF9yeF9jYXBhKHdlZCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04ODAtXHRcdFx0XHRkZXYtXHUwMDNlbXQ3Ni5xX3J4W01UX1JYUV9SUk9fQkFORDFdLndlZCA9IHdlZDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04ODktXHRcdH0gZWxzZSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4OTA6XHRcdFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04OTEtXHRcdFx0XHQvKiB0eCBmcmVlIG5vdGlmeSBldmVudCBmcm9tIFdBIGZvciBiYW5kMCAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkxMy1cdFx0XHRcdE1UX1dFRF9SUk9fUV9EQVRBKDEpIHwgTVRfUUZMQUdfV0VEX1JST19FTjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjkxNDpcdFx0XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZCkgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo5MTU6XHRcdFx0ICAgIG10a193ZWRfZ2V0X3J4X2NhcGEod2VkKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkxNi1cdFx0XHRcdGRldi1cdTAwM2VtdDc2LnFfcnhbTVRfUlhRX1JST19CQU5EMl0ud2VkID0gd2VkO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkyOC1cdFx0XHQvKiB0eCBmcmVlIG5vdGlmeSBldmVudCBmcm9tIE1BQyBmb3IgYmFuZDIgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjkyOTpcdFx0XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZF9oaWYyKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTMwLVx0XHRcdFx0ZGV2LVx1MDAzZW10NzYucV9yeFtNVF9SWFFfVFhGUkVFX0JBTkQyXS5mbGFncyA9IE1UX1dFRF9RX1RYRlJFRTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz05NjA9dm9pZCBtdDc5OTZfZG1hX3Jlc2V0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGJvb2wgZm9yY2UpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTk0LVx0aWYgKG10Nzk5Nl9oYXNfaHdycm8oZGV2KSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjk5NTpcdCAgICAhbXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNmRldi1cdTAwM2VtdDc2Lm1taW8ud2VkKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTk5Ni1cdFx0bXQ3OTk2X3Jyb19tc2R1X3BhZ2VfbWFwX2ZyZWUoZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDAxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTAwMjpcdGlmIChkZXYtXHUwMDNlaGlmMiBcdTAwMjZcdTAwMjYgbXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNmRldi1cdTAwM2VtdDc2Lm1taW8ud2VkX2hpZjIpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTAwMzpcdFx0bXRrX3dlZF9kZXZpY2VfZG1hX3Jlc2V0KFx1MDAyNmRldi1cdTAwM2VtdDc2Lm1taW8ud2VkX2hpZjIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTAwNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEwMDU6XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNmRldi1cdTAwM2VtdDc2Lm1taW8ud2VkKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEwMDY6XHRcdG10a193ZWRfZGV2aWNlX2RtYV9yZXNldChcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDA3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwMjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMDI3Olx0XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNmRldi1cdTAwM2VtdDc2Lm1taW8ud2VkKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTAyOC1cdFx0XHRpZiAobXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHEpIHx8XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTA0MC1cdG10NzZfZm9yX2VhY2hfcV9yeChcdTAwMjZkZXYtXHUwMDNlbXQ3NiwgaSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTA0MTpcdFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZCkgXHUwMDI2XHUwMDI2IGZvcmNlIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTA0Mi1cdFx0ICAgIChtdDc2X3F1ZXVlX2lzX3dlZF9ycm9faW5kKFx1MDAyNmRldi1cdTAwM2VtdDc2LnFfcnhbaV0pIHx8XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTQ3Nz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjQ3ODptdDc5OTZfaW5pdF93aXBoeShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDc5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDkyLVx0aHctXHUwMDNlbmV0ZGV2X2ZlYXR1cmVzID0gTkVUSUZfRl9SWENTVU07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NDkzOlx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWQpIHx8IG10NzZfbnB1X2RldmljZV9hY3RpdmUobWRldikpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDk0LVx0XHRody1cdTAwM2VuZXRkZXZfZmVhdHVyZXMgfD0gTkVUSUZfRl9IV19UQztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9NjgyPXN0YXRpYyBpbnQgbXQ3OTk2X3JlZ2lzdGVyX3BoeShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBlbnVtIG10NzZfYmFuZF9pZCBiYW5kKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy02ODctXHRpbnQgcmV0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjY4ODpcdHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkID0gXHUwMDI2ZGV2LVx1MDAzZW10NzYubW1pby53ZWQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNjg5LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy03NTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NzYwOlx0aWYgKHdlZCA9PSBcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZF9oaWYyIFx1MDAyNlx1MDAyNiBtdGtfd2VkX2RldmljZV9hY3RpdmUod2VkKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTc2MS1cdFx0bXQ3Nl93cihkZXYsIE1UX0lOVF9QQ0lFMV9NQVNLX0NTUiwgTVRfSU5UX1RYX1JYX0RPTkVfRVhUKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo3NjI6XHRcdG10a193ZWRfZGV2aWNlX3N0YXJ0KFx1MDAyNmRldi1cdTAwM2VtdDc2Lm1taW8ud2VkX2hpZjIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNzYzLVx0XHRcdFx0ICAgICBNVF9JTlRfVFhfUlhfRE9ORV9FWFQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz04MjU9c3RhdGljIHZvaWQgbXQ3OTk2X3Jyb19od19pbml0X3YzKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtODI2LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo4Mjc6XHRzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZCA9IFx1MDAyNmRldi1cdTAwM2VtdDc2Lm1taW8ud2VkO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTgyOC1cdHUzMiBzZXNzaW9uX2lkO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy04MzMtI2lmZGVmIENPTkZJR19ORVRfTUVESUFURUtfU09DX1dFRFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjgzNDpcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUod2VkKSBcdTAwMjZcdTAwMjYgbXRrX3dlZF9nZXRfcnhfY2FwYSh3ZWQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtODM1LVx0XHR3ZWQtXHUwMDNld2xhbi5pbmRfY21kLndpbl9zaXplID1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtODQ4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjg0OTpcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUod2VkKSBcdTAwMjZcdTAwMjYgbXRrX3dlZF9nZXRfcnhfY2FwYSh3ZWQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtODUwLVx0XHRtdDc2X3dyKGRldiwgTVRfUlJPX0lORF9DTURfU0lHTkFUVVJFX0JBU0UwLCAweDE1MDEwZTAwKTtcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAwNjo1NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjYyOQoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDU4NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBXb3J0aEZ1enppbmcgUGF0Y2ggZm9yIG10a193ZWQqKgoKT2theSwgbGV0IG1lIGJyZWFrIHRoaXMgZG93bi4gVGhpcyBgbXRrX3dlZGAgZHJpdmVyIGlzIHBhcnQgb2YgTWVkaWF0ZWsmIzM5O3MgV0VEIG9mZmxvYWQgZW5naW5lLiBJIGtub3cgaXQmIzM5O3MgdXNlZCB3aXRoIHRoZWlyIFdpRmkgZHJpdmVycywgc3BlY2lmaWNhbGx5IHRoaW5ncyBsaWtlIGBtdDc5MTVgIGFuZCBgbXQ3OTk2YCwgd2hpY2ggYXJlIFBDSWUgZGV2aWNlcy4gSSBqdXN0IGNvbmZpcm1lZCBgbXQ3OTE1YCBpcyBpbmRlZWQgYSBQQ0kgZHJpdmVyLCBzZWVpbmcgdGhlIGBtdDc5MTVfcGNpX3Byb2JlYCBmdW5jdGlvbiBpbiBpdHMgUENJLXNwZWNpZmljIGNvZGUuCgpOb3csIHRoZSBjcnVjaWFsIHF1ZXN0aW9uOiBjYW4gc3RhbmRhcmQgUUVNVSBlbXVsYXRlIHRoZSBNVDc5MTU/IE5vLCBpdCBjYW4mIzM5O3QuIFRoaXMgaXMgd2hlcmUgdGhhdCAmIzM0O1dvcnRoRnV6emluZz1mYWxzZSYjMzQ7IGZsYWcgY29tZXMgaW50byBwbGF5LiBUaGUgcHJvbXB0IG1lbnRpb25zIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlcnMgdGhhdCByZXF1aXJlIHJlYWwgaGFyZHdhcmUsIGFuZCAqYmluZ28qLCBgbXQ3OTE1YCBpcyBwcmVjaXNlbHkgdGhhdDogYSBNZWRpYXRlayBXaUZpIFBDSWUgZHJpdmVyLiBJdCYjMzk7cyBub3QgbGlrZSBgbWFjODAyMTFfaHdzaW1gLCB3aGljaCBpcyBkZXNpZ25lZCBmb3IgZW11bGF0aW9uLiBgbXQ3OTE1YCBpbnRlcmFjdHMgZGlyZWN0bHkgd2l0aCByZWFsIGhhcmR3YXJlLgoKVGhlIG5leHQgcXVlc3Rpb246IGNhbiBzeXprYWxsZXIgZnV6eiBpdD8gU3l6a2FsbGVyIGhhcyBpdHMgYHN5el84MDIxMV8uLi5gIHN5c2NhbGxzLCBidXQgdGhvc2UgbW9zdGx5IGRlYWwgd2l0aCB0aGUgZ2VuZXJpYyBtYWM4MDIxMSBzdGFjay4gVGhleSBkb24mIzM5O3QgcmVhY2ggZGVlcGx5IGludG8gdGhlIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciB1bmxlc3MsIGFzIEkgbWVudGlvbmVkLCBpdCBoYXMgYSBzaW11bGF0aW9uIGNvbXBvbmVudC4gSG93ZXZlciwgU3l6a2FsbGVyICpkb2VzKiBoYXZlIFBDSSBmdXp6aW5nIGNhcGFiaWxpdGllcywgYW5kIHRoYXQmIzM5O3MgaW50ZXJlc3RpbmcuIEl0IGNhbiBpbmplY3QgUENJIGRldmljZXMsIHNvIGl0IGNvdWxkIHBvdGVudGlhbGx5IHJlYWNoIHRoZSBgbXQ3OTE1YCBkcml2ZXIuIEJ1dCBkb2VzIGl0IGdvIGRlZXAgZW5vdWdoLCBzcGVjaWZpY2FsbHkgaW50byB0aGUgZHJpdmVyJiMzOTtzIHJpbmcgc2V0dXAsIHdoaWNoIGlzIHdoYXQgdGhlIHBhdGNoIG1vZGlmaWVzPwoKVGhlIHBhdGNoIHRhcmdldHMgYG10a193ZWRfd2RtYV90eF9yaW5nX3NldHVwYCBhbmQgYG10a193ZWRfc3RhcnRgIHdpdGhpbiBgbXRrX3dlZC5jYC4gVGhpcyBpcyB3aGVyZSB0aGUgY29yZSBvZiBteSBhc3Nlc3NtZW50IGxpZXMuIFNpbmNlIHRoaXMgZHJpdmVyIGlzIGNvbXBpbGVkIHVuZGVyIGBDT05GSUdfTkVUX01FRElBVEVLX1NPQ19XRURgLCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb24gaGFzIHRvIGJlIGNvbnNpZGVyZWQuIFN5emthbGxlciYjMzk7cyBQQ0kgZnV6emluZyAqbWlnaHQqIGJlIGFibGUgdG8gcmVhY2ggaXQsIGlmIGl0JiMzOTtzIGNvbmZpZ3VyZWQgYW5kIHRoZSBlbXVsYXRpb24gb2YgUENJIGlzIGdvb2QgZW5vdWdoLiBIb3dldmVyLCBJIGhhdmUgZG91YnRzIHRoYXQsIGV2ZW4gd2l0aCB0aGUgUENJIGVtdWxhdGlvbiBhbmQgZnV6emluZyBjYXBhYmlsaXRpZXMsIHN5emthbGxlciB3aWxsIGJlIGFibGUgdG8gdGFyZ2V0IHRoaXMgZHJpdmVyLCBhcyBpdCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0kgZGV2aWNlLCBhbmQgSSBzdXNwZWN0IGl0IHdpbGwgZmFpbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMDY6NTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE5FVF9NRURJQVRFS19TT0NfV0VEJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL0tjb25maWc9OD1pZiBORVRfVkVORE9SX01FRElBVEVLXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9LY29uZmlnLTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9LY29uZmlnOjEwOmNvbmZpZyBORVRfTUVESUFURUtfU09DX1dFRFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvS2NvbmZpZy0xMS1cdGRlcGVuZHMgb24gQVJDSF9NRURJQVRFSyB8fCBDT01QSUxFX1RFU1RcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMDY6NTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzc4NzUKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBzdW1tYXJ5LCBhcyB0aGUgZXhwZXJ0OgoKKipEZWx2aW5nIGludG8gdGhlIE1lZGlhdGVrIEV0aGVybmV0IENvbmZpZ3VyYXRpb24qKgoKQWxyaWdodCwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGUgY29yZSBjb25maWd1cmF0aW9uIGZvciBNZWRpYXRlayBFdGhlcm5ldCBkcml2ZXJzLiBJJiMzOTttIGdvaW5nIHRvIHB1bGwgdXAgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL0tjb25maWdgIGFuZCB6ZXJvIGluIGFyb3VuZCBsaW5lIDEwLiBJIHN1c3BlY3QgdGhpcyB3aWxsIGdpdmUgbWUgdGhlIHRvcC1sZXZlbCBjb25maWd1cmF0aW9uIG9wdGlvbnMsIHRoZSBjb3JlIGRlcGVuZGVuY2llcywgb3IgcGVyaGFwcyBldmVuIHRoZSBhcmNoaXRlY3R1cmUgc2VsZWN0aW9uLiBJJiMzOTttIGxvb2tpbmcgZm9yIHRoZSBmb3VuZGF0aW9uYWwgYnVpbGRpbmcgYmxvY2tzIC0gd2hhdCBmZWF0dXJlcyBhcmUgZW5hYmxlZCBieSBkZWZhdWx0LCB3aGF0IGZhbWlsaWVzIGFyZSBzdXBwb3J0ZWQsIGFuZCB3aGljaCBvbmVzIGFyZSBsaWtlbHkgdG8gbmVlZCBzcGVjaWFsIGF0dGVudGlvbi4gQmFzZWQgb24gcGFzdCBleHBlcmllbmNlLCB0aGlzIEtjb25maWcgZmlsZSBzaG91bGQgaWxsdW1pbmF0ZSB0aGUgc3RydWN0dXJlIG9mIHRoZSBNZWRpYXRlayBldGhlcm5ldCBkcml2ZXIgZWNvc3lzdGVtLCB3aGljaCBoZWxwcyBtZSBpbW1lZGlhdGVseSBnYWluIGNvbnRleHQgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIGRyaXZlciBmZWF0dXJlcy4gTGV0JiMzOTtzIHNlZSB3aGF0JiMzOTtzIHRoZXJlLi4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDA2OjU2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMzAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuICAgMjpcdGNvbmZpZyBORVRfVkVORE9SX01FRElBVEVLXG4gICAzOlx0XHRib29sIFwmIzM0O01lZGlhVGVrIGRldmljZXNcJiMzNDtcbiAgIDQ6XHRcdGRlcGVuZHMgb24gQVJDSF9NRURJQVRFSyB8fCBBUkNIX0FJUk9IQSB8fCBTT0NfTVQ3NjIxIHx8IFNPQ19NVDc2MjAgfHwgQ09NUElMRV9URVNUXG4gICA1Olx0XHRoZWxwXG4gICA2Olx0XHQgIElmIHlvdSBoYXZlIGEgTWVkaWF0ZWsgU29DIHdpdGggZXRoZXJuZXQsIHNheSBZLlxuICAgNzpcdFxuICAgODpcdGlmIE5FVF9WRU5ET1JfTUVESUFURUtcbiAgIDk6XHRcbiAgMTA6XHRjb25maWcgTkVUX01FRElBVEVLX1NPQ19XRURcbiAgMTE6XHRcdGRlcGVuZHMgb24gQVJDSF9NRURJQVRFSyB8fCBDT01QSUxFX1RFU1RcbiAgMTI6XHRcdGRlZl9ib29sIE5FVF9NRURJQVRFS19TT0MgIT0gblxuICAxMzpcdFxuICAxNDpcdGNvbmZpZyBORVRfTUVESUFURUtfU09DXG4gIDE1Olx0XHR0cmlzdGF0ZSBcJiMzNDtNZWRpYVRlayBTb0MgR2lnYWJpdCBFdGhlcm5ldCBzdXBwb3J0XCYjMzQ7XG4gIDE2Olx0XHRkZXBlbmRzIG9uIE5FVF9EU0EgfHwgIU5FVF9EU0FcbiAgMTc6XHRcdHNlbGVjdCBQSU5DVFJMXG4gIDE4Olx0XHRzZWxlY3QgUEhZTElOS1xuICAxOTpcdFx0c2VsZWN0IERJTUxJQlxuICAyMDpcdFx0c2VsZWN0IEdFTkVSSUNfQUxMT0NBVE9SXG4gIDIxOlx0XHRzZWxlY3QgUEFHRV9QT09MXG4gIDIyOlx0XHRzZWxlY3QgUEFHRV9QT09MX1NUQVRTXG4gIDIzOlx0XHRzZWxlY3QgUENTX01US19MWU5YSVxuICAyNDpcdFx0c2VsZWN0IFJFR01BUF9NTUlPXG4gIDI1Olx0XHRoZWxwXG4gIDI2Olx0XHQgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIHRoZSBnaWdhYml0IGV0aGVybmV0IE1BQ3MgaW4gdGhlXG4gIDI3Olx0XHQgIE1lZGlhVGVrIFNvQyBmYW1pbHkuXG4gIDI4Olx0XG4gIDI5Olx0Y29uZmlnIE5FVF9NRURJQVRFS19TVEFSX0VNQUNcbiAgMzA6XHRcdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIFNUQVIgRXRoZXJuZXQgTUFDIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMDY6NTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzg1MjMKCQkJCQkJCW91dHB1dDogOTYKCQkJCQkJCXRob3VnaHRzOiA1OTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqV29ydGhGdXp6aW5nPWZhbHNlOiBNZWRpYVRlayBTb0MgRXRoZXJuZXQvV2lGaSBPZmZsb2FkIERyaXZlcioqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBgTkVUX01FRElBVEVLX1NPQ19XRURgIGlzIGRlZmluZWQgYXMgYSBgZGVmX2Jvb2xgLCBtZWFuaW5nIGl0JiMzOTtzIGNvbmRpdGlvbmFsLiBJdCBib2lscyBkb3duIHRvIHdoZXRoZXIgYE5FVF9NRURJQVRFS19TT0NgIGlzICpub3QqIGVxdWFsIHRvICYjMzk7biYjMzk7LiBUaGlzIHBvaW50cyB0byBhIHBsYXRmb3JtIGRyaXZlciwgc3BlY2lmaWNhbGx5IGZvciBNZWRpYVRlayBTb0NzIGFuZCBHaWdhYml0IEV0aGVybmV0IHN1cHBvcnQuIFBsYXRmb3JtIGRyaXZlcnMgdXN1YWxseSBhcmVuJiMzOTt0IGlkZWFsIGZvciBzdGFuZGFyZCBRRU1VIGZ1enppbmcgdW5sZXNzIHRoZXJlJiMzOTtzIGEgc3BlY2lmaWMgbWFjaGluZSB0eXBlIGRlZmluZWQgZm9yIHRoZW0uCgpUaGUgY29kZSBpbiBxdWVzdGlvbiBpcyB3aXRoaW4gYG10a193ZWQuY2AsIHRoZSBXaXJlbGVzcyBFdGhlcm5ldCBEaXNwYXRjaGVyLiBUaGUgY29tbWl0IG1lc3NhZ2UgY2xhcmlmaWVzIHRoYXQgaXQmIzM5O3MgZGVhbGluZyB3aXRoIGEgc3BlY2lmaWMgaGFyZHdhcmUgcXVpcmsgaW4gdGhlIE1UNzk4NiAoRmlsb2dpYyA4MzApIFNvQzsgaXQmIzM5O3MgYSBoYXJkd2FyZSBvZmZsb2FkIGVuZ2luZS4gVGhlIGZpeCBjb25jZXJucyBhbGxvY2F0aW9uIG9mIHJlY2VpdmUgYW5kIHRyYW5zbWl0IHJpbmdzIGFuZCBXRE1BIGNoYW5uZWxzLCBzcGVjaWZpY2FsbHkgbmVlZGluZyB0byBhbGxvY2F0ZSBhbiBleHRyYSBgdHhfd2RtYWAgY2hhbm5lbCBmb3IgV0VEIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS4gVGhpcyBpcyB2ZXJ5IGhhcmR3YXJlLXNwZWNpZmljLgoKTXkgaW5pdGlhbCB0aG91Z2h0IHdhcyBtYXliZSBzeXprYWxsZXIgY291bGQgaW5qZWN0IGEgZGV2aWNlIHRyZWUgbm9kZSBmb3IgcGxhdGZvcm0gZGV2aWNlcy4gSG93ZXZlciwgdGhhdCYjMzk7cyBsaW1pdGVkLCBhbmQgd2l0aG91dCB0aGUgYWN0dWFsIGhhcmR3YXJlIG9yIGEgcm9idXN0IG1vY2ssIGl0JiMzOTtzIHVubGlrZWx5IHRvIGdldCBhbnl3aGVyZS4KCkhvbGQgb24sIHRoZSBwcm9tcHQgcHJvdmlkZXMgdGhlIGtleTogJiMzNDtSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zIGNvZGUgaW4gdmVuZG9yLXNwZWNpZmljLi4uIGRyaXZlcnMgdGhhdCByZXF1aXJlIHBoeXNpY2FsLi4uIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiYjMzQ7IFRoaXMgZGlyZWN0bHkgYXBwbGllcy4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBTb0MgRXRoZXJuZXQvV2lGaSBvZmZsb2FkIGRyaXZlciEgSXQgKnJlcXVpcmVzKiBNZWRpYVRlayBTb0MgaGFyZHdhcmUuCgpKdXN0IHRvIGJlIGFic29sdXRlbHkgc3VyZSwgbGV0JiMzOTtzIHNlZSBpZiBRRU1VIGV2ZW4gKnByZXRlbmRzKiB0byBoYXZlIE1UNzk4NiBzdXBwb3J0LiBJdCBkb2VzIGVtdWxhdGUgc29tZSBNZWRpYVRlayBib2FyZHMsIGJ1dCBhIHF1aWNrIGNoZWNrIHJldmVhbHMgdGhhdCBzdGFuZGFyZCBRRU1VIGRvZXMgbm90IHN1cHBvcnQgTVQ3OTg2IG9yIGFueSBzaW1pbGFyIGJvYXJkLiBFdmVuIGlmIGl0ICpkaWQqLCB0aGUgYG10a193ZWRgIGlzIGEgc3BlY2lhbGl6ZWQgaGFyZHdhcmUgb2ZmbG9hZCBlbmdpbmU7IGl0JiMzOTtzIGV4dHJlbWVseSB1bmxpa2VseSB0byBiZSBlbXVsYXRlZCBhY2N1cmF0ZWx5LgoKVGhlcmVmb3JlLCBiZWNhdXNlIHRoaXMgY2hhbmdlIHRhcmdldHMgYSBoYXJkd2FyZS1zcGVjaWZpYyBvZmZsb2FkIGRyaXZlciBmb3IgTWVkaWFUZWsgU29DcyBub3QgZW11bGF0ZWQgaW4gdGhlIHN0YW5kYXJkIFFFTVUgZnV6emluZyBlbnZpcm9ubWVudCwgSSYjMzk7bSByZXR1cm5pbmcgYFdvcnRoRnV6emluZz1mYWxzZWAuIFRoZSBwYXRjaCBtb2RpZmllcyBNZWRpYVRlayYjMzk7cyBXRUQgZHJpdmVyIHdoaWNoIHJlbGllcyBvbiB0aGUgcGh5c2ljYWwgaGFyZHdhcmUgYW5kIGlzbiYjMzk7dCBhY2Nlc3NpYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMDY6NTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVkaWFUZWsgV2lyZWxlc3MgRXRoZXJuZXQgRGlzcGF0Y2hlciAoV0VEKSBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgb2ZmbG9hZCBlbmdpbmUgZm9yIE1lZGlhVGVrIFNvQ3MgKGUuZy4sIE1UNzk4NikuIFRoaXMgY29kZSByZXF1aXJlcyBwaHlzaWNhbCBNZWRpYVRlayBoYXJkd2FyZSBhbmQgaXMgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIHVzZWQgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVkaWFUZWsgV2lyZWxlc3MgRXRoZXJuZXQgRGlzcGF0Y2hlciAoV0VEKSBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgb2ZmbG9hZCBlbmdpbmUgZm9yIE1lZGlhVGVrIFNvQ3MgKGUuZy4sIE1UNzk4NikuIFRoaXMgY29kZSByZXF1aXJlcyBwaHlzaWNhbCBNZWRpYVRlayBoYXJkd2FyZSBhbmQgaXMgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIHVzZWQgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjZUMDY6NTU6NTYuOTY4MTMyOTNaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MzUyMzI3MTc5NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIFdpcmVsZXNzIEV0aGVybmV0IERpc3BhdGNoZXIgKFdFRCkgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIG9mZmxvYWQgZW5naW5lIGZvciBNZWRpYVRlayBTb0NzIChlLmcuLCBNVDc5ODYpLiBUaGlzIGNvZGUgcmVxdWlyZXMgcGh5c2ljYWwgTWVkaWFUZWsgaGFyZHdhcmUgYW5kIGlzIG5vdCByZWFjaGFibGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSB1c2VkIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjZUMDY6NTU6NTYuOTY4MTQwNjJaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYwNzQ5MTc4OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDY1ZjQwNWRjYzliOGY4MDI2N2E4N2ViYTNlMTY0YmFjZjA1NWNkY2FcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFN1biBKdWwgMjYgMDY6NTU6NTUgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jXFxuaW5kZXggMTBkOWJlYWFlMzcyMTUuLmI0OGFiYWQ5OTVkN2FjIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuY1xcbkBAIC0xOTM4LDcgKzE5MzgsNyBAQCBtdGtfd2VkX3dkbWFfdHhfcmluZ19zZXR1cChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgaW50IGlkeCwgaW50IHNpemUsXFxuIFxcdHdkbWFfdzMyKGRldiwgTVRLX1dETUFfUklOR19UWChpZHgpICsgTVRLX1dFRF9SSU5HX09GU19DUFVfSURYLCAwKTtcXG4gXFx0d2RtYV93MzIoZGV2LCBNVEtfV0RNQV9SSU5HX1RYKGlkeCkgKyBNVEtfV0VEX1JJTkdfT0ZTX0RNQV9JRFgsIDApO1xcbiBcXG4tXFx0aWYgKHJlc2V0KVxcbitcXHRpZiAoIW10a193ZWRfaXNfdjNfb3JfZ3JlYXRlcihkZXYtXFx1MDAzZWh3KSBcXHUwMDI2XFx1MDAyNiByZXNldClcXG4gXFx0XFx0bXRrX3dlZF9yaW5nX3Jlc2V0KHdkbWEsIE1US19XRURfV0RNQV9SSU5HX1NJWkUsIHRydWUpO1xcbiBcXG4gXFx0aWYgKCFpZHgpICB7XFxuQEAgLTIzMzQsNiArMjMzNCwxMyBAQCBtdGtfd2VkX3N0YXJ0KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2LCB1MzIgaXJxX21hc2spXFxuIFxcdFxcdGlmICghZGV2LVxcdTAwM2VyeF93ZG1hW2ldLmRlc2MpXFxuIFxcdFxcdFxcdG10a193ZWRfd2RtYV9yeF9yaW5nX3NldHVwKGRldiwgaSwgMTYsIGZhbHNlKTtcXG4gXFxuK1xcdC8qXFxuK1xcdCAqIG5vbi1EQkRDIE1UNzk4NiBhbGxvY2F0ZXMgb25seSByeF9yaW5nWzFdIGFuZCB0eF93ZG1hWzFdIGR1cmluZyBzZXR1cFxcbitcXHQgKiBidXQgdHhfd2RtYVswXSBpcyBhbHNvIG5lZWRlZCBmb3IgV0VEIHRvIGZ1bmN0aW9uLlxcbitcXHQgKi9cXG4rXFx0aWYgKG10a193ZWRfaXNfdjIoZGV2LVxcdTAwM2VodykgXFx1MDAyNlxcdTAwMjYgIWRldi1cXHUwMDNlcnhfcmluZ1swXS5kZXNjKVxcbitcXHRcXHRtdGtfd2VkX3dkbWFfdHhfcmluZ19zZXR1cChkZXYsIDAsIE1US19XRURfV0RNQV9SSU5HX1NJWkUsICEhZGV2LVxcdTAwM2V0eF93ZG1hWzBdLmRlc2MpO1xcbitcXG4gXFx0aWYgKGRldi1cXHUwMDNld2xhbi5od19ycm8pIHtcXG4gXFx0XFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIE1US19XRURfUlhfUEFHRV9RVUVVRVM7IGkrKykge1xcbiBcXHRcXHRcXHR1MzIgYWRkciA9IE1US19XRURfUlJPX01TRFVfUEdfQ1RSTDAoaSkgK1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwNjo1NTo1Ny41NzYyNzA5MzlaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo1MjkxNTEyNzc1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIFdpcmVsZXNzIEV0aGVybmV0IERpc3BhdGNoZXIgKFdFRCkgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIG9mZmxvYWQgZW5naW5lIGZvciBNZWRpYVRlayBTb0NzIChlLmcuLCBNVDc5ODYpLiBUaGlzIGNvZGUgcmVxdWlyZXMgcGh5c2ljYWwgTWVkaWFUZWsgaGFyZHdhcmUgYW5kIGlzIG5vdCByZWFjaGFibGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSB1c2VkIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNjVmNDA1ZGNjOWI4ZjgwMjY3YTg3ZWJhM2UxNjRiYWNmMDU1Y2RjYVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gSnVsIDI2IDA2OjU1OjU1IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jXG5pbmRleCAxMGQ5YmVhYWUzNzIxNS4uYjQ4YWJhZDk5NWQ3YWMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuY1xuQEAgLTE5MzgsNyArMTkzOCw3IEBAIG10a193ZWRfd2RtYV90eF9yaW5nX3NldHVwKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2LCBpbnQgaWR4LCBpbnQgc2l6ZSxcbiBcdHdkbWFfdzMyKGRldiwgTVRLX1dETUFfUklOR19UWChpZHgpICsgTVRLX1dFRF9SSU5HX09GU19DUFVfSURYLCAwKTtcbiBcdHdkbWFfdzMyKGRldiwgTVRLX1dETUFfUklOR19UWChpZHgpICsgTVRLX1dFRF9SSU5HX09GU19ETUFfSURYLCAwKTtcbiBcbi1cdGlmIChyZXNldClcbitcdGlmICghbXRrX3dlZF9pc192M19vcl9ncmVhdGVyKGRldi1cdTAwM2VodykgXHUwMDI2XHUwMDI2IHJlc2V0KVxuIFx0XHRtdGtfd2VkX3JpbmdfcmVzZXQod2RtYSwgTVRLX1dFRF9XRE1BX1JJTkdfU0laRSwgdHJ1ZSk7XG4gXG4gXHRpZiAoIWlkeCkgIHtcbkBAIC0yMzM0LDYgKzIzMzQsMTMgQEAgbXRrX3dlZF9zdGFydChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgdTMyIGlycV9tYXNrKVxuIFx0XHRpZiAoIWRldi1cdTAwM2VyeF93ZG1hW2ldLmRlc2MpXG4gXHRcdFx0bXRrX3dlZF93ZG1hX3J4X3Jpbmdfc2V0dXAoZGV2LCBpLCAxNiwgZmFsc2UpO1xuIFxuK1x0LypcbitcdCAqIG5vbi1EQkRDIE1UNzk4NiBhbGxvY2F0ZXMgb25seSByeF9yaW5nWzFdIGFuZCB0eF93ZG1hWzFdIGR1cmluZyBzZXR1cFxuK1x0ICogYnV0IHR4X3dkbWFbMF0gaXMgYWxzbyBuZWVkZWQgZm9yIFdFRCB0byBmdW5jdGlvbi5cbitcdCAqL1xuK1x0aWYgKG10a193ZWRfaXNfdjIoZGV2LVx1MDAzZWh3KSBcdTAwMjZcdTAwMjYgIWRldi1cdTAwM2VyeF9yaW5nWzBdLmRlc2MpXG4rXHRcdG10a193ZWRfd2RtYV90eF9yaW5nX3NldHVwKGRldiwgMCwgTVRLX1dFRF9XRE1BX1JJTkdfU0laRSwgISFkZXYtXHUwMDNldHhfd2RtYVswXS5kZXNjKTtcbitcbiBcdGlmIChkZXYtXHUwMDNld2xhbi5od19ycm8pIHtcbiBcdFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgTVRLX1dFRF9SWF9QQUdFX1FVRVVFUzsgaSsrKSB7XG4gXHRcdFx0dTMyIGFkZHIgPSBNVEtfV0VEX1JST19NU0RVX1BHX0NUUkwwKGkpICtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDA2OjU1OjU3LjU3NjI3MTk5OVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ1NTUyODgwMTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgTWVkaWF0ZWsgV0VEIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCB0b3VjaGVzIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmNgLiBTcGVjaWZpY2FsbHksIGl0IHNlZW1zIHRvIGJlIG1vZGlmeWluZyBgbXRrX3dlZF93ZG1hX3R4X3Jpbmdfc2V0dXBgIGFuZCBgbXRrX3dlZF9zdGFydGAuIFRoYXQgdGVsbHMgbWUgdGhpcyBpcyBhIE1lZGlhdGVrIFdFRCAoV2lyZWxlc3MgRXRoZXJuZXQgRGlzcGF0Y2hlcikgZHJpdmVyLiBNeSBpbW1lZGlhdGUgY29uY2VybiwgYXMgYWx3YXlzIHdoZW4gSSBzZWUgYSBkcml2ZXIgY2hhbmdlLCBpcyBob3cgYWNjZXNzaWJsZSBpdCBpcyBmb3IgZnV6emluZy4gQ2FuIEkgZXZlbiAqcmVhY2gqIHRoaXMgaW4gYSBzdGFuZGFyZCBRRU1VIHNldHVwPyBNZWRpYXRlayBTb0MgRXRoZXJuZXQgZHJpdmVycyBhcmUgb2Z0ZW4gYSBwYWluLiBUaGV5IHVzdWFsbHkgcmVxdWlyZSBzcGVjaWZpYyBlbXVsYXRpb24gb3IsIGF0IGJlc3QsIGEgUENJIHBhc3N0aHJvdWdoIG9yIGdvb2QgZW11bGF0aW9uLCB3aGljaCBpc24ndCBhbHdheXMgdGhlIGVhc2llc3QgdG8gc2V0IHVwLlxuXG5BbHJpZ2h0LCBsZXQncyBzdGVwIGJhY2suIEl0J3MgaW4gdGhlIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9gIGRpcmVjdG9yeSwgc28gdGhhdCdzIGEgZ29vZCBzdGFydGluZyBwb2ludC4gSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIGlmIGl0J3MgYSBwbGF0Zm9ybSBkcml2ZXIgb3IgUENJLiBBIHBsYXRmb3JtIGRyaXZlciBpcyBnZW5lcmFsbHkgZ29pbmcgdG8gYmUgZWFzaWVyIHRvIHdvcmsgd2l0aCwgYXQgbGVhc3QgaW4gc29tZSBlbXVsYXRlZCBlbnZpcm9ubWVudHMuIExldCdzIGRvIGEgcXVpY2sgYGdyZXBgIGZvciBgbXRrX3dlZGAgd2l0aGluIHRoYXQgZGlyZWN0b3J5LCBhbmQgc2VlIHdoYXQgdGhlIGRldmljZSBiaW5kaW5nIGxvb2tzIGxpa2UuIFRoYXQgd2lsbCB0ZWxsIG1lIHdoZXJlIEkgc3RhbmQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0NTEsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOTAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwNjo1NjowMi4xMzE1NjE4NloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NjE1NzQ1NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdGtfd2VkXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDE4NzMgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL01ha2VmaWxlPTc9bXRrX2V0aC15IDo9IG10a19ldGhfc29jLm8gbXRrX2V0aF9wYXRoLm8gbXRrX3BwZS5vIG10a19wcGVfZGVidWdmcy5vIG10a19wcGVfb2ZmbG9hZC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvTWFrZWZpbGU6ODptdGtfZXRoLSQoQ09ORklHX05FVF9NRURJQVRFS19TT0NfV0VEKSArPSBtdGtfd2VkLm8gbXRrX3dlZF9tY3UubyBtdGtfd2VkX3dvLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9NYWtlZmlsZS05LWlmZGVmIENPTkZJR19ERUJVR19GU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL01ha2VmaWxlOjEwOm10a19ldGgtJChDT05GSUdfTkVUX01FRElBVEVLX1NPQ19XRUQpICs9IG10a193ZWRfZGVidWdmcy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvTWFrZWZpbGUtMTEtZW5kaWZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9NYWtlZmlsZToxMjpvYmotJChDT05GSUdfTkVUX01FRElBVEVLX1NPQ19XRUQpICs9IG10a193ZWRfb3BzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9NYWtlZmlsZS0xMy1vYmotJChDT05GSUdfTkVUX01FRElBVEVLX1NUQVJfRU1BQykgKz0gbXRrX3N0YXJfZW1hYy5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jLTMyLSNpbmNsdWRlIFxcXCJtdGtfZXRoX3NvYy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmM6MzM6I2luY2x1ZGUgXFxcIm10a193ZWQuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jLTM0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYz00NDE2PXN0YXRpYyB2b2lkIG10a19wZW5kaW5nX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYy00NDI2LVxcdG10a19wcmVwYXJlX2Zvcl9yZXNldChldGgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmM6NDQyNzpcXHRtdGtfd2VkX2ZlX3Jlc2V0KCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYy00NDI4LVxcdC8qIFJ1biBhZ2FpbiByZXNldCBwcmVsaW1pbmFyeSBjb25maWd1cmF0aW9uIGluIG9yZGVyIHRvIGF2b2lkIGFueVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYy00NDc1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmM6NDQ3NjpcXHRtdGtfd2VkX2ZlX3Jlc2V0X2NvbXBsZXRlKCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYy00NDc3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYz01MDk1PXN0YXRpYyBpbnQgbXRrX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jLTUyMjUtXFx0XFx0XFx0d2RtYV9waHkgPSByZXMgPyByZXMtXFx1MDAzZXN0YXJ0ICsgd2RtYV9iYXNlIDogMDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jOjUyMjY6XFx0XFx0XFx0bXRrX3dlZF9hZGRfaHcobnAsIGV0aCwgZXRoLVxcdTAwM2ViYXNlICsgd2RtYV9iYXNlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmMtNTIyNy1cXHRcXHRcXHRcXHQgICAgICAgd2RtYV9waHksIGkpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYy01MzY0LWVycl93ZWRfZXhpdDpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jOjUzNjU6XFx0bXRrX3dlZF9leGl0KCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYy01MzY2LWVycl9kZXN0cm95X3NnbWlpOlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYz01MzcyPXN0YXRpYyB2b2lkIG10a19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmMtNTM4Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jOjUzODc6XFx0bXRrX3dlZF9leGl0KCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYy01Mzg4LVxcdG10a19od19kZWluaXQoZXRoKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19wcGVfb2ZmbG9hZC5jLTEzLSNpbmNsdWRlIFxcXCJtdGtfZXRoX3NvYy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19wcGVfb2ZmbG9hZC5jOjE0OiNpbmNsdWRlIFxcXCJtdGtfd2VkLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3BwZV9vZmZsb2FkLmMtMTUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfcHBlX29mZmxvYWQuYz0yNjc9bXRrX2Zsb3dfb2ZmbG9hZF9yZXBsYWNlKHN0cnVjdCBtdGtfZXRoICpldGgsIHN0cnVjdCBmbG93X2Nsc19vZmZsb2FkICpmLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3BwZV9vZmZsb2FkLmMtNDg3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19wcGVfb2ZmbG9hZC5jOjQ4ODpcXHRpZiAod2VkX2luZGV4IFxcdTAwM2U9IDAgXFx1MDAyNlxcdTAwMjYgKGVyciA9IG10a193ZWRfZmxvd19hZGQod2VkX2luZGV4KSkgXFx1MDAzYyAwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19wcGVfb2ZmbG9hZC5jLTQ4OS1cXHRcXHRyZXR1cm4gZXJyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3BwZV9vZmZsb2FkLmMtNTE1LVxcdGlmICh3ZWRfaW5kZXggXFx1MDAzZT0gMClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfcHBlX29mZmxvYWQuYzo1MTY6XFx0ICAgIG10a193ZWRfZmxvd19yZW1vdmUod2VkX2luZGV4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfcHBlX29mZmxvYWQuYy01MTctXFx0cmV0dXJuIGVycjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19wcGVfb2ZmbG9hZC5jPTUyMT1tdGtfZmxvd19vZmZsb2FkX2Rlc3Ryb3koc3RydWN0IG10a19ldGggKmV0aCwgc3RydWN0IGZsb3dfY2xzX29mZmxvYWQgKmYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfcHBlX29mZmxvYWQuYy01MzMtXFx0aWYgKGVudHJ5LVxcdTAwM2V3ZWRfaW5kZXggXFx1MDAzZT0gMClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfcHBlX29mZmxvYWQuYzo1MzQ6XFx0XFx0bXRrX3dlZF9mbG93X3JlbW92ZShlbnRyeS1cXHUwMDNld2VkX2luZGV4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfcHBlX29mZmxvYWQuYy01MzUtXFx0a2ZyZWUoZW50cnkpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTE1LSNpbmNsdWRlIFxcdTAwM2NsaW51eC9kZWJ1Z2ZzLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjE2OiNpbmNsdWRlIFxcdTAwM2NsaW51eC9zb2MvbWVkaWF0ZWsvbXRrX3dlZC5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xNy0jaW5jbHVkZSBcXHUwMDNjbmV0L2Zsb3dfb2ZmbG9hZC5oXFx1MDAzZVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTE5LSNpbmNsdWRlIFxcXCJtdGtfZXRoX3NvYy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoyMDojaW5jbHVkZSBcXFwibXRrX3dlZC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0yMS0jaW5jbHVkZSBcXFwibXRrX3BwZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoyMjojaW5jbHVkZSBcXFwibXRrX3dlZF93by5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0yMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy01MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NTE6c3RhdGljIHN0cnVjdCBtdGtfd2VkX2h3ICpod19saXN0WzNdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy01Mi1zdGF0aWMgREVGSU5FX01VVEVYKGh3X2xvY2spO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy01My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NTQ6c3RydWN0IG10a193ZWRfZmxvd19ibG9ja19wcml2IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NTU6XFx0c3RydWN0IG10a193ZWRfaHcgKmh3O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy01Ni1cXHRzdHJ1Y3QgbmV0X2RldmljZSAqZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTU4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo1OTpzdGF0aWMgY29uc3Qgc3RydWN0IG10a193ZWRfc29jX2RhdGEgbXQ3NjIyX2RhdGEgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTYwLVxcdC5yZWdtYXAgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNzEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjcyOnN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX3dlZF9zb2NfZGF0YSBtdDc5ODZfZGF0YSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNzMtXFx0LnJlZ21hcCA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy04NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6ODU6c3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfd2VkX3NvY19kYXRhIG10Nzk4OF9kYXRhID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy04Ni1cXHQucmVnbWFwID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTk0LVxcdH0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjk1OlxcdC50eF9yaW5nX2Rlc2Nfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgbXRrX3dlZF9ibV9kZXNjKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtOTYtXFx0LndkbWFfZGVzY19zaXplID0gMiAqIHNpemVvZihzdHJ1Y3QgbXRrX3dkbWFfZGVzYyksXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9OTk9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTAwOndlZF9tMzIoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYsIHUzMiByZWcsIHUzMiBtYXNrLCB1MzIgdmFsKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMDEte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTEwNT1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMDY6d2VkX3NldChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgdTMyIHJlZywgdTMyIG1hc2spXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEwNy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9MTExPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExMjp3ZWRfY2xyKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2LCB1MzIgcmVnLCB1MzIgbWFzaylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTEzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMTc9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTE4OndkbWFfbTMyKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2LCB1MzIgcmVnLCB1MzIgbWFzaywgdTMyIHZhbClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTE5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMjM9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTI0OndkbWFfc2V0KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2LCB1MzIgcmVnLCB1MzIgbWFzaylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTI1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMjk9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTMwOndkbWFfY2xyKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2LCB1MzIgcmVnLCB1MzIgbWFzaylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTMxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMzU9c3RhdGljIHUzMlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMzY6d2lmaV9yMzIoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYsIHUzMiByZWcpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEzNy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9MTQxPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjE0Mjp3aWZpX3czMihzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgdTMyIHJlZywgdTMyIHZhbClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTQzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xNDc9c3RhdGljIHUzMlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxNDg6bXRrX3dlZF9yZWFkX3Jlc2V0KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xNDkte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTE1Mz1zdGF0aWMgdTMyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjE1NDptdGtfd2RtYV9yZWFkX3Jlc2V0KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xNTUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTE1OT1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxNjA6bXRrX3dkbWFfdjNfcnhfcmVzZXQoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTE2MS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTYzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxNjQ6XFx0aWYgKCFtdGtfd2VkX2lzX3YzX29yX2dyZWF0ZXIoZGV2LVxcdTAwM2VodykpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTE2NS1cXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9MjQzPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MjQ0Om10a193ZG1hX3J4X3Jlc2V0KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0yNDUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTI3MD1zdGF0aWMgdTMyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjI3MTptdGtfd2VkX2NoZWNrX2J1c3koc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYsIHUzMiByZWcsIHUzMiBtYXNrKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0yNzIte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTI3Nj1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjI3NzptdGtfd2VkX3BvbGxfYnVzeShzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgdTMyIHJlZywgdTMyIG1hc2spXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTI3OC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMjgyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoyODM6XFx0cmV0dXJuIHJlYWRfcG9sbF90aW1lb3V0KG10a193ZWRfY2hlY2tfYnVzeSwgdmFsLCAhdmFsLCBzbGVlcCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMjg0LVxcdFxcdFxcdFxcdCB0aW1lb3V0LCBmYWxzZSwgZGV2LCByZWcsIG1hc2spO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTI4Nz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoyODg6bXRrX3dkbWFfdjNfdHhfcmVzZXQoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTI4OS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMjkxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoyOTI6XFx0aWYgKCFtdGtfd2VkX2lzX3YzX29yX2dyZWF0ZXIoZGV2LVxcdTAwM2VodykpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTI5My1cXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9MzY1PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjM2NjptdGtfd2RtYV90eF9yZXNldChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMzY3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0zODU9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6Mzg2Om10a193ZWRfcmVzZXQoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYsIHUzMiBtYXNrKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0zODcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTM5MC1cXHR3ZWRfdzMyKGRldiwgTVRLX1dFRF9SRVNFVCwgbWFzayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjM5MTpcXHRpZiAocmVhZHhfcG9sbF90aW1lb3V0KG10a193ZWRfcmVhZF9yZXNldCwgZGV2LCBzdGF0dXMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTM5Mi1cXHRcXHRcXHQgICAgICAgIShzdGF0dXMgXFx1MDAyNiBtYXNrKSwgMCwgMTAwMCkpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9Mzk2PXN0YXRpYyB1MzJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6Mzk3Om10a193ZWRfd29fcmVhZF9zdGF0dXMoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTM5OC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9NDAyPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjQwMzptdGtfd2VkX3dvX3Jlc2V0KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy00MDQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo0MDU6XFx0c3RydWN0IG10a193ZWRfd28gKndvID0gZGV2LVxcdTAwM2Vody1cXHUwMDNld2VkX3dvO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy00MDYtXFx0dTggc3RhdGUgPSBNVEtfV0VEX1dPX1NUQVRFX0RJU0FCTEU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDEwLVxcdG10a193ZG1hX3R4X3Jlc2V0KGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjQxMTpcXHRtdGtfd2VkX3Jlc2V0KGRldiwgTVRLX1dFRF9SRVNFVF9XRUQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy00MTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjQxMzpcXHRpZiAobXRrX3dlZF9tY3Vfc2VuZF9tc2cod28sIE1US19XRURfTU9EVUxFX0lEX1dPLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy00MTQtXFx0XFx0XFx0XFx0IE1US19XRURfV09fQ01EX0NIQU5HRV9TVEFURSwgXFx1MDAyNnN0YXRlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTQxNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NDE4OlxcdGlmIChyZWFkeF9wb2xsX3RpbWVvdXQobXRrX3dlZF93b19yZWFkX3N0YXR1cywgZGV2LCB2YWwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTQxOS1cXHRcXHRcXHQgICAgICAgdmFsID09IE1US19XRURfV09JRl9ESVNBQkxFX0RPTkUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDQ0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo0NDU6dm9pZCBtdGtfd2VkX2ZlX3Jlc2V0KHZvaWQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTQ0Ni17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDUxLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBUlJBWV9TSVpFKGh3X2xpc3QpOyBpKyspIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NDUyOlxcdFxcdHN0cnVjdCBtdGtfd2VkX2h3ICpodyA9IGh3X2xpc3RbaV07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjQ1MzpcXHRcXHRzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDU0LVxcdFxcdGludCBlcnI7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDcxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo0NzI6dm9pZCBtdGtfd2VkX2ZlX3Jlc2V0X2NvbXBsZXRlKHZvaWQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTQ3My17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDc4LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBUlJBWV9TSVpFKGh3X2xpc3QpOyBpKyspIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NDc5OlxcdFxcdHN0cnVjdCBtdGtfd2VkX2h3ICpodyA9IGh3X2xpc3RbaV07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjQ4MDpcXHRcXHRzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDgxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTQ5NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NDk1OnN0YXRpYyBzdHJ1Y3QgbXRrX3dlZF9odyAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjQ5NjptdGtfd2VkX2Fzc2lnbihzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDk3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NDk4OlxcdHN0cnVjdCBtdGtfd2VkX2h3ICpodztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNDk5LVxcdGludCBpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTUwOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NTA5OlxcdFxcdGlmIChtdGtfd2VkX2lzX3YxKGh3KSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNTEwLVxcdFxcdFxcdHJldHVybiBOVUxMO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTUyOD1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjUyOTptdGtfd2VkX2Ftc2R1X2J1ZmZlcl9hbGxvYyhzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNTMwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NTMxOlxcdHN0cnVjdCBtdGtfd2VkX2h3ICpodyA9IGRldi1cXHUwMDNlaHc7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjUzMjpcXHRzdHJ1Y3QgbXRrX3dlZF9hbXNkdSAqd2VkX2Ftc2R1O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy01MzMtXFx0aW50IGk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTUzNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NTM1OlxcdGlmICghbXRrX3dlZF9pc192M19vcl9ncmVhdGVyKGh3KSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNTM2LVxcdFxcdHJldHVybiAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTU3Mj1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo1NzM6bXRrX3dlZF9hbXNkdV9mcmVlX2J1ZmZlcihzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNTc0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NTc1OlxcdHN0cnVjdCBtdGtfd2VkX2Ftc2R1ICp3ZWRfYW1zZHUgPSBkZXYtXFx1MDAzZWh3LVxcdTAwM2V3ZWRfYW1zZHU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTU3Ni1cXHRpbnQgaTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz01ODk9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo1OTA6bXRrX3dlZF9hbXNkdV9pbml0KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy01OTEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo1OTI6XFx0c3RydWN0IG10a193ZWRfYW1zZHUgKndlZF9hbXNkdSA9IGRldi1cXHUwMDNlaHctXFx1MDAzZXdlZF9hbXNkdTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNTkzLVxcdGludCBpLCByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNjExLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo2MTI6XFx0cmV0ID0gbXRrX3dlZF9wb2xsX2J1c3koZGV2LCBNVEtfV0VEX0FNU0RVX1NUQV9JTkZPLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy02MTMtXFx0XFx0XFx0XFx0TVRLX1dFRF9BTVNEVV9TVEFfSU5GT19ET19JTklUKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy02MjQtXFx0d2VkX3NldChkZXYsIE1US19XRURfQU1TRFVfUFNFLCBNVEtfV0VEX0FNU0RVX1BTRV9SRVNFVCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjYyNTpcXHRyZXQgPSBtdGtfd2VkX3BvbGxfYnVzeShkZXYsIE1US19XRURfTU9OX0FNU0RVX1FNRU1fU1RTMSwgQklUKDI5KSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTYyNi1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9NjQwPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NjQxOm10a193ZWRfdHhfYnVmZmVyX2FsbG9jKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy02NDIte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTY0NS1cXHRpbnQgdG9rZW4gPSBkZXYtXFx1MDAzZXdsYW4udG9rZW5fc3RhcnQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjY0NjpcXHRzdHJ1Y3QgbXRrX3dlZF9idWYgKnBhZ2VfbGlzdDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNjQ3LVxcdGRtYV9hZGRyX3QgZGVzY19waHlzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTY0OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NjUwOlxcdGlmICghbXRrX3dlZF9pc192M19vcl9ncmVhdGVyKGRldi1cXHUwMDNlaHcpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTY1MS1cXHRcXHRyaW5nX3NpemUgPSBkZXYtXFx1MDAzZXdsYW4ubmJ1ZiBcXHUwMDI2IH4oTVRLX1dFRF9CVUZfUEVSX1BBR0UgLSAxKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy03MDMtXFx0XFx0XFx0ZGVzYy1cXHUwMDNlYnVmMCA9IGNwdV90b19sZTMyKGJ1Zl9waHlzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NzA0OlxcdFxcdFxcdGlmICghbXRrX3dlZF9pc192M19vcl9ncmVhdGVyKGRldi1cXHUwMDNlaHcpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTcwNS1cXHRcXHRcXHRcXHR1MzIgdHhkX3NpemU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNzEwLVxcdFxcdFxcdFxcdGN0cmwgPSBGSUVMRF9QUkVQKE1US19XRE1BX0RFU0NfQ1RSTF9MRU4wLCB0eGRfc2l6ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjcxMTpcXHRcXHRcXHRcXHRpZiAobXRrX3dlZF9pc192MShkZXYtXFx1MDAzZWh3KSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNzEyLVxcdFxcdFxcdFxcdFxcdGN0cmwgfD0gTVRLX1dETUFfREVTQ19DVFJMX0xBU1RfU0VHMSB8XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9NzM3PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjczODptdGtfd2VkX2ZyZWVfdHhfYnVmZmVyKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy03Mzkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo3NDA6XFx0c3RydWN0IG10a193ZWRfYnVmICpwYWdlX2xpc3QgPSBkZXYtXFx1MDAzZXR4X2J1Zl9yaW5nLnBhZ2VzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo3NDE6XFx0c3RydWN0IG10a193ZWRfaHcgKmh3ID0gZGV2LVxcdTAwM2VodztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtNzQyLVxcdGludCBpLCBwYWdlX2lkeCA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9NzcxPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6NzcyOm10a193ZWRfaHdycm9fYnVmZmVyX2FsbG9jKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy03NzMte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy03NzQtXFx0aW50IG5fcGFnZXMgPSBNVEtfV0VEX1JYX1BHX0JNX0NOVCAvIE1US19XRURfUlhfQlVGX1BFUl9QQUdFO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo3NzU6XFx0c3RydWN0IG10a193ZWRfYnVmICpwYWdlX2xpc3Q7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjc3NjpcXHRzdHJ1Y3QgbXRrX3dlZF9ibV9kZXNjICpkZXNjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy03NzctXFx0ZG1hX2FkZHJfdCBkZXNjX3BoeXM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9ODM0PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6ODM1Om10a193ZWRfcnhfYnVmZmVyX2FsbG9jKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy04MzYte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo4Mzc6XFx0c3RydWN0IG10a193ZWRfYm1fZGVzYyAqZGVzYztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtODM4LVxcdGRtYV9hZGRyX3QgZGVzY19waHlzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTg1MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6ODUxOlxcdHJldHVybiBtdGtfd2VkX2h3cnJvX2J1ZmZlcl9hbGxvYyhkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy04NTItfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTg1ND1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo4NTU6bXRrX3dlZF9od3Jyb19mcmVlX2J1ZmZlcihzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtODU2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6ODU3OlxcdHN0cnVjdCBtdGtfd2VkX2J1ZiAqcGFnZV9saXN0ID0gZGV2LVxcdTAwM2Vod19ycm8ucGFnZXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjg1ODpcXHRzdHJ1Y3QgbXRrX3dlZF9ibV9kZXNjICpkZXNjID0gZGV2LVxcdTAwM2Vod19ycm8uZGVzYztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtODU5LVxcdGludCBpLCBwYWdlX2lkeCA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9ODg5PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjg5MDptdGtfd2VkX2ZyZWVfcnhfYnVmZmVyKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy04OTEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo4OTI6XFx0c3RydWN0IG10a193ZWRfYm1fZGVzYyAqZGVzYyA9IGRldi1cXHUwMDNlcnhfYnVmX3JpbmcuZGVzYztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtODkzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTkwMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6OTAxOlxcdG10a193ZWRfaHdycm9fZnJlZV9idWZmZXIoZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtOTAyLX1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz05MDQ9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6OTA1Om10a193ZWRfaHdycm9faW5pdChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtOTA2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6OTA3OlxcdGlmICghbXRrX3dlZF9nZXRfcnhfY2FwYShkZXYpIHx8ICFkZXYtXFx1MDAzZXdsYW4uaHdfcnJvKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy05MDgtXFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTkyND1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo5MjU6bXRrX3dlZF9yeF9idWZmZXJfaHdfaW5pdChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtOTI2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy05MzUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjkzNjpcXHRtdGtfd2VkX2h3cnJvX2luaXQoZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtOTM3LX1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz05Mzk9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6OTQwOm10a193ZWRfZnJlZV9yaW5nKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2LCBzdHJ1Y3QgbXRrX3dlZF9yaW5nICpyaW5nKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy05NDEte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTk0OT1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo5NTA6bXRrX3dlZF9mcmVlX3J4X3JpbmdzKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy05NTEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo5NTI6XFx0bXRrX3dlZF9mcmVlX3J4X2J1ZmZlcihkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo5NTM6XFx0bXRrX3dlZF9mcmVlX3JpbmcoZGV2LCBcXHUwMDI2ZGV2LVxcdTAwM2Vycm8ucmluZyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTk1NC19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9OTU2PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjk1NzptdGtfd2VkX2ZyZWVfdHhfcmluZ3Moc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTk1OC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtOTYxLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBUlJBWV9TSVpFKGRldi1cXHUwMDNldHhfcmluZyk7IGkrKylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6OTYyOlxcdFxcdG10a193ZWRfZnJlZV9yaW5nKGRldiwgXFx1MDAyNmRldi1cXHUwMDNldHhfcmluZ1tpXSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTk2My1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRShkZXYtXFx1MDAzZXJ4X3dkbWEpOyBpKyspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjk2NDpcXHRcXHRtdGtfd2VkX2ZyZWVfcmluZyhkZXYsIFxcdTAwMjZkZXYtXFx1MDAzZXJ4X3dkbWFbaV0pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy05NjUtfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTk2Nz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzo5Njg6bXRrX3dlZF9zZXRfZXh0X2ludChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldiwgYm9vbCBlbilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtOTY5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz05OTc9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6OTk4Om10a193ZWRfc2V0XzUxMl9zdXBwb3J0KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2LCBib29sIGVuYWJsZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtOTk5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTAwMDpcXHRpZiAoIW10a193ZWRfaXNfdjIoZGV2LVxcdTAwM2VodykpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEwMDEtXFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTEwMTQ9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMDE1Om10a193ZWRfY2hlY2tfd2ZkbWFfcnhfZmlsbChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTAxNjpcXHRcXHRcXHQgICAgc3RydWN0IG10a193ZWRfcmluZyAqcmluZylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTAxNy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9MTAzNz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMDM4Om10a193ZWRfZG1hX2Rpc2FibGUoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEwMzkte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEwNTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEwNTU6XFx0aWYgKG10a193ZWRfaXNfdjEoZGV2LVxcdTAwM2VodykpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTA1Ni1cXHRcXHRyZWdtYXBfd3JpdGUoZGV2LVxcdTAwM2Vody1cXHUwMDNlbWlycm9yLCBkZXYtXFx1MDAzZWh3LVxcdTAwM2VpbmRleCAqIDQsIDApO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEwNjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEwNjk6XFx0XFx0aWYgKG10a193ZWRfaXNfdjNfb3JfZ3JlYXRlcihkZXYtXFx1MDAzZWh3KSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMDcwOlxcdFxcdCAgICBtdGtfd2VkX2dldF9yeF9jYXBhKGRldikpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTA3MS1cXHRcXHRcXHR3ZG1hX2NscihkZXYsIE1US19XRE1BX1BSRUZfVFhfQ0ZHLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEwNzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEwNzg6XFx0bXRrX3dlZF9zZXRfNTEyX3N1cHBvcnQoZGV2LCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEwNzktfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTEwODE9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTA4MjptdGtfd2VkX3N0b3Aoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEwODMte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMDg0OlxcdG10a193ZWRfZG1hX2Rpc2FibGUoZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTA4NTpcXHRtdGtfd2VkX3NldF9leHRfaW50KGRldiwgZmFsc2UpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMDg2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEwOTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEwOTI6XFx0aWYgKCFtdGtfd2VkX2dldF9yeF9jYXBhKGRldikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEwOTMtXFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTEwOTk9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTEwMDptdGtfd2VkX2RlaW5pdChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTEwMS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExMDI6XFx0bXRrX3dlZF9zdG9wKGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTExMDMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTEwOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTExMDpcXHRpZiAobXRrX3dlZF9pc192MShkZXYtXFx1MDAzZWh3KSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTExMS1cXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTExNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTExODpcXHRpZiAobXRrX3dlZF9pc192M19vcl9ncmVhdGVyKGRldi1cXHUwMDNlaHcpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTExMTktXFx0XFx0d2VkX2NscihkZXYsIE1US19XRURfQ1RSTCwgTVRLX1dFRF9DVFJMX1RYX0FNU0RVX0VOKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMTI3PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExMjg6X19tdGtfd2VkX2RldGFjaChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTEyOS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExMzA6XFx0c3RydWN0IG10a193ZWRfaHcgKmh3ID0gZGV2LVxcdTAwM2VodztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTEzMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTEzMjpcXHRtdGtfd2VkX2RlaW5pdChkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMTMzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMTM0LVxcdG10a193ZG1hX3J4X3Jlc2V0KGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExMzU6XFx0bXRrX3dlZF9yZXNldChkZXYsIE1US19XRURfUkVTRVRfV0VEKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTEzNjpcXHRtdGtfd2VkX2Ftc2R1X2ZyZWVfYnVmZmVyKGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExMzc6XFx0bXRrX3dlZF9mcmVlX3R4X2J1ZmZlcihkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMTM4OlxcdG10a193ZWRfZnJlZV90eF9yaW5ncyhkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMTM5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMTQwOlxcdGlmIChtdGtfd2VkX2dldF9yeF9jYXBhKGRldikpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTE0MS1cXHRcXHRpZiAoaHctXFx1MDAzZXdlZF93bylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTE0MjpcXHRcXHRcXHRtdGtfd2VkX3dvX3Jlc2V0KGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExNDM6XFx0XFx0bXRrX3dlZF9mcmVlX3J4X3JpbmdzKGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTExNDQtXFx0XFx0aWYgKGh3LVxcdTAwM2V3ZWRfd28pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExNDU6XFx0XFx0XFx0bXRrX3dlZF93b19kZWluaXQoaHcpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMTQ2LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMTY3PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjExNjg6bXRrX3dlZF9kZXRhY2goc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTExNjkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMTcwLVxcdG11dGV4X2xvY2soXFx1MDAyNmh3X2xvY2spO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMTcxOlxcdF9fbXRrX3dlZF9kZXRhY2goZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTE3Mi1cXHRtdXRleF91bmxvY2soXFx1MDAyNmh3X2xvY2spO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTExNzU9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTE3NjptdGtfd2VkX2J1c19pbml0KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMTc3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMTgxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMTgyOlxcdFxcdGlmIChtdGtfd2VkX2lzX3YyKGRldi1cXHUwMDNlaHcpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTExODMtXFx0XFx0XFx0c3RydWN0IHJlZ21hcCAqcmVncztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMjI4PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEyMjk6bXRrX3dlZF9zZXRfd3BkbWEoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEyMzAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEyMzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEyMzM6XFx0aWYgKG10a193ZWRfaXNfdjEoZGV2LVxcdTAwM2VodykpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTIzNC1cXHRcXHR3ZWRfdzMyKGRldiwgTVRLX1dFRF9XUERNQV9DRkdfQkFTRSwgIGRldi1cXHUwMDNld2xhbi53cGRtYV9waHlzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMjM3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMjM4OlxcdG10a193ZWRfYnVzX2luaXQoZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTIzOS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMjQ0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMjQ1OlxcdGlmICghbXRrX3dlZF9nZXRfcnhfY2FwYShkZXYpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMjQ2LVxcdFxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMjUwLVxcdFxcdGRldi1cXHUwMDNld2xhbi53cGRtYV9yeFswXSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEyNTE6XFx0aWYgKG10a193ZWRfaXNfdjNfb3JfZ3JlYXRlcihkZXYtXFx1MDAzZWh3KSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTI1Mi1cXHRcXHR3ZWRfdzMyKGRldiwgZGV2LVxcdTAwM2Vody1cXHUwMDNlc29jLVxcdTAwM2VyZWdtYXAud3BkbWFfcnhfcmluZ1sxXSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0xMjY1PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEyNjY6bXRrX3dlZF9od19pbml0X2Vhcmx5KHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMjY3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMjcwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMjcxOlxcdG10a193ZWRfZGVpbml0KGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEyNzI6XFx0bXRrX3dlZF9yZXNldChkZXYsIE1US19XRURfUkVTRVRfV0VEKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTI3MzpcXHRtdGtfd2VkX3NldF93cGRtYShkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMjc0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMjc1OlxcdGlmICghbXRrX3dlZF9pc192M19vcl9ncmVhdGVyKGRldi1cXHUwMDNlaHcpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEyNzYtXFx0XFx0bWFzayB8PSBNVEtfV0VEX1dETUFfR0xPX0NGR19EWU5BTUlDX0RNQURfUkVDWUNMRSB8XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMTI4Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTI4MzpcXHRpZiAobXRrX3dlZF9pc192MShkZXYtXFx1MDAzZWh3KSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMjg0LVxcdFxcdHUzMiBvZmZzZXQgPSBkZXYtXFx1MDAzZWh3LVxcdTAwM2VpbmRleCA/IDB4MDQwMDA0MDAgOiAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTEzMTI9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMzEzOm10a193ZWRfcnJvX3JpbmdfYWxsb2Moc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYsIHN0cnVjdCBtdGtfd2VkX3JpbmcgKnJpbmcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEzMTQtXFx0XFx0ICAgICAgIGludCBzaXplKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTEzMjk9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMzMwOm10a193ZWRfcnJvX2FsbG9jKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMzMxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMzQxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoxMzQyOlxcdHJldHVybiBtdGtfd2VkX3Jyb19yaW5nX2FsbG9jKGRldiwgXFx1MDAyNmRldi1cXHUwMDNlcnJvLnJpbmcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEzNDMtXFx0XFx0XFx0XFx0ICAgICAgTVRLX1dFRF9SUk9fUVVFX0NOVCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9MTM0Nj1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjEzNDc6bXRrX3dlZF9ycm9fY2ZnKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMzQ4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM6MTM0OTpcXHRzdHJ1Y3QgbXRrX3dlZF93byAqd28gPSBkZXYtXFx1MDAzZWh3LVxcdTAwM2V3ZWRfd287XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTEzNTAtXFx0c3RydWN0IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0xMzcxLVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwNjo1NjowMi4yMTc3MjU1ODZaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4Njc0NTI3NDQ1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFzc2Vzc2luZyB0aGUgRnV6emFiaWxpdHkgb2YgdGhlIG10a193ZWQgRHJpdmVyKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBgbXRrX3dlZGAgZHJpdmVyLiBGcm9tIHRoZSBjb2RlLCBpdCBsb29rcyBsaWtlIGl0J3MgYSBoYXJkd2FyZSBkcml2ZXIgZm9yIE1lZGlhdGVrIFNvQ3MsIHNwZWNpZmljYWxseSB1c2luZyBmdW5jdGlvbnMgbGlrZSBgbXRrX3dlZF9pc192MihkZXYtXHUwMDNlaHcpYCBhbmQgYG10a193ZWRfaXNfdjNfb3JfZ3JlYXRlcihkZXYtXHUwMDNlaHcpYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBjYW4gd2UgZXZlbiBmdXp6IHRoaXMgaW4gUUVNVT8gTGV0J3MgZmlndXJlIG91dCB0aGUgZGV2aWNlIHR5cGUgZmlyc3Q7IGlzIGl0IGEgUENJIGRldmljZSBvciBhIHBsYXRmb3JtIGRldmljZT9cblxuQSBxdWljayBzZWFyY2ggaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmNgIHJldmVhbHMgdGhhdCBgbXRrX3Byb2JlYCBpcyBhIHBsYXRmb3JtIGRyaXZlciBwcm9iZS4gVGhhdCBtYWtlcyB0aGluZ3MgaW1tZWRpYXRlbHkgbW9yZSBjb21wbGljYXRlZC4gUGxhdGZvcm0gZHJpdmVycyBmb3IgTWVkaWF0ZWsgU29DcywgcGFydGljdWxhcmx5IHRob3NlIHRhcmdldGluZyBzcGVjaWZpYyBjaGlwcyBsaWtlIHRoZSBNVDc2MjIsIE1UNzk4Niwgb3IgTVQ3OTg4LCBhcmUgKm5vdCogdHlwaWNhbGx5IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG5cbldhaXQsIHRoaXMgc3BlY2lmaWMgcHJvYmxlbSBzdGF0ZW1lbnQgbWVudGlvbnMgc29tZXRoaW5nIGFib3V0IGRyaXZlcnMuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhpcyBkcml2ZXIgaXMgKmFjdHVhbGx5KiB3b3J0aCBmdXp6aW5nLiBJIHJlbWVtYmVyIHJlYWRpbmcgc29tZXRoaW5nIGFib3V0IHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIGJlaW5nIGV4cGxpY2l0bHkgZXhjbHVkZWQuICBEb2VzIHRoZSBleGNsdXNpb24gaW5jbHVkZSBwbGF0Zm9ybSBkcml2ZXJzIGZvciBzcGVjaWZpYyBTb0NzPyBCYXNlZCBvbiBteSBleHBlcmllbmNlLCBpdCB1c3VhbGx5IGRvZXM7IHRoZXNlIGtpbmRzIG9mIGRyaXZlcnMgY2FuJ3QgYmUgcHJvYmVkIGluIHN0YW5kYXJkIFFFTVUgdW5sZXNzIHRoZXJlJ3MgYSB2ZXJ5IHNwZWNpZmljIG1hY2hpbmUgdHlwZSwgbGlrZSBgcmFzcGkzYmAgb3IgYHZpcnRgLCB0aGF0IGhhcHBlbnMgdG8gZW11bGF0ZSB0aGUgcmVsZXZhbnQgTWVkaWF0ZWsgaGFyZHdhcmUuIFFFTVUgZGVmaW5pdGVseSBkb2Vzbid0IGVtdWxhdGUgTWVkaWF0ZWsgTVQ3OTg2L01UNzk4OCBFdGhlcm5ldC5cblxuT2theSwgbGV0IG1lIGRvdWJsZS1jaGVjayB0aG91Z2guIEl0J3MgYWx3YXlzIHdvcnRoIHZlcmlmeWluZyBhc3N1bXB0aW9ucy4gSXMgdGhlcmUgKmFueSogdmlydHVhbCBvciBlbXVsYXRlZCBNZWRpYXRlayBFdGhlcm5ldCBpbiBzdGFuZGFyZCBRRU1VIHRoYXQgY291bGQgcG9zc2libHkgbGVhZCB1cyB0byByZWFjaCB0aGlzIGRyaXZlcj9cblxuTm8sIHRoZSBhbnN3ZXIgaXMgc3RpbGwgbm8uIFN0YW5kYXJkIFFFTVUgZG9lc24ndCBlbXVsYXRlIE1lZGlhdGVrIEV0aGVybmV0LlxuXG5XYWl0LCBTeXprYWxsZXIgbWlnaHQgb2ZmZXIgYSB3YXkgaW4gaWYgaXQgdXNlcyBzb21ldGhpbmcgbGlrZSBgc3l6X21vdW50YCwgb3IgcGVyaGFwcyBzb21lIG90aGVyIG1ldGhvZC4gIEJ1dCB0aGlzICppcyogYSBwbGF0Zm9ybSBkZXZpY2UuIFdoaWxlIFN5emthbGxlciAqY2FuKiBmdXp6IHBsYXRmb3JtIGRldmljZXMsIGl0J3MgcmVsaWFudCBvbiBhIG1ldGhvZCB0byBpbmplY3QgZGV2aWNlIHRyZWUgbm9kZXMgb3Igc29tZSBvdGhlciBtZWFucyB0byBpbnN0YW50aWF0ZSB0aGUgZGV2aWNlLiBSZWFjaGluZyBoYXJkd2FyZS1zcGVjaWZpYyBwbGF0Zm9ybSBkcml2ZXIgY29kZSB3aXRob3V0IGVtdWxhdGlvbiBpcyBnZW5lcmFsbHkgZXh0cmVtZWx5IGRpZmZpY3VsdC4gVGhpcyBjb3VsZCBiZSBpbmNyZWRpYmx5IGRpZmZpY3VsdCB0byByZWFjaC5cblxuT2theSwgbGV0J3MgbG9vayBhdCByZWFjaGFiaWxpdHkuIFRoZSBwYXRjaCBtb2RpZmllcyBgbXRrX3dlZF93ZG1hX3R4X3Jpbmdfc2V0dXBgIGFuZCBgbXRrX3dlZF9zdGFydGAuIFRoYXQncyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIEJ1dCwgd2hlcmUgaXMgYG10a193ZWRfc3RhcnRgICpjYWxsZWQqIGZyb20/IEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjYWxsIGNoYWluIHRvIGFzc2VzcyB3aGV0aGVyIHdlIGNhbiByZWFzb25hYmx5IHRyaWdnZXIgdGhpcyBjb2RlIHBhdGguXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE2MTgyLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTA1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDA2OjU2OjEwLjg5MjI1NTQyMVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzA3MjgzNTM0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10a193ZWRfc3RhcnRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYz0yMTYwPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjIxNjE6bXRrX3dlZF9zdGFydF9od19ycm8oc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYsIHUzMiBpcnFfbWFzaywgYm9vbCByZXNldClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMjE2Mi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9MjMyNT1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoyMzI2Om10a193ZWRfc3RhcnQoc3RydWN0IG10a193ZWRfZGV2aWNlICpkZXYsIHUzMiBpcnFfbWFzaylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMjMyNy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmM9Mjc3OT12b2lkIG10a193ZWRfYWRkX2h3KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsIHN0cnVjdCBtdGtfZXRoICpldGgsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMjc4OC1cXHRcXHQubXNnX3VwZGF0ZSA9IG10a193ZWRfbWN1X21zZ191cGRhdGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjI3ODk6XFx0XFx0LnN0YXJ0ID0gbXRrX3dlZF9zdGFydCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMjc5MC1cXHRcXHQuc3RvcCA9IG10a193ZWRfc3RvcCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0yNzk4LVxcdFxcdC5zZXR1cF90YyA9IG10a193ZWRfc2V0dXBfdGMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jOjI3OTk6XFx0XFx0LnN0YXJ0X2h3X3JybyA9IG10a193ZWRfc3RhcnRfaHdfcnJvLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYy0yODAwLVxcdFxcdC5ycm9fcnhfcmluZ19zZXR1cCA9IG10a193ZWRfcnJvX3J4X3Jpbmdfc2V0dXAsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDA2OjU2OjEyLjU5OTU0NTUzNVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ3NDc0NDI1OTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBgbXRrX3dlZF9vcHNgIFN0cnVjdHVyZSoqXG5cblJpZ2h0LCBgbXRrX3dlZF9vcHNgLi4uIHRoYXQgcmluZ3MgYSBiZWxsLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGl0J3MgZGVmaW5pdGVseSByZWdpc3RlcmVkIGluIGBtdGtfd2VkX29wc2AsIHdoaWNoIHNjcmVhbXMgTWVkaWF0ZWsgV2lGaSBkcml2ZXIgaW52b2x2ZW1lbnQsIHByb2JhYmx5IGFsb25nIHRoZSBsaW5lcyBvZiB0aGUgYG10NzZgIHNlcmllcy4gVGhpcyBzdWdnZXN0cyBpdCdzIGxpa2VseSBhIGtleSBpbnRlcmZhY2Ugb3IgYSBzZXQgb2Ygb3BlcmF0aW9uYWwgZnVuY3Rpb25zIGZvciBoYXJkd2FyZSBhY2NlbGVyYXRpb24gd2l0aGluIHRoZWlyIFdpRmkgc29sdXRpb25zLiBUaGUgbmFtZSBkZWZpbml0ZWx5IGxlYW5zIGluIHRoZSBkaXJlY3Rpb24gb2Ygc29tZXRoaW5nIHJlbGF0ZWQgdG8gXCJXaXJlbGVzcyBFbmhhbmNlZCBEYXRhXCIgb3BlcmF0aW9ucywgb3IgcGVyaGFwcyBcIldpcmVsZXNzIEVuY3J5cHRpb24gYW5kIERlY3J5cHRpb25cIiwgd2hpY2ggd291bGQgYmUgc3RhbmRhcmQgZm9yIHRoaXMgY29udGV4dC5cblxuTXkgbmV4dCBpbW1lZGlhdGUgcXVlc3Rpb24g4oCTIG9yIHJhdGhlciwgdGhlICpmaXJzdCogc3RlcCBpbiBteSBtZW50YWwgZGVidWdnaW5nIHByb2Nlc3Mg4oCTIGlzLCAqd2hlcmUqIGlzIHRoaXMgYG10a193ZWRfb3BzYCBzdHJ1Y3R1cmUgYWN0dWFsbHkgKnVzZWQqPyBJIG5lZWQgdG8gdHJhY2sgZG93biBhbGwgdGhlIGluc3RhbmNlcyB3aGVyZSBpdCdzIHJlZmVyZW5jZWQsIHRoZSBjYWxscyBvciBhc3NpZ25tZW50cyB0aGF0IGludGVyZmFjZSB3aXRoIGl0LiBJJ2QgbmVlZCB0byBsb29rIGF0IHRoZSBkZWZpbml0aW9ucyB3aXRoaW4gdGhlIHJlbGV2YW50IGRyaXZlciBtb2R1bGVzLCBpZGVhbGx5IHRyYWNpbmcgdGhlIGV4ZWN1dGlvbiBmbG93LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgcmVsYXRpb25zaGlwIHRvIHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlIGFjY2VsZXJhdGlvbiBtZWNoYW5pc21zLCBwcm9iYWJseSB3aXRoaW4gdGhlIG5ldHdvcmsgaW50ZXJmYWNlLiBGaW5kaW5nIGFsbCBvZiBpdHMgdXNlcyBpcyB3aGVyZSBJIHdvdWxkIHN0YXJ0LiBUaGlzIGlzIHRoZSBseW5jaHBpbiwgdGhlIGNydWNpYWwgcGllY2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE3ODM0LCJPdXRwdXRUb2tlbnMiOjI2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjZUMDY6NTY6MTcuMzQ2OTkxMDIzWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0MzQ2OTk5NzQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXRrX3dlZF9vcHNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL01ha2VmaWxlPTExPWVuZGlmXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvTWFrZWZpbGU6MTI6b2JqLSQoQ09ORklHX05FVF9NRURJQVRFS19TT0NfV0VEKSArPSBtdGtfd2VkX29wcy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvTWFrZWZpbGUtMTMtb2JqLSQoQ09ORklHX05FVF9NRURJQVRFS19TVEFSX0VNQUMpICs9IG10a19zdGFyX2VtYWMub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jPTI3Nzk9dm9pZCBtdGtfd2VkX2FkZF9odyhzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLCBzdHJ1Y3QgbXRrX2V0aCAqZXRoLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZC5jLTI3ODIte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWQuYzoyNzgzOlxcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX3dlZF9vcHMgd2VkX29wcyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkLmMtMjc4NC1cXHRcXHQuYXR0YWNoID0gbXRrX3dlZF9hdHRhY2gsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfd2VkX29wcy5jLTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3dlZF9vcHMuYzo3OmNvbnN0IHN0cnVjdCBtdGtfd2VkX29wcyBfX3JjdSAqbXRrX3NvY193ZWRfb3BzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a193ZWRfb3BzLmMtOC1FWFBPUlRfU1lNQk9MX0dQTChtdGtfc29jX3dlZF9vcHMpO1xcbi0tXFxuaW5jbHVkZS9saW51eC9zb2MvbWVkaWF0ZWsvbXRrX3dlZC5oPTg1PXN0cnVjdCBtdGtfd2VkX2RldmljZSB7XFxuaW5jbHVkZS9saW51eC9zb2MvbWVkaWF0ZWsvbXRrX3dlZC5oLTg2LSNpZmRlZiBDT05GSUdfTkVUX01FRElBVEVLX1NPQ19XRURcXG5pbmNsdWRlL2xpbnV4L3NvYy9tZWRpYXRlay9tdGtfd2VkLmg6ODc6XFx0Y29uc3Qgc3RydWN0IG10a193ZWRfb3BzICpvcHM7XFxuaW5jbHVkZS9saW51eC9zb2MvbWVkaWF0ZWsvbXRrX3dlZC5oLTg4LVxcdHN0cnVjdCBkZXZpY2UgKmRldjtcXG4tLVxcbmluY2x1ZGUvbGludXgvc29jL21lZGlhdGVrL210a193ZWQuaC0xOTQtXFxuaW5jbHVkZS9saW51eC9zb2MvbWVkaWF0ZWsvbXRrX3dlZC5oOjE5NTpzdHJ1Y3QgbXRrX3dlZF9vcHMge1xcbmluY2x1ZGUvbGludXgvc29jL21lZGlhdGVrL210a193ZWQuaC0xOTYtXFx0aW50ICgqYXR0YWNoKShzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKmRldikgX19yZWxlYXNlcyhSQ1UpO1xcbi0tXFxuaW5jbHVkZS9saW51eC9zb2MvbWVkaWF0ZWsvbXRrX3dlZC5oLTIyOS1cXG5pbmNsdWRlL2xpbnV4L3NvYy9tZWRpYXRlay9tdGtfd2VkLmg6MjMwOmV4dGVybiBjb25zdCBzdHJ1Y3QgbXRrX3dlZF9vcHMgX19yY3UgKm10a19zb2Nfd2VkX29wcztcXG5pbmNsdWRlL2xpbnV4L3NvYy9tZWRpYXRlay9tdGtfd2VkLmgtMjMxLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwNjo1NjoxOS43ODE3MDAyMzdaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzE0ODk0MjMyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgbXQ3NiBEcml2ZXIncyBXRUQgT3BlcmF0aW9ucyoqXG5cblJpZ2h0LCBzbyBJJ20gdGhpbmtpbmcgYWJvdXQgdGhlIGBtdGtfd2VkX29wc2Agc3RydWN0dXJlLiBJIGtub3cgaXQncyBmdW5kYW1lbnRhbCB0byB0aGUgb3BlcmF0aW9uIG9mIHRoZSBgbXQ3NmAgZHJpdmVyLiBNeSBpbW1lZGlhdGUgZ29hbCBpcyB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIHN0cnVjdHVyZSBpcyBhY3R1YWxseSB1c2VkIHdpdGhpbiB0aGF0IHNwZWNpZmljIGRyaXZlci5cblxuVGhlcmVmb3JlLCBJJ2xsIHVzZSBgZ3JlcGAgdG8gcXVpY2tseSBsb2NhdGUgYWxsIGluc3RhbmNlcyBvZiBgbXRrX3NvY193ZWRfb3BzYCB3aXRoaW4gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2YCBkaXJlY3RvcnkuIFRoaXMgc2hvdWxkIGdpdmUgbWUgYSBzb2xpZCBvdmVydmlldyBvZiBpdHMgcm9sZSBhbmQgaG93IGl0J3MgaW50ZWdyYXRlZCB3aXRoIHRoZSBicm9hZGVyIGBtdDc2YCBmcmFtZXdvcmsuIEkgZXhwZWN0IHRvIGZpbmQgaXRzIGRlY2xhcmF0aW9uLCBhc3NpZ25tZW50cywgYW5kIGNhbGxzLiBUaGlzIHRhcmdldGVkIGFwcHJvYWNoIHdpbGwgaG9wZWZ1bGx5IGV4cG9zZSB0aGUgZHJpdmVyJ3MgV0VEIGluaXRpYWxpemF0aW9uIGFuZCBpbnRlcmFjdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MTg4NDQsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwNjo1NjoyMy4wOTY1OTcxOTlaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0MTczNzUwNSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXRrX3NvY193ZWRfb3BzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwNjo1NjoyMy4yMzgzNTc2NDNaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzI5MTQxNzQ3OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOlxuXG4qKkRpZ2dpbmcgaW50byB0aGUgTWVkaWF0ZWsgV2lyZWxlc3MgRHJpdmVyKipcblxuT2theSwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhpcyBNZWRpYXRlayB3aXJlbGVzcyBkcml2ZXIgYmV0dGVyLiBTcGVjaWZpY2FsbHksIEknbSB0cnlpbmcgdG8gZmlndXJlIG91dCBzb21ldGhpbmcgcmVsYXRlZCB0byBgbXRrX3dlZGAuIExldCdzIGdldCByaWdodCB0byBpdC4gTXkgZmlyc3QgaW5zdGluY3QgaXMgdG8gZGl2ZSBpbnRvIHRoZSBjb2RlLiBHaXZlbiB3aGF0IEkga25vdyBhYm91dCBNZWRpYXRlaydzIHdpcmVsZXNzIG9mZmVyaW5ncywgdGhlIGxvZ2ljYWwgcGxhY2UgdG8gc3RhcnQgaXMgdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2AgZGlyZWN0b3J5LiBUaGF0IHNlZW1zIGxpa2UgdGhlIGNhbm9uaWNhbCBsb2NhdGlvbiBmb3IgdGhlaXIgY3VycmVudCBkcml2ZXJzLiBOb3csIGxldCdzIGZpcmUgdXAgYSBgZ3JlcGAgY29tbWFuZCB0byBzZWFyY2ggc3BlY2lmaWNhbGx5IGZvciBgbXRrX3dlZGAgd2l0aGluIHRoYXQgZGlyZWN0b3J5LiBJJ20gaG9waW5nIHRvIHF1aWNrbHkgaWRlbnRpZnkgdGhlIHJlbGV2YW50IGZpbGVzIG9yIGZ1bmN0aW9ucyB3aGVyZSB0aGlzIHNwZWNpZmljIHRlcm0gaXMgdXNlZCBhbmQsIGJ5IGV4dGVuc2lvbiwgZ2V0IGEgaGFuZGxlIG9uIHdoYXQgaXQgcmVmZXJzIHRvLiBUaGlzIHNob3VsZCBnaXZlIG1lIGEgZ29vZCBqdW1waW5nLW9mZiBwb2ludCBmb3IgZnVydGhlciBpbnZlc3RpZ2F0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTEzNCwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDA2OjU2OjI2LjUyOTc3NzcyMloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzM4MDU4MzE5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10a193ZWRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA3ODggbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM9ODAyPW10NzZfZG1hX2FsbG9jX3F1ZXVlKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtODQ1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6ODQ2OlxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbW1pby53ZWQpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzo4NDc6XFx0XFx0aWYgKChtdGtfd2VkX2dldF9yeF9jYXBhKFxcdTAwMjZkZXYtXFx1MDAzZW1taW8ud2VkKSBcXHUwMDI2XFx1MDAyNiBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkpIHx8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy04NDgtXFx0XFx0ICAgIG10NzZfcXVldWVfaXNfd2VkX3R4X2ZyZWUocSkpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTg2MT1tdDc2X2RtYV9yeF9jbGVhbnVwKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtODgxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6ODgyOlxcdFxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbW1pby53ZWQpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy04ODMtXFx0XFx0ICAgIG10NzZfcXVldWVfaXNfd2VkX3JybyhxKSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM9OTA1PW10NzZfZG1hX3J4X3Jlc2V0KHN0cnVjdCBtdDc2X2RldiAqZGV2LCBlbnVtIG10NzZfcnhxX2lkIHFpZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtOTI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6OTI4OlxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbW1pby53ZWQpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy05MjktXFx0ICAgIG10NzZfcXVldWVfaXNfd2VkX3JybyhxKSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM9MTE2Nz12b2lkIG10NzZfZG1hX2NsZWFudXAoc3RydWN0IG10NzZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTEyMDAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoxMjAxOlxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbW1pby53ZWQpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6MTIwMjpcXHRcXHRtdGtfd2VkX2RldmljZV9kZXRhY2goXFx1MDAyNmRldi1cXHUwMDNlbW1pby53ZWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTIwMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjEyMDQ6XFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcXHUwMDI2ZGV2LVxcdTAwM2VtbWlvLndlZF9oaWYyKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjEyMDU6XFx0XFx0bXRrX3dlZF9kZXZpY2VfZGV0YWNoKFxcdTAwMjZkZXYtXFx1MDAzZW1taW8ud2VkX2hpZjIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTIwNi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmgtNTQtXFx0aWYgKChfcSktXFx1MDAzZWZsYWdzIFxcdTAwMjYgTVRfUUZMQUdfV0VEKVxcdFxcdFxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5oOjU1OlxcdFxcdF92YWwgPSBtdGtfd2VkX2RldmljZV9yZWdfcmVhZCgoX3EpLVxcdTAwM2V3ZWQsXFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmgtNTYtXFx0XFx0XFx0XFx0XFx0ICAgICAgICgoX3EpLVxcdTAwM2V3ZWRfcmVncyArXFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaC02NS1cXHRpZiAoKF9xKS1cXHUwMDNlZmxhZ3MgXFx1MDAyNiBNVF9RRkxBR19XRUQpXFx0XFx0XFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmg6NjY6XFx0XFx0bXRrX3dlZF9kZXZpY2VfcmVnX3dyaXRlKChfcSktXFx1MDAzZXdlZCxcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaC02Ny1cXHRcXHRcXHRcXHRcXHQgKChfcSktXFx1MDAzZXdlZF9yZWdzICsgX29mZnNldCksXFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaD0xNzU9bXQ3Nl9kbWFfcmVzZXRfdHhfcXVldWUoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaC0xNzktXFx0ZGV2LVxcdTAwM2VxdWV1ZV9vcHMtXFx1MDAzZXJlc2V0X3EoZGV2LCBxLCByZXNldF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmg6MTgwOlxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbW1pby53ZWQpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmgtMTgxLVxcdFxcdG10NzZfd2VkX2RtYV9zZXR1cChkZXYsIHEsIHRydWUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jPTE1NTQ9dm9pZCBtdDc2X3J4X3BvbGxfY29tcGxldGUoc3RydWN0IG10NzZfZGV2ICpkZXYsIGVudW0gbXQ3Nl9yeHFfaWQgcSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy0xNTYzLVxcdFxcdG10NzZfY2hlY2tfc3RhKGRldiwgc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmM6MTU2NDpcXHRcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZkZXYtXFx1MDAzZW1taW8ud2VkKSB8fFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy0xNTY1LVxcdFxcdCAgICBtdDc2X25wdV9kZXZpY2VfYWN0aXZlKGRldikpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21taW8uYz03Nz12b2lkIG10NzZfc2V0X2lycV9tYXNrKHN0cnVjdCBtdDc2X2RldiAqZGV2LCB1MzIgYWRkcixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbW1pby5jLTg1LVxcdGlmIChhZGRyKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tbWlvLmM6ODY6XFx0XFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcXHUwMDI2ZGV2LVxcdTAwM2VtbWlvLndlZCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tbWlvLmM6ODc6XFx0XFx0XFx0bXRrX3dlZF9kZXZpY2VfaXJxX3NldF9tYXNrKFxcdTAwMjZkZXYtXFx1MDAzZW1taW8ud2VkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbW1pby5jLTg4LVxcdFxcdFxcdFxcdFxcdFxcdCAgICBkZXYtXFx1MDAzZW1taW8uaXJxbWFzayk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xNi0jaW5jbHVkZSBcXHUwMDNjbGludXgvc29jL2Fpcm9oYS9haXJvaGFfb2ZmbG9hZC5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjE3OiNpbmNsdWRlIFxcdTAwM2NsaW51eC9zb2MvbWVkaWF0ZWsvbXRrX3dlZC5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE4LSNpbmNsdWRlIFxcdTAwM2NuZXQvbWFjODAyMTEuaFxcdTAwM2VcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oPTIzNT1zdHJ1Y3QgbXQ3Nl9xdWV1ZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0yNjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MjYxOlxcdHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTI2Mi1cXHRzdHJ1Y3QgbXQ3Nl9kZXYgKmRldjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oPTcxNT1zdHJ1Y3QgbXQ3Nl9tbWlvIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTcxOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDo3MjA6XFx0c3RydWN0IG10a193ZWRfZGV2aWNlIHdlZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDo3MjE6XFx0c3RydWN0IG10a193ZWRfZGV2aWNlIHdlZF9oaWYyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTcyMi1cXHRzdHJ1Y3QgY29tcGxldGlvbiB3ZWRfcmVzZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaD0xMjM1PXN0YXRpYyBpbmxpbmUgdTE2IG10NzZfcmV2KHN0cnVjdCBtdDc2X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTIzOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxMjQwOnZvaWQgbXQ3Nl93ZWRfcmVsZWFzZV9yeF9idWYoc3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjEyNDE6dm9pZCBtdDc2X3dlZF9vZmZsb2FkX2Rpc2FibGUoc3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjEyNDI6dm9pZCBtdDc2X3dlZF9yZXNldF9jb21wbGV0ZShzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTI0My12b2lkIG10NzZfd2VkX2RtYV9yZXNldChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg9MTI0ND1pbnQgbXQ3Nl93ZWRfbmV0X3NldHVwX3RjKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTI0Ny0jaWZkZWYgQ09ORklHX05FVF9NRURJQVRFS19TT0NfV0VEXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTI0ODp1MzIgbXQ3Nl93ZWRfaW5pdF9yeF9idWYoc3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQsIGludCBzaXplKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxMjQ5OmludCBtdDc2X3dlZF9vZmZsb2FkX2VuYWJsZShzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTI1MC1pbnQgbXQ3Nl93ZWRfZG1hX3NldHVwKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSwgYm9vbCByZXNldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTI1MS0jZWxzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjEyNTI6c3RhdGljIGlubGluZSB1MzIgbXQ3Nl93ZWRfaW5pdF9yeF9idWYoc3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQsIGludCBzaXplKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTEyNTMte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTI1Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxMjU3OnN0YXRpYyBpbmxpbmUgaW50IG10NzZfd2VkX29mZmxvYWRfZW5hYmxlKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTEyNTgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg9MTI2Mj1zdGF0aWMgaW5saW5lIGludCBtdDc2X3dlZF9kbWFfc2V0dXAoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTI5MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxMjkxOnN0YXRpYyBpbmxpbmUgc3RydWN0IG10NzZfZGV2ICptdDc2X3dlZF90b19kZXYoc3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTI5Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21hYy5jPTUwND12b2lkIG10NzZfY29ubmFjMl9tYWNfd3JpdGVfdHh3aShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgX19sZTMyICp0eHdpLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tYWMuYy01NDctXFx0XFx0LyogbXQ3OTE1IFdBIG9ubHkgY291bnRzIFdFRCBwYXRoICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tYWMuYzo1NDg6XFx0XFx0aWYgKGlzX210NzkxNShkZXYpIFxcdTAwMjZcXHUwMDI2IG10a193ZWRfZGV2aWNlX2FjdGl2ZShcXHUwMDI2ZGV2LVxcdTAwM2VtbWlvLndlZCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tYWMuYy01NDktXFx0XFx0XFx0d2NpZC1cXHUwMDNlc3RhdHMudHhfcGFja2V0cysrO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tYWMuYz02MjQ9Ym9vbCBtdDc2X2Nvbm5hYzJfbWFjX2ZpbGxfdHhzKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tYWMuYy02MzYtXFx0LyogUFBEVSBiYXNlZCByZXBvcnRpbmcgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21hYy5jOjYzNzpcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZkZXYtXFx1MDAzZW1taW8ud2VkKSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWFjLmMtNjM4LVxcdCAgICBGSUVMRF9HRVQoTVRfVFhTMF9UWFNfRk9STUFULCB0eHMpIFxcdTAwM2UgMSkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYz0xMjcyPWludCBtdDc2X2Nvbm5hY19tY3Vfc3RhX3dlZF91cGRhdGUoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jLTEyNzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYzoxMjc3OlxcdGlmICghbXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZkZXYtXFx1MDAzZW1taW8ud2VkKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jLTEyNzgtXFx0XFx0cmV0dXJuIDA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYy0xMjc5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmM6MTI4MDpcXHRyZXR1cm4gbXRrX3dlZF9kZXZpY2VfdXBkYXRlX21zZyhcXHUwMDI2ZGV2LVxcdTAwM2VtbWlvLndlZCwgV0VEX1dPX1NUQV9SRUMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYy0xMjgxLVxcdFxcdFxcdFxcdFxcdCBza2ItXFx1MDAzZWRhdGEsIHNrYi1cXHUwMDNlbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jPTk9bXQ3OTE1X2luaXRfdHhfcXVldWVzKHN0cnVjdCBtdDc5MTVfcGh5ICpwaHksIGludCBpZHgsIGludCBuX2Rlc2MsIGludCByaW5nX2Jhc2UpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy0xMS1cXHRzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2ID0gcGh5LVxcdTAwM2VkZXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6MTI6XFx0c3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQgPSBOVUxMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTEzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjE0OlxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5tbWlvLndlZCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy0xNS1cXHRcXHRpZiAoaXNfbXQ3OTh4KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM9NDE9c3RhdGljIHZvaWQgbXQ3OTE1X2RtYV9jb25maWcoc3RydWN0IG10NzkxNV9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTg2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjg3OlxcdFxcdGlmIChpc19tdDc5MTYoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NikgXFx1MDAyNlxcdTAwMjYgbXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtODgtXFx0XFx0XFx0UlhRX0NPTkZJRyhNVF9SWFFfTUFJTiwgV0ZETUEwLCBNVF9JTlRfV0VEX1JYX0RPTkVfQkFORDBfTVQ3OTE2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM9MjU1PWludCBtdDc5MTVfZG1hX3N0YXJ0KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIGJvb2wgcmVzZXQsIGJvb2wgd2VkX3Jlc2V0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtMzA4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjMwOTpcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQpIFxcdTAwMjZcXHUwMDI2IHdlZF9yZXNldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTMxMC1cXHRcXHR1MzIgd2VkX2lycV9tYXNrID0gaXJxX21hc2s7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy0zMjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6MzIzOlxcdFxcdG10a193ZWRfZGV2aWNlX3N0YXJ0KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQsIHdlZF9pcnFfbWFzayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtMzI0LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jPTQwOD1pbnQgbXQ3OTE1X2RtYV9pbml0KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkyKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNDIzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjQyNDpcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZtZGV2LVxcdTAwM2VtbWlvLndlZCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy00MjUtXFx0XFx0aWYgKCFpc19tdDc5OHgobWRldikpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTQ5My1cXHQvKiBldmVudCBmcm9tIFdBICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NDk0OlxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNm1kZXYtXFx1MDAzZW1taW8ud2VkKSBcXHUwMDI2XFx1MDAyNiBpc19tdDc5MTUobWRldikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy00OTUtXFx0XFx0d2FfcnhfYmFzZSA9IE1UX1dFRF9SWF9SSU5HX0JBU0U7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01MTAtXFx0aWYgKCFkZXYtXFx1MDAzZXBoeS5tdDc2LVxcdTAwM2ViYW5kX2lkeCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjUxMTpcXHRcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZtZGV2LVxcdTAwM2VtbWlvLndlZCkgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo1MTI6XFx0XFx0ICAgIG10a193ZWRfZ2V0X3J4X2NhcGEoXFx1MDAyNm1kZXYtXFx1MDAzZW1taW8ud2VkKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTUxMy1cXHRcXHRcXHRtZGV2LVxcdTAwM2VxX3J4W01UX1JYUV9NQUlOXS5mbGFncyA9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01MzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTMzOlxcdFxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNm1kZXYtXFx1MDAzZW1taW8ud2VkKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTUzNC1cXHRcXHRcXHRtZGV2LVxcdTAwM2VxX3J4W01UX1JYUV9NQUlOX1dBXS5mbGFncyA9IE1UX1dFRF9RX1RYRlJFRTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTU0OS1cXHRpZiAoZGV2LVxcdTAwM2VkYmRjX3N1cHBvcnQgfHwgZGV2LVxcdTAwM2VwaHkubXQ3Ni1cXHUwMDNlYmFuZF9pZHgpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo1NTA6XFx0XFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcXHUwMDI2bWRldi1cXHUwMDNlbW1pby53ZWQpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTUxOlxcdFxcdCAgICBtdGtfd2VkX2dldF9yeF9jYXBhKFxcdTAwMjZtZGV2LVxcdTAwM2VtbWlvLndlZCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01NTItXFx0XFx0XFx0bWRldi1cXHUwMDNlcV9yeFtNVF9SWFFfQkFORDFdLmZsYWdzID1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jPTU5MD1pbnQgbXQ3OTE1X2RtYV9yZXNldChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCBib29sIGZvcmNlKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNTkyLVxcdHN0cnVjdCBtdDc2X3BoeSAqbXBoeV9leHQgPSBkZXYtXFx1MDAzZW10NzYucGh5c1tNVF9CQU5EMV07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTkzOlxcdHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkID0gXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5tbWlvLndlZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01OTQtXFx0aW50IGk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy02MTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NjEzOlxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUod2VkKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo2MTQ6XFx0XFx0bXRrX3dlZF9kZXZpY2VfZG1hX3Jlc2V0KHdlZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNjE1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNjQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjY0MTpcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZCkgXFx1MDAyNlxcdTAwMjYgaXNfbXQ3OTE1KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTY0Mi1cXHRcXHRtdDc2X3JtdyhkZXYsIE1UX1dGRE1BMF9FWFQwX0NGRywgTVRfV0ZETUEwX0VYVDBfUlhXQl9LRUVQLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTM1OD1tdDc5MTVfaW5pdF93aXBoeShzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTM3MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MzcxOlxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNm1kZXYtXFx1MDAzZW1taW8ud2VkKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMzcyLVxcdFxcdGh3LVxcdTAwM2VuZXRkZXZfZmVhdHVyZXMgfD0gTkVUSUZfRl9IV19UQztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz00ODQ9bXQ3OTE1X21hY19pbml0X2JhbmQoc3RydWN0IG10NzkxNV9kZXYgKmRldiwgdTggYmFuZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy01NDktXFx0ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjU1MDpcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy01NTEtXFx0XFx0bXQ3Nl9zZXQoZGV2LCBNVF9BR0dfQUNSNChiYW5kKSwgTVRfQUdHX0FDUl9QUERVX1RYUzJIKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jPTIzNj1tdDc5MTVfd2VkX2NoZWNrX3BwZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTI1Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYzoyNTc6XFx0bXRrX3dlZF9kZXZpY2VfcHBlX2NoZWNrKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQsIHNrYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy0yNTgtXFx0XFx0XFx0XFx0IEZJRUxEX0dFVChNVF9ETUFfUFBFX0NQVV9SRUFTT04sIGluZm8pLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM9ODY3PW10NzkxNV9tYWNfdHhfZnJlZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCB2b2lkICpkYXRhLCBpbnQgbGVuKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtOTEzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jOjkxNDpcXHRcXHRpZiAoIW10a193ZWRfZGV2aWNlX2FjdGl2ZShcXHUwMDI2bWRldi1cXHUwMDNlbW1pby53ZWQpIFxcdTAwMjZcXHUwMDI2IHdjaWQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy05MTUtXFx0XFx0XFx0dTMyIHR4X3JldHJpZXMgPSAwLCB0eF9mYWlsZWQgPSAwLCBjb3VudDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jPTE0NzM9dm9pZCBtdDc5MTVfbWFjX3Jlc2V0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMTUzMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYzoxNTM0OlxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5tbWlvLndlZCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM6MTUzNTpcXHRcXHRtdGtfd2VkX2RldmljZV9zdG9wKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTE1MzYtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM9MTE1Nz1zdGF0aWMgdm9pZCBtdDc5MTVfc3RhX3N0YXRpc3RpY3Moc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtMTE4OS1cXHQgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6MTE5MDpcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZwaHktXFx1MDAzZWRldi1cXHUwMDNlbXQ3Ni5tbWlvLndlZCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtMTE5MS1cXHRcXHRzaW5mby1cXHUwMDNldHhfYnl0ZXMgPSBtc3RhLVxcdTAwM2V3Y2lkLnN0YXRzLnR4X2J5dGVzO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTExOTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jOjExOTk6XFx0XFx0aWYgKG10a193ZWRfZ2V0X3J4X2NhcGEoXFx1MDAyNnBoeS1cXHUwMDNlZGV2LVxcdTAwM2VtdDc2Lm1taW8ud2VkKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0xMjAwLVxcdFxcdFxcdHNpbmZvLVxcdTAwM2VyeF9ieXRlcyA9IG1zdGEtXFx1MDAzZXdjaWQuc3RhdHMucnhfYnl0ZXM7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM9MTcyMz1tdDc5MTVfbmV0X2ZpbGxfZm9yd2FyZF9wYXRoKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTE3MzItXFx0c3RydWN0IG10NzkxNV9waHkgKnBoeSA9IG10NzkxNV9od19waHkoaHcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYzoxNzMzOlxcdHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkID0gXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5tbWlvLndlZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtMTczNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6MTczNTpcXHRpZiAoIW10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWQpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0xNzM2LVxcdFxcdHJldHVybiAtRU5PREVWO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM9MTc4NT1pbnQgbXQ3OTE1X21jdV93ZWRfZW5hYmxlX3J4X3N0YXRzKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0xNzg3LSNpZmRlZiBDT05GSUdfTkVUX01FRElBVEVLX1NPQ19XRURcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzoxNzg4OlxcdHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkID0gXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5tbWlvLndlZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0xNzg5LVxcdHN0cnVjdCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0xNzk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjE3OTY6XFx0cmV0dXJuIG10a193ZWRfZGV2aWNlX3VwZGF0ZV9tc2cod2VkLCBNVEtfV0VEX1dPX0NNRF9SWENOVF9DVFJMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTE3OTctXFx0XFx0XFx0XFx0XFx0IFxcdTAwMjZyZXEsIHNpemVvZihyZXEpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jPTIzOTI9aW50IG10NzkxNV9tY3VfaW5pdF9maXJtd2FyZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMjQyNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzoyNDI2OlxcdGlmICgobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMjQyNy1cXHQgICAgIGlzX210NzkxNShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSkgfHxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzoyNDI4OlxcdCAgICAhbXRrX3dlZF9nZXRfcnhfY2FwYShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2Lm1taW8ud2VkKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yNDI5LVxcdFxcdG10NzkxNV9tY3Vfd2FfY21kKGRldiwgTUNVX1dBX1BBUkFNX0NNRChDQVBBQklMSVRZKSwgMCwgMCwgMCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yNDQzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjI0NDQ6XFx0cmV0dXJuIG10NzkxNV9tY3Vfc2V0X3JlZChkZXYsIG10a193ZWRfZGV2aWNlX2FjdGl2ZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2Lm1taW8ud2VkKSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMjQ0NS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM9NTY1PXN0YXRpYyB1MzIgbXQ3OTE1X3JtdyhzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHUzMiBvZmZzZXQsIHUzMiBtYXNrLCB1MzIgdmFsKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTU4MC0jaWZkZWYgQ09ORklHX05FVF9NRURJQVRFS19TT0NfV0VEXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjU4MTpzdGF0aWMgdm9pZCBtdDc5MTVfbW1pb193ZWRfdXBkYXRlX3J4X3N0YXRzKHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYzo1ODI6XFx0XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBtdGtfd2VkX3dvX3J4X3N0YXRzICpzdGF0cylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtNTgzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy02MDItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjYwMzpzdGF0aWMgaW50IG10NzkxNV9tbWlvX3dlZF9yZXNldChzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtNjA0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYz02MzM9aW50IG10NzkxNV9tbWlvX3dlZF9pbml0KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIHZvaWQgKnBkZXZfcHRyLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTYzNi0jaWZkZWYgQ09ORklHX05FVF9NRURJQVRFS19TT0NfV0VEXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjYzNzpcXHRzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZCA9IFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTYzOC1cXHRpbnQgcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTcyMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6NzI0OlxcdGlmIChtdGtfd2VkX2RldmljZV9hdHRhY2god2VkKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtNzI1LVxcdFxcdHJldHVybiAwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jPTc5Mz12b2lkIG10NzkxNV9kdWFsX2hpZl9zZXRfaXJxX21hc2soc3RydWN0IG10NzkxNV9kZXYgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy04MDUtXFx0aWYgKHdyaXRlX3JlZykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYzo4MDY6XFx0XFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcXHUwMDI2bWRldi1cXHUwMDNlbW1pby53ZWQpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYzo4MDc6XFx0XFx0XFx0bXRrX3dlZF9kZXZpY2VfaXJxX3NldF9tYXNrKFxcdTAwMjZtZGV2LVxcdTAwM2VtbWlvLndlZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtODA4LVxcdFxcdFxcdFxcdFxcdFxcdCAgICBtZGV2LVxcdTAwM2VtbWlvLmlycW1hc2spO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jPTgyNj1zdGF0aWMgdm9pZCBtdDc5MTVfaXJxX3Rhc2tsZXQoc3RydWN0IHRhc2tsZXRfc3RydWN0ICp0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTgyOC1cXHRzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2ID0gZnJvbV90YXNrbGV0KGRldiwgdCwgbXQ3Ni5pcnFfdGFza2xldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjgyOTpcXHRzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZCA9IFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTgzMC1cXHR1MzIgaW50ciwgaW50cjEsIG1hc2s7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTgzMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6ODMyOlxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUod2VkKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYzo4MzM6XFx0XFx0bXRrX3dlZF9kZXZpY2VfaXJxX3NldF9tYXNrKHdlZCwgMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTgzNC1cXHRcXHRpZiAoZGV2LVxcdTAwM2VoaWYyKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy04MzUtXFx0XFx0XFx0bXQ3Nl93cihkZXYsIE1UX0lOVDFfTUFTS19DU1IsIDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYzo4MzY6XFx0XFx0aW50ciA9IG10a193ZWRfZGV2aWNlX2lycV9nZXQod2VkLCBkZXYtXFx1MDAzZW10NzYubW1pby5pcnFtYXNrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtODM3LVxcdH0gZWxzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM9ODk2PWlycXJldHVybl90IG10NzkxNV9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkZXZfaW5zdGFuY2UpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtODk4LVxcdHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYgPSBkZXZfaW5zdGFuY2U7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjg5OTpcXHRzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZCA9IFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTkwMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6OTAxOlxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUod2VkKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6OTAyOlxcdFxcdG10a193ZWRfZGV2aWNlX2lycV9zZXRfbWFzayh3ZWQsIDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy05MDMtXFx0ZWxzZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmM9MTAzPXN0YXRpYyBpbnQgbXQ3OTE1X3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jLTE5Mi1mcmVlX3dlZF9vcl9pcnFfdmVjdG9yOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jOjE5MzpcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZtZGV2LVxcdTAwM2VtbWlvLndlZCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmM6MTk0OlxcdFxcdG10a193ZWRfZGV2aWNlX2RldGFjaChcXHUwMDI2bWRldi1cXHUwMDNlbW1pby53ZWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jLTE5NS1cXHRlbHNlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9zb2MuYz0xMjIwPXN0YXRpYyBpbnQgbXQ3OTh4X3dtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3NvYy5jLTEyNzItZnJlZV9kZXZpY2U6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmM6MTI3MzpcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZtZGV2LVxcdTAwM2VtbWlvLndlZCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmM6MTI3NDpcXHRcXHRtdGtfd2VkX2RldmljZV9kZXRhY2goXFx1MDAyNm1kZXYtXFx1MDAzZW1taW8ud2VkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9zb2MuYy0xMjc1LVxcdG10NzZfZnJlZV9kZXZpY2UobWRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz0xMD1pbnQgbXQ3OTk2X2luaXRfdHhfcXVldWVzKHN0cnVjdCBtdDc5OTZfcGh5ICpwaHksIGludCBpZHgsIGludCBuX2Rlc2MsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTE6XFx0XFx0XFx0ICBpbnQgcmluZ19iYXNlLCBzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxNjpcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNy1cXHRcXHRyaW5nX2Jhc2UgKz0gTVRfVFhRX0lEKDApICogTVRfUklOR19TSVpFO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM9MzA2PXZvaWQgbXQ3OTk2X2RtYV9zdGFydChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBib29sIHJlc2V0LCBib29sIHdlZF9yZXNldClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0zMDcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjMwODpcXHRzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZCA9IFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMzA5LVxcdHUzMiBoaWYxX29mcyA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0zMTYtXFx0aWYgKCFyZXNldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjMxNzpcXHRcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZCkgXFx1MDAyNlxcdTAwMjYgbXRrX3dlZF9nZXRfcnhfY2FwYSh3ZWQpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTMxOC1cXHRcXHRcXHRtdDc2X3NldChkZXYsIE1UX1dGRE1BMF9HTE9fQ0ZHLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMzUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjM1NDpcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZCkgXFx1MDAyNlxcdTAwMjYgd2VkX3Jlc2V0KSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMzU1LVxcdFxcdHUzMiB3ZWRfaXJxX21hc2sgPSBpcnFfbWFzaztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTM1OC1cXHRcXHRtdDc2X3dyKGRldiwgTVRfSU5UX01BU0tfQ1NSLCB3ZWRfaXJxX21hc2spO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjM1OTpcXHRcXHRtdGtfd2VkX2RldmljZV9zdGFydCh3ZWQsIHdlZF9pcnFfbWFzayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMzYwLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jPTM3ND1zdGF0aWMgdm9pZCBtdDc5OTZfZG1hX2VuYWJsZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBib29sIHJlc2V0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTAyLVxcdFxcdCAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjUwMzpcXHRcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTA0LVxcdFxcdCAgICBtdDc5OTZfaGFzX2h3cnJvKGRldikpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jPTUyMT1pbnQgbXQ3OTk2X2RtYV9ycm9faW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTI5LVxcdFxcdG1kZXYtXFx1MDAzZXFfcnhbTVRfUlhRX1JST19SWERNQURfQ10uZmxhZ3MgPSBNVF9XRURfUlJPX1FfUlhETUFEX0M7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NTMwOlxcdFxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNm1kZXYtXFx1MDAzZW1taW8ud2VkKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01MzEtXFx0XFx0XFx0bWRldi1cXHUwMDNlcV9yeFtNVF9SWFFfUlJPX1JYRE1BRF9DXS53ZWQgPSBcXHUwMDI2bWRldi1cXHUwMDNlbW1pby53ZWQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01NDEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NTQyOlxcdFxcdGlmICghbXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZtZGV2LVxcdTAwM2VtbWlvLndlZCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01NDMtXFx0XFx0XFx0LyogV2UgbmVlZCB0byBzZXQgY3B1IGlkeCBwb2ludGVyIGJlZm9yZSByZXNldHRpbmcgdGhlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01NTYtXFx0bWRldi1cXHUwMDNlcV9yeFtNVF9SWFFfUlJPX0lORF0uZmxhZ3MgPSBNVF9XRURfUlJPX1FfSU5EO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjU1NzpcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZtZGV2LVxcdTAwM2VtbWlvLndlZCkgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1NTg6XFx0ICAgIG10a193ZWRfZ2V0X3J4X2NhcGEoXFx1MDAyNm1kZXYtXFx1MDAzZW1taW8ud2VkKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01NTktXFx0XFx0bWRldi1cXHUwMDNlcV9yeFtNVF9SWFFfUlJPX0lORF0ud2VkID0gXFx1MDAyNm1kZXYtXFx1MDAzZW1taW8ud2VkO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTY5LVxcdFxcdE1UX1dFRF9SUk9fUV9NU0RVX1BHKDApIHwgTVRfUUZMQUdfV0VEX1JST19FTjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1NzA6XFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcXHUwMDI2bWRldi1cXHUwMDNlbW1pby53ZWQpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NTcxOlxcdCAgICBtdGtfd2VkX2dldF9yeF9jYXBhKFxcdTAwMjZtZGV2LVxcdTAwM2VtbWlvLndlZCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTcyLVxcdFxcdG1kZXYtXFx1MDAzZXFfcnhbTVRfUlhRX01TRFVfUEFHRV9CQU5EMF0ud2VkID0gXFx1MDAyNm1kZXYtXFx1MDAzZW1taW8ud2VkO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTg2LVxcdFxcdFxcdE1UX1dFRF9SUk9fUV9NU0RVX1BHKDEpIHwgTVRfUUZMQUdfV0VEX1JST19FTjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1ODc6XFx0XFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcXHUwMDI2bWRldi1cXHUwMDNlbW1pby53ZWQpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NTg4OlxcdFxcdCAgICBtdGtfd2VkX2dldF9yeF9jYXBhKFxcdTAwMjZtZGV2LVxcdTAwM2VtbWlvLndlZCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTg5LVxcdFxcdFxcdG1kZXYtXFx1MDAzZXFfcnhbTVRfUlhRX01TRFVfUEFHRV9CQU5EMV0ud2VkID0gXFx1MDAyNm1kZXYtXFx1MDAzZW1taW8ud2VkO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjA0LVxcdFxcdFxcdE1UX1dFRF9SUk9fUV9NU0RVX1BHKDIpIHwgTVRfUUZMQUdfV0VEX1JST19FTjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2MDU6XFx0XFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcXHUwMDI2bWRldi1cXHUwMDNlbW1pby53ZWQpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjA2OlxcdFxcdCAgICBtdGtfd2VkX2dldF9yeF9jYXBhKFxcdTAwMjZtZGV2LVxcdTAwM2VtbWlvLndlZCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjA3LVxcdFxcdFxcdG1kZXYtXFx1MDAzZXFfcnhbTVRfUlhRX01TRFVfUEFHRV9CQU5EMl0ud2VkID0gXFx1MDAyNm1kZXYtXFx1MDAzZW1taW8ud2VkO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM9NjIyPXZvaWQgbXQ3OTk2X2RtYV9ycm9fc3RhcnQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYyNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2MjY6XFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2Lm1taW8ud2VkKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYyNy1cXHRcXHRpcnFfbWFzayA9IGRldi1cXHUwMDNlbXQ3Ni5tbWlvLmlycW1hc2sgfFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjMwLVxcdFxcdG10NzZfd3IoZGV2LCBNVF9JTlRfTUFTS19DU1IsIGlycV9tYXNrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2MzE6XFx0XFx0bXRrX3dlZF9kZXZpY2Vfc3RhcnRfaHdfcnJvKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQsIGlycV9tYXNrLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYzMi1cXHRcXHRcXHRcXHRcXHQgICAgZmFsc2UpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM9NjY0PWludCBtdDc5OTZfZG1hX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02NjUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjY2NjpcXHRzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZCA9IFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjY3OlxcdHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkX2hpZjIgPSBcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2Lm1taW8ud2VkX2hpZjI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjY4LVxcdHUzMiByeF9iYXNlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzM5LVxcdC8qIHJ4IGRhdGEgcXVldWUgZm9yIGJhbmQwIGFuZCBtdDc5OTYgYmFuZDEgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3NDA6XFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWQpIFxcdTAwMjZcXHUwMDI2IG10a193ZWRfZ2V0X3J4X2NhcGEod2VkKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc0MS1cXHRcXHRkZXYtXFx1MDAzZW10NzYucV9yeFtNVF9SWFFfTUFJTl0uZmxhZ3MgPSBNVF9XRURfUV9SWCgwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc1My1cXHQvKiB0eCBmcmVlIG5vdGlmeSBldmVudCBmcm9tIFdBIGZvciBiYW5kMCAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjc1NDpcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZCkgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03NTUtXFx0ICAgICgoaXNfbXQ3OTk2KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpIFxcdTAwMjZcXHUwMDI2ICFtdDc5OTZfaGFzX2h3cnJvKGRldikpIHx8XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03NzItXFx0fSBlbHNlIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3NzM6XFx0XFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWQpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzc0LVxcdFxcdFxcdGRldi1cXHUwMDNlbXQ3Ni5xX3J4W01UX1JYUV9UWEZSRUVfQkFORDBdLmZsYWdzID0gTVRfV0VEX1FfVFhGUkVFO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzg2LVxcdGlmICghbXQ3OTk2X2hhc193YShkZXYpIFxcdTAwMjZcXHUwMDI2IGRldi1cXHUwMDNlaGlmMikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjc4NzpcXHRcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03ODgtXFx0XFx0XFx0ZGV2LVxcdTAwM2VtdDc2LnFfcnhbTVRfUlhRX1RYRlJFRV9CQU5EMV0uZmxhZ3MgPSBNVF9XRURfUV9UWEZSRUU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MTMtXFx0XFx0ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODE0OlxcdFxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUod2VkX2hpZjIpIFxcdTAwMjZcXHUwMDI2ICFtdDc5OTZfaGFzX2h3cnJvKGRldikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MTUtXFx0XFx0XFx0ZGV2LVxcdTAwM2VtdDc2LnFfcnhbTVRfUlhRX0JBTkQyX1dBXS5mbGFncyA9IE1UX1dFRF9RX1RYRlJFRTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTgyOC1cXHRcXHRyeF9iYXNlID0gTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfQkFORDEpICsgaGlmMV9vZnM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODI5OlxcdFxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUod2VkKSBcXHUwMDI2XFx1MDAyNiBtdGtfd2VkX2dldF9yeF9jYXBhKHdlZCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MzAtXFx0XFx0XFx0ZGV2LVxcdTAwM2VtdDc2LnFfcnhbTVRfUlhRX0JBTkQxXS5mbGFncyA9IE1UX1dFRF9RX1JYKDEpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODQ0LVxcdFxcdFxcdHJ4X2Jhc2UgPSBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9CQU5EMV9XQSkgKyBoaWYxX29mcztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4NDU6XFx0XFx0XFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWRfaGlmMikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04NDYtXFx0XFx0XFx0XFx0ZGV2LVxcdTAwM2VtdDc2LnFfcnhbTVRfUlhRX0JBTkQxX1dBXS5mbGFncyA9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04NjQtXFx0XFx0XFx0TVRfV0VEX1JST19RX0RBVEEoMCkgfCBNVF9RRkxBR19XRURfUlJPX0VOO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjg2NTpcXHRcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZCkgXFx1MDAyNlxcdTAwMjYgbXRrX3dlZF9nZXRfcnhfY2FwYSh3ZWQpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTg2Ni1cXHRcXHRcXHRkZXYtXFx1MDAzZW10NzYucV9yeFtNVF9SWFFfUlJPX0JBTkQwXS53ZWQgPSB3ZWQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04NzctXFx0XFx0XFx0XFx0TVRfV0VEX1JST19RX0RBVEEoMSkgfCBNVF9RRkxBR19XRURfUlJPX0VOO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjg3ODpcXHRcXHRcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZCkgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4Nzk6XFx0XFx0XFx0ICAgIG10a193ZWRfZ2V0X3J4X2NhcGEod2VkKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04ODAtXFx0XFx0XFx0XFx0ZGV2LVxcdTAwM2VtdDc2LnFfcnhbTVRfUlhRX1JST19CQU5EMV0ud2VkID0gd2VkO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODg5LVxcdFxcdH0gZWxzZSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODkwOlxcdFxcdFxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUod2VkKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTg5MS1cXHRcXHRcXHRcXHQvKiB0eCBmcmVlIG5vdGlmeSBldmVudCBmcm9tIFdBIGZvciBiYW5kMCAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTEzLVxcdFxcdFxcdFxcdE1UX1dFRF9SUk9fUV9EQVRBKDEpIHwgTVRfUUZMQUdfV0VEX1JST19FTjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo5MTQ6XFx0XFx0XFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWQpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6OTE1OlxcdFxcdFxcdCAgICBtdGtfd2VkX2dldF9yeF9jYXBhKHdlZCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTE2LVxcdFxcdFxcdFxcdGRldi1cXHUwMDNlbXQ3Ni5xX3J4W01UX1JYUV9SUk9fQkFORDJdLndlZCA9IHdlZDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkyOC1cXHRcXHRcXHQvKiB0eCBmcmVlIG5vdGlmeSBldmVudCBmcm9tIE1BQyBmb3IgYmFuZDIgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo5Mjk6XFx0XFx0XFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWRfaGlmMikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05MzAtXFx0XFx0XFx0XFx0ZGV2LVxcdTAwM2VtdDc2LnFfcnhbTVRfUlhRX1RYRlJFRV9CQU5EMl0uZmxhZ3MgPSBNVF9XRURfUV9UWEZSRUU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz05NjA9dm9pZCBtdDc5OTZfZG1hX3Jlc2V0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGJvb2wgZm9yY2UpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05OTQtXFx0aWYgKG10Nzk5Nl9oYXNfaHdycm8oZGV2KSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjk5NTpcXHQgICAgIW10a193ZWRfZGV2aWNlX2FjdGl2ZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2Lm1taW8ud2VkKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05OTYtXFx0XFx0bXQ3OTk2X3Jyb19tc2R1X3BhZ2VfbWFwX2ZyZWUoZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwMDEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTAwMjpcXHRpZiAoZGV2LVxcdTAwM2VoaWYyIFxcdTAwMjZcXHUwMDI2IG10a193ZWRfZGV2aWNlX2FjdGl2ZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2Lm1taW8ud2VkX2hpZjIpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEwMDM6XFx0XFx0bXRrX3dlZF9kZXZpY2VfZG1hX3Jlc2V0KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWRfaGlmMik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTAwNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMDA1OlxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5tbWlvLndlZCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTAwNjpcXHRcXHRtdGtfd2VkX2RldmljZV9kbWFfcmVzZXQoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5tbWlvLndlZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTAwNy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwMjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTAyNzpcXHRcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTAyOC1cXHRcXHRcXHRpZiAobXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHEpIHx8XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDQwLVxcdG10NzZfZm9yX2VhY2hfcV9yeChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LCBpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTA0MTpcXHRcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQpIFxcdTAwMjZcXHUwMDI2IGZvcmNlIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTA0Mi1cXHRcXHQgICAgKG10NzZfcXVldWVfaXNfd2VkX3Jyb19pbmQoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5xX3J4W2ldKSB8fFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTQ3Nz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo0Nzg6bXQ3OTk2X2luaXRfd2lwaHkoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy00Nzkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTQ5Mi1cXHRody1cXHUwMDNlbmV0ZGV2X2ZlYXR1cmVzID0gTkVUSUZfRl9SWENTVU07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjQ5MzpcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKHdlZCkgfHwgbXQ3Nl9ucHVfZGV2aWNlX2FjdGl2ZShtZGV2KSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDk0LVxcdFxcdGh3LVxcdTAwM2VuZXRkZXZfZmVhdHVyZXMgfD0gTkVUSUZfRl9IV19UQztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz02ODI9c3RhdGljIGludCBtdDc5OTZfcmVnaXN0ZXJfcGh5KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGVudW0gbXQ3Nl9iYW5kX2lkIGJhbmQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNjg3LVxcdGludCByZXQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjY4ODpcXHRzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZCA9IFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTY4OS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy03NTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjc2MDpcXHRpZiAod2VkID09IFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWRfaGlmMiBcXHUwMDI2XFx1MDAyNiBtdGtfd2VkX2RldmljZV9hY3RpdmUod2VkKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy03NjEtXFx0XFx0bXQ3Nl93cihkZXYsIE1UX0lOVF9QQ0lFMV9NQVNLX0NTUiwgTVRfSU5UX1RYX1JYX0RPTkVfRVhUKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NzYyOlxcdFxcdG10a193ZWRfZGV2aWNlX3N0YXJ0KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWRfaGlmMixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNzYzLVxcdFxcdFxcdFxcdCAgICAgTVRfSU5UX1RYX1JYX0RPTkVfRVhUKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz04MjU9c3RhdGljIHZvaWQgbXQ3OTk2X3Jyb19od19pbml0X3YzKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTgyNi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjgyNzpcXHRzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZCA9IFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTgyOC1cXHR1MzIgc2Vzc2lvbl9pZDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy04MzMtI2lmZGVmIENPTkZJR19ORVRfTUVESUFURUtfU09DX1dFRFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo4MzQ6XFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZSh3ZWQpIFxcdTAwMjZcXHUwMDI2IG10a193ZWRfZ2V0X3J4X2NhcGEod2VkKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy04MzUtXFx0XFx0d2VkLVxcdTAwM2V3bGFuLmluZF9jbWQud2luX3NpemUgPVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg0OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6ODQ5OlxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUod2VkKSBcXHUwMDI2XFx1MDAyNiBtdGtfd2VkX2dldF9yeF9jYXBhKHdlZCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtODUwLVxcdFxcdG10NzZfd3IoZGV2LCBNVF9SUk9fSU5EX0NNRF9TSUdOQVRVUkVfQkFTRTAsIDB4MTUwMTBlMDApO1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwNjo1NjoyNi44Njc4NDI1OTFaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODgzNjQwMzA1NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBXb3J0aEZ1enppbmcgUGF0Y2ggZm9yIG10a193ZWQqKlxuXG5Pa2F5LCBsZXQgbWUgYnJlYWsgdGhpcyBkb3duLiBUaGlzIGBtdGtfd2VkYCBkcml2ZXIgaXMgcGFydCBvZiBNZWRpYXRlaydzIFdFRCBvZmZsb2FkIGVuZ2luZS4gSSBrbm93IGl0J3MgdXNlZCB3aXRoIHRoZWlyIFdpRmkgZHJpdmVycywgc3BlY2lmaWNhbGx5IHRoaW5ncyBsaWtlIGBtdDc5MTVgIGFuZCBgbXQ3OTk2YCwgd2hpY2ggYXJlIFBDSWUgZGV2aWNlcy4gSSBqdXN0IGNvbmZpcm1lZCBgbXQ3OTE1YCBpcyBpbmRlZWQgYSBQQ0kgZHJpdmVyLCBzZWVpbmcgdGhlIGBtdDc5MTVfcGNpX3Byb2JlYCBmdW5jdGlvbiBpbiBpdHMgUENJLXNwZWNpZmljIGNvZGUuXG5cbk5vdywgdGhlIGNydWNpYWwgcXVlc3Rpb246IGNhbiBzdGFuZGFyZCBRRU1VIGVtdWxhdGUgdGhlIE1UNzkxNT8gTm8sIGl0IGNhbid0LiBUaGlzIGlzIHdoZXJlIHRoYXQgXCJXb3J0aEZ1enppbmc9ZmFsc2VcIiBmbGFnIGNvbWVzIGludG8gcGxheS4gVGhlIHByb21wdCBtZW50aW9ucyB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkcml2ZXJzIHRoYXQgcmVxdWlyZSByZWFsIGhhcmR3YXJlLCBhbmQgKmJpbmdvKiwgYG10NzkxNWAgaXMgcHJlY2lzZWx5IHRoYXQ6IGEgTWVkaWF0ZWsgV2lGaSBQQ0llIGRyaXZlci4gSXQncyBub3QgbGlrZSBgbWFjODAyMTFfaHdzaW1gLCB3aGljaCBpcyBkZXNpZ25lZCBmb3IgZW11bGF0aW9uLiBgbXQ3OTE1YCBpbnRlcmFjdHMgZGlyZWN0bHkgd2l0aCByZWFsIGhhcmR3YXJlLlxuXG5UaGUgbmV4dCBxdWVzdGlvbjogY2FuIHN5emthbGxlciBmdXp6IGl0PyBTeXprYWxsZXIgaGFzIGl0cyBgc3l6XzgwMjExXy4uLmAgc3lzY2FsbHMsIGJ1dCB0aG9zZSBtb3N0bHkgZGVhbCB3aXRoIHRoZSBnZW5lcmljIG1hYzgwMjExIHN0YWNrLiBUaGV5IGRvbid0IHJlYWNoIGRlZXBseSBpbnRvIHRoZSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIgdW5sZXNzLCBhcyBJIG1lbnRpb25lZCwgaXQgaGFzIGEgc2ltdWxhdGlvbiBjb21wb25lbnQuIEhvd2V2ZXIsIFN5emthbGxlciAqZG9lcyogaGF2ZSBQQ0kgZnV6emluZyBjYXBhYmlsaXRpZXMsIGFuZCB0aGF0J3MgaW50ZXJlc3RpbmcuIEl0IGNhbiBpbmplY3QgUENJIGRldmljZXMsIHNvIGl0IGNvdWxkIHBvdGVudGlhbGx5IHJlYWNoIHRoZSBgbXQ3OTE1YCBkcml2ZXIuIEJ1dCBkb2VzIGl0IGdvIGRlZXAgZW5vdWdoLCBzcGVjaWZpY2FsbHkgaW50byB0aGUgZHJpdmVyJ3MgcmluZyBzZXR1cCwgd2hpY2ggaXMgd2hhdCB0aGUgcGF0Y2ggbW9kaWZpZXM/XG5cblRoZSBwYXRjaCB0YXJnZXRzIGBtdGtfd2VkX3dkbWFfdHhfcmluZ19zZXR1cGAgYW5kIGBtdGtfd2VkX3N0YXJ0YCB3aXRoaW4gYG10a193ZWQuY2AuIFRoaXMgaXMgd2hlcmUgdGhlIGNvcmUgb2YgbXkgYXNzZXNzbWVudCBsaWVzLiBTaW5jZSB0aGlzIGRyaXZlciBpcyBjb21waWxlZCB1bmRlciBgQ09ORklHX05FVF9NRURJQVRFS19TT0NfV0VEYCwgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGhhcyB0byBiZSBjb25zaWRlcmVkLiBTeXprYWxsZXIncyBQQ0kgZnV6emluZyAqbWlnaHQqIGJlIGFibGUgdG8gcmVhY2ggaXQsIGlmIGl0J3MgY29uZmlndXJlZCBhbmQgdGhlIGVtdWxhdGlvbiBvZiBQQ0kgaXMgZ29vZCBlbm91Z2guIEhvd2V2ZXIsIEkgaGF2ZSBkb3VidHMgdGhhdCwgZXZlbiB3aXRoIHRoZSBQQ0kgZW11bGF0aW9uIGFuZCBmdXp6aW5nIGNhcGFiaWxpdGllcywgc3l6a2FsbGVyIHdpbGwgYmUgYWJsZSB0byB0YXJnZXQgdGhpcyBkcml2ZXIsIGFzIGl0IGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSSBkZXZpY2UsIGFuZCBJIHN1c3BlY3QgaXQgd2lsbCBmYWlsLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjYyOSwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU4NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwNjo1NjozNS43MDQyNDgyMThaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxNjgwMzM3NTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE5FVF9NRURJQVRFS19TT0NfV0VEXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9LY29uZmlnPTg9aWYgTkVUX1ZFTkRPUl9NRURJQVRFS1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL0tjb25maWctOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9LY29uZmlnOjEwOmNvbmZpZyBORVRfTUVESUFURUtfU09DX1dFRFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL0tjb25maWctMTEtXFx0ZGVwZW5kcyBvbiBBUkNIX01FRElBVEVLIHx8IENPTVBJTEVfVEVTVFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwNjo1NjozNy44NzIyODgxMTdaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzY0MjMwNjI1OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHN1bW1hcnksIGFzIHRoZSBleHBlcnQ6XG5cbioqRGVsdmluZyBpbnRvIHRoZSBNZWRpYXRlayBFdGhlcm5ldCBDb25maWd1cmF0aW9uKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbnRvIHRoZSBjb3JlIGNvbmZpZ3VyYXRpb24gZm9yIE1lZGlhdGVrIEV0aGVybmV0IGRyaXZlcnMuIEknbSBnb2luZyB0byBwdWxsIHVwIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9LY29uZmlnYCBhbmQgemVybyBpbiBhcm91bmQgbGluZSAxMC4gSSBzdXNwZWN0IHRoaXMgd2lsbCBnaXZlIG1lIHRoZSB0b3AtbGV2ZWwgY29uZmlndXJhdGlvbiBvcHRpb25zLCB0aGUgY29yZSBkZXBlbmRlbmNpZXMsIG9yIHBlcmhhcHMgZXZlbiB0aGUgYXJjaGl0ZWN0dXJlIHNlbGVjdGlvbi4gSSdtIGxvb2tpbmcgZm9yIHRoZSBmb3VuZGF0aW9uYWwgYnVpbGRpbmcgYmxvY2tzIC0gd2hhdCBmZWF0dXJlcyBhcmUgZW5hYmxlZCBieSBkZWZhdWx0LCB3aGF0IGZhbWlsaWVzIGFyZSBzdXBwb3J0ZWQsIGFuZCB3aGljaCBvbmVzIGFyZSBsaWtlbHkgdG8gbmVlZCBzcGVjaWFsIGF0dGVudGlvbi4gQmFzZWQgb24gcGFzdCBleHBlcmllbmNlLCB0aGlzIEtjb25maWcgZmlsZSBzaG91bGQgaWxsdW1pbmF0ZSB0aGUgc3RydWN0dXJlIG9mIHRoZSBNZWRpYXRlayBldGhlcm5ldCBkcml2ZXIgZWNvc3lzdGVtLCB3aGljaCBoZWxwcyBtZSBpbW1lZGlhdGVseSBnYWluIGNvbnRleHQgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIGRyaXZlciBmZWF0dXJlcy4gTGV0J3Mgc2VlIHdoYXQncyB0aGVyZS4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNzg3NSwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDA2OjU2OjQxLjUxNDU5NzU4NloiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1ODc3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDMwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHRjb25maWcgTkVUX1ZFTkRPUl9NRURJQVRFS1xcbiAgIDM6XFx0XFx0Ym9vbCBcXFwiTWVkaWFUZWsgZGV2aWNlc1xcXCJcXG4gICA0OlxcdFxcdGRlcGVuZHMgb24gQVJDSF9NRURJQVRFSyB8fCBBUkNIX0FJUk9IQSB8fCBTT0NfTVQ3NjIxIHx8IFNPQ19NVDc2MjAgfHwgQ09NUElMRV9URVNUXFxuICAgNTpcXHRcXHRoZWxwXFxuICAgNjpcXHRcXHQgIElmIHlvdSBoYXZlIGEgTWVkaWF0ZWsgU29DIHdpdGggZXRoZXJuZXQsIHNheSBZLlxcbiAgIDc6XFx0XFxuICAgODpcXHRpZiBORVRfVkVORE9SX01FRElBVEVLXFxuICAgOTpcXHRcXG4gIDEwOlxcdGNvbmZpZyBORVRfTUVESUFURUtfU09DX1dFRFxcbiAgMTE6XFx0XFx0ZGVwZW5kcyBvbiBBUkNIX01FRElBVEVLIHx8IENPTVBJTEVfVEVTVFxcbiAgMTI6XFx0XFx0ZGVmX2Jvb2wgTkVUX01FRElBVEVLX1NPQyAhPSBuXFxuICAxMzpcXHRcXG4gIDE0OlxcdGNvbmZpZyBORVRfTUVESUFURUtfU09DXFxuICAxNTpcXHRcXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgU29DIEdpZ2FiaXQgRXRoZXJuZXQgc3VwcG9ydFxcXCJcXG4gIDE2OlxcdFxcdGRlcGVuZHMgb24gTkVUX0RTQSB8fCAhTkVUX0RTQVxcbiAgMTc6XFx0XFx0c2VsZWN0IFBJTkNUUkxcXG4gIDE4OlxcdFxcdHNlbGVjdCBQSFlMSU5LXFxuICAxOTpcXHRcXHRzZWxlY3QgRElNTElCXFxuICAyMDpcXHRcXHRzZWxlY3QgR0VORVJJQ19BTExPQ0FUT1JcXG4gIDIxOlxcdFxcdHNlbGVjdCBQQUdFX1BPT0xcXG4gIDIyOlxcdFxcdHNlbGVjdCBQQUdFX1BPT0xfU1RBVFNcXG4gIDIzOlxcdFxcdHNlbGVjdCBQQ1NfTVRLX0xZTlhJXFxuICAyNDpcXHRcXHRzZWxlY3QgUkVHTUFQX01NSU9cXG4gIDI1OlxcdFxcdGhlbHBcXG4gIDI2OlxcdFxcdCAgVGhpcyBkcml2ZXIgc3VwcG9ydHMgdGhlIGdpZ2FiaXQgZXRoZXJuZXQgTUFDcyBpbiB0aGVcXG4gIDI3OlxcdFxcdCAgTWVkaWFUZWsgU29DIGZhbWlseS5cXG4gIDI4OlxcdFxcbiAgMjk6XFx0Y29uZmlnIE5FVF9NRURJQVRFS19TVEFSX0VNQUNcXG4gIDMwOlxcdFxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBTVEFSIEV0aGVybmV0IE1BQyBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwNjo1Njo0MS41MTQ2NTc0NjZaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODk3NjcwOTM3OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipXb3J0aEZ1enppbmc9ZmFsc2U6IE1lZGlhVGVrIFNvQyBFdGhlcm5ldC9XaUZpIE9mZmxvYWQgRHJpdmVyKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBgTkVUX01FRElBVEVLX1NPQ19XRURgIGlzIGRlZmluZWQgYXMgYSBgZGVmX2Jvb2xgLCBtZWFuaW5nIGl0J3MgY29uZGl0aW9uYWwuIEl0IGJvaWxzIGRvd24gdG8gd2hldGhlciBgTkVUX01FRElBVEVLX1NPQ2AgaXMgKm5vdCogZXF1YWwgdG8gJ24nLiBUaGlzIHBvaW50cyB0byBhIHBsYXRmb3JtIGRyaXZlciwgc3BlY2lmaWNhbGx5IGZvciBNZWRpYVRlayBTb0NzIGFuZCBHaWdhYml0IEV0aGVybmV0IHN1cHBvcnQuIFBsYXRmb3JtIGRyaXZlcnMgdXN1YWxseSBhcmVuJ3QgaWRlYWwgZm9yIHN0YW5kYXJkIFFFTVUgZnV6emluZyB1bmxlc3MgdGhlcmUncyBhIHNwZWNpZmljIG1hY2hpbmUgdHlwZSBkZWZpbmVkIGZvciB0aGVtLlxuXG5UaGUgY29kZSBpbiBxdWVzdGlvbiBpcyB3aXRoaW4gYG10a193ZWQuY2AsIHRoZSBXaXJlbGVzcyBFdGhlcm5ldCBEaXNwYXRjaGVyLiBUaGUgY29tbWl0IG1lc3NhZ2UgY2xhcmlmaWVzIHRoYXQgaXQncyBkZWFsaW5nIHdpdGggYSBzcGVjaWZpYyBoYXJkd2FyZSBxdWlyayBpbiB0aGUgTVQ3OTg2IChGaWxvZ2ljIDgzMCkgU29DOyBpdCdzIGEgaGFyZHdhcmUgb2ZmbG9hZCBlbmdpbmUuIFRoZSBmaXggY29uY2VybnMgYWxsb2NhdGlvbiBvZiByZWNlaXZlIGFuZCB0cmFuc21pdCByaW5ncyBhbmQgV0RNQSBjaGFubmVscywgc3BlY2lmaWNhbGx5IG5lZWRpbmcgdG8gYWxsb2NhdGUgYW4gZXh0cmEgYHR4X3dkbWFgIGNoYW5uZWwgZm9yIFdFRCB0byBmdW5jdGlvbiBjb3JyZWN0bHkuIFRoaXMgaXMgdmVyeSBoYXJkd2FyZS1zcGVjaWZpYy5cblxuTXkgaW5pdGlhbCB0aG91Z2h0IHdhcyBtYXliZSBzeXprYWxsZXIgY291bGQgaW5qZWN0IGEgZGV2aWNlIHRyZWUgbm9kZSBmb3IgcGxhdGZvcm0gZGV2aWNlcy4gSG93ZXZlciwgdGhhdCdzIGxpbWl0ZWQsIGFuZCB3aXRob3V0IHRoZSBhY3R1YWwgaGFyZHdhcmUgb3IgYSByb2J1c3QgbW9jaywgaXQncyB1bmxpa2VseSB0byBnZXQgYW55d2hlcmUuXG5cbkhvbGQgb24sIHRoZSBwcm9tcHQgcHJvdmlkZXMgdGhlIGtleTogXCJSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zIGNvZGUgaW4gdmVuZG9yLXNwZWNpZmljLi4uIGRyaXZlcnMgdGhhdCByZXF1aXJlIHBoeXNpY2FsLi4uIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlwiIFRoaXMgZGlyZWN0bHkgYXBwbGllcy4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBTb0MgRXRoZXJuZXQvV2lGaSBvZmZsb2FkIGRyaXZlciEgSXQgKnJlcXVpcmVzKiBNZWRpYVRlayBTb0MgaGFyZHdhcmUuXG5cbkp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLCBsZXQncyBzZWUgaWYgUUVNVSBldmVuICpwcmV0ZW5kcyogdG8gaGF2ZSBNVDc5ODYgc3VwcG9ydC4gSXQgZG9lcyBlbXVsYXRlIHNvbWUgTWVkaWFUZWsgYm9hcmRzLCBidXQgYSBxdWljayBjaGVjayByZXZlYWxzIHRoYXQgc3RhbmRhcmQgUUVNVSBkb2VzIG5vdCBzdXBwb3J0IE1UNzk4NiBvciBhbnkgc2ltaWxhciBib2FyZC4gRXZlbiBpZiBpdCAqZGlkKiwgdGhlIGBtdGtfd2VkYCBpcyBhIHNwZWNpYWxpemVkIGhhcmR3YXJlIG9mZmxvYWQgZW5naW5lOyBpdCdzIGV4dHJlbWVseSB1bmxpa2VseSB0byBiZSBlbXVsYXRlZCBhY2N1cmF0ZWx5LlxuXG5UaGVyZWZvcmUsIGJlY2F1c2UgdGhpcyBjaGFuZ2UgdGFyZ2V0cyBhIGhhcmR3YXJlLXNwZWNpZmljIG9mZmxvYWQgZHJpdmVyIGZvciBNZWRpYVRlayBTb0NzIG5vdCBlbXVsYXRlZCBpbiB0aGUgc3RhbmRhcmQgUUVNVSBmdXp6aW5nIGVudmlyb25tZW50LCBJJ20gcmV0dXJuaW5nIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGUgcGF0Y2ggbW9kaWZpZXMgTWVkaWFUZWsncyBXRUQgZHJpdmVyIHdoaWNoIHJlbGllcyBvbiB0aGUgcGh5c2ljYWwgaGFyZHdhcmUgYW5kIGlzbid0IGFjY2Vzc2libGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozODUyMywiT3V0cHV0VG9rZW5zIjo5NiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU5NCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDA2OjU2OjUwLjQ5MTM3MTMyNVoiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0NzYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYVRlayBXaXJlbGVzcyBFdGhlcm5ldCBEaXNwYXRjaGVyIChXRUQpIGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBvZmZsb2FkIGVuZ2luZSBmb3IgTWVkaWFUZWsgU29DcyAoZS5nLiwgTVQ3OTg2KS4gVGhpcyBjb2RlIHJlcXVpcmVzIHBoeXNpY2FsIE1lZGlhVGVrIGhhcmR3YXJlIGFuZCBpcyBub3QgcmVhY2hhYmxlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgdXNlZCBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYVRlayBXaXJlbGVzcyBFdGhlcm5ldCBEaXNwYXRjaGVyIChXRUQpIGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBvZmZsb2FkIGVuZ2luZSBmb3IgTWVkaWFUZWsgU29DcyAoZS5nLiwgTVQ3OTg2KS4gVGhpcyBjb2RlIHJlcXVpcmVzIHBoeXNpY2FsIE1lZGlhVGVrIGhhcmR3YXJlIGFuZCBpcyBub3QgcmVhY2hhYmxlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgdXNlZCBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflows7mhj[1] Phase: Running StartedAt: 2026-07-26 06:57:54 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7mhj[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-26 06:57:54 +0000 UTC FinishedAt: 2026-07-26 06:58:39 +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,}