Name: series-workflowbqr9r Phase: Succeeded StartedAt: 2026-07-22 07:24:59 +0000 UTC FinishedAt: 2026-07-22 12:38:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbqr9r[0] Phase: Succeeded StartedAt: 2026-07-22 07:24:59 +0000 UTC FinishedAt: 2026-07-22 07:55:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbqr9r[0].run-triage Phase: Succeeded StartedAt: 2026-07-22 07:24:59 +0000 UTC FinishedAt: 2026-07-22 07:55:35 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "a1ea25f7f6e9c4c833b3960375d15351585a03f2", "config_name": "upstream-apparmor-kasan.config", "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "a1ea25f7f6e9c4c833b3960375d15351585a03f2", "config_name": "upstream-apparmor-kasan.config", "series_id": "3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "__cpa_collapse_large_pages", "split_large_page", "__split_large_page" ], "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+CgkJCTx0ZD4yMDI2LzA3LzIyIDA3OjU0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7X19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXMmIzM0OywKICAgICYjMzQ7c3BsaXRfbGFyZ2VfcGFnZSYjMzQ7LAogICAgJiMzNDtfX3NwbGl0X2xhcmdlX3BhZ2UmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgY29yZSB4ODYgcGFnZSBhdHRyaWJ1dGUgKENQQSkgbWFuaXB1bGF0aW9uIGZ1bmN0aW9ucyB0byBjb3JyZWN0bHkgZnJlZSBwYWdlIHRhYmxlcyB1c2luZyBwdGVfZnJlZV9rZXJuZWwgYW5kIHBhZ2V0YWJsZV9kdG9yX2ZyZWUgaW5zdGVhZCBvZiBwYWdldGFibGVfZnJlZS4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgdmlhIHNldF9tZW1vcnlfKiBBUElzIChlLmcuLCB1c2VkIGJ5IEJQRiBKSVQsIG1vZHVsZSBsb2FkaW5nKSBhbmQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgbm8gbWVtb3J5IGxlYWtzIG9yIHVzZS1hZnRlci1mcmVlIGlzc3VlcyBvY2N1ciBkdXJpbmcgbGFyZ2UgcGFnZSBzcGxpdHRpbmcgb3IgY29sbGFwc2luZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwNzo1NDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDc3MWQ4YzdjODk5ODg0OTY0Njg4ODUxZWIwZWY4NThmZjc2OWNmNzdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAyMiAwNzo1NDoyOCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jIGIvYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuY1xuaW5kZXggMzAxZmI5ZTc3ZDkxYmEuLjA3ODY4OWFhNzIwNmY4IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuY1xuQEAgLTQzOSw3ICYjNDM7NDM5LDE1IEBAIHN0YXRpYyB2b2lkIF9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzKHN0cnVjdCBjcGFfZGF0YSAqY3BhKVxuIFxuIFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHB0ZGVzYywgdG1wLCBcdTAwMjZwZ3RhYmxlcywgcHRfbGlzdCkge1xuIFx0XHRsaXN0X2RlbChcdTAwMjZwdGRlc2MtXHUwMDNlcHRfbGlzdCk7XG4tXHRcdHBhZ2V0YWJsZV9mcmVlKHB0ZGVzYyk7XG4mIzQzO1x0XHQvKlxuJiM0MztcdFx0ICogT25seSBlYXJseSBhbGxvYyYjMzk7ZCBkaXJlY3QgbWFwIHNob3VsZCBub3QgYmUgZmxhZ2dlZCBQR190YWJsZVxuJiM0MztcdFx0ICogaGVyZSBhbmQgdGhvc2Ugc2hvdWxkbiYjMzk7dCBiZSBjb2xsYXBzZWQuIEhvd2V2ZXIgYmUgYWJ1bmRhbnRseVxuJiM0MztcdFx0ICogY2F1dGlvdXMgYW5kIGhhbmRsZSB0aGUgIVBHX3RhYmxlIGNhc2UgdG9vLlxuJiM0MztcdFx0ICovXG4mIzQzO1x0XHRpZiAoUGFnZVRhYmxlKChwdGRlc2NfcGFnZShwdGRlc2MpKSkpXG4mIzQzO1x0XHRcdHBhZ2V0YWJsZV9kdG9yX2ZyZWUocHRkZXNjKTtcbiYjNDM7XHRcdGVsc2VcbiYjNDM7XHRcdFx0cGFnZXRhYmxlX2ZyZWUocHRkZXNjKTtcbiBcdH1cbiB9XG4gXG5AQCAtMTEzOCwxMSAmIzQzOzExNDYsMTAgQEAgc3RhdGljIHZvaWQgc3BsaXRfc2V0X3B0ZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKnB0ZSwgdW5zaWduZWQgbG9uZyBwZm4sXG4gXG4gc3RhdGljIGludFxuIF9fc3BsaXRfbGFyZ2VfcGFnZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKmtwdGUsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcyxcbi1cdFx0ICAgc3RydWN0IHB0ZGVzYyAqcHRkZXNjKVxuJiM0MztcdFx0ICAgcHRlX3QgKnBiYXNlKVxuIHtcbiBcdHVuc2lnbmVkIGxvbmcgbHBhZGRyLCBscGluYywgcmVmX3BmbiwgcGZuLCBwZm5pbmMgPSAxO1xuLVx0c3RydWN0IHBhZ2UgKmJhc2UgPSBwdGRlc2NfcGFnZShwdGRlc2MpO1xuLVx0cHRlX3QgKnBiYXNlID0gKHB0ZV90ICopcGFnZV9hZGRyZXNzKGJhc2UpO1xuJiM0MztcdHN0cnVjdCBwYWdlICpiYXNlID0gdmlydF90b19wYWdlKHBiYXNlKTtcbiBcdHVuc2lnbmVkIGludCBpLCBsZXZlbDtcbiBcdHBncHJvdF90IHJlZl9wcm90O1xuIFx0Ym9vbCBueCwgcnc7XG5AQCAtMTI0NiwxOCAmIzQzOzEyNTMsMTggQEAgX19zcGxpdF9sYXJnZV9wYWdlKHN0cnVjdCBjcGFfZGF0YSAqY3BhLCBwdGVfdCAqa3B0ZSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLFxuIHN0YXRpYyBpbnQgc3BsaXRfbGFyZ2VfcGFnZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKmtwdGUsXG4gXHRcdFx0ICAgIHVuc2lnbmVkIGxvbmcgYWRkcmVzcylcbiB7XG4tXHRzdHJ1Y3QgcHRkZXNjICpwdGRlc2M7XG4mIzQzO1x0cHRlX3QgKnB0ZTtcbiBcbiBcdGlmICghZGVidWdfcGFnZWFsbG9jX2VuYWJsZWQoKSlcbiBcdFx0c3Bpbl91bmxvY2soXHUwMDI2Y3BhX2xvY2spO1xuLVx0cHRkZXNjID0gcGFnZXRhYmxlX2FsbG9jKEdGUF9LRVJORUwsIDApO1xuJiM0MztcdHB0ZSA9IHB0ZV9hbGxvY19vbmVfa2VybmVsKFx1MDAyNmluaXRfbW0pO1xuIFx0aWYgKCFkZWJ1Z19wYWdlYWxsb2NfZW5hYmxlZCgpKVxuIFx0XHRzcGluX2xvY2soXHUwMDI2Y3BhX2xvY2spO1xuLVx0aWYgKCFwdGRlc2MpXG4mIzQzO1x0aWYgKCFwdGUpXG4gXHRcdHJldHVybiAtRU5PTUVNO1xuIFxuLVx0aWYgKF9fc3BsaXRfbGFyZ2VfcGFnZShjcGEsIGtwdGUsIGFkZHJlc3MsIHB0ZGVzYykpXG4tXHRcdHBhZ2V0YWJsZV9mcmVlKHB0ZGVzYyk7XG4mIzQzO1x0aWYgKF9fc3BsaXRfbGFyZ2VfcGFnZShjcGEsIGtwdGUsIGFkZHJlc3MsIHB0ZSkpXG4mIzQzO1x0XHRwdGVfZnJlZV9rZXJuZWwoXHUwMDI2aW5pdF9tbSwgcHRlKTtcbiBcbiBcdHJldHVybiAwO1xuIH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwNzo1NDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlcyYjMzQ7LAogICAgJiMzNDtzcGxpdF9sYXJnZV9wYWdlJiMzNDssCiAgICAmIzM0O19fc3BsaXRfbGFyZ2VfcGFnZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBjb3JlIHg4NiBwYWdlIGF0dHJpYnV0ZSAoQ1BBKSBtYW5pcHVsYXRpb24gZnVuY3Rpb25zIHRvIGNvcnJlY3RseSBmcmVlIHBhZ2UgdGFibGVzIHVzaW5nIHB0ZV9mcmVlX2tlcm5lbCBhbmQgcGFnZXRhYmxlX2R0b3JfZnJlZSBpbnN0ZWFkIG9mIHBhZ2V0YWJsZV9mcmVlLiBUaGVzZSBmdW5jdGlvbnMgYXJlIHJlYWNoYWJsZSB2aWEgc2V0X21lbW9yeV8qIEFQSXMgKGUuZy4sIHVzZWQgYnkgQlBGIEpJVCwgbW9kdWxlIGxvYWRpbmcpIGFuZCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyBtZW1vcnkgbGVha3Mgb3IgdXNlLWFmdGVyLWZyZWUgaXNzdWVzIG9jY3VyIGR1cmluZyBsYXJnZSBwYWdlIHNwbGl0dGluZyBvciBjb2xsYXBzaW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA3NzFkOGM3Yzg5OTg4NDk2NDY4ODg1MWViMGVmODU4ZmY3NjljZjc3CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFdlZCBKdWwgMjIgMDc6NTQ6MjggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jIGIvYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYwppbmRleCAzMDFmYjllNzdkOTFiYS4uMDc4Njg5YWE3MjA2ZjggMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYwpAQCAtNDM5LDcgJiM0Mzs0MzksMTUgQEAgc3RhdGljIHZvaWQgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXMoc3RydWN0IGNwYV9kYXRhICpjcGEpCiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocHRkZXNjLCB0bXAsICZhbXA7cGd0YWJsZXMsIHB0X2xpc3QpIHsKIAkJbGlzdF9kZWwoJmFtcDtwdGRlc2MtJmd0O3B0X2xpc3QpOwotCQlwYWdldGFibGVfZnJlZShwdGRlc2MpOwomIzQzOwkJLyoKJiM0MzsJCSAqIE9ubHkgZWFybHkgYWxsb2MmIzM5O2QgZGlyZWN0IG1hcCBzaG91bGQgbm90IGJlIGZsYWdnZWQgUEdfdGFibGUKJiM0MzsJCSAqIGhlcmUgYW5kIHRob3NlIHNob3VsZG4mIzM5O3QgYmUgY29sbGFwc2VkLiBIb3dldmVyIGJlIGFidW5kYW50bHkKJiM0MzsJCSAqIGNhdXRpb3VzIGFuZCBoYW5kbGUgdGhlICFQR190YWJsZSBjYXNlIHRvby4KJiM0MzsJCSAqLwomIzQzOwkJaWYgKFBhZ2VUYWJsZSgocHRkZXNjX3BhZ2UocHRkZXNjKSkpKQomIzQzOwkJCXBhZ2V0YWJsZV9kdG9yX2ZyZWUocHRkZXNjKTsKJiM0MzsJCWVsc2UKJiM0MzsJCQlwYWdldGFibGVfZnJlZShwdGRlc2MpOwogCX0KIH0KIApAQCAtMTEzOCwxMSAmIzQzOzExNDYsMTAgQEAgc3RhdGljIHZvaWQgc3BsaXRfc2V0X3B0ZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKnB0ZSwgdW5zaWduZWQgbG9uZyBwZm4sCiAKIHN0YXRpYyBpbnQKIF9fc3BsaXRfbGFyZ2VfcGFnZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKmtwdGUsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKLQkJICAgc3RydWN0IHB0ZGVzYyAqcHRkZXNjKQomIzQzOwkJICAgcHRlX3QgKnBiYXNlKQogewogCXVuc2lnbmVkIGxvbmcgbHBhZGRyLCBscGluYywgcmVmX3BmbiwgcGZuLCBwZm5pbmMgPSAxOwotCXN0cnVjdCBwYWdlICpiYXNlID0gcHRkZXNjX3BhZ2UocHRkZXNjKTsKLQlwdGVfdCAqcGJhc2UgPSAocHRlX3QgKilwYWdlX2FkZHJlc3MoYmFzZSk7CiYjNDM7CXN0cnVjdCBwYWdlICpiYXNlID0gdmlydF90b19wYWdlKHBiYXNlKTsKIAl1bnNpZ25lZCBpbnQgaSwgbGV2ZWw7CiAJcGdwcm90X3QgcmVmX3Byb3Q7CiAJYm9vbCBueCwgcnc7CkBAIC0xMjQ2LDE4ICYjNDM7MTI1MywxOCBAQCBfX3NwbGl0X2xhcmdlX3BhZ2Uoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICprcHRlLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsCiBzdGF0aWMgaW50IHNwbGl0X2xhcmdlX3BhZ2Uoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICprcHRlLAogCQkJICAgIHVuc2lnbmVkIGxvbmcgYWRkcmVzcykKIHsKLQlzdHJ1Y3QgcHRkZXNjICpwdGRlc2M7CiYjNDM7CXB0ZV90ICpwdGU7CiAKIAlpZiAoIWRlYnVnX3BhZ2VhbGxvY19lbmFibGVkKCkpCiAJCXNwaW5fdW5sb2NrKCZhbXA7Y3BhX2xvY2spOwotCXB0ZGVzYyA9IHBhZ2V0YWJsZV9hbGxvYyhHRlBfS0VSTkVMLCAwKTsKJiM0MzsJcHRlID0gcHRlX2FsbG9jX29uZV9rZXJuZWwoJmFtcDtpbml0X21tKTsKIAlpZiAoIWRlYnVnX3BhZ2VhbGxvY19lbmFibGVkKCkpCiAJCXNwaW5fbG9jaygmYW1wO2NwYV9sb2NrKTsKLQlpZiAoIXB0ZGVzYykKJiM0MzsJaWYgKCFwdGUpCiAJCXJldHVybiAtRU5PTUVNOwogCi0JaWYgKF9fc3BsaXRfbGFyZ2VfcGFnZShjcGEsIGtwdGUsIGFkZHJlc3MsIHB0ZGVzYykpCi0JCXBhZ2V0YWJsZV9mcmVlKHB0ZGVzYyk7CiYjNDM7CWlmIChfX3NwbGl0X2xhcmdlX3BhZ2UoY3BhLCBrcHRlLCBhZGRyZXNzLCBwdGUpKQomIzQzOwkJcHRlX2ZyZWVfa2VybmVsKCZhbXA7aW5pdF9tbSwgcHRlKTsKIAogCXJldHVybiAwOwogfQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwNzo1NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTE0CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMzIzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFBhZ2UgVGFibGUgT3B0aW1pemF0aW9uIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgZGlnZ2luZyBpbnRvIGBhcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jYC4gSW1tZWRpYXRlbHksIG15IHNwaWRleSBzZW5zZXMgYXJlIHRpbmdsaW5nIGJlY2F1c2UgdGhhdCBmaWxlIGhhbmRsZXMgbWVtb3J5IGF0dHJpYnV0ZSBjaGFuZ2VzIG9uIHg4NiwgY3JpdGljYWwgc3R1ZmYuIEkgc2VlIGl0JiMzOTtzIG1vZGlmeWluZyBhIGZldyBrZXkgZnVuY3Rpb25zOiBgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXNgLCBgc3BsaXRfbGFyZ2VfcGFnZWAsIGFuZCBgX19zcGxpdF9sYXJnZV9wYWdlYC4KCkxvb2tpbmcgY2xvc2VyLCB0aGUgZmlyc3QgY2hhbmdlIGluIGBfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlc2Agc3VnZ2VzdHMgYSBjb25kaXRpb25hbCBjaGVjayBmb3IgdGhlIHBhZ2UgdGFibGUgZGVzY3JpcHRvciB3aXRoIGBwYWdldGFibGVfZHRvcl9mcmVlYCBiZWluZyB1c2VkIGFzIGEgcmVwbGFjZW1lbnQgdG8gYHBhZ2V0YWJsZV9mcmVlYC4gVGhlbiwgaXQgbG9va3MgbGlrZSBgc3BsaXRfbGFyZ2VfcGFnZWAgaXMgYmVpbmcgdXBkYXRlZCB0byB1c2UgYHB0ZV9hbGxvY19vbmVfa2VybmVsYCBpbnN0ZWFkIG9mIGBwYWdldGFibGVfYWxsb2NgLCB3aGljaCBpcyBhIGNoYW5nZSBJIGNhbiBpbmZlciwgYXMgd2VsbCBhcyBgcHRlX2ZyZWVfa2VybmVsYCByZXBsYWNpbmcgYHBhZ2V0YWJsZV9mcmVlYC4gQW5kIGZpbmFsbHkgYF9fc3BsaXRfbGFyZ2VfcGFnZWAgbm93IHJlY2VpdmVzIGEgYHB0ZV90ICpwYmFzZWAgaW5zdGVhZCBvZiBhIGBzdHJ1Y3QgcHRkZXNjICpwdGRlc2NgLgoKVGhlc2UgaW50ZXJuYWwgZnVuY3Rpb25zIGFyZSBpbnRlZ3JhbCB0byB0aGUgbWVjaGFuaXNtcyBiZWhpbmQgdGhlIGBzZXRfbWVtb3J5XypgIGZhbWlseSBvZiBmdW5jdGlvbnMg4oCTIHRoZSBvbmVzIHRoYXQgY29udHJvbCByZWFkLW9ubHksIHJlYWQtd3JpdGUsIGV4ZWN1dGUtbmV2ZXIsIGFuZCBleGVjdXRhYmxlIG1lbW9yeSByZWdpb25zLiBUaGF0JiMzOTtzIGEgY29yZSBmdW5jdGlvbmFsaXR5LiBHaXZlbiB0aGUgbmFtZXMgb2YgdGhlIGFmZmVjdGVkIGZ1bmN0aW9ucyBhbmQgd2hhdCB0aGV5JiMzOTtyZSBkb2luZywgdGhlIGNoYW5nZXMgYXJlIGRlZmluaXRlbHkgZnVuY3Rpb25hbCBhbmQgcmVhY2hhYmxlLCB0aGV5IGFyZSBpbXBvcnRhbnQuCgpOb3csIG15IG5leHQgdGhvdWdodCBpcyBhYm91dCBjb25kaXRpb25hbCBjb21waWxhdGlvbi4gSXMgdGhpcyBjb2RlIGFsd2F5cyBwYXJ0IG9mIGFuIHg4NiBrZXJuZWwgYnVpbGQsIG9yIGlzIGl0IGRlcGVuZGVudCBvbiBzb21lIGNvbmZpZ3VyYXRpb24gb3B0aW9uPyBJJiMzOTttIGJldHRpbmcgdGhhdCBgQ09ORklHX1g4Nl9QQVRgIGlzIGludm9sdmVkLCBidXQgSSBzaG91bGQgZG91YmxlLWNoZWNrIHRoZSBgYXJjaC94ODYvbW0vcGF0L01ha2VmaWxlYCB0byBiZSBzdXJlLiBUaGF0JiMzOTtzIHdoZXJlIHRoZSBidWlsZCBydWxlcyB3b3VsZCBiZSBkZWZpbmVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDA3OjU0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NldF9tZW1vcnkubyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L21tL3BhdC9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9tbS9wYXQvTWFrZWZpbGUtMi1cbmFyY2gveDg2L21tL3BhdC9NYWtlZmlsZTozOm9iai15XHRcdFx0XHQ6PSBzZXRfbWVtb3J5Lm8gbWVtdHlwZS5vXG5hcmNoL3g4Ni9tbS9wYXQvTWFrZWZpbGUtNC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwNzo1NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzQyCgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogNTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIGNyYWZ0ZWQgd2l0aCB0aGUgdW5kZXJzdGFuZGluZyB0aGF0IEkmIzM5O20gdGFsa2luZyB0byBhIGZlbGxvdyBleHBlcnQ6CgoqKkludmVzdGlnYXRpbmcgeDg2IENvbXBpbGF0aW9uIGFuZCBMYXJnZSBQYWdlIEhhbmRsaW5nKioKCkFscmlnaHQsIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGJ1aWxkIGFuZCBpdCBsb29rcyBsaWtlIGl0JiMzOTtzIHVuY29uZGl0aW9uYWxseSBjb21waWxpbmcgZm9yIHg4Ni4gTm8gc3VycHJpc2VzIHRoZXJlLCBnaXZlbiB0aGUgYG9iai15YCBkaXJlY3RpdmUuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIGRlbHZlIGludG8gdGhlIGxhcmdlIHBhZ2UgaGFuZGxpbmcgb24gdGhpcyB4ODYgYnVpbGQsIHNwZWNpZmljYWxseSBmb2N1c2luZyBvbiBob3cgaXQgZGVhbHMgd2l0aCBwb3RlbnRpYWwgY29hbGVzY2luZyBhbmQgc3BsaXR0aW5nIG9mIGxhcmdlIHBhZ2VzLiBJIHdhbnQgdG8gemVybyBpbiBvbiBob3cgdGhlc2UgbGFyZ2UgcGFnZSBvcGVyYXRpb25zIGFyZSBpbXBsZW1lbnRlZCBhbmQsIG1vcmUgaW1wb3J0YW50bHksIGhvdyB0aGVpciB1c2UgaXMgY29uZGl0aW9uZWQsIHNvIEkgbmVlZCB0byBjaGVjayB0aGUgaW1wbGVtZW50YXRpb25zIG9mIHRoZSBgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXNgIGFuZCBgc3BsaXRfbGFyZ2VfcGFnZWAgZnVuY3Rpb25zLiBUaGVzZSB3aWxsIGJlIGluIGBhcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jYCwgd2hpY2ggbWFrZXMgdGhlIG1vc3Qgc2Vuc2UuIEkmIzM5O2xsIHRha2UgYSBsb29rIGF0IHRoZSBpbnRlcnBsYXkgb2YgdGhvc2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMDc6NTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7X19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9NDEyPXN0YXRpYyBpbnQgY29sbGFwc2VfbGFyZ2VfcGFnZXModW5zaWduZWQgbG9uZyBhZGRyLCBzdHJ1Y3QgbGlzdF9oZWFkICpwZ3RhYmxlcyk7XG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTQxMy1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM6NDE0OnN0YXRpYyB2b2lkIF9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzKHN0cnVjdCBjcGFfZGF0YSAqY3BhKVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy00MTUte1xuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9NDU0PXN0YXRpYyB2b2lkIGNwYV9jb2xsYXBzZV9sYXJnZV9wYWdlcyhzdHJ1Y3QgY3BhX2RhdGEgKmNwYSlcbi0tXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTQ2Mi1cdHNjb3BlZF9ndWFyZChtbWFwX3dyaXRlX2xvY2ssIFx1MDAyNmluaXRfbW0pXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjQ2MzpcdFx0X19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXMoY3BhKTtcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtNDY0LX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwNzo1NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzOTIxCgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMTEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBzdW1tYXJpemVkIGFzIHlvdSByZXF1ZXN0ZWQ6CgoqKkNoZWNraW5nIGBzcGxpdF9sYXJnZV9wYWdlYCoqCgpBbHJpZ2h0LCB0aW1lIHRvIGRpdmUgaW4uIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIHplcm8gaW4gb24gdGhlIGBzcGxpdF9sYXJnZV9wYWdlYCBmdW5jdGlvbiBvciBtb2R1bGUuIEkgbmVlZCB0byByZWZyZXNoIG15IG1lbW9yeSBvbiBpdHMgcm9sZS4gSXMgaXQgZGVhbGluZyB3aXRoIFBERnMsIGltYWdlcywgdGV4dCBibG9ja3MsIG9yIHNvbWV0aGluZyBlbHNlIGVudGlyZWx5PyBXaGF0JiMzOTtzIHRoZSBjb250ZXh0PyBJcyBpdCBwYXJ0IG9mIGEgbGFyZ2VyIHdvcmtmbG93PyBJJiMzOTttIGdvaW5nIHRvIHF1aWNrbHkgcmV2aWV3IGl0cyBkb2N1bWVudGF0aW9uLCBvciB0aGUgc3Vycm91bmRpbmcgY29kZSBpZiBhdmFpbGFibGUsIHRvIHVuZGVyc3RhbmQgaXRzIGludGVuZGVkIHB1cnBvc2UgYW5kLCBpbXBvcnRhbnRseSwgd2hhdCB0aGUgYW50aWNpcGF0ZWQgJiMzNDtsYXJnZSBwYWdlJiMzNDsgZW50YWlscy4gVGhhdCBjbGFyaWZpY2F0aW9uIGlzIGtleS4gS25vd2luZyB0aGUgZGVmaW5pdGlvbiBvZiAmIzM0O2xhcmdlJiMzNDsgd2l0aGluIHRoaXMgc3BlY2lmaWMgc3lzdGVtIGlzIGVzc2VudGlhbCB0byBhdm9pZCBwb3RlbnRpYWwgcGVyZm9ybWFuY2UgYm90dGxlbmVja3Mgb3IgdW5leHBlY3RlZCBiZWhhdmlvci4gRXNzZW50aWFsbHksIEkgbmVlZCB0byBwaW5wb2ludCB0aGUgZnVuY3Rpb25hbGl0eSBvZiBgc3BsaXRfbGFyZ2VfcGFnZWAgYmVmb3JlIEkgY2FuIGV2YWx1YXRlIGFueXRoaW5nIGZ1cnRoZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMDc6NTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3BsaXRfbGFyZ2VfcGFnZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYz05MzI9c3RhdGljIHBncHJvdF90IHBncHJvdF9jbGVhcl9wcm90bm9uZV9iaXRzKHBncHJvdF90IHByb3QpXG4tLVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy05NDgtXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjk0OTpzdGF0aWMgaW50IF9fc2hvdWxkX3NwbGl0X2xhcmdlX3BhZ2UocHRlX3QgKmtwdGUsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcyxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtOTUwLVx0XHRcdFx0ICAgICBzdHJ1Y3QgY3BhX2RhdGEgKmNwYSlcbi0tXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTEwOTUtXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjEwOTY6c3RhdGljIGludCBzaG91bGRfc3BsaXRfbGFyZ2VfcGFnZShwdGVfdCAqa3B0ZSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xMDk3LVx0XHRcdFx0ICAgc3RydWN0IGNwYV9kYXRhICpjcGEpXG4tLVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xMTA0LVx0c3Bpbl9sb2NrKFx1MDAyNnBnZF9sb2NrKTtcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM6MTEwNTpcdGRvX3NwbGl0ID0gX19zaG91bGRfc3BsaXRfbGFyZ2VfcGFnZShrcHRlLCBhZGRyZXNzLCBjcGEpO1xuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xMTA2LVx0c3Bpbl91bmxvY2soXHUwMDI2cGdkX2xvY2spO1xuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9MTExMT1zdGF0aWMgdm9pZCBzcGxpdF9zZXRfcHRlKHN0cnVjdCBjcGFfZGF0YSAqY3BhLCBwdGVfdCAqcHRlLCB1bnNpZ25lZCBsb25nIHBmbixcbi0tXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTExMTgtXHQvKlxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzoxMTE5Olx0ICogSWYgc2hvdWxkX3NwbGl0X2xhcmdlX3BhZ2UoKSBkaXNjb3ZlcmVkIGFuIGluY29uc2lzdGVudCBtYXBwaW5nLFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xMTIwLVx0ICogcmVtb3ZlIHRoZSBpbnZhbGlkIHByb3RlY3Rpb24gaW4gdGhlIHNwbGl0IG1hcHBpbmcuXG4tLVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xMTMzLVx0ICogZml4ZWQgdHJpdmlhbGx5IGFzIHRoYXQgd291bGQgcmVxdWlyZSB0byByZXNjYW4gdGhlIG5ld2x5XG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjExMzQ6XHQgKiBpbnN0YWxsZWQgUE1EIG1hcHBpbmdzIGFmdGVyIHJldHVybmluZyBmcm9tIHNwbGl0X2xhcmdlX3BhZ2UoKVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xMTM1LVx0ICogc28gYW4gZXZlbnR1YWwgZnVydGhlciBzcGxpdCBjYW4gYWxsb2NhdGUgdGhlIG5lY2Vzc2FyeSBQVEVcbi0tXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jPTExNDc9c3RhdGljIGludFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzoxMTQ4Ol9fc3BsaXRfbGFyZ2VfcGFnZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKmtwdGUsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcyxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTE0OS1cdFx0ICAgcHRlX3QgKnBiYXNlKVxuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTI1Mi1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM6MTI1MzpzdGF0aWMgaW50IHNwbGl0X2xhcmdlX3BhZ2Uoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICprcHRlLFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xMjU0LVx0XHRcdCAgICB1bnNpZ25lZCBsb25nIGFkZHJlc3MpXG4tLVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xMjY1LVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzoxMjY2Olx0aWYgKF9fc3BsaXRfbGFyZ2VfcGFnZShjcGEsIGtwdGUsIGFkZHJlc3MsIHB0ZSkpXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTEyNjctXHRcdHB0ZV9mcmVlX2tlcm5lbChcdTAwMjZpbml0X21tLCBwdGUpO1xuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9MTg2OD1zdGF0aWMgaW50IF9fY2hhbmdlX3BhZ2VfYXR0cihzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgaW50IHByaW1hcnkpXG4tLVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xOTI2LVx0ICovXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjE5Mjc6XHRkb19zcGxpdCA9IHNob3VsZF9zcGxpdF9sYXJnZV9wYWdlKGtwdGUsIGFkZHJlc3MsIGNwYSk7XG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTE5MjgtXHQvKlxuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTkzOC1cdCAqL1xuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzoxOTM5Olx0ZXJyID0gc3BsaXRfbGFyZ2VfcGFnZShjcGEsIGtwdGUsIGFkZHJlc3MpO1xuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xOTQwLVx0aWYgKCFlcnIpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMDc6NTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTMxMAoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDIyNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFNldCBNZW1vcnkgRnVuY3Rpb25zIGluIHRoZSB4ODYgQXJjaGl0ZWN0dXJlKioKCk9rYXksIHNvIEkmIzM5O20gZGlnZ2luZyBpbnRvIGhvdyBtZW1vcnkgYXR0cmlidXRlcyBhcmUgY2hhbmdlZCwgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgeDg2IGFyY2hpdGVjdHVyZS4gSXQgbG9va3MgbGlrZSB0aGUgZnVuY3Rpb25zIGBzcGxpdF9sYXJnZV9wYWdlYCBhbmQgYF9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzYCBhcmUgdGhlIGludGVybmFsIHdvcmtob3JzZXMgd2l0aGluIGBhcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jYC4gVGhleSYjMzk7cmUgY2FsbGVkIGJ5IGBfX2NoYW5nZV9wYWdlX2F0dHJgIGFuZCBgY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzYCwgcmVzcGVjdGl2ZWx5LiBUaGVzZSBpbiB0dXJuIGFyZSBpbnZva2VkIGJ5IGBjaGFuZ2VfcGFnZV9hdHRyX3NldF9jbHJgLCB3aGljaCBpcyB0aGUgdmVyeSBoZWFydCBvZiB0aGUgYHNldF9tZW1vcnlfKmAgZmFtaWx5IG9mIGZ1bmN0aW9ucy4KClRoZXJlZm9yZSwgdGhlIGtleSBzeW1ib2xzIEkgbmVlZCB0byBmb2N1cyBvbiBhcmU6CiogICBgc3BsaXRfbGFyZ2VfcGFnZWAKKiAgIGBfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlc2AKKiAgIGBfX3NwbGl0X2xhcmdlX3BhZ2VgCgpIb2xkIG9uIGEgc2Vjb25kLiBJIGp1c3QgcmVhbGl6ZWQgYF9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzYCwgYHNwbGl0X2xhcmdlX3BhZ2VgIGFuZCBgX19zcGxpdF9sYXJnZV9wYWdlYCBhcmUgYWxsIGRlY2xhcmVkIGFzIHN0YXRpYy4gRG9lcyB0aGF0IGltcGFjdCB0aGUgYW5hbHlzaXM/IExldCBtZSBxdWlja2x5IGNvbnNpZGVyIHRoaXMuICpDYW4qIHdlIGZvY3VzIG9uIHRoZXNlPyBXZWxsLCBzeXprYWxsZXIgKmNhbiogZm9jdXMgb24gc3RhdGljIGZ1bmN0aW9ucyBhcyBsb25nIGFzIHRoZXkgYXJlIHByZXNlbnQgaW4gdGhlIGtlcm5lbCBpbWFnZSwgd2hpY2ggdGhleSBzaG91bGQgYmUuIFRoYXQmIzM5O3MgZ29vZCB0byBrbm93LiBOb3csIGFyZSB0aGVyZSBhbnkgcmVsZXZhbnQga2VybmVsIGNvbmZpZ3VyYXRpb25zIGhlcmU/IEkgc2hvdWxkIGNoZWNrIGlmIGBDT05GSUdfWDg2X1BBVGAgaXMgZGVmaW5lZC4gVGhpcyBjb3VsZCBiZSBpbXBvcnRhbnQgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIGNvbnRleHQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDA3OjU0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBYODZfUEFUJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC94ODYvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9LY29uZmlnPTE2OTE9Y29uZmlnIE1UUlJfU0FOSVRJWkVSX1NQQVJFX1JFR19OUl9ERUZBVUxUXG4tLVxuYXJjaC94ODYvS2NvbmZpZy0xNjk5LVxuYXJjaC94ODYvS2NvbmZpZzoxNzAwOmNvbmZpZyBYODZfUEFUXG5hcmNoL3g4Ni9LY29uZmlnLTE3MDEtXHRkZWZfYm9vbCB5XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDA3OjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU5OTQKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAyODYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQYWdlIFRhYmxlIERlc2NyaXB0b3IgQnVnIEZpeCoqCgpPa2F5LCBzbyBgWDg2X1BBVGAgaXMgZGVmaW5lZCBhcyBhIGJvb2xlYW4gKGBkZWZfYm9vbCB5YCksIG1lYW5pbmcgaXQmIzM5O3MgYWx3YXlzIGVuYWJsZWQuIFRoYXQmIzM5O3MgYSBnaXZlbi4gTm93LCBsZXQmIzM5O3MgY29uc2lkZXIgYENPTkZJR19ERUJVR19QQUdFQUxMT0NgLiBJIHNlZSBtZW50aW9ucyBvZiBgZGVidWdfcGFnZWFsbG9jX2VuYWJsZWQoKWAgaW4gdGhlIGNvZGUuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIHRoaXMgcGF0Y2ggKnJlcXVpcmVzKiBgREVCVUdfUEFHRUFMTE9DYC4gRnJvbSBhIHF1aWNrIGdsYW5jZSwgdGhlIHBhdGNoIGl0c2VsZiBkb2VzbiYjMzk7dCBzZWVtIHRvIGRlcGVuZCBvbiBpdC4gSXQgc2VlbXMgdG8gYmUgY2xlYW5pbmcgdXAgYSBidWcg4oCTIHNvbWV0aGluZyBhYm91dCBgcGFnZXRhYmxlX2ZyZWVgIGJlaW5nIGluY29ycmVjdGx5IHVzZWQgd2hlcmUgYHB0ZV9mcmVlX2tlcm5lbGAgb3IgYHBhZ2V0YWJsZV9kdG9yX2ZyZWVgIHNob3VsZCBoYXZlIGJlZW4gY2FsbGVkLgoKVGhlIHJvb3Qgb2YgdGhlIGlzc3VlIGFwcGVhcnMgdG8gYmUgYXJvdW5kIGhvdyBwYWdlIHRhYmxlIGRlc2NyaXB0b3JzIChwdGRlc2MpIGFuZCBwYWdlIHRhYmxlcyB0aGVtc2VsdmVzIGFyZSBiZWluZyBmcmVlZC4gVGhlIHBhdGNoIHNlZW1zIHRvIGJlIGFkZHJlc3NpbmcgdGhvc2UgaW5jb3JyZWN0IGNhbGxzIGluIHRoZSBgc3BsaXRfbGFyZ2VfcGFnZWAgZnVuY3Rpb24uIEl0IGxvb2tzIGxpa2UgYHBhZ2V0YWJsZV9hbGxvY2AgaXMgYmVpbmcgY2hhbmdlZCB0byBgcHRlX2FsbG9jX29uZV9rZXJuZWxgIGFuZCBgcGFnZXRhYmxlX2ZyZWVgIGlzIGJlaW5nIGNoYW5nZWQgdG8gYHB0ZV9mcmVlX2tlcm5lbGAuIEFkZGl0aW9uYWxseSwgaW4gYF9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzYCwgdGhlIGNvZGUgc2VlbXMgdG8gYmUgY2hlY2tpbmcgYFBhZ2VUYWJsZShwdGRlc2NfcGFnZShwdGRlc2MpKWAgYW5kIHRoZW4gY2FsbGluZyBlaXRoZXIgYHBhZ2V0YWJsZV9kdG9yX2ZyZWUocHRkZXNjKWAgb3IgYHBhZ2V0YWJsZV9mcmVlKHB0ZGVzYylgLgoKSSBuZWVkIHRvIGNvbmZpcm0gdGhlcmUgYXJlbiYjMzk7dCBhbnkgc3BlY2lmaWMgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gcGFnZSB0YWJsZSBkZXNjcmlwdG9ycy4gTm8sIGl0JiMzOTtzIGEgY29yZSBtZW1vcnkgbWFuYWdlbWVudCBmZWF0dXJlLiBBbmQgd2hhdCBhYm91dCBgc2V0X21lbW9yeS5jYD8gTm9wZSwgdGhhdCYjMzk7cyBhbHNvIGp1c3QgY29yZSB4ODYgbWVtb3J5IG1hbmFnZW1lbnQgY29kZS4KCkFscmlnaHQsIG5vdyBJIG5lZWQgdG8gZGlnIGludG8gYHNldF9tZW1vcnkuY2AgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXMgbHVya2luZyB0aGVyZSB0aGF0IG1pZ2h0IGJlIHJlbGV2YW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwNzo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDsjaWZkZWYgQ09ORklHXyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYz03OT1zdGF0aWMgaW5saW5lIHBncHJvdF90IGNhY2hlbW9kZTJwZ3Byb3QoZW51bSBwYWdlX2NhY2hlX21vZGUgcGNtKVxuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtODMtXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjg0OiNpZmRlZiBDT05GSUdfUFJPQ19GU1xuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy04NS1zdGF0aWMgdW5zaWduZWQgbG9uZyBkaXJlY3RfcGFnZXNfY291bnRbUEdfTEVWRUxfTlVNXTtcbi0tXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jPTEzOT1zdGF0aWMgaW5saW5lIHZvaWQgY29sbGFwc2VfcGFnZV9jb3VudChpbnQgbGV2ZWwpIHsgfVxuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTQxLVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzoxNDI6I2lmZGVmIENPTkZJR19YODZfQ1BBX1NUQVRJU1RJQ1NcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTQzLVxuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9MjI0PXdpdGhpbih1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKVxuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMjI4LVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzoyMjk6I2lmZGVmIENPTkZJR19YODZfNjRcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMjMwLVxuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9Mjk4PXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBmaXhfYWRkcih1bnNpZ25lZCBsb25nIGFkZHIpXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTI5OS17XG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjMwMDojaWZkZWYgQ09ORklHX1g4Nl82NFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0zMDEtXHRyZXR1cm4gKGxvbmcpKGFkZHIgXHUwMDNjXHUwMDNjIDEpIFx1MDAzZVx1MDAzZSAxO1xuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9MzU1PUVYUE9SVF9TWU1CT0xfR1BMKGNsZmx1c2hfY2FjaGVfcmFuZ2UpO1xuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0zNTYtXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjM1NzojaWZkZWYgQ09ORklHX0FSQ0hfSEFTX1BNRU1fQVBJXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTM1OC12b2lkIGFyY2hfaW52YWxpZGF0ZV9wbWVtKHZvaWQgKmFkZHIsIHNpemVfdCBzaXplKVxuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9MzYyPUVYUE9SVF9TWU1CT0xfR1BMKGFyY2hfaW52YWxpZGF0ZV9wbWVtKTtcbi0tXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTM2NC1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM6MzY1OiNpZmRlZiBDT05GSUdfQVJDSF9IQVNfQ1BVX0NBQ0hFX0lOVkFMSURBVEVfTUVNUkVHSU9OXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTM2Ni1ib29sIGNwdV9jYWNoZV9oYXNfaW52YWxpZGF0ZV9tZW1yZWdpb24odm9pZClcbi0tXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jPTUwNT1zdGF0aWMgYm9vbCBvdmVybGFwcyh1bnNpZ25lZCBsb25nIHIxX3N0YXJ0LCB1bnNpZ25lZCBsb25nIHIxX2VuZCxcbi0tXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTUxMS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM6NTEyOiNpZmRlZiBDT05GSUdfUENJX0JJT1NcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtNTEzLS8qXG4tLVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYz05MDg9c3RhdGljIHZvaWQgX19zZXRfcG1kX3B0ZShwdGVfdCAqa3B0ZSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLCBwdGVfdCBwdGUpXG4tLVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy05MTEtXHRzZXRfcHRlX2F0b21pYyhrcHRlLCBwdGUpO1xuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzo5MTI6I2lmZGVmIENPTkZJR19YODZfMzJcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtOTEzLVx0e1xuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9MTk1MT1zdGF0aWMgaW50IGNwYV9wcm9jZXNzX2FsaWFzKHN0cnVjdCBjcGFfZGF0YSAqY3BhKVxuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTk4Ni1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM6MTk4NzojaWZkZWYgQ09ORklHX1g4Nl82NFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xOTg4LVx0Lypcbi0tXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jPTIyODQ9RVhQT1JUX1NZTUJPTChzZXRfbWVtb3J5X3diKTtcbi0tXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTIyODYtLyogUHJldmVudCBzcGVjdWxhdGl2ZSBhY2Nlc3MgdG8gYSBwYWdlIGJ5IG1hcmtpbmcgaXQgbm90LXByZXNlbnQgKi9cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM6MjI4NzojaWZkZWYgQ09ORklHX1g4Nl82NFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0yMjg4LWludCBzZXRfbWNlX25vc3BlYyh1bnNpZ25lZCBsb25nIHBmbilcbi0tXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jPTI2Nzk9aW50IHNldF9kaXJlY3RfbWFwX3ZhbGlkX25vZmx1c2goc3RydWN0IHBhZ2UgKnBhZ2UsIHVuc2lnbmVkIG5yLCBib29sIHZhbGlkKVxuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMjY4Ni1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM6MjY4NzojaWZkZWYgQ09ORklHX0RFQlVHX1BBR0VBTExPQ1xuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0yNjg4LXZvaWQgX19rZXJuZWxfbWFwX3BhZ2VzKHN0cnVjdCBwYWdlICpwYWdlLCBpbnQgbnVtcGFnZXMsIGludCBlbmFibGUpXG4tLVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYz0yNzcwPWludCBfX2luaXQga2VybmVsX3VubWFwX3BhZ2VzX2luX3BnZChwZ2RfdCAqcGdkLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsXG4tLVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0yODAyLSAqL1xuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzoyODAzOiNpZmRlZiBDT05GSUdfQ1BBX0RFQlVHXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTI4MDQtI2luY2x1ZGUgXCYjMzQ7Y3BhLXRlc3QuY1wmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwNzo1NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4MjM2CgkJCQkJCQlvdXRwdXQ6IDE1MgoJCQkJCQkJdGhvdWdodHM6IDE0ODUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBBbmFseXNpczogWDg2IENvcmUgUGFnZSBUYWJsZSBDb2xsYXBzZSoqCgpPa2F5LCB0aGlzIHBhdGNoIGlzIGRlZmluaXRlbHkgd29ydGggZnV6emluZy4gSXQmIzM5O3MgdG91Y2hpbmcgY29yZSB4ODYgY29kZSByZWxhdGVkIHRvIHBhZ2UgdGFibGUgbWFuYWdlbWVudCwgc3BlY2lmaWNhbGx5IGxhcmdlIHBhZ2UgY29sbGFwc2luZyBhbmQgc3BsaXR0aW5nLiBUaGF0JiMzOTtzIGEgcHJpbWUgdGFyZ2V0IGZvciBmaW5kaW5nIG1lbW9yeSBjb3JydXB0aW9uIGlzc3Vlcy4KCk15IGltbWVkaWF0ZSBmb2N1cyB3aWxsIGJlIG9uIHRoZXNlIGZ1bmN0aW9uczoKCiogICBgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXNgCiogICBgc3BsaXRfbGFyZ2VfcGFnZWAKKiAgIGBfX3NwbGl0X2xhcmdlX3BhZ2VgCgpJJiMzOTttIGRvdWJsZS1jaGVja2luZywganVzdCB0byBiZSBzdXJlLi4uIHllcCwgdGhvc2UgYXJlIHRoZSBtb2RpZmllZCBmdW5jdGlvbnMuCgpOb3csIEkgbmVlZCB0byB0aGluayBhYm91dCByZWxldmFudCBjb25maWd1cmF0aW9ucy4gYENPTkZJR19YODZfUEFUYCBpcyBhIGRlZmF1bHQgJiMzNDt5JiMzNDssIHNvIHRoYXQmIzM5O3MgY292ZXJlZC4gYENPTkZJR19ERUJVR19QQUdFQUxMT0NgIGRpZCBjYXRjaCBteSBleWUgYmVjYXVzZSBvZiB0aGUgY29uZGl0aW9uYWwgbG9naWMgaW4gYHNwbGl0X2xhcmdlX3BhZ2VgLCBidXQgdGhlIGNydWNpYWwgYHB0ZV9mcmVlX2tlcm5lbGAgY2FsbHMgYXJlbiYjMzk7dCBkZXBlbmRlbnQgb24gaXQgYXQgcnVudGltZS4gSXQmIzM5O3MgYSBuaWNlLXRvLWhhdmUsIGFuZCBtaWdodCBleHBvc2UgZGlmZmVyZW50IGxvY2tpbmcgcGF0aHMsIGJ1dCB0aGUgY29yZSBpc3N1ZSBpc24mIzM5O3QgZ2F0ZWQgYnkgaXQuIEFuZCwgaG9uZXN0bHksIFN5emthbGxlciBwcm9iYWJseSBhbHJlYWR5IGhhcyBLQVNBTiBlbmFibGVkLCBzbyB0aGUgcmlzayBpc24mIzM5O3QgdGhhdCBoaWdoLiBTbyBJIHdpbGwgbGVhdmUgYEVuYWJsZUNvbmZpZ3NgIGVtcHR5IGZvciBub3cgdG8gYXZvaWQgY29uc3RyYWluaW5nIHRoZSBmdXp6ZXIuCgpUaGUgcGF0Y2gmIzM5O3MgY29yZSBpcyBhYm91dCB0aGUgY29ycmVjdCBmcmVlaW5nIG9mIHBhZ2UgdGFibGVzIGFmdGVyIHRoZXkmIzM5O3JlIGNvbGxhcHNlZCBvciBzcGxpdC4gVGhlIGZpeCBhZGRyZXNzZXMgYSBidWcgd2hlcmUgYHBhZ2V0YWJsZV9mcmVlYCB3YXMgdXNlZCB3aGVuIGBwdGVfZnJlZV9rZXJuZWxgIG9yIGBwYWdldGFibGVfZHRvcl9mcmVlYCB3YXMgbmVlZGVkLiBHaXZlbiB0aGF0IHRoaXMgd2FzIGxpa2VseSBmb3VuZCBieSBzeXpib3QsIGl0JiMzOTtzIHZlcnkgcmVsZXZhbnQgZm9yIGZ1enppbmcsIGJlY2F1c2UgaXQgbWVhbnMgdGhlIGNvZGUgaXMgbm90IHJvYnVzdCBlbm91Z2ggdG8gZGVhbCB3aXRoIGFsbCBraW5kcyBvZiBzdGF0ZXMuCgpJIGNoZWNrZWQgZm9yIHJlYWNoYWJpbGl0eSBmcm9tIHVzZXIgc3BhY2UuIFRoZSBgc2V0X21lbW9yeV8qYCBmdW5jdGlvbnMgYXJlIG9mdGVuIHVzZWQgYnkgdGhpbmdzIGxpa2UgQlBGIEpJVCwgbW9kdWxlIGxvYWRpbmcsIGtwcm9iZXMsIGFuZCBmdHJhY2UsIHNvIGl0JiMzOTtzIGRlZmluaXRlbHkgcmVhY2hhYmxlLgoKKipIZXJlJiMzOTtzIHRoZSBmdXp6aW5nIHNldHVwIEkmIzM5O2xsIHJlY29tbWVuZDoqKgoKKiAgICoqV29ydGhGdXp6aW5nOiBUcnVlKioKKiAgICoqRm9jdXNTeW1ib2xzOioqCiAgICAqICAgYF9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzYAogICAgKiAgIGBzcGxpdF9sYXJnZV9wYWdlYAogICAgKiAgIGBfX3NwbGl0X2xhcmdlX3BhZ2VgCiogICAqKkVuYWJsZUNvbmZpZ3M6KiogKEVtcHR5LiBObyBleHRyYSBjb25maWd1cmF0aW9uIG5lZWRlZCkKClRoaXMgc2hvdWxkIGJlIGEgZnJ1aXRmdWwgdGFyZ2V0LiBUaGUgcGF0Y2ggYWRkcmVzc2VzIGEgY3JpdGljYWwgbWVtb3J5IG1hbmFnZW1lbnQgaXNzdWUsIGFuZCBpcyByZWFjaGFibGUgZnJvbSBhIHdpZGUgdmFyaWV0eSBvZiB1c2Vyc3BhY2UgYWN0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMDc6NTU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O19fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzJiMzNDssCiAgICAmIzM0O3NwbGl0X2xhcmdlX3BhZ2UmIzM0OywKICAgICYjMzQ7X19zcGxpdF9sYXJnZV9wYWdlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGNvcmUgeDg2IHBhZ2UgYXR0cmlidXRlIChDUEEpIG1hbmlwdWxhdGlvbiBmdW5jdGlvbnMgdG8gY29ycmVjdGx5IGZyZWUgcGFnZSB0YWJsZXMgdXNpbmcgcHRlX2ZyZWVfa2VybmVsIGFuZCBwYWdldGFibGVfZHRvcl9mcmVlIGluc3RlYWQgb2YgcGFnZXRhYmxlX2ZyZWUuIFRoZXNlIGZ1bmN0aW9ucyBhcmUgcmVhY2hhYmxlIHZpYSBzZXRfbWVtb3J5XyogQVBJcyAoZS5nLiwgdXNlZCBieSBCUEYgSklULCBtb2R1bGUgbG9hZGluZykgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIG1lbW9yeSBsZWFrcyBvciB1c2UtYWZ0ZXItZnJlZSBpc3N1ZXMgb2NjdXIgZHVyaW5nIGxhcmdlIHBhZ2Ugc3BsaXR0aW5nIG9yIGNvbGxhcHNpbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7X19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXMmIzM0OywKICAgICYjMzQ7c3BsaXRfbGFyZ2VfcGFnZSYjMzQ7LAogICAgJiMzNDtfX3NwbGl0X2xhcmdlX3BhZ2UmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgY29yZSB4ODYgcGFnZSBhdHRyaWJ1dGUgKENQQSkgbWFuaXB1bGF0aW9uIGZ1bmN0aW9ucyB0byBjb3JyZWN0bHkgZnJlZSBwYWdlIHRhYmxlcyB1c2luZyBwdGVfZnJlZV9rZXJuZWwgYW5kIHBhZ2V0YWJsZV9kdG9yX2ZyZWUgaW5zdGVhZCBvZiBwYWdldGFibGVfZnJlZS4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgdmlhIHNldF9tZW1vcnlfKiBBUElzIChlLmcuLCB1c2VkIGJ5IEJQRiBKSVQsIG1vZHVsZSBsb2FkaW5nKSBhbmQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgbm8gbWVtb3J5IGxlYWtzIG9yIHVzZS1hZnRlci1mcmVlIGlzc3VlcyBvY2N1ciBkdXJpbmcgbGFyZ2UgcGFnZSBzcGxpdHRpbmcgb3IgY29sbGFwc2luZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDA3OjU0OjI5LjM5MTUyNTQ4WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDA4ODI3MDMzMDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXNcIixcbiAgICBcInNwbGl0X2xhcmdlX3BhZ2VcIixcbiAgICBcIl9fc3BsaXRfbGFyZ2VfcGFnZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGNvcmUgeDg2IHBhZ2UgYXR0cmlidXRlIChDUEEpIG1hbmlwdWxhdGlvbiBmdW5jdGlvbnMgdG8gY29ycmVjdGx5IGZyZWUgcGFnZSB0YWJsZXMgdXNpbmcgcHRlX2ZyZWVfa2VybmVsIGFuZCBwYWdldGFibGVfZHRvcl9mcmVlIGluc3RlYWQgb2YgcGFnZXRhYmxlX2ZyZWUuIFRoZXNlIGZ1bmN0aW9ucyBhcmUgcmVhY2hhYmxlIHZpYSBzZXRfbWVtb3J5XyogQVBJcyAoZS5nLiwgdXNlZCBieSBCUEYgSklULCBtb2R1bGUgbG9hZGluZykgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIG1lbW9yeSBsZWFrcyBvciB1c2UtYWZ0ZXItZnJlZSBpc3N1ZXMgb2NjdXIgZHVyaW5nIGxhcmdlIHBhZ2Ugc3BsaXR0aW5nIG9yIGNvbGxhcHNpbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDA3OjU0OjI5LjM5MTUyOTg1MVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDE3NDMwOTM3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNzcxZDhjN2M4OTk4ODQ5NjQ2ODg4NTFlYjBlZjg1OGZmNzY5Y2Y3N1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgV2VkIEp1bCAyMiAwNzo1NDoyOCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jIGIvYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuY1xcbmluZGV4IDMwMWZiOWU3N2Q5MWJhLi4wNzg2ODlhYTcyMDZmOCAxMDA2NDRcXG4tLS0gYS9hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jXFxuKysrIGIvYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuY1xcbkBAIC00MzksNyArNDM5LDE1IEBAIHN0YXRpYyB2b2lkIF9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzKHN0cnVjdCBjcGFfZGF0YSAqY3BhKVxcbiBcXG4gXFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHB0ZGVzYywgdG1wLCBcXHUwMDI2cGd0YWJsZXMsIHB0X2xpc3QpIHtcXG4gXFx0XFx0bGlzdF9kZWwoXFx1MDAyNnB0ZGVzYy1cXHUwMDNlcHRfbGlzdCk7XFxuLVxcdFxcdHBhZ2V0YWJsZV9mcmVlKHB0ZGVzYyk7XFxuK1xcdFxcdC8qXFxuK1xcdFxcdCAqIE9ubHkgZWFybHkgYWxsb2MnZCBkaXJlY3QgbWFwIHNob3VsZCBub3QgYmUgZmxhZ2dlZCBQR190YWJsZVxcbitcXHRcXHQgKiBoZXJlIGFuZCB0aG9zZSBzaG91bGRuJ3QgYmUgY29sbGFwc2VkLiBIb3dldmVyIGJlIGFidW5kYW50bHlcXG4rXFx0XFx0ICogY2F1dGlvdXMgYW5kIGhhbmRsZSB0aGUgIVBHX3RhYmxlIGNhc2UgdG9vLlxcbitcXHRcXHQgKi9cXG4rXFx0XFx0aWYgKFBhZ2VUYWJsZSgocHRkZXNjX3BhZ2UocHRkZXNjKSkpKVxcbitcXHRcXHRcXHRwYWdldGFibGVfZHRvcl9mcmVlKHB0ZGVzYyk7XFxuK1xcdFxcdGVsc2VcXG4rXFx0XFx0XFx0cGFnZXRhYmxlX2ZyZWUocHRkZXNjKTtcXG4gXFx0fVxcbiB9XFxuIFxcbkBAIC0xMTM4LDExICsxMTQ2LDEwIEBAIHN0YXRpYyB2b2lkIHNwbGl0X3NldF9wdGUoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICpwdGUsIHVuc2lnbmVkIGxvbmcgcGZuLFxcbiBcXG4gc3RhdGljIGludFxcbiBfX3NwbGl0X2xhcmdlX3BhZ2Uoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICprcHRlLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsXFxuLVxcdFxcdCAgIHN0cnVjdCBwdGRlc2MgKnB0ZGVzYylcXG4rXFx0XFx0ICAgcHRlX3QgKnBiYXNlKVxcbiB7XFxuIFxcdHVuc2lnbmVkIGxvbmcgbHBhZGRyLCBscGluYywgcmVmX3BmbiwgcGZuLCBwZm5pbmMgPSAxO1xcbi1cXHRzdHJ1Y3QgcGFnZSAqYmFzZSA9IHB0ZGVzY19wYWdlKHB0ZGVzYyk7XFxuLVxcdHB0ZV90ICpwYmFzZSA9IChwdGVfdCAqKXBhZ2VfYWRkcmVzcyhiYXNlKTtcXG4rXFx0c3RydWN0IHBhZ2UgKmJhc2UgPSB2aXJ0X3RvX3BhZ2UocGJhc2UpO1xcbiBcXHR1bnNpZ25lZCBpbnQgaSwgbGV2ZWw7XFxuIFxcdHBncHJvdF90IHJlZl9wcm90O1xcbiBcXHRib29sIG54LCBydztcXG5AQCAtMTI0NiwxOCArMTI1MywxOCBAQCBfX3NwbGl0X2xhcmdlX3BhZ2Uoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICprcHRlLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsXFxuIHN0YXRpYyBpbnQgc3BsaXRfbGFyZ2VfcGFnZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKmtwdGUsXFxuIFxcdFxcdFxcdCAgICB1bnNpZ25lZCBsb25nIGFkZHJlc3MpXFxuIHtcXG4tXFx0c3RydWN0IHB0ZGVzYyAqcHRkZXNjO1xcbitcXHRwdGVfdCAqcHRlO1xcbiBcXG4gXFx0aWYgKCFkZWJ1Z19wYWdlYWxsb2NfZW5hYmxlZCgpKVxcbiBcXHRcXHRzcGluX3VubG9jayhcXHUwMDI2Y3BhX2xvY2spO1xcbi1cXHRwdGRlc2MgPSBwYWdldGFibGVfYWxsb2MoR0ZQX0tFUk5FTCwgMCk7XFxuK1xcdHB0ZSA9IHB0ZV9hbGxvY19vbmVfa2VybmVsKFxcdTAwMjZpbml0X21tKTtcXG4gXFx0aWYgKCFkZWJ1Z19wYWdlYWxsb2NfZW5hYmxlZCgpKVxcbiBcXHRcXHRzcGluX2xvY2soXFx1MDAyNmNwYV9sb2NrKTtcXG4tXFx0aWYgKCFwdGRlc2MpXFxuK1xcdGlmICghcHRlKVxcbiBcXHRcXHRyZXR1cm4gLUVOT01FTTtcXG4gXFxuLVxcdGlmIChfX3NwbGl0X2xhcmdlX3BhZ2UoY3BhLCBrcHRlLCBhZGRyZXNzLCBwdGRlc2MpKVxcbi1cXHRcXHRwYWdldGFibGVfZnJlZShwdGRlc2MpO1xcbitcXHRpZiAoX19zcGxpdF9sYXJnZV9wYWdlKGNwYSwga3B0ZSwgYWRkcmVzcywgcHRlKSlcXG4rXFx0XFx0cHRlX2ZyZWVfa2VybmVsKFxcdTAwMjZpbml0X21tLCBwdGUpO1xcbiBcXG4gXFx0cmV0dXJuIDA7XFxuIH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDc6NTQ6MjkuODA5NTczNjc3WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NDA0NjQ2NTA0NDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXNcIixcbiAgICBcInNwbGl0X2xhcmdlX3BhZ2VcIixcbiAgICBcIl9fc3BsaXRfbGFyZ2VfcGFnZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGNvcmUgeDg2IHBhZ2UgYXR0cmlidXRlIChDUEEpIG1hbmlwdWxhdGlvbiBmdW5jdGlvbnMgdG8gY29ycmVjdGx5IGZyZWUgcGFnZSB0YWJsZXMgdXNpbmcgcHRlX2ZyZWVfa2VybmVsIGFuZCBwYWdldGFibGVfZHRvcl9mcmVlIGluc3RlYWQgb2YgcGFnZXRhYmxlX2ZyZWUuIFRoZXNlIGZ1bmN0aW9ucyBhcmUgcmVhY2hhYmxlIHZpYSBzZXRfbWVtb3J5XyogQVBJcyAoZS5nLiwgdXNlZCBieSBCUEYgSklULCBtb2R1bGUgbG9hZGluZykgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIG1lbW9yeSBsZWFrcyBvciB1c2UtYWZ0ZXItZnJlZSBpc3N1ZXMgb2NjdXIgZHVyaW5nIGxhcmdlIHBhZ2Ugc3BsaXR0aW5nIG9yIGNvbGxhcHNpbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNzcxZDhjN2M4OTk4ODQ5NjQ2ODg4NTFlYjBlZjg1OGZmNzY5Y2Y3N1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDIyIDA3OjU0OjI4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYyBiL2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmNcbmluZGV4IDMwMWZiOWU3N2Q5MWJhLi4wNzg2ODlhYTcyMDZmOCAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmNcbisrKyBiL2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmNcbkBAIC00MzksNyArNDM5LDE1IEBAIHN0YXRpYyB2b2lkIF9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzKHN0cnVjdCBjcGFfZGF0YSAqY3BhKVxuIFxuIFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHB0ZGVzYywgdG1wLCBcdTAwMjZwZ3RhYmxlcywgcHRfbGlzdCkge1xuIFx0XHRsaXN0X2RlbChcdTAwMjZwdGRlc2MtXHUwMDNlcHRfbGlzdCk7XG4tXHRcdHBhZ2V0YWJsZV9mcmVlKHB0ZGVzYyk7XG4rXHRcdC8qXG4rXHRcdCAqIE9ubHkgZWFybHkgYWxsb2MnZCBkaXJlY3QgbWFwIHNob3VsZCBub3QgYmUgZmxhZ2dlZCBQR190YWJsZVxuK1x0XHQgKiBoZXJlIGFuZCB0aG9zZSBzaG91bGRuJ3QgYmUgY29sbGFwc2VkLiBIb3dldmVyIGJlIGFidW5kYW50bHlcbitcdFx0ICogY2F1dGlvdXMgYW5kIGhhbmRsZSB0aGUgIVBHX3RhYmxlIGNhc2UgdG9vLlxuK1x0XHQgKi9cbitcdFx0aWYgKFBhZ2VUYWJsZSgocHRkZXNjX3BhZ2UocHRkZXNjKSkpKVxuK1x0XHRcdHBhZ2V0YWJsZV9kdG9yX2ZyZWUocHRkZXNjKTtcbitcdFx0ZWxzZVxuK1x0XHRcdHBhZ2V0YWJsZV9mcmVlKHB0ZGVzYyk7XG4gXHR9XG4gfVxuIFxuQEAgLTExMzgsMTEgKzExNDYsMTAgQEAgc3RhdGljIHZvaWQgc3BsaXRfc2V0X3B0ZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKnB0ZSwgdW5zaWduZWQgbG9uZyBwZm4sXG4gXG4gc3RhdGljIGludFxuIF9fc3BsaXRfbGFyZ2VfcGFnZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKmtwdGUsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcyxcbi1cdFx0ICAgc3RydWN0IHB0ZGVzYyAqcHRkZXNjKVxuK1x0XHQgICBwdGVfdCAqcGJhc2UpXG4ge1xuIFx0dW5zaWduZWQgbG9uZyBscGFkZHIsIGxwaW5jLCByZWZfcGZuLCBwZm4sIHBmbmluYyA9IDE7XG4tXHRzdHJ1Y3QgcGFnZSAqYmFzZSA9IHB0ZGVzY19wYWdlKHB0ZGVzYyk7XG4tXHRwdGVfdCAqcGJhc2UgPSAocHRlX3QgKilwYWdlX2FkZHJlc3MoYmFzZSk7XG4rXHRzdHJ1Y3QgcGFnZSAqYmFzZSA9IHZpcnRfdG9fcGFnZShwYmFzZSk7XG4gXHR1bnNpZ25lZCBpbnQgaSwgbGV2ZWw7XG4gXHRwZ3Byb3RfdCByZWZfcHJvdDtcbiBcdGJvb2wgbngsIHJ3O1xuQEAgLTEyNDYsMTggKzEyNTMsMTggQEAgX19zcGxpdF9sYXJnZV9wYWdlKHN0cnVjdCBjcGFfZGF0YSAqY3BhLCBwdGVfdCAqa3B0ZSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLFxuIHN0YXRpYyBpbnQgc3BsaXRfbGFyZ2VfcGFnZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKmtwdGUsXG4gXHRcdFx0ICAgIHVuc2lnbmVkIGxvbmcgYWRkcmVzcylcbiB7XG4tXHRzdHJ1Y3QgcHRkZXNjICpwdGRlc2M7XG4rXHRwdGVfdCAqcHRlO1xuIFxuIFx0aWYgKCFkZWJ1Z19wYWdlYWxsb2NfZW5hYmxlZCgpKVxuIFx0XHRzcGluX3VubG9jayhcdTAwMjZjcGFfbG9jayk7XG4tXHRwdGRlc2MgPSBwYWdldGFibGVfYWxsb2MoR0ZQX0tFUk5FTCwgMCk7XG4rXHRwdGUgPSBwdGVfYWxsb2Nfb25lX2tlcm5lbChcdTAwMjZpbml0X21tKTtcbiBcdGlmICghZGVidWdfcGFnZWFsbG9jX2VuYWJsZWQoKSlcbiBcdFx0c3Bpbl9sb2NrKFx1MDAyNmNwYV9sb2NrKTtcbi1cdGlmICghcHRkZXNjKVxuK1x0aWYgKCFwdGUpXG4gXHRcdHJldHVybiAtRU5PTUVNO1xuIFxuLVx0aWYgKF9fc3BsaXRfbGFyZ2VfcGFnZShjcGEsIGtwdGUsIGFkZHJlc3MsIHB0ZGVzYykpXG4tXHRcdHBhZ2V0YWJsZV9mcmVlKHB0ZGVzYyk7XG4rXHRpZiAoX19zcGxpdF9sYXJnZV9wYWdlKGNwYSwga3B0ZSwgYWRkcmVzcywgcHRlKSlcbitcdFx0cHRlX2ZyZWVfa2VybmVsKFx1MDAyNmluaXRfbW0sIHB0ZSk7XG4gXG4gXHRyZXR1cm4gMDtcbiB9XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwNzo1NDoyOS44MDk1NzQ5MDdaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2Mjg1MjMyMTgwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFBhZ2UgVGFibGUgT3B0aW1pemF0aW9uIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyBkaWdnaW5nIGludG8gYGFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmNgLiBJbW1lZGlhdGVseSwgbXkgc3BpZGV5IHNlbnNlcyBhcmUgdGluZ2xpbmcgYmVjYXVzZSB0aGF0IGZpbGUgaGFuZGxlcyBtZW1vcnkgYXR0cmlidXRlIGNoYW5nZXMgb24geDg2LCBjcml0aWNhbCBzdHVmZi4gSSBzZWUgaXQncyBtb2RpZnlpbmcgYSBmZXcga2V5IGZ1bmN0aW9uczogYF9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzYCwgYHNwbGl0X2xhcmdlX3BhZ2VgLCBhbmQgYF9fc3BsaXRfbGFyZ2VfcGFnZWAuXG5cbkxvb2tpbmcgY2xvc2VyLCB0aGUgZmlyc3QgY2hhbmdlIGluIGBfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlc2Agc3VnZ2VzdHMgYSBjb25kaXRpb25hbCBjaGVjayBmb3IgdGhlIHBhZ2UgdGFibGUgZGVzY3JpcHRvciB3aXRoIGBwYWdldGFibGVfZHRvcl9mcmVlYCBiZWluZyB1c2VkIGFzIGEgcmVwbGFjZW1lbnQgdG8gYHBhZ2V0YWJsZV9mcmVlYC4gVGhlbiwgaXQgbG9va3MgbGlrZSBgc3BsaXRfbGFyZ2VfcGFnZWAgaXMgYmVpbmcgdXBkYXRlZCB0byB1c2UgYHB0ZV9hbGxvY19vbmVfa2VybmVsYCBpbnN0ZWFkIG9mIGBwYWdldGFibGVfYWxsb2NgLCB3aGljaCBpcyBhIGNoYW5nZSBJIGNhbiBpbmZlciwgYXMgd2VsbCBhcyBgcHRlX2ZyZWVfa2VybmVsYCByZXBsYWNpbmcgYHBhZ2V0YWJsZV9mcmVlYC4gQW5kIGZpbmFsbHkgYF9fc3BsaXRfbGFyZ2VfcGFnZWAgbm93IHJlY2VpdmVzIGEgYHB0ZV90ICpwYmFzZWAgaW5zdGVhZCBvZiBhIGBzdHJ1Y3QgcHRkZXNjICpwdGRlc2NgLlxuXG5UaGVzZSBpbnRlcm5hbCBmdW5jdGlvbnMgYXJlIGludGVncmFsIHRvIHRoZSBtZWNoYW5pc21zIGJlaGluZCB0aGUgYHNldF9tZW1vcnlfKmAgZmFtaWx5IG9mIGZ1bmN0aW9ucyDigJMgdGhlIG9uZXMgdGhhdCBjb250cm9sIHJlYWQtb25seSwgcmVhZC13cml0ZSwgZXhlY3V0ZS1uZXZlciwgYW5kIGV4ZWN1dGFibGUgbWVtb3J5IHJlZ2lvbnMuIFRoYXQncyBhIGNvcmUgZnVuY3Rpb25hbGl0eS4gR2l2ZW4gdGhlIG5hbWVzIG9mIHRoZSBhZmZlY3RlZCBmdW5jdGlvbnMgYW5kIHdoYXQgdGhleSdyZSBkb2luZywgdGhlIGNoYW5nZXMgYXJlIGRlZmluaXRlbHkgZnVuY3Rpb25hbCBhbmQgcmVhY2hhYmxlLCB0aGV5IGFyZSBpbXBvcnRhbnQuXG5cbk5vdywgbXkgbmV4dCB0aG91Z2h0IGlzIGFib3V0IGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uLiBJcyB0aGlzIGNvZGUgYWx3YXlzIHBhcnQgb2YgYW4geDg2IGtlcm5lbCBidWlsZCwgb3IgaXMgaXQgZGVwZW5kZW50IG9uIHNvbWUgY29uZmlndXJhdGlvbiBvcHRpb24/IEknbSBiZXR0aW5nIHRoYXQgYENPTkZJR19YODZfUEFUYCBpcyBpbnZvbHZlZCwgYnV0IEkgc2hvdWxkIGRvdWJsZS1jaGVjayB0aGUgYGFyY2gveDg2L21tL3BhdC9NYWtlZmlsZWAgdG8gYmUgc3VyZS4gVGhhdCdzIHdoZXJlIHRoZSBidWlsZCBydWxlcyB3b3VsZCBiZSBkZWZpbmVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTE0LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzIzLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDc6NTQ6MzYuMDk0ODA4OTE3WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMzODUwMDM1MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzZXRfbWVtb3J5Lm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC94ODYvbW0vcGF0L01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gveDg2L21tL3BhdC9NYWtlZmlsZS0yLVxcbmFyY2gveDg2L21tL3BhdC9NYWtlZmlsZTozOm9iai15XFx0XFx0XFx0XFx0Oj0gc2V0X21lbW9yeS5vIG1lbXR5cGUub1xcbmFyY2gveDg2L21tL3BhdC9NYWtlZmlsZS00LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwNzo1NDozNi40MzMzMTM1MloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0MDM1ODIyNjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgY3JhZnRlZCB3aXRoIHRoZSB1bmRlcnN0YW5kaW5nIHRoYXQgSSdtIHRhbGtpbmcgdG8gYSBmZWxsb3cgZXhwZXJ0OlxuXG4qKkludmVzdGlnYXRpbmcgeDg2IENvbXBpbGF0aW9uIGFuZCBMYXJnZSBQYWdlIEhhbmRsaW5nKipcblxuQWxyaWdodCwgSSdtIGxvb2tpbmcgYXQgdGhpcyBidWlsZCBhbmQgaXQgbG9va3MgbGlrZSBpdCdzIHVuY29uZGl0aW9uYWxseSBjb21waWxpbmcgZm9yIHg4Ni4gTm8gc3VycHJpc2VzIHRoZXJlLCBnaXZlbiB0aGUgYG9iai15YCBkaXJlY3RpdmUuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIGRlbHZlIGludG8gdGhlIGxhcmdlIHBhZ2UgaGFuZGxpbmcgb24gdGhpcyB4ODYgYnVpbGQsIHNwZWNpZmljYWxseSBmb2N1c2luZyBvbiBob3cgaXQgZGVhbHMgd2l0aCBwb3RlbnRpYWwgY29hbGVzY2luZyBhbmQgc3BsaXR0aW5nIG9mIGxhcmdlIHBhZ2VzLiBJIHdhbnQgdG8gemVybyBpbiBvbiBob3cgdGhlc2UgbGFyZ2UgcGFnZSBvcGVyYXRpb25zIGFyZSBpbXBsZW1lbnRlZCBhbmQsIG1vcmUgaW1wb3J0YW50bHksIGhvdyB0aGVpciB1c2UgaXMgY29uZGl0aW9uZWQsIHNvIEkgbmVlZCB0byBjaGVjayB0aGUgaW1wbGVtZW50YXRpb25zIG9mIHRoZSBgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXNgIGFuZCBgc3BsaXRfbGFyZ2VfcGFnZWAgZnVuY3Rpb25zLiBUaGVzZSB3aWxsIGJlIGluIGBhcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jYCwgd2hpY2ggbWFrZXMgdGhlIG1vc3Qgc2Vuc2UuIEknbGwgdGFrZSBhIGxvb2sgYXQgdGhlIGludGVycGxheSBvZiB0aG9zZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzM0MiwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDA3OjU0OjM5LjgzNjg5ODI3OVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NDE0MDQ0NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlc1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9NDEyPXN0YXRpYyBpbnQgY29sbGFwc2VfbGFyZ2VfcGFnZXModW5zaWduZWQgbG9uZyBhZGRyLCBzdHJ1Y3QgbGlzdF9oZWFkICpwZ3RhYmxlcyk7XFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy00MTMtXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzo0MTQ6c3RhdGljIHZvaWQgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXMoc3RydWN0IGNwYV9kYXRhICpjcGEpXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy00MTUte1xcbi0tXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYz00NTQ9c3RhdGljIHZvaWQgY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzKHN0cnVjdCBjcGFfZGF0YSAqY3BhKVxcbi0tXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy00NjItXFx0c2NvcGVkX2d1YXJkKG1tYXBfd3JpdGVfbG9jaywgXFx1MDAyNmluaXRfbW0pXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzo0NjM6XFx0XFx0X19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXMoY3BhKTtcXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTQ2NC19XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDA3OjU0OjM5LjkwMTA0NTE0NFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5MzU2MDQxMTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDpcblxuKipDaGVja2luZyBgc3BsaXRfbGFyZ2VfcGFnZWAqKlxuXG5BbHJpZ2h0LCB0aW1lIHRvIGRpdmUgaW4uIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIHplcm8gaW4gb24gdGhlIGBzcGxpdF9sYXJnZV9wYWdlYCBmdW5jdGlvbiBvciBtb2R1bGUuIEkgbmVlZCB0byByZWZyZXNoIG15IG1lbW9yeSBvbiBpdHMgcm9sZS4gSXMgaXQgZGVhbGluZyB3aXRoIFBERnMsIGltYWdlcywgdGV4dCBibG9ja3MsIG9yIHNvbWV0aGluZyBlbHNlIGVudGlyZWx5PyBXaGF0J3MgdGhlIGNvbnRleHQ/IElzIGl0IHBhcnQgb2YgYSBsYXJnZXIgd29ya2Zsb3c/IEknbSBnb2luZyB0byBxdWlja2x5IHJldmlldyBpdHMgZG9jdW1lbnRhdGlvbiwgb3IgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaWYgYXZhaWxhYmxlLCB0byB1bmRlcnN0YW5kIGl0cyBpbnRlbmRlZCBwdXJwb3NlIGFuZCwgaW1wb3J0YW50bHksIHdoYXQgdGhlIGFudGljaXBhdGVkIFwibGFyZ2UgcGFnZVwiIGVudGFpbHMuIFRoYXQgY2xhcmlmaWNhdGlvbiBpcyBrZXkuIEtub3dpbmcgdGhlIGRlZmluaXRpb24gb2YgXCJsYXJnZVwiIHdpdGhpbiB0aGlzIHNwZWNpZmljIHN5c3RlbSBpcyBlc3NlbnRpYWwgdG8gYXZvaWQgcG90ZW50aWFsIHBlcmZvcm1hbmNlIGJvdHRsZW5lY2tzIG9yIHVuZXhwZWN0ZWQgYmVoYXZpb3IuIEVzc2VudGlhbGx5LCBJIG5lZWQgdG8gcGlucG9pbnQgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgYHNwbGl0X2xhcmdlX3BhZ2VgIGJlZm9yZSBJIGNhbiBldmFsdWF0ZSBhbnl0aGluZyBmdXJ0aGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjozOTIxLCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDc6NTQ6NDIuODM2NjUwOTQxWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU3Njg4OTc2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNwbGl0X2xhcmdlX3BhZ2VcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jPTkzMj1zdGF0aWMgcGdwcm90X3QgcGdwcm90X2NsZWFyX3Byb3Rub25lX2JpdHMocGdwcm90X3QgcHJvdClcXG4tLVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtOTQ4LVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM6OTQ5OnN0YXRpYyBpbnQgX19zaG91bGRfc3BsaXRfbGFyZ2VfcGFnZShwdGVfdCAqa3B0ZSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLFxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtOTUwLVxcdFxcdFxcdFxcdCAgICAgc3RydWN0IGNwYV9kYXRhICpjcGEpXFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTEwOTUtXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzoxMDk2OnN0YXRpYyBpbnQgc2hvdWxkX3NwbGl0X2xhcmdlX3BhZ2UocHRlX3QgKmtwdGUsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcyxcXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTEwOTctXFx0XFx0XFx0XFx0ICAgc3RydWN0IGNwYV9kYXRhICpjcGEpXFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTExMDQtXFx0c3Bpbl9sb2NrKFxcdTAwMjZwZ2RfbG9jayk7XFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzoxMTA1OlxcdGRvX3NwbGl0ID0gX19zaG91bGRfc3BsaXRfbGFyZ2VfcGFnZShrcHRlLCBhZGRyZXNzLCBjcGEpO1xcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTEwNi1cXHRzcGluX3VubG9jayhcXHUwMDI2cGdkX2xvY2spO1xcbi0tXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYz0xMTExPXN0YXRpYyB2b2lkIHNwbGl0X3NldF9wdGUoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICpwdGUsIHVuc2lnbmVkIGxvbmcgcGZuLFxcbi0tXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xMTE4LVxcdC8qXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzoxMTE5OlxcdCAqIElmIHNob3VsZF9zcGxpdF9sYXJnZV9wYWdlKCkgZGlzY292ZXJlZCBhbiBpbmNvbnNpc3RlbnQgbWFwcGluZyxcXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTExMjAtXFx0ICogcmVtb3ZlIHRoZSBpbnZhbGlkIHByb3RlY3Rpb24gaW4gdGhlIHNwbGl0IG1hcHBpbmcuXFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTExMzMtXFx0ICogZml4ZWQgdHJpdmlhbGx5IGFzIHRoYXQgd291bGQgcmVxdWlyZSB0byByZXNjYW4gdGhlIG5ld2x5XFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzoxMTM0OlxcdCAqIGluc3RhbGxlZCBQTUQgbWFwcGluZ3MgYWZ0ZXIgcmV0dXJuaW5nIGZyb20gc3BsaXRfbGFyZ2VfcGFnZSgpXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xMTM1LVxcdCAqIHNvIGFuIGV2ZW50dWFsIGZ1cnRoZXIgc3BsaXQgY2FuIGFsbG9jYXRlIHRoZSBuZWNlc3NhcnkgUFRFXFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jPTExNDc9c3RhdGljIGludFxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM6MTE0ODpfX3NwbGl0X2xhcmdlX3BhZ2Uoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICprcHRlLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xMTQ5LVxcdFxcdCAgIHB0ZV90ICpwYmFzZSlcXG4tLVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTI1Mi1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjEyNTM6c3RhdGljIGludCBzcGxpdF9sYXJnZV9wYWdlKHN0cnVjdCBjcGFfZGF0YSAqY3BhLCBwdGVfdCAqa3B0ZSxcXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTEyNTQtXFx0XFx0XFx0ICAgIHVuc2lnbmVkIGxvbmcgYWRkcmVzcylcXG4tLVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTI2NS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjEyNjY6XFx0aWYgKF9fc3BsaXRfbGFyZ2VfcGFnZShjcGEsIGtwdGUsIGFkZHJlc3MsIHB0ZSkpXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xMjY3LVxcdFxcdHB0ZV9mcmVlX2tlcm5lbChcXHUwMDI2aW5pdF9tbSwgcHRlKTtcXG4tLVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9MTg2OD1zdGF0aWMgaW50IF9fY2hhbmdlX3BhZ2VfYXR0cihzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgaW50IHByaW1hcnkpXFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTE5MjYtXFx0ICovXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzoxOTI3OlxcdGRvX3NwbGl0ID0gc2hvdWxkX3NwbGl0X2xhcmdlX3BhZ2Uoa3B0ZSwgYWRkcmVzcywgY3BhKTtcXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTE5MjgtXFx0LypcXG4tLVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTkzOC1cXHQgKi9cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjE5Mzk6XFx0ZXJyID0gc3BsaXRfbGFyZ2VfcGFnZShjcGEsIGtwdGUsIGFkZHJlc3MpO1xcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTk0MC1cXHRpZiAoIWVycilcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDc6NTQ6NDIuODk0MzQ0Mzc2WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTIyMzc2MDMzNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFNldCBNZW1vcnkgRnVuY3Rpb25zIGluIHRoZSB4ODYgQXJjaGl0ZWN0dXJlKipcblxuT2theSwgc28gSSdtIGRpZ2dpbmcgaW50byBob3cgbWVtb3J5IGF0dHJpYnV0ZXMgYXJlIGNoYW5nZWQsIHNwZWNpZmljYWxseSB3aXRoaW4gdGhlIHg4NiBhcmNoaXRlY3R1cmUuIEl0IGxvb2tzIGxpa2UgdGhlIGZ1bmN0aW9ucyBgc3BsaXRfbGFyZ2VfcGFnZWAgYW5kIGBfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlc2AgYXJlIHRoZSBpbnRlcm5hbCB3b3JraG9yc2VzIHdpdGhpbiBgYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuY2AuIFRoZXkncmUgY2FsbGVkIGJ5IGBfX2NoYW5nZV9wYWdlX2F0dHJgIGFuZCBgY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzYCwgcmVzcGVjdGl2ZWx5LiBUaGVzZSBpbiB0dXJuIGFyZSBpbnZva2VkIGJ5IGBjaGFuZ2VfcGFnZV9hdHRyX3NldF9jbHJgLCB3aGljaCBpcyB0aGUgdmVyeSBoZWFydCBvZiB0aGUgYHNldF9tZW1vcnlfKmAgZmFtaWx5IG9mIGZ1bmN0aW9ucy5cblxuVGhlcmVmb3JlLCB0aGUga2V5IHN5bWJvbHMgSSBuZWVkIHRvIGZvY3VzIG9uIGFyZTpcbiogICBgc3BsaXRfbGFyZ2VfcGFnZWBcbiogICBgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXNgXG4qICAgYF9fc3BsaXRfbGFyZ2VfcGFnZWBcblxuSG9sZCBvbiBhIHNlY29uZC4gSSBqdXN0IHJlYWxpemVkIGBfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlc2AsIGBzcGxpdF9sYXJnZV9wYWdlYCBhbmQgYF9fc3BsaXRfbGFyZ2VfcGFnZWAgYXJlIGFsbCBkZWNsYXJlZCBhcyBzdGF0aWMuIERvZXMgdGhhdCBpbXBhY3QgdGhlIGFuYWx5c2lzPyBMZXQgbWUgcXVpY2tseSBjb25zaWRlciB0aGlzLiAqQ2FuKiB3ZSBmb2N1cyBvbiB0aGVzZT8gV2VsbCwgc3l6a2FsbGVyICpjYW4qIGZvY3VzIG9uIHN0YXRpYyBmdW5jdGlvbnMgYXMgbG9uZyBhcyB0aGV5IGFyZSBwcmVzZW50IGluIHRoZSBrZXJuZWwgaW1hZ2UsIHdoaWNoIHRoZXkgc2hvdWxkIGJlLiBUaGF0J3MgZ29vZCB0byBrbm93LiBOb3csIGFyZSB0aGVyZSBhbnkgcmVsZXZhbnQga2VybmVsIGNvbmZpZ3VyYXRpb25zIGhlcmU/IEkgc2hvdWxkIGNoZWNrIGlmIGBDT05GSUdfWDg2X1BBVGAgaXMgZGVmaW5lZC4gVGhpcyBjb3VsZCBiZSBpbXBvcnRhbnQgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIGNvbnRleHQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUzMTAsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMjYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDc6NTQ6NDguMTE4MTA2OTVaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMyMzk3MTYxNCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgWDg2X1BBVFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gveDg2L0tjb25maWc9MTY5MT1jb25maWcgTVRSUl9TQU5JVElaRVJfU1BBUkVfUkVHX05SX0RFRkFVTFRcXG4tLVxcbmFyY2gveDg2L0tjb25maWctMTY5OS1cXG5hcmNoL3g4Ni9LY29uZmlnOjE3MDA6Y29uZmlnIFg4Nl9QQVRcXG5hcmNoL3g4Ni9LY29uZmlnLTE3MDEtXFx0ZGVmX2Jvb2wgeVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwNzo1NDo0OC40NDIwODM3NDRaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTkzOTYzNzI5NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFBhZ2UgVGFibGUgRGVzY3JpcHRvciBCdWcgRml4KipcblxuT2theSwgc28gYFg4Nl9QQVRgIGlzIGRlZmluZWQgYXMgYSBib29sZWFuIChgZGVmX2Jvb2wgeWApLCBtZWFuaW5nIGl0J3MgYWx3YXlzIGVuYWJsZWQuIFRoYXQncyBhIGdpdmVuLiBOb3csIGxldCdzIGNvbnNpZGVyIGBDT05GSUdfREVCVUdfUEFHRUFMTE9DYC4gSSBzZWUgbWVudGlvbnMgb2YgYGRlYnVnX3BhZ2VhbGxvY19lbmFibGVkKClgIGluIHRoZSBjb2RlLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGlzIHBhdGNoICpyZXF1aXJlcyogYERFQlVHX1BBR0VBTExPQ2AuIEZyb20gYSBxdWljayBnbGFuY2UsIHRoZSBwYXRjaCBpdHNlbGYgZG9lc24ndCBzZWVtIHRvIGRlcGVuZCBvbiBpdC4gSXQgc2VlbXMgdG8gYmUgY2xlYW5pbmcgdXAgYSBidWcg4oCTIHNvbWV0aGluZyBhYm91dCBgcGFnZXRhYmxlX2ZyZWVgIGJlaW5nIGluY29ycmVjdGx5IHVzZWQgd2hlcmUgYHB0ZV9mcmVlX2tlcm5lbGAgb3IgYHBhZ2V0YWJsZV9kdG9yX2ZyZWVgIHNob3VsZCBoYXZlIGJlZW4gY2FsbGVkLlxuXG5UaGUgcm9vdCBvZiB0aGUgaXNzdWUgYXBwZWFycyB0byBiZSBhcm91bmQgaG93IHBhZ2UgdGFibGUgZGVzY3JpcHRvcnMgKHB0ZGVzYykgYW5kIHBhZ2UgdGFibGVzIHRoZW1zZWx2ZXMgYXJlIGJlaW5nIGZyZWVkLiBUaGUgcGF0Y2ggc2VlbXMgdG8gYmUgYWRkcmVzc2luZyB0aG9zZSBpbmNvcnJlY3QgY2FsbHMgaW4gdGhlIGBzcGxpdF9sYXJnZV9wYWdlYCBmdW5jdGlvbi4gSXQgbG9va3MgbGlrZSBgcGFnZXRhYmxlX2FsbG9jYCBpcyBiZWluZyBjaGFuZ2VkIHRvIGBwdGVfYWxsb2Nfb25lX2tlcm5lbGAgYW5kIGBwYWdldGFibGVfZnJlZWAgaXMgYmVpbmcgY2hhbmdlZCB0byBgcHRlX2ZyZWVfa2VybmVsYC4gQWRkaXRpb25hbGx5LCBpbiBgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXNgLCB0aGUgY29kZSBzZWVtcyB0byBiZSBjaGVja2luZyBgUGFnZVRhYmxlKHB0ZGVzY19wYWdlKHB0ZGVzYykpYCBhbmQgdGhlbiBjYWxsaW5nIGVpdGhlciBgcGFnZXRhYmxlX2R0b3JfZnJlZShwdGRlc2MpYCBvciBgcGFnZXRhYmxlX2ZyZWUocHRkZXNjKWAuXG5cbkkgbmVlZCB0byBjb25maXJtIHRoZXJlIGFyZW4ndCBhbnkgc3BlY2lmaWMgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gcGFnZSB0YWJsZSBkZXNjcmlwdG9ycy4gTm8sIGl0J3MgYSBjb3JlIG1lbW9yeSBtYW5hZ2VtZW50IGZlYXR1cmUuIEFuZCB3aGF0IGFib3V0IGBzZXRfbWVtb3J5LmNgPyBOb3BlLCB0aGF0J3MgYWxzbyBqdXN0IGNvcmUgeDg2IG1lbW9yeSBtYW5hZ2VtZW50IGNvZGUuXG5cbkFscmlnaHQsIG5vdyBJIG5lZWQgdG8gZGlnIGludG8gYHNldF9tZW1vcnkuY2AgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXMgbHVya2luZyB0aGVyZSB0aGF0IG1pZ2h0IGJlIHJlbGV2YW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjo1OTk0LCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mjg2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDA3OjU0OjU0LjM4MTcyMjg2MVoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjIzNDQ3MDUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiI2lmZGVmIENPTkZJR19cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jPTc5PXN0YXRpYyBpbmxpbmUgcGdwcm90X3QgY2FjaGVtb2RlMnBncHJvdChlbnVtIHBhZ2VfY2FjaGVfbW9kZSBwY20pXFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTgzLVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM6ODQ6I2lmZGVmIENPTkZJR19QUk9DX0ZTXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy04NS1zdGF0aWMgdW5zaWduZWQgbG9uZyBkaXJlY3RfcGFnZXNfY291bnRbUEdfTEVWRUxfTlVNXTtcXG4tLVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9MTM5PXN0YXRpYyBpbmxpbmUgdm9pZCBjb2xsYXBzZV9wYWdlX2NvdW50KGludCBsZXZlbCkgeyB9XFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTE0MS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjE0MjojaWZkZWYgQ09ORklHX1g4Nl9DUEFfU1RBVElTVElDU1xcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTQzLVxcbi0tXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYz0yMjQ9d2l0aGluKHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpXFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTIyOC1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjIyOTojaWZkZWYgQ09ORklHX1g4Nl82NFxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMjMwLVxcbi0tXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYz0yOTg9c3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIGZpeF9hZGRyKHVuc2lnbmVkIGxvbmcgYWRkcilcXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTI5OS17XFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzozMDA6I2lmZGVmIENPTkZJR19YODZfNjRcXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTMwMS1cXHRyZXR1cm4gKGxvbmcpKGFkZHIgXFx1MDAzY1xcdTAwM2MgMSkgXFx1MDAzZVxcdTAwM2UgMTtcXG4tLVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9MzU1PUVYUE9SVF9TWU1CT0xfR1BMKGNsZmx1c2hfY2FjaGVfcmFuZ2UpO1xcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMzU2LVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM6MzU3OiNpZmRlZiBDT05GSUdfQVJDSF9IQVNfUE1FTV9BUElcXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTM1OC12b2lkIGFyY2hfaW52YWxpZGF0ZV9wbWVtKHZvaWQgKmFkZHIsIHNpemVfdCBzaXplKVxcbi0tXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYz0zNjI9RVhQT1JUX1NZTUJPTF9HUEwoYXJjaF9pbnZhbGlkYXRlX3BtZW0pO1xcbi0tXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0zNjQtXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzozNjU6I2lmZGVmIENPTkZJR19BUkNIX0hBU19DUFVfQ0FDSEVfSU5WQUxJREFURV9NRU1SRUdJT05cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTM2Ni1ib29sIGNwdV9jYWNoZV9oYXNfaW52YWxpZGF0ZV9tZW1yZWdpb24odm9pZClcXG4tLVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9NTA1PXN0YXRpYyBib29sIG92ZXJsYXBzKHVuc2lnbmVkIGxvbmcgcjFfc3RhcnQsIHVuc2lnbmVkIGxvbmcgcjFfZW5kLFxcbi0tXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy01MTEtXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzo1MTI6I2lmZGVmIENPTkZJR19QQ0lfQklPU1xcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtNTEzLS8qXFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jPTkwOD1zdGF0aWMgdm9pZCBfX3NldF9wbWRfcHRlKHB0ZV90ICprcHRlLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsIHB0ZV90IHB0ZSlcXG4tLVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtOTExLVxcdHNldF9wdGVfYXRvbWljKGtwdGUsIHB0ZSk7XFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzo5MTI6I2lmZGVmIENPTkZJR19YODZfMzJcXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTkxMy1cXHR7XFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jPTE5NTE9c3RhdGljIGludCBjcGFfcHJvY2Vzc19hbGlhcyhzdHJ1Y3QgY3BhX2RhdGEgKmNwYSlcXG4tLVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTk4Ni1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjE5ODc6I2lmZGVmIENPTkZJR19YODZfNjRcXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTE5ODgtXFx0LypcXG4tLVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9MjI4ND1FWFBPUlRfU1lNQk9MKHNldF9tZW1vcnlfd2IpO1xcbi0tXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0yMjg2LS8qIFByZXZlbnQgc3BlY3VsYXRpdmUgYWNjZXNzIHRvIGEgcGFnZSBieSBtYXJraW5nIGl0IG5vdC1wcmVzZW50ICovXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzoyMjg3OiNpZmRlZiBDT05GSUdfWDg2XzY0XFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0yMjg4LWludCBzZXRfbWNlX25vc3BlYyh1bnNpZ25lZCBsb25nIHBmbilcXG4tLVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9MjY3OT1pbnQgc2V0X2RpcmVjdF9tYXBfdmFsaWRfbm9mbHVzaChzdHJ1Y3QgcGFnZSAqcGFnZSwgdW5zaWduZWQgbnIsIGJvb2wgdmFsaWQpXFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTI2ODYtXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzoyNjg3OiNpZmRlZiBDT05GSUdfREVCVUdfUEFHRUFMTE9DXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0yNjg4LXZvaWQgX19rZXJuZWxfbWFwX3BhZ2VzKHN0cnVjdCBwYWdlICpwYWdlLCBpbnQgbnVtcGFnZXMsIGludCBlbmFibGUpXFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jPTI3NzA9aW50IF9faW5pdCBrZXJuZWxfdW5tYXBfcGFnZXNfaW5fcGdkKHBnZF90ICpwZ2QsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcyxcXG4tLVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMjgwMi0gKi9cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjI4MDM6I2lmZGVmIENPTkZJR19DUEFfREVCVUdcXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTI4MDQtI2luY2x1ZGUgXFxcImNwYS10ZXN0LmNcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDA3OjU0OjU0LjQ0NDA3MjM4NloiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNTgzMDEyNDM5MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIEFuYWx5c2lzOiBYODYgQ29yZSBQYWdlIFRhYmxlIENvbGxhcHNlKipcblxuT2theSwgdGhpcyBwYXRjaCBpcyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuIEl0J3MgdG91Y2hpbmcgY29yZSB4ODYgY29kZSByZWxhdGVkIHRvIHBhZ2UgdGFibGUgbWFuYWdlbWVudCwgc3BlY2lmaWNhbGx5IGxhcmdlIHBhZ2UgY29sbGFwc2luZyBhbmQgc3BsaXR0aW5nLiBUaGF0J3MgYSBwcmltZSB0YXJnZXQgZm9yIGZpbmRpbmcgbWVtb3J5IGNvcnJ1cHRpb24gaXNzdWVzLlxuXG5NeSBpbW1lZGlhdGUgZm9jdXMgd2lsbCBiZSBvbiB0aGVzZSBmdW5jdGlvbnM6XG5cbiogICBgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXNgXG4qICAgYHNwbGl0X2xhcmdlX3BhZ2VgXG4qICAgYF9fc3BsaXRfbGFyZ2VfcGFnZWBcblxuSSdtIGRvdWJsZS1jaGVja2luZywganVzdCB0byBiZSBzdXJlLi4uIHllcCwgdGhvc2UgYXJlIHRoZSBtb2RpZmllZCBmdW5jdGlvbnMuXG5cbk5vdywgSSBuZWVkIHRvIHRoaW5rIGFib3V0IHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zLiBgQ09ORklHX1g4Nl9QQVRgIGlzIGEgZGVmYXVsdCBcInlcIiwgc28gdGhhdCdzIGNvdmVyZWQuIGBDT05GSUdfREVCVUdfUEFHRUFMTE9DYCBkaWQgY2F0Y2ggbXkgZXllIGJlY2F1c2Ugb2YgdGhlIGNvbmRpdGlvbmFsIGxvZ2ljIGluIGBzcGxpdF9sYXJnZV9wYWdlYCwgYnV0IHRoZSBjcnVjaWFsIGBwdGVfZnJlZV9rZXJuZWxgIGNhbGxzIGFyZW4ndCBkZXBlbmRlbnQgb24gaXQgYXQgcnVudGltZS4gSXQncyBhIG5pY2UtdG8taGF2ZSwgYW5kIG1pZ2h0IGV4cG9zZSBkaWZmZXJlbnQgbG9ja2luZyBwYXRocywgYnV0IHRoZSBjb3JlIGlzc3VlIGlzbid0IGdhdGVkIGJ5IGl0LiBBbmQsIGhvbmVzdGx5LCBTeXprYWxsZXIgcHJvYmFibHkgYWxyZWFkeSBoYXMgS0FTQU4gZW5hYmxlZCwgc28gdGhlIHJpc2sgaXNuJ3QgdGhhdCBoaWdoLiBTbyBJIHdpbGwgbGVhdmUgYEVuYWJsZUNvbmZpZ3NgIGVtcHR5IGZvciBub3cgdG8gYXZvaWQgY29uc3RyYWluaW5nIHRoZSBmdXp6ZXIuXG5cblRoZSBwYXRjaCdzIGNvcmUgaXMgYWJvdXQgdGhlIGNvcnJlY3QgZnJlZWluZyBvZiBwYWdlIHRhYmxlcyBhZnRlciB0aGV5J3JlIGNvbGxhcHNlZCBvciBzcGxpdC4gVGhlIGZpeCBhZGRyZXNzZXMgYSBidWcgd2hlcmUgYHBhZ2V0YWJsZV9mcmVlYCB3YXMgdXNlZCB3aGVuIGBwdGVfZnJlZV9rZXJuZWxgIG9yIGBwYWdldGFibGVfZHRvcl9mcmVlYCB3YXMgbmVlZGVkLiBHaXZlbiB0aGF0IHRoaXMgd2FzIGxpa2VseSBmb3VuZCBieSBzeXpib3QsIGl0J3MgdmVyeSByZWxldmFudCBmb3IgZnV6emluZywgYmVjYXVzZSBpdCBtZWFucyB0aGUgY29kZSBpcyBub3Qgcm9idXN0IGVub3VnaCB0byBkZWFsIHdpdGggYWxsIGtpbmRzIG9mIHN0YXRlcy5cblxuSSBjaGVja2VkIGZvciByZWFjaGFiaWxpdHkgZnJvbSB1c2VyIHNwYWNlLiBUaGUgYHNldF9tZW1vcnlfKmAgZnVuY3Rpb25zIGFyZSBvZnRlbiB1c2VkIGJ5IHRoaW5ncyBsaWtlIEJQRiBKSVQsIG1vZHVsZSBsb2FkaW5nLCBrcHJvYmVzLCBhbmQgZnRyYWNlLCBzbyBpdCdzIGRlZmluaXRlbHkgcmVhY2hhYmxlLlxuXG4qKkhlcmUncyB0aGUgZnV6emluZyBzZXR1cCBJJ2xsIHJlY29tbWVuZDoqKlxuXG4qICAgKipXb3J0aEZ1enppbmc6IFRydWUqKlxuKiAgICoqRm9jdXNTeW1ib2xzOioqXG4gICAgKiAgIGBfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlc2BcbiAgICAqICAgYHNwbGl0X2xhcmdlX3BhZ2VgXG4gICAgKiAgIGBfX3NwbGl0X2xhcmdlX3BhZ2VgXG4qICAgKipFbmFibGVDb25maWdzOioqIChFbXB0eS4gTm8gZXh0cmEgY29uZmlndXJhdGlvbiBuZWVkZWQpXG5cblRoaXMgc2hvdWxkIGJlIGEgZnJ1aXRmdWwgdGFyZ2V0LiBUaGUgcGF0Y2ggYWRkcmVzc2VzIGEgY3JpdGljYWwgbWVtb3J5IG1hbmFnZW1lbnQgaXNzdWUsIGFuZCBpcyByZWFjaGFibGUgZnJvbSBhIHdpZGUgdmFyaWV0eSBvZiB1c2Vyc3BhY2UgYWN0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6ODIzNiwiT3V0cHV0VG9rZW5zIjoxNTIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDg1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDA3OjU1OjEwLjI3NDE5ODkzN1oiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0MDMxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXNcIixcbiAgICBcInNwbGl0X2xhcmdlX3BhZ2VcIixcbiAgICBcIl9fc3BsaXRfbGFyZ2VfcGFnZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGNvcmUgeDg2IHBhZ2UgYXR0cmlidXRlIChDUEEpIG1hbmlwdWxhdGlvbiBmdW5jdGlvbnMgdG8gY29ycmVjdGx5IGZyZWUgcGFnZSB0YWJsZXMgdXNpbmcgcHRlX2ZyZWVfa2VybmVsIGFuZCBwYWdldGFibGVfZHRvcl9mcmVlIGluc3RlYWQgb2YgcGFnZXRhYmxlX2ZyZWUuIFRoZXNlIGZ1bmN0aW9ucyBhcmUgcmVhY2hhYmxlIHZpYSBzZXRfbWVtb3J5XyogQVBJcyAoZS5nLiwgdXNlZCBieSBCUEYgSklULCBtb2R1bGUgbG9hZGluZykgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIG1lbW9yeSBsZWFrcyBvciB1c2UtYWZ0ZXItZnJlZSBpc3N1ZXMgb2NjdXIgZHVyaW5nIGxhcmdlIHBhZ2Ugc3BsaXR0aW5nIG9yIGNvbGxhcHNpbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXNcIixcbiAgICBcInNwbGl0X2xhcmdlX3BhZ2VcIixcbiAgICBcIl9fc3BsaXRfbGFyZ2VfcGFnZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGNvcmUgeDg2IHBhZ2UgYXR0cmlidXRlIChDUEEpIG1hbmlwdWxhdGlvbiBmdW5jdGlvbnMgdG8gY29ycmVjdGx5IGZyZWUgcGFnZSB0YWJsZXMgdXNpbmcgcHRlX2ZyZWVfa2VybmVsIGFuZCBwYWdldGFibGVfZHRvcl9mcmVlIGluc3RlYWQgb2YgcGFnZXRhYmxlX2ZyZWUuIFRoZXNlIGZ1bmN0aW9ucyBhcmUgcmVhY2hhYmxlIHZpYSBzZXRfbWVtb3J5XyogQVBJcyAoZS5nLiwgdXNlZCBieSBCUEYgSklULCBtb2R1bGUgbG9hZGluZykgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIG1lbW9yeSBsZWFrcyBvciB1c2UtYWZ0ZXItZnJlZSBpc3N1ZXMgb2NjdXIgZHVyaW5nIGxhcmdlIHBhZ2Ugc3BsaXR0aW5nIG9yIGNvbGxhcHNpbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowbqr9r[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-22 07:25:00 +0000 UTC FinishedAt: 2026-07-22 07:55:12 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "a1ea25f7f6e9c4c833b3960375d15351585a03f2", "config_name": "upstream-apparmor-kasan.config", "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "a1ea25f7f6e9c4c833b3960375d15351585a03f2", "config_name": "upstream-apparmor-kasan.config", "series_id": "3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "__cpa_collapse_large_pages", "split_large_page", "__split_large_page" ], "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+CgkJCTx0ZD4yMDI2LzA3LzIyIDA3OjU0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7X19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXMmIzM0OywKICAgICYjMzQ7c3BsaXRfbGFyZ2VfcGFnZSYjMzQ7LAogICAgJiMzNDtfX3NwbGl0X2xhcmdlX3BhZ2UmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgY29yZSB4ODYgcGFnZSBhdHRyaWJ1dGUgKENQQSkgbWFuaXB1bGF0aW9uIGZ1bmN0aW9ucyB0byBjb3JyZWN0bHkgZnJlZSBwYWdlIHRhYmxlcyB1c2luZyBwdGVfZnJlZV9rZXJuZWwgYW5kIHBhZ2V0YWJsZV9kdG9yX2ZyZWUgaW5zdGVhZCBvZiBwYWdldGFibGVfZnJlZS4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgdmlhIHNldF9tZW1vcnlfKiBBUElzIChlLmcuLCB1c2VkIGJ5IEJQRiBKSVQsIG1vZHVsZSBsb2FkaW5nKSBhbmQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgbm8gbWVtb3J5IGxlYWtzIG9yIHVzZS1hZnRlci1mcmVlIGlzc3VlcyBvY2N1ciBkdXJpbmcgbGFyZ2UgcGFnZSBzcGxpdHRpbmcgb3IgY29sbGFwc2luZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwNzo1NDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDc3MWQ4YzdjODk5ODg0OTY0Njg4ODUxZWIwZWY4NThmZjc2OWNmNzdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAyMiAwNzo1NDoyOCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jIGIvYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuY1xuaW5kZXggMzAxZmI5ZTc3ZDkxYmEuLjA3ODY4OWFhNzIwNmY4IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuY1xuQEAgLTQzOSw3ICYjNDM7NDM5LDE1IEBAIHN0YXRpYyB2b2lkIF9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzKHN0cnVjdCBjcGFfZGF0YSAqY3BhKVxuIFxuIFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHB0ZGVzYywgdG1wLCBcdTAwMjZwZ3RhYmxlcywgcHRfbGlzdCkge1xuIFx0XHRsaXN0X2RlbChcdTAwMjZwdGRlc2MtXHUwMDNlcHRfbGlzdCk7XG4tXHRcdHBhZ2V0YWJsZV9mcmVlKHB0ZGVzYyk7XG4mIzQzO1x0XHQvKlxuJiM0MztcdFx0ICogT25seSBlYXJseSBhbGxvYyYjMzk7ZCBkaXJlY3QgbWFwIHNob3VsZCBub3QgYmUgZmxhZ2dlZCBQR190YWJsZVxuJiM0MztcdFx0ICogaGVyZSBhbmQgdGhvc2Ugc2hvdWxkbiYjMzk7dCBiZSBjb2xsYXBzZWQuIEhvd2V2ZXIgYmUgYWJ1bmRhbnRseVxuJiM0MztcdFx0ICogY2F1dGlvdXMgYW5kIGhhbmRsZSB0aGUgIVBHX3RhYmxlIGNhc2UgdG9vLlxuJiM0MztcdFx0ICovXG4mIzQzO1x0XHRpZiAoUGFnZVRhYmxlKChwdGRlc2NfcGFnZShwdGRlc2MpKSkpXG4mIzQzO1x0XHRcdHBhZ2V0YWJsZV9kdG9yX2ZyZWUocHRkZXNjKTtcbiYjNDM7XHRcdGVsc2VcbiYjNDM7XHRcdFx0cGFnZXRhYmxlX2ZyZWUocHRkZXNjKTtcbiBcdH1cbiB9XG4gXG5AQCAtMTEzOCwxMSAmIzQzOzExNDYsMTAgQEAgc3RhdGljIHZvaWQgc3BsaXRfc2V0X3B0ZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKnB0ZSwgdW5zaWduZWQgbG9uZyBwZm4sXG4gXG4gc3RhdGljIGludFxuIF9fc3BsaXRfbGFyZ2VfcGFnZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKmtwdGUsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcyxcbi1cdFx0ICAgc3RydWN0IHB0ZGVzYyAqcHRkZXNjKVxuJiM0MztcdFx0ICAgcHRlX3QgKnBiYXNlKVxuIHtcbiBcdHVuc2lnbmVkIGxvbmcgbHBhZGRyLCBscGluYywgcmVmX3BmbiwgcGZuLCBwZm5pbmMgPSAxO1xuLVx0c3RydWN0IHBhZ2UgKmJhc2UgPSBwdGRlc2NfcGFnZShwdGRlc2MpO1xuLVx0cHRlX3QgKnBiYXNlID0gKHB0ZV90ICopcGFnZV9hZGRyZXNzKGJhc2UpO1xuJiM0MztcdHN0cnVjdCBwYWdlICpiYXNlID0gdmlydF90b19wYWdlKHBiYXNlKTtcbiBcdHVuc2lnbmVkIGludCBpLCBsZXZlbDtcbiBcdHBncHJvdF90IHJlZl9wcm90O1xuIFx0Ym9vbCBueCwgcnc7XG5AQCAtMTI0NiwxOCAmIzQzOzEyNTMsMTggQEAgX19zcGxpdF9sYXJnZV9wYWdlKHN0cnVjdCBjcGFfZGF0YSAqY3BhLCBwdGVfdCAqa3B0ZSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLFxuIHN0YXRpYyBpbnQgc3BsaXRfbGFyZ2VfcGFnZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKmtwdGUsXG4gXHRcdFx0ICAgIHVuc2lnbmVkIGxvbmcgYWRkcmVzcylcbiB7XG4tXHRzdHJ1Y3QgcHRkZXNjICpwdGRlc2M7XG4mIzQzO1x0cHRlX3QgKnB0ZTtcbiBcbiBcdGlmICghZGVidWdfcGFnZWFsbG9jX2VuYWJsZWQoKSlcbiBcdFx0c3Bpbl91bmxvY2soXHUwMDI2Y3BhX2xvY2spO1xuLVx0cHRkZXNjID0gcGFnZXRhYmxlX2FsbG9jKEdGUF9LRVJORUwsIDApO1xuJiM0MztcdHB0ZSA9IHB0ZV9hbGxvY19vbmVfa2VybmVsKFx1MDAyNmluaXRfbW0pO1xuIFx0aWYgKCFkZWJ1Z19wYWdlYWxsb2NfZW5hYmxlZCgpKVxuIFx0XHRzcGluX2xvY2soXHUwMDI2Y3BhX2xvY2spO1xuLVx0aWYgKCFwdGRlc2MpXG4mIzQzO1x0aWYgKCFwdGUpXG4gXHRcdHJldHVybiAtRU5PTUVNO1xuIFxuLVx0aWYgKF9fc3BsaXRfbGFyZ2VfcGFnZShjcGEsIGtwdGUsIGFkZHJlc3MsIHB0ZGVzYykpXG4tXHRcdHBhZ2V0YWJsZV9mcmVlKHB0ZGVzYyk7XG4mIzQzO1x0aWYgKF9fc3BsaXRfbGFyZ2VfcGFnZShjcGEsIGtwdGUsIGFkZHJlc3MsIHB0ZSkpXG4mIzQzO1x0XHRwdGVfZnJlZV9rZXJuZWwoXHUwMDI2aW5pdF9tbSwgcHRlKTtcbiBcbiBcdHJldHVybiAwO1xuIH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwNzo1NDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlcyYjMzQ7LAogICAgJiMzNDtzcGxpdF9sYXJnZV9wYWdlJiMzNDssCiAgICAmIzM0O19fc3BsaXRfbGFyZ2VfcGFnZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBjb3JlIHg4NiBwYWdlIGF0dHJpYnV0ZSAoQ1BBKSBtYW5pcHVsYXRpb24gZnVuY3Rpb25zIHRvIGNvcnJlY3RseSBmcmVlIHBhZ2UgdGFibGVzIHVzaW5nIHB0ZV9mcmVlX2tlcm5lbCBhbmQgcGFnZXRhYmxlX2R0b3JfZnJlZSBpbnN0ZWFkIG9mIHBhZ2V0YWJsZV9mcmVlLiBUaGVzZSBmdW5jdGlvbnMgYXJlIHJlYWNoYWJsZSB2aWEgc2V0X21lbW9yeV8qIEFQSXMgKGUuZy4sIHVzZWQgYnkgQlBGIEpJVCwgbW9kdWxlIGxvYWRpbmcpIGFuZCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyBtZW1vcnkgbGVha3Mgb3IgdXNlLWFmdGVyLWZyZWUgaXNzdWVzIG9jY3VyIGR1cmluZyBsYXJnZSBwYWdlIHNwbGl0dGluZyBvciBjb2xsYXBzaW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA3NzFkOGM3Yzg5OTg4NDk2NDY4ODg1MWViMGVmODU4ZmY3NjljZjc3CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFdlZCBKdWwgMjIgMDc6NTQ6MjggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jIGIvYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYwppbmRleCAzMDFmYjllNzdkOTFiYS4uMDc4Njg5YWE3MjA2ZjggMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYwpAQCAtNDM5LDcgJiM0Mzs0MzksMTUgQEAgc3RhdGljIHZvaWQgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXMoc3RydWN0IGNwYV9kYXRhICpjcGEpCiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocHRkZXNjLCB0bXAsICZhbXA7cGd0YWJsZXMsIHB0X2xpc3QpIHsKIAkJbGlzdF9kZWwoJmFtcDtwdGRlc2MtJmd0O3B0X2xpc3QpOwotCQlwYWdldGFibGVfZnJlZShwdGRlc2MpOwomIzQzOwkJLyoKJiM0MzsJCSAqIE9ubHkgZWFybHkgYWxsb2MmIzM5O2QgZGlyZWN0IG1hcCBzaG91bGQgbm90IGJlIGZsYWdnZWQgUEdfdGFibGUKJiM0MzsJCSAqIGhlcmUgYW5kIHRob3NlIHNob3VsZG4mIzM5O3QgYmUgY29sbGFwc2VkLiBIb3dldmVyIGJlIGFidW5kYW50bHkKJiM0MzsJCSAqIGNhdXRpb3VzIGFuZCBoYW5kbGUgdGhlICFQR190YWJsZSBjYXNlIHRvby4KJiM0MzsJCSAqLwomIzQzOwkJaWYgKFBhZ2VUYWJsZSgocHRkZXNjX3BhZ2UocHRkZXNjKSkpKQomIzQzOwkJCXBhZ2V0YWJsZV9kdG9yX2ZyZWUocHRkZXNjKTsKJiM0MzsJCWVsc2UKJiM0MzsJCQlwYWdldGFibGVfZnJlZShwdGRlc2MpOwogCX0KIH0KIApAQCAtMTEzOCwxMSAmIzQzOzExNDYsMTAgQEAgc3RhdGljIHZvaWQgc3BsaXRfc2V0X3B0ZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKnB0ZSwgdW5zaWduZWQgbG9uZyBwZm4sCiAKIHN0YXRpYyBpbnQKIF9fc3BsaXRfbGFyZ2VfcGFnZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKmtwdGUsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKLQkJICAgc3RydWN0IHB0ZGVzYyAqcHRkZXNjKQomIzQzOwkJICAgcHRlX3QgKnBiYXNlKQogewogCXVuc2lnbmVkIGxvbmcgbHBhZGRyLCBscGluYywgcmVmX3BmbiwgcGZuLCBwZm5pbmMgPSAxOwotCXN0cnVjdCBwYWdlICpiYXNlID0gcHRkZXNjX3BhZ2UocHRkZXNjKTsKLQlwdGVfdCAqcGJhc2UgPSAocHRlX3QgKilwYWdlX2FkZHJlc3MoYmFzZSk7CiYjNDM7CXN0cnVjdCBwYWdlICpiYXNlID0gdmlydF90b19wYWdlKHBiYXNlKTsKIAl1bnNpZ25lZCBpbnQgaSwgbGV2ZWw7CiAJcGdwcm90X3QgcmVmX3Byb3Q7CiAJYm9vbCBueCwgcnc7CkBAIC0xMjQ2LDE4ICYjNDM7MTI1MywxOCBAQCBfX3NwbGl0X2xhcmdlX3BhZ2Uoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICprcHRlLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsCiBzdGF0aWMgaW50IHNwbGl0X2xhcmdlX3BhZ2Uoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICprcHRlLAogCQkJICAgIHVuc2lnbmVkIGxvbmcgYWRkcmVzcykKIHsKLQlzdHJ1Y3QgcHRkZXNjICpwdGRlc2M7CiYjNDM7CXB0ZV90ICpwdGU7CiAKIAlpZiAoIWRlYnVnX3BhZ2VhbGxvY19lbmFibGVkKCkpCiAJCXNwaW5fdW5sb2NrKCZhbXA7Y3BhX2xvY2spOwotCXB0ZGVzYyA9IHBhZ2V0YWJsZV9hbGxvYyhHRlBfS0VSTkVMLCAwKTsKJiM0MzsJcHRlID0gcHRlX2FsbG9jX29uZV9rZXJuZWwoJmFtcDtpbml0X21tKTsKIAlpZiAoIWRlYnVnX3BhZ2VhbGxvY19lbmFibGVkKCkpCiAJCXNwaW5fbG9jaygmYW1wO2NwYV9sb2NrKTsKLQlpZiAoIXB0ZGVzYykKJiM0MzsJaWYgKCFwdGUpCiAJCXJldHVybiAtRU5PTUVNOwogCi0JaWYgKF9fc3BsaXRfbGFyZ2VfcGFnZShjcGEsIGtwdGUsIGFkZHJlc3MsIHB0ZGVzYykpCi0JCXBhZ2V0YWJsZV9mcmVlKHB0ZGVzYyk7CiYjNDM7CWlmIChfX3NwbGl0X2xhcmdlX3BhZ2UoY3BhLCBrcHRlLCBhZGRyZXNzLCBwdGUpKQomIzQzOwkJcHRlX2ZyZWVfa2VybmVsKCZhbXA7aW5pdF9tbSwgcHRlKTsKIAogCXJldHVybiAwOwogfQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwNzo1NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTE0CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMzIzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFBhZ2UgVGFibGUgT3B0aW1pemF0aW9uIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgZGlnZ2luZyBpbnRvIGBhcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jYC4gSW1tZWRpYXRlbHksIG15IHNwaWRleSBzZW5zZXMgYXJlIHRpbmdsaW5nIGJlY2F1c2UgdGhhdCBmaWxlIGhhbmRsZXMgbWVtb3J5IGF0dHJpYnV0ZSBjaGFuZ2VzIG9uIHg4NiwgY3JpdGljYWwgc3R1ZmYuIEkgc2VlIGl0JiMzOTtzIG1vZGlmeWluZyBhIGZldyBrZXkgZnVuY3Rpb25zOiBgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXNgLCBgc3BsaXRfbGFyZ2VfcGFnZWAsIGFuZCBgX19zcGxpdF9sYXJnZV9wYWdlYC4KCkxvb2tpbmcgY2xvc2VyLCB0aGUgZmlyc3QgY2hhbmdlIGluIGBfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlc2Agc3VnZ2VzdHMgYSBjb25kaXRpb25hbCBjaGVjayBmb3IgdGhlIHBhZ2UgdGFibGUgZGVzY3JpcHRvciB3aXRoIGBwYWdldGFibGVfZHRvcl9mcmVlYCBiZWluZyB1c2VkIGFzIGEgcmVwbGFjZW1lbnQgdG8gYHBhZ2V0YWJsZV9mcmVlYC4gVGhlbiwgaXQgbG9va3MgbGlrZSBgc3BsaXRfbGFyZ2VfcGFnZWAgaXMgYmVpbmcgdXBkYXRlZCB0byB1c2UgYHB0ZV9hbGxvY19vbmVfa2VybmVsYCBpbnN0ZWFkIG9mIGBwYWdldGFibGVfYWxsb2NgLCB3aGljaCBpcyBhIGNoYW5nZSBJIGNhbiBpbmZlciwgYXMgd2VsbCBhcyBgcHRlX2ZyZWVfa2VybmVsYCByZXBsYWNpbmcgYHBhZ2V0YWJsZV9mcmVlYC4gQW5kIGZpbmFsbHkgYF9fc3BsaXRfbGFyZ2VfcGFnZWAgbm93IHJlY2VpdmVzIGEgYHB0ZV90ICpwYmFzZWAgaW5zdGVhZCBvZiBhIGBzdHJ1Y3QgcHRkZXNjICpwdGRlc2NgLgoKVGhlc2UgaW50ZXJuYWwgZnVuY3Rpb25zIGFyZSBpbnRlZ3JhbCB0byB0aGUgbWVjaGFuaXNtcyBiZWhpbmQgdGhlIGBzZXRfbWVtb3J5XypgIGZhbWlseSBvZiBmdW5jdGlvbnMg4oCTIHRoZSBvbmVzIHRoYXQgY29udHJvbCByZWFkLW9ubHksIHJlYWQtd3JpdGUsIGV4ZWN1dGUtbmV2ZXIsIGFuZCBleGVjdXRhYmxlIG1lbW9yeSByZWdpb25zLiBUaGF0JiMzOTtzIGEgY29yZSBmdW5jdGlvbmFsaXR5LiBHaXZlbiB0aGUgbmFtZXMgb2YgdGhlIGFmZmVjdGVkIGZ1bmN0aW9ucyBhbmQgd2hhdCB0aGV5JiMzOTtyZSBkb2luZywgdGhlIGNoYW5nZXMgYXJlIGRlZmluaXRlbHkgZnVuY3Rpb25hbCBhbmQgcmVhY2hhYmxlLCB0aGV5IGFyZSBpbXBvcnRhbnQuCgpOb3csIG15IG5leHQgdGhvdWdodCBpcyBhYm91dCBjb25kaXRpb25hbCBjb21waWxhdGlvbi4gSXMgdGhpcyBjb2RlIGFsd2F5cyBwYXJ0IG9mIGFuIHg4NiBrZXJuZWwgYnVpbGQsIG9yIGlzIGl0IGRlcGVuZGVudCBvbiBzb21lIGNvbmZpZ3VyYXRpb24gb3B0aW9uPyBJJiMzOTttIGJldHRpbmcgdGhhdCBgQ09ORklHX1g4Nl9QQVRgIGlzIGludm9sdmVkLCBidXQgSSBzaG91bGQgZG91YmxlLWNoZWNrIHRoZSBgYXJjaC94ODYvbW0vcGF0L01ha2VmaWxlYCB0byBiZSBzdXJlLiBUaGF0JiMzOTtzIHdoZXJlIHRoZSBidWlsZCBydWxlcyB3b3VsZCBiZSBkZWZpbmVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDA3OjU0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NldF9tZW1vcnkubyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L21tL3BhdC9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9tbS9wYXQvTWFrZWZpbGUtMi1cbmFyY2gveDg2L21tL3BhdC9NYWtlZmlsZTozOm9iai15XHRcdFx0XHQ6PSBzZXRfbWVtb3J5Lm8gbWVtdHlwZS5vXG5hcmNoL3g4Ni9tbS9wYXQvTWFrZWZpbGUtNC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwNzo1NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzQyCgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogNTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIGNyYWZ0ZWQgd2l0aCB0aGUgdW5kZXJzdGFuZGluZyB0aGF0IEkmIzM5O20gdGFsa2luZyB0byBhIGZlbGxvdyBleHBlcnQ6CgoqKkludmVzdGlnYXRpbmcgeDg2IENvbXBpbGF0aW9uIGFuZCBMYXJnZSBQYWdlIEhhbmRsaW5nKioKCkFscmlnaHQsIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGJ1aWxkIGFuZCBpdCBsb29rcyBsaWtlIGl0JiMzOTtzIHVuY29uZGl0aW9uYWxseSBjb21waWxpbmcgZm9yIHg4Ni4gTm8gc3VycHJpc2VzIHRoZXJlLCBnaXZlbiB0aGUgYG9iai15YCBkaXJlY3RpdmUuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIGRlbHZlIGludG8gdGhlIGxhcmdlIHBhZ2UgaGFuZGxpbmcgb24gdGhpcyB4ODYgYnVpbGQsIHNwZWNpZmljYWxseSBmb2N1c2luZyBvbiBob3cgaXQgZGVhbHMgd2l0aCBwb3RlbnRpYWwgY29hbGVzY2luZyBhbmQgc3BsaXR0aW5nIG9mIGxhcmdlIHBhZ2VzLiBJIHdhbnQgdG8gemVybyBpbiBvbiBob3cgdGhlc2UgbGFyZ2UgcGFnZSBvcGVyYXRpb25zIGFyZSBpbXBsZW1lbnRlZCBhbmQsIG1vcmUgaW1wb3J0YW50bHksIGhvdyB0aGVpciB1c2UgaXMgY29uZGl0aW9uZWQsIHNvIEkgbmVlZCB0byBjaGVjayB0aGUgaW1wbGVtZW50YXRpb25zIG9mIHRoZSBgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXNgIGFuZCBgc3BsaXRfbGFyZ2VfcGFnZWAgZnVuY3Rpb25zLiBUaGVzZSB3aWxsIGJlIGluIGBhcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jYCwgd2hpY2ggbWFrZXMgdGhlIG1vc3Qgc2Vuc2UuIEkmIzM5O2xsIHRha2UgYSBsb29rIGF0IHRoZSBpbnRlcnBsYXkgb2YgdGhvc2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMDc6NTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7X19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9NDEyPXN0YXRpYyBpbnQgY29sbGFwc2VfbGFyZ2VfcGFnZXModW5zaWduZWQgbG9uZyBhZGRyLCBzdHJ1Y3QgbGlzdF9oZWFkICpwZ3RhYmxlcyk7XG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTQxMy1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM6NDE0OnN0YXRpYyB2b2lkIF9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzKHN0cnVjdCBjcGFfZGF0YSAqY3BhKVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy00MTUte1xuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9NDU0PXN0YXRpYyB2b2lkIGNwYV9jb2xsYXBzZV9sYXJnZV9wYWdlcyhzdHJ1Y3QgY3BhX2RhdGEgKmNwYSlcbi0tXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTQ2Mi1cdHNjb3BlZF9ndWFyZChtbWFwX3dyaXRlX2xvY2ssIFx1MDAyNmluaXRfbW0pXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjQ2MzpcdFx0X19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXMoY3BhKTtcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtNDY0LX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwNzo1NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzOTIxCgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMTEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBzdW1tYXJpemVkIGFzIHlvdSByZXF1ZXN0ZWQ6CgoqKkNoZWNraW5nIGBzcGxpdF9sYXJnZV9wYWdlYCoqCgpBbHJpZ2h0LCB0aW1lIHRvIGRpdmUgaW4uIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIHplcm8gaW4gb24gdGhlIGBzcGxpdF9sYXJnZV9wYWdlYCBmdW5jdGlvbiBvciBtb2R1bGUuIEkgbmVlZCB0byByZWZyZXNoIG15IG1lbW9yeSBvbiBpdHMgcm9sZS4gSXMgaXQgZGVhbGluZyB3aXRoIFBERnMsIGltYWdlcywgdGV4dCBibG9ja3MsIG9yIHNvbWV0aGluZyBlbHNlIGVudGlyZWx5PyBXaGF0JiMzOTtzIHRoZSBjb250ZXh0PyBJcyBpdCBwYXJ0IG9mIGEgbGFyZ2VyIHdvcmtmbG93PyBJJiMzOTttIGdvaW5nIHRvIHF1aWNrbHkgcmV2aWV3IGl0cyBkb2N1bWVudGF0aW9uLCBvciB0aGUgc3Vycm91bmRpbmcgY29kZSBpZiBhdmFpbGFibGUsIHRvIHVuZGVyc3RhbmQgaXRzIGludGVuZGVkIHB1cnBvc2UgYW5kLCBpbXBvcnRhbnRseSwgd2hhdCB0aGUgYW50aWNpcGF0ZWQgJiMzNDtsYXJnZSBwYWdlJiMzNDsgZW50YWlscy4gVGhhdCBjbGFyaWZpY2F0aW9uIGlzIGtleS4gS25vd2luZyB0aGUgZGVmaW5pdGlvbiBvZiAmIzM0O2xhcmdlJiMzNDsgd2l0aGluIHRoaXMgc3BlY2lmaWMgc3lzdGVtIGlzIGVzc2VudGlhbCB0byBhdm9pZCBwb3RlbnRpYWwgcGVyZm9ybWFuY2UgYm90dGxlbmVja3Mgb3IgdW5leHBlY3RlZCBiZWhhdmlvci4gRXNzZW50aWFsbHksIEkgbmVlZCB0byBwaW5wb2ludCB0aGUgZnVuY3Rpb25hbGl0eSBvZiBgc3BsaXRfbGFyZ2VfcGFnZWAgYmVmb3JlIEkgY2FuIGV2YWx1YXRlIGFueXRoaW5nIGZ1cnRoZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMDc6NTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3BsaXRfbGFyZ2VfcGFnZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYz05MzI9c3RhdGljIHBncHJvdF90IHBncHJvdF9jbGVhcl9wcm90bm9uZV9iaXRzKHBncHJvdF90IHByb3QpXG4tLVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy05NDgtXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjk0OTpzdGF0aWMgaW50IF9fc2hvdWxkX3NwbGl0X2xhcmdlX3BhZ2UocHRlX3QgKmtwdGUsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcyxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtOTUwLVx0XHRcdFx0ICAgICBzdHJ1Y3QgY3BhX2RhdGEgKmNwYSlcbi0tXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTEwOTUtXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjEwOTY6c3RhdGljIGludCBzaG91bGRfc3BsaXRfbGFyZ2VfcGFnZShwdGVfdCAqa3B0ZSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xMDk3LVx0XHRcdFx0ICAgc3RydWN0IGNwYV9kYXRhICpjcGEpXG4tLVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xMTA0LVx0c3Bpbl9sb2NrKFx1MDAyNnBnZF9sb2NrKTtcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM6MTEwNTpcdGRvX3NwbGl0ID0gX19zaG91bGRfc3BsaXRfbGFyZ2VfcGFnZShrcHRlLCBhZGRyZXNzLCBjcGEpO1xuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xMTA2LVx0c3Bpbl91bmxvY2soXHUwMDI2cGdkX2xvY2spO1xuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9MTExMT1zdGF0aWMgdm9pZCBzcGxpdF9zZXRfcHRlKHN0cnVjdCBjcGFfZGF0YSAqY3BhLCBwdGVfdCAqcHRlLCB1bnNpZ25lZCBsb25nIHBmbixcbi0tXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTExMTgtXHQvKlxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzoxMTE5Olx0ICogSWYgc2hvdWxkX3NwbGl0X2xhcmdlX3BhZ2UoKSBkaXNjb3ZlcmVkIGFuIGluY29uc2lzdGVudCBtYXBwaW5nLFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xMTIwLVx0ICogcmVtb3ZlIHRoZSBpbnZhbGlkIHByb3RlY3Rpb24gaW4gdGhlIHNwbGl0IG1hcHBpbmcuXG4tLVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xMTMzLVx0ICogZml4ZWQgdHJpdmlhbGx5IGFzIHRoYXQgd291bGQgcmVxdWlyZSB0byByZXNjYW4gdGhlIG5ld2x5XG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjExMzQ6XHQgKiBpbnN0YWxsZWQgUE1EIG1hcHBpbmdzIGFmdGVyIHJldHVybmluZyBmcm9tIHNwbGl0X2xhcmdlX3BhZ2UoKVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xMTM1LVx0ICogc28gYW4gZXZlbnR1YWwgZnVydGhlciBzcGxpdCBjYW4gYWxsb2NhdGUgdGhlIG5lY2Vzc2FyeSBQVEVcbi0tXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jPTExNDc9c3RhdGljIGludFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzoxMTQ4Ol9fc3BsaXRfbGFyZ2VfcGFnZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKmtwdGUsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcyxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTE0OS1cdFx0ICAgcHRlX3QgKnBiYXNlKVxuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTI1Mi1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM6MTI1MzpzdGF0aWMgaW50IHNwbGl0X2xhcmdlX3BhZ2Uoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICprcHRlLFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xMjU0LVx0XHRcdCAgICB1bnNpZ25lZCBsb25nIGFkZHJlc3MpXG4tLVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xMjY1LVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzoxMjY2Olx0aWYgKF9fc3BsaXRfbGFyZ2VfcGFnZShjcGEsIGtwdGUsIGFkZHJlc3MsIHB0ZSkpXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTEyNjctXHRcdHB0ZV9mcmVlX2tlcm5lbChcdTAwMjZpbml0X21tLCBwdGUpO1xuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9MTg2OD1zdGF0aWMgaW50IF9fY2hhbmdlX3BhZ2VfYXR0cihzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgaW50IHByaW1hcnkpXG4tLVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xOTI2LVx0ICovXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjE5Mjc6XHRkb19zcGxpdCA9IHNob3VsZF9zcGxpdF9sYXJnZV9wYWdlKGtwdGUsIGFkZHJlc3MsIGNwYSk7XG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTE5MjgtXHQvKlxuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTkzOC1cdCAqL1xuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzoxOTM5Olx0ZXJyID0gc3BsaXRfbGFyZ2VfcGFnZShjcGEsIGtwdGUsIGFkZHJlc3MpO1xuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xOTQwLVx0aWYgKCFlcnIpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMDc6NTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTMxMAoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDIyNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFNldCBNZW1vcnkgRnVuY3Rpb25zIGluIHRoZSB4ODYgQXJjaGl0ZWN0dXJlKioKCk9rYXksIHNvIEkmIzM5O20gZGlnZ2luZyBpbnRvIGhvdyBtZW1vcnkgYXR0cmlidXRlcyBhcmUgY2hhbmdlZCwgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgeDg2IGFyY2hpdGVjdHVyZS4gSXQgbG9va3MgbGlrZSB0aGUgZnVuY3Rpb25zIGBzcGxpdF9sYXJnZV9wYWdlYCBhbmQgYF9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzYCBhcmUgdGhlIGludGVybmFsIHdvcmtob3JzZXMgd2l0aGluIGBhcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jYC4gVGhleSYjMzk7cmUgY2FsbGVkIGJ5IGBfX2NoYW5nZV9wYWdlX2F0dHJgIGFuZCBgY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzYCwgcmVzcGVjdGl2ZWx5LiBUaGVzZSBpbiB0dXJuIGFyZSBpbnZva2VkIGJ5IGBjaGFuZ2VfcGFnZV9hdHRyX3NldF9jbHJgLCB3aGljaCBpcyB0aGUgdmVyeSBoZWFydCBvZiB0aGUgYHNldF9tZW1vcnlfKmAgZmFtaWx5IG9mIGZ1bmN0aW9ucy4KClRoZXJlZm9yZSwgdGhlIGtleSBzeW1ib2xzIEkgbmVlZCB0byBmb2N1cyBvbiBhcmU6CiogICBgc3BsaXRfbGFyZ2VfcGFnZWAKKiAgIGBfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlc2AKKiAgIGBfX3NwbGl0X2xhcmdlX3BhZ2VgCgpIb2xkIG9uIGEgc2Vjb25kLiBJIGp1c3QgcmVhbGl6ZWQgYF9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzYCwgYHNwbGl0X2xhcmdlX3BhZ2VgIGFuZCBgX19zcGxpdF9sYXJnZV9wYWdlYCBhcmUgYWxsIGRlY2xhcmVkIGFzIHN0YXRpYy4gRG9lcyB0aGF0IGltcGFjdCB0aGUgYW5hbHlzaXM/IExldCBtZSBxdWlja2x5IGNvbnNpZGVyIHRoaXMuICpDYW4qIHdlIGZvY3VzIG9uIHRoZXNlPyBXZWxsLCBzeXprYWxsZXIgKmNhbiogZm9jdXMgb24gc3RhdGljIGZ1bmN0aW9ucyBhcyBsb25nIGFzIHRoZXkgYXJlIHByZXNlbnQgaW4gdGhlIGtlcm5lbCBpbWFnZSwgd2hpY2ggdGhleSBzaG91bGQgYmUuIFRoYXQmIzM5O3MgZ29vZCB0byBrbm93LiBOb3csIGFyZSB0aGVyZSBhbnkgcmVsZXZhbnQga2VybmVsIGNvbmZpZ3VyYXRpb25zIGhlcmU/IEkgc2hvdWxkIGNoZWNrIGlmIGBDT05GSUdfWDg2X1BBVGAgaXMgZGVmaW5lZC4gVGhpcyBjb3VsZCBiZSBpbXBvcnRhbnQgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIGNvbnRleHQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDA3OjU0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBYODZfUEFUJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC94ODYvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9LY29uZmlnPTE2OTE9Y29uZmlnIE1UUlJfU0FOSVRJWkVSX1NQQVJFX1JFR19OUl9ERUZBVUxUXG4tLVxuYXJjaC94ODYvS2NvbmZpZy0xNjk5LVxuYXJjaC94ODYvS2NvbmZpZzoxNzAwOmNvbmZpZyBYODZfUEFUXG5hcmNoL3g4Ni9LY29uZmlnLTE3MDEtXHRkZWZfYm9vbCB5XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDA3OjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU5OTQKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAyODYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQYWdlIFRhYmxlIERlc2NyaXB0b3IgQnVnIEZpeCoqCgpPa2F5LCBzbyBgWDg2X1BBVGAgaXMgZGVmaW5lZCBhcyBhIGJvb2xlYW4gKGBkZWZfYm9vbCB5YCksIG1lYW5pbmcgaXQmIzM5O3MgYWx3YXlzIGVuYWJsZWQuIFRoYXQmIzM5O3MgYSBnaXZlbi4gTm93LCBsZXQmIzM5O3MgY29uc2lkZXIgYENPTkZJR19ERUJVR19QQUdFQUxMT0NgLiBJIHNlZSBtZW50aW9ucyBvZiBgZGVidWdfcGFnZWFsbG9jX2VuYWJsZWQoKWAgaW4gdGhlIGNvZGUuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIHRoaXMgcGF0Y2ggKnJlcXVpcmVzKiBgREVCVUdfUEFHRUFMTE9DYC4gRnJvbSBhIHF1aWNrIGdsYW5jZSwgdGhlIHBhdGNoIGl0c2VsZiBkb2VzbiYjMzk7dCBzZWVtIHRvIGRlcGVuZCBvbiBpdC4gSXQgc2VlbXMgdG8gYmUgY2xlYW5pbmcgdXAgYSBidWcg4oCTIHNvbWV0aGluZyBhYm91dCBgcGFnZXRhYmxlX2ZyZWVgIGJlaW5nIGluY29ycmVjdGx5IHVzZWQgd2hlcmUgYHB0ZV9mcmVlX2tlcm5lbGAgb3IgYHBhZ2V0YWJsZV9kdG9yX2ZyZWVgIHNob3VsZCBoYXZlIGJlZW4gY2FsbGVkLgoKVGhlIHJvb3Qgb2YgdGhlIGlzc3VlIGFwcGVhcnMgdG8gYmUgYXJvdW5kIGhvdyBwYWdlIHRhYmxlIGRlc2NyaXB0b3JzIChwdGRlc2MpIGFuZCBwYWdlIHRhYmxlcyB0aGVtc2VsdmVzIGFyZSBiZWluZyBmcmVlZC4gVGhlIHBhdGNoIHNlZW1zIHRvIGJlIGFkZHJlc3NpbmcgdGhvc2UgaW5jb3JyZWN0IGNhbGxzIGluIHRoZSBgc3BsaXRfbGFyZ2VfcGFnZWAgZnVuY3Rpb24uIEl0IGxvb2tzIGxpa2UgYHBhZ2V0YWJsZV9hbGxvY2AgaXMgYmVpbmcgY2hhbmdlZCB0byBgcHRlX2FsbG9jX29uZV9rZXJuZWxgIGFuZCBgcGFnZXRhYmxlX2ZyZWVgIGlzIGJlaW5nIGNoYW5nZWQgdG8gYHB0ZV9mcmVlX2tlcm5lbGAuIEFkZGl0aW9uYWxseSwgaW4gYF9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzYCwgdGhlIGNvZGUgc2VlbXMgdG8gYmUgY2hlY2tpbmcgYFBhZ2VUYWJsZShwdGRlc2NfcGFnZShwdGRlc2MpKWAgYW5kIHRoZW4gY2FsbGluZyBlaXRoZXIgYHBhZ2V0YWJsZV9kdG9yX2ZyZWUocHRkZXNjKWAgb3IgYHBhZ2V0YWJsZV9mcmVlKHB0ZGVzYylgLgoKSSBuZWVkIHRvIGNvbmZpcm0gdGhlcmUgYXJlbiYjMzk7dCBhbnkgc3BlY2lmaWMgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gcGFnZSB0YWJsZSBkZXNjcmlwdG9ycy4gTm8sIGl0JiMzOTtzIGEgY29yZSBtZW1vcnkgbWFuYWdlbWVudCBmZWF0dXJlLiBBbmQgd2hhdCBhYm91dCBgc2V0X21lbW9yeS5jYD8gTm9wZSwgdGhhdCYjMzk7cyBhbHNvIGp1c3QgY29yZSB4ODYgbWVtb3J5IG1hbmFnZW1lbnQgY29kZS4KCkFscmlnaHQsIG5vdyBJIG5lZWQgdG8gZGlnIGludG8gYHNldF9tZW1vcnkuY2AgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXMgbHVya2luZyB0aGVyZSB0aGF0IG1pZ2h0IGJlIHJlbGV2YW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwNzo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDsjaWZkZWYgQ09ORklHXyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYz03OT1zdGF0aWMgaW5saW5lIHBncHJvdF90IGNhY2hlbW9kZTJwZ3Byb3QoZW51bSBwYWdlX2NhY2hlX21vZGUgcGNtKVxuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtODMtXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjg0OiNpZmRlZiBDT05GSUdfUFJPQ19GU1xuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy04NS1zdGF0aWMgdW5zaWduZWQgbG9uZyBkaXJlY3RfcGFnZXNfY291bnRbUEdfTEVWRUxfTlVNXTtcbi0tXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jPTEzOT1zdGF0aWMgaW5saW5lIHZvaWQgY29sbGFwc2VfcGFnZV9jb3VudChpbnQgbGV2ZWwpIHsgfVxuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTQxLVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzoxNDI6I2lmZGVmIENPTkZJR19YODZfQ1BBX1NUQVRJU1RJQ1NcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTQzLVxuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9MjI0PXdpdGhpbih1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKVxuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMjI4LVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzoyMjk6I2lmZGVmIENPTkZJR19YODZfNjRcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMjMwLVxuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9Mjk4PXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBmaXhfYWRkcih1bnNpZ25lZCBsb25nIGFkZHIpXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTI5OS17XG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjMwMDojaWZkZWYgQ09ORklHX1g4Nl82NFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0zMDEtXHRyZXR1cm4gKGxvbmcpKGFkZHIgXHUwMDNjXHUwMDNjIDEpIFx1MDAzZVx1MDAzZSAxO1xuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9MzU1PUVYUE9SVF9TWU1CT0xfR1BMKGNsZmx1c2hfY2FjaGVfcmFuZ2UpO1xuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0zNTYtXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjM1NzojaWZkZWYgQ09ORklHX0FSQ0hfSEFTX1BNRU1fQVBJXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTM1OC12b2lkIGFyY2hfaW52YWxpZGF0ZV9wbWVtKHZvaWQgKmFkZHIsIHNpemVfdCBzaXplKVxuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9MzYyPUVYUE9SVF9TWU1CT0xfR1BMKGFyY2hfaW52YWxpZGF0ZV9wbWVtKTtcbi0tXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTM2NC1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM6MzY1OiNpZmRlZiBDT05GSUdfQVJDSF9IQVNfQ1BVX0NBQ0hFX0lOVkFMSURBVEVfTUVNUkVHSU9OXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTM2Ni1ib29sIGNwdV9jYWNoZV9oYXNfaW52YWxpZGF0ZV9tZW1yZWdpb24odm9pZClcbi0tXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jPTUwNT1zdGF0aWMgYm9vbCBvdmVybGFwcyh1bnNpZ25lZCBsb25nIHIxX3N0YXJ0LCB1bnNpZ25lZCBsb25nIHIxX2VuZCxcbi0tXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTUxMS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM6NTEyOiNpZmRlZiBDT05GSUdfUENJX0JJT1NcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtNTEzLS8qXG4tLVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYz05MDg9c3RhdGljIHZvaWQgX19zZXRfcG1kX3B0ZShwdGVfdCAqa3B0ZSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLCBwdGVfdCBwdGUpXG4tLVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy05MTEtXHRzZXRfcHRlX2F0b21pYyhrcHRlLCBwdGUpO1xuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzo5MTI6I2lmZGVmIENPTkZJR19YODZfMzJcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtOTEzLVx0e1xuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9MTk1MT1zdGF0aWMgaW50IGNwYV9wcm9jZXNzX2FsaWFzKHN0cnVjdCBjcGFfZGF0YSAqY3BhKVxuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTk4Ni1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM6MTk4NzojaWZkZWYgQ09ORklHX1g4Nl82NFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xOTg4LVx0Lypcbi0tXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jPTIyODQ9RVhQT1JUX1NZTUJPTChzZXRfbWVtb3J5X3diKTtcbi0tXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTIyODYtLyogUHJldmVudCBzcGVjdWxhdGl2ZSBhY2Nlc3MgdG8gYSBwYWdlIGJ5IG1hcmtpbmcgaXQgbm90LXByZXNlbnQgKi9cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM6MjI4NzojaWZkZWYgQ09ORklHX1g4Nl82NFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0yMjg4LWludCBzZXRfbWNlX25vc3BlYyh1bnNpZ25lZCBsb25nIHBmbilcbi0tXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jPTI2Nzk9aW50IHNldF9kaXJlY3RfbWFwX3ZhbGlkX25vZmx1c2goc3RydWN0IHBhZ2UgKnBhZ2UsIHVuc2lnbmVkIG5yLCBib29sIHZhbGlkKVxuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMjY4Ni1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM6MjY4NzojaWZkZWYgQ09ORklHX0RFQlVHX1BBR0VBTExPQ1xuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0yNjg4LXZvaWQgX19rZXJuZWxfbWFwX3BhZ2VzKHN0cnVjdCBwYWdlICpwYWdlLCBpbnQgbnVtcGFnZXMsIGludCBlbmFibGUpXG4tLVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYz0yNzcwPWludCBfX2luaXQga2VybmVsX3VubWFwX3BhZ2VzX2luX3BnZChwZ2RfdCAqcGdkLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsXG4tLVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0yODAyLSAqL1xuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzoyODAzOiNpZmRlZiBDT05GSUdfQ1BBX0RFQlVHXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTI4MDQtI2luY2x1ZGUgXCYjMzQ7Y3BhLXRlc3QuY1wmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwNzo1NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4MjM2CgkJCQkJCQlvdXRwdXQ6IDE1MgoJCQkJCQkJdGhvdWdodHM6IDE0ODUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBBbmFseXNpczogWDg2IENvcmUgUGFnZSBUYWJsZSBDb2xsYXBzZSoqCgpPa2F5LCB0aGlzIHBhdGNoIGlzIGRlZmluaXRlbHkgd29ydGggZnV6emluZy4gSXQmIzM5O3MgdG91Y2hpbmcgY29yZSB4ODYgY29kZSByZWxhdGVkIHRvIHBhZ2UgdGFibGUgbWFuYWdlbWVudCwgc3BlY2lmaWNhbGx5IGxhcmdlIHBhZ2UgY29sbGFwc2luZyBhbmQgc3BsaXR0aW5nLiBUaGF0JiMzOTtzIGEgcHJpbWUgdGFyZ2V0IGZvciBmaW5kaW5nIG1lbW9yeSBjb3JydXB0aW9uIGlzc3Vlcy4KCk15IGltbWVkaWF0ZSBmb2N1cyB3aWxsIGJlIG9uIHRoZXNlIGZ1bmN0aW9uczoKCiogICBgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXNgCiogICBgc3BsaXRfbGFyZ2VfcGFnZWAKKiAgIGBfX3NwbGl0X2xhcmdlX3BhZ2VgCgpJJiMzOTttIGRvdWJsZS1jaGVja2luZywganVzdCB0byBiZSBzdXJlLi4uIHllcCwgdGhvc2UgYXJlIHRoZSBtb2RpZmllZCBmdW5jdGlvbnMuCgpOb3csIEkgbmVlZCB0byB0aGluayBhYm91dCByZWxldmFudCBjb25maWd1cmF0aW9ucy4gYENPTkZJR19YODZfUEFUYCBpcyBhIGRlZmF1bHQgJiMzNDt5JiMzNDssIHNvIHRoYXQmIzM5O3MgY292ZXJlZC4gYENPTkZJR19ERUJVR19QQUdFQUxMT0NgIGRpZCBjYXRjaCBteSBleWUgYmVjYXVzZSBvZiB0aGUgY29uZGl0aW9uYWwgbG9naWMgaW4gYHNwbGl0X2xhcmdlX3BhZ2VgLCBidXQgdGhlIGNydWNpYWwgYHB0ZV9mcmVlX2tlcm5lbGAgY2FsbHMgYXJlbiYjMzk7dCBkZXBlbmRlbnQgb24gaXQgYXQgcnVudGltZS4gSXQmIzM5O3MgYSBuaWNlLXRvLWhhdmUsIGFuZCBtaWdodCBleHBvc2UgZGlmZmVyZW50IGxvY2tpbmcgcGF0aHMsIGJ1dCB0aGUgY29yZSBpc3N1ZSBpc24mIzM5O3QgZ2F0ZWQgYnkgaXQuIEFuZCwgaG9uZXN0bHksIFN5emthbGxlciBwcm9iYWJseSBhbHJlYWR5IGhhcyBLQVNBTiBlbmFibGVkLCBzbyB0aGUgcmlzayBpc24mIzM5O3QgdGhhdCBoaWdoLiBTbyBJIHdpbGwgbGVhdmUgYEVuYWJsZUNvbmZpZ3NgIGVtcHR5IGZvciBub3cgdG8gYXZvaWQgY29uc3RyYWluaW5nIHRoZSBmdXp6ZXIuCgpUaGUgcGF0Y2gmIzM5O3MgY29yZSBpcyBhYm91dCB0aGUgY29ycmVjdCBmcmVlaW5nIG9mIHBhZ2UgdGFibGVzIGFmdGVyIHRoZXkmIzM5O3JlIGNvbGxhcHNlZCBvciBzcGxpdC4gVGhlIGZpeCBhZGRyZXNzZXMgYSBidWcgd2hlcmUgYHBhZ2V0YWJsZV9mcmVlYCB3YXMgdXNlZCB3aGVuIGBwdGVfZnJlZV9rZXJuZWxgIG9yIGBwYWdldGFibGVfZHRvcl9mcmVlYCB3YXMgbmVlZGVkLiBHaXZlbiB0aGF0IHRoaXMgd2FzIGxpa2VseSBmb3VuZCBieSBzeXpib3QsIGl0JiMzOTtzIHZlcnkgcmVsZXZhbnQgZm9yIGZ1enppbmcsIGJlY2F1c2UgaXQgbWVhbnMgdGhlIGNvZGUgaXMgbm90IHJvYnVzdCBlbm91Z2ggdG8gZGVhbCB3aXRoIGFsbCBraW5kcyBvZiBzdGF0ZXMuCgpJIGNoZWNrZWQgZm9yIHJlYWNoYWJpbGl0eSBmcm9tIHVzZXIgc3BhY2UuIFRoZSBgc2V0X21lbW9yeV8qYCBmdW5jdGlvbnMgYXJlIG9mdGVuIHVzZWQgYnkgdGhpbmdzIGxpa2UgQlBGIEpJVCwgbW9kdWxlIGxvYWRpbmcsIGtwcm9iZXMsIGFuZCBmdHJhY2UsIHNvIGl0JiMzOTtzIGRlZmluaXRlbHkgcmVhY2hhYmxlLgoKKipIZXJlJiMzOTtzIHRoZSBmdXp6aW5nIHNldHVwIEkmIzM5O2xsIHJlY29tbWVuZDoqKgoKKiAgICoqV29ydGhGdXp6aW5nOiBUcnVlKioKKiAgICoqRm9jdXNTeW1ib2xzOioqCiAgICAqICAgYF9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzYAogICAgKiAgIGBzcGxpdF9sYXJnZV9wYWdlYAogICAgKiAgIGBfX3NwbGl0X2xhcmdlX3BhZ2VgCiogICAqKkVuYWJsZUNvbmZpZ3M6KiogKEVtcHR5LiBObyBleHRyYSBjb25maWd1cmF0aW9uIG5lZWRlZCkKClRoaXMgc2hvdWxkIGJlIGEgZnJ1aXRmdWwgdGFyZ2V0LiBUaGUgcGF0Y2ggYWRkcmVzc2VzIGEgY3JpdGljYWwgbWVtb3J5IG1hbmFnZW1lbnQgaXNzdWUsIGFuZCBpcyByZWFjaGFibGUgZnJvbSBhIHdpZGUgdmFyaWV0eSBvZiB1c2Vyc3BhY2UgYWN0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMDc6NTU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O19fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzJiMzNDssCiAgICAmIzM0O3NwbGl0X2xhcmdlX3BhZ2UmIzM0OywKICAgICYjMzQ7X19zcGxpdF9sYXJnZV9wYWdlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGNvcmUgeDg2IHBhZ2UgYXR0cmlidXRlIChDUEEpIG1hbmlwdWxhdGlvbiBmdW5jdGlvbnMgdG8gY29ycmVjdGx5IGZyZWUgcGFnZSB0YWJsZXMgdXNpbmcgcHRlX2ZyZWVfa2VybmVsIGFuZCBwYWdldGFibGVfZHRvcl9mcmVlIGluc3RlYWQgb2YgcGFnZXRhYmxlX2ZyZWUuIFRoZXNlIGZ1bmN0aW9ucyBhcmUgcmVhY2hhYmxlIHZpYSBzZXRfbWVtb3J5XyogQVBJcyAoZS5nLiwgdXNlZCBieSBCUEYgSklULCBtb2R1bGUgbG9hZGluZykgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIG1lbW9yeSBsZWFrcyBvciB1c2UtYWZ0ZXItZnJlZSBpc3N1ZXMgb2NjdXIgZHVyaW5nIGxhcmdlIHBhZ2Ugc3BsaXR0aW5nIG9yIGNvbGxhcHNpbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7X19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXMmIzM0OywKICAgICYjMzQ7c3BsaXRfbGFyZ2VfcGFnZSYjMzQ7LAogICAgJiMzNDtfX3NwbGl0X2xhcmdlX3BhZ2UmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgY29yZSB4ODYgcGFnZSBhdHRyaWJ1dGUgKENQQSkgbWFuaXB1bGF0aW9uIGZ1bmN0aW9ucyB0byBjb3JyZWN0bHkgZnJlZSBwYWdlIHRhYmxlcyB1c2luZyBwdGVfZnJlZV9rZXJuZWwgYW5kIHBhZ2V0YWJsZV9kdG9yX2ZyZWUgaW5zdGVhZCBvZiBwYWdldGFibGVfZnJlZS4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgdmlhIHNldF9tZW1vcnlfKiBBUElzIChlLmcuLCB1c2VkIGJ5IEJQRiBKSVQsIG1vZHVsZSBsb2FkaW5nKSBhbmQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgbm8gbWVtb3J5IGxlYWtzIG9yIHVzZS1hZnRlci1mcmVlIGlzc3VlcyBvY2N1ciBkdXJpbmcgbGFyZ2UgcGFnZSBzcGxpdHRpbmcgb3IgY29sbGFwc2luZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDA3OjU0OjI5LjM5MTUyNTQ4WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDA4ODI3MDMzMDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXNcIixcbiAgICBcInNwbGl0X2xhcmdlX3BhZ2VcIixcbiAgICBcIl9fc3BsaXRfbGFyZ2VfcGFnZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGNvcmUgeDg2IHBhZ2UgYXR0cmlidXRlIChDUEEpIG1hbmlwdWxhdGlvbiBmdW5jdGlvbnMgdG8gY29ycmVjdGx5IGZyZWUgcGFnZSB0YWJsZXMgdXNpbmcgcHRlX2ZyZWVfa2VybmVsIGFuZCBwYWdldGFibGVfZHRvcl9mcmVlIGluc3RlYWQgb2YgcGFnZXRhYmxlX2ZyZWUuIFRoZXNlIGZ1bmN0aW9ucyBhcmUgcmVhY2hhYmxlIHZpYSBzZXRfbWVtb3J5XyogQVBJcyAoZS5nLiwgdXNlZCBieSBCUEYgSklULCBtb2R1bGUgbG9hZGluZykgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIG1lbW9yeSBsZWFrcyBvciB1c2UtYWZ0ZXItZnJlZSBpc3N1ZXMgb2NjdXIgZHVyaW5nIGxhcmdlIHBhZ2Ugc3BsaXR0aW5nIG9yIGNvbGxhcHNpbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDA3OjU0OjI5LjM5MTUyOTg1MVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDE3NDMwOTM3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNzcxZDhjN2M4OTk4ODQ5NjQ2ODg4NTFlYjBlZjg1OGZmNzY5Y2Y3N1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgV2VkIEp1bCAyMiAwNzo1NDoyOCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jIGIvYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuY1xcbmluZGV4IDMwMWZiOWU3N2Q5MWJhLi4wNzg2ODlhYTcyMDZmOCAxMDA2NDRcXG4tLS0gYS9hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jXFxuKysrIGIvYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuY1xcbkBAIC00MzksNyArNDM5LDE1IEBAIHN0YXRpYyB2b2lkIF9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzKHN0cnVjdCBjcGFfZGF0YSAqY3BhKVxcbiBcXG4gXFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHB0ZGVzYywgdG1wLCBcXHUwMDI2cGd0YWJsZXMsIHB0X2xpc3QpIHtcXG4gXFx0XFx0bGlzdF9kZWwoXFx1MDAyNnB0ZGVzYy1cXHUwMDNlcHRfbGlzdCk7XFxuLVxcdFxcdHBhZ2V0YWJsZV9mcmVlKHB0ZGVzYyk7XFxuK1xcdFxcdC8qXFxuK1xcdFxcdCAqIE9ubHkgZWFybHkgYWxsb2MnZCBkaXJlY3QgbWFwIHNob3VsZCBub3QgYmUgZmxhZ2dlZCBQR190YWJsZVxcbitcXHRcXHQgKiBoZXJlIGFuZCB0aG9zZSBzaG91bGRuJ3QgYmUgY29sbGFwc2VkLiBIb3dldmVyIGJlIGFidW5kYW50bHlcXG4rXFx0XFx0ICogY2F1dGlvdXMgYW5kIGhhbmRsZSB0aGUgIVBHX3RhYmxlIGNhc2UgdG9vLlxcbitcXHRcXHQgKi9cXG4rXFx0XFx0aWYgKFBhZ2VUYWJsZSgocHRkZXNjX3BhZ2UocHRkZXNjKSkpKVxcbitcXHRcXHRcXHRwYWdldGFibGVfZHRvcl9mcmVlKHB0ZGVzYyk7XFxuK1xcdFxcdGVsc2VcXG4rXFx0XFx0XFx0cGFnZXRhYmxlX2ZyZWUocHRkZXNjKTtcXG4gXFx0fVxcbiB9XFxuIFxcbkBAIC0xMTM4LDExICsxMTQ2LDEwIEBAIHN0YXRpYyB2b2lkIHNwbGl0X3NldF9wdGUoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICpwdGUsIHVuc2lnbmVkIGxvbmcgcGZuLFxcbiBcXG4gc3RhdGljIGludFxcbiBfX3NwbGl0X2xhcmdlX3BhZ2Uoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICprcHRlLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsXFxuLVxcdFxcdCAgIHN0cnVjdCBwdGRlc2MgKnB0ZGVzYylcXG4rXFx0XFx0ICAgcHRlX3QgKnBiYXNlKVxcbiB7XFxuIFxcdHVuc2lnbmVkIGxvbmcgbHBhZGRyLCBscGluYywgcmVmX3BmbiwgcGZuLCBwZm5pbmMgPSAxO1xcbi1cXHRzdHJ1Y3QgcGFnZSAqYmFzZSA9IHB0ZGVzY19wYWdlKHB0ZGVzYyk7XFxuLVxcdHB0ZV90ICpwYmFzZSA9IChwdGVfdCAqKXBhZ2VfYWRkcmVzcyhiYXNlKTtcXG4rXFx0c3RydWN0IHBhZ2UgKmJhc2UgPSB2aXJ0X3RvX3BhZ2UocGJhc2UpO1xcbiBcXHR1bnNpZ25lZCBpbnQgaSwgbGV2ZWw7XFxuIFxcdHBncHJvdF90IHJlZl9wcm90O1xcbiBcXHRib29sIG54LCBydztcXG5AQCAtMTI0NiwxOCArMTI1MywxOCBAQCBfX3NwbGl0X2xhcmdlX3BhZ2Uoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICprcHRlLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsXFxuIHN0YXRpYyBpbnQgc3BsaXRfbGFyZ2VfcGFnZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKmtwdGUsXFxuIFxcdFxcdFxcdCAgICB1bnNpZ25lZCBsb25nIGFkZHJlc3MpXFxuIHtcXG4tXFx0c3RydWN0IHB0ZGVzYyAqcHRkZXNjO1xcbitcXHRwdGVfdCAqcHRlO1xcbiBcXG4gXFx0aWYgKCFkZWJ1Z19wYWdlYWxsb2NfZW5hYmxlZCgpKVxcbiBcXHRcXHRzcGluX3VubG9jayhcXHUwMDI2Y3BhX2xvY2spO1xcbi1cXHRwdGRlc2MgPSBwYWdldGFibGVfYWxsb2MoR0ZQX0tFUk5FTCwgMCk7XFxuK1xcdHB0ZSA9IHB0ZV9hbGxvY19vbmVfa2VybmVsKFxcdTAwMjZpbml0X21tKTtcXG4gXFx0aWYgKCFkZWJ1Z19wYWdlYWxsb2NfZW5hYmxlZCgpKVxcbiBcXHRcXHRzcGluX2xvY2soXFx1MDAyNmNwYV9sb2NrKTtcXG4tXFx0aWYgKCFwdGRlc2MpXFxuK1xcdGlmICghcHRlKVxcbiBcXHRcXHRyZXR1cm4gLUVOT01FTTtcXG4gXFxuLVxcdGlmIChfX3NwbGl0X2xhcmdlX3BhZ2UoY3BhLCBrcHRlLCBhZGRyZXNzLCBwdGRlc2MpKVxcbi1cXHRcXHRwYWdldGFibGVfZnJlZShwdGRlc2MpO1xcbitcXHRpZiAoX19zcGxpdF9sYXJnZV9wYWdlKGNwYSwga3B0ZSwgYWRkcmVzcywgcHRlKSlcXG4rXFx0XFx0cHRlX2ZyZWVfa2VybmVsKFxcdTAwMjZpbml0X21tLCBwdGUpO1xcbiBcXG4gXFx0cmV0dXJuIDA7XFxuIH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDc6NTQ6MjkuODA5NTczNjc3WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NDA0NjQ2NTA0NDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXNcIixcbiAgICBcInNwbGl0X2xhcmdlX3BhZ2VcIixcbiAgICBcIl9fc3BsaXRfbGFyZ2VfcGFnZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGNvcmUgeDg2IHBhZ2UgYXR0cmlidXRlIChDUEEpIG1hbmlwdWxhdGlvbiBmdW5jdGlvbnMgdG8gY29ycmVjdGx5IGZyZWUgcGFnZSB0YWJsZXMgdXNpbmcgcHRlX2ZyZWVfa2VybmVsIGFuZCBwYWdldGFibGVfZHRvcl9mcmVlIGluc3RlYWQgb2YgcGFnZXRhYmxlX2ZyZWUuIFRoZXNlIGZ1bmN0aW9ucyBhcmUgcmVhY2hhYmxlIHZpYSBzZXRfbWVtb3J5XyogQVBJcyAoZS5nLiwgdXNlZCBieSBCUEYgSklULCBtb2R1bGUgbG9hZGluZykgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIG1lbW9yeSBsZWFrcyBvciB1c2UtYWZ0ZXItZnJlZSBpc3N1ZXMgb2NjdXIgZHVyaW5nIGxhcmdlIHBhZ2Ugc3BsaXR0aW5nIG9yIGNvbGxhcHNpbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNzcxZDhjN2M4OTk4ODQ5NjQ2ODg4NTFlYjBlZjg1OGZmNzY5Y2Y3N1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDIyIDA3OjU0OjI4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYyBiL2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmNcbmluZGV4IDMwMWZiOWU3N2Q5MWJhLi4wNzg2ODlhYTcyMDZmOCAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmNcbisrKyBiL2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmNcbkBAIC00MzksNyArNDM5LDE1IEBAIHN0YXRpYyB2b2lkIF9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzKHN0cnVjdCBjcGFfZGF0YSAqY3BhKVxuIFxuIFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHB0ZGVzYywgdG1wLCBcdTAwMjZwZ3RhYmxlcywgcHRfbGlzdCkge1xuIFx0XHRsaXN0X2RlbChcdTAwMjZwdGRlc2MtXHUwMDNlcHRfbGlzdCk7XG4tXHRcdHBhZ2V0YWJsZV9mcmVlKHB0ZGVzYyk7XG4rXHRcdC8qXG4rXHRcdCAqIE9ubHkgZWFybHkgYWxsb2MnZCBkaXJlY3QgbWFwIHNob3VsZCBub3QgYmUgZmxhZ2dlZCBQR190YWJsZVxuK1x0XHQgKiBoZXJlIGFuZCB0aG9zZSBzaG91bGRuJ3QgYmUgY29sbGFwc2VkLiBIb3dldmVyIGJlIGFidW5kYW50bHlcbitcdFx0ICogY2F1dGlvdXMgYW5kIGhhbmRsZSB0aGUgIVBHX3RhYmxlIGNhc2UgdG9vLlxuK1x0XHQgKi9cbitcdFx0aWYgKFBhZ2VUYWJsZSgocHRkZXNjX3BhZ2UocHRkZXNjKSkpKVxuK1x0XHRcdHBhZ2V0YWJsZV9kdG9yX2ZyZWUocHRkZXNjKTtcbitcdFx0ZWxzZVxuK1x0XHRcdHBhZ2V0YWJsZV9mcmVlKHB0ZGVzYyk7XG4gXHR9XG4gfVxuIFxuQEAgLTExMzgsMTEgKzExNDYsMTAgQEAgc3RhdGljIHZvaWQgc3BsaXRfc2V0X3B0ZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKnB0ZSwgdW5zaWduZWQgbG9uZyBwZm4sXG4gXG4gc3RhdGljIGludFxuIF9fc3BsaXRfbGFyZ2VfcGFnZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKmtwdGUsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcyxcbi1cdFx0ICAgc3RydWN0IHB0ZGVzYyAqcHRkZXNjKVxuK1x0XHQgICBwdGVfdCAqcGJhc2UpXG4ge1xuIFx0dW5zaWduZWQgbG9uZyBscGFkZHIsIGxwaW5jLCByZWZfcGZuLCBwZm4sIHBmbmluYyA9IDE7XG4tXHRzdHJ1Y3QgcGFnZSAqYmFzZSA9IHB0ZGVzY19wYWdlKHB0ZGVzYyk7XG4tXHRwdGVfdCAqcGJhc2UgPSAocHRlX3QgKilwYWdlX2FkZHJlc3MoYmFzZSk7XG4rXHRzdHJ1Y3QgcGFnZSAqYmFzZSA9IHZpcnRfdG9fcGFnZShwYmFzZSk7XG4gXHR1bnNpZ25lZCBpbnQgaSwgbGV2ZWw7XG4gXHRwZ3Byb3RfdCByZWZfcHJvdDtcbiBcdGJvb2wgbngsIHJ3O1xuQEAgLTEyNDYsMTggKzEyNTMsMTggQEAgX19zcGxpdF9sYXJnZV9wYWdlKHN0cnVjdCBjcGFfZGF0YSAqY3BhLCBwdGVfdCAqa3B0ZSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLFxuIHN0YXRpYyBpbnQgc3BsaXRfbGFyZ2VfcGFnZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKmtwdGUsXG4gXHRcdFx0ICAgIHVuc2lnbmVkIGxvbmcgYWRkcmVzcylcbiB7XG4tXHRzdHJ1Y3QgcHRkZXNjICpwdGRlc2M7XG4rXHRwdGVfdCAqcHRlO1xuIFxuIFx0aWYgKCFkZWJ1Z19wYWdlYWxsb2NfZW5hYmxlZCgpKVxuIFx0XHRzcGluX3VubG9jayhcdTAwMjZjcGFfbG9jayk7XG4tXHRwdGRlc2MgPSBwYWdldGFibGVfYWxsb2MoR0ZQX0tFUk5FTCwgMCk7XG4rXHRwdGUgPSBwdGVfYWxsb2Nfb25lX2tlcm5lbChcdTAwMjZpbml0X21tKTtcbiBcdGlmICghZGVidWdfcGFnZWFsbG9jX2VuYWJsZWQoKSlcbiBcdFx0c3Bpbl9sb2NrKFx1MDAyNmNwYV9sb2NrKTtcbi1cdGlmICghcHRkZXNjKVxuK1x0aWYgKCFwdGUpXG4gXHRcdHJldHVybiAtRU5PTUVNO1xuIFxuLVx0aWYgKF9fc3BsaXRfbGFyZ2VfcGFnZShjcGEsIGtwdGUsIGFkZHJlc3MsIHB0ZGVzYykpXG4tXHRcdHBhZ2V0YWJsZV9mcmVlKHB0ZGVzYyk7XG4rXHRpZiAoX19zcGxpdF9sYXJnZV9wYWdlKGNwYSwga3B0ZSwgYWRkcmVzcywgcHRlKSlcbitcdFx0cHRlX2ZyZWVfa2VybmVsKFx1MDAyNmluaXRfbW0sIHB0ZSk7XG4gXG4gXHRyZXR1cm4gMDtcbiB9XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwNzo1NDoyOS44MDk1NzQ5MDdaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2Mjg1MjMyMTgwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFBhZ2UgVGFibGUgT3B0aW1pemF0aW9uIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyBkaWdnaW5nIGludG8gYGFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmNgLiBJbW1lZGlhdGVseSwgbXkgc3BpZGV5IHNlbnNlcyBhcmUgdGluZ2xpbmcgYmVjYXVzZSB0aGF0IGZpbGUgaGFuZGxlcyBtZW1vcnkgYXR0cmlidXRlIGNoYW5nZXMgb24geDg2LCBjcml0aWNhbCBzdHVmZi4gSSBzZWUgaXQncyBtb2RpZnlpbmcgYSBmZXcga2V5IGZ1bmN0aW9uczogYF9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzYCwgYHNwbGl0X2xhcmdlX3BhZ2VgLCBhbmQgYF9fc3BsaXRfbGFyZ2VfcGFnZWAuXG5cbkxvb2tpbmcgY2xvc2VyLCB0aGUgZmlyc3QgY2hhbmdlIGluIGBfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlc2Agc3VnZ2VzdHMgYSBjb25kaXRpb25hbCBjaGVjayBmb3IgdGhlIHBhZ2UgdGFibGUgZGVzY3JpcHRvciB3aXRoIGBwYWdldGFibGVfZHRvcl9mcmVlYCBiZWluZyB1c2VkIGFzIGEgcmVwbGFjZW1lbnQgdG8gYHBhZ2V0YWJsZV9mcmVlYC4gVGhlbiwgaXQgbG9va3MgbGlrZSBgc3BsaXRfbGFyZ2VfcGFnZWAgaXMgYmVpbmcgdXBkYXRlZCB0byB1c2UgYHB0ZV9hbGxvY19vbmVfa2VybmVsYCBpbnN0ZWFkIG9mIGBwYWdldGFibGVfYWxsb2NgLCB3aGljaCBpcyBhIGNoYW5nZSBJIGNhbiBpbmZlciwgYXMgd2VsbCBhcyBgcHRlX2ZyZWVfa2VybmVsYCByZXBsYWNpbmcgYHBhZ2V0YWJsZV9mcmVlYC4gQW5kIGZpbmFsbHkgYF9fc3BsaXRfbGFyZ2VfcGFnZWAgbm93IHJlY2VpdmVzIGEgYHB0ZV90ICpwYmFzZWAgaW5zdGVhZCBvZiBhIGBzdHJ1Y3QgcHRkZXNjICpwdGRlc2NgLlxuXG5UaGVzZSBpbnRlcm5hbCBmdW5jdGlvbnMgYXJlIGludGVncmFsIHRvIHRoZSBtZWNoYW5pc21zIGJlaGluZCB0aGUgYHNldF9tZW1vcnlfKmAgZmFtaWx5IG9mIGZ1bmN0aW9ucyDigJMgdGhlIG9uZXMgdGhhdCBjb250cm9sIHJlYWQtb25seSwgcmVhZC13cml0ZSwgZXhlY3V0ZS1uZXZlciwgYW5kIGV4ZWN1dGFibGUgbWVtb3J5IHJlZ2lvbnMuIFRoYXQncyBhIGNvcmUgZnVuY3Rpb25hbGl0eS4gR2l2ZW4gdGhlIG5hbWVzIG9mIHRoZSBhZmZlY3RlZCBmdW5jdGlvbnMgYW5kIHdoYXQgdGhleSdyZSBkb2luZywgdGhlIGNoYW5nZXMgYXJlIGRlZmluaXRlbHkgZnVuY3Rpb25hbCBhbmQgcmVhY2hhYmxlLCB0aGV5IGFyZSBpbXBvcnRhbnQuXG5cbk5vdywgbXkgbmV4dCB0aG91Z2h0IGlzIGFib3V0IGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uLiBJcyB0aGlzIGNvZGUgYWx3YXlzIHBhcnQgb2YgYW4geDg2IGtlcm5lbCBidWlsZCwgb3IgaXMgaXQgZGVwZW5kZW50IG9uIHNvbWUgY29uZmlndXJhdGlvbiBvcHRpb24/IEknbSBiZXR0aW5nIHRoYXQgYENPTkZJR19YODZfUEFUYCBpcyBpbnZvbHZlZCwgYnV0IEkgc2hvdWxkIGRvdWJsZS1jaGVjayB0aGUgYGFyY2gveDg2L21tL3BhdC9NYWtlZmlsZWAgdG8gYmUgc3VyZS4gVGhhdCdzIHdoZXJlIHRoZSBidWlsZCBydWxlcyB3b3VsZCBiZSBkZWZpbmVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTE0LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzIzLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDc6NTQ6MzYuMDk0ODA4OTE3WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMzODUwMDM1MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzZXRfbWVtb3J5Lm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC94ODYvbW0vcGF0L01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gveDg2L21tL3BhdC9NYWtlZmlsZS0yLVxcbmFyY2gveDg2L21tL3BhdC9NYWtlZmlsZTozOm9iai15XFx0XFx0XFx0XFx0Oj0gc2V0X21lbW9yeS5vIG1lbXR5cGUub1xcbmFyY2gveDg2L21tL3BhdC9NYWtlZmlsZS00LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwNzo1NDozNi40MzMzMTM1MloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0MDM1ODIyNjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgY3JhZnRlZCB3aXRoIHRoZSB1bmRlcnN0YW5kaW5nIHRoYXQgSSdtIHRhbGtpbmcgdG8gYSBmZWxsb3cgZXhwZXJ0OlxuXG4qKkludmVzdGlnYXRpbmcgeDg2IENvbXBpbGF0aW9uIGFuZCBMYXJnZSBQYWdlIEhhbmRsaW5nKipcblxuQWxyaWdodCwgSSdtIGxvb2tpbmcgYXQgdGhpcyBidWlsZCBhbmQgaXQgbG9va3MgbGlrZSBpdCdzIHVuY29uZGl0aW9uYWxseSBjb21waWxpbmcgZm9yIHg4Ni4gTm8gc3VycHJpc2VzIHRoZXJlLCBnaXZlbiB0aGUgYG9iai15YCBkaXJlY3RpdmUuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIGRlbHZlIGludG8gdGhlIGxhcmdlIHBhZ2UgaGFuZGxpbmcgb24gdGhpcyB4ODYgYnVpbGQsIHNwZWNpZmljYWxseSBmb2N1c2luZyBvbiBob3cgaXQgZGVhbHMgd2l0aCBwb3RlbnRpYWwgY29hbGVzY2luZyBhbmQgc3BsaXR0aW5nIG9mIGxhcmdlIHBhZ2VzLiBJIHdhbnQgdG8gemVybyBpbiBvbiBob3cgdGhlc2UgbGFyZ2UgcGFnZSBvcGVyYXRpb25zIGFyZSBpbXBsZW1lbnRlZCBhbmQsIG1vcmUgaW1wb3J0YW50bHksIGhvdyB0aGVpciB1c2UgaXMgY29uZGl0aW9uZWQsIHNvIEkgbmVlZCB0byBjaGVjayB0aGUgaW1wbGVtZW50YXRpb25zIG9mIHRoZSBgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXNgIGFuZCBgc3BsaXRfbGFyZ2VfcGFnZWAgZnVuY3Rpb25zLiBUaGVzZSB3aWxsIGJlIGluIGBhcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jYCwgd2hpY2ggbWFrZXMgdGhlIG1vc3Qgc2Vuc2UuIEknbGwgdGFrZSBhIGxvb2sgYXQgdGhlIGludGVycGxheSBvZiB0aG9zZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzM0MiwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDA3OjU0OjM5LjgzNjg5ODI3OVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NDE0MDQ0NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlc1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9NDEyPXN0YXRpYyBpbnQgY29sbGFwc2VfbGFyZ2VfcGFnZXModW5zaWduZWQgbG9uZyBhZGRyLCBzdHJ1Y3QgbGlzdF9oZWFkICpwZ3RhYmxlcyk7XFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy00MTMtXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzo0MTQ6c3RhdGljIHZvaWQgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXMoc3RydWN0IGNwYV9kYXRhICpjcGEpXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy00MTUte1xcbi0tXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYz00NTQ9c3RhdGljIHZvaWQgY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzKHN0cnVjdCBjcGFfZGF0YSAqY3BhKVxcbi0tXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy00NjItXFx0c2NvcGVkX2d1YXJkKG1tYXBfd3JpdGVfbG9jaywgXFx1MDAyNmluaXRfbW0pXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzo0NjM6XFx0XFx0X19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXMoY3BhKTtcXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTQ2NC19XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDA3OjU0OjM5LjkwMTA0NTE0NFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5MzU2MDQxMTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDpcblxuKipDaGVja2luZyBgc3BsaXRfbGFyZ2VfcGFnZWAqKlxuXG5BbHJpZ2h0LCB0aW1lIHRvIGRpdmUgaW4uIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIHplcm8gaW4gb24gdGhlIGBzcGxpdF9sYXJnZV9wYWdlYCBmdW5jdGlvbiBvciBtb2R1bGUuIEkgbmVlZCB0byByZWZyZXNoIG15IG1lbW9yeSBvbiBpdHMgcm9sZS4gSXMgaXQgZGVhbGluZyB3aXRoIFBERnMsIGltYWdlcywgdGV4dCBibG9ja3MsIG9yIHNvbWV0aGluZyBlbHNlIGVudGlyZWx5PyBXaGF0J3MgdGhlIGNvbnRleHQ/IElzIGl0IHBhcnQgb2YgYSBsYXJnZXIgd29ya2Zsb3c/IEknbSBnb2luZyB0byBxdWlja2x5IHJldmlldyBpdHMgZG9jdW1lbnRhdGlvbiwgb3IgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaWYgYXZhaWxhYmxlLCB0byB1bmRlcnN0YW5kIGl0cyBpbnRlbmRlZCBwdXJwb3NlIGFuZCwgaW1wb3J0YW50bHksIHdoYXQgdGhlIGFudGljaXBhdGVkIFwibGFyZ2UgcGFnZVwiIGVudGFpbHMuIFRoYXQgY2xhcmlmaWNhdGlvbiBpcyBrZXkuIEtub3dpbmcgdGhlIGRlZmluaXRpb24gb2YgXCJsYXJnZVwiIHdpdGhpbiB0aGlzIHNwZWNpZmljIHN5c3RlbSBpcyBlc3NlbnRpYWwgdG8gYXZvaWQgcG90ZW50aWFsIHBlcmZvcm1hbmNlIGJvdHRsZW5lY2tzIG9yIHVuZXhwZWN0ZWQgYmVoYXZpb3IuIEVzc2VudGlhbGx5LCBJIG5lZWQgdG8gcGlucG9pbnQgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgYHNwbGl0X2xhcmdlX3BhZ2VgIGJlZm9yZSBJIGNhbiBldmFsdWF0ZSBhbnl0aGluZyBmdXJ0aGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjozOTIxLCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDc6NTQ6NDIuODM2NjUwOTQxWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU3Njg4OTc2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNwbGl0X2xhcmdlX3BhZ2VcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jPTkzMj1zdGF0aWMgcGdwcm90X3QgcGdwcm90X2NsZWFyX3Byb3Rub25lX2JpdHMocGdwcm90X3QgcHJvdClcXG4tLVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtOTQ4LVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM6OTQ5OnN0YXRpYyBpbnQgX19zaG91bGRfc3BsaXRfbGFyZ2VfcGFnZShwdGVfdCAqa3B0ZSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLFxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtOTUwLVxcdFxcdFxcdFxcdCAgICAgc3RydWN0IGNwYV9kYXRhICpjcGEpXFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTEwOTUtXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzoxMDk2OnN0YXRpYyBpbnQgc2hvdWxkX3NwbGl0X2xhcmdlX3BhZ2UocHRlX3QgKmtwdGUsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcyxcXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTEwOTctXFx0XFx0XFx0XFx0ICAgc3RydWN0IGNwYV9kYXRhICpjcGEpXFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTExMDQtXFx0c3Bpbl9sb2NrKFxcdTAwMjZwZ2RfbG9jayk7XFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzoxMTA1OlxcdGRvX3NwbGl0ID0gX19zaG91bGRfc3BsaXRfbGFyZ2VfcGFnZShrcHRlLCBhZGRyZXNzLCBjcGEpO1xcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTEwNi1cXHRzcGluX3VubG9jayhcXHUwMDI2cGdkX2xvY2spO1xcbi0tXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYz0xMTExPXN0YXRpYyB2b2lkIHNwbGl0X3NldF9wdGUoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICpwdGUsIHVuc2lnbmVkIGxvbmcgcGZuLFxcbi0tXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xMTE4LVxcdC8qXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzoxMTE5OlxcdCAqIElmIHNob3VsZF9zcGxpdF9sYXJnZV9wYWdlKCkgZGlzY292ZXJlZCBhbiBpbmNvbnNpc3RlbnQgbWFwcGluZyxcXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTExMjAtXFx0ICogcmVtb3ZlIHRoZSBpbnZhbGlkIHByb3RlY3Rpb24gaW4gdGhlIHNwbGl0IG1hcHBpbmcuXFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTExMzMtXFx0ICogZml4ZWQgdHJpdmlhbGx5IGFzIHRoYXQgd291bGQgcmVxdWlyZSB0byByZXNjYW4gdGhlIG5ld2x5XFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzoxMTM0OlxcdCAqIGluc3RhbGxlZCBQTUQgbWFwcGluZ3MgYWZ0ZXIgcmV0dXJuaW5nIGZyb20gc3BsaXRfbGFyZ2VfcGFnZSgpXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xMTM1LVxcdCAqIHNvIGFuIGV2ZW50dWFsIGZ1cnRoZXIgc3BsaXQgY2FuIGFsbG9jYXRlIHRoZSBuZWNlc3NhcnkgUFRFXFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jPTExNDc9c3RhdGljIGludFxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM6MTE0ODpfX3NwbGl0X2xhcmdlX3BhZ2Uoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICprcHRlLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xMTQ5LVxcdFxcdCAgIHB0ZV90ICpwYmFzZSlcXG4tLVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTI1Mi1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjEyNTM6c3RhdGljIGludCBzcGxpdF9sYXJnZV9wYWdlKHN0cnVjdCBjcGFfZGF0YSAqY3BhLCBwdGVfdCAqa3B0ZSxcXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTEyNTQtXFx0XFx0XFx0ICAgIHVuc2lnbmVkIGxvbmcgYWRkcmVzcylcXG4tLVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTI2NS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjEyNjY6XFx0aWYgKF9fc3BsaXRfbGFyZ2VfcGFnZShjcGEsIGtwdGUsIGFkZHJlc3MsIHB0ZSkpXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xMjY3LVxcdFxcdHB0ZV9mcmVlX2tlcm5lbChcXHUwMDI2aW5pdF9tbSwgcHRlKTtcXG4tLVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9MTg2OD1zdGF0aWMgaW50IF9fY2hhbmdlX3BhZ2VfYXR0cihzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgaW50IHByaW1hcnkpXFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTE5MjYtXFx0ICovXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzoxOTI3OlxcdGRvX3NwbGl0ID0gc2hvdWxkX3NwbGl0X2xhcmdlX3BhZ2Uoa3B0ZSwgYWRkcmVzcywgY3BhKTtcXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTE5MjgtXFx0LypcXG4tLVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTkzOC1cXHQgKi9cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjE5Mzk6XFx0ZXJyID0gc3BsaXRfbGFyZ2VfcGFnZShjcGEsIGtwdGUsIGFkZHJlc3MpO1xcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTk0MC1cXHRpZiAoIWVycilcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDc6NTQ6NDIuODk0MzQ0Mzc2WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTIyMzc2MDMzNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFNldCBNZW1vcnkgRnVuY3Rpb25zIGluIHRoZSB4ODYgQXJjaGl0ZWN0dXJlKipcblxuT2theSwgc28gSSdtIGRpZ2dpbmcgaW50byBob3cgbWVtb3J5IGF0dHJpYnV0ZXMgYXJlIGNoYW5nZWQsIHNwZWNpZmljYWxseSB3aXRoaW4gdGhlIHg4NiBhcmNoaXRlY3R1cmUuIEl0IGxvb2tzIGxpa2UgdGhlIGZ1bmN0aW9ucyBgc3BsaXRfbGFyZ2VfcGFnZWAgYW5kIGBfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlc2AgYXJlIHRoZSBpbnRlcm5hbCB3b3JraG9yc2VzIHdpdGhpbiBgYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuY2AuIFRoZXkncmUgY2FsbGVkIGJ5IGBfX2NoYW5nZV9wYWdlX2F0dHJgIGFuZCBgY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzYCwgcmVzcGVjdGl2ZWx5LiBUaGVzZSBpbiB0dXJuIGFyZSBpbnZva2VkIGJ5IGBjaGFuZ2VfcGFnZV9hdHRyX3NldF9jbHJgLCB3aGljaCBpcyB0aGUgdmVyeSBoZWFydCBvZiB0aGUgYHNldF9tZW1vcnlfKmAgZmFtaWx5IG9mIGZ1bmN0aW9ucy5cblxuVGhlcmVmb3JlLCB0aGUga2V5IHN5bWJvbHMgSSBuZWVkIHRvIGZvY3VzIG9uIGFyZTpcbiogICBgc3BsaXRfbGFyZ2VfcGFnZWBcbiogICBgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXNgXG4qICAgYF9fc3BsaXRfbGFyZ2VfcGFnZWBcblxuSG9sZCBvbiBhIHNlY29uZC4gSSBqdXN0IHJlYWxpemVkIGBfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlc2AsIGBzcGxpdF9sYXJnZV9wYWdlYCBhbmQgYF9fc3BsaXRfbGFyZ2VfcGFnZWAgYXJlIGFsbCBkZWNsYXJlZCBhcyBzdGF0aWMuIERvZXMgdGhhdCBpbXBhY3QgdGhlIGFuYWx5c2lzPyBMZXQgbWUgcXVpY2tseSBjb25zaWRlciB0aGlzLiAqQ2FuKiB3ZSBmb2N1cyBvbiB0aGVzZT8gV2VsbCwgc3l6a2FsbGVyICpjYW4qIGZvY3VzIG9uIHN0YXRpYyBmdW5jdGlvbnMgYXMgbG9uZyBhcyB0aGV5IGFyZSBwcmVzZW50IGluIHRoZSBrZXJuZWwgaW1hZ2UsIHdoaWNoIHRoZXkgc2hvdWxkIGJlLiBUaGF0J3MgZ29vZCB0byBrbm93LiBOb3csIGFyZSB0aGVyZSBhbnkgcmVsZXZhbnQga2VybmVsIGNvbmZpZ3VyYXRpb25zIGhlcmU/IEkgc2hvdWxkIGNoZWNrIGlmIGBDT05GSUdfWDg2X1BBVGAgaXMgZGVmaW5lZC4gVGhpcyBjb3VsZCBiZSBpbXBvcnRhbnQgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIGNvbnRleHQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUzMTAsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMjYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDc6NTQ6NDguMTE4MTA2OTVaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMyMzk3MTYxNCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgWDg2X1BBVFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gveDg2L0tjb25maWc9MTY5MT1jb25maWcgTVRSUl9TQU5JVElaRVJfU1BBUkVfUkVHX05SX0RFRkFVTFRcXG4tLVxcbmFyY2gveDg2L0tjb25maWctMTY5OS1cXG5hcmNoL3g4Ni9LY29uZmlnOjE3MDA6Y29uZmlnIFg4Nl9QQVRcXG5hcmNoL3g4Ni9LY29uZmlnLTE3MDEtXFx0ZGVmX2Jvb2wgeVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwNzo1NDo0OC40NDIwODM3NDRaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTkzOTYzNzI5NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFBhZ2UgVGFibGUgRGVzY3JpcHRvciBCdWcgRml4KipcblxuT2theSwgc28gYFg4Nl9QQVRgIGlzIGRlZmluZWQgYXMgYSBib29sZWFuIChgZGVmX2Jvb2wgeWApLCBtZWFuaW5nIGl0J3MgYWx3YXlzIGVuYWJsZWQuIFRoYXQncyBhIGdpdmVuLiBOb3csIGxldCdzIGNvbnNpZGVyIGBDT05GSUdfREVCVUdfUEFHRUFMTE9DYC4gSSBzZWUgbWVudGlvbnMgb2YgYGRlYnVnX3BhZ2VhbGxvY19lbmFibGVkKClgIGluIHRoZSBjb2RlLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGlzIHBhdGNoICpyZXF1aXJlcyogYERFQlVHX1BBR0VBTExPQ2AuIEZyb20gYSBxdWljayBnbGFuY2UsIHRoZSBwYXRjaCBpdHNlbGYgZG9lc24ndCBzZWVtIHRvIGRlcGVuZCBvbiBpdC4gSXQgc2VlbXMgdG8gYmUgY2xlYW5pbmcgdXAgYSBidWcg4oCTIHNvbWV0aGluZyBhYm91dCBgcGFnZXRhYmxlX2ZyZWVgIGJlaW5nIGluY29ycmVjdGx5IHVzZWQgd2hlcmUgYHB0ZV9mcmVlX2tlcm5lbGAgb3IgYHBhZ2V0YWJsZV9kdG9yX2ZyZWVgIHNob3VsZCBoYXZlIGJlZW4gY2FsbGVkLlxuXG5UaGUgcm9vdCBvZiB0aGUgaXNzdWUgYXBwZWFycyB0byBiZSBhcm91bmQgaG93IHBhZ2UgdGFibGUgZGVzY3JpcHRvcnMgKHB0ZGVzYykgYW5kIHBhZ2UgdGFibGVzIHRoZW1zZWx2ZXMgYXJlIGJlaW5nIGZyZWVkLiBUaGUgcGF0Y2ggc2VlbXMgdG8gYmUgYWRkcmVzc2luZyB0aG9zZSBpbmNvcnJlY3QgY2FsbHMgaW4gdGhlIGBzcGxpdF9sYXJnZV9wYWdlYCBmdW5jdGlvbi4gSXQgbG9va3MgbGlrZSBgcGFnZXRhYmxlX2FsbG9jYCBpcyBiZWluZyBjaGFuZ2VkIHRvIGBwdGVfYWxsb2Nfb25lX2tlcm5lbGAgYW5kIGBwYWdldGFibGVfZnJlZWAgaXMgYmVpbmcgY2hhbmdlZCB0byBgcHRlX2ZyZWVfa2VybmVsYC4gQWRkaXRpb25hbGx5LCBpbiBgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXNgLCB0aGUgY29kZSBzZWVtcyB0byBiZSBjaGVja2luZyBgUGFnZVRhYmxlKHB0ZGVzY19wYWdlKHB0ZGVzYykpYCBhbmQgdGhlbiBjYWxsaW5nIGVpdGhlciBgcGFnZXRhYmxlX2R0b3JfZnJlZShwdGRlc2MpYCBvciBgcGFnZXRhYmxlX2ZyZWUocHRkZXNjKWAuXG5cbkkgbmVlZCB0byBjb25maXJtIHRoZXJlIGFyZW4ndCBhbnkgc3BlY2lmaWMgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gcGFnZSB0YWJsZSBkZXNjcmlwdG9ycy4gTm8sIGl0J3MgYSBjb3JlIG1lbW9yeSBtYW5hZ2VtZW50IGZlYXR1cmUuIEFuZCB3aGF0IGFib3V0IGBzZXRfbWVtb3J5LmNgPyBOb3BlLCB0aGF0J3MgYWxzbyBqdXN0IGNvcmUgeDg2IG1lbW9yeSBtYW5hZ2VtZW50IGNvZGUuXG5cbkFscmlnaHQsIG5vdyBJIG5lZWQgdG8gZGlnIGludG8gYHNldF9tZW1vcnkuY2AgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXMgbHVya2luZyB0aGVyZSB0aGF0IG1pZ2h0IGJlIHJlbGV2YW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjo1OTk0LCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mjg2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDA3OjU0OjU0LjM4MTcyMjg2MVoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjIzNDQ3MDUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiI2lmZGVmIENPTkZJR19cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jPTc5PXN0YXRpYyBpbmxpbmUgcGdwcm90X3QgY2FjaGVtb2RlMnBncHJvdChlbnVtIHBhZ2VfY2FjaGVfbW9kZSBwY20pXFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTgzLVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM6ODQ6I2lmZGVmIENPTkZJR19QUk9DX0ZTXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy04NS1zdGF0aWMgdW5zaWduZWQgbG9uZyBkaXJlY3RfcGFnZXNfY291bnRbUEdfTEVWRUxfTlVNXTtcXG4tLVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9MTM5PXN0YXRpYyBpbmxpbmUgdm9pZCBjb2xsYXBzZV9wYWdlX2NvdW50KGludCBsZXZlbCkgeyB9XFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTE0MS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjE0MjojaWZkZWYgQ09ORklHX1g4Nl9DUEFfU1RBVElTVElDU1xcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTQzLVxcbi0tXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYz0yMjQ9d2l0aGluKHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpXFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTIyOC1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjIyOTojaWZkZWYgQ09ORklHX1g4Nl82NFxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMjMwLVxcbi0tXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYz0yOTg9c3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIGZpeF9hZGRyKHVuc2lnbmVkIGxvbmcgYWRkcilcXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTI5OS17XFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzozMDA6I2lmZGVmIENPTkZJR19YODZfNjRcXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTMwMS1cXHRyZXR1cm4gKGxvbmcpKGFkZHIgXFx1MDAzY1xcdTAwM2MgMSkgXFx1MDAzZVxcdTAwM2UgMTtcXG4tLVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9MzU1PUVYUE9SVF9TWU1CT0xfR1BMKGNsZmx1c2hfY2FjaGVfcmFuZ2UpO1xcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMzU2LVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM6MzU3OiNpZmRlZiBDT05GSUdfQVJDSF9IQVNfUE1FTV9BUElcXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTM1OC12b2lkIGFyY2hfaW52YWxpZGF0ZV9wbWVtKHZvaWQgKmFkZHIsIHNpemVfdCBzaXplKVxcbi0tXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYz0zNjI9RVhQT1JUX1NZTUJPTF9HUEwoYXJjaF9pbnZhbGlkYXRlX3BtZW0pO1xcbi0tXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0zNjQtXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzozNjU6I2lmZGVmIENPTkZJR19BUkNIX0hBU19DUFVfQ0FDSEVfSU5WQUxJREFURV9NRU1SRUdJT05cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTM2Ni1ib29sIGNwdV9jYWNoZV9oYXNfaW52YWxpZGF0ZV9tZW1yZWdpb24odm9pZClcXG4tLVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9NTA1PXN0YXRpYyBib29sIG92ZXJsYXBzKHVuc2lnbmVkIGxvbmcgcjFfc3RhcnQsIHVuc2lnbmVkIGxvbmcgcjFfZW5kLFxcbi0tXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy01MTEtXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzo1MTI6I2lmZGVmIENPTkZJR19QQ0lfQklPU1xcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtNTEzLS8qXFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jPTkwOD1zdGF0aWMgdm9pZCBfX3NldF9wbWRfcHRlKHB0ZV90ICprcHRlLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsIHB0ZV90IHB0ZSlcXG4tLVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtOTExLVxcdHNldF9wdGVfYXRvbWljKGtwdGUsIHB0ZSk7XFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzo5MTI6I2lmZGVmIENPTkZJR19YODZfMzJcXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTkxMy1cXHR7XFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jPTE5NTE9c3RhdGljIGludCBjcGFfcHJvY2Vzc19hbGlhcyhzdHJ1Y3QgY3BhX2RhdGEgKmNwYSlcXG4tLVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTk4Ni1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjE5ODc6I2lmZGVmIENPTkZJR19YODZfNjRcXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTE5ODgtXFx0LypcXG4tLVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9MjI4ND1FWFBPUlRfU1lNQk9MKHNldF9tZW1vcnlfd2IpO1xcbi0tXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0yMjg2LS8qIFByZXZlbnQgc3BlY3VsYXRpdmUgYWNjZXNzIHRvIGEgcGFnZSBieSBtYXJraW5nIGl0IG5vdC1wcmVzZW50ICovXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzoyMjg3OiNpZmRlZiBDT05GSUdfWDg2XzY0XFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0yMjg4LWludCBzZXRfbWNlX25vc3BlYyh1bnNpZ25lZCBsb25nIHBmbilcXG4tLVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM9MjY3OT1pbnQgc2V0X2RpcmVjdF9tYXBfdmFsaWRfbm9mbHVzaChzdHJ1Y3QgcGFnZSAqcGFnZSwgdW5zaWduZWQgbnIsIGJvb2wgdmFsaWQpXFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTI2ODYtXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzoyNjg3OiNpZmRlZiBDT05GSUdfREVCVUdfUEFHRUFMTE9DXFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0yNjg4LXZvaWQgX19rZXJuZWxfbWFwX3BhZ2VzKHN0cnVjdCBwYWdlICpwYWdlLCBpbnQgbnVtcGFnZXMsIGludCBlbmFibGUpXFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jPTI3NzA9aW50IF9faW5pdCBrZXJuZWxfdW5tYXBfcGFnZXNfaW5fcGdkKHBnZF90ICpwZ2QsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcyxcXG4tLVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMjgwMi0gKi9cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjI4MDM6I2lmZGVmIENPTkZJR19DUEFfREVCVUdcXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTI4MDQtI2luY2x1ZGUgXFxcImNwYS10ZXN0LmNcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDA3OjU0OjU0LjQ0NDA3MjM4NloiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNTgzMDEyNDM5MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIEFuYWx5c2lzOiBYODYgQ29yZSBQYWdlIFRhYmxlIENvbGxhcHNlKipcblxuT2theSwgdGhpcyBwYXRjaCBpcyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuIEl0J3MgdG91Y2hpbmcgY29yZSB4ODYgY29kZSByZWxhdGVkIHRvIHBhZ2UgdGFibGUgbWFuYWdlbWVudCwgc3BlY2lmaWNhbGx5IGxhcmdlIHBhZ2UgY29sbGFwc2luZyBhbmQgc3BsaXR0aW5nLiBUaGF0J3MgYSBwcmltZSB0YXJnZXQgZm9yIGZpbmRpbmcgbWVtb3J5IGNvcnJ1cHRpb24gaXNzdWVzLlxuXG5NeSBpbW1lZGlhdGUgZm9jdXMgd2lsbCBiZSBvbiB0aGVzZSBmdW5jdGlvbnM6XG5cbiogICBgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXNgXG4qICAgYHNwbGl0X2xhcmdlX3BhZ2VgXG4qICAgYF9fc3BsaXRfbGFyZ2VfcGFnZWBcblxuSSdtIGRvdWJsZS1jaGVja2luZywganVzdCB0byBiZSBzdXJlLi4uIHllcCwgdGhvc2UgYXJlIHRoZSBtb2RpZmllZCBmdW5jdGlvbnMuXG5cbk5vdywgSSBuZWVkIHRvIHRoaW5rIGFib3V0IHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zLiBgQ09ORklHX1g4Nl9QQVRgIGlzIGEgZGVmYXVsdCBcInlcIiwgc28gdGhhdCdzIGNvdmVyZWQuIGBDT05GSUdfREVCVUdfUEFHRUFMTE9DYCBkaWQgY2F0Y2ggbXkgZXllIGJlY2F1c2Ugb2YgdGhlIGNvbmRpdGlvbmFsIGxvZ2ljIGluIGBzcGxpdF9sYXJnZV9wYWdlYCwgYnV0IHRoZSBjcnVjaWFsIGBwdGVfZnJlZV9rZXJuZWxgIGNhbGxzIGFyZW4ndCBkZXBlbmRlbnQgb24gaXQgYXQgcnVudGltZS4gSXQncyBhIG5pY2UtdG8taGF2ZSwgYW5kIG1pZ2h0IGV4cG9zZSBkaWZmZXJlbnQgbG9ja2luZyBwYXRocywgYnV0IHRoZSBjb3JlIGlzc3VlIGlzbid0IGdhdGVkIGJ5IGl0LiBBbmQsIGhvbmVzdGx5LCBTeXprYWxsZXIgcHJvYmFibHkgYWxyZWFkeSBoYXMgS0FTQU4gZW5hYmxlZCwgc28gdGhlIHJpc2sgaXNuJ3QgdGhhdCBoaWdoLiBTbyBJIHdpbGwgbGVhdmUgYEVuYWJsZUNvbmZpZ3NgIGVtcHR5IGZvciBub3cgdG8gYXZvaWQgY29uc3RyYWluaW5nIHRoZSBmdXp6ZXIuXG5cblRoZSBwYXRjaCdzIGNvcmUgaXMgYWJvdXQgdGhlIGNvcnJlY3QgZnJlZWluZyBvZiBwYWdlIHRhYmxlcyBhZnRlciB0aGV5J3JlIGNvbGxhcHNlZCBvciBzcGxpdC4gVGhlIGZpeCBhZGRyZXNzZXMgYSBidWcgd2hlcmUgYHBhZ2V0YWJsZV9mcmVlYCB3YXMgdXNlZCB3aGVuIGBwdGVfZnJlZV9rZXJuZWxgIG9yIGBwYWdldGFibGVfZHRvcl9mcmVlYCB3YXMgbmVlZGVkLiBHaXZlbiB0aGF0IHRoaXMgd2FzIGxpa2VseSBmb3VuZCBieSBzeXpib3QsIGl0J3MgdmVyeSByZWxldmFudCBmb3IgZnV6emluZywgYmVjYXVzZSBpdCBtZWFucyB0aGUgY29kZSBpcyBub3Qgcm9idXN0IGVub3VnaCB0byBkZWFsIHdpdGggYWxsIGtpbmRzIG9mIHN0YXRlcy5cblxuSSBjaGVja2VkIGZvciByZWFjaGFiaWxpdHkgZnJvbSB1c2VyIHNwYWNlLiBUaGUgYHNldF9tZW1vcnlfKmAgZnVuY3Rpb25zIGFyZSBvZnRlbiB1c2VkIGJ5IHRoaW5ncyBsaWtlIEJQRiBKSVQsIG1vZHVsZSBsb2FkaW5nLCBrcHJvYmVzLCBhbmQgZnRyYWNlLCBzbyBpdCdzIGRlZmluaXRlbHkgcmVhY2hhYmxlLlxuXG4qKkhlcmUncyB0aGUgZnV6emluZyBzZXR1cCBJJ2xsIHJlY29tbWVuZDoqKlxuXG4qICAgKipXb3J0aEZ1enppbmc6IFRydWUqKlxuKiAgICoqRm9jdXNTeW1ib2xzOioqXG4gICAgKiAgIGBfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlc2BcbiAgICAqICAgYHNwbGl0X2xhcmdlX3BhZ2VgXG4gICAgKiAgIGBfX3NwbGl0X2xhcmdlX3BhZ2VgXG4qICAgKipFbmFibGVDb25maWdzOioqIChFbXB0eS4gTm8gZXh0cmEgY29uZmlndXJhdGlvbiBuZWVkZWQpXG5cblRoaXMgc2hvdWxkIGJlIGEgZnJ1aXRmdWwgdGFyZ2V0LiBUaGUgcGF0Y2ggYWRkcmVzc2VzIGEgY3JpdGljYWwgbWVtb3J5IG1hbmFnZW1lbnQgaXNzdWUsIGFuZCBpcyByZWFjaGFibGUgZnJvbSBhIHdpZGUgdmFyaWV0eSBvZiB1c2Vyc3BhY2UgYWN0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6ODIzNiwiT3V0cHV0VG9rZW5zIjoxNTIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDg1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDA3OjU1OjEwLjI3NDE5ODkzN1oiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0MDMxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXNcIixcbiAgICBcInNwbGl0X2xhcmdlX3BhZ2VcIixcbiAgICBcIl9fc3BsaXRfbGFyZ2VfcGFnZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGNvcmUgeDg2IHBhZ2UgYXR0cmlidXRlIChDUEEpIG1hbmlwdWxhdGlvbiBmdW5jdGlvbnMgdG8gY29ycmVjdGx5IGZyZWUgcGFnZSB0YWJsZXMgdXNpbmcgcHRlX2ZyZWVfa2VybmVsIGFuZCBwYWdldGFibGVfZHRvcl9mcmVlIGluc3RlYWQgb2YgcGFnZXRhYmxlX2ZyZWUuIFRoZXNlIGZ1bmN0aW9ucyBhcmUgcmVhY2hhYmxlIHZpYSBzZXRfbWVtb3J5XyogQVBJcyAoZS5nLiwgdXNlZCBieSBCUEYgSklULCBtb2R1bGUgbG9hZGluZykgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIG1lbW9yeSBsZWFrcyBvciB1c2UtYWZ0ZXItZnJlZSBpc3N1ZXMgb2NjdXIgZHVyaW5nIGxhcmdlIHBhZ2Ugc3BsaXR0aW5nIG9yIGNvbGxhcHNpbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXNcIixcbiAgICBcInNwbGl0X2xhcmdlX3BhZ2VcIixcbiAgICBcIl9fc3BsaXRfbGFyZ2VfcGFnZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGNvcmUgeDg2IHBhZ2UgYXR0cmlidXRlIChDUEEpIG1hbmlwdWxhdGlvbiBmdW5jdGlvbnMgdG8gY29ycmVjdGx5IGZyZWUgcGFnZSB0YWJsZXMgdXNpbmcgcHRlX2ZyZWVfa2VybmVsIGFuZCBwYWdldGFibGVfZHRvcl9mcmVlIGluc3RlYWQgb2YgcGFnZXRhYmxlX2ZyZWUuIFRoZXNlIGZ1bmN0aW9ucyBhcmUgcmVhY2hhYmxlIHZpYSBzZXRfbWVtb3J5XyogQVBJcyAoZS5nLiwgdXNlZCBieSBCUEYgSklULCBtb2R1bGUgbG9hZGluZykgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIG1lbW9yeSBsZWFrcyBvciB1c2UtYWZ0ZXItZnJlZSBpc3N1ZXMgb2NjdXIgZHVyaW5nIGxhcmdlIHBhZ2Ugc3BsaXR0aW5nIG9yIGNvbGxhcHNpbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowbqr9r[1] Phase: Succeeded StartedAt: 2026-07-22 07:55:35 +0000 UTC FinishedAt: 2026-07-22 07:55:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbqr9r[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-22 07:55:35 +0000 UTC FinishedAt: 2026-07-22 07:55:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbqr9r[2] Phase: Succeeded StartedAt: 2026-07-22 07:55:35 +0000 UTC FinishedAt: 2026-07-22 12:38:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbqr9r[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-22 07:55:35 +0000 UTC FinishedAt: 2026-07-22 12:38:55 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"skip_cover_check":true},"patched":{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowbqr9r[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-22 07:55:35 +0000 UTC FinishedAt: 2026-07-22 07:56:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbqr9r[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-22 07:55:35 +0000 UTC FinishedAt: 2026-07-22 07:55:56 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowbqr9r/series-workflowbqr9r-convert-artifact-1933697163/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbqr9r[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-22 07:56:03 +0000 UTC FinishedAt: 2026-07-22 08:34:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbqr9r[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-22 07:56:03 +0000 UTC FinishedAt: 2026-07-22 08:34:15 +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:*6a346bde-0785-414c-bf2e-9b142cd741f3,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-workflowbqr9r/series-workflowbqr9r-convert-artifact-1933697163/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": "2ad83693-6832-4e8c-a351-f1fb9c25d230", "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-workflowbqr9r/series-workflowbqr9r-build-action-142990217/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbqr9r[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-22 07:56:03 +0000 UTC FinishedAt: 2026-07-22 08:34:05 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*6a346bde-0785-414c-bf2e-9b142cd741f3,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-workflowbqr9r/series-workflowbqr9r-convert-artifact-1933697163/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": "2ad83693-6832-4e8c-a351-f1fb9c25d230", "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-workflowbqr9r/series-workflowbqr9r-build-action-142990217/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbqr9r[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-22 08:34:15 +0000 UTC FinishedAt: 2026-07-22 08:34:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbqr9r[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-22 08:34:15 +0000 UTC FinishedAt: 2026-07-22 08:34:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbqr9r[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-22 08:34:15 +0000 UTC FinishedAt: 2026-07-22 08:34:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbqr9r[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-22 08:34:15 +0000 UTC FinishedAt: 2026-07-22 08:34:23 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowbqr9r/series-workflowbqr9r-convert-artifact-3015085794/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbqr9r[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-22 08:34:36 +0000 UTC FinishedAt: 2026-07-22 08:36:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbqr9r[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-22 08:34:36 +0000 UTC FinishedAt: 2026-07-22 08:36:36 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*2ad83693-6832-4e8c-a351-f1fb9c25d230,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-workflowbqr9r/series-workflowbqr9r-build-action-142990217/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-workflowbqr9r[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-22 08:36:47 +0000 UTC FinishedAt: 2026-07-22 08:36:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbqr9r[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-22 08:36:47 +0000 UTC FinishedAt: 2026-07-22 08:36:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbqr9r[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-22 08:36:47 +0000 UTC FinishedAt: 2026-07-22 09:31:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbqr9r[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-22 08:36:47 +0000 UTC FinishedAt: 2026-07-22 09:31:33 +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:*6a346bde-0785-414c-bf2e-9b142cd741f3,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-workflowbqr9r/series-workflowbqr9r-convert-artifact-3015085794/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": "8bbe3ae3-10de-49bf-b67d-08db3a63dcd4", "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-workflowbqr9r/series-workflowbqr9r-build-action-330890038/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbqr9r[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-22 08:36:47 +0000 UTC FinishedAt: 2026-07-22 09:31:22 +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:*6a346bde-0785-414c-bf2e-9b142cd741f3,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-workflowbqr9r/series-workflowbqr9r-convert-artifact-3015085794/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": "8bbe3ae3-10de-49bf-b67d-08db3a63dcd4", "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-workflowbqr9r/series-workflowbqr9r-build-action-330890038/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbqr9r[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-22 09:31:33 +0000 UTC FinishedAt: 2026-07-22 09:31:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbqr9r[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-22 09:31:33 +0000 UTC FinishedAt: 2026-07-22 09:31:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbqr9r[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-22 09:31:33 +0000 UTC FinishedAt: 2026-07-22 09:33:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbqr9r[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-22 09:31:33 +0000 UTC FinishedAt: 2026-07-22 09:33:40 +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:*8bbe3ae3-10de-49bf-b67d-08db3a63dcd4,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-workflowbqr9r/series-workflowbqr9r-build-action-330890038/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-workflowbqr9r[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-22 09:33:50 +0000 UTC FinishedAt: 2026-07-22 12:38:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbqr9r[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-22 09:33:50 +0000 UTC FinishedAt: 2026-07-22 12:38:55 +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":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"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:*2ad83693-6832-4e8c-a351-f1fb9c25d230,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*8bbe3ae3-10de-49bf-b67d-08db3a63dcd4,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-workflowbqr9r/series-workflowbqr9r-build-action-142990217/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-workflowbqr9r/series-workflowbqr9r-build-action-330890038/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowbqr9r[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-22 09:33:50 +0000 UTC FinishedAt: 2026-07-22 09:34:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbqr9r[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-22 09:33:50 +0000 UTC FinishedAt: 2026-07-22 09:34:19 +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":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"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-workflowbqr9r/series-workflowbqr9r-convert-artifact-1626095383/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbqr9r[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-22 09:33:50 +0000 UTC FinishedAt: 2026-07-22 09:33:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbqr9r[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-22 09:33:50 +0000 UTC FinishedAt: 2026-07-22 09:33:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbqr9r[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-22 09:33:50 +0000 UTC FinishedAt: 2026-07-22 09:33:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbqr9r[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-22 09:34:26 +0000 UTC FinishedAt: 2026-07-22 12:38:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbqr9r[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page","__split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a1ea25f7f6e9c4c833b3960375d15351585a03f2","config_name":"upstream-apparmor-kasan.config","series_id":"3ee24405-734c-4e42-9b3a-0d2a0e3b4dfa","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-22 09:34:26 +0000 UTC FinishedAt: 2026-07-22 12:38:45 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*2ad83693-6832-4e8c-a351-f1fb9c25d230,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*8bbe3ae3-10de-49bf-b67d-08db3a63dcd4,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-workflowbqr9r/series-workflowbqr9r-build-action-142990217/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-workflowbqr9r/series-workflowbqr9r-build-action-330890038/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-workflowbqr9r/series-workflowbqr9r-convert-artifact-1626095383/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,}