Name: series-workflowz5vvn Phase: Succeeded StartedAt: 2026-06-23 05:39:26 +0000 UTC FinishedAt: 2026-06-23 09:52:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz5vvn[0] Phase: Succeeded StartedAt: 2026-06-23 05:39:26 +0000 UTC FinishedAt: 2026-06-23 06:00:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz5vvn[0].run-triage Phase: Succeeded StartedAt: 2026-06-23 05:39:26 +0000 UTC FinishedAt: 2026-06-23 06:00:25 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "nf", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git", "commit_hash": "56abdaebbf0da304b860bed1f2b5a85f5a6a16a0", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NFT_CT" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "nf", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git", "commit_hash": "56abdaebbf0da304b860bed1f2b5a85f5a6a16a0", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NFT_CT" ], "series_id": "27df637d-5da1-4980-b194-482d672f446a" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "nft_ct_expect_obj_init", "nft_ct_expect_obj_eval", "nft_ct_expect_obj_dump", "nft_ct_expect_timeout_get" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDA1OjU5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GVF9DVCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O25mdF9jdF9leHBlY3Rfb2JqX2luaXQmIzM0OywKICAgICYjMzQ7bmZ0X2N0X2V4cGVjdF9vYmpfZXZhbCYjMzQ7LAogICAgJiMzNDtuZnRfY3RfZXhwZWN0X29ial9kdW1wJiMzNDssCiAgICAmIzM0O25mdF9jdF9leHBlY3RfdGltZW91dF9nZXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHRpbWVvdXQgcGFyc2luZyBhbmQgZXZhbHVhdGlvbiBsb2dpYyBmb3IgbmZ0X2N0X2V4cGVjdF9vYmogaW4gbmV0ZmlsdGVyLCBmaXhpbmcgYSBwb3RlbnRpYWwgb3ZlcmZsb3cgYW5kIGluY29ycmVjdCB0aW1lb3V0IGhhbmRsaW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDA1OjU5PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZDc4OTEwODYwYTVjYzNjMjZmZmNlZjMzYzQ4YTljOGNhYzcxYzg1Y1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVuIDIzIDA1OjU5OjUzIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9uZXRmaWx0ZXIvbmZ0X2N0LmMgYi9uZXQvbmV0ZmlsdGVyL25mdF9jdC5jXG5pbmRleCA5NTgwNTRkZDJlMmVjYy4uMDNhODhjNzdlMGYwMjggMTAwNjQ0XG4tLS0gYS9uZXQvbmV0ZmlsdGVyL25mdF9jdC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvbmV0ZmlsdGVyL25mdF9jdC5jXG5AQCAtMTIxNSwxMSAmIzQzOzEyMTUsMjMgQEAgc3RydWN0IG5mdF9jdF9leHBlY3Rfb2JqIHtcbiBcdHUzMlx0XHR0aW1lb3V0O1xuIH07XG4gXG4mIzQzO3N0YXRpYyBpbnQgbmZ0X2N0X2V4cGVjdF90aW1lb3V0X2dldChjb25zdCBzdHJ1Y3QgbmxhdHRyICphdHRyLCB1MzIgKnZhbClcbiYjNDM7e1xuJiM0MztcdHVuc2lnbmVkIGxvbmcgamlmZmllc192YWwgPSBtc2Vjc190b19qaWZmaWVzKG5sYV9nZXRfdTMyKGF0dHIpKTtcbiYjNDM7XG4mIzQzO1x0aWYgKGppZmZpZXNfdmFsIFx1MDAzZSBVSU5UX01BWClcbiYjNDM7XHRcdHJldHVybiAtRVJBTkdFO1xuJiM0MztcbiYjNDM7XHQqdmFsID0gamlmZmllc192YWw7XG4mIzQzO1x0cmV0dXJuIDA7XG4mIzQzO31cbiYjNDM7XG4gc3RhdGljIGludCBuZnRfY3RfZXhwZWN0X29ial9pbml0KGNvbnN0IHN0cnVjdCBuZnRfY3R4ICpjdHgsXG4gXHRcdFx0XHQgIGNvbnN0IHN0cnVjdCBubGF0dHIgKiBjb25zdCB0YltdLFxuIFx0XHRcdFx0ICBzdHJ1Y3QgbmZ0X29iamVjdCAqb2JqKVxuIHtcbiBcdHN0cnVjdCBuZnRfY3RfZXhwZWN0X29iaiAqcHJpdiA9IG5mdF9vYmpfZGF0YShvYmopO1xuJiM0MztcdGludCBlcnI7XG4gXG4gXHRpZiAoIXRiW05GVEFfQ1RfRVhQRUNUX0w0UFJPVE9dIHx8XG4gXHQgICAgIXRiW05GVEFfQ1RfRVhQRUNUX0RQT1JUXSB8fFxuQEAgLTEyNTQsOCAmIzQzOzEyNjYsMTEgQEAgc3RhdGljIGludCBuZnRfY3RfZXhwZWN0X29ial9pbml0KGNvbnN0IHN0cnVjdCBuZnRfY3R4ICpjdHgsXG4gXHRcdHJldHVybiAtRU9QTk9UU1VQUDtcbiBcdH1cbiBcbiYjNDM7XHRlcnIgPSBuZnRfY3RfZXhwZWN0X3RpbWVvdXRfZ2V0KHRiW05GVEFfQ1RfRVhQRUNUX1RJTUVPVVRdLCBcdTAwMjZwcml2LVx1MDAzZXRpbWVvdXQpO1xuJiM0MztcdGlmIChlcnIpXG4mIzQzO1x0XHRyZXR1cm4gZXJyO1xuJiM0MztcbiBcdHByaXYtXHUwMDNlZHBvcnQgPSBubGFfZ2V0X2JlMTYodGJbTkZUQV9DVF9FWFBFQ1RfRFBPUlRdKTtcbi1cdHByaXYtXHUwMDNldGltZW91dCA9IG5sYV9nZXRfdTMyKHRiW05GVEFfQ1RfRVhQRUNUX1RJTUVPVVRdKTtcbiBcdHByaXYtXHUwMDNlc2l6ZSA9IG5sYV9nZXRfdTgodGJbTkZUQV9DVF9FWFBFQ1RfU0laRV0pO1xuIFxuIFx0cmV0dXJuIG5mX2N0X25ldG5zX2dldChjdHgtXHUwMDNlbmV0LCBjdHgtXHUwMDNlZmFtaWx5KTtcbkBAIC0xMjc1LDcgJiM0MzsxMjkwLDcgQEAgc3RhdGljIGludCBuZnRfY3RfZXhwZWN0X29ial9kdW1wKHN0cnVjdCBza19idWZmICpza2IsXG4gXHRpZiAobmxhX3B1dF9iZTE2KHNrYiwgTkZUQV9DVF9FWFBFQ1RfTDNQUk9UTywgaHRvbnMocHJpdi1cdTAwM2VsM251bSkpIHx8XG4gXHQgICAgbmxhX3B1dF91OChza2IsIE5GVEFfQ1RfRVhQRUNUX0w0UFJPVE8sIHByaXYtXHUwMDNlbDRwcm90bykgfHxcbiBcdCAgICBubGFfcHV0X2JlMTYoc2tiLCBORlRBX0NUX0VYUEVDVF9EUE9SVCwgcHJpdi1cdTAwM2VkcG9ydCkgfHxcbi1cdCAgICBubGFfcHV0X3UzMihza2IsIE5GVEFfQ1RfRVhQRUNUX1RJTUVPVVQsIHByaXYtXHUwMDNldGltZW91dCkgfHxcbiYjNDM7XHQgICAgbmxhX3B1dF91MzIoc2tiLCBORlRBX0NUX0VYUEVDVF9USU1FT1VULCBqaWZmaWVzX3RvX21zZWNzKHByaXYtXHUwMDNldGltZW91dCkpIHx8XG4gXHQgICAgbmxhX3B1dF91OChza2IsIE5GVEFfQ1RfRVhQRUNUX1NJWkUsIHByaXYtXHUwMDNlc2l6ZSkpXG4gXHRcdHJldHVybiAtMTtcbiBcbkBAIC0xMzI1LDcgJiM0MzsxMzQwLDcgQEAgc3RhdGljIHZvaWQgbmZ0X2N0X2V4cGVjdF9vYmpfZXZhbChzdHJ1Y3QgbmZ0X29iamVjdCAqb2JqLFxuIFx0XHQgICAgICAgICAgXHUwMDI2Y3QtXHUwMDNldHVwbGVoYXNoWyFkaXJdLnR1cGxlLnNyYy51MyxcbiBcdFx0ICAgICAgICAgIFx1MDAyNmN0LVx1MDAzZXR1cGxlaGFzaFshZGlyXS50dXBsZS5kc3QudTMsXG4gXHRcdCAgICAgICAgICBwcml2LVx1MDAzZWw0cHJvdG8sIE5VTEwsIFx1MDAyNnByaXYtXHUwMDNlZHBvcnQpO1xuLVx0ZXhwLVx1MDAzZXRpbWVvdXQgJiM0Mzs9IHByaXYtXHUwMDNldGltZW91dCAqIEhaO1xuJiM0MztcdGV4cC1cdTAwM2V0aW1lb3V0ICYjNDM7PSBwcml2LVx1MDAzZXRpbWVvdXQ7XG4gXG4gXHRpZiAobmZfY3RfZXhwZWN0X3JlbGF0ZWQoZXhwLCAwKSAhPSAwKVxuIFx0XHRyZWdzLVx1MDAzZXZlcmRpY3QuY29kZSA9IE5GX0RST1A7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjMgMDU6NTk8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkZUX0NUJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bmZ0X2N0X2V4cGVjdF9vYmpfaW5pdCYjMzQ7LAogICAgJiMzNDtuZnRfY3RfZXhwZWN0X29ial9ldmFsJiMzNDssCiAgICAmIzM0O25mdF9jdF9leHBlY3Rfb2JqX2R1bXAmIzM0OywKICAgICYjMzQ7bmZ0X2N0X2V4cGVjdF90aW1lb3V0X2dldCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgdGltZW91dCBwYXJzaW5nIGFuZCBldmFsdWF0aW9uIGxvZ2ljIGZvciBuZnRfY3RfZXhwZWN0X29iaiBpbiBuZXRmaWx0ZXIsIGZpeGluZyBhIHBvdGVudGlhbCBvdmVyZmxvdyBhbmQgaW5jb3JyZWN0IHRpbWVvdXQgaGFuZGxpbmcuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGQ3ODkxMDg2MGE1Y2MzYzI2ZmZjZWYzM2M0OGE5YzhjYWM3MWM4NWMKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEp1biAyMyAwNTo1OTo1MyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9uZXRmaWx0ZXIvbmZ0X2N0LmMgYi9uZXQvbmV0ZmlsdGVyL25mdF9jdC5jCmluZGV4IDk1ODA1NGRkMmUyZWNjLi4wM2E4OGM3N2UwZjAyOCAxMDA2NDQKLS0tIGEvbmV0L25ldGZpbHRlci9uZnRfY3QuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvbmV0ZmlsdGVyL25mdF9jdC5jCkBAIC0xMjE1LDExICYjNDM7MTIxNSwyMyBAQCBzdHJ1Y3QgbmZ0X2N0X2V4cGVjdF9vYmogewogCXUzMgkJdGltZW91dDsKIH07CiAKJiM0MztzdGF0aWMgaW50IG5mdF9jdF9leHBlY3RfdGltZW91dF9nZXQoY29uc3Qgc3RydWN0IG5sYXR0ciAqYXR0ciwgdTMyICp2YWwpCiYjNDM7ewomIzQzOwl1bnNpZ25lZCBsb25nIGppZmZpZXNfdmFsID0gbXNlY3NfdG9famlmZmllcyhubGFfZ2V0X3UzMihhdHRyKSk7CiYjNDM7CiYjNDM7CWlmIChqaWZmaWVzX3ZhbCAmZ3Q7IFVJTlRfTUFYKQomIzQzOwkJcmV0dXJuIC1FUkFOR0U7CiYjNDM7CiYjNDM7CSp2YWwgPSBqaWZmaWVzX3ZhbDsKJiM0MzsJcmV0dXJuIDA7CiYjNDM7fQomIzQzOwogc3RhdGljIGludCBuZnRfY3RfZXhwZWN0X29ial9pbml0KGNvbnN0IHN0cnVjdCBuZnRfY3R4ICpjdHgsCiAJCQkJICBjb25zdCBzdHJ1Y3QgbmxhdHRyICogY29uc3QgdGJbXSwKIAkJCQkgIHN0cnVjdCBuZnRfb2JqZWN0ICpvYmopCiB7CiAJc3RydWN0IG5mdF9jdF9leHBlY3Rfb2JqICpwcml2ID0gbmZ0X29ial9kYXRhKG9iaik7CiYjNDM7CWludCBlcnI7CiAKIAlpZiAoIXRiW05GVEFfQ1RfRVhQRUNUX0w0UFJPVE9dIHx8CiAJICAgICF0YltORlRBX0NUX0VYUEVDVF9EUE9SVF0gfHwKQEAgLTEyNTQsOCAmIzQzOzEyNjYsMTEgQEAgc3RhdGljIGludCBuZnRfY3RfZXhwZWN0X29ial9pbml0KGNvbnN0IHN0cnVjdCBuZnRfY3R4ICpjdHgsCiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAl9CiAKJiM0MzsJZXJyID0gbmZ0X2N0X2V4cGVjdF90aW1lb3V0X2dldCh0YltORlRBX0NUX0VYUEVDVF9USU1FT1VUXSwgJmFtcDtwcml2LSZndDt0aW1lb3V0KTsKJiM0MzsJaWYgKGVycikKJiM0MzsJCXJldHVybiBlcnI7CiYjNDM7CiAJcHJpdi0mZ3Q7ZHBvcnQgPSBubGFfZ2V0X2JlMTYodGJbTkZUQV9DVF9FWFBFQ1RfRFBPUlRdKTsKLQlwcml2LSZndDt0aW1lb3V0ID0gbmxhX2dldF91MzIodGJbTkZUQV9DVF9FWFBFQ1RfVElNRU9VVF0pOwogCXByaXYtJmd0O3NpemUgPSBubGFfZ2V0X3U4KHRiW05GVEFfQ1RfRVhQRUNUX1NJWkVdKTsKIAogCXJldHVybiBuZl9jdF9uZXRuc19nZXQoY3R4LSZndDtuZXQsIGN0eC0mZ3Q7ZmFtaWx5KTsKQEAgLTEyNzUsNyAmIzQzOzEyOTAsNyBAQCBzdGF0aWMgaW50IG5mdF9jdF9leHBlY3Rfb2JqX2R1bXAoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAlpZiAobmxhX3B1dF9iZTE2KHNrYiwgTkZUQV9DVF9FWFBFQ1RfTDNQUk9UTywgaHRvbnMocHJpdi0mZ3Q7bDNudW0pKSB8fAogCSAgICBubGFfcHV0X3U4KHNrYiwgTkZUQV9DVF9FWFBFQ1RfTDRQUk9UTywgcHJpdi0mZ3Q7bDRwcm90bykgfHwKIAkgICAgbmxhX3B1dF9iZTE2KHNrYiwgTkZUQV9DVF9FWFBFQ1RfRFBPUlQsIHByaXYtJmd0O2Rwb3J0KSB8fAotCSAgICBubGFfcHV0X3UzMihza2IsIE5GVEFfQ1RfRVhQRUNUX1RJTUVPVVQsIHByaXYtJmd0O3RpbWVvdXQpIHx8CiYjNDM7CSAgICBubGFfcHV0X3UzMihza2IsIE5GVEFfQ1RfRVhQRUNUX1RJTUVPVVQsIGppZmZpZXNfdG9fbXNlY3MocHJpdi0mZ3Q7dGltZW91dCkpIHx8CiAJICAgIG5sYV9wdXRfdTgoc2tiLCBORlRBX0NUX0VYUEVDVF9TSVpFLCBwcml2LSZndDtzaXplKSkKIAkJcmV0dXJuIC0xOwogCkBAIC0xMzI1LDcgJiM0MzsxMzQwLDcgQEAgc3RhdGljIHZvaWQgbmZ0X2N0X2V4cGVjdF9vYmpfZXZhbChzdHJ1Y3QgbmZ0X29iamVjdCAqb2JqLAogCQkgICAgICAgICAgJmFtcDtjdC0mZ3Q7dHVwbGVoYXNoWyFkaXJdLnR1cGxlLnNyYy51MywKIAkJICAgICAgICAgICZhbXA7Y3QtJmd0O3R1cGxlaGFzaFshZGlyXS50dXBsZS5kc3QudTMsCiAJCSAgICAgICAgICBwcml2LSZndDtsNHByb3RvLCBOVUxMLCAmYW1wO3ByaXYtJmd0O2Rwb3J0KTsKLQlleHAtJmd0O3RpbWVvdXQgJiM0Mzs9IHByaXYtJmd0O3RpbWVvdXQgKiBIWjsKJiM0MzsJZXhwLSZndDt0aW1lb3V0ICYjNDM7PSBwcml2LSZndDt0aW1lb3V0OwogCiAJaWYgKG5mX2N0X2V4cGVjdF9yZWxhdGVkKGV4cCwgMCkgIT0gMCkKIAkJcmVncy0mZ3Q7dmVyZGljdC5jb2RlID0gTkZfRFJPUDsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjMgMDU6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjU4MAoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDIxMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIENvbm5lY3Rpb24gVHJhY2tpbmcgRXhwZWN0YXRpb24gVGltZW91dCBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyB0aGUgY29ubmVjdGlvbiB0cmFja2luZyBleHBlY3RhdGlvbiB0aW1lb3V0IGhhbmRsaW5nIHdpdGhpbiB0aGUgTmV0ZmlsdGVyIHN1YnN5c3RlbSwgc3BlY2lmaWNhbGx5IGluIGBuZXQvbmV0ZmlsdGVyL25mdF9jdC5jYC4gSXQgc2VlbXMgdGhleSYjMzk7cmUgbWFraW5nIHNvbWUgaW1wb3J0YW50IGNoYW5nZXMgdG8gaG93IHRoZSBgdGltZW91dGAgdmFsdWUgaXMgaGFuZGxlZCBmb3IgYG5mdF9jdF9leHBlY3Rfb2JqYC4KCkVzc2VudGlhbGx5LCBpdCBsb29rcyBsaWtlIHRoZXkmIzM5O3JlIGFkZHJlc3NpbmcgYSBwb3RlbnRpYWwgYnVnIG9yIHZ1bG5lcmFiaWxpdHkgcmVsYXRlZCB0byB0aW1lb3V0cy4gVGhlIGNoYW5nZXMgaW52b2x2ZSBpbnRyb2R1Y2luZyBhIG5ldyBmdW5jdGlvbiwgYG5mdF9jdF9leHBlY3RfdGltZW91dF9nZXRgLCB3aGljaCBpcyBjcnVjaWFsLiBJdCBjb252ZXJ0cyB0aGUgdGltZW91dCB2YWx1ZSBmcm9tIG1pbGxpc2Vjb25kcyB0byBqaWZmaWVzICphbmQqIGNydWNpYWxseSwgaW5jbHVkZXMgb3ZlcmZsb3cgY2hlY2tzLiAgVGhpcyBpcyBzbWFydDsgaW50ZWdlciBvdmVyZmxvd3Mgd2l0aCB0aW1lIGNhbGN1bGF0aW9ucyBhcmUgbm90b3Jpb3VzbHkgdHJpY2t5IHRvIGRlYnVnLiBUaGV5JiMzOTtyZSB1cGRhdGluZyB0aGUgaW5pdGlhbGl6YXRpb24gb2YgdGhlIGBuZnRfY3RfZXhwZWN0X29iamAgd2l0aCBgbmZ0X2N0X2V4cGVjdF90aW1lb3V0X2dldGAsIHdoaWNoIGlzIHRoZSBsb2dpY2FsIHBsYWNlLiBUaGUgZHVtcGluZyBmdW5jdGlvbiAoYG5mdF9jdF9leHBlY3Rfb2JqX2R1bXBgKSBnZXRzIHVwZGF0ZWQgdG8gY29udmVydCB0aGUgc3RvcmVkIGppZmZpZXMgYmFjayB0byBtaWxsaXNlY29uZHMgZm9yIG91dHB1dC4gTGFzdGx5LCBJIHNlZSBgbmZ0X2N0X2V4cGVjdF9vYmpfZXZhbGAgaXMgYmVpbmcgY2hhbmdlZCB0byBkaXJlY3RseSB1c2UgYHByaXYtJmd0O3RpbWVvdXRgIGluc3RlYWQgb2YgbXVsdGlwbHlpbmcgYnkgYEhaYOKAlHdoaWNoIGlzIGJlY2F1c2Ugd2Ugbm93IGhhdmUgdGhlIHRpbWVvdXQgaW4gamlmZmllcy4KCk92ZXJhbGwsIHRoaXMgcGF0Y2ggc2VlbXMgbGlrZSBhIHNvbGlkLCBmdW5jdGlvbmFsIGltcHJvdmVtZW50LiBJdCBhaW1zIHRvIGVsaW1pbmF0ZSBhIHBvdGVudGlhbCBvdmVyZmxvdyBjb25kaXRpb24gb3IgZW5zdXJlIGNvcnJlY3QgdGltZW91dCB2YWx1ZXMgYXJlIHVzZWQuIFRoYXQgc291bmRzIGdvb2QsIGFuZCBiYXNlZCBvbiB0aGlzLCBJJiMzOTttIHRoaW5raW5nIGl0IGRlZmluaXRlbHkgd2FycmFudHMgc29tZSBzZXJpb3VzIGZ1enppbmcgdG8gbWFrZSBzdXJlIHRoaXMgaXMgc29saWQuIE5vIGNvcm5lciBjYXNlcyBzbGlwcGVkIHRocm91Z2guCgpOb3csIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIFRpbWUgdG8gdXNlIGBncmVwcGVyYCB0byBmaW5kIHRoZSBNYWtlZmlsZSBlbnRyeSBmb3IgYG5mdF9jdC5jYCBhbmQgZmlndXJlIG91dCB3aGF0IGtlcm5lbCBjb25maWcgb3B0aW9ucyBjb250cm9sIHRoaXMgcGFydCBvZiB0aGUgTmV0ZmlsdGVyIGNvZGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjMgMDY6MDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bmZ0X2N0XFwubyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9uZXRmaWx0ZXIvTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci9NYWtlZmlsZT0xMTE9b2JqLSQoQ09ORklHX05GVF9OVU1HRU4pXHQmIzQzOz0gbmZ0X251bWdlbi5vXG5uZXQvbmV0ZmlsdGVyL01ha2VmaWxlOjExMjpvYmotJChDT05GSUdfTkZUX0NUKVx0XHQmIzQzOz0gbmZ0X2N0Lm9cbm5ldC9uZXRmaWx0ZXIvTWFrZWZpbGUtMTEzLW9iai0kKENPTkZJR19ORlRfRkxPV19PRkZMT0FEKVx0JiM0Mzs9IG5mdF9mbG93X29mZmxvYWQub1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDA2OjAwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMzMDQKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiA2MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIGBORlRfQ1RgIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBpdGVtIGlzIGBORlRfQ1RgLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgYXJlIHRoZXJlIGFueSBkZXBlbmRlbnQgY29uZmlndXJhdGlvbnMgSSBuZWVkIHRvIGJlIGF3YXJlIG9mPyBMZXQmIzM5O3MgcXVpY2tseSB0cmFjZSB0aG9zZSBkZXBlbmRlbmNpZXMuIExvb2tpbmcsIGl0IGxvb2tzIGxpa2UgYE5GVF9DVGAgaXMgYnVpbHQgdXBvbiBgTkZfVEFCTEVTYCBhbmQgYE5GX0NPTk5UUkFDS2AuIEdvb2QsIHRoYXQmIzM5O3Mgd2hhdCBJIGV4cGVjdGVkLiBOb3csIEkgc2hvdWxkIHByb2JhYmx5IGRvdWJsZS1jaGVjayB0aGF0IGJ5IGV4YW1pbmluZyBgbmV0L25ldGZpbHRlci9LY29uZmlnYCwganVzdCB0byBiZSBjZXJ0YWluLiBJIHdhbnQgdG8gbWFrZSBzdXJlIEkgaGF2ZW4mIzM5O3QgbWlzc2VkIGFueXRoaW5nIGNydWNpYWwgaW4gdGVybXMgb2YgYnVpbGQgb3B0aW9ucyBvciByZWxhdGVkIGRlcGVuZGVuY2llcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMyAwNjowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTkZUX0NUJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9uZXRmaWx0ZXIvS2NvbmZpZz00ODQ9Y29uZmlnIE5GVF9OVU1HRU5cbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNDg5LVxubmV0L25ldGZpbHRlci9LY29uZmlnOjQ5MDpjb25maWcgTkZUX0NUXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNDkxLVx0ZGVwZW5kcyBvbiBORl9DT05OVFJBQ0tcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMyAwNjowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjA5CgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogMTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipBbmFseXppbmcgdGhlIGBORlRfQ1RgIERlZmluaXRpb24qKgoKT2theSwgc28gdGhlIHByb21wdCBkaXJlY3RzIG1lIHRvIGZ1bGx5IGRlZmluZSBgTkZUX0NUYC4gUmlnaHQsIHRoYXQmIzM5O3MgdGhlIHN0YXJ0aW5nIHBvaW50LiBJIG5lZWQgdG8gdHJlYXQgdGhpcyBhcyBpZiBJ4oCZbSBidWlsZGluZyBhIGtub3dsZWRnZSBncmFwaCBvZiBzb3J0cy4gTGV0JiMzOTtzIHNlZS4uLiB3aGF0IGFyZSB0aGUgbGF5ZXJzIGhlcmU/IEkmIzM5O20gbm90IGdvaW5nIHRvIGdpdmUgc29tZSBkZWZpbml0aW9uOyBpbnN0ZWFkLCB0aGUgcHJvbXB0IGlzIGFib3V0IGRldGVybWluaW5nICp3aGF0IGlzIHRoZSBkZWZpbml0aW9uKi4gSSBzaG91bGQgY2hlY2sgZm9yIGVkZ2UgY2FzZXMuCgpGaXJzdCwgSSBuZWVkIHRvIG1ha2UgY2VydGFpbiBpdCYjMzk7cyBhYm91dCB0aGUgdGVjaG5pY2FsIGRlZmluaXRpb24uIElmIGl0JiMzOTtzIGEgZG9tYWluIHNwZWNpZmljIHRlcm0sIGZvciBleGFtcGxlLCBpcyBpdCB0aGUgKkNyeXB0byBUb2tlbiosIG9yIGlzIGl0ICpOb3QgRm9yIFRoaXMqIGFzIGFuIGFjcm9ueW0gb3IgaW5pdGlhbGlzbS4gVGhpcyBpcyB0aGUgc3RhZ2UgSSYjMzk7bSBhdC4gTGV0JiMzOTtzIGZpbmQgb3V0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDA2OjAwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogNDg1LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyA0ODU6XHRcdHRyaXN0YXRlIFwmIzM0O05ldGZpbHRlciBuZl90YWJsZXMgbnVtYmVyIGdlbmVyYXRvciBtb2R1bGVcJiMzNDtcbiA0ODY6XHRcdGhlbHBcbiA0ODc6XHRcdCAgVGhpcyBvcHRpb24gYWRkcyB0aGUgbnVtYmVyIGdlbmVyYXRvciBleHByZXNzaW9uIHVzZWQgdG8gcGVyZm9ybVxuIDQ4ODpcdFx0ICBpbmNyZW1lbnRhbCBjb3VudGluZyBhbmQgcmFuZG9tIG51bWJlcnMgYm91bmQgdG8gYSB1cHBlciBsaW1pdC5cbiA0ODk6XHRcbiA0OTA6XHRjb25maWcgTkZUX0NUXG4gNDkxOlx0XHRkZXBlbmRzIG9uIE5GX0NPTk5UUkFDS1xuIDQ5MjpcdFx0dHJpc3RhdGUgXCYjMzQ7TmV0ZmlsdGVyIG5mX3RhYmxlcyBjb25udHJhY2sgbW9kdWxlXCYjMzQ7XG4gNDkzOlx0XHRoZWxwXG4gNDk0Olx0XHQgIFRoaXMgb3B0aW9uIGFkZHMgdGhlIFwmIzM0O2N0XCYjMzQ7IGV4cHJlc3Npb24gdGhhdCB5b3UgY2FuIHVzZSB0byBtYXRjaFxuIDQ5NTpcdFx0ICBjb25uZWN0aW9uIHRyYWNraW5nIGluZm9ybWF0aW9uIHN1Y2ggYXMgdGhlIGZsb3cgc3RhdGUuXG4gNDk2Olx0XG4gNDk3Olx0Y29uZmlnIE5GVF9FWFRIRFJfRENDUFxuIDQ5ODpcdFx0Ym9vbCBcJiMzNDtOZXRmaWx0ZXIgbmZfdGFibGVzIGV4dGhkciBEQ0NQIHN1cHBvcnQgKERFUFJFQ0FURUQpXCYjMzQ7XG4gNDk5Olx0XHRkZWZhdWx0IG5cbiA1MDA6XHRcdGhlbHBcbiA1MDE6XHRcdCAgVGhpcyBvcHRpb24gYWRkcyBzdXBwb3J0IGZvciBtYXRjaGluZyBvbiBEQ0NQIGV4dGVuc2lvbiBoZWFkZXJzLlxuIDUwMjpcdFxuIDUwMzpcdGNvbmZpZyBORlRfRkxPV19PRkZMT0FEXG4gNTA0Olx0XHRkZXBlbmRzIG9uIE5GX0NPTk5UUkFDSyBcdTAwMjZcdTAwMjYgTkZfRkxPV19UQUJMRVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDA2OjAwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQxMzUKCQkJCQkJCW91dHB1dDogMTI0CgkJCQkJCQl0aG91Z2h0czogMzIzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTmV0ZmlsdGVyIENvbm5lY3Rpb24gVHJhY2tpbmcgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIHRoZSBjb3JlIG9mIGl0IHJldm9sdmVzIGFyb3VuZCBgTkZUX0NUYCwgdGhhdCYjMzk7cyB0aGUgcHJpbWFyeSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBJIG5lZWQgdG8gYmUgY29uY2VybmVkIHdpdGggaGVyZS4gTXkgZm9jdXMgc2hvdWxkIGJlIG9uIHRoZSBjb25uZWN0aW9uIHRyYWNraW5nIGV4cGVjdGF0aW9ucyBvYmplY3RzLCBwYXJ0aWN1bGFybHkgdGhlc2UgZnVuY3Rpb25zOiBgbmZ0X2N0X2V4cGVjdF9vYmpfaW5pdGAsIGBuZnRfY3RfZXhwZWN0X29ial9ldmFsYCwgYG5mdF9jdF9leHBlY3Rfb2JqX2R1bXBgLCBhbmQgdGhlIG5ld2x5IGludHJvZHVjZWQgYG5mdF9jdF9leHBlY3RfdGltZW91dF9nZXRgLiBUaG9zZSBhcmUgbXkgY3JpdGljYWwgZm9jdXMgc3ltYm9scy4gSSYjMzk7bGwgbmVlZCB0byBzY3J1dGluaXplIGhvdyB0aGVzZSBhcmUgYmVpbmcgYWx0ZXJlZC4KCkxldCYjMzk7cyBzZWUuLi4gdGhlIHBhdGNoIGxpc3QgdGhvc2UgZm91ciBmdW5jdGlvbnMgc3BlY2lmaWNhbGx5LiBHb29kLCBjb25maXJtaW5nIG15IGluaXRpYWwgYXNzZXNzbWVudC4gTm93LCByZWdhcmRpbmcgY29uZmlndXJhdGlvbnMsIGl0IG1lbnRpb25zIGBORlRfQ1RgLCBgTkZfQ09OTlRSQUNLYCwgYW5kIGBORl9UQUJMRVNgLiBJIG5lZWQgdG8gYmUgc3VyZSBJJiMzOTttIGNhcHR1cmluZyB0aGUgZGVwZW5kZW5jaWVzIGNvcnJlY3RseS4gU2luY2UgYE5GVF9DVGAgaW1wbGljaXRseSBkZXBlbmRzIG9uIGBORl9DT05OVFJBQ0tgIChhbmQgdGhhdCYjMzk7cyBuZXN0ZWQgd2l0aGluIGFuIGBpZiBORl9UQUJMRVNgIGNvbmRpdGlvbmFsKSwganVzdCBzdGF0aW5nIGBORlRfQ1RgIHNob3VsZCBiZSBzdWZmaWNpZW50LiBUaGF0IHNob3VsZCBjb3ZlciBib3RoIGBORl9DT05OVFJBQ0tgIGFuZCBgTkZfVEFCTEVTYCBiZWluZyBwcmVzZW50LCByaWdodD8gTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrIHRoYXQuIFllcywgYnkgaXRzIHZlcnkgbmF0dXJlLCBgTkZUX0NUYCBuZWNlc3NpdGF0ZXMgYm90aCBvZiB0aG9zZSB1bmRlcmx5aW5nIGNvbXBvbmVudHMuCgpSaWdodCwgc28gdGhlIGNydXggb2YgdGhlIGNoYW5nZSBzZWVtcyB0byBiZSBhIGJ1ZyBmaXggcmVsYXRlZCB0byB0aGUgYG5mdF9jdF9leHBlY3Rfb2JqX2luaXRgIGZ1bmN0aW9uLiBJdCYjMzk7cyBhYm91dCBob3cgdGhlIHRpbWVvdXQgaXMgYmVpbmcgaGFuZGxlZCAtIHBvdGVudGlhbCBvdmVyZmxvdyB3aXRoIGppZmZpZXMgY29udmVyc2lvbiwgb3IgaW5jb3JyZWN0IHBhcnNpbmcvZXZhbHVhdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGRlZXAgd2l0aGluIHRoZSBuZXRmaWx0ZXIgc3Vic3lzdGVtLCBzbyBpdCYjMzk7cyBhIGNyaXRpY2FsIGFyZWEgdG8gZm9jdXMgb24uIE9rYXksIEkmIzM5O3ZlIGdvdCBhIGdvb2QgaGFuZGxlIG9uIGl0IG5vdzsgdGltZSB0byBzZXQgdGhlIHJlc3VsdHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDA2OjAwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtORlRfQ1QmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtuZnRfY3RfZXhwZWN0X29ial9pbml0JiMzNDssCiAgICAmIzM0O25mdF9jdF9leHBlY3Rfb2JqX2V2YWwmIzM0OywKICAgICYjMzQ7bmZ0X2N0X2V4cGVjdF9vYmpfZHVtcCYjMzQ7LAogICAgJiMzNDtuZnRfY3RfZXhwZWN0X3RpbWVvdXRfZ2V0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSB0aW1lb3V0IHBhcnNpbmcgYW5kIGV2YWx1YXRpb24gbG9naWMgZm9yIG5mdF9jdF9leHBlY3Rfb2JqIGluIG5ldGZpbHRlciwgZml4aW5nIGEgcG90ZW50aWFsIG92ZXJmbG93IGFuZCBpbmNvcnJlY3QgdGltZW91dCBoYW5kbGluZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkZUX0NUJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bmZ0X2N0X2V4cGVjdF9vYmpfaW5pdCYjMzQ7LAogICAgJiMzNDtuZnRfY3RfZXhwZWN0X29ial9ldmFsJiMzNDssCiAgICAmIzM0O25mdF9jdF9leHBlY3Rfb2JqX2R1bXAmIzM0OywKICAgICYjMzQ7bmZ0X2N0X2V4cGVjdF90aW1lb3V0X2dldCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgdGltZW91dCBwYXJzaW5nIGFuZCBldmFsdWF0aW9uIGxvZ2ljIGZvciBuZnRfY3RfZXhwZWN0X29iaiBpbiBuZXRmaWx0ZXIsIGZpeGluZyBhIHBvdGVudGlhbCBvdmVyZmxvdyBhbmQgaW5jb3JyZWN0IHRpbWVvdXQgaGFuZGxpbmcuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwNTo1OTo1NC42MTAyMDMzMzlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDA3MjY4MjU1OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORlRfQ1RcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZnRfY3RfZXhwZWN0X29ial9pbml0XCIsXG4gICAgXCJuZnRfY3RfZXhwZWN0X29ial9ldmFsXCIsXG4gICAgXCJuZnRfY3RfZXhwZWN0X29ial9kdW1wXCIsXG4gICAgXCJuZnRfY3RfZXhwZWN0X3RpbWVvdXRfZ2V0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHRpbWVvdXQgcGFyc2luZyBhbmQgZXZhbHVhdGlvbiBsb2dpYyBmb3IgbmZ0X2N0X2V4cGVjdF9vYmogaW4gbmV0ZmlsdGVyLCBmaXhpbmcgYSBwb3RlbnRpYWwgb3ZlcmZsb3cgYW5kIGluY29ycmVjdCB0aW1lb3V0IGhhbmRsaW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwNTo1OTo1NC42MTAyMDc4MTlaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2NDMxMDM1MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGQ3ODkxMDg2MGE1Y2MzYzI2ZmZjZWYzM2M0OGE5YzhjYWM3MWM4NWNcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBKdW4gMjMgMDU6NTk6NTMgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L25ldGZpbHRlci9uZnRfY3QuYyBiL25ldC9uZXRmaWx0ZXIvbmZ0X2N0LmNcXG5pbmRleCA5NTgwNTRkZDJlMmVjYy4uMDNhODhjNzdlMGYwMjggMTAwNjQ0XFxuLS0tIGEvbmV0L25ldGZpbHRlci9uZnRfY3QuY1xcbisrKyBiL25ldC9uZXRmaWx0ZXIvbmZ0X2N0LmNcXG5AQCAtMTIxNSwxMSArMTIxNSwyMyBAQCBzdHJ1Y3QgbmZ0X2N0X2V4cGVjdF9vYmoge1xcbiBcXHR1MzJcXHRcXHR0aW1lb3V0O1xcbiB9O1xcbiBcXG4rc3RhdGljIGludCBuZnRfY3RfZXhwZWN0X3RpbWVvdXRfZ2V0KGNvbnN0IHN0cnVjdCBubGF0dHIgKmF0dHIsIHUzMiAqdmFsKVxcbit7XFxuK1xcdHVuc2lnbmVkIGxvbmcgamlmZmllc192YWwgPSBtc2Vjc190b19qaWZmaWVzKG5sYV9nZXRfdTMyKGF0dHIpKTtcXG4rXFxuK1xcdGlmIChqaWZmaWVzX3ZhbCBcXHUwMDNlIFVJTlRfTUFYKVxcbitcXHRcXHRyZXR1cm4gLUVSQU5HRTtcXG4rXFxuK1xcdCp2YWwgPSBqaWZmaWVzX3ZhbDtcXG4rXFx0cmV0dXJuIDA7XFxuK31cXG4rXFxuIHN0YXRpYyBpbnQgbmZ0X2N0X2V4cGVjdF9vYmpfaW5pdChjb25zdCBzdHJ1Y3QgbmZ0X2N0eCAqY3R4LFxcbiBcXHRcXHRcXHRcXHQgIGNvbnN0IHN0cnVjdCBubGF0dHIgKiBjb25zdCB0YltdLFxcbiBcXHRcXHRcXHRcXHQgIHN0cnVjdCBuZnRfb2JqZWN0ICpvYmopXFxuIHtcXG4gXFx0c3RydWN0IG5mdF9jdF9leHBlY3Rfb2JqICpwcml2ID0gbmZ0X29ial9kYXRhKG9iaik7XFxuK1xcdGludCBlcnI7XFxuIFxcbiBcXHRpZiAoIXRiW05GVEFfQ1RfRVhQRUNUX0w0UFJPVE9dIHx8XFxuIFxcdCAgICAhdGJbTkZUQV9DVF9FWFBFQ1RfRFBPUlRdIHx8XFxuQEAgLTEyNTQsOCArMTI2NiwxMSBAQCBzdGF0aWMgaW50IG5mdF9jdF9leHBlY3Rfb2JqX2luaXQoY29uc3Qgc3RydWN0IG5mdF9jdHggKmN0eCxcXG4gXFx0XFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xcbiBcXHR9XFxuIFxcbitcXHRlcnIgPSBuZnRfY3RfZXhwZWN0X3RpbWVvdXRfZ2V0KHRiW05GVEFfQ1RfRVhQRUNUX1RJTUVPVVRdLCBcXHUwMDI2cHJpdi1cXHUwMDNldGltZW91dCk7XFxuK1xcdGlmIChlcnIpXFxuK1xcdFxcdHJldHVybiBlcnI7XFxuK1xcbiBcXHRwcml2LVxcdTAwM2VkcG9ydCA9IG5sYV9nZXRfYmUxNih0YltORlRBX0NUX0VYUEVDVF9EUE9SVF0pO1xcbi1cXHRwcml2LVxcdTAwM2V0aW1lb3V0ID0gbmxhX2dldF91MzIodGJbTkZUQV9DVF9FWFBFQ1RfVElNRU9VVF0pO1xcbiBcXHRwcml2LVxcdTAwM2VzaXplID0gbmxhX2dldF91OCh0YltORlRBX0NUX0VYUEVDVF9TSVpFXSk7XFxuIFxcbiBcXHRyZXR1cm4gbmZfY3RfbmV0bnNfZ2V0KGN0eC1cXHUwMDNlbmV0LCBjdHgtXFx1MDAzZWZhbWlseSk7XFxuQEAgLTEyNzUsNyArMTI5MCw3IEBAIHN0YXRpYyBpbnQgbmZ0X2N0X2V4cGVjdF9vYmpfZHVtcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbiBcXHRpZiAobmxhX3B1dF9iZTE2KHNrYiwgTkZUQV9DVF9FWFBFQ1RfTDNQUk9UTywgaHRvbnMocHJpdi1cXHUwMDNlbDNudW0pKSB8fFxcbiBcXHQgICAgbmxhX3B1dF91OChza2IsIE5GVEFfQ1RfRVhQRUNUX0w0UFJPVE8sIHByaXYtXFx1MDAzZWw0cHJvdG8pIHx8XFxuIFxcdCAgICBubGFfcHV0X2JlMTYoc2tiLCBORlRBX0NUX0VYUEVDVF9EUE9SVCwgcHJpdi1cXHUwMDNlZHBvcnQpIHx8XFxuLVxcdCAgICBubGFfcHV0X3UzMihza2IsIE5GVEFfQ1RfRVhQRUNUX1RJTUVPVVQsIHByaXYtXFx1MDAzZXRpbWVvdXQpIHx8XFxuK1xcdCAgICBubGFfcHV0X3UzMihza2IsIE5GVEFfQ1RfRVhQRUNUX1RJTUVPVVQsIGppZmZpZXNfdG9fbXNlY3MocHJpdi1cXHUwMDNldGltZW91dCkpIHx8XFxuIFxcdCAgICBubGFfcHV0X3U4KHNrYiwgTkZUQV9DVF9FWFBFQ1RfU0laRSwgcHJpdi1cXHUwMDNlc2l6ZSkpXFxuIFxcdFxcdHJldHVybiAtMTtcXG4gXFxuQEAgLTEzMjUsNyArMTM0MCw3IEBAIHN0YXRpYyB2b2lkIG5mdF9jdF9leHBlY3Rfb2JqX2V2YWwoc3RydWN0IG5mdF9vYmplY3QgKm9iaixcXG4gXFx0XFx0ICAgICAgICAgIFxcdTAwMjZjdC1cXHUwMDNldHVwbGVoYXNoWyFkaXJdLnR1cGxlLnNyYy51MyxcXG4gXFx0XFx0ICAgICAgICAgIFxcdTAwMjZjdC1cXHUwMDNldHVwbGVoYXNoWyFkaXJdLnR1cGxlLmRzdC51MyxcXG4gXFx0XFx0ICAgICAgICAgIHByaXYtXFx1MDAzZWw0cHJvdG8sIE5VTEwsIFxcdTAwMjZwcml2LVxcdTAwM2VkcG9ydCk7XFxuLVxcdGV4cC1cXHUwMDNldGltZW91dCArPSBwcml2LVxcdTAwM2V0aW1lb3V0ICogSFo7XFxuK1xcdGV4cC1cXHUwMDNldGltZW91dCArPSBwcml2LVxcdTAwM2V0aW1lb3V0O1xcbiBcXG4gXFx0aWYgKG5mX2N0X2V4cGVjdF9yZWxhdGVkKGV4cCwgMCkgIT0gMClcXG4gXFx0XFx0cmVncy1cXHUwMDNldmVyZGljdC5jb2RlID0gTkZfRFJPUDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMDU6NTk6NTUuMDc1NDMwNjVaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE5NjA3NDQ0NzQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5GVF9DVFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm5mdF9jdF9leHBlY3Rfb2JqX2luaXRcIixcbiAgICBcIm5mdF9jdF9leHBlY3Rfb2JqX2V2YWxcIixcbiAgICBcIm5mdF9jdF9leHBlY3Rfb2JqX2R1bXBcIixcbiAgICBcIm5mdF9jdF9leHBlY3RfdGltZW91dF9nZXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgdGltZW91dCBwYXJzaW5nIGFuZCBldmFsdWF0aW9uIGxvZ2ljIGZvciBuZnRfY3RfZXhwZWN0X29iaiBpbiBuZXRmaWx0ZXIsIGZpeGluZyBhIHBvdGVudGlhbCBvdmVyZmxvdyBhbmQgaW5jb3JyZWN0IHRpbWVvdXQgaGFuZGxpbmcuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZDc4OTEwODYwYTVjYzNjMjZmZmNlZjMzYzQ4YTljOGNhYzcxYzg1Y1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVuIDIzIDA1OjU5OjUzIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L25ldGZpbHRlci9uZnRfY3QuYyBiL25ldC9uZXRmaWx0ZXIvbmZ0X2N0LmNcbmluZGV4IDk1ODA1NGRkMmUyZWNjLi4wM2E4OGM3N2UwZjAyOCAxMDA2NDRcbi0tLSBhL25ldC9uZXRmaWx0ZXIvbmZ0X2N0LmNcbisrKyBiL25ldC9uZXRmaWx0ZXIvbmZ0X2N0LmNcbkBAIC0xMjE1LDExICsxMjE1LDIzIEBAIHN0cnVjdCBuZnRfY3RfZXhwZWN0X29iaiB7XG4gXHR1MzJcdFx0dGltZW91dDtcbiB9O1xuIFxuK3N0YXRpYyBpbnQgbmZ0X2N0X2V4cGVjdF90aW1lb3V0X2dldChjb25zdCBzdHJ1Y3QgbmxhdHRyICphdHRyLCB1MzIgKnZhbClcbit7XG4rXHR1bnNpZ25lZCBsb25nIGppZmZpZXNfdmFsID0gbXNlY3NfdG9famlmZmllcyhubGFfZ2V0X3UzMihhdHRyKSk7XG4rXG4rXHRpZiAoamlmZmllc192YWwgXHUwMDNlIFVJTlRfTUFYKVxuK1x0XHRyZXR1cm4gLUVSQU5HRTtcbitcbitcdCp2YWwgPSBqaWZmaWVzX3ZhbDtcbitcdHJldHVybiAwO1xuK31cbitcbiBzdGF0aWMgaW50IG5mdF9jdF9leHBlY3Rfb2JqX2luaXQoY29uc3Qgc3RydWN0IG5mdF9jdHggKmN0eCxcbiBcdFx0XHRcdCAgY29uc3Qgc3RydWN0IG5sYXR0ciAqIGNvbnN0IHRiW10sXG4gXHRcdFx0XHQgIHN0cnVjdCBuZnRfb2JqZWN0ICpvYmopXG4ge1xuIFx0c3RydWN0IG5mdF9jdF9leHBlY3Rfb2JqICpwcml2ID0gbmZ0X29ial9kYXRhKG9iaik7XG4rXHRpbnQgZXJyO1xuIFxuIFx0aWYgKCF0YltORlRBX0NUX0VYUEVDVF9MNFBST1RPXSB8fFxuIFx0ICAgICF0YltORlRBX0NUX0VYUEVDVF9EUE9SVF0gfHxcbkBAIC0xMjU0LDggKzEyNjYsMTEgQEAgc3RhdGljIGludCBuZnRfY3RfZXhwZWN0X29ial9pbml0KGNvbnN0IHN0cnVjdCBuZnRfY3R4ICpjdHgsXG4gXHRcdHJldHVybiAtRU9QTk9UU1VQUDtcbiBcdH1cbiBcbitcdGVyciA9IG5mdF9jdF9leHBlY3RfdGltZW91dF9nZXQodGJbTkZUQV9DVF9FWFBFQ1RfVElNRU9VVF0sIFx1MDAyNnByaXYtXHUwMDNldGltZW91dCk7XG4rXHRpZiAoZXJyKVxuK1x0XHRyZXR1cm4gZXJyO1xuK1xuIFx0cHJpdi1cdTAwM2VkcG9ydCA9IG5sYV9nZXRfYmUxNih0YltORlRBX0NUX0VYUEVDVF9EUE9SVF0pO1xuLVx0cHJpdi1cdTAwM2V0aW1lb3V0ID0gbmxhX2dldF91MzIodGJbTkZUQV9DVF9FWFBFQ1RfVElNRU9VVF0pO1xuIFx0cHJpdi1cdTAwM2VzaXplID0gbmxhX2dldF91OCh0YltORlRBX0NUX0VYUEVDVF9TSVpFXSk7XG4gXG4gXHRyZXR1cm4gbmZfY3RfbmV0bnNfZ2V0KGN0eC1cdTAwM2VuZXQsIGN0eC1cdTAwM2VmYW1pbHkpO1xuQEAgLTEyNzUsNyArMTI5MCw3IEBAIHN0YXRpYyBpbnQgbmZ0X2N0X2V4cGVjdF9vYmpfZHVtcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0aWYgKG5sYV9wdXRfYmUxNihza2IsIE5GVEFfQ1RfRVhQRUNUX0wzUFJPVE8sIGh0b25zKHByaXYtXHUwMDNlbDNudW0pKSB8fFxuIFx0ICAgIG5sYV9wdXRfdTgoc2tiLCBORlRBX0NUX0VYUEVDVF9MNFBST1RPLCBwcml2LVx1MDAzZWw0cHJvdG8pIHx8XG4gXHQgICAgbmxhX3B1dF9iZTE2KHNrYiwgTkZUQV9DVF9FWFBFQ1RfRFBPUlQsIHByaXYtXHUwMDNlZHBvcnQpIHx8XG4tXHQgICAgbmxhX3B1dF91MzIoc2tiLCBORlRBX0NUX0VYUEVDVF9USU1FT1VULCBwcml2LVx1MDAzZXRpbWVvdXQpIHx8XG4rXHQgICAgbmxhX3B1dF91MzIoc2tiLCBORlRBX0NUX0VYUEVDVF9USU1FT1VULCBqaWZmaWVzX3RvX21zZWNzKHByaXYtXHUwMDNldGltZW91dCkpIHx8XG4gXHQgICAgbmxhX3B1dF91OChza2IsIE5GVEFfQ1RfRVhQRUNUX1NJWkUsIHByaXYtXHUwMDNlc2l6ZSkpXG4gXHRcdHJldHVybiAtMTtcbiBcbkBAIC0xMzI1LDcgKzEzNDAsNyBAQCBzdGF0aWMgdm9pZCBuZnRfY3RfZXhwZWN0X29ial9ldmFsKHN0cnVjdCBuZnRfb2JqZWN0ICpvYmosXG4gXHRcdCAgICAgICAgICBcdTAwMjZjdC1cdTAwM2V0dXBsZWhhc2hbIWRpcl0udHVwbGUuc3JjLnUzLFxuIFx0XHQgICAgICAgICAgXHUwMDI2Y3QtXHUwMDNldHVwbGVoYXNoWyFkaXJdLnR1cGxlLmRzdC51MyxcbiBcdFx0ICAgICAgICAgIHByaXYtXHUwMDNlbDRwcm90bywgTlVMTCwgXHUwMDI2cHJpdi1cdTAwM2VkcG9ydCk7XG4tXHRleHAtXHUwMDNldGltZW91dCArPSBwcml2LVx1MDAzZXRpbWVvdXQgKiBIWjtcbitcdGV4cC1cdTAwM2V0aW1lb3V0ICs9IHByaXYtXHUwMDNldGltZW91dDtcbiBcbiBcdGlmIChuZl9jdF9leHBlY3RfcmVsYXRlZChleHAsIDApICE9IDApXG4gXHRcdHJlZ3MtXHUwMDNldmVyZGljdC5jb2RlID0gTkZfRFJPUDtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDA1OjU5OjU1LjA3NTQ0MjM5OVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU2NjU3NDE2NDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBDb25uZWN0aW9uIFRyYWNraW5nIEV4cGVjdGF0aW9uIFRpbWVvdXQgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdHdlYWtzIHRoZSBjb25uZWN0aW9uIHRyYWNraW5nIGV4cGVjdGF0aW9uIHRpbWVvdXQgaGFuZGxpbmcgd2l0aGluIHRoZSBOZXRmaWx0ZXIgc3Vic3lzdGVtLCBzcGVjaWZpY2FsbHkgaW4gYG5ldC9uZXRmaWx0ZXIvbmZ0X2N0LmNgLiBJdCBzZWVtcyB0aGV5J3JlIG1ha2luZyBzb21lIGltcG9ydGFudCBjaGFuZ2VzIHRvIGhvdyB0aGUgYHRpbWVvdXRgIHZhbHVlIGlzIGhhbmRsZWQgZm9yIGBuZnRfY3RfZXhwZWN0X29iamAuXG5cbkVzc2VudGlhbGx5LCBpdCBsb29rcyBsaWtlIHRoZXkncmUgYWRkcmVzc2luZyBhIHBvdGVudGlhbCBidWcgb3IgdnVsbmVyYWJpbGl0eSByZWxhdGVkIHRvIHRpbWVvdXRzLiBUaGUgY2hhbmdlcyBpbnZvbHZlIGludHJvZHVjaW5nIGEgbmV3IGZ1bmN0aW9uLCBgbmZ0X2N0X2V4cGVjdF90aW1lb3V0X2dldGAsIHdoaWNoIGlzIGNydWNpYWwuIEl0IGNvbnZlcnRzIHRoZSB0aW1lb3V0IHZhbHVlIGZyb20gbWlsbGlzZWNvbmRzIHRvIGppZmZpZXMgKmFuZCogY3J1Y2lhbGx5LCBpbmNsdWRlcyBvdmVyZmxvdyBjaGVja3MuICBUaGlzIGlzIHNtYXJ0OyBpbnRlZ2VyIG92ZXJmbG93cyB3aXRoIHRpbWUgY2FsY3VsYXRpb25zIGFyZSBub3RvcmlvdXNseSB0cmlja3kgdG8gZGVidWcuIFRoZXkncmUgdXBkYXRpbmcgdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBgbmZ0X2N0X2V4cGVjdF9vYmpgIHdpdGggYG5mdF9jdF9leHBlY3RfdGltZW91dF9nZXRgLCB3aGljaCBpcyB0aGUgbG9naWNhbCBwbGFjZS4gVGhlIGR1bXBpbmcgZnVuY3Rpb24gKGBuZnRfY3RfZXhwZWN0X29ial9kdW1wYCkgZ2V0cyB1cGRhdGVkIHRvIGNvbnZlcnQgdGhlIHN0b3JlZCBqaWZmaWVzIGJhY2sgdG8gbWlsbGlzZWNvbmRzIGZvciBvdXRwdXQuIExhc3RseSwgSSBzZWUgYG5mdF9jdF9leHBlY3Rfb2JqX2V2YWxgIGlzIGJlaW5nIGNoYW5nZWQgdG8gZGlyZWN0bHkgdXNlIGBwcml2LVx1MDAzZXRpbWVvdXRgIGluc3RlYWQgb2YgbXVsdGlwbHlpbmcgYnkgYEhaYOKAlHdoaWNoIGlzIGJlY2F1c2Ugd2Ugbm93IGhhdmUgdGhlIHRpbWVvdXQgaW4gamlmZmllcy5cblxuT3ZlcmFsbCwgdGhpcyBwYXRjaCBzZWVtcyBsaWtlIGEgc29saWQsIGZ1bmN0aW9uYWwgaW1wcm92ZW1lbnQuIEl0IGFpbXMgdG8gZWxpbWluYXRlIGEgcG90ZW50aWFsIG92ZXJmbG93IGNvbmRpdGlvbiBvciBlbnN1cmUgY29ycmVjdCB0aW1lb3V0IHZhbHVlcyBhcmUgdXNlZC4gVGhhdCBzb3VuZHMgZ29vZCwgYW5kIGJhc2VkIG9uIHRoaXMsIEknbSB0aGlua2luZyBpdCBkZWZpbml0ZWx5IHdhcnJhbnRzIHNvbWUgc2VyaW91cyBmdXp6aW5nIHRvIG1ha2Ugc3VyZSB0aGlzIGlzIHNvbGlkLiBObyBjb3JuZXIgY2FzZXMgc2xpcHBlZCB0aHJvdWdoLlxuXG5Ob3csIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIFRpbWUgdG8gdXNlIGBncmVwcGVyYCB0byBmaW5kIHRoZSBNYWtlZmlsZSBlbnRyeSBmb3IgYG5mdF9jdC5jYCBhbmQgZmlndXJlIG91dCB3aGF0IGtlcm5lbCBjb25maWcgb3B0aW9ucyBjb250cm9sIHRoaXMgcGFydCBvZiB0aGUgTmV0ZmlsdGVyIGNvZGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1ODAsIk91dHB1dFRva2VucyI6MzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTEsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwNjowMDowMC43NDExODY1NjNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjAwNjQzMDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibmZ0X2N0XFxcXC5vXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9uZXRmaWx0ZXIvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L25ldGZpbHRlci9NYWtlZmlsZT0xMTE9b2JqLSQoQ09ORklHX05GVF9OVU1HRU4pXFx0Kz0gbmZ0X251bWdlbi5vXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZToxMTI6b2JqLSQoQ09ORklHX05GVF9DVClcXHRcXHQrPSBuZnRfY3Qub1xcbm5ldC9uZXRmaWx0ZXIvTWFrZWZpbGUtMTEzLW9iai0kKENPTkZJR19ORlRfRkxPV19PRkZMT0FEKVxcdCs9IG5mdF9mbG93X29mZmxvYWQub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwNjowMDowMC44MDEyNTY1MjJaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzE4MjQ0NDIyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgYE5GVF9DVGAgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHNvIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24gaXRlbSBpcyBgTkZUX0NUYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGFyZSB0aGVyZSBhbnkgZGVwZW5kZW50IGNvbmZpZ3VyYXRpb25zIEkgbmVlZCB0byBiZSBhd2FyZSBvZj8gTGV0J3MgcXVpY2tseSB0cmFjZSB0aG9zZSBkZXBlbmRlbmNpZXMuIExvb2tpbmcsIGl0IGxvb2tzIGxpa2UgYE5GVF9DVGAgaXMgYnVpbHQgdXBvbiBgTkZfVEFCTEVTYCBhbmQgYE5GX0NPTk5UUkFDS2AuIEdvb2QsIHRoYXQncyB3aGF0IEkgZXhwZWN0ZWQuIE5vdywgSSBzaG91bGQgcHJvYmFibHkgZG91YmxlLWNoZWNrIHRoYXQgYnkgZXhhbWluaW5nIGBuZXQvbmV0ZmlsdGVyL0tjb25maWdgLCBqdXN0IHRvIGJlIGNlcnRhaW4uIEkgd2FudCB0byBtYWtlIHN1cmUgSSBoYXZlbid0IG1pc3NlZCBhbnl0aGluZyBjcnVjaWFsIGluIHRlcm1zIG9mIGJ1aWxkIG9wdGlvbnMgb3IgcmVsYXRlZCBkZXBlbmRlbmNpZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMzMDQsIk91dHB1dFRva2VucyI6MzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwNjowMDowNC4xMTk1MDQwODRaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDAxODUwMzgyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBORlRfQ1RcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L25ldGZpbHRlci9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9uZXRmaWx0ZXIvS2NvbmZpZz00ODQ9Y29uZmlnIE5GVF9OVU1HRU5cXG4tLVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy00ODktXFxubmV0L25ldGZpbHRlci9LY29uZmlnOjQ5MDpjb25maWcgTkZUX0NUXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTQ5MS1cXHRkZXBlbmRzIG9uIE5GX0NPTk5UUkFDS1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwNjowMDowNC41MjEzNTk4OTZaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDMzMDk3MDQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkFuYWx5emluZyB0aGUgYE5GVF9DVGAgRGVmaW5pdGlvbioqXG5cbk9rYXksIHNvIHRoZSBwcm9tcHQgZGlyZWN0cyBtZSB0byBmdWxseSBkZWZpbmUgYE5GVF9DVGAuIFJpZ2h0LCB0aGF0J3MgdGhlIHN0YXJ0aW5nIHBvaW50LiBJIG5lZWQgdG8gdHJlYXQgdGhpcyBhcyBpZiBJ4oCZbSBidWlsZGluZyBhIGtub3dsZWRnZSBncmFwaCBvZiBzb3J0cy4gTGV0J3Mgc2VlLi4uIHdoYXQgYXJlIHRoZSBsYXllcnMgaGVyZT8gSSdtIG5vdCBnb2luZyB0byBnaXZlIHNvbWUgZGVmaW5pdGlvbjsgaW5zdGVhZCwgdGhlIHByb21wdCBpcyBhYm91dCBkZXRlcm1pbmluZyAqd2hhdCBpcyB0aGUgZGVmaW5pdGlvbiouIEkgc2hvdWxkIGNoZWNrIGZvciBlZGdlIGNhc2VzLlxuXG5GaXJzdCwgSSBuZWVkIHRvIG1ha2UgY2VydGFpbiBpdCdzIGFib3V0IHRoZSB0ZWNobmljYWwgZGVmaW5pdGlvbi4gSWYgaXQncyBhIGRvbWFpbiBzcGVjaWZpYyB0ZXJtLCBmb3IgZXhhbXBsZSwgaXMgaXQgdGhlICpDcnlwdG8gVG9rZW4qLCBvciBpcyBpdCAqTm90IEZvciBUaGlzKiBhcyBhbiBhY3JvbnltIG9yIGluaXRpYWxpc20uIFRoaXMgaXMgdGhlIHN0YWdlIEknbSBhdC4gTGV0J3MgZmluZCBvdXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM2MDksIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwNjowMDowNy41NTQ0NTk1MDRaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjY0NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L25ldGZpbHRlci9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDQ4NSxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDQ4NTpcXHRcXHR0cmlzdGF0ZSBcXFwiTmV0ZmlsdGVyIG5mX3RhYmxlcyBudW1iZXIgZ2VuZXJhdG9yIG1vZHVsZVxcXCJcXG4gNDg2OlxcdFxcdGhlbHBcXG4gNDg3OlxcdFxcdCAgVGhpcyBvcHRpb24gYWRkcyB0aGUgbnVtYmVyIGdlbmVyYXRvciBleHByZXNzaW9uIHVzZWQgdG8gcGVyZm9ybVxcbiA0ODg6XFx0XFx0ICBpbmNyZW1lbnRhbCBjb3VudGluZyBhbmQgcmFuZG9tIG51bWJlcnMgYm91bmQgdG8gYSB1cHBlciBsaW1pdC5cXG4gNDg5OlxcdFxcbiA0OTA6XFx0Y29uZmlnIE5GVF9DVFxcbiA0OTE6XFx0XFx0ZGVwZW5kcyBvbiBORl9DT05OVFJBQ0tcXG4gNDkyOlxcdFxcdHRyaXN0YXRlIFxcXCJOZXRmaWx0ZXIgbmZfdGFibGVzIGNvbm50cmFjayBtb2R1bGVcXFwiXFxuIDQ5MzpcXHRcXHRoZWxwXFxuIDQ5NDpcXHRcXHQgIFRoaXMgb3B0aW9uIGFkZHMgdGhlIFxcXCJjdFxcXCIgZXhwcmVzc2lvbiB0aGF0IHlvdSBjYW4gdXNlIHRvIG1hdGNoXFxuIDQ5NTpcXHRcXHQgIGNvbm5lY3Rpb24gdHJhY2tpbmcgaW5mb3JtYXRpb24gc3VjaCBhcyB0aGUgZmxvdyBzdGF0ZS5cXG4gNDk2OlxcdFxcbiA0OTc6XFx0Y29uZmlnIE5GVF9FWFRIRFJfRENDUFxcbiA0OTg6XFx0XFx0Ym9vbCBcXFwiTmV0ZmlsdGVyIG5mX3RhYmxlcyBleHRoZHIgRENDUCBzdXBwb3J0IChERVBSRUNBVEVEKVxcXCJcXG4gNDk5OlxcdFxcdGRlZmF1bHQgblxcbiA1MDA6XFx0XFx0aGVscFxcbiA1MDE6XFx0XFx0ICBUaGlzIG9wdGlvbiBhZGRzIHN1cHBvcnQgZm9yIG1hdGNoaW5nIG9uIERDQ1AgZXh0ZW5zaW9uIGhlYWRlcnMuXFxuIDUwMjpcXHRcXG4gNTAzOlxcdGNvbmZpZyBORlRfRkxPV19PRkZMT0FEXFxuIDUwNDpcXHRcXHRkZXBlbmRzIG9uIE5GX0NPTk5UUkFDSyBcXHUwMDI2XFx1MDAyNiBORl9GTE9XX1RBQkxFXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDA2OjAwOjA3LjU1NDU4NzU5NFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjcwNDIzNzE0OTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBOZXRmaWx0ZXIgQ29ubmVjdGlvbiBUcmFja2luZyBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIHRoZSBjb3JlIG9mIGl0IHJldm9sdmVzIGFyb3VuZCBgTkZUX0NUYCwgdGhhdCdzIHRoZSBwcmltYXJ5IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIEkgbmVlZCB0byBiZSBjb25jZXJuZWQgd2l0aCBoZXJlLiBNeSBmb2N1cyBzaG91bGQgYmUgb24gdGhlIGNvbm5lY3Rpb24gdHJhY2tpbmcgZXhwZWN0YXRpb25zIG9iamVjdHMsIHBhcnRpY3VsYXJseSB0aGVzZSBmdW5jdGlvbnM6IGBuZnRfY3RfZXhwZWN0X29ial9pbml0YCwgYG5mdF9jdF9leHBlY3Rfb2JqX2V2YWxgLCBgbmZ0X2N0X2V4cGVjdF9vYmpfZHVtcGAsIGFuZCB0aGUgbmV3bHkgaW50cm9kdWNlZCBgbmZ0X2N0X2V4cGVjdF90aW1lb3V0X2dldGAuIFRob3NlIGFyZSBteSBjcml0aWNhbCBmb2N1cyBzeW1ib2xzLiBJJ2xsIG5lZWQgdG8gc2NydXRpbml6ZSBob3cgdGhlc2UgYXJlIGJlaW5nIGFsdGVyZWQuXG5cbkxldCdzIHNlZS4uLiB0aGUgcGF0Y2ggbGlzdCB0aG9zZSBmb3VyIGZ1bmN0aW9ucyBzcGVjaWZpY2FsbHkuIEdvb2QsIGNvbmZpcm1pbmcgbXkgaW5pdGlhbCBhc3Nlc3NtZW50LiBOb3csIHJlZ2FyZGluZyBjb25maWd1cmF0aW9ucywgaXQgbWVudGlvbnMgYE5GVF9DVGAsIGBORl9DT05OVFJBQ0tgLCBhbmQgYE5GX1RBQkxFU2AuIEkgbmVlZCB0byBiZSBzdXJlIEknbSBjYXB0dXJpbmcgdGhlIGRlcGVuZGVuY2llcyBjb3JyZWN0bHkuIFNpbmNlIGBORlRfQ1RgIGltcGxpY2l0bHkgZGVwZW5kcyBvbiBgTkZfQ09OTlRSQUNLYCAoYW5kIHRoYXQncyBuZXN0ZWQgd2l0aGluIGFuIGBpZiBORl9UQUJMRVNgIGNvbmRpdGlvbmFsKSwganVzdCBzdGF0aW5nIGBORlRfQ1RgIHNob3VsZCBiZSBzdWZmaWNpZW50LiBUaGF0IHNob3VsZCBjb3ZlciBib3RoIGBORl9DT05OVFJBQ0tgIGFuZCBgTkZfVEFCTEVTYCBiZWluZyBwcmVzZW50LCByaWdodD8gTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrIHRoYXQuIFllcywgYnkgaXRzIHZlcnkgbmF0dXJlLCBgTkZUX0NUYCBuZWNlc3NpdGF0ZXMgYm90aCBvZiB0aG9zZSB1bmRlcmx5aW5nIGNvbXBvbmVudHMuXG5cblJpZ2h0LCBzbyB0aGUgY3J1eCBvZiB0aGUgY2hhbmdlIHNlZW1zIHRvIGJlIGEgYnVnIGZpeCByZWxhdGVkIHRvIHRoZSBgbmZ0X2N0X2V4cGVjdF9vYmpfaW5pdGAgZnVuY3Rpb24uIEl0J3MgYWJvdXQgaG93IHRoZSB0aW1lb3V0IGlzIGJlaW5nIGhhbmRsZWQgLSBwb3RlbnRpYWwgb3ZlcmZsb3cgd2l0aCBqaWZmaWVzIGNvbnZlcnNpb24sIG9yIGluY29ycmVjdCBwYXJzaW5nL2V2YWx1YXRpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBkZWVwIHdpdGhpbiB0aGUgbmV0ZmlsdGVyIHN1YnN5c3RlbSwgc28gaXQncyBhIGNyaXRpY2FsIGFyZWEgdG8gZm9jdXMgb24uIE9rYXksIEkndmUgZ290IGEgZ29vZCBoYW5kbGUgb24gaXQgbm93OyB0aW1lIHRvIHNldCB0aGUgcmVzdWx0cy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDEzNSwiT3V0cHV0VG9rZW5zIjoxMjQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMjMsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwNjowMDoxNC41OTY5NjE2NloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg1OTA4NTI4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORlRfQ1RcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZnRfY3RfZXhwZWN0X29ial9pbml0XCIsXG4gICAgXCJuZnRfY3RfZXhwZWN0X29ial9ldmFsXCIsXG4gICAgXCJuZnRfY3RfZXhwZWN0X29ial9kdW1wXCIsXG4gICAgXCJuZnRfY3RfZXhwZWN0X3RpbWVvdXRfZ2V0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHRpbWVvdXQgcGFyc2luZyBhbmQgZXZhbHVhdGlvbiBsb2dpYyBmb3IgbmZ0X2N0X2V4cGVjdF9vYmogaW4gbmV0ZmlsdGVyLCBmaXhpbmcgYSBwb3RlbnRpYWwgb3ZlcmZsb3cgYW5kIGluY29ycmVjdCB0aW1lb3V0IGhhbmRsaW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5GVF9DVFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm5mdF9jdF9leHBlY3Rfb2JqX2luaXRcIixcbiAgICBcIm5mdF9jdF9leHBlY3Rfb2JqX2V2YWxcIixcbiAgICBcIm5mdF9jdF9leHBlY3Rfb2JqX2R1bXBcIixcbiAgICBcIm5mdF9jdF9leHBlY3RfdGltZW91dF9nZXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgdGltZW91dCBwYXJzaW5nIGFuZCBldmFsdWF0aW9uIGxvZ2ljIGZvciBuZnRfY3RfZXhwZWN0X29iaiBpbiBuZXRmaWx0ZXIsIGZpeGluZyBhIHBvdGVudGlhbCBvdmVyZmxvdyBhbmQgaW5jb3JyZWN0IHRpbWVvdXQgaGFuZGxpbmcuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowz5vvn[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-23 05:39:26 +0000 UTC FinishedAt: 2026-06-23 06:00:15 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "nf", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git", "commit_hash": "56abdaebbf0da304b860bed1f2b5a85f5a6a16a0", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NFT_CT" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "nf", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git", "commit_hash": "56abdaebbf0da304b860bed1f2b5a85f5a6a16a0", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NFT_CT" ], "series_id": "27df637d-5da1-4980-b194-482d672f446a" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "nft_ct_expect_obj_init", "nft_ct_expect_obj_eval", "nft_ct_expect_obj_dump", "nft_ct_expect_timeout_get" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDA1OjU5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GVF9DVCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O25mdF9jdF9leHBlY3Rfb2JqX2luaXQmIzM0OywKICAgICYjMzQ7bmZ0X2N0X2V4cGVjdF9vYmpfZXZhbCYjMzQ7LAogICAgJiMzNDtuZnRfY3RfZXhwZWN0X29ial9kdW1wJiMzNDssCiAgICAmIzM0O25mdF9jdF9leHBlY3RfdGltZW91dF9nZXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHRpbWVvdXQgcGFyc2luZyBhbmQgZXZhbHVhdGlvbiBsb2dpYyBmb3IgbmZ0X2N0X2V4cGVjdF9vYmogaW4gbmV0ZmlsdGVyLCBmaXhpbmcgYSBwb3RlbnRpYWwgb3ZlcmZsb3cgYW5kIGluY29ycmVjdCB0aW1lb3V0IGhhbmRsaW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDA1OjU5PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZDc4OTEwODYwYTVjYzNjMjZmZmNlZjMzYzQ4YTljOGNhYzcxYzg1Y1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVuIDIzIDA1OjU5OjUzIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9uZXRmaWx0ZXIvbmZ0X2N0LmMgYi9uZXQvbmV0ZmlsdGVyL25mdF9jdC5jXG5pbmRleCA5NTgwNTRkZDJlMmVjYy4uMDNhODhjNzdlMGYwMjggMTAwNjQ0XG4tLS0gYS9uZXQvbmV0ZmlsdGVyL25mdF9jdC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvbmV0ZmlsdGVyL25mdF9jdC5jXG5AQCAtMTIxNSwxMSAmIzQzOzEyMTUsMjMgQEAgc3RydWN0IG5mdF9jdF9leHBlY3Rfb2JqIHtcbiBcdHUzMlx0XHR0aW1lb3V0O1xuIH07XG4gXG4mIzQzO3N0YXRpYyBpbnQgbmZ0X2N0X2V4cGVjdF90aW1lb3V0X2dldChjb25zdCBzdHJ1Y3QgbmxhdHRyICphdHRyLCB1MzIgKnZhbClcbiYjNDM7e1xuJiM0MztcdHVuc2lnbmVkIGxvbmcgamlmZmllc192YWwgPSBtc2Vjc190b19qaWZmaWVzKG5sYV9nZXRfdTMyKGF0dHIpKTtcbiYjNDM7XG4mIzQzO1x0aWYgKGppZmZpZXNfdmFsIFx1MDAzZSBVSU5UX01BWClcbiYjNDM7XHRcdHJldHVybiAtRVJBTkdFO1xuJiM0MztcbiYjNDM7XHQqdmFsID0gamlmZmllc192YWw7XG4mIzQzO1x0cmV0dXJuIDA7XG4mIzQzO31cbiYjNDM7XG4gc3RhdGljIGludCBuZnRfY3RfZXhwZWN0X29ial9pbml0KGNvbnN0IHN0cnVjdCBuZnRfY3R4ICpjdHgsXG4gXHRcdFx0XHQgIGNvbnN0IHN0cnVjdCBubGF0dHIgKiBjb25zdCB0YltdLFxuIFx0XHRcdFx0ICBzdHJ1Y3QgbmZ0X29iamVjdCAqb2JqKVxuIHtcbiBcdHN0cnVjdCBuZnRfY3RfZXhwZWN0X29iaiAqcHJpdiA9IG5mdF9vYmpfZGF0YShvYmopO1xuJiM0MztcdGludCBlcnI7XG4gXG4gXHRpZiAoIXRiW05GVEFfQ1RfRVhQRUNUX0w0UFJPVE9dIHx8XG4gXHQgICAgIXRiW05GVEFfQ1RfRVhQRUNUX0RQT1JUXSB8fFxuQEAgLTEyNTQsOCAmIzQzOzEyNjYsMTEgQEAgc3RhdGljIGludCBuZnRfY3RfZXhwZWN0X29ial9pbml0KGNvbnN0IHN0cnVjdCBuZnRfY3R4ICpjdHgsXG4gXHRcdHJldHVybiAtRU9QTk9UU1VQUDtcbiBcdH1cbiBcbiYjNDM7XHRlcnIgPSBuZnRfY3RfZXhwZWN0X3RpbWVvdXRfZ2V0KHRiW05GVEFfQ1RfRVhQRUNUX1RJTUVPVVRdLCBcdTAwMjZwcml2LVx1MDAzZXRpbWVvdXQpO1xuJiM0MztcdGlmIChlcnIpXG4mIzQzO1x0XHRyZXR1cm4gZXJyO1xuJiM0MztcbiBcdHByaXYtXHUwMDNlZHBvcnQgPSBubGFfZ2V0X2JlMTYodGJbTkZUQV9DVF9FWFBFQ1RfRFBPUlRdKTtcbi1cdHByaXYtXHUwMDNldGltZW91dCA9IG5sYV9nZXRfdTMyKHRiW05GVEFfQ1RfRVhQRUNUX1RJTUVPVVRdKTtcbiBcdHByaXYtXHUwMDNlc2l6ZSA9IG5sYV9nZXRfdTgodGJbTkZUQV9DVF9FWFBFQ1RfU0laRV0pO1xuIFxuIFx0cmV0dXJuIG5mX2N0X25ldG5zX2dldChjdHgtXHUwMDNlbmV0LCBjdHgtXHUwMDNlZmFtaWx5KTtcbkBAIC0xMjc1LDcgJiM0MzsxMjkwLDcgQEAgc3RhdGljIGludCBuZnRfY3RfZXhwZWN0X29ial9kdW1wKHN0cnVjdCBza19idWZmICpza2IsXG4gXHRpZiAobmxhX3B1dF9iZTE2KHNrYiwgTkZUQV9DVF9FWFBFQ1RfTDNQUk9UTywgaHRvbnMocHJpdi1cdTAwM2VsM251bSkpIHx8XG4gXHQgICAgbmxhX3B1dF91OChza2IsIE5GVEFfQ1RfRVhQRUNUX0w0UFJPVE8sIHByaXYtXHUwMDNlbDRwcm90bykgfHxcbiBcdCAgICBubGFfcHV0X2JlMTYoc2tiLCBORlRBX0NUX0VYUEVDVF9EUE9SVCwgcHJpdi1cdTAwM2VkcG9ydCkgfHxcbi1cdCAgICBubGFfcHV0X3UzMihza2IsIE5GVEFfQ1RfRVhQRUNUX1RJTUVPVVQsIHByaXYtXHUwMDNldGltZW91dCkgfHxcbiYjNDM7XHQgICAgbmxhX3B1dF91MzIoc2tiLCBORlRBX0NUX0VYUEVDVF9USU1FT1VULCBqaWZmaWVzX3RvX21zZWNzKHByaXYtXHUwMDNldGltZW91dCkpIHx8XG4gXHQgICAgbmxhX3B1dF91OChza2IsIE5GVEFfQ1RfRVhQRUNUX1NJWkUsIHByaXYtXHUwMDNlc2l6ZSkpXG4gXHRcdHJldHVybiAtMTtcbiBcbkBAIC0xMzI1LDcgJiM0MzsxMzQwLDcgQEAgc3RhdGljIHZvaWQgbmZ0X2N0X2V4cGVjdF9vYmpfZXZhbChzdHJ1Y3QgbmZ0X29iamVjdCAqb2JqLFxuIFx0XHQgICAgICAgICAgXHUwMDI2Y3QtXHUwMDNldHVwbGVoYXNoWyFkaXJdLnR1cGxlLnNyYy51MyxcbiBcdFx0ICAgICAgICAgIFx1MDAyNmN0LVx1MDAzZXR1cGxlaGFzaFshZGlyXS50dXBsZS5kc3QudTMsXG4gXHRcdCAgICAgICAgICBwcml2LVx1MDAzZWw0cHJvdG8sIE5VTEwsIFx1MDAyNnByaXYtXHUwMDNlZHBvcnQpO1xuLVx0ZXhwLVx1MDAzZXRpbWVvdXQgJiM0Mzs9IHByaXYtXHUwMDNldGltZW91dCAqIEhaO1xuJiM0MztcdGV4cC1cdTAwM2V0aW1lb3V0ICYjNDM7PSBwcml2LVx1MDAzZXRpbWVvdXQ7XG4gXG4gXHRpZiAobmZfY3RfZXhwZWN0X3JlbGF0ZWQoZXhwLCAwKSAhPSAwKVxuIFx0XHRyZWdzLVx1MDAzZXZlcmRpY3QuY29kZSA9IE5GX0RST1A7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjMgMDU6NTk8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkZUX0NUJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bmZ0X2N0X2V4cGVjdF9vYmpfaW5pdCYjMzQ7LAogICAgJiMzNDtuZnRfY3RfZXhwZWN0X29ial9ldmFsJiMzNDssCiAgICAmIzM0O25mdF9jdF9leHBlY3Rfb2JqX2R1bXAmIzM0OywKICAgICYjMzQ7bmZ0X2N0X2V4cGVjdF90aW1lb3V0X2dldCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgdGltZW91dCBwYXJzaW5nIGFuZCBldmFsdWF0aW9uIGxvZ2ljIGZvciBuZnRfY3RfZXhwZWN0X29iaiBpbiBuZXRmaWx0ZXIsIGZpeGluZyBhIHBvdGVudGlhbCBvdmVyZmxvdyBhbmQgaW5jb3JyZWN0IHRpbWVvdXQgaGFuZGxpbmcuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGQ3ODkxMDg2MGE1Y2MzYzI2ZmZjZWYzM2M0OGE5YzhjYWM3MWM4NWMKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEp1biAyMyAwNTo1OTo1MyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9uZXRmaWx0ZXIvbmZ0X2N0LmMgYi9uZXQvbmV0ZmlsdGVyL25mdF9jdC5jCmluZGV4IDk1ODA1NGRkMmUyZWNjLi4wM2E4OGM3N2UwZjAyOCAxMDA2NDQKLS0tIGEvbmV0L25ldGZpbHRlci9uZnRfY3QuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvbmV0ZmlsdGVyL25mdF9jdC5jCkBAIC0xMjE1LDExICYjNDM7MTIxNSwyMyBAQCBzdHJ1Y3QgbmZ0X2N0X2V4cGVjdF9vYmogewogCXUzMgkJdGltZW91dDsKIH07CiAKJiM0MztzdGF0aWMgaW50IG5mdF9jdF9leHBlY3RfdGltZW91dF9nZXQoY29uc3Qgc3RydWN0IG5sYXR0ciAqYXR0ciwgdTMyICp2YWwpCiYjNDM7ewomIzQzOwl1bnNpZ25lZCBsb25nIGppZmZpZXNfdmFsID0gbXNlY3NfdG9famlmZmllcyhubGFfZ2V0X3UzMihhdHRyKSk7CiYjNDM7CiYjNDM7CWlmIChqaWZmaWVzX3ZhbCAmZ3Q7IFVJTlRfTUFYKQomIzQzOwkJcmV0dXJuIC1FUkFOR0U7CiYjNDM7CiYjNDM7CSp2YWwgPSBqaWZmaWVzX3ZhbDsKJiM0MzsJcmV0dXJuIDA7CiYjNDM7fQomIzQzOwogc3RhdGljIGludCBuZnRfY3RfZXhwZWN0X29ial9pbml0KGNvbnN0IHN0cnVjdCBuZnRfY3R4ICpjdHgsCiAJCQkJICBjb25zdCBzdHJ1Y3QgbmxhdHRyICogY29uc3QgdGJbXSwKIAkJCQkgIHN0cnVjdCBuZnRfb2JqZWN0ICpvYmopCiB7CiAJc3RydWN0IG5mdF9jdF9leHBlY3Rfb2JqICpwcml2ID0gbmZ0X29ial9kYXRhKG9iaik7CiYjNDM7CWludCBlcnI7CiAKIAlpZiAoIXRiW05GVEFfQ1RfRVhQRUNUX0w0UFJPVE9dIHx8CiAJICAgICF0YltORlRBX0NUX0VYUEVDVF9EUE9SVF0gfHwKQEAgLTEyNTQsOCAmIzQzOzEyNjYsMTEgQEAgc3RhdGljIGludCBuZnRfY3RfZXhwZWN0X29ial9pbml0KGNvbnN0IHN0cnVjdCBuZnRfY3R4ICpjdHgsCiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAl9CiAKJiM0MzsJZXJyID0gbmZ0X2N0X2V4cGVjdF90aW1lb3V0X2dldCh0YltORlRBX0NUX0VYUEVDVF9USU1FT1VUXSwgJmFtcDtwcml2LSZndDt0aW1lb3V0KTsKJiM0MzsJaWYgKGVycikKJiM0MzsJCXJldHVybiBlcnI7CiYjNDM7CiAJcHJpdi0mZ3Q7ZHBvcnQgPSBubGFfZ2V0X2JlMTYodGJbTkZUQV9DVF9FWFBFQ1RfRFBPUlRdKTsKLQlwcml2LSZndDt0aW1lb3V0ID0gbmxhX2dldF91MzIodGJbTkZUQV9DVF9FWFBFQ1RfVElNRU9VVF0pOwogCXByaXYtJmd0O3NpemUgPSBubGFfZ2V0X3U4KHRiW05GVEFfQ1RfRVhQRUNUX1NJWkVdKTsKIAogCXJldHVybiBuZl9jdF9uZXRuc19nZXQoY3R4LSZndDtuZXQsIGN0eC0mZ3Q7ZmFtaWx5KTsKQEAgLTEyNzUsNyAmIzQzOzEyOTAsNyBAQCBzdGF0aWMgaW50IG5mdF9jdF9leHBlY3Rfb2JqX2R1bXAoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAlpZiAobmxhX3B1dF9iZTE2KHNrYiwgTkZUQV9DVF9FWFBFQ1RfTDNQUk9UTywgaHRvbnMocHJpdi0mZ3Q7bDNudW0pKSB8fAogCSAgICBubGFfcHV0X3U4KHNrYiwgTkZUQV9DVF9FWFBFQ1RfTDRQUk9UTywgcHJpdi0mZ3Q7bDRwcm90bykgfHwKIAkgICAgbmxhX3B1dF9iZTE2KHNrYiwgTkZUQV9DVF9FWFBFQ1RfRFBPUlQsIHByaXYtJmd0O2Rwb3J0KSB8fAotCSAgICBubGFfcHV0X3UzMihza2IsIE5GVEFfQ1RfRVhQRUNUX1RJTUVPVVQsIHByaXYtJmd0O3RpbWVvdXQpIHx8CiYjNDM7CSAgICBubGFfcHV0X3UzMihza2IsIE5GVEFfQ1RfRVhQRUNUX1RJTUVPVVQsIGppZmZpZXNfdG9fbXNlY3MocHJpdi0mZ3Q7dGltZW91dCkpIHx8CiAJICAgIG5sYV9wdXRfdTgoc2tiLCBORlRBX0NUX0VYUEVDVF9TSVpFLCBwcml2LSZndDtzaXplKSkKIAkJcmV0dXJuIC0xOwogCkBAIC0xMzI1LDcgJiM0MzsxMzQwLDcgQEAgc3RhdGljIHZvaWQgbmZ0X2N0X2V4cGVjdF9vYmpfZXZhbChzdHJ1Y3QgbmZ0X29iamVjdCAqb2JqLAogCQkgICAgICAgICAgJmFtcDtjdC0mZ3Q7dHVwbGVoYXNoWyFkaXJdLnR1cGxlLnNyYy51MywKIAkJICAgICAgICAgICZhbXA7Y3QtJmd0O3R1cGxlaGFzaFshZGlyXS50dXBsZS5kc3QudTMsCiAJCSAgICAgICAgICBwcml2LSZndDtsNHByb3RvLCBOVUxMLCAmYW1wO3ByaXYtJmd0O2Rwb3J0KTsKLQlleHAtJmd0O3RpbWVvdXQgJiM0Mzs9IHByaXYtJmd0O3RpbWVvdXQgKiBIWjsKJiM0MzsJZXhwLSZndDt0aW1lb3V0ICYjNDM7PSBwcml2LSZndDt0aW1lb3V0OwogCiAJaWYgKG5mX2N0X2V4cGVjdF9yZWxhdGVkKGV4cCwgMCkgIT0gMCkKIAkJcmVncy0mZ3Q7dmVyZGljdC5jb2RlID0gTkZfRFJPUDsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjMgMDU6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjU4MAoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDIxMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIENvbm5lY3Rpb24gVHJhY2tpbmcgRXhwZWN0YXRpb24gVGltZW91dCBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyB0aGUgY29ubmVjdGlvbiB0cmFja2luZyBleHBlY3RhdGlvbiB0aW1lb3V0IGhhbmRsaW5nIHdpdGhpbiB0aGUgTmV0ZmlsdGVyIHN1YnN5c3RlbSwgc3BlY2lmaWNhbGx5IGluIGBuZXQvbmV0ZmlsdGVyL25mdF9jdC5jYC4gSXQgc2VlbXMgdGhleSYjMzk7cmUgbWFraW5nIHNvbWUgaW1wb3J0YW50IGNoYW5nZXMgdG8gaG93IHRoZSBgdGltZW91dGAgdmFsdWUgaXMgaGFuZGxlZCBmb3IgYG5mdF9jdF9leHBlY3Rfb2JqYC4KCkVzc2VudGlhbGx5LCBpdCBsb29rcyBsaWtlIHRoZXkmIzM5O3JlIGFkZHJlc3NpbmcgYSBwb3RlbnRpYWwgYnVnIG9yIHZ1bG5lcmFiaWxpdHkgcmVsYXRlZCB0byB0aW1lb3V0cy4gVGhlIGNoYW5nZXMgaW52b2x2ZSBpbnRyb2R1Y2luZyBhIG5ldyBmdW5jdGlvbiwgYG5mdF9jdF9leHBlY3RfdGltZW91dF9nZXRgLCB3aGljaCBpcyBjcnVjaWFsLiBJdCBjb252ZXJ0cyB0aGUgdGltZW91dCB2YWx1ZSBmcm9tIG1pbGxpc2Vjb25kcyB0byBqaWZmaWVzICphbmQqIGNydWNpYWxseSwgaW5jbHVkZXMgb3ZlcmZsb3cgY2hlY2tzLiAgVGhpcyBpcyBzbWFydDsgaW50ZWdlciBvdmVyZmxvd3Mgd2l0aCB0aW1lIGNhbGN1bGF0aW9ucyBhcmUgbm90b3Jpb3VzbHkgdHJpY2t5IHRvIGRlYnVnLiBUaGV5JiMzOTtyZSB1cGRhdGluZyB0aGUgaW5pdGlhbGl6YXRpb24gb2YgdGhlIGBuZnRfY3RfZXhwZWN0X29iamAgd2l0aCBgbmZ0X2N0X2V4cGVjdF90aW1lb3V0X2dldGAsIHdoaWNoIGlzIHRoZSBsb2dpY2FsIHBsYWNlLiBUaGUgZHVtcGluZyBmdW5jdGlvbiAoYG5mdF9jdF9leHBlY3Rfb2JqX2R1bXBgKSBnZXRzIHVwZGF0ZWQgdG8gY29udmVydCB0aGUgc3RvcmVkIGppZmZpZXMgYmFjayB0byBtaWxsaXNlY29uZHMgZm9yIG91dHB1dC4gTGFzdGx5LCBJIHNlZSBgbmZ0X2N0X2V4cGVjdF9vYmpfZXZhbGAgaXMgYmVpbmcgY2hhbmdlZCB0byBkaXJlY3RseSB1c2UgYHByaXYtJmd0O3RpbWVvdXRgIGluc3RlYWQgb2YgbXVsdGlwbHlpbmcgYnkgYEhaYOKAlHdoaWNoIGlzIGJlY2F1c2Ugd2Ugbm93IGhhdmUgdGhlIHRpbWVvdXQgaW4gamlmZmllcy4KCk92ZXJhbGwsIHRoaXMgcGF0Y2ggc2VlbXMgbGlrZSBhIHNvbGlkLCBmdW5jdGlvbmFsIGltcHJvdmVtZW50LiBJdCBhaW1zIHRvIGVsaW1pbmF0ZSBhIHBvdGVudGlhbCBvdmVyZmxvdyBjb25kaXRpb24gb3IgZW5zdXJlIGNvcnJlY3QgdGltZW91dCB2YWx1ZXMgYXJlIHVzZWQuIFRoYXQgc291bmRzIGdvb2QsIGFuZCBiYXNlZCBvbiB0aGlzLCBJJiMzOTttIHRoaW5raW5nIGl0IGRlZmluaXRlbHkgd2FycmFudHMgc29tZSBzZXJpb3VzIGZ1enppbmcgdG8gbWFrZSBzdXJlIHRoaXMgaXMgc29saWQuIE5vIGNvcm5lciBjYXNlcyBzbGlwcGVkIHRocm91Z2guCgpOb3csIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIFRpbWUgdG8gdXNlIGBncmVwcGVyYCB0byBmaW5kIHRoZSBNYWtlZmlsZSBlbnRyeSBmb3IgYG5mdF9jdC5jYCBhbmQgZmlndXJlIG91dCB3aGF0IGtlcm5lbCBjb25maWcgb3B0aW9ucyBjb250cm9sIHRoaXMgcGFydCBvZiB0aGUgTmV0ZmlsdGVyIGNvZGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjMgMDY6MDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bmZ0X2N0XFwubyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9uZXRmaWx0ZXIvTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci9NYWtlZmlsZT0xMTE9b2JqLSQoQ09ORklHX05GVF9OVU1HRU4pXHQmIzQzOz0gbmZ0X251bWdlbi5vXG5uZXQvbmV0ZmlsdGVyL01ha2VmaWxlOjExMjpvYmotJChDT05GSUdfTkZUX0NUKVx0XHQmIzQzOz0gbmZ0X2N0Lm9cbm5ldC9uZXRmaWx0ZXIvTWFrZWZpbGUtMTEzLW9iai0kKENPTkZJR19ORlRfRkxPV19PRkZMT0FEKVx0JiM0Mzs9IG5mdF9mbG93X29mZmxvYWQub1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDA2OjAwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMzMDQKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiA2MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIGBORlRfQ1RgIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBpdGVtIGlzIGBORlRfQ1RgLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgYXJlIHRoZXJlIGFueSBkZXBlbmRlbnQgY29uZmlndXJhdGlvbnMgSSBuZWVkIHRvIGJlIGF3YXJlIG9mPyBMZXQmIzM5O3MgcXVpY2tseSB0cmFjZSB0aG9zZSBkZXBlbmRlbmNpZXMuIExvb2tpbmcsIGl0IGxvb2tzIGxpa2UgYE5GVF9DVGAgaXMgYnVpbHQgdXBvbiBgTkZfVEFCTEVTYCBhbmQgYE5GX0NPTk5UUkFDS2AuIEdvb2QsIHRoYXQmIzM5O3Mgd2hhdCBJIGV4cGVjdGVkLiBOb3csIEkgc2hvdWxkIHByb2JhYmx5IGRvdWJsZS1jaGVjayB0aGF0IGJ5IGV4YW1pbmluZyBgbmV0L25ldGZpbHRlci9LY29uZmlnYCwganVzdCB0byBiZSBjZXJ0YWluLiBJIHdhbnQgdG8gbWFrZSBzdXJlIEkgaGF2ZW4mIzM5O3QgbWlzc2VkIGFueXRoaW5nIGNydWNpYWwgaW4gdGVybXMgb2YgYnVpbGQgb3B0aW9ucyBvciByZWxhdGVkIGRlcGVuZGVuY2llcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMyAwNjowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTkZUX0NUJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9uZXRmaWx0ZXIvS2NvbmZpZz00ODQ9Y29uZmlnIE5GVF9OVU1HRU5cbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNDg5LVxubmV0L25ldGZpbHRlci9LY29uZmlnOjQ5MDpjb25maWcgTkZUX0NUXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNDkxLVx0ZGVwZW5kcyBvbiBORl9DT05OVFJBQ0tcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMyAwNjowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjA5CgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogMTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipBbmFseXppbmcgdGhlIGBORlRfQ1RgIERlZmluaXRpb24qKgoKT2theSwgc28gdGhlIHByb21wdCBkaXJlY3RzIG1lIHRvIGZ1bGx5IGRlZmluZSBgTkZUX0NUYC4gUmlnaHQsIHRoYXQmIzM5O3MgdGhlIHN0YXJ0aW5nIHBvaW50LiBJIG5lZWQgdG8gdHJlYXQgdGhpcyBhcyBpZiBJ4oCZbSBidWlsZGluZyBhIGtub3dsZWRnZSBncmFwaCBvZiBzb3J0cy4gTGV0JiMzOTtzIHNlZS4uLiB3aGF0IGFyZSB0aGUgbGF5ZXJzIGhlcmU/IEkmIzM5O20gbm90IGdvaW5nIHRvIGdpdmUgc29tZSBkZWZpbml0aW9uOyBpbnN0ZWFkLCB0aGUgcHJvbXB0IGlzIGFib3V0IGRldGVybWluaW5nICp3aGF0IGlzIHRoZSBkZWZpbml0aW9uKi4gSSBzaG91bGQgY2hlY2sgZm9yIGVkZ2UgY2FzZXMuCgpGaXJzdCwgSSBuZWVkIHRvIG1ha2UgY2VydGFpbiBpdCYjMzk7cyBhYm91dCB0aGUgdGVjaG5pY2FsIGRlZmluaXRpb24uIElmIGl0JiMzOTtzIGEgZG9tYWluIHNwZWNpZmljIHRlcm0sIGZvciBleGFtcGxlLCBpcyBpdCB0aGUgKkNyeXB0byBUb2tlbiosIG9yIGlzIGl0ICpOb3QgRm9yIFRoaXMqIGFzIGFuIGFjcm9ueW0gb3IgaW5pdGlhbGlzbS4gVGhpcyBpcyB0aGUgc3RhZ2UgSSYjMzk7bSBhdC4gTGV0JiMzOTtzIGZpbmQgb3V0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDA2OjAwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogNDg1LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyA0ODU6XHRcdHRyaXN0YXRlIFwmIzM0O05ldGZpbHRlciBuZl90YWJsZXMgbnVtYmVyIGdlbmVyYXRvciBtb2R1bGVcJiMzNDtcbiA0ODY6XHRcdGhlbHBcbiA0ODc6XHRcdCAgVGhpcyBvcHRpb24gYWRkcyB0aGUgbnVtYmVyIGdlbmVyYXRvciBleHByZXNzaW9uIHVzZWQgdG8gcGVyZm9ybVxuIDQ4ODpcdFx0ICBpbmNyZW1lbnRhbCBjb3VudGluZyBhbmQgcmFuZG9tIG51bWJlcnMgYm91bmQgdG8gYSB1cHBlciBsaW1pdC5cbiA0ODk6XHRcbiA0OTA6XHRjb25maWcgTkZUX0NUXG4gNDkxOlx0XHRkZXBlbmRzIG9uIE5GX0NPTk5UUkFDS1xuIDQ5MjpcdFx0dHJpc3RhdGUgXCYjMzQ7TmV0ZmlsdGVyIG5mX3RhYmxlcyBjb25udHJhY2sgbW9kdWxlXCYjMzQ7XG4gNDkzOlx0XHRoZWxwXG4gNDk0Olx0XHQgIFRoaXMgb3B0aW9uIGFkZHMgdGhlIFwmIzM0O2N0XCYjMzQ7IGV4cHJlc3Npb24gdGhhdCB5b3UgY2FuIHVzZSB0byBtYXRjaFxuIDQ5NTpcdFx0ICBjb25uZWN0aW9uIHRyYWNraW5nIGluZm9ybWF0aW9uIHN1Y2ggYXMgdGhlIGZsb3cgc3RhdGUuXG4gNDk2Olx0XG4gNDk3Olx0Y29uZmlnIE5GVF9FWFRIRFJfRENDUFxuIDQ5ODpcdFx0Ym9vbCBcJiMzNDtOZXRmaWx0ZXIgbmZfdGFibGVzIGV4dGhkciBEQ0NQIHN1cHBvcnQgKERFUFJFQ0FURUQpXCYjMzQ7XG4gNDk5Olx0XHRkZWZhdWx0IG5cbiA1MDA6XHRcdGhlbHBcbiA1MDE6XHRcdCAgVGhpcyBvcHRpb24gYWRkcyBzdXBwb3J0IGZvciBtYXRjaGluZyBvbiBEQ0NQIGV4dGVuc2lvbiBoZWFkZXJzLlxuIDUwMjpcdFxuIDUwMzpcdGNvbmZpZyBORlRfRkxPV19PRkZMT0FEXG4gNTA0Olx0XHRkZXBlbmRzIG9uIE5GX0NPTk5UUkFDSyBcdTAwMjZcdTAwMjYgTkZfRkxPV19UQUJMRVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDA2OjAwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQxMzUKCQkJCQkJCW91dHB1dDogMTI0CgkJCQkJCQl0aG91Z2h0czogMzIzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTmV0ZmlsdGVyIENvbm5lY3Rpb24gVHJhY2tpbmcgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIHRoZSBjb3JlIG9mIGl0IHJldm9sdmVzIGFyb3VuZCBgTkZUX0NUYCwgdGhhdCYjMzk7cyB0aGUgcHJpbWFyeSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBJIG5lZWQgdG8gYmUgY29uY2VybmVkIHdpdGggaGVyZS4gTXkgZm9jdXMgc2hvdWxkIGJlIG9uIHRoZSBjb25uZWN0aW9uIHRyYWNraW5nIGV4cGVjdGF0aW9ucyBvYmplY3RzLCBwYXJ0aWN1bGFybHkgdGhlc2UgZnVuY3Rpb25zOiBgbmZ0X2N0X2V4cGVjdF9vYmpfaW5pdGAsIGBuZnRfY3RfZXhwZWN0X29ial9ldmFsYCwgYG5mdF9jdF9leHBlY3Rfb2JqX2R1bXBgLCBhbmQgdGhlIG5ld2x5IGludHJvZHVjZWQgYG5mdF9jdF9leHBlY3RfdGltZW91dF9nZXRgLiBUaG9zZSBhcmUgbXkgY3JpdGljYWwgZm9jdXMgc3ltYm9scy4gSSYjMzk7bGwgbmVlZCB0byBzY3J1dGluaXplIGhvdyB0aGVzZSBhcmUgYmVpbmcgYWx0ZXJlZC4KCkxldCYjMzk7cyBzZWUuLi4gdGhlIHBhdGNoIGxpc3QgdGhvc2UgZm91ciBmdW5jdGlvbnMgc3BlY2lmaWNhbGx5LiBHb29kLCBjb25maXJtaW5nIG15IGluaXRpYWwgYXNzZXNzbWVudC4gTm93LCByZWdhcmRpbmcgY29uZmlndXJhdGlvbnMsIGl0IG1lbnRpb25zIGBORlRfQ1RgLCBgTkZfQ09OTlRSQUNLYCwgYW5kIGBORl9UQUJMRVNgLiBJIG5lZWQgdG8gYmUgc3VyZSBJJiMzOTttIGNhcHR1cmluZyB0aGUgZGVwZW5kZW5jaWVzIGNvcnJlY3RseS4gU2luY2UgYE5GVF9DVGAgaW1wbGljaXRseSBkZXBlbmRzIG9uIGBORl9DT05OVFJBQ0tgIChhbmQgdGhhdCYjMzk7cyBuZXN0ZWQgd2l0aGluIGFuIGBpZiBORl9UQUJMRVNgIGNvbmRpdGlvbmFsKSwganVzdCBzdGF0aW5nIGBORlRfQ1RgIHNob3VsZCBiZSBzdWZmaWNpZW50LiBUaGF0IHNob3VsZCBjb3ZlciBib3RoIGBORl9DT05OVFJBQ0tgIGFuZCBgTkZfVEFCTEVTYCBiZWluZyBwcmVzZW50LCByaWdodD8gTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrIHRoYXQuIFllcywgYnkgaXRzIHZlcnkgbmF0dXJlLCBgTkZUX0NUYCBuZWNlc3NpdGF0ZXMgYm90aCBvZiB0aG9zZSB1bmRlcmx5aW5nIGNvbXBvbmVudHMuCgpSaWdodCwgc28gdGhlIGNydXggb2YgdGhlIGNoYW5nZSBzZWVtcyB0byBiZSBhIGJ1ZyBmaXggcmVsYXRlZCB0byB0aGUgYG5mdF9jdF9leHBlY3Rfb2JqX2luaXRgIGZ1bmN0aW9uLiBJdCYjMzk7cyBhYm91dCBob3cgdGhlIHRpbWVvdXQgaXMgYmVpbmcgaGFuZGxlZCAtIHBvdGVudGlhbCBvdmVyZmxvdyB3aXRoIGppZmZpZXMgY29udmVyc2lvbiwgb3IgaW5jb3JyZWN0IHBhcnNpbmcvZXZhbHVhdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGRlZXAgd2l0aGluIHRoZSBuZXRmaWx0ZXIgc3Vic3lzdGVtLCBzbyBpdCYjMzk7cyBhIGNyaXRpY2FsIGFyZWEgdG8gZm9jdXMgb24uIE9rYXksIEkmIzM5O3ZlIGdvdCBhIGdvb2QgaGFuZGxlIG9uIGl0IG5vdzsgdGltZSB0byBzZXQgdGhlIHJlc3VsdHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDA2OjAwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtORlRfQ1QmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtuZnRfY3RfZXhwZWN0X29ial9pbml0JiMzNDssCiAgICAmIzM0O25mdF9jdF9leHBlY3Rfb2JqX2V2YWwmIzM0OywKICAgICYjMzQ7bmZ0X2N0X2V4cGVjdF9vYmpfZHVtcCYjMzQ7LAogICAgJiMzNDtuZnRfY3RfZXhwZWN0X3RpbWVvdXRfZ2V0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSB0aW1lb3V0IHBhcnNpbmcgYW5kIGV2YWx1YXRpb24gbG9naWMgZm9yIG5mdF9jdF9leHBlY3Rfb2JqIGluIG5ldGZpbHRlciwgZml4aW5nIGEgcG90ZW50aWFsIG92ZXJmbG93IGFuZCBpbmNvcnJlY3QgdGltZW91dCBoYW5kbGluZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkZUX0NUJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bmZ0X2N0X2V4cGVjdF9vYmpfaW5pdCYjMzQ7LAogICAgJiMzNDtuZnRfY3RfZXhwZWN0X29ial9ldmFsJiMzNDssCiAgICAmIzM0O25mdF9jdF9leHBlY3Rfb2JqX2R1bXAmIzM0OywKICAgICYjMzQ7bmZ0X2N0X2V4cGVjdF90aW1lb3V0X2dldCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgdGltZW91dCBwYXJzaW5nIGFuZCBldmFsdWF0aW9uIGxvZ2ljIGZvciBuZnRfY3RfZXhwZWN0X29iaiBpbiBuZXRmaWx0ZXIsIGZpeGluZyBhIHBvdGVudGlhbCBvdmVyZmxvdyBhbmQgaW5jb3JyZWN0IHRpbWVvdXQgaGFuZGxpbmcuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwNTo1OTo1NC42MTAyMDMzMzlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDA3MjY4MjU1OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORlRfQ1RcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZnRfY3RfZXhwZWN0X29ial9pbml0XCIsXG4gICAgXCJuZnRfY3RfZXhwZWN0X29ial9ldmFsXCIsXG4gICAgXCJuZnRfY3RfZXhwZWN0X29ial9kdW1wXCIsXG4gICAgXCJuZnRfY3RfZXhwZWN0X3RpbWVvdXRfZ2V0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHRpbWVvdXQgcGFyc2luZyBhbmQgZXZhbHVhdGlvbiBsb2dpYyBmb3IgbmZ0X2N0X2V4cGVjdF9vYmogaW4gbmV0ZmlsdGVyLCBmaXhpbmcgYSBwb3RlbnRpYWwgb3ZlcmZsb3cgYW5kIGluY29ycmVjdCB0aW1lb3V0IGhhbmRsaW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwNTo1OTo1NC42MTAyMDc4MTlaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2NDMxMDM1MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGQ3ODkxMDg2MGE1Y2MzYzI2ZmZjZWYzM2M0OGE5YzhjYWM3MWM4NWNcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBKdW4gMjMgMDU6NTk6NTMgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L25ldGZpbHRlci9uZnRfY3QuYyBiL25ldC9uZXRmaWx0ZXIvbmZ0X2N0LmNcXG5pbmRleCA5NTgwNTRkZDJlMmVjYy4uMDNhODhjNzdlMGYwMjggMTAwNjQ0XFxuLS0tIGEvbmV0L25ldGZpbHRlci9uZnRfY3QuY1xcbisrKyBiL25ldC9uZXRmaWx0ZXIvbmZ0X2N0LmNcXG5AQCAtMTIxNSwxMSArMTIxNSwyMyBAQCBzdHJ1Y3QgbmZ0X2N0X2V4cGVjdF9vYmoge1xcbiBcXHR1MzJcXHRcXHR0aW1lb3V0O1xcbiB9O1xcbiBcXG4rc3RhdGljIGludCBuZnRfY3RfZXhwZWN0X3RpbWVvdXRfZ2V0KGNvbnN0IHN0cnVjdCBubGF0dHIgKmF0dHIsIHUzMiAqdmFsKVxcbit7XFxuK1xcdHVuc2lnbmVkIGxvbmcgamlmZmllc192YWwgPSBtc2Vjc190b19qaWZmaWVzKG5sYV9nZXRfdTMyKGF0dHIpKTtcXG4rXFxuK1xcdGlmIChqaWZmaWVzX3ZhbCBcXHUwMDNlIFVJTlRfTUFYKVxcbitcXHRcXHRyZXR1cm4gLUVSQU5HRTtcXG4rXFxuK1xcdCp2YWwgPSBqaWZmaWVzX3ZhbDtcXG4rXFx0cmV0dXJuIDA7XFxuK31cXG4rXFxuIHN0YXRpYyBpbnQgbmZ0X2N0X2V4cGVjdF9vYmpfaW5pdChjb25zdCBzdHJ1Y3QgbmZ0X2N0eCAqY3R4LFxcbiBcXHRcXHRcXHRcXHQgIGNvbnN0IHN0cnVjdCBubGF0dHIgKiBjb25zdCB0YltdLFxcbiBcXHRcXHRcXHRcXHQgIHN0cnVjdCBuZnRfb2JqZWN0ICpvYmopXFxuIHtcXG4gXFx0c3RydWN0IG5mdF9jdF9leHBlY3Rfb2JqICpwcml2ID0gbmZ0X29ial9kYXRhKG9iaik7XFxuK1xcdGludCBlcnI7XFxuIFxcbiBcXHRpZiAoIXRiW05GVEFfQ1RfRVhQRUNUX0w0UFJPVE9dIHx8XFxuIFxcdCAgICAhdGJbTkZUQV9DVF9FWFBFQ1RfRFBPUlRdIHx8XFxuQEAgLTEyNTQsOCArMTI2NiwxMSBAQCBzdGF0aWMgaW50IG5mdF9jdF9leHBlY3Rfb2JqX2luaXQoY29uc3Qgc3RydWN0IG5mdF9jdHggKmN0eCxcXG4gXFx0XFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xcbiBcXHR9XFxuIFxcbitcXHRlcnIgPSBuZnRfY3RfZXhwZWN0X3RpbWVvdXRfZ2V0KHRiW05GVEFfQ1RfRVhQRUNUX1RJTUVPVVRdLCBcXHUwMDI2cHJpdi1cXHUwMDNldGltZW91dCk7XFxuK1xcdGlmIChlcnIpXFxuK1xcdFxcdHJldHVybiBlcnI7XFxuK1xcbiBcXHRwcml2LVxcdTAwM2VkcG9ydCA9IG5sYV9nZXRfYmUxNih0YltORlRBX0NUX0VYUEVDVF9EUE9SVF0pO1xcbi1cXHRwcml2LVxcdTAwM2V0aW1lb3V0ID0gbmxhX2dldF91MzIodGJbTkZUQV9DVF9FWFBFQ1RfVElNRU9VVF0pO1xcbiBcXHRwcml2LVxcdTAwM2VzaXplID0gbmxhX2dldF91OCh0YltORlRBX0NUX0VYUEVDVF9TSVpFXSk7XFxuIFxcbiBcXHRyZXR1cm4gbmZfY3RfbmV0bnNfZ2V0KGN0eC1cXHUwMDNlbmV0LCBjdHgtXFx1MDAzZWZhbWlseSk7XFxuQEAgLTEyNzUsNyArMTI5MCw3IEBAIHN0YXRpYyBpbnQgbmZ0X2N0X2V4cGVjdF9vYmpfZHVtcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbiBcXHRpZiAobmxhX3B1dF9iZTE2KHNrYiwgTkZUQV9DVF9FWFBFQ1RfTDNQUk9UTywgaHRvbnMocHJpdi1cXHUwMDNlbDNudW0pKSB8fFxcbiBcXHQgICAgbmxhX3B1dF91OChza2IsIE5GVEFfQ1RfRVhQRUNUX0w0UFJPVE8sIHByaXYtXFx1MDAzZWw0cHJvdG8pIHx8XFxuIFxcdCAgICBubGFfcHV0X2JlMTYoc2tiLCBORlRBX0NUX0VYUEVDVF9EUE9SVCwgcHJpdi1cXHUwMDNlZHBvcnQpIHx8XFxuLVxcdCAgICBubGFfcHV0X3UzMihza2IsIE5GVEFfQ1RfRVhQRUNUX1RJTUVPVVQsIHByaXYtXFx1MDAzZXRpbWVvdXQpIHx8XFxuK1xcdCAgICBubGFfcHV0X3UzMihza2IsIE5GVEFfQ1RfRVhQRUNUX1RJTUVPVVQsIGppZmZpZXNfdG9fbXNlY3MocHJpdi1cXHUwMDNldGltZW91dCkpIHx8XFxuIFxcdCAgICBubGFfcHV0X3U4KHNrYiwgTkZUQV9DVF9FWFBFQ1RfU0laRSwgcHJpdi1cXHUwMDNlc2l6ZSkpXFxuIFxcdFxcdHJldHVybiAtMTtcXG4gXFxuQEAgLTEzMjUsNyArMTM0MCw3IEBAIHN0YXRpYyB2b2lkIG5mdF9jdF9leHBlY3Rfb2JqX2V2YWwoc3RydWN0IG5mdF9vYmplY3QgKm9iaixcXG4gXFx0XFx0ICAgICAgICAgIFxcdTAwMjZjdC1cXHUwMDNldHVwbGVoYXNoWyFkaXJdLnR1cGxlLnNyYy51MyxcXG4gXFx0XFx0ICAgICAgICAgIFxcdTAwMjZjdC1cXHUwMDNldHVwbGVoYXNoWyFkaXJdLnR1cGxlLmRzdC51MyxcXG4gXFx0XFx0ICAgICAgICAgIHByaXYtXFx1MDAzZWw0cHJvdG8sIE5VTEwsIFxcdTAwMjZwcml2LVxcdTAwM2VkcG9ydCk7XFxuLVxcdGV4cC1cXHUwMDNldGltZW91dCArPSBwcml2LVxcdTAwM2V0aW1lb3V0ICogSFo7XFxuK1xcdGV4cC1cXHUwMDNldGltZW91dCArPSBwcml2LVxcdTAwM2V0aW1lb3V0O1xcbiBcXG4gXFx0aWYgKG5mX2N0X2V4cGVjdF9yZWxhdGVkKGV4cCwgMCkgIT0gMClcXG4gXFx0XFx0cmVncy1cXHUwMDNldmVyZGljdC5jb2RlID0gTkZfRFJPUDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMDU6NTk6NTUuMDc1NDMwNjVaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE5NjA3NDQ0NzQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5GVF9DVFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm5mdF9jdF9leHBlY3Rfb2JqX2luaXRcIixcbiAgICBcIm5mdF9jdF9leHBlY3Rfb2JqX2V2YWxcIixcbiAgICBcIm5mdF9jdF9leHBlY3Rfb2JqX2R1bXBcIixcbiAgICBcIm5mdF9jdF9leHBlY3RfdGltZW91dF9nZXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgdGltZW91dCBwYXJzaW5nIGFuZCBldmFsdWF0aW9uIGxvZ2ljIGZvciBuZnRfY3RfZXhwZWN0X29iaiBpbiBuZXRmaWx0ZXIsIGZpeGluZyBhIHBvdGVudGlhbCBvdmVyZmxvdyBhbmQgaW5jb3JyZWN0IHRpbWVvdXQgaGFuZGxpbmcuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZDc4OTEwODYwYTVjYzNjMjZmZmNlZjMzYzQ4YTljOGNhYzcxYzg1Y1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVuIDIzIDA1OjU5OjUzIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L25ldGZpbHRlci9uZnRfY3QuYyBiL25ldC9uZXRmaWx0ZXIvbmZ0X2N0LmNcbmluZGV4IDk1ODA1NGRkMmUyZWNjLi4wM2E4OGM3N2UwZjAyOCAxMDA2NDRcbi0tLSBhL25ldC9uZXRmaWx0ZXIvbmZ0X2N0LmNcbisrKyBiL25ldC9uZXRmaWx0ZXIvbmZ0X2N0LmNcbkBAIC0xMjE1LDExICsxMjE1LDIzIEBAIHN0cnVjdCBuZnRfY3RfZXhwZWN0X29iaiB7XG4gXHR1MzJcdFx0dGltZW91dDtcbiB9O1xuIFxuK3N0YXRpYyBpbnQgbmZ0X2N0X2V4cGVjdF90aW1lb3V0X2dldChjb25zdCBzdHJ1Y3QgbmxhdHRyICphdHRyLCB1MzIgKnZhbClcbit7XG4rXHR1bnNpZ25lZCBsb25nIGppZmZpZXNfdmFsID0gbXNlY3NfdG9famlmZmllcyhubGFfZ2V0X3UzMihhdHRyKSk7XG4rXG4rXHRpZiAoamlmZmllc192YWwgXHUwMDNlIFVJTlRfTUFYKVxuK1x0XHRyZXR1cm4gLUVSQU5HRTtcbitcbitcdCp2YWwgPSBqaWZmaWVzX3ZhbDtcbitcdHJldHVybiAwO1xuK31cbitcbiBzdGF0aWMgaW50IG5mdF9jdF9leHBlY3Rfb2JqX2luaXQoY29uc3Qgc3RydWN0IG5mdF9jdHggKmN0eCxcbiBcdFx0XHRcdCAgY29uc3Qgc3RydWN0IG5sYXR0ciAqIGNvbnN0IHRiW10sXG4gXHRcdFx0XHQgIHN0cnVjdCBuZnRfb2JqZWN0ICpvYmopXG4ge1xuIFx0c3RydWN0IG5mdF9jdF9leHBlY3Rfb2JqICpwcml2ID0gbmZ0X29ial9kYXRhKG9iaik7XG4rXHRpbnQgZXJyO1xuIFxuIFx0aWYgKCF0YltORlRBX0NUX0VYUEVDVF9MNFBST1RPXSB8fFxuIFx0ICAgICF0YltORlRBX0NUX0VYUEVDVF9EUE9SVF0gfHxcbkBAIC0xMjU0LDggKzEyNjYsMTEgQEAgc3RhdGljIGludCBuZnRfY3RfZXhwZWN0X29ial9pbml0KGNvbnN0IHN0cnVjdCBuZnRfY3R4ICpjdHgsXG4gXHRcdHJldHVybiAtRU9QTk9UU1VQUDtcbiBcdH1cbiBcbitcdGVyciA9IG5mdF9jdF9leHBlY3RfdGltZW91dF9nZXQodGJbTkZUQV9DVF9FWFBFQ1RfVElNRU9VVF0sIFx1MDAyNnByaXYtXHUwMDNldGltZW91dCk7XG4rXHRpZiAoZXJyKVxuK1x0XHRyZXR1cm4gZXJyO1xuK1xuIFx0cHJpdi1cdTAwM2VkcG9ydCA9IG5sYV9nZXRfYmUxNih0YltORlRBX0NUX0VYUEVDVF9EUE9SVF0pO1xuLVx0cHJpdi1cdTAwM2V0aW1lb3V0ID0gbmxhX2dldF91MzIodGJbTkZUQV9DVF9FWFBFQ1RfVElNRU9VVF0pO1xuIFx0cHJpdi1cdTAwM2VzaXplID0gbmxhX2dldF91OCh0YltORlRBX0NUX0VYUEVDVF9TSVpFXSk7XG4gXG4gXHRyZXR1cm4gbmZfY3RfbmV0bnNfZ2V0KGN0eC1cdTAwM2VuZXQsIGN0eC1cdTAwM2VmYW1pbHkpO1xuQEAgLTEyNzUsNyArMTI5MCw3IEBAIHN0YXRpYyBpbnQgbmZ0X2N0X2V4cGVjdF9vYmpfZHVtcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0aWYgKG5sYV9wdXRfYmUxNihza2IsIE5GVEFfQ1RfRVhQRUNUX0wzUFJPVE8sIGh0b25zKHByaXYtXHUwMDNlbDNudW0pKSB8fFxuIFx0ICAgIG5sYV9wdXRfdTgoc2tiLCBORlRBX0NUX0VYUEVDVF9MNFBST1RPLCBwcml2LVx1MDAzZWw0cHJvdG8pIHx8XG4gXHQgICAgbmxhX3B1dF9iZTE2KHNrYiwgTkZUQV9DVF9FWFBFQ1RfRFBPUlQsIHByaXYtXHUwMDNlZHBvcnQpIHx8XG4tXHQgICAgbmxhX3B1dF91MzIoc2tiLCBORlRBX0NUX0VYUEVDVF9USU1FT1VULCBwcml2LVx1MDAzZXRpbWVvdXQpIHx8XG4rXHQgICAgbmxhX3B1dF91MzIoc2tiLCBORlRBX0NUX0VYUEVDVF9USU1FT1VULCBqaWZmaWVzX3RvX21zZWNzKHByaXYtXHUwMDNldGltZW91dCkpIHx8XG4gXHQgICAgbmxhX3B1dF91OChza2IsIE5GVEFfQ1RfRVhQRUNUX1NJWkUsIHByaXYtXHUwMDNlc2l6ZSkpXG4gXHRcdHJldHVybiAtMTtcbiBcbkBAIC0xMzI1LDcgKzEzNDAsNyBAQCBzdGF0aWMgdm9pZCBuZnRfY3RfZXhwZWN0X29ial9ldmFsKHN0cnVjdCBuZnRfb2JqZWN0ICpvYmosXG4gXHRcdCAgICAgICAgICBcdTAwMjZjdC1cdTAwM2V0dXBsZWhhc2hbIWRpcl0udHVwbGUuc3JjLnUzLFxuIFx0XHQgICAgICAgICAgXHUwMDI2Y3QtXHUwMDNldHVwbGVoYXNoWyFkaXJdLnR1cGxlLmRzdC51MyxcbiBcdFx0ICAgICAgICAgIHByaXYtXHUwMDNlbDRwcm90bywgTlVMTCwgXHUwMDI2cHJpdi1cdTAwM2VkcG9ydCk7XG4tXHRleHAtXHUwMDNldGltZW91dCArPSBwcml2LVx1MDAzZXRpbWVvdXQgKiBIWjtcbitcdGV4cC1cdTAwM2V0aW1lb3V0ICs9IHByaXYtXHUwMDNldGltZW91dDtcbiBcbiBcdGlmIChuZl9jdF9leHBlY3RfcmVsYXRlZChleHAsIDApICE9IDApXG4gXHRcdHJlZ3MtXHUwMDNldmVyZGljdC5jb2RlID0gTkZfRFJPUDtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDA1OjU5OjU1LjA3NTQ0MjM5OVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU2NjU3NDE2NDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBDb25uZWN0aW9uIFRyYWNraW5nIEV4cGVjdGF0aW9uIFRpbWVvdXQgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdHdlYWtzIHRoZSBjb25uZWN0aW9uIHRyYWNraW5nIGV4cGVjdGF0aW9uIHRpbWVvdXQgaGFuZGxpbmcgd2l0aGluIHRoZSBOZXRmaWx0ZXIgc3Vic3lzdGVtLCBzcGVjaWZpY2FsbHkgaW4gYG5ldC9uZXRmaWx0ZXIvbmZ0X2N0LmNgLiBJdCBzZWVtcyB0aGV5J3JlIG1ha2luZyBzb21lIGltcG9ydGFudCBjaGFuZ2VzIHRvIGhvdyB0aGUgYHRpbWVvdXRgIHZhbHVlIGlzIGhhbmRsZWQgZm9yIGBuZnRfY3RfZXhwZWN0X29iamAuXG5cbkVzc2VudGlhbGx5LCBpdCBsb29rcyBsaWtlIHRoZXkncmUgYWRkcmVzc2luZyBhIHBvdGVudGlhbCBidWcgb3IgdnVsbmVyYWJpbGl0eSByZWxhdGVkIHRvIHRpbWVvdXRzLiBUaGUgY2hhbmdlcyBpbnZvbHZlIGludHJvZHVjaW5nIGEgbmV3IGZ1bmN0aW9uLCBgbmZ0X2N0X2V4cGVjdF90aW1lb3V0X2dldGAsIHdoaWNoIGlzIGNydWNpYWwuIEl0IGNvbnZlcnRzIHRoZSB0aW1lb3V0IHZhbHVlIGZyb20gbWlsbGlzZWNvbmRzIHRvIGppZmZpZXMgKmFuZCogY3J1Y2lhbGx5LCBpbmNsdWRlcyBvdmVyZmxvdyBjaGVja3MuICBUaGlzIGlzIHNtYXJ0OyBpbnRlZ2VyIG92ZXJmbG93cyB3aXRoIHRpbWUgY2FsY3VsYXRpb25zIGFyZSBub3RvcmlvdXNseSB0cmlja3kgdG8gZGVidWcuIFRoZXkncmUgdXBkYXRpbmcgdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBgbmZ0X2N0X2V4cGVjdF9vYmpgIHdpdGggYG5mdF9jdF9leHBlY3RfdGltZW91dF9nZXRgLCB3aGljaCBpcyB0aGUgbG9naWNhbCBwbGFjZS4gVGhlIGR1bXBpbmcgZnVuY3Rpb24gKGBuZnRfY3RfZXhwZWN0X29ial9kdW1wYCkgZ2V0cyB1cGRhdGVkIHRvIGNvbnZlcnQgdGhlIHN0b3JlZCBqaWZmaWVzIGJhY2sgdG8gbWlsbGlzZWNvbmRzIGZvciBvdXRwdXQuIExhc3RseSwgSSBzZWUgYG5mdF9jdF9leHBlY3Rfb2JqX2V2YWxgIGlzIGJlaW5nIGNoYW5nZWQgdG8gZGlyZWN0bHkgdXNlIGBwcml2LVx1MDAzZXRpbWVvdXRgIGluc3RlYWQgb2YgbXVsdGlwbHlpbmcgYnkgYEhaYOKAlHdoaWNoIGlzIGJlY2F1c2Ugd2Ugbm93IGhhdmUgdGhlIHRpbWVvdXQgaW4gamlmZmllcy5cblxuT3ZlcmFsbCwgdGhpcyBwYXRjaCBzZWVtcyBsaWtlIGEgc29saWQsIGZ1bmN0aW9uYWwgaW1wcm92ZW1lbnQuIEl0IGFpbXMgdG8gZWxpbWluYXRlIGEgcG90ZW50aWFsIG92ZXJmbG93IGNvbmRpdGlvbiBvciBlbnN1cmUgY29ycmVjdCB0aW1lb3V0IHZhbHVlcyBhcmUgdXNlZC4gVGhhdCBzb3VuZHMgZ29vZCwgYW5kIGJhc2VkIG9uIHRoaXMsIEknbSB0aGlua2luZyBpdCBkZWZpbml0ZWx5IHdhcnJhbnRzIHNvbWUgc2VyaW91cyBmdXp6aW5nIHRvIG1ha2Ugc3VyZSB0aGlzIGlzIHNvbGlkLiBObyBjb3JuZXIgY2FzZXMgc2xpcHBlZCB0aHJvdWdoLlxuXG5Ob3csIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIFRpbWUgdG8gdXNlIGBncmVwcGVyYCB0byBmaW5kIHRoZSBNYWtlZmlsZSBlbnRyeSBmb3IgYG5mdF9jdC5jYCBhbmQgZmlndXJlIG91dCB3aGF0IGtlcm5lbCBjb25maWcgb3B0aW9ucyBjb250cm9sIHRoaXMgcGFydCBvZiB0aGUgTmV0ZmlsdGVyIGNvZGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1ODAsIk91dHB1dFRva2VucyI6MzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTEsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwNjowMDowMC43NDExODY1NjNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjAwNjQzMDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibmZ0X2N0XFxcXC5vXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9uZXRmaWx0ZXIvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L25ldGZpbHRlci9NYWtlZmlsZT0xMTE9b2JqLSQoQ09ORklHX05GVF9OVU1HRU4pXFx0Kz0gbmZ0X251bWdlbi5vXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZToxMTI6b2JqLSQoQ09ORklHX05GVF9DVClcXHRcXHQrPSBuZnRfY3Qub1xcbm5ldC9uZXRmaWx0ZXIvTWFrZWZpbGUtMTEzLW9iai0kKENPTkZJR19ORlRfRkxPV19PRkZMT0FEKVxcdCs9IG5mdF9mbG93X29mZmxvYWQub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwNjowMDowMC44MDEyNTY1MjJaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzE4MjQ0NDIyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgYE5GVF9DVGAgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHNvIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24gaXRlbSBpcyBgTkZUX0NUYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGFyZSB0aGVyZSBhbnkgZGVwZW5kZW50IGNvbmZpZ3VyYXRpb25zIEkgbmVlZCB0byBiZSBhd2FyZSBvZj8gTGV0J3MgcXVpY2tseSB0cmFjZSB0aG9zZSBkZXBlbmRlbmNpZXMuIExvb2tpbmcsIGl0IGxvb2tzIGxpa2UgYE5GVF9DVGAgaXMgYnVpbHQgdXBvbiBgTkZfVEFCTEVTYCBhbmQgYE5GX0NPTk5UUkFDS2AuIEdvb2QsIHRoYXQncyB3aGF0IEkgZXhwZWN0ZWQuIE5vdywgSSBzaG91bGQgcHJvYmFibHkgZG91YmxlLWNoZWNrIHRoYXQgYnkgZXhhbWluaW5nIGBuZXQvbmV0ZmlsdGVyL0tjb25maWdgLCBqdXN0IHRvIGJlIGNlcnRhaW4uIEkgd2FudCB0byBtYWtlIHN1cmUgSSBoYXZlbid0IG1pc3NlZCBhbnl0aGluZyBjcnVjaWFsIGluIHRlcm1zIG9mIGJ1aWxkIG9wdGlvbnMgb3IgcmVsYXRlZCBkZXBlbmRlbmNpZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMzMDQsIk91dHB1dFRva2VucyI6MzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwNjowMDowNC4xMTk1MDQwODRaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDAxODUwMzgyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBORlRfQ1RcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L25ldGZpbHRlci9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9uZXRmaWx0ZXIvS2NvbmZpZz00ODQ9Y29uZmlnIE5GVF9OVU1HRU5cXG4tLVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy00ODktXFxubmV0L25ldGZpbHRlci9LY29uZmlnOjQ5MDpjb25maWcgTkZUX0NUXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTQ5MS1cXHRkZXBlbmRzIG9uIE5GX0NPTk5UUkFDS1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwNjowMDowNC41MjEzNTk4OTZaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDMzMDk3MDQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkFuYWx5emluZyB0aGUgYE5GVF9DVGAgRGVmaW5pdGlvbioqXG5cbk9rYXksIHNvIHRoZSBwcm9tcHQgZGlyZWN0cyBtZSB0byBmdWxseSBkZWZpbmUgYE5GVF9DVGAuIFJpZ2h0LCB0aGF0J3MgdGhlIHN0YXJ0aW5nIHBvaW50LiBJIG5lZWQgdG8gdHJlYXQgdGhpcyBhcyBpZiBJ4oCZbSBidWlsZGluZyBhIGtub3dsZWRnZSBncmFwaCBvZiBzb3J0cy4gTGV0J3Mgc2VlLi4uIHdoYXQgYXJlIHRoZSBsYXllcnMgaGVyZT8gSSdtIG5vdCBnb2luZyB0byBnaXZlIHNvbWUgZGVmaW5pdGlvbjsgaW5zdGVhZCwgdGhlIHByb21wdCBpcyBhYm91dCBkZXRlcm1pbmluZyAqd2hhdCBpcyB0aGUgZGVmaW5pdGlvbiouIEkgc2hvdWxkIGNoZWNrIGZvciBlZGdlIGNhc2VzLlxuXG5GaXJzdCwgSSBuZWVkIHRvIG1ha2UgY2VydGFpbiBpdCdzIGFib3V0IHRoZSB0ZWNobmljYWwgZGVmaW5pdGlvbi4gSWYgaXQncyBhIGRvbWFpbiBzcGVjaWZpYyB0ZXJtLCBmb3IgZXhhbXBsZSwgaXMgaXQgdGhlICpDcnlwdG8gVG9rZW4qLCBvciBpcyBpdCAqTm90IEZvciBUaGlzKiBhcyBhbiBhY3JvbnltIG9yIGluaXRpYWxpc20uIFRoaXMgaXMgdGhlIHN0YWdlIEknbSBhdC4gTGV0J3MgZmluZCBvdXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM2MDksIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwNjowMDowNy41NTQ0NTk1MDRaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjY0NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L25ldGZpbHRlci9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDQ4NSxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDQ4NTpcXHRcXHR0cmlzdGF0ZSBcXFwiTmV0ZmlsdGVyIG5mX3RhYmxlcyBudW1iZXIgZ2VuZXJhdG9yIG1vZHVsZVxcXCJcXG4gNDg2OlxcdFxcdGhlbHBcXG4gNDg3OlxcdFxcdCAgVGhpcyBvcHRpb24gYWRkcyB0aGUgbnVtYmVyIGdlbmVyYXRvciBleHByZXNzaW9uIHVzZWQgdG8gcGVyZm9ybVxcbiA0ODg6XFx0XFx0ICBpbmNyZW1lbnRhbCBjb3VudGluZyBhbmQgcmFuZG9tIG51bWJlcnMgYm91bmQgdG8gYSB1cHBlciBsaW1pdC5cXG4gNDg5OlxcdFxcbiA0OTA6XFx0Y29uZmlnIE5GVF9DVFxcbiA0OTE6XFx0XFx0ZGVwZW5kcyBvbiBORl9DT05OVFJBQ0tcXG4gNDkyOlxcdFxcdHRyaXN0YXRlIFxcXCJOZXRmaWx0ZXIgbmZfdGFibGVzIGNvbm50cmFjayBtb2R1bGVcXFwiXFxuIDQ5MzpcXHRcXHRoZWxwXFxuIDQ5NDpcXHRcXHQgIFRoaXMgb3B0aW9uIGFkZHMgdGhlIFxcXCJjdFxcXCIgZXhwcmVzc2lvbiB0aGF0IHlvdSBjYW4gdXNlIHRvIG1hdGNoXFxuIDQ5NTpcXHRcXHQgIGNvbm5lY3Rpb24gdHJhY2tpbmcgaW5mb3JtYXRpb24gc3VjaCBhcyB0aGUgZmxvdyBzdGF0ZS5cXG4gNDk2OlxcdFxcbiA0OTc6XFx0Y29uZmlnIE5GVF9FWFRIRFJfRENDUFxcbiA0OTg6XFx0XFx0Ym9vbCBcXFwiTmV0ZmlsdGVyIG5mX3RhYmxlcyBleHRoZHIgRENDUCBzdXBwb3J0IChERVBSRUNBVEVEKVxcXCJcXG4gNDk5OlxcdFxcdGRlZmF1bHQgblxcbiA1MDA6XFx0XFx0aGVscFxcbiA1MDE6XFx0XFx0ICBUaGlzIG9wdGlvbiBhZGRzIHN1cHBvcnQgZm9yIG1hdGNoaW5nIG9uIERDQ1AgZXh0ZW5zaW9uIGhlYWRlcnMuXFxuIDUwMjpcXHRcXG4gNTAzOlxcdGNvbmZpZyBORlRfRkxPV19PRkZMT0FEXFxuIDUwNDpcXHRcXHRkZXBlbmRzIG9uIE5GX0NPTk5UUkFDSyBcXHUwMDI2XFx1MDAyNiBORl9GTE9XX1RBQkxFXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDA2OjAwOjA3LjU1NDU4NzU5NFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjcwNDIzNzE0OTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBOZXRmaWx0ZXIgQ29ubmVjdGlvbiBUcmFja2luZyBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIHRoZSBjb3JlIG9mIGl0IHJldm9sdmVzIGFyb3VuZCBgTkZUX0NUYCwgdGhhdCdzIHRoZSBwcmltYXJ5IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIEkgbmVlZCB0byBiZSBjb25jZXJuZWQgd2l0aCBoZXJlLiBNeSBmb2N1cyBzaG91bGQgYmUgb24gdGhlIGNvbm5lY3Rpb24gdHJhY2tpbmcgZXhwZWN0YXRpb25zIG9iamVjdHMsIHBhcnRpY3VsYXJseSB0aGVzZSBmdW5jdGlvbnM6IGBuZnRfY3RfZXhwZWN0X29ial9pbml0YCwgYG5mdF9jdF9leHBlY3Rfb2JqX2V2YWxgLCBgbmZ0X2N0X2V4cGVjdF9vYmpfZHVtcGAsIGFuZCB0aGUgbmV3bHkgaW50cm9kdWNlZCBgbmZ0X2N0X2V4cGVjdF90aW1lb3V0X2dldGAuIFRob3NlIGFyZSBteSBjcml0aWNhbCBmb2N1cyBzeW1ib2xzLiBJJ2xsIG5lZWQgdG8gc2NydXRpbml6ZSBob3cgdGhlc2UgYXJlIGJlaW5nIGFsdGVyZWQuXG5cbkxldCdzIHNlZS4uLiB0aGUgcGF0Y2ggbGlzdCB0aG9zZSBmb3VyIGZ1bmN0aW9ucyBzcGVjaWZpY2FsbHkuIEdvb2QsIGNvbmZpcm1pbmcgbXkgaW5pdGlhbCBhc3Nlc3NtZW50LiBOb3csIHJlZ2FyZGluZyBjb25maWd1cmF0aW9ucywgaXQgbWVudGlvbnMgYE5GVF9DVGAsIGBORl9DT05OVFJBQ0tgLCBhbmQgYE5GX1RBQkxFU2AuIEkgbmVlZCB0byBiZSBzdXJlIEknbSBjYXB0dXJpbmcgdGhlIGRlcGVuZGVuY2llcyBjb3JyZWN0bHkuIFNpbmNlIGBORlRfQ1RgIGltcGxpY2l0bHkgZGVwZW5kcyBvbiBgTkZfQ09OTlRSQUNLYCAoYW5kIHRoYXQncyBuZXN0ZWQgd2l0aGluIGFuIGBpZiBORl9UQUJMRVNgIGNvbmRpdGlvbmFsKSwganVzdCBzdGF0aW5nIGBORlRfQ1RgIHNob3VsZCBiZSBzdWZmaWNpZW50LiBUaGF0IHNob3VsZCBjb3ZlciBib3RoIGBORl9DT05OVFJBQ0tgIGFuZCBgTkZfVEFCTEVTYCBiZWluZyBwcmVzZW50LCByaWdodD8gTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrIHRoYXQuIFllcywgYnkgaXRzIHZlcnkgbmF0dXJlLCBgTkZUX0NUYCBuZWNlc3NpdGF0ZXMgYm90aCBvZiB0aG9zZSB1bmRlcmx5aW5nIGNvbXBvbmVudHMuXG5cblJpZ2h0LCBzbyB0aGUgY3J1eCBvZiB0aGUgY2hhbmdlIHNlZW1zIHRvIGJlIGEgYnVnIGZpeCByZWxhdGVkIHRvIHRoZSBgbmZ0X2N0X2V4cGVjdF9vYmpfaW5pdGAgZnVuY3Rpb24uIEl0J3MgYWJvdXQgaG93IHRoZSB0aW1lb3V0IGlzIGJlaW5nIGhhbmRsZWQgLSBwb3RlbnRpYWwgb3ZlcmZsb3cgd2l0aCBqaWZmaWVzIGNvbnZlcnNpb24sIG9yIGluY29ycmVjdCBwYXJzaW5nL2V2YWx1YXRpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBkZWVwIHdpdGhpbiB0aGUgbmV0ZmlsdGVyIHN1YnN5c3RlbSwgc28gaXQncyBhIGNyaXRpY2FsIGFyZWEgdG8gZm9jdXMgb24uIE9rYXksIEkndmUgZ290IGEgZ29vZCBoYW5kbGUgb24gaXQgbm93OyB0aW1lIHRvIHNldCB0aGUgcmVzdWx0cy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDEzNSwiT3V0cHV0VG9rZW5zIjoxMjQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMjMsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwNjowMDoxNC41OTY5NjE2NloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg1OTA4NTI4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORlRfQ1RcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZnRfY3RfZXhwZWN0X29ial9pbml0XCIsXG4gICAgXCJuZnRfY3RfZXhwZWN0X29ial9ldmFsXCIsXG4gICAgXCJuZnRfY3RfZXhwZWN0X29ial9kdW1wXCIsXG4gICAgXCJuZnRfY3RfZXhwZWN0X3RpbWVvdXRfZ2V0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHRpbWVvdXQgcGFyc2luZyBhbmQgZXZhbHVhdGlvbiBsb2dpYyBmb3IgbmZ0X2N0X2V4cGVjdF9vYmogaW4gbmV0ZmlsdGVyLCBmaXhpbmcgYSBwb3RlbnRpYWwgb3ZlcmZsb3cgYW5kIGluY29ycmVjdCB0aW1lb3V0IGhhbmRsaW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5GVF9DVFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm5mdF9jdF9leHBlY3Rfb2JqX2luaXRcIixcbiAgICBcIm5mdF9jdF9leHBlY3Rfb2JqX2V2YWxcIixcbiAgICBcIm5mdF9jdF9leHBlY3Rfb2JqX2R1bXBcIixcbiAgICBcIm5mdF9jdF9leHBlY3RfdGltZW91dF9nZXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgdGltZW91dCBwYXJzaW5nIGFuZCBldmFsdWF0aW9uIGxvZ2ljIGZvciBuZnRfY3RfZXhwZWN0X29iaiBpbiBuZXRmaWx0ZXIsIGZpeGluZyBhIHBvdGVudGlhbCBvdmVyZmxvdyBhbmQgaW5jb3JyZWN0IHRpbWVvdXQgaGFuZGxpbmcuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowz5vvn[1] Phase: Succeeded StartedAt: 2026-06-23 06:00:25 +0000 UTC FinishedAt: 2026-06-23 06:00:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz5vvn[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-06-23 06:00:25 +0000 UTC FinishedAt: 2026-06-23 06:00:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz5vvn[2] Phase: Succeeded StartedAt: 2026-06-23 06:00:25 +0000 UTC FinishedAt: 2026-06-23 09:52:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz5vvn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-06-23 06:00:25 +0000 UTC FinishedAt: 2026-06-23 09:52:20 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowz5vvn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-06-23 06:00:25 +0000 UTC FinishedAt: 2026-06-23 06:00:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz5vvn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-06-23 06:00:25 +0000 UTC FinishedAt: 2026-06-23 06:00:31 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowz5vvn/series-workflowz5vvn-convert-artifact-1748269565/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowz5vvn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-06-23 06:00:35 +0000 UTC FinishedAt: 2026-06-23 06:21:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz5vvn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-06-23 06:00:35 +0000 UTC FinishedAt: 2026-06-23 06:21:45 +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:*dfd9eb8d-2b7d-41bd-9f31-926fe3e5c8db,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-workflowz5vvn/series-workflowz5vvn-convert-artifact-1748269565/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": "8c2dcffc-f331-415e-a791-6a18839a1655", "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-workflowz5vvn/series-workflowz5vvn-build-action-2470011699/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowz5vvn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-06-23 06:00:35 +0000 UTC FinishedAt: 2026-06-23 06:21:35 +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:*dfd9eb8d-2b7d-41bd-9f31-926fe3e5c8db,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-workflowz5vvn/series-workflowz5vvn-convert-artifact-1748269565/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": "8c2dcffc-f331-415e-a791-6a18839a1655", "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-workflowz5vvn/series-workflowz5vvn-build-action-2470011699/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowz5vvn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-06-23 06:21:45 +0000 UTC FinishedAt: 2026-06-23 06:21:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz5vvn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-06-23 06:21:45 +0000 UTC FinishedAt: 2026-06-23 06:21:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz5vvn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-06-23 06:21:45 +0000 UTC FinishedAt: 2026-06-23 06:21:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz5vvn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-06-23 06:21:45 +0000 UTC FinishedAt: 2026-06-23 06:21:51 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowz5vvn/series-workflowz5vvn-convert-artifact-791884888/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowz5vvn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-06-23 06:21:55 +0000 UTC FinishedAt: 2026-06-23 06:24:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz5vvn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-06-23 06:21:55 +0000 UTC FinishedAt: 2026-06-23 06:24:04 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*8c2dcffc-f331-415e-a791-6a18839a1655,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-workflowz5vvn/series-workflowz5vvn-build-action-2470011699/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-workflowz5vvn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-06-23 06:24:14 +0000 UTC FinishedAt: 2026-06-23 06:24:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz5vvn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-06-23 06:24:14 +0000 UTC FinishedAt: 2026-06-23 06:24:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz5vvn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-06-23 06:24:14 +0000 UTC FinishedAt: 2026-06-23 06:47:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz5vvn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-06-23 06:24:14 +0000 UTC FinishedAt: 2026-06-23 06:47:45 +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:*dfd9eb8d-2b7d-41bd-9f31-926fe3e5c8db,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-workflowz5vvn/series-workflowz5vvn-convert-artifact-791884888/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": "da9ee40e-8bfd-489a-a9d8-9fcb4ee95746", "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-workflowz5vvn/series-workflowz5vvn-build-action-2547965380/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowz5vvn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-06-23 06:24:14 +0000 UTC FinishedAt: 2026-06-23 06:47:35 +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:*dfd9eb8d-2b7d-41bd-9f31-926fe3e5c8db,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-workflowz5vvn/series-workflowz5vvn-convert-artifact-791884888/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": "da9ee40e-8bfd-489a-a9d8-9fcb4ee95746", "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-workflowz5vvn/series-workflowz5vvn-build-action-2547965380/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowz5vvn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-06-23 06:47:45 +0000 UTC FinishedAt: 2026-06-23 06:47:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz5vvn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-06-23 06:47:45 +0000 UTC FinishedAt: 2026-06-23 06:47:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz5vvn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-06-23 06:47:45 +0000 UTC FinishedAt: 2026-06-23 06:49:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz5vvn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-06-23 06:47:45 +0000 UTC FinishedAt: 2026-06-23 06:49:34 +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:*da9ee40e-8bfd-489a-a9d8-9fcb4ee95746,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-workflowz5vvn/series-workflowz5vvn-build-action-2547965380/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-workflowz5vvn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-06-23 06:49:43 +0000 UTC FinishedAt: 2026-06-23 06:49:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz5vvn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-06-23 06:49:44 +0000 UTC FinishedAt: 2026-06-23 09:52:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz5vvn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-06-23 06:49:44 +0000 UTC FinishedAt: 2026-06-23 09:52:20 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"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:*8c2dcffc-f331-415e-a791-6a18839a1655,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*da9ee40e-8bfd-489a-a9d8-9fcb4ee95746,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-workflowz5vvn/series-workflowz5vvn-build-action-2470011699/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-workflowz5vvn/series-workflowz5vvn-build-action-2547965380/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowz5vvn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-06-23 06:49:44 +0000 UTC FinishedAt: 2026-06-23 06:49:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz5vvn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-06-23 06:49:44 +0000 UTC FinishedAt: 2026-06-23 06:49:51 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"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-workflowz5vvn/series-workflowz5vvn-convert-artifact-3733270065/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowz5vvn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-06-23 06:49:44 +0000 UTC FinishedAt: 2026-06-23 06:49:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz5vvn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-06-23 06:49:44 +0000 UTC FinishedAt: 2026-06-23 06:49:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz5vvn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-06-23 06:49:54 +0000 UTC FinishedAt: 2026-06-23 09:52:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz5vvn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nft_ct_expect_obj_init","nft_ct_expect_obj_eval","nft_ct_expect_obj_dump","nft_ct_expect_timeout_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"56abdaebbf0da304b860bed1f2b5a85f5a6a16a0","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFT_CT"],"series_id":"27df637d-5da1-4980-b194-482d672f446a","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-06-23 06:49:54 +0000 UTC FinishedAt: 2026-06-23 09:52:08 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*8c2dcffc-f331-415e-a791-6a18839a1655,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*da9ee40e-8bfd-489a-a9d8-9fcb4ee95746,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-workflowz5vvn/series-workflowz5vvn-build-action-2470011699/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-workflowz5vvn/series-workflowz5vvn-build-action-2547965380/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-workflowz5vvn/series-workflowz5vvn-convert-artifact-3733270065/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,}