Name: series-workflowxrdpl Phase: Succeeded StartedAt: 2026-07-24 18:21:25 +0000 UTC FinishedAt: 2026-07-24 23:32:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxrdpl[0] Phase: Succeeded StartedAt: 2026-07-24 18:21:25 +0000 UTC FinishedAt: 2026-07-24 18:42:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxrdpl[0].run-triage Phase: Succeeded StartedAt: 2026-07-24 18:21:25 +0000 UTC FinishedAt: 2026-07-24 18:42:27 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "vfs", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git", "commit_hash": "ce76d9d4f5f36501013bd94bb65dd067f04b2913", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "EPOLL" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "vfs", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git", "commit_hash": "ce76d9d4f5f36501013bd94bb65dd067f04b2913", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "EPOLL" ], "series_id": "e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "pipe_set_epoll_usage", "pipe_poll" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDE4OjQxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0VQT0xMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cGlwZV9zZXRfZXBvbGxfdXNhZ2UmIzM0OywKICAgICYjMzQ7cGlwZV9wb2xsJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwaXBlIHBvbGxpbmcgbG9naWMgdG8gb25seSBzZXQgdGhlIGVwb2xsIHVzYWdlIGZsYWcgd2hlbiBhY3R1YWxseSB1c2VkIGJ5IGVwb2xsIChjaGVja2luZyBmaWxwLVx1MDAzZWZfZXApLCByYXRoZXIgdGhhbiBhbnkgcG9sbCB1c2FnZS4gVGhpcyBjaGFuZ2VzIHRoZSB3YWtldXAgYmVoYXZpb3IgaW4gYW5vbl9waXBlX3dyaXRlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gY29yZSBrZXJuZWwgcGlwZS9lcG9sbCBpbnRlcmFjdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAxODo0MTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDA2NzQ2MGMzOTQ2ZTYwYTIyOGRmMDUzZjYxODMzZmY0M2RhZmNmOGNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1bCAyNCAxODo0MTo0MyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9mcy9waXBlLmMgYi9mcy9waXBlLmNcbmluZGV4IDQyOWIwNzE0ZWM1NzU1Li5mYTRlNzBkNWY5MGQ4OSAxMDA2NDRcbi0tLSBhL2ZzL3BpcGUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZnMvcGlwZS5jXG5AQCAtMzU3LDYgJiM0MzszNTcsMjMgQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgcGlwZV91cGRhdGVfdGFpbChzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpwaXBlLFxuIFx0cmV0dXJuIHRhaWw7XG4gfVxuIFxuJiM0MztzdGF0aWMgdm9pZCBwaXBlX3NldF9lcG9sbF91c2FnZShzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqcGlwZSlcbiYjNDM7e1xuJiM0MzsjaWZkZWYgQ09ORklHX0VQT0xMXG4mIzQzO1x0aWYgKChmaWxwLVx1MDAzZWZfbW9kZSBcdTAwMjYgRk1PREVfUkVBRCkgXHUwMDI2XHUwMDI2IGZpbHAtXHUwMDNlZl9lcCBcdTAwMjZcdTAwMjZcbiYjNDM7XHQgICAgdW5saWtlbHkoIVJFQURfT05DRShwaXBlLVx1MDAzZWVwb2xsX3VzYWdlKSkpXG4mIzQzO1x0XHRXUklURV9PTkNFKHBpcGUtXHUwMDNlZXBvbGxfdXNhZ2UsIHRydWUpO1xuJiM0MzsjZW5kaWZcbiYjNDM7fVxuJiM0MztcbiYjNDM7c3RhdGljIGJvb2wgcGlwZV9nZXRfZXBvbGxfdXNhZ2Uoc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqcGlwZSlcbiYjNDM7e1xuJiM0MzsjaWZkZWYgQ09ORklHX0VQT0xMXG4mIzQzO1x0cmV0dXJuIHBpcGUtXHUwMDNlZXBvbGxfdXNhZ2U7XG4mIzQzOyNlbmRpZlxuJiM0MztcdHJldHVybiBmYWxzZTtcbiYjNDM7fVxuJiM0MztcbiBzdGF0aWMgc3NpemVfdFxuIGFub25fcGlwZV9yZWFkKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICp0bylcbiB7XG5AQCAtNjg5LDcgJiM0Mzs3MDYsNyBAQCBhbm9uX3BpcGVfd3JpdGUoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKmZyb20pXG4gXHQgKiBFcG9sbCBub25zZW5zaWNhbGx5IHdhbnRzIGEgd2FrZXVwIHdoZXRoZXIgdGhlIHBpcGVcbiBcdCAqIHdhcyBhbHJlYWR5IGVtcHR5IG9yIG5vdC5cbiBcdCAqL1xuLVx0aWYgKHdhc19lbXB0eSB8fCBwaXBlLVx1MDAzZXBvbGxfdXNhZ2UpXG4mIzQzO1x0aWYgKHdhc19lbXB0eSB8fCBwaXBlX2dldF9lcG9sbF91c2FnZShwaXBlKSlcbiBcdFx0d2FrZV91cF9pbnRlcnJ1cHRpYmxlX3N5bmNfcG9sbChcdTAwMjZwaXBlLVx1MDAzZXJkX3dhaXQsIEVQT0xMSU4gfCBFUE9MTFJETk9STSk7XG4gXHRraWxsX2Zhc3luYyhcdTAwMjZwaXBlLVx1MDAzZWZhc3luY19yZWFkZXJzLCBTSUdJTywgUE9MTF9JTik7XG4gXHRpZiAod2FrZV9uZXh0X3dyaXRlcilcbkBAIC03NjEsOSAmIzQzOzc3OCw3IEBAIHBpcGVfcG9sbChzdHJ1Y3QgZmlsZSAqZmlscCwgcG9sbF90YWJsZSAqd2FpdClcbiBcdHVuaW9uIHBpcGVfaW5kZXggaWR4O1xuIFxuIFx0LyogRXBvbGwgaGFzIHNvbWUgaGlzdG9yaWNhbCBuYXN0eSBzZW1hbnRpY3MsIHRoaXMgZW5hYmxlcyB0aGVtICovXG4tXHRpZiAodW5saWtlbHkoIVJFQURfT05DRShwaXBlLVx1MDAzZXBvbGxfdXNhZ2UpKSlcbi1cdFx0V1JJVEVfT05DRShwaXBlLVx1MDAzZXBvbGxfdXNhZ2UsIHRydWUpO1xuLVxuJiM0MztcdHBpcGVfc2V0X2Vwb2xsX3VzYWdlKGZpbHAsIHBpcGUpO1xuIFx0LypcbiBcdCAqIFJlYWRpbmcgcGlwZSBzdGF0ZSBvbmx5IC0tIG5vIG5lZWQgZm9yIGFjcXVpcmluZyB0aGUgc2VtYXBob3JlLlxuIFx0ICpcbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3BpcGVfZnNfaS5oIGIvaW5jbHVkZS9saW51eC9waXBlX2ZzX2kuaFxuaW5kZXggN2Y2YTkyYWM5NzA0NzguLmQwNmRhOWJhZDNhOGNjIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC9waXBlX2ZzX2kuaFxuJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9saW51eC9waXBlX2ZzX2kuaFxuQEAgLTc0LDcgJiM0Mzs3NCw3IEBAIHVuaW9uIHBpcGVfaW5kZXgge1xuICAqXHRAZmlsZXM6IG51bWJlciBvZiBzdHJ1Y3QgZmlsZSByZWZlcnJpbmcgdGhpcyBwaXBlIChwcm90ZWN0ZWQgYnkgLVx1MDAzZWlfbG9jaylcbiAgKlx0QHJfY291bnRlcjogcmVhZGVyIGNvdW50ZXJcbiAgKlx0QHdfY291bnRlcjogd3JpdGVyIGNvdW50ZXJcbi0gKlx0QHBvbGxfdXNhZ2U6IGlzIHRoaXMgcGlwZSB1c2VkIGZvciBlcG9sbCwgd2hpY2ggaGFzIGNyYXp5IHdha2V1cHM/XG4mIzQzOyAqXHRAZXBvbGxfdXNhZ2U6IGlzIHRoaXMgcGlwZSB1c2VkIGZvciBlcG9sbCwgd2hpY2ggaGFzIGNyYXp5IHdha2V1cHM/XG4gICpcdEBmYXN5bmNfcmVhZGVyczogcmVhZGVyIHNpZGUgZmFzeW5jXG4gICpcdEBmYXN5bmNfd3JpdGVyczogd3JpdGVyIHNpZGUgZmFzeW5jXG4gICpcdEBidWZzOiB0aGUgY2lyY3VsYXIgYXJyYXkgb2YgcGlwZSBidWZmZXJzXG5AQCAtOTUsNyAmIzQzOzk1LDkgQEAgc3RydWN0IHBpcGVfaW5vZGVfaW5mbyB7XG4gXHR1bnNpZ25lZCBpbnQgZmlsZXM7XG4gXHR1bnNpZ25lZCBpbnQgcl9jb3VudGVyO1xuIFx0dW5zaWduZWQgaW50IHdfY291bnRlcjtcbi1cdGJvb2wgcG9sbF91c2FnZTtcbiYjNDM7I2lmZGVmIENPTkZJR19FUE9MTFxuJiM0MztcdGJvb2wgZXBvbGxfdXNhZ2U7XG4mIzQzOyNlbmRpZlxuICNpZmRlZiBDT05GSUdfV0FUQ0hfUVVFVUVcbiBcdGJvb2wgbm90ZV9sb3NzO1xuICNlbmRpZlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDE4OjQxPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtFUE9MTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3BpcGVfc2V0X2Vwb2xsX3VzYWdlJiMzNDssCiAgICAmIzM0O3BpcGVfcG9sbCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgcGlwZSBwb2xsaW5nIGxvZ2ljIHRvIG9ubHkgc2V0IHRoZSBlcG9sbCB1c2FnZSBmbGFnIHdoZW4gYWN0dWFsbHkgdXNlZCBieSBlcG9sbCAoY2hlY2tpbmcgZmlscC1cdTAwM2VmX2VwKSwgcmF0aGVyIHRoYW4gYW55IHBvbGwgdXNhZ2UuIFRoaXMgY2hhbmdlcyB0aGUgd2FrZXVwIGJlaGF2aW9yIGluIGFub25fcGlwZV93cml0ZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIGNvcmUga2VybmVsIHBpcGUvZXBvbGwgaW50ZXJhY3Rpb24uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDA2NzQ2MGMzOTQ2ZTYwYTIyOGRmMDUzZjYxODMzZmY0M2RhZmNmOGMKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIEp1bCAyNCAxODo0MTo0MyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2ZzL3BpcGUuYyBiL2ZzL3BpcGUuYwppbmRleCA0MjliMDcxNGVjNTc1NS4uZmE0ZTcwZDVmOTBkODkgMTAwNjQ0Ci0tLSBhL2ZzL3BpcGUuYwomIzQzOyYjNDM7JiM0MzsgYi9mcy9waXBlLmMKQEAgLTM1Nyw2ICYjNDM7MzU3LDIzIEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IHBpcGVfdXBkYXRlX3RhaWwoc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqcGlwZSwKIAlyZXR1cm4gdGFpbDsKIH0KIAomIzQzO3N0YXRpYyB2b2lkIHBpcGVfc2V0X2Vwb2xsX3VzYWdlKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpwaXBlKQomIzQzO3sKJiM0MzsjaWZkZWYgQ09ORklHX0VQT0xMCiYjNDM7CWlmICgoZmlscC0mZ3Q7Zl9tb2RlICZhbXA7IEZNT0RFX1JFQUQpICZhbXA7JmFtcDsgZmlscC0mZ3Q7Zl9lcCAmYW1wOyZhbXA7CiYjNDM7CSAgICB1bmxpa2VseSghUkVBRF9PTkNFKHBpcGUtJmd0O2Vwb2xsX3VzYWdlKSkpCiYjNDM7CQlXUklURV9PTkNFKHBpcGUtJmd0O2Vwb2xsX3VzYWdlLCB0cnVlKTsKJiM0MzsjZW5kaWYKJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIGJvb2wgcGlwZV9nZXRfZXBvbGxfdXNhZ2Uoc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqcGlwZSkKJiM0Mzt7CiYjNDM7I2lmZGVmIENPTkZJR19FUE9MTAomIzQzOwlyZXR1cm4gcGlwZS0mZ3Q7ZXBvbGxfdXNhZ2U7CiYjNDM7I2VuZGlmCiYjNDM7CXJldHVybiBmYWxzZTsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgc3NpemVfdAogYW5vbl9waXBlX3JlYWQoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKnRvKQogewpAQCAtNjg5LDcgJiM0Mzs3MDYsNyBAQCBhbm9uX3BpcGVfd3JpdGUoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKmZyb20pCiAJICogRXBvbGwgbm9uc2Vuc2ljYWxseSB3YW50cyBhIHdha2V1cCB3aGV0aGVyIHRoZSBwaXBlCiAJICogd2FzIGFscmVhZHkgZW1wdHkgb3Igbm90LgogCSAqLwotCWlmICh3YXNfZW1wdHkgfHwgcGlwZS0mZ3Q7cG9sbF91c2FnZSkKJiM0MzsJaWYgKHdhc19lbXB0eSB8fCBwaXBlX2dldF9lcG9sbF91c2FnZShwaXBlKSkKIAkJd2FrZV91cF9pbnRlcnJ1cHRpYmxlX3N5bmNfcG9sbCgmYW1wO3BpcGUtJmd0O3JkX3dhaXQsIEVQT0xMSU4gfCBFUE9MTFJETk9STSk7CiAJa2lsbF9mYXN5bmMoJmFtcDtwaXBlLSZndDtmYXN5bmNfcmVhZGVycywgU0lHSU8sIFBPTExfSU4pOwogCWlmICh3YWtlX25leHRfd3JpdGVyKQpAQCAtNzYxLDkgJiM0Mzs3NzgsNyBAQCBwaXBlX3BvbGwoc3RydWN0IGZpbGUgKmZpbHAsIHBvbGxfdGFibGUgKndhaXQpCiAJdW5pb24gcGlwZV9pbmRleCBpZHg7CiAKIAkvKiBFcG9sbCBoYXMgc29tZSBoaXN0b3JpY2FsIG5hc3R5IHNlbWFudGljcywgdGhpcyBlbmFibGVzIHRoZW0gKi8KLQlpZiAodW5saWtlbHkoIVJFQURfT05DRShwaXBlLSZndDtwb2xsX3VzYWdlKSkpCi0JCVdSSVRFX09OQ0UocGlwZS0mZ3Q7cG9sbF91c2FnZSwgdHJ1ZSk7Ci0KJiM0MzsJcGlwZV9zZXRfZXBvbGxfdXNhZ2UoZmlscCwgcGlwZSk7CiAJLyoKIAkgKiBSZWFkaW5nIHBpcGUgc3RhdGUgb25seSAtLSBubyBuZWVkIGZvciBhY3F1aXJpbmcgdGhlIHNlbWFwaG9yZS4KIAkgKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9waXBlX2ZzX2kuaCBiL2luY2x1ZGUvbGludXgvcGlwZV9mc19pLmgKaW5kZXggN2Y2YTkyYWM5NzA0NzguLmQwNmRhOWJhZDNhOGNjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3BpcGVfZnNfaS5oCiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvcGlwZV9mc19pLmgKQEAgLTc0LDcgJiM0Mzs3NCw3IEBAIHVuaW9uIHBpcGVfaW5kZXggewogICoJQGZpbGVzOiBudW1iZXIgb2Ygc3RydWN0IGZpbGUgcmVmZXJyaW5nIHRoaXMgcGlwZSAocHJvdGVjdGVkIGJ5IC0mZ3Q7aV9sb2NrKQogICoJQHJfY291bnRlcjogcmVhZGVyIGNvdW50ZXIKICAqCUB3X2NvdW50ZXI6IHdyaXRlciBjb3VudGVyCi0gKglAcG9sbF91c2FnZTogaXMgdGhpcyBwaXBlIHVzZWQgZm9yIGVwb2xsLCB3aGljaCBoYXMgY3Jhenkgd2FrZXVwcz8KJiM0MzsgKglAZXBvbGxfdXNhZ2U6IGlzIHRoaXMgcGlwZSB1c2VkIGZvciBlcG9sbCwgd2hpY2ggaGFzIGNyYXp5IHdha2V1cHM/CiAgKglAZmFzeW5jX3JlYWRlcnM6IHJlYWRlciBzaWRlIGZhc3luYwogICoJQGZhc3luY193cml0ZXJzOiB3cml0ZXIgc2lkZSBmYXN5bmMKICAqCUBidWZzOiB0aGUgY2lyY3VsYXIgYXJyYXkgb2YgcGlwZSBidWZmZXJzCkBAIC05NSw3ICYjNDM7OTUsOSBAQCBzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvIHsKIAl1bnNpZ25lZCBpbnQgZmlsZXM7CiAJdW5zaWduZWQgaW50IHJfY291bnRlcjsKIAl1bnNpZ25lZCBpbnQgd19jb3VudGVyOwotCWJvb2wgcG9sbF91c2FnZTsKJiM0MzsjaWZkZWYgQ09ORklHX0VQT0xMCiYjNDM7CWJvb2wgZXBvbGxfdXNhZ2U7CiYjNDM7I2VuZGlmCiAjaWZkZWYgQ09ORklHX1dBVENIX1FVRVVFCiAJYm9vbCBub3RlX2xvc3M7CiAjZW5kaWYKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMTg6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjYyOAoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDMwMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQaXBlIFBhdGNoIGZvciBFcG9sbCBJbnRlZ3JhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHNlZW1zIHRvIGJlIHRvdWNoaW5nIHRoZSBwaXBlIGltcGxlbWVudGF0aW9uLCBzcGVjaWZpY2FsbHkgYGZzL3BpcGUuY2AgYW5kIGBpbmNsdWRlL2xpbnV4L3BpcGVfZnNfaS5oYC4gVGhlIGNvcmUgY2hhbmdlIEkmIzM5O20gc2VlaW5nIGlzIHRoZSByZW5hbWluZyBvZiBgcG9sbF91c2FnZWAgdG8gYGVwb2xsX3VzYWdlYCB3aXRoaW4gdGhlIGBzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvYCwgYW5kIGl0IGxvb2tzIGxpa2UgdGhpcyBpcyBjb25kaXRpb25hbCBvbiBgQ09ORklHX0VQT0xMYCBiZWluZyBlbmFibGVkLiBTbWFydCwga2VlcHMgdGhlIGNvcmUgZnVuY3Rpb25hbGl0eSBjbGVhbiBpZiBlcG9sbCBpc24mIzM5O3QgaW4gcGxheS4KClRoaXMgaXMgZm9sbG93ZWQgdXAgYnkgdGhlIGludHJvZHVjdGlvbiBvZiBgcGlwZV9zZXRfZXBvbGxfdXNhZ2VgIGFuZCBgcGlwZV9nZXRfZXBvbGxfdXNhZ2VgIGZ1bmN0aW9ucy4gVGhhdCBtYWtlcyBzZW5zZSwgZW5jYXBzdWxhdGluZyB0aGUgYWNjZXNzIHRvIHRoaXMgbmV3IGZsYWcuIFRoZW4sIGl0IGNhbGxzIGBwaXBlX3NldF9lcG9sbF91c2FnZShmaWxwLCBwaXBlKWAgaW4gYHBpcGVfcG9sbGAgYW5kIGBwaXBlX2dldF9lcG9sbF91c2FnZShwaXBlKWAgaW4gYGFub25fcGlwZV93cml0ZWAgaW4gcGxhY2Ugb2YgdGhlIG5vdy1yZW5hbWVkL2NvbmRpdGlvbmFsIGBwaXBlLSZndDtwb2xsX3VzYWdlYCBjaGVjay4gU2VlbXMgc3RyYWlnaHRmb3J3YXJkOiB1cGRhdGUgdGhlIHVzYWdlIGZsYWcgd2hlbiBhIGZpbGUgZGVzY3JpcHRvciBlbnRlcnMgdGhlIGVwb2xsIGxvb3AgYW5kIHJlYWQgdGhlIHVzYWdlIGZsYWcgd2hlbiB3cml0aW5nLgoKSG93ZXZlciwgbGV0JiMzOTtzIHpvb20gaW4gb24gYHBpcGVfc2V0X2Vwb2xsX3VzYWdlYDoKCmBgYGMKc3RhdGljIHZvaWQgcGlwZV9zZXRfZXBvbGxfdXNhZ2Uoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKnBpcGUpCnsKI2lmZGVmIENPTkZJR19FUE9MTAoJaWYgKChmaWxwLSZndDtmX21vZGUgJmFtcDsgRk1PREVfUkVBRCkgJmFtcDsmYW1wOyBmaWxwLSZndDtmX2VwICZhbXA7JmFtcDsKCSAgICB1bmxpa2VseSghUkVBRF9PTkNFKHBpcGUtJmd0O2Vwb2xsX3VzYWdlKSkpCgkJV1JJVEVfT05DRShwaXBlLSZndDtlcG9sbF91c2FnZSwgdHJ1ZSk7CiNlbmRpZgp9CmBgYAoKV2FpdCBhIHNlY29uZC4gV2hhdCYjMzk7cyB0aGlzIGBmaWxwLSZndDtmX2VwYD8gSSBkb24mIzM5O3QgcmVjYWxsIHNlZWluZyB0aGF0IGluIGBzdHJ1Y3QgZmlsZWAuIEkmIzM5O20gZmFtaWxpYXIgd2l0aCBgZl9tb2RlYCwgYnV0IGBmX2VwYD8gVGhhdCBuZWVkcyBjbGFyaWZ5aW5nLiBPa2F5LCBJJiMzOTttIGdvaW5nIHRvIHF1aWNrbHkgZ3JlcCB0aGUga2VybmVsIHNvdXJjZSBmb3IgdGhhdCBgZl9lcGAgZmllbGQgd2l0aGluIHRoZSBkZWZpbml0aW9uIG9mIGBzdHJ1Y3QgZmlsZWAuIExldCYjMzk7cyBzZWUgd2hhdCB0aGF0IHJldmVhbHMgYWJvdXQgaXRzIHJvbGUgaW4gdGhpcyBjb250ZXh0LiBJdCYjMzk7cyBsaWtlbHkgcmVsYXRlZCB0byB0aGUgZXBvbGwgZmlsZSBkZXNjcmlwdG9yLCBidXQgSSBuZWVkIHRvIG1ha2Ugc3VyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAxODo0MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtmX2VwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7aW5jbHVkZS9saW51eC9mcy5oJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2luY2x1ZGUvbGludXgvZnMuaD0xMjIxPXN0YXRpYyBpbmxpbmUgaW50IHJhX2hhc19pbmRleChzdHJ1Y3QgZmlsZV9yYV9zdGF0ZSAqcmEsIHBnb2ZmX3QgaW5kZXgpXG4tLVxuaW5jbHVkZS9saW51eC9mcy5oLTEyMjgtICogc3RydWN0IGZpbGUgLSBSZXByZXNlbnRzIGEgZmlsZVxuaW5jbHVkZS9saW51eC9mcy5oOjEyMjk6ICogQGZfbG9jazogUHJvdGVjdHMgZl9lcCwgZl9mbGFncy4gTXVzdCBub3QgYmUgdGFrZW4gZnJvbSBJUlEgY29udGV4dC5cbmluY2x1ZGUvbGludXgvZnMuaC0xMjMwLSAqIEBmX21vZGU6IEZNT0RFXyogZmxhZ3Mgb2Z0ZW4gdXNlZCBpbiBob3RwYXRoc1xuLS1cbmluY2x1ZGUvbGludXgvZnMuaC0xMjQ3LSAqIEBmX3NiX2VycjogcGVyIHNiIHdyaXRlYmFjayBlcnJvcnNcbmluY2x1ZGUvbGludXgvZnMuaDoxMjQ4OiAqIEBmX2VwOiBsaW5rIG9mIGFsbCBlcG9sbCBob29rcyBmb3IgdGhpcyBmaWxlXG5pbmNsdWRlL2xpbnV4L2ZzLmgtMTI0OS0gKiBAZl90YXNrX3dvcms6IHRhc2sgd29yayBlbnRyeSBwb2ludFxuLS1cbmluY2x1ZGUvbGludXgvZnMuaD0xMjU1PXN0cnVjdCBmaWxlIHtcbi0tXG5pbmNsdWRlL2xpbnV4L2ZzLmgtMTI4NC0jaWZkZWYgQ09ORklHX0VQT0xMXG5pbmNsdWRlL2xpbnV4L2ZzLmg6MTI4NTpcdHN0cnVjdCBobGlzdF9oZWFkXHRcdCpmX2VwO1xuaW5jbHVkZS9saW51eC9mcy5oLTEyODYtI2VuZGlmXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMTg6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzc1NQoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDIxNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBpcGUgRXBvbGwgV2FrZXVwIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpbW1lZGlhdGVseSBzZWUgdGhhdCB0aGUgYGZfZXBgIGZ1bmN0aW9uIHBvaW50ZXIgaXMgY29uZGl0aW9uYWxseSBjb21waWxlZDsgaXQmIzM5O3Mgb25seSBhdmFpbGFibGUgaWYgYENPTkZJR19FUE9MTGAgaXMgZGVmaW5lZC4gVGhhdCYjMzk7cyB0aGUgYmFzZWxpbmUuIFRoZSBjb3JlIG9mIHRoaXMgcGF0Y2ggc2VlbXMgdG8gYmUgbWFraW5nIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byBob3cgcGlwZSB3YWtldXBzIGludGVyYWN0IHdpdGggYGVwb2xsYCwgYHBvbGxgLCBhbmQgYHNlbGVjdGAuCgpQcmV2aW91c2x5LCBgcGlwZS0mZ3Q7cG9sbF91c2FnZWAgd2FzIHVuY29uZGl0aW9uYWxseSBzZXQgdG8gYHRydWVgIHdpdGhpbiBgcGlwZV9wb2xsYC4gIFRoYXQgbWVhbnQgKmFueSogY2FsbCB0byBwb2xsLCBzZWxlY3QsIG9yIGVwb2xsIG9uIGEgcGlwZSB3b3VsZCB0cmlnZ2VyIHRoYXQgZmxhZywgdHVybmluZyBpdCBvbi4gTm93LCB0aGlzIHBhdGNoIHJlZmluZXMgdGhlIGxvZ2ljLiBJdCBvbmx5IHNldHMgYHBpcGUtJmd0O3BvbGxfdXNhZ2VgIHRvIGB0cnVlYCBpZiBgZmlscC0mZ3Q7Zl9lcGAgaXMgYWN0dWFsbHkgbm9uLU5VTEwsIGluZGljYXRpbmcgYSBnZW51aW5lIGVwb2xsIGhvb2ssIGFuZCBvbmx5IGlmIHRoZSBmaWxlJiMzOTtzIG1vZGUgKGBmaWxwLSZndDtmX21vZGVgKSBpbmNsdWRlcyBgRk1PREVfUkVBRGAuCgpFc3NlbnRpYWxseSwgdGhpcyBpcyBhIGNoYW5nZSB0byB0aGUgcGlwZSB3YWtldXAgYmVoYXZpb3IsIHNwZWNpZmljYWxseSBpbXBhY3RpbmcgYGVwb2xsYCwgYHBvbGxgLCBhbmQgYHNlbGVjdGAuIFRoZSBrZXkgYmVuZWZpdCBpcyB0aGF0IHRoaXMgcmV2aXNlZCBsb2dpYyBwcmV2ZW50cyB1bm5lY2Vzc2FyeSB3YWtldXBzIGZvciBgcG9sbGAgYW5kIGBzZWxlY3RgIG9uIHBpcGVzLCBhbmQgYWxzbywgaW1wb3J0YW50bHksIGZvciB3cml0ZS1vbmx5IGBlcG9sbGAgaW5zdGFuY2VzLiBUaGF0JiMzOTtzIGEgZGVmaW5pdGUgaW1wcm92ZW1lbnQuCgpOb3csIEkgbmVlZCB0byBjaGVjayBzb21ldGhpbmcgcXVpY2tseS4gSSBuZWVkIHRvIGRldGVybWluZSBpZiBgQ09ORklHX0VQT0xMYCBpcyBnZW5lcmFsbHkgZW5hYmxlZCBieSBkZWZhdWx0LiBJZiBpdCBpcyBub3QsIHRoZW4gSSYjMzk7bGwgbmVlZCB0byBmaWd1cmUgb3V0IHdoZXJlIHdlIGVuYWJsZSBpdCBpbiB0aGUgY29uZmlndXJhdGlvbiBzeXN0ZW0uIEkmIzM5O2xsIHRha2UgYSBxdWljayBwZWVrIGF0IGBpbml0L0tjb25maWdgIHRvIGNvbmZpcm0gaXRzIGRlZmF1bHQgc3RhdGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMTg6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEVQT0xMJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7aW5pdC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2luaXQvS2NvbmZpZz0xODU5PWNvbmZpZyBGVVRFWF9ST0JVU1RfVU5MT0NLXG4tLVxuaW5pdC9LY29uZmlnLTE4NjEtXG5pbml0L0tjb25maWc6MTg2Mjpjb25maWcgRVBPTExcbmluaXQvS2NvbmZpZy0xODYzLVx0Ym9vbCBcJiMzNDtFbmFibGUgZXZlbnRwb2xsIHN1cHBvcnRcJiMzNDsgaWYgRVhQRVJUXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMTg6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDQyNAoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDEzMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgUGlwZS1SZWxhdGVkIEZ1bmN0aW9ucyoqCgpPa2F5LCBzbyB0aGlzIGZlYXR1cmUgaXMgZW5hYmxlZCBieSBkZWZhdWx0LCBpbnRlcmVzdGluZy4gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUga2V5IGZ1bmN0aW9ucyBpbnZvbHZlZCBoZXJlLiBMZXQmIzM5O3Mgc2VlLi4uIEkmIzM5O3ZlIGlkZW50aWZpZWQgYHBpcGVfc2V0X2Vwb2xsX3VzYWdlYCwgYHBpcGVfZ2V0X2Vwb2xsX3VzYWdlYCwgYGFub25fcGlwZV93cml0ZWAsIGFuZCBgcGlwZV9wb2xsYC4KCkhtbSwgbm93IHRoYXQgSSBsb29rIGF0IGl0LCBgYW5vbl9waXBlX3dyaXRlYCBhbmQgYHBpcGVfcG9sbGAgYXJlIGNsZWFybHkgaW4gdGhlIGhvdCBwYXRoLiBUaGV5JiMzOTtyZSBwZXJmb3JtYW5jZS1jcml0aWNhbC4gSSB3b25kZXIgaWYgdGhlcmUgYXJlIGFueSBvdGhlciBrZXkgZnVuY3Rpb25zIGF0IHBsYXkgaGVyZSwgd2hpY2ggbWlnaHQgYmUgbGVzcyBvYnZpb3VzLgoKQWhhISBMb29raW5nIGNsb3NlciwgYHBpcGVfc2V0X2Vwb2xsX3VzYWdlYCBhbmQgYHBpcGVfZ2V0X2Vwb2xsX3VzYWdlYCBhcmUgZWl0aGVyIHN0YXRpYyBpbmxpbmUgb3Igc3RhdGljIGZ1bmN0aW9ucyBsb2NhdGVkIGluIGBmcy9waXBlLmNgLiBSaWdodCwgSSBzaG91bGQgdGFrZSBhIGRlZXBlciBsb29rIGF0IHRoYXQgZmlsZSB0byBzZWUgd2hhdCBlbHNlIG1pZ2h0IGJlIGdvaW5nIG9uLiBJdCYjMzk7cyB0aW1lIHRvIGRpdmUgaW50byBgZnMvcGlwZS5jYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAxODo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwaXBlX3NldF9lcG9sbF91c2FnZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2ZzL3BpcGUuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtmcy9waXBlLmM9MzMwPXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IHBpcGVfdXBkYXRlX3RhaWwoc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqcGlwZSxcbi0tXG5mcy9waXBlLmMtMzU5LVxuZnMvcGlwZS5jOjM2MDpzdGF0aWMgdm9pZCBwaXBlX3NldF9lcG9sbF91c2FnZShzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqcGlwZSlcbmZzL3BpcGUuYy0zNjEte1xuLS1cbmZzL3BpcGUuYz03NzQ9cGlwZV9wb2xsKHN0cnVjdCBmaWxlICpmaWxwLCBwb2xsX3RhYmxlICp3YWl0KVxuLS1cbmZzL3BpcGUuYy03ODAtXHQvKiBFcG9sbCBoYXMgc29tZSBoaXN0b3JpY2FsIG5hc3R5IHNlbWFudGljcywgdGhpcyBlbmFibGVzIHRoZW0gKi9cbmZzL3BpcGUuYzo3ODE6XHRwaXBlX3NldF9lcG9sbF91c2FnZShmaWxwLCBwaXBlKTtcbmZzL3BpcGUuYy03ODItXHQvKlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDE4OjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ5OTUKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiA1NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4KCioqQW5hbHl6aW5nIFBpcGUgT3BlcmF0aW9ucyoqCgpSaWdodCwgc28gYHBpcGVfcG9sbGAgaXMgdGhlIGNvcmUgZnVuY3Rpb24gZm9yIGNoZWNraW5nIHRoZSBzdGF0dXMgb2YgYSBwaXBlLiBUaGF0IG1ha2VzIHNlbnNlLCB0aGUgZW50cnkgcG9pbnQgZm9yIHBvbGxpbmcgdGhlIHBpcGUuIEkmIzM5O20gYWxzbyB0aGlua2luZyBhYm91dCBgYW5vbl9waXBlX3dyaXRlYCB3aGljaCBpcyB0aGUgdG9wIGxldmVsIHdyaXRlIGZ1bmN0aW9uIGZvciBhbm9ueW1vdXMgcGlwZXMsIHNvIEkgZ2V0IHRoZSBiaWcgcGljdHVyZS4gQXJlIHRoZXJlIGFueSBvdGhlciBoaWdoIGxldmVsIGZ1bmN0aW9uIGNhbGxzIEkgc2hvdWxkIGJlIGF3YXJlIG9mLCB3aGljaCBhcmUgdGhlIG1haW4gZW50cnkgcG9pbnRzPyBJJiMzOTttIGdvaW5nIHRvIHF1aWNrbHkgY2hlY2sgYGFub25fcGlwZV9yZWFkYCB0byBzZWUgaWYgdGhhdCYjMzk7cyB0aGUgcmVhZCBlcXVpdmFsZW50LiBPa2F5LCBnb29kLiBUaGF0IHNob3VsZCBkbyBmb3Igbm93LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAxODo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthbm9uX3BpcGVfcmVhZCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2ZzL3BpcGUuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtmcy9waXBlLmM9Mzc3PXN0YXRpYyBzc2l6ZV90XG5mcy9waXBlLmM6Mzc4OmFub25fcGlwZV9yZWFkKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICp0bylcbmZzL3BpcGUuYy0zNzkte1xuLS1cbmZzL3BpcGUuYz01MTY9Zmlmb19waXBlX3JlYWQoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKnRvKVxuZnMvcGlwZS5jLTUxNy17XG5mcy9waXBlLmM6NTE4Olx0aW50IHJldCA9IGFub25fcGlwZV9yZWFkKGlvY2IsIHRvKTtcbmZzL3BpcGUuYy01MTktXHRpZiAocmV0IFx1MDAzZSAwKVxuLS1cbmZzL3BpcGUuYz0xMzcwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHBpcGVhbm9uX2ZvcHMgPSB7XG5mcy9waXBlLmMtMTM3MS1cdC5vcGVuXHRcdD0gZmlmb19vcGVuLFxuZnMvcGlwZS5jOjEzNzI6XHQucmVhZF9pdGVyXHQ9IGFub25fcGlwZV9yZWFkLFxuZnMvcGlwZS5jLTEzNzMtXHQud3JpdGVfaXRlclx0PSBhbm9uX3BpcGVfd3JpdGUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDE4OjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU0NzQKCQkJCQkJCW91dHB1dDogMTEzCgkJCQkJCQl0aG91Z2h0czogNjI4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBQYXRjaCBmb3IgU3l6a2FsbGVyIFRhcmdldGluZyoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBUaGUgcGF0Y2ggZm9jdXNlcyBvbiBtb2RpZnlpbmcgaG93IHBpcGVzIGludGVyYWN0IHdpdGggYGVwb2xsYCwgc3BlY2lmaWNhbGx5IHdpdGhpbiBgYW5vbl9waXBlX3dyaXRlYCBhbmQgYHBpcGVfcG9sbGAuIE15IGluaXRpYWwgdGhvdWdodCB3YXMgdG8gc2ltcGx5IGFkZCB0aGVzZSBmdW5jdGlvbnMgdG8gYEZvY3VzU3ltYm9sc2AuIEhvd2V2ZXIsIEkmIzM5O20gYWxyZWFkeSB0aGlua2luZyBhYm91dCBob3QtcGF0aCBpc3N1ZXM7IGBhbm9uX3BpcGVfd3JpdGVgIGFuZCBgcGlwZV9wb2xsYCBhcmUgc3VwZXIgY29tbW9uLgoKTGV0JiMzOTtzIGRpZyBkZWVwZXIuIEkgc2F3IGBwaXBlX3NldF9lcG9sbF91c2FnZWAsIGFuZCBpdCYjMzk7cyBzdGF0aWMuIEluaXRpYWxseSwgSSBkaXNtaXNzZWQgaXQgYmVjYXVzZSBpdCYjMzk7cyBzdGF0aWMgYW5kIG5vdCBleHBvcnRlZCwgYnV0IHRoZW4gSSByZW1lbWJlciBzeXprYWxsZXIgY2FuIHN0aWxsIGZ1enogc3RhdGljIGZ1bmN0aW9ucyBpZiB0aGV5JiMzOTtyZSBpbiBEV0FSRiBpbmZvLiBUaGlzIGNvdWxkIGJlIHByb21pc2luZy4gQnV0IHRoZSBwcm9tcHQgbWVudGlvbnMsICYjMzQ7YXZvaWRpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLiYjMzQ7IFRoaXMgbWVhbnMgYGFub25fcGlwZV93cml0ZWAgYW5kIGBwaXBlX3BvbGxgIGFyZSBwcm9iYWJseSBvdXQuCgpTbywgYHBpcGVfc2V0X2Vwb2xsX3VzYWdlYCBpcyBsb29raW5nIGdvb2Qgbm93LiBJIG5lZWQgdG8gYmUgc3VyZTsgbGV0JiMzOTtzIGNoZWNrIGlmIGl0JiMzOTtzIGlubGluZWQuIEl0IGlzbiYjMzk7dCBtYXJrZWQgYXMgYGlubGluZWAsIGJ1dCBpdCBpcyBxdWl0ZSBzbWFsbC4gTGV0JiMzOTtzIGxpc3QgYHBpcGVfcG9sbGAgYW5kIGBwaXBlX3NldF9lcG9sbF91c2FnZWAsIGZvciBub3cuCgpOb3csIGRvZXMgdGhpcyBwYXRjaCByZXF1aXJlIGEgc3BlY2lmaWMgY29uZmlndXJhdGlvbj8gWWVzLCB0aGUgY2hhbmdlcyBhcmUgY29uZGl0aW9uYWwgb24gYENPTkZJR19FUE9MTGAuIEkgbmVlZCB0byBlbnN1cmUgdGhhdCBpcyBzZXQuIFNvLCBJIG5lZWQgdG8gYWRkIGBFUE9MTGAgdG8gYEVuYWJsZUNvbmZpZ3NgLgoKTGV0JiMzOTtzIHJldmlldyB0aGUgcmF0aW9uYWxlLiBUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvbmRpdGlvbiBmb3IgbWFya2luZyBhIHBpcGUgYXMgZXBvbGwtdXNlZCwgYWZmZWN0aW5nIHdha2V1cHMgaW4gYGFub25fcGlwZV93cml0ZWAuIEl0IGludHJvZHVjZXMgYHBpcGVfc2V0X2Vwb2xsX3VzYWdlYCBhbmQgYHBpcGVfZ2V0X2Vwb2xsX3VzYWdlYCBhbmQgcmVzdHJpY3RzIGVwb2xsIHVzYWdlIHRvIGFjdHVhbCBlcG9sbCB1c2UgKGNoZWNraW5nIGBmaWxwLSZndDtmX2VwYCBpbnN0ZWFkIG9mIGFueSBwb2xsIHVzZSkuIEl0JiMzOTtzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgcmVsYXRlZCB0byBwaXBlIGFuZCBlcG9sbCBpbnRlcmFjdGlvbi4gVGhpcyBkZWZpbml0ZWx5IHNlZW1zIHdvcnRoIGZ1enppbmcuCgpJJiMzOTttIGNvbmZpZGVudCBpbjoKCiogICBgV29ydGhGdXp6aW5nOiB0cnVlYAoqICAgYEZvY3VzU3ltYm9sczogcGlwZV9zZXRfZXBvbGxfdXNhZ2VgLCBgcGlwZV9wb2xsYAoqICAgYEVuYWJsZUNvbmZpZ3M6IEVQT0xMYAoKRmluYWxseSwgbGV0IG1lIGRvdWJsZS1jaGVjay4gVGhlIGBmX2VwYCBmbGFnIGlzIG9ubHkgYXZhaWxhYmxlIHdpdGggYENPTkZJR19FUE9MTGAgYnkgbG9va2luZyBhdCBgaW5jbHVkZS9saW51eC9mcy5oYC4gQWxzbywgdGhlIHBhdGNoIGl0c2VsZiBndWFyZHMgdGhlIGBlcG9sbF91c2FnZWAgZmllbGQgaW4gYHN0cnVjdCBwaXBlX2lub2RlX2luZm9gLgoKT2theSwgSSYjMzk7bSByZWFkeSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDE4OjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtFUE9MTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3BpcGVfc2V0X2Vwb2xsX3VzYWdlJiMzNDssCiAgICAmIzM0O3BpcGVfcG9sbCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgcGlwZSBwb2xsaW5nIGxvZ2ljIHRvIG9ubHkgc2V0IHRoZSBlcG9sbCB1c2FnZSBmbGFnIHdoZW4gYWN0dWFsbHkgdXNlZCBieSBlcG9sbCAoY2hlY2tpbmcgZmlscC1cdTAwM2VmX2VwKSwgcmF0aGVyIHRoYW4gYW55IHBvbGwgdXNhZ2UuIFRoaXMgY2hhbmdlcyB0aGUgd2FrZXVwIGJlaGF2aW9yIGluIGFub25fcGlwZV93cml0ZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIGNvcmUga2VybmVsIHBpcGUvZXBvbGwgaW50ZXJhY3Rpb24uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0VQT0xMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cGlwZV9zZXRfZXBvbGxfdXNhZ2UmIzM0OywKICAgICYjMzQ7cGlwZV9wb2xsJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwaXBlIHBvbGxpbmcgbG9naWMgdG8gb25seSBzZXQgdGhlIGVwb2xsIHVzYWdlIGZsYWcgd2hlbiBhY3R1YWxseSB1c2VkIGJ5IGVwb2xsIChjaGVja2luZyBmaWxwLVx1MDAzZWZfZXApLCByYXRoZXIgdGhhbiBhbnkgcG9sbCB1c2FnZS4gVGhpcyBjaGFuZ2VzIHRoZSB3YWtldXAgYmVoYXZpb3IgaW4gYW5vbl9waXBlX3dyaXRlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gY29yZSBrZXJuZWwgcGlwZS9lcG9sbCBpbnRlcmFjdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDE4OjQxOjQ0Ljk1OTU4NTAyOFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMwNTEyNDc0MDUyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkVQT0xMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicGlwZV9zZXRfZXBvbGxfdXNhZ2VcIixcbiAgICBcInBpcGVfcG9sbFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwaXBlIHBvbGxpbmcgbG9naWMgdG8gb25seSBzZXQgdGhlIGVwb2xsIHVzYWdlIGZsYWcgd2hlbiBhY3R1YWxseSB1c2VkIGJ5IGVwb2xsIChjaGVja2luZyBmaWxwLVxcdTAwM2VmX2VwKSwgcmF0aGVyIHRoYW4gYW55IHBvbGwgdXNhZ2UuIFRoaXMgY2hhbmdlcyB0aGUgd2FrZXVwIGJlaGF2aW9yIGluIGFub25fcGlwZV93cml0ZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIGNvcmUga2VybmVsIHBpcGUvZXBvbGwgaW50ZXJhY3Rpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDE4OjQxOjQ0Ljk1OTU5MjY2OFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjUwNzI1OTUxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMDY3NDYwYzM5NDZlNjBhMjI4ZGYwNTNmNjE4MzNmZjQzZGFmY2Y4Y1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEp1bCAyNCAxODo0MTo0MyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9mcy9waXBlLmMgYi9mcy9waXBlLmNcXG5pbmRleCA0MjliMDcxNGVjNTc1NS4uZmE0ZTcwZDVmOTBkODkgMTAwNjQ0XFxuLS0tIGEvZnMvcGlwZS5jXFxuKysrIGIvZnMvcGlwZS5jXFxuQEAgLTM1Nyw2ICszNTcsMjMgQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgcGlwZV91cGRhdGVfdGFpbChzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpwaXBlLFxcbiBcXHRyZXR1cm4gdGFpbDtcXG4gfVxcbiBcXG4rc3RhdGljIHZvaWQgcGlwZV9zZXRfZXBvbGxfdXNhZ2Uoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKnBpcGUpXFxuK3tcXG4rI2lmZGVmIENPTkZJR19FUE9MTFxcbitcXHRpZiAoKGZpbHAtXFx1MDAzZWZfbW9kZSBcXHUwMDI2IEZNT0RFX1JFQUQpIFxcdTAwMjZcXHUwMDI2IGZpbHAtXFx1MDAzZWZfZXAgXFx1MDAyNlxcdTAwMjZcXG4rXFx0ICAgIHVubGlrZWx5KCFSRUFEX09OQ0UocGlwZS1cXHUwMDNlZXBvbGxfdXNhZ2UpKSlcXG4rXFx0XFx0V1JJVEVfT05DRShwaXBlLVxcdTAwM2VlcG9sbF91c2FnZSwgdHJ1ZSk7XFxuKyNlbmRpZlxcbit9XFxuK1xcbitzdGF0aWMgYm9vbCBwaXBlX2dldF9lcG9sbF91c2FnZShzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpwaXBlKVxcbit7XFxuKyNpZmRlZiBDT05GSUdfRVBPTExcXG4rXFx0cmV0dXJuIHBpcGUtXFx1MDAzZWVwb2xsX3VzYWdlO1xcbisjZW5kaWZcXG4rXFx0cmV0dXJuIGZhbHNlO1xcbit9XFxuK1xcbiBzdGF0aWMgc3NpemVfdFxcbiBhbm9uX3BpcGVfcmVhZChzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqdG8pXFxuIHtcXG5AQCAtNjg5LDcgKzcwNiw3IEBAIGFub25fcGlwZV93cml0ZShzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqZnJvbSlcXG4gXFx0ICogRXBvbGwgbm9uc2Vuc2ljYWxseSB3YW50cyBhIHdha2V1cCB3aGV0aGVyIHRoZSBwaXBlXFxuIFxcdCAqIHdhcyBhbHJlYWR5IGVtcHR5IG9yIG5vdC5cXG4gXFx0ICovXFxuLVxcdGlmICh3YXNfZW1wdHkgfHwgcGlwZS1cXHUwMDNlcG9sbF91c2FnZSlcXG4rXFx0aWYgKHdhc19lbXB0eSB8fCBwaXBlX2dldF9lcG9sbF91c2FnZShwaXBlKSlcXG4gXFx0XFx0d2FrZV91cF9pbnRlcnJ1cHRpYmxlX3N5bmNfcG9sbChcXHUwMDI2cGlwZS1cXHUwMDNlcmRfd2FpdCwgRVBPTExJTiB8IEVQT0xMUkROT1JNKTtcXG4gXFx0a2lsbF9mYXN5bmMoXFx1MDAyNnBpcGUtXFx1MDAzZWZhc3luY19yZWFkZXJzLCBTSUdJTywgUE9MTF9JTik7XFxuIFxcdGlmICh3YWtlX25leHRfd3JpdGVyKVxcbkBAIC03NjEsOSArNzc4LDcgQEAgcGlwZV9wb2xsKHN0cnVjdCBmaWxlICpmaWxwLCBwb2xsX3RhYmxlICp3YWl0KVxcbiBcXHR1bmlvbiBwaXBlX2luZGV4IGlkeDtcXG4gXFxuIFxcdC8qIEVwb2xsIGhhcyBzb21lIGhpc3RvcmljYWwgbmFzdHkgc2VtYW50aWNzLCB0aGlzIGVuYWJsZXMgdGhlbSAqL1xcbi1cXHRpZiAodW5saWtlbHkoIVJFQURfT05DRShwaXBlLVxcdTAwM2Vwb2xsX3VzYWdlKSkpXFxuLVxcdFxcdFdSSVRFX09OQ0UocGlwZS1cXHUwMDNlcG9sbF91c2FnZSwgdHJ1ZSk7XFxuLVxcbitcXHRwaXBlX3NldF9lcG9sbF91c2FnZShmaWxwLCBwaXBlKTtcXG4gXFx0LypcXG4gXFx0ICogUmVhZGluZyBwaXBlIHN0YXRlIG9ubHkgLS0gbm8gbmVlZCBmb3IgYWNxdWlyaW5nIHRoZSBzZW1hcGhvcmUuXFxuIFxcdCAqXFxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcGlwZV9mc19pLmggYi9pbmNsdWRlL2xpbnV4L3BpcGVfZnNfaS5oXFxuaW5kZXggN2Y2YTkyYWM5NzA0NzguLmQwNmRhOWJhZDNhOGNjIDEwMDY0NFxcbi0tLSBhL2luY2x1ZGUvbGludXgvcGlwZV9mc19pLmhcXG4rKysgYi9pbmNsdWRlL2xpbnV4L3BpcGVfZnNfaS5oXFxuQEAgLTc0LDcgKzc0LDcgQEAgdW5pb24gcGlwZV9pbmRleCB7XFxuICAqXFx0QGZpbGVzOiBudW1iZXIgb2Ygc3RydWN0IGZpbGUgcmVmZXJyaW5nIHRoaXMgcGlwZSAocHJvdGVjdGVkIGJ5IC1cXHUwMDNlaV9sb2NrKVxcbiAgKlxcdEByX2NvdW50ZXI6IHJlYWRlciBjb3VudGVyXFxuICAqXFx0QHdfY291bnRlcjogd3JpdGVyIGNvdW50ZXJcXG4tICpcXHRAcG9sbF91c2FnZTogaXMgdGhpcyBwaXBlIHVzZWQgZm9yIGVwb2xsLCB3aGljaCBoYXMgY3Jhenkgd2FrZXVwcz9cXG4rICpcXHRAZXBvbGxfdXNhZ2U6IGlzIHRoaXMgcGlwZSB1c2VkIGZvciBlcG9sbCwgd2hpY2ggaGFzIGNyYXp5IHdha2V1cHM/XFxuICAqXFx0QGZhc3luY19yZWFkZXJzOiByZWFkZXIgc2lkZSBmYXN5bmNcXG4gICpcXHRAZmFzeW5jX3dyaXRlcnM6IHdyaXRlciBzaWRlIGZhc3luY1xcbiAgKlxcdEBidWZzOiB0aGUgY2lyY3VsYXIgYXJyYXkgb2YgcGlwZSBidWZmZXJzXFxuQEAgLTk1LDcgKzk1LDkgQEAgc3RydWN0IHBpcGVfaW5vZGVfaW5mbyB7XFxuIFxcdHVuc2lnbmVkIGludCBmaWxlcztcXG4gXFx0dW5zaWduZWQgaW50IHJfY291bnRlcjtcXG4gXFx0dW5zaWduZWQgaW50IHdfY291bnRlcjtcXG4tXFx0Ym9vbCBwb2xsX3VzYWdlO1xcbisjaWZkZWYgQ09ORklHX0VQT0xMXFxuK1xcdGJvb2wgZXBvbGxfdXNhZ2U7XFxuKyNlbmRpZlxcbiAjaWZkZWYgQ09ORklHX1dBVENIX1FVRVVFXFxuIFxcdGJvb2wgbm90ZV9sb3NzO1xcbiAjZW5kaWZcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMTg6NDE6NDUuNjExMTYyMTI5WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6Mjk4NjA4ODY4ODEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiRVBPTExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJwaXBlX3NldF9lcG9sbF91c2FnZVwiLFxuICAgIFwicGlwZV9wb2xsXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHBpcGUgcG9sbGluZyBsb2dpYyB0byBvbmx5IHNldCB0aGUgZXBvbGwgdXNhZ2UgZmxhZyB3aGVuIGFjdHVhbGx5IHVzZWQgYnkgZXBvbGwgKGNoZWNraW5nIGZpbHAtXFx1MDAzZWZfZXApLCByYXRoZXIgdGhhbiBhbnkgcG9sbCB1c2FnZS4gVGhpcyBjaGFuZ2VzIHRoZSB3YWtldXAgYmVoYXZpb3IgaW4gYW5vbl9waXBlX3dyaXRlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gY29yZSBrZXJuZWwgcGlwZS9lcG9sbCBpbnRlcmFjdGlvbi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAwNjc0NjBjMzk0NmU2MGEyMjhkZjA1M2Y2MTgzM2ZmNDNkYWZjZjhjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMjQgMTg6NDE6NDMgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9mcy9waXBlLmMgYi9mcy9waXBlLmNcbmluZGV4IDQyOWIwNzE0ZWM1NzU1Li5mYTRlNzBkNWY5MGQ4OSAxMDA2NDRcbi0tLSBhL2ZzL3BpcGUuY1xuKysrIGIvZnMvcGlwZS5jXG5AQCAtMzU3LDYgKzM1NywyMyBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBwaXBlX3VwZGF0ZV90YWlsKHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKnBpcGUsXG4gXHRyZXR1cm4gdGFpbDtcbiB9XG4gXG4rc3RhdGljIHZvaWQgcGlwZV9zZXRfZXBvbGxfdXNhZ2Uoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKnBpcGUpXG4re1xuKyNpZmRlZiBDT05GSUdfRVBPTExcbitcdGlmICgoZmlscC1cdTAwM2VmX21vZGUgXHUwMDI2IEZNT0RFX1JFQUQpIFx1MDAyNlx1MDAyNiBmaWxwLVx1MDAzZWZfZXAgXHUwMDI2XHUwMDI2XG4rXHQgICAgdW5saWtlbHkoIVJFQURfT05DRShwaXBlLVx1MDAzZWVwb2xsX3VzYWdlKSkpXG4rXHRcdFdSSVRFX09OQ0UocGlwZS1cdTAwM2VlcG9sbF91c2FnZSwgdHJ1ZSk7XG4rI2VuZGlmXG4rfVxuK1xuK3N0YXRpYyBib29sIHBpcGVfZ2V0X2Vwb2xsX3VzYWdlKHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKnBpcGUpXG4re1xuKyNpZmRlZiBDT05GSUdfRVBPTExcbitcdHJldHVybiBwaXBlLVx1MDAzZWVwb2xsX3VzYWdlO1xuKyNlbmRpZlxuK1x0cmV0dXJuIGZhbHNlO1xuK31cbitcbiBzdGF0aWMgc3NpemVfdFxuIGFub25fcGlwZV9yZWFkKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICp0bylcbiB7XG5AQCAtNjg5LDcgKzcwNiw3IEBAIGFub25fcGlwZV93cml0ZShzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqZnJvbSlcbiBcdCAqIEVwb2xsIG5vbnNlbnNpY2FsbHkgd2FudHMgYSB3YWtldXAgd2hldGhlciB0aGUgcGlwZVxuIFx0ICogd2FzIGFscmVhZHkgZW1wdHkgb3Igbm90LlxuIFx0ICovXG4tXHRpZiAod2FzX2VtcHR5IHx8IHBpcGUtXHUwMDNlcG9sbF91c2FnZSlcbitcdGlmICh3YXNfZW1wdHkgfHwgcGlwZV9nZXRfZXBvbGxfdXNhZ2UocGlwZSkpXG4gXHRcdHdha2VfdXBfaW50ZXJydXB0aWJsZV9zeW5jX3BvbGwoXHUwMDI2cGlwZS1cdTAwM2VyZF93YWl0LCBFUE9MTElOIHwgRVBPTExSRE5PUk0pO1xuIFx0a2lsbF9mYXN5bmMoXHUwMDI2cGlwZS1cdTAwM2VmYXN5bmNfcmVhZGVycywgU0lHSU8sIFBPTExfSU4pO1xuIFx0aWYgKHdha2VfbmV4dF93cml0ZXIpXG5AQCAtNzYxLDkgKzc3OCw3IEBAIHBpcGVfcG9sbChzdHJ1Y3QgZmlsZSAqZmlscCwgcG9sbF90YWJsZSAqd2FpdClcbiBcdHVuaW9uIHBpcGVfaW5kZXggaWR4O1xuIFxuIFx0LyogRXBvbGwgaGFzIHNvbWUgaGlzdG9yaWNhbCBuYXN0eSBzZW1hbnRpY3MsIHRoaXMgZW5hYmxlcyB0aGVtICovXG4tXHRpZiAodW5saWtlbHkoIVJFQURfT05DRShwaXBlLVx1MDAzZXBvbGxfdXNhZ2UpKSlcbi1cdFx0V1JJVEVfT05DRShwaXBlLVx1MDAzZXBvbGxfdXNhZ2UsIHRydWUpO1xuLVxuK1x0cGlwZV9zZXRfZXBvbGxfdXNhZ2UoZmlscCwgcGlwZSk7XG4gXHQvKlxuIFx0ICogUmVhZGluZyBwaXBlIHN0YXRlIG9ubHkgLS0gbm8gbmVlZCBmb3IgYWNxdWlyaW5nIHRoZSBzZW1hcGhvcmUuXG4gXHQgKlxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcGlwZV9mc19pLmggYi9pbmNsdWRlL2xpbnV4L3BpcGVfZnNfaS5oXG5pbmRleCA3ZjZhOTJhYzk3MDQ3OC4uZDA2ZGE5YmFkM2E4Y2MgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL2xpbnV4L3BpcGVfZnNfaS5oXG4rKysgYi9pbmNsdWRlL2xpbnV4L3BpcGVfZnNfaS5oXG5AQCAtNzQsNyArNzQsNyBAQCB1bmlvbiBwaXBlX2luZGV4IHtcbiAgKlx0QGZpbGVzOiBudW1iZXIgb2Ygc3RydWN0IGZpbGUgcmVmZXJyaW5nIHRoaXMgcGlwZSAocHJvdGVjdGVkIGJ5IC1cdTAwM2VpX2xvY2spXG4gICpcdEByX2NvdW50ZXI6IHJlYWRlciBjb3VudGVyXG4gICpcdEB3X2NvdW50ZXI6IHdyaXRlciBjb3VudGVyXG4tICpcdEBwb2xsX3VzYWdlOiBpcyB0aGlzIHBpcGUgdXNlZCBmb3IgZXBvbGwsIHdoaWNoIGhhcyBjcmF6eSB3YWtldXBzP1xuKyAqXHRAZXBvbGxfdXNhZ2U6IGlzIHRoaXMgcGlwZSB1c2VkIGZvciBlcG9sbCwgd2hpY2ggaGFzIGNyYXp5IHdha2V1cHM/XG4gICpcdEBmYXN5bmNfcmVhZGVyczogcmVhZGVyIHNpZGUgZmFzeW5jXG4gICpcdEBmYXN5bmNfd3JpdGVyczogd3JpdGVyIHNpZGUgZmFzeW5jXG4gICpcdEBidWZzOiB0aGUgY2lyY3VsYXIgYXJyYXkgb2YgcGlwZSBidWZmZXJzXG5AQCAtOTUsNyArOTUsOSBAQCBzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvIHtcbiBcdHVuc2lnbmVkIGludCBmaWxlcztcbiBcdHVuc2lnbmVkIGludCByX2NvdW50ZXI7XG4gXHR1bnNpZ25lZCBpbnQgd19jb3VudGVyO1xuLVx0Ym9vbCBwb2xsX3VzYWdlO1xuKyNpZmRlZiBDT05GSUdfRVBPTExcbitcdGJvb2wgZXBvbGxfdXNhZ2U7XG4rI2VuZGlmXG4gI2lmZGVmIENPTkZJR19XQVRDSF9RVUVVRVxuIFx0Ym9vbCBub3RlX2xvc3M7XG4gI2VuZGlmXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQxODo0MTo0NS42MTExNjMzOTlaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NzI1NTEwMDAxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFBpcGUgUGF0Y2ggZm9yIEVwb2xsIEludGVncmF0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHNlZW1zIHRvIGJlIHRvdWNoaW5nIHRoZSBwaXBlIGltcGxlbWVudGF0aW9uLCBzcGVjaWZpY2FsbHkgYGZzL3BpcGUuY2AgYW5kIGBpbmNsdWRlL2xpbnV4L3BpcGVfZnNfaS5oYC4gVGhlIGNvcmUgY2hhbmdlIEknbSBzZWVpbmcgaXMgdGhlIHJlbmFtaW5nIG9mIGBwb2xsX3VzYWdlYCB0byBgZXBvbGxfdXNhZ2VgIHdpdGhpbiB0aGUgYHN0cnVjdCBwaXBlX2lub2RlX2luZm9gLCBhbmQgaXQgbG9va3MgbGlrZSB0aGlzIGlzIGNvbmRpdGlvbmFsIG9uIGBDT05GSUdfRVBPTExgIGJlaW5nIGVuYWJsZWQuIFNtYXJ0LCBrZWVwcyB0aGUgY29yZSBmdW5jdGlvbmFsaXR5IGNsZWFuIGlmIGVwb2xsIGlzbid0IGluIHBsYXkuXG5cblRoaXMgaXMgZm9sbG93ZWQgdXAgYnkgdGhlIGludHJvZHVjdGlvbiBvZiBgcGlwZV9zZXRfZXBvbGxfdXNhZ2VgIGFuZCBgcGlwZV9nZXRfZXBvbGxfdXNhZ2VgIGZ1bmN0aW9ucy4gVGhhdCBtYWtlcyBzZW5zZSwgZW5jYXBzdWxhdGluZyB0aGUgYWNjZXNzIHRvIHRoaXMgbmV3IGZsYWcuIFRoZW4sIGl0IGNhbGxzIGBwaXBlX3NldF9lcG9sbF91c2FnZShmaWxwLCBwaXBlKWAgaW4gYHBpcGVfcG9sbGAgYW5kIGBwaXBlX2dldF9lcG9sbF91c2FnZShwaXBlKWAgaW4gYGFub25fcGlwZV93cml0ZWAgaW4gcGxhY2Ugb2YgdGhlIG5vdy1yZW5hbWVkL2NvbmRpdGlvbmFsIGBwaXBlLVx1MDAzZXBvbGxfdXNhZ2VgIGNoZWNrLiBTZWVtcyBzdHJhaWdodGZvcndhcmQ6IHVwZGF0ZSB0aGUgdXNhZ2UgZmxhZyB3aGVuIGEgZmlsZSBkZXNjcmlwdG9yIGVudGVycyB0aGUgZXBvbGwgbG9vcCBhbmQgcmVhZCB0aGUgdXNhZ2UgZmxhZyB3aGVuIHdyaXRpbmcuXG5cbkhvd2V2ZXIsIGxldCdzIHpvb20gaW4gb24gYHBpcGVfc2V0X2Vwb2xsX3VzYWdlYDpcblxuYGBgY1xuc3RhdGljIHZvaWQgcGlwZV9zZXRfZXBvbGxfdXNhZ2Uoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKnBpcGUpXG57XG4jaWZkZWYgQ09ORklHX0VQT0xMXG5cdGlmICgoZmlscC1cdTAwM2VmX21vZGUgXHUwMDI2IEZNT0RFX1JFQUQpIFx1MDAyNlx1MDAyNiBmaWxwLVx1MDAzZWZfZXAgXHUwMDI2XHUwMDI2XG5cdCAgICB1bmxpa2VseSghUkVBRF9PTkNFKHBpcGUtXHUwMDNlZXBvbGxfdXNhZ2UpKSlcblx0XHRXUklURV9PTkNFKHBpcGUtXHUwMDNlZXBvbGxfdXNhZ2UsIHRydWUpO1xuI2VuZGlmXG59XG5gYGBcblxuV2FpdCBhIHNlY29uZC4gV2hhdCdzIHRoaXMgYGZpbHAtXHUwMDNlZl9lcGA/IEkgZG9uJ3QgcmVjYWxsIHNlZWluZyB0aGF0IGluIGBzdHJ1Y3QgZmlsZWAuIEknbSBmYW1pbGlhciB3aXRoIGBmX21vZGVgLCBidXQgYGZfZXBgPyBUaGF0IG5lZWRzIGNsYXJpZnlpbmcuIE9rYXksIEknbSBnb2luZyB0byBxdWlja2x5IGdyZXAgdGhlIGtlcm5lbCBzb3VyY2UgZm9yIHRoYXQgYGZfZXBgIGZpZWxkIHdpdGhpbiB0aGUgZGVmaW5pdGlvbiBvZiBgc3RydWN0IGZpbGVgLiBMZXQncyBzZWUgd2hhdCB0aGF0IHJldmVhbHMgYWJvdXQgaXRzIHJvbGUgaW4gdGhpcyBjb250ZXh0LiBJdCdzIGxpa2VseSByZWxhdGVkIHRvIHRoZSBlcG9sbCBmaWxlIGRlc2NyaXB0b3IsIGJ1dCBJIG5lZWQgdG8gbWFrZSBzdXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjI4LCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzAyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMTg6NDE6NTEuMzM2Njc1OTZaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDIwNTc1MTIyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImZfZXBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiaW5jbHVkZS9saW51eC9mcy5oXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImluY2x1ZGUvbGludXgvZnMuaD0xMjIxPXN0YXRpYyBpbmxpbmUgaW50IHJhX2hhc19pbmRleChzdHJ1Y3QgZmlsZV9yYV9zdGF0ZSAqcmEsIHBnb2ZmX3QgaW5kZXgpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2ZzLmgtMTIyOC0gKiBzdHJ1Y3QgZmlsZSAtIFJlcHJlc2VudHMgYSBmaWxlXFxuaW5jbHVkZS9saW51eC9mcy5oOjEyMjk6ICogQGZfbG9jazogUHJvdGVjdHMgZl9lcCwgZl9mbGFncy4gTXVzdCBub3QgYmUgdGFrZW4gZnJvbSBJUlEgY29udGV4dC5cXG5pbmNsdWRlL2xpbnV4L2ZzLmgtMTIzMC0gKiBAZl9tb2RlOiBGTU9ERV8qIGZsYWdzIG9mdGVuIHVzZWQgaW4gaG90cGF0aHNcXG4tLVxcbmluY2x1ZGUvbGludXgvZnMuaC0xMjQ3LSAqIEBmX3NiX2VycjogcGVyIHNiIHdyaXRlYmFjayBlcnJvcnNcXG5pbmNsdWRlL2xpbnV4L2ZzLmg6MTI0ODogKiBAZl9lcDogbGluayBvZiBhbGwgZXBvbGwgaG9va3MgZm9yIHRoaXMgZmlsZVxcbmluY2x1ZGUvbGludXgvZnMuaC0xMjQ5LSAqIEBmX3Rhc2tfd29yazogdGFzayB3b3JrIGVudHJ5IHBvaW50XFxuLS1cXG5pbmNsdWRlL2xpbnV4L2ZzLmg9MTI1NT1zdHJ1Y3QgZmlsZSB7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L2ZzLmgtMTI4NC0jaWZkZWYgQ09ORklHX0VQT0xMXFxuaW5jbHVkZS9saW51eC9mcy5oOjEyODU6XFx0c3RydWN0IGhsaXN0X2hlYWRcXHRcXHQqZl9lcDtcXG5pbmNsdWRlL2xpbnV4L2ZzLmgtMTI4Ni0jZW5kaWZcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMTg6NDE6NTEuNzU3MjYxNDkxWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTUyNTQxMDE0OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFBpcGUgRXBvbGwgV2FrZXVwIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHkgc2VlIHRoYXQgdGhlIGBmX2VwYCBmdW5jdGlvbiBwb2ludGVyIGlzIGNvbmRpdGlvbmFsbHkgY29tcGlsZWQ7IGl0J3Mgb25seSBhdmFpbGFibGUgaWYgYENPTkZJR19FUE9MTGAgaXMgZGVmaW5lZC4gVGhhdCdzIHRoZSBiYXNlbGluZS4gVGhlIGNvcmUgb2YgdGhpcyBwYXRjaCBzZWVtcyB0byBiZSBtYWtpbmcgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIGhvdyBwaXBlIHdha2V1cHMgaW50ZXJhY3Qgd2l0aCBgZXBvbGxgLCBgcG9sbGAsIGFuZCBgc2VsZWN0YC5cblxuUHJldmlvdXNseSwgYHBpcGUtXHUwMDNlcG9sbF91c2FnZWAgd2FzIHVuY29uZGl0aW9uYWxseSBzZXQgdG8gYHRydWVgIHdpdGhpbiBgcGlwZV9wb2xsYC4gIFRoYXQgbWVhbnQgKmFueSogY2FsbCB0byBwb2xsLCBzZWxlY3QsIG9yIGVwb2xsIG9uIGEgcGlwZSB3b3VsZCB0cmlnZ2VyIHRoYXQgZmxhZywgdHVybmluZyBpdCBvbi4gTm93LCB0aGlzIHBhdGNoIHJlZmluZXMgdGhlIGxvZ2ljLiBJdCBvbmx5IHNldHMgYHBpcGUtXHUwMDNlcG9sbF91c2FnZWAgdG8gYHRydWVgIGlmIGBmaWxwLVx1MDAzZWZfZXBgIGlzIGFjdHVhbGx5IG5vbi1OVUxMLCBpbmRpY2F0aW5nIGEgZ2VudWluZSBlcG9sbCBob29rLCBhbmQgb25seSBpZiB0aGUgZmlsZSdzIG1vZGUgKGBmaWxwLVx1MDAzZWZfbW9kZWApIGluY2x1ZGVzIGBGTU9ERV9SRUFEYC5cblxuRXNzZW50aWFsbHksIHRoaXMgaXMgYSBjaGFuZ2UgdG8gdGhlIHBpcGUgd2FrZXVwIGJlaGF2aW9yLCBzcGVjaWZpY2FsbHkgaW1wYWN0aW5nIGBlcG9sbGAsIGBwb2xsYCwgYW5kIGBzZWxlY3RgLiBUaGUga2V5IGJlbmVmaXQgaXMgdGhhdCB0aGlzIHJldmlzZWQgbG9naWMgcHJldmVudHMgdW5uZWNlc3Nhcnkgd2FrZXVwcyBmb3IgYHBvbGxgIGFuZCBgc2VsZWN0YCBvbiBwaXBlcywgYW5kIGFsc28sIGltcG9ydGFudGx5LCBmb3Igd3JpdGUtb25seSBgZXBvbGxgIGluc3RhbmNlcy4gVGhhdCdzIGEgZGVmaW5pdGUgaW1wcm92ZW1lbnQuXG5cbk5vdywgSSBuZWVkIHRvIGNoZWNrIHNvbWV0aGluZyBxdWlja2x5LiBJIG5lZWQgdG8gZGV0ZXJtaW5lIGlmIGBDT05GSUdfRVBPTExgIGlzIGdlbmVyYWxseSBlbmFibGVkIGJ5IGRlZmF1bHQuIElmIGl0IGlzIG5vdCwgdGhlbiBJJ2xsIG5lZWQgdG8gZmlndXJlIG91dCB3aGVyZSB3ZSBlbmFibGUgaXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24gc3lzdGVtLiBJJ2xsIHRha2UgYSBxdWljayBwZWVrIGF0IGBpbml0L0tjb25maWdgIHRvIGNvbmZpcm0gaXRzIGRlZmF1bHQgc3RhdGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM3NTUsIk91dHB1dFRva2VucyI6MjcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMTg6NDE6NTcuMjgyNjc1WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU4MzkwNjY1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBFUE9MTFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJpbml0L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiaW5pdC9LY29uZmlnPTE4NTk9Y29uZmlnIEZVVEVYX1JPQlVTVF9VTkxPQ0tcXG4tLVxcbmluaXQvS2NvbmZpZy0xODYxLVxcbmluaXQvS2NvbmZpZzoxODYyOmNvbmZpZyBFUE9MTFxcbmluaXQvS2NvbmZpZy0xODYzLVxcdGJvb2wgXFxcIkVuYWJsZSBldmVudHBvbGwgc3VwcG9ydFxcXCIgaWYgRVhQRVJUXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDE4OjQxOjU3LjM0MTA3MjE0NVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwNzIxNTI1NTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIFBpcGUtUmVsYXRlZCBGdW5jdGlvbnMqKlxuXG5Pa2F5LCBzbyB0aGlzIGZlYXR1cmUgaXMgZW5hYmxlZCBieSBkZWZhdWx0LCBpbnRlcmVzdGluZy4gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUga2V5IGZ1bmN0aW9ucyBpbnZvbHZlZCBoZXJlLiBMZXQncyBzZWUuLi4gSSd2ZSBpZGVudGlmaWVkIGBwaXBlX3NldF9lcG9sbF91c2FnZWAsIGBwaXBlX2dldF9lcG9sbF91c2FnZWAsIGBhbm9uX3BpcGVfd3JpdGVgLCBhbmQgYHBpcGVfcG9sbGAuXG5cbkhtbSwgbm93IHRoYXQgSSBsb29rIGF0IGl0LCBgYW5vbl9waXBlX3dyaXRlYCBhbmQgYHBpcGVfcG9sbGAgYXJlIGNsZWFybHkgaW4gdGhlIGhvdCBwYXRoLiBUaGV5J3JlIHBlcmZvcm1hbmNlLWNyaXRpY2FsLiBJIHdvbmRlciBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGtleSBmdW5jdGlvbnMgYXQgcGxheSBoZXJlLCB3aGljaCBtaWdodCBiZSBsZXNzIG9idmlvdXMuXG5cbkFoYSEgTG9va2luZyBjbG9zZXIsIGBwaXBlX3NldF9lcG9sbF91c2FnZWAgYW5kIGBwaXBlX2dldF9lcG9sbF91c2FnZWAgYXJlIGVpdGhlciBzdGF0aWMgaW5saW5lIG9yIHN0YXRpYyBmdW5jdGlvbnMgbG9jYXRlZCBpbiBgZnMvcGlwZS5jYC4gUmlnaHQsIEkgc2hvdWxkIHRha2UgYSBkZWVwZXIgbG9vayBhdCB0aGF0IGZpbGUgdG8gc2VlIHdoYXQgZWxzZSBtaWdodCBiZSBnb2luZyBvbi4gSXQncyB0aW1lIHRvIGRpdmUgaW50byBgZnMvcGlwZS5jYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDQyNCwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQxODo0MjowMS40MTMyMjczMjZaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjQwNzc4MTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicGlwZV9zZXRfZXBvbGxfdXNhZ2VcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZnMvcGlwZS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL3BpcGUuYz0zMzA9c3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgcGlwZV91cGRhdGVfdGFpbChzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpwaXBlLFxcbi0tXFxuZnMvcGlwZS5jLTM1OS1cXG5mcy9waXBlLmM6MzYwOnN0YXRpYyB2b2lkIHBpcGVfc2V0X2Vwb2xsX3VzYWdlKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpwaXBlKVxcbmZzL3BpcGUuYy0zNjEte1xcbi0tXFxuZnMvcGlwZS5jPTc3ND1waXBlX3BvbGwoc3RydWN0IGZpbGUgKmZpbHAsIHBvbGxfdGFibGUgKndhaXQpXFxuLS1cXG5mcy9waXBlLmMtNzgwLVxcdC8qIEVwb2xsIGhhcyBzb21lIGhpc3RvcmljYWwgbmFzdHkgc2VtYW50aWNzLCB0aGlzIGVuYWJsZXMgdGhlbSAqL1xcbmZzL3BpcGUuYzo3ODE6XFx0cGlwZV9zZXRfZXBvbGxfdXNhZ2UoZmlscCwgcGlwZSk7XFxuZnMvcGlwZS5jLTc4Mi1cXHQvKlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQxODo0MjowMS40NzczMTAwODlaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTYyNjc2NjEzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uXG5cbioqQW5hbHl6aW5nIFBpcGUgT3BlcmF0aW9ucyoqXG5cblJpZ2h0LCBzbyBgcGlwZV9wb2xsYCBpcyB0aGUgY29yZSBmdW5jdGlvbiBmb3IgY2hlY2tpbmcgdGhlIHN0YXR1cyBvZiBhIHBpcGUuIFRoYXQgbWFrZXMgc2Vuc2UsIHRoZSBlbnRyeSBwb2ludCBmb3IgcG9sbGluZyB0aGUgcGlwZS4gSSdtIGFsc28gdGhpbmtpbmcgYWJvdXQgYGFub25fcGlwZV93cml0ZWAgd2hpY2ggaXMgdGhlIHRvcCBsZXZlbCB3cml0ZSBmdW5jdGlvbiBmb3IgYW5vbnltb3VzIHBpcGVzLCBzbyBJIGdldCB0aGUgYmlnIHBpY3R1cmUuIEFyZSB0aGVyZSBhbnkgb3RoZXIgaGlnaCBsZXZlbCBmdW5jdGlvbiBjYWxscyBJIHNob3VsZCBiZSBhd2FyZSBvZiwgd2hpY2ggYXJlIHRoZSBtYWluIGVudHJ5IHBvaW50cz8gSSdtIGdvaW5nIHRvIHF1aWNrbHkgY2hlY2sgYGFub25fcGlwZV9yZWFkYCB0byBzZWUgaWYgdGhhdCdzIHRoZSByZWFkIGVxdWl2YWxlbnQuIE9rYXksIGdvb2QuIFRoYXQgc2hvdWxkIGRvIGZvciBub3cuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ5OTUsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQxODo0MjowNC42Mzk5OTE2MzNaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzMzQ5OTQ5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJhbm9uX3BpcGVfcmVhZFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9waXBlLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvcGlwZS5jPTM3Nz1zdGF0aWMgc3NpemVfdFxcbmZzL3BpcGUuYzozNzg6YW5vbl9waXBlX3JlYWQoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKnRvKVxcbmZzL3BpcGUuYy0zNzkte1xcbi0tXFxuZnMvcGlwZS5jPTUxNj1maWZvX3BpcGVfcmVhZChzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqdG8pXFxuZnMvcGlwZS5jLTUxNy17XFxuZnMvcGlwZS5jOjUxODpcXHRpbnQgcmV0ID0gYW5vbl9waXBlX3JlYWQoaW9jYiwgdG8pO1xcbmZzL3BpcGUuYy01MTktXFx0aWYgKHJldCBcXHUwMDNlIDApXFxuLS1cXG5mcy9waXBlLmM9MTM3MD1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBwaXBlYW5vbl9mb3BzID0ge1xcbmZzL3BpcGUuYy0xMzcxLVxcdC5vcGVuXFx0XFx0PSBmaWZvX29wZW4sXFxuZnMvcGlwZS5jOjEzNzI6XFx0LnJlYWRfaXRlclxcdD0gYW5vbl9waXBlX3JlYWQsXFxuZnMvcGlwZS5jLTEzNzMtXFx0LndyaXRlX2l0ZXJcXHQ9IGFub25fcGlwZV93cml0ZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMTg6NDI6MDUuMDczNDk4NzAzWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwMzA5Nzk1NzM1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBQYXRjaCBmb3IgU3l6a2FsbGVyIFRhcmdldGluZyoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gVGhlIHBhdGNoIGZvY3VzZXMgb24gbW9kaWZ5aW5nIGhvdyBwaXBlcyBpbnRlcmFjdCB3aXRoIGBlcG9sbGAsIHNwZWNpZmljYWxseSB3aXRoaW4gYGFub25fcGlwZV93cml0ZWAgYW5kIGBwaXBlX3BvbGxgLiBNeSBpbml0aWFsIHRob3VnaHQgd2FzIHRvIHNpbXBseSBhZGQgdGhlc2UgZnVuY3Rpb25zIHRvIGBGb2N1c1N5bWJvbHNgLiBIb3dldmVyLCBJJ20gYWxyZWFkeSB0aGlua2luZyBhYm91dCBob3QtcGF0aCBpc3N1ZXM7IGBhbm9uX3BpcGVfd3JpdGVgIGFuZCBgcGlwZV9wb2xsYCBhcmUgc3VwZXIgY29tbW9uLlxuXG5MZXQncyBkaWcgZGVlcGVyLiBJIHNhdyBgcGlwZV9zZXRfZXBvbGxfdXNhZ2VgLCBhbmQgaXQncyBzdGF0aWMuIEluaXRpYWxseSwgSSBkaXNtaXNzZWQgaXQgYmVjYXVzZSBpdCdzIHN0YXRpYyBhbmQgbm90IGV4cG9ydGVkLCBidXQgdGhlbiBJIHJlbWVtYmVyIHN5emthbGxlciBjYW4gc3RpbGwgZnV6eiBzdGF0aWMgZnVuY3Rpb25zIGlmIHRoZXkncmUgaW4gRFdBUkYgaW5mby4gVGhpcyBjb3VsZCBiZSBwcm9taXNpbmcuIEJ1dCB0aGUgcHJvbXB0IG1lbnRpb25zLCBcImF2b2lkaW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cIiBUaGlzIG1lYW5zIGBhbm9uX3BpcGVfd3JpdGVgIGFuZCBgcGlwZV9wb2xsYCBhcmUgcHJvYmFibHkgb3V0LlxuXG5TbywgYHBpcGVfc2V0X2Vwb2xsX3VzYWdlYCBpcyBsb29raW5nIGdvb2Qgbm93LiBJIG5lZWQgdG8gYmUgc3VyZTsgbGV0J3MgY2hlY2sgaWYgaXQncyBpbmxpbmVkLiBJdCBpc24ndCBtYXJrZWQgYXMgYGlubGluZWAsIGJ1dCBpdCBpcyBxdWl0ZSBzbWFsbC4gTGV0J3MgbGlzdCBgcGlwZV9wb2xsYCBhbmQgYHBpcGVfc2V0X2Vwb2xsX3VzYWdlYCwgZm9yIG5vdy5cblxuTm93LCBkb2VzIHRoaXMgcGF0Y2ggcmVxdWlyZSBhIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24/IFllcywgdGhlIGNoYW5nZXMgYXJlIGNvbmRpdGlvbmFsIG9uIGBDT05GSUdfRVBPTExgLiBJIG5lZWQgdG8gZW5zdXJlIHRoYXQgaXMgc2V0LiBTbywgSSBuZWVkIHRvIGFkZCBgRVBPTExgIHRvIGBFbmFibGVDb25maWdzYC5cblxuTGV0J3MgcmV2aWV3IHRoZSByYXRpb25hbGUuIFRoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29uZGl0aW9uIGZvciBtYXJraW5nIGEgcGlwZSBhcyBlcG9sbC11c2VkLCBhZmZlY3Rpbmcgd2FrZXVwcyBpbiBgYW5vbl9waXBlX3dyaXRlYC4gSXQgaW50cm9kdWNlcyBgcGlwZV9zZXRfZXBvbGxfdXNhZ2VgIGFuZCBgcGlwZV9nZXRfZXBvbGxfdXNhZ2VgIGFuZCByZXN0cmljdHMgZXBvbGwgdXNhZ2UgdG8gYWN0dWFsIGVwb2xsIHVzZSAoY2hlY2tpbmcgYGZpbHAtXHUwMDNlZl9lcGAgaW5zdGVhZCBvZiBhbnkgcG9sbCB1c2UpLiBJdCdzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgcmVsYXRlZCB0byBwaXBlIGFuZCBlcG9sbCBpbnRlcmFjdGlvbi4gVGhpcyBkZWZpbml0ZWx5IHNlZW1zIHdvcnRoIGZ1enppbmcuXG5cbkknbSBjb25maWRlbnQgaW46XG5cbiogICBgV29ydGhGdXp6aW5nOiB0cnVlYFxuKiAgIGBGb2N1c1N5bWJvbHM6IHBpcGVfc2V0X2Vwb2xsX3VzYWdlYCwgYHBpcGVfcG9sbGBcbiogICBgRW5hYmxlQ29uZmlnczogRVBPTExgXG5cbkZpbmFsbHksIGxldCBtZSBkb3VibGUtY2hlY2suIFRoZSBgZl9lcGAgZmxhZyBpcyBvbmx5IGF2YWlsYWJsZSB3aXRoIGBDT05GSUdfRVBPTExgIGJ5IGxvb2tpbmcgYXQgYGluY2x1ZGUvbGludXgvZnMuaGAuIEFsc28sIHRoZSBwYXRjaCBpdHNlbGYgZ3VhcmRzIHRoZSBgZXBvbGxfdXNhZ2VgIGZpZWxkIGluIGBzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvYC5cblxuT2theSwgSSdtIHJlYWR5IHRvIGNhbGwgYHNldC1yZXN1bHRzYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTQ3NCwiT3V0cHV0VG9rZW5zIjoxMTMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MjgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMTg6NDI6MTUuMzgzMjk3MjM4WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODg3NDc2MjIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkVQT0xMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicGlwZV9zZXRfZXBvbGxfdXNhZ2VcIixcbiAgICBcInBpcGVfcG9sbFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwaXBlIHBvbGxpbmcgbG9naWMgdG8gb25seSBzZXQgdGhlIGVwb2xsIHVzYWdlIGZsYWcgd2hlbiBhY3R1YWxseSB1c2VkIGJ5IGVwb2xsIChjaGVja2luZyBmaWxwLVxcdTAwM2VmX2VwKSwgcmF0aGVyIHRoYW4gYW55IHBvbGwgdXNhZ2UuIFRoaXMgY2hhbmdlcyB0aGUgd2FrZXVwIGJlaGF2aW9yIGluIGFub25fcGlwZV93cml0ZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIGNvcmUga2VybmVsIHBpcGUvZXBvbGwgaW50ZXJhY3Rpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiRVBPTExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJwaXBlX3NldF9lcG9sbF91c2FnZVwiLFxuICAgIFwicGlwZV9wb2xsXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHBpcGUgcG9sbGluZyBsb2dpYyB0byBvbmx5IHNldCB0aGUgZXBvbGwgdXNhZ2UgZmxhZyB3aGVuIGFjdHVhbGx5IHVzZWQgYnkgZXBvbGwgKGNoZWNraW5nIGZpbHAtXFx1MDAzZWZfZXApLCByYXRoZXIgdGhhbiBhbnkgcG9sbCB1c2FnZS4gVGhpcyBjaGFuZ2VzIHRoZSB3YWtldXAgYmVoYXZpb3IgaW4gYW5vbl9waXBlX3dyaXRlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gY29yZSBrZXJuZWwgcGlwZS9lcG9sbCBpbnRlcmFjdGlvbi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowxrdpl[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-24 18:21:25 +0000 UTC FinishedAt: 2026-07-24 18:42:17 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "vfs", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git", "commit_hash": "ce76d9d4f5f36501013bd94bb65dd067f04b2913", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "EPOLL" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "vfs", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git", "commit_hash": "ce76d9d4f5f36501013bd94bb65dd067f04b2913", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "EPOLL" ], "series_id": "e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "pipe_set_epoll_usage", "pipe_poll" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDE4OjQxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0VQT0xMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cGlwZV9zZXRfZXBvbGxfdXNhZ2UmIzM0OywKICAgICYjMzQ7cGlwZV9wb2xsJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwaXBlIHBvbGxpbmcgbG9naWMgdG8gb25seSBzZXQgdGhlIGVwb2xsIHVzYWdlIGZsYWcgd2hlbiBhY3R1YWxseSB1c2VkIGJ5IGVwb2xsIChjaGVja2luZyBmaWxwLVx1MDAzZWZfZXApLCByYXRoZXIgdGhhbiBhbnkgcG9sbCB1c2FnZS4gVGhpcyBjaGFuZ2VzIHRoZSB3YWtldXAgYmVoYXZpb3IgaW4gYW5vbl9waXBlX3dyaXRlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gY29yZSBrZXJuZWwgcGlwZS9lcG9sbCBpbnRlcmFjdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAxODo0MTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDA2NzQ2MGMzOTQ2ZTYwYTIyOGRmMDUzZjYxODMzZmY0M2RhZmNmOGNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1bCAyNCAxODo0MTo0MyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9mcy9waXBlLmMgYi9mcy9waXBlLmNcbmluZGV4IDQyOWIwNzE0ZWM1NzU1Li5mYTRlNzBkNWY5MGQ4OSAxMDA2NDRcbi0tLSBhL2ZzL3BpcGUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZnMvcGlwZS5jXG5AQCAtMzU3LDYgJiM0MzszNTcsMjMgQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgcGlwZV91cGRhdGVfdGFpbChzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpwaXBlLFxuIFx0cmV0dXJuIHRhaWw7XG4gfVxuIFxuJiM0MztzdGF0aWMgdm9pZCBwaXBlX3NldF9lcG9sbF91c2FnZShzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqcGlwZSlcbiYjNDM7e1xuJiM0MzsjaWZkZWYgQ09ORklHX0VQT0xMXG4mIzQzO1x0aWYgKChmaWxwLVx1MDAzZWZfbW9kZSBcdTAwMjYgRk1PREVfUkVBRCkgXHUwMDI2XHUwMDI2IGZpbHAtXHUwMDNlZl9lcCBcdTAwMjZcdTAwMjZcbiYjNDM7XHQgICAgdW5saWtlbHkoIVJFQURfT05DRShwaXBlLVx1MDAzZWVwb2xsX3VzYWdlKSkpXG4mIzQzO1x0XHRXUklURV9PTkNFKHBpcGUtXHUwMDNlZXBvbGxfdXNhZ2UsIHRydWUpO1xuJiM0MzsjZW5kaWZcbiYjNDM7fVxuJiM0MztcbiYjNDM7c3RhdGljIGJvb2wgcGlwZV9nZXRfZXBvbGxfdXNhZ2Uoc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqcGlwZSlcbiYjNDM7e1xuJiM0MzsjaWZkZWYgQ09ORklHX0VQT0xMXG4mIzQzO1x0cmV0dXJuIHBpcGUtXHUwMDNlZXBvbGxfdXNhZ2U7XG4mIzQzOyNlbmRpZlxuJiM0MztcdHJldHVybiBmYWxzZTtcbiYjNDM7fVxuJiM0MztcbiBzdGF0aWMgc3NpemVfdFxuIGFub25fcGlwZV9yZWFkKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICp0bylcbiB7XG5AQCAtNjg5LDcgJiM0Mzs3MDYsNyBAQCBhbm9uX3BpcGVfd3JpdGUoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKmZyb20pXG4gXHQgKiBFcG9sbCBub25zZW5zaWNhbGx5IHdhbnRzIGEgd2FrZXVwIHdoZXRoZXIgdGhlIHBpcGVcbiBcdCAqIHdhcyBhbHJlYWR5IGVtcHR5IG9yIG5vdC5cbiBcdCAqL1xuLVx0aWYgKHdhc19lbXB0eSB8fCBwaXBlLVx1MDAzZXBvbGxfdXNhZ2UpXG4mIzQzO1x0aWYgKHdhc19lbXB0eSB8fCBwaXBlX2dldF9lcG9sbF91c2FnZShwaXBlKSlcbiBcdFx0d2FrZV91cF9pbnRlcnJ1cHRpYmxlX3N5bmNfcG9sbChcdTAwMjZwaXBlLVx1MDAzZXJkX3dhaXQsIEVQT0xMSU4gfCBFUE9MTFJETk9STSk7XG4gXHRraWxsX2Zhc3luYyhcdTAwMjZwaXBlLVx1MDAzZWZhc3luY19yZWFkZXJzLCBTSUdJTywgUE9MTF9JTik7XG4gXHRpZiAod2FrZV9uZXh0X3dyaXRlcilcbkBAIC03NjEsOSAmIzQzOzc3OCw3IEBAIHBpcGVfcG9sbChzdHJ1Y3QgZmlsZSAqZmlscCwgcG9sbF90YWJsZSAqd2FpdClcbiBcdHVuaW9uIHBpcGVfaW5kZXggaWR4O1xuIFxuIFx0LyogRXBvbGwgaGFzIHNvbWUgaGlzdG9yaWNhbCBuYXN0eSBzZW1hbnRpY3MsIHRoaXMgZW5hYmxlcyB0aGVtICovXG4tXHRpZiAodW5saWtlbHkoIVJFQURfT05DRShwaXBlLVx1MDAzZXBvbGxfdXNhZ2UpKSlcbi1cdFx0V1JJVEVfT05DRShwaXBlLVx1MDAzZXBvbGxfdXNhZ2UsIHRydWUpO1xuLVxuJiM0MztcdHBpcGVfc2V0X2Vwb2xsX3VzYWdlKGZpbHAsIHBpcGUpO1xuIFx0LypcbiBcdCAqIFJlYWRpbmcgcGlwZSBzdGF0ZSBvbmx5IC0tIG5vIG5lZWQgZm9yIGFjcXVpcmluZyB0aGUgc2VtYXBob3JlLlxuIFx0ICpcbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3BpcGVfZnNfaS5oIGIvaW5jbHVkZS9saW51eC9waXBlX2ZzX2kuaFxuaW5kZXggN2Y2YTkyYWM5NzA0NzguLmQwNmRhOWJhZDNhOGNjIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC9waXBlX2ZzX2kuaFxuJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9saW51eC9waXBlX2ZzX2kuaFxuQEAgLTc0LDcgJiM0Mzs3NCw3IEBAIHVuaW9uIHBpcGVfaW5kZXgge1xuICAqXHRAZmlsZXM6IG51bWJlciBvZiBzdHJ1Y3QgZmlsZSByZWZlcnJpbmcgdGhpcyBwaXBlIChwcm90ZWN0ZWQgYnkgLVx1MDAzZWlfbG9jaylcbiAgKlx0QHJfY291bnRlcjogcmVhZGVyIGNvdW50ZXJcbiAgKlx0QHdfY291bnRlcjogd3JpdGVyIGNvdW50ZXJcbi0gKlx0QHBvbGxfdXNhZ2U6IGlzIHRoaXMgcGlwZSB1c2VkIGZvciBlcG9sbCwgd2hpY2ggaGFzIGNyYXp5IHdha2V1cHM/XG4mIzQzOyAqXHRAZXBvbGxfdXNhZ2U6IGlzIHRoaXMgcGlwZSB1c2VkIGZvciBlcG9sbCwgd2hpY2ggaGFzIGNyYXp5IHdha2V1cHM/XG4gICpcdEBmYXN5bmNfcmVhZGVyczogcmVhZGVyIHNpZGUgZmFzeW5jXG4gICpcdEBmYXN5bmNfd3JpdGVyczogd3JpdGVyIHNpZGUgZmFzeW5jXG4gICpcdEBidWZzOiB0aGUgY2lyY3VsYXIgYXJyYXkgb2YgcGlwZSBidWZmZXJzXG5AQCAtOTUsNyAmIzQzOzk1LDkgQEAgc3RydWN0IHBpcGVfaW5vZGVfaW5mbyB7XG4gXHR1bnNpZ25lZCBpbnQgZmlsZXM7XG4gXHR1bnNpZ25lZCBpbnQgcl9jb3VudGVyO1xuIFx0dW5zaWduZWQgaW50IHdfY291bnRlcjtcbi1cdGJvb2wgcG9sbF91c2FnZTtcbiYjNDM7I2lmZGVmIENPTkZJR19FUE9MTFxuJiM0MztcdGJvb2wgZXBvbGxfdXNhZ2U7XG4mIzQzOyNlbmRpZlxuICNpZmRlZiBDT05GSUdfV0FUQ0hfUVVFVUVcbiBcdGJvb2wgbm90ZV9sb3NzO1xuICNlbmRpZlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDE4OjQxPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtFUE9MTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3BpcGVfc2V0X2Vwb2xsX3VzYWdlJiMzNDssCiAgICAmIzM0O3BpcGVfcG9sbCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgcGlwZSBwb2xsaW5nIGxvZ2ljIHRvIG9ubHkgc2V0IHRoZSBlcG9sbCB1c2FnZSBmbGFnIHdoZW4gYWN0dWFsbHkgdXNlZCBieSBlcG9sbCAoY2hlY2tpbmcgZmlscC1cdTAwM2VmX2VwKSwgcmF0aGVyIHRoYW4gYW55IHBvbGwgdXNhZ2UuIFRoaXMgY2hhbmdlcyB0aGUgd2FrZXVwIGJlaGF2aW9yIGluIGFub25fcGlwZV93cml0ZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIGNvcmUga2VybmVsIHBpcGUvZXBvbGwgaW50ZXJhY3Rpb24uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDA2NzQ2MGMzOTQ2ZTYwYTIyOGRmMDUzZjYxODMzZmY0M2RhZmNmOGMKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIEp1bCAyNCAxODo0MTo0MyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2ZzL3BpcGUuYyBiL2ZzL3BpcGUuYwppbmRleCA0MjliMDcxNGVjNTc1NS4uZmE0ZTcwZDVmOTBkODkgMTAwNjQ0Ci0tLSBhL2ZzL3BpcGUuYwomIzQzOyYjNDM7JiM0MzsgYi9mcy9waXBlLmMKQEAgLTM1Nyw2ICYjNDM7MzU3LDIzIEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IHBpcGVfdXBkYXRlX3RhaWwoc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqcGlwZSwKIAlyZXR1cm4gdGFpbDsKIH0KIAomIzQzO3N0YXRpYyB2b2lkIHBpcGVfc2V0X2Vwb2xsX3VzYWdlKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpwaXBlKQomIzQzO3sKJiM0MzsjaWZkZWYgQ09ORklHX0VQT0xMCiYjNDM7CWlmICgoZmlscC0mZ3Q7Zl9tb2RlICZhbXA7IEZNT0RFX1JFQUQpICZhbXA7JmFtcDsgZmlscC0mZ3Q7Zl9lcCAmYW1wOyZhbXA7CiYjNDM7CSAgICB1bmxpa2VseSghUkVBRF9PTkNFKHBpcGUtJmd0O2Vwb2xsX3VzYWdlKSkpCiYjNDM7CQlXUklURV9PTkNFKHBpcGUtJmd0O2Vwb2xsX3VzYWdlLCB0cnVlKTsKJiM0MzsjZW5kaWYKJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIGJvb2wgcGlwZV9nZXRfZXBvbGxfdXNhZ2Uoc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqcGlwZSkKJiM0Mzt7CiYjNDM7I2lmZGVmIENPTkZJR19FUE9MTAomIzQzOwlyZXR1cm4gcGlwZS0mZ3Q7ZXBvbGxfdXNhZ2U7CiYjNDM7I2VuZGlmCiYjNDM7CXJldHVybiBmYWxzZTsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgc3NpemVfdAogYW5vbl9waXBlX3JlYWQoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKnRvKQogewpAQCAtNjg5LDcgJiM0Mzs3MDYsNyBAQCBhbm9uX3BpcGVfd3JpdGUoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKmZyb20pCiAJICogRXBvbGwgbm9uc2Vuc2ljYWxseSB3YW50cyBhIHdha2V1cCB3aGV0aGVyIHRoZSBwaXBlCiAJICogd2FzIGFscmVhZHkgZW1wdHkgb3Igbm90LgogCSAqLwotCWlmICh3YXNfZW1wdHkgfHwgcGlwZS0mZ3Q7cG9sbF91c2FnZSkKJiM0MzsJaWYgKHdhc19lbXB0eSB8fCBwaXBlX2dldF9lcG9sbF91c2FnZShwaXBlKSkKIAkJd2FrZV91cF9pbnRlcnJ1cHRpYmxlX3N5bmNfcG9sbCgmYW1wO3BpcGUtJmd0O3JkX3dhaXQsIEVQT0xMSU4gfCBFUE9MTFJETk9STSk7CiAJa2lsbF9mYXN5bmMoJmFtcDtwaXBlLSZndDtmYXN5bmNfcmVhZGVycywgU0lHSU8sIFBPTExfSU4pOwogCWlmICh3YWtlX25leHRfd3JpdGVyKQpAQCAtNzYxLDkgJiM0Mzs3NzgsNyBAQCBwaXBlX3BvbGwoc3RydWN0IGZpbGUgKmZpbHAsIHBvbGxfdGFibGUgKndhaXQpCiAJdW5pb24gcGlwZV9pbmRleCBpZHg7CiAKIAkvKiBFcG9sbCBoYXMgc29tZSBoaXN0b3JpY2FsIG5hc3R5IHNlbWFudGljcywgdGhpcyBlbmFibGVzIHRoZW0gKi8KLQlpZiAodW5saWtlbHkoIVJFQURfT05DRShwaXBlLSZndDtwb2xsX3VzYWdlKSkpCi0JCVdSSVRFX09OQ0UocGlwZS0mZ3Q7cG9sbF91c2FnZSwgdHJ1ZSk7Ci0KJiM0MzsJcGlwZV9zZXRfZXBvbGxfdXNhZ2UoZmlscCwgcGlwZSk7CiAJLyoKIAkgKiBSZWFkaW5nIHBpcGUgc3RhdGUgb25seSAtLSBubyBuZWVkIGZvciBhY3F1aXJpbmcgdGhlIHNlbWFwaG9yZS4KIAkgKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9waXBlX2ZzX2kuaCBiL2luY2x1ZGUvbGludXgvcGlwZV9mc19pLmgKaW5kZXggN2Y2YTkyYWM5NzA0NzguLmQwNmRhOWJhZDNhOGNjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3BpcGVfZnNfaS5oCiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvcGlwZV9mc19pLmgKQEAgLTc0LDcgJiM0Mzs3NCw3IEBAIHVuaW9uIHBpcGVfaW5kZXggewogICoJQGZpbGVzOiBudW1iZXIgb2Ygc3RydWN0IGZpbGUgcmVmZXJyaW5nIHRoaXMgcGlwZSAocHJvdGVjdGVkIGJ5IC0mZ3Q7aV9sb2NrKQogICoJQHJfY291bnRlcjogcmVhZGVyIGNvdW50ZXIKICAqCUB3X2NvdW50ZXI6IHdyaXRlciBjb3VudGVyCi0gKglAcG9sbF91c2FnZTogaXMgdGhpcyBwaXBlIHVzZWQgZm9yIGVwb2xsLCB3aGljaCBoYXMgY3Jhenkgd2FrZXVwcz8KJiM0MzsgKglAZXBvbGxfdXNhZ2U6IGlzIHRoaXMgcGlwZSB1c2VkIGZvciBlcG9sbCwgd2hpY2ggaGFzIGNyYXp5IHdha2V1cHM/CiAgKglAZmFzeW5jX3JlYWRlcnM6IHJlYWRlciBzaWRlIGZhc3luYwogICoJQGZhc3luY193cml0ZXJzOiB3cml0ZXIgc2lkZSBmYXN5bmMKICAqCUBidWZzOiB0aGUgY2lyY3VsYXIgYXJyYXkgb2YgcGlwZSBidWZmZXJzCkBAIC05NSw3ICYjNDM7OTUsOSBAQCBzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvIHsKIAl1bnNpZ25lZCBpbnQgZmlsZXM7CiAJdW5zaWduZWQgaW50IHJfY291bnRlcjsKIAl1bnNpZ25lZCBpbnQgd19jb3VudGVyOwotCWJvb2wgcG9sbF91c2FnZTsKJiM0MzsjaWZkZWYgQ09ORklHX0VQT0xMCiYjNDM7CWJvb2wgZXBvbGxfdXNhZ2U7CiYjNDM7I2VuZGlmCiAjaWZkZWYgQ09ORklHX1dBVENIX1FVRVVFCiAJYm9vbCBub3RlX2xvc3M7CiAjZW5kaWYKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMTg6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjYyOAoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDMwMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQaXBlIFBhdGNoIGZvciBFcG9sbCBJbnRlZ3JhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHNlZW1zIHRvIGJlIHRvdWNoaW5nIHRoZSBwaXBlIGltcGxlbWVudGF0aW9uLCBzcGVjaWZpY2FsbHkgYGZzL3BpcGUuY2AgYW5kIGBpbmNsdWRlL2xpbnV4L3BpcGVfZnNfaS5oYC4gVGhlIGNvcmUgY2hhbmdlIEkmIzM5O20gc2VlaW5nIGlzIHRoZSByZW5hbWluZyBvZiBgcG9sbF91c2FnZWAgdG8gYGVwb2xsX3VzYWdlYCB3aXRoaW4gdGhlIGBzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvYCwgYW5kIGl0IGxvb2tzIGxpa2UgdGhpcyBpcyBjb25kaXRpb25hbCBvbiBgQ09ORklHX0VQT0xMYCBiZWluZyBlbmFibGVkLiBTbWFydCwga2VlcHMgdGhlIGNvcmUgZnVuY3Rpb25hbGl0eSBjbGVhbiBpZiBlcG9sbCBpc24mIzM5O3QgaW4gcGxheS4KClRoaXMgaXMgZm9sbG93ZWQgdXAgYnkgdGhlIGludHJvZHVjdGlvbiBvZiBgcGlwZV9zZXRfZXBvbGxfdXNhZ2VgIGFuZCBgcGlwZV9nZXRfZXBvbGxfdXNhZ2VgIGZ1bmN0aW9ucy4gVGhhdCBtYWtlcyBzZW5zZSwgZW5jYXBzdWxhdGluZyB0aGUgYWNjZXNzIHRvIHRoaXMgbmV3IGZsYWcuIFRoZW4sIGl0IGNhbGxzIGBwaXBlX3NldF9lcG9sbF91c2FnZShmaWxwLCBwaXBlKWAgaW4gYHBpcGVfcG9sbGAgYW5kIGBwaXBlX2dldF9lcG9sbF91c2FnZShwaXBlKWAgaW4gYGFub25fcGlwZV93cml0ZWAgaW4gcGxhY2Ugb2YgdGhlIG5vdy1yZW5hbWVkL2NvbmRpdGlvbmFsIGBwaXBlLSZndDtwb2xsX3VzYWdlYCBjaGVjay4gU2VlbXMgc3RyYWlnaHRmb3J3YXJkOiB1cGRhdGUgdGhlIHVzYWdlIGZsYWcgd2hlbiBhIGZpbGUgZGVzY3JpcHRvciBlbnRlcnMgdGhlIGVwb2xsIGxvb3AgYW5kIHJlYWQgdGhlIHVzYWdlIGZsYWcgd2hlbiB3cml0aW5nLgoKSG93ZXZlciwgbGV0JiMzOTtzIHpvb20gaW4gb24gYHBpcGVfc2V0X2Vwb2xsX3VzYWdlYDoKCmBgYGMKc3RhdGljIHZvaWQgcGlwZV9zZXRfZXBvbGxfdXNhZ2Uoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKnBpcGUpCnsKI2lmZGVmIENPTkZJR19FUE9MTAoJaWYgKChmaWxwLSZndDtmX21vZGUgJmFtcDsgRk1PREVfUkVBRCkgJmFtcDsmYW1wOyBmaWxwLSZndDtmX2VwICZhbXA7JmFtcDsKCSAgICB1bmxpa2VseSghUkVBRF9PTkNFKHBpcGUtJmd0O2Vwb2xsX3VzYWdlKSkpCgkJV1JJVEVfT05DRShwaXBlLSZndDtlcG9sbF91c2FnZSwgdHJ1ZSk7CiNlbmRpZgp9CmBgYAoKV2FpdCBhIHNlY29uZC4gV2hhdCYjMzk7cyB0aGlzIGBmaWxwLSZndDtmX2VwYD8gSSBkb24mIzM5O3QgcmVjYWxsIHNlZWluZyB0aGF0IGluIGBzdHJ1Y3QgZmlsZWAuIEkmIzM5O20gZmFtaWxpYXIgd2l0aCBgZl9tb2RlYCwgYnV0IGBmX2VwYD8gVGhhdCBuZWVkcyBjbGFyaWZ5aW5nLiBPa2F5LCBJJiMzOTttIGdvaW5nIHRvIHF1aWNrbHkgZ3JlcCB0aGUga2VybmVsIHNvdXJjZSBmb3IgdGhhdCBgZl9lcGAgZmllbGQgd2l0aGluIHRoZSBkZWZpbml0aW9uIG9mIGBzdHJ1Y3QgZmlsZWAuIExldCYjMzk7cyBzZWUgd2hhdCB0aGF0IHJldmVhbHMgYWJvdXQgaXRzIHJvbGUgaW4gdGhpcyBjb250ZXh0LiBJdCYjMzk7cyBsaWtlbHkgcmVsYXRlZCB0byB0aGUgZXBvbGwgZmlsZSBkZXNjcmlwdG9yLCBidXQgSSBuZWVkIHRvIG1ha2Ugc3VyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAxODo0MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtmX2VwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7aW5jbHVkZS9saW51eC9mcy5oJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2luY2x1ZGUvbGludXgvZnMuaD0xMjIxPXN0YXRpYyBpbmxpbmUgaW50IHJhX2hhc19pbmRleChzdHJ1Y3QgZmlsZV9yYV9zdGF0ZSAqcmEsIHBnb2ZmX3QgaW5kZXgpXG4tLVxuaW5jbHVkZS9saW51eC9mcy5oLTEyMjgtICogc3RydWN0IGZpbGUgLSBSZXByZXNlbnRzIGEgZmlsZVxuaW5jbHVkZS9saW51eC9mcy5oOjEyMjk6ICogQGZfbG9jazogUHJvdGVjdHMgZl9lcCwgZl9mbGFncy4gTXVzdCBub3QgYmUgdGFrZW4gZnJvbSBJUlEgY29udGV4dC5cbmluY2x1ZGUvbGludXgvZnMuaC0xMjMwLSAqIEBmX21vZGU6IEZNT0RFXyogZmxhZ3Mgb2Z0ZW4gdXNlZCBpbiBob3RwYXRoc1xuLS1cbmluY2x1ZGUvbGludXgvZnMuaC0xMjQ3LSAqIEBmX3NiX2VycjogcGVyIHNiIHdyaXRlYmFjayBlcnJvcnNcbmluY2x1ZGUvbGludXgvZnMuaDoxMjQ4OiAqIEBmX2VwOiBsaW5rIG9mIGFsbCBlcG9sbCBob29rcyBmb3IgdGhpcyBmaWxlXG5pbmNsdWRlL2xpbnV4L2ZzLmgtMTI0OS0gKiBAZl90YXNrX3dvcms6IHRhc2sgd29yayBlbnRyeSBwb2ludFxuLS1cbmluY2x1ZGUvbGludXgvZnMuaD0xMjU1PXN0cnVjdCBmaWxlIHtcbi0tXG5pbmNsdWRlL2xpbnV4L2ZzLmgtMTI4NC0jaWZkZWYgQ09ORklHX0VQT0xMXG5pbmNsdWRlL2xpbnV4L2ZzLmg6MTI4NTpcdHN0cnVjdCBobGlzdF9oZWFkXHRcdCpmX2VwO1xuaW5jbHVkZS9saW51eC9mcy5oLTEyODYtI2VuZGlmXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMTg6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzc1NQoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDIxNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBpcGUgRXBvbGwgV2FrZXVwIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpbW1lZGlhdGVseSBzZWUgdGhhdCB0aGUgYGZfZXBgIGZ1bmN0aW9uIHBvaW50ZXIgaXMgY29uZGl0aW9uYWxseSBjb21waWxlZDsgaXQmIzM5O3Mgb25seSBhdmFpbGFibGUgaWYgYENPTkZJR19FUE9MTGAgaXMgZGVmaW5lZC4gVGhhdCYjMzk7cyB0aGUgYmFzZWxpbmUuIFRoZSBjb3JlIG9mIHRoaXMgcGF0Y2ggc2VlbXMgdG8gYmUgbWFraW5nIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byBob3cgcGlwZSB3YWtldXBzIGludGVyYWN0IHdpdGggYGVwb2xsYCwgYHBvbGxgLCBhbmQgYHNlbGVjdGAuCgpQcmV2aW91c2x5LCBgcGlwZS0mZ3Q7cG9sbF91c2FnZWAgd2FzIHVuY29uZGl0aW9uYWxseSBzZXQgdG8gYHRydWVgIHdpdGhpbiBgcGlwZV9wb2xsYC4gIFRoYXQgbWVhbnQgKmFueSogY2FsbCB0byBwb2xsLCBzZWxlY3QsIG9yIGVwb2xsIG9uIGEgcGlwZSB3b3VsZCB0cmlnZ2VyIHRoYXQgZmxhZywgdHVybmluZyBpdCBvbi4gTm93LCB0aGlzIHBhdGNoIHJlZmluZXMgdGhlIGxvZ2ljLiBJdCBvbmx5IHNldHMgYHBpcGUtJmd0O3BvbGxfdXNhZ2VgIHRvIGB0cnVlYCBpZiBgZmlscC0mZ3Q7Zl9lcGAgaXMgYWN0dWFsbHkgbm9uLU5VTEwsIGluZGljYXRpbmcgYSBnZW51aW5lIGVwb2xsIGhvb2ssIGFuZCBvbmx5IGlmIHRoZSBmaWxlJiMzOTtzIG1vZGUgKGBmaWxwLSZndDtmX21vZGVgKSBpbmNsdWRlcyBgRk1PREVfUkVBRGAuCgpFc3NlbnRpYWxseSwgdGhpcyBpcyBhIGNoYW5nZSB0byB0aGUgcGlwZSB3YWtldXAgYmVoYXZpb3IsIHNwZWNpZmljYWxseSBpbXBhY3RpbmcgYGVwb2xsYCwgYHBvbGxgLCBhbmQgYHNlbGVjdGAuIFRoZSBrZXkgYmVuZWZpdCBpcyB0aGF0IHRoaXMgcmV2aXNlZCBsb2dpYyBwcmV2ZW50cyB1bm5lY2Vzc2FyeSB3YWtldXBzIGZvciBgcG9sbGAgYW5kIGBzZWxlY3RgIG9uIHBpcGVzLCBhbmQgYWxzbywgaW1wb3J0YW50bHksIGZvciB3cml0ZS1vbmx5IGBlcG9sbGAgaW5zdGFuY2VzLiBUaGF0JiMzOTtzIGEgZGVmaW5pdGUgaW1wcm92ZW1lbnQuCgpOb3csIEkgbmVlZCB0byBjaGVjayBzb21ldGhpbmcgcXVpY2tseS4gSSBuZWVkIHRvIGRldGVybWluZSBpZiBgQ09ORklHX0VQT0xMYCBpcyBnZW5lcmFsbHkgZW5hYmxlZCBieSBkZWZhdWx0LiBJZiBpdCBpcyBub3QsIHRoZW4gSSYjMzk7bGwgbmVlZCB0byBmaWd1cmUgb3V0IHdoZXJlIHdlIGVuYWJsZSBpdCBpbiB0aGUgY29uZmlndXJhdGlvbiBzeXN0ZW0uIEkmIzM5O2xsIHRha2UgYSBxdWljayBwZWVrIGF0IGBpbml0L0tjb25maWdgIHRvIGNvbmZpcm0gaXRzIGRlZmF1bHQgc3RhdGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMTg6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEVQT0xMJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7aW5pdC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2luaXQvS2NvbmZpZz0xODU5PWNvbmZpZyBGVVRFWF9ST0JVU1RfVU5MT0NLXG4tLVxuaW5pdC9LY29uZmlnLTE4NjEtXG5pbml0L0tjb25maWc6MTg2Mjpjb25maWcgRVBPTExcbmluaXQvS2NvbmZpZy0xODYzLVx0Ym9vbCBcJiMzNDtFbmFibGUgZXZlbnRwb2xsIHN1cHBvcnRcJiMzNDsgaWYgRVhQRVJUXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMTg6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDQyNAoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDEzMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgUGlwZS1SZWxhdGVkIEZ1bmN0aW9ucyoqCgpPa2F5LCBzbyB0aGlzIGZlYXR1cmUgaXMgZW5hYmxlZCBieSBkZWZhdWx0LCBpbnRlcmVzdGluZy4gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUga2V5IGZ1bmN0aW9ucyBpbnZvbHZlZCBoZXJlLiBMZXQmIzM5O3Mgc2VlLi4uIEkmIzM5O3ZlIGlkZW50aWZpZWQgYHBpcGVfc2V0X2Vwb2xsX3VzYWdlYCwgYHBpcGVfZ2V0X2Vwb2xsX3VzYWdlYCwgYGFub25fcGlwZV93cml0ZWAsIGFuZCBgcGlwZV9wb2xsYC4KCkhtbSwgbm93IHRoYXQgSSBsb29rIGF0IGl0LCBgYW5vbl9waXBlX3dyaXRlYCBhbmQgYHBpcGVfcG9sbGAgYXJlIGNsZWFybHkgaW4gdGhlIGhvdCBwYXRoLiBUaGV5JiMzOTtyZSBwZXJmb3JtYW5jZS1jcml0aWNhbC4gSSB3b25kZXIgaWYgdGhlcmUgYXJlIGFueSBvdGhlciBrZXkgZnVuY3Rpb25zIGF0IHBsYXkgaGVyZSwgd2hpY2ggbWlnaHQgYmUgbGVzcyBvYnZpb3VzLgoKQWhhISBMb29raW5nIGNsb3NlciwgYHBpcGVfc2V0X2Vwb2xsX3VzYWdlYCBhbmQgYHBpcGVfZ2V0X2Vwb2xsX3VzYWdlYCBhcmUgZWl0aGVyIHN0YXRpYyBpbmxpbmUgb3Igc3RhdGljIGZ1bmN0aW9ucyBsb2NhdGVkIGluIGBmcy9waXBlLmNgLiBSaWdodCwgSSBzaG91bGQgdGFrZSBhIGRlZXBlciBsb29rIGF0IHRoYXQgZmlsZSB0byBzZWUgd2hhdCBlbHNlIG1pZ2h0IGJlIGdvaW5nIG9uLiBJdCYjMzk7cyB0aW1lIHRvIGRpdmUgaW50byBgZnMvcGlwZS5jYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAxODo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwaXBlX3NldF9lcG9sbF91c2FnZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2ZzL3BpcGUuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtmcy9waXBlLmM9MzMwPXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IHBpcGVfdXBkYXRlX3RhaWwoc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqcGlwZSxcbi0tXG5mcy9waXBlLmMtMzU5LVxuZnMvcGlwZS5jOjM2MDpzdGF0aWMgdm9pZCBwaXBlX3NldF9lcG9sbF91c2FnZShzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqcGlwZSlcbmZzL3BpcGUuYy0zNjEte1xuLS1cbmZzL3BpcGUuYz03NzQ9cGlwZV9wb2xsKHN0cnVjdCBmaWxlICpmaWxwLCBwb2xsX3RhYmxlICp3YWl0KVxuLS1cbmZzL3BpcGUuYy03ODAtXHQvKiBFcG9sbCBoYXMgc29tZSBoaXN0b3JpY2FsIG5hc3R5IHNlbWFudGljcywgdGhpcyBlbmFibGVzIHRoZW0gKi9cbmZzL3BpcGUuYzo3ODE6XHRwaXBlX3NldF9lcG9sbF91c2FnZShmaWxwLCBwaXBlKTtcbmZzL3BpcGUuYy03ODItXHQvKlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDE4OjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ5OTUKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiA1NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4KCioqQW5hbHl6aW5nIFBpcGUgT3BlcmF0aW9ucyoqCgpSaWdodCwgc28gYHBpcGVfcG9sbGAgaXMgdGhlIGNvcmUgZnVuY3Rpb24gZm9yIGNoZWNraW5nIHRoZSBzdGF0dXMgb2YgYSBwaXBlLiBUaGF0IG1ha2VzIHNlbnNlLCB0aGUgZW50cnkgcG9pbnQgZm9yIHBvbGxpbmcgdGhlIHBpcGUuIEkmIzM5O20gYWxzbyB0aGlua2luZyBhYm91dCBgYW5vbl9waXBlX3dyaXRlYCB3aGljaCBpcyB0aGUgdG9wIGxldmVsIHdyaXRlIGZ1bmN0aW9uIGZvciBhbm9ueW1vdXMgcGlwZXMsIHNvIEkgZ2V0IHRoZSBiaWcgcGljdHVyZS4gQXJlIHRoZXJlIGFueSBvdGhlciBoaWdoIGxldmVsIGZ1bmN0aW9uIGNhbGxzIEkgc2hvdWxkIGJlIGF3YXJlIG9mLCB3aGljaCBhcmUgdGhlIG1haW4gZW50cnkgcG9pbnRzPyBJJiMzOTttIGdvaW5nIHRvIHF1aWNrbHkgY2hlY2sgYGFub25fcGlwZV9yZWFkYCB0byBzZWUgaWYgdGhhdCYjMzk7cyB0aGUgcmVhZCBlcXVpdmFsZW50LiBPa2F5LCBnb29kLiBUaGF0IHNob3VsZCBkbyBmb3Igbm93LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAxODo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthbm9uX3BpcGVfcmVhZCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2ZzL3BpcGUuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtmcy9waXBlLmM9Mzc3PXN0YXRpYyBzc2l6ZV90XG5mcy9waXBlLmM6Mzc4OmFub25fcGlwZV9yZWFkKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICp0bylcbmZzL3BpcGUuYy0zNzkte1xuLS1cbmZzL3BpcGUuYz01MTY9Zmlmb19waXBlX3JlYWQoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKnRvKVxuZnMvcGlwZS5jLTUxNy17XG5mcy9waXBlLmM6NTE4Olx0aW50IHJldCA9IGFub25fcGlwZV9yZWFkKGlvY2IsIHRvKTtcbmZzL3BpcGUuYy01MTktXHRpZiAocmV0IFx1MDAzZSAwKVxuLS1cbmZzL3BpcGUuYz0xMzcwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHBpcGVhbm9uX2ZvcHMgPSB7XG5mcy9waXBlLmMtMTM3MS1cdC5vcGVuXHRcdD0gZmlmb19vcGVuLFxuZnMvcGlwZS5jOjEzNzI6XHQucmVhZF9pdGVyXHQ9IGFub25fcGlwZV9yZWFkLFxuZnMvcGlwZS5jLTEzNzMtXHQud3JpdGVfaXRlclx0PSBhbm9uX3BpcGVfd3JpdGUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDE4OjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU0NzQKCQkJCQkJCW91dHB1dDogMTEzCgkJCQkJCQl0aG91Z2h0czogNjI4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBQYXRjaCBmb3IgU3l6a2FsbGVyIFRhcmdldGluZyoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBUaGUgcGF0Y2ggZm9jdXNlcyBvbiBtb2RpZnlpbmcgaG93IHBpcGVzIGludGVyYWN0IHdpdGggYGVwb2xsYCwgc3BlY2lmaWNhbGx5IHdpdGhpbiBgYW5vbl9waXBlX3dyaXRlYCBhbmQgYHBpcGVfcG9sbGAuIE15IGluaXRpYWwgdGhvdWdodCB3YXMgdG8gc2ltcGx5IGFkZCB0aGVzZSBmdW5jdGlvbnMgdG8gYEZvY3VzU3ltYm9sc2AuIEhvd2V2ZXIsIEkmIzM5O20gYWxyZWFkeSB0aGlua2luZyBhYm91dCBob3QtcGF0aCBpc3N1ZXM7IGBhbm9uX3BpcGVfd3JpdGVgIGFuZCBgcGlwZV9wb2xsYCBhcmUgc3VwZXIgY29tbW9uLgoKTGV0JiMzOTtzIGRpZyBkZWVwZXIuIEkgc2F3IGBwaXBlX3NldF9lcG9sbF91c2FnZWAsIGFuZCBpdCYjMzk7cyBzdGF0aWMuIEluaXRpYWxseSwgSSBkaXNtaXNzZWQgaXQgYmVjYXVzZSBpdCYjMzk7cyBzdGF0aWMgYW5kIG5vdCBleHBvcnRlZCwgYnV0IHRoZW4gSSByZW1lbWJlciBzeXprYWxsZXIgY2FuIHN0aWxsIGZ1enogc3RhdGljIGZ1bmN0aW9ucyBpZiB0aGV5JiMzOTtyZSBpbiBEV0FSRiBpbmZvLiBUaGlzIGNvdWxkIGJlIHByb21pc2luZy4gQnV0IHRoZSBwcm9tcHQgbWVudGlvbnMsICYjMzQ7YXZvaWRpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLiYjMzQ7IFRoaXMgbWVhbnMgYGFub25fcGlwZV93cml0ZWAgYW5kIGBwaXBlX3BvbGxgIGFyZSBwcm9iYWJseSBvdXQuCgpTbywgYHBpcGVfc2V0X2Vwb2xsX3VzYWdlYCBpcyBsb29raW5nIGdvb2Qgbm93LiBJIG5lZWQgdG8gYmUgc3VyZTsgbGV0JiMzOTtzIGNoZWNrIGlmIGl0JiMzOTtzIGlubGluZWQuIEl0IGlzbiYjMzk7dCBtYXJrZWQgYXMgYGlubGluZWAsIGJ1dCBpdCBpcyBxdWl0ZSBzbWFsbC4gTGV0JiMzOTtzIGxpc3QgYHBpcGVfcG9sbGAgYW5kIGBwaXBlX3NldF9lcG9sbF91c2FnZWAsIGZvciBub3cuCgpOb3csIGRvZXMgdGhpcyBwYXRjaCByZXF1aXJlIGEgc3BlY2lmaWMgY29uZmlndXJhdGlvbj8gWWVzLCB0aGUgY2hhbmdlcyBhcmUgY29uZGl0aW9uYWwgb24gYENPTkZJR19FUE9MTGAuIEkgbmVlZCB0byBlbnN1cmUgdGhhdCBpcyBzZXQuIFNvLCBJIG5lZWQgdG8gYWRkIGBFUE9MTGAgdG8gYEVuYWJsZUNvbmZpZ3NgLgoKTGV0JiMzOTtzIHJldmlldyB0aGUgcmF0aW9uYWxlLiBUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvbmRpdGlvbiBmb3IgbWFya2luZyBhIHBpcGUgYXMgZXBvbGwtdXNlZCwgYWZmZWN0aW5nIHdha2V1cHMgaW4gYGFub25fcGlwZV93cml0ZWAuIEl0IGludHJvZHVjZXMgYHBpcGVfc2V0X2Vwb2xsX3VzYWdlYCBhbmQgYHBpcGVfZ2V0X2Vwb2xsX3VzYWdlYCBhbmQgcmVzdHJpY3RzIGVwb2xsIHVzYWdlIHRvIGFjdHVhbCBlcG9sbCB1c2UgKGNoZWNraW5nIGBmaWxwLSZndDtmX2VwYCBpbnN0ZWFkIG9mIGFueSBwb2xsIHVzZSkuIEl0JiMzOTtzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgcmVsYXRlZCB0byBwaXBlIGFuZCBlcG9sbCBpbnRlcmFjdGlvbi4gVGhpcyBkZWZpbml0ZWx5IHNlZW1zIHdvcnRoIGZ1enppbmcuCgpJJiMzOTttIGNvbmZpZGVudCBpbjoKCiogICBgV29ydGhGdXp6aW5nOiB0cnVlYAoqICAgYEZvY3VzU3ltYm9sczogcGlwZV9zZXRfZXBvbGxfdXNhZ2VgLCBgcGlwZV9wb2xsYAoqICAgYEVuYWJsZUNvbmZpZ3M6IEVQT0xMYAoKRmluYWxseSwgbGV0IG1lIGRvdWJsZS1jaGVjay4gVGhlIGBmX2VwYCBmbGFnIGlzIG9ubHkgYXZhaWxhYmxlIHdpdGggYENPTkZJR19FUE9MTGAgYnkgbG9va2luZyBhdCBgaW5jbHVkZS9saW51eC9mcy5oYC4gQWxzbywgdGhlIHBhdGNoIGl0c2VsZiBndWFyZHMgdGhlIGBlcG9sbF91c2FnZWAgZmllbGQgaW4gYHN0cnVjdCBwaXBlX2lub2RlX2luZm9gLgoKT2theSwgSSYjMzk7bSByZWFkeSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDE4OjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtFUE9MTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3BpcGVfc2V0X2Vwb2xsX3VzYWdlJiMzNDssCiAgICAmIzM0O3BpcGVfcG9sbCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgcGlwZSBwb2xsaW5nIGxvZ2ljIHRvIG9ubHkgc2V0IHRoZSBlcG9sbCB1c2FnZSBmbGFnIHdoZW4gYWN0dWFsbHkgdXNlZCBieSBlcG9sbCAoY2hlY2tpbmcgZmlscC1cdTAwM2VmX2VwKSwgcmF0aGVyIHRoYW4gYW55IHBvbGwgdXNhZ2UuIFRoaXMgY2hhbmdlcyB0aGUgd2FrZXVwIGJlaGF2aW9yIGluIGFub25fcGlwZV93cml0ZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIGNvcmUga2VybmVsIHBpcGUvZXBvbGwgaW50ZXJhY3Rpb24uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0VQT0xMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cGlwZV9zZXRfZXBvbGxfdXNhZ2UmIzM0OywKICAgICYjMzQ7cGlwZV9wb2xsJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwaXBlIHBvbGxpbmcgbG9naWMgdG8gb25seSBzZXQgdGhlIGVwb2xsIHVzYWdlIGZsYWcgd2hlbiBhY3R1YWxseSB1c2VkIGJ5IGVwb2xsIChjaGVja2luZyBmaWxwLVx1MDAzZWZfZXApLCByYXRoZXIgdGhhbiBhbnkgcG9sbCB1c2FnZS4gVGhpcyBjaGFuZ2VzIHRoZSB3YWtldXAgYmVoYXZpb3IgaW4gYW5vbl9waXBlX3dyaXRlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gY29yZSBrZXJuZWwgcGlwZS9lcG9sbCBpbnRlcmFjdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDE4OjQxOjQ0Ljk1OTU4NTAyOFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMwNTEyNDc0MDUyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkVQT0xMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicGlwZV9zZXRfZXBvbGxfdXNhZ2VcIixcbiAgICBcInBpcGVfcG9sbFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwaXBlIHBvbGxpbmcgbG9naWMgdG8gb25seSBzZXQgdGhlIGVwb2xsIHVzYWdlIGZsYWcgd2hlbiBhY3R1YWxseSB1c2VkIGJ5IGVwb2xsIChjaGVja2luZyBmaWxwLVxcdTAwM2VmX2VwKSwgcmF0aGVyIHRoYW4gYW55IHBvbGwgdXNhZ2UuIFRoaXMgY2hhbmdlcyB0aGUgd2FrZXVwIGJlaGF2aW9yIGluIGFub25fcGlwZV93cml0ZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIGNvcmUga2VybmVsIHBpcGUvZXBvbGwgaW50ZXJhY3Rpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDE4OjQxOjQ0Ljk1OTU5MjY2OFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjUwNzI1OTUxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMDY3NDYwYzM5NDZlNjBhMjI4ZGYwNTNmNjE4MzNmZjQzZGFmY2Y4Y1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEp1bCAyNCAxODo0MTo0MyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9mcy9waXBlLmMgYi9mcy9waXBlLmNcXG5pbmRleCA0MjliMDcxNGVjNTc1NS4uZmE0ZTcwZDVmOTBkODkgMTAwNjQ0XFxuLS0tIGEvZnMvcGlwZS5jXFxuKysrIGIvZnMvcGlwZS5jXFxuQEAgLTM1Nyw2ICszNTcsMjMgQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgcGlwZV91cGRhdGVfdGFpbChzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpwaXBlLFxcbiBcXHRyZXR1cm4gdGFpbDtcXG4gfVxcbiBcXG4rc3RhdGljIHZvaWQgcGlwZV9zZXRfZXBvbGxfdXNhZ2Uoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKnBpcGUpXFxuK3tcXG4rI2lmZGVmIENPTkZJR19FUE9MTFxcbitcXHRpZiAoKGZpbHAtXFx1MDAzZWZfbW9kZSBcXHUwMDI2IEZNT0RFX1JFQUQpIFxcdTAwMjZcXHUwMDI2IGZpbHAtXFx1MDAzZWZfZXAgXFx1MDAyNlxcdTAwMjZcXG4rXFx0ICAgIHVubGlrZWx5KCFSRUFEX09OQ0UocGlwZS1cXHUwMDNlZXBvbGxfdXNhZ2UpKSlcXG4rXFx0XFx0V1JJVEVfT05DRShwaXBlLVxcdTAwM2VlcG9sbF91c2FnZSwgdHJ1ZSk7XFxuKyNlbmRpZlxcbit9XFxuK1xcbitzdGF0aWMgYm9vbCBwaXBlX2dldF9lcG9sbF91c2FnZShzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpwaXBlKVxcbit7XFxuKyNpZmRlZiBDT05GSUdfRVBPTExcXG4rXFx0cmV0dXJuIHBpcGUtXFx1MDAzZWVwb2xsX3VzYWdlO1xcbisjZW5kaWZcXG4rXFx0cmV0dXJuIGZhbHNlO1xcbit9XFxuK1xcbiBzdGF0aWMgc3NpemVfdFxcbiBhbm9uX3BpcGVfcmVhZChzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqdG8pXFxuIHtcXG5AQCAtNjg5LDcgKzcwNiw3IEBAIGFub25fcGlwZV93cml0ZShzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqZnJvbSlcXG4gXFx0ICogRXBvbGwgbm9uc2Vuc2ljYWxseSB3YW50cyBhIHdha2V1cCB3aGV0aGVyIHRoZSBwaXBlXFxuIFxcdCAqIHdhcyBhbHJlYWR5IGVtcHR5IG9yIG5vdC5cXG4gXFx0ICovXFxuLVxcdGlmICh3YXNfZW1wdHkgfHwgcGlwZS1cXHUwMDNlcG9sbF91c2FnZSlcXG4rXFx0aWYgKHdhc19lbXB0eSB8fCBwaXBlX2dldF9lcG9sbF91c2FnZShwaXBlKSlcXG4gXFx0XFx0d2FrZV91cF9pbnRlcnJ1cHRpYmxlX3N5bmNfcG9sbChcXHUwMDI2cGlwZS1cXHUwMDNlcmRfd2FpdCwgRVBPTExJTiB8IEVQT0xMUkROT1JNKTtcXG4gXFx0a2lsbF9mYXN5bmMoXFx1MDAyNnBpcGUtXFx1MDAzZWZhc3luY19yZWFkZXJzLCBTSUdJTywgUE9MTF9JTik7XFxuIFxcdGlmICh3YWtlX25leHRfd3JpdGVyKVxcbkBAIC03NjEsOSArNzc4LDcgQEAgcGlwZV9wb2xsKHN0cnVjdCBmaWxlICpmaWxwLCBwb2xsX3RhYmxlICp3YWl0KVxcbiBcXHR1bmlvbiBwaXBlX2luZGV4IGlkeDtcXG4gXFxuIFxcdC8qIEVwb2xsIGhhcyBzb21lIGhpc3RvcmljYWwgbmFzdHkgc2VtYW50aWNzLCB0aGlzIGVuYWJsZXMgdGhlbSAqL1xcbi1cXHRpZiAodW5saWtlbHkoIVJFQURfT05DRShwaXBlLVxcdTAwM2Vwb2xsX3VzYWdlKSkpXFxuLVxcdFxcdFdSSVRFX09OQ0UocGlwZS1cXHUwMDNlcG9sbF91c2FnZSwgdHJ1ZSk7XFxuLVxcbitcXHRwaXBlX3NldF9lcG9sbF91c2FnZShmaWxwLCBwaXBlKTtcXG4gXFx0LypcXG4gXFx0ICogUmVhZGluZyBwaXBlIHN0YXRlIG9ubHkgLS0gbm8gbmVlZCBmb3IgYWNxdWlyaW5nIHRoZSBzZW1hcGhvcmUuXFxuIFxcdCAqXFxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcGlwZV9mc19pLmggYi9pbmNsdWRlL2xpbnV4L3BpcGVfZnNfaS5oXFxuaW5kZXggN2Y2YTkyYWM5NzA0NzguLmQwNmRhOWJhZDNhOGNjIDEwMDY0NFxcbi0tLSBhL2luY2x1ZGUvbGludXgvcGlwZV9mc19pLmhcXG4rKysgYi9pbmNsdWRlL2xpbnV4L3BpcGVfZnNfaS5oXFxuQEAgLTc0LDcgKzc0LDcgQEAgdW5pb24gcGlwZV9pbmRleCB7XFxuICAqXFx0QGZpbGVzOiBudW1iZXIgb2Ygc3RydWN0IGZpbGUgcmVmZXJyaW5nIHRoaXMgcGlwZSAocHJvdGVjdGVkIGJ5IC1cXHUwMDNlaV9sb2NrKVxcbiAgKlxcdEByX2NvdW50ZXI6IHJlYWRlciBjb3VudGVyXFxuICAqXFx0QHdfY291bnRlcjogd3JpdGVyIGNvdW50ZXJcXG4tICpcXHRAcG9sbF91c2FnZTogaXMgdGhpcyBwaXBlIHVzZWQgZm9yIGVwb2xsLCB3aGljaCBoYXMgY3Jhenkgd2FrZXVwcz9cXG4rICpcXHRAZXBvbGxfdXNhZ2U6IGlzIHRoaXMgcGlwZSB1c2VkIGZvciBlcG9sbCwgd2hpY2ggaGFzIGNyYXp5IHdha2V1cHM/XFxuICAqXFx0QGZhc3luY19yZWFkZXJzOiByZWFkZXIgc2lkZSBmYXN5bmNcXG4gICpcXHRAZmFzeW5jX3dyaXRlcnM6IHdyaXRlciBzaWRlIGZhc3luY1xcbiAgKlxcdEBidWZzOiB0aGUgY2lyY3VsYXIgYXJyYXkgb2YgcGlwZSBidWZmZXJzXFxuQEAgLTk1LDcgKzk1LDkgQEAgc3RydWN0IHBpcGVfaW5vZGVfaW5mbyB7XFxuIFxcdHVuc2lnbmVkIGludCBmaWxlcztcXG4gXFx0dW5zaWduZWQgaW50IHJfY291bnRlcjtcXG4gXFx0dW5zaWduZWQgaW50IHdfY291bnRlcjtcXG4tXFx0Ym9vbCBwb2xsX3VzYWdlO1xcbisjaWZkZWYgQ09ORklHX0VQT0xMXFxuK1xcdGJvb2wgZXBvbGxfdXNhZ2U7XFxuKyNlbmRpZlxcbiAjaWZkZWYgQ09ORklHX1dBVENIX1FVRVVFXFxuIFxcdGJvb2wgbm90ZV9sb3NzO1xcbiAjZW5kaWZcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMTg6NDE6NDUuNjExMTYyMTI5WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6Mjk4NjA4ODY4ODEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiRVBPTExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJwaXBlX3NldF9lcG9sbF91c2FnZVwiLFxuICAgIFwicGlwZV9wb2xsXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHBpcGUgcG9sbGluZyBsb2dpYyB0byBvbmx5IHNldCB0aGUgZXBvbGwgdXNhZ2UgZmxhZyB3aGVuIGFjdHVhbGx5IHVzZWQgYnkgZXBvbGwgKGNoZWNraW5nIGZpbHAtXFx1MDAzZWZfZXApLCByYXRoZXIgdGhhbiBhbnkgcG9sbCB1c2FnZS4gVGhpcyBjaGFuZ2VzIHRoZSB3YWtldXAgYmVoYXZpb3IgaW4gYW5vbl9waXBlX3dyaXRlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gY29yZSBrZXJuZWwgcGlwZS9lcG9sbCBpbnRlcmFjdGlvbi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAwNjc0NjBjMzk0NmU2MGEyMjhkZjA1M2Y2MTgzM2ZmNDNkYWZjZjhjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMjQgMTg6NDE6NDMgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9mcy9waXBlLmMgYi9mcy9waXBlLmNcbmluZGV4IDQyOWIwNzE0ZWM1NzU1Li5mYTRlNzBkNWY5MGQ4OSAxMDA2NDRcbi0tLSBhL2ZzL3BpcGUuY1xuKysrIGIvZnMvcGlwZS5jXG5AQCAtMzU3LDYgKzM1NywyMyBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBwaXBlX3VwZGF0ZV90YWlsKHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKnBpcGUsXG4gXHRyZXR1cm4gdGFpbDtcbiB9XG4gXG4rc3RhdGljIHZvaWQgcGlwZV9zZXRfZXBvbGxfdXNhZ2Uoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKnBpcGUpXG4re1xuKyNpZmRlZiBDT05GSUdfRVBPTExcbitcdGlmICgoZmlscC1cdTAwM2VmX21vZGUgXHUwMDI2IEZNT0RFX1JFQUQpIFx1MDAyNlx1MDAyNiBmaWxwLVx1MDAzZWZfZXAgXHUwMDI2XHUwMDI2XG4rXHQgICAgdW5saWtlbHkoIVJFQURfT05DRShwaXBlLVx1MDAzZWVwb2xsX3VzYWdlKSkpXG4rXHRcdFdSSVRFX09OQ0UocGlwZS1cdTAwM2VlcG9sbF91c2FnZSwgdHJ1ZSk7XG4rI2VuZGlmXG4rfVxuK1xuK3N0YXRpYyBib29sIHBpcGVfZ2V0X2Vwb2xsX3VzYWdlKHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKnBpcGUpXG4re1xuKyNpZmRlZiBDT05GSUdfRVBPTExcbitcdHJldHVybiBwaXBlLVx1MDAzZWVwb2xsX3VzYWdlO1xuKyNlbmRpZlxuK1x0cmV0dXJuIGZhbHNlO1xuK31cbitcbiBzdGF0aWMgc3NpemVfdFxuIGFub25fcGlwZV9yZWFkKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICp0bylcbiB7XG5AQCAtNjg5LDcgKzcwNiw3IEBAIGFub25fcGlwZV93cml0ZShzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqZnJvbSlcbiBcdCAqIEVwb2xsIG5vbnNlbnNpY2FsbHkgd2FudHMgYSB3YWtldXAgd2hldGhlciB0aGUgcGlwZVxuIFx0ICogd2FzIGFscmVhZHkgZW1wdHkgb3Igbm90LlxuIFx0ICovXG4tXHRpZiAod2FzX2VtcHR5IHx8IHBpcGUtXHUwMDNlcG9sbF91c2FnZSlcbitcdGlmICh3YXNfZW1wdHkgfHwgcGlwZV9nZXRfZXBvbGxfdXNhZ2UocGlwZSkpXG4gXHRcdHdha2VfdXBfaW50ZXJydXB0aWJsZV9zeW5jX3BvbGwoXHUwMDI2cGlwZS1cdTAwM2VyZF93YWl0LCBFUE9MTElOIHwgRVBPTExSRE5PUk0pO1xuIFx0a2lsbF9mYXN5bmMoXHUwMDI2cGlwZS1cdTAwM2VmYXN5bmNfcmVhZGVycywgU0lHSU8sIFBPTExfSU4pO1xuIFx0aWYgKHdha2VfbmV4dF93cml0ZXIpXG5AQCAtNzYxLDkgKzc3OCw3IEBAIHBpcGVfcG9sbChzdHJ1Y3QgZmlsZSAqZmlscCwgcG9sbF90YWJsZSAqd2FpdClcbiBcdHVuaW9uIHBpcGVfaW5kZXggaWR4O1xuIFxuIFx0LyogRXBvbGwgaGFzIHNvbWUgaGlzdG9yaWNhbCBuYXN0eSBzZW1hbnRpY3MsIHRoaXMgZW5hYmxlcyB0aGVtICovXG4tXHRpZiAodW5saWtlbHkoIVJFQURfT05DRShwaXBlLVx1MDAzZXBvbGxfdXNhZ2UpKSlcbi1cdFx0V1JJVEVfT05DRShwaXBlLVx1MDAzZXBvbGxfdXNhZ2UsIHRydWUpO1xuLVxuK1x0cGlwZV9zZXRfZXBvbGxfdXNhZ2UoZmlscCwgcGlwZSk7XG4gXHQvKlxuIFx0ICogUmVhZGluZyBwaXBlIHN0YXRlIG9ubHkgLS0gbm8gbmVlZCBmb3IgYWNxdWlyaW5nIHRoZSBzZW1hcGhvcmUuXG4gXHQgKlxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcGlwZV9mc19pLmggYi9pbmNsdWRlL2xpbnV4L3BpcGVfZnNfaS5oXG5pbmRleCA3ZjZhOTJhYzk3MDQ3OC4uZDA2ZGE5YmFkM2E4Y2MgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL2xpbnV4L3BpcGVfZnNfaS5oXG4rKysgYi9pbmNsdWRlL2xpbnV4L3BpcGVfZnNfaS5oXG5AQCAtNzQsNyArNzQsNyBAQCB1bmlvbiBwaXBlX2luZGV4IHtcbiAgKlx0QGZpbGVzOiBudW1iZXIgb2Ygc3RydWN0IGZpbGUgcmVmZXJyaW5nIHRoaXMgcGlwZSAocHJvdGVjdGVkIGJ5IC1cdTAwM2VpX2xvY2spXG4gICpcdEByX2NvdW50ZXI6IHJlYWRlciBjb3VudGVyXG4gICpcdEB3X2NvdW50ZXI6IHdyaXRlciBjb3VudGVyXG4tICpcdEBwb2xsX3VzYWdlOiBpcyB0aGlzIHBpcGUgdXNlZCBmb3IgZXBvbGwsIHdoaWNoIGhhcyBjcmF6eSB3YWtldXBzP1xuKyAqXHRAZXBvbGxfdXNhZ2U6IGlzIHRoaXMgcGlwZSB1c2VkIGZvciBlcG9sbCwgd2hpY2ggaGFzIGNyYXp5IHdha2V1cHM/XG4gICpcdEBmYXN5bmNfcmVhZGVyczogcmVhZGVyIHNpZGUgZmFzeW5jXG4gICpcdEBmYXN5bmNfd3JpdGVyczogd3JpdGVyIHNpZGUgZmFzeW5jXG4gICpcdEBidWZzOiB0aGUgY2lyY3VsYXIgYXJyYXkgb2YgcGlwZSBidWZmZXJzXG5AQCAtOTUsNyArOTUsOSBAQCBzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvIHtcbiBcdHVuc2lnbmVkIGludCBmaWxlcztcbiBcdHVuc2lnbmVkIGludCByX2NvdW50ZXI7XG4gXHR1bnNpZ25lZCBpbnQgd19jb3VudGVyO1xuLVx0Ym9vbCBwb2xsX3VzYWdlO1xuKyNpZmRlZiBDT05GSUdfRVBPTExcbitcdGJvb2wgZXBvbGxfdXNhZ2U7XG4rI2VuZGlmXG4gI2lmZGVmIENPTkZJR19XQVRDSF9RVUVVRVxuIFx0Ym9vbCBub3RlX2xvc3M7XG4gI2VuZGlmXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQxODo0MTo0NS42MTExNjMzOTlaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NzI1NTEwMDAxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFBpcGUgUGF0Y2ggZm9yIEVwb2xsIEludGVncmF0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHNlZW1zIHRvIGJlIHRvdWNoaW5nIHRoZSBwaXBlIGltcGxlbWVudGF0aW9uLCBzcGVjaWZpY2FsbHkgYGZzL3BpcGUuY2AgYW5kIGBpbmNsdWRlL2xpbnV4L3BpcGVfZnNfaS5oYC4gVGhlIGNvcmUgY2hhbmdlIEknbSBzZWVpbmcgaXMgdGhlIHJlbmFtaW5nIG9mIGBwb2xsX3VzYWdlYCB0byBgZXBvbGxfdXNhZ2VgIHdpdGhpbiB0aGUgYHN0cnVjdCBwaXBlX2lub2RlX2luZm9gLCBhbmQgaXQgbG9va3MgbGlrZSB0aGlzIGlzIGNvbmRpdGlvbmFsIG9uIGBDT05GSUdfRVBPTExgIGJlaW5nIGVuYWJsZWQuIFNtYXJ0LCBrZWVwcyB0aGUgY29yZSBmdW5jdGlvbmFsaXR5IGNsZWFuIGlmIGVwb2xsIGlzbid0IGluIHBsYXkuXG5cblRoaXMgaXMgZm9sbG93ZWQgdXAgYnkgdGhlIGludHJvZHVjdGlvbiBvZiBgcGlwZV9zZXRfZXBvbGxfdXNhZ2VgIGFuZCBgcGlwZV9nZXRfZXBvbGxfdXNhZ2VgIGZ1bmN0aW9ucy4gVGhhdCBtYWtlcyBzZW5zZSwgZW5jYXBzdWxhdGluZyB0aGUgYWNjZXNzIHRvIHRoaXMgbmV3IGZsYWcuIFRoZW4sIGl0IGNhbGxzIGBwaXBlX3NldF9lcG9sbF91c2FnZShmaWxwLCBwaXBlKWAgaW4gYHBpcGVfcG9sbGAgYW5kIGBwaXBlX2dldF9lcG9sbF91c2FnZShwaXBlKWAgaW4gYGFub25fcGlwZV93cml0ZWAgaW4gcGxhY2Ugb2YgdGhlIG5vdy1yZW5hbWVkL2NvbmRpdGlvbmFsIGBwaXBlLVx1MDAzZXBvbGxfdXNhZ2VgIGNoZWNrLiBTZWVtcyBzdHJhaWdodGZvcndhcmQ6IHVwZGF0ZSB0aGUgdXNhZ2UgZmxhZyB3aGVuIGEgZmlsZSBkZXNjcmlwdG9yIGVudGVycyB0aGUgZXBvbGwgbG9vcCBhbmQgcmVhZCB0aGUgdXNhZ2UgZmxhZyB3aGVuIHdyaXRpbmcuXG5cbkhvd2V2ZXIsIGxldCdzIHpvb20gaW4gb24gYHBpcGVfc2V0X2Vwb2xsX3VzYWdlYDpcblxuYGBgY1xuc3RhdGljIHZvaWQgcGlwZV9zZXRfZXBvbGxfdXNhZ2Uoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKnBpcGUpXG57XG4jaWZkZWYgQ09ORklHX0VQT0xMXG5cdGlmICgoZmlscC1cdTAwM2VmX21vZGUgXHUwMDI2IEZNT0RFX1JFQUQpIFx1MDAyNlx1MDAyNiBmaWxwLVx1MDAzZWZfZXAgXHUwMDI2XHUwMDI2XG5cdCAgICB1bmxpa2VseSghUkVBRF9PTkNFKHBpcGUtXHUwMDNlZXBvbGxfdXNhZ2UpKSlcblx0XHRXUklURV9PTkNFKHBpcGUtXHUwMDNlZXBvbGxfdXNhZ2UsIHRydWUpO1xuI2VuZGlmXG59XG5gYGBcblxuV2FpdCBhIHNlY29uZC4gV2hhdCdzIHRoaXMgYGZpbHAtXHUwMDNlZl9lcGA/IEkgZG9uJ3QgcmVjYWxsIHNlZWluZyB0aGF0IGluIGBzdHJ1Y3QgZmlsZWAuIEknbSBmYW1pbGlhciB3aXRoIGBmX21vZGVgLCBidXQgYGZfZXBgPyBUaGF0IG5lZWRzIGNsYXJpZnlpbmcuIE9rYXksIEknbSBnb2luZyB0byBxdWlja2x5IGdyZXAgdGhlIGtlcm5lbCBzb3VyY2UgZm9yIHRoYXQgYGZfZXBgIGZpZWxkIHdpdGhpbiB0aGUgZGVmaW5pdGlvbiBvZiBgc3RydWN0IGZpbGVgLiBMZXQncyBzZWUgd2hhdCB0aGF0IHJldmVhbHMgYWJvdXQgaXRzIHJvbGUgaW4gdGhpcyBjb250ZXh0LiBJdCdzIGxpa2VseSByZWxhdGVkIHRvIHRoZSBlcG9sbCBmaWxlIGRlc2NyaXB0b3IsIGJ1dCBJIG5lZWQgdG8gbWFrZSBzdXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjI4LCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzAyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMTg6NDE6NTEuMzM2Njc1OTZaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDIwNTc1MTIyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImZfZXBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiaW5jbHVkZS9saW51eC9mcy5oXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImluY2x1ZGUvbGludXgvZnMuaD0xMjIxPXN0YXRpYyBpbmxpbmUgaW50IHJhX2hhc19pbmRleChzdHJ1Y3QgZmlsZV9yYV9zdGF0ZSAqcmEsIHBnb2ZmX3QgaW5kZXgpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2ZzLmgtMTIyOC0gKiBzdHJ1Y3QgZmlsZSAtIFJlcHJlc2VudHMgYSBmaWxlXFxuaW5jbHVkZS9saW51eC9mcy5oOjEyMjk6ICogQGZfbG9jazogUHJvdGVjdHMgZl9lcCwgZl9mbGFncy4gTXVzdCBub3QgYmUgdGFrZW4gZnJvbSBJUlEgY29udGV4dC5cXG5pbmNsdWRlL2xpbnV4L2ZzLmgtMTIzMC0gKiBAZl9tb2RlOiBGTU9ERV8qIGZsYWdzIG9mdGVuIHVzZWQgaW4gaG90cGF0aHNcXG4tLVxcbmluY2x1ZGUvbGludXgvZnMuaC0xMjQ3LSAqIEBmX3NiX2VycjogcGVyIHNiIHdyaXRlYmFjayBlcnJvcnNcXG5pbmNsdWRlL2xpbnV4L2ZzLmg6MTI0ODogKiBAZl9lcDogbGluayBvZiBhbGwgZXBvbGwgaG9va3MgZm9yIHRoaXMgZmlsZVxcbmluY2x1ZGUvbGludXgvZnMuaC0xMjQ5LSAqIEBmX3Rhc2tfd29yazogdGFzayB3b3JrIGVudHJ5IHBvaW50XFxuLS1cXG5pbmNsdWRlL2xpbnV4L2ZzLmg9MTI1NT1zdHJ1Y3QgZmlsZSB7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L2ZzLmgtMTI4NC0jaWZkZWYgQ09ORklHX0VQT0xMXFxuaW5jbHVkZS9saW51eC9mcy5oOjEyODU6XFx0c3RydWN0IGhsaXN0X2hlYWRcXHRcXHQqZl9lcDtcXG5pbmNsdWRlL2xpbnV4L2ZzLmgtMTI4Ni0jZW5kaWZcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMTg6NDE6NTEuNzU3MjYxNDkxWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTUyNTQxMDE0OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFBpcGUgRXBvbGwgV2FrZXVwIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHkgc2VlIHRoYXQgdGhlIGBmX2VwYCBmdW5jdGlvbiBwb2ludGVyIGlzIGNvbmRpdGlvbmFsbHkgY29tcGlsZWQ7IGl0J3Mgb25seSBhdmFpbGFibGUgaWYgYENPTkZJR19FUE9MTGAgaXMgZGVmaW5lZC4gVGhhdCdzIHRoZSBiYXNlbGluZS4gVGhlIGNvcmUgb2YgdGhpcyBwYXRjaCBzZWVtcyB0byBiZSBtYWtpbmcgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIGhvdyBwaXBlIHdha2V1cHMgaW50ZXJhY3Qgd2l0aCBgZXBvbGxgLCBgcG9sbGAsIGFuZCBgc2VsZWN0YC5cblxuUHJldmlvdXNseSwgYHBpcGUtXHUwMDNlcG9sbF91c2FnZWAgd2FzIHVuY29uZGl0aW9uYWxseSBzZXQgdG8gYHRydWVgIHdpdGhpbiBgcGlwZV9wb2xsYC4gIFRoYXQgbWVhbnQgKmFueSogY2FsbCB0byBwb2xsLCBzZWxlY3QsIG9yIGVwb2xsIG9uIGEgcGlwZSB3b3VsZCB0cmlnZ2VyIHRoYXQgZmxhZywgdHVybmluZyBpdCBvbi4gTm93LCB0aGlzIHBhdGNoIHJlZmluZXMgdGhlIGxvZ2ljLiBJdCBvbmx5IHNldHMgYHBpcGUtXHUwMDNlcG9sbF91c2FnZWAgdG8gYHRydWVgIGlmIGBmaWxwLVx1MDAzZWZfZXBgIGlzIGFjdHVhbGx5IG5vbi1OVUxMLCBpbmRpY2F0aW5nIGEgZ2VudWluZSBlcG9sbCBob29rLCBhbmQgb25seSBpZiB0aGUgZmlsZSdzIG1vZGUgKGBmaWxwLVx1MDAzZWZfbW9kZWApIGluY2x1ZGVzIGBGTU9ERV9SRUFEYC5cblxuRXNzZW50aWFsbHksIHRoaXMgaXMgYSBjaGFuZ2UgdG8gdGhlIHBpcGUgd2FrZXVwIGJlaGF2aW9yLCBzcGVjaWZpY2FsbHkgaW1wYWN0aW5nIGBlcG9sbGAsIGBwb2xsYCwgYW5kIGBzZWxlY3RgLiBUaGUga2V5IGJlbmVmaXQgaXMgdGhhdCB0aGlzIHJldmlzZWQgbG9naWMgcHJldmVudHMgdW5uZWNlc3Nhcnkgd2FrZXVwcyBmb3IgYHBvbGxgIGFuZCBgc2VsZWN0YCBvbiBwaXBlcywgYW5kIGFsc28sIGltcG9ydGFudGx5LCBmb3Igd3JpdGUtb25seSBgZXBvbGxgIGluc3RhbmNlcy4gVGhhdCdzIGEgZGVmaW5pdGUgaW1wcm92ZW1lbnQuXG5cbk5vdywgSSBuZWVkIHRvIGNoZWNrIHNvbWV0aGluZyBxdWlja2x5LiBJIG5lZWQgdG8gZGV0ZXJtaW5lIGlmIGBDT05GSUdfRVBPTExgIGlzIGdlbmVyYWxseSBlbmFibGVkIGJ5IGRlZmF1bHQuIElmIGl0IGlzIG5vdCwgdGhlbiBJJ2xsIG5lZWQgdG8gZmlndXJlIG91dCB3aGVyZSB3ZSBlbmFibGUgaXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24gc3lzdGVtLiBJJ2xsIHRha2UgYSBxdWljayBwZWVrIGF0IGBpbml0L0tjb25maWdgIHRvIGNvbmZpcm0gaXRzIGRlZmF1bHQgc3RhdGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM3NTUsIk91dHB1dFRva2VucyI6MjcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMTg6NDE6NTcuMjgyNjc1WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU4MzkwNjY1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBFUE9MTFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJpbml0L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiaW5pdC9LY29uZmlnPTE4NTk9Y29uZmlnIEZVVEVYX1JPQlVTVF9VTkxPQ0tcXG4tLVxcbmluaXQvS2NvbmZpZy0xODYxLVxcbmluaXQvS2NvbmZpZzoxODYyOmNvbmZpZyBFUE9MTFxcbmluaXQvS2NvbmZpZy0xODYzLVxcdGJvb2wgXFxcIkVuYWJsZSBldmVudHBvbGwgc3VwcG9ydFxcXCIgaWYgRVhQRVJUXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDE4OjQxOjU3LjM0MTA3MjE0NVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwNzIxNTI1NTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIFBpcGUtUmVsYXRlZCBGdW5jdGlvbnMqKlxuXG5Pa2F5LCBzbyB0aGlzIGZlYXR1cmUgaXMgZW5hYmxlZCBieSBkZWZhdWx0LCBpbnRlcmVzdGluZy4gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUga2V5IGZ1bmN0aW9ucyBpbnZvbHZlZCBoZXJlLiBMZXQncyBzZWUuLi4gSSd2ZSBpZGVudGlmaWVkIGBwaXBlX3NldF9lcG9sbF91c2FnZWAsIGBwaXBlX2dldF9lcG9sbF91c2FnZWAsIGBhbm9uX3BpcGVfd3JpdGVgLCBhbmQgYHBpcGVfcG9sbGAuXG5cbkhtbSwgbm93IHRoYXQgSSBsb29rIGF0IGl0LCBgYW5vbl9waXBlX3dyaXRlYCBhbmQgYHBpcGVfcG9sbGAgYXJlIGNsZWFybHkgaW4gdGhlIGhvdCBwYXRoLiBUaGV5J3JlIHBlcmZvcm1hbmNlLWNyaXRpY2FsLiBJIHdvbmRlciBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGtleSBmdW5jdGlvbnMgYXQgcGxheSBoZXJlLCB3aGljaCBtaWdodCBiZSBsZXNzIG9idmlvdXMuXG5cbkFoYSEgTG9va2luZyBjbG9zZXIsIGBwaXBlX3NldF9lcG9sbF91c2FnZWAgYW5kIGBwaXBlX2dldF9lcG9sbF91c2FnZWAgYXJlIGVpdGhlciBzdGF0aWMgaW5saW5lIG9yIHN0YXRpYyBmdW5jdGlvbnMgbG9jYXRlZCBpbiBgZnMvcGlwZS5jYC4gUmlnaHQsIEkgc2hvdWxkIHRha2UgYSBkZWVwZXIgbG9vayBhdCB0aGF0IGZpbGUgdG8gc2VlIHdoYXQgZWxzZSBtaWdodCBiZSBnb2luZyBvbi4gSXQncyB0aW1lIHRvIGRpdmUgaW50byBgZnMvcGlwZS5jYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDQyNCwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQxODo0MjowMS40MTMyMjczMjZaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjQwNzc4MTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicGlwZV9zZXRfZXBvbGxfdXNhZ2VcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZnMvcGlwZS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL3BpcGUuYz0zMzA9c3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgcGlwZV91cGRhdGVfdGFpbChzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpwaXBlLFxcbi0tXFxuZnMvcGlwZS5jLTM1OS1cXG5mcy9waXBlLmM6MzYwOnN0YXRpYyB2b2lkIHBpcGVfc2V0X2Vwb2xsX3VzYWdlKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpwaXBlKVxcbmZzL3BpcGUuYy0zNjEte1xcbi0tXFxuZnMvcGlwZS5jPTc3ND1waXBlX3BvbGwoc3RydWN0IGZpbGUgKmZpbHAsIHBvbGxfdGFibGUgKndhaXQpXFxuLS1cXG5mcy9waXBlLmMtNzgwLVxcdC8qIEVwb2xsIGhhcyBzb21lIGhpc3RvcmljYWwgbmFzdHkgc2VtYW50aWNzLCB0aGlzIGVuYWJsZXMgdGhlbSAqL1xcbmZzL3BpcGUuYzo3ODE6XFx0cGlwZV9zZXRfZXBvbGxfdXNhZ2UoZmlscCwgcGlwZSk7XFxuZnMvcGlwZS5jLTc4Mi1cXHQvKlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQxODo0MjowMS40NzczMTAwODlaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTYyNjc2NjEzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uXG5cbioqQW5hbHl6aW5nIFBpcGUgT3BlcmF0aW9ucyoqXG5cblJpZ2h0LCBzbyBgcGlwZV9wb2xsYCBpcyB0aGUgY29yZSBmdW5jdGlvbiBmb3IgY2hlY2tpbmcgdGhlIHN0YXR1cyBvZiBhIHBpcGUuIFRoYXQgbWFrZXMgc2Vuc2UsIHRoZSBlbnRyeSBwb2ludCBmb3IgcG9sbGluZyB0aGUgcGlwZS4gSSdtIGFsc28gdGhpbmtpbmcgYWJvdXQgYGFub25fcGlwZV93cml0ZWAgd2hpY2ggaXMgdGhlIHRvcCBsZXZlbCB3cml0ZSBmdW5jdGlvbiBmb3IgYW5vbnltb3VzIHBpcGVzLCBzbyBJIGdldCB0aGUgYmlnIHBpY3R1cmUuIEFyZSB0aGVyZSBhbnkgb3RoZXIgaGlnaCBsZXZlbCBmdW5jdGlvbiBjYWxscyBJIHNob3VsZCBiZSBhd2FyZSBvZiwgd2hpY2ggYXJlIHRoZSBtYWluIGVudHJ5IHBvaW50cz8gSSdtIGdvaW5nIHRvIHF1aWNrbHkgY2hlY2sgYGFub25fcGlwZV9yZWFkYCB0byBzZWUgaWYgdGhhdCdzIHRoZSByZWFkIGVxdWl2YWxlbnQuIE9rYXksIGdvb2QuIFRoYXQgc2hvdWxkIGRvIGZvciBub3cuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ5OTUsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQxODo0MjowNC42Mzk5OTE2MzNaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzMzQ5OTQ5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJhbm9uX3BpcGVfcmVhZFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9waXBlLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvcGlwZS5jPTM3Nz1zdGF0aWMgc3NpemVfdFxcbmZzL3BpcGUuYzozNzg6YW5vbl9waXBlX3JlYWQoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKnRvKVxcbmZzL3BpcGUuYy0zNzkte1xcbi0tXFxuZnMvcGlwZS5jPTUxNj1maWZvX3BpcGVfcmVhZChzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqdG8pXFxuZnMvcGlwZS5jLTUxNy17XFxuZnMvcGlwZS5jOjUxODpcXHRpbnQgcmV0ID0gYW5vbl9waXBlX3JlYWQoaW9jYiwgdG8pO1xcbmZzL3BpcGUuYy01MTktXFx0aWYgKHJldCBcXHUwMDNlIDApXFxuLS1cXG5mcy9waXBlLmM9MTM3MD1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBwaXBlYW5vbl9mb3BzID0ge1xcbmZzL3BpcGUuYy0xMzcxLVxcdC5vcGVuXFx0XFx0PSBmaWZvX29wZW4sXFxuZnMvcGlwZS5jOjEzNzI6XFx0LnJlYWRfaXRlclxcdD0gYW5vbl9waXBlX3JlYWQsXFxuZnMvcGlwZS5jLTEzNzMtXFx0LndyaXRlX2l0ZXJcXHQ9IGFub25fcGlwZV93cml0ZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMTg6NDI6MDUuMDczNDk4NzAzWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwMzA5Nzk1NzM1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBQYXRjaCBmb3IgU3l6a2FsbGVyIFRhcmdldGluZyoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gVGhlIHBhdGNoIGZvY3VzZXMgb24gbW9kaWZ5aW5nIGhvdyBwaXBlcyBpbnRlcmFjdCB3aXRoIGBlcG9sbGAsIHNwZWNpZmljYWxseSB3aXRoaW4gYGFub25fcGlwZV93cml0ZWAgYW5kIGBwaXBlX3BvbGxgLiBNeSBpbml0aWFsIHRob3VnaHQgd2FzIHRvIHNpbXBseSBhZGQgdGhlc2UgZnVuY3Rpb25zIHRvIGBGb2N1c1N5bWJvbHNgLiBIb3dldmVyLCBJJ20gYWxyZWFkeSB0aGlua2luZyBhYm91dCBob3QtcGF0aCBpc3N1ZXM7IGBhbm9uX3BpcGVfd3JpdGVgIGFuZCBgcGlwZV9wb2xsYCBhcmUgc3VwZXIgY29tbW9uLlxuXG5MZXQncyBkaWcgZGVlcGVyLiBJIHNhdyBgcGlwZV9zZXRfZXBvbGxfdXNhZ2VgLCBhbmQgaXQncyBzdGF0aWMuIEluaXRpYWxseSwgSSBkaXNtaXNzZWQgaXQgYmVjYXVzZSBpdCdzIHN0YXRpYyBhbmQgbm90IGV4cG9ydGVkLCBidXQgdGhlbiBJIHJlbWVtYmVyIHN5emthbGxlciBjYW4gc3RpbGwgZnV6eiBzdGF0aWMgZnVuY3Rpb25zIGlmIHRoZXkncmUgaW4gRFdBUkYgaW5mby4gVGhpcyBjb3VsZCBiZSBwcm9taXNpbmcuIEJ1dCB0aGUgcHJvbXB0IG1lbnRpb25zLCBcImF2b2lkaW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cIiBUaGlzIG1lYW5zIGBhbm9uX3BpcGVfd3JpdGVgIGFuZCBgcGlwZV9wb2xsYCBhcmUgcHJvYmFibHkgb3V0LlxuXG5TbywgYHBpcGVfc2V0X2Vwb2xsX3VzYWdlYCBpcyBsb29raW5nIGdvb2Qgbm93LiBJIG5lZWQgdG8gYmUgc3VyZTsgbGV0J3MgY2hlY2sgaWYgaXQncyBpbmxpbmVkLiBJdCBpc24ndCBtYXJrZWQgYXMgYGlubGluZWAsIGJ1dCBpdCBpcyBxdWl0ZSBzbWFsbC4gTGV0J3MgbGlzdCBgcGlwZV9wb2xsYCBhbmQgYHBpcGVfc2V0X2Vwb2xsX3VzYWdlYCwgZm9yIG5vdy5cblxuTm93LCBkb2VzIHRoaXMgcGF0Y2ggcmVxdWlyZSBhIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24/IFllcywgdGhlIGNoYW5nZXMgYXJlIGNvbmRpdGlvbmFsIG9uIGBDT05GSUdfRVBPTExgLiBJIG5lZWQgdG8gZW5zdXJlIHRoYXQgaXMgc2V0LiBTbywgSSBuZWVkIHRvIGFkZCBgRVBPTExgIHRvIGBFbmFibGVDb25maWdzYC5cblxuTGV0J3MgcmV2aWV3IHRoZSByYXRpb25hbGUuIFRoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29uZGl0aW9uIGZvciBtYXJraW5nIGEgcGlwZSBhcyBlcG9sbC11c2VkLCBhZmZlY3Rpbmcgd2FrZXVwcyBpbiBgYW5vbl9waXBlX3dyaXRlYC4gSXQgaW50cm9kdWNlcyBgcGlwZV9zZXRfZXBvbGxfdXNhZ2VgIGFuZCBgcGlwZV9nZXRfZXBvbGxfdXNhZ2VgIGFuZCByZXN0cmljdHMgZXBvbGwgdXNhZ2UgdG8gYWN0dWFsIGVwb2xsIHVzZSAoY2hlY2tpbmcgYGZpbHAtXHUwMDNlZl9lcGAgaW5zdGVhZCBvZiBhbnkgcG9sbCB1c2UpLiBJdCdzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgcmVsYXRlZCB0byBwaXBlIGFuZCBlcG9sbCBpbnRlcmFjdGlvbi4gVGhpcyBkZWZpbml0ZWx5IHNlZW1zIHdvcnRoIGZ1enppbmcuXG5cbkknbSBjb25maWRlbnQgaW46XG5cbiogICBgV29ydGhGdXp6aW5nOiB0cnVlYFxuKiAgIGBGb2N1c1N5bWJvbHM6IHBpcGVfc2V0X2Vwb2xsX3VzYWdlYCwgYHBpcGVfcG9sbGBcbiogICBgRW5hYmxlQ29uZmlnczogRVBPTExgXG5cbkZpbmFsbHksIGxldCBtZSBkb3VibGUtY2hlY2suIFRoZSBgZl9lcGAgZmxhZyBpcyBvbmx5IGF2YWlsYWJsZSB3aXRoIGBDT05GSUdfRVBPTExgIGJ5IGxvb2tpbmcgYXQgYGluY2x1ZGUvbGludXgvZnMuaGAuIEFsc28sIHRoZSBwYXRjaCBpdHNlbGYgZ3VhcmRzIHRoZSBgZXBvbGxfdXNhZ2VgIGZpZWxkIGluIGBzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvYC5cblxuT2theSwgSSdtIHJlYWR5IHRvIGNhbGwgYHNldC1yZXN1bHRzYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTQ3NCwiT3V0cHV0VG9rZW5zIjoxMTMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MjgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMTg6NDI6MTUuMzgzMjk3MjM4WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODg3NDc2MjIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkVQT0xMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicGlwZV9zZXRfZXBvbGxfdXNhZ2VcIixcbiAgICBcInBpcGVfcG9sbFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwaXBlIHBvbGxpbmcgbG9naWMgdG8gb25seSBzZXQgdGhlIGVwb2xsIHVzYWdlIGZsYWcgd2hlbiBhY3R1YWxseSB1c2VkIGJ5IGVwb2xsIChjaGVja2luZyBmaWxwLVxcdTAwM2VmX2VwKSwgcmF0aGVyIHRoYW4gYW55IHBvbGwgdXNhZ2UuIFRoaXMgY2hhbmdlcyB0aGUgd2FrZXVwIGJlaGF2aW9yIGluIGFub25fcGlwZV93cml0ZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIGNvcmUga2VybmVsIHBpcGUvZXBvbGwgaW50ZXJhY3Rpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiRVBPTExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJwaXBlX3NldF9lcG9sbF91c2FnZVwiLFxuICAgIFwicGlwZV9wb2xsXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHBpcGUgcG9sbGluZyBsb2dpYyB0byBvbmx5IHNldCB0aGUgZXBvbGwgdXNhZ2UgZmxhZyB3aGVuIGFjdHVhbGx5IHVzZWQgYnkgZXBvbGwgKGNoZWNraW5nIGZpbHAtXFx1MDAzZWZfZXApLCByYXRoZXIgdGhhbiBhbnkgcG9sbCB1c2FnZS4gVGhpcyBjaGFuZ2VzIHRoZSB3YWtldXAgYmVoYXZpb3IgaW4gYW5vbl9waXBlX3dyaXRlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gY29yZSBrZXJuZWwgcGlwZS9lcG9sbCBpbnRlcmFjdGlvbi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowxrdpl[1] Phase: Succeeded StartedAt: 2026-07-24 18:42:27 +0000 UTC FinishedAt: 2026-07-24 18:42:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxrdpl[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-24 18:42:27 +0000 UTC FinishedAt: 2026-07-24 18:42:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxrdpl[2] Phase: Succeeded StartedAt: 2026-07-24 18:42:27 +0000 UTC FinishedAt: 2026-07-24 23:32:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxrdpl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-24 18:42:27 +0000 UTC FinishedAt: 2026-07-24 23:32:28 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowxrdpl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-24 18:42:27 +0000 UTC FinishedAt: 2026-07-24 18:42:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxrdpl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-24 18:42:27 +0000 UTC FinishedAt: 2026-07-24 18:42:34 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},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-workflowxrdpl/series-workflowxrdpl-convert-artifact-74763387/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxrdpl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-24 18:42:55 +0000 UTC FinishedAt: 2026-07-24 19:22:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxrdpl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-24 18:42:55 +0000 UTC FinishedAt: 2026-07-24 19:22:15 +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:*65f1f924-1912-431c-937a-e4b47455d09a,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-workflowxrdpl/series-workflowxrdpl-convert-artifact-74763387/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": "21c538d6-3e89-434e-a147-9cba2d8f4011", "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-workflowxrdpl/series-workflowxrdpl-build-action-410483641/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxrdpl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-24 18:42:55 +0000 UTC FinishedAt: 2026-07-24 19:22:04 +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:*65f1f924-1912-431c-937a-e4b47455d09a,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-workflowxrdpl/series-workflowxrdpl-convert-artifact-74763387/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": "21c538d6-3e89-434e-a147-9cba2d8f4011", "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-workflowxrdpl/series-workflowxrdpl-build-action-410483641/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxrdpl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-24 19:22:15 +0000 UTC FinishedAt: 2026-07-24 19:22:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxrdpl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-24 19:22:15 +0000 UTC FinishedAt: 2026-07-24 19:22:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxrdpl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-24 19:22:15 +0000 UTC FinishedAt: 2026-07-24 19:23:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxrdpl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-24 19:22:15 +0000 UTC FinishedAt: 2026-07-24 19:22:54 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},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-workflowxrdpl/series-workflowxrdpl-convert-artifact-4191325138/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxrdpl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-24 19:23:07 +0000 UTC FinishedAt: 2026-07-24 19:25:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxrdpl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-24 19:23:07 +0000 UTC FinishedAt: 2026-07-24 19:25:11 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*21c538d6-3e89-434e-a147-9cba2d8f4011,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-workflowxrdpl/series-workflowxrdpl-build-action-410483641/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-workflowxrdpl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-24 19:25:22 +0000 UTC FinishedAt: 2026-07-24 19:25:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxrdpl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-24 19:25:22 +0000 UTC FinishedAt: 2026-07-24 19:25:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxrdpl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-24 19:25:22 +0000 UTC FinishedAt: 2026-07-24 20:24:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxrdpl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-24 19:25:22 +0000 UTC FinishedAt: 2026-07-24 20:24:25 +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:*65f1f924-1912-431c-937a-e4b47455d09a,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-workflowxrdpl/series-workflowxrdpl-convert-artifact-4191325138/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": "84648f3e-ccc0-411e-a78e-cc95f1571431", "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-workflowxrdpl/series-workflowxrdpl-build-action-1513027555/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxrdpl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Failed StartedAt: 2026-07-24 19:25:22 +0000 UTC FinishedAt: 2026-07-24 19:29:11 +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:*65f1f924-1912-431c-937a-e4b47455d09a,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-workflowxrdpl/series-workflowxrdpl-convert-artifact-4191325138/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowxrdpl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},retest:null,track:KASAN)[6].patched-build(1) Phase: Succeeded StartedAt: 2026-07-24 19:37:32 +0000 UTC FinishedAt: 2026-07-24 20:24:15 +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:*65f1f924-1912-431c-937a-e4b47455d09a,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-workflowxrdpl/series-workflowxrdpl-convert-artifact-4191325138/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": "84648f3e-ccc0-411e-a78e-cc95f1571431", "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-workflowxrdpl/series-workflowxrdpl-build-action-1513027555/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxrdpl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-24 20:24:25 +0000 UTC FinishedAt: 2026-07-24 20:24:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxrdpl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-24 20:24:25 +0000 UTC FinishedAt: 2026-07-24 20:24:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxrdpl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-24 20:24:25 +0000 UTC FinishedAt: 2026-07-24 20:26:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxrdpl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-24 20:24:25 +0000 UTC FinishedAt: 2026-07-24 20:26:02 +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:*84648f3e-ccc0-411e-a78e-cc95f1571431,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-workflowxrdpl/series-workflowxrdpl-build-action-1513027555/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-workflowxrdpl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-24 20:26:12 +0000 UTC FinishedAt: 2026-07-24 23:32:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxrdpl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-24 20:26:12 +0000 UTC FinishedAt: 2026-07-24 23:32:28 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"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:*21c538d6-3e89-434e-a147-9cba2d8f4011,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*84648f3e-ccc0-411e-a78e-cc95f1571431,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-workflowxrdpl/series-workflowxrdpl-build-action-410483641/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-workflowxrdpl/series-workflowxrdpl-build-action-1513027555/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowxrdpl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-24 20:26:12 +0000 UTC FinishedAt: 2026-07-24 20:26:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxrdpl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-24 20:26:12 +0000 UTC FinishedAt: 2026-07-24 20:26:31 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"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-workflowxrdpl/series-workflowxrdpl-convert-artifact-3198280999/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxrdpl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-24 20:26:12 +0000 UTC FinishedAt: 2026-07-24 20:26:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxrdpl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-24 20:26:12 +0000 UTC FinishedAt: 2026-07-24 20:26:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxrdpl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-24 20:26:12 +0000 UTC FinishedAt: 2026-07-24 20:26:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxrdpl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-24 20:26:40 +0000 UTC FinishedAt: 2026-07-24 23:32:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxrdpl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["pipe_set_epoll_usage","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ce76d9d4f5f36501013bd94bb65dd067f04b2913","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e9f03ba0-245a-4ce8-b7a9-a42ea04efcf1","tree_name":"vfs","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/vfs/vfs.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-24 20:26:40 +0000 UTC FinishedAt: 2026-07-24 23:32:17 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*21c538d6-3e89-434e-a147-9cba2d8f4011,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*84648f3e-ccc0-411e-a78e-cc95f1571431,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-workflowxrdpl/series-workflowxrdpl-build-action-410483641/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-workflowxrdpl/series-workflowxrdpl-build-action-1513027555/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-workflowxrdpl/series-workflowxrdpl-convert-artifact-3198280999/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,}