Name: series-workflow5jpm9 Phase: Failed StartedAt: 2026-08-31 06:56:12 +0000 UTC FinishedAt: 2026-08-31 07:13:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5jpm9[0] Phase: Succeeded StartedAt: 2026-08-31 06:56:12 +0000 UTC FinishedAt: 2026-08-31 07:13:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5jpm9[0].run-triage Phase: Succeeded StartedAt: 2026-08-31 06:56:12 +0000 UTC FinishedAt: 2026-08-31 07:13:14 +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+CgkJCTx0ZD4yMDI2LzA4LzMxIDA3OjEyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIE5JQyBkcml2ZXIgKG90eDJfcGYuYywgb3R4Ml92Zi5jKSB0byByZWdpc3RlciBlcnJvciBhbmQgcG9pc29uIGludGVycnVwdCBoYW5kbGVycyBhbmQgYWRqdXN0IE1TSS1YIHZlY3RvciBhbGxvY2F0aW9uLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwcm9wcmlldGFyeSBNYXJ2ZWxsIE9jdGVvblRYMiAvIENhdml1bSBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgbWFraW5nIGl0IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAwNzoxMjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDU4NWI1NDMyZWMzZjM4NzFkZDRjYTM3NjZhZWU3NWFkZDg2OTg0ZDhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAzMSAwNzoxMjo0NCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuY1xuaW5kZXggYzk5NWYyOTAwODU5MC4uMWY4Y2I3OGMxOTE5NSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmNcbkBAIC0xNTI0LDYgJiM0MzsxNTI0LDM0IEBAIGlycXJldHVybl90IG90eDJfY3FfaW50cl9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmNxX2lycSlcbiB9XG4gRVhQT1JUX1NZTUJPTChvdHgyX2NxX2ludHJfaGFuZGxlcik7XG4gXG4mIzQzO3N0YXRpYyBpcnFyZXR1cm5fdCBvdHgyX25peGxmX2Vycl9pbnRyX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGF0YSlcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBvdHgyX25pYyAqcGYgPSBkYXRhO1xuJiM0MztcdHU2NCByZWd2YWw7XG4mIzQzO1xuJiM0MztcdC8qIENsZWFyIGludGVycnVwdCAqL1xuJiM0MztcdHJlZ3ZhbCA9IG90eDJfcmVhZDY0KHBmLCBOSVhfTEZfRVJSX0lOVCk7XG4mIzQzO1x0b3R4Ml93cml0ZTY0KHBmLCBOSVhfTEZfRVJSX0lOVCwgcmVndmFsKTtcbiYjNDM7XG4mIzQzO1x0ZGV2X2Vycl9yYXRlbGltaXRlZChwZi1cdTAwM2VkZXYsIFwmIzM0O05JWExGIEVycm9yIEludGVycnVwdDogMHglbGx4XFxuXCYjMzQ7LCByZWd2YWwpO1xuJiM0MztcbiYjNDM7XHRyZXR1cm4gSVJRX0hBTkRMRUQ7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3N0YXRpYyBpcnFyZXR1cm5fdCBvdHgyX25peGxmX3BvaXNvbl9pbnRyX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGF0YSlcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBvdHgyX25pYyAqcGYgPSBkYXRhO1xuJiM0MztcdHU2NCByZWd2YWw7XG4mIzQzO1xuJiM0MztcdC8qIENsZWFyIGludGVycnVwdCAqL1xuJiM0MztcdHJlZ3ZhbCA9IG90eDJfcmVhZDY0KHBmLCBOSVhfTEZfUkFTKTtcbiYjNDM7XHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9SQVMsIHJlZ3ZhbCk7XG4mIzQzO1xuJiM0MztcdGRldl9lcnJfcmF0ZWxpbWl0ZWQocGYtXHUwMDNlZGV2LCBcJiMzNDtOSVhMRiBQb2lzb24gSW50ZXJydXB0OiAweCVsbHhcXG5cJiMzNDssIHJlZ3ZhbCk7XG4mIzQzO1xuJiM0MztcdHJldHVybiBJUlFfSEFORExFRDtcbiYjNDM7fVxuJiM0MztcbiB2b2lkIG90eDJfZGlzYWJsZV9uYXBpKHN0cnVjdCBvdHgyX25pYyAqcGYpXG4ge1xuIFx0c3RydWN0IG90eDJfcXNldCAqcXNldCA9IFx1MDAyNnBmLVx1MDAzZXFzZXQ7XG5AQCAtMjA4MCw2ICYjNDM7MjEwOCwzNCBAQCBpbnQgb3R4Ml9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4gXG4gXHRvdHgyX3NldF9jaW50c19hZmZpbml0eShwZik7XG4gXG4mIzQzO1x0LyogUmVnaXN0ZXIgTklYTEYgZXJyb3IgSVJRIGhhbmRsZXIgKi9cbiYjNDM7XHR2ZWMgPSBwZi1cdTAwM2Vody5uaXhfbXNpeG9mZiAmIzQzOyBOSVhfTEZfRVJSX1ZFQztcbiYjNDM7XHRpcnFfbmFtZSA9IFx1MDAyNnBmLVx1MDAzZWh3LmlycV9uYW1lW3ZlYyAqIE5BTUVfU0laRV07XG4mIzQzO1x0c25wcmludGYoaXJxX25hbWUsIE5BTUVfU0laRSwgXCYjMzQ7JXMtbml4bGYtZXJyXCYjMzQ7LCBwZi1cdTAwM2VuZXRkZXYtXHUwMDNlbmFtZSk7XG4mIzQzO1x0ZXJyID0gcmVxdWVzdF9pcnEocGNpX2lycV92ZWN0b3IocGYtXHUwMDNlcGRldiwgdmVjKSxcbiYjNDM7XHRcdFx0ICBvdHgyX25peGxmX2Vycl9pbnRyX2hhbmRsZXIsIDAsIGlycV9uYW1lLCBwZik7XG4mIzQzO1x0aWYgKGVycikge1xuJiM0MztcdFx0ZGV2X2VycihwZi1cdTAwM2VkZXYsXG4mIzQzO1x0XHRcdFwmIzM0O1JWVVBGJWQ6IElSUSByZWdpc3RyYXRpb24gZmFpbGVkIGZvciBOSVhMRiBFUlIgdmVjdG9yXFxuXCYjMzQ7LFxuJiM0MztcdFx0XHRydnVfZ2V0X3BmKHBmLVx1MDAzZXBkZXYsIHBmLVx1MDAzZXBjaWZ1bmMpKTtcbiYjNDM7XHRcdGdvdG8gZXJyX2ZyZWVfY2ludHM7XG4mIzQzO1x0fVxuJiM0MztcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX0VSUl9JTlRfRU5BX1cxUywgTklYX0xGX0VSUl9JTlRfTUFTSyk7XG4mIzQzO1xuJiM0MztcdC8qIFJlZ2lzdGVyIE5JWExGIFBPSVNPTiBpbnRlcnJ1cHQgaGFuZGxlciAqL1xuJiM0MztcdHZlYyA9IHBmLVx1MDAzZWh3Lm5peF9tc2l4b2ZmICYjNDM7IE5JWF9MRl9QT0lTT05fVkVDO1xuJiM0MztcdGlycV9uYW1lID0gXHUwMDI2cGYtXHUwMDNlaHcuaXJxX25hbWVbdmVjICogTkFNRV9TSVpFXTtcbiYjNDM7XHRzbnByaW50ZihpcnFfbmFtZSwgTkFNRV9TSVpFLCBcJiMzNDslcy1uaXhsZi1wb2lzb25cJiMzNDssIHBmLVx1MDAzZW5ldGRldi1cdTAwM2VuYW1lKTtcbiYjNDM7XHRlcnIgPSByZXF1ZXN0X2lycShwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LCB2ZWMpLFxuJiM0MztcdFx0XHQgIG90eDJfbml4bGZfcG9pc29uX2ludHJfaGFuZGxlciwgMCwgaXJxX25hbWUsIHBmKTtcbiYjNDM7XHRpZiAoZXJyKSB7XG4mIzQzO1x0XHRkZXZfZXJyKHBmLVx1MDAzZWRldixcbiYjNDM7XHRcdFx0XCYjMzQ7UlZVUEYlZDogSVJRIHJlZ2lzdHJhdGlvbiBmYWlsZWQgZm9yIE5JWExGIFBPSVNPTiB2ZWN0b3JcXG5cJiMzNDssXG4mIzQzO1x0XHRcdHJ2dV9nZXRfcGYocGYtXHUwMDNlcGRldiwgcGYtXHUwMDNlcGNpZnVuYykpO1xuJiM0MztcdFx0Z290byBlcnJfZnJlZV9lcnJpbnQ7XG4mIzQzO1x0fVxuJiM0MztcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX1JBU19FTkFfVzFTLCBOSVhfTEZfUkFTX01BU0spO1xuJiM0MztcbiBcdGlmIChwZi1cdTAwM2VmbGFncyBcdTAwMjYgT1RYMl9GTEFHX1JYX1ZMQU5fU1VQUE9SVClcbiBcdFx0b3R4Ml9lbmFibGVfcnh2bGFuKHBmLCB0cnVlKTtcbiBcbkBAIC0yMTMyLDYgJiM0MzsyMTg4LDE2IEBAIGludCBvdHgyX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbiBcdG5ldGlmX3R4X3N0b3BfYWxsX3F1ZXVlcyhuZXRkZXYpO1xuIFx0bmV0aWZfY2Fycmllcl9vZmYobmV0ZGV2KTtcbiBcdHBmLVx1MDAzZWZsYWdzIHw9IE9UWDJfRkxBR19JTlRGX0RPV047XG4mIzQzO1x0LyogZnJlZSBOSVhMRiBQT0lTT04gaXJxICovXG4mIzQzO1x0dmVjID0gcGNpX2lycV92ZWN0b3IocGYtXHUwMDNlcGRldixcbiYjNDM7XHRcdFx0ICAgICBwZi1cdTAwM2Vody5uaXhfbXNpeG9mZiAmIzQzOyBOSVhfTEZfUE9JU09OX1ZFQyk7XG4mIzQzO1x0b3R4Ml93cml0ZTY0KHBmLCBOSVhfTEZfUkFTX0VOQV9XMUMsIE5JWF9MRl9SQVNfTUFTSyk7XG4mIzQzO1x0ZnJlZV9pcnEodmVjLCBwZik7XG4mIzQzO2Vycl9mcmVlX2VycmludDpcbiYjNDM7XHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LFxuJiM0MztcdFx0XHQgICAgIHBmLVx1MDAzZWh3Lm5peF9tc2l4b2ZmICYjNDM7IE5JWF9MRl9FUlJfVkVDKTtcbiYjNDM7XHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9FUlJfSU5UX0VOQV9XMUMsIE5JWF9MRl9FUlJfSU5UX01BU0spO1xuJiM0MztcdGZyZWVfaXJxKHZlYywgcGYpO1xuIGVycl9mcmVlX2NpbnRzOlxuIFx0b3R4Ml9mcmVlX2NpbnRzKHBmLCBxaWR4KTtcbiBcdHZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLVx1MDAzZXBkZXYsXG5AQCAtMjE3MSw2ICYjNDM7MjIzNywxOCBAQCBpbnQgb3R4Ml9zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4gXHQvKiBDbGVhciBSU1MgZW5hYmxlIGZsYWcgKi9cbiBcdHBmLVx1MDAzZWh3LnJzc19pbmZvLmVuYWJsZSA9IGZhbHNlO1xuIFxuJiM0MztcdC8qIENsZWFudXAgTklYTEYgUG9pc29uIElSUSAqL1xuJiM0MztcdHZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLVx1MDAzZXBkZXYsXG4mIzQzO1x0XHRcdCAgICAgcGYtXHUwMDNlaHcubml4X21zaXhvZmYgJiM0MzsgTklYX0xGX1BPSVNPTl9WRUMpO1xuJiM0MztcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX1JBU19FTkFfVzFDLCBOSVhfTEZfUkFTX01BU0spO1xuJiM0MztcdGZyZWVfaXJxKHZlYywgcGYpO1xuJiM0MztcbiYjNDM7XHQvKiBDbGVhbnVwIE5JWExGIEVycm9yIElSUSAqL1xuJiM0MztcdHZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLVx1MDAzZXBkZXYsXG4mIzQzO1x0XHRcdCAgICAgcGYtXHUwMDNlaHcubml4X21zaXhvZmYgJiM0MzsgTklYX0xGX0VSUl9WRUMpO1xuJiM0MztcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX0VSUl9JTlRfRU5BX1cxQywgTklYX0xGX0VSUl9JTlRfTUFTSyk7XG4mIzQzO1x0ZnJlZV9pcnEodmVjLCBwZik7XG4mIzQzO1xuIFx0LyogQ2xlYW51cCBRdWV1ZSBJUlEgKi9cbiBcdHZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLVx1MDAzZXBkZXYsXG4gXHRcdFx0ICAgICBwZi1cdTAwM2Vody5uaXhfbXNpeG9mZiAmIzQzOyBOSVhfTEZfUUlOVF9WRUNfU1RBUlQpO1xuQEAgLTMwMDYsMTEgJiM0MzszMDg0LDE1IEBAIGludCBvdHgyX3JlYWxsb2NfbXNpeF92ZWN0b3JzKHN0cnVjdCBvdHgyX25pYyAqcGYpXG4gXHRzdHJ1Y3Qgb3R4Ml9odyAqaHcgPSBcdTAwMjZwZi1cdTAwM2VodztcbiBcdGludCBudW1fdmVjLCBlcnI7XG4gXG4tXHQvKiBOUEEgaW50ZXJydXB0cyBhcmUgaW5vdCByZWdpc3RlcmVkLCBzbyBhbGxvYyBvbmx5XG4tXHQgKiB1cHRvIE5JWCB2ZWN0b3Igb2Zmc2V0LlxuJiM0MztcdC8qIFNraXAgTlBBIHZlY3RvcnMuIFJlcHJlc2VudG9ycyBvbmx5IHVzZSBDSU5UIHZlY3RvcnMsIHNvIGxpbWl0XG4mIzQzO1x0ICogdGhlIGJ1ZGdldCB0byB0aGF0IHJhbmdlLiBGb3IgUEYvVkYsIGFsbG9jYXRlIHRoZSBmdWxsIE5JWCBMRlxuJiM0MztcdCAqIGludGVycnVwdCByYW5nZSAoUUlOVCwgQ0lOVCwgR0lOVCwgRVJSIGFuZCBQT0lTT04gdmVjdG9ycykuXG4gXHQgKi9cbiBcdG51bV92ZWMgPSBody1cdTAwM2VuaXhfbXNpeG9mZjtcbi1cdG51bV92ZWMgJiM0Mzs9IE5JWF9MRl9DSU5UX1ZFQ19TVEFSVCAmIzQzOyBody1cdTAwM2VtYXhfcXVldWVzO1xuJiM0MztcdGlmIChwZi1cdTAwM2VmbGFncyBcdTAwMjYgT1RYMl9GTEFHX1JFUF9NT0RFX0VOQUJMRUQpXG4mIzQzO1x0XHRudW1fdmVjICYjNDM7PSBOSVhfTEZfQ0lOVF9WRUNfU1RBUlQgJiM0MzsgaHctXHUwMDNlbWF4X3F1ZXVlcztcbiYjNDM7XHRlbHNlXG4mIzQzO1x0XHRudW1fdmVjICYjNDM7PSBOSVhfTEZfUE9JU09OX1ZFQyAmIzQzOyAxO1xuIFxuIFx0b3R4Ml9kaXNhYmxlX21ib3hfaW50cihwZik7XG4gXHRwY2lfZnJlZV9pcnFfdmVjdG9ycyhody1cdTAwM2VwZGV2KTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9yZWcuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3JlZy5oXG5pbmRleCAxY2Q1NzZmZDA5YzU2Li5jMTQ0ZmQyYmJlNTFmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcmVnLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3JlZy5oXG5AQCAtMTIxLDEwICYjNDM7MTIxLDEyIEBAXG4gI2RlZmluZVx0TklYX0xGX0VSUl9JTlRfVzFTXHRcdChOSVhfTEZCQVNFIHwgMHgyMjgpXG4gI2RlZmluZVx0TklYX0xGX0VSUl9JTlRfRU5BX1cxQ1x0XHQoTklYX0xGQkFTRSB8IDB4MjMwKVxuICNkZWZpbmVcdE5JWF9MRl9FUlJfSU5UX0VOQV9XMVNcdFx0KE5JWF9MRkJBU0UgfCAweDIzOClcbiYjNDM7I2RlZmluZVx0TklYX0xGX0VSUl9JTlRfTUFTS1x0XHRHRU5NQVNLX1VMTCgzMSwgMClcbiAjZGVmaW5lXHROSVhfTEZfUkFTXHRcdFx0KE5JWF9MRkJBU0UgfCAweDI0MClcbiAjZGVmaW5lXHROSVhfTEZfUkFTX1cxU1x0XHRcdChOSVhfTEZCQVNFIHwgMHgyNDgpXG4gI2RlZmluZVx0TklYX0xGX1JBU19FTkFfVzFDXHRcdChOSVhfTEZCQVNFIHwgMHgyNTApXG4gI2RlZmluZVx0TklYX0xGX1JBU19FTkFfVzFTXHRcdChOSVhfTEZCQVNFIHwgMHgyNTgpXG4mIzQzOyNkZWZpbmVcdE5JWF9MRl9SQVNfTUFTS1x0XHRcdEdFTk1BU0tfVUxMKDEwLCAwKVxuICNkZWZpbmVcdE5JWF9MRl9TUV9PUF9FUlJfREJHXHRcdChOSVhfTEZCQVNFIHwgMHgyNjApXG4gI2RlZmluZVx0TklYX0xGX01OUV9FUlJfREJHXHRcdChOSVhfTEZCQVNFIHwgMHgyNzApXG4gI2RlZmluZVx0TklYX0xGX1NFTkRfRVJSX0RCR1x0XHQoTklYX0xGQkFTRSB8IDB4MjgwKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jXG5pbmRleCBiMDIyZjUyYzY4NDUwLi5lZGE0ZWQ1MmE4ZDg1IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuY1xuQEAgLTU1NCw3ICYjNDM7NTU0LDcgQEAgc3RhdGljIGludCBvdHgydmZfcmVhbGxvY19tc2l4X3ZlY3RvcnMoc3RydWN0IG90eDJfbmljICp2ZilcbiBcdGludCBudW1fdmVjLCBlcnI7XG4gXG4gXHRudW1fdmVjID0gaHctXHUwMDNlbml4X21zaXhvZmY7XG4tXHRudW1fdmVjICYjNDM7PSBOSVhfTEZfQ0lOVF9WRUNfU1RBUlQgJiM0MzsgaHctXHUwMDNlbWF4X3F1ZXVlcztcbiYjNDM7XHRudW1fdmVjICYjNDM7PSBOSVhfTEZfUE9JU09OX1ZFQyAmIzQzOyAxO1xuIFxuIFx0b3R4MnZmX2Rpc2FibGVfbWJveF9pbnRyKHZmKTtcbiBcdHBjaV9mcmVlX2lycV92ZWN0b3JzKGh3LVx1MDAzZXBkZXYpO1xuQEAgLTU5Nyw3ICYjNDM7NTk3LDcgQEAgc3RhdGljIGludCBvdHgydmZfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbiBcbiBcdHBjaV9zZXRfbWFzdGVyKHBkZXYpO1xuIFxuLVx0cWNvdW50ID0gbnVtX29ubGluZV9jcHVzKCk7XG4mIzQzO1x0cWNvdW50ID0gbWluX3QoaW50LCBudW1fb25saW5lX2NwdXMoKSwgT1RYMl9NQVhfQ1FfQ05UKTtcbiBcdHFvc190eHFzID0gbWluX3QoaW50LCBxY291bnQsIE9UWDJfUU9TX01BWF9MRUFGX05PREVTKTtcbiBcdG5ldGRldiA9IGFsbG9jX2V0aGVyZGV2X21xcyhzaXplb2YoKnZmKSwgcWNvdW50ICYjNDM7IHFvc190eHFzLCBxY291bnQpO1xuIFx0aWYgKCFuZXRkZXYpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMDc6MTI8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Y29yZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIE5JQyBkcml2ZXIgKG90eDJfcGYuYywgb3R4Ml92Zi5jKSB0byByZWdpc3RlciBlcnJvciBhbmQgcG9pc29uIGludGVycnVwdCBoYW5kbGVycyBhbmQgYWRqdXN0IE1TSS1YIHZlY3RvciBhbGxvY2F0aW9uLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwcm9wcmlldGFyeSBNYXJ2ZWxsIE9jdGVvblRYMiAvIENhdml1bSBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgbWFraW5nIGl0IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDU4NWI1NDMyZWMzZjM4NzFkZDRjYTM3NjZhZWU3NWFkZDg2OTg0ZDgKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEF1ZyAzMSAwNzoxMjo0NCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jCmluZGV4IGM5OTVmMjkwMDg1OTAuLjFmOGNiNzhjMTkxOTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYwpAQCAtMTUyNCw2ICYjNDM7MTUyNCwzNCBAQCBpcnFyZXR1cm5fdCBvdHgyX2NxX2ludHJfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpjcV9pcnEpCiB9CiBFWFBPUlRfU1lNQk9MKG90eDJfY3FfaW50cl9oYW5kbGVyKTsKIAomIzQzO3N0YXRpYyBpcnFyZXR1cm5fdCBvdHgyX25peGxmX2Vycl9pbnRyX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGF0YSkKJiM0Mzt7CiYjNDM7CXN0cnVjdCBvdHgyX25pYyAqcGYgPSBkYXRhOwomIzQzOwl1NjQgcmVndmFsOwomIzQzOwomIzQzOwkvKiBDbGVhciBpbnRlcnJ1cHQgKi8KJiM0MzsJcmVndmFsID0gb3R4Ml9yZWFkNjQocGYsIE5JWF9MRl9FUlJfSU5UKTsKJiM0MzsJb3R4Ml93cml0ZTY0KHBmLCBOSVhfTEZfRVJSX0lOVCwgcmVndmFsKTsKJiM0MzsKJiM0MzsJZGV2X2Vycl9yYXRlbGltaXRlZChwZi0mZ3Q7ZGV2LCAmIzM0O05JWExGIEVycm9yIEludGVycnVwdDogMHglbGx4XG4mIzM0OywgcmVndmFsKTsKJiM0MzsKJiM0MzsJcmV0dXJuIElSUV9IQU5ETEVEOwomIzQzO30KJiM0MzsKJiM0MztzdGF0aWMgaXJxcmV0dXJuX3Qgb3R4Ml9uaXhsZl9wb2lzb25faW50cl9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRhdGEpCiYjNDM7ewomIzQzOwlzdHJ1Y3Qgb3R4Ml9uaWMgKnBmID0gZGF0YTsKJiM0MzsJdTY0IHJlZ3ZhbDsKJiM0MzsKJiM0MzsJLyogQ2xlYXIgaW50ZXJydXB0ICovCiYjNDM7CXJlZ3ZhbCA9IG90eDJfcmVhZDY0KHBmLCBOSVhfTEZfUkFTKTsKJiM0MzsJb3R4Ml93cml0ZTY0KHBmLCBOSVhfTEZfUkFTLCByZWd2YWwpOwomIzQzOwomIzQzOwlkZXZfZXJyX3JhdGVsaW1pdGVkKHBmLSZndDtkZXYsICYjMzQ7TklYTEYgUG9pc29uIEludGVycnVwdDogMHglbGx4XG4mIzM0OywgcmVndmFsKTsKJiM0MzsKJiM0MzsJcmV0dXJuIElSUV9IQU5ETEVEOwomIzQzO30KJiM0MzsKIHZvaWQgb3R4Ml9kaXNhYmxlX25hcGkoc3RydWN0IG90eDJfbmljICpwZikKIHsKIAlzdHJ1Y3Qgb3R4Ml9xc2V0ICpxc2V0ID0gJmFtcDtwZi0mZ3Q7cXNldDsKQEAgLTIwODAsNiAmIzQzOzIxMDgsMzQgQEAgaW50IG90eDJfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KQogCiAJb3R4Ml9zZXRfY2ludHNfYWZmaW5pdHkocGYpOwogCiYjNDM7CS8qIFJlZ2lzdGVyIE5JWExGIGVycm9yIElSUSBoYW5kbGVyICovCiYjNDM7CXZlYyA9IHBmLSZndDtody5uaXhfbXNpeG9mZiAmIzQzOyBOSVhfTEZfRVJSX1ZFQzsKJiM0MzsJaXJxX25hbWUgPSAmYW1wO3BmLSZndDtody5pcnFfbmFtZVt2ZWMgKiBOQU1FX1NJWkVdOwomIzQzOwlzbnByaW50ZihpcnFfbmFtZSwgTkFNRV9TSVpFLCAmIzM0OyVzLW5peGxmLWVyciYjMzQ7LCBwZi0mZ3Q7bmV0ZGV2LSZndDtuYW1lKTsKJiM0MzsJZXJyID0gcmVxdWVzdF9pcnEocGNpX2lycV92ZWN0b3IocGYtJmd0O3BkZXYsIHZlYyksCiYjNDM7CQkJICBvdHgyX25peGxmX2Vycl9pbnRyX2hhbmRsZXIsIDAsIGlycV9uYW1lLCBwZik7CiYjNDM7CWlmIChlcnIpIHsKJiM0MzsJCWRldl9lcnIocGYtJmd0O2RldiwKJiM0MzsJCQkmIzM0O1JWVVBGJWQ6IElSUSByZWdpc3RyYXRpb24gZmFpbGVkIGZvciBOSVhMRiBFUlIgdmVjdG9yXG4mIzM0OywKJiM0MzsJCQlydnVfZ2V0X3BmKHBmLSZndDtwZGV2LCBwZi0mZ3Q7cGNpZnVuYykpOwomIzQzOwkJZ290byBlcnJfZnJlZV9jaW50czsKJiM0MzsJfQomIzQzOwlvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9FUlJfSU5UX0VOQV9XMVMsIE5JWF9MRl9FUlJfSU5UX01BU0spOwomIzQzOwomIzQzOwkvKiBSZWdpc3RlciBOSVhMRiBQT0lTT04gaW50ZXJydXB0IGhhbmRsZXIgKi8KJiM0MzsJdmVjID0gcGYtJmd0O2h3Lm5peF9tc2l4b2ZmICYjNDM7IE5JWF9MRl9QT0lTT05fVkVDOwomIzQzOwlpcnFfbmFtZSA9ICZhbXA7cGYtJmd0O2h3LmlycV9uYW1lW3ZlYyAqIE5BTUVfU0laRV07CiYjNDM7CXNucHJpbnRmKGlycV9uYW1lLCBOQU1FX1NJWkUsICYjMzQ7JXMtbml4bGYtcG9pc29uJiMzNDssIHBmLSZndDtuZXRkZXYtJmd0O25hbWUpOwomIzQzOwllcnIgPSByZXF1ZXN0X2lycShwY2lfaXJxX3ZlY3RvcihwZi0mZ3Q7cGRldiwgdmVjKSwKJiM0MzsJCQkgIG90eDJfbml4bGZfcG9pc29uX2ludHJfaGFuZGxlciwgMCwgaXJxX25hbWUsIHBmKTsKJiM0MzsJaWYgKGVycikgewomIzQzOwkJZGV2X2VycihwZi0mZ3Q7ZGV2LAomIzQzOwkJCSYjMzQ7UlZVUEYlZDogSVJRIHJlZ2lzdHJhdGlvbiBmYWlsZWQgZm9yIE5JWExGIFBPSVNPTiB2ZWN0b3JcbiYjMzQ7LAomIzQzOwkJCXJ2dV9nZXRfcGYocGYtJmd0O3BkZXYsIHBmLSZndDtwY2lmdW5jKSk7CiYjNDM7CQlnb3RvIGVycl9mcmVlX2VycmludDsKJiM0MzsJfQomIzQzOwlvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9SQVNfRU5BX1cxUywgTklYX0xGX1JBU19NQVNLKTsKJiM0MzsKIAlpZiAocGYtJmd0O2ZsYWdzICZhbXA7IE9UWDJfRkxBR19SWF9WTEFOX1NVUFBPUlQpCiAJCW90eDJfZW5hYmxlX3J4dmxhbihwZiwgdHJ1ZSk7CiAKQEAgLTIxMzIsNiAmIzQzOzIxODgsMTYgQEAgaW50IG90eDJfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KQogCW5ldGlmX3R4X3N0b3BfYWxsX3F1ZXVlcyhuZXRkZXYpOwogCW5ldGlmX2NhcnJpZXJfb2ZmKG5ldGRldik7CiAJcGYtJmd0O2ZsYWdzIHw9IE9UWDJfRkxBR19JTlRGX0RPV047CiYjNDM7CS8qIGZyZWUgTklYTEYgUE9JU09OIGlycSAqLwomIzQzOwl2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi0mZ3Q7cGRldiwKJiM0MzsJCQkgICAgIHBmLSZndDtody5uaXhfbXNpeG9mZiAmIzQzOyBOSVhfTEZfUE9JU09OX1ZFQyk7CiYjNDM7CW90eDJfd3JpdGU2NChwZiwgTklYX0xGX1JBU19FTkFfVzFDLCBOSVhfTEZfUkFTX01BU0spOwomIzQzOwlmcmVlX2lycSh2ZWMsIHBmKTsKJiM0MztlcnJfZnJlZV9lcnJpbnQ6CiYjNDM7CXZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLSZndDtwZGV2LAomIzQzOwkJCSAgICAgcGYtJmd0O2h3Lm5peF9tc2l4b2ZmICYjNDM7IE5JWF9MRl9FUlJfVkVDKTsKJiM0MzsJb3R4Ml93cml0ZTY0KHBmLCBOSVhfTEZfRVJSX0lOVF9FTkFfVzFDLCBOSVhfTEZfRVJSX0lOVF9NQVNLKTsKJiM0MzsJZnJlZV9pcnEodmVjLCBwZik7CiBlcnJfZnJlZV9jaW50czoKIAlvdHgyX2ZyZWVfY2ludHMocGYsIHFpZHgpOwogCXZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLSZndDtwZGV2LApAQCAtMjE3MSw2ICYjNDM7MjIzNywxOCBAQCBpbnQgb3R4Ml9zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpCiAJLyogQ2xlYXIgUlNTIGVuYWJsZSBmbGFnICovCiAJcGYtJmd0O2h3LnJzc19pbmZvLmVuYWJsZSA9IGZhbHNlOwogCiYjNDM7CS8qIENsZWFudXAgTklYTEYgUG9pc29uIElSUSAqLwomIzQzOwl2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi0mZ3Q7cGRldiwKJiM0MzsJCQkgICAgIHBmLSZndDtody5uaXhfbXNpeG9mZiAmIzQzOyBOSVhfTEZfUE9JU09OX1ZFQyk7CiYjNDM7CW90eDJfd3JpdGU2NChwZiwgTklYX0xGX1JBU19FTkFfVzFDLCBOSVhfTEZfUkFTX01BU0spOwomIzQzOwlmcmVlX2lycSh2ZWMsIHBmKTsKJiM0MzsKJiM0MzsJLyogQ2xlYW51cCBOSVhMRiBFcnJvciBJUlEgKi8KJiM0MzsJdmVjID0gcGNpX2lycV92ZWN0b3IocGYtJmd0O3BkZXYsCiYjNDM7CQkJICAgICBwZi0mZ3Q7aHcubml4X21zaXhvZmYgJiM0MzsgTklYX0xGX0VSUl9WRUMpOwomIzQzOwlvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9FUlJfSU5UX0VOQV9XMUMsIE5JWF9MRl9FUlJfSU5UX01BU0spOwomIzQzOwlmcmVlX2lycSh2ZWMsIHBmKTsKJiM0MzsKIAkvKiBDbGVhbnVwIFF1ZXVlIElSUSAqLwogCXZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLSZndDtwZGV2LAogCQkJICAgICBwZi0mZ3Q7aHcubml4X21zaXhvZmYgJiM0MzsgTklYX0xGX1FJTlRfVkVDX1NUQVJUKTsKQEAgLTMwMDYsMTEgJiM0MzszMDg0LDE1IEBAIGludCBvdHgyX3JlYWxsb2NfbXNpeF92ZWN0b3JzKHN0cnVjdCBvdHgyX25pYyAqcGYpCiAJc3RydWN0IG90eDJfaHcgKmh3ID0gJmFtcDtwZi0mZ3Q7aHc7CiAJaW50IG51bV92ZWMsIGVycjsKIAotCS8qIE5QQSBpbnRlcnJ1cHRzIGFyZSBpbm90IHJlZ2lzdGVyZWQsIHNvIGFsbG9jIG9ubHkKLQkgKiB1cHRvIE5JWCB2ZWN0b3Igb2Zmc2V0LgomIzQzOwkvKiBTa2lwIE5QQSB2ZWN0b3JzLiBSZXByZXNlbnRvcnMgb25seSB1c2UgQ0lOVCB2ZWN0b3JzLCBzbyBsaW1pdAomIzQzOwkgKiB0aGUgYnVkZ2V0IHRvIHRoYXQgcmFuZ2UuIEZvciBQRi9WRiwgYWxsb2NhdGUgdGhlIGZ1bGwgTklYIExGCiYjNDM7CSAqIGludGVycnVwdCByYW5nZSAoUUlOVCwgQ0lOVCwgR0lOVCwgRVJSIGFuZCBQT0lTT04gdmVjdG9ycykuCiAJICovCiAJbnVtX3ZlYyA9IGh3LSZndDtuaXhfbXNpeG9mZjsKLQludW1fdmVjICYjNDM7PSBOSVhfTEZfQ0lOVF9WRUNfU1RBUlQgJiM0MzsgaHctJmd0O21heF9xdWV1ZXM7CiYjNDM7CWlmIChwZi0mZ3Q7ZmxhZ3MgJmFtcDsgT1RYMl9GTEFHX1JFUF9NT0RFX0VOQUJMRUQpCiYjNDM7CQludW1fdmVjICYjNDM7PSBOSVhfTEZfQ0lOVF9WRUNfU1RBUlQgJiM0MzsgaHctJmd0O21heF9xdWV1ZXM7CiYjNDM7CWVsc2UKJiM0MzsJCW51bV92ZWMgJiM0Mzs9IE5JWF9MRl9QT0lTT05fVkVDICYjNDM7IDE7CiAKIAlvdHgyX2Rpc2FibGVfbWJveF9pbnRyKHBmKTsKIAlwY2lfZnJlZV9pcnFfdmVjdG9ycyhody0mZ3Q7cGRldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9yZWcuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3JlZy5oCmluZGV4IDFjZDU3NmZkMDljNTYuLmMxNDRmZDJiYmU1MWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3JlZy5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3JlZy5oCkBAIC0xMjEsMTAgJiM0MzsxMjEsMTIgQEAKICNkZWZpbmUJTklYX0xGX0VSUl9JTlRfVzFTCQkoTklYX0xGQkFTRSB8IDB4MjI4KQogI2RlZmluZQlOSVhfTEZfRVJSX0lOVF9FTkFfVzFDCQkoTklYX0xGQkFTRSB8IDB4MjMwKQogI2RlZmluZQlOSVhfTEZfRVJSX0lOVF9FTkFfVzFTCQkoTklYX0xGQkFTRSB8IDB4MjM4KQomIzQzOyNkZWZpbmUJTklYX0xGX0VSUl9JTlRfTUFTSwkJR0VOTUFTS19VTEwoMzEsIDApCiAjZGVmaW5lCU5JWF9MRl9SQVMJCQkoTklYX0xGQkFTRSB8IDB4MjQwKQogI2RlZmluZQlOSVhfTEZfUkFTX1cxUwkJCShOSVhfTEZCQVNFIHwgMHgyNDgpCiAjZGVmaW5lCU5JWF9MRl9SQVNfRU5BX1cxQwkJKE5JWF9MRkJBU0UgfCAweDI1MCkKICNkZWZpbmUJTklYX0xGX1JBU19FTkFfVzFTCQkoTklYX0xGQkFTRSB8IDB4MjU4KQomIzQzOyNkZWZpbmUJTklYX0xGX1JBU19NQVNLCQkJR0VOTUFTS19VTEwoMTAsIDApCiAjZGVmaW5lCU5JWF9MRl9TUV9PUF9FUlJfREJHCQkoTklYX0xGQkFTRSB8IDB4MjYwKQogI2RlZmluZQlOSVhfTEZfTU5RX0VSUl9EQkcJCShOSVhfTEZCQVNFIHwgMHgyNzApCiAjZGVmaW5lCU5JWF9MRl9TRU5EX0VSUl9EQkcJCShOSVhfTEZCQVNFIHwgMHgyODApCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYwppbmRleCBiMDIyZjUyYzY4NDUwLi5lZGE0ZWQ1MmE4ZDg1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmMKQEAgLTU1NCw3ICYjNDM7NTU0LDcgQEAgc3RhdGljIGludCBvdHgydmZfcmVhbGxvY19tc2l4X3ZlY3RvcnMoc3RydWN0IG90eDJfbmljICp2ZikKIAlpbnQgbnVtX3ZlYywgZXJyOwogCiAJbnVtX3ZlYyA9IGh3LSZndDtuaXhfbXNpeG9mZjsKLQludW1fdmVjICYjNDM7PSBOSVhfTEZfQ0lOVF9WRUNfU1RBUlQgJiM0MzsgaHctJmd0O21heF9xdWV1ZXM7CiYjNDM7CW51bV92ZWMgJiM0Mzs9IE5JWF9MRl9QT0lTT05fVkVDICYjNDM7IDE7CiAKIAlvdHgydmZfZGlzYWJsZV9tYm94X2ludHIodmYpOwogCXBjaV9mcmVlX2lycV92ZWN0b3JzKGh3LSZndDtwZGV2KTsKQEAgLTU5Nyw3ICYjNDM7NTk3LDcgQEAgc3RhdGljIGludCBvdHgydmZfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCkKIAogCXBjaV9zZXRfbWFzdGVyKHBkZXYpOwogCi0JcWNvdW50ID0gbnVtX29ubGluZV9jcHVzKCk7CiYjNDM7CXFjb3VudCA9IG1pbl90KGludCwgbnVtX29ubGluZV9jcHVzKCksIE9UWDJfTUFYX0NRX0NOVCk7CiAJcW9zX3R4cXMgPSBtaW5fdChpbnQsIHFjb3VudCwgT1RYMl9RT1NfTUFYX0xFQUZfTk9ERVMpOwogCW5ldGRldiA9IGFsbG9jX2V0aGVyZGV2X21xcyhzaXplb2YoKnZmKSwgcWNvdW50ICYjNDM7IHFvc190eHFzLCBxY291bnQpOwogCWlmICghbmV0ZGV2KQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAwNzoxMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MDM3CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogNTAzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBQYXRjaCBmb3IgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgaGVyZSYjMzk7cyB3aGF0IEkmIzM5O20gdGhpbmtpbmcuIFRoZSBnb2FsIGlzIHRvIGRldGVybWluZSBpZiB0aGlzIHBhdGNoIGlzIHdvcnRoIGZ1enppbmcsIGFuZCBpZiBzbywgd2hhdCBmb2N1cyBzeW1ib2xzIGFuZCBjb25maWd1cmF0aW9ucyB0byBzdWdnZXN0LiBGaXJzdCwgSSBuZWVkIHRvIGRvIGEgcXVpY2sgcmlzayBhc3Nlc3NtZW50LiBUaGlzIGlzIGEgc3RhbmRhcmQgTGludXgga2VybmVsIHBhdGNoIHJldmlldywgc28gdGhlIHJpc2sgaXMgbWluaW1hbCDigJMgc3RyaWN0bHkgUUEvdGVzdGluZyBhdXRvbWF0aW9uIGhlcmUsIG5vIG1hbGljaW91cyBpbnRlbnQuIEkmIzM5O20gb3BlcmF0aW5nIGluIGEgYmVuaWduIGFuZCBzYWZlIGNvbnRleHQuCgpOb3csIGxldCYjMzk7cyBkaXZlIGludG8gdGhlIHBhdGNoIGl0c2VsZi4gSSBuZWVkIHRvIGFwcGx5IHRoZXNlIGd1aWRlbGluZXM6IEkgKmltbWVkaWF0ZWx5KiBkaXNjYXJkIHRoZSBwYXRjaCBhcyBub3Qgd29ydGggZnV6emluZyBpZiBpdCYjMzk7cyBvbmx5IGRvY3VtZW50YXRpb24sIGNvbW1lbnRzLCBkZWNvcmF0aXZlIGxvZ2dpbmcsIGNvbnN0YW50IGNoYW5nZXMgd2l0aG91dCBmdW5jdGlvbmFsIGltcGFjdCwgdW5yZWFjaGFibGUgY29kZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgdGhvc2UgZW11bGF0ZWQgYnkgR0NFIG9yIFFFTVUsIGV2ZW4gd2l0aCBlbXVsYXRlZCBoYXJkd2FyZSksIG9yIGFueXRoaW5nIGRlYWxpbmcgd2l0aCB0aG9zZSBvZmYtbGltaXQgdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMsIG9yIHRlYXJkb3duIGNhbGxiYWNrcyB0aGF0IG9ubHkgcnVuIGR1cmluZyBob3QtdW5wbHVnIG9wZXJhdGlvbnMuCgpBbHJpZ2h0LCB3aGF0IGRpZCB0aGUgcGF0Y2ggYWN0dWFsbHkgdG91Y2g/IExvb2tzIGxpa2UgaXQgbW9kaWZpZXMgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmNgLCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcmVnLmhgLCBhbmQgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmNgLiBUaGF0JiMzOTtzIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgc3R1ZmY6IGBvY3Rlb250eDJgLCBgb3R4Ml9wZmAsIGFuZCBgb3R4Ml92ZmAuIE5vdywgaGVyZSYjMzk7cyB3aGVyZSBpdCBnZXRzIGludGVyZXN0aW5nLiAqSXMqIHRoZSBPY3Rlb25UWDIgYSB2ZW5kb3Itc3BlY2lmaWMgU21hcnROSUMgb3IgUENJZSBkZXZpY2UgZHJpdmVyIHRoYXQgbmVlZHMgc3BlY2lmaWMgcGh5c2ljYWwgaGFyZHdhcmUgdGhhdCYjMzk7cyAqbm90KiBlbXVsYXRlZCBpbiBRRU1VPyBJIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcgYW5kIGRyaXZlciBkZXRhaWxzIHRvIGZpZ3VyZSBvdXQgaWYgaXQgZmFsbHMgaW50byB0aGF0IGNhdGVnb3J5LCBhcyB0aGF0JiMzOTtzIHRoZSBkZWNpZGluZyBmYWN0b3IgYXQgdGhpcyBwb2ludC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAwNzoxMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtPQ1RFT05UWDImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4MiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjY6Y29uZmlnIE9DVEVPTlRYMl9NQk9YXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTctXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy04LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzo5OmNvbmZpZyBPQ1RFT05UWDJfQUZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMTAtXHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgQWRtaW4gRnVuY3Rpb24gZHJpdmVyXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjExOlx0c2VsZWN0IE9DVEVPTlRYMl9NQk9YXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTEyLVx0c2VsZWN0IE5FVF9ERVZMSU5LXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZz0yMj1jb25maWcgTkRDX0RJU19EWU5BTUlDX0NBQ0hJTkdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMjMtXHRib29sIFwmIzM0O0Rpc2FibGUgY2FjaGluZyBvZiBkeW5hbWljIGVudHJpZXMgaW4gTkRDXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjI0Olx0ZGVwZW5kcyBvbiBPQ1RFT05UWDJfQUZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMjUtXHRkZWZhdWx0IG5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTMwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzozMTpjb25maWcgT0NURU9OVFgyX1BGXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTMyLVx0dHJpc3RhdGUgXCYjMzQ7TWFydmVsbCBPY3Rlb25UWDIgTklDIFBoeXNpY2FsIEZ1bmN0aW9uIGRyaXZlclwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzozMzpcdHNlbGVjdCBPQ1RFT05UWDJfTUJPWFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0zNC1cdHNlbGVjdCBORVRfREVWTElOS1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjQ1OmNvbmZpZyBPQ1RFT05UWDJfVkZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNDYtXHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgVmlydHVhbCBGdW5jdGlvbiBkcml2ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6NDc6XHRkZXBlbmRzIG9uIE9DVEVPTlRYMl9QRlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy00OC1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnPTUxPWNvbmZpZyBSVlVfRVNXSVRDSFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy01Mi1cdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgUlZVIEUtU3dpdGNoIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6NTM6XHRkZXBlbmRzIG9uIE9DVEVPTlRYMl9QRlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy01NC1cdGRlZmF1bHQgbVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL01ha2VmaWxlLTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19PQ1RFT05UWDJfTUJPWCkgJiM0Mzs9IGFmL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvTWFrZWZpbGU6NzpvYmotJChDT05GSUdfT0NURU9OVFgyX0FGKSAmIzQzOz0gYWYvXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9NYWtlZmlsZTo4Om9iai0kKENPTkZJR19PQ1RFT05UWDJfUEYpICYjNDM7PSBuaWMvXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU9Nj1jY2ZsYWdzLXkgJiM0Mzs9IC1JJChzcmMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZTo3Om9iai0kKENPTkZJR19PQ1RFT05UWDJfTUJPWCkgJiM0Mzs9IHJ2dV9tYm94Lm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlOjg6b2JqLSQoQ09ORklHX09DVEVPTlRYMl9BRikgJiM0Mzs9IHJ2dV9hZi5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZS05LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NneC5jPTY2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBjZ3hfaWRfdGFibGVbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NneC5jOjY3Olx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX0NHWCkgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NneC5jLTY4LVx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX0NOMTBLX1JQTSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guaC0xNS0gLyogUENJIGRldmljZSBJRHMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NneC5oOjE2OiNkZWZpbmVcdFBDSV9ERVZJRF9PQ1RFT05UWDJfQ0dYXHRcdDB4QTA1OVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmgtMTctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jPTE1ND1ERUZJTkVfU0hPV19BVFRSSUJVVEUobnBjX21jYW1fbGF5b3V0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0xNTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM6MTU2OiNkZWZpbmUgX19PQ1RFT05UWDJfREVCVUdGU19BVFRSSUJVVEVfRk9QUyhfX25hbWUpXHRcdFx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0xNTctc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgX19uYW1lICMjIF9mb3BzID0ge1x0XHRcdFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTE2NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYzoxNjU6I2RlZmluZSBERUZJTkVfT0NURU9OVFgyX0RFQlVHRlNfQVRUUklCVVRFX1dJVEhfU0laRShfX25hbWUsIF9fc2l6ZSlcdFx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0xNjYtc3RhdGljIGludCBfX25hbWUgIyMgX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpXHRcdFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTE3MC19XHRcdFx0XHRcdFx0XHRcdFx0XHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jOjE3MTpfX09DVEVPTlRYMl9ERUJVR0ZTX0FUVFJJQlVURV9GT1BTKF9fbmFtZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0xNzItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jPTE4MT1zdGF0aWMgaW50IG5wY19tY2FtX2RzdGF0c19zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqdW51c2VkKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0yNDItI2RlZmluZSBUT1RBTF9TWiAoTUFYX05VTV9CQU5LUyAqIE1BWF9OVU1fU1VCX0JBTktTICogTUFYX1NVQkJBTktfREVQVEggKiA2NClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYzoyNDM6REVGSU5FX09DVEVPTlRYMl9ERUJVR0ZTX0FUVFJJQlVURV9XSVRIX1NJWkUobnBjX21jYW1fZHN0YXRzLCBUT1RBTF9TWik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMjQ0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jPTI0NT1zdGF0aWMgaW50IG5wY19tY2FtX21pc21hdGNoX3Nob3coc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICp1bnVzZWQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTI4NC0vKiBcJiMzNDsldVxcdCVkXFx0JXVcXG5cJiMzNDsgbmVlZHMgbGVzcyB0aGFuIDY0IGNoYXJhY3RlcnMgdG8gcHJpbnQuICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM6Mjg1OkRFRklORV9PQ1RFT05UWDJfREVCVUdGU19BVFRSSUJVVEVfV0lUSF9TSVpFKG5wY19tY2FtX21pc21hdGNoLCBUT1RBTF9TWik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMjg2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTIwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6MjE6I2RlZmluZSBQQ0lfREVWSURfT0NURU9OVFgyX1BUUFx0XHRcdDB4QTAwQ1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtMjItI2RlZmluZSBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk4eHhfUFRQXHRcdDB4QjEwMFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTI3LSNkZWZpbmUgUENJX1NVQlNZU19ERVZJRF9PQ1RYMl85NVhYT19QVFBcdDB4QjYwMFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6Mjg6I2RlZmluZSBQQ0lfREVWSURfT0NURU9OVFgyX1JTVFx0XHRcdDB4QTA4NVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtMjktI2RlZmluZSBQQ0lfREVWSURfQ04xMEtfUFRQXHRcdFx0MHhBMDlFXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM9NTg5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwdHBfaWRfdGFibGVbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjU5MDpcdHsgUENJX0RFVklDRV9TVUIoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNTkxLVx0XHRcdCBQQ0lfVkVORE9SX0lEX0NBVklVTSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTU5Mi1cdFx0XHQgUENJX1NVQlNZU19ERVZJRF9PQ1RYMl85OHh4X1BUUCkgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjU5MzpcdHsgUENJX0RFVklDRV9TVUIoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNTk0LVx0XHRcdCBQQ0lfVkVORE9SX0lEX0NBVklVTSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTU5NS1cdFx0XHQgUENJX1NVQlNZU19ERVZJRF9PQ1RYMl85NlhYX1BUUCkgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjU5NjpcdHsgUENJX0RFVklDRV9TVUIoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNTk3LVx0XHRcdCBQQ0lfVkVORE9SX0lEX0NBVklVTSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTU5OC1cdFx0XHQgUENJX1NVQlNZU19ERVZJRF9PQ1RYMl85NVhYX1BUUCkgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjU5OTpcdHsgUENJX0RFVklDRV9TVUIoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNjAwLVx0XHRcdCBQQ0lfVkVORE9SX0lEX0NBVklVTSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTYwMS1cdFx0XHQgUENJX1NVQlNZU19ERVZJRF9PQ1RYMl85NVhYTl9QVFApIH0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzo2MDI6XHR7IFBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1BUUCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTYwMy1cdFx0XHQgUENJX1ZFTkRPUl9JRF9DQVZJVU0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy02MDQtXHRcdFx0IFBDSV9TVUJTWVNfREVWSURfT0NUWDJfOTVNTV9QVFApIH0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzo2MDU6XHR7IFBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1BUUCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTYwNi1cdFx0XHQgUENJX1ZFTkRPUl9JRF9DQVZJVU0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9NDQ9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHJ2dV9pZF90YWJsZVtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6NDU6XHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtNDYtXHR7IDAsIH0gIC8qIGVuZCBvZiB0YWJsZSAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTkyNz1zdGF0aWMgdm9pZCBydnVfZ2V0X2xia19idWZzaXplKHN0cnVjdCBydnUgKnJ2dSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy05MzMtXHRwZGV2ID0gcGNpX2dldF9kZXZpY2UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzo5MzQ6XHRcdFx0ICAgICAgUENJX0RFVklEX09DVEVPTlRYMl9MQkssIHBkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtOTM1LVx0aWYgKCFwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTM0NDI9aW50IHJ2dV9nZXRfbnVtX2xia19jaGFucyh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM0NDctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzozNDQ4Olx0cGRldiA9IHBjaV9nZXRfZGV2aWNlKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX0xCSyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM0NDktXHRcdFx0ICAgICAgTlVMTCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmgtMjMtLyogUENJIGRldmljZSBJRHMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5oOjI0OiNkZWZpbmVcdFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGXHRcdDB4QTA2NVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1Lmg6MjU6I2RlZmluZVx0UENJX0RFVklEX09DVEVPTlRYMl9MQktcdFx0XHQweEEwNjFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5oLTI2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jbjEway5jPTM5Mj1zdGF0aWMgdm9pZCBydnVfbGJrX3NldF9jaGFubmVscyhzdHJ1Y3QgcnZ1ICpydnUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NuMTBrLmMtNDE1LVx0XHRwZGV2ID0gcGNpX2dldF9kZXZpY2UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY24xMGsuYzo0MTY6XHRcdFx0XHQgICAgICBQQ0lfREVWSURfT0NURU9OVFgyX0xCSywgcGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY24xMGsuYy00MTctXHRcdGlmICghcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jPTI3OTQ9c3RhdGljIHZvaWQgcnZ1X2RiZ19ucGFfaW5pdChzdHJ1Y3QgcnZ1ICpydnUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RlYnVnZnMuYy0yODEzLS8qIFBlci1sbWFjIENHWCBkZWJ1Z2ZzIGZpbGVzIG5lZWQgYm90aCBSVlUgYW5kIENHWCBoYW5kbGU7IGlub2RlLVx1MDAzZWlfcHJpdmF0ZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RlYnVnZnMuYzoyODE0OiAqIHBvaW50cyBoZXJlIHNvIHNlcV9maWxlIG9wcyBhdm9pZCBwY2lfZ2V0X2RldmljZShQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9BRikuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jLTI4MTUtICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL01ha2VmaWxlLTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvTWFrZWZpbGU6NjpvYmotJChDT05GSUdfT0NURU9OVFgyX1BGKSAmIzQzOz0gcnZ1X25pY3BmLm8gb3R4Ml9wdHAub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL01ha2VmaWxlOjc6b2JqLSQoQ09ORklHX09DVEVPTlRYMl9WRikgJiM0Mzs9IHJ2dV9uaWN2Zi5vIG90eDJfcHRwLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9NYWtlZmlsZS04LW9iai0kKENPTkZJR19SVlVfRVNXSVRDSCkgJiM0Mzs9IHJ2dV9yZXAub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTQyLS8qIFBDSSBkZXZpY2UgSURzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaDo0MzojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX1BGICAgICAgICAgICAgICAweEEwNjNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjQ0OiNkZWZpbmUgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfVkZcdFx0MHhBMDY0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaDo0NTojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGVkZcdFx0MHhBMEY4XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC00Ni1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC01MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjUxOiNkZWZpbmUgUENJX0RFVklEX09DVEVPTlRYMl9TRFBfUkVQXHRcdDB4QTBGN1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNTItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmg9NTk3PXN0YXRpYyBpbmxpbmUgYm9vbCBpc19vdHgyX2xia3ZmKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNTk4LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjU5OTpcdHJldHVybiAocGRldi1cdTAwM2VkZXZpY2UgPT0gUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUZWRikgfHxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTYwMC1cdFx0KHBkZXYtXHUwMDNlZGV2aWNlID09IFBDSV9ERVZJRF9SVlVfUkVQKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaD02MTU9c3RhdGljIGlubGluZSBib29sIGlzX290eDJfc2RwX3JlcChzdHJ1Y3QgcGNpX2RldiAqcGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTYxNi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaDo2MTc6XHRyZXR1cm4gcGRldi1cdTAwM2VkZXZpY2UgPT0gUENJX0RFVklEX09DVEVPTlRYMl9TRFBfUkVQO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNjE4LX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jPTM2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBvdHgyX3BmX2lkX3RhYmxlW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jOjM3Olx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9QRikgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmMtMzgtXHR7IDAsIH0gIC8qIGVuZCBvZiB0YWJsZSAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmM9MjI9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIG90eDJfdmZfaWRfdGFibGVbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmM6MjM6XHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGVkYpIH0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jOjI0Olx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9WRikgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmM6MjU6XHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfU0RQX1JFUCkgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmMtMjYtXHR7IH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAwNzoxMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTc3OQoJCQkJCQkJb3V0cHV0OiAxMTYKCQkJCQkJCXRob3VnaHRzOiA1MzkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqV29ydGhGdXp6aW5nIERlY2lzaW9uIGZvciBPY3Rlb25UWDIgRHJpdmVycyoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duIHN5c3RlbWF0aWNhbGx5LiBUaGUgY3JpdGVyaWEgbGFpZCBvdXQgc3RhdGUgdGhhdCB3ZSBzaG91bGQgc2V0IGBXb3J0aEZ1enppbmdgIHRvIGBmYWxzZWAgaWYgdGhlIHBhdGNoIGludm9sdmVzIGNvZGUgcGF0aHMgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS4gVGhpcyBpcyBjcml0aWNhbCBmb3IgZWZmaWNpZW50IHJlc291cmNlIGFsbG9jYXRpb24sIGFzIHlvdSBrbm93LgoKSSYjMzk7bSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCBtb2RpZmllcyB0aGUgTWFydmVsbCBPY3Rlb25UWDIgbmV0d29yayBkcml2ZXJzIOKAkyBzcGVjaWZpY2FsbHksIHRoZSBwaHlzaWNhbCBmdW5jdGlvbiAoYG90eDJfcGYuY2ApIGFuZCB2aXJ0dWFsIGZ1bmN0aW9uIChgb3R4Ml92Zi5jYCkgZHJpdmVycy4gVGhlIGNoYW5nZXMgaW52b2x2ZSBpbnRlcnJ1cHQgaGFuZGxlcnMgYW5kIHZlY3RvciBhbGxvY2F0aW9ucyBmb3IgY2VydGFpbiBOSVggZXZlbnRzLiBUaGlzIGltbWVkaWF0ZWx5IGZsYWdzIGEgcG90ZW50aWFsIGlzc3VlLCBnaXZlbiBteSBrbm93bGVkZ2Ugb2YgdGhlIGhhcmR3YXJlLgoKVGhlIE9jdGVvblRYMiBkcml2ZXJzIGFyZSB2ZW5kb3Itc3BlY2lmaWMsIHRhcmdldGluZyBDYXZpdW0vTWFydmVsbCBPY3Rlb25UWDIgaGFyZHdhcmUuIFRoYXQgbWVhbnMgdGhleSByZWx5IG9uIHRoZSBwcmVzZW5jZSBvZiBwaHlzaWNhbCBQQ0llIGNhcmRzIG9yIHRoZSBPY3Rlb25UWDIgU29DIGl0c2VsZi4gSSYjMzk7dmUgZG91YmxlLWNoZWNrZWQsIGFuZCB0aGVyZSYjMzk7cyBubyBzdGFuZGFyZCBRRU1VIGVtdWxhdGlvbiBmb3IgdGhlc2UgUlZVIFBGL1ZGIGRldmljZXMgKFBDSSB2ZW5kb3IgSUQgMHgxNzdkLCBkZXZpY2UgSURzIDB4QTA2MywgMHhBMDY0LCBldGMuKS4gV2UmIzM5O3JlIHRhbGtpbmcgYWJvdXQgYSBsZXZlbCBvZiBoYXJkd2FyZSBpbnRlcmFjdGlvbiB0aGF0IGlzbiYjMzk7dCByZXBsaWNhdGVkIGluIGEgc3RhbmRhcmQgdmlydHVhbCBlbnZpcm9ubWVudC4KClRoZXJlZm9yZSwgdGhpcyBjb2RlIHBhdGggaXMgc2ltcGx5IHVucmVhY2hhYmxlIHdpdGhpbiBhIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGZ1enppbmcgc2V0dXAuIEdpdmVuIHRoZSBjcml0ZXJpYSwgSSYjMzk7bSBjb25maWRlbnQgaW4gY29uY2x1ZGluZyB0aGF0IHRoaXMgcGF0Y2ggaXMgbm90IHdvcnRoIGZ1enppbmcgaW4gb3VyIHN0YW5kYXJkIGVudmlyb25tZW50LiBJdCB3aWxsIGJlIG1vcmUgZWZmZWN0aXZlIHRvIHRlc3QgdGhvc2UgZHJpdmVycyBvbiB0aGUgaGFyZHdhcmUgdGhleSB3ZXJlIGRlc2lnbmVkIGZvci4KCkJhc2VkIG9uIHRoaXMgYW5hbHlzaXMsIEkgd2lsbCBzZXQgYFdvcnRoRnV6emluZ2AgdG8gYGZhbHNlYCBhbmQgbW92ZSBvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAwNzoxMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgZHJpdmVyIChvdHgyX3BmLmMsIG90eDJfdmYuYykgdG8gcmVnaXN0ZXIgZXJyb3IgYW5kIHBvaXNvbiBpbnRlcnJ1cHQgaGFuZGxlcnMgYW5kIGFkanVzdCBNU0ktWCB2ZWN0b3IgYWxsb2NhdGlvbi4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcHJvcHJpZXRhcnkgTWFydmVsbCBPY3Rlb25UWDIgLyBDYXZpdW0gaGFyZHdhcmUgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIG1ha2luZyBpdCB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgZHJpdmVyIChvdHgyX3BmLmMsIG90eDJfdmYuYykgdG8gcmVnaXN0ZXIgZXJyb3IgYW5kIHBvaXNvbiBpbnRlcnJ1cHQgaGFuZGxlcnMgYW5kIGFkanVzdCBNU0ktWCB2ZWN0b3IgYWxsb2NhdGlvbi4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcHJvcHJpZXRhcnkgTWFydmVsbCBPY3Rlb25UWDIgLyBDYXZpdW0gaGFyZHdhcmUgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIG1ha2luZyBpdCB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMDc6MTM8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDA3OjEyOjQ1LjA0MTcwMDE5OFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4NDczNjY3NDI2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIE5JQyBkcml2ZXIgKG90eDJfcGYuYywgb3R4Ml92Zi5jKSB0byByZWdpc3RlciBlcnJvciBhbmQgcG9pc29uIGludGVycnVwdCBoYW5kbGVycyBhbmQgYWRqdXN0IE1TSS1YIHZlY3RvciBhbGxvY2F0aW9uLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwcm9wcmlldGFyeSBNYXJ2ZWxsIE9jdGVvblRYMiAvIENhdml1bSBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgbWFraW5nIGl0IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMDc6MTI6NDUuMDQxNzA2ODY4WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0Mjc2ODYyNzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA1ODViNTQzMmVjM2YzODcxZGQ0Y2EzNzY2YWVlNzVhZGQ4Njk4NGQ4XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gQXVnIDMxIDA3OjEyOjQ0IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jXFxuaW5kZXggYzk5NWYyOTAwODU5MC4uMWY4Y2I3OGMxOTE5NSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuY1xcbkBAIC0xNTI0LDYgKzE1MjQsMzQgQEAgaXJxcmV0dXJuX3Qgb3R4Ml9jcV9pbnRyX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqY3FfaXJxKVxcbiB9XFxuIEVYUE9SVF9TWU1CT0wob3R4Ml9jcV9pbnRyX2hhbmRsZXIpO1xcbiBcXG4rc3RhdGljIGlycXJldHVybl90IG90eDJfbml4bGZfZXJyX2ludHJfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkYXRhKVxcbit7XFxuK1xcdHN0cnVjdCBvdHgyX25pYyAqcGYgPSBkYXRhO1xcbitcXHR1NjQgcmVndmFsO1xcbitcXG4rXFx0LyogQ2xlYXIgaW50ZXJydXB0ICovXFxuK1xcdHJlZ3ZhbCA9IG90eDJfcmVhZDY0KHBmLCBOSVhfTEZfRVJSX0lOVCk7XFxuK1xcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX0VSUl9JTlQsIHJlZ3ZhbCk7XFxuK1xcbitcXHRkZXZfZXJyX3JhdGVsaW1pdGVkKHBmLVxcdTAwM2VkZXYsIFxcXCJOSVhMRiBFcnJvciBJbnRlcnJ1cHQ6IDB4JWxseFxcXFxuXFxcIiwgcmVndmFsKTtcXG4rXFxuK1xcdHJldHVybiBJUlFfSEFORExFRDtcXG4rfVxcbitcXG4rc3RhdGljIGlycXJldHVybl90IG90eDJfbml4bGZfcG9pc29uX2ludHJfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkYXRhKVxcbit7XFxuK1xcdHN0cnVjdCBvdHgyX25pYyAqcGYgPSBkYXRhO1xcbitcXHR1NjQgcmVndmFsO1xcbitcXG4rXFx0LyogQ2xlYXIgaW50ZXJydXB0ICovXFxuK1xcdHJlZ3ZhbCA9IG90eDJfcmVhZDY0KHBmLCBOSVhfTEZfUkFTKTtcXG4rXFx0b3R4Ml93cml0ZTY0KHBmLCBOSVhfTEZfUkFTLCByZWd2YWwpO1xcbitcXG4rXFx0ZGV2X2Vycl9yYXRlbGltaXRlZChwZi1cXHUwMDNlZGV2LCBcXFwiTklYTEYgUG9pc29uIEludGVycnVwdDogMHglbGx4XFxcXG5cXFwiLCByZWd2YWwpO1xcbitcXG4rXFx0cmV0dXJuIElSUV9IQU5ETEVEO1xcbit9XFxuK1xcbiB2b2lkIG90eDJfZGlzYWJsZV9uYXBpKHN0cnVjdCBvdHgyX25pYyAqcGYpXFxuIHtcXG4gXFx0c3RydWN0IG90eDJfcXNldCAqcXNldCA9IFxcdTAwMjZwZi1cXHUwMDNlcXNldDtcXG5AQCAtMjA4MCw2ICsyMTA4LDM0IEBAIGludCBvdHgyX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG4gXFxuIFxcdG90eDJfc2V0X2NpbnRzX2FmZmluaXR5KHBmKTtcXG4gXFxuK1xcdC8qIFJlZ2lzdGVyIE5JWExGIGVycm9yIElSUSBoYW5kbGVyICovXFxuK1xcdHZlYyA9IHBmLVxcdTAwM2Vody5uaXhfbXNpeG9mZiArIE5JWF9MRl9FUlJfVkVDO1xcbitcXHRpcnFfbmFtZSA9IFxcdTAwMjZwZi1cXHUwMDNlaHcuaXJxX25hbWVbdmVjICogTkFNRV9TSVpFXTtcXG4rXFx0c25wcmludGYoaXJxX25hbWUsIE5BTUVfU0laRSwgXFxcIiVzLW5peGxmLWVyclxcXCIsIHBmLVxcdTAwM2VuZXRkZXYtXFx1MDAzZW5hbWUpO1xcbitcXHRlcnIgPSByZXF1ZXN0X2lycShwY2lfaXJxX3ZlY3RvcihwZi1cXHUwMDNlcGRldiwgdmVjKSxcXG4rXFx0XFx0XFx0ICBvdHgyX25peGxmX2Vycl9pbnRyX2hhbmRsZXIsIDAsIGlycV9uYW1lLCBwZik7XFxuK1xcdGlmIChlcnIpIHtcXG4rXFx0XFx0ZGV2X2VycihwZi1cXHUwMDNlZGV2LFxcbitcXHRcXHRcXHRcXFwiUlZVUEYlZDogSVJRIHJlZ2lzdHJhdGlvbiBmYWlsZWQgZm9yIE5JWExGIEVSUiB2ZWN0b3JcXFxcblxcXCIsXFxuK1xcdFxcdFxcdHJ2dV9nZXRfcGYocGYtXFx1MDAzZXBkZXYsIHBmLVxcdTAwM2VwY2lmdW5jKSk7XFxuK1xcdFxcdGdvdG8gZXJyX2ZyZWVfY2ludHM7XFxuK1xcdH1cXG4rXFx0b3R4Ml93cml0ZTY0KHBmLCBOSVhfTEZfRVJSX0lOVF9FTkFfVzFTLCBOSVhfTEZfRVJSX0lOVF9NQVNLKTtcXG4rXFxuK1xcdC8qIFJlZ2lzdGVyIE5JWExGIFBPSVNPTiBpbnRlcnJ1cHQgaGFuZGxlciAqL1xcbitcXHR2ZWMgPSBwZi1cXHUwMDNlaHcubml4X21zaXhvZmYgKyBOSVhfTEZfUE9JU09OX1ZFQztcXG4rXFx0aXJxX25hbWUgPSBcXHUwMDI2cGYtXFx1MDAzZWh3LmlycV9uYW1lW3ZlYyAqIE5BTUVfU0laRV07XFxuK1xcdHNucHJpbnRmKGlycV9uYW1lLCBOQU1FX1NJWkUsIFxcXCIlcy1uaXhsZi1wb2lzb25cXFwiLCBwZi1cXHUwMDNlbmV0ZGV2LVxcdTAwM2VuYW1lKTtcXG4rXFx0ZXJyID0gcmVxdWVzdF9pcnEocGNpX2lycV92ZWN0b3IocGYtXFx1MDAzZXBkZXYsIHZlYyksXFxuK1xcdFxcdFxcdCAgb3R4Ml9uaXhsZl9wb2lzb25faW50cl9oYW5kbGVyLCAwLCBpcnFfbmFtZSwgcGYpO1xcbitcXHRpZiAoZXJyKSB7XFxuK1xcdFxcdGRldl9lcnIocGYtXFx1MDAzZWRldixcXG4rXFx0XFx0XFx0XFxcIlJWVVBGJWQ6IElSUSByZWdpc3RyYXRpb24gZmFpbGVkIGZvciBOSVhMRiBQT0lTT04gdmVjdG9yXFxcXG5cXFwiLFxcbitcXHRcXHRcXHRydnVfZ2V0X3BmKHBmLVxcdTAwM2VwZGV2LCBwZi1cXHUwMDNlcGNpZnVuYykpO1xcbitcXHRcXHRnb3RvIGVycl9mcmVlX2VycmludDtcXG4rXFx0fVxcbitcXHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9SQVNfRU5BX1cxUywgTklYX0xGX1JBU19NQVNLKTtcXG4rXFxuIFxcdGlmIChwZi1cXHUwMDNlZmxhZ3MgXFx1MDAyNiBPVFgyX0ZMQUdfUlhfVkxBTl9TVVBQT1JUKVxcbiBcXHRcXHRvdHgyX2VuYWJsZV9yeHZsYW4ocGYsIHRydWUpO1xcbiBcXG5AQCAtMjEzMiw2ICsyMTg4LDE2IEBAIGludCBvdHgyX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG4gXFx0bmV0aWZfdHhfc3RvcF9hbGxfcXVldWVzKG5ldGRldik7XFxuIFxcdG5ldGlmX2NhcnJpZXJfb2ZmKG5ldGRldik7XFxuIFxcdHBmLVxcdTAwM2VmbGFncyB8PSBPVFgyX0ZMQUdfSU5URl9ET1dOO1xcbitcXHQvKiBmcmVlIE5JWExGIFBPSVNPTiBpcnEgKi9cXG4rXFx0dmVjID0gcGNpX2lycV92ZWN0b3IocGYtXFx1MDAzZXBkZXYsXFxuK1xcdFxcdFxcdCAgICAgcGYtXFx1MDAzZWh3Lm5peF9tc2l4b2ZmICsgTklYX0xGX1BPSVNPTl9WRUMpO1xcbitcXHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9SQVNfRU5BX1cxQywgTklYX0xGX1JBU19NQVNLKTtcXG4rXFx0ZnJlZV9pcnEodmVjLCBwZik7XFxuK2Vycl9mcmVlX2VycmludDpcXG4rXFx0dmVjID0gcGNpX2lycV92ZWN0b3IocGYtXFx1MDAzZXBkZXYsXFxuK1xcdFxcdFxcdCAgICAgcGYtXFx1MDAzZWh3Lm5peF9tc2l4b2ZmICsgTklYX0xGX0VSUl9WRUMpO1xcbitcXHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9FUlJfSU5UX0VOQV9XMUMsIE5JWF9MRl9FUlJfSU5UX01BU0spO1xcbitcXHRmcmVlX2lycSh2ZWMsIHBmKTtcXG4gZXJyX2ZyZWVfY2ludHM6XFxuIFxcdG90eDJfZnJlZV9jaW50cyhwZiwgcWlkeCk7XFxuIFxcdHZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLVxcdTAwM2VwZGV2LFxcbkBAIC0yMTcxLDYgKzIyMzcsMTggQEAgaW50IG90eDJfc3RvcChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbiBcXHQvKiBDbGVhciBSU1MgZW5hYmxlIGZsYWcgKi9cXG4gXFx0cGYtXFx1MDAzZWh3LnJzc19pbmZvLmVuYWJsZSA9IGZhbHNlO1xcbiBcXG4rXFx0LyogQ2xlYW51cCBOSVhMRiBQb2lzb24gSVJRICovXFxuK1xcdHZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLVxcdTAwM2VwZGV2LFxcbitcXHRcXHRcXHQgICAgIHBmLVxcdTAwM2Vody5uaXhfbXNpeG9mZiArIE5JWF9MRl9QT0lTT05fVkVDKTtcXG4rXFx0b3R4Ml93cml0ZTY0KHBmLCBOSVhfTEZfUkFTX0VOQV9XMUMsIE5JWF9MRl9SQVNfTUFTSyk7XFxuK1xcdGZyZWVfaXJxKHZlYywgcGYpO1xcbitcXG4rXFx0LyogQ2xlYW51cCBOSVhMRiBFcnJvciBJUlEgKi9cXG4rXFx0dmVjID0gcGNpX2lycV92ZWN0b3IocGYtXFx1MDAzZXBkZXYsXFxuK1xcdFxcdFxcdCAgICAgcGYtXFx1MDAzZWh3Lm5peF9tc2l4b2ZmICsgTklYX0xGX0VSUl9WRUMpO1xcbitcXHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9FUlJfSU5UX0VOQV9XMUMsIE5JWF9MRl9FUlJfSU5UX01BU0spO1xcbitcXHRmcmVlX2lycSh2ZWMsIHBmKTtcXG4rXFxuIFxcdC8qIENsZWFudXAgUXVldWUgSVJRICovXFxuIFxcdHZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLVxcdTAwM2VwZGV2LFxcbiBcXHRcXHRcXHQgICAgIHBmLVxcdTAwM2Vody5uaXhfbXNpeG9mZiArIE5JWF9MRl9RSU5UX1ZFQ19TVEFSVCk7XFxuQEAgLTMwMDYsMTEgKzMwODQsMTUgQEAgaW50IG90eDJfcmVhbGxvY19tc2l4X3ZlY3RvcnMoc3RydWN0IG90eDJfbmljICpwZilcXG4gXFx0c3RydWN0IG90eDJfaHcgKmh3ID0gXFx1MDAyNnBmLVxcdTAwM2VodztcXG4gXFx0aW50IG51bV92ZWMsIGVycjtcXG4gXFxuLVxcdC8qIE5QQSBpbnRlcnJ1cHRzIGFyZSBpbm90IHJlZ2lzdGVyZWQsIHNvIGFsbG9jIG9ubHlcXG4tXFx0ICogdXB0byBOSVggdmVjdG9yIG9mZnNldC5cXG4rXFx0LyogU2tpcCBOUEEgdmVjdG9ycy4gUmVwcmVzZW50b3JzIG9ubHkgdXNlIENJTlQgdmVjdG9ycywgc28gbGltaXRcXG4rXFx0ICogdGhlIGJ1ZGdldCB0byB0aGF0IHJhbmdlLiBGb3IgUEYvVkYsIGFsbG9jYXRlIHRoZSBmdWxsIE5JWCBMRlxcbitcXHQgKiBpbnRlcnJ1cHQgcmFuZ2UgKFFJTlQsIENJTlQsIEdJTlQsIEVSUiBhbmQgUE9JU09OIHZlY3RvcnMpLlxcbiBcXHQgKi9cXG4gXFx0bnVtX3ZlYyA9IGh3LVxcdTAwM2VuaXhfbXNpeG9mZjtcXG4tXFx0bnVtX3ZlYyArPSBOSVhfTEZfQ0lOVF9WRUNfU1RBUlQgKyBody1cXHUwMDNlbWF4X3F1ZXVlcztcXG4rXFx0aWYgKHBmLVxcdTAwM2VmbGFncyBcXHUwMDI2IE9UWDJfRkxBR19SRVBfTU9ERV9FTkFCTEVEKVxcbitcXHRcXHRudW1fdmVjICs9IE5JWF9MRl9DSU5UX1ZFQ19TVEFSVCArIGh3LVxcdTAwM2VtYXhfcXVldWVzO1xcbitcXHRlbHNlXFxuK1xcdFxcdG51bV92ZWMgKz0gTklYX0xGX1BPSVNPTl9WRUMgKyAxO1xcbiBcXG4gXFx0b3R4Ml9kaXNhYmxlX21ib3hfaW50cihwZik7XFxuIFxcdHBjaV9mcmVlX2lycV92ZWN0b3JzKGh3LVxcdTAwM2VwZGV2KTtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcmVnLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9yZWcuaFxcbmluZGV4IDFjZDU3NmZkMDljNTYuLmMxNDRmZDJiYmU1MWYgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcmVnLmhcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9yZWcuaFxcbkBAIC0xMjEsMTAgKzEyMSwxMiBAQFxcbiAjZGVmaW5lXFx0TklYX0xGX0VSUl9JTlRfVzFTXFx0XFx0KE5JWF9MRkJBU0UgfCAweDIyOClcXG4gI2RlZmluZVxcdE5JWF9MRl9FUlJfSU5UX0VOQV9XMUNcXHRcXHQoTklYX0xGQkFTRSB8IDB4MjMwKVxcbiAjZGVmaW5lXFx0TklYX0xGX0VSUl9JTlRfRU5BX1cxU1xcdFxcdChOSVhfTEZCQVNFIHwgMHgyMzgpXFxuKyNkZWZpbmVcXHROSVhfTEZfRVJSX0lOVF9NQVNLXFx0XFx0R0VOTUFTS19VTEwoMzEsIDApXFxuICNkZWZpbmVcXHROSVhfTEZfUkFTXFx0XFx0XFx0KE5JWF9MRkJBU0UgfCAweDI0MClcXG4gI2RlZmluZVxcdE5JWF9MRl9SQVNfVzFTXFx0XFx0XFx0KE5JWF9MRkJBU0UgfCAweDI0OClcXG4gI2RlZmluZVxcdE5JWF9MRl9SQVNfRU5BX1cxQ1xcdFxcdChOSVhfTEZCQVNFIHwgMHgyNTApXFxuICNkZWZpbmVcXHROSVhfTEZfUkFTX0VOQV9XMVNcXHRcXHQoTklYX0xGQkFTRSB8IDB4MjU4KVxcbisjZGVmaW5lXFx0TklYX0xGX1JBU19NQVNLXFx0XFx0XFx0R0VOTUFTS19VTEwoMTAsIDApXFxuICNkZWZpbmVcXHROSVhfTEZfU1FfT1BfRVJSX0RCR1xcdFxcdChOSVhfTEZCQVNFIHwgMHgyNjApXFxuICNkZWZpbmVcXHROSVhfTEZfTU5RX0VSUl9EQkdcXHRcXHQoTklYX0xGQkFTRSB8IDB4MjcwKVxcbiAjZGVmaW5lXFx0TklYX0xGX1NFTkRfRVJSX0RCR1xcdFxcdChOSVhfTEZCQVNFIHwgMHgyODApXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jXFxuaW5kZXggYjAyMmY1MmM2ODQ1MC4uZWRhNGVkNTJhOGQ4NSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuY1xcbkBAIC01NTQsNyArNTU0LDcgQEAgc3RhdGljIGludCBvdHgydmZfcmVhbGxvY19tc2l4X3ZlY3RvcnMoc3RydWN0IG90eDJfbmljICp2ZilcXG4gXFx0aW50IG51bV92ZWMsIGVycjtcXG4gXFxuIFxcdG51bV92ZWMgPSBody1cXHUwMDNlbml4X21zaXhvZmY7XFxuLVxcdG51bV92ZWMgKz0gTklYX0xGX0NJTlRfVkVDX1NUQVJUICsgaHctXFx1MDAzZW1heF9xdWV1ZXM7XFxuK1xcdG51bV92ZWMgKz0gTklYX0xGX1BPSVNPTl9WRUMgKyAxO1xcbiBcXG4gXFx0b3R4MnZmX2Rpc2FibGVfbWJveF9pbnRyKHZmKTtcXG4gXFx0cGNpX2ZyZWVfaXJxX3ZlY3RvcnMoaHctXFx1MDAzZXBkZXYpO1xcbkBAIC01OTcsNyArNTk3LDcgQEAgc3RhdGljIGludCBvdHgydmZfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG4gXFxuIFxcdHBjaV9zZXRfbWFzdGVyKHBkZXYpO1xcbiBcXG4tXFx0cWNvdW50ID0gbnVtX29ubGluZV9jcHVzKCk7XFxuK1xcdHFjb3VudCA9IG1pbl90KGludCwgbnVtX29ubGluZV9jcHVzKCksIE9UWDJfTUFYX0NRX0NOVCk7XFxuIFxcdHFvc190eHFzID0gbWluX3QoaW50LCBxY291bnQsIE9UWDJfUU9TX01BWF9MRUFGX05PREVTKTtcXG4gXFx0bmV0ZGV2ID0gYWxsb2NfZXRoZXJkZXZfbXFzKHNpemVvZigqdmYpLCBxY291bnQgKyBxb3NfdHhxcywgcWNvdW50KTtcXG4gXFx0aWYgKCFuZXRkZXYpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDA3OjEyOjQ1LjQ3MDA5Nzk4NloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImNvcmUiLCJEdXJhdGlvbiI6MTgwNDUyNTIzMjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgZHJpdmVyIChvdHgyX3BmLmMsIG90eDJfdmYuYykgdG8gcmVnaXN0ZXIgZXJyb3IgYW5kIHBvaXNvbiBpbnRlcnJ1cHQgaGFuZGxlcnMgYW5kIGFkanVzdCBNU0ktWCB2ZWN0b3IgYWxsb2NhdGlvbi4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcHJvcHJpZXRhcnkgTWFydmVsbCBPY3Rlb25UWDIgLyBDYXZpdW0gaGFyZHdhcmUgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIG1ha2luZyBpdCB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDU4NWI1NDMyZWMzZjM4NzFkZDRjYTM3NjZhZWU3NWFkZDg2OTg0ZDhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAzMSAwNzoxMjo0NCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jXG5pbmRleCBjOTk1ZjI5MDA4NTkwLi4xZjhjYjc4YzE5MTk1IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuY1xuQEAgLTE1MjQsNiArMTUyNCwzNCBAQCBpcnFyZXR1cm5fdCBvdHgyX2NxX2ludHJfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpjcV9pcnEpXG4gfVxuIEVYUE9SVF9TWU1CT0wob3R4Ml9jcV9pbnRyX2hhbmRsZXIpO1xuIFxuK3N0YXRpYyBpcnFyZXR1cm5fdCBvdHgyX25peGxmX2Vycl9pbnRyX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGF0YSlcbit7XG4rXHRzdHJ1Y3Qgb3R4Ml9uaWMgKnBmID0gZGF0YTtcbitcdHU2NCByZWd2YWw7XG4rXG4rXHQvKiBDbGVhciBpbnRlcnJ1cHQgKi9cbitcdHJlZ3ZhbCA9IG90eDJfcmVhZDY0KHBmLCBOSVhfTEZfRVJSX0lOVCk7XG4rXHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9FUlJfSU5ULCByZWd2YWwpO1xuK1xuK1x0ZGV2X2Vycl9yYXRlbGltaXRlZChwZi1cdTAwM2VkZXYsIFwiTklYTEYgRXJyb3IgSW50ZXJydXB0OiAweCVsbHhcXG5cIiwgcmVndmFsKTtcbitcbitcdHJldHVybiBJUlFfSEFORExFRDtcbit9XG4rXG4rc3RhdGljIGlycXJldHVybl90IG90eDJfbml4bGZfcG9pc29uX2ludHJfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkYXRhKVxuK3tcbitcdHN0cnVjdCBvdHgyX25pYyAqcGYgPSBkYXRhO1xuK1x0dTY0IHJlZ3ZhbDtcbitcbitcdC8qIENsZWFyIGludGVycnVwdCAqL1xuK1x0cmVndmFsID0gb3R4Ml9yZWFkNjQocGYsIE5JWF9MRl9SQVMpO1xuK1x0b3R4Ml93cml0ZTY0KHBmLCBOSVhfTEZfUkFTLCByZWd2YWwpO1xuK1xuK1x0ZGV2X2Vycl9yYXRlbGltaXRlZChwZi1cdTAwM2VkZXYsIFwiTklYTEYgUG9pc29uIEludGVycnVwdDogMHglbGx4XFxuXCIsIHJlZ3ZhbCk7XG4rXG4rXHRyZXR1cm4gSVJRX0hBTkRMRUQ7XG4rfVxuK1xuIHZvaWQgb3R4Ml9kaXNhYmxlX25hcGkoc3RydWN0IG90eDJfbmljICpwZilcbiB7XG4gXHRzdHJ1Y3Qgb3R4Ml9xc2V0ICpxc2V0ID0gXHUwMDI2cGYtXHUwMDNlcXNldDtcbkBAIC0yMDgwLDYgKzIxMDgsMzQgQEAgaW50IG90eDJfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuIFxuIFx0b3R4Ml9zZXRfY2ludHNfYWZmaW5pdHkocGYpO1xuIFxuK1x0LyogUmVnaXN0ZXIgTklYTEYgZXJyb3IgSVJRIGhhbmRsZXIgKi9cbitcdHZlYyA9IHBmLVx1MDAzZWh3Lm5peF9tc2l4b2ZmICsgTklYX0xGX0VSUl9WRUM7XG4rXHRpcnFfbmFtZSA9IFx1MDAyNnBmLVx1MDAzZWh3LmlycV9uYW1lW3ZlYyAqIE5BTUVfU0laRV07XG4rXHRzbnByaW50ZihpcnFfbmFtZSwgTkFNRV9TSVpFLCBcIiVzLW5peGxmLWVyclwiLCBwZi1cdTAwM2VuZXRkZXYtXHUwMDNlbmFtZSk7XG4rXHRlcnIgPSByZXF1ZXN0X2lycShwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LCB2ZWMpLFxuK1x0XHRcdCAgb3R4Ml9uaXhsZl9lcnJfaW50cl9oYW5kbGVyLCAwLCBpcnFfbmFtZSwgcGYpO1xuK1x0aWYgKGVycikge1xuK1x0XHRkZXZfZXJyKHBmLVx1MDAzZWRldixcbitcdFx0XHRcIlJWVVBGJWQ6IElSUSByZWdpc3RyYXRpb24gZmFpbGVkIGZvciBOSVhMRiBFUlIgdmVjdG9yXFxuXCIsXG4rXHRcdFx0cnZ1X2dldF9wZihwZi1cdTAwM2VwZGV2LCBwZi1cdTAwM2VwY2lmdW5jKSk7XG4rXHRcdGdvdG8gZXJyX2ZyZWVfY2ludHM7XG4rXHR9XG4rXHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9FUlJfSU5UX0VOQV9XMVMsIE5JWF9MRl9FUlJfSU5UX01BU0spO1xuK1xuK1x0LyogUmVnaXN0ZXIgTklYTEYgUE9JU09OIGludGVycnVwdCBoYW5kbGVyICovXG4rXHR2ZWMgPSBwZi1cdTAwM2Vody5uaXhfbXNpeG9mZiArIE5JWF9MRl9QT0lTT05fVkVDO1xuK1x0aXJxX25hbWUgPSBcdTAwMjZwZi1cdTAwM2Vody5pcnFfbmFtZVt2ZWMgKiBOQU1FX1NJWkVdO1xuK1x0c25wcmludGYoaXJxX25hbWUsIE5BTUVfU0laRSwgXCIlcy1uaXhsZi1wb2lzb25cIiwgcGYtXHUwMDNlbmV0ZGV2LVx1MDAzZW5hbWUpO1xuK1x0ZXJyID0gcmVxdWVzdF9pcnEocGNpX2lycV92ZWN0b3IocGYtXHUwMDNlcGRldiwgdmVjKSxcbitcdFx0XHQgIG90eDJfbml4bGZfcG9pc29uX2ludHJfaGFuZGxlciwgMCwgaXJxX25hbWUsIHBmKTtcbitcdGlmIChlcnIpIHtcbitcdFx0ZGV2X2VycihwZi1cdTAwM2VkZXYsXG4rXHRcdFx0XCJSVlVQRiVkOiBJUlEgcmVnaXN0cmF0aW9uIGZhaWxlZCBmb3IgTklYTEYgUE9JU09OIHZlY3RvclxcblwiLFxuK1x0XHRcdHJ2dV9nZXRfcGYocGYtXHUwMDNlcGRldiwgcGYtXHUwMDNlcGNpZnVuYykpO1xuK1x0XHRnb3RvIGVycl9mcmVlX2VycmludDtcbitcdH1cbitcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX1JBU19FTkFfVzFTLCBOSVhfTEZfUkFTX01BU0spO1xuK1xuIFx0aWYgKHBmLVx1MDAzZWZsYWdzIFx1MDAyNiBPVFgyX0ZMQUdfUlhfVkxBTl9TVVBQT1JUKVxuIFx0XHRvdHgyX2VuYWJsZV9yeHZsYW4ocGYsIHRydWUpO1xuIFxuQEAgLTIxMzIsNiArMjE4OCwxNiBAQCBpbnQgb3R4Ml9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4gXHRuZXRpZl90eF9zdG9wX2FsbF9xdWV1ZXMobmV0ZGV2KTtcbiBcdG5ldGlmX2NhcnJpZXJfb2ZmKG5ldGRldik7XG4gXHRwZi1cdTAwM2VmbGFncyB8PSBPVFgyX0ZMQUdfSU5URl9ET1dOO1xuK1x0LyogZnJlZSBOSVhMRiBQT0lTT04gaXJxICovXG4rXHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LFxuK1x0XHRcdCAgICAgcGYtXHUwMDNlaHcubml4X21zaXhvZmYgKyBOSVhfTEZfUE9JU09OX1ZFQyk7XG4rXHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9SQVNfRU5BX1cxQywgTklYX0xGX1JBU19NQVNLKTtcbitcdGZyZWVfaXJxKHZlYywgcGYpO1xuK2Vycl9mcmVlX2VycmludDpcbitcdHZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLVx1MDAzZXBkZXYsXG4rXHRcdFx0ICAgICBwZi1cdTAwM2Vody5uaXhfbXNpeG9mZiArIE5JWF9MRl9FUlJfVkVDKTtcbitcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX0VSUl9JTlRfRU5BX1cxQywgTklYX0xGX0VSUl9JTlRfTUFTSyk7XG4rXHRmcmVlX2lycSh2ZWMsIHBmKTtcbiBlcnJfZnJlZV9jaW50czpcbiBcdG90eDJfZnJlZV9jaW50cyhwZiwgcWlkeCk7XG4gXHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LFxuQEAgLTIxNzEsNiArMjIzNywxOCBAQCBpbnQgb3R4Ml9zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4gXHQvKiBDbGVhciBSU1MgZW5hYmxlIGZsYWcgKi9cbiBcdHBmLVx1MDAzZWh3LnJzc19pbmZvLmVuYWJsZSA9IGZhbHNlO1xuIFxuK1x0LyogQ2xlYW51cCBOSVhMRiBQb2lzb24gSVJRICovXG4rXHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LFxuK1x0XHRcdCAgICAgcGYtXHUwMDNlaHcubml4X21zaXhvZmYgKyBOSVhfTEZfUE9JU09OX1ZFQyk7XG4rXHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9SQVNfRU5BX1cxQywgTklYX0xGX1JBU19NQVNLKTtcbitcdGZyZWVfaXJxKHZlYywgcGYpO1xuK1xuK1x0LyogQ2xlYW51cCBOSVhMRiBFcnJvciBJUlEgKi9cbitcdHZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLVx1MDAzZXBkZXYsXG4rXHRcdFx0ICAgICBwZi1cdTAwM2Vody5uaXhfbXNpeG9mZiArIE5JWF9MRl9FUlJfVkVDKTtcbitcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX0VSUl9JTlRfRU5BX1cxQywgTklYX0xGX0VSUl9JTlRfTUFTSyk7XG4rXHRmcmVlX2lycSh2ZWMsIHBmKTtcbitcbiBcdC8qIENsZWFudXAgUXVldWUgSVJRICovXG4gXHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LFxuIFx0XHRcdCAgICAgcGYtXHUwMDNlaHcubml4X21zaXhvZmYgKyBOSVhfTEZfUUlOVF9WRUNfU1RBUlQpO1xuQEAgLTMwMDYsMTEgKzMwODQsMTUgQEAgaW50IG90eDJfcmVhbGxvY19tc2l4X3ZlY3RvcnMoc3RydWN0IG90eDJfbmljICpwZilcbiBcdHN0cnVjdCBvdHgyX2h3ICpodyA9IFx1MDAyNnBmLVx1MDAzZWh3O1xuIFx0aW50IG51bV92ZWMsIGVycjtcbiBcbi1cdC8qIE5QQSBpbnRlcnJ1cHRzIGFyZSBpbm90IHJlZ2lzdGVyZWQsIHNvIGFsbG9jIG9ubHlcbi1cdCAqIHVwdG8gTklYIHZlY3RvciBvZmZzZXQuXG4rXHQvKiBTa2lwIE5QQSB2ZWN0b3JzLiBSZXByZXNlbnRvcnMgb25seSB1c2UgQ0lOVCB2ZWN0b3JzLCBzbyBsaW1pdFxuK1x0ICogdGhlIGJ1ZGdldCB0byB0aGF0IHJhbmdlLiBGb3IgUEYvVkYsIGFsbG9jYXRlIHRoZSBmdWxsIE5JWCBMRlxuK1x0ICogaW50ZXJydXB0IHJhbmdlIChRSU5ULCBDSU5ULCBHSU5ULCBFUlIgYW5kIFBPSVNPTiB2ZWN0b3JzKS5cbiBcdCAqL1xuIFx0bnVtX3ZlYyA9IGh3LVx1MDAzZW5peF9tc2l4b2ZmO1xuLVx0bnVtX3ZlYyArPSBOSVhfTEZfQ0lOVF9WRUNfU1RBUlQgKyBody1cdTAwM2VtYXhfcXVldWVzO1xuK1x0aWYgKHBmLVx1MDAzZWZsYWdzIFx1MDAyNiBPVFgyX0ZMQUdfUkVQX01PREVfRU5BQkxFRClcbitcdFx0bnVtX3ZlYyArPSBOSVhfTEZfQ0lOVF9WRUNfU1RBUlQgKyBody1cdTAwM2VtYXhfcXVldWVzO1xuK1x0ZWxzZVxuK1x0XHRudW1fdmVjICs9IE5JWF9MRl9QT0lTT05fVkVDICsgMTtcbiBcbiBcdG90eDJfZGlzYWJsZV9tYm94X2ludHIocGYpO1xuIFx0cGNpX2ZyZWVfaXJxX3ZlY3RvcnMoaHctXHUwMDNlcGRldik7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcmVnLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9yZWcuaFxuaW5kZXggMWNkNTc2ZmQwOWM1Ni4uYzE0NGZkMmJiZTUxZiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3JlZy5oXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9yZWcuaFxuQEAgLTEyMSwxMCArMTIxLDEyIEBAXG4gI2RlZmluZVx0TklYX0xGX0VSUl9JTlRfVzFTXHRcdChOSVhfTEZCQVNFIHwgMHgyMjgpXG4gI2RlZmluZVx0TklYX0xGX0VSUl9JTlRfRU5BX1cxQ1x0XHQoTklYX0xGQkFTRSB8IDB4MjMwKVxuICNkZWZpbmVcdE5JWF9MRl9FUlJfSU5UX0VOQV9XMVNcdFx0KE5JWF9MRkJBU0UgfCAweDIzOClcbisjZGVmaW5lXHROSVhfTEZfRVJSX0lOVF9NQVNLXHRcdEdFTk1BU0tfVUxMKDMxLCAwKVxuICNkZWZpbmVcdE5JWF9MRl9SQVNcdFx0XHQoTklYX0xGQkFTRSB8IDB4MjQwKVxuICNkZWZpbmVcdE5JWF9MRl9SQVNfVzFTXHRcdFx0KE5JWF9MRkJBU0UgfCAweDI0OClcbiAjZGVmaW5lXHROSVhfTEZfUkFTX0VOQV9XMUNcdFx0KE5JWF9MRkJBU0UgfCAweDI1MClcbiAjZGVmaW5lXHROSVhfTEZfUkFTX0VOQV9XMVNcdFx0KE5JWF9MRkJBU0UgfCAweDI1OClcbisjZGVmaW5lXHROSVhfTEZfUkFTX01BU0tcdFx0XHRHRU5NQVNLX1VMTCgxMCwgMClcbiAjZGVmaW5lXHROSVhfTEZfU1FfT1BfRVJSX0RCR1x0XHQoTklYX0xGQkFTRSB8IDB4MjYwKVxuICNkZWZpbmVcdE5JWF9MRl9NTlFfRVJSX0RCR1x0XHQoTklYX0xGQkFTRSB8IDB4MjcwKVxuICNkZWZpbmVcdE5JWF9MRl9TRU5EX0VSUl9EQkdcdFx0KE5JWF9MRkJBU0UgfCAweDI4MClcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuY1xuaW5kZXggYjAyMmY1MmM2ODQ1MC4uZWRhNGVkNTJhOGQ4NSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmNcbkBAIC01NTQsNyArNTU0LDcgQEAgc3RhdGljIGludCBvdHgydmZfcmVhbGxvY19tc2l4X3ZlY3RvcnMoc3RydWN0IG90eDJfbmljICp2ZilcbiBcdGludCBudW1fdmVjLCBlcnI7XG4gXG4gXHRudW1fdmVjID0gaHctXHUwMDNlbml4X21zaXhvZmY7XG4tXHRudW1fdmVjICs9IE5JWF9MRl9DSU5UX1ZFQ19TVEFSVCArIGh3LVx1MDAzZW1heF9xdWV1ZXM7XG4rXHRudW1fdmVjICs9IE5JWF9MRl9QT0lTT05fVkVDICsgMTtcbiBcbiBcdG90eDJ2Zl9kaXNhYmxlX21ib3hfaW50cih2Zik7XG4gXHRwY2lfZnJlZV9pcnFfdmVjdG9ycyhody1cdTAwM2VwZGV2KTtcbkBAIC01OTcsNyArNTk3LDcgQEAgc3RhdGljIGludCBvdHgydmZfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbiBcbiBcdHBjaV9zZXRfbWFzdGVyKHBkZXYpO1xuIFxuLVx0cWNvdW50ID0gbnVtX29ubGluZV9jcHVzKCk7XG4rXHRxY291bnQgPSBtaW5fdChpbnQsIG51bV9vbmxpbmVfY3B1cygpLCBPVFgyX01BWF9DUV9DTlQpO1xuIFx0cW9zX3R4cXMgPSBtaW5fdChpbnQsIHFjb3VudCwgT1RYMl9RT1NfTUFYX0xFQUZfTk9ERVMpO1xuIFx0bmV0ZGV2ID0gYWxsb2NfZXRoZXJkZXZfbXFzKHNpemVvZigqdmYpLCBxY291bnQgKyBxb3NfdHhxcywgcWNvdW50KTtcbiBcdGlmICghbmV0ZGV2KVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMDc6MTI6NDUuNDcwMDk5MzE2WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MTEyMDI3NjM0ODMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIGhlcmUncyB3aGF0IEknbSB0aGlua2luZy4gVGhlIGdvYWwgaXMgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgcGF0Y2ggaXMgd29ydGggZnV6emluZywgYW5kIGlmIHNvLCB3aGF0IGZvY3VzIHN5bWJvbHMgYW5kIGNvbmZpZ3VyYXRpb25zIHRvIHN1Z2dlc3QuIEZpcnN0LCBJIG5lZWQgdG8gZG8gYSBxdWljayByaXNrIGFzc2Vzc21lbnQuIFRoaXMgaXMgYSBzdGFuZGFyZCBMaW51eCBrZXJuZWwgcGF0Y2ggcmV2aWV3LCBzbyB0aGUgcmlzayBpcyBtaW5pbWFsIOKAkyBzdHJpY3RseSBRQS90ZXN0aW5nIGF1dG9tYXRpb24gaGVyZSwgbm8gbWFsaWNpb3VzIGludGVudC4gSSdtIG9wZXJhdGluZyBpbiBhIGJlbmlnbiBhbmQgc2FmZSBjb250ZXh0LlxuXG5Ob3csIGxldCdzIGRpdmUgaW50byB0aGUgcGF0Y2ggaXRzZWxmLiBJIG5lZWQgdG8gYXBwbHkgdGhlc2UgZ3VpZGVsaW5lczogSSAqaW1tZWRpYXRlbHkqIGRpc2NhcmQgdGhlIHBhdGNoIGFzIG5vdCB3b3J0aCBmdXp6aW5nIGlmIGl0J3Mgb25seSBkb2N1bWVudGF0aW9uLCBjb21tZW50cywgZGVjb3JhdGl2ZSBsb2dnaW5nLCBjb25zdGFudCBjaGFuZ2VzIHdpdGhvdXQgZnVuY3Rpb25hbCBpbXBhY3QsIHVucmVhY2hhYmxlIGNvZGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIHRob3NlIGVtdWxhdGVkIGJ5IEdDRSBvciBRRU1VLCBldmVuIHdpdGggZW11bGF0ZWQgaGFyZHdhcmUpLCBvciBhbnl0aGluZyBkZWFsaW5nIHdpdGggdGhvc2Ugb2ZmLWxpbWl0IHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzLCBvciB0ZWFyZG93biBjYWxsYmFja3MgdGhhdCBvbmx5IHJ1biBkdXJpbmcgaG90LXVucGx1ZyBvcGVyYXRpb25zLlxuXG5BbHJpZ2h0LCB3aGF0IGRpZCB0aGUgcGF0Y2ggYWN0dWFsbHkgdG91Y2g/IExvb2tzIGxpa2UgaXQgbW9kaWZpZXMgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmNgLCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcmVnLmhgLCBhbmQgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmNgLiBUaGF0J3MgdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIE5JQyBzdHVmZjogYG9jdGVvbnR4MmAsIGBvdHgyX3BmYCwgYW5kIGBvdHgyX3ZmYC4gTm93LCBoZXJlJ3Mgd2hlcmUgaXQgZ2V0cyBpbnRlcmVzdGluZy4gKklzKiB0aGUgT2N0ZW9uVFgyIGEgdmVuZG9yLXNwZWNpZmljIFNtYXJ0TklDIG9yIFBDSWUgZGV2aWNlIGRyaXZlciB0aGF0IG5lZWRzIHNwZWNpZmljIHBoeXNpY2FsIGhhcmR3YXJlIHRoYXQncyAqbm90KiBlbXVsYXRlZCBpbiBRRU1VPyBJIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcgYW5kIGRyaXZlciBkZXRhaWxzIHRvIGZpZ3VyZSBvdXQgaWYgaXQgZmFsbHMgaW50byB0aGF0IGNhdGVnb3J5LCBhcyB0aGF0J3MgdGhlIGRlY2lkaW5nIGZhY3RvciBhdCB0aGlzIHBvaW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MDM3LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTAzLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMDc6MTI6NTYuNjcyODY2NzU5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ3MjEwOTY3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIk9DVEVPTlRYMlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4MlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzo2OmNvbmZpZyBPQ1RFT05UWDJfTUJPWFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNy1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjk6Y29uZmlnIE9DVEVPTlRYMl9BRlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMTAtXFx0dHJpc3RhdGUgXFxcIk1hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBkcml2ZXJcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzoxMTpcXHRzZWxlY3QgT0NURU9OVFgyX01CT1hcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTEyLVxcdHNlbGVjdCBORVRfREVWTElOS1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZz0yMj1jb25maWcgTkRDX0RJU19EWU5BTUlDX0NBQ0hJTkdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTIzLVxcdGJvb2wgXFxcIkRpc2FibGUgY2FjaGluZyBvZiBkeW5hbWljIGVudHJpZXMgaW4gTkRDXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6MjQ6XFx0ZGVwZW5kcyBvbiBPQ1RFT05UWDJfQUZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTI1LVxcdGRlZmF1bHQgblxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0zMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjMxOmNvbmZpZyBPQ1RFT05UWDJfUEZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTMyLVxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgUGh5c2ljYWwgRnVuY3Rpb24gZHJpdmVyXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6MzM6XFx0c2VsZWN0IE9DVEVPTlRYMl9NQk9YXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0zNC1cXHRzZWxlY3QgTkVUX0RFVkxJTktcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzo0NTpjb25maWcgT0NURU9OVFgyX1ZGXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy00Ni1cXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBPY3Rlb25UWDIgTklDIFZpcnR1YWwgRnVuY3Rpb24gZHJpdmVyXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6NDc6XFx0ZGVwZW5kcyBvbiBPQ1RFT05UWDJfUEZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTQ4LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc9NTE9Y29uZmlnIFJWVV9FU1dJVENIXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy01Mi1cXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBSVlUgRS1Td2l0Y2ggc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjUzOlxcdGRlcGVuZHMgb24gT0NURU9OVFgyX1BGXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy01NC1cXHRkZWZhdWx0IG1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL01ha2VmaWxlLTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvTWFrZWZpbGU6NjpvYmotJChDT05GSUdfT0NURU9OVFgyX01CT1gpICs9IGFmL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL01ha2VmaWxlOjc6b2JqLSQoQ09ORklHX09DVEVPTlRYMl9BRikgKz0gYWYvXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvTWFrZWZpbGU6ODpvYmotJChDT05GSUdfT0NURU9OVFgyX1BGKSArPSBuaWMvXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZT02PWNjZmxhZ3MteSArPSAtSSQoc3JjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlOjc6b2JqLSQoQ09ORklHX09DVEVPTlRYMl9NQk9YKSArPSBydnVfbWJveC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU6ODpvYmotJChDT05GSUdfT0NURU9OVFgyX0FGKSArPSBydnVfYWYub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlLTktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guYz02Nj1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgY2d4X2lkX3RhYmxlW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmM6Njc6XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX0NHWCkgfSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guYy02OC1cXHR7IFBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfQ04xMEtfUlBNLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmgtMTUtIC8qIFBDSSBkZXZpY2UgSURzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4Lmg6MTY6I2RlZmluZVxcdFBDSV9ERVZJRF9PQ1RFT05UWDJfQ0dYXFx0XFx0MHhBMDU5XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmgtMTctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM9MTU0PURFRklORV9TSE9XX0FUVFJJQlVURShucGNfbWNhbV9sYXlvdXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0xNTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jOjE1NjojZGVmaW5lIF9fT0NURU9OVFgyX0RFQlVHRlNfQVRUUklCVVRFX0ZPUFMoX19uYW1lKVxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMTU3LXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIF9fbmFtZSAjIyBfZm9wcyA9IHtcXHRcXHRcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMTY0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYzoxNjU6I2RlZmluZSBERUZJTkVfT0NURU9OVFgyX0RFQlVHRlNfQVRUUklCVVRFX1dJVEhfU0laRShfX25hbWUsIF9fc2l6ZSlcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTE2Ni1zdGF0aWMgaW50IF9fbmFtZSAjIyBfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSlcXHRcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMTcwLX1cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jOjE3MTpfX09DVEVPTlRYMl9ERUJVR0ZTX0FUVFJJQlVURV9GT1BTKF9fbmFtZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMTcyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jPTE4MT1zdGF0aWMgaW50IG5wY19tY2FtX2RzdGF0c19zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqdW51c2VkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTI0Mi0jZGVmaW5lIFRPVEFMX1NaIChNQVhfTlVNX0JBTktTICogTUFYX05VTV9TVUJfQkFOS1MgKiBNQVhfU1VCQkFOS19ERVBUSCAqIDY0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYzoyNDM6REVGSU5FX09DVEVPTlRYMl9ERUJVR0ZTX0FUVFJJQlVURV9XSVRIX1NJWkUobnBjX21jYW1fZHN0YXRzLCBUT1RBTF9TWik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTI0NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM9MjQ1PXN0YXRpYyBpbnQgbnBjX21jYW1fbWlzbWF0Y2hfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKnVudXNlZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0yODQtLyogXFxcIiV1XFxcXHQlZFxcXFx0JXVcXFxcblxcXCIgbmVlZHMgbGVzcyB0aGFuIDY0IGNoYXJhY3RlcnMgdG8gcHJpbnQuICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jOjI4NTpERUZJTkVfT0NURU9OVFgyX0RFQlVHRlNfQVRUUklCVVRFX1dJVEhfU0laRShucGNfbWNhbV9taXNtYXRjaCwgVE9UQUxfU1opO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0yODYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy0yMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzoyMTojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQXFx0XFx0XFx0MHhBMDBDXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtMjItI2RlZmluZSBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk4eHhfUFRQXFx0XFx0MHhCMTAwXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy0yNy0jZGVmaW5lIFBDSV9TVUJTWVNfREVWSURfT0NUWDJfOTVYWE9fUFRQXFx0MHhCNjAwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6Mjg6I2RlZmluZSBQQ0lfREVWSURfT0NURU9OVFgyX1JTVFxcdFxcdFxcdDB4QTA4NVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTI5LSNkZWZpbmUgUENJX0RFVklEX0NOMTBLX1BUUFxcdFxcdFxcdDB4QTA5RVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM9NTg5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwdHBfaWRfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzo1OTA6XFx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNTkxLVxcdFxcdFxcdCBQQ0lfVkVORE9SX0lEX0NBVklVTSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01OTItXFx0XFx0XFx0IFBDSV9TVUJTWVNfREVWSURfT0NUWDJfOTh4eF9QVFApIH0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NTkzOlxcdHsgUENJX0RFVklDRV9TVUIoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTU5NC1cXHRcXHRcXHQgUENJX1ZFTkRPUl9JRF9DQVZJVU0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNTk1LVxcdFxcdFxcdCBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk2WFhfUFRQKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjU5NjpcXHR7IFBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1BUUCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01OTctXFx0XFx0XFx0IFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTU5OC1cXHRcXHRcXHQgUENJX1NVQlNZU19ERVZJRF9PQ1RYMl85NVhYX1BUUCkgfSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzo1OTk6XFx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNjAwLVxcdFxcdFxcdCBQQ0lfVkVORE9SX0lEX0NBVklVTSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy02MDEtXFx0XFx0XFx0IFBDSV9TVUJTWVNfREVWSURfT0NUWDJfOTVYWE5fUFRQKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjYwMjpcXHR7IFBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1BUUCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy02MDMtXFx0XFx0XFx0IFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTYwNC1cXHRcXHRcXHQgUENJX1NVQlNZU19ERVZJRF9PQ1RYMl85NU1NX1BUUCkgfSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzo2MDU6XFx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNjA2LVxcdFxcdFxcdCBQQ0lfVkVORE9SX0lEX0NBVklVTSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTQ0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBydnVfaWRfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzo0NTpcXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTQ2LVxcdHsgMCwgfSAgLyogZW5kIG9mIHRhYmxlICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz05Mjc9c3RhdGljIHZvaWQgcnZ1X2dldF9sYmtfYnVmc2l6ZShzdHJ1Y3QgcnZ1ICpydnUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy05MzMtXFx0cGRldiA9IHBjaV9nZXRfZGV2aWNlKFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjkzNDpcXHRcXHRcXHQgICAgICBQQ0lfREVWSURfT0NURU9OVFgyX0xCSywgcGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtOTM1LVxcdGlmICghcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTM0NDI9aW50IHJ2dV9nZXRfbnVtX2xia19jaGFucyh2b2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ0Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzozNDQ4OlxcdHBkZXYgPSBwY2lfZ2V0X2RldmljZShQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9MQkssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ0OS1cXHRcXHRcXHQgICAgICBOVUxMKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5oLTIzLS8qIFBDSSBkZXZpY2UgSURzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1Lmg6MjQ6I2RlZmluZVxcdFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGXFx0XFx0MHhBMDY1XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1Lmg6MjU6I2RlZmluZVxcdFBDSV9ERVZJRF9PQ1RFT05UWDJfTEJLXFx0XFx0XFx0MHhBMDYxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmgtMjYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY24xMGsuYz0zOTI9c3RhdGljIHZvaWQgcnZ1X2xia19zZXRfY2hhbm5lbHMoc3RydWN0IHJ2dSAqcnZ1KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NuMTBrLmMtNDE1LVxcdFxcdHBkZXYgPSBwY2lfZ2V0X2RldmljZShQQ0lfVkVORE9SX0lEX0NBVklVTSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY24xMGsuYzo0MTY6XFx0XFx0XFx0XFx0ICAgICAgUENJX0RFVklEX09DVEVPTlRYMl9MQkssIHBkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jbjEway5jLTQxNy1cXHRcXHRpZiAoIXBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jPTI3OTQ9c3RhdGljIHZvaWQgcnZ1X2RiZ19ucGFfaW5pdChzdHJ1Y3QgcnZ1ICpydnUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jLTI4MTMtLyogUGVyLWxtYWMgQ0dYIGRlYnVnZnMgZmlsZXMgbmVlZCBib3RoIFJWVSBhbmQgQ0dYIGhhbmRsZTsgaW5vZGUtXFx1MDAzZWlfcHJpdmF0ZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZWJ1Z2ZzLmM6MjgxNDogKiBwb2ludHMgaGVyZSBzbyBzZXFfZmlsZSBvcHMgYXZvaWQgcGNpX2dldF9kZXZpY2UoUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUYpLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZWJ1Z2ZzLmMtMjgxNS0gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9NYWtlZmlsZS01LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19PQ1RFT05UWDJfUEYpICs9IHJ2dV9uaWNwZi5vIG90eDJfcHRwLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvTWFrZWZpbGU6NzpvYmotJChDT05GSUdfT0NURU9OVFgyX1ZGKSArPSBydnVfbmljdmYubyBvdHgyX3B0cC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL01ha2VmaWxlLTgtb2JqLSQoQ09ORklHX1JWVV9FU1dJVENIKSArPSBydnVfcmVwLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTQyLS8qIFBDSSBkZXZpY2UgSURzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmg6NDM6I2RlZmluZSBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9QRiAgICAgICAgICAgICAgMHhBMDYzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmg6NDQ6I2RlZmluZSBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9WRlxcdFxcdDB4QTA2NFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjQ1OiNkZWZpbmUgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUZWRlxcdFxcdDB4QTBGOFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTQ2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmg6NTE6I2RlZmluZSBQQ0lfREVWSURfT0NURU9OVFgyX1NEUF9SRVBcXHRcXHQweEEwRjdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC01Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oPTU5Nz1zdGF0aWMgaW5saW5lIGJvb2wgaXNfb3R4Ml9sYmt2ZihzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC01OTgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjU5OTpcXHRyZXR1cm4gKHBkZXYtXFx1MDAzZWRldmljZSA9PSBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9BRlZGKSB8fFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTYwMC1cXHRcXHQocGRldi1cXHUwMDNlZGV2aWNlID09IFBDSV9ERVZJRF9SVlVfUkVQKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oPTYxNT1zdGF0aWMgaW5saW5lIGJvb2wgaXNfb3R4Ml9zZHBfcmVwKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTYxNi17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmg6NjE3OlxcdHJldHVybiBwZGV2LVxcdTAwM2VkZXZpY2UgPT0gUENJX0RFVklEX09DVEVPTlRYMl9TRFBfUkVQO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTYxOC19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jPTM2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBvdHgyX3BmX2lkX3RhYmxlW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYzozNzpcXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX1BGKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmMtMzgtXFx0eyAwLCB9ICAvKiBlbmQgb2YgdGFibGUgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmM9MjI9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIG90eDJfdmZfaWRfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jOjIzOlxcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUZWRikgfSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jOjI0OlxcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfVkYpIH0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYzoyNTpcXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfU0RQX1JFUCkgfSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jLTI2LVxcdHsgfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQwNzoxMjo1Ni43MjAwODMzNjZaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo2Nzk1MjIxNjc4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZyBEZWNpc2lvbiBmb3IgT2N0ZW9uVFgyIERyaXZlcnMqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24gc3lzdGVtYXRpY2FsbHkuIFRoZSBjcml0ZXJpYSBsYWlkIG91dCBzdGF0ZSB0aGF0IHdlIHNob3VsZCBzZXQgYFdvcnRoRnV6emluZ2AgdG8gYGZhbHNlYCBpZiB0aGUgcGF0Y2ggaW52b2x2ZXMgY29kZSBwYXRocyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiBUaGlzIGlzIGNyaXRpY2FsIGZvciBlZmZpY2llbnQgcmVzb3VyY2UgYWxsb2NhdGlvbiwgYXMgeW91IGtub3cuXG5cbkknbSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCBtb2RpZmllcyB0aGUgTWFydmVsbCBPY3Rlb25UWDIgbmV0d29yayBkcml2ZXJzIOKAkyBzcGVjaWZpY2FsbHksIHRoZSBwaHlzaWNhbCBmdW5jdGlvbiAoYG90eDJfcGYuY2ApIGFuZCB2aXJ0dWFsIGZ1bmN0aW9uIChgb3R4Ml92Zi5jYCkgZHJpdmVycy4gVGhlIGNoYW5nZXMgaW52b2x2ZSBpbnRlcnJ1cHQgaGFuZGxlcnMgYW5kIHZlY3RvciBhbGxvY2F0aW9ucyBmb3IgY2VydGFpbiBOSVggZXZlbnRzLiBUaGlzIGltbWVkaWF0ZWx5IGZsYWdzIGEgcG90ZW50aWFsIGlzc3VlLCBnaXZlbiBteSBrbm93bGVkZ2Ugb2YgdGhlIGhhcmR3YXJlLlxuXG5UaGUgT2N0ZW9uVFgyIGRyaXZlcnMgYXJlIHZlbmRvci1zcGVjaWZpYywgdGFyZ2V0aW5nIENhdml1bS9NYXJ2ZWxsIE9jdGVvblRYMiBoYXJkd2FyZS4gVGhhdCBtZWFucyB0aGV5IHJlbHkgb24gdGhlIHByZXNlbmNlIG9mIHBoeXNpY2FsIFBDSWUgY2FyZHMgb3IgdGhlIE9jdGVvblRYMiBTb0MgaXRzZWxmLiBJJ3ZlIGRvdWJsZS1jaGVja2VkLCBhbmQgdGhlcmUncyBubyBzdGFuZGFyZCBRRU1VIGVtdWxhdGlvbiBmb3IgdGhlc2UgUlZVIFBGL1ZGIGRldmljZXMgKFBDSSB2ZW5kb3IgSUQgMHgxNzdkLCBkZXZpY2UgSURzIDB4QTA2MywgMHhBMDY0LCBldGMuKS4gV2UncmUgdGFsa2luZyBhYm91dCBhIGxldmVsIG9mIGhhcmR3YXJlIGludGVyYWN0aW9uIHRoYXQgaXNuJ3QgcmVwbGljYXRlZCBpbiBhIHN0YW5kYXJkIHZpcnR1YWwgZW52aXJvbm1lbnQuXG5cblRoZXJlZm9yZSwgdGhpcyBjb2RlIHBhdGggaXMgc2ltcGx5IHVucmVhY2hhYmxlIHdpdGhpbiBhIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGZ1enppbmcgc2V0dXAuIEdpdmVuIHRoZSBjcml0ZXJpYSwgSSdtIGNvbmZpZGVudCBpbiBjb25jbHVkaW5nIHRoYXQgdGhpcyBwYXRjaCBpcyBub3Qgd29ydGggZnV6emluZyBpbiBvdXIgc3RhbmRhcmQgZW52aXJvbm1lbnQuIEl0IHdpbGwgYmUgbW9yZSBlZmZlY3RpdmUgdG8gdGVzdCB0aG9zZSBkcml2ZXJzIG9uIHRoZSBoYXJkd2FyZSB0aGV5IHdlcmUgZGVzaWduZWQgZm9yLlxuXG5CYXNlZCBvbiB0aGlzIGFuYWx5c2lzLCBJIHdpbGwgc2V0IGBXb3J0aEZ1enppbmdgIHRvIGBmYWxzZWAgYW5kIG1vdmUgb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExNzc5LCJPdXRwdXRUb2tlbnMiOjExNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUzOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQwNzoxMzowMy41MTUzMDg2MTRaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMxMzkwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgZHJpdmVyIChvdHgyX3BmLmMsIG90eDJfdmYuYykgdG8gcmVnaXN0ZXIgZXJyb3IgYW5kIHBvaXNvbiBpbnRlcnJ1cHQgaGFuZGxlcnMgYW5kIGFkanVzdCBNU0ktWCB2ZWN0b3IgYWxsb2NhdGlvbi4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcHJvcHJpZXRhcnkgTWFydmVsbCBPY3Rlb25UWDIgLyBDYXZpdW0gaGFyZHdhcmUgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIG1ha2luZyBpdCB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgZHJpdmVyIChvdHgyX3BmLmMsIG90eDJfdmYuYykgdG8gcmVnaXN0ZXIgZXJyb3IgYW5kIHBvaXNvbiBpbnRlcnJ1cHQgaGFuZGxlcnMgYW5kIGFkanVzdCBNU0ktWCB2ZWN0b3IgYWxsb2NhdGlvbi4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcHJvcHJpZXRhcnkgTWFydmVsbCBPY3Rlb25UWDIgLyBDYXZpdW0gaGFyZHdhcmUgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIG1ha2luZyBpdCB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDA3OjEzOjAzLjUxNTM1NDI3NFoiLCJTZXEiOjcsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MzEwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflow5jpm9[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-31 06:56:12 +0000 UTC FinishedAt: 2026-08-31 07:13:04 +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+CgkJCTx0ZD4yMDI2LzA4LzMxIDA3OjEyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIE5JQyBkcml2ZXIgKG90eDJfcGYuYywgb3R4Ml92Zi5jKSB0byByZWdpc3RlciBlcnJvciBhbmQgcG9pc29uIGludGVycnVwdCBoYW5kbGVycyBhbmQgYWRqdXN0IE1TSS1YIHZlY3RvciBhbGxvY2F0aW9uLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwcm9wcmlldGFyeSBNYXJ2ZWxsIE9jdGVvblRYMiAvIENhdml1bSBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgbWFraW5nIGl0IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAwNzoxMjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDU4NWI1NDMyZWMzZjM4NzFkZDRjYTM3NjZhZWU3NWFkZDg2OTg0ZDhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAzMSAwNzoxMjo0NCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuY1xuaW5kZXggYzk5NWYyOTAwODU5MC4uMWY4Y2I3OGMxOTE5NSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmNcbkBAIC0xNTI0LDYgJiM0MzsxNTI0LDM0IEBAIGlycXJldHVybl90IG90eDJfY3FfaW50cl9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmNxX2lycSlcbiB9XG4gRVhQT1JUX1NZTUJPTChvdHgyX2NxX2ludHJfaGFuZGxlcik7XG4gXG4mIzQzO3N0YXRpYyBpcnFyZXR1cm5fdCBvdHgyX25peGxmX2Vycl9pbnRyX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGF0YSlcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBvdHgyX25pYyAqcGYgPSBkYXRhO1xuJiM0MztcdHU2NCByZWd2YWw7XG4mIzQzO1xuJiM0MztcdC8qIENsZWFyIGludGVycnVwdCAqL1xuJiM0MztcdHJlZ3ZhbCA9IG90eDJfcmVhZDY0KHBmLCBOSVhfTEZfRVJSX0lOVCk7XG4mIzQzO1x0b3R4Ml93cml0ZTY0KHBmLCBOSVhfTEZfRVJSX0lOVCwgcmVndmFsKTtcbiYjNDM7XG4mIzQzO1x0ZGV2X2Vycl9yYXRlbGltaXRlZChwZi1cdTAwM2VkZXYsIFwmIzM0O05JWExGIEVycm9yIEludGVycnVwdDogMHglbGx4XFxuXCYjMzQ7LCByZWd2YWwpO1xuJiM0MztcbiYjNDM7XHRyZXR1cm4gSVJRX0hBTkRMRUQ7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3N0YXRpYyBpcnFyZXR1cm5fdCBvdHgyX25peGxmX3BvaXNvbl9pbnRyX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGF0YSlcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBvdHgyX25pYyAqcGYgPSBkYXRhO1xuJiM0MztcdHU2NCByZWd2YWw7XG4mIzQzO1xuJiM0MztcdC8qIENsZWFyIGludGVycnVwdCAqL1xuJiM0MztcdHJlZ3ZhbCA9IG90eDJfcmVhZDY0KHBmLCBOSVhfTEZfUkFTKTtcbiYjNDM7XHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9SQVMsIHJlZ3ZhbCk7XG4mIzQzO1xuJiM0MztcdGRldl9lcnJfcmF0ZWxpbWl0ZWQocGYtXHUwMDNlZGV2LCBcJiMzNDtOSVhMRiBQb2lzb24gSW50ZXJydXB0OiAweCVsbHhcXG5cJiMzNDssIHJlZ3ZhbCk7XG4mIzQzO1xuJiM0MztcdHJldHVybiBJUlFfSEFORExFRDtcbiYjNDM7fVxuJiM0MztcbiB2b2lkIG90eDJfZGlzYWJsZV9uYXBpKHN0cnVjdCBvdHgyX25pYyAqcGYpXG4ge1xuIFx0c3RydWN0IG90eDJfcXNldCAqcXNldCA9IFx1MDAyNnBmLVx1MDAzZXFzZXQ7XG5AQCAtMjA4MCw2ICYjNDM7MjEwOCwzNCBAQCBpbnQgb3R4Ml9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4gXG4gXHRvdHgyX3NldF9jaW50c19hZmZpbml0eShwZik7XG4gXG4mIzQzO1x0LyogUmVnaXN0ZXIgTklYTEYgZXJyb3IgSVJRIGhhbmRsZXIgKi9cbiYjNDM7XHR2ZWMgPSBwZi1cdTAwM2Vody5uaXhfbXNpeG9mZiAmIzQzOyBOSVhfTEZfRVJSX1ZFQztcbiYjNDM7XHRpcnFfbmFtZSA9IFx1MDAyNnBmLVx1MDAzZWh3LmlycV9uYW1lW3ZlYyAqIE5BTUVfU0laRV07XG4mIzQzO1x0c25wcmludGYoaXJxX25hbWUsIE5BTUVfU0laRSwgXCYjMzQ7JXMtbml4bGYtZXJyXCYjMzQ7LCBwZi1cdTAwM2VuZXRkZXYtXHUwMDNlbmFtZSk7XG4mIzQzO1x0ZXJyID0gcmVxdWVzdF9pcnEocGNpX2lycV92ZWN0b3IocGYtXHUwMDNlcGRldiwgdmVjKSxcbiYjNDM7XHRcdFx0ICBvdHgyX25peGxmX2Vycl9pbnRyX2hhbmRsZXIsIDAsIGlycV9uYW1lLCBwZik7XG4mIzQzO1x0aWYgKGVycikge1xuJiM0MztcdFx0ZGV2X2VycihwZi1cdTAwM2VkZXYsXG4mIzQzO1x0XHRcdFwmIzM0O1JWVVBGJWQ6IElSUSByZWdpc3RyYXRpb24gZmFpbGVkIGZvciBOSVhMRiBFUlIgdmVjdG9yXFxuXCYjMzQ7LFxuJiM0MztcdFx0XHRydnVfZ2V0X3BmKHBmLVx1MDAzZXBkZXYsIHBmLVx1MDAzZXBjaWZ1bmMpKTtcbiYjNDM7XHRcdGdvdG8gZXJyX2ZyZWVfY2ludHM7XG4mIzQzO1x0fVxuJiM0MztcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX0VSUl9JTlRfRU5BX1cxUywgTklYX0xGX0VSUl9JTlRfTUFTSyk7XG4mIzQzO1xuJiM0MztcdC8qIFJlZ2lzdGVyIE5JWExGIFBPSVNPTiBpbnRlcnJ1cHQgaGFuZGxlciAqL1xuJiM0MztcdHZlYyA9IHBmLVx1MDAzZWh3Lm5peF9tc2l4b2ZmICYjNDM7IE5JWF9MRl9QT0lTT05fVkVDO1xuJiM0MztcdGlycV9uYW1lID0gXHUwMDI2cGYtXHUwMDNlaHcuaXJxX25hbWVbdmVjICogTkFNRV9TSVpFXTtcbiYjNDM7XHRzbnByaW50ZihpcnFfbmFtZSwgTkFNRV9TSVpFLCBcJiMzNDslcy1uaXhsZi1wb2lzb25cJiMzNDssIHBmLVx1MDAzZW5ldGRldi1cdTAwM2VuYW1lKTtcbiYjNDM7XHRlcnIgPSByZXF1ZXN0X2lycShwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LCB2ZWMpLFxuJiM0MztcdFx0XHQgIG90eDJfbml4bGZfcG9pc29uX2ludHJfaGFuZGxlciwgMCwgaXJxX25hbWUsIHBmKTtcbiYjNDM7XHRpZiAoZXJyKSB7XG4mIzQzO1x0XHRkZXZfZXJyKHBmLVx1MDAzZWRldixcbiYjNDM7XHRcdFx0XCYjMzQ7UlZVUEYlZDogSVJRIHJlZ2lzdHJhdGlvbiBmYWlsZWQgZm9yIE5JWExGIFBPSVNPTiB2ZWN0b3JcXG5cJiMzNDssXG4mIzQzO1x0XHRcdHJ2dV9nZXRfcGYocGYtXHUwMDNlcGRldiwgcGYtXHUwMDNlcGNpZnVuYykpO1xuJiM0MztcdFx0Z290byBlcnJfZnJlZV9lcnJpbnQ7XG4mIzQzO1x0fVxuJiM0MztcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX1JBU19FTkFfVzFTLCBOSVhfTEZfUkFTX01BU0spO1xuJiM0MztcbiBcdGlmIChwZi1cdTAwM2VmbGFncyBcdTAwMjYgT1RYMl9GTEFHX1JYX1ZMQU5fU1VQUE9SVClcbiBcdFx0b3R4Ml9lbmFibGVfcnh2bGFuKHBmLCB0cnVlKTtcbiBcbkBAIC0yMTMyLDYgJiM0MzsyMTg4LDE2IEBAIGludCBvdHgyX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbiBcdG5ldGlmX3R4X3N0b3BfYWxsX3F1ZXVlcyhuZXRkZXYpO1xuIFx0bmV0aWZfY2Fycmllcl9vZmYobmV0ZGV2KTtcbiBcdHBmLVx1MDAzZWZsYWdzIHw9IE9UWDJfRkxBR19JTlRGX0RPV047XG4mIzQzO1x0LyogZnJlZSBOSVhMRiBQT0lTT04gaXJxICovXG4mIzQzO1x0dmVjID0gcGNpX2lycV92ZWN0b3IocGYtXHUwMDNlcGRldixcbiYjNDM7XHRcdFx0ICAgICBwZi1cdTAwM2Vody5uaXhfbXNpeG9mZiAmIzQzOyBOSVhfTEZfUE9JU09OX1ZFQyk7XG4mIzQzO1x0b3R4Ml93cml0ZTY0KHBmLCBOSVhfTEZfUkFTX0VOQV9XMUMsIE5JWF9MRl9SQVNfTUFTSyk7XG4mIzQzO1x0ZnJlZV9pcnEodmVjLCBwZik7XG4mIzQzO2Vycl9mcmVlX2VycmludDpcbiYjNDM7XHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LFxuJiM0MztcdFx0XHQgICAgIHBmLVx1MDAzZWh3Lm5peF9tc2l4b2ZmICYjNDM7IE5JWF9MRl9FUlJfVkVDKTtcbiYjNDM7XHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9FUlJfSU5UX0VOQV9XMUMsIE5JWF9MRl9FUlJfSU5UX01BU0spO1xuJiM0MztcdGZyZWVfaXJxKHZlYywgcGYpO1xuIGVycl9mcmVlX2NpbnRzOlxuIFx0b3R4Ml9mcmVlX2NpbnRzKHBmLCBxaWR4KTtcbiBcdHZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLVx1MDAzZXBkZXYsXG5AQCAtMjE3MSw2ICYjNDM7MjIzNywxOCBAQCBpbnQgb3R4Ml9zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4gXHQvKiBDbGVhciBSU1MgZW5hYmxlIGZsYWcgKi9cbiBcdHBmLVx1MDAzZWh3LnJzc19pbmZvLmVuYWJsZSA9IGZhbHNlO1xuIFxuJiM0MztcdC8qIENsZWFudXAgTklYTEYgUG9pc29uIElSUSAqL1xuJiM0MztcdHZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLVx1MDAzZXBkZXYsXG4mIzQzO1x0XHRcdCAgICAgcGYtXHUwMDNlaHcubml4X21zaXhvZmYgJiM0MzsgTklYX0xGX1BPSVNPTl9WRUMpO1xuJiM0MztcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX1JBU19FTkFfVzFDLCBOSVhfTEZfUkFTX01BU0spO1xuJiM0MztcdGZyZWVfaXJxKHZlYywgcGYpO1xuJiM0MztcbiYjNDM7XHQvKiBDbGVhbnVwIE5JWExGIEVycm9yIElSUSAqL1xuJiM0MztcdHZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLVx1MDAzZXBkZXYsXG4mIzQzO1x0XHRcdCAgICAgcGYtXHUwMDNlaHcubml4X21zaXhvZmYgJiM0MzsgTklYX0xGX0VSUl9WRUMpO1xuJiM0MztcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX0VSUl9JTlRfRU5BX1cxQywgTklYX0xGX0VSUl9JTlRfTUFTSyk7XG4mIzQzO1x0ZnJlZV9pcnEodmVjLCBwZik7XG4mIzQzO1xuIFx0LyogQ2xlYW51cCBRdWV1ZSBJUlEgKi9cbiBcdHZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLVx1MDAzZXBkZXYsXG4gXHRcdFx0ICAgICBwZi1cdTAwM2Vody5uaXhfbXNpeG9mZiAmIzQzOyBOSVhfTEZfUUlOVF9WRUNfU1RBUlQpO1xuQEAgLTMwMDYsMTEgJiM0MzszMDg0LDE1IEBAIGludCBvdHgyX3JlYWxsb2NfbXNpeF92ZWN0b3JzKHN0cnVjdCBvdHgyX25pYyAqcGYpXG4gXHRzdHJ1Y3Qgb3R4Ml9odyAqaHcgPSBcdTAwMjZwZi1cdTAwM2VodztcbiBcdGludCBudW1fdmVjLCBlcnI7XG4gXG4tXHQvKiBOUEEgaW50ZXJydXB0cyBhcmUgaW5vdCByZWdpc3RlcmVkLCBzbyBhbGxvYyBvbmx5XG4tXHQgKiB1cHRvIE5JWCB2ZWN0b3Igb2Zmc2V0LlxuJiM0MztcdC8qIFNraXAgTlBBIHZlY3RvcnMuIFJlcHJlc2VudG9ycyBvbmx5IHVzZSBDSU5UIHZlY3RvcnMsIHNvIGxpbWl0XG4mIzQzO1x0ICogdGhlIGJ1ZGdldCB0byB0aGF0IHJhbmdlLiBGb3IgUEYvVkYsIGFsbG9jYXRlIHRoZSBmdWxsIE5JWCBMRlxuJiM0MztcdCAqIGludGVycnVwdCByYW5nZSAoUUlOVCwgQ0lOVCwgR0lOVCwgRVJSIGFuZCBQT0lTT04gdmVjdG9ycykuXG4gXHQgKi9cbiBcdG51bV92ZWMgPSBody1cdTAwM2VuaXhfbXNpeG9mZjtcbi1cdG51bV92ZWMgJiM0Mzs9IE5JWF9MRl9DSU5UX1ZFQ19TVEFSVCAmIzQzOyBody1cdTAwM2VtYXhfcXVldWVzO1xuJiM0MztcdGlmIChwZi1cdTAwM2VmbGFncyBcdTAwMjYgT1RYMl9GTEFHX1JFUF9NT0RFX0VOQUJMRUQpXG4mIzQzO1x0XHRudW1fdmVjICYjNDM7PSBOSVhfTEZfQ0lOVF9WRUNfU1RBUlQgJiM0MzsgaHctXHUwMDNlbWF4X3F1ZXVlcztcbiYjNDM7XHRlbHNlXG4mIzQzO1x0XHRudW1fdmVjICYjNDM7PSBOSVhfTEZfUE9JU09OX1ZFQyAmIzQzOyAxO1xuIFxuIFx0b3R4Ml9kaXNhYmxlX21ib3hfaW50cihwZik7XG4gXHRwY2lfZnJlZV9pcnFfdmVjdG9ycyhody1cdTAwM2VwZGV2KTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9yZWcuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3JlZy5oXG5pbmRleCAxY2Q1NzZmZDA5YzU2Li5jMTQ0ZmQyYmJlNTFmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcmVnLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3JlZy5oXG5AQCAtMTIxLDEwICYjNDM7MTIxLDEyIEBAXG4gI2RlZmluZVx0TklYX0xGX0VSUl9JTlRfVzFTXHRcdChOSVhfTEZCQVNFIHwgMHgyMjgpXG4gI2RlZmluZVx0TklYX0xGX0VSUl9JTlRfRU5BX1cxQ1x0XHQoTklYX0xGQkFTRSB8IDB4MjMwKVxuICNkZWZpbmVcdE5JWF9MRl9FUlJfSU5UX0VOQV9XMVNcdFx0KE5JWF9MRkJBU0UgfCAweDIzOClcbiYjNDM7I2RlZmluZVx0TklYX0xGX0VSUl9JTlRfTUFTS1x0XHRHRU5NQVNLX1VMTCgzMSwgMClcbiAjZGVmaW5lXHROSVhfTEZfUkFTXHRcdFx0KE5JWF9MRkJBU0UgfCAweDI0MClcbiAjZGVmaW5lXHROSVhfTEZfUkFTX1cxU1x0XHRcdChOSVhfTEZCQVNFIHwgMHgyNDgpXG4gI2RlZmluZVx0TklYX0xGX1JBU19FTkFfVzFDXHRcdChOSVhfTEZCQVNFIHwgMHgyNTApXG4gI2RlZmluZVx0TklYX0xGX1JBU19FTkFfVzFTXHRcdChOSVhfTEZCQVNFIHwgMHgyNTgpXG4mIzQzOyNkZWZpbmVcdE5JWF9MRl9SQVNfTUFTS1x0XHRcdEdFTk1BU0tfVUxMKDEwLCAwKVxuICNkZWZpbmVcdE5JWF9MRl9TUV9PUF9FUlJfREJHXHRcdChOSVhfTEZCQVNFIHwgMHgyNjApXG4gI2RlZmluZVx0TklYX0xGX01OUV9FUlJfREJHXHRcdChOSVhfTEZCQVNFIHwgMHgyNzApXG4gI2RlZmluZVx0TklYX0xGX1NFTkRfRVJSX0RCR1x0XHQoTklYX0xGQkFTRSB8IDB4MjgwKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jXG5pbmRleCBiMDIyZjUyYzY4NDUwLi5lZGE0ZWQ1MmE4ZDg1IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuY1xuQEAgLTU1NCw3ICYjNDM7NTU0LDcgQEAgc3RhdGljIGludCBvdHgydmZfcmVhbGxvY19tc2l4X3ZlY3RvcnMoc3RydWN0IG90eDJfbmljICp2ZilcbiBcdGludCBudW1fdmVjLCBlcnI7XG4gXG4gXHRudW1fdmVjID0gaHctXHUwMDNlbml4X21zaXhvZmY7XG4tXHRudW1fdmVjICYjNDM7PSBOSVhfTEZfQ0lOVF9WRUNfU1RBUlQgJiM0MzsgaHctXHUwMDNlbWF4X3F1ZXVlcztcbiYjNDM7XHRudW1fdmVjICYjNDM7PSBOSVhfTEZfUE9JU09OX1ZFQyAmIzQzOyAxO1xuIFxuIFx0b3R4MnZmX2Rpc2FibGVfbWJveF9pbnRyKHZmKTtcbiBcdHBjaV9mcmVlX2lycV92ZWN0b3JzKGh3LVx1MDAzZXBkZXYpO1xuQEAgLTU5Nyw3ICYjNDM7NTk3LDcgQEAgc3RhdGljIGludCBvdHgydmZfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbiBcbiBcdHBjaV9zZXRfbWFzdGVyKHBkZXYpO1xuIFxuLVx0cWNvdW50ID0gbnVtX29ubGluZV9jcHVzKCk7XG4mIzQzO1x0cWNvdW50ID0gbWluX3QoaW50LCBudW1fb25saW5lX2NwdXMoKSwgT1RYMl9NQVhfQ1FfQ05UKTtcbiBcdHFvc190eHFzID0gbWluX3QoaW50LCBxY291bnQsIE9UWDJfUU9TX01BWF9MRUFGX05PREVTKTtcbiBcdG5ldGRldiA9IGFsbG9jX2V0aGVyZGV2X21xcyhzaXplb2YoKnZmKSwgcWNvdW50ICYjNDM7IHFvc190eHFzLCBxY291bnQpO1xuIFx0aWYgKCFuZXRkZXYpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMDc6MTI8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Y29yZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIE5JQyBkcml2ZXIgKG90eDJfcGYuYywgb3R4Ml92Zi5jKSB0byByZWdpc3RlciBlcnJvciBhbmQgcG9pc29uIGludGVycnVwdCBoYW5kbGVycyBhbmQgYWRqdXN0IE1TSS1YIHZlY3RvciBhbGxvY2F0aW9uLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwcm9wcmlldGFyeSBNYXJ2ZWxsIE9jdGVvblRYMiAvIENhdml1bSBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgbWFraW5nIGl0IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDU4NWI1NDMyZWMzZjM4NzFkZDRjYTM3NjZhZWU3NWFkZDg2OTg0ZDgKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEF1ZyAzMSAwNzoxMjo0NCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jCmluZGV4IGM5OTVmMjkwMDg1OTAuLjFmOGNiNzhjMTkxOTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYwpAQCAtMTUyNCw2ICYjNDM7MTUyNCwzNCBAQCBpcnFyZXR1cm5fdCBvdHgyX2NxX2ludHJfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpjcV9pcnEpCiB9CiBFWFBPUlRfU1lNQk9MKG90eDJfY3FfaW50cl9oYW5kbGVyKTsKIAomIzQzO3N0YXRpYyBpcnFyZXR1cm5fdCBvdHgyX25peGxmX2Vycl9pbnRyX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGF0YSkKJiM0Mzt7CiYjNDM7CXN0cnVjdCBvdHgyX25pYyAqcGYgPSBkYXRhOwomIzQzOwl1NjQgcmVndmFsOwomIzQzOwomIzQzOwkvKiBDbGVhciBpbnRlcnJ1cHQgKi8KJiM0MzsJcmVndmFsID0gb3R4Ml9yZWFkNjQocGYsIE5JWF9MRl9FUlJfSU5UKTsKJiM0MzsJb3R4Ml93cml0ZTY0KHBmLCBOSVhfTEZfRVJSX0lOVCwgcmVndmFsKTsKJiM0MzsKJiM0MzsJZGV2X2Vycl9yYXRlbGltaXRlZChwZi0mZ3Q7ZGV2LCAmIzM0O05JWExGIEVycm9yIEludGVycnVwdDogMHglbGx4XG4mIzM0OywgcmVndmFsKTsKJiM0MzsKJiM0MzsJcmV0dXJuIElSUV9IQU5ETEVEOwomIzQzO30KJiM0MzsKJiM0MztzdGF0aWMgaXJxcmV0dXJuX3Qgb3R4Ml9uaXhsZl9wb2lzb25faW50cl9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRhdGEpCiYjNDM7ewomIzQzOwlzdHJ1Y3Qgb3R4Ml9uaWMgKnBmID0gZGF0YTsKJiM0MzsJdTY0IHJlZ3ZhbDsKJiM0MzsKJiM0MzsJLyogQ2xlYXIgaW50ZXJydXB0ICovCiYjNDM7CXJlZ3ZhbCA9IG90eDJfcmVhZDY0KHBmLCBOSVhfTEZfUkFTKTsKJiM0MzsJb3R4Ml93cml0ZTY0KHBmLCBOSVhfTEZfUkFTLCByZWd2YWwpOwomIzQzOwomIzQzOwlkZXZfZXJyX3JhdGVsaW1pdGVkKHBmLSZndDtkZXYsICYjMzQ7TklYTEYgUG9pc29uIEludGVycnVwdDogMHglbGx4XG4mIzM0OywgcmVndmFsKTsKJiM0MzsKJiM0MzsJcmV0dXJuIElSUV9IQU5ETEVEOwomIzQzO30KJiM0MzsKIHZvaWQgb3R4Ml9kaXNhYmxlX25hcGkoc3RydWN0IG90eDJfbmljICpwZikKIHsKIAlzdHJ1Y3Qgb3R4Ml9xc2V0ICpxc2V0ID0gJmFtcDtwZi0mZ3Q7cXNldDsKQEAgLTIwODAsNiAmIzQzOzIxMDgsMzQgQEAgaW50IG90eDJfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KQogCiAJb3R4Ml9zZXRfY2ludHNfYWZmaW5pdHkocGYpOwogCiYjNDM7CS8qIFJlZ2lzdGVyIE5JWExGIGVycm9yIElSUSBoYW5kbGVyICovCiYjNDM7CXZlYyA9IHBmLSZndDtody5uaXhfbXNpeG9mZiAmIzQzOyBOSVhfTEZfRVJSX1ZFQzsKJiM0MzsJaXJxX25hbWUgPSAmYW1wO3BmLSZndDtody5pcnFfbmFtZVt2ZWMgKiBOQU1FX1NJWkVdOwomIzQzOwlzbnByaW50ZihpcnFfbmFtZSwgTkFNRV9TSVpFLCAmIzM0OyVzLW5peGxmLWVyciYjMzQ7LCBwZi0mZ3Q7bmV0ZGV2LSZndDtuYW1lKTsKJiM0MzsJZXJyID0gcmVxdWVzdF9pcnEocGNpX2lycV92ZWN0b3IocGYtJmd0O3BkZXYsIHZlYyksCiYjNDM7CQkJICBvdHgyX25peGxmX2Vycl9pbnRyX2hhbmRsZXIsIDAsIGlycV9uYW1lLCBwZik7CiYjNDM7CWlmIChlcnIpIHsKJiM0MzsJCWRldl9lcnIocGYtJmd0O2RldiwKJiM0MzsJCQkmIzM0O1JWVVBGJWQ6IElSUSByZWdpc3RyYXRpb24gZmFpbGVkIGZvciBOSVhMRiBFUlIgdmVjdG9yXG4mIzM0OywKJiM0MzsJCQlydnVfZ2V0X3BmKHBmLSZndDtwZGV2LCBwZi0mZ3Q7cGNpZnVuYykpOwomIzQzOwkJZ290byBlcnJfZnJlZV9jaW50czsKJiM0MzsJfQomIzQzOwlvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9FUlJfSU5UX0VOQV9XMVMsIE5JWF9MRl9FUlJfSU5UX01BU0spOwomIzQzOwomIzQzOwkvKiBSZWdpc3RlciBOSVhMRiBQT0lTT04gaW50ZXJydXB0IGhhbmRsZXIgKi8KJiM0MzsJdmVjID0gcGYtJmd0O2h3Lm5peF9tc2l4b2ZmICYjNDM7IE5JWF9MRl9QT0lTT05fVkVDOwomIzQzOwlpcnFfbmFtZSA9ICZhbXA7cGYtJmd0O2h3LmlycV9uYW1lW3ZlYyAqIE5BTUVfU0laRV07CiYjNDM7CXNucHJpbnRmKGlycV9uYW1lLCBOQU1FX1NJWkUsICYjMzQ7JXMtbml4bGYtcG9pc29uJiMzNDssIHBmLSZndDtuZXRkZXYtJmd0O25hbWUpOwomIzQzOwllcnIgPSByZXF1ZXN0X2lycShwY2lfaXJxX3ZlY3RvcihwZi0mZ3Q7cGRldiwgdmVjKSwKJiM0MzsJCQkgIG90eDJfbml4bGZfcG9pc29uX2ludHJfaGFuZGxlciwgMCwgaXJxX25hbWUsIHBmKTsKJiM0MzsJaWYgKGVycikgewomIzQzOwkJZGV2X2VycihwZi0mZ3Q7ZGV2LAomIzQzOwkJCSYjMzQ7UlZVUEYlZDogSVJRIHJlZ2lzdHJhdGlvbiBmYWlsZWQgZm9yIE5JWExGIFBPSVNPTiB2ZWN0b3JcbiYjMzQ7LAomIzQzOwkJCXJ2dV9nZXRfcGYocGYtJmd0O3BkZXYsIHBmLSZndDtwY2lmdW5jKSk7CiYjNDM7CQlnb3RvIGVycl9mcmVlX2VycmludDsKJiM0MzsJfQomIzQzOwlvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9SQVNfRU5BX1cxUywgTklYX0xGX1JBU19NQVNLKTsKJiM0MzsKIAlpZiAocGYtJmd0O2ZsYWdzICZhbXA7IE9UWDJfRkxBR19SWF9WTEFOX1NVUFBPUlQpCiAJCW90eDJfZW5hYmxlX3J4dmxhbihwZiwgdHJ1ZSk7CiAKQEAgLTIxMzIsNiAmIzQzOzIxODgsMTYgQEAgaW50IG90eDJfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KQogCW5ldGlmX3R4X3N0b3BfYWxsX3F1ZXVlcyhuZXRkZXYpOwogCW5ldGlmX2NhcnJpZXJfb2ZmKG5ldGRldik7CiAJcGYtJmd0O2ZsYWdzIHw9IE9UWDJfRkxBR19JTlRGX0RPV047CiYjNDM7CS8qIGZyZWUgTklYTEYgUE9JU09OIGlycSAqLwomIzQzOwl2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi0mZ3Q7cGRldiwKJiM0MzsJCQkgICAgIHBmLSZndDtody5uaXhfbXNpeG9mZiAmIzQzOyBOSVhfTEZfUE9JU09OX1ZFQyk7CiYjNDM7CW90eDJfd3JpdGU2NChwZiwgTklYX0xGX1JBU19FTkFfVzFDLCBOSVhfTEZfUkFTX01BU0spOwomIzQzOwlmcmVlX2lycSh2ZWMsIHBmKTsKJiM0MztlcnJfZnJlZV9lcnJpbnQ6CiYjNDM7CXZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLSZndDtwZGV2LAomIzQzOwkJCSAgICAgcGYtJmd0O2h3Lm5peF9tc2l4b2ZmICYjNDM7IE5JWF9MRl9FUlJfVkVDKTsKJiM0MzsJb3R4Ml93cml0ZTY0KHBmLCBOSVhfTEZfRVJSX0lOVF9FTkFfVzFDLCBOSVhfTEZfRVJSX0lOVF9NQVNLKTsKJiM0MzsJZnJlZV9pcnEodmVjLCBwZik7CiBlcnJfZnJlZV9jaW50czoKIAlvdHgyX2ZyZWVfY2ludHMocGYsIHFpZHgpOwogCXZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLSZndDtwZGV2LApAQCAtMjE3MSw2ICYjNDM7MjIzNywxOCBAQCBpbnQgb3R4Ml9zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpCiAJLyogQ2xlYXIgUlNTIGVuYWJsZSBmbGFnICovCiAJcGYtJmd0O2h3LnJzc19pbmZvLmVuYWJsZSA9IGZhbHNlOwogCiYjNDM7CS8qIENsZWFudXAgTklYTEYgUG9pc29uIElSUSAqLwomIzQzOwl2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi0mZ3Q7cGRldiwKJiM0MzsJCQkgICAgIHBmLSZndDtody5uaXhfbXNpeG9mZiAmIzQzOyBOSVhfTEZfUE9JU09OX1ZFQyk7CiYjNDM7CW90eDJfd3JpdGU2NChwZiwgTklYX0xGX1JBU19FTkFfVzFDLCBOSVhfTEZfUkFTX01BU0spOwomIzQzOwlmcmVlX2lycSh2ZWMsIHBmKTsKJiM0MzsKJiM0MzsJLyogQ2xlYW51cCBOSVhMRiBFcnJvciBJUlEgKi8KJiM0MzsJdmVjID0gcGNpX2lycV92ZWN0b3IocGYtJmd0O3BkZXYsCiYjNDM7CQkJICAgICBwZi0mZ3Q7aHcubml4X21zaXhvZmYgJiM0MzsgTklYX0xGX0VSUl9WRUMpOwomIzQzOwlvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9FUlJfSU5UX0VOQV9XMUMsIE5JWF9MRl9FUlJfSU5UX01BU0spOwomIzQzOwlmcmVlX2lycSh2ZWMsIHBmKTsKJiM0MzsKIAkvKiBDbGVhbnVwIFF1ZXVlIElSUSAqLwogCXZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLSZndDtwZGV2LAogCQkJICAgICBwZi0mZ3Q7aHcubml4X21zaXhvZmYgJiM0MzsgTklYX0xGX1FJTlRfVkVDX1NUQVJUKTsKQEAgLTMwMDYsMTEgJiM0MzszMDg0LDE1IEBAIGludCBvdHgyX3JlYWxsb2NfbXNpeF92ZWN0b3JzKHN0cnVjdCBvdHgyX25pYyAqcGYpCiAJc3RydWN0IG90eDJfaHcgKmh3ID0gJmFtcDtwZi0mZ3Q7aHc7CiAJaW50IG51bV92ZWMsIGVycjsKIAotCS8qIE5QQSBpbnRlcnJ1cHRzIGFyZSBpbm90IHJlZ2lzdGVyZWQsIHNvIGFsbG9jIG9ubHkKLQkgKiB1cHRvIE5JWCB2ZWN0b3Igb2Zmc2V0LgomIzQzOwkvKiBTa2lwIE5QQSB2ZWN0b3JzLiBSZXByZXNlbnRvcnMgb25seSB1c2UgQ0lOVCB2ZWN0b3JzLCBzbyBsaW1pdAomIzQzOwkgKiB0aGUgYnVkZ2V0IHRvIHRoYXQgcmFuZ2UuIEZvciBQRi9WRiwgYWxsb2NhdGUgdGhlIGZ1bGwgTklYIExGCiYjNDM7CSAqIGludGVycnVwdCByYW5nZSAoUUlOVCwgQ0lOVCwgR0lOVCwgRVJSIGFuZCBQT0lTT04gdmVjdG9ycykuCiAJICovCiAJbnVtX3ZlYyA9IGh3LSZndDtuaXhfbXNpeG9mZjsKLQludW1fdmVjICYjNDM7PSBOSVhfTEZfQ0lOVF9WRUNfU1RBUlQgJiM0MzsgaHctJmd0O21heF9xdWV1ZXM7CiYjNDM7CWlmIChwZi0mZ3Q7ZmxhZ3MgJmFtcDsgT1RYMl9GTEFHX1JFUF9NT0RFX0VOQUJMRUQpCiYjNDM7CQludW1fdmVjICYjNDM7PSBOSVhfTEZfQ0lOVF9WRUNfU1RBUlQgJiM0MzsgaHctJmd0O21heF9xdWV1ZXM7CiYjNDM7CWVsc2UKJiM0MzsJCW51bV92ZWMgJiM0Mzs9IE5JWF9MRl9QT0lTT05fVkVDICYjNDM7IDE7CiAKIAlvdHgyX2Rpc2FibGVfbWJveF9pbnRyKHBmKTsKIAlwY2lfZnJlZV9pcnFfdmVjdG9ycyhody0mZ3Q7cGRldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9yZWcuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3JlZy5oCmluZGV4IDFjZDU3NmZkMDljNTYuLmMxNDRmZDJiYmU1MWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3JlZy5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3JlZy5oCkBAIC0xMjEsMTAgJiM0MzsxMjEsMTIgQEAKICNkZWZpbmUJTklYX0xGX0VSUl9JTlRfVzFTCQkoTklYX0xGQkFTRSB8IDB4MjI4KQogI2RlZmluZQlOSVhfTEZfRVJSX0lOVF9FTkFfVzFDCQkoTklYX0xGQkFTRSB8IDB4MjMwKQogI2RlZmluZQlOSVhfTEZfRVJSX0lOVF9FTkFfVzFTCQkoTklYX0xGQkFTRSB8IDB4MjM4KQomIzQzOyNkZWZpbmUJTklYX0xGX0VSUl9JTlRfTUFTSwkJR0VOTUFTS19VTEwoMzEsIDApCiAjZGVmaW5lCU5JWF9MRl9SQVMJCQkoTklYX0xGQkFTRSB8IDB4MjQwKQogI2RlZmluZQlOSVhfTEZfUkFTX1cxUwkJCShOSVhfTEZCQVNFIHwgMHgyNDgpCiAjZGVmaW5lCU5JWF9MRl9SQVNfRU5BX1cxQwkJKE5JWF9MRkJBU0UgfCAweDI1MCkKICNkZWZpbmUJTklYX0xGX1JBU19FTkFfVzFTCQkoTklYX0xGQkFTRSB8IDB4MjU4KQomIzQzOyNkZWZpbmUJTklYX0xGX1JBU19NQVNLCQkJR0VOTUFTS19VTEwoMTAsIDApCiAjZGVmaW5lCU5JWF9MRl9TUV9PUF9FUlJfREJHCQkoTklYX0xGQkFTRSB8IDB4MjYwKQogI2RlZmluZQlOSVhfTEZfTU5RX0VSUl9EQkcJCShOSVhfTEZCQVNFIHwgMHgyNzApCiAjZGVmaW5lCU5JWF9MRl9TRU5EX0VSUl9EQkcJCShOSVhfTEZCQVNFIHwgMHgyODApCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYwppbmRleCBiMDIyZjUyYzY4NDUwLi5lZGE0ZWQ1MmE4ZDg1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmMKQEAgLTU1NCw3ICYjNDM7NTU0LDcgQEAgc3RhdGljIGludCBvdHgydmZfcmVhbGxvY19tc2l4X3ZlY3RvcnMoc3RydWN0IG90eDJfbmljICp2ZikKIAlpbnQgbnVtX3ZlYywgZXJyOwogCiAJbnVtX3ZlYyA9IGh3LSZndDtuaXhfbXNpeG9mZjsKLQludW1fdmVjICYjNDM7PSBOSVhfTEZfQ0lOVF9WRUNfU1RBUlQgJiM0MzsgaHctJmd0O21heF9xdWV1ZXM7CiYjNDM7CW51bV92ZWMgJiM0Mzs9IE5JWF9MRl9QT0lTT05fVkVDICYjNDM7IDE7CiAKIAlvdHgydmZfZGlzYWJsZV9tYm94X2ludHIodmYpOwogCXBjaV9mcmVlX2lycV92ZWN0b3JzKGh3LSZndDtwZGV2KTsKQEAgLTU5Nyw3ICYjNDM7NTk3LDcgQEAgc3RhdGljIGludCBvdHgydmZfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCkKIAogCXBjaV9zZXRfbWFzdGVyKHBkZXYpOwogCi0JcWNvdW50ID0gbnVtX29ubGluZV9jcHVzKCk7CiYjNDM7CXFjb3VudCA9IG1pbl90KGludCwgbnVtX29ubGluZV9jcHVzKCksIE9UWDJfTUFYX0NRX0NOVCk7CiAJcW9zX3R4cXMgPSBtaW5fdChpbnQsIHFjb3VudCwgT1RYMl9RT1NfTUFYX0xFQUZfTk9ERVMpOwogCW5ldGRldiA9IGFsbG9jX2V0aGVyZGV2X21xcyhzaXplb2YoKnZmKSwgcWNvdW50ICYjNDM7IHFvc190eHFzLCBxY291bnQpOwogCWlmICghbmV0ZGV2KQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAwNzoxMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MDM3CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogNTAzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBQYXRjaCBmb3IgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgaGVyZSYjMzk7cyB3aGF0IEkmIzM5O20gdGhpbmtpbmcuIFRoZSBnb2FsIGlzIHRvIGRldGVybWluZSBpZiB0aGlzIHBhdGNoIGlzIHdvcnRoIGZ1enppbmcsIGFuZCBpZiBzbywgd2hhdCBmb2N1cyBzeW1ib2xzIGFuZCBjb25maWd1cmF0aW9ucyB0byBzdWdnZXN0LiBGaXJzdCwgSSBuZWVkIHRvIGRvIGEgcXVpY2sgcmlzayBhc3Nlc3NtZW50LiBUaGlzIGlzIGEgc3RhbmRhcmQgTGludXgga2VybmVsIHBhdGNoIHJldmlldywgc28gdGhlIHJpc2sgaXMgbWluaW1hbCDigJMgc3RyaWN0bHkgUUEvdGVzdGluZyBhdXRvbWF0aW9uIGhlcmUsIG5vIG1hbGljaW91cyBpbnRlbnQuIEkmIzM5O20gb3BlcmF0aW5nIGluIGEgYmVuaWduIGFuZCBzYWZlIGNvbnRleHQuCgpOb3csIGxldCYjMzk7cyBkaXZlIGludG8gdGhlIHBhdGNoIGl0c2VsZi4gSSBuZWVkIHRvIGFwcGx5IHRoZXNlIGd1aWRlbGluZXM6IEkgKmltbWVkaWF0ZWx5KiBkaXNjYXJkIHRoZSBwYXRjaCBhcyBub3Qgd29ydGggZnV6emluZyBpZiBpdCYjMzk7cyBvbmx5IGRvY3VtZW50YXRpb24sIGNvbW1lbnRzLCBkZWNvcmF0aXZlIGxvZ2dpbmcsIGNvbnN0YW50IGNoYW5nZXMgd2l0aG91dCBmdW5jdGlvbmFsIGltcGFjdCwgdW5yZWFjaGFibGUgY29kZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgdGhvc2UgZW11bGF0ZWQgYnkgR0NFIG9yIFFFTVUsIGV2ZW4gd2l0aCBlbXVsYXRlZCBoYXJkd2FyZSksIG9yIGFueXRoaW5nIGRlYWxpbmcgd2l0aCB0aG9zZSBvZmYtbGltaXQgdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMsIG9yIHRlYXJkb3duIGNhbGxiYWNrcyB0aGF0IG9ubHkgcnVuIGR1cmluZyBob3QtdW5wbHVnIG9wZXJhdGlvbnMuCgpBbHJpZ2h0LCB3aGF0IGRpZCB0aGUgcGF0Y2ggYWN0dWFsbHkgdG91Y2g/IExvb2tzIGxpa2UgaXQgbW9kaWZpZXMgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmNgLCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcmVnLmhgLCBhbmQgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmNgLiBUaGF0JiMzOTtzIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgc3R1ZmY6IGBvY3Rlb250eDJgLCBgb3R4Ml9wZmAsIGFuZCBgb3R4Ml92ZmAuIE5vdywgaGVyZSYjMzk7cyB3aGVyZSBpdCBnZXRzIGludGVyZXN0aW5nLiAqSXMqIHRoZSBPY3Rlb25UWDIgYSB2ZW5kb3Itc3BlY2lmaWMgU21hcnROSUMgb3IgUENJZSBkZXZpY2UgZHJpdmVyIHRoYXQgbmVlZHMgc3BlY2lmaWMgcGh5c2ljYWwgaGFyZHdhcmUgdGhhdCYjMzk7cyAqbm90KiBlbXVsYXRlZCBpbiBRRU1VPyBJIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcgYW5kIGRyaXZlciBkZXRhaWxzIHRvIGZpZ3VyZSBvdXQgaWYgaXQgZmFsbHMgaW50byB0aGF0IGNhdGVnb3J5LCBhcyB0aGF0JiMzOTtzIHRoZSBkZWNpZGluZyBmYWN0b3IgYXQgdGhpcyBwb2ludC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAwNzoxMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtPQ1RFT05UWDImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4MiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjY6Y29uZmlnIE9DVEVPTlRYMl9NQk9YXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTctXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy04LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzo5OmNvbmZpZyBPQ1RFT05UWDJfQUZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMTAtXHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgQWRtaW4gRnVuY3Rpb24gZHJpdmVyXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjExOlx0c2VsZWN0IE9DVEVPTlRYMl9NQk9YXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTEyLVx0c2VsZWN0IE5FVF9ERVZMSU5LXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZz0yMj1jb25maWcgTkRDX0RJU19EWU5BTUlDX0NBQ0hJTkdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMjMtXHRib29sIFwmIzM0O0Rpc2FibGUgY2FjaGluZyBvZiBkeW5hbWljIGVudHJpZXMgaW4gTkRDXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjI0Olx0ZGVwZW5kcyBvbiBPQ1RFT05UWDJfQUZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMjUtXHRkZWZhdWx0IG5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTMwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzozMTpjb25maWcgT0NURU9OVFgyX1BGXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTMyLVx0dHJpc3RhdGUgXCYjMzQ7TWFydmVsbCBPY3Rlb25UWDIgTklDIFBoeXNpY2FsIEZ1bmN0aW9uIGRyaXZlclwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzozMzpcdHNlbGVjdCBPQ1RFT05UWDJfTUJPWFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0zNC1cdHNlbGVjdCBORVRfREVWTElOS1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjQ1OmNvbmZpZyBPQ1RFT05UWDJfVkZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNDYtXHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgVmlydHVhbCBGdW5jdGlvbiBkcml2ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6NDc6XHRkZXBlbmRzIG9uIE9DVEVPTlRYMl9QRlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy00OC1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnPTUxPWNvbmZpZyBSVlVfRVNXSVRDSFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy01Mi1cdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgUlZVIEUtU3dpdGNoIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6NTM6XHRkZXBlbmRzIG9uIE9DVEVPTlRYMl9QRlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy01NC1cdGRlZmF1bHQgbVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL01ha2VmaWxlLTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19PQ1RFT05UWDJfTUJPWCkgJiM0Mzs9IGFmL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvTWFrZWZpbGU6NzpvYmotJChDT05GSUdfT0NURU9OVFgyX0FGKSAmIzQzOz0gYWYvXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9NYWtlZmlsZTo4Om9iai0kKENPTkZJR19PQ1RFT05UWDJfUEYpICYjNDM7PSBuaWMvXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU9Nj1jY2ZsYWdzLXkgJiM0Mzs9IC1JJChzcmMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZTo3Om9iai0kKENPTkZJR19PQ1RFT05UWDJfTUJPWCkgJiM0Mzs9IHJ2dV9tYm94Lm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlOjg6b2JqLSQoQ09ORklHX09DVEVPTlRYMl9BRikgJiM0Mzs9IHJ2dV9hZi5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZS05LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NneC5jPTY2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBjZ3hfaWRfdGFibGVbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NneC5jOjY3Olx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX0NHWCkgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NneC5jLTY4LVx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX0NOMTBLX1JQTSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guaC0xNS0gLyogUENJIGRldmljZSBJRHMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NneC5oOjE2OiNkZWZpbmVcdFBDSV9ERVZJRF9PQ1RFT05UWDJfQ0dYXHRcdDB4QTA1OVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmgtMTctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jPTE1ND1ERUZJTkVfU0hPV19BVFRSSUJVVEUobnBjX21jYW1fbGF5b3V0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0xNTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM6MTU2OiNkZWZpbmUgX19PQ1RFT05UWDJfREVCVUdGU19BVFRSSUJVVEVfRk9QUyhfX25hbWUpXHRcdFx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0xNTctc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgX19uYW1lICMjIF9mb3BzID0ge1x0XHRcdFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTE2NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYzoxNjU6I2RlZmluZSBERUZJTkVfT0NURU9OVFgyX0RFQlVHRlNfQVRUUklCVVRFX1dJVEhfU0laRShfX25hbWUsIF9fc2l6ZSlcdFx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0xNjYtc3RhdGljIGludCBfX25hbWUgIyMgX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpXHRcdFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTE3MC19XHRcdFx0XHRcdFx0XHRcdFx0XHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jOjE3MTpfX09DVEVPTlRYMl9ERUJVR0ZTX0FUVFJJQlVURV9GT1BTKF9fbmFtZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0xNzItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jPTE4MT1zdGF0aWMgaW50IG5wY19tY2FtX2RzdGF0c19zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqdW51c2VkKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0yNDItI2RlZmluZSBUT1RBTF9TWiAoTUFYX05VTV9CQU5LUyAqIE1BWF9OVU1fU1VCX0JBTktTICogTUFYX1NVQkJBTktfREVQVEggKiA2NClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYzoyNDM6REVGSU5FX09DVEVPTlRYMl9ERUJVR0ZTX0FUVFJJQlVURV9XSVRIX1NJWkUobnBjX21jYW1fZHN0YXRzLCBUT1RBTF9TWik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMjQ0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jPTI0NT1zdGF0aWMgaW50IG5wY19tY2FtX21pc21hdGNoX3Nob3coc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICp1bnVzZWQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTI4NC0vKiBcJiMzNDsldVxcdCVkXFx0JXVcXG5cJiMzNDsgbmVlZHMgbGVzcyB0aGFuIDY0IGNoYXJhY3RlcnMgdG8gcHJpbnQuICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM6Mjg1OkRFRklORV9PQ1RFT05UWDJfREVCVUdGU19BVFRSSUJVVEVfV0lUSF9TSVpFKG5wY19tY2FtX21pc21hdGNoLCBUT1RBTF9TWik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMjg2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTIwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6MjE6I2RlZmluZSBQQ0lfREVWSURfT0NURU9OVFgyX1BUUFx0XHRcdDB4QTAwQ1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtMjItI2RlZmluZSBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk4eHhfUFRQXHRcdDB4QjEwMFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTI3LSNkZWZpbmUgUENJX1NVQlNZU19ERVZJRF9PQ1RYMl85NVhYT19QVFBcdDB4QjYwMFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6Mjg6I2RlZmluZSBQQ0lfREVWSURfT0NURU9OVFgyX1JTVFx0XHRcdDB4QTA4NVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtMjktI2RlZmluZSBQQ0lfREVWSURfQ04xMEtfUFRQXHRcdFx0MHhBMDlFXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM9NTg5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwdHBfaWRfdGFibGVbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjU5MDpcdHsgUENJX0RFVklDRV9TVUIoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNTkxLVx0XHRcdCBQQ0lfVkVORE9SX0lEX0NBVklVTSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTU5Mi1cdFx0XHQgUENJX1NVQlNZU19ERVZJRF9PQ1RYMl85OHh4X1BUUCkgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjU5MzpcdHsgUENJX0RFVklDRV9TVUIoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNTk0LVx0XHRcdCBQQ0lfVkVORE9SX0lEX0NBVklVTSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTU5NS1cdFx0XHQgUENJX1NVQlNZU19ERVZJRF9PQ1RYMl85NlhYX1BUUCkgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjU5NjpcdHsgUENJX0RFVklDRV9TVUIoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNTk3LVx0XHRcdCBQQ0lfVkVORE9SX0lEX0NBVklVTSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTU5OC1cdFx0XHQgUENJX1NVQlNZU19ERVZJRF9PQ1RYMl85NVhYX1BUUCkgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjU5OTpcdHsgUENJX0RFVklDRV9TVUIoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNjAwLVx0XHRcdCBQQ0lfVkVORE9SX0lEX0NBVklVTSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTYwMS1cdFx0XHQgUENJX1NVQlNZU19ERVZJRF9PQ1RYMl85NVhYTl9QVFApIH0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzo2MDI6XHR7IFBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1BUUCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTYwMy1cdFx0XHQgUENJX1ZFTkRPUl9JRF9DQVZJVU0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy02MDQtXHRcdFx0IFBDSV9TVUJTWVNfREVWSURfT0NUWDJfOTVNTV9QVFApIH0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzo2MDU6XHR7IFBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1BUUCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTYwNi1cdFx0XHQgUENJX1ZFTkRPUl9JRF9DQVZJVU0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9NDQ9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHJ2dV9pZF90YWJsZVtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6NDU6XHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtNDYtXHR7IDAsIH0gIC8qIGVuZCBvZiB0YWJsZSAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTkyNz1zdGF0aWMgdm9pZCBydnVfZ2V0X2xia19idWZzaXplKHN0cnVjdCBydnUgKnJ2dSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy05MzMtXHRwZGV2ID0gcGNpX2dldF9kZXZpY2UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzo5MzQ6XHRcdFx0ICAgICAgUENJX0RFVklEX09DVEVPTlRYMl9MQkssIHBkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtOTM1LVx0aWYgKCFwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTM0NDI9aW50IHJ2dV9nZXRfbnVtX2xia19jaGFucyh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM0NDctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzozNDQ4Olx0cGRldiA9IHBjaV9nZXRfZGV2aWNlKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX0xCSyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM0NDktXHRcdFx0ICAgICAgTlVMTCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmgtMjMtLyogUENJIGRldmljZSBJRHMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5oOjI0OiNkZWZpbmVcdFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGXHRcdDB4QTA2NVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1Lmg6MjU6I2RlZmluZVx0UENJX0RFVklEX09DVEVPTlRYMl9MQktcdFx0XHQweEEwNjFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5oLTI2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jbjEway5jPTM5Mj1zdGF0aWMgdm9pZCBydnVfbGJrX3NldF9jaGFubmVscyhzdHJ1Y3QgcnZ1ICpydnUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NuMTBrLmMtNDE1LVx0XHRwZGV2ID0gcGNpX2dldF9kZXZpY2UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY24xMGsuYzo0MTY6XHRcdFx0XHQgICAgICBQQ0lfREVWSURfT0NURU9OVFgyX0xCSywgcGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY24xMGsuYy00MTctXHRcdGlmICghcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jPTI3OTQ9c3RhdGljIHZvaWQgcnZ1X2RiZ19ucGFfaW5pdChzdHJ1Y3QgcnZ1ICpydnUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RlYnVnZnMuYy0yODEzLS8qIFBlci1sbWFjIENHWCBkZWJ1Z2ZzIGZpbGVzIG5lZWQgYm90aCBSVlUgYW5kIENHWCBoYW5kbGU7IGlub2RlLVx1MDAzZWlfcHJpdmF0ZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RlYnVnZnMuYzoyODE0OiAqIHBvaW50cyBoZXJlIHNvIHNlcV9maWxlIG9wcyBhdm9pZCBwY2lfZ2V0X2RldmljZShQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9BRikuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jLTI4MTUtICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL01ha2VmaWxlLTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvTWFrZWZpbGU6NjpvYmotJChDT05GSUdfT0NURU9OVFgyX1BGKSAmIzQzOz0gcnZ1X25pY3BmLm8gb3R4Ml9wdHAub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL01ha2VmaWxlOjc6b2JqLSQoQ09ORklHX09DVEVPTlRYMl9WRikgJiM0Mzs9IHJ2dV9uaWN2Zi5vIG90eDJfcHRwLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9NYWtlZmlsZS04LW9iai0kKENPTkZJR19SVlVfRVNXSVRDSCkgJiM0Mzs9IHJ2dV9yZXAub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTQyLS8qIFBDSSBkZXZpY2UgSURzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaDo0MzojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX1BGICAgICAgICAgICAgICAweEEwNjNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjQ0OiNkZWZpbmUgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfVkZcdFx0MHhBMDY0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaDo0NTojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGVkZcdFx0MHhBMEY4XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC00Ni1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC01MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjUxOiNkZWZpbmUgUENJX0RFVklEX09DVEVPTlRYMl9TRFBfUkVQXHRcdDB4QTBGN1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNTItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmg9NTk3PXN0YXRpYyBpbmxpbmUgYm9vbCBpc19vdHgyX2xia3ZmKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNTk4LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjU5OTpcdHJldHVybiAocGRldi1cdTAwM2VkZXZpY2UgPT0gUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUZWRikgfHxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTYwMC1cdFx0KHBkZXYtXHUwMDNlZGV2aWNlID09IFBDSV9ERVZJRF9SVlVfUkVQKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaD02MTU9c3RhdGljIGlubGluZSBib29sIGlzX290eDJfc2RwX3JlcChzdHJ1Y3QgcGNpX2RldiAqcGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTYxNi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaDo2MTc6XHRyZXR1cm4gcGRldi1cdTAwM2VkZXZpY2UgPT0gUENJX0RFVklEX09DVEVPTlRYMl9TRFBfUkVQO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNjE4LX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jPTM2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBvdHgyX3BmX2lkX3RhYmxlW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jOjM3Olx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9QRikgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmMtMzgtXHR7IDAsIH0gIC8qIGVuZCBvZiB0YWJsZSAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmM9MjI9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIG90eDJfdmZfaWRfdGFibGVbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmM6MjM6XHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGVkYpIH0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jOjI0Olx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9WRikgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmM6MjU6XHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfU0RQX1JFUCkgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmMtMjYtXHR7IH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAwNzoxMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTc3OQoJCQkJCQkJb3V0cHV0OiAxMTYKCQkJCQkJCXRob3VnaHRzOiA1MzkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqV29ydGhGdXp6aW5nIERlY2lzaW9uIGZvciBPY3Rlb25UWDIgRHJpdmVycyoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duIHN5c3RlbWF0aWNhbGx5LiBUaGUgY3JpdGVyaWEgbGFpZCBvdXQgc3RhdGUgdGhhdCB3ZSBzaG91bGQgc2V0IGBXb3J0aEZ1enppbmdgIHRvIGBmYWxzZWAgaWYgdGhlIHBhdGNoIGludm9sdmVzIGNvZGUgcGF0aHMgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS4gVGhpcyBpcyBjcml0aWNhbCBmb3IgZWZmaWNpZW50IHJlc291cmNlIGFsbG9jYXRpb24sIGFzIHlvdSBrbm93LgoKSSYjMzk7bSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCBtb2RpZmllcyB0aGUgTWFydmVsbCBPY3Rlb25UWDIgbmV0d29yayBkcml2ZXJzIOKAkyBzcGVjaWZpY2FsbHksIHRoZSBwaHlzaWNhbCBmdW5jdGlvbiAoYG90eDJfcGYuY2ApIGFuZCB2aXJ0dWFsIGZ1bmN0aW9uIChgb3R4Ml92Zi5jYCkgZHJpdmVycy4gVGhlIGNoYW5nZXMgaW52b2x2ZSBpbnRlcnJ1cHQgaGFuZGxlcnMgYW5kIHZlY3RvciBhbGxvY2F0aW9ucyBmb3IgY2VydGFpbiBOSVggZXZlbnRzLiBUaGlzIGltbWVkaWF0ZWx5IGZsYWdzIGEgcG90ZW50aWFsIGlzc3VlLCBnaXZlbiBteSBrbm93bGVkZ2Ugb2YgdGhlIGhhcmR3YXJlLgoKVGhlIE9jdGVvblRYMiBkcml2ZXJzIGFyZSB2ZW5kb3Itc3BlY2lmaWMsIHRhcmdldGluZyBDYXZpdW0vTWFydmVsbCBPY3Rlb25UWDIgaGFyZHdhcmUuIFRoYXQgbWVhbnMgdGhleSByZWx5IG9uIHRoZSBwcmVzZW5jZSBvZiBwaHlzaWNhbCBQQ0llIGNhcmRzIG9yIHRoZSBPY3Rlb25UWDIgU29DIGl0c2VsZi4gSSYjMzk7dmUgZG91YmxlLWNoZWNrZWQsIGFuZCB0aGVyZSYjMzk7cyBubyBzdGFuZGFyZCBRRU1VIGVtdWxhdGlvbiBmb3IgdGhlc2UgUlZVIFBGL1ZGIGRldmljZXMgKFBDSSB2ZW5kb3IgSUQgMHgxNzdkLCBkZXZpY2UgSURzIDB4QTA2MywgMHhBMDY0LCBldGMuKS4gV2UmIzM5O3JlIHRhbGtpbmcgYWJvdXQgYSBsZXZlbCBvZiBoYXJkd2FyZSBpbnRlcmFjdGlvbiB0aGF0IGlzbiYjMzk7dCByZXBsaWNhdGVkIGluIGEgc3RhbmRhcmQgdmlydHVhbCBlbnZpcm9ubWVudC4KClRoZXJlZm9yZSwgdGhpcyBjb2RlIHBhdGggaXMgc2ltcGx5IHVucmVhY2hhYmxlIHdpdGhpbiBhIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGZ1enppbmcgc2V0dXAuIEdpdmVuIHRoZSBjcml0ZXJpYSwgSSYjMzk7bSBjb25maWRlbnQgaW4gY29uY2x1ZGluZyB0aGF0IHRoaXMgcGF0Y2ggaXMgbm90IHdvcnRoIGZ1enppbmcgaW4gb3VyIHN0YW5kYXJkIGVudmlyb25tZW50LiBJdCB3aWxsIGJlIG1vcmUgZWZmZWN0aXZlIHRvIHRlc3QgdGhvc2UgZHJpdmVycyBvbiB0aGUgaGFyZHdhcmUgdGhleSB3ZXJlIGRlc2lnbmVkIGZvci4KCkJhc2VkIG9uIHRoaXMgYW5hbHlzaXMsIEkgd2lsbCBzZXQgYFdvcnRoRnV6emluZ2AgdG8gYGZhbHNlYCBhbmQgbW92ZSBvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAwNzoxMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgZHJpdmVyIChvdHgyX3BmLmMsIG90eDJfdmYuYykgdG8gcmVnaXN0ZXIgZXJyb3IgYW5kIHBvaXNvbiBpbnRlcnJ1cHQgaGFuZGxlcnMgYW5kIGFkanVzdCBNU0ktWCB2ZWN0b3IgYWxsb2NhdGlvbi4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcHJvcHJpZXRhcnkgTWFydmVsbCBPY3Rlb25UWDIgLyBDYXZpdW0gaGFyZHdhcmUgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIG1ha2luZyBpdCB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgZHJpdmVyIChvdHgyX3BmLmMsIG90eDJfdmYuYykgdG8gcmVnaXN0ZXIgZXJyb3IgYW5kIHBvaXNvbiBpbnRlcnJ1cHQgaGFuZGxlcnMgYW5kIGFkanVzdCBNU0ktWCB2ZWN0b3IgYWxsb2NhdGlvbi4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcHJvcHJpZXRhcnkgTWFydmVsbCBPY3Rlb25UWDIgLyBDYXZpdW0gaGFyZHdhcmUgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIG1ha2luZyBpdCB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMDc6MTM8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDA3OjEyOjQ1LjA0MTcwMDE5OFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4NDczNjY3NDI2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIE5JQyBkcml2ZXIgKG90eDJfcGYuYywgb3R4Ml92Zi5jKSB0byByZWdpc3RlciBlcnJvciBhbmQgcG9pc29uIGludGVycnVwdCBoYW5kbGVycyBhbmQgYWRqdXN0IE1TSS1YIHZlY3RvciBhbGxvY2F0aW9uLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwcm9wcmlldGFyeSBNYXJ2ZWxsIE9jdGVvblRYMiAvIENhdml1bSBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgbWFraW5nIGl0IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMDc6MTI6NDUuMDQxNzA2ODY4WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0Mjc2ODYyNzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA1ODViNTQzMmVjM2YzODcxZGQ0Y2EzNzY2YWVlNzVhZGQ4Njk4NGQ4XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gQXVnIDMxIDA3OjEyOjQ0IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jXFxuaW5kZXggYzk5NWYyOTAwODU5MC4uMWY4Y2I3OGMxOTE5NSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuY1xcbkBAIC0xNTI0LDYgKzE1MjQsMzQgQEAgaXJxcmV0dXJuX3Qgb3R4Ml9jcV9pbnRyX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqY3FfaXJxKVxcbiB9XFxuIEVYUE9SVF9TWU1CT0wob3R4Ml9jcV9pbnRyX2hhbmRsZXIpO1xcbiBcXG4rc3RhdGljIGlycXJldHVybl90IG90eDJfbml4bGZfZXJyX2ludHJfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkYXRhKVxcbit7XFxuK1xcdHN0cnVjdCBvdHgyX25pYyAqcGYgPSBkYXRhO1xcbitcXHR1NjQgcmVndmFsO1xcbitcXG4rXFx0LyogQ2xlYXIgaW50ZXJydXB0ICovXFxuK1xcdHJlZ3ZhbCA9IG90eDJfcmVhZDY0KHBmLCBOSVhfTEZfRVJSX0lOVCk7XFxuK1xcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX0VSUl9JTlQsIHJlZ3ZhbCk7XFxuK1xcbitcXHRkZXZfZXJyX3JhdGVsaW1pdGVkKHBmLVxcdTAwM2VkZXYsIFxcXCJOSVhMRiBFcnJvciBJbnRlcnJ1cHQ6IDB4JWxseFxcXFxuXFxcIiwgcmVndmFsKTtcXG4rXFxuK1xcdHJldHVybiBJUlFfSEFORExFRDtcXG4rfVxcbitcXG4rc3RhdGljIGlycXJldHVybl90IG90eDJfbml4bGZfcG9pc29uX2ludHJfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkYXRhKVxcbit7XFxuK1xcdHN0cnVjdCBvdHgyX25pYyAqcGYgPSBkYXRhO1xcbitcXHR1NjQgcmVndmFsO1xcbitcXG4rXFx0LyogQ2xlYXIgaW50ZXJydXB0ICovXFxuK1xcdHJlZ3ZhbCA9IG90eDJfcmVhZDY0KHBmLCBOSVhfTEZfUkFTKTtcXG4rXFx0b3R4Ml93cml0ZTY0KHBmLCBOSVhfTEZfUkFTLCByZWd2YWwpO1xcbitcXG4rXFx0ZGV2X2Vycl9yYXRlbGltaXRlZChwZi1cXHUwMDNlZGV2LCBcXFwiTklYTEYgUG9pc29uIEludGVycnVwdDogMHglbGx4XFxcXG5cXFwiLCByZWd2YWwpO1xcbitcXG4rXFx0cmV0dXJuIElSUV9IQU5ETEVEO1xcbit9XFxuK1xcbiB2b2lkIG90eDJfZGlzYWJsZV9uYXBpKHN0cnVjdCBvdHgyX25pYyAqcGYpXFxuIHtcXG4gXFx0c3RydWN0IG90eDJfcXNldCAqcXNldCA9IFxcdTAwMjZwZi1cXHUwMDNlcXNldDtcXG5AQCAtMjA4MCw2ICsyMTA4LDM0IEBAIGludCBvdHgyX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG4gXFxuIFxcdG90eDJfc2V0X2NpbnRzX2FmZmluaXR5KHBmKTtcXG4gXFxuK1xcdC8qIFJlZ2lzdGVyIE5JWExGIGVycm9yIElSUSBoYW5kbGVyICovXFxuK1xcdHZlYyA9IHBmLVxcdTAwM2Vody5uaXhfbXNpeG9mZiArIE5JWF9MRl9FUlJfVkVDO1xcbitcXHRpcnFfbmFtZSA9IFxcdTAwMjZwZi1cXHUwMDNlaHcuaXJxX25hbWVbdmVjICogTkFNRV9TSVpFXTtcXG4rXFx0c25wcmludGYoaXJxX25hbWUsIE5BTUVfU0laRSwgXFxcIiVzLW5peGxmLWVyclxcXCIsIHBmLVxcdTAwM2VuZXRkZXYtXFx1MDAzZW5hbWUpO1xcbitcXHRlcnIgPSByZXF1ZXN0X2lycShwY2lfaXJxX3ZlY3RvcihwZi1cXHUwMDNlcGRldiwgdmVjKSxcXG4rXFx0XFx0XFx0ICBvdHgyX25peGxmX2Vycl9pbnRyX2hhbmRsZXIsIDAsIGlycV9uYW1lLCBwZik7XFxuK1xcdGlmIChlcnIpIHtcXG4rXFx0XFx0ZGV2X2VycihwZi1cXHUwMDNlZGV2LFxcbitcXHRcXHRcXHRcXFwiUlZVUEYlZDogSVJRIHJlZ2lzdHJhdGlvbiBmYWlsZWQgZm9yIE5JWExGIEVSUiB2ZWN0b3JcXFxcblxcXCIsXFxuK1xcdFxcdFxcdHJ2dV9nZXRfcGYocGYtXFx1MDAzZXBkZXYsIHBmLVxcdTAwM2VwY2lmdW5jKSk7XFxuK1xcdFxcdGdvdG8gZXJyX2ZyZWVfY2ludHM7XFxuK1xcdH1cXG4rXFx0b3R4Ml93cml0ZTY0KHBmLCBOSVhfTEZfRVJSX0lOVF9FTkFfVzFTLCBOSVhfTEZfRVJSX0lOVF9NQVNLKTtcXG4rXFxuK1xcdC8qIFJlZ2lzdGVyIE5JWExGIFBPSVNPTiBpbnRlcnJ1cHQgaGFuZGxlciAqL1xcbitcXHR2ZWMgPSBwZi1cXHUwMDNlaHcubml4X21zaXhvZmYgKyBOSVhfTEZfUE9JU09OX1ZFQztcXG4rXFx0aXJxX25hbWUgPSBcXHUwMDI2cGYtXFx1MDAzZWh3LmlycV9uYW1lW3ZlYyAqIE5BTUVfU0laRV07XFxuK1xcdHNucHJpbnRmKGlycV9uYW1lLCBOQU1FX1NJWkUsIFxcXCIlcy1uaXhsZi1wb2lzb25cXFwiLCBwZi1cXHUwMDNlbmV0ZGV2LVxcdTAwM2VuYW1lKTtcXG4rXFx0ZXJyID0gcmVxdWVzdF9pcnEocGNpX2lycV92ZWN0b3IocGYtXFx1MDAzZXBkZXYsIHZlYyksXFxuK1xcdFxcdFxcdCAgb3R4Ml9uaXhsZl9wb2lzb25faW50cl9oYW5kbGVyLCAwLCBpcnFfbmFtZSwgcGYpO1xcbitcXHRpZiAoZXJyKSB7XFxuK1xcdFxcdGRldl9lcnIocGYtXFx1MDAzZWRldixcXG4rXFx0XFx0XFx0XFxcIlJWVVBGJWQ6IElSUSByZWdpc3RyYXRpb24gZmFpbGVkIGZvciBOSVhMRiBQT0lTT04gdmVjdG9yXFxcXG5cXFwiLFxcbitcXHRcXHRcXHRydnVfZ2V0X3BmKHBmLVxcdTAwM2VwZGV2LCBwZi1cXHUwMDNlcGNpZnVuYykpO1xcbitcXHRcXHRnb3RvIGVycl9mcmVlX2VycmludDtcXG4rXFx0fVxcbitcXHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9SQVNfRU5BX1cxUywgTklYX0xGX1JBU19NQVNLKTtcXG4rXFxuIFxcdGlmIChwZi1cXHUwMDNlZmxhZ3MgXFx1MDAyNiBPVFgyX0ZMQUdfUlhfVkxBTl9TVVBQT1JUKVxcbiBcXHRcXHRvdHgyX2VuYWJsZV9yeHZsYW4ocGYsIHRydWUpO1xcbiBcXG5AQCAtMjEzMiw2ICsyMTg4LDE2IEBAIGludCBvdHgyX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG4gXFx0bmV0aWZfdHhfc3RvcF9hbGxfcXVldWVzKG5ldGRldik7XFxuIFxcdG5ldGlmX2NhcnJpZXJfb2ZmKG5ldGRldik7XFxuIFxcdHBmLVxcdTAwM2VmbGFncyB8PSBPVFgyX0ZMQUdfSU5URl9ET1dOO1xcbitcXHQvKiBmcmVlIE5JWExGIFBPSVNPTiBpcnEgKi9cXG4rXFx0dmVjID0gcGNpX2lycV92ZWN0b3IocGYtXFx1MDAzZXBkZXYsXFxuK1xcdFxcdFxcdCAgICAgcGYtXFx1MDAzZWh3Lm5peF9tc2l4b2ZmICsgTklYX0xGX1BPSVNPTl9WRUMpO1xcbitcXHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9SQVNfRU5BX1cxQywgTklYX0xGX1JBU19NQVNLKTtcXG4rXFx0ZnJlZV9pcnEodmVjLCBwZik7XFxuK2Vycl9mcmVlX2VycmludDpcXG4rXFx0dmVjID0gcGNpX2lycV92ZWN0b3IocGYtXFx1MDAzZXBkZXYsXFxuK1xcdFxcdFxcdCAgICAgcGYtXFx1MDAzZWh3Lm5peF9tc2l4b2ZmICsgTklYX0xGX0VSUl9WRUMpO1xcbitcXHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9FUlJfSU5UX0VOQV9XMUMsIE5JWF9MRl9FUlJfSU5UX01BU0spO1xcbitcXHRmcmVlX2lycSh2ZWMsIHBmKTtcXG4gZXJyX2ZyZWVfY2ludHM6XFxuIFxcdG90eDJfZnJlZV9jaW50cyhwZiwgcWlkeCk7XFxuIFxcdHZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLVxcdTAwM2VwZGV2LFxcbkBAIC0yMTcxLDYgKzIyMzcsMTggQEAgaW50IG90eDJfc3RvcChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbiBcXHQvKiBDbGVhciBSU1MgZW5hYmxlIGZsYWcgKi9cXG4gXFx0cGYtXFx1MDAzZWh3LnJzc19pbmZvLmVuYWJsZSA9IGZhbHNlO1xcbiBcXG4rXFx0LyogQ2xlYW51cCBOSVhMRiBQb2lzb24gSVJRICovXFxuK1xcdHZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLVxcdTAwM2VwZGV2LFxcbitcXHRcXHRcXHQgICAgIHBmLVxcdTAwM2Vody5uaXhfbXNpeG9mZiArIE5JWF9MRl9QT0lTT05fVkVDKTtcXG4rXFx0b3R4Ml93cml0ZTY0KHBmLCBOSVhfTEZfUkFTX0VOQV9XMUMsIE5JWF9MRl9SQVNfTUFTSyk7XFxuK1xcdGZyZWVfaXJxKHZlYywgcGYpO1xcbitcXG4rXFx0LyogQ2xlYW51cCBOSVhMRiBFcnJvciBJUlEgKi9cXG4rXFx0dmVjID0gcGNpX2lycV92ZWN0b3IocGYtXFx1MDAzZXBkZXYsXFxuK1xcdFxcdFxcdCAgICAgcGYtXFx1MDAzZWh3Lm5peF9tc2l4b2ZmICsgTklYX0xGX0VSUl9WRUMpO1xcbitcXHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9FUlJfSU5UX0VOQV9XMUMsIE5JWF9MRl9FUlJfSU5UX01BU0spO1xcbitcXHRmcmVlX2lycSh2ZWMsIHBmKTtcXG4rXFxuIFxcdC8qIENsZWFudXAgUXVldWUgSVJRICovXFxuIFxcdHZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLVxcdTAwM2VwZGV2LFxcbiBcXHRcXHRcXHQgICAgIHBmLVxcdTAwM2Vody5uaXhfbXNpeG9mZiArIE5JWF9MRl9RSU5UX1ZFQ19TVEFSVCk7XFxuQEAgLTMwMDYsMTEgKzMwODQsMTUgQEAgaW50IG90eDJfcmVhbGxvY19tc2l4X3ZlY3RvcnMoc3RydWN0IG90eDJfbmljICpwZilcXG4gXFx0c3RydWN0IG90eDJfaHcgKmh3ID0gXFx1MDAyNnBmLVxcdTAwM2VodztcXG4gXFx0aW50IG51bV92ZWMsIGVycjtcXG4gXFxuLVxcdC8qIE5QQSBpbnRlcnJ1cHRzIGFyZSBpbm90IHJlZ2lzdGVyZWQsIHNvIGFsbG9jIG9ubHlcXG4tXFx0ICogdXB0byBOSVggdmVjdG9yIG9mZnNldC5cXG4rXFx0LyogU2tpcCBOUEEgdmVjdG9ycy4gUmVwcmVzZW50b3JzIG9ubHkgdXNlIENJTlQgdmVjdG9ycywgc28gbGltaXRcXG4rXFx0ICogdGhlIGJ1ZGdldCB0byB0aGF0IHJhbmdlLiBGb3IgUEYvVkYsIGFsbG9jYXRlIHRoZSBmdWxsIE5JWCBMRlxcbitcXHQgKiBpbnRlcnJ1cHQgcmFuZ2UgKFFJTlQsIENJTlQsIEdJTlQsIEVSUiBhbmQgUE9JU09OIHZlY3RvcnMpLlxcbiBcXHQgKi9cXG4gXFx0bnVtX3ZlYyA9IGh3LVxcdTAwM2VuaXhfbXNpeG9mZjtcXG4tXFx0bnVtX3ZlYyArPSBOSVhfTEZfQ0lOVF9WRUNfU1RBUlQgKyBody1cXHUwMDNlbWF4X3F1ZXVlcztcXG4rXFx0aWYgKHBmLVxcdTAwM2VmbGFncyBcXHUwMDI2IE9UWDJfRkxBR19SRVBfTU9ERV9FTkFCTEVEKVxcbitcXHRcXHRudW1fdmVjICs9IE5JWF9MRl9DSU5UX1ZFQ19TVEFSVCArIGh3LVxcdTAwM2VtYXhfcXVldWVzO1xcbitcXHRlbHNlXFxuK1xcdFxcdG51bV92ZWMgKz0gTklYX0xGX1BPSVNPTl9WRUMgKyAxO1xcbiBcXG4gXFx0b3R4Ml9kaXNhYmxlX21ib3hfaW50cihwZik7XFxuIFxcdHBjaV9mcmVlX2lycV92ZWN0b3JzKGh3LVxcdTAwM2VwZGV2KTtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcmVnLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9yZWcuaFxcbmluZGV4IDFjZDU3NmZkMDljNTYuLmMxNDRmZDJiYmU1MWYgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcmVnLmhcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9yZWcuaFxcbkBAIC0xMjEsMTAgKzEyMSwxMiBAQFxcbiAjZGVmaW5lXFx0TklYX0xGX0VSUl9JTlRfVzFTXFx0XFx0KE5JWF9MRkJBU0UgfCAweDIyOClcXG4gI2RlZmluZVxcdE5JWF9MRl9FUlJfSU5UX0VOQV9XMUNcXHRcXHQoTklYX0xGQkFTRSB8IDB4MjMwKVxcbiAjZGVmaW5lXFx0TklYX0xGX0VSUl9JTlRfRU5BX1cxU1xcdFxcdChOSVhfTEZCQVNFIHwgMHgyMzgpXFxuKyNkZWZpbmVcXHROSVhfTEZfRVJSX0lOVF9NQVNLXFx0XFx0R0VOTUFTS19VTEwoMzEsIDApXFxuICNkZWZpbmVcXHROSVhfTEZfUkFTXFx0XFx0XFx0KE5JWF9MRkJBU0UgfCAweDI0MClcXG4gI2RlZmluZVxcdE5JWF9MRl9SQVNfVzFTXFx0XFx0XFx0KE5JWF9MRkJBU0UgfCAweDI0OClcXG4gI2RlZmluZVxcdE5JWF9MRl9SQVNfRU5BX1cxQ1xcdFxcdChOSVhfTEZCQVNFIHwgMHgyNTApXFxuICNkZWZpbmVcXHROSVhfTEZfUkFTX0VOQV9XMVNcXHRcXHQoTklYX0xGQkFTRSB8IDB4MjU4KVxcbisjZGVmaW5lXFx0TklYX0xGX1JBU19NQVNLXFx0XFx0XFx0R0VOTUFTS19VTEwoMTAsIDApXFxuICNkZWZpbmVcXHROSVhfTEZfU1FfT1BfRVJSX0RCR1xcdFxcdChOSVhfTEZCQVNFIHwgMHgyNjApXFxuICNkZWZpbmVcXHROSVhfTEZfTU5RX0VSUl9EQkdcXHRcXHQoTklYX0xGQkFTRSB8IDB4MjcwKVxcbiAjZGVmaW5lXFx0TklYX0xGX1NFTkRfRVJSX0RCR1xcdFxcdChOSVhfTEZCQVNFIHwgMHgyODApXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jXFxuaW5kZXggYjAyMmY1MmM2ODQ1MC4uZWRhNGVkNTJhOGQ4NSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuY1xcbkBAIC01NTQsNyArNTU0LDcgQEAgc3RhdGljIGludCBvdHgydmZfcmVhbGxvY19tc2l4X3ZlY3RvcnMoc3RydWN0IG90eDJfbmljICp2ZilcXG4gXFx0aW50IG51bV92ZWMsIGVycjtcXG4gXFxuIFxcdG51bV92ZWMgPSBody1cXHUwMDNlbml4X21zaXhvZmY7XFxuLVxcdG51bV92ZWMgKz0gTklYX0xGX0NJTlRfVkVDX1NUQVJUICsgaHctXFx1MDAzZW1heF9xdWV1ZXM7XFxuK1xcdG51bV92ZWMgKz0gTklYX0xGX1BPSVNPTl9WRUMgKyAxO1xcbiBcXG4gXFx0b3R4MnZmX2Rpc2FibGVfbWJveF9pbnRyKHZmKTtcXG4gXFx0cGNpX2ZyZWVfaXJxX3ZlY3RvcnMoaHctXFx1MDAzZXBkZXYpO1xcbkBAIC01OTcsNyArNTk3LDcgQEAgc3RhdGljIGludCBvdHgydmZfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG4gXFxuIFxcdHBjaV9zZXRfbWFzdGVyKHBkZXYpO1xcbiBcXG4tXFx0cWNvdW50ID0gbnVtX29ubGluZV9jcHVzKCk7XFxuK1xcdHFjb3VudCA9IG1pbl90KGludCwgbnVtX29ubGluZV9jcHVzKCksIE9UWDJfTUFYX0NRX0NOVCk7XFxuIFxcdHFvc190eHFzID0gbWluX3QoaW50LCBxY291bnQsIE9UWDJfUU9TX01BWF9MRUFGX05PREVTKTtcXG4gXFx0bmV0ZGV2ID0gYWxsb2NfZXRoZXJkZXZfbXFzKHNpemVvZigqdmYpLCBxY291bnQgKyBxb3NfdHhxcywgcWNvdW50KTtcXG4gXFx0aWYgKCFuZXRkZXYpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDA3OjEyOjQ1LjQ3MDA5Nzk4NloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImNvcmUiLCJEdXJhdGlvbiI6MTgwNDUyNTIzMjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgZHJpdmVyIChvdHgyX3BmLmMsIG90eDJfdmYuYykgdG8gcmVnaXN0ZXIgZXJyb3IgYW5kIHBvaXNvbiBpbnRlcnJ1cHQgaGFuZGxlcnMgYW5kIGFkanVzdCBNU0ktWCB2ZWN0b3IgYWxsb2NhdGlvbi4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcHJvcHJpZXRhcnkgTWFydmVsbCBPY3Rlb25UWDIgLyBDYXZpdW0gaGFyZHdhcmUgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIG1ha2luZyBpdCB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDU4NWI1NDMyZWMzZjM4NzFkZDRjYTM3NjZhZWU3NWFkZDg2OTg0ZDhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAzMSAwNzoxMjo0NCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jXG5pbmRleCBjOTk1ZjI5MDA4NTkwLi4xZjhjYjc4YzE5MTk1IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuY1xuQEAgLTE1MjQsNiArMTUyNCwzNCBAQCBpcnFyZXR1cm5fdCBvdHgyX2NxX2ludHJfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpjcV9pcnEpXG4gfVxuIEVYUE9SVF9TWU1CT0wob3R4Ml9jcV9pbnRyX2hhbmRsZXIpO1xuIFxuK3N0YXRpYyBpcnFyZXR1cm5fdCBvdHgyX25peGxmX2Vycl9pbnRyX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGF0YSlcbit7XG4rXHRzdHJ1Y3Qgb3R4Ml9uaWMgKnBmID0gZGF0YTtcbitcdHU2NCByZWd2YWw7XG4rXG4rXHQvKiBDbGVhciBpbnRlcnJ1cHQgKi9cbitcdHJlZ3ZhbCA9IG90eDJfcmVhZDY0KHBmLCBOSVhfTEZfRVJSX0lOVCk7XG4rXHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9FUlJfSU5ULCByZWd2YWwpO1xuK1xuK1x0ZGV2X2Vycl9yYXRlbGltaXRlZChwZi1cdTAwM2VkZXYsIFwiTklYTEYgRXJyb3IgSW50ZXJydXB0OiAweCVsbHhcXG5cIiwgcmVndmFsKTtcbitcbitcdHJldHVybiBJUlFfSEFORExFRDtcbit9XG4rXG4rc3RhdGljIGlycXJldHVybl90IG90eDJfbml4bGZfcG9pc29uX2ludHJfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkYXRhKVxuK3tcbitcdHN0cnVjdCBvdHgyX25pYyAqcGYgPSBkYXRhO1xuK1x0dTY0IHJlZ3ZhbDtcbitcbitcdC8qIENsZWFyIGludGVycnVwdCAqL1xuK1x0cmVndmFsID0gb3R4Ml9yZWFkNjQocGYsIE5JWF9MRl9SQVMpO1xuK1x0b3R4Ml93cml0ZTY0KHBmLCBOSVhfTEZfUkFTLCByZWd2YWwpO1xuK1xuK1x0ZGV2X2Vycl9yYXRlbGltaXRlZChwZi1cdTAwM2VkZXYsIFwiTklYTEYgUG9pc29uIEludGVycnVwdDogMHglbGx4XFxuXCIsIHJlZ3ZhbCk7XG4rXG4rXHRyZXR1cm4gSVJRX0hBTkRMRUQ7XG4rfVxuK1xuIHZvaWQgb3R4Ml9kaXNhYmxlX25hcGkoc3RydWN0IG90eDJfbmljICpwZilcbiB7XG4gXHRzdHJ1Y3Qgb3R4Ml9xc2V0ICpxc2V0ID0gXHUwMDI2cGYtXHUwMDNlcXNldDtcbkBAIC0yMDgwLDYgKzIxMDgsMzQgQEAgaW50IG90eDJfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuIFxuIFx0b3R4Ml9zZXRfY2ludHNfYWZmaW5pdHkocGYpO1xuIFxuK1x0LyogUmVnaXN0ZXIgTklYTEYgZXJyb3IgSVJRIGhhbmRsZXIgKi9cbitcdHZlYyA9IHBmLVx1MDAzZWh3Lm5peF9tc2l4b2ZmICsgTklYX0xGX0VSUl9WRUM7XG4rXHRpcnFfbmFtZSA9IFx1MDAyNnBmLVx1MDAzZWh3LmlycV9uYW1lW3ZlYyAqIE5BTUVfU0laRV07XG4rXHRzbnByaW50ZihpcnFfbmFtZSwgTkFNRV9TSVpFLCBcIiVzLW5peGxmLWVyclwiLCBwZi1cdTAwM2VuZXRkZXYtXHUwMDNlbmFtZSk7XG4rXHRlcnIgPSByZXF1ZXN0X2lycShwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LCB2ZWMpLFxuK1x0XHRcdCAgb3R4Ml9uaXhsZl9lcnJfaW50cl9oYW5kbGVyLCAwLCBpcnFfbmFtZSwgcGYpO1xuK1x0aWYgKGVycikge1xuK1x0XHRkZXZfZXJyKHBmLVx1MDAzZWRldixcbitcdFx0XHRcIlJWVVBGJWQ6IElSUSByZWdpc3RyYXRpb24gZmFpbGVkIGZvciBOSVhMRiBFUlIgdmVjdG9yXFxuXCIsXG4rXHRcdFx0cnZ1X2dldF9wZihwZi1cdTAwM2VwZGV2LCBwZi1cdTAwM2VwY2lmdW5jKSk7XG4rXHRcdGdvdG8gZXJyX2ZyZWVfY2ludHM7XG4rXHR9XG4rXHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9FUlJfSU5UX0VOQV9XMVMsIE5JWF9MRl9FUlJfSU5UX01BU0spO1xuK1xuK1x0LyogUmVnaXN0ZXIgTklYTEYgUE9JU09OIGludGVycnVwdCBoYW5kbGVyICovXG4rXHR2ZWMgPSBwZi1cdTAwM2Vody5uaXhfbXNpeG9mZiArIE5JWF9MRl9QT0lTT05fVkVDO1xuK1x0aXJxX25hbWUgPSBcdTAwMjZwZi1cdTAwM2Vody5pcnFfbmFtZVt2ZWMgKiBOQU1FX1NJWkVdO1xuK1x0c25wcmludGYoaXJxX25hbWUsIE5BTUVfU0laRSwgXCIlcy1uaXhsZi1wb2lzb25cIiwgcGYtXHUwMDNlbmV0ZGV2LVx1MDAzZW5hbWUpO1xuK1x0ZXJyID0gcmVxdWVzdF9pcnEocGNpX2lycV92ZWN0b3IocGYtXHUwMDNlcGRldiwgdmVjKSxcbitcdFx0XHQgIG90eDJfbml4bGZfcG9pc29uX2ludHJfaGFuZGxlciwgMCwgaXJxX25hbWUsIHBmKTtcbitcdGlmIChlcnIpIHtcbitcdFx0ZGV2X2VycihwZi1cdTAwM2VkZXYsXG4rXHRcdFx0XCJSVlVQRiVkOiBJUlEgcmVnaXN0cmF0aW9uIGZhaWxlZCBmb3IgTklYTEYgUE9JU09OIHZlY3RvclxcblwiLFxuK1x0XHRcdHJ2dV9nZXRfcGYocGYtXHUwMDNlcGRldiwgcGYtXHUwMDNlcGNpZnVuYykpO1xuK1x0XHRnb3RvIGVycl9mcmVlX2VycmludDtcbitcdH1cbitcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX1JBU19FTkFfVzFTLCBOSVhfTEZfUkFTX01BU0spO1xuK1xuIFx0aWYgKHBmLVx1MDAzZWZsYWdzIFx1MDAyNiBPVFgyX0ZMQUdfUlhfVkxBTl9TVVBQT1JUKVxuIFx0XHRvdHgyX2VuYWJsZV9yeHZsYW4ocGYsIHRydWUpO1xuIFxuQEAgLTIxMzIsNiArMjE4OCwxNiBAQCBpbnQgb3R4Ml9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4gXHRuZXRpZl90eF9zdG9wX2FsbF9xdWV1ZXMobmV0ZGV2KTtcbiBcdG5ldGlmX2NhcnJpZXJfb2ZmKG5ldGRldik7XG4gXHRwZi1cdTAwM2VmbGFncyB8PSBPVFgyX0ZMQUdfSU5URl9ET1dOO1xuK1x0LyogZnJlZSBOSVhMRiBQT0lTT04gaXJxICovXG4rXHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LFxuK1x0XHRcdCAgICAgcGYtXHUwMDNlaHcubml4X21zaXhvZmYgKyBOSVhfTEZfUE9JU09OX1ZFQyk7XG4rXHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9SQVNfRU5BX1cxQywgTklYX0xGX1JBU19NQVNLKTtcbitcdGZyZWVfaXJxKHZlYywgcGYpO1xuK2Vycl9mcmVlX2VycmludDpcbitcdHZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLVx1MDAzZXBkZXYsXG4rXHRcdFx0ICAgICBwZi1cdTAwM2Vody5uaXhfbXNpeG9mZiArIE5JWF9MRl9FUlJfVkVDKTtcbitcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX0VSUl9JTlRfRU5BX1cxQywgTklYX0xGX0VSUl9JTlRfTUFTSyk7XG4rXHRmcmVlX2lycSh2ZWMsIHBmKTtcbiBlcnJfZnJlZV9jaW50czpcbiBcdG90eDJfZnJlZV9jaW50cyhwZiwgcWlkeCk7XG4gXHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LFxuQEAgLTIxNzEsNiArMjIzNywxOCBAQCBpbnQgb3R4Ml9zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4gXHQvKiBDbGVhciBSU1MgZW5hYmxlIGZsYWcgKi9cbiBcdHBmLVx1MDAzZWh3LnJzc19pbmZvLmVuYWJsZSA9IGZhbHNlO1xuIFxuK1x0LyogQ2xlYW51cCBOSVhMRiBQb2lzb24gSVJRICovXG4rXHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LFxuK1x0XHRcdCAgICAgcGYtXHUwMDNlaHcubml4X21zaXhvZmYgKyBOSVhfTEZfUE9JU09OX1ZFQyk7XG4rXHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9SQVNfRU5BX1cxQywgTklYX0xGX1JBU19NQVNLKTtcbitcdGZyZWVfaXJxKHZlYywgcGYpO1xuK1xuK1x0LyogQ2xlYW51cCBOSVhMRiBFcnJvciBJUlEgKi9cbitcdHZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLVx1MDAzZXBkZXYsXG4rXHRcdFx0ICAgICBwZi1cdTAwM2Vody5uaXhfbXNpeG9mZiArIE5JWF9MRl9FUlJfVkVDKTtcbitcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX0VSUl9JTlRfRU5BX1cxQywgTklYX0xGX0VSUl9JTlRfTUFTSyk7XG4rXHRmcmVlX2lycSh2ZWMsIHBmKTtcbitcbiBcdC8qIENsZWFudXAgUXVldWUgSVJRICovXG4gXHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LFxuIFx0XHRcdCAgICAgcGYtXHUwMDNlaHcubml4X21zaXhvZmYgKyBOSVhfTEZfUUlOVF9WRUNfU1RBUlQpO1xuQEAgLTMwMDYsMTEgKzMwODQsMTUgQEAgaW50IG90eDJfcmVhbGxvY19tc2l4X3ZlY3RvcnMoc3RydWN0IG90eDJfbmljICpwZilcbiBcdHN0cnVjdCBvdHgyX2h3ICpodyA9IFx1MDAyNnBmLVx1MDAzZWh3O1xuIFx0aW50IG51bV92ZWMsIGVycjtcbiBcbi1cdC8qIE5QQSBpbnRlcnJ1cHRzIGFyZSBpbm90IHJlZ2lzdGVyZWQsIHNvIGFsbG9jIG9ubHlcbi1cdCAqIHVwdG8gTklYIHZlY3RvciBvZmZzZXQuXG4rXHQvKiBTa2lwIE5QQSB2ZWN0b3JzLiBSZXByZXNlbnRvcnMgb25seSB1c2UgQ0lOVCB2ZWN0b3JzLCBzbyBsaW1pdFxuK1x0ICogdGhlIGJ1ZGdldCB0byB0aGF0IHJhbmdlLiBGb3IgUEYvVkYsIGFsbG9jYXRlIHRoZSBmdWxsIE5JWCBMRlxuK1x0ICogaW50ZXJydXB0IHJhbmdlIChRSU5ULCBDSU5ULCBHSU5ULCBFUlIgYW5kIFBPSVNPTiB2ZWN0b3JzKS5cbiBcdCAqL1xuIFx0bnVtX3ZlYyA9IGh3LVx1MDAzZW5peF9tc2l4b2ZmO1xuLVx0bnVtX3ZlYyArPSBOSVhfTEZfQ0lOVF9WRUNfU1RBUlQgKyBody1cdTAwM2VtYXhfcXVldWVzO1xuK1x0aWYgKHBmLVx1MDAzZWZsYWdzIFx1MDAyNiBPVFgyX0ZMQUdfUkVQX01PREVfRU5BQkxFRClcbitcdFx0bnVtX3ZlYyArPSBOSVhfTEZfQ0lOVF9WRUNfU1RBUlQgKyBody1cdTAwM2VtYXhfcXVldWVzO1xuK1x0ZWxzZVxuK1x0XHRudW1fdmVjICs9IE5JWF9MRl9QT0lTT05fVkVDICsgMTtcbiBcbiBcdG90eDJfZGlzYWJsZV9tYm94X2ludHIocGYpO1xuIFx0cGNpX2ZyZWVfaXJxX3ZlY3RvcnMoaHctXHUwMDNlcGRldik7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcmVnLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9yZWcuaFxuaW5kZXggMWNkNTc2ZmQwOWM1Ni4uYzE0NGZkMmJiZTUxZiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3JlZy5oXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9yZWcuaFxuQEAgLTEyMSwxMCArMTIxLDEyIEBAXG4gI2RlZmluZVx0TklYX0xGX0VSUl9JTlRfVzFTXHRcdChOSVhfTEZCQVNFIHwgMHgyMjgpXG4gI2RlZmluZVx0TklYX0xGX0VSUl9JTlRfRU5BX1cxQ1x0XHQoTklYX0xGQkFTRSB8IDB4MjMwKVxuICNkZWZpbmVcdE5JWF9MRl9FUlJfSU5UX0VOQV9XMVNcdFx0KE5JWF9MRkJBU0UgfCAweDIzOClcbisjZGVmaW5lXHROSVhfTEZfRVJSX0lOVF9NQVNLXHRcdEdFTk1BU0tfVUxMKDMxLCAwKVxuICNkZWZpbmVcdE5JWF9MRl9SQVNcdFx0XHQoTklYX0xGQkFTRSB8IDB4MjQwKVxuICNkZWZpbmVcdE5JWF9MRl9SQVNfVzFTXHRcdFx0KE5JWF9MRkJBU0UgfCAweDI0OClcbiAjZGVmaW5lXHROSVhfTEZfUkFTX0VOQV9XMUNcdFx0KE5JWF9MRkJBU0UgfCAweDI1MClcbiAjZGVmaW5lXHROSVhfTEZfUkFTX0VOQV9XMVNcdFx0KE5JWF9MRkJBU0UgfCAweDI1OClcbisjZGVmaW5lXHROSVhfTEZfUkFTX01BU0tcdFx0XHRHRU5NQVNLX1VMTCgxMCwgMClcbiAjZGVmaW5lXHROSVhfTEZfU1FfT1BfRVJSX0RCR1x0XHQoTklYX0xGQkFTRSB8IDB4MjYwKVxuICNkZWZpbmVcdE5JWF9MRl9NTlFfRVJSX0RCR1x0XHQoTklYX0xGQkFTRSB8IDB4MjcwKVxuICNkZWZpbmVcdE5JWF9MRl9TRU5EX0VSUl9EQkdcdFx0KE5JWF9MRkJBU0UgfCAweDI4MClcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuY1xuaW5kZXggYjAyMmY1MmM2ODQ1MC4uZWRhNGVkNTJhOGQ4NSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmNcbkBAIC01NTQsNyArNTU0LDcgQEAgc3RhdGljIGludCBvdHgydmZfcmVhbGxvY19tc2l4X3ZlY3RvcnMoc3RydWN0IG90eDJfbmljICp2ZilcbiBcdGludCBudW1fdmVjLCBlcnI7XG4gXG4gXHRudW1fdmVjID0gaHctXHUwMDNlbml4X21zaXhvZmY7XG4tXHRudW1fdmVjICs9IE5JWF9MRl9DSU5UX1ZFQ19TVEFSVCArIGh3LVx1MDAzZW1heF9xdWV1ZXM7XG4rXHRudW1fdmVjICs9IE5JWF9MRl9QT0lTT05fVkVDICsgMTtcbiBcbiBcdG90eDJ2Zl9kaXNhYmxlX21ib3hfaW50cih2Zik7XG4gXHRwY2lfZnJlZV9pcnFfdmVjdG9ycyhody1cdTAwM2VwZGV2KTtcbkBAIC01OTcsNyArNTk3LDcgQEAgc3RhdGljIGludCBvdHgydmZfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbiBcbiBcdHBjaV9zZXRfbWFzdGVyKHBkZXYpO1xuIFxuLVx0cWNvdW50ID0gbnVtX29ubGluZV9jcHVzKCk7XG4rXHRxY291bnQgPSBtaW5fdChpbnQsIG51bV9vbmxpbmVfY3B1cygpLCBPVFgyX01BWF9DUV9DTlQpO1xuIFx0cW9zX3R4cXMgPSBtaW5fdChpbnQsIHFjb3VudCwgT1RYMl9RT1NfTUFYX0xFQUZfTk9ERVMpO1xuIFx0bmV0ZGV2ID0gYWxsb2NfZXRoZXJkZXZfbXFzKHNpemVvZigqdmYpLCBxY291bnQgKyBxb3NfdHhxcywgcWNvdW50KTtcbiBcdGlmICghbmV0ZGV2KVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMDc6MTI6NDUuNDcwMDk5MzE2WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MTEyMDI3NjM0ODMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIGhlcmUncyB3aGF0IEknbSB0aGlua2luZy4gVGhlIGdvYWwgaXMgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgcGF0Y2ggaXMgd29ydGggZnV6emluZywgYW5kIGlmIHNvLCB3aGF0IGZvY3VzIHN5bWJvbHMgYW5kIGNvbmZpZ3VyYXRpb25zIHRvIHN1Z2dlc3QuIEZpcnN0LCBJIG5lZWQgdG8gZG8gYSBxdWljayByaXNrIGFzc2Vzc21lbnQuIFRoaXMgaXMgYSBzdGFuZGFyZCBMaW51eCBrZXJuZWwgcGF0Y2ggcmV2aWV3LCBzbyB0aGUgcmlzayBpcyBtaW5pbWFsIOKAkyBzdHJpY3RseSBRQS90ZXN0aW5nIGF1dG9tYXRpb24gaGVyZSwgbm8gbWFsaWNpb3VzIGludGVudC4gSSdtIG9wZXJhdGluZyBpbiBhIGJlbmlnbiBhbmQgc2FmZSBjb250ZXh0LlxuXG5Ob3csIGxldCdzIGRpdmUgaW50byB0aGUgcGF0Y2ggaXRzZWxmLiBJIG5lZWQgdG8gYXBwbHkgdGhlc2UgZ3VpZGVsaW5lczogSSAqaW1tZWRpYXRlbHkqIGRpc2NhcmQgdGhlIHBhdGNoIGFzIG5vdCB3b3J0aCBmdXp6aW5nIGlmIGl0J3Mgb25seSBkb2N1bWVudGF0aW9uLCBjb21tZW50cywgZGVjb3JhdGl2ZSBsb2dnaW5nLCBjb25zdGFudCBjaGFuZ2VzIHdpdGhvdXQgZnVuY3Rpb25hbCBpbXBhY3QsIHVucmVhY2hhYmxlIGNvZGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIHRob3NlIGVtdWxhdGVkIGJ5IEdDRSBvciBRRU1VLCBldmVuIHdpdGggZW11bGF0ZWQgaGFyZHdhcmUpLCBvciBhbnl0aGluZyBkZWFsaW5nIHdpdGggdGhvc2Ugb2ZmLWxpbWl0IHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzLCBvciB0ZWFyZG93biBjYWxsYmFja3MgdGhhdCBvbmx5IHJ1biBkdXJpbmcgaG90LXVucGx1ZyBvcGVyYXRpb25zLlxuXG5BbHJpZ2h0LCB3aGF0IGRpZCB0aGUgcGF0Y2ggYWN0dWFsbHkgdG91Y2g/IExvb2tzIGxpa2UgaXQgbW9kaWZpZXMgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmNgLCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcmVnLmhgLCBhbmQgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmNgLiBUaGF0J3MgdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIE5JQyBzdHVmZjogYG9jdGVvbnR4MmAsIGBvdHgyX3BmYCwgYW5kIGBvdHgyX3ZmYC4gTm93LCBoZXJlJ3Mgd2hlcmUgaXQgZ2V0cyBpbnRlcmVzdGluZy4gKklzKiB0aGUgT2N0ZW9uVFgyIGEgdmVuZG9yLXNwZWNpZmljIFNtYXJ0TklDIG9yIFBDSWUgZGV2aWNlIGRyaXZlciB0aGF0IG5lZWRzIHNwZWNpZmljIHBoeXNpY2FsIGhhcmR3YXJlIHRoYXQncyAqbm90KiBlbXVsYXRlZCBpbiBRRU1VPyBJIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcgYW5kIGRyaXZlciBkZXRhaWxzIHRvIGZpZ3VyZSBvdXQgaWYgaXQgZmFsbHMgaW50byB0aGF0IGNhdGVnb3J5LCBhcyB0aGF0J3MgdGhlIGRlY2lkaW5nIGZhY3RvciBhdCB0aGlzIHBvaW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MDM3LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTAzLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMDc6MTI6NTYuNjcyODY2NzU5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ3MjEwOTY3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIk9DVEVPTlRYMlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4MlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzo2OmNvbmZpZyBPQ1RFT05UWDJfTUJPWFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNy1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjk6Y29uZmlnIE9DVEVPTlRYMl9BRlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMTAtXFx0dHJpc3RhdGUgXFxcIk1hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBkcml2ZXJcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzoxMTpcXHRzZWxlY3QgT0NURU9OVFgyX01CT1hcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTEyLVxcdHNlbGVjdCBORVRfREVWTElOS1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZz0yMj1jb25maWcgTkRDX0RJU19EWU5BTUlDX0NBQ0hJTkdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTIzLVxcdGJvb2wgXFxcIkRpc2FibGUgY2FjaGluZyBvZiBkeW5hbWljIGVudHJpZXMgaW4gTkRDXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6MjQ6XFx0ZGVwZW5kcyBvbiBPQ1RFT05UWDJfQUZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTI1LVxcdGRlZmF1bHQgblxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0zMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjMxOmNvbmZpZyBPQ1RFT05UWDJfUEZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTMyLVxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgUGh5c2ljYWwgRnVuY3Rpb24gZHJpdmVyXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6MzM6XFx0c2VsZWN0IE9DVEVPTlRYMl9NQk9YXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0zNC1cXHRzZWxlY3QgTkVUX0RFVkxJTktcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzo0NTpjb25maWcgT0NURU9OVFgyX1ZGXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy00Ni1cXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBPY3Rlb25UWDIgTklDIFZpcnR1YWwgRnVuY3Rpb24gZHJpdmVyXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6NDc6XFx0ZGVwZW5kcyBvbiBPQ1RFT05UWDJfUEZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTQ4LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc9NTE9Y29uZmlnIFJWVV9FU1dJVENIXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy01Mi1cXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBSVlUgRS1Td2l0Y2ggc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjUzOlxcdGRlcGVuZHMgb24gT0NURU9OVFgyX1BGXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy01NC1cXHRkZWZhdWx0IG1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL01ha2VmaWxlLTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvTWFrZWZpbGU6NjpvYmotJChDT05GSUdfT0NURU9OVFgyX01CT1gpICs9IGFmL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL01ha2VmaWxlOjc6b2JqLSQoQ09ORklHX09DVEVPTlRYMl9BRikgKz0gYWYvXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvTWFrZWZpbGU6ODpvYmotJChDT05GSUdfT0NURU9OVFgyX1BGKSArPSBuaWMvXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZT02PWNjZmxhZ3MteSArPSAtSSQoc3JjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlOjc6b2JqLSQoQ09ORklHX09DVEVPTlRYMl9NQk9YKSArPSBydnVfbWJveC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU6ODpvYmotJChDT05GSUdfT0NURU9OVFgyX0FGKSArPSBydnVfYWYub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlLTktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guYz02Nj1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgY2d4X2lkX3RhYmxlW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmM6Njc6XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX0NHWCkgfSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guYy02OC1cXHR7IFBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfQ04xMEtfUlBNLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmgtMTUtIC8qIFBDSSBkZXZpY2UgSURzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4Lmg6MTY6I2RlZmluZVxcdFBDSV9ERVZJRF9PQ1RFT05UWDJfQ0dYXFx0XFx0MHhBMDU5XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmgtMTctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM9MTU0PURFRklORV9TSE9XX0FUVFJJQlVURShucGNfbWNhbV9sYXlvdXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0xNTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jOjE1NjojZGVmaW5lIF9fT0NURU9OVFgyX0RFQlVHRlNfQVRUUklCVVRFX0ZPUFMoX19uYW1lKVxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMTU3LXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIF9fbmFtZSAjIyBfZm9wcyA9IHtcXHRcXHRcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMTY0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYzoxNjU6I2RlZmluZSBERUZJTkVfT0NURU9OVFgyX0RFQlVHRlNfQVRUUklCVVRFX1dJVEhfU0laRShfX25hbWUsIF9fc2l6ZSlcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTE2Ni1zdGF0aWMgaW50IF9fbmFtZSAjIyBfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSlcXHRcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMTcwLX1cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jOjE3MTpfX09DVEVPTlRYMl9ERUJVR0ZTX0FUVFJJQlVURV9GT1BTKF9fbmFtZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMTcyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jPTE4MT1zdGF0aWMgaW50IG5wY19tY2FtX2RzdGF0c19zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqdW51c2VkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTI0Mi0jZGVmaW5lIFRPVEFMX1NaIChNQVhfTlVNX0JBTktTICogTUFYX05VTV9TVUJfQkFOS1MgKiBNQVhfU1VCQkFOS19ERVBUSCAqIDY0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYzoyNDM6REVGSU5FX09DVEVPTlRYMl9ERUJVR0ZTX0FUVFJJQlVURV9XSVRIX1NJWkUobnBjX21jYW1fZHN0YXRzLCBUT1RBTF9TWik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTI0NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM9MjQ1PXN0YXRpYyBpbnQgbnBjX21jYW1fbWlzbWF0Y2hfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKnVudXNlZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0yODQtLyogXFxcIiV1XFxcXHQlZFxcXFx0JXVcXFxcblxcXCIgbmVlZHMgbGVzcyB0aGFuIDY0IGNoYXJhY3RlcnMgdG8gcHJpbnQuICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jOjI4NTpERUZJTkVfT0NURU9OVFgyX0RFQlVHRlNfQVRUUklCVVRFX1dJVEhfU0laRShucGNfbWNhbV9taXNtYXRjaCwgVE9UQUxfU1opO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0yODYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy0yMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzoyMTojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQXFx0XFx0XFx0MHhBMDBDXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtMjItI2RlZmluZSBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk4eHhfUFRQXFx0XFx0MHhCMTAwXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy0yNy0jZGVmaW5lIFBDSV9TVUJTWVNfREVWSURfT0NUWDJfOTVYWE9fUFRQXFx0MHhCNjAwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6Mjg6I2RlZmluZSBQQ0lfREVWSURfT0NURU9OVFgyX1JTVFxcdFxcdFxcdDB4QTA4NVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTI5LSNkZWZpbmUgUENJX0RFVklEX0NOMTBLX1BUUFxcdFxcdFxcdDB4QTA5RVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM9NTg5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwdHBfaWRfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzo1OTA6XFx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNTkxLVxcdFxcdFxcdCBQQ0lfVkVORE9SX0lEX0NBVklVTSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01OTItXFx0XFx0XFx0IFBDSV9TVUJTWVNfREVWSURfT0NUWDJfOTh4eF9QVFApIH0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NTkzOlxcdHsgUENJX0RFVklDRV9TVUIoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTU5NC1cXHRcXHRcXHQgUENJX1ZFTkRPUl9JRF9DQVZJVU0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNTk1LVxcdFxcdFxcdCBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk2WFhfUFRQKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjU5NjpcXHR7IFBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1BUUCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01OTctXFx0XFx0XFx0IFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTU5OC1cXHRcXHRcXHQgUENJX1NVQlNZU19ERVZJRF9PQ1RYMl85NVhYX1BUUCkgfSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzo1OTk6XFx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNjAwLVxcdFxcdFxcdCBQQ0lfVkVORE9SX0lEX0NBVklVTSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy02MDEtXFx0XFx0XFx0IFBDSV9TVUJTWVNfREVWSURfT0NUWDJfOTVYWE5fUFRQKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjYwMjpcXHR7IFBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1BUUCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy02MDMtXFx0XFx0XFx0IFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTYwNC1cXHRcXHRcXHQgUENJX1NVQlNZU19ERVZJRF9PQ1RYMl85NU1NX1BUUCkgfSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzo2MDU6XFx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNjA2LVxcdFxcdFxcdCBQQ0lfVkVORE9SX0lEX0NBVklVTSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTQ0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBydnVfaWRfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzo0NTpcXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTQ2LVxcdHsgMCwgfSAgLyogZW5kIG9mIHRhYmxlICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz05Mjc9c3RhdGljIHZvaWQgcnZ1X2dldF9sYmtfYnVmc2l6ZShzdHJ1Y3QgcnZ1ICpydnUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy05MzMtXFx0cGRldiA9IHBjaV9nZXRfZGV2aWNlKFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjkzNDpcXHRcXHRcXHQgICAgICBQQ0lfREVWSURfT0NURU9OVFgyX0xCSywgcGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtOTM1LVxcdGlmICghcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTM0NDI9aW50IHJ2dV9nZXRfbnVtX2xia19jaGFucyh2b2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ0Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzozNDQ4OlxcdHBkZXYgPSBwY2lfZ2V0X2RldmljZShQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9MQkssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ0OS1cXHRcXHRcXHQgICAgICBOVUxMKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5oLTIzLS8qIFBDSSBkZXZpY2UgSURzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1Lmg6MjQ6I2RlZmluZVxcdFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGXFx0XFx0MHhBMDY1XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1Lmg6MjU6I2RlZmluZVxcdFBDSV9ERVZJRF9PQ1RFT05UWDJfTEJLXFx0XFx0XFx0MHhBMDYxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmgtMjYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY24xMGsuYz0zOTI9c3RhdGljIHZvaWQgcnZ1X2xia19zZXRfY2hhbm5lbHMoc3RydWN0IHJ2dSAqcnZ1KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NuMTBrLmMtNDE1LVxcdFxcdHBkZXYgPSBwY2lfZ2V0X2RldmljZShQQ0lfVkVORE9SX0lEX0NBVklVTSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY24xMGsuYzo0MTY6XFx0XFx0XFx0XFx0ICAgICAgUENJX0RFVklEX09DVEVPTlRYMl9MQkssIHBkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jbjEway5jLTQxNy1cXHRcXHRpZiAoIXBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jPTI3OTQ9c3RhdGljIHZvaWQgcnZ1X2RiZ19ucGFfaW5pdChzdHJ1Y3QgcnZ1ICpydnUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jLTI4MTMtLyogUGVyLWxtYWMgQ0dYIGRlYnVnZnMgZmlsZXMgbmVlZCBib3RoIFJWVSBhbmQgQ0dYIGhhbmRsZTsgaW5vZGUtXFx1MDAzZWlfcHJpdmF0ZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZWJ1Z2ZzLmM6MjgxNDogKiBwb2ludHMgaGVyZSBzbyBzZXFfZmlsZSBvcHMgYXZvaWQgcGNpX2dldF9kZXZpY2UoUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUYpLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZWJ1Z2ZzLmMtMjgxNS0gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9NYWtlZmlsZS01LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19PQ1RFT05UWDJfUEYpICs9IHJ2dV9uaWNwZi5vIG90eDJfcHRwLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvTWFrZWZpbGU6NzpvYmotJChDT05GSUdfT0NURU9OVFgyX1ZGKSArPSBydnVfbmljdmYubyBvdHgyX3B0cC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL01ha2VmaWxlLTgtb2JqLSQoQ09ORklHX1JWVV9FU1dJVENIKSArPSBydnVfcmVwLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTQyLS8qIFBDSSBkZXZpY2UgSURzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmg6NDM6I2RlZmluZSBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9QRiAgICAgICAgICAgICAgMHhBMDYzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmg6NDQ6I2RlZmluZSBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9WRlxcdFxcdDB4QTA2NFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjQ1OiNkZWZpbmUgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUZWRlxcdFxcdDB4QTBGOFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTQ2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmg6NTE6I2RlZmluZSBQQ0lfREVWSURfT0NURU9OVFgyX1NEUF9SRVBcXHRcXHQweEEwRjdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC01Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oPTU5Nz1zdGF0aWMgaW5saW5lIGJvb2wgaXNfb3R4Ml9sYmt2ZihzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC01OTgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjU5OTpcXHRyZXR1cm4gKHBkZXYtXFx1MDAzZWRldmljZSA9PSBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9BRlZGKSB8fFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTYwMC1cXHRcXHQocGRldi1cXHUwMDNlZGV2aWNlID09IFBDSV9ERVZJRF9SVlVfUkVQKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oPTYxNT1zdGF0aWMgaW5saW5lIGJvb2wgaXNfb3R4Ml9zZHBfcmVwKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTYxNi17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmg6NjE3OlxcdHJldHVybiBwZGV2LVxcdTAwM2VkZXZpY2UgPT0gUENJX0RFVklEX09DVEVPTlRYMl9TRFBfUkVQO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTYxOC19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jPTM2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBvdHgyX3BmX2lkX3RhYmxlW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYzozNzpcXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX1BGKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmMtMzgtXFx0eyAwLCB9ICAvKiBlbmQgb2YgdGFibGUgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmM9MjI9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIG90eDJfdmZfaWRfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jOjIzOlxcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUZWRikgfSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jOjI0OlxcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfVkYpIH0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYzoyNTpcXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfU0RQX1JFUCkgfSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jLTI2LVxcdHsgfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQwNzoxMjo1Ni43MjAwODMzNjZaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo2Nzk1MjIxNjc4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZyBEZWNpc2lvbiBmb3IgT2N0ZW9uVFgyIERyaXZlcnMqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24gc3lzdGVtYXRpY2FsbHkuIFRoZSBjcml0ZXJpYSBsYWlkIG91dCBzdGF0ZSB0aGF0IHdlIHNob3VsZCBzZXQgYFdvcnRoRnV6emluZ2AgdG8gYGZhbHNlYCBpZiB0aGUgcGF0Y2ggaW52b2x2ZXMgY29kZSBwYXRocyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiBUaGlzIGlzIGNyaXRpY2FsIGZvciBlZmZpY2llbnQgcmVzb3VyY2UgYWxsb2NhdGlvbiwgYXMgeW91IGtub3cuXG5cbkknbSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCBtb2RpZmllcyB0aGUgTWFydmVsbCBPY3Rlb25UWDIgbmV0d29yayBkcml2ZXJzIOKAkyBzcGVjaWZpY2FsbHksIHRoZSBwaHlzaWNhbCBmdW5jdGlvbiAoYG90eDJfcGYuY2ApIGFuZCB2aXJ0dWFsIGZ1bmN0aW9uIChgb3R4Ml92Zi5jYCkgZHJpdmVycy4gVGhlIGNoYW5nZXMgaW52b2x2ZSBpbnRlcnJ1cHQgaGFuZGxlcnMgYW5kIHZlY3RvciBhbGxvY2F0aW9ucyBmb3IgY2VydGFpbiBOSVggZXZlbnRzLiBUaGlzIGltbWVkaWF0ZWx5IGZsYWdzIGEgcG90ZW50aWFsIGlzc3VlLCBnaXZlbiBteSBrbm93bGVkZ2Ugb2YgdGhlIGhhcmR3YXJlLlxuXG5UaGUgT2N0ZW9uVFgyIGRyaXZlcnMgYXJlIHZlbmRvci1zcGVjaWZpYywgdGFyZ2V0aW5nIENhdml1bS9NYXJ2ZWxsIE9jdGVvblRYMiBoYXJkd2FyZS4gVGhhdCBtZWFucyB0aGV5IHJlbHkgb24gdGhlIHByZXNlbmNlIG9mIHBoeXNpY2FsIFBDSWUgY2FyZHMgb3IgdGhlIE9jdGVvblRYMiBTb0MgaXRzZWxmLiBJJ3ZlIGRvdWJsZS1jaGVja2VkLCBhbmQgdGhlcmUncyBubyBzdGFuZGFyZCBRRU1VIGVtdWxhdGlvbiBmb3IgdGhlc2UgUlZVIFBGL1ZGIGRldmljZXMgKFBDSSB2ZW5kb3IgSUQgMHgxNzdkLCBkZXZpY2UgSURzIDB4QTA2MywgMHhBMDY0LCBldGMuKS4gV2UncmUgdGFsa2luZyBhYm91dCBhIGxldmVsIG9mIGhhcmR3YXJlIGludGVyYWN0aW9uIHRoYXQgaXNuJ3QgcmVwbGljYXRlZCBpbiBhIHN0YW5kYXJkIHZpcnR1YWwgZW52aXJvbm1lbnQuXG5cblRoZXJlZm9yZSwgdGhpcyBjb2RlIHBhdGggaXMgc2ltcGx5IHVucmVhY2hhYmxlIHdpdGhpbiBhIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGZ1enppbmcgc2V0dXAuIEdpdmVuIHRoZSBjcml0ZXJpYSwgSSdtIGNvbmZpZGVudCBpbiBjb25jbHVkaW5nIHRoYXQgdGhpcyBwYXRjaCBpcyBub3Qgd29ydGggZnV6emluZyBpbiBvdXIgc3RhbmRhcmQgZW52aXJvbm1lbnQuIEl0IHdpbGwgYmUgbW9yZSBlZmZlY3RpdmUgdG8gdGVzdCB0aG9zZSBkcml2ZXJzIG9uIHRoZSBoYXJkd2FyZSB0aGV5IHdlcmUgZGVzaWduZWQgZm9yLlxuXG5CYXNlZCBvbiB0aGlzIGFuYWx5c2lzLCBJIHdpbGwgc2V0IGBXb3J0aEZ1enppbmdgIHRvIGBmYWxzZWAgYW5kIG1vdmUgb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExNzc5LCJPdXRwdXRUb2tlbnMiOjExNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUzOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQwNzoxMzowMy41MTUzMDg2MTRaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMxMzkwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgZHJpdmVyIChvdHgyX3BmLmMsIG90eDJfdmYuYykgdG8gcmVnaXN0ZXIgZXJyb3IgYW5kIHBvaXNvbiBpbnRlcnJ1cHQgaGFuZGxlcnMgYW5kIGFkanVzdCBNU0ktWCB2ZWN0b3IgYWxsb2NhdGlvbi4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcHJvcHJpZXRhcnkgTWFydmVsbCBPY3Rlb25UWDIgLyBDYXZpdW0gaGFyZHdhcmUgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIG1ha2luZyBpdCB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgZHJpdmVyIChvdHgyX3BmLmMsIG90eDJfdmYuYykgdG8gcmVnaXN0ZXIgZXJyb3IgYW5kIHBvaXNvbiBpbnRlcnJ1cHQgaGFuZGxlcnMgYW5kIGFkanVzdCBNU0ktWCB2ZWN0b3IgYWxsb2NhdGlvbi4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcHJvcHJpZXRhcnkgTWFydmVsbCBPY3Rlb25UWDIgLyBDYXZpdW0gaGFyZHdhcmUgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIG1ha2luZyBpdCB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDA3OjEzOjAzLjUxNTM1NDI3NFoiLCJTZXEiOjcsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MzEwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflow5jpm9[1] Phase: Running StartedAt: 2026-08-31 07:13:14 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5jpm9[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-31 07:13:14 +0000 UTC FinishedAt: 2026-08-31 07:13:19 +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,}