Name: series-workflowr6zd2 Phase: Succeeded StartedAt: 2026-07-06 18:40:26 +0000 UTC FinishedAt: 2026-07-06 23:33:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr6zd2[0] Phase: Succeeded StartedAt: 2026-07-06 18:40:26 +0000 UTC FinishedAt: 2026-07-06 18:56:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr6zd2[0].run-triage Phase: Succeeded StartedAt: 2026-07-06 18:40:26 +0000 UTC FinishedAt: 2026-07-06 18:56:25 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "8cdeaa50eae8dad34885515f62559ee83e7e8dda", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BLK_DEV_NULL_BLK" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "8cdeaa50eae8dad34885515f62559ee83e7e8dda", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BLK_DEV_NULL_BLK" ], "series_id": "37db45f9-c05f-4dc1-8337-c274ebd9f162" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "null_init" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA2IDE4OjU1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JMS19ERVZfTlVMTF9CTEsmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtudWxsX2luaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggY2hhbmdlcyB0aGUgaW5pdGlhbGl6YXRpb24gb3JkZXIgb2YgdGhlIG51bGxfYmxrIGRyaXZlciB0byByZWdpc3RlciBjb25maWdmcyBhZnRlciBkZXZpY2VzIGFyZSBjcmVhdGVkLCBmaXhpbmcgYSBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb24gZHVyaW5nIG1vZHVsZSBsb2FkLiBJdCBhbHNvIHJlbmFtZXMgYSBtdXRleCBhbmQgY2hhbmdlcyBpdHMgaW5pdGlhbGl6YXRpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZHJpdmVyJiMzOTtzIGluaXRpYWxpemF0aW9uIGxvZ2ljIHRoYXQgY2FuIGJlIHJlYWNoZWQgZHVyaW5nIG1vZHVsZSBsb2FkaW5nIGFuZCBjb25maWdmcyBpbnRlcmFjdGlvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTg6NTU8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAwNDM4YWYzMjZlNmNkMmI0ZjYwNTgwMTM3MTUyMjMwNTZhNTVlZGJkXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgNiAxODo1NTo1MyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL251bGxfYmxrL21haW4uYyBiL2RyaXZlcnMvYmxvY2svbnVsbF9ibGsvbWFpbi5jXG5pbmRleCBmOGMwZmQ1N2UwNDFhOC4uOTgwMDA0OWIzYzNmM2YgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2Jsb2NrL251bGxfYmxrL21haW4uY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ibG9jay9udWxsX2Jsay9tYWluLmNcbkBAIC02Niw3ICYjNDM7NjYsNyBAQCBzdHJ1Y3QgbnVsbGJfcGFnZSB7XG4gI2RlZmluZSBOVUxMQl9QQUdFX0ZSRUUgKE1BUF9TWiAtIDIpXG4gXG4gc3RhdGljIExJU1RfSEVBRChudWxsYl9saXN0KTtcbi1zdGF0aWMgc3RydWN0IG11dGV4IGxvY2s7XG4mIzQzO3N0YXRpYyBERUZJTkVfTVVURVgobnVsbGJfbGlzdF9sb2NrKTtcbiBzdGF0aWMgaW50IG51bGxfbWFqb3I7XG4gc3RhdGljIERFRklORV9JREEobnVsbGJfaW5kZXhlcyk7XG4gc3RhdGljIHN0cnVjdCBibGtfbXFfdGFnX3NldCB0YWdfc2V0O1xuQEAgLTQyMyw5ICYjNDM7NDIzLDkgQEAgc3RhdGljIGludCBudWxsYl9hcHBseV9zdWJtaXRfcXVldWVzKHN0cnVjdCBudWxsYl9kZXZpY2UgKmRldixcbiB7XG4gXHRpbnQgcmV0O1xuIFxuLVx0bXV0ZXhfbG9jayhcdTAwMjZsb2NrKTtcbiYjNDM7XHRtdXRleF9sb2NrKFx1MDAyNm51bGxiX2xpc3RfbG9jayk7XG4gXHRyZXQgPSBudWxsYl91cGRhdGVfbnJfaHdfcXVldWVzKGRldiwgc3VibWl0X3F1ZXVlcywgZGV2LVx1MDAzZXBvbGxfcXVldWVzKTtcbi1cdG11dGV4X3VubG9jayhcdTAwMjZsb2NrKTtcbiYjNDM7XHRtdXRleF91bmxvY2soXHUwMDI2bnVsbGJfbGlzdF9sb2NrKTtcbiBcbiBcdHJldHVybiByZXQ7XG4gfVxuQEAgLTQzNSw5ICYjNDM7NDM1LDkgQEAgc3RhdGljIGludCBudWxsYl9hcHBseV9wb2xsX3F1ZXVlcyhzdHJ1Y3QgbnVsbGJfZGV2aWNlICpkZXYsXG4ge1xuIFx0aW50IHJldDtcbiBcbi1cdG11dGV4X2xvY2soXHUwMDI2bG9jayk7XG4mIzQzO1x0bXV0ZXhfbG9jayhcdTAwMjZudWxsYl9saXN0X2xvY2spO1xuIFx0cmV0ID0gbnVsbGJfdXBkYXRlX25yX2h3X3F1ZXVlcyhkZXYsIGRldi1cdTAwM2VzdWJtaXRfcXVldWVzLCBwb2xsX3F1ZXVlcyk7XG4tXHRtdXRleF91bmxvY2soXHUwMDI2bG9jayk7XG4mIzQzO1x0bXV0ZXhfdW5sb2NrKFx1MDAyNm51bGxiX2xpc3RfbG9jayk7XG4gXG4gXHRyZXR1cm4gcmV0O1xuIH1cbkBAIC00OTMsNyAmIzQzOzQ5Myw3IEBAIHN0YXRpYyBzc2l6ZV90IG51bGxiX2RldmljZV9wb3dlcl9zdG9yZShzdHJ1Y3QgY29uZmlnX2l0ZW0gKml0ZW0sXG4gXHRcdHJldHVybiByZXQ7XG4gXG4gXHRyZXQgPSBjb3VudDtcbi1cdG11dGV4X2xvY2soXHUwMDI2bG9jayk7XG4mIzQzO1x0bXV0ZXhfbG9jayhcdTAwMjZudWxsYl9saXN0X2xvY2spO1xuIFx0aWYgKCFkZXYtXHUwMDNlcG93ZXIgXHUwMDI2XHUwMDI2IG5ld3ApIHtcbiBcdFx0aWYgKHRlc3RfYW5kX3NldF9iaXQoTlVMTEJfREVWX0ZMX1VQLCBcdTAwMjZkZXYtXHUwMDNlZmxhZ3MpKVxuIFx0XHRcdGdvdG8gb3V0O1xuQEAgLTUxNiw3ICYjNDM7NTE2LDcgQEAgc3RhdGljIHNzaXplX3QgbnVsbGJfZGV2aWNlX3Bvd2VyX3N0b3JlKHN0cnVjdCBjb25maWdfaXRlbSAqaXRlbSxcbiBcdH1cbiBcbiBvdXQ6XG4tXHRtdXRleF91bmxvY2soXHUwMDI2bG9jayk7XG4mIzQzO1x0bXV0ZXhfdW5sb2NrKFx1MDAyNm51bGxiX2xpc3RfbG9jayk7XG4gXHRyZXR1cm4gcmV0O1xuIH1cbiBcbkBAIC03MDcsMTAgJiM0Mzs3MDcsMTAgQEAgbnVsbGJfZ3JvdXBfZHJvcF9pdGVtKHN0cnVjdCBjb25maWdfZ3JvdXAgKmdyb3VwLCBzdHJ1Y3QgY29uZmlnX2l0ZW0gKml0ZW0pXG4gXHRzdHJ1Y3QgbnVsbGJfZGV2aWNlICpkZXYgPSB0b19udWxsYl9kZXZpY2UoaXRlbSk7XG4gXG4gXHRpZiAodGVzdF9hbmRfY2xlYXJfYml0KE5VTExCX0RFVl9GTF9VUCwgXHUwMDI2ZGV2LVx1MDAzZWZsYWdzKSkge1xuLVx0XHRtdXRleF9sb2NrKFx1MDAyNmxvY2spO1xuJiM0MztcdFx0bXV0ZXhfbG9jayhcdTAwMjZudWxsYl9saXN0X2xvY2spO1xuIFx0XHRkZXYtXHUwMDNlcG93ZXIgPSBmYWxzZTtcbiBcdFx0bnVsbF9kZWxfZGV2KGRldi1cdTAwM2VudWxsYik7XG4tXHRcdG11dGV4X3VubG9jayhcdTAwMjZsb2NrKTtcbiYjNDM7XHRcdG11dGV4X3VubG9jayhcdTAwMjZudWxsYl9saXN0X2xvY2spO1xuIFx0fVxuIFx0bnVsbGJfZGVsX2ZhdWx0X2NvbmZpZyhkZXYpO1xuIFx0Y29uZmlnX2l0ZW1fcHV0KGl0ZW0pO1xuQEAgLTIwODEsMTQgJiM0MzsyMDgxLDE0IEBAIHN0YXRpYyBzdHJ1Y3QgbnVsbGIgKm51bGxfZmluZF9kZXZfYnlfbmFtZShjb25zdCBjaGFyICpuYW1lKVxuIHtcbiBcdHN0cnVjdCBudWxsYiAqbnVsbGIgPSBOVUxMLCAqbmI7XG4gXG4tXHRtdXRleF9sb2NrKFx1MDAyNmxvY2spO1xuJiM0MztcdG11dGV4X2xvY2soXHUwMDI2bnVsbGJfbGlzdF9sb2NrKTtcbiBcdGxpc3RfZm9yX2VhY2hfZW50cnkobmIsIFx1MDAyNm51bGxiX2xpc3QsIGxpc3QpIHtcbiBcdFx0aWYgKHN0cmNtcChuYi1cdTAwM2VkaXNrX25hbWUsIG5hbWUpID09IDApIHtcbiBcdFx0XHRudWxsYiA9IG5iO1xuIFx0XHRcdGJyZWFrO1xuIFx0XHR9XG4gXHR9XG4tXHRtdXRleF91bmxvY2soXHUwMDI2bG9jayk7XG4mIzQzO1x0bXV0ZXhfdW5sb2NrKFx1MDAyNm51bGxiX2xpc3RfbG9jayk7XG4gXG4gXHRyZXR1cm4gbnVsbGI7XG4gfVxuQEAgLTIxMDIsOSAmIzQzOzIxMDIsOSBAQCBzdGF0aWMgaW50IG51bGxfY3JlYXRlX2Rldih2b2lkKVxuIFx0aWYgKCFkZXYpXG4gXHRcdHJldHVybiAtRU5PTUVNO1xuIFxuLVx0bXV0ZXhfbG9jayhcdTAwMjZsb2NrKTtcbiYjNDM7XHRtdXRleF9sb2NrKFx1MDAyNm51bGxiX2xpc3RfbG9jayk7XG4gXHRyZXQgPSBudWxsX2FkZF9kZXYoZGV2KTtcbi1cdG11dGV4X3VubG9jayhcdTAwMjZsb2NrKTtcbiYjNDM7XHRtdXRleF91bmxvY2soXHUwMDI2bnVsbGJfbGlzdF9sb2NrKTtcbiBcdGlmIChyZXQpIHtcbiBcdFx0bnVsbF9mcmVlX2RldihkZXYpO1xuIFx0XHRyZXR1cm4gcmV0O1xuQEAgLTIxNjIsMTcgJiM0MzsyMTYyLDkgQEAgc3RhdGljIGludCBfX2luaXQgbnVsbF9pbml0KHZvaWQpXG4gXHRjb25maWdfZ3JvdXBfaW5pdChcdTAwMjZudWxsYl9zdWJzeXMuc3VfZ3JvdXApO1xuIFx0bXV0ZXhfaW5pdChcdTAwMjZudWxsYl9zdWJzeXMuc3VfbXV0ZXgpO1xuIFxuLVx0cmV0ID0gY29uZmlnZnNfcmVnaXN0ZXJfc3Vic3lzdGVtKFx1MDAyNm51bGxiX3N1YnN5cyk7XG4tXHRpZiAocmV0KVxuLVx0XHRyZXR1cm4gcmV0O1xuLVxuLVx0bXV0ZXhfaW5pdChcdTAwMjZsb2NrKTtcbi1cbiBcdG51bGxfbWFqb3IgPSByZWdpc3Rlcl9ibGtkZXYoMCwgXCYjMzQ7bnVsbGJcJiMzNDspO1xuLVx0aWYgKG51bGxfbWFqb3IgXHUwMDNjIDApIHtcbi1cdFx0cmV0ID0gbnVsbF9tYWpvcjtcbi1cdFx0Z290byBlcnJfY29uZjtcbi1cdH1cbiYjNDM7XHRpZiAobnVsbF9tYWpvciBcdTAwM2MgMClcbiYjNDM7XHRcdHJldHVybiBudWxsX21ham9yO1xuIFxuIFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgbnJfZGV2aWNlczsgaSYjNDM7JiM0MzspIHtcbiBcdFx0cmV0ID0gbnVsbF9jcmVhdGVfZGV2KCk7XG5AQCAtMjE4MCw2ICYjNDM7MjE3MiwxMCBAQCBzdGF0aWMgaW50IF9faW5pdCBudWxsX2luaXQodm9pZClcbiBcdFx0XHRnb3RvIGVycl9kZXY7XG4gXHR9XG4gXG4mIzQzO1x0cmV0ID0gY29uZmlnZnNfcmVnaXN0ZXJfc3Vic3lzdGVtKFx1MDAyNm51bGxiX3N1YnN5cyk7XG4mIzQzO1x0aWYgKHJldClcbiYjNDM7XHRcdGdvdG8gZXJyX2RldjtcbiYjNDM7XG4gXHRwcl9pbmZvKFwmIzM0O21vZHVsZSBsb2FkZWRcXG5cJiMzNDspO1xuIFx0cmV0dXJuIDA7XG4gXG5AQCAtMjE4OSw4ICYjNDM7MjE4NSw2IEBAIHN0YXRpYyBpbnQgX19pbml0IG51bGxfaW5pdCh2b2lkKVxuIFx0XHRudWxsX2Rlc3Ryb3lfZGV2KG51bGxiKTtcbiBcdH1cbiBcdHVucmVnaXN0ZXJfYmxrZGV2KG51bGxfbWFqb3IsIFwmIzM0O251bGxiXCYjMzQ7KTtcbi1lcnJfY29uZjpcbi1cdGNvbmZpZ2ZzX3VucmVnaXN0ZXJfc3Vic3lzdGVtKFx1MDAyNm51bGxiX3N1YnN5cyk7XG4gXHRyZXR1cm4gcmV0O1xuIH1cbiBcbkBAIC0yMjAyLDE3ICYjNDM7MjE5NiwxNyBAQCBzdGF0aWMgdm9pZCBfX2V4aXQgbnVsbF9leGl0KHZvaWQpXG4gXG4gXHR1bnJlZ2lzdGVyX2Jsa2RldihudWxsX21ham9yLCBcJiMzNDtudWxsYlwmIzM0Oyk7XG4gXG4tXHRtdXRleF9sb2NrKFx1MDAyNmxvY2spO1xuJiM0MztcdG11dGV4X2xvY2soXHUwMDI2bnVsbGJfbGlzdF9sb2NrKTtcbiBcdHdoaWxlICghbGlzdF9lbXB0eShcdTAwMjZudWxsYl9saXN0KSkge1xuIFx0XHRudWxsYiA9IGxpc3RfZW50cnkobnVsbGJfbGlzdC5uZXh0LCBzdHJ1Y3QgbnVsbGIsIGxpc3QpO1xuIFx0XHRudWxsX2Rlc3Ryb3lfZGV2KG51bGxiKTtcbiBcdH1cbi1cdG11dGV4X3VubG9jayhcdTAwMjZsb2NrKTtcbiYjNDM7XHRtdXRleF91bmxvY2soXHUwMDI2bnVsbGJfbGlzdF9sb2NrKTtcbiBcbiBcdGlmICh0YWdfc2V0Lm9wcylcbiBcdFx0YmxrX21xX2ZyZWVfdGFnX3NldChcdTAwMjZ0YWdfc2V0KTtcbiBcbi1cdG11dGV4X2Rlc3Ryb3koXHUwMDI2bG9jayk7XG4mIzQzO1x0bXV0ZXhfZGVzdHJveShcdTAwMjZudWxsYl9saXN0X2xvY2spO1xuIH1cbiBcbiBtb2R1bGVfaW5pdChudWxsX2luaXQpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA2IDE4OjU1PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JMS19ERVZfTlVMTF9CTEsmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtudWxsX2luaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggY2hhbmdlcyB0aGUgaW5pdGlhbGl6YXRpb24gb3JkZXIgb2YgdGhlIG51bGxfYmxrIGRyaXZlciB0byByZWdpc3RlciBjb25maWdmcyBhZnRlciBkZXZpY2VzIGFyZSBjcmVhdGVkLCBmaXhpbmcgYSBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb24gZHVyaW5nIG1vZHVsZSBsb2FkLiBJdCBhbHNvIHJlbmFtZXMgYSBtdXRleCBhbmQgY2hhbmdlcyBpdHMgaW5pdGlhbGl6YXRpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZHJpdmVyJiMzOTtzIGluaXRpYWxpemF0aW9uIGxvZ2ljIHRoYXQgY2FuIGJlIHJlYWNoZWQgZHVyaW5nIG1vZHVsZSBsb2FkaW5nIGFuZCBjb25maWdmcyBpbnRlcmFjdGlvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDA0MzhhZjMyNmU2Y2QyYjRmNjA1ODAxMzcxNTIyMzA1NmE1NWVkYmQKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEp1bCA2IDE4OjU1OjUzIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9udWxsX2Jsay9tYWluLmMgYi9kcml2ZXJzL2Jsb2NrL251bGxfYmxrL21haW4uYwppbmRleCBmOGMwZmQ1N2UwNDFhOC4uOTgwMDA0OWIzYzNmM2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2svbnVsbF9ibGsvbWFpbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvYmxvY2svbnVsbF9ibGsvbWFpbi5jCkBAIC02Niw3ICYjNDM7NjYsNyBAQCBzdHJ1Y3QgbnVsbGJfcGFnZSB7CiAjZGVmaW5lIE5VTExCX1BBR0VfRlJFRSAoTUFQX1NaIC0gMikKIAogc3RhdGljIExJU1RfSEVBRChudWxsYl9saXN0KTsKLXN0YXRpYyBzdHJ1Y3QgbXV0ZXggbG9jazsKJiM0MztzdGF0aWMgREVGSU5FX01VVEVYKG51bGxiX2xpc3RfbG9jayk7CiBzdGF0aWMgaW50IG51bGxfbWFqb3I7CiBzdGF0aWMgREVGSU5FX0lEQShudWxsYl9pbmRleGVzKTsKIHN0YXRpYyBzdHJ1Y3QgYmxrX21xX3RhZ19zZXQgdGFnX3NldDsKQEAgLTQyMyw5ICYjNDM7NDIzLDkgQEAgc3RhdGljIGludCBudWxsYl9hcHBseV9zdWJtaXRfcXVldWVzKHN0cnVjdCBudWxsYl9kZXZpY2UgKmRldiwKIHsKIAlpbnQgcmV0OwogCi0JbXV0ZXhfbG9jaygmYW1wO2xvY2spOwomIzQzOwltdXRleF9sb2NrKCZhbXA7bnVsbGJfbGlzdF9sb2NrKTsKIAlyZXQgPSBudWxsYl91cGRhdGVfbnJfaHdfcXVldWVzKGRldiwgc3VibWl0X3F1ZXVlcywgZGV2LSZndDtwb2xsX3F1ZXVlcyk7Ci0JbXV0ZXhfdW5sb2NrKCZhbXA7bG9jayk7CiYjNDM7CW11dGV4X3VubG9jaygmYW1wO251bGxiX2xpc3RfbG9jayk7CiAKIAlyZXR1cm4gcmV0OwogfQpAQCAtNDM1LDkgJiM0Mzs0MzUsOSBAQCBzdGF0aWMgaW50IG51bGxiX2FwcGx5X3BvbGxfcXVldWVzKHN0cnVjdCBudWxsYl9kZXZpY2UgKmRldiwKIHsKIAlpbnQgcmV0OwogCi0JbXV0ZXhfbG9jaygmYW1wO2xvY2spOwomIzQzOwltdXRleF9sb2NrKCZhbXA7bnVsbGJfbGlzdF9sb2NrKTsKIAlyZXQgPSBudWxsYl91cGRhdGVfbnJfaHdfcXVldWVzKGRldiwgZGV2LSZndDtzdWJtaXRfcXVldWVzLCBwb2xsX3F1ZXVlcyk7Ci0JbXV0ZXhfdW5sb2NrKCZhbXA7bG9jayk7CiYjNDM7CW11dGV4X3VubG9jaygmYW1wO251bGxiX2xpc3RfbG9jayk7CiAKIAlyZXR1cm4gcmV0OwogfQpAQCAtNDkzLDcgJiM0Mzs0OTMsNyBAQCBzdGF0aWMgc3NpemVfdCBudWxsYl9kZXZpY2VfcG93ZXJfc3RvcmUoc3RydWN0IGNvbmZpZ19pdGVtICppdGVtLAogCQlyZXR1cm4gcmV0OwogCiAJcmV0ID0gY291bnQ7Ci0JbXV0ZXhfbG9jaygmYW1wO2xvY2spOwomIzQzOwltdXRleF9sb2NrKCZhbXA7bnVsbGJfbGlzdF9sb2NrKTsKIAlpZiAoIWRldi0mZ3Q7cG93ZXIgJmFtcDsmYW1wOyBuZXdwKSB7CiAJCWlmICh0ZXN0X2FuZF9zZXRfYml0KE5VTExCX0RFVl9GTF9VUCwgJmFtcDtkZXYtJmd0O2ZsYWdzKSkKIAkJCWdvdG8gb3V0OwpAQCAtNTE2LDcgJiM0Mzs1MTYsNyBAQCBzdGF0aWMgc3NpemVfdCBudWxsYl9kZXZpY2VfcG93ZXJfc3RvcmUoc3RydWN0IGNvbmZpZ19pdGVtICppdGVtLAogCX0KIAogb3V0OgotCW11dGV4X3VubG9jaygmYW1wO2xvY2spOwomIzQzOwltdXRleF91bmxvY2soJmFtcDtudWxsYl9saXN0X2xvY2spOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTcwNywxMCAmIzQzOzcwNywxMCBAQCBudWxsYl9ncm91cF9kcm9wX2l0ZW0oc3RydWN0IGNvbmZpZ19ncm91cCAqZ3JvdXAsIHN0cnVjdCBjb25maWdfaXRlbSAqaXRlbSkKIAlzdHJ1Y3QgbnVsbGJfZGV2aWNlICpkZXYgPSB0b19udWxsYl9kZXZpY2UoaXRlbSk7CiAKIAlpZiAodGVzdF9hbmRfY2xlYXJfYml0KE5VTExCX0RFVl9GTF9VUCwgJmFtcDtkZXYtJmd0O2ZsYWdzKSkgewotCQltdXRleF9sb2NrKCZhbXA7bG9jayk7CiYjNDM7CQltdXRleF9sb2NrKCZhbXA7bnVsbGJfbGlzdF9sb2NrKTsKIAkJZGV2LSZndDtwb3dlciA9IGZhbHNlOwogCQludWxsX2RlbF9kZXYoZGV2LSZndDtudWxsYik7Ci0JCW11dGV4X3VubG9jaygmYW1wO2xvY2spOwomIzQzOwkJbXV0ZXhfdW5sb2NrKCZhbXA7bnVsbGJfbGlzdF9sb2NrKTsKIAl9CiAJbnVsbGJfZGVsX2ZhdWx0X2NvbmZpZyhkZXYpOwogCWNvbmZpZ19pdGVtX3B1dChpdGVtKTsKQEAgLTIwODEsMTQgJiM0MzsyMDgxLDE0IEBAIHN0YXRpYyBzdHJ1Y3QgbnVsbGIgKm51bGxfZmluZF9kZXZfYnlfbmFtZShjb25zdCBjaGFyICpuYW1lKQogewogCXN0cnVjdCBudWxsYiAqbnVsbGIgPSBOVUxMLCAqbmI7CiAKLQltdXRleF9sb2NrKCZhbXA7bG9jayk7CiYjNDM7CW11dGV4X2xvY2soJmFtcDtudWxsYl9saXN0X2xvY2spOwogCWxpc3RfZm9yX2VhY2hfZW50cnkobmIsICZhbXA7bnVsbGJfbGlzdCwgbGlzdCkgewogCQlpZiAoc3RyY21wKG5iLSZndDtkaXNrX25hbWUsIG5hbWUpID09IDApIHsKIAkJCW51bGxiID0gbmI7CiAJCQlicmVhazsKIAkJfQogCX0KLQltdXRleF91bmxvY2soJmFtcDtsb2NrKTsKJiM0MzsJbXV0ZXhfdW5sb2NrKCZhbXA7bnVsbGJfbGlzdF9sb2NrKTsKIAogCXJldHVybiBudWxsYjsKIH0KQEAgLTIxMDIsOSAmIzQzOzIxMDIsOSBAQCBzdGF0aWMgaW50IG51bGxfY3JlYXRlX2Rldih2b2lkKQogCWlmICghZGV2KQogCQlyZXR1cm4gLUVOT01FTTsKIAotCW11dGV4X2xvY2soJmFtcDtsb2NrKTsKJiM0MzsJbXV0ZXhfbG9jaygmYW1wO251bGxiX2xpc3RfbG9jayk7CiAJcmV0ID0gbnVsbF9hZGRfZGV2KGRldik7Ci0JbXV0ZXhfdW5sb2NrKCZhbXA7bG9jayk7CiYjNDM7CW11dGV4X3VubG9jaygmYW1wO251bGxiX2xpc3RfbG9jayk7CiAJaWYgKHJldCkgewogCQludWxsX2ZyZWVfZGV2KGRldik7CiAJCXJldHVybiByZXQ7CkBAIC0yMTYyLDE3ICYjNDM7MjE2Miw5IEBAIHN0YXRpYyBpbnQgX19pbml0IG51bGxfaW5pdCh2b2lkKQogCWNvbmZpZ19ncm91cF9pbml0KCZhbXA7bnVsbGJfc3Vic3lzLnN1X2dyb3VwKTsKIAltdXRleF9pbml0KCZhbXA7bnVsbGJfc3Vic3lzLnN1X211dGV4KTsKIAotCXJldCA9IGNvbmZpZ2ZzX3JlZ2lzdGVyX3N1YnN5c3RlbSgmYW1wO251bGxiX3N1YnN5cyk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQotCW11dGV4X2luaXQoJmFtcDtsb2NrKTsKLQogCW51bGxfbWFqb3IgPSByZWdpc3Rlcl9ibGtkZXYoMCwgJiMzNDtudWxsYiYjMzQ7KTsKLQlpZiAobnVsbF9tYWpvciAmbHQ7IDApIHsKLQkJcmV0ID0gbnVsbF9tYWpvcjsKLQkJZ290byBlcnJfY29uZjsKLQl9CiYjNDM7CWlmIChudWxsX21ham9yICZsdDsgMCkKJiM0MzsJCXJldHVybiBudWxsX21ham9yOwogCiAJZm9yIChpID0gMDsgaSAmbHQ7IG5yX2RldmljZXM7IGkmIzQzOyYjNDM7KSB7CiAJCXJldCA9IG51bGxfY3JlYXRlX2RldigpOwpAQCAtMjE4MCw2ICYjNDM7MjE3MiwxMCBAQCBzdGF0aWMgaW50IF9faW5pdCBudWxsX2luaXQodm9pZCkKIAkJCWdvdG8gZXJyX2RldjsKIAl9CiAKJiM0MzsJcmV0ID0gY29uZmlnZnNfcmVnaXN0ZXJfc3Vic3lzdGVtKCZhbXA7bnVsbGJfc3Vic3lzKTsKJiM0MzsJaWYgKHJldCkKJiM0MzsJCWdvdG8gZXJyX2RldjsKJiM0MzsKIAlwcl9pbmZvKCYjMzQ7bW9kdWxlIGxvYWRlZFxuJiMzNDspOwogCXJldHVybiAwOwogCkBAIC0yMTg5LDggJiM0MzsyMTg1LDYgQEAgc3RhdGljIGludCBfX2luaXQgbnVsbF9pbml0KHZvaWQpCiAJCW51bGxfZGVzdHJveV9kZXYobnVsbGIpOwogCX0KIAl1bnJlZ2lzdGVyX2Jsa2RldihudWxsX21ham9yLCAmIzM0O251bGxiJiMzNDspOwotZXJyX2NvbmY6Ci0JY29uZmlnZnNfdW5yZWdpc3Rlcl9zdWJzeXN0ZW0oJmFtcDtudWxsYl9zdWJzeXMpOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTIyMDIsMTcgJiM0MzsyMTk2LDE3IEBAIHN0YXRpYyB2b2lkIF9fZXhpdCBudWxsX2V4aXQodm9pZCkKIAogCXVucmVnaXN0ZXJfYmxrZGV2KG51bGxfbWFqb3IsICYjMzQ7bnVsbGImIzM0Oyk7CiAKLQltdXRleF9sb2NrKCZhbXA7bG9jayk7CiYjNDM7CW11dGV4X2xvY2soJmFtcDtudWxsYl9saXN0X2xvY2spOwogCXdoaWxlICghbGlzdF9lbXB0eSgmYW1wO251bGxiX2xpc3QpKSB7CiAJCW51bGxiID0gbGlzdF9lbnRyeShudWxsYl9saXN0Lm5leHQsIHN0cnVjdCBudWxsYiwgbGlzdCk7CiAJCW51bGxfZGVzdHJveV9kZXYobnVsbGIpOwogCX0KLQltdXRleF91bmxvY2soJmFtcDtsb2NrKTsKJiM0MzsJbXV0ZXhfdW5sb2NrKCZhbXA7bnVsbGJfbGlzdF9sb2NrKTsKIAogCWlmICh0YWdfc2V0Lm9wcykKIAkJYmxrX21xX2ZyZWVfdGFnX3NldCgmYW1wO3RhZ19zZXQpOwogCi0JbXV0ZXhfZGVzdHJveSgmYW1wO2xvY2spOwomIzQzOwltdXRleF9kZXN0cm95KCZhbXA7bnVsbGJfbGlzdF9sb2NrKTsKIH0KIAogbW9kdWxlX2luaXQobnVsbF9pbml0KTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTg6NTU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzQwNAoJCQkJCQkJb3V0cHV0OiAyOQoJCQkJCQkJdGhvdWdodHM6IDE2MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE51bGwgQmxvY2sgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgYWltZWQgc3F1YXJlbHkgYXQgdGhlIGBkcml2ZXJzL2Jsb2NrL251bGxfYmxrL21haW4uY2AgZmlsZSDigJMgdGhhdCYjMzk7cyB3aGVyZSB0aGUgY29yZSBvZiB0aGUgbnVsbCBibG9jayBkcml2ZXIgbGl2ZXMuIEltbWVkaWF0ZWx5LCBJIHNlZSBhIHN0cmFpZ2h0Zm9yd2FyZCBtdXRleCByZW5hbWUuIFRoZXkmIzM5O3JlIGNoYW5naW5nIGBsb2NrYCB0byBgbnVsbGJfbGlzdF9sb2NrYCBhbmQsIGltcG9ydGFudGx5LCBzd2l0Y2hpbmcgdGhlIGRlY2xhcmF0aW9uIGZyb20gYHN0YXRpYyBzdHJ1Y3QgbXV0ZXggbG9jaztgIHRvIGBzdGF0aWMgREVGSU5FX01VVEVYKG51bGxiX2xpc3RfbG9jayk7YC4gVGhhdCYjMzk7cyBhIGNvbW1vbiBhbmQgZ29vZCBwcmFjdGljZTsgYERFRklORV9NVVRFWGAgaXMgY2xlYW5lciBhbmQgZ2VuZXJhbGx5IHByZWZlcnJlZCBmb3Igc3RhdGljYWxseSBkZWZpbmVkIG11dGV4ZXMgYXMgaXQgaGFuZGxlcyBpbml0aWFsaXphdGlvbiBtb3JlIHJlbGlhYmx5LCBlc3BlY2lhbGx5IGluIHRoZSBrZXJuZWwmIzM5O3MgaW5pdGlhbGl6YXRpb24gY29udGV4dC4gTm8gYmlnIHN1cnByaXNlcyB0aGVyZSwganVzdCB0aWR5aW5nIHVwLgoKVGhlIG1vcmUgaW50ZXJlc3RpbmcgcGFydCBpcyB0aGUgaW5pdGlhbGl6YXRpb24gb3JkZXIgY2hhbmdlLiBUaGV5JiMzOTtyZSBhbHRlcmluZyB0aGUgc2VxdWVuY2Ugd2l0aGluIHRoZSBgbnVsbF9pbml0YCBmdW5jdGlvbi4gUHJldmlvdXNseSwgdGhlIGBjb25maWdmc19yZWdpc3Rlcl9zdWJzeXN0ZW1gIGNhbGwgY2FtZSAqYmVmb3JlKiBgcmVnaXN0ZXJfYmxrZGV2YCBhbmQgYG51bGxfY3JlYXRlX2RldmAuIE5vdywgdGhvc2UgbGF0dGVyIHR3byBjYWxscyBhcmUgaGFwcGVuaW5nIGZpcnN0LCAqdGhlbiogYGNvbmZpZ2ZzX3JlZ2lzdGVyX3N1YnN5c3RlbWAgaXMgaW52b2tlZC4gVGhhdCYjMzk7cyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBub3QganVzdCBhIGNvc21ldGljIG9uZSwgYW5kIHRoYXQmIzM5O3Mgc29tZXRoaW5nIHRoYXQgYWx3YXlzIHdhcnJhbnRzIGEgZGVlcGVyIGxvb2suIFRoZSBvcmRlciBvZiBpbml0aWFsaXphdGlvbiBjYW4gYmUgY3J1Y2lhbCwgZXNwZWNpYWxseSB3aGVuIGRpZmZlcmVudCBzdWJzeXN0ZW1zIGRlcGVuZCBvbiBlYWNoIG90aGVyLgoKTXkgbmV4dCBzdGVwIHdvdWxkIGJlIHRvIGltbWVkaWF0ZWx5IGNoZWNrIHRoZSBudWxsX2JsayYjMzk7cyBhc3NvY2lhdGVkIEtjb25maWcgb3B0aW9ucy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYWZmZWN0IHRoZSBkcml2ZXImIzM5O3MgYmVoYXZpb3IgYW5kIGRlcGVuZGVuY2llcy4gSGFzIHNvbWV0aGluZyBjaGFuZ2VkIGluIGhvdyB0aGUgY29uZmlndXJhdGlvbiBpbnRlcmFjdHMgd2l0aCBgY29uZmlnZnNgIG9yIHRoZSBibG9jayBkZXZpY2UgcmVnaXN0cmF0aW9uIG5vdyB0aGF0IHdlJiMzOTt2ZSBzd2l0Y2hlZCB0aGUgb3JkZXI/IFRoaXMgbWlnaHQgYmUgdGhlIGNydXggb2YgdGhlIGlzc3VlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aHkgdGhpcyByZS1vcmRlcmluZyB3YXMgZGVlbWVkIG5lY2Vzc2FyeSBhbmQgd2hhdCBwb3RlbnRpYWwgc2lkZSBlZmZlY3RzIGl0IG1pZ2h0IGhhdmUuIFVuZGVyc3RhbmRpbmcgdGhlICp3aHkqIGlzIHRoZSBtb3N0IGNyaXRpY2FsIGFzcGVjdCBvZiBzdWNoIGEgY2hhbmdlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA2IDE4OjU1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O251bGxfYmxrJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9ibG9jay9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvYmxvY2svS2NvbmZpZz0xNz1pZiBCTEtfREVWXG5kcml2ZXJzL2Jsb2NrL0tjb25maWctMTgtXG5kcml2ZXJzL2Jsb2NrL0tjb25maWc6MTk6c291cmNlIFwmIzM0O2RyaXZlcnMvYmxvY2svbnVsbF9ibGsvS2NvbmZpZ1wmIzM0O1xuZHJpdmVycy9ibG9jay9LY29uZmlnLTIwLXNvdXJjZSBcJiMzNDtkcml2ZXJzL2Jsb2NrL3JudWxsL0tjb25maWdcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNiAxODo1NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MDY4CgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBmaXJzdC1wZXJzb24gc3VtbWFyeSBvZiB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEaXZpbmcgaW50byB0aGUgTnVsbCBCbG9jayBEcml2ZXIgQ29uZmlndXJhdGlvbioqCgpPa2F5LCB0aW1lIHRvIGdldCBteSBoYW5kcyBkaXJ0eSB3aXRoIHRoZSBudWxsIGJsb2NrIGRyaXZlci4gV2hlcmUgZG9lcyB0aGUgY29uZmlndXJhdGlvbiBsaXZlIGZvciB0aGlzIHRoaW5nPyBBaCwgcmlnaHQsIGl0JiMzOTtzIHByZXR0eSBzdGFuZGFyZCBwcmFjdGljZTogYGRyaXZlcnMvYmxvY2svbnVsbF9ibGsvS2NvbmZpZ2AuIExldCYjMzk7cyBjb25maXJtIHRoYXQmIzM5O3Mgd2hlcmUgdGhlIHJlbGV2YW50IG9wdGlvbnMgYXJlIGRlZmluZWQuIEkgZXhwZWN0IHRvIHNlZSB0aGUgdXN1YWwgc3VzcGVjdHMg4oCTIGVuYWJsaW5nL2Rpc2FibGluZyB0aGUgZHJpdmVyLCBtYXliZSBzb21lIG9wdGlvbnMgZm9yIGJsb2NrIHNpemUsIG51bWJlciBvZiBkZXZpY2VzLCBhbmQgb3RoZXIgcGFyYW1ldGVycy4gSSYjMzk7bGwgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgYnVpbGQgc3lzdGVtIGhhbmRsZXMgdGhlIGBLY29uZmlnYCBmaWxlIGFuZCB3aGF0IGRlcGVuZGVuY2llcyBtaWdodCBiZSBpbiBwbGF5IHRvIGdldCBhIHByb3BlciBoYW5kbGUgb24gdGhpcyBtb2R1bGUuIFVuZGVyc3RhbmRpbmcgdGhlIGJ1aWxkIGNvbmZpZ3VyYXRpb24gaXMga2V5IHRvIHRoZSBvdmVyYWxsIGRlc2lnbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNiAxODo1NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9ibG9jay9udWxsX2Jsay9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvYmxvY2svbnVsbF9ibGsvS2NvbmZpZy01LVxuZHJpdmVycy9ibG9jay9udWxsX2Jsay9LY29uZmlnOjY6Y29uZmlnIEJMS19ERVZfTlVMTF9CTEtcbmRyaXZlcnMvYmxvY2svbnVsbF9ibGsvS2NvbmZpZy03LVx0dHJpc3RhdGUgXCYjMzQ7TnVsbCB0ZXN0IGJsb2NrIGRyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvYmxvY2svbnVsbF9ibGsvS2NvbmZpZy05LVxuZHJpdmVycy9ibG9jay9udWxsX2Jsay9LY29uZmlnOjEwOmNvbmZpZyBCTEtfREVWX05VTExfQkxLX0ZBVUxUX0lOSkVDVElPTlxuZHJpdmVycy9ibG9jay9udWxsX2Jsay9LY29uZmlnLTExLVx0Ym9vbCBcJiMzNDtTdXBwb3J0IGZhdWx0IGluamVjdGlvbiBmb3IgTnVsbCB0ZXN0IGJsb2NrIGRyaXZlclwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA2IDE4OjU2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ0MjcKCQkJCQkJCW91dHB1dDogMTEwCgkJCQkJCQl0aG91Z2h0czogODY0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTnVsbCBCbG9jayBEZXZpY2UgSW5pdGlhbGl6YXRpb24gUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBCTEtfREVWX05VTExfQkxLYC4gSXQgc2VlbXMgbGlrZSB0aGUgY29yZSBjaGFuZ2UgaXMgd2l0aGluIGBudWxsX2luaXRgLCB0aGUgbW9kdWxlJiMzOTtzIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uLiBUaGUgc3RhdGVkIGdvYWwgaXMgdG8gcmVzb2x2ZSBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbiBvciBpbml0aWFsaXphdGlvbiBvcmRlciBwcm9ibGVtLiBTcGVjaWZpY2FsbHksIGl0IGFwcGVhcnMgY29uZmlnZnMgbWlnaHQgaGF2ZSBiZWVuIGFjY2Vzc2libGUgYmVmb3JlIHRoZSBibG9jayBkZXZpY2Ugd2FzIGZ1bGx5IHJlZ2lzdGVyZWQsIG9yIGRldmljZXMgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseSBjcmVhdGVkLgoKVGhlIGluaXRpYWwgdGhvdWdodCBpcywgJiMzNDtJcyB0aGlzIGZ1enphYmxlPyYjMzQ7IEl0JiMzOTtzIGFuIGluaXRpYWxpemF0aW9uIG9yZGVyIGNoYW5nZSB3aXRoaW4gYSBtb2R1bGUmIzM5O3MgaW5pdCBmdW5jdGlvbi4gRnV6emluZyBtb2R1bGUgbG9hZGluZyBhbmQgdW5sb2FkaW5nICpjb3VsZCogcG90ZW50aWFsbHkgaGl0IHRoaXMsIGJ1dCBpdCYjMzk7cyBmdW5kYW1lbnRhbGx5IGEgb25lLXRpbWUgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UuIE9uIHRoZSBvdGhlciBoYW5kLCB0aGUgY2hhbmdlIGlzIGZ1bmN0aW9uYWwuIFN5emthbGxlciwgaW4gcGFydGljdWxhciwgZG9lcyBmdXp6IG1vZHVsZSBsb2FkaW5nLCBhbmQgY29uZmlnZnMgaW50ZXJhY3Rpb25zLiBTeXprYWxsZXIgc3BlY2lmaWNhbGx5IGZ1enplZCBjb25maWdmcyBpbnRlcmFjdGlvbnMgd2l0aCBudWxsX2Jsay4KClRoZSBwYXRjaCBzZWVtcyB0byByZW9yZGVyIGluaXRpYWxpemF0aW9uLiBJdCAqYWxzbyogcmVuYW1lcyBgbG9ja2AgdG8gYG51bGxiX2xpc3RfbG9ja2AsIHdoaWNoIGlzIG1haW5seSBhIGNvc21ldGljIGNoYW5nZS4gTG9va2luZyBhdCB0aGUgZGlmZiBhZ2FpbiwgaXQmIzM5O3MgY2xlYXIgdGhlIGluaXRpYWxpemF0aW9uIG9yZGVyIGlzIHRoZSBjb3JlIGZ1bmN0aW9uYWwgY2hhbmdlLiBOb3csIHRoaXMgaXMgZGVmaW5pdGVseSB3b3J0aCBmdXp6aW5nLiBJIGNhbiB0YXJnZXQgaXQgYnkgZm9jdXNpbmcgb24gdGhlIGBudWxsX2luaXRgIGZ1bmN0aW9uLgoKSSBzZWUgbm93IHRoYXQgdGhlIHBhdGNoIGNoYW5nZXMgdGhlIGluaXRpYWxpemF0aW9uIGxvZ2ljLiBUaGUgcGF0Y2ggbm93IHJlZ2lzdGVycyBjb25maWdmcyAqYWZ0ZXIqIGJsb2NrIGRldmljZXMgaGF2ZSBiZWVuIGNyZWF0ZWQuIFRoaXMgcmVzb2x2ZXMgYSByYWNlIHdoZXJlIHVzZXJzcGFjZSBjb3VsZCBpbnRlcmFjdCB3aXRoIGNvbmZpZ2ZzIGJlZm9yZSB0aGUgZHJpdmVyIHdhcyBmdWxseSBpbml0aWFsaXplZC4KCk5vdyB0aGUgcGF0Y2ggY2xlYW5zIHVwIGEgbXV0ZXggYnkgdXNpbmcgYERFRklORV9NVVRFWGAgaW5zdGVhZCBvZiBgbXV0ZXhfaW5pdGAuIFN0aWxsLCB0aGUga2V5IHRha2Vhd2F5IGlzIHRoZSBpbml0IG9yZGVyIGNoYW5nZSwgd2hpY2ggKmlzKiBmdW5jdGlvbmFsLiBJdCYjMzk7cyBhbiBpbXBvcnRhbnQgZml4LgoKVGhlcmVmb3JlLCBteSBjb25jbHVzaW9uIGlzIGNsZWFyOgoqICAgYFdvcnRoRnV6emluZz10cnVlYAoqICAgYEZvY3VzU3ltYm9scz1bJiMzNDtudWxsX2luaXQmIzM0O11gCiogICBgRW5hYmxlQ29uZmlncz1bJiMzNDtCTEtfREVWX05VTExfQkxLJiMzNDtdYC4KClRoZSByZWFzb25pbmcgaXMgc3RyYWlnaHRmb3J3YXJkOiBUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlIG9mIHRoZSBgbnVsbF9ibGtgIGRyaXZlci4gVGhpcyBpbnZvbHZlcyByZWdpc3RlcmluZyBjb25maWdmcyBhZnRlciBkZXZpY2VzIGhhdmUgYmVlbiBjcmVhdGVkLiBUaGlzIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gdGhhdCBjb3VsZCBvY2N1ciBkdXJpbmcgbW9kdWxlIGxvYWRpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTg6NTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JMS19ERVZfTlVMTF9CTEsmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtudWxsX2luaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggY2hhbmdlcyB0aGUgaW5pdGlhbGl6YXRpb24gb3JkZXIgb2YgdGhlIG51bGxfYmxrIGRyaXZlciB0byByZWdpc3RlciBjb25maWdmcyBhZnRlciBkZXZpY2VzIGFyZSBjcmVhdGVkLCBmaXhpbmcgYSBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb24gZHVyaW5nIG1vZHVsZSBsb2FkLiBJdCBhbHNvIHJlbmFtZXMgYSBtdXRleCBhbmQgY2hhbmdlcyBpdHMgaW5pdGlhbGl6YXRpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZHJpdmVyJiMzOTtzIGluaXRpYWxpemF0aW9uIGxvZ2ljIHRoYXQgY2FuIGJlIHJlYWNoZWQgZHVyaW5nIG1vZHVsZSBsb2FkaW5nIGFuZCBjb25maWdmcyBpbnRlcmFjdGlvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JMS19ERVZfTlVMTF9CTEsmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtudWxsX2luaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggY2hhbmdlcyB0aGUgaW5pdGlhbGl6YXRpb24gb3JkZXIgb2YgdGhlIG51bGxfYmxrIGRyaXZlciB0byByZWdpc3RlciBjb25maWdmcyBhZnRlciBkZXZpY2VzIGFyZSBjcmVhdGVkLCBmaXhpbmcgYSBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb24gZHVyaW5nIG1vZHVsZSBsb2FkLiBJdCBhbHNvIHJlbmFtZXMgYSBtdXRleCBhbmQgY2hhbmdlcyBpdHMgaW5pdGlhbGl6YXRpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZHJpdmVyJiMzOTtzIGluaXRpYWxpemF0aW9uIGxvZ2ljIHRoYXQgY2FuIGJlIHJlYWNoZWQgZHVyaW5nIG1vZHVsZSBsb2FkaW5nIGFuZCBjb25maWdmcyBpbnRlcmFjdGlvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxODo1NTo1NC4zMjIyMTQ2N1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4NDk1Mjc5OTEwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJMS19ERVZfTlVMTF9CTEtcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJudWxsX2luaXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBjaGFuZ2VzIHRoZSBpbml0aWFsaXphdGlvbiBvcmRlciBvZiB0aGUgbnVsbF9ibGsgZHJpdmVyIHRvIHJlZ2lzdGVyIGNvbmZpZ2ZzIGFmdGVyIGRldmljZXMgYXJlIGNyZWF0ZWQsIGZpeGluZyBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbiBkdXJpbmcgbW9kdWxlIGxvYWQuIEl0IGFsc28gcmVuYW1lcyBhIG11dGV4IGFuZCBjaGFuZ2VzIGl0cyBpbml0aWFsaXphdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXIncyBpbml0aWFsaXphdGlvbiBsb2dpYyB0aGF0IGNhbiBiZSByZWFjaGVkIGR1cmluZyBtb2R1bGUgbG9hZGluZyBhbmQgY29uZmlnZnMgaW50ZXJhY3Rpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxODo1NTo1NC4zMjIyMjA4WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NzEzOTM2OTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAwNDM4YWYzMjZlNmNkMmI0ZjYwNTgwMTM3MTUyMjMwNTZhNTVlZGJkXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gSnVsIDYgMTg6NTU6NTMgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9udWxsX2Jsay9tYWluLmMgYi9kcml2ZXJzL2Jsb2NrL251bGxfYmxrL21haW4uY1xcbmluZGV4IGY4YzBmZDU3ZTA0MWE4Li45ODAwMDQ5YjNjM2YzZiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL2Jsb2NrL251bGxfYmxrL21haW4uY1xcbisrKyBiL2RyaXZlcnMvYmxvY2svbnVsbF9ibGsvbWFpbi5jXFxuQEAgLTY2LDcgKzY2LDcgQEAgc3RydWN0IG51bGxiX3BhZ2Uge1xcbiAjZGVmaW5lIE5VTExCX1BBR0VfRlJFRSAoTUFQX1NaIC0gMilcXG4gXFxuIHN0YXRpYyBMSVNUX0hFQUQobnVsbGJfbGlzdCk7XFxuLXN0YXRpYyBzdHJ1Y3QgbXV0ZXggbG9jaztcXG4rc3RhdGljIERFRklORV9NVVRFWChudWxsYl9saXN0X2xvY2spO1xcbiBzdGF0aWMgaW50IG51bGxfbWFqb3I7XFxuIHN0YXRpYyBERUZJTkVfSURBKG51bGxiX2luZGV4ZXMpO1xcbiBzdGF0aWMgc3RydWN0IGJsa19tcV90YWdfc2V0IHRhZ19zZXQ7XFxuQEAgLTQyMyw5ICs0MjMsOSBAQCBzdGF0aWMgaW50IG51bGxiX2FwcGx5X3N1Ym1pdF9xdWV1ZXMoc3RydWN0IG51bGxiX2RldmljZSAqZGV2LFxcbiB7XFxuIFxcdGludCByZXQ7XFxuIFxcbi1cXHRtdXRleF9sb2NrKFxcdTAwMjZsb2NrKTtcXG4rXFx0bXV0ZXhfbG9jayhcXHUwMDI2bnVsbGJfbGlzdF9sb2NrKTtcXG4gXFx0cmV0ID0gbnVsbGJfdXBkYXRlX25yX2h3X3F1ZXVlcyhkZXYsIHN1Ym1pdF9xdWV1ZXMsIGRldi1cXHUwMDNlcG9sbF9xdWV1ZXMpO1xcbi1cXHRtdXRleF91bmxvY2soXFx1MDAyNmxvY2spO1xcbitcXHRtdXRleF91bmxvY2soXFx1MDAyNm51bGxiX2xpc3RfbG9jayk7XFxuIFxcbiBcXHRyZXR1cm4gcmV0O1xcbiB9XFxuQEAgLTQzNSw5ICs0MzUsOSBAQCBzdGF0aWMgaW50IG51bGxiX2FwcGx5X3BvbGxfcXVldWVzKHN0cnVjdCBudWxsYl9kZXZpY2UgKmRldixcXG4ge1xcbiBcXHRpbnQgcmV0O1xcbiBcXG4tXFx0bXV0ZXhfbG9jayhcXHUwMDI2bG9jayk7XFxuK1xcdG11dGV4X2xvY2soXFx1MDAyNm51bGxiX2xpc3RfbG9jayk7XFxuIFxcdHJldCA9IG51bGxiX3VwZGF0ZV9ucl9od19xdWV1ZXMoZGV2LCBkZXYtXFx1MDAzZXN1Ym1pdF9xdWV1ZXMsIHBvbGxfcXVldWVzKTtcXG4tXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZsb2NrKTtcXG4rXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZudWxsYl9saXN0X2xvY2spO1xcbiBcXG4gXFx0cmV0dXJuIHJldDtcXG4gfVxcbkBAIC00OTMsNyArNDkzLDcgQEAgc3RhdGljIHNzaXplX3QgbnVsbGJfZGV2aWNlX3Bvd2VyX3N0b3JlKHN0cnVjdCBjb25maWdfaXRlbSAqaXRlbSxcXG4gXFx0XFx0cmV0dXJuIHJldDtcXG4gXFxuIFxcdHJldCA9IGNvdW50O1xcbi1cXHRtdXRleF9sb2NrKFxcdTAwMjZsb2NrKTtcXG4rXFx0bXV0ZXhfbG9jayhcXHUwMDI2bnVsbGJfbGlzdF9sb2NrKTtcXG4gXFx0aWYgKCFkZXYtXFx1MDAzZXBvd2VyIFxcdTAwMjZcXHUwMDI2IG5ld3ApIHtcXG4gXFx0XFx0aWYgKHRlc3RfYW5kX3NldF9iaXQoTlVMTEJfREVWX0ZMX1VQLCBcXHUwMDI2ZGV2LVxcdTAwM2VmbGFncykpXFxuIFxcdFxcdFxcdGdvdG8gb3V0O1xcbkBAIC01MTYsNyArNTE2LDcgQEAgc3RhdGljIHNzaXplX3QgbnVsbGJfZGV2aWNlX3Bvd2VyX3N0b3JlKHN0cnVjdCBjb25maWdfaXRlbSAqaXRlbSxcXG4gXFx0fVxcbiBcXG4gb3V0Olxcbi1cXHRtdXRleF91bmxvY2soXFx1MDAyNmxvY2spO1xcbitcXHRtdXRleF91bmxvY2soXFx1MDAyNm51bGxiX2xpc3RfbG9jayk7XFxuIFxcdHJldHVybiByZXQ7XFxuIH1cXG4gXFxuQEAgLTcwNywxMCArNzA3LDEwIEBAIG51bGxiX2dyb3VwX2Ryb3BfaXRlbShzdHJ1Y3QgY29uZmlnX2dyb3VwICpncm91cCwgc3RydWN0IGNvbmZpZ19pdGVtICppdGVtKVxcbiBcXHRzdHJ1Y3QgbnVsbGJfZGV2aWNlICpkZXYgPSB0b19udWxsYl9kZXZpY2UoaXRlbSk7XFxuIFxcbiBcXHRpZiAodGVzdF9hbmRfY2xlYXJfYml0KE5VTExCX0RFVl9GTF9VUCwgXFx1MDAyNmRldi1cXHUwMDNlZmxhZ3MpKSB7XFxuLVxcdFxcdG11dGV4X2xvY2soXFx1MDAyNmxvY2spO1xcbitcXHRcXHRtdXRleF9sb2NrKFxcdTAwMjZudWxsYl9saXN0X2xvY2spO1xcbiBcXHRcXHRkZXYtXFx1MDAzZXBvd2VyID0gZmFsc2U7XFxuIFxcdFxcdG51bGxfZGVsX2RldihkZXYtXFx1MDAzZW51bGxiKTtcXG4tXFx0XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZsb2NrKTtcXG4rXFx0XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZudWxsYl9saXN0X2xvY2spO1xcbiBcXHR9XFxuIFxcdG51bGxiX2RlbF9mYXVsdF9jb25maWcoZGV2KTtcXG4gXFx0Y29uZmlnX2l0ZW1fcHV0KGl0ZW0pO1xcbkBAIC0yMDgxLDE0ICsyMDgxLDE0IEBAIHN0YXRpYyBzdHJ1Y3QgbnVsbGIgKm51bGxfZmluZF9kZXZfYnlfbmFtZShjb25zdCBjaGFyICpuYW1lKVxcbiB7XFxuIFxcdHN0cnVjdCBudWxsYiAqbnVsbGIgPSBOVUxMLCAqbmI7XFxuIFxcbi1cXHRtdXRleF9sb2NrKFxcdTAwMjZsb2NrKTtcXG4rXFx0bXV0ZXhfbG9jayhcXHUwMDI2bnVsbGJfbGlzdF9sb2NrKTtcXG4gXFx0bGlzdF9mb3JfZWFjaF9lbnRyeShuYiwgXFx1MDAyNm51bGxiX2xpc3QsIGxpc3QpIHtcXG4gXFx0XFx0aWYgKHN0cmNtcChuYi1cXHUwMDNlZGlza19uYW1lLCBuYW1lKSA9PSAwKSB7XFxuIFxcdFxcdFxcdG51bGxiID0gbmI7XFxuIFxcdFxcdFxcdGJyZWFrO1xcbiBcXHRcXHR9XFxuIFxcdH1cXG4tXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZsb2NrKTtcXG4rXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZudWxsYl9saXN0X2xvY2spO1xcbiBcXG4gXFx0cmV0dXJuIG51bGxiO1xcbiB9XFxuQEAgLTIxMDIsOSArMjEwMiw5IEBAIHN0YXRpYyBpbnQgbnVsbF9jcmVhdGVfZGV2KHZvaWQpXFxuIFxcdGlmICghZGV2KVxcbiBcXHRcXHRyZXR1cm4gLUVOT01FTTtcXG4gXFxuLVxcdG11dGV4X2xvY2soXFx1MDAyNmxvY2spO1xcbitcXHRtdXRleF9sb2NrKFxcdTAwMjZudWxsYl9saXN0X2xvY2spO1xcbiBcXHRyZXQgPSBudWxsX2FkZF9kZXYoZGV2KTtcXG4tXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZsb2NrKTtcXG4rXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZudWxsYl9saXN0X2xvY2spO1xcbiBcXHRpZiAocmV0KSB7XFxuIFxcdFxcdG51bGxfZnJlZV9kZXYoZGV2KTtcXG4gXFx0XFx0cmV0dXJuIHJldDtcXG5AQCAtMjE2MiwxNyArMjE2Miw5IEBAIHN0YXRpYyBpbnQgX19pbml0IG51bGxfaW5pdCh2b2lkKVxcbiBcXHRjb25maWdfZ3JvdXBfaW5pdChcXHUwMDI2bnVsbGJfc3Vic3lzLnN1X2dyb3VwKTtcXG4gXFx0bXV0ZXhfaW5pdChcXHUwMDI2bnVsbGJfc3Vic3lzLnN1X211dGV4KTtcXG4gXFxuLVxcdHJldCA9IGNvbmZpZ2ZzX3JlZ2lzdGVyX3N1YnN5c3RlbShcXHUwMDI2bnVsbGJfc3Vic3lzKTtcXG4tXFx0aWYgKHJldClcXG4tXFx0XFx0cmV0dXJuIHJldDtcXG4tXFxuLVxcdG11dGV4X2luaXQoXFx1MDAyNmxvY2spO1xcbi1cXG4gXFx0bnVsbF9tYWpvciA9IHJlZ2lzdGVyX2Jsa2RldigwLCBcXFwibnVsbGJcXFwiKTtcXG4tXFx0aWYgKG51bGxfbWFqb3IgXFx1MDAzYyAwKSB7XFxuLVxcdFxcdHJldCA9IG51bGxfbWFqb3I7XFxuLVxcdFxcdGdvdG8gZXJyX2NvbmY7XFxuLVxcdH1cXG4rXFx0aWYgKG51bGxfbWFqb3IgXFx1MDAzYyAwKVxcbitcXHRcXHRyZXR1cm4gbnVsbF9tYWpvcjtcXG4gXFxuIFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBucl9kZXZpY2VzOyBpKyspIHtcXG4gXFx0XFx0cmV0ID0gbnVsbF9jcmVhdGVfZGV2KCk7XFxuQEAgLTIxODAsNiArMjE3MiwxMCBAQCBzdGF0aWMgaW50IF9faW5pdCBudWxsX2luaXQodm9pZClcXG4gXFx0XFx0XFx0Z290byBlcnJfZGV2O1xcbiBcXHR9XFxuIFxcbitcXHRyZXQgPSBjb25maWdmc19yZWdpc3Rlcl9zdWJzeXN0ZW0oXFx1MDAyNm51bGxiX3N1YnN5cyk7XFxuK1xcdGlmIChyZXQpXFxuK1xcdFxcdGdvdG8gZXJyX2RldjtcXG4rXFxuIFxcdHByX2luZm8oXFxcIm1vZHVsZSBsb2FkZWRcXFxcblxcXCIpO1xcbiBcXHRyZXR1cm4gMDtcXG4gXFxuQEAgLTIxODksOCArMjE4NSw2IEBAIHN0YXRpYyBpbnQgX19pbml0IG51bGxfaW5pdCh2b2lkKVxcbiBcXHRcXHRudWxsX2Rlc3Ryb3lfZGV2KG51bGxiKTtcXG4gXFx0fVxcbiBcXHR1bnJlZ2lzdGVyX2Jsa2RldihudWxsX21ham9yLCBcXFwibnVsbGJcXFwiKTtcXG4tZXJyX2NvbmY6XFxuLVxcdGNvbmZpZ2ZzX3VucmVnaXN0ZXJfc3Vic3lzdGVtKFxcdTAwMjZudWxsYl9zdWJzeXMpO1xcbiBcXHRyZXR1cm4gcmV0O1xcbiB9XFxuIFxcbkBAIC0yMjAyLDE3ICsyMTk2LDE3IEBAIHN0YXRpYyB2b2lkIF9fZXhpdCBudWxsX2V4aXQodm9pZClcXG4gXFxuIFxcdHVucmVnaXN0ZXJfYmxrZGV2KG51bGxfbWFqb3IsIFxcXCJudWxsYlxcXCIpO1xcbiBcXG4tXFx0bXV0ZXhfbG9jayhcXHUwMDI2bG9jayk7XFxuK1xcdG11dGV4X2xvY2soXFx1MDAyNm51bGxiX2xpc3RfbG9jayk7XFxuIFxcdHdoaWxlICghbGlzdF9lbXB0eShcXHUwMDI2bnVsbGJfbGlzdCkpIHtcXG4gXFx0XFx0bnVsbGIgPSBsaXN0X2VudHJ5KG51bGxiX2xpc3QubmV4dCwgc3RydWN0IG51bGxiLCBsaXN0KTtcXG4gXFx0XFx0bnVsbF9kZXN0cm95X2RldihudWxsYik7XFxuIFxcdH1cXG4tXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZsb2NrKTtcXG4rXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZudWxsYl9saXN0X2xvY2spO1xcbiBcXG4gXFx0aWYgKHRhZ19zZXQub3BzKVxcbiBcXHRcXHRibGtfbXFfZnJlZV90YWdfc2V0KFxcdTAwMjZ0YWdfc2V0KTtcXG4gXFxuLVxcdG11dGV4X2Rlc3Ryb3koXFx1MDAyNmxvY2spO1xcbitcXHRtdXRleF9kZXN0cm95KFxcdTAwMjZudWxsYl9saXN0X2xvY2spO1xcbiB9XFxuIFxcbiBtb2R1bGVfaW5pdChudWxsX2luaXQpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxODo1NTo1NC44OTQ0MjMzMDRaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE3OTIzMDU4NDM3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJMS19ERVZfTlVMTF9CTEtcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJudWxsX2luaXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBjaGFuZ2VzIHRoZSBpbml0aWFsaXphdGlvbiBvcmRlciBvZiB0aGUgbnVsbF9ibGsgZHJpdmVyIHRvIHJlZ2lzdGVyIGNvbmZpZ2ZzIGFmdGVyIGRldmljZXMgYXJlIGNyZWF0ZWQsIGZpeGluZyBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbiBkdXJpbmcgbW9kdWxlIGxvYWQuIEl0IGFsc28gcmVuYW1lcyBhIG11dGV4IGFuZCBjaGFuZ2VzIGl0cyBpbml0aWFsaXphdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXIncyBpbml0aWFsaXphdGlvbiBsb2dpYyB0aGF0IGNhbiBiZSByZWFjaGVkIGR1cmluZyBtb2R1bGUgbG9hZGluZyBhbmQgY29uZmlnZnMgaW50ZXJhY3Rpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDA0MzhhZjMyNmU2Y2QyYjRmNjA1ODAxMzcxNTIyMzA1NmE1NWVkYmRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1bCA2IDE4OjU1OjUzIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9udWxsX2Jsay9tYWluLmMgYi9kcml2ZXJzL2Jsb2NrL251bGxfYmxrL21haW4uY1xuaW5kZXggZjhjMGZkNTdlMDQxYTguLjk4MDAwNDliM2MzZjNmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9ibG9jay9udWxsX2Jsay9tYWluLmNcbisrKyBiL2RyaXZlcnMvYmxvY2svbnVsbF9ibGsvbWFpbi5jXG5AQCAtNjYsNyArNjYsNyBAQCBzdHJ1Y3QgbnVsbGJfcGFnZSB7XG4gI2RlZmluZSBOVUxMQl9QQUdFX0ZSRUUgKE1BUF9TWiAtIDIpXG4gXG4gc3RhdGljIExJU1RfSEVBRChudWxsYl9saXN0KTtcbi1zdGF0aWMgc3RydWN0IG11dGV4IGxvY2s7XG4rc3RhdGljIERFRklORV9NVVRFWChudWxsYl9saXN0X2xvY2spO1xuIHN0YXRpYyBpbnQgbnVsbF9tYWpvcjtcbiBzdGF0aWMgREVGSU5FX0lEQShudWxsYl9pbmRleGVzKTtcbiBzdGF0aWMgc3RydWN0IGJsa19tcV90YWdfc2V0IHRhZ19zZXQ7XG5AQCAtNDIzLDkgKzQyMyw5IEBAIHN0YXRpYyBpbnQgbnVsbGJfYXBwbHlfc3VibWl0X3F1ZXVlcyhzdHJ1Y3QgbnVsbGJfZGV2aWNlICpkZXYsXG4ge1xuIFx0aW50IHJldDtcbiBcbi1cdG11dGV4X2xvY2soXHUwMDI2bG9jayk7XG4rXHRtdXRleF9sb2NrKFx1MDAyNm51bGxiX2xpc3RfbG9jayk7XG4gXHRyZXQgPSBudWxsYl91cGRhdGVfbnJfaHdfcXVldWVzKGRldiwgc3VibWl0X3F1ZXVlcywgZGV2LVx1MDAzZXBvbGxfcXVldWVzKTtcbi1cdG11dGV4X3VubG9jayhcdTAwMjZsb2NrKTtcbitcdG11dGV4X3VubG9jayhcdTAwMjZudWxsYl9saXN0X2xvY2spO1xuIFxuIFx0cmV0dXJuIHJldDtcbiB9XG5AQCAtNDM1LDkgKzQzNSw5IEBAIHN0YXRpYyBpbnQgbnVsbGJfYXBwbHlfcG9sbF9xdWV1ZXMoc3RydWN0IG51bGxiX2RldmljZSAqZGV2LFxuIHtcbiBcdGludCByZXQ7XG4gXG4tXHRtdXRleF9sb2NrKFx1MDAyNmxvY2spO1xuK1x0bXV0ZXhfbG9jayhcdTAwMjZudWxsYl9saXN0X2xvY2spO1xuIFx0cmV0ID0gbnVsbGJfdXBkYXRlX25yX2h3X3F1ZXVlcyhkZXYsIGRldi1cdTAwM2VzdWJtaXRfcXVldWVzLCBwb2xsX3F1ZXVlcyk7XG4tXHRtdXRleF91bmxvY2soXHUwMDI2bG9jayk7XG4rXHRtdXRleF91bmxvY2soXHUwMDI2bnVsbGJfbGlzdF9sb2NrKTtcbiBcbiBcdHJldHVybiByZXQ7XG4gfVxuQEAgLTQ5Myw3ICs0OTMsNyBAQCBzdGF0aWMgc3NpemVfdCBudWxsYl9kZXZpY2VfcG93ZXJfc3RvcmUoc3RydWN0IGNvbmZpZ19pdGVtICppdGVtLFxuIFx0XHRyZXR1cm4gcmV0O1xuIFxuIFx0cmV0ID0gY291bnQ7XG4tXHRtdXRleF9sb2NrKFx1MDAyNmxvY2spO1xuK1x0bXV0ZXhfbG9jayhcdTAwMjZudWxsYl9saXN0X2xvY2spO1xuIFx0aWYgKCFkZXYtXHUwMDNlcG93ZXIgXHUwMDI2XHUwMDI2IG5ld3ApIHtcbiBcdFx0aWYgKHRlc3RfYW5kX3NldF9iaXQoTlVMTEJfREVWX0ZMX1VQLCBcdTAwMjZkZXYtXHUwMDNlZmxhZ3MpKVxuIFx0XHRcdGdvdG8gb3V0O1xuQEAgLTUxNiw3ICs1MTYsNyBAQCBzdGF0aWMgc3NpemVfdCBudWxsYl9kZXZpY2VfcG93ZXJfc3RvcmUoc3RydWN0IGNvbmZpZ19pdGVtICppdGVtLFxuIFx0fVxuIFxuIG91dDpcbi1cdG11dGV4X3VubG9jayhcdTAwMjZsb2NrKTtcbitcdG11dGV4X3VubG9jayhcdTAwMjZudWxsYl9saXN0X2xvY2spO1xuIFx0cmV0dXJuIHJldDtcbiB9XG4gXG5AQCAtNzA3LDEwICs3MDcsMTAgQEAgbnVsbGJfZ3JvdXBfZHJvcF9pdGVtKHN0cnVjdCBjb25maWdfZ3JvdXAgKmdyb3VwLCBzdHJ1Y3QgY29uZmlnX2l0ZW0gKml0ZW0pXG4gXHRzdHJ1Y3QgbnVsbGJfZGV2aWNlICpkZXYgPSB0b19udWxsYl9kZXZpY2UoaXRlbSk7XG4gXG4gXHRpZiAodGVzdF9hbmRfY2xlYXJfYml0KE5VTExCX0RFVl9GTF9VUCwgXHUwMDI2ZGV2LVx1MDAzZWZsYWdzKSkge1xuLVx0XHRtdXRleF9sb2NrKFx1MDAyNmxvY2spO1xuK1x0XHRtdXRleF9sb2NrKFx1MDAyNm51bGxiX2xpc3RfbG9jayk7XG4gXHRcdGRldi1cdTAwM2Vwb3dlciA9IGZhbHNlO1xuIFx0XHRudWxsX2RlbF9kZXYoZGV2LVx1MDAzZW51bGxiKTtcbi1cdFx0bXV0ZXhfdW5sb2NrKFx1MDAyNmxvY2spO1xuK1x0XHRtdXRleF91bmxvY2soXHUwMDI2bnVsbGJfbGlzdF9sb2NrKTtcbiBcdH1cbiBcdG51bGxiX2RlbF9mYXVsdF9jb25maWcoZGV2KTtcbiBcdGNvbmZpZ19pdGVtX3B1dChpdGVtKTtcbkBAIC0yMDgxLDE0ICsyMDgxLDE0IEBAIHN0YXRpYyBzdHJ1Y3QgbnVsbGIgKm51bGxfZmluZF9kZXZfYnlfbmFtZShjb25zdCBjaGFyICpuYW1lKVxuIHtcbiBcdHN0cnVjdCBudWxsYiAqbnVsbGIgPSBOVUxMLCAqbmI7XG4gXG4tXHRtdXRleF9sb2NrKFx1MDAyNmxvY2spO1xuK1x0bXV0ZXhfbG9jayhcdTAwMjZudWxsYl9saXN0X2xvY2spO1xuIFx0bGlzdF9mb3JfZWFjaF9lbnRyeShuYiwgXHUwMDI2bnVsbGJfbGlzdCwgbGlzdCkge1xuIFx0XHRpZiAoc3RyY21wKG5iLVx1MDAzZWRpc2tfbmFtZSwgbmFtZSkgPT0gMCkge1xuIFx0XHRcdG51bGxiID0gbmI7XG4gXHRcdFx0YnJlYWs7XG4gXHRcdH1cbiBcdH1cbi1cdG11dGV4X3VubG9jayhcdTAwMjZsb2NrKTtcbitcdG11dGV4X3VubG9jayhcdTAwMjZudWxsYl9saXN0X2xvY2spO1xuIFxuIFx0cmV0dXJuIG51bGxiO1xuIH1cbkBAIC0yMTAyLDkgKzIxMDIsOSBAQCBzdGF0aWMgaW50IG51bGxfY3JlYXRlX2Rldih2b2lkKVxuIFx0aWYgKCFkZXYpXG4gXHRcdHJldHVybiAtRU5PTUVNO1xuIFxuLVx0bXV0ZXhfbG9jayhcdTAwMjZsb2NrKTtcbitcdG11dGV4X2xvY2soXHUwMDI2bnVsbGJfbGlzdF9sb2NrKTtcbiBcdHJldCA9IG51bGxfYWRkX2RldihkZXYpO1xuLVx0bXV0ZXhfdW5sb2NrKFx1MDAyNmxvY2spO1xuK1x0bXV0ZXhfdW5sb2NrKFx1MDAyNm51bGxiX2xpc3RfbG9jayk7XG4gXHRpZiAocmV0KSB7XG4gXHRcdG51bGxfZnJlZV9kZXYoZGV2KTtcbiBcdFx0cmV0dXJuIHJldDtcbkBAIC0yMTYyLDE3ICsyMTYyLDkgQEAgc3RhdGljIGludCBfX2luaXQgbnVsbF9pbml0KHZvaWQpXG4gXHRjb25maWdfZ3JvdXBfaW5pdChcdTAwMjZudWxsYl9zdWJzeXMuc3VfZ3JvdXApO1xuIFx0bXV0ZXhfaW5pdChcdTAwMjZudWxsYl9zdWJzeXMuc3VfbXV0ZXgpO1xuIFxuLVx0cmV0ID0gY29uZmlnZnNfcmVnaXN0ZXJfc3Vic3lzdGVtKFx1MDAyNm51bGxiX3N1YnN5cyk7XG4tXHRpZiAocmV0KVxuLVx0XHRyZXR1cm4gcmV0O1xuLVxuLVx0bXV0ZXhfaW5pdChcdTAwMjZsb2NrKTtcbi1cbiBcdG51bGxfbWFqb3IgPSByZWdpc3Rlcl9ibGtkZXYoMCwgXCJudWxsYlwiKTtcbi1cdGlmIChudWxsX21ham9yIFx1MDAzYyAwKSB7XG4tXHRcdHJldCA9IG51bGxfbWFqb3I7XG4tXHRcdGdvdG8gZXJyX2NvbmY7XG4tXHR9XG4rXHRpZiAobnVsbF9tYWpvciBcdTAwM2MgMClcbitcdFx0cmV0dXJuIG51bGxfbWFqb3I7XG4gXG4gXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBucl9kZXZpY2VzOyBpKyspIHtcbiBcdFx0cmV0ID0gbnVsbF9jcmVhdGVfZGV2KCk7XG5AQCAtMjE4MCw2ICsyMTcyLDEwIEBAIHN0YXRpYyBpbnQgX19pbml0IG51bGxfaW5pdCh2b2lkKVxuIFx0XHRcdGdvdG8gZXJyX2RldjtcbiBcdH1cbiBcbitcdHJldCA9IGNvbmZpZ2ZzX3JlZ2lzdGVyX3N1YnN5c3RlbShcdTAwMjZudWxsYl9zdWJzeXMpO1xuK1x0aWYgKHJldClcbitcdFx0Z290byBlcnJfZGV2O1xuK1xuIFx0cHJfaW5mbyhcIm1vZHVsZSBsb2FkZWRcXG5cIik7XG4gXHRyZXR1cm4gMDtcbiBcbkBAIC0yMTg5LDggKzIxODUsNiBAQCBzdGF0aWMgaW50IF9faW5pdCBudWxsX2luaXQodm9pZClcbiBcdFx0bnVsbF9kZXN0cm95X2RldihudWxsYik7XG4gXHR9XG4gXHR1bnJlZ2lzdGVyX2Jsa2RldihudWxsX21ham9yLCBcIm51bGxiXCIpO1xuLWVycl9jb25mOlxuLVx0Y29uZmlnZnNfdW5yZWdpc3Rlcl9zdWJzeXN0ZW0oXHUwMDI2bnVsbGJfc3Vic3lzKTtcbiBcdHJldHVybiByZXQ7XG4gfVxuIFxuQEAgLTIyMDIsMTcgKzIxOTYsMTcgQEAgc3RhdGljIHZvaWQgX19leGl0IG51bGxfZXhpdCh2b2lkKVxuIFxuIFx0dW5yZWdpc3Rlcl9ibGtkZXYobnVsbF9tYWpvciwgXCJudWxsYlwiKTtcbiBcbi1cdG11dGV4X2xvY2soXHUwMDI2bG9jayk7XG4rXHRtdXRleF9sb2NrKFx1MDAyNm51bGxiX2xpc3RfbG9jayk7XG4gXHR3aGlsZSAoIWxpc3RfZW1wdHkoXHUwMDI2bnVsbGJfbGlzdCkpIHtcbiBcdFx0bnVsbGIgPSBsaXN0X2VudHJ5KG51bGxiX2xpc3QubmV4dCwgc3RydWN0IG51bGxiLCBsaXN0KTtcbiBcdFx0bnVsbF9kZXN0cm95X2RldihudWxsYik7XG4gXHR9XG4tXHRtdXRleF91bmxvY2soXHUwMDI2bG9jayk7XG4rXHRtdXRleF91bmxvY2soXHUwMDI2bnVsbGJfbGlzdF9sb2NrKTtcbiBcbiBcdGlmICh0YWdfc2V0Lm9wcylcbiBcdFx0YmxrX21xX2ZyZWVfdGFnX3NldChcdTAwMjZ0YWdfc2V0KTtcbiBcbi1cdG11dGV4X2Rlc3Ryb3koXHUwMDI2bG9jayk7XG4rXHRtdXRleF9kZXN0cm95KFx1MDAyNm51bGxiX2xpc3RfbG9jayk7XG4gfVxuIFxuIG1vZHVsZV9pbml0KG51bGxfaW5pdCk7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxODo1NTo1NC44OTQ0MjQ5ODRaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0ODIwMjQwOTYyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgTnVsbCBCbG9jayBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGFpbWVkIHNxdWFyZWx5IGF0IHRoZSBgZHJpdmVycy9ibG9jay9udWxsX2Jsay9tYWluLmNgIGZpbGUg4oCTIHRoYXQncyB3aGVyZSB0aGUgY29yZSBvZiB0aGUgbnVsbCBibG9jayBkcml2ZXIgbGl2ZXMuIEltbWVkaWF0ZWx5LCBJIHNlZSBhIHN0cmFpZ2h0Zm9yd2FyZCBtdXRleCByZW5hbWUuIFRoZXkncmUgY2hhbmdpbmcgYGxvY2tgIHRvIGBudWxsYl9saXN0X2xvY2tgIGFuZCwgaW1wb3J0YW50bHksIHN3aXRjaGluZyB0aGUgZGVjbGFyYXRpb24gZnJvbSBgc3RhdGljIHN0cnVjdCBtdXRleCBsb2NrO2AgdG8gYHN0YXRpYyBERUZJTkVfTVVURVgobnVsbGJfbGlzdF9sb2NrKTtgLiBUaGF0J3MgYSBjb21tb24gYW5kIGdvb2QgcHJhY3RpY2U7IGBERUZJTkVfTVVURVhgIGlzIGNsZWFuZXIgYW5kIGdlbmVyYWxseSBwcmVmZXJyZWQgZm9yIHN0YXRpY2FsbHkgZGVmaW5lZCBtdXRleGVzIGFzIGl0IGhhbmRsZXMgaW5pdGlhbGl6YXRpb24gbW9yZSByZWxpYWJseSwgZXNwZWNpYWxseSBpbiB0aGUga2VybmVsJ3MgaW5pdGlhbGl6YXRpb24gY29udGV4dC4gTm8gYmlnIHN1cnByaXNlcyB0aGVyZSwganVzdCB0aWR5aW5nIHVwLlxuXG5UaGUgbW9yZSBpbnRlcmVzdGluZyBwYXJ0IGlzIHRoZSBpbml0aWFsaXphdGlvbiBvcmRlciBjaGFuZ2UuIFRoZXkncmUgYWx0ZXJpbmcgdGhlIHNlcXVlbmNlIHdpdGhpbiB0aGUgYG51bGxfaW5pdGAgZnVuY3Rpb24uIFByZXZpb3VzbHksIHRoZSBgY29uZmlnZnNfcmVnaXN0ZXJfc3Vic3lzdGVtYCBjYWxsIGNhbWUgKmJlZm9yZSogYHJlZ2lzdGVyX2Jsa2RldmAgYW5kIGBudWxsX2NyZWF0ZV9kZXZgLiBOb3csIHRob3NlIGxhdHRlciB0d28gY2FsbHMgYXJlIGhhcHBlbmluZyBmaXJzdCwgKnRoZW4qIGBjb25maWdmc19yZWdpc3Rlcl9zdWJzeXN0ZW1gIGlzIGludm9rZWQuIFRoYXQncyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBub3QganVzdCBhIGNvc21ldGljIG9uZSwgYW5kIHRoYXQncyBzb21ldGhpbmcgdGhhdCBhbHdheXMgd2FycmFudHMgYSBkZWVwZXIgbG9vay4gVGhlIG9yZGVyIG9mIGluaXRpYWxpemF0aW9uIGNhbiBiZSBjcnVjaWFsLCBlc3BlY2lhbGx5IHdoZW4gZGlmZmVyZW50IHN1YnN5c3RlbXMgZGVwZW5kIG9uIGVhY2ggb3RoZXIuXG5cbk15IG5leHQgc3RlcCB3b3VsZCBiZSB0byBpbW1lZGlhdGVseSBjaGVjayB0aGUgbnVsbF9ibGsncyBhc3NvY2lhdGVkIEtjb25maWcgb3B0aW9ucy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYWZmZWN0IHRoZSBkcml2ZXIncyBiZWhhdmlvciBhbmQgZGVwZW5kZW5jaWVzLiBIYXMgc29tZXRoaW5nIGNoYW5nZWQgaW4gaG93IHRoZSBjb25maWd1cmF0aW9uIGludGVyYWN0cyB3aXRoIGBjb25maWdmc2Agb3IgdGhlIGJsb2NrIGRldmljZSByZWdpc3RyYXRpb24gbm93IHRoYXQgd2UndmUgc3dpdGNoZWQgdGhlIG9yZGVyPyBUaGlzIG1pZ2h0IGJlIHRoZSBjcnV4IG9mIHRoZSBpc3N1ZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2h5IHRoaXMgcmUtb3JkZXJpbmcgd2FzIGRlZW1lZCBuZWNlc3NhcnkgYW5kIHdoYXQgcG90ZW50aWFsIHNpZGUgZWZmZWN0cyBpdCBtaWdodCBoYXZlLiBVbmRlcnN0YW5kaW5nIHRoZSAqd2h5KiBpcyB0aGUgbW9zdCBjcml0aWNhbCBhc3BlY3Qgb2Ygc3VjaCBhIGNoYW5nZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzQwNCwiT3V0cHV0VG9rZW5zIjoyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2MSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDE4OjU1OjU5LjcxNDY2Nzc1NVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTQyODk2OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJudWxsX2Jsa1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL2Jsb2NrL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9ibG9jay9LY29uZmlnPTE3PWlmIEJMS19ERVZcXG5kcml2ZXJzL2Jsb2NrL0tjb25maWctMTgtXFxuZHJpdmVycy9ibG9jay9LY29uZmlnOjE5OnNvdXJjZSBcXFwiZHJpdmVycy9ibG9jay9udWxsX2Jsay9LY29uZmlnXFxcIlxcbmRyaXZlcnMvYmxvY2svS2NvbmZpZy0yMC1zb3VyY2UgXFxcImRyaXZlcnMvYmxvY2svcm51bGwvS2NvbmZpZ1xcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDZUMTg6NTU6NTkuNzc0MTAyNTc0WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mjc3ODc3MzM0NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgZmlyc3QtcGVyc29uIHN1bW1hcnkgb2YgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipEaXZpbmcgaW50byB0aGUgTnVsbCBCbG9jayBEcml2ZXIgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5IHdpdGggdGhlIG51bGwgYmxvY2sgZHJpdmVyLiBXaGVyZSBkb2VzIHRoZSBjb25maWd1cmF0aW9uIGxpdmUgZm9yIHRoaXMgdGhpbmc/IEFoLCByaWdodCwgaXQncyBwcmV0dHkgc3RhbmRhcmQgcHJhY3RpY2U6IGBkcml2ZXJzL2Jsb2NrL251bGxfYmxrL0tjb25maWdgLiBMZXQncyBjb25maXJtIHRoYXQncyB3aGVyZSB0aGUgcmVsZXZhbnQgb3B0aW9ucyBhcmUgZGVmaW5lZC4gSSBleHBlY3QgdG8gc2VlIHRoZSB1c3VhbCBzdXNwZWN0cyDigJMgZW5hYmxpbmcvZGlzYWJsaW5nIHRoZSBkcml2ZXIsIG1heWJlIHNvbWUgb3B0aW9ucyBmb3IgYmxvY2sgc2l6ZSwgbnVtYmVyIG9mIGRldmljZXMsIGFuZCBvdGhlciBwYXJhbWV0ZXJzLiBJJ2xsIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIGJ1aWxkIHN5c3RlbSBoYW5kbGVzIHRoZSBgS2NvbmZpZ2AgZmlsZSBhbmQgd2hhdCBkZXBlbmRlbmNpZXMgbWlnaHQgYmUgaW4gcGxheSB0byBnZXQgYSBwcm9wZXIgaGFuZGxlIG9uIHRoaXMgbW9kdWxlLiBVbmRlcnN0YW5kaW5nIHRoZSBidWlsZCBjb25maWd1cmF0aW9uIGlzIGtleSB0byB0aGUgb3ZlcmFsbCBkZXNpZ24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQwNjgsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxODo1NjowMi41NTI4Nzc3MjlaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjAwMDk3NDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL2Jsb2NrL251bGxfYmxrL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9ibG9jay9udWxsX2Jsay9LY29uZmlnLTUtXFxuZHJpdmVycy9ibG9jay9udWxsX2Jsay9LY29uZmlnOjY6Y29uZmlnIEJMS19ERVZfTlVMTF9CTEtcXG5kcml2ZXJzL2Jsb2NrL251bGxfYmxrL0tjb25maWctNy1cXHR0cmlzdGF0ZSBcXFwiTnVsbCB0ZXN0IGJsb2NrIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvYmxvY2svbnVsbF9ibGsvS2NvbmZpZy05LVxcbmRyaXZlcnMvYmxvY2svbnVsbF9ibGsvS2NvbmZpZzoxMDpjb25maWcgQkxLX0RFVl9OVUxMX0JMS19GQVVMVF9JTkpFQ1RJT05cXG5kcml2ZXJzL2Jsb2NrL251bGxfYmxrL0tjb25maWctMTEtXFx0Ym9vbCBcXFwiU3VwcG9ydCBmYXVsdCBpbmplY3Rpb24gZm9yIE51bGwgdGVzdCBibG9jayBkcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDE4OjU2OjAyLjYxMjg5MzYzOFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwMTE3NjkwNjAyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgTnVsbCBCbG9jayBEZXZpY2UgSW5pdGlhbGl6YXRpb24gUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgQkxLX0RFVl9OVUxMX0JMS2AuIEl0IHNlZW1zIGxpa2UgdGhlIGNvcmUgY2hhbmdlIGlzIHdpdGhpbiBgbnVsbF9pbml0YCwgdGhlIG1vZHVsZSdzIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uLiBUaGUgc3RhdGVkIGdvYWwgaXMgdG8gcmVzb2x2ZSBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbiBvciBpbml0aWFsaXphdGlvbiBvcmRlciBwcm9ibGVtLiBTcGVjaWZpY2FsbHksIGl0IGFwcGVhcnMgY29uZmlnZnMgbWlnaHQgaGF2ZSBiZWVuIGFjY2Vzc2libGUgYmVmb3JlIHRoZSBibG9jayBkZXZpY2Ugd2FzIGZ1bGx5IHJlZ2lzdGVyZWQsIG9yIGRldmljZXMgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseSBjcmVhdGVkLlxuXG5UaGUgaW5pdGlhbCB0aG91Z2h0IGlzLCBcIklzIHRoaXMgZnV6emFibGU/XCIgSXQncyBhbiBpbml0aWFsaXphdGlvbiBvcmRlciBjaGFuZ2Ugd2l0aGluIGEgbW9kdWxlJ3MgaW5pdCBmdW5jdGlvbi4gRnV6emluZyBtb2R1bGUgbG9hZGluZyBhbmQgdW5sb2FkaW5nICpjb3VsZCogcG90ZW50aWFsbHkgaGl0IHRoaXMsIGJ1dCBpdCdzIGZ1bmRhbWVudGFsbHkgYSBvbmUtdGltZSBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZS4gT24gdGhlIG90aGVyIGhhbmQsIHRoZSBjaGFuZ2UgaXMgZnVuY3Rpb25hbC4gU3l6a2FsbGVyLCBpbiBwYXJ0aWN1bGFyLCBkb2VzIGZ1enogbW9kdWxlIGxvYWRpbmcsIGFuZCBjb25maWdmcyBpbnRlcmFjdGlvbnMuIFN5emthbGxlciBzcGVjaWZpY2FsbHkgZnV6emVkIGNvbmZpZ2ZzIGludGVyYWN0aW9ucyB3aXRoIG51bGxfYmxrLlxuXG5UaGUgcGF0Y2ggc2VlbXMgdG8gcmVvcmRlciBpbml0aWFsaXphdGlvbi4gSXQgKmFsc28qIHJlbmFtZXMgYGxvY2tgIHRvIGBudWxsYl9saXN0X2xvY2tgLCB3aGljaCBpcyBtYWlubHkgYSBjb3NtZXRpYyBjaGFuZ2UuIExvb2tpbmcgYXQgdGhlIGRpZmYgYWdhaW4sIGl0J3MgY2xlYXIgdGhlIGluaXRpYWxpemF0aW9uIG9yZGVyIGlzIHRoZSBjb3JlIGZ1bmN0aW9uYWwgY2hhbmdlLiBOb3csIHRoaXMgaXMgZGVmaW5pdGVseSB3b3J0aCBmdXp6aW5nLiBJIGNhbiB0YXJnZXQgaXQgYnkgZm9jdXNpbmcgb24gdGhlIGBudWxsX2luaXRgIGZ1bmN0aW9uLlxuXG5JIHNlZSBub3cgdGhhdCB0aGUgcGF0Y2ggY2hhbmdlcyB0aGUgaW5pdGlhbGl6YXRpb24gbG9naWMuIFRoZSBwYXRjaCBub3cgcmVnaXN0ZXJzIGNvbmZpZ2ZzICphZnRlciogYmxvY2sgZGV2aWNlcyBoYXZlIGJlZW4gY3JlYXRlZC4gVGhpcyByZXNvbHZlcyBhIHJhY2Ugd2hlcmUgdXNlcnNwYWNlIGNvdWxkIGludGVyYWN0IHdpdGggY29uZmlnZnMgYmVmb3JlIHRoZSBkcml2ZXIgd2FzIGZ1bGx5IGluaXRpYWxpemVkLlxuXG5Ob3cgdGhlIHBhdGNoIGNsZWFucyB1cCBhIG11dGV4IGJ5IHVzaW5nIGBERUZJTkVfTVVURVhgIGluc3RlYWQgb2YgYG11dGV4X2luaXRgLiBTdGlsbCwgdGhlIGtleSB0YWtlYXdheSBpcyB0aGUgaW5pdCBvcmRlciBjaGFuZ2UsIHdoaWNoICppcyogZnVuY3Rpb25hbC4gSXQncyBhbiBpbXBvcnRhbnQgZml4LlxuXG5UaGVyZWZvcmUsIG15IGNvbmNsdXNpb24gaXMgY2xlYXI6XG4qICAgYFdvcnRoRnV6emluZz10cnVlYFxuKiAgIGBGb2N1c1N5bWJvbHM9W1wibnVsbF9pbml0XCJdYFxuKiAgIGBFbmFibGVDb25maWdzPVtcIkJMS19ERVZfTlVMTF9CTEtcIl1gLlxuXG5UaGUgcmVhc29uaW5nIGlzIHN0cmFpZ2h0Zm9yd2FyZDogVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSBvZiB0aGUgYG51bGxfYmxrYCBkcml2ZXIuIFRoaXMgaW52b2x2ZXMgcmVnaXN0ZXJpbmcgY29uZmlnZnMgYWZ0ZXIgZGV2aWNlcyBoYXZlIGJlZW4gY3JlYXRlZC4gVGhpcyBmaXhlcyBhIHJhY2UgY29uZGl0aW9uIHRoYXQgY291bGQgb2NjdXIgZHVyaW5nIG1vZHVsZSBsb2FkaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NDI3LCJPdXRwdXRUb2tlbnMiOjExMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjg2NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxODo1NjoxMi43MzA1ODYxMloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODY4OTAyOTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJMS19ERVZfTlVMTF9CTEtcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJudWxsX2luaXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBjaGFuZ2VzIHRoZSBpbml0aWFsaXphdGlvbiBvcmRlciBvZiB0aGUgbnVsbF9ibGsgZHJpdmVyIHRvIHJlZ2lzdGVyIGNvbmZpZ2ZzIGFmdGVyIGRldmljZXMgYXJlIGNyZWF0ZWQsIGZpeGluZyBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbiBkdXJpbmcgbW9kdWxlIGxvYWQuIEl0IGFsc28gcmVuYW1lcyBhIG11dGV4IGFuZCBjaGFuZ2VzIGl0cyBpbml0aWFsaXphdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXIncyBpbml0aWFsaXphdGlvbiBsb2dpYyB0aGF0IGNhbiBiZSByZWFjaGVkIGR1cmluZyBtb2R1bGUgbG9hZGluZyBhbmQgY29uZmlnZnMgaW50ZXJhY3Rpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJMS19ERVZfTlVMTF9CTEtcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJudWxsX2luaXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBjaGFuZ2VzIHRoZSBpbml0aWFsaXphdGlvbiBvcmRlciBvZiB0aGUgbnVsbF9ibGsgZHJpdmVyIHRvIHJlZ2lzdGVyIGNvbmZpZ2ZzIGFmdGVyIGRldmljZXMgYXJlIGNyZWF0ZWQsIGZpeGluZyBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbiBkdXJpbmcgbW9kdWxlIGxvYWQuIEl0IGFsc28gcmVuYW1lcyBhIG11dGV4IGFuZCBjaGFuZ2VzIGl0cyBpbml0aWFsaXphdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXIncyBpbml0aWFsaXphdGlvbiBsb2dpYyB0aGF0IGNhbiBiZSByZWFjaGVkIGR1cmluZyBtb2R1bGUgbG9hZGluZyBhbmQgY29uZmlnZnMgaW50ZXJhY3Rpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflowr6zd2[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-06 18:40:26 +0000 UTC FinishedAt: 2026-07-06 18:56:15 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "8cdeaa50eae8dad34885515f62559ee83e7e8dda", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BLK_DEV_NULL_BLK" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "8cdeaa50eae8dad34885515f62559ee83e7e8dda", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BLK_DEV_NULL_BLK" ], "series_id": "37db45f9-c05f-4dc1-8337-c274ebd9f162" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "null_init" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA2IDE4OjU1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JMS19ERVZfTlVMTF9CTEsmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtudWxsX2luaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggY2hhbmdlcyB0aGUgaW5pdGlhbGl6YXRpb24gb3JkZXIgb2YgdGhlIG51bGxfYmxrIGRyaXZlciB0byByZWdpc3RlciBjb25maWdmcyBhZnRlciBkZXZpY2VzIGFyZSBjcmVhdGVkLCBmaXhpbmcgYSBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb24gZHVyaW5nIG1vZHVsZSBsb2FkLiBJdCBhbHNvIHJlbmFtZXMgYSBtdXRleCBhbmQgY2hhbmdlcyBpdHMgaW5pdGlhbGl6YXRpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZHJpdmVyJiMzOTtzIGluaXRpYWxpemF0aW9uIGxvZ2ljIHRoYXQgY2FuIGJlIHJlYWNoZWQgZHVyaW5nIG1vZHVsZSBsb2FkaW5nIGFuZCBjb25maWdmcyBpbnRlcmFjdGlvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTg6NTU8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAwNDM4YWYzMjZlNmNkMmI0ZjYwNTgwMTM3MTUyMjMwNTZhNTVlZGJkXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgNiAxODo1NTo1MyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL251bGxfYmxrL21haW4uYyBiL2RyaXZlcnMvYmxvY2svbnVsbF9ibGsvbWFpbi5jXG5pbmRleCBmOGMwZmQ1N2UwNDFhOC4uOTgwMDA0OWIzYzNmM2YgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2Jsb2NrL251bGxfYmxrL21haW4uY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ibG9jay9udWxsX2Jsay9tYWluLmNcbkBAIC02Niw3ICYjNDM7NjYsNyBAQCBzdHJ1Y3QgbnVsbGJfcGFnZSB7XG4gI2RlZmluZSBOVUxMQl9QQUdFX0ZSRUUgKE1BUF9TWiAtIDIpXG4gXG4gc3RhdGljIExJU1RfSEVBRChudWxsYl9saXN0KTtcbi1zdGF0aWMgc3RydWN0IG11dGV4IGxvY2s7XG4mIzQzO3N0YXRpYyBERUZJTkVfTVVURVgobnVsbGJfbGlzdF9sb2NrKTtcbiBzdGF0aWMgaW50IG51bGxfbWFqb3I7XG4gc3RhdGljIERFRklORV9JREEobnVsbGJfaW5kZXhlcyk7XG4gc3RhdGljIHN0cnVjdCBibGtfbXFfdGFnX3NldCB0YWdfc2V0O1xuQEAgLTQyMyw5ICYjNDM7NDIzLDkgQEAgc3RhdGljIGludCBudWxsYl9hcHBseV9zdWJtaXRfcXVldWVzKHN0cnVjdCBudWxsYl9kZXZpY2UgKmRldixcbiB7XG4gXHRpbnQgcmV0O1xuIFxuLVx0bXV0ZXhfbG9jayhcdTAwMjZsb2NrKTtcbiYjNDM7XHRtdXRleF9sb2NrKFx1MDAyNm51bGxiX2xpc3RfbG9jayk7XG4gXHRyZXQgPSBudWxsYl91cGRhdGVfbnJfaHdfcXVldWVzKGRldiwgc3VibWl0X3F1ZXVlcywgZGV2LVx1MDAzZXBvbGxfcXVldWVzKTtcbi1cdG11dGV4X3VubG9jayhcdTAwMjZsb2NrKTtcbiYjNDM7XHRtdXRleF91bmxvY2soXHUwMDI2bnVsbGJfbGlzdF9sb2NrKTtcbiBcbiBcdHJldHVybiByZXQ7XG4gfVxuQEAgLTQzNSw5ICYjNDM7NDM1LDkgQEAgc3RhdGljIGludCBudWxsYl9hcHBseV9wb2xsX3F1ZXVlcyhzdHJ1Y3QgbnVsbGJfZGV2aWNlICpkZXYsXG4ge1xuIFx0aW50IHJldDtcbiBcbi1cdG11dGV4X2xvY2soXHUwMDI2bG9jayk7XG4mIzQzO1x0bXV0ZXhfbG9jayhcdTAwMjZudWxsYl9saXN0X2xvY2spO1xuIFx0cmV0ID0gbnVsbGJfdXBkYXRlX25yX2h3X3F1ZXVlcyhkZXYsIGRldi1cdTAwM2VzdWJtaXRfcXVldWVzLCBwb2xsX3F1ZXVlcyk7XG4tXHRtdXRleF91bmxvY2soXHUwMDI2bG9jayk7XG4mIzQzO1x0bXV0ZXhfdW5sb2NrKFx1MDAyNm51bGxiX2xpc3RfbG9jayk7XG4gXG4gXHRyZXR1cm4gcmV0O1xuIH1cbkBAIC00OTMsNyAmIzQzOzQ5Myw3IEBAIHN0YXRpYyBzc2l6ZV90IG51bGxiX2RldmljZV9wb3dlcl9zdG9yZShzdHJ1Y3QgY29uZmlnX2l0ZW0gKml0ZW0sXG4gXHRcdHJldHVybiByZXQ7XG4gXG4gXHRyZXQgPSBjb3VudDtcbi1cdG11dGV4X2xvY2soXHUwMDI2bG9jayk7XG4mIzQzO1x0bXV0ZXhfbG9jayhcdTAwMjZudWxsYl9saXN0X2xvY2spO1xuIFx0aWYgKCFkZXYtXHUwMDNlcG93ZXIgXHUwMDI2XHUwMDI2IG5ld3ApIHtcbiBcdFx0aWYgKHRlc3RfYW5kX3NldF9iaXQoTlVMTEJfREVWX0ZMX1VQLCBcdTAwMjZkZXYtXHUwMDNlZmxhZ3MpKVxuIFx0XHRcdGdvdG8gb3V0O1xuQEAgLTUxNiw3ICYjNDM7NTE2LDcgQEAgc3RhdGljIHNzaXplX3QgbnVsbGJfZGV2aWNlX3Bvd2VyX3N0b3JlKHN0cnVjdCBjb25maWdfaXRlbSAqaXRlbSxcbiBcdH1cbiBcbiBvdXQ6XG4tXHRtdXRleF91bmxvY2soXHUwMDI2bG9jayk7XG4mIzQzO1x0bXV0ZXhfdW5sb2NrKFx1MDAyNm51bGxiX2xpc3RfbG9jayk7XG4gXHRyZXR1cm4gcmV0O1xuIH1cbiBcbkBAIC03MDcsMTAgJiM0Mzs3MDcsMTAgQEAgbnVsbGJfZ3JvdXBfZHJvcF9pdGVtKHN0cnVjdCBjb25maWdfZ3JvdXAgKmdyb3VwLCBzdHJ1Y3QgY29uZmlnX2l0ZW0gKml0ZW0pXG4gXHRzdHJ1Y3QgbnVsbGJfZGV2aWNlICpkZXYgPSB0b19udWxsYl9kZXZpY2UoaXRlbSk7XG4gXG4gXHRpZiAodGVzdF9hbmRfY2xlYXJfYml0KE5VTExCX0RFVl9GTF9VUCwgXHUwMDI2ZGV2LVx1MDAzZWZsYWdzKSkge1xuLVx0XHRtdXRleF9sb2NrKFx1MDAyNmxvY2spO1xuJiM0MztcdFx0bXV0ZXhfbG9jayhcdTAwMjZudWxsYl9saXN0X2xvY2spO1xuIFx0XHRkZXYtXHUwMDNlcG93ZXIgPSBmYWxzZTtcbiBcdFx0bnVsbF9kZWxfZGV2KGRldi1cdTAwM2VudWxsYik7XG4tXHRcdG11dGV4X3VubG9jayhcdTAwMjZsb2NrKTtcbiYjNDM7XHRcdG11dGV4X3VubG9jayhcdTAwMjZudWxsYl9saXN0X2xvY2spO1xuIFx0fVxuIFx0bnVsbGJfZGVsX2ZhdWx0X2NvbmZpZyhkZXYpO1xuIFx0Y29uZmlnX2l0ZW1fcHV0KGl0ZW0pO1xuQEAgLTIwODEsMTQgJiM0MzsyMDgxLDE0IEBAIHN0YXRpYyBzdHJ1Y3QgbnVsbGIgKm51bGxfZmluZF9kZXZfYnlfbmFtZShjb25zdCBjaGFyICpuYW1lKVxuIHtcbiBcdHN0cnVjdCBudWxsYiAqbnVsbGIgPSBOVUxMLCAqbmI7XG4gXG4tXHRtdXRleF9sb2NrKFx1MDAyNmxvY2spO1xuJiM0MztcdG11dGV4X2xvY2soXHUwMDI2bnVsbGJfbGlzdF9sb2NrKTtcbiBcdGxpc3RfZm9yX2VhY2hfZW50cnkobmIsIFx1MDAyNm51bGxiX2xpc3QsIGxpc3QpIHtcbiBcdFx0aWYgKHN0cmNtcChuYi1cdTAwM2VkaXNrX25hbWUsIG5hbWUpID09IDApIHtcbiBcdFx0XHRudWxsYiA9IG5iO1xuIFx0XHRcdGJyZWFrO1xuIFx0XHR9XG4gXHR9XG4tXHRtdXRleF91bmxvY2soXHUwMDI2bG9jayk7XG4mIzQzO1x0bXV0ZXhfdW5sb2NrKFx1MDAyNm51bGxiX2xpc3RfbG9jayk7XG4gXG4gXHRyZXR1cm4gbnVsbGI7XG4gfVxuQEAgLTIxMDIsOSAmIzQzOzIxMDIsOSBAQCBzdGF0aWMgaW50IG51bGxfY3JlYXRlX2Rldih2b2lkKVxuIFx0aWYgKCFkZXYpXG4gXHRcdHJldHVybiAtRU5PTUVNO1xuIFxuLVx0bXV0ZXhfbG9jayhcdTAwMjZsb2NrKTtcbiYjNDM7XHRtdXRleF9sb2NrKFx1MDAyNm51bGxiX2xpc3RfbG9jayk7XG4gXHRyZXQgPSBudWxsX2FkZF9kZXYoZGV2KTtcbi1cdG11dGV4X3VubG9jayhcdTAwMjZsb2NrKTtcbiYjNDM7XHRtdXRleF91bmxvY2soXHUwMDI2bnVsbGJfbGlzdF9sb2NrKTtcbiBcdGlmIChyZXQpIHtcbiBcdFx0bnVsbF9mcmVlX2RldihkZXYpO1xuIFx0XHRyZXR1cm4gcmV0O1xuQEAgLTIxNjIsMTcgJiM0MzsyMTYyLDkgQEAgc3RhdGljIGludCBfX2luaXQgbnVsbF9pbml0KHZvaWQpXG4gXHRjb25maWdfZ3JvdXBfaW5pdChcdTAwMjZudWxsYl9zdWJzeXMuc3VfZ3JvdXApO1xuIFx0bXV0ZXhfaW5pdChcdTAwMjZudWxsYl9zdWJzeXMuc3VfbXV0ZXgpO1xuIFxuLVx0cmV0ID0gY29uZmlnZnNfcmVnaXN0ZXJfc3Vic3lzdGVtKFx1MDAyNm51bGxiX3N1YnN5cyk7XG4tXHRpZiAocmV0KVxuLVx0XHRyZXR1cm4gcmV0O1xuLVxuLVx0bXV0ZXhfaW5pdChcdTAwMjZsb2NrKTtcbi1cbiBcdG51bGxfbWFqb3IgPSByZWdpc3Rlcl9ibGtkZXYoMCwgXCYjMzQ7bnVsbGJcJiMzNDspO1xuLVx0aWYgKG51bGxfbWFqb3IgXHUwMDNjIDApIHtcbi1cdFx0cmV0ID0gbnVsbF9tYWpvcjtcbi1cdFx0Z290byBlcnJfY29uZjtcbi1cdH1cbiYjNDM7XHRpZiAobnVsbF9tYWpvciBcdTAwM2MgMClcbiYjNDM7XHRcdHJldHVybiBudWxsX21ham9yO1xuIFxuIFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgbnJfZGV2aWNlczsgaSYjNDM7JiM0MzspIHtcbiBcdFx0cmV0ID0gbnVsbF9jcmVhdGVfZGV2KCk7XG5AQCAtMjE4MCw2ICYjNDM7MjE3MiwxMCBAQCBzdGF0aWMgaW50IF9faW5pdCBudWxsX2luaXQodm9pZClcbiBcdFx0XHRnb3RvIGVycl9kZXY7XG4gXHR9XG4gXG4mIzQzO1x0cmV0ID0gY29uZmlnZnNfcmVnaXN0ZXJfc3Vic3lzdGVtKFx1MDAyNm51bGxiX3N1YnN5cyk7XG4mIzQzO1x0aWYgKHJldClcbiYjNDM7XHRcdGdvdG8gZXJyX2RldjtcbiYjNDM7XG4gXHRwcl9pbmZvKFwmIzM0O21vZHVsZSBsb2FkZWRcXG5cJiMzNDspO1xuIFx0cmV0dXJuIDA7XG4gXG5AQCAtMjE4OSw4ICYjNDM7MjE4NSw2IEBAIHN0YXRpYyBpbnQgX19pbml0IG51bGxfaW5pdCh2b2lkKVxuIFx0XHRudWxsX2Rlc3Ryb3lfZGV2KG51bGxiKTtcbiBcdH1cbiBcdHVucmVnaXN0ZXJfYmxrZGV2KG51bGxfbWFqb3IsIFwmIzM0O251bGxiXCYjMzQ7KTtcbi1lcnJfY29uZjpcbi1cdGNvbmZpZ2ZzX3VucmVnaXN0ZXJfc3Vic3lzdGVtKFx1MDAyNm51bGxiX3N1YnN5cyk7XG4gXHRyZXR1cm4gcmV0O1xuIH1cbiBcbkBAIC0yMjAyLDE3ICYjNDM7MjE5NiwxNyBAQCBzdGF0aWMgdm9pZCBfX2V4aXQgbnVsbF9leGl0KHZvaWQpXG4gXG4gXHR1bnJlZ2lzdGVyX2Jsa2RldihudWxsX21ham9yLCBcJiMzNDtudWxsYlwmIzM0Oyk7XG4gXG4tXHRtdXRleF9sb2NrKFx1MDAyNmxvY2spO1xuJiM0MztcdG11dGV4X2xvY2soXHUwMDI2bnVsbGJfbGlzdF9sb2NrKTtcbiBcdHdoaWxlICghbGlzdF9lbXB0eShcdTAwMjZudWxsYl9saXN0KSkge1xuIFx0XHRudWxsYiA9IGxpc3RfZW50cnkobnVsbGJfbGlzdC5uZXh0LCBzdHJ1Y3QgbnVsbGIsIGxpc3QpO1xuIFx0XHRudWxsX2Rlc3Ryb3lfZGV2KG51bGxiKTtcbiBcdH1cbi1cdG11dGV4X3VubG9jayhcdTAwMjZsb2NrKTtcbiYjNDM7XHRtdXRleF91bmxvY2soXHUwMDI2bnVsbGJfbGlzdF9sb2NrKTtcbiBcbiBcdGlmICh0YWdfc2V0Lm9wcylcbiBcdFx0YmxrX21xX2ZyZWVfdGFnX3NldChcdTAwMjZ0YWdfc2V0KTtcbiBcbi1cdG11dGV4X2Rlc3Ryb3koXHUwMDI2bG9jayk7XG4mIzQzO1x0bXV0ZXhfZGVzdHJveShcdTAwMjZudWxsYl9saXN0X2xvY2spO1xuIH1cbiBcbiBtb2R1bGVfaW5pdChudWxsX2luaXQpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA2IDE4OjU1PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JMS19ERVZfTlVMTF9CTEsmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtudWxsX2luaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggY2hhbmdlcyB0aGUgaW5pdGlhbGl6YXRpb24gb3JkZXIgb2YgdGhlIG51bGxfYmxrIGRyaXZlciB0byByZWdpc3RlciBjb25maWdmcyBhZnRlciBkZXZpY2VzIGFyZSBjcmVhdGVkLCBmaXhpbmcgYSBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb24gZHVyaW5nIG1vZHVsZSBsb2FkLiBJdCBhbHNvIHJlbmFtZXMgYSBtdXRleCBhbmQgY2hhbmdlcyBpdHMgaW5pdGlhbGl6YXRpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZHJpdmVyJiMzOTtzIGluaXRpYWxpemF0aW9uIGxvZ2ljIHRoYXQgY2FuIGJlIHJlYWNoZWQgZHVyaW5nIG1vZHVsZSBsb2FkaW5nIGFuZCBjb25maWdmcyBpbnRlcmFjdGlvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDA0MzhhZjMyNmU2Y2QyYjRmNjA1ODAxMzcxNTIyMzA1NmE1NWVkYmQKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEp1bCA2IDE4OjU1OjUzIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9udWxsX2Jsay9tYWluLmMgYi9kcml2ZXJzL2Jsb2NrL251bGxfYmxrL21haW4uYwppbmRleCBmOGMwZmQ1N2UwNDFhOC4uOTgwMDA0OWIzYzNmM2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2svbnVsbF9ibGsvbWFpbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvYmxvY2svbnVsbF9ibGsvbWFpbi5jCkBAIC02Niw3ICYjNDM7NjYsNyBAQCBzdHJ1Y3QgbnVsbGJfcGFnZSB7CiAjZGVmaW5lIE5VTExCX1BBR0VfRlJFRSAoTUFQX1NaIC0gMikKIAogc3RhdGljIExJU1RfSEVBRChudWxsYl9saXN0KTsKLXN0YXRpYyBzdHJ1Y3QgbXV0ZXggbG9jazsKJiM0MztzdGF0aWMgREVGSU5FX01VVEVYKG51bGxiX2xpc3RfbG9jayk7CiBzdGF0aWMgaW50IG51bGxfbWFqb3I7CiBzdGF0aWMgREVGSU5FX0lEQShudWxsYl9pbmRleGVzKTsKIHN0YXRpYyBzdHJ1Y3QgYmxrX21xX3RhZ19zZXQgdGFnX3NldDsKQEAgLTQyMyw5ICYjNDM7NDIzLDkgQEAgc3RhdGljIGludCBudWxsYl9hcHBseV9zdWJtaXRfcXVldWVzKHN0cnVjdCBudWxsYl9kZXZpY2UgKmRldiwKIHsKIAlpbnQgcmV0OwogCi0JbXV0ZXhfbG9jaygmYW1wO2xvY2spOwomIzQzOwltdXRleF9sb2NrKCZhbXA7bnVsbGJfbGlzdF9sb2NrKTsKIAlyZXQgPSBudWxsYl91cGRhdGVfbnJfaHdfcXVldWVzKGRldiwgc3VibWl0X3F1ZXVlcywgZGV2LSZndDtwb2xsX3F1ZXVlcyk7Ci0JbXV0ZXhfdW5sb2NrKCZhbXA7bG9jayk7CiYjNDM7CW11dGV4X3VubG9jaygmYW1wO251bGxiX2xpc3RfbG9jayk7CiAKIAlyZXR1cm4gcmV0OwogfQpAQCAtNDM1LDkgJiM0Mzs0MzUsOSBAQCBzdGF0aWMgaW50IG51bGxiX2FwcGx5X3BvbGxfcXVldWVzKHN0cnVjdCBudWxsYl9kZXZpY2UgKmRldiwKIHsKIAlpbnQgcmV0OwogCi0JbXV0ZXhfbG9jaygmYW1wO2xvY2spOwomIzQzOwltdXRleF9sb2NrKCZhbXA7bnVsbGJfbGlzdF9sb2NrKTsKIAlyZXQgPSBudWxsYl91cGRhdGVfbnJfaHdfcXVldWVzKGRldiwgZGV2LSZndDtzdWJtaXRfcXVldWVzLCBwb2xsX3F1ZXVlcyk7Ci0JbXV0ZXhfdW5sb2NrKCZhbXA7bG9jayk7CiYjNDM7CW11dGV4X3VubG9jaygmYW1wO251bGxiX2xpc3RfbG9jayk7CiAKIAlyZXR1cm4gcmV0OwogfQpAQCAtNDkzLDcgJiM0Mzs0OTMsNyBAQCBzdGF0aWMgc3NpemVfdCBudWxsYl9kZXZpY2VfcG93ZXJfc3RvcmUoc3RydWN0IGNvbmZpZ19pdGVtICppdGVtLAogCQlyZXR1cm4gcmV0OwogCiAJcmV0ID0gY291bnQ7Ci0JbXV0ZXhfbG9jaygmYW1wO2xvY2spOwomIzQzOwltdXRleF9sb2NrKCZhbXA7bnVsbGJfbGlzdF9sb2NrKTsKIAlpZiAoIWRldi0mZ3Q7cG93ZXIgJmFtcDsmYW1wOyBuZXdwKSB7CiAJCWlmICh0ZXN0X2FuZF9zZXRfYml0KE5VTExCX0RFVl9GTF9VUCwgJmFtcDtkZXYtJmd0O2ZsYWdzKSkKIAkJCWdvdG8gb3V0OwpAQCAtNTE2LDcgJiM0Mzs1MTYsNyBAQCBzdGF0aWMgc3NpemVfdCBudWxsYl9kZXZpY2VfcG93ZXJfc3RvcmUoc3RydWN0IGNvbmZpZ19pdGVtICppdGVtLAogCX0KIAogb3V0OgotCW11dGV4X3VubG9jaygmYW1wO2xvY2spOwomIzQzOwltdXRleF91bmxvY2soJmFtcDtudWxsYl9saXN0X2xvY2spOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTcwNywxMCAmIzQzOzcwNywxMCBAQCBudWxsYl9ncm91cF9kcm9wX2l0ZW0oc3RydWN0IGNvbmZpZ19ncm91cCAqZ3JvdXAsIHN0cnVjdCBjb25maWdfaXRlbSAqaXRlbSkKIAlzdHJ1Y3QgbnVsbGJfZGV2aWNlICpkZXYgPSB0b19udWxsYl9kZXZpY2UoaXRlbSk7CiAKIAlpZiAodGVzdF9hbmRfY2xlYXJfYml0KE5VTExCX0RFVl9GTF9VUCwgJmFtcDtkZXYtJmd0O2ZsYWdzKSkgewotCQltdXRleF9sb2NrKCZhbXA7bG9jayk7CiYjNDM7CQltdXRleF9sb2NrKCZhbXA7bnVsbGJfbGlzdF9sb2NrKTsKIAkJZGV2LSZndDtwb3dlciA9IGZhbHNlOwogCQludWxsX2RlbF9kZXYoZGV2LSZndDtudWxsYik7Ci0JCW11dGV4X3VubG9jaygmYW1wO2xvY2spOwomIzQzOwkJbXV0ZXhfdW5sb2NrKCZhbXA7bnVsbGJfbGlzdF9sb2NrKTsKIAl9CiAJbnVsbGJfZGVsX2ZhdWx0X2NvbmZpZyhkZXYpOwogCWNvbmZpZ19pdGVtX3B1dChpdGVtKTsKQEAgLTIwODEsMTQgJiM0MzsyMDgxLDE0IEBAIHN0YXRpYyBzdHJ1Y3QgbnVsbGIgKm51bGxfZmluZF9kZXZfYnlfbmFtZShjb25zdCBjaGFyICpuYW1lKQogewogCXN0cnVjdCBudWxsYiAqbnVsbGIgPSBOVUxMLCAqbmI7CiAKLQltdXRleF9sb2NrKCZhbXA7bG9jayk7CiYjNDM7CW11dGV4X2xvY2soJmFtcDtudWxsYl9saXN0X2xvY2spOwogCWxpc3RfZm9yX2VhY2hfZW50cnkobmIsICZhbXA7bnVsbGJfbGlzdCwgbGlzdCkgewogCQlpZiAoc3RyY21wKG5iLSZndDtkaXNrX25hbWUsIG5hbWUpID09IDApIHsKIAkJCW51bGxiID0gbmI7CiAJCQlicmVhazsKIAkJfQogCX0KLQltdXRleF91bmxvY2soJmFtcDtsb2NrKTsKJiM0MzsJbXV0ZXhfdW5sb2NrKCZhbXA7bnVsbGJfbGlzdF9sb2NrKTsKIAogCXJldHVybiBudWxsYjsKIH0KQEAgLTIxMDIsOSAmIzQzOzIxMDIsOSBAQCBzdGF0aWMgaW50IG51bGxfY3JlYXRlX2Rldih2b2lkKQogCWlmICghZGV2KQogCQlyZXR1cm4gLUVOT01FTTsKIAotCW11dGV4X2xvY2soJmFtcDtsb2NrKTsKJiM0MzsJbXV0ZXhfbG9jaygmYW1wO251bGxiX2xpc3RfbG9jayk7CiAJcmV0ID0gbnVsbF9hZGRfZGV2KGRldik7Ci0JbXV0ZXhfdW5sb2NrKCZhbXA7bG9jayk7CiYjNDM7CW11dGV4X3VubG9jaygmYW1wO251bGxiX2xpc3RfbG9jayk7CiAJaWYgKHJldCkgewogCQludWxsX2ZyZWVfZGV2KGRldik7CiAJCXJldHVybiByZXQ7CkBAIC0yMTYyLDE3ICYjNDM7MjE2Miw5IEBAIHN0YXRpYyBpbnQgX19pbml0IG51bGxfaW5pdCh2b2lkKQogCWNvbmZpZ19ncm91cF9pbml0KCZhbXA7bnVsbGJfc3Vic3lzLnN1X2dyb3VwKTsKIAltdXRleF9pbml0KCZhbXA7bnVsbGJfc3Vic3lzLnN1X211dGV4KTsKIAotCXJldCA9IGNvbmZpZ2ZzX3JlZ2lzdGVyX3N1YnN5c3RlbSgmYW1wO251bGxiX3N1YnN5cyk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQotCW11dGV4X2luaXQoJmFtcDtsb2NrKTsKLQogCW51bGxfbWFqb3IgPSByZWdpc3Rlcl9ibGtkZXYoMCwgJiMzNDtudWxsYiYjMzQ7KTsKLQlpZiAobnVsbF9tYWpvciAmbHQ7IDApIHsKLQkJcmV0ID0gbnVsbF9tYWpvcjsKLQkJZ290byBlcnJfY29uZjsKLQl9CiYjNDM7CWlmIChudWxsX21ham9yICZsdDsgMCkKJiM0MzsJCXJldHVybiBudWxsX21ham9yOwogCiAJZm9yIChpID0gMDsgaSAmbHQ7IG5yX2RldmljZXM7IGkmIzQzOyYjNDM7KSB7CiAJCXJldCA9IG51bGxfY3JlYXRlX2RldigpOwpAQCAtMjE4MCw2ICYjNDM7MjE3MiwxMCBAQCBzdGF0aWMgaW50IF9faW5pdCBudWxsX2luaXQodm9pZCkKIAkJCWdvdG8gZXJyX2RldjsKIAl9CiAKJiM0MzsJcmV0ID0gY29uZmlnZnNfcmVnaXN0ZXJfc3Vic3lzdGVtKCZhbXA7bnVsbGJfc3Vic3lzKTsKJiM0MzsJaWYgKHJldCkKJiM0MzsJCWdvdG8gZXJyX2RldjsKJiM0MzsKIAlwcl9pbmZvKCYjMzQ7bW9kdWxlIGxvYWRlZFxuJiMzNDspOwogCXJldHVybiAwOwogCkBAIC0yMTg5LDggJiM0MzsyMTg1LDYgQEAgc3RhdGljIGludCBfX2luaXQgbnVsbF9pbml0KHZvaWQpCiAJCW51bGxfZGVzdHJveV9kZXYobnVsbGIpOwogCX0KIAl1bnJlZ2lzdGVyX2Jsa2RldihudWxsX21ham9yLCAmIzM0O251bGxiJiMzNDspOwotZXJyX2NvbmY6Ci0JY29uZmlnZnNfdW5yZWdpc3Rlcl9zdWJzeXN0ZW0oJmFtcDtudWxsYl9zdWJzeXMpOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTIyMDIsMTcgJiM0MzsyMTk2LDE3IEBAIHN0YXRpYyB2b2lkIF9fZXhpdCBudWxsX2V4aXQodm9pZCkKIAogCXVucmVnaXN0ZXJfYmxrZGV2KG51bGxfbWFqb3IsICYjMzQ7bnVsbGImIzM0Oyk7CiAKLQltdXRleF9sb2NrKCZhbXA7bG9jayk7CiYjNDM7CW11dGV4X2xvY2soJmFtcDtudWxsYl9saXN0X2xvY2spOwogCXdoaWxlICghbGlzdF9lbXB0eSgmYW1wO251bGxiX2xpc3QpKSB7CiAJCW51bGxiID0gbGlzdF9lbnRyeShudWxsYl9saXN0Lm5leHQsIHN0cnVjdCBudWxsYiwgbGlzdCk7CiAJCW51bGxfZGVzdHJveV9kZXYobnVsbGIpOwogCX0KLQltdXRleF91bmxvY2soJmFtcDtsb2NrKTsKJiM0MzsJbXV0ZXhfdW5sb2NrKCZhbXA7bnVsbGJfbGlzdF9sb2NrKTsKIAogCWlmICh0YWdfc2V0Lm9wcykKIAkJYmxrX21xX2ZyZWVfdGFnX3NldCgmYW1wO3RhZ19zZXQpOwogCi0JbXV0ZXhfZGVzdHJveSgmYW1wO2xvY2spOwomIzQzOwltdXRleF9kZXN0cm95KCZhbXA7bnVsbGJfbGlzdF9sb2NrKTsKIH0KIAogbW9kdWxlX2luaXQobnVsbF9pbml0KTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTg6NTU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzQwNAoJCQkJCQkJb3V0cHV0OiAyOQoJCQkJCQkJdGhvdWdodHM6IDE2MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE51bGwgQmxvY2sgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgYWltZWQgc3F1YXJlbHkgYXQgdGhlIGBkcml2ZXJzL2Jsb2NrL251bGxfYmxrL21haW4uY2AgZmlsZSDigJMgdGhhdCYjMzk7cyB3aGVyZSB0aGUgY29yZSBvZiB0aGUgbnVsbCBibG9jayBkcml2ZXIgbGl2ZXMuIEltbWVkaWF0ZWx5LCBJIHNlZSBhIHN0cmFpZ2h0Zm9yd2FyZCBtdXRleCByZW5hbWUuIFRoZXkmIzM5O3JlIGNoYW5naW5nIGBsb2NrYCB0byBgbnVsbGJfbGlzdF9sb2NrYCBhbmQsIGltcG9ydGFudGx5LCBzd2l0Y2hpbmcgdGhlIGRlY2xhcmF0aW9uIGZyb20gYHN0YXRpYyBzdHJ1Y3QgbXV0ZXggbG9jaztgIHRvIGBzdGF0aWMgREVGSU5FX01VVEVYKG51bGxiX2xpc3RfbG9jayk7YC4gVGhhdCYjMzk7cyBhIGNvbW1vbiBhbmQgZ29vZCBwcmFjdGljZTsgYERFRklORV9NVVRFWGAgaXMgY2xlYW5lciBhbmQgZ2VuZXJhbGx5IHByZWZlcnJlZCBmb3Igc3RhdGljYWxseSBkZWZpbmVkIG11dGV4ZXMgYXMgaXQgaGFuZGxlcyBpbml0aWFsaXphdGlvbiBtb3JlIHJlbGlhYmx5LCBlc3BlY2lhbGx5IGluIHRoZSBrZXJuZWwmIzM5O3MgaW5pdGlhbGl6YXRpb24gY29udGV4dC4gTm8gYmlnIHN1cnByaXNlcyB0aGVyZSwganVzdCB0aWR5aW5nIHVwLgoKVGhlIG1vcmUgaW50ZXJlc3RpbmcgcGFydCBpcyB0aGUgaW5pdGlhbGl6YXRpb24gb3JkZXIgY2hhbmdlLiBUaGV5JiMzOTtyZSBhbHRlcmluZyB0aGUgc2VxdWVuY2Ugd2l0aGluIHRoZSBgbnVsbF9pbml0YCBmdW5jdGlvbi4gUHJldmlvdXNseSwgdGhlIGBjb25maWdmc19yZWdpc3Rlcl9zdWJzeXN0ZW1gIGNhbGwgY2FtZSAqYmVmb3JlKiBgcmVnaXN0ZXJfYmxrZGV2YCBhbmQgYG51bGxfY3JlYXRlX2RldmAuIE5vdywgdGhvc2UgbGF0dGVyIHR3byBjYWxscyBhcmUgaGFwcGVuaW5nIGZpcnN0LCAqdGhlbiogYGNvbmZpZ2ZzX3JlZ2lzdGVyX3N1YnN5c3RlbWAgaXMgaW52b2tlZC4gVGhhdCYjMzk7cyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBub3QganVzdCBhIGNvc21ldGljIG9uZSwgYW5kIHRoYXQmIzM5O3Mgc29tZXRoaW5nIHRoYXQgYWx3YXlzIHdhcnJhbnRzIGEgZGVlcGVyIGxvb2suIFRoZSBvcmRlciBvZiBpbml0aWFsaXphdGlvbiBjYW4gYmUgY3J1Y2lhbCwgZXNwZWNpYWxseSB3aGVuIGRpZmZlcmVudCBzdWJzeXN0ZW1zIGRlcGVuZCBvbiBlYWNoIG90aGVyLgoKTXkgbmV4dCBzdGVwIHdvdWxkIGJlIHRvIGltbWVkaWF0ZWx5IGNoZWNrIHRoZSBudWxsX2JsayYjMzk7cyBhc3NvY2lhdGVkIEtjb25maWcgb3B0aW9ucy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYWZmZWN0IHRoZSBkcml2ZXImIzM5O3MgYmVoYXZpb3IgYW5kIGRlcGVuZGVuY2llcy4gSGFzIHNvbWV0aGluZyBjaGFuZ2VkIGluIGhvdyB0aGUgY29uZmlndXJhdGlvbiBpbnRlcmFjdHMgd2l0aCBgY29uZmlnZnNgIG9yIHRoZSBibG9jayBkZXZpY2UgcmVnaXN0cmF0aW9uIG5vdyB0aGF0IHdlJiMzOTt2ZSBzd2l0Y2hlZCB0aGUgb3JkZXI/IFRoaXMgbWlnaHQgYmUgdGhlIGNydXggb2YgdGhlIGlzc3VlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aHkgdGhpcyByZS1vcmRlcmluZyB3YXMgZGVlbWVkIG5lY2Vzc2FyeSBhbmQgd2hhdCBwb3RlbnRpYWwgc2lkZSBlZmZlY3RzIGl0IG1pZ2h0IGhhdmUuIFVuZGVyc3RhbmRpbmcgdGhlICp3aHkqIGlzIHRoZSBtb3N0IGNyaXRpY2FsIGFzcGVjdCBvZiBzdWNoIGEgY2hhbmdlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA2IDE4OjU1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O251bGxfYmxrJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9ibG9jay9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvYmxvY2svS2NvbmZpZz0xNz1pZiBCTEtfREVWXG5kcml2ZXJzL2Jsb2NrL0tjb25maWctMTgtXG5kcml2ZXJzL2Jsb2NrL0tjb25maWc6MTk6c291cmNlIFwmIzM0O2RyaXZlcnMvYmxvY2svbnVsbF9ibGsvS2NvbmZpZ1wmIzM0O1xuZHJpdmVycy9ibG9jay9LY29uZmlnLTIwLXNvdXJjZSBcJiMzNDtkcml2ZXJzL2Jsb2NrL3JudWxsL0tjb25maWdcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNiAxODo1NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MDY4CgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBmaXJzdC1wZXJzb24gc3VtbWFyeSBvZiB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEaXZpbmcgaW50byB0aGUgTnVsbCBCbG9jayBEcml2ZXIgQ29uZmlndXJhdGlvbioqCgpPa2F5LCB0aW1lIHRvIGdldCBteSBoYW5kcyBkaXJ0eSB3aXRoIHRoZSBudWxsIGJsb2NrIGRyaXZlci4gV2hlcmUgZG9lcyB0aGUgY29uZmlndXJhdGlvbiBsaXZlIGZvciB0aGlzIHRoaW5nPyBBaCwgcmlnaHQsIGl0JiMzOTtzIHByZXR0eSBzdGFuZGFyZCBwcmFjdGljZTogYGRyaXZlcnMvYmxvY2svbnVsbF9ibGsvS2NvbmZpZ2AuIExldCYjMzk7cyBjb25maXJtIHRoYXQmIzM5O3Mgd2hlcmUgdGhlIHJlbGV2YW50IG9wdGlvbnMgYXJlIGRlZmluZWQuIEkgZXhwZWN0IHRvIHNlZSB0aGUgdXN1YWwgc3VzcGVjdHMg4oCTIGVuYWJsaW5nL2Rpc2FibGluZyB0aGUgZHJpdmVyLCBtYXliZSBzb21lIG9wdGlvbnMgZm9yIGJsb2NrIHNpemUsIG51bWJlciBvZiBkZXZpY2VzLCBhbmQgb3RoZXIgcGFyYW1ldGVycy4gSSYjMzk7bGwgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgYnVpbGQgc3lzdGVtIGhhbmRsZXMgdGhlIGBLY29uZmlnYCBmaWxlIGFuZCB3aGF0IGRlcGVuZGVuY2llcyBtaWdodCBiZSBpbiBwbGF5IHRvIGdldCBhIHByb3BlciBoYW5kbGUgb24gdGhpcyBtb2R1bGUuIFVuZGVyc3RhbmRpbmcgdGhlIGJ1aWxkIGNvbmZpZ3VyYXRpb24gaXMga2V5IHRvIHRoZSBvdmVyYWxsIGRlc2lnbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNiAxODo1NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9ibG9jay9udWxsX2Jsay9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvYmxvY2svbnVsbF9ibGsvS2NvbmZpZy01LVxuZHJpdmVycy9ibG9jay9udWxsX2Jsay9LY29uZmlnOjY6Y29uZmlnIEJMS19ERVZfTlVMTF9CTEtcbmRyaXZlcnMvYmxvY2svbnVsbF9ibGsvS2NvbmZpZy03LVx0dHJpc3RhdGUgXCYjMzQ7TnVsbCB0ZXN0IGJsb2NrIGRyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvYmxvY2svbnVsbF9ibGsvS2NvbmZpZy05LVxuZHJpdmVycy9ibG9jay9udWxsX2Jsay9LY29uZmlnOjEwOmNvbmZpZyBCTEtfREVWX05VTExfQkxLX0ZBVUxUX0lOSkVDVElPTlxuZHJpdmVycy9ibG9jay9udWxsX2Jsay9LY29uZmlnLTExLVx0Ym9vbCBcJiMzNDtTdXBwb3J0IGZhdWx0IGluamVjdGlvbiBmb3IgTnVsbCB0ZXN0IGJsb2NrIGRyaXZlclwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA2IDE4OjU2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ0MjcKCQkJCQkJCW91dHB1dDogMTEwCgkJCQkJCQl0aG91Z2h0czogODY0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTnVsbCBCbG9jayBEZXZpY2UgSW5pdGlhbGl6YXRpb24gUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBCTEtfREVWX05VTExfQkxLYC4gSXQgc2VlbXMgbGlrZSB0aGUgY29yZSBjaGFuZ2UgaXMgd2l0aGluIGBudWxsX2luaXRgLCB0aGUgbW9kdWxlJiMzOTtzIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uLiBUaGUgc3RhdGVkIGdvYWwgaXMgdG8gcmVzb2x2ZSBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbiBvciBpbml0aWFsaXphdGlvbiBvcmRlciBwcm9ibGVtLiBTcGVjaWZpY2FsbHksIGl0IGFwcGVhcnMgY29uZmlnZnMgbWlnaHQgaGF2ZSBiZWVuIGFjY2Vzc2libGUgYmVmb3JlIHRoZSBibG9jayBkZXZpY2Ugd2FzIGZ1bGx5IHJlZ2lzdGVyZWQsIG9yIGRldmljZXMgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseSBjcmVhdGVkLgoKVGhlIGluaXRpYWwgdGhvdWdodCBpcywgJiMzNDtJcyB0aGlzIGZ1enphYmxlPyYjMzQ7IEl0JiMzOTtzIGFuIGluaXRpYWxpemF0aW9uIG9yZGVyIGNoYW5nZSB3aXRoaW4gYSBtb2R1bGUmIzM5O3MgaW5pdCBmdW5jdGlvbi4gRnV6emluZyBtb2R1bGUgbG9hZGluZyBhbmQgdW5sb2FkaW5nICpjb3VsZCogcG90ZW50aWFsbHkgaGl0IHRoaXMsIGJ1dCBpdCYjMzk7cyBmdW5kYW1lbnRhbGx5IGEgb25lLXRpbWUgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UuIE9uIHRoZSBvdGhlciBoYW5kLCB0aGUgY2hhbmdlIGlzIGZ1bmN0aW9uYWwuIFN5emthbGxlciwgaW4gcGFydGljdWxhciwgZG9lcyBmdXp6IG1vZHVsZSBsb2FkaW5nLCBhbmQgY29uZmlnZnMgaW50ZXJhY3Rpb25zLiBTeXprYWxsZXIgc3BlY2lmaWNhbGx5IGZ1enplZCBjb25maWdmcyBpbnRlcmFjdGlvbnMgd2l0aCBudWxsX2Jsay4KClRoZSBwYXRjaCBzZWVtcyB0byByZW9yZGVyIGluaXRpYWxpemF0aW9uLiBJdCAqYWxzbyogcmVuYW1lcyBgbG9ja2AgdG8gYG51bGxiX2xpc3RfbG9ja2AsIHdoaWNoIGlzIG1haW5seSBhIGNvc21ldGljIGNoYW5nZS4gTG9va2luZyBhdCB0aGUgZGlmZiBhZ2FpbiwgaXQmIzM5O3MgY2xlYXIgdGhlIGluaXRpYWxpemF0aW9uIG9yZGVyIGlzIHRoZSBjb3JlIGZ1bmN0aW9uYWwgY2hhbmdlLiBOb3csIHRoaXMgaXMgZGVmaW5pdGVseSB3b3J0aCBmdXp6aW5nLiBJIGNhbiB0YXJnZXQgaXQgYnkgZm9jdXNpbmcgb24gdGhlIGBudWxsX2luaXRgIGZ1bmN0aW9uLgoKSSBzZWUgbm93IHRoYXQgdGhlIHBhdGNoIGNoYW5nZXMgdGhlIGluaXRpYWxpemF0aW9uIGxvZ2ljLiBUaGUgcGF0Y2ggbm93IHJlZ2lzdGVycyBjb25maWdmcyAqYWZ0ZXIqIGJsb2NrIGRldmljZXMgaGF2ZSBiZWVuIGNyZWF0ZWQuIFRoaXMgcmVzb2x2ZXMgYSByYWNlIHdoZXJlIHVzZXJzcGFjZSBjb3VsZCBpbnRlcmFjdCB3aXRoIGNvbmZpZ2ZzIGJlZm9yZSB0aGUgZHJpdmVyIHdhcyBmdWxseSBpbml0aWFsaXplZC4KCk5vdyB0aGUgcGF0Y2ggY2xlYW5zIHVwIGEgbXV0ZXggYnkgdXNpbmcgYERFRklORV9NVVRFWGAgaW5zdGVhZCBvZiBgbXV0ZXhfaW5pdGAuIFN0aWxsLCB0aGUga2V5IHRha2Vhd2F5IGlzIHRoZSBpbml0IG9yZGVyIGNoYW5nZSwgd2hpY2ggKmlzKiBmdW5jdGlvbmFsLiBJdCYjMzk7cyBhbiBpbXBvcnRhbnQgZml4LgoKVGhlcmVmb3JlLCBteSBjb25jbHVzaW9uIGlzIGNsZWFyOgoqICAgYFdvcnRoRnV6emluZz10cnVlYAoqICAgYEZvY3VzU3ltYm9scz1bJiMzNDtudWxsX2luaXQmIzM0O11gCiogICBgRW5hYmxlQ29uZmlncz1bJiMzNDtCTEtfREVWX05VTExfQkxLJiMzNDtdYC4KClRoZSByZWFzb25pbmcgaXMgc3RyYWlnaHRmb3J3YXJkOiBUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlIG9mIHRoZSBgbnVsbF9ibGtgIGRyaXZlci4gVGhpcyBpbnZvbHZlcyByZWdpc3RlcmluZyBjb25maWdmcyBhZnRlciBkZXZpY2VzIGhhdmUgYmVlbiBjcmVhdGVkLiBUaGlzIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gdGhhdCBjb3VsZCBvY2N1ciBkdXJpbmcgbW9kdWxlIGxvYWRpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTg6NTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JMS19ERVZfTlVMTF9CTEsmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtudWxsX2luaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggY2hhbmdlcyB0aGUgaW5pdGlhbGl6YXRpb24gb3JkZXIgb2YgdGhlIG51bGxfYmxrIGRyaXZlciB0byByZWdpc3RlciBjb25maWdmcyBhZnRlciBkZXZpY2VzIGFyZSBjcmVhdGVkLCBmaXhpbmcgYSBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb24gZHVyaW5nIG1vZHVsZSBsb2FkLiBJdCBhbHNvIHJlbmFtZXMgYSBtdXRleCBhbmQgY2hhbmdlcyBpdHMgaW5pdGlhbGl6YXRpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZHJpdmVyJiMzOTtzIGluaXRpYWxpemF0aW9uIGxvZ2ljIHRoYXQgY2FuIGJlIHJlYWNoZWQgZHVyaW5nIG1vZHVsZSBsb2FkaW5nIGFuZCBjb25maWdmcyBpbnRlcmFjdGlvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JMS19ERVZfTlVMTF9CTEsmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtudWxsX2luaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggY2hhbmdlcyB0aGUgaW5pdGlhbGl6YXRpb24gb3JkZXIgb2YgdGhlIG51bGxfYmxrIGRyaXZlciB0byByZWdpc3RlciBjb25maWdmcyBhZnRlciBkZXZpY2VzIGFyZSBjcmVhdGVkLCBmaXhpbmcgYSBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb24gZHVyaW5nIG1vZHVsZSBsb2FkLiBJdCBhbHNvIHJlbmFtZXMgYSBtdXRleCBhbmQgY2hhbmdlcyBpdHMgaW5pdGlhbGl6YXRpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZHJpdmVyJiMzOTtzIGluaXRpYWxpemF0aW9uIGxvZ2ljIHRoYXQgY2FuIGJlIHJlYWNoZWQgZHVyaW5nIG1vZHVsZSBsb2FkaW5nIGFuZCBjb25maWdmcyBpbnRlcmFjdGlvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxODo1NTo1NC4zMjIyMTQ2N1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4NDk1Mjc5OTEwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJMS19ERVZfTlVMTF9CTEtcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJudWxsX2luaXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBjaGFuZ2VzIHRoZSBpbml0aWFsaXphdGlvbiBvcmRlciBvZiB0aGUgbnVsbF9ibGsgZHJpdmVyIHRvIHJlZ2lzdGVyIGNvbmZpZ2ZzIGFmdGVyIGRldmljZXMgYXJlIGNyZWF0ZWQsIGZpeGluZyBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbiBkdXJpbmcgbW9kdWxlIGxvYWQuIEl0IGFsc28gcmVuYW1lcyBhIG11dGV4IGFuZCBjaGFuZ2VzIGl0cyBpbml0aWFsaXphdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXIncyBpbml0aWFsaXphdGlvbiBsb2dpYyB0aGF0IGNhbiBiZSByZWFjaGVkIGR1cmluZyBtb2R1bGUgbG9hZGluZyBhbmQgY29uZmlnZnMgaW50ZXJhY3Rpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxODo1NTo1NC4zMjIyMjA4WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NzEzOTM2OTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAwNDM4YWYzMjZlNmNkMmI0ZjYwNTgwMTM3MTUyMjMwNTZhNTVlZGJkXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gSnVsIDYgMTg6NTU6NTMgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9udWxsX2Jsay9tYWluLmMgYi9kcml2ZXJzL2Jsb2NrL251bGxfYmxrL21haW4uY1xcbmluZGV4IGY4YzBmZDU3ZTA0MWE4Li45ODAwMDQ5YjNjM2YzZiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL2Jsb2NrL251bGxfYmxrL21haW4uY1xcbisrKyBiL2RyaXZlcnMvYmxvY2svbnVsbF9ibGsvbWFpbi5jXFxuQEAgLTY2LDcgKzY2LDcgQEAgc3RydWN0IG51bGxiX3BhZ2Uge1xcbiAjZGVmaW5lIE5VTExCX1BBR0VfRlJFRSAoTUFQX1NaIC0gMilcXG4gXFxuIHN0YXRpYyBMSVNUX0hFQUQobnVsbGJfbGlzdCk7XFxuLXN0YXRpYyBzdHJ1Y3QgbXV0ZXggbG9jaztcXG4rc3RhdGljIERFRklORV9NVVRFWChudWxsYl9saXN0X2xvY2spO1xcbiBzdGF0aWMgaW50IG51bGxfbWFqb3I7XFxuIHN0YXRpYyBERUZJTkVfSURBKG51bGxiX2luZGV4ZXMpO1xcbiBzdGF0aWMgc3RydWN0IGJsa19tcV90YWdfc2V0IHRhZ19zZXQ7XFxuQEAgLTQyMyw5ICs0MjMsOSBAQCBzdGF0aWMgaW50IG51bGxiX2FwcGx5X3N1Ym1pdF9xdWV1ZXMoc3RydWN0IG51bGxiX2RldmljZSAqZGV2LFxcbiB7XFxuIFxcdGludCByZXQ7XFxuIFxcbi1cXHRtdXRleF9sb2NrKFxcdTAwMjZsb2NrKTtcXG4rXFx0bXV0ZXhfbG9jayhcXHUwMDI2bnVsbGJfbGlzdF9sb2NrKTtcXG4gXFx0cmV0ID0gbnVsbGJfdXBkYXRlX25yX2h3X3F1ZXVlcyhkZXYsIHN1Ym1pdF9xdWV1ZXMsIGRldi1cXHUwMDNlcG9sbF9xdWV1ZXMpO1xcbi1cXHRtdXRleF91bmxvY2soXFx1MDAyNmxvY2spO1xcbitcXHRtdXRleF91bmxvY2soXFx1MDAyNm51bGxiX2xpc3RfbG9jayk7XFxuIFxcbiBcXHRyZXR1cm4gcmV0O1xcbiB9XFxuQEAgLTQzNSw5ICs0MzUsOSBAQCBzdGF0aWMgaW50IG51bGxiX2FwcGx5X3BvbGxfcXVldWVzKHN0cnVjdCBudWxsYl9kZXZpY2UgKmRldixcXG4ge1xcbiBcXHRpbnQgcmV0O1xcbiBcXG4tXFx0bXV0ZXhfbG9jayhcXHUwMDI2bG9jayk7XFxuK1xcdG11dGV4X2xvY2soXFx1MDAyNm51bGxiX2xpc3RfbG9jayk7XFxuIFxcdHJldCA9IG51bGxiX3VwZGF0ZV9ucl9od19xdWV1ZXMoZGV2LCBkZXYtXFx1MDAzZXN1Ym1pdF9xdWV1ZXMsIHBvbGxfcXVldWVzKTtcXG4tXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZsb2NrKTtcXG4rXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZudWxsYl9saXN0X2xvY2spO1xcbiBcXG4gXFx0cmV0dXJuIHJldDtcXG4gfVxcbkBAIC00OTMsNyArNDkzLDcgQEAgc3RhdGljIHNzaXplX3QgbnVsbGJfZGV2aWNlX3Bvd2VyX3N0b3JlKHN0cnVjdCBjb25maWdfaXRlbSAqaXRlbSxcXG4gXFx0XFx0cmV0dXJuIHJldDtcXG4gXFxuIFxcdHJldCA9IGNvdW50O1xcbi1cXHRtdXRleF9sb2NrKFxcdTAwMjZsb2NrKTtcXG4rXFx0bXV0ZXhfbG9jayhcXHUwMDI2bnVsbGJfbGlzdF9sb2NrKTtcXG4gXFx0aWYgKCFkZXYtXFx1MDAzZXBvd2VyIFxcdTAwMjZcXHUwMDI2IG5ld3ApIHtcXG4gXFx0XFx0aWYgKHRlc3RfYW5kX3NldF9iaXQoTlVMTEJfREVWX0ZMX1VQLCBcXHUwMDI2ZGV2LVxcdTAwM2VmbGFncykpXFxuIFxcdFxcdFxcdGdvdG8gb3V0O1xcbkBAIC01MTYsNyArNTE2LDcgQEAgc3RhdGljIHNzaXplX3QgbnVsbGJfZGV2aWNlX3Bvd2VyX3N0b3JlKHN0cnVjdCBjb25maWdfaXRlbSAqaXRlbSxcXG4gXFx0fVxcbiBcXG4gb3V0Olxcbi1cXHRtdXRleF91bmxvY2soXFx1MDAyNmxvY2spO1xcbitcXHRtdXRleF91bmxvY2soXFx1MDAyNm51bGxiX2xpc3RfbG9jayk7XFxuIFxcdHJldHVybiByZXQ7XFxuIH1cXG4gXFxuQEAgLTcwNywxMCArNzA3LDEwIEBAIG51bGxiX2dyb3VwX2Ryb3BfaXRlbShzdHJ1Y3QgY29uZmlnX2dyb3VwICpncm91cCwgc3RydWN0IGNvbmZpZ19pdGVtICppdGVtKVxcbiBcXHRzdHJ1Y3QgbnVsbGJfZGV2aWNlICpkZXYgPSB0b19udWxsYl9kZXZpY2UoaXRlbSk7XFxuIFxcbiBcXHRpZiAodGVzdF9hbmRfY2xlYXJfYml0KE5VTExCX0RFVl9GTF9VUCwgXFx1MDAyNmRldi1cXHUwMDNlZmxhZ3MpKSB7XFxuLVxcdFxcdG11dGV4X2xvY2soXFx1MDAyNmxvY2spO1xcbitcXHRcXHRtdXRleF9sb2NrKFxcdTAwMjZudWxsYl9saXN0X2xvY2spO1xcbiBcXHRcXHRkZXYtXFx1MDAzZXBvd2VyID0gZmFsc2U7XFxuIFxcdFxcdG51bGxfZGVsX2RldihkZXYtXFx1MDAzZW51bGxiKTtcXG4tXFx0XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZsb2NrKTtcXG4rXFx0XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZudWxsYl9saXN0X2xvY2spO1xcbiBcXHR9XFxuIFxcdG51bGxiX2RlbF9mYXVsdF9jb25maWcoZGV2KTtcXG4gXFx0Y29uZmlnX2l0ZW1fcHV0KGl0ZW0pO1xcbkBAIC0yMDgxLDE0ICsyMDgxLDE0IEBAIHN0YXRpYyBzdHJ1Y3QgbnVsbGIgKm51bGxfZmluZF9kZXZfYnlfbmFtZShjb25zdCBjaGFyICpuYW1lKVxcbiB7XFxuIFxcdHN0cnVjdCBudWxsYiAqbnVsbGIgPSBOVUxMLCAqbmI7XFxuIFxcbi1cXHRtdXRleF9sb2NrKFxcdTAwMjZsb2NrKTtcXG4rXFx0bXV0ZXhfbG9jayhcXHUwMDI2bnVsbGJfbGlzdF9sb2NrKTtcXG4gXFx0bGlzdF9mb3JfZWFjaF9lbnRyeShuYiwgXFx1MDAyNm51bGxiX2xpc3QsIGxpc3QpIHtcXG4gXFx0XFx0aWYgKHN0cmNtcChuYi1cXHUwMDNlZGlza19uYW1lLCBuYW1lKSA9PSAwKSB7XFxuIFxcdFxcdFxcdG51bGxiID0gbmI7XFxuIFxcdFxcdFxcdGJyZWFrO1xcbiBcXHRcXHR9XFxuIFxcdH1cXG4tXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZsb2NrKTtcXG4rXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZudWxsYl9saXN0X2xvY2spO1xcbiBcXG4gXFx0cmV0dXJuIG51bGxiO1xcbiB9XFxuQEAgLTIxMDIsOSArMjEwMiw5IEBAIHN0YXRpYyBpbnQgbnVsbF9jcmVhdGVfZGV2KHZvaWQpXFxuIFxcdGlmICghZGV2KVxcbiBcXHRcXHRyZXR1cm4gLUVOT01FTTtcXG4gXFxuLVxcdG11dGV4X2xvY2soXFx1MDAyNmxvY2spO1xcbitcXHRtdXRleF9sb2NrKFxcdTAwMjZudWxsYl9saXN0X2xvY2spO1xcbiBcXHRyZXQgPSBudWxsX2FkZF9kZXYoZGV2KTtcXG4tXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZsb2NrKTtcXG4rXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZudWxsYl9saXN0X2xvY2spO1xcbiBcXHRpZiAocmV0KSB7XFxuIFxcdFxcdG51bGxfZnJlZV9kZXYoZGV2KTtcXG4gXFx0XFx0cmV0dXJuIHJldDtcXG5AQCAtMjE2MiwxNyArMjE2Miw5IEBAIHN0YXRpYyBpbnQgX19pbml0IG51bGxfaW5pdCh2b2lkKVxcbiBcXHRjb25maWdfZ3JvdXBfaW5pdChcXHUwMDI2bnVsbGJfc3Vic3lzLnN1X2dyb3VwKTtcXG4gXFx0bXV0ZXhfaW5pdChcXHUwMDI2bnVsbGJfc3Vic3lzLnN1X211dGV4KTtcXG4gXFxuLVxcdHJldCA9IGNvbmZpZ2ZzX3JlZ2lzdGVyX3N1YnN5c3RlbShcXHUwMDI2bnVsbGJfc3Vic3lzKTtcXG4tXFx0aWYgKHJldClcXG4tXFx0XFx0cmV0dXJuIHJldDtcXG4tXFxuLVxcdG11dGV4X2luaXQoXFx1MDAyNmxvY2spO1xcbi1cXG4gXFx0bnVsbF9tYWpvciA9IHJlZ2lzdGVyX2Jsa2RldigwLCBcXFwibnVsbGJcXFwiKTtcXG4tXFx0aWYgKG51bGxfbWFqb3IgXFx1MDAzYyAwKSB7XFxuLVxcdFxcdHJldCA9IG51bGxfbWFqb3I7XFxuLVxcdFxcdGdvdG8gZXJyX2NvbmY7XFxuLVxcdH1cXG4rXFx0aWYgKG51bGxfbWFqb3IgXFx1MDAzYyAwKVxcbitcXHRcXHRyZXR1cm4gbnVsbF9tYWpvcjtcXG4gXFxuIFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBucl9kZXZpY2VzOyBpKyspIHtcXG4gXFx0XFx0cmV0ID0gbnVsbF9jcmVhdGVfZGV2KCk7XFxuQEAgLTIxODAsNiArMjE3MiwxMCBAQCBzdGF0aWMgaW50IF9faW5pdCBudWxsX2luaXQodm9pZClcXG4gXFx0XFx0XFx0Z290byBlcnJfZGV2O1xcbiBcXHR9XFxuIFxcbitcXHRyZXQgPSBjb25maWdmc19yZWdpc3Rlcl9zdWJzeXN0ZW0oXFx1MDAyNm51bGxiX3N1YnN5cyk7XFxuK1xcdGlmIChyZXQpXFxuK1xcdFxcdGdvdG8gZXJyX2RldjtcXG4rXFxuIFxcdHByX2luZm8oXFxcIm1vZHVsZSBsb2FkZWRcXFxcblxcXCIpO1xcbiBcXHRyZXR1cm4gMDtcXG4gXFxuQEAgLTIxODksOCArMjE4NSw2IEBAIHN0YXRpYyBpbnQgX19pbml0IG51bGxfaW5pdCh2b2lkKVxcbiBcXHRcXHRudWxsX2Rlc3Ryb3lfZGV2KG51bGxiKTtcXG4gXFx0fVxcbiBcXHR1bnJlZ2lzdGVyX2Jsa2RldihudWxsX21ham9yLCBcXFwibnVsbGJcXFwiKTtcXG4tZXJyX2NvbmY6XFxuLVxcdGNvbmZpZ2ZzX3VucmVnaXN0ZXJfc3Vic3lzdGVtKFxcdTAwMjZudWxsYl9zdWJzeXMpO1xcbiBcXHRyZXR1cm4gcmV0O1xcbiB9XFxuIFxcbkBAIC0yMjAyLDE3ICsyMTk2LDE3IEBAIHN0YXRpYyB2b2lkIF9fZXhpdCBudWxsX2V4aXQodm9pZClcXG4gXFxuIFxcdHVucmVnaXN0ZXJfYmxrZGV2KG51bGxfbWFqb3IsIFxcXCJudWxsYlxcXCIpO1xcbiBcXG4tXFx0bXV0ZXhfbG9jayhcXHUwMDI2bG9jayk7XFxuK1xcdG11dGV4X2xvY2soXFx1MDAyNm51bGxiX2xpc3RfbG9jayk7XFxuIFxcdHdoaWxlICghbGlzdF9lbXB0eShcXHUwMDI2bnVsbGJfbGlzdCkpIHtcXG4gXFx0XFx0bnVsbGIgPSBsaXN0X2VudHJ5KG51bGxiX2xpc3QubmV4dCwgc3RydWN0IG51bGxiLCBsaXN0KTtcXG4gXFx0XFx0bnVsbF9kZXN0cm95X2RldihudWxsYik7XFxuIFxcdH1cXG4tXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZsb2NrKTtcXG4rXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZudWxsYl9saXN0X2xvY2spO1xcbiBcXG4gXFx0aWYgKHRhZ19zZXQub3BzKVxcbiBcXHRcXHRibGtfbXFfZnJlZV90YWdfc2V0KFxcdTAwMjZ0YWdfc2V0KTtcXG4gXFxuLVxcdG11dGV4X2Rlc3Ryb3koXFx1MDAyNmxvY2spO1xcbitcXHRtdXRleF9kZXN0cm95KFxcdTAwMjZudWxsYl9saXN0X2xvY2spO1xcbiB9XFxuIFxcbiBtb2R1bGVfaW5pdChudWxsX2luaXQpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxODo1NTo1NC44OTQ0MjMzMDRaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE3OTIzMDU4NDM3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJMS19ERVZfTlVMTF9CTEtcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJudWxsX2luaXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBjaGFuZ2VzIHRoZSBpbml0aWFsaXphdGlvbiBvcmRlciBvZiB0aGUgbnVsbF9ibGsgZHJpdmVyIHRvIHJlZ2lzdGVyIGNvbmZpZ2ZzIGFmdGVyIGRldmljZXMgYXJlIGNyZWF0ZWQsIGZpeGluZyBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbiBkdXJpbmcgbW9kdWxlIGxvYWQuIEl0IGFsc28gcmVuYW1lcyBhIG11dGV4IGFuZCBjaGFuZ2VzIGl0cyBpbml0aWFsaXphdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXIncyBpbml0aWFsaXphdGlvbiBsb2dpYyB0aGF0IGNhbiBiZSByZWFjaGVkIGR1cmluZyBtb2R1bGUgbG9hZGluZyBhbmQgY29uZmlnZnMgaW50ZXJhY3Rpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDA0MzhhZjMyNmU2Y2QyYjRmNjA1ODAxMzcxNTIyMzA1NmE1NWVkYmRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1bCA2IDE4OjU1OjUzIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9udWxsX2Jsay9tYWluLmMgYi9kcml2ZXJzL2Jsb2NrL251bGxfYmxrL21haW4uY1xuaW5kZXggZjhjMGZkNTdlMDQxYTguLjk4MDAwNDliM2MzZjNmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9ibG9jay9udWxsX2Jsay9tYWluLmNcbisrKyBiL2RyaXZlcnMvYmxvY2svbnVsbF9ibGsvbWFpbi5jXG5AQCAtNjYsNyArNjYsNyBAQCBzdHJ1Y3QgbnVsbGJfcGFnZSB7XG4gI2RlZmluZSBOVUxMQl9QQUdFX0ZSRUUgKE1BUF9TWiAtIDIpXG4gXG4gc3RhdGljIExJU1RfSEVBRChudWxsYl9saXN0KTtcbi1zdGF0aWMgc3RydWN0IG11dGV4IGxvY2s7XG4rc3RhdGljIERFRklORV9NVVRFWChudWxsYl9saXN0X2xvY2spO1xuIHN0YXRpYyBpbnQgbnVsbF9tYWpvcjtcbiBzdGF0aWMgREVGSU5FX0lEQShudWxsYl9pbmRleGVzKTtcbiBzdGF0aWMgc3RydWN0IGJsa19tcV90YWdfc2V0IHRhZ19zZXQ7XG5AQCAtNDIzLDkgKzQyMyw5IEBAIHN0YXRpYyBpbnQgbnVsbGJfYXBwbHlfc3VibWl0X3F1ZXVlcyhzdHJ1Y3QgbnVsbGJfZGV2aWNlICpkZXYsXG4ge1xuIFx0aW50IHJldDtcbiBcbi1cdG11dGV4X2xvY2soXHUwMDI2bG9jayk7XG4rXHRtdXRleF9sb2NrKFx1MDAyNm51bGxiX2xpc3RfbG9jayk7XG4gXHRyZXQgPSBudWxsYl91cGRhdGVfbnJfaHdfcXVldWVzKGRldiwgc3VibWl0X3F1ZXVlcywgZGV2LVx1MDAzZXBvbGxfcXVldWVzKTtcbi1cdG11dGV4X3VubG9jayhcdTAwMjZsb2NrKTtcbitcdG11dGV4X3VubG9jayhcdTAwMjZudWxsYl9saXN0X2xvY2spO1xuIFxuIFx0cmV0dXJuIHJldDtcbiB9XG5AQCAtNDM1LDkgKzQzNSw5IEBAIHN0YXRpYyBpbnQgbnVsbGJfYXBwbHlfcG9sbF9xdWV1ZXMoc3RydWN0IG51bGxiX2RldmljZSAqZGV2LFxuIHtcbiBcdGludCByZXQ7XG4gXG4tXHRtdXRleF9sb2NrKFx1MDAyNmxvY2spO1xuK1x0bXV0ZXhfbG9jayhcdTAwMjZudWxsYl9saXN0X2xvY2spO1xuIFx0cmV0ID0gbnVsbGJfdXBkYXRlX25yX2h3X3F1ZXVlcyhkZXYsIGRldi1cdTAwM2VzdWJtaXRfcXVldWVzLCBwb2xsX3F1ZXVlcyk7XG4tXHRtdXRleF91bmxvY2soXHUwMDI2bG9jayk7XG4rXHRtdXRleF91bmxvY2soXHUwMDI2bnVsbGJfbGlzdF9sb2NrKTtcbiBcbiBcdHJldHVybiByZXQ7XG4gfVxuQEAgLTQ5Myw3ICs0OTMsNyBAQCBzdGF0aWMgc3NpemVfdCBudWxsYl9kZXZpY2VfcG93ZXJfc3RvcmUoc3RydWN0IGNvbmZpZ19pdGVtICppdGVtLFxuIFx0XHRyZXR1cm4gcmV0O1xuIFxuIFx0cmV0ID0gY291bnQ7XG4tXHRtdXRleF9sb2NrKFx1MDAyNmxvY2spO1xuK1x0bXV0ZXhfbG9jayhcdTAwMjZudWxsYl9saXN0X2xvY2spO1xuIFx0aWYgKCFkZXYtXHUwMDNlcG93ZXIgXHUwMDI2XHUwMDI2IG5ld3ApIHtcbiBcdFx0aWYgKHRlc3RfYW5kX3NldF9iaXQoTlVMTEJfREVWX0ZMX1VQLCBcdTAwMjZkZXYtXHUwMDNlZmxhZ3MpKVxuIFx0XHRcdGdvdG8gb3V0O1xuQEAgLTUxNiw3ICs1MTYsNyBAQCBzdGF0aWMgc3NpemVfdCBudWxsYl9kZXZpY2VfcG93ZXJfc3RvcmUoc3RydWN0IGNvbmZpZ19pdGVtICppdGVtLFxuIFx0fVxuIFxuIG91dDpcbi1cdG11dGV4X3VubG9jayhcdTAwMjZsb2NrKTtcbitcdG11dGV4X3VubG9jayhcdTAwMjZudWxsYl9saXN0X2xvY2spO1xuIFx0cmV0dXJuIHJldDtcbiB9XG4gXG5AQCAtNzA3LDEwICs3MDcsMTAgQEAgbnVsbGJfZ3JvdXBfZHJvcF9pdGVtKHN0cnVjdCBjb25maWdfZ3JvdXAgKmdyb3VwLCBzdHJ1Y3QgY29uZmlnX2l0ZW0gKml0ZW0pXG4gXHRzdHJ1Y3QgbnVsbGJfZGV2aWNlICpkZXYgPSB0b19udWxsYl9kZXZpY2UoaXRlbSk7XG4gXG4gXHRpZiAodGVzdF9hbmRfY2xlYXJfYml0KE5VTExCX0RFVl9GTF9VUCwgXHUwMDI2ZGV2LVx1MDAzZWZsYWdzKSkge1xuLVx0XHRtdXRleF9sb2NrKFx1MDAyNmxvY2spO1xuK1x0XHRtdXRleF9sb2NrKFx1MDAyNm51bGxiX2xpc3RfbG9jayk7XG4gXHRcdGRldi1cdTAwM2Vwb3dlciA9IGZhbHNlO1xuIFx0XHRudWxsX2RlbF9kZXYoZGV2LVx1MDAzZW51bGxiKTtcbi1cdFx0bXV0ZXhfdW5sb2NrKFx1MDAyNmxvY2spO1xuK1x0XHRtdXRleF91bmxvY2soXHUwMDI2bnVsbGJfbGlzdF9sb2NrKTtcbiBcdH1cbiBcdG51bGxiX2RlbF9mYXVsdF9jb25maWcoZGV2KTtcbiBcdGNvbmZpZ19pdGVtX3B1dChpdGVtKTtcbkBAIC0yMDgxLDE0ICsyMDgxLDE0IEBAIHN0YXRpYyBzdHJ1Y3QgbnVsbGIgKm51bGxfZmluZF9kZXZfYnlfbmFtZShjb25zdCBjaGFyICpuYW1lKVxuIHtcbiBcdHN0cnVjdCBudWxsYiAqbnVsbGIgPSBOVUxMLCAqbmI7XG4gXG4tXHRtdXRleF9sb2NrKFx1MDAyNmxvY2spO1xuK1x0bXV0ZXhfbG9jayhcdTAwMjZudWxsYl9saXN0X2xvY2spO1xuIFx0bGlzdF9mb3JfZWFjaF9lbnRyeShuYiwgXHUwMDI2bnVsbGJfbGlzdCwgbGlzdCkge1xuIFx0XHRpZiAoc3RyY21wKG5iLVx1MDAzZWRpc2tfbmFtZSwgbmFtZSkgPT0gMCkge1xuIFx0XHRcdG51bGxiID0gbmI7XG4gXHRcdFx0YnJlYWs7XG4gXHRcdH1cbiBcdH1cbi1cdG11dGV4X3VubG9jayhcdTAwMjZsb2NrKTtcbitcdG11dGV4X3VubG9jayhcdTAwMjZudWxsYl9saXN0X2xvY2spO1xuIFxuIFx0cmV0dXJuIG51bGxiO1xuIH1cbkBAIC0yMTAyLDkgKzIxMDIsOSBAQCBzdGF0aWMgaW50IG51bGxfY3JlYXRlX2Rldih2b2lkKVxuIFx0aWYgKCFkZXYpXG4gXHRcdHJldHVybiAtRU5PTUVNO1xuIFxuLVx0bXV0ZXhfbG9jayhcdTAwMjZsb2NrKTtcbitcdG11dGV4X2xvY2soXHUwMDI2bnVsbGJfbGlzdF9sb2NrKTtcbiBcdHJldCA9IG51bGxfYWRkX2RldihkZXYpO1xuLVx0bXV0ZXhfdW5sb2NrKFx1MDAyNmxvY2spO1xuK1x0bXV0ZXhfdW5sb2NrKFx1MDAyNm51bGxiX2xpc3RfbG9jayk7XG4gXHRpZiAocmV0KSB7XG4gXHRcdG51bGxfZnJlZV9kZXYoZGV2KTtcbiBcdFx0cmV0dXJuIHJldDtcbkBAIC0yMTYyLDE3ICsyMTYyLDkgQEAgc3RhdGljIGludCBfX2luaXQgbnVsbF9pbml0KHZvaWQpXG4gXHRjb25maWdfZ3JvdXBfaW5pdChcdTAwMjZudWxsYl9zdWJzeXMuc3VfZ3JvdXApO1xuIFx0bXV0ZXhfaW5pdChcdTAwMjZudWxsYl9zdWJzeXMuc3VfbXV0ZXgpO1xuIFxuLVx0cmV0ID0gY29uZmlnZnNfcmVnaXN0ZXJfc3Vic3lzdGVtKFx1MDAyNm51bGxiX3N1YnN5cyk7XG4tXHRpZiAocmV0KVxuLVx0XHRyZXR1cm4gcmV0O1xuLVxuLVx0bXV0ZXhfaW5pdChcdTAwMjZsb2NrKTtcbi1cbiBcdG51bGxfbWFqb3IgPSByZWdpc3Rlcl9ibGtkZXYoMCwgXCJudWxsYlwiKTtcbi1cdGlmIChudWxsX21ham9yIFx1MDAzYyAwKSB7XG4tXHRcdHJldCA9IG51bGxfbWFqb3I7XG4tXHRcdGdvdG8gZXJyX2NvbmY7XG4tXHR9XG4rXHRpZiAobnVsbF9tYWpvciBcdTAwM2MgMClcbitcdFx0cmV0dXJuIG51bGxfbWFqb3I7XG4gXG4gXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBucl9kZXZpY2VzOyBpKyspIHtcbiBcdFx0cmV0ID0gbnVsbF9jcmVhdGVfZGV2KCk7XG5AQCAtMjE4MCw2ICsyMTcyLDEwIEBAIHN0YXRpYyBpbnQgX19pbml0IG51bGxfaW5pdCh2b2lkKVxuIFx0XHRcdGdvdG8gZXJyX2RldjtcbiBcdH1cbiBcbitcdHJldCA9IGNvbmZpZ2ZzX3JlZ2lzdGVyX3N1YnN5c3RlbShcdTAwMjZudWxsYl9zdWJzeXMpO1xuK1x0aWYgKHJldClcbitcdFx0Z290byBlcnJfZGV2O1xuK1xuIFx0cHJfaW5mbyhcIm1vZHVsZSBsb2FkZWRcXG5cIik7XG4gXHRyZXR1cm4gMDtcbiBcbkBAIC0yMTg5LDggKzIxODUsNiBAQCBzdGF0aWMgaW50IF9faW5pdCBudWxsX2luaXQodm9pZClcbiBcdFx0bnVsbF9kZXN0cm95X2RldihudWxsYik7XG4gXHR9XG4gXHR1bnJlZ2lzdGVyX2Jsa2RldihudWxsX21ham9yLCBcIm51bGxiXCIpO1xuLWVycl9jb25mOlxuLVx0Y29uZmlnZnNfdW5yZWdpc3Rlcl9zdWJzeXN0ZW0oXHUwMDI2bnVsbGJfc3Vic3lzKTtcbiBcdHJldHVybiByZXQ7XG4gfVxuIFxuQEAgLTIyMDIsMTcgKzIxOTYsMTcgQEAgc3RhdGljIHZvaWQgX19leGl0IG51bGxfZXhpdCh2b2lkKVxuIFxuIFx0dW5yZWdpc3Rlcl9ibGtkZXYobnVsbF9tYWpvciwgXCJudWxsYlwiKTtcbiBcbi1cdG11dGV4X2xvY2soXHUwMDI2bG9jayk7XG4rXHRtdXRleF9sb2NrKFx1MDAyNm51bGxiX2xpc3RfbG9jayk7XG4gXHR3aGlsZSAoIWxpc3RfZW1wdHkoXHUwMDI2bnVsbGJfbGlzdCkpIHtcbiBcdFx0bnVsbGIgPSBsaXN0X2VudHJ5KG51bGxiX2xpc3QubmV4dCwgc3RydWN0IG51bGxiLCBsaXN0KTtcbiBcdFx0bnVsbF9kZXN0cm95X2RldihudWxsYik7XG4gXHR9XG4tXHRtdXRleF91bmxvY2soXHUwMDI2bG9jayk7XG4rXHRtdXRleF91bmxvY2soXHUwMDI2bnVsbGJfbGlzdF9sb2NrKTtcbiBcbiBcdGlmICh0YWdfc2V0Lm9wcylcbiBcdFx0YmxrX21xX2ZyZWVfdGFnX3NldChcdTAwMjZ0YWdfc2V0KTtcbiBcbi1cdG11dGV4X2Rlc3Ryb3koXHUwMDI2bG9jayk7XG4rXHRtdXRleF9kZXN0cm95KFx1MDAyNm51bGxiX2xpc3RfbG9jayk7XG4gfVxuIFxuIG1vZHVsZV9pbml0KG51bGxfaW5pdCk7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxODo1NTo1NC44OTQ0MjQ5ODRaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0ODIwMjQwOTYyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgTnVsbCBCbG9jayBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGFpbWVkIHNxdWFyZWx5IGF0IHRoZSBgZHJpdmVycy9ibG9jay9udWxsX2Jsay9tYWluLmNgIGZpbGUg4oCTIHRoYXQncyB3aGVyZSB0aGUgY29yZSBvZiB0aGUgbnVsbCBibG9jayBkcml2ZXIgbGl2ZXMuIEltbWVkaWF0ZWx5LCBJIHNlZSBhIHN0cmFpZ2h0Zm9yd2FyZCBtdXRleCByZW5hbWUuIFRoZXkncmUgY2hhbmdpbmcgYGxvY2tgIHRvIGBudWxsYl9saXN0X2xvY2tgIGFuZCwgaW1wb3J0YW50bHksIHN3aXRjaGluZyB0aGUgZGVjbGFyYXRpb24gZnJvbSBgc3RhdGljIHN0cnVjdCBtdXRleCBsb2NrO2AgdG8gYHN0YXRpYyBERUZJTkVfTVVURVgobnVsbGJfbGlzdF9sb2NrKTtgLiBUaGF0J3MgYSBjb21tb24gYW5kIGdvb2QgcHJhY3RpY2U7IGBERUZJTkVfTVVURVhgIGlzIGNsZWFuZXIgYW5kIGdlbmVyYWxseSBwcmVmZXJyZWQgZm9yIHN0YXRpY2FsbHkgZGVmaW5lZCBtdXRleGVzIGFzIGl0IGhhbmRsZXMgaW5pdGlhbGl6YXRpb24gbW9yZSByZWxpYWJseSwgZXNwZWNpYWxseSBpbiB0aGUga2VybmVsJ3MgaW5pdGlhbGl6YXRpb24gY29udGV4dC4gTm8gYmlnIHN1cnByaXNlcyB0aGVyZSwganVzdCB0aWR5aW5nIHVwLlxuXG5UaGUgbW9yZSBpbnRlcmVzdGluZyBwYXJ0IGlzIHRoZSBpbml0aWFsaXphdGlvbiBvcmRlciBjaGFuZ2UuIFRoZXkncmUgYWx0ZXJpbmcgdGhlIHNlcXVlbmNlIHdpdGhpbiB0aGUgYG51bGxfaW5pdGAgZnVuY3Rpb24uIFByZXZpb3VzbHksIHRoZSBgY29uZmlnZnNfcmVnaXN0ZXJfc3Vic3lzdGVtYCBjYWxsIGNhbWUgKmJlZm9yZSogYHJlZ2lzdGVyX2Jsa2RldmAgYW5kIGBudWxsX2NyZWF0ZV9kZXZgLiBOb3csIHRob3NlIGxhdHRlciB0d28gY2FsbHMgYXJlIGhhcHBlbmluZyBmaXJzdCwgKnRoZW4qIGBjb25maWdmc19yZWdpc3Rlcl9zdWJzeXN0ZW1gIGlzIGludm9rZWQuIFRoYXQncyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBub3QganVzdCBhIGNvc21ldGljIG9uZSwgYW5kIHRoYXQncyBzb21ldGhpbmcgdGhhdCBhbHdheXMgd2FycmFudHMgYSBkZWVwZXIgbG9vay4gVGhlIG9yZGVyIG9mIGluaXRpYWxpemF0aW9uIGNhbiBiZSBjcnVjaWFsLCBlc3BlY2lhbGx5IHdoZW4gZGlmZmVyZW50IHN1YnN5c3RlbXMgZGVwZW5kIG9uIGVhY2ggb3RoZXIuXG5cbk15IG5leHQgc3RlcCB3b3VsZCBiZSB0byBpbW1lZGlhdGVseSBjaGVjayB0aGUgbnVsbF9ibGsncyBhc3NvY2lhdGVkIEtjb25maWcgb3B0aW9ucy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYWZmZWN0IHRoZSBkcml2ZXIncyBiZWhhdmlvciBhbmQgZGVwZW5kZW5jaWVzLiBIYXMgc29tZXRoaW5nIGNoYW5nZWQgaW4gaG93IHRoZSBjb25maWd1cmF0aW9uIGludGVyYWN0cyB3aXRoIGBjb25maWdmc2Agb3IgdGhlIGJsb2NrIGRldmljZSByZWdpc3RyYXRpb24gbm93IHRoYXQgd2UndmUgc3dpdGNoZWQgdGhlIG9yZGVyPyBUaGlzIG1pZ2h0IGJlIHRoZSBjcnV4IG9mIHRoZSBpc3N1ZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2h5IHRoaXMgcmUtb3JkZXJpbmcgd2FzIGRlZW1lZCBuZWNlc3NhcnkgYW5kIHdoYXQgcG90ZW50aWFsIHNpZGUgZWZmZWN0cyBpdCBtaWdodCBoYXZlLiBVbmRlcnN0YW5kaW5nIHRoZSAqd2h5KiBpcyB0aGUgbW9zdCBjcml0aWNhbCBhc3BlY3Qgb2Ygc3VjaCBhIGNoYW5nZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzQwNCwiT3V0cHV0VG9rZW5zIjoyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2MSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDE4OjU1OjU5LjcxNDY2Nzc1NVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTQyODk2OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJudWxsX2Jsa1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL2Jsb2NrL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9ibG9jay9LY29uZmlnPTE3PWlmIEJMS19ERVZcXG5kcml2ZXJzL2Jsb2NrL0tjb25maWctMTgtXFxuZHJpdmVycy9ibG9jay9LY29uZmlnOjE5OnNvdXJjZSBcXFwiZHJpdmVycy9ibG9jay9udWxsX2Jsay9LY29uZmlnXFxcIlxcbmRyaXZlcnMvYmxvY2svS2NvbmZpZy0yMC1zb3VyY2UgXFxcImRyaXZlcnMvYmxvY2svcm51bGwvS2NvbmZpZ1xcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDZUMTg6NTU6NTkuNzc0MTAyNTc0WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mjc3ODc3MzM0NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgZmlyc3QtcGVyc29uIHN1bW1hcnkgb2YgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipEaXZpbmcgaW50byB0aGUgTnVsbCBCbG9jayBEcml2ZXIgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5IHdpdGggdGhlIG51bGwgYmxvY2sgZHJpdmVyLiBXaGVyZSBkb2VzIHRoZSBjb25maWd1cmF0aW9uIGxpdmUgZm9yIHRoaXMgdGhpbmc/IEFoLCByaWdodCwgaXQncyBwcmV0dHkgc3RhbmRhcmQgcHJhY3RpY2U6IGBkcml2ZXJzL2Jsb2NrL251bGxfYmxrL0tjb25maWdgLiBMZXQncyBjb25maXJtIHRoYXQncyB3aGVyZSB0aGUgcmVsZXZhbnQgb3B0aW9ucyBhcmUgZGVmaW5lZC4gSSBleHBlY3QgdG8gc2VlIHRoZSB1c3VhbCBzdXNwZWN0cyDigJMgZW5hYmxpbmcvZGlzYWJsaW5nIHRoZSBkcml2ZXIsIG1heWJlIHNvbWUgb3B0aW9ucyBmb3IgYmxvY2sgc2l6ZSwgbnVtYmVyIG9mIGRldmljZXMsIGFuZCBvdGhlciBwYXJhbWV0ZXJzLiBJJ2xsIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIGJ1aWxkIHN5c3RlbSBoYW5kbGVzIHRoZSBgS2NvbmZpZ2AgZmlsZSBhbmQgd2hhdCBkZXBlbmRlbmNpZXMgbWlnaHQgYmUgaW4gcGxheSB0byBnZXQgYSBwcm9wZXIgaGFuZGxlIG9uIHRoaXMgbW9kdWxlLiBVbmRlcnN0YW5kaW5nIHRoZSBidWlsZCBjb25maWd1cmF0aW9uIGlzIGtleSB0byB0aGUgb3ZlcmFsbCBkZXNpZ24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQwNjgsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxODo1NjowMi41NTI4Nzc3MjlaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjAwMDk3NDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL2Jsb2NrL251bGxfYmxrL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9ibG9jay9udWxsX2Jsay9LY29uZmlnLTUtXFxuZHJpdmVycy9ibG9jay9udWxsX2Jsay9LY29uZmlnOjY6Y29uZmlnIEJMS19ERVZfTlVMTF9CTEtcXG5kcml2ZXJzL2Jsb2NrL251bGxfYmxrL0tjb25maWctNy1cXHR0cmlzdGF0ZSBcXFwiTnVsbCB0ZXN0IGJsb2NrIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvYmxvY2svbnVsbF9ibGsvS2NvbmZpZy05LVxcbmRyaXZlcnMvYmxvY2svbnVsbF9ibGsvS2NvbmZpZzoxMDpjb25maWcgQkxLX0RFVl9OVUxMX0JMS19GQVVMVF9JTkpFQ1RJT05cXG5kcml2ZXJzL2Jsb2NrL251bGxfYmxrL0tjb25maWctMTEtXFx0Ym9vbCBcXFwiU3VwcG9ydCBmYXVsdCBpbmplY3Rpb24gZm9yIE51bGwgdGVzdCBibG9jayBkcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDE4OjU2OjAyLjYxMjg5MzYzOFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwMTE3NjkwNjAyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgTnVsbCBCbG9jayBEZXZpY2UgSW5pdGlhbGl6YXRpb24gUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgQkxLX0RFVl9OVUxMX0JMS2AuIEl0IHNlZW1zIGxpa2UgdGhlIGNvcmUgY2hhbmdlIGlzIHdpdGhpbiBgbnVsbF9pbml0YCwgdGhlIG1vZHVsZSdzIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uLiBUaGUgc3RhdGVkIGdvYWwgaXMgdG8gcmVzb2x2ZSBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbiBvciBpbml0aWFsaXphdGlvbiBvcmRlciBwcm9ibGVtLiBTcGVjaWZpY2FsbHksIGl0IGFwcGVhcnMgY29uZmlnZnMgbWlnaHQgaGF2ZSBiZWVuIGFjY2Vzc2libGUgYmVmb3JlIHRoZSBibG9jayBkZXZpY2Ugd2FzIGZ1bGx5IHJlZ2lzdGVyZWQsIG9yIGRldmljZXMgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseSBjcmVhdGVkLlxuXG5UaGUgaW5pdGlhbCB0aG91Z2h0IGlzLCBcIklzIHRoaXMgZnV6emFibGU/XCIgSXQncyBhbiBpbml0aWFsaXphdGlvbiBvcmRlciBjaGFuZ2Ugd2l0aGluIGEgbW9kdWxlJ3MgaW5pdCBmdW5jdGlvbi4gRnV6emluZyBtb2R1bGUgbG9hZGluZyBhbmQgdW5sb2FkaW5nICpjb3VsZCogcG90ZW50aWFsbHkgaGl0IHRoaXMsIGJ1dCBpdCdzIGZ1bmRhbWVudGFsbHkgYSBvbmUtdGltZSBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZS4gT24gdGhlIG90aGVyIGhhbmQsIHRoZSBjaGFuZ2UgaXMgZnVuY3Rpb25hbC4gU3l6a2FsbGVyLCBpbiBwYXJ0aWN1bGFyLCBkb2VzIGZ1enogbW9kdWxlIGxvYWRpbmcsIGFuZCBjb25maWdmcyBpbnRlcmFjdGlvbnMuIFN5emthbGxlciBzcGVjaWZpY2FsbHkgZnV6emVkIGNvbmZpZ2ZzIGludGVyYWN0aW9ucyB3aXRoIG51bGxfYmxrLlxuXG5UaGUgcGF0Y2ggc2VlbXMgdG8gcmVvcmRlciBpbml0aWFsaXphdGlvbi4gSXQgKmFsc28qIHJlbmFtZXMgYGxvY2tgIHRvIGBudWxsYl9saXN0X2xvY2tgLCB3aGljaCBpcyBtYWlubHkgYSBjb3NtZXRpYyBjaGFuZ2UuIExvb2tpbmcgYXQgdGhlIGRpZmYgYWdhaW4sIGl0J3MgY2xlYXIgdGhlIGluaXRpYWxpemF0aW9uIG9yZGVyIGlzIHRoZSBjb3JlIGZ1bmN0aW9uYWwgY2hhbmdlLiBOb3csIHRoaXMgaXMgZGVmaW5pdGVseSB3b3J0aCBmdXp6aW5nLiBJIGNhbiB0YXJnZXQgaXQgYnkgZm9jdXNpbmcgb24gdGhlIGBudWxsX2luaXRgIGZ1bmN0aW9uLlxuXG5JIHNlZSBub3cgdGhhdCB0aGUgcGF0Y2ggY2hhbmdlcyB0aGUgaW5pdGlhbGl6YXRpb24gbG9naWMuIFRoZSBwYXRjaCBub3cgcmVnaXN0ZXJzIGNvbmZpZ2ZzICphZnRlciogYmxvY2sgZGV2aWNlcyBoYXZlIGJlZW4gY3JlYXRlZC4gVGhpcyByZXNvbHZlcyBhIHJhY2Ugd2hlcmUgdXNlcnNwYWNlIGNvdWxkIGludGVyYWN0IHdpdGggY29uZmlnZnMgYmVmb3JlIHRoZSBkcml2ZXIgd2FzIGZ1bGx5IGluaXRpYWxpemVkLlxuXG5Ob3cgdGhlIHBhdGNoIGNsZWFucyB1cCBhIG11dGV4IGJ5IHVzaW5nIGBERUZJTkVfTVVURVhgIGluc3RlYWQgb2YgYG11dGV4X2luaXRgLiBTdGlsbCwgdGhlIGtleSB0YWtlYXdheSBpcyB0aGUgaW5pdCBvcmRlciBjaGFuZ2UsIHdoaWNoICppcyogZnVuY3Rpb25hbC4gSXQncyBhbiBpbXBvcnRhbnQgZml4LlxuXG5UaGVyZWZvcmUsIG15IGNvbmNsdXNpb24gaXMgY2xlYXI6XG4qICAgYFdvcnRoRnV6emluZz10cnVlYFxuKiAgIGBGb2N1c1N5bWJvbHM9W1wibnVsbF9pbml0XCJdYFxuKiAgIGBFbmFibGVDb25maWdzPVtcIkJMS19ERVZfTlVMTF9CTEtcIl1gLlxuXG5UaGUgcmVhc29uaW5nIGlzIHN0cmFpZ2h0Zm9yd2FyZDogVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSBvZiB0aGUgYG51bGxfYmxrYCBkcml2ZXIuIFRoaXMgaW52b2x2ZXMgcmVnaXN0ZXJpbmcgY29uZmlnZnMgYWZ0ZXIgZGV2aWNlcyBoYXZlIGJlZW4gY3JlYXRlZC4gVGhpcyBmaXhlcyBhIHJhY2UgY29uZGl0aW9uIHRoYXQgY291bGQgb2NjdXIgZHVyaW5nIG1vZHVsZSBsb2FkaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NDI3LCJPdXRwdXRUb2tlbnMiOjExMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjg2NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxODo1NjoxMi43MzA1ODYxMloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODY4OTAyOTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJMS19ERVZfTlVMTF9CTEtcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJudWxsX2luaXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBjaGFuZ2VzIHRoZSBpbml0aWFsaXphdGlvbiBvcmRlciBvZiB0aGUgbnVsbF9ibGsgZHJpdmVyIHRvIHJlZ2lzdGVyIGNvbmZpZ2ZzIGFmdGVyIGRldmljZXMgYXJlIGNyZWF0ZWQsIGZpeGluZyBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbiBkdXJpbmcgbW9kdWxlIGxvYWQuIEl0IGFsc28gcmVuYW1lcyBhIG11dGV4IGFuZCBjaGFuZ2VzIGl0cyBpbml0aWFsaXphdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXIncyBpbml0aWFsaXphdGlvbiBsb2dpYyB0aGF0IGNhbiBiZSByZWFjaGVkIGR1cmluZyBtb2R1bGUgbG9hZGluZyBhbmQgY29uZmlnZnMgaW50ZXJhY3Rpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJMS19ERVZfTlVMTF9CTEtcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJudWxsX2luaXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBjaGFuZ2VzIHRoZSBpbml0aWFsaXphdGlvbiBvcmRlciBvZiB0aGUgbnVsbF9ibGsgZHJpdmVyIHRvIHJlZ2lzdGVyIGNvbmZpZ2ZzIGFmdGVyIGRldmljZXMgYXJlIGNyZWF0ZWQsIGZpeGluZyBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbiBkdXJpbmcgbW9kdWxlIGxvYWQuIEl0IGFsc28gcmVuYW1lcyBhIG11dGV4IGFuZCBjaGFuZ2VzIGl0cyBpbml0aWFsaXphdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXIncyBpbml0aWFsaXphdGlvbiBsb2dpYyB0aGF0IGNhbiBiZSByZWFjaGVkIGR1cmluZyBtb2R1bGUgbG9hZGluZyBhbmQgY29uZmlnZnMgaW50ZXJhY3Rpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflowr6zd2[1] Phase: Succeeded StartedAt: 2026-07-06 18:56:25 +0000 UTC FinishedAt: 2026-07-06 18:56:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr6zd2[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-06 18:56:25 +0000 UTC FinishedAt: 2026-07-06 18:56:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr6zd2[2] Phase: Succeeded StartedAt: 2026-07-06 18:56:25 +0000 UTC FinishedAt: 2026-07-06 23:33:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr6zd2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-06 18:56:25 +0000 UTC FinishedAt: 2026-07-06 23:33:17 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowr6zd2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-06 18:56:25 +0000 UTC FinishedAt: 2026-07-06 18:56:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr6zd2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-06 18:56:25 +0000 UTC FinishedAt: 2026-07-06 18:56:31 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowr6zd2/series-workflowr6zd2-convert-artifact-3431643948/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowr6zd2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-06 18:56:35 +0000 UTC FinishedAt: 2026-07-06 19:35:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr6zd2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-06 18:56:35 +0000 UTC FinishedAt: 2026-07-06 19:35:59 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*313dadb6-708f-42fa-a3d0-6f4185045d43,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowr6zd2/series-workflowr6zd2-convert-artifact-3431643948/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "e617b40b-b266-4a16-941f-0afa688eaf79", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowr6zd2/series-workflowr6zd2-build-action-2521678170/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowr6zd2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-06 18:56:35 +0000 UTC FinishedAt: 2026-07-06 19:35:49 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*313dadb6-708f-42fa-a3d0-6f4185045d43,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowr6zd2/series-workflowr6zd2-convert-artifact-3431643948/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "e617b40b-b266-4a16-941f-0afa688eaf79", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowr6zd2/series-workflowr6zd2-build-action-2521678170/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowr6zd2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-06 19:35:59 +0000 UTC FinishedAt: 2026-07-06 19:35:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr6zd2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-06 19:35:59 +0000 UTC FinishedAt: 2026-07-06 19:35:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr6zd2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-06 19:35:59 +0000 UTC FinishedAt: 2026-07-06 19:36:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr6zd2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-06 19:35:59 +0000 UTC FinishedAt: 2026-07-06 19:36:07 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowr6zd2/series-workflowr6zd2-convert-artifact-3726304747/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowr6zd2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-06 19:36:09 +0000 UTC FinishedAt: 2026-07-06 19:38:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr6zd2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-06 19:36:09 +0000 UTC FinishedAt: 2026-07-06 19:38:17 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*e617b40b-b266-4a16-941f-0afa688eaf79,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowr6zd2/series-workflowr6zd2-build-action-2521678170/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": true },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-workflowr6zd2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-06 19:38:20 +0000 UTC FinishedAt: 2026-07-06 19:38:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr6zd2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-06 19:38:20 +0000 UTC FinishedAt: 2026-07-06 19:38:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr6zd2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-06 19:38:20 +0000 UTC FinishedAt: 2026-07-06 20:25:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr6zd2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-06 19:38:20 +0000 UTC FinishedAt: 2026-07-06 20:25:49 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*313dadb6-708f-42fa-a3d0-6f4185045d43,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowr6zd2/series-workflowr6zd2-convert-artifact-3726304747/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "eec21a79-b1cf-4293-aff0-d3e566aff90a", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowr6zd2/series-workflowr6zd2-build-action-1011884815/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowr6zd2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-06 19:38:20 +0000 UTC FinishedAt: 2026-07-06 20:25:39 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*313dadb6-708f-42fa-a3d0-6f4185045d43,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowr6zd2/series-workflowr6zd2-convert-artifact-3726304747/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "eec21a79-b1cf-4293-aff0-d3e566aff90a", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowr6zd2/series-workflowr6zd2-build-action-1011884815/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowr6zd2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-06 20:25:49 +0000 UTC FinishedAt: 2026-07-06 20:25:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr6zd2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-06 20:25:49 +0000 UTC FinishedAt: 2026-07-06 20:25:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr6zd2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-06 20:25:49 +0000 UTC FinishedAt: 2026-07-06 20:27:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr6zd2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-06 20:25:49 +0000 UTC FinishedAt: 2026-07-06 20:27:47 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*eec21a79-b1cf-4293-aff0-d3e566aff90a,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowr6zd2/series-workflowr6zd2-build-action-1011884815/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": true },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-workflowr6zd2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-06 20:27:57 +0000 UTC FinishedAt: 2026-07-06 23:33:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr6zd2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-06 20:27:57 +0000 UTC FinishedAt: 2026-07-06 23:33:17 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:track,Default:nil,Value:*KASAN,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:base-build-id,Default:nil,Value:*e617b40b-b266-4a16-941f-0afa688eaf79,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*eec21a79-b1cf-4293-aff0-d3e566aff90a,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowr6zd2/series-workflowr6zd2-build-action-2521678170/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowr6zd2/series-workflowr6zd2-build-action-1011884815/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowr6zd2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-06 20:27:57 +0000 UTC FinishedAt: 2026-07-06 20:28:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr6zd2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-06 20:27:57 +0000 UTC FinishedAt: 2026-07-06 20:28:04 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowr6zd2/series-workflowr6zd2-convert-artifact-3115590148/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowr6zd2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-06 20:27:57 +0000 UTC FinishedAt: 2026-07-06 20:27:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr6zd2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-06 20:27:57 +0000 UTC FinishedAt: 2026-07-06 20:27:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr6zd2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-06 20:27:57 +0000 UTC FinishedAt: 2026-07-06 20:27:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr6zd2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-06 20:28:07 +0000 UTC FinishedAt: 2026-07-06 23:33:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr6zd2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["null_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_NULL_BLK"],"series_id":"37db45f9-c05f-4dc1-8337-c274ebd9f162","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-06 20:28:07 +0000 UTC FinishedAt: 2026-07-06 23:33:07 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*e617b40b-b266-4a16-941f-0afa688eaf79,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*eec21a79-b1cf-4293-aff0-d3e566aff90a,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Fuzz,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowr6zd2/series-workflowr6zd2-build-action-2521678170/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:/patched,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowr6zd2/series-workflowr6zd2-build-action-1011884815/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:config,Path:/tmp/config.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowr6zd2/series-workflowr6zd2-convert-artifact-3115590148/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,}