Name: series-workflowxplfp Phase: Succeeded StartedAt: 2026-07-11 20:00:59 +0000 UTC FinishedAt: 2026-07-12 01:04:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxplfp[0] Phase: Succeeded StartedAt: 2026-07-11 20:00:59 +0000 UTC FinishedAt: 2026-07-11 20:21:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxplfp[0].run-triage Phase: Succeeded StartedAt: 2026-07-11 20:00:59 +0000 UTC FinishedAt: 2026-07-11 20:21:46 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "61cccb8363fcc282d4ae0555b8739dd227f5ad0b", "config_name": "upstream-apparmor-kasan.config", "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "61cccb8363fcc282d4ae0555b8739dd227f5ad0b", "config_name": "upstream-apparmor-kasan.config", "series_id": "64ba4e5f-a17e-4801-8dfe-1acdfa489b3c" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "truncate_folio_batch_exceptionals" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db", "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": true, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDIwOjIxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBjaGVjayBmb3IgYG5yIFx1MDAzYz0gMGAgaW4gYHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFsc2AsIHdoaWNoIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBtZW1vcnkgbWFuYWdlbWVudCBjb2RlLiBJdCBwcmV2ZW50cyBwb3RlbnRpYWwgaXNzdWVzIHdoZW4gdGhlIGZvbGlvIGJhdGNoIGNvdW50IGlzIHplcm8gb3IgbmVnYXRpdmUuIFRoaXMgZnVuY3Rpb24gaXMgcmVhY2hhYmxlIHRocm91Z2ggc3RhbmRhcmQgZmlsZSB0cnVuY2F0aW9uIHBhdGhzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDIwOjIxPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNTY2MjU0Zjk5MDUwNWI5YmExYzY2MTBkM2FmZDQxNGUwYzYyZDNiNFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgSnVsIDExIDIwOjIxOjE3IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL21tL3RydW5jYXRlLmMgYi9tbS90cnVuY2F0ZS5jXG5pbmRleCBiNThiYTk0MGJlNDc0MC4uYzIyODAzZDU5YmYwYTMgMTAwNjQ0XG4tLS0gYS9tbS90cnVuY2F0ZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9tbS90cnVuY2F0ZS5jXG5AQCAtNjksNiAmIzQzOzY5LDkgQEAgc3RhdGljIHZvaWQgdHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLFxuIFx0aWYgKHNobWVtX21hcHBpbmcobWFwcGluZykpXG4gXHRcdHJldHVybjtcbiBcbiYjNDM7XHRpZiAobGlrZWx5KG5yIFx1MDAzYz0gMCkpXG4mIzQzO1x0XHRyZXR1cm47XG4mIzQzO1xuIFx0Zm9yIChqID0gMDsgaiBcdTAwM2MgbnI7IGomIzQzOyYjNDM7KVxuIFx0XHRpZiAoeGFfaXNfdmFsdWUoZmJhdGNoLVx1MDAzZWZvbGlvc1tqXSkpXG4gXHRcdFx0YnJlYWs7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMjA6MjE8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHMmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGNoZWNrIGZvciBgbnIgXHUwMDNjPSAwYCBpbiBgdHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzYCwgd2hpY2ggaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIG1lbW9yeSBtYW5hZ2VtZW50IGNvZGUuIEl0IHByZXZlbnRzIHBvdGVudGlhbCBpc3N1ZXMgd2hlbiB0aGUgZm9saW8gYmF0Y2ggY291bnQgaXMgemVybyBvciBuZWdhdGl2ZS4gVGhpcyBmdW5jdGlvbiBpcyByZWFjaGFibGUgdGhyb3VnaCBzdGFuZGFyZCBmaWxlIHRydW5jYXRpb24gcGF0aHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDU2NjI1NGY5OTA1MDViOWJhMWM2NjEwZDNhZmQ0MTRlMGM2MmQzYjQKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU2F0IEp1bCAxMSAyMDoyMToxNyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL21tL3RydW5jYXRlLmMgYi9tbS90cnVuY2F0ZS5jCmluZGV4IGI1OGJhOTQwYmU0NzQwLi5jMjI4MDNkNTliZjBhMyAxMDA2NDQKLS0tIGEvbW0vdHJ1bmNhdGUuYwomIzQzOyYjNDM7JiM0MzsgYi9tbS90cnVuY2F0ZS5jCkBAIC02OSw2ICYjNDM7NjksOSBAQCBzdGF0aWMgdm9pZCB0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHMoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsCiAJaWYgKHNobWVtX21hcHBpbmcobWFwcGluZykpCiAJCXJldHVybjsKIAomIzQzOwlpZiAobGlrZWx5KG5yICZsdDs9IDApKQomIzQzOwkJcmV0dXJuOwomIzQzOwogCWZvciAoaiA9IDA7IGogJmx0OyBucjsgaiYjNDM7JiM0MzspCiAJCWlmICh4YV9pc192YWx1ZShmYmF0Y2gtJmd0O2ZvbGlvc1tqXSkpCiAJCQlicmVhazsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMjA6MjE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTgwNAoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDc3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLgoKKipBbmFseXppbmcgYSBUcnVuY2F0ZSBPcHRpbWl6YXRpb24qKgoKUmlnaHQsIHNvIHRoZXJlJiMzOTtzIGEgcGF0Y2ggYW5kIGl0JiMzOTtzIHRvdWNoaW5nIGBtbS90cnVuY2F0ZS5jYC4gU3BlY2lmaWNhbGx5LCB0aGUgZnVuY3Rpb24gYHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFsc2AuIEFoLCBJIHJlbWVtYmVyIHRoaXMgb25lIC0gaXQmIzM5O3MgcmVsYXRlZCB0byBoYW5kbGluZyBleGNlcHRpb25hbCBjYXNlcyBkdXJpbmcgYSBiYXRjaCB0cnVuY2F0aW9uIG9wZXJhdGlvbiwgcHJvYmFibHkgZGVhbGluZyB3aXRoIGVycm9ycyBvciBlZGdlIGNvbmRpdGlvbnMuCgpUaGUgcGF0Y2ggaXRzZWxmIGlzIGFkZGluZyBhIHNpbXBsZSBjaGVjazoKCmBgYGMKCWlmIChsaWtlbHkobnIgJmx0Oz0gMCkpCgkJcmV0dXJuOwpgYGAKCkludGVyZXN0aW5nLiBgbnJgIGlzIGxpa2VseSB0aGUgbnVtYmVyIG9mIGV4Y2VwdGlvbmFsIGZvbGlvcy4gU28sIHRoaXMgaXMgYSB2ZXJ5IHN0cmFpZ2h0Zm9yd2FyZCBvcHRpbWl6YXRpb24uIElmIHRoZSBjb3VudCBvZiBleGNlcHRpb25hbCBmb2xpb3MgaXMgemVybyBvciBuZWdhdGl2ZSAod2hpY2ggc2hvdWxkbiYjMzk7dCBoYXBwZW4sIGJ1dCBkZWZlbnNpdmUgcHJvZ3JhbW1pbmcgaXMgZ29vZCksIHdlIGp1c3QgcmV0dXJuIGltbWVkaWF0ZWx5LiBUaGlzIGF2b2lkcyB1bm5lY2Vzc2FyeSB3b3JrLCBza2lwcGluZyB0aGUgcmVzdCBvZiB0aGUgZnVuY3Rpb24mIzM5O3MgbG9naWMuIEdpdmVuIHRoZSBgbGlrZWx5KClgIGhpbnQgdG8gdGhlIGNvbXBpbGVyLCB0aGlzIGNoZWNrIGlzIGV4cGVjdGVkIHRvIGJlICp2ZXJ5KiBmcmVxdWVudGx5IHRydWUuIFRoYXQgaXMsIHRoYXQgdGhlIGNvdW50IHdpbGwgYWxtb3N0IGFsd2F5cyBiZSB6ZXJvIChvciBjbG9zZSB0byB6ZXJvKQpJIHdpbGwgbm93IGRpZyBpbnRvIGB0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHNgIGl0c2VsZiB0byB1bmRlcnN0YW5kIHRoZSBjb250ZXh0IGFuZCBob3cgc2lnbmlmaWNhbnQgdGhpcyBlYXJseSBleGl0IGlzLiBJdCBzZWVtcyBsaWtlIGl0IHdpbGwgYmUgYSByZWxhdGl2ZWx5IGxvdy1pbXBhY3Qgb3B0aW1pemF0aW9uLCBidXQgaXQgZGVwZW5kcyBvbiBob3cgZnJlcXVlbnRseSB0aGUgZXhjZXB0aW9uYWwgY2FzZSBhcmlzZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMjA6MjE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bW0vdHJ1bmNhdGUuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDttbS90cnVuY2F0ZS5jPTI2PXN0YXRpYyB2b2lkIGNsZWFyX3NoYWRvd19lbnRyaWVzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLFxuLS1cbm1tL3RydW5jYXRlLmMtNTktICovXG5tbS90cnVuY2F0ZS5jOjYwOnN0YXRpYyB2b2lkIHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFscyhzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyxcbm1tL3RydW5jYXRlLmMtNjEtXHRcdFx0XHRzdHJ1Y3QgZm9saW9fYmF0Y2ggKmZiYXRjaCwgcGdvZmZfdCAqaW5kaWNlcylcbi0tXG5tbS90cnVuY2F0ZS5jPTM2OT12b2lkIHRydW5jYXRlX2lub2RlX3BhZ2VzX3JhbmdlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLFxuLS1cbm1tL3RydW5jYXRlLmMtNDA0LVx0XHRcdFx1MDAyNmZiYXRjaCwgaW5kaWNlcykpIHtcbm1tL3RydW5jYXRlLmM6NDA1Olx0XHR0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHMobWFwcGluZywgXHUwMDI2ZmJhdGNoLCBpbmRpY2VzKTtcbm1tL3RydW5jYXRlLmMtNDA2LVx0XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBmb2xpb19iYXRjaF9jb3VudChcdTAwMjZmYmF0Y2gpOyBpJiM0MzsmIzQzOylcbi0tXG5tbS90cnVuY2F0ZS5jLTQ2Ni1cdFx0fVxubW0vdHJ1bmNhdGUuYzo0Njc6XHRcdHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFscyhtYXBwaW5nLCBcdTAwMjZmYmF0Y2gsIGluZGljZXMpO1xubW0vdHJ1bmNhdGUuYy00NjgtXHRcdGZvbGlvX2JhdGNoX3JlbGVhc2UoXHUwMDI2ZmJhdGNoKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAyMDoyMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNDY4CgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRGl2aW5nIGludG8gYHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFsc2AqKgoKT2theSwgc28gSSYjMzk7bSB0aGlua2luZyBhYm91dCB0aGF0IGB0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHNgIGZ1bmN0aW9uLCBidXJpZWQgZGVlcCBpbiBgbW0vdHJ1bmNhdGUuY2AuIE15IGltbWVkaWF0ZSBnb2FsIGlzIHRvIHVuZGVyc3RhbmQgaG93IGl0IGhhbmRsZXMsIHdlbGwsICpleGNlcHRpb25hbCogY2FzZXMgZHVyaW5nIGEgZm9saW8gdHJ1bmNhdGlvbiBvcGVyYXRpb24uIEkmIzM5O20gYXNzdW1pbmcgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBlZGdlIGNvbmRpdGlvbnMgaGVyZSDigJMgcGVyaGFwcyBpc3N1ZXMgd2l0aCBwYXJ0aWFsbHkgd3JpdHRlbiBmb2xpb3MsIGNvbmN1cnJlbnQgbW9kaWZpY2F0aW9ucywgb3IgbWF5YmUgZXZlbiBzdWJ0bGUgcmFjZSBjb25kaXRpb25zLiBUaGUgbmFtZSBhbG9uZSBoaW50cyBhdCBzaXR1YXRpb25zIHRoYXQgYXJlbiYjMzk7dCB0aGUgbm9ybS4gSSYjMzk7bGwgbmVlZCB0byBwYXkgcGFydGljdWxhciBhdHRlbnRpb24gdG8gaXRzIGxvY2tpbmcgc3RyYXRlZ3ksIGVycm9yIGhhbmRsaW5nLCBhbmQgaG93IGl0IGludGVyYWN0cyB3aXRoIHRoZSBmb2xpbyByZWNsYWltIHBhdGguIEkgc3VzcGVjdCB0aGF0IGEgZGVlcCB1bmRlcnN0YW5kaW5nIG9mIGl0cyBmdW5jdGlvbiBpcyB2aXRhbCB0byBlbnN1cmUgdGhhdCB3ZSBtYWludGFpbiBzeXN0ZW0gc3RhYmlsaXR5LCBwYXJ0aWN1bGFybHkgd2l0aGluIHdvcmtsb2FkcyB0aGF0IHBsYWNlIGEgaGlnaCBkZW1hbmQgb24gdGhlIHN5c3RlbSYjMzk7cyBtZW1vcnkgbWFuYWdlbWVudC4gSSByZWFsbHkgbmVlZCB0byBnZXQgbXkgaGFuZHMgZGlydHkgYW5kIHN0YXJ0IGRpc3NlY3RpbmcgdGhlIGltcGxlbWVudGF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDIwOjIxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bW0vdHJ1bmNhdGUuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDU5LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgNTk6XHQgKi9cbiAgNjA6XHRzdGF0aWMgdm9pZCB0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHMoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsXG4gIDYxOlx0XHRcdFx0XHRzdHJ1Y3QgZm9saW9fYmF0Y2ggKmZiYXRjaCwgcGdvZmZfdCAqaW5kaWNlcylcbiAgNjI6XHR7XG4gIDYzOlx0XHRYQV9TVEFURSh4YXMsIFx1MDAyNm1hcHBpbmctXHUwMDNlaV9wYWdlcywgaW5kaWNlc1swXSk7XG4gIDY0Olx0XHRpbnQgbnIgPSBmb2xpb19iYXRjaF9jb3VudChmYmF0Y2gpO1xuICA2NTpcdFx0c3RydWN0IGZvbGlvICpmb2xpbztcbiAgNjY6XHRcdGludCBpLCBqO1xuICA2NzpcdFxuICA2ODpcdFx0LyogSGFuZGxlZCBieSBzaG1lbSBpdHNlbGYgKi9cbiAgNjk6XHRcdGlmIChzaG1lbV9tYXBwaW5nKG1hcHBpbmcpKVxuICA3MDpcdFx0XHRyZXR1cm47XG4gIDcxOlx0XG4gIDcyOlx0XHRpZiAobGlrZWx5KG5yIFx1MDAzYz0gMCkpXG4gIDczOlx0XHRcdHJldHVybjtcbiAgNzQ6XHRcbiAgNzU6XHRcdGZvciAoaiA9IDA7IGogXHUwMDNjIG5yOyBqJiM0MzsmIzQzOylcbiAgNzY6XHRcdFx0aWYgKHhhX2lzX3ZhbHVlKGZiYXRjaC1cdTAwM2Vmb2xpb3Nbal0pKVxuICA3NzpcdFx0XHRcdGJyZWFrO1xuICA3ODpcdFxuICA3OTpcdFx0aWYgKGogPT0gbnIpXG4gIDgwOlx0XHRcdHJldHVybjtcbiAgODE6XHRcbiAgODI6XHRcdGlmIChkYXhfbWFwcGluZyhtYXBwaW5nKSkge1xuICA4MzpcdFx0XHRmb3IgKGkgPSBqOyBpIFx1MDAzYyBucjsgaSYjNDM7JiM0MzspIHtcbiAgODQ6XHRcdFx0XHRpZiAoeGFfaXNfdmFsdWUoZmJhdGNoLVx1MDAzZWZvbGlvc1tpXSkpIHtcbiAgODU6XHRcdFx0XHRcdC8qXG4gIDg2Olx0XHRcdFx0XHQgKiBGaWxlIHN5c3RlbXMgc2hvdWxkIGFscmVhZHkgaGF2ZSBjYWxsZWRcbiAgODc6XHRcdFx0XHRcdCAqIGRheF9icmVha19sYXlvdXRfZW50cnkoKSB0byByZW1vdmUgYWxsIERBWFxuICA4ODpcdFx0XHRcdFx0ICogZW50cmllcyB3aGlsZSBob2xkaW5nIGEgbG9jayB0byBwcmV2ZW50XG4gIDg5Olx0XHRcdFx0XHQgKiBlc3RhYmxpc2hpbmcgbmV3IGVudHJpZXMuIFRoZXJlZm9yZSB3ZVxuICA5MDpcdFx0XHRcdFx0ICogc2hvdWxkbiYjMzk7dCBmaW5kIGFueSBoZXJlLlxuICA5MTpcdFx0XHRcdFx0ICovXG4gIDkyOlx0XHRcdFx0XHRXQVJOX09OX09OQ0UoMSk7XG4gIDkzOlx0XG4gIDk0Olx0XHRcdFx0XHQvKlxuICA5NTpcdFx0XHRcdFx0ICogRGVsZXRlIHRoZSBtYXBwaW5nIHNvIHRydW5jYXRlX3BhZ2VjYWNoZSgpXG4gIDk2Olx0XHRcdFx0XHQgKiBkb2VzbiYjMzk7dCBsb29wIGZvcmV2ZXIuXG4gIDk3Olx0XHRcdFx0XHQgKi9cbiAgOTg6XHRcdFx0XHRcdGRheF9kZWxldGVfbWFwcGluZ19lbnRyeShtYXBwaW5nLCBpbmRpY2VzW2ldKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAyMDoyMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMjU0CgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogODkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uCgoqKkFuYWx5emluZyBhIEtlcm5lbCBQYXRjaDogYHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFsc2AqKgoKUmlnaHQsIHNvIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIGNydWNpYWwgY2hlY2s6IGBpZiAobGlrZWx5KG5yICZsdDs9IDApKSByZXR1cm47YCBpbnNpZGUgdGhlIGB0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHNgIGZ1bmN0aW9uLiBFc3NlbnRpYWxseSwgaXQmIzM5O3MgYSBkZWZlbnNpdmUgcHJvZ3JhbW1pbmcgbWVhc3VyZS4gVGhlIGZ1bmN0aW9uIHByb2Nlc3NlcyBhIGJhdGNoIG9mIGZvbGlvcywgYW5kIHRoZSBuZXcgY29kZSBwcmVlbXB0aXZlbHkgZGVhbHMgd2l0aCBzaXR1YXRpb25zIHdoZXJlIHRoZSBiYXRjaCBzaXplIChgbnJgKSBpcyBlaXRoZXIgemVybyBvciwgaGVhdmVuIGZvcmJpZCwgbmVnYXRpdmUuIFRoYXQmIzM5O3MgZ29vZCwgYmVjYXVzZSBhbnl0aGluZyBvdGhlciB0aGFuIGEgcG9zaXRpdmUgY291bnQgZm9yIGZvbGlvcyB3b3VsZCBsZWFkIHRvIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIGFjY2VzcyBvciwgYXQgdGhlIHZlcnkgbGVhc3QsIHdhc3RlZCBjeWNsZXMgaWYgdGhlIGZ1bmN0aW9uIHdlcmUgY2FsbGVkIHdpdGggYW4gZW1wdHkgYmF0Y2guCgpOb3csIHRoZSBpbXBvcnRhbnQgY29udGV4dCBpcyBob3cgdGhpcyBmdW5jdGlvbiBmaXRzIGludG8gdGhlIGxhcmdlciBwaWN0dXJlLiBJIGtub3cgYHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFsc2AgaXMgY2FsbGVkIGZyb20gYHRydW5jYXRlX2lub2RlX3BhZ2VzX3JhbmdlYC4gTXkgbmV4dCBzdGVwIGlzIHRvIHF1aWNrbHkgdHJhY2UgdGhlIGNhbGwgc2l0ZXMgb2YgYHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFsc2AgaW4gdGhpcyBmaWxlLiBJdCYjMzk7cyBpbXBvcnRhbnQgdG8gdW5kZXJzdGFuZCBob3cgd2lkZXNwcmVhZCB0aGUgaW1wYWN0IG9mIHRoaXMgY2hhbmdlIG1pZ2h0IGJlLiBUaGlzIGtpbmQgb2Ygb3B0aW1pemF0aW9uIG9yIGVycm9yLWhhbmRsaW5nIGltcHJvdmVtZW50IGlzIGFsd2F5cyBpbnRlcmVzdGluZyB0byBkaXNzZWN0IGluIGEgbGFyZ2VyIHN5c3RlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAyMDoyMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDttbS90cnVuY2F0ZS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O21tL3RydW5jYXRlLmM9MjY9c3RhdGljIHZvaWQgY2xlYXJfc2hhZG93X2VudHJpZXMoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsXG4tLVxubW0vdHJ1bmNhdGUuYy01OS0gKi9cbm1tL3RydW5jYXRlLmM6NjA6c3RhdGljIHZvaWQgdHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLFxubW0vdHJ1bmNhdGUuYy02MS1cdFx0XHRcdHN0cnVjdCBmb2xpb19iYXRjaCAqZmJhdGNoLCBwZ29mZl90ICppbmRpY2VzKVxuLS1cbm1tL3RydW5jYXRlLmM9MzY5PXZvaWQgdHJ1bmNhdGVfaW5vZGVfcGFnZXNfcmFuZ2Uoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsXG4tLVxubW0vdHJ1bmNhdGUuYy00MDQtXHRcdFx0XHUwMDI2ZmJhdGNoLCBpbmRpY2VzKSkge1xubW0vdHJ1bmNhdGUuYzo0MDU6XHRcdHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFscyhtYXBwaW5nLCBcdTAwMjZmYmF0Y2gsIGluZGljZXMpO1xubW0vdHJ1bmNhdGUuYy00MDYtXHRcdGZvciAoaSA9IDA7IGkgXHUwMDNjIGZvbGlvX2JhdGNoX2NvdW50KFx1MDAyNmZiYXRjaCk7IGkmIzQzOyYjNDM7KVxuLS1cbm1tL3RydW5jYXRlLmMtNDY2LVx0XHR9XG5tbS90cnVuY2F0ZS5jOjQ2NzpcdFx0dHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzKG1hcHBpbmcsIFx1MDAyNmZiYXRjaCwgaW5kaWNlcyk7XG5tbS90cnVuY2F0ZS5jLTQ2OC1cdFx0Zm9saW9fYmF0Y2hfcmVsZWFzZShcdTAwMjZmYmF0Y2gpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDIwOjIxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM5MTIKCQkJCQkJCW91dHB1dDogOTkKCQkJCQkJCXRob3VnaHRzOiA3OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duOgoKKipUcnVuY2F0ZSBJbm9kZSBQYWdlcyBSYW5nZTogQSBQcm9taXNpbmcgRnV6emluZyBUYXJnZXQqKgoKQWxyaWdodCwgc28gdGhlIGZ1bmN0aW9uIGluIHF1ZXN0aW9uIGhlcmUgaXMgYHRydW5jYXRlX2lub2RlX3BhZ2VzX3JhbmdlYC4gSXQmIzM5O3MgYSBrZXkgcGllY2Ugb2YgdGhlIFZpcnR1YWwgRmlsZSBTeXN0ZW0gKFZGUykgYW5kIE1lbW9yeSBNYW5hZ2VtZW50IChNTSkgaW5mcmFzdHJ1Y3R1cmUuIENvbnNpZGVyaW5nIGhvdyBmb3VuZGF0aW9uYWwgaXQgaXMsIGl0JiMzOTtzIGFic29sdXRlbHkgZ29pbmcgdG8gYmUgcmVhY2hhYmxlIGluIGEgd2lkZSB2YXJpZXR5IG9mIHNjZW5hcmlvcywgbWFraW5nIGl0IGEgcHJpbWUgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBHaXZlbiBpdHMgY2VudHJhbGl0eSwgZnV6emluZyB0aGlzIGZ1bmN0aW9uIGhvbGRzIGEgaGlnaCBwcm9iYWJpbGl0eSBvZiBmaW5kaW5nIGlzc3VlcyB0aGF0IHdpbGwgbWFrZSBhIGJpZyBkaWZmZXJlbmNlLCBpZiBpdCB5aWVsZHMgcmVzdWx0cy4KCkkmIzM5O2Qgd2FudCB0byBob21lIGluIG9uIGB0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHNgIGFzIHRoZSBmb2N1cyBzeW1ib2wgd2l0aGluIHRoYXQgZnVuY3Rpb247IGl0IGFwcGVhcnMgdG8gYmUgd2hlcmUgYSBsb3Qgb2YgdGhlIGNyaXRpY2FsIGxvZ2ljIHJlc2lkZXMuIFRoYW5rZnVsbHksIHNpbmNlIHRoaXMgaXMgY29yZSBNTSBjb2RlLCBubyBzcGVjaWFsIGtlcm5lbCBjb25maWdzIHNob3VsZCBiZSByZXF1aXJlZC4gV2UgY2FuIGp1c3QgZGl2ZSByaWdodCBpbi4KCk5vdywgbGV0JiMzOTtzIGdldCB0aGUgYmFsbCByb2xsaW5nIGFuZCBzZXQgdXAgdGhlIHRlc3RpbmcgZnJhbWV3b3JrLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAyMDoyMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBjaGVjayBmb3IgYG5yIFx1MDAzYz0gMGAgaW4gYHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFsc2AsIHdoaWNoIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBtZW1vcnkgbWFuYWdlbWVudCBjb2RlLiBJdCBwcmV2ZW50cyBwb3RlbnRpYWwgaXNzdWVzIHdoZW4gdGhlIGZvbGlvIGJhdGNoIGNvdW50IGlzIHplcm8gb3IgbmVnYXRpdmUuIFRoaXMgZnVuY3Rpb24gaXMgcmVhY2hhYmxlIHRocm91Z2ggc3RhbmRhcmQgZmlsZSB0cnVuY2F0aW9uIHBhdGhzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3RydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFscyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgY2hlY2sgZm9yIGBuciBcdTAwM2M9IDBgIGluIGB0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHNgLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgbWVtb3J5IG1hbmFnZW1lbnQgY29kZS4gSXQgcHJldmVudHMgcG90ZW50aWFsIGlzc3VlcyB3aGVuIHRoZSBmb2xpbyBiYXRjaCBjb3VudCBpcyB6ZXJvIG9yIG5lZ2F0aXZlLiBUaGlzIGZ1bmN0aW9uIGlzIHJlYWNoYWJsZSB0aHJvdWdoIHN0YW5kYXJkIGZpbGUgdHJ1bmNhdGlvbiBwYXRocy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDIwOjIxOjE4LjExMDIxNTMyN1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1OTk1MjEzNjg0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFsc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBjaGVjayBmb3IgYG5yIFxcdTAwM2M9IDBgIGluIGB0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHNgLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgbWVtb3J5IG1hbmFnZW1lbnQgY29kZS4gSXQgcHJldmVudHMgcG90ZW50aWFsIGlzc3VlcyB3aGVuIHRoZSBmb2xpbyBiYXRjaCBjb3VudCBpcyB6ZXJvIG9yIG5lZ2F0aXZlLiBUaGlzIGZ1bmN0aW9uIGlzIHJlYWNoYWJsZSB0aHJvdWdoIHN0YW5kYXJkIGZpbGUgdHJ1bmNhdGlvbiBwYXRocy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMjA6MjE6MTguMTEwMjIxMDM3WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyOTU5Njg0NjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA1NjYyNTRmOTkwNTA1YjliYTFjNjYxMGQzYWZkNDE0ZTBjNjJkM2I0XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgSnVsIDExIDIwOjIxOjE3IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL21tL3RydW5jYXRlLmMgYi9tbS90cnVuY2F0ZS5jXFxuaW5kZXggYjU4YmE5NDBiZTQ3NDAuLmMyMjgwM2Q1OWJmMGEzIDEwMDY0NFxcbi0tLSBhL21tL3RydW5jYXRlLmNcXG4rKysgYi9tbS90cnVuY2F0ZS5jXFxuQEAgLTY5LDYgKzY5LDkgQEAgc3RhdGljIHZvaWQgdHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLFxcbiBcXHRpZiAoc2htZW1fbWFwcGluZyhtYXBwaW5nKSlcXG4gXFx0XFx0cmV0dXJuO1xcbiBcXG4rXFx0aWYgKGxpa2VseShuciBcXHUwMDNjPSAwKSlcXG4rXFx0XFx0cmV0dXJuO1xcbitcXG4gXFx0Zm9yIChqID0gMDsgaiBcXHUwMDNjIG5yOyBqKyspXFxuIFxcdFxcdGlmICh4YV9pc192YWx1ZShmYmF0Y2gtXFx1MDAzZWZvbGlvc1tqXSkpXFxuIFxcdFxcdFxcdGJyZWFrO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQyMDoyMToxOC40MDcxNDI3NDZaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE1Njk4Mjc3MzQ1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFsc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBjaGVjayBmb3IgYG5yIFxcdTAwM2M9IDBgIGluIGB0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHNgLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgbWVtb3J5IG1hbmFnZW1lbnQgY29kZS4gSXQgcHJldmVudHMgcG90ZW50aWFsIGlzc3VlcyB3aGVuIHRoZSBmb2xpbyBiYXRjaCBjb3VudCBpcyB6ZXJvIG9yIG5lZ2F0aXZlLiBUaGlzIGZ1bmN0aW9uIGlzIHJlYWNoYWJsZSB0aHJvdWdoIHN0YW5kYXJkIGZpbGUgdHJ1bmNhdGlvbiBwYXRocy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA1NjYyNTRmOTkwNTA1YjliYTFjNjYxMGQzYWZkNDE0ZTBjNjJkM2I0XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBKdWwgMTEgMjA6MjE6MTcgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9tbS90cnVuY2F0ZS5jIGIvbW0vdHJ1bmNhdGUuY1xuaW5kZXggYjU4YmE5NDBiZTQ3NDAuLmMyMjgwM2Q1OWJmMGEzIDEwMDY0NFxuLS0tIGEvbW0vdHJ1bmNhdGUuY1xuKysrIGIvbW0vdHJ1bmNhdGUuY1xuQEAgLTY5LDYgKzY5LDkgQEAgc3RhdGljIHZvaWQgdHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLFxuIFx0aWYgKHNobWVtX21hcHBpbmcobWFwcGluZykpXG4gXHRcdHJldHVybjtcbiBcbitcdGlmIChsaWtlbHkobnIgXHUwMDNjPSAwKSlcbitcdFx0cmV0dXJuO1xuK1xuIFx0Zm9yIChqID0gMDsgaiBcdTAwM2MgbnI7IGorKylcbiBcdFx0aWYgKHhhX2lzX3ZhbHVlKGZiYXRjaC1cdTAwM2Vmb2xpb3Nbal0pKVxuIFx0XHRcdGJyZWFrO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMjA6MjE6MTguNDA3MTQ0NjQ2WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzg4Mjg2MDQ3MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLlxuXG4qKkFuYWx5emluZyBhIFRydW5jYXRlIE9wdGltaXphdGlvbioqXG5cblJpZ2h0LCBzbyB0aGVyZSdzIGEgcGF0Y2ggYW5kIGl0J3MgdG91Y2hpbmcgYG1tL3RydW5jYXRlLmNgLiBTcGVjaWZpY2FsbHksIHRoZSBmdW5jdGlvbiBgdHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzYC4gQWgsIEkgcmVtZW1iZXIgdGhpcyBvbmUgLSBpdCdzIHJlbGF0ZWQgdG8gaGFuZGxpbmcgZXhjZXB0aW9uYWwgY2FzZXMgZHVyaW5nIGEgYmF0Y2ggdHJ1bmNhdGlvbiBvcGVyYXRpb24sIHByb2JhYmx5IGRlYWxpbmcgd2l0aCBlcnJvcnMgb3IgZWRnZSBjb25kaXRpb25zLlxuXG5UaGUgcGF0Y2ggaXRzZWxmIGlzIGFkZGluZyBhIHNpbXBsZSBjaGVjazpcblxuYGBgY1xuXHRpZiAobGlrZWx5KG5yIFx1MDAzYz0gMCkpXG5cdFx0cmV0dXJuO1xuYGBgXG5cbkludGVyZXN0aW5nLiBgbnJgIGlzIGxpa2VseSB0aGUgbnVtYmVyIG9mIGV4Y2VwdGlvbmFsIGZvbGlvcy4gU28sIHRoaXMgaXMgYSB2ZXJ5IHN0cmFpZ2h0Zm9yd2FyZCBvcHRpbWl6YXRpb24uIElmIHRoZSBjb3VudCBvZiBleGNlcHRpb25hbCBmb2xpb3MgaXMgemVybyBvciBuZWdhdGl2ZSAod2hpY2ggc2hvdWxkbid0IGhhcHBlbiwgYnV0IGRlZmVuc2l2ZSBwcm9ncmFtbWluZyBpcyBnb29kKSwgd2UganVzdCByZXR1cm4gaW1tZWRpYXRlbHkuIFRoaXMgYXZvaWRzIHVubmVjZXNzYXJ5IHdvcmssIHNraXBwaW5nIHRoZSByZXN0IG9mIHRoZSBmdW5jdGlvbidzIGxvZ2ljLiBHaXZlbiB0aGUgYGxpa2VseSgpYCBoaW50IHRvIHRoZSBjb21waWxlciwgdGhpcyBjaGVjayBpcyBleHBlY3RlZCB0byBiZSAqdmVyeSogZnJlcXVlbnRseSB0cnVlLiBUaGF0IGlzLCB0aGF0IHRoZSBjb3VudCB3aWxsIGFsbW9zdCBhbHdheXMgYmUgemVybyAob3IgY2xvc2UgdG8gemVybylcbkkgd2lsbCBub3cgZGlnIGludG8gYHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFsc2AgaXRzZWxmIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQgYW5kIGhvdyBzaWduaWZpY2FudCB0aGlzIGVhcmx5IGV4aXQgaXMuIEl0IHNlZW1zIGxpa2UgaXQgd2lsbCBiZSBhIHJlbGF0aXZlbHkgbG93LWltcGFjdCBvcHRpbWl6YXRpb24sIGJ1dCBpdCBkZXBlbmRzIG9uIGhvdyBmcmVxdWVudGx5IHRoZSBleGNlcHRpb25hbCBjYXNlIGFyaXNlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTgwNCwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc3LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMjA6MjE6MjIuMjkwMDA2NzA3WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1OTMyNjQ5NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibW0vdHJ1bmNhdGUuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJtbS90cnVuY2F0ZS5jPTI2PXN0YXRpYyB2b2lkIGNsZWFyX3NoYWRvd19lbnRyaWVzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLFxcbi0tXFxubW0vdHJ1bmNhdGUuYy01OS0gKi9cXG5tbS90cnVuY2F0ZS5jOjYwOnN0YXRpYyB2b2lkIHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFscyhzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyxcXG5tbS90cnVuY2F0ZS5jLTYxLVxcdFxcdFxcdFxcdHN0cnVjdCBmb2xpb19iYXRjaCAqZmJhdGNoLCBwZ29mZl90ICppbmRpY2VzKVxcbi0tXFxubW0vdHJ1bmNhdGUuYz0zNjk9dm9pZCB0cnVuY2F0ZV9pbm9kZV9wYWdlc19yYW5nZShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyxcXG4tLVxcbm1tL3RydW5jYXRlLmMtNDA0LVxcdFxcdFxcdFxcdTAwMjZmYmF0Y2gsIGluZGljZXMpKSB7XFxubW0vdHJ1bmNhdGUuYzo0MDU6XFx0XFx0dHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzKG1hcHBpbmcsIFxcdTAwMjZmYmF0Y2gsIGluZGljZXMpO1xcbm1tL3RydW5jYXRlLmMtNDA2LVxcdFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBmb2xpb19iYXRjaF9jb3VudChcXHUwMDI2ZmJhdGNoKTsgaSsrKVxcbi0tXFxubW0vdHJ1bmNhdGUuYy00NjYtXFx0XFx0fVxcbm1tL3RydW5jYXRlLmM6NDY3OlxcdFxcdHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFscyhtYXBwaW5nLCBcXHUwMDI2ZmJhdGNoLCBpbmRpY2VzKTtcXG5tbS90cnVuY2F0ZS5jLTQ2OC1cXHRcXHRmb2xpb19iYXRjaF9yZWxlYXNlKFxcdTAwMjZmYmF0Y2gpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQyMDoyMToyMi41NDkzNDIyNzNaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNTc3MTQwNDMzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipEaXZpbmcgaW50byBgdHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzYCoqXG5cbk9rYXksIHNvIEknbSB0aGlua2luZyBhYm91dCB0aGF0IGB0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHNgIGZ1bmN0aW9uLCBidXJpZWQgZGVlcCBpbiBgbW0vdHJ1bmNhdGUuY2AuIE15IGltbWVkaWF0ZSBnb2FsIGlzIHRvIHVuZGVyc3RhbmQgaG93IGl0IGhhbmRsZXMsIHdlbGwsICpleGNlcHRpb25hbCogY2FzZXMgZHVyaW5nIGEgZm9saW8gdHJ1bmNhdGlvbiBvcGVyYXRpb24uIEknbSBhc3N1bWluZyB3ZSdyZSBkZWFsaW5nIHdpdGggZWRnZSBjb25kaXRpb25zIGhlcmUg4oCTIHBlcmhhcHMgaXNzdWVzIHdpdGggcGFydGlhbGx5IHdyaXR0ZW4gZm9saW9zLCBjb25jdXJyZW50IG1vZGlmaWNhdGlvbnMsIG9yIG1heWJlIGV2ZW4gc3VidGxlIHJhY2UgY29uZGl0aW9ucy4gVGhlIG5hbWUgYWxvbmUgaGludHMgYXQgc2l0dWF0aW9ucyB0aGF0IGFyZW4ndCB0aGUgbm9ybS4gSSdsbCBuZWVkIHRvIHBheSBwYXJ0aWN1bGFyIGF0dGVudGlvbiB0byBpdHMgbG9ja2luZyBzdHJhdGVneSwgZXJyb3IgaGFuZGxpbmcsIGFuZCBob3cgaXQgaW50ZXJhY3RzIHdpdGggdGhlIGZvbGlvIHJlY2xhaW0gcGF0aC4gSSBzdXNwZWN0IHRoYXQgYSBkZWVwIHVuZGVyc3RhbmRpbmcgb2YgaXRzIGZ1bmN0aW9uIGlzIHZpdGFsIHRvIGVuc3VyZSB0aGF0IHdlIG1haW50YWluIHN5c3RlbSBzdGFiaWxpdHksIHBhcnRpY3VsYXJseSB3aXRoaW4gd29ya2xvYWRzIHRoYXQgcGxhY2UgYSBoaWdoIGRlbWFuZCBvbiB0aGUgc3lzdGVtJ3MgbWVtb3J5IG1hbmFnZW1lbnQuIEkgcmVhbGx5IG5lZWQgdG8gZ2V0IG15IGhhbmRzIGRpcnR5IGFuZCBzdGFydCBkaXNzZWN0aW5nIHRoZSBpbXBsZW1lbnRhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjQ2OCwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDIwOjIxOjI2LjEyNjQ4NDY4NloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwOTYwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJtbS90cnVuY2F0ZS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDU5LFxuICBcIkxpbmVDb3VudFwiOiA0MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgIDU5OlxcdCAqL1xcbiAgNjA6XFx0c3RhdGljIHZvaWQgdHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLFxcbiAgNjE6XFx0XFx0XFx0XFx0XFx0c3RydWN0IGZvbGlvX2JhdGNoICpmYmF0Y2gsIHBnb2ZmX3QgKmluZGljZXMpXFxuICA2MjpcXHR7XFxuICA2MzpcXHRcXHRYQV9TVEFURSh4YXMsIFxcdTAwMjZtYXBwaW5nLVxcdTAwM2VpX3BhZ2VzLCBpbmRpY2VzWzBdKTtcXG4gIDY0OlxcdFxcdGludCBuciA9IGZvbGlvX2JhdGNoX2NvdW50KGZiYXRjaCk7XFxuICA2NTpcXHRcXHRzdHJ1Y3QgZm9saW8gKmZvbGlvO1xcbiAgNjY6XFx0XFx0aW50IGksIGo7XFxuICA2NzpcXHRcXG4gIDY4OlxcdFxcdC8qIEhhbmRsZWQgYnkgc2htZW0gaXRzZWxmICovXFxuICA2OTpcXHRcXHRpZiAoc2htZW1fbWFwcGluZyhtYXBwaW5nKSlcXG4gIDcwOlxcdFxcdFxcdHJldHVybjtcXG4gIDcxOlxcdFxcbiAgNzI6XFx0XFx0aWYgKGxpa2VseShuciBcXHUwMDNjPSAwKSlcXG4gIDczOlxcdFxcdFxcdHJldHVybjtcXG4gIDc0OlxcdFxcbiAgNzU6XFx0XFx0Zm9yIChqID0gMDsgaiBcXHUwMDNjIG5yOyBqKyspXFxuICA3NjpcXHRcXHRcXHRpZiAoeGFfaXNfdmFsdWUoZmJhdGNoLVxcdTAwM2Vmb2xpb3Nbal0pKVxcbiAgNzc6XFx0XFx0XFx0XFx0YnJlYWs7XFxuICA3ODpcXHRcXG4gIDc5OlxcdFxcdGlmIChqID09IG5yKVxcbiAgODA6XFx0XFx0XFx0cmV0dXJuO1xcbiAgODE6XFx0XFxuICA4MjpcXHRcXHRpZiAoZGF4X21hcHBpbmcobWFwcGluZykpIHtcXG4gIDgzOlxcdFxcdFxcdGZvciAoaSA9IGo7IGkgXFx1MDAzYyBucjsgaSsrKSB7XFxuICA4NDpcXHRcXHRcXHRcXHRpZiAoeGFfaXNfdmFsdWUoZmJhdGNoLVxcdTAwM2Vmb2xpb3NbaV0pKSB7XFxuICA4NTpcXHRcXHRcXHRcXHRcXHQvKlxcbiAgODY6XFx0XFx0XFx0XFx0XFx0ICogRmlsZSBzeXN0ZW1zIHNob3VsZCBhbHJlYWR5IGhhdmUgY2FsbGVkXFxuICA4NzpcXHRcXHRcXHRcXHRcXHQgKiBkYXhfYnJlYWtfbGF5b3V0X2VudHJ5KCkgdG8gcmVtb3ZlIGFsbCBEQVhcXG4gIDg4OlxcdFxcdFxcdFxcdFxcdCAqIGVudHJpZXMgd2hpbGUgaG9sZGluZyBhIGxvY2sgdG8gcHJldmVudFxcbiAgODk6XFx0XFx0XFx0XFx0XFx0ICogZXN0YWJsaXNoaW5nIG5ldyBlbnRyaWVzLiBUaGVyZWZvcmUgd2VcXG4gIDkwOlxcdFxcdFxcdFxcdFxcdCAqIHNob3VsZG4ndCBmaW5kIGFueSBoZXJlLlxcbiAgOTE6XFx0XFx0XFx0XFx0XFx0ICovXFxuICA5MjpcXHRcXHRcXHRcXHRcXHRXQVJOX09OX09OQ0UoMSk7XFxuICA5MzpcXHRcXG4gIDk0OlxcdFxcdFxcdFxcdFxcdC8qXFxuICA5NTpcXHRcXHRcXHRcXHRcXHQgKiBEZWxldGUgdGhlIG1hcHBpbmcgc28gdHJ1bmNhdGVfcGFnZWNhY2hlKClcXG4gIDk2OlxcdFxcdFxcdFxcdFxcdCAqIGRvZXNuJ3QgbG9vcCBmb3JldmVyLlxcbiAgOTc6XFx0XFx0XFx0XFx0XFx0ICovXFxuICA5ODpcXHRcXHRcXHRcXHRcXHRkYXhfZGVsZXRlX21hcHBpbmdfZW50cnkobWFwcGluZywgaW5kaWNlc1tpXSk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDIwOjIxOjI2LjEyNjU5NTk4NloiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3MTMwOTc5NTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi5cblxuKipBbmFseXppbmcgYSBLZXJuZWwgUGF0Y2g6IGB0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHNgKipcblxuUmlnaHQsIHNvIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIGNydWNpYWwgY2hlY2s6IGBpZiAobGlrZWx5KG5yIFx1MDAzYz0gMCkpIHJldHVybjtgIGluc2lkZSB0aGUgYHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFsc2AgZnVuY3Rpb24uIEVzc2VudGlhbGx5LCBpdCdzIGEgZGVmZW5zaXZlIHByb2dyYW1taW5nIG1lYXN1cmUuIFRoZSBmdW5jdGlvbiBwcm9jZXNzZXMgYSBiYXRjaCBvZiBmb2xpb3MsIGFuZCB0aGUgbmV3IGNvZGUgcHJlZW1wdGl2ZWx5IGRlYWxzIHdpdGggc2l0dWF0aW9ucyB3aGVyZSB0aGUgYmF0Y2ggc2l6ZSAoYG5yYCkgaXMgZWl0aGVyIHplcm8gb3IsIGhlYXZlbiBmb3JiaWQsIG5lZ2F0aXZlLiBUaGF0J3MgZ29vZCwgYmVjYXVzZSBhbnl0aGluZyBvdGhlciB0aGFuIGEgcG9zaXRpdmUgY291bnQgZm9yIGZvbGlvcyB3b3VsZCBsZWFkIHRvIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIGFjY2VzcyBvciwgYXQgdGhlIHZlcnkgbGVhc3QsIHdhc3RlZCBjeWNsZXMgaWYgdGhlIGZ1bmN0aW9uIHdlcmUgY2FsbGVkIHdpdGggYW4gZW1wdHkgYmF0Y2guXG5cbk5vdywgdGhlIGltcG9ydGFudCBjb250ZXh0IGlzIGhvdyB0aGlzIGZ1bmN0aW9uIGZpdHMgaW50byB0aGUgbGFyZ2VyIHBpY3R1cmUuIEkga25vdyBgdHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzYCBpcyBjYWxsZWQgZnJvbSBgdHJ1bmNhdGVfaW5vZGVfcGFnZXNfcmFuZ2VgLiBNeSBuZXh0IHN0ZXAgaXMgdG8gcXVpY2tseSB0cmFjZSB0aGUgY2FsbCBzaXRlcyBvZiBgdHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzYCBpbiB0aGlzIGZpbGUuIEl0J3MgaW1wb3J0YW50IHRvIHVuZGVyc3RhbmQgaG93IHdpZGVzcHJlYWQgdGhlIGltcGFjdCBvZiB0aGlzIGNoYW5nZSBtaWdodCBiZS4gVGhpcyBraW5kIG9mIG9wdGltaXphdGlvbiBvciBlcnJvci1oYW5kbGluZyBpbXByb3ZlbWVudCBpcyBhbHdheXMgaW50ZXJlc3RpbmcgdG8gZGlzc2VjdCBpbiBhIGxhcmdlciBzeXN0ZW0uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMyNTQsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4OSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDIwOjIxOjI5LjgzOTY5NzQ0NloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NjgzODk1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibW0vdHJ1bmNhdGUuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJtbS90cnVuY2F0ZS5jPTI2PXN0YXRpYyB2b2lkIGNsZWFyX3NoYWRvd19lbnRyaWVzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLFxcbi0tXFxubW0vdHJ1bmNhdGUuYy01OS0gKi9cXG5tbS90cnVuY2F0ZS5jOjYwOnN0YXRpYyB2b2lkIHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFscyhzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyxcXG5tbS90cnVuY2F0ZS5jLTYxLVxcdFxcdFxcdFxcdHN0cnVjdCBmb2xpb19iYXRjaCAqZmJhdGNoLCBwZ29mZl90ICppbmRpY2VzKVxcbi0tXFxubW0vdHJ1bmNhdGUuYz0zNjk9dm9pZCB0cnVuY2F0ZV9pbm9kZV9wYWdlc19yYW5nZShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyxcXG4tLVxcbm1tL3RydW5jYXRlLmMtNDA0LVxcdFxcdFxcdFxcdTAwMjZmYmF0Y2gsIGluZGljZXMpKSB7XFxubW0vdHJ1bmNhdGUuYzo0MDU6XFx0XFx0dHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzKG1hcHBpbmcsIFxcdTAwMjZmYmF0Y2gsIGluZGljZXMpO1xcbm1tL3RydW5jYXRlLmMtNDA2LVxcdFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBmb2xpb19iYXRjaF9jb3VudChcXHUwMDI2ZmJhdGNoKTsgaSsrKVxcbi0tXFxubW0vdHJ1bmNhdGUuYy00NjYtXFx0XFx0fVxcbm1tL3RydW5jYXRlLmM6NDY3OlxcdFxcdHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFscyhtYXBwaW5nLCBcXHUwMDI2ZmJhdGNoLCBpbmRpY2VzKTtcXG5tbS90cnVuY2F0ZS5jLTQ2OC1cXHRcXHRmb2xpb19iYXRjaF9yZWxlYXNlKFxcdTAwMjZmYmF0Y2gpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQyMDoyMToyOS44OTY1NTY0NzZaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MjA4ODI2NDE0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93bjpcblxuKipUcnVuY2F0ZSBJbm9kZSBQYWdlcyBSYW5nZTogQSBQcm9taXNpbmcgRnV6emluZyBUYXJnZXQqKlxuXG5BbHJpZ2h0LCBzbyB0aGUgZnVuY3Rpb24gaW4gcXVlc3Rpb24gaGVyZSBpcyBgdHJ1bmNhdGVfaW5vZGVfcGFnZXNfcmFuZ2VgLiBJdCdzIGEga2V5IHBpZWNlIG9mIHRoZSBWaXJ0dWFsIEZpbGUgU3lzdGVtIChWRlMpIGFuZCBNZW1vcnkgTWFuYWdlbWVudCAoTU0pIGluZnJhc3RydWN0dXJlLiBDb25zaWRlcmluZyBob3cgZm91bmRhdGlvbmFsIGl0IGlzLCBpdCdzIGFic29sdXRlbHkgZ29pbmcgdG8gYmUgcmVhY2hhYmxlIGluIGEgd2lkZSB2YXJpZXR5IG9mIHNjZW5hcmlvcywgbWFraW5nIGl0IGEgcHJpbWUgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBHaXZlbiBpdHMgY2VudHJhbGl0eSwgZnV6emluZyB0aGlzIGZ1bmN0aW9uIGhvbGRzIGEgaGlnaCBwcm9iYWJpbGl0eSBvZiBmaW5kaW5nIGlzc3VlcyB0aGF0IHdpbGwgbWFrZSBhIGJpZyBkaWZmZXJlbmNlLCBpZiBpdCB5aWVsZHMgcmVzdWx0cy5cblxuSSdkIHdhbnQgdG8gaG9tZSBpbiBvbiBgdHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzYCBhcyB0aGUgZm9jdXMgc3ltYm9sIHdpdGhpbiB0aGF0IGZ1bmN0aW9uOyBpdCBhcHBlYXJzIHRvIGJlIHdoZXJlIGEgbG90IG9mIHRoZSBjcml0aWNhbCBsb2dpYyByZXNpZGVzLiBUaGFua2Z1bGx5LCBzaW5jZSB0aGlzIGlzIGNvcmUgTU0gY29kZSwgbm8gc3BlY2lhbCBrZXJuZWwgY29uZmlncyBzaG91bGQgYmUgcmVxdWlyZWQuIFdlIGNhbiBqdXN0IGRpdmUgcmlnaHQgaW4uXG5cbk5vdywgbGV0J3MgZ2V0IHRoZSBiYWxsIHJvbGxpbmcgYW5kIHNldCB1cCB0aGUgdGVzdGluZyBmcmFtZXdvcmsuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM5MTIsIk91dHB1dFRva2VucyI6OTksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQyMDoyMTozNC4xMDUzODUxNDFaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMzE2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFsc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBjaGVjayBmb3IgYG5yIFxcdTAwM2M9IDBgIGluIGB0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHNgLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgbWVtb3J5IG1hbmFnZW1lbnQgY29kZS4gSXQgcHJldmVudHMgcG90ZW50aWFsIGlzc3VlcyB3aGVuIHRoZSBmb2xpbyBiYXRjaCBjb3VudCBpcyB6ZXJvIG9yIG5lZ2F0aXZlLiBUaGlzIGZ1bmN0aW9uIGlzIHJlYWNoYWJsZSB0aHJvdWdoIHN0YW5kYXJkIGZpbGUgdHJ1bmNhdGlvbiBwYXRocy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHNcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgY2hlY2sgZm9yIGBuciBcXHUwMDNjPSAwYCBpbiBgdHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzYCwgd2hpY2ggaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIG1lbW9yeSBtYW5hZ2VtZW50IGNvZGUuIEl0IHByZXZlbnRzIHBvdGVudGlhbCBpc3N1ZXMgd2hlbiB0aGUgZm9saW8gYmF0Y2ggY291bnQgaXMgemVybyBvciBuZWdhdGl2ZS4gVGhpcyBmdW5jdGlvbiBpcyByZWFjaGFibGUgdGhyb3VnaCBzdGFuZGFyZCBmaWxlIHRydW5jYXRpb24gcGF0aHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowxplfp[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-11 20:00:59 +0000 UTC FinishedAt: 2026-07-11 20:21:36 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "61cccb8363fcc282d4ae0555b8739dd227f5ad0b", "config_name": "upstream-apparmor-kasan.config", "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "61cccb8363fcc282d4ae0555b8739dd227f5ad0b", "config_name": "upstream-apparmor-kasan.config", "series_id": "64ba4e5f-a17e-4801-8dfe-1acdfa489b3c" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "truncate_folio_batch_exceptionals" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db", "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": true, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDIwOjIxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBjaGVjayBmb3IgYG5yIFx1MDAzYz0gMGAgaW4gYHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFsc2AsIHdoaWNoIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBtZW1vcnkgbWFuYWdlbWVudCBjb2RlLiBJdCBwcmV2ZW50cyBwb3RlbnRpYWwgaXNzdWVzIHdoZW4gdGhlIGZvbGlvIGJhdGNoIGNvdW50IGlzIHplcm8gb3IgbmVnYXRpdmUuIFRoaXMgZnVuY3Rpb24gaXMgcmVhY2hhYmxlIHRocm91Z2ggc3RhbmRhcmQgZmlsZSB0cnVuY2F0aW9uIHBhdGhzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDIwOjIxPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNTY2MjU0Zjk5MDUwNWI5YmExYzY2MTBkM2FmZDQxNGUwYzYyZDNiNFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgSnVsIDExIDIwOjIxOjE3IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL21tL3RydW5jYXRlLmMgYi9tbS90cnVuY2F0ZS5jXG5pbmRleCBiNThiYTk0MGJlNDc0MC4uYzIyODAzZDU5YmYwYTMgMTAwNjQ0XG4tLS0gYS9tbS90cnVuY2F0ZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9tbS90cnVuY2F0ZS5jXG5AQCAtNjksNiAmIzQzOzY5LDkgQEAgc3RhdGljIHZvaWQgdHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLFxuIFx0aWYgKHNobWVtX21hcHBpbmcobWFwcGluZykpXG4gXHRcdHJldHVybjtcbiBcbiYjNDM7XHRpZiAobGlrZWx5KG5yIFx1MDAzYz0gMCkpXG4mIzQzO1x0XHRyZXR1cm47XG4mIzQzO1xuIFx0Zm9yIChqID0gMDsgaiBcdTAwM2MgbnI7IGomIzQzOyYjNDM7KVxuIFx0XHRpZiAoeGFfaXNfdmFsdWUoZmJhdGNoLVx1MDAzZWZvbGlvc1tqXSkpXG4gXHRcdFx0YnJlYWs7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMjA6MjE8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHMmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGNoZWNrIGZvciBgbnIgXHUwMDNjPSAwYCBpbiBgdHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzYCwgd2hpY2ggaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIG1lbW9yeSBtYW5hZ2VtZW50IGNvZGUuIEl0IHByZXZlbnRzIHBvdGVudGlhbCBpc3N1ZXMgd2hlbiB0aGUgZm9saW8gYmF0Y2ggY291bnQgaXMgemVybyBvciBuZWdhdGl2ZS4gVGhpcyBmdW5jdGlvbiBpcyByZWFjaGFibGUgdGhyb3VnaCBzdGFuZGFyZCBmaWxlIHRydW5jYXRpb24gcGF0aHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDU2NjI1NGY5OTA1MDViOWJhMWM2NjEwZDNhZmQ0MTRlMGM2MmQzYjQKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU2F0IEp1bCAxMSAyMDoyMToxNyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL21tL3RydW5jYXRlLmMgYi9tbS90cnVuY2F0ZS5jCmluZGV4IGI1OGJhOTQwYmU0NzQwLi5jMjI4MDNkNTliZjBhMyAxMDA2NDQKLS0tIGEvbW0vdHJ1bmNhdGUuYwomIzQzOyYjNDM7JiM0MzsgYi9tbS90cnVuY2F0ZS5jCkBAIC02OSw2ICYjNDM7NjksOSBAQCBzdGF0aWMgdm9pZCB0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHMoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsCiAJaWYgKHNobWVtX21hcHBpbmcobWFwcGluZykpCiAJCXJldHVybjsKIAomIzQzOwlpZiAobGlrZWx5KG5yICZsdDs9IDApKQomIzQzOwkJcmV0dXJuOwomIzQzOwogCWZvciAoaiA9IDA7IGogJmx0OyBucjsgaiYjNDM7JiM0MzspCiAJCWlmICh4YV9pc192YWx1ZShmYmF0Y2gtJmd0O2ZvbGlvc1tqXSkpCiAJCQlicmVhazsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMjA6MjE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTgwNAoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDc3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLgoKKipBbmFseXppbmcgYSBUcnVuY2F0ZSBPcHRpbWl6YXRpb24qKgoKUmlnaHQsIHNvIHRoZXJlJiMzOTtzIGEgcGF0Y2ggYW5kIGl0JiMzOTtzIHRvdWNoaW5nIGBtbS90cnVuY2F0ZS5jYC4gU3BlY2lmaWNhbGx5LCB0aGUgZnVuY3Rpb24gYHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFsc2AuIEFoLCBJIHJlbWVtYmVyIHRoaXMgb25lIC0gaXQmIzM5O3MgcmVsYXRlZCB0byBoYW5kbGluZyBleGNlcHRpb25hbCBjYXNlcyBkdXJpbmcgYSBiYXRjaCB0cnVuY2F0aW9uIG9wZXJhdGlvbiwgcHJvYmFibHkgZGVhbGluZyB3aXRoIGVycm9ycyBvciBlZGdlIGNvbmRpdGlvbnMuCgpUaGUgcGF0Y2ggaXRzZWxmIGlzIGFkZGluZyBhIHNpbXBsZSBjaGVjazoKCmBgYGMKCWlmIChsaWtlbHkobnIgJmx0Oz0gMCkpCgkJcmV0dXJuOwpgYGAKCkludGVyZXN0aW5nLiBgbnJgIGlzIGxpa2VseSB0aGUgbnVtYmVyIG9mIGV4Y2VwdGlvbmFsIGZvbGlvcy4gU28sIHRoaXMgaXMgYSB2ZXJ5IHN0cmFpZ2h0Zm9yd2FyZCBvcHRpbWl6YXRpb24uIElmIHRoZSBjb3VudCBvZiBleGNlcHRpb25hbCBmb2xpb3MgaXMgemVybyBvciBuZWdhdGl2ZSAod2hpY2ggc2hvdWxkbiYjMzk7dCBoYXBwZW4sIGJ1dCBkZWZlbnNpdmUgcHJvZ3JhbW1pbmcgaXMgZ29vZCksIHdlIGp1c3QgcmV0dXJuIGltbWVkaWF0ZWx5LiBUaGlzIGF2b2lkcyB1bm5lY2Vzc2FyeSB3b3JrLCBza2lwcGluZyB0aGUgcmVzdCBvZiB0aGUgZnVuY3Rpb24mIzM5O3MgbG9naWMuIEdpdmVuIHRoZSBgbGlrZWx5KClgIGhpbnQgdG8gdGhlIGNvbXBpbGVyLCB0aGlzIGNoZWNrIGlzIGV4cGVjdGVkIHRvIGJlICp2ZXJ5KiBmcmVxdWVudGx5IHRydWUuIFRoYXQgaXMsIHRoYXQgdGhlIGNvdW50IHdpbGwgYWxtb3N0IGFsd2F5cyBiZSB6ZXJvIChvciBjbG9zZSB0byB6ZXJvKQpJIHdpbGwgbm93IGRpZyBpbnRvIGB0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHNgIGl0c2VsZiB0byB1bmRlcnN0YW5kIHRoZSBjb250ZXh0IGFuZCBob3cgc2lnbmlmaWNhbnQgdGhpcyBlYXJseSBleGl0IGlzLiBJdCBzZWVtcyBsaWtlIGl0IHdpbGwgYmUgYSByZWxhdGl2ZWx5IGxvdy1pbXBhY3Qgb3B0aW1pemF0aW9uLCBidXQgaXQgZGVwZW5kcyBvbiBob3cgZnJlcXVlbnRseSB0aGUgZXhjZXB0aW9uYWwgY2FzZSBhcmlzZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMjA6MjE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bW0vdHJ1bmNhdGUuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDttbS90cnVuY2F0ZS5jPTI2PXN0YXRpYyB2b2lkIGNsZWFyX3NoYWRvd19lbnRyaWVzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLFxuLS1cbm1tL3RydW5jYXRlLmMtNTktICovXG5tbS90cnVuY2F0ZS5jOjYwOnN0YXRpYyB2b2lkIHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFscyhzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyxcbm1tL3RydW5jYXRlLmMtNjEtXHRcdFx0XHRzdHJ1Y3QgZm9saW9fYmF0Y2ggKmZiYXRjaCwgcGdvZmZfdCAqaW5kaWNlcylcbi0tXG5tbS90cnVuY2F0ZS5jPTM2OT12b2lkIHRydW5jYXRlX2lub2RlX3BhZ2VzX3JhbmdlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLFxuLS1cbm1tL3RydW5jYXRlLmMtNDA0LVx0XHRcdFx1MDAyNmZiYXRjaCwgaW5kaWNlcykpIHtcbm1tL3RydW5jYXRlLmM6NDA1Olx0XHR0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHMobWFwcGluZywgXHUwMDI2ZmJhdGNoLCBpbmRpY2VzKTtcbm1tL3RydW5jYXRlLmMtNDA2LVx0XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBmb2xpb19iYXRjaF9jb3VudChcdTAwMjZmYmF0Y2gpOyBpJiM0MzsmIzQzOylcbi0tXG5tbS90cnVuY2F0ZS5jLTQ2Ni1cdFx0fVxubW0vdHJ1bmNhdGUuYzo0Njc6XHRcdHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFscyhtYXBwaW5nLCBcdTAwMjZmYmF0Y2gsIGluZGljZXMpO1xubW0vdHJ1bmNhdGUuYy00NjgtXHRcdGZvbGlvX2JhdGNoX3JlbGVhc2UoXHUwMDI2ZmJhdGNoKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAyMDoyMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNDY4CgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRGl2aW5nIGludG8gYHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFsc2AqKgoKT2theSwgc28gSSYjMzk7bSB0aGlua2luZyBhYm91dCB0aGF0IGB0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHNgIGZ1bmN0aW9uLCBidXJpZWQgZGVlcCBpbiBgbW0vdHJ1bmNhdGUuY2AuIE15IGltbWVkaWF0ZSBnb2FsIGlzIHRvIHVuZGVyc3RhbmQgaG93IGl0IGhhbmRsZXMsIHdlbGwsICpleGNlcHRpb25hbCogY2FzZXMgZHVyaW5nIGEgZm9saW8gdHJ1bmNhdGlvbiBvcGVyYXRpb24uIEkmIzM5O20gYXNzdW1pbmcgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBlZGdlIGNvbmRpdGlvbnMgaGVyZSDigJMgcGVyaGFwcyBpc3N1ZXMgd2l0aCBwYXJ0aWFsbHkgd3JpdHRlbiBmb2xpb3MsIGNvbmN1cnJlbnQgbW9kaWZpY2F0aW9ucywgb3IgbWF5YmUgZXZlbiBzdWJ0bGUgcmFjZSBjb25kaXRpb25zLiBUaGUgbmFtZSBhbG9uZSBoaW50cyBhdCBzaXR1YXRpb25zIHRoYXQgYXJlbiYjMzk7dCB0aGUgbm9ybS4gSSYjMzk7bGwgbmVlZCB0byBwYXkgcGFydGljdWxhciBhdHRlbnRpb24gdG8gaXRzIGxvY2tpbmcgc3RyYXRlZ3ksIGVycm9yIGhhbmRsaW5nLCBhbmQgaG93IGl0IGludGVyYWN0cyB3aXRoIHRoZSBmb2xpbyByZWNsYWltIHBhdGguIEkgc3VzcGVjdCB0aGF0IGEgZGVlcCB1bmRlcnN0YW5kaW5nIG9mIGl0cyBmdW5jdGlvbiBpcyB2aXRhbCB0byBlbnN1cmUgdGhhdCB3ZSBtYWludGFpbiBzeXN0ZW0gc3RhYmlsaXR5LCBwYXJ0aWN1bGFybHkgd2l0aGluIHdvcmtsb2FkcyB0aGF0IHBsYWNlIGEgaGlnaCBkZW1hbmQgb24gdGhlIHN5c3RlbSYjMzk7cyBtZW1vcnkgbWFuYWdlbWVudC4gSSByZWFsbHkgbmVlZCB0byBnZXQgbXkgaGFuZHMgZGlydHkgYW5kIHN0YXJ0IGRpc3NlY3RpbmcgdGhlIGltcGxlbWVudGF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDIwOjIxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bW0vdHJ1bmNhdGUuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDU5LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgNTk6XHQgKi9cbiAgNjA6XHRzdGF0aWMgdm9pZCB0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHMoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsXG4gIDYxOlx0XHRcdFx0XHRzdHJ1Y3QgZm9saW9fYmF0Y2ggKmZiYXRjaCwgcGdvZmZfdCAqaW5kaWNlcylcbiAgNjI6XHR7XG4gIDYzOlx0XHRYQV9TVEFURSh4YXMsIFx1MDAyNm1hcHBpbmctXHUwMDNlaV9wYWdlcywgaW5kaWNlc1swXSk7XG4gIDY0Olx0XHRpbnQgbnIgPSBmb2xpb19iYXRjaF9jb3VudChmYmF0Y2gpO1xuICA2NTpcdFx0c3RydWN0IGZvbGlvICpmb2xpbztcbiAgNjY6XHRcdGludCBpLCBqO1xuICA2NzpcdFxuICA2ODpcdFx0LyogSGFuZGxlZCBieSBzaG1lbSBpdHNlbGYgKi9cbiAgNjk6XHRcdGlmIChzaG1lbV9tYXBwaW5nKG1hcHBpbmcpKVxuICA3MDpcdFx0XHRyZXR1cm47XG4gIDcxOlx0XG4gIDcyOlx0XHRpZiAobGlrZWx5KG5yIFx1MDAzYz0gMCkpXG4gIDczOlx0XHRcdHJldHVybjtcbiAgNzQ6XHRcbiAgNzU6XHRcdGZvciAoaiA9IDA7IGogXHUwMDNjIG5yOyBqJiM0MzsmIzQzOylcbiAgNzY6XHRcdFx0aWYgKHhhX2lzX3ZhbHVlKGZiYXRjaC1cdTAwM2Vmb2xpb3Nbal0pKVxuICA3NzpcdFx0XHRcdGJyZWFrO1xuICA3ODpcdFxuICA3OTpcdFx0aWYgKGogPT0gbnIpXG4gIDgwOlx0XHRcdHJldHVybjtcbiAgODE6XHRcbiAgODI6XHRcdGlmIChkYXhfbWFwcGluZyhtYXBwaW5nKSkge1xuICA4MzpcdFx0XHRmb3IgKGkgPSBqOyBpIFx1MDAzYyBucjsgaSYjNDM7JiM0MzspIHtcbiAgODQ6XHRcdFx0XHRpZiAoeGFfaXNfdmFsdWUoZmJhdGNoLVx1MDAzZWZvbGlvc1tpXSkpIHtcbiAgODU6XHRcdFx0XHRcdC8qXG4gIDg2Olx0XHRcdFx0XHQgKiBGaWxlIHN5c3RlbXMgc2hvdWxkIGFscmVhZHkgaGF2ZSBjYWxsZWRcbiAgODc6XHRcdFx0XHRcdCAqIGRheF9icmVha19sYXlvdXRfZW50cnkoKSB0byByZW1vdmUgYWxsIERBWFxuICA4ODpcdFx0XHRcdFx0ICogZW50cmllcyB3aGlsZSBob2xkaW5nIGEgbG9jayB0byBwcmV2ZW50XG4gIDg5Olx0XHRcdFx0XHQgKiBlc3RhYmxpc2hpbmcgbmV3IGVudHJpZXMuIFRoZXJlZm9yZSB3ZVxuICA5MDpcdFx0XHRcdFx0ICogc2hvdWxkbiYjMzk7dCBmaW5kIGFueSBoZXJlLlxuICA5MTpcdFx0XHRcdFx0ICovXG4gIDkyOlx0XHRcdFx0XHRXQVJOX09OX09OQ0UoMSk7XG4gIDkzOlx0XG4gIDk0Olx0XHRcdFx0XHQvKlxuICA5NTpcdFx0XHRcdFx0ICogRGVsZXRlIHRoZSBtYXBwaW5nIHNvIHRydW5jYXRlX3BhZ2VjYWNoZSgpXG4gIDk2Olx0XHRcdFx0XHQgKiBkb2VzbiYjMzk7dCBsb29wIGZvcmV2ZXIuXG4gIDk3Olx0XHRcdFx0XHQgKi9cbiAgOTg6XHRcdFx0XHRcdGRheF9kZWxldGVfbWFwcGluZ19lbnRyeShtYXBwaW5nLCBpbmRpY2VzW2ldKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAyMDoyMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMjU0CgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogODkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uCgoqKkFuYWx5emluZyBhIEtlcm5lbCBQYXRjaDogYHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFsc2AqKgoKUmlnaHQsIHNvIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIGNydWNpYWwgY2hlY2s6IGBpZiAobGlrZWx5KG5yICZsdDs9IDApKSByZXR1cm47YCBpbnNpZGUgdGhlIGB0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHNgIGZ1bmN0aW9uLiBFc3NlbnRpYWxseSwgaXQmIzM5O3MgYSBkZWZlbnNpdmUgcHJvZ3JhbW1pbmcgbWVhc3VyZS4gVGhlIGZ1bmN0aW9uIHByb2Nlc3NlcyBhIGJhdGNoIG9mIGZvbGlvcywgYW5kIHRoZSBuZXcgY29kZSBwcmVlbXB0aXZlbHkgZGVhbHMgd2l0aCBzaXR1YXRpb25zIHdoZXJlIHRoZSBiYXRjaCBzaXplIChgbnJgKSBpcyBlaXRoZXIgemVybyBvciwgaGVhdmVuIGZvcmJpZCwgbmVnYXRpdmUuIFRoYXQmIzM5O3MgZ29vZCwgYmVjYXVzZSBhbnl0aGluZyBvdGhlciB0aGFuIGEgcG9zaXRpdmUgY291bnQgZm9yIGZvbGlvcyB3b3VsZCBsZWFkIHRvIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIGFjY2VzcyBvciwgYXQgdGhlIHZlcnkgbGVhc3QsIHdhc3RlZCBjeWNsZXMgaWYgdGhlIGZ1bmN0aW9uIHdlcmUgY2FsbGVkIHdpdGggYW4gZW1wdHkgYmF0Y2guCgpOb3csIHRoZSBpbXBvcnRhbnQgY29udGV4dCBpcyBob3cgdGhpcyBmdW5jdGlvbiBmaXRzIGludG8gdGhlIGxhcmdlciBwaWN0dXJlLiBJIGtub3cgYHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFsc2AgaXMgY2FsbGVkIGZyb20gYHRydW5jYXRlX2lub2RlX3BhZ2VzX3JhbmdlYC4gTXkgbmV4dCBzdGVwIGlzIHRvIHF1aWNrbHkgdHJhY2UgdGhlIGNhbGwgc2l0ZXMgb2YgYHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFsc2AgaW4gdGhpcyBmaWxlLiBJdCYjMzk7cyBpbXBvcnRhbnQgdG8gdW5kZXJzdGFuZCBob3cgd2lkZXNwcmVhZCB0aGUgaW1wYWN0IG9mIHRoaXMgY2hhbmdlIG1pZ2h0IGJlLiBUaGlzIGtpbmQgb2Ygb3B0aW1pemF0aW9uIG9yIGVycm9yLWhhbmRsaW5nIGltcHJvdmVtZW50IGlzIGFsd2F5cyBpbnRlcmVzdGluZyB0byBkaXNzZWN0IGluIGEgbGFyZ2VyIHN5c3RlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAyMDoyMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDttbS90cnVuY2F0ZS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O21tL3RydW5jYXRlLmM9MjY9c3RhdGljIHZvaWQgY2xlYXJfc2hhZG93X2VudHJpZXMoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsXG4tLVxubW0vdHJ1bmNhdGUuYy01OS0gKi9cbm1tL3RydW5jYXRlLmM6NjA6c3RhdGljIHZvaWQgdHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLFxubW0vdHJ1bmNhdGUuYy02MS1cdFx0XHRcdHN0cnVjdCBmb2xpb19iYXRjaCAqZmJhdGNoLCBwZ29mZl90ICppbmRpY2VzKVxuLS1cbm1tL3RydW5jYXRlLmM9MzY5PXZvaWQgdHJ1bmNhdGVfaW5vZGVfcGFnZXNfcmFuZ2Uoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsXG4tLVxubW0vdHJ1bmNhdGUuYy00MDQtXHRcdFx0XHUwMDI2ZmJhdGNoLCBpbmRpY2VzKSkge1xubW0vdHJ1bmNhdGUuYzo0MDU6XHRcdHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFscyhtYXBwaW5nLCBcdTAwMjZmYmF0Y2gsIGluZGljZXMpO1xubW0vdHJ1bmNhdGUuYy00MDYtXHRcdGZvciAoaSA9IDA7IGkgXHUwMDNjIGZvbGlvX2JhdGNoX2NvdW50KFx1MDAyNmZiYXRjaCk7IGkmIzQzOyYjNDM7KVxuLS1cbm1tL3RydW5jYXRlLmMtNDY2LVx0XHR9XG5tbS90cnVuY2F0ZS5jOjQ2NzpcdFx0dHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzKG1hcHBpbmcsIFx1MDAyNmZiYXRjaCwgaW5kaWNlcyk7XG5tbS90cnVuY2F0ZS5jLTQ2OC1cdFx0Zm9saW9fYmF0Y2hfcmVsZWFzZShcdTAwMjZmYmF0Y2gpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDIwOjIxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM5MTIKCQkJCQkJCW91dHB1dDogOTkKCQkJCQkJCXRob3VnaHRzOiA3OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duOgoKKipUcnVuY2F0ZSBJbm9kZSBQYWdlcyBSYW5nZTogQSBQcm9taXNpbmcgRnV6emluZyBUYXJnZXQqKgoKQWxyaWdodCwgc28gdGhlIGZ1bmN0aW9uIGluIHF1ZXN0aW9uIGhlcmUgaXMgYHRydW5jYXRlX2lub2RlX3BhZ2VzX3JhbmdlYC4gSXQmIzM5O3MgYSBrZXkgcGllY2Ugb2YgdGhlIFZpcnR1YWwgRmlsZSBTeXN0ZW0gKFZGUykgYW5kIE1lbW9yeSBNYW5hZ2VtZW50IChNTSkgaW5mcmFzdHJ1Y3R1cmUuIENvbnNpZGVyaW5nIGhvdyBmb3VuZGF0aW9uYWwgaXQgaXMsIGl0JiMzOTtzIGFic29sdXRlbHkgZ29pbmcgdG8gYmUgcmVhY2hhYmxlIGluIGEgd2lkZSB2YXJpZXR5IG9mIHNjZW5hcmlvcywgbWFraW5nIGl0IGEgcHJpbWUgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBHaXZlbiBpdHMgY2VudHJhbGl0eSwgZnV6emluZyB0aGlzIGZ1bmN0aW9uIGhvbGRzIGEgaGlnaCBwcm9iYWJpbGl0eSBvZiBmaW5kaW5nIGlzc3VlcyB0aGF0IHdpbGwgbWFrZSBhIGJpZyBkaWZmZXJlbmNlLCBpZiBpdCB5aWVsZHMgcmVzdWx0cy4KCkkmIzM5O2Qgd2FudCB0byBob21lIGluIG9uIGB0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHNgIGFzIHRoZSBmb2N1cyBzeW1ib2wgd2l0aGluIHRoYXQgZnVuY3Rpb247IGl0IGFwcGVhcnMgdG8gYmUgd2hlcmUgYSBsb3Qgb2YgdGhlIGNyaXRpY2FsIGxvZ2ljIHJlc2lkZXMuIFRoYW5rZnVsbHksIHNpbmNlIHRoaXMgaXMgY29yZSBNTSBjb2RlLCBubyBzcGVjaWFsIGtlcm5lbCBjb25maWdzIHNob3VsZCBiZSByZXF1aXJlZC4gV2UgY2FuIGp1c3QgZGl2ZSByaWdodCBpbi4KCk5vdywgbGV0JiMzOTtzIGdldCB0aGUgYmFsbCByb2xsaW5nIGFuZCBzZXQgdXAgdGhlIHRlc3RpbmcgZnJhbWV3b3JrLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAyMDoyMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBjaGVjayBmb3IgYG5yIFx1MDAzYz0gMGAgaW4gYHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFsc2AsIHdoaWNoIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBtZW1vcnkgbWFuYWdlbWVudCBjb2RlLiBJdCBwcmV2ZW50cyBwb3RlbnRpYWwgaXNzdWVzIHdoZW4gdGhlIGZvbGlvIGJhdGNoIGNvdW50IGlzIHplcm8gb3IgbmVnYXRpdmUuIFRoaXMgZnVuY3Rpb24gaXMgcmVhY2hhYmxlIHRocm91Z2ggc3RhbmRhcmQgZmlsZSB0cnVuY2F0aW9uIHBhdGhzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3RydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFscyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgY2hlY2sgZm9yIGBuciBcdTAwM2M9IDBgIGluIGB0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHNgLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgbWVtb3J5IG1hbmFnZW1lbnQgY29kZS4gSXQgcHJldmVudHMgcG90ZW50aWFsIGlzc3VlcyB3aGVuIHRoZSBmb2xpbyBiYXRjaCBjb3VudCBpcyB6ZXJvIG9yIG5lZ2F0aXZlLiBUaGlzIGZ1bmN0aW9uIGlzIHJlYWNoYWJsZSB0aHJvdWdoIHN0YW5kYXJkIGZpbGUgdHJ1bmNhdGlvbiBwYXRocy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDIwOjIxOjE4LjExMDIxNTMyN1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1OTk1MjEzNjg0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFsc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBjaGVjayBmb3IgYG5yIFxcdTAwM2M9IDBgIGluIGB0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHNgLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgbWVtb3J5IG1hbmFnZW1lbnQgY29kZS4gSXQgcHJldmVudHMgcG90ZW50aWFsIGlzc3VlcyB3aGVuIHRoZSBmb2xpbyBiYXRjaCBjb3VudCBpcyB6ZXJvIG9yIG5lZ2F0aXZlLiBUaGlzIGZ1bmN0aW9uIGlzIHJlYWNoYWJsZSB0aHJvdWdoIHN0YW5kYXJkIGZpbGUgdHJ1bmNhdGlvbiBwYXRocy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMjA6MjE6MTguMTEwMjIxMDM3WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyOTU5Njg0NjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA1NjYyNTRmOTkwNTA1YjliYTFjNjYxMGQzYWZkNDE0ZTBjNjJkM2I0XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgSnVsIDExIDIwOjIxOjE3IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL21tL3RydW5jYXRlLmMgYi9tbS90cnVuY2F0ZS5jXFxuaW5kZXggYjU4YmE5NDBiZTQ3NDAuLmMyMjgwM2Q1OWJmMGEzIDEwMDY0NFxcbi0tLSBhL21tL3RydW5jYXRlLmNcXG4rKysgYi9tbS90cnVuY2F0ZS5jXFxuQEAgLTY5LDYgKzY5LDkgQEAgc3RhdGljIHZvaWQgdHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLFxcbiBcXHRpZiAoc2htZW1fbWFwcGluZyhtYXBwaW5nKSlcXG4gXFx0XFx0cmV0dXJuO1xcbiBcXG4rXFx0aWYgKGxpa2VseShuciBcXHUwMDNjPSAwKSlcXG4rXFx0XFx0cmV0dXJuO1xcbitcXG4gXFx0Zm9yIChqID0gMDsgaiBcXHUwMDNjIG5yOyBqKyspXFxuIFxcdFxcdGlmICh4YV9pc192YWx1ZShmYmF0Y2gtXFx1MDAzZWZvbGlvc1tqXSkpXFxuIFxcdFxcdFxcdGJyZWFrO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQyMDoyMToxOC40MDcxNDI3NDZaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE1Njk4Mjc3MzQ1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFsc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBjaGVjayBmb3IgYG5yIFxcdTAwM2M9IDBgIGluIGB0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHNgLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgbWVtb3J5IG1hbmFnZW1lbnQgY29kZS4gSXQgcHJldmVudHMgcG90ZW50aWFsIGlzc3VlcyB3aGVuIHRoZSBmb2xpbyBiYXRjaCBjb3VudCBpcyB6ZXJvIG9yIG5lZ2F0aXZlLiBUaGlzIGZ1bmN0aW9uIGlzIHJlYWNoYWJsZSB0aHJvdWdoIHN0YW5kYXJkIGZpbGUgdHJ1bmNhdGlvbiBwYXRocy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA1NjYyNTRmOTkwNTA1YjliYTFjNjYxMGQzYWZkNDE0ZTBjNjJkM2I0XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBKdWwgMTEgMjA6MjE6MTcgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9tbS90cnVuY2F0ZS5jIGIvbW0vdHJ1bmNhdGUuY1xuaW5kZXggYjU4YmE5NDBiZTQ3NDAuLmMyMjgwM2Q1OWJmMGEzIDEwMDY0NFxuLS0tIGEvbW0vdHJ1bmNhdGUuY1xuKysrIGIvbW0vdHJ1bmNhdGUuY1xuQEAgLTY5LDYgKzY5LDkgQEAgc3RhdGljIHZvaWQgdHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLFxuIFx0aWYgKHNobWVtX21hcHBpbmcobWFwcGluZykpXG4gXHRcdHJldHVybjtcbiBcbitcdGlmIChsaWtlbHkobnIgXHUwMDNjPSAwKSlcbitcdFx0cmV0dXJuO1xuK1xuIFx0Zm9yIChqID0gMDsgaiBcdTAwM2MgbnI7IGorKylcbiBcdFx0aWYgKHhhX2lzX3ZhbHVlKGZiYXRjaC1cdTAwM2Vmb2xpb3Nbal0pKVxuIFx0XHRcdGJyZWFrO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMjA6MjE6MTguNDA3MTQ0NjQ2WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzg4Mjg2MDQ3MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLlxuXG4qKkFuYWx5emluZyBhIFRydW5jYXRlIE9wdGltaXphdGlvbioqXG5cblJpZ2h0LCBzbyB0aGVyZSdzIGEgcGF0Y2ggYW5kIGl0J3MgdG91Y2hpbmcgYG1tL3RydW5jYXRlLmNgLiBTcGVjaWZpY2FsbHksIHRoZSBmdW5jdGlvbiBgdHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzYC4gQWgsIEkgcmVtZW1iZXIgdGhpcyBvbmUgLSBpdCdzIHJlbGF0ZWQgdG8gaGFuZGxpbmcgZXhjZXB0aW9uYWwgY2FzZXMgZHVyaW5nIGEgYmF0Y2ggdHJ1bmNhdGlvbiBvcGVyYXRpb24sIHByb2JhYmx5IGRlYWxpbmcgd2l0aCBlcnJvcnMgb3IgZWRnZSBjb25kaXRpb25zLlxuXG5UaGUgcGF0Y2ggaXRzZWxmIGlzIGFkZGluZyBhIHNpbXBsZSBjaGVjazpcblxuYGBgY1xuXHRpZiAobGlrZWx5KG5yIFx1MDAzYz0gMCkpXG5cdFx0cmV0dXJuO1xuYGBgXG5cbkludGVyZXN0aW5nLiBgbnJgIGlzIGxpa2VseSB0aGUgbnVtYmVyIG9mIGV4Y2VwdGlvbmFsIGZvbGlvcy4gU28sIHRoaXMgaXMgYSB2ZXJ5IHN0cmFpZ2h0Zm9yd2FyZCBvcHRpbWl6YXRpb24uIElmIHRoZSBjb3VudCBvZiBleGNlcHRpb25hbCBmb2xpb3MgaXMgemVybyBvciBuZWdhdGl2ZSAod2hpY2ggc2hvdWxkbid0IGhhcHBlbiwgYnV0IGRlZmVuc2l2ZSBwcm9ncmFtbWluZyBpcyBnb29kKSwgd2UganVzdCByZXR1cm4gaW1tZWRpYXRlbHkuIFRoaXMgYXZvaWRzIHVubmVjZXNzYXJ5IHdvcmssIHNraXBwaW5nIHRoZSByZXN0IG9mIHRoZSBmdW5jdGlvbidzIGxvZ2ljLiBHaXZlbiB0aGUgYGxpa2VseSgpYCBoaW50IHRvIHRoZSBjb21waWxlciwgdGhpcyBjaGVjayBpcyBleHBlY3RlZCB0byBiZSAqdmVyeSogZnJlcXVlbnRseSB0cnVlLiBUaGF0IGlzLCB0aGF0IHRoZSBjb3VudCB3aWxsIGFsbW9zdCBhbHdheXMgYmUgemVybyAob3IgY2xvc2UgdG8gemVybylcbkkgd2lsbCBub3cgZGlnIGludG8gYHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFsc2AgaXRzZWxmIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQgYW5kIGhvdyBzaWduaWZpY2FudCB0aGlzIGVhcmx5IGV4aXQgaXMuIEl0IHNlZW1zIGxpa2UgaXQgd2lsbCBiZSBhIHJlbGF0aXZlbHkgbG93LWltcGFjdCBvcHRpbWl6YXRpb24sIGJ1dCBpdCBkZXBlbmRzIG9uIGhvdyBmcmVxdWVudGx5IHRoZSBleGNlcHRpb25hbCBjYXNlIGFyaXNlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTgwNCwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc3LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMjA6MjE6MjIuMjkwMDA2NzA3WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1OTMyNjQ5NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibW0vdHJ1bmNhdGUuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJtbS90cnVuY2F0ZS5jPTI2PXN0YXRpYyB2b2lkIGNsZWFyX3NoYWRvd19lbnRyaWVzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLFxcbi0tXFxubW0vdHJ1bmNhdGUuYy01OS0gKi9cXG5tbS90cnVuY2F0ZS5jOjYwOnN0YXRpYyB2b2lkIHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFscyhzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyxcXG5tbS90cnVuY2F0ZS5jLTYxLVxcdFxcdFxcdFxcdHN0cnVjdCBmb2xpb19iYXRjaCAqZmJhdGNoLCBwZ29mZl90ICppbmRpY2VzKVxcbi0tXFxubW0vdHJ1bmNhdGUuYz0zNjk9dm9pZCB0cnVuY2F0ZV9pbm9kZV9wYWdlc19yYW5nZShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyxcXG4tLVxcbm1tL3RydW5jYXRlLmMtNDA0LVxcdFxcdFxcdFxcdTAwMjZmYmF0Y2gsIGluZGljZXMpKSB7XFxubW0vdHJ1bmNhdGUuYzo0MDU6XFx0XFx0dHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzKG1hcHBpbmcsIFxcdTAwMjZmYmF0Y2gsIGluZGljZXMpO1xcbm1tL3RydW5jYXRlLmMtNDA2LVxcdFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBmb2xpb19iYXRjaF9jb3VudChcXHUwMDI2ZmJhdGNoKTsgaSsrKVxcbi0tXFxubW0vdHJ1bmNhdGUuYy00NjYtXFx0XFx0fVxcbm1tL3RydW5jYXRlLmM6NDY3OlxcdFxcdHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFscyhtYXBwaW5nLCBcXHUwMDI2ZmJhdGNoLCBpbmRpY2VzKTtcXG5tbS90cnVuY2F0ZS5jLTQ2OC1cXHRcXHRmb2xpb19iYXRjaF9yZWxlYXNlKFxcdTAwMjZmYmF0Y2gpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQyMDoyMToyMi41NDkzNDIyNzNaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNTc3MTQwNDMzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipEaXZpbmcgaW50byBgdHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzYCoqXG5cbk9rYXksIHNvIEknbSB0aGlua2luZyBhYm91dCB0aGF0IGB0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHNgIGZ1bmN0aW9uLCBidXJpZWQgZGVlcCBpbiBgbW0vdHJ1bmNhdGUuY2AuIE15IGltbWVkaWF0ZSBnb2FsIGlzIHRvIHVuZGVyc3RhbmQgaG93IGl0IGhhbmRsZXMsIHdlbGwsICpleGNlcHRpb25hbCogY2FzZXMgZHVyaW5nIGEgZm9saW8gdHJ1bmNhdGlvbiBvcGVyYXRpb24uIEknbSBhc3N1bWluZyB3ZSdyZSBkZWFsaW5nIHdpdGggZWRnZSBjb25kaXRpb25zIGhlcmUg4oCTIHBlcmhhcHMgaXNzdWVzIHdpdGggcGFydGlhbGx5IHdyaXR0ZW4gZm9saW9zLCBjb25jdXJyZW50IG1vZGlmaWNhdGlvbnMsIG9yIG1heWJlIGV2ZW4gc3VidGxlIHJhY2UgY29uZGl0aW9ucy4gVGhlIG5hbWUgYWxvbmUgaGludHMgYXQgc2l0dWF0aW9ucyB0aGF0IGFyZW4ndCB0aGUgbm9ybS4gSSdsbCBuZWVkIHRvIHBheSBwYXJ0aWN1bGFyIGF0dGVudGlvbiB0byBpdHMgbG9ja2luZyBzdHJhdGVneSwgZXJyb3IgaGFuZGxpbmcsIGFuZCBob3cgaXQgaW50ZXJhY3RzIHdpdGggdGhlIGZvbGlvIHJlY2xhaW0gcGF0aC4gSSBzdXNwZWN0IHRoYXQgYSBkZWVwIHVuZGVyc3RhbmRpbmcgb2YgaXRzIGZ1bmN0aW9uIGlzIHZpdGFsIHRvIGVuc3VyZSB0aGF0IHdlIG1haW50YWluIHN5c3RlbSBzdGFiaWxpdHksIHBhcnRpY3VsYXJseSB3aXRoaW4gd29ya2xvYWRzIHRoYXQgcGxhY2UgYSBoaWdoIGRlbWFuZCBvbiB0aGUgc3lzdGVtJ3MgbWVtb3J5IG1hbmFnZW1lbnQuIEkgcmVhbGx5IG5lZWQgdG8gZ2V0IG15IGhhbmRzIGRpcnR5IGFuZCBzdGFydCBkaXNzZWN0aW5nIHRoZSBpbXBsZW1lbnRhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjQ2OCwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDIwOjIxOjI2LjEyNjQ4NDY4NloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwOTYwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJtbS90cnVuY2F0ZS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDU5LFxuICBcIkxpbmVDb3VudFwiOiA0MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgIDU5OlxcdCAqL1xcbiAgNjA6XFx0c3RhdGljIHZvaWQgdHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLFxcbiAgNjE6XFx0XFx0XFx0XFx0XFx0c3RydWN0IGZvbGlvX2JhdGNoICpmYmF0Y2gsIHBnb2ZmX3QgKmluZGljZXMpXFxuICA2MjpcXHR7XFxuICA2MzpcXHRcXHRYQV9TVEFURSh4YXMsIFxcdTAwMjZtYXBwaW5nLVxcdTAwM2VpX3BhZ2VzLCBpbmRpY2VzWzBdKTtcXG4gIDY0OlxcdFxcdGludCBuciA9IGZvbGlvX2JhdGNoX2NvdW50KGZiYXRjaCk7XFxuICA2NTpcXHRcXHRzdHJ1Y3QgZm9saW8gKmZvbGlvO1xcbiAgNjY6XFx0XFx0aW50IGksIGo7XFxuICA2NzpcXHRcXG4gIDY4OlxcdFxcdC8qIEhhbmRsZWQgYnkgc2htZW0gaXRzZWxmICovXFxuICA2OTpcXHRcXHRpZiAoc2htZW1fbWFwcGluZyhtYXBwaW5nKSlcXG4gIDcwOlxcdFxcdFxcdHJldHVybjtcXG4gIDcxOlxcdFxcbiAgNzI6XFx0XFx0aWYgKGxpa2VseShuciBcXHUwMDNjPSAwKSlcXG4gIDczOlxcdFxcdFxcdHJldHVybjtcXG4gIDc0OlxcdFxcbiAgNzU6XFx0XFx0Zm9yIChqID0gMDsgaiBcXHUwMDNjIG5yOyBqKyspXFxuICA3NjpcXHRcXHRcXHRpZiAoeGFfaXNfdmFsdWUoZmJhdGNoLVxcdTAwM2Vmb2xpb3Nbal0pKVxcbiAgNzc6XFx0XFx0XFx0XFx0YnJlYWs7XFxuICA3ODpcXHRcXG4gIDc5OlxcdFxcdGlmIChqID09IG5yKVxcbiAgODA6XFx0XFx0XFx0cmV0dXJuO1xcbiAgODE6XFx0XFxuICA4MjpcXHRcXHRpZiAoZGF4X21hcHBpbmcobWFwcGluZykpIHtcXG4gIDgzOlxcdFxcdFxcdGZvciAoaSA9IGo7IGkgXFx1MDAzYyBucjsgaSsrKSB7XFxuICA4NDpcXHRcXHRcXHRcXHRpZiAoeGFfaXNfdmFsdWUoZmJhdGNoLVxcdTAwM2Vmb2xpb3NbaV0pKSB7XFxuICA4NTpcXHRcXHRcXHRcXHRcXHQvKlxcbiAgODY6XFx0XFx0XFx0XFx0XFx0ICogRmlsZSBzeXN0ZW1zIHNob3VsZCBhbHJlYWR5IGhhdmUgY2FsbGVkXFxuICA4NzpcXHRcXHRcXHRcXHRcXHQgKiBkYXhfYnJlYWtfbGF5b3V0X2VudHJ5KCkgdG8gcmVtb3ZlIGFsbCBEQVhcXG4gIDg4OlxcdFxcdFxcdFxcdFxcdCAqIGVudHJpZXMgd2hpbGUgaG9sZGluZyBhIGxvY2sgdG8gcHJldmVudFxcbiAgODk6XFx0XFx0XFx0XFx0XFx0ICogZXN0YWJsaXNoaW5nIG5ldyBlbnRyaWVzLiBUaGVyZWZvcmUgd2VcXG4gIDkwOlxcdFxcdFxcdFxcdFxcdCAqIHNob3VsZG4ndCBmaW5kIGFueSBoZXJlLlxcbiAgOTE6XFx0XFx0XFx0XFx0XFx0ICovXFxuICA5MjpcXHRcXHRcXHRcXHRcXHRXQVJOX09OX09OQ0UoMSk7XFxuICA5MzpcXHRcXG4gIDk0OlxcdFxcdFxcdFxcdFxcdC8qXFxuICA5NTpcXHRcXHRcXHRcXHRcXHQgKiBEZWxldGUgdGhlIG1hcHBpbmcgc28gdHJ1bmNhdGVfcGFnZWNhY2hlKClcXG4gIDk2OlxcdFxcdFxcdFxcdFxcdCAqIGRvZXNuJ3QgbG9vcCBmb3JldmVyLlxcbiAgOTc6XFx0XFx0XFx0XFx0XFx0ICovXFxuICA5ODpcXHRcXHRcXHRcXHRcXHRkYXhfZGVsZXRlX21hcHBpbmdfZW50cnkobWFwcGluZywgaW5kaWNlc1tpXSk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDIwOjIxOjI2LjEyNjU5NTk4NloiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3MTMwOTc5NTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi5cblxuKipBbmFseXppbmcgYSBLZXJuZWwgUGF0Y2g6IGB0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHNgKipcblxuUmlnaHQsIHNvIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIGNydWNpYWwgY2hlY2s6IGBpZiAobGlrZWx5KG5yIFx1MDAzYz0gMCkpIHJldHVybjtgIGluc2lkZSB0aGUgYHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFsc2AgZnVuY3Rpb24uIEVzc2VudGlhbGx5LCBpdCdzIGEgZGVmZW5zaXZlIHByb2dyYW1taW5nIG1lYXN1cmUuIFRoZSBmdW5jdGlvbiBwcm9jZXNzZXMgYSBiYXRjaCBvZiBmb2xpb3MsIGFuZCB0aGUgbmV3IGNvZGUgcHJlZW1wdGl2ZWx5IGRlYWxzIHdpdGggc2l0dWF0aW9ucyB3aGVyZSB0aGUgYmF0Y2ggc2l6ZSAoYG5yYCkgaXMgZWl0aGVyIHplcm8gb3IsIGhlYXZlbiBmb3JiaWQsIG5lZ2F0aXZlLiBUaGF0J3MgZ29vZCwgYmVjYXVzZSBhbnl0aGluZyBvdGhlciB0aGFuIGEgcG9zaXRpdmUgY291bnQgZm9yIGZvbGlvcyB3b3VsZCBsZWFkIHRvIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIGFjY2VzcyBvciwgYXQgdGhlIHZlcnkgbGVhc3QsIHdhc3RlZCBjeWNsZXMgaWYgdGhlIGZ1bmN0aW9uIHdlcmUgY2FsbGVkIHdpdGggYW4gZW1wdHkgYmF0Y2guXG5cbk5vdywgdGhlIGltcG9ydGFudCBjb250ZXh0IGlzIGhvdyB0aGlzIGZ1bmN0aW9uIGZpdHMgaW50byB0aGUgbGFyZ2VyIHBpY3R1cmUuIEkga25vdyBgdHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzYCBpcyBjYWxsZWQgZnJvbSBgdHJ1bmNhdGVfaW5vZGVfcGFnZXNfcmFuZ2VgLiBNeSBuZXh0IHN0ZXAgaXMgdG8gcXVpY2tseSB0cmFjZSB0aGUgY2FsbCBzaXRlcyBvZiBgdHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzYCBpbiB0aGlzIGZpbGUuIEl0J3MgaW1wb3J0YW50IHRvIHVuZGVyc3RhbmQgaG93IHdpZGVzcHJlYWQgdGhlIGltcGFjdCBvZiB0aGlzIGNoYW5nZSBtaWdodCBiZS4gVGhpcyBraW5kIG9mIG9wdGltaXphdGlvbiBvciBlcnJvci1oYW5kbGluZyBpbXByb3ZlbWVudCBpcyBhbHdheXMgaW50ZXJlc3RpbmcgdG8gZGlzc2VjdCBpbiBhIGxhcmdlciBzeXN0ZW0uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMyNTQsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4OSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDIwOjIxOjI5LjgzOTY5NzQ0NloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NjgzODk1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibW0vdHJ1bmNhdGUuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJtbS90cnVuY2F0ZS5jPTI2PXN0YXRpYyB2b2lkIGNsZWFyX3NoYWRvd19lbnRyaWVzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLFxcbi0tXFxubW0vdHJ1bmNhdGUuYy01OS0gKi9cXG5tbS90cnVuY2F0ZS5jOjYwOnN0YXRpYyB2b2lkIHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFscyhzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyxcXG5tbS90cnVuY2F0ZS5jLTYxLVxcdFxcdFxcdFxcdHN0cnVjdCBmb2xpb19iYXRjaCAqZmJhdGNoLCBwZ29mZl90ICppbmRpY2VzKVxcbi0tXFxubW0vdHJ1bmNhdGUuYz0zNjk9dm9pZCB0cnVuY2F0ZV9pbm9kZV9wYWdlc19yYW5nZShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyxcXG4tLVxcbm1tL3RydW5jYXRlLmMtNDA0LVxcdFxcdFxcdFxcdTAwMjZmYmF0Y2gsIGluZGljZXMpKSB7XFxubW0vdHJ1bmNhdGUuYzo0MDU6XFx0XFx0dHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzKG1hcHBpbmcsIFxcdTAwMjZmYmF0Y2gsIGluZGljZXMpO1xcbm1tL3RydW5jYXRlLmMtNDA2LVxcdFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBmb2xpb19iYXRjaF9jb3VudChcXHUwMDI2ZmJhdGNoKTsgaSsrKVxcbi0tXFxubW0vdHJ1bmNhdGUuYy00NjYtXFx0XFx0fVxcbm1tL3RydW5jYXRlLmM6NDY3OlxcdFxcdHRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFscyhtYXBwaW5nLCBcXHUwMDI2ZmJhdGNoLCBpbmRpY2VzKTtcXG5tbS90cnVuY2F0ZS5jLTQ2OC1cXHRcXHRmb2xpb19iYXRjaF9yZWxlYXNlKFxcdTAwMjZmYmF0Y2gpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQyMDoyMToyOS44OTY1NTY0NzZaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MjA4ODI2NDE0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93bjpcblxuKipUcnVuY2F0ZSBJbm9kZSBQYWdlcyBSYW5nZTogQSBQcm9taXNpbmcgRnV6emluZyBUYXJnZXQqKlxuXG5BbHJpZ2h0LCBzbyB0aGUgZnVuY3Rpb24gaW4gcXVlc3Rpb24gaGVyZSBpcyBgdHJ1bmNhdGVfaW5vZGVfcGFnZXNfcmFuZ2VgLiBJdCdzIGEga2V5IHBpZWNlIG9mIHRoZSBWaXJ0dWFsIEZpbGUgU3lzdGVtIChWRlMpIGFuZCBNZW1vcnkgTWFuYWdlbWVudCAoTU0pIGluZnJhc3RydWN0dXJlLiBDb25zaWRlcmluZyBob3cgZm91bmRhdGlvbmFsIGl0IGlzLCBpdCdzIGFic29sdXRlbHkgZ29pbmcgdG8gYmUgcmVhY2hhYmxlIGluIGEgd2lkZSB2YXJpZXR5IG9mIHNjZW5hcmlvcywgbWFraW5nIGl0IGEgcHJpbWUgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBHaXZlbiBpdHMgY2VudHJhbGl0eSwgZnV6emluZyB0aGlzIGZ1bmN0aW9uIGhvbGRzIGEgaGlnaCBwcm9iYWJpbGl0eSBvZiBmaW5kaW5nIGlzc3VlcyB0aGF0IHdpbGwgbWFrZSBhIGJpZyBkaWZmZXJlbmNlLCBpZiBpdCB5aWVsZHMgcmVzdWx0cy5cblxuSSdkIHdhbnQgdG8gaG9tZSBpbiBvbiBgdHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzYCBhcyB0aGUgZm9jdXMgc3ltYm9sIHdpdGhpbiB0aGF0IGZ1bmN0aW9uOyBpdCBhcHBlYXJzIHRvIGJlIHdoZXJlIGEgbG90IG9mIHRoZSBjcml0aWNhbCBsb2dpYyByZXNpZGVzLiBUaGFua2Z1bGx5LCBzaW5jZSB0aGlzIGlzIGNvcmUgTU0gY29kZSwgbm8gc3BlY2lhbCBrZXJuZWwgY29uZmlncyBzaG91bGQgYmUgcmVxdWlyZWQuIFdlIGNhbiBqdXN0IGRpdmUgcmlnaHQgaW4uXG5cbk5vdywgbGV0J3MgZ2V0IHRoZSBiYWxsIHJvbGxpbmcgYW5kIHNldCB1cCB0aGUgdGVzdGluZyBmcmFtZXdvcmsuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM5MTIsIk91dHB1dFRva2VucyI6OTksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQyMDoyMTozNC4xMDUzODUxNDFaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMzE2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInRydW5jYXRlX2ZvbGlvX2JhdGNoX2V4Y2VwdGlvbmFsc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBjaGVjayBmb3IgYG5yIFxcdTAwM2M9IDBgIGluIGB0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHNgLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgbWVtb3J5IG1hbmFnZW1lbnQgY29kZS4gSXQgcHJldmVudHMgcG90ZW50aWFsIGlzc3VlcyB3aGVuIHRoZSBmb2xpbyBiYXRjaCBjb3VudCBpcyB6ZXJvIG9yIG5lZ2F0aXZlLiBUaGlzIGZ1bmN0aW9uIGlzIHJlYWNoYWJsZSB0aHJvdWdoIHN0YW5kYXJkIGZpbGUgdHJ1bmNhdGlvbiBwYXRocy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ0cnVuY2F0ZV9mb2xpb19iYXRjaF9leGNlcHRpb25hbHNcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgY2hlY2sgZm9yIGBuciBcXHUwMDNjPSAwYCBpbiBgdHJ1bmNhdGVfZm9saW9fYmF0Y2hfZXhjZXB0aW9uYWxzYCwgd2hpY2ggaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIG1lbW9yeSBtYW5hZ2VtZW50IGNvZGUuIEl0IHByZXZlbnRzIHBvdGVudGlhbCBpc3N1ZXMgd2hlbiB0aGUgZm9saW8gYmF0Y2ggY291bnQgaXMgemVybyBvciBuZWdhdGl2ZS4gVGhpcyBmdW5jdGlvbiBpcyByZWFjaGFibGUgdGhyb3VnaCBzdGFuZGFyZCBmaWxlIHRydW5jYXRpb24gcGF0aHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowxplfp[1] Phase: Succeeded StartedAt: 2026-07-11 20:21:46 +0000 UTC FinishedAt: 2026-07-11 20:21:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxplfp[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-11 20:21:46 +0000 UTC FinishedAt: 2026-07-11 20:21:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxplfp[2] Phase: Succeeded StartedAt: 2026-07-11 20:21:46 +0000 UTC FinishedAt: 2026-07-12 01:04:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxplfp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-11 20:21:46 +0000 UTC FinishedAt: 2026-07-12 01:04:56 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},"patched":{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowxplfp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-11 20:21:46 +0000 UTC FinishedAt: 2026-07-11 20:21:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxplfp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-11 20:21:46 +0000 UTC FinishedAt: 2026-07-11 20:21:50 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowxplfp/series-workflowxplfp-convert-artifact-2897002324/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxplfp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-11 20:21:56 +0000 UTC FinishedAt: 2026-07-11 21:06:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxplfp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-11 20:21:56 +0000 UTC FinishedAt: 2026-07-11 21:06:56 +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:*0bbb83e7-22e3-42bb-9b92-d538090987e2,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-workflowxplfp/series-workflowxplfp-convert-artifact-2897002324/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": "5f90e1b5-0eea-4f58-85a9-5c9a5936150e", "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-workflowxplfp/series-workflowxplfp-build-action-754252498/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxplfp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-11 20:21:56 +0000 UTC FinishedAt: 2026-07-11 21:06:46 +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:*0bbb83e7-22e3-42bb-9b92-d538090987e2,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-workflowxplfp/series-workflowxplfp-convert-artifact-2897002324/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": "5f90e1b5-0eea-4f58-85a9-5c9a5936150e", "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-workflowxplfp/series-workflowxplfp-build-action-754252498/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxplfp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-11 21:06:56 +0000 UTC FinishedAt: 2026-07-11 21:06:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxplfp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-11 21:06:56 +0000 UTC FinishedAt: 2026-07-11 21:06:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxplfp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-11 21:06:56 +0000 UTC FinishedAt: 2026-07-11 21:07:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxplfp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-11 21:06:56 +0000 UTC FinishedAt: 2026-07-11 21:07:04 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowxplfp/series-workflowxplfp-convert-artifact-97869843/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxplfp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-11 21:07:06 +0000 UTC FinishedAt: 2026-07-11 21:09:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxplfp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-11 21:07:06 +0000 UTC FinishedAt: 2026-07-11 21:09:26 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*5f90e1b5-0eea-4f58-85a9-5c9a5936150e,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-workflowxplfp/series-workflowxplfp-build-action-754252498/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-workflowxplfp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-11 21:09:36 +0000 UTC FinishedAt: 2026-07-11 21:09:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxplfp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-11 21:09:36 +0000 UTC FinishedAt: 2026-07-11 21:09:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxplfp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-11 21:09:36 +0000 UTC FinishedAt: 2026-07-11 22:00:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxplfp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-11 21:09:36 +0000 UTC FinishedAt: 2026-07-11 22:00: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:*0bbb83e7-22e3-42bb-9b92-d538090987e2,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-workflowxplfp/series-workflowxplfp-convert-artifact-97869843/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": "8abaf3e2-297c-4fbf-835e-4c1f010787ae", "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-workflowxplfp/series-workflowxplfp-build-action-3753129543/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxplfp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-11 21:09:36 +0000 UTC FinishedAt: 2026-07-11 22:00: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:*0bbb83e7-22e3-42bb-9b92-d538090987e2,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-workflowxplfp/series-workflowxplfp-convert-artifact-97869843/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": "8abaf3e2-297c-4fbf-835e-4c1f010787ae", "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-workflowxplfp/series-workflowxplfp-build-action-3753129543/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxplfp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-11 22:00:31 +0000 UTC FinishedAt: 2026-07-11 22:00:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxplfp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-11 22:00:31 +0000 UTC FinishedAt: 2026-07-11 22:00:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxplfp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-11 22:00:31 +0000 UTC FinishedAt: 2026-07-11 22:02:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxplfp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-11 22:00:31 +0000 UTC FinishedAt: 2026-07-11 22:02:16 +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:*8abaf3e2-297c-4fbf-835e-4c1f010787ae,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-workflowxplfp/series-workflowxplfp-build-action-3753129543/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-workflowxplfp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-11 22:02:26 +0000 UTC FinishedAt: 2026-07-12 01:04:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxplfp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-11 22:02:26 +0000 UTC FinishedAt: 2026-07-12 01:04:55 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:track,Default:nil,Value:*KASAN,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:base-build-id,Default:nil,Value:*5f90e1b5-0eea-4f58-85a9-5c9a5936150e,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*8abaf3e2-297c-4fbf-835e-4c1f010787ae,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-workflowxplfp/series-workflowxplfp-build-action-754252498/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-workflowxplfp/series-workflowxplfp-build-action-3753129543/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowxplfp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-11 22:02:26 +0000 UTC FinishedAt: 2026-07-11 22:02:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxplfp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-11 22:02:26 +0000 UTC FinishedAt: 2026-07-11 22:02:36 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowxplfp/series-workflowxplfp-convert-artifact-835333004/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxplfp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-11 22:02:26 +0000 UTC FinishedAt: 2026-07-11 22:02:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxplfp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-11 22:02:26 +0000 UTC FinishedAt: 2026-07-11 22:02:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxplfp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-11 22:02:27 +0000 UTC FinishedAt: 2026-07-11 22:02:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxplfp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-11 22:02:47 +0000 UTC FinishedAt: 2026-07-12 01:04:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxplfp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["truncate_folio_batch_exceptionals"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","series_id":"64ba4e5f-a17e-4801-8dfe-1acdfa489b3c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-11 22:02:47 +0000 UTC FinishedAt: 2026-07-12 01:04:34 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*5f90e1b5-0eea-4f58-85a9-5c9a5936150e,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*8abaf3e2-297c-4fbf-835e-4c1f010787ae,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-workflowxplfp/series-workflowxplfp-build-action-754252498/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-workflowxplfp/series-workflowxplfp-build-action-3753129543/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-workflowxplfp/series-workflowxplfp-convert-artifact-835333004/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,}