Name: series-workflow6bxqf Phase: Succeeded StartedAt: 2026-07-30 20:13:18 +0000 UTC FinishedAt: 2026-07-31 00:26:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bxqf[0] Phase: Succeeded StartedAt: 2026-07-30 20:13:18 +0000 UTC FinishedAt: 2026-07-30 20:29:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bxqf[0].run-triage Phase: Succeeded StartedAt: 2026-07-30 20:13:18 +0000 UTC FinishedAt: 2026-07-30 20:29:23 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "11028ab62899e4191e074ee364c712b77823a9c4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "OPENVSWITCH" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "11028ab62899e4191e074ee364c712b77823a9c4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "OPENVSWITCH" ], "series_id": "7f416d8b-a677-4d68-affb-7b7091d8cccb" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ovs_flow_cmd_new" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDIwOjI4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O09QRU5WU1dJVENIJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7b3ZzX2Zsb3dfY21kX25ldyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgT3BlbiB2U3dpdGNoIG5ldGxpbmsgaGFuZGxlciBmb3IgY3JlYXRpbmcvdXBkYXRpbmcgZmxvd3MgKG92c19mbG93X2NtZF9uZXcpIHRvIHJlYWxsb2NhdGUgdGhlIHJlcGx5IHNrYiBpZiB0aGUgdXBkYXRlZCBmbG93IElEIHJlcXVpcmVzIGEgbGFyZ2VyIG1lc3NhZ2Ugc2l6ZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgY29kZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMDoyODwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGY5ZTIwZjM3MTk3MTk3NTM5NDZlZDExOTU3YzA3ZDI4ODRkNmI5NGVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAzMCAyMDoyODo0NiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYyBiL25ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jXG5pbmRleCBlYWYzMzJiMTU2ZDczLi4zMDA3ZDc1YjQyMTQ1IDEwMDY0NFxuLS0tIGEvbmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jXG5AQCAtMTExMyw5ICYjNDM7MTExMyw4IEBAIHN0YXRpYyBpbnQgb3ZzX2Zsb3dfY21kX25ldyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuIFx0XHRcdGVycm9yID0gLUVFWElTVDtcbiBcdFx0XHRnb3RvIGVycl91bmxvY2tfb3ZzO1xuIFx0XHR9XG4tXHRcdC8qIFRoZSBmbG93IGlkZW50aWZpZXIgaGFzIHRvIGJlIHRoZSBzYW1lIGZvciBmbG93IHVwZGF0ZXMuXG4tXHRcdCAqIExvb2sgZm9yIGFueSBvdmVybGFwcGluZyBmbG93LlxuLVx0XHQgKi9cbiYjNDM7XG4mIzQzO1x0XHQvKiBMb29rIGZvciBhbnkgb3ZlcmxhcHBpbmcgZmxvdy4gKi9cbiBcdFx0aWYgKHVubGlrZWx5KCFvdnNfZmxvd19jbXAoZmxvdywgXHUwMDI2bWF0Y2gpKSkge1xuIFx0XHRcdGlmIChvdnNfaWRlbnRpZmllcl9pc19rZXkoXHUwMDI2Zmxvdy1cdTAwM2VpZCkpXG4gXHRcdFx0XHRmbG93ID0gb3ZzX2Zsb3dfdGJsX2xvb2t1cF9leGFjdChcdTAwMjZkcC1cdTAwM2V0YWJsZSxcbkBAIC0xMTI3LDYgJiM0MzsxMTI2LDI1IEBAIHN0YXRpYyBpbnQgb3ZzX2Zsb3dfY21kX25ldyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuIFx0XHRcdFx0Z290byBlcnJfdW5sb2NrX292cztcbiBcdFx0XHR9XG4gXHRcdH1cbiYjNDM7XG4mIzQzO1x0XHRpZiAodW5saWtlbHkocmVwbHkgXHUwMDI2XHUwMDI2XG4mIzQzO1x0XHRcdCAgICAgb3ZzX2Zsb3dfY21kX21zZ19zaXplKGFjdHMsIFx1MDAyNm5ld19mbG93LVx1MDAzZWlkLFxuJiM0MztcdFx0XHRcdFx0XHQgICB1ZmlkX2ZsYWdzKSBcdTAwM2NcbiYjNDM7XHRcdFx0ICAgICBvdnNfZmxvd19jbWRfbXNnX3NpemUoYWN0cywgXHUwMDI2Zmxvdy1cdTAwM2VpZCxcbiYjNDM7XHRcdFx0XHRcdFx0ICAgdWZpZF9mbGFncykpKSB7XG4mIzQzO1x0XHRcdHN0cnVjdCBza19idWZmICpuZXdfcmVwbHk7XG4mIzQzO1xuJiM0MztcdFx0XHRuZXdfcmVwbHkgPSBvdnNfZmxvd19jbWRfYWxsb2NfaW5mbyhhY3RzLCBcdTAwMjZmbG93LVx1MDAzZWlkLFxuJiM0MztcdFx0XHRcdFx0XHRcdCAgICBpbmZvLCBmYWxzZSxcbiYjNDM7XHRcdFx0XHRcdFx0XHQgICAgdWZpZF9mbGFncyk7XG4mIzQzO1x0XHRcdGlmIChJU19FUlIobmV3X3JlcGx5KSkge1xuJiM0MztcdFx0XHRcdGVycm9yID0gUFRSX0VSUihuZXdfcmVwbHkpO1xuJiM0MztcdFx0XHRcdGdvdG8gZXJyX3VubG9ja19vdnM7XG4mIzQzO1x0XHRcdH1cbiYjNDM7XHRcdFx0a2ZyZWVfc2tiKHJlcGx5KTtcbiYjNDM7XHRcdFx0cmVwbHkgPSBuZXdfcmVwbHk7XG4mIzQzO1x0XHR9XG4mIzQzO1xuIFx0XHQvKiBVcGRhdGUgYWN0aW9ucy4gKi9cbiBcdFx0b2xkX2FjdHMgPSBvdnNsX2RlcmVmZXJlbmNlKGZsb3ctXHUwMDNlc2ZfYWN0cyk7XG4gXHRcdHJjdV9hc3NpZ25fcG9pbnRlcihmbG93LVx1MDAzZXNmX2FjdHMsIGFjdHMpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDIwOjI4PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtPUEVOVlNXSVRDSCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O292c19mbG93X2NtZF9uZXcmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE9wZW4gdlN3aXRjaCBuZXRsaW5rIGhhbmRsZXIgZm9yIGNyZWF0aW5nL3VwZGF0aW5nIGZsb3dzIChvdnNfZmxvd19jbWRfbmV3KSB0byByZWFsbG9jYXRlIHRoZSByZXBseSBza2IgaWYgdGhlIHVwZGF0ZWQgZmxvdyBJRCByZXF1aXJlcyBhIGxhcmdlciBtZXNzYWdlIHNpemUuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBmOWUyMGYzNzE5NzE5NzUzOTQ2ZWQxMTk1N2MwN2QyODg0ZDZiOTRlCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBKdWwgMzAgMjA6Mjg6NDYgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYyBiL25ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jCmluZGV4IGVhZjMzMmIxNTZkNzMuLjMwMDdkNzViNDIxNDUgMTAwNjQ0Ci0tLSBhL25ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jCkBAIC0xMTEzLDkgJiM0MzsxMTEzLDggQEAgc3RhdGljIGludCBvdnNfZmxvd19jbWRfbmV3KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pCiAJCQllcnJvciA9IC1FRVhJU1Q7CiAJCQlnb3RvIGVycl91bmxvY2tfb3ZzOwogCQl9Ci0JCS8qIFRoZSBmbG93IGlkZW50aWZpZXIgaGFzIHRvIGJlIHRoZSBzYW1lIGZvciBmbG93IHVwZGF0ZXMuCi0JCSAqIExvb2sgZm9yIGFueSBvdmVybGFwcGluZyBmbG93LgotCQkgKi8KJiM0MzsKJiM0MzsJCS8qIExvb2sgZm9yIGFueSBvdmVybGFwcGluZyBmbG93LiAqLwogCQlpZiAodW5saWtlbHkoIW92c19mbG93X2NtcChmbG93LCAmYW1wO21hdGNoKSkpIHsKIAkJCWlmIChvdnNfaWRlbnRpZmllcl9pc19rZXkoJmFtcDtmbG93LSZndDtpZCkpCiAJCQkJZmxvdyA9IG92c19mbG93X3RibF9sb29rdXBfZXhhY3QoJmFtcDtkcC0mZ3Q7dGFibGUsCkBAIC0xMTI3LDYgJiM0MzsxMTI2LDI1IEBAIHN0YXRpYyBpbnQgb3ZzX2Zsb3dfY21kX25ldyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKQogCQkJCWdvdG8gZXJyX3VubG9ja19vdnM7CiAJCQl9CiAJCX0KJiM0MzsKJiM0MzsJCWlmICh1bmxpa2VseShyZXBseSAmYW1wOyZhbXA7CiYjNDM7CQkJICAgICBvdnNfZmxvd19jbWRfbXNnX3NpemUoYWN0cywgJmFtcDtuZXdfZmxvdy0mZ3Q7aWQsCiYjNDM7CQkJCQkJICAgdWZpZF9mbGFncykgJmx0OwomIzQzOwkJCSAgICAgb3ZzX2Zsb3dfY21kX21zZ19zaXplKGFjdHMsICZhbXA7Zmxvdy0mZ3Q7aWQsCiYjNDM7CQkJCQkJICAgdWZpZF9mbGFncykpKSB7CiYjNDM7CQkJc3RydWN0IHNrX2J1ZmYgKm5ld19yZXBseTsKJiM0MzsKJiM0MzsJCQluZXdfcmVwbHkgPSBvdnNfZmxvd19jbWRfYWxsb2NfaW5mbyhhY3RzLCAmYW1wO2Zsb3ctJmd0O2lkLAomIzQzOwkJCQkJCQkgICAgaW5mbywgZmFsc2UsCiYjNDM7CQkJCQkJCSAgICB1ZmlkX2ZsYWdzKTsKJiM0MzsJCQlpZiAoSVNfRVJSKG5ld19yZXBseSkpIHsKJiM0MzsJCQkJZXJyb3IgPSBQVFJfRVJSKG5ld19yZXBseSk7CiYjNDM7CQkJCWdvdG8gZXJyX3VubG9ja19vdnM7CiYjNDM7CQkJfQomIzQzOwkJCWtmcmVlX3NrYihyZXBseSk7CiYjNDM7CQkJcmVwbHkgPSBuZXdfcmVwbHk7CiYjNDM7CQl9CiYjNDM7CiAJCS8qIFVwZGF0ZSBhY3Rpb25zLiAqLwogCQlvbGRfYWN0cyA9IG92c2xfZGVyZWZlcmVuY2UoZmxvdy0mZ3Q7c2ZfYWN0cyk7CiAJCXJjdV9hc3NpZ25fcG9pbnRlcihmbG93LSZndDtzZl9hY3RzLCBhY3RzKTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMjA6Mjg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQxNAoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDE2MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE9wZW4gdlN3aXRjaCBGbG93IENyZWF0aW9uIExvZ2ljKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQmIzM5O3MgYmVlbiBhcHBsaWVkIHRvIGBuZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguY2AuIFRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgdGhlIGBvdnNfZmxvd19jbWRfbmV3YCBmdW5jdGlvbiwgd2hpY2gsIGFzIEkgcmVjYWxsLCBoYW5kbGVzIHRoZSBjcmVhdGlvbiBvZiBuZXcgZmxvdyBlbnRyaWVzIGluIHRoZSBPcGVuIHZTd2l0Y2ggZGF0YSBwYXRoLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0JiMzOTtzIGNoYW5nZWQgYW5kIHdoeS4KCkZyb20gd2hhdCBJIGNhbiBzZWUsIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgY2hlY2sgd2l0aGluIGBvdnNfZmxvd19jbWRfbmV3YC4gU3BlY2lmaWNhbGx5LCBpdCBhcHBlYXJzIHRvIGJlIGV2YWx1YXRpbmcgdGhlIGByZXBseWAgcG9pbnRlci4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgYHJlcGx5YCBwcm9iYWJseSByZWZlcnMgdG8gc29tZSBidWZmZXIgb3Igc3RydWN0dXJlIGludGVuZGVkIGZvciByZXR1cm5pbmcgaW5mb3JtYXRpb24gb3IgYW4gYWNrbm93bGVkZ2VtZW50IHJlZ2FyZGluZyB0aGUgZmxvdyBjcmVhdGlvbi4gSXQmIzM5O3MgbG9va2luZyB0byBzZWUgaWYgYHJlcGx5YCBpcyBub3QgTlVMTCwgYW5kIHRoZW4gdGhlcmUmIzM5O3MgYSBzaXplIGNvbXBhcmlzb24uIE15IGd1ZXNzIGlzIHRoYXQgaXQgaXMgY29tcGFyaW5nIHRoZSBzaXplcyBmb3IgYG5ld19mbG93LSZndDtpZGAgYW5kIGBmbG93LSZndDtpZGAgdG8gY29uZmlybSBpZiB0aGVyZSBpcyBzdWZmaWNpZW50IHNwYWNlIGFsbG9jYXRlZCBmb3IgYSBtZXNzYWdlLiBJZiB0aGUgc2l6ZSBvZiB0aGUgbWVzc2FnZSBpcyBzbWFsbGVyIHRoYW4gdGhlIHJlcXVpcmVkIHNwYWNlLCBpdCBsb29rcyBsaWtlIHRoZXkgYXJlIGFsbG9jYXRpbmcgYSBuZXcgYHJlcGx5YCBidWZmZXIsIHVzaW5nIGBvdnNfZmxvd19jbWRfYWxsb2NfaW5mb2AsIGFuZCBmcmVlaW5nIHRoZSBvbGQgb25lLgoKVGhpcyBzb3VuZHMgbGlrZSBhIGZhaXJseSBzdGFuZGFyZCBtZW1vcnkgbWFuYWdlbWVudCBwYXR0ZXJuLCBwcm9iYWJseSBhaW1lZCBhdCBoYW5kbGluZyBwb3RlbnRpYWwgc2l6ZSBtaXNtYXRjaGVzIGR1cmluZyBmbG93IGNyZWF0aW9uLiBJdCBzZWVtcyBsaWtlIHRoZSBjb3JlIGZ1bmN0aW9uIGlzIG1ha2luZyBzdXJlIHRoZXJlJiMzOTtzIGVub3VnaCBzcGFjZSB0byB0cmFuc21pdCB0aGUgZmxvdyBJRCBvciBzb21lIG90aGVyIGNydWNpYWwgaW5mb3JtYXRpb24gYmFjayB0byB0aGUgY2FsbGVyLiBUaGlzIGlzIGFsbCBmdW5jdGlvbmFsIGxvZ2ljIHdpdGhpbiB0aGUgY29yZSBvZiBPVlMuCgpOb3csIEkgcmVhbGx5IG5lZWQgdG8gZGVsdmUgZGVlcGVyIGludG8gdGhlIGNvZGUuIFRpbWUgdG8gZmlyZSB1cCBgZ3JlcHBlcmAgYW5kIGV4YW1pbmUgYG92c19mbG93X2NtZF9uZXdgIGluIGBuZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguY2AgZGlyZWN0bHkuIEkgbmVlZCB0byBjb25maXJtIG15IGFzc3VtcHRpb25zIGFuZCBzZWUgd2hhdCBvdGhlciBkZXRhaWxzIGFyZSBpbnZvbHZlZCBpbiB0aGlzIGNoYW5nZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMDoyODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtvdnNfZmxvd19jbWRfbmV3JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmM9OTc1PXN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqb3ZzX2Zsb3dfY21kX2J1aWxkX2luZm8oY29uc3Qgc3RydWN0IHN3X2Zsb3cgKmZsb3csXG4tLVxubmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmMtOTk3LVxubmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmM6OTk4OnN0YXRpYyBpbnQgb3ZzX2Zsb3dfY21kX25ldyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxubmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmMtOTk5LXtcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYz0xNTYxPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2VubF9zbWFsbF9vcHMgZHBfZmxvd19nZW5sX29wc1tdID0ge1xuLS1cbm5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jLTE1NjQtXHQgIC5mbGFncyA9IEdFTkxfVU5TX0FETUlOX1BFUk0sIC8qIFJlcXVpcmVzIENBUF9ORVRfQURNSU4gcHJpdmlsZWdlLiAqL1xubmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmM6MTU2NTpcdCAgLmRvaXQgPSBvdnNfZmxvd19jbWRfbmV3XG5uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYy0xNTY2LVx0fSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMDoyODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMjYzCgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogODcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCBtZSBicmVhayB0aGlzIGRvd24uCgoqKkFuYWx5emluZyB0aGUgT3BlbiB2U3dpdGNoIEZsb3cgQ29tbWFuZCBIYW5kbGluZyoqCgpBbHJpZ2h0LCBzbyBgb3ZzX2Zsb3dfY21kX25ld2Ag4oCTIHRoYXQmIzM5O3MgdGhlIGZ1bmN0aW9uIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggaGVyZS4gIEl0JiMzOTtzIGRlZmluaXRlbHkgdGllZCB0byBgZHBfZmxvd19nZW5sX29wc2Agc3BlY2lmaWNhbGx5IGZvciB0aGUgYE9WU19GTE9XX0NNRF9ORVdgIGNvbW1hbmQuICBUaGF0IGltbWVkaWF0ZWx5IHRlbGxzIG1lIHRoaXMgaXMgYWxsIGhhcHBlbmluZyBvdmVyIG5ldGxpbmsuIE5vIHN1cnByaXNlcyB0aGVyZS4gIFNvLCB3ZSYjMzk7cmUgdGFsa2luZyBhYm91dCBhIGNvcmUgcGllY2Ugb2YgaG93IG5ldyBmbG93cyBnZXQgaW5qZWN0ZWQgaW50byBPVlMuCgpOb3csIHRoZSBwYXRjaC4uLiBhaCwgaXQgYWRkcyBhIGNoZWNrIGZvciBgcmVwbHlgIGFuZCByZS1hbGxvY2F0ZXMgaXQgaWYgdGhlIHNpemUgaXNuJiMzOTt0IGJpZyBlbm91Z2guICBUaGF0JiMzOTtzIGludGVyZXN0aW5nLiBJdCBsb29rcyBsaWtlIGl0IGFkZHJlc3NlcyBhIHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cgdnVsbmVyYWJpbGl0eSBvciBhdCBsZWFzdCBhIHJlc291cmNlIGFsbG9jYXRpb24gaXNzdWUgd2hlcmUgdGhlIGluaXRpYWwgYWxsb2NhdGlvbiBtaWdodCBiZSBpbnN1ZmZpY2llbnQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgbm90IGp1c3QgYSBjb3NtZXRpYyBvbmUuIFNvIHRoZXJlJiMzOTtzIGEgZ29vZCByZWFzb24gdG8gaW52ZXN0aWdhdGUgdGhpcywgaXQgY2hhbmdlcyBiZWhhdmlvci4KCk9rYXksIG5vdyB0byBmaW5kIHRoZSBjb25maWd1cmF0aW9uLi4ubGV0JiMzOTtzIGdvIGZpbmQgdGhlIHNwZWNpZmljIE9WUyBjb25maWcgd2UgbmVlZC4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDIwOjI4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBPUEVOVlNXSVRDSCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9vcGVudnN3aXRjaC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9vcGVudnN3aXRjaC9LY29uZmlnLTUtXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZzo2OmNvbmZpZyBPUEVOVlNXSVRDSFxubmV0L29wZW52c3dpdGNoL0tjb25maWctNy1cdHRyaXN0YXRlIFwmIzM0O09wZW4gdlN3aXRjaFwmIzM0O1xuLS1cbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnLTQzLVxubmV0L29wZW52c3dpdGNoL0tjb25maWc6NDQ6Y29uZmlnIE9QRU5WU1dJVENIX0dSRVxubmV0L29wZW52c3dpdGNoL0tjb25maWctNDUtXHR0cmlzdGF0ZSBcJiMzNDtPcGVuIHZTd2l0Y2ggR1JFIHR1bm5lbGluZyBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L29wZW52c3dpdGNoL0tjb25maWctNTYtXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZzo1Nzpjb25maWcgT1BFTlZTV0lUQ0hfVlhMQU5cbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnLTU4LVx0dHJpc3RhdGUgXCYjMzQ7T3BlbiB2U3dpdGNoIFZYTEFOIHR1bm5lbGluZyBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L29wZW52c3dpdGNoL0tjb25maWctNjgtXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZzo2OTpjb25maWcgT1BFTlZTV0lUQ0hfR0VORVZFXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZy03MC1cdHRyaXN0YXRlIFwmIzM0O09wZW4gdlN3aXRjaCBHZW5ldmUgdHVubmVsaW5nIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMDoyODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzODU4CgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogMzkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGZyb20gbXkgcGVyc3BlY3RpdmUgYXMgc29tZW9uZSBkZWVwbHkgZmFtaWxpYXIgd2l0aCB0aGlzIGtpbmQgb2Ygc3lzdGVtOgoKKipBbmFseXppbmcgdGhlIEZsb3cgQ3JlYXRpb24gRnVuY3Rpb24gaW4gYW4gT3BlbiB2U3dpdGNoIENvbnRleHQqKgoKQWxyaWdodCwgdGhlIGNvbmZpZ3VyYXRpb24gaW4gcXVlc3Rpb24gaXMgZGVmaW5pdGVseSBgT1BFTlZTV0lUQ0hgLiBUaGF0IGltbWVkaWF0ZWx5IG5hcnJvd3MgdGhlIHNjb3BlIGFuZCBicmluZ3MgdG8gbWluZCBhIHdob2xlIHVuaXZlcnNlIG9mIGNvbnNpZGVyYXRpb25zIHJlZ2FyZGluZyBmbG93IHRhYmxlcywgZGF0YXBhdGggaW50ZXJhY3Rpb25zLCBhbmQgb2YgY291cnNlLCBwZXJmb3JtYW5jZSBpbXBsaWNhdGlvbnMuIFRoZSBjb3JlIGZ1bmN0aW9uIHRvIGV4YW1pbmUgaGVyZSBpcyBgb3ZzX2Zsb3dfY21kX25ld2AuIFRoaXMgaXMgd2hlcmUgdGhlIG1hZ2ljIChvciB0aGUgcHJvYmxlbXMhKSBhcmUgY3JlYXRlZCDigJMgd2hlcmUgd2UmIzM5O3JlIGNyYWZ0aW5nIG5ldyBmbG93IGVudHJpZXMsIGxpa2VseSB0cmlnZ2VyZWQgYnkgc29tZSBjb250cm9sIHBsYW5lIGludGVyYWN0aW9uLCBvciBwZXJoYXBzIGV2ZW4gYnkgc29tZSBkYXRhcGxhbmUgbGVhcm5pbmcgbWVjaGFuaXNtLgoKQmVmb3JlIEkgZGl2ZSB0b28gZGVlcCBpbnRvIHRoZSBtZWNoYW5pY3Mgb2YgYG92c19mbG93X2NtZF9uZXdgIGl0c2VsZiwgSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGhhdmVuJiMzOTt0IG1pc3NlZCBzb21ldGhpbmcgZnVuZGFtZW50YWwuIEkgbmVlZCB0byBxdWlja2x5IHNjYW4gdGhlIHN1cnJvdW5kaW5nIGNvbmZpZ3VyYXRpb24uICpBcmUgdGhlcmUgYW55IG90aGVyIHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zKiB0aGF0IGFwcGx5IGluIHRoaXMgc3BlY2lmaWMgc2l0dWF0aW9uPyBBcmUgdGhlcmUgYW55IHJlbGF0ZWQgdG8gZmxvdyBhZ2luZywgY2FjaGluZywgaGFyZHdhcmUgb2ZmbG9hZCwgb3IgcGVyaGFwcyB0aGUgaW5ncmVzcyBwaXBlbGluZSBjb25maWd1cmF0aW9uPyBJdOKAmXMgY3J1Y2lhbCB0byB1bmRlcnN0YW5kIHRoZSBvdmVyYWxsIGNvbnRleHQgYmVmb3JlIGdldHRpbmcgdG9vIGJvZ2dlZCBkb3duIGluIHRoZSBzcGVjaWZpY3Mgb2YgdGhpcyBmdW5jdGlvbi4gSSBoYXZlIHRvIHRoaW5rIGFib3V0IGRlcGVuZGVuY2llcywgZXh0ZXJuYWwgdmFyaWFibGVzLCBhbmQgc2lkZS1lZmZlY3RzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDIwOjI5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RlcGVuZHMgb24mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZz02PWNvbmZpZyBPUEVOVlNXSVRDSFxubmV0L29wZW52c3dpdGNoL0tjb25maWctNy1cdHRyaXN0YXRlIFwmIzM0O09wZW4gdlN3aXRjaFwmIzM0O1xubmV0L29wZW52c3dpdGNoL0tjb25maWc6ODpcdGRlcGVuZHMgb24gSU5FVFxubmV0L29wZW52c3dpdGNoL0tjb25maWc6OTpcdGRlcGVuZHMgb24gIU5GX0NPTk5UUkFDSyB8fCBcXFxubmV0L29wZW52c3dpdGNoL0tjb25maWctMTAtXHRcdCAgIChORl9DT05OVFJBQ0sgXHUwMDI2XHUwMDI2ICgoIU5GX0RFRlJBR19JUFY2IHx8IE5GX0RFRlJBR19JUFY2KSBcdTAwMjZcdTAwMjYgXFxcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZy0xMi1cdFx0XHRcdCAgICAgKCFORVRGSUxURVJfQ09OTkNPVU5UIHx8IE5FVEZJTFRFUl9DT05OQ09VTlQpKSlcbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnOjEzOlx0ZGVwZW5kcyBvbiBQU0FNUExFIHx8ICFQU0FNUExFXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZy0xNC1cdHNlbGVjdCBNUExTXG4tLVxubmV0L29wZW52c3dpdGNoL0tjb25maWc9NDQ9Y29uZmlnIE9QRU5WU1dJVENIX0dSRVxubmV0L29wZW52c3dpdGNoL0tjb25maWctNDUtXHR0cmlzdGF0ZSBcJiMzNDtPcGVuIHZTd2l0Y2ggR1JFIHR1bm5lbGluZyBzdXBwb3J0XCYjMzQ7XG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZzo0NjpcdGRlcGVuZHMgb24gT1BFTlZTV0lUQ0hcbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnOjQ3Olx0ZGVwZW5kcyBvbiBORVRfSVBHUkVcbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnLTQ4LVx0ZGVmYXVsdCBPUEVOVlNXSVRDSFxuLS1cbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnPTU3PWNvbmZpZyBPUEVOVlNXSVRDSF9WWExBTlxubmV0L29wZW52c3dpdGNoL0tjb25maWctNTgtXHR0cmlzdGF0ZSBcJiMzNDtPcGVuIHZTd2l0Y2ggVlhMQU4gdHVubmVsaW5nIHN1cHBvcnRcJiMzNDtcbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnOjU5Olx0ZGVwZW5kcyBvbiBPUEVOVlNXSVRDSFxubmV0L29wZW52c3dpdGNoL0tjb25maWc6NjA6XHRkZXBlbmRzIG9uIFZYTEFOXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZy02MS1cdGRlZmF1bHQgT1BFTlZTV0lUQ0hcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZz02OT1jb25maWcgT1BFTlZTV0lUQ0hfR0VORVZFXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZy03MC1cdHRyaXN0YXRlIFwmIzM0O09wZW4gdlN3aXRjaCBHZW5ldmUgdHVubmVsaW5nIHN1cHBvcnRcJiMzNDtcbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnOjcxOlx0ZGVwZW5kcyBvbiBPUEVOVlNXSVRDSFxubmV0L29wZW52c3dpdGNoL0tjb25maWc6NzI6XHRkZXBlbmRzIG9uIEdFTkVWRVxubmV0L29wZW52c3dpdGNoL0tjb25maWctNzMtXHRkZWZhdWx0IE9QRU5WU1dJVENIXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMjA6Mjk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDcwNQoJCQkJCQkJb3V0cHV0OiAxMDEKCQkJCQkJCXRob3VnaHRzOiA2MzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIE9wZW4gdlN3aXRjaCBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQsIGZpcnN0IHRoaW5ncyBmaXJzdCwgT3BlbiB2U3dpdGNoIHJlbGllcyBvbiBJTkVULCBnb3QgaXQuIEkmIzM5O2xsIG1ha2Ugc3VyZSB0byBpbmNsdWRlIGBPUEVOVlNXSVRDSGAgaW4gbXkgYEVuYWJsZUNvbmZpZ3NgIHNpbmNlIGl0JiMzOTtzIGZvdW5kYXRpb25hbC4KClRoZSBjb3JlIG9mIHRoZSBjaGFuZ2UgYXBwZWFycyB0byBiZSBpbiB0aGUgYG92c19mbG93X2NtZF9uZXdgIGZ1bmN0aW9uLiBMZXQgbWUgZG91YmxlLWNoZWNrIC0geWVwLCBpdCYjMzk7cyBtb2RpZmllZC4gTm93LCBJIHJlbWVtYmVyIHRoZSBwcm9tcHQmIzM5O3MgcHJlZmVyZW5jZTogYXZvaWQgc3RhdGljLCBpbmxpbmVkIGhlbHBlciBmdW5jdGlvbnMgaWYgcG9zc2libGUsIGFuZCBwcmVmZXIgdGhlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzLiBPa2F5LCBpcyBgb3ZzX2Zsb3dfY21kX25ld2Agc3RhdGljPyBZZXMsIGl0JiMzOTtzIGRlY2xhcmVkIGBzdGF0aWMgaW50IG92c19mbG93X2NtZF9uZXcoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylgLgoKTGV0JiMzOTtzIHNlZSBpZiBpdCYjMzk7cyB1c2VkIGFzIGEgZnVuY3Rpb24gcG9pbnRlciBhbnl3aGVyZS4gQWgsIHllcywgaW4gYGRwX2Zsb3dfZ2VubF9vcHNgIGl0JiMzOTtzIGFzc2lnbmVkIHRvIGAuZG9pdCA9IG92c19mbG93X2NtZF9uZXdgLiBUaGF0IG1lYW5zIGl0cyBhZGRyZXNzIGlzIHRha2VuLCBzbyB0aGUgY29tcGlsZXIgKmhhcyogdG8ga2VlcCBhIHN0YW5kYWxvbmUgdmVyc2lvbjsgaXQgY2FuJiMzOTt0IGJlICpmdWxseSogaW5saW5lZC4gSSBjb3VsZCBpbmNsdWRlIGVpdGhlciB0aGUgbmV0bGluayBlbnRyeSBwb2ludCBvciBqdXN0IGBvdnNfZmxvd19jbWRfbmV3YCBpbiBteSBhbmFseXNpcy4gSXQmIzM5O3MgdGhlIGRpcmVjdCBoYW5kbGVyIGZvciBgT1ZTX0ZMT1dfQ01EX05FV2AsIHNvIEkmIzM5O2xsIGZvY3VzIG9uIHRoYXQuIEkmIzM5O3ZlIGNvbmZpcm1lZCB0aGF0IGBvdnNfZmxvd19jbWRfbmV3YCAqaXMqIHRoZSBrZXkgZnVuY3Rpb24uCgpOb3csIGxldCYjMzk7cyBkcmlsbCBkb3duIGludG8gdGhlIHBhdGNoIGl0c2VsZi4KCmBgYGMKCQlpZiAodW5saWtlbHkocmVwbHkgJmFtcDsmYW1wOwoJCQkgICAgIG92c19mbG93X2NtZF9tc2dfc2l6ZShhY3RzLCAmYW1wO25ld19mbG93LSZndDtpZCwKCQkJCQkJICAgdWZpZF9mbGFncykgJmx0OwoJCQkgICAgIG92c19mbG93X2NtZF9tc2dfc2l6ZShhY3RzLCAmYW1wO2Zsb3ctJmd0O2lkLAoJCQkJCQkgICB1ZmlkX2ZsYWdzKSkpIHsKCQkJc3RydWN0IHNrX2J1ZmYgKm5ld19yZXBseTsKCgkJCW5ld19yZXBseSA9IG92c19mbG93X2NtZF9hbGxvY19pbmZvKGFjdHMsICZhbXA7Zmxvdy0mZ3Q7aWQsCgkJCQkJCQkgICAgaW5mbywgZmFsc2UsCgkJCQkJCQkgICAgdWZpZF9mbGFncyk7CgkJCWlmIChJU19FUlIobmV3X3JlcGx5KSkgewoJCQkJZXJyb3IgPSBQVFJfRVJSKG5ld19yZXBseSk7CgkJCQlnb3RvIGVycl91bmxvY2tfb3ZzOwoJCQl9CgkJCWtmcmVlX3NrYihyZXBseSk7CgkJCXJlcGx5ID0gbmV3X3JlcGx5OwoJCX0KYGBgCgpPa2F5LCB0aGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UuIEl0IHNlZW1zIHRvIGFkZHJlc3MgYSBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93IG9yLCBtb3JlIGxpa2VseSwgYSByZWFsbG9jYXRpb24gcHJvYmxlbS4gVGhlIGNvZGUgcmVhbGxvY2F0ZXMgdGhlIHJlcGx5IGBza2JgIGlmIHRoZSB1cGRhdGVkIGZsb3cgSUQgcmVxdWlyZXMgYSAqbGFyZ2VyKiBtZXNzYWdlIHNpemUgZHVyaW5nIGEgZmxvdyB1cGRhdGUuIFRoaXMgaXMgZGVmaW5pdGVseSB3b3J0aCBmdXp6aW5nOyBpdCYjMzk7cyByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIGNvZGUuCgoqKkluIHN1bW1hcnk6KiogVGhpcyBwYXRjaCBtb2RpZmllcyB0aGUgT3BlbiB2U3dpdGNoIG5ldGxpbmsgaGFuZGxlciAoYG92c19mbG93X2NtZF9uZXdgKSBmb3IgY3JlYXRpbmcvdXBkYXRpbmcgZmxvd3MgdG8gY29ycmVjdGx5IHJlYWxsb2NhdGUgdGhlIHJlcGx5IGBza2JgIGlmIHRoZSBmbG93IElEIHNpemUgaW5jcmVhc2VzLCB3aGljaCBhdm9pZHMgYSBwb3RlbnRpYWwgaXNzdWUuCgpNeSBmb2N1cyBzeW1ib2wgaXMgYG92c19mbG93X2NtZF9uZXdgLCBhbmQgdGhlIGBFbmFibGVDb25maWdzYCBpbmNsdWRlIGBPUEVOVlNXSVRDSGAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDIwOjI5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtPUEVOVlNXSVRDSCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O292c19mbG93X2NtZF9uZXcmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE9wZW4gdlN3aXRjaCBuZXRsaW5rIGhhbmRsZXIgZm9yIGNyZWF0aW5nL3VwZGF0aW5nIGZsb3dzIChvdnNfZmxvd19jbWRfbmV3KSB0byByZWFsbG9jYXRlIHRoZSByZXBseSBza2IgaWYgdGhlIHVwZGF0ZWQgZmxvdyBJRCByZXF1aXJlcyBhIGxhcmdlciBtZXNzYWdlIHNpemUuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O09QRU5WU1dJVENIJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7b3ZzX2Zsb3dfY21kX25ldyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgT3BlbiB2U3dpdGNoIG5ldGxpbmsgaGFuZGxlciBmb3IgY3JlYXRpbmcvdXBkYXRpbmcgZmxvd3MgKG92c19mbG93X2NtZF9uZXcpIHRvIHJlYWxsb2NhdGUgdGhlIHJlcGx5IHNrYiBpZiB0aGUgdXBkYXRlZCBmbG93IElEIHJlcXVpcmVzIGEgbGFyZ2VyIG1lc3NhZ2Ugc2l6ZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgY29kZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDIwOjI4OjQ3Ljc4MjY4MjE5WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjM1MDUxMjM2MDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiT1BFTlZTV0lUQ0hcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJvdnNfZmxvd19jbWRfbmV3XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE9wZW4gdlN3aXRjaCBuZXRsaW5rIGhhbmRsZXIgZm9yIGNyZWF0aW5nL3VwZGF0aW5nIGZsb3dzIChvdnNfZmxvd19jbWRfbmV3KSB0byByZWFsbG9jYXRlIHRoZSByZXBseSBza2IgaWYgdGhlIHVwZGF0ZWQgZmxvdyBJRCByZXF1aXJlcyBhIGxhcmdlciBtZXNzYWdlIHNpemUuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDIwOjI4OjQ3Ljc4MjY5ODc3WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0OTQ2ODgzMzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBmOWUyMGYzNzE5NzE5NzUzOTQ2ZWQxMTk1N2MwN2QyODg0ZDZiOTRlXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUaHUgSnVsIDMwIDIwOjI4OjQ2IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jIGIvbmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmNcXG5pbmRleCBlYWYzMzJiMTU2ZDczLi4zMDA3ZDc1YjQyMTQ1IDEwMDY0NFxcbi0tLSBhL25ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jXFxuKysrIGIvbmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmNcXG5AQCAtMTExMyw5ICsxMTEzLDggQEAgc3RhdGljIGludCBvdnNfZmxvd19jbWRfbmV3KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuIFxcdFxcdFxcdGVycm9yID0gLUVFWElTVDtcXG4gXFx0XFx0XFx0Z290byBlcnJfdW5sb2NrX292cztcXG4gXFx0XFx0fVxcbi1cXHRcXHQvKiBUaGUgZmxvdyBpZGVudGlmaWVyIGhhcyB0byBiZSB0aGUgc2FtZSBmb3IgZmxvdyB1cGRhdGVzLlxcbi1cXHRcXHQgKiBMb29rIGZvciBhbnkgb3ZlcmxhcHBpbmcgZmxvdy5cXG4tXFx0XFx0ICovXFxuK1xcbitcXHRcXHQvKiBMb29rIGZvciBhbnkgb3ZlcmxhcHBpbmcgZmxvdy4gKi9cXG4gXFx0XFx0aWYgKHVubGlrZWx5KCFvdnNfZmxvd19jbXAoZmxvdywgXFx1MDAyNm1hdGNoKSkpIHtcXG4gXFx0XFx0XFx0aWYgKG92c19pZGVudGlmaWVyX2lzX2tleShcXHUwMDI2Zmxvdy1cXHUwMDNlaWQpKVxcbiBcXHRcXHRcXHRcXHRmbG93ID0gb3ZzX2Zsb3dfdGJsX2xvb2t1cF9leGFjdChcXHUwMDI2ZHAtXFx1MDAzZXRhYmxlLFxcbkBAIC0xMTI3LDYgKzExMjYsMjUgQEAgc3RhdGljIGludCBvdnNfZmxvd19jbWRfbmV3KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuIFxcdFxcdFxcdFxcdGdvdG8gZXJyX3VubG9ja19vdnM7XFxuIFxcdFxcdFxcdH1cXG4gXFx0XFx0fVxcbitcXG4rXFx0XFx0aWYgKHVubGlrZWx5KHJlcGx5IFxcdTAwMjZcXHUwMDI2XFxuK1xcdFxcdFxcdCAgICAgb3ZzX2Zsb3dfY21kX21zZ19zaXplKGFjdHMsIFxcdTAwMjZuZXdfZmxvdy1cXHUwMDNlaWQsXFxuK1xcdFxcdFxcdFxcdFxcdFxcdCAgIHVmaWRfZmxhZ3MpIFxcdTAwM2NcXG4rXFx0XFx0XFx0ICAgICBvdnNfZmxvd19jbWRfbXNnX3NpemUoYWN0cywgXFx1MDAyNmZsb3ctXFx1MDAzZWlkLFxcbitcXHRcXHRcXHRcXHRcXHRcXHQgICB1ZmlkX2ZsYWdzKSkpIHtcXG4rXFx0XFx0XFx0c3RydWN0IHNrX2J1ZmYgKm5ld19yZXBseTtcXG4rXFxuK1xcdFxcdFxcdG5ld19yZXBseSA9IG92c19mbG93X2NtZF9hbGxvY19pbmZvKGFjdHMsIFxcdTAwMjZmbG93LVxcdTAwM2VpZCxcXG4rXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgIGluZm8sIGZhbHNlLFxcbitcXHRcXHRcXHRcXHRcXHRcXHRcXHQgICAgdWZpZF9mbGFncyk7XFxuK1xcdFxcdFxcdGlmIChJU19FUlIobmV3X3JlcGx5KSkge1xcbitcXHRcXHRcXHRcXHRlcnJvciA9IFBUUl9FUlIobmV3X3JlcGx5KTtcXG4rXFx0XFx0XFx0XFx0Z290byBlcnJfdW5sb2NrX292cztcXG4rXFx0XFx0XFx0fVxcbitcXHRcXHRcXHRrZnJlZV9za2IocmVwbHkpO1xcbitcXHRcXHRcXHRyZXBseSA9IG5ld19yZXBseTtcXG4rXFx0XFx0fVxcbitcXG4gXFx0XFx0LyogVXBkYXRlIGFjdGlvbnMuICovXFxuIFxcdFxcdG9sZF9hY3RzID0gb3ZzbF9kZXJlZmVyZW5jZShmbG93LVxcdTAwM2VzZl9hY3RzKTtcXG4gXFx0XFx0cmN1X2Fzc2lnbl9wb2ludGVyKGZsb3ctXFx1MDAzZXNmX2FjdHMsIGFjdHMpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQyMDoyODo0OC4yNzgzMzQ3MzNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoyMzAwOTQ1NjY1NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJPUEVOVlNXSVRDSFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm92c19mbG93X2NtZF9uZXdcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgT3BlbiB2U3dpdGNoIG5ldGxpbmsgaGFuZGxlciBmb3IgY3JlYXRpbmcvdXBkYXRpbmcgZmxvd3MgKG92c19mbG93X2NtZF9uZXcpIHRvIHJlYWxsb2NhdGUgdGhlIHJlcGx5IHNrYiBpZiB0aGUgdXBkYXRlZCBmbG93IElEIHJlcXVpcmVzIGEgbGFyZ2VyIG1lc3NhZ2Ugc2l6ZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgY29kZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZjllMjBmMzcxOTcxOTc1Mzk0NmVkMTE5NTdjMDdkMjg4NGQ2Yjk0ZVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDMwIDIwOjI4OjQ2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmMgYi9uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguY1xuaW5kZXggZWFmMzMyYjE1NmQ3My4uMzAwN2Q3NWI0MjE0NSAxMDA2NDRcbi0tLSBhL25ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jXG4rKysgYi9uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguY1xuQEAgLTExMTMsOSArMTExMyw4IEBAIHN0YXRpYyBpbnQgb3ZzX2Zsb3dfY21kX25ldyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuIFx0XHRcdGVycm9yID0gLUVFWElTVDtcbiBcdFx0XHRnb3RvIGVycl91bmxvY2tfb3ZzO1xuIFx0XHR9XG4tXHRcdC8qIFRoZSBmbG93IGlkZW50aWZpZXIgaGFzIHRvIGJlIHRoZSBzYW1lIGZvciBmbG93IHVwZGF0ZXMuXG4tXHRcdCAqIExvb2sgZm9yIGFueSBvdmVybGFwcGluZyBmbG93LlxuLVx0XHQgKi9cbitcbitcdFx0LyogTG9vayBmb3IgYW55IG92ZXJsYXBwaW5nIGZsb3cuICovXG4gXHRcdGlmICh1bmxpa2VseSghb3ZzX2Zsb3dfY21wKGZsb3csIFx1MDAyNm1hdGNoKSkpIHtcbiBcdFx0XHRpZiAob3ZzX2lkZW50aWZpZXJfaXNfa2V5KFx1MDAyNmZsb3ctXHUwMDNlaWQpKVxuIFx0XHRcdFx0ZmxvdyA9IG92c19mbG93X3RibF9sb29rdXBfZXhhY3QoXHUwMDI2ZHAtXHUwMDNldGFibGUsXG5AQCAtMTEyNyw2ICsxMTI2LDI1IEBAIHN0YXRpYyBpbnQgb3ZzX2Zsb3dfY21kX25ldyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuIFx0XHRcdFx0Z290byBlcnJfdW5sb2NrX292cztcbiBcdFx0XHR9XG4gXHRcdH1cbitcbitcdFx0aWYgKHVubGlrZWx5KHJlcGx5IFx1MDAyNlx1MDAyNlxuK1x0XHRcdCAgICAgb3ZzX2Zsb3dfY21kX21zZ19zaXplKGFjdHMsIFx1MDAyNm5ld19mbG93LVx1MDAzZWlkLFxuK1x0XHRcdFx0XHRcdCAgIHVmaWRfZmxhZ3MpIFx1MDAzY1xuK1x0XHRcdCAgICAgb3ZzX2Zsb3dfY21kX21zZ19zaXplKGFjdHMsIFx1MDAyNmZsb3ctXHUwMDNlaWQsXG4rXHRcdFx0XHRcdFx0ICAgdWZpZF9mbGFncykpKSB7XG4rXHRcdFx0c3RydWN0IHNrX2J1ZmYgKm5ld19yZXBseTtcbitcbitcdFx0XHRuZXdfcmVwbHkgPSBvdnNfZmxvd19jbWRfYWxsb2NfaW5mbyhhY3RzLCBcdTAwMjZmbG93LVx1MDAzZWlkLFxuK1x0XHRcdFx0XHRcdFx0ICAgIGluZm8sIGZhbHNlLFxuK1x0XHRcdFx0XHRcdFx0ICAgIHVmaWRfZmxhZ3MpO1xuK1x0XHRcdGlmIChJU19FUlIobmV3X3JlcGx5KSkge1xuK1x0XHRcdFx0ZXJyb3IgPSBQVFJfRVJSKG5ld19yZXBseSk7XG4rXHRcdFx0XHRnb3RvIGVycl91bmxvY2tfb3ZzO1xuK1x0XHRcdH1cbitcdFx0XHRrZnJlZV9za2IocmVwbHkpO1xuK1x0XHRcdHJlcGx5ID0gbmV3X3JlcGx5O1xuK1x0XHR9XG4rXG4gXHRcdC8qIFVwZGF0ZSBhY3Rpb25zLiAqL1xuIFx0XHRvbGRfYWN0cyA9IG92c2xfZGVyZWZlcmVuY2UoZmxvdy1cdTAwM2VzZl9hY3RzKTtcbiBcdFx0cmN1X2Fzc2lnbl9wb2ludGVyKGZsb3ctXHUwMDNlc2ZfYWN0cywgYWN0cyk7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQyMDoyODo0OC4yNzgzMzY5MTNaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MDQyNzE5OTk1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgT3BlbiB2U3dpdGNoIEZsb3cgQ3JlYXRpb24gTG9naWMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQncyBiZWVuIGFwcGxpZWQgdG8gYG5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jYC4gVGhpcyBwYXRjaCBpcyB0b3VjaGluZyB0aGUgYG92c19mbG93X2NtZF9uZXdgIGZ1bmN0aW9uLCB3aGljaCwgYXMgSSByZWNhbGwsIGhhbmRsZXMgdGhlIGNyZWF0aW9uIG9mIG5ldyBmbG93IGVudHJpZXMgaW4gdGhlIE9wZW4gdlN3aXRjaCBkYXRhIHBhdGguIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQncyBjaGFuZ2VkIGFuZCB3aHkuXG5cbkZyb20gd2hhdCBJIGNhbiBzZWUsIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgY2hlY2sgd2l0aGluIGBvdnNfZmxvd19jbWRfbmV3YC4gU3BlY2lmaWNhbGx5LCBpdCBhcHBlYXJzIHRvIGJlIGV2YWx1YXRpbmcgdGhlIGByZXBseWAgcG9pbnRlci4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgYHJlcGx5YCBwcm9iYWJseSByZWZlcnMgdG8gc29tZSBidWZmZXIgb3Igc3RydWN0dXJlIGludGVuZGVkIGZvciByZXR1cm5pbmcgaW5mb3JtYXRpb24gb3IgYW4gYWNrbm93bGVkZ2VtZW50IHJlZ2FyZGluZyB0aGUgZmxvdyBjcmVhdGlvbi4gSXQncyBsb29raW5nIHRvIHNlZSBpZiBgcmVwbHlgIGlzIG5vdCBOVUxMLCBhbmQgdGhlbiB0aGVyZSdzIGEgc2l6ZSBjb21wYXJpc29uLiBNeSBndWVzcyBpcyB0aGF0IGl0IGlzIGNvbXBhcmluZyB0aGUgc2l6ZXMgZm9yIGBuZXdfZmxvdy1cdTAwM2VpZGAgYW5kIGBmbG93LVx1MDAzZWlkYCB0byBjb25maXJtIGlmIHRoZXJlIGlzIHN1ZmZpY2llbnQgc3BhY2UgYWxsb2NhdGVkIGZvciBhIG1lc3NhZ2UuIElmIHRoZSBzaXplIG9mIHRoZSBtZXNzYWdlIGlzIHNtYWxsZXIgdGhhbiB0aGUgcmVxdWlyZWQgc3BhY2UsIGl0IGxvb2tzIGxpa2UgdGhleSBhcmUgYWxsb2NhdGluZyBhIG5ldyBgcmVwbHlgIGJ1ZmZlciwgdXNpbmcgYG92c19mbG93X2NtZF9hbGxvY19pbmZvYCwgYW5kIGZyZWVpbmcgdGhlIG9sZCBvbmUuXG5cblRoaXMgc291bmRzIGxpa2UgYSBmYWlybHkgc3RhbmRhcmQgbWVtb3J5IG1hbmFnZW1lbnQgcGF0dGVybiwgcHJvYmFibHkgYWltZWQgYXQgaGFuZGxpbmcgcG90ZW50aWFsIHNpemUgbWlzbWF0Y2hlcyBkdXJpbmcgZmxvdyBjcmVhdGlvbi4gSXQgc2VlbXMgbGlrZSB0aGUgY29yZSBmdW5jdGlvbiBpcyBtYWtpbmcgc3VyZSB0aGVyZSdzIGVub3VnaCBzcGFjZSB0byB0cmFuc21pdCB0aGUgZmxvdyBJRCBvciBzb21lIG90aGVyIGNydWNpYWwgaW5mb3JtYXRpb24gYmFjayB0byB0aGUgY2FsbGVyLiBUaGlzIGlzIGFsbCBmdW5jdGlvbmFsIGxvZ2ljIHdpdGhpbiB0aGUgY29yZSBvZiBPVlMuXG5cbk5vdywgSSByZWFsbHkgbmVlZCB0byBkZWx2ZSBkZWVwZXIgaW50byB0aGUgY29kZS4gVGltZSB0byBmaXJlIHVwIGBncmVwcGVyYCBhbmQgZXhhbWluZSBgb3ZzX2Zsb3dfY21kX25ld2AgaW4gYG5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jYCBkaXJlY3RseS4gSSBuZWVkIHRvIGNvbmZpcm0gbXkgYXNzdW1wdGlvbnMgYW5kIHNlZSB3aGF0IG90aGVyIGRldGFpbHMgYXJlIGludm9sdmVkIGluIHRoaXMgY2hhbmdlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNDE0LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTYzLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMjA6Mjg6NTMuMzIxMDU5MTY4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjkwODQ5OTMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm92c19mbG93X2NtZF9uZXdcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmM9OTc1PXN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqb3ZzX2Zsb3dfY21kX2J1aWxkX2luZm8oY29uc3Qgc3RydWN0IHN3X2Zsb3cgKmZsb3csXFxuLS1cXG5uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYy05OTctXFxubmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmM6OTk4OnN0YXRpYyBpbnQgb3ZzX2Zsb3dfY21kX25ldyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbm5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jLTk5OS17XFxuLS1cXG5uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYz0xNTYxPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2VubF9zbWFsbF9vcHMgZHBfZmxvd19nZW5sX29wc1tdID0ge1xcbi0tXFxubmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmMtMTU2NC1cXHQgIC5mbGFncyA9IEdFTkxfVU5TX0FETUlOX1BFUk0sIC8qIFJlcXVpcmVzIENBUF9ORVRfQURNSU4gcHJpdmlsZWdlLiAqL1xcbm5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jOjE1NjU6XFx0ICAuZG9pdCA9IG92c19mbG93X2NtZF9uZXdcXG5uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYy0xNTY2LVxcdH0sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDIwOjI4OjUzLjQxMTkxNDI0OFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwMjU2MjUwMzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCBtZSBicmVhayB0aGlzIGRvd24uXG5cbioqQW5hbHl6aW5nIHRoZSBPcGVuIHZTd2l0Y2ggRmxvdyBDb21tYW5kIEhhbmRsaW5nKipcblxuQWxyaWdodCwgc28gYG92c19mbG93X2NtZF9uZXdgIOKAkyB0aGF0J3MgdGhlIGZ1bmN0aW9uIHdlJ3JlIGRlYWxpbmcgd2l0aCBoZXJlLiAgSXQncyBkZWZpbml0ZWx5IHRpZWQgdG8gYGRwX2Zsb3dfZ2VubF9vcHNgIHNwZWNpZmljYWxseSBmb3IgdGhlIGBPVlNfRkxPV19DTURfTkVXYCBjb21tYW5kLiAgVGhhdCBpbW1lZGlhdGVseSB0ZWxscyBtZSB0aGlzIGlzIGFsbCBoYXBwZW5pbmcgb3ZlciBuZXRsaW5rLiBObyBzdXJwcmlzZXMgdGhlcmUuICBTbywgd2UncmUgdGFsa2luZyBhYm91dCBhIGNvcmUgcGllY2Ugb2YgaG93IG5ldyBmbG93cyBnZXQgaW5qZWN0ZWQgaW50byBPVlMuXG5cbk5vdywgdGhlIHBhdGNoLi4uIGFoLCBpdCBhZGRzIGEgY2hlY2sgZm9yIGByZXBseWAgYW5kIHJlLWFsbG9jYXRlcyBpdCBpZiB0aGUgc2l6ZSBpc24ndCBiaWcgZW5vdWdoLiAgVGhhdCdzIGludGVyZXN0aW5nLiBJdCBsb29rcyBsaWtlIGl0IGFkZHJlc3NlcyBhIHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cgdnVsbmVyYWJpbGl0eSBvciBhdCBsZWFzdCBhIHJlc291cmNlIGFsbG9jYXRpb24gaXNzdWUgd2hlcmUgdGhlIGluaXRpYWwgYWxsb2NhdGlvbiBtaWdodCBiZSBpbnN1ZmZpY2llbnQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgbm90IGp1c3QgYSBjb3NtZXRpYyBvbmUuIFNvIHRoZXJlJ3MgYSBnb29kIHJlYXNvbiB0byBpbnZlc3RpZ2F0ZSB0aGlzLCBpdCBjaGFuZ2VzIGJlaGF2aW9yLlxuXG5Pa2F5LCBub3cgdG8gZmluZCB0aGUgY29uZmlndXJhdGlvbi4uLmxldCdzIGdvIGZpbmQgdGhlIHNwZWNpZmljIE9WUyBjb25maWcgd2UgbmVlZC4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjYzLCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMjA6Mjg6NTcuNDM3NTQzMjU1WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg2MTU5NTAxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBPUEVOVlNXSVRDSFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZy01LVxcbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnOjY6Y29uZmlnIE9QRU5WU1dJVENIXFxubmV0L29wZW52c3dpdGNoL0tjb25maWctNy1cXHR0cmlzdGF0ZSBcXFwiT3BlbiB2U3dpdGNoXFxcIlxcbi0tXFxubmV0L29wZW52c3dpdGNoL0tjb25maWctNDMtXFxubmV0L29wZW52c3dpdGNoL0tjb25maWc6NDQ6Y29uZmlnIE9QRU5WU1dJVENIX0dSRVxcbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnLTQ1LVxcdHRyaXN0YXRlIFxcXCJPcGVuIHZTd2l0Y2ggR1JFIHR1bm5lbGluZyBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L29wZW52c3dpdGNoL0tjb25maWctNTYtXFxubmV0L29wZW52c3dpdGNoL0tjb25maWc6NTc6Y29uZmlnIE9QRU5WU1dJVENIX1ZYTEFOXFxubmV0L29wZW52c3dpdGNoL0tjb25maWctNTgtXFx0dHJpc3RhdGUgXFxcIk9wZW4gdlN3aXRjaCBWWExBTiB0dW5uZWxpbmcgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnLTY4LVxcbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnOjY5OmNvbmZpZyBPUEVOVlNXSVRDSF9HRU5FVkVcXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZy03MC1cXHR0cmlzdGF0ZSBcXFwiT3BlbiB2U3dpdGNoIEdlbmV2ZSB0dW5uZWxpbmcgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMjA6Mjg6NTcuNTIzNzA5OTM2WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzMzNjk1MjYwNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBmcm9tIG15IHBlcnNwZWN0aXZlIGFzIHNvbWVvbmUgZGVlcGx5IGZhbWlsaWFyIHdpdGggdGhpcyBraW5kIG9mIHN5c3RlbTpcblxuKipBbmFseXppbmcgdGhlIEZsb3cgQ3JlYXRpb24gRnVuY3Rpb24gaW4gYW4gT3BlbiB2U3dpdGNoIENvbnRleHQqKlxuXG5BbHJpZ2h0LCB0aGUgY29uZmlndXJhdGlvbiBpbiBxdWVzdGlvbiBpcyBkZWZpbml0ZWx5IGBPUEVOVlNXSVRDSGAuIFRoYXQgaW1tZWRpYXRlbHkgbmFycm93cyB0aGUgc2NvcGUgYW5kIGJyaW5ncyB0byBtaW5kIGEgd2hvbGUgdW5pdmVyc2Ugb2YgY29uc2lkZXJhdGlvbnMgcmVnYXJkaW5nIGZsb3cgdGFibGVzLCBkYXRhcGF0aCBpbnRlcmFjdGlvbnMsIGFuZCBvZiBjb3Vyc2UsIHBlcmZvcm1hbmNlIGltcGxpY2F0aW9ucy4gVGhlIGNvcmUgZnVuY3Rpb24gdG8gZXhhbWluZSBoZXJlIGlzIGBvdnNfZmxvd19jbWRfbmV3YC4gVGhpcyBpcyB3aGVyZSB0aGUgbWFnaWMgKG9yIHRoZSBwcm9ibGVtcyEpIGFyZSBjcmVhdGVkIOKAkyB3aGVyZSB3ZSdyZSBjcmFmdGluZyBuZXcgZmxvdyBlbnRyaWVzLCBsaWtlbHkgdHJpZ2dlcmVkIGJ5IHNvbWUgY29udHJvbCBwbGFuZSBpbnRlcmFjdGlvbiwgb3IgcGVyaGFwcyBldmVuIGJ5IHNvbWUgZGF0YXBsYW5lIGxlYXJuaW5nIG1lY2hhbmlzbS5cblxuQmVmb3JlIEkgZGl2ZSB0b28gZGVlcCBpbnRvIHRoZSBtZWNoYW5pY3Mgb2YgYG92c19mbG93X2NtZF9uZXdgIGl0c2VsZiwgSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGhhdmVuJ3QgbWlzc2VkIHNvbWV0aGluZyBmdW5kYW1lbnRhbC4gSSBuZWVkIHRvIHF1aWNrbHkgc2NhbiB0aGUgc3Vycm91bmRpbmcgY29uZmlndXJhdGlvbi4gKkFyZSB0aGVyZSBhbnkgb3RoZXIgc3BlY2lmaWMgY29uZmlndXJhdGlvbnMqIHRoYXQgYXBwbHkgaW4gdGhpcyBzcGVjaWZpYyBzaXR1YXRpb24/IEFyZSB0aGVyZSBhbnkgcmVsYXRlZCB0byBmbG93IGFnaW5nLCBjYWNoaW5nLCBoYXJkd2FyZSBvZmZsb2FkLCBvciBwZXJoYXBzIHRoZSBpbmdyZXNzIHBpcGVsaW5lIGNvbmZpZ3VyYXRpb24/IEl04oCZcyBjcnVjaWFsIHRvIHVuZGVyc3RhbmQgdGhlIG92ZXJhbGwgY29udGV4dCBiZWZvcmUgZ2V0dGluZyB0b28gYm9nZ2VkIGRvd24gaW4gdGhlIHNwZWNpZmljcyBvZiB0aGlzIGZ1bmN0aW9uLiBJIGhhdmUgdG8gdGhpbmsgYWJvdXQgZGVwZW5kZW5jaWVzLCBleHRlcm5hbCB2YXJpYWJsZXMsIGFuZCBzaWRlLWVmZmVjdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4NTgsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQyMDoyOTowMC44NjA2NjY2MzJaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTIyMDgyOTczLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRlcGVuZHMgb25cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L29wZW52c3dpdGNoL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L29wZW52c3dpdGNoL0tjb25maWc9Nj1jb25maWcgT1BFTlZTV0lUQ0hcXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZy03LVxcdHRyaXN0YXRlIFxcXCJPcGVuIHZTd2l0Y2hcXFwiXFxubmV0L29wZW52c3dpdGNoL0tjb25maWc6ODpcXHRkZXBlbmRzIG9uIElORVRcXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZzo5OlxcdGRlcGVuZHMgb24gIU5GX0NPTk5UUkFDSyB8fCBcXFxcXFxubmV0L29wZW52c3dpdGNoL0tjb25maWctMTAtXFx0XFx0ICAgKE5GX0NPTk5UUkFDSyBcXHUwMDI2XFx1MDAyNiAoKCFORl9ERUZSQUdfSVBWNiB8fCBORl9ERUZSQUdfSVBWNikgXFx1MDAyNlxcdTAwMjYgXFxcXFxcbi0tXFxubmV0L29wZW52c3dpdGNoL0tjb25maWctMTItXFx0XFx0XFx0XFx0ICAgICAoIU5FVEZJTFRFUl9DT05OQ09VTlQgfHwgTkVURklMVEVSX0NPTk5DT1VOVCkpKVxcbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnOjEzOlxcdGRlcGVuZHMgb24gUFNBTVBMRSB8fCAhUFNBTVBMRVxcbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnLTE0LVxcdHNlbGVjdCBNUExTXFxuLS1cXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZz00ND1jb25maWcgT1BFTlZTV0lUQ0hfR1JFXFxubmV0L29wZW52c3dpdGNoL0tjb25maWctNDUtXFx0dHJpc3RhdGUgXFxcIk9wZW4gdlN3aXRjaCBHUkUgdHVubmVsaW5nIHN1cHBvcnRcXFwiXFxubmV0L29wZW52c3dpdGNoL0tjb25maWc6NDY6XFx0ZGVwZW5kcyBvbiBPUEVOVlNXSVRDSFxcbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnOjQ3OlxcdGRlcGVuZHMgb24gTkVUX0lQR1JFXFxubmV0L29wZW52c3dpdGNoL0tjb25maWctNDgtXFx0ZGVmYXVsdCBPUEVOVlNXSVRDSFxcbi0tXFxubmV0L29wZW52c3dpdGNoL0tjb25maWc9NTc9Y29uZmlnIE9QRU5WU1dJVENIX1ZYTEFOXFxubmV0L29wZW52c3dpdGNoL0tjb25maWctNTgtXFx0dHJpc3RhdGUgXFxcIk9wZW4gdlN3aXRjaCBWWExBTiB0dW5uZWxpbmcgc3VwcG9ydFxcXCJcXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZzo1OTpcXHRkZXBlbmRzIG9uIE9QRU5WU1dJVENIXFxubmV0L29wZW52c3dpdGNoL0tjb25maWc6NjA6XFx0ZGVwZW5kcyBvbiBWWExBTlxcbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnLTYxLVxcdGRlZmF1bHQgT1BFTlZTV0lUQ0hcXG4tLVxcbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnPTY5PWNvbmZpZyBPUEVOVlNXSVRDSF9HRU5FVkVcXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZy03MC1cXHR0cmlzdGF0ZSBcXFwiT3BlbiB2U3dpdGNoIEdlbmV2ZSB0dW5uZWxpbmcgc3VwcG9ydFxcXCJcXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZzo3MTpcXHRkZXBlbmRzIG9uIE9QRU5WU1dJVENIXFxubmV0L29wZW52c3dpdGNoL0tjb25maWc6NzI6XFx0ZGVwZW5kcyBvbiBHRU5FVkVcXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZy03My1cXHRkZWZhdWx0IE9QRU5WU1dJVENIXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDIwOjI5OjAwLjk4Mjc1NTA2NVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwMTEyODA5Nzg1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBPcGVuIHZTd2l0Y2ggUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCwgZmlyc3QgdGhpbmdzIGZpcnN0LCBPcGVuIHZTd2l0Y2ggcmVsaWVzIG9uIElORVQsIGdvdCBpdC4gSSdsbCBtYWtlIHN1cmUgdG8gaW5jbHVkZSBgT1BFTlZTV0lUQ0hgIGluIG15IGBFbmFibGVDb25maWdzYCBzaW5jZSBpdCdzIGZvdW5kYXRpb25hbC5cblxuVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBhcHBlYXJzIHRvIGJlIGluIHRoZSBgb3ZzX2Zsb3dfY21kX25ld2AgZnVuY3Rpb24uIExldCBtZSBkb3VibGUtY2hlY2sgLSB5ZXAsIGl0J3MgbW9kaWZpZWQuIE5vdywgSSByZW1lbWJlciB0aGUgcHJvbXB0J3MgcHJlZmVyZW5jZTogYXZvaWQgc3RhdGljLCBpbmxpbmVkIGhlbHBlciBmdW5jdGlvbnMgaWYgcG9zc2libGUsIGFuZCBwcmVmZXIgdGhlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzLiBPa2F5LCBpcyBgb3ZzX2Zsb3dfY21kX25ld2Agc3RhdGljPyBZZXMsIGl0J3MgZGVjbGFyZWQgYHN0YXRpYyBpbnQgb3ZzX2Zsb3dfY21kX25ldyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKWAuXG5cbkxldCdzIHNlZSBpZiBpdCdzIHVzZWQgYXMgYSBmdW5jdGlvbiBwb2ludGVyIGFueXdoZXJlLiBBaCwgeWVzLCBpbiBgZHBfZmxvd19nZW5sX29wc2AgaXQncyBhc3NpZ25lZCB0byBgLmRvaXQgPSBvdnNfZmxvd19jbWRfbmV3YC4gVGhhdCBtZWFucyBpdHMgYWRkcmVzcyBpcyB0YWtlbiwgc28gdGhlIGNvbXBpbGVyICpoYXMqIHRvIGtlZXAgYSBzdGFuZGFsb25lIHZlcnNpb247IGl0IGNhbid0IGJlICpmdWxseSogaW5saW5lZC4gSSBjb3VsZCBpbmNsdWRlIGVpdGhlciB0aGUgbmV0bGluayBlbnRyeSBwb2ludCBvciBqdXN0IGBvdnNfZmxvd19jbWRfbmV3YCBpbiBteSBhbmFseXNpcy4gSXQncyB0aGUgZGlyZWN0IGhhbmRsZXIgZm9yIGBPVlNfRkxPV19DTURfTkVXYCwgc28gSSdsbCBmb2N1cyBvbiB0aGF0LiBJJ3ZlIGNvbmZpcm1lZCB0aGF0IGBvdnNfZmxvd19jbWRfbmV3YCAqaXMqIHRoZSBrZXkgZnVuY3Rpb24uXG5cbk5vdywgbGV0J3MgZHJpbGwgZG93biBpbnRvIHRoZSBwYXRjaCBpdHNlbGYuXG5cbmBgYGNcblx0XHRpZiAodW5saWtlbHkocmVwbHkgXHUwMDI2XHUwMDI2XG5cdFx0XHQgICAgIG92c19mbG93X2NtZF9tc2dfc2l6ZShhY3RzLCBcdTAwMjZuZXdfZmxvdy1cdTAwM2VpZCxcblx0XHRcdFx0XHRcdCAgIHVmaWRfZmxhZ3MpIFx1MDAzY1xuXHRcdFx0ICAgICBvdnNfZmxvd19jbWRfbXNnX3NpemUoYWN0cywgXHUwMDI2Zmxvdy1cdTAwM2VpZCxcblx0XHRcdFx0XHRcdCAgIHVmaWRfZmxhZ3MpKSkge1xuXHRcdFx0c3RydWN0IHNrX2J1ZmYgKm5ld19yZXBseTtcblxuXHRcdFx0bmV3X3JlcGx5ID0gb3ZzX2Zsb3dfY21kX2FsbG9jX2luZm8oYWN0cywgXHUwMDI2Zmxvdy1cdTAwM2VpZCxcblx0XHRcdFx0XHRcdFx0ICAgIGluZm8sIGZhbHNlLFxuXHRcdFx0XHRcdFx0XHQgICAgdWZpZF9mbGFncyk7XG5cdFx0XHRpZiAoSVNfRVJSKG5ld19yZXBseSkpIHtcblx0XHRcdFx0ZXJyb3IgPSBQVFJfRVJSKG5ld19yZXBseSk7XG5cdFx0XHRcdGdvdG8gZXJyX3VubG9ja19vdnM7XG5cdFx0XHR9XG5cdFx0XHRrZnJlZV9za2IocmVwbHkpO1xuXHRcdFx0cmVwbHkgPSBuZXdfcmVwbHk7XG5cdFx0fVxuYGBgXG5cbk9rYXksIHRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZS4gSXQgc2VlbXMgdG8gYWRkcmVzcyBhIHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cgb3IsIG1vcmUgbGlrZWx5LCBhIHJlYWxsb2NhdGlvbiBwcm9ibGVtLiBUaGUgY29kZSByZWFsbG9jYXRlcyB0aGUgcmVwbHkgYHNrYmAgaWYgdGhlIHVwZGF0ZWQgZmxvdyBJRCByZXF1aXJlcyBhICpsYXJnZXIqIG1lc3NhZ2Ugc2l6ZSBkdXJpbmcgYSBmbG93IHVwZGF0ZS4gVGhpcyBpcyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmc7IGl0J3MgcmVhY2hhYmxlIGNvcmUgbmV0d29ya2luZyBjb2RlLlxuXG4qKkluIHN1bW1hcnk6KiogVGhpcyBwYXRjaCBtb2RpZmllcyB0aGUgT3BlbiB2U3dpdGNoIG5ldGxpbmsgaGFuZGxlciAoYG92c19mbG93X2NtZF9uZXdgKSBmb3IgY3JlYXRpbmcvdXBkYXRpbmcgZmxvd3MgdG8gY29ycmVjdGx5IHJlYWxsb2NhdGUgdGhlIHJlcGx5IGBza2JgIGlmIHRoZSBmbG93IElEIHNpemUgaW5jcmVhc2VzLCB3aGljaCBhdm9pZHMgYSBwb3RlbnRpYWwgaXNzdWUuXG5cbk15IGZvY3VzIHN5bWJvbCBpcyBgb3ZzX2Zsb3dfY21kX25ld2AsIGFuZCB0aGUgYEVuYWJsZUNvbmZpZ3NgIGluY2x1ZGUgYE9QRU5WU1dJVENIYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDcwNSwiT3V0cHV0VG9rZW5zIjoxMDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MzQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMjA6Mjk6MTEuMDk1NTg0NTlaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTIyMDA3MjgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk9QRU5WU1dJVENIXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwib3ZzX2Zsb3dfY21kX25ld1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBPcGVuIHZTd2l0Y2ggbmV0bGluayBoYW5kbGVyIGZvciBjcmVhdGluZy91cGRhdGluZyBmbG93cyAob3ZzX2Zsb3dfY21kX25ldykgdG8gcmVhbGxvY2F0ZSB0aGUgcmVwbHkgc2tiIGlmIHRoZSB1cGRhdGVkIGZsb3cgSUQgcmVxdWlyZXMgYSBsYXJnZXIgbWVzc2FnZSBzaXplLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgbmV0d29ya2luZyBjb2RlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk9QRU5WU1dJVENIXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwib3ZzX2Zsb3dfY21kX25ld1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBPcGVuIHZTd2l0Y2ggbmV0bGluayBoYW5kbGVyIGZvciBjcmVhdGluZy91cGRhdGluZyBmbG93cyAob3ZzX2Zsb3dfY21kX25ldykgdG8gcmVhbGxvY2F0ZSB0aGUgcmVwbHkgc2tiIGlmIHRoZSB1cGRhdGVkIGZsb3cgSUQgcmVxdWlyZXMgYSBsYXJnZXIgbWVzc2FnZSBzaXplLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgbmV0d29ya2luZyBjb2RlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflow6bxqf[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-30 20:13:18 +0000 UTC FinishedAt: 2026-07-30 20:29:13 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "11028ab62899e4191e074ee364c712b77823a9c4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "OPENVSWITCH" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "11028ab62899e4191e074ee364c712b77823a9c4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "OPENVSWITCH" ], "series_id": "7f416d8b-a677-4d68-affb-7b7091d8cccb" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ovs_flow_cmd_new" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDIwOjI4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O09QRU5WU1dJVENIJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7b3ZzX2Zsb3dfY21kX25ldyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgT3BlbiB2U3dpdGNoIG5ldGxpbmsgaGFuZGxlciBmb3IgY3JlYXRpbmcvdXBkYXRpbmcgZmxvd3MgKG92c19mbG93X2NtZF9uZXcpIHRvIHJlYWxsb2NhdGUgdGhlIHJlcGx5IHNrYiBpZiB0aGUgdXBkYXRlZCBmbG93IElEIHJlcXVpcmVzIGEgbGFyZ2VyIG1lc3NhZ2Ugc2l6ZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgY29kZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMDoyODwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGY5ZTIwZjM3MTk3MTk3NTM5NDZlZDExOTU3YzA3ZDI4ODRkNmI5NGVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAzMCAyMDoyODo0NiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYyBiL25ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jXG5pbmRleCBlYWYzMzJiMTU2ZDczLi4zMDA3ZDc1YjQyMTQ1IDEwMDY0NFxuLS0tIGEvbmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jXG5AQCAtMTExMyw5ICYjNDM7MTExMyw4IEBAIHN0YXRpYyBpbnQgb3ZzX2Zsb3dfY21kX25ldyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuIFx0XHRcdGVycm9yID0gLUVFWElTVDtcbiBcdFx0XHRnb3RvIGVycl91bmxvY2tfb3ZzO1xuIFx0XHR9XG4tXHRcdC8qIFRoZSBmbG93IGlkZW50aWZpZXIgaGFzIHRvIGJlIHRoZSBzYW1lIGZvciBmbG93IHVwZGF0ZXMuXG4tXHRcdCAqIExvb2sgZm9yIGFueSBvdmVybGFwcGluZyBmbG93LlxuLVx0XHQgKi9cbiYjNDM7XG4mIzQzO1x0XHQvKiBMb29rIGZvciBhbnkgb3ZlcmxhcHBpbmcgZmxvdy4gKi9cbiBcdFx0aWYgKHVubGlrZWx5KCFvdnNfZmxvd19jbXAoZmxvdywgXHUwMDI2bWF0Y2gpKSkge1xuIFx0XHRcdGlmIChvdnNfaWRlbnRpZmllcl9pc19rZXkoXHUwMDI2Zmxvdy1cdTAwM2VpZCkpXG4gXHRcdFx0XHRmbG93ID0gb3ZzX2Zsb3dfdGJsX2xvb2t1cF9leGFjdChcdTAwMjZkcC1cdTAwM2V0YWJsZSxcbkBAIC0xMTI3LDYgJiM0MzsxMTI2LDI1IEBAIHN0YXRpYyBpbnQgb3ZzX2Zsb3dfY21kX25ldyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuIFx0XHRcdFx0Z290byBlcnJfdW5sb2NrX292cztcbiBcdFx0XHR9XG4gXHRcdH1cbiYjNDM7XG4mIzQzO1x0XHRpZiAodW5saWtlbHkocmVwbHkgXHUwMDI2XHUwMDI2XG4mIzQzO1x0XHRcdCAgICAgb3ZzX2Zsb3dfY21kX21zZ19zaXplKGFjdHMsIFx1MDAyNm5ld19mbG93LVx1MDAzZWlkLFxuJiM0MztcdFx0XHRcdFx0XHQgICB1ZmlkX2ZsYWdzKSBcdTAwM2NcbiYjNDM7XHRcdFx0ICAgICBvdnNfZmxvd19jbWRfbXNnX3NpemUoYWN0cywgXHUwMDI2Zmxvdy1cdTAwM2VpZCxcbiYjNDM7XHRcdFx0XHRcdFx0ICAgdWZpZF9mbGFncykpKSB7XG4mIzQzO1x0XHRcdHN0cnVjdCBza19idWZmICpuZXdfcmVwbHk7XG4mIzQzO1xuJiM0MztcdFx0XHRuZXdfcmVwbHkgPSBvdnNfZmxvd19jbWRfYWxsb2NfaW5mbyhhY3RzLCBcdTAwMjZmbG93LVx1MDAzZWlkLFxuJiM0MztcdFx0XHRcdFx0XHRcdCAgICBpbmZvLCBmYWxzZSxcbiYjNDM7XHRcdFx0XHRcdFx0XHQgICAgdWZpZF9mbGFncyk7XG4mIzQzO1x0XHRcdGlmIChJU19FUlIobmV3X3JlcGx5KSkge1xuJiM0MztcdFx0XHRcdGVycm9yID0gUFRSX0VSUihuZXdfcmVwbHkpO1xuJiM0MztcdFx0XHRcdGdvdG8gZXJyX3VubG9ja19vdnM7XG4mIzQzO1x0XHRcdH1cbiYjNDM7XHRcdFx0a2ZyZWVfc2tiKHJlcGx5KTtcbiYjNDM7XHRcdFx0cmVwbHkgPSBuZXdfcmVwbHk7XG4mIzQzO1x0XHR9XG4mIzQzO1xuIFx0XHQvKiBVcGRhdGUgYWN0aW9ucy4gKi9cbiBcdFx0b2xkX2FjdHMgPSBvdnNsX2RlcmVmZXJlbmNlKGZsb3ctXHUwMDNlc2ZfYWN0cyk7XG4gXHRcdHJjdV9hc3NpZ25fcG9pbnRlcihmbG93LVx1MDAzZXNmX2FjdHMsIGFjdHMpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDIwOjI4PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtPUEVOVlNXSVRDSCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O292c19mbG93X2NtZF9uZXcmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE9wZW4gdlN3aXRjaCBuZXRsaW5rIGhhbmRsZXIgZm9yIGNyZWF0aW5nL3VwZGF0aW5nIGZsb3dzIChvdnNfZmxvd19jbWRfbmV3KSB0byByZWFsbG9jYXRlIHRoZSByZXBseSBza2IgaWYgdGhlIHVwZGF0ZWQgZmxvdyBJRCByZXF1aXJlcyBhIGxhcmdlciBtZXNzYWdlIHNpemUuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBmOWUyMGYzNzE5NzE5NzUzOTQ2ZWQxMTk1N2MwN2QyODg0ZDZiOTRlCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBKdWwgMzAgMjA6Mjg6NDYgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYyBiL25ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jCmluZGV4IGVhZjMzMmIxNTZkNzMuLjMwMDdkNzViNDIxNDUgMTAwNjQ0Ci0tLSBhL25ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jCkBAIC0xMTEzLDkgJiM0MzsxMTEzLDggQEAgc3RhdGljIGludCBvdnNfZmxvd19jbWRfbmV3KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pCiAJCQllcnJvciA9IC1FRVhJU1Q7CiAJCQlnb3RvIGVycl91bmxvY2tfb3ZzOwogCQl9Ci0JCS8qIFRoZSBmbG93IGlkZW50aWZpZXIgaGFzIHRvIGJlIHRoZSBzYW1lIGZvciBmbG93IHVwZGF0ZXMuCi0JCSAqIExvb2sgZm9yIGFueSBvdmVybGFwcGluZyBmbG93LgotCQkgKi8KJiM0MzsKJiM0MzsJCS8qIExvb2sgZm9yIGFueSBvdmVybGFwcGluZyBmbG93LiAqLwogCQlpZiAodW5saWtlbHkoIW92c19mbG93X2NtcChmbG93LCAmYW1wO21hdGNoKSkpIHsKIAkJCWlmIChvdnNfaWRlbnRpZmllcl9pc19rZXkoJmFtcDtmbG93LSZndDtpZCkpCiAJCQkJZmxvdyA9IG92c19mbG93X3RibF9sb29rdXBfZXhhY3QoJmFtcDtkcC0mZ3Q7dGFibGUsCkBAIC0xMTI3LDYgJiM0MzsxMTI2LDI1IEBAIHN0YXRpYyBpbnQgb3ZzX2Zsb3dfY21kX25ldyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKQogCQkJCWdvdG8gZXJyX3VubG9ja19vdnM7CiAJCQl9CiAJCX0KJiM0MzsKJiM0MzsJCWlmICh1bmxpa2VseShyZXBseSAmYW1wOyZhbXA7CiYjNDM7CQkJICAgICBvdnNfZmxvd19jbWRfbXNnX3NpemUoYWN0cywgJmFtcDtuZXdfZmxvdy0mZ3Q7aWQsCiYjNDM7CQkJCQkJICAgdWZpZF9mbGFncykgJmx0OwomIzQzOwkJCSAgICAgb3ZzX2Zsb3dfY21kX21zZ19zaXplKGFjdHMsICZhbXA7Zmxvdy0mZ3Q7aWQsCiYjNDM7CQkJCQkJICAgdWZpZF9mbGFncykpKSB7CiYjNDM7CQkJc3RydWN0IHNrX2J1ZmYgKm5ld19yZXBseTsKJiM0MzsKJiM0MzsJCQluZXdfcmVwbHkgPSBvdnNfZmxvd19jbWRfYWxsb2NfaW5mbyhhY3RzLCAmYW1wO2Zsb3ctJmd0O2lkLAomIzQzOwkJCQkJCQkgICAgaW5mbywgZmFsc2UsCiYjNDM7CQkJCQkJCSAgICB1ZmlkX2ZsYWdzKTsKJiM0MzsJCQlpZiAoSVNfRVJSKG5ld19yZXBseSkpIHsKJiM0MzsJCQkJZXJyb3IgPSBQVFJfRVJSKG5ld19yZXBseSk7CiYjNDM7CQkJCWdvdG8gZXJyX3VubG9ja19vdnM7CiYjNDM7CQkJfQomIzQzOwkJCWtmcmVlX3NrYihyZXBseSk7CiYjNDM7CQkJcmVwbHkgPSBuZXdfcmVwbHk7CiYjNDM7CQl9CiYjNDM7CiAJCS8qIFVwZGF0ZSBhY3Rpb25zLiAqLwogCQlvbGRfYWN0cyA9IG92c2xfZGVyZWZlcmVuY2UoZmxvdy0mZ3Q7c2ZfYWN0cyk7CiAJCXJjdV9hc3NpZ25fcG9pbnRlcihmbG93LSZndDtzZl9hY3RzLCBhY3RzKTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMjA6Mjg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQxNAoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDE2MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE9wZW4gdlN3aXRjaCBGbG93IENyZWF0aW9uIExvZ2ljKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQmIzM5O3MgYmVlbiBhcHBsaWVkIHRvIGBuZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguY2AuIFRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgdGhlIGBvdnNfZmxvd19jbWRfbmV3YCBmdW5jdGlvbiwgd2hpY2gsIGFzIEkgcmVjYWxsLCBoYW5kbGVzIHRoZSBjcmVhdGlvbiBvZiBuZXcgZmxvdyBlbnRyaWVzIGluIHRoZSBPcGVuIHZTd2l0Y2ggZGF0YSBwYXRoLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0JiMzOTtzIGNoYW5nZWQgYW5kIHdoeS4KCkZyb20gd2hhdCBJIGNhbiBzZWUsIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgY2hlY2sgd2l0aGluIGBvdnNfZmxvd19jbWRfbmV3YC4gU3BlY2lmaWNhbGx5LCBpdCBhcHBlYXJzIHRvIGJlIGV2YWx1YXRpbmcgdGhlIGByZXBseWAgcG9pbnRlci4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgYHJlcGx5YCBwcm9iYWJseSByZWZlcnMgdG8gc29tZSBidWZmZXIgb3Igc3RydWN0dXJlIGludGVuZGVkIGZvciByZXR1cm5pbmcgaW5mb3JtYXRpb24gb3IgYW4gYWNrbm93bGVkZ2VtZW50IHJlZ2FyZGluZyB0aGUgZmxvdyBjcmVhdGlvbi4gSXQmIzM5O3MgbG9va2luZyB0byBzZWUgaWYgYHJlcGx5YCBpcyBub3QgTlVMTCwgYW5kIHRoZW4gdGhlcmUmIzM5O3MgYSBzaXplIGNvbXBhcmlzb24uIE15IGd1ZXNzIGlzIHRoYXQgaXQgaXMgY29tcGFyaW5nIHRoZSBzaXplcyBmb3IgYG5ld19mbG93LSZndDtpZGAgYW5kIGBmbG93LSZndDtpZGAgdG8gY29uZmlybSBpZiB0aGVyZSBpcyBzdWZmaWNpZW50IHNwYWNlIGFsbG9jYXRlZCBmb3IgYSBtZXNzYWdlLiBJZiB0aGUgc2l6ZSBvZiB0aGUgbWVzc2FnZSBpcyBzbWFsbGVyIHRoYW4gdGhlIHJlcXVpcmVkIHNwYWNlLCBpdCBsb29rcyBsaWtlIHRoZXkgYXJlIGFsbG9jYXRpbmcgYSBuZXcgYHJlcGx5YCBidWZmZXIsIHVzaW5nIGBvdnNfZmxvd19jbWRfYWxsb2NfaW5mb2AsIGFuZCBmcmVlaW5nIHRoZSBvbGQgb25lLgoKVGhpcyBzb3VuZHMgbGlrZSBhIGZhaXJseSBzdGFuZGFyZCBtZW1vcnkgbWFuYWdlbWVudCBwYXR0ZXJuLCBwcm9iYWJseSBhaW1lZCBhdCBoYW5kbGluZyBwb3RlbnRpYWwgc2l6ZSBtaXNtYXRjaGVzIGR1cmluZyBmbG93IGNyZWF0aW9uLiBJdCBzZWVtcyBsaWtlIHRoZSBjb3JlIGZ1bmN0aW9uIGlzIG1ha2luZyBzdXJlIHRoZXJlJiMzOTtzIGVub3VnaCBzcGFjZSB0byB0cmFuc21pdCB0aGUgZmxvdyBJRCBvciBzb21lIG90aGVyIGNydWNpYWwgaW5mb3JtYXRpb24gYmFjayB0byB0aGUgY2FsbGVyLiBUaGlzIGlzIGFsbCBmdW5jdGlvbmFsIGxvZ2ljIHdpdGhpbiB0aGUgY29yZSBvZiBPVlMuCgpOb3csIEkgcmVhbGx5IG5lZWQgdG8gZGVsdmUgZGVlcGVyIGludG8gdGhlIGNvZGUuIFRpbWUgdG8gZmlyZSB1cCBgZ3JlcHBlcmAgYW5kIGV4YW1pbmUgYG92c19mbG93X2NtZF9uZXdgIGluIGBuZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguY2AgZGlyZWN0bHkuIEkgbmVlZCB0byBjb25maXJtIG15IGFzc3VtcHRpb25zIGFuZCBzZWUgd2hhdCBvdGhlciBkZXRhaWxzIGFyZSBpbnZvbHZlZCBpbiB0aGlzIGNoYW5nZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMDoyODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtvdnNfZmxvd19jbWRfbmV3JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmM9OTc1PXN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqb3ZzX2Zsb3dfY21kX2J1aWxkX2luZm8oY29uc3Qgc3RydWN0IHN3X2Zsb3cgKmZsb3csXG4tLVxubmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmMtOTk3LVxubmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmM6OTk4OnN0YXRpYyBpbnQgb3ZzX2Zsb3dfY21kX25ldyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxubmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmMtOTk5LXtcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYz0xNTYxPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2VubF9zbWFsbF9vcHMgZHBfZmxvd19nZW5sX29wc1tdID0ge1xuLS1cbm5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jLTE1NjQtXHQgIC5mbGFncyA9IEdFTkxfVU5TX0FETUlOX1BFUk0sIC8qIFJlcXVpcmVzIENBUF9ORVRfQURNSU4gcHJpdmlsZWdlLiAqL1xubmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmM6MTU2NTpcdCAgLmRvaXQgPSBvdnNfZmxvd19jbWRfbmV3XG5uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYy0xNTY2LVx0fSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMDoyODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMjYzCgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogODcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCBtZSBicmVhayB0aGlzIGRvd24uCgoqKkFuYWx5emluZyB0aGUgT3BlbiB2U3dpdGNoIEZsb3cgQ29tbWFuZCBIYW5kbGluZyoqCgpBbHJpZ2h0LCBzbyBgb3ZzX2Zsb3dfY21kX25ld2Ag4oCTIHRoYXQmIzM5O3MgdGhlIGZ1bmN0aW9uIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggaGVyZS4gIEl0JiMzOTtzIGRlZmluaXRlbHkgdGllZCB0byBgZHBfZmxvd19nZW5sX29wc2Agc3BlY2lmaWNhbGx5IGZvciB0aGUgYE9WU19GTE9XX0NNRF9ORVdgIGNvbW1hbmQuICBUaGF0IGltbWVkaWF0ZWx5IHRlbGxzIG1lIHRoaXMgaXMgYWxsIGhhcHBlbmluZyBvdmVyIG5ldGxpbmsuIE5vIHN1cnByaXNlcyB0aGVyZS4gIFNvLCB3ZSYjMzk7cmUgdGFsa2luZyBhYm91dCBhIGNvcmUgcGllY2Ugb2YgaG93IG5ldyBmbG93cyBnZXQgaW5qZWN0ZWQgaW50byBPVlMuCgpOb3csIHRoZSBwYXRjaC4uLiBhaCwgaXQgYWRkcyBhIGNoZWNrIGZvciBgcmVwbHlgIGFuZCByZS1hbGxvY2F0ZXMgaXQgaWYgdGhlIHNpemUgaXNuJiMzOTt0IGJpZyBlbm91Z2guICBUaGF0JiMzOTtzIGludGVyZXN0aW5nLiBJdCBsb29rcyBsaWtlIGl0IGFkZHJlc3NlcyBhIHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cgdnVsbmVyYWJpbGl0eSBvciBhdCBsZWFzdCBhIHJlc291cmNlIGFsbG9jYXRpb24gaXNzdWUgd2hlcmUgdGhlIGluaXRpYWwgYWxsb2NhdGlvbiBtaWdodCBiZSBpbnN1ZmZpY2llbnQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgbm90IGp1c3QgYSBjb3NtZXRpYyBvbmUuIFNvIHRoZXJlJiMzOTtzIGEgZ29vZCByZWFzb24gdG8gaW52ZXN0aWdhdGUgdGhpcywgaXQgY2hhbmdlcyBiZWhhdmlvci4KCk9rYXksIG5vdyB0byBmaW5kIHRoZSBjb25maWd1cmF0aW9uLi4ubGV0JiMzOTtzIGdvIGZpbmQgdGhlIHNwZWNpZmljIE9WUyBjb25maWcgd2UgbmVlZC4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDIwOjI4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBPUEVOVlNXSVRDSCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9vcGVudnN3aXRjaC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9vcGVudnN3aXRjaC9LY29uZmlnLTUtXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZzo2OmNvbmZpZyBPUEVOVlNXSVRDSFxubmV0L29wZW52c3dpdGNoL0tjb25maWctNy1cdHRyaXN0YXRlIFwmIzM0O09wZW4gdlN3aXRjaFwmIzM0O1xuLS1cbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnLTQzLVxubmV0L29wZW52c3dpdGNoL0tjb25maWc6NDQ6Y29uZmlnIE9QRU5WU1dJVENIX0dSRVxubmV0L29wZW52c3dpdGNoL0tjb25maWctNDUtXHR0cmlzdGF0ZSBcJiMzNDtPcGVuIHZTd2l0Y2ggR1JFIHR1bm5lbGluZyBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L29wZW52c3dpdGNoL0tjb25maWctNTYtXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZzo1Nzpjb25maWcgT1BFTlZTV0lUQ0hfVlhMQU5cbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnLTU4LVx0dHJpc3RhdGUgXCYjMzQ7T3BlbiB2U3dpdGNoIFZYTEFOIHR1bm5lbGluZyBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L29wZW52c3dpdGNoL0tjb25maWctNjgtXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZzo2OTpjb25maWcgT1BFTlZTV0lUQ0hfR0VORVZFXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZy03MC1cdHRyaXN0YXRlIFwmIzM0O09wZW4gdlN3aXRjaCBHZW5ldmUgdHVubmVsaW5nIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMDoyODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzODU4CgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogMzkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGZyb20gbXkgcGVyc3BlY3RpdmUgYXMgc29tZW9uZSBkZWVwbHkgZmFtaWxpYXIgd2l0aCB0aGlzIGtpbmQgb2Ygc3lzdGVtOgoKKipBbmFseXppbmcgdGhlIEZsb3cgQ3JlYXRpb24gRnVuY3Rpb24gaW4gYW4gT3BlbiB2U3dpdGNoIENvbnRleHQqKgoKQWxyaWdodCwgdGhlIGNvbmZpZ3VyYXRpb24gaW4gcXVlc3Rpb24gaXMgZGVmaW5pdGVseSBgT1BFTlZTV0lUQ0hgLiBUaGF0IGltbWVkaWF0ZWx5IG5hcnJvd3MgdGhlIHNjb3BlIGFuZCBicmluZ3MgdG8gbWluZCBhIHdob2xlIHVuaXZlcnNlIG9mIGNvbnNpZGVyYXRpb25zIHJlZ2FyZGluZyBmbG93IHRhYmxlcywgZGF0YXBhdGggaW50ZXJhY3Rpb25zLCBhbmQgb2YgY291cnNlLCBwZXJmb3JtYW5jZSBpbXBsaWNhdGlvbnMuIFRoZSBjb3JlIGZ1bmN0aW9uIHRvIGV4YW1pbmUgaGVyZSBpcyBgb3ZzX2Zsb3dfY21kX25ld2AuIFRoaXMgaXMgd2hlcmUgdGhlIG1hZ2ljIChvciB0aGUgcHJvYmxlbXMhKSBhcmUgY3JlYXRlZCDigJMgd2hlcmUgd2UmIzM5O3JlIGNyYWZ0aW5nIG5ldyBmbG93IGVudHJpZXMsIGxpa2VseSB0cmlnZ2VyZWQgYnkgc29tZSBjb250cm9sIHBsYW5lIGludGVyYWN0aW9uLCBvciBwZXJoYXBzIGV2ZW4gYnkgc29tZSBkYXRhcGxhbmUgbGVhcm5pbmcgbWVjaGFuaXNtLgoKQmVmb3JlIEkgZGl2ZSB0b28gZGVlcCBpbnRvIHRoZSBtZWNoYW5pY3Mgb2YgYG92c19mbG93X2NtZF9uZXdgIGl0c2VsZiwgSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGhhdmVuJiMzOTt0IG1pc3NlZCBzb21ldGhpbmcgZnVuZGFtZW50YWwuIEkgbmVlZCB0byBxdWlja2x5IHNjYW4gdGhlIHN1cnJvdW5kaW5nIGNvbmZpZ3VyYXRpb24uICpBcmUgdGhlcmUgYW55IG90aGVyIHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zKiB0aGF0IGFwcGx5IGluIHRoaXMgc3BlY2lmaWMgc2l0dWF0aW9uPyBBcmUgdGhlcmUgYW55IHJlbGF0ZWQgdG8gZmxvdyBhZ2luZywgY2FjaGluZywgaGFyZHdhcmUgb2ZmbG9hZCwgb3IgcGVyaGFwcyB0aGUgaW5ncmVzcyBwaXBlbGluZSBjb25maWd1cmF0aW9uPyBJdOKAmXMgY3J1Y2lhbCB0byB1bmRlcnN0YW5kIHRoZSBvdmVyYWxsIGNvbnRleHQgYmVmb3JlIGdldHRpbmcgdG9vIGJvZ2dlZCBkb3duIGluIHRoZSBzcGVjaWZpY3Mgb2YgdGhpcyBmdW5jdGlvbi4gSSBoYXZlIHRvIHRoaW5rIGFib3V0IGRlcGVuZGVuY2llcywgZXh0ZXJuYWwgdmFyaWFibGVzLCBhbmQgc2lkZS1lZmZlY3RzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDIwOjI5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RlcGVuZHMgb24mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZz02PWNvbmZpZyBPUEVOVlNXSVRDSFxubmV0L29wZW52c3dpdGNoL0tjb25maWctNy1cdHRyaXN0YXRlIFwmIzM0O09wZW4gdlN3aXRjaFwmIzM0O1xubmV0L29wZW52c3dpdGNoL0tjb25maWc6ODpcdGRlcGVuZHMgb24gSU5FVFxubmV0L29wZW52c3dpdGNoL0tjb25maWc6OTpcdGRlcGVuZHMgb24gIU5GX0NPTk5UUkFDSyB8fCBcXFxubmV0L29wZW52c3dpdGNoL0tjb25maWctMTAtXHRcdCAgIChORl9DT05OVFJBQ0sgXHUwMDI2XHUwMDI2ICgoIU5GX0RFRlJBR19JUFY2IHx8IE5GX0RFRlJBR19JUFY2KSBcdTAwMjZcdTAwMjYgXFxcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZy0xMi1cdFx0XHRcdCAgICAgKCFORVRGSUxURVJfQ09OTkNPVU5UIHx8IE5FVEZJTFRFUl9DT05OQ09VTlQpKSlcbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnOjEzOlx0ZGVwZW5kcyBvbiBQU0FNUExFIHx8ICFQU0FNUExFXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZy0xNC1cdHNlbGVjdCBNUExTXG4tLVxubmV0L29wZW52c3dpdGNoL0tjb25maWc9NDQ9Y29uZmlnIE9QRU5WU1dJVENIX0dSRVxubmV0L29wZW52c3dpdGNoL0tjb25maWctNDUtXHR0cmlzdGF0ZSBcJiMzNDtPcGVuIHZTd2l0Y2ggR1JFIHR1bm5lbGluZyBzdXBwb3J0XCYjMzQ7XG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZzo0NjpcdGRlcGVuZHMgb24gT1BFTlZTV0lUQ0hcbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnOjQ3Olx0ZGVwZW5kcyBvbiBORVRfSVBHUkVcbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnLTQ4LVx0ZGVmYXVsdCBPUEVOVlNXSVRDSFxuLS1cbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnPTU3PWNvbmZpZyBPUEVOVlNXSVRDSF9WWExBTlxubmV0L29wZW52c3dpdGNoL0tjb25maWctNTgtXHR0cmlzdGF0ZSBcJiMzNDtPcGVuIHZTd2l0Y2ggVlhMQU4gdHVubmVsaW5nIHN1cHBvcnRcJiMzNDtcbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnOjU5Olx0ZGVwZW5kcyBvbiBPUEVOVlNXSVRDSFxubmV0L29wZW52c3dpdGNoL0tjb25maWc6NjA6XHRkZXBlbmRzIG9uIFZYTEFOXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZy02MS1cdGRlZmF1bHQgT1BFTlZTV0lUQ0hcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZz02OT1jb25maWcgT1BFTlZTV0lUQ0hfR0VORVZFXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZy03MC1cdHRyaXN0YXRlIFwmIzM0O09wZW4gdlN3aXRjaCBHZW5ldmUgdHVubmVsaW5nIHN1cHBvcnRcJiMzNDtcbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnOjcxOlx0ZGVwZW5kcyBvbiBPUEVOVlNXSVRDSFxubmV0L29wZW52c3dpdGNoL0tjb25maWc6NzI6XHRkZXBlbmRzIG9uIEdFTkVWRVxubmV0L29wZW52c3dpdGNoL0tjb25maWctNzMtXHRkZWZhdWx0IE9QRU5WU1dJVENIXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMjA6Mjk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDcwNQoJCQkJCQkJb3V0cHV0OiAxMDEKCQkJCQkJCXRob3VnaHRzOiA2MzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIE9wZW4gdlN3aXRjaCBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQsIGZpcnN0IHRoaW5ncyBmaXJzdCwgT3BlbiB2U3dpdGNoIHJlbGllcyBvbiBJTkVULCBnb3QgaXQuIEkmIzM5O2xsIG1ha2Ugc3VyZSB0byBpbmNsdWRlIGBPUEVOVlNXSVRDSGAgaW4gbXkgYEVuYWJsZUNvbmZpZ3NgIHNpbmNlIGl0JiMzOTtzIGZvdW5kYXRpb25hbC4KClRoZSBjb3JlIG9mIHRoZSBjaGFuZ2UgYXBwZWFycyB0byBiZSBpbiB0aGUgYG92c19mbG93X2NtZF9uZXdgIGZ1bmN0aW9uLiBMZXQgbWUgZG91YmxlLWNoZWNrIC0geWVwLCBpdCYjMzk7cyBtb2RpZmllZC4gTm93LCBJIHJlbWVtYmVyIHRoZSBwcm9tcHQmIzM5O3MgcHJlZmVyZW5jZTogYXZvaWQgc3RhdGljLCBpbmxpbmVkIGhlbHBlciBmdW5jdGlvbnMgaWYgcG9zc2libGUsIGFuZCBwcmVmZXIgdGhlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzLiBPa2F5LCBpcyBgb3ZzX2Zsb3dfY21kX25ld2Agc3RhdGljPyBZZXMsIGl0JiMzOTtzIGRlY2xhcmVkIGBzdGF0aWMgaW50IG92c19mbG93X2NtZF9uZXcoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylgLgoKTGV0JiMzOTtzIHNlZSBpZiBpdCYjMzk7cyB1c2VkIGFzIGEgZnVuY3Rpb24gcG9pbnRlciBhbnl3aGVyZS4gQWgsIHllcywgaW4gYGRwX2Zsb3dfZ2VubF9vcHNgIGl0JiMzOTtzIGFzc2lnbmVkIHRvIGAuZG9pdCA9IG92c19mbG93X2NtZF9uZXdgLiBUaGF0IG1lYW5zIGl0cyBhZGRyZXNzIGlzIHRha2VuLCBzbyB0aGUgY29tcGlsZXIgKmhhcyogdG8ga2VlcCBhIHN0YW5kYWxvbmUgdmVyc2lvbjsgaXQgY2FuJiMzOTt0IGJlICpmdWxseSogaW5saW5lZC4gSSBjb3VsZCBpbmNsdWRlIGVpdGhlciB0aGUgbmV0bGluayBlbnRyeSBwb2ludCBvciBqdXN0IGBvdnNfZmxvd19jbWRfbmV3YCBpbiBteSBhbmFseXNpcy4gSXQmIzM5O3MgdGhlIGRpcmVjdCBoYW5kbGVyIGZvciBgT1ZTX0ZMT1dfQ01EX05FV2AsIHNvIEkmIzM5O2xsIGZvY3VzIG9uIHRoYXQuIEkmIzM5O3ZlIGNvbmZpcm1lZCB0aGF0IGBvdnNfZmxvd19jbWRfbmV3YCAqaXMqIHRoZSBrZXkgZnVuY3Rpb24uCgpOb3csIGxldCYjMzk7cyBkcmlsbCBkb3duIGludG8gdGhlIHBhdGNoIGl0c2VsZi4KCmBgYGMKCQlpZiAodW5saWtlbHkocmVwbHkgJmFtcDsmYW1wOwoJCQkgICAgIG92c19mbG93X2NtZF9tc2dfc2l6ZShhY3RzLCAmYW1wO25ld19mbG93LSZndDtpZCwKCQkJCQkJICAgdWZpZF9mbGFncykgJmx0OwoJCQkgICAgIG92c19mbG93X2NtZF9tc2dfc2l6ZShhY3RzLCAmYW1wO2Zsb3ctJmd0O2lkLAoJCQkJCQkgICB1ZmlkX2ZsYWdzKSkpIHsKCQkJc3RydWN0IHNrX2J1ZmYgKm5ld19yZXBseTsKCgkJCW5ld19yZXBseSA9IG92c19mbG93X2NtZF9hbGxvY19pbmZvKGFjdHMsICZhbXA7Zmxvdy0mZ3Q7aWQsCgkJCQkJCQkgICAgaW5mbywgZmFsc2UsCgkJCQkJCQkgICAgdWZpZF9mbGFncyk7CgkJCWlmIChJU19FUlIobmV3X3JlcGx5KSkgewoJCQkJZXJyb3IgPSBQVFJfRVJSKG5ld19yZXBseSk7CgkJCQlnb3RvIGVycl91bmxvY2tfb3ZzOwoJCQl9CgkJCWtmcmVlX3NrYihyZXBseSk7CgkJCXJlcGx5ID0gbmV3X3JlcGx5OwoJCX0KYGBgCgpPa2F5LCB0aGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UuIEl0IHNlZW1zIHRvIGFkZHJlc3MgYSBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93IG9yLCBtb3JlIGxpa2VseSwgYSByZWFsbG9jYXRpb24gcHJvYmxlbS4gVGhlIGNvZGUgcmVhbGxvY2F0ZXMgdGhlIHJlcGx5IGBza2JgIGlmIHRoZSB1cGRhdGVkIGZsb3cgSUQgcmVxdWlyZXMgYSAqbGFyZ2VyKiBtZXNzYWdlIHNpemUgZHVyaW5nIGEgZmxvdyB1cGRhdGUuIFRoaXMgaXMgZGVmaW5pdGVseSB3b3J0aCBmdXp6aW5nOyBpdCYjMzk7cyByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIGNvZGUuCgoqKkluIHN1bW1hcnk6KiogVGhpcyBwYXRjaCBtb2RpZmllcyB0aGUgT3BlbiB2U3dpdGNoIG5ldGxpbmsgaGFuZGxlciAoYG92c19mbG93X2NtZF9uZXdgKSBmb3IgY3JlYXRpbmcvdXBkYXRpbmcgZmxvd3MgdG8gY29ycmVjdGx5IHJlYWxsb2NhdGUgdGhlIHJlcGx5IGBza2JgIGlmIHRoZSBmbG93IElEIHNpemUgaW5jcmVhc2VzLCB3aGljaCBhdm9pZHMgYSBwb3RlbnRpYWwgaXNzdWUuCgpNeSBmb2N1cyBzeW1ib2wgaXMgYG92c19mbG93X2NtZF9uZXdgLCBhbmQgdGhlIGBFbmFibGVDb25maWdzYCBpbmNsdWRlIGBPUEVOVlNXSVRDSGAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDIwOjI5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtPUEVOVlNXSVRDSCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O292c19mbG93X2NtZF9uZXcmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE9wZW4gdlN3aXRjaCBuZXRsaW5rIGhhbmRsZXIgZm9yIGNyZWF0aW5nL3VwZGF0aW5nIGZsb3dzIChvdnNfZmxvd19jbWRfbmV3KSB0byByZWFsbG9jYXRlIHRoZSByZXBseSBza2IgaWYgdGhlIHVwZGF0ZWQgZmxvdyBJRCByZXF1aXJlcyBhIGxhcmdlciBtZXNzYWdlIHNpemUuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O09QRU5WU1dJVENIJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7b3ZzX2Zsb3dfY21kX25ldyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgT3BlbiB2U3dpdGNoIG5ldGxpbmsgaGFuZGxlciBmb3IgY3JlYXRpbmcvdXBkYXRpbmcgZmxvd3MgKG92c19mbG93X2NtZF9uZXcpIHRvIHJlYWxsb2NhdGUgdGhlIHJlcGx5IHNrYiBpZiB0aGUgdXBkYXRlZCBmbG93IElEIHJlcXVpcmVzIGEgbGFyZ2VyIG1lc3NhZ2Ugc2l6ZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgY29kZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDIwOjI4OjQ3Ljc4MjY4MjE5WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjM1MDUxMjM2MDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiT1BFTlZTV0lUQ0hcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJvdnNfZmxvd19jbWRfbmV3XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE9wZW4gdlN3aXRjaCBuZXRsaW5rIGhhbmRsZXIgZm9yIGNyZWF0aW5nL3VwZGF0aW5nIGZsb3dzIChvdnNfZmxvd19jbWRfbmV3KSB0byByZWFsbG9jYXRlIHRoZSByZXBseSBza2IgaWYgdGhlIHVwZGF0ZWQgZmxvdyBJRCByZXF1aXJlcyBhIGxhcmdlciBtZXNzYWdlIHNpemUuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDIwOjI4OjQ3Ljc4MjY5ODc3WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0OTQ2ODgzMzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBmOWUyMGYzNzE5NzE5NzUzOTQ2ZWQxMTk1N2MwN2QyODg0ZDZiOTRlXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUaHUgSnVsIDMwIDIwOjI4OjQ2IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jIGIvbmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmNcXG5pbmRleCBlYWYzMzJiMTU2ZDczLi4zMDA3ZDc1YjQyMTQ1IDEwMDY0NFxcbi0tLSBhL25ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jXFxuKysrIGIvbmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmNcXG5AQCAtMTExMyw5ICsxMTEzLDggQEAgc3RhdGljIGludCBvdnNfZmxvd19jbWRfbmV3KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuIFxcdFxcdFxcdGVycm9yID0gLUVFWElTVDtcXG4gXFx0XFx0XFx0Z290byBlcnJfdW5sb2NrX292cztcXG4gXFx0XFx0fVxcbi1cXHRcXHQvKiBUaGUgZmxvdyBpZGVudGlmaWVyIGhhcyB0byBiZSB0aGUgc2FtZSBmb3IgZmxvdyB1cGRhdGVzLlxcbi1cXHRcXHQgKiBMb29rIGZvciBhbnkgb3ZlcmxhcHBpbmcgZmxvdy5cXG4tXFx0XFx0ICovXFxuK1xcbitcXHRcXHQvKiBMb29rIGZvciBhbnkgb3ZlcmxhcHBpbmcgZmxvdy4gKi9cXG4gXFx0XFx0aWYgKHVubGlrZWx5KCFvdnNfZmxvd19jbXAoZmxvdywgXFx1MDAyNm1hdGNoKSkpIHtcXG4gXFx0XFx0XFx0aWYgKG92c19pZGVudGlmaWVyX2lzX2tleShcXHUwMDI2Zmxvdy1cXHUwMDNlaWQpKVxcbiBcXHRcXHRcXHRcXHRmbG93ID0gb3ZzX2Zsb3dfdGJsX2xvb2t1cF9leGFjdChcXHUwMDI2ZHAtXFx1MDAzZXRhYmxlLFxcbkBAIC0xMTI3LDYgKzExMjYsMjUgQEAgc3RhdGljIGludCBvdnNfZmxvd19jbWRfbmV3KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuIFxcdFxcdFxcdFxcdGdvdG8gZXJyX3VubG9ja19vdnM7XFxuIFxcdFxcdFxcdH1cXG4gXFx0XFx0fVxcbitcXG4rXFx0XFx0aWYgKHVubGlrZWx5KHJlcGx5IFxcdTAwMjZcXHUwMDI2XFxuK1xcdFxcdFxcdCAgICAgb3ZzX2Zsb3dfY21kX21zZ19zaXplKGFjdHMsIFxcdTAwMjZuZXdfZmxvdy1cXHUwMDNlaWQsXFxuK1xcdFxcdFxcdFxcdFxcdFxcdCAgIHVmaWRfZmxhZ3MpIFxcdTAwM2NcXG4rXFx0XFx0XFx0ICAgICBvdnNfZmxvd19jbWRfbXNnX3NpemUoYWN0cywgXFx1MDAyNmZsb3ctXFx1MDAzZWlkLFxcbitcXHRcXHRcXHRcXHRcXHRcXHQgICB1ZmlkX2ZsYWdzKSkpIHtcXG4rXFx0XFx0XFx0c3RydWN0IHNrX2J1ZmYgKm5ld19yZXBseTtcXG4rXFxuK1xcdFxcdFxcdG5ld19yZXBseSA9IG92c19mbG93X2NtZF9hbGxvY19pbmZvKGFjdHMsIFxcdTAwMjZmbG93LVxcdTAwM2VpZCxcXG4rXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgIGluZm8sIGZhbHNlLFxcbitcXHRcXHRcXHRcXHRcXHRcXHRcXHQgICAgdWZpZF9mbGFncyk7XFxuK1xcdFxcdFxcdGlmIChJU19FUlIobmV3X3JlcGx5KSkge1xcbitcXHRcXHRcXHRcXHRlcnJvciA9IFBUUl9FUlIobmV3X3JlcGx5KTtcXG4rXFx0XFx0XFx0XFx0Z290byBlcnJfdW5sb2NrX292cztcXG4rXFx0XFx0XFx0fVxcbitcXHRcXHRcXHRrZnJlZV9za2IocmVwbHkpO1xcbitcXHRcXHRcXHRyZXBseSA9IG5ld19yZXBseTtcXG4rXFx0XFx0fVxcbitcXG4gXFx0XFx0LyogVXBkYXRlIGFjdGlvbnMuICovXFxuIFxcdFxcdG9sZF9hY3RzID0gb3ZzbF9kZXJlZmVyZW5jZShmbG93LVxcdTAwM2VzZl9hY3RzKTtcXG4gXFx0XFx0cmN1X2Fzc2lnbl9wb2ludGVyKGZsb3ctXFx1MDAzZXNmX2FjdHMsIGFjdHMpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQyMDoyODo0OC4yNzgzMzQ3MzNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoyMzAwOTQ1NjY1NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJPUEVOVlNXSVRDSFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm92c19mbG93X2NtZF9uZXdcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgT3BlbiB2U3dpdGNoIG5ldGxpbmsgaGFuZGxlciBmb3IgY3JlYXRpbmcvdXBkYXRpbmcgZmxvd3MgKG92c19mbG93X2NtZF9uZXcpIHRvIHJlYWxsb2NhdGUgdGhlIHJlcGx5IHNrYiBpZiB0aGUgdXBkYXRlZCBmbG93IElEIHJlcXVpcmVzIGEgbGFyZ2VyIG1lc3NhZ2Ugc2l6ZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgY29kZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZjllMjBmMzcxOTcxOTc1Mzk0NmVkMTE5NTdjMDdkMjg4NGQ2Yjk0ZVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDMwIDIwOjI4OjQ2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmMgYi9uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguY1xuaW5kZXggZWFmMzMyYjE1NmQ3My4uMzAwN2Q3NWI0MjE0NSAxMDA2NDRcbi0tLSBhL25ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jXG4rKysgYi9uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguY1xuQEAgLTExMTMsOSArMTExMyw4IEBAIHN0YXRpYyBpbnQgb3ZzX2Zsb3dfY21kX25ldyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuIFx0XHRcdGVycm9yID0gLUVFWElTVDtcbiBcdFx0XHRnb3RvIGVycl91bmxvY2tfb3ZzO1xuIFx0XHR9XG4tXHRcdC8qIFRoZSBmbG93IGlkZW50aWZpZXIgaGFzIHRvIGJlIHRoZSBzYW1lIGZvciBmbG93IHVwZGF0ZXMuXG4tXHRcdCAqIExvb2sgZm9yIGFueSBvdmVybGFwcGluZyBmbG93LlxuLVx0XHQgKi9cbitcbitcdFx0LyogTG9vayBmb3IgYW55IG92ZXJsYXBwaW5nIGZsb3cuICovXG4gXHRcdGlmICh1bmxpa2VseSghb3ZzX2Zsb3dfY21wKGZsb3csIFx1MDAyNm1hdGNoKSkpIHtcbiBcdFx0XHRpZiAob3ZzX2lkZW50aWZpZXJfaXNfa2V5KFx1MDAyNmZsb3ctXHUwMDNlaWQpKVxuIFx0XHRcdFx0ZmxvdyA9IG92c19mbG93X3RibF9sb29rdXBfZXhhY3QoXHUwMDI2ZHAtXHUwMDNldGFibGUsXG5AQCAtMTEyNyw2ICsxMTI2LDI1IEBAIHN0YXRpYyBpbnQgb3ZzX2Zsb3dfY21kX25ldyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuIFx0XHRcdFx0Z290byBlcnJfdW5sb2NrX292cztcbiBcdFx0XHR9XG4gXHRcdH1cbitcbitcdFx0aWYgKHVubGlrZWx5KHJlcGx5IFx1MDAyNlx1MDAyNlxuK1x0XHRcdCAgICAgb3ZzX2Zsb3dfY21kX21zZ19zaXplKGFjdHMsIFx1MDAyNm5ld19mbG93LVx1MDAzZWlkLFxuK1x0XHRcdFx0XHRcdCAgIHVmaWRfZmxhZ3MpIFx1MDAzY1xuK1x0XHRcdCAgICAgb3ZzX2Zsb3dfY21kX21zZ19zaXplKGFjdHMsIFx1MDAyNmZsb3ctXHUwMDNlaWQsXG4rXHRcdFx0XHRcdFx0ICAgdWZpZF9mbGFncykpKSB7XG4rXHRcdFx0c3RydWN0IHNrX2J1ZmYgKm5ld19yZXBseTtcbitcbitcdFx0XHRuZXdfcmVwbHkgPSBvdnNfZmxvd19jbWRfYWxsb2NfaW5mbyhhY3RzLCBcdTAwMjZmbG93LVx1MDAzZWlkLFxuK1x0XHRcdFx0XHRcdFx0ICAgIGluZm8sIGZhbHNlLFxuK1x0XHRcdFx0XHRcdFx0ICAgIHVmaWRfZmxhZ3MpO1xuK1x0XHRcdGlmIChJU19FUlIobmV3X3JlcGx5KSkge1xuK1x0XHRcdFx0ZXJyb3IgPSBQVFJfRVJSKG5ld19yZXBseSk7XG4rXHRcdFx0XHRnb3RvIGVycl91bmxvY2tfb3ZzO1xuK1x0XHRcdH1cbitcdFx0XHRrZnJlZV9za2IocmVwbHkpO1xuK1x0XHRcdHJlcGx5ID0gbmV3X3JlcGx5O1xuK1x0XHR9XG4rXG4gXHRcdC8qIFVwZGF0ZSBhY3Rpb25zLiAqL1xuIFx0XHRvbGRfYWN0cyA9IG92c2xfZGVyZWZlcmVuY2UoZmxvdy1cdTAwM2VzZl9hY3RzKTtcbiBcdFx0cmN1X2Fzc2lnbl9wb2ludGVyKGZsb3ctXHUwMDNlc2ZfYWN0cywgYWN0cyk7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQyMDoyODo0OC4yNzgzMzY5MTNaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MDQyNzE5OTk1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgT3BlbiB2U3dpdGNoIEZsb3cgQ3JlYXRpb24gTG9naWMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQncyBiZWVuIGFwcGxpZWQgdG8gYG5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jYC4gVGhpcyBwYXRjaCBpcyB0b3VjaGluZyB0aGUgYG92c19mbG93X2NtZF9uZXdgIGZ1bmN0aW9uLCB3aGljaCwgYXMgSSByZWNhbGwsIGhhbmRsZXMgdGhlIGNyZWF0aW9uIG9mIG5ldyBmbG93IGVudHJpZXMgaW4gdGhlIE9wZW4gdlN3aXRjaCBkYXRhIHBhdGguIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQncyBjaGFuZ2VkIGFuZCB3aHkuXG5cbkZyb20gd2hhdCBJIGNhbiBzZWUsIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgY2hlY2sgd2l0aGluIGBvdnNfZmxvd19jbWRfbmV3YC4gU3BlY2lmaWNhbGx5LCBpdCBhcHBlYXJzIHRvIGJlIGV2YWx1YXRpbmcgdGhlIGByZXBseWAgcG9pbnRlci4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgYHJlcGx5YCBwcm9iYWJseSByZWZlcnMgdG8gc29tZSBidWZmZXIgb3Igc3RydWN0dXJlIGludGVuZGVkIGZvciByZXR1cm5pbmcgaW5mb3JtYXRpb24gb3IgYW4gYWNrbm93bGVkZ2VtZW50IHJlZ2FyZGluZyB0aGUgZmxvdyBjcmVhdGlvbi4gSXQncyBsb29raW5nIHRvIHNlZSBpZiBgcmVwbHlgIGlzIG5vdCBOVUxMLCBhbmQgdGhlbiB0aGVyZSdzIGEgc2l6ZSBjb21wYXJpc29uLiBNeSBndWVzcyBpcyB0aGF0IGl0IGlzIGNvbXBhcmluZyB0aGUgc2l6ZXMgZm9yIGBuZXdfZmxvdy1cdTAwM2VpZGAgYW5kIGBmbG93LVx1MDAzZWlkYCB0byBjb25maXJtIGlmIHRoZXJlIGlzIHN1ZmZpY2llbnQgc3BhY2UgYWxsb2NhdGVkIGZvciBhIG1lc3NhZ2UuIElmIHRoZSBzaXplIG9mIHRoZSBtZXNzYWdlIGlzIHNtYWxsZXIgdGhhbiB0aGUgcmVxdWlyZWQgc3BhY2UsIGl0IGxvb2tzIGxpa2UgdGhleSBhcmUgYWxsb2NhdGluZyBhIG5ldyBgcmVwbHlgIGJ1ZmZlciwgdXNpbmcgYG92c19mbG93X2NtZF9hbGxvY19pbmZvYCwgYW5kIGZyZWVpbmcgdGhlIG9sZCBvbmUuXG5cblRoaXMgc291bmRzIGxpa2UgYSBmYWlybHkgc3RhbmRhcmQgbWVtb3J5IG1hbmFnZW1lbnQgcGF0dGVybiwgcHJvYmFibHkgYWltZWQgYXQgaGFuZGxpbmcgcG90ZW50aWFsIHNpemUgbWlzbWF0Y2hlcyBkdXJpbmcgZmxvdyBjcmVhdGlvbi4gSXQgc2VlbXMgbGlrZSB0aGUgY29yZSBmdW5jdGlvbiBpcyBtYWtpbmcgc3VyZSB0aGVyZSdzIGVub3VnaCBzcGFjZSB0byB0cmFuc21pdCB0aGUgZmxvdyBJRCBvciBzb21lIG90aGVyIGNydWNpYWwgaW5mb3JtYXRpb24gYmFjayB0byB0aGUgY2FsbGVyLiBUaGlzIGlzIGFsbCBmdW5jdGlvbmFsIGxvZ2ljIHdpdGhpbiB0aGUgY29yZSBvZiBPVlMuXG5cbk5vdywgSSByZWFsbHkgbmVlZCB0byBkZWx2ZSBkZWVwZXIgaW50byB0aGUgY29kZS4gVGltZSB0byBmaXJlIHVwIGBncmVwcGVyYCBhbmQgZXhhbWluZSBgb3ZzX2Zsb3dfY21kX25ld2AgaW4gYG5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jYCBkaXJlY3RseS4gSSBuZWVkIHRvIGNvbmZpcm0gbXkgYXNzdW1wdGlvbnMgYW5kIHNlZSB3aGF0IG90aGVyIGRldGFpbHMgYXJlIGludm9sdmVkIGluIHRoaXMgY2hhbmdlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNDE0LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTYzLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMjA6Mjg6NTMuMzIxMDU5MTY4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjkwODQ5OTMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm92c19mbG93X2NtZF9uZXdcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmM9OTc1PXN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqb3ZzX2Zsb3dfY21kX2J1aWxkX2luZm8oY29uc3Qgc3RydWN0IHN3X2Zsb3cgKmZsb3csXFxuLS1cXG5uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYy05OTctXFxubmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmM6OTk4OnN0YXRpYyBpbnQgb3ZzX2Zsb3dfY21kX25ldyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbm5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jLTk5OS17XFxuLS1cXG5uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYz0xNTYxPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2VubF9zbWFsbF9vcHMgZHBfZmxvd19nZW5sX29wc1tdID0ge1xcbi0tXFxubmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmMtMTU2NC1cXHQgIC5mbGFncyA9IEdFTkxfVU5TX0FETUlOX1BFUk0sIC8qIFJlcXVpcmVzIENBUF9ORVRfQURNSU4gcHJpdmlsZWdlLiAqL1xcbm5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jOjE1NjU6XFx0ICAuZG9pdCA9IG92c19mbG93X2NtZF9uZXdcXG5uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYy0xNTY2LVxcdH0sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDIwOjI4OjUzLjQxMTkxNDI0OFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwMjU2MjUwMzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCBtZSBicmVhayB0aGlzIGRvd24uXG5cbioqQW5hbHl6aW5nIHRoZSBPcGVuIHZTd2l0Y2ggRmxvdyBDb21tYW5kIEhhbmRsaW5nKipcblxuQWxyaWdodCwgc28gYG92c19mbG93X2NtZF9uZXdgIOKAkyB0aGF0J3MgdGhlIGZ1bmN0aW9uIHdlJ3JlIGRlYWxpbmcgd2l0aCBoZXJlLiAgSXQncyBkZWZpbml0ZWx5IHRpZWQgdG8gYGRwX2Zsb3dfZ2VubF9vcHNgIHNwZWNpZmljYWxseSBmb3IgdGhlIGBPVlNfRkxPV19DTURfTkVXYCBjb21tYW5kLiAgVGhhdCBpbW1lZGlhdGVseSB0ZWxscyBtZSB0aGlzIGlzIGFsbCBoYXBwZW5pbmcgb3ZlciBuZXRsaW5rLiBObyBzdXJwcmlzZXMgdGhlcmUuICBTbywgd2UncmUgdGFsa2luZyBhYm91dCBhIGNvcmUgcGllY2Ugb2YgaG93IG5ldyBmbG93cyBnZXQgaW5qZWN0ZWQgaW50byBPVlMuXG5cbk5vdywgdGhlIHBhdGNoLi4uIGFoLCBpdCBhZGRzIGEgY2hlY2sgZm9yIGByZXBseWAgYW5kIHJlLWFsbG9jYXRlcyBpdCBpZiB0aGUgc2l6ZSBpc24ndCBiaWcgZW5vdWdoLiAgVGhhdCdzIGludGVyZXN0aW5nLiBJdCBsb29rcyBsaWtlIGl0IGFkZHJlc3NlcyBhIHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cgdnVsbmVyYWJpbGl0eSBvciBhdCBsZWFzdCBhIHJlc291cmNlIGFsbG9jYXRpb24gaXNzdWUgd2hlcmUgdGhlIGluaXRpYWwgYWxsb2NhdGlvbiBtaWdodCBiZSBpbnN1ZmZpY2llbnQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgbm90IGp1c3QgYSBjb3NtZXRpYyBvbmUuIFNvIHRoZXJlJ3MgYSBnb29kIHJlYXNvbiB0byBpbnZlc3RpZ2F0ZSB0aGlzLCBpdCBjaGFuZ2VzIGJlaGF2aW9yLlxuXG5Pa2F5LCBub3cgdG8gZmluZCB0aGUgY29uZmlndXJhdGlvbi4uLmxldCdzIGdvIGZpbmQgdGhlIHNwZWNpZmljIE9WUyBjb25maWcgd2UgbmVlZC4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjYzLCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMjA6Mjg6NTcuNDM3NTQzMjU1WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg2MTU5NTAxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBPUEVOVlNXSVRDSFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZy01LVxcbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnOjY6Y29uZmlnIE9QRU5WU1dJVENIXFxubmV0L29wZW52c3dpdGNoL0tjb25maWctNy1cXHR0cmlzdGF0ZSBcXFwiT3BlbiB2U3dpdGNoXFxcIlxcbi0tXFxubmV0L29wZW52c3dpdGNoL0tjb25maWctNDMtXFxubmV0L29wZW52c3dpdGNoL0tjb25maWc6NDQ6Y29uZmlnIE9QRU5WU1dJVENIX0dSRVxcbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnLTQ1LVxcdHRyaXN0YXRlIFxcXCJPcGVuIHZTd2l0Y2ggR1JFIHR1bm5lbGluZyBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L29wZW52c3dpdGNoL0tjb25maWctNTYtXFxubmV0L29wZW52c3dpdGNoL0tjb25maWc6NTc6Y29uZmlnIE9QRU5WU1dJVENIX1ZYTEFOXFxubmV0L29wZW52c3dpdGNoL0tjb25maWctNTgtXFx0dHJpc3RhdGUgXFxcIk9wZW4gdlN3aXRjaCBWWExBTiB0dW5uZWxpbmcgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnLTY4LVxcbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnOjY5OmNvbmZpZyBPUEVOVlNXSVRDSF9HRU5FVkVcXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZy03MC1cXHR0cmlzdGF0ZSBcXFwiT3BlbiB2U3dpdGNoIEdlbmV2ZSB0dW5uZWxpbmcgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMjA6Mjg6NTcuNTIzNzA5OTM2WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzMzNjk1MjYwNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBmcm9tIG15IHBlcnNwZWN0aXZlIGFzIHNvbWVvbmUgZGVlcGx5IGZhbWlsaWFyIHdpdGggdGhpcyBraW5kIG9mIHN5c3RlbTpcblxuKipBbmFseXppbmcgdGhlIEZsb3cgQ3JlYXRpb24gRnVuY3Rpb24gaW4gYW4gT3BlbiB2U3dpdGNoIENvbnRleHQqKlxuXG5BbHJpZ2h0LCB0aGUgY29uZmlndXJhdGlvbiBpbiBxdWVzdGlvbiBpcyBkZWZpbml0ZWx5IGBPUEVOVlNXSVRDSGAuIFRoYXQgaW1tZWRpYXRlbHkgbmFycm93cyB0aGUgc2NvcGUgYW5kIGJyaW5ncyB0byBtaW5kIGEgd2hvbGUgdW5pdmVyc2Ugb2YgY29uc2lkZXJhdGlvbnMgcmVnYXJkaW5nIGZsb3cgdGFibGVzLCBkYXRhcGF0aCBpbnRlcmFjdGlvbnMsIGFuZCBvZiBjb3Vyc2UsIHBlcmZvcm1hbmNlIGltcGxpY2F0aW9ucy4gVGhlIGNvcmUgZnVuY3Rpb24gdG8gZXhhbWluZSBoZXJlIGlzIGBvdnNfZmxvd19jbWRfbmV3YC4gVGhpcyBpcyB3aGVyZSB0aGUgbWFnaWMgKG9yIHRoZSBwcm9ibGVtcyEpIGFyZSBjcmVhdGVkIOKAkyB3aGVyZSB3ZSdyZSBjcmFmdGluZyBuZXcgZmxvdyBlbnRyaWVzLCBsaWtlbHkgdHJpZ2dlcmVkIGJ5IHNvbWUgY29udHJvbCBwbGFuZSBpbnRlcmFjdGlvbiwgb3IgcGVyaGFwcyBldmVuIGJ5IHNvbWUgZGF0YXBsYW5lIGxlYXJuaW5nIG1lY2hhbmlzbS5cblxuQmVmb3JlIEkgZGl2ZSB0b28gZGVlcCBpbnRvIHRoZSBtZWNoYW5pY3Mgb2YgYG92c19mbG93X2NtZF9uZXdgIGl0c2VsZiwgSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGhhdmVuJ3QgbWlzc2VkIHNvbWV0aGluZyBmdW5kYW1lbnRhbC4gSSBuZWVkIHRvIHF1aWNrbHkgc2NhbiB0aGUgc3Vycm91bmRpbmcgY29uZmlndXJhdGlvbi4gKkFyZSB0aGVyZSBhbnkgb3RoZXIgc3BlY2lmaWMgY29uZmlndXJhdGlvbnMqIHRoYXQgYXBwbHkgaW4gdGhpcyBzcGVjaWZpYyBzaXR1YXRpb24/IEFyZSB0aGVyZSBhbnkgcmVsYXRlZCB0byBmbG93IGFnaW5nLCBjYWNoaW5nLCBoYXJkd2FyZSBvZmZsb2FkLCBvciBwZXJoYXBzIHRoZSBpbmdyZXNzIHBpcGVsaW5lIGNvbmZpZ3VyYXRpb24/IEl04oCZcyBjcnVjaWFsIHRvIHVuZGVyc3RhbmQgdGhlIG92ZXJhbGwgY29udGV4dCBiZWZvcmUgZ2V0dGluZyB0b28gYm9nZ2VkIGRvd24gaW4gdGhlIHNwZWNpZmljcyBvZiB0aGlzIGZ1bmN0aW9uLiBJIGhhdmUgdG8gdGhpbmsgYWJvdXQgZGVwZW5kZW5jaWVzLCBleHRlcm5hbCB2YXJpYWJsZXMsIGFuZCBzaWRlLWVmZmVjdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4NTgsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQyMDoyOTowMC44NjA2NjY2MzJaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTIyMDgyOTczLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRlcGVuZHMgb25cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L29wZW52c3dpdGNoL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L29wZW52c3dpdGNoL0tjb25maWc9Nj1jb25maWcgT1BFTlZTV0lUQ0hcXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZy03LVxcdHRyaXN0YXRlIFxcXCJPcGVuIHZTd2l0Y2hcXFwiXFxubmV0L29wZW52c3dpdGNoL0tjb25maWc6ODpcXHRkZXBlbmRzIG9uIElORVRcXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZzo5OlxcdGRlcGVuZHMgb24gIU5GX0NPTk5UUkFDSyB8fCBcXFxcXFxubmV0L29wZW52c3dpdGNoL0tjb25maWctMTAtXFx0XFx0ICAgKE5GX0NPTk5UUkFDSyBcXHUwMDI2XFx1MDAyNiAoKCFORl9ERUZSQUdfSVBWNiB8fCBORl9ERUZSQUdfSVBWNikgXFx1MDAyNlxcdTAwMjYgXFxcXFxcbi0tXFxubmV0L29wZW52c3dpdGNoL0tjb25maWctMTItXFx0XFx0XFx0XFx0ICAgICAoIU5FVEZJTFRFUl9DT05OQ09VTlQgfHwgTkVURklMVEVSX0NPTk5DT1VOVCkpKVxcbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnOjEzOlxcdGRlcGVuZHMgb24gUFNBTVBMRSB8fCAhUFNBTVBMRVxcbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnLTE0LVxcdHNlbGVjdCBNUExTXFxuLS1cXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZz00ND1jb25maWcgT1BFTlZTV0lUQ0hfR1JFXFxubmV0L29wZW52c3dpdGNoL0tjb25maWctNDUtXFx0dHJpc3RhdGUgXFxcIk9wZW4gdlN3aXRjaCBHUkUgdHVubmVsaW5nIHN1cHBvcnRcXFwiXFxubmV0L29wZW52c3dpdGNoL0tjb25maWc6NDY6XFx0ZGVwZW5kcyBvbiBPUEVOVlNXSVRDSFxcbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnOjQ3OlxcdGRlcGVuZHMgb24gTkVUX0lQR1JFXFxubmV0L29wZW52c3dpdGNoL0tjb25maWctNDgtXFx0ZGVmYXVsdCBPUEVOVlNXSVRDSFxcbi0tXFxubmV0L29wZW52c3dpdGNoL0tjb25maWc9NTc9Y29uZmlnIE9QRU5WU1dJVENIX1ZYTEFOXFxubmV0L29wZW52c3dpdGNoL0tjb25maWctNTgtXFx0dHJpc3RhdGUgXFxcIk9wZW4gdlN3aXRjaCBWWExBTiB0dW5uZWxpbmcgc3VwcG9ydFxcXCJcXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZzo1OTpcXHRkZXBlbmRzIG9uIE9QRU5WU1dJVENIXFxubmV0L29wZW52c3dpdGNoL0tjb25maWc6NjA6XFx0ZGVwZW5kcyBvbiBWWExBTlxcbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnLTYxLVxcdGRlZmF1bHQgT1BFTlZTV0lUQ0hcXG4tLVxcbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnPTY5PWNvbmZpZyBPUEVOVlNXSVRDSF9HRU5FVkVcXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZy03MC1cXHR0cmlzdGF0ZSBcXFwiT3BlbiB2U3dpdGNoIEdlbmV2ZSB0dW5uZWxpbmcgc3VwcG9ydFxcXCJcXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZzo3MTpcXHRkZXBlbmRzIG9uIE9QRU5WU1dJVENIXFxubmV0L29wZW52c3dpdGNoL0tjb25maWc6NzI6XFx0ZGVwZW5kcyBvbiBHRU5FVkVcXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZy03My1cXHRkZWZhdWx0IE9QRU5WU1dJVENIXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDIwOjI5OjAwLjk4Mjc1NTA2NVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwMTEyODA5Nzg1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBPcGVuIHZTd2l0Y2ggUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCwgZmlyc3QgdGhpbmdzIGZpcnN0LCBPcGVuIHZTd2l0Y2ggcmVsaWVzIG9uIElORVQsIGdvdCBpdC4gSSdsbCBtYWtlIHN1cmUgdG8gaW5jbHVkZSBgT1BFTlZTV0lUQ0hgIGluIG15IGBFbmFibGVDb25maWdzYCBzaW5jZSBpdCdzIGZvdW5kYXRpb25hbC5cblxuVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBhcHBlYXJzIHRvIGJlIGluIHRoZSBgb3ZzX2Zsb3dfY21kX25ld2AgZnVuY3Rpb24uIExldCBtZSBkb3VibGUtY2hlY2sgLSB5ZXAsIGl0J3MgbW9kaWZpZWQuIE5vdywgSSByZW1lbWJlciB0aGUgcHJvbXB0J3MgcHJlZmVyZW5jZTogYXZvaWQgc3RhdGljLCBpbmxpbmVkIGhlbHBlciBmdW5jdGlvbnMgaWYgcG9zc2libGUsIGFuZCBwcmVmZXIgdGhlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzLiBPa2F5LCBpcyBgb3ZzX2Zsb3dfY21kX25ld2Agc3RhdGljPyBZZXMsIGl0J3MgZGVjbGFyZWQgYHN0YXRpYyBpbnQgb3ZzX2Zsb3dfY21kX25ldyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKWAuXG5cbkxldCdzIHNlZSBpZiBpdCdzIHVzZWQgYXMgYSBmdW5jdGlvbiBwb2ludGVyIGFueXdoZXJlLiBBaCwgeWVzLCBpbiBgZHBfZmxvd19nZW5sX29wc2AgaXQncyBhc3NpZ25lZCB0byBgLmRvaXQgPSBvdnNfZmxvd19jbWRfbmV3YC4gVGhhdCBtZWFucyBpdHMgYWRkcmVzcyBpcyB0YWtlbiwgc28gdGhlIGNvbXBpbGVyICpoYXMqIHRvIGtlZXAgYSBzdGFuZGFsb25lIHZlcnNpb247IGl0IGNhbid0IGJlICpmdWxseSogaW5saW5lZC4gSSBjb3VsZCBpbmNsdWRlIGVpdGhlciB0aGUgbmV0bGluayBlbnRyeSBwb2ludCBvciBqdXN0IGBvdnNfZmxvd19jbWRfbmV3YCBpbiBteSBhbmFseXNpcy4gSXQncyB0aGUgZGlyZWN0IGhhbmRsZXIgZm9yIGBPVlNfRkxPV19DTURfTkVXYCwgc28gSSdsbCBmb2N1cyBvbiB0aGF0LiBJJ3ZlIGNvbmZpcm1lZCB0aGF0IGBvdnNfZmxvd19jbWRfbmV3YCAqaXMqIHRoZSBrZXkgZnVuY3Rpb24uXG5cbk5vdywgbGV0J3MgZHJpbGwgZG93biBpbnRvIHRoZSBwYXRjaCBpdHNlbGYuXG5cbmBgYGNcblx0XHRpZiAodW5saWtlbHkocmVwbHkgXHUwMDI2XHUwMDI2XG5cdFx0XHQgICAgIG92c19mbG93X2NtZF9tc2dfc2l6ZShhY3RzLCBcdTAwMjZuZXdfZmxvdy1cdTAwM2VpZCxcblx0XHRcdFx0XHRcdCAgIHVmaWRfZmxhZ3MpIFx1MDAzY1xuXHRcdFx0ICAgICBvdnNfZmxvd19jbWRfbXNnX3NpemUoYWN0cywgXHUwMDI2Zmxvdy1cdTAwM2VpZCxcblx0XHRcdFx0XHRcdCAgIHVmaWRfZmxhZ3MpKSkge1xuXHRcdFx0c3RydWN0IHNrX2J1ZmYgKm5ld19yZXBseTtcblxuXHRcdFx0bmV3X3JlcGx5ID0gb3ZzX2Zsb3dfY21kX2FsbG9jX2luZm8oYWN0cywgXHUwMDI2Zmxvdy1cdTAwM2VpZCxcblx0XHRcdFx0XHRcdFx0ICAgIGluZm8sIGZhbHNlLFxuXHRcdFx0XHRcdFx0XHQgICAgdWZpZF9mbGFncyk7XG5cdFx0XHRpZiAoSVNfRVJSKG5ld19yZXBseSkpIHtcblx0XHRcdFx0ZXJyb3IgPSBQVFJfRVJSKG5ld19yZXBseSk7XG5cdFx0XHRcdGdvdG8gZXJyX3VubG9ja19vdnM7XG5cdFx0XHR9XG5cdFx0XHRrZnJlZV9za2IocmVwbHkpO1xuXHRcdFx0cmVwbHkgPSBuZXdfcmVwbHk7XG5cdFx0fVxuYGBgXG5cbk9rYXksIHRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZS4gSXQgc2VlbXMgdG8gYWRkcmVzcyBhIHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cgb3IsIG1vcmUgbGlrZWx5LCBhIHJlYWxsb2NhdGlvbiBwcm9ibGVtLiBUaGUgY29kZSByZWFsbG9jYXRlcyB0aGUgcmVwbHkgYHNrYmAgaWYgdGhlIHVwZGF0ZWQgZmxvdyBJRCByZXF1aXJlcyBhICpsYXJnZXIqIG1lc3NhZ2Ugc2l6ZSBkdXJpbmcgYSBmbG93IHVwZGF0ZS4gVGhpcyBpcyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmc7IGl0J3MgcmVhY2hhYmxlIGNvcmUgbmV0d29ya2luZyBjb2RlLlxuXG4qKkluIHN1bW1hcnk6KiogVGhpcyBwYXRjaCBtb2RpZmllcyB0aGUgT3BlbiB2U3dpdGNoIG5ldGxpbmsgaGFuZGxlciAoYG92c19mbG93X2NtZF9uZXdgKSBmb3IgY3JlYXRpbmcvdXBkYXRpbmcgZmxvd3MgdG8gY29ycmVjdGx5IHJlYWxsb2NhdGUgdGhlIHJlcGx5IGBza2JgIGlmIHRoZSBmbG93IElEIHNpemUgaW5jcmVhc2VzLCB3aGljaCBhdm9pZHMgYSBwb3RlbnRpYWwgaXNzdWUuXG5cbk15IGZvY3VzIHN5bWJvbCBpcyBgb3ZzX2Zsb3dfY21kX25ld2AsIGFuZCB0aGUgYEVuYWJsZUNvbmZpZ3NgIGluY2x1ZGUgYE9QRU5WU1dJVENIYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDcwNSwiT3V0cHV0VG9rZW5zIjoxMDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MzQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMjA6Mjk6MTEuMDk1NTg0NTlaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTIyMDA3MjgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk9QRU5WU1dJVENIXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwib3ZzX2Zsb3dfY21kX25ld1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBPcGVuIHZTd2l0Y2ggbmV0bGluayBoYW5kbGVyIGZvciBjcmVhdGluZy91cGRhdGluZyBmbG93cyAob3ZzX2Zsb3dfY21kX25ldykgdG8gcmVhbGxvY2F0ZSB0aGUgcmVwbHkgc2tiIGlmIHRoZSB1cGRhdGVkIGZsb3cgSUQgcmVxdWlyZXMgYSBsYXJnZXIgbWVzc2FnZSBzaXplLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgbmV0d29ya2luZyBjb2RlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk9QRU5WU1dJVENIXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwib3ZzX2Zsb3dfY21kX25ld1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBPcGVuIHZTd2l0Y2ggbmV0bGluayBoYW5kbGVyIGZvciBjcmVhdGluZy91cGRhdGluZyBmbG93cyAob3ZzX2Zsb3dfY21kX25ldykgdG8gcmVhbGxvY2F0ZSB0aGUgcmVwbHkgc2tiIGlmIHRoZSB1cGRhdGVkIGZsb3cgSUQgcmVxdWlyZXMgYSBsYXJnZXIgbWVzc2FnZSBzaXplLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgbmV0d29ya2luZyBjb2RlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflow6bxqf[1] Phase: Succeeded StartedAt: 2026-07-30 20:29:23 +0000 UTC FinishedAt: 2026-07-30 20:29:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bxqf[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-30 20:29:23 +0000 UTC FinishedAt: 2026-07-30 20:29:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bxqf[2] Phase: Succeeded StartedAt: 2026-07-30 20:29:23 +0000 UTC FinishedAt: 2026-07-31 00:26:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bxqf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-30 20:29:23 +0000 UTC FinishedAt: 2026-07-31 00:26:36 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow6bxqf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-30 20:29:23 +0000 UTC FinishedAt: 2026-07-30 20:29:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bxqf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-30 20:29:23 +0000 UTC FinishedAt: 2026-07-30 20:29:46 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow6bxqf/series-workflow6bxqf-convert-artifact-1329060998/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6bxqf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-30 20:29:56 +0000 UTC FinishedAt: 2026-07-30 20:53:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bxqf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-30 20:29:56 +0000 UTC FinishedAt: 2026-07-30 20:53:36 +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:*d0cbfadf-fafa-46ec-844a-52877abbb49c,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-workflow6bxqf/series-workflow6bxqf-convert-artifact-1329060998/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": "d03dc797-6a6c-4eff-84e0-f4ecb5980a61", "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-workflow6bxqf/series-workflow6bxqf-build-action-2407079964/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6bxqf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-30 20:29:56 +0000 UTC FinishedAt: 2026-07-30 20:53:25 +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:*d0cbfadf-fafa-46ec-844a-52877abbb49c,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-workflow6bxqf/series-workflow6bxqf-convert-artifact-1329060998/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": "d03dc797-6a6c-4eff-84e0-f4ecb5980a61", "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-workflow6bxqf/series-workflow6bxqf-build-action-2407079964/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6bxqf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-30 20:53:36 +0000 UTC FinishedAt: 2026-07-30 20:53:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bxqf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-30 20:53:36 +0000 UTC FinishedAt: 2026-07-30 20:53:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bxqf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-30 20:53:36 +0000 UTC FinishedAt: 2026-07-30 20:54:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bxqf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-30 20:53:36 +0000 UTC FinishedAt: 2026-07-30 20:53:57 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow6bxqf/series-workflow6bxqf-convert-artifact-1487087577/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6bxqf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-30 20:54:07 +0000 UTC FinishedAt: 2026-07-30 20:56:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bxqf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-30 20:54:08 +0000 UTC FinishedAt: 2026-07-30 20:56:00 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*d03dc797-6a6c-4eff-84e0-f4ecb5980a61,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-workflow6bxqf/series-workflow6bxqf-build-action-2407079964/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-workflow6bxqf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-30 20:56:10 +0000 UTC FinishedAt: 2026-07-30 20:56:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bxqf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-30 20:56:10 +0000 UTC FinishedAt: 2026-07-30 20:56:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bxqf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-30 20:56:10 +0000 UTC FinishedAt: 2026-07-30 21:21:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bxqf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-30 20:56:10 +0000 UTC FinishedAt: 2026-07-30 21:21:07 +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:*d0cbfadf-fafa-46ec-844a-52877abbb49c,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-workflow6bxqf/series-workflow6bxqf-convert-artifact-1487087577/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": "5a992223-f6fd-44f5-a529-fcbbe0e1ff5c", "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-workflow6bxqf/series-workflow6bxqf-build-action-3849997365/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6bxqf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-30 20:56:10 +0000 UTC FinishedAt: 2026-07-30 21:20:57 +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:*d0cbfadf-fafa-46ec-844a-52877abbb49c,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-workflow6bxqf/series-workflow6bxqf-convert-artifact-1487087577/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": "5a992223-f6fd-44f5-a529-fcbbe0e1ff5c", "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-workflow6bxqf/series-workflow6bxqf-build-action-3849997365/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6bxqf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-30 21:21:07 +0000 UTC FinishedAt: 2026-07-30 21:21:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bxqf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-30 21:21:07 +0000 UTC FinishedAt: 2026-07-30 21:21:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bxqf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-30 21:21:07 +0000 UTC FinishedAt: 2026-07-30 21:23:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bxqf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-30 21:21:07 +0000 UTC FinishedAt: 2026-07-30 21:23:00 +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:*5a992223-f6fd-44f5-a529-fcbbe0e1ff5c,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-workflow6bxqf/series-workflow6bxqf-build-action-3849997365/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-workflow6bxqf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-30 21:23:09 +0000 UTC FinishedAt: 2026-07-31 00:26:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bxqf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-30 21:23:09 +0000 UTC FinishedAt: 2026-07-31 00:26:36 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:track,Default:nil,Value:*KASAN,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:base-build-id,Default:nil,Value:*d03dc797-6a6c-4eff-84e0-f4ecb5980a61,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*5a992223-f6fd-44f5-a529-fcbbe0e1ff5c,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-workflow6bxqf/series-workflow6bxqf-build-action-2407079964/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-workflow6bxqf/series-workflow6bxqf-build-action-3849997365/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow6bxqf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-30 21:23:09 +0000 UTC FinishedAt: 2026-07-30 21:23:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bxqf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-30 21:23:09 +0000 UTC FinishedAt: 2026-07-30 21:23:14 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow6bxqf/series-workflow6bxqf-convert-artifact-160475342/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6bxqf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-30 21:23:09 +0000 UTC FinishedAt: 2026-07-30 21:23:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bxqf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-30 21:23:09 +0000 UTC FinishedAt: 2026-07-30 21:23:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bxqf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-30 21:23:09 +0000 UTC FinishedAt: 2026-07-30 21:23:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bxqf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-30 21:23:19 +0000 UTC FinishedAt: 2026-07-31 00:26:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bxqf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_cmd_new"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"11028ab62899e4191e074ee364c712b77823a9c4","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"7f416d8b-a677-4d68-affb-7b7091d8cccb","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-30 21:23:19 +0000 UTC FinishedAt: 2026-07-31 00:26:26 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*d03dc797-6a6c-4eff-84e0-f4ecb5980a61,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*5a992223-f6fd-44f5-a529-fcbbe0e1ff5c,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-workflow6bxqf/series-workflow6bxqf-build-action-2407079964/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-workflow6bxqf/series-workflow6bxqf-build-action-3849997365/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-workflow6bxqf/series-workflow6bxqf-convert-artifact-160475342/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,}