Name: series-workflowmltvb Phase: Succeeded StartedAt: 2026-07-22 08:28:37 +0000 UTC FinishedAt: 2026-07-22 13:36:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmltvb[0] Phase: Succeeded StartedAt: 2026-07-22 08:28:37 +0000 UTC FinishedAt: 2026-07-22 09:08:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmltvb[0].run-triage Phase: Succeeded StartedAt: 2026-07-22 08:28:37 +0000 UTC FinishedAt: 2026-07-22 09:08:12 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "7c25590d03abcb5424723f90641fda5b6cefffc8", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL", "BPF_JIT" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "7c25590d03abcb5424723f90641fda5b6cefffc8", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL", "BPF_JIT" ], "series_id": "b3197a7c-155d-4e03-8ef1-950d81690fe2" }, "track": "KASAN", "fuzz": { "focus": [ "bpf" ], "focus_symbols": [ "bpf_trampoline_set_flags", "check_attach_btf_id" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDA5OjA2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDssCiAgICAmIzM0O0JQRl9KSVQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticGZfdHJhbXBvbGluZV9zZXRfZmxhZ3MmIzM0OywKICAgICYjMzQ7Y2hlY2tfYXR0YWNoX2J0Zl9pZCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHJhY2UgY29uZGl0aW9uIGFuZCBpbmNvcnJlY3QgZmxhZyBhc3NpZ25tZW50IGluIEJQRiB0cmFtcG9saW5lIGxvZ2ljIGJ5IGludHJvZHVjaW5nIGEgbG9ja2VkIGJpdHdpc2UgT1IgdXBkYXRlIGZvciB0cmFtcG9saW5lIGZsYWdzLiBUaGlzIGlzIGNvcmUgQlBGIGZ1bmN0aW9uYWxpdHkgdGhhdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDA5OjA2PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgOWFlYzgwYjc2NjYzYzVkNzA2NDUwNzlmYjMwOWQwNDhhMjJlNzM0N1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDIyIDA5OjA2OjU1IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvYnBmLmggYi9pbmNsdWRlL2xpbnV4L2JwZi5oXG5pbmRleCBkOTU0MjEyN2RmZGZjMC4uZmM4NGYzOTk2N2FlMGUgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL2xpbnV4L2JwZi5oXG4mIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2xpbnV4L2JwZi5oXG5AQCAtMTUyMyw2ICYjNDM7MTUyMyw3IEBAIGludCBicGZfdHJhbXBvbGluZV9tdWx0aV9hdHRhY2goc3RydWN0IGJwZl9wcm9nICpwcm9nLCB1MzIgKmlkcyxcbiBcdFx0XHRcdHN0cnVjdCBicGZfdHJhY2luZ19tdWx0aV9saW5rICpsaW5rKTtcbiBpbnQgYnBmX3RyYW1wb2xpbmVfbXVsdGlfZGV0YWNoKHN0cnVjdCBicGZfcHJvZyAqcHJvZyxcbiBcdFx0XHRcdHN0cnVjdCBicGZfdHJhY2luZ19tdWx0aV9saW5rICpsaW5rKTtcbiYjNDM7dm9pZCBicGZfdHJhbXBvbGluZV9zZXRfZmxhZ3Moc3RydWN0IGJwZl90cmFtcG9saW5lICp0ciwgdTMyIGZsYWdzKTtcbiBcbiAvKlxuICAqIFdoZW4gdGhlIGFyY2hpdGVjdHVyZSBzdXBwb3J0cyBTVEFUSUNfQ0FMTCByZXBsYWNlIHRoZSBicGZfZGlzcGF0Y2hlcl9mblxuQEAgLTE2NDYsNiAmIzQzOzE2NDcsNyBAQCBzdGF0aWMgaW5saW5lIGludCBicGZfdHJhbXBvbGluZV9tdWx0aV9kZXRhY2goc3RydWN0IGJwZl9wcm9nICpwcm9nLFxuIHtcbiBcdHJldHVybiAtRU5PVFNVUFA7XG4gfVxuJiM0MztzdGF0aWMgaW5saW5lIHZvaWQgYnBmX3RyYW1wb2xpbmVfc2V0X2ZsYWdzKHN0cnVjdCBicGZfdHJhbXBvbGluZSAqdHIsIHUzMiBmbGFncykge31cbiAjZW5kaWZcbiBcbiBzdHJ1Y3QgYnBmX2Z1bmNfaW5mb19hdXgge1xuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdHJhbXBvbGluZS5jIGIva2VybmVsL2JwZi90cmFtcG9saW5lLmNcbmluZGV4IDZlYWRmNjRmN2VjOTBmLi4xMjlkMDdkYjExN2VjNyAxMDA2NDRcbi0tLSBhL2tlcm5lbC9icGYvdHJhbXBvbGluZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvYnBmL3RyYW1wb2xpbmUuY1xuQEAgLTY3MCw2ICYjNDM7NjcwLDEzIEBAIHN0YXRpYyBzdHJ1Y3QgYnBmX3RyYW1wX2ltYWdlICpicGZfdHJhbXBfaW1hZ2VfYWxsb2ModTY0IGtleSwgaW50IHNpemUpXG4gXHRyZXR1cm4gRVJSX1BUUihlcnIpO1xuIH1cbiBcbiYjNDM7dm9pZCBicGZfdHJhbXBvbGluZV9zZXRfZmxhZ3Moc3RydWN0IGJwZl90cmFtcG9saW5lICp0ciwgdTMyIGZsYWdzKVxuJiM0Mzt7XG4mIzQzO1x0dHJhbXBvbGluZV9sb2NrKHRyKTtcbiYjNDM7XHR0ci1cdTAwM2VmbGFncyB8PSBmbGFncztcbiYjNDM7XHR0cmFtcG9saW5lX3VubG9jayh0cik7XG4mIzQzO31cbiYjNDM7XG4gc3RhdGljIGludCBicGZfdHJhbXBvbGluZV91cGRhdGUoc3RydWN0IGJwZl90cmFtcG9saW5lICp0ciwgYm9vbCBsb2NrX2RpcmVjdF9tdXRleCxcbiBcdFx0XHRcdCBjb25zdCBzdHJ1Y3QgYnBmX3RyYW1wb2xpbmVfb3BzICpvcHMsIHZvaWQgKmRhdGEpXG4ge1xuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuaW5kZXggNTJiZTBhMTE4Y2NlMDcuLjY2ZDhkOWVhZWMwNWY5IDEwMDY0NFxuLS0tIGEva2VybmVsL2JwZi92ZXJpZmllci5jXG4mIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbkBAIC0xOTUyMyw3ICYjNDM7MTk1MjMsNyBAQCBzdGF0aWMgaW50IGNoZWNrX2F0dGFjaF9idGZfaWQoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcbiBcdFx0cmV0dXJuIC1FTk9NRU07XG4gXG4gXHRpZiAodGd0X3Byb2cgXHUwMDI2XHUwMDI2IHRndF9wcm9nLVx1MDAzZWF1eC1cdTAwM2V0YWlsX2NhbGxfcmVhY2hhYmxlKVxuLVx0XHR0ci1cdTAwM2VmbGFncyA9IEJQRl9UUkFNUF9GX1RBSUxfQ0FMTF9DVFg7XG4mIzQzO1x0XHRicGZfdHJhbXBvbGluZV9zZXRfZmxhZ3ModHIsIEJQRl9UUkFNUF9GX1RBSUxfQ0FMTF9DVFgpO1xuIFxuIFx0cHJvZy1cdTAwM2VhdXgtXHUwMDNlZHN0X3RyYW1wb2xpbmUgPSB0cjtcbiBcdHJldHVybiAwO1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RhaWxjYWxscy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdGFpbGNhbGxzLmNcbmluZGV4IGM2NjAzNzE2MmRhNWFlLi44NmQ4N2Q1ODE3Y2Y3MSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RhaWxjYWxscy5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90YWlsY2FsbHMuY1xuQEAgLTEzLDYgJiM0MzsxMyw4IEBAXG4gI2luY2x1ZGUgXCYjMzQ7dGFpbGNhbGxfY2dycF9zdG9yYWdlLnNrZWwuaFwmIzM0O1xuICNpbmNsdWRlIFwmIzM0O3RhaWxjYWxsX3NsZWVwYWJsZS5za2VsLmhcJiMzNDtcbiAjaW5jbHVkZSBcJiMzNDt0YWlsY2FsbF9jYWxsYmFjay5za2VsLmhcJiMzNDtcbiYjNDM7I2luY2x1ZGUgXCYjMzQ7dGFpbGNhbGxfYnBmMmJwZjIuc2tlbC5oXCYjMzQ7XG4mIzQzOyNpbmNsdWRlIFwmIzM0O3RhaWxjYWxsX2JwZjJicGZfZmV4aXQuc2tlbC5oXCYjMzQ7XG4gXG4gLyogdGVzdF90YWlsY2FsbF8xIGNoZWNrcyBiYXNpYyBmdW5jdGlvbmFsaXR5IGJ5IHBhdGNoaW5nIG11bHRpcGxlIGxvY2F0aW9uc1xuICAqIGluIGEgc2luZ2xlIHByb2dyYW0gZm9yIGEgc2luZ2xlIHRhaWwgY2FsbCBzbG90IHdpdGggbm9wLVx1MDAzZWptcCwgam1wLVx1MDAzZW5vcFxuQEAgLTE5MDcsNiAmIzQzOzE5MDksNTMgQEAgc3RhdGljIHZvaWQgdGVzdF90YWlsY2FsbF9jYWxsYmFjayh2b2lkKVxuIFx0UlVOX1RFU1RTKHRhaWxjYWxsX2NhbGxiYWNrKTtcbiB9XG4gXG4mIzQzO3N0YXRpYyB2b2lkIHRlc3RfdGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9saW5rcyh2b2lkKVxuJiM0Mzt7XG4mIzQzO1x0c3RydWN0IHRhaWxjYWxsX2JwZjJicGZfZmV4aXQgKnNrZWwxID0gTlVMTCwgKnNrZWwyID0gTlVMTDtcbiYjNDM7XHRzdHJ1Y3QgdGFpbGNhbGxfYnBmMmJwZjIgKnNrZWxfdGM7XG4mIzQzO1x0c3RydWN0IGJwZl9saW5rICpsaW5rO1xuJiM0MztcdGludCBlcnIsIHByb2dfZmQ7XG4mIzQzO1xuJiM0MztcdHNrZWxfdGMgPSB0YWlsY2FsbF9icGYyYnBmMl9fb3Blbl9hbmRfbG9hZCgpO1xuJiM0MztcdGlmICghQVNTRVJUX09LX1BUUihza2VsX3RjLCBcJiMzNDt0YWlsY2FsbF9icGYyYnBmMl9fb3Blbl9hbmRfbG9hZFwmIzM0OykpXG4mIzQzO1x0XHRyZXR1cm47XG4mIzQzO1xuJiM0MztcdHNrZWwxID0gdGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9fb3BlbigpO1xuJiM0MztcdGlmICghQVNTRVJUX09LX1BUUihza2VsMSwgXCYjMzQ7dGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9fb3BlblwmIzM0OykpXG4mIzQzO1x0XHRnb3RvIG91dDtcbiYjNDM7XG4mIzQzO1x0cHJvZ19mZCA9IGJwZl9wcm9ncmFtX19mZChza2VsX3RjLVx1MDAzZXByb2dzLmNsYXNzaWZpZXJfMCk7XG4mIzQzO1x0ZXJyID0gYnBmX3Byb2dyYW1fX3NldF9hdHRhY2hfdGFyZ2V0KHNrZWwxLVx1MDAzZXByb2dzLmZleGl0LCBwcm9nX2ZkLCBcJiMzNDtzdWJwcm9nX3RhaWxcJiMzNDspO1xuJiM0MztcdGlmICghQVNTRVJUX09LKGVyciwgXCYjMzQ7YnBmX3Byb2dyYW1fX3NldF9hdHRhY2hfdGFyZ2V0XCYjMzQ7KSlcbiYjNDM7XHRcdGdvdG8gb3V0O1xuJiM0MztcbiYjNDM7XHRlcnIgPSB0YWlsY2FsbF9icGYyYnBmX2ZleGl0X19sb2FkKHNrZWwxKTtcbiYjNDM7XHRpZiAoIUFTU0VSVF9PSyhlcnIsIFwmIzM0O3RhaWxjYWxsX2JwZjJicGZfZmV4aXRfX2xvYWRcJiMzNDspKVxuJiM0MztcdFx0Z290byBvdXQ7XG4mIzQzO1xuJiM0MztcdGxpbmsgPSBicGZfcHJvZ3JhbV9fYXR0YWNoX3RyYWNlKHNrZWwxLVx1MDAzZXByb2dzLmZleGl0KTtcbiYjNDM7XHRpZiAoIUFTU0VSVF9PS19QVFIobGluaywgXCYjMzQ7YnBmX3Byb2dyYW1fX2F0dGFjaF90cmFjZVwmIzM0OykpXG4mIzQzO1x0XHRnb3RvIG91dDtcbiYjNDM7XHRza2VsMS1cdTAwM2VsaW5rcy5mZXhpdCA9IGxpbms7XG4mIzQzO1xuJiM0MztcdHNrZWwyID0gdGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9fb3BlbigpO1xuJiM0MztcdGlmICghQVNTRVJUX09LX1BUUihza2VsMiwgXCYjMzQ7dGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9fb3BlblwmIzM0OykpXG4mIzQzO1x0XHRnb3RvIG91dDtcbiYjNDM7XG4mIzQzO1x0ZXJyID0gYnBmX3Byb2dyYW1fX3NldF9hdHRhY2hfdGFyZ2V0KHNrZWwyLVx1MDAzZXByb2dzLmZleGl0LCBwcm9nX2ZkLCBcJiMzNDtzdWJwcm9nX3RhaWxcJiMzNDspO1xuJiM0MztcdGlmICghQVNTRVJUX09LKGVyciwgXCYjMzQ7YnBmX3Byb2dyYW1fX3NldF9hdHRhY2hfdGFyZ2V0XCYjMzQ7KSlcbiYjNDM7XHRcdGdvdG8gb3V0O1xuJiM0MztcbiYjNDM7XHRlcnIgPSB0YWlsY2FsbF9icGYyYnBmX2ZleGl0X19sb2FkKHNrZWwyKTtcbiYjNDM7XHRpZiAoIUFTU0VSVF9PSyhlcnIsIFwmIzM0O3RhaWxjYWxsX2JwZjJicGZfZmV4aXRfX2xvYWRcJiMzNDspKVxuJiM0MztcdFx0Z290byBvdXQ7XG4mIzQzO1xuJiM0MztvdXQ6XG4mIzQzO1x0dGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9fZGVzdHJveShza2VsMSk7XG4mIzQzO1x0dGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9fZGVzdHJveShza2VsMik7XG4mIzQzO1x0dGFpbGNhbGxfYnBmMmJwZjJfX2Rlc3Ryb3koc2tlbF90Yyk7XG4mIzQzO31cbiYjNDM7XG4gdm9pZCB0ZXN0X3RhaWxjYWxscyh2b2lkKVxuIHtcbiBcdGlmICh0ZXN0X19zdGFydF9zdWJ0ZXN0KFwmIzM0O3RhaWxjYWxsXzFcJiMzNDspKVxuQEAgLTE5NzQsNCAmIzQzOzIwMjMsNiBAQCB2b2lkIHRlc3RfdGFpbGNhbGxzKHZvaWQpXG4gXHRpZiAodGVzdF9fc3RhcnRfc3VidGVzdChcJiMzNDt0YWlsY2FsbF9jZ3JwX3N0b3JhZ2Vfbm9fc3RvcmFnZV9icmlkZ2VcJiMzNDspKVxuIFx0XHR0ZXN0X3RhaWxjYWxsX2NncnBfc3RvcmFnZV9ub19zdG9yYWdlX2JyaWRnZSgpO1xuIFx0dGVzdF90YWlsY2FsbF9jYWxsYmFjaygpO1xuJiM0MztcdGlmICh0ZXN0X19zdGFydF9zdWJ0ZXN0KFwmIzM0O3RhaWxjYWxsX2JwZjJicGZfZmV4aXRfbGlua3NcJiMzNDspKVxuJiM0MztcdFx0dGVzdF90YWlsY2FsbF9icGYyYnBmX2ZleGl0X2xpbmtzKCk7XG4gfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDA5OjA2PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfU1lTQ0FMTCYjMzQ7LAogICAgJiMzNDtCUEZfSklUJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YnBmX3RyYW1wb2xpbmVfc2V0X2ZsYWdzJiMzNDssCiAgICAmIzM0O2NoZWNrX2F0dGFjaF9idGZfaWQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSByYWNlIGNvbmRpdGlvbiBhbmQgaW5jb3JyZWN0IGZsYWcgYXNzaWdubWVudCBpbiBCUEYgdHJhbXBvbGluZSBsb2dpYyBieSBpbnRyb2R1Y2luZyBhIGxvY2tlZCBiaXR3aXNlIE9SIHVwZGF0ZSBmb3IgdHJhbXBvbGluZSBmbGFncy4gVGhpcyBpcyBjb3JlIEJQRiBmdW5jdGlvbmFsaXR5IHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgOWFlYzgwYjc2NjYzYzVkNzA2NDUwNzlmYjMwOWQwNDhhMjJlNzM0NwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgSnVsIDIyIDA5OjA2OjU1IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9icGYuaCBiL2luY2x1ZGUvbGludXgvYnBmLmgKaW5kZXggZDk1NDIxMjdkZmRmYzAuLmZjODRmMzk5NjdhZTBlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2JwZi5oCiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvYnBmLmgKQEAgLTE1MjMsNiAmIzQzOzE1MjMsNyBAQCBpbnQgYnBmX3RyYW1wb2xpbmVfbXVsdGlfYXR0YWNoKHN0cnVjdCBicGZfcHJvZyAqcHJvZywgdTMyICppZHMsCiAJCQkJc3RydWN0IGJwZl90cmFjaW5nX211bHRpX2xpbmsgKmxpbmspOwogaW50IGJwZl90cmFtcG9saW5lX211bHRpX2RldGFjaChzdHJ1Y3QgYnBmX3Byb2cgKnByb2csCiAJCQkJc3RydWN0IGJwZl90cmFjaW5nX211bHRpX2xpbmsgKmxpbmspOwomIzQzO3ZvaWQgYnBmX3RyYW1wb2xpbmVfc2V0X2ZsYWdzKHN0cnVjdCBicGZfdHJhbXBvbGluZSAqdHIsIHUzMiBmbGFncyk7CiAKIC8qCiAgKiBXaGVuIHRoZSBhcmNoaXRlY3R1cmUgc3VwcG9ydHMgU1RBVElDX0NBTEwgcmVwbGFjZSB0aGUgYnBmX2Rpc3BhdGNoZXJfZm4KQEAgLTE2NDYsNiAmIzQzOzE2NDcsNyBAQCBzdGF0aWMgaW5saW5lIGludCBicGZfdHJhbXBvbGluZV9tdWx0aV9kZXRhY2goc3RydWN0IGJwZl9wcm9nICpwcm9nLAogewogCXJldHVybiAtRU5PVFNVUFA7CiB9CiYjNDM7c3RhdGljIGlubGluZSB2b2lkIGJwZl90cmFtcG9saW5lX3NldF9mbGFncyhzdHJ1Y3QgYnBmX3RyYW1wb2xpbmUgKnRyLCB1MzIgZmxhZ3MpIHt9CiAjZW5kaWYKIAogc3RydWN0IGJwZl9mdW5jX2luZm9fYXV4IHsKZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdHJhbXBvbGluZS5jIGIva2VybmVsL2JwZi90cmFtcG9saW5lLmMKaW5kZXggNmVhZGY2NGY3ZWM5MGYuLjEyOWQwN2RiMTE3ZWM3IDEwMDY0NAotLS0gYS9rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYwomIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYwpAQCAtNjcwLDYgJiM0Mzs2NzAsMTMgQEAgc3RhdGljIHN0cnVjdCBicGZfdHJhbXBfaW1hZ2UgKmJwZl90cmFtcF9pbWFnZV9hbGxvYyh1NjQga2V5LCBpbnQgc2l6ZSkKIAlyZXR1cm4gRVJSX1BUUihlcnIpOwogfQogCiYjNDM7dm9pZCBicGZfdHJhbXBvbGluZV9zZXRfZmxhZ3Moc3RydWN0IGJwZl90cmFtcG9saW5lICp0ciwgdTMyIGZsYWdzKQomIzQzO3sKJiM0MzsJdHJhbXBvbGluZV9sb2NrKHRyKTsKJiM0MzsJdHItJmd0O2ZsYWdzIHw9IGZsYWdzOwomIzQzOwl0cmFtcG9saW5lX3VubG9jayh0cik7CiYjNDM7fQomIzQzOwogc3RhdGljIGludCBicGZfdHJhbXBvbGluZV91cGRhdGUoc3RydWN0IGJwZl90cmFtcG9saW5lICp0ciwgYm9vbCBsb2NrX2RpcmVjdF9tdXRleCwKIAkJCQkgY29uc3Qgc3RydWN0IGJwZl90cmFtcG9saW5lX29wcyAqb3BzLCB2b2lkICpkYXRhKQogewpkaWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92ZXJpZmllci5jCmluZGV4IDUyYmUwYTExOGNjZTA3Li42NmQ4ZDllYWVjMDVmOSAxMDA2NDQKLS0tIGEva2VybmVsL2JwZi92ZXJpZmllci5jCiYjNDM7JiM0MzsmIzQzOyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuYwpAQCAtMTk1MjMsNyAmIzQzOzE5NTIzLDcgQEAgc3RhdGljIGludCBjaGVja19hdHRhY2hfYnRmX2lkKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYpCiAJCXJldHVybiAtRU5PTUVNOwogCiAJaWYgKHRndF9wcm9nICZhbXA7JmFtcDsgdGd0X3Byb2ctJmd0O2F1eC0mZ3Q7dGFpbF9jYWxsX3JlYWNoYWJsZSkKLQkJdHItJmd0O2ZsYWdzID0gQlBGX1RSQU1QX0ZfVEFJTF9DQUxMX0NUWDsKJiM0MzsJCWJwZl90cmFtcG9saW5lX3NldF9mbGFncyh0ciwgQlBGX1RSQU1QX0ZfVEFJTF9DQUxMX0NUWCk7CiAKIAlwcm9nLSZndDthdXgtJmd0O2RzdF90cmFtcG9saW5lID0gdHI7CiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90YWlsY2FsbHMuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RhaWxjYWxscy5jCmluZGV4IGM2NjAzNzE2MmRhNWFlLi44NmQ4N2Q1ODE3Y2Y3MSAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdGFpbGNhbGxzLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdGFpbGNhbGxzLmMKQEAgLTEzLDYgJiM0MzsxMyw4IEBACiAjaW5jbHVkZSAmIzM0O3RhaWxjYWxsX2NncnBfc3RvcmFnZS5za2VsLmgmIzM0OwogI2luY2x1ZGUgJiMzNDt0YWlsY2FsbF9zbGVlcGFibGUuc2tlbC5oJiMzNDsKICNpbmNsdWRlICYjMzQ7dGFpbGNhbGxfY2FsbGJhY2suc2tlbC5oJiMzNDsKJiM0MzsjaW5jbHVkZSAmIzM0O3RhaWxjYWxsX2JwZjJicGYyLnNrZWwuaCYjMzQ7CiYjNDM7I2luY2x1ZGUgJiMzNDt0YWlsY2FsbF9icGYyYnBmX2ZleGl0LnNrZWwuaCYjMzQ7CiAKIC8qIHRlc3RfdGFpbGNhbGxfMSBjaGVja3MgYmFzaWMgZnVuY3Rpb25hbGl0eSBieSBwYXRjaGluZyBtdWx0aXBsZSBsb2NhdGlvbnMKICAqIGluIGEgc2luZ2xlIHByb2dyYW0gZm9yIGEgc2luZ2xlIHRhaWwgY2FsbCBzbG90IHdpdGggbm9wLSZndDtqbXAsIGptcC0mZ3Q7bm9wCkBAIC0xOTA3LDYgJiM0MzsxOTA5LDUzIEBAIHN0YXRpYyB2b2lkIHRlc3RfdGFpbGNhbGxfY2FsbGJhY2sodm9pZCkKIAlSVU5fVEVTVFModGFpbGNhbGxfY2FsbGJhY2spOwogfQogCiYjNDM7c3RhdGljIHZvaWQgdGVzdF90YWlsY2FsbF9icGYyYnBmX2ZleGl0X2xpbmtzKHZvaWQpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgdGFpbGNhbGxfYnBmMmJwZl9mZXhpdCAqc2tlbDEgPSBOVUxMLCAqc2tlbDIgPSBOVUxMOwomIzQzOwlzdHJ1Y3QgdGFpbGNhbGxfYnBmMmJwZjIgKnNrZWxfdGM7CiYjNDM7CXN0cnVjdCBicGZfbGluayAqbGluazsKJiM0MzsJaW50IGVyciwgcHJvZ19mZDsKJiM0MzsKJiM0MzsJc2tlbF90YyA9IHRhaWxjYWxsX2JwZjJicGYyX19vcGVuX2FuZF9sb2FkKCk7CiYjNDM7CWlmICghQVNTRVJUX09LX1BUUihza2VsX3RjLCAmIzM0O3RhaWxjYWxsX2JwZjJicGYyX19vcGVuX2FuZF9sb2FkJiMzNDspKQomIzQzOwkJcmV0dXJuOwomIzQzOwomIzQzOwlza2VsMSA9IHRhaWxjYWxsX2JwZjJicGZfZmV4aXRfX29wZW4oKTsKJiM0MzsJaWYgKCFBU1NFUlRfT0tfUFRSKHNrZWwxLCAmIzM0O3RhaWxjYWxsX2JwZjJicGZfZmV4aXRfX29wZW4mIzM0OykpCiYjNDM7CQlnb3RvIG91dDsKJiM0MzsKJiM0MzsJcHJvZ19mZCA9IGJwZl9wcm9ncmFtX19mZChza2VsX3RjLSZndDtwcm9ncy5jbGFzc2lmaWVyXzApOwomIzQzOwllcnIgPSBicGZfcHJvZ3JhbV9fc2V0X2F0dGFjaF90YXJnZXQoc2tlbDEtJmd0O3Byb2dzLmZleGl0LCBwcm9nX2ZkLCAmIzM0O3N1YnByb2dfdGFpbCYjMzQ7KTsKJiM0MzsJaWYgKCFBU1NFUlRfT0soZXJyLCAmIzM0O2JwZl9wcm9ncmFtX19zZXRfYXR0YWNoX3RhcmdldCYjMzQ7KSkKJiM0MzsJCWdvdG8gb3V0OwomIzQzOwomIzQzOwllcnIgPSB0YWlsY2FsbF9icGYyYnBmX2ZleGl0X19sb2FkKHNrZWwxKTsKJiM0MzsJaWYgKCFBU1NFUlRfT0soZXJyLCAmIzM0O3RhaWxjYWxsX2JwZjJicGZfZmV4aXRfX2xvYWQmIzM0OykpCiYjNDM7CQlnb3RvIG91dDsKJiM0MzsKJiM0MzsJbGluayA9IGJwZl9wcm9ncmFtX19hdHRhY2hfdHJhY2Uoc2tlbDEtJmd0O3Byb2dzLmZleGl0KTsKJiM0MzsJaWYgKCFBU1NFUlRfT0tfUFRSKGxpbmssICYjMzQ7YnBmX3Byb2dyYW1fX2F0dGFjaF90cmFjZSYjMzQ7KSkKJiM0MzsJCWdvdG8gb3V0OwomIzQzOwlza2VsMS0mZ3Q7bGlua3MuZmV4aXQgPSBsaW5rOwomIzQzOwomIzQzOwlza2VsMiA9IHRhaWxjYWxsX2JwZjJicGZfZmV4aXRfX29wZW4oKTsKJiM0MzsJaWYgKCFBU1NFUlRfT0tfUFRSKHNrZWwyLCAmIzM0O3RhaWxjYWxsX2JwZjJicGZfZmV4aXRfX29wZW4mIzM0OykpCiYjNDM7CQlnb3RvIG91dDsKJiM0MzsKJiM0MzsJZXJyID0gYnBmX3Byb2dyYW1fX3NldF9hdHRhY2hfdGFyZ2V0KHNrZWwyLSZndDtwcm9ncy5mZXhpdCwgcHJvZ19mZCwgJiMzNDtzdWJwcm9nX3RhaWwmIzM0Oyk7CiYjNDM7CWlmICghQVNTRVJUX09LKGVyciwgJiMzNDticGZfcHJvZ3JhbV9fc2V0X2F0dGFjaF90YXJnZXQmIzM0OykpCiYjNDM7CQlnb3RvIG91dDsKJiM0MzsKJiM0MzsJZXJyID0gdGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9fbG9hZChza2VsMik7CiYjNDM7CWlmICghQVNTRVJUX09LKGVyciwgJiMzNDt0YWlsY2FsbF9icGYyYnBmX2ZleGl0X19sb2FkJiMzNDspKQomIzQzOwkJZ290byBvdXQ7CiYjNDM7CiYjNDM7b3V0OgomIzQzOwl0YWlsY2FsbF9icGYyYnBmX2ZleGl0X19kZXN0cm95KHNrZWwxKTsKJiM0MzsJdGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9fZGVzdHJveShza2VsMik7CiYjNDM7CXRhaWxjYWxsX2JwZjJicGYyX19kZXN0cm95KHNrZWxfdGMpOwomIzQzO30KJiM0MzsKIHZvaWQgdGVzdF90YWlsY2FsbHModm9pZCkKIHsKIAlpZiAodGVzdF9fc3RhcnRfc3VidGVzdCgmIzM0O3RhaWxjYWxsXzEmIzM0OykpCkBAIC0xOTc0LDQgJiM0MzsyMDIzLDYgQEAgdm9pZCB0ZXN0X3RhaWxjYWxscyh2b2lkKQogCWlmICh0ZXN0X19zdGFydF9zdWJ0ZXN0KCYjMzQ7dGFpbGNhbGxfY2dycF9zdG9yYWdlX25vX3N0b3JhZ2VfYnJpZGdlJiMzNDspKQogCQl0ZXN0X3RhaWxjYWxsX2NncnBfc3RvcmFnZV9ub19zdG9yYWdlX2JyaWRnZSgpOwogCXRlc3RfdGFpbGNhbGxfY2FsbGJhY2soKTsKJiM0MzsJaWYgKHRlc3RfX3N0YXJ0X3N1YnRlc3QoJiMzNDt0YWlsY2FsbF9icGYyYnBmX2ZleGl0X2xpbmtzJiMzNDspKQomIzQzOwkJdGVzdF90YWlsY2FsbF9icGYyYnBmX2ZleGl0X2xpbmtzKCk7CiB9CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDA5OjA2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM2NTEKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiA0NDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgQlBGIFRyYW1wb2xpbmUgRmxhZyBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IGNoYW5nZXMgaG93IEJQRiB0cmFtcG9saW5lIGZsYWdzIGFyZSBzZXQuIFNwZWNpZmljYWxseSwgaXQgaW52b2x2ZXMgdGhlIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgIGFuZCBga2VybmVsL2JwZi90cmFtcG9saW5lLmNgIGZpbGVzLiBUaGUgY29yZSBvZiB0aGUgY2hhbmdlIHNlZW1zIHRvIGJlIGluIGhvdyB0aGUgYHRyLSZndDtmbGFnc2AgZmllbGQgaXMgbW9kaWZpZWQuIEluaXRpYWxseSwgaXQgd2FzIGEgZGlyZWN0IGFzc2lnbm1lbnQ6IGB0ci0mZ3Q7ZmxhZ3MgPSBCUEZfVFJBTVBfRl9UQUlMX0NBTExfQ1RYO2AuIE5vdywgdGhleSYjMzk7dmUgaW1wbGVtZW50ZWQgYSBmdW5jdGlvbiBgYnBmX3RyYW1wb2xpbmVfc2V0X2ZsYWdzYCwgd2hpY2ggdXNlcyBhIGxvY2sgYW5kIGEgYml0d2lzZSBPUiBvcGVyYXRpb246IGB0ci0mZ3Q7ZmxhZ3MgfD0gZmxhZ3M7YC4gVGhpcyBpcyBhIHByZXR0eSBjbGVhciBpbmRpY2F0aW9uIG9mIGFkZHJlc3NpbmcgYSBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb24gb3IgYSBzaW1wbGUgbG9naWNhbCBlcnJvciBpbiBob3cgdGhlIGZsYWdzIHdlcmUgYmVpbmcgc2V0LiBUaGUgb2xkIGNvZGUgd2FzIGVmZmVjdGl2ZWx5IG92ZXJ3cml0aW5nIGV4aXN0aW5nIGZsYWdzLCB3aGVyZWFzIHRoaXMgbmV3IGFwcHJvYWNoLCBieSB1c2luZyBhIGxvY2sgYW5kIGFuIE9SIG9wZXJhdGlvbiwgaXMgc2FmZXIgYmVjYXVzZSBpdCBwcm9wZXJseSBzZXRzIHRoZSBzcGVjaWZpZWQgZmxhZyB3aGlsZSBwcmVzZXJ2aW5nIG90aGVyIHBvdGVudGlhbGx5IHNldCBmbGFncy4KCkkgY2FuIGltbWVkaWF0ZWx5IHNlZSB0aGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UuIE15IGZpcnN0IHRob3VnaHQgaXMgdG8gdmVyaWZ5IHRoZSBjaGFuZ2UsIHdoaWNoIEkgY2FuIGRvIHdpdGhvdXQgbG9va2luZyBhdCB0aGUgd2hvbGUgYGdyZXBwZXJgIG91dHB1dC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzIGNoYW5nZSBhbmQgY29uc2lkZXIgZnV6emluZy4gR2l2ZW4gdGhhdCB0aGlzIHBhdGNoIHRvdWNoZXMgY29yZSBCUEYgbG9naWMsIGl0JiMzOTtzIGRlZmluaXRlbHkgd29ydGggZXhwbG9yaW5nIGZ1enppbmcgdGhpcyBhcmVhLgoKTm93LCBsZXQmIzM5O3Mgc2VlIHdoaWNoIGNvbmZpZ3MgZW5hYmxlIHRoaXMgZmVhdHVyZS4gYENPTkZJR19CUEZfU1lTQ0FMTGAgaXMgYSBnaXZlbiwgdGhhdCYjMzk7cyBhbG1vc3QgYWx3YXlzIGEgcHJlcmVxdWlzaXRlIGZvciBCUEYtcmVsYXRlZCBmdW5jdGlvbmFsaXR5LiBJJiMzOTtsbCBuZWVkIHRvIGRvdWJsZSBjaGVjayBmb3IgYW55IG90aGVyIHJlbGV2YW50IGNvbmZpZyBvcHRpb25zLiBUbyBiZSB0aG9yb3VnaCwgSSYjMzk7bGwgc2VhcmNoIGZvciBgY2hlY2tfYXR0YWNoX2J0Zl9pZGAgaW4gYGtlcm5lbC9icGYvdmVyaWZpZXIuY2AgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgcmVsYXRlZCBjaGFuZ2VzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDA5OjA3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NoZWNrX2F0dGFjaF9idGZfaWQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtrZXJuZWwvYnBmL3ZlcmlmaWVyLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7a2VybmVsL2JwZi92ZXJpZmllci5jPTE5NDA1PXN0YXRpYyBib29sIGNhbl9iZV9zbGVlcGFibGUoc3RydWN0IGJwZl9wcm9nICpwcm9nKVxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xOTQzMS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxOTQzMjpzdGF0aWMgaW50IGNoZWNrX2F0dGFjaF9idGZfaWQoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xOTQzMy17XG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTE5NTMxLVxua2VybmVsL2JwZi92ZXJpZmllci5jOjE5NTMyOmludCBicGZfY2hlY2tfYXR0YWNoX2J0Zl9pZF9tdWx0aShzdHJ1Y3QgYnRmICpidGYsIHN0cnVjdCBicGZfcHJvZyAqcHJvZywgdTMyIGJ0Zl9pZCxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xOTUzMy1cdFx0XHRcdCAgc3RydWN0IGJwZl9hdHRhY2hfdGFyZ2V0X2luZm8gKnRndF9pbmZvKVxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0yMDA1Nz1pbnQgYnBmX2NoZWNrKHN0cnVjdCBicGZfcHJvZyAqKnByb2csIHVuaW9uIGJwZl9hdHRyICphdHRyLCBicGZwdHJfdCB1YXR0cixcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMjAyMDItXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MjAyMDM6XHRyZXQgPSBjaGVja19hdHRhY2hfYnRmX2lkKGVudik7XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMjAyMDQtXHRpZiAocmV0KVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDA5OjA3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ4NDMKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAyMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoZSBga2VybmVsL2JwZi90cmFtcG9saW5lLmNgIGNvbmZpZ3VyYXRpb246CgoqKkFuYWx5emluZyBLZXJuZWwgQlBGIFRyYW1wb2xpbmUgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGRpdmluZyBpbnRvIGBrZXJuZWwvYnBmL3RyYW1wb2xpbmUuY2AuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O1doYXQga2luZCBvZiBjb25maWd1cmF0aW9uIGlzICphYnNvbHV0ZWx5KiBuZWVkZWQgdG8gbWFrZSB0aGlzIHRoaW5nIHdvcms/JiMzNDsgS25vd2luZyB0aGUgQlBGIGxhbmRzY2FwZSwgSSBuZWVkIHRvIGNvbnNpZGVyIHZhcmlvdXMgbGV2ZWxzIG9mIGRlcGVuZGVuY2llcy4gSSBuZWVkIHRvIHRoaW5rIGFib3V0IHRoZSBjb3JlIEJQRiBpbmZyYXN0cnVjdHVyZSBpdHNlbGYg4oCTIHRoZSBvYnZpb3VzIHN0dWZmIGxpa2Ugd2hldGhlciBCUEYgaXMgZXZlbiBlbmFibGVkIChgQ09ORklHX0JQRmApLCBhbmQgcG90ZW50aWFsbHkgbW9yZSBncmFudWxhciBmZWF0dXJlIGZsYWdzIGlmIHRoaXMgdHJhbXBvbGluZSBpbXBsZW1lbnRhdGlvbiB1c2VzIHNwZWNpZmljIEJQRiBoZWxwZXIgY2FsbHMgb3IgZmVhdHVyZXMsIHdoaWNoIEkmIzM5O2xsIGhhdmUgdG8gaW52ZXN0aWdhdGUuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIGJ1aWxkIG9wdGlvbnMuIFRoZW4sIEkgbmVlZCB0byBzdGFydCBkaWdnaW5nIHRocm91Z2ggdGhlIGNvZGUsIGxvb2tpbmcgZm9yIGAjaWZkZWZgIHN0YXRlbWVudHMgYW5kIG90aGVyIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGRpcmVjdGl2ZXMuIEFyZSB0aGVyZSBhbnkgaGFyZHdhcmUtc3BlY2lmaWMgZGVwZW5kZW5jaWVzLCBwZXJoYXBzIHJlbGF0ZWQgdG8gdGhlIGFyY2hpdGVjdHVyZSYjMzk7cyBhYmlsaXR5IHRvIHN1cHBvcnQgY2VydGFpbiBmZWF0dXJlcyBuZWVkZWQgZm9yIGVmZmljaWVudCB0cmFtcG9saW5lIG9wZXJhdGlvbiAobGlrZSBpbnN0cnVtZW50YXRpb24gY2FwYWJpbGl0aWVzKT8gT3IgYXJlIHRoZXJlIGFueSBzZWN1cml0eS1yZWxhdGVkIHNldHRpbmdzIHRoYXQgbWlnaHQgYmUgY3J1Y2lhbCwgbGlrZSB0aGUgdXNlIG9mIGEgbW9yZSBzZWN1cmUgQlBGIHZlcmlmaWVyIG1vZGU/IEkmIzM5O2xsIHByb2JhYmx5IGFsc28gbmVlZCB0byBjb25zaWRlciBhbnkgZGVwZW5kZW5jaWVzIG9uIHNwZWNpZmljIGtlcm5lbCB2ZXJzaW9ucyBvciBmZWF0dXJlcywgZXNwZWNpYWxseSBpZiB0aGUgdHJhbXBvbGluZSBpbXBsZW1lbnRhdGlvbiByZWxpZXMgb24gbmV3ZXIgQVBJcyBvciBkYXRhIHN0cnVjdHVyZXMuIEkmIzM5O2xsIGhhdmUgdG8gcGF5IGNsb3NlIGF0dGVudGlvbiB0byB0aGUgaW5jbHVkZSBmaWxlcyB0byBzZWUgaWYgYW55IGFyZSBjb25kaXRpb25hbGx5IGluY2x1ZGVkLiBUaGUga2V5IGlzIHRvIG1hcCBhbnkgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gc3RhdGVtZW50cyB0byB0aGUgcmVxdWlyZWQgY29uZmlnIG9wdGlvbnMuIE15IGdvYWwgaXMgYSBjb21wbGV0ZSBsaXN0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDA5OjA3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JwZl90cmFtcG9saW5lX3NldF9mbGFncyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2tlcm5lbC9icGYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2tlcm5lbC9icGYvdHJhbXBvbGluZS5jPTYzMT1zdGF0aWMgc3RydWN0IGJwZl90cmFtcF9pbWFnZSAqYnBmX3RyYW1wX2ltYWdlX2FsbG9jKHU2NCBrZXksIGludCBzaXplKVxuLS1cbmtlcm5lbC9icGYvdHJhbXBvbGluZS5jLTY3Mi1cbmtlcm5lbC9icGYvdHJhbXBvbGluZS5jOjY3Mzp2b2lkIGJwZl90cmFtcG9saW5lX3NldF9mbGFncyhzdHJ1Y3QgYnBmX3RyYW1wb2xpbmUgKnRyLCB1MzIgZmxhZ3MpXG5rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYy02NzQte1xuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xOTQzMj1zdGF0aWMgaW50IGNoZWNrX2F0dGFjaF9idGZfaWQoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTk1MjUtXHRpZiAodGd0X3Byb2cgXHUwMDI2XHUwMDI2IHRndF9wcm9nLVx1MDAzZWF1eC1cdTAwM2V0YWlsX2NhbGxfcmVhY2hhYmxlKVxua2VybmVsL2JwZi92ZXJpZmllci5jOjE5NTI2Olx0XHRicGZfdHJhbXBvbGluZV9zZXRfZmxhZ3ModHIsIEJQRl9UUkFNUF9GX1RBSUxfQ0FMTF9DVFgpO1xua2VybmVsL2JwZi92ZXJpZmllci5jLTE5NTI3LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDA5OjA3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU0NzEKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiA0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBzdW1tYXJ5LCBhcyB0aGUgdGhvdWdodCBwcm9jZXNzIHVuZm9sZHM6CgoqKkNoZWNraW5nIEJQRiBUcmFtcG9saW5lIENvbXBpbGF0aW9uKioKCk9rYXksIHNvIGBrZXJuZWwvYnBmL3RyYW1wb2xpbmUuY2AgaXMgZGVmaW5pdGVseSBiZWluZyBjb21waWxlZCAqY29uZGl0aW9uYWxseSogYmFzZWQgb24gdGhlIGBDT05GSUdfQlBGX1NZU0NBTExgIEtjb25maWcgb3B0aW9uLiBCdXQsIHRoYXQmIzM5O3Mgbm90IHF1aXRlIGVub3VnaDsgSSB3YW50IHRvIGJlICpjZXJ0YWluKiBhYm91dCB0aGUgYnVpbGQgcHJvY2Vzcy4gSSBuZWVkIHRvIGNvbmZpcm0gdGhhdCB0aGlzIGlzIGJlaW5nIGhhbmRsZWQgY29ycmVjdGx5IGluIHRoZSBgTWFrZWZpbGVgLiBTcGVjaWZpY2FsbHksIEkmIzM5O2xsIGRyaWxsIGRvd24gYW5kIGNoZWNrIHRoZSBga2VybmVsL2JwZi9NYWtlZmlsZWAgZmlsZSB0byBzZWUgaG93IGl0JiMzOTtzIGRlYWxpbmcgd2l0aCB0aGF0IGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uLiBHb3R0YSBtYWtlIHN1cmUgdGhlcmUgYXJlbiYjMzk7dCBhbnkgc25lYWt5IGludGVyYWN0aW9ucyBvciB1bmludGVuZGVkIHNpZGUgZWZmZWN0cyB0aGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwOTowNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt0cmFtcG9saW5lLm8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtrZXJuZWwvYnBmL01ha2VmaWxlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2tlcm5lbC9icGYvTWFrZWZpbGU9MTY9b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0gZGlzYXNtLm8gbXByb2cub1xua2VybmVsL2JwZi9NYWtlZmlsZToxNzpvYmotJChDT05GSUdfQlBGX0pJVCkgJiM0Mzs9IHRyYW1wb2xpbmUub1xua2VybmVsL2JwZi9NYWtlZmlsZS0xOC1vYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBidGYubyBtZW1hbGxvYy5vIHJxc3BpbmxvY2subyBzdHJlYW0ub1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDA5OjA3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU3OTUKCQkJCQkJCW91dHB1dDogMjkKCQkJCQkJCXRob3VnaHRzOiA0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKktlcm5lbCBDb25maWd1cmF0aW9uIERlcGVuZGVuY2llcyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlIGJ1aWxkIHByb2Nlc3MgYW5kIGl0JiMzOTtzIGltbWVkaWF0ZWx5IGNsZWFyIHRoYXQgYHRyYW1wb2xpbmUub2AgbmVlZHMgYENPTkZJR19CUEZfSklUYC4gVGhhdCBtYWtlcyBwZXJmZWN0IHNlbnNlOyB0aGUgdHJhbXBvbGluZSBjb2RlIGxpa2VseSByZWxpZXMgb24gdGhlIEpJVCBjb21waWxlciBmb3IgQlBGIHRvIGZ1bmN0aW9uIGVmZmljaWVudGx5LCBwcm9iYWJseSBmb3Igb24tdGhlLWZseSBjb2RlIGdlbmVyYXRpb24uCgpUaGVuLCB0aGVyZSYjMzk7cyBgdmVyaWZpZXIub2AuIFRoZSBkZXBlbmRlbmN5IG9uIGBDT05GSUdfQlBGX1NZU0NBTExgIGZvciB0aGF0IGlzIGFsc28gaW50dWl0aXZlLiBUaGUgdmVyaWZpZXIsIG9idmlvdXNseSwgbmVlZHMgZGlyZWN0IGFjY2VzcyB0byB0aGUgQlBGIHN5c3RlbSBjYWxscyB0byBhbmFseXplIGFuZCBpbnRlcmFjdCB3aXRoIHRoZSBCUEYgcHJvZ3JhbXMgdGhhdCBpdCBpcyB0YXNrZWQgd2l0aCBldmFsdWF0aW5nLiBXaXRob3V0IHRob3NlIHN5c3RlbSBjYWxscyBhdmFpbGFibGUsIHRoZSB2ZXJpZmljYXRpb24gcHJvY2VzcyBjYW4mIzM5O3QgZXhlY3V0ZSwgYW5kIHRoZSBzeXN0ZW0gaXMgbGlrZWx5IHByZXZlbnRpbmcgdGhlIGZlYXR1cmUgZnJvbSBiZWluZyB1c2VkLiBJIHdpbGwgaW52ZXN0aWdhdGUgdGhvc2UgZGVwZW5kZW5jaWVzIGZ1cnRoZXIsIHRvIGV4cGxvcmUgaWYgdGhlcmUgYXJlIGFueSBvdGhlciBjb25maWd1cmF0aW9uIGlzc3Vlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMDk6MDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dmVyaWZpZXIubyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2tlcm5lbC9icGYvTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7a2VybmVsL2JwZi9NYWtlZmlsZT03PUNGTEFHU19jb3JlLm8gJiM0Mzs9IC1Xbm8tb3ZlcnJpZGUtaW5pdCAkKGNmbGFncy1ub2djc2UteXkpXG5rZXJuZWwvYnBmL01ha2VmaWxlLTgtXG5rZXJuZWwvYnBmL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0gc3lzY2FsbC5vIHZlcmlmaWVyLm8gaW5vZGUubyBoZWxwZXJzLm8gdG51bS5vIGNudW0ubyBsb2cubyB0b2tlbi5vIGxpdmVuZXNzLm8gY29uc3RfZm9sZC5vXG5rZXJuZWwvYnBmL01ha2VmaWxlLTEwLW9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGJwZl9pdGVyLm8gbWFwX2l0ZXIubyB0YXNrX2l0ZXIubyBwcm9nX2l0ZXIubyBsaW5rX2l0ZXIub1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwOTowNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2MjIyCgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMTIxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGJyZWFrZG93biBvZiB3aGF0IHdlJiMzOTtyZSBsb29raW5nIGF0LCBmcm9tIG15IHBlcnNwZWN0aXZlLgoKKipGb2N1c2luZyBGdXp6aW5nIEVmZm9ydHMqKgoKQWxyaWdodCwgc28gd2UmIzM5O3JlIGRpdmluZyBpbnRvIGZ1enppbmcgQlBGIGNvZGUsIGFuZCBpdCBsb29rcyBsaWtlIHdlIG5lZWQgdG8gemVybyBpbiBvbiBzcGVjaWZpYyBhcmVhcy4gVGhlIGNvcmUgaWRlYSBpcyB0byB0YXJnZXQgdGhlIHJpZ2h0IGZ1bmN0aW9ucy4gTXkgZ3V0IHRlbGxzIG1lIHdlIG5lZWQgdG8gYmUgdmVyeSBjb25zY2lvdXMgb2YgYEJQRl9TWVNDQUxMYCBhbmQgYEJQRl9KSVRgLiBUaGV5JiMzOTtyZSBwcm9iYWJseSB3aGVyZSB0aGUgbW9zdCBpbnRlcmVzdGluZyBidWdzIHJlc2lkZSwgYW5kIHdoZXJlIHdlJiMzOTtsbCBmaW5kIHRoZSBtb3N0IGltcGFjdGZ1bCB2dWxuZXJhYmlsaXRpZXMuCgpUaGUgaW5pdGlhbCBmdW5jdGlvbiBsaXN0IHRvIGV4cGxvcmUgaW5jbHVkZXMgYGJwZl90cmFtcG9saW5lX3NldF9mbGFnc2AsIHdoaWNoIGxvb2tzIHByb21pc2luZy4gVGhlbiB0aGVyZSYjMzk7cyBgY2hlY2tfYXR0YWNoX2J0Zl9pZGAsIHdoaWNoIGNhdGNoZXMgbXkgZXllIGltbWVkaWF0ZWx5LiBJdCYjMzk7cyByZWxhdGVkIHRvIEJURiAoQlBGIFR5cGUgRm9ybWF0KSBhbmQgYXR0YWNobWVudCBwb2ludHMsIHNvIGl0JiMzOTtzIGxpa2VseSBhIGNyaXRpY2FsIGFyZWEgdG8gcHJvYmUuIEkmIzM5O20gZGlzY2FyZGluZyBgYnBmX2NoZWNrYCBhcyBhIGRpcmVjdCBmdXp6IHRhcmdldDsgaXQmIzM5O3MganVzdCBmYXIgdG9vIGJyb2FkLiBIb3dldmVyLCBJIGFtIGtlZXBpbmcgYW4gZXllIG9uIGBicGZfdHJhbXBvbGluZV91cGRhdGVgLiBJdCByZWxhdGVzIHRvIHRyYW1wb2xpbmVzLCBhbmQgdGhleSBvZnRlbiBpbnRlcmFjdCB3aXRoIG90aGVyIEJQRiBmdW5jdGlvbnMsIHNvIGl0JiMzOTtzIGEgdmFsaWQgYXJlYSB0byBjb25zaWRlci4KCk5vdywgbGV0JiMzOTtzIHRha2UgYSBjbG9zZXIgbG9vayBhdCBgY2hlY2tfYXR0YWNoX2J0Zl9pZGAuIEl0IHNlZW1zIHRvIGJlIGNhbGxlZCBmcm9tIGBicGZfY2hlY2tgLiBUaGlzIGlzIGludGVyZXN0aW5nOyB3ZSBtaWdodCBiZSBhYmxlIHRvIGZpbmQgbW9yZSBzdWJ0bGUgYnVncyBieSBmb2N1c2luZyBvbiB0aGUgaW50ZXJhY3Rpb25zIHdpdGhpbiB0aGlzIHJlbGF0aW9uc2hpcC4gVWx0aW1hdGVseSwgdGhlIHF1ZXN0aW9uIGlzLCAqd2hlcmUgY2FuIHdlIGFjaGlldmUgdGhlIGJlc3QgaW1wYWN0IHdpdGggb3VyIGZ1enplciBpbiB0aGUgc2hvcnRlc3QgYW1vdW50IG9mIHRpbWU/KgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwOTowNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjaGVja19hdHRhY2hfYnRmX2lkJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7a2VybmVsL2JwZi92ZXJpZmllci5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2tlcm5lbC9icGYvdmVyaWZpZXIuYz0xOTQwNT1zdGF0aWMgYm9vbCBjYW5fYmVfc2xlZXBhYmxlKHN0cnVjdCBicGZfcHJvZyAqcHJvZylcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTk0MzEtXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTk0MzI6c3RhdGljIGludCBjaGVja19hdHRhY2hfYnRmX2lkKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYpXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTk0MzMte1xuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xOTUzMS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxOTUzMjppbnQgYnBmX2NoZWNrX2F0dGFjaF9idGZfaWRfbXVsdGkoc3RydWN0IGJ0ZiAqYnRmLCBzdHJ1Y3QgYnBmX3Byb2cgKnByb2csIHUzMiBidGZfaWQsXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTk1MzMtXHRcdFx0XHQgIHN0cnVjdCBicGZfYXR0YWNoX3RhcmdldF9pbmZvICp0Z3RfaW5mbylcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MjAwNTc9aW50IGJwZl9jaGVjayhzdHJ1Y3QgYnBmX3Byb2cgKipwcm9nLCB1bmlvbiBicGZfYXR0ciAqYXR0ciwgYnBmcHRyX3QgdWF0dHIsXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTIwMjAyLVxua2VybmVsL2JwZi92ZXJpZmllci5jOjIwMjAzOlx0cmV0ID0gY2hlY2tfYXR0YWNoX2J0Zl9pZChlbnYpO1xua2VybmVsL2JwZi92ZXJpZmllci5jLTIwMjA0LVx0aWYgKHJldClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMDk6MDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzA1MgoJCQkJCQkJb3V0cHV0OiAxMDkKCQkJCQkJCXRob3VnaHRzOiAyNDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb24qKgoKT2theSwgc28gbG9va2luZyBhdCB0aGlzIHBhdGNoLCBgY2hlY2tfYXR0YWNoX2J0Zl9pZGAgYW5kIGBicGZfdHJhbXBvbGluZV9zZXRfZmxhZ3NgIGltbWVkaWF0ZWx5IHN0YW5kIG91dCBhcyBnb29kIGFyZWFzIHRvIHRhcmdldCBmb3IgZnV6emluZy4gVGhleSByZXByZXNlbnQga2V5IGZ1bmN0aW9ucyB3aXRoaW4gdGhlIG1vZGlmaWVkIEJQRiB0cmFtcG9saW5lIGxvZ2ljLgoKTGV0JiMzOTtzIHF1aWNrbHkgY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBvdGhlciByZWxldmFudCBjb25maWd1cmF0aW9ucyBvciBwaWVjZXMgb2YgdGhlIHB1enpsZS4gQWgsIEkgc2VlIGEgdGVzdCB3YXMgYWRkZWQ6IGB0ZXN0X3RhaWxjYWxsX2JwZjJicGZfZmV4aXRfbGlua3NgIGluIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90YWlsY2FsbHMuY2AuIFRoYXQmIzM5O3MgYSBCUEYtc3BlY2lmaWMgdGVzdCwgYW5kIGl0IGdpdmVzIHVzIHNvbWUgY29udGV4dC4KClJpZ2h0LCB0aGUgcGF0Y2ggaXRzZWxmIGlzIG1ha2luZyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gQlBGIHRyYW1wb2xpbmUgbG9naWMsIHNwZWNpZmljYWxseSBhZGRyZXNzaW5nIGFuIGlzc3VlIHdoZXJlIGB0ci0mZ3Q7ZmxhZ3NgIHdhcyBiZWluZyBvdmVyd3JpdHRlbiBpbnN0ZWFkIG9mIGJlaW5nIHVwZGF0ZWQgY29ycmVjdGx5IHdpdGggYW4gT1Igb3BlcmF0aW9uLCBhbmQgdW5kZXIgYSBsb2NrIHRvIHByZXZlbnQgYSByYWNlIGNvbmRpdGlvbi4gVGhpcyBpcyBhIGNyaXRpY2FsIGZpeCBhZmZlY3RpbmcgZnVuZGFtZW50YWwgQlBGIGJlaGF2aW9yLiBSYWNlIGNvbmRpdGlvbnMgYW5kIGluY29ycmVjdCBmbGFnIG1hbmlwdWxhdGlvbiBhcmUgdGhlIGtpbmQgb2YgYnVncyB0aGF0IHdlIHdhbnQgdG8gZXhwb3NlIHRocm91Z2ggZnV6emluZy4KCkxldCYjMzk7cyBnZXQgdGhpcyBvcmdhbml6ZWQgZm9yIGZ1enppbmcuCgpNeSBkZWNpc2lvbiB0byBmdXp6IHRoaXMgaXMgYmFzZWQgb24gdGhpcyByZWFzb25pbmc6IFRoZSBwYXRjaCBmaXhlcyBhIHJhY2UgY29uZGl0aW9uIGFuZCBpbmNvcnJlY3QgZmxhZyBhc3NpZ25tZW50IGluIEJQRiB0cmFtcG9saW5lIGxvZ2ljIGJ5IGludHJvZHVjaW5nIGEgbG9ja2VkIGJpdHdpc2UgT1IgdXBkYXRlIGZvciB0cmFtcG9saW5lIGZsYWdzLiBUaGlzIGlzIGNvcmUgQlBGIGZ1bmN0aW9uYWxpdHkgdGhhdCBzaG91bGQgYmUgZnV6emVkLgpUaGUgcmVzdWx0cyBzaG91bGQgY29udGFpbiB0aGVzZSBkZXRhaWxzOgoKV29ydGhGdXp6aW5nOiBUcnVlCkZvY3VzU3ltYm9sczogWyYjMzQ7YnBmX3RyYW1wb2xpbmVfc2V0X2ZsYWdzJiMzNDssICYjMzQ7Y2hlY2tfYXR0YWNoX2J0Zl9pZCYjMzQ7XQpFbmFibGVDb25maWdzOiBbJiMzNDtCUEZfU1lTQ0FMTCYjMzQ7LCAmIzM0O0JQRl9KSVQmIzM0O10KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMDk6MDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDssCiAgICAmIzM0O0JQRl9KSVQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticGZfdHJhbXBvbGluZV9zZXRfZmxhZ3MmIzM0OywKICAgICYjMzQ7Y2hlY2tfYXR0YWNoX2J0Zl9pZCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHJhY2UgY29uZGl0aW9uIGFuZCBpbmNvcnJlY3QgZmxhZyBhc3NpZ25tZW50IGluIEJQRiB0cmFtcG9saW5lIGxvZ2ljIGJ5IGludHJvZHVjaW5nIGEgbG9ja2VkIGJpdHdpc2UgT1IgdXBkYXRlIGZvciB0cmFtcG9saW5lIGZsYWdzLiBUaGlzIGlzIGNvcmUgQlBGIGZ1bmN0aW9uYWxpdHkgdGhhdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfU1lTQ0FMTCYjMzQ7LAogICAgJiMzNDtCUEZfSklUJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YnBmX3RyYW1wb2xpbmVfc2V0X2ZsYWdzJiMzNDssCiAgICAmIzM0O2NoZWNrX2F0dGFjaF9idGZfaWQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSByYWNlIGNvbmRpdGlvbiBhbmQgaW5jb3JyZWN0IGZsYWcgYXNzaWdubWVudCBpbiBCUEYgdHJhbXBvbGluZSBsb2dpYyBieSBpbnRyb2R1Y2luZyBhIGxvY2tlZCBiaXR3aXNlIE9SIHVwZGF0ZSBmb3IgdHJhbXBvbGluZSBmbGFncy4gVGhpcyBpcyBjb3JlIEJQRiBmdW5jdGlvbmFsaXR5IHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDA5OjA2OjU3LjY4MTg3NTE4MVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYyODk2Mzg1MjYyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9TWVNDQUxMXCIsXG4gICAgXCJCUEZfSklUXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnBmX3RyYW1wb2xpbmVfc2V0X2ZsYWdzXCIsXG4gICAgXCJjaGVja19hdHRhY2hfYnRmX2lkXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSByYWNlIGNvbmRpdGlvbiBhbmQgaW5jb3JyZWN0IGZsYWcgYXNzaWdubWVudCBpbiBCUEYgdHJhbXBvbGluZSBsb2dpYyBieSBpbnRyb2R1Y2luZyBhIGxvY2tlZCBiaXR3aXNlIE9SIHVwZGF0ZSBmb3IgdHJhbXBvbGluZSBmbGFncy4gVGhpcyBpcyBjb3JlIEJQRiBmdW5jdGlvbmFsaXR5IHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDk6MDY6NTcuNjgxODgyNTMxWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MTUwNzU3NjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA5YWVjODBiNzY2NjNjNWQ3MDY0NTA3OWZiMzA5ZDA0OGEyMmU3MzQ3XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgSnVsIDIyIDA5OjA2OjU1IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvYnBmLmggYi9pbmNsdWRlL2xpbnV4L2JwZi5oXFxuaW5kZXggZDk1NDIxMjdkZmRmYzAuLmZjODRmMzk5NjdhZTBlIDEwMDY0NFxcbi0tLSBhL2luY2x1ZGUvbGludXgvYnBmLmhcXG4rKysgYi9pbmNsdWRlL2xpbnV4L2JwZi5oXFxuQEAgLTE1MjMsNiArMTUyMyw3IEBAIGludCBicGZfdHJhbXBvbGluZV9tdWx0aV9hdHRhY2goc3RydWN0IGJwZl9wcm9nICpwcm9nLCB1MzIgKmlkcyxcXG4gXFx0XFx0XFx0XFx0c3RydWN0IGJwZl90cmFjaW5nX211bHRpX2xpbmsgKmxpbmspO1xcbiBpbnQgYnBmX3RyYW1wb2xpbmVfbXVsdGlfZGV0YWNoKHN0cnVjdCBicGZfcHJvZyAqcHJvZyxcXG4gXFx0XFx0XFx0XFx0c3RydWN0IGJwZl90cmFjaW5nX211bHRpX2xpbmsgKmxpbmspO1xcbit2b2lkIGJwZl90cmFtcG9saW5lX3NldF9mbGFncyhzdHJ1Y3QgYnBmX3RyYW1wb2xpbmUgKnRyLCB1MzIgZmxhZ3MpO1xcbiBcXG4gLypcXG4gICogV2hlbiB0aGUgYXJjaGl0ZWN0dXJlIHN1cHBvcnRzIFNUQVRJQ19DQUxMIHJlcGxhY2UgdGhlIGJwZl9kaXNwYXRjaGVyX2ZuXFxuQEAgLTE2NDYsNiArMTY0Nyw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IGJwZl90cmFtcG9saW5lX211bHRpX2RldGFjaChzdHJ1Y3QgYnBmX3Byb2cgKnByb2csXFxuIHtcXG4gXFx0cmV0dXJuIC1FTk9UU1VQUDtcXG4gfVxcbitzdGF0aWMgaW5saW5lIHZvaWQgYnBmX3RyYW1wb2xpbmVfc2V0X2ZsYWdzKHN0cnVjdCBicGZfdHJhbXBvbGluZSAqdHIsIHUzMiBmbGFncykge31cXG4gI2VuZGlmXFxuIFxcbiBzdHJ1Y3QgYnBmX2Z1bmNfaW5mb19hdXgge1xcbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYyBiL2tlcm5lbC9icGYvdHJhbXBvbGluZS5jXFxuaW5kZXggNmVhZGY2NGY3ZWM5MGYuLjEyOWQwN2RiMTE3ZWM3IDEwMDY0NFxcbi0tLSBhL2tlcm5lbC9icGYvdHJhbXBvbGluZS5jXFxuKysrIGIva2VybmVsL2JwZi90cmFtcG9saW5lLmNcXG5AQCAtNjcwLDYgKzY3MCwxMyBAQCBzdGF0aWMgc3RydWN0IGJwZl90cmFtcF9pbWFnZSAqYnBmX3RyYW1wX2ltYWdlX2FsbG9jKHU2NCBrZXksIGludCBzaXplKVxcbiBcXHRyZXR1cm4gRVJSX1BUUihlcnIpO1xcbiB9XFxuIFxcbit2b2lkIGJwZl90cmFtcG9saW5lX3NldF9mbGFncyhzdHJ1Y3QgYnBmX3RyYW1wb2xpbmUgKnRyLCB1MzIgZmxhZ3MpXFxuK3tcXG4rXFx0dHJhbXBvbGluZV9sb2NrKHRyKTtcXG4rXFx0dHItXFx1MDAzZWZsYWdzIHw9IGZsYWdzO1xcbitcXHR0cmFtcG9saW5lX3VubG9jayh0cik7XFxuK31cXG4rXFxuIHN0YXRpYyBpbnQgYnBmX3RyYW1wb2xpbmVfdXBkYXRlKHN0cnVjdCBicGZfdHJhbXBvbGluZSAqdHIsIGJvb2wgbG9ja19kaXJlY3RfbXV0ZXgsXFxuIFxcdFxcdFxcdFxcdCBjb25zdCBzdHJ1Y3QgYnBmX3RyYW1wb2xpbmVfb3BzICpvcHMsIHZvaWQgKmRhdGEpXFxuIHtcXG5kaWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92ZXJpZmllci5jXFxuaW5kZXggNTJiZTBhMTE4Y2NlMDcuLjY2ZDhkOWVhZWMwNWY5IDEwMDY0NFxcbi0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xcbisrKyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xcbkBAIC0xOTUyMyw3ICsxOTUyMyw3IEBAIHN0YXRpYyBpbnQgY2hlY2tfYXR0YWNoX2J0Zl9pZChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52KVxcbiBcXHRcXHRyZXR1cm4gLUVOT01FTTtcXG4gXFxuIFxcdGlmICh0Z3RfcHJvZyBcXHUwMDI2XFx1MDAyNiB0Z3RfcHJvZy1cXHUwMDNlYXV4LVxcdTAwM2V0YWlsX2NhbGxfcmVhY2hhYmxlKVxcbi1cXHRcXHR0ci1cXHUwMDNlZmxhZ3MgPSBCUEZfVFJBTVBfRl9UQUlMX0NBTExfQ1RYO1xcbitcXHRcXHRicGZfdHJhbXBvbGluZV9zZXRfZmxhZ3ModHIsIEJQRl9UUkFNUF9GX1RBSUxfQ0FMTF9DVFgpO1xcbiBcXG4gXFx0cHJvZy1cXHUwMDNlYXV4LVxcdTAwM2Vkc3RfdHJhbXBvbGluZSA9IHRyO1xcbiBcXHRyZXR1cm4gMDtcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdGFpbGNhbGxzLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90YWlsY2FsbHMuY1xcbmluZGV4IGM2NjAzNzE2MmRhNWFlLi44NmQ4N2Q1ODE3Y2Y3MSAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90YWlsY2FsbHMuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RhaWxjYWxscy5jXFxuQEAgLTEzLDYgKzEzLDggQEBcXG4gI2luY2x1ZGUgXFxcInRhaWxjYWxsX2NncnBfc3RvcmFnZS5za2VsLmhcXFwiXFxuICNpbmNsdWRlIFxcXCJ0YWlsY2FsbF9zbGVlcGFibGUuc2tlbC5oXFxcIlxcbiAjaW5jbHVkZSBcXFwidGFpbGNhbGxfY2FsbGJhY2suc2tlbC5oXFxcIlxcbisjaW5jbHVkZSBcXFwidGFpbGNhbGxfYnBmMmJwZjIuc2tlbC5oXFxcIlxcbisjaW5jbHVkZSBcXFwidGFpbGNhbGxfYnBmMmJwZl9mZXhpdC5za2VsLmhcXFwiXFxuIFxcbiAvKiB0ZXN0X3RhaWxjYWxsXzEgY2hlY2tzIGJhc2ljIGZ1bmN0aW9uYWxpdHkgYnkgcGF0Y2hpbmcgbXVsdGlwbGUgbG9jYXRpb25zXFxuICAqIGluIGEgc2luZ2xlIHByb2dyYW0gZm9yIGEgc2luZ2xlIHRhaWwgY2FsbCBzbG90IHdpdGggbm9wLVxcdTAwM2VqbXAsIGptcC1cXHUwMDNlbm9wXFxuQEAgLTE5MDcsNiArMTkwOSw1MyBAQCBzdGF0aWMgdm9pZCB0ZXN0X3RhaWxjYWxsX2NhbGxiYWNrKHZvaWQpXFxuIFxcdFJVTl9URVNUUyh0YWlsY2FsbF9jYWxsYmFjayk7XFxuIH1cXG4gXFxuK3N0YXRpYyB2b2lkIHRlc3RfdGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9saW5rcyh2b2lkKVxcbit7XFxuK1xcdHN0cnVjdCB0YWlsY2FsbF9icGYyYnBmX2ZleGl0ICpza2VsMSA9IE5VTEwsICpza2VsMiA9IE5VTEw7XFxuK1xcdHN0cnVjdCB0YWlsY2FsbF9icGYyYnBmMiAqc2tlbF90YztcXG4rXFx0c3RydWN0IGJwZl9saW5rICpsaW5rO1xcbitcXHRpbnQgZXJyLCBwcm9nX2ZkO1xcbitcXG4rXFx0c2tlbF90YyA9IHRhaWxjYWxsX2JwZjJicGYyX19vcGVuX2FuZF9sb2FkKCk7XFxuK1xcdGlmICghQVNTRVJUX09LX1BUUihza2VsX3RjLCBcXFwidGFpbGNhbGxfYnBmMmJwZjJfX29wZW5fYW5kX2xvYWRcXFwiKSlcXG4rXFx0XFx0cmV0dXJuO1xcbitcXG4rXFx0c2tlbDEgPSB0YWlsY2FsbF9icGYyYnBmX2ZleGl0X19vcGVuKCk7XFxuK1xcdGlmICghQVNTRVJUX09LX1BUUihza2VsMSwgXFxcInRhaWxjYWxsX2JwZjJicGZfZmV4aXRfX29wZW5cXFwiKSlcXG4rXFx0XFx0Z290byBvdXQ7XFxuK1xcbitcXHRwcm9nX2ZkID0gYnBmX3Byb2dyYW1fX2ZkKHNrZWxfdGMtXFx1MDAzZXByb2dzLmNsYXNzaWZpZXJfMCk7XFxuK1xcdGVyciA9IGJwZl9wcm9ncmFtX19zZXRfYXR0YWNoX3RhcmdldChza2VsMS1cXHUwMDNlcHJvZ3MuZmV4aXQsIHByb2dfZmQsIFxcXCJzdWJwcm9nX3RhaWxcXFwiKTtcXG4rXFx0aWYgKCFBU1NFUlRfT0soZXJyLCBcXFwiYnBmX3Byb2dyYW1fX3NldF9hdHRhY2hfdGFyZ2V0XFxcIikpXFxuK1xcdFxcdGdvdG8gb3V0O1xcbitcXG4rXFx0ZXJyID0gdGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9fbG9hZChza2VsMSk7XFxuK1xcdGlmICghQVNTRVJUX09LKGVyciwgXFxcInRhaWxjYWxsX2JwZjJicGZfZmV4aXRfX2xvYWRcXFwiKSlcXG4rXFx0XFx0Z290byBvdXQ7XFxuK1xcbitcXHRsaW5rID0gYnBmX3Byb2dyYW1fX2F0dGFjaF90cmFjZShza2VsMS1cXHUwMDNlcHJvZ3MuZmV4aXQpO1xcbitcXHRpZiAoIUFTU0VSVF9PS19QVFIobGluaywgXFxcImJwZl9wcm9ncmFtX19hdHRhY2hfdHJhY2VcXFwiKSlcXG4rXFx0XFx0Z290byBvdXQ7XFxuK1xcdHNrZWwxLVxcdTAwM2VsaW5rcy5mZXhpdCA9IGxpbms7XFxuK1xcbitcXHRza2VsMiA9IHRhaWxjYWxsX2JwZjJicGZfZmV4aXRfX29wZW4oKTtcXG4rXFx0aWYgKCFBU1NFUlRfT0tfUFRSKHNrZWwyLCBcXFwidGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9fb3BlblxcXCIpKVxcbitcXHRcXHRnb3RvIG91dDtcXG4rXFxuK1xcdGVyciA9IGJwZl9wcm9ncmFtX19zZXRfYXR0YWNoX3RhcmdldChza2VsMi1cXHUwMDNlcHJvZ3MuZmV4aXQsIHByb2dfZmQsIFxcXCJzdWJwcm9nX3RhaWxcXFwiKTtcXG4rXFx0aWYgKCFBU1NFUlRfT0soZXJyLCBcXFwiYnBmX3Byb2dyYW1fX3NldF9hdHRhY2hfdGFyZ2V0XFxcIikpXFxuK1xcdFxcdGdvdG8gb3V0O1xcbitcXG4rXFx0ZXJyID0gdGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9fbG9hZChza2VsMik7XFxuK1xcdGlmICghQVNTRVJUX09LKGVyciwgXFxcInRhaWxjYWxsX2JwZjJicGZfZmV4aXRfX2xvYWRcXFwiKSlcXG4rXFx0XFx0Z290byBvdXQ7XFxuK1xcbitvdXQ6XFxuK1xcdHRhaWxjYWxsX2JwZjJicGZfZmV4aXRfX2Rlc3Ryb3koc2tlbDEpO1xcbitcXHR0YWlsY2FsbF9icGYyYnBmX2ZleGl0X19kZXN0cm95KHNrZWwyKTtcXG4rXFx0dGFpbGNhbGxfYnBmMmJwZjJfX2Rlc3Ryb3koc2tlbF90Yyk7XFxuK31cXG4rXFxuIHZvaWQgdGVzdF90YWlsY2FsbHModm9pZClcXG4ge1xcbiBcXHRpZiAodGVzdF9fc3RhcnRfc3VidGVzdChcXFwidGFpbGNhbGxfMVxcXCIpKVxcbkBAIC0xOTc0LDQgKzIwMjMsNiBAQCB2b2lkIHRlc3RfdGFpbGNhbGxzKHZvaWQpXFxuIFxcdGlmICh0ZXN0X19zdGFydF9zdWJ0ZXN0KFxcXCJ0YWlsY2FsbF9jZ3JwX3N0b3JhZ2Vfbm9fc3RvcmFnZV9icmlkZ2VcXFwiKSlcXG4gXFx0XFx0dGVzdF90YWlsY2FsbF9jZ3JwX3N0b3JhZ2Vfbm9fc3RvcmFnZV9icmlkZ2UoKTtcXG4gXFx0dGVzdF90YWlsY2FsbF9jYWxsYmFjaygpO1xcbitcXHRpZiAodGVzdF9fc3RhcnRfc3VidGVzdChcXFwidGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9saW5rc1xcXCIpKVxcbitcXHRcXHR0ZXN0X3RhaWxjYWxsX2JwZjJicGZfZmV4aXRfbGlua3MoKTtcXG4gfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwOTowNjo1OC41OTc5MjU2NjhaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo2MTk4MDMyMzYwNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiLFxuICAgIFwiQlBGX0pJVFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJwZl90cmFtcG9saW5lX3NldF9mbGFnc1wiLFxuICAgIFwiY2hlY2tfYXR0YWNoX2J0Zl9pZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gYW5kIGluY29ycmVjdCBmbGFnIGFzc2lnbm1lbnQgaW4gQlBGIHRyYW1wb2xpbmUgbG9naWMgYnkgaW50cm9kdWNpbmcgYSBsb2NrZWQgYml0d2lzZSBPUiB1cGRhdGUgZm9yIHRyYW1wb2xpbmUgZmxhZ3MuIFRoaXMgaXMgY29yZSBCUEYgZnVuY3Rpb25hbGl0eSB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgOWFlYzgwYjc2NjYzYzVkNzA2NDUwNzlmYjMwOWQwNDhhMjJlNzM0N1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDIyIDA5OjA2OjU1IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9icGYuaCBiL2luY2x1ZGUvbGludXgvYnBmLmhcbmluZGV4IGQ5NTQyMTI3ZGZkZmMwLi5mYzg0ZjM5OTY3YWUwZSAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvYnBmLmhcbisrKyBiL2luY2x1ZGUvbGludXgvYnBmLmhcbkBAIC0xNTIzLDYgKzE1MjMsNyBAQCBpbnQgYnBmX3RyYW1wb2xpbmVfbXVsdGlfYXR0YWNoKHN0cnVjdCBicGZfcHJvZyAqcHJvZywgdTMyICppZHMsXG4gXHRcdFx0XHRzdHJ1Y3QgYnBmX3RyYWNpbmdfbXVsdGlfbGluayAqbGluayk7XG4gaW50IGJwZl90cmFtcG9saW5lX211bHRpX2RldGFjaChzdHJ1Y3QgYnBmX3Byb2cgKnByb2csXG4gXHRcdFx0XHRzdHJ1Y3QgYnBmX3RyYWNpbmdfbXVsdGlfbGluayAqbGluayk7XG4rdm9pZCBicGZfdHJhbXBvbGluZV9zZXRfZmxhZ3Moc3RydWN0IGJwZl90cmFtcG9saW5lICp0ciwgdTMyIGZsYWdzKTtcbiBcbiAvKlxuICAqIFdoZW4gdGhlIGFyY2hpdGVjdHVyZSBzdXBwb3J0cyBTVEFUSUNfQ0FMTCByZXBsYWNlIHRoZSBicGZfZGlzcGF0Y2hlcl9mblxuQEAgLTE2NDYsNiArMTY0Nyw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IGJwZl90cmFtcG9saW5lX211bHRpX2RldGFjaChzdHJ1Y3QgYnBmX3Byb2cgKnByb2csXG4ge1xuIFx0cmV0dXJuIC1FTk9UU1VQUDtcbiB9XG4rc3RhdGljIGlubGluZSB2b2lkIGJwZl90cmFtcG9saW5lX3NldF9mbGFncyhzdHJ1Y3QgYnBmX3RyYW1wb2xpbmUgKnRyLCB1MzIgZmxhZ3MpIHt9XG4gI2VuZGlmXG4gXG4gc3RydWN0IGJwZl9mdW5jX2luZm9fYXV4IHtcbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYyBiL2tlcm5lbC9icGYvdHJhbXBvbGluZS5jXG5pbmRleCA2ZWFkZjY0ZjdlYzkwZi4uMTI5ZDA3ZGIxMTdlYzcgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvYnBmL3RyYW1wb2xpbmUuY1xuKysrIGIva2VybmVsL2JwZi90cmFtcG9saW5lLmNcbkBAIC02NzAsNiArNjcwLDEzIEBAIHN0YXRpYyBzdHJ1Y3QgYnBmX3RyYW1wX2ltYWdlICpicGZfdHJhbXBfaW1hZ2VfYWxsb2ModTY0IGtleSwgaW50IHNpemUpXG4gXHRyZXR1cm4gRVJSX1BUUihlcnIpO1xuIH1cbiBcbit2b2lkIGJwZl90cmFtcG9saW5lX3NldF9mbGFncyhzdHJ1Y3QgYnBmX3RyYW1wb2xpbmUgKnRyLCB1MzIgZmxhZ3MpXG4re1xuK1x0dHJhbXBvbGluZV9sb2NrKHRyKTtcbitcdHRyLVx1MDAzZWZsYWdzIHw9IGZsYWdzO1xuK1x0dHJhbXBvbGluZV91bmxvY2sodHIpO1xuK31cbitcbiBzdGF0aWMgaW50IGJwZl90cmFtcG9saW5lX3VwZGF0ZShzdHJ1Y3QgYnBmX3RyYW1wb2xpbmUgKnRyLCBib29sIGxvY2tfZGlyZWN0X211dGV4LFxuIFx0XHRcdFx0IGNvbnN0IHN0cnVjdCBicGZfdHJhbXBvbGluZV9vcHMgKm9wcywgdm9pZCAqZGF0YSlcbiB7XG5kaWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92ZXJpZmllci5jXG5pbmRleCA1MmJlMGExMThjY2UwNy4uNjZkOGQ5ZWFlYzA1ZjkgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbisrKyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuQEAgLTE5NTIzLDcgKzE5NTIzLDcgQEAgc3RhdGljIGludCBjaGVja19hdHRhY2hfYnRmX2lkKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYpXG4gXHRcdHJldHVybiAtRU5PTUVNO1xuIFxuIFx0aWYgKHRndF9wcm9nIFx1MDAyNlx1MDAyNiB0Z3RfcHJvZy1cdTAwM2VhdXgtXHUwMDNldGFpbF9jYWxsX3JlYWNoYWJsZSlcbi1cdFx0dHItXHUwMDNlZmxhZ3MgPSBCUEZfVFJBTVBfRl9UQUlMX0NBTExfQ1RYO1xuK1x0XHRicGZfdHJhbXBvbGluZV9zZXRfZmxhZ3ModHIsIEJQRl9UUkFNUF9GX1RBSUxfQ0FMTF9DVFgpO1xuIFxuIFx0cHJvZy1cdTAwM2VhdXgtXHUwMDNlZHN0X3RyYW1wb2xpbmUgPSB0cjtcbiBcdHJldHVybiAwO1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RhaWxjYWxscy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdGFpbGNhbGxzLmNcbmluZGV4IGM2NjAzNzE2MmRhNWFlLi44NmQ4N2Q1ODE3Y2Y3MSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RhaWxjYWxscy5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90YWlsY2FsbHMuY1xuQEAgLTEzLDYgKzEzLDggQEBcbiAjaW5jbHVkZSBcInRhaWxjYWxsX2NncnBfc3RvcmFnZS5za2VsLmhcIlxuICNpbmNsdWRlIFwidGFpbGNhbGxfc2xlZXBhYmxlLnNrZWwuaFwiXG4gI2luY2x1ZGUgXCJ0YWlsY2FsbF9jYWxsYmFjay5za2VsLmhcIlxuKyNpbmNsdWRlIFwidGFpbGNhbGxfYnBmMmJwZjIuc2tlbC5oXCJcbisjaW5jbHVkZSBcInRhaWxjYWxsX2JwZjJicGZfZmV4aXQuc2tlbC5oXCJcbiBcbiAvKiB0ZXN0X3RhaWxjYWxsXzEgY2hlY2tzIGJhc2ljIGZ1bmN0aW9uYWxpdHkgYnkgcGF0Y2hpbmcgbXVsdGlwbGUgbG9jYXRpb25zXG4gICogaW4gYSBzaW5nbGUgcHJvZ3JhbSBmb3IgYSBzaW5nbGUgdGFpbCBjYWxsIHNsb3Qgd2l0aCBub3AtXHUwMDNlam1wLCBqbXAtXHUwMDNlbm9wXG5AQCAtMTkwNyw2ICsxOTA5LDUzIEBAIHN0YXRpYyB2b2lkIHRlc3RfdGFpbGNhbGxfY2FsbGJhY2sodm9pZClcbiBcdFJVTl9URVNUUyh0YWlsY2FsbF9jYWxsYmFjayk7XG4gfVxuIFxuK3N0YXRpYyB2b2lkIHRlc3RfdGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9saW5rcyh2b2lkKVxuK3tcbitcdHN0cnVjdCB0YWlsY2FsbF9icGYyYnBmX2ZleGl0ICpza2VsMSA9IE5VTEwsICpza2VsMiA9IE5VTEw7XG4rXHRzdHJ1Y3QgdGFpbGNhbGxfYnBmMmJwZjIgKnNrZWxfdGM7XG4rXHRzdHJ1Y3QgYnBmX2xpbmsgKmxpbms7XG4rXHRpbnQgZXJyLCBwcm9nX2ZkO1xuK1xuK1x0c2tlbF90YyA9IHRhaWxjYWxsX2JwZjJicGYyX19vcGVuX2FuZF9sb2FkKCk7XG4rXHRpZiAoIUFTU0VSVF9PS19QVFIoc2tlbF90YywgXCJ0YWlsY2FsbF9icGYyYnBmMl9fb3Blbl9hbmRfbG9hZFwiKSlcbitcdFx0cmV0dXJuO1xuK1xuK1x0c2tlbDEgPSB0YWlsY2FsbF9icGYyYnBmX2ZleGl0X19vcGVuKCk7XG4rXHRpZiAoIUFTU0VSVF9PS19QVFIoc2tlbDEsIFwidGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9fb3BlblwiKSlcbitcdFx0Z290byBvdXQ7XG4rXG4rXHRwcm9nX2ZkID0gYnBmX3Byb2dyYW1fX2ZkKHNrZWxfdGMtXHUwMDNlcHJvZ3MuY2xhc3NpZmllcl8wKTtcbitcdGVyciA9IGJwZl9wcm9ncmFtX19zZXRfYXR0YWNoX3RhcmdldChza2VsMS1cdTAwM2Vwcm9ncy5mZXhpdCwgcHJvZ19mZCwgXCJzdWJwcm9nX3RhaWxcIik7XG4rXHRpZiAoIUFTU0VSVF9PSyhlcnIsIFwiYnBmX3Byb2dyYW1fX3NldF9hdHRhY2hfdGFyZ2V0XCIpKVxuK1x0XHRnb3RvIG91dDtcbitcbitcdGVyciA9IHRhaWxjYWxsX2JwZjJicGZfZmV4aXRfX2xvYWQoc2tlbDEpO1xuK1x0aWYgKCFBU1NFUlRfT0soZXJyLCBcInRhaWxjYWxsX2JwZjJicGZfZmV4aXRfX2xvYWRcIikpXG4rXHRcdGdvdG8gb3V0O1xuK1xuK1x0bGluayA9IGJwZl9wcm9ncmFtX19hdHRhY2hfdHJhY2Uoc2tlbDEtXHUwMDNlcHJvZ3MuZmV4aXQpO1xuK1x0aWYgKCFBU1NFUlRfT0tfUFRSKGxpbmssIFwiYnBmX3Byb2dyYW1fX2F0dGFjaF90cmFjZVwiKSlcbitcdFx0Z290byBvdXQ7XG4rXHRza2VsMS1cdTAwM2VsaW5rcy5mZXhpdCA9IGxpbms7XG4rXG4rXHRza2VsMiA9IHRhaWxjYWxsX2JwZjJicGZfZmV4aXRfX29wZW4oKTtcbitcdGlmICghQVNTRVJUX09LX1BUUihza2VsMiwgXCJ0YWlsY2FsbF9icGYyYnBmX2ZleGl0X19vcGVuXCIpKVxuK1x0XHRnb3RvIG91dDtcbitcbitcdGVyciA9IGJwZl9wcm9ncmFtX19zZXRfYXR0YWNoX3RhcmdldChza2VsMi1cdTAwM2Vwcm9ncy5mZXhpdCwgcHJvZ19mZCwgXCJzdWJwcm9nX3RhaWxcIik7XG4rXHRpZiAoIUFTU0VSVF9PSyhlcnIsIFwiYnBmX3Byb2dyYW1fX3NldF9hdHRhY2hfdGFyZ2V0XCIpKVxuK1x0XHRnb3RvIG91dDtcbitcbitcdGVyciA9IHRhaWxjYWxsX2JwZjJicGZfZmV4aXRfX2xvYWQoc2tlbDIpO1xuK1x0aWYgKCFBU1NFUlRfT0soZXJyLCBcInRhaWxjYWxsX2JwZjJicGZfZmV4aXRfX2xvYWRcIikpXG4rXHRcdGdvdG8gb3V0O1xuK1xuK291dDpcbitcdHRhaWxjYWxsX2JwZjJicGZfZmV4aXRfX2Rlc3Ryb3koc2tlbDEpO1xuK1x0dGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9fZGVzdHJveShza2VsMik7XG4rXHR0YWlsY2FsbF9icGYyYnBmMl9fZGVzdHJveShza2VsX3RjKTtcbit9XG4rXG4gdm9pZCB0ZXN0X3RhaWxjYWxscyh2b2lkKVxuIHtcbiBcdGlmICh0ZXN0X19zdGFydF9zdWJ0ZXN0KFwidGFpbGNhbGxfMVwiKSlcbkBAIC0xOTc0LDQgKzIwMjMsNiBAQCB2b2lkIHRlc3RfdGFpbGNhbGxzKHZvaWQpXG4gXHRpZiAodGVzdF9fc3RhcnRfc3VidGVzdChcInRhaWxjYWxsX2NncnBfc3RvcmFnZV9ub19zdG9yYWdlX2JyaWRnZVwiKSlcbiBcdFx0dGVzdF90YWlsY2FsbF9jZ3JwX3N0b3JhZ2Vfbm9fc3RvcmFnZV9icmlkZ2UoKTtcbiBcdHRlc3RfdGFpbGNhbGxfY2FsbGJhY2soKTtcbitcdGlmICh0ZXN0X19zdGFydF9zdWJ0ZXN0KFwidGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9saW5rc1wiKSlcbitcdFx0dGVzdF90YWlsY2FsbF9icGYyYnBmX2ZleGl0X2xpbmtzKCk7XG4gfVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDk6MDY6NTguNTk3OTI4MjM4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzkzNjEwNDU1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBCUEYgVHJhbXBvbGluZSBGbGFnIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IGNoYW5nZXMgaG93IEJQRiB0cmFtcG9saW5lIGZsYWdzIGFyZSBzZXQuIFNwZWNpZmljYWxseSwgaXQgaW52b2x2ZXMgdGhlIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgIGFuZCBga2VybmVsL2JwZi90cmFtcG9saW5lLmNgIGZpbGVzLiBUaGUgY29yZSBvZiB0aGUgY2hhbmdlIHNlZW1zIHRvIGJlIGluIGhvdyB0aGUgYHRyLVx1MDAzZWZsYWdzYCBmaWVsZCBpcyBtb2RpZmllZC4gSW5pdGlhbGx5LCBpdCB3YXMgYSBkaXJlY3QgYXNzaWdubWVudDogYHRyLVx1MDAzZWZsYWdzID0gQlBGX1RSQU1QX0ZfVEFJTF9DQUxMX0NUWDtgLiBOb3csIHRoZXkndmUgaW1wbGVtZW50ZWQgYSBmdW5jdGlvbiBgYnBmX3RyYW1wb2xpbmVfc2V0X2ZsYWdzYCwgd2hpY2ggdXNlcyBhIGxvY2sgYW5kIGEgYml0d2lzZSBPUiBvcGVyYXRpb246IGB0ci1cdTAwM2VmbGFncyB8PSBmbGFncztgLiBUaGlzIGlzIGEgcHJldHR5IGNsZWFyIGluZGljYXRpb24gb2YgYWRkcmVzc2luZyBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbiBvciBhIHNpbXBsZSBsb2dpY2FsIGVycm9yIGluIGhvdyB0aGUgZmxhZ3Mgd2VyZSBiZWluZyBzZXQuIFRoZSBvbGQgY29kZSB3YXMgZWZmZWN0aXZlbHkgb3ZlcndyaXRpbmcgZXhpc3RpbmcgZmxhZ3MsIHdoZXJlYXMgdGhpcyBuZXcgYXBwcm9hY2gsIGJ5IHVzaW5nIGEgbG9jayBhbmQgYW4gT1Igb3BlcmF0aW9uLCBpcyBzYWZlciBiZWNhdXNlIGl0IHByb3Blcmx5IHNldHMgdGhlIHNwZWNpZmllZCBmbGFnIHdoaWxlIHByZXNlcnZpbmcgb3RoZXIgcG90ZW50aWFsbHkgc2V0IGZsYWdzLlxuXG5JIGNhbiBpbW1lZGlhdGVseSBzZWUgdGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLiBNeSBmaXJzdCB0aG91Z2h0IGlzIHRvIHZlcmlmeSB0aGUgY2hhbmdlLCB3aGljaCBJIGNhbiBkbyB3aXRob3V0IGxvb2tpbmcgYXQgdGhlIHdob2xlIGBncmVwcGVyYCBvdXRwdXQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhpcyBjaGFuZ2UgYW5kIGNvbnNpZGVyIGZ1enppbmcuIEdpdmVuIHRoYXQgdGhpcyBwYXRjaCB0b3VjaGVzIGNvcmUgQlBGIGxvZ2ljLCBpdCdzIGRlZmluaXRlbHkgd29ydGggZXhwbG9yaW5nIGZ1enppbmcgdGhpcyBhcmVhLlxuXG5Ob3csIGxldCdzIHNlZSB3aGljaCBjb25maWdzIGVuYWJsZSB0aGlzIGZlYXR1cmUuIGBDT05GSUdfQlBGX1NZU0NBTExgIGlzIGEgZ2l2ZW4sIHRoYXQncyBhbG1vc3QgYWx3YXlzIGEgcHJlcmVxdWlzaXRlIGZvciBCUEYtcmVsYXRlZCBmdW5jdGlvbmFsaXR5LiBJJ2xsIG5lZWQgdG8gZG91YmxlIGNoZWNrIGZvciBhbnkgb3RoZXIgcmVsZXZhbnQgY29uZmlnIG9wdGlvbnMuIFRvIGJlIHRob3JvdWdoLCBJJ2xsIHNlYXJjaCBmb3IgYGNoZWNrX2F0dGFjaF9idGZfaWRgIGluIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIHJlbGF0ZWQgY2hhbmdlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzY1MSwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ0MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDA5OjA3OjA2LjUzNDAzNjI3M1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2Nzk2MDEzODYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY2hlY2tfYXR0YWNoX2J0Zl9pZFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJrZXJuZWwvYnBmL3ZlcmlmaWVyLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwia2VybmVsL2JwZi92ZXJpZmllci5jPTE5NDA1PXN0YXRpYyBib29sIGNhbl9iZV9zbGVlcGFibGUoc3RydWN0IGJwZl9wcm9nICpwcm9nKVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE5NDMxLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxOTQzMjpzdGF0aWMgaW50IGNoZWNrX2F0dGFjaF9idGZfaWQoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTk0MzMte1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE5NTMxLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxOTUzMjppbnQgYnBmX2NoZWNrX2F0dGFjaF9idGZfaWRfbXVsdGkoc3RydWN0IGJ0ZiAqYnRmLCBzdHJ1Y3QgYnBmX3Byb2cgKnByb2csIHUzMiBidGZfaWQsXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE5NTMzLVxcdFxcdFxcdFxcdCAgc3RydWN0IGJwZl9hdHRhY2hfdGFyZ2V0X2luZm8gKnRndF9pbmZvKVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTIwMDU3PWludCBicGZfY2hlY2soc3RydWN0IGJwZl9wcm9nICoqcHJvZywgdW5pb24gYnBmX2F0dHIgKmF0dHIsIGJwZnB0cl90IHVhdHRyLFxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTIwMjAyLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoyMDIwMzpcXHRyZXQgPSBjaGVja19hdHRhY2hfYnRmX2lkKGVudik7XFxua2VybmVsL2JwZi92ZXJpZmllci5jLTIwMjA0LVxcdGlmIChyZXQpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDA5OjA3OjA3LjIxMzY0MzAxOVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2MjEyODI0MDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoZSBga2VybmVsL2JwZi90cmFtcG9saW5lLmNgIGNvbmZpZ3VyYXRpb246XG5cbioqQW5hbHl6aW5nIEtlcm5lbCBCUEYgVHJhbXBvbGluZSBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSdtIGRpdmluZyBpbnRvIGBrZXJuZWwvYnBmL3RyYW1wb2xpbmUuY2AuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIldoYXQga2luZCBvZiBjb25maWd1cmF0aW9uIGlzICphYnNvbHV0ZWx5KiBuZWVkZWQgdG8gbWFrZSB0aGlzIHRoaW5nIHdvcms/XCIgS25vd2luZyB0aGUgQlBGIGxhbmRzY2FwZSwgSSBuZWVkIHRvIGNvbnNpZGVyIHZhcmlvdXMgbGV2ZWxzIG9mIGRlcGVuZGVuY2llcy4gSSBuZWVkIHRvIHRoaW5rIGFib3V0IHRoZSBjb3JlIEJQRiBpbmZyYXN0cnVjdHVyZSBpdHNlbGYg4oCTIHRoZSBvYnZpb3VzIHN0dWZmIGxpa2Ugd2hldGhlciBCUEYgaXMgZXZlbiBlbmFibGVkIChgQ09ORklHX0JQRmApLCBhbmQgcG90ZW50aWFsbHkgbW9yZSBncmFudWxhciBmZWF0dXJlIGZsYWdzIGlmIHRoaXMgdHJhbXBvbGluZSBpbXBsZW1lbnRhdGlvbiB1c2VzIHNwZWNpZmljIEJQRiBoZWxwZXIgY2FsbHMgb3IgZmVhdHVyZXMsIHdoaWNoIEknbGwgaGF2ZSB0byBpbnZlc3RpZ2F0ZS4gSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBidWlsZCBvcHRpb25zLiBUaGVuLCBJIG5lZWQgdG8gc3RhcnQgZGlnZ2luZyB0aHJvdWdoIHRoZSBjb2RlLCBsb29raW5nIGZvciBgI2lmZGVmYCBzdGF0ZW1lbnRzIGFuZCBvdGhlciBjb25kaXRpb25hbCBjb21waWxhdGlvbiBkaXJlY3RpdmVzLiBBcmUgdGhlcmUgYW55IGhhcmR3YXJlLXNwZWNpZmljIGRlcGVuZGVuY2llcywgcGVyaGFwcyByZWxhdGVkIHRvIHRoZSBhcmNoaXRlY3R1cmUncyBhYmlsaXR5IHRvIHN1cHBvcnQgY2VydGFpbiBmZWF0dXJlcyBuZWVkZWQgZm9yIGVmZmljaWVudCB0cmFtcG9saW5lIG9wZXJhdGlvbiAobGlrZSBpbnN0cnVtZW50YXRpb24gY2FwYWJpbGl0aWVzKT8gT3IgYXJlIHRoZXJlIGFueSBzZWN1cml0eS1yZWxhdGVkIHNldHRpbmdzIHRoYXQgbWlnaHQgYmUgY3J1Y2lhbCwgbGlrZSB0aGUgdXNlIG9mIGEgbW9yZSBzZWN1cmUgQlBGIHZlcmlmaWVyIG1vZGU/IEknbGwgcHJvYmFibHkgYWxzbyBuZWVkIHRvIGNvbnNpZGVyIGFueSBkZXBlbmRlbmNpZXMgb24gc3BlY2lmaWMga2VybmVsIHZlcnNpb25zIG9yIGZlYXR1cmVzLCBlc3BlY2lhbGx5IGlmIHRoZSB0cmFtcG9saW5lIGltcGxlbWVudGF0aW9uIHJlbGllcyBvbiBuZXdlciBBUElzIG9yIGRhdGEgc3RydWN0dXJlcy4gSSdsbCBoYXZlIHRvIHBheSBjbG9zZSBhdHRlbnRpb24gdG8gdGhlIGluY2x1ZGUgZmlsZXMgdG8gc2VlIGlmIGFueSBhcmUgY29uZGl0aW9uYWxseSBpbmNsdWRlZC4gVGhlIGtleSBpcyB0byBtYXAgYW55IGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHN0YXRlbWVudHMgdG8gdGhlIHJlcXVpcmVkIGNvbmZpZyBvcHRpb25zLiBNeSBnb2FsIGlzIGEgY29tcGxldGUgbGlzdC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDg0MywiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDA5OjA3OjEwLjgzNDkyNzk1NloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNzkzNTY5MjEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYnBmX3RyYW1wb2xpbmVfc2V0X2ZsYWdzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImtlcm5lbC9icGYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImtlcm5lbC9icGYvdHJhbXBvbGluZS5jPTYzMT1zdGF0aWMgc3RydWN0IGJwZl90cmFtcF9pbWFnZSAqYnBmX3RyYW1wX2ltYWdlX2FsbG9jKHU2NCBrZXksIGludCBzaXplKVxcbi0tXFxua2VybmVsL2JwZi90cmFtcG9saW5lLmMtNjcyLVxcbmtlcm5lbC9icGYvdHJhbXBvbGluZS5jOjY3Mzp2b2lkIGJwZl90cmFtcG9saW5lX3NldF9mbGFncyhzdHJ1Y3QgYnBmX3RyYW1wb2xpbmUgKnRyLCB1MzIgZmxhZ3MpXFxua2VybmVsL2JwZi90cmFtcG9saW5lLmMtNjc0LXtcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xOTQzMj1zdGF0aWMgaW50IGNoZWNrX2F0dGFjaF9idGZfaWQoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xOTUyNS1cXHRpZiAodGd0X3Byb2cgXFx1MDAyNlxcdTAwMjYgdGd0X3Byb2ctXFx1MDAzZWF1eC1cXHUwMDNldGFpbF9jYWxsX3JlYWNoYWJsZSlcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTk1MjY6XFx0XFx0YnBmX3RyYW1wb2xpbmVfc2V0X2ZsYWdzKHRyLCBCUEZfVFJBTVBfRl9UQUlMX0NBTExfQ1RYKTtcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTk1MjctXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDA5OjA3OjExLjExNDI5NDQwN1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2MDAwMjE0ODgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyB0aGUgdGhvdWdodCBwcm9jZXNzIHVuZm9sZHM6XG5cbioqQ2hlY2tpbmcgQlBGIFRyYW1wb2xpbmUgQ29tcGlsYXRpb24qKlxuXG5Pa2F5LCBzbyBga2VybmVsL2JwZi90cmFtcG9saW5lLmNgIGlzIGRlZmluaXRlbHkgYmVpbmcgY29tcGlsZWQgKmNvbmRpdGlvbmFsbHkqIGJhc2VkIG9uIHRoZSBgQ09ORklHX0JQRl9TWVNDQUxMYCBLY29uZmlnIG9wdGlvbi4gQnV0LCB0aGF0J3Mgbm90IHF1aXRlIGVub3VnaDsgSSB3YW50IHRvIGJlICpjZXJ0YWluKiBhYm91dCB0aGUgYnVpbGQgcHJvY2Vzcy4gSSBuZWVkIHRvIGNvbmZpcm0gdGhhdCB0aGlzIGlzIGJlaW5nIGhhbmRsZWQgY29ycmVjdGx5IGluIHRoZSBgTWFrZWZpbGVgLiBTcGVjaWZpY2FsbHksIEknbGwgZHJpbGwgZG93biBhbmQgY2hlY2sgdGhlIGBrZXJuZWwvYnBmL01ha2VmaWxlYCBmaWxlIHRvIHNlZSBob3cgaXQncyBkZWFsaW5nIHdpdGggdGhhdCBjb25kaXRpb25hbCBjb21waWxhdGlvbi4gR290dGEgbWFrZSBzdXJlIHRoZXJlIGFyZW4ndCBhbnkgc25lYWt5IGludGVyYWN0aW9ucyBvciB1bmludGVuZGVkIHNpZGUgZWZmZWN0cyB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTQ3MSwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDA5OjA3OjE0LjcxNDMxOTI2NFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDQ4Mzk3MzEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidHJhbXBvbGluZS5vXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImtlcm5lbC9icGYvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwia2VybmVsL2JwZi9NYWtlZmlsZT0xNj1vYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IGRpc2FzbS5vIG1wcm9nLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlOjE3Om9iai0kKENPTkZJR19CUEZfSklUKSArPSB0cmFtcG9saW5lLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlLTE4LW9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gYnRmLm8gbWVtYWxsb2MubyBycXNwaW5sb2NrLm8gc3RyZWFtLm9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDk6MDc6MTQuODE5MTY1MDI2WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQyMDUxOTIxMzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqS2VybmVsIENvbmZpZ3VyYXRpb24gRGVwZW5kZW5jaWVzKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhlIGJ1aWxkIHByb2Nlc3MgYW5kIGl0J3MgaW1tZWRpYXRlbHkgY2xlYXIgdGhhdCBgdHJhbXBvbGluZS5vYCBuZWVkcyBgQ09ORklHX0JQRl9KSVRgLiBUaGF0IG1ha2VzIHBlcmZlY3Qgc2Vuc2U7IHRoZSB0cmFtcG9saW5lIGNvZGUgbGlrZWx5IHJlbGllcyBvbiB0aGUgSklUIGNvbXBpbGVyIGZvciBCUEYgdG8gZnVuY3Rpb24gZWZmaWNpZW50bHksIHByb2JhYmx5IGZvciBvbi10aGUtZmx5IGNvZGUgZ2VuZXJhdGlvbi5cblxuVGhlbiwgdGhlcmUncyBgdmVyaWZpZXIub2AuIFRoZSBkZXBlbmRlbmN5IG9uIGBDT05GSUdfQlBGX1NZU0NBTExgIGZvciB0aGF0IGlzIGFsc28gaW50dWl0aXZlLiBUaGUgdmVyaWZpZXIsIG9idmlvdXNseSwgbmVlZHMgZGlyZWN0IGFjY2VzcyB0byB0aGUgQlBGIHN5c3RlbSBjYWxscyB0byBhbmFseXplIGFuZCBpbnRlcmFjdCB3aXRoIHRoZSBCUEYgcHJvZ3JhbXMgdGhhdCBpdCBpcyB0YXNrZWQgd2l0aCBldmFsdWF0aW5nLiBXaXRob3V0IHRob3NlIHN5c3RlbSBjYWxscyBhdmFpbGFibGUsIHRoZSB2ZXJpZmljYXRpb24gcHJvY2VzcyBjYW4ndCBleGVjdXRlLCBhbmQgdGhlIHN5c3RlbSBpcyBsaWtlbHkgcHJldmVudGluZyB0aGUgZmVhdHVyZSBmcm9tIGJlaW5nIHVzZWQuIEkgd2lsbCBpbnZlc3RpZ2F0ZSB0aG9zZSBkZXBlbmRlbmNpZXMgZnVydGhlciwgdG8gZXhwbG9yZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGNvbmZpZ3VyYXRpb24gaXNzdWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1Nzk1LCJPdXRwdXRUb2tlbnMiOjI5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDk6MDc6NDkuMDI0MzU5NTE5WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2OTI5NzUyODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidmVyaWZpZXIub1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJrZXJuZWwvYnBmL01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImtlcm5lbC9icGYvTWFrZWZpbGU9Nz1DRkxBR1NfY29yZS5vICs9IC1Xbm8tb3ZlcnJpZGUtaW5pdCAkKGNmbGFncy1ub2djc2UteXkpXFxua2VybmVsL2JwZi9NYWtlZmlsZS04LVxcbmtlcm5lbC9icGYvTWFrZWZpbGU6OTpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IHN5c2NhbGwubyB2ZXJpZmllci5vIGlub2RlLm8gaGVscGVycy5vIHRudW0ubyBjbnVtLm8gbG9nLm8gdG9rZW4ubyBsaXZlbmVzcy5vIGNvbnN0X2ZvbGQub1xcbmtlcm5lbC9icGYvTWFrZWZpbGUtMTAtb2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBicGZfaXRlci5vIG1hcF9pdGVyLm8gdGFza19pdGVyLm8gcHJvZ19pdGVyLm8gbGlua19pdGVyLm9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDk6MDc6NDkuNzE3MzQyMzg5WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ2MjE1NzUwOTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBicmVha2Rvd24gb2Ygd2hhdCB3ZSdyZSBsb29raW5nIGF0LCBmcm9tIG15IHBlcnNwZWN0aXZlLlxuXG4qKkZvY3VzaW5nIEZ1enppbmcgRWZmb3J0cyoqXG5cbkFscmlnaHQsIHNvIHdlJ3JlIGRpdmluZyBpbnRvIGZ1enppbmcgQlBGIGNvZGUsIGFuZCBpdCBsb29rcyBsaWtlIHdlIG5lZWQgdG8gemVybyBpbiBvbiBzcGVjaWZpYyBhcmVhcy4gVGhlIGNvcmUgaWRlYSBpcyB0byB0YXJnZXQgdGhlIHJpZ2h0IGZ1bmN0aW9ucy4gTXkgZ3V0IHRlbGxzIG1lIHdlIG5lZWQgdG8gYmUgdmVyeSBjb25zY2lvdXMgb2YgYEJQRl9TWVNDQUxMYCBhbmQgYEJQRl9KSVRgLiBUaGV5J3JlIHByb2JhYmx5IHdoZXJlIHRoZSBtb3N0IGludGVyZXN0aW5nIGJ1Z3MgcmVzaWRlLCBhbmQgd2hlcmUgd2UnbGwgZmluZCB0aGUgbW9zdCBpbXBhY3RmdWwgdnVsbmVyYWJpbGl0aWVzLlxuXG5UaGUgaW5pdGlhbCBmdW5jdGlvbiBsaXN0IHRvIGV4cGxvcmUgaW5jbHVkZXMgYGJwZl90cmFtcG9saW5lX3NldF9mbGFnc2AsIHdoaWNoIGxvb2tzIHByb21pc2luZy4gVGhlbiB0aGVyZSdzIGBjaGVja19hdHRhY2hfYnRmX2lkYCwgd2hpY2ggY2F0Y2hlcyBteSBleWUgaW1tZWRpYXRlbHkuIEl0J3MgcmVsYXRlZCB0byBCVEYgKEJQRiBUeXBlIEZvcm1hdCkgYW5kIGF0dGFjaG1lbnQgcG9pbnRzLCBzbyBpdCdzIGxpa2VseSBhIGNyaXRpY2FsIGFyZWEgdG8gcHJvYmUuIEknbSBkaXNjYXJkaW5nIGBicGZfY2hlY2tgIGFzIGEgZGlyZWN0IGZ1enogdGFyZ2V0OyBpdCdzIGp1c3QgZmFyIHRvbyBicm9hZC4gSG93ZXZlciwgSSBhbSBrZWVwaW5nIGFuIGV5ZSBvbiBgYnBmX3RyYW1wb2xpbmVfdXBkYXRlYC4gSXQgcmVsYXRlcyB0byB0cmFtcG9saW5lcywgYW5kIHRoZXkgb2Z0ZW4gaW50ZXJhY3Qgd2l0aCBvdGhlciBCUEYgZnVuY3Rpb25zLCBzbyBpdCdzIGEgdmFsaWQgYXJlYSB0byBjb25zaWRlci5cblxuTm93LCBsZXQncyB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgYGNoZWNrX2F0dGFjaF9idGZfaWRgLiBJdCBzZWVtcyB0byBiZSBjYWxsZWQgZnJvbSBgYnBmX2NoZWNrYC4gVGhpcyBpcyBpbnRlcmVzdGluZzsgd2UgbWlnaHQgYmUgYWJsZSB0byBmaW5kIG1vcmUgc3VidGxlIGJ1Z3MgYnkgZm9jdXNpbmcgb24gdGhlIGludGVyYWN0aW9ucyB3aXRoaW4gdGhpcyByZWxhdGlvbnNoaXAuIFVsdGltYXRlbHksIHRoZSBxdWVzdGlvbiBpcywgKndoZXJlIGNhbiB3ZSBhY2hpZXZlIHRoZSBiZXN0IGltcGFjdCB3aXRoIG91ciBmdXp6ZXIgaW4gdGhlIHNob3J0ZXN0IGFtb3VudCBvZiB0aW1lPypcblxuXG4iLCJJbnB1dFRva2VucyI6NjIyMiwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwOTowNzo1NC4zMzg5MjA3NzRaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwMTQwMTgyNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjaGVja19hdHRhY2hfYnRmX2lkXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImtlcm5lbC9icGYvdmVyaWZpZXIuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJrZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTk0MDU9c3RhdGljIGJvb2wgY2FuX2JlX3NsZWVwYWJsZShzdHJ1Y3QgYnBmX3Byb2cgKnByb2cpXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTk0MzEtXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjE5NDMyOnN0YXRpYyBpbnQgY2hlY2tfYXR0YWNoX2J0Zl9pZChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52KVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xOTQzMy17XFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTk1MzEtXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjE5NTMyOmludCBicGZfY2hlY2tfYXR0YWNoX2J0Zl9pZF9tdWx0aShzdHJ1Y3QgYnRmICpidGYsIHN0cnVjdCBicGZfcHJvZyAqcHJvZywgdTMyIGJ0Zl9pZCxcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTk1MzMtXFx0XFx0XFx0XFx0ICBzdHJ1Y3QgYnBmX2F0dGFjaF90YXJnZXRfaW5mbyAqdGd0X2luZm8pXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MjAwNTc9aW50IGJwZl9jaGVjayhzdHJ1Y3QgYnBmX3Byb2cgKipwcm9nLCB1bmlvbiBicGZfYXR0ciAqYXR0ciwgYnBmcHRyX3QgdWF0dHIsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMjAyMDItXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjIwMjAzOlxcdHJldCA9IGNoZWNrX2F0dGFjaF9idGZfaWQoZW52KTtcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMjAyMDQtXFx0aWYgKHJldClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDk6MDc6NTQuNTQwNDAyOTExWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU3ODczMDMzNTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb24qKlxuXG5Pa2F5LCBzbyBsb29raW5nIGF0IHRoaXMgcGF0Y2gsIGBjaGVja19hdHRhY2hfYnRmX2lkYCBhbmQgYGJwZl90cmFtcG9saW5lX3NldF9mbGFnc2AgaW1tZWRpYXRlbHkgc3RhbmQgb3V0IGFzIGdvb2QgYXJlYXMgdG8gdGFyZ2V0IGZvciBmdXp6aW5nLiBUaGV5IHJlcHJlc2VudCBrZXkgZnVuY3Rpb25zIHdpdGhpbiB0aGUgbW9kaWZpZWQgQlBGIHRyYW1wb2xpbmUgbG9naWMuXG5cbkxldCdzIHF1aWNrbHkgY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBvdGhlciByZWxldmFudCBjb25maWd1cmF0aW9ucyBvciBwaWVjZXMgb2YgdGhlIHB1enpsZS4gQWgsIEkgc2VlIGEgdGVzdCB3YXMgYWRkZWQ6IGB0ZXN0X3RhaWxjYWxsX2JwZjJicGZfZmV4aXRfbGlua3NgIGluIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90YWlsY2FsbHMuY2AuIFRoYXQncyBhIEJQRi1zcGVjaWZpYyB0ZXN0LCBhbmQgaXQgZ2l2ZXMgdXMgc29tZSBjb250ZXh0LlxuXG5SaWdodCwgdGhlIHBhdGNoIGl0c2VsZiBpcyBtYWtpbmcgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIEJQRiB0cmFtcG9saW5lIGxvZ2ljLCBzcGVjaWZpY2FsbHkgYWRkcmVzc2luZyBhbiBpc3N1ZSB3aGVyZSBgdHItXHUwMDNlZmxhZ3NgIHdhcyBiZWluZyBvdmVyd3JpdHRlbiBpbnN0ZWFkIG9mIGJlaW5nIHVwZGF0ZWQgY29ycmVjdGx5IHdpdGggYW4gT1Igb3BlcmF0aW9uLCBhbmQgdW5kZXIgYSBsb2NrIHRvIHByZXZlbnQgYSByYWNlIGNvbmRpdGlvbi4gVGhpcyBpcyBhIGNyaXRpY2FsIGZpeCBhZmZlY3RpbmcgZnVuZGFtZW50YWwgQlBGIGJlaGF2aW9yLiBSYWNlIGNvbmRpdGlvbnMgYW5kIGluY29ycmVjdCBmbGFnIG1hbmlwdWxhdGlvbiBhcmUgdGhlIGtpbmQgb2YgYnVncyB0aGF0IHdlIHdhbnQgdG8gZXhwb3NlIHRocm91Z2ggZnV6emluZy5cblxuTGV0J3MgZ2V0IHRoaXMgb3JnYW5pemVkIGZvciBmdXp6aW5nLlxuXG5NeSBkZWNpc2lvbiB0byBmdXp6IHRoaXMgaXMgYmFzZWQgb24gdGhpcyByZWFzb25pbmc6IFRoZSBwYXRjaCBmaXhlcyBhIHJhY2UgY29uZGl0aW9uIGFuZCBpbmNvcnJlY3QgZmxhZyBhc3NpZ25tZW50IGluIEJQRiB0cmFtcG9saW5lIGxvZ2ljIGJ5IGludHJvZHVjaW5nIGEgbG9ja2VkIGJpdHdpc2UgT1IgdXBkYXRlIGZvciB0cmFtcG9saW5lIGZsYWdzLiBUaGlzIGlzIGNvcmUgQlBGIGZ1bmN0aW9uYWxpdHkgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuVGhlIHJlc3VsdHMgc2hvdWxkIGNvbnRhaW4gdGhlc2UgZGV0YWlsczpcblxuV29ydGhGdXp6aW5nOiBUcnVlXG5Gb2N1c1N5bWJvbHM6IFtcImJwZl90cmFtcG9saW5lX3NldF9mbGFnc1wiLCBcImNoZWNrX2F0dGFjaF9idGZfaWRcIl1cbkVuYWJsZUNvbmZpZ3M6IFtcIkJQRl9TWVNDQUxMXCIsIFwiQlBGX0pJVFwiXVxuXG5cbiIsIklucHV0VG9rZW5zIjo3MDUyLCJPdXRwdXRUb2tlbnMiOjEwOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwOTowODowMC4zMjc3MDk1NThaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTA1MzQyMzQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9TWVNDQUxMXCIsXG4gICAgXCJCUEZfSklUXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnBmX3RyYW1wb2xpbmVfc2V0X2ZsYWdzXCIsXG4gICAgXCJjaGVja19hdHRhY2hfYnRmX2lkXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSByYWNlIGNvbmRpdGlvbiBhbmQgaW5jb3JyZWN0IGZsYWcgYXNzaWdubWVudCBpbiBCUEYgdHJhbXBvbGluZSBsb2dpYyBieSBpbnRyb2R1Y2luZyBhIGxvY2tlZCBiaXR3aXNlIE9SIHVwZGF0ZSBmb3IgdHJhbXBvbGluZSBmbGFncy4gVGhpcyBpcyBjb3JlIEJQRiBmdW5jdGlvbmFsaXR5IHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiLFxuICAgIFwiQlBGX0pJVFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJwZl90cmFtcG9saW5lX3NldF9mbGFnc1wiLFxuICAgIFwiY2hlY2tfYXR0YWNoX2J0Zl9pZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gYW5kIGluY29ycmVjdCBmbGFnIGFzc2lnbm1lbnQgaW4gQlBGIHRyYW1wb2xpbmUgbG9naWMgYnkgaW50cm9kdWNpbmcgYSBsb2NrZWQgYml0d2lzZSBPUiB1cGRhdGUgZm9yIHRyYW1wb2xpbmUgZmxhZ3MuIFRoaXMgaXMgY29yZSBCUEYgZnVuY3Rpb25hbGl0eSB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowmltvb[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-22 08:28:37 +0000 UTC FinishedAt: 2026-07-22 09:08:02 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "7c25590d03abcb5424723f90641fda5b6cefffc8", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL", "BPF_JIT" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "7c25590d03abcb5424723f90641fda5b6cefffc8", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL", "BPF_JIT" ], "series_id": "b3197a7c-155d-4e03-8ef1-950d81690fe2" }, "track": "KASAN", "fuzz": { "focus": [ "bpf" ], "focus_symbols": [ "bpf_trampoline_set_flags", "check_attach_btf_id" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDA5OjA2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDssCiAgICAmIzM0O0JQRl9KSVQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticGZfdHJhbXBvbGluZV9zZXRfZmxhZ3MmIzM0OywKICAgICYjMzQ7Y2hlY2tfYXR0YWNoX2J0Zl9pZCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHJhY2UgY29uZGl0aW9uIGFuZCBpbmNvcnJlY3QgZmxhZyBhc3NpZ25tZW50IGluIEJQRiB0cmFtcG9saW5lIGxvZ2ljIGJ5IGludHJvZHVjaW5nIGEgbG9ja2VkIGJpdHdpc2UgT1IgdXBkYXRlIGZvciB0cmFtcG9saW5lIGZsYWdzLiBUaGlzIGlzIGNvcmUgQlBGIGZ1bmN0aW9uYWxpdHkgdGhhdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDA5OjA2PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgOWFlYzgwYjc2NjYzYzVkNzA2NDUwNzlmYjMwOWQwNDhhMjJlNzM0N1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDIyIDA5OjA2OjU1IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvYnBmLmggYi9pbmNsdWRlL2xpbnV4L2JwZi5oXG5pbmRleCBkOTU0MjEyN2RmZGZjMC4uZmM4NGYzOTk2N2FlMGUgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL2xpbnV4L2JwZi5oXG4mIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2xpbnV4L2JwZi5oXG5AQCAtMTUyMyw2ICYjNDM7MTUyMyw3IEBAIGludCBicGZfdHJhbXBvbGluZV9tdWx0aV9hdHRhY2goc3RydWN0IGJwZl9wcm9nICpwcm9nLCB1MzIgKmlkcyxcbiBcdFx0XHRcdHN0cnVjdCBicGZfdHJhY2luZ19tdWx0aV9saW5rICpsaW5rKTtcbiBpbnQgYnBmX3RyYW1wb2xpbmVfbXVsdGlfZGV0YWNoKHN0cnVjdCBicGZfcHJvZyAqcHJvZyxcbiBcdFx0XHRcdHN0cnVjdCBicGZfdHJhY2luZ19tdWx0aV9saW5rICpsaW5rKTtcbiYjNDM7dm9pZCBicGZfdHJhbXBvbGluZV9zZXRfZmxhZ3Moc3RydWN0IGJwZl90cmFtcG9saW5lICp0ciwgdTMyIGZsYWdzKTtcbiBcbiAvKlxuICAqIFdoZW4gdGhlIGFyY2hpdGVjdHVyZSBzdXBwb3J0cyBTVEFUSUNfQ0FMTCByZXBsYWNlIHRoZSBicGZfZGlzcGF0Y2hlcl9mblxuQEAgLTE2NDYsNiAmIzQzOzE2NDcsNyBAQCBzdGF0aWMgaW5saW5lIGludCBicGZfdHJhbXBvbGluZV9tdWx0aV9kZXRhY2goc3RydWN0IGJwZl9wcm9nICpwcm9nLFxuIHtcbiBcdHJldHVybiAtRU5PVFNVUFA7XG4gfVxuJiM0MztzdGF0aWMgaW5saW5lIHZvaWQgYnBmX3RyYW1wb2xpbmVfc2V0X2ZsYWdzKHN0cnVjdCBicGZfdHJhbXBvbGluZSAqdHIsIHUzMiBmbGFncykge31cbiAjZW5kaWZcbiBcbiBzdHJ1Y3QgYnBmX2Z1bmNfaW5mb19hdXgge1xuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdHJhbXBvbGluZS5jIGIva2VybmVsL2JwZi90cmFtcG9saW5lLmNcbmluZGV4IDZlYWRmNjRmN2VjOTBmLi4xMjlkMDdkYjExN2VjNyAxMDA2NDRcbi0tLSBhL2tlcm5lbC9icGYvdHJhbXBvbGluZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvYnBmL3RyYW1wb2xpbmUuY1xuQEAgLTY3MCw2ICYjNDM7NjcwLDEzIEBAIHN0YXRpYyBzdHJ1Y3QgYnBmX3RyYW1wX2ltYWdlICpicGZfdHJhbXBfaW1hZ2VfYWxsb2ModTY0IGtleSwgaW50IHNpemUpXG4gXHRyZXR1cm4gRVJSX1BUUihlcnIpO1xuIH1cbiBcbiYjNDM7dm9pZCBicGZfdHJhbXBvbGluZV9zZXRfZmxhZ3Moc3RydWN0IGJwZl90cmFtcG9saW5lICp0ciwgdTMyIGZsYWdzKVxuJiM0Mzt7XG4mIzQzO1x0dHJhbXBvbGluZV9sb2NrKHRyKTtcbiYjNDM7XHR0ci1cdTAwM2VmbGFncyB8PSBmbGFncztcbiYjNDM7XHR0cmFtcG9saW5lX3VubG9jayh0cik7XG4mIzQzO31cbiYjNDM7XG4gc3RhdGljIGludCBicGZfdHJhbXBvbGluZV91cGRhdGUoc3RydWN0IGJwZl90cmFtcG9saW5lICp0ciwgYm9vbCBsb2NrX2RpcmVjdF9tdXRleCxcbiBcdFx0XHRcdCBjb25zdCBzdHJ1Y3QgYnBmX3RyYW1wb2xpbmVfb3BzICpvcHMsIHZvaWQgKmRhdGEpXG4ge1xuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuaW5kZXggNTJiZTBhMTE4Y2NlMDcuLjY2ZDhkOWVhZWMwNWY5IDEwMDY0NFxuLS0tIGEva2VybmVsL2JwZi92ZXJpZmllci5jXG4mIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbkBAIC0xOTUyMyw3ICYjNDM7MTk1MjMsNyBAQCBzdGF0aWMgaW50IGNoZWNrX2F0dGFjaF9idGZfaWQoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcbiBcdFx0cmV0dXJuIC1FTk9NRU07XG4gXG4gXHRpZiAodGd0X3Byb2cgXHUwMDI2XHUwMDI2IHRndF9wcm9nLVx1MDAzZWF1eC1cdTAwM2V0YWlsX2NhbGxfcmVhY2hhYmxlKVxuLVx0XHR0ci1cdTAwM2VmbGFncyA9IEJQRl9UUkFNUF9GX1RBSUxfQ0FMTF9DVFg7XG4mIzQzO1x0XHRicGZfdHJhbXBvbGluZV9zZXRfZmxhZ3ModHIsIEJQRl9UUkFNUF9GX1RBSUxfQ0FMTF9DVFgpO1xuIFxuIFx0cHJvZy1cdTAwM2VhdXgtXHUwMDNlZHN0X3RyYW1wb2xpbmUgPSB0cjtcbiBcdHJldHVybiAwO1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RhaWxjYWxscy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdGFpbGNhbGxzLmNcbmluZGV4IGM2NjAzNzE2MmRhNWFlLi44NmQ4N2Q1ODE3Y2Y3MSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RhaWxjYWxscy5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90YWlsY2FsbHMuY1xuQEAgLTEzLDYgJiM0MzsxMyw4IEBAXG4gI2luY2x1ZGUgXCYjMzQ7dGFpbGNhbGxfY2dycF9zdG9yYWdlLnNrZWwuaFwmIzM0O1xuICNpbmNsdWRlIFwmIzM0O3RhaWxjYWxsX3NsZWVwYWJsZS5za2VsLmhcJiMzNDtcbiAjaW5jbHVkZSBcJiMzNDt0YWlsY2FsbF9jYWxsYmFjay5za2VsLmhcJiMzNDtcbiYjNDM7I2luY2x1ZGUgXCYjMzQ7dGFpbGNhbGxfYnBmMmJwZjIuc2tlbC5oXCYjMzQ7XG4mIzQzOyNpbmNsdWRlIFwmIzM0O3RhaWxjYWxsX2JwZjJicGZfZmV4aXQuc2tlbC5oXCYjMzQ7XG4gXG4gLyogdGVzdF90YWlsY2FsbF8xIGNoZWNrcyBiYXNpYyBmdW5jdGlvbmFsaXR5IGJ5IHBhdGNoaW5nIG11bHRpcGxlIGxvY2F0aW9uc1xuICAqIGluIGEgc2luZ2xlIHByb2dyYW0gZm9yIGEgc2luZ2xlIHRhaWwgY2FsbCBzbG90IHdpdGggbm9wLVx1MDAzZWptcCwgam1wLVx1MDAzZW5vcFxuQEAgLTE5MDcsNiAmIzQzOzE5MDksNTMgQEAgc3RhdGljIHZvaWQgdGVzdF90YWlsY2FsbF9jYWxsYmFjayh2b2lkKVxuIFx0UlVOX1RFU1RTKHRhaWxjYWxsX2NhbGxiYWNrKTtcbiB9XG4gXG4mIzQzO3N0YXRpYyB2b2lkIHRlc3RfdGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9saW5rcyh2b2lkKVxuJiM0Mzt7XG4mIzQzO1x0c3RydWN0IHRhaWxjYWxsX2JwZjJicGZfZmV4aXQgKnNrZWwxID0gTlVMTCwgKnNrZWwyID0gTlVMTDtcbiYjNDM7XHRzdHJ1Y3QgdGFpbGNhbGxfYnBmMmJwZjIgKnNrZWxfdGM7XG4mIzQzO1x0c3RydWN0IGJwZl9saW5rICpsaW5rO1xuJiM0MztcdGludCBlcnIsIHByb2dfZmQ7XG4mIzQzO1xuJiM0MztcdHNrZWxfdGMgPSB0YWlsY2FsbF9icGYyYnBmMl9fb3Blbl9hbmRfbG9hZCgpO1xuJiM0MztcdGlmICghQVNTRVJUX09LX1BUUihza2VsX3RjLCBcJiMzNDt0YWlsY2FsbF9icGYyYnBmMl9fb3Blbl9hbmRfbG9hZFwmIzM0OykpXG4mIzQzO1x0XHRyZXR1cm47XG4mIzQzO1xuJiM0MztcdHNrZWwxID0gdGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9fb3BlbigpO1xuJiM0MztcdGlmICghQVNTRVJUX09LX1BUUihza2VsMSwgXCYjMzQ7dGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9fb3BlblwmIzM0OykpXG4mIzQzO1x0XHRnb3RvIG91dDtcbiYjNDM7XG4mIzQzO1x0cHJvZ19mZCA9IGJwZl9wcm9ncmFtX19mZChza2VsX3RjLVx1MDAzZXByb2dzLmNsYXNzaWZpZXJfMCk7XG4mIzQzO1x0ZXJyID0gYnBmX3Byb2dyYW1fX3NldF9hdHRhY2hfdGFyZ2V0KHNrZWwxLVx1MDAzZXByb2dzLmZleGl0LCBwcm9nX2ZkLCBcJiMzNDtzdWJwcm9nX3RhaWxcJiMzNDspO1xuJiM0MztcdGlmICghQVNTRVJUX09LKGVyciwgXCYjMzQ7YnBmX3Byb2dyYW1fX3NldF9hdHRhY2hfdGFyZ2V0XCYjMzQ7KSlcbiYjNDM7XHRcdGdvdG8gb3V0O1xuJiM0MztcbiYjNDM7XHRlcnIgPSB0YWlsY2FsbF9icGYyYnBmX2ZleGl0X19sb2FkKHNrZWwxKTtcbiYjNDM7XHRpZiAoIUFTU0VSVF9PSyhlcnIsIFwmIzM0O3RhaWxjYWxsX2JwZjJicGZfZmV4aXRfX2xvYWRcJiMzNDspKVxuJiM0MztcdFx0Z290byBvdXQ7XG4mIzQzO1xuJiM0MztcdGxpbmsgPSBicGZfcHJvZ3JhbV9fYXR0YWNoX3RyYWNlKHNrZWwxLVx1MDAzZXByb2dzLmZleGl0KTtcbiYjNDM7XHRpZiAoIUFTU0VSVF9PS19QVFIobGluaywgXCYjMzQ7YnBmX3Byb2dyYW1fX2F0dGFjaF90cmFjZVwmIzM0OykpXG4mIzQzO1x0XHRnb3RvIG91dDtcbiYjNDM7XHRza2VsMS1cdTAwM2VsaW5rcy5mZXhpdCA9IGxpbms7XG4mIzQzO1xuJiM0MztcdHNrZWwyID0gdGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9fb3BlbigpO1xuJiM0MztcdGlmICghQVNTRVJUX09LX1BUUihza2VsMiwgXCYjMzQ7dGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9fb3BlblwmIzM0OykpXG4mIzQzO1x0XHRnb3RvIG91dDtcbiYjNDM7XG4mIzQzO1x0ZXJyID0gYnBmX3Byb2dyYW1fX3NldF9hdHRhY2hfdGFyZ2V0KHNrZWwyLVx1MDAzZXByb2dzLmZleGl0LCBwcm9nX2ZkLCBcJiMzNDtzdWJwcm9nX3RhaWxcJiMzNDspO1xuJiM0MztcdGlmICghQVNTRVJUX09LKGVyciwgXCYjMzQ7YnBmX3Byb2dyYW1fX3NldF9hdHRhY2hfdGFyZ2V0XCYjMzQ7KSlcbiYjNDM7XHRcdGdvdG8gb3V0O1xuJiM0MztcbiYjNDM7XHRlcnIgPSB0YWlsY2FsbF9icGYyYnBmX2ZleGl0X19sb2FkKHNrZWwyKTtcbiYjNDM7XHRpZiAoIUFTU0VSVF9PSyhlcnIsIFwmIzM0O3RhaWxjYWxsX2JwZjJicGZfZmV4aXRfX2xvYWRcJiMzNDspKVxuJiM0MztcdFx0Z290byBvdXQ7XG4mIzQzO1xuJiM0MztvdXQ6XG4mIzQzO1x0dGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9fZGVzdHJveShza2VsMSk7XG4mIzQzO1x0dGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9fZGVzdHJveShza2VsMik7XG4mIzQzO1x0dGFpbGNhbGxfYnBmMmJwZjJfX2Rlc3Ryb3koc2tlbF90Yyk7XG4mIzQzO31cbiYjNDM7XG4gdm9pZCB0ZXN0X3RhaWxjYWxscyh2b2lkKVxuIHtcbiBcdGlmICh0ZXN0X19zdGFydF9zdWJ0ZXN0KFwmIzM0O3RhaWxjYWxsXzFcJiMzNDspKVxuQEAgLTE5NzQsNCAmIzQzOzIwMjMsNiBAQCB2b2lkIHRlc3RfdGFpbGNhbGxzKHZvaWQpXG4gXHRpZiAodGVzdF9fc3RhcnRfc3VidGVzdChcJiMzNDt0YWlsY2FsbF9jZ3JwX3N0b3JhZ2Vfbm9fc3RvcmFnZV9icmlkZ2VcJiMzNDspKVxuIFx0XHR0ZXN0X3RhaWxjYWxsX2NncnBfc3RvcmFnZV9ub19zdG9yYWdlX2JyaWRnZSgpO1xuIFx0dGVzdF90YWlsY2FsbF9jYWxsYmFjaygpO1xuJiM0MztcdGlmICh0ZXN0X19zdGFydF9zdWJ0ZXN0KFwmIzM0O3RhaWxjYWxsX2JwZjJicGZfZmV4aXRfbGlua3NcJiMzNDspKVxuJiM0MztcdFx0dGVzdF90YWlsY2FsbF9icGYyYnBmX2ZleGl0X2xpbmtzKCk7XG4gfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDA5OjA2PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfU1lTQ0FMTCYjMzQ7LAogICAgJiMzNDtCUEZfSklUJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YnBmX3RyYW1wb2xpbmVfc2V0X2ZsYWdzJiMzNDssCiAgICAmIzM0O2NoZWNrX2F0dGFjaF9idGZfaWQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSByYWNlIGNvbmRpdGlvbiBhbmQgaW5jb3JyZWN0IGZsYWcgYXNzaWdubWVudCBpbiBCUEYgdHJhbXBvbGluZSBsb2dpYyBieSBpbnRyb2R1Y2luZyBhIGxvY2tlZCBiaXR3aXNlIE9SIHVwZGF0ZSBmb3IgdHJhbXBvbGluZSBmbGFncy4gVGhpcyBpcyBjb3JlIEJQRiBmdW5jdGlvbmFsaXR5IHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgOWFlYzgwYjc2NjYzYzVkNzA2NDUwNzlmYjMwOWQwNDhhMjJlNzM0NwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgSnVsIDIyIDA5OjA2OjU1IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9icGYuaCBiL2luY2x1ZGUvbGludXgvYnBmLmgKaW5kZXggZDk1NDIxMjdkZmRmYzAuLmZjODRmMzk5NjdhZTBlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2JwZi5oCiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvYnBmLmgKQEAgLTE1MjMsNiAmIzQzOzE1MjMsNyBAQCBpbnQgYnBmX3RyYW1wb2xpbmVfbXVsdGlfYXR0YWNoKHN0cnVjdCBicGZfcHJvZyAqcHJvZywgdTMyICppZHMsCiAJCQkJc3RydWN0IGJwZl90cmFjaW5nX211bHRpX2xpbmsgKmxpbmspOwogaW50IGJwZl90cmFtcG9saW5lX211bHRpX2RldGFjaChzdHJ1Y3QgYnBmX3Byb2cgKnByb2csCiAJCQkJc3RydWN0IGJwZl90cmFjaW5nX211bHRpX2xpbmsgKmxpbmspOwomIzQzO3ZvaWQgYnBmX3RyYW1wb2xpbmVfc2V0X2ZsYWdzKHN0cnVjdCBicGZfdHJhbXBvbGluZSAqdHIsIHUzMiBmbGFncyk7CiAKIC8qCiAgKiBXaGVuIHRoZSBhcmNoaXRlY3R1cmUgc3VwcG9ydHMgU1RBVElDX0NBTEwgcmVwbGFjZSB0aGUgYnBmX2Rpc3BhdGNoZXJfZm4KQEAgLTE2NDYsNiAmIzQzOzE2NDcsNyBAQCBzdGF0aWMgaW5saW5lIGludCBicGZfdHJhbXBvbGluZV9tdWx0aV9kZXRhY2goc3RydWN0IGJwZl9wcm9nICpwcm9nLAogewogCXJldHVybiAtRU5PVFNVUFA7CiB9CiYjNDM7c3RhdGljIGlubGluZSB2b2lkIGJwZl90cmFtcG9saW5lX3NldF9mbGFncyhzdHJ1Y3QgYnBmX3RyYW1wb2xpbmUgKnRyLCB1MzIgZmxhZ3MpIHt9CiAjZW5kaWYKIAogc3RydWN0IGJwZl9mdW5jX2luZm9fYXV4IHsKZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdHJhbXBvbGluZS5jIGIva2VybmVsL2JwZi90cmFtcG9saW5lLmMKaW5kZXggNmVhZGY2NGY3ZWM5MGYuLjEyOWQwN2RiMTE3ZWM3IDEwMDY0NAotLS0gYS9rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYwomIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYwpAQCAtNjcwLDYgJiM0Mzs2NzAsMTMgQEAgc3RhdGljIHN0cnVjdCBicGZfdHJhbXBfaW1hZ2UgKmJwZl90cmFtcF9pbWFnZV9hbGxvYyh1NjQga2V5LCBpbnQgc2l6ZSkKIAlyZXR1cm4gRVJSX1BUUihlcnIpOwogfQogCiYjNDM7dm9pZCBicGZfdHJhbXBvbGluZV9zZXRfZmxhZ3Moc3RydWN0IGJwZl90cmFtcG9saW5lICp0ciwgdTMyIGZsYWdzKQomIzQzO3sKJiM0MzsJdHJhbXBvbGluZV9sb2NrKHRyKTsKJiM0MzsJdHItJmd0O2ZsYWdzIHw9IGZsYWdzOwomIzQzOwl0cmFtcG9saW5lX3VubG9jayh0cik7CiYjNDM7fQomIzQzOwogc3RhdGljIGludCBicGZfdHJhbXBvbGluZV91cGRhdGUoc3RydWN0IGJwZl90cmFtcG9saW5lICp0ciwgYm9vbCBsb2NrX2RpcmVjdF9tdXRleCwKIAkJCQkgY29uc3Qgc3RydWN0IGJwZl90cmFtcG9saW5lX29wcyAqb3BzLCB2b2lkICpkYXRhKQogewpkaWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92ZXJpZmllci5jCmluZGV4IDUyYmUwYTExOGNjZTA3Li42NmQ4ZDllYWVjMDVmOSAxMDA2NDQKLS0tIGEva2VybmVsL2JwZi92ZXJpZmllci5jCiYjNDM7JiM0MzsmIzQzOyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuYwpAQCAtMTk1MjMsNyAmIzQzOzE5NTIzLDcgQEAgc3RhdGljIGludCBjaGVja19hdHRhY2hfYnRmX2lkKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYpCiAJCXJldHVybiAtRU5PTUVNOwogCiAJaWYgKHRndF9wcm9nICZhbXA7JmFtcDsgdGd0X3Byb2ctJmd0O2F1eC0mZ3Q7dGFpbF9jYWxsX3JlYWNoYWJsZSkKLQkJdHItJmd0O2ZsYWdzID0gQlBGX1RSQU1QX0ZfVEFJTF9DQUxMX0NUWDsKJiM0MzsJCWJwZl90cmFtcG9saW5lX3NldF9mbGFncyh0ciwgQlBGX1RSQU1QX0ZfVEFJTF9DQUxMX0NUWCk7CiAKIAlwcm9nLSZndDthdXgtJmd0O2RzdF90cmFtcG9saW5lID0gdHI7CiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90YWlsY2FsbHMuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RhaWxjYWxscy5jCmluZGV4IGM2NjAzNzE2MmRhNWFlLi44NmQ4N2Q1ODE3Y2Y3MSAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdGFpbGNhbGxzLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdGFpbGNhbGxzLmMKQEAgLTEzLDYgJiM0MzsxMyw4IEBACiAjaW5jbHVkZSAmIzM0O3RhaWxjYWxsX2NncnBfc3RvcmFnZS5za2VsLmgmIzM0OwogI2luY2x1ZGUgJiMzNDt0YWlsY2FsbF9zbGVlcGFibGUuc2tlbC5oJiMzNDsKICNpbmNsdWRlICYjMzQ7dGFpbGNhbGxfY2FsbGJhY2suc2tlbC5oJiMzNDsKJiM0MzsjaW5jbHVkZSAmIzM0O3RhaWxjYWxsX2JwZjJicGYyLnNrZWwuaCYjMzQ7CiYjNDM7I2luY2x1ZGUgJiMzNDt0YWlsY2FsbF9icGYyYnBmX2ZleGl0LnNrZWwuaCYjMzQ7CiAKIC8qIHRlc3RfdGFpbGNhbGxfMSBjaGVja3MgYmFzaWMgZnVuY3Rpb25hbGl0eSBieSBwYXRjaGluZyBtdWx0aXBsZSBsb2NhdGlvbnMKICAqIGluIGEgc2luZ2xlIHByb2dyYW0gZm9yIGEgc2luZ2xlIHRhaWwgY2FsbCBzbG90IHdpdGggbm9wLSZndDtqbXAsIGptcC0mZ3Q7bm9wCkBAIC0xOTA3LDYgJiM0MzsxOTA5LDUzIEBAIHN0YXRpYyB2b2lkIHRlc3RfdGFpbGNhbGxfY2FsbGJhY2sodm9pZCkKIAlSVU5fVEVTVFModGFpbGNhbGxfY2FsbGJhY2spOwogfQogCiYjNDM7c3RhdGljIHZvaWQgdGVzdF90YWlsY2FsbF9icGYyYnBmX2ZleGl0X2xpbmtzKHZvaWQpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgdGFpbGNhbGxfYnBmMmJwZl9mZXhpdCAqc2tlbDEgPSBOVUxMLCAqc2tlbDIgPSBOVUxMOwomIzQzOwlzdHJ1Y3QgdGFpbGNhbGxfYnBmMmJwZjIgKnNrZWxfdGM7CiYjNDM7CXN0cnVjdCBicGZfbGluayAqbGluazsKJiM0MzsJaW50IGVyciwgcHJvZ19mZDsKJiM0MzsKJiM0MzsJc2tlbF90YyA9IHRhaWxjYWxsX2JwZjJicGYyX19vcGVuX2FuZF9sb2FkKCk7CiYjNDM7CWlmICghQVNTRVJUX09LX1BUUihza2VsX3RjLCAmIzM0O3RhaWxjYWxsX2JwZjJicGYyX19vcGVuX2FuZF9sb2FkJiMzNDspKQomIzQzOwkJcmV0dXJuOwomIzQzOwomIzQzOwlza2VsMSA9IHRhaWxjYWxsX2JwZjJicGZfZmV4aXRfX29wZW4oKTsKJiM0MzsJaWYgKCFBU1NFUlRfT0tfUFRSKHNrZWwxLCAmIzM0O3RhaWxjYWxsX2JwZjJicGZfZmV4aXRfX29wZW4mIzM0OykpCiYjNDM7CQlnb3RvIG91dDsKJiM0MzsKJiM0MzsJcHJvZ19mZCA9IGJwZl9wcm9ncmFtX19mZChza2VsX3RjLSZndDtwcm9ncy5jbGFzc2lmaWVyXzApOwomIzQzOwllcnIgPSBicGZfcHJvZ3JhbV9fc2V0X2F0dGFjaF90YXJnZXQoc2tlbDEtJmd0O3Byb2dzLmZleGl0LCBwcm9nX2ZkLCAmIzM0O3N1YnByb2dfdGFpbCYjMzQ7KTsKJiM0MzsJaWYgKCFBU1NFUlRfT0soZXJyLCAmIzM0O2JwZl9wcm9ncmFtX19zZXRfYXR0YWNoX3RhcmdldCYjMzQ7KSkKJiM0MzsJCWdvdG8gb3V0OwomIzQzOwomIzQzOwllcnIgPSB0YWlsY2FsbF9icGYyYnBmX2ZleGl0X19sb2FkKHNrZWwxKTsKJiM0MzsJaWYgKCFBU1NFUlRfT0soZXJyLCAmIzM0O3RhaWxjYWxsX2JwZjJicGZfZmV4aXRfX2xvYWQmIzM0OykpCiYjNDM7CQlnb3RvIG91dDsKJiM0MzsKJiM0MzsJbGluayA9IGJwZl9wcm9ncmFtX19hdHRhY2hfdHJhY2Uoc2tlbDEtJmd0O3Byb2dzLmZleGl0KTsKJiM0MzsJaWYgKCFBU1NFUlRfT0tfUFRSKGxpbmssICYjMzQ7YnBmX3Byb2dyYW1fX2F0dGFjaF90cmFjZSYjMzQ7KSkKJiM0MzsJCWdvdG8gb3V0OwomIzQzOwlza2VsMS0mZ3Q7bGlua3MuZmV4aXQgPSBsaW5rOwomIzQzOwomIzQzOwlza2VsMiA9IHRhaWxjYWxsX2JwZjJicGZfZmV4aXRfX29wZW4oKTsKJiM0MzsJaWYgKCFBU1NFUlRfT0tfUFRSKHNrZWwyLCAmIzM0O3RhaWxjYWxsX2JwZjJicGZfZmV4aXRfX29wZW4mIzM0OykpCiYjNDM7CQlnb3RvIG91dDsKJiM0MzsKJiM0MzsJZXJyID0gYnBmX3Byb2dyYW1fX3NldF9hdHRhY2hfdGFyZ2V0KHNrZWwyLSZndDtwcm9ncy5mZXhpdCwgcHJvZ19mZCwgJiMzNDtzdWJwcm9nX3RhaWwmIzM0Oyk7CiYjNDM7CWlmICghQVNTRVJUX09LKGVyciwgJiMzNDticGZfcHJvZ3JhbV9fc2V0X2F0dGFjaF90YXJnZXQmIzM0OykpCiYjNDM7CQlnb3RvIG91dDsKJiM0MzsKJiM0MzsJZXJyID0gdGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9fbG9hZChza2VsMik7CiYjNDM7CWlmICghQVNTRVJUX09LKGVyciwgJiMzNDt0YWlsY2FsbF9icGYyYnBmX2ZleGl0X19sb2FkJiMzNDspKQomIzQzOwkJZ290byBvdXQ7CiYjNDM7CiYjNDM7b3V0OgomIzQzOwl0YWlsY2FsbF9icGYyYnBmX2ZleGl0X19kZXN0cm95KHNrZWwxKTsKJiM0MzsJdGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9fZGVzdHJveShza2VsMik7CiYjNDM7CXRhaWxjYWxsX2JwZjJicGYyX19kZXN0cm95KHNrZWxfdGMpOwomIzQzO30KJiM0MzsKIHZvaWQgdGVzdF90YWlsY2FsbHModm9pZCkKIHsKIAlpZiAodGVzdF9fc3RhcnRfc3VidGVzdCgmIzM0O3RhaWxjYWxsXzEmIzM0OykpCkBAIC0xOTc0LDQgJiM0MzsyMDIzLDYgQEAgdm9pZCB0ZXN0X3RhaWxjYWxscyh2b2lkKQogCWlmICh0ZXN0X19zdGFydF9zdWJ0ZXN0KCYjMzQ7dGFpbGNhbGxfY2dycF9zdG9yYWdlX25vX3N0b3JhZ2VfYnJpZGdlJiMzNDspKQogCQl0ZXN0X3RhaWxjYWxsX2NncnBfc3RvcmFnZV9ub19zdG9yYWdlX2JyaWRnZSgpOwogCXRlc3RfdGFpbGNhbGxfY2FsbGJhY2soKTsKJiM0MzsJaWYgKHRlc3RfX3N0YXJ0X3N1YnRlc3QoJiMzNDt0YWlsY2FsbF9icGYyYnBmX2ZleGl0X2xpbmtzJiMzNDspKQomIzQzOwkJdGVzdF90YWlsY2FsbF9icGYyYnBmX2ZleGl0X2xpbmtzKCk7CiB9CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDA5OjA2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM2NTEKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiA0NDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgQlBGIFRyYW1wb2xpbmUgRmxhZyBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IGNoYW5nZXMgaG93IEJQRiB0cmFtcG9saW5lIGZsYWdzIGFyZSBzZXQuIFNwZWNpZmljYWxseSwgaXQgaW52b2x2ZXMgdGhlIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgIGFuZCBga2VybmVsL2JwZi90cmFtcG9saW5lLmNgIGZpbGVzLiBUaGUgY29yZSBvZiB0aGUgY2hhbmdlIHNlZW1zIHRvIGJlIGluIGhvdyB0aGUgYHRyLSZndDtmbGFnc2AgZmllbGQgaXMgbW9kaWZpZWQuIEluaXRpYWxseSwgaXQgd2FzIGEgZGlyZWN0IGFzc2lnbm1lbnQ6IGB0ci0mZ3Q7ZmxhZ3MgPSBCUEZfVFJBTVBfRl9UQUlMX0NBTExfQ1RYO2AuIE5vdywgdGhleSYjMzk7dmUgaW1wbGVtZW50ZWQgYSBmdW5jdGlvbiBgYnBmX3RyYW1wb2xpbmVfc2V0X2ZsYWdzYCwgd2hpY2ggdXNlcyBhIGxvY2sgYW5kIGEgYml0d2lzZSBPUiBvcGVyYXRpb246IGB0ci0mZ3Q7ZmxhZ3MgfD0gZmxhZ3M7YC4gVGhpcyBpcyBhIHByZXR0eSBjbGVhciBpbmRpY2F0aW9uIG9mIGFkZHJlc3NpbmcgYSBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb24gb3IgYSBzaW1wbGUgbG9naWNhbCBlcnJvciBpbiBob3cgdGhlIGZsYWdzIHdlcmUgYmVpbmcgc2V0LiBUaGUgb2xkIGNvZGUgd2FzIGVmZmVjdGl2ZWx5IG92ZXJ3cml0aW5nIGV4aXN0aW5nIGZsYWdzLCB3aGVyZWFzIHRoaXMgbmV3IGFwcHJvYWNoLCBieSB1c2luZyBhIGxvY2sgYW5kIGFuIE9SIG9wZXJhdGlvbiwgaXMgc2FmZXIgYmVjYXVzZSBpdCBwcm9wZXJseSBzZXRzIHRoZSBzcGVjaWZpZWQgZmxhZyB3aGlsZSBwcmVzZXJ2aW5nIG90aGVyIHBvdGVudGlhbGx5IHNldCBmbGFncy4KCkkgY2FuIGltbWVkaWF0ZWx5IHNlZSB0aGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UuIE15IGZpcnN0IHRob3VnaHQgaXMgdG8gdmVyaWZ5IHRoZSBjaGFuZ2UsIHdoaWNoIEkgY2FuIGRvIHdpdGhvdXQgbG9va2luZyBhdCB0aGUgd2hvbGUgYGdyZXBwZXJgIG91dHB1dC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzIGNoYW5nZSBhbmQgY29uc2lkZXIgZnV6emluZy4gR2l2ZW4gdGhhdCB0aGlzIHBhdGNoIHRvdWNoZXMgY29yZSBCUEYgbG9naWMsIGl0JiMzOTtzIGRlZmluaXRlbHkgd29ydGggZXhwbG9yaW5nIGZ1enppbmcgdGhpcyBhcmVhLgoKTm93LCBsZXQmIzM5O3Mgc2VlIHdoaWNoIGNvbmZpZ3MgZW5hYmxlIHRoaXMgZmVhdHVyZS4gYENPTkZJR19CUEZfU1lTQ0FMTGAgaXMgYSBnaXZlbiwgdGhhdCYjMzk7cyBhbG1vc3QgYWx3YXlzIGEgcHJlcmVxdWlzaXRlIGZvciBCUEYtcmVsYXRlZCBmdW5jdGlvbmFsaXR5LiBJJiMzOTtsbCBuZWVkIHRvIGRvdWJsZSBjaGVjayBmb3IgYW55IG90aGVyIHJlbGV2YW50IGNvbmZpZyBvcHRpb25zLiBUbyBiZSB0aG9yb3VnaCwgSSYjMzk7bGwgc2VhcmNoIGZvciBgY2hlY2tfYXR0YWNoX2J0Zl9pZGAgaW4gYGtlcm5lbC9icGYvdmVyaWZpZXIuY2AgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgcmVsYXRlZCBjaGFuZ2VzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDA5OjA3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NoZWNrX2F0dGFjaF9idGZfaWQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtrZXJuZWwvYnBmL3ZlcmlmaWVyLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7a2VybmVsL2JwZi92ZXJpZmllci5jPTE5NDA1PXN0YXRpYyBib29sIGNhbl9iZV9zbGVlcGFibGUoc3RydWN0IGJwZl9wcm9nICpwcm9nKVxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xOTQzMS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxOTQzMjpzdGF0aWMgaW50IGNoZWNrX2F0dGFjaF9idGZfaWQoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xOTQzMy17XG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTE5NTMxLVxua2VybmVsL2JwZi92ZXJpZmllci5jOjE5NTMyOmludCBicGZfY2hlY2tfYXR0YWNoX2J0Zl9pZF9tdWx0aShzdHJ1Y3QgYnRmICpidGYsIHN0cnVjdCBicGZfcHJvZyAqcHJvZywgdTMyIGJ0Zl9pZCxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xOTUzMy1cdFx0XHRcdCAgc3RydWN0IGJwZl9hdHRhY2hfdGFyZ2V0X2luZm8gKnRndF9pbmZvKVxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0yMDA1Nz1pbnQgYnBmX2NoZWNrKHN0cnVjdCBicGZfcHJvZyAqKnByb2csIHVuaW9uIGJwZl9hdHRyICphdHRyLCBicGZwdHJfdCB1YXR0cixcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMjAyMDItXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MjAyMDM6XHRyZXQgPSBjaGVja19hdHRhY2hfYnRmX2lkKGVudik7XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMjAyMDQtXHRpZiAocmV0KVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDA5OjA3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ4NDMKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAyMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoZSBga2VybmVsL2JwZi90cmFtcG9saW5lLmNgIGNvbmZpZ3VyYXRpb246CgoqKkFuYWx5emluZyBLZXJuZWwgQlBGIFRyYW1wb2xpbmUgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGRpdmluZyBpbnRvIGBrZXJuZWwvYnBmL3RyYW1wb2xpbmUuY2AuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O1doYXQga2luZCBvZiBjb25maWd1cmF0aW9uIGlzICphYnNvbHV0ZWx5KiBuZWVkZWQgdG8gbWFrZSB0aGlzIHRoaW5nIHdvcms/JiMzNDsgS25vd2luZyB0aGUgQlBGIGxhbmRzY2FwZSwgSSBuZWVkIHRvIGNvbnNpZGVyIHZhcmlvdXMgbGV2ZWxzIG9mIGRlcGVuZGVuY2llcy4gSSBuZWVkIHRvIHRoaW5rIGFib3V0IHRoZSBjb3JlIEJQRiBpbmZyYXN0cnVjdHVyZSBpdHNlbGYg4oCTIHRoZSBvYnZpb3VzIHN0dWZmIGxpa2Ugd2hldGhlciBCUEYgaXMgZXZlbiBlbmFibGVkIChgQ09ORklHX0JQRmApLCBhbmQgcG90ZW50aWFsbHkgbW9yZSBncmFudWxhciBmZWF0dXJlIGZsYWdzIGlmIHRoaXMgdHJhbXBvbGluZSBpbXBsZW1lbnRhdGlvbiB1c2VzIHNwZWNpZmljIEJQRiBoZWxwZXIgY2FsbHMgb3IgZmVhdHVyZXMsIHdoaWNoIEkmIzM5O2xsIGhhdmUgdG8gaW52ZXN0aWdhdGUuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIGJ1aWxkIG9wdGlvbnMuIFRoZW4sIEkgbmVlZCB0byBzdGFydCBkaWdnaW5nIHRocm91Z2ggdGhlIGNvZGUsIGxvb2tpbmcgZm9yIGAjaWZkZWZgIHN0YXRlbWVudHMgYW5kIG90aGVyIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGRpcmVjdGl2ZXMuIEFyZSB0aGVyZSBhbnkgaGFyZHdhcmUtc3BlY2lmaWMgZGVwZW5kZW5jaWVzLCBwZXJoYXBzIHJlbGF0ZWQgdG8gdGhlIGFyY2hpdGVjdHVyZSYjMzk7cyBhYmlsaXR5IHRvIHN1cHBvcnQgY2VydGFpbiBmZWF0dXJlcyBuZWVkZWQgZm9yIGVmZmljaWVudCB0cmFtcG9saW5lIG9wZXJhdGlvbiAobGlrZSBpbnN0cnVtZW50YXRpb24gY2FwYWJpbGl0aWVzKT8gT3IgYXJlIHRoZXJlIGFueSBzZWN1cml0eS1yZWxhdGVkIHNldHRpbmdzIHRoYXQgbWlnaHQgYmUgY3J1Y2lhbCwgbGlrZSB0aGUgdXNlIG9mIGEgbW9yZSBzZWN1cmUgQlBGIHZlcmlmaWVyIG1vZGU/IEkmIzM5O2xsIHByb2JhYmx5IGFsc28gbmVlZCB0byBjb25zaWRlciBhbnkgZGVwZW5kZW5jaWVzIG9uIHNwZWNpZmljIGtlcm5lbCB2ZXJzaW9ucyBvciBmZWF0dXJlcywgZXNwZWNpYWxseSBpZiB0aGUgdHJhbXBvbGluZSBpbXBsZW1lbnRhdGlvbiByZWxpZXMgb24gbmV3ZXIgQVBJcyBvciBkYXRhIHN0cnVjdHVyZXMuIEkmIzM5O2xsIGhhdmUgdG8gcGF5IGNsb3NlIGF0dGVudGlvbiB0byB0aGUgaW5jbHVkZSBmaWxlcyB0byBzZWUgaWYgYW55IGFyZSBjb25kaXRpb25hbGx5IGluY2x1ZGVkLiBUaGUga2V5IGlzIHRvIG1hcCBhbnkgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gc3RhdGVtZW50cyB0byB0aGUgcmVxdWlyZWQgY29uZmlnIG9wdGlvbnMuIE15IGdvYWwgaXMgYSBjb21wbGV0ZSBsaXN0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDA5OjA3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JwZl90cmFtcG9saW5lX3NldF9mbGFncyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2tlcm5lbC9icGYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2tlcm5lbC9icGYvdHJhbXBvbGluZS5jPTYzMT1zdGF0aWMgc3RydWN0IGJwZl90cmFtcF9pbWFnZSAqYnBmX3RyYW1wX2ltYWdlX2FsbG9jKHU2NCBrZXksIGludCBzaXplKVxuLS1cbmtlcm5lbC9icGYvdHJhbXBvbGluZS5jLTY3Mi1cbmtlcm5lbC9icGYvdHJhbXBvbGluZS5jOjY3Mzp2b2lkIGJwZl90cmFtcG9saW5lX3NldF9mbGFncyhzdHJ1Y3QgYnBmX3RyYW1wb2xpbmUgKnRyLCB1MzIgZmxhZ3MpXG5rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYy02NzQte1xuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xOTQzMj1zdGF0aWMgaW50IGNoZWNrX2F0dGFjaF9idGZfaWQoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTk1MjUtXHRpZiAodGd0X3Byb2cgXHUwMDI2XHUwMDI2IHRndF9wcm9nLVx1MDAzZWF1eC1cdTAwM2V0YWlsX2NhbGxfcmVhY2hhYmxlKVxua2VybmVsL2JwZi92ZXJpZmllci5jOjE5NTI2Olx0XHRicGZfdHJhbXBvbGluZV9zZXRfZmxhZ3ModHIsIEJQRl9UUkFNUF9GX1RBSUxfQ0FMTF9DVFgpO1xua2VybmVsL2JwZi92ZXJpZmllci5jLTE5NTI3LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDA5OjA3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU0NzEKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiA0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBzdW1tYXJ5LCBhcyB0aGUgdGhvdWdodCBwcm9jZXNzIHVuZm9sZHM6CgoqKkNoZWNraW5nIEJQRiBUcmFtcG9saW5lIENvbXBpbGF0aW9uKioKCk9rYXksIHNvIGBrZXJuZWwvYnBmL3RyYW1wb2xpbmUuY2AgaXMgZGVmaW5pdGVseSBiZWluZyBjb21waWxlZCAqY29uZGl0aW9uYWxseSogYmFzZWQgb24gdGhlIGBDT05GSUdfQlBGX1NZU0NBTExgIEtjb25maWcgb3B0aW9uLiBCdXQsIHRoYXQmIzM5O3Mgbm90IHF1aXRlIGVub3VnaDsgSSB3YW50IHRvIGJlICpjZXJ0YWluKiBhYm91dCB0aGUgYnVpbGQgcHJvY2Vzcy4gSSBuZWVkIHRvIGNvbmZpcm0gdGhhdCB0aGlzIGlzIGJlaW5nIGhhbmRsZWQgY29ycmVjdGx5IGluIHRoZSBgTWFrZWZpbGVgLiBTcGVjaWZpY2FsbHksIEkmIzM5O2xsIGRyaWxsIGRvd24gYW5kIGNoZWNrIHRoZSBga2VybmVsL2JwZi9NYWtlZmlsZWAgZmlsZSB0byBzZWUgaG93IGl0JiMzOTtzIGRlYWxpbmcgd2l0aCB0aGF0IGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uLiBHb3R0YSBtYWtlIHN1cmUgdGhlcmUgYXJlbiYjMzk7dCBhbnkgc25lYWt5IGludGVyYWN0aW9ucyBvciB1bmludGVuZGVkIHNpZGUgZWZmZWN0cyB0aGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwOTowNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt0cmFtcG9saW5lLm8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtrZXJuZWwvYnBmL01ha2VmaWxlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2tlcm5lbC9icGYvTWFrZWZpbGU9MTY9b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0gZGlzYXNtLm8gbXByb2cub1xua2VybmVsL2JwZi9NYWtlZmlsZToxNzpvYmotJChDT05GSUdfQlBGX0pJVCkgJiM0Mzs9IHRyYW1wb2xpbmUub1xua2VybmVsL2JwZi9NYWtlZmlsZS0xOC1vYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBidGYubyBtZW1hbGxvYy5vIHJxc3BpbmxvY2subyBzdHJlYW0ub1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDA5OjA3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU3OTUKCQkJCQkJCW91dHB1dDogMjkKCQkJCQkJCXRob3VnaHRzOiA0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKktlcm5lbCBDb25maWd1cmF0aW9uIERlcGVuZGVuY2llcyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlIGJ1aWxkIHByb2Nlc3MgYW5kIGl0JiMzOTtzIGltbWVkaWF0ZWx5IGNsZWFyIHRoYXQgYHRyYW1wb2xpbmUub2AgbmVlZHMgYENPTkZJR19CUEZfSklUYC4gVGhhdCBtYWtlcyBwZXJmZWN0IHNlbnNlOyB0aGUgdHJhbXBvbGluZSBjb2RlIGxpa2VseSByZWxpZXMgb24gdGhlIEpJVCBjb21waWxlciBmb3IgQlBGIHRvIGZ1bmN0aW9uIGVmZmljaWVudGx5LCBwcm9iYWJseSBmb3Igb24tdGhlLWZseSBjb2RlIGdlbmVyYXRpb24uCgpUaGVuLCB0aGVyZSYjMzk7cyBgdmVyaWZpZXIub2AuIFRoZSBkZXBlbmRlbmN5IG9uIGBDT05GSUdfQlBGX1NZU0NBTExgIGZvciB0aGF0IGlzIGFsc28gaW50dWl0aXZlLiBUaGUgdmVyaWZpZXIsIG9idmlvdXNseSwgbmVlZHMgZGlyZWN0IGFjY2VzcyB0byB0aGUgQlBGIHN5c3RlbSBjYWxscyB0byBhbmFseXplIGFuZCBpbnRlcmFjdCB3aXRoIHRoZSBCUEYgcHJvZ3JhbXMgdGhhdCBpdCBpcyB0YXNrZWQgd2l0aCBldmFsdWF0aW5nLiBXaXRob3V0IHRob3NlIHN5c3RlbSBjYWxscyBhdmFpbGFibGUsIHRoZSB2ZXJpZmljYXRpb24gcHJvY2VzcyBjYW4mIzM5O3QgZXhlY3V0ZSwgYW5kIHRoZSBzeXN0ZW0gaXMgbGlrZWx5IHByZXZlbnRpbmcgdGhlIGZlYXR1cmUgZnJvbSBiZWluZyB1c2VkLiBJIHdpbGwgaW52ZXN0aWdhdGUgdGhvc2UgZGVwZW5kZW5jaWVzIGZ1cnRoZXIsIHRvIGV4cGxvcmUgaWYgdGhlcmUgYXJlIGFueSBvdGhlciBjb25maWd1cmF0aW9uIGlzc3Vlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMDk6MDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dmVyaWZpZXIubyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2tlcm5lbC9icGYvTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7a2VybmVsL2JwZi9NYWtlZmlsZT03PUNGTEFHU19jb3JlLm8gJiM0Mzs9IC1Xbm8tb3ZlcnJpZGUtaW5pdCAkKGNmbGFncy1ub2djc2UteXkpXG5rZXJuZWwvYnBmL01ha2VmaWxlLTgtXG5rZXJuZWwvYnBmL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0gc3lzY2FsbC5vIHZlcmlmaWVyLm8gaW5vZGUubyBoZWxwZXJzLm8gdG51bS5vIGNudW0ubyBsb2cubyB0b2tlbi5vIGxpdmVuZXNzLm8gY29uc3RfZm9sZC5vXG5rZXJuZWwvYnBmL01ha2VmaWxlLTEwLW9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGJwZl9pdGVyLm8gbWFwX2l0ZXIubyB0YXNrX2l0ZXIubyBwcm9nX2l0ZXIubyBsaW5rX2l0ZXIub1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwOTowNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2MjIyCgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMTIxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGJyZWFrZG93biBvZiB3aGF0IHdlJiMzOTtyZSBsb29raW5nIGF0LCBmcm9tIG15IHBlcnNwZWN0aXZlLgoKKipGb2N1c2luZyBGdXp6aW5nIEVmZm9ydHMqKgoKQWxyaWdodCwgc28gd2UmIzM5O3JlIGRpdmluZyBpbnRvIGZ1enppbmcgQlBGIGNvZGUsIGFuZCBpdCBsb29rcyBsaWtlIHdlIG5lZWQgdG8gemVybyBpbiBvbiBzcGVjaWZpYyBhcmVhcy4gVGhlIGNvcmUgaWRlYSBpcyB0byB0YXJnZXQgdGhlIHJpZ2h0IGZ1bmN0aW9ucy4gTXkgZ3V0IHRlbGxzIG1lIHdlIG5lZWQgdG8gYmUgdmVyeSBjb25zY2lvdXMgb2YgYEJQRl9TWVNDQUxMYCBhbmQgYEJQRl9KSVRgLiBUaGV5JiMzOTtyZSBwcm9iYWJseSB3aGVyZSB0aGUgbW9zdCBpbnRlcmVzdGluZyBidWdzIHJlc2lkZSwgYW5kIHdoZXJlIHdlJiMzOTtsbCBmaW5kIHRoZSBtb3N0IGltcGFjdGZ1bCB2dWxuZXJhYmlsaXRpZXMuCgpUaGUgaW5pdGlhbCBmdW5jdGlvbiBsaXN0IHRvIGV4cGxvcmUgaW5jbHVkZXMgYGJwZl90cmFtcG9saW5lX3NldF9mbGFnc2AsIHdoaWNoIGxvb2tzIHByb21pc2luZy4gVGhlbiB0aGVyZSYjMzk7cyBgY2hlY2tfYXR0YWNoX2J0Zl9pZGAsIHdoaWNoIGNhdGNoZXMgbXkgZXllIGltbWVkaWF0ZWx5LiBJdCYjMzk7cyByZWxhdGVkIHRvIEJURiAoQlBGIFR5cGUgRm9ybWF0KSBhbmQgYXR0YWNobWVudCBwb2ludHMsIHNvIGl0JiMzOTtzIGxpa2VseSBhIGNyaXRpY2FsIGFyZWEgdG8gcHJvYmUuIEkmIzM5O20gZGlzY2FyZGluZyBgYnBmX2NoZWNrYCBhcyBhIGRpcmVjdCBmdXp6IHRhcmdldDsgaXQmIzM5O3MganVzdCBmYXIgdG9vIGJyb2FkLiBIb3dldmVyLCBJIGFtIGtlZXBpbmcgYW4gZXllIG9uIGBicGZfdHJhbXBvbGluZV91cGRhdGVgLiBJdCByZWxhdGVzIHRvIHRyYW1wb2xpbmVzLCBhbmQgdGhleSBvZnRlbiBpbnRlcmFjdCB3aXRoIG90aGVyIEJQRiBmdW5jdGlvbnMsIHNvIGl0JiMzOTtzIGEgdmFsaWQgYXJlYSB0byBjb25zaWRlci4KCk5vdywgbGV0JiMzOTtzIHRha2UgYSBjbG9zZXIgbG9vayBhdCBgY2hlY2tfYXR0YWNoX2J0Zl9pZGAuIEl0IHNlZW1zIHRvIGJlIGNhbGxlZCBmcm9tIGBicGZfY2hlY2tgLiBUaGlzIGlzIGludGVyZXN0aW5nOyB3ZSBtaWdodCBiZSBhYmxlIHRvIGZpbmQgbW9yZSBzdWJ0bGUgYnVncyBieSBmb2N1c2luZyBvbiB0aGUgaW50ZXJhY3Rpb25zIHdpdGhpbiB0aGlzIHJlbGF0aW9uc2hpcC4gVWx0aW1hdGVseSwgdGhlIHF1ZXN0aW9uIGlzLCAqd2hlcmUgY2FuIHdlIGFjaGlldmUgdGhlIGJlc3QgaW1wYWN0IHdpdGggb3VyIGZ1enplciBpbiB0aGUgc2hvcnRlc3QgYW1vdW50IG9mIHRpbWU/KgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwOTowNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjaGVja19hdHRhY2hfYnRmX2lkJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7a2VybmVsL2JwZi92ZXJpZmllci5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2tlcm5lbC9icGYvdmVyaWZpZXIuYz0xOTQwNT1zdGF0aWMgYm9vbCBjYW5fYmVfc2xlZXBhYmxlKHN0cnVjdCBicGZfcHJvZyAqcHJvZylcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTk0MzEtXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTk0MzI6c3RhdGljIGludCBjaGVja19hdHRhY2hfYnRmX2lkKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYpXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTk0MzMte1xuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xOTUzMS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxOTUzMjppbnQgYnBmX2NoZWNrX2F0dGFjaF9idGZfaWRfbXVsdGkoc3RydWN0IGJ0ZiAqYnRmLCBzdHJ1Y3QgYnBmX3Byb2cgKnByb2csIHUzMiBidGZfaWQsXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTk1MzMtXHRcdFx0XHQgIHN0cnVjdCBicGZfYXR0YWNoX3RhcmdldF9pbmZvICp0Z3RfaW5mbylcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MjAwNTc9aW50IGJwZl9jaGVjayhzdHJ1Y3QgYnBmX3Byb2cgKipwcm9nLCB1bmlvbiBicGZfYXR0ciAqYXR0ciwgYnBmcHRyX3QgdWF0dHIsXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTIwMjAyLVxua2VybmVsL2JwZi92ZXJpZmllci5jOjIwMjAzOlx0cmV0ID0gY2hlY2tfYXR0YWNoX2J0Zl9pZChlbnYpO1xua2VybmVsL2JwZi92ZXJpZmllci5jLTIwMjA0LVx0aWYgKHJldClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMDk6MDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzA1MgoJCQkJCQkJb3V0cHV0OiAxMDkKCQkJCQkJCXRob3VnaHRzOiAyNDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb24qKgoKT2theSwgc28gbG9va2luZyBhdCB0aGlzIHBhdGNoLCBgY2hlY2tfYXR0YWNoX2J0Zl9pZGAgYW5kIGBicGZfdHJhbXBvbGluZV9zZXRfZmxhZ3NgIGltbWVkaWF0ZWx5IHN0YW5kIG91dCBhcyBnb29kIGFyZWFzIHRvIHRhcmdldCBmb3IgZnV6emluZy4gVGhleSByZXByZXNlbnQga2V5IGZ1bmN0aW9ucyB3aXRoaW4gdGhlIG1vZGlmaWVkIEJQRiB0cmFtcG9saW5lIGxvZ2ljLgoKTGV0JiMzOTtzIHF1aWNrbHkgY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBvdGhlciByZWxldmFudCBjb25maWd1cmF0aW9ucyBvciBwaWVjZXMgb2YgdGhlIHB1enpsZS4gQWgsIEkgc2VlIGEgdGVzdCB3YXMgYWRkZWQ6IGB0ZXN0X3RhaWxjYWxsX2JwZjJicGZfZmV4aXRfbGlua3NgIGluIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90YWlsY2FsbHMuY2AuIFRoYXQmIzM5O3MgYSBCUEYtc3BlY2lmaWMgdGVzdCwgYW5kIGl0IGdpdmVzIHVzIHNvbWUgY29udGV4dC4KClJpZ2h0LCB0aGUgcGF0Y2ggaXRzZWxmIGlzIG1ha2luZyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gQlBGIHRyYW1wb2xpbmUgbG9naWMsIHNwZWNpZmljYWxseSBhZGRyZXNzaW5nIGFuIGlzc3VlIHdoZXJlIGB0ci0mZ3Q7ZmxhZ3NgIHdhcyBiZWluZyBvdmVyd3JpdHRlbiBpbnN0ZWFkIG9mIGJlaW5nIHVwZGF0ZWQgY29ycmVjdGx5IHdpdGggYW4gT1Igb3BlcmF0aW9uLCBhbmQgdW5kZXIgYSBsb2NrIHRvIHByZXZlbnQgYSByYWNlIGNvbmRpdGlvbi4gVGhpcyBpcyBhIGNyaXRpY2FsIGZpeCBhZmZlY3RpbmcgZnVuZGFtZW50YWwgQlBGIGJlaGF2aW9yLiBSYWNlIGNvbmRpdGlvbnMgYW5kIGluY29ycmVjdCBmbGFnIG1hbmlwdWxhdGlvbiBhcmUgdGhlIGtpbmQgb2YgYnVncyB0aGF0IHdlIHdhbnQgdG8gZXhwb3NlIHRocm91Z2ggZnV6emluZy4KCkxldCYjMzk7cyBnZXQgdGhpcyBvcmdhbml6ZWQgZm9yIGZ1enppbmcuCgpNeSBkZWNpc2lvbiB0byBmdXp6IHRoaXMgaXMgYmFzZWQgb24gdGhpcyByZWFzb25pbmc6IFRoZSBwYXRjaCBmaXhlcyBhIHJhY2UgY29uZGl0aW9uIGFuZCBpbmNvcnJlY3QgZmxhZyBhc3NpZ25tZW50IGluIEJQRiB0cmFtcG9saW5lIGxvZ2ljIGJ5IGludHJvZHVjaW5nIGEgbG9ja2VkIGJpdHdpc2UgT1IgdXBkYXRlIGZvciB0cmFtcG9saW5lIGZsYWdzLiBUaGlzIGlzIGNvcmUgQlBGIGZ1bmN0aW9uYWxpdHkgdGhhdCBzaG91bGQgYmUgZnV6emVkLgpUaGUgcmVzdWx0cyBzaG91bGQgY29udGFpbiB0aGVzZSBkZXRhaWxzOgoKV29ydGhGdXp6aW5nOiBUcnVlCkZvY3VzU3ltYm9sczogWyYjMzQ7YnBmX3RyYW1wb2xpbmVfc2V0X2ZsYWdzJiMzNDssICYjMzQ7Y2hlY2tfYXR0YWNoX2J0Zl9pZCYjMzQ7XQpFbmFibGVDb25maWdzOiBbJiMzNDtCUEZfU1lTQ0FMTCYjMzQ7LCAmIzM0O0JQRl9KSVQmIzM0O10KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMDk6MDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDssCiAgICAmIzM0O0JQRl9KSVQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticGZfdHJhbXBvbGluZV9zZXRfZmxhZ3MmIzM0OywKICAgICYjMzQ7Y2hlY2tfYXR0YWNoX2J0Zl9pZCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHJhY2UgY29uZGl0aW9uIGFuZCBpbmNvcnJlY3QgZmxhZyBhc3NpZ25tZW50IGluIEJQRiB0cmFtcG9saW5lIGxvZ2ljIGJ5IGludHJvZHVjaW5nIGEgbG9ja2VkIGJpdHdpc2UgT1IgdXBkYXRlIGZvciB0cmFtcG9saW5lIGZsYWdzLiBUaGlzIGlzIGNvcmUgQlBGIGZ1bmN0aW9uYWxpdHkgdGhhdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfU1lTQ0FMTCYjMzQ7LAogICAgJiMzNDtCUEZfSklUJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YnBmX3RyYW1wb2xpbmVfc2V0X2ZsYWdzJiMzNDssCiAgICAmIzM0O2NoZWNrX2F0dGFjaF9idGZfaWQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSByYWNlIGNvbmRpdGlvbiBhbmQgaW5jb3JyZWN0IGZsYWcgYXNzaWdubWVudCBpbiBCUEYgdHJhbXBvbGluZSBsb2dpYyBieSBpbnRyb2R1Y2luZyBhIGxvY2tlZCBiaXR3aXNlIE9SIHVwZGF0ZSBmb3IgdHJhbXBvbGluZSBmbGFncy4gVGhpcyBpcyBjb3JlIEJQRiBmdW5jdGlvbmFsaXR5IHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDA5OjA2OjU3LjY4MTg3NTE4MVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYyODk2Mzg1MjYyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9TWVNDQUxMXCIsXG4gICAgXCJCUEZfSklUXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnBmX3RyYW1wb2xpbmVfc2V0X2ZsYWdzXCIsXG4gICAgXCJjaGVja19hdHRhY2hfYnRmX2lkXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSByYWNlIGNvbmRpdGlvbiBhbmQgaW5jb3JyZWN0IGZsYWcgYXNzaWdubWVudCBpbiBCUEYgdHJhbXBvbGluZSBsb2dpYyBieSBpbnRyb2R1Y2luZyBhIGxvY2tlZCBiaXR3aXNlIE9SIHVwZGF0ZSBmb3IgdHJhbXBvbGluZSBmbGFncy4gVGhpcyBpcyBjb3JlIEJQRiBmdW5jdGlvbmFsaXR5IHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDk6MDY6NTcuNjgxODgyNTMxWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MTUwNzU3NjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA5YWVjODBiNzY2NjNjNWQ3MDY0NTA3OWZiMzA5ZDA0OGEyMmU3MzQ3XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgSnVsIDIyIDA5OjA2OjU1IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvYnBmLmggYi9pbmNsdWRlL2xpbnV4L2JwZi5oXFxuaW5kZXggZDk1NDIxMjdkZmRmYzAuLmZjODRmMzk5NjdhZTBlIDEwMDY0NFxcbi0tLSBhL2luY2x1ZGUvbGludXgvYnBmLmhcXG4rKysgYi9pbmNsdWRlL2xpbnV4L2JwZi5oXFxuQEAgLTE1MjMsNiArMTUyMyw3IEBAIGludCBicGZfdHJhbXBvbGluZV9tdWx0aV9hdHRhY2goc3RydWN0IGJwZl9wcm9nICpwcm9nLCB1MzIgKmlkcyxcXG4gXFx0XFx0XFx0XFx0c3RydWN0IGJwZl90cmFjaW5nX211bHRpX2xpbmsgKmxpbmspO1xcbiBpbnQgYnBmX3RyYW1wb2xpbmVfbXVsdGlfZGV0YWNoKHN0cnVjdCBicGZfcHJvZyAqcHJvZyxcXG4gXFx0XFx0XFx0XFx0c3RydWN0IGJwZl90cmFjaW5nX211bHRpX2xpbmsgKmxpbmspO1xcbit2b2lkIGJwZl90cmFtcG9saW5lX3NldF9mbGFncyhzdHJ1Y3QgYnBmX3RyYW1wb2xpbmUgKnRyLCB1MzIgZmxhZ3MpO1xcbiBcXG4gLypcXG4gICogV2hlbiB0aGUgYXJjaGl0ZWN0dXJlIHN1cHBvcnRzIFNUQVRJQ19DQUxMIHJlcGxhY2UgdGhlIGJwZl9kaXNwYXRjaGVyX2ZuXFxuQEAgLTE2NDYsNiArMTY0Nyw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IGJwZl90cmFtcG9saW5lX211bHRpX2RldGFjaChzdHJ1Y3QgYnBmX3Byb2cgKnByb2csXFxuIHtcXG4gXFx0cmV0dXJuIC1FTk9UU1VQUDtcXG4gfVxcbitzdGF0aWMgaW5saW5lIHZvaWQgYnBmX3RyYW1wb2xpbmVfc2V0X2ZsYWdzKHN0cnVjdCBicGZfdHJhbXBvbGluZSAqdHIsIHUzMiBmbGFncykge31cXG4gI2VuZGlmXFxuIFxcbiBzdHJ1Y3QgYnBmX2Z1bmNfaW5mb19hdXgge1xcbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYyBiL2tlcm5lbC9icGYvdHJhbXBvbGluZS5jXFxuaW5kZXggNmVhZGY2NGY3ZWM5MGYuLjEyOWQwN2RiMTE3ZWM3IDEwMDY0NFxcbi0tLSBhL2tlcm5lbC9icGYvdHJhbXBvbGluZS5jXFxuKysrIGIva2VybmVsL2JwZi90cmFtcG9saW5lLmNcXG5AQCAtNjcwLDYgKzY3MCwxMyBAQCBzdGF0aWMgc3RydWN0IGJwZl90cmFtcF9pbWFnZSAqYnBmX3RyYW1wX2ltYWdlX2FsbG9jKHU2NCBrZXksIGludCBzaXplKVxcbiBcXHRyZXR1cm4gRVJSX1BUUihlcnIpO1xcbiB9XFxuIFxcbit2b2lkIGJwZl90cmFtcG9saW5lX3NldF9mbGFncyhzdHJ1Y3QgYnBmX3RyYW1wb2xpbmUgKnRyLCB1MzIgZmxhZ3MpXFxuK3tcXG4rXFx0dHJhbXBvbGluZV9sb2NrKHRyKTtcXG4rXFx0dHItXFx1MDAzZWZsYWdzIHw9IGZsYWdzO1xcbitcXHR0cmFtcG9saW5lX3VubG9jayh0cik7XFxuK31cXG4rXFxuIHN0YXRpYyBpbnQgYnBmX3RyYW1wb2xpbmVfdXBkYXRlKHN0cnVjdCBicGZfdHJhbXBvbGluZSAqdHIsIGJvb2wgbG9ja19kaXJlY3RfbXV0ZXgsXFxuIFxcdFxcdFxcdFxcdCBjb25zdCBzdHJ1Y3QgYnBmX3RyYW1wb2xpbmVfb3BzICpvcHMsIHZvaWQgKmRhdGEpXFxuIHtcXG5kaWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92ZXJpZmllci5jXFxuaW5kZXggNTJiZTBhMTE4Y2NlMDcuLjY2ZDhkOWVhZWMwNWY5IDEwMDY0NFxcbi0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xcbisrKyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xcbkBAIC0xOTUyMyw3ICsxOTUyMyw3IEBAIHN0YXRpYyBpbnQgY2hlY2tfYXR0YWNoX2J0Zl9pZChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52KVxcbiBcXHRcXHRyZXR1cm4gLUVOT01FTTtcXG4gXFxuIFxcdGlmICh0Z3RfcHJvZyBcXHUwMDI2XFx1MDAyNiB0Z3RfcHJvZy1cXHUwMDNlYXV4LVxcdTAwM2V0YWlsX2NhbGxfcmVhY2hhYmxlKVxcbi1cXHRcXHR0ci1cXHUwMDNlZmxhZ3MgPSBCUEZfVFJBTVBfRl9UQUlMX0NBTExfQ1RYO1xcbitcXHRcXHRicGZfdHJhbXBvbGluZV9zZXRfZmxhZ3ModHIsIEJQRl9UUkFNUF9GX1RBSUxfQ0FMTF9DVFgpO1xcbiBcXG4gXFx0cHJvZy1cXHUwMDNlYXV4LVxcdTAwM2Vkc3RfdHJhbXBvbGluZSA9IHRyO1xcbiBcXHRyZXR1cm4gMDtcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdGFpbGNhbGxzLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90YWlsY2FsbHMuY1xcbmluZGV4IGM2NjAzNzE2MmRhNWFlLi44NmQ4N2Q1ODE3Y2Y3MSAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90YWlsY2FsbHMuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RhaWxjYWxscy5jXFxuQEAgLTEzLDYgKzEzLDggQEBcXG4gI2luY2x1ZGUgXFxcInRhaWxjYWxsX2NncnBfc3RvcmFnZS5za2VsLmhcXFwiXFxuICNpbmNsdWRlIFxcXCJ0YWlsY2FsbF9zbGVlcGFibGUuc2tlbC5oXFxcIlxcbiAjaW5jbHVkZSBcXFwidGFpbGNhbGxfY2FsbGJhY2suc2tlbC5oXFxcIlxcbisjaW5jbHVkZSBcXFwidGFpbGNhbGxfYnBmMmJwZjIuc2tlbC5oXFxcIlxcbisjaW5jbHVkZSBcXFwidGFpbGNhbGxfYnBmMmJwZl9mZXhpdC5za2VsLmhcXFwiXFxuIFxcbiAvKiB0ZXN0X3RhaWxjYWxsXzEgY2hlY2tzIGJhc2ljIGZ1bmN0aW9uYWxpdHkgYnkgcGF0Y2hpbmcgbXVsdGlwbGUgbG9jYXRpb25zXFxuICAqIGluIGEgc2luZ2xlIHByb2dyYW0gZm9yIGEgc2luZ2xlIHRhaWwgY2FsbCBzbG90IHdpdGggbm9wLVxcdTAwM2VqbXAsIGptcC1cXHUwMDNlbm9wXFxuQEAgLTE5MDcsNiArMTkwOSw1MyBAQCBzdGF0aWMgdm9pZCB0ZXN0X3RhaWxjYWxsX2NhbGxiYWNrKHZvaWQpXFxuIFxcdFJVTl9URVNUUyh0YWlsY2FsbF9jYWxsYmFjayk7XFxuIH1cXG4gXFxuK3N0YXRpYyB2b2lkIHRlc3RfdGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9saW5rcyh2b2lkKVxcbit7XFxuK1xcdHN0cnVjdCB0YWlsY2FsbF9icGYyYnBmX2ZleGl0ICpza2VsMSA9IE5VTEwsICpza2VsMiA9IE5VTEw7XFxuK1xcdHN0cnVjdCB0YWlsY2FsbF9icGYyYnBmMiAqc2tlbF90YztcXG4rXFx0c3RydWN0IGJwZl9saW5rICpsaW5rO1xcbitcXHRpbnQgZXJyLCBwcm9nX2ZkO1xcbitcXG4rXFx0c2tlbF90YyA9IHRhaWxjYWxsX2JwZjJicGYyX19vcGVuX2FuZF9sb2FkKCk7XFxuK1xcdGlmICghQVNTRVJUX09LX1BUUihza2VsX3RjLCBcXFwidGFpbGNhbGxfYnBmMmJwZjJfX29wZW5fYW5kX2xvYWRcXFwiKSlcXG4rXFx0XFx0cmV0dXJuO1xcbitcXG4rXFx0c2tlbDEgPSB0YWlsY2FsbF9icGYyYnBmX2ZleGl0X19vcGVuKCk7XFxuK1xcdGlmICghQVNTRVJUX09LX1BUUihza2VsMSwgXFxcInRhaWxjYWxsX2JwZjJicGZfZmV4aXRfX29wZW5cXFwiKSlcXG4rXFx0XFx0Z290byBvdXQ7XFxuK1xcbitcXHRwcm9nX2ZkID0gYnBmX3Byb2dyYW1fX2ZkKHNrZWxfdGMtXFx1MDAzZXByb2dzLmNsYXNzaWZpZXJfMCk7XFxuK1xcdGVyciA9IGJwZl9wcm9ncmFtX19zZXRfYXR0YWNoX3RhcmdldChza2VsMS1cXHUwMDNlcHJvZ3MuZmV4aXQsIHByb2dfZmQsIFxcXCJzdWJwcm9nX3RhaWxcXFwiKTtcXG4rXFx0aWYgKCFBU1NFUlRfT0soZXJyLCBcXFwiYnBmX3Byb2dyYW1fX3NldF9hdHRhY2hfdGFyZ2V0XFxcIikpXFxuK1xcdFxcdGdvdG8gb3V0O1xcbitcXG4rXFx0ZXJyID0gdGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9fbG9hZChza2VsMSk7XFxuK1xcdGlmICghQVNTRVJUX09LKGVyciwgXFxcInRhaWxjYWxsX2JwZjJicGZfZmV4aXRfX2xvYWRcXFwiKSlcXG4rXFx0XFx0Z290byBvdXQ7XFxuK1xcbitcXHRsaW5rID0gYnBmX3Byb2dyYW1fX2F0dGFjaF90cmFjZShza2VsMS1cXHUwMDNlcHJvZ3MuZmV4aXQpO1xcbitcXHRpZiAoIUFTU0VSVF9PS19QVFIobGluaywgXFxcImJwZl9wcm9ncmFtX19hdHRhY2hfdHJhY2VcXFwiKSlcXG4rXFx0XFx0Z290byBvdXQ7XFxuK1xcdHNrZWwxLVxcdTAwM2VsaW5rcy5mZXhpdCA9IGxpbms7XFxuK1xcbitcXHRza2VsMiA9IHRhaWxjYWxsX2JwZjJicGZfZmV4aXRfX29wZW4oKTtcXG4rXFx0aWYgKCFBU1NFUlRfT0tfUFRSKHNrZWwyLCBcXFwidGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9fb3BlblxcXCIpKVxcbitcXHRcXHRnb3RvIG91dDtcXG4rXFxuK1xcdGVyciA9IGJwZl9wcm9ncmFtX19zZXRfYXR0YWNoX3RhcmdldChza2VsMi1cXHUwMDNlcHJvZ3MuZmV4aXQsIHByb2dfZmQsIFxcXCJzdWJwcm9nX3RhaWxcXFwiKTtcXG4rXFx0aWYgKCFBU1NFUlRfT0soZXJyLCBcXFwiYnBmX3Byb2dyYW1fX3NldF9hdHRhY2hfdGFyZ2V0XFxcIikpXFxuK1xcdFxcdGdvdG8gb3V0O1xcbitcXG4rXFx0ZXJyID0gdGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9fbG9hZChza2VsMik7XFxuK1xcdGlmICghQVNTRVJUX09LKGVyciwgXFxcInRhaWxjYWxsX2JwZjJicGZfZmV4aXRfX2xvYWRcXFwiKSlcXG4rXFx0XFx0Z290byBvdXQ7XFxuK1xcbitvdXQ6XFxuK1xcdHRhaWxjYWxsX2JwZjJicGZfZmV4aXRfX2Rlc3Ryb3koc2tlbDEpO1xcbitcXHR0YWlsY2FsbF9icGYyYnBmX2ZleGl0X19kZXN0cm95KHNrZWwyKTtcXG4rXFx0dGFpbGNhbGxfYnBmMmJwZjJfX2Rlc3Ryb3koc2tlbF90Yyk7XFxuK31cXG4rXFxuIHZvaWQgdGVzdF90YWlsY2FsbHModm9pZClcXG4ge1xcbiBcXHRpZiAodGVzdF9fc3RhcnRfc3VidGVzdChcXFwidGFpbGNhbGxfMVxcXCIpKVxcbkBAIC0xOTc0LDQgKzIwMjMsNiBAQCB2b2lkIHRlc3RfdGFpbGNhbGxzKHZvaWQpXFxuIFxcdGlmICh0ZXN0X19zdGFydF9zdWJ0ZXN0KFxcXCJ0YWlsY2FsbF9jZ3JwX3N0b3JhZ2Vfbm9fc3RvcmFnZV9icmlkZ2VcXFwiKSlcXG4gXFx0XFx0dGVzdF90YWlsY2FsbF9jZ3JwX3N0b3JhZ2Vfbm9fc3RvcmFnZV9icmlkZ2UoKTtcXG4gXFx0dGVzdF90YWlsY2FsbF9jYWxsYmFjaygpO1xcbitcXHRpZiAodGVzdF9fc3RhcnRfc3VidGVzdChcXFwidGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9saW5rc1xcXCIpKVxcbitcXHRcXHR0ZXN0X3RhaWxjYWxsX2JwZjJicGZfZmV4aXRfbGlua3MoKTtcXG4gfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwOTowNjo1OC41OTc5MjU2NjhaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo2MTk4MDMyMzYwNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiLFxuICAgIFwiQlBGX0pJVFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJwZl90cmFtcG9saW5lX3NldF9mbGFnc1wiLFxuICAgIFwiY2hlY2tfYXR0YWNoX2J0Zl9pZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gYW5kIGluY29ycmVjdCBmbGFnIGFzc2lnbm1lbnQgaW4gQlBGIHRyYW1wb2xpbmUgbG9naWMgYnkgaW50cm9kdWNpbmcgYSBsb2NrZWQgYml0d2lzZSBPUiB1cGRhdGUgZm9yIHRyYW1wb2xpbmUgZmxhZ3MuIFRoaXMgaXMgY29yZSBCUEYgZnVuY3Rpb25hbGl0eSB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgOWFlYzgwYjc2NjYzYzVkNzA2NDUwNzlmYjMwOWQwNDhhMjJlNzM0N1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDIyIDA5OjA2OjU1IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9icGYuaCBiL2luY2x1ZGUvbGludXgvYnBmLmhcbmluZGV4IGQ5NTQyMTI3ZGZkZmMwLi5mYzg0ZjM5OTY3YWUwZSAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvYnBmLmhcbisrKyBiL2luY2x1ZGUvbGludXgvYnBmLmhcbkBAIC0xNTIzLDYgKzE1MjMsNyBAQCBpbnQgYnBmX3RyYW1wb2xpbmVfbXVsdGlfYXR0YWNoKHN0cnVjdCBicGZfcHJvZyAqcHJvZywgdTMyICppZHMsXG4gXHRcdFx0XHRzdHJ1Y3QgYnBmX3RyYWNpbmdfbXVsdGlfbGluayAqbGluayk7XG4gaW50IGJwZl90cmFtcG9saW5lX211bHRpX2RldGFjaChzdHJ1Y3QgYnBmX3Byb2cgKnByb2csXG4gXHRcdFx0XHRzdHJ1Y3QgYnBmX3RyYWNpbmdfbXVsdGlfbGluayAqbGluayk7XG4rdm9pZCBicGZfdHJhbXBvbGluZV9zZXRfZmxhZ3Moc3RydWN0IGJwZl90cmFtcG9saW5lICp0ciwgdTMyIGZsYWdzKTtcbiBcbiAvKlxuICAqIFdoZW4gdGhlIGFyY2hpdGVjdHVyZSBzdXBwb3J0cyBTVEFUSUNfQ0FMTCByZXBsYWNlIHRoZSBicGZfZGlzcGF0Y2hlcl9mblxuQEAgLTE2NDYsNiArMTY0Nyw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IGJwZl90cmFtcG9saW5lX211bHRpX2RldGFjaChzdHJ1Y3QgYnBmX3Byb2cgKnByb2csXG4ge1xuIFx0cmV0dXJuIC1FTk9UU1VQUDtcbiB9XG4rc3RhdGljIGlubGluZSB2b2lkIGJwZl90cmFtcG9saW5lX3NldF9mbGFncyhzdHJ1Y3QgYnBmX3RyYW1wb2xpbmUgKnRyLCB1MzIgZmxhZ3MpIHt9XG4gI2VuZGlmXG4gXG4gc3RydWN0IGJwZl9mdW5jX2luZm9fYXV4IHtcbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL3RyYW1wb2xpbmUuYyBiL2tlcm5lbC9icGYvdHJhbXBvbGluZS5jXG5pbmRleCA2ZWFkZjY0ZjdlYzkwZi4uMTI5ZDA3ZGIxMTdlYzcgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvYnBmL3RyYW1wb2xpbmUuY1xuKysrIGIva2VybmVsL2JwZi90cmFtcG9saW5lLmNcbkBAIC02NzAsNiArNjcwLDEzIEBAIHN0YXRpYyBzdHJ1Y3QgYnBmX3RyYW1wX2ltYWdlICpicGZfdHJhbXBfaW1hZ2VfYWxsb2ModTY0IGtleSwgaW50IHNpemUpXG4gXHRyZXR1cm4gRVJSX1BUUihlcnIpO1xuIH1cbiBcbit2b2lkIGJwZl90cmFtcG9saW5lX3NldF9mbGFncyhzdHJ1Y3QgYnBmX3RyYW1wb2xpbmUgKnRyLCB1MzIgZmxhZ3MpXG4re1xuK1x0dHJhbXBvbGluZV9sb2NrKHRyKTtcbitcdHRyLVx1MDAzZWZsYWdzIHw9IGZsYWdzO1xuK1x0dHJhbXBvbGluZV91bmxvY2sodHIpO1xuK31cbitcbiBzdGF0aWMgaW50IGJwZl90cmFtcG9saW5lX3VwZGF0ZShzdHJ1Y3QgYnBmX3RyYW1wb2xpbmUgKnRyLCBib29sIGxvY2tfZGlyZWN0X211dGV4LFxuIFx0XHRcdFx0IGNvbnN0IHN0cnVjdCBicGZfdHJhbXBvbGluZV9vcHMgKm9wcywgdm9pZCAqZGF0YSlcbiB7XG5kaWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92ZXJpZmllci5jXG5pbmRleCA1MmJlMGExMThjY2UwNy4uNjZkOGQ5ZWFlYzA1ZjkgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbisrKyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuQEAgLTE5NTIzLDcgKzE5NTIzLDcgQEAgc3RhdGljIGludCBjaGVja19hdHRhY2hfYnRmX2lkKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYpXG4gXHRcdHJldHVybiAtRU5PTUVNO1xuIFxuIFx0aWYgKHRndF9wcm9nIFx1MDAyNlx1MDAyNiB0Z3RfcHJvZy1cdTAwM2VhdXgtXHUwMDNldGFpbF9jYWxsX3JlYWNoYWJsZSlcbi1cdFx0dHItXHUwMDNlZmxhZ3MgPSBCUEZfVFJBTVBfRl9UQUlMX0NBTExfQ1RYO1xuK1x0XHRicGZfdHJhbXBvbGluZV9zZXRfZmxhZ3ModHIsIEJQRl9UUkFNUF9GX1RBSUxfQ0FMTF9DVFgpO1xuIFxuIFx0cHJvZy1cdTAwM2VhdXgtXHUwMDNlZHN0X3RyYW1wb2xpbmUgPSB0cjtcbiBcdHJldHVybiAwO1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RhaWxjYWxscy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdGFpbGNhbGxzLmNcbmluZGV4IGM2NjAzNzE2MmRhNWFlLi44NmQ4N2Q1ODE3Y2Y3MSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RhaWxjYWxscy5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90YWlsY2FsbHMuY1xuQEAgLTEzLDYgKzEzLDggQEBcbiAjaW5jbHVkZSBcInRhaWxjYWxsX2NncnBfc3RvcmFnZS5za2VsLmhcIlxuICNpbmNsdWRlIFwidGFpbGNhbGxfc2xlZXBhYmxlLnNrZWwuaFwiXG4gI2luY2x1ZGUgXCJ0YWlsY2FsbF9jYWxsYmFjay5za2VsLmhcIlxuKyNpbmNsdWRlIFwidGFpbGNhbGxfYnBmMmJwZjIuc2tlbC5oXCJcbisjaW5jbHVkZSBcInRhaWxjYWxsX2JwZjJicGZfZmV4aXQuc2tlbC5oXCJcbiBcbiAvKiB0ZXN0X3RhaWxjYWxsXzEgY2hlY2tzIGJhc2ljIGZ1bmN0aW9uYWxpdHkgYnkgcGF0Y2hpbmcgbXVsdGlwbGUgbG9jYXRpb25zXG4gICogaW4gYSBzaW5nbGUgcHJvZ3JhbSBmb3IgYSBzaW5nbGUgdGFpbCBjYWxsIHNsb3Qgd2l0aCBub3AtXHUwMDNlam1wLCBqbXAtXHUwMDNlbm9wXG5AQCAtMTkwNyw2ICsxOTA5LDUzIEBAIHN0YXRpYyB2b2lkIHRlc3RfdGFpbGNhbGxfY2FsbGJhY2sodm9pZClcbiBcdFJVTl9URVNUUyh0YWlsY2FsbF9jYWxsYmFjayk7XG4gfVxuIFxuK3N0YXRpYyB2b2lkIHRlc3RfdGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9saW5rcyh2b2lkKVxuK3tcbitcdHN0cnVjdCB0YWlsY2FsbF9icGYyYnBmX2ZleGl0ICpza2VsMSA9IE5VTEwsICpza2VsMiA9IE5VTEw7XG4rXHRzdHJ1Y3QgdGFpbGNhbGxfYnBmMmJwZjIgKnNrZWxfdGM7XG4rXHRzdHJ1Y3QgYnBmX2xpbmsgKmxpbms7XG4rXHRpbnQgZXJyLCBwcm9nX2ZkO1xuK1xuK1x0c2tlbF90YyA9IHRhaWxjYWxsX2JwZjJicGYyX19vcGVuX2FuZF9sb2FkKCk7XG4rXHRpZiAoIUFTU0VSVF9PS19QVFIoc2tlbF90YywgXCJ0YWlsY2FsbF9icGYyYnBmMl9fb3Blbl9hbmRfbG9hZFwiKSlcbitcdFx0cmV0dXJuO1xuK1xuK1x0c2tlbDEgPSB0YWlsY2FsbF9icGYyYnBmX2ZleGl0X19vcGVuKCk7XG4rXHRpZiAoIUFTU0VSVF9PS19QVFIoc2tlbDEsIFwidGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9fb3BlblwiKSlcbitcdFx0Z290byBvdXQ7XG4rXG4rXHRwcm9nX2ZkID0gYnBmX3Byb2dyYW1fX2ZkKHNrZWxfdGMtXHUwMDNlcHJvZ3MuY2xhc3NpZmllcl8wKTtcbitcdGVyciA9IGJwZl9wcm9ncmFtX19zZXRfYXR0YWNoX3RhcmdldChza2VsMS1cdTAwM2Vwcm9ncy5mZXhpdCwgcHJvZ19mZCwgXCJzdWJwcm9nX3RhaWxcIik7XG4rXHRpZiAoIUFTU0VSVF9PSyhlcnIsIFwiYnBmX3Byb2dyYW1fX3NldF9hdHRhY2hfdGFyZ2V0XCIpKVxuK1x0XHRnb3RvIG91dDtcbitcbitcdGVyciA9IHRhaWxjYWxsX2JwZjJicGZfZmV4aXRfX2xvYWQoc2tlbDEpO1xuK1x0aWYgKCFBU1NFUlRfT0soZXJyLCBcInRhaWxjYWxsX2JwZjJicGZfZmV4aXRfX2xvYWRcIikpXG4rXHRcdGdvdG8gb3V0O1xuK1xuK1x0bGluayA9IGJwZl9wcm9ncmFtX19hdHRhY2hfdHJhY2Uoc2tlbDEtXHUwMDNlcHJvZ3MuZmV4aXQpO1xuK1x0aWYgKCFBU1NFUlRfT0tfUFRSKGxpbmssIFwiYnBmX3Byb2dyYW1fX2F0dGFjaF90cmFjZVwiKSlcbitcdFx0Z290byBvdXQ7XG4rXHRza2VsMS1cdTAwM2VsaW5rcy5mZXhpdCA9IGxpbms7XG4rXG4rXHRza2VsMiA9IHRhaWxjYWxsX2JwZjJicGZfZmV4aXRfX29wZW4oKTtcbitcdGlmICghQVNTRVJUX09LX1BUUihza2VsMiwgXCJ0YWlsY2FsbF9icGYyYnBmX2ZleGl0X19vcGVuXCIpKVxuK1x0XHRnb3RvIG91dDtcbitcbitcdGVyciA9IGJwZl9wcm9ncmFtX19zZXRfYXR0YWNoX3RhcmdldChza2VsMi1cdTAwM2Vwcm9ncy5mZXhpdCwgcHJvZ19mZCwgXCJzdWJwcm9nX3RhaWxcIik7XG4rXHRpZiAoIUFTU0VSVF9PSyhlcnIsIFwiYnBmX3Byb2dyYW1fX3NldF9hdHRhY2hfdGFyZ2V0XCIpKVxuK1x0XHRnb3RvIG91dDtcbitcbitcdGVyciA9IHRhaWxjYWxsX2JwZjJicGZfZmV4aXRfX2xvYWQoc2tlbDIpO1xuK1x0aWYgKCFBU1NFUlRfT0soZXJyLCBcInRhaWxjYWxsX2JwZjJicGZfZmV4aXRfX2xvYWRcIikpXG4rXHRcdGdvdG8gb3V0O1xuK1xuK291dDpcbitcdHRhaWxjYWxsX2JwZjJicGZfZmV4aXRfX2Rlc3Ryb3koc2tlbDEpO1xuK1x0dGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9fZGVzdHJveShza2VsMik7XG4rXHR0YWlsY2FsbF9icGYyYnBmMl9fZGVzdHJveShza2VsX3RjKTtcbit9XG4rXG4gdm9pZCB0ZXN0X3RhaWxjYWxscyh2b2lkKVxuIHtcbiBcdGlmICh0ZXN0X19zdGFydF9zdWJ0ZXN0KFwidGFpbGNhbGxfMVwiKSlcbkBAIC0xOTc0LDQgKzIwMjMsNiBAQCB2b2lkIHRlc3RfdGFpbGNhbGxzKHZvaWQpXG4gXHRpZiAodGVzdF9fc3RhcnRfc3VidGVzdChcInRhaWxjYWxsX2NncnBfc3RvcmFnZV9ub19zdG9yYWdlX2JyaWRnZVwiKSlcbiBcdFx0dGVzdF90YWlsY2FsbF9jZ3JwX3N0b3JhZ2Vfbm9fc3RvcmFnZV9icmlkZ2UoKTtcbiBcdHRlc3RfdGFpbGNhbGxfY2FsbGJhY2soKTtcbitcdGlmICh0ZXN0X19zdGFydF9zdWJ0ZXN0KFwidGFpbGNhbGxfYnBmMmJwZl9mZXhpdF9saW5rc1wiKSlcbitcdFx0dGVzdF90YWlsY2FsbF9icGYyYnBmX2ZleGl0X2xpbmtzKCk7XG4gfVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDk6MDY6NTguNTk3OTI4MjM4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzkzNjEwNDU1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBCUEYgVHJhbXBvbGluZSBGbGFnIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IGNoYW5nZXMgaG93IEJQRiB0cmFtcG9saW5lIGZsYWdzIGFyZSBzZXQuIFNwZWNpZmljYWxseSwgaXQgaW52b2x2ZXMgdGhlIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgIGFuZCBga2VybmVsL2JwZi90cmFtcG9saW5lLmNgIGZpbGVzLiBUaGUgY29yZSBvZiB0aGUgY2hhbmdlIHNlZW1zIHRvIGJlIGluIGhvdyB0aGUgYHRyLVx1MDAzZWZsYWdzYCBmaWVsZCBpcyBtb2RpZmllZC4gSW5pdGlhbGx5LCBpdCB3YXMgYSBkaXJlY3QgYXNzaWdubWVudDogYHRyLVx1MDAzZWZsYWdzID0gQlBGX1RSQU1QX0ZfVEFJTF9DQUxMX0NUWDtgLiBOb3csIHRoZXkndmUgaW1wbGVtZW50ZWQgYSBmdW5jdGlvbiBgYnBmX3RyYW1wb2xpbmVfc2V0X2ZsYWdzYCwgd2hpY2ggdXNlcyBhIGxvY2sgYW5kIGEgYml0d2lzZSBPUiBvcGVyYXRpb246IGB0ci1cdTAwM2VmbGFncyB8PSBmbGFncztgLiBUaGlzIGlzIGEgcHJldHR5IGNsZWFyIGluZGljYXRpb24gb2YgYWRkcmVzc2luZyBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbiBvciBhIHNpbXBsZSBsb2dpY2FsIGVycm9yIGluIGhvdyB0aGUgZmxhZ3Mgd2VyZSBiZWluZyBzZXQuIFRoZSBvbGQgY29kZSB3YXMgZWZmZWN0aXZlbHkgb3ZlcndyaXRpbmcgZXhpc3RpbmcgZmxhZ3MsIHdoZXJlYXMgdGhpcyBuZXcgYXBwcm9hY2gsIGJ5IHVzaW5nIGEgbG9jayBhbmQgYW4gT1Igb3BlcmF0aW9uLCBpcyBzYWZlciBiZWNhdXNlIGl0IHByb3Blcmx5IHNldHMgdGhlIHNwZWNpZmllZCBmbGFnIHdoaWxlIHByZXNlcnZpbmcgb3RoZXIgcG90ZW50aWFsbHkgc2V0IGZsYWdzLlxuXG5JIGNhbiBpbW1lZGlhdGVseSBzZWUgdGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLiBNeSBmaXJzdCB0aG91Z2h0IGlzIHRvIHZlcmlmeSB0aGUgY2hhbmdlLCB3aGljaCBJIGNhbiBkbyB3aXRob3V0IGxvb2tpbmcgYXQgdGhlIHdob2xlIGBncmVwcGVyYCBvdXRwdXQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhpcyBjaGFuZ2UgYW5kIGNvbnNpZGVyIGZ1enppbmcuIEdpdmVuIHRoYXQgdGhpcyBwYXRjaCB0b3VjaGVzIGNvcmUgQlBGIGxvZ2ljLCBpdCdzIGRlZmluaXRlbHkgd29ydGggZXhwbG9yaW5nIGZ1enppbmcgdGhpcyBhcmVhLlxuXG5Ob3csIGxldCdzIHNlZSB3aGljaCBjb25maWdzIGVuYWJsZSB0aGlzIGZlYXR1cmUuIGBDT05GSUdfQlBGX1NZU0NBTExgIGlzIGEgZ2l2ZW4sIHRoYXQncyBhbG1vc3QgYWx3YXlzIGEgcHJlcmVxdWlzaXRlIGZvciBCUEYtcmVsYXRlZCBmdW5jdGlvbmFsaXR5LiBJJ2xsIG5lZWQgdG8gZG91YmxlIGNoZWNrIGZvciBhbnkgb3RoZXIgcmVsZXZhbnQgY29uZmlnIG9wdGlvbnMuIFRvIGJlIHRob3JvdWdoLCBJJ2xsIHNlYXJjaCBmb3IgYGNoZWNrX2F0dGFjaF9idGZfaWRgIGluIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIHJlbGF0ZWQgY2hhbmdlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzY1MSwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ0MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDA5OjA3OjA2LjUzNDAzNjI3M1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2Nzk2MDEzODYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY2hlY2tfYXR0YWNoX2J0Zl9pZFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJrZXJuZWwvYnBmL3ZlcmlmaWVyLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwia2VybmVsL2JwZi92ZXJpZmllci5jPTE5NDA1PXN0YXRpYyBib29sIGNhbl9iZV9zbGVlcGFibGUoc3RydWN0IGJwZl9wcm9nICpwcm9nKVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE5NDMxLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxOTQzMjpzdGF0aWMgaW50IGNoZWNrX2F0dGFjaF9idGZfaWQoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTk0MzMte1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE5NTMxLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxOTUzMjppbnQgYnBmX2NoZWNrX2F0dGFjaF9idGZfaWRfbXVsdGkoc3RydWN0IGJ0ZiAqYnRmLCBzdHJ1Y3QgYnBmX3Byb2cgKnByb2csIHUzMiBidGZfaWQsXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE5NTMzLVxcdFxcdFxcdFxcdCAgc3RydWN0IGJwZl9hdHRhY2hfdGFyZ2V0X2luZm8gKnRndF9pbmZvKVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTIwMDU3PWludCBicGZfY2hlY2soc3RydWN0IGJwZl9wcm9nICoqcHJvZywgdW5pb24gYnBmX2F0dHIgKmF0dHIsIGJwZnB0cl90IHVhdHRyLFxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTIwMjAyLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoyMDIwMzpcXHRyZXQgPSBjaGVja19hdHRhY2hfYnRmX2lkKGVudik7XFxua2VybmVsL2JwZi92ZXJpZmllci5jLTIwMjA0LVxcdGlmIChyZXQpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDA5OjA3OjA3LjIxMzY0MzAxOVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2MjEyODI0MDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoZSBga2VybmVsL2JwZi90cmFtcG9saW5lLmNgIGNvbmZpZ3VyYXRpb246XG5cbioqQW5hbHl6aW5nIEtlcm5lbCBCUEYgVHJhbXBvbGluZSBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSdtIGRpdmluZyBpbnRvIGBrZXJuZWwvYnBmL3RyYW1wb2xpbmUuY2AuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIldoYXQga2luZCBvZiBjb25maWd1cmF0aW9uIGlzICphYnNvbHV0ZWx5KiBuZWVkZWQgdG8gbWFrZSB0aGlzIHRoaW5nIHdvcms/XCIgS25vd2luZyB0aGUgQlBGIGxhbmRzY2FwZSwgSSBuZWVkIHRvIGNvbnNpZGVyIHZhcmlvdXMgbGV2ZWxzIG9mIGRlcGVuZGVuY2llcy4gSSBuZWVkIHRvIHRoaW5rIGFib3V0IHRoZSBjb3JlIEJQRiBpbmZyYXN0cnVjdHVyZSBpdHNlbGYg4oCTIHRoZSBvYnZpb3VzIHN0dWZmIGxpa2Ugd2hldGhlciBCUEYgaXMgZXZlbiBlbmFibGVkIChgQ09ORklHX0JQRmApLCBhbmQgcG90ZW50aWFsbHkgbW9yZSBncmFudWxhciBmZWF0dXJlIGZsYWdzIGlmIHRoaXMgdHJhbXBvbGluZSBpbXBsZW1lbnRhdGlvbiB1c2VzIHNwZWNpZmljIEJQRiBoZWxwZXIgY2FsbHMgb3IgZmVhdHVyZXMsIHdoaWNoIEknbGwgaGF2ZSB0byBpbnZlc3RpZ2F0ZS4gSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBidWlsZCBvcHRpb25zLiBUaGVuLCBJIG5lZWQgdG8gc3RhcnQgZGlnZ2luZyB0aHJvdWdoIHRoZSBjb2RlLCBsb29raW5nIGZvciBgI2lmZGVmYCBzdGF0ZW1lbnRzIGFuZCBvdGhlciBjb25kaXRpb25hbCBjb21waWxhdGlvbiBkaXJlY3RpdmVzLiBBcmUgdGhlcmUgYW55IGhhcmR3YXJlLXNwZWNpZmljIGRlcGVuZGVuY2llcywgcGVyaGFwcyByZWxhdGVkIHRvIHRoZSBhcmNoaXRlY3R1cmUncyBhYmlsaXR5IHRvIHN1cHBvcnQgY2VydGFpbiBmZWF0dXJlcyBuZWVkZWQgZm9yIGVmZmljaWVudCB0cmFtcG9saW5lIG9wZXJhdGlvbiAobGlrZSBpbnN0cnVtZW50YXRpb24gY2FwYWJpbGl0aWVzKT8gT3IgYXJlIHRoZXJlIGFueSBzZWN1cml0eS1yZWxhdGVkIHNldHRpbmdzIHRoYXQgbWlnaHQgYmUgY3J1Y2lhbCwgbGlrZSB0aGUgdXNlIG9mIGEgbW9yZSBzZWN1cmUgQlBGIHZlcmlmaWVyIG1vZGU/IEknbGwgcHJvYmFibHkgYWxzbyBuZWVkIHRvIGNvbnNpZGVyIGFueSBkZXBlbmRlbmNpZXMgb24gc3BlY2lmaWMga2VybmVsIHZlcnNpb25zIG9yIGZlYXR1cmVzLCBlc3BlY2lhbGx5IGlmIHRoZSB0cmFtcG9saW5lIGltcGxlbWVudGF0aW9uIHJlbGllcyBvbiBuZXdlciBBUElzIG9yIGRhdGEgc3RydWN0dXJlcy4gSSdsbCBoYXZlIHRvIHBheSBjbG9zZSBhdHRlbnRpb24gdG8gdGhlIGluY2x1ZGUgZmlsZXMgdG8gc2VlIGlmIGFueSBhcmUgY29uZGl0aW9uYWxseSBpbmNsdWRlZC4gVGhlIGtleSBpcyB0byBtYXAgYW55IGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHN0YXRlbWVudHMgdG8gdGhlIHJlcXVpcmVkIGNvbmZpZyBvcHRpb25zLiBNeSBnb2FsIGlzIGEgY29tcGxldGUgbGlzdC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDg0MywiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDA5OjA3OjEwLjgzNDkyNzk1NloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNzkzNTY5MjEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYnBmX3RyYW1wb2xpbmVfc2V0X2ZsYWdzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImtlcm5lbC9icGYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImtlcm5lbC9icGYvdHJhbXBvbGluZS5jPTYzMT1zdGF0aWMgc3RydWN0IGJwZl90cmFtcF9pbWFnZSAqYnBmX3RyYW1wX2ltYWdlX2FsbG9jKHU2NCBrZXksIGludCBzaXplKVxcbi0tXFxua2VybmVsL2JwZi90cmFtcG9saW5lLmMtNjcyLVxcbmtlcm5lbC9icGYvdHJhbXBvbGluZS5jOjY3Mzp2b2lkIGJwZl90cmFtcG9saW5lX3NldF9mbGFncyhzdHJ1Y3QgYnBmX3RyYW1wb2xpbmUgKnRyLCB1MzIgZmxhZ3MpXFxua2VybmVsL2JwZi90cmFtcG9saW5lLmMtNjc0LXtcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xOTQzMj1zdGF0aWMgaW50IGNoZWNrX2F0dGFjaF9idGZfaWQoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xOTUyNS1cXHRpZiAodGd0X3Byb2cgXFx1MDAyNlxcdTAwMjYgdGd0X3Byb2ctXFx1MDAzZWF1eC1cXHUwMDNldGFpbF9jYWxsX3JlYWNoYWJsZSlcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTk1MjY6XFx0XFx0YnBmX3RyYW1wb2xpbmVfc2V0X2ZsYWdzKHRyLCBCUEZfVFJBTVBfRl9UQUlMX0NBTExfQ1RYKTtcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTk1MjctXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDA5OjA3OjExLjExNDI5NDQwN1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2MDAwMjE0ODgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyB0aGUgdGhvdWdodCBwcm9jZXNzIHVuZm9sZHM6XG5cbioqQ2hlY2tpbmcgQlBGIFRyYW1wb2xpbmUgQ29tcGlsYXRpb24qKlxuXG5Pa2F5LCBzbyBga2VybmVsL2JwZi90cmFtcG9saW5lLmNgIGlzIGRlZmluaXRlbHkgYmVpbmcgY29tcGlsZWQgKmNvbmRpdGlvbmFsbHkqIGJhc2VkIG9uIHRoZSBgQ09ORklHX0JQRl9TWVNDQUxMYCBLY29uZmlnIG9wdGlvbi4gQnV0LCB0aGF0J3Mgbm90IHF1aXRlIGVub3VnaDsgSSB3YW50IHRvIGJlICpjZXJ0YWluKiBhYm91dCB0aGUgYnVpbGQgcHJvY2Vzcy4gSSBuZWVkIHRvIGNvbmZpcm0gdGhhdCB0aGlzIGlzIGJlaW5nIGhhbmRsZWQgY29ycmVjdGx5IGluIHRoZSBgTWFrZWZpbGVgLiBTcGVjaWZpY2FsbHksIEknbGwgZHJpbGwgZG93biBhbmQgY2hlY2sgdGhlIGBrZXJuZWwvYnBmL01ha2VmaWxlYCBmaWxlIHRvIHNlZSBob3cgaXQncyBkZWFsaW5nIHdpdGggdGhhdCBjb25kaXRpb25hbCBjb21waWxhdGlvbi4gR290dGEgbWFrZSBzdXJlIHRoZXJlIGFyZW4ndCBhbnkgc25lYWt5IGludGVyYWN0aW9ucyBvciB1bmludGVuZGVkIHNpZGUgZWZmZWN0cyB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTQ3MSwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDA5OjA3OjE0LjcxNDMxOTI2NFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDQ4Mzk3MzEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidHJhbXBvbGluZS5vXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImtlcm5lbC9icGYvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwia2VybmVsL2JwZi9NYWtlZmlsZT0xNj1vYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IGRpc2FzbS5vIG1wcm9nLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlOjE3Om9iai0kKENPTkZJR19CUEZfSklUKSArPSB0cmFtcG9saW5lLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlLTE4LW9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gYnRmLm8gbWVtYWxsb2MubyBycXNwaW5sb2NrLm8gc3RyZWFtLm9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDk6MDc6MTQuODE5MTY1MDI2WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQyMDUxOTIxMzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqS2VybmVsIENvbmZpZ3VyYXRpb24gRGVwZW5kZW5jaWVzKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhlIGJ1aWxkIHByb2Nlc3MgYW5kIGl0J3MgaW1tZWRpYXRlbHkgY2xlYXIgdGhhdCBgdHJhbXBvbGluZS5vYCBuZWVkcyBgQ09ORklHX0JQRl9KSVRgLiBUaGF0IG1ha2VzIHBlcmZlY3Qgc2Vuc2U7IHRoZSB0cmFtcG9saW5lIGNvZGUgbGlrZWx5IHJlbGllcyBvbiB0aGUgSklUIGNvbXBpbGVyIGZvciBCUEYgdG8gZnVuY3Rpb24gZWZmaWNpZW50bHksIHByb2JhYmx5IGZvciBvbi10aGUtZmx5IGNvZGUgZ2VuZXJhdGlvbi5cblxuVGhlbiwgdGhlcmUncyBgdmVyaWZpZXIub2AuIFRoZSBkZXBlbmRlbmN5IG9uIGBDT05GSUdfQlBGX1NZU0NBTExgIGZvciB0aGF0IGlzIGFsc28gaW50dWl0aXZlLiBUaGUgdmVyaWZpZXIsIG9idmlvdXNseSwgbmVlZHMgZGlyZWN0IGFjY2VzcyB0byB0aGUgQlBGIHN5c3RlbSBjYWxscyB0byBhbmFseXplIGFuZCBpbnRlcmFjdCB3aXRoIHRoZSBCUEYgcHJvZ3JhbXMgdGhhdCBpdCBpcyB0YXNrZWQgd2l0aCBldmFsdWF0aW5nLiBXaXRob3V0IHRob3NlIHN5c3RlbSBjYWxscyBhdmFpbGFibGUsIHRoZSB2ZXJpZmljYXRpb24gcHJvY2VzcyBjYW4ndCBleGVjdXRlLCBhbmQgdGhlIHN5c3RlbSBpcyBsaWtlbHkgcHJldmVudGluZyB0aGUgZmVhdHVyZSBmcm9tIGJlaW5nIHVzZWQuIEkgd2lsbCBpbnZlc3RpZ2F0ZSB0aG9zZSBkZXBlbmRlbmNpZXMgZnVydGhlciwgdG8gZXhwbG9yZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGNvbmZpZ3VyYXRpb24gaXNzdWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1Nzk1LCJPdXRwdXRUb2tlbnMiOjI5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDk6MDc6NDkuMDI0MzU5NTE5WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2OTI5NzUyODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidmVyaWZpZXIub1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJrZXJuZWwvYnBmL01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImtlcm5lbC9icGYvTWFrZWZpbGU9Nz1DRkxBR1NfY29yZS5vICs9IC1Xbm8tb3ZlcnJpZGUtaW5pdCAkKGNmbGFncy1ub2djc2UteXkpXFxua2VybmVsL2JwZi9NYWtlZmlsZS04LVxcbmtlcm5lbC9icGYvTWFrZWZpbGU6OTpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IHN5c2NhbGwubyB2ZXJpZmllci5vIGlub2RlLm8gaGVscGVycy5vIHRudW0ubyBjbnVtLm8gbG9nLm8gdG9rZW4ubyBsaXZlbmVzcy5vIGNvbnN0X2ZvbGQub1xcbmtlcm5lbC9icGYvTWFrZWZpbGUtMTAtb2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBicGZfaXRlci5vIG1hcF9pdGVyLm8gdGFza19pdGVyLm8gcHJvZ19pdGVyLm8gbGlua19pdGVyLm9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDk6MDc6NDkuNzE3MzQyMzg5WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ2MjE1NzUwOTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBicmVha2Rvd24gb2Ygd2hhdCB3ZSdyZSBsb29raW5nIGF0LCBmcm9tIG15IHBlcnNwZWN0aXZlLlxuXG4qKkZvY3VzaW5nIEZ1enppbmcgRWZmb3J0cyoqXG5cbkFscmlnaHQsIHNvIHdlJ3JlIGRpdmluZyBpbnRvIGZ1enppbmcgQlBGIGNvZGUsIGFuZCBpdCBsb29rcyBsaWtlIHdlIG5lZWQgdG8gemVybyBpbiBvbiBzcGVjaWZpYyBhcmVhcy4gVGhlIGNvcmUgaWRlYSBpcyB0byB0YXJnZXQgdGhlIHJpZ2h0IGZ1bmN0aW9ucy4gTXkgZ3V0IHRlbGxzIG1lIHdlIG5lZWQgdG8gYmUgdmVyeSBjb25zY2lvdXMgb2YgYEJQRl9TWVNDQUxMYCBhbmQgYEJQRl9KSVRgLiBUaGV5J3JlIHByb2JhYmx5IHdoZXJlIHRoZSBtb3N0IGludGVyZXN0aW5nIGJ1Z3MgcmVzaWRlLCBhbmQgd2hlcmUgd2UnbGwgZmluZCB0aGUgbW9zdCBpbXBhY3RmdWwgdnVsbmVyYWJpbGl0aWVzLlxuXG5UaGUgaW5pdGlhbCBmdW5jdGlvbiBsaXN0IHRvIGV4cGxvcmUgaW5jbHVkZXMgYGJwZl90cmFtcG9saW5lX3NldF9mbGFnc2AsIHdoaWNoIGxvb2tzIHByb21pc2luZy4gVGhlbiB0aGVyZSdzIGBjaGVja19hdHRhY2hfYnRmX2lkYCwgd2hpY2ggY2F0Y2hlcyBteSBleWUgaW1tZWRpYXRlbHkuIEl0J3MgcmVsYXRlZCB0byBCVEYgKEJQRiBUeXBlIEZvcm1hdCkgYW5kIGF0dGFjaG1lbnQgcG9pbnRzLCBzbyBpdCdzIGxpa2VseSBhIGNyaXRpY2FsIGFyZWEgdG8gcHJvYmUuIEknbSBkaXNjYXJkaW5nIGBicGZfY2hlY2tgIGFzIGEgZGlyZWN0IGZ1enogdGFyZ2V0OyBpdCdzIGp1c3QgZmFyIHRvbyBicm9hZC4gSG93ZXZlciwgSSBhbSBrZWVwaW5nIGFuIGV5ZSBvbiBgYnBmX3RyYW1wb2xpbmVfdXBkYXRlYC4gSXQgcmVsYXRlcyB0byB0cmFtcG9saW5lcywgYW5kIHRoZXkgb2Z0ZW4gaW50ZXJhY3Qgd2l0aCBvdGhlciBCUEYgZnVuY3Rpb25zLCBzbyBpdCdzIGEgdmFsaWQgYXJlYSB0byBjb25zaWRlci5cblxuTm93LCBsZXQncyB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgYGNoZWNrX2F0dGFjaF9idGZfaWRgLiBJdCBzZWVtcyB0byBiZSBjYWxsZWQgZnJvbSBgYnBmX2NoZWNrYC4gVGhpcyBpcyBpbnRlcmVzdGluZzsgd2UgbWlnaHQgYmUgYWJsZSB0byBmaW5kIG1vcmUgc3VidGxlIGJ1Z3MgYnkgZm9jdXNpbmcgb24gdGhlIGludGVyYWN0aW9ucyB3aXRoaW4gdGhpcyByZWxhdGlvbnNoaXAuIFVsdGltYXRlbHksIHRoZSBxdWVzdGlvbiBpcywgKndoZXJlIGNhbiB3ZSBhY2hpZXZlIHRoZSBiZXN0IGltcGFjdCB3aXRoIG91ciBmdXp6ZXIgaW4gdGhlIHNob3J0ZXN0IGFtb3VudCBvZiB0aW1lPypcblxuXG4iLCJJbnB1dFRva2VucyI6NjIyMiwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwOTowNzo1NC4zMzg5MjA3NzRaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwMTQwMTgyNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjaGVja19hdHRhY2hfYnRmX2lkXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImtlcm5lbC9icGYvdmVyaWZpZXIuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJrZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTk0MDU9c3RhdGljIGJvb2wgY2FuX2JlX3NsZWVwYWJsZShzdHJ1Y3QgYnBmX3Byb2cgKnByb2cpXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTk0MzEtXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjE5NDMyOnN0YXRpYyBpbnQgY2hlY2tfYXR0YWNoX2J0Zl9pZChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52KVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xOTQzMy17XFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTk1MzEtXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjE5NTMyOmludCBicGZfY2hlY2tfYXR0YWNoX2J0Zl9pZF9tdWx0aShzdHJ1Y3QgYnRmICpidGYsIHN0cnVjdCBicGZfcHJvZyAqcHJvZywgdTMyIGJ0Zl9pZCxcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTk1MzMtXFx0XFx0XFx0XFx0ICBzdHJ1Y3QgYnBmX2F0dGFjaF90YXJnZXRfaW5mbyAqdGd0X2luZm8pXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MjAwNTc9aW50IGJwZl9jaGVjayhzdHJ1Y3QgYnBmX3Byb2cgKipwcm9nLCB1bmlvbiBicGZfYXR0ciAqYXR0ciwgYnBmcHRyX3QgdWF0dHIsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMjAyMDItXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjIwMjAzOlxcdHJldCA9IGNoZWNrX2F0dGFjaF9idGZfaWQoZW52KTtcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMjAyMDQtXFx0aWYgKHJldClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDk6MDc6NTQuNTQwNDAyOTExWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU3ODczMDMzNTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb24qKlxuXG5Pa2F5LCBzbyBsb29raW5nIGF0IHRoaXMgcGF0Y2gsIGBjaGVja19hdHRhY2hfYnRmX2lkYCBhbmQgYGJwZl90cmFtcG9saW5lX3NldF9mbGFnc2AgaW1tZWRpYXRlbHkgc3RhbmQgb3V0IGFzIGdvb2QgYXJlYXMgdG8gdGFyZ2V0IGZvciBmdXp6aW5nLiBUaGV5IHJlcHJlc2VudCBrZXkgZnVuY3Rpb25zIHdpdGhpbiB0aGUgbW9kaWZpZWQgQlBGIHRyYW1wb2xpbmUgbG9naWMuXG5cbkxldCdzIHF1aWNrbHkgY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBvdGhlciByZWxldmFudCBjb25maWd1cmF0aW9ucyBvciBwaWVjZXMgb2YgdGhlIHB1enpsZS4gQWgsIEkgc2VlIGEgdGVzdCB3YXMgYWRkZWQ6IGB0ZXN0X3RhaWxjYWxsX2JwZjJicGZfZmV4aXRfbGlua3NgIGluIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90YWlsY2FsbHMuY2AuIFRoYXQncyBhIEJQRi1zcGVjaWZpYyB0ZXN0LCBhbmQgaXQgZ2l2ZXMgdXMgc29tZSBjb250ZXh0LlxuXG5SaWdodCwgdGhlIHBhdGNoIGl0c2VsZiBpcyBtYWtpbmcgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIEJQRiB0cmFtcG9saW5lIGxvZ2ljLCBzcGVjaWZpY2FsbHkgYWRkcmVzc2luZyBhbiBpc3N1ZSB3aGVyZSBgdHItXHUwMDNlZmxhZ3NgIHdhcyBiZWluZyBvdmVyd3JpdHRlbiBpbnN0ZWFkIG9mIGJlaW5nIHVwZGF0ZWQgY29ycmVjdGx5IHdpdGggYW4gT1Igb3BlcmF0aW9uLCBhbmQgdW5kZXIgYSBsb2NrIHRvIHByZXZlbnQgYSByYWNlIGNvbmRpdGlvbi4gVGhpcyBpcyBhIGNyaXRpY2FsIGZpeCBhZmZlY3RpbmcgZnVuZGFtZW50YWwgQlBGIGJlaGF2aW9yLiBSYWNlIGNvbmRpdGlvbnMgYW5kIGluY29ycmVjdCBmbGFnIG1hbmlwdWxhdGlvbiBhcmUgdGhlIGtpbmQgb2YgYnVncyB0aGF0IHdlIHdhbnQgdG8gZXhwb3NlIHRocm91Z2ggZnV6emluZy5cblxuTGV0J3MgZ2V0IHRoaXMgb3JnYW5pemVkIGZvciBmdXp6aW5nLlxuXG5NeSBkZWNpc2lvbiB0byBmdXp6IHRoaXMgaXMgYmFzZWQgb24gdGhpcyByZWFzb25pbmc6IFRoZSBwYXRjaCBmaXhlcyBhIHJhY2UgY29uZGl0aW9uIGFuZCBpbmNvcnJlY3QgZmxhZyBhc3NpZ25tZW50IGluIEJQRiB0cmFtcG9saW5lIGxvZ2ljIGJ5IGludHJvZHVjaW5nIGEgbG9ja2VkIGJpdHdpc2UgT1IgdXBkYXRlIGZvciB0cmFtcG9saW5lIGZsYWdzLiBUaGlzIGlzIGNvcmUgQlBGIGZ1bmN0aW9uYWxpdHkgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuVGhlIHJlc3VsdHMgc2hvdWxkIGNvbnRhaW4gdGhlc2UgZGV0YWlsczpcblxuV29ydGhGdXp6aW5nOiBUcnVlXG5Gb2N1c1N5bWJvbHM6IFtcImJwZl90cmFtcG9saW5lX3NldF9mbGFnc1wiLCBcImNoZWNrX2F0dGFjaF9idGZfaWRcIl1cbkVuYWJsZUNvbmZpZ3M6IFtcIkJQRl9TWVNDQUxMXCIsIFwiQlBGX0pJVFwiXVxuXG5cbiIsIklucHV0VG9rZW5zIjo3MDUyLCJPdXRwdXRUb2tlbnMiOjEwOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwOTowODowMC4zMjc3MDk1NThaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTA1MzQyMzQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9TWVNDQUxMXCIsXG4gICAgXCJCUEZfSklUXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnBmX3RyYW1wb2xpbmVfc2V0X2ZsYWdzXCIsXG4gICAgXCJjaGVja19hdHRhY2hfYnRmX2lkXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSByYWNlIGNvbmRpdGlvbiBhbmQgaW5jb3JyZWN0IGZsYWcgYXNzaWdubWVudCBpbiBCUEYgdHJhbXBvbGluZSBsb2dpYyBieSBpbnRyb2R1Y2luZyBhIGxvY2tlZCBiaXR3aXNlIE9SIHVwZGF0ZSBmb3IgdHJhbXBvbGluZSBmbGFncy4gVGhpcyBpcyBjb3JlIEJQRiBmdW5jdGlvbmFsaXR5IHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiLFxuICAgIFwiQlBGX0pJVFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJwZl90cmFtcG9saW5lX3NldF9mbGFnc1wiLFxuICAgIFwiY2hlY2tfYXR0YWNoX2J0Zl9pZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gYW5kIGluY29ycmVjdCBmbGFnIGFzc2lnbm1lbnQgaW4gQlBGIHRyYW1wb2xpbmUgbG9naWMgYnkgaW50cm9kdWNpbmcgYSBsb2NrZWQgYml0d2lzZSBPUiB1cGRhdGUgZm9yIHRyYW1wb2xpbmUgZmxhZ3MuIFRoaXMgaXMgY29yZSBCUEYgZnVuY3Rpb25hbGl0eSB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowmltvb[1] Phase: Succeeded StartedAt: 2026-07-22 09:08:12 +0000 UTC FinishedAt: 2026-07-22 09:08:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmltvb[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-22 09:08:12 +0000 UTC FinishedAt: 2026-07-22 09:08:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmltvb[2] Phase: Succeeded StartedAt: 2026-07-22 09:08:12 +0000 UTC FinishedAt: 2026-07-22 13:36:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmltvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-22 09:08:12 +0000 UTC FinishedAt: 2026-07-22 13:36:42 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowmltvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-22 09:08:12 +0000 UTC FinishedAt: 2026-07-22 09:08:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmltvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-22 09:08:12 +0000 UTC FinishedAt: 2026-07-22 09:08:18 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.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-workflowmltvb/series-workflowmltvb-convert-artifact-1533268951/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmltvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-22 09:08:22 +0000 UTC FinishedAt: 2026-07-22 09:43:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmltvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-22 09:08:22 +0000 UTC FinishedAt: 2026-07-22 09:43:27 +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:*b40d0e9e-fa1c-4020-97fd-09bdf3d0c71c,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-workflowmltvb/series-workflowmltvb-convert-artifact-1533268951/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": "428a05e5-81b4-4f9d-bbad-2f7d7bae0009", "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-workflowmltvb/series-workflowmltvb-build-action-2713474093/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmltvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-22 09:08:22 +0000 UTC FinishedAt: 2026-07-22 09:43:06 +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:*b40d0e9e-fa1c-4020-97fd-09bdf3d0c71c,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-workflowmltvb/series-workflowmltvb-convert-artifact-1533268951/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": "428a05e5-81b4-4f9d-bbad-2f7d7bae0009", "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-workflowmltvb/series-workflowmltvb-build-action-2713474093/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmltvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-22 09:43:27 +0000 UTC FinishedAt: 2026-07-22 09:43:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmltvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-22 09:43:27 +0000 UTC FinishedAt: 2026-07-22 09:43:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmltvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-22 09:43:27 +0000 UTC FinishedAt: 2026-07-22 09:43:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmltvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-22 09:43:27 +0000 UTC FinishedAt: 2026-07-22 09:43:35 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.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-workflowmltvb/series-workflowmltvb-convert-artifact-3357399302/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmltvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-22 09:43:47 +0000 UTC FinishedAt: 2026-07-22 09:46:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmltvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-22 09:43:47 +0000 UTC FinishedAt: 2026-07-22 09:45:52 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*428a05e5-81b4-4f9d-bbad-2f7d7bae0009,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-workflowmltvb/series-workflowmltvb-build-action-2713474093/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-workflowmltvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-22 09:46:02 +0000 UTC FinishedAt: 2026-07-22 09:46:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmltvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-22 09:46:02 +0000 UTC FinishedAt: 2026-07-22 09:46:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmltvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-22 09:46:02 +0000 UTC FinishedAt: 2026-07-22 10:31:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmltvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-22 09:46:02 +0000 UTC FinishedAt: 2026-07-22 10:31:31 +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:*b40d0e9e-fa1c-4020-97fd-09bdf3d0c71c,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-workflowmltvb/series-workflowmltvb-convert-artifact-3357399302/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": "248e38e0-7c67-4719-bbc2-30f37526287e", "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-workflowmltvb/series-workflowmltvb-build-action-2175610698/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmltvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-22 09:46:02 +0000 UTC FinishedAt: 2026-07-22 10:31:21 +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:*b40d0e9e-fa1c-4020-97fd-09bdf3d0c71c,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-workflowmltvb/series-workflowmltvb-convert-artifact-3357399302/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": "248e38e0-7c67-4719-bbc2-30f37526287e", "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-workflowmltvb/series-workflowmltvb-build-action-2175610698/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmltvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-22 10:31:31 +0000 UTC FinishedAt: 2026-07-22 10:31:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmltvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-22 10:31:31 +0000 UTC FinishedAt: 2026-07-22 10:31:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmltvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-22 10:31:31 +0000 UTC FinishedAt: 2026-07-22 10:33:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmltvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-22 10:31:31 +0000 UTC FinishedAt: 2026-07-22 10:33:31 +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:*248e38e0-7c67-4719-bbc2-30f37526287e,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-workflowmltvb/series-workflowmltvb-build-action-2175610698/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-workflowmltvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-22 10:33:41 +0000 UTC FinishedAt: 2026-07-22 13:36:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmltvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-22 10:33:41 +0000 UTC FinishedAt: 2026-07-22 13:36:42 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:track,Default:nil,Value:*KASAN,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:base-build-id,Default:nil,Value:*428a05e5-81b4-4f9d-bbad-2f7d7bae0009,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*248e38e0-7c67-4719-bbc2-30f37526287e,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-workflowmltvb/series-workflowmltvb-build-action-2713474093/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-workflowmltvb/series-workflowmltvb-build-action-2175610698/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowmltvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-22 10:33:41 +0000 UTC FinishedAt: 2026-07-22 10:33:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmltvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-22 10:33:41 +0000 UTC FinishedAt: 2026-07-22 10:33:46 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowmltvb/series-workflowmltvb-convert-artifact-2854847435/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmltvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-22 10:33:41 +0000 UTC FinishedAt: 2026-07-22 10:33:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmltvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-22 10:33:41 +0000 UTC FinishedAt: 2026-07-22 10:33:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmltvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-22 10:33:41 +0000 UTC FinishedAt: 2026-07-22 10:33:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmltvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-22 10:33:52 +0000 UTC FinishedAt: 2026-07-22 13:36:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmltvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_trampoline_set_flags","check_attach_btf_id"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7c25590d03abcb5424723f90641fda5b6cefffc8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"b3197a7c-155d-4e03-8ef1-950d81690fe2","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-22 10:33:52 +0000 UTC FinishedAt: 2026-07-22 13:36:33 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*428a05e5-81b4-4f9d-bbad-2f7d7bae0009,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*248e38e0-7c67-4719-bbc2-30f37526287e,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-workflowmltvb/series-workflowmltvb-build-action-2713474093/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-workflowmltvb/series-workflowmltvb-build-action-2175610698/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-workflowmltvb/series-workflowmltvb-convert-artifact-2854847435/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,}