Name: series-workflowm7kgd Phase: Failed StartedAt: 2026-08-12 18:12:16 +0000 UTC FinishedAt: 2026-08-12 18:34:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm7kgd[0] Phase: Succeeded StartedAt: 2026-08-12 18:12:16 +0000 UTC FinishedAt: 2026-08-12 18:34:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm7kgd[0].run-triage Phase: Succeeded StartedAt: 2026-08-12 18:12:16 +0000 UTC FinishedAt: 2026-08-12 18:34:01 +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+CgkJCTx0ZD4yMDI2LzA4LzEyIDE4OjMzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIE5JQyBkcml2ZXIgKG9jdGVvbnR4MiksIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgaGFyZHdhcmUgZGV2aWNlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudHMuIFRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGNhbm5vdCBiZSByZWFjaGVkIGR1cmluZyBmdXp6aW5nIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTIgMTg6MzM8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAzOGZhNTQ4NjE4ZWM5Mjk1NTIwOWEyZDVjMGVjMGIyZDBhODZiMzMxXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBBdWcgMTIgMTg6MzM6MjYgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmNcbmluZGV4IGM5OTVmMjkwMDg1OTAuLjYxYjAzMzRkMGI2ZWYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jXG5AQCAtMTUyNCw2ICYjNDM7MTUyNCwzNCBAQCBpcnFyZXR1cm5fdCBvdHgyX2NxX2ludHJfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpjcV9pcnEpXG4gfVxuIEVYUE9SVF9TWU1CT0wob3R4Ml9jcV9pbnRyX2hhbmRsZXIpO1xuIFxuJiM0MztzdGF0aWMgaXJxcmV0dXJuX3Qgb3R4Ml9uaXhsZl9lcnJfaW50cl9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRhdGEpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3Qgb3R4Ml9uaWMgKnBmID0gZGF0YTtcbiYjNDM7XHR1NjQgcmVndmFsO1xuJiM0MztcbiYjNDM7XHQvKiBDbGVhciBpbnRlcnJ1cHQgKi9cbiYjNDM7XHRyZWd2YWwgPSBvdHgyX3JlYWQ2NChwZiwgTklYX0xGX0VSUl9JTlQpO1xuJiM0MztcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX0VSUl9JTlQsIHJlZ3ZhbCk7XG4mIzQzO1xuJiM0MztcdGRldl9lcnJfcmF0ZWxpbWl0ZWQocGYtXHUwMDNlZGV2LCBcJiMzNDtOSVhMRiBFcnJvciBJbnRlcnJ1cHQ6IDB4JWxseFxcblwmIzM0OywgcmVndmFsKTtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIElSUV9IQU5ETEVEO1xuJiM0Mzt9XG4mIzQzO1xuJiM0MztzdGF0aWMgaXJxcmV0dXJuX3Qgb3R4Ml9uaXhsZl9wb2lzb25faW50cl9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRhdGEpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3Qgb3R4Ml9uaWMgKnBmID0gZGF0YTtcbiYjNDM7XHR1NjQgcmVndmFsO1xuJiM0MztcbiYjNDM7XHQvKiBDbGVhciBpbnRlcnJ1cHQgKi9cbiYjNDM7XHRyZWd2YWwgPSBvdHgyX3JlYWQ2NChwZiwgTklYX0xGX1JBUyk7XG4mIzQzO1x0b3R4Ml93cml0ZTY0KHBmLCBOSVhfTEZfUkFTLCByZWd2YWwpO1xuJiM0MztcbiYjNDM7XHRkZXZfZXJyX3JhdGVsaW1pdGVkKHBmLVx1MDAzZWRldiwgXCYjMzQ7TklYTEYgUG9pc29uIEludGVycnVwdDogMHglbGx4XFxuXCYjMzQ7LCByZWd2YWwpO1xuJiM0MztcbiYjNDM7XHRyZXR1cm4gSVJRX0hBTkRMRUQ7XG4mIzQzO31cbiYjNDM7XG4gdm9pZCBvdHgyX2Rpc2FibGVfbmFwaShzdHJ1Y3Qgb3R4Ml9uaWMgKnBmKVxuIHtcbiBcdHN0cnVjdCBvdHgyX3FzZXQgKnFzZXQgPSBcdTAwMjZwZi1cdTAwM2Vxc2V0O1xuQEAgLTIwODAsNiAmIzQzOzIxMDgsMzQgQEAgaW50IG90eDJfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuIFxuIFx0b3R4Ml9zZXRfY2ludHNfYWZmaW5pdHkocGYpO1xuIFxuJiM0MztcdC8qIFJlZ2lzdGVyIE5JWExGIGVycm9yIElSUSBoYW5kbGVyICovXG4mIzQzO1x0dmVjID0gcGYtXHUwMDNlaHcubml4X21zaXhvZmYgJiM0MzsgTklYX0xGX0VSUl9WRUM7XG4mIzQzO1x0aXJxX25hbWUgPSBcdTAwMjZwZi1cdTAwM2Vody5pcnFfbmFtZVt2ZWMgKiBOQU1FX1NJWkVdO1xuJiM0MztcdHNucHJpbnRmKGlycV9uYW1lLCBOQU1FX1NJWkUsIFwmIzM0OyVzLW5peGxmLWVyclwmIzM0OywgcGYtXHUwMDNlbmV0ZGV2LVx1MDAzZW5hbWUpO1xuJiM0MztcdGVyciA9IHJlcXVlc3RfaXJxKHBjaV9pcnFfdmVjdG9yKHBmLVx1MDAzZXBkZXYsIHZlYyksXG4mIzQzO1x0XHRcdCAgb3R4Ml9uaXhsZl9lcnJfaW50cl9oYW5kbGVyLCAwLCBpcnFfbmFtZSwgcGYpO1xuJiM0MztcdGlmIChlcnIpIHtcbiYjNDM7XHRcdGRldl9lcnIocGYtXHUwMDNlZGV2LFxuJiM0MztcdFx0XHRcJiMzNDtSVlVQRiVkOiBJUlEgcmVnaXN0cmF0aW9uIGZhaWxlZCBmb3IgTklYTEYgRVJSIHZlY3RvclxcblwmIzM0OyxcbiYjNDM7XHRcdFx0cnZ1X2dldF9wZihwZi1cdTAwM2VwZGV2LCBwZi1cdTAwM2VwY2lmdW5jKSk7XG4mIzQzO1x0XHRnb3RvIGVycl9mcmVlX2NpbnRzO1xuJiM0MztcdH1cbiYjNDM7XHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9FUlJfSU5UX0VOQV9XMVMsIE5JWF9MRl9FUlJfSU5UX01BU0spO1xuJiM0MztcbiYjNDM7XHQvKiBSZWdpc3RlciBOSVhMRiBQT0lTT04gaW50ZXJydXB0IGhhbmRsZXIgKi9cbiYjNDM7XHR2ZWMgPSBwZi1cdTAwM2Vody5uaXhfbXNpeG9mZiAmIzQzOyBOSVhfTEZfUE9JU09OX1ZFQztcbiYjNDM7XHRpcnFfbmFtZSA9IFx1MDAyNnBmLVx1MDAzZWh3LmlycV9uYW1lW3ZlYyAqIE5BTUVfU0laRV07XG4mIzQzO1x0c25wcmludGYoaXJxX25hbWUsIE5BTUVfU0laRSwgXCYjMzQ7JXMtbml4bGYtcG9pc29uXCYjMzQ7LCBwZi1cdTAwM2VuZXRkZXYtXHUwMDNlbmFtZSk7XG4mIzQzO1x0ZXJyID0gcmVxdWVzdF9pcnEocGNpX2lycV92ZWN0b3IocGYtXHUwMDNlcGRldiwgdmVjKSxcbiYjNDM7XHRcdFx0ICBvdHgyX25peGxmX3BvaXNvbl9pbnRyX2hhbmRsZXIsIDAsIGlycV9uYW1lLCBwZik7XG4mIzQzO1x0aWYgKGVycikge1xuJiM0MztcdFx0ZGV2X2VycihwZi1cdTAwM2VkZXYsXG4mIzQzO1x0XHRcdFwmIzM0O1JWVVBGJWQ6IElSUSByZWdpc3RyYXRpb24gZmFpbGVkIGZvciBOSVhMRiBQT0lTT04gdmVjdG9yXFxuXCYjMzQ7LFxuJiM0MztcdFx0XHRydnVfZ2V0X3BmKHBmLVx1MDAzZXBkZXYsIHBmLVx1MDAzZXBjaWZ1bmMpKTtcbiYjNDM7XHRcdGdvdG8gZXJyX2ZyZWVfZXJyaW50O1xuJiM0MztcdH1cbiYjNDM7XHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9SQVNfRU5BX1cxUywgTklYX0xGX1JBU19NQVNLKTtcbiYjNDM7XG4gXHRpZiAocGYtXHUwMDNlZmxhZ3MgXHUwMDI2IE9UWDJfRkxBR19SWF9WTEFOX1NVUFBPUlQpXG4gXHRcdG90eDJfZW5hYmxlX3J4dmxhbihwZiwgdHJ1ZSk7XG4gXG5AQCAtMjEzMiw2ICYjNDM7MjE4OCwxNiBAQCBpbnQgb3R4Ml9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4gXHRuZXRpZl90eF9zdG9wX2FsbF9xdWV1ZXMobmV0ZGV2KTtcbiBcdG5ldGlmX2NhcnJpZXJfb2ZmKG5ldGRldik7XG4gXHRwZi1cdTAwM2VmbGFncyB8PSBPVFgyX0ZMQUdfSU5URl9ET1dOO1xuJiM0MztcdC8qIGZyZWUgTklYTEYgUE9JU09OIGlycSAqL1xuJiM0MztcdHZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLVx1MDAzZXBkZXYsXG4mIzQzO1x0XHRcdCAgICAgcGYtXHUwMDNlaHcubml4X21zaXhvZmYgJiM0MzsgTklYX0xGX1BPSVNPTl9WRUMpO1xuJiM0MztcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX1JBU19FTkFfVzFDLCBOSVhfTEZfUkFTX01BU0spO1xuJiM0MztcdGZyZWVfaXJxKHZlYywgcGYpO1xuJiM0MztlcnJfZnJlZV9lcnJpbnQ6XG4mIzQzO1x0dmVjID0gcGNpX2lycV92ZWN0b3IocGYtXHUwMDNlcGRldixcbiYjNDM7XHRcdFx0ICAgICBwZi1cdTAwM2Vody5uaXhfbXNpeG9mZiAmIzQzOyBOSVhfTEZfRVJSX1ZFQyk7XG4mIzQzO1x0b3R4Ml93cml0ZTY0KHBmLCBOSVhfTEZfRVJSX0lOVF9FTkFfVzFDLCBOSVhfTEZfRVJSX0lOVF9NQVNLKTtcbiYjNDM7XHRmcmVlX2lycSh2ZWMsIHBmKTtcbiBlcnJfZnJlZV9jaW50czpcbiBcdG90eDJfZnJlZV9jaW50cyhwZiwgcWlkeCk7XG4gXHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LFxuQEAgLTIxNzEsNiAmIzQzOzIyMzcsMTggQEAgaW50IG90eDJfc3RvcChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuIFx0LyogQ2xlYXIgUlNTIGVuYWJsZSBmbGFnICovXG4gXHRwZi1cdTAwM2Vody5yc3NfaW5mby5lbmFibGUgPSBmYWxzZTtcbiBcbiYjNDM7XHQvKiBDbGVhbnVwIE5JWExGIFBvaXNvbiBJUlEgKi9cbiYjNDM7XHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LFxuJiM0MztcdFx0XHQgICAgIHBmLVx1MDAzZWh3Lm5peF9tc2l4b2ZmICYjNDM7IE5JWF9MRl9QT0lTT05fVkVDKTtcbiYjNDM7XHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9SQVNfRU5BX1cxQywgTklYX0xGX1JBU19NQVNLKTtcbiYjNDM7XHRmcmVlX2lycSh2ZWMsIHBmKTtcbiYjNDM7XG4mIzQzO1x0LyogQ2xlYW51cCBOSVhMRiBFcnJvciBJUlEgKi9cbiYjNDM7XHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LFxuJiM0MztcdFx0XHQgICAgIHBmLVx1MDAzZWh3Lm5peF9tc2l4b2ZmICYjNDM7IE5JWF9MRl9FUlJfVkVDKTtcbiYjNDM7XHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9FUlJfSU5UX0VOQV9XMUMsIE5JWF9MRl9FUlJfSU5UX01BU0spO1xuJiM0MztcdGZyZWVfaXJxKHZlYywgcGYpO1xuJiM0MztcbiBcdC8qIENsZWFudXAgUXVldWUgSVJRICovXG4gXHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LFxuIFx0XHRcdCAgICAgcGYtXHUwMDNlaHcubml4X21zaXhvZmYgJiM0MzsgTklYX0xGX1FJTlRfVkVDX1NUQVJUKTtcbkBAIC0zMDEwLDcgJiM0MzszMDg4LDcgQEAgaW50IG90eDJfcmVhbGxvY19tc2l4X3ZlY3RvcnMoc3RydWN0IG90eDJfbmljICpwZilcbiBcdCAqIHVwdG8gTklYIHZlY3RvciBvZmZzZXQuXG4gXHQgKi9cbiBcdG51bV92ZWMgPSBody1cdTAwM2VuaXhfbXNpeG9mZjtcbi1cdG51bV92ZWMgJiM0Mzs9IE5JWF9MRl9DSU5UX1ZFQ19TVEFSVCAmIzQzOyBody1cdTAwM2VtYXhfcXVldWVzO1xuJiM0MztcdG51bV92ZWMgJiM0Mzs9IE5JWF9MRl9QT0lTT05fVkVDICYjNDM7IDE7XG4gXG4gXHRvdHgyX2Rpc2FibGVfbWJveF9pbnRyKHBmKTtcbiBcdHBjaV9mcmVlX2lycV92ZWN0b3JzKGh3LVx1MDAzZXBkZXYpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3JlZy5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcmVnLmhcbmluZGV4IDFjZDU3NmZkMDljNTYuLmMxNDRmZDJiYmU1MWYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9yZWcuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcmVnLmhcbkBAIC0xMjEsMTAgJiM0MzsxMjEsMTIgQEBcbiAjZGVmaW5lXHROSVhfTEZfRVJSX0lOVF9XMVNcdFx0KE5JWF9MRkJBU0UgfCAweDIyOClcbiAjZGVmaW5lXHROSVhfTEZfRVJSX0lOVF9FTkFfVzFDXHRcdChOSVhfTEZCQVNFIHwgMHgyMzApXG4gI2RlZmluZVx0TklYX0xGX0VSUl9JTlRfRU5BX1cxU1x0XHQoTklYX0xGQkFTRSB8IDB4MjM4KVxuJiM0MzsjZGVmaW5lXHROSVhfTEZfRVJSX0lOVF9NQVNLXHRcdEdFTk1BU0tfVUxMKDMxLCAwKVxuICNkZWZpbmVcdE5JWF9MRl9SQVNcdFx0XHQoTklYX0xGQkFTRSB8IDB4MjQwKVxuICNkZWZpbmVcdE5JWF9MRl9SQVNfVzFTXHRcdFx0KE5JWF9MRkJBU0UgfCAweDI0OClcbiAjZGVmaW5lXHROSVhfTEZfUkFTX0VOQV9XMUNcdFx0KE5JWF9MRkJBU0UgfCAweDI1MClcbiAjZGVmaW5lXHROSVhfTEZfUkFTX0VOQV9XMVNcdFx0KE5JWF9MRkJBU0UgfCAweDI1OClcbiYjNDM7I2RlZmluZVx0TklYX0xGX1JBU19NQVNLXHRcdFx0R0VOTUFTS19VTEwoMTAsIDApXG4gI2RlZmluZVx0TklYX0xGX1NRX09QX0VSUl9EQkdcdFx0KE5JWF9MRkJBU0UgfCAweDI2MClcbiAjZGVmaW5lXHROSVhfTEZfTU5RX0VSUl9EQkdcdFx0KE5JWF9MRkJBU0UgfCAweDI3MClcbiAjZGVmaW5lXHROSVhfTEZfU0VORF9FUlJfREJHXHRcdChOSVhfTEZCQVNFIHwgMHgyODApXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmNcbmluZGV4IGIwMjJmNTJjNjg0NTAuLjJhNTYzMDU2MWIxMmIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jXG5AQCAtNTU0LDcgJiM0Mzs1NTQsNyBAQCBzdGF0aWMgaW50IG90eDJ2Zl9yZWFsbG9jX21zaXhfdmVjdG9ycyhzdHJ1Y3Qgb3R4Ml9uaWMgKnZmKVxuIFx0aW50IG51bV92ZWMsIGVycjtcbiBcbiBcdG51bV92ZWMgPSBody1cdTAwM2VuaXhfbXNpeG9mZjtcbi1cdG51bV92ZWMgJiM0Mzs9IE5JWF9MRl9DSU5UX1ZFQ19TVEFSVCAmIzQzOyBody1cdTAwM2VtYXhfcXVldWVzO1xuJiM0MztcdG51bV92ZWMgJiM0Mzs9IE5JWF9MRl9QT0lTT05fVkVDICYjNDM7IDE7XG4gXG4gXHRvdHgydmZfZGlzYWJsZV9tYm94X2ludHIodmYpO1xuIFx0cGNpX2ZyZWVfaXJxX3ZlY3RvcnMoaHctXHUwMDNlcGRldik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTIgMTg6MzM8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgZHJpdmVyIChvY3Rlb250eDIpLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGRldmljZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnRzLiBUaGUgbW9kaWZpZWQgY29kZSBwYXRocyBjYW5ub3QgYmUgcmVhY2hlZCBkdXJpbmcgZnV6emluZyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMzhmYTU0ODYxOGVjOTI5NTUyMDlhMmQ1YzBlYzBiMmQwYTg2YjMzMQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgQXVnIDEyIDE4OjMzOjI2IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmMKaW5kZXggYzk5NWYyOTAwODU5MC4uNjFiMDMzNGQwYjZlZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jCkBAIC0xNTI0LDYgJiM0MzsxNTI0LDM0IEBAIGlycXJldHVybl90IG90eDJfY3FfaW50cl9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmNxX2lycSkKIH0KIEVYUE9SVF9TWU1CT0wob3R4Ml9jcV9pbnRyX2hhbmRsZXIpOwogCiYjNDM7c3RhdGljIGlycXJldHVybl90IG90eDJfbml4bGZfZXJyX2ludHJfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkYXRhKQomIzQzO3sKJiM0MzsJc3RydWN0IG90eDJfbmljICpwZiA9IGRhdGE7CiYjNDM7CXU2NCByZWd2YWw7CiYjNDM7CiYjNDM7CS8qIENsZWFyIGludGVycnVwdCAqLwomIzQzOwlyZWd2YWwgPSBvdHgyX3JlYWQ2NChwZiwgTklYX0xGX0VSUl9JTlQpOwomIzQzOwlvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9FUlJfSU5ULCByZWd2YWwpOwomIzQzOwomIzQzOwlkZXZfZXJyX3JhdGVsaW1pdGVkKHBmLSZndDtkZXYsICYjMzQ7TklYTEYgRXJyb3IgSW50ZXJydXB0OiAweCVsbHhcbiYjMzQ7LCByZWd2YWwpOwomIzQzOwomIzQzOwlyZXR1cm4gSVJRX0hBTkRMRUQ7CiYjNDM7fQomIzQzOwomIzQzO3N0YXRpYyBpcnFyZXR1cm5fdCBvdHgyX25peGxmX3BvaXNvbl9pbnRyX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGF0YSkKJiM0Mzt7CiYjNDM7CXN0cnVjdCBvdHgyX25pYyAqcGYgPSBkYXRhOwomIzQzOwl1NjQgcmVndmFsOwomIzQzOwomIzQzOwkvKiBDbGVhciBpbnRlcnJ1cHQgKi8KJiM0MzsJcmVndmFsID0gb3R4Ml9yZWFkNjQocGYsIE5JWF9MRl9SQVMpOwomIzQzOwlvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9SQVMsIHJlZ3ZhbCk7CiYjNDM7CiYjNDM7CWRldl9lcnJfcmF0ZWxpbWl0ZWQocGYtJmd0O2RldiwgJiMzNDtOSVhMRiBQb2lzb24gSW50ZXJydXB0OiAweCVsbHhcbiYjMzQ7LCByZWd2YWwpOwomIzQzOwomIzQzOwlyZXR1cm4gSVJRX0hBTkRMRUQ7CiYjNDM7fQomIzQzOwogdm9pZCBvdHgyX2Rpc2FibGVfbmFwaShzdHJ1Y3Qgb3R4Ml9uaWMgKnBmKQogewogCXN0cnVjdCBvdHgyX3FzZXQgKnFzZXQgPSAmYW1wO3BmLSZndDtxc2V0OwpAQCAtMjA4MCw2ICYjNDM7MjEwOCwzNCBAQCBpbnQgb3R4Ml9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpCiAKIAlvdHgyX3NldF9jaW50c19hZmZpbml0eShwZik7CiAKJiM0MzsJLyogUmVnaXN0ZXIgTklYTEYgZXJyb3IgSVJRIGhhbmRsZXIgKi8KJiM0MzsJdmVjID0gcGYtJmd0O2h3Lm5peF9tc2l4b2ZmICYjNDM7IE5JWF9MRl9FUlJfVkVDOwomIzQzOwlpcnFfbmFtZSA9ICZhbXA7cGYtJmd0O2h3LmlycV9uYW1lW3ZlYyAqIE5BTUVfU0laRV07CiYjNDM7CXNucHJpbnRmKGlycV9uYW1lLCBOQU1FX1NJWkUsICYjMzQ7JXMtbml4bGYtZXJyJiMzNDssIHBmLSZndDtuZXRkZXYtJmd0O25hbWUpOwomIzQzOwllcnIgPSByZXF1ZXN0X2lycShwY2lfaXJxX3ZlY3RvcihwZi0mZ3Q7cGRldiwgdmVjKSwKJiM0MzsJCQkgIG90eDJfbml4bGZfZXJyX2ludHJfaGFuZGxlciwgMCwgaXJxX25hbWUsIHBmKTsKJiM0MzsJaWYgKGVycikgewomIzQzOwkJZGV2X2VycihwZi0mZ3Q7ZGV2LAomIzQzOwkJCSYjMzQ7UlZVUEYlZDogSVJRIHJlZ2lzdHJhdGlvbiBmYWlsZWQgZm9yIE5JWExGIEVSUiB2ZWN0b3JcbiYjMzQ7LAomIzQzOwkJCXJ2dV9nZXRfcGYocGYtJmd0O3BkZXYsIHBmLSZndDtwY2lmdW5jKSk7CiYjNDM7CQlnb3RvIGVycl9mcmVlX2NpbnRzOwomIzQzOwl9CiYjNDM7CW90eDJfd3JpdGU2NChwZiwgTklYX0xGX0VSUl9JTlRfRU5BX1cxUywgTklYX0xGX0VSUl9JTlRfTUFTSyk7CiYjNDM7CiYjNDM7CS8qIFJlZ2lzdGVyIE5JWExGIFBPSVNPTiBpbnRlcnJ1cHQgaGFuZGxlciAqLwomIzQzOwl2ZWMgPSBwZi0mZ3Q7aHcubml4X21zaXhvZmYgJiM0MzsgTklYX0xGX1BPSVNPTl9WRUM7CiYjNDM7CWlycV9uYW1lID0gJmFtcDtwZi0mZ3Q7aHcuaXJxX25hbWVbdmVjICogTkFNRV9TSVpFXTsKJiM0MzsJc25wcmludGYoaXJxX25hbWUsIE5BTUVfU0laRSwgJiMzNDslcy1uaXhsZi1wb2lzb24mIzM0OywgcGYtJmd0O25ldGRldi0mZ3Q7bmFtZSk7CiYjNDM7CWVyciA9IHJlcXVlc3RfaXJxKHBjaV9pcnFfdmVjdG9yKHBmLSZndDtwZGV2LCB2ZWMpLAomIzQzOwkJCSAgb3R4Ml9uaXhsZl9wb2lzb25faW50cl9oYW5kbGVyLCAwLCBpcnFfbmFtZSwgcGYpOwomIzQzOwlpZiAoZXJyKSB7CiYjNDM7CQlkZXZfZXJyKHBmLSZndDtkZXYsCiYjNDM7CQkJJiMzNDtSVlVQRiVkOiBJUlEgcmVnaXN0cmF0aW9uIGZhaWxlZCBmb3IgTklYTEYgUE9JU09OIHZlY3RvclxuJiMzNDssCiYjNDM7CQkJcnZ1X2dldF9wZihwZi0mZ3Q7cGRldiwgcGYtJmd0O3BjaWZ1bmMpKTsKJiM0MzsJCWdvdG8gZXJyX2ZyZWVfZXJyaW50OwomIzQzOwl9CiYjNDM7CW90eDJfd3JpdGU2NChwZiwgTklYX0xGX1JBU19FTkFfVzFTLCBOSVhfTEZfUkFTX01BU0spOwomIzQzOwogCWlmIChwZi0mZ3Q7ZmxhZ3MgJmFtcDsgT1RYMl9GTEFHX1JYX1ZMQU5fU1VQUE9SVCkKIAkJb3R4Ml9lbmFibGVfcnh2bGFuKHBmLCB0cnVlKTsKIApAQCAtMjEzMiw2ICYjNDM7MjE4OCwxNiBAQCBpbnQgb3R4Ml9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpCiAJbmV0aWZfdHhfc3RvcF9hbGxfcXVldWVzKG5ldGRldik7CiAJbmV0aWZfY2Fycmllcl9vZmYobmV0ZGV2KTsKIAlwZi0mZ3Q7ZmxhZ3MgfD0gT1RYMl9GTEFHX0lOVEZfRE9XTjsKJiM0MzsJLyogZnJlZSBOSVhMRiBQT0lTT04gaXJxICovCiYjNDM7CXZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLSZndDtwZGV2LAomIzQzOwkJCSAgICAgcGYtJmd0O2h3Lm5peF9tc2l4b2ZmICYjNDM7IE5JWF9MRl9QT0lTT05fVkVDKTsKJiM0MzsJb3R4Ml93cml0ZTY0KHBmLCBOSVhfTEZfUkFTX0VOQV9XMUMsIE5JWF9MRl9SQVNfTUFTSyk7CiYjNDM7CWZyZWVfaXJxKHZlYywgcGYpOwomIzQzO2Vycl9mcmVlX2VycmludDoKJiM0MzsJdmVjID0gcGNpX2lycV92ZWN0b3IocGYtJmd0O3BkZXYsCiYjNDM7CQkJICAgICBwZi0mZ3Q7aHcubml4X21zaXhvZmYgJiM0MzsgTklYX0xGX0VSUl9WRUMpOwomIzQzOwlvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9FUlJfSU5UX0VOQV9XMUMsIE5JWF9MRl9FUlJfSU5UX01BU0spOwomIzQzOwlmcmVlX2lycSh2ZWMsIHBmKTsKIGVycl9mcmVlX2NpbnRzOgogCW90eDJfZnJlZV9jaW50cyhwZiwgcWlkeCk7CiAJdmVjID0gcGNpX2lycV92ZWN0b3IocGYtJmd0O3BkZXYsCkBAIC0yMTcxLDYgJiM0MzsyMjM3LDE4IEBAIGludCBvdHgyX3N0b3Aoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikKIAkvKiBDbGVhciBSU1MgZW5hYmxlIGZsYWcgKi8KIAlwZi0mZ3Q7aHcucnNzX2luZm8uZW5hYmxlID0gZmFsc2U7CiAKJiM0MzsJLyogQ2xlYW51cCBOSVhMRiBQb2lzb24gSVJRICovCiYjNDM7CXZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLSZndDtwZGV2LAomIzQzOwkJCSAgICAgcGYtJmd0O2h3Lm5peF9tc2l4b2ZmICYjNDM7IE5JWF9MRl9QT0lTT05fVkVDKTsKJiM0MzsJb3R4Ml93cml0ZTY0KHBmLCBOSVhfTEZfUkFTX0VOQV9XMUMsIE5JWF9MRl9SQVNfTUFTSyk7CiYjNDM7CWZyZWVfaXJxKHZlYywgcGYpOwomIzQzOwomIzQzOwkvKiBDbGVhbnVwIE5JWExGIEVycm9yIElSUSAqLwomIzQzOwl2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi0mZ3Q7cGRldiwKJiM0MzsJCQkgICAgIHBmLSZndDtody5uaXhfbXNpeG9mZiAmIzQzOyBOSVhfTEZfRVJSX1ZFQyk7CiYjNDM7CW90eDJfd3JpdGU2NChwZiwgTklYX0xGX0VSUl9JTlRfRU5BX1cxQywgTklYX0xGX0VSUl9JTlRfTUFTSyk7CiYjNDM7CWZyZWVfaXJxKHZlYywgcGYpOwomIzQzOwogCS8qIENsZWFudXAgUXVldWUgSVJRICovCiAJdmVjID0gcGNpX2lycV92ZWN0b3IocGYtJmd0O3BkZXYsCiAJCQkgICAgIHBmLSZndDtody5uaXhfbXNpeG9mZiAmIzQzOyBOSVhfTEZfUUlOVF9WRUNfU1RBUlQpOwpAQCAtMzAxMCw3ICYjNDM7MzA4OCw3IEBAIGludCBvdHgyX3JlYWxsb2NfbXNpeF92ZWN0b3JzKHN0cnVjdCBvdHgyX25pYyAqcGYpCiAJICogdXB0byBOSVggdmVjdG9yIG9mZnNldC4KIAkgKi8KIAludW1fdmVjID0gaHctJmd0O25peF9tc2l4b2ZmOwotCW51bV92ZWMgJiM0Mzs9IE5JWF9MRl9DSU5UX1ZFQ19TVEFSVCAmIzQzOyBody0mZ3Q7bWF4X3F1ZXVlczsKJiM0MzsJbnVtX3ZlYyAmIzQzOz0gTklYX0xGX1BPSVNPTl9WRUMgJiM0MzsgMTsKIAogCW90eDJfZGlzYWJsZV9tYm94X2ludHIocGYpOwogCXBjaV9mcmVlX2lycV92ZWN0b3JzKGh3LSZndDtwZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3JlZy5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcmVnLmgKaW5kZXggMWNkNTc2ZmQwOWM1Ni4uYzE0NGZkMmJiZTUxZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcmVnLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcmVnLmgKQEAgLTEyMSwxMCAmIzQzOzEyMSwxMiBAQAogI2RlZmluZQlOSVhfTEZfRVJSX0lOVF9XMVMJCShOSVhfTEZCQVNFIHwgMHgyMjgpCiAjZGVmaW5lCU5JWF9MRl9FUlJfSU5UX0VOQV9XMUMJCShOSVhfTEZCQVNFIHwgMHgyMzApCiAjZGVmaW5lCU5JWF9MRl9FUlJfSU5UX0VOQV9XMVMJCShOSVhfTEZCQVNFIHwgMHgyMzgpCiYjNDM7I2RlZmluZQlOSVhfTEZfRVJSX0lOVF9NQVNLCQlHRU5NQVNLX1VMTCgzMSwgMCkKICNkZWZpbmUJTklYX0xGX1JBUwkJCShOSVhfTEZCQVNFIHwgMHgyNDApCiAjZGVmaW5lCU5JWF9MRl9SQVNfVzFTCQkJKE5JWF9MRkJBU0UgfCAweDI0OCkKICNkZWZpbmUJTklYX0xGX1JBU19FTkFfVzFDCQkoTklYX0xGQkFTRSB8IDB4MjUwKQogI2RlZmluZQlOSVhfTEZfUkFTX0VOQV9XMVMJCShOSVhfTEZCQVNFIHwgMHgyNTgpCiYjNDM7I2RlZmluZQlOSVhfTEZfUkFTX01BU0sJCQlHRU5NQVNLX1VMTCgxMCwgMCkKICNkZWZpbmUJTklYX0xGX1NRX09QX0VSUl9EQkcJCShOSVhfTEZCQVNFIHwgMHgyNjApCiAjZGVmaW5lCU5JWF9MRl9NTlFfRVJSX0RCRwkJKE5JWF9MRkJBU0UgfCAweDI3MCkKICNkZWZpbmUJTklYX0xGX1NFTkRfRVJSX0RCRwkJKE5JWF9MRkJBU0UgfCAweDI4MCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jCmluZGV4IGIwMjJmNTJjNjg0NTAuLjJhNTYzMDU2MWIxMmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYwpAQCAtNTU0LDcgJiM0Mzs1NTQsNyBAQCBzdGF0aWMgaW50IG90eDJ2Zl9yZWFsbG9jX21zaXhfdmVjdG9ycyhzdHJ1Y3Qgb3R4Ml9uaWMgKnZmKQogCWludCBudW1fdmVjLCBlcnI7CiAKIAludW1fdmVjID0gaHctJmd0O25peF9tc2l4b2ZmOwotCW51bV92ZWMgJiM0Mzs9IE5JWF9MRl9DSU5UX1ZFQ19TVEFSVCAmIzQzOyBody0mZ3Q7bWF4X3F1ZXVlczsKJiM0MzsJbnVtX3ZlYyAmIzQzOz0gTklYX0xGX1BPSVNPTl9WRUMgJiM0MzsgMTsKIAogCW90eDJ2Zl9kaXNhYmxlX21ib3hfaW50cih2Zik7CiAJcGNpX2ZyZWVfaXJxX3ZlY3RvcnMoaHctJmd0O3BkZXYpOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMiAxODozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NjIyCgkJCQkJCQlvdXRwdXQ6IDQ5CgkJCQkJCQl0aG91Z2h0czogNDYzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgT2N0ZW9uVFgyIE5JQyBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyB0aGUgT2N0ZW9uVFgyIE5JQyBkcml2ZXIsIHNwZWNpZmljYWxseSBmaWxlcyB3aXRoaW4gdGhlIE1hcnZlbGwgYG9jdGVvbnR4MmAgZGlyZWN0b3J5OiBgb3R4Ml9wZi5jYCwgYG90eDJfcmVnLmhgLCBhbmQgYG90eDJfdmYuY2AuIEl0JiMzOTtzIGludHJvZHVjaW5nIG5ldyBpbnRlcnJ1cHQgaGFuZGxlcnMsIGBvdHgyX25peGxmX2Vycl9pbnRyX2hhbmRsZXJgIGFuZCBgb3R4Ml9uaXhsZl9wb2lzb25faW50cl9oYW5kbGVyYCwgd2hpY2ggaXMgc3RhbmRhcmQgcHJhY3RpY2UgZm9yIGhhbmRsaW5nIG5ldyBlcnJvcnMgb3IgY29uZGl0aW9ucy4gVGhlIGhhbmRsZXJzIGFyZSBiZWluZyByZWdpc3RlcmVkIGluIGBvdHgyX29wZW5gIGFuZCBmcmVlZCBpbiBgb3R4Ml9zdG9wYCwgYXMgZXhwZWN0ZWQsIGFuZCBkdXJpbmcgZXJyb3IgaGFuZGxpbmcsIHRoYXQmIzM5O3MgY2xlYW4gYW5kIHNhZmUuIFBsdXMsIGl0JiMzOTtzIHVwZGF0aW5nIHRoZSBNU0ktWCB2ZWN0b3IgYWxsb2NhdGlvbi9kZWFsbG9jYXRpb24gbG9naWMgaW4gYG90eDJfcmVhbGxvY19tc2l4X3ZlY3RvcnNgIGFuZCB0aGUgVkYgY291bnRlcnBhcnQgYXMgd2VsbC4KCk5vdywgdGhlIHF1ZXN0aW9uIGlzIHdoZXRoZXIgdGhpcyBpcyB3b3J0aCBmdXp6aW5nLiBUaGUgaW5zdHJ1Y3Rpb25zIHNheSB0byBza2lwIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGNhcmRzIHRoYXQgYXJlbiYjMzk7dCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGlzbiYjMzk7dCB0aGUgT2N0ZW9uVFgyIGdlbmVyYWxseSBhIHBoeXNpY2FsLCBkZWRpY2F0ZWQgaGFyZHdhcmUgTklDPyBJIGRvbiYjMzk7dCByZWNhbGwgc2VlaW5nIGl0IGNvbW1vbmx5IGVtdWxhdGVkIHdpdGhpbiBhIHN0YW5kYXJkIFFFTVUgc2V0dXAuIEkgbmVlZCB0byBiZSBzdXJlLiBMZXQmIzM5O3MgZGlnIGRlZXBlci4KClRoZSBmYWN0IHRoYXQgaXQmIzM5O3MgdXNpbmcgdGhpbmdzIGxpa2UgYHBjaV9pcnFfdmVjdG9yYCBhbmQgcmVmZXJlbmNpbmcgYHBmLSZndDtwZGV2YCBpbiBgb3R4Ml9wZi5jYCBzdHJvbmdseSBzdWdnZXN0cyBpdCYjMzk7cyBhIFBDSSBkZXZpY2UuIEkgc2hvdWxkIHByb2JhYmx5IHF1aWNrbHkgZG91YmxlLWNoZWNrIHRoYXQgYG90eDJfcGYuY2AgaW5jbHVkZXMgYSBgcGNpX2RyaXZlcmAgc3RydWN0dXJlIHRvIGNvbmZpcm0gdGhhdCBpdCYjMzk7cyBhIFBDSSBkcml2ZXIgYW5kIG5vdCBzb21lIG90aGVyIHR5cGUgb2YgbmV0d29yayBjYXJkLiBUaGF0IHNob3VsZCBzb2xpZGlmeSB3aGV0aGVyIGl0IGlzIGEgcGh5c2ljYWwgZGV2aWNlIHRoYXQgaXMgbm90IHR5cGljYWxseSBlbXVsYXRlZC4gSWYgaXQgaXMsIHRoZW4gSSBjYW4gY29uZmlkZW50bHkgY2xhc3NpZnkgdGhpcyBwYXRjaCBhcyBub3Qgd29ydGggZnV6emluZywgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGluc3RydWN0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMiAxODozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwY2lfZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jPTM1ODc9c3RhdGljIHZvaWQgb3R4Ml9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYy0zNjQ5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYzozNjUwOnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBvdHgyX3BmX2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmMtMzY1MS1cdC5uYW1lID0gRFJWX05BTUUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTIgMTg6MzM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTczMgoJCQkJCQkJb3V0cHV0OiA4OAoJCQkJCQkJdGhvdWdodHM6IDcxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlBDSSBEcml2ZXIgV29ydGhpbmVzcyBBc3Nlc3NtZW50KioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGRyaXZlci4gWWVwLCBkZWZpbml0ZWx5IGEgUENJIGRyaXZlci4gVGhlIG5leHQgcXVlc3Rpb24gaXMsIGlzIHRoaXMgZHJpdmVyIHJ1bm5pbmcgb24gYSBzdGFuZGFyZCBlbXVsYXRlZCBkZXZpY2UgaW4gUUVNVT8gSSBoYXZlIHRvIGJlIHRob3JvdWdoIGhlcmUuIEhtbSwgdGhlIE9jdGVvblRYMi4uLiBubywgdGhhdCYjMzk7cyBub3QgYSBjb21tb24gUUVNVSBlbXVsYXRlZCBkZXZpY2UuIEdpdmVuIHRoYXQsIHRoZSBjb2RlIHBhdGhzIHdpdGhpbiB0aGlzIGRyaXZlciBhcmUgc2ltcGx5IGluYWNjZXNzaWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IsIGNyaXRpY2FsbHksIFFFTVUuIFRoYXQgbWVhbnMgdHJ5aW5nIHRvIGZ1enogdGhpcyB0aGluZyBpcyBhIG5vbi1zdGFydGVyIGluIG15IHVzdWFsIHRlc3RpbmcgZW52aXJvbm1lbnRzLiBUaGVyZWZvcmUsIGFmdGVyIGNhcmVmdWwgY29uc2lkZXJhdGlvbiwgSSYjMzk7bSBzZXR0aW5nIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJdCYjMzk7cyBqdXN0IG5vdCBmZWFzaWJsZSB3aXRoIGN1cnJlbnQgaW5mcmFzdHJ1Y3R1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTIgMTg6MzM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWFydmVsbCBPY3Rlb25UWDIgTklDIGRyaXZlciAob2N0ZW9udHgyKSwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBoYXJkd2FyZSBkZXZpY2Ugbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cy4gVGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgY2Fubm90IGJlIHJlYWNoZWQgZHVyaW5nIGZ1enppbmcgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIE5JQyBkcml2ZXIgKG9jdGVvbnR4MiksIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgaGFyZHdhcmUgZGV2aWNlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudHMuIFRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGNhbm5vdCBiZSByZWFjaGVkIGR1cmluZyBmdXp6aW5nIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTIgMTg6MzM8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEyVDE4OjMzOjI3LjM3MzUwMTY5WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE5OTk2MjYxNTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWFydmVsbCBPY3Rlb25UWDIgTklDIGRyaXZlciAob2N0ZW9udHgyKSwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBoYXJkd2FyZSBkZXZpY2Ugbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cy4gVGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgY2Fubm90IGJlIHJlYWNoZWQgZHVyaW5nIGZ1enppbmcgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTJUMTg6MzM6MjcuMzczNTA2MjlaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM4MTkxNTI5MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDM4ZmE1NDg2MThlYzkyOTU1MjA5YTJkNWMwZWMwYjJkMGE4NmIzMzFcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFdlZCBBdWcgMTIgMTg6MzM6MjYgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmNcXG5pbmRleCBjOTk1ZjI5MDA4NTkwLi42MWIwMzM0ZDBiNmVmIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jXFxuQEAgLTE1MjQsNiArMTUyNCwzNCBAQCBpcnFyZXR1cm5fdCBvdHgyX2NxX2ludHJfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpjcV9pcnEpXFxuIH1cXG4gRVhQT1JUX1NZTUJPTChvdHgyX2NxX2ludHJfaGFuZGxlcik7XFxuIFxcbitzdGF0aWMgaXJxcmV0dXJuX3Qgb3R4Ml9uaXhsZl9lcnJfaW50cl9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRhdGEpXFxuK3tcXG4rXFx0c3RydWN0IG90eDJfbmljICpwZiA9IGRhdGE7XFxuK1xcdHU2NCByZWd2YWw7XFxuK1xcbitcXHQvKiBDbGVhciBpbnRlcnJ1cHQgKi9cXG4rXFx0cmVndmFsID0gb3R4Ml9yZWFkNjQocGYsIE5JWF9MRl9FUlJfSU5UKTtcXG4rXFx0b3R4Ml93cml0ZTY0KHBmLCBOSVhfTEZfRVJSX0lOVCwgcmVndmFsKTtcXG4rXFxuK1xcdGRldl9lcnJfcmF0ZWxpbWl0ZWQocGYtXFx1MDAzZWRldiwgXFxcIk5JWExGIEVycm9yIEludGVycnVwdDogMHglbGx4XFxcXG5cXFwiLCByZWd2YWwpO1xcbitcXG4rXFx0cmV0dXJuIElSUV9IQU5ETEVEO1xcbit9XFxuK1xcbitzdGF0aWMgaXJxcmV0dXJuX3Qgb3R4Ml9uaXhsZl9wb2lzb25faW50cl9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRhdGEpXFxuK3tcXG4rXFx0c3RydWN0IG90eDJfbmljICpwZiA9IGRhdGE7XFxuK1xcdHU2NCByZWd2YWw7XFxuK1xcbitcXHQvKiBDbGVhciBpbnRlcnJ1cHQgKi9cXG4rXFx0cmVndmFsID0gb3R4Ml9yZWFkNjQocGYsIE5JWF9MRl9SQVMpO1xcbitcXHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9SQVMsIHJlZ3ZhbCk7XFxuK1xcbitcXHRkZXZfZXJyX3JhdGVsaW1pdGVkKHBmLVxcdTAwM2VkZXYsIFxcXCJOSVhMRiBQb2lzb24gSW50ZXJydXB0OiAweCVsbHhcXFxcblxcXCIsIHJlZ3ZhbCk7XFxuK1xcbitcXHRyZXR1cm4gSVJRX0hBTkRMRUQ7XFxuK31cXG4rXFxuIHZvaWQgb3R4Ml9kaXNhYmxlX25hcGkoc3RydWN0IG90eDJfbmljICpwZilcXG4ge1xcbiBcXHRzdHJ1Y3Qgb3R4Ml9xc2V0ICpxc2V0ID0gXFx1MDAyNnBmLVxcdTAwM2Vxc2V0O1xcbkBAIC0yMDgwLDYgKzIxMDgsMzQgQEAgaW50IG90eDJfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbiBcXG4gXFx0b3R4Ml9zZXRfY2ludHNfYWZmaW5pdHkocGYpO1xcbiBcXG4rXFx0LyogUmVnaXN0ZXIgTklYTEYgZXJyb3IgSVJRIGhhbmRsZXIgKi9cXG4rXFx0dmVjID0gcGYtXFx1MDAzZWh3Lm5peF9tc2l4b2ZmICsgTklYX0xGX0VSUl9WRUM7XFxuK1xcdGlycV9uYW1lID0gXFx1MDAyNnBmLVxcdTAwM2Vody5pcnFfbmFtZVt2ZWMgKiBOQU1FX1NJWkVdO1xcbitcXHRzbnByaW50ZihpcnFfbmFtZSwgTkFNRV9TSVpFLCBcXFwiJXMtbml4bGYtZXJyXFxcIiwgcGYtXFx1MDAzZW5ldGRldi1cXHUwMDNlbmFtZSk7XFxuK1xcdGVyciA9IHJlcXVlc3RfaXJxKHBjaV9pcnFfdmVjdG9yKHBmLVxcdTAwM2VwZGV2LCB2ZWMpLFxcbitcXHRcXHRcXHQgIG90eDJfbml4bGZfZXJyX2ludHJfaGFuZGxlciwgMCwgaXJxX25hbWUsIHBmKTtcXG4rXFx0aWYgKGVycikge1xcbitcXHRcXHRkZXZfZXJyKHBmLVxcdTAwM2VkZXYsXFxuK1xcdFxcdFxcdFxcXCJSVlVQRiVkOiBJUlEgcmVnaXN0cmF0aW9uIGZhaWxlZCBmb3IgTklYTEYgRVJSIHZlY3RvclxcXFxuXFxcIixcXG4rXFx0XFx0XFx0cnZ1X2dldF9wZihwZi1cXHUwMDNlcGRldiwgcGYtXFx1MDAzZXBjaWZ1bmMpKTtcXG4rXFx0XFx0Z290byBlcnJfZnJlZV9jaW50cztcXG4rXFx0fVxcbitcXHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9FUlJfSU5UX0VOQV9XMVMsIE5JWF9MRl9FUlJfSU5UX01BU0spO1xcbitcXG4rXFx0LyogUmVnaXN0ZXIgTklYTEYgUE9JU09OIGludGVycnVwdCBoYW5kbGVyICovXFxuK1xcdHZlYyA9IHBmLVxcdTAwM2Vody5uaXhfbXNpeG9mZiArIE5JWF9MRl9QT0lTT05fVkVDO1xcbitcXHRpcnFfbmFtZSA9IFxcdTAwMjZwZi1cXHUwMDNlaHcuaXJxX25hbWVbdmVjICogTkFNRV9TSVpFXTtcXG4rXFx0c25wcmludGYoaXJxX25hbWUsIE5BTUVfU0laRSwgXFxcIiVzLW5peGxmLXBvaXNvblxcXCIsIHBmLVxcdTAwM2VuZXRkZXYtXFx1MDAzZW5hbWUpO1xcbitcXHRlcnIgPSByZXF1ZXN0X2lycShwY2lfaXJxX3ZlY3RvcihwZi1cXHUwMDNlcGRldiwgdmVjKSxcXG4rXFx0XFx0XFx0ICBvdHgyX25peGxmX3BvaXNvbl9pbnRyX2hhbmRsZXIsIDAsIGlycV9uYW1lLCBwZik7XFxuK1xcdGlmIChlcnIpIHtcXG4rXFx0XFx0ZGV2X2VycihwZi1cXHUwMDNlZGV2LFxcbitcXHRcXHRcXHRcXFwiUlZVUEYlZDogSVJRIHJlZ2lzdHJhdGlvbiBmYWlsZWQgZm9yIE5JWExGIFBPSVNPTiB2ZWN0b3JcXFxcblxcXCIsXFxuK1xcdFxcdFxcdHJ2dV9nZXRfcGYocGYtXFx1MDAzZXBkZXYsIHBmLVxcdTAwM2VwY2lmdW5jKSk7XFxuK1xcdFxcdGdvdG8gZXJyX2ZyZWVfZXJyaW50O1xcbitcXHR9XFxuK1xcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX1JBU19FTkFfVzFTLCBOSVhfTEZfUkFTX01BU0spO1xcbitcXG4gXFx0aWYgKHBmLVxcdTAwM2VmbGFncyBcXHUwMDI2IE9UWDJfRkxBR19SWF9WTEFOX1NVUFBPUlQpXFxuIFxcdFxcdG90eDJfZW5hYmxlX3J4dmxhbihwZiwgdHJ1ZSk7XFxuIFxcbkBAIC0yMTMyLDYgKzIxODgsMTYgQEAgaW50IG90eDJfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbiBcXHRuZXRpZl90eF9zdG9wX2FsbF9xdWV1ZXMobmV0ZGV2KTtcXG4gXFx0bmV0aWZfY2Fycmllcl9vZmYobmV0ZGV2KTtcXG4gXFx0cGYtXFx1MDAzZWZsYWdzIHw9IE9UWDJfRkxBR19JTlRGX0RPV047XFxuK1xcdC8qIGZyZWUgTklYTEYgUE9JU09OIGlycSAqL1xcbitcXHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cXHUwMDNlcGRldixcXG4rXFx0XFx0XFx0ICAgICBwZi1cXHUwMDNlaHcubml4X21zaXhvZmYgKyBOSVhfTEZfUE9JU09OX1ZFQyk7XFxuK1xcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX1JBU19FTkFfVzFDLCBOSVhfTEZfUkFTX01BU0spO1xcbitcXHRmcmVlX2lycSh2ZWMsIHBmKTtcXG4rZXJyX2ZyZWVfZXJyaW50OlxcbitcXHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cXHUwMDNlcGRldixcXG4rXFx0XFx0XFx0ICAgICBwZi1cXHUwMDNlaHcubml4X21zaXhvZmYgKyBOSVhfTEZfRVJSX1ZFQyk7XFxuK1xcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX0VSUl9JTlRfRU5BX1cxQywgTklYX0xGX0VSUl9JTlRfTUFTSyk7XFxuK1xcdGZyZWVfaXJxKHZlYywgcGYpO1xcbiBlcnJfZnJlZV9jaW50czpcXG4gXFx0b3R4Ml9mcmVlX2NpbnRzKHBmLCBxaWR4KTtcXG4gXFx0dmVjID0gcGNpX2lycV92ZWN0b3IocGYtXFx1MDAzZXBkZXYsXFxuQEAgLTIxNzEsNiArMjIzNywxOCBAQCBpbnQgb3R4Ml9zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuIFxcdC8qIENsZWFyIFJTUyBlbmFibGUgZmxhZyAqL1xcbiBcXHRwZi1cXHUwMDNlaHcucnNzX2luZm8uZW5hYmxlID0gZmFsc2U7XFxuIFxcbitcXHQvKiBDbGVhbnVwIE5JWExGIFBvaXNvbiBJUlEgKi9cXG4rXFx0dmVjID0gcGNpX2lycV92ZWN0b3IocGYtXFx1MDAzZXBkZXYsXFxuK1xcdFxcdFxcdCAgICAgcGYtXFx1MDAzZWh3Lm5peF9tc2l4b2ZmICsgTklYX0xGX1BPSVNPTl9WRUMpO1xcbitcXHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9SQVNfRU5BX1cxQywgTklYX0xGX1JBU19NQVNLKTtcXG4rXFx0ZnJlZV9pcnEodmVjLCBwZik7XFxuK1xcbitcXHQvKiBDbGVhbnVwIE5JWExGIEVycm9yIElSUSAqL1xcbitcXHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cXHUwMDNlcGRldixcXG4rXFx0XFx0XFx0ICAgICBwZi1cXHUwMDNlaHcubml4X21zaXhvZmYgKyBOSVhfTEZfRVJSX1ZFQyk7XFxuK1xcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX0VSUl9JTlRfRU5BX1cxQywgTklYX0xGX0VSUl9JTlRfTUFTSyk7XFxuK1xcdGZyZWVfaXJxKHZlYywgcGYpO1xcbitcXG4gXFx0LyogQ2xlYW51cCBRdWV1ZSBJUlEgKi9cXG4gXFx0dmVjID0gcGNpX2lycV92ZWN0b3IocGYtXFx1MDAzZXBkZXYsXFxuIFxcdFxcdFxcdCAgICAgcGYtXFx1MDAzZWh3Lm5peF9tc2l4b2ZmICsgTklYX0xGX1FJTlRfVkVDX1NUQVJUKTtcXG5AQCAtMzAxMCw3ICszMDg4LDcgQEAgaW50IG90eDJfcmVhbGxvY19tc2l4X3ZlY3RvcnMoc3RydWN0IG90eDJfbmljICpwZilcXG4gXFx0ICogdXB0byBOSVggdmVjdG9yIG9mZnNldC5cXG4gXFx0ICovXFxuIFxcdG51bV92ZWMgPSBody1cXHUwMDNlbml4X21zaXhvZmY7XFxuLVxcdG51bV92ZWMgKz0gTklYX0xGX0NJTlRfVkVDX1NUQVJUICsgaHctXFx1MDAzZW1heF9xdWV1ZXM7XFxuK1xcdG51bV92ZWMgKz0gTklYX0xGX1BPSVNPTl9WRUMgKyAxO1xcbiBcXG4gXFx0b3R4Ml9kaXNhYmxlX21ib3hfaW50cihwZik7XFxuIFxcdHBjaV9mcmVlX2lycV92ZWN0b3JzKGh3LVxcdTAwM2VwZGV2KTtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcmVnLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9yZWcuaFxcbmluZGV4IDFjZDU3NmZkMDljNTYuLmMxNDRmZDJiYmU1MWYgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcmVnLmhcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9yZWcuaFxcbkBAIC0xMjEsMTAgKzEyMSwxMiBAQFxcbiAjZGVmaW5lXFx0TklYX0xGX0VSUl9JTlRfVzFTXFx0XFx0KE5JWF9MRkJBU0UgfCAweDIyOClcXG4gI2RlZmluZVxcdE5JWF9MRl9FUlJfSU5UX0VOQV9XMUNcXHRcXHQoTklYX0xGQkFTRSB8IDB4MjMwKVxcbiAjZGVmaW5lXFx0TklYX0xGX0VSUl9JTlRfRU5BX1cxU1xcdFxcdChOSVhfTEZCQVNFIHwgMHgyMzgpXFxuKyNkZWZpbmVcXHROSVhfTEZfRVJSX0lOVF9NQVNLXFx0XFx0R0VOTUFTS19VTEwoMzEsIDApXFxuICNkZWZpbmVcXHROSVhfTEZfUkFTXFx0XFx0XFx0KE5JWF9MRkJBU0UgfCAweDI0MClcXG4gI2RlZmluZVxcdE5JWF9MRl9SQVNfVzFTXFx0XFx0XFx0KE5JWF9MRkJBU0UgfCAweDI0OClcXG4gI2RlZmluZVxcdE5JWF9MRl9SQVNfRU5BX1cxQ1xcdFxcdChOSVhfTEZCQVNFIHwgMHgyNTApXFxuICNkZWZpbmVcXHROSVhfTEZfUkFTX0VOQV9XMVNcXHRcXHQoTklYX0xGQkFTRSB8IDB4MjU4KVxcbisjZGVmaW5lXFx0TklYX0xGX1JBU19NQVNLXFx0XFx0XFx0R0VOTUFTS19VTEwoMTAsIDApXFxuICNkZWZpbmVcXHROSVhfTEZfU1FfT1BfRVJSX0RCR1xcdFxcdChOSVhfTEZCQVNFIHwgMHgyNjApXFxuICNkZWZpbmVcXHROSVhfTEZfTU5RX0VSUl9EQkdcXHRcXHQoTklYX0xGQkFTRSB8IDB4MjcwKVxcbiAjZGVmaW5lXFx0TklYX0xGX1NFTkRfRVJSX0RCR1xcdFxcdChOSVhfTEZCQVNFIHwgMHgyODApXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jXFxuaW5kZXggYjAyMmY1MmM2ODQ1MC4uMmE1NjMwNTYxYjEyYiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuY1xcbkBAIC01NTQsNyArNTU0LDcgQEAgc3RhdGljIGludCBvdHgydmZfcmVhbGxvY19tc2l4X3ZlY3RvcnMoc3RydWN0IG90eDJfbmljICp2ZilcXG4gXFx0aW50IG51bV92ZWMsIGVycjtcXG4gXFxuIFxcdG51bV92ZWMgPSBody1cXHUwMDNlbml4X21zaXhvZmY7XFxuLVxcdG51bV92ZWMgKz0gTklYX0xGX0NJTlRfVkVDX1NUQVJUICsgaHctXFx1MDAzZW1heF9xdWV1ZXM7XFxuK1xcdG51bV92ZWMgKz0gTklYX0xGX1BPSVNPTl9WRUMgKyAxO1xcbiBcXG4gXFx0b3R4MnZmX2Rpc2FibGVfbWJveF9pbnRyKHZmKTtcXG4gXFx0cGNpX2ZyZWVfaXJxX3ZlY3RvcnMoaHctXFx1MDAzZXBkZXYpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMlQxODozMzoyNy43NTYxMzc5MDJaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxMTYxNjk3ODc2MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIE5JQyBkcml2ZXIgKG9jdGVvbnR4MiksIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgaGFyZHdhcmUgZGV2aWNlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudHMuIFRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGNhbm5vdCBiZSByZWFjaGVkIGR1cmluZyBmdXp6aW5nIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDM4ZmE1NDg2MThlYzkyOTU1MjA5YTJkNWMwZWMwYjJkMGE4NmIzMzFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEF1ZyAxMiAxODozMzoyNiAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jXG5pbmRleCBjOTk1ZjI5MDA4NTkwLi42MWIwMzM0ZDBiNmVmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuY1xuQEAgLTE1MjQsNiArMTUyNCwzNCBAQCBpcnFyZXR1cm5fdCBvdHgyX2NxX2ludHJfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpjcV9pcnEpXG4gfVxuIEVYUE9SVF9TWU1CT0wob3R4Ml9jcV9pbnRyX2hhbmRsZXIpO1xuIFxuK3N0YXRpYyBpcnFyZXR1cm5fdCBvdHgyX25peGxmX2Vycl9pbnRyX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGF0YSlcbit7XG4rXHRzdHJ1Y3Qgb3R4Ml9uaWMgKnBmID0gZGF0YTtcbitcdHU2NCByZWd2YWw7XG4rXG4rXHQvKiBDbGVhciBpbnRlcnJ1cHQgKi9cbitcdHJlZ3ZhbCA9IG90eDJfcmVhZDY0KHBmLCBOSVhfTEZfRVJSX0lOVCk7XG4rXHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9FUlJfSU5ULCByZWd2YWwpO1xuK1xuK1x0ZGV2X2Vycl9yYXRlbGltaXRlZChwZi1cdTAwM2VkZXYsIFwiTklYTEYgRXJyb3IgSW50ZXJydXB0OiAweCVsbHhcXG5cIiwgcmVndmFsKTtcbitcbitcdHJldHVybiBJUlFfSEFORExFRDtcbit9XG4rXG4rc3RhdGljIGlycXJldHVybl90IG90eDJfbml4bGZfcG9pc29uX2ludHJfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkYXRhKVxuK3tcbitcdHN0cnVjdCBvdHgyX25pYyAqcGYgPSBkYXRhO1xuK1x0dTY0IHJlZ3ZhbDtcbitcbitcdC8qIENsZWFyIGludGVycnVwdCAqL1xuK1x0cmVndmFsID0gb3R4Ml9yZWFkNjQocGYsIE5JWF9MRl9SQVMpO1xuK1x0b3R4Ml93cml0ZTY0KHBmLCBOSVhfTEZfUkFTLCByZWd2YWwpO1xuK1xuK1x0ZGV2X2Vycl9yYXRlbGltaXRlZChwZi1cdTAwM2VkZXYsIFwiTklYTEYgUG9pc29uIEludGVycnVwdDogMHglbGx4XFxuXCIsIHJlZ3ZhbCk7XG4rXG4rXHRyZXR1cm4gSVJRX0hBTkRMRUQ7XG4rfVxuK1xuIHZvaWQgb3R4Ml9kaXNhYmxlX25hcGkoc3RydWN0IG90eDJfbmljICpwZilcbiB7XG4gXHRzdHJ1Y3Qgb3R4Ml9xc2V0ICpxc2V0ID0gXHUwMDI2cGYtXHUwMDNlcXNldDtcbkBAIC0yMDgwLDYgKzIxMDgsMzQgQEAgaW50IG90eDJfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuIFxuIFx0b3R4Ml9zZXRfY2ludHNfYWZmaW5pdHkocGYpO1xuIFxuK1x0LyogUmVnaXN0ZXIgTklYTEYgZXJyb3IgSVJRIGhhbmRsZXIgKi9cbitcdHZlYyA9IHBmLVx1MDAzZWh3Lm5peF9tc2l4b2ZmICsgTklYX0xGX0VSUl9WRUM7XG4rXHRpcnFfbmFtZSA9IFx1MDAyNnBmLVx1MDAzZWh3LmlycV9uYW1lW3ZlYyAqIE5BTUVfU0laRV07XG4rXHRzbnByaW50ZihpcnFfbmFtZSwgTkFNRV9TSVpFLCBcIiVzLW5peGxmLWVyclwiLCBwZi1cdTAwM2VuZXRkZXYtXHUwMDNlbmFtZSk7XG4rXHRlcnIgPSByZXF1ZXN0X2lycShwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LCB2ZWMpLFxuK1x0XHRcdCAgb3R4Ml9uaXhsZl9lcnJfaW50cl9oYW5kbGVyLCAwLCBpcnFfbmFtZSwgcGYpO1xuK1x0aWYgKGVycikge1xuK1x0XHRkZXZfZXJyKHBmLVx1MDAzZWRldixcbitcdFx0XHRcIlJWVVBGJWQ6IElSUSByZWdpc3RyYXRpb24gZmFpbGVkIGZvciBOSVhMRiBFUlIgdmVjdG9yXFxuXCIsXG4rXHRcdFx0cnZ1X2dldF9wZihwZi1cdTAwM2VwZGV2LCBwZi1cdTAwM2VwY2lmdW5jKSk7XG4rXHRcdGdvdG8gZXJyX2ZyZWVfY2ludHM7XG4rXHR9XG4rXHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9FUlJfSU5UX0VOQV9XMVMsIE5JWF9MRl9FUlJfSU5UX01BU0spO1xuK1xuK1x0LyogUmVnaXN0ZXIgTklYTEYgUE9JU09OIGludGVycnVwdCBoYW5kbGVyICovXG4rXHR2ZWMgPSBwZi1cdTAwM2Vody5uaXhfbXNpeG9mZiArIE5JWF9MRl9QT0lTT05fVkVDO1xuK1x0aXJxX25hbWUgPSBcdTAwMjZwZi1cdTAwM2Vody5pcnFfbmFtZVt2ZWMgKiBOQU1FX1NJWkVdO1xuK1x0c25wcmludGYoaXJxX25hbWUsIE5BTUVfU0laRSwgXCIlcy1uaXhsZi1wb2lzb25cIiwgcGYtXHUwMDNlbmV0ZGV2LVx1MDAzZW5hbWUpO1xuK1x0ZXJyID0gcmVxdWVzdF9pcnEocGNpX2lycV92ZWN0b3IocGYtXHUwMDNlcGRldiwgdmVjKSxcbitcdFx0XHQgIG90eDJfbml4bGZfcG9pc29uX2ludHJfaGFuZGxlciwgMCwgaXJxX25hbWUsIHBmKTtcbitcdGlmIChlcnIpIHtcbitcdFx0ZGV2X2VycihwZi1cdTAwM2VkZXYsXG4rXHRcdFx0XCJSVlVQRiVkOiBJUlEgcmVnaXN0cmF0aW9uIGZhaWxlZCBmb3IgTklYTEYgUE9JU09OIHZlY3RvclxcblwiLFxuK1x0XHRcdHJ2dV9nZXRfcGYocGYtXHUwMDNlcGRldiwgcGYtXHUwMDNlcGNpZnVuYykpO1xuK1x0XHRnb3RvIGVycl9mcmVlX2VycmludDtcbitcdH1cbitcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX1JBU19FTkFfVzFTLCBOSVhfTEZfUkFTX01BU0spO1xuK1xuIFx0aWYgKHBmLVx1MDAzZWZsYWdzIFx1MDAyNiBPVFgyX0ZMQUdfUlhfVkxBTl9TVVBQT1JUKVxuIFx0XHRvdHgyX2VuYWJsZV9yeHZsYW4ocGYsIHRydWUpO1xuIFxuQEAgLTIxMzIsNiArMjE4OCwxNiBAQCBpbnQgb3R4Ml9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4gXHRuZXRpZl90eF9zdG9wX2FsbF9xdWV1ZXMobmV0ZGV2KTtcbiBcdG5ldGlmX2NhcnJpZXJfb2ZmKG5ldGRldik7XG4gXHRwZi1cdTAwM2VmbGFncyB8PSBPVFgyX0ZMQUdfSU5URl9ET1dOO1xuK1x0LyogZnJlZSBOSVhMRiBQT0lTT04gaXJxICovXG4rXHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LFxuK1x0XHRcdCAgICAgcGYtXHUwMDNlaHcubml4X21zaXhvZmYgKyBOSVhfTEZfUE9JU09OX1ZFQyk7XG4rXHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9SQVNfRU5BX1cxQywgTklYX0xGX1JBU19NQVNLKTtcbitcdGZyZWVfaXJxKHZlYywgcGYpO1xuK2Vycl9mcmVlX2VycmludDpcbitcdHZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLVx1MDAzZXBkZXYsXG4rXHRcdFx0ICAgICBwZi1cdTAwM2Vody5uaXhfbXNpeG9mZiArIE5JWF9MRl9FUlJfVkVDKTtcbitcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX0VSUl9JTlRfRU5BX1cxQywgTklYX0xGX0VSUl9JTlRfTUFTSyk7XG4rXHRmcmVlX2lycSh2ZWMsIHBmKTtcbiBlcnJfZnJlZV9jaW50czpcbiBcdG90eDJfZnJlZV9jaW50cyhwZiwgcWlkeCk7XG4gXHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LFxuQEAgLTIxNzEsNiArMjIzNywxOCBAQCBpbnQgb3R4Ml9zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4gXHQvKiBDbGVhciBSU1MgZW5hYmxlIGZsYWcgKi9cbiBcdHBmLVx1MDAzZWh3LnJzc19pbmZvLmVuYWJsZSA9IGZhbHNlO1xuIFxuK1x0LyogQ2xlYW51cCBOSVhMRiBQb2lzb24gSVJRICovXG4rXHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LFxuK1x0XHRcdCAgICAgcGYtXHUwMDNlaHcubml4X21zaXhvZmYgKyBOSVhfTEZfUE9JU09OX1ZFQyk7XG4rXHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9SQVNfRU5BX1cxQywgTklYX0xGX1JBU19NQVNLKTtcbitcdGZyZWVfaXJxKHZlYywgcGYpO1xuK1xuK1x0LyogQ2xlYW51cCBOSVhMRiBFcnJvciBJUlEgKi9cbitcdHZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLVx1MDAzZXBkZXYsXG4rXHRcdFx0ICAgICBwZi1cdTAwM2Vody5uaXhfbXNpeG9mZiArIE5JWF9MRl9FUlJfVkVDKTtcbitcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX0VSUl9JTlRfRU5BX1cxQywgTklYX0xGX0VSUl9JTlRfTUFTSyk7XG4rXHRmcmVlX2lycSh2ZWMsIHBmKTtcbitcbiBcdC8qIENsZWFudXAgUXVldWUgSVJRICovXG4gXHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LFxuIFx0XHRcdCAgICAgcGYtXHUwMDNlaHcubml4X21zaXhvZmYgKyBOSVhfTEZfUUlOVF9WRUNfU1RBUlQpO1xuQEAgLTMwMTAsNyArMzA4OCw3IEBAIGludCBvdHgyX3JlYWxsb2NfbXNpeF92ZWN0b3JzKHN0cnVjdCBvdHgyX25pYyAqcGYpXG4gXHQgKiB1cHRvIE5JWCB2ZWN0b3Igb2Zmc2V0LlxuIFx0ICovXG4gXHRudW1fdmVjID0gaHctXHUwMDNlbml4X21zaXhvZmY7XG4tXHRudW1fdmVjICs9IE5JWF9MRl9DSU5UX1ZFQ19TVEFSVCArIGh3LVx1MDAzZW1heF9xdWV1ZXM7XG4rXHRudW1fdmVjICs9IE5JWF9MRl9QT0lTT05fVkVDICsgMTtcbiBcbiBcdG90eDJfZGlzYWJsZV9tYm94X2ludHIocGYpO1xuIFx0cGNpX2ZyZWVfaXJxX3ZlY3RvcnMoaHctXHUwMDNlcGRldik7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcmVnLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9yZWcuaFxuaW5kZXggMWNkNTc2ZmQwOWM1Ni4uYzE0NGZkMmJiZTUxZiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3JlZy5oXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9yZWcuaFxuQEAgLTEyMSwxMCArMTIxLDEyIEBAXG4gI2RlZmluZVx0TklYX0xGX0VSUl9JTlRfVzFTXHRcdChOSVhfTEZCQVNFIHwgMHgyMjgpXG4gI2RlZmluZVx0TklYX0xGX0VSUl9JTlRfRU5BX1cxQ1x0XHQoTklYX0xGQkFTRSB8IDB4MjMwKVxuICNkZWZpbmVcdE5JWF9MRl9FUlJfSU5UX0VOQV9XMVNcdFx0KE5JWF9MRkJBU0UgfCAweDIzOClcbisjZGVmaW5lXHROSVhfTEZfRVJSX0lOVF9NQVNLXHRcdEdFTk1BU0tfVUxMKDMxLCAwKVxuICNkZWZpbmVcdE5JWF9MRl9SQVNcdFx0XHQoTklYX0xGQkFTRSB8IDB4MjQwKVxuICNkZWZpbmVcdE5JWF9MRl9SQVNfVzFTXHRcdFx0KE5JWF9MRkJBU0UgfCAweDI0OClcbiAjZGVmaW5lXHROSVhfTEZfUkFTX0VOQV9XMUNcdFx0KE5JWF9MRkJBU0UgfCAweDI1MClcbiAjZGVmaW5lXHROSVhfTEZfUkFTX0VOQV9XMVNcdFx0KE5JWF9MRkJBU0UgfCAweDI1OClcbisjZGVmaW5lXHROSVhfTEZfUkFTX01BU0tcdFx0XHRHRU5NQVNLX1VMTCgxMCwgMClcbiAjZGVmaW5lXHROSVhfTEZfU1FfT1BfRVJSX0RCR1x0XHQoTklYX0xGQkFTRSB8IDB4MjYwKVxuICNkZWZpbmVcdE5JWF9MRl9NTlFfRVJSX0RCR1x0XHQoTklYX0xGQkFTRSB8IDB4MjcwKVxuICNkZWZpbmVcdE5JWF9MRl9TRU5EX0VSUl9EQkdcdFx0KE5JWF9MRkJBU0UgfCAweDI4MClcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuY1xuaW5kZXggYjAyMmY1MmM2ODQ1MC4uMmE1NjMwNTYxYjEyYiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmNcbkBAIC01NTQsNyArNTU0LDcgQEAgc3RhdGljIGludCBvdHgydmZfcmVhbGxvY19tc2l4X3ZlY3RvcnMoc3RydWN0IG90eDJfbmljICp2ZilcbiBcdGludCBudW1fdmVjLCBlcnI7XG4gXG4gXHRudW1fdmVjID0gaHctXHUwMDNlbml4X21zaXhvZmY7XG4tXHRudW1fdmVjICs9IE5JWF9MRl9DSU5UX1ZFQ19TVEFSVCArIGh3LVx1MDAzZW1heF9xdWV1ZXM7XG4rXHRudW1fdmVjICs9IE5JWF9MRl9QT0lTT05fVkVDICsgMTtcbiBcbiBcdG90eDJ2Zl9kaXNhYmxlX21ib3hfaW50cih2Zik7XG4gXHRwY2lfZnJlZV9pcnFfdmVjdG9ycyhody1cdTAwM2VwZGV2KTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEyVDE4OjMzOjI3Ljc1NjEzOTE1MVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc0MDA1MjgzMzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBPY3Rlb25UWDIgTklDIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgdGhlIE9jdGVvblRYMiBOSUMgZHJpdmVyLCBzcGVjaWZpY2FsbHkgZmlsZXMgd2l0aGluIHRoZSBNYXJ2ZWxsIGBvY3Rlb250eDJgIGRpcmVjdG9yeTogYG90eDJfcGYuY2AsIGBvdHgyX3JlZy5oYCwgYW5kIGBvdHgyX3ZmLmNgLiBJdCdzIGludHJvZHVjaW5nIG5ldyBpbnRlcnJ1cHQgaGFuZGxlcnMsIGBvdHgyX25peGxmX2Vycl9pbnRyX2hhbmRsZXJgIGFuZCBgb3R4Ml9uaXhsZl9wb2lzb25faW50cl9oYW5kbGVyYCwgd2hpY2ggaXMgc3RhbmRhcmQgcHJhY3RpY2UgZm9yIGhhbmRsaW5nIG5ldyBlcnJvcnMgb3IgY29uZGl0aW9ucy4gVGhlIGhhbmRsZXJzIGFyZSBiZWluZyByZWdpc3RlcmVkIGluIGBvdHgyX29wZW5gIGFuZCBmcmVlZCBpbiBgb3R4Ml9zdG9wYCwgYXMgZXhwZWN0ZWQsIGFuZCBkdXJpbmcgZXJyb3IgaGFuZGxpbmcsIHRoYXQncyBjbGVhbiBhbmQgc2FmZS4gUGx1cywgaXQncyB1cGRhdGluZyB0aGUgTVNJLVggdmVjdG9yIGFsbG9jYXRpb24vZGVhbGxvY2F0aW9uIGxvZ2ljIGluIGBvdHgyX3JlYWxsb2NfbXNpeF92ZWN0b3JzYCBhbmQgdGhlIFZGIGNvdW50ZXJwYXJ0IGFzIHdlbGwuXG5cbk5vdywgdGhlIHF1ZXN0aW9uIGlzIHdoZXRoZXIgdGhpcyBpcyB3b3J0aCBmdXp6aW5nLiBUaGUgaW5zdHJ1Y3Rpb25zIHNheSB0byBza2lwIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGNhcmRzIHRoYXQgYXJlbid0IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuIE15IGluaXRpYWwgdGhvdWdodCBpcywgaXNuJ3QgdGhlIE9jdGVvblRYMiBnZW5lcmFsbHkgYSBwaHlzaWNhbCwgZGVkaWNhdGVkIGhhcmR3YXJlIE5JQz8gSSBkb24ndCByZWNhbGwgc2VlaW5nIGl0IGNvbW1vbmx5IGVtdWxhdGVkIHdpdGhpbiBhIHN0YW5kYXJkIFFFTVUgc2V0dXAuIEkgbmVlZCB0byBiZSBzdXJlLiBMZXQncyBkaWcgZGVlcGVyLlxuXG5UaGUgZmFjdCB0aGF0IGl0J3MgdXNpbmcgdGhpbmdzIGxpa2UgYHBjaV9pcnFfdmVjdG9yYCBhbmQgcmVmZXJlbmNpbmcgYHBmLVx1MDAzZXBkZXZgIGluIGBvdHgyX3BmLmNgIHN0cm9uZ2x5IHN1Z2dlc3RzIGl0J3MgYSBQQ0kgZGV2aWNlLiBJIHNob3VsZCBwcm9iYWJseSBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGF0IGBvdHgyX3BmLmNgIGluY2x1ZGVzIGEgYHBjaV9kcml2ZXJgIHN0cnVjdHVyZSB0byBjb25maXJtIHRoYXQgaXQncyBhIFBDSSBkcml2ZXIgYW5kIG5vdCBzb21lIG90aGVyIHR5cGUgb2YgbmV0d29yayBjYXJkLiBUaGF0IHNob3VsZCBzb2xpZGlmeSB3aGV0aGVyIGl0IGlzIGEgcGh5c2ljYWwgZGV2aWNlIHRoYXQgaXMgbm90IHR5cGljYWxseSBlbXVsYXRlZC4gSWYgaXQgaXMsIHRoZW4gSSBjYW4gY29uZmlkZW50bHkgY2xhc3NpZnkgdGhpcyBwYXRjaCBhcyBub3Qgd29ydGggZnV6emluZywgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGluc3RydWN0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDYyMiwiT3V0cHV0VG9rZW5zIjo0OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ2MywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEyVDE4OjMzOjM1LjE1NjY3MTM1OVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NDE4OTM1NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwY2lfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYz0zNTg3PXN0YXRpYyB2b2lkIG90eDJfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYy0zNjQ5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM6MzY1MDpzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgb3R4Ml9wZl9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYy0zNjUxLVxcdC5uYW1lID0gRFJWX05BTUUsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEyVDE4OjMzOjM1LjIwMDg2Njk4NVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQxNzIyMjQ0NTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqUENJIERyaXZlciBXb3J0aGluZXNzIEFzc2Vzc21lbnQqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGRyaXZlci4gWWVwLCBkZWZpbml0ZWx5IGEgUENJIGRyaXZlci4gVGhlIG5leHQgcXVlc3Rpb24gaXMsIGlzIHRoaXMgZHJpdmVyIHJ1bm5pbmcgb24gYSBzdGFuZGFyZCBlbXVsYXRlZCBkZXZpY2UgaW4gUUVNVT8gSSBoYXZlIHRvIGJlIHRob3JvdWdoIGhlcmUuIEhtbSwgdGhlIE9jdGVvblRYMi4uLiBubywgdGhhdCdzIG5vdCBhIGNvbW1vbiBRRU1VIGVtdWxhdGVkIGRldmljZS4gR2l2ZW4gdGhhdCwgdGhlIGNvZGUgcGF0aHMgd2l0aGluIHRoaXMgZHJpdmVyIGFyZSBzaW1wbHkgaW5hY2Nlc3NpYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciwgY3JpdGljYWxseSwgUUVNVS4gVGhhdCBtZWFucyB0cnlpbmcgdG8gZnV6eiB0aGlzIHRoaW5nIGlzIGEgbm9uLXN0YXJ0ZXIgaW4gbXkgdXN1YWwgdGVzdGluZyBlbnZpcm9ubWVudHMuIFRoZXJlZm9yZSwgYWZ0ZXIgY2FyZWZ1bCBjb25zaWRlcmF0aW9uLCBJJ20gc2V0dGluZyBgV29ydGhGdXp6aW5nPWZhbHNlYC4gSXQncyBqdXN0IG5vdCBmZWFzaWJsZSB3aXRoIGN1cnJlbnQgaW5mcmFzdHJ1Y3R1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU3MzIsIk91dHB1dFRva2VucyI6ODgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xMlQxODozMzozOS4zNzMwOTUwNjFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5NzcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgZHJpdmVyIChvY3Rlb250eDIpLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGRldmljZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnRzLiBUaGUgbW9kaWZpZWQgY29kZSBwYXRocyBjYW5ub3QgYmUgcmVhY2hlZCBkdXJpbmcgZnV6emluZyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWFydmVsbCBPY3Rlb25UWDIgTklDIGRyaXZlciAob2N0ZW9udHgyKSwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBoYXJkd2FyZSBkZXZpY2Ugbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cy4gVGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgY2Fubm90IGJlIHJlYWNoZWQgZHVyaW5nIGZ1enppbmcgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTJUMTg6MzM6MzkuMzczMTE4MzcxWiIsIlNlcSI6NywiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzNTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowm7kgd[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-12 18:12:16 +0000 UTC FinishedAt: 2026-08-12 18:33:40 +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+CgkJCTx0ZD4yMDI2LzA4LzEyIDE4OjMzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIE5JQyBkcml2ZXIgKG9jdGVvbnR4MiksIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgaGFyZHdhcmUgZGV2aWNlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudHMuIFRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGNhbm5vdCBiZSByZWFjaGVkIGR1cmluZyBmdXp6aW5nIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTIgMTg6MzM8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAzOGZhNTQ4NjE4ZWM5Mjk1NTIwOWEyZDVjMGVjMGIyZDBhODZiMzMxXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBBdWcgMTIgMTg6MzM6MjYgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmNcbmluZGV4IGM5OTVmMjkwMDg1OTAuLjYxYjAzMzRkMGI2ZWYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jXG5AQCAtMTUyNCw2ICYjNDM7MTUyNCwzNCBAQCBpcnFyZXR1cm5fdCBvdHgyX2NxX2ludHJfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpjcV9pcnEpXG4gfVxuIEVYUE9SVF9TWU1CT0wob3R4Ml9jcV9pbnRyX2hhbmRsZXIpO1xuIFxuJiM0MztzdGF0aWMgaXJxcmV0dXJuX3Qgb3R4Ml9uaXhsZl9lcnJfaW50cl9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRhdGEpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3Qgb3R4Ml9uaWMgKnBmID0gZGF0YTtcbiYjNDM7XHR1NjQgcmVndmFsO1xuJiM0MztcbiYjNDM7XHQvKiBDbGVhciBpbnRlcnJ1cHQgKi9cbiYjNDM7XHRyZWd2YWwgPSBvdHgyX3JlYWQ2NChwZiwgTklYX0xGX0VSUl9JTlQpO1xuJiM0MztcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX0VSUl9JTlQsIHJlZ3ZhbCk7XG4mIzQzO1xuJiM0MztcdGRldl9lcnJfcmF0ZWxpbWl0ZWQocGYtXHUwMDNlZGV2LCBcJiMzNDtOSVhMRiBFcnJvciBJbnRlcnJ1cHQ6IDB4JWxseFxcblwmIzM0OywgcmVndmFsKTtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIElSUV9IQU5ETEVEO1xuJiM0Mzt9XG4mIzQzO1xuJiM0MztzdGF0aWMgaXJxcmV0dXJuX3Qgb3R4Ml9uaXhsZl9wb2lzb25faW50cl9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRhdGEpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3Qgb3R4Ml9uaWMgKnBmID0gZGF0YTtcbiYjNDM7XHR1NjQgcmVndmFsO1xuJiM0MztcbiYjNDM7XHQvKiBDbGVhciBpbnRlcnJ1cHQgKi9cbiYjNDM7XHRyZWd2YWwgPSBvdHgyX3JlYWQ2NChwZiwgTklYX0xGX1JBUyk7XG4mIzQzO1x0b3R4Ml93cml0ZTY0KHBmLCBOSVhfTEZfUkFTLCByZWd2YWwpO1xuJiM0MztcbiYjNDM7XHRkZXZfZXJyX3JhdGVsaW1pdGVkKHBmLVx1MDAzZWRldiwgXCYjMzQ7TklYTEYgUG9pc29uIEludGVycnVwdDogMHglbGx4XFxuXCYjMzQ7LCByZWd2YWwpO1xuJiM0MztcbiYjNDM7XHRyZXR1cm4gSVJRX0hBTkRMRUQ7XG4mIzQzO31cbiYjNDM7XG4gdm9pZCBvdHgyX2Rpc2FibGVfbmFwaShzdHJ1Y3Qgb3R4Ml9uaWMgKnBmKVxuIHtcbiBcdHN0cnVjdCBvdHgyX3FzZXQgKnFzZXQgPSBcdTAwMjZwZi1cdTAwM2Vxc2V0O1xuQEAgLTIwODAsNiAmIzQzOzIxMDgsMzQgQEAgaW50IG90eDJfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuIFxuIFx0b3R4Ml9zZXRfY2ludHNfYWZmaW5pdHkocGYpO1xuIFxuJiM0MztcdC8qIFJlZ2lzdGVyIE5JWExGIGVycm9yIElSUSBoYW5kbGVyICovXG4mIzQzO1x0dmVjID0gcGYtXHUwMDNlaHcubml4X21zaXhvZmYgJiM0MzsgTklYX0xGX0VSUl9WRUM7XG4mIzQzO1x0aXJxX25hbWUgPSBcdTAwMjZwZi1cdTAwM2Vody5pcnFfbmFtZVt2ZWMgKiBOQU1FX1NJWkVdO1xuJiM0MztcdHNucHJpbnRmKGlycV9uYW1lLCBOQU1FX1NJWkUsIFwmIzM0OyVzLW5peGxmLWVyclwmIzM0OywgcGYtXHUwMDNlbmV0ZGV2LVx1MDAzZW5hbWUpO1xuJiM0MztcdGVyciA9IHJlcXVlc3RfaXJxKHBjaV9pcnFfdmVjdG9yKHBmLVx1MDAzZXBkZXYsIHZlYyksXG4mIzQzO1x0XHRcdCAgb3R4Ml9uaXhsZl9lcnJfaW50cl9oYW5kbGVyLCAwLCBpcnFfbmFtZSwgcGYpO1xuJiM0MztcdGlmIChlcnIpIHtcbiYjNDM7XHRcdGRldl9lcnIocGYtXHUwMDNlZGV2LFxuJiM0MztcdFx0XHRcJiMzNDtSVlVQRiVkOiBJUlEgcmVnaXN0cmF0aW9uIGZhaWxlZCBmb3IgTklYTEYgRVJSIHZlY3RvclxcblwmIzM0OyxcbiYjNDM7XHRcdFx0cnZ1X2dldF9wZihwZi1cdTAwM2VwZGV2LCBwZi1cdTAwM2VwY2lmdW5jKSk7XG4mIzQzO1x0XHRnb3RvIGVycl9mcmVlX2NpbnRzO1xuJiM0MztcdH1cbiYjNDM7XHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9FUlJfSU5UX0VOQV9XMVMsIE5JWF9MRl9FUlJfSU5UX01BU0spO1xuJiM0MztcbiYjNDM7XHQvKiBSZWdpc3RlciBOSVhMRiBQT0lTT04gaW50ZXJydXB0IGhhbmRsZXIgKi9cbiYjNDM7XHR2ZWMgPSBwZi1cdTAwM2Vody5uaXhfbXNpeG9mZiAmIzQzOyBOSVhfTEZfUE9JU09OX1ZFQztcbiYjNDM7XHRpcnFfbmFtZSA9IFx1MDAyNnBmLVx1MDAzZWh3LmlycV9uYW1lW3ZlYyAqIE5BTUVfU0laRV07XG4mIzQzO1x0c25wcmludGYoaXJxX25hbWUsIE5BTUVfU0laRSwgXCYjMzQ7JXMtbml4bGYtcG9pc29uXCYjMzQ7LCBwZi1cdTAwM2VuZXRkZXYtXHUwMDNlbmFtZSk7XG4mIzQzO1x0ZXJyID0gcmVxdWVzdF9pcnEocGNpX2lycV92ZWN0b3IocGYtXHUwMDNlcGRldiwgdmVjKSxcbiYjNDM7XHRcdFx0ICBvdHgyX25peGxmX3BvaXNvbl9pbnRyX2hhbmRsZXIsIDAsIGlycV9uYW1lLCBwZik7XG4mIzQzO1x0aWYgKGVycikge1xuJiM0MztcdFx0ZGV2X2VycihwZi1cdTAwM2VkZXYsXG4mIzQzO1x0XHRcdFwmIzM0O1JWVVBGJWQ6IElSUSByZWdpc3RyYXRpb24gZmFpbGVkIGZvciBOSVhMRiBQT0lTT04gdmVjdG9yXFxuXCYjMzQ7LFxuJiM0MztcdFx0XHRydnVfZ2V0X3BmKHBmLVx1MDAzZXBkZXYsIHBmLVx1MDAzZXBjaWZ1bmMpKTtcbiYjNDM7XHRcdGdvdG8gZXJyX2ZyZWVfZXJyaW50O1xuJiM0MztcdH1cbiYjNDM7XHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9SQVNfRU5BX1cxUywgTklYX0xGX1JBU19NQVNLKTtcbiYjNDM7XG4gXHRpZiAocGYtXHUwMDNlZmxhZ3MgXHUwMDI2IE9UWDJfRkxBR19SWF9WTEFOX1NVUFBPUlQpXG4gXHRcdG90eDJfZW5hYmxlX3J4dmxhbihwZiwgdHJ1ZSk7XG4gXG5AQCAtMjEzMiw2ICYjNDM7MjE4OCwxNiBAQCBpbnQgb3R4Ml9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4gXHRuZXRpZl90eF9zdG9wX2FsbF9xdWV1ZXMobmV0ZGV2KTtcbiBcdG5ldGlmX2NhcnJpZXJfb2ZmKG5ldGRldik7XG4gXHRwZi1cdTAwM2VmbGFncyB8PSBPVFgyX0ZMQUdfSU5URl9ET1dOO1xuJiM0MztcdC8qIGZyZWUgTklYTEYgUE9JU09OIGlycSAqL1xuJiM0MztcdHZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLVx1MDAzZXBkZXYsXG4mIzQzO1x0XHRcdCAgICAgcGYtXHUwMDNlaHcubml4X21zaXhvZmYgJiM0MzsgTklYX0xGX1BPSVNPTl9WRUMpO1xuJiM0MztcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX1JBU19FTkFfVzFDLCBOSVhfTEZfUkFTX01BU0spO1xuJiM0MztcdGZyZWVfaXJxKHZlYywgcGYpO1xuJiM0MztlcnJfZnJlZV9lcnJpbnQ6XG4mIzQzO1x0dmVjID0gcGNpX2lycV92ZWN0b3IocGYtXHUwMDNlcGRldixcbiYjNDM7XHRcdFx0ICAgICBwZi1cdTAwM2Vody5uaXhfbXNpeG9mZiAmIzQzOyBOSVhfTEZfRVJSX1ZFQyk7XG4mIzQzO1x0b3R4Ml93cml0ZTY0KHBmLCBOSVhfTEZfRVJSX0lOVF9FTkFfVzFDLCBOSVhfTEZfRVJSX0lOVF9NQVNLKTtcbiYjNDM7XHRmcmVlX2lycSh2ZWMsIHBmKTtcbiBlcnJfZnJlZV9jaW50czpcbiBcdG90eDJfZnJlZV9jaW50cyhwZiwgcWlkeCk7XG4gXHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LFxuQEAgLTIxNzEsNiAmIzQzOzIyMzcsMTggQEAgaW50IG90eDJfc3RvcChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuIFx0LyogQ2xlYXIgUlNTIGVuYWJsZSBmbGFnICovXG4gXHRwZi1cdTAwM2Vody5yc3NfaW5mby5lbmFibGUgPSBmYWxzZTtcbiBcbiYjNDM7XHQvKiBDbGVhbnVwIE5JWExGIFBvaXNvbiBJUlEgKi9cbiYjNDM7XHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LFxuJiM0MztcdFx0XHQgICAgIHBmLVx1MDAzZWh3Lm5peF9tc2l4b2ZmICYjNDM7IE5JWF9MRl9QT0lTT05fVkVDKTtcbiYjNDM7XHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9SQVNfRU5BX1cxQywgTklYX0xGX1JBU19NQVNLKTtcbiYjNDM7XHRmcmVlX2lycSh2ZWMsIHBmKTtcbiYjNDM7XG4mIzQzO1x0LyogQ2xlYW51cCBOSVhMRiBFcnJvciBJUlEgKi9cbiYjNDM7XHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LFxuJiM0MztcdFx0XHQgICAgIHBmLVx1MDAzZWh3Lm5peF9tc2l4b2ZmICYjNDM7IE5JWF9MRl9FUlJfVkVDKTtcbiYjNDM7XHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9FUlJfSU5UX0VOQV9XMUMsIE5JWF9MRl9FUlJfSU5UX01BU0spO1xuJiM0MztcdGZyZWVfaXJxKHZlYywgcGYpO1xuJiM0MztcbiBcdC8qIENsZWFudXAgUXVldWUgSVJRICovXG4gXHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LFxuIFx0XHRcdCAgICAgcGYtXHUwMDNlaHcubml4X21zaXhvZmYgJiM0MzsgTklYX0xGX1FJTlRfVkVDX1NUQVJUKTtcbkBAIC0zMDEwLDcgJiM0MzszMDg4LDcgQEAgaW50IG90eDJfcmVhbGxvY19tc2l4X3ZlY3RvcnMoc3RydWN0IG90eDJfbmljICpwZilcbiBcdCAqIHVwdG8gTklYIHZlY3RvciBvZmZzZXQuXG4gXHQgKi9cbiBcdG51bV92ZWMgPSBody1cdTAwM2VuaXhfbXNpeG9mZjtcbi1cdG51bV92ZWMgJiM0Mzs9IE5JWF9MRl9DSU5UX1ZFQ19TVEFSVCAmIzQzOyBody1cdTAwM2VtYXhfcXVldWVzO1xuJiM0MztcdG51bV92ZWMgJiM0Mzs9IE5JWF9MRl9QT0lTT05fVkVDICYjNDM7IDE7XG4gXG4gXHRvdHgyX2Rpc2FibGVfbWJveF9pbnRyKHBmKTtcbiBcdHBjaV9mcmVlX2lycV92ZWN0b3JzKGh3LVx1MDAzZXBkZXYpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3JlZy5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcmVnLmhcbmluZGV4IDFjZDU3NmZkMDljNTYuLmMxNDRmZDJiYmU1MWYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9yZWcuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcmVnLmhcbkBAIC0xMjEsMTAgJiM0MzsxMjEsMTIgQEBcbiAjZGVmaW5lXHROSVhfTEZfRVJSX0lOVF9XMVNcdFx0KE5JWF9MRkJBU0UgfCAweDIyOClcbiAjZGVmaW5lXHROSVhfTEZfRVJSX0lOVF9FTkFfVzFDXHRcdChOSVhfTEZCQVNFIHwgMHgyMzApXG4gI2RlZmluZVx0TklYX0xGX0VSUl9JTlRfRU5BX1cxU1x0XHQoTklYX0xGQkFTRSB8IDB4MjM4KVxuJiM0MzsjZGVmaW5lXHROSVhfTEZfRVJSX0lOVF9NQVNLXHRcdEdFTk1BU0tfVUxMKDMxLCAwKVxuICNkZWZpbmVcdE5JWF9MRl9SQVNcdFx0XHQoTklYX0xGQkFTRSB8IDB4MjQwKVxuICNkZWZpbmVcdE5JWF9MRl9SQVNfVzFTXHRcdFx0KE5JWF9MRkJBU0UgfCAweDI0OClcbiAjZGVmaW5lXHROSVhfTEZfUkFTX0VOQV9XMUNcdFx0KE5JWF9MRkJBU0UgfCAweDI1MClcbiAjZGVmaW5lXHROSVhfTEZfUkFTX0VOQV9XMVNcdFx0KE5JWF9MRkJBU0UgfCAweDI1OClcbiYjNDM7I2RlZmluZVx0TklYX0xGX1JBU19NQVNLXHRcdFx0R0VOTUFTS19VTEwoMTAsIDApXG4gI2RlZmluZVx0TklYX0xGX1NRX09QX0VSUl9EQkdcdFx0KE5JWF9MRkJBU0UgfCAweDI2MClcbiAjZGVmaW5lXHROSVhfTEZfTU5RX0VSUl9EQkdcdFx0KE5JWF9MRkJBU0UgfCAweDI3MClcbiAjZGVmaW5lXHROSVhfTEZfU0VORF9FUlJfREJHXHRcdChOSVhfTEZCQVNFIHwgMHgyODApXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmNcbmluZGV4IGIwMjJmNTJjNjg0NTAuLjJhNTYzMDU2MWIxMmIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jXG5AQCAtNTU0LDcgJiM0Mzs1NTQsNyBAQCBzdGF0aWMgaW50IG90eDJ2Zl9yZWFsbG9jX21zaXhfdmVjdG9ycyhzdHJ1Y3Qgb3R4Ml9uaWMgKnZmKVxuIFx0aW50IG51bV92ZWMsIGVycjtcbiBcbiBcdG51bV92ZWMgPSBody1cdTAwM2VuaXhfbXNpeG9mZjtcbi1cdG51bV92ZWMgJiM0Mzs9IE5JWF9MRl9DSU5UX1ZFQ19TVEFSVCAmIzQzOyBody1cdTAwM2VtYXhfcXVldWVzO1xuJiM0MztcdG51bV92ZWMgJiM0Mzs9IE5JWF9MRl9QT0lTT05fVkVDICYjNDM7IDE7XG4gXG4gXHRvdHgydmZfZGlzYWJsZV9tYm94X2ludHIodmYpO1xuIFx0cGNpX2ZyZWVfaXJxX3ZlY3RvcnMoaHctXHUwMDNlcGRldik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTIgMTg6MzM8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgZHJpdmVyIChvY3Rlb250eDIpLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGRldmljZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnRzLiBUaGUgbW9kaWZpZWQgY29kZSBwYXRocyBjYW5ub3QgYmUgcmVhY2hlZCBkdXJpbmcgZnV6emluZyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMzhmYTU0ODYxOGVjOTI5NTUyMDlhMmQ1YzBlYzBiMmQwYTg2YjMzMQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgQXVnIDEyIDE4OjMzOjI2IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmMKaW5kZXggYzk5NWYyOTAwODU5MC4uNjFiMDMzNGQwYjZlZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jCkBAIC0xNTI0LDYgJiM0MzsxNTI0LDM0IEBAIGlycXJldHVybl90IG90eDJfY3FfaW50cl9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmNxX2lycSkKIH0KIEVYUE9SVF9TWU1CT0wob3R4Ml9jcV9pbnRyX2hhbmRsZXIpOwogCiYjNDM7c3RhdGljIGlycXJldHVybl90IG90eDJfbml4bGZfZXJyX2ludHJfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkYXRhKQomIzQzO3sKJiM0MzsJc3RydWN0IG90eDJfbmljICpwZiA9IGRhdGE7CiYjNDM7CXU2NCByZWd2YWw7CiYjNDM7CiYjNDM7CS8qIENsZWFyIGludGVycnVwdCAqLwomIzQzOwlyZWd2YWwgPSBvdHgyX3JlYWQ2NChwZiwgTklYX0xGX0VSUl9JTlQpOwomIzQzOwlvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9FUlJfSU5ULCByZWd2YWwpOwomIzQzOwomIzQzOwlkZXZfZXJyX3JhdGVsaW1pdGVkKHBmLSZndDtkZXYsICYjMzQ7TklYTEYgRXJyb3IgSW50ZXJydXB0OiAweCVsbHhcbiYjMzQ7LCByZWd2YWwpOwomIzQzOwomIzQzOwlyZXR1cm4gSVJRX0hBTkRMRUQ7CiYjNDM7fQomIzQzOwomIzQzO3N0YXRpYyBpcnFyZXR1cm5fdCBvdHgyX25peGxmX3BvaXNvbl9pbnRyX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGF0YSkKJiM0Mzt7CiYjNDM7CXN0cnVjdCBvdHgyX25pYyAqcGYgPSBkYXRhOwomIzQzOwl1NjQgcmVndmFsOwomIzQzOwomIzQzOwkvKiBDbGVhciBpbnRlcnJ1cHQgKi8KJiM0MzsJcmVndmFsID0gb3R4Ml9yZWFkNjQocGYsIE5JWF9MRl9SQVMpOwomIzQzOwlvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9SQVMsIHJlZ3ZhbCk7CiYjNDM7CiYjNDM7CWRldl9lcnJfcmF0ZWxpbWl0ZWQocGYtJmd0O2RldiwgJiMzNDtOSVhMRiBQb2lzb24gSW50ZXJydXB0OiAweCVsbHhcbiYjMzQ7LCByZWd2YWwpOwomIzQzOwomIzQzOwlyZXR1cm4gSVJRX0hBTkRMRUQ7CiYjNDM7fQomIzQzOwogdm9pZCBvdHgyX2Rpc2FibGVfbmFwaShzdHJ1Y3Qgb3R4Ml9uaWMgKnBmKQogewogCXN0cnVjdCBvdHgyX3FzZXQgKnFzZXQgPSAmYW1wO3BmLSZndDtxc2V0OwpAQCAtMjA4MCw2ICYjNDM7MjEwOCwzNCBAQCBpbnQgb3R4Ml9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpCiAKIAlvdHgyX3NldF9jaW50c19hZmZpbml0eShwZik7CiAKJiM0MzsJLyogUmVnaXN0ZXIgTklYTEYgZXJyb3IgSVJRIGhhbmRsZXIgKi8KJiM0MzsJdmVjID0gcGYtJmd0O2h3Lm5peF9tc2l4b2ZmICYjNDM7IE5JWF9MRl9FUlJfVkVDOwomIzQzOwlpcnFfbmFtZSA9ICZhbXA7cGYtJmd0O2h3LmlycV9uYW1lW3ZlYyAqIE5BTUVfU0laRV07CiYjNDM7CXNucHJpbnRmKGlycV9uYW1lLCBOQU1FX1NJWkUsICYjMzQ7JXMtbml4bGYtZXJyJiMzNDssIHBmLSZndDtuZXRkZXYtJmd0O25hbWUpOwomIzQzOwllcnIgPSByZXF1ZXN0X2lycShwY2lfaXJxX3ZlY3RvcihwZi0mZ3Q7cGRldiwgdmVjKSwKJiM0MzsJCQkgIG90eDJfbml4bGZfZXJyX2ludHJfaGFuZGxlciwgMCwgaXJxX25hbWUsIHBmKTsKJiM0MzsJaWYgKGVycikgewomIzQzOwkJZGV2X2VycihwZi0mZ3Q7ZGV2LAomIzQzOwkJCSYjMzQ7UlZVUEYlZDogSVJRIHJlZ2lzdHJhdGlvbiBmYWlsZWQgZm9yIE5JWExGIEVSUiB2ZWN0b3JcbiYjMzQ7LAomIzQzOwkJCXJ2dV9nZXRfcGYocGYtJmd0O3BkZXYsIHBmLSZndDtwY2lmdW5jKSk7CiYjNDM7CQlnb3RvIGVycl9mcmVlX2NpbnRzOwomIzQzOwl9CiYjNDM7CW90eDJfd3JpdGU2NChwZiwgTklYX0xGX0VSUl9JTlRfRU5BX1cxUywgTklYX0xGX0VSUl9JTlRfTUFTSyk7CiYjNDM7CiYjNDM7CS8qIFJlZ2lzdGVyIE5JWExGIFBPSVNPTiBpbnRlcnJ1cHQgaGFuZGxlciAqLwomIzQzOwl2ZWMgPSBwZi0mZ3Q7aHcubml4X21zaXhvZmYgJiM0MzsgTklYX0xGX1BPSVNPTl9WRUM7CiYjNDM7CWlycV9uYW1lID0gJmFtcDtwZi0mZ3Q7aHcuaXJxX25hbWVbdmVjICogTkFNRV9TSVpFXTsKJiM0MzsJc25wcmludGYoaXJxX25hbWUsIE5BTUVfU0laRSwgJiMzNDslcy1uaXhsZi1wb2lzb24mIzM0OywgcGYtJmd0O25ldGRldi0mZ3Q7bmFtZSk7CiYjNDM7CWVyciA9IHJlcXVlc3RfaXJxKHBjaV9pcnFfdmVjdG9yKHBmLSZndDtwZGV2LCB2ZWMpLAomIzQzOwkJCSAgb3R4Ml9uaXhsZl9wb2lzb25faW50cl9oYW5kbGVyLCAwLCBpcnFfbmFtZSwgcGYpOwomIzQzOwlpZiAoZXJyKSB7CiYjNDM7CQlkZXZfZXJyKHBmLSZndDtkZXYsCiYjNDM7CQkJJiMzNDtSVlVQRiVkOiBJUlEgcmVnaXN0cmF0aW9uIGZhaWxlZCBmb3IgTklYTEYgUE9JU09OIHZlY3RvclxuJiMzNDssCiYjNDM7CQkJcnZ1X2dldF9wZihwZi0mZ3Q7cGRldiwgcGYtJmd0O3BjaWZ1bmMpKTsKJiM0MzsJCWdvdG8gZXJyX2ZyZWVfZXJyaW50OwomIzQzOwl9CiYjNDM7CW90eDJfd3JpdGU2NChwZiwgTklYX0xGX1JBU19FTkFfVzFTLCBOSVhfTEZfUkFTX01BU0spOwomIzQzOwogCWlmIChwZi0mZ3Q7ZmxhZ3MgJmFtcDsgT1RYMl9GTEFHX1JYX1ZMQU5fU1VQUE9SVCkKIAkJb3R4Ml9lbmFibGVfcnh2bGFuKHBmLCB0cnVlKTsKIApAQCAtMjEzMiw2ICYjNDM7MjE4OCwxNiBAQCBpbnQgb3R4Ml9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpCiAJbmV0aWZfdHhfc3RvcF9hbGxfcXVldWVzKG5ldGRldik7CiAJbmV0aWZfY2Fycmllcl9vZmYobmV0ZGV2KTsKIAlwZi0mZ3Q7ZmxhZ3MgfD0gT1RYMl9GTEFHX0lOVEZfRE9XTjsKJiM0MzsJLyogZnJlZSBOSVhMRiBQT0lTT04gaXJxICovCiYjNDM7CXZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLSZndDtwZGV2LAomIzQzOwkJCSAgICAgcGYtJmd0O2h3Lm5peF9tc2l4b2ZmICYjNDM7IE5JWF9MRl9QT0lTT05fVkVDKTsKJiM0MzsJb3R4Ml93cml0ZTY0KHBmLCBOSVhfTEZfUkFTX0VOQV9XMUMsIE5JWF9MRl9SQVNfTUFTSyk7CiYjNDM7CWZyZWVfaXJxKHZlYywgcGYpOwomIzQzO2Vycl9mcmVlX2VycmludDoKJiM0MzsJdmVjID0gcGNpX2lycV92ZWN0b3IocGYtJmd0O3BkZXYsCiYjNDM7CQkJICAgICBwZi0mZ3Q7aHcubml4X21zaXhvZmYgJiM0MzsgTklYX0xGX0VSUl9WRUMpOwomIzQzOwlvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9FUlJfSU5UX0VOQV9XMUMsIE5JWF9MRl9FUlJfSU5UX01BU0spOwomIzQzOwlmcmVlX2lycSh2ZWMsIHBmKTsKIGVycl9mcmVlX2NpbnRzOgogCW90eDJfZnJlZV9jaW50cyhwZiwgcWlkeCk7CiAJdmVjID0gcGNpX2lycV92ZWN0b3IocGYtJmd0O3BkZXYsCkBAIC0yMTcxLDYgJiM0MzsyMjM3LDE4IEBAIGludCBvdHgyX3N0b3Aoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikKIAkvKiBDbGVhciBSU1MgZW5hYmxlIGZsYWcgKi8KIAlwZi0mZ3Q7aHcucnNzX2luZm8uZW5hYmxlID0gZmFsc2U7CiAKJiM0MzsJLyogQ2xlYW51cCBOSVhMRiBQb2lzb24gSVJRICovCiYjNDM7CXZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLSZndDtwZGV2LAomIzQzOwkJCSAgICAgcGYtJmd0O2h3Lm5peF9tc2l4b2ZmICYjNDM7IE5JWF9MRl9QT0lTT05fVkVDKTsKJiM0MzsJb3R4Ml93cml0ZTY0KHBmLCBOSVhfTEZfUkFTX0VOQV9XMUMsIE5JWF9MRl9SQVNfTUFTSyk7CiYjNDM7CWZyZWVfaXJxKHZlYywgcGYpOwomIzQzOwomIzQzOwkvKiBDbGVhbnVwIE5JWExGIEVycm9yIElSUSAqLwomIzQzOwl2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi0mZ3Q7cGRldiwKJiM0MzsJCQkgICAgIHBmLSZndDtody5uaXhfbXNpeG9mZiAmIzQzOyBOSVhfTEZfRVJSX1ZFQyk7CiYjNDM7CW90eDJfd3JpdGU2NChwZiwgTklYX0xGX0VSUl9JTlRfRU5BX1cxQywgTklYX0xGX0VSUl9JTlRfTUFTSyk7CiYjNDM7CWZyZWVfaXJxKHZlYywgcGYpOwomIzQzOwogCS8qIENsZWFudXAgUXVldWUgSVJRICovCiAJdmVjID0gcGNpX2lycV92ZWN0b3IocGYtJmd0O3BkZXYsCiAJCQkgICAgIHBmLSZndDtody5uaXhfbXNpeG9mZiAmIzQzOyBOSVhfTEZfUUlOVF9WRUNfU1RBUlQpOwpAQCAtMzAxMCw3ICYjNDM7MzA4OCw3IEBAIGludCBvdHgyX3JlYWxsb2NfbXNpeF92ZWN0b3JzKHN0cnVjdCBvdHgyX25pYyAqcGYpCiAJICogdXB0byBOSVggdmVjdG9yIG9mZnNldC4KIAkgKi8KIAludW1fdmVjID0gaHctJmd0O25peF9tc2l4b2ZmOwotCW51bV92ZWMgJiM0Mzs9IE5JWF9MRl9DSU5UX1ZFQ19TVEFSVCAmIzQzOyBody0mZ3Q7bWF4X3F1ZXVlczsKJiM0MzsJbnVtX3ZlYyAmIzQzOz0gTklYX0xGX1BPSVNPTl9WRUMgJiM0MzsgMTsKIAogCW90eDJfZGlzYWJsZV9tYm94X2ludHIocGYpOwogCXBjaV9mcmVlX2lycV92ZWN0b3JzKGh3LSZndDtwZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3JlZy5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcmVnLmgKaW5kZXggMWNkNTc2ZmQwOWM1Ni4uYzE0NGZkMmJiZTUxZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcmVnLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcmVnLmgKQEAgLTEyMSwxMCAmIzQzOzEyMSwxMiBAQAogI2RlZmluZQlOSVhfTEZfRVJSX0lOVF9XMVMJCShOSVhfTEZCQVNFIHwgMHgyMjgpCiAjZGVmaW5lCU5JWF9MRl9FUlJfSU5UX0VOQV9XMUMJCShOSVhfTEZCQVNFIHwgMHgyMzApCiAjZGVmaW5lCU5JWF9MRl9FUlJfSU5UX0VOQV9XMVMJCShOSVhfTEZCQVNFIHwgMHgyMzgpCiYjNDM7I2RlZmluZQlOSVhfTEZfRVJSX0lOVF9NQVNLCQlHRU5NQVNLX1VMTCgzMSwgMCkKICNkZWZpbmUJTklYX0xGX1JBUwkJCShOSVhfTEZCQVNFIHwgMHgyNDApCiAjZGVmaW5lCU5JWF9MRl9SQVNfVzFTCQkJKE5JWF9MRkJBU0UgfCAweDI0OCkKICNkZWZpbmUJTklYX0xGX1JBU19FTkFfVzFDCQkoTklYX0xGQkFTRSB8IDB4MjUwKQogI2RlZmluZQlOSVhfTEZfUkFTX0VOQV9XMVMJCShOSVhfTEZCQVNFIHwgMHgyNTgpCiYjNDM7I2RlZmluZQlOSVhfTEZfUkFTX01BU0sJCQlHRU5NQVNLX1VMTCgxMCwgMCkKICNkZWZpbmUJTklYX0xGX1NRX09QX0VSUl9EQkcJCShOSVhfTEZCQVNFIHwgMHgyNjApCiAjZGVmaW5lCU5JWF9MRl9NTlFfRVJSX0RCRwkJKE5JWF9MRkJBU0UgfCAweDI3MCkKICNkZWZpbmUJTklYX0xGX1NFTkRfRVJSX0RCRwkJKE5JWF9MRkJBU0UgfCAweDI4MCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jCmluZGV4IGIwMjJmNTJjNjg0NTAuLjJhNTYzMDU2MWIxMmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYwpAQCAtNTU0LDcgJiM0Mzs1NTQsNyBAQCBzdGF0aWMgaW50IG90eDJ2Zl9yZWFsbG9jX21zaXhfdmVjdG9ycyhzdHJ1Y3Qgb3R4Ml9uaWMgKnZmKQogCWludCBudW1fdmVjLCBlcnI7CiAKIAludW1fdmVjID0gaHctJmd0O25peF9tc2l4b2ZmOwotCW51bV92ZWMgJiM0Mzs9IE5JWF9MRl9DSU5UX1ZFQ19TVEFSVCAmIzQzOyBody0mZ3Q7bWF4X3F1ZXVlczsKJiM0MzsJbnVtX3ZlYyAmIzQzOz0gTklYX0xGX1BPSVNPTl9WRUMgJiM0MzsgMTsKIAogCW90eDJ2Zl9kaXNhYmxlX21ib3hfaW50cih2Zik7CiAJcGNpX2ZyZWVfaXJxX3ZlY3RvcnMoaHctJmd0O3BkZXYpOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMiAxODozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NjIyCgkJCQkJCQlvdXRwdXQ6IDQ5CgkJCQkJCQl0aG91Z2h0czogNDYzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgT2N0ZW9uVFgyIE5JQyBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyB0aGUgT2N0ZW9uVFgyIE5JQyBkcml2ZXIsIHNwZWNpZmljYWxseSBmaWxlcyB3aXRoaW4gdGhlIE1hcnZlbGwgYG9jdGVvbnR4MmAgZGlyZWN0b3J5OiBgb3R4Ml9wZi5jYCwgYG90eDJfcmVnLmhgLCBhbmQgYG90eDJfdmYuY2AuIEl0JiMzOTtzIGludHJvZHVjaW5nIG5ldyBpbnRlcnJ1cHQgaGFuZGxlcnMsIGBvdHgyX25peGxmX2Vycl9pbnRyX2hhbmRsZXJgIGFuZCBgb3R4Ml9uaXhsZl9wb2lzb25faW50cl9oYW5kbGVyYCwgd2hpY2ggaXMgc3RhbmRhcmQgcHJhY3RpY2UgZm9yIGhhbmRsaW5nIG5ldyBlcnJvcnMgb3IgY29uZGl0aW9ucy4gVGhlIGhhbmRsZXJzIGFyZSBiZWluZyByZWdpc3RlcmVkIGluIGBvdHgyX29wZW5gIGFuZCBmcmVlZCBpbiBgb3R4Ml9zdG9wYCwgYXMgZXhwZWN0ZWQsIGFuZCBkdXJpbmcgZXJyb3IgaGFuZGxpbmcsIHRoYXQmIzM5O3MgY2xlYW4gYW5kIHNhZmUuIFBsdXMsIGl0JiMzOTtzIHVwZGF0aW5nIHRoZSBNU0ktWCB2ZWN0b3IgYWxsb2NhdGlvbi9kZWFsbG9jYXRpb24gbG9naWMgaW4gYG90eDJfcmVhbGxvY19tc2l4X3ZlY3RvcnNgIGFuZCB0aGUgVkYgY291bnRlcnBhcnQgYXMgd2VsbC4KCk5vdywgdGhlIHF1ZXN0aW9uIGlzIHdoZXRoZXIgdGhpcyBpcyB3b3J0aCBmdXp6aW5nLiBUaGUgaW5zdHJ1Y3Rpb25zIHNheSB0byBza2lwIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGNhcmRzIHRoYXQgYXJlbiYjMzk7dCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGlzbiYjMzk7dCB0aGUgT2N0ZW9uVFgyIGdlbmVyYWxseSBhIHBoeXNpY2FsLCBkZWRpY2F0ZWQgaGFyZHdhcmUgTklDPyBJIGRvbiYjMzk7dCByZWNhbGwgc2VlaW5nIGl0IGNvbW1vbmx5IGVtdWxhdGVkIHdpdGhpbiBhIHN0YW5kYXJkIFFFTVUgc2V0dXAuIEkgbmVlZCB0byBiZSBzdXJlLiBMZXQmIzM5O3MgZGlnIGRlZXBlci4KClRoZSBmYWN0IHRoYXQgaXQmIzM5O3MgdXNpbmcgdGhpbmdzIGxpa2UgYHBjaV9pcnFfdmVjdG9yYCBhbmQgcmVmZXJlbmNpbmcgYHBmLSZndDtwZGV2YCBpbiBgb3R4Ml9wZi5jYCBzdHJvbmdseSBzdWdnZXN0cyBpdCYjMzk7cyBhIFBDSSBkZXZpY2UuIEkgc2hvdWxkIHByb2JhYmx5IHF1aWNrbHkgZG91YmxlLWNoZWNrIHRoYXQgYG90eDJfcGYuY2AgaW5jbHVkZXMgYSBgcGNpX2RyaXZlcmAgc3RydWN0dXJlIHRvIGNvbmZpcm0gdGhhdCBpdCYjMzk7cyBhIFBDSSBkcml2ZXIgYW5kIG5vdCBzb21lIG90aGVyIHR5cGUgb2YgbmV0d29yayBjYXJkLiBUaGF0IHNob3VsZCBzb2xpZGlmeSB3aGV0aGVyIGl0IGlzIGEgcGh5c2ljYWwgZGV2aWNlIHRoYXQgaXMgbm90IHR5cGljYWxseSBlbXVsYXRlZC4gSWYgaXQgaXMsIHRoZW4gSSBjYW4gY29uZmlkZW50bHkgY2xhc3NpZnkgdGhpcyBwYXRjaCBhcyBub3Qgd29ydGggZnV6emluZywgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGluc3RydWN0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMiAxODozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwY2lfZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jPTM1ODc9c3RhdGljIHZvaWQgb3R4Ml9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYy0zNjQ5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYzozNjUwOnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBvdHgyX3BmX2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmMtMzY1MS1cdC5uYW1lID0gRFJWX05BTUUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTIgMTg6MzM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTczMgoJCQkJCQkJb3V0cHV0OiA4OAoJCQkJCQkJdGhvdWdodHM6IDcxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlBDSSBEcml2ZXIgV29ydGhpbmVzcyBBc3Nlc3NtZW50KioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGRyaXZlci4gWWVwLCBkZWZpbml0ZWx5IGEgUENJIGRyaXZlci4gVGhlIG5leHQgcXVlc3Rpb24gaXMsIGlzIHRoaXMgZHJpdmVyIHJ1bm5pbmcgb24gYSBzdGFuZGFyZCBlbXVsYXRlZCBkZXZpY2UgaW4gUUVNVT8gSSBoYXZlIHRvIGJlIHRob3JvdWdoIGhlcmUuIEhtbSwgdGhlIE9jdGVvblRYMi4uLiBubywgdGhhdCYjMzk7cyBub3QgYSBjb21tb24gUUVNVSBlbXVsYXRlZCBkZXZpY2UuIEdpdmVuIHRoYXQsIHRoZSBjb2RlIHBhdGhzIHdpdGhpbiB0aGlzIGRyaXZlciBhcmUgc2ltcGx5IGluYWNjZXNzaWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IsIGNyaXRpY2FsbHksIFFFTVUuIFRoYXQgbWVhbnMgdHJ5aW5nIHRvIGZ1enogdGhpcyB0aGluZyBpcyBhIG5vbi1zdGFydGVyIGluIG15IHVzdWFsIHRlc3RpbmcgZW52aXJvbm1lbnRzLiBUaGVyZWZvcmUsIGFmdGVyIGNhcmVmdWwgY29uc2lkZXJhdGlvbiwgSSYjMzk7bSBzZXR0aW5nIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJdCYjMzk7cyBqdXN0IG5vdCBmZWFzaWJsZSB3aXRoIGN1cnJlbnQgaW5mcmFzdHJ1Y3R1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTIgMTg6MzM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWFydmVsbCBPY3Rlb25UWDIgTklDIGRyaXZlciAob2N0ZW9udHgyKSwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBoYXJkd2FyZSBkZXZpY2Ugbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cy4gVGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgY2Fubm90IGJlIHJlYWNoZWQgZHVyaW5nIGZ1enppbmcgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIE5JQyBkcml2ZXIgKG9jdGVvbnR4MiksIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgaGFyZHdhcmUgZGV2aWNlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudHMuIFRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGNhbm5vdCBiZSByZWFjaGVkIGR1cmluZyBmdXp6aW5nIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTIgMTg6MzM8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEyVDE4OjMzOjI3LjM3MzUwMTY5WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE5OTk2MjYxNTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWFydmVsbCBPY3Rlb25UWDIgTklDIGRyaXZlciAob2N0ZW9udHgyKSwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBoYXJkd2FyZSBkZXZpY2Ugbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cy4gVGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgY2Fubm90IGJlIHJlYWNoZWQgZHVyaW5nIGZ1enppbmcgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTJUMTg6MzM6MjcuMzczNTA2MjlaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM4MTkxNTI5MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDM4ZmE1NDg2MThlYzkyOTU1MjA5YTJkNWMwZWMwYjJkMGE4NmIzMzFcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFdlZCBBdWcgMTIgMTg6MzM6MjYgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmNcXG5pbmRleCBjOTk1ZjI5MDA4NTkwLi42MWIwMzM0ZDBiNmVmIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jXFxuQEAgLTE1MjQsNiArMTUyNCwzNCBAQCBpcnFyZXR1cm5fdCBvdHgyX2NxX2ludHJfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpjcV9pcnEpXFxuIH1cXG4gRVhQT1JUX1NZTUJPTChvdHgyX2NxX2ludHJfaGFuZGxlcik7XFxuIFxcbitzdGF0aWMgaXJxcmV0dXJuX3Qgb3R4Ml9uaXhsZl9lcnJfaW50cl9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRhdGEpXFxuK3tcXG4rXFx0c3RydWN0IG90eDJfbmljICpwZiA9IGRhdGE7XFxuK1xcdHU2NCByZWd2YWw7XFxuK1xcbitcXHQvKiBDbGVhciBpbnRlcnJ1cHQgKi9cXG4rXFx0cmVndmFsID0gb3R4Ml9yZWFkNjQocGYsIE5JWF9MRl9FUlJfSU5UKTtcXG4rXFx0b3R4Ml93cml0ZTY0KHBmLCBOSVhfTEZfRVJSX0lOVCwgcmVndmFsKTtcXG4rXFxuK1xcdGRldl9lcnJfcmF0ZWxpbWl0ZWQocGYtXFx1MDAzZWRldiwgXFxcIk5JWExGIEVycm9yIEludGVycnVwdDogMHglbGx4XFxcXG5cXFwiLCByZWd2YWwpO1xcbitcXG4rXFx0cmV0dXJuIElSUV9IQU5ETEVEO1xcbit9XFxuK1xcbitzdGF0aWMgaXJxcmV0dXJuX3Qgb3R4Ml9uaXhsZl9wb2lzb25faW50cl9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRhdGEpXFxuK3tcXG4rXFx0c3RydWN0IG90eDJfbmljICpwZiA9IGRhdGE7XFxuK1xcdHU2NCByZWd2YWw7XFxuK1xcbitcXHQvKiBDbGVhciBpbnRlcnJ1cHQgKi9cXG4rXFx0cmVndmFsID0gb3R4Ml9yZWFkNjQocGYsIE5JWF9MRl9SQVMpO1xcbitcXHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9SQVMsIHJlZ3ZhbCk7XFxuK1xcbitcXHRkZXZfZXJyX3JhdGVsaW1pdGVkKHBmLVxcdTAwM2VkZXYsIFxcXCJOSVhMRiBQb2lzb24gSW50ZXJydXB0OiAweCVsbHhcXFxcblxcXCIsIHJlZ3ZhbCk7XFxuK1xcbitcXHRyZXR1cm4gSVJRX0hBTkRMRUQ7XFxuK31cXG4rXFxuIHZvaWQgb3R4Ml9kaXNhYmxlX25hcGkoc3RydWN0IG90eDJfbmljICpwZilcXG4ge1xcbiBcXHRzdHJ1Y3Qgb3R4Ml9xc2V0ICpxc2V0ID0gXFx1MDAyNnBmLVxcdTAwM2Vxc2V0O1xcbkBAIC0yMDgwLDYgKzIxMDgsMzQgQEAgaW50IG90eDJfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbiBcXG4gXFx0b3R4Ml9zZXRfY2ludHNfYWZmaW5pdHkocGYpO1xcbiBcXG4rXFx0LyogUmVnaXN0ZXIgTklYTEYgZXJyb3IgSVJRIGhhbmRsZXIgKi9cXG4rXFx0dmVjID0gcGYtXFx1MDAzZWh3Lm5peF9tc2l4b2ZmICsgTklYX0xGX0VSUl9WRUM7XFxuK1xcdGlycV9uYW1lID0gXFx1MDAyNnBmLVxcdTAwM2Vody5pcnFfbmFtZVt2ZWMgKiBOQU1FX1NJWkVdO1xcbitcXHRzbnByaW50ZihpcnFfbmFtZSwgTkFNRV9TSVpFLCBcXFwiJXMtbml4bGYtZXJyXFxcIiwgcGYtXFx1MDAzZW5ldGRldi1cXHUwMDNlbmFtZSk7XFxuK1xcdGVyciA9IHJlcXVlc3RfaXJxKHBjaV9pcnFfdmVjdG9yKHBmLVxcdTAwM2VwZGV2LCB2ZWMpLFxcbitcXHRcXHRcXHQgIG90eDJfbml4bGZfZXJyX2ludHJfaGFuZGxlciwgMCwgaXJxX25hbWUsIHBmKTtcXG4rXFx0aWYgKGVycikge1xcbitcXHRcXHRkZXZfZXJyKHBmLVxcdTAwM2VkZXYsXFxuK1xcdFxcdFxcdFxcXCJSVlVQRiVkOiBJUlEgcmVnaXN0cmF0aW9uIGZhaWxlZCBmb3IgTklYTEYgRVJSIHZlY3RvclxcXFxuXFxcIixcXG4rXFx0XFx0XFx0cnZ1X2dldF9wZihwZi1cXHUwMDNlcGRldiwgcGYtXFx1MDAzZXBjaWZ1bmMpKTtcXG4rXFx0XFx0Z290byBlcnJfZnJlZV9jaW50cztcXG4rXFx0fVxcbitcXHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9FUlJfSU5UX0VOQV9XMVMsIE5JWF9MRl9FUlJfSU5UX01BU0spO1xcbitcXG4rXFx0LyogUmVnaXN0ZXIgTklYTEYgUE9JU09OIGludGVycnVwdCBoYW5kbGVyICovXFxuK1xcdHZlYyA9IHBmLVxcdTAwM2Vody5uaXhfbXNpeG9mZiArIE5JWF9MRl9QT0lTT05fVkVDO1xcbitcXHRpcnFfbmFtZSA9IFxcdTAwMjZwZi1cXHUwMDNlaHcuaXJxX25hbWVbdmVjICogTkFNRV9TSVpFXTtcXG4rXFx0c25wcmludGYoaXJxX25hbWUsIE5BTUVfU0laRSwgXFxcIiVzLW5peGxmLXBvaXNvblxcXCIsIHBmLVxcdTAwM2VuZXRkZXYtXFx1MDAzZW5hbWUpO1xcbitcXHRlcnIgPSByZXF1ZXN0X2lycShwY2lfaXJxX3ZlY3RvcihwZi1cXHUwMDNlcGRldiwgdmVjKSxcXG4rXFx0XFx0XFx0ICBvdHgyX25peGxmX3BvaXNvbl9pbnRyX2hhbmRsZXIsIDAsIGlycV9uYW1lLCBwZik7XFxuK1xcdGlmIChlcnIpIHtcXG4rXFx0XFx0ZGV2X2VycihwZi1cXHUwMDNlZGV2LFxcbitcXHRcXHRcXHRcXFwiUlZVUEYlZDogSVJRIHJlZ2lzdHJhdGlvbiBmYWlsZWQgZm9yIE5JWExGIFBPSVNPTiB2ZWN0b3JcXFxcblxcXCIsXFxuK1xcdFxcdFxcdHJ2dV9nZXRfcGYocGYtXFx1MDAzZXBkZXYsIHBmLVxcdTAwM2VwY2lmdW5jKSk7XFxuK1xcdFxcdGdvdG8gZXJyX2ZyZWVfZXJyaW50O1xcbitcXHR9XFxuK1xcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX1JBU19FTkFfVzFTLCBOSVhfTEZfUkFTX01BU0spO1xcbitcXG4gXFx0aWYgKHBmLVxcdTAwM2VmbGFncyBcXHUwMDI2IE9UWDJfRkxBR19SWF9WTEFOX1NVUFBPUlQpXFxuIFxcdFxcdG90eDJfZW5hYmxlX3J4dmxhbihwZiwgdHJ1ZSk7XFxuIFxcbkBAIC0yMTMyLDYgKzIxODgsMTYgQEAgaW50IG90eDJfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbiBcXHRuZXRpZl90eF9zdG9wX2FsbF9xdWV1ZXMobmV0ZGV2KTtcXG4gXFx0bmV0aWZfY2Fycmllcl9vZmYobmV0ZGV2KTtcXG4gXFx0cGYtXFx1MDAzZWZsYWdzIHw9IE9UWDJfRkxBR19JTlRGX0RPV047XFxuK1xcdC8qIGZyZWUgTklYTEYgUE9JU09OIGlycSAqL1xcbitcXHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cXHUwMDNlcGRldixcXG4rXFx0XFx0XFx0ICAgICBwZi1cXHUwMDNlaHcubml4X21zaXhvZmYgKyBOSVhfTEZfUE9JU09OX1ZFQyk7XFxuK1xcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX1JBU19FTkFfVzFDLCBOSVhfTEZfUkFTX01BU0spO1xcbitcXHRmcmVlX2lycSh2ZWMsIHBmKTtcXG4rZXJyX2ZyZWVfZXJyaW50OlxcbitcXHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cXHUwMDNlcGRldixcXG4rXFx0XFx0XFx0ICAgICBwZi1cXHUwMDNlaHcubml4X21zaXhvZmYgKyBOSVhfTEZfRVJSX1ZFQyk7XFxuK1xcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX0VSUl9JTlRfRU5BX1cxQywgTklYX0xGX0VSUl9JTlRfTUFTSyk7XFxuK1xcdGZyZWVfaXJxKHZlYywgcGYpO1xcbiBlcnJfZnJlZV9jaW50czpcXG4gXFx0b3R4Ml9mcmVlX2NpbnRzKHBmLCBxaWR4KTtcXG4gXFx0dmVjID0gcGNpX2lycV92ZWN0b3IocGYtXFx1MDAzZXBkZXYsXFxuQEAgLTIxNzEsNiArMjIzNywxOCBAQCBpbnQgb3R4Ml9zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuIFxcdC8qIENsZWFyIFJTUyBlbmFibGUgZmxhZyAqL1xcbiBcXHRwZi1cXHUwMDNlaHcucnNzX2luZm8uZW5hYmxlID0gZmFsc2U7XFxuIFxcbitcXHQvKiBDbGVhbnVwIE5JWExGIFBvaXNvbiBJUlEgKi9cXG4rXFx0dmVjID0gcGNpX2lycV92ZWN0b3IocGYtXFx1MDAzZXBkZXYsXFxuK1xcdFxcdFxcdCAgICAgcGYtXFx1MDAzZWh3Lm5peF9tc2l4b2ZmICsgTklYX0xGX1BPSVNPTl9WRUMpO1xcbitcXHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9SQVNfRU5BX1cxQywgTklYX0xGX1JBU19NQVNLKTtcXG4rXFx0ZnJlZV9pcnEodmVjLCBwZik7XFxuK1xcbitcXHQvKiBDbGVhbnVwIE5JWExGIEVycm9yIElSUSAqL1xcbitcXHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cXHUwMDNlcGRldixcXG4rXFx0XFx0XFx0ICAgICBwZi1cXHUwMDNlaHcubml4X21zaXhvZmYgKyBOSVhfTEZfRVJSX1ZFQyk7XFxuK1xcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX0VSUl9JTlRfRU5BX1cxQywgTklYX0xGX0VSUl9JTlRfTUFTSyk7XFxuK1xcdGZyZWVfaXJxKHZlYywgcGYpO1xcbitcXG4gXFx0LyogQ2xlYW51cCBRdWV1ZSBJUlEgKi9cXG4gXFx0dmVjID0gcGNpX2lycV92ZWN0b3IocGYtXFx1MDAzZXBkZXYsXFxuIFxcdFxcdFxcdCAgICAgcGYtXFx1MDAzZWh3Lm5peF9tc2l4b2ZmICsgTklYX0xGX1FJTlRfVkVDX1NUQVJUKTtcXG5AQCAtMzAxMCw3ICszMDg4LDcgQEAgaW50IG90eDJfcmVhbGxvY19tc2l4X3ZlY3RvcnMoc3RydWN0IG90eDJfbmljICpwZilcXG4gXFx0ICogdXB0byBOSVggdmVjdG9yIG9mZnNldC5cXG4gXFx0ICovXFxuIFxcdG51bV92ZWMgPSBody1cXHUwMDNlbml4X21zaXhvZmY7XFxuLVxcdG51bV92ZWMgKz0gTklYX0xGX0NJTlRfVkVDX1NUQVJUICsgaHctXFx1MDAzZW1heF9xdWV1ZXM7XFxuK1xcdG51bV92ZWMgKz0gTklYX0xGX1BPSVNPTl9WRUMgKyAxO1xcbiBcXG4gXFx0b3R4Ml9kaXNhYmxlX21ib3hfaW50cihwZik7XFxuIFxcdHBjaV9mcmVlX2lycV92ZWN0b3JzKGh3LVxcdTAwM2VwZGV2KTtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcmVnLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9yZWcuaFxcbmluZGV4IDFjZDU3NmZkMDljNTYuLmMxNDRmZDJiYmU1MWYgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcmVnLmhcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9yZWcuaFxcbkBAIC0xMjEsMTAgKzEyMSwxMiBAQFxcbiAjZGVmaW5lXFx0TklYX0xGX0VSUl9JTlRfVzFTXFx0XFx0KE5JWF9MRkJBU0UgfCAweDIyOClcXG4gI2RlZmluZVxcdE5JWF9MRl9FUlJfSU5UX0VOQV9XMUNcXHRcXHQoTklYX0xGQkFTRSB8IDB4MjMwKVxcbiAjZGVmaW5lXFx0TklYX0xGX0VSUl9JTlRfRU5BX1cxU1xcdFxcdChOSVhfTEZCQVNFIHwgMHgyMzgpXFxuKyNkZWZpbmVcXHROSVhfTEZfRVJSX0lOVF9NQVNLXFx0XFx0R0VOTUFTS19VTEwoMzEsIDApXFxuICNkZWZpbmVcXHROSVhfTEZfUkFTXFx0XFx0XFx0KE5JWF9MRkJBU0UgfCAweDI0MClcXG4gI2RlZmluZVxcdE5JWF9MRl9SQVNfVzFTXFx0XFx0XFx0KE5JWF9MRkJBU0UgfCAweDI0OClcXG4gI2RlZmluZVxcdE5JWF9MRl9SQVNfRU5BX1cxQ1xcdFxcdChOSVhfTEZCQVNFIHwgMHgyNTApXFxuICNkZWZpbmVcXHROSVhfTEZfUkFTX0VOQV9XMVNcXHRcXHQoTklYX0xGQkFTRSB8IDB4MjU4KVxcbisjZGVmaW5lXFx0TklYX0xGX1JBU19NQVNLXFx0XFx0XFx0R0VOTUFTS19VTEwoMTAsIDApXFxuICNkZWZpbmVcXHROSVhfTEZfU1FfT1BfRVJSX0RCR1xcdFxcdChOSVhfTEZCQVNFIHwgMHgyNjApXFxuICNkZWZpbmVcXHROSVhfTEZfTU5RX0VSUl9EQkdcXHRcXHQoTklYX0xGQkFTRSB8IDB4MjcwKVxcbiAjZGVmaW5lXFx0TklYX0xGX1NFTkRfRVJSX0RCR1xcdFxcdChOSVhfTEZCQVNFIHwgMHgyODApXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jXFxuaW5kZXggYjAyMmY1MmM2ODQ1MC4uMmE1NjMwNTYxYjEyYiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuY1xcbkBAIC01NTQsNyArNTU0LDcgQEAgc3RhdGljIGludCBvdHgydmZfcmVhbGxvY19tc2l4X3ZlY3RvcnMoc3RydWN0IG90eDJfbmljICp2ZilcXG4gXFx0aW50IG51bV92ZWMsIGVycjtcXG4gXFxuIFxcdG51bV92ZWMgPSBody1cXHUwMDNlbml4X21zaXhvZmY7XFxuLVxcdG51bV92ZWMgKz0gTklYX0xGX0NJTlRfVkVDX1NUQVJUICsgaHctXFx1MDAzZW1heF9xdWV1ZXM7XFxuK1xcdG51bV92ZWMgKz0gTklYX0xGX1BPSVNPTl9WRUMgKyAxO1xcbiBcXG4gXFx0b3R4MnZmX2Rpc2FibGVfbWJveF9pbnRyKHZmKTtcXG4gXFx0cGNpX2ZyZWVfaXJxX3ZlY3RvcnMoaHctXFx1MDAzZXBkZXYpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMlQxODozMzoyNy43NTYxMzc5MDJaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxMTYxNjk3ODc2MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIE5JQyBkcml2ZXIgKG9jdGVvbnR4MiksIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgaGFyZHdhcmUgZGV2aWNlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudHMuIFRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGNhbm5vdCBiZSByZWFjaGVkIGR1cmluZyBmdXp6aW5nIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDM4ZmE1NDg2MThlYzkyOTU1MjA5YTJkNWMwZWMwYjJkMGE4NmIzMzFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEF1ZyAxMiAxODozMzoyNiAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jXG5pbmRleCBjOTk1ZjI5MDA4NTkwLi42MWIwMzM0ZDBiNmVmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuY1xuQEAgLTE1MjQsNiArMTUyNCwzNCBAQCBpcnFyZXR1cm5fdCBvdHgyX2NxX2ludHJfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpjcV9pcnEpXG4gfVxuIEVYUE9SVF9TWU1CT0wob3R4Ml9jcV9pbnRyX2hhbmRsZXIpO1xuIFxuK3N0YXRpYyBpcnFyZXR1cm5fdCBvdHgyX25peGxmX2Vycl9pbnRyX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGF0YSlcbit7XG4rXHRzdHJ1Y3Qgb3R4Ml9uaWMgKnBmID0gZGF0YTtcbitcdHU2NCByZWd2YWw7XG4rXG4rXHQvKiBDbGVhciBpbnRlcnJ1cHQgKi9cbitcdHJlZ3ZhbCA9IG90eDJfcmVhZDY0KHBmLCBOSVhfTEZfRVJSX0lOVCk7XG4rXHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9FUlJfSU5ULCByZWd2YWwpO1xuK1xuK1x0ZGV2X2Vycl9yYXRlbGltaXRlZChwZi1cdTAwM2VkZXYsIFwiTklYTEYgRXJyb3IgSW50ZXJydXB0OiAweCVsbHhcXG5cIiwgcmVndmFsKTtcbitcbitcdHJldHVybiBJUlFfSEFORExFRDtcbit9XG4rXG4rc3RhdGljIGlycXJldHVybl90IG90eDJfbml4bGZfcG9pc29uX2ludHJfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkYXRhKVxuK3tcbitcdHN0cnVjdCBvdHgyX25pYyAqcGYgPSBkYXRhO1xuK1x0dTY0IHJlZ3ZhbDtcbitcbitcdC8qIENsZWFyIGludGVycnVwdCAqL1xuK1x0cmVndmFsID0gb3R4Ml9yZWFkNjQocGYsIE5JWF9MRl9SQVMpO1xuK1x0b3R4Ml93cml0ZTY0KHBmLCBOSVhfTEZfUkFTLCByZWd2YWwpO1xuK1xuK1x0ZGV2X2Vycl9yYXRlbGltaXRlZChwZi1cdTAwM2VkZXYsIFwiTklYTEYgUG9pc29uIEludGVycnVwdDogMHglbGx4XFxuXCIsIHJlZ3ZhbCk7XG4rXG4rXHRyZXR1cm4gSVJRX0hBTkRMRUQ7XG4rfVxuK1xuIHZvaWQgb3R4Ml9kaXNhYmxlX25hcGkoc3RydWN0IG90eDJfbmljICpwZilcbiB7XG4gXHRzdHJ1Y3Qgb3R4Ml9xc2V0ICpxc2V0ID0gXHUwMDI2cGYtXHUwMDNlcXNldDtcbkBAIC0yMDgwLDYgKzIxMDgsMzQgQEAgaW50IG90eDJfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuIFxuIFx0b3R4Ml9zZXRfY2ludHNfYWZmaW5pdHkocGYpO1xuIFxuK1x0LyogUmVnaXN0ZXIgTklYTEYgZXJyb3IgSVJRIGhhbmRsZXIgKi9cbitcdHZlYyA9IHBmLVx1MDAzZWh3Lm5peF9tc2l4b2ZmICsgTklYX0xGX0VSUl9WRUM7XG4rXHRpcnFfbmFtZSA9IFx1MDAyNnBmLVx1MDAzZWh3LmlycV9uYW1lW3ZlYyAqIE5BTUVfU0laRV07XG4rXHRzbnByaW50ZihpcnFfbmFtZSwgTkFNRV9TSVpFLCBcIiVzLW5peGxmLWVyclwiLCBwZi1cdTAwM2VuZXRkZXYtXHUwMDNlbmFtZSk7XG4rXHRlcnIgPSByZXF1ZXN0X2lycShwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LCB2ZWMpLFxuK1x0XHRcdCAgb3R4Ml9uaXhsZl9lcnJfaW50cl9oYW5kbGVyLCAwLCBpcnFfbmFtZSwgcGYpO1xuK1x0aWYgKGVycikge1xuK1x0XHRkZXZfZXJyKHBmLVx1MDAzZWRldixcbitcdFx0XHRcIlJWVVBGJWQ6IElSUSByZWdpc3RyYXRpb24gZmFpbGVkIGZvciBOSVhMRiBFUlIgdmVjdG9yXFxuXCIsXG4rXHRcdFx0cnZ1X2dldF9wZihwZi1cdTAwM2VwZGV2LCBwZi1cdTAwM2VwY2lmdW5jKSk7XG4rXHRcdGdvdG8gZXJyX2ZyZWVfY2ludHM7XG4rXHR9XG4rXHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9FUlJfSU5UX0VOQV9XMVMsIE5JWF9MRl9FUlJfSU5UX01BU0spO1xuK1xuK1x0LyogUmVnaXN0ZXIgTklYTEYgUE9JU09OIGludGVycnVwdCBoYW5kbGVyICovXG4rXHR2ZWMgPSBwZi1cdTAwM2Vody5uaXhfbXNpeG9mZiArIE5JWF9MRl9QT0lTT05fVkVDO1xuK1x0aXJxX25hbWUgPSBcdTAwMjZwZi1cdTAwM2Vody5pcnFfbmFtZVt2ZWMgKiBOQU1FX1NJWkVdO1xuK1x0c25wcmludGYoaXJxX25hbWUsIE5BTUVfU0laRSwgXCIlcy1uaXhsZi1wb2lzb25cIiwgcGYtXHUwMDNlbmV0ZGV2LVx1MDAzZW5hbWUpO1xuK1x0ZXJyID0gcmVxdWVzdF9pcnEocGNpX2lycV92ZWN0b3IocGYtXHUwMDNlcGRldiwgdmVjKSxcbitcdFx0XHQgIG90eDJfbml4bGZfcG9pc29uX2ludHJfaGFuZGxlciwgMCwgaXJxX25hbWUsIHBmKTtcbitcdGlmIChlcnIpIHtcbitcdFx0ZGV2X2VycihwZi1cdTAwM2VkZXYsXG4rXHRcdFx0XCJSVlVQRiVkOiBJUlEgcmVnaXN0cmF0aW9uIGZhaWxlZCBmb3IgTklYTEYgUE9JU09OIHZlY3RvclxcblwiLFxuK1x0XHRcdHJ2dV9nZXRfcGYocGYtXHUwMDNlcGRldiwgcGYtXHUwMDNlcGNpZnVuYykpO1xuK1x0XHRnb3RvIGVycl9mcmVlX2VycmludDtcbitcdH1cbitcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX1JBU19FTkFfVzFTLCBOSVhfTEZfUkFTX01BU0spO1xuK1xuIFx0aWYgKHBmLVx1MDAzZWZsYWdzIFx1MDAyNiBPVFgyX0ZMQUdfUlhfVkxBTl9TVVBQT1JUKVxuIFx0XHRvdHgyX2VuYWJsZV9yeHZsYW4ocGYsIHRydWUpO1xuIFxuQEAgLTIxMzIsNiArMjE4OCwxNiBAQCBpbnQgb3R4Ml9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4gXHRuZXRpZl90eF9zdG9wX2FsbF9xdWV1ZXMobmV0ZGV2KTtcbiBcdG5ldGlmX2NhcnJpZXJfb2ZmKG5ldGRldik7XG4gXHRwZi1cdTAwM2VmbGFncyB8PSBPVFgyX0ZMQUdfSU5URl9ET1dOO1xuK1x0LyogZnJlZSBOSVhMRiBQT0lTT04gaXJxICovXG4rXHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LFxuK1x0XHRcdCAgICAgcGYtXHUwMDNlaHcubml4X21zaXhvZmYgKyBOSVhfTEZfUE9JU09OX1ZFQyk7XG4rXHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9SQVNfRU5BX1cxQywgTklYX0xGX1JBU19NQVNLKTtcbitcdGZyZWVfaXJxKHZlYywgcGYpO1xuK2Vycl9mcmVlX2VycmludDpcbitcdHZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLVx1MDAzZXBkZXYsXG4rXHRcdFx0ICAgICBwZi1cdTAwM2Vody5uaXhfbXNpeG9mZiArIE5JWF9MRl9FUlJfVkVDKTtcbitcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX0VSUl9JTlRfRU5BX1cxQywgTklYX0xGX0VSUl9JTlRfTUFTSyk7XG4rXHRmcmVlX2lycSh2ZWMsIHBmKTtcbiBlcnJfZnJlZV9jaW50czpcbiBcdG90eDJfZnJlZV9jaW50cyhwZiwgcWlkeCk7XG4gXHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LFxuQEAgLTIxNzEsNiArMjIzNywxOCBAQCBpbnQgb3R4Ml9zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4gXHQvKiBDbGVhciBSU1MgZW5hYmxlIGZsYWcgKi9cbiBcdHBmLVx1MDAzZWh3LnJzc19pbmZvLmVuYWJsZSA9IGZhbHNlO1xuIFxuK1x0LyogQ2xlYW51cCBOSVhMRiBQb2lzb24gSVJRICovXG4rXHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LFxuK1x0XHRcdCAgICAgcGYtXHUwMDNlaHcubml4X21zaXhvZmYgKyBOSVhfTEZfUE9JU09OX1ZFQyk7XG4rXHRvdHgyX3dyaXRlNjQocGYsIE5JWF9MRl9SQVNfRU5BX1cxQywgTklYX0xGX1JBU19NQVNLKTtcbitcdGZyZWVfaXJxKHZlYywgcGYpO1xuK1xuK1x0LyogQ2xlYW51cCBOSVhMRiBFcnJvciBJUlEgKi9cbitcdHZlYyA9IHBjaV9pcnFfdmVjdG9yKHBmLVx1MDAzZXBkZXYsXG4rXHRcdFx0ICAgICBwZi1cdTAwM2Vody5uaXhfbXNpeG9mZiArIE5JWF9MRl9FUlJfVkVDKTtcbitcdG90eDJfd3JpdGU2NChwZiwgTklYX0xGX0VSUl9JTlRfRU5BX1cxQywgTklYX0xGX0VSUl9JTlRfTUFTSyk7XG4rXHRmcmVlX2lycSh2ZWMsIHBmKTtcbitcbiBcdC8qIENsZWFudXAgUXVldWUgSVJRICovXG4gXHR2ZWMgPSBwY2lfaXJxX3ZlY3RvcihwZi1cdTAwM2VwZGV2LFxuIFx0XHRcdCAgICAgcGYtXHUwMDNlaHcubml4X21zaXhvZmYgKyBOSVhfTEZfUUlOVF9WRUNfU1RBUlQpO1xuQEAgLTMwMTAsNyArMzA4OCw3IEBAIGludCBvdHgyX3JlYWxsb2NfbXNpeF92ZWN0b3JzKHN0cnVjdCBvdHgyX25pYyAqcGYpXG4gXHQgKiB1cHRvIE5JWCB2ZWN0b3Igb2Zmc2V0LlxuIFx0ICovXG4gXHRudW1fdmVjID0gaHctXHUwMDNlbml4X21zaXhvZmY7XG4tXHRudW1fdmVjICs9IE5JWF9MRl9DSU5UX1ZFQ19TVEFSVCArIGh3LVx1MDAzZW1heF9xdWV1ZXM7XG4rXHRudW1fdmVjICs9IE5JWF9MRl9QT0lTT05fVkVDICsgMTtcbiBcbiBcdG90eDJfZGlzYWJsZV9tYm94X2ludHIocGYpO1xuIFx0cGNpX2ZyZWVfaXJxX3ZlY3RvcnMoaHctXHUwMDNlcGRldik7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcmVnLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9yZWcuaFxuaW5kZXggMWNkNTc2ZmQwOWM1Ni4uYzE0NGZkMmJiZTUxZiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3JlZy5oXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9yZWcuaFxuQEAgLTEyMSwxMCArMTIxLDEyIEBAXG4gI2RlZmluZVx0TklYX0xGX0VSUl9JTlRfVzFTXHRcdChOSVhfTEZCQVNFIHwgMHgyMjgpXG4gI2RlZmluZVx0TklYX0xGX0VSUl9JTlRfRU5BX1cxQ1x0XHQoTklYX0xGQkFTRSB8IDB4MjMwKVxuICNkZWZpbmVcdE5JWF9MRl9FUlJfSU5UX0VOQV9XMVNcdFx0KE5JWF9MRkJBU0UgfCAweDIzOClcbisjZGVmaW5lXHROSVhfTEZfRVJSX0lOVF9NQVNLXHRcdEdFTk1BU0tfVUxMKDMxLCAwKVxuICNkZWZpbmVcdE5JWF9MRl9SQVNcdFx0XHQoTklYX0xGQkFTRSB8IDB4MjQwKVxuICNkZWZpbmVcdE5JWF9MRl9SQVNfVzFTXHRcdFx0KE5JWF9MRkJBU0UgfCAweDI0OClcbiAjZGVmaW5lXHROSVhfTEZfUkFTX0VOQV9XMUNcdFx0KE5JWF9MRkJBU0UgfCAweDI1MClcbiAjZGVmaW5lXHROSVhfTEZfUkFTX0VOQV9XMVNcdFx0KE5JWF9MRkJBU0UgfCAweDI1OClcbisjZGVmaW5lXHROSVhfTEZfUkFTX01BU0tcdFx0XHRHRU5NQVNLX1VMTCgxMCwgMClcbiAjZGVmaW5lXHROSVhfTEZfU1FfT1BfRVJSX0RCR1x0XHQoTklYX0xGQkFTRSB8IDB4MjYwKVxuICNkZWZpbmVcdE5JWF9MRl9NTlFfRVJSX0RCR1x0XHQoTklYX0xGQkFTRSB8IDB4MjcwKVxuICNkZWZpbmVcdE5JWF9MRl9TRU5EX0VSUl9EQkdcdFx0KE5JWF9MRkJBU0UgfCAweDI4MClcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuY1xuaW5kZXggYjAyMmY1MmM2ODQ1MC4uMmE1NjMwNTYxYjEyYiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmNcbkBAIC01NTQsNyArNTU0LDcgQEAgc3RhdGljIGludCBvdHgydmZfcmVhbGxvY19tc2l4X3ZlY3RvcnMoc3RydWN0IG90eDJfbmljICp2ZilcbiBcdGludCBudW1fdmVjLCBlcnI7XG4gXG4gXHRudW1fdmVjID0gaHctXHUwMDNlbml4X21zaXhvZmY7XG4tXHRudW1fdmVjICs9IE5JWF9MRl9DSU5UX1ZFQ19TVEFSVCArIGh3LVx1MDAzZW1heF9xdWV1ZXM7XG4rXHRudW1fdmVjICs9IE5JWF9MRl9QT0lTT05fVkVDICsgMTtcbiBcbiBcdG90eDJ2Zl9kaXNhYmxlX21ib3hfaW50cih2Zik7XG4gXHRwY2lfZnJlZV9pcnFfdmVjdG9ycyhody1cdTAwM2VwZGV2KTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEyVDE4OjMzOjI3Ljc1NjEzOTE1MVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc0MDA1MjgzMzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBPY3Rlb25UWDIgTklDIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgdGhlIE9jdGVvblRYMiBOSUMgZHJpdmVyLCBzcGVjaWZpY2FsbHkgZmlsZXMgd2l0aGluIHRoZSBNYXJ2ZWxsIGBvY3Rlb250eDJgIGRpcmVjdG9yeTogYG90eDJfcGYuY2AsIGBvdHgyX3JlZy5oYCwgYW5kIGBvdHgyX3ZmLmNgLiBJdCdzIGludHJvZHVjaW5nIG5ldyBpbnRlcnJ1cHQgaGFuZGxlcnMsIGBvdHgyX25peGxmX2Vycl9pbnRyX2hhbmRsZXJgIGFuZCBgb3R4Ml9uaXhsZl9wb2lzb25faW50cl9oYW5kbGVyYCwgd2hpY2ggaXMgc3RhbmRhcmQgcHJhY3RpY2UgZm9yIGhhbmRsaW5nIG5ldyBlcnJvcnMgb3IgY29uZGl0aW9ucy4gVGhlIGhhbmRsZXJzIGFyZSBiZWluZyByZWdpc3RlcmVkIGluIGBvdHgyX29wZW5gIGFuZCBmcmVlZCBpbiBgb3R4Ml9zdG9wYCwgYXMgZXhwZWN0ZWQsIGFuZCBkdXJpbmcgZXJyb3IgaGFuZGxpbmcsIHRoYXQncyBjbGVhbiBhbmQgc2FmZS4gUGx1cywgaXQncyB1cGRhdGluZyB0aGUgTVNJLVggdmVjdG9yIGFsbG9jYXRpb24vZGVhbGxvY2F0aW9uIGxvZ2ljIGluIGBvdHgyX3JlYWxsb2NfbXNpeF92ZWN0b3JzYCBhbmQgdGhlIFZGIGNvdW50ZXJwYXJ0IGFzIHdlbGwuXG5cbk5vdywgdGhlIHF1ZXN0aW9uIGlzIHdoZXRoZXIgdGhpcyBpcyB3b3J0aCBmdXp6aW5nLiBUaGUgaW5zdHJ1Y3Rpb25zIHNheSB0byBza2lwIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGNhcmRzIHRoYXQgYXJlbid0IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuIE15IGluaXRpYWwgdGhvdWdodCBpcywgaXNuJ3QgdGhlIE9jdGVvblRYMiBnZW5lcmFsbHkgYSBwaHlzaWNhbCwgZGVkaWNhdGVkIGhhcmR3YXJlIE5JQz8gSSBkb24ndCByZWNhbGwgc2VlaW5nIGl0IGNvbW1vbmx5IGVtdWxhdGVkIHdpdGhpbiBhIHN0YW5kYXJkIFFFTVUgc2V0dXAuIEkgbmVlZCB0byBiZSBzdXJlLiBMZXQncyBkaWcgZGVlcGVyLlxuXG5UaGUgZmFjdCB0aGF0IGl0J3MgdXNpbmcgdGhpbmdzIGxpa2UgYHBjaV9pcnFfdmVjdG9yYCBhbmQgcmVmZXJlbmNpbmcgYHBmLVx1MDAzZXBkZXZgIGluIGBvdHgyX3BmLmNgIHN0cm9uZ2x5IHN1Z2dlc3RzIGl0J3MgYSBQQ0kgZGV2aWNlLiBJIHNob3VsZCBwcm9iYWJseSBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGF0IGBvdHgyX3BmLmNgIGluY2x1ZGVzIGEgYHBjaV9kcml2ZXJgIHN0cnVjdHVyZSB0byBjb25maXJtIHRoYXQgaXQncyBhIFBDSSBkcml2ZXIgYW5kIG5vdCBzb21lIG90aGVyIHR5cGUgb2YgbmV0d29yayBjYXJkLiBUaGF0IHNob3VsZCBzb2xpZGlmeSB3aGV0aGVyIGl0IGlzIGEgcGh5c2ljYWwgZGV2aWNlIHRoYXQgaXMgbm90IHR5cGljYWxseSBlbXVsYXRlZC4gSWYgaXQgaXMsIHRoZW4gSSBjYW4gY29uZmlkZW50bHkgY2xhc3NpZnkgdGhpcyBwYXRjaCBhcyBub3Qgd29ydGggZnV6emluZywgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGluc3RydWN0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDYyMiwiT3V0cHV0VG9rZW5zIjo0OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ2MywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEyVDE4OjMzOjM1LjE1NjY3MTM1OVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NDE4OTM1NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwY2lfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYz0zNTg3PXN0YXRpYyB2b2lkIG90eDJfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYy0zNjQ5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM6MzY1MDpzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgb3R4Ml9wZl9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYy0zNjUxLVxcdC5uYW1lID0gRFJWX05BTUUsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEyVDE4OjMzOjM1LjIwMDg2Njk4NVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQxNzIyMjQ0NTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqUENJIERyaXZlciBXb3J0aGluZXNzIEFzc2Vzc21lbnQqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGRyaXZlci4gWWVwLCBkZWZpbml0ZWx5IGEgUENJIGRyaXZlci4gVGhlIG5leHQgcXVlc3Rpb24gaXMsIGlzIHRoaXMgZHJpdmVyIHJ1bm5pbmcgb24gYSBzdGFuZGFyZCBlbXVsYXRlZCBkZXZpY2UgaW4gUUVNVT8gSSBoYXZlIHRvIGJlIHRob3JvdWdoIGhlcmUuIEhtbSwgdGhlIE9jdGVvblRYMi4uLiBubywgdGhhdCdzIG5vdCBhIGNvbW1vbiBRRU1VIGVtdWxhdGVkIGRldmljZS4gR2l2ZW4gdGhhdCwgdGhlIGNvZGUgcGF0aHMgd2l0aGluIHRoaXMgZHJpdmVyIGFyZSBzaW1wbHkgaW5hY2Nlc3NpYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciwgY3JpdGljYWxseSwgUUVNVS4gVGhhdCBtZWFucyB0cnlpbmcgdG8gZnV6eiB0aGlzIHRoaW5nIGlzIGEgbm9uLXN0YXJ0ZXIgaW4gbXkgdXN1YWwgdGVzdGluZyBlbnZpcm9ubWVudHMuIFRoZXJlZm9yZSwgYWZ0ZXIgY2FyZWZ1bCBjb25zaWRlcmF0aW9uLCBJJ20gc2V0dGluZyBgV29ydGhGdXp6aW5nPWZhbHNlYC4gSXQncyBqdXN0IG5vdCBmZWFzaWJsZSB3aXRoIGN1cnJlbnQgaW5mcmFzdHJ1Y3R1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU3MzIsIk91dHB1dFRva2VucyI6ODgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xMlQxODozMzozOS4zNzMwOTUwNjFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5NzcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgZHJpdmVyIChvY3Rlb250eDIpLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGRldmljZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnRzLiBUaGUgbW9kaWZpZWQgY29kZSBwYXRocyBjYW5ub3QgYmUgcmVhY2hlZCBkdXJpbmcgZnV6emluZyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWFydmVsbCBPY3Rlb25UWDIgTklDIGRyaXZlciAob2N0ZW9udHgyKSwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBoYXJkd2FyZSBkZXZpY2Ugbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cy4gVGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgY2Fubm90IGJlIHJlYWNoZWQgZHVyaW5nIGZ1enppbmcgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTJUMTg6MzM6MzkuMzczMTE4MzcxWiIsIlNlcSI6NywiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzNTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowm7kgd[1] Phase: Running StartedAt: 2026-08-12 18:34:01 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm7kgd[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-12 18:34:01 +0000 UTC FinishedAt: 2026-08-12 18:34:07 +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,}