Name: series-workflowpszkm Phase: Succeeded StartedAt: 2026-07-20 03:25:14 +0000 UTC FinishedAt: 2026-07-20 08:20:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpszkm[0] Phase: Succeeded StartedAt: 2026-07-20 03:25:14 +0000 UTC FinishedAt: 2026-07-20 03:56:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpszkm[0].run-triage Phase: Succeeded StartedAt: 2026-07-20 03:25:14 +0000 UTC FinishedAt: 2026-07-20 03:56:07 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "3d9855d114f0955d590420f5670152c1099c1638", "config_name": "upstream-apparmor-kasan.config", "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "3d9855d114f0955d590420f5670152c1099c1638", "config_name": "upstream-apparmor-kasan.config", "series_id": "4c4cdcc0-36fe-41fd-8876-5a4c750b191b" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "madvise_cold", "madvise_pageout", "madvise_cold_page_range", "madvise_pageout_page_range" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": true, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDAzOjU0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bWFkdmlzZV9jb2xkJiMzNDssCiAgICAmIzM0O21hZHZpc2VfcGFnZW91dCYjMzQ7LAogICAgJiMzNDttYWR2aXNlX2NvbGRfcGFnZV9yYW5nZSYjMzQ7LAogICAgJiMzNDttYWR2aXNlX3BhZ2VvdXRfcGFnZV9yYW5nZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBjaGFuZ2VzIHRoZSBsb2NraW5nIG1vZGUgZm9yIE1BRFZfQ09MRCBhbmQgTUFEVl9QQUdFT1VUIG1hZHZpc2UgYmVoYXZpb3JzIGZyb20gTUFEVklTRV9NTUFQX1JFQURfTE9DSyB0byBNQURWSVNFX1ZNQV9SRUFEX0xPQ0suIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byBjb3JlIG1lbW9yeSBtYW5hZ2VtZW50IGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyBsb2NraW5nIGlzc3VlcyBvciByZWdyZXNzaW9ucyBhcmUgaW50cm9kdWNlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwMzo1NDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDFmYTBhOGMzZDJjNDVmMWYwZDMxNjgwYjI4MzQwYzBjNzM0Njc4M2NcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1bCAyMCAwMzo1NDozNiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9tbS9tYWR2aXNlLmMgYi9tbS9tYWR2aXNlLmNcbmluZGV4IGNkOWJiMDc3MDcyY2NiLi43OTVhOGE2ZmIyMzdmNyAxMDA2NDRcbi0tLSBhL21tL21hZHZpc2UuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbW0vbWFkdmlzZS5jXG5AQCAtNTY2LDEwICYjNDM7NTY2LDE5IEBAIHN0YXRpYyBpbnQgbWFkdmlzZV9jb2xkX29yX3BhZ2VvdXRfcHRlX3JhbmdlKHBtZF90ICpwbWQsXG4gXHRyZXR1cm4gMDtcbiB9XG4gXG4tc3RhdGljIGNvbnN0IHN0cnVjdCBtbV93YWxrX29wcyBjb2xkX3dhbGtfb3BzID0ge1xuLVx0LnBtZF9lbnRyeSA9IG1hZHZpc2VfY29sZF9vcl9wYWdlb3V0X3B0ZV9yYW5nZSxcbi1cdC53YWxrX2xvY2sgPSBQR1dBTEtfUkRMT0NLLFxuLX07XG4mIzQzO3N0YXRpYyBpbmxpbmUgZW51bSBwYWdlX3dhbGtfbG9jayBnZXRfd2Fsa19sb2NrKGVudW0gbWFkdmlzZV9sb2NrX21vZGUgbW9kZSlcbiYjNDM7e1xuJiM0MztcdHN3aXRjaCAobW9kZSkge1xuJiM0MztcdGNhc2UgTUFEVklTRV9WTUFfUkVBRF9MT0NLOlxuJiM0MztcdFx0cmV0dXJuIFBHV0FMS19WTUFfUkRMT0NLX1ZFUklGWTtcbiYjNDM7XHRjYXNlIE1BRFZJU0VfTU1BUF9SRUFEX0xPQ0s6XG4mIzQzO1x0XHRyZXR1cm4gUEdXQUxLX1JETE9DSztcbiYjNDM7XHRkZWZhdWx0OlxuJiM0MztcdFx0LyogT3RoZXIgbW9kZXMgZG9uJiMzOTt0IHJlcXVpcmUgZml4aW5nIHVwIHRoZSB3YWxrX2xvY2sgKi9cbiYjNDM7XHRcdFdBUk5fT05fT05DRSgxKTtcbiYjNDM7XHRcdHJldHVybiBQR1dBTEtfUkRMT0NLO1xuJiM0MztcdH1cbiYjNDM7fVxuIFxuIHN0YXRpYyB2b2lkIG1hZHZpc2VfY29sZF9wYWdlX3JhbmdlKHN0cnVjdCBtbXVfZ2F0aGVyICp0bGIsXG4gXHRcdHN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yICptYWR2X2JlaGF2aW9yKVxuQEAgLTU3NywxMyAmIzQzOzU4NiwxNyBAQCBzdGF0aWMgdm9pZCBtYWR2aXNlX2NvbGRfcGFnZV9yYW5nZShzdHJ1Y3QgbW11X2dhdGhlciAqdGxiLFxuIHtcbiBcdHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hID0gbWFkdl9iZWhhdmlvci1cdTAwM2V2bWE7XG4gXHRzdHJ1Y3QgbWFkdmlzZV9iZWhhdmlvcl9yYW5nZSAqcmFuZ2UgPSBcdTAwMjZtYWR2X2JlaGF2aW9yLVx1MDAzZXJhbmdlO1xuJiM0MztcdHN0cnVjdCBtbV93YWxrX29wcyB3YWxrX29wcyA9IHtcbiYjNDM7XHRcdC5wbWRfZW50cnkgPSBtYWR2aXNlX2NvbGRfb3JfcGFnZW91dF9wdGVfcmFuZ2UsXG4mIzQzO1x0fTtcbiBcdHN0cnVjdCBtYWR2aXNlX3dhbGtfcHJpdmF0ZSB3YWxrX3ByaXZhdGUgPSB7XG4gXHRcdC5wYWdlb3V0ID0gZmFsc2UsXG4gXHRcdC50bGIgPSB0bGIsXG4gXHR9O1xuIFxuJiM0MztcdHdhbGtfb3BzLndhbGtfbG9jayA9IGdldF93YWxrX2xvY2sobWFkdl9iZWhhdmlvci1cdTAwM2Vsb2NrX21vZGUpO1xuIFx0dGxiX3N0YXJ0X3ZtYSh0bGIsIHZtYSk7XG4tXHR3YWxrX3BhZ2VfcmFuZ2Vfdm1hKHZtYSwgcmFuZ2UtXHUwMDNlc3RhcnQsIHJhbmdlLVx1MDAzZWVuZCwgXHUwMDI2Y29sZF93YWxrX29wcyxcbiYjNDM7XHR3YWxrX3BhZ2VfcmFuZ2Vfdm1hKHZtYSwgcmFuZ2UtXHUwMDNlc3RhcnQsIHJhbmdlLVx1MDAzZWVuZCwgXHUwMDI2d2Fsa19vcHMsXG4gXHRcdFx0XHUwMDI2d2Fsa19wcml2YXRlKTtcbiBcdHRsYl9lbmRfdm1hKHRsYiwgdm1hKTtcbiB9XG5AQCAtNjExLDE1ICYjNDM7NjI0LDIwIEBAIHN0YXRpYyBsb25nIG1hZHZpc2VfY29sZChzdHJ1Y3QgbWFkdmlzZV9iZWhhdmlvciAqbWFkdl9iZWhhdmlvcilcbiBcbiBzdGF0aWMgdm9pZCBtYWR2aXNlX3BhZ2VvdXRfcGFnZV9yYW5nZShzdHJ1Y3QgbW11X2dhdGhlciAqdGxiLFxuIFx0XHRzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSxcbi1cdFx0c3RydWN0IG1hZHZpc2VfYmVoYXZpb3JfcmFuZ2UgKnJhbmdlKVxuJiM0MztcdFx0c3RydWN0IG1hZHZpc2VfYmVoYXZpb3IgKm1hZHZfYmVoYXZpb3IpXG4ge1xuJiM0MztcdHN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yX3JhbmdlICpyYW5nZSA9IFx1MDAyNm1hZHZfYmVoYXZpb3ItXHUwMDNlcmFuZ2U7XG4mIzQzO1x0c3RydWN0IG1tX3dhbGtfb3BzIHdhbGtfb3BzID0ge1xuJiM0MztcdFx0LnBtZF9lbnRyeSA9IG1hZHZpc2VfY29sZF9vcl9wYWdlb3V0X3B0ZV9yYW5nZSxcbiYjNDM7XHR9O1xuIFx0c3RydWN0IG1hZHZpc2Vfd2Fsa19wcml2YXRlIHdhbGtfcHJpdmF0ZSA9IHtcbiBcdFx0LnBhZ2VvdXQgPSB0cnVlLFxuIFx0XHQudGxiID0gdGxiLFxuIFx0fTtcbiBcbiYjNDM7XHR3YWxrX29wcy53YWxrX2xvY2sgPSBnZXRfd2Fsa19sb2NrKG1hZHZfYmVoYXZpb3ItXHUwMDNlbG9ja19tb2RlKTtcbiBcdHRsYl9zdGFydF92bWEodGxiLCB2bWEpO1xuLVx0d2Fsa19wYWdlX3JhbmdlX3ZtYSh2bWEsIHJhbmdlLVx1MDAzZXN0YXJ0LCByYW5nZS1cdTAwM2VlbmQsIFx1MDAyNmNvbGRfd2Fsa19vcHMsXG4mIzQzO1x0d2Fsa19wYWdlX3JhbmdlX3ZtYSh2bWEsIHJhbmdlLVx1MDAzZXN0YXJ0LCByYW5nZS1cdTAwM2VlbmQsIFx1MDAyNndhbGtfb3BzLFxuIFx0XHRcdCAgICBcdTAwMjZ3YWxrX3ByaXZhdGUpO1xuIFx0dGxiX2VuZF92bWEodGxiLCB2bWEpO1xuIH1cbkBAIC02NDQsNyAmIzQzOzY2Miw3IEBAIHN0YXRpYyBsb25nIG1hZHZpc2VfcGFnZW91dChzdHJ1Y3QgbWFkdmlzZV9iZWhhdmlvciAqbWFkdl9iZWhhdmlvcilcbiBcbiBcdGxydV9hZGRfZHJhaW4oKTtcbiBcdHRsYl9nYXRoZXJfbW11KFx1MDAyNnRsYiwgbWFkdl9iZWhhdmlvci1cdTAwM2VtbSk7XG4tXHRtYWR2aXNlX3BhZ2VvdXRfcGFnZV9yYW5nZShcdTAwMjZ0bGIsIHZtYSwgXHUwMDI2bWFkdl9iZWhhdmlvci1cdTAwM2VyYW5nZSk7XG4mIzQzO1x0bWFkdmlzZV9wYWdlb3V0X3BhZ2VfcmFuZ2UoXHUwMDI2dGxiLCB2bWEsIG1hZHZfYmVoYXZpb3IpO1xuIFx0dGxiX2ZpbmlzaF9tbXUoXHUwMDI2dGxiKTtcbiBcbiBcdHJldHVybiAwO1xuQEAgLTc4MywyMCAmIzQzOzgwMSw2IEBAIHN0YXRpYyBpbnQgbWFkdmlzZV9mcmVlX3B0ZV9yYW5nZShwbWRfdCAqcG1kLCB1bnNpZ25lZCBsb25nIGFkZHIsXG4gXHRyZXR1cm4gMDtcbiB9XG4gXG4tc3RhdGljIGlubGluZSBlbnVtIHBhZ2Vfd2Fsa19sb2NrIGdldF93YWxrX2xvY2soZW51bSBtYWR2aXNlX2xvY2tfbW9kZSBtb2RlKVxuLXtcbi1cdHN3aXRjaCAobW9kZSkge1xuLVx0Y2FzZSBNQURWSVNFX1ZNQV9SRUFEX0xPQ0s6XG4tXHRcdHJldHVybiBQR1dBTEtfVk1BX1JETE9DS19WRVJJRlk7XG4tXHRjYXNlIE1BRFZJU0VfTU1BUF9SRUFEX0xPQ0s6XG4tXHRcdHJldHVybiBQR1dBTEtfUkRMT0NLO1xuLVx0ZGVmYXVsdDpcbi1cdFx0LyogT3RoZXIgbW9kZXMgZG9uJiMzOTt0IHJlcXVpcmUgZml4aW5nIHVwIHRoZSB3YWxrX2xvY2sgKi9cbi1cdFx0V0FSTl9PTl9PTkNFKDEpO1xuLVx0XHRyZXR1cm4gUEdXQUxLX1JETE9DSztcbi1cdH1cbi19XG4tXG4gc3RhdGljIGludCBtYWR2aXNlX2ZyZWVfc2luZ2xlX3ZtYShzdHJ1Y3QgbWFkdmlzZV9iZWhhdmlvciAqbWFkdl9iZWhhdmlvcilcbiB7XG4gXHRzdHJ1Y3QgbW1fc3RydWN0ICptbSA9IG1hZHZfYmVoYXZpb3ItXHUwMDNlbW07XG5AQCAtMTc0OCw4ICYjNDM7MTc1Miw2IEBAIHN0YXRpYyBlbnVtIG1hZHZpc2VfbG9ja19tb2RlIGdldF9sb2NrX21vZGUoc3RydWN0IG1hZHZpc2VfYmVoYXZpb3IgKm1hZHZfYmVoYXZpXG4gXHRzd2l0Y2ggKG1hZHZfYmVoYXZpb3ItXHUwMDNlYmVoYXZpb3IpIHtcbiBcdGNhc2UgTUFEVl9SRU1PVkU6XG4gXHRjYXNlIE1BRFZfV0lMTE5FRUQ6XG4tXHRjYXNlIE1BRFZfQ09MRDpcbi1cdGNhc2UgTUFEVl9QQUdFT1VUOlxuIFx0Y2FzZSBNQURWX1BPUFVMQVRFX1JFQUQ6XG4gXHRjYXNlIE1BRFZfUE9QVUxBVEVfV1JJVEU6XG4gXHRjYXNlIE1BRFZfQ09MTEFQU0U6XG5AQCAtMTc1OSw2ICYjNDM7MTc2MSw4IEBAIHN0YXRpYyBlbnVtIG1hZHZpc2VfbG9ja19tb2RlIGdldF9sb2NrX21vZGUoc3RydWN0IG1hZHZpc2VfYmVoYXZpb3IgKm1hZHZfYmVoYXZpXG4gXHRjYXNlIE1BRFZfRE9OVE5FRUQ6XG4gXHRjYXNlIE1BRFZfRE9OVE5FRURfTE9DS0VEOlxuIFx0Y2FzZSBNQURWX0ZSRUU6XG4mIzQzO1x0Y2FzZSBNQURWX0NPTEQ6XG4mIzQzO1x0Y2FzZSBNQURWX1BBR0VPVVQ6XG4gXHRcdHJldHVybiBNQURWSVNFX1ZNQV9SRUFEX0xPQ0s7XG4gXHRkZWZhdWx0OlxuIFx0XHRyZXR1cm4gTUFEVklTRV9NTUFQX1dSSVRFX0xPQ0s7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMDM6NTQ8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttYWR2aXNlX2NvbGQmIzM0OywKICAgICYjMzQ7bWFkdmlzZV9wYWdlb3V0JiMzNDssCiAgICAmIzM0O21hZHZpc2VfY29sZF9wYWdlX3JhbmdlJiMzNDssCiAgICAmIzM0O21hZHZpc2VfcGFnZW91dF9wYWdlX3JhbmdlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGNoYW5nZXMgdGhlIGxvY2tpbmcgbW9kZSBmb3IgTUFEVl9DT0xEIGFuZCBNQURWX1BBR0VPVVQgbWFkdmlzZSBiZWhhdmlvcnMgZnJvbSBNQURWSVNFX01NQVBfUkVBRF9MT0NLIHRvIE1BRFZJU0VfVk1BX1JFQURfTE9DSy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIGNvcmUgbWVtb3J5IG1hbmFnZW1lbnQgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIGxvY2tpbmcgaXNzdWVzIG9yIHJlZ3Jlc3Npb25zIGFyZSBpbnRyb2R1Y2VkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAxZmEwYThjM2QyYzQ1ZjFmMGQzMTY4MGIyODM0MGMwYzczNDY3ODNjCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBKdWwgMjAgMDM6NTQ6MzYgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9tbS9tYWR2aXNlLmMgYi9tbS9tYWR2aXNlLmMKaW5kZXggY2Q5YmIwNzcwNzJjY2IuLjc5NWE4YTZmYjIzN2Y3IDEwMDY0NAotLS0gYS9tbS9tYWR2aXNlLmMKJiM0MzsmIzQzOyYjNDM7IGIvbW0vbWFkdmlzZS5jCkBAIC01NjYsMTAgJiM0Mzs1NjYsMTkgQEAgc3RhdGljIGludCBtYWR2aXNlX2NvbGRfb3JfcGFnZW91dF9wdGVfcmFuZ2UocG1kX3QgKnBtZCwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGNvbnN0IHN0cnVjdCBtbV93YWxrX29wcyBjb2xkX3dhbGtfb3BzID0gewotCS5wbWRfZW50cnkgPSBtYWR2aXNlX2NvbGRfb3JfcGFnZW91dF9wdGVfcmFuZ2UsCi0JLndhbGtfbG9jayA9IFBHV0FMS19SRExPQ0ssCi19OwomIzQzO3N0YXRpYyBpbmxpbmUgZW51bSBwYWdlX3dhbGtfbG9jayBnZXRfd2Fsa19sb2NrKGVudW0gbWFkdmlzZV9sb2NrX21vZGUgbW9kZSkKJiM0Mzt7CiYjNDM7CXN3aXRjaCAobW9kZSkgewomIzQzOwljYXNlIE1BRFZJU0VfVk1BX1JFQURfTE9DSzoKJiM0MzsJCXJldHVybiBQR1dBTEtfVk1BX1JETE9DS19WRVJJRlk7CiYjNDM7CWNhc2UgTUFEVklTRV9NTUFQX1JFQURfTE9DSzoKJiM0MzsJCXJldHVybiBQR1dBTEtfUkRMT0NLOwomIzQzOwlkZWZhdWx0OgomIzQzOwkJLyogT3RoZXIgbW9kZXMgZG9uJiMzOTt0IHJlcXVpcmUgZml4aW5nIHVwIHRoZSB3YWxrX2xvY2sgKi8KJiM0MzsJCVdBUk5fT05fT05DRSgxKTsKJiM0MzsJCXJldHVybiBQR1dBTEtfUkRMT0NLOwomIzQzOwl9CiYjNDM7fQogCiBzdGF0aWMgdm9pZCBtYWR2aXNlX2NvbGRfcGFnZV9yYW5nZShzdHJ1Y3QgbW11X2dhdGhlciAqdGxiLAogCQlzdHJ1Y3QgbWFkdmlzZV9iZWhhdmlvciAqbWFkdl9iZWhhdmlvcikKQEAgLTU3NywxMyAmIzQzOzU4NiwxNyBAQCBzdGF0aWMgdm9pZCBtYWR2aXNlX2NvbGRfcGFnZV9yYW5nZShzdHJ1Y3QgbW11X2dhdGhlciAqdGxiLAogewogCXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hID0gbWFkdl9iZWhhdmlvci0mZ3Q7dm1hOwogCXN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yX3JhbmdlICpyYW5nZSA9ICZhbXA7bWFkdl9iZWhhdmlvci0mZ3Q7cmFuZ2U7CiYjNDM7CXN0cnVjdCBtbV93YWxrX29wcyB3YWxrX29wcyA9IHsKJiM0MzsJCS5wbWRfZW50cnkgPSBtYWR2aXNlX2NvbGRfb3JfcGFnZW91dF9wdGVfcmFuZ2UsCiYjNDM7CX07CiAJc3RydWN0IG1hZHZpc2Vfd2Fsa19wcml2YXRlIHdhbGtfcHJpdmF0ZSA9IHsKIAkJLnBhZ2VvdXQgPSBmYWxzZSwKIAkJLnRsYiA9IHRsYiwKIAl9OwogCiYjNDM7CXdhbGtfb3BzLndhbGtfbG9jayA9IGdldF93YWxrX2xvY2sobWFkdl9iZWhhdmlvci0mZ3Q7bG9ja19tb2RlKTsKIAl0bGJfc3RhcnRfdm1hKHRsYiwgdm1hKTsKLQl3YWxrX3BhZ2VfcmFuZ2Vfdm1hKHZtYSwgcmFuZ2UtJmd0O3N0YXJ0LCByYW5nZS0mZ3Q7ZW5kLCAmYW1wO2NvbGRfd2Fsa19vcHMsCiYjNDM7CXdhbGtfcGFnZV9yYW5nZV92bWEodm1hLCByYW5nZS0mZ3Q7c3RhcnQsIHJhbmdlLSZndDtlbmQsICZhbXA7d2Fsa19vcHMsCiAJCQkmYW1wO3dhbGtfcHJpdmF0ZSk7CiAJdGxiX2VuZF92bWEodGxiLCB2bWEpOwogfQpAQCAtNjExLDE1ICYjNDM7NjI0LDIwIEBAIHN0YXRpYyBsb25nIG1hZHZpc2VfY29sZChzdHJ1Y3QgbWFkdmlzZV9iZWhhdmlvciAqbWFkdl9iZWhhdmlvcikKIAogc3RhdGljIHZvaWQgbWFkdmlzZV9wYWdlb3V0X3BhZ2VfcmFuZ2Uoc3RydWN0IG1tdV9nYXRoZXIgKnRsYiwKIAkJc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCi0JCXN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yX3JhbmdlICpyYW5nZSkKJiM0MzsJCXN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yICptYWR2X2JlaGF2aW9yKQogewomIzQzOwlzdHJ1Y3QgbWFkdmlzZV9iZWhhdmlvcl9yYW5nZSAqcmFuZ2UgPSAmYW1wO21hZHZfYmVoYXZpb3ItJmd0O3JhbmdlOwomIzQzOwlzdHJ1Y3QgbW1fd2Fsa19vcHMgd2Fsa19vcHMgPSB7CiYjNDM7CQkucG1kX2VudHJ5ID0gbWFkdmlzZV9jb2xkX29yX3BhZ2VvdXRfcHRlX3JhbmdlLAomIzQzOwl9OwogCXN0cnVjdCBtYWR2aXNlX3dhbGtfcHJpdmF0ZSB3YWxrX3ByaXZhdGUgPSB7CiAJCS5wYWdlb3V0ID0gdHJ1ZSwKIAkJLnRsYiA9IHRsYiwKIAl9OwogCiYjNDM7CXdhbGtfb3BzLndhbGtfbG9jayA9IGdldF93YWxrX2xvY2sobWFkdl9iZWhhdmlvci0mZ3Q7bG9ja19tb2RlKTsKIAl0bGJfc3RhcnRfdm1hKHRsYiwgdm1hKTsKLQl3YWxrX3BhZ2VfcmFuZ2Vfdm1hKHZtYSwgcmFuZ2UtJmd0O3N0YXJ0LCByYW5nZS0mZ3Q7ZW5kLCAmYW1wO2NvbGRfd2Fsa19vcHMsCiYjNDM7CXdhbGtfcGFnZV9yYW5nZV92bWEodm1hLCByYW5nZS0mZ3Q7c3RhcnQsIHJhbmdlLSZndDtlbmQsICZhbXA7d2Fsa19vcHMsCiAJCQkgICAgJmFtcDt3YWxrX3ByaXZhdGUpOwogCXRsYl9lbmRfdm1hKHRsYiwgdm1hKTsKIH0KQEAgLTY0NCw3ICYjNDM7NjYyLDcgQEAgc3RhdGljIGxvbmcgbWFkdmlzZV9wYWdlb3V0KHN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yICptYWR2X2JlaGF2aW9yKQogCiAJbHJ1X2FkZF9kcmFpbigpOwogCXRsYl9nYXRoZXJfbW11KCZhbXA7dGxiLCBtYWR2X2JlaGF2aW9yLSZndDttbSk7Ci0JbWFkdmlzZV9wYWdlb3V0X3BhZ2VfcmFuZ2UoJmFtcDt0bGIsIHZtYSwgJmFtcDttYWR2X2JlaGF2aW9yLSZndDtyYW5nZSk7CiYjNDM7CW1hZHZpc2VfcGFnZW91dF9wYWdlX3JhbmdlKCZhbXA7dGxiLCB2bWEsIG1hZHZfYmVoYXZpb3IpOwogCXRsYl9maW5pc2hfbW11KCZhbXA7dGxiKTsKIAogCXJldHVybiAwOwpAQCAtNzgzLDIwICYjNDM7ODAxLDYgQEAgc3RhdGljIGludCBtYWR2aXNlX2ZyZWVfcHRlX3JhbmdlKHBtZF90ICpwbWQsIHVuc2lnbmVkIGxvbmcgYWRkciwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGlubGluZSBlbnVtIHBhZ2Vfd2Fsa19sb2NrIGdldF93YWxrX2xvY2soZW51bSBtYWR2aXNlX2xvY2tfbW9kZSBtb2RlKQotewotCXN3aXRjaCAobW9kZSkgewotCWNhc2UgTUFEVklTRV9WTUFfUkVBRF9MT0NLOgotCQlyZXR1cm4gUEdXQUxLX1ZNQV9SRExPQ0tfVkVSSUZZOwotCWNhc2UgTUFEVklTRV9NTUFQX1JFQURfTE9DSzoKLQkJcmV0dXJuIFBHV0FMS19SRExPQ0s7Ci0JZGVmYXVsdDoKLQkJLyogT3RoZXIgbW9kZXMgZG9uJiMzOTt0IHJlcXVpcmUgZml4aW5nIHVwIHRoZSB3YWxrX2xvY2sgKi8KLQkJV0FSTl9PTl9PTkNFKDEpOwotCQlyZXR1cm4gUEdXQUxLX1JETE9DSzsKLQl9Ci19Ci0KIHN0YXRpYyBpbnQgbWFkdmlzZV9mcmVlX3NpbmdsZV92bWEoc3RydWN0IG1hZHZpc2VfYmVoYXZpb3IgKm1hZHZfYmVoYXZpb3IpCiB7CiAJc3RydWN0IG1tX3N0cnVjdCAqbW0gPSBtYWR2X2JlaGF2aW9yLSZndDttbTsKQEAgLTE3NDgsOCAmIzQzOzE3NTIsNiBAQCBzdGF0aWMgZW51bSBtYWR2aXNlX2xvY2tfbW9kZSBnZXRfbG9ja19tb2RlKHN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yICptYWR2X2JlaGF2aQogCXN3aXRjaCAobWFkdl9iZWhhdmlvci0mZ3Q7YmVoYXZpb3IpIHsKIAljYXNlIE1BRFZfUkVNT1ZFOgogCWNhc2UgTUFEVl9XSUxMTkVFRDoKLQljYXNlIE1BRFZfQ09MRDoKLQljYXNlIE1BRFZfUEFHRU9VVDoKIAljYXNlIE1BRFZfUE9QVUxBVEVfUkVBRDoKIAljYXNlIE1BRFZfUE9QVUxBVEVfV1JJVEU6CiAJY2FzZSBNQURWX0NPTExBUFNFOgpAQCAtMTc1OSw2ICYjNDM7MTc2MSw4IEBAIHN0YXRpYyBlbnVtIG1hZHZpc2VfbG9ja19tb2RlIGdldF9sb2NrX21vZGUoc3RydWN0IG1hZHZpc2VfYmVoYXZpb3IgKm1hZHZfYmVoYXZpCiAJY2FzZSBNQURWX0RPTlRORUVEOgogCWNhc2UgTUFEVl9ET05UTkVFRF9MT0NLRUQ6CiAJY2FzZSBNQURWX0ZSRUU6CiYjNDM7CWNhc2UgTUFEVl9DT0xEOgomIzQzOwljYXNlIE1BRFZfUEFHRU9VVDoKIAkJcmV0dXJuIE1BRFZJU0VfVk1BX1JFQURfTE9DSzsKIAlkZWZhdWx0OgogCQlyZXR1cm4gTUFEVklTRV9NTUFQX1dSSVRFX0xPQ0s7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDAzOjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMyNjcKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAzNTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgTWFkdmlzZSBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyBgbW0vbWFkdmlzZS5jYC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSByZXZvbHZlcyBhcm91bmQgaG93IGxvY2tzIGFyZSBoYW5kbGVkIGZvciBgTUFEVl9DT0xEYCBhbmQgYE1BRFZfUEFHRU9VVGAuIEl0IGxvb2tzIGxpa2UgdGhlIGxvY2sgbW9kZSBpcyBiZWluZyBzaGlmdGVkIGZyb20gYE1BRFZJU0VfTU1BUF9SRUFEX0xPQ0tgIHRvIGBNQURWSVNFX1ZNQV9SRUFEX0xPQ0tgLiBUaGF0JiMzOTtzIGEgc3VidGxlIGJ1dCBwb3RlbnRpYWxseSBzaWduaWZpY2FudCBjaGFuZ2UgaW4gaG93IHRoZXNlIG1hZHZpc2Ugb3BlcmF0aW9ucyBpbnRlcmFjdCB3aXRoIHRoZSBtZW1vcnkgbWFwLiBUaGUgY29kZSBpcyBhbHNvIGJlaW5nIHJlZmFjdG9yZWQsIG1vdmluZyB0aGUgYGdldF93YWxrX2xvY2tgIGZ1bmN0aW9uIGFyb3VuZCBmb3IgYmV0dGVyIHJlLXVzYWJpbGl0eSB3aXRoaW4gdGhlIGZpbGUsIHNwZWNpZmljYWxseSBmb3IgdGhlIGBtYWR2aXNlX2NvbGRfcGFnZV9yYW5nZWAgYW5kIGBtYWR2aXNlX3BhZ2VvdXRfcGFnZV9yYW5nZWAgZnVuY3Rpb25zLiAgVGhvc2UgZnVuY3Rpb25zIGFyZSBhbHNvIGJlaW5nIHVwZGF0ZWQgdG8gdXNlIGBnZXRfd2Fsa19sb2NrYCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBsb2NrIG1vZGUsIHJhdGhlciB0aGFuIHRoZSBoYXJkY29kZWQgYFBHV0FMS19SRExPQ0tgLgoKRnVuY3Rpb25hbGx5LCB0aGlzIGltcGFjdHMgY3JpdGljYWwgbWVtb3J5IG1hbmFnZW1lbnQgYmVoYXZpb3IuIEl0IGRlZmluaXRlbHkgd2FycmFudHMgYSBjbG9zZSBsb29rLCBhbmQgZnV6emluZyB0aGlzIGlzIGEgbXVzdC4gSSYjMzk7bGwgbmVlZCB0byBmb2N1cyBvbiBwb3RlbnRpYWwgYXJlYXMgb2YgY29uY2VybiwgcGFydGljdWxhcmx5IGFyb3VuZCB0aGVzZSBzeW1ib2xzOiBgbWFkdmlzZV9jb2xkYCwgYG1hZHZpc2VfcGFnZW91dGAsIHRoZSByYW5nZSBmdW5jdGlvbnMgKGBtYWR2aXNlX2NvbGRfcGFnZV9yYW5nZWAsIGBtYWR2aXNlX3BhZ2VvdXRfcGFnZV9yYW5nZWApLCBhbmQgYG1hZHZpc2VfY29sZF9vcl9wYWdlb3V0X3B0ZV9yYW5nZWAuCgpOb3csIGJlZm9yZSBJIGRpZyBpbiB0b28gZGVlcCwgSSBuZWVkIHRvIGNoZWNrIHRoZSBjb25maWd1cmF0aW9uIGxhbmRzY2FwZS4gV2hpbGUgYG1hZHZpc2VgIGl0c2VsZiBpcyBsaWtlbHkgYWx3YXlzIGVuYWJsZWQsIEkmIzM5O2xsIG5lZWQgdG8gdmVyaWZ5IHdoZXRoZXIgYE1BRFZfQ09MRGAgYW5kIGBNQURWX1BBR0VPVVRgIGhhdmUgYW55IGRlcGVuZGVuY2llcyBvbiBmZWF0dXJlcyBsaWtlIGBDT05GSUdfVFJBTlNQQVJFTlRfSFVHRVBBR0VgIG9yIHNpbXBseSB0aGUgc3RhbmRhcmQgYENPTkZJR19BRFZJU0VfU1lTQ0FMTFNgLiAgSSYjMzk7bGwgc2NhbiBgbW0vbWFkdmlzZS5jYCBmb3IgdGhvc2UgZGVmaW5lcywgc3BlY2lmaWNhbGx5IGxvb2tpbmcgZm9yIGFueSBjb25kaXRpb25hbHMgYXJvdW5kIGBNQURWX0NPTERgIGFzIGEgc3RhcnRpbmcgcG9pbnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMDM6NTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TUFEVl9DT0xEJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bW0vbWFkdmlzZS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O21tL21hZHZpc2UuYz0xMzQzPXN0YXRpYyBpbnQgbWFkdmlzZV92bWFfYmVoYXZpb3Ioc3RydWN0IG1hZHZpc2VfYmVoYXZpb3IgKm1hZHZfYmVoYXZpb3IpXG4tLVxubW0vbWFkdmlzZS5jLTEzNTgtXHRcdHJldHVybiBtYWR2aXNlX3dpbGxuZWVkKG1hZHZfYmVoYXZpb3IpO1xubW0vbWFkdmlzZS5jOjEzNTk6XHRjYXNlIE1BRFZfQ09MRDpcbm1tL21hZHZpc2UuYy0xMzYwLVx0XHRyZXR1cm4gbWFkdmlzZV9jb2xkKG1hZHZfYmVoYXZpb3IpO1xuLS1cbm1tL21hZHZpc2UuYz0xNTIzPW1hZHZpc2VfYmVoYXZpb3JfdmFsaWQoaW50IGJlaGF2aW9yKVxuLS1cbm1tL21hZHZpc2UuYy0xNTM1LVx0Y2FzZSBNQURWX0ZSRUU6XG5tbS9tYWR2aXNlLmM6MTUzNjpcdGNhc2UgTUFEVl9DT0xEOlxubW0vbWFkdmlzZS5jLTE1MzctXHRjYXNlIE1BRFZfUEFHRU9VVDpcbi0tXG5tbS9tYWR2aXNlLmM9MTU2Nz1zdGF0aWMgYm9vbCBwcm9jZXNzX21hZHZpc2VfcmVtb3RlX3ZhbGlkKGludCBiZWhhdmlvcilcbi0tXG5tbS9tYWR2aXNlLmMtMTU2OS1cdHN3aXRjaCAoYmVoYXZpb3IpIHtcbm1tL21hZHZpc2UuYzoxNTcwOlx0Y2FzZSBNQURWX0NPTEQ6XG5tbS9tYWR2aXNlLmMtMTU3MS1cdGNhc2UgTUFEVl9QQUdFT1VUOlxuLS1cbm1tL21hZHZpc2UuYz0xNzQ3PXN0YXRpYyBlbnVtIG1hZHZpc2VfbG9ja19tb2RlIGdldF9sb2NrX21vZGUoc3RydWN0IG1hZHZpc2VfYmVoYXZpb3IgKm1hZHZfYmVoYXZpb3IpXG4tLVxubW0vbWFkdmlzZS5jLTE3NjMtXHRjYXNlIE1BRFZfRlJFRTpcbm1tL21hZHZpc2UuYzoxNzY0Olx0Y2FzZSBNQURWX0NPTEQ6XG5tbS9tYWR2aXNlLmMtMTc2NS1cdGNhc2UgTUFEVl9QQUdFT1VUOlxuLS1cbm1tL21hZHZpc2UuYz0xODkyPXN0YXRpYyBpbnQgbWFkdmlzZV9kb19iZWhhdmlvcih1bnNpZ25lZCBsb25nIHN0YXJ0LCBzaXplX3QgbGVuX2luLFxuLS1cbm1tL21hZHZpc2UuYy0xOTY0LSAqICBNQURWX0RPRFVNUCAtIGNhbmNlbCBNQURWX0RPTlREVU1QOiBubyBsb25nZXIgZXhjbHVkZSBmcm9tIGNvcmUgZHVtcC5cbm1tL21hZHZpc2UuYzoxOTY1OiAqICBNQURWX0NPTEQgLSB0aGUgYXBwbGljYXRpb24gaXMgbm90IGV4cGVjdGVkIHRvIHVzZSB0aGlzIG1lbW9yeSBzb29uLFxubW0vbWFkdmlzZS5jLTE5NjYtICpcdFx0ZGVhY3RpdmF0ZSBwYWdlcyBpbiB0aGlzIHJhbmdlIHNvIHRoYXQgdGhleSBjYW4gYmUgcmVjbGFpbWVkXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMDM6NTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDY0NAoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDIxNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE1BRFZfQ09MRCBhbmQgTUFEVl9QQUdFT1VUIENoYW5nZXMqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGVzZSBtb2RpZmljYXRpb25zLiBUaGUgY29kZSBjaGFuZ2VzIGFyZSBhbGwgd2l0aGluIGBtbS9tYWR2aXNlLmNgLCBzcGVjaWZpY2FsbHkgZm9jdXNpbmcgb24gaG93IHRoZSBzeXN0ZW0gaGFuZGxlcyBgTUFEVl9DT0xEYCBhbmQgYE1BRFZfUEFHRU9VVGAuIEl0IGxvb2tzIGxpa2UgdGhlIGNvcmUgZnVuY3Rpb25zIGJlaW5nIHRvdWNoZWQgYXJlIGBtYWR2aXNlX2NvbGRgIGFuZCBgbWFkdmlzZV9wYWdlb3V0YCwgd2hpY2ggaW4gdHVybiBjYWxsIHRoZSBtb3JlIGdyYW51bGFyIGBtYWR2aXNlX2NvbGRfcGFnZV9yYW5nZWAgYW5kIGBtYWR2aXNlX3BhZ2VvdXRfcGFnZV9yYW5nZWAuIEFuZCBJIHNlZSB0aGF0IGBnZXRfbG9ja19tb2RlYCBpcyBhbHNvIGdldHRpbmcgYWRqdXN0ZWQgdG8gaGFuZGxlIHRoZSBsb2NrIG1vZGVzIGFzc29jaWF0ZWQgd2l0aCB0aGVzZSBuZXcgbWFkdmlzZSBmbGFncy4KCk5vdywgYmVmb3JlIEkgZGlnIGRlZXBlciBpbnRvIHRoZSBncmFudWxhciBmdW5jdGlvbnMsIEkmIzM5O2xsIHF1aWNrbHkgc2VlIGlmIHRoZXJlIGFyZSBhbnkgbmV3IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBpbnRyb2R1Y2VkIHNwZWNpZmljYWxseSBmb3IgYE1BRFZfQ09MRGAgb3IgYE1BRFZfUEFHRU9VVGAuIFRoZXNlIG1hZHZpc2UgY2FsbHMgYXJlIHBhcnQgb2YgdGhlIGBtYWR2aXNlYCBzeXNjYWxsIHNvIHRoYXQgbWVhbnMgYENPTkZJR19BRFZJU0VfU1lTQ0FMTFNgIHNob3VsZCBiZSB0aGUgbWFpbiBjb25maWcgdG8gd29ycnkgYWJvdXQuIEkmIzM5O20gbm90IHNlZWluZyBhbnl0aGluZyB0aGF0IHN0YW5kcyBvdXQsIGFuZCBpdCBtYWtlcyBzZW5zZTsgYG1hZHZpc2VgIGlzIGEgcHJldHR5IGZ1bmRhbWVudGFsIGZlYXR1cmUsIHNvIEkmIzM5O20gbm90IGV4cGVjdGluZyBhbnl0aGluZyB0b28gdW51c3VhbCBvbiB0aGUgY29uZmlnIHNpZGUuCgpXaXRoIHRoYXQgY2xlYXJlZCwgdGltZSB0byBnZXQgaW50byB0aGUgZGV0YWlscyBvZiB3aGF0JiMzOTtzIGhhcHBlbmluZyB3aXRoaW4gYG1hZHZpc2VfY29sZF9wYWdlX3JhbmdlYCBhbmQgYG1hZHZpc2VfcGFnZW91dF9wYWdlX3JhbmdlYCBpbiBgbW0vbWFkdmlzZS5jYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwMzo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttYWR2aXNlX2NvbGRfcGFnZV9yYW5nZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O21tL21hZHZpc2UuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDttbS9tYWR2aXNlLmM9NTY5PXN0YXRpYyBpbmxpbmUgZW51bSBwYWdlX3dhbGtfbG9jayBnZXRfd2Fsa19sb2NrKGVudW0gbWFkdmlzZV9sb2NrX21vZGUgbW9kZSlcbi0tXG5tbS9tYWR2aXNlLmMtNTgyLVxubW0vbWFkdmlzZS5jOjU4MzpzdGF0aWMgdm9pZCBtYWR2aXNlX2NvbGRfcGFnZV9yYW5nZShzdHJ1Y3QgbW11X2dhdGhlciAqdGxiLFxubW0vbWFkdmlzZS5jLTU4NC1cdFx0c3RydWN0IG1hZHZpc2VfYmVoYXZpb3IgKm1hZHZfYmVoYXZpb3IpXG4tLVxubW0vbWFkdmlzZS5jPTYwOT1zdGF0aWMgbG9uZyBtYWR2aXNlX2NvbGQoc3RydWN0IG1hZHZpc2VfYmVoYXZpb3IgKm1hZHZfYmVoYXZpb3IpXG4tLVxubW0vbWFkdmlzZS5jLTYxOC1cdHRsYl9nYXRoZXJfbW11KFx1MDAyNnRsYiwgbWFkdl9iZWhhdmlvci1cdTAwM2VtbSk7XG5tbS9tYWR2aXNlLmM6NjE5Olx0bWFkdmlzZV9jb2xkX3BhZ2VfcmFuZ2UoXHUwMDI2dGxiLCBtYWR2X2JlaGF2aW9yKTtcbm1tL21hZHZpc2UuYy02MjAtXHR0bGJfZmluaXNoX21tdShcdTAwMjZ0bGIpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDAzOjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU0NjAKCQkJCQkJCW91dHB1dDogMTQyCgkJCQkJCQl0aG91Z2h0czogMjIwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTG9ja2luZyBDaGFuZ2UgaW4gTUFEVl9DT0xEIGFuZCBNQURWX1BBR0VPVVQqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGltbWVkaWF0ZWx5LCB0aGUgY29yZSBvZiB0aGUgbWF0dGVyIGp1bXBzIG91dC4gVGhpcyBpcyBhIHByZXR0eSBzaWduaWZpY2FudCwgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gdGhlIG1lbW9yeSBtYW5hZ2VtZW50IHN1YnN5c3RlbS4gVGhleSYjMzk7cmUgYWx0ZXJpbmcgdGhlIGxvY2tpbmcgbWVjaGFuaXNtIGZvciBgTUFEVl9DT0xEYCBhbmQgYE1BRFZfUEFHRU9VVGAgY2FsbHMuIFNwZWNpZmljYWxseSwgd2UmIzM5O3JlIHRyYW5zaXRpb25pbmcgZnJvbSB0aGUgbW9yZSBnZW5lcmFsIGBNQURWSVNFX01NQVBfUkVBRF9MT0NLYCB0byB0aGUgbW9yZSB0YXJnZXRlZCBgTUFEVklTRV9WTUFfUkVBRF9MT0NLYC4KClRoaXMgaXMgaW1wb3J0YW50IGJlY2F1c2UgY2hhbmdpbmcgbG9ja2luZyBwcmltaXRpdmVzIGhhcyB0aGUgcG90ZW50aWFsIHRvIGludHJvZHVjZSBzdWJ0bGUgcmFjZSBjb25kaXRpb25zLCBkZWFkbG9ja3MsIG9yIHVuaW50ZW5kZWQgcGVyZm9ybWFuY2UgaW1wYWN0cy4gTXkgZm9jdXMgbmVlZHMgdG8gYmUgb24gZW5zdXJpbmcgdGhlIGNvbnNpc3RlbmN5IGFuZCBpbnRlZ3JpdHkgb2YgdmlydHVhbCBtZW1vcnkgbWFuYWdlbWVudC4gSSB3aWxsIHBheSBjYXJlZnVsIGF0dGVudGlvbiB0byB0aGUgc3ltYm9scyBsaWtlIGBtYWR2aXNlX2NvbGRgLCBgbWFkdmlzZV9wYWdlb3V0YCwgYG1hZHZpc2VfY29sZF9wYWdlX3JhbmdlYCwgYW5kIGBtYWR2aXNlX3BhZ2VvdXRfcGFnZV9yYW5nZWAgdGhyb3VnaG91dCB0aGUgcmV2aWV3LgoKVGhlIGVuYWJsaW5nIGNvbmZpZ3VyYXRpb24gaXNuJiMzOTt0IGFueXRoaW5nIHVudXN1YWwsIGl0IHNob3VsZCBiZSBlbmFibGVkIGlmIHdlIGFyZSBydW5uaW5nIHRoZSBzdGFuZGFyZCBgQ09ORklHX0FEVklTRV9TWVNDQUxMU2AgY29uZmlndXJhdGlvbnMuIFNvLCBpdCYjMzk7cyByZWFsbHkgdGhlIGxvY2tpbmcgY2hhbmdlIGl0c2VsZiB0aGF0IEkmIzM5O20gcHJpbWFyaWx5IGNvbmNlcm5lZCB3aXRoLCBhbmQgd2lsbCBoYXZlIHRvIGZ1enogdGhvc2Ugc3BlY2lmaWMgY2FsbHMuIEkmIzM5O2xsIG5lZWQgdG8gZGV2ZWxvcCBhIGZ1enppbmcgc3RyYXRlZ3kgdGhhdCB0aG9yb3VnaGx5IHRlc3RzIHRoaXMgY2hhbmdlIHVuZGVyIHZhcmlvdXMgbWVtb3J5IHVzYWdlIHNjZW5hcmlvcyBhbmQgY29uY3VycmVuY3kgbG9hZHMuIEkgbmVlZCB0byBiZSBzdXJlIHRoYXQgdGhpcyBkb2VzbiYjMzk7dCBjcmVhdGUgYW55IHJlZ3Jlc3Npb25zIGluIGV4aXN0aW5nIHdvcmtsb2Fkcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwMzo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bWFkdmlzZV9jb2xkJiMzNDssCiAgICAmIzM0O21hZHZpc2VfcGFnZW91dCYjMzQ7LAogICAgJiMzNDttYWR2aXNlX2NvbGRfcGFnZV9yYW5nZSYjMzQ7LAogICAgJiMzNDttYWR2aXNlX3BhZ2VvdXRfcGFnZV9yYW5nZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBjaGFuZ2VzIHRoZSBsb2NraW5nIG1vZGUgZm9yIE1BRFZfQ09MRCBhbmQgTUFEVl9QQUdFT1VUIG1hZHZpc2UgYmVoYXZpb3JzIGZyb20gTUFEVklTRV9NTUFQX1JFQURfTE9DSyB0byBNQURWSVNFX1ZNQV9SRUFEX0xPQ0suIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byBjb3JlIG1lbW9yeSBtYW5hZ2VtZW50IGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyBsb2NraW5nIGlzc3VlcyBvciByZWdyZXNzaW9ucyBhcmUgaW50cm9kdWNlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttYWR2aXNlX2NvbGQmIzM0OywKICAgICYjMzQ7bWFkdmlzZV9wYWdlb3V0JiMzNDssCiAgICAmIzM0O21hZHZpc2VfY29sZF9wYWdlX3JhbmdlJiMzNDssCiAgICAmIzM0O21hZHZpc2VfcGFnZW91dF9wYWdlX3JhbmdlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGNoYW5nZXMgdGhlIGxvY2tpbmcgbW9kZSBmb3IgTUFEVl9DT0xEIGFuZCBNQURWX1BBR0VPVVQgbWFkdmlzZSBiZWhhdmlvcnMgZnJvbSBNQURWSVNFX01NQVBfUkVBRF9MT0NLIHRvIE1BRFZJU0VfVk1BX1JFQURfTE9DSy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIGNvcmUgbWVtb3J5IG1hbmFnZW1lbnQgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIGxvY2tpbmcgaXNzdWVzIG9yIHJlZ3Jlc3Npb25zIGFyZSBpbnRyb2R1Y2VkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjBUMDM6NTQ6MzguMzIzMjI2NTYxWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTY5MjMwMTExNjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibWFkdmlzZV9jb2xkXCIsXG4gICAgXCJtYWR2aXNlX3BhZ2VvdXRcIixcbiAgICBcIm1hZHZpc2VfY29sZF9wYWdlX3JhbmdlXCIsXG4gICAgXCJtYWR2aXNlX3BhZ2VvdXRfcGFnZV9yYW5nZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGNoYW5nZXMgdGhlIGxvY2tpbmcgbW9kZSBmb3IgTUFEVl9DT0xEIGFuZCBNQURWX1BBR0VPVVQgbWFkdmlzZSBiZWhhdmlvcnMgZnJvbSBNQURWSVNFX01NQVBfUkVBRF9MT0NLIHRvIE1BRFZJU0VfVk1BX1JFQURfTE9DSy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIGNvcmUgbWVtb3J5IG1hbmFnZW1lbnQgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIGxvY2tpbmcgaXNzdWVzIG9yIHJlZ3Jlc3Npb25zIGFyZSBpbnRyb2R1Y2VkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwMzo1NDozOC4zMjMyMzUzODFaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYzNTQzMjY0OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDFmYTBhOGMzZDJjNDVmMWYwZDMxNjgwYjI4MzQwYzBjNzM0Njc4M2NcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIE1vbiBKdWwgMjAgMDM6NTQ6MzYgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbW0vbWFkdmlzZS5jIGIvbW0vbWFkdmlzZS5jXFxuaW5kZXggY2Q5YmIwNzcwNzJjY2IuLjc5NWE4YTZmYjIzN2Y3IDEwMDY0NFxcbi0tLSBhL21tL21hZHZpc2UuY1xcbisrKyBiL21tL21hZHZpc2UuY1xcbkBAIC01NjYsMTAgKzU2NiwxOSBAQCBzdGF0aWMgaW50IG1hZHZpc2VfY29sZF9vcl9wYWdlb3V0X3B0ZV9yYW5nZShwbWRfdCAqcG1kLFxcbiBcXHRyZXR1cm4gMDtcXG4gfVxcbiBcXG4tc3RhdGljIGNvbnN0IHN0cnVjdCBtbV93YWxrX29wcyBjb2xkX3dhbGtfb3BzID0ge1xcbi1cXHQucG1kX2VudHJ5ID0gbWFkdmlzZV9jb2xkX29yX3BhZ2VvdXRfcHRlX3JhbmdlLFxcbi1cXHQud2Fsa19sb2NrID0gUEdXQUxLX1JETE9DSyxcXG4tfTtcXG4rc3RhdGljIGlubGluZSBlbnVtIHBhZ2Vfd2Fsa19sb2NrIGdldF93YWxrX2xvY2soZW51bSBtYWR2aXNlX2xvY2tfbW9kZSBtb2RlKVxcbit7XFxuK1xcdHN3aXRjaCAobW9kZSkge1xcbitcXHRjYXNlIE1BRFZJU0VfVk1BX1JFQURfTE9DSzpcXG4rXFx0XFx0cmV0dXJuIFBHV0FMS19WTUFfUkRMT0NLX1ZFUklGWTtcXG4rXFx0Y2FzZSBNQURWSVNFX01NQVBfUkVBRF9MT0NLOlxcbitcXHRcXHRyZXR1cm4gUEdXQUxLX1JETE9DSztcXG4rXFx0ZGVmYXVsdDpcXG4rXFx0XFx0LyogT3RoZXIgbW9kZXMgZG9uJ3QgcmVxdWlyZSBmaXhpbmcgdXAgdGhlIHdhbGtfbG9jayAqL1xcbitcXHRcXHRXQVJOX09OX09OQ0UoMSk7XFxuK1xcdFxcdHJldHVybiBQR1dBTEtfUkRMT0NLO1xcbitcXHR9XFxuK31cXG4gXFxuIHN0YXRpYyB2b2lkIG1hZHZpc2VfY29sZF9wYWdlX3JhbmdlKHN0cnVjdCBtbXVfZ2F0aGVyICp0bGIsXFxuIFxcdFxcdHN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yICptYWR2X2JlaGF2aW9yKVxcbkBAIC01NzcsMTMgKzU4NiwxNyBAQCBzdGF0aWMgdm9pZCBtYWR2aXNlX2NvbGRfcGFnZV9yYW5nZShzdHJ1Y3QgbW11X2dhdGhlciAqdGxiLFxcbiB7XFxuIFxcdHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hID0gbWFkdl9iZWhhdmlvci1cXHUwMDNldm1hO1xcbiBcXHRzdHJ1Y3QgbWFkdmlzZV9iZWhhdmlvcl9yYW5nZSAqcmFuZ2UgPSBcXHUwMDI2bWFkdl9iZWhhdmlvci1cXHUwMDNlcmFuZ2U7XFxuK1xcdHN0cnVjdCBtbV93YWxrX29wcyB3YWxrX29wcyA9IHtcXG4rXFx0XFx0LnBtZF9lbnRyeSA9IG1hZHZpc2VfY29sZF9vcl9wYWdlb3V0X3B0ZV9yYW5nZSxcXG4rXFx0fTtcXG4gXFx0c3RydWN0IG1hZHZpc2Vfd2Fsa19wcml2YXRlIHdhbGtfcHJpdmF0ZSA9IHtcXG4gXFx0XFx0LnBhZ2VvdXQgPSBmYWxzZSxcXG4gXFx0XFx0LnRsYiA9IHRsYixcXG4gXFx0fTtcXG4gXFxuK1xcdHdhbGtfb3BzLndhbGtfbG9jayA9IGdldF93YWxrX2xvY2sobWFkdl9iZWhhdmlvci1cXHUwMDNlbG9ja19tb2RlKTtcXG4gXFx0dGxiX3N0YXJ0X3ZtYSh0bGIsIHZtYSk7XFxuLVxcdHdhbGtfcGFnZV9yYW5nZV92bWEodm1hLCByYW5nZS1cXHUwMDNlc3RhcnQsIHJhbmdlLVxcdTAwM2VlbmQsIFxcdTAwMjZjb2xkX3dhbGtfb3BzLFxcbitcXHR3YWxrX3BhZ2VfcmFuZ2Vfdm1hKHZtYSwgcmFuZ2UtXFx1MDAzZXN0YXJ0LCByYW5nZS1cXHUwMDNlZW5kLCBcXHUwMDI2d2Fsa19vcHMsXFxuIFxcdFxcdFxcdFxcdTAwMjZ3YWxrX3ByaXZhdGUpO1xcbiBcXHR0bGJfZW5kX3ZtYSh0bGIsIHZtYSk7XFxuIH1cXG5AQCAtNjExLDE1ICs2MjQsMjAgQEAgc3RhdGljIGxvbmcgbWFkdmlzZV9jb2xkKHN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yICptYWR2X2JlaGF2aW9yKVxcbiBcXG4gc3RhdGljIHZvaWQgbWFkdmlzZV9wYWdlb3V0X3BhZ2VfcmFuZ2Uoc3RydWN0IG1tdV9nYXRoZXIgKnRsYixcXG4gXFx0XFx0c3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsXFxuLVxcdFxcdHN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yX3JhbmdlICpyYW5nZSlcXG4rXFx0XFx0c3RydWN0IG1hZHZpc2VfYmVoYXZpb3IgKm1hZHZfYmVoYXZpb3IpXFxuIHtcXG4rXFx0c3RydWN0IG1hZHZpc2VfYmVoYXZpb3JfcmFuZ2UgKnJhbmdlID0gXFx1MDAyNm1hZHZfYmVoYXZpb3ItXFx1MDAzZXJhbmdlO1xcbitcXHRzdHJ1Y3QgbW1fd2Fsa19vcHMgd2Fsa19vcHMgPSB7XFxuK1xcdFxcdC5wbWRfZW50cnkgPSBtYWR2aXNlX2NvbGRfb3JfcGFnZW91dF9wdGVfcmFuZ2UsXFxuK1xcdH07XFxuIFxcdHN0cnVjdCBtYWR2aXNlX3dhbGtfcHJpdmF0ZSB3YWxrX3ByaXZhdGUgPSB7XFxuIFxcdFxcdC5wYWdlb3V0ID0gdHJ1ZSxcXG4gXFx0XFx0LnRsYiA9IHRsYixcXG4gXFx0fTtcXG4gXFxuK1xcdHdhbGtfb3BzLndhbGtfbG9jayA9IGdldF93YWxrX2xvY2sobWFkdl9iZWhhdmlvci1cXHUwMDNlbG9ja19tb2RlKTtcXG4gXFx0dGxiX3N0YXJ0X3ZtYSh0bGIsIHZtYSk7XFxuLVxcdHdhbGtfcGFnZV9yYW5nZV92bWEodm1hLCByYW5nZS1cXHUwMDNlc3RhcnQsIHJhbmdlLVxcdTAwM2VlbmQsIFxcdTAwMjZjb2xkX3dhbGtfb3BzLFxcbitcXHR3YWxrX3BhZ2VfcmFuZ2Vfdm1hKHZtYSwgcmFuZ2UtXFx1MDAzZXN0YXJ0LCByYW5nZS1cXHUwMDNlZW5kLCBcXHUwMDI2d2Fsa19vcHMsXFxuIFxcdFxcdFxcdCAgICBcXHUwMDI2d2Fsa19wcml2YXRlKTtcXG4gXFx0dGxiX2VuZF92bWEodGxiLCB2bWEpO1xcbiB9XFxuQEAgLTY0NCw3ICs2NjIsNyBAQCBzdGF0aWMgbG9uZyBtYWR2aXNlX3BhZ2VvdXQoc3RydWN0IG1hZHZpc2VfYmVoYXZpb3IgKm1hZHZfYmVoYXZpb3IpXFxuIFxcbiBcXHRscnVfYWRkX2RyYWluKCk7XFxuIFxcdHRsYl9nYXRoZXJfbW11KFxcdTAwMjZ0bGIsIG1hZHZfYmVoYXZpb3ItXFx1MDAzZW1tKTtcXG4tXFx0bWFkdmlzZV9wYWdlb3V0X3BhZ2VfcmFuZ2UoXFx1MDAyNnRsYiwgdm1hLCBcXHUwMDI2bWFkdl9iZWhhdmlvci1cXHUwMDNlcmFuZ2UpO1xcbitcXHRtYWR2aXNlX3BhZ2VvdXRfcGFnZV9yYW5nZShcXHUwMDI2dGxiLCB2bWEsIG1hZHZfYmVoYXZpb3IpO1xcbiBcXHR0bGJfZmluaXNoX21tdShcXHUwMDI2dGxiKTtcXG4gXFxuIFxcdHJldHVybiAwO1xcbkBAIC03ODMsMjAgKzgwMSw2IEBAIHN0YXRpYyBpbnQgbWFkdmlzZV9mcmVlX3B0ZV9yYW5nZShwbWRfdCAqcG1kLCB1bnNpZ25lZCBsb25nIGFkZHIsXFxuIFxcdHJldHVybiAwO1xcbiB9XFxuIFxcbi1zdGF0aWMgaW5saW5lIGVudW0gcGFnZV93YWxrX2xvY2sgZ2V0X3dhbGtfbG9jayhlbnVtIG1hZHZpc2VfbG9ja19tb2RlIG1vZGUpXFxuLXtcXG4tXFx0c3dpdGNoIChtb2RlKSB7XFxuLVxcdGNhc2UgTUFEVklTRV9WTUFfUkVBRF9MT0NLOlxcbi1cXHRcXHRyZXR1cm4gUEdXQUxLX1ZNQV9SRExPQ0tfVkVSSUZZO1xcbi1cXHRjYXNlIE1BRFZJU0VfTU1BUF9SRUFEX0xPQ0s6XFxuLVxcdFxcdHJldHVybiBQR1dBTEtfUkRMT0NLO1xcbi1cXHRkZWZhdWx0Olxcbi1cXHRcXHQvKiBPdGhlciBtb2RlcyBkb24ndCByZXF1aXJlIGZpeGluZyB1cCB0aGUgd2Fsa19sb2NrICovXFxuLVxcdFxcdFdBUk5fT05fT05DRSgxKTtcXG4tXFx0XFx0cmV0dXJuIFBHV0FMS19SRExPQ0s7XFxuLVxcdH1cXG4tfVxcbi1cXG4gc3RhdGljIGludCBtYWR2aXNlX2ZyZWVfc2luZ2xlX3ZtYShzdHJ1Y3QgbWFkdmlzZV9iZWhhdmlvciAqbWFkdl9iZWhhdmlvcilcXG4ge1xcbiBcXHRzdHJ1Y3QgbW1fc3RydWN0ICptbSA9IG1hZHZfYmVoYXZpb3ItXFx1MDAzZW1tO1xcbkBAIC0xNzQ4LDggKzE3NTIsNiBAQCBzdGF0aWMgZW51bSBtYWR2aXNlX2xvY2tfbW9kZSBnZXRfbG9ja19tb2RlKHN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yICptYWR2X2JlaGF2aVxcbiBcXHRzd2l0Y2ggKG1hZHZfYmVoYXZpb3ItXFx1MDAzZWJlaGF2aW9yKSB7XFxuIFxcdGNhc2UgTUFEVl9SRU1PVkU6XFxuIFxcdGNhc2UgTUFEVl9XSUxMTkVFRDpcXG4tXFx0Y2FzZSBNQURWX0NPTEQ6XFxuLVxcdGNhc2UgTUFEVl9QQUdFT1VUOlxcbiBcXHRjYXNlIE1BRFZfUE9QVUxBVEVfUkVBRDpcXG4gXFx0Y2FzZSBNQURWX1BPUFVMQVRFX1dSSVRFOlxcbiBcXHRjYXNlIE1BRFZfQ09MTEFQU0U6XFxuQEAgLTE3NTksNiArMTc2MSw4IEBAIHN0YXRpYyBlbnVtIG1hZHZpc2VfbG9ja19tb2RlIGdldF9sb2NrX21vZGUoc3RydWN0IG1hZHZpc2VfYmVoYXZpb3IgKm1hZHZfYmVoYXZpXFxuIFxcdGNhc2UgTUFEVl9ET05UTkVFRDpcXG4gXFx0Y2FzZSBNQURWX0RPTlRORUVEX0xPQ0tFRDpcXG4gXFx0Y2FzZSBNQURWX0ZSRUU6XFxuK1xcdGNhc2UgTUFEVl9DT0xEOlxcbitcXHRjYXNlIE1BRFZfUEFHRU9VVDpcXG4gXFx0XFx0cmV0dXJuIE1BRFZJU0VfVk1BX1JFQURfTE9DSztcXG4gXFx0ZGVmYXVsdDpcXG4gXFx0XFx0cmV0dXJuIE1BRFZJU0VfTU1BUF9XUklURV9MT0NLO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwMzo1NDozOC45NTk2MDU1MjlaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2Mjg2NjI2NzM1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm1hZHZpc2VfY29sZFwiLFxuICAgIFwibWFkdmlzZV9wYWdlb3V0XCIsXG4gICAgXCJtYWR2aXNlX2NvbGRfcGFnZV9yYW5nZVwiLFxuICAgIFwibWFkdmlzZV9wYWdlb3V0X3BhZ2VfcmFuZ2VcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBjaGFuZ2VzIHRoZSBsb2NraW5nIG1vZGUgZm9yIE1BRFZfQ09MRCBhbmQgTUFEVl9QQUdFT1VUIG1hZHZpc2UgYmVoYXZpb3JzIGZyb20gTUFEVklTRV9NTUFQX1JFQURfTE9DSyB0byBNQURWSVNFX1ZNQV9SRUFEX0xPQ0suIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byBjb3JlIG1lbW9yeSBtYW5hZ2VtZW50IGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyBsb2NraW5nIGlzc3VlcyBvciByZWdyZXNzaW9ucyBhcmUgaW50cm9kdWNlZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAxZmEwYThjM2QyYzQ1ZjFmMGQzMTY4MGIyODM0MGMwYzczNDY3ODNjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgMjAgMDM6NTQ6MzYgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9tbS9tYWR2aXNlLmMgYi9tbS9tYWR2aXNlLmNcbmluZGV4IGNkOWJiMDc3MDcyY2NiLi43OTVhOGE2ZmIyMzdmNyAxMDA2NDRcbi0tLSBhL21tL21hZHZpc2UuY1xuKysrIGIvbW0vbWFkdmlzZS5jXG5AQCAtNTY2LDEwICs1NjYsMTkgQEAgc3RhdGljIGludCBtYWR2aXNlX2NvbGRfb3JfcGFnZW91dF9wdGVfcmFuZ2UocG1kX3QgKnBtZCxcbiBcdHJldHVybiAwO1xuIH1cbiBcbi1zdGF0aWMgY29uc3Qgc3RydWN0IG1tX3dhbGtfb3BzIGNvbGRfd2Fsa19vcHMgPSB7XG4tXHQucG1kX2VudHJ5ID0gbWFkdmlzZV9jb2xkX29yX3BhZ2VvdXRfcHRlX3JhbmdlLFxuLVx0LndhbGtfbG9jayA9IFBHV0FMS19SRExPQ0ssXG4tfTtcbitzdGF0aWMgaW5saW5lIGVudW0gcGFnZV93YWxrX2xvY2sgZ2V0X3dhbGtfbG9jayhlbnVtIG1hZHZpc2VfbG9ja19tb2RlIG1vZGUpXG4re1xuK1x0c3dpdGNoIChtb2RlKSB7XG4rXHRjYXNlIE1BRFZJU0VfVk1BX1JFQURfTE9DSzpcbitcdFx0cmV0dXJuIFBHV0FMS19WTUFfUkRMT0NLX1ZFUklGWTtcbitcdGNhc2UgTUFEVklTRV9NTUFQX1JFQURfTE9DSzpcbitcdFx0cmV0dXJuIFBHV0FMS19SRExPQ0s7XG4rXHRkZWZhdWx0OlxuK1x0XHQvKiBPdGhlciBtb2RlcyBkb24ndCByZXF1aXJlIGZpeGluZyB1cCB0aGUgd2Fsa19sb2NrICovXG4rXHRcdFdBUk5fT05fT05DRSgxKTtcbitcdFx0cmV0dXJuIFBHV0FMS19SRExPQ0s7XG4rXHR9XG4rfVxuIFxuIHN0YXRpYyB2b2lkIG1hZHZpc2VfY29sZF9wYWdlX3JhbmdlKHN0cnVjdCBtbXVfZ2F0aGVyICp0bGIsXG4gXHRcdHN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yICptYWR2X2JlaGF2aW9yKVxuQEAgLTU3NywxMyArNTg2LDE3IEBAIHN0YXRpYyB2b2lkIG1hZHZpc2VfY29sZF9wYWdlX3JhbmdlKHN0cnVjdCBtbXVfZ2F0aGVyICp0bGIsXG4ge1xuIFx0c3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEgPSBtYWR2X2JlaGF2aW9yLVx1MDAzZXZtYTtcbiBcdHN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yX3JhbmdlICpyYW5nZSA9IFx1MDAyNm1hZHZfYmVoYXZpb3ItXHUwMDNlcmFuZ2U7XG4rXHRzdHJ1Y3QgbW1fd2Fsa19vcHMgd2Fsa19vcHMgPSB7XG4rXHRcdC5wbWRfZW50cnkgPSBtYWR2aXNlX2NvbGRfb3JfcGFnZW91dF9wdGVfcmFuZ2UsXG4rXHR9O1xuIFx0c3RydWN0IG1hZHZpc2Vfd2Fsa19wcml2YXRlIHdhbGtfcHJpdmF0ZSA9IHtcbiBcdFx0LnBhZ2VvdXQgPSBmYWxzZSxcbiBcdFx0LnRsYiA9IHRsYixcbiBcdH07XG4gXG4rXHR3YWxrX29wcy53YWxrX2xvY2sgPSBnZXRfd2Fsa19sb2NrKG1hZHZfYmVoYXZpb3ItXHUwMDNlbG9ja19tb2RlKTtcbiBcdHRsYl9zdGFydF92bWEodGxiLCB2bWEpO1xuLVx0d2Fsa19wYWdlX3JhbmdlX3ZtYSh2bWEsIHJhbmdlLVx1MDAzZXN0YXJ0LCByYW5nZS1cdTAwM2VlbmQsIFx1MDAyNmNvbGRfd2Fsa19vcHMsXG4rXHR3YWxrX3BhZ2VfcmFuZ2Vfdm1hKHZtYSwgcmFuZ2UtXHUwMDNlc3RhcnQsIHJhbmdlLVx1MDAzZWVuZCwgXHUwMDI2d2Fsa19vcHMsXG4gXHRcdFx0XHUwMDI2d2Fsa19wcml2YXRlKTtcbiBcdHRsYl9lbmRfdm1hKHRsYiwgdm1hKTtcbiB9XG5AQCAtNjExLDE1ICs2MjQsMjAgQEAgc3RhdGljIGxvbmcgbWFkdmlzZV9jb2xkKHN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yICptYWR2X2JlaGF2aW9yKVxuIFxuIHN0YXRpYyB2b2lkIG1hZHZpc2VfcGFnZW91dF9wYWdlX3JhbmdlKHN0cnVjdCBtbXVfZ2F0aGVyICp0bGIsXG4gXHRcdHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLFxuLVx0XHRzdHJ1Y3QgbWFkdmlzZV9iZWhhdmlvcl9yYW5nZSAqcmFuZ2UpXG4rXHRcdHN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yICptYWR2X2JlaGF2aW9yKVxuIHtcbitcdHN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yX3JhbmdlICpyYW5nZSA9IFx1MDAyNm1hZHZfYmVoYXZpb3ItXHUwMDNlcmFuZ2U7XG4rXHRzdHJ1Y3QgbW1fd2Fsa19vcHMgd2Fsa19vcHMgPSB7XG4rXHRcdC5wbWRfZW50cnkgPSBtYWR2aXNlX2NvbGRfb3JfcGFnZW91dF9wdGVfcmFuZ2UsXG4rXHR9O1xuIFx0c3RydWN0IG1hZHZpc2Vfd2Fsa19wcml2YXRlIHdhbGtfcHJpdmF0ZSA9IHtcbiBcdFx0LnBhZ2VvdXQgPSB0cnVlLFxuIFx0XHQudGxiID0gdGxiLFxuIFx0fTtcbiBcbitcdHdhbGtfb3BzLndhbGtfbG9jayA9IGdldF93YWxrX2xvY2sobWFkdl9iZWhhdmlvci1cdTAwM2Vsb2NrX21vZGUpO1xuIFx0dGxiX3N0YXJ0X3ZtYSh0bGIsIHZtYSk7XG4tXHR3YWxrX3BhZ2VfcmFuZ2Vfdm1hKHZtYSwgcmFuZ2UtXHUwMDNlc3RhcnQsIHJhbmdlLVx1MDAzZWVuZCwgXHUwMDI2Y29sZF93YWxrX29wcyxcbitcdHdhbGtfcGFnZV9yYW5nZV92bWEodm1hLCByYW5nZS1cdTAwM2VzdGFydCwgcmFuZ2UtXHUwMDNlZW5kLCBcdTAwMjZ3YWxrX29wcyxcbiBcdFx0XHQgICAgXHUwMDI2d2Fsa19wcml2YXRlKTtcbiBcdHRsYl9lbmRfdm1hKHRsYiwgdm1hKTtcbiB9XG5AQCAtNjQ0LDcgKzY2Miw3IEBAIHN0YXRpYyBsb25nIG1hZHZpc2VfcGFnZW91dChzdHJ1Y3QgbWFkdmlzZV9iZWhhdmlvciAqbWFkdl9iZWhhdmlvcilcbiBcbiBcdGxydV9hZGRfZHJhaW4oKTtcbiBcdHRsYl9nYXRoZXJfbW11KFx1MDAyNnRsYiwgbWFkdl9iZWhhdmlvci1cdTAwM2VtbSk7XG4tXHRtYWR2aXNlX3BhZ2VvdXRfcGFnZV9yYW5nZShcdTAwMjZ0bGIsIHZtYSwgXHUwMDI2bWFkdl9iZWhhdmlvci1cdTAwM2VyYW5nZSk7XG4rXHRtYWR2aXNlX3BhZ2VvdXRfcGFnZV9yYW5nZShcdTAwMjZ0bGIsIHZtYSwgbWFkdl9iZWhhdmlvcik7XG4gXHR0bGJfZmluaXNoX21tdShcdTAwMjZ0bGIpO1xuIFxuIFx0cmV0dXJuIDA7XG5AQCAtNzgzLDIwICs4MDEsNiBAQCBzdGF0aWMgaW50IG1hZHZpc2VfZnJlZV9wdGVfcmFuZ2UocG1kX3QgKnBtZCwgdW5zaWduZWQgbG9uZyBhZGRyLFxuIFx0cmV0dXJuIDA7XG4gfVxuIFxuLXN0YXRpYyBpbmxpbmUgZW51bSBwYWdlX3dhbGtfbG9jayBnZXRfd2Fsa19sb2NrKGVudW0gbWFkdmlzZV9sb2NrX21vZGUgbW9kZSlcbi17XG4tXHRzd2l0Y2ggKG1vZGUpIHtcbi1cdGNhc2UgTUFEVklTRV9WTUFfUkVBRF9MT0NLOlxuLVx0XHRyZXR1cm4gUEdXQUxLX1ZNQV9SRExPQ0tfVkVSSUZZO1xuLVx0Y2FzZSBNQURWSVNFX01NQVBfUkVBRF9MT0NLOlxuLVx0XHRyZXR1cm4gUEdXQUxLX1JETE9DSztcbi1cdGRlZmF1bHQ6XG4tXHRcdC8qIE90aGVyIG1vZGVzIGRvbid0IHJlcXVpcmUgZml4aW5nIHVwIHRoZSB3YWxrX2xvY2sgKi9cbi1cdFx0V0FSTl9PTl9PTkNFKDEpO1xuLVx0XHRyZXR1cm4gUEdXQUxLX1JETE9DSztcbi1cdH1cbi19XG4tXG4gc3RhdGljIGludCBtYWR2aXNlX2ZyZWVfc2luZ2xlX3ZtYShzdHJ1Y3QgbWFkdmlzZV9iZWhhdmlvciAqbWFkdl9iZWhhdmlvcilcbiB7XG4gXHRzdHJ1Y3QgbW1fc3RydWN0ICptbSA9IG1hZHZfYmVoYXZpb3ItXHUwMDNlbW07XG5AQCAtMTc0OCw4ICsxNzUyLDYgQEAgc3RhdGljIGVudW0gbWFkdmlzZV9sb2NrX21vZGUgZ2V0X2xvY2tfbW9kZShzdHJ1Y3QgbWFkdmlzZV9iZWhhdmlvciAqbWFkdl9iZWhhdmlcbiBcdHN3aXRjaCAobWFkdl9iZWhhdmlvci1cdTAwM2ViZWhhdmlvcikge1xuIFx0Y2FzZSBNQURWX1JFTU9WRTpcbiBcdGNhc2UgTUFEVl9XSUxMTkVFRDpcbi1cdGNhc2UgTUFEVl9DT0xEOlxuLVx0Y2FzZSBNQURWX1BBR0VPVVQ6XG4gXHRjYXNlIE1BRFZfUE9QVUxBVEVfUkVBRDpcbiBcdGNhc2UgTUFEVl9QT1BVTEFURV9XUklURTpcbiBcdGNhc2UgTUFEVl9DT0xMQVBTRTpcbkBAIC0xNzU5LDYgKzE3NjEsOCBAQCBzdGF0aWMgZW51bSBtYWR2aXNlX2xvY2tfbW9kZSBnZXRfbG9ja19tb2RlKHN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yICptYWR2X2JlaGF2aVxuIFx0Y2FzZSBNQURWX0RPTlRORUVEOlxuIFx0Y2FzZSBNQURWX0RPTlRORUVEX0xPQ0tFRDpcbiBcdGNhc2UgTUFEVl9GUkVFOlxuK1x0Y2FzZSBNQURWX0NPTEQ6XG4rXHRjYXNlIE1BRFZfUEFHRU9VVDpcbiBcdFx0cmV0dXJuIE1BRFZJU0VfVk1BX1JFQURfTE9DSztcbiBcdGRlZmF1bHQ6XG4gXHRcdHJldHVybiBNQURWSVNFX01NQVBfV1JJVEVfTE9DSztcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDAzOjU0OjM4Ljk1OTYwNzE5OVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYxNjM2NjYxNzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgTWFkdmlzZSBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0d2Vha3MgYG1tL21hZHZpc2UuY2AuIFRoZSBjb3JlIG9mIHRoZSBjaGFuZ2UgcmV2b2x2ZXMgYXJvdW5kIGhvdyBsb2NrcyBhcmUgaGFuZGxlZCBmb3IgYE1BRFZfQ09MRGAgYW5kIGBNQURWX1BBR0VPVVRgLiBJdCBsb29rcyBsaWtlIHRoZSBsb2NrIG1vZGUgaXMgYmVpbmcgc2hpZnRlZCBmcm9tIGBNQURWSVNFX01NQVBfUkVBRF9MT0NLYCB0byBgTUFEVklTRV9WTUFfUkVBRF9MT0NLYC4gVGhhdCdzIGEgc3VidGxlIGJ1dCBwb3RlbnRpYWxseSBzaWduaWZpY2FudCBjaGFuZ2UgaW4gaG93IHRoZXNlIG1hZHZpc2Ugb3BlcmF0aW9ucyBpbnRlcmFjdCB3aXRoIHRoZSBtZW1vcnkgbWFwLiBUaGUgY29kZSBpcyBhbHNvIGJlaW5nIHJlZmFjdG9yZWQsIG1vdmluZyB0aGUgYGdldF93YWxrX2xvY2tgIGZ1bmN0aW9uIGFyb3VuZCBmb3IgYmV0dGVyIHJlLXVzYWJpbGl0eSB3aXRoaW4gdGhlIGZpbGUsIHNwZWNpZmljYWxseSBmb3IgdGhlIGBtYWR2aXNlX2NvbGRfcGFnZV9yYW5nZWAgYW5kIGBtYWR2aXNlX3BhZ2VvdXRfcGFnZV9yYW5nZWAgZnVuY3Rpb25zLiAgVGhvc2UgZnVuY3Rpb25zIGFyZSBhbHNvIGJlaW5nIHVwZGF0ZWQgdG8gdXNlIGBnZXRfd2Fsa19sb2NrYCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBsb2NrIG1vZGUsIHJhdGhlciB0aGFuIHRoZSBoYXJkY29kZWQgYFBHV0FMS19SRExPQ0tgLlxuXG5GdW5jdGlvbmFsbHksIHRoaXMgaW1wYWN0cyBjcml0aWNhbCBtZW1vcnkgbWFuYWdlbWVudCBiZWhhdmlvci4gSXQgZGVmaW5pdGVseSB3YXJyYW50cyBhIGNsb3NlIGxvb2ssIGFuZCBmdXp6aW5nIHRoaXMgaXMgYSBtdXN0LiBJJ2xsIG5lZWQgdG8gZm9jdXMgb24gcG90ZW50aWFsIGFyZWFzIG9mIGNvbmNlcm4sIHBhcnRpY3VsYXJseSBhcm91bmQgdGhlc2Ugc3ltYm9sczogYG1hZHZpc2VfY29sZGAsIGBtYWR2aXNlX3BhZ2VvdXRgLCB0aGUgcmFuZ2UgZnVuY3Rpb25zIChgbWFkdmlzZV9jb2xkX3BhZ2VfcmFuZ2VgLCBgbWFkdmlzZV9wYWdlb3V0X3BhZ2VfcmFuZ2VgKSwgYW5kIGBtYWR2aXNlX2NvbGRfb3JfcGFnZW91dF9wdGVfcmFuZ2VgLlxuXG5Ob3csIGJlZm9yZSBJIGRpZyBpbiB0b28gZGVlcCwgSSBuZWVkIHRvIGNoZWNrIHRoZSBjb25maWd1cmF0aW9uIGxhbmRzY2FwZS4gV2hpbGUgYG1hZHZpc2VgIGl0c2VsZiBpcyBsaWtlbHkgYWx3YXlzIGVuYWJsZWQsIEknbGwgbmVlZCB0byB2ZXJpZnkgd2hldGhlciBgTUFEVl9DT0xEYCBhbmQgYE1BRFZfUEFHRU9VVGAgaGF2ZSBhbnkgZGVwZW5kZW5jaWVzIG9uIGZlYXR1cmVzIGxpa2UgYENPTkZJR19UUkFOU1BBUkVOVF9IVUdFUEFHRWAgb3Igc2ltcGx5IHRoZSBzdGFuZGFyZCBgQ09ORklHX0FEVklTRV9TWVNDQUxMU2AuICBJJ2xsIHNjYW4gYG1tL21hZHZpc2UuY2AgZm9yIHRob3NlIGRlZmluZXMsIHNwZWNpZmljYWxseSBsb29raW5nIGZvciBhbnkgY29uZGl0aW9uYWxzIGFyb3VuZCBgTUFEVl9DT0xEYCBhcyBhIHN0YXJ0aW5nIHBvaW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjY3LCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzU0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDM6NTQ6NDUuMTIzMjc1OTM5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNTY4NjQ0NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJNQURWX0NPTERcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibW0vbWFkdmlzZS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm1tL21hZHZpc2UuYz0xMzQzPXN0YXRpYyBpbnQgbWFkdmlzZV92bWFfYmVoYXZpb3Ioc3RydWN0IG1hZHZpc2VfYmVoYXZpb3IgKm1hZHZfYmVoYXZpb3IpXFxuLS1cXG5tbS9tYWR2aXNlLmMtMTM1OC1cXHRcXHRyZXR1cm4gbWFkdmlzZV93aWxsbmVlZChtYWR2X2JlaGF2aW9yKTtcXG5tbS9tYWR2aXNlLmM6MTM1OTpcXHRjYXNlIE1BRFZfQ09MRDpcXG5tbS9tYWR2aXNlLmMtMTM2MC1cXHRcXHRyZXR1cm4gbWFkdmlzZV9jb2xkKG1hZHZfYmVoYXZpb3IpO1xcbi0tXFxubW0vbWFkdmlzZS5jPTE1MjM9bWFkdmlzZV9iZWhhdmlvcl92YWxpZChpbnQgYmVoYXZpb3IpXFxuLS1cXG5tbS9tYWR2aXNlLmMtMTUzNS1cXHRjYXNlIE1BRFZfRlJFRTpcXG5tbS9tYWR2aXNlLmM6MTUzNjpcXHRjYXNlIE1BRFZfQ09MRDpcXG5tbS9tYWR2aXNlLmMtMTUzNy1cXHRjYXNlIE1BRFZfUEFHRU9VVDpcXG4tLVxcbm1tL21hZHZpc2UuYz0xNTY3PXN0YXRpYyBib29sIHByb2Nlc3NfbWFkdmlzZV9yZW1vdGVfdmFsaWQoaW50IGJlaGF2aW9yKVxcbi0tXFxubW0vbWFkdmlzZS5jLTE1NjktXFx0c3dpdGNoIChiZWhhdmlvcikge1xcbm1tL21hZHZpc2UuYzoxNTcwOlxcdGNhc2UgTUFEVl9DT0xEOlxcbm1tL21hZHZpc2UuYy0xNTcxLVxcdGNhc2UgTUFEVl9QQUdFT1VUOlxcbi0tXFxubW0vbWFkdmlzZS5jPTE3NDc9c3RhdGljIGVudW0gbWFkdmlzZV9sb2NrX21vZGUgZ2V0X2xvY2tfbW9kZShzdHJ1Y3QgbWFkdmlzZV9iZWhhdmlvciAqbWFkdl9iZWhhdmlvcilcXG4tLVxcbm1tL21hZHZpc2UuYy0xNzYzLVxcdGNhc2UgTUFEVl9GUkVFOlxcbm1tL21hZHZpc2UuYzoxNzY0OlxcdGNhc2UgTUFEVl9DT0xEOlxcbm1tL21hZHZpc2UuYy0xNzY1LVxcdGNhc2UgTUFEVl9QQUdFT1VUOlxcbi0tXFxubW0vbWFkdmlzZS5jPTE4OTI9c3RhdGljIGludCBtYWR2aXNlX2RvX2JlaGF2aW9yKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHNpemVfdCBsZW5faW4sXFxuLS1cXG5tbS9tYWR2aXNlLmMtMTk2NC0gKiAgTUFEVl9ET0RVTVAgLSBjYW5jZWwgTUFEVl9ET05URFVNUDogbm8gbG9uZ2VyIGV4Y2x1ZGUgZnJvbSBjb3JlIGR1bXAuXFxubW0vbWFkdmlzZS5jOjE5NjU6ICogIE1BRFZfQ09MRCAtIHRoZSBhcHBsaWNhdGlvbiBpcyBub3QgZXhwZWN0ZWQgdG8gdXNlIHRoaXMgbWVtb3J5IHNvb24sXFxubW0vbWFkdmlzZS5jLTE5NjYtICpcXHRcXHRkZWFjdGl2YXRlIHBhZ2VzIGluIHRoaXMgcmFuZ2Ugc28gdGhhdCB0aGV5IGNhbiBiZSByZWNsYWltZWRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDM6NTQ6NDUuMjI4OTY4MzAxWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDc5MzgzNTkxMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE1BRFZfQ09MRCBhbmQgTUFEVl9QQUdFT1VUIENoYW5nZXMqKlxuXG5BbHJpZ2h0LCBsZXQncyBkaXZlIGludG8gdGhlc2UgbW9kaWZpY2F0aW9ucy4gVGhlIGNvZGUgY2hhbmdlcyBhcmUgYWxsIHdpdGhpbiBgbW0vbWFkdmlzZS5jYCwgc3BlY2lmaWNhbGx5IGZvY3VzaW5nIG9uIGhvdyB0aGUgc3lzdGVtIGhhbmRsZXMgYE1BRFZfQ09MRGAgYW5kIGBNQURWX1BBR0VPVVRgLiBJdCBsb29rcyBsaWtlIHRoZSBjb3JlIGZ1bmN0aW9ucyBiZWluZyB0b3VjaGVkIGFyZSBgbWFkdmlzZV9jb2xkYCBhbmQgYG1hZHZpc2VfcGFnZW91dGAsIHdoaWNoIGluIHR1cm4gY2FsbCB0aGUgbW9yZSBncmFudWxhciBgbWFkdmlzZV9jb2xkX3BhZ2VfcmFuZ2VgIGFuZCBgbWFkdmlzZV9wYWdlb3V0X3BhZ2VfcmFuZ2VgLiBBbmQgSSBzZWUgdGhhdCBgZ2V0X2xvY2tfbW9kZWAgaXMgYWxzbyBnZXR0aW5nIGFkanVzdGVkIHRvIGhhbmRsZSB0aGUgbG9jayBtb2RlcyBhc3NvY2lhdGVkIHdpdGggdGhlc2UgbmV3IG1hZHZpc2UgZmxhZ3MuXG5cbk5vdywgYmVmb3JlIEkgZGlnIGRlZXBlciBpbnRvIHRoZSBncmFudWxhciBmdW5jdGlvbnMsIEknbGwgcXVpY2tseSBzZWUgaWYgdGhlcmUgYXJlIGFueSBuZXcgY29uZmlndXJhdGlvbiBvcHRpb25zIGludHJvZHVjZWQgc3BlY2lmaWNhbGx5IGZvciBgTUFEVl9DT0xEYCBvciBgTUFEVl9QQUdFT1VUYC4gVGhlc2UgbWFkdmlzZSBjYWxscyBhcmUgcGFydCBvZiB0aGUgYG1hZHZpc2VgIHN5c2NhbGwgc28gdGhhdCBtZWFucyBgQ09ORklHX0FEVklTRV9TWVNDQUxMU2Agc2hvdWxkIGJlIHRoZSBtYWluIGNvbmZpZyB0byB3b3JyeSBhYm91dC4gSSdtIG5vdCBzZWVpbmcgYW55dGhpbmcgdGhhdCBzdGFuZHMgb3V0LCBhbmQgaXQgbWFrZXMgc2Vuc2U7IGBtYWR2aXNlYCBpcyBhIHByZXR0eSBmdW5kYW1lbnRhbCBmZWF0dXJlLCBzbyBJJ20gbm90IGV4cGVjdGluZyBhbnl0aGluZyB0b28gdW51c3VhbCBvbiB0aGUgY29uZmlnIHNpZGUuXG5cbldpdGggdGhhdCBjbGVhcmVkLCB0aW1lIHRvIGdldCBpbnRvIHRoZSBkZXRhaWxzIG9mIHdoYXQncyBoYXBwZW5pbmcgd2l0aGluIGBtYWR2aXNlX2NvbGRfcGFnZV9yYW5nZWAgYW5kIGBtYWR2aXNlX3BhZ2VvdXRfcGFnZV9yYW5nZWAgaW4gYG1tL21hZHZpc2UuY2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ2NDQsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDM6NTQ6NTAuMDIyODA2ODAyWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExMzE5OTM4MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtYWR2aXNlX2NvbGRfcGFnZV9yYW5nZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJtbS9tYWR2aXNlLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibW0vbWFkdmlzZS5jPTU2OT1zdGF0aWMgaW5saW5lIGVudW0gcGFnZV93YWxrX2xvY2sgZ2V0X3dhbGtfbG9jayhlbnVtIG1hZHZpc2VfbG9ja19tb2RlIG1vZGUpXFxuLS1cXG5tbS9tYWR2aXNlLmMtNTgyLVxcbm1tL21hZHZpc2UuYzo1ODM6c3RhdGljIHZvaWQgbWFkdmlzZV9jb2xkX3BhZ2VfcmFuZ2Uoc3RydWN0IG1tdV9nYXRoZXIgKnRsYixcXG5tbS9tYWR2aXNlLmMtNTg0LVxcdFxcdHN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yICptYWR2X2JlaGF2aW9yKVxcbi0tXFxubW0vbWFkdmlzZS5jPTYwOT1zdGF0aWMgbG9uZyBtYWR2aXNlX2NvbGQoc3RydWN0IG1hZHZpc2VfYmVoYXZpb3IgKm1hZHZfYmVoYXZpb3IpXFxuLS1cXG5tbS9tYWR2aXNlLmMtNjE4LVxcdHRsYl9nYXRoZXJfbW11KFxcdTAwMjZ0bGIsIG1hZHZfYmVoYXZpb3ItXFx1MDAzZW1tKTtcXG5tbS9tYWR2aXNlLmM6NjE5OlxcdG1hZHZpc2VfY29sZF9wYWdlX3JhbmdlKFxcdTAwMjZ0bGIsIG1hZHZfYmVoYXZpb3IpO1xcbm1tL21hZHZpc2UuYy02MjAtXFx0dGxiX2ZpbmlzaF9tbXUoXFx1MDAyNnRsYik7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDAzOjU0OjUwLjEzNjAxMzcwNVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUxMTAxODgyMDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBMb2NraW5nIENoYW5nZSBpbiBNQURWX0NPTEQgYW5kIE1BRFZfUEFHRU9VVCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGltbWVkaWF0ZWx5LCB0aGUgY29yZSBvZiB0aGUgbWF0dGVyIGp1bXBzIG91dC4gVGhpcyBpcyBhIHByZXR0eSBzaWduaWZpY2FudCwgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gdGhlIG1lbW9yeSBtYW5hZ2VtZW50IHN1YnN5c3RlbS4gVGhleSdyZSBhbHRlcmluZyB0aGUgbG9ja2luZyBtZWNoYW5pc20gZm9yIGBNQURWX0NPTERgIGFuZCBgTUFEVl9QQUdFT1VUYCBjYWxscy4gU3BlY2lmaWNhbGx5LCB3ZSdyZSB0cmFuc2l0aW9uaW5nIGZyb20gdGhlIG1vcmUgZ2VuZXJhbCBgTUFEVklTRV9NTUFQX1JFQURfTE9DS2AgdG8gdGhlIG1vcmUgdGFyZ2V0ZWQgYE1BRFZJU0VfVk1BX1JFQURfTE9DS2AuXG5cblRoaXMgaXMgaW1wb3J0YW50IGJlY2F1c2UgY2hhbmdpbmcgbG9ja2luZyBwcmltaXRpdmVzIGhhcyB0aGUgcG90ZW50aWFsIHRvIGludHJvZHVjZSBzdWJ0bGUgcmFjZSBjb25kaXRpb25zLCBkZWFkbG9ja3MsIG9yIHVuaW50ZW5kZWQgcGVyZm9ybWFuY2UgaW1wYWN0cy4gTXkgZm9jdXMgbmVlZHMgdG8gYmUgb24gZW5zdXJpbmcgdGhlIGNvbnNpc3RlbmN5IGFuZCBpbnRlZ3JpdHkgb2YgdmlydHVhbCBtZW1vcnkgbWFuYWdlbWVudC4gSSB3aWxsIHBheSBjYXJlZnVsIGF0dGVudGlvbiB0byB0aGUgc3ltYm9scyBsaWtlIGBtYWR2aXNlX2NvbGRgLCBgbWFkdmlzZV9wYWdlb3V0YCwgYG1hZHZpc2VfY29sZF9wYWdlX3JhbmdlYCwgYW5kIGBtYWR2aXNlX3BhZ2VvdXRfcGFnZV9yYW5nZWAgdGhyb3VnaG91dCB0aGUgcmV2aWV3LlxuXG5UaGUgZW5hYmxpbmcgY29uZmlndXJhdGlvbiBpc24ndCBhbnl0aGluZyB1bnVzdWFsLCBpdCBzaG91bGQgYmUgZW5hYmxlZCBpZiB3ZSBhcmUgcnVubmluZyB0aGUgc3RhbmRhcmQgYENPTkZJR19BRFZJU0VfU1lTQ0FMTFNgIGNvbmZpZ3VyYXRpb25zLiBTbywgaXQncyByZWFsbHkgdGhlIGxvY2tpbmcgY2hhbmdlIGl0c2VsZiB0aGF0IEknbSBwcmltYXJpbHkgY29uY2VybmVkIHdpdGgsIGFuZCB3aWxsIGhhdmUgdG8gZnV6eiB0aG9zZSBzcGVjaWZpYyBjYWxscy4gSSdsbCBuZWVkIHRvIGRldmVsb3AgYSBmdXp6aW5nIHN0cmF0ZWd5IHRoYXQgdGhvcm91Z2hseSB0ZXN0cyB0aGlzIGNoYW5nZSB1bmRlciB2YXJpb3VzIG1lbW9yeSB1c2FnZSBzY2VuYXJpb3MgYW5kIGNvbmN1cnJlbmN5IGxvYWRzLiBJIG5lZWQgdG8gYmUgc3VyZSB0aGF0IHRoaXMgZG9lc24ndCBjcmVhdGUgYW55IHJlZ3Jlc3Npb25zIGluIGV4aXN0aW5nIHdvcmtsb2Fkcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTQ2MCwiT3V0cHV0VG9rZW5zIjoxNDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDM6NTQ6NTUuMjQ2MjAzOTI1WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNzE4OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm1hZHZpc2VfY29sZFwiLFxuICAgIFwibWFkdmlzZV9wYWdlb3V0XCIsXG4gICAgXCJtYWR2aXNlX2NvbGRfcGFnZV9yYW5nZVwiLFxuICAgIFwibWFkdmlzZV9wYWdlb3V0X3BhZ2VfcmFuZ2VcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBjaGFuZ2VzIHRoZSBsb2NraW5nIG1vZGUgZm9yIE1BRFZfQ09MRCBhbmQgTUFEVl9QQUdFT1VUIG1hZHZpc2UgYmVoYXZpb3JzIGZyb20gTUFEVklTRV9NTUFQX1JFQURfTE9DSyB0byBNQURWSVNFX1ZNQV9SRUFEX0xPQ0suIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byBjb3JlIG1lbW9yeSBtYW5hZ2VtZW50IGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyBsb2NraW5nIGlzc3VlcyBvciByZWdyZXNzaW9ucyBhcmUgaW50cm9kdWNlZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtYWR2aXNlX2NvbGRcIixcbiAgICBcIm1hZHZpc2VfcGFnZW91dFwiLFxuICAgIFwibWFkdmlzZV9jb2xkX3BhZ2VfcmFuZ2VcIixcbiAgICBcIm1hZHZpc2VfcGFnZW91dF9wYWdlX3JhbmdlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggY2hhbmdlcyB0aGUgbG9ja2luZyBtb2RlIGZvciBNQURWX0NPTEQgYW5kIE1BRFZfUEFHRU9VVCBtYWR2aXNlIGJlaGF2aW9ycyBmcm9tIE1BRFZJU0VfTU1BUF9SRUFEX0xPQ0sgdG8gTUFEVklTRV9WTUFfUkVBRF9MT0NLLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gY29yZSBtZW1vcnkgbWFuYWdlbWVudCBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgbm8gbG9ja2luZyBpc3N1ZXMgb3IgcmVncmVzc2lvbnMgYXJlIGludHJvZHVjZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowpszkm[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-20 03:25:14 +0000 UTC FinishedAt: 2026-07-20 03:54:56 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "3d9855d114f0955d590420f5670152c1099c1638", "config_name": "upstream-apparmor-kasan.config", "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "3d9855d114f0955d590420f5670152c1099c1638", "config_name": "upstream-apparmor-kasan.config", "series_id": "4c4cdcc0-36fe-41fd-8876-5a4c750b191b" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "madvise_cold", "madvise_pageout", "madvise_cold_page_range", "madvise_pageout_page_range" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": true, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDAzOjU0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bWFkdmlzZV9jb2xkJiMzNDssCiAgICAmIzM0O21hZHZpc2VfcGFnZW91dCYjMzQ7LAogICAgJiMzNDttYWR2aXNlX2NvbGRfcGFnZV9yYW5nZSYjMzQ7LAogICAgJiMzNDttYWR2aXNlX3BhZ2VvdXRfcGFnZV9yYW5nZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBjaGFuZ2VzIHRoZSBsb2NraW5nIG1vZGUgZm9yIE1BRFZfQ09MRCBhbmQgTUFEVl9QQUdFT1VUIG1hZHZpc2UgYmVoYXZpb3JzIGZyb20gTUFEVklTRV9NTUFQX1JFQURfTE9DSyB0byBNQURWSVNFX1ZNQV9SRUFEX0xPQ0suIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byBjb3JlIG1lbW9yeSBtYW5hZ2VtZW50IGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyBsb2NraW5nIGlzc3VlcyBvciByZWdyZXNzaW9ucyBhcmUgaW50cm9kdWNlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwMzo1NDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDFmYTBhOGMzZDJjNDVmMWYwZDMxNjgwYjI4MzQwYzBjNzM0Njc4M2NcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1bCAyMCAwMzo1NDozNiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9tbS9tYWR2aXNlLmMgYi9tbS9tYWR2aXNlLmNcbmluZGV4IGNkOWJiMDc3MDcyY2NiLi43OTVhOGE2ZmIyMzdmNyAxMDA2NDRcbi0tLSBhL21tL21hZHZpc2UuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbW0vbWFkdmlzZS5jXG5AQCAtNTY2LDEwICYjNDM7NTY2LDE5IEBAIHN0YXRpYyBpbnQgbWFkdmlzZV9jb2xkX29yX3BhZ2VvdXRfcHRlX3JhbmdlKHBtZF90ICpwbWQsXG4gXHRyZXR1cm4gMDtcbiB9XG4gXG4tc3RhdGljIGNvbnN0IHN0cnVjdCBtbV93YWxrX29wcyBjb2xkX3dhbGtfb3BzID0ge1xuLVx0LnBtZF9lbnRyeSA9IG1hZHZpc2VfY29sZF9vcl9wYWdlb3V0X3B0ZV9yYW5nZSxcbi1cdC53YWxrX2xvY2sgPSBQR1dBTEtfUkRMT0NLLFxuLX07XG4mIzQzO3N0YXRpYyBpbmxpbmUgZW51bSBwYWdlX3dhbGtfbG9jayBnZXRfd2Fsa19sb2NrKGVudW0gbWFkdmlzZV9sb2NrX21vZGUgbW9kZSlcbiYjNDM7e1xuJiM0MztcdHN3aXRjaCAobW9kZSkge1xuJiM0MztcdGNhc2UgTUFEVklTRV9WTUFfUkVBRF9MT0NLOlxuJiM0MztcdFx0cmV0dXJuIFBHV0FMS19WTUFfUkRMT0NLX1ZFUklGWTtcbiYjNDM7XHRjYXNlIE1BRFZJU0VfTU1BUF9SRUFEX0xPQ0s6XG4mIzQzO1x0XHRyZXR1cm4gUEdXQUxLX1JETE9DSztcbiYjNDM7XHRkZWZhdWx0OlxuJiM0MztcdFx0LyogT3RoZXIgbW9kZXMgZG9uJiMzOTt0IHJlcXVpcmUgZml4aW5nIHVwIHRoZSB3YWxrX2xvY2sgKi9cbiYjNDM7XHRcdFdBUk5fT05fT05DRSgxKTtcbiYjNDM7XHRcdHJldHVybiBQR1dBTEtfUkRMT0NLO1xuJiM0MztcdH1cbiYjNDM7fVxuIFxuIHN0YXRpYyB2b2lkIG1hZHZpc2VfY29sZF9wYWdlX3JhbmdlKHN0cnVjdCBtbXVfZ2F0aGVyICp0bGIsXG4gXHRcdHN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yICptYWR2X2JlaGF2aW9yKVxuQEAgLTU3NywxMyAmIzQzOzU4NiwxNyBAQCBzdGF0aWMgdm9pZCBtYWR2aXNlX2NvbGRfcGFnZV9yYW5nZShzdHJ1Y3QgbW11X2dhdGhlciAqdGxiLFxuIHtcbiBcdHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hID0gbWFkdl9iZWhhdmlvci1cdTAwM2V2bWE7XG4gXHRzdHJ1Y3QgbWFkdmlzZV9iZWhhdmlvcl9yYW5nZSAqcmFuZ2UgPSBcdTAwMjZtYWR2X2JlaGF2aW9yLVx1MDAzZXJhbmdlO1xuJiM0MztcdHN0cnVjdCBtbV93YWxrX29wcyB3YWxrX29wcyA9IHtcbiYjNDM7XHRcdC5wbWRfZW50cnkgPSBtYWR2aXNlX2NvbGRfb3JfcGFnZW91dF9wdGVfcmFuZ2UsXG4mIzQzO1x0fTtcbiBcdHN0cnVjdCBtYWR2aXNlX3dhbGtfcHJpdmF0ZSB3YWxrX3ByaXZhdGUgPSB7XG4gXHRcdC5wYWdlb3V0ID0gZmFsc2UsXG4gXHRcdC50bGIgPSB0bGIsXG4gXHR9O1xuIFxuJiM0MztcdHdhbGtfb3BzLndhbGtfbG9jayA9IGdldF93YWxrX2xvY2sobWFkdl9iZWhhdmlvci1cdTAwM2Vsb2NrX21vZGUpO1xuIFx0dGxiX3N0YXJ0X3ZtYSh0bGIsIHZtYSk7XG4tXHR3YWxrX3BhZ2VfcmFuZ2Vfdm1hKHZtYSwgcmFuZ2UtXHUwMDNlc3RhcnQsIHJhbmdlLVx1MDAzZWVuZCwgXHUwMDI2Y29sZF93YWxrX29wcyxcbiYjNDM7XHR3YWxrX3BhZ2VfcmFuZ2Vfdm1hKHZtYSwgcmFuZ2UtXHUwMDNlc3RhcnQsIHJhbmdlLVx1MDAzZWVuZCwgXHUwMDI2d2Fsa19vcHMsXG4gXHRcdFx0XHUwMDI2d2Fsa19wcml2YXRlKTtcbiBcdHRsYl9lbmRfdm1hKHRsYiwgdm1hKTtcbiB9XG5AQCAtNjExLDE1ICYjNDM7NjI0LDIwIEBAIHN0YXRpYyBsb25nIG1hZHZpc2VfY29sZChzdHJ1Y3QgbWFkdmlzZV9iZWhhdmlvciAqbWFkdl9iZWhhdmlvcilcbiBcbiBzdGF0aWMgdm9pZCBtYWR2aXNlX3BhZ2VvdXRfcGFnZV9yYW5nZShzdHJ1Y3QgbW11X2dhdGhlciAqdGxiLFxuIFx0XHRzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSxcbi1cdFx0c3RydWN0IG1hZHZpc2VfYmVoYXZpb3JfcmFuZ2UgKnJhbmdlKVxuJiM0MztcdFx0c3RydWN0IG1hZHZpc2VfYmVoYXZpb3IgKm1hZHZfYmVoYXZpb3IpXG4ge1xuJiM0MztcdHN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yX3JhbmdlICpyYW5nZSA9IFx1MDAyNm1hZHZfYmVoYXZpb3ItXHUwMDNlcmFuZ2U7XG4mIzQzO1x0c3RydWN0IG1tX3dhbGtfb3BzIHdhbGtfb3BzID0ge1xuJiM0MztcdFx0LnBtZF9lbnRyeSA9IG1hZHZpc2VfY29sZF9vcl9wYWdlb3V0X3B0ZV9yYW5nZSxcbiYjNDM7XHR9O1xuIFx0c3RydWN0IG1hZHZpc2Vfd2Fsa19wcml2YXRlIHdhbGtfcHJpdmF0ZSA9IHtcbiBcdFx0LnBhZ2VvdXQgPSB0cnVlLFxuIFx0XHQudGxiID0gdGxiLFxuIFx0fTtcbiBcbiYjNDM7XHR3YWxrX29wcy53YWxrX2xvY2sgPSBnZXRfd2Fsa19sb2NrKG1hZHZfYmVoYXZpb3ItXHUwMDNlbG9ja19tb2RlKTtcbiBcdHRsYl9zdGFydF92bWEodGxiLCB2bWEpO1xuLVx0d2Fsa19wYWdlX3JhbmdlX3ZtYSh2bWEsIHJhbmdlLVx1MDAzZXN0YXJ0LCByYW5nZS1cdTAwM2VlbmQsIFx1MDAyNmNvbGRfd2Fsa19vcHMsXG4mIzQzO1x0d2Fsa19wYWdlX3JhbmdlX3ZtYSh2bWEsIHJhbmdlLVx1MDAzZXN0YXJ0LCByYW5nZS1cdTAwM2VlbmQsIFx1MDAyNndhbGtfb3BzLFxuIFx0XHRcdCAgICBcdTAwMjZ3YWxrX3ByaXZhdGUpO1xuIFx0dGxiX2VuZF92bWEodGxiLCB2bWEpO1xuIH1cbkBAIC02NDQsNyAmIzQzOzY2Miw3IEBAIHN0YXRpYyBsb25nIG1hZHZpc2VfcGFnZW91dChzdHJ1Y3QgbWFkdmlzZV9iZWhhdmlvciAqbWFkdl9iZWhhdmlvcilcbiBcbiBcdGxydV9hZGRfZHJhaW4oKTtcbiBcdHRsYl9nYXRoZXJfbW11KFx1MDAyNnRsYiwgbWFkdl9iZWhhdmlvci1cdTAwM2VtbSk7XG4tXHRtYWR2aXNlX3BhZ2VvdXRfcGFnZV9yYW5nZShcdTAwMjZ0bGIsIHZtYSwgXHUwMDI2bWFkdl9iZWhhdmlvci1cdTAwM2VyYW5nZSk7XG4mIzQzO1x0bWFkdmlzZV9wYWdlb3V0X3BhZ2VfcmFuZ2UoXHUwMDI2dGxiLCB2bWEsIG1hZHZfYmVoYXZpb3IpO1xuIFx0dGxiX2ZpbmlzaF9tbXUoXHUwMDI2dGxiKTtcbiBcbiBcdHJldHVybiAwO1xuQEAgLTc4MywyMCAmIzQzOzgwMSw2IEBAIHN0YXRpYyBpbnQgbWFkdmlzZV9mcmVlX3B0ZV9yYW5nZShwbWRfdCAqcG1kLCB1bnNpZ25lZCBsb25nIGFkZHIsXG4gXHRyZXR1cm4gMDtcbiB9XG4gXG4tc3RhdGljIGlubGluZSBlbnVtIHBhZ2Vfd2Fsa19sb2NrIGdldF93YWxrX2xvY2soZW51bSBtYWR2aXNlX2xvY2tfbW9kZSBtb2RlKVxuLXtcbi1cdHN3aXRjaCAobW9kZSkge1xuLVx0Y2FzZSBNQURWSVNFX1ZNQV9SRUFEX0xPQ0s6XG4tXHRcdHJldHVybiBQR1dBTEtfVk1BX1JETE9DS19WRVJJRlk7XG4tXHRjYXNlIE1BRFZJU0VfTU1BUF9SRUFEX0xPQ0s6XG4tXHRcdHJldHVybiBQR1dBTEtfUkRMT0NLO1xuLVx0ZGVmYXVsdDpcbi1cdFx0LyogT3RoZXIgbW9kZXMgZG9uJiMzOTt0IHJlcXVpcmUgZml4aW5nIHVwIHRoZSB3YWxrX2xvY2sgKi9cbi1cdFx0V0FSTl9PTl9PTkNFKDEpO1xuLVx0XHRyZXR1cm4gUEdXQUxLX1JETE9DSztcbi1cdH1cbi19XG4tXG4gc3RhdGljIGludCBtYWR2aXNlX2ZyZWVfc2luZ2xlX3ZtYShzdHJ1Y3QgbWFkdmlzZV9iZWhhdmlvciAqbWFkdl9iZWhhdmlvcilcbiB7XG4gXHRzdHJ1Y3QgbW1fc3RydWN0ICptbSA9IG1hZHZfYmVoYXZpb3ItXHUwMDNlbW07XG5AQCAtMTc0OCw4ICYjNDM7MTc1Miw2IEBAIHN0YXRpYyBlbnVtIG1hZHZpc2VfbG9ja19tb2RlIGdldF9sb2NrX21vZGUoc3RydWN0IG1hZHZpc2VfYmVoYXZpb3IgKm1hZHZfYmVoYXZpXG4gXHRzd2l0Y2ggKG1hZHZfYmVoYXZpb3ItXHUwMDNlYmVoYXZpb3IpIHtcbiBcdGNhc2UgTUFEVl9SRU1PVkU6XG4gXHRjYXNlIE1BRFZfV0lMTE5FRUQ6XG4tXHRjYXNlIE1BRFZfQ09MRDpcbi1cdGNhc2UgTUFEVl9QQUdFT1VUOlxuIFx0Y2FzZSBNQURWX1BPUFVMQVRFX1JFQUQ6XG4gXHRjYXNlIE1BRFZfUE9QVUxBVEVfV1JJVEU6XG4gXHRjYXNlIE1BRFZfQ09MTEFQU0U6XG5AQCAtMTc1OSw2ICYjNDM7MTc2MSw4IEBAIHN0YXRpYyBlbnVtIG1hZHZpc2VfbG9ja19tb2RlIGdldF9sb2NrX21vZGUoc3RydWN0IG1hZHZpc2VfYmVoYXZpb3IgKm1hZHZfYmVoYXZpXG4gXHRjYXNlIE1BRFZfRE9OVE5FRUQ6XG4gXHRjYXNlIE1BRFZfRE9OVE5FRURfTE9DS0VEOlxuIFx0Y2FzZSBNQURWX0ZSRUU6XG4mIzQzO1x0Y2FzZSBNQURWX0NPTEQ6XG4mIzQzO1x0Y2FzZSBNQURWX1BBR0VPVVQ6XG4gXHRcdHJldHVybiBNQURWSVNFX1ZNQV9SRUFEX0xPQ0s7XG4gXHRkZWZhdWx0OlxuIFx0XHRyZXR1cm4gTUFEVklTRV9NTUFQX1dSSVRFX0xPQ0s7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMDM6NTQ8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttYWR2aXNlX2NvbGQmIzM0OywKICAgICYjMzQ7bWFkdmlzZV9wYWdlb3V0JiMzNDssCiAgICAmIzM0O21hZHZpc2VfY29sZF9wYWdlX3JhbmdlJiMzNDssCiAgICAmIzM0O21hZHZpc2VfcGFnZW91dF9wYWdlX3JhbmdlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGNoYW5nZXMgdGhlIGxvY2tpbmcgbW9kZSBmb3IgTUFEVl9DT0xEIGFuZCBNQURWX1BBR0VPVVQgbWFkdmlzZSBiZWhhdmlvcnMgZnJvbSBNQURWSVNFX01NQVBfUkVBRF9MT0NLIHRvIE1BRFZJU0VfVk1BX1JFQURfTE9DSy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIGNvcmUgbWVtb3J5IG1hbmFnZW1lbnQgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIGxvY2tpbmcgaXNzdWVzIG9yIHJlZ3Jlc3Npb25zIGFyZSBpbnRyb2R1Y2VkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAxZmEwYThjM2QyYzQ1ZjFmMGQzMTY4MGIyODM0MGMwYzczNDY3ODNjCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBKdWwgMjAgMDM6NTQ6MzYgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9tbS9tYWR2aXNlLmMgYi9tbS9tYWR2aXNlLmMKaW5kZXggY2Q5YmIwNzcwNzJjY2IuLjc5NWE4YTZmYjIzN2Y3IDEwMDY0NAotLS0gYS9tbS9tYWR2aXNlLmMKJiM0MzsmIzQzOyYjNDM7IGIvbW0vbWFkdmlzZS5jCkBAIC01NjYsMTAgJiM0Mzs1NjYsMTkgQEAgc3RhdGljIGludCBtYWR2aXNlX2NvbGRfb3JfcGFnZW91dF9wdGVfcmFuZ2UocG1kX3QgKnBtZCwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGNvbnN0IHN0cnVjdCBtbV93YWxrX29wcyBjb2xkX3dhbGtfb3BzID0gewotCS5wbWRfZW50cnkgPSBtYWR2aXNlX2NvbGRfb3JfcGFnZW91dF9wdGVfcmFuZ2UsCi0JLndhbGtfbG9jayA9IFBHV0FMS19SRExPQ0ssCi19OwomIzQzO3N0YXRpYyBpbmxpbmUgZW51bSBwYWdlX3dhbGtfbG9jayBnZXRfd2Fsa19sb2NrKGVudW0gbWFkdmlzZV9sb2NrX21vZGUgbW9kZSkKJiM0Mzt7CiYjNDM7CXN3aXRjaCAobW9kZSkgewomIzQzOwljYXNlIE1BRFZJU0VfVk1BX1JFQURfTE9DSzoKJiM0MzsJCXJldHVybiBQR1dBTEtfVk1BX1JETE9DS19WRVJJRlk7CiYjNDM7CWNhc2UgTUFEVklTRV9NTUFQX1JFQURfTE9DSzoKJiM0MzsJCXJldHVybiBQR1dBTEtfUkRMT0NLOwomIzQzOwlkZWZhdWx0OgomIzQzOwkJLyogT3RoZXIgbW9kZXMgZG9uJiMzOTt0IHJlcXVpcmUgZml4aW5nIHVwIHRoZSB3YWxrX2xvY2sgKi8KJiM0MzsJCVdBUk5fT05fT05DRSgxKTsKJiM0MzsJCXJldHVybiBQR1dBTEtfUkRMT0NLOwomIzQzOwl9CiYjNDM7fQogCiBzdGF0aWMgdm9pZCBtYWR2aXNlX2NvbGRfcGFnZV9yYW5nZShzdHJ1Y3QgbW11X2dhdGhlciAqdGxiLAogCQlzdHJ1Y3QgbWFkdmlzZV9iZWhhdmlvciAqbWFkdl9iZWhhdmlvcikKQEAgLTU3NywxMyAmIzQzOzU4NiwxNyBAQCBzdGF0aWMgdm9pZCBtYWR2aXNlX2NvbGRfcGFnZV9yYW5nZShzdHJ1Y3QgbW11X2dhdGhlciAqdGxiLAogewogCXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hID0gbWFkdl9iZWhhdmlvci0mZ3Q7dm1hOwogCXN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yX3JhbmdlICpyYW5nZSA9ICZhbXA7bWFkdl9iZWhhdmlvci0mZ3Q7cmFuZ2U7CiYjNDM7CXN0cnVjdCBtbV93YWxrX29wcyB3YWxrX29wcyA9IHsKJiM0MzsJCS5wbWRfZW50cnkgPSBtYWR2aXNlX2NvbGRfb3JfcGFnZW91dF9wdGVfcmFuZ2UsCiYjNDM7CX07CiAJc3RydWN0IG1hZHZpc2Vfd2Fsa19wcml2YXRlIHdhbGtfcHJpdmF0ZSA9IHsKIAkJLnBhZ2VvdXQgPSBmYWxzZSwKIAkJLnRsYiA9IHRsYiwKIAl9OwogCiYjNDM7CXdhbGtfb3BzLndhbGtfbG9jayA9IGdldF93YWxrX2xvY2sobWFkdl9iZWhhdmlvci0mZ3Q7bG9ja19tb2RlKTsKIAl0bGJfc3RhcnRfdm1hKHRsYiwgdm1hKTsKLQl3YWxrX3BhZ2VfcmFuZ2Vfdm1hKHZtYSwgcmFuZ2UtJmd0O3N0YXJ0LCByYW5nZS0mZ3Q7ZW5kLCAmYW1wO2NvbGRfd2Fsa19vcHMsCiYjNDM7CXdhbGtfcGFnZV9yYW5nZV92bWEodm1hLCByYW5nZS0mZ3Q7c3RhcnQsIHJhbmdlLSZndDtlbmQsICZhbXA7d2Fsa19vcHMsCiAJCQkmYW1wO3dhbGtfcHJpdmF0ZSk7CiAJdGxiX2VuZF92bWEodGxiLCB2bWEpOwogfQpAQCAtNjExLDE1ICYjNDM7NjI0LDIwIEBAIHN0YXRpYyBsb25nIG1hZHZpc2VfY29sZChzdHJ1Y3QgbWFkdmlzZV9iZWhhdmlvciAqbWFkdl9iZWhhdmlvcikKIAogc3RhdGljIHZvaWQgbWFkdmlzZV9wYWdlb3V0X3BhZ2VfcmFuZ2Uoc3RydWN0IG1tdV9nYXRoZXIgKnRsYiwKIAkJc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCi0JCXN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yX3JhbmdlICpyYW5nZSkKJiM0MzsJCXN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yICptYWR2X2JlaGF2aW9yKQogewomIzQzOwlzdHJ1Y3QgbWFkdmlzZV9iZWhhdmlvcl9yYW5nZSAqcmFuZ2UgPSAmYW1wO21hZHZfYmVoYXZpb3ItJmd0O3JhbmdlOwomIzQzOwlzdHJ1Y3QgbW1fd2Fsa19vcHMgd2Fsa19vcHMgPSB7CiYjNDM7CQkucG1kX2VudHJ5ID0gbWFkdmlzZV9jb2xkX29yX3BhZ2VvdXRfcHRlX3JhbmdlLAomIzQzOwl9OwogCXN0cnVjdCBtYWR2aXNlX3dhbGtfcHJpdmF0ZSB3YWxrX3ByaXZhdGUgPSB7CiAJCS5wYWdlb3V0ID0gdHJ1ZSwKIAkJLnRsYiA9IHRsYiwKIAl9OwogCiYjNDM7CXdhbGtfb3BzLndhbGtfbG9jayA9IGdldF93YWxrX2xvY2sobWFkdl9iZWhhdmlvci0mZ3Q7bG9ja19tb2RlKTsKIAl0bGJfc3RhcnRfdm1hKHRsYiwgdm1hKTsKLQl3YWxrX3BhZ2VfcmFuZ2Vfdm1hKHZtYSwgcmFuZ2UtJmd0O3N0YXJ0LCByYW5nZS0mZ3Q7ZW5kLCAmYW1wO2NvbGRfd2Fsa19vcHMsCiYjNDM7CXdhbGtfcGFnZV9yYW5nZV92bWEodm1hLCByYW5nZS0mZ3Q7c3RhcnQsIHJhbmdlLSZndDtlbmQsICZhbXA7d2Fsa19vcHMsCiAJCQkgICAgJmFtcDt3YWxrX3ByaXZhdGUpOwogCXRsYl9lbmRfdm1hKHRsYiwgdm1hKTsKIH0KQEAgLTY0NCw3ICYjNDM7NjYyLDcgQEAgc3RhdGljIGxvbmcgbWFkdmlzZV9wYWdlb3V0KHN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yICptYWR2X2JlaGF2aW9yKQogCiAJbHJ1X2FkZF9kcmFpbigpOwogCXRsYl9nYXRoZXJfbW11KCZhbXA7dGxiLCBtYWR2X2JlaGF2aW9yLSZndDttbSk7Ci0JbWFkdmlzZV9wYWdlb3V0X3BhZ2VfcmFuZ2UoJmFtcDt0bGIsIHZtYSwgJmFtcDttYWR2X2JlaGF2aW9yLSZndDtyYW5nZSk7CiYjNDM7CW1hZHZpc2VfcGFnZW91dF9wYWdlX3JhbmdlKCZhbXA7dGxiLCB2bWEsIG1hZHZfYmVoYXZpb3IpOwogCXRsYl9maW5pc2hfbW11KCZhbXA7dGxiKTsKIAogCXJldHVybiAwOwpAQCAtNzgzLDIwICYjNDM7ODAxLDYgQEAgc3RhdGljIGludCBtYWR2aXNlX2ZyZWVfcHRlX3JhbmdlKHBtZF90ICpwbWQsIHVuc2lnbmVkIGxvbmcgYWRkciwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGlubGluZSBlbnVtIHBhZ2Vfd2Fsa19sb2NrIGdldF93YWxrX2xvY2soZW51bSBtYWR2aXNlX2xvY2tfbW9kZSBtb2RlKQotewotCXN3aXRjaCAobW9kZSkgewotCWNhc2UgTUFEVklTRV9WTUFfUkVBRF9MT0NLOgotCQlyZXR1cm4gUEdXQUxLX1ZNQV9SRExPQ0tfVkVSSUZZOwotCWNhc2UgTUFEVklTRV9NTUFQX1JFQURfTE9DSzoKLQkJcmV0dXJuIFBHV0FMS19SRExPQ0s7Ci0JZGVmYXVsdDoKLQkJLyogT3RoZXIgbW9kZXMgZG9uJiMzOTt0IHJlcXVpcmUgZml4aW5nIHVwIHRoZSB3YWxrX2xvY2sgKi8KLQkJV0FSTl9PTl9PTkNFKDEpOwotCQlyZXR1cm4gUEdXQUxLX1JETE9DSzsKLQl9Ci19Ci0KIHN0YXRpYyBpbnQgbWFkdmlzZV9mcmVlX3NpbmdsZV92bWEoc3RydWN0IG1hZHZpc2VfYmVoYXZpb3IgKm1hZHZfYmVoYXZpb3IpCiB7CiAJc3RydWN0IG1tX3N0cnVjdCAqbW0gPSBtYWR2X2JlaGF2aW9yLSZndDttbTsKQEAgLTE3NDgsOCAmIzQzOzE3NTIsNiBAQCBzdGF0aWMgZW51bSBtYWR2aXNlX2xvY2tfbW9kZSBnZXRfbG9ja19tb2RlKHN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yICptYWR2X2JlaGF2aQogCXN3aXRjaCAobWFkdl9iZWhhdmlvci0mZ3Q7YmVoYXZpb3IpIHsKIAljYXNlIE1BRFZfUkVNT1ZFOgogCWNhc2UgTUFEVl9XSUxMTkVFRDoKLQljYXNlIE1BRFZfQ09MRDoKLQljYXNlIE1BRFZfUEFHRU9VVDoKIAljYXNlIE1BRFZfUE9QVUxBVEVfUkVBRDoKIAljYXNlIE1BRFZfUE9QVUxBVEVfV1JJVEU6CiAJY2FzZSBNQURWX0NPTExBUFNFOgpAQCAtMTc1OSw2ICYjNDM7MTc2MSw4IEBAIHN0YXRpYyBlbnVtIG1hZHZpc2VfbG9ja19tb2RlIGdldF9sb2NrX21vZGUoc3RydWN0IG1hZHZpc2VfYmVoYXZpb3IgKm1hZHZfYmVoYXZpCiAJY2FzZSBNQURWX0RPTlRORUVEOgogCWNhc2UgTUFEVl9ET05UTkVFRF9MT0NLRUQ6CiAJY2FzZSBNQURWX0ZSRUU6CiYjNDM7CWNhc2UgTUFEVl9DT0xEOgomIzQzOwljYXNlIE1BRFZfUEFHRU9VVDoKIAkJcmV0dXJuIE1BRFZJU0VfVk1BX1JFQURfTE9DSzsKIAlkZWZhdWx0OgogCQlyZXR1cm4gTUFEVklTRV9NTUFQX1dSSVRFX0xPQ0s7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDAzOjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMyNjcKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAzNTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgTWFkdmlzZSBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyBgbW0vbWFkdmlzZS5jYC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSByZXZvbHZlcyBhcm91bmQgaG93IGxvY2tzIGFyZSBoYW5kbGVkIGZvciBgTUFEVl9DT0xEYCBhbmQgYE1BRFZfUEFHRU9VVGAuIEl0IGxvb2tzIGxpa2UgdGhlIGxvY2sgbW9kZSBpcyBiZWluZyBzaGlmdGVkIGZyb20gYE1BRFZJU0VfTU1BUF9SRUFEX0xPQ0tgIHRvIGBNQURWSVNFX1ZNQV9SRUFEX0xPQ0tgLiBUaGF0JiMzOTtzIGEgc3VidGxlIGJ1dCBwb3RlbnRpYWxseSBzaWduaWZpY2FudCBjaGFuZ2UgaW4gaG93IHRoZXNlIG1hZHZpc2Ugb3BlcmF0aW9ucyBpbnRlcmFjdCB3aXRoIHRoZSBtZW1vcnkgbWFwLiBUaGUgY29kZSBpcyBhbHNvIGJlaW5nIHJlZmFjdG9yZWQsIG1vdmluZyB0aGUgYGdldF93YWxrX2xvY2tgIGZ1bmN0aW9uIGFyb3VuZCBmb3IgYmV0dGVyIHJlLXVzYWJpbGl0eSB3aXRoaW4gdGhlIGZpbGUsIHNwZWNpZmljYWxseSBmb3IgdGhlIGBtYWR2aXNlX2NvbGRfcGFnZV9yYW5nZWAgYW5kIGBtYWR2aXNlX3BhZ2VvdXRfcGFnZV9yYW5nZWAgZnVuY3Rpb25zLiAgVGhvc2UgZnVuY3Rpb25zIGFyZSBhbHNvIGJlaW5nIHVwZGF0ZWQgdG8gdXNlIGBnZXRfd2Fsa19sb2NrYCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBsb2NrIG1vZGUsIHJhdGhlciB0aGFuIHRoZSBoYXJkY29kZWQgYFBHV0FMS19SRExPQ0tgLgoKRnVuY3Rpb25hbGx5LCB0aGlzIGltcGFjdHMgY3JpdGljYWwgbWVtb3J5IG1hbmFnZW1lbnQgYmVoYXZpb3IuIEl0IGRlZmluaXRlbHkgd2FycmFudHMgYSBjbG9zZSBsb29rLCBhbmQgZnV6emluZyB0aGlzIGlzIGEgbXVzdC4gSSYjMzk7bGwgbmVlZCB0byBmb2N1cyBvbiBwb3RlbnRpYWwgYXJlYXMgb2YgY29uY2VybiwgcGFydGljdWxhcmx5IGFyb3VuZCB0aGVzZSBzeW1ib2xzOiBgbWFkdmlzZV9jb2xkYCwgYG1hZHZpc2VfcGFnZW91dGAsIHRoZSByYW5nZSBmdW5jdGlvbnMgKGBtYWR2aXNlX2NvbGRfcGFnZV9yYW5nZWAsIGBtYWR2aXNlX3BhZ2VvdXRfcGFnZV9yYW5nZWApLCBhbmQgYG1hZHZpc2VfY29sZF9vcl9wYWdlb3V0X3B0ZV9yYW5nZWAuCgpOb3csIGJlZm9yZSBJIGRpZyBpbiB0b28gZGVlcCwgSSBuZWVkIHRvIGNoZWNrIHRoZSBjb25maWd1cmF0aW9uIGxhbmRzY2FwZS4gV2hpbGUgYG1hZHZpc2VgIGl0c2VsZiBpcyBsaWtlbHkgYWx3YXlzIGVuYWJsZWQsIEkmIzM5O2xsIG5lZWQgdG8gdmVyaWZ5IHdoZXRoZXIgYE1BRFZfQ09MRGAgYW5kIGBNQURWX1BBR0VPVVRgIGhhdmUgYW55IGRlcGVuZGVuY2llcyBvbiBmZWF0dXJlcyBsaWtlIGBDT05GSUdfVFJBTlNQQVJFTlRfSFVHRVBBR0VgIG9yIHNpbXBseSB0aGUgc3RhbmRhcmQgYENPTkZJR19BRFZJU0VfU1lTQ0FMTFNgLiAgSSYjMzk7bGwgc2NhbiBgbW0vbWFkdmlzZS5jYCBmb3IgdGhvc2UgZGVmaW5lcywgc3BlY2lmaWNhbGx5IGxvb2tpbmcgZm9yIGFueSBjb25kaXRpb25hbHMgYXJvdW5kIGBNQURWX0NPTERgIGFzIGEgc3RhcnRpbmcgcG9pbnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMDM6NTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TUFEVl9DT0xEJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bW0vbWFkdmlzZS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O21tL21hZHZpc2UuYz0xMzQzPXN0YXRpYyBpbnQgbWFkdmlzZV92bWFfYmVoYXZpb3Ioc3RydWN0IG1hZHZpc2VfYmVoYXZpb3IgKm1hZHZfYmVoYXZpb3IpXG4tLVxubW0vbWFkdmlzZS5jLTEzNTgtXHRcdHJldHVybiBtYWR2aXNlX3dpbGxuZWVkKG1hZHZfYmVoYXZpb3IpO1xubW0vbWFkdmlzZS5jOjEzNTk6XHRjYXNlIE1BRFZfQ09MRDpcbm1tL21hZHZpc2UuYy0xMzYwLVx0XHRyZXR1cm4gbWFkdmlzZV9jb2xkKG1hZHZfYmVoYXZpb3IpO1xuLS1cbm1tL21hZHZpc2UuYz0xNTIzPW1hZHZpc2VfYmVoYXZpb3JfdmFsaWQoaW50IGJlaGF2aW9yKVxuLS1cbm1tL21hZHZpc2UuYy0xNTM1LVx0Y2FzZSBNQURWX0ZSRUU6XG5tbS9tYWR2aXNlLmM6MTUzNjpcdGNhc2UgTUFEVl9DT0xEOlxubW0vbWFkdmlzZS5jLTE1MzctXHRjYXNlIE1BRFZfUEFHRU9VVDpcbi0tXG5tbS9tYWR2aXNlLmM9MTU2Nz1zdGF0aWMgYm9vbCBwcm9jZXNzX21hZHZpc2VfcmVtb3RlX3ZhbGlkKGludCBiZWhhdmlvcilcbi0tXG5tbS9tYWR2aXNlLmMtMTU2OS1cdHN3aXRjaCAoYmVoYXZpb3IpIHtcbm1tL21hZHZpc2UuYzoxNTcwOlx0Y2FzZSBNQURWX0NPTEQ6XG5tbS9tYWR2aXNlLmMtMTU3MS1cdGNhc2UgTUFEVl9QQUdFT1VUOlxuLS1cbm1tL21hZHZpc2UuYz0xNzQ3PXN0YXRpYyBlbnVtIG1hZHZpc2VfbG9ja19tb2RlIGdldF9sb2NrX21vZGUoc3RydWN0IG1hZHZpc2VfYmVoYXZpb3IgKm1hZHZfYmVoYXZpb3IpXG4tLVxubW0vbWFkdmlzZS5jLTE3NjMtXHRjYXNlIE1BRFZfRlJFRTpcbm1tL21hZHZpc2UuYzoxNzY0Olx0Y2FzZSBNQURWX0NPTEQ6XG5tbS9tYWR2aXNlLmMtMTc2NS1cdGNhc2UgTUFEVl9QQUdFT1VUOlxuLS1cbm1tL21hZHZpc2UuYz0xODkyPXN0YXRpYyBpbnQgbWFkdmlzZV9kb19iZWhhdmlvcih1bnNpZ25lZCBsb25nIHN0YXJ0LCBzaXplX3QgbGVuX2luLFxuLS1cbm1tL21hZHZpc2UuYy0xOTY0LSAqICBNQURWX0RPRFVNUCAtIGNhbmNlbCBNQURWX0RPTlREVU1QOiBubyBsb25nZXIgZXhjbHVkZSBmcm9tIGNvcmUgZHVtcC5cbm1tL21hZHZpc2UuYzoxOTY1OiAqICBNQURWX0NPTEQgLSB0aGUgYXBwbGljYXRpb24gaXMgbm90IGV4cGVjdGVkIHRvIHVzZSB0aGlzIG1lbW9yeSBzb29uLFxubW0vbWFkdmlzZS5jLTE5NjYtICpcdFx0ZGVhY3RpdmF0ZSBwYWdlcyBpbiB0aGlzIHJhbmdlIHNvIHRoYXQgdGhleSBjYW4gYmUgcmVjbGFpbWVkXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMDM6NTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDY0NAoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDIxNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE1BRFZfQ09MRCBhbmQgTUFEVl9QQUdFT1VUIENoYW5nZXMqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGVzZSBtb2RpZmljYXRpb25zLiBUaGUgY29kZSBjaGFuZ2VzIGFyZSBhbGwgd2l0aGluIGBtbS9tYWR2aXNlLmNgLCBzcGVjaWZpY2FsbHkgZm9jdXNpbmcgb24gaG93IHRoZSBzeXN0ZW0gaGFuZGxlcyBgTUFEVl9DT0xEYCBhbmQgYE1BRFZfUEFHRU9VVGAuIEl0IGxvb2tzIGxpa2UgdGhlIGNvcmUgZnVuY3Rpb25zIGJlaW5nIHRvdWNoZWQgYXJlIGBtYWR2aXNlX2NvbGRgIGFuZCBgbWFkdmlzZV9wYWdlb3V0YCwgd2hpY2ggaW4gdHVybiBjYWxsIHRoZSBtb3JlIGdyYW51bGFyIGBtYWR2aXNlX2NvbGRfcGFnZV9yYW5nZWAgYW5kIGBtYWR2aXNlX3BhZ2VvdXRfcGFnZV9yYW5nZWAuIEFuZCBJIHNlZSB0aGF0IGBnZXRfbG9ja19tb2RlYCBpcyBhbHNvIGdldHRpbmcgYWRqdXN0ZWQgdG8gaGFuZGxlIHRoZSBsb2NrIG1vZGVzIGFzc29jaWF0ZWQgd2l0aCB0aGVzZSBuZXcgbWFkdmlzZSBmbGFncy4KCk5vdywgYmVmb3JlIEkgZGlnIGRlZXBlciBpbnRvIHRoZSBncmFudWxhciBmdW5jdGlvbnMsIEkmIzM5O2xsIHF1aWNrbHkgc2VlIGlmIHRoZXJlIGFyZSBhbnkgbmV3IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBpbnRyb2R1Y2VkIHNwZWNpZmljYWxseSBmb3IgYE1BRFZfQ09MRGAgb3IgYE1BRFZfUEFHRU9VVGAuIFRoZXNlIG1hZHZpc2UgY2FsbHMgYXJlIHBhcnQgb2YgdGhlIGBtYWR2aXNlYCBzeXNjYWxsIHNvIHRoYXQgbWVhbnMgYENPTkZJR19BRFZJU0VfU1lTQ0FMTFNgIHNob3VsZCBiZSB0aGUgbWFpbiBjb25maWcgdG8gd29ycnkgYWJvdXQuIEkmIzM5O20gbm90IHNlZWluZyBhbnl0aGluZyB0aGF0IHN0YW5kcyBvdXQsIGFuZCBpdCBtYWtlcyBzZW5zZTsgYG1hZHZpc2VgIGlzIGEgcHJldHR5IGZ1bmRhbWVudGFsIGZlYXR1cmUsIHNvIEkmIzM5O20gbm90IGV4cGVjdGluZyBhbnl0aGluZyB0b28gdW51c3VhbCBvbiB0aGUgY29uZmlnIHNpZGUuCgpXaXRoIHRoYXQgY2xlYXJlZCwgdGltZSB0byBnZXQgaW50byB0aGUgZGV0YWlscyBvZiB3aGF0JiMzOTtzIGhhcHBlbmluZyB3aXRoaW4gYG1hZHZpc2VfY29sZF9wYWdlX3JhbmdlYCBhbmQgYG1hZHZpc2VfcGFnZW91dF9wYWdlX3JhbmdlYCBpbiBgbW0vbWFkdmlzZS5jYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwMzo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttYWR2aXNlX2NvbGRfcGFnZV9yYW5nZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O21tL21hZHZpc2UuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDttbS9tYWR2aXNlLmM9NTY5PXN0YXRpYyBpbmxpbmUgZW51bSBwYWdlX3dhbGtfbG9jayBnZXRfd2Fsa19sb2NrKGVudW0gbWFkdmlzZV9sb2NrX21vZGUgbW9kZSlcbi0tXG5tbS9tYWR2aXNlLmMtNTgyLVxubW0vbWFkdmlzZS5jOjU4MzpzdGF0aWMgdm9pZCBtYWR2aXNlX2NvbGRfcGFnZV9yYW5nZShzdHJ1Y3QgbW11X2dhdGhlciAqdGxiLFxubW0vbWFkdmlzZS5jLTU4NC1cdFx0c3RydWN0IG1hZHZpc2VfYmVoYXZpb3IgKm1hZHZfYmVoYXZpb3IpXG4tLVxubW0vbWFkdmlzZS5jPTYwOT1zdGF0aWMgbG9uZyBtYWR2aXNlX2NvbGQoc3RydWN0IG1hZHZpc2VfYmVoYXZpb3IgKm1hZHZfYmVoYXZpb3IpXG4tLVxubW0vbWFkdmlzZS5jLTYxOC1cdHRsYl9nYXRoZXJfbW11KFx1MDAyNnRsYiwgbWFkdl9iZWhhdmlvci1cdTAwM2VtbSk7XG5tbS9tYWR2aXNlLmM6NjE5Olx0bWFkdmlzZV9jb2xkX3BhZ2VfcmFuZ2UoXHUwMDI2dGxiLCBtYWR2X2JlaGF2aW9yKTtcbm1tL21hZHZpc2UuYy02MjAtXHR0bGJfZmluaXNoX21tdShcdTAwMjZ0bGIpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDAzOjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU0NjAKCQkJCQkJCW91dHB1dDogMTQyCgkJCQkJCQl0aG91Z2h0czogMjIwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTG9ja2luZyBDaGFuZ2UgaW4gTUFEVl9DT0xEIGFuZCBNQURWX1BBR0VPVVQqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGltbWVkaWF0ZWx5LCB0aGUgY29yZSBvZiB0aGUgbWF0dGVyIGp1bXBzIG91dC4gVGhpcyBpcyBhIHByZXR0eSBzaWduaWZpY2FudCwgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gdGhlIG1lbW9yeSBtYW5hZ2VtZW50IHN1YnN5c3RlbS4gVGhleSYjMzk7cmUgYWx0ZXJpbmcgdGhlIGxvY2tpbmcgbWVjaGFuaXNtIGZvciBgTUFEVl9DT0xEYCBhbmQgYE1BRFZfUEFHRU9VVGAgY2FsbHMuIFNwZWNpZmljYWxseSwgd2UmIzM5O3JlIHRyYW5zaXRpb25pbmcgZnJvbSB0aGUgbW9yZSBnZW5lcmFsIGBNQURWSVNFX01NQVBfUkVBRF9MT0NLYCB0byB0aGUgbW9yZSB0YXJnZXRlZCBgTUFEVklTRV9WTUFfUkVBRF9MT0NLYC4KClRoaXMgaXMgaW1wb3J0YW50IGJlY2F1c2UgY2hhbmdpbmcgbG9ja2luZyBwcmltaXRpdmVzIGhhcyB0aGUgcG90ZW50aWFsIHRvIGludHJvZHVjZSBzdWJ0bGUgcmFjZSBjb25kaXRpb25zLCBkZWFkbG9ja3MsIG9yIHVuaW50ZW5kZWQgcGVyZm9ybWFuY2UgaW1wYWN0cy4gTXkgZm9jdXMgbmVlZHMgdG8gYmUgb24gZW5zdXJpbmcgdGhlIGNvbnNpc3RlbmN5IGFuZCBpbnRlZ3JpdHkgb2YgdmlydHVhbCBtZW1vcnkgbWFuYWdlbWVudC4gSSB3aWxsIHBheSBjYXJlZnVsIGF0dGVudGlvbiB0byB0aGUgc3ltYm9scyBsaWtlIGBtYWR2aXNlX2NvbGRgLCBgbWFkdmlzZV9wYWdlb3V0YCwgYG1hZHZpc2VfY29sZF9wYWdlX3JhbmdlYCwgYW5kIGBtYWR2aXNlX3BhZ2VvdXRfcGFnZV9yYW5nZWAgdGhyb3VnaG91dCB0aGUgcmV2aWV3LgoKVGhlIGVuYWJsaW5nIGNvbmZpZ3VyYXRpb24gaXNuJiMzOTt0IGFueXRoaW5nIHVudXN1YWwsIGl0IHNob3VsZCBiZSBlbmFibGVkIGlmIHdlIGFyZSBydW5uaW5nIHRoZSBzdGFuZGFyZCBgQ09ORklHX0FEVklTRV9TWVNDQUxMU2AgY29uZmlndXJhdGlvbnMuIFNvLCBpdCYjMzk7cyByZWFsbHkgdGhlIGxvY2tpbmcgY2hhbmdlIGl0c2VsZiB0aGF0IEkmIzM5O20gcHJpbWFyaWx5IGNvbmNlcm5lZCB3aXRoLCBhbmQgd2lsbCBoYXZlIHRvIGZ1enogdGhvc2Ugc3BlY2lmaWMgY2FsbHMuIEkmIzM5O2xsIG5lZWQgdG8gZGV2ZWxvcCBhIGZ1enppbmcgc3RyYXRlZ3kgdGhhdCB0aG9yb3VnaGx5IHRlc3RzIHRoaXMgY2hhbmdlIHVuZGVyIHZhcmlvdXMgbWVtb3J5IHVzYWdlIHNjZW5hcmlvcyBhbmQgY29uY3VycmVuY3kgbG9hZHMuIEkgbmVlZCB0byBiZSBzdXJlIHRoYXQgdGhpcyBkb2VzbiYjMzk7dCBjcmVhdGUgYW55IHJlZ3Jlc3Npb25zIGluIGV4aXN0aW5nIHdvcmtsb2Fkcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwMzo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bWFkdmlzZV9jb2xkJiMzNDssCiAgICAmIzM0O21hZHZpc2VfcGFnZW91dCYjMzQ7LAogICAgJiMzNDttYWR2aXNlX2NvbGRfcGFnZV9yYW5nZSYjMzQ7LAogICAgJiMzNDttYWR2aXNlX3BhZ2VvdXRfcGFnZV9yYW5nZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBjaGFuZ2VzIHRoZSBsb2NraW5nIG1vZGUgZm9yIE1BRFZfQ09MRCBhbmQgTUFEVl9QQUdFT1VUIG1hZHZpc2UgYmVoYXZpb3JzIGZyb20gTUFEVklTRV9NTUFQX1JFQURfTE9DSyB0byBNQURWSVNFX1ZNQV9SRUFEX0xPQ0suIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byBjb3JlIG1lbW9yeSBtYW5hZ2VtZW50IGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyBsb2NraW5nIGlzc3VlcyBvciByZWdyZXNzaW9ucyBhcmUgaW50cm9kdWNlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttYWR2aXNlX2NvbGQmIzM0OywKICAgICYjMzQ7bWFkdmlzZV9wYWdlb3V0JiMzNDssCiAgICAmIzM0O21hZHZpc2VfY29sZF9wYWdlX3JhbmdlJiMzNDssCiAgICAmIzM0O21hZHZpc2VfcGFnZW91dF9wYWdlX3JhbmdlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGNoYW5nZXMgdGhlIGxvY2tpbmcgbW9kZSBmb3IgTUFEVl9DT0xEIGFuZCBNQURWX1BBR0VPVVQgbWFkdmlzZSBiZWhhdmlvcnMgZnJvbSBNQURWSVNFX01NQVBfUkVBRF9MT0NLIHRvIE1BRFZJU0VfVk1BX1JFQURfTE9DSy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIGNvcmUgbWVtb3J5IG1hbmFnZW1lbnQgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIGxvY2tpbmcgaXNzdWVzIG9yIHJlZ3Jlc3Npb25zIGFyZSBpbnRyb2R1Y2VkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjBUMDM6NTQ6MzguMzIzMjI2NTYxWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTY5MjMwMTExNjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibWFkdmlzZV9jb2xkXCIsXG4gICAgXCJtYWR2aXNlX3BhZ2VvdXRcIixcbiAgICBcIm1hZHZpc2VfY29sZF9wYWdlX3JhbmdlXCIsXG4gICAgXCJtYWR2aXNlX3BhZ2VvdXRfcGFnZV9yYW5nZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGNoYW5nZXMgdGhlIGxvY2tpbmcgbW9kZSBmb3IgTUFEVl9DT0xEIGFuZCBNQURWX1BBR0VPVVQgbWFkdmlzZSBiZWhhdmlvcnMgZnJvbSBNQURWSVNFX01NQVBfUkVBRF9MT0NLIHRvIE1BRFZJU0VfVk1BX1JFQURfTE9DSy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIGNvcmUgbWVtb3J5IG1hbmFnZW1lbnQgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIGxvY2tpbmcgaXNzdWVzIG9yIHJlZ3Jlc3Npb25zIGFyZSBpbnRyb2R1Y2VkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwMzo1NDozOC4zMjMyMzUzODFaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYzNTQzMjY0OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDFmYTBhOGMzZDJjNDVmMWYwZDMxNjgwYjI4MzQwYzBjNzM0Njc4M2NcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIE1vbiBKdWwgMjAgMDM6NTQ6MzYgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbW0vbWFkdmlzZS5jIGIvbW0vbWFkdmlzZS5jXFxuaW5kZXggY2Q5YmIwNzcwNzJjY2IuLjc5NWE4YTZmYjIzN2Y3IDEwMDY0NFxcbi0tLSBhL21tL21hZHZpc2UuY1xcbisrKyBiL21tL21hZHZpc2UuY1xcbkBAIC01NjYsMTAgKzU2NiwxOSBAQCBzdGF0aWMgaW50IG1hZHZpc2VfY29sZF9vcl9wYWdlb3V0X3B0ZV9yYW5nZShwbWRfdCAqcG1kLFxcbiBcXHRyZXR1cm4gMDtcXG4gfVxcbiBcXG4tc3RhdGljIGNvbnN0IHN0cnVjdCBtbV93YWxrX29wcyBjb2xkX3dhbGtfb3BzID0ge1xcbi1cXHQucG1kX2VudHJ5ID0gbWFkdmlzZV9jb2xkX29yX3BhZ2VvdXRfcHRlX3JhbmdlLFxcbi1cXHQud2Fsa19sb2NrID0gUEdXQUxLX1JETE9DSyxcXG4tfTtcXG4rc3RhdGljIGlubGluZSBlbnVtIHBhZ2Vfd2Fsa19sb2NrIGdldF93YWxrX2xvY2soZW51bSBtYWR2aXNlX2xvY2tfbW9kZSBtb2RlKVxcbit7XFxuK1xcdHN3aXRjaCAobW9kZSkge1xcbitcXHRjYXNlIE1BRFZJU0VfVk1BX1JFQURfTE9DSzpcXG4rXFx0XFx0cmV0dXJuIFBHV0FMS19WTUFfUkRMT0NLX1ZFUklGWTtcXG4rXFx0Y2FzZSBNQURWSVNFX01NQVBfUkVBRF9MT0NLOlxcbitcXHRcXHRyZXR1cm4gUEdXQUxLX1JETE9DSztcXG4rXFx0ZGVmYXVsdDpcXG4rXFx0XFx0LyogT3RoZXIgbW9kZXMgZG9uJ3QgcmVxdWlyZSBmaXhpbmcgdXAgdGhlIHdhbGtfbG9jayAqL1xcbitcXHRcXHRXQVJOX09OX09OQ0UoMSk7XFxuK1xcdFxcdHJldHVybiBQR1dBTEtfUkRMT0NLO1xcbitcXHR9XFxuK31cXG4gXFxuIHN0YXRpYyB2b2lkIG1hZHZpc2VfY29sZF9wYWdlX3JhbmdlKHN0cnVjdCBtbXVfZ2F0aGVyICp0bGIsXFxuIFxcdFxcdHN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yICptYWR2X2JlaGF2aW9yKVxcbkBAIC01NzcsMTMgKzU4NiwxNyBAQCBzdGF0aWMgdm9pZCBtYWR2aXNlX2NvbGRfcGFnZV9yYW5nZShzdHJ1Y3QgbW11X2dhdGhlciAqdGxiLFxcbiB7XFxuIFxcdHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hID0gbWFkdl9iZWhhdmlvci1cXHUwMDNldm1hO1xcbiBcXHRzdHJ1Y3QgbWFkdmlzZV9iZWhhdmlvcl9yYW5nZSAqcmFuZ2UgPSBcXHUwMDI2bWFkdl9iZWhhdmlvci1cXHUwMDNlcmFuZ2U7XFxuK1xcdHN0cnVjdCBtbV93YWxrX29wcyB3YWxrX29wcyA9IHtcXG4rXFx0XFx0LnBtZF9lbnRyeSA9IG1hZHZpc2VfY29sZF9vcl9wYWdlb3V0X3B0ZV9yYW5nZSxcXG4rXFx0fTtcXG4gXFx0c3RydWN0IG1hZHZpc2Vfd2Fsa19wcml2YXRlIHdhbGtfcHJpdmF0ZSA9IHtcXG4gXFx0XFx0LnBhZ2VvdXQgPSBmYWxzZSxcXG4gXFx0XFx0LnRsYiA9IHRsYixcXG4gXFx0fTtcXG4gXFxuK1xcdHdhbGtfb3BzLndhbGtfbG9jayA9IGdldF93YWxrX2xvY2sobWFkdl9iZWhhdmlvci1cXHUwMDNlbG9ja19tb2RlKTtcXG4gXFx0dGxiX3N0YXJ0X3ZtYSh0bGIsIHZtYSk7XFxuLVxcdHdhbGtfcGFnZV9yYW5nZV92bWEodm1hLCByYW5nZS1cXHUwMDNlc3RhcnQsIHJhbmdlLVxcdTAwM2VlbmQsIFxcdTAwMjZjb2xkX3dhbGtfb3BzLFxcbitcXHR3YWxrX3BhZ2VfcmFuZ2Vfdm1hKHZtYSwgcmFuZ2UtXFx1MDAzZXN0YXJ0LCByYW5nZS1cXHUwMDNlZW5kLCBcXHUwMDI2d2Fsa19vcHMsXFxuIFxcdFxcdFxcdFxcdTAwMjZ3YWxrX3ByaXZhdGUpO1xcbiBcXHR0bGJfZW5kX3ZtYSh0bGIsIHZtYSk7XFxuIH1cXG5AQCAtNjExLDE1ICs2MjQsMjAgQEAgc3RhdGljIGxvbmcgbWFkdmlzZV9jb2xkKHN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yICptYWR2X2JlaGF2aW9yKVxcbiBcXG4gc3RhdGljIHZvaWQgbWFkdmlzZV9wYWdlb3V0X3BhZ2VfcmFuZ2Uoc3RydWN0IG1tdV9nYXRoZXIgKnRsYixcXG4gXFx0XFx0c3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsXFxuLVxcdFxcdHN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yX3JhbmdlICpyYW5nZSlcXG4rXFx0XFx0c3RydWN0IG1hZHZpc2VfYmVoYXZpb3IgKm1hZHZfYmVoYXZpb3IpXFxuIHtcXG4rXFx0c3RydWN0IG1hZHZpc2VfYmVoYXZpb3JfcmFuZ2UgKnJhbmdlID0gXFx1MDAyNm1hZHZfYmVoYXZpb3ItXFx1MDAzZXJhbmdlO1xcbitcXHRzdHJ1Y3QgbW1fd2Fsa19vcHMgd2Fsa19vcHMgPSB7XFxuK1xcdFxcdC5wbWRfZW50cnkgPSBtYWR2aXNlX2NvbGRfb3JfcGFnZW91dF9wdGVfcmFuZ2UsXFxuK1xcdH07XFxuIFxcdHN0cnVjdCBtYWR2aXNlX3dhbGtfcHJpdmF0ZSB3YWxrX3ByaXZhdGUgPSB7XFxuIFxcdFxcdC5wYWdlb3V0ID0gdHJ1ZSxcXG4gXFx0XFx0LnRsYiA9IHRsYixcXG4gXFx0fTtcXG4gXFxuK1xcdHdhbGtfb3BzLndhbGtfbG9jayA9IGdldF93YWxrX2xvY2sobWFkdl9iZWhhdmlvci1cXHUwMDNlbG9ja19tb2RlKTtcXG4gXFx0dGxiX3N0YXJ0X3ZtYSh0bGIsIHZtYSk7XFxuLVxcdHdhbGtfcGFnZV9yYW5nZV92bWEodm1hLCByYW5nZS1cXHUwMDNlc3RhcnQsIHJhbmdlLVxcdTAwM2VlbmQsIFxcdTAwMjZjb2xkX3dhbGtfb3BzLFxcbitcXHR3YWxrX3BhZ2VfcmFuZ2Vfdm1hKHZtYSwgcmFuZ2UtXFx1MDAzZXN0YXJ0LCByYW5nZS1cXHUwMDNlZW5kLCBcXHUwMDI2d2Fsa19vcHMsXFxuIFxcdFxcdFxcdCAgICBcXHUwMDI2d2Fsa19wcml2YXRlKTtcXG4gXFx0dGxiX2VuZF92bWEodGxiLCB2bWEpO1xcbiB9XFxuQEAgLTY0NCw3ICs2NjIsNyBAQCBzdGF0aWMgbG9uZyBtYWR2aXNlX3BhZ2VvdXQoc3RydWN0IG1hZHZpc2VfYmVoYXZpb3IgKm1hZHZfYmVoYXZpb3IpXFxuIFxcbiBcXHRscnVfYWRkX2RyYWluKCk7XFxuIFxcdHRsYl9nYXRoZXJfbW11KFxcdTAwMjZ0bGIsIG1hZHZfYmVoYXZpb3ItXFx1MDAzZW1tKTtcXG4tXFx0bWFkdmlzZV9wYWdlb3V0X3BhZ2VfcmFuZ2UoXFx1MDAyNnRsYiwgdm1hLCBcXHUwMDI2bWFkdl9iZWhhdmlvci1cXHUwMDNlcmFuZ2UpO1xcbitcXHRtYWR2aXNlX3BhZ2VvdXRfcGFnZV9yYW5nZShcXHUwMDI2dGxiLCB2bWEsIG1hZHZfYmVoYXZpb3IpO1xcbiBcXHR0bGJfZmluaXNoX21tdShcXHUwMDI2dGxiKTtcXG4gXFxuIFxcdHJldHVybiAwO1xcbkBAIC03ODMsMjAgKzgwMSw2IEBAIHN0YXRpYyBpbnQgbWFkdmlzZV9mcmVlX3B0ZV9yYW5nZShwbWRfdCAqcG1kLCB1bnNpZ25lZCBsb25nIGFkZHIsXFxuIFxcdHJldHVybiAwO1xcbiB9XFxuIFxcbi1zdGF0aWMgaW5saW5lIGVudW0gcGFnZV93YWxrX2xvY2sgZ2V0X3dhbGtfbG9jayhlbnVtIG1hZHZpc2VfbG9ja19tb2RlIG1vZGUpXFxuLXtcXG4tXFx0c3dpdGNoIChtb2RlKSB7XFxuLVxcdGNhc2UgTUFEVklTRV9WTUFfUkVBRF9MT0NLOlxcbi1cXHRcXHRyZXR1cm4gUEdXQUxLX1ZNQV9SRExPQ0tfVkVSSUZZO1xcbi1cXHRjYXNlIE1BRFZJU0VfTU1BUF9SRUFEX0xPQ0s6XFxuLVxcdFxcdHJldHVybiBQR1dBTEtfUkRMT0NLO1xcbi1cXHRkZWZhdWx0Olxcbi1cXHRcXHQvKiBPdGhlciBtb2RlcyBkb24ndCByZXF1aXJlIGZpeGluZyB1cCB0aGUgd2Fsa19sb2NrICovXFxuLVxcdFxcdFdBUk5fT05fT05DRSgxKTtcXG4tXFx0XFx0cmV0dXJuIFBHV0FMS19SRExPQ0s7XFxuLVxcdH1cXG4tfVxcbi1cXG4gc3RhdGljIGludCBtYWR2aXNlX2ZyZWVfc2luZ2xlX3ZtYShzdHJ1Y3QgbWFkdmlzZV9iZWhhdmlvciAqbWFkdl9iZWhhdmlvcilcXG4ge1xcbiBcXHRzdHJ1Y3QgbW1fc3RydWN0ICptbSA9IG1hZHZfYmVoYXZpb3ItXFx1MDAzZW1tO1xcbkBAIC0xNzQ4LDggKzE3NTIsNiBAQCBzdGF0aWMgZW51bSBtYWR2aXNlX2xvY2tfbW9kZSBnZXRfbG9ja19tb2RlKHN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yICptYWR2X2JlaGF2aVxcbiBcXHRzd2l0Y2ggKG1hZHZfYmVoYXZpb3ItXFx1MDAzZWJlaGF2aW9yKSB7XFxuIFxcdGNhc2UgTUFEVl9SRU1PVkU6XFxuIFxcdGNhc2UgTUFEVl9XSUxMTkVFRDpcXG4tXFx0Y2FzZSBNQURWX0NPTEQ6XFxuLVxcdGNhc2UgTUFEVl9QQUdFT1VUOlxcbiBcXHRjYXNlIE1BRFZfUE9QVUxBVEVfUkVBRDpcXG4gXFx0Y2FzZSBNQURWX1BPUFVMQVRFX1dSSVRFOlxcbiBcXHRjYXNlIE1BRFZfQ09MTEFQU0U6XFxuQEAgLTE3NTksNiArMTc2MSw4IEBAIHN0YXRpYyBlbnVtIG1hZHZpc2VfbG9ja19tb2RlIGdldF9sb2NrX21vZGUoc3RydWN0IG1hZHZpc2VfYmVoYXZpb3IgKm1hZHZfYmVoYXZpXFxuIFxcdGNhc2UgTUFEVl9ET05UTkVFRDpcXG4gXFx0Y2FzZSBNQURWX0RPTlRORUVEX0xPQ0tFRDpcXG4gXFx0Y2FzZSBNQURWX0ZSRUU6XFxuK1xcdGNhc2UgTUFEVl9DT0xEOlxcbitcXHRjYXNlIE1BRFZfUEFHRU9VVDpcXG4gXFx0XFx0cmV0dXJuIE1BRFZJU0VfVk1BX1JFQURfTE9DSztcXG4gXFx0ZGVmYXVsdDpcXG4gXFx0XFx0cmV0dXJuIE1BRFZJU0VfTU1BUF9XUklURV9MT0NLO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwMzo1NDozOC45NTk2MDU1MjlaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2Mjg2NjI2NzM1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm1hZHZpc2VfY29sZFwiLFxuICAgIFwibWFkdmlzZV9wYWdlb3V0XCIsXG4gICAgXCJtYWR2aXNlX2NvbGRfcGFnZV9yYW5nZVwiLFxuICAgIFwibWFkdmlzZV9wYWdlb3V0X3BhZ2VfcmFuZ2VcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBjaGFuZ2VzIHRoZSBsb2NraW5nIG1vZGUgZm9yIE1BRFZfQ09MRCBhbmQgTUFEVl9QQUdFT1VUIG1hZHZpc2UgYmVoYXZpb3JzIGZyb20gTUFEVklTRV9NTUFQX1JFQURfTE9DSyB0byBNQURWSVNFX1ZNQV9SRUFEX0xPQ0suIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byBjb3JlIG1lbW9yeSBtYW5hZ2VtZW50IGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyBsb2NraW5nIGlzc3VlcyBvciByZWdyZXNzaW9ucyBhcmUgaW50cm9kdWNlZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAxZmEwYThjM2QyYzQ1ZjFmMGQzMTY4MGIyODM0MGMwYzczNDY3ODNjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgMjAgMDM6NTQ6MzYgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9tbS9tYWR2aXNlLmMgYi9tbS9tYWR2aXNlLmNcbmluZGV4IGNkOWJiMDc3MDcyY2NiLi43OTVhOGE2ZmIyMzdmNyAxMDA2NDRcbi0tLSBhL21tL21hZHZpc2UuY1xuKysrIGIvbW0vbWFkdmlzZS5jXG5AQCAtNTY2LDEwICs1NjYsMTkgQEAgc3RhdGljIGludCBtYWR2aXNlX2NvbGRfb3JfcGFnZW91dF9wdGVfcmFuZ2UocG1kX3QgKnBtZCxcbiBcdHJldHVybiAwO1xuIH1cbiBcbi1zdGF0aWMgY29uc3Qgc3RydWN0IG1tX3dhbGtfb3BzIGNvbGRfd2Fsa19vcHMgPSB7XG4tXHQucG1kX2VudHJ5ID0gbWFkdmlzZV9jb2xkX29yX3BhZ2VvdXRfcHRlX3JhbmdlLFxuLVx0LndhbGtfbG9jayA9IFBHV0FMS19SRExPQ0ssXG4tfTtcbitzdGF0aWMgaW5saW5lIGVudW0gcGFnZV93YWxrX2xvY2sgZ2V0X3dhbGtfbG9jayhlbnVtIG1hZHZpc2VfbG9ja19tb2RlIG1vZGUpXG4re1xuK1x0c3dpdGNoIChtb2RlKSB7XG4rXHRjYXNlIE1BRFZJU0VfVk1BX1JFQURfTE9DSzpcbitcdFx0cmV0dXJuIFBHV0FMS19WTUFfUkRMT0NLX1ZFUklGWTtcbitcdGNhc2UgTUFEVklTRV9NTUFQX1JFQURfTE9DSzpcbitcdFx0cmV0dXJuIFBHV0FMS19SRExPQ0s7XG4rXHRkZWZhdWx0OlxuK1x0XHQvKiBPdGhlciBtb2RlcyBkb24ndCByZXF1aXJlIGZpeGluZyB1cCB0aGUgd2Fsa19sb2NrICovXG4rXHRcdFdBUk5fT05fT05DRSgxKTtcbitcdFx0cmV0dXJuIFBHV0FMS19SRExPQ0s7XG4rXHR9XG4rfVxuIFxuIHN0YXRpYyB2b2lkIG1hZHZpc2VfY29sZF9wYWdlX3JhbmdlKHN0cnVjdCBtbXVfZ2F0aGVyICp0bGIsXG4gXHRcdHN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yICptYWR2X2JlaGF2aW9yKVxuQEAgLTU3NywxMyArNTg2LDE3IEBAIHN0YXRpYyB2b2lkIG1hZHZpc2VfY29sZF9wYWdlX3JhbmdlKHN0cnVjdCBtbXVfZ2F0aGVyICp0bGIsXG4ge1xuIFx0c3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEgPSBtYWR2X2JlaGF2aW9yLVx1MDAzZXZtYTtcbiBcdHN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yX3JhbmdlICpyYW5nZSA9IFx1MDAyNm1hZHZfYmVoYXZpb3ItXHUwMDNlcmFuZ2U7XG4rXHRzdHJ1Y3QgbW1fd2Fsa19vcHMgd2Fsa19vcHMgPSB7XG4rXHRcdC5wbWRfZW50cnkgPSBtYWR2aXNlX2NvbGRfb3JfcGFnZW91dF9wdGVfcmFuZ2UsXG4rXHR9O1xuIFx0c3RydWN0IG1hZHZpc2Vfd2Fsa19wcml2YXRlIHdhbGtfcHJpdmF0ZSA9IHtcbiBcdFx0LnBhZ2VvdXQgPSBmYWxzZSxcbiBcdFx0LnRsYiA9IHRsYixcbiBcdH07XG4gXG4rXHR3YWxrX29wcy53YWxrX2xvY2sgPSBnZXRfd2Fsa19sb2NrKG1hZHZfYmVoYXZpb3ItXHUwMDNlbG9ja19tb2RlKTtcbiBcdHRsYl9zdGFydF92bWEodGxiLCB2bWEpO1xuLVx0d2Fsa19wYWdlX3JhbmdlX3ZtYSh2bWEsIHJhbmdlLVx1MDAzZXN0YXJ0LCByYW5nZS1cdTAwM2VlbmQsIFx1MDAyNmNvbGRfd2Fsa19vcHMsXG4rXHR3YWxrX3BhZ2VfcmFuZ2Vfdm1hKHZtYSwgcmFuZ2UtXHUwMDNlc3RhcnQsIHJhbmdlLVx1MDAzZWVuZCwgXHUwMDI2d2Fsa19vcHMsXG4gXHRcdFx0XHUwMDI2d2Fsa19wcml2YXRlKTtcbiBcdHRsYl9lbmRfdm1hKHRsYiwgdm1hKTtcbiB9XG5AQCAtNjExLDE1ICs2MjQsMjAgQEAgc3RhdGljIGxvbmcgbWFkdmlzZV9jb2xkKHN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yICptYWR2X2JlaGF2aW9yKVxuIFxuIHN0YXRpYyB2b2lkIG1hZHZpc2VfcGFnZW91dF9wYWdlX3JhbmdlKHN0cnVjdCBtbXVfZ2F0aGVyICp0bGIsXG4gXHRcdHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLFxuLVx0XHRzdHJ1Y3QgbWFkdmlzZV9iZWhhdmlvcl9yYW5nZSAqcmFuZ2UpXG4rXHRcdHN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yICptYWR2X2JlaGF2aW9yKVxuIHtcbitcdHN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yX3JhbmdlICpyYW5nZSA9IFx1MDAyNm1hZHZfYmVoYXZpb3ItXHUwMDNlcmFuZ2U7XG4rXHRzdHJ1Y3QgbW1fd2Fsa19vcHMgd2Fsa19vcHMgPSB7XG4rXHRcdC5wbWRfZW50cnkgPSBtYWR2aXNlX2NvbGRfb3JfcGFnZW91dF9wdGVfcmFuZ2UsXG4rXHR9O1xuIFx0c3RydWN0IG1hZHZpc2Vfd2Fsa19wcml2YXRlIHdhbGtfcHJpdmF0ZSA9IHtcbiBcdFx0LnBhZ2VvdXQgPSB0cnVlLFxuIFx0XHQudGxiID0gdGxiLFxuIFx0fTtcbiBcbitcdHdhbGtfb3BzLndhbGtfbG9jayA9IGdldF93YWxrX2xvY2sobWFkdl9iZWhhdmlvci1cdTAwM2Vsb2NrX21vZGUpO1xuIFx0dGxiX3N0YXJ0X3ZtYSh0bGIsIHZtYSk7XG4tXHR3YWxrX3BhZ2VfcmFuZ2Vfdm1hKHZtYSwgcmFuZ2UtXHUwMDNlc3RhcnQsIHJhbmdlLVx1MDAzZWVuZCwgXHUwMDI2Y29sZF93YWxrX29wcyxcbitcdHdhbGtfcGFnZV9yYW5nZV92bWEodm1hLCByYW5nZS1cdTAwM2VzdGFydCwgcmFuZ2UtXHUwMDNlZW5kLCBcdTAwMjZ3YWxrX29wcyxcbiBcdFx0XHQgICAgXHUwMDI2d2Fsa19wcml2YXRlKTtcbiBcdHRsYl9lbmRfdm1hKHRsYiwgdm1hKTtcbiB9XG5AQCAtNjQ0LDcgKzY2Miw3IEBAIHN0YXRpYyBsb25nIG1hZHZpc2VfcGFnZW91dChzdHJ1Y3QgbWFkdmlzZV9iZWhhdmlvciAqbWFkdl9iZWhhdmlvcilcbiBcbiBcdGxydV9hZGRfZHJhaW4oKTtcbiBcdHRsYl9nYXRoZXJfbW11KFx1MDAyNnRsYiwgbWFkdl9iZWhhdmlvci1cdTAwM2VtbSk7XG4tXHRtYWR2aXNlX3BhZ2VvdXRfcGFnZV9yYW5nZShcdTAwMjZ0bGIsIHZtYSwgXHUwMDI2bWFkdl9iZWhhdmlvci1cdTAwM2VyYW5nZSk7XG4rXHRtYWR2aXNlX3BhZ2VvdXRfcGFnZV9yYW5nZShcdTAwMjZ0bGIsIHZtYSwgbWFkdl9iZWhhdmlvcik7XG4gXHR0bGJfZmluaXNoX21tdShcdTAwMjZ0bGIpO1xuIFxuIFx0cmV0dXJuIDA7XG5AQCAtNzgzLDIwICs4MDEsNiBAQCBzdGF0aWMgaW50IG1hZHZpc2VfZnJlZV9wdGVfcmFuZ2UocG1kX3QgKnBtZCwgdW5zaWduZWQgbG9uZyBhZGRyLFxuIFx0cmV0dXJuIDA7XG4gfVxuIFxuLXN0YXRpYyBpbmxpbmUgZW51bSBwYWdlX3dhbGtfbG9jayBnZXRfd2Fsa19sb2NrKGVudW0gbWFkdmlzZV9sb2NrX21vZGUgbW9kZSlcbi17XG4tXHRzd2l0Y2ggKG1vZGUpIHtcbi1cdGNhc2UgTUFEVklTRV9WTUFfUkVBRF9MT0NLOlxuLVx0XHRyZXR1cm4gUEdXQUxLX1ZNQV9SRExPQ0tfVkVSSUZZO1xuLVx0Y2FzZSBNQURWSVNFX01NQVBfUkVBRF9MT0NLOlxuLVx0XHRyZXR1cm4gUEdXQUxLX1JETE9DSztcbi1cdGRlZmF1bHQ6XG4tXHRcdC8qIE90aGVyIG1vZGVzIGRvbid0IHJlcXVpcmUgZml4aW5nIHVwIHRoZSB3YWxrX2xvY2sgKi9cbi1cdFx0V0FSTl9PTl9PTkNFKDEpO1xuLVx0XHRyZXR1cm4gUEdXQUxLX1JETE9DSztcbi1cdH1cbi19XG4tXG4gc3RhdGljIGludCBtYWR2aXNlX2ZyZWVfc2luZ2xlX3ZtYShzdHJ1Y3QgbWFkdmlzZV9iZWhhdmlvciAqbWFkdl9iZWhhdmlvcilcbiB7XG4gXHRzdHJ1Y3QgbW1fc3RydWN0ICptbSA9IG1hZHZfYmVoYXZpb3ItXHUwMDNlbW07XG5AQCAtMTc0OCw4ICsxNzUyLDYgQEAgc3RhdGljIGVudW0gbWFkdmlzZV9sb2NrX21vZGUgZ2V0X2xvY2tfbW9kZShzdHJ1Y3QgbWFkdmlzZV9iZWhhdmlvciAqbWFkdl9iZWhhdmlcbiBcdHN3aXRjaCAobWFkdl9iZWhhdmlvci1cdTAwM2ViZWhhdmlvcikge1xuIFx0Y2FzZSBNQURWX1JFTU9WRTpcbiBcdGNhc2UgTUFEVl9XSUxMTkVFRDpcbi1cdGNhc2UgTUFEVl9DT0xEOlxuLVx0Y2FzZSBNQURWX1BBR0VPVVQ6XG4gXHRjYXNlIE1BRFZfUE9QVUxBVEVfUkVBRDpcbiBcdGNhc2UgTUFEVl9QT1BVTEFURV9XUklURTpcbiBcdGNhc2UgTUFEVl9DT0xMQVBTRTpcbkBAIC0xNzU5LDYgKzE3NjEsOCBAQCBzdGF0aWMgZW51bSBtYWR2aXNlX2xvY2tfbW9kZSBnZXRfbG9ja19tb2RlKHN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yICptYWR2X2JlaGF2aVxuIFx0Y2FzZSBNQURWX0RPTlRORUVEOlxuIFx0Y2FzZSBNQURWX0RPTlRORUVEX0xPQ0tFRDpcbiBcdGNhc2UgTUFEVl9GUkVFOlxuK1x0Y2FzZSBNQURWX0NPTEQ6XG4rXHRjYXNlIE1BRFZfUEFHRU9VVDpcbiBcdFx0cmV0dXJuIE1BRFZJU0VfVk1BX1JFQURfTE9DSztcbiBcdGRlZmF1bHQ6XG4gXHRcdHJldHVybiBNQURWSVNFX01NQVBfV1JJVEVfTE9DSztcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDAzOjU0OjM4Ljk1OTYwNzE5OVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYxNjM2NjYxNzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgTWFkdmlzZSBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0d2Vha3MgYG1tL21hZHZpc2UuY2AuIFRoZSBjb3JlIG9mIHRoZSBjaGFuZ2UgcmV2b2x2ZXMgYXJvdW5kIGhvdyBsb2NrcyBhcmUgaGFuZGxlZCBmb3IgYE1BRFZfQ09MRGAgYW5kIGBNQURWX1BBR0VPVVRgLiBJdCBsb29rcyBsaWtlIHRoZSBsb2NrIG1vZGUgaXMgYmVpbmcgc2hpZnRlZCBmcm9tIGBNQURWSVNFX01NQVBfUkVBRF9MT0NLYCB0byBgTUFEVklTRV9WTUFfUkVBRF9MT0NLYC4gVGhhdCdzIGEgc3VidGxlIGJ1dCBwb3RlbnRpYWxseSBzaWduaWZpY2FudCBjaGFuZ2UgaW4gaG93IHRoZXNlIG1hZHZpc2Ugb3BlcmF0aW9ucyBpbnRlcmFjdCB3aXRoIHRoZSBtZW1vcnkgbWFwLiBUaGUgY29kZSBpcyBhbHNvIGJlaW5nIHJlZmFjdG9yZWQsIG1vdmluZyB0aGUgYGdldF93YWxrX2xvY2tgIGZ1bmN0aW9uIGFyb3VuZCBmb3IgYmV0dGVyIHJlLXVzYWJpbGl0eSB3aXRoaW4gdGhlIGZpbGUsIHNwZWNpZmljYWxseSBmb3IgdGhlIGBtYWR2aXNlX2NvbGRfcGFnZV9yYW5nZWAgYW5kIGBtYWR2aXNlX3BhZ2VvdXRfcGFnZV9yYW5nZWAgZnVuY3Rpb25zLiAgVGhvc2UgZnVuY3Rpb25zIGFyZSBhbHNvIGJlaW5nIHVwZGF0ZWQgdG8gdXNlIGBnZXRfd2Fsa19sb2NrYCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBsb2NrIG1vZGUsIHJhdGhlciB0aGFuIHRoZSBoYXJkY29kZWQgYFBHV0FMS19SRExPQ0tgLlxuXG5GdW5jdGlvbmFsbHksIHRoaXMgaW1wYWN0cyBjcml0aWNhbCBtZW1vcnkgbWFuYWdlbWVudCBiZWhhdmlvci4gSXQgZGVmaW5pdGVseSB3YXJyYW50cyBhIGNsb3NlIGxvb2ssIGFuZCBmdXp6aW5nIHRoaXMgaXMgYSBtdXN0LiBJJ2xsIG5lZWQgdG8gZm9jdXMgb24gcG90ZW50aWFsIGFyZWFzIG9mIGNvbmNlcm4sIHBhcnRpY3VsYXJseSBhcm91bmQgdGhlc2Ugc3ltYm9sczogYG1hZHZpc2VfY29sZGAsIGBtYWR2aXNlX3BhZ2VvdXRgLCB0aGUgcmFuZ2UgZnVuY3Rpb25zIChgbWFkdmlzZV9jb2xkX3BhZ2VfcmFuZ2VgLCBgbWFkdmlzZV9wYWdlb3V0X3BhZ2VfcmFuZ2VgKSwgYW5kIGBtYWR2aXNlX2NvbGRfb3JfcGFnZW91dF9wdGVfcmFuZ2VgLlxuXG5Ob3csIGJlZm9yZSBJIGRpZyBpbiB0b28gZGVlcCwgSSBuZWVkIHRvIGNoZWNrIHRoZSBjb25maWd1cmF0aW9uIGxhbmRzY2FwZS4gV2hpbGUgYG1hZHZpc2VgIGl0c2VsZiBpcyBsaWtlbHkgYWx3YXlzIGVuYWJsZWQsIEknbGwgbmVlZCB0byB2ZXJpZnkgd2hldGhlciBgTUFEVl9DT0xEYCBhbmQgYE1BRFZfUEFHRU9VVGAgaGF2ZSBhbnkgZGVwZW5kZW5jaWVzIG9uIGZlYXR1cmVzIGxpa2UgYENPTkZJR19UUkFOU1BBUkVOVF9IVUdFUEFHRWAgb3Igc2ltcGx5IHRoZSBzdGFuZGFyZCBgQ09ORklHX0FEVklTRV9TWVNDQUxMU2AuICBJJ2xsIHNjYW4gYG1tL21hZHZpc2UuY2AgZm9yIHRob3NlIGRlZmluZXMsIHNwZWNpZmljYWxseSBsb29raW5nIGZvciBhbnkgY29uZGl0aW9uYWxzIGFyb3VuZCBgTUFEVl9DT0xEYCBhcyBhIHN0YXJ0aW5nIHBvaW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjY3LCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzU0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDM6NTQ6NDUuMTIzMjc1OTM5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNTY4NjQ0NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJNQURWX0NPTERcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibW0vbWFkdmlzZS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm1tL21hZHZpc2UuYz0xMzQzPXN0YXRpYyBpbnQgbWFkdmlzZV92bWFfYmVoYXZpb3Ioc3RydWN0IG1hZHZpc2VfYmVoYXZpb3IgKm1hZHZfYmVoYXZpb3IpXFxuLS1cXG5tbS9tYWR2aXNlLmMtMTM1OC1cXHRcXHRyZXR1cm4gbWFkdmlzZV93aWxsbmVlZChtYWR2X2JlaGF2aW9yKTtcXG5tbS9tYWR2aXNlLmM6MTM1OTpcXHRjYXNlIE1BRFZfQ09MRDpcXG5tbS9tYWR2aXNlLmMtMTM2MC1cXHRcXHRyZXR1cm4gbWFkdmlzZV9jb2xkKG1hZHZfYmVoYXZpb3IpO1xcbi0tXFxubW0vbWFkdmlzZS5jPTE1MjM9bWFkdmlzZV9iZWhhdmlvcl92YWxpZChpbnQgYmVoYXZpb3IpXFxuLS1cXG5tbS9tYWR2aXNlLmMtMTUzNS1cXHRjYXNlIE1BRFZfRlJFRTpcXG5tbS9tYWR2aXNlLmM6MTUzNjpcXHRjYXNlIE1BRFZfQ09MRDpcXG5tbS9tYWR2aXNlLmMtMTUzNy1cXHRjYXNlIE1BRFZfUEFHRU9VVDpcXG4tLVxcbm1tL21hZHZpc2UuYz0xNTY3PXN0YXRpYyBib29sIHByb2Nlc3NfbWFkdmlzZV9yZW1vdGVfdmFsaWQoaW50IGJlaGF2aW9yKVxcbi0tXFxubW0vbWFkdmlzZS5jLTE1NjktXFx0c3dpdGNoIChiZWhhdmlvcikge1xcbm1tL21hZHZpc2UuYzoxNTcwOlxcdGNhc2UgTUFEVl9DT0xEOlxcbm1tL21hZHZpc2UuYy0xNTcxLVxcdGNhc2UgTUFEVl9QQUdFT1VUOlxcbi0tXFxubW0vbWFkdmlzZS5jPTE3NDc9c3RhdGljIGVudW0gbWFkdmlzZV9sb2NrX21vZGUgZ2V0X2xvY2tfbW9kZShzdHJ1Y3QgbWFkdmlzZV9iZWhhdmlvciAqbWFkdl9iZWhhdmlvcilcXG4tLVxcbm1tL21hZHZpc2UuYy0xNzYzLVxcdGNhc2UgTUFEVl9GUkVFOlxcbm1tL21hZHZpc2UuYzoxNzY0OlxcdGNhc2UgTUFEVl9DT0xEOlxcbm1tL21hZHZpc2UuYy0xNzY1LVxcdGNhc2UgTUFEVl9QQUdFT1VUOlxcbi0tXFxubW0vbWFkdmlzZS5jPTE4OTI9c3RhdGljIGludCBtYWR2aXNlX2RvX2JlaGF2aW9yKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHNpemVfdCBsZW5faW4sXFxuLS1cXG5tbS9tYWR2aXNlLmMtMTk2NC0gKiAgTUFEVl9ET0RVTVAgLSBjYW5jZWwgTUFEVl9ET05URFVNUDogbm8gbG9uZ2VyIGV4Y2x1ZGUgZnJvbSBjb3JlIGR1bXAuXFxubW0vbWFkdmlzZS5jOjE5NjU6ICogIE1BRFZfQ09MRCAtIHRoZSBhcHBsaWNhdGlvbiBpcyBub3QgZXhwZWN0ZWQgdG8gdXNlIHRoaXMgbWVtb3J5IHNvb24sXFxubW0vbWFkdmlzZS5jLTE5NjYtICpcXHRcXHRkZWFjdGl2YXRlIHBhZ2VzIGluIHRoaXMgcmFuZ2Ugc28gdGhhdCB0aGV5IGNhbiBiZSByZWNsYWltZWRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDM6NTQ6NDUuMjI4OTY4MzAxWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDc5MzgzNTkxMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE1BRFZfQ09MRCBhbmQgTUFEVl9QQUdFT1VUIENoYW5nZXMqKlxuXG5BbHJpZ2h0LCBsZXQncyBkaXZlIGludG8gdGhlc2UgbW9kaWZpY2F0aW9ucy4gVGhlIGNvZGUgY2hhbmdlcyBhcmUgYWxsIHdpdGhpbiBgbW0vbWFkdmlzZS5jYCwgc3BlY2lmaWNhbGx5IGZvY3VzaW5nIG9uIGhvdyB0aGUgc3lzdGVtIGhhbmRsZXMgYE1BRFZfQ09MRGAgYW5kIGBNQURWX1BBR0VPVVRgLiBJdCBsb29rcyBsaWtlIHRoZSBjb3JlIGZ1bmN0aW9ucyBiZWluZyB0b3VjaGVkIGFyZSBgbWFkdmlzZV9jb2xkYCBhbmQgYG1hZHZpc2VfcGFnZW91dGAsIHdoaWNoIGluIHR1cm4gY2FsbCB0aGUgbW9yZSBncmFudWxhciBgbWFkdmlzZV9jb2xkX3BhZ2VfcmFuZ2VgIGFuZCBgbWFkdmlzZV9wYWdlb3V0X3BhZ2VfcmFuZ2VgLiBBbmQgSSBzZWUgdGhhdCBgZ2V0X2xvY2tfbW9kZWAgaXMgYWxzbyBnZXR0aW5nIGFkanVzdGVkIHRvIGhhbmRsZSB0aGUgbG9jayBtb2RlcyBhc3NvY2lhdGVkIHdpdGggdGhlc2UgbmV3IG1hZHZpc2UgZmxhZ3MuXG5cbk5vdywgYmVmb3JlIEkgZGlnIGRlZXBlciBpbnRvIHRoZSBncmFudWxhciBmdW5jdGlvbnMsIEknbGwgcXVpY2tseSBzZWUgaWYgdGhlcmUgYXJlIGFueSBuZXcgY29uZmlndXJhdGlvbiBvcHRpb25zIGludHJvZHVjZWQgc3BlY2lmaWNhbGx5IGZvciBgTUFEVl9DT0xEYCBvciBgTUFEVl9QQUdFT1VUYC4gVGhlc2UgbWFkdmlzZSBjYWxscyBhcmUgcGFydCBvZiB0aGUgYG1hZHZpc2VgIHN5c2NhbGwgc28gdGhhdCBtZWFucyBgQ09ORklHX0FEVklTRV9TWVNDQUxMU2Agc2hvdWxkIGJlIHRoZSBtYWluIGNvbmZpZyB0byB3b3JyeSBhYm91dC4gSSdtIG5vdCBzZWVpbmcgYW55dGhpbmcgdGhhdCBzdGFuZHMgb3V0LCBhbmQgaXQgbWFrZXMgc2Vuc2U7IGBtYWR2aXNlYCBpcyBhIHByZXR0eSBmdW5kYW1lbnRhbCBmZWF0dXJlLCBzbyBJJ20gbm90IGV4cGVjdGluZyBhbnl0aGluZyB0b28gdW51c3VhbCBvbiB0aGUgY29uZmlnIHNpZGUuXG5cbldpdGggdGhhdCBjbGVhcmVkLCB0aW1lIHRvIGdldCBpbnRvIHRoZSBkZXRhaWxzIG9mIHdoYXQncyBoYXBwZW5pbmcgd2l0aGluIGBtYWR2aXNlX2NvbGRfcGFnZV9yYW5nZWAgYW5kIGBtYWR2aXNlX3BhZ2VvdXRfcGFnZV9yYW5nZWAgaW4gYG1tL21hZHZpc2UuY2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ2NDQsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDM6NTQ6NTAuMDIyODA2ODAyWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExMzE5OTM4MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtYWR2aXNlX2NvbGRfcGFnZV9yYW5nZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJtbS9tYWR2aXNlLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibW0vbWFkdmlzZS5jPTU2OT1zdGF0aWMgaW5saW5lIGVudW0gcGFnZV93YWxrX2xvY2sgZ2V0X3dhbGtfbG9jayhlbnVtIG1hZHZpc2VfbG9ja19tb2RlIG1vZGUpXFxuLS1cXG5tbS9tYWR2aXNlLmMtNTgyLVxcbm1tL21hZHZpc2UuYzo1ODM6c3RhdGljIHZvaWQgbWFkdmlzZV9jb2xkX3BhZ2VfcmFuZ2Uoc3RydWN0IG1tdV9nYXRoZXIgKnRsYixcXG5tbS9tYWR2aXNlLmMtNTg0LVxcdFxcdHN0cnVjdCBtYWR2aXNlX2JlaGF2aW9yICptYWR2X2JlaGF2aW9yKVxcbi0tXFxubW0vbWFkdmlzZS5jPTYwOT1zdGF0aWMgbG9uZyBtYWR2aXNlX2NvbGQoc3RydWN0IG1hZHZpc2VfYmVoYXZpb3IgKm1hZHZfYmVoYXZpb3IpXFxuLS1cXG5tbS9tYWR2aXNlLmMtNjE4LVxcdHRsYl9nYXRoZXJfbW11KFxcdTAwMjZ0bGIsIG1hZHZfYmVoYXZpb3ItXFx1MDAzZW1tKTtcXG5tbS9tYWR2aXNlLmM6NjE5OlxcdG1hZHZpc2VfY29sZF9wYWdlX3JhbmdlKFxcdTAwMjZ0bGIsIG1hZHZfYmVoYXZpb3IpO1xcbm1tL21hZHZpc2UuYy02MjAtXFx0dGxiX2ZpbmlzaF9tbXUoXFx1MDAyNnRsYik7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDAzOjU0OjUwLjEzNjAxMzcwNVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUxMTAxODgyMDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBMb2NraW5nIENoYW5nZSBpbiBNQURWX0NPTEQgYW5kIE1BRFZfUEFHRU9VVCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGltbWVkaWF0ZWx5LCB0aGUgY29yZSBvZiB0aGUgbWF0dGVyIGp1bXBzIG91dC4gVGhpcyBpcyBhIHByZXR0eSBzaWduaWZpY2FudCwgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gdGhlIG1lbW9yeSBtYW5hZ2VtZW50IHN1YnN5c3RlbS4gVGhleSdyZSBhbHRlcmluZyB0aGUgbG9ja2luZyBtZWNoYW5pc20gZm9yIGBNQURWX0NPTERgIGFuZCBgTUFEVl9QQUdFT1VUYCBjYWxscy4gU3BlY2lmaWNhbGx5LCB3ZSdyZSB0cmFuc2l0aW9uaW5nIGZyb20gdGhlIG1vcmUgZ2VuZXJhbCBgTUFEVklTRV9NTUFQX1JFQURfTE9DS2AgdG8gdGhlIG1vcmUgdGFyZ2V0ZWQgYE1BRFZJU0VfVk1BX1JFQURfTE9DS2AuXG5cblRoaXMgaXMgaW1wb3J0YW50IGJlY2F1c2UgY2hhbmdpbmcgbG9ja2luZyBwcmltaXRpdmVzIGhhcyB0aGUgcG90ZW50aWFsIHRvIGludHJvZHVjZSBzdWJ0bGUgcmFjZSBjb25kaXRpb25zLCBkZWFkbG9ja3MsIG9yIHVuaW50ZW5kZWQgcGVyZm9ybWFuY2UgaW1wYWN0cy4gTXkgZm9jdXMgbmVlZHMgdG8gYmUgb24gZW5zdXJpbmcgdGhlIGNvbnNpc3RlbmN5IGFuZCBpbnRlZ3JpdHkgb2YgdmlydHVhbCBtZW1vcnkgbWFuYWdlbWVudC4gSSB3aWxsIHBheSBjYXJlZnVsIGF0dGVudGlvbiB0byB0aGUgc3ltYm9scyBsaWtlIGBtYWR2aXNlX2NvbGRgLCBgbWFkdmlzZV9wYWdlb3V0YCwgYG1hZHZpc2VfY29sZF9wYWdlX3JhbmdlYCwgYW5kIGBtYWR2aXNlX3BhZ2VvdXRfcGFnZV9yYW5nZWAgdGhyb3VnaG91dCB0aGUgcmV2aWV3LlxuXG5UaGUgZW5hYmxpbmcgY29uZmlndXJhdGlvbiBpc24ndCBhbnl0aGluZyB1bnVzdWFsLCBpdCBzaG91bGQgYmUgZW5hYmxlZCBpZiB3ZSBhcmUgcnVubmluZyB0aGUgc3RhbmRhcmQgYENPTkZJR19BRFZJU0VfU1lTQ0FMTFNgIGNvbmZpZ3VyYXRpb25zLiBTbywgaXQncyByZWFsbHkgdGhlIGxvY2tpbmcgY2hhbmdlIGl0c2VsZiB0aGF0IEknbSBwcmltYXJpbHkgY29uY2VybmVkIHdpdGgsIGFuZCB3aWxsIGhhdmUgdG8gZnV6eiB0aG9zZSBzcGVjaWZpYyBjYWxscy4gSSdsbCBuZWVkIHRvIGRldmVsb3AgYSBmdXp6aW5nIHN0cmF0ZWd5IHRoYXQgdGhvcm91Z2hseSB0ZXN0cyB0aGlzIGNoYW5nZSB1bmRlciB2YXJpb3VzIG1lbW9yeSB1c2FnZSBzY2VuYXJpb3MgYW5kIGNvbmN1cnJlbmN5IGxvYWRzLiBJIG5lZWQgdG8gYmUgc3VyZSB0aGF0IHRoaXMgZG9lc24ndCBjcmVhdGUgYW55IHJlZ3Jlc3Npb25zIGluIGV4aXN0aW5nIHdvcmtsb2Fkcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTQ2MCwiT3V0cHV0VG9rZW5zIjoxNDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDM6NTQ6NTUuMjQ2MjAzOTI1WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNzE4OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm1hZHZpc2VfY29sZFwiLFxuICAgIFwibWFkdmlzZV9wYWdlb3V0XCIsXG4gICAgXCJtYWR2aXNlX2NvbGRfcGFnZV9yYW5nZVwiLFxuICAgIFwibWFkdmlzZV9wYWdlb3V0X3BhZ2VfcmFuZ2VcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBjaGFuZ2VzIHRoZSBsb2NraW5nIG1vZGUgZm9yIE1BRFZfQ09MRCBhbmQgTUFEVl9QQUdFT1VUIG1hZHZpc2UgYmVoYXZpb3JzIGZyb20gTUFEVklTRV9NTUFQX1JFQURfTE9DSyB0byBNQURWSVNFX1ZNQV9SRUFEX0xPQ0suIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byBjb3JlIG1lbW9yeSBtYW5hZ2VtZW50IGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyBsb2NraW5nIGlzc3VlcyBvciByZWdyZXNzaW9ucyBhcmUgaW50cm9kdWNlZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtYWR2aXNlX2NvbGRcIixcbiAgICBcIm1hZHZpc2VfcGFnZW91dFwiLFxuICAgIFwibWFkdmlzZV9jb2xkX3BhZ2VfcmFuZ2VcIixcbiAgICBcIm1hZHZpc2VfcGFnZW91dF9wYWdlX3JhbmdlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggY2hhbmdlcyB0aGUgbG9ja2luZyBtb2RlIGZvciBNQURWX0NPTEQgYW5kIE1BRFZfUEFHRU9VVCBtYWR2aXNlIGJlaGF2aW9ycyBmcm9tIE1BRFZJU0VfTU1BUF9SRUFEX0xPQ0sgdG8gTUFEVklTRV9WTUFfUkVBRF9MT0NLLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gY29yZSBtZW1vcnkgbWFuYWdlbWVudCBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgbm8gbG9ja2luZyBpc3N1ZXMgb3IgcmVncmVzc2lvbnMgYXJlIGludHJvZHVjZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowpszkm[1] Phase: Succeeded StartedAt: 2026-07-20 03:56:07 +0000 UTC FinishedAt: 2026-07-20 03:56:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpszkm[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-20 03:56:07 +0000 UTC FinishedAt: 2026-07-20 03:56:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpszkm[2] Phase: Succeeded StartedAt: 2026-07-20 03:56:07 +0000 UTC FinishedAt: 2026-07-20 08:20:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpszkm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-20 03:56:07 +0000 UTC FinishedAt: 2026-07-20 08:20:45 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},"patched":{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowpszkm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-20 03:56:07 +0000 UTC FinishedAt: 2026-07-20 03:56:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpszkm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-20 03:56:07 +0000 UTC FinishedAt: 2026-07-20 03:56:19 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},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-workflowpszkm/series-workflowpszkm-convert-artifact-2493909484/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpszkm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-20 03:56:29 +0000 UTC FinishedAt: 2026-07-20 04:32:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpszkm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-20 03:56:29 +0000 UTC FinishedAt: 2026-07-20 04:32:50 +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:*1119d2e7-bc37-4625-9b63-04a1096a3286,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-workflowpszkm/series-workflowpszkm-convert-artifact-2493909484/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": "833e1939-4671-4e3e-a6fa-86451f744fe9", "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-workflowpszkm/series-workflowpszkm-build-action-1690530842/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpszkm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-20 03:56:29 +0000 UTC FinishedAt: 2026-07-20 04:29:19 +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:*1119d2e7-bc37-4625-9b63-04a1096a3286,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-workflowpszkm/series-workflowpszkm-convert-artifact-2493909484/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": "833e1939-4671-4e3e-a6fa-86451f744fe9", "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-workflowpszkm/series-workflowpszkm-build-action-1690530842/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpszkm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-20 04:32:50 +0000 UTC FinishedAt: 2026-07-20 04:32:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpszkm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-20 04:32:50 +0000 UTC FinishedAt: 2026-07-20 04:32:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpszkm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-20 04:32:50 +0000 UTC FinishedAt: 2026-07-20 04:33:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpszkm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-20 04:32:50 +0000 UTC FinishedAt: 2026-07-20 04:32:57 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},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-workflowpszkm/series-workflowpszkm-convert-artifact-1959614379/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpszkm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-20 04:33:00 +0000 UTC FinishedAt: 2026-07-20 04:35:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpszkm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-20 04:33:00 +0000 UTC FinishedAt: 2026-07-20 04:35:04 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*833e1939-4671-4e3e-a6fa-86451f744fe9,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-workflowpszkm/series-workflowpszkm-build-action-1690530842/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-workflowpszkm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-20 04:35:14 +0000 UTC FinishedAt: 2026-07-20 04:35:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpszkm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-20 04:35:14 +0000 UTC FinishedAt: 2026-07-20 04:35:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpszkm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-20 04:35:14 +0000 UTC FinishedAt: 2026-07-20 05:16:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpszkm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-20 04:35:14 +0000 UTC FinishedAt: 2026-07-20 05:16:01 +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:*1119d2e7-bc37-4625-9b63-04a1096a3286,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-workflowpszkm/series-workflowpszkm-convert-artifact-1959614379/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": "5759c64d-8090-4ac6-b002-db48a49abdc4", "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-workflowpszkm/series-workflowpszkm-build-action-2511800271/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpszkm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-20 04:35:14 +0000 UTC FinishedAt: 2026-07-20 05:15:51 +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:*1119d2e7-bc37-4625-9b63-04a1096a3286,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-workflowpszkm/series-workflowpszkm-convert-artifact-1959614379/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": "5759c64d-8090-4ac6-b002-db48a49abdc4", "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-workflowpszkm/series-workflowpszkm-build-action-2511800271/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpszkm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-20 05:16:01 +0000 UTC FinishedAt: 2026-07-20 05:16:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpszkm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-20 05:16:01 +0000 UTC FinishedAt: 2026-07-20 05:16:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpszkm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-20 05:16:01 +0000 UTC FinishedAt: 2026-07-20 05:18:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpszkm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-20 05:16:01 +0000 UTC FinishedAt: 2026-07-20 05:18:09 +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:*5759c64d-8090-4ac6-b002-db48a49abdc4,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-workflowpszkm/series-workflowpszkm-build-action-2511800271/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-workflowpszkm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-20 05:18:19 +0000 UTC FinishedAt: 2026-07-20 08:20:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpszkm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-20 05:18:19 +0000 UTC FinishedAt: 2026-07-20 08:20:45 +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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},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:*833e1939-4671-4e3e-a6fa-86451f744fe9,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*5759c64d-8090-4ac6-b002-db48a49abdc4,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-workflowpszkm/series-workflowpszkm-build-action-1690530842/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-workflowpszkm/series-workflowpszkm-build-action-2511800271/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowpszkm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-20 05:18:19 +0000 UTC FinishedAt: 2026-07-20 05:18:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpszkm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-20 05:18:19 +0000 UTC FinishedAt: 2026-07-20 05:18:25 +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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},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-workflowpszkm/series-workflowpszkm-convert-artifact-1362986692/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpszkm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-20 05:18:19 +0000 UTC FinishedAt: 2026-07-20 05:18:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpszkm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-20 05:18:19 +0000 UTC FinishedAt: 2026-07-20 05:18:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpszkm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-20 05:18:19 +0000 UTC FinishedAt: 2026-07-20 05:18:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpszkm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-20 05:18:29 +0000 UTC FinishedAt: 2026-07-20 08:20:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpszkm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["madvise_cold","madvise_pageout","madvise_cold_page_range","madvise_pageout_page_range"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"3d9855d114f0955d590420f5670152c1099c1638","config_name":"upstream-apparmor-kasan.config","series_id":"4c4cdcc0-36fe-41fd-8876-5a4c750b191b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-20 05:18:29 +0000 UTC FinishedAt: 2026-07-20 08:20:35 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*833e1939-4671-4e3e-a6fa-86451f744fe9,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*5759c64d-8090-4ac6-b002-db48a49abdc4,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-workflowpszkm/series-workflowpszkm-build-action-1690530842/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-workflowpszkm/series-workflowpszkm-build-action-2511800271/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-workflowpszkm/series-workflowpszkm-convert-artifact-1362986692/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,}