Name: series-workflowx8xsl Phase: Succeeded StartedAt: 2026-08-04 00:32:08 +0000 UTC FinishedAt: 2026-08-04 04:39:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8xsl[0] Phase: Succeeded StartedAt: 2026-08-04 00:32:08 +0000 UTC FinishedAt: 2026-08-04 00:59:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8xsl[0].run-triage Phase: Succeeded StartedAt: 2026-08-04 00:32:08 +0000 UTC FinishedAt: 2026-08-04 00:59:46 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "5aed8f404401bfa1570cf0c3ffed7b752f568e83", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "UNIX" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "5aed8f404401bfa1570cf0c3ffed7b752f568e83", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "UNIX" ], "series_id": "90e09260-a59f-4ce5-a5e7-81287153c62d" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "unix_del_edges", "unix_destroy_fpl" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDAwOjQ3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MTJtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtVTklYJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dW5peF9kZWxfZWRnZXMmIzM0OywKICAgICYjMzQ7dW5peF9kZXN0cm95X2ZwbCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoaXMgcGF0Y2ggbW9kaWZpZXMgdGhlIEFGX1VOSVggZ2FyYmFnZSBjb2xsZWN0b3IgbG9naWMgYnkgZml4aW5nIGEgbGlzdCBkZWxldGlvbiBpbiB1bml4X2RlbF9lZGdlLiBJdCBpcyBmdW5jdGlvbmFsIGNvcmUgbmV0d29ya2luZyBjb2RlIHRoYXQgaXMgcmVhY2hhYmxlIHZpYSBzdGFuZGFyZCBBRl9VTklYIHNvY2tldCBvcGVyYXRpb25zLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDAwOjQ3PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgN2IwYTI2ZTQyMDJlZGRkY2FlYTJhZWI4MzlkYTkwOTFiZmVkMzFjOFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgQXVnIDQgMDA6NDc6MDMgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L3VuaXgvZ2FyYmFnZS5jIGIvbmV0L3VuaXgvZ2FyYmFnZS5jXG5pbmRleCAwNzgzNTU1ZTI1MjY2Li45ZmNhYWY1NWNiYTVkIDEwMDY0NFxuLS0tIGEvbmV0L3VuaXgvZ2FyYmFnZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvdW5peC9nYXJiYWdlLmNcbkBAIC0xODYsNiAmIzQzOzE4Niw3IEBAIHN0YXRpYyB2b2lkIHVuaXhfZGVsX2VkZ2Uoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwsIHN0cnVjdCB1bml4X2VkZ2UgKmVkZ2UpXG4gXHRpZiAoIXZlcnRleC1cdTAwM2VvdXRfZGVncmVlKSB7XG4gXHRcdGVkZ2UtXHUwMDNlcHJlZGVjZXNzb3ItXHUwMDNldmVydGV4ID0gTlVMTDtcbiBcdFx0bGlzdF9tb3ZlX3RhaWwoXHUwMDI2dmVydGV4LVx1MDAzZWVudHJ5LCBcdTAwMjZmcGwtXHUwMDNldmVydGljZXMpO1xuJiM0MztcdFx0bGlzdF9kZWwoXHUwMDI2dmVydGV4LVx1MDAzZXNjY19lbnRyeSk7XG4gXHR9XG4gfVxuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDAwOjQ3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjEybTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VU5JWCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3VuaXhfZGVsX2VkZ2VzJiMzNDssCiAgICAmIzM0O3VuaXhfZGVzdHJveV9mcGwmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGlzIHBhdGNoIG1vZGlmaWVzIHRoZSBBRl9VTklYIGdhcmJhZ2UgY29sbGVjdG9yIGxvZ2ljIGJ5IGZpeGluZyBhIGxpc3QgZGVsZXRpb24gaW4gdW5peF9kZWxfZWRnZS4gSXQgaXMgZnVuY3Rpb25hbCBjb3JlIG5ldHdvcmtpbmcgY29kZSB0aGF0IGlzIHJlYWNoYWJsZSB2aWEgc3RhbmRhcmQgQUZfVU5JWCBzb2NrZXQgb3BlcmF0aW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDdiMGEyNmU0MjAyZWRkZGNhZWEyYWViODM5ZGE5MDkxYmZlZDMxYzgKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEF1ZyA0IDAwOjQ3OjAzIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbmV0L3VuaXgvZ2FyYmFnZS5jIGIvbmV0L3VuaXgvZ2FyYmFnZS5jCmluZGV4IDA3ODM1NTVlMjUyNjYuLjlmY2FhZjU1Y2JhNWQgMTAwNjQ0Ci0tLSBhL25ldC91bml4L2dhcmJhZ2UuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvdW5peC9nYXJiYWdlLmMKQEAgLTE4Niw2ICYjNDM7MTg2LDcgQEAgc3RhdGljIHZvaWQgdW5peF9kZWxfZWRnZShzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbCwgc3RydWN0IHVuaXhfZWRnZSAqZWRnZSkKIAlpZiAoIXZlcnRleC0mZ3Q7b3V0X2RlZ3JlZSkgewogCQllZGdlLSZndDtwcmVkZWNlc3Nvci0mZ3Q7dmVydGV4ID0gTlVMTDsKIAkJbGlzdF9tb3ZlX3RhaWwoJmFtcDt2ZXJ0ZXgtJmd0O2VudHJ5LCAmYW1wO2ZwbC0mZ3Q7dmVydGljZXMpOwomIzQzOwkJbGlzdF9kZWwoJmFtcDt2ZXJ0ZXgtJmd0O3NjY19lbnRyeSk7CiAJfQogfQogCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDAwOjQ3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xMG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDI2CgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogOTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhpczoKCioqQW5hbHl6aW5nIGEgVW5peCBEb21haW4gU29ja2V0IEdhcmJhZ2UgQ29sbGVjdGlvbiBQYXRjaCoqCgpBbHJpZ2h0LCBzbyBhIHBhdGNoIGhhcyBoaXQgbXkgZGVzaywgYW5kIGl0JiMzOTtzIHRvdWNoaW5nIGBuZXQvdW5peC9nYXJiYWdlLmNgLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIGludHJvZHVjaW5nIGBsaXN0X2RlbCgmYW1wO3ZlcnRleC0mZ3Q7c2NjX2VudHJ5KTtgIHdpdGhpbiB0aGUgYHVuaXhfZGVsX2VkZ2VgIGZ1bmN0aW9uLiBUaGF0IGltbWVkaWF0ZWx5IGZsYWdzIHRoaXMgYXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUgVU5JWCBkb21haW4gc29ja2V0IGdhcmJhZ2UgY29sbGVjdG9yLiBUaGlzIGlzIGludGVyZXN0aW5nLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIHRoaXMgYWRkaXRpb24uCgpNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZGl2ZSBzdHJhaWdodCBpbnRvIHRoZSBjb2RlIGFuZCBzZWUgZXhhY3RseSB3aGF0JiMzOTtzIGhhcHBlbmluZyB3aXRoaW4gYHVuaXhfZGVsX2VkZ2VgLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcHVycG9zZSBvZiBgdmVydGV4LSZndDtzY2NfZW50cnlgIGluIHRoZSBiaWdnZXIgcGljdHVyZSB0byBmdWxseSBncmFzcCB0aGUgY2hhbmdlLiBXaGF0IGlzIHRoZSBzdGF0ZSBvZiB0aGUgc3lzdGVtIHdoaWNoIHRoaXMgY2hhbmdlIGlzIGJlaW5nIG1hZGU/CgpMZXQmIzM5O3MgZmlyZSB1cCBgZ3JlcHBlcmAgYW5kIHNlZSB3aGF0IHRoZSB3aWRlciBwaWN0dXJlIGlzIGZvciBgdW5peF9kZWxfZWRnZWAuIFRoZSBzZWFyY2ggc2hvdWxkIHF1aWNrbHkgcmV2ZWFsIHRoZSBzdXJyb3VuZGluZyBjb2RlIGFuZCBob3cgdGhpcyBmdW5jdGlvbiBmaXRzIGludG8gdGhlIG92ZXJhbGwgZ2FyYmFnZSBjb2xsZWN0aW9uIHByb2Nlc3MuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMDA6NTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dW5peF9kZWxfZWRnZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC91bml4L2dhcmJhZ2UuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvdW5peC9nYXJiYWdlLmM9MTU0PXN0YXRpYyB2b2lkIHVuaXhfYWRkX2VkZ2Uoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwsIHN0cnVjdCB1bml4X2VkZ2UgKmVkZ2UpXG4tLVxubmV0L3VuaXgvZ2FyYmFnZS5jLTE3NS1cbm5ldC91bml4L2dhcmJhZ2UuYzoxNzY6c3RhdGljIHZvaWQgdW5peF9kZWxfZWRnZShzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbCwgc3RydWN0IHVuaXhfZWRnZSAqZWRnZSlcbm5ldC91bml4L2dhcmJhZ2UuYy0xNzcte1xuLS1cbm5ldC91bml4L2dhcmJhZ2UuYz0yMDU9dm9pZCB1bml4X2FkZF9lZGdlcyhzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbCwgc3RydWN0IHVuaXhfc29jayAqcmVjZWl2ZXIpXG4tLVxubmV0L3VuaXgvZ2FyYmFnZS5jLTIzOC1cbm5ldC91bml4L2dhcmJhZ2UuYzoyMzk6dm9pZCB1bml4X2RlbF9lZGdlcyhzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbClcbm5ldC91bml4L2dhcmJhZ2UuYy0yNDAte1xuLS1cbm5ldC91bml4L2dhcmJhZ2UuYy0yNTEtXG5uZXQvdW5peC9nYXJiYWdlLmM6MjUyOlx0XHR1bml4X2RlbF9lZGdlKGZwbCwgZWRnZSk7XG5uZXQvdW5peC9nYXJiYWdlLmMtMjUzLVx0fSB3aGlsZSAoaSBcdTAwM2MgZnBsLVx1MDAzZWNvdW50X3VuaXgpO1xuLS1cbm5ldC91bml4L2dhcmJhZ2UuYz0zMTM9dm9pZCB1bml4X2Rlc3Ryb3lfZnBsKHN0cnVjdCBzY21fZnBfbGlzdCAqZnBsKVxuLS1cbm5ldC91bml4L2dhcmJhZ2UuYy0zMTUtXHRpZiAoZnBsLVx1MDAzZWluZmxpZ2h0KVxubmV0L3VuaXgvZ2FyYmFnZS5jOjMxNjpcdFx0dW5peF9kZWxfZWRnZXMoZnBsKTtcbm5ldC91bml4L2dhcmJhZ2UuYy0zMTctXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMDA6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjY1MgoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDk2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGFuYWx5c2lzIG9mIHRoZSBjb2RlIGNoYW5nZSwgdGhpbmtpbmcgdGhyb3VnaCB0aGUgcHJvY2VzczoKCioqRGl2aW5nIGludG8gdGhlIEFGX1VOSVggR2FyYmFnZSBDb2xsZWN0aW9uKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBgbGlzdF9kZWwoJmFtcDt2ZXJ0ZXgtJmd0O3NjY19lbnRyeSk7YCBpbnRvIHRoZSBgdW5peF9kZWxfZWRnZWAgZnVuY3Rpb24gd2l0aGluIGBuZXQvdW5peC9nYXJiYWdlLmNgLiBSaWdodCBhd2F5LCB0aGF0IHRlbGxzIG1lIHdlJiMzOTtyZSB0d2Vha2luZyB0aGUgQUZfVU5JWCBnYXJiYWdlIGNvbGxlY3Rpb24gc3lzdGVtLiAgSSBrbm93IGB1bml4X2RlbF9lZGdlYCBpcyBwYXJ0IG9mIGhvdyB0aGUga2VybmVsIG1hbmFnZXMgdGhvc2UgVU5JWCBkb21haW4gc29ja2V0IGNvbm5lY3Rpb25zIHRoYXQgaGF2ZSBiZWVuIG9ycGhhbmVkIG9yIGFyZSBubyBsb25nZXIgdmFsaWQuICBXZSBhcmUgd29ya2luZyB0byBmcmVlIHVwIHJlc291cmNlcy4KCk5vdywgbGV0JiMzOTtzIHNlZSB3aGVyZSBgdW5peF9kZWxfZWRnZWAgaXMgY2FsbGVkLiBJdCYjMzk7cyBjYWxsZWQgYnkgYHVuaXhfZGVsX2VkZ2VzYCwgd2hpY2ggSSBrbm93IGlzIGNhbGxlZCBieSBib3RoIGB1bml4X2Rlc3Ryb3lfZnBsYCBhbmQgYHVuaXhfZ2NgLiBUaGF0IG1lYW5zIHRoaXMgY2hhbmdlIGltcGFjdHMgaG93IHdlIGhhbmRsZSB0aGUgRmlsZSBQb2ludGVyIExpc3Qgc3BlY2lmaWNhbGx5LCBhbmQgdGhlIGdlbmVyYWwgZ2FyYmFnZSBjb2xsZWN0aW9uLgoKQWxyaWdodCwgbGV0JiMzOTtzIHF1aWNrbHkgcmV2aWV3IHRoZSBpbXBsZW1lbnRhdGlvbiBmb3IgYHVuaXhfZGVsX2VkZ2VzYCBhbmQgc2VlIGhvdyBpdCB3b3Jrcy4gVGhhdCB3aWxsIGxpa2VseSBnaXZlIHVzIHRoZSBjb250ZXh0IHdlIG5lZWQgdG8gZnVsbHkgdW5kZXJzdGFuZCB0aGUgcHVycG9zZSBvZiBhZGRpbmcgdGhpcyBwYXJ0aWN1bGFyIGBsaXN0X2RlbGAgY2FsbC4gIFRoaXMgcmVtb3ZhbCBvZiB0aGUgYHNjY19lbnRyeWAgbWlnaHQgYmUgYSBjcml0aWNhbCBzdGVwIGluIGJyZWFraW5nIGEgY2lyY3VsYXIgZGVwZW5kZW5jeSBvciBtYW5hZ2luZyBhIGxpc3QgZHVyaW5nIHRoZSBnYXJiYWdlIGNvbGxlY3Rpb24gY3ljbGUuIEdvdHRhIGdldCBhIGJldHRlciBmZWVsIGZvciBob3cgdGhlc2Ugc29ja2V0IGNvbm5lY3Rpb25zIGFuZCB0aGVpciBlZGdlcyBhcmUgb3JnYW5pemVkIGFuZCB0cmFja2VkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDAwOjU3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3VuaXhfZGVsX2VkZ2VzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3VuaXgvZ2FyYmFnZS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC91bml4L2dhcmJhZ2UuYz0yMDU9dm9pZCB1bml4X2FkZF9lZGdlcyhzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbCwgc3RydWN0IHVuaXhfc29jayAqcmVjZWl2ZXIpXG4tLVxubmV0L3VuaXgvZ2FyYmFnZS5jLTIzOC1cbm5ldC91bml4L2dhcmJhZ2UuYzoyMzk6dm9pZCB1bml4X2RlbF9lZGdlcyhzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbClcbm5ldC91bml4L2dhcmJhZ2UuYy0yNDAte1xuLS1cbm5ldC91bml4L2dhcmJhZ2UuYz0zMTM9dm9pZCB1bml4X2Rlc3Ryb3lfZnBsKHN0cnVjdCBzY21fZnBfbGlzdCAqZnBsKVxuLS1cbm5ldC91bml4L2dhcmJhZ2UuYy0zMTUtXHRpZiAoZnBsLVx1MDAzZWluZmxpZ2h0KVxubmV0L3VuaXgvZ2FyYmFnZS5jOjMxNjpcdFx0dW5peF9kZWxfZWRnZXMoZnBsKTtcbm5ldC91bml4L2dhcmJhZ2UuYy0zMTctXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMDA6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzE4NQoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDEzMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEFGX1VOSVggR2FyYmFnZSBDb2xsZWN0b3IgTW9kaWZpY2F0aW9uKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgZGlnZ2luZyBpbnRvIGBuZXQvdW5peC9nYXJiYWdlLmNgLCBzcGVjaWZpY2FsbHkgdGhlIGB1bml4X2RlbF9lZGdlYCBmdW5jdGlvbi4gSXQgc2VlbXMgdG8gYmUgaW50cm9kdWNpbmcgYSBgbGlzdF9kZWwoJmFtcDt2ZXJ0ZXgtJmd0O3NjY19lbnRyeSk7YCBjYWxsIHVuZGVyIHRoZSBjb25kaXRpb24gdGhhdCBgdmVydGV4LSZndDtvdXRfZGVncmVlYCBpcyB6ZXJvLiBUaGF0JiMzOTtzIGltbWVkaWF0ZWx5IGludGVyZXN0aW5nOyBpdCYjMzk7cyBkZWZpbml0ZWx5IGEgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aGluIHRoZSBnYXJiYWdlIGNvbGxlY3RvciBmb3IgQUZfVU5JWCBzb2NrZXRzLiBUaGlzIGlzIGEgdmVyeSBsaWtlbHkgY2FuZGlkYXRlIGZvciBmdXp6aW5nLCBnaXZlbiBpdHMgcm9sZSBpbiBtZW1vcnkgbWFuYWdlbWVudC4KCk15IGluaXRpYWwgdGhvdWdodHMgYXJlIHRvIGZvY3VzIGZ1enppbmcgZWZmb3J0cyBvbiBgdW5peF9kZWxfZWRnZXNgIGFuZCBgdW5peF9kZXN0cm95X2ZwbGAuIEhvd2V2ZXIsIEkgbmVlZCB0byBjb25maXJtIHdoZXRoZXIgYHVuaXhfZGVzdHJveV9mcGxgIGlzIG9ubHkgdXNlZCBsb2NhbGx5LiBJdCYjMzk7cyBvZnRlbiB0aGUgY2FzZSB0aGF0IHNlZW1pbmdseSBpc29sYXRlZCBmdW5jdGlvbnMgbGlrZSB0aGVzZSBhcmUgZXhwb3NlZCBmb3IgdXNlIGVsc2V3aGVyZS4gVGltZSB0byBkbyBhIHF1aWNrIGNvZGUgZGl2ZSB0byBkZXRlcm1pbmUgdGhlIGNhbGwgc2l0ZXMgZm9yIGJvdGggZnVuY3Rpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDAwOjU3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3VuaXhfZGVzdHJveV9mcGwmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvdW5peC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3VuaXgvYWZfdW5peC5jPTE5NTA9c3RhdGljIHZvaWQgdW5peF9kZXRhY2hfZmRzKHN0cnVjdCBzY21fY29va2llICpzY20sIHN0cnVjdCBza19idWZmICpza2IpXG4tLVxubmV0L3VuaXgvYWZfdW5peC5jLTE5NTQtXG5uZXQvdW5peC9hZl91bml4LmM6MTk1NTpcdHVuaXhfZGVzdHJveV9mcGwoc2NtLVx1MDAzZWZwKTtcbm5ldC91bml4L2FmX3VuaXguYy0xOTU2LX1cbi0tXG5uZXQvdW5peC9hZl91bml4Lmg9MzA9aW50IHVuaXhfcHJlcGFyZV9mcGwoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwpO1xubmV0L3VuaXgvYWZfdW5peC5oOjMxOnZvaWQgdW5peF9kZXN0cm95X2ZwbChzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbCk7XG5uZXQvdW5peC9hZl91bml4LmgtMzItdm9pZCB1bml4X3BlZWtfZnBsKHN0cnVjdCBzY21fZnBfbGlzdCAqZnBsKTtcbi0tXG5uZXQvdW5peC9nYXJiYWdlLmM9MjgzPWludCB1bml4X3ByZXBhcmVfZnBsKHN0cnVjdCBzY21fZnBfbGlzdCAqZnBsKVxuLS1cbm5ldC91bml4L2dhcmJhZ2UuYy0zMTItXG5uZXQvdW5peC9nYXJiYWdlLmM6MzEzOnZvaWQgdW5peF9kZXN0cm95X2ZwbChzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbClcbm5ldC91bml4L2dhcmJhZ2UuYy0zMTQte1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDAwOjU3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwNDEKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiAxMDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBVbml4IERvbWFpbiBTb2NrZXQgRmlsZSBEZXNjcmlwdG9yIERlc3RydWN0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gZGl2aW5nIGludG8gdGhpcyBgbmV0L3VuaXhgIGNvZGUsIHNwZWNpZmljYWxseSB0aGUgZGVzdHJ1Y3Rpb24gb2YgZmlsZSBwb2ludGVycyByZWxhdGVkIHRvIFVuaXggZG9tYWluIHNvY2tldHMuIEkgc2VlIHRoYXQgYHVuaXhfZGVzdHJveV9mcGxgIGlzIGNhbGxlZCBkaXJlY3RseSBmcm9tIGB1bml4X2RldGFjaF9mZHNgIGluIGBhZl91bml4LmNgLiBUaGF0JiMzOTtzIG15IHN0YXJ0aW5nIHBvaW50LiBJJiMzOTttIGdvaW5nIHRvIGtlZXAgYHVuaXhfZGVzdHJveV9mcGxgIGFuZCBgdW5peF9kZWxfZWRnZXNgIGFzIG15IHByaW1hcnkgZm9jdXMgc3ltYm9scyBmb3Igbm93IGJlY2F1c2UgdGhleSBzZWVtIGNlbnRyYWwgdG8gdGhpcyBkZXN0cnVjdGlvbiBwcm9jZXNzLiBJIHdhcyBpbml0aWFsbHkgZ29pbmcgdG8gaW5jbHVkZSBgdW5peF9kZWxfZWRnZWAsIGJ1dCBpdCBsb29rcyBzdGF0aWMsIHNvIEkgd2lsbCBpZ25vcmUgaXQuIEhhbmcgb24sIGRpZCBJIHNlZSBgdW5peF9kZWxfZWRnZXNgIGNvcnJlY3RseT8gSXQgaXMgbm90IHN0YXRpYyEgQmV0dGVyIGRvdWJsZS1jaGVjayB0aGF0IGluIGBuZXQvdW5peC9nYXJiYWdlLmNgIHRvIGJlIGNlcnRhaW4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDAwOjU3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZvaWQgdW5peF9kZWxfZWRnZXMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvdW5peC9nYXJiYWdlLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3VuaXgvZ2FyYmFnZS5jPTIwNT12b2lkIHVuaXhfYWRkX2VkZ2VzKHN0cnVjdCBzY21fZnBfbGlzdCAqZnBsLCBzdHJ1Y3QgdW5peF9zb2NrICpyZWNlaXZlcilcbi0tXG5uZXQvdW5peC9nYXJiYWdlLmMtMjM4LVxubmV0L3VuaXgvZ2FyYmFnZS5jOjIzOTp2b2lkIHVuaXhfZGVsX2VkZ2VzKHN0cnVjdCBzY21fZnBfbGlzdCAqZnBsKVxubmV0L3VuaXgvZ2FyYmFnZS5jLTI0MC17XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDAwOjU3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwNDEKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAzMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBBRl9VTklYIEdhcmJhZ2UgQ29sbGVjdGlvbiBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIG1vZGlmeWluZyBgdW5peF9kZWxfZWRnZWAgd2l0aGluIGBuZXQvdW5peC9nYXJiYWdlLmNgLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIGFkZGluZyBgbGlzdF9kZWwoJmFtcDt2ZXJ0ZXgtJmd0O3NjY19lbnRyeSk7YCB1bmRlciB0aGUgY29uZGl0aW9uIHRoYXQgYHZlcnRleC0mZ3Q7b3V0X2RlZ3JlZWAgaXMgemVyby4gVGhhdCYjMzk7cyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHJlbGF0ZWQgdG8gQUZfVU5JWCBnYXJiYWdlIGNvbGxlY3Rpb24g4oCTIGl0JiMzOTtzIGRlZmluaXRlbHkgc29tZXRoaW5nIHRvIHBheSBhdHRlbnRpb24gdG8uCgpMZXQmIzM5O3MgdHJhY2UgdGhlIGNhbGwgY2hhaW4uIGB1bml4X2RlbF9lZGdlYCBpcyBjYWxsZWQgYnkgYHVuaXhfZGVsX2VkZ2VzYCwgd2hpY2gsIGluIHR1cm4sIGlzIGNhbGxlZCBieSBgdW5peF9kZXN0cm95X2ZwbGAuIFRoZW4gYHVuaXhfZGVzdHJveV9mcGxgIGlzIGNhbGxlZCBieSBgdW5peF9kZXRhY2hfZmRzYCBpbiBgbmV0L3VuaXgvYWZfdW5peC5jYC4gVGhpcyBpcyBhIGNsZWFyIHBhdGgsIHNvIGl0JiMzOTtzIGRlZmluaXRlbHkgcmVhY2hhYmxlIGNvZGUgYW5kIGEgcHJpbWUgY2FuZGlkYXRlIGZvciBmdXp6aW5nLgoKTXkgaW5pdGlhbCB0aG91Z2h0IHdhcyB0byBmb2N1cyBvbiBgdW5peF9kZWxfZWRnZWAgZGlyZWN0bHksIGJ1dCB3YWl0Li4uIGl0JiMzOTtzIGEgc3RhdGljIGZ1bmN0aW9uLiBTbywgSSBuZWVkIHRvIGxvb2sgZnVydGhlciB1cCB0aGUgY2FsbCBjaGFpbiBhdCBzb21ldGhpbmcgdGhhdCYjMzk7cyBub3Qgc3RhdGljLiBUaGF0IG1lYW5zIGB1bml4X2RlbF9lZGdlc2Agb3IgYHVuaXhfZGVzdHJveV9mcGxgLgoKTGV0JiMzOTtzIGRvdWJsZS1jaGVjayBpZiBgdW5peF9kZWxfZWRnZXNgIGlzIGV4cG9ydGVkIG9yIG5vbi1zdGF0aWMuIExvb2tpbmcgaW4gYG5ldC91bml4L2dhcmJhZ2UuY2AsIGl0JiMzOTtzIGRlZmluZWQgYXMgYHZvaWQgdW5peF9kZWxfZWRnZXMoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwpYC4gT2theSwgdGhhdCAqbG9va3MqIG5vbi1zdGF0aWMsIGJ1dCBJIG5lZWQgdG8gYmUgc3VyZS4gSXQmIzM5O3Mgbm90IGltbWVkaWF0ZWx5IG9idmlvdXMgaWYgaXQmIzM5O3MgaW4gYSBoZWFkZXIgb3Igbm90LiBMZXQmIzM5O3MgbWFrZSBzdXJlIGl0JiMzOTtzIG5vdCBkZWNsYXJlZCBzdGF0aWMgdXNpbmcgYGdyZXBgLgoKQWxyaWdodCwgYSBxdWljayBzZWFyY2ggb2YgYG5ldC91bml4L2dhcmJhZ2UuY2AgY29uZmlybXM6IGB2b2lkIHVuaXhfZGVsX2VkZ2VzKHN0cnVjdCBzY21fZnBfbGlzdCAqZnBsKWAuIEl0JiMzOTtzIGRlZmluaXRlbHkgbm90IHN0YXRpYyBpbiBpdHMgZGVjbGFyYXRpb24uIEJ1dCBpcyBpdCBpbiBhIGhlYWRlcj8gSSBzaG91bGQgY2hlY2sgYG5ldC91bml4L2FmX3VuaXguaGAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDAwOjU5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3VuaXhfZGVsX2VkZ2VzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3VuaXgvYWZfdW5peC5oJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC91bml4L2FmX3VuaXguaD0yNz12b2lkIHVuaXhfYWRkX2VkZ2VzKHN0cnVjdCBzY21fZnBfbGlzdCAqZnBsLCBzdHJ1Y3QgdW5peF9zb2NrICpyZWNlaXZlcik7XG5uZXQvdW5peC9hZl91bml4Lmg6Mjg6dm9pZCB1bml4X2RlbF9lZGdlcyhzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbCk7XG5uZXQvdW5peC9hZl91bml4LmgtMjktdm9pZCB1bml4X3VwZGF0ZV9lZGdlcyhzdHJ1Y3QgdW5peF9zb2NrICpyZWNlaXZlcik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDAwOjU5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ2MTQKCQkJCQkJCW91dHB1dDogMjkKCQkJCQkJCXRob3VnaHRzOiAwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAwMDo1OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt1bml4X2RlbF9lZGdlcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC91bml4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvdW5peC9hZl91bml4LmM9MjA2MT1zdGF0aWMgdm9pZCBzY21fc3RhdF9kZWwoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbm5ldC91bml4L2FmX3VuaXguYy0yMDY3LVx0XHRhdG9taWNfc3ViKGZwLVx1MDAzZWNvdW50LCBcdTAwMjZ1LVx1MDAzZXNjbV9zdGF0Lm5yX2Zkcyk7XG5uZXQvdW5peC9hZl91bml4LmM6MjA2ODpcdFx0dW5peF9kZWxfZWRnZXMoZnApO1xubmV0L3VuaXgvYWZfdW5peC5jLTIwNjktXHR9XG4tLVxubmV0L3VuaXgvYWZfdW5peC5oPTI3PXZvaWQgdW5peF9hZGRfZWRnZXMoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwsIHN0cnVjdCB1bml4X3NvY2sgKnJlY2VpdmVyKTtcbm5ldC91bml4L2FmX3VuaXguaDoyODp2b2lkIHVuaXhfZGVsX2VkZ2VzKHN0cnVjdCBzY21fZnBfbGlzdCAqZnBsKTtcbm5ldC91bml4L2FmX3VuaXguaC0yOS12b2lkIHVuaXhfdXBkYXRlX2VkZ2VzKHN0cnVjdCB1bml4X3NvY2sgKnJlY2VpdmVyKTtcbi0tXG5uZXQvdW5peC9nYXJiYWdlLmM9MjA1PXZvaWQgdW5peF9hZGRfZWRnZXMoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwsIHN0cnVjdCB1bml4X3NvY2sgKnJlY2VpdmVyKVxuLS1cbm5ldC91bml4L2dhcmJhZ2UuYy0yMzgtXG5uZXQvdW5peC9nYXJiYWdlLmM6MjM5OnZvaWQgdW5peF9kZWxfZWRnZXMoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwpXG5uZXQvdW5peC9nYXJiYWdlLmMtMjQwLXtcbi0tXG5uZXQvdW5peC9nYXJiYWdlLmM9MzEzPXZvaWQgdW5peF9kZXN0cm95X2ZwbChzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbClcbi0tXG5uZXQvdW5peC9nYXJiYWdlLmMtMzE1LVx0aWYgKGZwbC1cdTAwM2VpbmZsaWdodClcbm5ldC91bml4L2dhcmJhZ2UuYzozMTY6XHRcdHVuaXhfZGVsX2VkZ2VzKGZwbCk7XG5uZXQvdW5peC9nYXJiYWdlLmMtMzE3LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAwMDo1OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MDY4CgkJCQkJCQlvdXRwdXQ6IDI4CgkJCQkJCQl0aG91Z2h0czogMTc3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFGX1VOSVggR2FyYmFnZSBDb2xsZWN0aW9uIFBhdGNoIFJldmlldyoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRvdWNoaW5nIGB1bml4X2RlbF9lZGdlYCB3aXRoaW4gYG5ldC91bml4L2dhcmJhZ2UuY2AuIFNwZWNpZmljYWxseSwgaXQmIzM5O3MgYWRkaW5nIGBsaXN0X2RlbCgmYW1wO3ZlcnRleC0mZ3Q7c2NjX2VudHJ5KTtgIHVuZGVyIHRoZSBjb25kaXRpb24gYCF2ZXJ0ZXgtJmd0O291dF9kZWdyZWVgLiBUaGlzIGxvb2tzIGxpa2UgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBBRl9VTklYIGdhcmJhZ2UgY29sbGVjdGlvbiBsb2dpYywgd2hpY2ggbWFrZXMgaXQgYSBwcmltZSB0YXJnZXQgZm9yIGZ1enppbmcuIEkgbmVlZCB0byBrZWVwIGFuIGV5ZSBvbiB0aGlzLgoKR2l2ZW4gdGhlIGNvbnRleHQsIEkgdGhpbmsgdGhlIGNyaXRpY2FsIGZ1bmN0aW9ucyB0byBwYXkgYXR0ZW50aW9uIHRvIGFyZSBgdW5peF9kZWxfZWRnZXNgLCBgdW5peF9kZXN0cm95X2ZwbGAsIGB1bml4X2FkZF9lZGdlc2AsIGB1bml4X3ByZXBhcmVfZnBsYCwgYW5kIGB1bml4X3VwZGF0ZV9lZGdlc2AuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBhdHRhY2sgdmVjdG9ycyBoZXJlLiBXYWl0LCBgdW5peF9kZWxfZWRnZXNgIGlzIGNhbGxlZCBmcm9tIGBzY21fc3RhdF9kZWxgIGFuZCBgdW5peF9kZXN0cm95X2ZwbGAgLSBpbnRlcmVzdGluZy4gSSBuZWVkIHRvIGZvbGxvdyB0aG9zZSBjYWxsIHBhdGhzIHRvIHNlZSB3aGF0JiMzOTtzIGJlaW5nIGFmZmVjdGVkLgoKSSBzaG91bGQgdmVyaWZ5IGlmIHRoZSBgVU5JWGAgY29uZmlnIGlzIGVuYWJsZWQsIGJlY2F1c2UgdGhhdCYjMzk7cyBvYnZpb3VzbHkgYSBwcmVyZXF1aXNpdGUgZm9yIGFueSBvZiB0aGlzIHRvIG1hdHRlci4gWWVwLCBmb3VuZCBpdC4gYENPTkZJR19VTklYYCBpcyByZXF1aXJlZC4gSSBuZWVkIHRvIGNoZWNrIGBuZXQvdW5peC9LY29uZmlnYCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIGJ1dCBJJiMzOTttIGZlZWxpbmcgcHJldHR5IGNvbmZpZGVudCB0aGF0JiMzOTtzIHRoZSBrZXkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDAwOjU5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBVTklYJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3VuaXgvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvdW5peC9LY29uZmlnLTUtXG5uZXQvdW5peC9LY29uZmlnOjY6Y29uZmlnIFVOSVhcbm5ldC91bml4L0tjb25maWctNy1cdGJvb2wgXCYjMzQ7VW5peCBkb21haW4gc29ja2V0c1wmIzM0O1xuLS1cbm5ldC91bml4L0tjb25maWc9MTk9Y29uZmlnXHRBRl9VTklYX09PQlxuLS1cbm5ldC91bml4L0tjb25maWctMjUtXG5uZXQvdW5peC9LY29uZmlnOjI2OmNvbmZpZyBVTklYX0RJQUdcbm5ldC91bml4L0tjb25maWctMjctXHR0cmlzdGF0ZSBcJiMzNDtVTklYOiBzb2NrZXQgbW9uaXRvcmluZyBpbnRlcmZhY2VcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMDA6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjQyNgoJCQkJCQkJb3V0cHV0OiA5MgoJCQkJCQkJdGhvdWdodHM6IDQwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqSW5pdGlhbCBDb25maWd1cmF0aW9uIGFuZCBTeW1ib2wgRm9jdXMqKgoKQWxyaWdodCwgc28gdGhlIHRhc2sgYXQgaGFuZCBpcyBjbGVhcmx5IHJlbGF0ZWQgdG8gVW5peC1zcGVjaWZpYyBmdW5jdGlvbmFsaXR5LCBhbmQgdGhlIGtleSBpcyBgQ09ORklHX1VOSVhgLiAgVGhhdCYjMzk7cyBteSBzdGFydGluZyBwb2ludDsgaXQmIzM5O3MgdGhlIGVuYWJsaW5nIGNvbmZpZ3VyYXRpb24uICBGcm9tIHRoZXJlLCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcmVsZXZhbnQgcGllY2VzIG9mIGNvZGUuIE15IGZvY3VzIGltbWVkaWF0ZWx5IHNoaWZ0cyB0byB0aGUgc3ltYm9sczogYHVuaXhfZGVsX2VkZ2VzYCBhbmQgYHVuaXhfZGVzdHJveV9mcGxgLiBUaGVzZSBhcmUgdGhlIGZ1bmN0aW9ucywgb3IgYXQgbGVhc3QgdGhlIGNvcmUgYWN0aW9ucywgdGhhdCBJJiMzOTtsbCBuZWVkIHRvIGRpc3NlY3QgYW5kIHVuZGVyc3RhbmQgaW4gcmVsYXRpb24gdG8gaG93IGBDT05GSUdfVU5JWGAgaXMgZW1wbG95ZWQuIEkmIzM5O20gYXNzdW1pbmcgdGhlc2UgYXJlIGxvdy1sZXZlbCBmdW5jdGlvbnMgYW5kIHRoYXQgSSB3aWxsIGJlIGFibGUgdG8gZGV0ZXJtaW5lIHRoZSBhcmNoaXRlY3R1cmUgYXJvdW5kIHRoZW0uCgpPbmNlIEkmIzM5O3ZlIGVzdGFibGlzaGVkIG15IHVuZGVyc3RhbmRpbmcgb2YgaG93IHRoZXNlIHBpZWNlcyBmaXQgdG9nZXRoZXIsIGl0JiMzOTtzIHRpbWUgdG8gc2V0LXJlc3VsdHMuIFRoaXMgcHJvYmFibHkgaW52b2x2ZXMgc2V0dGluZyB1cCB0aGUgcHJvZ3JhbSBhbmQgcnVubmluZyBpdCwgc2luY2UgdGhpcyBpcyBnZW5lcmFsbHkgdGhlIGxhc3Qgc3RlcCBvZiB0aGUgdGhvdWdodCBwcm9jZXNzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAwMDo1OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VU5JWCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3VuaXhfZGVsX2VkZ2VzJiMzNDssCiAgICAmIzM0O3VuaXhfZGVzdHJveV9mcGwmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGlzIHBhdGNoIG1vZGlmaWVzIHRoZSBBRl9VTklYIGdhcmJhZ2UgY29sbGVjdG9yIGxvZ2ljIGJ5IGZpeGluZyBhIGxpc3QgZGVsZXRpb24gaW4gdW5peF9kZWxfZWRnZS4gSXQgaXMgZnVuY3Rpb25hbCBjb3JlIG5ldHdvcmtpbmcgY29kZSB0aGF0IGlzIHJlYWNoYWJsZSB2aWEgc3RhbmRhcmQgQUZfVU5JWCBzb2NrZXQgb3BlcmF0aW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VU5JWCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3VuaXhfZGVsX2VkZ2VzJiMzNDssCiAgICAmIzM0O3VuaXhfZGVzdHJveV9mcGwmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGlzIHBhdGNoIG1vZGlmaWVzIHRoZSBBRl9VTklYIGdhcmJhZ2UgY29sbGVjdG9yIGxvZ2ljIGJ5IGZpeGluZyBhIGxpc3QgZGVsZXRpb24gaW4gdW5peF9kZWxfZWRnZS4gSXQgaXMgZnVuY3Rpb25hbCBjb3JlIG5ldHdvcmtpbmcgY29kZSB0aGF0IGlzIHJlYWNoYWJsZSB2aWEgc3RhbmRhcmQgQUZfVU5JWCBzb2NrZXQgb3BlcmF0aW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDAwOjQ3OjA0LjE2NDU1NTE5WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzUxMjEzMjIxNTQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlVOSVhcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ1bml4X2RlbF9lZGdlc1wiLFxuICAgIFwidW5peF9kZXN0cm95X2ZwbFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhpcyBwYXRjaCBtb2RpZmllcyB0aGUgQUZfVU5JWCBnYXJiYWdlIGNvbGxlY3RvciBsb2dpYyBieSBmaXhpbmcgYSBsaXN0IGRlbGV0aW9uIGluIHVuaXhfZGVsX2VkZ2UuIEl0IGlzIGZ1bmN0aW9uYWwgY29yZSBuZXR3b3JraW5nIGNvZGUgdGhhdCBpcyByZWFjaGFibGUgdmlhIHN0YW5kYXJkIEFGX1VOSVggc29ja2V0IG9wZXJhdGlvbnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDAwOjQ3OjA0LjE2NDU2MTM1WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMDMwNzA4MjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA3YjBhMjZlNDIwMmVkZGRjYWVhMmFlYjgzOWRhOTA5MWJmZWQzMWM4XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUdWUgQXVnIDQgMDA6NDc6MDMgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L3VuaXgvZ2FyYmFnZS5jIGIvbmV0L3VuaXgvZ2FyYmFnZS5jXFxuaW5kZXggMDc4MzU1NWUyNTI2Ni4uOWZjYWFmNTVjYmE1ZCAxMDA2NDRcXG4tLS0gYS9uZXQvdW5peC9nYXJiYWdlLmNcXG4rKysgYi9uZXQvdW5peC9nYXJiYWdlLmNcXG5AQCAtMTg2LDYgKzE4Niw3IEBAIHN0YXRpYyB2b2lkIHVuaXhfZGVsX2VkZ2Uoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwsIHN0cnVjdCB1bml4X2VkZ2UgKmVkZ2UpXFxuIFxcdGlmICghdmVydGV4LVxcdTAwM2VvdXRfZGVncmVlKSB7XFxuIFxcdFxcdGVkZ2UtXFx1MDAzZXByZWRlY2Vzc29yLVxcdTAwM2V2ZXJ0ZXggPSBOVUxMO1xcbiBcXHRcXHRsaXN0X21vdmVfdGFpbChcXHUwMDI2dmVydGV4LVxcdTAwM2VlbnRyeSwgXFx1MDAyNmZwbC1cXHUwMDNldmVydGljZXMpO1xcbitcXHRcXHRsaXN0X2RlbChcXHUwMDI2dmVydGV4LVxcdTAwM2VzY2NfZW50cnkpO1xcbiBcXHR9XFxuIH1cXG4gXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDAwOjQ3OjA0LjQ2ODI2NzQ4NVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjc1MDkwOTUwMTAzMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJVTklYXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidW5peF9kZWxfZWRnZXNcIixcbiAgICBcInVuaXhfZGVzdHJveV9mcGxcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoaXMgcGF0Y2ggbW9kaWZpZXMgdGhlIEFGX1VOSVggZ2FyYmFnZSBjb2xsZWN0b3IgbG9naWMgYnkgZml4aW5nIGEgbGlzdCBkZWxldGlvbiBpbiB1bml4X2RlbF9lZGdlLiBJdCBpcyBmdW5jdGlvbmFsIGNvcmUgbmV0d29ya2luZyBjb2RlIHRoYXQgaXMgcmVhY2hhYmxlIHZpYSBzdGFuZGFyZCBBRl9VTklYIHNvY2tldCBvcGVyYXRpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA3YjBhMjZlNDIwMmVkZGRjYWVhMmFlYjgzOWRhOTA5MWJmZWQzMWM4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBBdWcgNCAwMDo0NzowMyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC91bml4L2dhcmJhZ2UuYyBiL25ldC91bml4L2dhcmJhZ2UuY1xuaW5kZXggMDc4MzU1NWUyNTI2Ni4uOWZjYWFmNTVjYmE1ZCAxMDA2NDRcbi0tLSBhL25ldC91bml4L2dhcmJhZ2UuY1xuKysrIGIvbmV0L3VuaXgvZ2FyYmFnZS5jXG5AQCAtMTg2LDYgKzE4Niw3IEBAIHN0YXRpYyB2b2lkIHVuaXhfZGVsX2VkZ2Uoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwsIHN0cnVjdCB1bml4X2VkZ2UgKmVkZ2UpXG4gXHRpZiAoIXZlcnRleC1cdTAwM2VvdXRfZGVncmVlKSB7XG4gXHRcdGVkZ2UtXHUwMDNlcHJlZGVjZXNzb3ItXHUwMDNldmVydGV4ID0gTlVMTDtcbiBcdFx0bGlzdF9tb3ZlX3RhaWwoXHUwMDI2dmVydGV4LVx1MDAzZWVudHJ5LCBcdTAwMjZmcGwtXHUwMDNldmVydGljZXMpO1xuK1x0XHRsaXN0X2RlbChcdTAwMjZ2ZXJ0ZXgtXHUwMDNlc2NjX2VudHJ5KTtcbiBcdH1cbiB9XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQwMDo0NzowNC40NjgyNjg4MzVaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MDQ0MTg5MTE0NjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGlzOlxuXG4qKkFuYWx5emluZyBhIFVuaXggRG9tYWluIFNvY2tldCBHYXJiYWdlIENvbGxlY3Rpb24gUGF0Y2gqKlxuXG5BbHJpZ2h0LCBzbyBhIHBhdGNoIGhhcyBoaXQgbXkgZGVzaywgYW5kIGl0J3MgdG91Y2hpbmcgYG5ldC91bml4L2dhcmJhZ2UuY2AuIFNwZWNpZmljYWxseSwgaXQncyBpbnRyb2R1Y2luZyBgbGlzdF9kZWwoXHUwMDI2dmVydGV4LVx1MDAzZXNjY19lbnRyeSk7YCB3aXRoaW4gdGhlIGB1bml4X2RlbF9lZGdlYCBmdW5jdGlvbi4gVGhhdCBpbW1lZGlhdGVseSBmbGFncyB0aGlzIGFzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gdGhlIFVOSVggZG9tYWluIHNvY2tldCBnYXJiYWdlIGNvbGxlY3Rvci4gVGhpcyBpcyBpbnRlcmVzdGluZy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzIGFkZGl0aW9uLlxuXG5NeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZGl2ZSBzdHJhaWdodCBpbnRvIHRoZSBjb2RlIGFuZCBzZWUgZXhhY3RseSB3aGF0J3MgaGFwcGVuaW5nIHdpdGhpbiBgdW5peF9kZWxfZWRnZWAuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBwdXJwb3NlIG9mIGB2ZXJ0ZXgtXHUwMDNlc2NjX2VudHJ5YCBpbiB0aGUgYmlnZ2VyIHBpY3R1cmUgdG8gZnVsbHkgZ3Jhc3AgdGhlIGNoYW5nZS4gV2hhdCBpcyB0aGUgc3RhdGUgb2YgdGhlIHN5c3RlbSB3aGljaCB0aGlzIGNoYW5nZSBpcyBiZWluZyBtYWRlP1xuXG5MZXQncyBmaXJlIHVwIGBncmVwcGVyYCBhbmQgc2VlIHdoYXQgdGhlIHdpZGVyIHBpY3R1cmUgaXMgZm9yIGB1bml4X2RlbF9lZGdlYC4gVGhlIHNlYXJjaCBzaG91bGQgcXVpY2tseSByZXZlYWwgdGhlIHN1cnJvdW5kaW5nIGNvZGUgYW5kIGhvdyB0aGlzIGZ1bmN0aW9uIGZpdHMgaW50byB0aGUgb3ZlcmFsbCBnYXJiYWdlIGNvbGxlY3Rpb24gcHJvY2Vzcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjAyNiwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjkyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDA6NTc6MDguODg3MTgzMzY4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI4Njg2OTQ1NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ1bml4X2RlbF9lZGdlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC91bml4L2dhcmJhZ2UuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvdW5peC9nYXJiYWdlLmM9MTU0PXN0YXRpYyB2b2lkIHVuaXhfYWRkX2VkZ2Uoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwsIHN0cnVjdCB1bml4X2VkZ2UgKmVkZ2UpXFxuLS1cXG5uZXQvdW5peC9nYXJiYWdlLmMtMTc1LVxcbm5ldC91bml4L2dhcmJhZ2UuYzoxNzY6c3RhdGljIHZvaWQgdW5peF9kZWxfZWRnZShzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbCwgc3RydWN0IHVuaXhfZWRnZSAqZWRnZSlcXG5uZXQvdW5peC9nYXJiYWdlLmMtMTc3LXtcXG4tLVxcbm5ldC91bml4L2dhcmJhZ2UuYz0yMDU9dm9pZCB1bml4X2FkZF9lZGdlcyhzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbCwgc3RydWN0IHVuaXhfc29jayAqcmVjZWl2ZXIpXFxuLS1cXG5uZXQvdW5peC9nYXJiYWdlLmMtMjM4LVxcbm5ldC91bml4L2dhcmJhZ2UuYzoyMzk6dm9pZCB1bml4X2RlbF9lZGdlcyhzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbClcXG5uZXQvdW5peC9nYXJiYWdlLmMtMjQwLXtcXG4tLVxcbm5ldC91bml4L2dhcmJhZ2UuYy0yNTEtXFxubmV0L3VuaXgvZ2FyYmFnZS5jOjI1MjpcXHRcXHR1bml4X2RlbF9lZGdlKGZwbCwgZWRnZSk7XFxubmV0L3VuaXgvZ2FyYmFnZS5jLTI1My1cXHR9IHdoaWxlIChpIFxcdTAwM2MgZnBsLVxcdTAwM2Vjb3VudF91bml4KTtcXG4tLVxcbm5ldC91bml4L2dhcmJhZ2UuYz0zMTM9dm9pZCB1bml4X2Rlc3Ryb3lfZnBsKHN0cnVjdCBzY21fZnBfbGlzdCAqZnBsKVxcbi0tXFxubmV0L3VuaXgvZ2FyYmFnZS5jLTMxNS1cXHRpZiAoZnBsLVxcdTAwM2VpbmZsaWdodClcXG5uZXQvdW5peC9nYXJiYWdlLmM6MzE2OlxcdFxcdHVuaXhfZGVsX2VkZ2VzKGZwbCk7XFxubmV0L3VuaXgvZ2FyYmFnZS5jLTMxNy1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDA6NTc6MDkuMTc0MDYyMzMzWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDY2NjE4NzI1MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGFuYWx5c2lzIG9mIHRoZSBjb2RlIGNoYW5nZSwgdGhpbmtpbmcgdGhyb3VnaCB0aGUgcHJvY2VzczpcblxuKipEaXZpbmcgaW50byB0aGUgQUZfVU5JWCBHYXJiYWdlIENvbGxlY3Rpb24qKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGludHJvZHVjZXMgYGxpc3RfZGVsKFx1MDAyNnZlcnRleC1cdTAwM2VzY2NfZW50cnkpO2AgaW50byB0aGUgYHVuaXhfZGVsX2VkZ2VgIGZ1bmN0aW9uIHdpdGhpbiBgbmV0L3VuaXgvZ2FyYmFnZS5jYC4gUmlnaHQgYXdheSwgdGhhdCB0ZWxscyBtZSB3ZSdyZSB0d2Vha2luZyB0aGUgQUZfVU5JWCBnYXJiYWdlIGNvbGxlY3Rpb24gc3lzdGVtLiAgSSBrbm93IGB1bml4X2RlbF9lZGdlYCBpcyBwYXJ0IG9mIGhvdyB0aGUga2VybmVsIG1hbmFnZXMgdGhvc2UgVU5JWCBkb21haW4gc29ja2V0IGNvbm5lY3Rpb25zIHRoYXQgaGF2ZSBiZWVuIG9ycGhhbmVkIG9yIGFyZSBubyBsb25nZXIgdmFsaWQuICBXZSBhcmUgd29ya2luZyB0byBmcmVlIHVwIHJlc291cmNlcy5cblxuTm93LCBsZXQncyBzZWUgd2hlcmUgYHVuaXhfZGVsX2VkZ2VgIGlzIGNhbGxlZC4gSXQncyBjYWxsZWQgYnkgYHVuaXhfZGVsX2VkZ2VzYCwgd2hpY2ggSSBrbm93IGlzIGNhbGxlZCBieSBib3RoIGB1bml4X2Rlc3Ryb3lfZnBsYCBhbmQgYHVuaXhfZ2NgLiBUaGF0IG1lYW5zIHRoaXMgY2hhbmdlIGltcGFjdHMgaG93IHdlIGhhbmRsZSB0aGUgRmlsZSBQb2ludGVyIExpc3Qgc3BlY2lmaWNhbGx5LCBhbmQgdGhlIGdlbmVyYWwgZ2FyYmFnZSBjb2xsZWN0aW9uLlxuXG5BbHJpZ2h0LCBsZXQncyBxdWlja2x5IHJldmlldyB0aGUgaW1wbGVtZW50YXRpb24gZm9yIGB1bml4X2RlbF9lZGdlc2AgYW5kIHNlZSBob3cgaXQgd29ya3MuIFRoYXQgd2lsbCBsaWtlbHkgZ2l2ZSB1cyB0aGUgY29udGV4dCB3ZSBuZWVkIHRvIGZ1bGx5IHVuZGVyc3RhbmQgdGhlIHB1cnBvc2Ugb2YgYWRkaW5nIHRoaXMgcGFydGljdWxhciBgbGlzdF9kZWxgIGNhbGwuICBUaGlzIHJlbW92YWwgb2YgdGhlIGBzY2NfZW50cnlgIG1pZ2h0IGJlIGEgY3JpdGljYWwgc3RlcCBpbiBicmVha2luZyBhIGNpcmN1bGFyIGRlcGVuZGVuY3kgb3IgbWFuYWdpbmcgYSBsaXN0IGR1cmluZyB0aGUgZ2FyYmFnZSBjb2xsZWN0aW9uIGN5Y2xlLiBHb3R0YSBnZXQgYSBiZXR0ZXIgZmVlbCBmb3IgaG93IHRoZXNlIHNvY2tldCBjb25uZWN0aW9ucyBhbmQgdGhlaXIgZWRnZXMgYXJlIG9yZ2FuaXplZCBhbmQgdHJhY2tlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjY1MiwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjk2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDAwOjU3OjEzLjg0MDI1MjU0MloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NDc5NTQ0OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ1bml4X2RlbF9lZGdlc1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvdW5peC9nYXJiYWdlLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3VuaXgvZ2FyYmFnZS5jPTIwNT12b2lkIHVuaXhfYWRkX2VkZ2VzKHN0cnVjdCBzY21fZnBfbGlzdCAqZnBsLCBzdHJ1Y3QgdW5peF9zb2NrICpyZWNlaXZlcilcXG4tLVxcbm5ldC91bml4L2dhcmJhZ2UuYy0yMzgtXFxubmV0L3VuaXgvZ2FyYmFnZS5jOjIzOTp2b2lkIHVuaXhfZGVsX2VkZ2VzKHN0cnVjdCBzY21fZnBfbGlzdCAqZnBsKVxcbm5ldC91bml4L2dhcmJhZ2UuYy0yNDAte1xcbi0tXFxubmV0L3VuaXgvZ2FyYmFnZS5jPTMxMz12b2lkIHVuaXhfZGVzdHJveV9mcGwoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwpXFxuLS1cXG5uZXQvdW5peC9nYXJiYWdlLmMtMzE1LVxcdGlmIChmcGwtXFx1MDAzZWluZmxpZ2h0KVxcbm5ldC91bml4L2dhcmJhZ2UuYzozMTY6XFx0XFx0dW5peF9kZWxfZWRnZXMoZnBsKTtcXG5uZXQvdW5peC9nYXJiYWdlLmMtMzE3LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQwMDo1NzoxMy44ODUwNTYwODJaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MTU0NTkxMDMwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgQUZfVU5JWCBHYXJiYWdlIENvbGxlY3RvciBNb2RpZmljYXRpb24qKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGRpZ2dpbmcgaW50byBgbmV0L3VuaXgvZ2FyYmFnZS5jYCwgc3BlY2lmaWNhbGx5IHRoZSBgdW5peF9kZWxfZWRnZWAgZnVuY3Rpb24uIEl0IHNlZW1zIHRvIGJlIGludHJvZHVjaW5nIGEgYGxpc3RfZGVsKFx1MDAyNnZlcnRleC1cdTAwM2VzY2NfZW50cnkpO2AgY2FsbCB1bmRlciB0aGUgY29uZGl0aW9uIHRoYXQgYHZlcnRleC1cdTAwM2VvdXRfZGVncmVlYCBpcyB6ZXJvLiBUaGF0J3MgaW1tZWRpYXRlbHkgaW50ZXJlc3Rpbmc7IGl0J3MgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlIHdpdGhpbiB0aGUgZ2FyYmFnZSBjb2xsZWN0b3IgZm9yIEFGX1VOSVggc29ja2V0cy4gVGhpcyBpcyBhIHZlcnkgbGlrZWx5IGNhbmRpZGF0ZSBmb3IgZnV6emluZywgZ2l2ZW4gaXRzIHJvbGUgaW4gbWVtb3J5IG1hbmFnZW1lbnQuXG5cbk15IGluaXRpYWwgdGhvdWdodHMgYXJlIHRvIGZvY3VzIGZ1enppbmcgZWZmb3J0cyBvbiBgdW5peF9kZWxfZWRnZXNgIGFuZCBgdW5peF9kZXN0cm95X2ZwbGAuIEhvd2V2ZXIsIEkgbmVlZCB0byBjb25maXJtIHdoZXRoZXIgYHVuaXhfZGVzdHJveV9mcGxgIGlzIG9ubHkgdXNlZCBsb2NhbGx5LiBJdCdzIG9mdGVuIHRoZSBjYXNlIHRoYXQgc2VlbWluZ2x5IGlzb2xhdGVkIGZ1bmN0aW9ucyBsaWtlIHRoZXNlIGFyZSBleHBvc2VkIGZvciB1c2UgZWxzZXdoZXJlLiBUaW1lIHRvIGRvIGEgcXVpY2sgY29kZSBkaXZlIHRvIGRldGVybWluZSB0aGUgY2FsbCBzaXRlcyBmb3IgYm90aCBmdW5jdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxODUsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMzIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDA6NTc6MTkuMDM5NjQ5OTAyWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzMTM5NzM5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInVuaXhfZGVzdHJveV9mcGxcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3VuaXgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC91bml4L2FmX3VuaXguYz0xOTUwPXN0YXRpYyB2b2lkIHVuaXhfZGV0YWNoX2ZkcyhzdHJ1Y3Qgc2NtX2Nvb2tpZSAqc2NtLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxubmV0L3VuaXgvYWZfdW5peC5jLTE5NTQtXFxubmV0L3VuaXgvYWZfdW5peC5jOjE5NTU6XFx0dW5peF9kZXN0cm95X2ZwbChzY20tXFx1MDAzZWZwKTtcXG5uZXQvdW5peC9hZl91bml4LmMtMTk1Ni19XFxuLS1cXG5uZXQvdW5peC9hZl91bml4Lmg9MzA9aW50IHVuaXhfcHJlcGFyZV9mcGwoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwpO1xcbm5ldC91bml4L2FmX3VuaXguaDozMTp2b2lkIHVuaXhfZGVzdHJveV9mcGwoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwpO1xcbm5ldC91bml4L2FmX3VuaXguaC0zMi12b2lkIHVuaXhfcGVla19mcGwoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwpO1xcbi0tXFxubmV0L3VuaXgvZ2FyYmFnZS5jPTI4Mz1pbnQgdW5peF9wcmVwYXJlX2ZwbChzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbClcXG4tLVxcbm5ldC91bml4L2dhcmJhZ2UuYy0zMTItXFxubmV0L3VuaXgvZ2FyYmFnZS5jOjMxMzp2b2lkIHVuaXhfZGVzdHJveV9mcGwoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwpXFxubmV0L3VuaXgvZ2FyYmFnZS5jLTMxNC17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDAwOjU3OjE5LjA4Mjc5NDcyMVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUzMTAzMjYxODEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBVbml4IERvbWFpbiBTb2NrZXQgRmlsZSBEZXNjcmlwdG9yIERlc3RydWN0aW9uKipcblxuT2theSwgc28gSSdtIGRpdmluZyBpbnRvIHRoaXMgYG5ldC91bml4YCBjb2RlLCBzcGVjaWZpY2FsbHkgdGhlIGRlc3RydWN0aW9uIG9mIGZpbGUgcG9pbnRlcnMgcmVsYXRlZCB0byBVbml4IGRvbWFpbiBzb2NrZXRzLiBJIHNlZSB0aGF0IGB1bml4X2Rlc3Ryb3lfZnBsYCBpcyBjYWxsZWQgZGlyZWN0bHkgZnJvbSBgdW5peF9kZXRhY2hfZmRzYCBpbiBgYWZfdW5peC5jYC4gVGhhdCdzIG15IHN0YXJ0aW5nIHBvaW50LiBJJ20gZ29pbmcgdG8ga2VlcCBgdW5peF9kZXN0cm95X2ZwbGAgYW5kIGB1bml4X2RlbF9lZGdlc2AgYXMgbXkgcHJpbWFyeSBmb2N1cyBzeW1ib2xzIGZvciBub3cgYmVjYXVzZSB0aGV5IHNlZW0gY2VudHJhbCB0byB0aGlzIGRlc3RydWN0aW9uIHByb2Nlc3MuIEkgd2FzIGluaXRpYWxseSBnb2luZyB0byBpbmNsdWRlIGB1bml4X2RlbF9lZGdlYCwgYnV0IGl0IGxvb2tzIHN0YXRpYywgc28gSSB3aWxsIGlnbm9yZSBpdC4gSGFuZyBvbiwgZGlkIEkgc2VlIGB1bml4X2RlbF9lZGdlc2AgY29ycmVjdGx5PyBJdCBpcyBub3Qgc3RhdGljISBCZXR0ZXIgZG91YmxlLWNoZWNrIHRoYXQgaW4gYG5ldC91bml4L2dhcmJhZ2UuY2AgdG8gYmUgY2VydGFpbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NDA0MSwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQwMDo1NzoyNC4zOTMxMjgwNjJaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyOTEwMzY5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZvaWQgdW5peF9kZWxfZWRnZXNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3VuaXgvZ2FyYmFnZS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC91bml4L2dhcmJhZ2UuYz0yMDU9dm9pZCB1bml4X2FkZF9lZGdlcyhzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbCwgc3RydWN0IHVuaXhfc29jayAqcmVjZWl2ZXIpXFxuLS1cXG5uZXQvdW5peC9nYXJiYWdlLmMtMjM4LVxcbm5ldC91bml4L2dhcmJhZ2UuYzoyMzk6dm9pZCB1bml4X2RlbF9lZGdlcyhzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbClcXG5uZXQvdW5peC9nYXJiYWdlLmMtMjQwLXtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDA6NTc6MjQuNDM2MDQzMDMxWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwMDg2NDg4NTYxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEFGX1VOSVggR2FyYmFnZSBDb2xsZWN0aW9uIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyBtb2RpZnlpbmcgYHVuaXhfZGVsX2VkZ2VgIHdpdGhpbiBgbmV0L3VuaXgvZ2FyYmFnZS5jYC4gU3BlY2lmaWNhbGx5LCBpdCdzIGFkZGluZyBgbGlzdF9kZWwoXHUwMDI2dmVydGV4LVx1MDAzZXNjY19lbnRyeSk7YCB1bmRlciB0aGUgY29uZGl0aW9uIHRoYXQgYHZlcnRleC1cdTAwM2VvdXRfZGVncmVlYCBpcyB6ZXJvLiBUaGF0J3MgYSBmdW5jdGlvbmFsIGNoYW5nZSByZWxhdGVkIHRvIEFGX1VOSVggZ2FyYmFnZSBjb2xsZWN0aW9uIOKAkyBpdCdzIGRlZmluaXRlbHkgc29tZXRoaW5nIHRvIHBheSBhdHRlbnRpb24gdG8uXG5cbkxldCdzIHRyYWNlIHRoZSBjYWxsIGNoYWluLiBgdW5peF9kZWxfZWRnZWAgaXMgY2FsbGVkIGJ5IGB1bml4X2RlbF9lZGdlc2AsIHdoaWNoLCBpbiB0dXJuLCBpcyBjYWxsZWQgYnkgYHVuaXhfZGVzdHJveV9mcGxgLiBUaGVuIGB1bml4X2Rlc3Ryb3lfZnBsYCBpcyBjYWxsZWQgYnkgYHVuaXhfZGV0YWNoX2Zkc2AgaW4gYG5ldC91bml4L2FmX3VuaXguY2AuIFRoaXMgaXMgYSBjbGVhciBwYXRoLCBzbyBpdCdzIGRlZmluaXRlbHkgcmVhY2hhYmxlIGNvZGUgYW5kIGEgcHJpbWUgY2FuZGlkYXRlIGZvciBmdXp6aW5nLlxuXG5NeSBpbml0aWFsIHRob3VnaHQgd2FzIHRvIGZvY3VzIG9uIGB1bml4X2RlbF9lZGdlYCBkaXJlY3RseSwgYnV0IHdhaXQuLi4gaXQncyBhIHN0YXRpYyBmdW5jdGlvbi4gU28sIEkgbmVlZCB0byBsb29rIGZ1cnRoZXIgdXAgdGhlIGNhbGwgY2hhaW4gYXQgc29tZXRoaW5nIHRoYXQncyBub3Qgc3RhdGljLiBUaGF0IG1lYW5zIGB1bml4X2RlbF9lZGdlc2Agb3IgYHVuaXhfZGVzdHJveV9mcGxgLlxuXG5MZXQncyBkb3VibGUtY2hlY2sgaWYgYHVuaXhfZGVsX2VkZ2VzYCBpcyBleHBvcnRlZCBvciBub24tc3RhdGljLiBMb29raW5nIGluIGBuZXQvdW5peC9nYXJiYWdlLmNgLCBpdCdzIGRlZmluZWQgYXMgYHZvaWQgdW5peF9kZWxfZWRnZXMoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwpYC4gT2theSwgdGhhdCAqbG9va3MqIG5vbi1zdGF0aWMsIGJ1dCBJIG5lZWQgdG8gYmUgc3VyZS4gSXQncyBub3QgaW1tZWRpYXRlbHkgb2J2aW91cyBpZiBpdCdzIGluIGEgaGVhZGVyIG9yIG5vdC4gTGV0J3MgbWFrZSBzdXJlIGl0J3Mgbm90IGRlY2xhcmVkIHN0YXRpYyB1c2luZyBgZ3JlcGAuXG5cbkFscmlnaHQsIGEgcXVpY2sgc2VhcmNoIG9mIGBuZXQvdW5peC9nYXJiYWdlLmNgIGNvbmZpcm1zOiBgdm9pZCB1bml4X2RlbF9lZGdlcyhzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbClgLiBJdCdzIGRlZmluaXRlbHkgbm90IHN0YXRpYyBpbiBpdHMgZGVjbGFyYXRpb24uIEJ1dCBpcyBpdCBpbiBhIGhlYWRlcj8gSSBzaG91bGQgY2hlY2sgYG5ldC91bml4L2FmX3VuaXguaGAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQwNDEsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMjMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDA6NTk6MDUuMzAwOTMyMjUzWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNDk2ODAxNjYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidW5peF9kZWxfZWRnZXNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3VuaXgvYWZfdW5peC5oXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC91bml4L2FmX3VuaXguaD0yNz12b2lkIHVuaXhfYWRkX2VkZ2VzKHN0cnVjdCBzY21fZnBfbGlzdCAqZnBsLCBzdHJ1Y3QgdW5peF9zb2NrICpyZWNlaXZlcik7XFxubmV0L3VuaXgvYWZfdW5peC5oOjI4OnZvaWQgdW5peF9kZWxfZWRnZXMoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwpO1xcbm5ldC91bml4L2FmX3VuaXguaC0yOS12b2lkIHVuaXhfdXBkYXRlX2VkZ2VzKHN0cnVjdCB1bml4X3NvY2sgKnJlY2VpdmVyKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDA6NTk6MDUuNTUwNjE3NDU5WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4MTgyNjc5NjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjo0NjE0LCJPdXRwdXRUb2tlbnMiOjI5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQwMDo1OTowOC4zNjg4ODg0OTJaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyOTkwNTI5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInVuaXhfZGVsX2VkZ2VzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC91bml4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvdW5peC9hZl91bml4LmM9MjA2MT1zdGF0aWMgdm9pZCBzY21fc3RhdF9kZWwoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxubmV0L3VuaXgvYWZfdW5peC5jLTIwNjctXFx0XFx0YXRvbWljX3N1YihmcC1cXHUwMDNlY291bnQsIFxcdTAwMjZ1LVxcdTAwM2VzY21fc3RhdC5ucl9mZHMpO1xcbm5ldC91bml4L2FmX3VuaXguYzoyMDY4OlxcdFxcdHVuaXhfZGVsX2VkZ2VzKGZwKTtcXG5uZXQvdW5peC9hZl91bml4LmMtMjA2OS1cXHR9XFxuLS1cXG5uZXQvdW5peC9hZl91bml4Lmg9Mjc9dm9pZCB1bml4X2FkZF9lZGdlcyhzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbCwgc3RydWN0IHVuaXhfc29jayAqcmVjZWl2ZXIpO1xcbm5ldC91bml4L2FmX3VuaXguaDoyODp2b2lkIHVuaXhfZGVsX2VkZ2VzKHN0cnVjdCBzY21fZnBfbGlzdCAqZnBsKTtcXG5uZXQvdW5peC9hZl91bml4LmgtMjktdm9pZCB1bml4X3VwZGF0ZV9lZGdlcyhzdHJ1Y3QgdW5peF9zb2NrICpyZWNlaXZlcik7XFxuLS1cXG5uZXQvdW5peC9nYXJiYWdlLmM9MjA1PXZvaWQgdW5peF9hZGRfZWRnZXMoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwsIHN0cnVjdCB1bml4X3NvY2sgKnJlY2VpdmVyKVxcbi0tXFxubmV0L3VuaXgvZ2FyYmFnZS5jLTIzOC1cXG5uZXQvdW5peC9nYXJiYWdlLmM6MjM5OnZvaWQgdW5peF9kZWxfZWRnZXMoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwpXFxubmV0L3VuaXgvZ2FyYmFnZS5jLTI0MC17XFxuLS1cXG5uZXQvdW5peC9nYXJiYWdlLmM9MzEzPXZvaWQgdW5peF9kZXN0cm95X2ZwbChzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbClcXG4tLVxcbm5ldC91bml4L2dhcmJhZ2UuYy0zMTUtXFx0aWYgKGZwbC1cXHUwMDNlaW5mbGlnaHQpXFxubmV0L3VuaXgvZ2FyYmFnZS5jOjMxNjpcXHRcXHR1bml4X2RlbF9lZGdlcyhmcGwpO1xcbm5ldC91bml4L2dhcmJhZ2UuYy0zMTctXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDAwOjU5OjA4LjQxMTg4NDA2MloiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNDg1MDY3OTU3MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBRl9VTklYIEdhcmJhZ2UgQ29sbGVjdGlvbiBQYXRjaCBSZXZpZXcqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRvdWNoaW5nIGB1bml4X2RlbF9lZGdlYCB3aXRoaW4gYG5ldC91bml4L2dhcmJhZ2UuY2AuIFNwZWNpZmljYWxseSwgaXQncyBhZGRpbmcgYGxpc3RfZGVsKFx1MDAyNnZlcnRleC1cdTAwM2VzY2NfZW50cnkpO2AgdW5kZXIgdGhlIGNvbmRpdGlvbiBgIXZlcnRleC1cdTAwM2VvdXRfZGVncmVlYC4gVGhpcyBsb29rcyBsaWtlIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQUZfVU5JWCBnYXJiYWdlIGNvbGxlY3Rpb24gbG9naWMsIHdoaWNoIG1ha2VzIGl0IGEgcHJpbWUgdGFyZ2V0IGZvciBmdXp6aW5nLiBJIG5lZWQgdG8ga2VlcCBhbiBleWUgb24gdGhpcy5cblxuR2l2ZW4gdGhlIGNvbnRleHQsIEkgdGhpbmsgdGhlIGNyaXRpY2FsIGZ1bmN0aW9ucyB0byBwYXkgYXR0ZW50aW9uIHRvIGFyZSBgdW5peF9kZWxfZWRnZXNgLCBgdW5peF9kZXN0cm95X2ZwbGAsIGB1bml4X2FkZF9lZGdlc2AsIGB1bml4X3ByZXBhcmVfZnBsYCwgYW5kIGB1bml4X3VwZGF0ZV9lZGdlc2AuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBhdHRhY2sgdmVjdG9ycyBoZXJlLiBXYWl0LCBgdW5peF9kZWxfZWRnZXNgIGlzIGNhbGxlZCBmcm9tIGBzY21fc3RhdF9kZWxgIGFuZCBgdW5peF9kZXN0cm95X2ZwbGAgLSBpbnRlcmVzdGluZy4gSSBuZWVkIHRvIGZvbGxvdyB0aG9zZSBjYWxsIHBhdGhzIHRvIHNlZSB3aGF0J3MgYmVpbmcgYWZmZWN0ZWQuXG5cbkkgc2hvdWxkIHZlcmlmeSBpZiB0aGUgYFVOSVhgIGNvbmZpZyBpcyBlbmFibGVkLCBiZWNhdXNlIHRoYXQncyBvYnZpb3VzbHkgYSBwcmVyZXF1aXNpdGUgZm9yIGFueSBvZiB0aGlzIHRvIG1hdHRlci4gWWVwLCBmb3VuZCBpdC4gYENPTkZJR19VTklYYCBpcyByZXF1aXJlZC4gSSBuZWVkIHRvIGNoZWNrIGBuZXQvdW5peC9LY29uZmlnYCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIGJ1dCBJJ20gZmVlbGluZyBwcmV0dHkgY29uZmlkZW50IHRoYXQncyB0aGUga2V5LlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MDY4LCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTc3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDAwOjU5OjIzLjI2MjU2NjE5M1oiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDMzODE2NzksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFVOSVhcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3VuaXgvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvdW5peC9LY29uZmlnLTUtXFxubmV0L3VuaXgvS2NvbmZpZzo2OmNvbmZpZyBVTklYXFxubmV0L3VuaXgvS2NvbmZpZy03LVxcdGJvb2wgXFxcIlVuaXggZG9tYWluIHNvY2tldHNcXFwiXFxuLS1cXG5uZXQvdW5peC9LY29uZmlnPTE5PWNvbmZpZ1xcdEFGX1VOSVhfT09CXFxuLS1cXG5uZXQvdW5peC9LY29uZmlnLTI1LVxcbm5ldC91bml4L0tjb25maWc6MjY6Y29uZmlnIFVOSVhfRElBR1xcbm5ldC91bml4L0tjb25maWctMjctXFx0dHJpc3RhdGUgXFxcIlVOSVg6IHNvY2tldCBtb25pdG9yaW5nIGludGVyZmFjZVxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDA6NTk6MjMuMzA1OTUxNjkyWiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjExOTk0NzMzNTM4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIHByZXNlbnRlZCBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKkluaXRpYWwgQ29uZmlndXJhdGlvbiBhbmQgU3ltYm9sIEZvY3VzKipcblxuQWxyaWdodCwgc28gdGhlIHRhc2sgYXQgaGFuZCBpcyBjbGVhcmx5IHJlbGF0ZWQgdG8gVW5peC1zcGVjaWZpYyBmdW5jdGlvbmFsaXR5LCBhbmQgdGhlIGtleSBpcyBgQ09ORklHX1VOSVhgLiAgVGhhdCdzIG15IHN0YXJ0aW5nIHBvaW50OyBpdCdzIHRoZSBlbmFibGluZyBjb25maWd1cmF0aW9uLiAgRnJvbSB0aGVyZSwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHJlbGV2YW50IHBpZWNlcyBvZiBjb2RlLiBNeSBmb2N1cyBpbW1lZGlhdGVseSBzaGlmdHMgdG8gdGhlIHN5bWJvbHM6IGB1bml4X2RlbF9lZGdlc2AgYW5kIGB1bml4X2Rlc3Ryb3lfZnBsYC4gVGhlc2UgYXJlIHRoZSBmdW5jdGlvbnMsIG9yIGF0IGxlYXN0IHRoZSBjb3JlIGFjdGlvbnMsIHRoYXQgSSdsbCBuZWVkIHRvIGRpc3NlY3QgYW5kIHVuZGVyc3RhbmQgaW4gcmVsYXRpb24gdG8gaG93IGBDT05GSUdfVU5JWGAgaXMgZW1wbG95ZWQuIEknbSBhc3N1bWluZyB0aGVzZSBhcmUgbG93LWxldmVsIGZ1bmN0aW9ucyBhbmQgdGhhdCBJIHdpbGwgYmUgYWJsZSB0byBkZXRlcm1pbmUgdGhlIGFyY2hpdGVjdHVyZSBhcm91bmQgdGhlbS5cblxuT25jZSBJJ3ZlIGVzdGFibGlzaGVkIG15IHVuZGVyc3RhbmRpbmcgb2YgaG93IHRoZXNlIHBpZWNlcyBmaXQgdG9nZXRoZXIsIGl0J3MgdGltZSB0byBzZXQtcmVzdWx0cy4gVGhpcyBwcm9iYWJseSBpbnZvbHZlcyBzZXR0aW5nIHVwIHRoZSBwcm9ncmFtIGFuZCBydW5uaW5nIGl0LCBzaW5jZSB0aGlzIGlzIGdlbmVyYWxseSB0aGUgbGFzdCBzdGVwIG9mIHRoZSB0aG91Z2h0IHByb2Nlc3MuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY0MjYsIk91dHB1dFRva2VucyI6OTIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQwMDo1OTozNS4zMDA2ODc3OVoiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc3MDc2ODE5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJVTklYXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidW5peF9kZWxfZWRnZXNcIixcbiAgICBcInVuaXhfZGVzdHJveV9mcGxcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoaXMgcGF0Y2ggbW9kaWZpZXMgdGhlIEFGX1VOSVggZ2FyYmFnZSBjb2xsZWN0b3IgbG9naWMgYnkgZml4aW5nIGEgbGlzdCBkZWxldGlvbiBpbiB1bml4X2RlbF9lZGdlLiBJdCBpcyBmdW5jdGlvbmFsIGNvcmUgbmV0d29ya2luZyBjb2RlIHRoYXQgaXMgcmVhY2hhYmxlIHZpYSBzdGFuZGFyZCBBRl9VTklYIHNvY2tldCBvcGVyYXRpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlVOSVhcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ1bml4X2RlbF9lZGdlc1wiLFxuICAgIFwidW5peF9kZXN0cm95X2ZwbFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhpcyBwYXRjaCBtb2RpZmllcyB0aGUgQUZfVU5JWCBnYXJiYWdlIGNvbGxlY3RvciBsb2dpYyBieSBmaXhpbmcgYSBsaXN0IGRlbGV0aW9uIGluIHVuaXhfZGVsX2VkZ2UuIEl0IGlzIGZ1bmN0aW9uYWwgY29yZSBuZXR3b3JraW5nIGNvZGUgdGhhdCBpcyByZWFjaGFibGUgdmlhIHN0YW5kYXJkIEFGX1VOSVggc29ja2V0IG9wZXJhdGlvbnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowx8xsl[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-04 00:32:08 +0000 UTC FinishedAt: 2026-08-04 00:59:36 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "5aed8f404401bfa1570cf0c3ffed7b752f568e83", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "UNIX" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "5aed8f404401bfa1570cf0c3ffed7b752f568e83", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "UNIX" ], "series_id": "90e09260-a59f-4ce5-a5e7-81287153c62d" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "unix_del_edges", "unix_destroy_fpl" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDAwOjQ3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MTJtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtVTklYJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dW5peF9kZWxfZWRnZXMmIzM0OywKICAgICYjMzQ7dW5peF9kZXN0cm95X2ZwbCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoaXMgcGF0Y2ggbW9kaWZpZXMgdGhlIEFGX1VOSVggZ2FyYmFnZSBjb2xsZWN0b3IgbG9naWMgYnkgZml4aW5nIGEgbGlzdCBkZWxldGlvbiBpbiB1bml4X2RlbF9lZGdlLiBJdCBpcyBmdW5jdGlvbmFsIGNvcmUgbmV0d29ya2luZyBjb2RlIHRoYXQgaXMgcmVhY2hhYmxlIHZpYSBzdGFuZGFyZCBBRl9VTklYIHNvY2tldCBvcGVyYXRpb25zLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDAwOjQ3PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgN2IwYTI2ZTQyMDJlZGRkY2FlYTJhZWI4MzlkYTkwOTFiZmVkMzFjOFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgQXVnIDQgMDA6NDc6MDMgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L3VuaXgvZ2FyYmFnZS5jIGIvbmV0L3VuaXgvZ2FyYmFnZS5jXG5pbmRleCAwNzgzNTU1ZTI1MjY2Li45ZmNhYWY1NWNiYTVkIDEwMDY0NFxuLS0tIGEvbmV0L3VuaXgvZ2FyYmFnZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvdW5peC9nYXJiYWdlLmNcbkBAIC0xODYsNiAmIzQzOzE4Niw3IEBAIHN0YXRpYyB2b2lkIHVuaXhfZGVsX2VkZ2Uoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwsIHN0cnVjdCB1bml4X2VkZ2UgKmVkZ2UpXG4gXHRpZiAoIXZlcnRleC1cdTAwM2VvdXRfZGVncmVlKSB7XG4gXHRcdGVkZ2UtXHUwMDNlcHJlZGVjZXNzb3ItXHUwMDNldmVydGV4ID0gTlVMTDtcbiBcdFx0bGlzdF9tb3ZlX3RhaWwoXHUwMDI2dmVydGV4LVx1MDAzZWVudHJ5LCBcdTAwMjZmcGwtXHUwMDNldmVydGljZXMpO1xuJiM0MztcdFx0bGlzdF9kZWwoXHUwMDI2dmVydGV4LVx1MDAzZXNjY19lbnRyeSk7XG4gXHR9XG4gfVxuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDAwOjQ3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjEybTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VU5JWCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3VuaXhfZGVsX2VkZ2VzJiMzNDssCiAgICAmIzM0O3VuaXhfZGVzdHJveV9mcGwmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGlzIHBhdGNoIG1vZGlmaWVzIHRoZSBBRl9VTklYIGdhcmJhZ2UgY29sbGVjdG9yIGxvZ2ljIGJ5IGZpeGluZyBhIGxpc3QgZGVsZXRpb24gaW4gdW5peF9kZWxfZWRnZS4gSXQgaXMgZnVuY3Rpb25hbCBjb3JlIG5ldHdvcmtpbmcgY29kZSB0aGF0IGlzIHJlYWNoYWJsZSB2aWEgc3RhbmRhcmQgQUZfVU5JWCBzb2NrZXQgb3BlcmF0aW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDdiMGEyNmU0MjAyZWRkZGNhZWEyYWViODM5ZGE5MDkxYmZlZDMxYzgKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEF1ZyA0IDAwOjQ3OjAzIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbmV0L3VuaXgvZ2FyYmFnZS5jIGIvbmV0L3VuaXgvZ2FyYmFnZS5jCmluZGV4IDA3ODM1NTVlMjUyNjYuLjlmY2FhZjU1Y2JhNWQgMTAwNjQ0Ci0tLSBhL25ldC91bml4L2dhcmJhZ2UuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvdW5peC9nYXJiYWdlLmMKQEAgLTE4Niw2ICYjNDM7MTg2LDcgQEAgc3RhdGljIHZvaWQgdW5peF9kZWxfZWRnZShzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbCwgc3RydWN0IHVuaXhfZWRnZSAqZWRnZSkKIAlpZiAoIXZlcnRleC0mZ3Q7b3V0X2RlZ3JlZSkgewogCQllZGdlLSZndDtwcmVkZWNlc3Nvci0mZ3Q7dmVydGV4ID0gTlVMTDsKIAkJbGlzdF9tb3ZlX3RhaWwoJmFtcDt2ZXJ0ZXgtJmd0O2VudHJ5LCAmYW1wO2ZwbC0mZ3Q7dmVydGljZXMpOwomIzQzOwkJbGlzdF9kZWwoJmFtcDt2ZXJ0ZXgtJmd0O3NjY19lbnRyeSk7CiAJfQogfQogCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDAwOjQ3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xMG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDI2CgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogOTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhpczoKCioqQW5hbHl6aW5nIGEgVW5peCBEb21haW4gU29ja2V0IEdhcmJhZ2UgQ29sbGVjdGlvbiBQYXRjaCoqCgpBbHJpZ2h0LCBzbyBhIHBhdGNoIGhhcyBoaXQgbXkgZGVzaywgYW5kIGl0JiMzOTtzIHRvdWNoaW5nIGBuZXQvdW5peC9nYXJiYWdlLmNgLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIGludHJvZHVjaW5nIGBsaXN0X2RlbCgmYW1wO3ZlcnRleC0mZ3Q7c2NjX2VudHJ5KTtgIHdpdGhpbiB0aGUgYHVuaXhfZGVsX2VkZ2VgIGZ1bmN0aW9uLiBUaGF0IGltbWVkaWF0ZWx5IGZsYWdzIHRoaXMgYXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUgVU5JWCBkb21haW4gc29ja2V0IGdhcmJhZ2UgY29sbGVjdG9yLiBUaGlzIGlzIGludGVyZXN0aW5nLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIHRoaXMgYWRkaXRpb24uCgpNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZGl2ZSBzdHJhaWdodCBpbnRvIHRoZSBjb2RlIGFuZCBzZWUgZXhhY3RseSB3aGF0JiMzOTtzIGhhcHBlbmluZyB3aXRoaW4gYHVuaXhfZGVsX2VkZ2VgLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcHVycG9zZSBvZiBgdmVydGV4LSZndDtzY2NfZW50cnlgIGluIHRoZSBiaWdnZXIgcGljdHVyZSB0byBmdWxseSBncmFzcCB0aGUgY2hhbmdlLiBXaGF0IGlzIHRoZSBzdGF0ZSBvZiB0aGUgc3lzdGVtIHdoaWNoIHRoaXMgY2hhbmdlIGlzIGJlaW5nIG1hZGU/CgpMZXQmIzM5O3MgZmlyZSB1cCBgZ3JlcHBlcmAgYW5kIHNlZSB3aGF0IHRoZSB3aWRlciBwaWN0dXJlIGlzIGZvciBgdW5peF9kZWxfZWRnZWAuIFRoZSBzZWFyY2ggc2hvdWxkIHF1aWNrbHkgcmV2ZWFsIHRoZSBzdXJyb3VuZGluZyBjb2RlIGFuZCBob3cgdGhpcyBmdW5jdGlvbiBmaXRzIGludG8gdGhlIG92ZXJhbGwgZ2FyYmFnZSBjb2xsZWN0aW9uIHByb2Nlc3MuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMDA6NTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dW5peF9kZWxfZWRnZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC91bml4L2dhcmJhZ2UuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvdW5peC9nYXJiYWdlLmM9MTU0PXN0YXRpYyB2b2lkIHVuaXhfYWRkX2VkZ2Uoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwsIHN0cnVjdCB1bml4X2VkZ2UgKmVkZ2UpXG4tLVxubmV0L3VuaXgvZ2FyYmFnZS5jLTE3NS1cbm5ldC91bml4L2dhcmJhZ2UuYzoxNzY6c3RhdGljIHZvaWQgdW5peF9kZWxfZWRnZShzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbCwgc3RydWN0IHVuaXhfZWRnZSAqZWRnZSlcbm5ldC91bml4L2dhcmJhZ2UuYy0xNzcte1xuLS1cbm5ldC91bml4L2dhcmJhZ2UuYz0yMDU9dm9pZCB1bml4X2FkZF9lZGdlcyhzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbCwgc3RydWN0IHVuaXhfc29jayAqcmVjZWl2ZXIpXG4tLVxubmV0L3VuaXgvZ2FyYmFnZS5jLTIzOC1cbm5ldC91bml4L2dhcmJhZ2UuYzoyMzk6dm9pZCB1bml4X2RlbF9lZGdlcyhzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbClcbm5ldC91bml4L2dhcmJhZ2UuYy0yNDAte1xuLS1cbm5ldC91bml4L2dhcmJhZ2UuYy0yNTEtXG5uZXQvdW5peC9nYXJiYWdlLmM6MjUyOlx0XHR1bml4X2RlbF9lZGdlKGZwbCwgZWRnZSk7XG5uZXQvdW5peC9nYXJiYWdlLmMtMjUzLVx0fSB3aGlsZSAoaSBcdTAwM2MgZnBsLVx1MDAzZWNvdW50X3VuaXgpO1xuLS1cbm5ldC91bml4L2dhcmJhZ2UuYz0zMTM9dm9pZCB1bml4X2Rlc3Ryb3lfZnBsKHN0cnVjdCBzY21fZnBfbGlzdCAqZnBsKVxuLS1cbm5ldC91bml4L2dhcmJhZ2UuYy0zMTUtXHRpZiAoZnBsLVx1MDAzZWluZmxpZ2h0KVxubmV0L3VuaXgvZ2FyYmFnZS5jOjMxNjpcdFx0dW5peF9kZWxfZWRnZXMoZnBsKTtcbm5ldC91bml4L2dhcmJhZ2UuYy0zMTctXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMDA6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjY1MgoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDk2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGFuYWx5c2lzIG9mIHRoZSBjb2RlIGNoYW5nZSwgdGhpbmtpbmcgdGhyb3VnaCB0aGUgcHJvY2VzczoKCioqRGl2aW5nIGludG8gdGhlIEFGX1VOSVggR2FyYmFnZSBDb2xsZWN0aW9uKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBgbGlzdF9kZWwoJmFtcDt2ZXJ0ZXgtJmd0O3NjY19lbnRyeSk7YCBpbnRvIHRoZSBgdW5peF9kZWxfZWRnZWAgZnVuY3Rpb24gd2l0aGluIGBuZXQvdW5peC9nYXJiYWdlLmNgLiBSaWdodCBhd2F5LCB0aGF0IHRlbGxzIG1lIHdlJiMzOTtyZSB0d2Vha2luZyB0aGUgQUZfVU5JWCBnYXJiYWdlIGNvbGxlY3Rpb24gc3lzdGVtLiAgSSBrbm93IGB1bml4X2RlbF9lZGdlYCBpcyBwYXJ0IG9mIGhvdyB0aGUga2VybmVsIG1hbmFnZXMgdGhvc2UgVU5JWCBkb21haW4gc29ja2V0IGNvbm5lY3Rpb25zIHRoYXQgaGF2ZSBiZWVuIG9ycGhhbmVkIG9yIGFyZSBubyBsb25nZXIgdmFsaWQuICBXZSBhcmUgd29ya2luZyB0byBmcmVlIHVwIHJlc291cmNlcy4KCk5vdywgbGV0JiMzOTtzIHNlZSB3aGVyZSBgdW5peF9kZWxfZWRnZWAgaXMgY2FsbGVkLiBJdCYjMzk7cyBjYWxsZWQgYnkgYHVuaXhfZGVsX2VkZ2VzYCwgd2hpY2ggSSBrbm93IGlzIGNhbGxlZCBieSBib3RoIGB1bml4X2Rlc3Ryb3lfZnBsYCBhbmQgYHVuaXhfZ2NgLiBUaGF0IG1lYW5zIHRoaXMgY2hhbmdlIGltcGFjdHMgaG93IHdlIGhhbmRsZSB0aGUgRmlsZSBQb2ludGVyIExpc3Qgc3BlY2lmaWNhbGx5LCBhbmQgdGhlIGdlbmVyYWwgZ2FyYmFnZSBjb2xsZWN0aW9uLgoKQWxyaWdodCwgbGV0JiMzOTtzIHF1aWNrbHkgcmV2aWV3IHRoZSBpbXBsZW1lbnRhdGlvbiBmb3IgYHVuaXhfZGVsX2VkZ2VzYCBhbmQgc2VlIGhvdyBpdCB3b3Jrcy4gVGhhdCB3aWxsIGxpa2VseSBnaXZlIHVzIHRoZSBjb250ZXh0IHdlIG5lZWQgdG8gZnVsbHkgdW5kZXJzdGFuZCB0aGUgcHVycG9zZSBvZiBhZGRpbmcgdGhpcyBwYXJ0aWN1bGFyIGBsaXN0X2RlbGAgY2FsbC4gIFRoaXMgcmVtb3ZhbCBvZiB0aGUgYHNjY19lbnRyeWAgbWlnaHQgYmUgYSBjcml0aWNhbCBzdGVwIGluIGJyZWFraW5nIGEgY2lyY3VsYXIgZGVwZW5kZW5jeSBvciBtYW5hZ2luZyBhIGxpc3QgZHVyaW5nIHRoZSBnYXJiYWdlIGNvbGxlY3Rpb24gY3ljbGUuIEdvdHRhIGdldCBhIGJldHRlciBmZWVsIGZvciBob3cgdGhlc2Ugc29ja2V0IGNvbm5lY3Rpb25zIGFuZCB0aGVpciBlZGdlcyBhcmUgb3JnYW5pemVkIGFuZCB0cmFja2VkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDAwOjU3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3VuaXhfZGVsX2VkZ2VzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3VuaXgvZ2FyYmFnZS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC91bml4L2dhcmJhZ2UuYz0yMDU9dm9pZCB1bml4X2FkZF9lZGdlcyhzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbCwgc3RydWN0IHVuaXhfc29jayAqcmVjZWl2ZXIpXG4tLVxubmV0L3VuaXgvZ2FyYmFnZS5jLTIzOC1cbm5ldC91bml4L2dhcmJhZ2UuYzoyMzk6dm9pZCB1bml4X2RlbF9lZGdlcyhzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbClcbm5ldC91bml4L2dhcmJhZ2UuYy0yNDAte1xuLS1cbm5ldC91bml4L2dhcmJhZ2UuYz0zMTM9dm9pZCB1bml4X2Rlc3Ryb3lfZnBsKHN0cnVjdCBzY21fZnBfbGlzdCAqZnBsKVxuLS1cbm5ldC91bml4L2dhcmJhZ2UuYy0zMTUtXHRpZiAoZnBsLVx1MDAzZWluZmxpZ2h0KVxubmV0L3VuaXgvZ2FyYmFnZS5jOjMxNjpcdFx0dW5peF9kZWxfZWRnZXMoZnBsKTtcbm5ldC91bml4L2dhcmJhZ2UuYy0zMTctXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMDA6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzE4NQoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDEzMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEFGX1VOSVggR2FyYmFnZSBDb2xsZWN0b3IgTW9kaWZpY2F0aW9uKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgZGlnZ2luZyBpbnRvIGBuZXQvdW5peC9nYXJiYWdlLmNgLCBzcGVjaWZpY2FsbHkgdGhlIGB1bml4X2RlbF9lZGdlYCBmdW5jdGlvbi4gSXQgc2VlbXMgdG8gYmUgaW50cm9kdWNpbmcgYSBgbGlzdF9kZWwoJmFtcDt2ZXJ0ZXgtJmd0O3NjY19lbnRyeSk7YCBjYWxsIHVuZGVyIHRoZSBjb25kaXRpb24gdGhhdCBgdmVydGV4LSZndDtvdXRfZGVncmVlYCBpcyB6ZXJvLiBUaGF0JiMzOTtzIGltbWVkaWF0ZWx5IGludGVyZXN0aW5nOyBpdCYjMzk7cyBkZWZpbml0ZWx5IGEgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aGluIHRoZSBnYXJiYWdlIGNvbGxlY3RvciBmb3IgQUZfVU5JWCBzb2NrZXRzLiBUaGlzIGlzIGEgdmVyeSBsaWtlbHkgY2FuZGlkYXRlIGZvciBmdXp6aW5nLCBnaXZlbiBpdHMgcm9sZSBpbiBtZW1vcnkgbWFuYWdlbWVudC4KCk15IGluaXRpYWwgdGhvdWdodHMgYXJlIHRvIGZvY3VzIGZ1enppbmcgZWZmb3J0cyBvbiBgdW5peF9kZWxfZWRnZXNgIGFuZCBgdW5peF9kZXN0cm95X2ZwbGAuIEhvd2V2ZXIsIEkgbmVlZCB0byBjb25maXJtIHdoZXRoZXIgYHVuaXhfZGVzdHJveV9mcGxgIGlzIG9ubHkgdXNlZCBsb2NhbGx5LiBJdCYjMzk7cyBvZnRlbiB0aGUgY2FzZSB0aGF0IHNlZW1pbmdseSBpc29sYXRlZCBmdW5jdGlvbnMgbGlrZSB0aGVzZSBhcmUgZXhwb3NlZCBmb3IgdXNlIGVsc2V3aGVyZS4gVGltZSB0byBkbyBhIHF1aWNrIGNvZGUgZGl2ZSB0byBkZXRlcm1pbmUgdGhlIGNhbGwgc2l0ZXMgZm9yIGJvdGggZnVuY3Rpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDAwOjU3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3VuaXhfZGVzdHJveV9mcGwmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvdW5peC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3VuaXgvYWZfdW5peC5jPTE5NTA9c3RhdGljIHZvaWQgdW5peF9kZXRhY2hfZmRzKHN0cnVjdCBzY21fY29va2llICpzY20sIHN0cnVjdCBza19idWZmICpza2IpXG4tLVxubmV0L3VuaXgvYWZfdW5peC5jLTE5NTQtXG5uZXQvdW5peC9hZl91bml4LmM6MTk1NTpcdHVuaXhfZGVzdHJveV9mcGwoc2NtLVx1MDAzZWZwKTtcbm5ldC91bml4L2FmX3VuaXguYy0xOTU2LX1cbi0tXG5uZXQvdW5peC9hZl91bml4Lmg9MzA9aW50IHVuaXhfcHJlcGFyZV9mcGwoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwpO1xubmV0L3VuaXgvYWZfdW5peC5oOjMxOnZvaWQgdW5peF9kZXN0cm95X2ZwbChzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbCk7XG5uZXQvdW5peC9hZl91bml4LmgtMzItdm9pZCB1bml4X3BlZWtfZnBsKHN0cnVjdCBzY21fZnBfbGlzdCAqZnBsKTtcbi0tXG5uZXQvdW5peC9nYXJiYWdlLmM9MjgzPWludCB1bml4X3ByZXBhcmVfZnBsKHN0cnVjdCBzY21fZnBfbGlzdCAqZnBsKVxuLS1cbm5ldC91bml4L2dhcmJhZ2UuYy0zMTItXG5uZXQvdW5peC9nYXJiYWdlLmM6MzEzOnZvaWQgdW5peF9kZXN0cm95X2ZwbChzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbClcbm5ldC91bml4L2dhcmJhZ2UuYy0zMTQte1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDAwOjU3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwNDEKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiAxMDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBVbml4IERvbWFpbiBTb2NrZXQgRmlsZSBEZXNjcmlwdG9yIERlc3RydWN0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gZGl2aW5nIGludG8gdGhpcyBgbmV0L3VuaXhgIGNvZGUsIHNwZWNpZmljYWxseSB0aGUgZGVzdHJ1Y3Rpb24gb2YgZmlsZSBwb2ludGVycyByZWxhdGVkIHRvIFVuaXggZG9tYWluIHNvY2tldHMuIEkgc2VlIHRoYXQgYHVuaXhfZGVzdHJveV9mcGxgIGlzIGNhbGxlZCBkaXJlY3RseSBmcm9tIGB1bml4X2RldGFjaF9mZHNgIGluIGBhZl91bml4LmNgLiBUaGF0JiMzOTtzIG15IHN0YXJ0aW5nIHBvaW50LiBJJiMzOTttIGdvaW5nIHRvIGtlZXAgYHVuaXhfZGVzdHJveV9mcGxgIGFuZCBgdW5peF9kZWxfZWRnZXNgIGFzIG15IHByaW1hcnkgZm9jdXMgc3ltYm9scyBmb3Igbm93IGJlY2F1c2UgdGhleSBzZWVtIGNlbnRyYWwgdG8gdGhpcyBkZXN0cnVjdGlvbiBwcm9jZXNzLiBJIHdhcyBpbml0aWFsbHkgZ29pbmcgdG8gaW5jbHVkZSBgdW5peF9kZWxfZWRnZWAsIGJ1dCBpdCBsb29rcyBzdGF0aWMsIHNvIEkgd2lsbCBpZ25vcmUgaXQuIEhhbmcgb24sIGRpZCBJIHNlZSBgdW5peF9kZWxfZWRnZXNgIGNvcnJlY3RseT8gSXQgaXMgbm90IHN0YXRpYyEgQmV0dGVyIGRvdWJsZS1jaGVjayB0aGF0IGluIGBuZXQvdW5peC9nYXJiYWdlLmNgIHRvIGJlIGNlcnRhaW4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDAwOjU3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZvaWQgdW5peF9kZWxfZWRnZXMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvdW5peC9nYXJiYWdlLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3VuaXgvZ2FyYmFnZS5jPTIwNT12b2lkIHVuaXhfYWRkX2VkZ2VzKHN0cnVjdCBzY21fZnBfbGlzdCAqZnBsLCBzdHJ1Y3QgdW5peF9zb2NrICpyZWNlaXZlcilcbi0tXG5uZXQvdW5peC9nYXJiYWdlLmMtMjM4LVxubmV0L3VuaXgvZ2FyYmFnZS5jOjIzOTp2b2lkIHVuaXhfZGVsX2VkZ2VzKHN0cnVjdCBzY21fZnBfbGlzdCAqZnBsKVxubmV0L3VuaXgvZ2FyYmFnZS5jLTI0MC17XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDAwOjU3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwNDEKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAzMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBBRl9VTklYIEdhcmJhZ2UgQ29sbGVjdGlvbiBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIG1vZGlmeWluZyBgdW5peF9kZWxfZWRnZWAgd2l0aGluIGBuZXQvdW5peC9nYXJiYWdlLmNgLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIGFkZGluZyBgbGlzdF9kZWwoJmFtcDt2ZXJ0ZXgtJmd0O3NjY19lbnRyeSk7YCB1bmRlciB0aGUgY29uZGl0aW9uIHRoYXQgYHZlcnRleC0mZ3Q7b3V0X2RlZ3JlZWAgaXMgemVyby4gVGhhdCYjMzk7cyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHJlbGF0ZWQgdG8gQUZfVU5JWCBnYXJiYWdlIGNvbGxlY3Rpb24g4oCTIGl0JiMzOTtzIGRlZmluaXRlbHkgc29tZXRoaW5nIHRvIHBheSBhdHRlbnRpb24gdG8uCgpMZXQmIzM5O3MgdHJhY2UgdGhlIGNhbGwgY2hhaW4uIGB1bml4X2RlbF9lZGdlYCBpcyBjYWxsZWQgYnkgYHVuaXhfZGVsX2VkZ2VzYCwgd2hpY2gsIGluIHR1cm4sIGlzIGNhbGxlZCBieSBgdW5peF9kZXN0cm95X2ZwbGAuIFRoZW4gYHVuaXhfZGVzdHJveV9mcGxgIGlzIGNhbGxlZCBieSBgdW5peF9kZXRhY2hfZmRzYCBpbiBgbmV0L3VuaXgvYWZfdW5peC5jYC4gVGhpcyBpcyBhIGNsZWFyIHBhdGgsIHNvIGl0JiMzOTtzIGRlZmluaXRlbHkgcmVhY2hhYmxlIGNvZGUgYW5kIGEgcHJpbWUgY2FuZGlkYXRlIGZvciBmdXp6aW5nLgoKTXkgaW5pdGlhbCB0aG91Z2h0IHdhcyB0byBmb2N1cyBvbiBgdW5peF9kZWxfZWRnZWAgZGlyZWN0bHksIGJ1dCB3YWl0Li4uIGl0JiMzOTtzIGEgc3RhdGljIGZ1bmN0aW9uLiBTbywgSSBuZWVkIHRvIGxvb2sgZnVydGhlciB1cCB0aGUgY2FsbCBjaGFpbiBhdCBzb21ldGhpbmcgdGhhdCYjMzk7cyBub3Qgc3RhdGljLiBUaGF0IG1lYW5zIGB1bml4X2RlbF9lZGdlc2Agb3IgYHVuaXhfZGVzdHJveV9mcGxgLgoKTGV0JiMzOTtzIGRvdWJsZS1jaGVjayBpZiBgdW5peF9kZWxfZWRnZXNgIGlzIGV4cG9ydGVkIG9yIG5vbi1zdGF0aWMuIExvb2tpbmcgaW4gYG5ldC91bml4L2dhcmJhZ2UuY2AsIGl0JiMzOTtzIGRlZmluZWQgYXMgYHZvaWQgdW5peF9kZWxfZWRnZXMoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwpYC4gT2theSwgdGhhdCAqbG9va3MqIG5vbi1zdGF0aWMsIGJ1dCBJIG5lZWQgdG8gYmUgc3VyZS4gSXQmIzM5O3Mgbm90IGltbWVkaWF0ZWx5IG9idmlvdXMgaWYgaXQmIzM5O3MgaW4gYSBoZWFkZXIgb3Igbm90LiBMZXQmIzM5O3MgbWFrZSBzdXJlIGl0JiMzOTtzIG5vdCBkZWNsYXJlZCBzdGF0aWMgdXNpbmcgYGdyZXBgLgoKQWxyaWdodCwgYSBxdWljayBzZWFyY2ggb2YgYG5ldC91bml4L2dhcmJhZ2UuY2AgY29uZmlybXM6IGB2b2lkIHVuaXhfZGVsX2VkZ2VzKHN0cnVjdCBzY21fZnBfbGlzdCAqZnBsKWAuIEl0JiMzOTtzIGRlZmluaXRlbHkgbm90IHN0YXRpYyBpbiBpdHMgZGVjbGFyYXRpb24uIEJ1dCBpcyBpdCBpbiBhIGhlYWRlcj8gSSBzaG91bGQgY2hlY2sgYG5ldC91bml4L2FmX3VuaXguaGAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDAwOjU5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3VuaXhfZGVsX2VkZ2VzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3VuaXgvYWZfdW5peC5oJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC91bml4L2FmX3VuaXguaD0yNz12b2lkIHVuaXhfYWRkX2VkZ2VzKHN0cnVjdCBzY21fZnBfbGlzdCAqZnBsLCBzdHJ1Y3QgdW5peF9zb2NrICpyZWNlaXZlcik7XG5uZXQvdW5peC9hZl91bml4Lmg6Mjg6dm9pZCB1bml4X2RlbF9lZGdlcyhzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbCk7XG5uZXQvdW5peC9hZl91bml4LmgtMjktdm9pZCB1bml4X3VwZGF0ZV9lZGdlcyhzdHJ1Y3QgdW5peF9zb2NrICpyZWNlaXZlcik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDAwOjU5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ2MTQKCQkJCQkJCW91dHB1dDogMjkKCQkJCQkJCXRob3VnaHRzOiAwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAwMDo1OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt1bml4X2RlbF9lZGdlcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC91bml4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvdW5peC9hZl91bml4LmM9MjA2MT1zdGF0aWMgdm9pZCBzY21fc3RhdF9kZWwoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbm5ldC91bml4L2FmX3VuaXguYy0yMDY3LVx0XHRhdG9taWNfc3ViKGZwLVx1MDAzZWNvdW50LCBcdTAwMjZ1LVx1MDAzZXNjbV9zdGF0Lm5yX2Zkcyk7XG5uZXQvdW5peC9hZl91bml4LmM6MjA2ODpcdFx0dW5peF9kZWxfZWRnZXMoZnApO1xubmV0L3VuaXgvYWZfdW5peC5jLTIwNjktXHR9XG4tLVxubmV0L3VuaXgvYWZfdW5peC5oPTI3PXZvaWQgdW5peF9hZGRfZWRnZXMoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwsIHN0cnVjdCB1bml4X3NvY2sgKnJlY2VpdmVyKTtcbm5ldC91bml4L2FmX3VuaXguaDoyODp2b2lkIHVuaXhfZGVsX2VkZ2VzKHN0cnVjdCBzY21fZnBfbGlzdCAqZnBsKTtcbm5ldC91bml4L2FmX3VuaXguaC0yOS12b2lkIHVuaXhfdXBkYXRlX2VkZ2VzKHN0cnVjdCB1bml4X3NvY2sgKnJlY2VpdmVyKTtcbi0tXG5uZXQvdW5peC9nYXJiYWdlLmM9MjA1PXZvaWQgdW5peF9hZGRfZWRnZXMoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwsIHN0cnVjdCB1bml4X3NvY2sgKnJlY2VpdmVyKVxuLS1cbm5ldC91bml4L2dhcmJhZ2UuYy0yMzgtXG5uZXQvdW5peC9nYXJiYWdlLmM6MjM5OnZvaWQgdW5peF9kZWxfZWRnZXMoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwpXG5uZXQvdW5peC9nYXJiYWdlLmMtMjQwLXtcbi0tXG5uZXQvdW5peC9nYXJiYWdlLmM9MzEzPXZvaWQgdW5peF9kZXN0cm95X2ZwbChzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbClcbi0tXG5uZXQvdW5peC9nYXJiYWdlLmMtMzE1LVx0aWYgKGZwbC1cdTAwM2VpbmZsaWdodClcbm5ldC91bml4L2dhcmJhZ2UuYzozMTY6XHRcdHVuaXhfZGVsX2VkZ2VzKGZwbCk7XG5uZXQvdW5peC9nYXJiYWdlLmMtMzE3LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAwMDo1OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MDY4CgkJCQkJCQlvdXRwdXQ6IDI4CgkJCQkJCQl0aG91Z2h0czogMTc3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFGX1VOSVggR2FyYmFnZSBDb2xsZWN0aW9uIFBhdGNoIFJldmlldyoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRvdWNoaW5nIGB1bml4X2RlbF9lZGdlYCB3aXRoaW4gYG5ldC91bml4L2dhcmJhZ2UuY2AuIFNwZWNpZmljYWxseSwgaXQmIzM5O3MgYWRkaW5nIGBsaXN0X2RlbCgmYW1wO3ZlcnRleC0mZ3Q7c2NjX2VudHJ5KTtgIHVuZGVyIHRoZSBjb25kaXRpb24gYCF2ZXJ0ZXgtJmd0O291dF9kZWdyZWVgLiBUaGlzIGxvb2tzIGxpa2UgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBBRl9VTklYIGdhcmJhZ2UgY29sbGVjdGlvbiBsb2dpYywgd2hpY2ggbWFrZXMgaXQgYSBwcmltZSB0YXJnZXQgZm9yIGZ1enppbmcuIEkgbmVlZCB0byBrZWVwIGFuIGV5ZSBvbiB0aGlzLgoKR2l2ZW4gdGhlIGNvbnRleHQsIEkgdGhpbmsgdGhlIGNyaXRpY2FsIGZ1bmN0aW9ucyB0byBwYXkgYXR0ZW50aW9uIHRvIGFyZSBgdW5peF9kZWxfZWRnZXNgLCBgdW5peF9kZXN0cm95X2ZwbGAsIGB1bml4X2FkZF9lZGdlc2AsIGB1bml4X3ByZXBhcmVfZnBsYCwgYW5kIGB1bml4X3VwZGF0ZV9lZGdlc2AuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBhdHRhY2sgdmVjdG9ycyBoZXJlLiBXYWl0LCBgdW5peF9kZWxfZWRnZXNgIGlzIGNhbGxlZCBmcm9tIGBzY21fc3RhdF9kZWxgIGFuZCBgdW5peF9kZXN0cm95X2ZwbGAgLSBpbnRlcmVzdGluZy4gSSBuZWVkIHRvIGZvbGxvdyB0aG9zZSBjYWxsIHBhdGhzIHRvIHNlZSB3aGF0JiMzOTtzIGJlaW5nIGFmZmVjdGVkLgoKSSBzaG91bGQgdmVyaWZ5IGlmIHRoZSBgVU5JWGAgY29uZmlnIGlzIGVuYWJsZWQsIGJlY2F1c2UgdGhhdCYjMzk7cyBvYnZpb3VzbHkgYSBwcmVyZXF1aXNpdGUgZm9yIGFueSBvZiB0aGlzIHRvIG1hdHRlci4gWWVwLCBmb3VuZCBpdC4gYENPTkZJR19VTklYYCBpcyByZXF1aXJlZC4gSSBuZWVkIHRvIGNoZWNrIGBuZXQvdW5peC9LY29uZmlnYCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIGJ1dCBJJiMzOTttIGZlZWxpbmcgcHJldHR5IGNvbmZpZGVudCB0aGF0JiMzOTtzIHRoZSBrZXkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDAwOjU5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBVTklYJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3VuaXgvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvdW5peC9LY29uZmlnLTUtXG5uZXQvdW5peC9LY29uZmlnOjY6Y29uZmlnIFVOSVhcbm5ldC91bml4L0tjb25maWctNy1cdGJvb2wgXCYjMzQ7VW5peCBkb21haW4gc29ja2V0c1wmIzM0O1xuLS1cbm5ldC91bml4L0tjb25maWc9MTk9Y29uZmlnXHRBRl9VTklYX09PQlxuLS1cbm5ldC91bml4L0tjb25maWctMjUtXG5uZXQvdW5peC9LY29uZmlnOjI2OmNvbmZpZyBVTklYX0RJQUdcbm5ldC91bml4L0tjb25maWctMjctXHR0cmlzdGF0ZSBcJiMzNDtVTklYOiBzb2NrZXQgbW9uaXRvcmluZyBpbnRlcmZhY2VcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMDA6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjQyNgoJCQkJCQkJb3V0cHV0OiA5MgoJCQkJCQkJdGhvdWdodHM6IDQwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqSW5pdGlhbCBDb25maWd1cmF0aW9uIGFuZCBTeW1ib2wgRm9jdXMqKgoKQWxyaWdodCwgc28gdGhlIHRhc2sgYXQgaGFuZCBpcyBjbGVhcmx5IHJlbGF0ZWQgdG8gVW5peC1zcGVjaWZpYyBmdW5jdGlvbmFsaXR5LCBhbmQgdGhlIGtleSBpcyBgQ09ORklHX1VOSVhgLiAgVGhhdCYjMzk7cyBteSBzdGFydGluZyBwb2ludDsgaXQmIzM5O3MgdGhlIGVuYWJsaW5nIGNvbmZpZ3VyYXRpb24uICBGcm9tIHRoZXJlLCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcmVsZXZhbnQgcGllY2VzIG9mIGNvZGUuIE15IGZvY3VzIGltbWVkaWF0ZWx5IHNoaWZ0cyB0byB0aGUgc3ltYm9sczogYHVuaXhfZGVsX2VkZ2VzYCBhbmQgYHVuaXhfZGVzdHJveV9mcGxgLiBUaGVzZSBhcmUgdGhlIGZ1bmN0aW9ucywgb3IgYXQgbGVhc3QgdGhlIGNvcmUgYWN0aW9ucywgdGhhdCBJJiMzOTtsbCBuZWVkIHRvIGRpc3NlY3QgYW5kIHVuZGVyc3RhbmQgaW4gcmVsYXRpb24gdG8gaG93IGBDT05GSUdfVU5JWGAgaXMgZW1wbG95ZWQuIEkmIzM5O20gYXNzdW1pbmcgdGhlc2UgYXJlIGxvdy1sZXZlbCBmdW5jdGlvbnMgYW5kIHRoYXQgSSB3aWxsIGJlIGFibGUgdG8gZGV0ZXJtaW5lIHRoZSBhcmNoaXRlY3R1cmUgYXJvdW5kIHRoZW0uCgpPbmNlIEkmIzM5O3ZlIGVzdGFibGlzaGVkIG15IHVuZGVyc3RhbmRpbmcgb2YgaG93IHRoZXNlIHBpZWNlcyBmaXQgdG9nZXRoZXIsIGl0JiMzOTtzIHRpbWUgdG8gc2V0LXJlc3VsdHMuIFRoaXMgcHJvYmFibHkgaW52b2x2ZXMgc2V0dGluZyB1cCB0aGUgcHJvZ3JhbSBhbmQgcnVubmluZyBpdCwgc2luY2UgdGhpcyBpcyBnZW5lcmFsbHkgdGhlIGxhc3Qgc3RlcCBvZiB0aGUgdGhvdWdodCBwcm9jZXNzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAwMDo1OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VU5JWCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3VuaXhfZGVsX2VkZ2VzJiMzNDssCiAgICAmIzM0O3VuaXhfZGVzdHJveV9mcGwmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGlzIHBhdGNoIG1vZGlmaWVzIHRoZSBBRl9VTklYIGdhcmJhZ2UgY29sbGVjdG9yIGxvZ2ljIGJ5IGZpeGluZyBhIGxpc3QgZGVsZXRpb24gaW4gdW5peF9kZWxfZWRnZS4gSXQgaXMgZnVuY3Rpb25hbCBjb3JlIG5ldHdvcmtpbmcgY29kZSB0aGF0IGlzIHJlYWNoYWJsZSB2aWEgc3RhbmRhcmQgQUZfVU5JWCBzb2NrZXQgb3BlcmF0aW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VU5JWCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3VuaXhfZGVsX2VkZ2VzJiMzNDssCiAgICAmIzM0O3VuaXhfZGVzdHJveV9mcGwmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGlzIHBhdGNoIG1vZGlmaWVzIHRoZSBBRl9VTklYIGdhcmJhZ2UgY29sbGVjdG9yIGxvZ2ljIGJ5IGZpeGluZyBhIGxpc3QgZGVsZXRpb24gaW4gdW5peF9kZWxfZWRnZS4gSXQgaXMgZnVuY3Rpb25hbCBjb3JlIG5ldHdvcmtpbmcgY29kZSB0aGF0IGlzIHJlYWNoYWJsZSB2aWEgc3RhbmRhcmQgQUZfVU5JWCBzb2NrZXQgb3BlcmF0aW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDAwOjQ3OjA0LjE2NDU1NTE5WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzUxMjEzMjIxNTQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlVOSVhcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ1bml4X2RlbF9lZGdlc1wiLFxuICAgIFwidW5peF9kZXN0cm95X2ZwbFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhpcyBwYXRjaCBtb2RpZmllcyB0aGUgQUZfVU5JWCBnYXJiYWdlIGNvbGxlY3RvciBsb2dpYyBieSBmaXhpbmcgYSBsaXN0IGRlbGV0aW9uIGluIHVuaXhfZGVsX2VkZ2UuIEl0IGlzIGZ1bmN0aW9uYWwgY29yZSBuZXR3b3JraW5nIGNvZGUgdGhhdCBpcyByZWFjaGFibGUgdmlhIHN0YW5kYXJkIEFGX1VOSVggc29ja2V0IG9wZXJhdGlvbnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDAwOjQ3OjA0LjE2NDU2MTM1WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMDMwNzA4MjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA3YjBhMjZlNDIwMmVkZGRjYWVhMmFlYjgzOWRhOTA5MWJmZWQzMWM4XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUdWUgQXVnIDQgMDA6NDc6MDMgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L3VuaXgvZ2FyYmFnZS5jIGIvbmV0L3VuaXgvZ2FyYmFnZS5jXFxuaW5kZXggMDc4MzU1NWUyNTI2Ni4uOWZjYWFmNTVjYmE1ZCAxMDA2NDRcXG4tLS0gYS9uZXQvdW5peC9nYXJiYWdlLmNcXG4rKysgYi9uZXQvdW5peC9nYXJiYWdlLmNcXG5AQCAtMTg2LDYgKzE4Niw3IEBAIHN0YXRpYyB2b2lkIHVuaXhfZGVsX2VkZ2Uoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwsIHN0cnVjdCB1bml4X2VkZ2UgKmVkZ2UpXFxuIFxcdGlmICghdmVydGV4LVxcdTAwM2VvdXRfZGVncmVlKSB7XFxuIFxcdFxcdGVkZ2UtXFx1MDAzZXByZWRlY2Vzc29yLVxcdTAwM2V2ZXJ0ZXggPSBOVUxMO1xcbiBcXHRcXHRsaXN0X21vdmVfdGFpbChcXHUwMDI2dmVydGV4LVxcdTAwM2VlbnRyeSwgXFx1MDAyNmZwbC1cXHUwMDNldmVydGljZXMpO1xcbitcXHRcXHRsaXN0X2RlbChcXHUwMDI2dmVydGV4LVxcdTAwM2VzY2NfZW50cnkpO1xcbiBcXHR9XFxuIH1cXG4gXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDAwOjQ3OjA0LjQ2ODI2NzQ4NVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjc1MDkwOTUwMTAzMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJVTklYXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidW5peF9kZWxfZWRnZXNcIixcbiAgICBcInVuaXhfZGVzdHJveV9mcGxcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoaXMgcGF0Y2ggbW9kaWZpZXMgdGhlIEFGX1VOSVggZ2FyYmFnZSBjb2xsZWN0b3IgbG9naWMgYnkgZml4aW5nIGEgbGlzdCBkZWxldGlvbiBpbiB1bml4X2RlbF9lZGdlLiBJdCBpcyBmdW5jdGlvbmFsIGNvcmUgbmV0d29ya2luZyBjb2RlIHRoYXQgaXMgcmVhY2hhYmxlIHZpYSBzdGFuZGFyZCBBRl9VTklYIHNvY2tldCBvcGVyYXRpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA3YjBhMjZlNDIwMmVkZGRjYWVhMmFlYjgzOWRhOTA5MWJmZWQzMWM4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBBdWcgNCAwMDo0NzowMyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC91bml4L2dhcmJhZ2UuYyBiL25ldC91bml4L2dhcmJhZ2UuY1xuaW5kZXggMDc4MzU1NWUyNTI2Ni4uOWZjYWFmNTVjYmE1ZCAxMDA2NDRcbi0tLSBhL25ldC91bml4L2dhcmJhZ2UuY1xuKysrIGIvbmV0L3VuaXgvZ2FyYmFnZS5jXG5AQCAtMTg2LDYgKzE4Niw3IEBAIHN0YXRpYyB2b2lkIHVuaXhfZGVsX2VkZ2Uoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwsIHN0cnVjdCB1bml4X2VkZ2UgKmVkZ2UpXG4gXHRpZiAoIXZlcnRleC1cdTAwM2VvdXRfZGVncmVlKSB7XG4gXHRcdGVkZ2UtXHUwMDNlcHJlZGVjZXNzb3ItXHUwMDNldmVydGV4ID0gTlVMTDtcbiBcdFx0bGlzdF9tb3ZlX3RhaWwoXHUwMDI2dmVydGV4LVx1MDAzZWVudHJ5LCBcdTAwMjZmcGwtXHUwMDNldmVydGljZXMpO1xuK1x0XHRsaXN0X2RlbChcdTAwMjZ2ZXJ0ZXgtXHUwMDNlc2NjX2VudHJ5KTtcbiBcdH1cbiB9XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQwMDo0NzowNC40NjgyNjg4MzVaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MDQ0MTg5MTE0NjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGlzOlxuXG4qKkFuYWx5emluZyBhIFVuaXggRG9tYWluIFNvY2tldCBHYXJiYWdlIENvbGxlY3Rpb24gUGF0Y2gqKlxuXG5BbHJpZ2h0LCBzbyBhIHBhdGNoIGhhcyBoaXQgbXkgZGVzaywgYW5kIGl0J3MgdG91Y2hpbmcgYG5ldC91bml4L2dhcmJhZ2UuY2AuIFNwZWNpZmljYWxseSwgaXQncyBpbnRyb2R1Y2luZyBgbGlzdF9kZWwoXHUwMDI2dmVydGV4LVx1MDAzZXNjY19lbnRyeSk7YCB3aXRoaW4gdGhlIGB1bml4X2RlbF9lZGdlYCBmdW5jdGlvbi4gVGhhdCBpbW1lZGlhdGVseSBmbGFncyB0aGlzIGFzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gdGhlIFVOSVggZG9tYWluIHNvY2tldCBnYXJiYWdlIGNvbGxlY3Rvci4gVGhpcyBpcyBpbnRlcmVzdGluZy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzIGFkZGl0aW9uLlxuXG5NeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZGl2ZSBzdHJhaWdodCBpbnRvIHRoZSBjb2RlIGFuZCBzZWUgZXhhY3RseSB3aGF0J3MgaGFwcGVuaW5nIHdpdGhpbiBgdW5peF9kZWxfZWRnZWAuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBwdXJwb3NlIG9mIGB2ZXJ0ZXgtXHUwMDNlc2NjX2VudHJ5YCBpbiB0aGUgYmlnZ2VyIHBpY3R1cmUgdG8gZnVsbHkgZ3Jhc3AgdGhlIGNoYW5nZS4gV2hhdCBpcyB0aGUgc3RhdGUgb2YgdGhlIHN5c3RlbSB3aGljaCB0aGlzIGNoYW5nZSBpcyBiZWluZyBtYWRlP1xuXG5MZXQncyBmaXJlIHVwIGBncmVwcGVyYCBhbmQgc2VlIHdoYXQgdGhlIHdpZGVyIHBpY3R1cmUgaXMgZm9yIGB1bml4X2RlbF9lZGdlYC4gVGhlIHNlYXJjaCBzaG91bGQgcXVpY2tseSByZXZlYWwgdGhlIHN1cnJvdW5kaW5nIGNvZGUgYW5kIGhvdyB0aGlzIGZ1bmN0aW9uIGZpdHMgaW50byB0aGUgb3ZlcmFsbCBnYXJiYWdlIGNvbGxlY3Rpb24gcHJvY2Vzcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjAyNiwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjkyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDA6NTc6MDguODg3MTgzMzY4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI4Njg2OTQ1NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ1bml4X2RlbF9lZGdlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC91bml4L2dhcmJhZ2UuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvdW5peC9nYXJiYWdlLmM9MTU0PXN0YXRpYyB2b2lkIHVuaXhfYWRkX2VkZ2Uoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwsIHN0cnVjdCB1bml4X2VkZ2UgKmVkZ2UpXFxuLS1cXG5uZXQvdW5peC9nYXJiYWdlLmMtMTc1LVxcbm5ldC91bml4L2dhcmJhZ2UuYzoxNzY6c3RhdGljIHZvaWQgdW5peF9kZWxfZWRnZShzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbCwgc3RydWN0IHVuaXhfZWRnZSAqZWRnZSlcXG5uZXQvdW5peC9nYXJiYWdlLmMtMTc3LXtcXG4tLVxcbm5ldC91bml4L2dhcmJhZ2UuYz0yMDU9dm9pZCB1bml4X2FkZF9lZGdlcyhzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbCwgc3RydWN0IHVuaXhfc29jayAqcmVjZWl2ZXIpXFxuLS1cXG5uZXQvdW5peC9nYXJiYWdlLmMtMjM4LVxcbm5ldC91bml4L2dhcmJhZ2UuYzoyMzk6dm9pZCB1bml4X2RlbF9lZGdlcyhzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbClcXG5uZXQvdW5peC9nYXJiYWdlLmMtMjQwLXtcXG4tLVxcbm5ldC91bml4L2dhcmJhZ2UuYy0yNTEtXFxubmV0L3VuaXgvZ2FyYmFnZS5jOjI1MjpcXHRcXHR1bml4X2RlbF9lZGdlKGZwbCwgZWRnZSk7XFxubmV0L3VuaXgvZ2FyYmFnZS5jLTI1My1cXHR9IHdoaWxlIChpIFxcdTAwM2MgZnBsLVxcdTAwM2Vjb3VudF91bml4KTtcXG4tLVxcbm5ldC91bml4L2dhcmJhZ2UuYz0zMTM9dm9pZCB1bml4X2Rlc3Ryb3lfZnBsKHN0cnVjdCBzY21fZnBfbGlzdCAqZnBsKVxcbi0tXFxubmV0L3VuaXgvZ2FyYmFnZS5jLTMxNS1cXHRpZiAoZnBsLVxcdTAwM2VpbmZsaWdodClcXG5uZXQvdW5peC9nYXJiYWdlLmM6MzE2OlxcdFxcdHVuaXhfZGVsX2VkZ2VzKGZwbCk7XFxubmV0L3VuaXgvZ2FyYmFnZS5jLTMxNy1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDA6NTc6MDkuMTc0MDYyMzMzWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDY2NjE4NzI1MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGFuYWx5c2lzIG9mIHRoZSBjb2RlIGNoYW5nZSwgdGhpbmtpbmcgdGhyb3VnaCB0aGUgcHJvY2VzczpcblxuKipEaXZpbmcgaW50byB0aGUgQUZfVU5JWCBHYXJiYWdlIENvbGxlY3Rpb24qKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGludHJvZHVjZXMgYGxpc3RfZGVsKFx1MDAyNnZlcnRleC1cdTAwM2VzY2NfZW50cnkpO2AgaW50byB0aGUgYHVuaXhfZGVsX2VkZ2VgIGZ1bmN0aW9uIHdpdGhpbiBgbmV0L3VuaXgvZ2FyYmFnZS5jYC4gUmlnaHQgYXdheSwgdGhhdCB0ZWxscyBtZSB3ZSdyZSB0d2Vha2luZyB0aGUgQUZfVU5JWCBnYXJiYWdlIGNvbGxlY3Rpb24gc3lzdGVtLiAgSSBrbm93IGB1bml4X2RlbF9lZGdlYCBpcyBwYXJ0IG9mIGhvdyB0aGUga2VybmVsIG1hbmFnZXMgdGhvc2UgVU5JWCBkb21haW4gc29ja2V0IGNvbm5lY3Rpb25zIHRoYXQgaGF2ZSBiZWVuIG9ycGhhbmVkIG9yIGFyZSBubyBsb25nZXIgdmFsaWQuICBXZSBhcmUgd29ya2luZyB0byBmcmVlIHVwIHJlc291cmNlcy5cblxuTm93LCBsZXQncyBzZWUgd2hlcmUgYHVuaXhfZGVsX2VkZ2VgIGlzIGNhbGxlZC4gSXQncyBjYWxsZWQgYnkgYHVuaXhfZGVsX2VkZ2VzYCwgd2hpY2ggSSBrbm93IGlzIGNhbGxlZCBieSBib3RoIGB1bml4X2Rlc3Ryb3lfZnBsYCBhbmQgYHVuaXhfZ2NgLiBUaGF0IG1lYW5zIHRoaXMgY2hhbmdlIGltcGFjdHMgaG93IHdlIGhhbmRsZSB0aGUgRmlsZSBQb2ludGVyIExpc3Qgc3BlY2lmaWNhbGx5LCBhbmQgdGhlIGdlbmVyYWwgZ2FyYmFnZSBjb2xsZWN0aW9uLlxuXG5BbHJpZ2h0LCBsZXQncyBxdWlja2x5IHJldmlldyB0aGUgaW1wbGVtZW50YXRpb24gZm9yIGB1bml4X2RlbF9lZGdlc2AgYW5kIHNlZSBob3cgaXQgd29ya3MuIFRoYXQgd2lsbCBsaWtlbHkgZ2l2ZSB1cyB0aGUgY29udGV4dCB3ZSBuZWVkIHRvIGZ1bGx5IHVuZGVyc3RhbmQgdGhlIHB1cnBvc2Ugb2YgYWRkaW5nIHRoaXMgcGFydGljdWxhciBgbGlzdF9kZWxgIGNhbGwuICBUaGlzIHJlbW92YWwgb2YgdGhlIGBzY2NfZW50cnlgIG1pZ2h0IGJlIGEgY3JpdGljYWwgc3RlcCBpbiBicmVha2luZyBhIGNpcmN1bGFyIGRlcGVuZGVuY3kgb3IgbWFuYWdpbmcgYSBsaXN0IGR1cmluZyB0aGUgZ2FyYmFnZSBjb2xsZWN0aW9uIGN5Y2xlLiBHb3R0YSBnZXQgYSBiZXR0ZXIgZmVlbCBmb3IgaG93IHRoZXNlIHNvY2tldCBjb25uZWN0aW9ucyBhbmQgdGhlaXIgZWRnZXMgYXJlIG9yZ2FuaXplZCBhbmQgdHJhY2tlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjY1MiwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjk2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDAwOjU3OjEzLjg0MDI1MjU0MloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NDc5NTQ0OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ1bml4X2RlbF9lZGdlc1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvdW5peC9nYXJiYWdlLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3VuaXgvZ2FyYmFnZS5jPTIwNT12b2lkIHVuaXhfYWRkX2VkZ2VzKHN0cnVjdCBzY21fZnBfbGlzdCAqZnBsLCBzdHJ1Y3QgdW5peF9zb2NrICpyZWNlaXZlcilcXG4tLVxcbm5ldC91bml4L2dhcmJhZ2UuYy0yMzgtXFxubmV0L3VuaXgvZ2FyYmFnZS5jOjIzOTp2b2lkIHVuaXhfZGVsX2VkZ2VzKHN0cnVjdCBzY21fZnBfbGlzdCAqZnBsKVxcbm5ldC91bml4L2dhcmJhZ2UuYy0yNDAte1xcbi0tXFxubmV0L3VuaXgvZ2FyYmFnZS5jPTMxMz12b2lkIHVuaXhfZGVzdHJveV9mcGwoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwpXFxuLS1cXG5uZXQvdW5peC9nYXJiYWdlLmMtMzE1LVxcdGlmIChmcGwtXFx1MDAzZWluZmxpZ2h0KVxcbm5ldC91bml4L2dhcmJhZ2UuYzozMTY6XFx0XFx0dW5peF9kZWxfZWRnZXMoZnBsKTtcXG5uZXQvdW5peC9nYXJiYWdlLmMtMzE3LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQwMDo1NzoxMy44ODUwNTYwODJaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MTU0NTkxMDMwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgQUZfVU5JWCBHYXJiYWdlIENvbGxlY3RvciBNb2RpZmljYXRpb24qKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGRpZ2dpbmcgaW50byBgbmV0L3VuaXgvZ2FyYmFnZS5jYCwgc3BlY2lmaWNhbGx5IHRoZSBgdW5peF9kZWxfZWRnZWAgZnVuY3Rpb24uIEl0IHNlZW1zIHRvIGJlIGludHJvZHVjaW5nIGEgYGxpc3RfZGVsKFx1MDAyNnZlcnRleC1cdTAwM2VzY2NfZW50cnkpO2AgY2FsbCB1bmRlciB0aGUgY29uZGl0aW9uIHRoYXQgYHZlcnRleC1cdTAwM2VvdXRfZGVncmVlYCBpcyB6ZXJvLiBUaGF0J3MgaW1tZWRpYXRlbHkgaW50ZXJlc3Rpbmc7IGl0J3MgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlIHdpdGhpbiB0aGUgZ2FyYmFnZSBjb2xsZWN0b3IgZm9yIEFGX1VOSVggc29ja2V0cy4gVGhpcyBpcyBhIHZlcnkgbGlrZWx5IGNhbmRpZGF0ZSBmb3IgZnV6emluZywgZ2l2ZW4gaXRzIHJvbGUgaW4gbWVtb3J5IG1hbmFnZW1lbnQuXG5cbk15IGluaXRpYWwgdGhvdWdodHMgYXJlIHRvIGZvY3VzIGZ1enppbmcgZWZmb3J0cyBvbiBgdW5peF9kZWxfZWRnZXNgIGFuZCBgdW5peF9kZXN0cm95X2ZwbGAuIEhvd2V2ZXIsIEkgbmVlZCB0byBjb25maXJtIHdoZXRoZXIgYHVuaXhfZGVzdHJveV9mcGxgIGlzIG9ubHkgdXNlZCBsb2NhbGx5LiBJdCdzIG9mdGVuIHRoZSBjYXNlIHRoYXQgc2VlbWluZ2x5IGlzb2xhdGVkIGZ1bmN0aW9ucyBsaWtlIHRoZXNlIGFyZSBleHBvc2VkIGZvciB1c2UgZWxzZXdoZXJlLiBUaW1lIHRvIGRvIGEgcXVpY2sgY29kZSBkaXZlIHRvIGRldGVybWluZSB0aGUgY2FsbCBzaXRlcyBmb3IgYm90aCBmdW5jdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxODUsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMzIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDA6NTc6MTkuMDM5NjQ5OTAyWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzMTM5NzM5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInVuaXhfZGVzdHJveV9mcGxcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3VuaXgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC91bml4L2FmX3VuaXguYz0xOTUwPXN0YXRpYyB2b2lkIHVuaXhfZGV0YWNoX2ZkcyhzdHJ1Y3Qgc2NtX2Nvb2tpZSAqc2NtLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxubmV0L3VuaXgvYWZfdW5peC5jLTE5NTQtXFxubmV0L3VuaXgvYWZfdW5peC5jOjE5NTU6XFx0dW5peF9kZXN0cm95X2ZwbChzY20tXFx1MDAzZWZwKTtcXG5uZXQvdW5peC9hZl91bml4LmMtMTk1Ni19XFxuLS1cXG5uZXQvdW5peC9hZl91bml4Lmg9MzA9aW50IHVuaXhfcHJlcGFyZV9mcGwoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwpO1xcbm5ldC91bml4L2FmX3VuaXguaDozMTp2b2lkIHVuaXhfZGVzdHJveV9mcGwoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwpO1xcbm5ldC91bml4L2FmX3VuaXguaC0zMi12b2lkIHVuaXhfcGVla19mcGwoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwpO1xcbi0tXFxubmV0L3VuaXgvZ2FyYmFnZS5jPTI4Mz1pbnQgdW5peF9wcmVwYXJlX2ZwbChzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbClcXG4tLVxcbm5ldC91bml4L2dhcmJhZ2UuYy0zMTItXFxubmV0L3VuaXgvZ2FyYmFnZS5jOjMxMzp2b2lkIHVuaXhfZGVzdHJveV9mcGwoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwpXFxubmV0L3VuaXgvZ2FyYmFnZS5jLTMxNC17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDAwOjU3OjE5LjA4Mjc5NDcyMVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUzMTAzMjYxODEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBVbml4IERvbWFpbiBTb2NrZXQgRmlsZSBEZXNjcmlwdG9yIERlc3RydWN0aW9uKipcblxuT2theSwgc28gSSdtIGRpdmluZyBpbnRvIHRoaXMgYG5ldC91bml4YCBjb2RlLCBzcGVjaWZpY2FsbHkgdGhlIGRlc3RydWN0aW9uIG9mIGZpbGUgcG9pbnRlcnMgcmVsYXRlZCB0byBVbml4IGRvbWFpbiBzb2NrZXRzLiBJIHNlZSB0aGF0IGB1bml4X2Rlc3Ryb3lfZnBsYCBpcyBjYWxsZWQgZGlyZWN0bHkgZnJvbSBgdW5peF9kZXRhY2hfZmRzYCBpbiBgYWZfdW5peC5jYC4gVGhhdCdzIG15IHN0YXJ0aW5nIHBvaW50LiBJJ20gZ29pbmcgdG8ga2VlcCBgdW5peF9kZXN0cm95X2ZwbGAgYW5kIGB1bml4X2RlbF9lZGdlc2AgYXMgbXkgcHJpbWFyeSBmb2N1cyBzeW1ib2xzIGZvciBub3cgYmVjYXVzZSB0aGV5IHNlZW0gY2VudHJhbCB0byB0aGlzIGRlc3RydWN0aW9uIHByb2Nlc3MuIEkgd2FzIGluaXRpYWxseSBnb2luZyB0byBpbmNsdWRlIGB1bml4X2RlbF9lZGdlYCwgYnV0IGl0IGxvb2tzIHN0YXRpYywgc28gSSB3aWxsIGlnbm9yZSBpdC4gSGFuZyBvbiwgZGlkIEkgc2VlIGB1bml4X2RlbF9lZGdlc2AgY29ycmVjdGx5PyBJdCBpcyBub3Qgc3RhdGljISBCZXR0ZXIgZG91YmxlLWNoZWNrIHRoYXQgaW4gYG5ldC91bml4L2dhcmJhZ2UuY2AgdG8gYmUgY2VydGFpbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NDA0MSwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQwMDo1NzoyNC4zOTMxMjgwNjJaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyOTEwMzY5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZvaWQgdW5peF9kZWxfZWRnZXNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3VuaXgvZ2FyYmFnZS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC91bml4L2dhcmJhZ2UuYz0yMDU9dm9pZCB1bml4X2FkZF9lZGdlcyhzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbCwgc3RydWN0IHVuaXhfc29jayAqcmVjZWl2ZXIpXFxuLS1cXG5uZXQvdW5peC9nYXJiYWdlLmMtMjM4LVxcbm5ldC91bml4L2dhcmJhZ2UuYzoyMzk6dm9pZCB1bml4X2RlbF9lZGdlcyhzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbClcXG5uZXQvdW5peC9nYXJiYWdlLmMtMjQwLXtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDA6NTc6MjQuNDM2MDQzMDMxWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwMDg2NDg4NTYxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEFGX1VOSVggR2FyYmFnZSBDb2xsZWN0aW9uIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyBtb2RpZnlpbmcgYHVuaXhfZGVsX2VkZ2VgIHdpdGhpbiBgbmV0L3VuaXgvZ2FyYmFnZS5jYC4gU3BlY2lmaWNhbGx5LCBpdCdzIGFkZGluZyBgbGlzdF9kZWwoXHUwMDI2dmVydGV4LVx1MDAzZXNjY19lbnRyeSk7YCB1bmRlciB0aGUgY29uZGl0aW9uIHRoYXQgYHZlcnRleC1cdTAwM2VvdXRfZGVncmVlYCBpcyB6ZXJvLiBUaGF0J3MgYSBmdW5jdGlvbmFsIGNoYW5nZSByZWxhdGVkIHRvIEFGX1VOSVggZ2FyYmFnZSBjb2xsZWN0aW9uIOKAkyBpdCdzIGRlZmluaXRlbHkgc29tZXRoaW5nIHRvIHBheSBhdHRlbnRpb24gdG8uXG5cbkxldCdzIHRyYWNlIHRoZSBjYWxsIGNoYWluLiBgdW5peF9kZWxfZWRnZWAgaXMgY2FsbGVkIGJ5IGB1bml4X2RlbF9lZGdlc2AsIHdoaWNoLCBpbiB0dXJuLCBpcyBjYWxsZWQgYnkgYHVuaXhfZGVzdHJveV9mcGxgLiBUaGVuIGB1bml4X2Rlc3Ryb3lfZnBsYCBpcyBjYWxsZWQgYnkgYHVuaXhfZGV0YWNoX2Zkc2AgaW4gYG5ldC91bml4L2FmX3VuaXguY2AuIFRoaXMgaXMgYSBjbGVhciBwYXRoLCBzbyBpdCdzIGRlZmluaXRlbHkgcmVhY2hhYmxlIGNvZGUgYW5kIGEgcHJpbWUgY2FuZGlkYXRlIGZvciBmdXp6aW5nLlxuXG5NeSBpbml0aWFsIHRob3VnaHQgd2FzIHRvIGZvY3VzIG9uIGB1bml4X2RlbF9lZGdlYCBkaXJlY3RseSwgYnV0IHdhaXQuLi4gaXQncyBhIHN0YXRpYyBmdW5jdGlvbi4gU28sIEkgbmVlZCB0byBsb29rIGZ1cnRoZXIgdXAgdGhlIGNhbGwgY2hhaW4gYXQgc29tZXRoaW5nIHRoYXQncyBub3Qgc3RhdGljLiBUaGF0IG1lYW5zIGB1bml4X2RlbF9lZGdlc2Agb3IgYHVuaXhfZGVzdHJveV9mcGxgLlxuXG5MZXQncyBkb3VibGUtY2hlY2sgaWYgYHVuaXhfZGVsX2VkZ2VzYCBpcyBleHBvcnRlZCBvciBub24tc3RhdGljLiBMb29raW5nIGluIGBuZXQvdW5peC9nYXJiYWdlLmNgLCBpdCdzIGRlZmluZWQgYXMgYHZvaWQgdW5peF9kZWxfZWRnZXMoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwpYC4gT2theSwgdGhhdCAqbG9va3MqIG5vbi1zdGF0aWMsIGJ1dCBJIG5lZWQgdG8gYmUgc3VyZS4gSXQncyBub3QgaW1tZWRpYXRlbHkgb2J2aW91cyBpZiBpdCdzIGluIGEgaGVhZGVyIG9yIG5vdC4gTGV0J3MgbWFrZSBzdXJlIGl0J3Mgbm90IGRlY2xhcmVkIHN0YXRpYyB1c2luZyBgZ3JlcGAuXG5cbkFscmlnaHQsIGEgcXVpY2sgc2VhcmNoIG9mIGBuZXQvdW5peC9nYXJiYWdlLmNgIGNvbmZpcm1zOiBgdm9pZCB1bml4X2RlbF9lZGdlcyhzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbClgLiBJdCdzIGRlZmluaXRlbHkgbm90IHN0YXRpYyBpbiBpdHMgZGVjbGFyYXRpb24uIEJ1dCBpcyBpdCBpbiBhIGhlYWRlcj8gSSBzaG91bGQgY2hlY2sgYG5ldC91bml4L2FmX3VuaXguaGAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQwNDEsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMjMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDA6NTk6MDUuMzAwOTMyMjUzWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNDk2ODAxNjYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidW5peF9kZWxfZWRnZXNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3VuaXgvYWZfdW5peC5oXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC91bml4L2FmX3VuaXguaD0yNz12b2lkIHVuaXhfYWRkX2VkZ2VzKHN0cnVjdCBzY21fZnBfbGlzdCAqZnBsLCBzdHJ1Y3QgdW5peF9zb2NrICpyZWNlaXZlcik7XFxubmV0L3VuaXgvYWZfdW5peC5oOjI4OnZvaWQgdW5peF9kZWxfZWRnZXMoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwpO1xcbm5ldC91bml4L2FmX3VuaXguaC0yOS12b2lkIHVuaXhfdXBkYXRlX2VkZ2VzKHN0cnVjdCB1bml4X3NvY2sgKnJlY2VpdmVyKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDA6NTk6MDUuNTUwNjE3NDU5WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4MTgyNjc5NjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjo0NjE0LCJPdXRwdXRUb2tlbnMiOjI5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQwMDo1OTowOC4zNjg4ODg0OTJaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyOTkwNTI5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInVuaXhfZGVsX2VkZ2VzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC91bml4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvdW5peC9hZl91bml4LmM9MjA2MT1zdGF0aWMgdm9pZCBzY21fc3RhdF9kZWwoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxubmV0L3VuaXgvYWZfdW5peC5jLTIwNjctXFx0XFx0YXRvbWljX3N1YihmcC1cXHUwMDNlY291bnQsIFxcdTAwMjZ1LVxcdTAwM2VzY21fc3RhdC5ucl9mZHMpO1xcbm5ldC91bml4L2FmX3VuaXguYzoyMDY4OlxcdFxcdHVuaXhfZGVsX2VkZ2VzKGZwKTtcXG5uZXQvdW5peC9hZl91bml4LmMtMjA2OS1cXHR9XFxuLS1cXG5uZXQvdW5peC9hZl91bml4Lmg9Mjc9dm9pZCB1bml4X2FkZF9lZGdlcyhzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbCwgc3RydWN0IHVuaXhfc29jayAqcmVjZWl2ZXIpO1xcbm5ldC91bml4L2FmX3VuaXguaDoyODp2b2lkIHVuaXhfZGVsX2VkZ2VzKHN0cnVjdCBzY21fZnBfbGlzdCAqZnBsKTtcXG5uZXQvdW5peC9hZl91bml4LmgtMjktdm9pZCB1bml4X3VwZGF0ZV9lZGdlcyhzdHJ1Y3QgdW5peF9zb2NrICpyZWNlaXZlcik7XFxuLS1cXG5uZXQvdW5peC9nYXJiYWdlLmM9MjA1PXZvaWQgdW5peF9hZGRfZWRnZXMoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwsIHN0cnVjdCB1bml4X3NvY2sgKnJlY2VpdmVyKVxcbi0tXFxubmV0L3VuaXgvZ2FyYmFnZS5jLTIzOC1cXG5uZXQvdW5peC9nYXJiYWdlLmM6MjM5OnZvaWQgdW5peF9kZWxfZWRnZXMoc3RydWN0IHNjbV9mcF9saXN0ICpmcGwpXFxubmV0L3VuaXgvZ2FyYmFnZS5jLTI0MC17XFxuLS1cXG5uZXQvdW5peC9nYXJiYWdlLmM9MzEzPXZvaWQgdW5peF9kZXN0cm95X2ZwbChzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKmZwbClcXG4tLVxcbm5ldC91bml4L2dhcmJhZ2UuYy0zMTUtXFx0aWYgKGZwbC1cXHUwMDNlaW5mbGlnaHQpXFxubmV0L3VuaXgvZ2FyYmFnZS5jOjMxNjpcXHRcXHR1bml4X2RlbF9lZGdlcyhmcGwpO1xcbm5ldC91bml4L2dhcmJhZ2UuYy0zMTctXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDAwOjU5OjA4LjQxMTg4NDA2MloiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNDg1MDY3OTU3MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBRl9VTklYIEdhcmJhZ2UgQ29sbGVjdGlvbiBQYXRjaCBSZXZpZXcqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRvdWNoaW5nIGB1bml4X2RlbF9lZGdlYCB3aXRoaW4gYG5ldC91bml4L2dhcmJhZ2UuY2AuIFNwZWNpZmljYWxseSwgaXQncyBhZGRpbmcgYGxpc3RfZGVsKFx1MDAyNnZlcnRleC1cdTAwM2VzY2NfZW50cnkpO2AgdW5kZXIgdGhlIGNvbmRpdGlvbiBgIXZlcnRleC1cdTAwM2VvdXRfZGVncmVlYC4gVGhpcyBsb29rcyBsaWtlIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQUZfVU5JWCBnYXJiYWdlIGNvbGxlY3Rpb24gbG9naWMsIHdoaWNoIG1ha2VzIGl0IGEgcHJpbWUgdGFyZ2V0IGZvciBmdXp6aW5nLiBJIG5lZWQgdG8ga2VlcCBhbiBleWUgb24gdGhpcy5cblxuR2l2ZW4gdGhlIGNvbnRleHQsIEkgdGhpbmsgdGhlIGNyaXRpY2FsIGZ1bmN0aW9ucyB0byBwYXkgYXR0ZW50aW9uIHRvIGFyZSBgdW5peF9kZWxfZWRnZXNgLCBgdW5peF9kZXN0cm95X2ZwbGAsIGB1bml4X2FkZF9lZGdlc2AsIGB1bml4X3ByZXBhcmVfZnBsYCwgYW5kIGB1bml4X3VwZGF0ZV9lZGdlc2AuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBhdHRhY2sgdmVjdG9ycyBoZXJlLiBXYWl0LCBgdW5peF9kZWxfZWRnZXNgIGlzIGNhbGxlZCBmcm9tIGBzY21fc3RhdF9kZWxgIGFuZCBgdW5peF9kZXN0cm95X2ZwbGAgLSBpbnRlcmVzdGluZy4gSSBuZWVkIHRvIGZvbGxvdyB0aG9zZSBjYWxsIHBhdGhzIHRvIHNlZSB3aGF0J3MgYmVpbmcgYWZmZWN0ZWQuXG5cbkkgc2hvdWxkIHZlcmlmeSBpZiB0aGUgYFVOSVhgIGNvbmZpZyBpcyBlbmFibGVkLCBiZWNhdXNlIHRoYXQncyBvYnZpb3VzbHkgYSBwcmVyZXF1aXNpdGUgZm9yIGFueSBvZiB0aGlzIHRvIG1hdHRlci4gWWVwLCBmb3VuZCBpdC4gYENPTkZJR19VTklYYCBpcyByZXF1aXJlZC4gSSBuZWVkIHRvIGNoZWNrIGBuZXQvdW5peC9LY29uZmlnYCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIGJ1dCBJJ20gZmVlbGluZyBwcmV0dHkgY29uZmlkZW50IHRoYXQncyB0aGUga2V5LlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MDY4LCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTc3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDAwOjU5OjIzLjI2MjU2NjE5M1oiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDMzODE2NzksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFVOSVhcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3VuaXgvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvdW5peC9LY29uZmlnLTUtXFxubmV0L3VuaXgvS2NvbmZpZzo2OmNvbmZpZyBVTklYXFxubmV0L3VuaXgvS2NvbmZpZy03LVxcdGJvb2wgXFxcIlVuaXggZG9tYWluIHNvY2tldHNcXFwiXFxuLS1cXG5uZXQvdW5peC9LY29uZmlnPTE5PWNvbmZpZ1xcdEFGX1VOSVhfT09CXFxuLS1cXG5uZXQvdW5peC9LY29uZmlnLTI1LVxcbm5ldC91bml4L0tjb25maWc6MjY6Y29uZmlnIFVOSVhfRElBR1xcbm5ldC91bml4L0tjb25maWctMjctXFx0dHJpc3RhdGUgXFxcIlVOSVg6IHNvY2tldCBtb25pdG9yaW5nIGludGVyZmFjZVxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDA6NTk6MjMuMzA1OTUxNjkyWiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjExOTk0NzMzNTM4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIHByZXNlbnRlZCBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKkluaXRpYWwgQ29uZmlndXJhdGlvbiBhbmQgU3ltYm9sIEZvY3VzKipcblxuQWxyaWdodCwgc28gdGhlIHRhc2sgYXQgaGFuZCBpcyBjbGVhcmx5IHJlbGF0ZWQgdG8gVW5peC1zcGVjaWZpYyBmdW5jdGlvbmFsaXR5LCBhbmQgdGhlIGtleSBpcyBgQ09ORklHX1VOSVhgLiAgVGhhdCdzIG15IHN0YXJ0aW5nIHBvaW50OyBpdCdzIHRoZSBlbmFibGluZyBjb25maWd1cmF0aW9uLiAgRnJvbSB0aGVyZSwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHJlbGV2YW50IHBpZWNlcyBvZiBjb2RlLiBNeSBmb2N1cyBpbW1lZGlhdGVseSBzaGlmdHMgdG8gdGhlIHN5bWJvbHM6IGB1bml4X2RlbF9lZGdlc2AgYW5kIGB1bml4X2Rlc3Ryb3lfZnBsYC4gVGhlc2UgYXJlIHRoZSBmdW5jdGlvbnMsIG9yIGF0IGxlYXN0IHRoZSBjb3JlIGFjdGlvbnMsIHRoYXQgSSdsbCBuZWVkIHRvIGRpc3NlY3QgYW5kIHVuZGVyc3RhbmQgaW4gcmVsYXRpb24gdG8gaG93IGBDT05GSUdfVU5JWGAgaXMgZW1wbG95ZWQuIEknbSBhc3N1bWluZyB0aGVzZSBhcmUgbG93LWxldmVsIGZ1bmN0aW9ucyBhbmQgdGhhdCBJIHdpbGwgYmUgYWJsZSB0byBkZXRlcm1pbmUgdGhlIGFyY2hpdGVjdHVyZSBhcm91bmQgdGhlbS5cblxuT25jZSBJJ3ZlIGVzdGFibGlzaGVkIG15IHVuZGVyc3RhbmRpbmcgb2YgaG93IHRoZXNlIHBpZWNlcyBmaXQgdG9nZXRoZXIsIGl0J3MgdGltZSB0byBzZXQtcmVzdWx0cy4gVGhpcyBwcm9iYWJseSBpbnZvbHZlcyBzZXR0aW5nIHVwIHRoZSBwcm9ncmFtIGFuZCBydW5uaW5nIGl0LCBzaW5jZSB0aGlzIGlzIGdlbmVyYWxseSB0aGUgbGFzdCBzdGVwIG9mIHRoZSB0aG91Z2h0IHByb2Nlc3MuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY0MjYsIk91dHB1dFRva2VucyI6OTIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQwMDo1OTozNS4zMDA2ODc3OVoiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc3MDc2ODE5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJVTklYXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidW5peF9kZWxfZWRnZXNcIixcbiAgICBcInVuaXhfZGVzdHJveV9mcGxcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoaXMgcGF0Y2ggbW9kaWZpZXMgdGhlIEFGX1VOSVggZ2FyYmFnZSBjb2xsZWN0b3IgbG9naWMgYnkgZml4aW5nIGEgbGlzdCBkZWxldGlvbiBpbiB1bml4X2RlbF9lZGdlLiBJdCBpcyBmdW5jdGlvbmFsIGNvcmUgbmV0d29ya2luZyBjb2RlIHRoYXQgaXMgcmVhY2hhYmxlIHZpYSBzdGFuZGFyZCBBRl9VTklYIHNvY2tldCBvcGVyYXRpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlVOSVhcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ1bml4X2RlbF9lZGdlc1wiLFxuICAgIFwidW5peF9kZXN0cm95X2ZwbFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhpcyBwYXRjaCBtb2RpZmllcyB0aGUgQUZfVU5JWCBnYXJiYWdlIGNvbGxlY3RvciBsb2dpYyBieSBmaXhpbmcgYSBsaXN0IGRlbGV0aW9uIGluIHVuaXhfZGVsX2VkZ2UuIEl0IGlzIGZ1bmN0aW9uYWwgY29yZSBuZXR3b3JraW5nIGNvZGUgdGhhdCBpcyByZWFjaGFibGUgdmlhIHN0YW5kYXJkIEFGX1VOSVggc29ja2V0IG9wZXJhdGlvbnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowx8xsl[1] Phase: Succeeded StartedAt: 2026-08-04 00:59:46 +0000 UTC FinishedAt: 2026-08-04 00:59:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8xsl[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-04 00:59:46 +0000 UTC FinishedAt: 2026-08-04 00:59:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8xsl[2] Phase: Succeeded StartedAt: 2026-08-04 00:59:46 +0000 UTC FinishedAt: 2026-08-04 04:39:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8xsl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-04 00:59:46 +0000 UTC FinishedAt: 2026-08-04 04:39:20 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowx8xsl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-04 00:59:46 +0000 UTC FinishedAt: 2026-08-04 00:59:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8xsl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-04 00:59:46 +0000 UTC FinishedAt: 2026-08-04 00:59:50 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.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-workflowx8xsl/series-workflowx8xsl-convert-artifact-1872951112/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowx8xsl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-04 00:59:57 +0000 UTC FinishedAt: 2026-08-04 01:16:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8xsl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-04 00:59:57 +0000 UTC FinishedAt: 2026-08-04 01:16:11 +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:*a12fda60-5fd1-417c-9bc2-dd13963b04f9,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-workflowx8xsl/series-workflowx8xsl-convert-artifact-1872951112/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": "6e95aa99-2efd-483e-a7ab-760c67c628e3", "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-workflowx8xsl/series-workflowx8xsl-build-action-3296781246/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowx8xsl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-04 00:59:57 +0000 UTC FinishedAt: 2026-08-04 01:16:01 +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:*a12fda60-5fd1-417c-9bc2-dd13963b04f9,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-workflowx8xsl/series-workflowx8xsl-convert-artifact-1872951112/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": "6e95aa99-2efd-483e-a7ab-760c67c628e3", "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-workflowx8xsl/series-workflowx8xsl-build-action-3296781246/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowx8xsl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-04 01:16:11 +0000 UTC FinishedAt: 2026-08-04 01:16:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8xsl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-04 01:16:11 +0000 UTC FinishedAt: 2026-08-04 01:16:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8xsl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-04 01:16:11 +0000 UTC FinishedAt: 2026-08-04 01:16:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8xsl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-04 01:16:11 +0000 UTC FinishedAt: 2026-08-04 01:16:15 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.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-workflowx8xsl/series-workflowx8xsl-convert-artifact-786372399/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowx8xsl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-04 01:16:21 +0000 UTC FinishedAt: 2026-08-04 01:18:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8xsl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-04 01:16:21 +0000 UTC FinishedAt: 2026-08-04 01:18:14 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*6e95aa99-2efd-483e-a7ab-760c67c628e3,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-workflowx8xsl/series-workflowx8xsl-build-action-3296781246/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-workflowx8xsl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-04 01:18:24 +0000 UTC FinishedAt: 2026-08-04 01:18:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8xsl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-04 01:18:24 +0000 UTC FinishedAt: 2026-08-04 01:18:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8xsl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-04 01:18:24 +0000 UTC FinishedAt: 2026-08-04 01:34:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8xsl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-04 01:18:24 +0000 UTC FinishedAt: 2026-08-04 01:34:32 +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:*a12fda60-5fd1-417c-9bc2-dd13963b04f9,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-workflowx8xsl/series-workflowx8xsl-convert-artifact-786372399/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": "9bd2f28c-d739-4c78-b853-329ca83b5dac", "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-workflowx8xsl/series-workflowx8xsl-build-action-1223615171/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowx8xsl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-04 01:18:24 +0000 UTC FinishedAt: 2026-08-04 01:34:22 +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:*a12fda60-5fd1-417c-9bc2-dd13963b04f9,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-workflowx8xsl/series-workflowx8xsl-convert-artifact-786372399/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": "9bd2f28c-d739-4c78-b853-329ca83b5dac", "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-workflowx8xsl/series-workflowx8xsl-build-action-1223615171/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowx8xsl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-04 01:34:32 +0000 UTC FinishedAt: 2026-08-04 01:34:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8xsl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-04 01:34:32 +0000 UTC FinishedAt: 2026-08-04 01:34:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8xsl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-04 01:34:32 +0000 UTC FinishedAt: 2026-08-04 01:36:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8xsl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-04 01:34:32 +0000 UTC FinishedAt: 2026-08-04 01:36:23 +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:*9bd2f28c-d739-4c78-b853-329ca83b5dac,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-workflowx8xsl/series-workflowx8xsl-build-action-1223615171/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-workflowx8xsl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-04 01:36:33 +0000 UTC FinishedAt: 2026-08-04 04:39:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8xsl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-04 01:36:33 +0000 UTC FinishedAt: 2026-08-04 04:39:20 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"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:*6e95aa99-2efd-483e-a7ab-760c67c628e3,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*9bd2f28c-d739-4c78-b853-329ca83b5dac,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-workflowx8xsl/series-workflowx8xsl-build-action-3296781246/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-workflowx8xsl/series-workflowx8xsl-build-action-1223615171/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowx8xsl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-04 01:36:33 +0000 UTC FinishedAt: 2026-08-04 01:36:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8xsl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-04 01:36:33 +0000 UTC FinishedAt: 2026-08-04 01:36:38 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"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-workflowx8xsl/series-workflowx8xsl-convert-artifact-196776680/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowx8xsl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-04 01:36:33 +0000 UTC FinishedAt: 2026-08-04 01:36:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8xsl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-04 01:36:33 +0000 UTC FinishedAt: 2026-08-04 01:36:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8xsl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-04 01:36:33 +0000 UTC FinishedAt: 2026-08-04 01:36:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8xsl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-04 01:36:43 +0000 UTC FinishedAt: 2026-08-04 04:39:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8xsl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["unix_del_edges","unix_destroy_fpl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["UNIX"],"series_id":"90e09260-a59f-4ce5-a5e7-81287153c62d","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-04 01:36:43 +0000 UTC FinishedAt: 2026-08-04 04:39:10 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*6e95aa99-2efd-483e-a7ab-760c67c628e3,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*9bd2f28c-d739-4c78-b853-329ca83b5dac,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-workflowx8xsl/series-workflowx8xsl-build-action-3296781246/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-workflowx8xsl/series-workflowx8xsl-build-action-1223615171/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-workflowx8xsl/series-workflowx8xsl-convert-artifact-196776680/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,}