Name: series-workflowbg7kw Phase: Succeeded StartedAt: 2026-07-14 01:24:59 +0000 UTC FinishedAt: 2026-07-14 02:48:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbg7kw[0] Phase: Succeeded StartedAt: 2026-07-14 01:24:59 +0000 UTC FinishedAt: 2026-07-14 01:37:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbg7kw[0].run-triage Phase: Succeeded StartedAt: 2026-07-14 01:24:59 +0000 UTC FinishedAt: 2026-07-14 01:37:43 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git", "commit_hash": "7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_JIT", "X86_32" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git", "commit_hash": "7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_JIT", "X86_32" ], "series_id": "5d6e2745-6b12-42bb-979f-cccf01eceea7" }, "track": "KASAN", "fuzz": { "focus": [ "bpf" ], "focus_symbols": [ "bpf_int_jit_compile", "do_jit" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-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+CgkJCTx0ZD4yMDI2LzA3LzE0IDAxOjM3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9KSVQmIzM0OywKICAgICYjMzQ7WDg2XzMyJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YnBmX2ludF9qaXRfY29tcGlsZSYjMzQ7LAogICAgJiMzNDtkb19qaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBzaWduZWQgZGl2aXNpb24gYW5kIG1vZHVsbyBvcGVyYXRpb25zIGluIHRoZSAzMi1iaXQgeDg2IEJQRiBKSVQgY29tcGlsZXIuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IG1vZGlmaWVzIHRoZSBlbWl0dGVkIG1hY2hpbmUgY29kZSBhbmQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgY29ycmVjdG5lc3MgYW5kIHByZXZlbnQgSklUIGJ1Z3MuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMDE6Mzc8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBlYjliYjBiMDc1OWI3ZDI2NTMwMGFkZDY0YjFmYjk0Njc1NTQyYzY3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdWwgMTQgMDE6Mzc6MDAgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmMgYi9hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuY1xuaW5kZXggODUyYmFmMmU0ZGI0ZDEuLjQ2YjQ3NDMyZjUwYWE0IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jXG5AQCAtNDMzLDcgJiM0Mzs0MzMsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZW1pdF9pYTMyX3RvX2JlX3I2NChjb25zdCB1OCBkc3RbXSwgczMyIHZhbCxcbiAgKiBkc3QgPSBkc3QgKGRpdnxtb2QpIHNyY1xuICAqL1xuIHN0YXRpYyBpbmxpbmUgdm9pZCBlbWl0X2lhMzJfZGl2X21vZF9yKGNvbnN0IHU4IG9wLCBjb25zdCB1OCBkc3QsIGNvbnN0IHU4IHNyYyxcbi1cdFx0XHRcdCAgICAgICBib29sIGRzdGssIGJvb2wgc3N0aywgdTggKipwcHJvZylcbiYjNDM7XHRcdFx0XHQgICAgICAgYm9vbCBkc3RrLCBib29sIHNzdGssIGJvb2wgaXNfc2lnbmVkLFxuJiM0MztcdFx0XHRcdCAgICAgICB1OCAqKnBwcm9nKVxuIHtcbiBcdHU4ICpwcm9nID0gKnBwcm9nO1xuIFx0aW50IGNudCA9IDA7XG5AQCAtNDU0LDEwICYjNDM7NDU1LDE3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBlbWl0X2lhMzJfZGl2X21vZF9yKGNvbnN0IHU4IG9wLCBjb25zdCB1OCBkc3QsIGNvbnN0IHU4IHNyYyxcbiBcdFx0LyogbW92IGVheCxkc3QgKi9cbiBcdFx0RU1JVDIoMHg4QiwgYWRkXzJyZWcoMHhDMCwgZHN0LCBJQTMyX0VBWCkpO1xuIFxuLVx0LyogeG9yIGVkeCxlZHggKi9cbi1cdEVNSVQyKDB4MzEsIGFkZF8ycmVnKDB4QzAsIElBMzJfRURYLCBJQTMyX0VEWCkpO1xuLVx0LyogZGl2IGVjeCAqL1xuLVx0RU1JVDIoMHhGNywgYWRkXzFyZWcoMHhGMCwgSUEzMl9FQ1gpKTtcbiYjNDM7XHRpZiAoaXNfc2lnbmVkKSB7XG4mIzQzO1x0XHQvKiBjZHEgKi9cbiYjNDM7XHRcdEVNSVQxKDB4OTkpO1xuJiM0MztcdFx0LyogaWRpdiBlY3ggKi9cbiYjNDM7XHRcdEVNSVQyKDB4RjcsIGFkZF8xcmVnKDB4RjgsIElBMzJfRUNYKSk7XG4mIzQzO1x0fSBlbHNlIHtcbiYjNDM7XHRcdC8qIHhvciBlZHgsZWR4ICovXG4mIzQzO1x0XHRFTUlUMigweDMxLCBhZGRfMnJlZygweEMwLCBJQTMyX0VEWCwgSUEzMl9FRFgpKTtcbiYjNDM7XHRcdC8qIGRpdiBlY3ggKi9cbiYjNDM7XHRcdEVNSVQyKDB4RjcsIGFkZF8xcmVnKDB4RjAsIElBMzJfRUNYKSk7XG4mIzQzO1x0fVxuIFxuIFx0aWYgKG9wID09IEJQRl9NT0QpIHtcbiBcdFx0aWYgKGRzdGspXG5AQCAtMTc5Niw3ICYjNDM7MTgwNCw4IEBAIHN0YXRpYyBpbnQgZG9faml0KHN0cnVjdCBicGZfcHJvZyAqYnBmX3Byb2csIGludCAqYWRkcnMsIHU4ICppbWFnZSxcbiBcdFx0XHRzd2l0Y2ggKEJQRl9TUkMoY29kZSkpIHtcbiBcdFx0XHRjYXNlIEJQRl9YOlxuIFx0XHRcdFx0ZW1pdF9pYTMyX2Rpdl9tb2RfcihCUEZfT1AoY29kZSksIGRzdF9sbyxcbi1cdFx0XHRcdFx0XHQgICAgc3JjX2xvLCBkc3RrLCBzc3RrLCBcdTAwMjZwcm9nKTtcbiYjNDM7XHRcdFx0XHRcdFx0ICAgIHNyY19sbywgZHN0aywgc3N0ayxcbiYjNDM7XHRcdFx0XHRcdFx0ICAgIGluc24tXHUwMDNlb2ZmID09IDEsIFx1MDAyNnByb2cpO1xuIFx0XHRcdFx0YnJlYWs7XG4gXHRcdFx0Y2FzZSBCUEZfSzpcbiBcdFx0XHRcdC8qIG1vdiBlY3gsaW1tMzIqL1xuQEAgLTE4MDQsNyAmIzQzOzE4MTMsNyBAQCBzdGF0aWMgaW50IGRvX2ppdChzdHJ1Y3QgYnBmX3Byb2cgKmJwZl9wcm9nLCBpbnQgKmFkZHJzLCB1OCAqaW1hZ2UsXG4gXHRcdFx0XHRcdCAgICBpbW0zMik7XG4gXHRcdFx0XHRlbWl0X2lhMzJfZGl2X21vZF9yKEJQRl9PUChjb2RlKSwgZHN0X2xvLFxuIFx0XHRcdFx0XHRcdCAgICBJQTMyX0VDWCwgZHN0aywgZmFsc2UsXG4tXHRcdFx0XHRcdFx0ICAgIFx1MDAyNnByb2cpO1xuJiM0MztcdFx0XHRcdFx0XHQgICAgaW5zbi1cdTAwM2VvZmYgPT0gMSwgXHUwMDI2cHJvZyk7XG4gXHRcdFx0XHRicmVhaztcbiBcdFx0XHR9XG4gXHRcdFx0aWYgKCFicGZfcHJvZy1cdTAwM2VhdXgtXHUwMDNldmVyaWZpZXJfemV4dClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAwMTozNzwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfSklUJiMzNDssCiAgICAmIzM0O1g4Nl8zMiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2JwZl9pbnRfaml0X2NvbXBpbGUmIzM0OywKICAgICYjMzQ7ZG9faml0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3Igc2lnbmVkIGRpdmlzaW9uIGFuZCBtb2R1bG8gb3BlcmF0aW9ucyBpbiB0aGUgMzItYml0IHg4NiBCUEYgSklUIGNvbXBpbGVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBtb2RpZmllcyB0aGUgZW1pdHRlZCBtYWNoaW5lIGNvZGUgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIGNvcnJlY3RuZXNzIGFuZCBwcmV2ZW50IEpJVCBidWdzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBlYjliYjBiMDc1OWI3ZDI2NTMwMGFkZDY0YjFmYjk0Njc1NTQyYzY3CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdWwgMTQgMDE6Mzc6MDAgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYyBiL2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jCmluZGV4IDg1MmJhZjJlNGRiNGQxLi40NmI0NzQzMmY1MGFhNCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmMKQEAgLTQzMyw3ICYjNDM7NDMzLDggQEAgc3RhdGljIGlubGluZSB2b2lkIGVtaXRfaWEzMl90b19iZV9yNjQoY29uc3QgdTggZHN0W10sIHMzMiB2YWwsCiAgKiBkc3QgPSBkc3QgKGRpdnxtb2QpIHNyYwogICovCiBzdGF0aWMgaW5saW5lIHZvaWQgZW1pdF9pYTMyX2Rpdl9tb2Rfcihjb25zdCB1OCBvcCwgY29uc3QgdTggZHN0LCBjb25zdCB1OCBzcmMsCi0JCQkJICAgICAgIGJvb2wgZHN0aywgYm9vbCBzc3RrLCB1OCAqKnBwcm9nKQomIzQzOwkJCQkgICAgICAgYm9vbCBkc3RrLCBib29sIHNzdGssIGJvb2wgaXNfc2lnbmVkLAomIzQzOwkJCQkgICAgICAgdTggKipwcHJvZykKIHsKIAl1OCAqcHJvZyA9ICpwcHJvZzsKIAlpbnQgY250ID0gMDsKQEAgLTQ1NCwxMCAmIzQzOzQ1NSwxNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZW1pdF9pYTMyX2Rpdl9tb2Rfcihjb25zdCB1OCBvcCwgY29uc3QgdTggZHN0LCBjb25zdCB1OCBzcmMsCiAJCS8qIG1vdiBlYXgsZHN0ICovCiAJCUVNSVQyKDB4OEIsIGFkZF8ycmVnKDB4QzAsIGRzdCwgSUEzMl9FQVgpKTsKIAotCS8qIHhvciBlZHgsZWR4ICovCi0JRU1JVDIoMHgzMSwgYWRkXzJyZWcoMHhDMCwgSUEzMl9FRFgsIElBMzJfRURYKSk7Ci0JLyogZGl2IGVjeCAqLwotCUVNSVQyKDB4RjcsIGFkZF8xcmVnKDB4RjAsIElBMzJfRUNYKSk7CiYjNDM7CWlmIChpc19zaWduZWQpIHsKJiM0MzsJCS8qIGNkcSAqLwomIzQzOwkJRU1JVDEoMHg5OSk7CiYjNDM7CQkvKiBpZGl2IGVjeCAqLwomIzQzOwkJRU1JVDIoMHhGNywgYWRkXzFyZWcoMHhGOCwgSUEzMl9FQ1gpKTsKJiM0MzsJfSBlbHNlIHsKJiM0MzsJCS8qIHhvciBlZHgsZWR4ICovCiYjNDM7CQlFTUlUMigweDMxLCBhZGRfMnJlZygweEMwLCBJQTMyX0VEWCwgSUEzMl9FRFgpKTsKJiM0MzsJCS8qIGRpdiBlY3ggKi8KJiM0MzsJCUVNSVQyKDB4RjcsIGFkZF8xcmVnKDB4RjAsIElBMzJfRUNYKSk7CiYjNDM7CX0KIAogCWlmIChvcCA9PSBCUEZfTU9EKSB7CiAJCWlmIChkc3RrKQpAQCAtMTc5Niw3ICYjNDM7MTgwNCw4IEBAIHN0YXRpYyBpbnQgZG9faml0KHN0cnVjdCBicGZfcHJvZyAqYnBmX3Byb2csIGludCAqYWRkcnMsIHU4ICppbWFnZSwKIAkJCXN3aXRjaCAoQlBGX1NSQyhjb2RlKSkgewogCQkJY2FzZSBCUEZfWDoKIAkJCQllbWl0X2lhMzJfZGl2X21vZF9yKEJQRl9PUChjb2RlKSwgZHN0X2xvLAotCQkJCQkJICAgIHNyY19sbywgZHN0aywgc3N0aywgJmFtcDtwcm9nKTsKJiM0MzsJCQkJCQkgICAgc3JjX2xvLCBkc3RrLCBzc3RrLAomIzQzOwkJCQkJCSAgICBpbnNuLSZndDtvZmYgPT0gMSwgJmFtcDtwcm9nKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgQlBGX0s6CiAJCQkJLyogbW92IGVjeCxpbW0zMiovCkBAIC0xODA0LDcgJiM0MzsxODEzLDcgQEAgc3RhdGljIGludCBkb19qaXQoc3RydWN0IGJwZl9wcm9nICpicGZfcHJvZywgaW50ICphZGRycywgdTggKmltYWdlLAogCQkJCQkgICAgaW1tMzIpOwogCQkJCWVtaXRfaWEzMl9kaXZfbW9kX3IoQlBGX09QKGNvZGUpLCBkc3RfbG8sCiAJCQkJCQkgICAgSUEzMl9FQ1gsIGRzdGssIGZhbHNlLAotCQkJCQkJICAgICZhbXA7cHJvZyk7CiYjNDM7CQkJCQkJICAgIGluc24tJmd0O29mZiA9PSAxLCAmYW1wO3Byb2cpOwogCQkJCWJyZWFrOwogCQkJfQogCQkJaWYgKCFicGZfcHJvZy0mZ3Q7YXV4LSZndDt2ZXJpZmllcl96ZXh0KQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAwMTozNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTYyCgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMjU5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIEJQRiBKSVQgQ29tcGlsZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCB0d2Vha3MgYGFyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jYC4gU3BlY2lmaWNhbGx5LCBpdCYjMzk7cyBtb2RpZnlpbmcgYGVtaXRfaWEzMl9kaXZfbW9kX3JgIHRvIGhhbmRsZSBzaWduZWQgZGl2aXNpb24gYW5kIG1vZHVsbyBvcGVyYXRpb25zIHdpdGhpbiB0aGUgMzItYml0IHg4NiBCUEYgSklULiBUaGlzIHBhdGNoIGFkZHMgYW4gYGlzX3NpZ25lZGAgYm9vbGVhbiBwYXJhbWV0ZXIuIFdoZW4gdGhpcyBwYXJhbWV0ZXIgaXMgdHJ1ZSwgaXQgZW1pdHMgYGNkcWAgYW5kIGBpZGl2YCwgd2hpY2ggYXJlIHRoZSBpbnN0cnVjdGlvbnMgdXNlZCBmb3Igc2lnbmVkIGRpdmlzaW9uLCBpbnN0ZWFkIG9mIHRoZSBgeG9yIGVkeCwgZWR4YCBhbmQgYGRpdmAgaW5zdHJ1Y3Rpb25zIHVzZWQgZm9yIHVuc2lnbmVkIGRpdmlzaW9uLiBUaGUgYGlzX3NpZ25lZGAgcGFyYW1ldGVyJiMzOTtzIHZhbHVlIGNvbWVzIGZyb20gYGluc24tJmd0O29mZiA9PSAxYC4KClRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYSBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIG9uZSBhdCB0aGF0LiBIb3dldmVyLCBJJiMzOTttIGEgYml0IGN1cmlvdXMuIFRoaXMgcGF0Y2ggaXMgZm9yIHRoZSAzMi1iaXQgeDg2IEJQRiBKSVQsIGluZGljYXRlZCBieSB0aGUgZmlsZSBwYXRoLiBDb25zaWRlcmluZyB0aGlzIGZpbGUgaXMgb25seSBjb21waWxlZCB3aGVuIGBDT05GSUdfWDg2XzMyYCBpcyBzZXQsIEkgbmVlZCB0byBjaGVjayBzb21ldGhpbmcuLi4gSXMgdGhpcyBjb2RlIHBhdGggZXZlbiByZWxldmFudCBpbiBhIHR5cGljYWwgNjQtYml0IGtlcm5lbCwgb3IgaXMgaXQgaXNvbGF0ZWQgdG8gMzItYml0IGtlcm5lbCBidWlsZHM/IEkgbmVlZCB0byBxdWlja2x5IGRldGVybWluZSB0aGUgcmVhY2ggb2YgdGhpcy4gSSYjMzk7bGwgc2VhcmNoIGZvciBgYnBmX2ppdF9jb21wMzIub2Agd2l0aGluIHRoZSBgYXJjaC94ODYvbmV0L01ha2VmaWxlYCB0byBzZWUgaG93IGl0JiMzOTtzIGludGVncmF0ZWQgaW50byB0aGUgYnVpbGQgcHJvY2Vzcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAwMTozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDticGZfaml0X2NvbXAzMiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L25ldC9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9uZXQvTWFrZWZpbGU9Nj1pZmVxICgkKENPTkZJR19YODZfMzIpLHkpXG5hcmNoL3g4Ni9uZXQvTWFrZWZpbGU6NzogICAgICAgIG9iai0kKENPTkZJR19CUEZfSklUKSAmIzQzOz0gYnBmX2ppdF9jb21wMzIub1xuYXJjaC94ODYvbmV0L01ha2VmaWxlLTgtZWxzZVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDAxOjM3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMyNjYKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiAxODMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBhIDMyLWJpdCBCUEYgSklUIENvbXBpbGF0aW9uIFBhdGgqKgoKT2theSwgc28gdGhpcyBjb2RlIGlzIG9ubHkgY29tcGlsZWQgZm9yIGBDT05GSUdfWDg2XzMyYC4gTXkgaW5pdGlhbCBpbnN0aW5jdCBpcyB0byBjb25zaWRlciB3aGV0aGVyIGl0JiMzOTtzIHdvcnRoIGZ1enppbmcgYXQgYWxsLCBidXQgeWVzLCB0aGUgZnVuY3Rpb25hbGl0eSBpcyB0aGVyZSwgc28gYWJzb2x1dGVseS4gTm93LCBhIG1pbm9yIGlzc3VlIEkgbmVlZCB0byBmYWN0b3IgaW46IHN5emthbGxlciB0eXBpY2FsbHkgZm9jdXNlcyBvbiA2NC1iaXQga2VybmVscy4gSG93ZXZlciwgaXQgKmNhbiogdGVzdCAzMi1iaXQga2VybmVscyAtIGBzeXotY2x1c3RlcmAgbWlnaHQgZXZlbiBoYXZlIDM4NiBpbnN0YW5jZXMgcnVubmluZywgc28gaXQmIzM5O3MgZmVhc2libGUuIFRoZSBjaGFuZ2UgaXMgc3BlY2lmaWNhbGx5IGluIHRoZSBCUEYgSklULCBzbyB0aGF0IG5hcnJvd3MgZG93biBteSBmb2N1cy4gSSBzaG91bGQgYmUgbG9va2luZyBhdCB0aGUgYGRvX2ppdGAgZnVuY3Rpb24gb3IgYGVtaXRfaWEzMl9kaXZfbW9kX3JgLiBIbW0sIHdhaXQuIEkganVzdCByZWNhbGxlZCB0aGF0IGBlbWl0X2lhMzJfZGl2X21vZF9yYCBpcyBhbiBpbmxpbmUgZnVuY3Rpb24uIFRoYXQgcmVkdWNlcyB0aGUgc3BlY2lmaWMgdGFyZ2V0cywgdGhlbi4gVGhlcmVmb3JlLCBJIG5lZWQgdG8gZm9jdXMgb24gZWl0aGVyIGBkb19qaXRgIG9yIGBicGZfaW50X2ppdF9jb21waWxlYC4gVG8gcGlucG9pbnQgdGhlIG1haW4gZW50cnkgcG9pbnQsIEkgc2hvdWxkIGNoZWNrIGBhcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuY2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMDE6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YnBmX2ludF9qaXRfY29tcGlsZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jPTI1MjU9Ym9vbCBicGZfaml0X25lZWRzX3pleHQodm9pZClcbi0tXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYy0yNTI5LVxuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmM6MjUzMDpzdHJ1Y3QgYnBmX3Byb2cgKmJwZl9pbnRfaml0X2NvbXBpbGUoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9wcm9nICpwcm9nKVxuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmMtMjUzMS17XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMDE6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzkxMgoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDI5MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgQlBGIEpJVCBDb21waWxhdGlvbiBFbnRyeSBQb2ludCBhbmQgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyBpdCBsb29rcyBsaWtlIGBicGZfaW50X2ppdF9jb21waWxlYCBpcyBkZWZpbml0ZWx5IHRoZSBlbnRyeSBwb2ludCBmb3IgdGhpcyBKSVQgY29tcGlsYXRpb24gcHJvY2Vzcy4gVGhlIGluaXRpYWwgcmVxdWlyZW1lbnQgaXMgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZDogYFg4Nl8zMmAgYW5kIGBCUEZfSklUYC4gSG93ZXZlciwgaG9sZCBvbiBhIHNlY29uZC4uLiBgWDg2XzMyYCBpcyBhY3R1YWxseSBhbiAqYXJjaGl0ZWN0dXJlKiBjb25maWd1cmF0aW9uLCBub3QgYSBzdGFuZGFyZCBvbmUuIFdlIGNhbiBzdGlsbCBsaXN0IGl0LCB0aG91Z2guCgpSaWdodCwgYEJQRl9KSVRgIGlzIHRoZSBjcml0aWNhbCBjb25maWcgaGVyZS4gTGV0JiMzOTtzIG1ha2Ugc3VyZSBib3RoIGFyZSBzb21ldGhpbmcgd2UgY2FuIGluY2x1ZGUgaW4gYEVuYWJsZUNvbmZpZ3NgLiBPa2F5LCBncmVhdCwgd2UgY2FuIGxpc3QgYm90aCBgWDg2XzMyYCAqYW5kKiBgQlBGX0pJVGAuIFRoZSBmYWN0IHRoYXQgYFg4Nl8zMmAgaXMgYW4gYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGNvbmZpZyBpcyBhIGJpdCB1bnVzdWFsLCBidXQgaXQmIzM5O3Mgbm90IGEgc2hvd3N0b3BwZXIuIExldCYjMzk7cyBtYWtlIHN1cmUgdG8gbGlzdCBgQlBGX0pJVGAuCgpOb3csIGxldCYjMzk7cyBkb3VibGUtY2hlY2sgdGhlIHBhdGNoIGl0c2VsZi4gT2theSwgaXQgc2VlbXMgdG8gYmUgbW9kaWZ5aW5nIHRoZSBgZW1pdF9pYTMyX2Rpdl9tb2RfcmAgYW5kIGBkb19qaXRgIGZ1bmN0aW9ucy4gVGhlIGtleSBzeW1ib2xzIHRvIGZvY3VzIG9uIGFyZSBgZG9faml0YCBhbmQgYGJwZl9pbnRfaml0X2NvbXBpbGVgLgoKTGV0JiMzOTtzIHF1aWNrbHkgc2NhbiBmb3IgYW55ICpvdGhlciogY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXMsIGp1c3QgdG8gYmUgdGhvcm91Z2guIFllcCwgYENPTkZJR19CUEZfSklUYCBpcyBhYnNvbHV0ZWx5IG5lY2Vzc2FyeS4gQW5kIGFnYWluLCBgQ09ORklHX1g4Nl8zMmAgaXMgbmVlZGVkIHRvbywgYWx0aG91Z2ggaXQmIzM5O3MgYW4gYXJjaGl0ZWN0dXJlIHNlbGVjdGlvbi4gV2UgY2FuIGRlZmluaXRlbHkgbGlzdCBpdCwgYnV0IHRoZSBtYWluIGNvbmZpZyB0byBrZWVwIGluIG1pbmQgaXMgYENPTkZJR19CUEZfSklUYC4KCkkgc2hvdWxkIHByb2JhYmx5IGRvdWJsZS1jaGVjayBgYXJjaC94ODYvbmV0L01ha2VmaWxlYCBhZ2FpbiwgdG8gYmUgc3VyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAwMTozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtDT05GSUdfQlBGX0pJVCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L25ldC9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9uZXQvTWFrZWZpbGU9Nj1pZmVxICgkKENPTkZJR19YODZfMzIpLHkpXG5hcmNoL3g4Ni9uZXQvTWFrZWZpbGU6NzogICAgICAgIG9iai0kKENPTkZJR19CUEZfSklUKSAmIzQzOz0gYnBmX2ppdF9jb21wMzIub1xuYXJjaC94ODYvbmV0L01ha2VmaWxlLTgtZWxzZVxuYXJjaC94ODYvbmV0L01ha2VmaWxlOjk6ICAgICAgICBvYmotJChDT05GSUdfQlBGX0pJVCkgJiM0Mzs9IGJwZl9qaXRfY29tcC5vIGJwZl90aW1lZF9tYXlfZ290by5vXG5hcmNoL3g4Ni9uZXQvTWFrZWZpbGUtMTAtZW5kaWZcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAwMTozNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NzY3CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMjE0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgVGFyZ2V0IElkZW50aWZpY2F0aW9uKioKCk9rYXksIHNvIEkmIzM5O3ZlIGlkZW50aWZpZWQgdGhhdCBgQ09ORklHX0JQRl9KSVRgIGlzIHRoZSBrZXkgY29uZmlndXJhdGlvbiBvcHRpb24gaGVyZS4gVGhhdCYjMzk7cyB0aGUgb25lIHdlJiMzOTtyZSB0YXJnZXRpbmcuIE5vdywgbGV0IG1lIGp1c3QgY29uZmlybS4uLiAqZG9faml0KiBpcyBhIHN0YXRpYyBmdW5jdGlvbiwgcmlnaHQ/IFllcywgY29uZmlybWVkLCBmb3VuZCBpdCBpbiAqYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmMqLiBTbywgdGhhdCBtZWFucyAqYnBmX2ludF9qaXRfY29tcGlsZSogaXMgdGhlIGV4cG9ydGVkIHN5bWJvbCB3ZSBuZWVkIHRvIGZvY3VzIG9uLgoKQWxyaWdodCwgbGV0JiMzOTtzIHN1bW1hcml6ZSB0aGUgZnV6emluZyBwbGFuIEkmIzM5O20gZGV2ZWxvcGluZy4KCiogICAqKldvcnRoRnV6emluZzoqKiBEZWZpbml0ZWx5LCB5ZXMuCiogICAqKlJlYXNvbmluZzoqKiBUaGlzIHBhdGNoIGludHJvZHVjZXMgbmV3IHNpZ25lZCBkaXZpc2lvbiBhbmQgbW9kdWxvIG9wZXJhdGlvbnMgaW50byB0aGUgMzItYml0IHg4NiBCUEYgSklUIGNvbXBpbGVyLiBUaGF0JiMzOTtzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGEgbW9kaWZpY2F0aW9uIG9mIHRoZSBlbWl0dGVkIG1hY2hpbmUgY29kZSwgYW5kIHRoYXQgb3BlbnMgdGhlIGRvb3IgdG8gcG90ZW50aWFsIGNvcnJlY3RuZXNzIGlzc3VlcyBhbmQsIG9mIGNvdXJzZSwgSklULXNwZWNpZmljIGJ1Z3MuIFRoYXQgYWx3YXlzIGRlbWFuZHMgZnV6emluZy4KKiAgICoqRm9jdXNTeW1ib2xzOioqIFNwZWNpZmljYWxseSwgSSYjMzk7bSBsb29raW5nIGF0IGBicGZfaW50X2ppdF9jb21waWxlYCAodGhlIGV4cG9zZWQgb25lKSBhbmQgYGRvX2ppdGAuCiogICAqKkVuYWJsZUNvbmZpZ3M6KiogYEJQRl9KSVRgIGZvciBzdXJlLCBhbmQgYFg4Nl8zMmAuCgpIb2xkIG9uLCBJIHNlZSB0aGF0IGBYODZfMzJgIGlzIGFuIGFyY2hpdGVjdHVyZSBjb25maWcsIGJ1dCBpbmNsdWRpbmcgaXQgaGVyZSBtYWtlcyBzZW5zZSwgaXQmIzM5O3MgcmVsZXZhbnQgaW4gdGhpcyBjb250ZXh0LgoKTm93LCBqdXN0IHRvIGJlIHRob3JvdWdoLCBJJiMzOTtsbCBkb3VibGUtY2hlY2sgdG8gbWFrZSBzdXJlIGBkb19qaXRgIGlzbiYjMzk7dCB1c2VkIGVsc2V3aGVyZSB3aXRoIGEgc2ltaWxhciBmdW5jdGlvbiBzaWduYXR1cmUgYW5kL29yIHRoYXQgaXQgaXMgdW5pcXVlbHkgZGVmaW5lZC4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAwMTozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkb19qaXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYz0xNTc3PXN0YXRpYyBpbnQgZW1pdF9rZnVuY19jYWxsKGNvbnN0IHN0cnVjdCBicGZfcHJvZyAqYnBmX3Byb2csIHU4ICplbmRfYWRkcixcbi0tXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYy0xNjY2LVxuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmM6MTY2NzpzdGF0aWMgaW50IGRvX2ppdChzdHJ1Y3QgYnBmX3Byb2cgKmJwZl9wcm9nLCBpbnQgKmFkZHJzLCB1OCAqaW1hZ2UsXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYy0xNjY4LVx0XHQgIGludCBvbGRwcm9nbGVuLCBzdHJ1Y3Qgaml0X2NvbnRleHQgKmN0eClcbi0tXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYz0yNTMwPXN0cnVjdCBicGZfcHJvZyAqYnBmX2ludF9qaXRfY29tcGlsZShzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX3Byb2cgKnByb2cpXG4tLVxuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmMtMjU2My1cdGZvciAocGFzcyA9IDA7IHBhc3MgXHUwMDNjIDIwIHx8IGltYWdlOyBwYXNzJiM0MzsmIzQzOykge1xuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmM6MjU2NDpcdFx0cHJvZ2xlbiA9IGRvX2ppdChwcm9nLCBhZGRycywgaW1hZ2UsIG9sZHByb2dsZW4sIFx1MDAyNmN0eCk7XG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYy0yNTY1LVx0XHRpZiAocHJvZ2xlbiBcdTAwM2M9IDApIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMDE6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTc0NQoJCQkJCQkJb3V0cHV0OiAxMTUKCQkJCQkJCXRob3VnaHRzOiAyMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIGl0IHdlcmUgbXkgb3duOgoKKipBbmFseXppbmcgdGhlIEpJVCBMb29wKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGNvZGUsIGFuZCBpdCYjMzk7cyBjbGVhciB0aGF0IGBkb19qaXRgIGlzIHRoZSBoZWFydCBvZiB0aGUgSnVzdC1Jbi1UaW1lIGNvbXBpbGF0aW9uIGxvb3AuIFRoYXQmIzM5O3MgdGhlIG1haW4gZnVuY3Rpb24gSSBuZWVkIHRvIGZvY3VzIG9uIHRvIHVuZGVyc3RhbmQgdGhlIEpJVCBwcm9jZXNzLiBJdCYjMzk7cyB0aGUgZW5naW5lIHRoYXQgZHJpdmVzIHRoaXMgd2hvbGUgdGhpbmcuCgpOb3csIHRvIG1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgdGhlIG9wZXJhdGlvbiBvZiB0aGUgZW5naW5lLCBJJiMzOTttIGdvaW5nIHRvIHN0YXJ0IHdpdGggdGhlIGBzZXQtcmVzdWx0c2AgdG9vbC4gVGhpcyBzZWVtcyBsaWtlIHRoZSBtb3N0IGRpcmVjdCB3YXkgdG8gZ2V0IGEgaGFuZGxlIG9uIHdoYXQmIzM5O3MgZ29pbmcgb24gd2l0aGluIGBkb19qaXRgIGFuZCBob3cgaXQgaXMgYmVoYXZpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDAxOjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfSklUJiMzNDssCiAgICAmIzM0O1g4Nl8zMiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2JwZl9pbnRfaml0X2NvbXBpbGUmIzM0OywKICAgICYjMzQ7ZG9faml0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3Igc2lnbmVkIGRpdmlzaW9uIGFuZCBtb2R1bG8gb3BlcmF0aW9ucyBpbiB0aGUgMzItYml0IHg4NiBCUEYgSklUIGNvbXBpbGVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBtb2RpZmllcyB0aGUgZW1pdHRlZCBtYWNoaW5lIGNvZGUgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIGNvcnJlY3RuZXNzIGFuZCBwcmV2ZW50IEpJVCBidWdzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfSklUJiMzNDssCiAgICAmIzM0O1g4Nl8zMiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2JwZl9pbnRfaml0X2NvbXBpbGUmIzM0OywKICAgICYjMzQ7ZG9faml0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3Igc2lnbmVkIGRpdmlzaW9uIGFuZCBtb2R1bG8gb3BlcmF0aW9ucyBpbiB0aGUgMzItYml0IHg4NiBCUEYgSklUIGNvbXBpbGVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBtb2RpZmllcyB0aGUgZW1pdHRlZCBtYWNoaW5lIGNvZGUgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIGNvcnJlY3RuZXNzIGFuZCBwcmV2ZW50IEpJVCBidWdzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTRUMDE6Mzc6MDEuODAyMzM5NTE3WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjYxMTU2OTA5NzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX0pJVFwiLFxuICAgIFwiWDg2XzMyXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnBmX2ludF9qaXRfY29tcGlsZVwiLFxuICAgIFwiZG9faml0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBzaWduZWQgZGl2aXNpb24gYW5kIG1vZHVsbyBvcGVyYXRpb25zIGluIHRoZSAzMi1iaXQgeDg2IEJQRiBKSVQgY29tcGlsZXIuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IG1vZGlmaWVzIHRoZSBlbWl0dGVkIG1hY2hpbmUgY29kZSBhbmQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgY29ycmVjdG5lc3MgYW5kIHByZXZlbnQgSklUIGJ1Z3MuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDAxOjM3OjAxLjgwMjM0NTc5N1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjA0MDA3OTE0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZWI5YmIwYjA3NTliN2QyNjUzMDBhZGQ2NGIxZmI5NDY3NTU0MmM2N1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVHVlIEp1bCAxNCAwMTozNzowMCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYyBiL2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jXFxuaW5kZXggODUyYmFmMmU0ZGI0ZDEuLjQ2YjQ3NDMyZjUwYWE0IDEwMDY0NFxcbi0tLSBhL2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jXFxuKysrIGIvYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmNcXG5AQCAtNDMzLDcgKzQzMyw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBlbWl0X2lhMzJfdG9fYmVfcjY0KGNvbnN0IHU4IGRzdFtdLCBzMzIgdmFsLFxcbiAgKiBkc3QgPSBkc3QgKGRpdnxtb2QpIHNyY1xcbiAgKi9cXG4gc3RhdGljIGlubGluZSB2b2lkIGVtaXRfaWEzMl9kaXZfbW9kX3IoY29uc3QgdTggb3AsIGNvbnN0IHU4IGRzdCwgY29uc3QgdTggc3JjLFxcbi1cXHRcXHRcXHRcXHQgICAgICAgYm9vbCBkc3RrLCBib29sIHNzdGssIHU4ICoqcHByb2cpXFxuK1xcdFxcdFxcdFxcdCAgICAgICBib29sIGRzdGssIGJvb2wgc3N0aywgYm9vbCBpc19zaWduZWQsXFxuK1xcdFxcdFxcdFxcdCAgICAgICB1OCAqKnBwcm9nKVxcbiB7XFxuIFxcdHU4ICpwcm9nID0gKnBwcm9nO1xcbiBcXHRpbnQgY250ID0gMDtcXG5AQCAtNDU0LDEwICs0NTUsMTcgQEAgc3RhdGljIGlubGluZSB2b2lkIGVtaXRfaWEzMl9kaXZfbW9kX3IoY29uc3QgdTggb3AsIGNvbnN0IHU4IGRzdCwgY29uc3QgdTggc3JjLFxcbiBcXHRcXHQvKiBtb3YgZWF4LGRzdCAqL1xcbiBcXHRcXHRFTUlUMigweDhCLCBhZGRfMnJlZygweEMwLCBkc3QsIElBMzJfRUFYKSk7XFxuIFxcbi1cXHQvKiB4b3IgZWR4LGVkeCAqL1xcbi1cXHRFTUlUMigweDMxLCBhZGRfMnJlZygweEMwLCBJQTMyX0VEWCwgSUEzMl9FRFgpKTtcXG4tXFx0LyogZGl2IGVjeCAqL1xcbi1cXHRFTUlUMigweEY3LCBhZGRfMXJlZygweEYwLCBJQTMyX0VDWCkpO1xcbitcXHRpZiAoaXNfc2lnbmVkKSB7XFxuK1xcdFxcdC8qIGNkcSAqL1xcbitcXHRcXHRFTUlUMSgweDk5KTtcXG4rXFx0XFx0LyogaWRpdiBlY3ggKi9cXG4rXFx0XFx0RU1JVDIoMHhGNywgYWRkXzFyZWcoMHhGOCwgSUEzMl9FQ1gpKTtcXG4rXFx0fSBlbHNlIHtcXG4rXFx0XFx0LyogeG9yIGVkeCxlZHggKi9cXG4rXFx0XFx0RU1JVDIoMHgzMSwgYWRkXzJyZWcoMHhDMCwgSUEzMl9FRFgsIElBMzJfRURYKSk7XFxuK1xcdFxcdC8qIGRpdiBlY3ggKi9cXG4rXFx0XFx0RU1JVDIoMHhGNywgYWRkXzFyZWcoMHhGMCwgSUEzMl9FQ1gpKTtcXG4rXFx0fVxcbiBcXG4gXFx0aWYgKG9wID09IEJQRl9NT0QpIHtcXG4gXFx0XFx0aWYgKGRzdGspXFxuQEAgLTE3OTYsNyArMTgwNCw4IEBAIHN0YXRpYyBpbnQgZG9faml0KHN0cnVjdCBicGZfcHJvZyAqYnBmX3Byb2csIGludCAqYWRkcnMsIHU4ICppbWFnZSxcXG4gXFx0XFx0XFx0c3dpdGNoIChCUEZfU1JDKGNvZGUpKSB7XFxuIFxcdFxcdFxcdGNhc2UgQlBGX1g6XFxuIFxcdFxcdFxcdFxcdGVtaXRfaWEzMl9kaXZfbW9kX3IoQlBGX09QKGNvZGUpLCBkc3RfbG8sXFxuLVxcdFxcdFxcdFxcdFxcdFxcdCAgICBzcmNfbG8sIGRzdGssIHNzdGssIFxcdTAwMjZwcm9nKTtcXG4rXFx0XFx0XFx0XFx0XFx0XFx0ICAgIHNyY19sbywgZHN0aywgc3N0ayxcXG4rXFx0XFx0XFx0XFx0XFx0XFx0ICAgIGluc24tXFx1MDAzZW9mZiA9PSAxLCBcXHUwMDI2cHJvZyk7XFxuIFxcdFxcdFxcdFxcdGJyZWFrO1xcbiBcXHRcXHRcXHRjYXNlIEJQRl9LOlxcbiBcXHRcXHRcXHRcXHQvKiBtb3YgZWN4LGltbTMyKi9cXG5AQCAtMTgwNCw3ICsxODEzLDcgQEAgc3RhdGljIGludCBkb19qaXQoc3RydWN0IGJwZl9wcm9nICpicGZfcHJvZywgaW50ICphZGRycywgdTggKmltYWdlLFxcbiBcXHRcXHRcXHRcXHRcXHQgICAgaW1tMzIpO1xcbiBcXHRcXHRcXHRcXHRlbWl0X2lhMzJfZGl2X21vZF9yKEJQRl9PUChjb2RlKSwgZHN0X2xvLFxcbiBcXHRcXHRcXHRcXHRcXHRcXHQgICAgSUEzMl9FQ1gsIGRzdGssIGZhbHNlLFxcbi1cXHRcXHRcXHRcXHRcXHRcXHQgICAgXFx1MDAyNnByb2cpO1xcbitcXHRcXHRcXHRcXHRcXHRcXHQgICAgaW5zbi1cXHUwMDNlb2ZmID09IDEsIFxcdTAwMjZwcm9nKTtcXG4gXFx0XFx0XFx0XFx0YnJlYWs7XFxuIFxcdFxcdFxcdH1cXG4gXFx0XFx0XFx0aWYgKCFicGZfcHJvZy1cXHUwMDNlYXV4LVxcdTAwM2V2ZXJpZmllcl96ZXh0KVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQwMTozNzowMi40MDc0NDcyMjFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI1NTEwNTY5MzU0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9KSVRcIixcbiAgICBcIlg4Nl8zMlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJwZl9pbnRfaml0X2NvbXBpbGVcIixcbiAgICBcImRvX2ppdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3Igc2lnbmVkIGRpdmlzaW9uIGFuZCBtb2R1bG8gb3BlcmF0aW9ucyBpbiB0aGUgMzItYml0IHg4NiBCUEYgSklUIGNvbXBpbGVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBtb2RpZmllcyB0aGUgZW1pdHRlZCBtYWNoaW5lIGNvZGUgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIGNvcnJlY3RuZXNzIGFuZCBwcmV2ZW50IEpJVCBidWdzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGViOWJiMGIwNzU5YjdkMjY1MzAwYWRkNjRiMWZiOTQ2NzU1NDJjNjdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1bCAxNCAwMTozNzowMCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jIGIvYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmNcbmluZGV4IDg1MmJhZjJlNGRiNGQxLi40NmI0NzQzMmY1MGFhNCAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jXG4rKysgYi9hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuY1xuQEAgLTQzMyw3ICs0MzMsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZW1pdF9pYTMyX3RvX2JlX3I2NChjb25zdCB1OCBkc3RbXSwgczMyIHZhbCxcbiAgKiBkc3QgPSBkc3QgKGRpdnxtb2QpIHNyY1xuICAqL1xuIHN0YXRpYyBpbmxpbmUgdm9pZCBlbWl0X2lhMzJfZGl2X21vZF9yKGNvbnN0IHU4IG9wLCBjb25zdCB1OCBkc3QsIGNvbnN0IHU4IHNyYyxcbi1cdFx0XHRcdCAgICAgICBib29sIGRzdGssIGJvb2wgc3N0aywgdTggKipwcHJvZylcbitcdFx0XHRcdCAgICAgICBib29sIGRzdGssIGJvb2wgc3N0aywgYm9vbCBpc19zaWduZWQsXG4rXHRcdFx0XHQgICAgICAgdTggKipwcHJvZylcbiB7XG4gXHR1OCAqcHJvZyA9ICpwcHJvZztcbiBcdGludCBjbnQgPSAwO1xuQEAgLTQ1NCwxMCArNDU1LDE3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBlbWl0X2lhMzJfZGl2X21vZF9yKGNvbnN0IHU4IG9wLCBjb25zdCB1OCBkc3QsIGNvbnN0IHU4IHNyYyxcbiBcdFx0LyogbW92IGVheCxkc3QgKi9cbiBcdFx0RU1JVDIoMHg4QiwgYWRkXzJyZWcoMHhDMCwgZHN0LCBJQTMyX0VBWCkpO1xuIFxuLVx0LyogeG9yIGVkeCxlZHggKi9cbi1cdEVNSVQyKDB4MzEsIGFkZF8ycmVnKDB4QzAsIElBMzJfRURYLCBJQTMyX0VEWCkpO1xuLVx0LyogZGl2IGVjeCAqL1xuLVx0RU1JVDIoMHhGNywgYWRkXzFyZWcoMHhGMCwgSUEzMl9FQ1gpKTtcbitcdGlmIChpc19zaWduZWQpIHtcbitcdFx0LyogY2RxICovXG4rXHRcdEVNSVQxKDB4OTkpO1xuK1x0XHQvKiBpZGl2IGVjeCAqL1xuK1x0XHRFTUlUMigweEY3LCBhZGRfMXJlZygweEY4LCBJQTMyX0VDWCkpO1xuK1x0fSBlbHNlIHtcbitcdFx0LyogeG9yIGVkeCxlZHggKi9cbitcdFx0RU1JVDIoMHgzMSwgYWRkXzJyZWcoMHhDMCwgSUEzMl9FRFgsIElBMzJfRURYKSk7XG4rXHRcdC8qIGRpdiBlY3ggKi9cbitcdFx0RU1JVDIoMHhGNywgYWRkXzFyZWcoMHhGMCwgSUEzMl9FQ1gpKTtcbitcdH1cbiBcbiBcdGlmIChvcCA9PSBCUEZfTU9EKSB7XG4gXHRcdGlmIChkc3RrKVxuQEAgLTE3OTYsNyArMTgwNCw4IEBAIHN0YXRpYyBpbnQgZG9faml0KHN0cnVjdCBicGZfcHJvZyAqYnBmX3Byb2csIGludCAqYWRkcnMsIHU4ICppbWFnZSxcbiBcdFx0XHRzd2l0Y2ggKEJQRl9TUkMoY29kZSkpIHtcbiBcdFx0XHRjYXNlIEJQRl9YOlxuIFx0XHRcdFx0ZW1pdF9pYTMyX2Rpdl9tb2RfcihCUEZfT1AoY29kZSksIGRzdF9sbyxcbi1cdFx0XHRcdFx0XHQgICAgc3JjX2xvLCBkc3RrLCBzc3RrLCBcdTAwMjZwcm9nKTtcbitcdFx0XHRcdFx0XHQgICAgc3JjX2xvLCBkc3RrLCBzc3RrLFxuK1x0XHRcdFx0XHRcdCAgICBpbnNuLVx1MDAzZW9mZiA9PSAxLCBcdTAwMjZwcm9nKTtcbiBcdFx0XHRcdGJyZWFrO1xuIFx0XHRcdGNhc2UgQlBGX0s6XG4gXHRcdFx0XHQvKiBtb3YgZWN4LGltbTMyKi9cbkBAIC0xODA0LDcgKzE4MTMsNyBAQCBzdGF0aWMgaW50IGRvX2ppdChzdHJ1Y3QgYnBmX3Byb2cgKmJwZl9wcm9nLCBpbnQgKmFkZHJzLCB1OCAqaW1hZ2UsXG4gXHRcdFx0XHRcdCAgICBpbW0zMik7XG4gXHRcdFx0XHRlbWl0X2lhMzJfZGl2X21vZF9yKEJQRl9PUChjb2RlKSwgZHN0X2xvLFxuIFx0XHRcdFx0XHRcdCAgICBJQTMyX0VDWCwgZHN0aywgZmFsc2UsXG4tXHRcdFx0XHRcdFx0ICAgIFx1MDAyNnByb2cpO1xuK1x0XHRcdFx0XHRcdCAgICBpbnNuLVx1MDAzZW9mZiA9PSAxLCBcdTAwMjZwcm9nKTtcbiBcdFx0XHRcdGJyZWFrO1xuIFx0XHRcdH1cbiBcdFx0XHRpZiAoIWJwZl9wcm9nLVx1MDAzZWF1eC1cdTAwM2V2ZXJpZmllcl96ZXh0KVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMDE6Mzc6MDIuNDA3NDQ5MjcxWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTkwODQ4ODg1MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBCUEYgSklUIENvbXBpbGVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IHR3ZWFrcyBgYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmNgLiBTcGVjaWZpY2FsbHksIGl0J3MgbW9kaWZ5aW5nIGBlbWl0X2lhMzJfZGl2X21vZF9yYCB0byBoYW5kbGUgc2lnbmVkIGRpdmlzaW9uIGFuZCBtb2R1bG8gb3BlcmF0aW9ucyB3aXRoaW4gdGhlIDMyLWJpdCB4ODYgQlBGIEpJVC4gVGhpcyBwYXRjaCBhZGRzIGFuIGBpc19zaWduZWRgIGJvb2xlYW4gcGFyYW1ldGVyLiBXaGVuIHRoaXMgcGFyYW1ldGVyIGlzIHRydWUsIGl0IGVtaXRzIGBjZHFgIGFuZCBgaWRpdmAsIHdoaWNoIGFyZSB0aGUgaW5zdHJ1Y3Rpb25zIHVzZWQgZm9yIHNpZ25lZCBkaXZpc2lvbiwgaW5zdGVhZCBvZiB0aGUgYHhvciBlZHgsIGVkeGAgYW5kIGBkaXZgIGluc3RydWN0aW9ucyB1c2VkIGZvciB1bnNpZ25lZCBkaXZpc2lvbi4gVGhlIGBpc19zaWduZWRgIHBhcmFtZXRlcidzIHZhbHVlIGNvbWVzIGZyb20gYGluc24tXHUwMDNlb2ZmID09IDFgLlxuXG5UaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGEgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCBvbmUgYXQgdGhhdC4gSG93ZXZlciwgSSdtIGEgYml0IGN1cmlvdXMuIFRoaXMgcGF0Y2ggaXMgZm9yIHRoZSAzMi1iaXQgeDg2IEJQRiBKSVQsIGluZGljYXRlZCBieSB0aGUgZmlsZSBwYXRoLiBDb25zaWRlcmluZyB0aGlzIGZpbGUgaXMgb25seSBjb21waWxlZCB3aGVuIGBDT05GSUdfWDg2XzMyYCBpcyBzZXQsIEkgbmVlZCB0byBjaGVjayBzb21ldGhpbmcuLi4gSXMgdGhpcyBjb2RlIHBhdGggZXZlbiByZWxldmFudCBpbiBhIHR5cGljYWwgNjQtYml0IGtlcm5lbCwgb3IgaXMgaXQgaXNvbGF0ZWQgdG8gMzItYml0IGtlcm5lbCBidWlsZHM/IEkgbmVlZCB0byBxdWlja2x5IGRldGVybWluZSB0aGUgcmVhY2ggb2YgdGhpcy4gSSdsbCBzZWFyY2ggZm9yIGBicGZfaml0X2NvbXAzMi5vYCB3aXRoaW4gdGhlIGBhcmNoL3g4Ni9uZXQvTWFrZWZpbGVgIHRvIHNlZSBob3cgaXQncyBpbnRlZ3JhdGVkIGludG8gdGhlIGJ1aWxkIHByb2Nlc3MuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1NjIsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNTksIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQwMTozNzowOC4zMTU5NDQ1MDNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTY2NTc2MDg3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImJwZl9qaXRfY29tcDMyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gveDg2L25ldC9NYWtlZmlsZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9uZXQvTWFrZWZpbGU9Nj1pZmVxICgkKENPTkZJR19YODZfMzIpLHkpXFxuYXJjaC94ODYvbmV0L01ha2VmaWxlOjc6ICAgICAgICBvYmotJChDT05GSUdfQlBGX0pJVCkgKz0gYnBmX2ppdF9jb21wMzIub1xcbmFyY2gveDg2L25ldC9NYWtlZmlsZS04LWVsc2VcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMDE6Mzc6MDguNDgyNTI2NzlaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NDU0NzYxNjMyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgYSAzMi1iaXQgQlBGIEpJVCBDb21waWxhdGlvbiBQYXRoKipcblxuT2theSwgc28gdGhpcyBjb2RlIGlzIG9ubHkgY29tcGlsZWQgZm9yIGBDT05GSUdfWDg2XzMyYC4gTXkgaW5pdGlhbCBpbnN0aW5jdCBpcyB0byBjb25zaWRlciB3aGV0aGVyIGl0J3Mgd29ydGggZnV6emluZyBhdCBhbGwsIGJ1dCB5ZXMsIHRoZSBmdW5jdGlvbmFsaXR5IGlzIHRoZXJlLCBzbyBhYnNvbHV0ZWx5LiBOb3csIGEgbWlub3IgaXNzdWUgSSBuZWVkIHRvIGZhY3RvciBpbjogc3l6a2FsbGVyIHR5cGljYWxseSBmb2N1c2VzIG9uIDY0LWJpdCBrZXJuZWxzLiBIb3dldmVyLCBpdCAqY2FuKiB0ZXN0IDMyLWJpdCBrZXJuZWxzIC0gYHN5ei1jbHVzdGVyYCBtaWdodCBldmVuIGhhdmUgMzg2IGluc3RhbmNlcyBydW5uaW5nLCBzbyBpdCdzIGZlYXNpYmxlLiBUaGUgY2hhbmdlIGlzIHNwZWNpZmljYWxseSBpbiB0aGUgQlBGIEpJVCwgc28gdGhhdCBuYXJyb3dzIGRvd24gbXkgZm9jdXMuIEkgc2hvdWxkIGJlIGxvb2tpbmcgYXQgdGhlIGBkb19qaXRgIGZ1bmN0aW9uIG9yIGBlbWl0X2lhMzJfZGl2X21vZF9yYC4gSG1tLCB3YWl0LiBJIGp1c3QgcmVjYWxsZWQgdGhhdCBgZW1pdF9pYTMyX2Rpdl9tb2RfcmAgaXMgYW4gaW5saW5lIGZ1bmN0aW9uLiBUaGF0IHJlZHVjZXMgdGhlIHNwZWNpZmljIHRhcmdldHMsIHRoZW4uIFRoZXJlZm9yZSwgSSBuZWVkIHRvIGZvY3VzIG9uIGVpdGhlciBgZG9faml0YCBvciBgYnBmX2ludF9qaXRfY29tcGlsZWAuIFRvIHBpbnBvaW50IHRoZSBtYWluIGVudHJ5IHBvaW50LCBJIHNob3VsZCBjaGVjayBgYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjY2LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDAxOjM3OjEyLjkzNzI5MDkwMloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjcwOTQ1ODcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYnBmX2ludF9qaXRfY29tcGlsZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYz0yNTI1PWJvb2wgYnBmX2ppdF9uZWVkc196ZXh0KHZvaWQpXFxuLS1cXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYy0yNTI5LVxcbmFyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jOjI1MzA6c3RydWN0IGJwZl9wcm9nICpicGZfaW50X2ppdF9jb21waWxlKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfcHJvZyAqcHJvZylcXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYy0yNTMxLXtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMDE6Mzc6MTMuMTA0MzkxMjdaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1OTYzNzEyNDM4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBCUEYgSklUIENvbXBpbGF0aW9uIEVudHJ5IFBvaW50IGFuZCBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gaXQgbG9va3MgbGlrZSBgYnBmX2ludF9qaXRfY29tcGlsZWAgaXMgZGVmaW5pdGVseSB0aGUgZW50cnkgcG9pbnQgZm9yIHRoaXMgSklUIGNvbXBpbGF0aW9uIHByb2Nlc3MuIFRoZSBpbml0aWFsIHJlcXVpcmVtZW50IGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQ6IGBYODZfMzJgIGFuZCBgQlBGX0pJVGAuIEhvd2V2ZXIsIGhvbGQgb24gYSBzZWNvbmQuLi4gYFg4Nl8zMmAgaXMgYWN0dWFsbHkgYW4gKmFyY2hpdGVjdHVyZSogY29uZmlndXJhdGlvbiwgbm90IGEgc3RhbmRhcmQgb25lLiBXZSBjYW4gc3RpbGwgbGlzdCBpdCwgdGhvdWdoLlxuXG5SaWdodCwgYEJQRl9KSVRgIGlzIHRoZSBjcml0aWNhbCBjb25maWcgaGVyZS4gTGV0J3MgbWFrZSBzdXJlIGJvdGggYXJlIHNvbWV0aGluZyB3ZSBjYW4gaW5jbHVkZSBpbiBgRW5hYmxlQ29uZmlnc2AuIE9rYXksIGdyZWF0LCB3ZSBjYW4gbGlzdCBib3RoIGBYODZfMzJgICphbmQqIGBCUEZfSklUYC4gVGhlIGZhY3QgdGhhdCBgWDg2XzMyYCBpcyBhbiBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgY29uZmlnIGlzIGEgYml0IHVudXN1YWwsIGJ1dCBpdCdzIG5vdCBhIHNob3dzdG9wcGVyLiBMZXQncyBtYWtlIHN1cmUgdG8gbGlzdCBgQlBGX0pJVGAuXG5cbk5vdywgbGV0J3MgZG91YmxlLWNoZWNrIHRoZSBwYXRjaCBpdHNlbGYuIE9rYXksIGl0IHNlZW1zIHRvIGJlIG1vZGlmeWluZyB0aGUgYGVtaXRfaWEzMl9kaXZfbW9kX3JgIGFuZCBgZG9faml0YCBmdW5jdGlvbnMuIFRoZSBrZXkgc3ltYm9scyB0byBmb2N1cyBvbiBhcmUgYGRvX2ppdGAgYW5kIGBicGZfaW50X2ppdF9jb21waWxlYC5cblxuTGV0J3MgcXVpY2tseSBzY2FuIGZvciBhbnkgKm90aGVyKiBjb25maWd1cmF0aW9uIGRlcGVuZGVuY2llcywganVzdCB0byBiZSB0aG9yb3VnaC4gWWVwLCBgQ09ORklHX0JQRl9KSVRgIGlzIGFic29sdXRlbHkgbmVjZXNzYXJ5LiBBbmQgYWdhaW4sIGBDT05GSUdfWDg2XzMyYCBpcyBuZWVkZWQgdG9vLCBhbHRob3VnaCBpdCdzIGFuIGFyY2hpdGVjdHVyZSBzZWxlY3Rpb24uIFdlIGNhbiBkZWZpbml0ZWx5IGxpc3QgaXQsIGJ1dCB0aGUgbWFpbiBjb25maWcgdG8ga2VlcCBpbiBtaW5kIGlzIGBDT05GSUdfQlBGX0pJVGAuXG5cbkkgc2hvdWxkIHByb2JhYmx5IGRvdWJsZS1jaGVjayBgYXJjaC94ODYvbmV0L01ha2VmaWxlYCBhZ2FpbiwgdG8gYmUgc3VyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzkxMiwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI5MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQwMTozNzoxOS4wNjgxMDYzMzdaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTU2MzUyOTk4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkNPTkZJR19CUEZfSklUXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gveDg2L25ldC9NYWtlZmlsZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9uZXQvTWFrZWZpbGU9Nj1pZmVxICgkKENPTkZJR19YODZfMzIpLHkpXFxuYXJjaC94ODYvbmV0L01ha2VmaWxlOjc6ICAgICAgICBvYmotJChDT05GSUdfQlBGX0pJVCkgKz0gYnBmX2ppdF9jb21wMzIub1xcbmFyY2gveDg2L25ldC9NYWtlZmlsZS04LWVsc2VcXG5hcmNoL3g4Ni9uZXQvTWFrZWZpbGU6OTogICAgICAgIG9iai0kKENPTkZJR19CUEZfSklUKSArPSBicGZfaml0X2NvbXAubyBicGZfdGltZWRfbWF5X2dvdG8ub1xcbmFyY2gveDg2L25ldC9NYWtlZmlsZS0xMC1lbmRpZlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQwMTozNzoxOS4yMjQ0Njg3MDVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MTI5ODExNjgxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgVGFyZ2V0IElkZW50aWZpY2F0aW9uKipcblxuT2theSwgc28gSSd2ZSBpZGVudGlmaWVkIHRoYXQgYENPTkZJR19CUEZfSklUYCBpcyB0aGUga2V5IGNvbmZpZ3VyYXRpb24gb3B0aW9uIGhlcmUuIFRoYXQncyB0aGUgb25lIHdlJ3JlIHRhcmdldGluZy4gTm93LCBsZXQgbWUganVzdCBjb25maXJtLi4uICpkb19qaXQqIGlzIGEgc3RhdGljIGZ1bmN0aW9uLCByaWdodD8gWWVzLCBjb25maXJtZWQsIGZvdW5kIGl0IGluICphcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYyouIFNvLCB0aGF0IG1lYW5zICpicGZfaW50X2ppdF9jb21waWxlKiBpcyB0aGUgZXhwb3J0ZWQgc3ltYm9sIHdlIG5lZWQgdG8gZm9jdXMgb24uXG5cbkFscmlnaHQsIGxldCdzIHN1bW1hcml6ZSB0aGUgZnV6emluZyBwbGFuIEknbSBkZXZlbG9waW5nLlxuXG4qICAgKipXb3J0aEZ1enppbmc6KiogRGVmaW5pdGVseSwgeWVzLlxuKiAgICoqUmVhc29uaW5nOioqIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBuZXcgc2lnbmVkIGRpdmlzaW9uIGFuZCBtb2R1bG8gb3BlcmF0aW9ucyBpbnRvIHRoZSAzMi1iaXQgeDg2IEJQRiBKSVQgY29tcGlsZXIuIFRoYXQncyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIG1vZGlmaWNhdGlvbiBvZiB0aGUgZW1pdHRlZCBtYWNoaW5lIGNvZGUsIGFuZCB0aGF0IG9wZW5zIHRoZSBkb29yIHRvIHBvdGVudGlhbCBjb3JyZWN0bmVzcyBpc3N1ZXMgYW5kLCBvZiBjb3Vyc2UsIEpJVC1zcGVjaWZpYyBidWdzLiBUaGF0IGFsd2F5cyBkZW1hbmRzIGZ1enppbmcuXG4qICAgKipGb2N1c1N5bWJvbHM6KiogU3BlY2lmaWNhbGx5LCBJJ20gbG9va2luZyBhdCBgYnBmX2ludF9qaXRfY29tcGlsZWAgKHRoZSBleHBvc2VkIG9uZSkgYW5kIGBkb19qaXRgLlxuKiAgICoqRW5hYmxlQ29uZmlnczoqKiBgQlBGX0pJVGAgZm9yIHN1cmUsIGFuZCBgWDg2XzMyYC5cblxuSG9sZCBvbiwgSSBzZWUgdGhhdCBgWDg2XzMyYCBpcyBhbiBhcmNoaXRlY3R1cmUgY29uZmlnLCBidXQgaW5jbHVkaW5nIGl0IGhlcmUgbWFrZXMgc2Vuc2UsIGl0J3MgcmVsZXZhbnQgaW4gdGhpcyBjb250ZXh0LlxuXG5Ob3csIGp1c3QgdG8gYmUgdGhvcm91Z2gsIEknbGwgZG91YmxlLWNoZWNrIHRvIG1ha2Ugc3VyZSBgZG9faml0YCBpc24ndCB1c2VkIGVsc2V3aGVyZSB3aXRoIGEgc2ltaWxhciBmdW5jdGlvbiBzaWduYXR1cmUgYW5kL29yIHRoYXQgaXQgaXMgdW5pcXVlbHkgZGVmaW5lZC4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NzY3LCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjE0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDAxOjM3OjI0LjM1NDI4Mjc4NloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjE1MDc0OTM0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRvX2ppdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYz0xNTc3PXN0YXRpYyBpbnQgZW1pdF9rZnVuY19jYWxsKGNvbnN0IHN0cnVjdCBicGZfcHJvZyAqYnBmX3Byb2csIHU4ICplbmRfYWRkcixcXG4tLVxcbmFyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jLTE2NjYtXFxuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmM6MTY2NzpzdGF0aWMgaW50IGRvX2ppdChzdHJ1Y3QgYnBmX3Byb2cgKmJwZl9wcm9nLCBpbnQgKmFkZHJzLCB1OCAqaW1hZ2UsXFxuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmMtMTY2OC1cXHRcXHQgIGludCBvbGRwcm9nbGVuLCBzdHJ1Y3Qgaml0X2NvbnRleHQgKmN0eClcXG4tLVxcbmFyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jPTI1MzA9c3RydWN0IGJwZl9wcm9nICpicGZfaW50X2ppdF9jb21waWxlKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfcHJvZyAqcHJvZylcXG4tLVxcbmFyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jLTI1NjMtXFx0Zm9yIChwYXNzID0gMDsgcGFzcyBcXHUwMDNjIDIwIHx8IGltYWdlOyBwYXNzKyspIHtcXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYzoyNTY0OlxcdFxcdHByb2dsZW4gPSBkb19qaXQocHJvZywgYWRkcnMsIGltYWdlLCBvbGRwcm9nbGVuLCBcXHUwMDI2Y3R4KTtcXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYy0yNTY1LVxcdFxcdGlmIChwcm9nbGVuIFxcdTAwM2M9IDApIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMDE6Mzc6MjQuNTY5MzY0MzlaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA1ODc1NDg3OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzcywgYXMgaWYgaXQgd2VyZSBteSBvd246XG5cbioqQW5hbHl6aW5nIHRoZSBKSVQgTG9vcCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgY29kZSwgYW5kIGl0J3MgY2xlYXIgdGhhdCBgZG9faml0YCBpcyB0aGUgaGVhcnQgb2YgdGhlIEp1c3QtSW4tVGltZSBjb21waWxhdGlvbiBsb29wLiBUaGF0J3MgdGhlIG1haW4gZnVuY3Rpb24gSSBuZWVkIHRvIGZvY3VzIG9uIHRvIHVuZGVyc3RhbmQgdGhlIEpJVCBwcm9jZXNzLiBJdCdzIHRoZSBlbmdpbmUgdGhhdCBkcml2ZXMgdGhpcyB3aG9sZSB0aGluZy5cblxuTm93LCB0byBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoZSBvcGVyYXRpb24gb2YgdGhlIGVuZ2luZSwgSSdtIGdvaW5nIHRvIHN0YXJ0IHdpdGggdGhlIGBzZXQtcmVzdWx0c2AgdG9vbC4gVGhpcyBzZWVtcyBsaWtlIHRoZSBtb3N0IGRpcmVjdCB3YXkgdG8gZ2V0IGEgaGFuZGxlIG9uIHdoYXQncyBnb2luZyBvbiB3aXRoaW4gYGRvX2ppdGAgYW5kIGhvdyBpdCBpcyBiZWhhdmluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTc0NSwiT3V0cHV0VG9rZW5zIjoxMTUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQwMTozNzoyNy42MjgxMjIwNDhaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODk4ODgyMTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9KSVRcIixcbiAgICBcIlg4Nl8zMlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJwZl9pbnRfaml0X2NvbXBpbGVcIixcbiAgICBcImRvX2ppdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3Igc2lnbmVkIGRpdmlzaW9uIGFuZCBtb2R1bG8gb3BlcmF0aW9ucyBpbiB0aGUgMzItYml0IHg4NiBCUEYgSklUIGNvbXBpbGVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBtb2RpZmllcyB0aGUgZW1pdHRlZCBtYWNoaW5lIGNvZGUgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIGNvcnJlY3RuZXNzIGFuZCBwcmV2ZW50IEpJVCBidWdzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9KSVRcIixcbiAgICBcIlg4Nl8zMlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJwZl9pbnRfaml0X2NvbXBpbGVcIixcbiAgICBcImRvX2ppdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3Igc2lnbmVkIGRpdmlzaW9uIGFuZCBtb2R1bG8gb3BlcmF0aW9ucyBpbiB0aGUgMzItYml0IHg4NiBCUEYgSklUIGNvbXBpbGVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBtb2RpZmllcyB0aGUgZW1pdHRlZCBtYWNoaW5lIGNvZGUgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIGNvcnJlY3RuZXNzIGFuZCBwcmV2ZW50IEpJVCBidWdzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowbg7kw[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-14 01:24:59 +0000 UTC FinishedAt: 2026-07-14 01:37:29 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git", "commit_hash": "7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_JIT", "X86_32" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git", "commit_hash": "7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_JIT", "X86_32" ], "series_id": "5d6e2745-6b12-42bb-979f-cccf01eceea7" }, "track": "KASAN", "fuzz": { "focus": [ "bpf" ], "focus_symbols": [ "bpf_int_jit_compile", "do_jit" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-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+CgkJCTx0ZD4yMDI2LzA3LzE0IDAxOjM3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9KSVQmIzM0OywKICAgICYjMzQ7WDg2XzMyJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YnBmX2ludF9qaXRfY29tcGlsZSYjMzQ7LAogICAgJiMzNDtkb19qaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBzaWduZWQgZGl2aXNpb24gYW5kIG1vZHVsbyBvcGVyYXRpb25zIGluIHRoZSAzMi1iaXQgeDg2IEJQRiBKSVQgY29tcGlsZXIuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IG1vZGlmaWVzIHRoZSBlbWl0dGVkIG1hY2hpbmUgY29kZSBhbmQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgY29ycmVjdG5lc3MgYW5kIHByZXZlbnQgSklUIGJ1Z3MuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMDE6Mzc8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBlYjliYjBiMDc1OWI3ZDI2NTMwMGFkZDY0YjFmYjk0Njc1NTQyYzY3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdWwgMTQgMDE6Mzc6MDAgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmMgYi9hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuY1xuaW5kZXggODUyYmFmMmU0ZGI0ZDEuLjQ2YjQ3NDMyZjUwYWE0IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jXG5AQCAtNDMzLDcgJiM0Mzs0MzMsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZW1pdF9pYTMyX3RvX2JlX3I2NChjb25zdCB1OCBkc3RbXSwgczMyIHZhbCxcbiAgKiBkc3QgPSBkc3QgKGRpdnxtb2QpIHNyY1xuICAqL1xuIHN0YXRpYyBpbmxpbmUgdm9pZCBlbWl0X2lhMzJfZGl2X21vZF9yKGNvbnN0IHU4IG9wLCBjb25zdCB1OCBkc3QsIGNvbnN0IHU4IHNyYyxcbi1cdFx0XHRcdCAgICAgICBib29sIGRzdGssIGJvb2wgc3N0aywgdTggKipwcHJvZylcbiYjNDM7XHRcdFx0XHQgICAgICAgYm9vbCBkc3RrLCBib29sIHNzdGssIGJvb2wgaXNfc2lnbmVkLFxuJiM0MztcdFx0XHRcdCAgICAgICB1OCAqKnBwcm9nKVxuIHtcbiBcdHU4ICpwcm9nID0gKnBwcm9nO1xuIFx0aW50IGNudCA9IDA7XG5AQCAtNDU0LDEwICYjNDM7NDU1LDE3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBlbWl0X2lhMzJfZGl2X21vZF9yKGNvbnN0IHU4IG9wLCBjb25zdCB1OCBkc3QsIGNvbnN0IHU4IHNyYyxcbiBcdFx0LyogbW92IGVheCxkc3QgKi9cbiBcdFx0RU1JVDIoMHg4QiwgYWRkXzJyZWcoMHhDMCwgZHN0LCBJQTMyX0VBWCkpO1xuIFxuLVx0LyogeG9yIGVkeCxlZHggKi9cbi1cdEVNSVQyKDB4MzEsIGFkZF8ycmVnKDB4QzAsIElBMzJfRURYLCBJQTMyX0VEWCkpO1xuLVx0LyogZGl2IGVjeCAqL1xuLVx0RU1JVDIoMHhGNywgYWRkXzFyZWcoMHhGMCwgSUEzMl9FQ1gpKTtcbiYjNDM7XHRpZiAoaXNfc2lnbmVkKSB7XG4mIzQzO1x0XHQvKiBjZHEgKi9cbiYjNDM7XHRcdEVNSVQxKDB4OTkpO1xuJiM0MztcdFx0LyogaWRpdiBlY3ggKi9cbiYjNDM7XHRcdEVNSVQyKDB4RjcsIGFkZF8xcmVnKDB4RjgsIElBMzJfRUNYKSk7XG4mIzQzO1x0fSBlbHNlIHtcbiYjNDM7XHRcdC8qIHhvciBlZHgsZWR4ICovXG4mIzQzO1x0XHRFTUlUMigweDMxLCBhZGRfMnJlZygweEMwLCBJQTMyX0VEWCwgSUEzMl9FRFgpKTtcbiYjNDM7XHRcdC8qIGRpdiBlY3ggKi9cbiYjNDM7XHRcdEVNSVQyKDB4RjcsIGFkZF8xcmVnKDB4RjAsIElBMzJfRUNYKSk7XG4mIzQzO1x0fVxuIFxuIFx0aWYgKG9wID09IEJQRl9NT0QpIHtcbiBcdFx0aWYgKGRzdGspXG5AQCAtMTc5Niw3ICYjNDM7MTgwNCw4IEBAIHN0YXRpYyBpbnQgZG9faml0KHN0cnVjdCBicGZfcHJvZyAqYnBmX3Byb2csIGludCAqYWRkcnMsIHU4ICppbWFnZSxcbiBcdFx0XHRzd2l0Y2ggKEJQRl9TUkMoY29kZSkpIHtcbiBcdFx0XHRjYXNlIEJQRl9YOlxuIFx0XHRcdFx0ZW1pdF9pYTMyX2Rpdl9tb2RfcihCUEZfT1AoY29kZSksIGRzdF9sbyxcbi1cdFx0XHRcdFx0XHQgICAgc3JjX2xvLCBkc3RrLCBzc3RrLCBcdTAwMjZwcm9nKTtcbiYjNDM7XHRcdFx0XHRcdFx0ICAgIHNyY19sbywgZHN0aywgc3N0ayxcbiYjNDM7XHRcdFx0XHRcdFx0ICAgIGluc24tXHUwMDNlb2ZmID09IDEsIFx1MDAyNnByb2cpO1xuIFx0XHRcdFx0YnJlYWs7XG4gXHRcdFx0Y2FzZSBCUEZfSzpcbiBcdFx0XHRcdC8qIG1vdiBlY3gsaW1tMzIqL1xuQEAgLTE4MDQsNyAmIzQzOzE4MTMsNyBAQCBzdGF0aWMgaW50IGRvX2ppdChzdHJ1Y3QgYnBmX3Byb2cgKmJwZl9wcm9nLCBpbnQgKmFkZHJzLCB1OCAqaW1hZ2UsXG4gXHRcdFx0XHRcdCAgICBpbW0zMik7XG4gXHRcdFx0XHRlbWl0X2lhMzJfZGl2X21vZF9yKEJQRl9PUChjb2RlKSwgZHN0X2xvLFxuIFx0XHRcdFx0XHRcdCAgICBJQTMyX0VDWCwgZHN0aywgZmFsc2UsXG4tXHRcdFx0XHRcdFx0ICAgIFx1MDAyNnByb2cpO1xuJiM0MztcdFx0XHRcdFx0XHQgICAgaW5zbi1cdTAwM2VvZmYgPT0gMSwgXHUwMDI2cHJvZyk7XG4gXHRcdFx0XHRicmVhaztcbiBcdFx0XHR9XG4gXHRcdFx0aWYgKCFicGZfcHJvZy1cdTAwM2VhdXgtXHUwMDNldmVyaWZpZXJfemV4dClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAwMTozNzwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfSklUJiMzNDssCiAgICAmIzM0O1g4Nl8zMiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2JwZl9pbnRfaml0X2NvbXBpbGUmIzM0OywKICAgICYjMzQ7ZG9faml0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3Igc2lnbmVkIGRpdmlzaW9uIGFuZCBtb2R1bG8gb3BlcmF0aW9ucyBpbiB0aGUgMzItYml0IHg4NiBCUEYgSklUIGNvbXBpbGVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBtb2RpZmllcyB0aGUgZW1pdHRlZCBtYWNoaW5lIGNvZGUgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIGNvcnJlY3RuZXNzIGFuZCBwcmV2ZW50IEpJVCBidWdzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBlYjliYjBiMDc1OWI3ZDI2NTMwMGFkZDY0YjFmYjk0Njc1NTQyYzY3CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdWwgMTQgMDE6Mzc6MDAgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYyBiL2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jCmluZGV4IDg1MmJhZjJlNGRiNGQxLi40NmI0NzQzMmY1MGFhNCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmMKQEAgLTQzMyw3ICYjNDM7NDMzLDggQEAgc3RhdGljIGlubGluZSB2b2lkIGVtaXRfaWEzMl90b19iZV9yNjQoY29uc3QgdTggZHN0W10sIHMzMiB2YWwsCiAgKiBkc3QgPSBkc3QgKGRpdnxtb2QpIHNyYwogICovCiBzdGF0aWMgaW5saW5lIHZvaWQgZW1pdF9pYTMyX2Rpdl9tb2Rfcihjb25zdCB1OCBvcCwgY29uc3QgdTggZHN0LCBjb25zdCB1OCBzcmMsCi0JCQkJICAgICAgIGJvb2wgZHN0aywgYm9vbCBzc3RrLCB1OCAqKnBwcm9nKQomIzQzOwkJCQkgICAgICAgYm9vbCBkc3RrLCBib29sIHNzdGssIGJvb2wgaXNfc2lnbmVkLAomIzQzOwkJCQkgICAgICAgdTggKipwcHJvZykKIHsKIAl1OCAqcHJvZyA9ICpwcHJvZzsKIAlpbnQgY250ID0gMDsKQEAgLTQ1NCwxMCAmIzQzOzQ1NSwxNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZW1pdF9pYTMyX2Rpdl9tb2Rfcihjb25zdCB1OCBvcCwgY29uc3QgdTggZHN0LCBjb25zdCB1OCBzcmMsCiAJCS8qIG1vdiBlYXgsZHN0ICovCiAJCUVNSVQyKDB4OEIsIGFkZF8ycmVnKDB4QzAsIGRzdCwgSUEzMl9FQVgpKTsKIAotCS8qIHhvciBlZHgsZWR4ICovCi0JRU1JVDIoMHgzMSwgYWRkXzJyZWcoMHhDMCwgSUEzMl9FRFgsIElBMzJfRURYKSk7Ci0JLyogZGl2IGVjeCAqLwotCUVNSVQyKDB4RjcsIGFkZF8xcmVnKDB4RjAsIElBMzJfRUNYKSk7CiYjNDM7CWlmIChpc19zaWduZWQpIHsKJiM0MzsJCS8qIGNkcSAqLwomIzQzOwkJRU1JVDEoMHg5OSk7CiYjNDM7CQkvKiBpZGl2IGVjeCAqLwomIzQzOwkJRU1JVDIoMHhGNywgYWRkXzFyZWcoMHhGOCwgSUEzMl9FQ1gpKTsKJiM0MzsJfSBlbHNlIHsKJiM0MzsJCS8qIHhvciBlZHgsZWR4ICovCiYjNDM7CQlFTUlUMigweDMxLCBhZGRfMnJlZygweEMwLCBJQTMyX0VEWCwgSUEzMl9FRFgpKTsKJiM0MzsJCS8qIGRpdiBlY3ggKi8KJiM0MzsJCUVNSVQyKDB4RjcsIGFkZF8xcmVnKDB4RjAsIElBMzJfRUNYKSk7CiYjNDM7CX0KIAogCWlmIChvcCA9PSBCUEZfTU9EKSB7CiAJCWlmIChkc3RrKQpAQCAtMTc5Niw3ICYjNDM7MTgwNCw4IEBAIHN0YXRpYyBpbnQgZG9faml0KHN0cnVjdCBicGZfcHJvZyAqYnBmX3Byb2csIGludCAqYWRkcnMsIHU4ICppbWFnZSwKIAkJCXN3aXRjaCAoQlBGX1NSQyhjb2RlKSkgewogCQkJY2FzZSBCUEZfWDoKIAkJCQllbWl0X2lhMzJfZGl2X21vZF9yKEJQRl9PUChjb2RlKSwgZHN0X2xvLAotCQkJCQkJICAgIHNyY19sbywgZHN0aywgc3N0aywgJmFtcDtwcm9nKTsKJiM0MzsJCQkJCQkgICAgc3JjX2xvLCBkc3RrLCBzc3RrLAomIzQzOwkJCQkJCSAgICBpbnNuLSZndDtvZmYgPT0gMSwgJmFtcDtwcm9nKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgQlBGX0s6CiAJCQkJLyogbW92IGVjeCxpbW0zMiovCkBAIC0xODA0LDcgJiM0MzsxODEzLDcgQEAgc3RhdGljIGludCBkb19qaXQoc3RydWN0IGJwZl9wcm9nICpicGZfcHJvZywgaW50ICphZGRycywgdTggKmltYWdlLAogCQkJCQkgICAgaW1tMzIpOwogCQkJCWVtaXRfaWEzMl9kaXZfbW9kX3IoQlBGX09QKGNvZGUpLCBkc3RfbG8sCiAJCQkJCQkgICAgSUEzMl9FQ1gsIGRzdGssIGZhbHNlLAotCQkJCQkJICAgICZhbXA7cHJvZyk7CiYjNDM7CQkJCQkJICAgIGluc24tJmd0O29mZiA9PSAxLCAmYW1wO3Byb2cpOwogCQkJCWJyZWFrOwogCQkJfQogCQkJaWYgKCFicGZfcHJvZy0mZ3Q7YXV4LSZndDt2ZXJpZmllcl96ZXh0KQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAwMTozNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTYyCgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMjU5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIEJQRiBKSVQgQ29tcGlsZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCB0d2Vha3MgYGFyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jYC4gU3BlY2lmaWNhbGx5LCBpdCYjMzk7cyBtb2RpZnlpbmcgYGVtaXRfaWEzMl9kaXZfbW9kX3JgIHRvIGhhbmRsZSBzaWduZWQgZGl2aXNpb24gYW5kIG1vZHVsbyBvcGVyYXRpb25zIHdpdGhpbiB0aGUgMzItYml0IHg4NiBCUEYgSklULiBUaGlzIHBhdGNoIGFkZHMgYW4gYGlzX3NpZ25lZGAgYm9vbGVhbiBwYXJhbWV0ZXIuIFdoZW4gdGhpcyBwYXJhbWV0ZXIgaXMgdHJ1ZSwgaXQgZW1pdHMgYGNkcWAgYW5kIGBpZGl2YCwgd2hpY2ggYXJlIHRoZSBpbnN0cnVjdGlvbnMgdXNlZCBmb3Igc2lnbmVkIGRpdmlzaW9uLCBpbnN0ZWFkIG9mIHRoZSBgeG9yIGVkeCwgZWR4YCBhbmQgYGRpdmAgaW5zdHJ1Y3Rpb25zIHVzZWQgZm9yIHVuc2lnbmVkIGRpdmlzaW9uLiBUaGUgYGlzX3NpZ25lZGAgcGFyYW1ldGVyJiMzOTtzIHZhbHVlIGNvbWVzIGZyb20gYGluc24tJmd0O29mZiA9PSAxYC4KClRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYSBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIG9uZSBhdCB0aGF0LiBIb3dldmVyLCBJJiMzOTttIGEgYml0IGN1cmlvdXMuIFRoaXMgcGF0Y2ggaXMgZm9yIHRoZSAzMi1iaXQgeDg2IEJQRiBKSVQsIGluZGljYXRlZCBieSB0aGUgZmlsZSBwYXRoLiBDb25zaWRlcmluZyB0aGlzIGZpbGUgaXMgb25seSBjb21waWxlZCB3aGVuIGBDT05GSUdfWDg2XzMyYCBpcyBzZXQsIEkgbmVlZCB0byBjaGVjayBzb21ldGhpbmcuLi4gSXMgdGhpcyBjb2RlIHBhdGggZXZlbiByZWxldmFudCBpbiBhIHR5cGljYWwgNjQtYml0IGtlcm5lbCwgb3IgaXMgaXQgaXNvbGF0ZWQgdG8gMzItYml0IGtlcm5lbCBidWlsZHM/IEkgbmVlZCB0byBxdWlja2x5IGRldGVybWluZSB0aGUgcmVhY2ggb2YgdGhpcy4gSSYjMzk7bGwgc2VhcmNoIGZvciBgYnBmX2ppdF9jb21wMzIub2Agd2l0aGluIHRoZSBgYXJjaC94ODYvbmV0L01ha2VmaWxlYCB0byBzZWUgaG93IGl0JiMzOTtzIGludGVncmF0ZWQgaW50byB0aGUgYnVpbGQgcHJvY2Vzcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAwMTozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDticGZfaml0X2NvbXAzMiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L25ldC9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9uZXQvTWFrZWZpbGU9Nj1pZmVxICgkKENPTkZJR19YODZfMzIpLHkpXG5hcmNoL3g4Ni9uZXQvTWFrZWZpbGU6NzogICAgICAgIG9iai0kKENPTkZJR19CUEZfSklUKSAmIzQzOz0gYnBmX2ppdF9jb21wMzIub1xuYXJjaC94ODYvbmV0L01ha2VmaWxlLTgtZWxzZVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDAxOjM3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMyNjYKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiAxODMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBhIDMyLWJpdCBCUEYgSklUIENvbXBpbGF0aW9uIFBhdGgqKgoKT2theSwgc28gdGhpcyBjb2RlIGlzIG9ubHkgY29tcGlsZWQgZm9yIGBDT05GSUdfWDg2XzMyYC4gTXkgaW5pdGlhbCBpbnN0aW5jdCBpcyB0byBjb25zaWRlciB3aGV0aGVyIGl0JiMzOTtzIHdvcnRoIGZ1enppbmcgYXQgYWxsLCBidXQgeWVzLCB0aGUgZnVuY3Rpb25hbGl0eSBpcyB0aGVyZSwgc28gYWJzb2x1dGVseS4gTm93LCBhIG1pbm9yIGlzc3VlIEkgbmVlZCB0byBmYWN0b3IgaW46IHN5emthbGxlciB0eXBpY2FsbHkgZm9jdXNlcyBvbiA2NC1iaXQga2VybmVscy4gSG93ZXZlciwgaXQgKmNhbiogdGVzdCAzMi1iaXQga2VybmVscyAtIGBzeXotY2x1c3RlcmAgbWlnaHQgZXZlbiBoYXZlIDM4NiBpbnN0YW5jZXMgcnVubmluZywgc28gaXQmIzM5O3MgZmVhc2libGUuIFRoZSBjaGFuZ2UgaXMgc3BlY2lmaWNhbGx5IGluIHRoZSBCUEYgSklULCBzbyB0aGF0IG5hcnJvd3MgZG93biBteSBmb2N1cy4gSSBzaG91bGQgYmUgbG9va2luZyBhdCB0aGUgYGRvX2ppdGAgZnVuY3Rpb24gb3IgYGVtaXRfaWEzMl9kaXZfbW9kX3JgLiBIbW0sIHdhaXQuIEkganVzdCByZWNhbGxlZCB0aGF0IGBlbWl0X2lhMzJfZGl2X21vZF9yYCBpcyBhbiBpbmxpbmUgZnVuY3Rpb24uIFRoYXQgcmVkdWNlcyB0aGUgc3BlY2lmaWMgdGFyZ2V0cywgdGhlbi4gVGhlcmVmb3JlLCBJIG5lZWQgdG8gZm9jdXMgb24gZWl0aGVyIGBkb19qaXRgIG9yIGBicGZfaW50X2ppdF9jb21waWxlYC4gVG8gcGlucG9pbnQgdGhlIG1haW4gZW50cnkgcG9pbnQsIEkgc2hvdWxkIGNoZWNrIGBhcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuY2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMDE6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YnBmX2ludF9qaXRfY29tcGlsZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jPTI1MjU9Ym9vbCBicGZfaml0X25lZWRzX3pleHQodm9pZClcbi0tXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYy0yNTI5LVxuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmM6MjUzMDpzdHJ1Y3QgYnBmX3Byb2cgKmJwZl9pbnRfaml0X2NvbXBpbGUoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9wcm9nICpwcm9nKVxuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmMtMjUzMS17XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMDE6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzkxMgoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDI5MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgQlBGIEpJVCBDb21waWxhdGlvbiBFbnRyeSBQb2ludCBhbmQgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyBpdCBsb29rcyBsaWtlIGBicGZfaW50X2ppdF9jb21waWxlYCBpcyBkZWZpbml0ZWx5IHRoZSBlbnRyeSBwb2ludCBmb3IgdGhpcyBKSVQgY29tcGlsYXRpb24gcHJvY2Vzcy4gVGhlIGluaXRpYWwgcmVxdWlyZW1lbnQgaXMgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZDogYFg4Nl8zMmAgYW5kIGBCUEZfSklUYC4gSG93ZXZlciwgaG9sZCBvbiBhIHNlY29uZC4uLiBgWDg2XzMyYCBpcyBhY3R1YWxseSBhbiAqYXJjaGl0ZWN0dXJlKiBjb25maWd1cmF0aW9uLCBub3QgYSBzdGFuZGFyZCBvbmUuIFdlIGNhbiBzdGlsbCBsaXN0IGl0LCB0aG91Z2guCgpSaWdodCwgYEJQRl9KSVRgIGlzIHRoZSBjcml0aWNhbCBjb25maWcgaGVyZS4gTGV0JiMzOTtzIG1ha2Ugc3VyZSBib3RoIGFyZSBzb21ldGhpbmcgd2UgY2FuIGluY2x1ZGUgaW4gYEVuYWJsZUNvbmZpZ3NgLiBPa2F5LCBncmVhdCwgd2UgY2FuIGxpc3QgYm90aCBgWDg2XzMyYCAqYW5kKiBgQlBGX0pJVGAuIFRoZSBmYWN0IHRoYXQgYFg4Nl8zMmAgaXMgYW4gYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGNvbmZpZyBpcyBhIGJpdCB1bnVzdWFsLCBidXQgaXQmIzM5O3Mgbm90IGEgc2hvd3N0b3BwZXIuIExldCYjMzk7cyBtYWtlIHN1cmUgdG8gbGlzdCBgQlBGX0pJVGAuCgpOb3csIGxldCYjMzk7cyBkb3VibGUtY2hlY2sgdGhlIHBhdGNoIGl0c2VsZi4gT2theSwgaXQgc2VlbXMgdG8gYmUgbW9kaWZ5aW5nIHRoZSBgZW1pdF9pYTMyX2Rpdl9tb2RfcmAgYW5kIGBkb19qaXRgIGZ1bmN0aW9ucy4gVGhlIGtleSBzeW1ib2xzIHRvIGZvY3VzIG9uIGFyZSBgZG9faml0YCBhbmQgYGJwZl9pbnRfaml0X2NvbXBpbGVgLgoKTGV0JiMzOTtzIHF1aWNrbHkgc2NhbiBmb3IgYW55ICpvdGhlciogY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXMsIGp1c3QgdG8gYmUgdGhvcm91Z2guIFllcCwgYENPTkZJR19CUEZfSklUYCBpcyBhYnNvbHV0ZWx5IG5lY2Vzc2FyeS4gQW5kIGFnYWluLCBgQ09ORklHX1g4Nl8zMmAgaXMgbmVlZGVkIHRvbywgYWx0aG91Z2ggaXQmIzM5O3MgYW4gYXJjaGl0ZWN0dXJlIHNlbGVjdGlvbi4gV2UgY2FuIGRlZmluaXRlbHkgbGlzdCBpdCwgYnV0IHRoZSBtYWluIGNvbmZpZyB0byBrZWVwIGluIG1pbmQgaXMgYENPTkZJR19CUEZfSklUYC4KCkkgc2hvdWxkIHByb2JhYmx5IGRvdWJsZS1jaGVjayBgYXJjaC94ODYvbmV0L01ha2VmaWxlYCBhZ2FpbiwgdG8gYmUgc3VyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAwMTozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtDT05GSUdfQlBGX0pJVCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L25ldC9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9uZXQvTWFrZWZpbGU9Nj1pZmVxICgkKENPTkZJR19YODZfMzIpLHkpXG5hcmNoL3g4Ni9uZXQvTWFrZWZpbGU6NzogICAgICAgIG9iai0kKENPTkZJR19CUEZfSklUKSAmIzQzOz0gYnBmX2ppdF9jb21wMzIub1xuYXJjaC94ODYvbmV0L01ha2VmaWxlLTgtZWxzZVxuYXJjaC94ODYvbmV0L01ha2VmaWxlOjk6ICAgICAgICBvYmotJChDT05GSUdfQlBGX0pJVCkgJiM0Mzs9IGJwZl9qaXRfY29tcC5vIGJwZl90aW1lZF9tYXlfZ290by5vXG5hcmNoL3g4Ni9uZXQvTWFrZWZpbGUtMTAtZW5kaWZcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAwMTozNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NzY3CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMjE0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgVGFyZ2V0IElkZW50aWZpY2F0aW9uKioKCk9rYXksIHNvIEkmIzM5O3ZlIGlkZW50aWZpZWQgdGhhdCBgQ09ORklHX0JQRl9KSVRgIGlzIHRoZSBrZXkgY29uZmlndXJhdGlvbiBvcHRpb24gaGVyZS4gVGhhdCYjMzk7cyB0aGUgb25lIHdlJiMzOTtyZSB0YXJnZXRpbmcuIE5vdywgbGV0IG1lIGp1c3QgY29uZmlybS4uLiAqZG9faml0KiBpcyBhIHN0YXRpYyBmdW5jdGlvbiwgcmlnaHQ/IFllcywgY29uZmlybWVkLCBmb3VuZCBpdCBpbiAqYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmMqLiBTbywgdGhhdCBtZWFucyAqYnBmX2ludF9qaXRfY29tcGlsZSogaXMgdGhlIGV4cG9ydGVkIHN5bWJvbCB3ZSBuZWVkIHRvIGZvY3VzIG9uLgoKQWxyaWdodCwgbGV0JiMzOTtzIHN1bW1hcml6ZSB0aGUgZnV6emluZyBwbGFuIEkmIzM5O20gZGV2ZWxvcGluZy4KCiogICAqKldvcnRoRnV6emluZzoqKiBEZWZpbml0ZWx5LCB5ZXMuCiogICAqKlJlYXNvbmluZzoqKiBUaGlzIHBhdGNoIGludHJvZHVjZXMgbmV3IHNpZ25lZCBkaXZpc2lvbiBhbmQgbW9kdWxvIG9wZXJhdGlvbnMgaW50byB0aGUgMzItYml0IHg4NiBCUEYgSklUIGNvbXBpbGVyLiBUaGF0JiMzOTtzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGEgbW9kaWZpY2F0aW9uIG9mIHRoZSBlbWl0dGVkIG1hY2hpbmUgY29kZSwgYW5kIHRoYXQgb3BlbnMgdGhlIGRvb3IgdG8gcG90ZW50aWFsIGNvcnJlY3RuZXNzIGlzc3VlcyBhbmQsIG9mIGNvdXJzZSwgSklULXNwZWNpZmljIGJ1Z3MuIFRoYXQgYWx3YXlzIGRlbWFuZHMgZnV6emluZy4KKiAgICoqRm9jdXNTeW1ib2xzOioqIFNwZWNpZmljYWxseSwgSSYjMzk7bSBsb29raW5nIGF0IGBicGZfaW50X2ppdF9jb21waWxlYCAodGhlIGV4cG9zZWQgb25lKSBhbmQgYGRvX2ppdGAuCiogICAqKkVuYWJsZUNvbmZpZ3M6KiogYEJQRl9KSVRgIGZvciBzdXJlLCBhbmQgYFg4Nl8zMmAuCgpIb2xkIG9uLCBJIHNlZSB0aGF0IGBYODZfMzJgIGlzIGFuIGFyY2hpdGVjdHVyZSBjb25maWcsIGJ1dCBpbmNsdWRpbmcgaXQgaGVyZSBtYWtlcyBzZW5zZSwgaXQmIzM5O3MgcmVsZXZhbnQgaW4gdGhpcyBjb250ZXh0LgoKTm93LCBqdXN0IHRvIGJlIHRob3JvdWdoLCBJJiMzOTtsbCBkb3VibGUtY2hlY2sgdG8gbWFrZSBzdXJlIGBkb19qaXRgIGlzbiYjMzk7dCB1c2VkIGVsc2V3aGVyZSB3aXRoIGEgc2ltaWxhciBmdW5jdGlvbiBzaWduYXR1cmUgYW5kL29yIHRoYXQgaXQgaXMgdW5pcXVlbHkgZGVmaW5lZC4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAwMTozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkb19qaXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYz0xNTc3PXN0YXRpYyBpbnQgZW1pdF9rZnVuY19jYWxsKGNvbnN0IHN0cnVjdCBicGZfcHJvZyAqYnBmX3Byb2csIHU4ICplbmRfYWRkcixcbi0tXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYy0xNjY2LVxuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmM6MTY2NzpzdGF0aWMgaW50IGRvX2ppdChzdHJ1Y3QgYnBmX3Byb2cgKmJwZl9wcm9nLCBpbnQgKmFkZHJzLCB1OCAqaW1hZ2UsXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYy0xNjY4LVx0XHQgIGludCBvbGRwcm9nbGVuLCBzdHJ1Y3Qgaml0X2NvbnRleHQgKmN0eClcbi0tXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYz0yNTMwPXN0cnVjdCBicGZfcHJvZyAqYnBmX2ludF9qaXRfY29tcGlsZShzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX3Byb2cgKnByb2cpXG4tLVxuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmMtMjU2My1cdGZvciAocGFzcyA9IDA7IHBhc3MgXHUwMDNjIDIwIHx8IGltYWdlOyBwYXNzJiM0MzsmIzQzOykge1xuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmM6MjU2NDpcdFx0cHJvZ2xlbiA9IGRvX2ppdChwcm9nLCBhZGRycywgaW1hZ2UsIG9sZHByb2dsZW4sIFx1MDAyNmN0eCk7XG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYy0yNTY1LVx0XHRpZiAocHJvZ2xlbiBcdTAwM2M9IDApIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMDE6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTc0NQoJCQkJCQkJb3V0cHV0OiAxMTUKCQkJCQkJCXRob3VnaHRzOiAyMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIGl0IHdlcmUgbXkgb3duOgoKKipBbmFseXppbmcgdGhlIEpJVCBMb29wKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGNvZGUsIGFuZCBpdCYjMzk7cyBjbGVhciB0aGF0IGBkb19qaXRgIGlzIHRoZSBoZWFydCBvZiB0aGUgSnVzdC1Jbi1UaW1lIGNvbXBpbGF0aW9uIGxvb3AuIFRoYXQmIzM5O3MgdGhlIG1haW4gZnVuY3Rpb24gSSBuZWVkIHRvIGZvY3VzIG9uIHRvIHVuZGVyc3RhbmQgdGhlIEpJVCBwcm9jZXNzLiBJdCYjMzk7cyB0aGUgZW5naW5lIHRoYXQgZHJpdmVzIHRoaXMgd2hvbGUgdGhpbmcuCgpOb3csIHRvIG1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgdGhlIG9wZXJhdGlvbiBvZiB0aGUgZW5naW5lLCBJJiMzOTttIGdvaW5nIHRvIHN0YXJ0IHdpdGggdGhlIGBzZXQtcmVzdWx0c2AgdG9vbC4gVGhpcyBzZWVtcyBsaWtlIHRoZSBtb3N0IGRpcmVjdCB3YXkgdG8gZ2V0IGEgaGFuZGxlIG9uIHdoYXQmIzM5O3MgZ29pbmcgb24gd2l0aGluIGBkb19qaXRgIGFuZCBob3cgaXQgaXMgYmVoYXZpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDAxOjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfSklUJiMzNDssCiAgICAmIzM0O1g4Nl8zMiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2JwZl9pbnRfaml0X2NvbXBpbGUmIzM0OywKICAgICYjMzQ7ZG9faml0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3Igc2lnbmVkIGRpdmlzaW9uIGFuZCBtb2R1bG8gb3BlcmF0aW9ucyBpbiB0aGUgMzItYml0IHg4NiBCUEYgSklUIGNvbXBpbGVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBtb2RpZmllcyB0aGUgZW1pdHRlZCBtYWNoaW5lIGNvZGUgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIGNvcnJlY3RuZXNzIGFuZCBwcmV2ZW50IEpJVCBidWdzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfSklUJiMzNDssCiAgICAmIzM0O1g4Nl8zMiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2JwZl9pbnRfaml0X2NvbXBpbGUmIzM0OywKICAgICYjMzQ7ZG9faml0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3Igc2lnbmVkIGRpdmlzaW9uIGFuZCBtb2R1bG8gb3BlcmF0aW9ucyBpbiB0aGUgMzItYml0IHg4NiBCUEYgSklUIGNvbXBpbGVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBtb2RpZmllcyB0aGUgZW1pdHRlZCBtYWNoaW5lIGNvZGUgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIGNvcnJlY3RuZXNzIGFuZCBwcmV2ZW50IEpJVCBidWdzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTRUMDE6Mzc6MDEuODAyMzM5NTE3WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjYxMTU2OTA5NzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX0pJVFwiLFxuICAgIFwiWDg2XzMyXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnBmX2ludF9qaXRfY29tcGlsZVwiLFxuICAgIFwiZG9faml0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBzaWduZWQgZGl2aXNpb24gYW5kIG1vZHVsbyBvcGVyYXRpb25zIGluIHRoZSAzMi1iaXQgeDg2IEJQRiBKSVQgY29tcGlsZXIuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IG1vZGlmaWVzIHRoZSBlbWl0dGVkIG1hY2hpbmUgY29kZSBhbmQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgY29ycmVjdG5lc3MgYW5kIHByZXZlbnQgSklUIGJ1Z3MuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDAxOjM3OjAxLjgwMjM0NTc5N1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjA0MDA3OTE0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZWI5YmIwYjA3NTliN2QyNjUzMDBhZGQ2NGIxZmI5NDY3NTU0MmM2N1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVHVlIEp1bCAxNCAwMTozNzowMCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYyBiL2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jXFxuaW5kZXggODUyYmFmMmU0ZGI0ZDEuLjQ2YjQ3NDMyZjUwYWE0IDEwMDY0NFxcbi0tLSBhL2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jXFxuKysrIGIvYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmNcXG5AQCAtNDMzLDcgKzQzMyw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBlbWl0X2lhMzJfdG9fYmVfcjY0KGNvbnN0IHU4IGRzdFtdLCBzMzIgdmFsLFxcbiAgKiBkc3QgPSBkc3QgKGRpdnxtb2QpIHNyY1xcbiAgKi9cXG4gc3RhdGljIGlubGluZSB2b2lkIGVtaXRfaWEzMl9kaXZfbW9kX3IoY29uc3QgdTggb3AsIGNvbnN0IHU4IGRzdCwgY29uc3QgdTggc3JjLFxcbi1cXHRcXHRcXHRcXHQgICAgICAgYm9vbCBkc3RrLCBib29sIHNzdGssIHU4ICoqcHByb2cpXFxuK1xcdFxcdFxcdFxcdCAgICAgICBib29sIGRzdGssIGJvb2wgc3N0aywgYm9vbCBpc19zaWduZWQsXFxuK1xcdFxcdFxcdFxcdCAgICAgICB1OCAqKnBwcm9nKVxcbiB7XFxuIFxcdHU4ICpwcm9nID0gKnBwcm9nO1xcbiBcXHRpbnQgY250ID0gMDtcXG5AQCAtNDU0LDEwICs0NTUsMTcgQEAgc3RhdGljIGlubGluZSB2b2lkIGVtaXRfaWEzMl9kaXZfbW9kX3IoY29uc3QgdTggb3AsIGNvbnN0IHU4IGRzdCwgY29uc3QgdTggc3JjLFxcbiBcXHRcXHQvKiBtb3YgZWF4LGRzdCAqL1xcbiBcXHRcXHRFTUlUMigweDhCLCBhZGRfMnJlZygweEMwLCBkc3QsIElBMzJfRUFYKSk7XFxuIFxcbi1cXHQvKiB4b3IgZWR4LGVkeCAqL1xcbi1cXHRFTUlUMigweDMxLCBhZGRfMnJlZygweEMwLCBJQTMyX0VEWCwgSUEzMl9FRFgpKTtcXG4tXFx0LyogZGl2IGVjeCAqL1xcbi1cXHRFTUlUMigweEY3LCBhZGRfMXJlZygweEYwLCBJQTMyX0VDWCkpO1xcbitcXHRpZiAoaXNfc2lnbmVkKSB7XFxuK1xcdFxcdC8qIGNkcSAqL1xcbitcXHRcXHRFTUlUMSgweDk5KTtcXG4rXFx0XFx0LyogaWRpdiBlY3ggKi9cXG4rXFx0XFx0RU1JVDIoMHhGNywgYWRkXzFyZWcoMHhGOCwgSUEzMl9FQ1gpKTtcXG4rXFx0fSBlbHNlIHtcXG4rXFx0XFx0LyogeG9yIGVkeCxlZHggKi9cXG4rXFx0XFx0RU1JVDIoMHgzMSwgYWRkXzJyZWcoMHhDMCwgSUEzMl9FRFgsIElBMzJfRURYKSk7XFxuK1xcdFxcdC8qIGRpdiBlY3ggKi9cXG4rXFx0XFx0RU1JVDIoMHhGNywgYWRkXzFyZWcoMHhGMCwgSUEzMl9FQ1gpKTtcXG4rXFx0fVxcbiBcXG4gXFx0aWYgKG9wID09IEJQRl9NT0QpIHtcXG4gXFx0XFx0aWYgKGRzdGspXFxuQEAgLTE3OTYsNyArMTgwNCw4IEBAIHN0YXRpYyBpbnQgZG9faml0KHN0cnVjdCBicGZfcHJvZyAqYnBmX3Byb2csIGludCAqYWRkcnMsIHU4ICppbWFnZSxcXG4gXFx0XFx0XFx0c3dpdGNoIChCUEZfU1JDKGNvZGUpKSB7XFxuIFxcdFxcdFxcdGNhc2UgQlBGX1g6XFxuIFxcdFxcdFxcdFxcdGVtaXRfaWEzMl9kaXZfbW9kX3IoQlBGX09QKGNvZGUpLCBkc3RfbG8sXFxuLVxcdFxcdFxcdFxcdFxcdFxcdCAgICBzcmNfbG8sIGRzdGssIHNzdGssIFxcdTAwMjZwcm9nKTtcXG4rXFx0XFx0XFx0XFx0XFx0XFx0ICAgIHNyY19sbywgZHN0aywgc3N0ayxcXG4rXFx0XFx0XFx0XFx0XFx0XFx0ICAgIGluc24tXFx1MDAzZW9mZiA9PSAxLCBcXHUwMDI2cHJvZyk7XFxuIFxcdFxcdFxcdFxcdGJyZWFrO1xcbiBcXHRcXHRcXHRjYXNlIEJQRl9LOlxcbiBcXHRcXHRcXHRcXHQvKiBtb3YgZWN4LGltbTMyKi9cXG5AQCAtMTgwNCw3ICsxODEzLDcgQEAgc3RhdGljIGludCBkb19qaXQoc3RydWN0IGJwZl9wcm9nICpicGZfcHJvZywgaW50ICphZGRycywgdTggKmltYWdlLFxcbiBcXHRcXHRcXHRcXHRcXHQgICAgaW1tMzIpO1xcbiBcXHRcXHRcXHRcXHRlbWl0X2lhMzJfZGl2X21vZF9yKEJQRl9PUChjb2RlKSwgZHN0X2xvLFxcbiBcXHRcXHRcXHRcXHRcXHRcXHQgICAgSUEzMl9FQ1gsIGRzdGssIGZhbHNlLFxcbi1cXHRcXHRcXHRcXHRcXHRcXHQgICAgXFx1MDAyNnByb2cpO1xcbitcXHRcXHRcXHRcXHRcXHRcXHQgICAgaW5zbi1cXHUwMDNlb2ZmID09IDEsIFxcdTAwMjZwcm9nKTtcXG4gXFx0XFx0XFx0XFx0YnJlYWs7XFxuIFxcdFxcdFxcdH1cXG4gXFx0XFx0XFx0aWYgKCFicGZfcHJvZy1cXHUwMDNlYXV4LVxcdTAwM2V2ZXJpZmllcl96ZXh0KVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQwMTozNzowMi40MDc0NDcyMjFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI1NTEwNTY5MzU0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9KSVRcIixcbiAgICBcIlg4Nl8zMlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJwZl9pbnRfaml0X2NvbXBpbGVcIixcbiAgICBcImRvX2ppdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3Igc2lnbmVkIGRpdmlzaW9uIGFuZCBtb2R1bG8gb3BlcmF0aW9ucyBpbiB0aGUgMzItYml0IHg4NiBCUEYgSklUIGNvbXBpbGVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBtb2RpZmllcyB0aGUgZW1pdHRlZCBtYWNoaW5lIGNvZGUgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIGNvcnJlY3RuZXNzIGFuZCBwcmV2ZW50IEpJVCBidWdzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGViOWJiMGIwNzU5YjdkMjY1MzAwYWRkNjRiMWZiOTQ2NzU1NDJjNjdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1bCAxNCAwMTozNzowMCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jIGIvYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmNcbmluZGV4IDg1MmJhZjJlNGRiNGQxLi40NmI0NzQzMmY1MGFhNCAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jXG4rKysgYi9hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuY1xuQEAgLTQzMyw3ICs0MzMsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZW1pdF9pYTMyX3RvX2JlX3I2NChjb25zdCB1OCBkc3RbXSwgczMyIHZhbCxcbiAgKiBkc3QgPSBkc3QgKGRpdnxtb2QpIHNyY1xuICAqL1xuIHN0YXRpYyBpbmxpbmUgdm9pZCBlbWl0X2lhMzJfZGl2X21vZF9yKGNvbnN0IHU4IG9wLCBjb25zdCB1OCBkc3QsIGNvbnN0IHU4IHNyYyxcbi1cdFx0XHRcdCAgICAgICBib29sIGRzdGssIGJvb2wgc3N0aywgdTggKipwcHJvZylcbitcdFx0XHRcdCAgICAgICBib29sIGRzdGssIGJvb2wgc3N0aywgYm9vbCBpc19zaWduZWQsXG4rXHRcdFx0XHQgICAgICAgdTggKipwcHJvZylcbiB7XG4gXHR1OCAqcHJvZyA9ICpwcHJvZztcbiBcdGludCBjbnQgPSAwO1xuQEAgLTQ1NCwxMCArNDU1LDE3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBlbWl0X2lhMzJfZGl2X21vZF9yKGNvbnN0IHU4IG9wLCBjb25zdCB1OCBkc3QsIGNvbnN0IHU4IHNyYyxcbiBcdFx0LyogbW92IGVheCxkc3QgKi9cbiBcdFx0RU1JVDIoMHg4QiwgYWRkXzJyZWcoMHhDMCwgZHN0LCBJQTMyX0VBWCkpO1xuIFxuLVx0LyogeG9yIGVkeCxlZHggKi9cbi1cdEVNSVQyKDB4MzEsIGFkZF8ycmVnKDB4QzAsIElBMzJfRURYLCBJQTMyX0VEWCkpO1xuLVx0LyogZGl2IGVjeCAqL1xuLVx0RU1JVDIoMHhGNywgYWRkXzFyZWcoMHhGMCwgSUEzMl9FQ1gpKTtcbitcdGlmIChpc19zaWduZWQpIHtcbitcdFx0LyogY2RxICovXG4rXHRcdEVNSVQxKDB4OTkpO1xuK1x0XHQvKiBpZGl2IGVjeCAqL1xuK1x0XHRFTUlUMigweEY3LCBhZGRfMXJlZygweEY4LCBJQTMyX0VDWCkpO1xuK1x0fSBlbHNlIHtcbitcdFx0LyogeG9yIGVkeCxlZHggKi9cbitcdFx0RU1JVDIoMHgzMSwgYWRkXzJyZWcoMHhDMCwgSUEzMl9FRFgsIElBMzJfRURYKSk7XG4rXHRcdC8qIGRpdiBlY3ggKi9cbitcdFx0RU1JVDIoMHhGNywgYWRkXzFyZWcoMHhGMCwgSUEzMl9FQ1gpKTtcbitcdH1cbiBcbiBcdGlmIChvcCA9PSBCUEZfTU9EKSB7XG4gXHRcdGlmIChkc3RrKVxuQEAgLTE3OTYsNyArMTgwNCw4IEBAIHN0YXRpYyBpbnQgZG9faml0KHN0cnVjdCBicGZfcHJvZyAqYnBmX3Byb2csIGludCAqYWRkcnMsIHU4ICppbWFnZSxcbiBcdFx0XHRzd2l0Y2ggKEJQRl9TUkMoY29kZSkpIHtcbiBcdFx0XHRjYXNlIEJQRl9YOlxuIFx0XHRcdFx0ZW1pdF9pYTMyX2Rpdl9tb2RfcihCUEZfT1AoY29kZSksIGRzdF9sbyxcbi1cdFx0XHRcdFx0XHQgICAgc3JjX2xvLCBkc3RrLCBzc3RrLCBcdTAwMjZwcm9nKTtcbitcdFx0XHRcdFx0XHQgICAgc3JjX2xvLCBkc3RrLCBzc3RrLFxuK1x0XHRcdFx0XHRcdCAgICBpbnNuLVx1MDAzZW9mZiA9PSAxLCBcdTAwMjZwcm9nKTtcbiBcdFx0XHRcdGJyZWFrO1xuIFx0XHRcdGNhc2UgQlBGX0s6XG4gXHRcdFx0XHQvKiBtb3YgZWN4LGltbTMyKi9cbkBAIC0xODA0LDcgKzE4MTMsNyBAQCBzdGF0aWMgaW50IGRvX2ppdChzdHJ1Y3QgYnBmX3Byb2cgKmJwZl9wcm9nLCBpbnQgKmFkZHJzLCB1OCAqaW1hZ2UsXG4gXHRcdFx0XHRcdCAgICBpbW0zMik7XG4gXHRcdFx0XHRlbWl0X2lhMzJfZGl2X21vZF9yKEJQRl9PUChjb2RlKSwgZHN0X2xvLFxuIFx0XHRcdFx0XHRcdCAgICBJQTMyX0VDWCwgZHN0aywgZmFsc2UsXG4tXHRcdFx0XHRcdFx0ICAgIFx1MDAyNnByb2cpO1xuK1x0XHRcdFx0XHRcdCAgICBpbnNuLVx1MDAzZW9mZiA9PSAxLCBcdTAwMjZwcm9nKTtcbiBcdFx0XHRcdGJyZWFrO1xuIFx0XHRcdH1cbiBcdFx0XHRpZiAoIWJwZl9wcm9nLVx1MDAzZWF1eC1cdTAwM2V2ZXJpZmllcl96ZXh0KVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMDE6Mzc6MDIuNDA3NDQ5MjcxWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTkwODQ4ODg1MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBCUEYgSklUIENvbXBpbGVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IHR3ZWFrcyBgYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmNgLiBTcGVjaWZpY2FsbHksIGl0J3MgbW9kaWZ5aW5nIGBlbWl0X2lhMzJfZGl2X21vZF9yYCB0byBoYW5kbGUgc2lnbmVkIGRpdmlzaW9uIGFuZCBtb2R1bG8gb3BlcmF0aW9ucyB3aXRoaW4gdGhlIDMyLWJpdCB4ODYgQlBGIEpJVC4gVGhpcyBwYXRjaCBhZGRzIGFuIGBpc19zaWduZWRgIGJvb2xlYW4gcGFyYW1ldGVyLiBXaGVuIHRoaXMgcGFyYW1ldGVyIGlzIHRydWUsIGl0IGVtaXRzIGBjZHFgIGFuZCBgaWRpdmAsIHdoaWNoIGFyZSB0aGUgaW5zdHJ1Y3Rpb25zIHVzZWQgZm9yIHNpZ25lZCBkaXZpc2lvbiwgaW5zdGVhZCBvZiB0aGUgYHhvciBlZHgsIGVkeGAgYW5kIGBkaXZgIGluc3RydWN0aW9ucyB1c2VkIGZvciB1bnNpZ25lZCBkaXZpc2lvbi4gVGhlIGBpc19zaWduZWRgIHBhcmFtZXRlcidzIHZhbHVlIGNvbWVzIGZyb20gYGluc24tXHUwMDNlb2ZmID09IDFgLlxuXG5UaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGEgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCBvbmUgYXQgdGhhdC4gSG93ZXZlciwgSSdtIGEgYml0IGN1cmlvdXMuIFRoaXMgcGF0Y2ggaXMgZm9yIHRoZSAzMi1iaXQgeDg2IEJQRiBKSVQsIGluZGljYXRlZCBieSB0aGUgZmlsZSBwYXRoLiBDb25zaWRlcmluZyB0aGlzIGZpbGUgaXMgb25seSBjb21waWxlZCB3aGVuIGBDT05GSUdfWDg2XzMyYCBpcyBzZXQsIEkgbmVlZCB0byBjaGVjayBzb21ldGhpbmcuLi4gSXMgdGhpcyBjb2RlIHBhdGggZXZlbiByZWxldmFudCBpbiBhIHR5cGljYWwgNjQtYml0IGtlcm5lbCwgb3IgaXMgaXQgaXNvbGF0ZWQgdG8gMzItYml0IGtlcm5lbCBidWlsZHM/IEkgbmVlZCB0byBxdWlja2x5IGRldGVybWluZSB0aGUgcmVhY2ggb2YgdGhpcy4gSSdsbCBzZWFyY2ggZm9yIGBicGZfaml0X2NvbXAzMi5vYCB3aXRoaW4gdGhlIGBhcmNoL3g4Ni9uZXQvTWFrZWZpbGVgIHRvIHNlZSBob3cgaXQncyBpbnRlZ3JhdGVkIGludG8gdGhlIGJ1aWxkIHByb2Nlc3MuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1NjIsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNTksIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQwMTozNzowOC4zMTU5NDQ1MDNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTY2NTc2MDg3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImJwZl9qaXRfY29tcDMyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gveDg2L25ldC9NYWtlZmlsZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9uZXQvTWFrZWZpbGU9Nj1pZmVxICgkKENPTkZJR19YODZfMzIpLHkpXFxuYXJjaC94ODYvbmV0L01ha2VmaWxlOjc6ICAgICAgICBvYmotJChDT05GSUdfQlBGX0pJVCkgKz0gYnBmX2ppdF9jb21wMzIub1xcbmFyY2gveDg2L25ldC9NYWtlZmlsZS04LWVsc2VcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMDE6Mzc6MDguNDgyNTI2NzlaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NDU0NzYxNjMyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgYSAzMi1iaXQgQlBGIEpJVCBDb21waWxhdGlvbiBQYXRoKipcblxuT2theSwgc28gdGhpcyBjb2RlIGlzIG9ubHkgY29tcGlsZWQgZm9yIGBDT05GSUdfWDg2XzMyYC4gTXkgaW5pdGlhbCBpbnN0aW5jdCBpcyB0byBjb25zaWRlciB3aGV0aGVyIGl0J3Mgd29ydGggZnV6emluZyBhdCBhbGwsIGJ1dCB5ZXMsIHRoZSBmdW5jdGlvbmFsaXR5IGlzIHRoZXJlLCBzbyBhYnNvbHV0ZWx5LiBOb3csIGEgbWlub3IgaXNzdWUgSSBuZWVkIHRvIGZhY3RvciBpbjogc3l6a2FsbGVyIHR5cGljYWxseSBmb2N1c2VzIG9uIDY0LWJpdCBrZXJuZWxzLiBIb3dldmVyLCBpdCAqY2FuKiB0ZXN0IDMyLWJpdCBrZXJuZWxzIC0gYHN5ei1jbHVzdGVyYCBtaWdodCBldmVuIGhhdmUgMzg2IGluc3RhbmNlcyBydW5uaW5nLCBzbyBpdCdzIGZlYXNpYmxlLiBUaGUgY2hhbmdlIGlzIHNwZWNpZmljYWxseSBpbiB0aGUgQlBGIEpJVCwgc28gdGhhdCBuYXJyb3dzIGRvd24gbXkgZm9jdXMuIEkgc2hvdWxkIGJlIGxvb2tpbmcgYXQgdGhlIGBkb19qaXRgIGZ1bmN0aW9uIG9yIGBlbWl0X2lhMzJfZGl2X21vZF9yYC4gSG1tLCB3YWl0LiBJIGp1c3QgcmVjYWxsZWQgdGhhdCBgZW1pdF9pYTMyX2Rpdl9tb2RfcmAgaXMgYW4gaW5saW5lIGZ1bmN0aW9uLiBUaGF0IHJlZHVjZXMgdGhlIHNwZWNpZmljIHRhcmdldHMsIHRoZW4uIFRoZXJlZm9yZSwgSSBuZWVkIHRvIGZvY3VzIG9uIGVpdGhlciBgZG9faml0YCBvciBgYnBmX2ludF9qaXRfY29tcGlsZWAuIFRvIHBpbnBvaW50IHRoZSBtYWluIGVudHJ5IHBvaW50LCBJIHNob3VsZCBjaGVjayBgYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjY2LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDAxOjM3OjEyLjkzNzI5MDkwMloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjcwOTQ1ODcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYnBmX2ludF9qaXRfY29tcGlsZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYz0yNTI1PWJvb2wgYnBmX2ppdF9uZWVkc196ZXh0KHZvaWQpXFxuLS1cXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYy0yNTI5LVxcbmFyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jOjI1MzA6c3RydWN0IGJwZl9wcm9nICpicGZfaW50X2ppdF9jb21waWxlKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfcHJvZyAqcHJvZylcXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYy0yNTMxLXtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMDE6Mzc6MTMuMTA0MzkxMjdaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1OTYzNzEyNDM4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBCUEYgSklUIENvbXBpbGF0aW9uIEVudHJ5IFBvaW50IGFuZCBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gaXQgbG9va3MgbGlrZSBgYnBmX2ludF9qaXRfY29tcGlsZWAgaXMgZGVmaW5pdGVseSB0aGUgZW50cnkgcG9pbnQgZm9yIHRoaXMgSklUIGNvbXBpbGF0aW9uIHByb2Nlc3MuIFRoZSBpbml0aWFsIHJlcXVpcmVtZW50IGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQ6IGBYODZfMzJgIGFuZCBgQlBGX0pJVGAuIEhvd2V2ZXIsIGhvbGQgb24gYSBzZWNvbmQuLi4gYFg4Nl8zMmAgaXMgYWN0dWFsbHkgYW4gKmFyY2hpdGVjdHVyZSogY29uZmlndXJhdGlvbiwgbm90IGEgc3RhbmRhcmQgb25lLiBXZSBjYW4gc3RpbGwgbGlzdCBpdCwgdGhvdWdoLlxuXG5SaWdodCwgYEJQRl9KSVRgIGlzIHRoZSBjcml0aWNhbCBjb25maWcgaGVyZS4gTGV0J3MgbWFrZSBzdXJlIGJvdGggYXJlIHNvbWV0aGluZyB3ZSBjYW4gaW5jbHVkZSBpbiBgRW5hYmxlQ29uZmlnc2AuIE9rYXksIGdyZWF0LCB3ZSBjYW4gbGlzdCBib3RoIGBYODZfMzJgICphbmQqIGBCUEZfSklUYC4gVGhlIGZhY3QgdGhhdCBgWDg2XzMyYCBpcyBhbiBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgY29uZmlnIGlzIGEgYml0IHVudXN1YWwsIGJ1dCBpdCdzIG5vdCBhIHNob3dzdG9wcGVyLiBMZXQncyBtYWtlIHN1cmUgdG8gbGlzdCBgQlBGX0pJVGAuXG5cbk5vdywgbGV0J3MgZG91YmxlLWNoZWNrIHRoZSBwYXRjaCBpdHNlbGYuIE9rYXksIGl0IHNlZW1zIHRvIGJlIG1vZGlmeWluZyB0aGUgYGVtaXRfaWEzMl9kaXZfbW9kX3JgIGFuZCBgZG9faml0YCBmdW5jdGlvbnMuIFRoZSBrZXkgc3ltYm9scyB0byBmb2N1cyBvbiBhcmUgYGRvX2ppdGAgYW5kIGBicGZfaW50X2ppdF9jb21waWxlYC5cblxuTGV0J3MgcXVpY2tseSBzY2FuIGZvciBhbnkgKm90aGVyKiBjb25maWd1cmF0aW9uIGRlcGVuZGVuY2llcywganVzdCB0byBiZSB0aG9yb3VnaC4gWWVwLCBgQ09ORklHX0JQRl9KSVRgIGlzIGFic29sdXRlbHkgbmVjZXNzYXJ5LiBBbmQgYWdhaW4sIGBDT05GSUdfWDg2XzMyYCBpcyBuZWVkZWQgdG9vLCBhbHRob3VnaCBpdCdzIGFuIGFyY2hpdGVjdHVyZSBzZWxlY3Rpb24uIFdlIGNhbiBkZWZpbml0ZWx5IGxpc3QgaXQsIGJ1dCB0aGUgbWFpbiBjb25maWcgdG8ga2VlcCBpbiBtaW5kIGlzIGBDT05GSUdfQlBGX0pJVGAuXG5cbkkgc2hvdWxkIHByb2JhYmx5IGRvdWJsZS1jaGVjayBgYXJjaC94ODYvbmV0L01ha2VmaWxlYCBhZ2FpbiwgdG8gYmUgc3VyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzkxMiwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI5MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQwMTozNzoxOS4wNjgxMDYzMzdaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTU2MzUyOTk4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkNPTkZJR19CUEZfSklUXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gveDg2L25ldC9NYWtlZmlsZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9uZXQvTWFrZWZpbGU9Nj1pZmVxICgkKENPTkZJR19YODZfMzIpLHkpXFxuYXJjaC94ODYvbmV0L01ha2VmaWxlOjc6ICAgICAgICBvYmotJChDT05GSUdfQlBGX0pJVCkgKz0gYnBmX2ppdF9jb21wMzIub1xcbmFyY2gveDg2L25ldC9NYWtlZmlsZS04LWVsc2VcXG5hcmNoL3g4Ni9uZXQvTWFrZWZpbGU6OTogICAgICAgIG9iai0kKENPTkZJR19CUEZfSklUKSArPSBicGZfaml0X2NvbXAubyBicGZfdGltZWRfbWF5X2dvdG8ub1xcbmFyY2gveDg2L25ldC9NYWtlZmlsZS0xMC1lbmRpZlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQwMTozNzoxOS4yMjQ0Njg3MDVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MTI5ODExNjgxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgVGFyZ2V0IElkZW50aWZpY2F0aW9uKipcblxuT2theSwgc28gSSd2ZSBpZGVudGlmaWVkIHRoYXQgYENPTkZJR19CUEZfSklUYCBpcyB0aGUga2V5IGNvbmZpZ3VyYXRpb24gb3B0aW9uIGhlcmUuIFRoYXQncyB0aGUgb25lIHdlJ3JlIHRhcmdldGluZy4gTm93LCBsZXQgbWUganVzdCBjb25maXJtLi4uICpkb19qaXQqIGlzIGEgc3RhdGljIGZ1bmN0aW9uLCByaWdodD8gWWVzLCBjb25maXJtZWQsIGZvdW5kIGl0IGluICphcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYyouIFNvLCB0aGF0IG1lYW5zICpicGZfaW50X2ppdF9jb21waWxlKiBpcyB0aGUgZXhwb3J0ZWQgc3ltYm9sIHdlIG5lZWQgdG8gZm9jdXMgb24uXG5cbkFscmlnaHQsIGxldCdzIHN1bW1hcml6ZSB0aGUgZnV6emluZyBwbGFuIEknbSBkZXZlbG9waW5nLlxuXG4qICAgKipXb3J0aEZ1enppbmc6KiogRGVmaW5pdGVseSwgeWVzLlxuKiAgICoqUmVhc29uaW5nOioqIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBuZXcgc2lnbmVkIGRpdmlzaW9uIGFuZCBtb2R1bG8gb3BlcmF0aW9ucyBpbnRvIHRoZSAzMi1iaXQgeDg2IEJQRiBKSVQgY29tcGlsZXIuIFRoYXQncyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIG1vZGlmaWNhdGlvbiBvZiB0aGUgZW1pdHRlZCBtYWNoaW5lIGNvZGUsIGFuZCB0aGF0IG9wZW5zIHRoZSBkb29yIHRvIHBvdGVudGlhbCBjb3JyZWN0bmVzcyBpc3N1ZXMgYW5kLCBvZiBjb3Vyc2UsIEpJVC1zcGVjaWZpYyBidWdzLiBUaGF0IGFsd2F5cyBkZW1hbmRzIGZ1enppbmcuXG4qICAgKipGb2N1c1N5bWJvbHM6KiogU3BlY2lmaWNhbGx5LCBJJ20gbG9va2luZyBhdCBgYnBmX2ludF9qaXRfY29tcGlsZWAgKHRoZSBleHBvc2VkIG9uZSkgYW5kIGBkb19qaXRgLlxuKiAgICoqRW5hYmxlQ29uZmlnczoqKiBgQlBGX0pJVGAgZm9yIHN1cmUsIGFuZCBgWDg2XzMyYC5cblxuSG9sZCBvbiwgSSBzZWUgdGhhdCBgWDg2XzMyYCBpcyBhbiBhcmNoaXRlY3R1cmUgY29uZmlnLCBidXQgaW5jbHVkaW5nIGl0IGhlcmUgbWFrZXMgc2Vuc2UsIGl0J3MgcmVsZXZhbnQgaW4gdGhpcyBjb250ZXh0LlxuXG5Ob3csIGp1c3QgdG8gYmUgdGhvcm91Z2gsIEknbGwgZG91YmxlLWNoZWNrIHRvIG1ha2Ugc3VyZSBgZG9faml0YCBpc24ndCB1c2VkIGVsc2V3aGVyZSB3aXRoIGEgc2ltaWxhciBmdW5jdGlvbiBzaWduYXR1cmUgYW5kL29yIHRoYXQgaXQgaXMgdW5pcXVlbHkgZGVmaW5lZC4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NzY3LCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjE0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDAxOjM3OjI0LjM1NDI4Mjc4NloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjE1MDc0OTM0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRvX2ppdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYz0xNTc3PXN0YXRpYyBpbnQgZW1pdF9rZnVuY19jYWxsKGNvbnN0IHN0cnVjdCBicGZfcHJvZyAqYnBmX3Byb2csIHU4ICplbmRfYWRkcixcXG4tLVxcbmFyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jLTE2NjYtXFxuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmM6MTY2NzpzdGF0aWMgaW50IGRvX2ppdChzdHJ1Y3QgYnBmX3Byb2cgKmJwZl9wcm9nLCBpbnQgKmFkZHJzLCB1OCAqaW1hZ2UsXFxuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmMtMTY2OC1cXHRcXHQgIGludCBvbGRwcm9nbGVuLCBzdHJ1Y3Qgaml0X2NvbnRleHQgKmN0eClcXG4tLVxcbmFyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jPTI1MzA9c3RydWN0IGJwZl9wcm9nICpicGZfaW50X2ppdF9jb21waWxlKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfcHJvZyAqcHJvZylcXG4tLVxcbmFyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jLTI1NjMtXFx0Zm9yIChwYXNzID0gMDsgcGFzcyBcXHUwMDNjIDIwIHx8IGltYWdlOyBwYXNzKyspIHtcXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYzoyNTY0OlxcdFxcdHByb2dsZW4gPSBkb19qaXQocHJvZywgYWRkcnMsIGltYWdlLCBvbGRwcm9nbGVuLCBcXHUwMDI2Y3R4KTtcXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYy0yNTY1LVxcdFxcdGlmIChwcm9nbGVuIFxcdTAwM2M9IDApIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMDE6Mzc6MjQuNTY5MzY0MzlaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA1ODc1NDg3OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzcywgYXMgaWYgaXQgd2VyZSBteSBvd246XG5cbioqQW5hbHl6aW5nIHRoZSBKSVQgTG9vcCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgY29kZSwgYW5kIGl0J3MgY2xlYXIgdGhhdCBgZG9faml0YCBpcyB0aGUgaGVhcnQgb2YgdGhlIEp1c3QtSW4tVGltZSBjb21waWxhdGlvbiBsb29wLiBUaGF0J3MgdGhlIG1haW4gZnVuY3Rpb24gSSBuZWVkIHRvIGZvY3VzIG9uIHRvIHVuZGVyc3RhbmQgdGhlIEpJVCBwcm9jZXNzLiBJdCdzIHRoZSBlbmdpbmUgdGhhdCBkcml2ZXMgdGhpcyB3aG9sZSB0aGluZy5cblxuTm93LCB0byBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoZSBvcGVyYXRpb24gb2YgdGhlIGVuZ2luZSwgSSdtIGdvaW5nIHRvIHN0YXJ0IHdpdGggdGhlIGBzZXQtcmVzdWx0c2AgdG9vbC4gVGhpcyBzZWVtcyBsaWtlIHRoZSBtb3N0IGRpcmVjdCB3YXkgdG8gZ2V0IGEgaGFuZGxlIG9uIHdoYXQncyBnb2luZyBvbiB3aXRoaW4gYGRvX2ppdGAgYW5kIGhvdyBpdCBpcyBiZWhhdmluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTc0NSwiT3V0cHV0VG9rZW5zIjoxMTUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQwMTozNzoyNy42MjgxMjIwNDhaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODk4ODgyMTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9KSVRcIixcbiAgICBcIlg4Nl8zMlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJwZl9pbnRfaml0X2NvbXBpbGVcIixcbiAgICBcImRvX2ppdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3Igc2lnbmVkIGRpdmlzaW9uIGFuZCBtb2R1bG8gb3BlcmF0aW9ucyBpbiB0aGUgMzItYml0IHg4NiBCUEYgSklUIGNvbXBpbGVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBtb2RpZmllcyB0aGUgZW1pdHRlZCBtYWNoaW5lIGNvZGUgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIGNvcnJlY3RuZXNzIGFuZCBwcmV2ZW50IEpJVCBidWdzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9KSVRcIixcbiAgICBcIlg4Nl8zMlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJwZl9pbnRfaml0X2NvbXBpbGVcIixcbiAgICBcImRvX2ppdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3Igc2lnbmVkIGRpdmlzaW9uIGFuZCBtb2R1bG8gb3BlcmF0aW9ucyBpbiB0aGUgMzItYml0IHg4NiBCUEYgSklUIGNvbXBpbGVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBtb2RpZmllcyB0aGUgZW1pdHRlZCBtYWNoaW5lIGNvZGUgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIGNvcnJlY3RuZXNzIGFuZCBwcmV2ZW50IEpJVCBidWdzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowbg7kw[1] Phase: Succeeded StartedAt: 2026-07-14 01:37:43 +0000 UTC FinishedAt: 2026-07-14 01:37:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbg7kw[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-14 01:37:44 +0000 UTC FinishedAt: 2026-07-14 01:37:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbg7kw[2] Phase: Succeeded StartedAt: 2026-07-14 01:37:44 +0000 UTC FinishedAt: 2026-07-14 02:48:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbg7kw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-14 01:37:46 +0000 UTC FinishedAt: 2026-07-14 02:48:47 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowbg7kw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-14 01:37:46 +0000 UTC FinishedAt: 2026-07-14 01:38:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbg7kw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-14 01:37:46 +0000 UTC FinishedAt: 2026-07-14 01:38:21 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.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-workflowbg7kw/series-workflowbg7kw-convert-artifact-1361163016/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbg7kw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-14 01:38:33 +0000 UTC FinishedAt: 2026-07-14 02:14:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbg7kw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-14 01:38:33 +0000 UTC FinishedAt: 2026-07-14 02:14:05 +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:*72d2f16b-f16e-4008-b87c-30bbf2256c83,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-workflowbg7kw/series-workflowbg7kw-convert-artifact-1361163016/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": "7d376447-18d7-4683-9ad9-f321b14fa61f", "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-workflowbg7kw/series-workflowbg7kw-build-action-4119563646/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbg7kw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-14 01:38:33 +0000 UTC FinishedAt: 2026-07-14 02:13:55 +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:*72d2f16b-f16e-4008-b87c-30bbf2256c83,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-workflowbg7kw/series-workflowbg7kw-convert-artifact-1361163016/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": "7d376447-18d7-4683-9ad9-f321b14fa61f", "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-workflowbg7kw/series-workflowbg7kw-build-action-4119563646/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbg7kw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-14 02:14:05 +0000 UTC FinishedAt: 2026-07-14 02:14:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbg7kw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-14 02:14:05 +0000 UTC FinishedAt: 2026-07-14 02:14:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbg7kw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-14 02:14:05 +0000 UTC FinishedAt: 2026-07-14 02:14:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbg7kw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-14 02:14:05 +0000 UTC FinishedAt: 2026-07-14 02:14:13 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.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-workflowbg7kw/series-workflowbg7kw-convert-artifact-41657839/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbg7kw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-14 02:14:15 +0000 UTC FinishedAt: 2026-07-14 02:16:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbg7kw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-14 02:14:15 +0000 UTC FinishedAt: 2026-07-14 02:16:13 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*7d376447-18d7-4683-9ad9-f321b14fa61f,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-workflowbg7kw/series-workflowbg7kw-build-action-4119563646/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-workflowbg7kw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-14 02:16:23 +0000 UTC FinishedAt: 2026-07-14 02:16:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbg7kw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-14 02:16:23 +0000 UTC FinishedAt: 2026-07-14 02:16:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbg7kw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-14 02:16:23 +0000 UTC FinishedAt: 2026-07-14 02:44:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbg7kw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-14 02:16:23 +0000 UTC FinishedAt: 2026-07-14 02:44:27 +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:*72d2f16b-f16e-4008-b87c-30bbf2256c83,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-workflowbg7kw/series-workflowbg7kw-convert-artifact-41657839/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": "b5662e37-1c3a-47a8-87e4-b97c0e9a8841", "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-workflowbg7kw/series-workflowbg7kw-build-action-1335564675/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbg7kw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-14 02:16:23 +0000 UTC FinishedAt: 2026-07-14 02:44:17 +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:*72d2f16b-f16e-4008-b87c-30bbf2256c83,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-workflowbg7kw/series-workflowbg7kw-convert-artifact-41657839/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": "b5662e37-1c3a-47a8-87e4-b97c0e9a8841", "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-workflowbg7kw/series-workflowbg7kw-build-action-1335564675/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbg7kw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-14 02:44:27 +0000 UTC FinishedAt: 2026-07-14 02:44:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbg7kw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-14 02:44:27 +0000 UTC FinishedAt: 2026-07-14 02:44:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbg7kw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-14 02:44:27 +0000 UTC FinishedAt: 2026-07-14 02:46:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbg7kw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-14 02:44:27 +0000 UTC FinishedAt: 2026-07-14 02:46:26 +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:*b5662e37-1c3a-47a8-87e4-b97c0e9a8841,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-workflowbg7kw/series-workflowbg7kw-build-action-1335564675/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-workflowbg7kw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-14 02:46:36 +0000 UTC FinishedAt: 2026-07-14 02:48:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbg7kw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-14 02:46:36 +0000 UTC FinishedAt: 2026-07-14 02:48:47 +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-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"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:*7d376447-18d7-4683-9ad9-f321b14fa61f,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*b5662e37-1c3a-47a8-87e4-b97c0e9a8841,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-workflowbg7kw/series-workflowbg7kw-build-action-4119563646/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-workflowbg7kw/series-workflowbg7kw-build-action-1335564675/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowbg7kw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-14 02:46:36 +0000 UTC FinishedAt: 2026-07-14 02:46:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbg7kw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-14 02:46:36 +0000 UTC FinishedAt: 2026-07-14 02:46:41 +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-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"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-workflowbg7kw/series-workflowbg7kw-convert-artifact-2138570152/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbg7kw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-14 02:46:36 +0000 UTC FinishedAt: 2026-07-14 02:46:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbg7kw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-14 02:46:36 +0000 UTC FinishedAt: 2026-07-14 02:46:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbg7kw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-14 02:46:37 +0000 UTC FinishedAt: 2026-07-14 02:46:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbg7kw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-14 02:46:47 +0000 UTC FinishedAt: 2026-07-14 02:48:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbg7kw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile","do_jit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","X86_32"],"series_id":"5d6e2745-6b12-42bb-979f-cccf01eceea7","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-14 02:46:47 +0000 UTC FinishedAt: 2026-07-14 02:48:41 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*7d376447-18d7-4683-9ad9-f321b14fa61f,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*b5662e37-1c3a-47a8-87e4-b97c0e9a8841,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-workflowbg7kw/series-workflowbg7kw-build-action-4119563646/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-workflowbg7kw/series-workflowbg7kw-build-action-1335564675/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-workflowbg7kw/series-workflowbg7kw-convert-artifact-2138570152/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,}