Name: series-workflowtq97c Phase: Succeeded StartedAt: 2026-07-21 23:53:54 +0000 UTC FinishedAt: 2026-07-22 05:22:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtq97c[0] Phase: Succeeded StartedAt: 2026-07-21 23:53:54 +0000 UTC FinishedAt: 2026-07-22 00:27:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtq97c[0].run-triage Phase: Succeeded StartedAt: 2026-07-21 23:53:54 +0000 UTC FinishedAt: 2026-07-22 00:27:54 +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": "b95f03f04d475aa6719d15a636ddf32222d55657", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IO_URING" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "b95f03f04d475aa6719d15a636ddf32222d55657", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IO_URING" ], "series_id": "bef25c39-3454-4b52-b0c7-a321748bddff" }, "track": "KASAN", "fuzz": { "focus": [ "fs", "io_uring" ], "focus_symbols": [ "io_fremovexattr_prep", "io_fremovexattr", "io_flistxattr_prep", "io_flistxattr", "file_listxattr", "file_removexattr" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db", "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+CgkJCTx0ZD4yMDI2LzA3LzIyIDAwOjI3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lPX1VSSU5HJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aW9fZnJlbW92ZXhhdHRyX3ByZXAmIzM0OywKICAgICYjMzQ7aW9fZnJlbW92ZXhhdHRyJiMzNDssCiAgICAmIzM0O2lvX2ZsaXN0eGF0dHJfcHJlcCYjMzQ7LAogICAgJiMzNDtpb19mbGlzdHhhdHRyJiMzNDssCiAgICAmIzM0O2ZpbGVfbGlzdHhhdHRyJiMzNDssCiAgICAmIzM0O2ZpbGVfcmVtb3ZleGF0dHImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBuZXcgaW9fdXJpbmcgb3Bjb2RlcyBmb3IgZnJlbW92ZXhhdHRyIGFuZCBmbGlzdHhhdHRyLCB3aGljaCBhcmUgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBpb191cmluZ19lbnRlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwMDoyNzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDc3Mzc0OGNiODIxNzExNjUwMjc3NTYyMWYzMWNjYTgyMDk0OTI1M2JcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAyMiAwMDoyNzoyNiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9mcy9pbnRlcm5hbC5oIGIvZnMvaW50ZXJuYWwuaFxuaW5kZXggMzU1ZDkzZjkyMjA4NjEuLmVlODZiMjRkYjc5YWQyIDEwMDY0NFxuLS0tIGEvZnMvaW50ZXJuYWwuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZnMvaW50ZXJuYWwuaFxuQEAgLTI5Nyw2ICYjNDM7Mjk3LDggQEAgaW50IGZpbGVuYW1lX3NldHhhdHRyKGludCBkZmQsIHN0cnVjdCBmaWxlbmFtZSAqZmlsZW5hbWUsXG4gXHRcdCAgICAgIHVuc2lnbmVkIGludCBsb29rdXBfZmxhZ3MsIHN0cnVjdCBrZXJuZWxfeGF0dHJfY3R4ICpjdHgpO1xuIGludCBzZXR4YXR0cl9jb3B5KGNvbnN0IGNoYXIgX191c2VyICpuYW1lLCBzdHJ1Y3Qga2VybmVsX3hhdHRyX2N0eCAqY3R4KTtcbiBpbnQgaW1wb3J0X3hhdHRyX25hbWUoc3RydWN0IHhhdHRyX25hbWUgKmtuYW1lLCBjb25zdCBjaGFyIF9fdXNlciAqbmFtZSk7XG4mIzQzO3NzaXplX3QgZmlsZV9saXN0eGF0dHIoc3RydWN0IGZpbGUgKmYsIGNoYXIgX191c2VyICpsaXN0LCBzaXplX3Qgc2l6ZSk7XG4mIzQzO2ludCBmaWxlX3JlbW92ZXhhdHRyKHN0cnVjdCBmaWxlICpmLCBzdHJ1Y3QgeGF0dHJfbmFtZSAqa25hbWUpO1xuIFxuIGludCBtYXlfd3JpdGVfeGF0dHIoc3RydWN0IG1udF9pZG1hcCAqaWRtYXAsIHN0cnVjdCBpbm9kZSAqaW5vZGUpO1xuIFxuZGlmZiAtLWdpdCBhL2ZzL3hhdHRyLmMgYi9mcy94YXR0ci5jXG5pbmRleCBkNTg5NzkxMTUyMDA3NS4uYTNhNzI0MTg0NmMzMTMgMTAwNjQ0XG4tLS0gYS9mcy94YXR0ci5jXG4mIzQzOyYjNDM7JiM0MzsgYi9mcy94YXR0ci5jXG5AQCAtOTUzLDE3ICYjNDM7OTUzLDE1IEBAIGxpc3R4YXR0cihzdHJ1Y3QgZGVudHJ5ICpkLCBjaGFyIF9fdXNlciAqbGlzdCwgc2l6ZV90IHNpemUpXG4gXHRyZXR1cm4gZXJyb3I7XG4gfVxuIFxuLXN0YXRpY1xuIHNzaXplX3QgZmlsZV9saXN0eGF0dHIoc3RydWN0IGZpbGUgKmYsIGNoYXIgX191c2VyICpsaXN0LCBzaXplX3Qgc2l6ZSlcbiB7XG4gXHRhdWRpdF9maWxlKGYpO1xuIFx0cmV0dXJuIGxpc3R4YXR0cihmLVx1MDAzZWZfcGF0aC5kZW50cnksIGxpc3QsIHNpemUpO1xuIH1cbiBcbi1zdGF0aWNcbi1zc2l6ZV90IGZpbGVuYW1lX2xpc3R4YXR0cihpbnQgZGZkLCBzdHJ1Y3QgZmlsZW5hbWUgKmZpbGVuYW1lLFxuLVx0XHRcdCAgIHVuc2lnbmVkIGludCBsb29rdXBfZmxhZ3MsXG4tXHRcdFx0ICAgY2hhciBfX3VzZXIgKmxpc3QsIHNpemVfdCBzaXplKVxuJiM0MztzdGF0aWMgc3NpemVfdCBmaWxlbmFtZV9saXN0eGF0dHIoaW50IGRmZCwgc3RydWN0IGZpbGVuYW1lICpmaWxlbmFtZSxcbiYjNDM7XHRcdFx0XHQgIHVuc2lnbmVkIGludCBsb29rdXBfZmxhZ3MsXG4mIzQzO1x0XHRcdFx0ICBjaGFyIF9fdXNlciAqbGlzdCwgc2l6ZV90IHNpemUpXG4ge1xuIFx0c3RydWN0IHBhdGggcGF0aDtcbiBcdHNzaXplX3QgZXJyb3I7XG5AQCAtMTAzNiw3ICYjNDM7MTAzNCw3IEBAIHJlbW92ZXhhdHRyKHN0cnVjdCBtbnRfaWRtYXAgKmlkbWFwLCBzdHJ1Y3QgZGVudHJ5ICpkLCBjb25zdCBjaGFyICpuYW1lKVxuIFx0cmV0dXJuIHZmc19yZW1vdmV4YXR0cihpZG1hcCwgZCwgbmFtZSk7XG4gfVxuIFxuLXN0YXRpYyBpbnQgZmlsZV9yZW1vdmV4YXR0cihzdHJ1Y3QgZmlsZSAqZiwgc3RydWN0IHhhdHRyX25hbWUgKmtuYW1lKVxuJiM0MztpbnQgZmlsZV9yZW1vdmV4YXR0cihzdHJ1Y3QgZmlsZSAqZiwgc3RydWN0IHhhdHRyX25hbWUgKmtuYW1lKVxuIHtcbiBcdGludCBlcnJvciA9IG1udF93YW50X3dyaXRlX2ZpbGUoZik7XG4gXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2lvX3VyaW5nLmggYi9pbmNsdWRlL3VhcGkvbGludXgvaW9fdXJpbmcuaFxuaW5kZXggOTA5ZmI3YWVhNjM4ZWIuLjgwNWYxZTMxZjQ5MjUxIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2lvX3VyaW5nLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oXG5AQCAtMzE4LDYgJiM0MzszMTgsOCBAQCBlbnVtIGlvX3VyaW5nX29wIHtcbiBcdElPUklOR19PUF9QSVBFLFxuIFx0SU9SSU5HX09QX05PUDEyOCxcbiBcdElPUklOR19PUF9VUklOR19DTUQxMjgsXG4mIzQzO1x0SU9SSU5HX09QX0ZSRU1PVkVYQVRUUixcbiYjNDM7XHRJT1JJTkdfT1BfRkxJU1RYQVRUUixcbiBcbiBcdC8qIHRoaXMgZ29lcyBsYXN0LCBvYnZpb3VzbHkgKi9cbiBcdElPUklOR19PUF9MQVNULFxuZGlmZiAtLWdpdCBhL2lvX3VyaW5nL29wZGVmLmMgYi9pb191cmluZy9vcGRlZi5jXG5pbmRleCA0ZTU4ZWIxMzQ0ZWFhMy4uMjVkOTIyOWQ4ZmMwMDIgMTAwNjQ0XG4tLS0gYS9pb191cmluZy9vcGRlZi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9pb191cmluZy9vcGRlZi5jXG5AQCAtNTkxLDYgJiM0Mzs1OTEsMTYgQEAgY29uc3Qgc3RydWN0IGlvX2lzc3VlX2RlZiBpb19pc3N1ZV9kZWZzW10gPSB7XG4gXHRcdC5wcmVwXHRcdFx0PSBpb191cmluZ19jbWRfcHJlcCxcbiBcdFx0Lmlzc3VlXHRcdFx0PSBpb191cmluZ19jbWQsXG4gXHR9LFxuJiM0MztcdFtJT1JJTkdfT1BfRlJFTU9WRVhBVFRSXSA9IHtcbiYjNDM7XHRcdC5uZWVkc19maWxlXHRcdD0gMSxcbiYjNDM7XHRcdC5wcmVwXHRcdFx0PSBpb19mcmVtb3ZleGF0dHJfcHJlcCxcbiYjNDM7XHRcdC5pc3N1ZVx0XHRcdD0gaW9fZnJlbW92ZXhhdHRyLFxuJiM0MztcdH0sXG4mIzQzO1x0W0lPUklOR19PUF9GTElTVFhBVFRSXSA9IHtcbiYjNDM7XHRcdC5uZWVkc19maWxlXHRcdD0gMSxcbiYjNDM7XHRcdC5wcmVwXHRcdFx0PSBpb19mbGlzdHhhdHRyX3ByZXAsXG4mIzQzO1x0XHQuaXNzdWVcdFx0XHQ9IGlvX2ZsaXN0eGF0dHIsXG4mIzQzO1x0fSxcbiB9O1xuIFxuIGNvbnN0IHN0cnVjdCBpb19jb2xkX2RlZiBpb19jb2xkX2RlZnNbXSA9IHtcbkBAIC04NDksNiAmIzQzOzg1OSwxNCBAQCBjb25zdCBzdHJ1Y3QgaW9fY29sZF9kZWYgaW9fY29sZF9kZWZzW10gPSB7XG4gXHRcdC5zcWVfY29weVx0XHQ9IGlvX3VyaW5nX2NtZF9zcWVfY29weSxcbiBcdFx0LmNsZWFudXBcdFx0PSBpb191cmluZ19jbWRfY2xlYW51cCxcbiBcdH0sXG4mIzQzO1x0W0lPUklOR19PUF9GUkVNT1ZFWEFUVFJdID0ge1xuJiM0MztcdFx0Lm5hbWVcdFx0XHQ9IFwmIzM0O0ZSRU1PVkVYQVRUUlwmIzM0OyxcbiYjNDM7XHRcdC5jbGVhbnVwXHRcdD0gaW9feGF0dHJfY2xlYW51cCxcbiYjNDM7XHR9LFxuJiM0MztcdFtJT1JJTkdfT1BfRkxJU1RYQVRUUl0gPSB7XG4mIzQzO1x0XHQubmFtZVx0XHRcdD0gXCYjMzQ7RkxJU1RYQVRUUlwmIzM0OyxcbiYjNDM7XHRcdC5jbGVhbnVwXHRcdD0gaW9feGF0dHJfY2xlYW51cCxcbiYjNDM7XHR9LFxuIH07XG4gXG4gY29uc3QgY2hhciAqaW9fdXJpbmdfZ2V0X29wY29kZSh1OCBvcGNvZGUpXG5kaWZmIC0tZ2l0IGEvaW9fdXJpbmcveGF0dHIuYyBiL2lvX3VyaW5nL3hhdHRyLmNcbmluZGV4IDUzMDNkZjNmMjQ3ZjRiLi45YjQxMGY5MWVmNDM3OCAxMDA2NDRcbi0tLSBhL2lvX3VyaW5nL3hhdHRyLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2lvX3VyaW5nL3hhdHRyLmNcbkBAIC0xOTUsMyAmIzQzOzE5NSw3NyBAQCBpbnQgaW9fc2V0eGF0dHIoc3RydWN0IGlvX2tpb2NiICpyZXEsIHVuc2lnbmVkIGludCBpc3N1ZV9mbGFncylcbiBcdGlvX3hhdHRyX2ZpbmlzaChyZXEsIHJldCk7XG4gXHRyZXR1cm4gSU9VX0NPTVBMRVRFO1xuIH1cbiYjNDM7XG4mIzQzO2ludCBpb19mcmVtb3ZleGF0dHJfcHJlcChzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgY29uc3Qgc3RydWN0IGlvX3VyaW5nX3NxZSAqc3FlKVxuJiM0Mzt7XG4mIzQzO1x0c3RydWN0IGlvX3hhdHRyICppeCA9IGlvX2tpb2NiX3RvX2NtZChyZXEsIHN0cnVjdCBpb194YXR0cik7XG4mIzQzO1x0Y29uc3QgY2hhciBfX3VzZXIgKm5hbWU7XG4mIzQzO1x0aW50IHJldDtcbiYjNDM7XG4mIzQzO1x0SU5JVF9ERUxBWUVEX0ZJTEVOQU1FKFx1MDAyNml4LVx1MDAzZWZpbGVuYW1lKTtcbiYjNDM7XHRuYW1lID0gdTY0X3RvX3VzZXJfcHRyKFJFQURfT05DRShzcWUtXHUwMDNlYWRkcikpO1xuJiM0MztcbiYjNDM7XHRpZiAoUkVBRF9PTkNFKHNxZS1cdTAwM2VhZGRyMikgfHwgUkVBRF9PTkNFKHNxZS1cdTAwM2VsZW4pIHx8IFJFQURfT05DRShzcWUtXHUwMDNleGF0dHJfZmxhZ3MpKVxuJiM0MztcdFx0cmV0dXJuIC1FSU5WQUw7XG4mIzQzO1xuJiM0MztcdGl4LVx1MDAzZWN0eC5rbmFtZSA9IGttYWxsb2Nfb2JqKCppeC1cdTAwM2VjdHgua25hbWUpO1xuJiM0MztcdGlmICghaXgtXHUwMDNlY3R4LmtuYW1lKVxuJiM0MztcdFx0cmV0dXJuIC1FTk9NRU07XG4mIzQzO1xuJiM0MztcdHJldCA9IGltcG9ydF94YXR0cl9uYW1lKGl4LVx1MDAzZWN0eC5rbmFtZSwgbmFtZSk7XG4mIzQzO1x0aWYgKHJldCkge1xuJiM0MztcdFx0a2ZyZWUoaXgtXHUwMDNlY3R4LmtuYW1lKTtcbiYjNDM7XHRcdHJldHVybiByZXQ7XG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHRyZXEtXHUwMDNlZmxhZ3MgfD0gUkVRX0ZfTkVFRF9DTEVBTlVQO1xuJiM0MztcdHJlcS1cdTAwM2VmbGFncyB8PSBSRVFfRl9GT1JDRV9BU1lOQztcbiYjNDM7XHRyZXR1cm4gMDtcbiYjNDM7fVxuJiM0MztcbiYjNDM7aW50IGlvX2ZyZW1vdmV4YXR0cihzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgdW5zaWduZWQgaW50IGlzc3VlX2ZsYWdzKVxuJiM0Mzt7XG4mIzQzO1x0c3RydWN0IGlvX3hhdHRyICppeCA9IGlvX2tpb2NiX3RvX2NtZChyZXEsIHN0cnVjdCBpb194YXR0cik7XG4mIzQzO1x0aW50IHJldDtcbiYjNDM7XG4mIzQzO1x0V0FSTl9PTl9PTkNFKGlzc3VlX2ZsYWdzIFx1MDAyNiBJT19VUklOR19GX05PTkJMT0NLKTtcbiYjNDM7XG4mIzQzO1x0cmV0ID0gZmlsZV9yZW1vdmV4YXR0cihyZXEtXHUwMDNlZmlsZSwgaXgtXHUwMDNlY3R4LmtuYW1lKTtcbiYjNDM7XHRpb194YXR0cl9maW5pc2gocmVxLCByZXQpO1xuJiM0MztcdHJldHVybiBJT1VfQ09NUExFVEU7XG4mIzQzO31cbiYjNDM7XG4mIzQzO2ludCBpb19mbGlzdHhhdHRyX3ByZXAoc3RydWN0IGlvX2tpb2NiICpyZXEsIGNvbnN0IHN0cnVjdCBpb191cmluZ19zcWUgKnNxZSlcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBpb194YXR0ciAqaXggPSBpb19raW9jYl90b19jbWQocmVxLCBzdHJ1Y3QgaW9feGF0dHIpO1xuJiM0MztcbiYjNDM7XHRJTklUX0RFTEFZRURfRklMRU5BTUUoXHUwMDI2aXgtXHUwMDNlZmlsZW5hbWUpO1xuJiM0MztcdGl4LVx1MDAzZWN0eC5rbmFtZSA9IE5VTEw7XG4mIzQzO1x0aXgtXHUwMDNlY3R4Lmt2YWx1ZSA9IE5VTEw7XG4mIzQzO1xuJiM0MztcdGlmIChSRUFEX09OQ0Uoc3FlLVx1MDAzZWFkZHIpKVxuJiM0MztcdFx0cmV0dXJuIC1FSU5WQUw7XG4mIzQzO1xuJiM0MztcdGl4LVx1MDAzZWN0eC52YWx1ZSA9IHU2NF90b191c2VyX3B0cihSRUFEX09OQ0Uoc3FlLVx1MDAzZWFkZHIyKSk7XG4mIzQzO1x0aXgtXHUwMDNlY3R4LnNpemUgPSBSRUFEX09OQ0Uoc3FlLVx1MDAzZWxlbik7XG4mIzQzO1x0aXgtXHUwMDNlY3R4LmZsYWdzID0gUkVBRF9PTkNFKHNxZS1cdTAwM2V4YXR0cl9mbGFncyk7XG4mIzQzO1xuJiM0MztcdGlmIChpeC1cdTAwM2VjdHguZmxhZ3MpXG4mIzQzO1x0XHRyZXR1cm4gLUVJTlZBTDtcbiYjNDM7XG4mIzQzO1x0cmVxLVx1MDAzZWZsYWdzIHw9IFJFUV9GX05FRURfQ0xFQU5VUDtcbiYjNDM7XHRyZXEtXHUwMDNlZmxhZ3MgfD0gUkVRX0ZfRk9SQ0VfQVNZTkM7XG4mIzQzO1x0cmV0dXJuIDA7XG4mIzQzO31cbiYjNDM7XG4mIzQzO2ludCBpb19mbGlzdHhhdHRyKHN0cnVjdCBpb19raW9jYiAqcmVxLCB1bnNpZ25lZCBpbnQgaXNzdWVfZmxhZ3MpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgaW9feGF0dHIgKml4ID0gaW9fa2lvY2JfdG9fY21kKHJlcSwgc3RydWN0IGlvX3hhdHRyKTtcbiYjNDM7XHRpbnQgcmV0O1xuJiM0MztcbiYjNDM7XHRXQVJOX09OX09OQ0UoaXNzdWVfZmxhZ3MgXHUwMDI2IElPX1VSSU5HX0ZfTk9OQkxPQ0spO1xuJiM0MztcbiYjNDM7XHRyZXQgPSBmaWxlX2xpc3R4YXR0cihyZXEtXHUwMDNlZmlsZSwgaXgtXHUwMDNlY3R4LnZhbHVlLCBpeC1cdTAwM2VjdHguc2l6ZSk7XG4mIzQzO1x0aW9feGF0dHJfZmluaXNoKHJlcSwgcmV0KTtcbiYjNDM7XHRyZXR1cm4gSU9VX0NPTVBMRVRFO1xuJiM0Mzt9XG5kaWZmIC0tZ2l0IGEvaW9fdXJpbmcveGF0dHIuaCBiL2lvX3VyaW5nL3hhdHRyLmhcbmluZGV4IDliNDU5ZDJhZTkwYzVhLi5kMjQ4N2I0OWE1ZDIxYSAxMDA2NDRcbi0tLSBhL2lvX3VyaW5nL3hhdHRyLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2lvX3VyaW5nL3hhdHRyLmhcbkBAIC0xMywzICYjNDM7MTMsOSBAQCBpbnQgaW9fZmdldHhhdHRyKHN0cnVjdCBpb19raW9jYiAqcmVxLCB1bnNpZ25lZCBpbnQgaXNzdWVfZmxhZ3MpO1xuIFxuIGludCBpb19nZXR4YXR0cl9wcmVwKHN0cnVjdCBpb19raW9jYiAqcmVxLCBjb25zdCBzdHJ1Y3QgaW9fdXJpbmdfc3FlICpzcWUpO1xuIGludCBpb19nZXR4YXR0cihzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgdW5zaWduZWQgaW50IGlzc3VlX2ZsYWdzKTtcbiYjNDM7XG4mIzQzO2ludCBpb19mcmVtb3ZleGF0dHJfcHJlcChzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgY29uc3Qgc3RydWN0IGlvX3VyaW5nX3NxZSAqc3FlKTtcbiYjNDM7aW50IGlvX2ZyZW1vdmV4YXR0cihzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgdW5zaWduZWQgaW50IGlzc3VlX2ZsYWdzKTtcbiYjNDM7XG4mIzQzO2ludCBpb19mbGlzdHhhdHRyX3ByZXAoc3RydWN0IGlvX2tpb2NiICpyZXEsIGNvbnN0IHN0cnVjdCBpb191cmluZ19zcWUgKnNxZSk7XG4mIzQzO2ludCBpb19mbGlzdHhhdHRyKHN0cnVjdCBpb19raW9jYiAqcmVxLCB1bnNpZ25lZCBpbnQgaXNzdWVfZmxhZ3MpO1xuZGlmZiAtLWdpdCBhL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oIGIvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2lvX3VyaW5nLmhcbmluZGV4IGYxYzE2ZjgxNzc0MjAwLi43OWJmN2MyMjAwOWRiYiAxMDA2NDRcbi0tLSBhL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy9pbmNsdWRlL3VhcGkvbGludXgvaW9fdXJpbmcuaFxuQEAgLTI1Myw2ICYjNDM7MjUzLDE5IEBAIGVudW0gaW9fdXJpbmdfb3Age1xuIFx0SU9SSU5HX09QX0ZVVEVYX1dBSVQsXG4gXHRJT1JJTkdfT1BfRlVURVhfV0FLRSxcbiBcdElPUklOR19PUF9GVVRFWF9XQUlUVixcbiYjNDM7XHRJT1JJTkdfT1BfRklYRURfRkRfSU5TVEFMTCxcbiYjNDM7XHRJT1JJTkdfT1BfRlRSVU5DQVRFLFxuJiM0MztcdElPUklOR19PUF9CSU5ELFxuJiM0MztcdElPUklOR19PUF9MSVNURU4sXG4mIzQzO1x0SU9SSU5HX09QX1JFQ1ZfWkMsXG4mIzQzO1x0SU9SSU5HX09QX0VQT0xMX1dBSVQsXG4mIzQzO1x0SU9SSU5HX09QX1JFQURWX0ZJWEVELFxuJiM0MztcdElPUklOR19PUF9XUklURVZfRklYRUQsXG4mIzQzO1x0SU9SSU5HX09QX1BJUEUsXG4mIzQzO1x0SU9SSU5HX09QX05PUDEyOCxcbiYjNDM7XHRJT1JJTkdfT1BfVVJJTkdfQ01EMTI4LFxuJiM0MztcdElPUklOR19PUF9GUkVNT1ZFWEFUVFIsXG4mIzQzO1x0SU9SSU5HX09QX0ZMSVNUWEFUVFIsXG4gXG4gXHQvKiB0aGlzIGdvZXMgbGFzdCwgb2J2aW91c2x5ICovXG4gXHRJT1JJTkdfT1BfTEFTVCxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwMDoyNzwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7SU9fVVJJTkcmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtpb19mcmVtb3ZleGF0dHJfcHJlcCYjMzQ7LAogICAgJiMzNDtpb19mcmVtb3ZleGF0dHImIzM0OywKICAgICYjMzQ7aW9fZmxpc3R4YXR0cl9wcmVwJiMzNDssCiAgICAmIzM0O2lvX2ZsaXN0eGF0dHImIzM0OywKICAgICYjMzQ7ZmlsZV9saXN0eGF0dHImIzM0OywKICAgICYjMzQ7ZmlsZV9yZW1vdmV4YXR0ciYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIG5ldyBpb191cmluZyBvcGNvZGVzIGZvciBmcmVtb3ZleGF0dHIgYW5kIGZsaXN0eGF0dHIsIHdoaWNoIGFyZSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIGlvX3VyaW5nX2VudGVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA3NzM3NDhjYjgyMTcxMTY1MDI3NzU2MjFmMzFjY2E4MjA5NDkyNTNiCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFdlZCBKdWwgMjIgMDA6Mjc6MjYgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9mcy9pbnRlcm5hbC5oIGIvZnMvaW50ZXJuYWwuaAppbmRleCAzNTVkOTNmOTIyMDg2MS4uZWU4NmIyNGRiNzlhZDIgMTAwNjQ0Ci0tLSBhL2ZzL2ludGVybmFsLmgKJiM0MzsmIzQzOyYjNDM7IGIvZnMvaW50ZXJuYWwuaApAQCAtMjk3LDYgJiM0MzsyOTcsOCBAQCBpbnQgZmlsZW5hbWVfc2V0eGF0dHIoaW50IGRmZCwgc3RydWN0IGZpbGVuYW1lICpmaWxlbmFtZSwKIAkJICAgICAgdW5zaWduZWQgaW50IGxvb2t1cF9mbGFncywgc3RydWN0IGtlcm5lbF94YXR0cl9jdHggKmN0eCk7CiBpbnQgc2V0eGF0dHJfY29weShjb25zdCBjaGFyIF9fdXNlciAqbmFtZSwgc3RydWN0IGtlcm5lbF94YXR0cl9jdHggKmN0eCk7CiBpbnQgaW1wb3J0X3hhdHRyX25hbWUoc3RydWN0IHhhdHRyX25hbWUgKmtuYW1lLCBjb25zdCBjaGFyIF9fdXNlciAqbmFtZSk7CiYjNDM7c3NpemVfdCBmaWxlX2xpc3R4YXR0cihzdHJ1Y3QgZmlsZSAqZiwgY2hhciBfX3VzZXIgKmxpc3QsIHNpemVfdCBzaXplKTsKJiM0MztpbnQgZmlsZV9yZW1vdmV4YXR0cihzdHJ1Y3QgZmlsZSAqZiwgc3RydWN0IHhhdHRyX25hbWUgKmtuYW1lKTsKIAogaW50IG1heV93cml0ZV94YXR0cihzdHJ1Y3QgbW50X2lkbWFwICppZG1hcCwgc3RydWN0IGlub2RlICppbm9kZSk7CiAKZGlmZiAtLWdpdCBhL2ZzL3hhdHRyLmMgYi9mcy94YXR0ci5jCmluZGV4IGQ1ODk3OTExNTIwMDc1Li5hM2E3MjQxODQ2YzMxMyAxMDA2NDQKLS0tIGEvZnMveGF0dHIuYwomIzQzOyYjNDM7JiM0MzsgYi9mcy94YXR0ci5jCkBAIC05NTMsMTcgJiM0Mzs5NTMsMTUgQEAgbGlzdHhhdHRyKHN0cnVjdCBkZW50cnkgKmQsIGNoYXIgX191c2VyICpsaXN0LCBzaXplX3Qgc2l6ZSkKIAlyZXR1cm4gZXJyb3I7CiB9CiAKLXN0YXRpYwogc3NpemVfdCBmaWxlX2xpc3R4YXR0cihzdHJ1Y3QgZmlsZSAqZiwgY2hhciBfX3VzZXIgKmxpc3QsIHNpemVfdCBzaXplKQogewogCWF1ZGl0X2ZpbGUoZik7CiAJcmV0dXJuIGxpc3R4YXR0cihmLSZndDtmX3BhdGguZGVudHJ5LCBsaXN0LCBzaXplKTsKIH0KIAotc3RhdGljCi1zc2l6ZV90IGZpbGVuYW1lX2xpc3R4YXR0cihpbnQgZGZkLCBzdHJ1Y3QgZmlsZW5hbWUgKmZpbGVuYW1lLAotCQkJICAgdW5zaWduZWQgaW50IGxvb2t1cF9mbGFncywKLQkJCSAgIGNoYXIgX191c2VyICpsaXN0LCBzaXplX3Qgc2l6ZSkKJiM0MztzdGF0aWMgc3NpemVfdCBmaWxlbmFtZV9saXN0eGF0dHIoaW50IGRmZCwgc3RydWN0IGZpbGVuYW1lICpmaWxlbmFtZSwKJiM0MzsJCQkJICB1bnNpZ25lZCBpbnQgbG9va3VwX2ZsYWdzLAomIzQzOwkJCQkgIGNoYXIgX191c2VyICpsaXN0LCBzaXplX3Qgc2l6ZSkKIHsKIAlzdHJ1Y3QgcGF0aCBwYXRoOwogCXNzaXplX3QgZXJyb3I7CkBAIC0xMDM2LDcgJiM0MzsxMDM0LDcgQEAgcmVtb3ZleGF0dHIoc3RydWN0IG1udF9pZG1hcCAqaWRtYXAsIHN0cnVjdCBkZW50cnkgKmQsIGNvbnN0IGNoYXIgKm5hbWUpCiAJcmV0dXJuIHZmc19yZW1vdmV4YXR0cihpZG1hcCwgZCwgbmFtZSk7CiB9CiAKLXN0YXRpYyBpbnQgZmlsZV9yZW1vdmV4YXR0cihzdHJ1Y3QgZmlsZSAqZiwgc3RydWN0IHhhdHRyX25hbWUgKmtuYW1lKQomIzQzO2ludCBmaWxlX3JlbW92ZXhhdHRyKHN0cnVjdCBmaWxlICpmLCBzdHJ1Y3QgeGF0dHJfbmFtZSAqa25hbWUpCiB7CiAJaW50IGVycm9yID0gbW50X3dhbnRfd3JpdGVfZmlsZShmKTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2lvX3VyaW5nLmggYi9pbmNsdWRlL3VhcGkvbGludXgvaW9fdXJpbmcuaAppbmRleCA5MDlmYjdhZWE2MzhlYi4uODA1ZjFlMzFmNDkyNTEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oCiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oCkBAIC0zMTgsNiAmIzQzOzMxOCw4IEBAIGVudW0gaW9fdXJpbmdfb3AgewogCUlPUklOR19PUF9QSVBFLAogCUlPUklOR19PUF9OT1AxMjgsCiAJSU9SSU5HX09QX1VSSU5HX0NNRDEyOCwKJiM0MzsJSU9SSU5HX09QX0ZSRU1PVkVYQVRUUiwKJiM0MzsJSU9SSU5HX09QX0ZMSVNUWEFUVFIsCiAKIAkvKiB0aGlzIGdvZXMgbGFzdCwgb2J2aW91c2x5ICovCiAJSU9SSU5HX09QX0xBU1QsCmRpZmYgLS1naXQgYS9pb191cmluZy9vcGRlZi5jIGIvaW9fdXJpbmcvb3BkZWYuYwppbmRleCA0ZTU4ZWIxMzQ0ZWFhMy4uMjVkOTIyOWQ4ZmMwMDIgMTAwNjQ0Ci0tLSBhL2lvX3VyaW5nL29wZGVmLmMKJiM0MzsmIzQzOyYjNDM7IGIvaW9fdXJpbmcvb3BkZWYuYwpAQCAtNTkxLDYgJiM0Mzs1OTEsMTYgQEAgY29uc3Qgc3RydWN0IGlvX2lzc3VlX2RlZiBpb19pc3N1ZV9kZWZzW10gPSB7CiAJCS5wcmVwCQkJPSBpb191cmluZ19jbWRfcHJlcCwKIAkJLmlzc3VlCQkJPSBpb191cmluZ19jbWQsCiAJfSwKJiM0MzsJW0lPUklOR19PUF9GUkVNT1ZFWEFUVFJdID0gewomIzQzOwkJLm5lZWRzX2ZpbGUJCT0gMSwKJiM0MzsJCS5wcmVwCQkJPSBpb19mcmVtb3ZleGF0dHJfcHJlcCwKJiM0MzsJCS5pc3N1ZQkJCT0gaW9fZnJlbW92ZXhhdHRyLAomIzQzOwl9LAomIzQzOwlbSU9SSU5HX09QX0ZMSVNUWEFUVFJdID0gewomIzQzOwkJLm5lZWRzX2ZpbGUJCT0gMSwKJiM0MzsJCS5wcmVwCQkJPSBpb19mbGlzdHhhdHRyX3ByZXAsCiYjNDM7CQkuaXNzdWUJCQk9IGlvX2ZsaXN0eGF0dHIsCiYjNDM7CX0sCiB9OwogCiBjb25zdCBzdHJ1Y3QgaW9fY29sZF9kZWYgaW9fY29sZF9kZWZzW10gPSB7CkBAIC04NDksNiAmIzQzOzg1OSwxNCBAQCBjb25zdCBzdHJ1Y3QgaW9fY29sZF9kZWYgaW9fY29sZF9kZWZzW10gPSB7CiAJCS5zcWVfY29weQkJPSBpb191cmluZ19jbWRfc3FlX2NvcHksCiAJCS5jbGVhbnVwCQk9IGlvX3VyaW5nX2NtZF9jbGVhbnVwLAogCX0sCiYjNDM7CVtJT1JJTkdfT1BfRlJFTU9WRVhBVFRSXSA9IHsKJiM0MzsJCS5uYW1lCQkJPSAmIzM0O0ZSRU1PVkVYQVRUUiYjMzQ7LAomIzQzOwkJLmNsZWFudXAJCT0gaW9feGF0dHJfY2xlYW51cCwKJiM0MzsJfSwKJiM0MzsJW0lPUklOR19PUF9GTElTVFhBVFRSXSA9IHsKJiM0MzsJCS5uYW1lCQkJPSAmIzM0O0ZMSVNUWEFUVFImIzM0OywKJiM0MzsJCS5jbGVhbnVwCQk9IGlvX3hhdHRyX2NsZWFudXAsCiYjNDM7CX0sCiB9OwogCiBjb25zdCBjaGFyICppb191cmluZ19nZXRfb3Bjb2RlKHU4IG9wY29kZSkKZGlmZiAtLWdpdCBhL2lvX3VyaW5nL3hhdHRyLmMgYi9pb191cmluZy94YXR0ci5jCmluZGV4IDUzMDNkZjNmMjQ3ZjRiLi45YjQxMGY5MWVmNDM3OCAxMDA2NDQKLS0tIGEvaW9fdXJpbmcveGF0dHIuYwomIzQzOyYjNDM7JiM0MzsgYi9pb191cmluZy94YXR0ci5jCkBAIC0xOTUsMyAmIzQzOzE5NSw3NyBAQCBpbnQgaW9fc2V0eGF0dHIoc3RydWN0IGlvX2tpb2NiICpyZXEsIHVuc2lnbmVkIGludCBpc3N1ZV9mbGFncykKIAlpb194YXR0cl9maW5pc2gocmVxLCByZXQpOwogCXJldHVybiBJT1VfQ09NUExFVEU7CiB9CiYjNDM7CiYjNDM7aW50IGlvX2ZyZW1vdmV4YXR0cl9wcmVwKHN0cnVjdCBpb19raW9jYiAqcmVxLCBjb25zdCBzdHJ1Y3QgaW9fdXJpbmdfc3FlICpzcWUpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgaW9feGF0dHIgKml4ID0gaW9fa2lvY2JfdG9fY21kKHJlcSwgc3RydWN0IGlvX3hhdHRyKTsKJiM0MzsJY29uc3QgY2hhciBfX3VzZXIgKm5hbWU7CiYjNDM7CWludCByZXQ7CiYjNDM7CiYjNDM7CUlOSVRfREVMQVlFRF9GSUxFTkFNRSgmYW1wO2l4LSZndDtmaWxlbmFtZSk7CiYjNDM7CW5hbWUgPSB1NjRfdG9fdXNlcl9wdHIoUkVBRF9PTkNFKHNxZS0mZ3Q7YWRkcikpOwomIzQzOwomIzQzOwlpZiAoUkVBRF9PTkNFKHNxZS0mZ3Q7YWRkcjIpIHx8IFJFQURfT05DRShzcWUtJmd0O2xlbikgfHwgUkVBRF9PTkNFKHNxZS0mZ3Q7eGF0dHJfZmxhZ3MpKQomIzQzOwkJcmV0dXJuIC1FSU5WQUw7CiYjNDM7CiYjNDM7CWl4LSZndDtjdHgua25hbWUgPSBrbWFsbG9jX29iaigqaXgtJmd0O2N0eC5rbmFtZSk7CiYjNDM7CWlmICghaXgtJmd0O2N0eC5rbmFtZSkKJiM0MzsJCXJldHVybiAtRU5PTUVNOwomIzQzOwomIzQzOwlyZXQgPSBpbXBvcnRfeGF0dHJfbmFtZShpeC0mZ3Q7Y3R4LmtuYW1lLCBuYW1lKTsKJiM0MzsJaWYgKHJldCkgewomIzQzOwkJa2ZyZWUoaXgtJmd0O2N0eC5rbmFtZSk7CiYjNDM7CQlyZXR1cm4gcmV0OwomIzQzOwl9CiYjNDM7CiYjNDM7CXJlcS0mZ3Q7ZmxhZ3MgfD0gUkVRX0ZfTkVFRF9DTEVBTlVQOwomIzQzOwlyZXEtJmd0O2ZsYWdzIHw9IFJFUV9GX0ZPUkNFX0FTWU5DOwomIzQzOwlyZXR1cm4gMDsKJiM0Mzt9CiYjNDM7CiYjNDM7aW50IGlvX2ZyZW1vdmV4YXR0cihzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgdW5zaWduZWQgaW50IGlzc3VlX2ZsYWdzKQomIzQzO3sKJiM0MzsJc3RydWN0IGlvX3hhdHRyICppeCA9IGlvX2tpb2NiX3RvX2NtZChyZXEsIHN0cnVjdCBpb194YXR0cik7CiYjNDM7CWludCByZXQ7CiYjNDM7CiYjNDM7CVdBUk5fT05fT05DRShpc3N1ZV9mbGFncyAmYW1wOyBJT19VUklOR19GX05PTkJMT0NLKTsKJiM0MzsKJiM0MzsJcmV0ID0gZmlsZV9yZW1vdmV4YXR0cihyZXEtJmd0O2ZpbGUsIGl4LSZndDtjdHgua25hbWUpOwomIzQzOwlpb194YXR0cl9maW5pc2gocmVxLCByZXQpOwomIzQzOwlyZXR1cm4gSU9VX0NPTVBMRVRFOwomIzQzO30KJiM0MzsKJiM0MztpbnQgaW9fZmxpc3R4YXR0cl9wcmVwKHN0cnVjdCBpb19raW9jYiAqcmVxLCBjb25zdCBzdHJ1Y3QgaW9fdXJpbmdfc3FlICpzcWUpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgaW9feGF0dHIgKml4ID0gaW9fa2lvY2JfdG9fY21kKHJlcSwgc3RydWN0IGlvX3hhdHRyKTsKJiM0MzsKJiM0MzsJSU5JVF9ERUxBWUVEX0ZJTEVOQU1FKCZhbXA7aXgtJmd0O2ZpbGVuYW1lKTsKJiM0MzsJaXgtJmd0O2N0eC5rbmFtZSA9IE5VTEw7CiYjNDM7CWl4LSZndDtjdHgua3ZhbHVlID0gTlVMTDsKJiM0MzsKJiM0MzsJaWYgKFJFQURfT05DRShzcWUtJmd0O2FkZHIpKQomIzQzOwkJcmV0dXJuIC1FSU5WQUw7CiYjNDM7CiYjNDM7CWl4LSZndDtjdHgudmFsdWUgPSB1NjRfdG9fdXNlcl9wdHIoUkVBRF9PTkNFKHNxZS0mZ3Q7YWRkcjIpKTsKJiM0MzsJaXgtJmd0O2N0eC5zaXplID0gUkVBRF9PTkNFKHNxZS0mZ3Q7bGVuKTsKJiM0MzsJaXgtJmd0O2N0eC5mbGFncyA9IFJFQURfT05DRShzcWUtJmd0O3hhdHRyX2ZsYWdzKTsKJiM0MzsKJiM0MzsJaWYgKGl4LSZndDtjdHguZmxhZ3MpCiYjNDM7CQlyZXR1cm4gLUVJTlZBTDsKJiM0MzsKJiM0MzsJcmVxLSZndDtmbGFncyB8PSBSRVFfRl9ORUVEX0NMRUFOVVA7CiYjNDM7CXJlcS0mZ3Q7ZmxhZ3MgfD0gUkVRX0ZfRk9SQ0VfQVNZTkM7CiYjNDM7CXJldHVybiAwOwomIzQzO30KJiM0MzsKJiM0MztpbnQgaW9fZmxpc3R4YXR0cihzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgdW5zaWduZWQgaW50IGlzc3VlX2ZsYWdzKQomIzQzO3sKJiM0MzsJc3RydWN0IGlvX3hhdHRyICppeCA9IGlvX2tpb2NiX3RvX2NtZChyZXEsIHN0cnVjdCBpb194YXR0cik7CiYjNDM7CWludCByZXQ7CiYjNDM7CiYjNDM7CVdBUk5fT05fT05DRShpc3N1ZV9mbGFncyAmYW1wOyBJT19VUklOR19GX05PTkJMT0NLKTsKJiM0MzsKJiM0MzsJcmV0ID0gZmlsZV9saXN0eGF0dHIocmVxLSZndDtmaWxlLCBpeC0mZ3Q7Y3R4LnZhbHVlLCBpeC0mZ3Q7Y3R4LnNpemUpOwomIzQzOwlpb194YXR0cl9maW5pc2gocmVxLCByZXQpOwomIzQzOwlyZXR1cm4gSU9VX0NPTVBMRVRFOwomIzQzO30KZGlmZiAtLWdpdCBhL2lvX3VyaW5nL3hhdHRyLmggYi9pb191cmluZy94YXR0ci5oCmluZGV4IDliNDU5ZDJhZTkwYzVhLi5kMjQ4N2I0OWE1ZDIxYSAxMDA2NDQKLS0tIGEvaW9fdXJpbmcveGF0dHIuaAomIzQzOyYjNDM7JiM0MzsgYi9pb191cmluZy94YXR0ci5oCkBAIC0xMywzICYjNDM7MTMsOSBAQCBpbnQgaW9fZmdldHhhdHRyKHN0cnVjdCBpb19raW9jYiAqcmVxLCB1bnNpZ25lZCBpbnQgaXNzdWVfZmxhZ3MpOwogCiBpbnQgaW9fZ2V0eGF0dHJfcHJlcChzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgY29uc3Qgc3RydWN0IGlvX3VyaW5nX3NxZSAqc3FlKTsKIGludCBpb19nZXR4YXR0cihzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgdW5zaWduZWQgaW50IGlzc3VlX2ZsYWdzKTsKJiM0MzsKJiM0MztpbnQgaW9fZnJlbW92ZXhhdHRyX3ByZXAoc3RydWN0IGlvX2tpb2NiICpyZXEsIGNvbnN0IHN0cnVjdCBpb191cmluZ19zcWUgKnNxZSk7CiYjNDM7aW50IGlvX2ZyZW1vdmV4YXR0cihzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgdW5zaWduZWQgaW50IGlzc3VlX2ZsYWdzKTsKJiM0MzsKJiM0MztpbnQgaW9fZmxpc3R4YXR0cl9wcmVwKHN0cnVjdCBpb19raW9jYiAqcmVxLCBjb25zdCBzdHJ1Y3QgaW9fdXJpbmdfc3FlICpzcWUpOwomIzQzO2ludCBpb19mbGlzdHhhdHRyKHN0cnVjdCBpb19raW9jYiAqcmVxLCB1bnNpZ25lZCBpbnQgaXNzdWVfZmxhZ3MpOwpkaWZmIC0tZ2l0IGEvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2lvX3VyaW5nLmggYi90b29scy9pbmNsdWRlL3VhcGkvbGludXgvaW9fdXJpbmcuaAppbmRleCBmMWMxNmY4MTc3NDIwMC4uNzliZjdjMjIwMDlkYmIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oCkBAIC0yNTMsNiAmIzQzOzI1MywxOSBAQCBlbnVtIGlvX3VyaW5nX29wIHsKIAlJT1JJTkdfT1BfRlVURVhfV0FJVCwKIAlJT1JJTkdfT1BfRlVURVhfV0FLRSwKIAlJT1JJTkdfT1BfRlVURVhfV0FJVFYsCiYjNDM7CUlPUklOR19PUF9GSVhFRF9GRF9JTlNUQUxMLAomIzQzOwlJT1JJTkdfT1BfRlRSVU5DQVRFLAomIzQzOwlJT1JJTkdfT1BfQklORCwKJiM0MzsJSU9SSU5HX09QX0xJU1RFTiwKJiM0MzsJSU9SSU5HX09QX1JFQ1ZfWkMsCiYjNDM7CUlPUklOR19PUF9FUE9MTF9XQUlULAomIzQzOwlJT1JJTkdfT1BfUkVBRFZfRklYRUQsCiYjNDM7CUlPUklOR19PUF9XUklURVZfRklYRUQsCiYjNDM7CUlPUklOR19PUF9QSVBFLAomIzQzOwlJT1JJTkdfT1BfTk9QMTI4LAomIzQzOwlJT1JJTkdfT1BfVVJJTkdfQ01EMTI4LAomIzQzOwlJT1JJTkdfT1BfRlJFTU9WRVhBVFRSLAomIzQzOwlJT1JJTkdfT1BfRkxJU1RYQVRUUiwKIAogCS8qIHRoaXMgZ29lcyBsYXN0LCBvYnZpb3VzbHkgKi8KIAlJT1JJTkdfT1BfTEFTVCwKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMDA6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDczNwoJCQkJCQkJb3V0cHV0OiAxOAoJCQkJCQkJdGhvdWdodHM6IDM3MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBpb191cmluZyBYYXR0ciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQgc2VlbXMgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZC4gVGhleSYjMzk7cmUgYWRkaW5nIHN1cHBvcnQgZm9yIGBJT1JJTkdfT1BfRlJFTU9WRVhBVFRSYCBhbmQgYElPUklOR19PUF9GTElTVFhBVFRSYCB0byBpb191cmluZy4gRnVuY3Rpb25hbGx5LCB0aGlzIGlzIGEgc2lnbmlmaWNhbnQgYWRkaXRpb24sIGludHJvZHVjaW5nIG5ldyBvcGNvZGVzLCBzbyBJIG5lZWQgdG8gYmUgdGhvcm91Z2guCgpUaGUgcGF0Y2ggaXRzZWxmIHRvdWNoZXMgYSBmYWlyIG51bWJlciBvZiBmaWxlczogYGZzL2ludGVybmFsLmhgIGFuZCBgZnMveGF0dHIuY2AgYXJlIG1vZGlmaWVkLCBsaWtlbHkgdG8gZXhwb3NlIHRoZSBrZXJuZWwtbGV2ZWwgZnVuY3Rpb25zIGBmaWxlX2xpc3R4YXR0cmAgYW5kIGBmaWxlX3JlbW92ZXhhdHRyYC4gSXQgbG9va3MgbGlrZSB0aGUgYGluY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oYCBoZWFkZXIgZ2V0cyB0aGUgbmV3IG9wY29kZXMgZGVmaW5lZCBhbmQgdGhlIGltcGxlbWVudGF0aW9uIHdpdGhpbiBgaW9fdXJpbmcvb3BkZWYuY2AuIFRoZSBjb3JlIGZ1bmN0aW9uYWxpdHkgcmVzaWRlcyBpbiBgaW9fdXJpbmcveGF0dHIuY2Agd2l0aCB0aGUgcHJlcCBhbmQgZXhlY3V0aW9uIGZ1bmN0aW9uczogYGlvX2ZyZW1vdmV4YXR0cl9wcmVwYCwgYGlvX2ZyZW1vdmV4YXR0cmAsIGBpb19mbGlzdHhhdHRyX3ByZXBgLCBhbmQgYGlvX2ZsaXN0eGF0dHJgLiAgT2YgY291cnNlLCB0aGVyZSYjMzk7cyBhIGNvcnJlc3BvbmRpbmcgYGlvX3VyaW5nL3hhdHRyLmhgIHRvIGRlY2xhcmUgdGhlbS4gQW5kIGZpbmFsbHksIHRoZSBgdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2lvX3VyaW5nLmhgIGhhcyBiZWVuIHN5bmNlZCB0byBzdGF5IGNvbnNpc3RlbnQuCgpHaXZlbiB0aGF0IHRoaXMgaXMgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBleHBhbmRzIHRoZSBpb191cmluZyBvcGNvZGUgc2V0LCBmdXp6aW5nIGlzIGFic29sdXRlbHkgZXNzZW50aWFsLiBUaGF0JiMzOTtzIGEgZ2l2ZW4uCgpJIG5lZWQgdG8gY29uZmlybSB0aGUgY29uZmlndXJhdGlvbiBvcHRpb24gaXMgY29ycmVjdC4gVGhlIHRleHQgbWVudGlvbnMgYENPTkZJR19JT19VUklOR2AsIGFuZCB0aGF0IG1ha2VzIHNlbnNlLCBidXQgSSYjMzk7bGwgdXNlIGBncmVwcGVyYCB0byBjb25maXJtIHRoYXQgYElPX1VSSU5HYCBpcyBkZWZpbmVkIHdpdGhpbiB0aGUgS2NvbmZpZyBhbmQgaXMsIGluIGZhY3QsIHRoZSBjb3JyZWN0IGZsYWcuCgpCZXlvbmQgdGhhdCwgdGhlIGNyaXRpY2FsIGZ1bmN0aW9ucyB0byBmb2N1cyBvbiBmb3IgdGVzdGluZyB3aWxsIGJlIHRob3NlIGludm9sdmVkIGluIHByZXBhcmluZyBhbmQgZXhlY3V0aW5nIHRoZSB4YXR0ciBvcGVyYXRpb25zLCBhbmQgdGhlIGtlcm5lbCBmdW5jdGlvbnMgdGhleSBpbnRlcmFjdCB3aXRoLCBzbzogYGlvX2ZyZW1vdmV4YXR0cl9wcmVwYCwgYGlvX2ZyZW1vdmV4YXR0cmAsIGBpb19mbGlzdHhhdHRyX3ByZXBgLCBgaW9fZmxpc3R4YXR0cmAsIGBmaWxlX2xpc3R4YXR0cmAsIGFuZCBgZmlsZV9yZW1vdmV4YXR0cmAuICBJJiMzOTtsbCB3YW50IHRvIHRhcmdldCB0aGVzZSBleHBsaWNpdGx5IGluIG15IGZ1enppbmcgc3RyYXRlZ3kuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMDA6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIElPX1VSSU5HJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2luaXQvS2NvbmZpZz0xOTA3PWNvbmZpZyBBSU9cbi0tXG5pbml0L0tjb25maWctMTkxNC1cbmluaXQvS2NvbmZpZzoxOTE1OmNvbmZpZyBJT19VUklOR1xuaW5pdC9LY29uZmlnLTE5MTYtXHRib29sIFwmIzM0O0VuYWJsZSBJTyB1cmluZyBzdXBwb3J0XCYjMzQ7IGlmIEVYUEVSVFxuLS1cbmluaXQvS2NvbmZpZz0xOTI0PWNvbmZpZyBHQ09WX1BST0ZJTEVfVVJJTkdcbi0tXG5pbml0L0tjb25maWctMTkzNi1cbmluaXQvS2NvbmZpZzoxOTM3OmNvbmZpZyBJT19VUklOR19NT0NLX0ZJTEVcbmluaXQvS2NvbmZpZy0xOTM4LVx0dHJpc3RhdGUgXCYjMzQ7RW5hYmxlIGlvX3VyaW5nIG1vY2sgZmlsZXMgKEV4cGVyaW1lbnRhbClcJiMzNDsgaWYgRVhQRVJUXG4tLVxuaW9fdXJpbmcvS2NvbmZpZy01LVxuaW9fdXJpbmcvS2NvbmZpZzo2OmNvbmZpZyBJT19VUklOR19aQ1JYXG5pb191cmluZy9LY29uZmlnLTctXHRkZWZfYm9vbCB5XG4tLVxuaW9fdXJpbmcvS2NvbmZpZy0xMi1cbmlvX3VyaW5nL0tjb25maWc6MTM6Y29uZmlnIElPX1VSSU5HX0JQRlxuaW9fdXJpbmcvS2NvbmZpZy0xNC1cdGRlZl9ib29sIHlcbi0tXG5pb191cmluZy9LY29uZmlnLTE3LVxuaW9fdXJpbmcvS2NvbmZpZzoxODpjb25maWcgSU9fVVJJTkdfQlBGX09QU1xuaW9fdXJpbmcvS2NvbmZpZy0xOS1cdGRlZl9ib29sIHlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwMDoyNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1ODk5CgkJCQkJCQlvdXRwdXQ6IDEyNAoJCQkJCQkJdGhvdWdodHM6IDEyNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIGlvX3VyaW5nIEltcGxlbWVudGF0aW9uIGZvciBFeHRlbmRlZCBBdHRyaWJ1dGUgUmVtb3ZhbCBhbmQgTGlzdGluZyoqCgpPa2F5LCBzbyBJJiMzOTttIGZvY3VzaW5nIG9uIGEgc3BlY2lmaWMgY29uZmlndXJhdGlvbiwgYElPX1VSSU5HYCwgZm9yIHRoaXMgYW5hbHlzaXMuIE15IHByaW1hcnkgaW50ZXJlc3QgbGllcyBpbiB0aGUgaW1wbGVtZW50YXRpb24gb2YgZXh0ZW5kZWQgYXR0cmlidXRlIHJlbW92YWwgYW5kIGxpc3RpbmcgdGhyb3VnaCB0aGUgaW9fdXJpbmcgaW50ZXJmYWNlLiBTcGVjaWZpY2FsbHksIEkmIzM5O20gZXhhbWluaW5nIHRoZXNlIGZ1bmN0aW9uczogYGlvX2ZyZW1vdmV4YXR0cl9wcmVwYCwgYGlvX2ZyZW1vdmV4YXR0cmAsIGBpb19mbGlzdHhhdHRyX3ByZXBgLCBhbmQgYGlvX2ZsaXN0eGF0dHJgLgoKSSBuZWVkIHRvIHF1aWNrbHkgY29uZmlybSB0aGF0IGBJT19VUklOR2AgaXMgdGhlIHJlbGV2YW50IGNvbmZpZy4gR2l2ZW4gdGhlIG5hdHVyZSBvZiB0aGUgcGF0Y2gsIHdoaWNoIGludHJvZHVjZXMgbmV3IGlvX3VyaW5nIG9wY29kZXMgZm9yIGBmcmVtb3ZleGF0dHJgIGFuZCBgZmxpc3R4YXR0cmAsIGFjY2Vzc2libGUgZnJvbSB1c2Vyc3BhY2UgdGhyb3VnaCBgaW9fdXJpbmdfZW50ZXJgLCB0aGF0JiMzOTtzIGNlcnRhaW5seSB0aGUgY2FzZS4gTm8gbmVlZCB0byBnZXQgZGlzdHJhY3RlZCBieSBhbnkgb3RoZXIgY29uZmlndXJhdGlvbnMuCgpOb3csIGxldCYjMzk7cyBwcm9jZWVkIHdpdGggc2V0dGluZyB0aGUgcmVzdWx0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwMDoyNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7SU9fVVJJTkcmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtpb19mcmVtb3ZleGF0dHJfcHJlcCYjMzQ7LAogICAgJiMzNDtpb19mcmVtb3ZleGF0dHImIzM0OywKICAgICYjMzQ7aW9fZmxpc3R4YXR0cl9wcmVwJiMzNDssCiAgICAmIzM0O2lvX2ZsaXN0eGF0dHImIzM0OywKICAgICYjMzQ7ZmlsZV9saXN0eGF0dHImIzM0OywKICAgICYjMzQ7ZmlsZV9yZW1vdmV4YXR0ciYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIG5ldyBpb191cmluZyBvcGNvZGVzIGZvciBmcmVtb3ZleGF0dHIgYW5kIGZsaXN0eGF0dHIsIHdoaWNoIGFyZSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIGlvX3VyaW5nX2VudGVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtJT19VUklORyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2lvX2ZyZW1vdmV4YXR0cl9wcmVwJiMzNDssCiAgICAmIzM0O2lvX2ZyZW1vdmV4YXR0ciYjMzQ7LAogICAgJiMzNDtpb19mbGlzdHhhdHRyX3ByZXAmIzM0OywKICAgICYjMzQ7aW9fZmxpc3R4YXR0ciYjMzQ7LAogICAgJiMzNDtmaWxlX2xpc3R4YXR0ciYjMzQ7LAogICAgJiMzNDtmaWxlX3JlbW92ZXhhdHRyJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgbmV3IGlvX3VyaW5nIG9wY29kZXMgZm9yIGZyZW1vdmV4YXR0ciBhbmQgZmxpc3R4YXR0ciwgd2hpY2ggYXJlIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgaW9fdXJpbmdfZW50ZXIuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwMDoyNzoyOC41ODc4NDc5OTlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzk1NDU3OTc4OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJT19VUklOR1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImlvX2ZyZW1vdmV4YXR0cl9wcmVwXCIsXG4gICAgXCJpb19mcmVtb3ZleGF0dHJcIixcbiAgICBcImlvX2ZsaXN0eGF0dHJfcHJlcFwiLFxuICAgIFwiaW9fZmxpc3R4YXR0clwiLFxuICAgIFwiZmlsZV9saXN0eGF0dHJcIixcbiAgICBcImZpbGVfcmVtb3ZleGF0dHJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIG5ldyBpb191cmluZyBvcGNvZGVzIGZvciBmcmVtb3ZleGF0dHIgYW5kIGZsaXN0eGF0dHIsIHdoaWNoIGFyZSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIGlvX3VyaW5nX2VudGVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwMDoyNzoyOC41ODc4NTYzMzlaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY2Mzc2ODE5MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDc3Mzc0OGNiODIxNzExNjUwMjc3NTYyMWYzMWNjYTgyMDk0OTI1M2JcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFdlZCBKdWwgMjIgMDA6Mjc6MjYgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZnMvaW50ZXJuYWwuaCBiL2ZzL2ludGVybmFsLmhcXG5pbmRleCAzNTVkOTNmOTIyMDg2MS4uZWU4NmIyNGRiNzlhZDIgMTAwNjQ0XFxuLS0tIGEvZnMvaW50ZXJuYWwuaFxcbisrKyBiL2ZzL2ludGVybmFsLmhcXG5AQCAtMjk3LDYgKzI5Nyw4IEBAIGludCBmaWxlbmFtZV9zZXR4YXR0cihpbnQgZGZkLCBzdHJ1Y3QgZmlsZW5hbWUgKmZpbGVuYW1lLFxcbiBcXHRcXHQgICAgICB1bnNpZ25lZCBpbnQgbG9va3VwX2ZsYWdzLCBzdHJ1Y3Qga2VybmVsX3hhdHRyX2N0eCAqY3R4KTtcXG4gaW50IHNldHhhdHRyX2NvcHkoY29uc3QgY2hhciBfX3VzZXIgKm5hbWUsIHN0cnVjdCBrZXJuZWxfeGF0dHJfY3R4ICpjdHgpO1xcbiBpbnQgaW1wb3J0X3hhdHRyX25hbWUoc3RydWN0IHhhdHRyX25hbWUgKmtuYW1lLCBjb25zdCBjaGFyIF9fdXNlciAqbmFtZSk7XFxuK3NzaXplX3QgZmlsZV9saXN0eGF0dHIoc3RydWN0IGZpbGUgKmYsIGNoYXIgX191c2VyICpsaXN0LCBzaXplX3Qgc2l6ZSk7XFxuK2ludCBmaWxlX3JlbW92ZXhhdHRyKHN0cnVjdCBmaWxlICpmLCBzdHJ1Y3QgeGF0dHJfbmFtZSAqa25hbWUpO1xcbiBcXG4gaW50IG1heV93cml0ZV94YXR0cihzdHJ1Y3QgbW50X2lkbWFwICppZG1hcCwgc3RydWN0IGlub2RlICppbm9kZSk7XFxuIFxcbmRpZmYgLS1naXQgYS9mcy94YXR0ci5jIGIvZnMveGF0dHIuY1xcbmluZGV4IGQ1ODk3OTExNTIwMDc1Li5hM2E3MjQxODQ2YzMxMyAxMDA2NDRcXG4tLS0gYS9mcy94YXR0ci5jXFxuKysrIGIvZnMveGF0dHIuY1xcbkBAIC05NTMsMTcgKzk1MywxNSBAQCBsaXN0eGF0dHIoc3RydWN0IGRlbnRyeSAqZCwgY2hhciBfX3VzZXIgKmxpc3QsIHNpemVfdCBzaXplKVxcbiBcXHRyZXR1cm4gZXJyb3I7XFxuIH1cXG4gXFxuLXN0YXRpY1xcbiBzc2l6ZV90IGZpbGVfbGlzdHhhdHRyKHN0cnVjdCBmaWxlICpmLCBjaGFyIF9fdXNlciAqbGlzdCwgc2l6ZV90IHNpemUpXFxuIHtcXG4gXFx0YXVkaXRfZmlsZShmKTtcXG4gXFx0cmV0dXJuIGxpc3R4YXR0cihmLVxcdTAwM2VmX3BhdGguZGVudHJ5LCBsaXN0LCBzaXplKTtcXG4gfVxcbiBcXG4tc3RhdGljXFxuLXNzaXplX3QgZmlsZW5hbWVfbGlzdHhhdHRyKGludCBkZmQsIHN0cnVjdCBmaWxlbmFtZSAqZmlsZW5hbWUsXFxuLVxcdFxcdFxcdCAgIHVuc2lnbmVkIGludCBsb29rdXBfZmxhZ3MsXFxuLVxcdFxcdFxcdCAgIGNoYXIgX191c2VyICpsaXN0LCBzaXplX3Qgc2l6ZSlcXG4rc3RhdGljIHNzaXplX3QgZmlsZW5hbWVfbGlzdHhhdHRyKGludCBkZmQsIHN0cnVjdCBmaWxlbmFtZSAqZmlsZW5hbWUsXFxuK1xcdFxcdFxcdFxcdCAgdW5zaWduZWQgaW50IGxvb2t1cF9mbGFncyxcXG4rXFx0XFx0XFx0XFx0ICBjaGFyIF9fdXNlciAqbGlzdCwgc2l6ZV90IHNpemUpXFxuIHtcXG4gXFx0c3RydWN0IHBhdGggcGF0aDtcXG4gXFx0c3NpemVfdCBlcnJvcjtcXG5AQCAtMTAzNiw3ICsxMDM0LDcgQEAgcmVtb3ZleGF0dHIoc3RydWN0IG1udF9pZG1hcCAqaWRtYXAsIHN0cnVjdCBkZW50cnkgKmQsIGNvbnN0IGNoYXIgKm5hbWUpXFxuIFxcdHJldHVybiB2ZnNfcmVtb3ZleGF0dHIoaWRtYXAsIGQsIG5hbWUpO1xcbiB9XFxuIFxcbi1zdGF0aWMgaW50IGZpbGVfcmVtb3ZleGF0dHIoc3RydWN0IGZpbGUgKmYsIHN0cnVjdCB4YXR0cl9uYW1lICprbmFtZSlcXG4raW50IGZpbGVfcmVtb3ZleGF0dHIoc3RydWN0IGZpbGUgKmYsIHN0cnVjdCB4YXR0cl9uYW1lICprbmFtZSlcXG4ge1xcbiBcXHRpbnQgZXJyb3IgPSBtbnRfd2FudF93cml0ZV9maWxlKGYpO1xcbiBcXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2lvX3VyaW5nLmggYi9pbmNsdWRlL3VhcGkvbGludXgvaW9fdXJpbmcuaFxcbmluZGV4IDkwOWZiN2FlYTYzOGViLi44MDVmMWUzMWY0OTI1MSAxMDA2NDRcXG4tLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvaW9fdXJpbmcuaFxcbisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oXFxuQEAgLTMxOCw2ICszMTgsOCBAQCBlbnVtIGlvX3VyaW5nX29wIHtcXG4gXFx0SU9SSU5HX09QX1BJUEUsXFxuIFxcdElPUklOR19PUF9OT1AxMjgsXFxuIFxcdElPUklOR19PUF9VUklOR19DTUQxMjgsXFxuK1xcdElPUklOR19PUF9GUkVNT1ZFWEFUVFIsXFxuK1xcdElPUklOR19PUF9GTElTVFhBVFRSLFxcbiBcXG4gXFx0LyogdGhpcyBnb2VzIGxhc3QsIG9idmlvdXNseSAqL1xcbiBcXHRJT1JJTkdfT1BfTEFTVCxcXG5kaWZmIC0tZ2l0IGEvaW9fdXJpbmcvb3BkZWYuYyBiL2lvX3VyaW5nL29wZGVmLmNcXG5pbmRleCA0ZTU4ZWIxMzQ0ZWFhMy4uMjVkOTIyOWQ4ZmMwMDIgMTAwNjQ0XFxuLS0tIGEvaW9fdXJpbmcvb3BkZWYuY1xcbisrKyBiL2lvX3VyaW5nL29wZGVmLmNcXG5AQCAtNTkxLDYgKzU5MSwxNiBAQCBjb25zdCBzdHJ1Y3QgaW9faXNzdWVfZGVmIGlvX2lzc3VlX2RlZnNbXSA9IHtcXG4gXFx0XFx0LnByZXBcXHRcXHRcXHQ9IGlvX3VyaW5nX2NtZF9wcmVwLFxcbiBcXHRcXHQuaXNzdWVcXHRcXHRcXHQ9IGlvX3VyaW5nX2NtZCxcXG4gXFx0fSxcXG4rXFx0W0lPUklOR19PUF9GUkVNT1ZFWEFUVFJdID0ge1xcbitcXHRcXHQubmVlZHNfZmlsZVxcdFxcdD0gMSxcXG4rXFx0XFx0LnByZXBcXHRcXHRcXHQ9IGlvX2ZyZW1vdmV4YXR0cl9wcmVwLFxcbitcXHRcXHQuaXNzdWVcXHRcXHRcXHQ9IGlvX2ZyZW1vdmV4YXR0cixcXG4rXFx0fSxcXG4rXFx0W0lPUklOR19PUF9GTElTVFhBVFRSXSA9IHtcXG4rXFx0XFx0Lm5lZWRzX2ZpbGVcXHRcXHQ9IDEsXFxuK1xcdFxcdC5wcmVwXFx0XFx0XFx0PSBpb19mbGlzdHhhdHRyX3ByZXAsXFxuK1xcdFxcdC5pc3N1ZVxcdFxcdFxcdD0gaW9fZmxpc3R4YXR0cixcXG4rXFx0fSxcXG4gfTtcXG4gXFxuIGNvbnN0IHN0cnVjdCBpb19jb2xkX2RlZiBpb19jb2xkX2RlZnNbXSA9IHtcXG5AQCAtODQ5LDYgKzg1OSwxNCBAQCBjb25zdCBzdHJ1Y3QgaW9fY29sZF9kZWYgaW9fY29sZF9kZWZzW10gPSB7XFxuIFxcdFxcdC5zcWVfY29weVxcdFxcdD0gaW9fdXJpbmdfY21kX3NxZV9jb3B5LFxcbiBcXHRcXHQuY2xlYW51cFxcdFxcdD0gaW9fdXJpbmdfY21kX2NsZWFudXAsXFxuIFxcdH0sXFxuK1xcdFtJT1JJTkdfT1BfRlJFTU9WRVhBVFRSXSA9IHtcXG4rXFx0XFx0Lm5hbWVcXHRcXHRcXHQ9IFxcXCJGUkVNT1ZFWEFUVFJcXFwiLFxcbitcXHRcXHQuY2xlYW51cFxcdFxcdD0gaW9feGF0dHJfY2xlYW51cCxcXG4rXFx0fSxcXG4rXFx0W0lPUklOR19PUF9GTElTVFhBVFRSXSA9IHtcXG4rXFx0XFx0Lm5hbWVcXHRcXHRcXHQ9IFxcXCJGTElTVFhBVFRSXFxcIixcXG4rXFx0XFx0LmNsZWFudXBcXHRcXHQ9IGlvX3hhdHRyX2NsZWFudXAsXFxuK1xcdH0sXFxuIH07XFxuIFxcbiBjb25zdCBjaGFyICppb191cmluZ19nZXRfb3Bjb2RlKHU4IG9wY29kZSlcXG5kaWZmIC0tZ2l0IGEvaW9fdXJpbmcveGF0dHIuYyBiL2lvX3VyaW5nL3hhdHRyLmNcXG5pbmRleCA1MzAzZGYzZjI0N2Y0Yi4uOWI0MTBmOTFlZjQzNzggMTAwNjQ0XFxuLS0tIGEvaW9fdXJpbmcveGF0dHIuY1xcbisrKyBiL2lvX3VyaW5nL3hhdHRyLmNcXG5AQCAtMTk1LDMgKzE5NSw3NyBAQCBpbnQgaW9fc2V0eGF0dHIoc3RydWN0IGlvX2tpb2NiICpyZXEsIHVuc2lnbmVkIGludCBpc3N1ZV9mbGFncylcXG4gXFx0aW9feGF0dHJfZmluaXNoKHJlcSwgcmV0KTtcXG4gXFx0cmV0dXJuIElPVV9DT01QTEVURTtcXG4gfVxcbitcXG4raW50IGlvX2ZyZW1vdmV4YXR0cl9wcmVwKHN0cnVjdCBpb19raW9jYiAqcmVxLCBjb25zdCBzdHJ1Y3QgaW9fdXJpbmdfc3FlICpzcWUpXFxuK3tcXG4rXFx0c3RydWN0IGlvX3hhdHRyICppeCA9IGlvX2tpb2NiX3RvX2NtZChyZXEsIHN0cnVjdCBpb194YXR0cik7XFxuK1xcdGNvbnN0IGNoYXIgX191c2VyICpuYW1lO1xcbitcXHRpbnQgcmV0O1xcbitcXG4rXFx0SU5JVF9ERUxBWUVEX0ZJTEVOQU1FKFxcdTAwMjZpeC1cXHUwMDNlZmlsZW5hbWUpO1xcbitcXHRuYW1lID0gdTY0X3RvX3VzZXJfcHRyKFJFQURfT05DRShzcWUtXFx1MDAzZWFkZHIpKTtcXG4rXFxuK1xcdGlmIChSRUFEX09OQ0Uoc3FlLVxcdTAwM2VhZGRyMikgfHwgUkVBRF9PTkNFKHNxZS1cXHUwMDNlbGVuKSB8fCBSRUFEX09OQ0Uoc3FlLVxcdTAwM2V4YXR0cl9mbGFncykpXFxuK1xcdFxcdHJldHVybiAtRUlOVkFMO1xcbitcXG4rXFx0aXgtXFx1MDAzZWN0eC5rbmFtZSA9IGttYWxsb2Nfb2JqKCppeC1cXHUwMDNlY3R4LmtuYW1lKTtcXG4rXFx0aWYgKCFpeC1cXHUwMDNlY3R4LmtuYW1lKVxcbitcXHRcXHRyZXR1cm4gLUVOT01FTTtcXG4rXFxuK1xcdHJldCA9IGltcG9ydF94YXR0cl9uYW1lKGl4LVxcdTAwM2VjdHgua25hbWUsIG5hbWUpO1xcbitcXHRpZiAocmV0KSB7XFxuK1xcdFxcdGtmcmVlKGl4LVxcdTAwM2VjdHgua25hbWUpO1xcbitcXHRcXHRyZXR1cm4gcmV0O1xcbitcXHR9XFxuK1xcbitcXHRyZXEtXFx1MDAzZWZsYWdzIHw9IFJFUV9GX05FRURfQ0xFQU5VUDtcXG4rXFx0cmVxLVxcdTAwM2VmbGFncyB8PSBSRVFfRl9GT1JDRV9BU1lOQztcXG4rXFx0cmV0dXJuIDA7XFxuK31cXG4rXFxuK2ludCBpb19mcmVtb3ZleGF0dHIoc3RydWN0IGlvX2tpb2NiICpyZXEsIHVuc2lnbmVkIGludCBpc3N1ZV9mbGFncylcXG4re1xcbitcXHRzdHJ1Y3QgaW9feGF0dHIgKml4ID0gaW9fa2lvY2JfdG9fY21kKHJlcSwgc3RydWN0IGlvX3hhdHRyKTtcXG4rXFx0aW50IHJldDtcXG4rXFxuK1xcdFdBUk5fT05fT05DRShpc3N1ZV9mbGFncyBcXHUwMDI2IElPX1VSSU5HX0ZfTk9OQkxPQ0spO1xcbitcXG4rXFx0cmV0ID0gZmlsZV9yZW1vdmV4YXR0cihyZXEtXFx1MDAzZWZpbGUsIGl4LVxcdTAwM2VjdHgua25hbWUpO1xcbitcXHRpb194YXR0cl9maW5pc2gocmVxLCByZXQpO1xcbitcXHRyZXR1cm4gSU9VX0NPTVBMRVRFO1xcbit9XFxuK1xcbitpbnQgaW9fZmxpc3R4YXR0cl9wcmVwKHN0cnVjdCBpb19raW9jYiAqcmVxLCBjb25zdCBzdHJ1Y3QgaW9fdXJpbmdfc3FlICpzcWUpXFxuK3tcXG4rXFx0c3RydWN0IGlvX3hhdHRyICppeCA9IGlvX2tpb2NiX3RvX2NtZChyZXEsIHN0cnVjdCBpb194YXR0cik7XFxuK1xcbitcXHRJTklUX0RFTEFZRURfRklMRU5BTUUoXFx1MDAyNml4LVxcdTAwM2VmaWxlbmFtZSk7XFxuK1xcdGl4LVxcdTAwM2VjdHgua25hbWUgPSBOVUxMO1xcbitcXHRpeC1cXHUwMDNlY3R4Lmt2YWx1ZSA9IE5VTEw7XFxuK1xcbitcXHRpZiAoUkVBRF9PTkNFKHNxZS1cXHUwMDNlYWRkcikpXFxuK1xcdFxcdHJldHVybiAtRUlOVkFMO1xcbitcXG4rXFx0aXgtXFx1MDAzZWN0eC52YWx1ZSA9IHU2NF90b191c2VyX3B0cihSRUFEX09OQ0Uoc3FlLVxcdTAwM2VhZGRyMikpO1xcbitcXHRpeC1cXHUwMDNlY3R4LnNpemUgPSBSRUFEX09OQ0Uoc3FlLVxcdTAwM2VsZW4pO1xcbitcXHRpeC1cXHUwMDNlY3R4LmZsYWdzID0gUkVBRF9PTkNFKHNxZS1cXHUwMDNleGF0dHJfZmxhZ3MpO1xcbitcXG4rXFx0aWYgKGl4LVxcdTAwM2VjdHguZmxhZ3MpXFxuK1xcdFxcdHJldHVybiAtRUlOVkFMO1xcbitcXG4rXFx0cmVxLVxcdTAwM2VmbGFncyB8PSBSRVFfRl9ORUVEX0NMRUFOVVA7XFxuK1xcdHJlcS1cXHUwMDNlZmxhZ3MgfD0gUkVRX0ZfRk9SQ0VfQVNZTkM7XFxuK1xcdHJldHVybiAwO1xcbit9XFxuK1xcbitpbnQgaW9fZmxpc3R4YXR0cihzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgdW5zaWduZWQgaW50IGlzc3VlX2ZsYWdzKVxcbit7XFxuK1xcdHN0cnVjdCBpb194YXR0ciAqaXggPSBpb19raW9jYl90b19jbWQocmVxLCBzdHJ1Y3QgaW9feGF0dHIpO1xcbitcXHRpbnQgcmV0O1xcbitcXG4rXFx0V0FSTl9PTl9PTkNFKGlzc3VlX2ZsYWdzIFxcdTAwMjYgSU9fVVJJTkdfRl9OT05CTE9DSyk7XFxuK1xcbitcXHRyZXQgPSBmaWxlX2xpc3R4YXR0cihyZXEtXFx1MDAzZWZpbGUsIGl4LVxcdTAwM2VjdHgudmFsdWUsIGl4LVxcdTAwM2VjdHguc2l6ZSk7XFxuK1xcdGlvX3hhdHRyX2ZpbmlzaChyZXEsIHJldCk7XFxuK1xcdHJldHVybiBJT1VfQ09NUExFVEU7XFxuK31cXG5kaWZmIC0tZ2l0IGEvaW9fdXJpbmcveGF0dHIuaCBiL2lvX3VyaW5nL3hhdHRyLmhcXG5pbmRleCA5YjQ1OWQyYWU5MGM1YS4uZDI0ODdiNDlhNWQyMWEgMTAwNjQ0XFxuLS0tIGEvaW9fdXJpbmcveGF0dHIuaFxcbisrKyBiL2lvX3VyaW5nL3hhdHRyLmhcXG5AQCAtMTMsMyArMTMsOSBAQCBpbnQgaW9fZmdldHhhdHRyKHN0cnVjdCBpb19raW9jYiAqcmVxLCB1bnNpZ25lZCBpbnQgaXNzdWVfZmxhZ3MpO1xcbiBcXG4gaW50IGlvX2dldHhhdHRyX3ByZXAoc3RydWN0IGlvX2tpb2NiICpyZXEsIGNvbnN0IHN0cnVjdCBpb191cmluZ19zcWUgKnNxZSk7XFxuIGludCBpb19nZXR4YXR0cihzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgdW5zaWduZWQgaW50IGlzc3VlX2ZsYWdzKTtcXG4rXFxuK2ludCBpb19mcmVtb3ZleGF0dHJfcHJlcChzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgY29uc3Qgc3RydWN0IGlvX3VyaW5nX3NxZSAqc3FlKTtcXG4raW50IGlvX2ZyZW1vdmV4YXR0cihzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgdW5zaWduZWQgaW50IGlzc3VlX2ZsYWdzKTtcXG4rXFxuK2ludCBpb19mbGlzdHhhdHRyX3ByZXAoc3RydWN0IGlvX2tpb2NiICpyZXEsIGNvbnN0IHN0cnVjdCBpb191cmluZ19zcWUgKnNxZSk7XFxuK2ludCBpb19mbGlzdHhhdHRyKHN0cnVjdCBpb19raW9jYiAqcmVxLCB1bnNpZ25lZCBpbnQgaXNzdWVfZmxhZ3MpO1xcbmRpZmYgLS1naXQgYS90b29scy9pbmNsdWRlL3VhcGkvbGludXgvaW9fdXJpbmcuaCBiL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oXFxuaW5kZXggZjFjMTZmODE3NzQyMDAuLjc5YmY3YzIyMDA5ZGJiIDEwMDY0NFxcbi0tLSBhL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oXFxuKysrIGIvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2lvX3VyaW5nLmhcXG5AQCAtMjUzLDYgKzI1MywxOSBAQCBlbnVtIGlvX3VyaW5nX29wIHtcXG4gXFx0SU9SSU5HX09QX0ZVVEVYX1dBSVQsXFxuIFxcdElPUklOR19PUF9GVVRFWF9XQUtFLFxcbiBcXHRJT1JJTkdfT1BfRlVURVhfV0FJVFYsXFxuK1xcdElPUklOR19PUF9GSVhFRF9GRF9JTlNUQUxMLFxcbitcXHRJT1JJTkdfT1BfRlRSVU5DQVRFLFxcbitcXHRJT1JJTkdfT1BfQklORCxcXG4rXFx0SU9SSU5HX09QX0xJU1RFTixcXG4rXFx0SU9SSU5HX09QX1JFQ1ZfWkMsXFxuK1xcdElPUklOR19PUF9FUE9MTF9XQUlULFxcbitcXHRJT1JJTkdfT1BfUkVBRFZfRklYRUQsXFxuK1xcdElPUklOR19PUF9XUklURVZfRklYRUQsXFxuK1xcdElPUklOR19PUF9QSVBFLFxcbitcXHRJT1JJTkdfT1BfTk9QMTI4LFxcbitcXHRJT1JJTkdfT1BfVVJJTkdfQ01EMTI4LFxcbitcXHRJT1JJTkdfT1BfRlJFTU9WRVhBVFRSLFxcbitcXHRJT1JJTkdfT1BfRkxJU1RYQVRUUixcXG4gXFxuIFxcdC8qIHRoaXMgZ29lcyBsYXN0LCBvYnZpb3VzbHkgKi9cXG4gXFx0SU9SSU5HX09QX0xBU1QsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDAwOjI3OjI5LjI1MjQ5OTcxMVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjEzMjg5OTE2NDU2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIklPX1VSSU5HXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaW9fZnJlbW92ZXhhdHRyX3ByZXBcIixcbiAgICBcImlvX2ZyZW1vdmV4YXR0clwiLFxuICAgIFwiaW9fZmxpc3R4YXR0cl9wcmVwXCIsXG4gICAgXCJpb19mbGlzdHhhdHRyXCIsXG4gICAgXCJmaWxlX2xpc3R4YXR0clwiLFxuICAgIFwiZmlsZV9yZW1vdmV4YXR0clwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgbmV3IGlvX3VyaW5nIG9wY29kZXMgZm9yIGZyZW1vdmV4YXR0ciBhbmQgZmxpc3R4YXR0ciwgd2hpY2ggYXJlIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgaW9fdXJpbmdfZW50ZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNzczNzQ4Y2I4MjE3MTE2NTAyNzc1NjIxZjMxY2NhODIwOTQ5MjUzYlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDIyIDAwOjI3OjI2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMvaW50ZXJuYWwuaCBiL2ZzL2ludGVybmFsLmhcbmluZGV4IDM1NWQ5M2Y5MjIwODYxLi5lZTg2YjI0ZGI3OWFkMiAxMDA2NDRcbi0tLSBhL2ZzL2ludGVybmFsLmhcbisrKyBiL2ZzL2ludGVybmFsLmhcbkBAIC0yOTcsNiArMjk3LDggQEAgaW50IGZpbGVuYW1lX3NldHhhdHRyKGludCBkZmQsIHN0cnVjdCBmaWxlbmFtZSAqZmlsZW5hbWUsXG4gXHRcdCAgICAgIHVuc2lnbmVkIGludCBsb29rdXBfZmxhZ3MsIHN0cnVjdCBrZXJuZWxfeGF0dHJfY3R4ICpjdHgpO1xuIGludCBzZXR4YXR0cl9jb3B5KGNvbnN0IGNoYXIgX191c2VyICpuYW1lLCBzdHJ1Y3Qga2VybmVsX3hhdHRyX2N0eCAqY3R4KTtcbiBpbnQgaW1wb3J0X3hhdHRyX25hbWUoc3RydWN0IHhhdHRyX25hbWUgKmtuYW1lLCBjb25zdCBjaGFyIF9fdXNlciAqbmFtZSk7XG4rc3NpemVfdCBmaWxlX2xpc3R4YXR0cihzdHJ1Y3QgZmlsZSAqZiwgY2hhciBfX3VzZXIgKmxpc3QsIHNpemVfdCBzaXplKTtcbitpbnQgZmlsZV9yZW1vdmV4YXR0cihzdHJ1Y3QgZmlsZSAqZiwgc3RydWN0IHhhdHRyX25hbWUgKmtuYW1lKTtcbiBcbiBpbnQgbWF5X3dyaXRlX3hhdHRyKHN0cnVjdCBtbnRfaWRtYXAgKmlkbWFwLCBzdHJ1Y3QgaW5vZGUgKmlub2RlKTtcbiBcbmRpZmYgLS1naXQgYS9mcy94YXR0ci5jIGIvZnMveGF0dHIuY1xuaW5kZXggZDU4OTc5MTE1MjAwNzUuLmEzYTcyNDE4NDZjMzEzIDEwMDY0NFxuLS0tIGEvZnMveGF0dHIuY1xuKysrIGIvZnMveGF0dHIuY1xuQEAgLTk1MywxNyArOTUzLDE1IEBAIGxpc3R4YXR0cihzdHJ1Y3QgZGVudHJ5ICpkLCBjaGFyIF9fdXNlciAqbGlzdCwgc2l6ZV90IHNpemUpXG4gXHRyZXR1cm4gZXJyb3I7XG4gfVxuIFxuLXN0YXRpY1xuIHNzaXplX3QgZmlsZV9saXN0eGF0dHIoc3RydWN0IGZpbGUgKmYsIGNoYXIgX191c2VyICpsaXN0LCBzaXplX3Qgc2l6ZSlcbiB7XG4gXHRhdWRpdF9maWxlKGYpO1xuIFx0cmV0dXJuIGxpc3R4YXR0cihmLVx1MDAzZWZfcGF0aC5kZW50cnksIGxpc3QsIHNpemUpO1xuIH1cbiBcbi1zdGF0aWNcbi1zc2l6ZV90IGZpbGVuYW1lX2xpc3R4YXR0cihpbnQgZGZkLCBzdHJ1Y3QgZmlsZW5hbWUgKmZpbGVuYW1lLFxuLVx0XHRcdCAgIHVuc2lnbmVkIGludCBsb29rdXBfZmxhZ3MsXG4tXHRcdFx0ICAgY2hhciBfX3VzZXIgKmxpc3QsIHNpemVfdCBzaXplKVxuK3N0YXRpYyBzc2l6ZV90IGZpbGVuYW1lX2xpc3R4YXR0cihpbnQgZGZkLCBzdHJ1Y3QgZmlsZW5hbWUgKmZpbGVuYW1lLFxuK1x0XHRcdFx0ICB1bnNpZ25lZCBpbnQgbG9va3VwX2ZsYWdzLFxuK1x0XHRcdFx0ICBjaGFyIF9fdXNlciAqbGlzdCwgc2l6ZV90IHNpemUpXG4ge1xuIFx0c3RydWN0IHBhdGggcGF0aDtcbiBcdHNzaXplX3QgZXJyb3I7XG5AQCAtMTAzNiw3ICsxMDM0LDcgQEAgcmVtb3ZleGF0dHIoc3RydWN0IG1udF9pZG1hcCAqaWRtYXAsIHN0cnVjdCBkZW50cnkgKmQsIGNvbnN0IGNoYXIgKm5hbWUpXG4gXHRyZXR1cm4gdmZzX3JlbW92ZXhhdHRyKGlkbWFwLCBkLCBuYW1lKTtcbiB9XG4gXG4tc3RhdGljIGludCBmaWxlX3JlbW92ZXhhdHRyKHN0cnVjdCBmaWxlICpmLCBzdHJ1Y3QgeGF0dHJfbmFtZSAqa25hbWUpXG4raW50IGZpbGVfcmVtb3ZleGF0dHIoc3RydWN0IGZpbGUgKmYsIHN0cnVjdCB4YXR0cl9uYW1lICprbmFtZSlcbiB7XG4gXHRpbnQgZXJyb3IgPSBtbnRfd2FudF93cml0ZV9maWxlKGYpO1xuIFxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2lvX3VyaW5nLmhcbmluZGV4IDkwOWZiN2FlYTYzOGViLi44MDVmMWUzMWY0OTI1MSAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oXG4rKysgYi9pbmNsdWRlL3VhcGkvbGludXgvaW9fdXJpbmcuaFxuQEAgLTMxOCw2ICszMTgsOCBAQCBlbnVtIGlvX3VyaW5nX29wIHtcbiBcdElPUklOR19PUF9QSVBFLFxuIFx0SU9SSU5HX09QX05PUDEyOCxcbiBcdElPUklOR19PUF9VUklOR19DTUQxMjgsXG4rXHRJT1JJTkdfT1BfRlJFTU9WRVhBVFRSLFxuK1x0SU9SSU5HX09QX0ZMSVNUWEFUVFIsXG4gXG4gXHQvKiB0aGlzIGdvZXMgbGFzdCwgb2J2aW91c2x5ICovXG4gXHRJT1JJTkdfT1BfTEFTVCxcbmRpZmYgLS1naXQgYS9pb191cmluZy9vcGRlZi5jIGIvaW9fdXJpbmcvb3BkZWYuY1xuaW5kZXggNGU1OGViMTM0NGVhYTMuLjI1ZDkyMjlkOGZjMDAyIDEwMDY0NFxuLS0tIGEvaW9fdXJpbmcvb3BkZWYuY1xuKysrIGIvaW9fdXJpbmcvb3BkZWYuY1xuQEAgLTU5MSw2ICs1OTEsMTYgQEAgY29uc3Qgc3RydWN0IGlvX2lzc3VlX2RlZiBpb19pc3N1ZV9kZWZzW10gPSB7XG4gXHRcdC5wcmVwXHRcdFx0PSBpb191cmluZ19jbWRfcHJlcCxcbiBcdFx0Lmlzc3VlXHRcdFx0PSBpb191cmluZ19jbWQsXG4gXHR9LFxuK1x0W0lPUklOR19PUF9GUkVNT1ZFWEFUVFJdID0ge1xuK1x0XHQubmVlZHNfZmlsZVx0XHQ9IDEsXG4rXHRcdC5wcmVwXHRcdFx0PSBpb19mcmVtb3ZleGF0dHJfcHJlcCxcbitcdFx0Lmlzc3VlXHRcdFx0PSBpb19mcmVtb3ZleGF0dHIsXG4rXHR9LFxuK1x0W0lPUklOR19PUF9GTElTVFhBVFRSXSA9IHtcbitcdFx0Lm5lZWRzX2ZpbGVcdFx0PSAxLFxuK1x0XHQucHJlcFx0XHRcdD0gaW9fZmxpc3R4YXR0cl9wcmVwLFxuK1x0XHQuaXNzdWVcdFx0XHQ9IGlvX2ZsaXN0eGF0dHIsXG4rXHR9LFxuIH07XG4gXG4gY29uc3Qgc3RydWN0IGlvX2NvbGRfZGVmIGlvX2NvbGRfZGVmc1tdID0ge1xuQEAgLTg0OSw2ICs4NTksMTQgQEAgY29uc3Qgc3RydWN0IGlvX2NvbGRfZGVmIGlvX2NvbGRfZGVmc1tdID0ge1xuIFx0XHQuc3FlX2NvcHlcdFx0PSBpb191cmluZ19jbWRfc3FlX2NvcHksXG4gXHRcdC5jbGVhbnVwXHRcdD0gaW9fdXJpbmdfY21kX2NsZWFudXAsXG4gXHR9LFxuK1x0W0lPUklOR19PUF9GUkVNT1ZFWEFUVFJdID0ge1xuK1x0XHQubmFtZVx0XHRcdD0gXCJGUkVNT1ZFWEFUVFJcIixcbitcdFx0LmNsZWFudXBcdFx0PSBpb194YXR0cl9jbGVhbnVwLFxuK1x0fSxcbitcdFtJT1JJTkdfT1BfRkxJU1RYQVRUUl0gPSB7XG4rXHRcdC5uYW1lXHRcdFx0PSBcIkZMSVNUWEFUVFJcIixcbitcdFx0LmNsZWFudXBcdFx0PSBpb194YXR0cl9jbGVhbnVwLFxuK1x0fSxcbiB9O1xuIFxuIGNvbnN0IGNoYXIgKmlvX3VyaW5nX2dldF9vcGNvZGUodTggb3Bjb2RlKVxuZGlmZiAtLWdpdCBhL2lvX3VyaW5nL3hhdHRyLmMgYi9pb191cmluZy94YXR0ci5jXG5pbmRleCA1MzAzZGYzZjI0N2Y0Yi4uOWI0MTBmOTFlZjQzNzggMTAwNjQ0XG4tLS0gYS9pb191cmluZy94YXR0ci5jXG4rKysgYi9pb191cmluZy94YXR0ci5jXG5AQCAtMTk1LDMgKzE5NSw3NyBAQCBpbnQgaW9fc2V0eGF0dHIoc3RydWN0IGlvX2tpb2NiICpyZXEsIHVuc2lnbmVkIGludCBpc3N1ZV9mbGFncylcbiBcdGlvX3hhdHRyX2ZpbmlzaChyZXEsIHJldCk7XG4gXHRyZXR1cm4gSU9VX0NPTVBMRVRFO1xuIH1cbitcbitpbnQgaW9fZnJlbW92ZXhhdHRyX3ByZXAoc3RydWN0IGlvX2tpb2NiICpyZXEsIGNvbnN0IHN0cnVjdCBpb191cmluZ19zcWUgKnNxZSlcbit7XG4rXHRzdHJ1Y3QgaW9feGF0dHIgKml4ID0gaW9fa2lvY2JfdG9fY21kKHJlcSwgc3RydWN0IGlvX3hhdHRyKTtcbitcdGNvbnN0IGNoYXIgX191c2VyICpuYW1lO1xuK1x0aW50IHJldDtcbitcbitcdElOSVRfREVMQVlFRF9GSUxFTkFNRShcdTAwMjZpeC1cdTAwM2VmaWxlbmFtZSk7XG4rXHRuYW1lID0gdTY0X3RvX3VzZXJfcHRyKFJFQURfT05DRShzcWUtXHUwMDNlYWRkcikpO1xuK1xuK1x0aWYgKFJFQURfT05DRShzcWUtXHUwMDNlYWRkcjIpIHx8IFJFQURfT05DRShzcWUtXHUwMDNlbGVuKSB8fCBSRUFEX09OQ0Uoc3FlLVx1MDAzZXhhdHRyX2ZsYWdzKSlcbitcdFx0cmV0dXJuIC1FSU5WQUw7XG4rXG4rXHRpeC1cdTAwM2VjdHgua25hbWUgPSBrbWFsbG9jX29iaigqaXgtXHUwMDNlY3R4LmtuYW1lKTtcbitcdGlmICghaXgtXHUwMDNlY3R4LmtuYW1lKVxuK1x0XHRyZXR1cm4gLUVOT01FTTtcbitcbitcdHJldCA9IGltcG9ydF94YXR0cl9uYW1lKGl4LVx1MDAzZWN0eC5rbmFtZSwgbmFtZSk7XG4rXHRpZiAocmV0KSB7XG4rXHRcdGtmcmVlKGl4LVx1MDAzZWN0eC5rbmFtZSk7XG4rXHRcdHJldHVybiByZXQ7XG4rXHR9XG4rXG4rXHRyZXEtXHUwMDNlZmxhZ3MgfD0gUkVRX0ZfTkVFRF9DTEVBTlVQO1xuK1x0cmVxLVx1MDAzZWZsYWdzIHw9IFJFUV9GX0ZPUkNFX0FTWU5DO1xuK1x0cmV0dXJuIDA7XG4rfVxuK1xuK2ludCBpb19mcmVtb3ZleGF0dHIoc3RydWN0IGlvX2tpb2NiICpyZXEsIHVuc2lnbmVkIGludCBpc3N1ZV9mbGFncylcbit7XG4rXHRzdHJ1Y3QgaW9feGF0dHIgKml4ID0gaW9fa2lvY2JfdG9fY21kKHJlcSwgc3RydWN0IGlvX3hhdHRyKTtcbitcdGludCByZXQ7XG4rXG4rXHRXQVJOX09OX09OQ0UoaXNzdWVfZmxhZ3MgXHUwMDI2IElPX1VSSU5HX0ZfTk9OQkxPQ0spO1xuK1xuK1x0cmV0ID0gZmlsZV9yZW1vdmV4YXR0cihyZXEtXHUwMDNlZmlsZSwgaXgtXHUwMDNlY3R4LmtuYW1lKTtcbitcdGlvX3hhdHRyX2ZpbmlzaChyZXEsIHJldCk7XG4rXHRyZXR1cm4gSU9VX0NPTVBMRVRFO1xuK31cbitcbitpbnQgaW9fZmxpc3R4YXR0cl9wcmVwKHN0cnVjdCBpb19raW9jYiAqcmVxLCBjb25zdCBzdHJ1Y3QgaW9fdXJpbmdfc3FlICpzcWUpXG4re1xuK1x0c3RydWN0IGlvX3hhdHRyICppeCA9IGlvX2tpb2NiX3RvX2NtZChyZXEsIHN0cnVjdCBpb194YXR0cik7XG4rXG4rXHRJTklUX0RFTEFZRURfRklMRU5BTUUoXHUwMDI2aXgtXHUwMDNlZmlsZW5hbWUpO1xuK1x0aXgtXHUwMDNlY3R4LmtuYW1lID0gTlVMTDtcbitcdGl4LVx1MDAzZWN0eC5rdmFsdWUgPSBOVUxMO1xuK1xuK1x0aWYgKFJFQURfT05DRShzcWUtXHUwMDNlYWRkcikpXG4rXHRcdHJldHVybiAtRUlOVkFMO1xuK1xuK1x0aXgtXHUwMDNlY3R4LnZhbHVlID0gdTY0X3RvX3VzZXJfcHRyKFJFQURfT05DRShzcWUtXHUwMDNlYWRkcjIpKTtcbitcdGl4LVx1MDAzZWN0eC5zaXplID0gUkVBRF9PTkNFKHNxZS1cdTAwM2VsZW4pO1xuK1x0aXgtXHUwMDNlY3R4LmZsYWdzID0gUkVBRF9PTkNFKHNxZS1cdTAwM2V4YXR0cl9mbGFncyk7XG4rXG4rXHRpZiAoaXgtXHUwMDNlY3R4LmZsYWdzKVxuK1x0XHRyZXR1cm4gLUVJTlZBTDtcbitcbitcdHJlcS1cdTAwM2VmbGFncyB8PSBSRVFfRl9ORUVEX0NMRUFOVVA7XG4rXHRyZXEtXHUwMDNlZmxhZ3MgfD0gUkVRX0ZfRk9SQ0VfQVNZTkM7XG4rXHRyZXR1cm4gMDtcbit9XG4rXG4raW50IGlvX2ZsaXN0eGF0dHIoc3RydWN0IGlvX2tpb2NiICpyZXEsIHVuc2lnbmVkIGludCBpc3N1ZV9mbGFncylcbit7XG4rXHRzdHJ1Y3QgaW9feGF0dHIgKml4ID0gaW9fa2lvY2JfdG9fY21kKHJlcSwgc3RydWN0IGlvX3hhdHRyKTtcbitcdGludCByZXQ7XG4rXG4rXHRXQVJOX09OX09OQ0UoaXNzdWVfZmxhZ3MgXHUwMDI2IElPX1VSSU5HX0ZfTk9OQkxPQ0spO1xuK1xuK1x0cmV0ID0gZmlsZV9saXN0eGF0dHIocmVxLVx1MDAzZWZpbGUsIGl4LVx1MDAzZWN0eC52YWx1ZSwgaXgtXHUwMDNlY3R4LnNpemUpO1xuK1x0aW9feGF0dHJfZmluaXNoKHJlcSwgcmV0KTtcbitcdHJldHVybiBJT1VfQ09NUExFVEU7XG4rfVxuZGlmZiAtLWdpdCBhL2lvX3VyaW5nL3hhdHRyLmggYi9pb191cmluZy94YXR0ci5oXG5pbmRleCA5YjQ1OWQyYWU5MGM1YS4uZDI0ODdiNDlhNWQyMWEgMTAwNjQ0XG4tLS0gYS9pb191cmluZy94YXR0ci5oXG4rKysgYi9pb191cmluZy94YXR0ci5oXG5AQCAtMTMsMyArMTMsOSBAQCBpbnQgaW9fZmdldHhhdHRyKHN0cnVjdCBpb19raW9jYiAqcmVxLCB1bnNpZ25lZCBpbnQgaXNzdWVfZmxhZ3MpO1xuIFxuIGludCBpb19nZXR4YXR0cl9wcmVwKHN0cnVjdCBpb19raW9jYiAqcmVxLCBjb25zdCBzdHJ1Y3QgaW9fdXJpbmdfc3FlICpzcWUpO1xuIGludCBpb19nZXR4YXR0cihzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgdW5zaWduZWQgaW50IGlzc3VlX2ZsYWdzKTtcbitcbitpbnQgaW9fZnJlbW92ZXhhdHRyX3ByZXAoc3RydWN0IGlvX2tpb2NiICpyZXEsIGNvbnN0IHN0cnVjdCBpb191cmluZ19zcWUgKnNxZSk7XG4raW50IGlvX2ZyZW1vdmV4YXR0cihzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgdW5zaWduZWQgaW50IGlzc3VlX2ZsYWdzKTtcbitcbitpbnQgaW9fZmxpc3R4YXR0cl9wcmVwKHN0cnVjdCBpb19raW9jYiAqcmVxLCBjb25zdCBzdHJ1Y3QgaW9fdXJpbmdfc3FlICpzcWUpO1xuK2ludCBpb19mbGlzdHhhdHRyKHN0cnVjdCBpb19raW9jYiAqcmVxLCB1bnNpZ25lZCBpbnQgaXNzdWVfZmxhZ3MpO1xuZGlmZiAtLWdpdCBhL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oIGIvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2lvX3VyaW5nLmhcbmluZGV4IGYxYzE2ZjgxNzc0MjAwLi43OWJmN2MyMjAwOWRiYiAxMDA2NDRcbi0tLSBhL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oXG4rKysgYi90b29scy9pbmNsdWRlL3VhcGkvbGludXgvaW9fdXJpbmcuaFxuQEAgLTI1Myw2ICsyNTMsMTkgQEAgZW51bSBpb191cmluZ19vcCB7XG4gXHRJT1JJTkdfT1BfRlVURVhfV0FJVCxcbiBcdElPUklOR19PUF9GVVRFWF9XQUtFLFxuIFx0SU9SSU5HX09QX0ZVVEVYX1dBSVRWLFxuK1x0SU9SSU5HX09QX0ZJWEVEX0ZEX0lOU1RBTEwsXG4rXHRJT1JJTkdfT1BfRlRSVU5DQVRFLFxuK1x0SU9SSU5HX09QX0JJTkQsXG4rXHRJT1JJTkdfT1BfTElTVEVOLFxuK1x0SU9SSU5HX09QX1JFQ1ZfWkMsXG4rXHRJT1JJTkdfT1BfRVBPTExfV0FJVCxcbitcdElPUklOR19PUF9SRUFEVl9GSVhFRCxcbitcdElPUklOR19PUF9XUklURVZfRklYRUQsXG4rXHRJT1JJTkdfT1BfUElQRSxcbitcdElPUklOR19PUF9OT1AxMjgsXG4rXHRJT1JJTkdfT1BfVVJJTkdfQ01EMTI4LFxuK1x0SU9SSU5HX09QX0ZSRU1PVkVYQVRUUixcbitcdElPUklOR19PUF9GTElTVFhBVFRSLFxuIFxuIFx0LyogdGhpcyBnb2VzIGxhc3QsIG9idmlvdXNseSAqL1xuIFx0SU9SSU5HX09QX0xBU1QsXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwMDoyNzoyOS4yNTI1MDI1MzFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MTIzNDA4Mzg2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIGlvX3VyaW5nIFhhdHRyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQgc2VlbXMgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZC4gVGhleSdyZSBhZGRpbmcgc3VwcG9ydCBmb3IgYElPUklOR19PUF9GUkVNT1ZFWEFUVFJgIGFuZCBgSU9SSU5HX09QX0ZMSVNUWEFUVFJgIHRvIGlvX3VyaW5nLiBGdW5jdGlvbmFsbHksIHRoaXMgaXMgYSBzaWduaWZpY2FudCBhZGRpdGlvbiwgaW50cm9kdWNpbmcgbmV3IG9wY29kZXMsIHNvIEkgbmVlZCB0byBiZSB0aG9yb3VnaC5cblxuVGhlIHBhdGNoIGl0c2VsZiB0b3VjaGVzIGEgZmFpciBudW1iZXIgb2YgZmlsZXM6IGBmcy9pbnRlcm5hbC5oYCBhbmQgYGZzL3hhdHRyLmNgIGFyZSBtb2RpZmllZCwgbGlrZWx5IHRvIGV4cG9zZSB0aGUga2VybmVsLWxldmVsIGZ1bmN0aW9ucyBgZmlsZV9saXN0eGF0dHJgIGFuZCBgZmlsZV9yZW1vdmV4YXR0cmAuIEl0IGxvb2tzIGxpa2UgdGhlIGBpbmNsdWRlL3VhcGkvbGludXgvaW9fdXJpbmcuaGAgaGVhZGVyIGdldHMgdGhlIG5ldyBvcGNvZGVzIGRlZmluZWQgYW5kIHRoZSBpbXBsZW1lbnRhdGlvbiB3aXRoaW4gYGlvX3VyaW5nL29wZGVmLmNgLiBUaGUgY29yZSBmdW5jdGlvbmFsaXR5IHJlc2lkZXMgaW4gYGlvX3VyaW5nL3hhdHRyLmNgIHdpdGggdGhlIHByZXAgYW5kIGV4ZWN1dGlvbiBmdW5jdGlvbnM6IGBpb19mcmVtb3ZleGF0dHJfcHJlcGAsIGBpb19mcmVtb3ZleGF0dHJgLCBgaW9fZmxpc3R4YXR0cl9wcmVwYCwgYW5kIGBpb19mbGlzdHhhdHRyYC4gIE9mIGNvdXJzZSwgdGhlcmUncyBhIGNvcnJlc3BvbmRpbmcgYGlvX3VyaW5nL3hhdHRyLmhgIHRvIGRlY2xhcmUgdGhlbS4gQW5kIGZpbmFsbHksIHRoZSBgdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2lvX3VyaW5nLmhgIGhhcyBiZWVuIHN5bmNlZCB0byBzdGF5IGNvbnNpc3RlbnQuXG5cbkdpdmVuIHRoYXQgdGhpcyBpcyBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IGV4cGFuZHMgdGhlIGlvX3VyaW5nIG9wY29kZSBzZXQsIGZ1enppbmcgaXMgYWJzb2x1dGVseSBlc3NlbnRpYWwuIFRoYXQncyBhIGdpdmVuLlxuXG5JIG5lZWQgdG8gY29uZmlybSB0aGUgY29uZmlndXJhdGlvbiBvcHRpb24gaXMgY29ycmVjdC4gVGhlIHRleHQgbWVudGlvbnMgYENPTkZJR19JT19VUklOR2AsIGFuZCB0aGF0IG1ha2VzIHNlbnNlLCBidXQgSSdsbCB1c2UgYGdyZXBwZXJgIHRvIGNvbmZpcm0gdGhhdCBgSU9fVVJJTkdgIGlzIGRlZmluZWQgd2l0aGluIHRoZSBLY29uZmlnIGFuZCBpcywgaW4gZmFjdCwgdGhlIGNvcnJlY3QgZmxhZy5cblxuQmV5b25kIHRoYXQsIHRoZSBjcml0aWNhbCBmdW5jdGlvbnMgdG8gZm9jdXMgb24gZm9yIHRlc3Rpbmcgd2lsbCBiZSB0aG9zZSBpbnZvbHZlZCBpbiBwcmVwYXJpbmcgYW5kIGV4ZWN1dGluZyB0aGUgeGF0dHIgb3BlcmF0aW9ucywgYW5kIHRoZSBrZXJuZWwgZnVuY3Rpb25zIHRoZXkgaW50ZXJhY3Qgd2l0aCwgc286IGBpb19mcmVtb3ZleGF0dHJfcHJlcGAsIGBpb19mcmVtb3ZleGF0dHJgLCBgaW9fZmxpc3R4YXR0cl9wcmVwYCwgYGlvX2ZsaXN0eGF0dHJgLCBgZmlsZV9saXN0eGF0dHJgLCBhbmQgYGZpbGVfcmVtb3ZleGF0dHJgLiAgSSdsbCB3YW50IHRvIHRhcmdldCB0aGVzZSBleHBsaWNpdGx5IGluIG15IGZ1enppbmcgc3RyYXRlZ3kuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ3MzcsIk91dHB1dFRva2VucyI6MTgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNzAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwMDoyNzozNS4zNzU5MTQwNTdaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjk3NTYyMzQwMiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgSU9fVVJJTkdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiaW5pdC9LY29uZmlnPTE5MDc9Y29uZmlnIEFJT1xcbi0tXFxuaW5pdC9LY29uZmlnLTE5MTQtXFxuaW5pdC9LY29uZmlnOjE5MTU6Y29uZmlnIElPX1VSSU5HXFxuaW5pdC9LY29uZmlnLTE5MTYtXFx0Ym9vbCBcXFwiRW5hYmxlIElPIHVyaW5nIHN1cHBvcnRcXFwiIGlmIEVYUEVSVFxcbi0tXFxuaW5pdC9LY29uZmlnPTE5MjQ9Y29uZmlnIEdDT1ZfUFJPRklMRV9VUklOR1xcbi0tXFxuaW5pdC9LY29uZmlnLTE5MzYtXFxuaW5pdC9LY29uZmlnOjE5Mzc6Y29uZmlnIElPX1VSSU5HX01PQ0tfRklMRVxcbmluaXQvS2NvbmZpZy0xOTM4LVxcdHRyaXN0YXRlIFxcXCJFbmFibGUgaW9fdXJpbmcgbW9jayBmaWxlcyAoRXhwZXJpbWVudGFsKVxcXCIgaWYgRVhQRVJUXFxuLS1cXG5pb191cmluZy9LY29uZmlnLTUtXFxuaW9fdXJpbmcvS2NvbmZpZzo2OmNvbmZpZyBJT19VUklOR19aQ1JYXFxuaW9fdXJpbmcvS2NvbmZpZy03LVxcdGRlZl9ib29sIHlcXG4tLVxcbmlvX3VyaW5nL0tjb25maWctMTItXFxuaW9fdXJpbmcvS2NvbmZpZzoxMzpjb25maWcgSU9fVVJJTkdfQlBGXFxuaW9fdXJpbmcvS2NvbmZpZy0xNC1cXHRkZWZfYm9vbCB5XFxuLS1cXG5pb191cmluZy9LY29uZmlnLTE3LVxcbmlvX3VyaW5nL0tjb25maWc6MTg6Y29uZmlnIElPX1VSSU5HX0JQRl9PUFNcXG5pb191cmluZy9LY29uZmlnLTE5LVxcdGRlZl9ib29sIHlcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDA6Mjc6MzguMzUxNTQ1NzM5WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDEwMzk5MDEwMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIGlvX3VyaW5nIEltcGxlbWVudGF0aW9uIGZvciBFeHRlbmRlZCBBdHRyaWJ1dGUgUmVtb3ZhbCBhbmQgTGlzdGluZyoqXG5cbk9rYXksIHNvIEknbSBmb2N1c2luZyBvbiBhIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24sIGBJT19VUklOR2AsIGZvciB0aGlzIGFuYWx5c2lzLiBNeSBwcmltYXJ5IGludGVyZXN0IGxpZXMgaW4gdGhlIGltcGxlbWVudGF0aW9uIG9mIGV4dGVuZGVkIGF0dHJpYnV0ZSByZW1vdmFsIGFuZCBsaXN0aW5nIHRocm91Z2ggdGhlIGlvX3VyaW5nIGludGVyZmFjZS4gU3BlY2lmaWNhbGx5LCBJJ20gZXhhbWluaW5nIHRoZXNlIGZ1bmN0aW9uczogYGlvX2ZyZW1vdmV4YXR0cl9wcmVwYCwgYGlvX2ZyZW1vdmV4YXR0cmAsIGBpb19mbGlzdHhhdHRyX3ByZXBgLCBhbmQgYGlvX2ZsaXN0eGF0dHJgLlxuXG5JIG5lZWQgdG8gcXVpY2tseSBjb25maXJtIHRoYXQgYElPX1VSSU5HYCBpcyB0aGUgcmVsZXZhbnQgY29uZmlnLiBHaXZlbiB0aGUgbmF0dXJlIG9mIHRoZSBwYXRjaCwgd2hpY2ggaW50cm9kdWNlcyBuZXcgaW9fdXJpbmcgb3Bjb2RlcyBmb3IgYGZyZW1vdmV4YXR0cmAgYW5kIGBmbGlzdHhhdHRyYCwgYWNjZXNzaWJsZSBmcm9tIHVzZXJzcGFjZSB0aHJvdWdoIGBpb191cmluZ19lbnRlcmAsIHRoYXQncyBjZXJ0YWlubHkgdGhlIGNhc2UuIE5vIG5lZWQgdG8gZ2V0IGRpc3RyYWN0ZWQgYnkgYW55IG90aGVyIGNvbmZpZ3VyYXRpb25zLlxuXG5Ob3csIGxldCdzIHByb2NlZWQgd2l0aCBzZXR0aW5nIHRoZSByZXN1bHRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1ODk5LCJPdXRwdXRUb2tlbnMiOjEyNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwMDoyNzo0Mi40NTU1Mzg0ODFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg2ODczMTU3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJT19VUklOR1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImlvX2ZyZW1vdmV4YXR0cl9wcmVwXCIsXG4gICAgXCJpb19mcmVtb3ZleGF0dHJcIixcbiAgICBcImlvX2ZsaXN0eGF0dHJfcHJlcFwiLFxuICAgIFwiaW9fZmxpc3R4YXR0clwiLFxuICAgIFwiZmlsZV9saXN0eGF0dHJcIixcbiAgICBcImZpbGVfcmVtb3ZleGF0dHJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIG5ldyBpb191cmluZyBvcGNvZGVzIGZvciBmcmVtb3ZleGF0dHIgYW5kIGZsaXN0eGF0dHIsIHdoaWNoIGFyZSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIGlvX3VyaW5nX2VudGVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIklPX1VSSU5HXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaW9fZnJlbW92ZXhhdHRyX3ByZXBcIixcbiAgICBcImlvX2ZyZW1vdmV4YXR0clwiLFxuICAgIFwiaW9fZmxpc3R4YXR0cl9wcmVwXCIsXG4gICAgXCJpb19mbGlzdHhhdHRyXCIsXG4gICAgXCJmaWxlX2xpc3R4YXR0clwiLFxuICAgIFwiZmlsZV9yZW1vdmV4YXR0clwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgbmV3IGlvX3VyaW5nIG9wY29kZXMgZm9yIGZyZW1vdmV4YXR0ciBhbmQgZmxpc3R4YXR0ciwgd2hpY2ggYXJlIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgaW9fdXJpbmdfZW50ZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowtq97c[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-21 23:53:54 +0000 UTC FinishedAt: 2026-07-22 00:27:44 +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": "b95f03f04d475aa6719d15a636ddf32222d55657", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IO_URING" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "b95f03f04d475aa6719d15a636ddf32222d55657", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IO_URING" ], "series_id": "bef25c39-3454-4b52-b0c7-a321748bddff" }, "track": "KASAN", "fuzz": { "focus": [ "fs", "io_uring" ], "focus_symbols": [ "io_fremovexattr_prep", "io_fremovexattr", "io_flistxattr_prep", "io_flistxattr", "file_listxattr", "file_removexattr" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db", "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+CgkJCTx0ZD4yMDI2LzA3LzIyIDAwOjI3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lPX1VSSU5HJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aW9fZnJlbW92ZXhhdHRyX3ByZXAmIzM0OywKICAgICYjMzQ7aW9fZnJlbW92ZXhhdHRyJiMzNDssCiAgICAmIzM0O2lvX2ZsaXN0eGF0dHJfcHJlcCYjMzQ7LAogICAgJiMzNDtpb19mbGlzdHhhdHRyJiMzNDssCiAgICAmIzM0O2ZpbGVfbGlzdHhhdHRyJiMzNDssCiAgICAmIzM0O2ZpbGVfcmVtb3ZleGF0dHImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBuZXcgaW9fdXJpbmcgb3Bjb2RlcyBmb3IgZnJlbW92ZXhhdHRyIGFuZCBmbGlzdHhhdHRyLCB3aGljaCBhcmUgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBpb191cmluZ19lbnRlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwMDoyNzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDc3Mzc0OGNiODIxNzExNjUwMjc3NTYyMWYzMWNjYTgyMDk0OTI1M2JcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAyMiAwMDoyNzoyNiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9mcy9pbnRlcm5hbC5oIGIvZnMvaW50ZXJuYWwuaFxuaW5kZXggMzU1ZDkzZjkyMjA4NjEuLmVlODZiMjRkYjc5YWQyIDEwMDY0NFxuLS0tIGEvZnMvaW50ZXJuYWwuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZnMvaW50ZXJuYWwuaFxuQEAgLTI5Nyw2ICYjNDM7Mjk3LDggQEAgaW50IGZpbGVuYW1lX3NldHhhdHRyKGludCBkZmQsIHN0cnVjdCBmaWxlbmFtZSAqZmlsZW5hbWUsXG4gXHRcdCAgICAgIHVuc2lnbmVkIGludCBsb29rdXBfZmxhZ3MsIHN0cnVjdCBrZXJuZWxfeGF0dHJfY3R4ICpjdHgpO1xuIGludCBzZXR4YXR0cl9jb3B5KGNvbnN0IGNoYXIgX191c2VyICpuYW1lLCBzdHJ1Y3Qga2VybmVsX3hhdHRyX2N0eCAqY3R4KTtcbiBpbnQgaW1wb3J0X3hhdHRyX25hbWUoc3RydWN0IHhhdHRyX25hbWUgKmtuYW1lLCBjb25zdCBjaGFyIF9fdXNlciAqbmFtZSk7XG4mIzQzO3NzaXplX3QgZmlsZV9saXN0eGF0dHIoc3RydWN0IGZpbGUgKmYsIGNoYXIgX191c2VyICpsaXN0LCBzaXplX3Qgc2l6ZSk7XG4mIzQzO2ludCBmaWxlX3JlbW92ZXhhdHRyKHN0cnVjdCBmaWxlICpmLCBzdHJ1Y3QgeGF0dHJfbmFtZSAqa25hbWUpO1xuIFxuIGludCBtYXlfd3JpdGVfeGF0dHIoc3RydWN0IG1udF9pZG1hcCAqaWRtYXAsIHN0cnVjdCBpbm9kZSAqaW5vZGUpO1xuIFxuZGlmZiAtLWdpdCBhL2ZzL3hhdHRyLmMgYi9mcy94YXR0ci5jXG5pbmRleCBkNTg5NzkxMTUyMDA3NS4uYTNhNzI0MTg0NmMzMTMgMTAwNjQ0XG4tLS0gYS9mcy94YXR0ci5jXG4mIzQzOyYjNDM7JiM0MzsgYi9mcy94YXR0ci5jXG5AQCAtOTUzLDE3ICYjNDM7OTUzLDE1IEBAIGxpc3R4YXR0cihzdHJ1Y3QgZGVudHJ5ICpkLCBjaGFyIF9fdXNlciAqbGlzdCwgc2l6ZV90IHNpemUpXG4gXHRyZXR1cm4gZXJyb3I7XG4gfVxuIFxuLXN0YXRpY1xuIHNzaXplX3QgZmlsZV9saXN0eGF0dHIoc3RydWN0IGZpbGUgKmYsIGNoYXIgX191c2VyICpsaXN0LCBzaXplX3Qgc2l6ZSlcbiB7XG4gXHRhdWRpdF9maWxlKGYpO1xuIFx0cmV0dXJuIGxpc3R4YXR0cihmLVx1MDAzZWZfcGF0aC5kZW50cnksIGxpc3QsIHNpemUpO1xuIH1cbiBcbi1zdGF0aWNcbi1zc2l6ZV90IGZpbGVuYW1lX2xpc3R4YXR0cihpbnQgZGZkLCBzdHJ1Y3QgZmlsZW5hbWUgKmZpbGVuYW1lLFxuLVx0XHRcdCAgIHVuc2lnbmVkIGludCBsb29rdXBfZmxhZ3MsXG4tXHRcdFx0ICAgY2hhciBfX3VzZXIgKmxpc3QsIHNpemVfdCBzaXplKVxuJiM0MztzdGF0aWMgc3NpemVfdCBmaWxlbmFtZV9saXN0eGF0dHIoaW50IGRmZCwgc3RydWN0IGZpbGVuYW1lICpmaWxlbmFtZSxcbiYjNDM7XHRcdFx0XHQgIHVuc2lnbmVkIGludCBsb29rdXBfZmxhZ3MsXG4mIzQzO1x0XHRcdFx0ICBjaGFyIF9fdXNlciAqbGlzdCwgc2l6ZV90IHNpemUpXG4ge1xuIFx0c3RydWN0IHBhdGggcGF0aDtcbiBcdHNzaXplX3QgZXJyb3I7XG5AQCAtMTAzNiw3ICYjNDM7MTAzNCw3IEBAIHJlbW92ZXhhdHRyKHN0cnVjdCBtbnRfaWRtYXAgKmlkbWFwLCBzdHJ1Y3QgZGVudHJ5ICpkLCBjb25zdCBjaGFyICpuYW1lKVxuIFx0cmV0dXJuIHZmc19yZW1vdmV4YXR0cihpZG1hcCwgZCwgbmFtZSk7XG4gfVxuIFxuLXN0YXRpYyBpbnQgZmlsZV9yZW1vdmV4YXR0cihzdHJ1Y3QgZmlsZSAqZiwgc3RydWN0IHhhdHRyX25hbWUgKmtuYW1lKVxuJiM0MztpbnQgZmlsZV9yZW1vdmV4YXR0cihzdHJ1Y3QgZmlsZSAqZiwgc3RydWN0IHhhdHRyX25hbWUgKmtuYW1lKVxuIHtcbiBcdGludCBlcnJvciA9IG1udF93YW50X3dyaXRlX2ZpbGUoZik7XG4gXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2lvX3VyaW5nLmggYi9pbmNsdWRlL3VhcGkvbGludXgvaW9fdXJpbmcuaFxuaW5kZXggOTA5ZmI3YWVhNjM4ZWIuLjgwNWYxZTMxZjQ5MjUxIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2lvX3VyaW5nLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oXG5AQCAtMzE4LDYgJiM0MzszMTgsOCBAQCBlbnVtIGlvX3VyaW5nX29wIHtcbiBcdElPUklOR19PUF9QSVBFLFxuIFx0SU9SSU5HX09QX05PUDEyOCxcbiBcdElPUklOR19PUF9VUklOR19DTUQxMjgsXG4mIzQzO1x0SU9SSU5HX09QX0ZSRU1PVkVYQVRUUixcbiYjNDM7XHRJT1JJTkdfT1BfRkxJU1RYQVRUUixcbiBcbiBcdC8qIHRoaXMgZ29lcyBsYXN0LCBvYnZpb3VzbHkgKi9cbiBcdElPUklOR19PUF9MQVNULFxuZGlmZiAtLWdpdCBhL2lvX3VyaW5nL29wZGVmLmMgYi9pb191cmluZy9vcGRlZi5jXG5pbmRleCA0ZTU4ZWIxMzQ0ZWFhMy4uMjVkOTIyOWQ4ZmMwMDIgMTAwNjQ0XG4tLS0gYS9pb191cmluZy9vcGRlZi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9pb191cmluZy9vcGRlZi5jXG5AQCAtNTkxLDYgJiM0Mzs1OTEsMTYgQEAgY29uc3Qgc3RydWN0IGlvX2lzc3VlX2RlZiBpb19pc3N1ZV9kZWZzW10gPSB7XG4gXHRcdC5wcmVwXHRcdFx0PSBpb191cmluZ19jbWRfcHJlcCxcbiBcdFx0Lmlzc3VlXHRcdFx0PSBpb191cmluZ19jbWQsXG4gXHR9LFxuJiM0MztcdFtJT1JJTkdfT1BfRlJFTU9WRVhBVFRSXSA9IHtcbiYjNDM7XHRcdC5uZWVkc19maWxlXHRcdD0gMSxcbiYjNDM7XHRcdC5wcmVwXHRcdFx0PSBpb19mcmVtb3ZleGF0dHJfcHJlcCxcbiYjNDM7XHRcdC5pc3N1ZVx0XHRcdD0gaW9fZnJlbW92ZXhhdHRyLFxuJiM0MztcdH0sXG4mIzQzO1x0W0lPUklOR19PUF9GTElTVFhBVFRSXSA9IHtcbiYjNDM7XHRcdC5uZWVkc19maWxlXHRcdD0gMSxcbiYjNDM7XHRcdC5wcmVwXHRcdFx0PSBpb19mbGlzdHhhdHRyX3ByZXAsXG4mIzQzO1x0XHQuaXNzdWVcdFx0XHQ9IGlvX2ZsaXN0eGF0dHIsXG4mIzQzO1x0fSxcbiB9O1xuIFxuIGNvbnN0IHN0cnVjdCBpb19jb2xkX2RlZiBpb19jb2xkX2RlZnNbXSA9IHtcbkBAIC04NDksNiAmIzQzOzg1OSwxNCBAQCBjb25zdCBzdHJ1Y3QgaW9fY29sZF9kZWYgaW9fY29sZF9kZWZzW10gPSB7XG4gXHRcdC5zcWVfY29weVx0XHQ9IGlvX3VyaW5nX2NtZF9zcWVfY29weSxcbiBcdFx0LmNsZWFudXBcdFx0PSBpb191cmluZ19jbWRfY2xlYW51cCxcbiBcdH0sXG4mIzQzO1x0W0lPUklOR19PUF9GUkVNT1ZFWEFUVFJdID0ge1xuJiM0MztcdFx0Lm5hbWVcdFx0XHQ9IFwmIzM0O0ZSRU1PVkVYQVRUUlwmIzM0OyxcbiYjNDM7XHRcdC5jbGVhbnVwXHRcdD0gaW9feGF0dHJfY2xlYW51cCxcbiYjNDM7XHR9LFxuJiM0MztcdFtJT1JJTkdfT1BfRkxJU1RYQVRUUl0gPSB7XG4mIzQzO1x0XHQubmFtZVx0XHRcdD0gXCYjMzQ7RkxJU1RYQVRUUlwmIzM0OyxcbiYjNDM7XHRcdC5jbGVhbnVwXHRcdD0gaW9feGF0dHJfY2xlYW51cCxcbiYjNDM7XHR9LFxuIH07XG4gXG4gY29uc3QgY2hhciAqaW9fdXJpbmdfZ2V0X29wY29kZSh1OCBvcGNvZGUpXG5kaWZmIC0tZ2l0IGEvaW9fdXJpbmcveGF0dHIuYyBiL2lvX3VyaW5nL3hhdHRyLmNcbmluZGV4IDUzMDNkZjNmMjQ3ZjRiLi45YjQxMGY5MWVmNDM3OCAxMDA2NDRcbi0tLSBhL2lvX3VyaW5nL3hhdHRyLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2lvX3VyaW5nL3hhdHRyLmNcbkBAIC0xOTUsMyAmIzQzOzE5NSw3NyBAQCBpbnQgaW9fc2V0eGF0dHIoc3RydWN0IGlvX2tpb2NiICpyZXEsIHVuc2lnbmVkIGludCBpc3N1ZV9mbGFncylcbiBcdGlvX3hhdHRyX2ZpbmlzaChyZXEsIHJldCk7XG4gXHRyZXR1cm4gSU9VX0NPTVBMRVRFO1xuIH1cbiYjNDM7XG4mIzQzO2ludCBpb19mcmVtb3ZleGF0dHJfcHJlcChzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgY29uc3Qgc3RydWN0IGlvX3VyaW5nX3NxZSAqc3FlKVxuJiM0Mzt7XG4mIzQzO1x0c3RydWN0IGlvX3hhdHRyICppeCA9IGlvX2tpb2NiX3RvX2NtZChyZXEsIHN0cnVjdCBpb194YXR0cik7XG4mIzQzO1x0Y29uc3QgY2hhciBfX3VzZXIgKm5hbWU7XG4mIzQzO1x0aW50IHJldDtcbiYjNDM7XG4mIzQzO1x0SU5JVF9ERUxBWUVEX0ZJTEVOQU1FKFx1MDAyNml4LVx1MDAzZWZpbGVuYW1lKTtcbiYjNDM7XHRuYW1lID0gdTY0X3RvX3VzZXJfcHRyKFJFQURfT05DRShzcWUtXHUwMDNlYWRkcikpO1xuJiM0MztcbiYjNDM7XHRpZiAoUkVBRF9PTkNFKHNxZS1cdTAwM2VhZGRyMikgfHwgUkVBRF9PTkNFKHNxZS1cdTAwM2VsZW4pIHx8IFJFQURfT05DRShzcWUtXHUwMDNleGF0dHJfZmxhZ3MpKVxuJiM0MztcdFx0cmV0dXJuIC1FSU5WQUw7XG4mIzQzO1xuJiM0MztcdGl4LVx1MDAzZWN0eC5rbmFtZSA9IGttYWxsb2Nfb2JqKCppeC1cdTAwM2VjdHgua25hbWUpO1xuJiM0MztcdGlmICghaXgtXHUwMDNlY3R4LmtuYW1lKVxuJiM0MztcdFx0cmV0dXJuIC1FTk9NRU07XG4mIzQzO1xuJiM0MztcdHJldCA9IGltcG9ydF94YXR0cl9uYW1lKGl4LVx1MDAzZWN0eC5rbmFtZSwgbmFtZSk7XG4mIzQzO1x0aWYgKHJldCkge1xuJiM0MztcdFx0a2ZyZWUoaXgtXHUwMDNlY3R4LmtuYW1lKTtcbiYjNDM7XHRcdHJldHVybiByZXQ7XG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHRyZXEtXHUwMDNlZmxhZ3MgfD0gUkVRX0ZfTkVFRF9DTEVBTlVQO1xuJiM0MztcdHJlcS1cdTAwM2VmbGFncyB8PSBSRVFfRl9GT1JDRV9BU1lOQztcbiYjNDM7XHRyZXR1cm4gMDtcbiYjNDM7fVxuJiM0MztcbiYjNDM7aW50IGlvX2ZyZW1vdmV4YXR0cihzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgdW5zaWduZWQgaW50IGlzc3VlX2ZsYWdzKVxuJiM0Mzt7XG4mIzQzO1x0c3RydWN0IGlvX3hhdHRyICppeCA9IGlvX2tpb2NiX3RvX2NtZChyZXEsIHN0cnVjdCBpb194YXR0cik7XG4mIzQzO1x0aW50IHJldDtcbiYjNDM7XG4mIzQzO1x0V0FSTl9PTl9PTkNFKGlzc3VlX2ZsYWdzIFx1MDAyNiBJT19VUklOR19GX05PTkJMT0NLKTtcbiYjNDM7XG4mIzQzO1x0cmV0ID0gZmlsZV9yZW1vdmV4YXR0cihyZXEtXHUwMDNlZmlsZSwgaXgtXHUwMDNlY3R4LmtuYW1lKTtcbiYjNDM7XHRpb194YXR0cl9maW5pc2gocmVxLCByZXQpO1xuJiM0MztcdHJldHVybiBJT1VfQ09NUExFVEU7XG4mIzQzO31cbiYjNDM7XG4mIzQzO2ludCBpb19mbGlzdHhhdHRyX3ByZXAoc3RydWN0IGlvX2tpb2NiICpyZXEsIGNvbnN0IHN0cnVjdCBpb191cmluZ19zcWUgKnNxZSlcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBpb194YXR0ciAqaXggPSBpb19raW9jYl90b19jbWQocmVxLCBzdHJ1Y3QgaW9feGF0dHIpO1xuJiM0MztcbiYjNDM7XHRJTklUX0RFTEFZRURfRklMRU5BTUUoXHUwMDI2aXgtXHUwMDNlZmlsZW5hbWUpO1xuJiM0MztcdGl4LVx1MDAzZWN0eC5rbmFtZSA9IE5VTEw7XG4mIzQzO1x0aXgtXHUwMDNlY3R4Lmt2YWx1ZSA9IE5VTEw7XG4mIzQzO1xuJiM0MztcdGlmIChSRUFEX09OQ0Uoc3FlLVx1MDAzZWFkZHIpKVxuJiM0MztcdFx0cmV0dXJuIC1FSU5WQUw7XG4mIzQzO1xuJiM0MztcdGl4LVx1MDAzZWN0eC52YWx1ZSA9IHU2NF90b191c2VyX3B0cihSRUFEX09OQ0Uoc3FlLVx1MDAzZWFkZHIyKSk7XG4mIzQzO1x0aXgtXHUwMDNlY3R4LnNpemUgPSBSRUFEX09OQ0Uoc3FlLVx1MDAzZWxlbik7XG4mIzQzO1x0aXgtXHUwMDNlY3R4LmZsYWdzID0gUkVBRF9PTkNFKHNxZS1cdTAwM2V4YXR0cl9mbGFncyk7XG4mIzQzO1xuJiM0MztcdGlmIChpeC1cdTAwM2VjdHguZmxhZ3MpXG4mIzQzO1x0XHRyZXR1cm4gLUVJTlZBTDtcbiYjNDM7XG4mIzQzO1x0cmVxLVx1MDAzZWZsYWdzIHw9IFJFUV9GX05FRURfQ0xFQU5VUDtcbiYjNDM7XHRyZXEtXHUwMDNlZmxhZ3MgfD0gUkVRX0ZfRk9SQ0VfQVNZTkM7XG4mIzQzO1x0cmV0dXJuIDA7XG4mIzQzO31cbiYjNDM7XG4mIzQzO2ludCBpb19mbGlzdHhhdHRyKHN0cnVjdCBpb19raW9jYiAqcmVxLCB1bnNpZ25lZCBpbnQgaXNzdWVfZmxhZ3MpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgaW9feGF0dHIgKml4ID0gaW9fa2lvY2JfdG9fY21kKHJlcSwgc3RydWN0IGlvX3hhdHRyKTtcbiYjNDM7XHRpbnQgcmV0O1xuJiM0MztcbiYjNDM7XHRXQVJOX09OX09OQ0UoaXNzdWVfZmxhZ3MgXHUwMDI2IElPX1VSSU5HX0ZfTk9OQkxPQ0spO1xuJiM0MztcbiYjNDM7XHRyZXQgPSBmaWxlX2xpc3R4YXR0cihyZXEtXHUwMDNlZmlsZSwgaXgtXHUwMDNlY3R4LnZhbHVlLCBpeC1cdTAwM2VjdHguc2l6ZSk7XG4mIzQzO1x0aW9feGF0dHJfZmluaXNoKHJlcSwgcmV0KTtcbiYjNDM7XHRyZXR1cm4gSU9VX0NPTVBMRVRFO1xuJiM0Mzt9XG5kaWZmIC0tZ2l0IGEvaW9fdXJpbmcveGF0dHIuaCBiL2lvX3VyaW5nL3hhdHRyLmhcbmluZGV4IDliNDU5ZDJhZTkwYzVhLi5kMjQ4N2I0OWE1ZDIxYSAxMDA2NDRcbi0tLSBhL2lvX3VyaW5nL3hhdHRyLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2lvX3VyaW5nL3hhdHRyLmhcbkBAIC0xMywzICYjNDM7MTMsOSBAQCBpbnQgaW9fZmdldHhhdHRyKHN0cnVjdCBpb19raW9jYiAqcmVxLCB1bnNpZ25lZCBpbnQgaXNzdWVfZmxhZ3MpO1xuIFxuIGludCBpb19nZXR4YXR0cl9wcmVwKHN0cnVjdCBpb19raW9jYiAqcmVxLCBjb25zdCBzdHJ1Y3QgaW9fdXJpbmdfc3FlICpzcWUpO1xuIGludCBpb19nZXR4YXR0cihzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgdW5zaWduZWQgaW50IGlzc3VlX2ZsYWdzKTtcbiYjNDM7XG4mIzQzO2ludCBpb19mcmVtb3ZleGF0dHJfcHJlcChzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgY29uc3Qgc3RydWN0IGlvX3VyaW5nX3NxZSAqc3FlKTtcbiYjNDM7aW50IGlvX2ZyZW1vdmV4YXR0cihzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgdW5zaWduZWQgaW50IGlzc3VlX2ZsYWdzKTtcbiYjNDM7XG4mIzQzO2ludCBpb19mbGlzdHhhdHRyX3ByZXAoc3RydWN0IGlvX2tpb2NiICpyZXEsIGNvbnN0IHN0cnVjdCBpb191cmluZ19zcWUgKnNxZSk7XG4mIzQzO2ludCBpb19mbGlzdHhhdHRyKHN0cnVjdCBpb19raW9jYiAqcmVxLCB1bnNpZ25lZCBpbnQgaXNzdWVfZmxhZ3MpO1xuZGlmZiAtLWdpdCBhL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oIGIvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2lvX3VyaW5nLmhcbmluZGV4IGYxYzE2ZjgxNzc0MjAwLi43OWJmN2MyMjAwOWRiYiAxMDA2NDRcbi0tLSBhL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy9pbmNsdWRlL3VhcGkvbGludXgvaW9fdXJpbmcuaFxuQEAgLTI1Myw2ICYjNDM7MjUzLDE5IEBAIGVudW0gaW9fdXJpbmdfb3Age1xuIFx0SU9SSU5HX09QX0ZVVEVYX1dBSVQsXG4gXHRJT1JJTkdfT1BfRlVURVhfV0FLRSxcbiBcdElPUklOR19PUF9GVVRFWF9XQUlUVixcbiYjNDM7XHRJT1JJTkdfT1BfRklYRURfRkRfSU5TVEFMTCxcbiYjNDM7XHRJT1JJTkdfT1BfRlRSVU5DQVRFLFxuJiM0MztcdElPUklOR19PUF9CSU5ELFxuJiM0MztcdElPUklOR19PUF9MSVNURU4sXG4mIzQzO1x0SU9SSU5HX09QX1JFQ1ZfWkMsXG4mIzQzO1x0SU9SSU5HX09QX0VQT0xMX1dBSVQsXG4mIzQzO1x0SU9SSU5HX09QX1JFQURWX0ZJWEVELFxuJiM0MztcdElPUklOR19PUF9XUklURVZfRklYRUQsXG4mIzQzO1x0SU9SSU5HX09QX1BJUEUsXG4mIzQzO1x0SU9SSU5HX09QX05PUDEyOCxcbiYjNDM7XHRJT1JJTkdfT1BfVVJJTkdfQ01EMTI4LFxuJiM0MztcdElPUklOR19PUF9GUkVNT1ZFWEFUVFIsXG4mIzQzO1x0SU9SSU5HX09QX0ZMSVNUWEFUVFIsXG4gXG4gXHQvKiB0aGlzIGdvZXMgbGFzdCwgb2J2aW91c2x5ICovXG4gXHRJT1JJTkdfT1BfTEFTVCxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwMDoyNzwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7SU9fVVJJTkcmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtpb19mcmVtb3ZleGF0dHJfcHJlcCYjMzQ7LAogICAgJiMzNDtpb19mcmVtb3ZleGF0dHImIzM0OywKICAgICYjMzQ7aW9fZmxpc3R4YXR0cl9wcmVwJiMzNDssCiAgICAmIzM0O2lvX2ZsaXN0eGF0dHImIzM0OywKICAgICYjMzQ7ZmlsZV9saXN0eGF0dHImIzM0OywKICAgICYjMzQ7ZmlsZV9yZW1vdmV4YXR0ciYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIG5ldyBpb191cmluZyBvcGNvZGVzIGZvciBmcmVtb3ZleGF0dHIgYW5kIGZsaXN0eGF0dHIsIHdoaWNoIGFyZSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIGlvX3VyaW5nX2VudGVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA3NzM3NDhjYjgyMTcxMTY1MDI3NzU2MjFmMzFjY2E4MjA5NDkyNTNiCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFdlZCBKdWwgMjIgMDA6Mjc6MjYgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9mcy9pbnRlcm5hbC5oIGIvZnMvaW50ZXJuYWwuaAppbmRleCAzNTVkOTNmOTIyMDg2MS4uZWU4NmIyNGRiNzlhZDIgMTAwNjQ0Ci0tLSBhL2ZzL2ludGVybmFsLmgKJiM0MzsmIzQzOyYjNDM7IGIvZnMvaW50ZXJuYWwuaApAQCAtMjk3LDYgJiM0MzsyOTcsOCBAQCBpbnQgZmlsZW5hbWVfc2V0eGF0dHIoaW50IGRmZCwgc3RydWN0IGZpbGVuYW1lICpmaWxlbmFtZSwKIAkJICAgICAgdW5zaWduZWQgaW50IGxvb2t1cF9mbGFncywgc3RydWN0IGtlcm5lbF94YXR0cl9jdHggKmN0eCk7CiBpbnQgc2V0eGF0dHJfY29weShjb25zdCBjaGFyIF9fdXNlciAqbmFtZSwgc3RydWN0IGtlcm5lbF94YXR0cl9jdHggKmN0eCk7CiBpbnQgaW1wb3J0X3hhdHRyX25hbWUoc3RydWN0IHhhdHRyX25hbWUgKmtuYW1lLCBjb25zdCBjaGFyIF9fdXNlciAqbmFtZSk7CiYjNDM7c3NpemVfdCBmaWxlX2xpc3R4YXR0cihzdHJ1Y3QgZmlsZSAqZiwgY2hhciBfX3VzZXIgKmxpc3QsIHNpemVfdCBzaXplKTsKJiM0MztpbnQgZmlsZV9yZW1vdmV4YXR0cihzdHJ1Y3QgZmlsZSAqZiwgc3RydWN0IHhhdHRyX25hbWUgKmtuYW1lKTsKIAogaW50IG1heV93cml0ZV94YXR0cihzdHJ1Y3QgbW50X2lkbWFwICppZG1hcCwgc3RydWN0IGlub2RlICppbm9kZSk7CiAKZGlmZiAtLWdpdCBhL2ZzL3hhdHRyLmMgYi9mcy94YXR0ci5jCmluZGV4IGQ1ODk3OTExNTIwMDc1Li5hM2E3MjQxODQ2YzMxMyAxMDA2NDQKLS0tIGEvZnMveGF0dHIuYwomIzQzOyYjNDM7JiM0MzsgYi9mcy94YXR0ci5jCkBAIC05NTMsMTcgJiM0Mzs5NTMsMTUgQEAgbGlzdHhhdHRyKHN0cnVjdCBkZW50cnkgKmQsIGNoYXIgX191c2VyICpsaXN0LCBzaXplX3Qgc2l6ZSkKIAlyZXR1cm4gZXJyb3I7CiB9CiAKLXN0YXRpYwogc3NpemVfdCBmaWxlX2xpc3R4YXR0cihzdHJ1Y3QgZmlsZSAqZiwgY2hhciBfX3VzZXIgKmxpc3QsIHNpemVfdCBzaXplKQogewogCWF1ZGl0X2ZpbGUoZik7CiAJcmV0dXJuIGxpc3R4YXR0cihmLSZndDtmX3BhdGguZGVudHJ5LCBsaXN0LCBzaXplKTsKIH0KIAotc3RhdGljCi1zc2l6ZV90IGZpbGVuYW1lX2xpc3R4YXR0cihpbnQgZGZkLCBzdHJ1Y3QgZmlsZW5hbWUgKmZpbGVuYW1lLAotCQkJICAgdW5zaWduZWQgaW50IGxvb2t1cF9mbGFncywKLQkJCSAgIGNoYXIgX191c2VyICpsaXN0LCBzaXplX3Qgc2l6ZSkKJiM0MztzdGF0aWMgc3NpemVfdCBmaWxlbmFtZV9saXN0eGF0dHIoaW50IGRmZCwgc3RydWN0IGZpbGVuYW1lICpmaWxlbmFtZSwKJiM0MzsJCQkJICB1bnNpZ25lZCBpbnQgbG9va3VwX2ZsYWdzLAomIzQzOwkJCQkgIGNoYXIgX191c2VyICpsaXN0LCBzaXplX3Qgc2l6ZSkKIHsKIAlzdHJ1Y3QgcGF0aCBwYXRoOwogCXNzaXplX3QgZXJyb3I7CkBAIC0xMDM2LDcgJiM0MzsxMDM0LDcgQEAgcmVtb3ZleGF0dHIoc3RydWN0IG1udF9pZG1hcCAqaWRtYXAsIHN0cnVjdCBkZW50cnkgKmQsIGNvbnN0IGNoYXIgKm5hbWUpCiAJcmV0dXJuIHZmc19yZW1vdmV4YXR0cihpZG1hcCwgZCwgbmFtZSk7CiB9CiAKLXN0YXRpYyBpbnQgZmlsZV9yZW1vdmV4YXR0cihzdHJ1Y3QgZmlsZSAqZiwgc3RydWN0IHhhdHRyX25hbWUgKmtuYW1lKQomIzQzO2ludCBmaWxlX3JlbW92ZXhhdHRyKHN0cnVjdCBmaWxlICpmLCBzdHJ1Y3QgeGF0dHJfbmFtZSAqa25hbWUpCiB7CiAJaW50IGVycm9yID0gbW50X3dhbnRfd3JpdGVfZmlsZShmKTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2lvX3VyaW5nLmggYi9pbmNsdWRlL3VhcGkvbGludXgvaW9fdXJpbmcuaAppbmRleCA5MDlmYjdhZWE2MzhlYi4uODA1ZjFlMzFmNDkyNTEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oCiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oCkBAIC0zMTgsNiAmIzQzOzMxOCw4IEBAIGVudW0gaW9fdXJpbmdfb3AgewogCUlPUklOR19PUF9QSVBFLAogCUlPUklOR19PUF9OT1AxMjgsCiAJSU9SSU5HX09QX1VSSU5HX0NNRDEyOCwKJiM0MzsJSU9SSU5HX09QX0ZSRU1PVkVYQVRUUiwKJiM0MzsJSU9SSU5HX09QX0ZMSVNUWEFUVFIsCiAKIAkvKiB0aGlzIGdvZXMgbGFzdCwgb2J2aW91c2x5ICovCiAJSU9SSU5HX09QX0xBU1QsCmRpZmYgLS1naXQgYS9pb191cmluZy9vcGRlZi5jIGIvaW9fdXJpbmcvb3BkZWYuYwppbmRleCA0ZTU4ZWIxMzQ0ZWFhMy4uMjVkOTIyOWQ4ZmMwMDIgMTAwNjQ0Ci0tLSBhL2lvX3VyaW5nL29wZGVmLmMKJiM0MzsmIzQzOyYjNDM7IGIvaW9fdXJpbmcvb3BkZWYuYwpAQCAtNTkxLDYgJiM0Mzs1OTEsMTYgQEAgY29uc3Qgc3RydWN0IGlvX2lzc3VlX2RlZiBpb19pc3N1ZV9kZWZzW10gPSB7CiAJCS5wcmVwCQkJPSBpb191cmluZ19jbWRfcHJlcCwKIAkJLmlzc3VlCQkJPSBpb191cmluZ19jbWQsCiAJfSwKJiM0MzsJW0lPUklOR19PUF9GUkVNT1ZFWEFUVFJdID0gewomIzQzOwkJLm5lZWRzX2ZpbGUJCT0gMSwKJiM0MzsJCS5wcmVwCQkJPSBpb19mcmVtb3ZleGF0dHJfcHJlcCwKJiM0MzsJCS5pc3N1ZQkJCT0gaW9fZnJlbW92ZXhhdHRyLAomIzQzOwl9LAomIzQzOwlbSU9SSU5HX09QX0ZMSVNUWEFUVFJdID0gewomIzQzOwkJLm5lZWRzX2ZpbGUJCT0gMSwKJiM0MzsJCS5wcmVwCQkJPSBpb19mbGlzdHhhdHRyX3ByZXAsCiYjNDM7CQkuaXNzdWUJCQk9IGlvX2ZsaXN0eGF0dHIsCiYjNDM7CX0sCiB9OwogCiBjb25zdCBzdHJ1Y3QgaW9fY29sZF9kZWYgaW9fY29sZF9kZWZzW10gPSB7CkBAIC04NDksNiAmIzQzOzg1OSwxNCBAQCBjb25zdCBzdHJ1Y3QgaW9fY29sZF9kZWYgaW9fY29sZF9kZWZzW10gPSB7CiAJCS5zcWVfY29weQkJPSBpb191cmluZ19jbWRfc3FlX2NvcHksCiAJCS5jbGVhbnVwCQk9IGlvX3VyaW5nX2NtZF9jbGVhbnVwLAogCX0sCiYjNDM7CVtJT1JJTkdfT1BfRlJFTU9WRVhBVFRSXSA9IHsKJiM0MzsJCS5uYW1lCQkJPSAmIzM0O0ZSRU1PVkVYQVRUUiYjMzQ7LAomIzQzOwkJLmNsZWFudXAJCT0gaW9feGF0dHJfY2xlYW51cCwKJiM0MzsJfSwKJiM0MzsJW0lPUklOR19PUF9GTElTVFhBVFRSXSA9IHsKJiM0MzsJCS5uYW1lCQkJPSAmIzM0O0ZMSVNUWEFUVFImIzM0OywKJiM0MzsJCS5jbGVhbnVwCQk9IGlvX3hhdHRyX2NsZWFudXAsCiYjNDM7CX0sCiB9OwogCiBjb25zdCBjaGFyICppb191cmluZ19nZXRfb3Bjb2RlKHU4IG9wY29kZSkKZGlmZiAtLWdpdCBhL2lvX3VyaW5nL3hhdHRyLmMgYi9pb191cmluZy94YXR0ci5jCmluZGV4IDUzMDNkZjNmMjQ3ZjRiLi45YjQxMGY5MWVmNDM3OCAxMDA2NDQKLS0tIGEvaW9fdXJpbmcveGF0dHIuYwomIzQzOyYjNDM7JiM0MzsgYi9pb191cmluZy94YXR0ci5jCkBAIC0xOTUsMyAmIzQzOzE5NSw3NyBAQCBpbnQgaW9fc2V0eGF0dHIoc3RydWN0IGlvX2tpb2NiICpyZXEsIHVuc2lnbmVkIGludCBpc3N1ZV9mbGFncykKIAlpb194YXR0cl9maW5pc2gocmVxLCByZXQpOwogCXJldHVybiBJT1VfQ09NUExFVEU7CiB9CiYjNDM7CiYjNDM7aW50IGlvX2ZyZW1vdmV4YXR0cl9wcmVwKHN0cnVjdCBpb19raW9jYiAqcmVxLCBjb25zdCBzdHJ1Y3QgaW9fdXJpbmdfc3FlICpzcWUpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgaW9feGF0dHIgKml4ID0gaW9fa2lvY2JfdG9fY21kKHJlcSwgc3RydWN0IGlvX3hhdHRyKTsKJiM0MzsJY29uc3QgY2hhciBfX3VzZXIgKm5hbWU7CiYjNDM7CWludCByZXQ7CiYjNDM7CiYjNDM7CUlOSVRfREVMQVlFRF9GSUxFTkFNRSgmYW1wO2l4LSZndDtmaWxlbmFtZSk7CiYjNDM7CW5hbWUgPSB1NjRfdG9fdXNlcl9wdHIoUkVBRF9PTkNFKHNxZS0mZ3Q7YWRkcikpOwomIzQzOwomIzQzOwlpZiAoUkVBRF9PTkNFKHNxZS0mZ3Q7YWRkcjIpIHx8IFJFQURfT05DRShzcWUtJmd0O2xlbikgfHwgUkVBRF9PTkNFKHNxZS0mZ3Q7eGF0dHJfZmxhZ3MpKQomIzQzOwkJcmV0dXJuIC1FSU5WQUw7CiYjNDM7CiYjNDM7CWl4LSZndDtjdHgua25hbWUgPSBrbWFsbG9jX29iaigqaXgtJmd0O2N0eC5rbmFtZSk7CiYjNDM7CWlmICghaXgtJmd0O2N0eC5rbmFtZSkKJiM0MzsJCXJldHVybiAtRU5PTUVNOwomIzQzOwomIzQzOwlyZXQgPSBpbXBvcnRfeGF0dHJfbmFtZShpeC0mZ3Q7Y3R4LmtuYW1lLCBuYW1lKTsKJiM0MzsJaWYgKHJldCkgewomIzQzOwkJa2ZyZWUoaXgtJmd0O2N0eC5rbmFtZSk7CiYjNDM7CQlyZXR1cm4gcmV0OwomIzQzOwl9CiYjNDM7CiYjNDM7CXJlcS0mZ3Q7ZmxhZ3MgfD0gUkVRX0ZfTkVFRF9DTEVBTlVQOwomIzQzOwlyZXEtJmd0O2ZsYWdzIHw9IFJFUV9GX0ZPUkNFX0FTWU5DOwomIzQzOwlyZXR1cm4gMDsKJiM0Mzt9CiYjNDM7CiYjNDM7aW50IGlvX2ZyZW1vdmV4YXR0cihzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgdW5zaWduZWQgaW50IGlzc3VlX2ZsYWdzKQomIzQzO3sKJiM0MzsJc3RydWN0IGlvX3hhdHRyICppeCA9IGlvX2tpb2NiX3RvX2NtZChyZXEsIHN0cnVjdCBpb194YXR0cik7CiYjNDM7CWludCByZXQ7CiYjNDM7CiYjNDM7CVdBUk5fT05fT05DRShpc3N1ZV9mbGFncyAmYW1wOyBJT19VUklOR19GX05PTkJMT0NLKTsKJiM0MzsKJiM0MzsJcmV0ID0gZmlsZV9yZW1vdmV4YXR0cihyZXEtJmd0O2ZpbGUsIGl4LSZndDtjdHgua25hbWUpOwomIzQzOwlpb194YXR0cl9maW5pc2gocmVxLCByZXQpOwomIzQzOwlyZXR1cm4gSU9VX0NPTVBMRVRFOwomIzQzO30KJiM0MzsKJiM0MztpbnQgaW9fZmxpc3R4YXR0cl9wcmVwKHN0cnVjdCBpb19raW9jYiAqcmVxLCBjb25zdCBzdHJ1Y3QgaW9fdXJpbmdfc3FlICpzcWUpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgaW9feGF0dHIgKml4ID0gaW9fa2lvY2JfdG9fY21kKHJlcSwgc3RydWN0IGlvX3hhdHRyKTsKJiM0MzsKJiM0MzsJSU5JVF9ERUxBWUVEX0ZJTEVOQU1FKCZhbXA7aXgtJmd0O2ZpbGVuYW1lKTsKJiM0MzsJaXgtJmd0O2N0eC5rbmFtZSA9IE5VTEw7CiYjNDM7CWl4LSZndDtjdHgua3ZhbHVlID0gTlVMTDsKJiM0MzsKJiM0MzsJaWYgKFJFQURfT05DRShzcWUtJmd0O2FkZHIpKQomIzQzOwkJcmV0dXJuIC1FSU5WQUw7CiYjNDM7CiYjNDM7CWl4LSZndDtjdHgudmFsdWUgPSB1NjRfdG9fdXNlcl9wdHIoUkVBRF9PTkNFKHNxZS0mZ3Q7YWRkcjIpKTsKJiM0MzsJaXgtJmd0O2N0eC5zaXplID0gUkVBRF9PTkNFKHNxZS0mZ3Q7bGVuKTsKJiM0MzsJaXgtJmd0O2N0eC5mbGFncyA9IFJFQURfT05DRShzcWUtJmd0O3hhdHRyX2ZsYWdzKTsKJiM0MzsKJiM0MzsJaWYgKGl4LSZndDtjdHguZmxhZ3MpCiYjNDM7CQlyZXR1cm4gLUVJTlZBTDsKJiM0MzsKJiM0MzsJcmVxLSZndDtmbGFncyB8PSBSRVFfRl9ORUVEX0NMRUFOVVA7CiYjNDM7CXJlcS0mZ3Q7ZmxhZ3MgfD0gUkVRX0ZfRk9SQ0VfQVNZTkM7CiYjNDM7CXJldHVybiAwOwomIzQzO30KJiM0MzsKJiM0MztpbnQgaW9fZmxpc3R4YXR0cihzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgdW5zaWduZWQgaW50IGlzc3VlX2ZsYWdzKQomIzQzO3sKJiM0MzsJc3RydWN0IGlvX3hhdHRyICppeCA9IGlvX2tpb2NiX3RvX2NtZChyZXEsIHN0cnVjdCBpb194YXR0cik7CiYjNDM7CWludCByZXQ7CiYjNDM7CiYjNDM7CVdBUk5fT05fT05DRShpc3N1ZV9mbGFncyAmYW1wOyBJT19VUklOR19GX05PTkJMT0NLKTsKJiM0MzsKJiM0MzsJcmV0ID0gZmlsZV9saXN0eGF0dHIocmVxLSZndDtmaWxlLCBpeC0mZ3Q7Y3R4LnZhbHVlLCBpeC0mZ3Q7Y3R4LnNpemUpOwomIzQzOwlpb194YXR0cl9maW5pc2gocmVxLCByZXQpOwomIzQzOwlyZXR1cm4gSU9VX0NPTVBMRVRFOwomIzQzO30KZGlmZiAtLWdpdCBhL2lvX3VyaW5nL3hhdHRyLmggYi9pb191cmluZy94YXR0ci5oCmluZGV4IDliNDU5ZDJhZTkwYzVhLi5kMjQ4N2I0OWE1ZDIxYSAxMDA2NDQKLS0tIGEvaW9fdXJpbmcveGF0dHIuaAomIzQzOyYjNDM7JiM0MzsgYi9pb191cmluZy94YXR0ci5oCkBAIC0xMywzICYjNDM7MTMsOSBAQCBpbnQgaW9fZmdldHhhdHRyKHN0cnVjdCBpb19raW9jYiAqcmVxLCB1bnNpZ25lZCBpbnQgaXNzdWVfZmxhZ3MpOwogCiBpbnQgaW9fZ2V0eGF0dHJfcHJlcChzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgY29uc3Qgc3RydWN0IGlvX3VyaW5nX3NxZSAqc3FlKTsKIGludCBpb19nZXR4YXR0cihzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgdW5zaWduZWQgaW50IGlzc3VlX2ZsYWdzKTsKJiM0MzsKJiM0MztpbnQgaW9fZnJlbW92ZXhhdHRyX3ByZXAoc3RydWN0IGlvX2tpb2NiICpyZXEsIGNvbnN0IHN0cnVjdCBpb191cmluZ19zcWUgKnNxZSk7CiYjNDM7aW50IGlvX2ZyZW1vdmV4YXR0cihzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgdW5zaWduZWQgaW50IGlzc3VlX2ZsYWdzKTsKJiM0MzsKJiM0MztpbnQgaW9fZmxpc3R4YXR0cl9wcmVwKHN0cnVjdCBpb19raW9jYiAqcmVxLCBjb25zdCBzdHJ1Y3QgaW9fdXJpbmdfc3FlICpzcWUpOwomIzQzO2ludCBpb19mbGlzdHhhdHRyKHN0cnVjdCBpb19raW9jYiAqcmVxLCB1bnNpZ25lZCBpbnQgaXNzdWVfZmxhZ3MpOwpkaWZmIC0tZ2l0IGEvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2lvX3VyaW5nLmggYi90b29scy9pbmNsdWRlL3VhcGkvbGludXgvaW9fdXJpbmcuaAppbmRleCBmMWMxNmY4MTc3NDIwMC4uNzliZjdjMjIwMDlkYmIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oCkBAIC0yNTMsNiAmIzQzOzI1MywxOSBAQCBlbnVtIGlvX3VyaW5nX29wIHsKIAlJT1JJTkdfT1BfRlVURVhfV0FJVCwKIAlJT1JJTkdfT1BfRlVURVhfV0FLRSwKIAlJT1JJTkdfT1BfRlVURVhfV0FJVFYsCiYjNDM7CUlPUklOR19PUF9GSVhFRF9GRF9JTlNUQUxMLAomIzQzOwlJT1JJTkdfT1BfRlRSVU5DQVRFLAomIzQzOwlJT1JJTkdfT1BfQklORCwKJiM0MzsJSU9SSU5HX09QX0xJU1RFTiwKJiM0MzsJSU9SSU5HX09QX1JFQ1ZfWkMsCiYjNDM7CUlPUklOR19PUF9FUE9MTF9XQUlULAomIzQzOwlJT1JJTkdfT1BfUkVBRFZfRklYRUQsCiYjNDM7CUlPUklOR19PUF9XUklURVZfRklYRUQsCiYjNDM7CUlPUklOR19PUF9QSVBFLAomIzQzOwlJT1JJTkdfT1BfTk9QMTI4LAomIzQzOwlJT1JJTkdfT1BfVVJJTkdfQ01EMTI4LAomIzQzOwlJT1JJTkdfT1BfRlJFTU9WRVhBVFRSLAomIzQzOwlJT1JJTkdfT1BfRkxJU1RYQVRUUiwKIAogCS8qIHRoaXMgZ29lcyBsYXN0LCBvYnZpb3VzbHkgKi8KIAlJT1JJTkdfT1BfTEFTVCwKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMDA6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDczNwoJCQkJCQkJb3V0cHV0OiAxOAoJCQkJCQkJdGhvdWdodHM6IDM3MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBpb191cmluZyBYYXR0ciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQgc2VlbXMgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZC4gVGhleSYjMzk7cmUgYWRkaW5nIHN1cHBvcnQgZm9yIGBJT1JJTkdfT1BfRlJFTU9WRVhBVFRSYCBhbmQgYElPUklOR19PUF9GTElTVFhBVFRSYCB0byBpb191cmluZy4gRnVuY3Rpb25hbGx5LCB0aGlzIGlzIGEgc2lnbmlmaWNhbnQgYWRkaXRpb24sIGludHJvZHVjaW5nIG5ldyBvcGNvZGVzLCBzbyBJIG5lZWQgdG8gYmUgdGhvcm91Z2guCgpUaGUgcGF0Y2ggaXRzZWxmIHRvdWNoZXMgYSBmYWlyIG51bWJlciBvZiBmaWxlczogYGZzL2ludGVybmFsLmhgIGFuZCBgZnMveGF0dHIuY2AgYXJlIG1vZGlmaWVkLCBsaWtlbHkgdG8gZXhwb3NlIHRoZSBrZXJuZWwtbGV2ZWwgZnVuY3Rpb25zIGBmaWxlX2xpc3R4YXR0cmAgYW5kIGBmaWxlX3JlbW92ZXhhdHRyYC4gSXQgbG9va3MgbGlrZSB0aGUgYGluY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oYCBoZWFkZXIgZ2V0cyB0aGUgbmV3IG9wY29kZXMgZGVmaW5lZCBhbmQgdGhlIGltcGxlbWVudGF0aW9uIHdpdGhpbiBgaW9fdXJpbmcvb3BkZWYuY2AuIFRoZSBjb3JlIGZ1bmN0aW9uYWxpdHkgcmVzaWRlcyBpbiBgaW9fdXJpbmcveGF0dHIuY2Agd2l0aCB0aGUgcHJlcCBhbmQgZXhlY3V0aW9uIGZ1bmN0aW9uczogYGlvX2ZyZW1vdmV4YXR0cl9wcmVwYCwgYGlvX2ZyZW1vdmV4YXR0cmAsIGBpb19mbGlzdHhhdHRyX3ByZXBgLCBhbmQgYGlvX2ZsaXN0eGF0dHJgLiAgT2YgY291cnNlLCB0aGVyZSYjMzk7cyBhIGNvcnJlc3BvbmRpbmcgYGlvX3VyaW5nL3hhdHRyLmhgIHRvIGRlY2xhcmUgdGhlbS4gQW5kIGZpbmFsbHksIHRoZSBgdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2lvX3VyaW5nLmhgIGhhcyBiZWVuIHN5bmNlZCB0byBzdGF5IGNvbnNpc3RlbnQuCgpHaXZlbiB0aGF0IHRoaXMgaXMgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBleHBhbmRzIHRoZSBpb191cmluZyBvcGNvZGUgc2V0LCBmdXp6aW5nIGlzIGFic29sdXRlbHkgZXNzZW50aWFsLiBUaGF0JiMzOTtzIGEgZ2l2ZW4uCgpJIG5lZWQgdG8gY29uZmlybSB0aGUgY29uZmlndXJhdGlvbiBvcHRpb24gaXMgY29ycmVjdC4gVGhlIHRleHQgbWVudGlvbnMgYENPTkZJR19JT19VUklOR2AsIGFuZCB0aGF0IG1ha2VzIHNlbnNlLCBidXQgSSYjMzk7bGwgdXNlIGBncmVwcGVyYCB0byBjb25maXJtIHRoYXQgYElPX1VSSU5HYCBpcyBkZWZpbmVkIHdpdGhpbiB0aGUgS2NvbmZpZyBhbmQgaXMsIGluIGZhY3QsIHRoZSBjb3JyZWN0IGZsYWcuCgpCZXlvbmQgdGhhdCwgdGhlIGNyaXRpY2FsIGZ1bmN0aW9ucyB0byBmb2N1cyBvbiBmb3IgdGVzdGluZyB3aWxsIGJlIHRob3NlIGludm9sdmVkIGluIHByZXBhcmluZyBhbmQgZXhlY3V0aW5nIHRoZSB4YXR0ciBvcGVyYXRpb25zLCBhbmQgdGhlIGtlcm5lbCBmdW5jdGlvbnMgdGhleSBpbnRlcmFjdCB3aXRoLCBzbzogYGlvX2ZyZW1vdmV4YXR0cl9wcmVwYCwgYGlvX2ZyZW1vdmV4YXR0cmAsIGBpb19mbGlzdHhhdHRyX3ByZXBgLCBgaW9fZmxpc3R4YXR0cmAsIGBmaWxlX2xpc3R4YXR0cmAsIGFuZCBgZmlsZV9yZW1vdmV4YXR0cmAuICBJJiMzOTtsbCB3YW50IHRvIHRhcmdldCB0aGVzZSBleHBsaWNpdGx5IGluIG15IGZ1enppbmcgc3RyYXRlZ3kuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMDA6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIElPX1VSSU5HJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2luaXQvS2NvbmZpZz0xOTA3PWNvbmZpZyBBSU9cbi0tXG5pbml0L0tjb25maWctMTkxNC1cbmluaXQvS2NvbmZpZzoxOTE1OmNvbmZpZyBJT19VUklOR1xuaW5pdC9LY29uZmlnLTE5MTYtXHRib29sIFwmIzM0O0VuYWJsZSBJTyB1cmluZyBzdXBwb3J0XCYjMzQ7IGlmIEVYUEVSVFxuLS1cbmluaXQvS2NvbmZpZz0xOTI0PWNvbmZpZyBHQ09WX1BST0ZJTEVfVVJJTkdcbi0tXG5pbml0L0tjb25maWctMTkzNi1cbmluaXQvS2NvbmZpZzoxOTM3OmNvbmZpZyBJT19VUklOR19NT0NLX0ZJTEVcbmluaXQvS2NvbmZpZy0xOTM4LVx0dHJpc3RhdGUgXCYjMzQ7RW5hYmxlIGlvX3VyaW5nIG1vY2sgZmlsZXMgKEV4cGVyaW1lbnRhbClcJiMzNDsgaWYgRVhQRVJUXG4tLVxuaW9fdXJpbmcvS2NvbmZpZy01LVxuaW9fdXJpbmcvS2NvbmZpZzo2OmNvbmZpZyBJT19VUklOR19aQ1JYXG5pb191cmluZy9LY29uZmlnLTctXHRkZWZfYm9vbCB5XG4tLVxuaW9fdXJpbmcvS2NvbmZpZy0xMi1cbmlvX3VyaW5nL0tjb25maWc6MTM6Y29uZmlnIElPX1VSSU5HX0JQRlxuaW9fdXJpbmcvS2NvbmZpZy0xNC1cdGRlZl9ib29sIHlcbi0tXG5pb191cmluZy9LY29uZmlnLTE3LVxuaW9fdXJpbmcvS2NvbmZpZzoxODpjb25maWcgSU9fVVJJTkdfQlBGX09QU1xuaW9fdXJpbmcvS2NvbmZpZy0xOS1cdGRlZl9ib29sIHlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwMDoyNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1ODk5CgkJCQkJCQlvdXRwdXQ6IDEyNAoJCQkJCQkJdGhvdWdodHM6IDEyNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIGlvX3VyaW5nIEltcGxlbWVudGF0aW9uIGZvciBFeHRlbmRlZCBBdHRyaWJ1dGUgUmVtb3ZhbCBhbmQgTGlzdGluZyoqCgpPa2F5LCBzbyBJJiMzOTttIGZvY3VzaW5nIG9uIGEgc3BlY2lmaWMgY29uZmlndXJhdGlvbiwgYElPX1VSSU5HYCwgZm9yIHRoaXMgYW5hbHlzaXMuIE15IHByaW1hcnkgaW50ZXJlc3QgbGllcyBpbiB0aGUgaW1wbGVtZW50YXRpb24gb2YgZXh0ZW5kZWQgYXR0cmlidXRlIHJlbW92YWwgYW5kIGxpc3RpbmcgdGhyb3VnaCB0aGUgaW9fdXJpbmcgaW50ZXJmYWNlLiBTcGVjaWZpY2FsbHksIEkmIzM5O20gZXhhbWluaW5nIHRoZXNlIGZ1bmN0aW9uczogYGlvX2ZyZW1vdmV4YXR0cl9wcmVwYCwgYGlvX2ZyZW1vdmV4YXR0cmAsIGBpb19mbGlzdHhhdHRyX3ByZXBgLCBhbmQgYGlvX2ZsaXN0eGF0dHJgLgoKSSBuZWVkIHRvIHF1aWNrbHkgY29uZmlybSB0aGF0IGBJT19VUklOR2AgaXMgdGhlIHJlbGV2YW50IGNvbmZpZy4gR2l2ZW4gdGhlIG5hdHVyZSBvZiB0aGUgcGF0Y2gsIHdoaWNoIGludHJvZHVjZXMgbmV3IGlvX3VyaW5nIG9wY29kZXMgZm9yIGBmcmVtb3ZleGF0dHJgIGFuZCBgZmxpc3R4YXR0cmAsIGFjY2Vzc2libGUgZnJvbSB1c2Vyc3BhY2UgdGhyb3VnaCBgaW9fdXJpbmdfZW50ZXJgLCB0aGF0JiMzOTtzIGNlcnRhaW5seSB0aGUgY2FzZS4gTm8gbmVlZCB0byBnZXQgZGlzdHJhY3RlZCBieSBhbnkgb3RoZXIgY29uZmlndXJhdGlvbnMuCgpOb3csIGxldCYjMzk7cyBwcm9jZWVkIHdpdGggc2V0dGluZyB0aGUgcmVzdWx0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwMDoyNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7SU9fVVJJTkcmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtpb19mcmVtb3ZleGF0dHJfcHJlcCYjMzQ7LAogICAgJiMzNDtpb19mcmVtb3ZleGF0dHImIzM0OywKICAgICYjMzQ7aW9fZmxpc3R4YXR0cl9wcmVwJiMzNDssCiAgICAmIzM0O2lvX2ZsaXN0eGF0dHImIzM0OywKICAgICYjMzQ7ZmlsZV9saXN0eGF0dHImIzM0OywKICAgICYjMzQ7ZmlsZV9yZW1vdmV4YXR0ciYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIG5ldyBpb191cmluZyBvcGNvZGVzIGZvciBmcmVtb3ZleGF0dHIgYW5kIGZsaXN0eGF0dHIsIHdoaWNoIGFyZSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIGlvX3VyaW5nX2VudGVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtJT19VUklORyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2lvX2ZyZW1vdmV4YXR0cl9wcmVwJiMzNDssCiAgICAmIzM0O2lvX2ZyZW1vdmV4YXR0ciYjMzQ7LAogICAgJiMzNDtpb19mbGlzdHhhdHRyX3ByZXAmIzM0OywKICAgICYjMzQ7aW9fZmxpc3R4YXR0ciYjMzQ7LAogICAgJiMzNDtmaWxlX2xpc3R4YXR0ciYjMzQ7LAogICAgJiMzNDtmaWxlX3JlbW92ZXhhdHRyJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgbmV3IGlvX3VyaW5nIG9wY29kZXMgZm9yIGZyZW1vdmV4YXR0ciBhbmQgZmxpc3R4YXR0ciwgd2hpY2ggYXJlIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgaW9fdXJpbmdfZW50ZXIuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwMDoyNzoyOC41ODc4NDc5OTlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzk1NDU3OTc4OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJT19VUklOR1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImlvX2ZyZW1vdmV4YXR0cl9wcmVwXCIsXG4gICAgXCJpb19mcmVtb3ZleGF0dHJcIixcbiAgICBcImlvX2ZsaXN0eGF0dHJfcHJlcFwiLFxuICAgIFwiaW9fZmxpc3R4YXR0clwiLFxuICAgIFwiZmlsZV9saXN0eGF0dHJcIixcbiAgICBcImZpbGVfcmVtb3ZleGF0dHJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIG5ldyBpb191cmluZyBvcGNvZGVzIGZvciBmcmVtb3ZleGF0dHIgYW5kIGZsaXN0eGF0dHIsIHdoaWNoIGFyZSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIGlvX3VyaW5nX2VudGVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwMDoyNzoyOC41ODc4NTYzMzlaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY2Mzc2ODE5MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDc3Mzc0OGNiODIxNzExNjUwMjc3NTYyMWYzMWNjYTgyMDk0OTI1M2JcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFdlZCBKdWwgMjIgMDA6Mjc6MjYgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZnMvaW50ZXJuYWwuaCBiL2ZzL2ludGVybmFsLmhcXG5pbmRleCAzNTVkOTNmOTIyMDg2MS4uZWU4NmIyNGRiNzlhZDIgMTAwNjQ0XFxuLS0tIGEvZnMvaW50ZXJuYWwuaFxcbisrKyBiL2ZzL2ludGVybmFsLmhcXG5AQCAtMjk3LDYgKzI5Nyw4IEBAIGludCBmaWxlbmFtZV9zZXR4YXR0cihpbnQgZGZkLCBzdHJ1Y3QgZmlsZW5hbWUgKmZpbGVuYW1lLFxcbiBcXHRcXHQgICAgICB1bnNpZ25lZCBpbnQgbG9va3VwX2ZsYWdzLCBzdHJ1Y3Qga2VybmVsX3hhdHRyX2N0eCAqY3R4KTtcXG4gaW50IHNldHhhdHRyX2NvcHkoY29uc3QgY2hhciBfX3VzZXIgKm5hbWUsIHN0cnVjdCBrZXJuZWxfeGF0dHJfY3R4ICpjdHgpO1xcbiBpbnQgaW1wb3J0X3hhdHRyX25hbWUoc3RydWN0IHhhdHRyX25hbWUgKmtuYW1lLCBjb25zdCBjaGFyIF9fdXNlciAqbmFtZSk7XFxuK3NzaXplX3QgZmlsZV9saXN0eGF0dHIoc3RydWN0IGZpbGUgKmYsIGNoYXIgX191c2VyICpsaXN0LCBzaXplX3Qgc2l6ZSk7XFxuK2ludCBmaWxlX3JlbW92ZXhhdHRyKHN0cnVjdCBmaWxlICpmLCBzdHJ1Y3QgeGF0dHJfbmFtZSAqa25hbWUpO1xcbiBcXG4gaW50IG1heV93cml0ZV94YXR0cihzdHJ1Y3QgbW50X2lkbWFwICppZG1hcCwgc3RydWN0IGlub2RlICppbm9kZSk7XFxuIFxcbmRpZmYgLS1naXQgYS9mcy94YXR0ci5jIGIvZnMveGF0dHIuY1xcbmluZGV4IGQ1ODk3OTExNTIwMDc1Li5hM2E3MjQxODQ2YzMxMyAxMDA2NDRcXG4tLS0gYS9mcy94YXR0ci5jXFxuKysrIGIvZnMveGF0dHIuY1xcbkBAIC05NTMsMTcgKzk1MywxNSBAQCBsaXN0eGF0dHIoc3RydWN0IGRlbnRyeSAqZCwgY2hhciBfX3VzZXIgKmxpc3QsIHNpemVfdCBzaXplKVxcbiBcXHRyZXR1cm4gZXJyb3I7XFxuIH1cXG4gXFxuLXN0YXRpY1xcbiBzc2l6ZV90IGZpbGVfbGlzdHhhdHRyKHN0cnVjdCBmaWxlICpmLCBjaGFyIF9fdXNlciAqbGlzdCwgc2l6ZV90IHNpemUpXFxuIHtcXG4gXFx0YXVkaXRfZmlsZShmKTtcXG4gXFx0cmV0dXJuIGxpc3R4YXR0cihmLVxcdTAwM2VmX3BhdGguZGVudHJ5LCBsaXN0LCBzaXplKTtcXG4gfVxcbiBcXG4tc3RhdGljXFxuLXNzaXplX3QgZmlsZW5hbWVfbGlzdHhhdHRyKGludCBkZmQsIHN0cnVjdCBmaWxlbmFtZSAqZmlsZW5hbWUsXFxuLVxcdFxcdFxcdCAgIHVuc2lnbmVkIGludCBsb29rdXBfZmxhZ3MsXFxuLVxcdFxcdFxcdCAgIGNoYXIgX191c2VyICpsaXN0LCBzaXplX3Qgc2l6ZSlcXG4rc3RhdGljIHNzaXplX3QgZmlsZW5hbWVfbGlzdHhhdHRyKGludCBkZmQsIHN0cnVjdCBmaWxlbmFtZSAqZmlsZW5hbWUsXFxuK1xcdFxcdFxcdFxcdCAgdW5zaWduZWQgaW50IGxvb2t1cF9mbGFncyxcXG4rXFx0XFx0XFx0XFx0ICBjaGFyIF9fdXNlciAqbGlzdCwgc2l6ZV90IHNpemUpXFxuIHtcXG4gXFx0c3RydWN0IHBhdGggcGF0aDtcXG4gXFx0c3NpemVfdCBlcnJvcjtcXG5AQCAtMTAzNiw3ICsxMDM0LDcgQEAgcmVtb3ZleGF0dHIoc3RydWN0IG1udF9pZG1hcCAqaWRtYXAsIHN0cnVjdCBkZW50cnkgKmQsIGNvbnN0IGNoYXIgKm5hbWUpXFxuIFxcdHJldHVybiB2ZnNfcmVtb3ZleGF0dHIoaWRtYXAsIGQsIG5hbWUpO1xcbiB9XFxuIFxcbi1zdGF0aWMgaW50IGZpbGVfcmVtb3ZleGF0dHIoc3RydWN0IGZpbGUgKmYsIHN0cnVjdCB4YXR0cl9uYW1lICprbmFtZSlcXG4raW50IGZpbGVfcmVtb3ZleGF0dHIoc3RydWN0IGZpbGUgKmYsIHN0cnVjdCB4YXR0cl9uYW1lICprbmFtZSlcXG4ge1xcbiBcXHRpbnQgZXJyb3IgPSBtbnRfd2FudF93cml0ZV9maWxlKGYpO1xcbiBcXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2lvX3VyaW5nLmggYi9pbmNsdWRlL3VhcGkvbGludXgvaW9fdXJpbmcuaFxcbmluZGV4IDkwOWZiN2FlYTYzOGViLi44MDVmMWUzMWY0OTI1MSAxMDA2NDRcXG4tLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvaW9fdXJpbmcuaFxcbisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oXFxuQEAgLTMxOCw2ICszMTgsOCBAQCBlbnVtIGlvX3VyaW5nX29wIHtcXG4gXFx0SU9SSU5HX09QX1BJUEUsXFxuIFxcdElPUklOR19PUF9OT1AxMjgsXFxuIFxcdElPUklOR19PUF9VUklOR19DTUQxMjgsXFxuK1xcdElPUklOR19PUF9GUkVNT1ZFWEFUVFIsXFxuK1xcdElPUklOR19PUF9GTElTVFhBVFRSLFxcbiBcXG4gXFx0LyogdGhpcyBnb2VzIGxhc3QsIG9idmlvdXNseSAqL1xcbiBcXHRJT1JJTkdfT1BfTEFTVCxcXG5kaWZmIC0tZ2l0IGEvaW9fdXJpbmcvb3BkZWYuYyBiL2lvX3VyaW5nL29wZGVmLmNcXG5pbmRleCA0ZTU4ZWIxMzQ0ZWFhMy4uMjVkOTIyOWQ4ZmMwMDIgMTAwNjQ0XFxuLS0tIGEvaW9fdXJpbmcvb3BkZWYuY1xcbisrKyBiL2lvX3VyaW5nL29wZGVmLmNcXG5AQCAtNTkxLDYgKzU5MSwxNiBAQCBjb25zdCBzdHJ1Y3QgaW9faXNzdWVfZGVmIGlvX2lzc3VlX2RlZnNbXSA9IHtcXG4gXFx0XFx0LnByZXBcXHRcXHRcXHQ9IGlvX3VyaW5nX2NtZF9wcmVwLFxcbiBcXHRcXHQuaXNzdWVcXHRcXHRcXHQ9IGlvX3VyaW5nX2NtZCxcXG4gXFx0fSxcXG4rXFx0W0lPUklOR19PUF9GUkVNT1ZFWEFUVFJdID0ge1xcbitcXHRcXHQubmVlZHNfZmlsZVxcdFxcdD0gMSxcXG4rXFx0XFx0LnByZXBcXHRcXHRcXHQ9IGlvX2ZyZW1vdmV4YXR0cl9wcmVwLFxcbitcXHRcXHQuaXNzdWVcXHRcXHRcXHQ9IGlvX2ZyZW1vdmV4YXR0cixcXG4rXFx0fSxcXG4rXFx0W0lPUklOR19PUF9GTElTVFhBVFRSXSA9IHtcXG4rXFx0XFx0Lm5lZWRzX2ZpbGVcXHRcXHQ9IDEsXFxuK1xcdFxcdC5wcmVwXFx0XFx0XFx0PSBpb19mbGlzdHhhdHRyX3ByZXAsXFxuK1xcdFxcdC5pc3N1ZVxcdFxcdFxcdD0gaW9fZmxpc3R4YXR0cixcXG4rXFx0fSxcXG4gfTtcXG4gXFxuIGNvbnN0IHN0cnVjdCBpb19jb2xkX2RlZiBpb19jb2xkX2RlZnNbXSA9IHtcXG5AQCAtODQ5LDYgKzg1OSwxNCBAQCBjb25zdCBzdHJ1Y3QgaW9fY29sZF9kZWYgaW9fY29sZF9kZWZzW10gPSB7XFxuIFxcdFxcdC5zcWVfY29weVxcdFxcdD0gaW9fdXJpbmdfY21kX3NxZV9jb3B5LFxcbiBcXHRcXHQuY2xlYW51cFxcdFxcdD0gaW9fdXJpbmdfY21kX2NsZWFudXAsXFxuIFxcdH0sXFxuK1xcdFtJT1JJTkdfT1BfRlJFTU9WRVhBVFRSXSA9IHtcXG4rXFx0XFx0Lm5hbWVcXHRcXHRcXHQ9IFxcXCJGUkVNT1ZFWEFUVFJcXFwiLFxcbitcXHRcXHQuY2xlYW51cFxcdFxcdD0gaW9feGF0dHJfY2xlYW51cCxcXG4rXFx0fSxcXG4rXFx0W0lPUklOR19PUF9GTElTVFhBVFRSXSA9IHtcXG4rXFx0XFx0Lm5hbWVcXHRcXHRcXHQ9IFxcXCJGTElTVFhBVFRSXFxcIixcXG4rXFx0XFx0LmNsZWFudXBcXHRcXHQ9IGlvX3hhdHRyX2NsZWFudXAsXFxuK1xcdH0sXFxuIH07XFxuIFxcbiBjb25zdCBjaGFyICppb191cmluZ19nZXRfb3Bjb2RlKHU4IG9wY29kZSlcXG5kaWZmIC0tZ2l0IGEvaW9fdXJpbmcveGF0dHIuYyBiL2lvX3VyaW5nL3hhdHRyLmNcXG5pbmRleCA1MzAzZGYzZjI0N2Y0Yi4uOWI0MTBmOTFlZjQzNzggMTAwNjQ0XFxuLS0tIGEvaW9fdXJpbmcveGF0dHIuY1xcbisrKyBiL2lvX3VyaW5nL3hhdHRyLmNcXG5AQCAtMTk1LDMgKzE5NSw3NyBAQCBpbnQgaW9fc2V0eGF0dHIoc3RydWN0IGlvX2tpb2NiICpyZXEsIHVuc2lnbmVkIGludCBpc3N1ZV9mbGFncylcXG4gXFx0aW9feGF0dHJfZmluaXNoKHJlcSwgcmV0KTtcXG4gXFx0cmV0dXJuIElPVV9DT01QTEVURTtcXG4gfVxcbitcXG4raW50IGlvX2ZyZW1vdmV4YXR0cl9wcmVwKHN0cnVjdCBpb19raW9jYiAqcmVxLCBjb25zdCBzdHJ1Y3QgaW9fdXJpbmdfc3FlICpzcWUpXFxuK3tcXG4rXFx0c3RydWN0IGlvX3hhdHRyICppeCA9IGlvX2tpb2NiX3RvX2NtZChyZXEsIHN0cnVjdCBpb194YXR0cik7XFxuK1xcdGNvbnN0IGNoYXIgX191c2VyICpuYW1lO1xcbitcXHRpbnQgcmV0O1xcbitcXG4rXFx0SU5JVF9ERUxBWUVEX0ZJTEVOQU1FKFxcdTAwMjZpeC1cXHUwMDNlZmlsZW5hbWUpO1xcbitcXHRuYW1lID0gdTY0X3RvX3VzZXJfcHRyKFJFQURfT05DRShzcWUtXFx1MDAzZWFkZHIpKTtcXG4rXFxuK1xcdGlmIChSRUFEX09OQ0Uoc3FlLVxcdTAwM2VhZGRyMikgfHwgUkVBRF9PTkNFKHNxZS1cXHUwMDNlbGVuKSB8fCBSRUFEX09OQ0Uoc3FlLVxcdTAwM2V4YXR0cl9mbGFncykpXFxuK1xcdFxcdHJldHVybiAtRUlOVkFMO1xcbitcXG4rXFx0aXgtXFx1MDAzZWN0eC5rbmFtZSA9IGttYWxsb2Nfb2JqKCppeC1cXHUwMDNlY3R4LmtuYW1lKTtcXG4rXFx0aWYgKCFpeC1cXHUwMDNlY3R4LmtuYW1lKVxcbitcXHRcXHRyZXR1cm4gLUVOT01FTTtcXG4rXFxuK1xcdHJldCA9IGltcG9ydF94YXR0cl9uYW1lKGl4LVxcdTAwM2VjdHgua25hbWUsIG5hbWUpO1xcbitcXHRpZiAocmV0KSB7XFxuK1xcdFxcdGtmcmVlKGl4LVxcdTAwM2VjdHgua25hbWUpO1xcbitcXHRcXHRyZXR1cm4gcmV0O1xcbitcXHR9XFxuK1xcbitcXHRyZXEtXFx1MDAzZWZsYWdzIHw9IFJFUV9GX05FRURfQ0xFQU5VUDtcXG4rXFx0cmVxLVxcdTAwM2VmbGFncyB8PSBSRVFfRl9GT1JDRV9BU1lOQztcXG4rXFx0cmV0dXJuIDA7XFxuK31cXG4rXFxuK2ludCBpb19mcmVtb3ZleGF0dHIoc3RydWN0IGlvX2tpb2NiICpyZXEsIHVuc2lnbmVkIGludCBpc3N1ZV9mbGFncylcXG4re1xcbitcXHRzdHJ1Y3QgaW9feGF0dHIgKml4ID0gaW9fa2lvY2JfdG9fY21kKHJlcSwgc3RydWN0IGlvX3hhdHRyKTtcXG4rXFx0aW50IHJldDtcXG4rXFxuK1xcdFdBUk5fT05fT05DRShpc3N1ZV9mbGFncyBcXHUwMDI2IElPX1VSSU5HX0ZfTk9OQkxPQ0spO1xcbitcXG4rXFx0cmV0ID0gZmlsZV9yZW1vdmV4YXR0cihyZXEtXFx1MDAzZWZpbGUsIGl4LVxcdTAwM2VjdHgua25hbWUpO1xcbitcXHRpb194YXR0cl9maW5pc2gocmVxLCByZXQpO1xcbitcXHRyZXR1cm4gSU9VX0NPTVBMRVRFO1xcbit9XFxuK1xcbitpbnQgaW9fZmxpc3R4YXR0cl9wcmVwKHN0cnVjdCBpb19raW9jYiAqcmVxLCBjb25zdCBzdHJ1Y3QgaW9fdXJpbmdfc3FlICpzcWUpXFxuK3tcXG4rXFx0c3RydWN0IGlvX3hhdHRyICppeCA9IGlvX2tpb2NiX3RvX2NtZChyZXEsIHN0cnVjdCBpb194YXR0cik7XFxuK1xcbitcXHRJTklUX0RFTEFZRURfRklMRU5BTUUoXFx1MDAyNml4LVxcdTAwM2VmaWxlbmFtZSk7XFxuK1xcdGl4LVxcdTAwM2VjdHgua25hbWUgPSBOVUxMO1xcbitcXHRpeC1cXHUwMDNlY3R4Lmt2YWx1ZSA9IE5VTEw7XFxuK1xcbitcXHRpZiAoUkVBRF9PTkNFKHNxZS1cXHUwMDNlYWRkcikpXFxuK1xcdFxcdHJldHVybiAtRUlOVkFMO1xcbitcXG4rXFx0aXgtXFx1MDAzZWN0eC52YWx1ZSA9IHU2NF90b191c2VyX3B0cihSRUFEX09OQ0Uoc3FlLVxcdTAwM2VhZGRyMikpO1xcbitcXHRpeC1cXHUwMDNlY3R4LnNpemUgPSBSRUFEX09OQ0Uoc3FlLVxcdTAwM2VsZW4pO1xcbitcXHRpeC1cXHUwMDNlY3R4LmZsYWdzID0gUkVBRF9PTkNFKHNxZS1cXHUwMDNleGF0dHJfZmxhZ3MpO1xcbitcXG4rXFx0aWYgKGl4LVxcdTAwM2VjdHguZmxhZ3MpXFxuK1xcdFxcdHJldHVybiAtRUlOVkFMO1xcbitcXG4rXFx0cmVxLVxcdTAwM2VmbGFncyB8PSBSRVFfRl9ORUVEX0NMRUFOVVA7XFxuK1xcdHJlcS1cXHUwMDNlZmxhZ3MgfD0gUkVRX0ZfRk9SQ0VfQVNZTkM7XFxuK1xcdHJldHVybiAwO1xcbit9XFxuK1xcbitpbnQgaW9fZmxpc3R4YXR0cihzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgdW5zaWduZWQgaW50IGlzc3VlX2ZsYWdzKVxcbit7XFxuK1xcdHN0cnVjdCBpb194YXR0ciAqaXggPSBpb19raW9jYl90b19jbWQocmVxLCBzdHJ1Y3QgaW9feGF0dHIpO1xcbitcXHRpbnQgcmV0O1xcbitcXG4rXFx0V0FSTl9PTl9PTkNFKGlzc3VlX2ZsYWdzIFxcdTAwMjYgSU9fVVJJTkdfRl9OT05CTE9DSyk7XFxuK1xcbitcXHRyZXQgPSBmaWxlX2xpc3R4YXR0cihyZXEtXFx1MDAzZWZpbGUsIGl4LVxcdTAwM2VjdHgudmFsdWUsIGl4LVxcdTAwM2VjdHguc2l6ZSk7XFxuK1xcdGlvX3hhdHRyX2ZpbmlzaChyZXEsIHJldCk7XFxuK1xcdHJldHVybiBJT1VfQ09NUExFVEU7XFxuK31cXG5kaWZmIC0tZ2l0IGEvaW9fdXJpbmcveGF0dHIuaCBiL2lvX3VyaW5nL3hhdHRyLmhcXG5pbmRleCA5YjQ1OWQyYWU5MGM1YS4uZDI0ODdiNDlhNWQyMWEgMTAwNjQ0XFxuLS0tIGEvaW9fdXJpbmcveGF0dHIuaFxcbisrKyBiL2lvX3VyaW5nL3hhdHRyLmhcXG5AQCAtMTMsMyArMTMsOSBAQCBpbnQgaW9fZmdldHhhdHRyKHN0cnVjdCBpb19raW9jYiAqcmVxLCB1bnNpZ25lZCBpbnQgaXNzdWVfZmxhZ3MpO1xcbiBcXG4gaW50IGlvX2dldHhhdHRyX3ByZXAoc3RydWN0IGlvX2tpb2NiICpyZXEsIGNvbnN0IHN0cnVjdCBpb191cmluZ19zcWUgKnNxZSk7XFxuIGludCBpb19nZXR4YXR0cihzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgdW5zaWduZWQgaW50IGlzc3VlX2ZsYWdzKTtcXG4rXFxuK2ludCBpb19mcmVtb3ZleGF0dHJfcHJlcChzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgY29uc3Qgc3RydWN0IGlvX3VyaW5nX3NxZSAqc3FlKTtcXG4raW50IGlvX2ZyZW1vdmV4YXR0cihzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgdW5zaWduZWQgaW50IGlzc3VlX2ZsYWdzKTtcXG4rXFxuK2ludCBpb19mbGlzdHhhdHRyX3ByZXAoc3RydWN0IGlvX2tpb2NiICpyZXEsIGNvbnN0IHN0cnVjdCBpb191cmluZ19zcWUgKnNxZSk7XFxuK2ludCBpb19mbGlzdHhhdHRyKHN0cnVjdCBpb19raW9jYiAqcmVxLCB1bnNpZ25lZCBpbnQgaXNzdWVfZmxhZ3MpO1xcbmRpZmYgLS1naXQgYS90b29scy9pbmNsdWRlL3VhcGkvbGludXgvaW9fdXJpbmcuaCBiL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oXFxuaW5kZXggZjFjMTZmODE3NzQyMDAuLjc5YmY3YzIyMDA5ZGJiIDEwMDY0NFxcbi0tLSBhL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oXFxuKysrIGIvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2lvX3VyaW5nLmhcXG5AQCAtMjUzLDYgKzI1MywxOSBAQCBlbnVtIGlvX3VyaW5nX29wIHtcXG4gXFx0SU9SSU5HX09QX0ZVVEVYX1dBSVQsXFxuIFxcdElPUklOR19PUF9GVVRFWF9XQUtFLFxcbiBcXHRJT1JJTkdfT1BfRlVURVhfV0FJVFYsXFxuK1xcdElPUklOR19PUF9GSVhFRF9GRF9JTlNUQUxMLFxcbitcXHRJT1JJTkdfT1BfRlRSVU5DQVRFLFxcbitcXHRJT1JJTkdfT1BfQklORCxcXG4rXFx0SU9SSU5HX09QX0xJU1RFTixcXG4rXFx0SU9SSU5HX09QX1JFQ1ZfWkMsXFxuK1xcdElPUklOR19PUF9FUE9MTF9XQUlULFxcbitcXHRJT1JJTkdfT1BfUkVBRFZfRklYRUQsXFxuK1xcdElPUklOR19PUF9XUklURVZfRklYRUQsXFxuK1xcdElPUklOR19PUF9QSVBFLFxcbitcXHRJT1JJTkdfT1BfTk9QMTI4LFxcbitcXHRJT1JJTkdfT1BfVVJJTkdfQ01EMTI4LFxcbitcXHRJT1JJTkdfT1BfRlJFTU9WRVhBVFRSLFxcbitcXHRJT1JJTkdfT1BfRkxJU1RYQVRUUixcXG4gXFxuIFxcdC8qIHRoaXMgZ29lcyBsYXN0LCBvYnZpb3VzbHkgKi9cXG4gXFx0SU9SSU5HX09QX0xBU1QsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDAwOjI3OjI5LjI1MjQ5OTcxMVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjEzMjg5OTE2NDU2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIklPX1VSSU5HXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaW9fZnJlbW92ZXhhdHRyX3ByZXBcIixcbiAgICBcImlvX2ZyZW1vdmV4YXR0clwiLFxuICAgIFwiaW9fZmxpc3R4YXR0cl9wcmVwXCIsXG4gICAgXCJpb19mbGlzdHhhdHRyXCIsXG4gICAgXCJmaWxlX2xpc3R4YXR0clwiLFxuICAgIFwiZmlsZV9yZW1vdmV4YXR0clwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgbmV3IGlvX3VyaW5nIG9wY29kZXMgZm9yIGZyZW1vdmV4YXR0ciBhbmQgZmxpc3R4YXR0ciwgd2hpY2ggYXJlIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgaW9fdXJpbmdfZW50ZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNzczNzQ4Y2I4MjE3MTE2NTAyNzc1NjIxZjMxY2NhODIwOTQ5MjUzYlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDIyIDAwOjI3OjI2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMvaW50ZXJuYWwuaCBiL2ZzL2ludGVybmFsLmhcbmluZGV4IDM1NWQ5M2Y5MjIwODYxLi5lZTg2YjI0ZGI3OWFkMiAxMDA2NDRcbi0tLSBhL2ZzL2ludGVybmFsLmhcbisrKyBiL2ZzL2ludGVybmFsLmhcbkBAIC0yOTcsNiArMjk3LDggQEAgaW50IGZpbGVuYW1lX3NldHhhdHRyKGludCBkZmQsIHN0cnVjdCBmaWxlbmFtZSAqZmlsZW5hbWUsXG4gXHRcdCAgICAgIHVuc2lnbmVkIGludCBsb29rdXBfZmxhZ3MsIHN0cnVjdCBrZXJuZWxfeGF0dHJfY3R4ICpjdHgpO1xuIGludCBzZXR4YXR0cl9jb3B5KGNvbnN0IGNoYXIgX191c2VyICpuYW1lLCBzdHJ1Y3Qga2VybmVsX3hhdHRyX2N0eCAqY3R4KTtcbiBpbnQgaW1wb3J0X3hhdHRyX25hbWUoc3RydWN0IHhhdHRyX25hbWUgKmtuYW1lLCBjb25zdCBjaGFyIF9fdXNlciAqbmFtZSk7XG4rc3NpemVfdCBmaWxlX2xpc3R4YXR0cihzdHJ1Y3QgZmlsZSAqZiwgY2hhciBfX3VzZXIgKmxpc3QsIHNpemVfdCBzaXplKTtcbitpbnQgZmlsZV9yZW1vdmV4YXR0cihzdHJ1Y3QgZmlsZSAqZiwgc3RydWN0IHhhdHRyX25hbWUgKmtuYW1lKTtcbiBcbiBpbnQgbWF5X3dyaXRlX3hhdHRyKHN0cnVjdCBtbnRfaWRtYXAgKmlkbWFwLCBzdHJ1Y3QgaW5vZGUgKmlub2RlKTtcbiBcbmRpZmYgLS1naXQgYS9mcy94YXR0ci5jIGIvZnMveGF0dHIuY1xuaW5kZXggZDU4OTc5MTE1MjAwNzUuLmEzYTcyNDE4NDZjMzEzIDEwMDY0NFxuLS0tIGEvZnMveGF0dHIuY1xuKysrIGIvZnMveGF0dHIuY1xuQEAgLTk1MywxNyArOTUzLDE1IEBAIGxpc3R4YXR0cihzdHJ1Y3QgZGVudHJ5ICpkLCBjaGFyIF9fdXNlciAqbGlzdCwgc2l6ZV90IHNpemUpXG4gXHRyZXR1cm4gZXJyb3I7XG4gfVxuIFxuLXN0YXRpY1xuIHNzaXplX3QgZmlsZV9saXN0eGF0dHIoc3RydWN0IGZpbGUgKmYsIGNoYXIgX191c2VyICpsaXN0LCBzaXplX3Qgc2l6ZSlcbiB7XG4gXHRhdWRpdF9maWxlKGYpO1xuIFx0cmV0dXJuIGxpc3R4YXR0cihmLVx1MDAzZWZfcGF0aC5kZW50cnksIGxpc3QsIHNpemUpO1xuIH1cbiBcbi1zdGF0aWNcbi1zc2l6ZV90IGZpbGVuYW1lX2xpc3R4YXR0cihpbnQgZGZkLCBzdHJ1Y3QgZmlsZW5hbWUgKmZpbGVuYW1lLFxuLVx0XHRcdCAgIHVuc2lnbmVkIGludCBsb29rdXBfZmxhZ3MsXG4tXHRcdFx0ICAgY2hhciBfX3VzZXIgKmxpc3QsIHNpemVfdCBzaXplKVxuK3N0YXRpYyBzc2l6ZV90IGZpbGVuYW1lX2xpc3R4YXR0cihpbnQgZGZkLCBzdHJ1Y3QgZmlsZW5hbWUgKmZpbGVuYW1lLFxuK1x0XHRcdFx0ICB1bnNpZ25lZCBpbnQgbG9va3VwX2ZsYWdzLFxuK1x0XHRcdFx0ICBjaGFyIF9fdXNlciAqbGlzdCwgc2l6ZV90IHNpemUpXG4ge1xuIFx0c3RydWN0IHBhdGggcGF0aDtcbiBcdHNzaXplX3QgZXJyb3I7XG5AQCAtMTAzNiw3ICsxMDM0LDcgQEAgcmVtb3ZleGF0dHIoc3RydWN0IG1udF9pZG1hcCAqaWRtYXAsIHN0cnVjdCBkZW50cnkgKmQsIGNvbnN0IGNoYXIgKm5hbWUpXG4gXHRyZXR1cm4gdmZzX3JlbW92ZXhhdHRyKGlkbWFwLCBkLCBuYW1lKTtcbiB9XG4gXG4tc3RhdGljIGludCBmaWxlX3JlbW92ZXhhdHRyKHN0cnVjdCBmaWxlICpmLCBzdHJ1Y3QgeGF0dHJfbmFtZSAqa25hbWUpXG4raW50IGZpbGVfcmVtb3ZleGF0dHIoc3RydWN0IGZpbGUgKmYsIHN0cnVjdCB4YXR0cl9uYW1lICprbmFtZSlcbiB7XG4gXHRpbnQgZXJyb3IgPSBtbnRfd2FudF93cml0ZV9maWxlKGYpO1xuIFxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2lvX3VyaW5nLmhcbmluZGV4IDkwOWZiN2FlYTYzOGViLi44MDVmMWUzMWY0OTI1MSAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oXG4rKysgYi9pbmNsdWRlL3VhcGkvbGludXgvaW9fdXJpbmcuaFxuQEAgLTMxOCw2ICszMTgsOCBAQCBlbnVtIGlvX3VyaW5nX29wIHtcbiBcdElPUklOR19PUF9QSVBFLFxuIFx0SU9SSU5HX09QX05PUDEyOCxcbiBcdElPUklOR19PUF9VUklOR19DTUQxMjgsXG4rXHRJT1JJTkdfT1BfRlJFTU9WRVhBVFRSLFxuK1x0SU9SSU5HX09QX0ZMSVNUWEFUVFIsXG4gXG4gXHQvKiB0aGlzIGdvZXMgbGFzdCwgb2J2aW91c2x5ICovXG4gXHRJT1JJTkdfT1BfTEFTVCxcbmRpZmYgLS1naXQgYS9pb191cmluZy9vcGRlZi5jIGIvaW9fdXJpbmcvb3BkZWYuY1xuaW5kZXggNGU1OGViMTM0NGVhYTMuLjI1ZDkyMjlkOGZjMDAyIDEwMDY0NFxuLS0tIGEvaW9fdXJpbmcvb3BkZWYuY1xuKysrIGIvaW9fdXJpbmcvb3BkZWYuY1xuQEAgLTU5MSw2ICs1OTEsMTYgQEAgY29uc3Qgc3RydWN0IGlvX2lzc3VlX2RlZiBpb19pc3N1ZV9kZWZzW10gPSB7XG4gXHRcdC5wcmVwXHRcdFx0PSBpb191cmluZ19jbWRfcHJlcCxcbiBcdFx0Lmlzc3VlXHRcdFx0PSBpb191cmluZ19jbWQsXG4gXHR9LFxuK1x0W0lPUklOR19PUF9GUkVNT1ZFWEFUVFJdID0ge1xuK1x0XHQubmVlZHNfZmlsZVx0XHQ9IDEsXG4rXHRcdC5wcmVwXHRcdFx0PSBpb19mcmVtb3ZleGF0dHJfcHJlcCxcbitcdFx0Lmlzc3VlXHRcdFx0PSBpb19mcmVtb3ZleGF0dHIsXG4rXHR9LFxuK1x0W0lPUklOR19PUF9GTElTVFhBVFRSXSA9IHtcbitcdFx0Lm5lZWRzX2ZpbGVcdFx0PSAxLFxuK1x0XHQucHJlcFx0XHRcdD0gaW9fZmxpc3R4YXR0cl9wcmVwLFxuK1x0XHQuaXNzdWVcdFx0XHQ9IGlvX2ZsaXN0eGF0dHIsXG4rXHR9LFxuIH07XG4gXG4gY29uc3Qgc3RydWN0IGlvX2NvbGRfZGVmIGlvX2NvbGRfZGVmc1tdID0ge1xuQEAgLTg0OSw2ICs4NTksMTQgQEAgY29uc3Qgc3RydWN0IGlvX2NvbGRfZGVmIGlvX2NvbGRfZGVmc1tdID0ge1xuIFx0XHQuc3FlX2NvcHlcdFx0PSBpb191cmluZ19jbWRfc3FlX2NvcHksXG4gXHRcdC5jbGVhbnVwXHRcdD0gaW9fdXJpbmdfY21kX2NsZWFudXAsXG4gXHR9LFxuK1x0W0lPUklOR19PUF9GUkVNT1ZFWEFUVFJdID0ge1xuK1x0XHQubmFtZVx0XHRcdD0gXCJGUkVNT1ZFWEFUVFJcIixcbitcdFx0LmNsZWFudXBcdFx0PSBpb194YXR0cl9jbGVhbnVwLFxuK1x0fSxcbitcdFtJT1JJTkdfT1BfRkxJU1RYQVRUUl0gPSB7XG4rXHRcdC5uYW1lXHRcdFx0PSBcIkZMSVNUWEFUVFJcIixcbitcdFx0LmNsZWFudXBcdFx0PSBpb194YXR0cl9jbGVhbnVwLFxuK1x0fSxcbiB9O1xuIFxuIGNvbnN0IGNoYXIgKmlvX3VyaW5nX2dldF9vcGNvZGUodTggb3Bjb2RlKVxuZGlmZiAtLWdpdCBhL2lvX3VyaW5nL3hhdHRyLmMgYi9pb191cmluZy94YXR0ci5jXG5pbmRleCA1MzAzZGYzZjI0N2Y0Yi4uOWI0MTBmOTFlZjQzNzggMTAwNjQ0XG4tLS0gYS9pb191cmluZy94YXR0ci5jXG4rKysgYi9pb191cmluZy94YXR0ci5jXG5AQCAtMTk1LDMgKzE5NSw3NyBAQCBpbnQgaW9fc2V0eGF0dHIoc3RydWN0IGlvX2tpb2NiICpyZXEsIHVuc2lnbmVkIGludCBpc3N1ZV9mbGFncylcbiBcdGlvX3hhdHRyX2ZpbmlzaChyZXEsIHJldCk7XG4gXHRyZXR1cm4gSU9VX0NPTVBMRVRFO1xuIH1cbitcbitpbnQgaW9fZnJlbW92ZXhhdHRyX3ByZXAoc3RydWN0IGlvX2tpb2NiICpyZXEsIGNvbnN0IHN0cnVjdCBpb191cmluZ19zcWUgKnNxZSlcbit7XG4rXHRzdHJ1Y3QgaW9feGF0dHIgKml4ID0gaW9fa2lvY2JfdG9fY21kKHJlcSwgc3RydWN0IGlvX3hhdHRyKTtcbitcdGNvbnN0IGNoYXIgX191c2VyICpuYW1lO1xuK1x0aW50IHJldDtcbitcbitcdElOSVRfREVMQVlFRF9GSUxFTkFNRShcdTAwMjZpeC1cdTAwM2VmaWxlbmFtZSk7XG4rXHRuYW1lID0gdTY0X3RvX3VzZXJfcHRyKFJFQURfT05DRShzcWUtXHUwMDNlYWRkcikpO1xuK1xuK1x0aWYgKFJFQURfT05DRShzcWUtXHUwMDNlYWRkcjIpIHx8IFJFQURfT05DRShzcWUtXHUwMDNlbGVuKSB8fCBSRUFEX09OQ0Uoc3FlLVx1MDAzZXhhdHRyX2ZsYWdzKSlcbitcdFx0cmV0dXJuIC1FSU5WQUw7XG4rXG4rXHRpeC1cdTAwM2VjdHgua25hbWUgPSBrbWFsbG9jX29iaigqaXgtXHUwMDNlY3R4LmtuYW1lKTtcbitcdGlmICghaXgtXHUwMDNlY3R4LmtuYW1lKVxuK1x0XHRyZXR1cm4gLUVOT01FTTtcbitcbitcdHJldCA9IGltcG9ydF94YXR0cl9uYW1lKGl4LVx1MDAzZWN0eC5rbmFtZSwgbmFtZSk7XG4rXHRpZiAocmV0KSB7XG4rXHRcdGtmcmVlKGl4LVx1MDAzZWN0eC5rbmFtZSk7XG4rXHRcdHJldHVybiByZXQ7XG4rXHR9XG4rXG4rXHRyZXEtXHUwMDNlZmxhZ3MgfD0gUkVRX0ZfTkVFRF9DTEVBTlVQO1xuK1x0cmVxLVx1MDAzZWZsYWdzIHw9IFJFUV9GX0ZPUkNFX0FTWU5DO1xuK1x0cmV0dXJuIDA7XG4rfVxuK1xuK2ludCBpb19mcmVtb3ZleGF0dHIoc3RydWN0IGlvX2tpb2NiICpyZXEsIHVuc2lnbmVkIGludCBpc3N1ZV9mbGFncylcbit7XG4rXHRzdHJ1Y3QgaW9feGF0dHIgKml4ID0gaW9fa2lvY2JfdG9fY21kKHJlcSwgc3RydWN0IGlvX3hhdHRyKTtcbitcdGludCByZXQ7XG4rXG4rXHRXQVJOX09OX09OQ0UoaXNzdWVfZmxhZ3MgXHUwMDI2IElPX1VSSU5HX0ZfTk9OQkxPQ0spO1xuK1xuK1x0cmV0ID0gZmlsZV9yZW1vdmV4YXR0cihyZXEtXHUwMDNlZmlsZSwgaXgtXHUwMDNlY3R4LmtuYW1lKTtcbitcdGlvX3hhdHRyX2ZpbmlzaChyZXEsIHJldCk7XG4rXHRyZXR1cm4gSU9VX0NPTVBMRVRFO1xuK31cbitcbitpbnQgaW9fZmxpc3R4YXR0cl9wcmVwKHN0cnVjdCBpb19raW9jYiAqcmVxLCBjb25zdCBzdHJ1Y3QgaW9fdXJpbmdfc3FlICpzcWUpXG4re1xuK1x0c3RydWN0IGlvX3hhdHRyICppeCA9IGlvX2tpb2NiX3RvX2NtZChyZXEsIHN0cnVjdCBpb194YXR0cik7XG4rXG4rXHRJTklUX0RFTEFZRURfRklMRU5BTUUoXHUwMDI2aXgtXHUwMDNlZmlsZW5hbWUpO1xuK1x0aXgtXHUwMDNlY3R4LmtuYW1lID0gTlVMTDtcbitcdGl4LVx1MDAzZWN0eC5rdmFsdWUgPSBOVUxMO1xuK1xuK1x0aWYgKFJFQURfT05DRShzcWUtXHUwMDNlYWRkcikpXG4rXHRcdHJldHVybiAtRUlOVkFMO1xuK1xuK1x0aXgtXHUwMDNlY3R4LnZhbHVlID0gdTY0X3RvX3VzZXJfcHRyKFJFQURfT05DRShzcWUtXHUwMDNlYWRkcjIpKTtcbitcdGl4LVx1MDAzZWN0eC5zaXplID0gUkVBRF9PTkNFKHNxZS1cdTAwM2VsZW4pO1xuK1x0aXgtXHUwMDNlY3R4LmZsYWdzID0gUkVBRF9PTkNFKHNxZS1cdTAwM2V4YXR0cl9mbGFncyk7XG4rXG4rXHRpZiAoaXgtXHUwMDNlY3R4LmZsYWdzKVxuK1x0XHRyZXR1cm4gLUVJTlZBTDtcbitcbitcdHJlcS1cdTAwM2VmbGFncyB8PSBSRVFfRl9ORUVEX0NMRUFOVVA7XG4rXHRyZXEtXHUwMDNlZmxhZ3MgfD0gUkVRX0ZfRk9SQ0VfQVNZTkM7XG4rXHRyZXR1cm4gMDtcbit9XG4rXG4raW50IGlvX2ZsaXN0eGF0dHIoc3RydWN0IGlvX2tpb2NiICpyZXEsIHVuc2lnbmVkIGludCBpc3N1ZV9mbGFncylcbit7XG4rXHRzdHJ1Y3QgaW9feGF0dHIgKml4ID0gaW9fa2lvY2JfdG9fY21kKHJlcSwgc3RydWN0IGlvX3hhdHRyKTtcbitcdGludCByZXQ7XG4rXG4rXHRXQVJOX09OX09OQ0UoaXNzdWVfZmxhZ3MgXHUwMDI2IElPX1VSSU5HX0ZfTk9OQkxPQ0spO1xuK1xuK1x0cmV0ID0gZmlsZV9saXN0eGF0dHIocmVxLVx1MDAzZWZpbGUsIGl4LVx1MDAzZWN0eC52YWx1ZSwgaXgtXHUwMDNlY3R4LnNpemUpO1xuK1x0aW9feGF0dHJfZmluaXNoKHJlcSwgcmV0KTtcbitcdHJldHVybiBJT1VfQ09NUExFVEU7XG4rfVxuZGlmZiAtLWdpdCBhL2lvX3VyaW5nL3hhdHRyLmggYi9pb191cmluZy94YXR0ci5oXG5pbmRleCA5YjQ1OWQyYWU5MGM1YS4uZDI0ODdiNDlhNWQyMWEgMTAwNjQ0XG4tLS0gYS9pb191cmluZy94YXR0ci5oXG4rKysgYi9pb191cmluZy94YXR0ci5oXG5AQCAtMTMsMyArMTMsOSBAQCBpbnQgaW9fZmdldHhhdHRyKHN0cnVjdCBpb19raW9jYiAqcmVxLCB1bnNpZ25lZCBpbnQgaXNzdWVfZmxhZ3MpO1xuIFxuIGludCBpb19nZXR4YXR0cl9wcmVwKHN0cnVjdCBpb19raW9jYiAqcmVxLCBjb25zdCBzdHJ1Y3QgaW9fdXJpbmdfc3FlICpzcWUpO1xuIGludCBpb19nZXR4YXR0cihzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgdW5zaWduZWQgaW50IGlzc3VlX2ZsYWdzKTtcbitcbitpbnQgaW9fZnJlbW92ZXhhdHRyX3ByZXAoc3RydWN0IGlvX2tpb2NiICpyZXEsIGNvbnN0IHN0cnVjdCBpb191cmluZ19zcWUgKnNxZSk7XG4raW50IGlvX2ZyZW1vdmV4YXR0cihzdHJ1Y3QgaW9fa2lvY2IgKnJlcSwgdW5zaWduZWQgaW50IGlzc3VlX2ZsYWdzKTtcbitcbitpbnQgaW9fZmxpc3R4YXR0cl9wcmVwKHN0cnVjdCBpb19raW9jYiAqcmVxLCBjb25zdCBzdHJ1Y3QgaW9fdXJpbmdfc3FlICpzcWUpO1xuK2ludCBpb19mbGlzdHhhdHRyKHN0cnVjdCBpb19raW9jYiAqcmVxLCB1bnNpZ25lZCBpbnQgaXNzdWVfZmxhZ3MpO1xuZGlmZiAtLWdpdCBhL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oIGIvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2lvX3VyaW5nLmhcbmluZGV4IGYxYzE2ZjgxNzc0MjAwLi43OWJmN2MyMjAwOWRiYiAxMDA2NDRcbi0tLSBhL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oXG4rKysgYi90b29scy9pbmNsdWRlL3VhcGkvbGludXgvaW9fdXJpbmcuaFxuQEAgLTI1Myw2ICsyNTMsMTkgQEAgZW51bSBpb191cmluZ19vcCB7XG4gXHRJT1JJTkdfT1BfRlVURVhfV0FJVCxcbiBcdElPUklOR19PUF9GVVRFWF9XQUtFLFxuIFx0SU9SSU5HX09QX0ZVVEVYX1dBSVRWLFxuK1x0SU9SSU5HX09QX0ZJWEVEX0ZEX0lOU1RBTEwsXG4rXHRJT1JJTkdfT1BfRlRSVU5DQVRFLFxuK1x0SU9SSU5HX09QX0JJTkQsXG4rXHRJT1JJTkdfT1BfTElTVEVOLFxuK1x0SU9SSU5HX09QX1JFQ1ZfWkMsXG4rXHRJT1JJTkdfT1BfRVBPTExfV0FJVCxcbitcdElPUklOR19PUF9SRUFEVl9GSVhFRCxcbitcdElPUklOR19PUF9XUklURVZfRklYRUQsXG4rXHRJT1JJTkdfT1BfUElQRSxcbitcdElPUklOR19PUF9OT1AxMjgsXG4rXHRJT1JJTkdfT1BfVVJJTkdfQ01EMTI4LFxuK1x0SU9SSU5HX09QX0ZSRU1PVkVYQVRUUixcbitcdElPUklOR19PUF9GTElTVFhBVFRSLFxuIFxuIFx0LyogdGhpcyBnb2VzIGxhc3QsIG9idmlvdXNseSAqL1xuIFx0SU9SSU5HX09QX0xBU1QsXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwMDoyNzoyOS4yNTI1MDI1MzFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MTIzNDA4Mzg2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIGlvX3VyaW5nIFhhdHRyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQgc2VlbXMgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZC4gVGhleSdyZSBhZGRpbmcgc3VwcG9ydCBmb3IgYElPUklOR19PUF9GUkVNT1ZFWEFUVFJgIGFuZCBgSU9SSU5HX09QX0ZMSVNUWEFUVFJgIHRvIGlvX3VyaW5nLiBGdW5jdGlvbmFsbHksIHRoaXMgaXMgYSBzaWduaWZpY2FudCBhZGRpdGlvbiwgaW50cm9kdWNpbmcgbmV3IG9wY29kZXMsIHNvIEkgbmVlZCB0byBiZSB0aG9yb3VnaC5cblxuVGhlIHBhdGNoIGl0c2VsZiB0b3VjaGVzIGEgZmFpciBudW1iZXIgb2YgZmlsZXM6IGBmcy9pbnRlcm5hbC5oYCBhbmQgYGZzL3hhdHRyLmNgIGFyZSBtb2RpZmllZCwgbGlrZWx5IHRvIGV4cG9zZSB0aGUga2VybmVsLWxldmVsIGZ1bmN0aW9ucyBgZmlsZV9saXN0eGF0dHJgIGFuZCBgZmlsZV9yZW1vdmV4YXR0cmAuIEl0IGxvb2tzIGxpa2UgdGhlIGBpbmNsdWRlL3VhcGkvbGludXgvaW9fdXJpbmcuaGAgaGVhZGVyIGdldHMgdGhlIG5ldyBvcGNvZGVzIGRlZmluZWQgYW5kIHRoZSBpbXBsZW1lbnRhdGlvbiB3aXRoaW4gYGlvX3VyaW5nL29wZGVmLmNgLiBUaGUgY29yZSBmdW5jdGlvbmFsaXR5IHJlc2lkZXMgaW4gYGlvX3VyaW5nL3hhdHRyLmNgIHdpdGggdGhlIHByZXAgYW5kIGV4ZWN1dGlvbiBmdW5jdGlvbnM6IGBpb19mcmVtb3ZleGF0dHJfcHJlcGAsIGBpb19mcmVtb3ZleGF0dHJgLCBgaW9fZmxpc3R4YXR0cl9wcmVwYCwgYW5kIGBpb19mbGlzdHhhdHRyYC4gIE9mIGNvdXJzZSwgdGhlcmUncyBhIGNvcnJlc3BvbmRpbmcgYGlvX3VyaW5nL3hhdHRyLmhgIHRvIGRlY2xhcmUgdGhlbS4gQW5kIGZpbmFsbHksIHRoZSBgdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2lvX3VyaW5nLmhgIGhhcyBiZWVuIHN5bmNlZCB0byBzdGF5IGNvbnNpc3RlbnQuXG5cbkdpdmVuIHRoYXQgdGhpcyBpcyBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IGV4cGFuZHMgdGhlIGlvX3VyaW5nIG9wY29kZSBzZXQsIGZ1enppbmcgaXMgYWJzb2x1dGVseSBlc3NlbnRpYWwuIFRoYXQncyBhIGdpdmVuLlxuXG5JIG5lZWQgdG8gY29uZmlybSB0aGUgY29uZmlndXJhdGlvbiBvcHRpb24gaXMgY29ycmVjdC4gVGhlIHRleHQgbWVudGlvbnMgYENPTkZJR19JT19VUklOR2AsIGFuZCB0aGF0IG1ha2VzIHNlbnNlLCBidXQgSSdsbCB1c2UgYGdyZXBwZXJgIHRvIGNvbmZpcm0gdGhhdCBgSU9fVVJJTkdgIGlzIGRlZmluZWQgd2l0aGluIHRoZSBLY29uZmlnIGFuZCBpcywgaW4gZmFjdCwgdGhlIGNvcnJlY3QgZmxhZy5cblxuQmV5b25kIHRoYXQsIHRoZSBjcml0aWNhbCBmdW5jdGlvbnMgdG8gZm9jdXMgb24gZm9yIHRlc3Rpbmcgd2lsbCBiZSB0aG9zZSBpbnZvbHZlZCBpbiBwcmVwYXJpbmcgYW5kIGV4ZWN1dGluZyB0aGUgeGF0dHIgb3BlcmF0aW9ucywgYW5kIHRoZSBrZXJuZWwgZnVuY3Rpb25zIHRoZXkgaW50ZXJhY3Qgd2l0aCwgc286IGBpb19mcmVtb3ZleGF0dHJfcHJlcGAsIGBpb19mcmVtb3ZleGF0dHJgLCBgaW9fZmxpc3R4YXR0cl9wcmVwYCwgYGlvX2ZsaXN0eGF0dHJgLCBgZmlsZV9saXN0eGF0dHJgLCBhbmQgYGZpbGVfcmVtb3ZleGF0dHJgLiAgSSdsbCB3YW50IHRvIHRhcmdldCB0aGVzZSBleHBsaWNpdGx5IGluIG15IGZ1enppbmcgc3RyYXRlZ3kuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ3MzcsIk91dHB1dFRva2VucyI6MTgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNzAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwMDoyNzozNS4zNzU5MTQwNTdaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjk3NTYyMzQwMiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgSU9fVVJJTkdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiaW5pdC9LY29uZmlnPTE5MDc9Y29uZmlnIEFJT1xcbi0tXFxuaW5pdC9LY29uZmlnLTE5MTQtXFxuaW5pdC9LY29uZmlnOjE5MTU6Y29uZmlnIElPX1VSSU5HXFxuaW5pdC9LY29uZmlnLTE5MTYtXFx0Ym9vbCBcXFwiRW5hYmxlIElPIHVyaW5nIHN1cHBvcnRcXFwiIGlmIEVYUEVSVFxcbi0tXFxuaW5pdC9LY29uZmlnPTE5MjQ9Y29uZmlnIEdDT1ZfUFJPRklMRV9VUklOR1xcbi0tXFxuaW5pdC9LY29uZmlnLTE5MzYtXFxuaW5pdC9LY29uZmlnOjE5Mzc6Y29uZmlnIElPX1VSSU5HX01PQ0tfRklMRVxcbmluaXQvS2NvbmZpZy0xOTM4LVxcdHRyaXN0YXRlIFxcXCJFbmFibGUgaW9fdXJpbmcgbW9jayBmaWxlcyAoRXhwZXJpbWVudGFsKVxcXCIgaWYgRVhQRVJUXFxuLS1cXG5pb191cmluZy9LY29uZmlnLTUtXFxuaW9fdXJpbmcvS2NvbmZpZzo2OmNvbmZpZyBJT19VUklOR19aQ1JYXFxuaW9fdXJpbmcvS2NvbmZpZy03LVxcdGRlZl9ib29sIHlcXG4tLVxcbmlvX3VyaW5nL0tjb25maWctMTItXFxuaW9fdXJpbmcvS2NvbmZpZzoxMzpjb25maWcgSU9fVVJJTkdfQlBGXFxuaW9fdXJpbmcvS2NvbmZpZy0xNC1cXHRkZWZfYm9vbCB5XFxuLS1cXG5pb191cmluZy9LY29uZmlnLTE3LVxcbmlvX3VyaW5nL0tjb25maWc6MTg6Y29uZmlnIElPX1VSSU5HX0JQRl9PUFNcXG5pb191cmluZy9LY29uZmlnLTE5LVxcdGRlZl9ib29sIHlcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDA6Mjc6MzguMzUxNTQ1NzM5WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDEwMzk5MDEwMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIGlvX3VyaW5nIEltcGxlbWVudGF0aW9uIGZvciBFeHRlbmRlZCBBdHRyaWJ1dGUgUmVtb3ZhbCBhbmQgTGlzdGluZyoqXG5cbk9rYXksIHNvIEknbSBmb2N1c2luZyBvbiBhIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24sIGBJT19VUklOR2AsIGZvciB0aGlzIGFuYWx5c2lzLiBNeSBwcmltYXJ5IGludGVyZXN0IGxpZXMgaW4gdGhlIGltcGxlbWVudGF0aW9uIG9mIGV4dGVuZGVkIGF0dHJpYnV0ZSByZW1vdmFsIGFuZCBsaXN0aW5nIHRocm91Z2ggdGhlIGlvX3VyaW5nIGludGVyZmFjZS4gU3BlY2lmaWNhbGx5LCBJJ20gZXhhbWluaW5nIHRoZXNlIGZ1bmN0aW9uczogYGlvX2ZyZW1vdmV4YXR0cl9wcmVwYCwgYGlvX2ZyZW1vdmV4YXR0cmAsIGBpb19mbGlzdHhhdHRyX3ByZXBgLCBhbmQgYGlvX2ZsaXN0eGF0dHJgLlxuXG5JIG5lZWQgdG8gcXVpY2tseSBjb25maXJtIHRoYXQgYElPX1VSSU5HYCBpcyB0aGUgcmVsZXZhbnQgY29uZmlnLiBHaXZlbiB0aGUgbmF0dXJlIG9mIHRoZSBwYXRjaCwgd2hpY2ggaW50cm9kdWNlcyBuZXcgaW9fdXJpbmcgb3Bjb2RlcyBmb3IgYGZyZW1vdmV4YXR0cmAgYW5kIGBmbGlzdHhhdHRyYCwgYWNjZXNzaWJsZSBmcm9tIHVzZXJzcGFjZSB0aHJvdWdoIGBpb191cmluZ19lbnRlcmAsIHRoYXQncyBjZXJ0YWlubHkgdGhlIGNhc2UuIE5vIG5lZWQgdG8gZ2V0IGRpc3RyYWN0ZWQgYnkgYW55IG90aGVyIGNvbmZpZ3VyYXRpb25zLlxuXG5Ob3csIGxldCdzIHByb2NlZWQgd2l0aCBzZXR0aW5nIHRoZSByZXN1bHRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1ODk5LCJPdXRwdXRUb2tlbnMiOjEyNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwMDoyNzo0Mi40NTU1Mzg0ODFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg2ODczMTU3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJT19VUklOR1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImlvX2ZyZW1vdmV4YXR0cl9wcmVwXCIsXG4gICAgXCJpb19mcmVtb3ZleGF0dHJcIixcbiAgICBcImlvX2ZsaXN0eGF0dHJfcHJlcFwiLFxuICAgIFwiaW9fZmxpc3R4YXR0clwiLFxuICAgIFwiZmlsZV9saXN0eGF0dHJcIixcbiAgICBcImZpbGVfcmVtb3ZleGF0dHJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIG5ldyBpb191cmluZyBvcGNvZGVzIGZvciBmcmVtb3ZleGF0dHIgYW5kIGZsaXN0eGF0dHIsIHdoaWNoIGFyZSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIGlvX3VyaW5nX2VudGVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIklPX1VSSU5HXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaW9fZnJlbW92ZXhhdHRyX3ByZXBcIixcbiAgICBcImlvX2ZyZW1vdmV4YXR0clwiLFxuICAgIFwiaW9fZmxpc3R4YXR0cl9wcmVwXCIsXG4gICAgXCJpb19mbGlzdHhhdHRyXCIsXG4gICAgXCJmaWxlX2xpc3R4YXR0clwiLFxuICAgIFwiZmlsZV9yZW1vdmV4YXR0clwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgbmV3IGlvX3VyaW5nIG9wY29kZXMgZm9yIGZyZW1vdmV4YXR0ciBhbmQgZmxpc3R4YXR0ciwgd2hpY2ggYXJlIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgaW9fdXJpbmdfZW50ZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowtq97c[1] Phase: Succeeded StartedAt: 2026-07-22 00:27:54 +0000 UTC FinishedAt: 2026-07-22 00:27:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtq97c[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-22 00:27:54 +0000 UTC FinishedAt: 2026-07-22 00:27:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtq97c[2] Phase: Succeeded StartedAt: 2026-07-22 00:27:54 +0000 UTC FinishedAt: 2026-07-22 05:22:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtq97c[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-22 00:27:54 +0000 UTC FinishedAt: 2026-07-22 05:22:43 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-workflowtq97c[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-22 00:27:54 +0000 UTC FinishedAt: 2026-07-22 00:29:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtq97c[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-22 00:27:54 +0000 UTC FinishedAt: 2026-07-22 00:28:23 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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-workflowtq97c/series-workflowtq97c-convert-artifact-3052526676/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowtq97c[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-22 00:29:07 +0000 UTC FinishedAt: 2026-07-22 01:23:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtq97c[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-22 00:29:07 +0000 UTC FinishedAt: 2026-07-22 01:23:19 +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:*9175df9a-a8fc-452a-b540-84b99073b40d,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-workflowtq97c/series-workflowtq97c-convert-artifact-3052526676/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": "317fae44-b86a-4de7-9790-e4dfcdf0fee1", "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-workflowtq97c/series-workflowtq97c-build-action-909776850/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowtq97c[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-22 00:29:07 +0000 UTC FinishedAt: 2026-07-22 01:23:14 +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:*9175df9a-a8fc-452a-b540-84b99073b40d,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-workflowtq97c/series-workflowtq97c-convert-artifact-3052526676/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": "317fae44-b86a-4de7-9790-e4dfcdf0fee1", "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-workflowtq97c/series-workflowtq97c-build-action-909776850/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowtq97c[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-22 01:23:19 +0000 UTC FinishedAt: 2026-07-22 01:23:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtq97c[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-22 01:23:19 +0000 UTC FinishedAt: 2026-07-22 01:23:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtq97c[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-22 01:23:19 +0000 UTC FinishedAt: 2026-07-22 01:23:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtq97c[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-22 01:23:19 +0000 UTC FinishedAt: 2026-07-22 01:23:41 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-workflowtq97c/series-workflowtq97c-convert-artifact-509337363/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowtq97c[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-22 01:23:48 +0000 UTC FinishedAt: 2026-07-22 01:26:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtq97c[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-22 01:23:48 +0000 UTC FinishedAt: 2026-07-22 01:25:57 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*317fae44-b86a-4de7-9790-e4dfcdf0fee1,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-workflowtq97c/series-workflowtq97c-build-action-909776850/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-workflowtq97c[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-22 01:26:07 +0000 UTC FinishedAt: 2026-07-22 01:26:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtq97c[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-22 01:26:07 +0000 UTC FinishedAt: 2026-07-22 01:26:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtq97c[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-22 01:26:07 +0000 UTC FinishedAt: 2026-07-22 02:18:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtq97c[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-22 01:26:07 +0000 UTC FinishedAt: 2026-07-22 02:18:18 +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:*9175df9a-a8fc-452a-b540-84b99073b40d,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-workflowtq97c/series-workflowtq97c-convert-artifact-509337363/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": "db06f267-07c4-437b-a193-fd964ff15be6", "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-workflowtq97c/series-workflowtq97c-build-action-4164597063/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowtq97c[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-22 01:26:07 +0000 UTC FinishedAt: 2026-07-22 02:18:08 +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:*9175df9a-a8fc-452a-b540-84b99073b40d,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-workflowtq97c/series-workflowtq97c-convert-artifact-509337363/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": "db06f267-07c4-437b-a193-fd964ff15be6", "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-workflowtq97c/series-workflowtq97c-build-action-4164597063/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowtq97c[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-22 02:18:18 +0000 UTC FinishedAt: 2026-07-22 02:18:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtq97c[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-22 02:18:18 +0000 UTC FinishedAt: 2026-07-22 02:18:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtq97c[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-22 02:18:18 +0000 UTC FinishedAt: 2026-07-22 02:20:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtq97c[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-22 02:18:18 +0000 UTC FinishedAt: 2026-07-22 02:20:10 +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:*db06f267-07c4-437b-a193-fd964ff15be6,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-workflowtq97c/series-workflowtq97c-build-action-4164597063/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-workflowtq97c[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-22 02:20:20 +0000 UTC FinishedAt: 2026-07-22 05:22:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtq97c[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-22 02:20:20 +0000 UTC FinishedAt: 2026-07-22 05:22:43 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"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:*317fae44-b86a-4de7-9790-e4dfcdf0fee1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*db06f267-07c4-437b-a193-fd964ff15be6,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-workflowtq97c/series-workflowtq97c-build-action-909776850/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-workflowtq97c/series-workflowtq97c-build-action-4164597063/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowtq97c[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-22 02:20:20 +0000 UTC FinishedAt: 2026-07-22 02:20:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtq97c[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-22 02:20:20 +0000 UTC FinishedAt: 2026-07-22 02:20:38 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"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-workflowtq97c/series-workflowtq97c-convert-artifact-4094724236/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowtq97c[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-22 02:20:20 +0000 UTC FinishedAt: 2026-07-22 02:20:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtq97c[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-22 02:20:20 +0000 UTC FinishedAt: 2026-07-22 02:20:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtq97c[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-22 02:20:20 +0000 UTC FinishedAt: 2026-07-22 02:20:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtq97c[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-22 02:20:45 +0000 UTC FinishedAt: 2026-07-22 05:22:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtq97c[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"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/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["io_fremovexattr_prep","io_fremovexattr","io_flistxattr_prep","io_flistxattr","file_listxattr","file_removexattr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b95f03f04d475aa6719d15a636ddf32222d55657","config_name":"upstream-apparmor-kasan.config","enable_configs":["IO_URING"],"series_id":"bef25c39-3454-4b52-b0c7-a321748bddff","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-22 02:20:45 +0000 UTC FinishedAt: 2026-07-22 05:22:33 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*317fae44-b86a-4de7-9790-e4dfcdf0fee1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*db06f267-07c4-437b-a193-fd964ff15be6,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-workflowtq97c/series-workflowtq97c-build-action-909776850/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-workflowtq97c/series-workflowtq97c-build-action-4164597063/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-workflowtq97c/series-workflowtq97c-convert-artifact-4094724236/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,}