Name: series-workflowz7mdq Phase: Succeeded StartedAt: 2026-07-07 12:38:14 +0000 UTC FinishedAt: 2026-07-07 15:40:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz7mdq[0] Phase: Succeeded StartedAt: 2026-07-07 12:38:14 +0000 UTC FinishedAt: 2026-07-07 13:10:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz7mdq[0].run-triage Phase: Succeeded StartedAt: 2026-07-07 12:38:14 +0000 UTC FinishedAt: 2026-07-07 13:10:08 +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": "474cff6868129755cf889edf40d7f491729fc588", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NFS_FS", "NFSD", "SUNRPC" ], "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": "474cff6868129755cf889edf40d7f491729fc588", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NFS_FS", "NFSD", "SUNRPC" ], "series_id": "9b387e72-c4af-48a9-8ef6-af73d057716f" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "__rpc_clnt_handle_event", "__rpc_clnt_remove_pipedir" ], "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+CgkJCTx0ZD4yMDI2LzA3LzA3IDEyOjU5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+OG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GU19GUyYjMzQ7LAogICAgJiMzNDtORlNEJiMzNDssCiAgICAmIzM0O1NVTlJQQyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O19fcnBjX2NsbnRfaGFuZGxlX2V2ZW50JiMzNDssCiAgICAmIzM0O19fcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGhhbmRsaW5nIG9mIFJQQyBwaXBlZnMgbW91bnQvdW1vdW50IGV2ZW50cyBpbiB0aGUgc3VucnBjIGNsaWVudCwgZml4aW5nIGEgYnVnIHdoZXJlIGNsbnQtXHUwMDNlcGlwZWZzX3NiIHdhcyBub3QgcHJvcGVybHkgc2V0IG9yIGNsZWFyZWQuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIGxvZ2ljIGZvciBSUEMvTkZTIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA3IDEyOjU5PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNTQ0OGQ4MzNlNDIxZmE1YjFlZGYyZGM3ZDMzZjQ4ZmIyZTEzMzFiYlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVsIDcgMTI6NTk6MjAgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L3N1bnJwYy9jbG50LmMgYi9uZXQvc3VucnBjL2NsbnQuY1xuaW5kZXggYmM4Y2E0NzA3MThiN2EuLjg1ZmRkOGJhOTRhNGMyIDEwMDY0NFxuLS0tIGEvbmV0L3N1bnJwYy9jbG50LmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9zdW5ycGMvY2xudC5jXG5AQCAtOTYsNyAmIzQzOzk2LDEwIEBAIHN0YXRpYyB2b2lkIHJwY191bnJlZ2lzdGVyX2NsaWVudChzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQpXG4gXG4gc3RhdGljIHZvaWQgX19ycGNfY2xudF9yZW1vdmVfcGlwZWRpcihzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQpXG4ge1xuLVx0cnBjX3JlbW92ZV9jbGllbnRfZGlyKGNsbnQpO1xuJiM0MztcdGlmIChjbG50LVx1MDAzZXBpcGVmc19zYikge1xuJiM0MztcdFx0cnBjX3JlbW92ZV9jbGllbnRfZGlyKGNsbnQpO1xuJiM0MztcdFx0Y2xudC1cdTAwM2VwaXBlZnNfc2IgPSBOVUxMO1xuJiM0MztcdH1cbiB9XG4gXG4gc3RhdGljIHZvaWQgcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXIoc3RydWN0IHJwY19jbG50ICpjbG50KVxuQEAgLTE3NywxOSAmIzQzOzE4MCwyOCBAQCBzdGF0aWMgaW50IHJwY19jbG50X3NraXBfZXZlbnQoc3RydWN0IHJwY19jbG50ICpjbG50LCB1bnNpZ25lZCBsb25nIGV2ZW50KVxuIH1cbiBcbiBzdGF0aWMgaW50IF9fcnBjX2NsbnRfaGFuZGxlX2V2ZW50KHN0cnVjdCBycGNfY2xudCAqY2xudCwgdW5zaWduZWQgbG9uZyBldmVudCxcbi1cdFx0XHRcdCAgIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXG4mIzQzO1x0XHRcdFx0ICAgIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXG4ge1xuJiM0MztcdGludCBlcnIgPSAwO1xuJiM0MztcbiBcdHN3aXRjaCAoZXZlbnQpIHtcbiBcdGNhc2UgUlBDX1BJUEVGU19NT1VOVDpcbi1cdFx0cmV0dXJuIHJwY19zZXR1cF9waXBlZGlyX3NiKHNiLCBjbG50KTtcbiYjNDM7XHRcdGNsbnQtXHUwMDNlcGlwZWZzX3NiID0gc2I7XG4mIzQzO1x0XHRlcnIgPSBycGNfc2V0dXBfcGlwZWRpcl9zYihzYiwgY2xudCk7XG4mIzQzO1x0XHRpZiAoZXJyKVxuJiM0MztcdFx0XHRjbG50LVx1MDAzZXBpcGVmc19zYiA9IE5VTEw7XG4mIzQzO1x0XHRicmVhaztcbiBcdGNhc2UgUlBDX1BJUEVGU19VTU9VTlQ6XG4tXHRcdF9fcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXIoY2xudCk7XG4mIzQzO1x0XHRpZiAoY2xudC1cdTAwM2VwaXBlZnNfc2IgPT0gc2IpIHtcbiYjNDM7XHRcdFx0X19ycGNfY2xudF9yZW1vdmVfcGlwZWRpcihjbG50KTtcbiYjNDM7XHRcdFx0Y2xudC1cdTAwM2VwaXBlZnNfc2IgPSBOVUxMO1xuJiM0MztcdFx0fVxuIFx0XHRicmVhaztcbiBcdGRlZmF1bHQ6XG4gXHRcdHByaW50ayhLRVJOX0VSUiBcJiMzNDslczogdW5rbm93biBldmVudDogJWxkXFxuXCYjMzQ7LCBfX2Z1bmNfXywgZXZlbnQpO1xuIFx0XHRyZXR1cm4gLUVOT1RTVVBQO1xuIFx0fVxuLVx0cmV0dXJuIDA7XG4mIzQzO1x0cmV0dXJuIGVycjtcbiB9XG4gXG4gc3RhdGljIGludCBfX3JwY19waXBlZnNfZXZlbnQoc3RydWN0IHJwY19jbG50ICpjbG50LCB1bnNpZ25lZCBsb25nIGV2ZW50LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA3IDEyOjU5PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjhtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GU19GUyYjMzQ7LAogICAgJiMzNDtORlNEJiMzNDssCiAgICAmIzM0O1NVTlJQQyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O19fcnBjX2NsbnRfaGFuZGxlX2V2ZW50JiMzNDssCiAgICAmIzM0O19fcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGhhbmRsaW5nIG9mIFJQQyBwaXBlZnMgbW91bnQvdW1vdW50IGV2ZW50cyBpbiB0aGUgc3VucnBjIGNsaWVudCwgZml4aW5nIGEgYnVnIHdoZXJlIGNsbnQtXHUwMDNlcGlwZWZzX3NiIHdhcyBub3QgcHJvcGVybHkgc2V0IG9yIGNsZWFyZWQuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIGxvZ2ljIGZvciBSUEMvTkZTIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA1NDQ4ZDgzM2U0MjFmYTViMWVkZjJkYzdkMzNmNDhmYjJlMTMzMWJiCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdWwgNyAxMjo1OToyMCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9zdW5ycGMvY2xudC5jIGIvbmV0L3N1bnJwYy9jbG50LmMKaW5kZXggYmM4Y2E0NzA3MThiN2EuLjg1ZmRkOGJhOTRhNGMyIDEwMDY0NAotLS0gYS9uZXQvc3VucnBjL2NsbnQuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvc3VucnBjL2NsbnQuYwpAQCAtOTYsNyAmIzQzOzk2LDEwIEBAIHN0YXRpYyB2b2lkIHJwY191bnJlZ2lzdGVyX2NsaWVudChzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQpCiAKIHN0YXRpYyB2b2lkIF9fcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXIoc3RydWN0IHJwY19jbG50ICpjbG50KQogewotCXJwY19yZW1vdmVfY2xpZW50X2RpcihjbG50KTsKJiM0MzsJaWYgKGNsbnQtJmd0O3BpcGVmc19zYikgewomIzQzOwkJcnBjX3JlbW92ZV9jbGllbnRfZGlyKGNsbnQpOwomIzQzOwkJY2xudC0mZ3Q7cGlwZWZzX3NiID0gTlVMTDsKJiM0MzsJfQogfQogCiBzdGF0aWMgdm9pZCBycGNfY2xudF9yZW1vdmVfcGlwZWRpcihzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQpCkBAIC0xNzcsMTkgJiM0MzsxODAsMjggQEAgc3RhdGljIGludCBycGNfY2xudF9za2lwX2V2ZW50KHN0cnVjdCBycGNfY2xudCAqY2xudCwgdW5zaWduZWQgbG9uZyBldmVudCkKIH0KIAogc3RhdGljIGludCBfX3JwY19jbG50X2hhbmRsZV9ldmVudChzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQsIHVuc2lnbmVkIGxvbmcgZXZlbnQsCi0JCQkJICAgc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKJiM0MzsJCQkJICAgIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCiB7CiYjNDM7CWludCBlcnIgPSAwOwomIzQzOwogCXN3aXRjaCAoZXZlbnQpIHsKIAljYXNlIFJQQ19QSVBFRlNfTU9VTlQ6Ci0JCXJldHVybiBycGNfc2V0dXBfcGlwZWRpcl9zYihzYiwgY2xudCk7CiYjNDM7CQljbG50LSZndDtwaXBlZnNfc2IgPSBzYjsKJiM0MzsJCWVyciA9IHJwY19zZXR1cF9waXBlZGlyX3NiKHNiLCBjbG50KTsKJiM0MzsJCWlmIChlcnIpCiYjNDM7CQkJY2xudC0mZ3Q7cGlwZWZzX3NiID0gTlVMTDsKJiM0MzsJCWJyZWFrOwogCWNhc2UgUlBDX1BJUEVGU19VTU9VTlQ6Ci0JCV9fcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXIoY2xudCk7CiYjNDM7CQlpZiAoY2xudC0mZ3Q7cGlwZWZzX3NiID09IHNiKSB7CiYjNDM7CQkJX19ycGNfY2xudF9yZW1vdmVfcGlwZWRpcihjbG50KTsKJiM0MzsJCQljbG50LSZndDtwaXBlZnNfc2IgPSBOVUxMOwomIzQzOwkJfQogCQlicmVhazsKIAlkZWZhdWx0OgogCQlwcmludGsoS0VSTl9FUlIgJiMzNDslczogdW5rbm93biBldmVudDogJWxkXG4mIzM0OywgX19mdW5jX18sIGV2ZW50KTsKIAkJcmV0dXJuIC1FTk9UU1VQUDsKIAl9Ci0JcmV0dXJuIDA7CiYjNDM7CXJldHVybiBlcnI7CiB9CiAKIHN0YXRpYyBpbnQgX19ycGNfcGlwZWZzX2V2ZW50KHN0cnVjdCBycGNfY2xudCAqY2xudCwgdW5zaWduZWQgbG9uZyBldmVudCwKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMTI6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjIzNgoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDEyMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFN1blJQQyBDbGllbnQgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IHRoaXMgcGF0Y2ggaGVyZSB0aGF0JiMzOTtzIG1ha2luZyBzb21lIGNoYW5nZXMgaW4gYG5ldC9zdW5ycGMvY2xudC5jYC4gU3BlY2lmaWNhbGx5LCBpdCYjMzk7cyB0b3VjaGluZyBgX19ycGNfY2xudF9yZW1vdmVfcGlwZWRpcmAgYW5kIGBfX3JwY19jbG50X2hhbmRsZV9ldmVudGAg4oCTIGJvdGggaW1wb3J0YW50IGZ1bmN0aW9ucyB3aXRoaW4gdGhlIFJQQyBjbGllbnQmIzM5O3Mgb3BlcmF0aW9uYWwgY29yZS4gSXQgbG9va3MgbGlrZSB0aGUga2V5IGNoYW5nZSByZXZvbHZlcyBhcm91bmQgaG93IHRoZXNlIGZ1bmN0aW9ucyBoYW5kbGUgYGNsbnQtJmd0O3BpcGVmc19zYmAuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgdGhpcyBgcGlwZWZzX3NiYCBpcyB3aXRoaW4gdGhpcyBjb250ZXh0LiBJJiMzOTtsbCBuZWVkIHRvIGRpZyBpbnRvIHRoZSBjb2RlIHRvIGZpZ3VyZSB0aGlzIG91dCwgc3BlY2lmaWNhbGx5IGxvb2tpbmcgYXQgYG5ldC9zdW5ycGMvY2xudC5jYCBhbmQgYWxzbyB0aGUgcmVsZXZhbnQgaGVhZGVyIGZpbGUsIGBpbmNsdWRlL2xpbnV4L3N1bnJwYy9jbG50LmhgLiBUaGF0JiMzOTtzIHdoZXJlIEkmIzM5O2xsIGZpbmQgdGhlIGRlZmluaXRpb24gZm9yIGBjbG50LSZndDtwaXBlZnNfc2JgIGFuZCBpdHMgcHVycG9zZS4gQWgsIHdhaXQgYSBtaW51dGUsIHRoZSBwYXRjaCBpcyBhbHJlYWR5IGFwcGxpZWQuIFRoYXQgbWFrZXMgbXkgam9iIGEgYml0IGVhc2llciwgYXMgSSBjYW4gbm93IHVzZSBgZ3JlcHBlcmAgb3Igc2ltcGx5IGByZWFkLWZpbGVgIHRvIHNlZSBob3cgaXQmIzM5O3MgdXNlZCBhbmQgd2hlcmUuIFRoaXMgd2lsbCBiZSBhIGxvdCBmYXN0ZXIgdGhhbiB0cnlpbmcgdG8gdW5kZXJzdGFuZCB0aGUgYmVmb3JlL2FmdGVyIGZyb20gdGhlIHBhdGNoIGZpbGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMTI6NTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7X19ycGNfY2xudF9yZW1vdmVfcGlwZWRpciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9zdW5ycGMvY2xudC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9zdW5ycGMvY2xudC5jPTg3PXN0YXRpYyB2b2lkIHJwY191bnJlZ2lzdGVyX2NsaWVudChzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQpXG4tLVxubmV0L3N1bnJwYy9jbG50LmMtOTYtXG5uZXQvc3VucnBjL2NsbnQuYzo5NzpzdGF0aWMgdm9pZCBfX3JwY19jbG50X3JlbW92ZV9waXBlZGlyKHN0cnVjdCBycGNfY2xudCAqY2xudClcbm5ldC9zdW5ycGMvY2xudC5jLTk4LXtcbi0tXG5uZXQvc3VucnBjL2NsbnQuYz0xMDU9c3RhdGljIHZvaWQgcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXIoc3RydWN0IHJwY19jbG50ICpjbG50KVxuLS1cbm5ldC9zdW5ycGMvY2xudC5jLTExMi1cdFx0aWYgKHBpcGVmc19zYiA9PSBjbG50LVx1MDAzZXBpcGVmc19zYilcbm5ldC9zdW5ycGMvY2xudC5jOjExMzpcdFx0XHRfX3JwY19jbG50X3JlbW92ZV9waXBlZGlyKGNsbnQpO1xubmV0L3N1bnJwYy9jbG50LmMtMTE0LVx0XHRycGNfcHV0X3NiX25ldChuZXQpO1xuLS1cbm5ldC9zdW5ycGMvY2xudC5jPTE4Mj1zdGF0aWMgaW50IF9fcnBjX2NsbnRfaGFuZGxlX2V2ZW50KHN0cnVjdCBycGNfY2xudCAqY2xudCwgdW5zaWduZWQgbG9uZyBldmVudCxcbi0tXG5uZXQvc3VucnBjL2NsbnQuYy0xOTUtXHRcdGlmIChjbG50LVx1MDAzZXBpcGVmc19zYiA9PSBzYikge1xubmV0L3N1bnJwYy9jbG50LmM6MTk2Olx0XHRcdF9fcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXIoY2xudCk7XG5uZXQvc3VucnBjL2NsbnQuYy0xOTctXHRcdFx0Y2xudC1cdTAwM2VwaXBlZnNfc2IgPSBOVUxMO1xuLS1cbm5ldC9zdW5ycGMvY2xudC5jPTI5Nj1zdGF0aWMgaW50IHJwY19jbGllbnRfcmVnaXN0ZXIoc3RydWN0IHJwY19jbG50ICpjbG50LFxuLS1cbm5ldC9zdW5ycGMvY2xudC5jLTMzMi1cdHJwY191bnJlZ2lzdGVyX2NsaWVudChjbG50KTtcbm5ldC9zdW5ycGMvY2xudC5jOjMzMzpcdF9fcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXIoY2xudCk7XG5uZXQvc3VucnBjL2NsbnQuYy0zMzQtb3V0OlxuLS1cbm5ldC9zdW5ycGMvY2xudC5jPTczNz1pbnQgcnBjX3N3aXRjaF9jbGllbnRfdHJhbnNwb3J0KHN0cnVjdCBycGNfY2xudCAqY2xudCxcbi0tXG5uZXQvc3VucnBjL2NsbnQuYy03NjUtXHRycGNfdW5yZWdpc3Rlcl9jbGllbnQoY2xudCk7XG5uZXQvc3VucnBjL2NsbnQuYzo3NjY6XHRfX3JwY19jbG50X3JlbW92ZV9waXBlZGlyKGNsbnQpO1xubmV0L3N1bnJwYy9jbG50LmMtNzY3LVx0cnBjX3N5c2ZzX2NsaWVudF9kZXN0cm95KGNsbnQpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA3IDEyOjU5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMyNjQKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiA3MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipTdW5SUEMgUGlwZWZzIEJ1ZyBGaXggLSBJbml0aWFsIEFzc2Vzc21lbnQqKgoKT2theSwgc28gdGhpcyBwYXRjaCBhZGRyZXNzZXMgYSBwcmV0dHkgc3BlY2lmaWMgYnVnIGluIHRoZSBzdW5ycGMgbW9kdWxlLCBkZWFsaW5nIHdpdGggcGlwZWZzIG1vdW50cyBhbmQgdW5tb3VudHMuIEl0IGxvb2tzIGxpa2UgaXQmIzM5O3MgYWRkaW5nIGBjbG50LSZndDtwaXBlZnNfc2IgPSBzYmAgYW5kIHRoZW4gdXNpbmcgYSBjaGVjayBvZiBgY2xudC0mZ3Q7cGlwZWZzX3NiID09IHNiYCBiZWZvcmUgZGVsZXRpbmcgdGhlIHBpcGVkaXIuIEZ1bmN0aW9uYWxseSwgdGhpcyBzZWVtcyBsaWtlIGl0JiMzOTtzIGluIHRoZSByaWdodCBkaXJlY3Rpb24uIEl0JiMzOTtzIGEgY2xlYW4gYXBwcm9hY2ggdG8gZW5zdXJpbmcgdGhlIGNvcnJlY3Qgc3VwZXJibG9jayBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIHBpcGVkaXIgYmVmb3JlIGF0dGVtcHRpbmcgcmVtb3ZhbCBkdXJpbmcgdW5tb3VudCwgcHJldmVudGluZyB0aGF0IHBlc2t5IGRvdWJsZS1mcmVlLiBHaXZlbiB0aGlzIGlzIGEgcGlwZWZzIGJ1ZyBmaXgsIGl0JiMzOTtzIGRlZmluaXRlbHkgc29tZXRoaW5nIHRoYXQmIzM5O3Mgd29ydGggYSBnb29kIHJvdW5kIG9mIGZ1enppbmcgdG8gc2VlIGlmIGFueSBlZGdlIGNhc2VzIGNyb3AgdXAuIE5vdywgbGV0IG1lIGZpbmQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0byBtYWtlIHN1cmUgSSBnZXQgYSBjb21wcmVoZW5zaXZlIGZ1enppbmcgc2V0dXAgZm9yIHN1bnJwYyB0byBtYWtlIHN1cmUgYWxsIGNvbmZpZ3VyYXRpb25zIG9mIHRoZSBidWcgYXJlIGlkZW50aWZpZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMTM6MDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFNVTlJQQyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9zdW5ycGMvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvc3VucnBjL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbm5ldC9zdW5ycGMvS2NvbmZpZzoyOmNvbmZpZyBTVU5SUENcbm5ldC9zdW5ycGMvS2NvbmZpZy0zLVx0dHJpc3RhdGVcbi0tXG5uZXQvc3VucnBjL0tjb25maWctNS1cbm5ldC9zdW5ycGMvS2NvbmZpZzo2OmNvbmZpZyBTVU5SUENfR1NTXG5uZXQvc3VucnBjL0tjb25maWctNy1cdHRyaXN0YXRlXG4tLVxubmV0L3N1bnJwYy9LY29uZmlnLTEwLVxubmV0L3N1bnJwYy9LY29uZmlnOjExOmNvbmZpZyBTVU5SUENfQkFDS0NIQU5ORUxcbm5ldC9zdW5ycGMvS2NvbmZpZy0xMi1cdGJvb2xcbi0tXG5uZXQvc3VucnBjL0tjb25maWctMTQtXG5uZXQvc3VucnBjL0tjb25maWc6MTU6Y29uZmlnIFNVTlJQQ19TV0FQXG5uZXQvc3VucnBjL0tjb25maWctMTYtXHRib29sXG4tLVxubmV0L3N1bnJwYy9LY29uZmlnPTE5PWNvbmZpZyBSUENTRUNfR1NTX0tSQjVcbi0tXG5uZXQvc3VucnBjL0tjb25maWctMzUtXG5uZXQvc3VucnBjL0tjb25maWc6MzY6Y29uZmlnIFNVTlJQQ19ERUJVR1xubmV0L3N1bnJwYy9LY29uZmlnLTM3LVx0Ym9vbCBcJiMzNDtSUEM6IEVuYWJsZSBkcHJpbnRrIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9zdW5ycGMvS2NvbmZpZy00OS1cbm5ldC9zdW5ycGMvS2NvbmZpZzo1MDpjb25maWcgU1VOUlBDX0RFQlVHX1RSQUNFXG5uZXQvc3VucnBjL0tjb25maWctNTEtXHRib29sIFwmIzM0O1JQQzogU2VuZCBkZnByaW50aygpIG91dHB1dCB0byB0aGUgdHJhY2UgYnVmZmVyXCYjMzQ7XG4tLVxubmV0L3N1bnJwYy9LY29uZmlnLTYzLVxubmV0L3N1bnJwYy9LY29uZmlnOjY0OmNvbmZpZyBTVU5SUENfWFBSVF9SRE1BXG5uZXQvc3VucnBjL0tjb25maWctNjUtXHR0cmlzdGF0ZSBcJiMzNDtSUEMtb3Zlci1SRE1BIHRyYW5zcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA3IDEzOjAwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT43bTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM5NTcKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiAxOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKkludmVzdGlnYXRpbmcgU1VOUlBDIERlcGVuZGVuY3kqKgoKUmlnaHQsIHNvIFNVTlJQQyBpcyB0aGUgc3RhbmRhcmQgcHJvdG9jb2wgZm9yIE5GUy4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gY2hlY2sgaWYgdGhhdCYjMzk7cyB0aGUgb25seSBwbGFjZSBpdCYjMzk7cyBzaG93aW5nIHVwLiBJIHdhbnQgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgY29uZmlndXJhdGlvbnMsIGFwcGxpY2F0aW9ucywgb3Igc3lzdGVtcyB3aGVyZSBTVU5SUEMgaXMgYmVpbmcgZXhwbGljaXRseSBzcGVjaWZpZWQgb3IgdXNlZC4gSSYjMzk7bSBsb29raW5nIGZvciBwb3RlbnRpYWwgZGVwZW5kZW5jaWVzIG9yIGFyZWFzIHdoZXJlIHRoaXMgbWlnaHQgYmUgYSBjb25zdHJhaW50IG9yIGEgcG9pbnQgb2YgaW50ZXJlc3QgZm9yIHBlcmZvcm1hbmNlIHR1bmluZyBvciBzZWN1cml0eSBoYXJkZW5pbmcuIEVzc2VudGlhbGx5LCBJJiMzOTttIHRyeWluZyB0byBkZXRlcm1pbmUgdGhlIGJyZWFkdGggb2YgaXRzIGltcGFjdCBiZWZvcmUgZGlnZ2luZyBhbnkgZnVydGhlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNyAxMzowNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzZWxlY3QgU1VOUlBDJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL0tjb25maWc9MzgyPWNvbmZpZyBORlNfQ09NTU9OX0xPQ0FMSU9fU1VQUE9SVFxuLS1cbmZzL0tjb25maWctMzg2LVx0ZGVmYXVsdCBtIGlmIE5GU0Q9bSBcdTAwMjZcdTAwMjYgTkZTX0ZTPW1cbmZzL0tjb25maWc6Mzg3Olx0c2VsZWN0IFNVTlJQQ1xuZnMvS2NvbmZpZy0zODgtXG4tLVxuZnMvbmZzL0tjb25maWc9Mj1jb25maWcgTkZTX0ZTXG4tLVxuZnMvbmZzL0tjb25maWctNi1cdHNlbGVjdCBMT0NLRFxuZnMvbmZzL0tjb25maWc6NzpcdHNlbGVjdCBTVU5SUENcbmZzL25mcy9LY29uZmlnLTgtXHRzZWxlY3QgTkZTX0NPTU1PTlxuLS1cbmZzL25mcy9LY29uZmlnPTc3PWNvbmZpZyBORlNfVjRcbi0tXG5mcy9uZnMvS2NvbmZpZy04MC1cdHNlbGVjdCBLRVlTXG5mcy9uZnMvS2NvbmZpZzo4MTpcdHNlbGVjdCBTVU5SUENfQkFDS0NIQU5ORUxcbmZzL25mcy9LY29uZmlnLTgyLVx0aGVscFxuLS1cbmZzL25mcy9LY29uZmlnPTkyPWNvbmZpZyBORlNfU1dBUFxuLS1cbmZzL25mcy9LY29uZmlnLTk1LVx0ZGVwZW5kcyBvbiBORlNfRlMgXHUwMDI2XHUwMDI2IFNXQVBcbmZzL25mcy9LY29uZmlnOjk2Olx0c2VsZWN0IFNVTlJQQ19TV0FQXG5mcy9uZnMvS2NvbmZpZy05Ny1cdGhlbHBcbi0tXG5mcy9uZnNkL0tjb25maWc9Mj1jb25maWcgTkZTRFxuLS1cbmZzL25mc2QvS2NvbmZpZy0xMS1cdHNlbGVjdCBMT0NLRFxuZnMvbmZzZC9LY29uZmlnOjEyOlx0c2VsZWN0IFNVTlJQQ1xuZnMvbmZzZC9LY29uZmlnLTEzLVx0c2VsZWN0IEVYUE9SVEZTXG4tLVxubmV0L3N1bnJwYy9LY29uZmlnPTE5PWNvbmZpZyBSUENTRUNfR1NTX0tSQjVcbi0tXG5uZXQvc3VucnBjL0tjb25maWctMjItXHRkZWZhdWx0IHlcbm5ldC9zdW5ycGMvS2NvbmZpZzoyMzpcdHNlbGVjdCBTVU5SUENfR1NTXG5uZXQvc3VucnBjL0tjb25maWctMjQtXHRzZWxlY3QgQ1JZUFRPX0tSQjVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNyAxMzowNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NTc0CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMTMyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBORlMgQ2xpZW50IEV2ZW50IEhhbmRsaW5nKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBORlMtcmVsYXRlZCBjb2RlLCBzcGVjaWZpY2FsbHkgZm9jdXNpbmcgb24gdGhlIGNsaWVudC1zaWRlIGludGVyYWN0aW9uLiBGcm9tIHdoYXQgSSBzZWUsIGBORlNfRlNgIGFuZCBgTkZTRGAgc2VlbSB0byBiZSB0aGUgcHJpbWFyeSBtb2R1bGVzIGluIHBsYXkgaGVyZS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGV4YW1pbmUgdGhlIG1vZGlmaWVkIGZ1bmN0aW9ucyB0byB1bmRlcnN0YW5kIHRoZSBjaGFuZ2VzIG1hZGUuIExldCYjMzk7cyBzZWUuLi4gdGhlIGRpZmZzIGhpZ2hsaWdodCB0aGVzZSBmdW5jdGlvbnM6IGBfX3JwY19jbG50X2hhbmRsZV9ldmVudGAsIGBfX3JwY19jbG50X3JlbW92ZV9waXBlZGlyYCwgYHJwY19jbG50X3JlbW92ZV9waXBlZGlyYCwgYHJwY19jbG50X3NraXBfZXZlbnRgLCBhbmQgYHJwY19zZXR1cF9waXBlZGlyX3NiYC4KCkhvbGQgb24uLi4gSSBub3RpY2VkIHRoYXQgYF9fcnBjX2NsbnRfaGFuZGxlX2V2ZW50YCBpcyBjYWxsZWQgZnJvbSBgX19ycGNfcGlwZWZzX2V2ZW50YC4gVGhhdOKAmXMgaW50ZXJlc3RpbmcsIHNpbmNlIGBfX3JwY19waXBlZnNfZXZlbnRgIGxvb2tzIGxpa2UgaXQgaXMgYXQgYSBoaWdoZXIgbGV2ZWwuIFRpbWUgdG8gdHJhY2UgYmFjayBhbmQgZGV0ZXJtaW5lIHRoZSBvcmlnaW4gb2YgdGhlIGV2ZW50LiBJIHNob3VsZCBmaW5kIG91dCB3aGVyZSBgX19ycGNfcGlwZWZzX2V2ZW50YCBpcyBjYWxsZWQgdG8gZ2V0IGEgY2xlYXJlciBwaWN0dXJlIG9mIHRoZSBldmVudCBmbG93IHdpdGhpbiB0aGUgTkZTIGNsaWVudC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMTM6MDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7X19ycGNfcGlwZWZzX2V2ZW50JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3N1bnJwYy9jbG50LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3N1bnJwYy9jbG50LmM9MTgyPXN0YXRpYyBpbnQgX19ycGNfY2xudF9oYW5kbGVfZXZlbnQoc3RydWN0IHJwY19jbG50ICpjbG50LCB1bnNpZ25lZCBsb25nIGV2ZW50LFxuLS1cbm5ldC9zdW5ycGMvY2xudC5jLTIwNi1cbm5ldC9zdW5ycGMvY2xudC5jOjIwNzpzdGF0aWMgaW50IF9fcnBjX3BpcGVmc19ldmVudChzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQsIHVuc2lnbmVkIGxvbmcgZXZlbnQsXG5uZXQvc3VucnBjL2NsbnQuYy0yMDgtXHRcdFx0XHRzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxuLS1cbm5ldC9zdW5ycGMvY2xudC5jPTIzNz1zdGF0aWMgaW50IHJwY19waXBlZnNfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwgdW5zaWduZWQgbG9uZyBldmVudCxcbi0tXG5uZXQvc3VucnBjL2NsbnQuYy0yNDQtXHR3aGlsZSAoKGNsbnQgPSBycGNfZ2V0X2NsaWVudF9mb3JfZXZlbnQoc2ItXHUwMDNlc19mc19pbmZvLCBldmVudCkpKSB7XG5uZXQvc3VucnBjL2NsbnQuYzoyNDU6XHRcdGVycm9yID0gX19ycGNfcGlwZWZzX2V2ZW50KGNsbnQsIGV2ZW50LCBzYik7XG5uZXQvc3VucnBjL2NsbnQuYy0yNDYtXHRcdGlmIChlcnJvcilcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMTM6MDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTI0OAoJCQkJCQkJb3V0cHV0OiAxMjcKCQkJCQkJCXRob3VnaHRzOiAyOTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIFJQQyBQaXBlZnMgRXZlbnQgTm90aWZpZXIqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyBhbGwgYWJvdXQgdGhhdCBub3RpZmllciBibG9jayBmb3IgcGlwZWZzIGV2ZW50cywgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgUlBDIGNsaWVudC4gTXkgaW5pdGlhbCBmb2N1cyBoYXMgdG8gYmUgb24gYF9fcnBjX2NsbnRfaGFuZGxlX2V2ZW50YCBhbmQgYF9fcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXJgLCBiZWNhdXNlIHRob3NlIGFyZSB3aGVyZSB0aGUgZXZlbnQgaGFuZGxpbmcgYW5kIGRpcmVjdG9yeSByZW1vdmFsIGxvZ2ljIHJlc2lkZS4KCkkgbmVlZCB0byBjb25maXJtIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucy4gVGhlIHRleHQgc3VnZ2VzdHMgdGhhdCBgU1VOUlBDYCBtaWdodCBiZSBzdWZmaWNpZW50LCBidXQgSSBuZWVkIHRvIG1ha2Ugc3VyZS4gWWVzLCBnb29kLCBib3RoIGBORlNfRlNgIGFuZCBgTkZTRGAgZW5hYmxlIGBTVU5SUENgLiBJJiMzOTtsbCB3YW50IHRvIGFkZCB0aGVzZSB0byBteSBjb25maWd1cmF0aW9uIHByb2ZpbGUuIEFjdHVhbGx5LCB3YWl0IGEgc2Vjb25kLiBgU1VOUlBDYCBpcyBhIHRyaXN0YXRlLCBzbyBJIGNvdWxkIGp1c3QgZW5hYmxlIGl0IGRpcmVjdGx5LiBIb3dldmVyLCBgTkZTX0ZTYCBmZWVscyBtb3JlIGFwcHJvcHJpYXRlIHNpbmNlIGl0JiMzOTtzIHRoZSBhY3R1YWwgdXNlciBvZiB0aGlzIGZ1bmN0aW9uYWxpdHkuIFRoZXJlZm9yZSwgSeKAmWxsIHByaW9yaXRpemUgYWRkaW5nIGBORlNfRlNgIGFuZCBgTkZTRGAgYXMgbXkgcHJpbWFyeSBjb25maWcgb3B0aW9ucy4KCkluIHRlcm1zIG9mIHRoZSBjb3JlIHJlYXNvbmluZywgdGhpcyBwYXRjaCBpcyBhZGRyZXNzaW5nIGEgcG90ZW50aWFsIGJ1ZyBpbiB0aGUgc3VucnBjIGNsaWVudC4gSXQgbG9va3MgbGlrZSBpdCBkZWFscyB3aXRoIGBjbG50LSZndDtwaXBlZnNfc2JgLCBlbnN1cmluZyBpdCYjMzk7cyBwcm9wZXJseSBzZXQgYW5kIGNsZWFyZWQgdG8gcHJldmVudCBpbmNvcnJlY3QgcGlwZWRpciByZW1vdmFsLiBUaGlzIGlzIGNyaXRpY2FsIGZ1bmN0aW9uYWwgbG9naWMgZm9yIFJQQyBhbmQgTkZTLCB3aGljaCBpcyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuCgpMZXQmIzM5O3MgZG8gYSBxdWljayBzd2VlcCBmb3IgYW55IHJlbGF0ZWQgY29uZmlndXJhdGlvbnMuIEkga25vdyBgU1VOUlBDYCBpcyB0aGUgYmlnIG9uZSBoZXJlLCBhbmQgSSBub3RlZCBgTkZTX1Y0YCBjb3VsZCBiZSByZWxhdGVkLiBIb3dldmVyLCBgTkZTX0ZTYCBpcyB0aGUgbWFpbiB0aGluZyB0byBjb25zaWRlciBmb3IgdGhpcyBmdXp6aW5nIGVmZm9ydC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMTM6MDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GU19GUyYjMzQ7LAogICAgJiMzNDtORlNEJiMzNDssCiAgICAmIzM0O1NVTlJQQyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O19fcnBjX2NsbnRfaGFuZGxlX2V2ZW50JiMzNDssCiAgICAmIzM0O19fcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGhhbmRsaW5nIG9mIFJQQyBwaXBlZnMgbW91bnQvdW1vdW50IGV2ZW50cyBpbiB0aGUgc3VucnBjIGNsaWVudCwgZml4aW5nIGEgYnVnIHdoZXJlIGNsbnQtXHUwMDNlcGlwZWZzX3NiIHdhcyBub3QgcHJvcGVybHkgc2V0IG9yIGNsZWFyZWQuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIGxvZ2ljIGZvciBSUEMvTkZTIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtORlNfRlMmIzM0OywKICAgICYjMzQ7TkZTRCYjMzQ7LAogICAgJiMzNDtTVU5SUEMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtfX3JwY19jbG50X2hhbmRsZV9ldmVudCYjMzQ7LAogICAgJiMzNDtfX3JwY19jbG50X3JlbW92ZV9waXBlZGlyJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBoYW5kbGluZyBvZiBSUEMgcGlwZWZzIG1vdW50L3Vtb3VudCBldmVudHMgaW4gdGhlIHN1bnJwYyBjbGllbnQsIGZpeGluZyBhIGJ1ZyB3aGVyZSBjbG50LVx1MDAzZXBpcGVmc19zYiB3YXMgbm90IHByb3Blcmx5IHNldCBvciBjbGVhcmVkLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29yZSBsb2dpYyBmb3IgUlBDL05GUyBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDEyOjU5OjIyLjY4MDUxMzMyM1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUxODE2NzcwNzI0NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORlNfRlNcIixcbiAgICBcIk5GU0RcIixcbiAgICBcIlNVTlJQQ1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIl9fcnBjX2NsbnRfaGFuZGxlX2V2ZW50XCIsXG4gICAgXCJfX3JwY19jbG50X3JlbW92ZV9waXBlZGlyXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGhhbmRsaW5nIG9mIFJQQyBwaXBlZnMgbW91bnQvdW1vdW50IGV2ZW50cyBpbiB0aGUgc3VucnBjIGNsaWVudCwgZml4aW5nIGEgYnVnIHdoZXJlIGNsbnQtXFx1MDAzZXBpcGVmc19zYiB3YXMgbm90IHByb3Blcmx5IHNldCBvciBjbGVhcmVkLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29yZSBsb2dpYyBmb3IgUlBDL05GUyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDdUMTI6NTk6MjIuNjgwNTI0MTAzWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MDUyODA3MzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA1NDQ4ZDgzM2U0MjFmYTViMWVkZjJkYzdkMzNmNDhmYjJlMTMzMWJiXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUdWUgSnVsIDcgMTI6NTk6MjAgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L3N1bnJwYy9jbG50LmMgYi9uZXQvc3VucnBjL2NsbnQuY1xcbmluZGV4IGJjOGNhNDcwNzE4YjdhLi44NWZkZDhiYTk0YTRjMiAxMDA2NDRcXG4tLS0gYS9uZXQvc3VucnBjL2NsbnQuY1xcbisrKyBiL25ldC9zdW5ycGMvY2xudC5jXFxuQEAgLTk2LDcgKzk2LDEwIEBAIHN0YXRpYyB2b2lkIHJwY191bnJlZ2lzdGVyX2NsaWVudChzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQpXFxuIFxcbiBzdGF0aWMgdm9pZCBfX3JwY19jbG50X3JlbW92ZV9waXBlZGlyKHN0cnVjdCBycGNfY2xudCAqY2xudClcXG4ge1xcbi1cXHRycGNfcmVtb3ZlX2NsaWVudF9kaXIoY2xudCk7XFxuK1xcdGlmIChjbG50LVxcdTAwM2VwaXBlZnNfc2IpIHtcXG4rXFx0XFx0cnBjX3JlbW92ZV9jbGllbnRfZGlyKGNsbnQpO1xcbitcXHRcXHRjbG50LVxcdTAwM2VwaXBlZnNfc2IgPSBOVUxMO1xcbitcXHR9XFxuIH1cXG4gXFxuIHN0YXRpYyB2b2lkIHJwY19jbG50X3JlbW92ZV9waXBlZGlyKHN0cnVjdCBycGNfY2xudCAqY2xudClcXG5AQCAtMTc3LDE5ICsxODAsMjggQEAgc3RhdGljIGludCBycGNfY2xudF9za2lwX2V2ZW50KHN0cnVjdCBycGNfY2xudCAqY2xudCwgdW5zaWduZWQgbG9uZyBldmVudClcXG4gfVxcbiBcXG4gc3RhdGljIGludCBfX3JwY19jbG50X2hhbmRsZV9ldmVudChzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQsIHVuc2lnbmVkIGxvbmcgZXZlbnQsXFxuLVxcdFxcdFxcdFxcdCAgIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXFxuK1xcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxcbiB7XFxuK1xcdGludCBlcnIgPSAwO1xcbitcXG4gXFx0c3dpdGNoIChldmVudCkge1xcbiBcXHRjYXNlIFJQQ19QSVBFRlNfTU9VTlQ6XFxuLVxcdFxcdHJldHVybiBycGNfc2V0dXBfcGlwZWRpcl9zYihzYiwgY2xudCk7XFxuK1xcdFxcdGNsbnQtXFx1MDAzZXBpcGVmc19zYiA9IHNiO1xcbitcXHRcXHRlcnIgPSBycGNfc2V0dXBfcGlwZWRpcl9zYihzYiwgY2xudCk7XFxuK1xcdFxcdGlmIChlcnIpXFxuK1xcdFxcdFxcdGNsbnQtXFx1MDAzZXBpcGVmc19zYiA9IE5VTEw7XFxuK1xcdFxcdGJyZWFrO1xcbiBcXHRjYXNlIFJQQ19QSVBFRlNfVU1PVU5UOlxcbi1cXHRcXHRfX3JwY19jbG50X3JlbW92ZV9waXBlZGlyKGNsbnQpO1xcbitcXHRcXHRpZiAoY2xudC1cXHUwMDNlcGlwZWZzX3NiID09IHNiKSB7XFxuK1xcdFxcdFxcdF9fcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXIoY2xudCk7XFxuK1xcdFxcdFxcdGNsbnQtXFx1MDAzZXBpcGVmc19zYiA9IE5VTEw7XFxuK1xcdFxcdH1cXG4gXFx0XFx0YnJlYWs7XFxuIFxcdGRlZmF1bHQ6XFxuIFxcdFxcdHByaW50ayhLRVJOX0VSUiBcXFwiJXM6IHVua25vd24gZXZlbnQ6ICVsZFxcXFxuXFxcIiwgX19mdW5jX18sIGV2ZW50KTtcXG4gXFx0XFx0cmV0dXJuIC1FTk9UU1VQUDtcXG4gXFx0fVxcbi1cXHRyZXR1cm4gMDtcXG4rXFx0cmV0dXJuIGVycjtcXG4gfVxcbiBcXG4gc3RhdGljIGludCBfX3JwY19waXBlZnNfZXZlbnQoc3RydWN0IHJwY19jbG50ICpjbG50LCB1bnNpZ25lZCBsb25nIGV2ZW50LFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QxMjo1OToyMy40ODY5MDM3OTNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUxNzM2MTMwNTIzNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORlNfRlNcIixcbiAgICBcIk5GU0RcIixcbiAgICBcIlNVTlJQQ1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIl9fcnBjX2NsbnRfaGFuZGxlX2V2ZW50XCIsXG4gICAgXCJfX3JwY19jbG50X3JlbW92ZV9waXBlZGlyXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGhhbmRsaW5nIG9mIFJQQyBwaXBlZnMgbW91bnQvdW1vdW50IGV2ZW50cyBpbiB0aGUgc3VucnBjIGNsaWVudCwgZml4aW5nIGEgYnVnIHdoZXJlIGNsbnQtXFx1MDAzZXBpcGVmc19zYiB3YXMgbm90IHByb3Blcmx5IHNldCBvciBjbGVhcmVkLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29yZSBsb2dpYyBmb3IgUlBDL05GUyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA1NDQ4ZDgzM2U0MjFmYTViMWVkZjJkYzdkMzNmNDhmYjJlMTMzMWJiXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdWwgNyAxMjo1OToyMCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9zdW5ycGMvY2xudC5jIGIvbmV0L3N1bnJwYy9jbG50LmNcbmluZGV4IGJjOGNhNDcwNzE4YjdhLi44NWZkZDhiYTk0YTRjMiAxMDA2NDRcbi0tLSBhL25ldC9zdW5ycGMvY2xudC5jXG4rKysgYi9uZXQvc3VucnBjL2NsbnQuY1xuQEAgLTk2LDcgKzk2LDEwIEBAIHN0YXRpYyB2b2lkIHJwY191bnJlZ2lzdGVyX2NsaWVudChzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQpXG4gXG4gc3RhdGljIHZvaWQgX19ycGNfY2xudF9yZW1vdmVfcGlwZWRpcihzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQpXG4ge1xuLVx0cnBjX3JlbW92ZV9jbGllbnRfZGlyKGNsbnQpO1xuK1x0aWYgKGNsbnQtXHUwMDNlcGlwZWZzX3NiKSB7XG4rXHRcdHJwY19yZW1vdmVfY2xpZW50X2RpcihjbG50KTtcbitcdFx0Y2xudC1cdTAwM2VwaXBlZnNfc2IgPSBOVUxMO1xuK1x0fVxuIH1cbiBcbiBzdGF0aWMgdm9pZCBycGNfY2xudF9yZW1vdmVfcGlwZWRpcihzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQpXG5AQCAtMTc3LDE5ICsxODAsMjggQEAgc3RhdGljIGludCBycGNfY2xudF9za2lwX2V2ZW50KHN0cnVjdCBycGNfY2xudCAqY2xudCwgdW5zaWduZWQgbG9uZyBldmVudClcbiB9XG4gXG4gc3RhdGljIGludCBfX3JwY19jbG50X2hhbmRsZV9ldmVudChzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQsIHVuc2lnbmVkIGxvbmcgZXZlbnQsXG4tXHRcdFx0XHQgICBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxuK1x0XHRcdFx0ICAgIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXG4ge1xuK1x0aW50IGVyciA9IDA7XG4rXG4gXHRzd2l0Y2ggKGV2ZW50KSB7XG4gXHRjYXNlIFJQQ19QSVBFRlNfTU9VTlQ6XG4tXHRcdHJldHVybiBycGNfc2V0dXBfcGlwZWRpcl9zYihzYiwgY2xudCk7XG4rXHRcdGNsbnQtXHUwMDNlcGlwZWZzX3NiID0gc2I7XG4rXHRcdGVyciA9IHJwY19zZXR1cF9waXBlZGlyX3NiKHNiLCBjbG50KTtcbitcdFx0aWYgKGVycilcbitcdFx0XHRjbG50LVx1MDAzZXBpcGVmc19zYiA9IE5VTEw7XG4rXHRcdGJyZWFrO1xuIFx0Y2FzZSBSUENfUElQRUZTX1VNT1VOVDpcbi1cdFx0X19ycGNfY2xudF9yZW1vdmVfcGlwZWRpcihjbG50KTtcbitcdFx0aWYgKGNsbnQtXHUwMDNlcGlwZWZzX3NiID09IHNiKSB7XG4rXHRcdFx0X19ycGNfY2xudF9yZW1vdmVfcGlwZWRpcihjbG50KTtcbitcdFx0XHRjbG50LVx1MDAzZXBpcGVmc19zYiA9IE5VTEw7XG4rXHRcdH1cbiBcdFx0YnJlYWs7XG4gXHRkZWZhdWx0OlxuIFx0XHRwcmludGsoS0VSTl9FUlIgXCIlczogdW5rbm93biBldmVudDogJWxkXFxuXCIsIF9fZnVuY19fLCBldmVudCk7XG4gXHRcdHJldHVybiAtRU5PVFNVUFA7XG4gXHR9XG4tXHRyZXR1cm4gMDtcbitcdHJldHVybiBlcnI7XG4gfVxuIFxuIHN0YXRpYyBpbnQgX19ycGNfcGlwZWZzX2V2ZW50KHN0cnVjdCBycGNfY2xudCAqY2xudCwgdW5zaWduZWQgbG9uZyBldmVudCxcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDEyOjU5OjIzLjQ4NjkwNjU1M1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE3MjkwMTQ0MDAwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgU3VuUlBDIENsaWVudCBQYXRjaCoqXG5cbk9rYXksIHNvIEkndmUgZ290IHRoaXMgcGF0Y2ggaGVyZSB0aGF0J3MgbWFraW5nIHNvbWUgY2hhbmdlcyBpbiBgbmV0L3N1bnJwYy9jbG50LmNgLiBTcGVjaWZpY2FsbHksIGl0J3MgdG91Y2hpbmcgYF9fcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXJgIGFuZCBgX19ycGNfY2xudF9oYW5kbGVfZXZlbnRgIOKAkyBib3RoIGltcG9ydGFudCBmdW5jdGlvbnMgd2l0aGluIHRoZSBSUEMgY2xpZW50J3Mgb3BlcmF0aW9uYWwgY29yZS4gSXQgbG9va3MgbGlrZSB0aGUga2V5IGNoYW5nZSByZXZvbHZlcyBhcm91bmQgaG93IHRoZXNlIGZ1bmN0aW9ucyBoYW5kbGUgYGNsbnQtXHUwMDNlcGlwZWZzX3NiYC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCB0aGlzIGBwaXBlZnNfc2JgIGlzIHdpdGhpbiB0aGlzIGNvbnRleHQuIEknbGwgbmVlZCB0byBkaWcgaW50byB0aGUgY29kZSB0byBmaWd1cmUgdGhpcyBvdXQsIHNwZWNpZmljYWxseSBsb29raW5nIGF0IGBuZXQvc3VucnBjL2NsbnQuY2AgYW5kIGFsc28gdGhlIHJlbGV2YW50IGhlYWRlciBmaWxlLCBgaW5jbHVkZS9saW51eC9zdW5ycGMvY2xudC5oYC4gVGhhdCdzIHdoZXJlIEknbGwgZmluZCB0aGUgZGVmaW5pdGlvbiBmb3IgYGNsbnQtXHUwMDNlcGlwZWZzX3NiYCBhbmQgaXRzIHB1cnBvc2UuIEFoLCB3YWl0IGEgbWludXRlLCB0aGUgcGF0Y2ggaXMgYWxyZWFkeSBhcHBsaWVkLiBUaGF0IG1ha2VzIG15IGpvYiBhIGJpdCBlYXNpZXIsIGFzIEkgY2FuIG5vdyB1c2UgYGdyZXBwZXJgIG9yIHNpbXBseSBgcmVhZC1maWxlYCB0byBzZWUgaG93IGl0J3MgdXNlZCBhbmQgd2hlcmUuIFRoaXMgd2lsbCBiZSBhIGxvdCBmYXN0ZXIgdGhhbiB0cnlpbmcgdG8gdW5kZXJzdGFuZCB0aGUgYmVmb3JlL2FmdGVyIGZyb20gdGhlIHBhdGNoIGZpbGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyMzYsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjIsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QxMjo1OTo0MC43NzcwNTQxNzNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjY5ODczNTQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl9fcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3N1bnJwYy9jbG50LmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3N1bnJwYy9jbG50LmM9ODc9c3RhdGljIHZvaWQgcnBjX3VucmVnaXN0ZXJfY2xpZW50KHN0cnVjdCBycGNfY2xudCAqY2xudClcXG4tLVxcbm5ldC9zdW5ycGMvY2xudC5jLTk2LVxcbm5ldC9zdW5ycGMvY2xudC5jOjk3OnN0YXRpYyB2b2lkIF9fcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXIoc3RydWN0IHJwY19jbG50ICpjbG50KVxcbm5ldC9zdW5ycGMvY2xudC5jLTk4LXtcXG4tLVxcbm5ldC9zdW5ycGMvY2xudC5jPTEwNT1zdGF0aWMgdm9pZCBycGNfY2xudF9yZW1vdmVfcGlwZWRpcihzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQpXFxuLS1cXG5uZXQvc3VucnBjL2NsbnQuYy0xMTItXFx0XFx0aWYgKHBpcGVmc19zYiA9PSBjbG50LVxcdTAwM2VwaXBlZnNfc2IpXFxubmV0L3N1bnJwYy9jbG50LmM6MTEzOlxcdFxcdFxcdF9fcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXIoY2xudCk7XFxubmV0L3N1bnJwYy9jbG50LmMtMTE0LVxcdFxcdHJwY19wdXRfc2JfbmV0KG5ldCk7XFxuLS1cXG5uZXQvc3VucnBjL2NsbnQuYz0xODI9c3RhdGljIGludCBfX3JwY19jbG50X2hhbmRsZV9ldmVudChzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQsIHVuc2lnbmVkIGxvbmcgZXZlbnQsXFxuLS1cXG5uZXQvc3VucnBjL2NsbnQuYy0xOTUtXFx0XFx0aWYgKGNsbnQtXFx1MDAzZXBpcGVmc19zYiA9PSBzYikge1xcbm5ldC9zdW5ycGMvY2xudC5jOjE5NjpcXHRcXHRcXHRfX3JwY19jbG50X3JlbW92ZV9waXBlZGlyKGNsbnQpO1xcbm5ldC9zdW5ycGMvY2xudC5jLTE5Ny1cXHRcXHRcXHRjbG50LVxcdTAwM2VwaXBlZnNfc2IgPSBOVUxMO1xcbi0tXFxubmV0L3N1bnJwYy9jbG50LmM9Mjk2PXN0YXRpYyBpbnQgcnBjX2NsaWVudF9yZWdpc3RlcihzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQsXFxuLS1cXG5uZXQvc3VucnBjL2NsbnQuYy0zMzItXFx0cnBjX3VucmVnaXN0ZXJfY2xpZW50KGNsbnQpO1xcbm5ldC9zdW5ycGMvY2xudC5jOjMzMzpcXHRfX3JwY19jbG50X3JlbW92ZV9waXBlZGlyKGNsbnQpO1xcbm5ldC9zdW5ycGMvY2xudC5jLTMzNC1vdXQ6XFxuLS1cXG5uZXQvc3VucnBjL2NsbnQuYz03Mzc9aW50IHJwY19zd2l0Y2hfY2xpZW50X3RyYW5zcG9ydChzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQsXFxuLS1cXG5uZXQvc3VucnBjL2NsbnQuYy03NjUtXFx0cnBjX3VucmVnaXN0ZXJfY2xpZW50KGNsbnQpO1xcbm5ldC9zdW5ycGMvY2xudC5jOjc2NjpcXHRfX3JwY19jbG50X3JlbW92ZV9waXBlZGlyKGNsbnQpO1xcbm5ldC9zdW5ycGMvY2xudC5jLTc2Ny1cXHRycGNfc3lzZnNfY2xpZW50X2Rlc3Ryb3koY2xudCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDEyOjU5OjQxLjQ0NjkzNzMxN1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIzOTQ5NjY0NDUwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlN1blJQQyBQaXBlZnMgQnVnIEZpeCAtIEluaXRpYWwgQXNzZXNzbWVudCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggYWRkcmVzc2VzIGEgcHJldHR5IHNwZWNpZmljIGJ1ZyBpbiB0aGUgc3VucnBjIG1vZHVsZSwgZGVhbGluZyB3aXRoIHBpcGVmcyBtb3VudHMgYW5kIHVubW91bnRzLiBJdCBsb29rcyBsaWtlIGl0J3MgYWRkaW5nIGBjbG50LVx1MDAzZXBpcGVmc19zYiA9IHNiYCBhbmQgdGhlbiB1c2luZyBhIGNoZWNrIG9mIGBjbG50LVx1MDAzZXBpcGVmc19zYiA9PSBzYmAgYmVmb3JlIGRlbGV0aW5nIHRoZSBwaXBlZGlyLiBGdW5jdGlvbmFsbHksIHRoaXMgc2VlbXMgbGlrZSBpdCdzIGluIHRoZSByaWdodCBkaXJlY3Rpb24uIEl0J3MgYSBjbGVhbiBhcHByb2FjaCB0byBlbnN1cmluZyB0aGUgY29ycmVjdCBzdXBlcmJsb2NrIGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcGlwZWRpciBiZWZvcmUgYXR0ZW1wdGluZyByZW1vdmFsIGR1cmluZyB1bm1vdW50LCBwcmV2ZW50aW5nIHRoYXQgcGVza3kgZG91YmxlLWZyZWUuIEdpdmVuIHRoaXMgaXMgYSBwaXBlZnMgYnVnIGZpeCwgaXQncyBkZWZpbml0ZWx5IHNvbWV0aGluZyB0aGF0J3Mgd29ydGggYSBnb29kIHJvdW5kIG9mIGZ1enppbmcgdG8gc2VlIGlmIGFueSBlZGdlIGNhc2VzIGNyb3AgdXAuIE5vdywgbGV0IG1lIGZpbmQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0byBtYWtlIHN1cmUgSSBnZXQgYSBjb21wcmVoZW5zaXZlIGZ1enppbmcgc2V0dXAgZm9yIHN1bnJwYyB0byBtYWtlIHN1cmUgYWxsIGNvbmZpZ3VyYXRpb25zIG9mIHRoZSBidWcgYXJlIGlkZW50aWZpZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMyNjQsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QxMzowMDowNS4zOTY2MDQxMDhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjYxMzg0NDU1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBTVU5SUENcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3N1bnJwYy9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9zdW5ycGMvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbm5ldC9zdW5ycGMvS2NvbmZpZzoyOmNvbmZpZyBTVU5SUENcXG5uZXQvc3VucnBjL0tjb25maWctMy1cXHR0cmlzdGF0ZVxcbi0tXFxubmV0L3N1bnJwYy9LY29uZmlnLTUtXFxubmV0L3N1bnJwYy9LY29uZmlnOjY6Y29uZmlnIFNVTlJQQ19HU1NcXG5uZXQvc3VucnBjL0tjb25maWctNy1cXHR0cmlzdGF0ZVxcbi0tXFxubmV0L3N1bnJwYy9LY29uZmlnLTEwLVxcbm5ldC9zdW5ycGMvS2NvbmZpZzoxMTpjb25maWcgU1VOUlBDX0JBQ0tDSEFOTkVMXFxubmV0L3N1bnJwYy9LY29uZmlnLTEyLVxcdGJvb2xcXG4tLVxcbm5ldC9zdW5ycGMvS2NvbmZpZy0xNC1cXG5uZXQvc3VucnBjL0tjb25maWc6MTU6Y29uZmlnIFNVTlJQQ19TV0FQXFxubmV0L3N1bnJwYy9LY29uZmlnLTE2LVxcdGJvb2xcXG4tLVxcbm5ldC9zdW5ycGMvS2NvbmZpZz0xOT1jb25maWcgUlBDU0VDX0dTU19LUkI1XFxuLS1cXG5uZXQvc3VucnBjL0tjb25maWctMzUtXFxubmV0L3N1bnJwYy9LY29uZmlnOjM2OmNvbmZpZyBTVU5SUENfREVCVUdcXG5uZXQvc3VucnBjL0tjb25maWctMzctXFx0Ym9vbCBcXFwiUlBDOiBFbmFibGUgZHByaW50ayBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvc3VucnBjL0tjb25maWctNDktXFxubmV0L3N1bnJwYy9LY29uZmlnOjUwOmNvbmZpZyBTVU5SUENfREVCVUdfVFJBQ0VcXG5uZXQvc3VucnBjL0tjb25maWctNTEtXFx0Ym9vbCBcXFwiUlBDOiBTZW5kIGRmcHJpbnRrKCkgb3V0cHV0IHRvIHRoZSB0cmFjZSBidWZmZXJcXFwiXFxuLS1cXG5uZXQvc3VucnBjL0tjb25maWctNjMtXFxubmV0L3N1bnJwYy9LY29uZmlnOjY0OmNvbmZpZyBTVU5SUENfWFBSVF9SRE1BXFxubmV0L3N1bnJwYy9LY29uZmlnLTY1LVxcdHRyaXN0YXRlIFxcXCJSUEMtb3Zlci1SRE1BIHRyYW5zcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDdUMTM6MDA6MDYuMDU3OTk1MDEyWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDMxNTA3NzUzMjYyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIHByZXNlbnRlZCBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKkludmVzdGlnYXRpbmcgU1VOUlBDIERlcGVuZGVuY3kqKlxuXG5SaWdodCwgc28gU1VOUlBDIGlzIHRoZSBzdGFuZGFyZCBwcm90b2NvbCBmb3IgTkZTLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byBjaGVjayBpZiB0aGF0J3MgdGhlIG9ubHkgcGxhY2UgaXQncyBzaG93aW5nIHVwLiBJIHdhbnQgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgY29uZmlndXJhdGlvbnMsIGFwcGxpY2F0aW9ucywgb3Igc3lzdGVtcyB3aGVyZSBTVU5SUEMgaXMgYmVpbmcgZXhwbGljaXRseSBzcGVjaWZpZWQgb3IgdXNlZC4gSSdtIGxvb2tpbmcgZm9yIHBvdGVudGlhbCBkZXBlbmRlbmNpZXMgb3IgYXJlYXMgd2hlcmUgdGhpcyBtaWdodCBiZSBhIGNvbnN0cmFpbnQgb3IgYSBwb2ludCBvZiBpbnRlcmVzdCBmb3IgcGVyZm9ybWFuY2UgdHVuaW5nIG9yIHNlY3VyaXR5IGhhcmRlbmluZy4gRXNzZW50aWFsbHksIEknbSB0cnlpbmcgdG8gZGV0ZXJtaW5lIHRoZSBicmVhZHRoIG9mIGl0cyBpbXBhY3QgYmVmb3JlIGRpZ2dpbmcgYW55IGZ1cnRoZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM5NTcsIk91dHB1dFRva2VucyI6MjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QxMzowNzoxNy41NjU3NTE4MzRaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTE1OTIxNTU2MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzZWxlY3QgU1VOUlBDXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9LY29uZmlnPTM4Mj1jb25maWcgTkZTX0NPTU1PTl9MT0NBTElPX1NVUFBPUlRcXG4tLVxcbmZzL0tjb25maWctMzg2LVxcdGRlZmF1bHQgbSBpZiBORlNEPW0gXFx1MDAyNlxcdTAwMjYgTkZTX0ZTPW1cXG5mcy9LY29uZmlnOjM4NzpcXHRzZWxlY3QgU1VOUlBDXFxuZnMvS2NvbmZpZy0zODgtXFxuLS1cXG5mcy9uZnMvS2NvbmZpZz0yPWNvbmZpZyBORlNfRlNcXG4tLVxcbmZzL25mcy9LY29uZmlnLTYtXFx0c2VsZWN0IExPQ0tEXFxuZnMvbmZzL0tjb25maWc6NzpcXHRzZWxlY3QgU1VOUlBDXFxuZnMvbmZzL0tjb25maWctOC1cXHRzZWxlY3QgTkZTX0NPTU1PTlxcbi0tXFxuZnMvbmZzL0tjb25maWc9Nzc9Y29uZmlnIE5GU19WNFxcbi0tXFxuZnMvbmZzL0tjb25maWctODAtXFx0c2VsZWN0IEtFWVNcXG5mcy9uZnMvS2NvbmZpZzo4MTpcXHRzZWxlY3QgU1VOUlBDX0JBQ0tDSEFOTkVMXFxuZnMvbmZzL0tjb25maWctODItXFx0aGVscFxcbi0tXFxuZnMvbmZzL0tjb25maWc9OTI9Y29uZmlnIE5GU19TV0FQXFxuLS1cXG5mcy9uZnMvS2NvbmZpZy05NS1cXHRkZXBlbmRzIG9uIE5GU19GUyBcXHUwMDI2XFx1MDAyNiBTV0FQXFxuZnMvbmZzL0tjb25maWc6OTY6XFx0c2VsZWN0IFNVTlJQQ19TV0FQXFxuZnMvbmZzL0tjb25maWctOTctXFx0aGVscFxcbi0tXFxuZnMvbmZzZC9LY29uZmlnPTI9Y29uZmlnIE5GU0RcXG4tLVxcbmZzL25mc2QvS2NvbmZpZy0xMS1cXHRzZWxlY3QgTE9DS0RcXG5mcy9uZnNkL0tjb25maWc6MTI6XFx0c2VsZWN0IFNVTlJQQ1xcbmZzL25mc2QvS2NvbmZpZy0xMy1cXHRzZWxlY3QgRVhQT1JURlNcXG4tLVxcbm5ldC9zdW5ycGMvS2NvbmZpZz0xOT1jb25maWcgUlBDU0VDX0dTU19LUkI1XFxuLS1cXG5uZXQvc3VucnBjL0tjb25maWctMjItXFx0ZGVmYXVsdCB5XFxubmV0L3N1bnJwYy9LY29uZmlnOjIzOlxcdHNlbGVjdCBTVU5SUENfR1NTXFxubmV0L3N1bnJwYy9LY29uZmlnLTI0LVxcdHNlbGVjdCBDUllQVE9fS1JCNVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QxMzowNzoyNi43MjQ5NzkzMTVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyMDM0NDAwODcwMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgTkZTIENsaWVudCBFdmVudCBIYW5kbGluZyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IE5GUy1yZWxhdGVkIGNvZGUsIHNwZWNpZmljYWxseSBmb2N1c2luZyBvbiB0aGUgY2xpZW50LXNpZGUgaW50ZXJhY3Rpb24uIEZyb20gd2hhdCBJIHNlZSwgYE5GU19GU2AgYW5kIGBORlNEYCBzZWVtIHRvIGJlIHRoZSBwcmltYXJ5IG1vZHVsZXMgaW4gcGxheSBoZXJlLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZXhhbWluZSB0aGUgbW9kaWZpZWQgZnVuY3Rpb25zIHRvIHVuZGVyc3RhbmQgdGhlIGNoYW5nZXMgbWFkZS4gTGV0J3Mgc2VlLi4uIHRoZSBkaWZmcyBoaWdobGlnaHQgdGhlc2UgZnVuY3Rpb25zOiBgX19ycGNfY2xudF9oYW5kbGVfZXZlbnRgLCBgX19ycGNfY2xudF9yZW1vdmVfcGlwZWRpcmAsIGBycGNfY2xudF9yZW1vdmVfcGlwZWRpcmAsIGBycGNfY2xudF9za2lwX2V2ZW50YCwgYW5kIGBycGNfc2V0dXBfcGlwZWRpcl9zYmAuXG5cbkhvbGQgb24uLi4gSSBub3RpY2VkIHRoYXQgYF9fcnBjX2NsbnRfaGFuZGxlX2V2ZW50YCBpcyBjYWxsZWQgZnJvbSBgX19ycGNfcGlwZWZzX2V2ZW50YC4gVGhhdOKAmXMgaW50ZXJlc3RpbmcsIHNpbmNlIGBfX3JwY19waXBlZnNfZXZlbnRgIGxvb2tzIGxpa2UgaXQgaXMgYXQgYSBoaWdoZXIgbGV2ZWwuIFRpbWUgdG8gdHJhY2UgYmFjayBhbmQgZGV0ZXJtaW5lIHRoZSBvcmlnaW4gb2YgdGhlIGV2ZW50LiBJIHNob3VsZCBmaW5kIG91dCB3aGVyZSBgX19ycGNfcGlwZWZzX2V2ZW50YCBpcyBjYWxsZWQgdG8gZ2V0IGEgY2xlYXJlciBwaWN0dXJlIG9mIHRoZSBldmVudCBmbG93IHdpdGhpbiB0aGUgTkZTIGNsaWVudC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDU3NCwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QxMzowNzo0Ny4wNjg5OTAxOTdaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYwMDgwMzg0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJfX3JwY19waXBlZnNfZXZlbnRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3N1bnJwYy9jbG50LmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3N1bnJwYy9jbG50LmM9MTgyPXN0YXRpYyBpbnQgX19ycGNfY2xudF9oYW5kbGVfZXZlbnQoc3RydWN0IHJwY19jbG50ICpjbG50LCB1bnNpZ25lZCBsb25nIGV2ZW50LFxcbi0tXFxubmV0L3N1bnJwYy9jbG50LmMtMjA2LVxcbm5ldC9zdW5ycGMvY2xudC5jOjIwNzpzdGF0aWMgaW50IF9fcnBjX3BpcGVmc19ldmVudChzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQsIHVuc2lnbmVkIGxvbmcgZXZlbnQsXFxubmV0L3N1bnJwYy9jbG50LmMtMjA4LVxcdFxcdFxcdFxcdHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXFxuLS1cXG5uZXQvc3VucnBjL2NsbnQuYz0yMzc9c3RhdGljIGludCBycGNfcGlwZWZzX2V2ZW50KHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsIHVuc2lnbmVkIGxvbmcgZXZlbnQsXFxuLS1cXG5uZXQvc3VucnBjL2NsbnQuYy0yNDQtXFx0d2hpbGUgKChjbG50ID0gcnBjX2dldF9jbGllbnRfZm9yX2V2ZW50KHNiLVxcdTAwM2VzX2ZzX2luZm8sIGV2ZW50KSkpIHtcXG5uZXQvc3VucnBjL2NsbnQuYzoyNDU6XFx0XFx0ZXJyb3IgPSBfX3JwY19waXBlZnNfZXZlbnQoY2xudCwgZXZlbnQsIHNiKTtcXG5uZXQvc3VucnBjL2NsbnQuYy0yNDYtXFx0XFx0aWYgKGVycm9yKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QxMzowNzo0Ny42Njk3OTk3NzdaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTI5OTQ4MTUyNDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIFJQQyBQaXBlZnMgRXZlbnQgTm90aWZpZXIqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGFsbCBhYm91dCB0aGF0IG5vdGlmaWVyIGJsb2NrIGZvciBwaXBlZnMgZXZlbnRzLCBzcGVjaWZpY2FsbHkgd2l0aGluIHRoZSBSUEMgY2xpZW50LiBNeSBpbml0aWFsIGZvY3VzIGhhcyB0byBiZSBvbiBgX19ycGNfY2xudF9oYW5kbGVfZXZlbnRgIGFuZCBgX19ycGNfY2xudF9yZW1vdmVfcGlwZWRpcmAsIGJlY2F1c2UgdGhvc2UgYXJlIHdoZXJlIHRoZSBldmVudCBoYW5kbGluZyBhbmQgZGlyZWN0b3J5IHJlbW92YWwgbG9naWMgcmVzaWRlLlxuXG5JIG5lZWQgdG8gY29uZmlybSB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMuIFRoZSB0ZXh0IHN1Z2dlc3RzIHRoYXQgYFNVTlJQQ2AgbWlnaHQgYmUgc3VmZmljaWVudCwgYnV0IEkgbmVlZCB0byBtYWtlIHN1cmUuIFllcywgZ29vZCwgYm90aCBgTkZTX0ZTYCBhbmQgYE5GU0RgIGVuYWJsZSBgU1VOUlBDYC4gSSdsbCB3YW50IHRvIGFkZCB0aGVzZSB0byBteSBjb25maWd1cmF0aW9uIHByb2ZpbGUuIEFjdHVhbGx5LCB3YWl0IGEgc2Vjb25kLiBgU1VOUlBDYCBpcyBhIHRyaXN0YXRlLCBzbyBJIGNvdWxkIGp1c3QgZW5hYmxlIGl0IGRpcmVjdGx5LiBIb3dldmVyLCBgTkZTX0ZTYCBmZWVscyBtb3JlIGFwcHJvcHJpYXRlIHNpbmNlIGl0J3MgdGhlIGFjdHVhbCB1c2VyIG9mIHRoaXMgZnVuY3Rpb25hbGl0eS4gVGhlcmVmb3JlLCBJ4oCZbGwgcHJpb3JpdGl6ZSBhZGRpbmcgYE5GU19GU2AgYW5kIGBORlNEYCBhcyBteSBwcmltYXJ5IGNvbmZpZyBvcHRpb25zLlxuXG5JbiB0ZXJtcyBvZiB0aGUgY29yZSByZWFzb25pbmcsIHRoaXMgcGF0Y2ggaXMgYWRkcmVzc2luZyBhIHBvdGVudGlhbCBidWcgaW4gdGhlIHN1bnJwYyBjbGllbnQuIEl0IGxvb2tzIGxpa2UgaXQgZGVhbHMgd2l0aCBgY2xudC1cdTAwM2VwaXBlZnNfc2JgLCBlbnN1cmluZyBpdCdzIHByb3Blcmx5IHNldCBhbmQgY2xlYXJlZCB0byBwcmV2ZW50IGluY29ycmVjdCBwaXBlZGlyIHJlbW92YWwuIFRoaXMgaXMgY3JpdGljYWwgZnVuY3Rpb25hbCBsb2dpYyBmb3IgUlBDIGFuZCBORlMsIHdoaWNoIGlzIGRlZmluaXRlbHkgd29ydGggZnV6emluZy5cblxuTGV0J3MgZG8gYSBxdWljayBzd2VlcCBmb3IgYW55IHJlbGF0ZWQgY29uZmlndXJhdGlvbnMuIEkga25vdyBgU1VOUlBDYCBpcyB0aGUgYmlnIG9uZSBoZXJlLCBhbmQgSSBub3RlZCBgTkZTX1Y0YCBjb3VsZCBiZSByZWxhdGVkLiBIb3dldmVyLCBgTkZTX0ZTYCBpcyB0aGUgbWFpbiB0aGluZyB0byBjb25zaWRlciBmb3IgdGhpcyBmdXp6aW5nIGVmZm9ydC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTI0OCwiT3V0cHV0VG9rZW5zIjoxMjcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDdUMTM6MDg6MDAuNjY0NjE3MDQ4WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTgzNTg1MjIyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORlNfRlNcIixcbiAgICBcIk5GU0RcIixcbiAgICBcIlNVTlJQQ1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIl9fcnBjX2NsbnRfaGFuZGxlX2V2ZW50XCIsXG4gICAgXCJfX3JwY19jbG50X3JlbW92ZV9waXBlZGlyXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGhhbmRsaW5nIG9mIFJQQyBwaXBlZnMgbW91bnQvdW1vdW50IGV2ZW50cyBpbiB0aGUgc3VucnBjIGNsaWVudCwgZml4aW5nIGEgYnVnIHdoZXJlIGNsbnQtXFx1MDAzZXBpcGVmc19zYiB3YXMgbm90IHByb3Blcmx5IHNldCBvciBjbGVhcmVkLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29yZSBsb2dpYyBmb3IgUlBDL05GUyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORlNfRlNcIixcbiAgICBcIk5GU0RcIixcbiAgICBcIlNVTlJQQ1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIl9fcnBjX2NsbnRfaGFuZGxlX2V2ZW50XCIsXG4gICAgXCJfX3JwY19jbG50X3JlbW92ZV9waXBlZGlyXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGhhbmRsaW5nIG9mIFJQQyBwaXBlZnMgbW91bnQvdW1vdW50IGV2ZW50cyBpbiB0aGUgc3VucnBjIGNsaWVudCwgZml4aW5nIGEgYnVnIHdoZXJlIGNsbnQtXFx1MDAzZXBpcGVmc19zYiB3YXMgbm90IHByb3Blcmx5IHNldCBvciBjbGVhcmVkLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29yZSBsb2dpYyBmb3IgUlBDL05GUyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowz7mdq[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-07 12:38:14 +0000 UTC FinishedAt: 2026-07-07 13:08:02 +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": "474cff6868129755cf889edf40d7f491729fc588", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NFS_FS", "NFSD", "SUNRPC" ], "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": "474cff6868129755cf889edf40d7f491729fc588", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NFS_FS", "NFSD", "SUNRPC" ], "series_id": "9b387e72-c4af-48a9-8ef6-af73d057716f" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "__rpc_clnt_handle_event", "__rpc_clnt_remove_pipedir" ], "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+CgkJCTx0ZD4yMDI2LzA3LzA3IDEyOjU5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+OG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GU19GUyYjMzQ7LAogICAgJiMzNDtORlNEJiMzNDssCiAgICAmIzM0O1NVTlJQQyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O19fcnBjX2NsbnRfaGFuZGxlX2V2ZW50JiMzNDssCiAgICAmIzM0O19fcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGhhbmRsaW5nIG9mIFJQQyBwaXBlZnMgbW91bnQvdW1vdW50IGV2ZW50cyBpbiB0aGUgc3VucnBjIGNsaWVudCwgZml4aW5nIGEgYnVnIHdoZXJlIGNsbnQtXHUwMDNlcGlwZWZzX3NiIHdhcyBub3QgcHJvcGVybHkgc2V0IG9yIGNsZWFyZWQuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIGxvZ2ljIGZvciBSUEMvTkZTIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA3IDEyOjU5PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNTQ0OGQ4MzNlNDIxZmE1YjFlZGYyZGM3ZDMzZjQ4ZmIyZTEzMzFiYlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVsIDcgMTI6NTk6MjAgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L3N1bnJwYy9jbG50LmMgYi9uZXQvc3VucnBjL2NsbnQuY1xuaW5kZXggYmM4Y2E0NzA3MThiN2EuLjg1ZmRkOGJhOTRhNGMyIDEwMDY0NFxuLS0tIGEvbmV0L3N1bnJwYy9jbG50LmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9zdW5ycGMvY2xudC5jXG5AQCAtOTYsNyAmIzQzOzk2LDEwIEBAIHN0YXRpYyB2b2lkIHJwY191bnJlZ2lzdGVyX2NsaWVudChzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQpXG4gXG4gc3RhdGljIHZvaWQgX19ycGNfY2xudF9yZW1vdmVfcGlwZWRpcihzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQpXG4ge1xuLVx0cnBjX3JlbW92ZV9jbGllbnRfZGlyKGNsbnQpO1xuJiM0MztcdGlmIChjbG50LVx1MDAzZXBpcGVmc19zYikge1xuJiM0MztcdFx0cnBjX3JlbW92ZV9jbGllbnRfZGlyKGNsbnQpO1xuJiM0MztcdFx0Y2xudC1cdTAwM2VwaXBlZnNfc2IgPSBOVUxMO1xuJiM0MztcdH1cbiB9XG4gXG4gc3RhdGljIHZvaWQgcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXIoc3RydWN0IHJwY19jbG50ICpjbG50KVxuQEAgLTE3NywxOSAmIzQzOzE4MCwyOCBAQCBzdGF0aWMgaW50IHJwY19jbG50X3NraXBfZXZlbnQoc3RydWN0IHJwY19jbG50ICpjbG50LCB1bnNpZ25lZCBsb25nIGV2ZW50KVxuIH1cbiBcbiBzdGF0aWMgaW50IF9fcnBjX2NsbnRfaGFuZGxlX2V2ZW50KHN0cnVjdCBycGNfY2xudCAqY2xudCwgdW5zaWduZWQgbG9uZyBldmVudCxcbi1cdFx0XHRcdCAgIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXG4mIzQzO1x0XHRcdFx0ICAgIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXG4ge1xuJiM0MztcdGludCBlcnIgPSAwO1xuJiM0MztcbiBcdHN3aXRjaCAoZXZlbnQpIHtcbiBcdGNhc2UgUlBDX1BJUEVGU19NT1VOVDpcbi1cdFx0cmV0dXJuIHJwY19zZXR1cF9waXBlZGlyX3NiKHNiLCBjbG50KTtcbiYjNDM7XHRcdGNsbnQtXHUwMDNlcGlwZWZzX3NiID0gc2I7XG4mIzQzO1x0XHRlcnIgPSBycGNfc2V0dXBfcGlwZWRpcl9zYihzYiwgY2xudCk7XG4mIzQzO1x0XHRpZiAoZXJyKVxuJiM0MztcdFx0XHRjbG50LVx1MDAzZXBpcGVmc19zYiA9IE5VTEw7XG4mIzQzO1x0XHRicmVhaztcbiBcdGNhc2UgUlBDX1BJUEVGU19VTU9VTlQ6XG4tXHRcdF9fcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXIoY2xudCk7XG4mIzQzO1x0XHRpZiAoY2xudC1cdTAwM2VwaXBlZnNfc2IgPT0gc2IpIHtcbiYjNDM7XHRcdFx0X19ycGNfY2xudF9yZW1vdmVfcGlwZWRpcihjbG50KTtcbiYjNDM7XHRcdFx0Y2xudC1cdTAwM2VwaXBlZnNfc2IgPSBOVUxMO1xuJiM0MztcdFx0fVxuIFx0XHRicmVhaztcbiBcdGRlZmF1bHQ6XG4gXHRcdHByaW50ayhLRVJOX0VSUiBcJiMzNDslczogdW5rbm93biBldmVudDogJWxkXFxuXCYjMzQ7LCBfX2Z1bmNfXywgZXZlbnQpO1xuIFx0XHRyZXR1cm4gLUVOT1RTVVBQO1xuIFx0fVxuLVx0cmV0dXJuIDA7XG4mIzQzO1x0cmV0dXJuIGVycjtcbiB9XG4gXG4gc3RhdGljIGludCBfX3JwY19waXBlZnNfZXZlbnQoc3RydWN0IHJwY19jbG50ICpjbG50LCB1bnNpZ25lZCBsb25nIGV2ZW50LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA3IDEyOjU5PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjhtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GU19GUyYjMzQ7LAogICAgJiMzNDtORlNEJiMzNDssCiAgICAmIzM0O1NVTlJQQyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O19fcnBjX2NsbnRfaGFuZGxlX2V2ZW50JiMzNDssCiAgICAmIzM0O19fcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGhhbmRsaW5nIG9mIFJQQyBwaXBlZnMgbW91bnQvdW1vdW50IGV2ZW50cyBpbiB0aGUgc3VucnBjIGNsaWVudCwgZml4aW5nIGEgYnVnIHdoZXJlIGNsbnQtXHUwMDNlcGlwZWZzX3NiIHdhcyBub3QgcHJvcGVybHkgc2V0IG9yIGNsZWFyZWQuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIGxvZ2ljIGZvciBSUEMvTkZTIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA1NDQ4ZDgzM2U0MjFmYTViMWVkZjJkYzdkMzNmNDhmYjJlMTMzMWJiCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdWwgNyAxMjo1OToyMCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9zdW5ycGMvY2xudC5jIGIvbmV0L3N1bnJwYy9jbG50LmMKaW5kZXggYmM4Y2E0NzA3MThiN2EuLjg1ZmRkOGJhOTRhNGMyIDEwMDY0NAotLS0gYS9uZXQvc3VucnBjL2NsbnQuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvc3VucnBjL2NsbnQuYwpAQCAtOTYsNyAmIzQzOzk2LDEwIEBAIHN0YXRpYyB2b2lkIHJwY191bnJlZ2lzdGVyX2NsaWVudChzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQpCiAKIHN0YXRpYyB2b2lkIF9fcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXIoc3RydWN0IHJwY19jbG50ICpjbG50KQogewotCXJwY19yZW1vdmVfY2xpZW50X2RpcihjbG50KTsKJiM0MzsJaWYgKGNsbnQtJmd0O3BpcGVmc19zYikgewomIzQzOwkJcnBjX3JlbW92ZV9jbGllbnRfZGlyKGNsbnQpOwomIzQzOwkJY2xudC0mZ3Q7cGlwZWZzX3NiID0gTlVMTDsKJiM0MzsJfQogfQogCiBzdGF0aWMgdm9pZCBycGNfY2xudF9yZW1vdmVfcGlwZWRpcihzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQpCkBAIC0xNzcsMTkgJiM0MzsxODAsMjggQEAgc3RhdGljIGludCBycGNfY2xudF9za2lwX2V2ZW50KHN0cnVjdCBycGNfY2xudCAqY2xudCwgdW5zaWduZWQgbG9uZyBldmVudCkKIH0KIAogc3RhdGljIGludCBfX3JwY19jbG50X2hhbmRsZV9ldmVudChzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQsIHVuc2lnbmVkIGxvbmcgZXZlbnQsCi0JCQkJICAgc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKJiM0MzsJCQkJICAgIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCiB7CiYjNDM7CWludCBlcnIgPSAwOwomIzQzOwogCXN3aXRjaCAoZXZlbnQpIHsKIAljYXNlIFJQQ19QSVBFRlNfTU9VTlQ6Ci0JCXJldHVybiBycGNfc2V0dXBfcGlwZWRpcl9zYihzYiwgY2xudCk7CiYjNDM7CQljbG50LSZndDtwaXBlZnNfc2IgPSBzYjsKJiM0MzsJCWVyciA9IHJwY19zZXR1cF9waXBlZGlyX3NiKHNiLCBjbG50KTsKJiM0MzsJCWlmIChlcnIpCiYjNDM7CQkJY2xudC0mZ3Q7cGlwZWZzX3NiID0gTlVMTDsKJiM0MzsJCWJyZWFrOwogCWNhc2UgUlBDX1BJUEVGU19VTU9VTlQ6Ci0JCV9fcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXIoY2xudCk7CiYjNDM7CQlpZiAoY2xudC0mZ3Q7cGlwZWZzX3NiID09IHNiKSB7CiYjNDM7CQkJX19ycGNfY2xudF9yZW1vdmVfcGlwZWRpcihjbG50KTsKJiM0MzsJCQljbG50LSZndDtwaXBlZnNfc2IgPSBOVUxMOwomIzQzOwkJfQogCQlicmVhazsKIAlkZWZhdWx0OgogCQlwcmludGsoS0VSTl9FUlIgJiMzNDslczogdW5rbm93biBldmVudDogJWxkXG4mIzM0OywgX19mdW5jX18sIGV2ZW50KTsKIAkJcmV0dXJuIC1FTk9UU1VQUDsKIAl9Ci0JcmV0dXJuIDA7CiYjNDM7CXJldHVybiBlcnI7CiB9CiAKIHN0YXRpYyBpbnQgX19ycGNfcGlwZWZzX2V2ZW50KHN0cnVjdCBycGNfY2xudCAqY2xudCwgdW5zaWduZWQgbG9uZyBldmVudCwKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMTI6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjIzNgoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDEyMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFN1blJQQyBDbGllbnQgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IHRoaXMgcGF0Y2ggaGVyZSB0aGF0JiMzOTtzIG1ha2luZyBzb21lIGNoYW5nZXMgaW4gYG5ldC9zdW5ycGMvY2xudC5jYC4gU3BlY2lmaWNhbGx5LCBpdCYjMzk7cyB0b3VjaGluZyBgX19ycGNfY2xudF9yZW1vdmVfcGlwZWRpcmAgYW5kIGBfX3JwY19jbG50X2hhbmRsZV9ldmVudGAg4oCTIGJvdGggaW1wb3J0YW50IGZ1bmN0aW9ucyB3aXRoaW4gdGhlIFJQQyBjbGllbnQmIzM5O3Mgb3BlcmF0aW9uYWwgY29yZS4gSXQgbG9va3MgbGlrZSB0aGUga2V5IGNoYW5nZSByZXZvbHZlcyBhcm91bmQgaG93IHRoZXNlIGZ1bmN0aW9ucyBoYW5kbGUgYGNsbnQtJmd0O3BpcGVmc19zYmAuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgdGhpcyBgcGlwZWZzX3NiYCBpcyB3aXRoaW4gdGhpcyBjb250ZXh0LiBJJiMzOTtsbCBuZWVkIHRvIGRpZyBpbnRvIHRoZSBjb2RlIHRvIGZpZ3VyZSB0aGlzIG91dCwgc3BlY2lmaWNhbGx5IGxvb2tpbmcgYXQgYG5ldC9zdW5ycGMvY2xudC5jYCBhbmQgYWxzbyB0aGUgcmVsZXZhbnQgaGVhZGVyIGZpbGUsIGBpbmNsdWRlL2xpbnV4L3N1bnJwYy9jbG50LmhgLiBUaGF0JiMzOTtzIHdoZXJlIEkmIzM5O2xsIGZpbmQgdGhlIGRlZmluaXRpb24gZm9yIGBjbG50LSZndDtwaXBlZnNfc2JgIGFuZCBpdHMgcHVycG9zZS4gQWgsIHdhaXQgYSBtaW51dGUsIHRoZSBwYXRjaCBpcyBhbHJlYWR5IGFwcGxpZWQuIFRoYXQgbWFrZXMgbXkgam9iIGEgYml0IGVhc2llciwgYXMgSSBjYW4gbm93IHVzZSBgZ3JlcHBlcmAgb3Igc2ltcGx5IGByZWFkLWZpbGVgIHRvIHNlZSBob3cgaXQmIzM5O3MgdXNlZCBhbmQgd2hlcmUuIFRoaXMgd2lsbCBiZSBhIGxvdCBmYXN0ZXIgdGhhbiB0cnlpbmcgdG8gdW5kZXJzdGFuZCB0aGUgYmVmb3JlL2FmdGVyIGZyb20gdGhlIHBhdGNoIGZpbGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMTI6NTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7X19ycGNfY2xudF9yZW1vdmVfcGlwZWRpciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9zdW5ycGMvY2xudC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9zdW5ycGMvY2xudC5jPTg3PXN0YXRpYyB2b2lkIHJwY191bnJlZ2lzdGVyX2NsaWVudChzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQpXG4tLVxubmV0L3N1bnJwYy9jbG50LmMtOTYtXG5uZXQvc3VucnBjL2NsbnQuYzo5NzpzdGF0aWMgdm9pZCBfX3JwY19jbG50X3JlbW92ZV9waXBlZGlyKHN0cnVjdCBycGNfY2xudCAqY2xudClcbm5ldC9zdW5ycGMvY2xudC5jLTk4LXtcbi0tXG5uZXQvc3VucnBjL2NsbnQuYz0xMDU9c3RhdGljIHZvaWQgcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXIoc3RydWN0IHJwY19jbG50ICpjbG50KVxuLS1cbm5ldC9zdW5ycGMvY2xudC5jLTExMi1cdFx0aWYgKHBpcGVmc19zYiA9PSBjbG50LVx1MDAzZXBpcGVmc19zYilcbm5ldC9zdW5ycGMvY2xudC5jOjExMzpcdFx0XHRfX3JwY19jbG50X3JlbW92ZV9waXBlZGlyKGNsbnQpO1xubmV0L3N1bnJwYy9jbG50LmMtMTE0LVx0XHRycGNfcHV0X3NiX25ldChuZXQpO1xuLS1cbm5ldC9zdW5ycGMvY2xudC5jPTE4Mj1zdGF0aWMgaW50IF9fcnBjX2NsbnRfaGFuZGxlX2V2ZW50KHN0cnVjdCBycGNfY2xudCAqY2xudCwgdW5zaWduZWQgbG9uZyBldmVudCxcbi0tXG5uZXQvc3VucnBjL2NsbnQuYy0xOTUtXHRcdGlmIChjbG50LVx1MDAzZXBpcGVmc19zYiA9PSBzYikge1xubmV0L3N1bnJwYy9jbG50LmM6MTk2Olx0XHRcdF9fcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXIoY2xudCk7XG5uZXQvc3VucnBjL2NsbnQuYy0xOTctXHRcdFx0Y2xudC1cdTAwM2VwaXBlZnNfc2IgPSBOVUxMO1xuLS1cbm5ldC9zdW5ycGMvY2xudC5jPTI5Nj1zdGF0aWMgaW50IHJwY19jbGllbnRfcmVnaXN0ZXIoc3RydWN0IHJwY19jbG50ICpjbG50LFxuLS1cbm5ldC9zdW5ycGMvY2xudC5jLTMzMi1cdHJwY191bnJlZ2lzdGVyX2NsaWVudChjbG50KTtcbm5ldC9zdW5ycGMvY2xudC5jOjMzMzpcdF9fcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXIoY2xudCk7XG5uZXQvc3VucnBjL2NsbnQuYy0zMzQtb3V0OlxuLS1cbm5ldC9zdW5ycGMvY2xudC5jPTczNz1pbnQgcnBjX3N3aXRjaF9jbGllbnRfdHJhbnNwb3J0KHN0cnVjdCBycGNfY2xudCAqY2xudCxcbi0tXG5uZXQvc3VucnBjL2NsbnQuYy03NjUtXHRycGNfdW5yZWdpc3Rlcl9jbGllbnQoY2xudCk7XG5uZXQvc3VucnBjL2NsbnQuYzo3NjY6XHRfX3JwY19jbG50X3JlbW92ZV9waXBlZGlyKGNsbnQpO1xubmV0L3N1bnJwYy9jbG50LmMtNzY3LVx0cnBjX3N5c2ZzX2NsaWVudF9kZXN0cm95KGNsbnQpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA3IDEyOjU5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMyNjQKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiA3MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipTdW5SUEMgUGlwZWZzIEJ1ZyBGaXggLSBJbml0aWFsIEFzc2Vzc21lbnQqKgoKT2theSwgc28gdGhpcyBwYXRjaCBhZGRyZXNzZXMgYSBwcmV0dHkgc3BlY2lmaWMgYnVnIGluIHRoZSBzdW5ycGMgbW9kdWxlLCBkZWFsaW5nIHdpdGggcGlwZWZzIG1vdW50cyBhbmQgdW5tb3VudHMuIEl0IGxvb2tzIGxpa2UgaXQmIzM5O3MgYWRkaW5nIGBjbG50LSZndDtwaXBlZnNfc2IgPSBzYmAgYW5kIHRoZW4gdXNpbmcgYSBjaGVjayBvZiBgY2xudC0mZ3Q7cGlwZWZzX3NiID09IHNiYCBiZWZvcmUgZGVsZXRpbmcgdGhlIHBpcGVkaXIuIEZ1bmN0aW9uYWxseSwgdGhpcyBzZWVtcyBsaWtlIGl0JiMzOTtzIGluIHRoZSByaWdodCBkaXJlY3Rpb24uIEl0JiMzOTtzIGEgY2xlYW4gYXBwcm9hY2ggdG8gZW5zdXJpbmcgdGhlIGNvcnJlY3Qgc3VwZXJibG9jayBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIHBpcGVkaXIgYmVmb3JlIGF0dGVtcHRpbmcgcmVtb3ZhbCBkdXJpbmcgdW5tb3VudCwgcHJldmVudGluZyB0aGF0IHBlc2t5IGRvdWJsZS1mcmVlLiBHaXZlbiB0aGlzIGlzIGEgcGlwZWZzIGJ1ZyBmaXgsIGl0JiMzOTtzIGRlZmluaXRlbHkgc29tZXRoaW5nIHRoYXQmIzM5O3Mgd29ydGggYSBnb29kIHJvdW5kIG9mIGZ1enppbmcgdG8gc2VlIGlmIGFueSBlZGdlIGNhc2VzIGNyb3AgdXAuIE5vdywgbGV0IG1lIGZpbmQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0byBtYWtlIHN1cmUgSSBnZXQgYSBjb21wcmVoZW5zaXZlIGZ1enppbmcgc2V0dXAgZm9yIHN1bnJwYyB0byBtYWtlIHN1cmUgYWxsIGNvbmZpZ3VyYXRpb25zIG9mIHRoZSBidWcgYXJlIGlkZW50aWZpZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMTM6MDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFNVTlJQQyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9zdW5ycGMvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvc3VucnBjL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbm5ldC9zdW5ycGMvS2NvbmZpZzoyOmNvbmZpZyBTVU5SUENcbm5ldC9zdW5ycGMvS2NvbmZpZy0zLVx0dHJpc3RhdGVcbi0tXG5uZXQvc3VucnBjL0tjb25maWctNS1cbm5ldC9zdW5ycGMvS2NvbmZpZzo2OmNvbmZpZyBTVU5SUENfR1NTXG5uZXQvc3VucnBjL0tjb25maWctNy1cdHRyaXN0YXRlXG4tLVxubmV0L3N1bnJwYy9LY29uZmlnLTEwLVxubmV0L3N1bnJwYy9LY29uZmlnOjExOmNvbmZpZyBTVU5SUENfQkFDS0NIQU5ORUxcbm5ldC9zdW5ycGMvS2NvbmZpZy0xMi1cdGJvb2xcbi0tXG5uZXQvc3VucnBjL0tjb25maWctMTQtXG5uZXQvc3VucnBjL0tjb25maWc6MTU6Y29uZmlnIFNVTlJQQ19TV0FQXG5uZXQvc3VucnBjL0tjb25maWctMTYtXHRib29sXG4tLVxubmV0L3N1bnJwYy9LY29uZmlnPTE5PWNvbmZpZyBSUENTRUNfR1NTX0tSQjVcbi0tXG5uZXQvc3VucnBjL0tjb25maWctMzUtXG5uZXQvc3VucnBjL0tjb25maWc6MzY6Y29uZmlnIFNVTlJQQ19ERUJVR1xubmV0L3N1bnJwYy9LY29uZmlnLTM3LVx0Ym9vbCBcJiMzNDtSUEM6IEVuYWJsZSBkcHJpbnRrIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9zdW5ycGMvS2NvbmZpZy00OS1cbm5ldC9zdW5ycGMvS2NvbmZpZzo1MDpjb25maWcgU1VOUlBDX0RFQlVHX1RSQUNFXG5uZXQvc3VucnBjL0tjb25maWctNTEtXHRib29sIFwmIzM0O1JQQzogU2VuZCBkZnByaW50aygpIG91dHB1dCB0byB0aGUgdHJhY2UgYnVmZmVyXCYjMzQ7XG4tLVxubmV0L3N1bnJwYy9LY29uZmlnLTYzLVxubmV0L3N1bnJwYy9LY29uZmlnOjY0OmNvbmZpZyBTVU5SUENfWFBSVF9SRE1BXG5uZXQvc3VucnBjL0tjb25maWctNjUtXHR0cmlzdGF0ZSBcJiMzNDtSUEMtb3Zlci1SRE1BIHRyYW5zcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA3IDEzOjAwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT43bTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM5NTcKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiAxOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKkludmVzdGlnYXRpbmcgU1VOUlBDIERlcGVuZGVuY3kqKgoKUmlnaHQsIHNvIFNVTlJQQyBpcyB0aGUgc3RhbmRhcmQgcHJvdG9jb2wgZm9yIE5GUy4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gY2hlY2sgaWYgdGhhdCYjMzk7cyB0aGUgb25seSBwbGFjZSBpdCYjMzk7cyBzaG93aW5nIHVwLiBJIHdhbnQgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgY29uZmlndXJhdGlvbnMsIGFwcGxpY2F0aW9ucywgb3Igc3lzdGVtcyB3aGVyZSBTVU5SUEMgaXMgYmVpbmcgZXhwbGljaXRseSBzcGVjaWZpZWQgb3IgdXNlZC4gSSYjMzk7bSBsb29raW5nIGZvciBwb3RlbnRpYWwgZGVwZW5kZW5jaWVzIG9yIGFyZWFzIHdoZXJlIHRoaXMgbWlnaHQgYmUgYSBjb25zdHJhaW50IG9yIGEgcG9pbnQgb2YgaW50ZXJlc3QgZm9yIHBlcmZvcm1hbmNlIHR1bmluZyBvciBzZWN1cml0eSBoYXJkZW5pbmcuIEVzc2VudGlhbGx5LCBJJiMzOTttIHRyeWluZyB0byBkZXRlcm1pbmUgdGhlIGJyZWFkdGggb2YgaXRzIGltcGFjdCBiZWZvcmUgZGlnZ2luZyBhbnkgZnVydGhlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNyAxMzowNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzZWxlY3QgU1VOUlBDJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL0tjb25maWc9MzgyPWNvbmZpZyBORlNfQ09NTU9OX0xPQ0FMSU9fU1VQUE9SVFxuLS1cbmZzL0tjb25maWctMzg2LVx0ZGVmYXVsdCBtIGlmIE5GU0Q9bSBcdTAwMjZcdTAwMjYgTkZTX0ZTPW1cbmZzL0tjb25maWc6Mzg3Olx0c2VsZWN0IFNVTlJQQ1xuZnMvS2NvbmZpZy0zODgtXG4tLVxuZnMvbmZzL0tjb25maWc9Mj1jb25maWcgTkZTX0ZTXG4tLVxuZnMvbmZzL0tjb25maWctNi1cdHNlbGVjdCBMT0NLRFxuZnMvbmZzL0tjb25maWc6NzpcdHNlbGVjdCBTVU5SUENcbmZzL25mcy9LY29uZmlnLTgtXHRzZWxlY3QgTkZTX0NPTU1PTlxuLS1cbmZzL25mcy9LY29uZmlnPTc3PWNvbmZpZyBORlNfVjRcbi0tXG5mcy9uZnMvS2NvbmZpZy04MC1cdHNlbGVjdCBLRVlTXG5mcy9uZnMvS2NvbmZpZzo4MTpcdHNlbGVjdCBTVU5SUENfQkFDS0NIQU5ORUxcbmZzL25mcy9LY29uZmlnLTgyLVx0aGVscFxuLS1cbmZzL25mcy9LY29uZmlnPTkyPWNvbmZpZyBORlNfU1dBUFxuLS1cbmZzL25mcy9LY29uZmlnLTk1LVx0ZGVwZW5kcyBvbiBORlNfRlMgXHUwMDI2XHUwMDI2IFNXQVBcbmZzL25mcy9LY29uZmlnOjk2Olx0c2VsZWN0IFNVTlJQQ19TV0FQXG5mcy9uZnMvS2NvbmZpZy05Ny1cdGhlbHBcbi0tXG5mcy9uZnNkL0tjb25maWc9Mj1jb25maWcgTkZTRFxuLS1cbmZzL25mc2QvS2NvbmZpZy0xMS1cdHNlbGVjdCBMT0NLRFxuZnMvbmZzZC9LY29uZmlnOjEyOlx0c2VsZWN0IFNVTlJQQ1xuZnMvbmZzZC9LY29uZmlnLTEzLVx0c2VsZWN0IEVYUE9SVEZTXG4tLVxubmV0L3N1bnJwYy9LY29uZmlnPTE5PWNvbmZpZyBSUENTRUNfR1NTX0tSQjVcbi0tXG5uZXQvc3VucnBjL0tjb25maWctMjItXHRkZWZhdWx0IHlcbm5ldC9zdW5ycGMvS2NvbmZpZzoyMzpcdHNlbGVjdCBTVU5SUENfR1NTXG5uZXQvc3VucnBjL0tjb25maWctMjQtXHRzZWxlY3QgQ1JZUFRPX0tSQjVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNyAxMzowNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NTc0CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMTMyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBORlMgQ2xpZW50IEV2ZW50IEhhbmRsaW5nKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBORlMtcmVsYXRlZCBjb2RlLCBzcGVjaWZpY2FsbHkgZm9jdXNpbmcgb24gdGhlIGNsaWVudC1zaWRlIGludGVyYWN0aW9uLiBGcm9tIHdoYXQgSSBzZWUsIGBORlNfRlNgIGFuZCBgTkZTRGAgc2VlbSB0byBiZSB0aGUgcHJpbWFyeSBtb2R1bGVzIGluIHBsYXkgaGVyZS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGV4YW1pbmUgdGhlIG1vZGlmaWVkIGZ1bmN0aW9ucyB0byB1bmRlcnN0YW5kIHRoZSBjaGFuZ2VzIG1hZGUuIExldCYjMzk7cyBzZWUuLi4gdGhlIGRpZmZzIGhpZ2hsaWdodCB0aGVzZSBmdW5jdGlvbnM6IGBfX3JwY19jbG50X2hhbmRsZV9ldmVudGAsIGBfX3JwY19jbG50X3JlbW92ZV9waXBlZGlyYCwgYHJwY19jbG50X3JlbW92ZV9waXBlZGlyYCwgYHJwY19jbG50X3NraXBfZXZlbnRgLCBhbmQgYHJwY19zZXR1cF9waXBlZGlyX3NiYC4KCkhvbGQgb24uLi4gSSBub3RpY2VkIHRoYXQgYF9fcnBjX2NsbnRfaGFuZGxlX2V2ZW50YCBpcyBjYWxsZWQgZnJvbSBgX19ycGNfcGlwZWZzX2V2ZW50YC4gVGhhdOKAmXMgaW50ZXJlc3RpbmcsIHNpbmNlIGBfX3JwY19waXBlZnNfZXZlbnRgIGxvb2tzIGxpa2UgaXQgaXMgYXQgYSBoaWdoZXIgbGV2ZWwuIFRpbWUgdG8gdHJhY2UgYmFjayBhbmQgZGV0ZXJtaW5lIHRoZSBvcmlnaW4gb2YgdGhlIGV2ZW50LiBJIHNob3VsZCBmaW5kIG91dCB3aGVyZSBgX19ycGNfcGlwZWZzX2V2ZW50YCBpcyBjYWxsZWQgdG8gZ2V0IGEgY2xlYXJlciBwaWN0dXJlIG9mIHRoZSBldmVudCBmbG93IHdpdGhpbiB0aGUgTkZTIGNsaWVudC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMTM6MDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7X19ycGNfcGlwZWZzX2V2ZW50JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3N1bnJwYy9jbG50LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3N1bnJwYy9jbG50LmM9MTgyPXN0YXRpYyBpbnQgX19ycGNfY2xudF9oYW5kbGVfZXZlbnQoc3RydWN0IHJwY19jbG50ICpjbG50LCB1bnNpZ25lZCBsb25nIGV2ZW50LFxuLS1cbm5ldC9zdW5ycGMvY2xudC5jLTIwNi1cbm5ldC9zdW5ycGMvY2xudC5jOjIwNzpzdGF0aWMgaW50IF9fcnBjX3BpcGVmc19ldmVudChzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQsIHVuc2lnbmVkIGxvbmcgZXZlbnQsXG5uZXQvc3VucnBjL2NsbnQuYy0yMDgtXHRcdFx0XHRzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxuLS1cbm5ldC9zdW5ycGMvY2xudC5jPTIzNz1zdGF0aWMgaW50IHJwY19waXBlZnNfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwgdW5zaWduZWQgbG9uZyBldmVudCxcbi0tXG5uZXQvc3VucnBjL2NsbnQuYy0yNDQtXHR3aGlsZSAoKGNsbnQgPSBycGNfZ2V0X2NsaWVudF9mb3JfZXZlbnQoc2ItXHUwMDNlc19mc19pbmZvLCBldmVudCkpKSB7XG5uZXQvc3VucnBjL2NsbnQuYzoyNDU6XHRcdGVycm9yID0gX19ycGNfcGlwZWZzX2V2ZW50KGNsbnQsIGV2ZW50LCBzYik7XG5uZXQvc3VucnBjL2NsbnQuYy0yNDYtXHRcdGlmIChlcnJvcilcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMTM6MDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTI0OAoJCQkJCQkJb3V0cHV0OiAxMjcKCQkJCQkJCXRob3VnaHRzOiAyOTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIFJQQyBQaXBlZnMgRXZlbnQgTm90aWZpZXIqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyBhbGwgYWJvdXQgdGhhdCBub3RpZmllciBibG9jayBmb3IgcGlwZWZzIGV2ZW50cywgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgUlBDIGNsaWVudC4gTXkgaW5pdGlhbCBmb2N1cyBoYXMgdG8gYmUgb24gYF9fcnBjX2NsbnRfaGFuZGxlX2V2ZW50YCBhbmQgYF9fcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXJgLCBiZWNhdXNlIHRob3NlIGFyZSB3aGVyZSB0aGUgZXZlbnQgaGFuZGxpbmcgYW5kIGRpcmVjdG9yeSByZW1vdmFsIGxvZ2ljIHJlc2lkZS4KCkkgbmVlZCB0byBjb25maXJtIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucy4gVGhlIHRleHQgc3VnZ2VzdHMgdGhhdCBgU1VOUlBDYCBtaWdodCBiZSBzdWZmaWNpZW50LCBidXQgSSBuZWVkIHRvIG1ha2Ugc3VyZS4gWWVzLCBnb29kLCBib3RoIGBORlNfRlNgIGFuZCBgTkZTRGAgZW5hYmxlIGBTVU5SUENgLiBJJiMzOTtsbCB3YW50IHRvIGFkZCB0aGVzZSB0byBteSBjb25maWd1cmF0aW9uIHByb2ZpbGUuIEFjdHVhbGx5LCB3YWl0IGEgc2Vjb25kLiBgU1VOUlBDYCBpcyBhIHRyaXN0YXRlLCBzbyBJIGNvdWxkIGp1c3QgZW5hYmxlIGl0IGRpcmVjdGx5LiBIb3dldmVyLCBgTkZTX0ZTYCBmZWVscyBtb3JlIGFwcHJvcHJpYXRlIHNpbmNlIGl0JiMzOTtzIHRoZSBhY3R1YWwgdXNlciBvZiB0aGlzIGZ1bmN0aW9uYWxpdHkuIFRoZXJlZm9yZSwgSeKAmWxsIHByaW9yaXRpemUgYWRkaW5nIGBORlNfRlNgIGFuZCBgTkZTRGAgYXMgbXkgcHJpbWFyeSBjb25maWcgb3B0aW9ucy4KCkluIHRlcm1zIG9mIHRoZSBjb3JlIHJlYXNvbmluZywgdGhpcyBwYXRjaCBpcyBhZGRyZXNzaW5nIGEgcG90ZW50aWFsIGJ1ZyBpbiB0aGUgc3VucnBjIGNsaWVudC4gSXQgbG9va3MgbGlrZSBpdCBkZWFscyB3aXRoIGBjbG50LSZndDtwaXBlZnNfc2JgLCBlbnN1cmluZyBpdCYjMzk7cyBwcm9wZXJseSBzZXQgYW5kIGNsZWFyZWQgdG8gcHJldmVudCBpbmNvcnJlY3QgcGlwZWRpciByZW1vdmFsLiBUaGlzIGlzIGNyaXRpY2FsIGZ1bmN0aW9uYWwgbG9naWMgZm9yIFJQQyBhbmQgTkZTLCB3aGljaCBpcyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuCgpMZXQmIzM5O3MgZG8gYSBxdWljayBzd2VlcCBmb3IgYW55IHJlbGF0ZWQgY29uZmlndXJhdGlvbnMuIEkga25vdyBgU1VOUlBDYCBpcyB0aGUgYmlnIG9uZSBoZXJlLCBhbmQgSSBub3RlZCBgTkZTX1Y0YCBjb3VsZCBiZSByZWxhdGVkLiBIb3dldmVyLCBgTkZTX0ZTYCBpcyB0aGUgbWFpbiB0aGluZyB0byBjb25zaWRlciBmb3IgdGhpcyBmdXp6aW5nIGVmZm9ydC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMTM6MDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GU19GUyYjMzQ7LAogICAgJiMzNDtORlNEJiMzNDssCiAgICAmIzM0O1NVTlJQQyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O19fcnBjX2NsbnRfaGFuZGxlX2V2ZW50JiMzNDssCiAgICAmIzM0O19fcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGhhbmRsaW5nIG9mIFJQQyBwaXBlZnMgbW91bnQvdW1vdW50IGV2ZW50cyBpbiB0aGUgc3VucnBjIGNsaWVudCwgZml4aW5nIGEgYnVnIHdoZXJlIGNsbnQtXHUwMDNlcGlwZWZzX3NiIHdhcyBub3QgcHJvcGVybHkgc2V0IG9yIGNsZWFyZWQuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIGxvZ2ljIGZvciBSUEMvTkZTIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtORlNfRlMmIzM0OywKICAgICYjMzQ7TkZTRCYjMzQ7LAogICAgJiMzNDtTVU5SUEMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtfX3JwY19jbG50X2hhbmRsZV9ldmVudCYjMzQ7LAogICAgJiMzNDtfX3JwY19jbG50X3JlbW92ZV9waXBlZGlyJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBoYW5kbGluZyBvZiBSUEMgcGlwZWZzIG1vdW50L3Vtb3VudCBldmVudHMgaW4gdGhlIHN1bnJwYyBjbGllbnQsIGZpeGluZyBhIGJ1ZyB3aGVyZSBjbG50LVx1MDAzZXBpcGVmc19zYiB3YXMgbm90IHByb3Blcmx5IHNldCBvciBjbGVhcmVkLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29yZSBsb2dpYyBmb3IgUlBDL05GUyBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDEyOjU5OjIyLjY4MDUxMzMyM1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUxODE2NzcwNzI0NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORlNfRlNcIixcbiAgICBcIk5GU0RcIixcbiAgICBcIlNVTlJQQ1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIl9fcnBjX2NsbnRfaGFuZGxlX2V2ZW50XCIsXG4gICAgXCJfX3JwY19jbG50X3JlbW92ZV9waXBlZGlyXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGhhbmRsaW5nIG9mIFJQQyBwaXBlZnMgbW91bnQvdW1vdW50IGV2ZW50cyBpbiB0aGUgc3VucnBjIGNsaWVudCwgZml4aW5nIGEgYnVnIHdoZXJlIGNsbnQtXFx1MDAzZXBpcGVmc19zYiB3YXMgbm90IHByb3Blcmx5IHNldCBvciBjbGVhcmVkLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29yZSBsb2dpYyBmb3IgUlBDL05GUyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDdUMTI6NTk6MjIuNjgwNTI0MTAzWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MDUyODA3MzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA1NDQ4ZDgzM2U0MjFmYTViMWVkZjJkYzdkMzNmNDhmYjJlMTMzMWJiXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUdWUgSnVsIDcgMTI6NTk6MjAgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L3N1bnJwYy9jbG50LmMgYi9uZXQvc3VucnBjL2NsbnQuY1xcbmluZGV4IGJjOGNhNDcwNzE4YjdhLi44NWZkZDhiYTk0YTRjMiAxMDA2NDRcXG4tLS0gYS9uZXQvc3VucnBjL2NsbnQuY1xcbisrKyBiL25ldC9zdW5ycGMvY2xudC5jXFxuQEAgLTk2LDcgKzk2LDEwIEBAIHN0YXRpYyB2b2lkIHJwY191bnJlZ2lzdGVyX2NsaWVudChzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQpXFxuIFxcbiBzdGF0aWMgdm9pZCBfX3JwY19jbG50X3JlbW92ZV9waXBlZGlyKHN0cnVjdCBycGNfY2xudCAqY2xudClcXG4ge1xcbi1cXHRycGNfcmVtb3ZlX2NsaWVudF9kaXIoY2xudCk7XFxuK1xcdGlmIChjbG50LVxcdTAwM2VwaXBlZnNfc2IpIHtcXG4rXFx0XFx0cnBjX3JlbW92ZV9jbGllbnRfZGlyKGNsbnQpO1xcbitcXHRcXHRjbG50LVxcdTAwM2VwaXBlZnNfc2IgPSBOVUxMO1xcbitcXHR9XFxuIH1cXG4gXFxuIHN0YXRpYyB2b2lkIHJwY19jbG50X3JlbW92ZV9waXBlZGlyKHN0cnVjdCBycGNfY2xudCAqY2xudClcXG5AQCAtMTc3LDE5ICsxODAsMjggQEAgc3RhdGljIGludCBycGNfY2xudF9za2lwX2V2ZW50KHN0cnVjdCBycGNfY2xudCAqY2xudCwgdW5zaWduZWQgbG9uZyBldmVudClcXG4gfVxcbiBcXG4gc3RhdGljIGludCBfX3JwY19jbG50X2hhbmRsZV9ldmVudChzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQsIHVuc2lnbmVkIGxvbmcgZXZlbnQsXFxuLVxcdFxcdFxcdFxcdCAgIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXFxuK1xcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxcbiB7XFxuK1xcdGludCBlcnIgPSAwO1xcbitcXG4gXFx0c3dpdGNoIChldmVudCkge1xcbiBcXHRjYXNlIFJQQ19QSVBFRlNfTU9VTlQ6XFxuLVxcdFxcdHJldHVybiBycGNfc2V0dXBfcGlwZWRpcl9zYihzYiwgY2xudCk7XFxuK1xcdFxcdGNsbnQtXFx1MDAzZXBpcGVmc19zYiA9IHNiO1xcbitcXHRcXHRlcnIgPSBycGNfc2V0dXBfcGlwZWRpcl9zYihzYiwgY2xudCk7XFxuK1xcdFxcdGlmIChlcnIpXFxuK1xcdFxcdFxcdGNsbnQtXFx1MDAzZXBpcGVmc19zYiA9IE5VTEw7XFxuK1xcdFxcdGJyZWFrO1xcbiBcXHRjYXNlIFJQQ19QSVBFRlNfVU1PVU5UOlxcbi1cXHRcXHRfX3JwY19jbG50X3JlbW92ZV9waXBlZGlyKGNsbnQpO1xcbitcXHRcXHRpZiAoY2xudC1cXHUwMDNlcGlwZWZzX3NiID09IHNiKSB7XFxuK1xcdFxcdFxcdF9fcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXIoY2xudCk7XFxuK1xcdFxcdFxcdGNsbnQtXFx1MDAzZXBpcGVmc19zYiA9IE5VTEw7XFxuK1xcdFxcdH1cXG4gXFx0XFx0YnJlYWs7XFxuIFxcdGRlZmF1bHQ6XFxuIFxcdFxcdHByaW50ayhLRVJOX0VSUiBcXFwiJXM6IHVua25vd24gZXZlbnQ6ICVsZFxcXFxuXFxcIiwgX19mdW5jX18sIGV2ZW50KTtcXG4gXFx0XFx0cmV0dXJuIC1FTk9UU1VQUDtcXG4gXFx0fVxcbi1cXHRyZXR1cm4gMDtcXG4rXFx0cmV0dXJuIGVycjtcXG4gfVxcbiBcXG4gc3RhdGljIGludCBfX3JwY19waXBlZnNfZXZlbnQoc3RydWN0IHJwY19jbG50ICpjbG50LCB1bnNpZ25lZCBsb25nIGV2ZW50LFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QxMjo1OToyMy40ODY5MDM3OTNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUxNzM2MTMwNTIzNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORlNfRlNcIixcbiAgICBcIk5GU0RcIixcbiAgICBcIlNVTlJQQ1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIl9fcnBjX2NsbnRfaGFuZGxlX2V2ZW50XCIsXG4gICAgXCJfX3JwY19jbG50X3JlbW92ZV9waXBlZGlyXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGhhbmRsaW5nIG9mIFJQQyBwaXBlZnMgbW91bnQvdW1vdW50IGV2ZW50cyBpbiB0aGUgc3VucnBjIGNsaWVudCwgZml4aW5nIGEgYnVnIHdoZXJlIGNsbnQtXFx1MDAzZXBpcGVmc19zYiB3YXMgbm90IHByb3Blcmx5IHNldCBvciBjbGVhcmVkLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29yZSBsb2dpYyBmb3IgUlBDL05GUyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA1NDQ4ZDgzM2U0MjFmYTViMWVkZjJkYzdkMzNmNDhmYjJlMTMzMWJiXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdWwgNyAxMjo1OToyMCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9zdW5ycGMvY2xudC5jIGIvbmV0L3N1bnJwYy9jbG50LmNcbmluZGV4IGJjOGNhNDcwNzE4YjdhLi44NWZkZDhiYTk0YTRjMiAxMDA2NDRcbi0tLSBhL25ldC9zdW5ycGMvY2xudC5jXG4rKysgYi9uZXQvc3VucnBjL2NsbnQuY1xuQEAgLTk2LDcgKzk2LDEwIEBAIHN0YXRpYyB2b2lkIHJwY191bnJlZ2lzdGVyX2NsaWVudChzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQpXG4gXG4gc3RhdGljIHZvaWQgX19ycGNfY2xudF9yZW1vdmVfcGlwZWRpcihzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQpXG4ge1xuLVx0cnBjX3JlbW92ZV9jbGllbnRfZGlyKGNsbnQpO1xuK1x0aWYgKGNsbnQtXHUwMDNlcGlwZWZzX3NiKSB7XG4rXHRcdHJwY19yZW1vdmVfY2xpZW50X2RpcihjbG50KTtcbitcdFx0Y2xudC1cdTAwM2VwaXBlZnNfc2IgPSBOVUxMO1xuK1x0fVxuIH1cbiBcbiBzdGF0aWMgdm9pZCBycGNfY2xudF9yZW1vdmVfcGlwZWRpcihzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQpXG5AQCAtMTc3LDE5ICsxODAsMjggQEAgc3RhdGljIGludCBycGNfY2xudF9za2lwX2V2ZW50KHN0cnVjdCBycGNfY2xudCAqY2xudCwgdW5zaWduZWQgbG9uZyBldmVudClcbiB9XG4gXG4gc3RhdGljIGludCBfX3JwY19jbG50X2hhbmRsZV9ldmVudChzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQsIHVuc2lnbmVkIGxvbmcgZXZlbnQsXG4tXHRcdFx0XHQgICBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxuK1x0XHRcdFx0ICAgIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXG4ge1xuK1x0aW50IGVyciA9IDA7XG4rXG4gXHRzd2l0Y2ggKGV2ZW50KSB7XG4gXHRjYXNlIFJQQ19QSVBFRlNfTU9VTlQ6XG4tXHRcdHJldHVybiBycGNfc2V0dXBfcGlwZWRpcl9zYihzYiwgY2xudCk7XG4rXHRcdGNsbnQtXHUwMDNlcGlwZWZzX3NiID0gc2I7XG4rXHRcdGVyciA9IHJwY19zZXR1cF9waXBlZGlyX3NiKHNiLCBjbG50KTtcbitcdFx0aWYgKGVycilcbitcdFx0XHRjbG50LVx1MDAzZXBpcGVmc19zYiA9IE5VTEw7XG4rXHRcdGJyZWFrO1xuIFx0Y2FzZSBSUENfUElQRUZTX1VNT1VOVDpcbi1cdFx0X19ycGNfY2xudF9yZW1vdmVfcGlwZWRpcihjbG50KTtcbitcdFx0aWYgKGNsbnQtXHUwMDNlcGlwZWZzX3NiID09IHNiKSB7XG4rXHRcdFx0X19ycGNfY2xudF9yZW1vdmVfcGlwZWRpcihjbG50KTtcbitcdFx0XHRjbG50LVx1MDAzZXBpcGVmc19zYiA9IE5VTEw7XG4rXHRcdH1cbiBcdFx0YnJlYWs7XG4gXHRkZWZhdWx0OlxuIFx0XHRwcmludGsoS0VSTl9FUlIgXCIlczogdW5rbm93biBldmVudDogJWxkXFxuXCIsIF9fZnVuY19fLCBldmVudCk7XG4gXHRcdHJldHVybiAtRU5PVFNVUFA7XG4gXHR9XG4tXHRyZXR1cm4gMDtcbitcdHJldHVybiBlcnI7XG4gfVxuIFxuIHN0YXRpYyBpbnQgX19ycGNfcGlwZWZzX2V2ZW50KHN0cnVjdCBycGNfY2xudCAqY2xudCwgdW5zaWduZWQgbG9uZyBldmVudCxcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDEyOjU5OjIzLjQ4NjkwNjU1M1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE3MjkwMTQ0MDAwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgU3VuUlBDIENsaWVudCBQYXRjaCoqXG5cbk9rYXksIHNvIEkndmUgZ290IHRoaXMgcGF0Y2ggaGVyZSB0aGF0J3MgbWFraW5nIHNvbWUgY2hhbmdlcyBpbiBgbmV0L3N1bnJwYy9jbG50LmNgLiBTcGVjaWZpY2FsbHksIGl0J3MgdG91Y2hpbmcgYF9fcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXJgIGFuZCBgX19ycGNfY2xudF9oYW5kbGVfZXZlbnRgIOKAkyBib3RoIGltcG9ydGFudCBmdW5jdGlvbnMgd2l0aGluIHRoZSBSUEMgY2xpZW50J3Mgb3BlcmF0aW9uYWwgY29yZS4gSXQgbG9va3MgbGlrZSB0aGUga2V5IGNoYW5nZSByZXZvbHZlcyBhcm91bmQgaG93IHRoZXNlIGZ1bmN0aW9ucyBoYW5kbGUgYGNsbnQtXHUwMDNlcGlwZWZzX3NiYC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCB0aGlzIGBwaXBlZnNfc2JgIGlzIHdpdGhpbiB0aGlzIGNvbnRleHQuIEknbGwgbmVlZCB0byBkaWcgaW50byB0aGUgY29kZSB0byBmaWd1cmUgdGhpcyBvdXQsIHNwZWNpZmljYWxseSBsb29raW5nIGF0IGBuZXQvc3VucnBjL2NsbnQuY2AgYW5kIGFsc28gdGhlIHJlbGV2YW50IGhlYWRlciBmaWxlLCBgaW5jbHVkZS9saW51eC9zdW5ycGMvY2xudC5oYC4gVGhhdCdzIHdoZXJlIEknbGwgZmluZCB0aGUgZGVmaW5pdGlvbiBmb3IgYGNsbnQtXHUwMDNlcGlwZWZzX3NiYCBhbmQgaXRzIHB1cnBvc2UuIEFoLCB3YWl0IGEgbWludXRlLCB0aGUgcGF0Y2ggaXMgYWxyZWFkeSBhcHBsaWVkLiBUaGF0IG1ha2VzIG15IGpvYiBhIGJpdCBlYXNpZXIsIGFzIEkgY2FuIG5vdyB1c2UgYGdyZXBwZXJgIG9yIHNpbXBseSBgcmVhZC1maWxlYCB0byBzZWUgaG93IGl0J3MgdXNlZCBhbmQgd2hlcmUuIFRoaXMgd2lsbCBiZSBhIGxvdCBmYXN0ZXIgdGhhbiB0cnlpbmcgdG8gdW5kZXJzdGFuZCB0aGUgYmVmb3JlL2FmdGVyIGZyb20gdGhlIHBhdGNoIGZpbGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyMzYsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjIsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QxMjo1OTo0MC43NzcwNTQxNzNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjY5ODczNTQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl9fcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3N1bnJwYy9jbG50LmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3N1bnJwYy9jbG50LmM9ODc9c3RhdGljIHZvaWQgcnBjX3VucmVnaXN0ZXJfY2xpZW50KHN0cnVjdCBycGNfY2xudCAqY2xudClcXG4tLVxcbm5ldC9zdW5ycGMvY2xudC5jLTk2LVxcbm5ldC9zdW5ycGMvY2xudC5jOjk3OnN0YXRpYyB2b2lkIF9fcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXIoc3RydWN0IHJwY19jbG50ICpjbG50KVxcbm5ldC9zdW5ycGMvY2xudC5jLTk4LXtcXG4tLVxcbm5ldC9zdW5ycGMvY2xudC5jPTEwNT1zdGF0aWMgdm9pZCBycGNfY2xudF9yZW1vdmVfcGlwZWRpcihzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQpXFxuLS1cXG5uZXQvc3VucnBjL2NsbnQuYy0xMTItXFx0XFx0aWYgKHBpcGVmc19zYiA9PSBjbG50LVxcdTAwM2VwaXBlZnNfc2IpXFxubmV0L3N1bnJwYy9jbG50LmM6MTEzOlxcdFxcdFxcdF9fcnBjX2NsbnRfcmVtb3ZlX3BpcGVkaXIoY2xudCk7XFxubmV0L3N1bnJwYy9jbG50LmMtMTE0LVxcdFxcdHJwY19wdXRfc2JfbmV0KG5ldCk7XFxuLS1cXG5uZXQvc3VucnBjL2NsbnQuYz0xODI9c3RhdGljIGludCBfX3JwY19jbG50X2hhbmRsZV9ldmVudChzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQsIHVuc2lnbmVkIGxvbmcgZXZlbnQsXFxuLS1cXG5uZXQvc3VucnBjL2NsbnQuYy0xOTUtXFx0XFx0aWYgKGNsbnQtXFx1MDAzZXBpcGVmc19zYiA9PSBzYikge1xcbm5ldC9zdW5ycGMvY2xudC5jOjE5NjpcXHRcXHRcXHRfX3JwY19jbG50X3JlbW92ZV9waXBlZGlyKGNsbnQpO1xcbm5ldC9zdW5ycGMvY2xudC5jLTE5Ny1cXHRcXHRcXHRjbG50LVxcdTAwM2VwaXBlZnNfc2IgPSBOVUxMO1xcbi0tXFxubmV0L3N1bnJwYy9jbG50LmM9Mjk2PXN0YXRpYyBpbnQgcnBjX2NsaWVudF9yZWdpc3RlcihzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQsXFxuLS1cXG5uZXQvc3VucnBjL2NsbnQuYy0zMzItXFx0cnBjX3VucmVnaXN0ZXJfY2xpZW50KGNsbnQpO1xcbm5ldC9zdW5ycGMvY2xudC5jOjMzMzpcXHRfX3JwY19jbG50X3JlbW92ZV9waXBlZGlyKGNsbnQpO1xcbm5ldC9zdW5ycGMvY2xudC5jLTMzNC1vdXQ6XFxuLS1cXG5uZXQvc3VucnBjL2NsbnQuYz03Mzc9aW50IHJwY19zd2l0Y2hfY2xpZW50X3RyYW5zcG9ydChzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQsXFxuLS1cXG5uZXQvc3VucnBjL2NsbnQuYy03NjUtXFx0cnBjX3VucmVnaXN0ZXJfY2xpZW50KGNsbnQpO1xcbm5ldC9zdW5ycGMvY2xudC5jOjc2NjpcXHRfX3JwY19jbG50X3JlbW92ZV9waXBlZGlyKGNsbnQpO1xcbm5ldC9zdW5ycGMvY2xudC5jLTc2Ny1cXHRycGNfc3lzZnNfY2xpZW50X2Rlc3Ryb3koY2xudCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDEyOjU5OjQxLjQ0NjkzNzMxN1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIzOTQ5NjY0NDUwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlN1blJQQyBQaXBlZnMgQnVnIEZpeCAtIEluaXRpYWwgQXNzZXNzbWVudCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggYWRkcmVzc2VzIGEgcHJldHR5IHNwZWNpZmljIGJ1ZyBpbiB0aGUgc3VucnBjIG1vZHVsZSwgZGVhbGluZyB3aXRoIHBpcGVmcyBtb3VudHMgYW5kIHVubW91bnRzLiBJdCBsb29rcyBsaWtlIGl0J3MgYWRkaW5nIGBjbG50LVx1MDAzZXBpcGVmc19zYiA9IHNiYCBhbmQgdGhlbiB1c2luZyBhIGNoZWNrIG9mIGBjbG50LVx1MDAzZXBpcGVmc19zYiA9PSBzYmAgYmVmb3JlIGRlbGV0aW5nIHRoZSBwaXBlZGlyLiBGdW5jdGlvbmFsbHksIHRoaXMgc2VlbXMgbGlrZSBpdCdzIGluIHRoZSByaWdodCBkaXJlY3Rpb24uIEl0J3MgYSBjbGVhbiBhcHByb2FjaCB0byBlbnN1cmluZyB0aGUgY29ycmVjdCBzdXBlcmJsb2NrIGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcGlwZWRpciBiZWZvcmUgYXR0ZW1wdGluZyByZW1vdmFsIGR1cmluZyB1bm1vdW50LCBwcmV2ZW50aW5nIHRoYXQgcGVza3kgZG91YmxlLWZyZWUuIEdpdmVuIHRoaXMgaXMgYSBwaXBlZnMgYnVnIGZpeCwgaXQncyBkZWZpbml0ZWx5IHNvbWV0aGluZyB0aGF0J3Mgd29ydGggYSBnb29kIHJvdW5kIG9mIGZ1enppbmcgdG8gc2VlIGlmIGFueSBlZGdlIGNhc2VzIGNyb3AgdXAuIE5vdywgbGV0IG1lIGZpbmQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0byBtYWtlIHN1cmUgSSBnZXQgYSBjb21wcmVoZW5zaXZlIGZ1enppbmcgc2V0dXAgZm9yIHN1bnJwYyB0byBtYWtlIHN1cmUgYWxsIGNvbmZpZ3VyYXRpb25zIG9mIHRoZSBidWcgYXJlIGlkZW50aWZpZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMyNjQsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QxMzowMDowNS4zOTY2MDQxMDhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjYxMzg0NDU1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBTVU5SUENcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3N1bnJwYy9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9zdW5ycGMvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbm5ldC9zdW5ycGMvS2NvbmZpZzoyOmNvbmZpZyBTVU5SUENcXG5uZXQvc3VucnBjL0tjb25maWctMy1cXHR0cmlzdGF0ZVxcbi0tXFxubmV0L3N1bnJwYy9LY29uZmlnLTUtXFxubmV0L3N1bnJwYy9LY29uZmlnOjY6Y29uZmlnIFNVTlJQQ19HU1NcXG5uZXQvc3VucnBjL0tjb25maWctNy1cXHR0cmlzdGF0ZVxcbi0tXFxubmV0L3N1bnJwYy9LY29uZmlnLTEwLVxcbm5ldC9zdW5ycGMvS2NvbmZpZzoxMTpjb25maWcgU1VOUlBDX0JBQ0tDSEFOTkVMXFxubmV0L3N1bnJwYy9LY29uZmlnLTEyLVxcdGJvb2xcXG4tLVxcbm5ldC9zdW5ycGMvS2NvbmZpZy0xNC1cXG5uZXQvc3VucnBjL0tjb25maWc6MTU6Y29uZmlnIFNVTlJQQ19TV0FQXFxubmV0L3N1bnJwYy9LY29uZmlnLTE2LVxcdGJvb2xcXG4tLVxcbm5ldC9zdW5ycGMvS2NvbmZpZz0xOT1jb25maWcgUlBDU0VDX0dTU19LUkI1XFxuLS1cXG5uZXQvc3VucnBjL0tjb25maWctMzUtXFxubmV0L3N1bnJwYy9LY29uZmlnOjM2OmNvbmZpZyBTVU5SUENfREVCVUdcXG5uZXQvc3VucnBjL0tjb25maWctMzctXFx0Ym9vbCBcXFwiUlBDOiBFbmFibGUgZHByaW50ayBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvc3VucnBjL0tjb25maWctNDktXFxubmV0L3N1bnJwYy9LY29uZmlnOjUwOmNvbmZpZyBTVU5SUENfREVCVUdfVFJBQ0VcXG5uZXQvc3VucnBjL0tjb25maWctNTEtXFx0Ym9vbCBcXFwiUlBDOiBTZW5kIGRmcHJpbnRrKCkgb3V0cHV0IHRvIHRoZSB0cmFjZSBidWZmZXJcXFwiXFxuLS1cXG5uZXQvc3VucnBjL0tjb25maWctNjMtXFxubmV0L3N1bnJwYy9LY29uZmlnOjY0OmNvbmZpZyBTVU5SUENfWFBSVF9SRE1BXFxubmV0L3N1bnJwYy9LY29uZmlnLTY1LVxcdHRyaXN0YXRlIFxcXCJSUEMtb3Zlci1SRE1BIHRyYW5zcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDdUMTM6MDA6MDYuMDU3OTk1MDEyWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDMxNTA3NzUzMjYyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIHByZXNlbnRlZCBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKkludmVzdGlnYXRpbmcgU1VOUlBDIERlcGVuZGVuY3kqKlxuXG5SaWdodCwgc28gU1VOUlBDIGlzIHRoZSBzdGFuZGFyZCBwcm90b2NvbCBmb3IgTkZTLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byBjaGVjayBpZiB0aGF0J3MgdGhlIG9ubHkgcGxhY2UgaXQncyBzaG93aW5nIHVwLiBJIHdhbnQgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgY29uZmlndXJhdGlvbnMsIGFwcGxpY2F0aW9ucywgb3Igc3lzdGVtcyB3aGVyZSBTVU5SUEMgaXMgYmVpbmcgZXhwbGljaXRseSBzcGVjaWZpZWQgb3IgdXNlZC4gSSdtIGxvb2tpbmcgZm9yIHBvdGVudGlhbCBkZXBlbmRlbmNpZXMgb3IgYXJlYXMgd2hlcmUgdGhpcyBtaWdodCBiZSBhIGNvbnN0cmFpbnQgb3IgYSBwb2ludCBvZiBpbnRlcmVzdCBmb3IgcGVyZm9ybWFuY2UgdHVuaW5nIG9yIHNlY3VyaXR5IGhhcmRlbmluZy4gRXNzZW50aWFsbHksIEknbSB0cnlpbmcgdG8gZGV0ZXJtaW5lIHRoZSBicmVhZHRoIG9mIGl0cyBpbXBhY3QgYmVmb3JlIGRpZ2dpbmcgYW55IGZ1cnRoZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM5NTcsIk91dHB1dFRva2VucyI6MjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QxMzowNzoxNy41NjU3NTE4MzRaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTE1OTIxNTU2MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzZWxlY3QgU1VOUlBDXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9LY29uZmlnPTM4Mj1jb25maWcgTkZTX0NPTU1PTl9MT0NBTElPX1NVUFBPUlRcXG4tLVxcbmZzL0tjb25maWctMzg2LVxcdGRlZmF1bHQgbSBpZiBORlNEPW0gXFx1MDAyNlxcdTAwMjYgTkZTX0ZTPW1cXG5mcy9LY29uZmlnOjM4NzpcXHRzZWxlY3QgU1VOUlBDXFxuZnMvS2NvbmZpZy0zODgtXFxuLS1cXG5mcy9uZnMvS2NvbmZpZz0yPWNvbmZpZyBORlNfRlNcXG4tLVxcbmZzL25mcy9LY29uZmlnLTYtXFx0c2VsZWN0IExPQ0tEXFxuZnMvbmZzL0tjb25maWc6NzpcXHRzZWxlY3QgU1VOUlBDXFxuZnMvbmZzL0tjb25maWctOC1cXHRzZWxlY3QgTkZTX0NPTU1PTlxcbi0tXFxuZnMvbmZzL0tjb25maWc9Nzc9Y29uZmlnIE5GU19WNFxcbi0tXFxuZnMvbmZzL0tjb25maWctODAtXFx0c2VsZWN0IEtFWVNcXG5mcy9uZnMvS2NvbmZpZzo4MTpcXHRzZWxlY3QgU1VOUlBDX0JBQ0tDSEFOTkVMXFxuZnMvbmZzL0tjb25maWctODItXFx0aGVscFxcbi0tXFxuZnMvbmZzL0tjb25maWc9OTI9Y29uZmlnIE5GU19TV0FQXFxuLS1cXG5mcy9uZnMvS2NvbmZpZy05NS1cXHRkZXBlbmRzIG9uIE5GU19GUyBcXHUwMDI2XFx1MDAyNiBTV0FQXFxuZnMvbmZzL0tjb25maWc6OTY6XFx0c2VsZWN0IFNVTlJQQ19TV0FQXFxuZnMvbmZzL0tjb25maWctOTctXFx0aGVscFxcbi0tXFxuZnMvbmZzZC9LY29uZmlnPTI9Y29uZmlnIE5GU0RcXG4tLVxcbmZzL25mc2QvS2NvbmZpZy0xMS1cXHRzZWxlY3QgTE9DS0RcXG5mcy9uZnNkL0tjb25maWc6MTI6XFx0c2VsZWN0IFNVTlJQQ1xcbmZzL25mc2QvS2NvbmZpZy0xMy1cXHRzZWxlY3QgRVhQT1JURlNcXG4tLVxcbm5ldC9zdW5ycGMvS2NvbmZpZz0xOT1jb25maWcgUlBDU0VDX0dTU19LUkI1XFxuLS1cXG5uZXQvc3VucnBjL0tjb25maWctMjItXFx0ZGVmYXVsdCB5XFxubmV0L3N1bnJwYy9LY29uZmlnOjIzOlxcdHNlbGVjdCBTVU5SUENfR1NTXFxubmV0L3N1bnJwYy9LY29uZmlnLTI0LVxcdHNlbGVjdCBDUllQVE9fS1JCNVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QxMzowNzoyNi43MjQ5NzkzMTVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyMDM0NDAwODcwMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgTkZTIENsaWVudCBFdmVudCBIYW5kbGluZyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IE5GUy1yZWxhdGVkIGNvZGUsIHNwZWNpZmljYWxseSBmb2N1c2luZyBvbiB0aGUgY2xpZW50LXNpZGUgaW50ZXJhY3Rpb24uIEZyb20gd2hhdCBJIHNlZSwgYE5GU19GU2AgYW5kIGBORlNEYCBzZWVtIHRvIGJlIHRoZSBwcmltYXJ5IG1vZHVsZXMgaW4gcGxheSBoZXJlLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZXhhbWluZSB0aGUgbW9kaWZpZWQgZnVuY3Rpb25zIHRvIHVuZGVyc3RhbmQgdGhlIGNoYW5nZXMgbWFkZS4gTGV0J3Mgc2VlLi4uIHRoZSBkaWZmcyBoaWdobGlnaHQgdGhlc2UgZnVuY3Rpb25zOiBgX19ycGNfY2xudF9oYW5kbGVfZXZlbnRgLCBgX19ycGNfY2xudF9yZW1vdmVfcGlwZWRpcmAsIGBycGNfY2xudF9yZW1vdmVfcGlwZWRpcmAsIGBycGNfY2xudF9za2lwX2V2ZW50YCwgYW5kIGBycGNfc2V0dXBfcGlwZWRpcl9zYmAuXG5cbkhvbGQgb24uLi4gSSBub3RpY2VkIHRoYXQgYF9fcnBjX2NsbnRfaGFuZGxlX2V2ZW50YCBpcyBjYWxsZWQgZnJvbSBgX19ycGNfcGlwZWZzX2V2ZW50YC4gVGhhdOKAmXMgaW50ZXJlc3RpbmcsIHNpbmNlIGBfX3JwY19waXBlZnNfZXZlbnRgIGxvb2tzIGxpa2UgaXQgaXMgYXQgYSBoaWdoZXIgbGV2ZWwuIFRpbWUgdG8gdHJhY2UgYmFjayBhbmQgZGV0ZXJtaW5lIHRoZSBvcmlnaW4gb2YgdGhlIGV2ZW50LiBJIHNob3VsZCBmaW5kIG91dCB3aGVyZSBgX19ycGNfcGlwZWZzX2V2ZW50YCBpcyBjYWxsZWQgdG8gZ2V0IGEgY2xlYXJlciBwaWN0dXJlIG9mIHRoZSBldmVudCBmbG93IHdpdGhpbiB0aGUgTkZTIGNsaWVudC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDU3NCwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QxMzowNzo0Ny4wNjg5OTAxOTdaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYwMDgwMzg0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJfX3JwY19waXBlZnNfZXZlbnRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3N1bnJwYy9jbG50LmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3N1bnJwYy9jbG50LmM9MTgyPXN0YXRpYyBpbnQgX19ycGNfY2xudF9oYW5kbGVfZXZlbnQoc3RydWN0IHJwY19jbG50ICpjbG50LCB1bnNpZ25lZCBsb25nIGV2ZW50LFxcbi0tXFxubmV0L3N1bnJwYy9jbG50LmMtMjA2LVxcbm5ldC9zdW5ycGMvY2xudC5jOjIwNzpzdGF0aWMgaW50IF9fcnBjX3BpcGVmc19ldmVudChzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQsIHVuc2lnbmVkIGxvbmcgZXZlbnQsXFxubmV0L3N1bnJwYy9jbG50LmMtMjA4LVxcdFxcdFxcdFxcdHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXFxuLS1cXG5uZXQvc3VucnBjL2NsbnQuYz0yMzc9c3RhdGljIGludCBycGNfcGlwZWZzX2V2ZW50KHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsIHVuc2lnbmVkIGxvbmcgZXZlbnQsXFxuLS1cXG5uZXQvc3VucnBjL2NsbnQuYy0yNDQtXFx0d2hpbGUgKChjbG50ID0gcnBjX2dldF9jbGllbnRfZm9yX2V2ZW50KHNiLVxcdTAwM2VzX2ZzX2luZm8sIGV2ZW50KSkpIHtcXG5uZXQvc3VucnBjL2NsbnQuYzoyNDU6XFx0XFx0ZXJyb3IgPSBfX3JwY19waXBlZnNfZXZlbnQoY2xudCwgZXZlbnQsIHNiKTtcXG5uZXQvc3VucnBjL2NsbnQuYy0yNDYtXFx0XFx0aWYgKGVycm9yKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QxMzowNzo0Ny42Njk3OTk3NzdaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTI5OTQ4MTUyNDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIFJQQyBQaXBlZnMgRXZlbnQgTm90aWZpZXIqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGFsbCBhYm91dCB0aGF0IG5vdGlmaWVyIGJsb2NrIGZvciBwaXBlZnMgZXZlbnRzLCBzcGVjaWZpY2FsbHkgd2l0aGluIHRoZSBSUEMgY2xpZW50LiBNeSBpbml0aWFsIGZvY3VzIGhhcyB0byBiZSBvbiBgX19ycGNfY2xudF9oYW5kbGVfZXZlbnRgIGFuZCBgX19ycGNfY2xudF9yZW1vdmVfcGlwZWRpcmAsIGJlY2F1c2UgdGhvc2UgYXJlIHdoZXJlIHRoZSBldmVudCBoYW5kbGluZyBhbmQgZGlyZWN0b3J5IHJlbW92YWwgbG9naWMgcmVzaWRlLlxuXG5JIG5lZWQgdG8gY29uZmlybSB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMuIFRoZSB0ZXh0IHN1Z2dlc3RzIHRoYXQgYFNVTlJQQ2AgbWlnaHQgYmUgc3VmZmljaWVudCwgYnV0IEkgbmVlZCB0byBtYWtlIHN1cmUuIFllcywgZ29vZCwgYm90aCBgTkZTX0ZTYCBhbmQgYE5GU0RgIGVuYWJsZSBgU1VOUlBDYC4gSSdsbCB3YW50IHRvIGFkZCB0aGVzZSB0byBteSBjb25maWd1cmF0aW9uIHByb2ZpbGUuIEFjdHVhbGx5LCB3YWl0IGEgc2Vjb25kLiBgU1VOUlBDYCBpcyBhIHRyaXN0YXRlLCBzbyBJIGNvdWxkIGp1c3QgZW5hYmxlIGl0IGRpcmVjdGx5LiBIb3dldmVyLCBgTkZTX0ZTYCBmZWVscyBtb3JlIGFwcHJvcHJpYXRlIHNpbmNlIGl0J3MgdGhlIGFjdHVhbCB1c2VyIG9mIHRoaXMgZnVuY3Rpb25hbGl0eS4gVGhlcmVmb3JlLCBJ4oCZbGwgcHJpb3JpdGl6ZSBhZGRpbmcgYE5GU19GU2AgYW5kIGBORlNEYCBhcyBteSBwcmltYXJ5IGNvbmZpZyBvcHRpb25zLlxuXG5JbiB0ZXJtcyBvZiB0aGUgY29yZSByZWFzb25pbmcsIHRoaXMgcGF0Y2ggaXMgYWRkcmVzc2luZyBhIHBvdGVudGlhbCBidWcgaW4gdGhlIHN1bnJwYyBjbGllbnQuIEl0IGxvb2tzIGxpa2UgaXQgZGVhbHMgd2l0aCBgY2xudC1cdTAwM2VwaXBlZnNfc2JgLCBlbnN1cmluZyBpdCdzIHByb3Blcmx5IHNldCBhbmQgY2xlYXJlZCB0byBwcmV2ZW50IGluY29ycmVjdCBwaXBlZGlyIHJlbW92YWwuIFRoaXMgaXMgY3JpdGljYWwgZnVuY3Rpb25hbCBsb2dpYyBmb3IgUlBDIGFuZCBORlMsIHdoaWNoIGlzIGRlZmluaXRlbHkgd29ydGggZnV6emluZy5cblxuTGV0J3MgZG8gYSBxdWljayBzd2VlcCBmb3IgYW55IHJlbGF0ZWQgY29uZmlndXJhdGlvbnMuIEkga25vdyBgU1VOUlBDYCBpcyB0aGUgYmlnIG9uZSBoZXJlLCBhbmQgSSBub3RlZCBgTkZTX1Y0YCBjb3VsZCBiZSByZWxhdGVkLiBIb3dldmVyLCBgTkZTX0ZTYCBpcyB0aGUgbWFpbiB0aGluZyB0byBjb25zaWRlciBmb3IgdGhpcyBmdXp6aW5nIGVmZm9ydC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTI0OCwiT3V0cHV0VG9rZW5zIjoxMjcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDdUMTM6MDg6MDAuNjY0NjE3MDQ4WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTgzNTg1MjIyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORlNfRlNcIixcbiAgICBcIk5GU0RcIixcbiAgICBcIlNVTlJQQ1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIl9fcnBjX2NsbnRfaGFuZGxlX2V2ZW50XCIsXG4gICAgXCJfX3JwY19jbG50X3JlbW92ZV9waXBlZGlyXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGhhbmRsaW5nIG9mIFJQQyBwaXBlZnMgbW91bnQvdW1vdW50IGV2ZW50cyBpbiB0aGUgc3VucnBjIGNsaWVudCwgZml4aW5nIGEgYnVnIHdoZXJlIGNsbnQtXFx1MDAzZXBpcGVmc19zYiB3YXMgbm90IHByb3Blcmx5IHNldCBvciBjbGVhcmVkLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29yZSBsb2dpYyBmb3IgUlBDL05GUyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORlNfRlNcIixcbiAgICBcIk5GU0RcIixcbiAgICBcIlNVTlJQQ1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIl9fcnBjX2NsbnRfaGFuZGxlX2V2ZW50XCIsXG4gICAgXCJfX3JwY19jbG50X3JlbW92ZV9waXBlZGlyXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGhhbmRsaW5nIG9mIFJQQyBwaXBlZnMgbW91bnQvdW1vdW50IGV2ZW50cyBpbiB0aGUgc3VucnBjIGNsaWVudCwgZml4aW5nIGEgYnVnIHdoZXJlIGNsbnQtXFx1MDAzZXBpcGVmc19zYiB3YXMgbm90IHByb3Blcmx5IHNldCBvciBjbGVhcmVkLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29yZSBsb2dpYyBmb3IgUlBDL05GUyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowz7mdq[1] Phase: Succeeded StartedAt: 2026-07-07 13:10:08 +0000 UTC FinishedAt: 2026-07-07 13:10:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz7mdq[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-07 13:10:08 +0000 UTC FinishedAt: 2026-07-07 13:10:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz7mdq[2] Phase: Succeeded StartedAt: 2026-07-07 13:10:08 +0000 UTC FinishedAt: 2026-07-07 15:40:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz7mdq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-07-07 13:10:08 +0000 UTC FinishedAt: 2026-07-07 15:40:19 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-workflowz7mdq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-07-07 13:10:08 +0000 UTC FinishedAt: 2026-07-07 13:10:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz7mdq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-07-07 13:10:08 +0000 UTC FinishedAt: 2026-07-07 13:10:41 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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-workflowz7mdq/series-workflowz7mdq-convert-artifact-1747887988/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowz7mdq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-07-07 13:10:49 +0000 UTC FinishedAt: 2026-07-07 13:55:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz7mdq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-07-07 13:10:49 +0000 UTC FinishedAt: 2026-07-07 13:55:03 +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:*3d694649-9d4c-4bb1-a8aa-0ab4f05ac802,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-workflowz7mdq/series-workflowz7mdq-convert-artifact-1747887988/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": "01fefde4-4a5b-449c-8c8b-4fd1cb352ac0", "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-workflowz7mdq/series-workflowz7mdq-build-action-1641581682/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowz7mdq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-07-07 13:10:49 +0000 UTC FinishedAt: 2026-07-07 13:54:53 +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:*3d694649-9d4c-4bb1-a8aa-0ab4f05ac802,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-workflowz7mdq/series-workflowz7mdq-convert-artifact-1747887988/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": "01fefde4-4a5b-449c-8c8b-4fd1cb352ac0", "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-workflowz7mdq/series-workflowz7mdq-build-action-1641581682/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowz7mdq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-07-07 13:55:03 +0000 UTC FinishedAt: 2026-07-07 13:55:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz7mdq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-07-07 13:55:03 +0000 UTC FinishedAt: 2026-07-07 13:55:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz7mdq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-07-07 13:55:03 +0000 UTC FinishedAt: 2026-07-07 13:55:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz7mdq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-07-07 13:55:03 +0000 UTC FinishedAt: 2026-07-07 13:55:14 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-workflowz7mdq/series-workflowz7mdq-convert-artifact-1421576755/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowz7mdq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-07-07 13:55:24 +0000 UTC FinishedAt: 2026-07-07 13:57:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz7mdq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-07-07 13:55:24 +0000 UTC FinishedAt: 2026-07-07 13:57:49 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*01fefde4-4a5b-449c-8c8b-4fd1cb352ac0,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-workflowz7mdq/series-workflowz7mdq-build-action-1641581682/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-workflowz7mdq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-07-07 13:57:59 +0000 UTC FinishedAt: 2026-07-07 13:57:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz7mdq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-07-07 13:57:59 +0000 UTC FinishedAt: 2026-07-07 13:57:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz7mdq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-07-07 13:57:59 +0000 UTC FinishedAt: 2026-07-07 14:45:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz7mdq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-07-07 13:57:59 +0000 UTC FinishedAt: 2026-07-07 14:45:16 +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:*3d694649-9d4c-4bb1-a8aa-0ab4f05ac802,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-workflowz7mdq/series-workflowz7mdq-convert-artifact-1421576755/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": "1f9f8146-d8f2-4517-b50b-06f299821fa9", "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-workflowz7mdq/series-workflowz7mdq-build-action-77370087/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowz7mdq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-07-07 13:57:59 +0000 UTC FinishedAt: 2026-07-07 14:45:06 +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:*3d694649-9d4c-4bb1-a8aa-0ab4f05ac802,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-workflowz7mdq/series-workflowz7mdq-convert-artifact-1421576755/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": "1f9f8146-d8f2-4517-b50b-06f299821fa9", "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-workflowz7mdq/series-workflowz7mdq-build-action-77370087/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowz7mdq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-07-07 14:45:16 +0000 UTC FinishedAt: 2026-07-07 14:45:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz7mdq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-07-07 14:45:16 +0000 UTC FinishedAt: 2026-07-07 14:45:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz7mdq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-07-07 14:45:16 +0000 UTC FinishedAt: 2026-07-07 14:47:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz7mdq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-07-07 14:45:16 +0000 UTC FinishedAt: 2026-07-07 14:47:20 +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:*1f9f8146-d8f2-4517-b50b-06f299821fa9,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-workflowz7mdq/series-workflowz7mdq-build-action-77370087/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-workflowz7mdq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-07-07 14:47:29 +0000 UTC FinishedAt: 2026-07-07 15:40:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz7mdq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-07-07 14:47:29 +0000 UTC FinishedAt: 2026-07-07 15:40:19 +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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"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:*01fefde4-4a5b-449c-8c8b-4fd1cb352ac0,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*1f9f8146-d8f2-4517-b50b-06f299821fa9,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-workflowz7mdq/series-workflowz7mdq-build-action-1641581682/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-workflowz7mdq/series-workflowz7mdq-build-action-77370087/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowz7mdq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-07-07 14:47:29 +0000 UTC FinishedAt: 2026-07-07 14:47:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz7mdq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-07-07 14:47:29 +0000 UTC FinishedAt: 2026-07-07 14:47:36 +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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"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-workflowz7mdq/series-workflowz7mdq-convert-artifact-2614907948/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowz7mdq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-07-07 14:47:29 +0000 UTC FinishedAt: 2026-07-07 14:47:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz7mdq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-07-07 14:47:29 +0000 UTC FinishedAt: 2026-07-07 14:47:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz7mdq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-07-07 14:47:29 +0000 UTC FinishedAt: 2026-07-07 14:47:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz7mdq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-07-07 14:47:39 +0000 UTC FinishedAt: 2026-07-07 15:40:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz7mdq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"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":["__rpc_clnt_handle_event","__rpc_clnt_remove_pipedir"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"474cff6868129755cf889edf40d7f491729fc588","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFS_FS","NFSD","SUNRPC"],"series_id":"9b387e72-c4af-48a9-8ef6-af73d057716f","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-07-07 14:47:39 +0000 UTC FinishedAt: 2026-07-07 15:40:09 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*01fefde4-4a5b-449c-8c8b-4fd1cb352ac0,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*1f9f8146-d8f2-4517-b50b-06f299821fa9,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-workflowz7mdq/series-workflowz7mdq-build-action-1641581682/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-workflowz7mdq/series-workflowz7mdq-build-action-77370087/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-workflowz7mdq/series-workflowz7mdq-convert-artifact-2614907948/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,}