Name: series-workflowjfrrw Phase: Succeeded StartedAt: 2026-06-24 18:37:10 +0000 UTC FinishedAt: 2026-06-24 22:43:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfrrw[0] Phase: Succeeded StartedAt: 2026-06-24 18:37:10 +0000 UTC FinishedAt: 2026-06-24 18:45:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfrrw[0].run-triage Phase: Succeeded StartedAt: 2026-06-24 18:37:10 +0000 UTC FinishedAt: 2026-06-24 18:45:21 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "502d801f0ab03e4f32f9a33d203154ce84887921", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "502d801f0ab03e4f32f9a33d203154ce84887921", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL" ], "series_id": "52f292da-4654-4dc9-bb46-5d3ed821723f" }, "track": "KASAN", "fuzz": { "focus": [ "bpf" ], "focus_symbols": [ "btf_parse", "bpf_verifier_log_attr_valid", "bpf_log_attr_init", "bpf_log_attr_create_vlog" ], "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+CgkJCTx0ZD4yMDI2LzA2LzI0IDE4OjQ0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YnRmX3BhcnNlJiMzNDssCiAgICAmIzM0O2JwZl92ZXJpZmllcl9sb2dfYXR0cl92YWxpZCYjMzQ7LAogICAgJiMzNDticGZfbG9nX2F0dHJfaW5pdCYjMzQ7LAogICAgJiMzNDticGZfbG9nX2F0dHJfY3JlYXRlX3Zsb2cmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBjaGVja3MgdG8gcHJldmVudCB1c2Vyc3BhY2UgZnJvbSBwYXNzaW5nIEJQRl9MT0dfS0VSTkVMIGFzIGEgbG9nIGxldmVsIGluIEJQRiBzeXNjYWxscywgd2hpY2ggaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBhZmZlY3RpbmcgQlRGIGxvYWRpbmcsIEJQRiBwcm9ncmFtIGxvYWRpbmcsIGFuZCBtYXAgY3JlYXRpb24uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMTg6NDQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAwMTU4MGQ5ZThlMzIyNWQ3Njc3MzZhMjE3MDdhNmY3Yzg4NzgxODgzXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdW4gMjQgMTg6NDQ6MzkgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEva2VybmVsL2JwZi9idGYuYyBiL2tlcm5lbC9icGYvYnRmLmNcbmluZGV4IDE1YWU3YzQzZjU5NGJlLi40YTBjMTgxMTJhZDMxMiAxMDA2NDRcbi0tLSBhL2tlcm5lbC9icGYvYnRmLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2tlcm5lbC9icGYvYnRmLmNcbkBAIC01OTE5LDYgJiM0Mzs1OTE5LDkgQEAgc3RhdGljIHN0cnVjdCBidGYgKmJ0Zl9wYXJzZShjb25zdCB1bmlvbiBicGZfYXR0ciAqYXR0ciwgYnBmcHRyX3QgdWF0dHIsXG4gXHRpZiAoYXR0ci1cdTAwM2VidGZfc2l6ZSBcdTAwM2UgQlRGX01BWF9TSVpFKVxuIFx0XHRyZXR1cm4gRVJSX1BUUigtRTJCSUcpO1xuIFxuJiM0MztcdGlmIChhdHRyX2xvZy1cdTAwM2VsZXZlbCA9PSBCUEZfTE9HX0tFUk5FTCBcdTAwMjZcdTAwMjYgIXVhdHRyLmlzX2tlcm5lbClcbiYjNDM7XHRcdHJldHVybiBFUlJfUFRSKC1FSU5WQUwpO1xuJiM0MztcbiBcdGVudiA9IGt6YWxsb2Nfb2JqKCplbnYsIEdGUF9LRVJORUwgfCBfX0dGUF9OT1dBUk4pO1xuIFx0aWYgKCFlbnYpXG4gXHRcdHJldHVybiBFUlJfUFRSKC1FTk9NRU0pO1xuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvbG9nLmMgYi9rZXJuZWwvYnBmL2xvZy5jXG5pbmRleCBiNzQwZmE3M2VlMjZkYS4uMjVhOWY4MzQwOTgwNzMgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvYnBmL2xvZy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvYnBmL2xvZy5jXG5AQCAtMjEsNiAmIzQzOzIxLDE1IEBAIHN0YXRpYyBib29sIGJwZl92ZXJpZmllcl9sb2dfYXR0cl92YWxpZCh1MzIgbG9nX2xldmVsLCBjaGFyIF9fdXNlciAqbG9nX2J1ZiwgdTMyXG4gXHQvKiBsb2cgYnVmIHdpdGhvdXQgbG9nX2xldmVsIGlzIG1lYW5pbmdsZXNzICovXG4gXHRpZiAobG9nX2J1ZiBcdTAwMjZcdTAwMjYgbG9nX2xldmVsID09IDApXG4gXHRcdHJldHVybiBmYWxzZTtcbiYjNDM7XG4mIzQzO1x0LyogQlBGX0xPR19LRVJORUwgaXMgYW4gZXhjbHVzaXZlIGludGVybmFsIG1vZGUsIG5vdCBhIGJpdCBmbGFnLlxuJiM0MztcdCAqIEl0IG11c3QgYmUgY2hlY2tlZCB2aWEgc3RyaWN0IGVxdWFsaXR5IHRvIHByZXZlbnQgaXQgZnJvbSBiZWluZ1xuJiM0MztcdCAqIGNvbWJpbmVkIHdpdGggdXNlcnNwYWNlIGZsYWdzLCB3aGljaCB3b3VsZCBjYXVzZSB0aGUgdmVyaWZpZXJcbiYjNDM7XHQgKiB0byBmYWxsYmFjayB0byB1c2Vyc3BhY2UgbG9nZ2luZyBhbmQgY29weV90b191c2VyKCkgZmFpbHVyZXMuXG4mIzQzO1x0ICovXG4mIzQzO1x0aWYgKGxvZ19sZXZlbCA9PSBCUEZfTE9HX0tFUk5FTClcbiYjNDM7XHRcdHJldHVybiB0cnVlO1xuJiM0MztcbiBcdGlmIChsb2dfbGV2ZWwgXHUwMDI2IH5CUEZfTE9HX01BU0spXG4gXHRcdHJldHVybiBmYWxzZTtcbiBcdGlmIChsb2dfc2l6ZSBcdTAwM2UgVUlOVF9NQVggXHUwMDNlXHUwMDNlIDIpXG5AQCAtODMxLDYgJiM0Mzs4NDAsMTEgQEAgaW50IGJwZl9sb2dfYXR0cl9pbml0KHN0cnVjdCBicGZfbG9nX2F0dHIgKmxvZywgdTY0IGxvZ19idWYsIHUzMiBsb2dfc2l6ZSwgdTMyIGxcbiBcdGNoYXIgX191c2VyICp1YnVmX2NvbW1vbiA9IHU2NF90b191c2VyX3B0cihjb21tb24tXHUwMDNlbG9nX2J1Zik7XG4gXHRjaGFyIF9fdXNlciAqdWJ1ZiA9IHU2NF90b191c2VyX3B0cihsb2dfYnVmKTtcbiBcbiYjNDM7XHRpZiAoY29tbW9uLVx1MDAzZWxvZ19sZXZlbCA9PSBCUEZfTE9HX0tFUk5FTCBcdTAwMjZcdTAwMjYgIXVhdHRyX2NvbW1vbi5pc19rZXJuZWwpXG4mIzQzO1x0XHRyZXR1cm4gLUVJTlZBTDtcbiYjNDM7XHRpZiAobG9nX2xldmVsID09IEJQRl9MT0dfS0VSTkVMIFx1MDAyNlx1MDAyNiAhdWF0dHIuaXNfa2VybmVsKVxuJiM0MztcdFx0cmV0dXJuIC1FSU5WQUw7XG4mIzQzO1xuIFx0aWYgKCFicGZfdmVyaWZpZXJfbG9nX2F0dHJfdmFsaWQoY29tbW9uLVx1MDAzZWxvZ19sZXZlbCwgdWJ1Zl9jb21tb24sIGNvbW1vbi1cdTAwM2Vsb2dfc2l6ZSkgfHxcbiBcdCAgICAhYnBmX3ZlcmlmaWVyX2xvZ19hdHRyX3ZhbGlkKGxvZ19sZXZlbCwgdWJ1ZiwgbG9nX3NpemUpKVxuIFx0XHRyZXR1cm4gLUVJTlZBTDtcbkBAIC04NzMsNiAmIzQzOzg4Nyw5IEBAIHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpicGZfbG9nX2F0dHJfY3JlYXRlX3Zsb2coc3RydWN0IGJwZl9sb2dfYXR0ciAqYXR0cl9sb2csXG4gXHRpZiAoIXNpemUpXG4gXHRcdHJldHVybiBOVUxMO1xuIFxuJiM0MztcdGlmIChjb21tb24tXHUwMDNlbG9nX2xldmVsID09IEJQRl9MT0dfS0VSTkVMIFx1MDAyNlx1MDAyNiAhdWF0dHIuaXNfa2VybmVsKVxuJiM0MztcdFx0cmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7XG4mIzQzO1xuIFx0bG9nID0ga3phbGxvY19vYmooKmxvZywgR0ZQX0tFUk5FTCk7XG4gXHRpZiAoIWxvZylcbiBcdFx0cmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMTg6NDQ8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlBGX1NZU0NBTEwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtidGZfcGFyc2UmIzM0OywKICAgICYjMzQ7YnBmX3ZlcmlmaWVyX2xvZ19hdHRyX3ZhbGlkJiMzNDssCiAgICAmIzM0O2JwZl9sb2dfYXR0cl9pbml0JiMzNDssCiAgICAmIzM0O2JwZl9sb2dfYXR0cl9jcmVhdGVfdmxvZyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGNoZWNrcyB0byBwcmV2ZW50IHVzZXJzcGFjZSBmcm9tIHBhc3NpbmcgQlBGX0xPR19LRVJORUwgYXMgYSBsb2cgbGV2ZWwgaW4gQlBGIHN5c2NhbGxzLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGFmZmVjdGluZyBCVEYgbG9hZGluZywgQlBGIHByb2dyYW0gbG9hZGluZywgYW5kIG1hcCBjcmVhdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMDE1ODBkOWU4ZTMyMjVkNzY3NzM2YTIxNzA3YTZmN2M4ODc4MTg4MwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgSnVuIDI0IDE4OjQ0OjM5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEva2VybmVsL2JwZi9idGYuYyBiL2tlcm5lbC9icGYvYnRmLmMKaW5kZXggMTVhZTdjNDNmNTk0YmUuLjRhMGMxODExMmFkMzEyIDEwMDY0NAotLS0gYS9rZXJuZWwvYnBmL2J0Zi5jCiYjNDM7JiM0MzsmIzQzOyBiL2tlcm5lbC9icGYvYnRmLmMKQEAgLTU5MTksNiAmIzQzOzU5MTksOSBAQCBzdGF0aWMgc3RydWN0IGJ0ZiAqYnRmX3BhcnNlKGNvbnN0IHVuaW9uIGJwZl9hdHRyICphdHRyLCBicGZwdHJfdCB1YXR0ciwKIAlpZiAoYXR0ci0mZ3Q7YnRmX3NpemUgJmd0OyBCVEZfTUFYX1NJWkUpCiAJCXJldHVybiBFUlJfUFRSKC1FMkJJRyk7CiAKJiM0MzsJaWYgKGF0dHJfbG9nLSZndDtsZXZlbCA9PSBCUEZfTE9HX0tFUk5FTCAmYW1wOyZhbXA7ICF1YXR0ci5pc19rZXJuZWwpCiYjNDM7CQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKJiM0MzsKIAllbnYgPSBremFsbG9jX29iaigqZW52LCBHRlBfS0VSTkVMIHwgX19HRlBfTk9XQVJOKTsKIAlpZiAoIWVudikKIAkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL2xvZy5jIGIva2VybmVsL2JwZi9sb2cuYwppbmRleCBiNzQwZmE3M2VlMjZkYS4uMjVhOWY4MzQwOTgwNzMgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9icGYvbG9nLmMKJiM0MzsmIzQzOyYjNDM7IGIva2VybmVsL2JwZi9sb2cuYwpAQCAtMjEsNiAmIzQzOzIxLDE1IEBAIHN0YXRpYyBib29sIGJwZl92ZXJpZmllcl9sb2dfYXR0cl92YWxpZCh1MzIgbG9nX2xldmVsLCBjaGFyIF9fdXNlciAqbG9nX2J1ZiwgdTMyCiAJLyogbG9nIGJ1ZiB3aXRob3V0IGxvZ19sZXZlbCBpcyBtZWFuaW5nbGVzcyAqLwogCWlmIChsb2dfYnVmICZhbXA7JmFtcDsgbG9nX2xldmVsID09IDApCiAJCXJldHVybiBmYWxzZTsKJiM0MzsKJiM0MzsJLyogQlBGX0xPR19LRVJORUwgaXMgYW4gZXhjbHVzaXZlIGludGVybmFsIG1vZGUsIG5vdCBhIGJpdCBmbGFnLgomIzQzOwkgKiBJdCBtdXN0IGJlIGNoZWNrZWQgdmlhIHN0cmljdCBlcXVhbGl0eSB0byBwcmV2ZW50IGl0IGZyb20gYmVpbmcKJiM0MzsJICogY29tYmluZWQgd2l0aCB1c2Vyc3BhY2UgZmxhZ3MsIHdoaWNoIHdvdWxkIGNhdXNlIHRoZSB2ZXJpZmllcgomIzQzOwkgKiB0byBmYWxsYmFjayB0byB1c2Vyc3BhY2UgbG9nZ2luZyBhbmQgY29weV90b191c2VyKCkgZmFpbHVyZXMuCiYjNDM7CSAqLwomIzQzOwlpZiAobG9nX2xldmVsID09IEJQRl9MT0dfS0VSTkVMKQomIzQzOwkJcmV0dXJuIHRydWU7CiYjNDM7CiAJaWYgKGxvZ19sZXZlbCAmYW1wOyB+QlBGX0xPR19NQVNLKQogCQlyZXR1cm4gZmFsc2U7CiAJaWYgKGxvZ19zaXplICZndDsgVUlOVF9NQVggJmd0OyZndDsgMikKQEAgLTgzMSw2ICYjNDM7ODQwLDExIEBAIGludCBicGZfbG9nX2F0dHJfaW5pdChzdHJ1Y3QgYnBmX2xvZ19hdHRyICpsb2csIHU2NCBsb2dfYnVmLCB1MzIgbG9nX3NpemUsIHUzMiBsCiAJY2hhciBfX3VzZXIgKnVidWZfY29tbW9uID0gdTY0X3RvX3VzZXJfcHRyKGNvbW1vbi0mZ3Q7bG9nX2J1Zik7CiAJY2hhciBfX3VzZXIgKnVidWYgPSB1NjRfdG9fdXNlcl9wdHIobG9nX2J1Zik7CiAKJiM0MzsJaWYgKGNvbW1vbi0mZ3Q7bG9nX2xldmVsID09IEJQRl9MT0dfS0VSTkVMICZhbXA7JmFtcDsgIXVhdHRyX2NvbW1vbi5pc19rZXJuZWwpCiYjNDM7CQlyZXR1cm4gLUVJTlZBTDsKJiM0MzsJaWYgKGxvZ19sZXZlbCA9PSBCUEZfTE9HX0tFUk5FTCAmYW1wOyZhbXA7ICF1YXR0ci5pc19rZXJuZWwpCiYjNDM7CQlyZXR1cm4gLUVJTlZBTDsKJiM0MzsKIAlpZiAoIWJwZl92ZXJpZmllcl9sb2dfYXR0cl92YWxpZChjb21tb24tJmd0O2xvZ19sZXZlbCwgdWJ1Zl9jb21tb24sIGNvbW1vbi0mZ3Q7bG9nX3NpemUpIHx8CiAJICAgICFicGZfdmVyaWZpZXJfbG9nX2F0dHJfdmFsaWQobG9nX2xldmVsLCB1YnVmLCBsb2dfc2l6ZSkpCiAJCXJldHVybiAtRUlOVkFMOwpAQCAtODczLDYgJiM0Mzs4ODcsOSBAQCBzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqYnBmX2xvZ19hdHRyX2NyZWF0ZV92bG9nKHN0cnVjdCBicGZfbG9nX2F0dHIgKmF0dHJfbG9nLAogCWlmICghc2l6ZSkKIAkJcmV0dXJuIE5VTEw7CiAKJiM0MzsJaWYgKGNvbW1vbi0mZ3Q7bG9nX2xldmVsID09IEJQRl9MT0dfS0VSTkVMICZhbXA7JmFtcDsgIXVhdHRyLmlzX2tlcm5lbCkKJiM0MzsJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwomIzQzOwogCWxvZyA9IGt6YWxsb2Nfb2JqKCpsb2csIEdGUF9LRVJORUwpOwogCWlmICghbG9nKQogCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMTg6NDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjU2MAoJCQkJCQkJb3V0cHV0OiAyMgoJCQkJCQkJdGhvdWdodHM6IDEwOTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBCUEYgTG9nIExldmVsIFJlc3RyaWN0aW9uIFBhdGNoKioKCkFscmlnaHQsIGxldCYjMzk7cyBicmVhayBkb3duIHRoaXMgcGF0Y2guIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRoYXQgdGhpcyBpcyBhIHN0cmFpZ2h0Zm9yd2FyZCBzZWN1cml0eSBoYXJkZW5pbmcgbWVhc3VyZSB3aXRoaW4gdGhlIEJQRiBzdWJzeXN0ZW0sIHdoaWNoIGlzIGdvb2QuIFRoZSBjb3JlIG9mIHRoaXMgcGF0Y2ggc2VlbXMgdG8gYmUgcHJldmVudGluZyB1c2Vyc3BhY2UgZnJvbSBkaXJlY3RseSBzcGVjaWZ5aW5nIGBCUEZfTE9HX0tFUk5FTGAgYXMgYSBsb2cgbGV2ZWwuIFRoaXMgcmVzdHJpY3Rpb24gbWFrZXMgc2Vuc2UuIEtlcm5lbC1sZXZlbCBsb2dnaW5nIGlzLCBieSBkZWZpbml0aW9uLCBhbiBpbnRlcm5hbCBtZWNoYW5pc20uIEV4cG9zaW5nIGl0IHRvIHVzZXJzcGFjZSB3b3VsZCBvcGVuIHVwIHBvdGVudGlhbCBhdHRhY2sgdmVjdG9ycywgYWxsb3dpbmcgbWFsaWNpb3VzIGFjdG9ycyB0byBlaXRoZXIgZmxvb2QgdGhlIGxvZ3Mgd2l0aCBnYXJiYWdlLCBsZWFrIGludGVybmFsIGtlcm5lbCBpbmZvcm1hdGlvbiwgb3IgcG90ZW50aWFsbHkgaW50ZXJmZXJlIHdpdGggdGhlIHZlcmlmaWVyJiMzOTtzIGxvZ2dpbmcgcHJvY2Vzcy4KClRoZSBwYXRjaCBpdHNlbGYgaXMgc2ltcGxlOyBpdCBpbnRyb2R1Y2VzIGNoZWNrcyB3aXRoaW4gc2V2ZXJhbCBrZXkgZnVuY3Rpb25zLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIGd1YXJkaW5nIGFnYWluc3QgdGhlIHVzZSBvZiBgQlBGX0xPR19LRVJORUxgIGluIGBidGZfcGFyc2VgLCBgYnBmX3ZlcmlmaWVyX2xvZ19hdHRyX3ZhbGlkYCwgYGJwZl9sb2dfYXR0cl9pbml0YCwgYW5kIGBicGZfbG9nX2F0dHJfY3JlYXRlX3Zsb2dgLiBUaGUgcHJlc2VuY2Ugb2YgdGhlIGB1YXR0ci5pc19rZXJuZWxgIGNoZWNrIHNpZ25hbHMgdGhhdCB0aGlzIHdpbGwgb25seSB0YWtlIGVmZmVjdCBvbiBjYWxscyBvcmlnaW5hdGluZyBmcm9tIHVzZXJzcGFjZSBhbmQgd2lsbCBiZSBpZ25vcmVkIGluIGNhbGxzIGZyb20gd2l0aGluIHRoZSBrZXJuZWwuIE1ha2VzIHNlbnNlLgoKVGhlIGluY2x1c2lvbiBvZiBgYnRmX3BhcnNlYCBpbiB0aGlzIGxpc3QgaXMgYWxzbyBub3RhYmxlLiBJJiMzOTttIHRoaW5raW5nIGhlcmUsIHRoYXQmIzM5O3MgcmVsYXRlZCB0byBCVEYgbG9hZGluZywgYW5kIHNwZWNpZmljYWxseSwgdGhlIHBhcnNpbmcgb2YgQlRGIGRhdGEgdGhhdCBwb3RlbnRpYWxseSBvcmlnaW5hdGVzIGZyb20gdXNlcnNwYWNlLiBJdCYjMzk7cyBnb29kIHRvIHNlZSB0aGlzIGlzIGNvdmVyZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGxvZyBsZXZlbCBpc24mIzM5O3QgbWFuaXB1bGF0ZWQgZHVyaW5nIEJURiBsb2FkaW5nLCB0aHVzIHByZXZlbnRpbmcgdGhlIGxlYWthZ2Ugb2Yga2VybmVsIGludGVybmFscy4KClRoZSBmdW5jdGlvbnMgYGJwZl9sb2dfYXR0cl9pbml0YCBhbmQgYGJwZl9sb2dfYXR0cl9jcmVhdGVfdmxvZ2AgYXJlIGRpcmVjdGx5IGludm9sdmVkIGluIHRoZSBCUEYgcHJvZ3JhbSBsb2FkaW5nIHByb2Nlc3MsIHNvIGl0JiMzOTtzIGNyaXRpY2FsIHRvIGxvY2sgZG93biB0aGUgbG9nIGxldmVsIHBhcmFtZXRlciBoZXJlIGFzIHdlbGwuIEkmIzM5O20gbm93IG1ha2luZyBhIG1lbnRhbCBub3RlIHRvIGNoZWNrIHRoZSBleGFjdCBjYWxsIHBhdGhzIG9mIHRoZXNlIGZ1bmN0aW9ucyB0byB1bmRlcnN0YW5kIHdoZXJlIHRoaXMgcmVzdHJpY3Rpb24gd2lsbCB0YWtlIGVmZmVjdCBpbiBwcmFjdGljZS4KCkJhc2VkIG9uIHRoZSBuYXR1cmUgb2YgdGhpcyBjaGFuZ2UsIEkgdGhpbmsgZnV6emluZyBpcyBhIHZlcnkgYXBwcm9wcmlhdGUgbmV4dCBzdGVwLiBXZSBzaG91bGQgYmUgc3BlY2lmaWNhbGx5IHRhcmdldGluZyB0aG9zZSBmdW5jdGlvbnMgdGhhdCBhcmUgYWZmZWN0ZWQgYnkgdGhpcyBwYXRjaDogYGJ0Zl9wYXJzZWAsIGBicGZfdmVyaWZpZXJfbG9nX2F0dHJfdmFsaWRgLCBgYnBmX2xvZ19hdHRyX2luaXRgLCBhbmQgYGJwZl9sb2dfYXR0cl9jcmVhdGVfdmxvZ2AuIFdlIHNob3VsZCBmb2N1cyBvbiBjYXNlcyB3aGVyZSB1c2Vyc3BhY2UgcHJvdmlkZXMgYSBgQlBGX0xPR19LRVJORUxgIGxvZyBsZXZlbCBhbmQgc2VlIGlmIHRoZXNlIGNoZWNrcyBhcmUgdHJpZ2dlcmVkIGFzIGV4cGVjdGVkLiBXZSBzaG91bGQgYWxzbyBpbnZlc3RpZ2F0ZSBjYXNlcyB3aGVyZSB0aGUgbG9nIGxldmVsIGlzIGNvbWJpbmVkIHdpdGggb3RoZXIgZmxhZ3MgaW4gdmFyaW91cyB3YXlzIHRvIHNlZSBob3cgdGhlIGNvZGUgd2lsbCByZXNwb25kLiBTaW5jZSB0aGVzZSBhcmUgbG93LWxldmVsIGZ1bmN0aW9ucywgYSBjcmFzaCB3b3VsZCBsaWtlbHkgaW5kaWNhdGUgYSBzZXJpb3VzIGlzc3VlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI0IDE4OjQ0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JwZl9sb2dfYXR0cl9pbml0JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2luY2x1ZGUvbGludXgvYnBmX3ZlcmlmaWVyLmg9NzY2PXN0cnVjdCBicGZfbG9nX2F0dHIge1xuLS1cbmluY2x1ZGUvbGludXgvYnBmX3ZlcmlmaWVyLmgtNzczLVxuaW5jbHVkZS9saW51eC9icGZfdmVyaWZpZXIuaDo3NzQ6aW50IGJwZl9sb2dfYXR0cl9pbml0KHN0cnVjdCBicGZfbG9nX2F0dHIgKmxvZywgdTY0IGxvZ19idWYsIHUzMiBsb2dfc2l6ZSwgdTMyIGxvZ19sZXZlbCxcbmluY2x1ZGUvbGludXgvYnBmX3ZlcmlmaWVyLmgtNzc1LVx0XHQgICAgICB1MzIgb2Zmc2V0b2ZfbG9nX3RydWVfc2l6ZSwgYnBmcHRyX3QgdWF0dHIsIHN0cnVjdCBicGZfY29tbW9uX2F0dHIgKmNvbW1vbixcbi0tXG5rZXJuZWwvYnBmL2xvZy5jPTgyMz12b2lkIHByaW50X2luc25fc3RhdGUoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgY29uc3Qgc3RydWN0IGJwZl92ZXJpZmllcl9zdGF0ZSAqdnN0YXRlLFxuLS1cbmtlcm5lbC9icGYvbG9nLmMtODM1LVxua2VybmVsL2JwZi9sb2cuYzo4MzY6aW50IGJwZl9sb2dfYXR0cl9pbml0KHN0cnVjdCBicGZfbG9nX2F0dHIgKmxvZywgdTY0IGxvZ19idWYsIHUzMiBsb2dfc2l6ZSwgdTMyIGxvZ19sZXZlbCxcbmtlcm5lbC9icGYvbG9nLmMtODM3LVx0XHQgICAgICB1MzIgb2Zmc2V0b2ZfbG9nX3RydWVfc2l6ZSwgYnBmcHRyX3QgdWF0dHIsIHN0cnVjdCBicGZfY29tbW9uX2F0dHIgKmNvbW1vbixcbi0tXG5rZXJuZWwvYnBmL3N5c2NhbGwuYz02MzU0PXN0YXRpYyBpbnQgX19zeXNfYnBmKGVudW0gYnBmX2NtZCBjbWQsIGJwZnB0cl90IHVhdHRyLCB1bnNpZ25lZCBpbnQgc2l6ZSxcbi0tXG5rZXJuZWwvYnBmL3N5c2NhbGwuYy02NDE0LVx0XHRcdG9mZnNldG9mX2xvZ190cnVlX3NpemUgPSBvZmZzZXRvZih1bmlvbiBicGZfYXR0ciwgbG9nX3RydWVfc2l6ZSk7XG5rZXJuZWwvYnBmL3N5c2NhbGwuYzo2NDE1Olx0XHRlcnIgPSBicGZfbG9nX2F0dHJfaW5pdChcdTAwMjZhdHRyX2xvZywgYXR0ci5sb2dfYnVmLCBhdHRyLmxvZ19zaXplLCBhdHRyLmxvZ19sZXZlbCxcbmtlcm5lbC9icGYvc3lzY2FsbC5jLTY0MTYtXHRcdFx0XHRcdG9mZnNldG9mX2xvZ190cnVlX3NpemUsIHVhdHRyLCBcdTAwMjZhdHRyX2NvbW1vbiwgdWF0dHJfY29tbW9uLFxuLS1cbmtlcm5lbC9icGYvc3lzY2FsbC5jLTY0NjQtXHRcdFx0b2Zmc2V0b2ZfbG9nX3RydWVfc2l6ZSA9IG9mZnNldG9mKHVuaW9uIGJwZl9hdHRyLCBidGZfbG9nX3RydWVfc2l6ZSk7XG5rZXJuZWwvYnBmL3N5c2NhbGwuYzo2NDY1Olx0XHRlcnIgPSBicGZfbG9nX2F0dHJfaW5pdChcdTAwMjZhdHRyX2xvZywgYXR0ci5idGZfbG9nX2J1ZiwgYXR0ci5idGZfbG9nX3NpemUsXG5rZXJuZWwvYnBmL3N5c2NhbGwuYy02NDY2LVx0XHRcdFx0XHRhdHRyLmJ0Zl9sb2dfbGV2ZWwsIG9mZnNldG9mX2xvZ190cnVlX3NpemUsIHVhdHRyLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI0IDE4OjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ4NTUKCQkJCQkJCW91dHB1dDogMjUKCQkJCQkJCXRob3VnaHRzOiAxOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBzdW1tYXJ5LCBhcyB0aG91Z2ggSSYjMzk7bSB0aGlua2luZyB0aHJvdWdoIHRoaXMgcHJvY2VzczoKCioqRGl2aW5nIERlZXBlciBpbnRvIGBicGZfbG9nX2F0dHJfY3JlYXRlX3Zsb2dgKioKCk9rYXksIHNvIHdlJiMzOTt2ZSBjb3ZlcmVkIGEgbG90IG9mIGdyb3VuZCwgYnV0IEkgdGhpbmsgaXQmIzM5O3MgY3J1Y2lhbCB3ZSBkb24mIzM5O3QganVzdCBzdG9wIGhlcmUuIFdlJiMzOTt2ZSBnb3QgYSBnb29kIGhhbmRsZSBvbiB0aGluZ3Mgb3ZlcmFsbCwgYnV0IEkmIzM5O20gdGhpbmtpbmcgd2UgbmVlZCB0byBzcGVjaWZpY2FsbHkgY2hlY2sgb3V0IGBicGZfbG9nX2F0dHJfY3JlYXRlX3Zsb2dgLiBUaGVyZSYjMzk7cyBsaWtlbHkgc29tZSBpbXBvcnRhbnQgaW50ZXJhY3Rpb24gaGFwcGVuaW5nIHRoZXJlIHRoYXQgd2UgaGF2ZW4mIzM5O3QgZXhwbG9yZWQgZGVlcGx5LCB0aGF0IHdlIG5lZWQgdG8gaW52ZXN0aWdhdGUgbW9yZSBjbG9zZWx5LiBNYXliZSBpdCYjMzk7cyBub3QgYSBtYWpvciBpc3N1ZSwgYnV0IGV4cGVyaWVuY2UgdGVsbHMgbWUgdG8gY2hhc2UgZG93biB0aGVzZSBsb29zZSBlbmRzLiBUaGlzIG1pZ2h0IGJlIHdoZXJlIHNvbWUgc3VidGxlIGRldGFpbCBjb21lcyBpbnRvIHBsYXkuIFdlIHJlYWxseSBkb24mIzM5O3Qgd2FudCB0byBtaXNzIGFueXRoaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI0IDE4OjQ0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JwZl9sb2dfYXR0cl9jcmVhdGVfdmxvZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL2xpbnV4L2JwZl92ZXJpZmllci5oPTc3ND1pbnQgYnBmX2xvZ19hdHRyX2luaXQoc3RydWN0IGJwZl9sb2dfYXR0ciAqbG9nLCB1NjQgbG9nX2J1ZiwgdTMyIGxvZ19zaXplLCB1MzIgbG9nX2xldmVsLFxuLS1cbmluY2x1ZGUvbGludXgvYnBmX3ZlcmlmaWVyLmgtNzc2LVx0XHQgICAgICBicGZwdHJfdCB1YXR0cl9jb21tb24sIHUzMiBzaXplX2NvbW1vbik7XG5pbmNsdWRlL2xpbnV4L2JwZl92ZXJpZmllci5oOjc3NzpzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqYnBmX2xvZ19hdHRyX2NyZWF0ZV92bG9nKHN0cnVjdCBicGZfbG9nX2F0dHIgKmF0dHJfbG9nLFxuaW5jbHVkZS9saW51eC9icGZfdmVyaWZpZXIuaC03NzgtXHRcdFx0XHRcdFx0ICBzdHJ1Y3QgYnBmX2NvbW1vbl9hdHRyICpjb21tb24sIGJwZnB0cl90IHVhdHRyLFxuLS1cbmtlcm5lbC9icGYvbG9nLmM9ODM2PWludCBicGZfbG9nX2F0dHJfaW5pdChzdHJ1Y3QgYnBmX2xvZ19hdHRyICpsb2csIHU2NCBsb2dfYnVmLCB1MzIgbG9nX3NpemUsIHUzMiBsb2dfbGV2ZWwsXG4tLVxua2VybmVsL2JwZi9sb2cuYy04NzQtXG5rZXJuZWwvYnBmL2xvZy5jOjg3NTpzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqYnBmX2xvZ19hdHRyX2NyZWF0ZV92bG9nKHN0cnVjdCBicGZfbG9nX2F0dHIgKmF0dHJfbG9nLFxua2VybmVsL2JwZi9sb2cuYy04NzYtXHRcdFx0XHRcdFx0ICBzdHJ1Y3QgYnBmX2NvbW1vbl9hdHRyICpjb21tb24sIGJwZnB0cl90IHVhdHRyLFxuLS1cbmtlcm5lbC9icGYvc3lzY2FsbC5jPTE2MjY9c3RhdGljIGludCBtYXBfY3JlYXRlKHVuaW9uIGJwZl9hdHRyICphdHRyLCBicGZwdHJfdCB1YXR0ciwgc3RydWN0IGJwZl9jb21tb25fYXR0ciAqYXR0cl9jb21tb24sXG4tLVxua2VybmVsL2JwZi9zeXNjYWxsLmMtMTYzNS1cbmtlcm5lbC9icGYvc3lzY2FsbC5jOjE2MzY6XHRsb2cgPSBicGZfbG9nX2F0dHJfY3JlYXRlX3Zsb2coXHUwMDI2YXR0cl9sb2csIGF0dHJfY29tbW9uLCB1YXR0cl9jb21tb24sIHNpemVfY29tbW9uKTtcbmtlcm5lbC9icGYvc3lzY2FsbC5jLTE2MzctXHRpZiAoSVNfRVJSKGxvZykpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMTg6NDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTU0NwoJCQkJCQkJb3V0cHV0OiAyMQoJCQkJCQkJdGhvdWdodHM6IDE1NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEJQRiBMb2cgTGV2ZWwgUmVzdHJpY3Rpb24gUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcywgYGJwZl9sb2dfYXR0cl9pbml0YCBhbmQgYGJwZl9sb2dfYXR0cl9jcmVhdGVfdmxvZ2AgYXJlIGNhbGxlZCBmcm9tIGBfX3N5c19icGZgIGFuZCBgbWFwX2NyZWF0ZWAuIEl0IHNlZW1zIGxpa2UgdGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBpcyBwcmV2ZW50aW5nIHVzZXIgc3BhY2UgZnJvbSBzZXR0aW5nIGBCUEZfTE9HX0tFUk5FTGAgYXMgdGhlIGxvZyBsZXZlbC4gVGhpcyBpcyBkZWZpbml0ZWx5IGEgZnVuY3Rpb25hbCBjaGFuZ2UgYW5kIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbnMuCgpNeSBmb2N1cyByaWdodCBub3cgaXMgb24gYSBmZXcga2V5IGZ1bmN0aW9uczogYGJ0Zl9wYXJzZWAsIGBicGZfdmVyaWZpZXJfbG9nX2F0dHJfdmFsaWRgLCBgYnBmX2xvZ19hdHRyX2luaXRgLCBhbmQgYGJwZl9sb2dfYXR0cl9jcmVhdGVfdmxvZ2AuIEkmIzM5O2xsIG5lZWQgdG8gZGlnIGludG8gaG93IHRoZXNlIGZ1bmN0aW9ucyBpbnRlcmFjdCB3aXRoIHRoZSBwcm9wb3NlZCByZXN0cmljdGlvbi4KCkkgYWxzbyBuZWVkIHRvIHZlcmlmeSB0aGUgcmVxdWlyZWQgY29uZmlndXJhdGlvbnMuIEkgc2VlIGBCUEZfU1lTQ0FMTGAgbGlzdGVkLCB3aGljaCBtYWtlcyBzZW5zZSwgYnV0IEkgbmVlZCB0byBjb25maXJtIHRoYXQgdGhpcyBpcyB0aGUgb25seSByZWxldmFudCBjb25maWcuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCBlbmFibGluZyBvciBkaXNhYmxpbmcgdGhpcyBjb25maWcgcHJlY2lzZWx5IGNhcHR1cmVzIHRoZSBjaGFuZ2UuIEl0JiMzOTtzIGxpa2VseSwgYnV0IEkgbmVlZCB0byBjb25maXJtLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI0IDE4OjQ1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBCUEZfU1lTQ0FMTCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtrZXJuZWwvYnBmL0tjb25maWc9MjU9bWVudSBcJiMzNDtCUEYgc3Vic3lzdGVtXCYjMzQ7XG5rZXJuZWwvYnBmL0tjb25maWctMjYtXG5rZXJuZWwvYnBmL0tjb25maWc6Mjc6Y29uZmlnIEJQRl9TWVNDQUxMXG5rZXJuZWwvYnBmL0tjb25maWctMjgtXHRib29sIFwmIzM0O0VuYWJsZSBicGYoKSBzeXN0ZW0gY2FsbFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI0IDE4OjQ1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYwNTMKCQkJCQkJCW91dHB1dDogMTI4CgkJCQkJCQl0aG91Z2h0czogMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgYXNzdW1pbmcgSSYjMzk7bSBhbiBleHBlcnQ6CgoqKkFzc2Vzc21lbnQgYW5kIEFjdGlvbjogQlBGIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gd2UmIzM5O3JlIHRhbGtpbmcgYWJvdXQgQlBGIGFuZCBzeXNjYWxsIGludGVyY2VwdGlvbi4gVGhlIGNvcmUgaXNzdWUsIGFzIEkgdW5kZXJzdGFuZCBpdCwgaXMgc2V0dGluZyB1cCB0aGUgcHJvcGVyIGNvbmZpZ3VyYXRpb24gZm9yIHRoYXQuIFRoZSB0aG91Z2h0IHByb2Nlc3MgaXMgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCBoZXJlLiBCYXNlZCBvbiB3aGF0IEkmIzM5O3ZlIHNlZW4sIGFuZCB0aGUgc3BlY2lmaWNzIG9mIHRoZSBjdXJyZW50IHByb2JsZW0sIGNvbmZpcm1pbmcgdGhhdCBgQlBGX1NZU0NBTExgIGlzIHRoZSBjb3JyZWN0IGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIHRoZSBmaXJzdCwgZXNzZW50aWFsIHN0ZXAuIEkmIzM5O3ZlIHdvcmtlZCB3aXRoIEJQRiBlbm91Z2ggdG8ga25vdyB0aGUgbGFuZHNjYXBlOyB0aGlzIGlzbiYjMzk7dCBhIGNvbXBsZXggZGVidWdnaW5nIHNjZW5hcmlvLiBJJiMzOTttIGdvaW5nIHdpdGggdGhhdCBzZXR0aW5nLiBBbmQgbm93IHRoYXQgSSYjMzk7dmUgbmFpbGVkIGRvd24gdGhhdCBjcnVjaWFsIHNldHRpbmcsIEkgY2FuIG1vdmUgb24uIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhlIHByb2dyYW0gcmVmbGVjdHMgdGhhdCBjaGFuZ2UuIEkgbmVlZCB0byBzZXQgdGhlIHJlc3VsdHMuIExldCYjMzk7cyBkbyB0aGF0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNCAxODo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlBGX1NZU0NBTEwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtidGZfcGFyc2UmIzM0OywKICAgICYjMzQ7YnBmX3ZlcmlmaWVyX2xvZ19hdHRyX3ZhbGlkJiMzNDssCiAgICAmIzM0O2JwZl9sb2dfYXR0cl9pbml0JiMzNDssCiAgICAmIzM0O2JwZl9sb2dfYXR0cl9jcmVhdGVfdmxvZyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGNoZWNrcyB0byBwcmV2ZW50IHVzZXJzcGFjZSBmcm9tIHBhc3NpbmcgQlBGX0xPR19LRVJORUwgYXMgYSBsb2cgbGV2ZWwgaW4gQlBGIHN5c2NhbGxzLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGFmZmVjdGluZyBCVEYgbG9hZGluZywgQlBGIHByb2dyYW0gbG9hZGluZywgYW5kIG1hcCBjcmVhdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlBGX1NZU0NBTEwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtidGZfcGFyc2UmIzM0OywKICAgICYjMzQ7YnBmX3ZlcmlmaWVyX2xvZ19hdHRyX3ZhbGlkJiMzNDssCiAgICAmIzM0O2JwZl9sb2dfYXR0cl9pbml0JiMzNDssCiAgICAmIzM0O2JwZl9sb2dfYXR0cl9jcmVhdGVfdmxvZyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGNoZWNrcyB0byBwcmV2ZW50IHVzZXJzcGFjZSBmcm9tIHBhc3NpbmcgQlBGX0xPR19LRVJORUwgYXMgYSBsb2cgbGV2ZWwgaW4gQlBGIHN5c2NhbGxzLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGFmZmVjdGluZyBCVEYgbG9hZGluZywgQlBGIHByb2dyYW0gbG9hZGluZywgYW5kIG1hcCBjcmVhdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI0VDE4OjQ0OjQxLjAzMjQyMTMwMloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI5NDU5NzA5NzA5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9TWVNDQUxMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnRmX3BhcnNlXCIsXG4gICAgXCJicGZfdmVyaWZpZXJfbG9nX2F0dHJfdmFsaWRcIixcbiAgICBcImJwZl9sb2dfYXR0cl9pbml0XCIsXG4gICAgXCJicGZfbG9nX2F0dHJfY3JlYXRlX3Zsb2dcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGNoZWNrcyB0byBwcmV2ZW50IHVzZXJzcGFjZSBmcm9tIHBhc3NpbmcgQlBGX0xPR19LRVJORUwgYXMgYSBsb2cgbGV2ZWwgaW4gQlBGIHN5c2NhbGxzLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGFmZmVjdGluZyBCVEYgbG9hZGluZywgQlBGIHByb2dyYW0gbG9hZGluZywgYW5kIG1hcCBjcmVhdGlvbi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjRUMTg6NDQ6NDEuMDMyNDI3NDgyWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MzgyMjc4NzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAwMTU4MGQ5ZThlMzIyNWQ3Njc3MzZhMjE3MDdhNmY3Yzg4NzgxODgzXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgSnVuIDI0IDE4OjQ0OjM5IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvYnRmLmMgYi9rZXJuZWwvYnBmL2J0Zi5jXFxuaW5kZXggMTVhZTdjNDNmNTk0YmUuLjRhMGMxODExMmFkMzEyIDEwMDY0NFxcbi0tLSBhL2tlcm5lbC9icGYvYnRmLmNcXG4rKysgYi9rZXJuZWwvYnBmL2J0Zi5jXFxuQEAgLTU5MTksNiArNTkxOSw5IEBAIHN0YXRpYyBzdHJ1Y3QgYnRmICpidGZfcGFyc2UoY29uc3QgdW5pb24gYnBmX2F0dHIgKmF0dHIsIGJwZnB0cl90IHVhdHRyLFxcbiBcXHRpZiAoYXR0ci1cXHUwMDNlYnRmX3NpemUgXFx1MDAzZSBCVEZfTUFYX1NJWkUpXFxuIFxcdFxcdHJldHVybiBFUlJfUFRSKC1FMkJJRyk7XFxuIFxcbitcXHRpZiAoYXR0cl9sb2ctXFx1MDAzZWxldmVsID09IEJQRl9MT0dfS0VSTkVMIFxcdTAwMjZcXHUwMDI2ICF1YXR0ci5pc19rZXJuZWwpXFxuK1xcdFxcdHJldHVybiBFUlJfUFRSKC1FSU5WQUwpO1xcbitcXG4gXFx0ZW52ID0ga3phbGxvY19vYmooKmVudiwgR0ZQX0tFUk5FTCB8IF9fR0ZQX05PV0FSTik7XFxuIFxcdGlmICghZW52KVxcbiBcXHRcXHRyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTtcXG5kaWZmIC0tZ2l0IGEva2VybmVsL2JwZi9sb2cuYyBiL2tlcm5lbC9icGYvbG9nLmNcXG5pbmRleCBiNzQwZmE3M2VlMjZkYS4uMjVhOWY4MzQwOTgwNzMgMTAwNjQ0XFxuLS0tIGEva2VybmVsL2JwZi9sb2cuY1xcbisrKyBiL2tlcm5lbC9icGYvbG9nLmNcXG5AQCAtMjEsNiArMjEsMTUgQEAgc3RhdGljIGJvb2wgYnBmX3ZlcmlmaWVyX2xvZ19hdHRyX3ZhbGlkKHUzMiBsb2dfbGV2ZWwsIGNoYXIgX191c2VyICpsb2dfYnVmLCB1MzJcXG4gXFx0LyogbG9nIGJ1ZiB3aXRob3V0IGxvZ19sZXZlbCBpcyBtZWFuaW5nbGVzcyAqL1xcbiBcXHRpZiAobG9nX2J1ZiBcXHUwMDI2XFx1MDAyNiBsb2dfbGV2ZWwgPT0gMClcXG4gXFx0XFx0cmV0dXJuIGZhbHNlO1xcbitcXG4rXFx0LyogQlBGX0xPR19LRVJORUwgaXMgYW4gZXhjbHVzaXZlIGludGVybmFsIG1vZGUsIG5vdCBhIGJpdCBmbGFnLlxcbitcXHQgKiBJdCBtdXN0IGJlIGNoZWNrZWQgdmlhIHN0cmljdCBlcXVhbGl0eSB0byBwcmV2ZW50IGl0IGZyb20gYmVpbmdcXG4rXFx0ICogY29tYmluZWQgd2l0aCB1c2Vyc3BhY2UgZmxhZ3MsIHdoaWNoIHdvdWxkIGNhdXNlIHRoZSB2ZXJpZmllclxcbitcXHQgKiB0byBmYWxsYmFjayB0byB1c2Vyc3BhY2UgbG9nZ2luZyBhbmQgY29weV90b191c2VyKCkgZmFpbHVyZXMuXFxuK1xcdCAqL1xcbitcXHRpZiAobG9nX2xldmVsID09IEJQRl9MT0dfS0VSTkVMKVxcbitcXHRcXHRyZXR1cm4gdHJ1ZTtcXG4rXFxuIFxcdGlmIChsb2dfbGV2ZWwgXFx1MDAyNiB+QlBGX0xPR19NQVNLKVxcbiBcXHRcXHRyZXR1cm4gZmFsc2U7XFxuIFxcdGlmIChsb2dfc2l6ZSBcXHUwMDNlIFVJTlRfTUFYIFxcdTAwM2VcXHUwMDNlIDIpXFxuQEAgLTgzMSw2ICs4NDAsMTEgQEAgaW50IGJwZl9sb2dfYXR0cl9pbml0KHN0cnVjdCBicGZfbG9nX2F0dHIgKmxvZywgdTY0IGxvZ19idWYsIHUzMiBsb2dfc2l6ZSwgdTMyIGxcXG4gXFx0Y2hhciBfX3VzZXIgKnVidWZfY29tbW9uID0gdTY0X3RvX3VzZXJfcHRyKGNvbW1vbi1cXHUwMDNlbG9nX2J1Zik7XFxuIFxcdGNoYXIgX191c2VyICp1YnVmID0gdTY0X3RvX3VzZXJfcHRyKGxvZ19idWYpO1xcbiBcXG4rXFx0aWYgKGNvbW1vbi1cXHUwMDNlbG9nX2xldmVsID09IEJQRl9MT0dfS0VSTkVMIFxcdTAwMjZcXHUwMDI2ICF1YXR0cl9jb21tb24uaXNfa2VybmVsKVxcbitcXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4rXFx0aWYgKGxvZ19sZXZlbCA9PSBCUEZfTE9HX0tFUk5FTCBcXHUwMDI2XFx1MDAyNiAhdWF0dHIuaXNfa2VybmVsKVxcbitcXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4rXFxuIFxcdGlmICghYnBmX3ZlcmlmaWVyX2xvZ19hdHRyX3ZhbGlkKGNvbW1vbi1cXHUwMDNlbG9nX2xldmVsLCB1YnVmX2NvbW1vbiwgY29tbW9uLVxcdTAwM2Vsb2dfc2l6ZSkgfHxcXG4gXFx0ICAgICFicGZfdmVyaWZpZXJfbG9nX2F0dHJfdmFsaWQobG9nX2xldmVsLCB1YnVmLCBsb2dfc2l6ZSkpXFxuIFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbkBAIC04NzMsNiArODg3LDkgQEAgc3RydWN0IGJwZl92ZXJpZmllcl9sb2cgKmJwZl9sb2dfYXR0cl9jcmVhdGVfdmxvZyhzdHJ1Y3QgYnBmX2xvZ19hdHRyICphdHRyX2xvZyxcXG4gXFx0aWYgKCFzaXplKVxcbiBcXHRcXHRyZXR1cm4gTlVMTDtcXG4gXFxuK1xcdGlmIChjb21tb24tXFx1MDAzZWxvZ19sZXZlbCA9PSBCUEZfTE9HX0tFUk5FTCBcXHUwMDI2XFx1MDAyNiAhdWF0dHIuaXNfa2VybmVsKVxcbitcXHRcXHRyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTtcXG4rXFxuIFxcdGxvZyA9IGt6YWxsb2Nfb2JqKCpsb2csIEdGUF9LRVJORUwpO1xcbiBcXHRpZiAoIWxvZylcXG4gXFx0XFx0cmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI0VDE4OjQ0OjQxLjQ3MTQ0ODk3MVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjkwMjA2NzMwMTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX1NZU0NBTExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJidGZfcGFyc2VcIixcbiAgICBcImJwZl92ZXJpZmllcl9sb2dfYXR0cl92YWxpZFwiLFxuICAgIFwiYnBmX2xvZ19hdHRyX2luaXRcIixcbiAgICBcImJwZl9sb2dfYXR0cl9jcmVhdGVfdmxvZ1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgY2hlY2tzIHRvIHByZXZlbnQgdXNlcnNwYWNlIGZyb20gcGFzc2luZyBCUEZfTE9HX0tFUk5FTCBhcyBhIGxvZyBsZXZlbCBpbiBCUEYgc3lzY2FsbHMsIHdoaWNoIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYWZmZWN0aW5nIEJURiBsb2FkaW5nLCBCUEYgcHJvZ3JhbSBsb2FkaW5nLCBhbmQgbWFwIGNyZWF0aW9uLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDAxNTgwZDllOGUzMjI1ZDc2NzczNmEyMTcwN2E2ZjdjODg3ODE4ODNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1biAyNCAxODo0NDozOSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvYnRmLmMgYi9rZXJuZWwvYnBmL2J0Zi5jXG5pbmRleCAxNWFlN2M0M2Y1OTRiZS4uNGEwYzE4MTEyYWQzMTIgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvYnBmL2J0Zi5jXG4rKysgYi9rZXJuZWwvYnBmL2J0Zi5jXG5AQCAtNTkxOSw2ICs1OTE5LDkgQEAgc3RhdGljIHN0cnVjdCBidGYgKmJ0Zl9wYXJzZShjb25zdCB1bmlvbiBicGZfYXR0ciAqYXR0ciwgYnBmcHRyX3QgdWF0dHIsXG4gXHRpZiAoYXR0ci1cdTAwM2VidGZfc2l6ZSBcdTAwM2UgQlRGX01BWF9TSVpFKVxuIFx0XHRyZXR1cm4gRVJSX1BUUigtRTJCSUcpO1xuIFxuK1x0aWYgKGF0dHJfbG9nLVx1MDAzZWxldmVsID09IEJQRl9MT0dfS0VSTkVMIFx1MDAyNlx1MDAyNiAhdWF0dHIuaXNfa2VybmVsKVxuK1x0XHRyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTtcbitcbiBcdGVudiA9IGt6YWxsb2Nfb2JqKCplbnYsIEdGUF9LRVJORUwgfCBfX0dGUF9OT1dBUk4pO1xuIFx0aWYgKCFlbnYpXG4gXHRcdHJldHVybiBFUlJfUFRSKC1FTk9NRU0pO1xuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvbG9nLmMgYi9rZXJuZWwvYnBmL2xvZy5jXG5pbmRleCBiNzQwZmE3M2VlMjZkYS4uMjVhOWY4MzQwOTgwNzMgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvYnBmL2xvZy5jXG4rKysgYi9rZXJuZWwvYnBmL2xvZy5jXG5AQCAtMjEsNiArMjEsMTUgQEAgc3RhdGljIGJvb2wgYnBmX3ZlcmlmaWVyX2xvZ19hdHRyX3ZhbGlkKHUzMiBsb2dfbGV2ZWwsIGNoYXIgX191c2VyICpsb2dfYnVmLCB1MzJcbiBcdC8qIGxvZyBidWYgd2l0aG91dCBsb2dfbGV2ZWwgaXMgbWVhbmluZ2xlc3MgKi9cbiBcdGlmIChsb2dfYnVmIFx1MDAyNlx1MDAyNiBsb2dfbGV2ZWwgPT0gMClcbiBcdFx0cmV0dXJuIGZhbHNlO1xuK1xuK1x0LyogQlBGX0xPR19LRVJORUwgaXMgYW4gZXhjbHVzaXZlIGludGVybmFsIG1vZGUsIG5vdCBhIGJpdCBmbGFnLlxuK1x0ICogSXQgbXVzdCBiZSBjaGVja2VkIHZpYSBzdHJpY3QgZXF1YWxpdHkgdG8gcHJldmVudCBpdCBmcm9tIGJlaW5nXG4rXHQgKiBjb21iaW5lZCB3aXRoIHVzZXJzcGFjZSBmbGFncywgd2hpY2ggd291bGQgY2F1c2UgdGhlIHZlcmlmaWVyXG4rXHQgKiB0byBmYWxsYmFjayB0byB1c2Vyc3BhY2UgbG9nZ2luZyBhbmQgY29weV90b191c2VyKCkgZmFpbHVyZXMuXG4rXHQgKi9cbitcdGlmIChsb2dfbGV2ZWwgPT0gQlBGX0xPR19LRVJORUwpXG4rXHRcdHJldHVybiB0cnVlO1xuK1xuIFx0aWYgKGxvZ19sZXZlbCBcdTAwMjYgfkJQRl9MT0dfTUFTSylcbiBcdFx0cmV0dXJuIGZhbHNlO1xuIFx0aWYgKGxvZ19zaXplIFx1MDAzZSBVSU5UX01BWCBcdTAwM2VcdTAwM2UgMilcbkBAIC04MzEsNiArODQwLDExIEBAIGludCBicGZfbG9nX2F0dHJfaW5pdChzdHJ1Y3QgYnBmX2xvZ19hdHRyICpsb2csIHU2NCBsb2dfYnVmLCB1MzIgbG9nX3NpemUsIHUzMiBsXG4gXHRjaGFyIF9fdXNlciAqdWJ1Zl9jb21tb24gPSB1NjRfdG9fdXNlcl9wdHIoY29tbW9uLVx1MDAzZWxvZ19idWYpO1xuIFx0Y2hhciBfX3VzZXIgKnVidWYgPSB1NjRfdG9fdXNlcl9wdHIobG9nX2J1Zik7XG4gXG4rXHRpZiAoY29tbW9uLVx1MDAzZWxvZ19sZXZlbCA9PSBCUEZfTE9HX0tFUk5FTCBcdTAwMjZcdTAwMjYgIXVhdHRyX2NvbW1vbi5pc19rZXJuZWwpXG4rXHRcdHJldHVybiAtRUlOVkFMO1xuK1x0aWYgKGxvZ19sZXZlbCA9PSBCUEZfTE9HX0tFUk5FTCBcdTAwMjZcdTAwMjYgIXVhdHRyLmlzX2tlcm5lbClcbitcdFx0cmV0dXJuIC1FSU5WQUw7XG4rXG4gXHRpZiAoIWJwZl92ZXJpZmllcl9sb2dfYXR0cl92YWxpZChjb21tb24tXHUwMDNlbG9nX2xldmVsLCB1YnVmX2NvbW1vbiwgY29tbW9uLVx1MDAzZWxvZ19zaXplKSB8fFxuIFx0ICAgICFicGZfdmVyaWZpZXJfbG9nX2F0dHJfdmFsaWQobG9nX2xldmVsLCB1YnVmLCBsb2dfc2l6ZSkpXG4gXHRcdHJldHVybiAtRUlOVkFMO1xuQEAgLTg3Myw2ICs4ODcsOSBAQCBzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqYnBmX2xvZ19hdHRyX2NyZWF0ZV92bG9nKHN0cnVjdCBicGZfbG9nX2F0dHIgKmF0dHJfbG9nLFxuIFx0aWYgKCFzaXplKVxuIFx0XHRyZXR1cm4gTlVMTDtcbiBcbitcdGlmIChjb21tb24tXHUwMDNlbG9nX2xldmVsID09IEJQRl9MT0dfS0VSTkVMIFx1MDAyNlx1MDAyNiAhdWF0dHIuaXNfa2VybmVsKVxuK1x0XHRyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTtcbitcbiBcdGxvZyA9IGt6YWxsb2Nfb2JqKCpsb2csIEdGUF9LRVJORUwpO1xuIFx0aWYgKCFsb2cpXG4gXHRcdHJldHVybiBFUlJfUFRSKC1FTk9NRU0pO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjRUMTg6NDQ6NDEuNDcxNDUwMzgyWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTE0NzY5MjA1MDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBCUEYgTG9nIExldmVsIFJlc3RyaWN0aW9uIFBhdGNoKipcblxuQWxyaWdodCwgbGV0J3MgYnJlYWsgZG93biB0aGlzIHBhdGNoLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0aGF0IHRoaXMgaXMgYSBzdHJhaWdodGZvcndhcmQgc2VjdXJpdHkgaGFyZGVuaW5nIG1lYXN1cmUgd2l0aGluIHRoZSBCUEYgc3Vic3lzdGVtLCB3aGljaCBpcyBnb29kLiBUaGUgY29yZSBvZiB0aGlzIHBhdGNoIHNlZW1zIHRvIGJlIHByZXZlbnRpbmcgdXNlcnNwYWNlIGZyb20gZGlyZWN0bHkgc3BlY2lmeWluZyBgQlBGX0xPR19LRVJORUxgIGFzIGEgbG9nIGxldmVsLiBUaGlzIHJlc3RyaWN0aW9uIG1ha2VzIHNlbnNlLiBLZXJuZWwtbGV2ZWwgbG9nZ2luZyBpcywgYnkgZGVmaW5pdGlvbiwgYW4gaW50ZXJuYWwgbWVjaGFuaXNtLiBFeHBvc2luZyBpdCB0byB1c2Vyc3BhY2Ugd291bGQgb3BlbiB1cCBwb3RlbnRpYWwgYXR0YWNrIHZlY3RvcnMsIGFsbG93aW5nIG1hbGljaW91cyBhY3RvcnMgdG8gZWl0aGVyIGZsb29kIHRoZSBsb2dzIHdpdGggZ2FyYmFnZSwgbGVhayBpbnRlcm5hbCBrZXJuZWwgaW5mb3JtYXRpb24sIG9yIHBvdGVudGlhbGx5IGludGVyZmVyZSB3aXRoIHRoZSB2ZXJpZmllcidzIGxvZ2dpbmcgcHJvY2Vzcy5cblxuVGhlIHBhdGNoIGl0c2VsZiBpcyBzaW1wbGU7IGl0IGludHJvZHVjZXMgY2hlY2tzIHdpdGhpbiBzZXZlcmFsIGtleSBmdW5jdGlvbnMuIFNwZWNpZmljYWxseSwgaXQncyBndWFyZGluZyBhZ2FpbnN0IHRoZSB1c2Ugb2YgYEJQRl9MT0dfS0VSTkVMYCBpbiBgYnRmX3BhcnNlYCwgYGJwZl92ZXJpZmllcl9sb2dfYXR0cl92YWxpZGAsIGBicGZfbG9nX2F0dHJfaW5pdGAsIGFuZCBgYnBmX2xvZ19hdHRyX2NyZWF0ZV92bG9nYC4gVGhlIHByZXNlbmNlIG9mIHRoZSBgdWF0dHIuaXNfa2VybmVsYCBjaGVjayBzaWduYWxzIHRoYXQgdGhpcyB3aWxsIG9ubHkgdGFrZSBlZmZlY3Qgb24gY2FsbHMgb3JpZ2luYXRpbmcgZnJvbSB1c2Vyc3BhY2UgYW5kIHdpbGwgYmUgaWdub3JlZCBpbiBjYWxscyBmcm9tIHdpdGhpbiB0aGUga2VybmVsLiBNYWtlcyBzZW5zZS5cblxuVGhlIGluY2x1c2lvbiBvZiBgYnRmX3BhcnNlYCBpbiB0aGlzIGxpc3QgaXMgYWxzbyBub3RhYmxlLiBJJ20gdGhpbmtpbmcgaGVyZSwgdGhhdCdzIHJlbGF0ZWQgdG8gQlRGIGxvYWRpbmcsIGFuZCBzcGVjaWZpY2FsbHksIHRoZSBwYXJzaW5nIG9mIEJURiBkYXRhIHRoYXQgcG90ZW50aWFsbHkgb3JpZ2luYXRlcyBmcm9tIHVzZXJzcGFjZS4gSXQncyBnb29kIHRvIHNlZSB0aGlzIGlzIGNvdmVyZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGxvZyBsZXZlbCBpc24ndCBtYW5pcHVsYXRlZCBkdXJpbmcgQlRGIGxvYWRpbmcsIHRodXMgcHJldmVudGluZyB0aGUgbGVha2FnZSBvZiBrZXJuZWwgaW50ZXJuYWxzLlxuXG5UaGUgZnVuY3Rpb25zIGBicGZfbG9nX2F0dHJfaW5pdGAgYW5kIGBicGZfbG9nX2F0dHJfY3JlYXRlX3Zsb2dgIGFyZSBkaXJlY3RseSBpbnZvbHZlZCBpbiB0aGUgQlBGIHByb2dyYW0gbG9hZGluZyBwcm9jZXNzLCBzbyBpdCdzIGNyaXRpY2FsIHRvIGxvY2sgZG93biB0aGUgbG9nIGxldmVsIHBhcmFtZXRlciBoZXJlIGFzIHdlbGwuIEknbSBub3cgbWFraW5nIGEgbWVudGFsIG5vdGUgdG8gY2hlY2sgdGhlIGV4YWN0IGNhbGwgcGF0aHMgb2YgdGhlc2UgZnVuY3Rpb25zIHRvIHVuZGVyc3RhbmQgd2hlcmUgdGhpcyByZXN0cmljdGlvbiB3aWxsIHRha2UgZWZmZWN0IGluIHByYWN0aWNlLlxuXG5CYXNlZCBvbiB0aGUgbmF0dXJlIG9mIHRoaXMgY2hhbmdlLCBJIHRoaW5rIGZ1enppbmcgaXMgYSB2ZXJ5IGFwcHJvcHJpYXRlIG5leHQgc3RlcC4gV2Ugc2hvdWxkIGJlIHNwZWNpZmljYWxseSB0YXJnZXRpbmcgdGhvc2UgZnVuY3Rpb25zIHRoYXQgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgcGF0Y2g6IGBidGZfcGFyc2VgLCBgYnBmX3ZlcmlmaWVyX2xvZ19hdHRyX3ZhbGlkYCwgYGJwZl9sb2dfYXR0cl9pbml0YCwgYW5kIGBicGZfbG9nX2F0dHJfY3JlYXRlX3Zsb2dgLiBXZSBzaG91bGQgZm9jdXMgb24gY2FzZXMgd2hlcmUgdXNlcnNwYWNlIHByb3ZpZGVzIGEgYEJQRl9MT0dfS0VSTkVMYCBsb2cgbGV2ZWwgYW5kIHNlZSBpZiB0aGVzZSBjaGVja3MgYXJlIHRyaWdnZXJlZCBhcyBleHBlY3RlZC4gV2Ugc2hvdWxkIGFsc28gaW52ZXN0aWdhdGUgY2FzZXMgd2hlcmUgdGhlIGxvZyBsZXZlbCBpcyBjb21iaW5lZCB3aXRoIG90aGVyIGZsYWdzIGluIHZhcmlvdXMgd2F5cyB0byBzZWUgaG93IHRoZSBjb2RlIHdpbGwgcmVzcG9uZC4gU2luY2UgdGhlc2UgYXJlIGxvdy1sZXZlbCBmdW5jdGlvbnMsIGEgY3Jhc2ggd291bGQgbGlrZWx5IGluZGljYXRlIGEgc2VyaW91cyBpc3N1ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjU2MCwiT3V0cHV0VG9rZW5zIjoyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwOTQsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxODo0NDo1Mi45NDgzNzM0MzdaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjA3NjcxNDA1OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicGZfbG9nX2F0dHJfaW5pdFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJpbmNsdWRlL2xpbnV4L2JwZl92ZXJpZmllci5oPTc2Nj1zdHJ1Y3QgYnBmX2xvZ19hdHRyIHtcXG4tLVxcbmluY2x1ZGUvbGludXgvYnBmX3ZlcmlmaWVyLmgtNzczLVxcbmluY2x1ZGUvbGludXgvYnBmX3ZlcmlmaWVyLmg6Nzc0OmludCBicGZfbG9nX2F0dHJfaW5pdChzdHJ1Y3QgYnBmX2xvZ19hdHRyICpsb2csIHU2NCBsb2dfYnVmLCB1MzIgbG9nX3NpemUsIHUzMiBsb2dfbGV2ZWwsXFxuaW5jbHVkZS9saW51eC9icGZfdmVyaWZpZXIuaC03NzUtXFx0XFx0ICAgICAgdTMyIG9mZnNldG9mX2xvZ190cnVlX3NpemUsIGJwZnB0cl90IHVhdHRyLCBzdHJ1Y3QgYnBmX2NvbW1vbl9hdHRyICpjb21tb24sXFxuLS1cXG5rZXJuZWwvYnBmL2xvZy5jPTgyMz12b2lkIHByaW50X2luc25fc3RhdGUoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgY29uc3Qgc3RydWN0IGJwZl92ZXJpZmllcl9zdGF0ZSAqdnN0YXRlLFxcbi0tXFxua2VybmVsL2JwZi9sb2cuYy04MzUtXFxua2VybmVsL2JwZi9sb2cuYzo4MzY6aW50IGJwZl9sb2dfYXR0cl9pbml0KHN0cnVjdCBicGZfbG9nX2F0dHIgKmxvZywgdTY0IGxvZ19idWYsIHUzMiBsb2dfc2l6ZSwgdTMyIGxvZ19sZXZlbCxcXG5rZXJuZWwvYnBmL2xvZy5jLTgzNy1cXHRcXHQgICAgICB1MzIgb2Zmc2V0b2ZfbG9nX3RydWVfc2l6ZSwgYnBmcHRyX3QgdWF0dHIsIHN0cnVjdCBicGZfY29tbW9uX2F0dHIgKmNvbW1vbixcXG4tLVxcbmtlcm5lbC9icGYvc3lzY2FsbC5jPTYzNTQ9c3RhdGljIGludCBfX3N5c19icGYoZW51bSBicGZfY21kIGNtZCwgYnBmcHRyX3QgdWF0dHIsIHVuc2lnbmVkIGludCBzaXplLFxcbi0tXFxua2VybmVsL2JwZi9zeXNjYWxsLmMtNjQxNC1cXHRcXHRcXHRvZmZzZXRvZl9sb2dfdHJ1ZV9zaXplID0gb2Zmc2V0b2YodW5pb24gYnBmX2F0dHIsIGxvZ190cnVlX3NpemUpO1xcbmtlcm5lbC9icGYvc3lzY2FsbC5jOjY0MTU6XFx0XFx0ZXJyID0gYnBmX2xvZ19hdHRyX2luaXQoXFx1MDAyNmF0dHJfbG9nLCBhdHRyLmxvZ19idWYsIGF0dHIubG9nX3NpemUsIGF0dHIubG9nX2xldmVsLFxcbmtlcm5lbC9icGYvc3lzY2FsbC5jLTY0MTYtXFx0XFx0XFx0XFx0XFx0b2Zmc2V0b2ZfbG9nX3RydWVfc2l6ZSwgdWF0dHIsIFxcdTAwMjZhdHRyX2NvbW1vbiwgdWF0dHJfY29tbW9uLFxcbi0tXFxua2VybmVsL2JwZi9zeXNjYWxsLmMtNjQ2NC1cXHRcXHRcXHRvZmZzZXRvZl9sb2dfdHJ1ZV9zaXplID0gb2Zmc2V0b2YodW5pb24gYnBmX2F0dHIsIGJ0Zl9sb2dfdHJ1ZV9zaXplKTtcXG5rZXJuZWwvYnBmL3N5c2NhbGwuYzo2NDY1OlxcdFxcdGVyciA9IGJwZl9sb2dfYXR0cl9pbml0KFxcdTAwMjZhdHRyX2xvZywgYXR0ci5idGZfbG9nX2J1ZiwgYXR0ci5idGZfbG9nX3NpemUsXFxua2VybmVsL2JwZi9zeXNjYWxsLmMtNjQ2Ni1cXHRcXHRcXHRcXHRcXHRhdHRyLmJ0Zl9sb2dfbGV2ZWwsIG9mZnNldG9mX2xvZ190cnVlX3NpemUsIHVhdHRyLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxODo0NDo1NS4wMjUwOTQwNTVaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTg3MDczMzUxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgc3VtbWFyeSwgYXMgdGhvdWdoIEknbSB0aGlua2luZyB0aHJvdWdoIHRoaXMgcHJvY2VzczpcblxuKipEaXZpbmcgRGVlcGVyIGludG8gYGJwZl9sb2dfYXR0cl9jcmVhdGVfdmxvZ2AqKlxuXG5Pa2F5LCBzbyB3ZSd2ZSBjb3ZlcmVkIGEgbG90IG9mIGdyb3VuZCwgYnV0IEkgdGhpbmsgaXQncyBjcnVjaWFsIHdlIGRvbid0IGp1c3Qgc3RvcCBoZXJlLiBXZSd2ZSBnb3QgYSBnb29kIGhhbmRsZSBvbiB0aGluZ3Mgb3ZlcmFsbCwgYnV0IEknbSB0aGlua2luZyB3ZSBuZWVkIHRvIHNwZWNpZmljYWxseSBjaGVjayBvdXQgYGJwZl9sb2dfYXR0cl9jcmVhdGVfdmxvZ2AuIFRoZXJlJ3MgbGlrZWx5IHNvbWUgaW1wb3J0YW50IGludGVyYWN0aW9uIGhhcHBlbmluZyB0aGVyZSB0aGF0IHdlIGhhdmVuJ3QgZXhwbG9yZWQgZGVlcGx5LCB0aGF0IHdlIG5lZWQgdG8gaW52ZXN0aWdhdGUgbW9yZSBjbG9zZWx5LiBNYXliZSBpdCdzIG5vdCBhIG1ham9yIGlzc3VlLCBidXQgZXhwZXJpZW5jZSB0ZWxscyBtZSB0byBjaGFzZSBkb3duIHRoZXNlIGxvb3NlIGVuZHMuIFRoaXMgbWlnaHQgYmUgd2hlcmUgc29tZSBzdWJ0bGUgZGV0YWlsIGNvbWVzIGludG8gcGxheS4gV2UgcmVhbGx5IGRvbid0IHdhbnQgdG8gbWlzcyBhbnl0aGluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDg1NSwiT3V0cHV0VG9rZW5zIjoyNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI0VDE4OjQ0OjU4LjIxMjE2OTMzNloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNDEzMjM4NzMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImJwZl9sb2dfYXR0cl9jcmVhdGVfdmxvZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJpbmNsdWRlL2xpbnV4L2JwZl92ZXJpZmllci5oPTc3ND1pbnQgYnBmX2xvZ19hdHRyX2luaXQoc3RydWN0IGJwZl9sb2dfYXR0ciAqbG9nLCB1NjQgbG9nX2J1ZiwgdTMyIGxvZ19zaXplLCB1MzIgbG9nX2xldmVsLFxcbi0tXFxuaW5jbHVkZS9saW51eC9icGZfdmVyaWZpZXIuaC03NzYtXFx0XFx0ICAgICAgYnBmcHRyX3QgdWF0dHJfY29tbW9uLCB1MzIgc2l6ZV9jb21tb24pO1xcbmluY2x1ZGUvbGludXgvYnBmX3ZlcmlmaWVyLmg6Nzc3OnN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpicGZfbG9nX2F0dHJfY3JlYXRlX3Zsb2coc3RydWN0IGJwZl9sb2dfYXR0ciAqYXR0cl9sb2csXFxuaW5jbHVkZS9saW51eC9icGZfdmVyaWZpZXIuaC03NzgtXFx0XFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgYnBmX2NvbW1vbl9hdHRyICpjb21tb24sIGJwZnB0cl90IHVhdHRyLFxcbi0tXFxua2VybmVsL2JwZi9sb2cuYz04MzY9aW50IGJwZl9sb2dfYXR0cl9pbml0KHN0cnVjdCBicGZfbG9nX2F0dHIgKmxvZywgdTY0IGxvZ19idWYsIHUzMiBsb2dfc2l6ZSwgdTMyIGxvZ19sZXZlbCxcXG4tLVxcbmtlcm5lbC9icGYvbG9nLmMtODc0LVxcbmtlcm5lbC9icGYvbG9nLmM6ODc1OnN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpicGZfbG9nX2F0dHJfY3JlYXRlX3Zsb2coc3RydWN0IGJwZl9sb2dfYXR0ciAqYXR0cl9sb2csXFxua2VybmVsL2JwZi9sb2cuYy04NzYtXFx0XFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgYnBmX2NvbW1vbl9hdHRyICpjb21tb24sIGJwZnB0cl90IHVhdHRyLFxcbi0tXFxua2VybmVsL2JwZi9zeXNjYWxsLmM9MTYyNj1zdGF0aWMgaW50IG1hcF9jcmVhdGUodW5pb24gYnBmX2F0dHIgKmF0dHIsIGJwZnB0cl90IHVhdHRyLCBzdHJ1Y3QgYnBmX2NvbW1vbl9hdHRyICphdHRyX2NvbW1vbixcXG4tLVxcbmtlcm5lbC9icGYvc3lzY2FsbC5jLTE2MzUtXFxua2VybmVsL2JwZi9zeXNjYWxsLmM6MTYzNjpcXHRsb2cgPSBicGZfbG9nX2F0dHJfY3JlYXRlX3Zsb2coXFx1MDAyNmF0dHJfbG9nLCBhdHRyX2NvbW1vbiwgdWF0dHJfY29tbW9uLCBzaXplX2NvbW1vbik7XFxua2VybmVsL2JwZi9zeXNjYWxsLmMtMTYzNy1cXHRpZiAoSVNfRVJSKGxvZykpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI0VDE4OjQ1OjAwLjYyNTQxNDc1NloiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyNDExNTA0NjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBCUEYgTG9nIExldmVsIFJlc3RyaWN0aW9uIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgbXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBgYnBmX2xvZ19hdHRyX2luaXRgIGFuZCBgYnBmX2xvZ19hdHRyX2NyZWF0ZV92bG9nYCBhcmUgY2FsbGVkIGZyb20gYF9fc3lzX2JwZmAgYW5kIGBtYXBfY3JlYXRlYC4gSXQgc2VlbXMgbGlrZSB0aGUgY29yZSBvZiB0aGUgY2hhbmdlIGlzIHByZXZlbnRpbmcgdXNlciBzcGFjZSBmcm9tIHNldHRpbmcgYEJQRl9MT0dfS0VSTkVMYCBhcyB0aGUgbG9nIGxldmVsLiBUaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSBhbmQgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucy5cblxuTXkgZm9jdXMgcmlnaHQgbm93IGlzIG9uIGEgZmV3IGtleSBmdW5jdGlvbnM6IGBidGZfcGFyc2VgLCBgYnBmX3ZlcmlmaWVyX2xvZ19hdHRyX3ZhbGlkYCwgYGJwZl9sb2dfYXR0cl9pbml0YCwgYW5kIGBicGZfbG9nX2F0dHJfY3JlYXRlX3Zsb2dgLiBJJ2xsIG5lZWQgdG8gZGlnIGludG8gaG93IHRoZXNlIGZ1bmN0aW9ucyBpbnRlcmFjdCB3aXRoIHRoZSBwcm9wb3NlZCByZXN0cmljdGlvbi5cblxuSSBhbHNvIG5lZWQgdG8gdmVyaWZ5IHRoZSByZXF1aXJlZCBjb25maWd1cmF0aW9ucy4gSSBzZWUgYEJQRl9TWVNDQUxMYCBsaXN0ZWQsIHdoaWNoIG1ha2VzIHNlbnNlLCBidXQgSSBuZWVkIHRvIGNvbmZpcm0gdGhhdCB0aGlzIGlzIHRoZSBvbmx5IHJlbGV2YW50IGNvbmZpZy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IGVuYWJsaW5nIG9yIGRpc2FibGluZyB0aGlzIGNvbmZpZyBwcmVjaXNlbHkgY2FwdHVyZXMgdGhlIGNoYW5nZS4gSXQncyBsaWtlbHksIGJ1dCBJIG5lZWQgdG8gY29uZmlybS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTU0NywiT3V0cHV0VG9rZW5zIjoyMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxODo0NTowNC44NjY1Njc1NjFaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTgyOTg4MjY4NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQlBGX1NZU0NBTExcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwia2VybmVsL2JwZi9LY29uZmlnPTI1PW1lbnUgXFxcIkJQRiBzdWJzeXN0ZW1cXFwiXFxua2VybmVsL2JwZi9LY29uZmlnLTI2LVxcbmtlcm5lbC9icGYvS2NvbmZpZzoyNzpjb25maWcgQlBGX1NZU0NBTExcXG5rZXJuZWwvYnBmL0tjb25maWctMjgtXFx0Ym9vbCBcXFwiRW5hYmxlIGJwZigpIHN5c3RlbSBjYWxsXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxODo0NTowNi42OTY0NTY3MDVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNzExOTY3MTI4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgYXNzdW1pbmcgSSdtIGFuIGV4cGVydDpcblxuKipBc3Nlc3NtZW50IGFuZCBBY3Rpb246IEJQRiBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gd2UncmUgdGFsa2luZyBhYm91dCBCUEYgYW5kIHN5c2NhbGwgaW50ZXJjZXB0aW9uLiBUaGUgY29yZSBpc3N1ZSwgYXMgSSB1bmRlcnN0YW5kIGl0LCBpcyBzZXR0aW5nIHVwIHRoZSBwcm9wZXIgY29uZmlndXJhdGlvbiBmb3IgdGhhdC4gVGhlIHRob3VnaHQgcHJvY2VzcyBpcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIGhlcmUuIEJhc2VkIG9uIHdoYXQgSSd2ZSBzZWVuLCBhbmQgdGhlIHNwZWNpZmljcyBvZiB0aGUgY3VycmVudCBwcm9ibGVtLCBjb25maXJtaW5nIHRoYXQgYEJQRl9TWVNDQUxMYCBpcyB0aGUgY29ycmVjdCBjb25maWd1cmF0aW9uIG9wdGlvbiBpcyB0aGUgZmlyc3QsIGVzc2VudGlhbCBzdGVwLiBJJ3ZlIHdvcmtlZCB3aXRoIEJQRiBlbm91Z2ggdG8ga25vdyB0aGUgbGFuZHNjYXBlOyB0aGlzIGlzbid0IGEgY29tcGxleCBkZWJ1Z2dpbmcgc2NlbmFyaW8uIEknbSBnb2luZyB3aXRoIHRoYXQgc2V0dGluZy4gQW5kIG5vdyB0aGF0IEkndmUgbmFpbGVkIGRvd24gdGhhdCBjcnVjaWFsIHNldHRpbmcsIEkgY2FuIG1vdmUgb24uIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhlIHByb2dyYW0gcmVmbGVjdHMgdGhhdCBjaGFuZ2UuIEkgbmVlZCB0byBzZXQgdGhlIHJlc3VsdHMuIExldCdzIGRvIHRoYXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjYwNTMsIk91dHB1dFRva2VucyI6MTI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjRUMTg6NDU6MTAuNDA4NDI1ODUzWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODM2ODk3MTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9TWVNDQUxMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnRmX3BhcnNlXCIsXG4gICAgXCJicGZfdmVyaWZpZXJfbG9nX2F0dHJfdmFsaWRcIixcbiAgICBcImJwZl9sb2dfYXR0cl9pbml0XCIsXG4gICAgXCJicGZfbG9nX2F0dHJfY3JlYXRlX3Zsb2dcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGNoZWNrcyB0byBwcmV2ZW50IHVzZXJzcGFjZSBmcm9tIHBhc3NpbmcgQlBGX0xPR19LRVJORUwgYXMgYSBsb2cgbGV2ZWwgaW4gQlBGIHN5c2NhbGxzLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGFmZmVjdGluZyBCVEYgbG9hZGluZywgQlBGIHByb2dyYW0gbG9hZGluZywgYW5kIG1hcCBjcmVhdGlvbi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJ0Zl9wYXJzZVwiLFxuICAgIFwiYnBmX3ZlcmlmaWVyX2xvZ19hdHRyX3ZhbGlkXCIsXG4gICAgXCJicGZfbG9nX2F0dHJfaW5pdFwiLFxuICAgIFwiYnBmX2xvZ19hdHRyX2NyZWF0ZV92bG9nXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBjaGVja3MgdG8gcHJldmVudCB1c2Vyc3BhY2UgZnJvbSBwYXNzaW5nIEJQRl9MT0dfS0VSTkVMIGFzIGEgbG9nIGxldmVsIGluIEJQRiBzeXNjYWxscywgd2hpY2ggaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBhZmZlY3RpbmcgQlRGIGxvYWRpbmcsIEJQRiBwcm9ncmFtIGxvYWRpbmcsIGFuZCBtYXAgY3JlYXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowjfrrw[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-24 18:37:10 +0000 UTC FinishedAt: 2026-06-24 18:45:11 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "502d801f0ab03e4f32f9a33d203154ce84887921", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "502d801f0ab03e4f32f9a33d203154ce84887921", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL" ], "series_id": "52f292da-4654-4dc9-bb46-5d3ed821723f" }, "track": "KASAN", "fuzz": { "focus": [ "bpf" ], "focus_symbols": [ "btf_parse", "bpf_verifier_log_attr_valid", "bpf_log_attr_init", "bpf_log_attr_create_vlog" ], "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+CgkJCTx0ZD4yMDI2LzA2LzI0IDE4OjQ0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YnRmX3BhcnNlJiMzNDssCiAgICAmIzM0O2JwZl92ZXJpZmllcl9sb2dfYXR0cl92YWxpZCYjMzQ7LAogICAgJiMzNDticGZfbG9nX2F0dHJfaW5pdCYjMzQ7LAogICAgJiMzNDticGZfbG9nX2F0dHJfY3JlYXRlX3Zsb2cmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBjaGVja3MgdG8gcHJldmVudCB1c2Vyc3BhY2UgZnJvbSBwYXNzaW5nIEJQRl9MT0dfS0VSTkVMIGFzIGEgbG9nIGxldmVsIGluIEJQRiBzeXNjYWxscywgd2hpY2ggaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBhZmZlY3RpbmcgQlRGIGxvYWRpbmcsIEJQRiBwcm9ncmFtIGxvYWRpbmcsIGFuZCBtYXAgY3JlYXRpb24uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMTg6NDQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAwMTU4MGQ5ZThlMzIyNWQ3Njc3MzZhMjE3MDdhNmY3Yzg4NzgxODgzXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdW4gMjQgMTg6NDQ6MzkgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEva2VybmVsL2JwZi9idGYuYyBiL2tlcm5lbC9icGYvYnRmLmNcbmluZGV4IDE1YWU3YzQzZjU5NGJlLi40YTBjMTgxMTJhZDMxMiAxMDA2NDRcbi0tLSBhL2tlcm5lbC9icGYvYnRmLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2tlcm5lbC9icGYvYnRmLmNcbkBAIC01OTE5LDYgJiM0Mzs1OTE5LDkgQEAgc3RhdGljIHN0cnVjdCBidGYgKmJ0Zl9wYXJzZShjb25zdCB1bmlvbiBicGZfYXR0ciAqYXR0ciwgYnBmcHRyX3QgdWF0dHIsXG4gXHRpZiAoYXR0ci1cdTAwM2VidGZfc2l6ZSBcdTAwM2UgQlRGX01BWF9TSVpFKVxuIFx0XHRyZXR1cm4gRVJSX1BUUigtRTJCSUcpO1xuIFxuJiM0MztcdGlmIChhdHRyX2xvZy1cdTAwM2VsZXZlbCA9PSBCUEZfTE9HX0tFUk5FTCBcdTAwMjZcdTAwMjYgIXVhdHRyLmlzX2tlcm5lbClcbiYjNDM7XHRcdHJldHVybiBFUlJfUFRSKC1FSU5WQUwpO1xuJiM0MztcbiBcdGVudiA9IGt6YWxsb2Nfb2JqKCplbnYsIEdGUF9LRVJORUwgfCBfX0dGUF9OT1dBUk4pO1xuIFx0aWYgKCFlbnYpXG4gXHRcdHJldHVybiBFUlJfUFRSKC1FTk9NRU0pO1xuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvbG9nLmMgYi9rZXJuZWwvYnBmL2xvZy5jXG5pbmRleCBiNzQwZmE3M2VlMjZkYS4uMjVhOWY4MzQwOTgwNzMgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvYnBmL2xvZy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvYnBmL2xvZy5jXG5AQCAtMjEsNiAmIzQzOzIxLDE1IEBAIHN0YXRpYyBib29sIGJwZl92ZXJpZmllcl9sb2dfYXR0cl92YWxpZCh1MzIgbG9nX2xldmVsLCBjaGFyIF9fdXNlciAqbG9nX2J1ZiwgdTMyXG4gXHQvKiBsb2cgYnVmIHdpdGhvdXQgbG9nX2xldmVsIGlzIG1lYW5pbmdsZXNzICovXG4gXHRpZiAobG9nX2J1ZiBcdTAwMjZcdTAwMjYgbG9nX2xldmVsID09IDApXG4gXHRcdHJldHVybiBmYWxzZTtcbiYjNDM7XG4mIzQzO1x0LyogQlBGX0xPR19LRVJORUwgaXMgYW4gZXhjbHVzaXZlIGludGVybmFsIG1vZGUsIG5vdCBhIGJpdCBmbGFnLlxuJiM0MztcdCAqIEl0IG11c3QgYmUgY2hlY2tlZCB2aWEgc3RyaWN0IGVxdWFsaXR5IHRvIHByZXZlbnQgaXQgZnJvbSBiZWluZ1xuJiM0MztcdCAqIGNvbWJpbmVkIHdpdGggdXNlcnNwYWNlIGZsYWdzLCB3aGljaCB3b3VsZCBjYXVzZSB0aGUgdmVyaWZpZXJcbiYjNDM7XHQgKiB0byBmYWxsYmFjayB0byB1c2Vyc3BhY2UgbG9nZ2luZyBhbmQgY29weV90b191c2VyKCkgZmFpbHVyZXMuXG4mIzQzO1x0ICovXG4mIzQzO1x0aWYgKGxvZ19sZXZlbCA9PSBCUEZfTE9HX0tFUk5FTClcbiYjNDM7XHRcdHJldHVybiB0cnVlO1xuJiM0MztcbiBcdGlmIChsb2dfbGV2ZWwgXHUwMDI2IH5CUEZfTE9HX01BU0spXG4gXHRcdHJldHVybiBmYWxzZTtcbiBcdGlmIChsb2dfc2l6ZSBcdTAwM2UgVUlOVF9NQVggXHUwMDNlXHUwMDNlIDIpXG5AQCAtODMxLDYgJiM0Mzs4NDAsMTEgQEAgaW50IGJwZl9sb2dfYXR0cl9pbml0KHN0cnVjdCBicGZfbG9nX2F0dHIgKmxvZywgdTY0IGxvZ19idWYsIHUzMiBsb2dfc2l6ZSwgdTMyIGxcbiBcdGNoYXIgX191c2VyICp1YnVmX2NvbW1vbiA9IHU2NF90b191c2VyX3B0cihjb21tb24tXHUwMDNlbG9nX2J1Zik7XG4gXHRjaGFyIF9fdXNlciAqdWJ1ZiA9IHU2NF90b191c2VyX3B0cihsb2dfYnVmKTtcbiBcbiYjNDM7XHRpZiAoY29tbW9uLVx1MDAzZWxvZ19sZXZlbCA9PSBCUEZfTE9HX0tFUk5FTCBcdTAwMjZcdTAwMjYgIXVhdHRyX2NvbW1vbi5pc19rZXJuZWwpXG4mIzQzO1x0XHRyZXR1cm4gLUVJTlZBTDtcbiYjNDM7XHRpZiAobG9nX2xldmVsID09IEJQRl9MT0dfS0VSTkVMIFx1MDAyNlx1MDAyNiAhdWF0dHIuaXNfa2VybmVsKVxuJiM0MztcdFx0cmV0dXJuIC1FSU5WQUw7XG4mIzQzO1xuIFx0aWYgKCFicGZfdmVyaWZpZXJfbG9nX2F0dHJfdmFsaWQoY29tbW9uLVx1MDAzZWxvZ19sZXZlbCwgdWJ1Zl9jb21tb24sIGNvbW1vbi1cdTAwM2Vsb2dfc2l6ZSkgfHxcbiBcdCAgICAhYnBmX3ZlcmlmaWVyX2xvZ19hdHRyX3ZhbGlkKGxvZ19sZXZlbCwgdWJ1ZiwgbG9nX3NpemUpKVxuIFx0XHRyZXR1cm4gLUVJTlZBTDtcbkBAIC04NzMsNiAmIzQzOzg4Nyw5IEBAIHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpicGZfbG9nX2F0dHJfY3JlYXRlX3Zsb2coc3RydWN0IGJwZl9sb2dfYXR0ciAqYXR0cl9sb2csXG4gXHRpZiAoIXNpemUpXG4gXHRcdHJldHVybiBOVUxMO1xuIFxuJiM0MztcdGlmIChjb21tb24tXHUwMDNlbG9nX2xldmVsID09IEJQRl9MT0dfS0VSTkVMIFx1MDAyNlx1MDAyNiAhdWF0dHIuaXNfa2VybmVsKVxuJiM0MztcdFx0cmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7XG4mIzQzO1xuIFx0bG9nID0ga3phbGxvY19vYmooKmxvZywgR0ZQX0tFUk5FTCk7XG4gXHRpZiAoIWxvZylcbiBcdFx0cmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMTg6NDQ8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlBGX1NZU0NBTEwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtidGZfcGFyc2UmIzM0OywKICAgICYjMzQ7YnBmX3ZlcmlmaWVyX2xvZ19hdHRyX3ZhbGlkJiMzNDssCiAgICAmIzM0O2JwZl9sb2dfYXR0cl9pbml0JiMzNDssCiAgICAmIzM0O2JwZl9sb2dfYXR0cl9jcmVhdGVfdmxvZyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGNoZWNrcyB0byBwcmV2ZW50IHVzZXJzcGFjZSBmcm9tIHBhc3NpbmcgQlBGX0xPR19LRVJORUwgYXMgYSBsb2cgbGV2ZWwgaW4gQlBGIHN5c2NhbGxzLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGFmZmVjdGluZyBCVEYgbG9hZGluZywgQlBGIHByb2dyYW0gbG9hZGluZywgYW5kIG1hcCBjcmVhdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMDE1ODBkOWU4ZTMyMjVkNzY3NzM2YTIxNzA3YTZmN2M4ODc4MTg4MwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgSnVuIDI0IDE4OjQ0OjM5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEva2VybmVsL2JwZi9idGYuYyBiL2tlcm5lbC9icGYvYnRmLmMKaW5kZXggMTVhZTdjNDNmNTk0YmUuLjRhMGMxODExMmFkMzEyIDEwMDY0NAotLS0gYS9rZXJuZWwvYnBmL2J0Zi5jCiYjNDM7JiM0MzsmIzQzOyBiL2tlcm5lbC9icGYvYnRmLmMKQEAgLTU5MTksNiAmIzQzOzU5MTksOSBAQCBzdGF0aWMgc3RydWN0IGJ0ZiAqYnRmX3BhcnNlKGNvbnN0IHVuaW9uIGJwZl9hdHRyICphdHRyLCBicGZwdHJfdCB1YXR0ciwKIAlpZiAoYXR0ci0mZ3Q7YnRmX3NpemUgJmd0OyBCVEZfTUFYX1NJWkUpCiAJCXJldHVybiBFUlJfUFRSKC1FMkJJRyk7CiAKJiM0MzsJaWYgKGF0dHJfbG9nLSZndDtsZXZlbCA9PSBCUEZfTE9HX0tFUk5FTCAmYW1wOyZhbXA7ICF1YXR0ci5pc19rZXJuZWwpCiYjNDM7CQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKJiM0MzsKIAllbnYgPSBremFsbG9jX29iaigqZW52LCBHRlBfS0VSTkVMIHwgX19HRlBfTk9XQVJOKTsKIAlpZiAoIWVudikKIAkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL2xvZy5jIGIva2VybmVsL2JwZi9sb2cuYwppbmRleCBiNzQwZmE3M2VlMjZkYS4uMjVhOWY4MzQwOTgwNzMgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9icGYvbG9nLmMKJiM0MzsmIzQzOyYjNDM7IGIva2VybmVsL2JwZi9sb2cuYwpAQCAtMjEsNiAmIzQzOzIxLDE1IEBAIHN0YXRpYyBib29sIGJwZl92ZXJpZmllcl9sb2dfYXR0cl92YWxpZCh1MzIgbG9nX2xldmVsLCBjaGFyIF9fdXNlciAqbG9nX2J1ZiwgdTMyCiAJLyogbG9nIGJ1ZiB3aXRob3V0IGxvZ19sZXZlbCBpcyBtZWFuaW5nbGVzcyAqLwogCWlmIChsb2dfYnVmICZhbXA7JmFtcDsgbG9nX2xldmVsID09IDApCiAJCXJldHVybiBmYWxzZTsKJiM0MzsKJiM0MzsJLyogQlBGX0xPR19LRVJORUwgaXMgYW4gZXhjbHVzaXZlIGludGVybmFsIG1vZGUsIG5vdCBhIGJpdCBmbGFnLgomIzQzOwkgKiBJdCBtdXN0IGJlIGNoZWNrZWQgdmlhIHN0cmljdCBlcXVhbGl0eSB0byBwcmV2ZW50IGl0IGZyb20gYmVpbmcKJiM0MzsJICogY29tYmluZWQgd2l0aCB1c2Vyc3BhY2UgZmxhZ3MsIHdoaWNoIHdvdWxkIGNhdXNlIHRoZSB2ZXJpZmllcgomIzQzOwkgKiB0byBmYWxsYmFjayB0byB1c2Vyc3BhY2UgbG9nZ2luZyBhbmQgY29weV90b191c2VyKCkgZmFpbHVyZXMuCiYjNDM7CSAqLwomIzQzOwlpZiAobG9nX2xldmVsID09IEJQRl9MT0dfS0VSTkVMKQomIzQzOwkJcmV0dXJuIHRydWU7CiYjNDM7CiAJaWYgKGxvZ19sZXZlbCAmYW1wOyB+QlBGX0xPR19NQVNLKQogCQlyZXR1cm4gZmFsc2U7CiAJaWYgKGxvZ19zaXplICZndDsgVUlOVF9NQVggJmd0OyZndDsgMikKQEAgLTgzMSw2ICYjNDM7ODQwLDExIEBAIGludCBicGZfbG9nX2F0dHJfaW5pdChzdHJ1Y3QgYnBmX2xvZ19hdHRyICpsb2csIHU2NCBsb2dfYnVmLCB1MzIgbG9nX3NpemUsIHUzMiBsCiAJY2hhciBfX3VzZXIgKnVidWZfY29tbW9uID0gdTY0X3RvX3VzZXJfcHRyKGNvbW1vbi0mZ3Q7bG9nX2J1Zik7CiAJY2hhciBfX3VzZXIgKnVidWYgPSB1NjRfdG9fdXNlcl9wdHIobG9nX2J1Zik7CiAKJiM0MzsJaWYgKGNvbW1vbi0mZ3Q7bG9nX2xldmVsID09IEJQRl9MT0dfS0VSTkVMICZhbXA7JmFtcDsgIXVhdHRyX2NvbW1vbi5pc19rZXJuZWwpCiYjNDM7CQlyZXR1cm4gLUVJTlZBTDsKJiM0MzsJaWYgKGxvZ19sZXZlbCA9PSBCUEZfTE9HX0tFUk5FTCAmYW1wOyZhbXA7ICF1YXR0ci5pc19rZXJuZWwpCiYjNDM7CQlyZXR1cm4gLUVJTlZBTDsKJiM0MzsKIAlpZiAoIWJwZl92ZXJpZmllcl9sb2dfYXR0cl92YWxpZChjb21tb24tJmd0O2xvZ19sZXZlbCwgdWJ1Zl9jb21tb24sIGNvbW1vbi0mZ3Q7bG9nX3NpemUpIHx8CiAJICAgICFicGZfdmVyaWZpZXJfbG9nX2F0dHJfdmFsaWQobG9nX2xldmVsLCB1YnVmLCBsb2dfc2l6ZSkpCiAJCXJldHVybiAtRUlOVkFMOwpAQCAtODczLDYgJiM0Mzs4ODcsOSBAQCBzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqYnBmX2xvZ19hdHRyX2NyZWF0ZV92bG9nKHN0cnVjdCBicGZfbG9nX2F0dHIgKmF0dHJfbG9nLAogCWlmICghc2l6ZSkKIAkJcmV0dXJuIE5VTEw7CiAKJiM0MzsJaWYgKGNvbW1vbi0mZ3Q7bG9nX2xldmVsID09IEJQRl9MT0dfS0VSTkVMICZhbXA7JmFtcDsgIXVhdHRyLmlzX2tlcm5lbCkKJiM0MzsJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwomIzQzOwogCWxvZyA9IGt6YWxsb2Nfb2JqKCpsb2csIEdGUF9LRVJORUwpOwogCWlmICghbG9nKQogCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMTg6NDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjU2MAoJCQkJCQkJb3V0cHV0OiAyMgoJCQkJCQkJdGhvdWdodHM6IDEwOTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBCUEYgTG9nIExldmVsIFJlc3RyaWN0aW9uIFBhdGNoKioKCkFscmlnaHQsIGxldCYjMzk7cyBicmVhayBkb3duIHRoaXMgcGF0Y2guIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRoYXQgdGhpcyBpcyBhIHN0cmFpZ2h0Zm9yd2FyZCBzZWN1cml0eSBoYXJkZW5pbmcgbWVhc3VyZSB3aXRoaW4gdGhlIEJQRiBzdWJzeXN0ZW0sIHdoaWNoIGlzIGdvb2QuIFRoZSBjb3JlIG9mIHRoaXMgcGF0Y2ggc2VlbXMgdG8gYmUgcHJldmVudGluZyB1c2Vyc3BhY2UgZnJvbSBkaXJlY3RseSBzcGVjaWZ5aW5nIGBCUEZfTE9HX0tFUk5FTGAgYXMgYSBsb2cgbGV2ZWwuIFRoaXMgcmVzdHJpY3Rpb24gbWFrZXMgc2Vuc2UuIEtlcm5lbC1sZXZlbCBsb2dnaW5nIGlzLCBieSBkZWZpbml0aW9uLCBhbiBpbnRlcm5hbCBtZWNoYW5pc20uIEV4cG9zaW5nIGl0IHRvIHVzZXJzcGFjZSB3b3VsZCBvcGVuIHVwIHBvdGVudGlhbCBhdHRhY2sgdmVjdG9ycywgYWxsb3dpbmcgbWFsaWNpb3VzIGFjdG9ycyB0byBlaXRoZXIgZmxvb2QgdGhlIGxvZ3Mgd2l0aCBnYXJiYWdlLCBsZWFrIGludGVybmFsIGtlcm5lbCBpbmZvcm1hdGlvbiwgb3IgcG90ZW50aWFsbHkgaW50ZXJmZXJlIHdpdGggdGhlIHZlcmlmaWVyJiMzOTtzIGxvZ2dpbmcgcHJvY2Vzcy4KClRoZSBwYXRjaCBpdHNlbGYgaXMgc2ltcGxlOyBpdCBpbnRyb2R1Y2VzIGNoZWNrcyB3aXRoaW4gc2V2ZXJhbCBrZXkgZnVuY3Rpb25zLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIGd1YXJkaW5nIGFnYWluc3QgdGhlIHVzZSBvZiBgQlBGX0xPR19LRVJORUxgIGluIGBidGZfcGFyc2VgLCBgYnBmX3ZlcmlmaWVyX2xvZ19hdHRyX3ZhbGlkYCwgYGJwZl9sb2dfYXR0cl9pbml0YCwgYW5kIGBicGZfbG9nX2F0dHJfY3JlYXRlX3Zsb2dgLiBUaGUgcHJlc2VuY2Ugb2YgdGhlIGB1YXR0ci5pc19rZXJuZWxgIGNoZWNrIHNpZ25hbHMgdGhhdCB0aGlzIHdpbGwgb25seSB0YWtlIGVmZmVjdCBvbiBjYWxscyBvcmlnaW5hdGluZyBmcm9tIHVzZXJzcGFjZSBhbmQgd2lsbCBiZSBpZ25vcmVkIGluIGNhbGxzIGZyb20gd2l0aGluIHRoZSBrZXJuZWwuIE1ha2VzIHNlbnNlLgoKVGhlIGluY2x1c2lvbiBvZiBgYnRmX3BhcnNlYCBpbiB0aGlzIGxpc3QgaXMgYWxzbyBub3RhYmxlLiBJJiMzOTttIHRoaW5raW5nIGhlcmUsIHRoYXQmIzM5O3MgcmVsYXRlZCB0byBCVEYgbG9hZGluZywgYW5kIHNwZWNpZmljYWxseSwgdGhlIHBhcnNpbmcgb2YgQlRGIGRhdGEgdGhhdCBwb3RlbnRpYWxseSBvcmlnaW5hdGVzIGZyb20gdXNlcnNwYWNlLiBJdCYjMzk7cyBnb29kIHRvIHNlZSB0aGlzIGlzIGNvdmVyZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGxvZyBsZXZlbCBpc24mIzM5O3QgbWFuaXB1bGF0ZWQgZHVyaW5nIEJURiBsb2FkaW5nLCB0aHVzIHByZXZlbnRpbmcgdGhlIGxlYWthZ2Ugb2Yga2VybmVsIGludGVybmFscy4KClRoZSBmdW5jdGlvbnMgYGJwZl9sb2dfYXR0cl9pbml0YCBhbmQgYGJwZl9sb2dfYXR0cl9jcmVhdGVfdmxvZ2AgYXJlIGRpcmVjdGx5IGludm9sdmVkIGluIHRoZSBCUEYgcHJvZ3JhbSBsb2FkaW5nIHByb2Nlc3MsIHNvIGl0JiMzOTtzIGNyaXRpY2FsIHRvIGxvY2sgZG93biB0aGUgbG9nIGxldmVsIHBhcmFtZXRlciBoZXJlIGFzIHdlbGwuIEkmIzM5O20gbm93IG1ha2luZyBhIG1lbnRhbCBub3RlIHRvIGNoZWNrIHRoZSBleGFjdCBjYWxsIHBhdGhzIG9mIHRoZXNlIGZ1bmN0aW9ucyB0byB1bmRlcnN0YW5kIHdoZXJlIHRoaXMgcmVzdHJpY3Rpb24gd2lsbCB0YWtlIGVmZmVjdCBpbiBwcmFjdGljZS4KCkJhc2VkIG9uIHRoZSBuYXR1cmUgb2YgdGhpcyBjaGFuZ2UsIEkgdGhpbmsgZnV6emluZyBpcyBhIHZlcnkgYXBwcm9wcmlhdGUgbmV4dCBzdGVwLiBXZSBzaG91bGQgYmUgc3BlY2lmaWNhbGx5IHRhcmdldGluZyB0aG9zZSBmdW5jdGlvbnMgdGhhdCBhcmUgYWZmZWN0ZWQgYnkgdGhpcyBwYXRjaDogYGJ0Zl9wYXJzZWAsIGBicGZfdmVyaWZpZXJfbG9nX2F0dHJfdmFsaWRgLCBgYnBmX2xvZ19hdHRyX2luaXRgLCBhbmQgYGJwZl9sb2dfYXR0cl9jcmVhdGVfdmxvZ2AuIFdlIHNob3VsZCBmb2N1cyBvbiBjYXNlcyB3aGVyZSB1c2Vyc3BhY2UgcHJvdmlkZXMgYSBgQlBGX0xPR19LRVJORUxgIGxvZyBsZXZlbCBhbmQgc2VlIGlmIHRoZXNlIGNoZWNrcyBhcmUgdHJpZ2dlcmVkIGFzIGV4cGVjdGVkLiBXZSBzaG91bGQgYWxzbyBpbnZlc3RpZ2F0ZSBjYXNlcyB3aGVyZSB0aGUgbG9nIGxldmVsIGlzIGNvbWJpbmVkIHdpdGggb3RoZXIgZmxhZ3MgaW4gdmFyaW91cyB3YXlzIHRvIHNlZSBob3cgdGhlIGNvZGUgd2lsbCByZXNwb25kLiBTaW5jZSB0aGVzZSBhcmUgbG93LWxldmVsIGZ1bmN0aW9ucywgYSBjcmFzaCB3b3VsZCBsaWtlbHkgaW5kaWNhdGUgYSBzZXJpb3VzIGlzc3VlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI0IDE4OjQ0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JwZl9sb2dfYXR0cl9pbml0JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2luY2x1ZGUvbGludXgvYnBmX3ZlcmlmaWVyLmg9NzY2PXN0cnVjdCBicGZfbG9nX2F0dHIge1xuLS1cbmluY2x1ZGUvbGludXgvYnBmX3ZlcmlmaWVyLmgtNzczLVxuaW5jbHVkZS9saW51eC9icGZfdmVyaWZpZXIuaDo3NzQ6aW50IGJwZl9sb2dfYXR0cl9pbml0KHN0cnVjdCBicGZfbG9nX2F0dHIgKmxvZywgdTY0IGxvZ19idWYsIHUzMiBsb2dfc2l6ZSwgdTMyIGxvZ19sZXZlbCxcbmluY2x1ZGUvbGludXgvYnBmX3ZlcmlmaWVyLmgtNzc1LVx0XHQgICAgICB1MzIgb2Zmc2V0b2ZfbG9nX3RydWVfc2l6ZSwgYnBmcHRyX3QgdWF0dHIsIHN0cnVjdCBicGZfY29tbW9uX2F0dHIgKmNvbW1vbixcbi0tXG5rZXJuZWwvYnBmL2xvZy5jPTgyMz12b2lkIHByaW50X2luc25fc3RhdGUoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgY29uc3Qgc3RydWN0IGJwZl92ZXJpZmllcl9zdGF0ZSAqdnN0YXRlLFxuLS1cbmtlcm5lbC9icGYvbG9nLmMtODM1LVxua2VybmVsL2JwZi9sb2cuYzo4MzY6aW50IGJwZl9sb2dfYXR0cl9pbml0KHN0cnVjdCBicGZfbG9nX2F0dHIgKmxvZywgdTY0IGxvZ19idWYsIHUzMiBsb2dfc2l6ZSwgdTMyIGxvZ19sZXZlbCxcbmtlcm5lbC9icGYvbG9nLmMtODM3LVx0XHQgICAgICB1MzIgb2Zmc2V0b2ZfbG9nX3RydWVfc2l6ZSwgYnBmcHRyX3QgdWF0dHIsIHN0cnVjdCBicGZfY29tbW9uX2F0dHIgKmNvbW1vbixcbi0tXG5rZXJuZWwvYnBmL3N5c2NhbGwuYz02MzU0PXN0YXRpYyBpbnQgX19zeXNfYnBmKGVudW0gYnBmX2NtZCBjbWQsIGJwZnB0cl90IHVhdHRyLCB1bnNpZ25lZCBpbnQgc2l6ZSxcbi0tXG5rZXJuZWwvYnBmL3N5c2NhbGwuYy02NDE0LVx0XHRcdG9mZnNldG9mX2xvZ190cnVlX3NpemUgPSBvZmZzZXRvZih1bmlvbiBicGZfYXR0ciwgbG9nX3RydWVfc2l6ZSk7XG5rZXJuZWwvYnBmL3N5c2NhbGwuYzo2NDE1Olx0XHRlcnIgPSBicGZfbG9nX2F0dHJfaW5pdChcdTAwMjZhdHRyX2xvZywgYXR0ci5sb2dfYnVmLCBhdHRyLmxvZ19zaXplLCBhdHRyLmxvZ19sZXZlbCxcbmtlcm5lbC9icGYvc3lzY2FsbC5jLTY0MTYtXHRcdFx0XHRcdG9mZnNldG9mX2xvZ190cnVlX3NpemUsIHVhdHRyLCBcdTAwMjZhdHRyX2NvbW1vbiwgdWF0dHJfY29tbW9uLFxuLS1cbmtlcm5lbC9icGYvc3lzY2FsbC5jLTY0NjQtXHRcdFx0b2Zmc2V0b2ZfbG9nX3RydWVfc2l6ZSA9IG9mZnNldG9mKHVuaW9uIGJwZl9hdHRyLCBidGZfbG9nX3RydWVfc2l6ZSk7XG5rZXJuZWwvYnBmL3N5c2NhbGwuYzo2NDY1Olx0XHRlcnIgPSBicGZfbG9nX2F0dHJfaW5pdChcdTAwMjZhdHRyX2xvZywgYXR0ci5idGZfbG9nX2J1ZiwgYXR0ci5idGZfbG9nX3NpemUsXG5rZXJuZWwvYnBmL3N5c2NhbGwuYy02NDY2LVx0XHRcdFx0XHRhdHRyLmJ0Zl9sb2dfbGV2ZWwsIG9mZnNldG9mX2xvZ190cnVlX3NpemUsIHVhdHRyLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI0IDE4OjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ4NTUKCQkJCQkJCW91dHB1dDogMjUKCQkJCQkJCXRob3VnaHRzOiAxOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBzdW1tYXJ5LCBhcyB0aG91Z2ggSSYjMzk7bSB0aGlua2luZyB0aHJvdWdoIHRoaXMgcHJvY2VzczoKCioqRGl2aW5nIERlZXBlciBpbnRvIGBicGZfbG9nX2F0dHJfY3JlYXRlX3Zsb2dgKioKCk9rYXksIHNvIHdlJiMzOTt2ZSBjb3ZlcmVkIGEgbG90IG9mIGdyb3VuZCwgYnV0IEkgdGhpbmsgaXQmIzM5O3MgY3J1Y2lhbCB3ZSBkb24mIzM5O3QganVzdCBzdG9wIGhlcmUuIFdlJiMzOTt2ZSBnb3QgYSBnb29kIGhhbmRsZSBvbiB0aGluZ3Mgb3ZlcmFsbCwgYnV0IEkmIzM5O20gdGhpbmtpbmcgd2UgbmVlZCB0byBzcGVjaWZpY2FsbHkgY2hlY2sgb3V0IGBicGZfbG9nX2F0dHJfY3JlYXRlX3Zsb2dgLiBUaGVyZSYjMzk7cyBsaWtlbHkgc29tZSBpbXBvcnRhbnQgaW50ZXJhY3Rpb24gaGFwcGVuaW5nIHRoZXJlIHRoYXQgd2UgaGF2ZW4mIzM5O3QgZXhwbG9yZWQgZGVlcGx5LCB0aGF0IHdlIG5lZWQgdG8gaW52ZXN0aWdhdGUgbW9yZSBjbG9zZWx5LiBNYXliZSBpdCYjMzk7cyBub3QgYSBtYWpvciBpc3N1ZSwgYnV0IGV4cGVyaWVuY2UgdGVsbHMgbWUgdG8gY2hhc2UgZG93biB0aGVzZSBsb29zZSBlbmRzLiBUaGlzIG1pZ2h0IGJlIHdoZXJlIHNvbWUgc3VidGxlIGRldGFpbCBjb21lcyBpbnRvIHBsYXkuIFdlIHJlYWxseSBkb24mIzM5O3Qgd2FudCB0byBtaXNzIGFueXRoaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI0IDE4OjQ0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JwZl9sb2dfYXR0cl9jcmVhdGVfdmxvZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL2xpbnV4L2JwZl92ZXJpZmllci5oPTc3ND1pbnQgYnBmX2xvZ19hdHRyX2luaXQoc3RydWN0IGJwZl9sb2dfYXR0ciAqbG9nLCB1NjQgbG9nX2J1ZiwgdTMyIGxvZ19zaXplLCB1MzIgbG9nX2xldmVsLFxuLS1cbmluY2x1ZGUvbGludXgvYnBmX3ZlcmlmaWVyLmgtNzc2LVx0XHQgICAgICBicGZwdHJfdCB1YXR0cl9jb21tb24sIHUzMiBzaXplX2NvbW1vbik7XG5pbmNsdWRlL2xpbnV4L2JwZl92ZXJpZmllci5oOjc3NzpzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqYnBmX2xvZ19hdHRyX2NyZWF0ZV92bG9nKHN0cnVjdCBicGZfbG9nX2F0dHIgKmF0dHJfbG9nLFxuaW5jbHVkZS9saW51eC9icGZfdmVyaWZpZXIuaC03NzgtXHRcdFx0XHRcdFx0ICBzdHJ1Y3QgYnBmX2NvbW1vbl9hdHRyICpjb21tb24sIGJwZnB0cl90IHVhdHRyLFxuLS1cbmtlcm5lbC9icGYvbG9nLmM9ODM2PWludCBicGZfbG9nX2F0dHJfaW5pdChzdHJ1Y3QgYnBmX2xvZ19hdHRyICpsb2csIHU2NCBsb2dfYnVmLCB1MzIgbG9nX3NpemUsIHUzMiBsb2dfbGV2ZWwsXG4tLVxua2VybmVsL2JwZi9sb2cuYy04NzQtXG5rZXJuZWwvYnBmL2xvZy5jOjg3NTpzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqYnBmX2xvZ19hdHRyX2NyZWF0ZV92bG9nKHN0cnVjdCBicGZfbG9nX2F0dHIgKmF0dHJfbG9nLFxua2VybmVsL2JwZi9sb2cuYy04NzYtXHRcdFx0XHRcdFx0ICBzdHJ1Y3QgYnBmX2NvbW1vbl9hdHRyICpjb21tb24sIGJwZnB0cl90IHVhdHRyLFxuLS1cbmtlcm5lbC9icGYvc3lzY2FsbC5jPTE2MjY9c3RhdGljIGludCBtYXBfY3JlYXRlKHVuaW9uIGJwZl9hdHRyICphdHRyLCBicGZwdHJfdCB1YXR0ciwgc3RydWN0IGJwZl9jb21tb25fYXR0ciAqYXR0cl9jb21tb24sXG4tLVxua2VybmVsL2JwZi9zeXNjYWxsLmMtMTYzNS1cbmtlcm5lbC9icGYvc3lzY2FsbC5jOjE2MzY6XHRsb2cgPSBicGZfbG9nX2F0dHJfY3JlYXRlX3Zsb2coXHUwMDI2YXR0cl9sb2csIGF0dHJfY29tbW9uLCB1YXR0cl9jb21tb24sIHNpemVfY29tbW9uKTtcbmtlcm5lbC9icGYvc3lzY2FsbC5jLTE2MzctXHRpZiAoSVNfRVJSKGxvZykpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMTg6NDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTU0NwoJCQkJCQkJb3V0cHV0OiAyMQoJCQkJCQkJdGhvdWdodHM6IDE1NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEJQRiBMb2cgTGV2ZWwgUmVzdHJpY3Rpb24gUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcywgYGJwZl9sb2dfYXR0cl9pbml0YCBhbmQgYGJwZl9sb2dfYXR0cl9jcmVhdGVfdmxvZ2AgYXJlIGNhbGxlZCBmcm9tIGBfX3N5c19icGZgIGFuZCBgbWFwX2NyZWF0ZWAuIEl0IHNlZW1zIGxpa2UgdGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBpcyBwcmV2ZW50aW5nIHVzZXIgc3BhY2UgZnJvbSBzZXR0aW5nIGBCUEZfTE9HX0tFUk5FTGAgYXMgdGhlIGxvZyBsZXZlbC4gVGhpcyBpcyBkZWZpbml0ZWx5IGEgZnVuY3Rpb25hbCBjaGFuZ2UgYW5kIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbnMuCgpNeSBmb2N1cyByaWdodCBub3cgaXMgb24gYSBmZXcga2V5IGZ1bmN0aW9uczogYGJ0Zl9wYXJzZWAsIGBicGZfdmVyaWZpZXJfbG9nX2F0dHJfdmFsaWRgLCBgYnBmX2xvZ19hdHRyX2luaXRgLCBhbmQgYGJwZl9sb2dfYXR0cl9jcmVhdGVfdmxvZ2AuIEkmIzM5O2xsIG5lZWQgdG8gZGlnIGludG8gaG93IHRoZXNlIGZ1bmN0aW9ucyBpbnRlcmFjdCB3aXRoIHRoZSBwcm9wb3NlZCByZXN0cmljdGlvbi4KCkkgYWxzbyBuZWVkIHRvIHZlcmlmeSB0aGUgcmVxdWlyZWQgY29uZmlndXJhdGlvbnMuIEkgc2VlIGBCUEZfU1lTQ0FMTGAgbGlzdGVkLCB3aGljaCBtYWtlcyBzZW5zZSwgYnV0IEkgbmVlZCB0byBjb25maXJtIHRoYXQgdGhpcyBpcyB0aGUgb25seSByZWxldmFudCBjb25maWcuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCBlbmFibGluZyBvciBkaXNhYmxpbmcgdGhpcyBjb25maWcgcHJlY2lzZWx5IGNhcHR1cmVzIHRoZSBjaGFuZ2UuIEl0JiMzOTtzIGxpa2VseSwgYnV0IEkgbmVlZCB0byBjb25maXJtLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI0IDE4OjQ1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBCUEZfU1lTQ0FMTCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtrZXJuZWwvYnBmL0tjb25maWc9MjU9bWVudSBcJiMzNDtCUEYgc3Vic3lzdGVtXCYjMzQ7XG5rZXJuZWwvYnBmL0tjb25maWctMjYtXG5rZXJuZWwvYnBmL0tjb25maWc6Mjc6Y29uZmlnIEJQRl9TWVNDQUxMXG5rZXJuZWwvYnBmL0tjb25maWctMjgtXHRib29sIFwmIzM0O0VuYWJsZSBicGYoKSBzeXN0ZW0gY2FsbFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI0IDE4OjQ1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYwNTMKCQkJCQkJCW91dHB1dDogMTI4CgkJCQkJCQl0aG91Z2h0czogMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgYXNzdW1pbmcgSSYjMzk7bSBhbiBleHBlcnQ6CgoqKkFzc2Vzc21lbnQgYW5kIEFjdGlvbjogQlBGIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gd2UmIzM5O3JlIHRhbGtpbmcgYWJvdXQgQlBGIGFuZCBzeXNjYWxsIGludGVyY2VwdGlvbi4gVGhlIGNvcmUgaXNzdWUsIGFzIEkgdW5kZXJzdGFuZCBpdCwgaXMgc2V0dGluZyB1cCB0aGUgcHJvcGVyIGNvbmZpZ3VyYXRpb24gZm9yIHRoYXQuIFRoZSB0aG91Z2h0IHByb2Nlc3MgaXMgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCBoZXJlLiBCYXNlZCBvbiB3aGF0IEkmIzM5O3ZlIHNlZW4sIGFuZCB0aGUgc3BlY2lmaWNzIG9mIHRoZSBjdXJyZW50IHByb2JsZW0sIGNvbmZpcm1pbmcgdGhhdCBgQlBGX1NZU0NBTExgIGlzIHRoZSBjb3JyZWN0IGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIHRoZSBmaXJzdCwgZXNzZW50aWFsIHN0ZXAuIEkmIzM5O3ZlIHdvcmtlZCB3aXRoIEJQRiBlbm91Z2ggdG8ga25vdyB0aGUgbGFuZHNjYXBlOyB0aGlzIGlzbiYjMzk7dCBhIGNvbXBsZXggZGVidWdnaW5nIHNjZW5hcmlvLiBJJiMzOTttIGdvaW5nIHdpdGggdGhhdCBzZXR0aW5nLiBBbmQgbm93IHRoYXQgSSYjMzk7dmUgbmFpbGVkIGRvd24gdGhhdCBjcnVjaWFsIHNldHRpbmcsIEkgY2FuIG1vdmUgb24uIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhlIHByb2dyYW0gcmVmbGVjdHMgdGhhdCBjaGFuZ2UuIEkgbmVlZCB0byBzZXQgdGhlIHJlc3VsdHMuIExldCYjMzk7cyBkbyB0aGF0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNCAxODo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlBGX1NZU0NBTEwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtidGZfcGFyc2UmIzM0OywKICAgICYjMzQ7YnBmX3ZlcmlmaWVyX2xvZ19hdHRyX3ZhbGlkJiMzNDssCiAgICAmIzM0O2JwZl9sb2dfYXR0cl9pbml0JiMzNDssCiAgICAmIzM0O2JwZl9sb2dfYXR0cl9jcmVhdGVfdmxvZyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGNoZWNrcyB0byBwcmV2ZW50IHVzZXJzcGFjZSBmcm9tIHBhc3NpbmcgQlBGX0xPR19LRVJORUwgYXMgYSBsb2cgbGV2ZWwgaW4gQlBGIHN5c2NhbGxzLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGFmZmVjdGluZyBCVEYgbG9hZGluZywgQlBGIHByb2dyYW0gbG9hZGluZywgYW5kIG1hcCBjcmVhdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlBGX1NZU0NBTEwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtidGZfcGFyc2UmIzM0OywKICAgICYjMzQ7YnBmX3ZlcmlmaWVyX2xvZ19hdHRyX3ZhbGlkJiMzNDssCiAgICAmIzM0O2JwZl9sb2dfYXR0cl9pbml0JiMzNDssCiAgICAmIzM0O2JwZl9sb2dfYXR0cl9jcmVhdGVfdmxvZyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGNoZWNrcyB0byBwcmV2ZW50IHVzZXJzcGFjZSBmcm9tIHBhc3NpbmcgQlBGX0xPR19LRVJORUwgYXMgYSBsb2cgbGV2ZWwgaW4gQlBGIHN5c2NhbGxzLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGFmZmVjdGluZyBCVEYgbG9hZGluZywgQlBGIHByb2dyYW0gbG9hZGluZywgYW5kIG1hcCBjcmVhdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI0VDE4OjQ0OjQxLjAzMjQyMTMwMloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI5NDU5NzA5NzA5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9TWVNDQUxMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnRmX3BhcnNlXCIsXG4gICAgXCJicGZfdmVyaWZpZXJfbG9nX2F0dHJfdmFsaWRcIixcbiAgICBcImJwZl9sb2dfYXR0cl9pbml0XCIsXG4gICAgXCJicGZfbG9nX2F0dHJfY3JlYXRlX3Zsb2dcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGNoZWNrcyB0byBwcmV2ZW50IHVzZXJzcGFjZSBmcm9tIHBhc3NpbmcgQlBGX0xPR19LRVJORUwgYXMgYSBsb2cgbGV2ZWwgaW4gQlBGIHN5c2NhbGxzLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGFmZmVjdGluZyBCVEYgbG9hZGluZywgQlBGIHByb2dyYW0gbG9hZGluZywgYW5kIG1hcCBjcmVhdGlvbi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjRUMTg6NDQ6NDEuMDMyNDI3NDgyWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MzgyMjc4NzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAwMTU4MGQ5ZThlMzIyNWQ3Njc3MzZhMjE3MDdhNmY3Yzg4NzgxODgzXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgSnVuIDI0IDE4OjQ0OjM5IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvYnRmLmMgYi9rZXJuZWwvYnBmL2J0Zi5jXFxuaW5kZXggMTVhZTdjNDNmNTk0YmUuLjRhMGMxODExMmFkMzEyIDEwMDY0NFxcbi0tLSBhL2tlcm5lbC9icGYvYnRmLmNcXG4rKysgYi9rZXJuZWwvYnBmL2J0Zi5jXFxuQEAgLTU5MTksNiArNTkxOSw5IEBAIHN0YXRpYyBzdHJ1Y3QgYnRmICpidGZfcGFyc2UoY29uc3QgdW5pb24gYnBmX2F0dHIgKmF0dHIsIGJwZnB0cl90IHVhdHRyLFxcbiBcXHRpZiAoYXR0ci1cXHUwMDNlYnRmX3NpemUgXFx1MDAzZSBCVEZfTUFYX1NJWkUpXFxuIFxcdFxcdHJldHVybiBFUlJfUFRSKC1FMkJJRyk7XFxuIFxcbitcXHRpZiAoYXR0cl9sb2ctXFx1MDAzZWxldmVsID09IEJQRl9MT0dfS0VSTkVMIFxcdTAwMjZcXHUwMDI2ICF1YXR0ci5pc19rZXJuZWwpXFxuK1xcdFxcdHJldHVybiBFUlJfUFRSKC1FSU5WQUwpO1xcbitcXG4gXFx0ZW52ID0ga3phbGxvY19vYmooKmVudiwgR0ZQX0tFUk5FTCB8IF9fR0ZQX05PV0FSTik7XFxuIFxcdGlmICghZW52KVxcbiBcXHRcXHRyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTtcXG5kaWZmIC0tZ2l0IGEva2VybmVsL2JwZi9sb2cuYyBiL2tlcm5lbC9icGYvbG9nLmNcXG5pbmRleCBiNzQwZmE3M2VlMjZkYS4uMjVhOWY4MzQwOTgwNzMgMTAwNjQ0XFxuLS0tIGEva2VybmVsL2JwZi9sb2cuY1xcbisrKyBiL2tlcm5lbC9icGYvbG9nLmNcXG5AQCAtMjEsNiArMjEsMTUgQEAgc3RhdGljIGJvb2wgYnBmX3ZlcmlmaWVyX2xvZ19hdHRyX3ZhbGlkKHUzMiBsb2dfbGV2ZWwsIGNoYXIgX191c2VyICpsb2dfYnVmLCB1MzJcXG4gXFx0LyogbG9nIGJ1ZiB3aXRob3V0IGxvZ19sZXZlbCBpcyBtZWFuaW5nbGVzcyAqL1xcbiBcXHRpZiAobG9nX2J1ZiBcXHUwMDI2XFx1MDAyNiBsb2dfbGV2ZWwgPT0gMClcXG4gXFx0XFx0cmV0dXJuIGZhbHNlO1xcbitcXG4rXFx0LyogQlBGX0xPR19LRVJORUwgaXMgYW4gZXhjbHVzaXZlIGludGVybmFsIG1vZGUsIG5vdCBhIGJpdCBmbGFnLlxcbitcXHQgKiBJdCBtdXN0IGJlIGNoZWNrZWQgdmlhIHN0cmljdCBlcXVhbGl0eSB0byBwcmV2ZW50IGl0IGZyb20gYmVpbmdcXG4rXFx0ICogY29tYmluZWQgd2l0aCB1c2Vyc3BhY2UgZmxhZ3MsIHdoaWNoIHdvdWxkIGNhdXNlIHRoZSB2ZXJpZmllclxcbitcXHQgKiB0byBmYWxsYmFjayB0byB1c2Vyc3BhY2UgbG9nZ2luZyBhbmQgY29weV90b191c2VyKCkgZmFpbHVyZXMuXFxuK1xcdCAqL1xcbitcXHRpZiAobG9nX2xldmVsID09IEJQRl9MT0dfS0VSTkVMKVxcbitcXHRcXHRyZXR1cm4gdHJ1ZTtcXG4rXFxuIFxcdGlmIChsb2dfbGV2ZWwgXFx1MDAyNiB+QlBGX0xPR19NQVNLKVxcbiBcXHRcXHRyZXR1cm4gZmFsc2U7XFxuIFxcdGlmIChsb2dfc2l6ZSBcXHUwMDNlIFVJTlRfTUFYIFxcdTAwM2VcXHUwMDNlIDIpXFxuQEAgLTgzMSw2ICs4NDAsMTEgQEAgaW50IGJwZl9sb2dfYXR0cl9pbml0KHN0cnVjdCBicGZfbG9nX2F0dHIgKmxvZywgdTY0IGxvZ19idWYsIHUzMiBsb2dfc2l6ZSwgdTMyIGxcXG4gXFx0Y2hhciBfX3VzZXIgKnVidWZfY29tbW9uID0gdTY0X3RvX3VzZXJfcHRyKGNvbW1vbi1cXHUwMDNlbG9nX2J1Zik7XFxuIFxcdGNoYXIgX191c2VyICp1YnVmID0gdTY0X3RvX3VzZXJfcHRyKGxvZ19idWYpO1xcbiBcXG4rXFx0aWYgKGNvbW1vbi1cXHUwMDNlbG9nX2xldmVsID09IEJQRl9MT0dfS0VSTkVMIFxcdTAwMjZcXHUwMDI2ICF1YXR0cl9jb21tb24uaXNfa2VybmVsKVxcbitcXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4rXFx0aWYgKGxvZ19sZXZlbCA9PSBCUEZfTE9HX0tFUk5FTCBcXHUwMDI2XFx1MDAyNiAhdWF0dHIuaXNfa2VybmVsKVxcbitcXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4rXFxuIFxcdGlmICghYnBmX3ZlcmlmaWVyX2xvZ19hdHRyX3ZhbGlkKGNvbW1vbi1cXHUwMDNlbG9nX2xldmVsLCB1YnVmX2NvbW1vbiwgY29tbW9uLVxcdTAwM2Vsb2dfc2l6ZSkgfHxcXG4gXFx0ICAgICFicGZfdmVyaWZpZXJfbG9nX2F0dHJfdmFsaWQobG9nX2xldmVsLCB1YnVmLCBsb2dfc2l6ZSkpXFxuIFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbkBAIC04NzMsNiArODg3LDkgQEAgc3RydWN0IGJwZl92ZXJpZmllcl9sb2cgKmJwZl9sb2dfYXR0cl9jcmVhdGVfdmxvZyhzdHJ1Y3QgYnBmX2xvZ19hdHRyICphdHRyX2xvZyxcXG4gXFx0aWYgKCFzaXplKVxcbiBcXHRcXHRyZXR1cm4gTlVMTDtcXG4gXFxuK1xcdGlmIChjb21tb24tXFx1MDAzZWxvZ19sZXZlbCA9PSBCUEZfTE9HX0tFUk5FTCBcXHUwMDI2XFx1MDAyNiAhdWF0dHIuaXNfa2VybmVsKVxcbitcXHRcXHRyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTtcXG4rXFxuIFxcdGxvZyA9IGt6YWxsb2Nfb2JqKCpsb2csIEdGUF9LRVJORUwpO1xcbiBcXHRpZiAoIWxvZylcXG4gXFx0XFx0cmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI0VDE4OjQ0OjQxLjQ3MTQ0ODk3MVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjkwMjA2NzMwMTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX1NZU0NBTExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJidGZfcGFyc2VcIixcbiAgICBcImJwZl92ZXJpZmllcl9sb2dfYXR0cl92YWxpZFwiLFxuICAgIFwiYnBmX2xvZ19hdHRyX2luaXRcIixcbiAgICBcImJwZl9sb2dfYXR0cl9jcmVhdGVfdmxvZ1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgY2hlY2tzIHRvIHByZXZlbnQgdXNlcnNwYWNlIGZyb20gcGFzc2luZyBCUEZfTE9HX0tFUk5FTCBhcyBhIGxvZyBsZXZlbCBpbiBCUEYgc3lzY2FsbHMsIHdoaWNoIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYWZmZWN0aW5nIEJURiBsb2FkaW5nLCBCUEYgcHJvZ3JhbSBsb2FkaW5nLCBhbmQgbWFwIGNyZWF0aW9uLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDAxNTgwZDllOGUzMjI1ZDc2NzczNmEyMTcwN2E2ZjdjODg3ODE4ODNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1biAyNCAxODo0NDozOSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvYnRmLmMgYi9rZXJuZWwvYnBmL2J0Zi5jXG5pbmRleCAxNWFlN2M0M2Y1OTRiZS4uNGEwYzE4MTEyYWQzMTIgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvYnBmL2J0Zi5jXG4rKysgYi9rZXJuZWwvYnBmL2J0Zi5jXG5AQCAtNTkxOSw2ICs1OTE5LDkgQEAgc3RhdGljIHN0cnVjdCBidGYgKmJ0Zl9wYXJzZShjb25zdCB1bmlvbiBicGZfYXR0ciAqYXR0ciwgYnBmcHRyX3QgdWF0dHIsXG4gXHRpZiAoYXR0ci1cdTAwM2VidGZfc2l6ZSBcdTAwM2UgQlRGX01BWF9TSVpFKVxuIFx0XHRyZXR1cm4gRVJSX1BUUigtRTJCSUcpO1xuIFxuK1x0aWYgKGF0dHJfbG9nLVx1MDAzZWxldmVsID09IEJQRl9MT0dfS0VSTkVMIFx1MDAyNlx1MDAyNiAhdWF0dHIuaXNfa2VybmVsKVxuK1x0XHRyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTtcbitcbiBcdGVudiA9IGt6YWxsb2Nfb2JqKCplbnYsIEdGUF9LRVJORUwgfCBfX0dGUF9OT1dBUk4pO1xuIFx0aWYgKCFlbnYpXG4gXHRcdHJldHVybiBFUlJfUFRSKC1FTk9NRU0pO1xuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvbG9nLmMgYi9rZXJuZWwvYnBmL2xvZy5jXG5pbmRleCBiNzQwZmE3M2VlMjZkYS4uMjVhOWY4MzQwOTgwNzMgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvYnBmL2xvZy5jXG4rKysgYi9rZXJuZWwvYnBmL2xvZy5jXG5AQCAtMjEsNiArMjEsMTUgQEAgc3RhdGljIGJvb2wgYnBmX3ZlcmlmaWVyX2xvZ19hdHRyX3ZhbGlkKHUzMiBsb2dfbGV2ZWwsIGNoYXIgX191c2VyICpsb2dfYnVmLCB1MzJcbiBcdC8qIGxvZyBidWYgd2l0aG91dCBsb2dfbGV2ZWwgaXMgbWVhbmluZ2xlc3MgKi9cbiBcdGlmIChsb2dfYnVmIFx1MDAyNlx1MDAyNiBsb2dfbGV2ZWwgPT0gMClcbiBcdFx0cmV0dXJuIGZhbHNlO1xuK1xuK1x0LyogQlBGX0xPR19LRVJORUwgaXMgYW4gZXhjbHVzaXZlIGludGVybmFsIG1vZGUsIG5vdCBhIGJpdCBmbGFnLlxuK1x0ICogSXQgbXVzdCBiZSBjaGVja2VkIHZpYSBzdHJpY3QgZXF1YWxpdHkgdG8gcHJldmVudCBpdCBmcm9tIGJlaW5nXG4rXHQgKiBjb21iaW5lZCB3aXRoIHVzZXJzcGFjZSBmbGFncywgd2hpY2ggd291bGQgY2F1c2UgdGhlIHZlcmlmaWVyXG4rXHQgKiB0byBmYWxsYmFjayB0byB1c2Vyc3BhY2UgbG9nZ2luZyBhbmQgY29weV90b191c2VyKCkgZmFpbHVyZXMuXG4rXHQgKi9cbitcdGlmIChsb2dfbGV2ZWwgPT0gQlBGX0xPR19LRVJORUwpXG4rXHRcdHJldHVybiB0cnVlO1xuK1xuIFx0aWYgKGxvZ19sZXZlbCBcdTAwMjYgfkJQRl9MT0dfTUFTSylcbiBcdFx0cmV0dXJuIGZhbHNlO1xuIFx0aWYgKGxvZ19zaXplIFx1MDAzZSBVSU5UX01BWCBcdTAwM2VcdTAwM2UgMilcbkBAIC04MzEsNiArODQwLDExIEBAIGludCBicGZfbG9nX2F0dHJfaW5pdChzdHJ1Y3QgYnBmX2xvZ19hdHRyICpsb2csIHU2NCBsb2dfYnVmLCB1MzIgbG9nX3NpemUsIHUzMiBsXG4gXHRjaGFyIF9fdXNlciAqdWJ1Zl9jb21tb24gPSB1NjRfdG9fdXNlcl9wdHIoY29tbW9uLVx1MDAzZWxvZ19idWYpO1xuIFx0Y2hhciBfX3VzZXIgKnVidWYgPSB1NjRfdG9fdXNlcl9wdHIobG9nX2J1Zik7XG4gXG4rXHRpZiAoY29tbW9uLVx1MDAzZWxvZ19sZXZlbCA9PSBCUEZfTE9HX0tFUk5FTCBcdTAwMjZcdTAwMjYgIXVhdHRyX2NvbW1vbi5pc19rZXJuZWwpXG4rXHRcdHJldHVybiAtRUlOVkFMO1xuK1x0aWYgKGxvZ19sZXZlbCA9PSBCUEZfTE9HX0tFUk5FTCBcdTAwMjZcdTAwMjYgIXVhdHRyLmlzX2tlcm5lbClcbitcdFx0cmV0dXJuIC1FSU5WQUw7XG4rXG4gXHRpZiAoIWJwZl92ZXJpZmllcl9sb2dfYXR0cl92YWxpZChjb21tb24tXHUwMDNlbG9nX2xldmVsLCB1YnVmX2NvbW1vbiwgY29tbW9uLVx1MDAzZWxvZ19zaXplKSB8fFxuIFx0ICAgICFicGZfdmVyaWZpZXJfbG9nX2F0dHJfdmFsaWQobG9nX2xldmVsLCB1YnVmLCBsb2dfc2l6ZSkpXG4gXHRcdHJldHVybiAtRUlOVkFMO1xuQEAgLTg3Myw2ICs4ODcsOSBAQCBzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqYnBmX2xvZ19hdHRyX2NyZWF0ZV92bG9nKHN0cnVjdCBicGZfbG9nX2F0dHIgKmF0dHJfbG9nLFxuIFx0aWYgKCFzaXplKVxuIFx0XHRyZXR1cm4gTlVMTDtcbiBcbitcdGlmIChjb21tb24tXHUwMDNlbG9nX2xldmVsID09IEJQRl9MT0dfS0VSTkVMIFx1MDAyNlx1MDAyNiAhdWF0dHIuaXNfa2VybmVsKVxuK1x0XHRyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTtcbitcbiBcdGxvZyA9IGt6YWxsb2Nfb2JqKCpsb2csIEdGUF9LRVJORUwpO1xuIFx0aWYgKCFsb2cpXG4gXHRcdHJldHVybiBFUlJfUFRSKC1FTk9NRU0pO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjRUMTg6NDQ6NDEuNDcxNDUwMzgyWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTE0NzY5MjA1MDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBCUEYgTG9nIExldmVsIFJlc3RyaWN0aW9uIFBhdGNoKipcblxuQWxyaWdodCwgbGV0J3MgYnJlYWsgZG93biB0aGlzIHBhdGNoLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0aGF0IHRoaXMgaXMgYSBzdHJhaWdodGZvcndhcmQgc2VjdXJpdHkgaGFyZGVuaW5nIG1lYXN1cmUgd2l0aGluIHRoZSBCUEYgc3Vic3lzdGVtLCB3aGljaCBpcyBnb29kLiBUaGUgY29yZSBvZiB0aGlzIHBhdGNoIHNlZW1zIHRvIGJlIHByZXZlbnRpbmcgdXNlcnNwYWNlIGZyb20gZGlyZWN0bHkgc3BlY2lmeWluZyBgQlBGX0xPR19LRVJORUxgIGFzIGEgbG9nIGxldmVsLiBUaGlzIHJlc3RyaWN0aW9uIG1ha2VzIHNlbnNlLiBLZXJuZWwtbGV2ZWwgbG9nZ2luZyBpcywgYnkgZGVmaW5pdGlvbiwgYW4gaW50ZXJuYWwgbWVjaGFuaXNtLiBFeHBvc2luZyBpdCB0byB1c2Vyc3BhY2Ugd291bGQgb3BlbiB1cCBwb3RlbnRpYWwgYXR0YWNrIHZlY3RvcnMsIGFsbG93aW5nIG1hbGljaW91cyBhY3RvcnMgdG8gZWl0aGVyIGZsb29kIHRoZSBsb2dzIHdpdGggZ2FyYmFnZSwgbGVhayBpbnRlcm5hbCBrZXJuZWwgaW5mb3JtYXRpb24sIG9yIHBvdGVudGlhbGx5IGludGVyZmVyZSB3aXRoIHRoZSB2ZXJpZmllcidzIGxvZ2dpbmcgcHJvY2Vzcy5cblxuVGhlIHBhdGNoIGl0c2VsZiBpcyBzaW1wbGU7IGl0IGludHJvZHVjZXMgY2hlY2tzIHdpdGhpbiBzZXZlcmFsIGtleSBmdW5jdGlvbnMuIFNwZWNpZmljYWxseSwgaXQncyBndWFyZGluZyBhZ2FpbnN0IHRoZSB1c2Ugb2YgYEJQRl9MT0dfS0VSTkVMYCBpbiBgYnRmX3BhcnNlYCwgYGJwZl92ZXJpZmllcl9sb2dfYXR0cl92YWxpZGAsIGBicGZfbG9nX2F0dHJfaW5pdGAsIGFuZCBgYnBmX2xvZ19hdHRyX2NyZWF0ZV92bG9nYC4gVGhlIHByZXNlbmNlIG9mIHRoZSBgdWF0dHIuaXNfa2VybmVsYCBjaGVjayBzaWduYWxzIHRoYXQgdGhpcyB3aWxsIG9ubHkgdGFrZSBlZmZlY3Qgb24gY2FsbHMgb3JpZ2luYXRpbmcgZnJvbSB1c2Vyc3BhY2UgYW5kIHdpbGwgYmUgaWdub3JlZCBpbiBjYWxscyBmcm9tIHdpdGhpbiB0aGUga2VybmVsLiBNYWtlcyBzZW5zZS5cblxuVGhlIGluY2x1c2lvbiBvZiBgYnRmX3BhcnNlYCBpbiB0aGlzIGxpc3QgaXMgYWxzbyBub3RhYmxlLiBJJ20gdGhpbmtpbmcgaGVyZSwgdGhhdCdzIHJlbGF0ZWQgdG8gQlRGIGxvYWRpbmcsIGFuZCBzcGVjaWZpY2FsbHksIHRoZSBwYXJzaW5nIG9mIEJURiBkYXRhIHRoYXQgcG90ZW50aWFsbHkgb3JpZ2luYXRlcyBmcm9tIHVzZXJzcGFjZS4gSXQncyBnb29kIHRvIHNlZSB0aGlzIGlzIGNvdmVyZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGxvZyBsZXZlbCBpc24ndCBtYW5pcHVsYXRlZCBkdXJpbmcgQlRGIGxvYWRpbmcsIHRodXMgcHJldmVudGluZyB0aGUgbGVha2FnZSBvZiBrZXJuZWwgaW50ZXJuYWxzLlxuXG5UaGUgZnVuY3Rpb25zIGBicGZfbG9nX2F0dHJfaW5pdGAgYW5kIGBicGZfbG9nX2F0dHJfY3JlYXRlX3Zsb2dgIGFyZSBkaXJlY3RseSBpbnZvbHZlZCBpbiB0aGUgQlBGIHByb2dyYW0gbG9hZGluZyBwcm9jZXNzLCBzbyBpdCdzIGNyaXRpY2FsIHRvIGxvY2sgZG93biB0aGUgbG9nIGxldmVsIHBhcmFtZXRlciBoZXJlIGFzIHdlbGwuIEknbSBub3cgbWFraW5nIGEgbWVudGFsIG5vdGUgdG8gY2hlY2sgdGhlIGV4YWN0IGNhbGwgcGF0aHMgb2YgdGhlc2UgZnVuY3Rpb25zIHRvIHVuZGVyc3RhbmQgd2hlcmUgdGhpcyByZXN0cmljdGlvbiB3aWxsIHRha2UgZWZmZWN0IGluIHByYWN0aWNlLlxuXG5CYXNlZCBvbiB0aGUgbmF0dXJlIG9mIHRoaXMgY2hhbmdlLCBJIHRoaW5rIGZ1enppbmcgaXMgYSB2ZXJ5IGFwcHJvcHJpYXRlIG5leHQgc3RlcC4gV2Ugc2hvdWxkIGJlIHNwZWNpZmljYWxseSB0YXJnZXRpbmcgdGhvc2UgZnVuY3Rpb25zIHRoYXQgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgcGF0Y2g6IGBidGZfcGFyc2VgLCBgYnBmX3ZlcmlmaWVyX2xvZ19hdHRyX3ZhbGlkYCwgYGJwZl9sb2dfYXR0cl9pbml0YCwgYW5kIGBicGZfbG9nX2F0dHJfY3JlYXRlX3Zsb2dgLiBXZSBzaG91bGQgZm9jdXMgb24gY2FzZXMgd2hlcmUgdXNlcnNwYWNlIHByb3ZpZGVzIGEgYEJQRl9MT0dfS0VSTkVMYCBsb2cgbGV2ZWwgYW5kIHNlZSBpZiB0aGVzZSBjaGVja3MgYXJlIHRyaWdnZXJlZCBhcyBleHBlY3RlZC4gV2Ugc2hvdWxkIGFsc28gaW52ZXN0aWdhdGUgY2FzZXMgd2hlcmUgdGhlIGxvZyBsZXZlbCBpcyBjb21iaW5lZCB3aXRoIG90aGVyIGZsYWdzIGluIHZhcmlvdXMgd2F5cyB0byBzZWUgaG93IHRoZSBjb2RlIHdpbGwgcmVzcG9uZC4gU2luY2UgdGhlc2UgYXJlIGxvdy1sZXZlbCBmdW5jdGlvbnMsIGEgY3Jhc2ggd291bGQgbGlrZWx5IGluZGljYXRlIGEgc2VyaW91cyBpc3N1ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjU2MCwiT3V0cHV0VG9rZW5zIjoyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwOTQsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxODo0NDo1Mi45NDgzNzM0MzdaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjA3NjcxNDA1OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicGZfbG9nX2F0dHJfaW5pdFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJpbmNsdWRlL2xpbnV4L2JwZl92ZXJpZmllci5oPTc2Nj1zdHJ1Y3QgYnBmX2xvZ19hdHRyIHtcXG4tLVxcbmluY2x1ZGUvbGludXgvYnBmX3ZlcmlmaWVyLmgtNzczLVxcbmluY2x1ZGUvbGludXgvYnBmX3ZlcmlmaWVyLmg6Nzc0OmludCBicGZfbG9nX2F0dHJfaW5pdChzdHJ1Y3QgYnBmX2xvZ19hdHRyICpsb2csIHU2NCBsb2dfYnVmLCB1MzIgbG9nX3NpemUsIHUzMiBsb2dfbGV2ZWwsXFxuaW5jbHVkZS9saW51eC9icGZfdmVyaWZpZXIuaC03NzUtXFx0XFx0ICAgICAgdTMyIG9mZnNldG9mX2xvZ190cnVlX3NpemUsIGJwZnB0cl90IHVhdHRyLCBzdHJ1Y3QgYnBmX2NvbW1vbl9hdHRyICpjb21tb24sXFxuLS1cXG5rZXJuZWwvYnBmL2xvZy5jPTgyMz12b2lkIHByaW50X2luc25fc3RhdGUoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgY29uc3Qgc3RydWN0IGJwZl92ZXJpZmllcl9zdGF0ZSAqdnN0YXRlLFxcbi0tXFxua2VybmVsL2JwZi9sb2cuYy04MzUtXFxua2VybmVsL2JwZi9sb2cuYzo4MzY6aW50IGJwZl9sb2dfYXR0cl9pbml0KHN0cnVjdCBicGZfbG9nX2F0dHIgKmxvZywgdTY0IGxvZ19idWYsIHUzMiBsb2dfc2l6ZSwgdTMyIGxvZ19sZXZlbCxcXG5rZXJuZWwvYnBmL2xvZy5jLTgzNy1cXHRcXHQgICAgICB1MzIgb2Zmc2V0b2ZfbG9nX3RydWVfc2l6ZSwgYnBmcHRyX3QgdWF0dHIsIHN0cnVjdCBicGZfY29tbW9uX2F0dHIgKmNvbW1vbixcXG4tLVxcbmtlcm5lbC9icGYvc3lzY2FsbC5jPTYzNTQ9c3RhdGljIGludCBfX3N5c19icGYoZW51bSBicGZfY21kIGNtZCwgYnBmcHRyX3QgdWF0dHIsIHVuc2lnbmVkIGludCBzaXplLFxcbi0tXFxua2VybmVsL2JwZi9zeXNjYWxsLmMtNjQxNC1cXHRcXHRcXHRvZmZzZXRvZl9sb2dfdHJ1ZV9zaXplID0gb2Zmc2V0b2YodW5pb24gYnBmX2F0dHIsIGxvZ190cnVlX3NpemUpO1xcbmtlcm5lbC9icGYvc3lzY2FsbC5jOjY0MTU6XFx0XFx0ZXJyID0gYnBmX2xvZ19hdHRyX2luaXQoXFx1MDAyNmF0dHJfbG9nLCBhdHRyLmxvZ19idWYsIGF0dHIubG9nX3NpemUsIGF0dHIubG9nX2xldmVsLFxcbmtlcm5lbC9icGYvc3lzY2FsbC5jLTY0MTYtXFx0XFx0XFx0XFx0XFx0b2Zmc2V0b2ZfbG9nX3RydWVfc2l6ZSwgdWF0dHIsIFxcdTAwMjZhdHRyX2NvbW1vbiwgdWF0dHJfY29tbW9uLFxcbi0tXFxua2VybmVsL2JwZi9zeXNjYWxsLmMtNjQ2NC1cXHRcXHRcXHRvZmZzZXRvZl9sb2dfdHJ1ZV9zaXplID0gb2Zmc2V0b2YodW5pb24gYnBmX2F0dHIsIGJ0Zl9sb2dfdHJ1ZV9zaXplKTtcXG5rZXJuZWwvYnBmL3N5c2NhbGwuYzo2NDY1OlxcdFxcdGVyciA9IGJwZl9sb2dfYXR0cl9pbml0KFxcdTAwMjZhdHRyX2xvZywgYXR0ci5idGZfbG9nX2J1ZiwgYXR0ci5idGZfbG9nX3NpemUsXFxua2VybmVsL2JwZi9zeXNjYWxsLmMtNjQ2Ni1cXHRcXHRcXHRcXHRcXHRhdHRyLmJ0Zl9sb2dfbGV2ZWwsIG9mZnNldG9mX2xvZ190cnVlX3NpemUsIHVhdHRyLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxODo0NDo1NS4wMjUwOTQwNTVaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTg3MDczMzUxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgc3VtbWFyeSwgYXMgdGhvdWdoIEknbSB0aGlua2luZyB0aHJvdWdoIHRoaXMgcHJvY2VzczpcblxuKipEaXZpbmcgRGVlcGVyIGludG8gYGJwZl9sb2dfYXR0cl9jcmVhdGVfdmxvZ2AqKlxuXG5Pa2F5LCBzbyB3ZSd2ZSBjb3ZlcmVkIGEgbG90IG9mIGdyb3VuZCwgYnV0IEkgdGhpbmsgaXQncyBjcnVjaWFsIHdlIGRvbid0IGp1c3Qgc3RvcCBoZXJlLiBXZSd2ZSBnb3QgYSBnb29kIGhhbmRsZSBvbiB0aGluZ3Mgb3ZlcmFsbCwgYnV0IEknbSB0aGlua2luZyB3ZSBuZWVkIHRvIHNwZWNpZmljYWxseSBjaGVjayBvdXQgYGJwZl9sb2dfYXR0cl9jcmVhdGVfdmxvZ2AuIFRoZXJlJ3MgbGlrZWx5IHNvbWUgaW1wb3J0YW50IGludGVyYWN0aW9uIGhhcHBlbmluZyB0aGVyZSB0aGF0IHdlIGhhdmVuJ3QgZXhwbG9yZWQgZGVlcGx5LCB0aGF0IHdlIG5lZWQgdG8gaW52ZXN0aWdhdGUgbW9yZSBjbG9zZWx5LiBNYXliZSBpdCdzIG5vdCBhIG1ham9yIGlzc3VlLCBidXQgZXhwZXJpZW5jZSB0ZWxscyBtZSB0byBjaGFzZSBkb3duIHRoZXNlIGxvb3NlIGVuZHMuIFRoaXMgbWlnaHQgYmUgd2hlcmUgc29tZSBzdWJ0bGUgZGV0YWlsIGNvbWVzIGludG8gcGxheS4gV2UgcmVhbGx5IGRvbid0IHdhbnQgdG8gbWlzcyBhbnl0aGluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDg1NSwiT3V0cHV0VG9rZW5zIjoyNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI0VDE4OjQ0OjU4LjIxMjE2OTMzNloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNDEzMjM4NzMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImJwZl9sb2dfYXR0cl9jcmVhdGVfdmxvZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJpbmNsdWRlL2xpbnV4L2JwZl92ZXJpZmllci5oPTc3ND1pbnQgYnBmX2xvZ19hdHRyX2luaXQoc3RydWN0IGJwZl9sb2dfYXR0ciAqbG9nLCB1NjQgbG9nX2J1ZiwgdTMyIGxvZ19zaXplLCB1MzIgbG9nX2xldmVsLFxcbi0tXFxuaW5jbHVkZS9saW51eC9icGZfdmVyaWZpZXIuaC03NzYtXFx0XFx0ICAgICAgYnBmcHRyX3QgdWF0dHJfY29tbW9uLCB1MzIgc2l6ZV9jb21tb24pO1xcbmluY2x1ZGUvbGludXgvYnBmX3ZlcmlmaWVyLmg6Nzc3OnN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpicGZfbG9nX2F0dHJfY3JlYXRlX3Zsb2coc3RydWN0IGJwZl9sb2dfYXR0ciAqYXR0cl9sb2csXFxuaW5jbHVkZS9saW51eC9icGZfdmVyaWZpZXIuaC03NzgtXFx0XFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgYnBmX2NvbW1vbl9hdHRyICpjb21tb24sIGJwZnB0cl90IHVhdHRyLFxcbi0tXFxua2VybmVsL2JwZi9sb2cuYz04MzY9aW50IGJwZl9sb2dfYXR0cl9pbml0KHN0cnVjdCBicGZfbG9nX2F0dHIgKmxvZywgdTY0IGxvZ19idWYsIHUzMiBsb2dfc2l6ZSwgdTMyIGxvZ19sZXZlbCxcXG4tLVxcbmtlcm5lbC9icGYvbG9nLmMtODc0LVxcbmtlcm5lbC9icGYvbG9nLmM6ODc1OnN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpicGZfbG9nX2F0dHJfY3JlYXRlX3Zsb2coc3RydWN0IGJwZl9sb2dfYXR0ciAqYXR0cl9sb2csXFxua2VybmVsL2JwZi9sb2cuYy04NzYtXFx0XFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgYnBmX2NvbW1vbl9hdHRyICpjb21tb24sIGJwZnB0cl90IHVhdHRyLFxcbi0tXFxua2VybmVsL2JwZi9zeXNjYWxsLmM9MTYyNj1zdGF0aWMgaW50IG1hcF9jcmVhdGUodW5pb24gYnBmX2F0dHIgKmF0dHIsIGJwZnB0cl90IHVhdHRyLCBzdHJ1Y3QgYnBmX2NvbW1vbl9hdHRyICphdHRyX2NvbW1vbixcXG4tLVxcbmtlcm5lbC9icGYvc3lzY2FsbC5jLTE2MzUtXFxua2VybmVsL2JwZi9zeXNjYWxsLmM6MTYzNjpcXHRsb2cgPSBicGZfbG9nX2F0dHJfY3JlYXRlX3Zsb2coXFx1MDAyNmF0dHJfbG9nLCBhdHRyX2NvbW1vbiwgdWF0dHJfY29tbW9uLCBzaXplX2NvbW1vbik7XFxua2VybmVsL2JwZi9zeXNjYWxsLmMtMTYzNy1cXHRpZiAoSVNfRVJSKGxvZykpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI0VDE4OjQ1OjAwLjYyNTQxNDc1NloiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyNDExNTA0NjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBCUEYgTG9nIExldmVsIFJlc3RyaWN0aW9uIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgbXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBgYnBmX2xvZ19hdHRyX2luaXRgIGFuZCBgYnBmX2xvZ19hdHRyX2NyZWF0ZV92bG9nYCBhcmUgY2FsbGVkIGZyb20gYF9fc3lzX2JwZmAgYW5kIGBtYXBfY3JlYXRlYC4gSXQgc2VlbXMgbGlrZSB0aGUgY29yZSBvZiB0aGUgY2hhbmdlIGlzIHByZXZlbnRpbmcgdXNlciBzcGFjZSBmcm9tIHNldHRpbmcgYEJQRl9MT0dfS0VSTkVMYCBhcyB0aGUgbG9nIGxldmVsLiBUaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSBhbmQgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucy5cblxuTXkgZm9jdXMgcmlnaHQgbm93IGlzIG9uIGEgZmV3IGtleSBmdW5jdGlvbnM6IGBidGZfcGFyc2VgLCBgYnBmX3ZlcmlmaWVyX2xvZ19hdHRyX3ZhbGlkYCwgYGJwZl9sb2dfYXR0cl9pbml0YCwgYW5kIGBicGZfbG9nX2F0dHJfY3JlYXRlX3Zsb2dgLiBJJ2xsIG5lZWQgdG8gZGlnIGludG8gaG93IHRoZXNlIGZ1bmN0aW9ucyBpbnRlcmFjdCB3aXRoIHRoZSBwcm9wb3NlZCByZXN0cmljdGlvbi5cblxuSSBhbHNvIG5lZWQgdG8gdmVyaWZ5IHRoZSByZXF1aXJlZCBjb25maWd1cmF0aW9ucy4gSSBzZWUgYEJQRl9TWVNDQUxMYCBsaXN0ZWQsIHdoaWNoIG1ha2VzIHNlbnNlLCBidXQgSSBuZWVkIHRvIGNvbmZpcm0gdGhhdCB0aGlzIGlzIHRoZSBvbmx5IHJlbGV2YW50IGNvbmZpZy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IGVuYWJsaW5nIG9yIGRpc2FibGluZyB0aGlzIGNvbmZpZyBwcmVjaXNlbHkgY2FwdHVyZXMgdGhlIGNoYW5nZS4gSXQncyBsaWtlbHksIGJ1dCBJIG5lZWQgdG8gY29uZmlybS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTU0NywiT3V0cHV0VG9rZW5zIjoyMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxODo0NTowNC44NjY1Njc1NjFaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTgyOTg4MjY4NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQlBGX1NZU0NBTExcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwia2VybmVsL2JwZi9LY29uZmlnPTI1PW1lbnUgXFxcIkJQRiBzdWJzeXN0ZW1cXFwiXFxua2VybmVsL2JwZi9LY29uZmlnLTI2LVxcbmtlcm5lbC9icGYvS2NvbmZpZzoyNzpjb25maWcgQlBGX1NZU0NBTExcXG5rZXJuZWwvYnBmL0tjb25maWctMjgtXFx0Ym9vbCBcXFwiRW5hYmxlIGJwZigpIHN5c3RlbSBjYWxsXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxODo0NTowNi42OTY0NTY3MDVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNzExOTY3MTI4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgYXNzdW1pbmcgSSdtIGFuIGV4cGVydDpcblxuKipBc3Nlc3NtZW50IGFuZCBBY3Rpb246IEJQRiBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gd2UncmUgdGFsa2luZyBhYm91dCBCUEYgYW5kIHN5c2NhbGwgaW50ZXJjZXB0aW9uLiBUaGUgY29yZSBpc3N1ZSwgYXMgSSB1bmRlcnN0YW5kIGl0LCBpcyBzZXR0aW5nIHVwIHRoZSBwcm9wZXIgY29uZmlndXJhdGlvbiBmb3IgdGhhdC4gVGhlIHRob3VnaHQgcHJvY2VzcyBpcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIGhlcmUuIEJhc2VkIG9uIHdoYXQgSSd2ZSBzZWVuLCBhbmQgdGhlIHNwZWNpZmljcyBvZiB0aGUgY3VycmVudCBwcm9ibGVtLCBjb25maXJtaW5nIHRoYXQgYEJQRl9TWVNDQUxMYCBpcyB0aGUgY29ycmVjdCBjb25maWd1cmF0aW9uIG9wdGlvbiBpcyB0aGUgZmlyc3QsIGVzc2VudGlhbCBzdGVwLiBJJ3ZlIHdvcmtlZCB3aXRoIEJQRiBlbm91Z2ggdG8ga25vdyB0aGUgbGFuZHNjYXBlOyB0aGlzIGlzbid0IGEgY29tcGxleCBkZWJ1Z2dpbmcgc2NlbmFyaW8uIEknbSBnb2luZyB3aXRoIHRoYXQgc2V0dGluZy4gQW5kIG5vdyB0aGF0IEkndmUgbmFpbGVkIGRvd24gdGhhdCBjcnVjaWFsIHNldHRpbmcsIEkgY2FuIG1vdmUgb24uIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhlIHByb2dyYW0gcmVmbGVjdHMgdGhhdCBjaGFuZ2UuIEkgbmVlZCB0byBzZXQgdGhlIHJlc3VsdHMuIExldCdzIGRvIHRoYXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjYwNTMsIk91dHB1dFRva2VucyI6MTI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjRUMTg6NDU6MTAuNDA4NDI1ODUzWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODM2ODk3MTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9TWVNDQUxMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnRmX3BhcnNlXCIsXG4gICAgXCJicGZfdmVyaWZpZXJfbG9nX2F0dHJfdmFsaWRcIixcbiAgICBcImJwZl9sb2dfYXR0cl9pbml0XCIsXG4gICAgXCJicGZfbG9nX2F0dHJfY3JlYXRlX3Zsb2dcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGNoZWNrcyB0byBwcmV2ZW50IHVzZXJzcGFjZSBmcm9tIHBhc3NpbmcgQlBGX0xPR19LRVJORUwgYXMgYSBsb2cgbGV2ZWwgaW4gQlBGIHN5c2NhbGxzLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGFmZmVjdGluZyBCVEYgbG9hZGluZywgQlBGIHByb2dyYW0gbG9hZGluZywgYW5kIG1hcCBjcmVhdGlvbi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJ0Zl9wYXJzZVwiLFxuICAgIFwiYnBmX3ZlcmlmaWVyX2xvZ19hdHRyX3ZhbGlkXCIsXG4gICAgXCJicGZfbG9nX2F0dHJfaW5pdFwiLFxuICAgIFwiYnBmX2xvZ19hdHRyX2NyZWF0ZV92bG9nXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBjaGVja3MgdG8gcHJldmVudCB1c2Vyc3BhY2UgZnJvbSBwYXNzaW5nIEJQRl9MT0dfS0VSTkVMIGFzIGEgbG9nIGxldmVsIGluIEJQRiBzeXNjYWxscywgd2hpY2ggaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBhZmZlY3RpbmcgQlRGIGxvYWRpbmcsIEJQRiBwcm9ncmFtIGxvYWRpbmcsIGFuZCBtYXAgY3JlYXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowjfrrw[1] Phase: Succeeded StartedAt: 2026-06-24 18:45:21 +0000 UTC FinishedAt: 2026-06-24 18:45:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfrrw[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-06-24 18:45:21 +0000 UTC FinishedAt: 2026-06-24 18:45:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfrrw[2] Phase: Succeeded StartedAt: 2026-06-24 18:45:21 +0000 UTC FinishedAt: 2026-06-24 22:43:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfrrw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-06-24 18:45:21 +0000 UTC FinishedAt: 2026-06-24 22:43:31 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowjfrrw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-06-24 18:45:21 +0000 UTC FinishedAt: 2026-06-24 18:45:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfrrw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-06-24 18:45:21 +0000 UTC FinishedAt: 2026-06-24 18:45:27 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},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-workflowjfrrw/series-workflowjfrrw-convert-artifact-3326436158/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjfrrw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-06-24 18:45:32 +0000 UTC FinishedAt: 2026-06-24 19:07:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfrrw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-06-24 18:45:32 +0000 UTC FinishedAt: 2026-06-24 19:07:49 +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:*f06411fe-abe7-4525-b87d-f49ffa3bd264,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-workflowjfrrw/series-workflowjfrrw-convert-artifact-3326436158/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": "ea92a742-58ba-4f21-a4ba-926542bf57a7", "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-workflowjfrrw/series-workflowjfrrw-build-action-3887938596/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjfrrw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-06-24 18:45:32 +0000 UTC FinishedAt: 2026-06-24 19:07:39 +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:*f06411fe-abe7-4525-b87d-f49ffa3bd264,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-workflowjfrrw/series-workflowjfrrw-convert-artifact-3326436158/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": "ea92a742-58ba-4f21-a4ba-926542bf57a7", "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-workflowjfrrw/series-workflowjfrrw-build-action-3887938596/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjfrrw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-06-24 19:07:49 +0000 UTC FinishedAt: 2026-06-24 19:07:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfrrw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-06-24 19:07:49 +0000 UTC FinishedAt: 2026-06-24 19:07:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfrrw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-06-24 19:07:49 +0000 UTC FinishedAt: 2026-06-24 19:07:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfrrw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-06-24 19:07:49 +0000 UTC FinishedAt: 2026-06-24 19:07:53 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},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-workflowjfrrw/series-workflowjfrrw-convert-artifact-4165024625/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjfrrw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-06-24 19:07:59 +0000 UTC FinishedAt: 2026-06-24 19:10:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfrrw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-06-24 19:07:59 +0000 UTC FinishedAt: 2026-06-24 19:09:57 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*ea92a742-58ba-4f21-a4ba-926542bf57a7,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-workflowjfrrw/series-workflowjfrrw-build-action-3887938596/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-workflowjfrrw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-06-24 19:10:07 +0000 UTC FinishedAt: 2026-06-24 19:10:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfrrw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-06-24 19:10:07 +0000 UTC FinishedAt: 2026-06-24 19:10:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfrrw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-06-24 19:10:07 +0000 UTC FinishedAt: 2026-06-24 19:34:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfrrw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-06-24 19:10:07 +0000 UTC FinishedAt: 2026-06-24 19:34:25 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*f06411fe-abe7-4525-b87d-f49ffa3bd264,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-workflowjfrrw/series-workflowjfrrw-convert-artifact-4165024625/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": "31752346-101b-4d90-9474-6763ae6e2fdb", "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-workflowjfrrw/series-workflowjfrrw-build-action-1721162045/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjfrrw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-06-24 19:10:07 +0000 UTC FinishedAt: 2026-06-24 19:32:14 +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:*f06411fe-abe7-4525-b87d-f49ffa3bd264,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-workflowjfrrw/series-workflowjfrrw-convert-artifact-4165024625/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": "31752346-101b-4d90-9474-6763ae6e2fdb", "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-workflowjfrrw/series-workflowjfrrw-build-action-1721162045/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjfrrw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-06-24 19:34:25 +0000 UTC FinishedAt: 2026-06-24 19:34:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfrrw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-06-24 19:34:25 +0000 UTC FinishedAt: 2026-06-24 19:34:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfrrw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-06-24 19:34:25 +0000 UTC FinishedAt: 2026-06-24 19:36:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfrrw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-06-24 19:34:25 +0000 UTC FinishedAt: 2026-06-24 19:36:13 +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:*31752346-101b-4d90-9474-6763ae6e2fdb,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-workflowjfrrw/series-workflowjfrrw-build-action-1721162045/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-workflowjfrrw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-06-24 19:36:23 +0000 UTC FinishedAt: 2026-06-24 22:43:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfrrw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-06-24 19:36:23 +0000 UTC FinishedAt: 2026-06-24 22:43:31 +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":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"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:*ea92a742-58ba-4f21-a4ba-926542bf57a7,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*31752346-101b-4d90-9474-6763ae6e2fdb,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-workflowjfrrw/series-workflowjfrrw-build-action-3887938596/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-workflowjfrrw/series-workflowjfrrw-build-action-1721162045/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowjfrrw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-06-24 19:36:23 +0000 UTC FinishedAt: 2026-06-24 19:36:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfrrw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-06-24 19:36:23 +0000 UTC FinishedAt: 2026-06-24 19:36:29 +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":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"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-workflowjfrrw/series-workflowjfrrw-convert-artifact-1666252582/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjfrrw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-06-24 19:36:23 +0000 UTC FinishedAt: 2026-06-24 19:36:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfrrw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-06-24 19:36:23 +0000 UTC FinishedAt: 2026-06-24 19:36:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfrrw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-06-24 19:36:23 +0000 UTC FinishedAt: 2026-06-24 19:36:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfrrw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-06-24 19:36:53 +0000 UTC FinishedAt: 2026-06-24 22:43:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfrrw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_parse","bpf_verifier_log_attr_valid","bpf_log_attr_init","bpf_log_attr_create_vlog"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"52f292da-4654-4dc9-bb46-5d3ed821723f","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-06-24 19:36:53 +0000 UTC FinishedAt: 2026-06-24 22:43:21 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*ea92a742-58ba-4f21-a4ba-926542bf57a7,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*31752346-101b-4d90-9474-6763ae6e2fdb,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-workflowjfrrw/series-workflowjfrrw-build-action-3887938596/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-workflowjfrrw/series-workflowjfrrw-build-action-1721162045/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-workflowjfrrw/series-workflowjfrrw-convert-artifact-1666252582/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,}