Name: series-workflow562d9 Phase: Succeeded StartedAt: 2026-08-04 10:02:47 +0000 UTC FinishedAt: 2026-08-04 12:10:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflow562d9[0] Phase: Succeeded StartedAt: 2026-08-04 10:02:47 +0000 UTC FinishedAt: 2026-08-04 10:48:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflow562d9[0].run-triage Phase: Succeeded StartedAt: 2026-08-04 10:02:47 +0000 UTC FinishedAt: 2026-08-04 10:48:59 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "2a33516f9ef59ad11844d4fc152f889449b5daf3", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NF_FLOW_TABLE", "NETFILTER_INGRESS", "NF_CONNTRACK", "NF_TABLES" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "2a33516f9ef59ad11844d4fc152f889449b5daf3", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NF_FLOW_TABLE", "NETFILTER_INGRESS", "NF_CONNTRACK", "NF_TABLES" ], "series_id": "0817b732-4766-41d4-bd2e-283214dd287b" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "nf_flow_offload_ip_hook", "nf_flow_offload_ipv6_hook" ], "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+CgkJCTx0ZD4yMDI2LzA4LzA0IDEwOjQ4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GX0ZMT1dfVEFCTEUmIzM0OywKICAgICYjMzQ7TkVURklMVEVSX0lOR1JFU1MmIzM0OywKICAgICYjMzQ7TkZfQ09OTlRSQUNLJiMzNDssCiAgICAmIzM0O05GX1RBQkxFUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O25mX2Zsb3dfb2ZmbG9hZF9pcF9ob29rJiMzNDssCiAgICAmIzM0O25mX2Zsb3dfb2ZmbG9hZF9pcHY2X2hvb2smIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgSVAvSVB2NiBmbG93IHRhYmxlIG9mZmxvYWQgaG9va3MgdG8gZHJvcCB0aGUgc2tiIGRzdCBiZWZvcmUgc2V0dGluZyBhIG5ldyBvbmUgd2l0aG91dCByZWZjb3VudC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHBhY2tldCBwcm9jZXNzaW5nIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIG5ldGZpbHRlciBmbG93IHRhYmxlIHJ1bGVzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDEwOjQ4PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgODYwOWZhZmY2NTE2N2Q2YjI4YzkyZWE3MjljZTEwZmE1ZTUwYmU3NVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgQXVnIDQgMTA6NDg6MDkgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L25ldGZpbHRlci9uZl9mbG93X3RhYmxlX2lwLmMgYi9uZXQvbmV0ZmlsdGVyL25mX2Zsb3dfdGFibGVfaXAuY1xuaW5kZXggMGI3OGRlY2NlOGE5Yi4uYzllMzMyZmFmY2I1YyAxMDA2NDRcbi0tLSBhL25ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvbmV0ZmlsdGVyL25mX2Zsb3dfdGFibGVfaXAuY1xuQEAgLTMxMCw2ICYjNDM7MzEwLDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBuZl9mbG93X3htaXRfeGZybShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0XHRcdFx0ICAgICAgc3RydWN0IGRzdF9lbnRyeSAqZHN0KVxuIHtcbiBcdHNrYl9vcnBoYW4oc2tiKTtcbiYjNDM7XHRza2JfZHN0X2Ryb3Aoc2tiKTtcbiBcdHNrYl9kc3Rfc2V0X25vcmVmKHNrYiwgZHN0KTtcbiBcdGRzdF9vdXRwdXQoc3RhdGUtXHUwMDNlbmV0LCBzdGF0ZS1cdTAwM2Vzaywgc2tiKTtcbiBcdHJldHVybiBORl9TVE9MRU47XG5AQCAtODYxLDYgJiM0Mzs4NjIsNyBAQCBuZl9mbG93X29mZmxvYWRfaXBfaG9vayh2b2lkICpwcml2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0XHRcdHJldHVybiBORl9EUk9QO1xuIFx0XHR9XG4gXHRcdHhtaXQuZGVzdCA9IG5laWdoLVx1MDAzZWhhO1xuJiM0MztcdFx0c2tiX2RzdF9kcm9wKHNrYik7XG4gXHRcdHNrYl9kc3Rfc2V0X25vcmVmKHNrYiwgXHUwMDI2cnQtXHUwMDNlZHN0KTtcbiBcdFx0YnJlYWs7XG4gXHRjYXNlIEZMT1dfT0ZGTE9BRF9YTUlUX0RJUkVDVDpcbkBAIC0xMTc4LDYgJiM0MzsxMTgwLDcgQEAgbmZfZmxvd19vZmZsb2FkX2lwdjZfaG9vayh2b2lkICpwcml2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0XHRcdHJldHVybiBORl9EUk9QO1xuIFx0XHR9XG4gXHRcdHhtaXQuZGVzdCA9IG5laWdoLVx1MDAzZWhhO1xuJiM0MztcdFx0c2tiX2RzdF9kcm9wKHNrYik7XG4gXHRcdHNrYl9kc3Rfc2V0X25vcmVmKHNrYiwgXHUwMDI2cnQtXHUwMDNlZHN0KTtcbiBcdFx0YnJlYWs7XG4gXHRjYXNlIEZMT1dfT0ZGTE9BRF9YTUlUX0RJUkVDVDpcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAxMDo0ODwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkZfRkxPV19UQUJMRSYjMzQ7LAogICAgJiMzNDtORVRGSUxURVJfSU5HUkVTUyYjMzQ7LAogICAgJiMzNDtORl9DT05OVFJBQ0smIzM0OywKICAgICYjMzQ7TkZfVEFCTEVTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bmZfZmxvd19vZmZsb2FkX2lwX2hvb2smIzM0OywKICAgICYjMzQ7bmZfZmxvd19vZmZsb2FkX2lwdjZfaG9vayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBJUC9JUHY2IGZsb3cgdGFibGUgb2ZmbG9hZCBob29rcyB0byBkcm9wIHRoZSBza2IgZHN0IGJlZm9yZSBzZXR0aW5nIGEgbmV3IG9uZSB3aXRob3V0IHJlZmNvdW50LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcGFja2V0IHByb2Nlc3NpbmcgdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgbmV0ZmlsdGVyIGZsb3cgdGFibGUgcnVsZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA4NjA5ZmFmZjY1MTY3ZDZiMjhjOTJlYTcyOWNlMTBmYTVlNTBiZTc1CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBBdWcgNCAxMDo0ODowOSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jIGIvbmV0L25ldGZpbHRlci9uZl9mbG93X3RhYmxlX2lwLmMKaW5kZXggMGI3OGRlY2NlOGE5Yi4uYzllMzMyZmFmY2I1YyAxMDA2NDQKLS0tIGEvbmV0L25ldGZpbHRlci9uZl9mbG93X3RhYmxlX2lwLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L25ldGZpbHRlci9uZl9mbG93X3RhYmxlX2lwLmMKQEAgLTMxMCw2ICYjNDM7MzEwLDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBuZl9mbG93X3htaXRfeGZybShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJCSAgICAgIHN0cnVjdCBkc3RfZW50cnkgKmRzdCkKIHsKIAlza2Jfb3JwaGFuKHNrYik7CiYjNDM7CXNrYl9kc3RfZHJvcChza2IpOwogCXNrYl9kc3Rfc2V0X25vcmVmKHNrYiwgZHN0KTsKIAlkc3Rfb3V0cHV0KHN0YXRlLSZndDtuZXQsIHN0YXRlLSZndDtzaywgc2tiKTsKIAlyZXR1cm4gTkZfU1RPTEVOOwpAQCAtODYxLDYgJiM0Mzs4NjIsNyBAQCBuZl9mbG93X29mZmxvYWRfaXBfaG9vayh2b2lkICpwcml2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJcmV0dXJuIE5GX0RST1A7CiAJCX0KIAkJeG1pdC5kZXN0ID0gbmVpZ2gtJmd0O2hhOwomIzQzOwkJc2tiX2RzdF9kcm9wKHNrYik7CiAJCXNrYl9kc3Rfc2V0X25vcmVmKHNrYiwgJmFtcDtydC0mZ3Q7ZHN0KTsKIAkJYnJlYWs7CiAJY2FzZSBGTE9XX09GRkxPQURfWE1JVF9ESVJFQ1Q6CkBAIC0xMTc4LDYgJiM0MzsxMTgwLDcgQEAgbmZfZmxvd19vZmZsb2FkX2lwdjZfaG9vayh2b2lkICpwcml2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJcmV0dXJuIE5GX0RST1A7CiAJCX0KIAkJeG1pdC5kZXN0ID0gbmVpZ2gtJmd0O2hhOwomIzQzOwkJc2tiX2RzdF9kcm9wKHNrYik7CiAJCXNrYl9kc3Rfc2V0X25vcmVmKHNrYiwgJmFtcDtydC0mZ3Q7ZHN0KTsKIAkJYnJlYWs7CiAJY2FzZSBGTE9XX09GRkxPQURfWE1JVF9ESVJFQ1Q6CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDEwOjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyOTgKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAxMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBORl9GTE9XX1RBQkxFX0lQIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQmIzM5O3MgYmVlbiBhcHBsaWVkIHRvIGBuZXQvbmV0ZmlsdGVyL25mX2Zsb3dfdGFibGVfaXAuY2AuIFRoZSBjb3JlIG9mIGl0IHNlZW1zIHRvIGludm9sdmUgYWRkaW5nIGBza2JfZHN0X2Ryb3Aoc2tiKTtgICpiZWZvcmUqIHRoZSBgc2tiX2RzdF9zZXRfbm9yZWYoc2tiLCAuLi4pYCBjYWxscy4gVGhpcyBhZGRpdGlvbiBhcHBlYXJzIGluIGEgZmV3IGtleSBsb2NhdGlvbnM6IGBuZl9mbG93X3htaXRfeGZybWAsIGBuZl9mbG93X29mZmxvYWRfaXBfaG9va2AsIGFuZCBgbmZfZmxvd19vZmZsb2FkX2lwdjZfaG9va2AuIEl0JiMzOTtzIGEgc3VidGxlIGNoYW5nZSwgYnV0IEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbnMuCgpHaXZlbiBteSB1bmRlcnN0YW5kaW5nIG9mIGhvdyBOZXRmaWx0ZXIgYW5kIGNvbm5lY3Rpb24gdHJhY2tpbmcgaW50ZXJhY3Qgd2l0aCB0aGUgZGF0YXBhdGgsIEkgbmVlZCB0byB1bmRlcnN0YW5kICp3aHkqIHRoaXMgY2hhbmdlIHdhcyBkZWVtZWQgbmVjZXNzYXJ5LiBNeSBpbW1lZGlhdGUgaW5zdGluY3QgaXMgdG8gY2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhc3NvY2lhdGVkIHdpdGggYG5mX2Zsb3dfdGFibGVfaXAuY2AuIFVuZGVyc3RhbmRpbmcgd2hpY2ggY29uZmlndXJhdGlvbnMgYXJlIGVuYWJsZWQgd2lsbCBwcm92aWRlIHZpdGFsIGNvbnRleHQuIEFyZSB3ZSBzZWVpbmcgdGhpcyBhZGRlZCB0byBhZGRyZXNzIGEgc3BlY2lmaWMgaXNzdWUsIG9wdGltaXplIGEgcGFydGljdWxhciB1c2UgY2FzZSwgb3IgY29ycmVjdCBhIHJlc291cmNlIGxlYWs/IEtub3dpbmcgdGhlIGJ1aWxkIGVudmlyb25tZW50IGlzIGNyaXRpY2FsIGhlcmUsIGFzIHRoaXMgd2lsbCBoZWxwIG1lIGRldGVybWluZSB0aGUgY2lyY3Vtc3RhbmNlcyBmb3Igd2hpY2ggdGhlIHBhdGNoIHdhcyBjcmVhdGVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDEwOjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O25mX2Zsb3dfdGFibGVfaXAubyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9uZXRmaWx0ZXIvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9uZXRmaWx0ZXIvTWFrZWZpbGU9MTQyPW9iai0kKENPTkZJR19ORl9GTE9XX1RBQkxFKVx0JiM0Mzs9IG5mX2Zsb3dfdGFibGUub1xubmV0L25ldGZpbHRlci9NYWtlZmlsZToxNDM6bmZfZmxvd190YWJsZS1vYmpzXHRcdDo9IG5mX2Zsb3dfdGFibGVfY29yZS5vIG5mX2Zsb3dfdGFibGVfaXAubyBcXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZS0xNDQtXHRcdFx0XHQgICBuZl9mbG93X3RhYmxlX3BhdGgubyBcXFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDEwOjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI4MTIKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiA5NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgYENPTkZJR19ORl9GTE9XX1RBQkxFYCBDaGFuZ2VzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kIHRoZSBjb25maWcgaXMgYENPTkZJR19ORl9GTE9XX1RBQkxFYC4gTXkgaW5pdGlhbCBpbnN0aW5jdCBpcyB0byBkaWcgaW50byB0aGUgcG90ZW50aWFsbHkgdnVsbmVyYWJsZSBhcmVhcy4gSSB3YW50IHRvIHRha2UgYSBsb29rIGF0IHRoZSBmdW5jdGlvbnMgYG5mX2Zsb3dfeG1pdF94ZnJtYCwgYG5mX2Zsb3dfb2ZmbG9hZF9pcF9ob29rYCwgYW5kIGBuZl9mbG93X29mZmxvYWRfaXB2Nl9ob29rYC4gVGhlIGRlc2NyaXB0aW9uIHNvdW5kcyBsaWtlIHdlJiMzOTtyZSBkcm9wcGluZyB0aGUgZGVzdGluYXRpb24gYmVmb3JlIHBvdGVudGlhbGx5IHNldHRpbmcgYSBuZXcgb25lLiBUaGF0IHN0cmlrZXMgbWUgYXMgYSBzaWduaWZpY2FudCBmdW5jdGlvbmFsIHNoaWZ0LiBUaGF0IGRlZmluaXRlbHkgd2FycmFudHMgZnV6emluZzsgaXQgZmVlbHMgbGlrZSBhIHRleHRib29rIGNhc2UgZm9yIHBvdGVudGlhbCBvZmYtYnktb25lIGVycm9ycyBvciBzb21lIG90aGVyIGtpbmQgb2YgdnVsbmVyYWJpbGl0eSBpbiBob3cgdGhlIGRlc3RpbmF0aW9uIGlzIGhhbmRsZWQuIEkgbmVlZCB0byBzcGVuZCB0aW1lIG9uIHRoaXMgYW5kIHRlc3QgaXQgb3V0LgoKTm93LCBiZWZvcmUgSSBnZXQgdG9vIGRlZXAgaW50byBmdXp6aW5nLCBJIHNob3VsZCBwcm9iYWJseSB0YWtlIGEgc3RlcCBiYWNrIGFuZCBzZWUgaWYgdGhlcmUgYXJlIGFueSBvdGhlciBjb25maWd1cmF0aW9uIG9wdGlvbnMgdGhhdCBhcmUgcmVxdWlyZWQgb3IgdGhhdCBtaWdodCBpbnRlcmFjdCB3aXRoIGBORl9GTE9XX1RBQkxFYC4gSSBuZWVkIHRvIGVuc3VyZSBJIGhhdmUgYSBjb21wbGV0ZSBwaWN0dXJlIG9mIHRoZSBkZXBlbmRlbmNpZXMgYmVmb3JlIEkgc3RhcnQgdGhlIGFuYWx5c2lzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDEwOjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBORl9GTE9XX1RBQkxFJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9uZXRmaWx0ZXIvS2NvbmZpZz03MDE9ZW5kaWYgIyBORl9UQUJMRVNcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy03MDItXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6NzAzOmNvbmZpZyBORl9GTE9XX1RBQkxFX0lORVRcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy03MDQtXHR0cmlzdGF0ZSBcJiMzNDtOZXRmaWx0ZXIgZmxvdyB0YWJsZSBtaXhlZCBJUHY0L0lQdjYgbW9kdWxlXCYjMzQ7XG4tLVxubmV0L25ldGZpbHRlci9LY29uZmlnLTcxMC1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzo3MTE6Y29uZmlnIE5GX0ZMT1dfVEFCTEVcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy03MTItXHR0cmlzdGF0ZSBcJiMzNDtOZXRmaWx0ZXIgZmxvdyB0YWJsZSBtb2R1bGVcJiMzNDtcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNzIwLVxubmV0L25ldGZpbHRlci9LY29uZmlnOjcyMTpjb25maWcgTkZfRkxPV19UQUJMRV9QUk9DRlNcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy03MjItXHRib29sIFwmIzM0O1N1cHBseSBmbG93IHRhYmxlIHN0YXRpc3RpY3MgaW4gcHJvY2ZzXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMTA6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzM4OAoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDEzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzIG9uIHRoaXM6CgoqKkFuYWx5emluZyBgTkZfRkxPV19UQUJMRWAgRGVwZW5kZW5jaWVzKioKCkFscmlnaHQsIHRoZSBvYmplY3RpdmUgaXMgY2xlYXI6IEkgbmVlZCB0byBtYXAgb3V0IHRoZSBkZXBlbmRlbmNpZXMgb2YgYE5GX0ZMT1dfVEFCTEVgLiBUaGlzIGlzIGEgY3J1Y2lhbCBmaXJzdCBzdGVwIGluIHVuZGVyc3RhbmRpbmcgaXRzIHJvbGUgYW5kIHBvdGVudGlhbCBpbXBhY3Qgb24gb3RoZXIgcGFydHMgb2YgdGhlIHN5c3RlbS4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCBtb2R1bGVzLCBmdW5jdGlvbnMsIG9yIGRhdGEgc3RydWN0dXJlcyAqcmVseSogb24gdGhpcy4gSXMgaXQgYSBjb3JlIGNvbXBvbmVudCB3aXRoIGEgd2lkZSByZWFjaCwgb3IgaXMgaXQgbW9yZSBpc29sYXRlZD8gQXJlIHRoZXJlIGFueSBvYnZpb3VzIGNhbmRpZGF0ZXMgdGhhdCBpbW1lZGlhdGVseSBjb21lIHRvIG1pbmQ/IEkgc2hvdWxkIGNvbnNpZGVyIGJvdGggZGlyZWN0IGRlcGVuZGVuY2llcyAoZXhwbGljaXRseSB1c2luZyB0aGUgZGF0YSBzdHJ1Y3R1cmUpIGFuZCBwZXJoYXBzIGluZGlyZWN0IG9uZXMgKGZ1bmN0aW9ucyBjYWxsaW5nIGZ1bmN0aW9ucyB0aGF0IHRvdWNoIHRoZSB0YWJsZSkuIEkgbmVlZCB0byB0aGluayBhYm91dCBob3cgdG8gYXBwcm9hY2ggdGhpcyBzeXN0ZW1hdGljYWxseS4gU291cmNlIGNvZGUgbmF2aWdhdGlvbiB0b29scyBhcmUgbXkgZnJpZW5kcyBoZXJlLiBJIGNvdWxkIGJlZ2luIHdpdGggYSBncmVwIHRvIGZpbmQgYWxsIHRoZSByZWZlcmVuY2VzIHRvIHRoZSByZWxldmFudCBzeW1ib2wuIFRoZW4gSSBjYW4gc3RhcnQgdG8gZXhwbG9yZSB0aG9zZSBsb2NhdGlvbnMuIEkmIzM5O20gZ29pbmcgdG8gbmVlZCB0byBsb29rIGludG8gYW55IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0b28uIEFyZSB0aGVyZSBrZXJuZWwgY29uZmlnIGZsYWdzIGFzc29jaWF0ZWQgd2l0aCBpdD8gSG93IGRvZXMgaXQgaW50ZXJhY3Qgd2l0aCBvdGhlciBuZXR3b3JraW5nIHN1YnN5c3RlbXM/IFRoaXMgY291bGQgYmUgYSBjb21wbGV4IHVuZGVydGFraW5nLCBidXQgYSBtZXRob2RpY2FsIGFwcHJvYWNoIHdpbGwgYmUgdGhlIG1vc3QgZWZmZWN0aXZlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDEwOjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBORl9GTE9XX1RBQkxFJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci9LY29uZmlnPTcwMT1lbmRpZiAjIE5GX1RBQkxFU1xubmV0L25ldGZpbHRlci9LY29uZmlnLTcwMi1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzo3MDM6Y29uZmlnIE5GX0ZMT1dfVEFCTEVfSU5FVFxubmV0L25ldGZpbHRlci9LY29uZmlnLTcwNC1cdHRyaXN0YXRlIFwmIzM0O05ldGZpbHRlciBmbG93IHRhYmxlIG1peGVkIElQdjQvSVB2NiBtb2R1bGVcJiMzNDtcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNzEwLVxubmV0L25ldGZpbHRlci9LY29uZmlnOjcxMTpjb25maWcgTkZfRkxPV19UQUJMRVxubmV0L25ldGZpbHRlci9LY29uZmlnLTcxMi1cdHRyaXN0YXRlIFwmIzM0O05ldGZpbHRlciBmbG93IHRhYmxlIG1vZHVsZVwmIzM0O1xuLS1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy03MjAtXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6NzIxOmNvbmZpZyBORl9GTE9XX1RBQkxFX1BST0NGU1xubmV0L25ldGZpbHRlci9LY29uZmlnLTcyMi1cdGJvb2wgXCYjMzQ7U3VwcGx5IGZsb3cgdGFibGUgc3RhdGlzdGljcyBpbiBwcm9jZnNcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAxMDo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzODg5CgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogMjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzLCBzdW1tYXJpemVkIGFzIHlvdSByZXF1ZXN0ZWQ6CgoqKk5hdmlnYXRpbmcgdGhlIE5ldGZpbHRlciBMYW5kc2NhcGUqKgoKT2theSwgc28gSSBuZWVkIHRvIGRpdmUgaW50byB0aGUgTmV0ZmlsdGVyIGNvbmZpZ3VyYXRpb24uIE15IGd1dCB0ZWxscyBtZSBzb21ldGhpbmcgaW50ZXJlc3RpbmcgbWlnaHQgYmUgZ29pbmcgb24gYXJvdW5kIHRoZSBhcmVhIG9mIHRoZSBydWxlcyB0aGVtc2VsdmVzLCBvciBwZXJoYXBzIHNvbWUgdW5kZXJseWluZyBpbmZyYXN0cnVjdHVyZS4gTGV0JiMzOTtzIHN0YXJ0IHdpdGggYG5ldC9uZXRmaWx0ZXIvS2NvbmZpZ2AsIHRoYXQmIzM5O3MgdXN1YWxseSB0aGUgYmVzdCBwbGFjZSB0byBiZWdpbiB0aGUgZGVlcCBkaXZlLiBJJiMzOTttIGdvaW5nIHRvIHNjYW4gYXJvdW5kIGxpbmUgNzExLiBUaGF0JiMzOTtzIGEgcmVhc29uYWJsZSBzcG90IHRvIGJlZ2luOyBJJiMzOTtsbCBzZWUgaWYgdGhlIGNvbmZpZ3VyYXRpb24gc3RydWN0dXJlIGFuZCByZWxhdGVkIG9wdGlvbnMgaW4gdGhhdCB2aWNpbml0eSBhcmUgcmVsZXZhbnQgdG8gd2hhdCBJJiMzOTttIHRoaW5raW5nIGFib3V0LiBJIGV4cGVjdCB0aGlzIEtjb25maWcgZmlsZSB3aWxsIGdpdmUgbWUgZ29vZCBpbnNpZ2h0IGludG8gdGhlIGRlcGVuZGVuY2llcyBhbmQgdGhlIG92ZXJhbGwgYXJjaGl0ZWN0dXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAxMDo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O25ldC9uZXRmaWx0ZXIvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDcwMCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAzMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgNzAwOlx0XG4gNzAxOlx0ZW5kaWYgIyBORl9UQUJMRVNcbiA3MDI6XHRcbiA3MDM6XHRjb25maWcgTkZfRkxPV19UQUJMRV9JTkVUXG4gNzA0Olx0XHR0cmlzdGF0ZSBcJiMzNDtOZXRmaWx0ZXIgZmxvdyB0YWJsZSBtaXhlZCBJUHY0L0lQdjYgbW9kdWxlXCYjMzQ7XG4gNzA1Olx0XHRkZXBlbmRzIG9uIE5GX0ZMT1dfVEFCTEVcbiA3MDY6XHRcdGhlbHBcbiA3MDc6XHRcdCAgVGhpcyBvcHRpb24gYWRkcyB0aGUgZmxvdyB0YWJsZSBtaXhlZCBJUHY0L0lQdjYgc3VwcG9ydC5cbiA3MDg6XHRcbiA3MDk6XHRcdCAgVG8gY29tcGlsZSBpdCBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cbiA3MTA6XHRcbiA3MTE6XHRjb25maWcgTkZfRkxPV19UQUJMRVxuIDcxMjpcdFx0dHJpc3RhdGUgXCYjMzQ7TmV0ZmlsdGVyIGZsb3cgdGFibGUgbW9kdWxlXCYjMzQ7XG4gNzEzOlx0XHRkZXBlbmRzIG9uIE5FVEZJTFRFUl9JTkdSRVNTXG4gNzE0Olx0XHRkZXBlbmRzIG9uIE5GX0NPTk5UUkFDS1xuIDcxNTpcdFx0ZGVwZW5kcyBvbiBORl9UQUJMRVNcbiA3MTY6XHRcdGhlbHBcbiA3MTc6XHRcdCAgVGhpcyBvcHRpb24gYWRkcyB0aGUgZmxvdyB0YWJsZSBjb3JlIGluZnJhc3RydWN0dXJlLlxuIDcxODpcdFxuIDcxOTpcdFx0ICBUbyBjb21waWxlIGl0IGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxuIDcyMDpcdFxuIDcyMTpcdGNvbmZpZyBORl9GTE9XX1RBQkxFX1BST0NGU1xuIDcyMjpcdFx0Ym9vbCBcJiMzNDtTdXBwbHkgZmxvdyB0YWJsZSBzdGF0aXN0aWNzIGluIHByb2Nmc1wmIzM0O1xuIDcyMzpcdFx0ZGVwZW5kcyBvbiBORl9GTE9XX1RBQkxFXG4gNzI0Olx0XHRkZXBlbmRzIG9uIFBST0NfRlNcbiA3MjU6XHRcdGhlbHBcbiA3MjY6XHRcdCAgVGhpcyBvcHRpb24gZW5hYmxlcyBmb3IgdGhlIGZsb3cgdGFibGUgb2ZmbG9hZCBzdGF0aXN0aWNzXG4gNzI3Olx0XHQgIHRvIGJlIHNob3duIGluIHByb2NmcyB1bmRlciBuZXQvbmV0ZmlsdGVyL25mX2Zsb3d0YWJsZS5cbiA3Mjg6XHRcbiA3Mjk6XHRjb25maWcgTkVURklMVEVSX1hUQUJMRVNcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMTA6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDUxNAoJCQkJCQkJb3V0cHV0OiA0NAoJCQkJCQkJdGhvdWdodHM6IDk5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGFuYWx5c2lzIG9mIHRoZSBzaXR1YXRpb246CgoqKlVuZGVyc3RhbmRpbmcgdGhlIE5ldHdvcmsgRmxvdyBPZmZsb2FkIEltcGxlbWVudGF0aW9uKioKCk9rYXksIHNvIHdlJiMzOTtyZSBkaXZpbmcgaW50byB0aGUgY29yZSBvZiBuZXR3b3JrIGZsb3cgb2ZmbG9hZCwgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgTmV0ZmlsdGVyIGZyYW1ld29yay4gVGhlIGtleSBoZXJlIGlzIGBORl9GTE9XX1RBQkxFYCDigJMgdGhhdCYjMzk7cyBvdXIgY2VudHJhbCBjb25maWd1cmF0aW9uIHBvaW50LiBNYWtlcyBzZW5zZTsgaXQmIzM5O3MgdGhlIG1hc3RlciBzd2l0Y2gsIHNvIHRvIHNwZWFrLiBCdXQgd2UgY2FuJiMzOTt0IGZvcmdldCB0aGUgZGVwZW5kZW5jaWVzLiBXZSYjMzk7cmUgb2J2aW91c2x5IGxvb2tpbmcgYXQgYW4gaW5ncmVzcyBwb2ludCwgc28gYE5FVEZJTFRFUl9JTkdSRVNTYCBpcyBpbnZvbHZlZC4gVGhlbiwgdGhlIGNvbm5lY3Rpb24gdHJhY2tpbmcgcGllY2Ugd2l0aCBgTkZfQ09OTlRSQUNLYCBoYXMgdG8gYmUgaW4gdGhlIG1peCwgYW5kIG9mIGNvdXJzZSwgYE5GX1RBQkxFU2AgYmVjYXVzZSBOZXRmaWx0ZXIgYW5kIHRhYmxlcyB0ZW5kIHRvIGdvIGhhbmQtaW4taGFuZCB0aGVzZSBkYXlzLiBUaGV5JiMzOTtyZSBhbGwgbGlrZWx5IGNyaXRpY2FsLgoKTm93LCB0aGUgY29kZSBpdHNlbGYuIFdlIGhhdmUgdGhyZWUgZnVuY3Rpb25zIHRoYXQgc3RhbmQgb3V0IGFzIGhhdmluZyBiZWVuIG1vZGlmaWVkLiBUaGUgZmlyc3Qgb25lIGlzIGBuZl9mbG93X3htaXRfeGZybWAuIEdpdmVuIHRoZSBgeG1pdGAgYW5kIGB4ZnJtYCBlbGVtZW50cyBpbiBpdHMgbmFtZSwgaXQmIzM5O3MgcHJldHR5IGNsZWFyIHRoaXMgaXMgaGFuZGxpbmcgdGhlIGFjdHVhbCB0cmFuc21pc3Npb24gYW5kIHRyYW5zZm9ybWF0aW9uIHJlbGF0ZWQgdG8gWEZSTSwgd2hpY2ggZml0cyBpbnRvIGEgZmxvdyBvZmZsb2FkIGNvbnRleHQuIEl0JiMzOTtzIGEgYHN0YXRpY2AgZnVuY3Rpb24sIHNvIHdlIG5lZWQgdG8gYmUgbWluZGZ1bCBvZiBpdHMgc2NvcGUsIGJ1dCBpdCYjMzk7cyBsaWtlbHkgY3J1Y2lhbCB0byB0aGUgZGF0YSBwYXRoLgoKVGhlIG5leHQgdHdvIGFyZSBgbmZfZmxvd19vZmZsb2FkX2lwX2hvb2tgIGFuZCBgbmZfZmxvd19vZmZsb2FkX2lwdjZfaG9va2AuIFRoZSBuYW1lcyBzdWdnZXN0IHRoZXkgYXJlIGV4cG9zZWQgYW5kIGFyZSBhY3RpbmcgYXMgaG9va3MgaW50byB0aGUgSVAgYW5kIElQdjYgcHJvY2Vzc2luZyBwaXBlbGluZXMuIEFuZCB0aGVzZSBob29rcyBhcmUgYWxzbyB1c2VkIHRvIG9mZmxvYWQgdGhlIGZsb3dzLiBJIG5lZWQgdG8gY29uZmlybSB3aGV0aGVyIHRoZXkgYXJlIGV4cG9ydGVkIHNvIHRoYXQgd2UgY2FuIGZ1bGx5IGFzc2VzcyB3aGF0IG90aGVyIGtlcm5lbCBtb2R1bGVzIGFyZSBhYmxlIHRvIHVzZSB0aGVtLiBJZiB0aGV5IGFyZSwgdGhhdCYjMzk7cyBhIHdpZGVyIGltcGFjdCB0aGFuIGlmIHRoZXkmIzM5O3JlIGludGVybmFsLiBUaGVzZSBhcmUgbGlrZWx5IHRoZSBlbnRyeSBwb2ludHMgd2hlcmUgb2ZmbG9hZCBkZWNpc2lvbnMgYXJlIG1hZGUgYW5kIHBhY2tldHMgYXJlIGRpcmVjdGVkLiBUaGF0IHdpbGwgaGF2ZSB0byBiZSB0aGUgcGxhY2UgdG8gc3RhcnQgd2hlbiBkaWdnaW5nIGludG8gdGhlIGltcGxlbWVudGF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAxMDo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtuZl9mbG93X29mZmxvYWRfaXBfaG9vayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jPTgwNj11bnNpZ25lZCBpbnRcbm5ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jOjgwNzpuZl9mbG93X29mZmxvYWRfaXBfaG9vayh2b2lkICpwcml2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxubmV0L25ldGZpbHRlci9uZl9mbG93X3RhYmxlX2lwLmMtODA4LVx0XHRcdGNvbnN0IHN0cnVjdCBuZl9ob29rX3N0YXRlICpzdGF0ZSlcbi0tXG5uZXQvbmV0ZmlsdGVyL25mX2Zsb3dfdGFibGVfaXAuYy04ODUtfVxubmV0L25ldGZpbHRlci9uZl9mbG93X3RhYmxlX2lwLmM6ODg2OkVYUE9SVF9TWU1CT0xfR1BMKG5mX2Zsb3dfb2ZmbG9hZF9pcF9ob29rKTtcbm5ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jLTg4Ny1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMTA6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTI1MAoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDQ5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipJbnZlc3RpZ2F0aW5nIE5ldHdvcmsgRmxvdyBPZmZsb2FkIEhvb2tzKioKCkFscmlnaHQsIHNvIEkga25vdyBgbmZfZmxvd19vZmZsb2FkX2lwX2hvb2tgIGFuZCBgbmZfZmxvd19vZmZsb2FkX2lwdjZfaG9va2AgYXJlIGRlZmluaXRlbHkgZXhwb3J0ZWQgc3ltYm9scy4gVGhhdCYjMzk7cyBhIHNvbGlkIHN0YXJ0aW5nIHBvaW50LiBOb3csIGxldCYjMzk7cyBkcmlsbCBkb3duIGEgYml0IGFuZCBnZXQgbW9yZSBzcGVjaWZpYy4gTXkgcHJpbWFyeSBpbnRlcmVzdCByaWdodCBub3cgaXMgYG5mX2Zsb3dfb2ZmbG9hZF9pcHY2X2hvb2tgLiBJdCYjMzk7cyB0aW1lIHRvIGRpZyBpbnRvIHRoZSBkZXRhaWxzIG9mIHRoYXQgb25lLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAxMDo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtuZl9mbG93X29mZmxvYWRfaXB2Nl9ob29rJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci9uZl9mbG93X3RhYmxlX2lwLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci9uZl9mbG93X3RhYmxlX2lwLmM9MTEyMz11bnNpZ25lZCBpbnRcbm5ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jOjExMjQ6bmZfZmxvd19vZmZsb2FkX2lwdjZfaG9vayh2b2lkICpwcml2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxubmV0L25ldGZpbHRlci9uZl9mbG93X3RhYmxlX2lwLmMtMTEyNS1cdFx0XHQgIGNvbnN0IHN0cnVjdCBuZl9ob29rX3N0YXRlICpzdGF0ZSlcbi0tXG5uZXQvbmV0ZmlsdGVyL25mX2Zsb3dfdGFibGVfaXAuYy0xMjAzLX1cbm5ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jOjEyMDQ6RVhQT1JUX1NZTUJPTF9HUEwobmZfZmxvd19vZmZsb2FkX2lwdjZfaG9vayk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDEwOjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU2NDIKCQkJCQkJCW91dHB1dDogMTM0CgkJCQkJCQl0aG91Z2h0czogMzM3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTmV0ZmlsdGVyIEZsb3cgVGFibGUgT2ZmbG9hZCBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHksIG15IGZvY3VzIGxhbmRzIG9uIHRoZSBrZXkgZnVuY3Rpb25zOiBgbmZfZmxvd19vZmZsb2FkX2lwX2hvb2tgIGFuZCBgbmZfZmxvd19vZmZsb2FkX2lwdjZfaG9va2AuIFRob3NlIGFyZSB0aGUgZW50cnkgcG9pbnRzLCB0aGUgaG9va3MgdGhhdCBhcmUgYmVpbmcgbW9kaWZpZWQuIFRoYXQmIzM5O3MgdGhlIGNvcmUgb2YgdGhlIGNoYW5nZS4KCk5vdywgbGV0JiMzOTtzIHRoaW5rIGFib3V0IHRoZSBuZWNlc3NhcnkgY29uZmlndXJhdGlvbnMuIEkga25vdyB3ZSYjMzk7bGwgZGVmaW5pdGVseSBuZWVkIGBORl9GTE9XX1RBQkxFYCwgb2J2aW91c2x5LiBUaGVuLCBgTkVURklMVEVSX0lOR1JFU1NgIGlzIGhpZ2hseSBsaWtlbHkgYmVjYXVzZSB0aGlzIGlzIGFib3V0IHBhY2tldCBwcm9jZXNzaW5nIGF0IGluZ3Jlc3MuIGBORl9DT05OVFJBQ0tgIHNlZW1zIGNydWNpYWwgYXMgZmxvdyB0YWJsZXMgb2Z0ZW4gd29yayBoYW5kLWluLWhhbmQgd2l0aCBjb25uZWN0aW9uIHRyYWNraW5nLCBhbmQgb2YgY291cnNlIGBORl9UQUJMRVNgIGJlY2F1c2UgdGhlIGZsb3cgdGFibGUgbWVjaGFuaXNtIGlzIGJ1aWx0IGFyb3VuZCB0aGUgbmV0ZmlsdGVyIGluZnJhc3RydWN0dXJlLgoKQSBxdWljayBjaGVjayDigJMgSSBuZWVkIHRvIGVuc3VyZSB3ZSBkb24mIzM5O3QgbmVlZCAqYm90aCogdGhlIGluZXQgYW5kIHY0L3Y2IHNwZWNpZmljIG9wdGlvbnMgZm9yIGBORl9GTE9XX1RBQkxFYC4gWWVwLCBjb25maXJtZWQuIExvb2tzIGxpa2UgYG5mX2Zsb3dfdGFibGVfaXAuY2AgaXMgY29tcGlsZWQgKmRpcmVjdGx5KiB1bmRlciBgTkZfRkxPV19UQUJMRWAuIFRoZSBNYWtlZmlsZSBvdXRwdXQgY2xlYXJseSBzaG93cyB0aGF0LiBTbywgYE5GX0ZMT1dfVEFCTEVgIGlzIHN1ZmZpY2llbnQuIFRoYXQmIzM5O3MgYSByZWxpZWY7IHNpbXBsZXIgaXMgYmV0dGVyLgoKQWxyaWdodCwgbGV0JiMzOTtzIHN0cnVjdHVyZSB0aGUgaW5mb3JtYXRpb24gY2xlYXJseSBmb3IgdGhlIG5leHQgc3RhZ2UuCgoqICAgYFdvcnRoRnV6emluZ2A6IFRydWUg4oCTIGRlZmluaXRlbHkgd29ydGggZnV6emluZy4gVGhlIGNoYW5nZSBpcyBmdW5jdGlvbmFsLCBtb2RpZnlpbmcgcGFja2V0IHByb2Nlc3NpbmcuCiogICBgRm9jdXNTeW1ib2xzYDogYG5mX2Zsb3dfb2ZmbG9hZF9pcF9ob29rYCwgYG5mX2Zsb3dfb2ZmbG9hZF9pcHY2X2hvb2tgIC0gdGhlc2UgYXJlIHRoZSB0YXJnZXRzLgoqICAgYEVuYWJsZUNvbmZpZ3NgOiBgTkZfRkxPV19UQUJMRWAsIGBORVRGSUxURVJfSU5HUkVTU2AsIGBORl9DT05OVFJBQ0tgLCBgTkZfVEFCTEVTYCAtIHRoZXNlIGFyZSB0aGUgY29uZmlndXJhdGlvbnMgcmVxdWlyZWQgdG8gZW5hYmxlIHRoZSBmZWF0dXJlLgoqICAgYFJlYXNvbmluZ2A6IFRoZSBjaGFuZ2UgZnVuZGFtZW50YWxseSBhbHRlcnMgaG93IHRoZSBza2IgZHN0IGlzIGhhbmRsZWQgd2l0aGluIHRoZSBJUC9JUHY2IGZsb3cgdGFibGUgb2ZmbG9hZCBob29rcywgc3BlY2lmaWNhbGx5IGRyb3BwaW5nIHRoZSBleGlzdGluZyBkc3QgKmJlZm9yZSogc2V0dGluZyBhIG5ldyBvbmUgd2l0aG91dCByZWZjb3VudC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGRpcmVjdGx5IGluIHRoZSBwYWNrZXQgcGF0aCwgYW5kIGFjaGlldmFibGUgdmlhIG5ldGZpbHRlciBmbG93IHRhYmxlIHJ1bGVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAxMDo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkZfRkxPV19UQUJMRSYjMzQ7LAogICAgJiMzNDtORVRGSUxURVJfSU5HUkVTUyYjMzQ7LAogICAgJiMzNDtORl9DT05OVFJBQ0smIzM0OywKICAgICYjMzQ7TkZfVEFCTEVTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bmZfZmxvd19vZmZsb2FkX2lwX2hvb2smIzM0OywKICAgICYjMzQ7bmZfZmxvd19vZmZsb2FkX2lwdjZfaG9vayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBJUC9JUHY2IGZsb3cgdGFibGUgb2ZmbG9hZCBob29rcyB0byBkcm9wIHRoZSBza2IgZHN0IGJlZm9yZSBzZXR0aW5nIGEgbmV3IG9uZSB3aXRob3V0IHJlZmNvdW50LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcGFja2V0IHByb2Nlc3NpbmcgdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgbmV0ZmlsdGVyIGZsb3cgdGFibGUgcnVsZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GX0ZMT1dfVEFCTEUmIzM0OywKICAgICYjMzQ7TkVURklMVEVSX0lOR1JFU1MmIzM0OywKICAgICYjMzQ7TkZfQ09OTlRSQUNLJiMzNDssCiAgICAmIzM0O05GX1RBQkxFUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O25mX2Zsb3dfb2ZmbG9hZF9pcF9ob29rJiMzNDssCiAgICAmIzM0O25mX2Zsb3dfb2ZmbG9hZF9pcHY2X2hvb2smIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgSVAvSVB2NiBmbG93IHRhYmxlIG9mZmxvYWQgaG9va3MgdG8gZHJvcCB0aGUgc2tiIGRzdCBiZWZvcmUgc2V0dGluZyBhIG5ldyBvbmUgd2l0aG91dCByZWZjb3VudC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHBhY2tldCBwcm9jZXNzaW5nIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIG5ldGZpbHRlciBmbG93IHRhYmxlIHJ1bGVzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDRUMTA6NDg6MTEuMDA1NTc3OTE4WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzYwNTczMzIyNzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTkZfRkxPV19UQUJMRVwiLFxuICAgIFwiTkVURklMVEVSX0lOR1JFU1NcIixcbiAgICBcIk5GX0NPTk5UUkFDS1wiLFxuICAgIFwiTkZfVEFCTEVTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibmZfZmxvd19vZmZsb2FkX2lwX2hvb2tcIixcbiAgICBcIm5mX2Zsb3dfb2ZmbG9hZF9pcHY2X2hvb2tcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBJUC9JUHY2IGZsb3cgdGFibGUgb2ZmbG9hZCBob29rcyB0byBkcm9wIHRoZSBza2IgZHN0IGJlZm9yZSBzZXR0aW5nIGEgbmV3IG9uZSB3aXRob3V0IHJlZmNvdW50LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcGFja2V0IHByb2Nlc3NpbmcgdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgbmV0ZmlsdGVyIGZsb3cgdGFibGUgcnVsZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDEwOjQ4OjExLjAwNTU4NDQ1OFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTMyMDMwNDczNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDg2MDlmYWZmNjUxNjdkNmIyOGM5MmVhNzI5Y2UxMGZhNWU1MGJlNzVcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBBdWcgNCAxMDo0ODowOSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL25mX2Zsb3dfdGFibGVfaXAuYyBiL25ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jXFxuaW5kZXggMGI3OGRlY2NlOGE5Yi4uYzllMzMyZmFmY2I1YyAxMDA2NDRcXG4tLS0gYS9uZXQvbmV0ZmlsdGVyL25mX2Zsb3dfdGFibGVfaXAuY1xcbisrKyBiL25ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jXFxuQEAgLTMxMCw2ICszMTAsNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IG5mX2Zsb3dfeG1pdF94ZnJtKHN0cnVjdCBza19idWZmICpza2IsXFxuIFxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBkc3RfZW50cnkgKmRzdClcXG4ge1xcbiBcXHRza2Jfb3JwaGFuKHNrYik7XFxuK1xcdHNrYl9kc3RfZHJvcChza2IpO1xcbiBcXHRza2JfZHN0X3NldF9ub3JlZihza2IsIGRzdCk7XFxuIFxcdGRzdF9vdXRwdXQoc3RhdGUtXFx1MDAzZW5ldCwgc3RhdGUtXFx1MDAzZXNrLCBza2IpO1xcbiBcXHRyZXR1cm4gTkZfU1RPTEVOO1xcbkBAIC04NjEsNiArODYyLDcgQEAgbmZfZmxvd19vZmZsb2FkX2lwX2hvb2sodm9pZCAqcHJpdiwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4gXFx0XFx0XFx0cmV0dXJuIE5GX0RST1A7XFxuIFxcdFxcdH1cXG4gXFx0XFx0eG1pdC5kZXN0ID0gbmVpZ2gtXFx1MDAzZWhhO1xcbitcXHRcXHRza2JfZHN0X2Ryb3Aoc2tiKTtcXG4gXFx0XFx0c2tiX2RzdF9zZXRfbm9yZWYoc2tiLCBcXHUwMDI2cnQtXFx1MDAzZWRzdCk7XFxuIFxcdFxcdGJyZWFrO1xcbiBcXHRjYXNlIEZMT1dfT0ZGTE9BRF9YTUlUX0RJUkVDVDpcXG5AQCAtMTE3OCw2ICsxMTgwLDcgQEAgbmZfZmxvd19vZmZsb2FkX2lwdjZfaG9vayh2b2lkICpwcml2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbiBcXHRcXHRcXHRyZXR1cm4gTkZfRFJPUDtcXG4gXFx0XFx0fVxcbiBcXHRcXHR4bWl0LmRlc3QgPSBuZWlnaC1cXHUwMDNlaGE7XFxuK1xcdFxcdHNrYl9kc3RfZHJvcChza2IpO1xcbiBcXHRcXHRza2JfZHN0X3NldF9ub3JlZihza2IsIFxcdTAwMjZydC1cXHUwMDNlZHN0KTtcXG4gXFx0XFx0YnJlYWs7XFxuIFxcdGNhc2UgRkxPV19PRkZMT0FEX1hNSVRfRElSRUNUOlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQxMDo0ODoxMi4zMjY4MTgyMjNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjozNDczNjA3ODc1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORl9GTE9XX1RBQkxFXCIsXG4gICAgXCJORVRGSUxURVJfSU5HUkVTU1wiLFxuICAgIFwiTkZfQ09OTlRSQUNLXCIsXG4gICAgXCJORl9UQUJMRVNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZl9mbG93X29mZmxvYWRfaXBfaG9va1wiLFxuICAgIFwibmZfZmxvd19vZmZsb2FkX2lwdjZfaG9va1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIElQL0lQdjYgZmxvdyB0YWJsZSBvZmZsb2FkIGhvb2tzIHRvIGRyb3AgdGhlIHNrYiBkc3QgYmVmb3JlIHNldHRpbmcgYSBuZXcgb25lIHdpdGhvdXQgcmVmY291bnQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBwYWNrZXQgcHJvY2Vzc2luZyB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBuZXRmaWx0ZXIgZmxvdyB0YWJsZSBydWxlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgODYwOWZhZmY2NTE2N2Q2YjI4YzkyZWE3MjljZTEwZmE1ZTUwYmU3NVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgQXVnIDQgMTA6NDg6MDkgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL25mX2Zsb3dfdGFibGVfaXAuYyBiL25ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jXG5pbmRleCAwYjc4ZGVjY2U4YTliLi5jOWUzMzJmYWZjYjVjIDEwMDY0NFxuLS0tIGEvbmV0L25ldGZpbHRlci9uZl9mbG93X3RhYmxlX2lwLmNcbisrKyBiL25ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jXG5AQCAtMzEwLDYgKzMxMCw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgbmZfZmxvd194bWl0X3hmcm0oc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBcdFx0XHRcdCAgICAgIHN0cnVjdCBkc3RfZW50cnkgKmRzdClcbiB7XG4gXHRza2Jfb3JwaGFuKHNrYik7XG4rXHRza2JfZHN0X2Ryb3Aoc2tiKTtcbiBcdHNrYl9kc3Rfc2V0X25vcmVmKHNrYiwgZHN0KTtcbiBcdGRzdF9vdXRwdXQoc3RhdGUtXHUwMDNlbmV0LCBzdGF0ZS1cdTAwM2Vzaywgc2tiKTtcbiBcdHJldHVybiBORl9TVE9MRU47XG5AQCAtODYxLDYgKzg2Miw3IEBAIG5mX2Zsb3dfb2ZmbG9hZF9pcF9ob29rKHZvaWQgKnByaXYsIHN0cnVjdCBza19idWZmICpza2IsXG4gXHRcdFx0cmV0dXJuIE5GX0RST1A7XG4gXHRcdH1cbiBcdFx0eG1pdC5kZXN0ID0gbmVpZ2gtXHUwMDNlaGE7XG4rXHRcdHNrYl9kc3RfZHJvcChza2IpO1xuIFx0XHRza2JfZHN0X3NldF9ub3JlZihza2IsIFx1MDAyNnJ0LVx1MDAzZWRzdCk7XG4gXHRcdGJyZWFrO1xuIFx0Y2FzZSBGTE9XX09GRkxPQURfWE1JVF9ESVJFQ1Q6XG5AQCAtMTE3OCw2ICsxMTgwLDcgQEAgbmZfZmxvd19vZmZsb2FkX2lwdjZfaG9vayh2b2lkICpwcml2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0XHRcdHJldHVybiBORl9EUk9QO1xuIFx0XHR9XG4gXHRcdHhtaXQuZGVzdCA9IG5laWdoLVx1MDAzZWhhO1xuK1x0XHRza2JfZHN0X2Ryb3Aoc2tiKTtcbiBcdFx0c2tiX2RzdF9zZXRfbm9yZWYoc2tiLCBcdTAwMjZydC1cdTAwM2Vkc3QpO1xuIFx0XHRicmVhaztcbiBcdGNhc2UgRkxPV19PRkZMT0FEX1hNSVRfRElSRUNUOlxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMTA6NDg6MTIuMzI2ODIwMzc0WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDE2MjU2NTM1MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE5GX0ZMT1dfVEFCTEVfSVAgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQncyBiZWVuIGFwcGxpZWQgdG8gYG5ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jYC4gVGhlIGNvcmUgb2YgaXQgc2VlbXMgdG8gaW52b2x2ZSBhZGRpbmcgYHNrYl9kc3RfZHJvcChza2IpO2AgKmJlZm9yZSogdGhlIGBza2JfZHN0X3NldF9ub3JlZihza2IsIC4uLilgIGNhbGxzLiBUaGlzIGFkZGl0aW9uIGFwcGVhcnMgaW4gYSBmZXcga2V5IGxvY2F0aW9uczogYG5mX2Zsb3dfeG1pdF94ZnJtYCwgYG5mX2Zsb3dfb2ZmbG9hZF9pcF9ob29rYCwgYW5kIGBuZl9mbG93X29mZmxvYWRfaXB2Nl9ob29rYC4gSXQncyBhIHN1YnRsZSBjaGFuZ2UsIGJ1dCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zLlxuXG5HaXZlbiBteSB1bmRlcnN0YW5kaW5nIG9mIGhvdyBOZXRmaWx0ZXIgYW5kIGNvbm5lY3Rpb24gdHJhY2tpbmcgaW50ZXJhY3Qgd2l0aCB0aGUgZGF0YXBhdGgsIEkgbmVlZCB0byB1bmRlcnN0YW5kICp3aHkqIHRoaXMgY2hhbmdlIHdhcyBkZWVtZWQgbmVjZXNzYXJ5LiBNeSBpbW1lZGlhdGUgaW5zdGluY3QgaXMgdG8gY2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhc3NvY2lhdGVkIHdpdGggYG5mX2Zsb3dfdGFibGVfaXAuY2AuIFVuZGVyc3RhbmRpbmcgd2hpY2ggY29uZmlndXJhdGlvbnMgYXJlIGVuYWJsZWQgd2lsbCBwcm92aWRlIHZpdGFsIGNvbnRleHQuIEFyZSB3ZSBzZWVpbmcgdGhpcyBhZGRlZCB0byBhZGRyZXNzIGEgc3BlY2lmaWMgaXNzdWUsIG9wdGltaXplIGEgcGFydGljdWxhciB1c2UgY2FzZSwgb3IgY29ycmVjdCBhIHJlc291cmNlIGxlYWs/IEtub3dpbmcgdGhlIGJ1aWxkIGVudmlyb25tZW50IGlzIGNyaXRpY2FsIGhlcmUsIGFzIHRoaXMgd2lsbCBoZWxwIG1lIGRldGVybWluZSB0aGUgY2lyY3Vtc3RhbmNlcyBmb3Igd2hpY2ggdGhlIHBhdGNoIHdhcyBjcmVhdGVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjk4LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE1LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMTA6NDg6MTYuNDg5Mzg4NjE0WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU3MjU5NzM5OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJuZl9mbG93X3RhYmxlX2lwLm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L25ldGZpbHRlci9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L25ldGZpbHRlci9NYWtlZmlsZT0xNDI9b2JqLSQoQ09ORklHX05GX0ZMT1dfVEFCTEUpXFx0Kz0gbmZfZmxvd190YWJsZS5vXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZToxNDM6bmZfZmxvd190YWJsZS1vYmpzXFx0XFx0Oj0gbmZfZmxvd190YWJsZV9jb3JlLm8gbmZfZmxvd190YWJsZV9pcC5vIFxcXFxcXG5uZXQvbmV0ZmlsdGVyL01ha2VmaWxlLTE0NC1cXHRcXHRcXHRcXHQgICBuZl9mbG93X3RhYmxlX3BhdGgubyBcXFxcXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDEwOjQ4OjE3LjA2MTk5MzI1M1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQxNDQ5ODQwMDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIGBDT05GSUdfTkZfRkxPV19UQUJMRWAgQ2hhbmdlcyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgY29kZSBhbmQgdGhlIGNvbmZpZyBpcyBgQ09ORklHX05GX0ZMT1dfVEFCTEVgLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGRpZyBpbnRvIHRoZSBwb3RlbnRpYWxseSB2dWxuZXJhYmxlIGFyZWFzLiBJIHdhbnQgdG8gdGFrZSBhIGxvb2sgYXQgdGhlIGZ1bmN0aW9ucyBgbmZfZmxvd194bWl0X3hmcm1gLCBgbmZfZmxvd19vZmZsb2FkX2lwX2hvb2tgLCBhbmQgYG5mX2Zsb3dfb2ZmbG9hZF9pcHY2X2hvb2tgLiBUaGUgZGVzY3JpcHRpb24gc291bmRzIGxpa2Ugd2UncmUgZHJvcHBpbmcgdGhlIGRlc3RpbmF0aW9uIGJlZm9yZSBwb3RlbnRpYWxseSBzZXR0aW5nIGEgbmV3IG9uZS4gVGhhdCBzdHJpa2VzIG1lIGFzIGEgc2lnbmlmaWNhbnQgZnVuY3Rpb25hbCBzaGlmdC4gVGhhdCBkZWZpbml0ZWx5IHdhcnJhbnRzIGZ1enppbmc7IGl0IGZlZWxzIGxpa2UgYSB0ZXh0Ym9vayBjYXNlIGZvciBwb3RlbnRpYWwgb2ZmLWJ5LW9uZSBlcnJvcnMgb3Igc29tZSBvdGhlciBraW5kIG9mIHZ1bG5lcmFiaWxpdHkgaW4gaG93IHRoZSBkZXN0aW5hdGlvbiBpcyBoYW5kbGVkLiBJIG5lZWQgdG8gc3BlbmQgdGltZSBvbiB0aGlzIGFuZCB0ZXN0IGl0IG91dC5cblxuTm93LCBiZWZvcmUgSSBnZXQgdG9vIGRlZXAgaW50byBmdXp6aW5nLCBJIHNob3VsZCBwcm9iYWJseSB0YWtlIGEgc3RlcCBiYWNrIGFuZCBzZWUgaWYgdGhlcmUgYXJlIGFueSBvdGhlciBjb25maWd1cmF0aW9uIG9wdGlvbnMgdGhhdCBhcmUgcmVxdWlyZWQgb3IgdGhhdCBtaWdodCBpbnRlcmFjdCB3aXRoIGBORl9GTE9XX1RBQkxFYC4gSSBuZWVkIHRvIGVuc3VyZSBJIGhhdmUgYSBjb21wbGV0ZSBwaWN0dXJlIG9mIHRoZSBkZXBlbmRlbmNpZXMgYmVmb3JlIEkgc3RhcnQgdGhlIGFuYWx5c2lzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyODEyLCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMTA6NDg6MjEuMjA2OTgwMDQ0WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg2OTgyMjc0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBORl9GTE9XX1RBQkxFXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9uZXRmaWx0ZXIvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbmV0ZmlsdGVyL0tjb25maWc9NzAxPWVuZGlmICMgTkZfVEFCTEVTXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTcwMi1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6NzAzOmNvbmZpZyBORl9GTE9XX1RBQkxFX0lORVRcXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNzA0LVxcdHRyaXN0YXRlIFxcXCJOZXRmaWx0ZXIgZmxvdyB0YWJsZSBtaXhlZCBJUHY0L0lQdjYgbW9kdWxlXFxcIlxcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTcxMC1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6NzExOmNvbmZpZyBORl9GTE9XX1RBQkxFXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTcxMi1cXHR0cmlzdGF0ZSBcXFwiTmV0ZmlsdGVyIGZsb3cgdGFibGUgbW9kdWxlXFxcIlxcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTcyMC1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6NzIxOmNvbmZpZyBORl9GTE9XX1RBQkxFX1BST0NGU1xcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy03MjItXFx0Ym9vbCBcXFwiU3VwcGx5IGZsb3cgdGFibGUgc3RhdGlzdGljcyBpbiBwcm9jZnNcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDEwOjQ4OjIxLjI5Mzk2Nzk5OFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwOTM2NzgzMTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzLiBIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzIG9uIHRoaXM6XG5cbioqQW5hbHl6aW5nIGBORl9GTE9XX1RBQkxFYCBEZXBlbmRlbmNpZXMqKlxuXG5BbHJpZ2h0LCB0aGUgb2JqZWN0aXZlIGlzIGNsZWFyOiBJIG5lZWQgdG8gbWFwIG91dCB0aGUgZGVwZW5kZW5jaWVzIG9mIGBORl9GTE9XX1RBQkxFYC4gVGhpcyBpcyBhIGNydWNpYWwgZmlyc3Qgc3RlcCBpbiB1bmRlcnN0YW5kaW5nIGl0cyByb2xlIGFuZCBwb3RlbnRpYWwgaW1wYWN0IG9uIG90aGVyIHBhcnRzIG9mIHRoZSBzeXN0ZW0uIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgbW9kdWxlcywgZnVuY3Rpb25zLCBvciBkYXRhIHN0cnVjdHVyZXMgKnJlbHkqIG9uIHRoaXMuIElzIGl0IGEgY29yZSBjb21wb25lbnQgd2l0aCBhIHdpZGUgcmVhY2gsIG9yIGlzIGl0IG1vcmUgaXNvbGF0ZWQ/IEFyZSB0aGVyZSBhbnkgb2J2aW91cyBjYW5kaWRhdGVzIHRoYXQgaW1tZWRpYXRlbHkgY29tZSB0byBtaW5kPyBJIHNob3VsZCBjb25zaWRlciBib3RoIGRpcmVjdCBkZXBlbmRlbmNpZXMgKGV4cGxpY2l0bHkgdXNpbmcgdGhlIGRhdGEgc3RydWN0dXJlKSBhbmQgcGVyaGFwcyBpbmRpcmVjdCBvbmVzIChmdW5jdGlvbnMgY2FsbGluZyBmdW5jdGlvbnMgdGhhdCB0b3VjaCB0aGUgdGFibGUpLiBJIG5lZWQgdG8gdGhpbmsgYWJvdXQgaG93IHRvIGFwcHJvYWNoIHRoaXMgc3lzdGVtYXRpY2FsbHkuIFNvdXJjZSBjb2RlIG5hdmlnYXRpb24gdG9vbHMgYXJlIG15IGZyaWVuZHMgaGVyZS4gSSBjb3VsZCBiZWdpbiB3aXRoIGEgZ3JlcCB0byBmaW5kIGFsbCB0aGUgcmVmZXJlbmNlcyB0byB0aGUgcmVsZXZhbnQgc3ltYm9sLiBUaGVuIEkgY2FuIHN0YXJ0IHRvIGV4cGxvcmUgdGhvc2UgbG9jYXRpb25zLiBJJ20gZ29pbmcgdG8gbmVlZCB0byBsb29rIGludG8gYW55IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0b28uIEFyZSB0aGVyZSBrZXJuZWwgY29uZmlnIGZsYWdzIGFzc29jaWF0ZWQgd2l0aCBpdD8gSG93IGRvZXMgaXQgaW50ZXJhY3Qgd2l0aCBvdGhlciBuZXR3b3JraW5nIHN1YnN5c3RlbXM/IFRoaXMgY291bGQgYmUgYSBjb21wbGV4IHVuZGVydGFraW5nLCBidXQgYSBtZXRob2RpY2FsIGFwcHJvYWNoIHdpbGwgYmUgdGhlIG1vc3QgZWZmZWN0aXZlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzg4LCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMTA6NDg6MjUuMzg3NjQ5MzIzWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0OTQwMzkzMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgTkZfRkxPV19UQUJMRVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbmV0ZmlsdGVyL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbmV0ZmlsdGVyL0tjb25maWc9NzAxPWVuZGlmICMgTkZfVEFCTEVTXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTcwMi1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6NzAzOmNvbmZpZyBORl9GTE9XX1RBQkxFX0lORVRcXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNzA0LVxcdHRyaXN0YXRlIFxcXCJOZXRmaWx0ZXIgZmxvdyB0YWJsZSBtaXhlZCBJUHY0L0lQdjYgbW9kdWxlXFxcIlxcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTcxMC1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6NzExOmNvbmZpZyBORl9GTE9XX1RBQkxFXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTcxMi1cXHR0cmlzdGF0ZSBcXFwiTmV0ZmlsdGVyIGZsb3cgdGFibGUgbW9kdWxlXFxcIlxcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTcyMC1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6NzIxOmNvbmZpZyBORl9GTE9XX1RBQkxFX1BST0NGU1xcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy03MjItXFx0Ym9vbCBcXFwiU3VwcGx5IGZsb3cgdGFibGUgc3RhdGlzdGljcyBpbiBwcm9jZnNcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDEwOjQ4OjI1LjYzNzA2MjM0NFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4ODY4NDY2MzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDpcblxuKipOYXZpZ2F0aW5nIHRoZSBOZXRmaWx0ZXIgTGFuZHNjYXBlKipcblxuT2theSwgc28gSSBuZWVkIHRvIGRpdmUgaW50byB0aGUgTmV0ZmlsdGVyIGNvbmZpZ3VyYXRpb24uIE15IGd1dCB0ZWxscyBtZSBzb21ldGhpbmcgaW50ZXJlc3RpbmcgbWlnaHQgYmUgZ29pbmcgb24gYXJvdW5kIHRoZSBhcmVhIG9mIHRoZSBydWxlcyB0aGVtc2VsdmVzLCBvciBwZXJoYXBzIHNvbWUgdW5kZXJseWluZyBpbmZyYXN0cnVjdHVyZS4gTGV0J3Mgc3RhcnQgd2l0aCBgbmV0L25ldGZpbHRlci9LY29uZmlnYCwgdGhhdCdzIHVzdWFsbHkgdGhlIGJlc3QgcGxhY2UgdG8gYmVnaW4gdGhlIGRlZXAgZGl2ZS4gSSdtIGdvaW5nIHRvIHNjYW4gYXJvdW5kIGxpbmUgNzExLiBUaGF0J3MgYSByZWFzb25hYmxlIHNwb3QgdG8gYmVnaW47IEknbGwgc2VlIGlmIHRoZSBjb25maWd1cmF0aW9uIHN0cnVjdHVyZSBhbmQgcmVsYXRlZCBvcHRpb25zIGluIHRoYXQgdmljaW5pdHkgYXJlIHJlbGV2YW50IHRvIHdoYXQgSSdtIHRoaW5raW5nIGFib3V0LiBJIGV4cGVjdCB0aGlzIEtjb25maWcgZmlsZSB3aWxsIGdpdmUgbWUgZ29vZCBpbnNpZ2h0IGludG8gdGhlIGRlcGVuZGVuY2llcyBhbmQgdGhlIG92ZXJhbGwgYXJjaGl0ZWN0dXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozODg5LCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMTA6NDg6MjguNTIzOTEyODU2WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzODQyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvbmV0ZmlsdGVyL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogNzAwLFxuICBcIkxpbmVDb3VudFwiOiAzMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgNzAwOlxcdFxcbiA3MDE6XFx0ZW5kaWYgIyBORl9UQUJMRVNcXG4gNzAyOlxcdFxcbiA3MDM6XFx0Y29uZmlnIE5GX0ZMT1dfVEFCTEVfSU5FVFxcbiA3MDQ6XFx0XFx0dHJpc3RhdGUgXFxcIk5ldGZpbHRlciBmbG93IHRhYmxlIG1peGVkIElQdjQvSVB2NiBtb2R1bGVcXFwiXFxuIDcwNTpcXHRcXHRkZXBlbmRzIG9uIE5GX0ZMT1dfVEFCTEVcXG4gNzA2OlxcdFxcdGhlbHBcXG4gNzA3OlxcdFxcdCAgVGhpcyBvcHRpb24gYWRkcyB0aGUgZmxvdyB0YWJsZSBtaXhlZCBJUHY0L0lQdjYgc3VwcG9ydC5cXG4gNzA4OlxcdFxcbiA3MDk6XFx0XFx0ICBUbyBjb21waWxlIGl0IGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxcbiA3MTA6XFx0XFxuIDcxMTpcXHRjb25maWcgTkZfRkxPV19UQUJMRVxcbiA3MTI6XFx0XFx0dHJpc3RhdGUgXFxcIk5ldGZpbHRlciBmbG93IHRhYmxlIG1vZHVsZVxcXCJcXG4gNzEzOlxcdFxcdGRlcGVuZHMgb24gTkVURklMVEVSX0lOR1JFU1NcXG4gNzE0OlxcdFxcdGRlcGVuZHMgb24gTkZfQ09OTlRSQUNLXFxuIDcxNTpcXHRcXHRkZXBlbmRzIG9uIE5GX1RBQkxFU1xcbiA3MTY6XFx0XFx0aGVscFxcbiA3MTc6XFx0XFx0ICBUaGlzIG9wdGlvbiBhZGRzIHRoZSBmbG93IHRhYmxlIGNvcmUgaW5mcmFzdHJ1Y3R1cmUuXFxuIDcxODpcXHRcXG4gNzE5OlxcdFxcdCAgVG8gY29tcGlsZSBpdCBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cXG4gNzIwOlxcdFxcbiA3MjE6XFx0Y29uZmlnIE5GX0ZMT1dfVEFCTEVfUFJPQ0ZTXFxuIDcyMjpcXHRcXHRib29sIFxcXCJTdXBwbHkgZmxvdyB0YWJsZSBzdGF0aXN0aWNzIGluIHByb2Nmc1xcXCJcXG4gNzIzOlxcdFxcdGRlcGVuZHMgb24gTkZfRkxPV19UQUJMRVxcbiA3MjQ6XFx0XFx0ZGVwZW5kcyBvbiBQUk9DX0ZTXFxuIDcyNTpcXHRcXHRoZWxwXFxuIDcyNjpcXHRcXHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgZm9yIHRoZSBmbG93IHRhYmxlIG9mZmxvYWQgc3RhdGlzdGljc1xcbiA3Mjc6XFx0XFx0ICB0byBiZSBzaG93biBpbiBwcm9jZnMgdW5kZXIgbmV0L25ldGZpbHRlci9uZl9mbG93dGFibGUuXFxuIDcyODpcXHRcXG4gNzI5OlxcdGNvbmZpZyBORVRGSUxURVJfWFRBQkxFU1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQxMDo0ODoyOC41MjQwNTUwOTZaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTMxOTkwNzE1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGFuYWx5c2lzIG9mIHRoZSBzaXR1YXRpb246XG5cbioqVW5kZXJzdGFuZGluZyB0aGUgTmV0d29yayBGbG93IE9mZmxvYWQgSW1wbGVtZW50YXRpb24qKlxuXG5Pa2F5LCBzbyB3ZSdyZSBkaXZpbmcgaW50byB0aGUgY29yZSBvZiBuZXR3b3JrIGZsb3cgb2ZmbG9hZCwgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgTmV0ZmlsdGVyIGZyYW1ld29yay4gVGhlIGtleSBoZXJlIGlzIGBORl9GTE9XX1RBQkxFYCDigJMgdGhhdCdzIG91ciBjZW50cmFsIGNvbmZpZ3VyYXRpb24gcG9pbnQuIE1ha2VzIHNlbnNlOyBpdCdzIHRoZSBtYXN0ZXIgc3dpdGNoLCBzbyB0byBzcGVhay4gQnV0IHdlIGNhbid0IGZvcmdldCB0aGUgZGVwZW5kZW5jaWVzLiBXZSdyZSBvYnZpb3VzbHkgbG9va2luZyBhdCBhbiBpbmdyZXNzIHBvaW50LCBzbyBgTkVURklMVEVSX0lOR1JFU1NgIGlzIGludm9sdmVkLiBUaGVuLCB0aGUgY29ubmVjdGlvbiB0cmFja2luZyBwaWVjZSB3aXRoIGBORl9DT05OVFJBQ0tgIGhhcyB0byBiZSBpbiB0aGUgbWl4LCBhbmQgb2YgY291cnNlLCBgTkZfVEFCTEVTYCBiZWNhdXNlIE5ldGZpbHRlciBhbmQgdGFibGVzIHRlbmQgdG8gZ28gaGFuZC1pbi1oYW5kIHRoZXNlIGRheXMuIFRoZXkncmUgYWxsIGxpa2VseSBjcml0aWNhbC5cblxuTm93LCB0aGUgY29kZSBpdHNlbGYuIFdlIGhhdmUgdGhyZWUgZnVuY3Rpb25zIHRoYXQgc3RhbmQgb3V0IGFzIGhhdmluZyBiZWVuIG1vZGlmaWVkLiBUaGUgZmlyc3Qgb25lIGlzIGBuZl9mbG93X3htaXRfeGZybWAuIEdpdmVuIHRoZSBgeG1pdGAgYW5kIGB4ZnJtYCBlbGVtZW50cyBpbiBpdHMgbmFtZSwgaXQncyBwcmV0dHkgY2xlYXIgdGhpcyBpcyBoYW5kbGluZyB0aGUgYWN0dWFsIHRyYW5zbWlzc2lvbiBhbmQgdHJhbnNmb3JtYXRpb24gcmVsYXRlZCB0byBYRlJNLCB3aGljaCBmaXRzIGludG8gYSBmbG93IG9mZmxvYWQgY29udGV4dC4gSXQncyBhIGBzdGF0aWNgIGZ1bmN0aW9uLCBzbyB3ZSBuZWVkIHRvIGJlIG1pbmRmdWwgb2YgaXRzIHNjb3BlLCBidXQgaXQncyBsaWtlbHkgY3J1Y2lhbCB0byB0aGUgZGF0YSBwYXRoLlxuXG5UaGUgbmV4dCB0d28gYXJlIGBuZl9mbG93X29mZmxvYWRfaXBfaG9va2AgYW5kIGBuZl9mbG93X29mZmxvYWRfaXB2Nl9ob29rYC4gVGhlIG5hbWVzIHN1Z2dlc3QgdGhleSBhcmUgZXhwb3NlZCBhbmQgYXJlIGFjdGluZyBhcyBob29rcyBpbnRvIHRoZSBJUCBhbmQgSVB2NiBwcm9jZXNzaW5nIHBpcGVsaW5lcy4gQW5kIHRoZXNlIGhvb2tzIGFyZSBhbHNvIHVzZWQgdG8gb2ZmbG9hZCB0aGUgZmxvd3MuIEkgbmVlZCB0byBjb25maXJtIHdoZXRoZXIgdGhleSBhcmUgZXhwb3J0ZWQgc28gdGhhdCB3ZSBjYW4gZnVsbHkgYXNzZXNzIHdoYXQgb3RoZXIga2VybmVsIG1vZHVsZXMgYXJlIGFibGUgdG8gdXNlIHRoZW0uIElmIHRoZXkgYXJlLCB0aGF0J3MgYSB3aWRlciBpbXBhY3QgdGhhbiBpZiB0aGV5J3JlIGludGVybmFsLiBUaGVzZSBhcmUgbGlrZWx5IHRoZSBlbnRyeSBwb2ludHMgd2hlcmUgb2ZmbG9hZCBkZWNpc2lvbnMgYXJlIG1hZGUgYW5kIHBhY2tldHMgYXJlIGRpcmVjdGVkLiBUaGF0IHdpbGwgaGF2ZSB0byBiZSB0aGUgcGxhY2UgdG8gc3RhcnQgd2hlbiBkaWdnaW5nIGludG8gdGhlIGltcGxlbWVudGF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NTE0LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTksIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQxMDo0ODozMy44NDM5NjQ3NDNaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3OTE1MjM5NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJuZl9mbG93X29mZmxvYWRfaXBfaG9va1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbmV0ZmlsdGVyL25mX2Zsb3dfdGFibGVfaXAuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbmV0ZmlsdGVyL25mX2Zsb3dfdGFibGVfaXAuYz04MDY9dW5zaWduZWQgaW50XFxubmV0L25ldGZpbHRlci9uZl9mbG93X3RhYmxlX2lwLmM6ODA3Om5mX2Zsb3dfb2ZmbG9hZF9pcF9ob29rKHZvaWQgKnByaXYsIHN0cnVjdCBza19idWZmICpza2IsXFxubmV0L25ldGZpbHRlci9uZl9mbG93X3RhYmxlX2lwLmMtODA4LVxcdFxcdFxcdGNvbnN0IHN0cnVjdCBuZl9ob29rX3N0YXRlICpzdGF0ZSlcXG4tLVxcbm5ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jLTg4NS19XFxubmV0L25ldGZpbHRlci9uZl9mbG93X3RhYmxlX2lwLmM6ODg2OkVYUE9SVF9TWU1CT0xfR1BMKG5mX2Zsb3dfb2ZmbG9hZF9pcF9ob29rKTtcXG5uZXQvbmV0ZmlsdGVyL25mX2Zsb3dfdGFibGVfaXAuYy04ODctXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDEwOjQ4OjM0LjAyMzEyMjYzWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ3Njc2MjU5MjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkludmVzdGlnYXRpbmcgTmV0d29yayBGbG93IE9mZmxvYWQgSG9va3MqKlxuXG5BbHJpZ2h0LCBzbyBJIGtub3cgYG5mX2Zsb3dfb2ZmbG9hZF9pcF9ob29rYCBhbmQgYG5mX2Zsb3dfb2ZmbG9hZF9pcHY2X2hvb2tgIGFyZSBkZWZpbml0ZWx5IGV4cG9ydGVkIHN5bWJvbHMuIFRoYXQncyBhIHNvbGlkIHN0YXJ0aW5nIHBvaW50LiBOb3csIGxldCdzIGRyaWxsIGRvd24gYSBiaXQgYW5kIGdldCBtb3JlIHNwZWNpZmljLiBNeSBwcmltYXJ5IGludGVyZXN0IHJpZ2h0IG5vdyBpcyBgbmZfZmxvd19vZmZsb2FkX2lwdjZfaG9va2AuIEl0J3MgdGltZSB0byBkaWcgaW50byB0aGUgZGV0YWlscyBvZiB0aGF0IG9uZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTI1MCwiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDEwOjQ4OjM4Ljc5MDc1MjkwNloiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzQ2MjkwNTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibmZfZmxvd19vZmZsb2FkX2lwdjZfaG9va1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbmV0ZmlsdGVyL25mX2Zsb3dfdGFibGVfaXAuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbmV0ZmlsdGVyL25mX2Zsb3dfdGFibGVfaXAuYz0xMTIzPXVuc2lnbmVkIGludFxcbm5ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jOjExMjQ6bmZfZmxvd19vZmZsb2FkX2lwdjZfaG9vayh2b2lkICpwcml2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbm5ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jLTExMjUtXFx0XFx0XFx0ICBjb25zdCBzdHJ1Y3QgbmZfaG9va19zdGF0ZSAqc3RhdGUpXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL25mX2Zsb3dfdGFibGVfaXAuYy0xMjAzLX1cXG5uZXQvbmV0ZmlsdGVyL25mX2Zsb3dfdGFibGVfaXAuYzoxMjA0OkVYUE9SVF9TWU1CT0xfR1BMKG5mX2Zsb3dfb2ZmbG9hZF9pcHY2X2hvb2spO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQxMDo0ODozOC44NjUzODY4MDFaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODAwOTIxOTU1MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE5ldGZpbHRlciBGbG93IFRhYmxlIE9mZmxvYWQgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpbW1lZGlhdGVseSwgbXkgZm9jdXMgbGFuZHMgb24gdGhlIGtleSBmdW5jdGlvbnM6IGBuZl9mbG93X29mZmxvYWRfaXBfaG9va2AgYW5kIGBuZl9mbG93X29mZmxvYWRfaXB2Nl9ob29rYC4gVGhvc2UgYXJlIHRoZSBlbnRyeSBwb2ludHMsIHRoZSBob29rcyB0aGF0IGFyZSBiZWluZyBtb2RpZmllZC4gVGhhdCdzIHRoZSBjb3JlIG9mIHRoZSBjaGFuZ2UuXG5cbk5vdywgbGV0J3MgdGhpbmsgYWJvdXQgdGhlIG5lY2Vzc2FyeSBjb25maWd1cmF0aW9ucy4gSSBrbm93IHdlJ2xsIGRlZmluaXRlbHkgbmVlZCBgTkZfRkxPV19UQUJMRWAsIG9idmlvdXNseS4gVGhlbiwgYE5FVEZJTFRFUl9JTkdSRVNTYCBpcyBoaWdobHkgbGlrZWx5IGJlY2F1c2UgdGhpcyBpcyBhYm91dCBwYWNrZXQgcHJvY2Vzc2luZyBhdCBpbmdyZXNzLiBgTkZfQ09OTlRSQUNLYCBzZWVtcyBjcnVjaWFsIGFzIGZsb3cgdGFibGVzIG9mdGVuIHdvcmsgaGFuZC1pbi1oYW5kIHdpdGggY29ubmVjdGlvbiB0cmFja2luZywgYW5kIG9mIGNvdXJzZSBgTkZfVEFCTEVTYCBiZWNhdXNlIHRoZSBmbG93IHRhYmxlIG1lY2hhbmlzbSBpcyBidWlsdCBhcm91bmQgdGhlIG5ldGZpbHRlciBpbmZyYXN0cnVjdHVyZS5cblxuQSBxdWljayBjaGVjayDigJMgSSBuZWVkIHRvIGVuc3VyZSB3ZSBkb24ndCBuZWVkICpib3RoKiB0aGUgaW5ldCBhbmQgdjQvdjYgc3BlY2lmaWMgb3B0aW9ucyBmb3IgYE5GX0ZMT1dfVEFCTEVgLiBZZXAsIGNvbmZpcm1lZC4gTG9va3MgbGlrZSBgbmZfZmxvd190YWJsZV9pcC5jYCBpcyBjb21waWxlZCAqZGlyZWN0bHkqIHVuZGVyIGBORl9GTE9XX1RBQkxFYC4gVGhlIE1ha2VmaWxlIG91dHB1dCBjbGVhcmx5IHNob3dzIHRoYXQuIFNvLCBgTkZfRkxPV19UQUJMRWAgaXMgc3VmZmljaWVudC4gVGhhdCdzIGEgcmVsaWVmOyBzaW1wbGVyIGlzIGJldHRlci5cblxuQWxyaWdodCwgbGV0J3Mgc3RydWN0dXJlIHRoZSBpbmZvcm1hdGlvbiBjbGVhcmx5IGZvciB0aGUgbmV4dCBzdGFnZS5cblxuKiAgIGBXb3J0aEZ1enppbmdgOiBUcnVlIOKAkyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuIFRoZSBjaGFuZ2UgaXMgZnVuY3Rpb25hbCwgbW9kaWZ5aW5nIHBhY2tldCBwcm9jZXNzaW5nLlxuKiAgIGBGb2N1c1N5bWJvbHNgOiBgbmZfZmxvd19vZmZsb2FkX2lwX2hvb2tgLCBgbmZfZmxvd19vZmZsb2FkX2lwdjZfaG9va2AgLSB0aGVzZSBhcmUgdGhlIHRhcmdldHMuXG4qICAgYEVuYWJsZUNvbmZpZ3NgOiBgTkZfRkxPV19UQUJMRWAsIGBORVRGSUxURVJfSU5HUkVTU2AsIGBORl9DT05OVFJBQ0tgLCBgTkZfVEFCTEVTYCAtIHRoZXNlIGFyZSB0aGUgY29uZmlndXJhdGlvbnMgcmVxdWlyZWQgdG8gZW5hYmxlIHRoZSBmZWF0dXJlLlxuKiAgIGBSZWFzb25pbmdgOiBUaGUgY2hhbmdlIGZ1bmRhbWVudGFsbHkgYWx0ZXJzIGhvdyB0aGUgc2tiIGRzdCBpcyBoYW5kbGVkIHdpdGhpbiB0aGUgSVAvSVB2NiBmbG93IHRhYmxlIG9mZmxvYWQgaG9va3MsIHNwZWNpZmljYWxseSBkcm9wcGluZyB0aGUgZXhpc3RpbmcgZHN0ICpiZWZvcmUqIHNldHRpbmcgYSBuZXcgb25lIHdpdGhvdXQgcmVmY291bnQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBkaXJlY3RseSBpbiB0aGUgcGFja2V0IHBhdGgsIGFuZCBhY2hpZXZhYmxlIHZpYSBuZXRmaWx0ZXIgZmxvdyB0YWJsZSBydWxlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTY0MiwiT3V0cHV0VG9rZW5zIjoxMzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMzcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMTA6NDg6NDYuODc0NjA5OTQzWiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTg4MjgxNDk2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORl9GTE9XX1RBQkxFXCIsXG4gICAgXCJORVRGSUxURVJfSU5HUkVTU1wiLFxuICAgIFwiTkZfQ09OTlRSQUNLXCIsXG4gICAgXCJORl9UQUJMRVNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZl9mbG93X29mZmxvYWRfaXBfaG9va1wiLFxuICAgIFwibmZfZmxvd19vZmZsb2FkX2lwdjZfaG9va1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIElQL0lQdjYgZmxvdyB0YWJsZSBvZmZsb2FkIGhvb2tzIHRvIGRyb3AgdGhlIHNrYiBkc3QgYmVmb3JlIHNldHRpbmcgYSBuZXcgb25lIHdpdGhvdXQgcmVmY291bnQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBwYWNrZXQgcHJvY2Vzc2luZyB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBuZXRmaWx0ZXIgZmxvdyB0YWJsZSBydWxlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORl9GTE9XX1RBQkxFXCIsXG4gICAgXCJORVRGSUxURVJfSU5HUkVTU1wiLFxuICAgIFwiTkZfQ09OTlRSQUNLXCIsXG4gICAgXCJORl9UQUJMRVNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZl9mbG93X29mZmxvYWRfaXBfaG9va1wiLFxuICAgIFwibmZfZmxvd19vZmZsb2FkX2lwdjZfaG9va1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIElQL0lQdjYgZmxvdyB0YWJsZSBvZmZsb2FkIGhvb2tzIHRvIGRyb3AgdGhlIHNrYiBkc3QgYmVmb3JlIHNldHRpbmcgYSBuZXcgb25lIHdpdGhvdXQgcmVmY291bnQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBwYWNrZXQgcHJvY2Vzc2luZyB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBuZXRmaWx0ZXIgZmxvdyB0YWJsZSBydWxlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflow562d9[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-04 10:02:47 +0000 UTC FinishedAt: 2026-08-04 10:48:49 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "2a33516f9ef59ad11844d4fc152f889449b5daf3", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NF_FLOW_TABLE", "NETFILTER_INGRESS", "NF_CONNTRACK", "NF_TABLES" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "2a33516f9ef59ad11844d4fc152f889449b5daf3", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NF_FLOW_TABLE", "NETFILTER_INGRESS", "NF_CONNTRACK", "NF_TABLES" ], "series_id": "0817b732-4766-41d4-bd2e-283214dd287b" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "nf_flow_offload_ip_hook", "nf_flow_offload_ipv6_hook" ], "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+CgkJCTx0ZD4yMDI2LzA4LzA0IDEwOjQ4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GX0ZMT1dfVEFCTEUmIzM0OywKICAgICYjMzQ7TkVURklMVEVSX0lOR1JFU1MmIzM0OywKICAgICYjMzQ7TkZfQ09OTlRSQUNLJiMzNDssCiAgICAmIzM0O05GX1RBQkxFUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O25mX2Zsb3dfb2ZmbG9hZF9pcF9ob29rJiMzNDssCiAgICAmIzM0O25mX2Zsb3dfb2ZmbG9hZF9pcHY2X2hvb2smIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgSVAvSVB2NiBmbG93IHRhYmxlIG9mZmxvYWQgaG9va3MgdG8gZHJvcCB0aGUgc2tiIGRzdCBiZWZvcmUgc2V0dGluZyBhIG5ldyBvbmUgd2l0aG91dCByZWZjb3VudC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHBhY2tldCBwcm9jZXNzaW5nIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIG5ldGZpbHRlciBmbG93IHRhYmxlIHJ1bGVzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDEwOjQ4PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgODYwOWZhZmY2NTE2N2Q2YjI4YzkyZWE3MjljZTEwZmE1ZTUwYmU3NVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgQXVnIDQgMTA6NDg6MDkgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L25ldGZpbHRlci9uZl9mbG93X3RhYmxlX2lwLmMgYi9uZXQvbmV0ZmlsdGVyL25mX2Zsb3dfdGFibGVfaXAuY1xuaW5kZXggMGI3OGRlY2NlOGE5Yi4uYzllMzMyZmFmY2I1YyAxMDA2NDRcbi0tLSBhL25ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvbmV0ZmlsdGVyL25mX2Zsb3dfdGFibGVfaXAuY1xuQEAgLTMxMCw2ICYjNDM7MzEwLDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBuZl9mbG93X3htaXRfeGZybShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0XHRcdFx0ICAgICAgc3RydWN0IGRzdF9lbnRyeSAqZHN0KVxuIHtcbiBcdHNrYl9vcnBoYW4oc2tiKTtcbiYjNDM7XHRza2JfZHN0X2Ryb3Aoc2tiKTtcbiBcdHNrYl9kc3Rfc2V0X25vcmVmKHNrYiwgZHN0KTtcbiBcdGRzdF9vdXRwdXQoc3RhdGUtXHUwMDNlbmV0LCBzdGF0ZS1cdTAwM2Vzaywgc2tiKTtcbiBcdHJldHVybiBORl9TVE9MRU47XG5AQCAtODYxLDYgJiM0Mzs4NjIsNyBAQCBuZl9mbG93X29mZmxvYWRfaXBfaG9vayh2b2lkICpwcml2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0XHRcdHJldHVybiBORl9EUk9QO1xuIFx0XHR9XG4gXHRcdHhtaXQuZGVzdCA9IG5laWdoLVx1MDAzZWhhO1xuJiM0MztcdFx0c2tiX2RzdF9kcm9wKHNrYik7XG4gXHRcdHNrYl9kc3Rfc2V0X25vcmVmKHNrYiwgXHUwMDI2cnQtXHUwMDNlZHN0KTtcbiBcdFx0YnJlYWs7XG4gXHRjYXNlIEZMT1dfT0ZGTE9BRF9YTUlUX0RJUkVDVDpcbkBAIC0xMTc4LDYgJiM0MzsxMTgwLDcgQEAgbmZfZmxvd19vZmZsb2FkX2lwdjZfaG9vayh2b2lkICpwcml2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0XHRcdHJldHVybiBORl9EUk9QO1xuIFx0XHR9XG4gXHRcdHhtaXQuZGVzdCA9IG5laWdoLVx1MDAzZWhhO1xuJiM0MztcdFx0c2tiX2RzdF9kcm9wKHNrYik7XG4gXHRcdHNrYl9kc3Rfc2V0X25vcmVmKHNrYiwgXHUwMDI2cnQtXHUwMDNlZHN0KTtcbiBcdFx0YnJlYWs7XG4gXHRjYXNlIEZMT1dfT0ZGTE9BRF9YTUlUX0RJUkVDVDpcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAxMDo0ODwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkZfRkxPV19UQUJMRSYjMzQ7LAogICAgJiMzNDtORVRGSUxURVJfSU5HUkVTUyYjMzQ7LAogICAgJiMzNDtORl9DT05OVFJBQ0smIzM0OywKICAgICYjMzQ7TkZfVEFCTEVTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bmZfZmxvd19vZmZsb2FkX2lwX2hvb2smIzM0OywKICAgICYjMzQ7bmZfZmxvd19vZmZsb2FkX2lwdjZfaG9vayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBJUC9JUHY2IGZsb3cgdGFibGUgb2ZmbG9hZCBob29rcyB0byBkcm9wIHRoZSBza2IgZHN0IGJlZm9yZSBzZXR0aW5nIGEgbmV3IG9uZSB3aXRob3V0IHJlZmNvdW50LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcGFja2V0IHByb2Nlc3NpbmcgdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgbmV0ZmlsdGVyIGZsb3cgdGFibGUgcnVsZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA4NjA5ZmFmZjY1MTY3ZDZiMjhjOTJlYTcyOWNlMTBmYTVlNTBiZTc1CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBBdWcgNCAxMDo0ODowOSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jIGIvbmV0L25ldGZpbHRlci9uZl9mbG93X3RhYmxlX2lwLmMKaW5kZXggMGI3OGRlY2NlOGE5Yi4uYzllMzMyZmFmY2I1YyAxMDA2NDQKLS0tIGEvbmV0L25ldGZpbHRlci9uZl9mbG93X3RhYmxlX2lwLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L25ldGZpbHRlci9uZl9mbG93X3RhYmxlX2lwLmMKQEAgLTMxMCw2ICYjNDM7MzEwLDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBuZl9mbG93X3htaXRfeGZybShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJCSAgICAgIHN0cnVjdCBkc3RfZW50cnkgKmRzdCkKIHsKIAlza2Jfb3JwaGFuKHNrYik7CiYjNDM7CXNrYl9kc3RfZHJvcChza2IpOwogCXNrYl9kc3Rfc2V0X25vcmVmKHNrYiwgZHN0KTsKIAlkc3Rfb3V0cHV0KHN0YXRlLSZndDtuZXQsIHN0YXRlLSZndDtzaywgc2tiKTsKIAlyZXR1cm4gTkZfU1RPTEVOOwpAQCAtODYxLDYgJiM0Mzs4NjIsNyBAQCBuZl9mbG93X29mZmxvYWRfaXBfaG9vayh2b2lkICpwcml2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJcmV0dXJuIE5GX0RST1A7CiAJCX0KIAkJeG1pdC5kZXN0ID0gbmVpZ2gtJmd0O2hhOwomIzQzOwkJc2tiX2RzdF9kcm9wKHNrYik7CiAJCXNrYl9kc3Rfc2V0X25vcmVmKHNrYiwgJmFtcDtydC0mZ3Q7ZHN0KTsKIAkJYnJlYWs7CiAJY2FzZSBGTE9XX09GRkxPQURfWE1JVF9ESVJFQ1Q6CkBAIC0xMTc4LDYgJiM0MzsxMTgwLDcgQEAgbmZfZmxvd19vZmZsb2FkX2lwdjZfaG9vayh2b2lkICpwcml2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJcmV0dXJuIE5GX0RST1A7CiAJCX0KIAkJeG1pdC5kZXN0ID0gbmVpZ2gtJmd0O2hhOwomIzQzOwkJc2tiX2RzdF9kcm9wKHNrYik7CiAJCXNrYl9kc3Rfc2V0X25vcmVmKHNrYiwgJmFtcDtydC0mZ3Q7ZHN0KTsKIAkJYnJlYWs7CiAJY2FzZSBGTE9XX09GRkxPQURfWE1JVF9ESVJFQ1Q6CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDEwOjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyOTgKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAxMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBORl9GTE9XX1RBQkxFX0lQIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQmIzM5O3MgYmVlbiBhcHBsaWVkIHRvIGBuZXQvbmV0ZmlsdGVyL25mX2Zsb3dfdGFibGVfaXAuY2AuIFRoZSBjb3JlIG9mIGl0IHNlZW1zIHRvIGludm9sdmUgYWRkaW5nIGBza2JfZHN0X2Ryb3Aoc2tiKTtgICpiZWZvcmUqIHRoZSBgc2tiX2RzdF9zZXRfbm9yZWYoc2tiLCAuLi4pYCBjYWxscy4gVGhpcyBhZGRpdGlvbiBhcHBlYXJzIGluIGEgZmV3IGtleSBsb2NhdGlvbnM6IGBuZl9mbG93X3htaXRfeGZybWAsIGBuZl9mbG93X29mZmxvYWRfaXBfaG9va2AsIGFuZCBgbmZfZmxvd19vZmZsb2FkX2lwdjZfaG9va2AuIEl0JiMzOTtzIGEgc3VidGxlIGNoYW5nZSwgYnV0IEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbnMuCgpHaXZlbiBteSB1bmRlcnN0YW5kaW5nIG9mIGhvdyBOZXRmaWx0ZXIgYW5kIGNvbm5lY3Rpb24gdHJhY2tpbmcgaW50ZXJhY3Qgd2l0aCB0aGUgZGF0YXBhdGgsIEkgbmVlZCB0byB1bmRlcnN0YW5kICp3aHkqIHRoaXMgY2hhbmdlIHdhcyBkZWVtZWQgbmVjZXNzYXJ5LiBNeSBpbW1lZGlhdGUgaW5zdGluY3QgaXMgdG8gY2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhc3NvY2lhdGVkIHdpdGggYG5mX2Zsb3dfdGFibGVfaXAuY2AuIFVuZGVyc3RhbmRpbmcgd2hpY2ggY29uZmlndXJhdGlvbnMgYXJlIGVuYWJsZWQgd2lsbCBwcm92aWRlIHZpdGFsIGNvbnRleHQuIEFyZSB3ZSBzZWVpbmcgdGhpcyBhZGRlZCB0byBhZGRyZXNzIGEgc3BlY2lmaWMgaXNzdWUsIG9wdGltaXplIGEgcGFydGljdWxhciB1c2UgY2FzZSwgb3IgY29ycmVjdCBhIHJlc291cmNlIGxlYWs/IEtub3dpbmcgdGhlIGJ1aWxkIGVudmlyb25tZW50IGlzIGNyaXRpY2FsIGhlcmUsIGFzIHRoaXMgd2lsbCBoZWxwIG1lIGRldGVybWluZSB0aGUgY2lyY3Vtc3RhbmNlcyBmb3Igd2hpY2ggdGhlIHBhdGNoIHdhcyBjcmVhdGVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDEwOjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O25mX2Zsb3dfdGFibGVfaXAubyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9uZXRmaWx0ZXIvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9uZXRmaWx0ZXIvTWFrZWZpbGU9MTQyPW9iai0kKENPTkZJR19ORl9GTE9XX1RBQkxFKVx0JiM0Mzs9IG5mX2Zsb3dfdGFibGUub1xubmV0L25ldGZpbHRlci9NYWtlZmlsZToxNDM6bmZfZmxvd190YWJsZS1vYmpzXHRcdDo9IG5mX2Zsb3dfdGFibGVfY29yZS5vIG5mX2Zsb3dfdGFibGVfaXAubyBcXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZS0xNDQtXHRcdFx0XHQgICBuZl9mbG93X3RhYmxlX3BhdGgubyBcXFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDEwOjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI4MTIKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiA5NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgYENPTkZJR19ORl9GTE9XX1RBQkxFYCBDaGFuZ2VzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kIHRoZSBjb25maWcgaXMgYENPTkZJR19ORl9GTE9XX1RBQkxFYC4gTXkgaW5pdGlhbCBpbnN0aW5jdCBpcyB0byBkaWcgaW50byB0aGUgcG90ZW50aWFsbHkgdnVsbmVyYWJsZSBhcmVhcy4gSSB3YW50IHRvIHRha2UgYSBsb29rIGF0IHRoZSBmdW5jdGlvbnMgYG5mX2Zsb3dfeG1pdF94ZnJtYCwgYG5mX2Zsb3dfb2ZmbG9hZF9pcF9ob29rYCwgYW5kIGBuZl9mbG93X29mZmxvYWRfaXB2Nl9ob29rYC4gVGhlIGRlc2NyaXB0aW9uIHNvdW5kcyBsaWtlIHdlJiMzOTtyZSBkcm9wcGluZyB0aGUgZGVzdGluYXRpb24gYmVmb3JlIHBvdGVudGlhbGx5IHNldHRpbmcgYSBuZXcgb25lLiBUaGF0IHN0cmlrZXMgbWUgYXMgYSBzaWduaWZpY2FudCBmdW5jdGlvbmFsIHNoaWZ0LiBUaGF0IGRlZmluaXRlbHkgd2FycmFudHMgZnV6emluZzsgaXQgZmVlbHMgbGlrZSBhIHRleHRib29rIGNhc2UgZm9yIHBvdGVudGlhbCBvZmYtYnktb25lIGVycm9ycyBvciBzb21lIG90aGVyIGtpbmQgb2YgdnVsbmVyYWJpbGl0eSBpbiBob3cgdGhlIGRlc3RpbmF0aW9uIGlzIGhhbmRsZWQuIEkgbmVlZCB0byBzcGVuZCB0aW1lIG9uIHRoaXMgYW5kIHRlc3QgaXQgb3V0LgoKTm93LCBiZWZvcmUgSSBnZXQgdG9vIGRlZXAgaW50byBmdXp6aW5nLCBJIHNob3VsZCBwcm9iYWJseSB0YWtlIGEgc3RlcCBiYWNrIGFuZCBzZWUgaWYgdGhlcmUgYXJlIGFueSBvdGhlciBjb25maWd1cmF0aW9uIG9wdGlvbnMgdGhhdCBhcmUgcmVxdWlyZWQgb3IgdGhhdCBtaWdodCBpbnRlcmFjdCB3aXRoIGBORl9GTE9XX1RBQkxFYC4gSSBuZWVkIHRvIGVuc3VyZSBJIGhhdmUgYSBjb21wbGV0ZSBwaWN0dXJlIG9mIHRoZSBkZXBlbmRlbmNpZXMgYmVmb3JlIEkgc3RhcnQgdGhlIGFuYWx5c2lzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDEwOjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBORl9GTE9XX1RBQkxFJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9uZXRmaWx0ZXIvS2NvbmZpZz03MDE9ZW5kaWYgIyBORl9UQUJMRVNcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy03MDItXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6NzAzOmNvbmZpZyBORl9GTE9XX1RBQkxFX0lORVRcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy03MDQtXHR0cmlzdGF0ZSBcJiMzNDtOZXRmaWx0ZXIgZmxvdyB0YWJsZSBtaXhlZCBJUHY0L0lQdjYgbW9kdWxlXCYjMzQ7XG4tLVxubmV0L25ldGZpbHRlci9LY29uZmlnLTcxMC1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzo3MTE6Y29uZmlnIE5GX0ZMT1dfVEFCTEVcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy03MTItXHR0cmlzdGF0ZSBcJiMzNDtOZXRmaWx0ZXIgZmxvdyB0YWJsZSBtb2R1bGVcJiMzNDtcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNzIwLVxubmV0L25ldGZpbHRlci9LY29uZmlnOjcyMTpjb25maWcgTkZfRkxPV19UQUJMRV9QUk9DRlNcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy03MjItXHRib29sIFwmIzM0O1N1cHBseSBmbG93IHRhYmxlIHN0YXRpc3RpY3MgaW4gcHJvY2ZzXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMTA6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzM4OAoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDEzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzIG9uIHRoaXM6CgoqKkFuYWx5emluZyBgTkZfRkxPV19UQUJMRWAgRGVwZW5kZW5jaWVzKioKCkFscmlnaHQsIHRoZSBvYmplY3RpdmUgaXMgY2xlYXI6IEkgbmVlZCB0byBtYXAgb3V0IHRoZSBkZXBlbmRlbmNpZXMgb2YgYE5GX0ZMT1dfVEFCTEVgLiBUaGlzIGlzIGEgY3J1Y2lhbCBmaXJzdCBzdGVwIGluIHVuZGVyc3RhbmRpbmcgaXRzIHJvbGUgYW5kIHBvdGVudGlhbCBpbXBhY3Qgb24gb3RoZXIgcGFydHMgb2YgdGhlIHN5c3RlbS4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCBtb2R1bGVzLCBmdW5jdGlvbnMsIG9yIGRhdGEgc3RydWN0dXJlcyAqcmVseSogb24gdGhpcy4gSXMgaXQgYSBjb3JlIGNvbXBvbmVudCB3aXRoIGEgd2lkZSByZWFjaCwgb3IgaXMgaXQgbW9yZSBpc29sYXRlZD8gQXJlIHRoZXJlIGFueSBvYnZpb3VzIGNhbmRpZGF0ZXMgdGhhdCBpbW1lZGlhdGVseSBjb21lIHRvIG1pbmQ/IEkgc2hvdWxkIGNvbnNpZGVyIGJvdGggZGlyZWN0IGRlcGVuZGVuY2llcyAoZXhwbGljaXRseSB1c2luZyB0aGUgZGF0YSBzdHJ1Y3R1cmUpIGFuZCBwZXJoYXBzIGluZGlyZWN0IG9uZXMgKGZ1bmN0aW9ucyBjYWxsaW5nIGZ1bmN0aW9ucyB0aGF0IHRvdWNoIHRoZSB0YWJsZSkuIEkgbmVlZCB0byB0aGluayBhYm91dCBob3cgdG8gYXBwcm9hY2ggdGhpcyBzeXN0ZW1hdGljYWxseS4gU291cmNlIGNvZGUgbmF2aWdhdGlvbiB0b29scyBhcmUgbXkgZnJpZW5kcyBoZXJlLiBJIGNvdWxkIGJlZ2luIHdpdGggYSBncmVwIHRvIGZpbmQgYWxsIHRoZSByZWZlcmVuY2VzIHRvIHRoZSByZWxldmFudCBzeW1ib2wuIFRoZW4gSSBjYW4gc3RhcnQgdG8gZXhwbG9yZSB0aG9zZSBsb2NhdGlvbnMuIEkmIzM5O20gZ29pbmcgdG8gbmVlZCB0byBsb29rIGludG8gYW55IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0b28uIEFyZSB0aGVyZSBrZXJuZWwgY29uZmlnIGZsYWdzIGFzc29jaWF0ZWQgd2l0aCBpdD8gSG93IGRvZXMgaXQgaW50ZXJhY3Qgd2l0aCBvdGhlciBuZXR3b3JraW5nIHN1YnN5c3RlbXM/IFRoaXMgY291bGQgYmUgYSBjb21wbGV4IHVuZGVydGFraW5nLCBidXQgYSBtZXRob2RpY2FsIGFwcHJvYWNoIHdpbGwgYmUgdGhlIG1vc3QgZWZmZWN0aXZlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDEwOjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBORl9GTE9XX1RBQkxFJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci9LY29uZmlnPTcwMT1lbmRpZiAjIE5GX1RBQkxFU1xubmV0L25ldGZpbHRlci9LY29uZmlnLTcwMi1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzo3MDM6Y29uZmlnIE5GX0ZMT1dfVEFCTEVfSU5FVFxubmV0L25ldGZpbHRlci9LY29uZmlnLTcwNC1cdHRyaXN0YXRlIFwmIzM0O05ldGZpbHRlciBmbG93IHRhYmxlIG1peGVkIElQdjQvSVB2NiBtb2R1bGVcJiMzNDtcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNzEwLVxubmV0L25ldGZpbHRlci9LY29uZmlnOjcxMTpjb25maWcgTkZfRkxPV19UQUJMRVxubmV0L25ldGZpbHRlci9LY29uZmlnLTcxMi1cdHRyaXN0YXRlIFwmIzM0O05ldGZpbHRlciBmbG93IHRhYmxlIG1vZHVsZVwmIzM0O1xuLS1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy03MjAtXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6NzIxOmNvbmZpZyBORl9GTE9XX1RBQkxFX1BST0NGU1xubmV0L25ldGZpbHRlci9LY29uZmlnLTcyMi1cdGJvb2wgXCYjMzQ7U3VwcGx5IGZsb3cgdGFibGUgc3RhdGlzdGljcyBpbiBwcm9jZnNcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAxMDo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzODg5CgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogMjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzLCBzdW1tYXJpemVkIGFzIHlvdSByZXF1ZXN0ZWQ6CgoqKk5hdmlnYXRpbmcgdGhlIE5ldGZpbHRlciBMYW5kc2NhcGUqKgoKT2theSwgc28gSSBuZWVkIHRvIGRpdmUgaW50byB0aGUgTmV0ZmlsdGVyIGNvbmZpZ3VyYXRpb24uIE15IGd1dCB0ZWxscyBtZSBzb21ldGhpbmcgaW50ZXJlc3RpbmcgbWlnaHQgYmUgZ29pbmcgb24gYXJvdW5kIHRoZSBhcmVhIG9mIHRoZSBydWxlcyB0aGVtc2VsdmVzLCBvciBwZXJoYXBzIHNvbWUgdW5kZXJseWluZyBpbmZyYXN0cnVjdHVyZS4gTGV0JiMzOTtzIHN0YXJ0IHdpdGggYG5ldC9uZXRmaWx0ZXIvS2NvbmZpZ2AsIHRoYXQmIzM5O3MgdXN1YWxseSB0aGUgYmVzdCBwbGFjZSB0byBiZWdpbiB0aGUgZGVlcCBkaXZlLiBJJiMzOTttIGdvaW5nIHRvIHNjYW4gYXJvdW5kIGxpbmUgNzExLiBUaGF0JiMzOTtzIGEgcmVhc29uYWJsZSBzcG90IHRvIGJlZ2luOyBJJiMzOTtsbCBzZWUgaWYgdGhlIGNvbmZpZ3VyYXRpb24gc3RydWN0dXJlIGFuZCByZWxhdGVkIG9wdGlvbnMgaW4gdGhhdCB2aWNpbml0eSBhcmUgcmVsZXZhbnQgdG8gd2hhdCBJJiMzOTttIHRoaW5raW5nIGFib3V0LiBJIGV4cGVjdCB0aGlzIEtjb25maWcgZmlsZSB3aWxsIGdpdmUgbWUgZ29vZCBpbnNpZ2h0IGludG8gdGhlIGRlcGVuZGVuY2llcyBhbmQgdGhlIG92ZXJhbGwgYXJjaGl0ZWN0dXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAxMDo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O25ldC9uZXRmaWx0ZXIvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDcwMCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAzMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgNzAwOlx0XG4gNzAxOlx0ZW5kaWYgIyBORl9UQUJMRVNcbiA3MDI6XHRcbiA3MDM6XHRjb25maWcgTkZfRkxPV19UQUJMRV9JTkVUXG4gNzA0Olx0XHR0cmlzdGF0ZSBcJiMzNDtOZXRmaWx0ZXIgZmxvdyB0YWJsZSBtaXhlZCBJUHY0L0lQdjYgbW9kdWxlXCYjMzQ7XG4gNzA1Olx0XHRkZXBlbmRzIG9uIE5GX0ZMT1dfVEFCTEVcbiA3MDY6XHRcdGhlbHBcbiA3MDc6XHRcdCAgVGhpcyBvcHRpb24gYWRkcyB0aGUgZmxvdyB0YWJsZSBtaXhlZCBJUHY0L0lQdjYgc3VwcG9ydC5cbiA3MDg6XHRcbiA3MDk6XHRcdCAgVG8gY29tcGlsZSBpdCBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cbiA3MTA6XHRcbiA3MTE6XHRjb25maWcgTkZfRkxPV19UQUJMRVxuIDcxMjpcdFx0dHJpc3RhdGUgXCYjMzQ7TmV0ZmlsdGVyIGZsb3cgdGFibGUgbW9kdWxlXCYjMzQ7XG4gNzEzOlx0XHRkZXBlbmRzIG9uIE5FVEZJTFRFUl9JTkdSRVNTXG4gNzE0Olx0XHRkZXBlbmRzIG9uIE5GX0NPTk5UUkFDS1xuIDcxNTpcdFx0ZGVwZW5kcyBvbiBORl9UQUJMRVNcbiA3MTY6XHRcdGhlbHBcbiA3MTc6XHRcdCAgVGhpcyBvcHRpb24gYWRkcyB0aGUgZmxvdyB0YWJsZSBjb3JlIGluZnJhc3RydWN0dXJlLlxuIDcxODpcdFxuIDcxOTpcdFx0ICBUbyBjb21waWxlIGl0IGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxuIDcyMDpcdFxuIDcyMTpcdGNvbmZpZyBORl9GTE9XX1RBQkxFX1BST0NGU1xuIDcyMjpcdFx0Ym9vbCBcJiMzNDtTdXBwbHkgZmxvdyB0YWJsZSBzdGF0aXN0aWNzIGluIHByb2Nmc1wmIzM0O1xuIDcyMzpcdFx0ZGVwZW5kcyBvbiBORl9GTE9XX1RBQkxFXG4gNzI0Olx0XHRkZXBlbmRzIG9uIFBST0NfRlNcbiA3MjU6XHRcdGhlbHBcbiA3MjY6XHRcdCAgVGhpcyBvcHRpb24gZW5hYmxlcyBmb3IgdGhlIGZsb3cgdGFibGUgb2ZmbG9hZCBzdGF0aXN0aWNzXG4gNzI3Olx0XHQgIHRvIGJlIHNob3duIGluIHByb2NmcyB1bmRlciBuZXQvbmV0ZmlsdGVyL25mX2Zsb3d0YWJsZS5cbiA3Mjg6XHRcbiA3Mjk6XHRjb25maWcgTkVURklMVEVSX1hUQUJMRVNcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMTA6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDUxNAoJCQkJCQkJb3V0cHV0OiA0NAoJCQkJCQkJdGhvdWdodHM6IDk5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGFuYWx5c2lzIG9mIHRoZSBzaXR1YXRpb246CgoqKlVuZGVyc3RhbmRpbmcgdGhlIE5ldHdvcmsgRmxvdyBPZmZsb2FkIEltcGxlbWVudGF0aW9uKioKCk9rYXksIHNvIHdlJiMzOTtyZSBkaXZpbmcgaW50byB0aGUgY29yZSBvZiBuZXR3b3JrIGZsb3cgb2ZmbG9hZCwgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgTmV0ZmlsdGVyIGZyYW1ld29yay4gVGhlIGtleSBoZXJlIGlzIGBORl9GTE9XX1RBQkxFYCDigJMgdGhhdCYjMzk7cyBvdXIgY2VudHJhbCBjb25maWd1cmF0aW9uIHBvaW50LiBNYWtlcyBzZW5zZTsgaXQmIzM5O3MgdGhlIG1hc3RlciBzd2l0Y2gsIHNvIHRvIHNwZWFrLiBCdXQgd2UgY2FuJiMzOTt0IGZvcmdldCB0aGUgZGVwZW5kZW5jaWVzLiBXZSYjMzk7cmUgb2J2aW91c2x5IGxvb2tpbmcgYXQgYW4gaW5ncmVzcyBwb2ludCwgc28gYE5FVEZJTFRFUl9JTkdSRVNTYCBpcyBpbnZvbHZlZC4gVGhlbiwgdGhlIGNvbm5lY3Rpb24gdHJhY2tpbmcgcGllY2Ugd2l0aCBgTkZfQ09OTlRSQUNLYCBoYXMgdG8gYmUgaW4gdGhlIG1peCwgYW5kIG9mIGNvdXJzZSwgYE5GX1RBQkxFU2AgYmVjYXVzZSBOZXRmaWx0ZXIgYW5kIHRhYmxlcyB0ZW5kIHRvIGdvIGhhbmQtaW4taGFuZCB0aGVzZSBkYXlzLiBUaGV5JiMzOTtyZSBhbGwgbGlrZWx5IGNyaXRpY2FsLgoKTm93LCB0aGUgY29kZSBpdHNlbGYuIFdlIGhhdmUgdGhyZWUgZnVuY3Rpb25zIHRoYXQgc3RhbmQgb3V0IGFzIGhhdmluZyBiZWVuIG1vZGlmaWVkLiBUaGUgZmlyc3Qgb25lIGlzIGBuZl9mbG93X3htaXRfeGZybWAuIEdpdmVuIHRoZSBgeG1pdGAgYW5kIGB4ZnJtYCBlbGVtZW50cyBpbiBpdHMgbmFtZSwgaXQmIzM5O3MgcHJldHR5IGNsZWFyIHRoaXMgaXMgaGFuZGxpbmcgdGhlIGFjdHVhbCB0cmFuc21pc3Npb24gYW5kIHRyYW5zZm9ybWF0aW9uIHJlbGF0ZWQgdG8gWEZSTSwgd2hpY2ggZml0cyBpbnRvIGEgZmxvdyBvZmZsb2FkIGNvbnRleHQuIEl0JiMzOTtzIGEgYHN0YXRpY2AgZnVuY3Rpb24sIHNvIHdlIG5lZWQgdG8gYmUgbWluZGZ1bCBvZiBpdHMgc2NvcGUsIGJ1dCBpdCYjMzk7cyBsaWtlbHkgY3J1Y2lhbCB0byB0aGUgZGF0YSBwYXRoLgoKVGhlIG5leHQgdHdvIGFyZSBgbmZfZmxvd19vZmZsb2FkX2lwX2hvb2tgIGFuZCBgbmZfZmxvd19vZmZsb2FkX2lwdjZfaG9va2AuIFRoZSBuYW1lcyBzdWdnZXN0IHRoZXkgYXJlIGV4cG9zZWQgYW5kIGFyZSBhY3RpbmcgYXMgaG9va3MgaW50byB0aGUgSVAgYW5kIElQdjYgcHJvY2Vzc2luZyBwaXBlbGluZXMuIEFuZCB0aGVzZSBob29rcyBhcmUgYWxzbyB1c2VkIHRvIG9mZmxvYWQgdGhlIGZsb3dzLiBJIG5lZWQgdG8gY29uZmlybSB3aGV0aGVyIHRoZXkgYXJlIGV4cG9ydGVkIHNvIHRoYXQgd2UgY2FuIGZ1bGx5IGFzc2VzcyB3aGF0IG90aGVyIGtlcm5lbCBtb2R1bGVzIGFyZSBhYmxlIHRvIHVzZSB0aGVtLiBJZiB0aGV5IGFyZSwgdGhhdCYjMzk7cyBhIHdpZGVyIGltcGFjdCB0aGFuIGlmIHRoZXkmIzM5O3JlIGludGVybmFsLiBUaGVzZSBhcmUgbGlrZWx5IHRoZSBlbnRyeSBwb2ludHMgd2hlcmUgb2ZmbG9hZCBkZWNpc2lvbnMgYXJlIG1hZGUgYW5kIHBhY2tldHMgYXJlIGRpcmVjdGVkLiBUaGF0IHdpbGwgaGF2ZSB0byBiZSB0aGUgcGxhY2UgdG8gc3RhcnQgd2hlbiBkaWdnaW5nIGludG8gdGhlIGltcGxlbWVudGF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAxMDo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtuZl9mbG93X29mZmxvYWRfaXBfaG9vayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jPTgwNj11bnNpZ25lZCBpbnRcbm5ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jOjgwNzpuZl9mbG93X29mZmxvYWRfaXBfaG9vayh2b2lkICpwcml2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxubmV0L25ldGZpbHRlci9uZl9mbG93X3RhYmxlX2lwLmMtODA4LVx0XHRcdGNvbnN0IHN0cnVjdCBuZl9ob29rX3N0YXRlICpzdGF0ZSlcbi0tXG5uZXQvbmV0ZmlsdGVyL25mX2Zsb3dfdGFibGVfaXAuYy04ODUtfVxubmV0L25ldGZpbHRlci9uZl9mbG93X3RhYmxlX2lwLmM6ODg2OkVYUE9SVF9TWU1CT0xfR1BMKG5mX2Zsb3dfb2ZmbG9hZF9pcF9ob29rKTtcbm5ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jLTg4Ny1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMTA6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTI1MAoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDQ5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipJbnZlc3RpZ2F0aW5nIE5ldHdvcmsgRmxvdyBPZmZsb2FkIEhvb2tzKioKCkFscmlnaHQsIHNvIEkga25vdyBgbmZfZmxvd19vZmZsb2FkX2lwX2hvb2tgIGFuZCBgbmZfZmxvd19vZmZsb2FkX2lwdjZfaG9va2AgYXJlIGRlZmluaXRlbHkgZXhwb3J0ZWQgc3ltYm9scy4gVGhhdCYjMzk7cyBhIHNvbGlkIHN0YXJ0aW5nIHBvaW50LiBOb3csIGxldCYjMzk7cyBkcmlsbCBkb3duIGEgYml0IGFuZCBnZXQgbW9yZSBzcGVjaWZpYy4gTXkgcHJpbWFyeSBpbnRlcmVzdCByaWdodCBub3cgaXMgYG5mX2Zsb3dfb2ZmbG9hZF9pcHY2X2hvb2tgLiBJdCYjMzk7cyB0aW1lIHRvIGRpZyBpbnRvIHRoZSBkZXRhaWxzIG9mIHRoYXQgb25lLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAxMDo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtuZl9mbG93X29mZmxvYWRfaXB2Nl9ob29rJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci9uZl9mbG93X3RhYmxlX2lwLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci9uZl9mbG93X3RhYmxlX2lwLmM9MTEyMz11bnNpZ25lZCBpbnRcbm5ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jOjExMjQ6bmZfZmxvd19vZmZsb2FkX2lwdjZfaG9vayh2b2lkICpwcml2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxubmV0L25ldGZpbHRlci9uZl9mbG93X3RhYmxlX2lwLmMtMTEyNS1cdFx0XHQgIGNvbnN0IHN0cnVjdCBuZl9ob29rX3N0YXRlICpzdGF0ZSlcbi0tXG5uZXQvbmV0ZmlsdGVyL25mX2Zsb3dfdGFibGVfaXAuYy0xMjAzLX1cbm5ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jOjEyMDQ6RVhQT1JUX1NZTUJPTF9HUEwobmZfZmxvd19vZmZsb2FkX2lwdjZfaG9vayk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDEwOjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU2NDIKCQkJCQkJCW91dHB1dDogMTM0CgkJCQkJCQl0aG91Z2h0czogMzM3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTmV0ZmlsdGVyIEZsb3cgVGFibGUgT2ZmbG9hZCBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHksIG15IGZvY3VzIGxhbmRzIG9uIHRoZSBrZXkgZnVuY3Rpb25zOiBgbmZfZmxvd19vZmZsb2FkX2lwX2hvb2tgIGFuZCBgbmZfZmxvd19vZmZsb2FkX2lwdjZfaG9va2AuIFRob3NlIGFyZSB0aGUgZW50cnkgcG9pbnRzLCB0aGUgaG9va3MgdGhhdCBhcmUgYmVpbmcgbW9kaWZpZWQuIFRoYXQmIzM5O3MgdGhlIGNvcmUgb2YgdGhlIGNoYW5nZS4KCk5vdywgbGV0JiMzOTtzIHRoaW5rIGFib3V0IHRoZSBuZWNlc3NhcnkgY29uZmlndXJhdGlvbnMuIEkga25vdyB3ZSYjMzk7bGwgZGVmaW5pdGVseSBuZWVkIGBORl9GTE9XX1RBQkxFYCwgb2J2aW91c2x5LiBUaGVuLCBgTkVURklMVEVSX0lOR1JFU1NgIGlzIGhpZ2hseSBsaWtlbHkgYmVjYXVzZSB0aGlzIGlzIGFib3V0IHBhY2tldCBwcm9jZXNzaW5nIGF0IGluZ3Jlc3MuIGBORl9DT05OVFJBQ0tgIHNlZW1zIGNydWNpYWwgYXMgZmxvdyB0YWJsZXMgb2Z0ZW4gd29yayBoYW5kLWluLWhhbmQgd2l0aCBjb25uZWN0aW9uIHRyYWNraW5nLCBhbmQgb2YgY291cnNlIGBORl9UQUJMRVNgIGJlY2F1c2UgdGhlIGZsb3cgdGFibGUgbWVjaGFuaXNtIGlzIGJ1aWx0IGFyb3VuZCB0aGUgbmV0ZmlsdGVyIGluZnJhc3RydWN0dXJlLgoKQSBxdWljayBjaGVjayDigJMgSSBuZWVkIHRvIGVuc3VyZSB3ZSBkb24mIzM5O3QgbmVlZCAqYm90aCogdGhlIGluZXQgYW5kIHY0L3Y2IHNwZWNpZmljIG9wdGlvbnMgZm9yIGBORl9GTE9XX1RBQkxFYC4gWWVwLCBjb25maXJtZWQuIExvb2tzIGxpa2UgYG5mX2Zsb3dfdGFibGVfaXAuY2AgaXMgY29tcGlsZWQgKmRpcmVjdGx5KiB1bmRlciBgTkZfRkxPV19UQUJMRWAuIFRoZSBNYWtlZmlsZSBvdXRwdXQgY2xlYXJseSBzaG93cyB0aGF0LiBTbywgYE5GX0ZMT1dfVEFCTEVgIGlzIHN1ZmZpY2llbnQuIFRoYXQmIzM5O3MgYSByZWxpZWY7IHNpbXBsZXIgaXMgYmV0dGVyLgoKQWxyaWdodCwgbGV0JiMzOTtzIHN0cnVjdHVyZSB0aGUgaW5mb3JtYXRpb24gY2xlYXJseSBmb3IgdGhlIG5leHQgc3RhZ2UuCgoqICAgYFdvcnRoRnV6emluZ2A6IFRydWUg4oCTIGRlZmluaXRlbHkgd29ydGggZnV6emluZy4gVGhlIGNoYW5nZSBpcyBmdW5jdGlvbmFsLCBtb2RpZnlpbmcgcGFja2V0IHByb2Nlc3NpbmcuCiogICBgRm9jdXNTeW1ib2xzYDogYG5mX2Zsb3dfb2ZmbG9hZF9pcF9ob29rYCwgYG5mX2Zsb3dfb2ZmbG9hZF9pcHY2X2hvb2tgIC0gdGhlc2UgYXJlIHRoZSB0YXJnZXRzLgoqICAgYEVuYWJsZUNvbmZpZ3NgOiBgTkZfRkxPV19UQUJMRWAsIGBORVRGSUxURVJfSU5HUkVTU2AsIGBORl9DT05OVFJBQ0tgLCBgTkZfVEFCTEVTYCAtIHRoZXNlIGFyZSB0aGUgY29uZmlndXJhdGlvbnMgcmVxdWlyZWQgdG8gZW5hYmxlIHRoZSBmZWF0dXJlLgoqICAgYFJlYXNvbmluZ2A6IFRoZSBjaGFuZ2UgZnVuZGFtZW50YWxseSBhbHRlcnMgaG93IHRoZSBza2IgZHN0IGlzIGhhbmRsZWQgd2l0aGluIHRoZSBJUC9JUHY2IGZsb3cgdGFibGUgb2ZmbG9hZCBob29rcywgc3BlY2lmaWNhbGx5IGRyb3BwaW5nIHRoZSBleGlzdGluZyBkc3QgKmJlZm9yZSogc2V0dGluZyBhIG5ldyBvbmUgd2l0aG91dCByZWZjb3VudC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGRpcmVjdGx5IGluIHRoZSBwYWNrZXQgcGF0aCwgYW5kIGFjaGlldmFibGUgdmlhIG5ldGZpbHRlciBmbG93IHRhYmxlIHJ1bGVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAxMDo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkZfRkxPV19UQUJMRSYjMzQ7LAogICAgJiMzNDtORVRGSUxURVJfSU5HUkVTUyYjMzQ7LAogICAgJiMzNDtORl9DT05OVFJBQ0smIzM0OywKICAgICYjMzQ7TkZfVEFCTEVTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bmZfZmxvd19vZmZsb2FkX2lwX2hvb2smIzM0OywKICAgICYjMzQ7bmZfZmxvd19vZmZsb2FkX2lwdjZfaG9vayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBJUC9JUHY2IGZsb3cgdGFibGUgb2ZmbG9hZCBob29rcyB0byBkcm9wIHRoZSBza2IgZHN0IGJlZm9yZSBzZXR0aW5nIGEgbmV3IG9uZSB3aXRob3V0IHJlZmNvdW50LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcGFja2V0IHByb2Nlc3NpbmcgdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgbmV0ZmlsdGVyIGZsb3cgdGFibGUgcnVsZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GX0ZMT1dfVEFCTEUmIzM0OywKICAgICYjMzQ7TkVURklMVEVSX0lOR1JFU1MmIzM0OywKICAgICYjMzQ7TkZfQ09OTlRSQUNLJiMzNDssCiAgICAmIzM0O05GX1RBQkxFUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O25mX2Zsb3dfb2ZmbG9hZF9pcF9ob29rJiMzNDssCiAgICAmIzM0O25mX2Zsb3dfb2ZmbG9hZF9pcHY2X2hvb2smIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgSVAvSVB2NiBmbG93IHRhYmxlIG9mZmxvYWQgaG9va3MgdG8gZHJvcCB0aGUgc2tiIGRzdCBiZWZvcmUgc2V0dGluZyBhIG5ldyBvbmUgd2l0aG91dCByZWZjb3VudC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHBhY2tldCBwcm9jZXNzaW5nIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIG5ldGZpbHRlciBmbG93IHRhYmxlIHJ1bGVzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDRUMTA6NDg6MTEuMDA1NTc3OTE4WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzYwNTczMzIyNzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTkZfRkxPV19UQUJMRVwiLFxuICAgIFwiTkVURklMVEVSX0lOR1JFU1NcIixcbiAgICBcIk5GX0NPTk5UUkFDS1wiLFxuICAgIFwiTkZfVEFCTEVTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibmZfZmxvd19vZmZsb2FkX2lwX2hvb2tcIixcbiAgICBcIm5mX2Zsb3dfb2ZmbG9hZF9pcHY2X2hvb2tcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBJUC9JUHY2IGZsb3cgdGFibGUgb2ZmbG9hZCBob29rcyB0byBkcm9wIHRoZSBza2IgZHN0IGJlZm9yZSBzZXR0aW5nIGEgbmV3IG9uZSB3aXRob3V0IHJlZmNvdW50LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcGFja2V0IHByb2Nlc3NpbmcgdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgbmV0ZmlsdGVyIGZsb3cgdGFibGUgcnVsZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDEwOjQ4OjExLjAwNTU4NDQ1OFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTMyMDMwNDczNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDg2MDlmYWZmNjUxNjdkNmIyOGM5MmVhNzI5Y2UxMGZhNWU1MGJlNzVcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBBdWcgNCAxMDo0ODowOSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL25mX2Zsb3dfdGFibGVfaXAuYyBiL25ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jXFxuaW5kZXggMGI3OGRlY2NlOGE5Yi4uYzllMzMyZmFmY2I1YyAxMDA2NDRcXG4tLS0gYS9uZXQvbmV0ZmlsdGVyL25mX2Zsb3dfdGFibGVfaXAuY1xcbisrKyBiL25ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jXFxuQEAgLTMxMCw2ICszMTAsNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IG5mX2Zsb3dfeG1pdF94ZnJtKHN0cnVjdCBza19idWZmICpza2IsXFxuIFxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBkc3RfZW50cnkgKmRzdClcXG4ge1xcbiBcXHRza2Jfb3JwaGFuKHNrYik7XFxuK1xcdHNrYl9kc3RfZHJvcChza2IpO1xcbiBcXHRza2JfZHN0X3NldF9ub3JlZihza2IsIGRzdCk7XFxuIFxcdGRzdF9vdXRwdXQoc3RhdGUtXFx1MDAzZW5ldCwgc3RhdGUtXFx1MDAzZXNrLCBza2IpO1xcbiBcXHRyZXR1cm4gTkZfU1RPTEVOO1xcbkBAIC04NjEsNiArODYyLDcgQEAgbmZfZmxvd19vZmZsb2FkX2lwX2hvb2sodm9pZCAqcHJpdiwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4gXFx0XFx0XFx0cmV0dXJuIE5GX0RST1A7XFxuIFxcdFxcdH1cXG4gXFx0XFx0eG1pdC5kZXN0ID0gbmVpZ2gtXFx1MDAzZWhhO1xcbitcXHRcXHRza2JfZHN0X2Ryb3Aoc2tiKTtcXG4gXFx0XFx0c2tiX2RzdF9zZXRfbm9yZWYoc2tiLCBcXHUwMDI2cnQtXFx1MDAzZWRzdCk7XFxuIFxcdFxcdGJyZWFrO1xcbiBcXHRjYXNlIEZMT1dfT0ZGTE9BRF9YTUlUX0RJUkVDVDpcXG5AQCAtMTE3OCw2ICsxMTgwLDcgQEAgbmZfZmxvd19vZmZsb2FkX2lwdjZfaG9vayh2b2lkICpwcml2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbiBcXHRcXHRcXHRyZXR1cm4gTkZfRFJPUDtcXG4gXFx0XFx0fVxcbiBcXHRcXHR4bWl0LmRlc3QgPSBuZWlnaC1cXHUwMDNlaGE7XFxuK1xcdFxcdHNrYl9kc3RfZHJvcChza2IpO1xcbiBcXHRcXHRza2JfZHN0X3NldF9ub3JlZihza2IsIFxcdTAwMjZydC1cXHUwMDNlZHN0KTtcXG4gXFx0XFx0YnJlYWs7XFxuIFxcdGNhc2UgRkxPV19PRkZMT0FEX1hNSVRfRElSRUNUOlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQxMDo0ODoxMi4zMjY4MTgyMjNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjozNDczNjA3ODc1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORl9GTE9XX1RBQkxFXCIsXG4gICAgXCJORVRGSUxURVJfSU5HUkVTU1wiLFxuICAgIFwiTkZfQ09OTlRSQUNLXCIsXG4gICAgXCJORl9UQUJMRVNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZl9mbG93X29mZmxvYWRfaXBfaG9va1wiLFxuICAgIFwibmZfZmxvd19vZmZsb2FkX2lwdjZfaG9va1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIElQL0lQdjYgZmxvdyB0YWJsZSBvZmZsb2FkIGhvb2tzIHRvIGRyb3AgdGhlIHNrYiBkc3QgYmVmb3JlIHNldHRpbmcgYSBuZXcgb25lIHdpdGhvdXQgcmVmY291bnQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBwYWNrZXQgcHJvY2Vzc2luZyB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBuZXRmaWx0ZXIgZmxvdyB0YWJsZSBydWxlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgODYwOWZhZmY2NTE2N2Q2YjI4YzkyZWE3MjljZTEwZmE1ZTUwYmU3NVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgQXVnIDQgMTA6NDg6MDkgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL25mX2Zsb3dfdGFibGVfaXAuYyBiL25ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jXG5pbmRleCAwYjc4ZGVjY2U4YTliLi5jOWUzMzJmYWZjYjVjIDEwMDY0NFxuLS0tIGEvbmV0L25ldGZpbHRlci9uZl9mbG93X3RhYmxlX2lwLmNcbisrKyBiL25ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jXG5AQCAtMzEwLDYgKzMxMCw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgbmZfZmxvd194bWl0X3hmcm0oc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBcdFx0XHRcdCAgICAgIHN0cnVjdCBkc3RfZW50cnkgKmRzdClcbiB7XG4gXHRza2Jfb3JwaGFuKHNrYik7XG4rXHRza2JfZHN0X2Ryb3Aoc2tiKTtcbiBcdHNrYl9kc3Rfc2V0X25vcmVmKHNrYiwgZHN0KTtcbiBcdGRzdF9vdXRwdXQoc3RhdGUtXHUwMDNlbmV0LCBzdGF0ZS1cdTAwM2Vzaywgc2tiKTtcbiBcdHJldHVybiBORl9TVE9MRU47XG5AQCAtODYxLDYgKzg2Miw3IEBAIG5mX2Zsb3dfb2ZmbG9hZF9pcF9ob29rKHZvaWQgKnByaXYsIHN0cnVjdCBza19idWZmICpza2IsXG4gXHRcdFx0cmV0dXJuIE5GX0RST1A7XG4gXHRcdH1cbiBcdFx0eG1pdC5kZXN0ID0gbmVpZ2gtXHUwMDNlaGE7XG4rXHRcdHNrYl9kc3RfZHJvcChza2IpO1xuIFx0XHRza2JfZHN0X3NldF9ub3JlZihza2IsIFx1MDAyNnJ0LVx1MDAzZWRzdCk7XG4gXHRcdGJyZWFrO1xuIFx0Y2FzZSBGTE9XX09GRkxPQURfWE1JVF9ESVJFQ1Q6XG5AQCAtMTE3OCw2ICsxMTgwLDcgQEAgbmZfZmxvd19vZmZsb2FkX2lwdjZfaG9vayh2b2lkICpwcml2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0XHRcdHJldHVybiBORl9EUk9QO1xuIFx0XHR9XG4gXHRcdHhtaXQuZGVzdCA9IG5laWdoLVx1MDAzZWhhO1xuK1x0XHRza2JfZHN0X2Ryb3Aoc2tiKTtcbiBcdFx0c2tiX2RzdF9zZXRfbm9yZWYoc2tiLCBcdTAwMjZydC1cdTAwM2Vkc3QpO1xuIFx0XHRicmVhaztcbiBcdGNhc2UgRkxPV19PRkZMT0FEX1hNSVRfRElSRUNUOlxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMTA6NDg6MTIuMzI2ODIwMzc0WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDE2MjU2NTM1MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE5GX0ZMT1dfVEFCTEVfSVAgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQncyBiZWVuIGFwcGxpZWQgdG8gYG5ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jYC4gVGhlIGNvcmUgb2YgaXQgc2VlbXMgdG8gaW52b2x2ZSBhZGRpbmcgYHNrYl9kc3RfZHJvcChza2IpO2AgKmJlZm9yZSogdGhlIGBza2JfZHN0X3NldF9ub3JlZihza2IsIC4uLilgIGNhbGxzLiBUaGlzIGFkZGl0aW9uIGFwcGVhcnMgaW4gYSBmZXcga2V5IGxvY2F0aW9uczogYG5mX2Zsb3dfeG1pdF94ZnJtYCwgYG5mX2Zsb3dfb2ZmbG9hZF9pcF9ob29rYCwgYW5kIGBuZl9mbG93X29mZmxvYWRfaXB2Nl9ob29rYC4gSXQncyBhIHN1YnRsZSBjaGFuZ2UsIGJ1dCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zLlxuXG5HaXZlbiBteSB1bmRlcnN0YW5kaW5nIG9mIGhvdyBOZXRmaWx0ZXIgYW5kIGNvbm5lY3Rpb24gdHJhY2tpbmcgaW50ZXJhY3Qgd2l0aCB0aGUgZGF0YXBhdGgsIEkgbmVlZCB0byB1bmRlcnN0YW5kICp3aHkqIHRoaXMgY2hhbmdlIHdhcyBkZWVtZWQgbmVjZXNzYXJ5LiBNeSBpbW1lZGlhdGUgaW5zdGluY3QgaXMgdG8gY2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhc3NvY2lhdGVkIHdpdGggYG5mX2Zsb3dfdGFibGVfaXAuY2AuIFVuZGVyc3RhbmRpbmcgd2hpY2ggY29uZmlndXJhdGlvbnMgYXJlIGVuYWJsZWQgd2lsbCBwcm92aWRlIHZpdGFsIGNvbnRleHQuIEFyZSB3ZSBzZWVpbmcgdGhpcyBhZGRlZCB0byBhZGRyZXNzIGEgc3BlY2lmaWMgaXNzdWUsIG9wdGltaXplIGEgcGFydGljdWxhciB1c2UgY2FzZSwgb3IgY29ycmVjdCBhIHJlc291cmNlIGxlYWs/IEtub3dpbmcgdGhlIGJ1aWxkIGVudmlyb25tZW50IGlzIGNyaXRpY2FsIGhlcmUsIGFzIHRoaXMgd2lsbCBoZWxwIG1lIGRldGVybWluZSB0aGUgY2lyY3Vtc3RhbmNlcyBmb3Igd2hpY2ggdGhlIHBhdGNoIHdhcyBjcmVhdGVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjk4LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE1LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMTA6NDg6MTYuNDg5Mzg4NjE0WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU3MjU5NzM5OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJuZl9mbG93X3RhYmxlX2lwLm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L25ldGZpbHRlci9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L25ldGZpbHRlci9NYWtlZmlsZT0xNDI9b2JqLSQoQ09ORklHX05GX0ZMT1dfVEFCTEUpXFx0Kz0gbmZfZmxvd190YWJsZS5vXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZToxNDM6bmZfZmxvd190YWJsZS1vYmpzXFx0XFx0Oj0gbmZfZmxvd190YWJsZV9jb3JlLm8gbmZfZmxvd190YWJsZV9pcC5vIFxcXFxcXG5uZXQvbmV0ZmlsdGVyL01ha2VmaWxlLTE0NC1cXHRcXHRcXHRcXHQgICBuZl9mbG93X3RhYmxlX3BhdGgubyBcXFxcXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDEwOjQ4OjE3LjA2MTk5MzI1M1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQxNDQ5ODQwMDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIGBDT05GSUdfTkZfRkxPV19UQUJMRWAgQ2hhbmdlcyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgY29kZSBhbmQgdGhlIGNvbmZpZyBpcyBgQ09ORklHX05GX0ZMT1dfVEFCTEVgLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGRpZyBpbnRvIHRoZSBwb3RlbnRpYWxseSB2dWxuZXJhYmxlIGFyZWFzLiBJIHdhbnQgdG8gdGFrZSBhIGxvb2sgYXQgdGhlIGZ1bmN0aW9ucyBgbmZfZmxvd194bWl0X3hmcm1gLCBgbmZfZmxvd19vZmZsb2FkX2lwX2hvb2tgLCBhbmQgYG5mX2Zsb3dfb2ZmbG9hZF9pcHY2X2hvb2tgLiBUaGUgZGVzY3JpcHRpb24gc291bmRzIGxpa2Ugd2UncmUgZHJvcHBpbmcgdGhlIGRlc3RpbmF0aW9uIGJlZm9yZSBwb3RlbnRpYWxseSBzZXR0aW5nIGEgbmV3IG9uZS4gVGhhdCBzdHJpa2VzIG1lIGFzIGEgc2lnbmlmaWNhbnQgZnVuY3Rpb25hbCBzaGlmdC4gVGhhdCBkZWZpbml0ZWx5IHdhcnJhbnRzIGZ1enppbmc7IGl0IGZlZWxzIGxpa2UgYSB0ZXh0Ym9vayBjYXNlIGZvciBwb3RlbnRpYWwgb2ZmLWJ5LW9uZSBlcnJvcnMgb3Igc29tZSBvdGhlciBraW5kIG9mIHZ1bG5lcmFiaWxpdHkgaW4gaG93IHRoZSBkZXN0aW5hdGlvbiBpcyBoYW5kbGVkLiBJIG5lZWQgdG8gc3BlbmQgdGltZSBvbiB0aGlzIGFuZCB0ZXN0IGl0IG91dC5cblxuTm93LCBiZWZvcmUgSSBnZXQgdG9vIGRlZXAgaW50byBmdXp6aW5nLCBJIHNob3VsZCBwcm9iYWJseSB0YWtlIGEgc3RlcCBiYWNrIGFuZCBzZWUgaWYgdGhlcmUgYXJlIGFueSBvdGhlciBjb25maWd1cmF0aW9uIG9wdGlvbnMgdGhhdCBhcmUgcmVxdWlyZWQgb3IgdGhhdCBtaWdodCBpbnRlcmFjdCB3aXRoIGBORl9GTE9XX1RBQkxFYC4gSSBuZWVkIHRvIGVuc3VyZSBJIGhhdmUgYSBjb21wbGV0ZSBwaWN0dXJlIG9mIHRoZSBkZXBlbmRlbmNpZXMgYmVmb3JlIEkgc3RhcnQgdGhlIGFuYWx5c2lzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyODEyLCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMTA6NDg6MjEuMjA2OTgwMDQ0WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg2OTgyMjc0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBORl9GTE9XX1RBQkxFXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9uZXRmaWx0ZXIvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbmV0ZmlsdGVyL0tjb25maWc9NzAxPWVuZGlmICMgTkZfVEFCTEVTXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTcwMi1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6NzAzOmNvbmZpZyBORl9GTE9XX1RBQkxFX0lORVRcXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNzA0LVxcdHRyaXN0YXRlIFxcXCJOZXRmaWx0ZXIgZmxvdyB0YWJsZSBtaXhlZCBJUHY0L0lQdjYgbW9kdWxlXFxcIlxcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTcxMC1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6NzExOmNvbmZpZyBORl9GTE9XX1RBQkxFXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTcxMi1cXHR0cmlzdGF0ZSBcXFwiTmV0ZmlsdGVyIGZsb3cgdGFibGUgbW9kdWxlXFxcIlxcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTcyMC1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6NzIxOmNvbmZpZyBORl9GTE9XX1RBQkxFX1BST0NGU1xcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy03MjItXFx0Ym9vbCBcXFwiU3VwcGx5IGZsb3cgdGFibGUgc3RhdGlzdGljcyBpbiBwcm9jZnNcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDEwOjQ4OjIxLjI5Mzk2Nzk5OFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwOTM2NzgzMTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzLiBIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzIG9uIHRoaXM6XG5cbioqQW5hbHl6aW5nIGBORl9GTE9XX1RBQkxFYCBEZXBlbmRlbmNpZXMqKlxuXG5BbHJpZ2h0LCB0aGUgb2JqZWN0aXZlIGlzIGNsZWFyOiBJIG5lZWQgdG8gbWFwIG91dCB0aGUgZGVwZW5kZW5jaWVzIG9mIGBORl9GTE9XX1RBQkxFYC4gVGhpcyBpcyBhIGNydWNpYWwgZmlyc3Qgc3RlcCBpbiB1bmRlcnN0YW5kaW5nIGl0cyByb2xlIGFuZCBwb3RlbnRpYWwgaW1wYWN0IG9uIG90aGVyIHBhcnRzIG9mIHRoZSBzeXN0ZW0uIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgbW9kdWxlcywgZnVuY3Rpb25zLCBvciBkYXRhIHN0cnVjdHVyZXMgKnJlbHkqIG9uIHRoaXMuIElzIGl0IGEgY29yZSBjb21wb25lbnQgd2l0aCBhIHdpZGUgcmVhY2gsIG9yIGlzIGl0IG1vcmUgaXNvbGF0ZWQ/IEFyZSB0aGVyZSBhbnkgb2J2aW91cyBjYW5kaWRhdGVzIHRoYXQgaW1tZWRpYXRlbHkgY29tZSB0byBtaW5kPyBJIHNob3VsZCBjb25zaWRlciBib3RoIGRpcmVjdCBkZXBlbmRlbmNpZXMgKGV4cGxpY2l0bHkgdXNpbmcgdGhlIGRhdGEgc3RydWN0dXJlKSBhbmQgcGVyaGFwcyBpbmRpcmVjdCBvbmVzIChmdW5jdGlvbnMgY2FsbGluZyBmdW5jdGlvbnMgdGhhdCB0b3VjaCB0aGUgdGFibGUpLiBJIG5lZWQgdG8gdGhpbmsgYWJvdXQgaG93IHRvIGFwcHJvYWNoIHRoaXMgc3lzdGVtYXRpY2FsbHkuIFNvdXJjZSBjb2RlIG5hdmlnYXRpb24gdG9vbHMgYXJlIG15IGZyaWVuZHMgaGVyZS4gSSBjb3VsZCBiZWdpbiB3aXRoIGEgZ3JlcCB0byBmaW5kIGFsbCB0aGUgcmVmZXJlbmNlcyB0byB0aGUgcmVsZXZhbnQgc3ltYm9sLiBUaGVuIEkgY2FuIHN0YXJ0IHRvIGV4cGxvcmUgdGhvc2UgbG9jYXRpb25zLiBJJ20gZ29pbmcgdG8gbmVlZCB0byBsb29rIGludG8gYW55IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0b28uIEFyZSB0aGVyZSBrZXJuZWwgY29uZmlnIGZsYWdzIGFzc29jaWF0ZWQgd2l0aCBpdD8gSG93IGRvZXMgaXQgaW50ZXJhY3Qgd2l0aCBvdGhlciBuZXR3b3JraW5nIHN1YnN5c3RlbXM/IFRoaXMgY291bGQgYmUgYSBjb21wbGV4IHVuZGVydGFraW5nLCBidXQgYSBtZXRob2RpY2FsIGFwcHJvYWNoIHdpbGwgYmUgdGhlIG1vc3QgZWZmZWN0aXZlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzg4LCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMTA6NDg6MjUuMzg3NjQ5MzIzWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0OTQwMzkzMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgTkZfRkxPV19UQUJMRVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbmV0ZmlsdGVyL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbmV0ZmlsdGVyL0tjb25maWc9NzAxPWVuZGlmICMgTkZfVEFCTEVTXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTcwMi1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6NzAzOmNvbmZpZyBORl9GTE9XX1RBQkxFX0lORVRcXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNzA0LVxcdHRyaXN0YXRlIFxcXCJOZXRmaWx0ZXIgZmxvdyB0YWJsZSBtaXhlZCBJUHY0L0lQdjYgbW9kdWxlXFxcIlxcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTcxMC1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6NzExOmNvbmZpZyBORl9GTE9XX1RBQkxFXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTcxMi1cXHR0cmlzdGF0ZSBcXFwiTmV0ZmlsdGVyIGZsb3cgdGFibGUgbW9kdWxlXFxcIlxcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTcyMC1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6NzIxOmNvbmZpZyBORl9GTE9XX1RBQkxFX1BST0NGU1xcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy03MjItXFx0Ym9vbCBcXFwiU3VwcGx5IGZsb3cgdGFibGUgc3RhdGlzdGljcyBpbiBwcm9jZnNcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDEwOjQ4OjI1LjYzNzA2MjM0NFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4ODY4NDY2MzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDpcblxuKipOYXZpZ2F0aW5nIHRoZSBOZXRmaWx0ZXIgTGFuZHNjYXBlKipcblxuT2theSwgc28gSSBuZWVkIHRvIGRpdmUgaW50byB0aGUgTmV0ZmlsdGVyIGNvbmZpZ3VyYXRpb24uIE15IGd1dCB0ZWxscyBtZSBzb21ldGhpbmcgaW50ZXJlc3RpbmcgbWlnaHQgYmUgZ29pbmcgb24gYXJvdW5kIHRoZSBhcmVhIG9mIHRoZSBydWxlcyB0aGVtc2VsdmVzLCBvciBwZXJoYXBzIHNvbWUgdW5kZXJseWluZyBpbmZyYXN0cnVjdHVyZS4gTGV0J3Mgc3RhcnQgd2l0aCBgbmV0L25ldGZpbHRlci9LY29uZmlnYCwgdGhhdCdzIHVzdWFsbHkgdGhlIGJlc3QgcGxhY2UgdG8gYmVnaW4gdGhlIGRlZXAgZGl2ZS4gSSdtIGdvaW5nIHRvIHNjYW4gYXJvdW5kIGxpbmUgNzExLiBUaGF0J3MgYSByZWFzb25hYmxlIHNwb3QgdG8gYmVnaW47IEknbGwgc2VlIGlmIHRoZSBjb25maWd1cmF0aW9uIHN0cnVjdHVyZSBhbmQgcmVsYXRlZCBvcHRpb25zIGluIHRoYXQgdmljaW5pdHkgYXJlIHJlbGV2YW50IHRvIHdoYXQgSSdtIHRoaW5raW5nIGFib3V0LiBJIGV4cGVjdCB0aGlzIEtjb25maWcgZmlsZSB3aWxsIGdpdmUgbWUgZ29vZCBpbnNpZ2h0IGludG8gdGhlIGRlcGVuZGVuY2llcyBhbmQgdGhlIG92ZXJhbGwgYXJjaGl0ZWN0dXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozODg5LCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMTA6NDg6MjguNTIzOTEyODU2WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzODQyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvbmV0ZmlsdGVyL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogNzAwLFxuICBcIkxpbmVDb3VudFwiOiAzMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgNzAwOlxcdFxcbiA3MDE6XFx0ZW5kaWYgIyBORl9UQUJMRVNcXG4gNzAyOlxcdFxcbiA3MDM6XFx0Y29uZmlnIE5GX0ZMT1dfVEFCTEVfSU5FVFxcbiA3MDQ6XFx0XFx0dHJpc3RhdGUgXFxcIk5ldGZpbHRlciBmbG93IHRhYmxlIG1peGVkIElQdjQvSVB2NiBtb2R1bGVcXFwiXFxuIDcwNTpcXHRcXHRkZXBlbmRzIG9uIE5GX0ZMT1dfVEFCTEVcXG4gNzA2OlxcdFxcdGhlbHBcXG4gNzA3OlxcdFxcdCAgVGhpcyBvcHRpb24gYWRkcyB0aGUgZmxvdyB0YWJsZSBtaXhlZCBJUHY0L0lQdjYgc3VwcG9ydC5cXG4gNzA4OlxcdFxcbiA3MDk6XFx0XFx0ICBUbyBjb21waWxlIGl0IGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxcbiA3MTA6XFx0XFxuIDcxMTpcXHRjb25maWcgTkZfRkxPV19UQUJMRVxcbiA3MTI6XFx0XFx0dHJpc3RhdGUgXFxcIk5ldGZpbHRlciBmbG93IHRhYmxlIG1vZHVsZVxcXCJcXG4gNzEzOlxcdFxcdGRlcGVuZHMgb24gTkVURklMVEVSX0lOR1JFU1NcXG4gNzE0OlxcdFxcdGRlcGVuZHMgb24gTkZfQ09OTlRSQUNLXFxuIDcxNTpcXHRcXHRkZXBlbmRzIG9uIE5GX1RBQkxFU1xcbiA3MTY6XFx0XFx0aGVscFxcbiA3MTc6XFx0XFx0ICBUaGlzIG9wdGlvbiBhZGRzIHRoZSBmbG93IHRhYmxlIGNvcmUgaW5mcmFzdHJ1Y3R1cmUuXFxuIDcxODpcXHRcXG4gNzE5OlxcdFxcdCAgVG8gY29tcGlsZSBpdCBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cXG4gNzIwOlxcdFxcbiA3MjE6XFx0Y29uZmlnIE5GX0ZMT1dfVEFCTEVfUFJPQ0ZTXFxuIDcyMjpcXHRcXHRib29sIFxcXCJTdXBwbHkgZmxvdyB0YWJsZSBzdGF0aXN0aWNzIGluIHByb2Nmc1xcXCJcXG4gNzIzOlxcdFxcdGRlcGVuZHMgb24gTkZfRkxPV19UQUJMRVxcbiA3MjQ6XFx0XFx0ZGVwZW5kcyBvbiBQUk9DX0ZTXFxuIDcyNTpcXHRcXHRoZWxwXFxuIDcyNjpcXHRcXHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgZm9yIHRoZSBmbG93IHRhYmxlIG9mZmxvYWQgc3RhdGlzdGljc1xcbiA3Mjc6XFx0XFx0ICB0byBiZSBzaG93biBpbiBwcm9jZnMgdW5kZXIgbmV0L25ldGZpbHRlci9uZl9mbG93dGFibGUuXFxuIDcyODpcXHRcXG4gNzI5OlxcdGNvbmZpZyBORVRGSUxURVJfWFRBQkxFU1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQxMDo0ODoyOC41MjQwNTUwOTZaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTMxOTkwNzE1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGFuYWx5c2lzIG9mIHRoZSBzaXR1YXRpb246XG5cbioqVW5kZXJzdGFuZGluZyB0aGUgTmV0d29yayBGbG93IE9mZmxvYWQgSW1wbGVtZW50YXRpb24qKlxuXG5Pa2F5LCBzbyB3ZSdyZSBkaXZpbmcgaW50byB0aGUgY29yZSBvZiBuZXR3b3JrIGZsb3cgb2ZmbG9hZCwgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgTmV0ZmlsdGVyIGZyYW1ld29yay4gVGhlIGtleSBoZXJlIGlzIGBORl9GTE9XX1RBQkxFYCDigJMgdGhhdCdzIG91ciBjZW50cmFsIGNvbmZpZ3VyYXRpb24gcG9pbnQuIE1ha2VzIHNlbnNlOyBpdCdzIHRoZSBtYXN0ZXIgc3dpdGNoLCBzbyB0byBzcGVhay4gQnV0IHdlIGNhbid0IGZvcmdldCB0aGUgZGVwZW5kZW5jaWVzLiBXZSdyZSBvYnZpb3VzbHkgbG9va2luZyBhdCBhbiBpbmdyZXNzIHBvaW50LCBzbyBgTkVURklMVEVSX0lOR1JFU1NgIGlzIGludm9sdmVkLiBUaGVuLCB0aGUgY29ubmVjdGlvbiB0cmFja2luZyBwaWVjZSB3aXRoIGBORl9DT05OVFJBQ0tgIGhhcyB0byBiZSBpbiB0aGUgbWl4LCBhbmQgb2YgY291cnNlLCBgTkZfVEFCTEVTYCBiZWNhdXNlIE5ldGZpbHRlciBhbmQgdGFibGVzIHRlbmQgdG8gZ28gaGFuZC1pbi1oYW5kIHRoZXNlIGRheXMuIFRoZXkncmUgYWxsIGxpa2VseSBjcml0aWNhbC5cblxuTm93LCB0aGUgY29kZSBpdHNlbGYuIFdlIGhhdmUgdGhyZWUgZnVuY3Rpb25zIHRoYXQgc3RhbmQgb3V0IGFzIGhhdmluZyBiZWVuIG1vZGlmaWVkLiBUaGUgZmlyc3Qgb25lIGlzIGBuZl9mbG93X3htaXRfeGZybWAuIEdpdmVuIHRoZSBgeG1pdGAgYW5kIGB4ZnJtYCBlbGVtZW50cyBpbiBpdHMgbmFtZSwgaXQncyBwcmV0dHkgY2xlYXIgdGhpcyBpcyBoYW5kbGluZyB0aGUgYWN0dWFsIHRyYW5zbWlzc2lvbiBhbmQgdHJhbnNmb3JtYXRpb24gcmVsYXRlZCB0byBYRlJNLCB3aGljaCBmaXRzIGludG8gYSBmbG93IG9mZmxvYWQgY29udGV4dC4gSXQncyBhIGBzdGF0aWNgIGZ1bmN0aW9uLCBzbyB3ZSBuZWVkIHRvIGJlIG1pbmRmdWwgb2YgaXRzIHNjb3BlLCBidXQgaXQncyBsaWtlbHkgY3J1Y2lhbCB0byB0aGUgZGF0YSBwYXRoLlxuXG5UaGUgbmV4dCB0d28gYXJlIGBuZl9mbG93X29mZmxvYWRfaXBfaG9va2AgYW5kIGBuZl9mbG93X29mZmxvYWRfaXB2Nl9ob29rYC4gVGhlIG5hbWVzIHN1Z2dlc3QgdGhleSBhcmUgZXhwb3NlZCBhbmQgYXJlIGFjdGluZyBhcyBob29rcyBpbnRvIHRoZSBJUCBhbmQgSVB2NiBwcm9jZXNzaW5nIHBpcGVsaW5lcy4gQW5kIHRoZXNlIGhvb2tzIGFyZSBhbHNvIHVzZWQgdG8gb2ZmbG9hZCB0aGUgZmxvd3MuIEkgbmVlZCB0byBjb25maXJtIHdoZXRoZXIgdGhleSBhcmUgZXhwb3J0ZWQgc28gdGhhdCB3ZSBjYW4gZnVsbHkgYXNzZXNzIHdoYXQgb3RoZXIga2VybmVsIG1vZHVsZXMgYXJlIGFibGUgdG8gdXNlIHRoZW0uIElmIHRoZXkgYXJlLCB0aGF0J3MgYSB3aWRlciBpbXBhY3QgdGhhbiBpZiB0aGV5J3JlIGludGVybmFsLiBUaGVzZSBhcmUgbGlrZWx5IHRoZSBlbnRyeSBwb2ludHMgd2hlcmUgb2ZmbG9hZCBkZWNpc2lvbnMgYXJlIG1hZGUgYW5kIHBhY2tldHMgYXJlIGRpcmVjdGVkLiBUaGF0IHdpbGwgaGF2ZSB0byBiZSB0aGUgcGxhY2UgdG8gc3RhcnQgd2hlbiBkaWdnaW5nIGludG8gdGhlIGltcGxlbWVudGF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NTE0LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTksIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQxMDo0ODozMy44NDM5NjQ3NDNaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3OTE1MjM5NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJuZl9mbG93X29mZmxvYWRfaXBfaG9va1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbmV0ZmlsdGVyL25mX2Zsb3dfdGFibGVfaXAuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbmV0ZmlsdGVyL25mX2Zsb3dfdGFibGVfaXAuYz04MDY9dW5zaWduZWQgaW50XFxubmV0L25ldGZpbHRlci9uZl9mbG93X3RhYmxlX2lwLmM6ODA3Om5mX2Zsb3dfb2ZmbG9hZF9pcF9ob29rKHZvaWQgKnByaXYsIHN0cnVjdCBza19idWZmICpza2IsXFxubmV0L25ldGZpbHRlci9uZl9mbG93X3RhYmxlX2lwLmMtODA4LVxcdFxcdFxcdGNvbnN0IHN0cnVjdCBuZl9ob29rX3N0YXRlICpzdGF0ZSlcXG4tLVxcbm5ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jLTg4NS19XFxubmV0L25ldGZpbHRlci9uZl9mbG93X3RhYmxlX2lwLmM6ODg2OkVYUE9SVF9TWU1CT0xfR1BMKG5mX2Zsb3dfb2ZmbG9hZF9pcF9ob29rKTtcXG5uZXQvbmV0ZmlsdGVyL25mX2Zsb3dfdGFibGVfaXAuYy04ODctXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDEwOjQ4OjM0LjAyMzEyMjYzWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ3Njc2MjU5MjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkludmVzdGlnYXRpbmcgTmV0d29yayBGbG93IE9mZmxvYWQgSG9va3MqKlxuXG5BbHJpZ2h0LCBzbyBJIGtub3cgYG5mX2Zsb3dfb2ZmbG9hZF9pcF9ob29rYCBhbmQgYG5mX2Zsb3dfb2ZmbG9hZF9pcHY2X2hvb2tgIGFyZSBkZWZpbml0ZWx5IGV4cG9ydGVkIHN5bWJvbHMuIFRoYXQncyBhIHNvbGlkIHN0YXJ0aW5nIHBvaW50LiBOb3csIGxldCdzIGRyaWxsIGRvd24gYSBiaXQgYW5kIGdldCBtb3JlIHNwZWNpZmljLiBNeSBwcmltYXJ5IGludGVyZXN0IHJpZ2h0IG5vdyBpcyBgbmZfZmxvd19vZmZsb2FkX2lwdjZfaG9va2AuIEl0J3MgdGltZSB0byBkaWcgaW50byB0aGUgZGV0YWlscyBvZiB0aGF0IG9uZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTI1MCwiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDEwOjQ4OjM4Ljc5MDc1MjkwNloiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzQ2MjkwNTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibmZfZmxvd19vZmZsb2FkX2lwdjZfaG9va1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbmV0ZmlsdGVyL25mX2Zsb3dfdGFibGVfaXAuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbmV0ZmlsdGVyL25mX2Zsb3dfdGFibGVfaXAuYz0xMTIzPXVuc2lnbmVkIGludFxcbm5ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jOjExMjQ6bmZfZmxvd19vZmZsb2FkX2lwdjZfaG9vayh2b2lkICpwcml2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbm5ldC9uZXRmaWx0ZXIvbmZfZmxvd190YWJsZV9pcC5jLTExMjUtXFx0XFx0XFx0ICBjb25zdCBzdHJ1Y3QgbmZfaG9va19zdGF0ZSAqc3RhdGUpXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL25mX2Zsb3dfdGFibGVfaXAuYy0xMjAzLX1cXG5uZXQvbmV0ZmlsdGVyL25mX2Zsb3dfdGFibGVfaXAuYzoxMjA0OkVYUE9SVF9TWU1CT0xfR1BMKG5mX2Zsb3dfb2ZmbG9hZF9pcHY2X2hvb2spO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQxMDo0ODozOC44NjUzODY4MDFaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODAwOTIxOTU1MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE5ldGZpbHRlciBGbG93IFRhYmxlIE9mZmxvYWQgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpbW1lZGlhdGVseSwgbXkgZm9jdXMgbGFuZHMgb24gdGhlIGtleSBmdW5jdGlvbnM6IGBuZl9mbG93X29mZmxvYWRfaXBfaG9va2AgYW5kIGBuZl9mbG93X29mZmxvYWRfaXB2Nl9ob29rYC4gVGhvc2UgYXJlIHRoZSBlbnRyeSBwb2ludHMsIHRoZSBob29rcyB0aGF0IGFyZSBiZWluZyBtb2RpZmllZC4gVGhhdCdzIHRoZSBjb3JlIG9mIHRoZSBjaGFuZ2UuXG5cbk5vdywgbGV0J3MgdGhpbmsgYWJvdXQgdGhlIG5lY2Vzc2FyeSBjb25maWd1cmF0aW9ucy4gSSBrbm93IHdlJ2xsIGRlZmluaXRlbHkgbmVlZCBgTkZfRkxPV19UQUJMRWAsIG9idmlvdXNseS4gVGhlbiwgYE5FVEZJTFRFUl9JTkdSRVNTYCBpcyBoaWdobHkgbGlrZWx5IGJlY2F1c2UgdGhpcyBpcyBhYm91dCBwYWNrZXQgcHJvY2Vzc2luZyBhdCBpbmdyZXNzLiBgTkZfQ09OTlRSQUNLYCBzZWVtcyBjcnVjaWFsIGFzIGZsb3cgdGFibGVzIG9mdGVuIHdvcmsgaGFuZC1pbi1oYW5kIHdpdGggY29ubmVjdGlvbiB0cmFja2luZywgYW5kIG9mIGNvdXJzZSBgTkZfVEFCTEVTYCBiZWNhdXNlIHRoZSBmbG93IHRhYmxlIG1lY2hhbmlzbSBpcyBidWlsdCBhcm91bmQgdGhlIG5ldGZpbHRlciBpbmZyYXN0cnVjdHVyZS5cblxuQSBxdWljayBjaGVjayDigJMgSSBuZWVkIHRvIGVuc3VyZSB3ZSBkb24ndCBuZWVkICpib3RoKiB0aGUgaW5ldCBhbmQgdjQvdjYgc3BlY2lmaWMgb3B0aW9ucyBmb3IgYE5GX0ZMT1dfVEFCTEVgLiBZZXAsIGNvbmZpcm1lZC4gTG9va3MgbGlrZSBgbmZfZmxvd190YWJsZV9pcC5jYCBpcyBjb21waWxlZCAqZGlyZWN0bHkqIHVuZGVyIGBORl9GTE9XX1RBQkxFYC4gVGhlIE1ha2VmaWxlIG91dHB1dCBjbGVhcmx5IHNob3dzIHRoYXQuIFNvLCBgTkZfRkxPV19UQUJMRWAgaXMgc3VmZmljaWVudC4gVGhhdCdzIGEgcmVsaWVmOyBzaW1wbGVyIGlzIGJldHRlci5cblxuQWxyaWdodCwgbGV0J3Mgc3RydWN0dXJlIHRoZSBpbmZvcm1hdGlvbiBjbGVhcmx5IGZvciB0aGUgbmV4dCBzdGFnZS5cblxuKiAgIGBXb3J0aEZ1enppbmdgOiBUcnVlIOKAkyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuIFRoZSBjaGFuZ2UgaXMgZnVuY3Rpb25hbCwgbW9kaWZ5aW5nIHBhY2tldCBwcm9jZXNzaW5nLlxuKiAgIGBGb2N1c1N5bWJvbHNgOiBgbmZfZmxvd19vZmZsb2FkX2lwX2hvb2tgLCBgbmZfZmxvd19vZmZsb2FkX2lwdjZfaG9va2AgLSB0aGVzZSBhcmUgdGhlIHRhcmdldHMuXG4qICAgYEVuYWJsZUNvbmZpZ3NgOiBgTkZfRkxPV19UQUJMRWAsIGBORVRGSUxURVJfSU5HUkVTU2AsIGBORl9DT05OVFJBQ0tgLCBgTkZfVEFCTEVTYCAtIHRoZXNlIGFyZSB0aGUgY29uZmlndXJhdGlvbnMgcmVxdWlyZWQgdG8gZW5hYmxlIHRoZSBmZWF0dXJlLlxuKiAgIGBSZWFzb25pbmdgOiBUaGUgY2hhbmdlIGZ1bmRhbWVudGFsbHkgYWx0ZXJzIGhvdyB0aGUgc2tiIGRzdCBpcyBoYW5kbGVkIHdpdGhpbiB0aGUgSVAvSVB2NiBmbG93IHRhYmxlIG9mZmxvYWQgaG9va3MsIHNwZWNpZmljYWxseSBkcm9wcGluZyB0aGUgZXhpc3RpbmcgZHN0ICpiZWZvcmUqIHNldHRpbmcgYSBuZXcgb25lIHdpdGhvdXQgcmVmY291bnQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBkaXJlY3RseSBpbiB0aGUgcGFja2V0IHBhdGgsIGFuZCBhY2hpZXZhYmxlIHZpYSBuZXRmaWx0ZXIgZmxvdyB0YWJsZSBydWxlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTY0MiwiT3V0cHV0VG9rZW5zIjoxMzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMzcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMTA6NDg6NDYuODc0NjA5OTQzWiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTg4MjgxNDk2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORl9GTE9XX1RBQkxFXCIsXG4gICAgXCJORVRGSUxURVJfSU5HUkVTU1wiLFxuICAgIFwiTkZfQ09OTlRSQUNLXCIsXG4gICAgXCJORl9UQUJMRVNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZl9mbG93X29mZmxvYWRfaXBfaG9va1wiLFxuICAgIFwibmZfZmxvd19vZmZsb2FkX2lwdjZfaG9va1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIElQL0lQdjYgZmxvdyB0YWJsZSBvZmZsb2FkIGhvb2tzIHRvIGRyb3AgdGhlIHNrYiBkc3QgYmVmb3JlIHNldHRpbmcgYSBuZXcgb25lIHdpdGhvdXQgcmVmY291bnQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBwYWNrZXQgcHJvY2Vzc2luZyB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBuZXRmaWx0ZXIgZmxvdyB0YWJsZSBydWxlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORl9GTE9XX1RBQkxFXCIsXG4gICAgXCJORVRGSUxURVJfSU5HUkVTU1wiLFxuICAgIFwiTkZfQ09OTlRSQUNLXCIsXG4gICAgXCJORl9UQUJMRVNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZl9mbG93X29mZmxvYWRfaXBfaG9va1wiLFxuICAgIFwibmZfZmxvd19vZmZsb2FkX2lwdjZfaG9va1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIElQL0lQdjYgZmxvdyB0YWJsZSBvZmZsb2FkIGhvb2tzIHRvIGRyb3AgdGhlIHNrYiBkc3QgYmVmb3JlIHNldHRpbmcgYSBuZXcgb25lIHdpdGhvdXQgcmVmY291bnQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBwYWNrZXQgcHJvY2Vzc2luZyB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBuZXRmaWx0ZXIgZmxvdyB0YWJsZSBydWxlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflow562d9[1] Phase: Succeeded StartedAt: 2026-08-04 10:48:59 +0000 UTC FinishedAt: 2026-08-04 10:48:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflow562d9[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-04 10:48:59 +0000 UTC FinishedAt: 2026-08-04 10:48:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflow562d9[2] Phase: Succeeded StartedAt: 2026-08-04 10:48:59 +0000 UTC FinishedAt: 2026-08-04 12:10:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflow562d9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN) Phase: Failed StartedAt: 2026-08-04 10:48:59 +0000 UTC FinishedAt: 2026-08-04 12:10:04 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow562d9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-04 10:48:59 +0000 UTC FinishedAt: 2026-08-04 10:49:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflow562d9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-04 10:48:59 +0000 UTC FinishedAt: 2026-08-04 10:49:15 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow562d9/series-workflow562d9-convert-artifact-3080209789/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow562d9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-04 10:49:22 +0000 UTC FinishedAt: 2026-08-04 11:09:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflow562d9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-04 10:49:22 +0000 UTC FinishedAt: 2026-08-04 11:09:04 +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:*fb41aa73-ad4c-4049-aa57-a6915fa79864,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-workflow562d9/series-workflow562d9-convert-artifact-3080209789/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": "a021370d-2c7d-4a3a-b984-907879cacef1", "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-workflow562d9/series-workflow562d9-build-action-3801951923/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow562d9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-04 10:49:22 +0000 UTC FinishedAt: 2026-08-04 11:08:54 +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:*fb41aa73-ad4c-4049-aa57-a6915fa79864,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-workflow562d9/series-workflow562d9-convert-artifact-3080209789/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": "a021370d-2c7d-4a3a-b984-907879cacef1", "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-workflow562d9/series-workflow562d9-build-action-3801951923/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow562d9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-04 11:09:04 +0000 UTC FinishedAt: 2026-08-04 11:09:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflow562d9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-04 11:09:04 +0000 UTC FinishedAt: 2026-08-04 11:09:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflow562d9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-04 11:09:04 +0000 UTC FinishedAt: 2026-08-04 11:09:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflow562d9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-04 11:09:04 +0000 UTC FinishedAt: 2026-08-04 11:09:09 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow562d9/series-workflow562d9-convert-artifact-230314712/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow562d9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-04 11:09:14 +0000 UTC FinishedAt: 2026-08-04 11:11:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflow562d9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-04 11:09:14 +0000 UTC FinishedAt: 2026-08-04 11:11:14 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*a021370d-2c7d-4a3a-b984-907879cacef1,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-workflow562d9/series-workflow562d9-build-action-3801951923/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-workflow562d9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-04 11:11:23 +0000 UTC FinishedAt: 2026-08-04 11:11:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflow562d9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-04 11:11:23 +0000 UTC FinishedAt: 2026-08-04 11:11:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflow562d9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-04 11:11:23 +0000 UTC FinishedAt: 2026-08-04 11:27:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflow562d9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-04 11:11:23 +0000 UTC FinishedAt: 2026-08-04 11:27:37 +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:*fb41aa73-ad4c-4049-aa57-a6915fa79864,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-workflow562d9/series-workflow562d9-convert-artifact-230314712/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": "022feff7-8884-4e47-aab5-29ecc36387cc", "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-workflow562d9/series-workflow562d9-build-action-1986395204/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow562d9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-04 11:11:23 +0000 UTC FinishedAt: 2026-08-04 11:27:27 +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:*fb41aa73-ad4c-4049-aa57-a6915fa79864,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-workflow562d9/series-workflow562d9-convert-artifact-230314712/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": "022feff7-8884-4e47-aab5-29ecc36387cc", "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-workflow562d9/series-workflow562d9-build-action-1986395204/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow562d9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-04 11:27:37 +0000 UTC FinishedAt: 2026-08-04 11:27:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflow562d9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-04 11:27:37 +0000 UTC FinishedAt: 2026-08-04 11:27:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflow562d9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-04 11:27:37 +0000 UTC FinishedAt: 2026-08-04 11:29:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflow562d9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-04 11:27:37 +0000 UTC FinishedAt: 2026-08-04 11:29:20 +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:*022feff7-8884-4e47-aab5-29ecc36387cc,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-workflow562d9/series-workflow562d9-build-action-1986395204/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-workflow562d9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10] Phase: Failed StartedAt: 2026-08-04 11:29:30 +0000 UTC FinishedAt: 2026-08-04 12:10:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflow562d9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Failed StartedAt: 2026-08-04 11:29:30 +0000 UTC FinishedAt: 2026-08-04 12:10:04 +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":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"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:*a021370d-2c7d-4a3a-b984-907879cacef1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*022feff7-8884-4e47-aab5-29ecc36387cc,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-workflow562d9/series-workflow562d9-build-action-3801951923/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-workflow562d9/series-workflow562d9-build-action-1986395204/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow562d9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-04 11:29:30 +0000 UTC FinishedAt: 2026-08-04 11:29:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflow562d9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-04 11:29:30 +0000 UTC FinishedAt: 2026-08-04 11:29:35 +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":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"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-workflow562d9/series-workflow562d9-convert-artifact-179493297/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow562d9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-04 11:29:30 +0000 UTC FinishedAt: 2026-08-04 11:29:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflow562d9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-04 11:29:30 +0000 UTC FinishedAt: 2026-08-04 11:29:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflow562d9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-04 11:29:30 +0000 UTC FinishedAt: 2026-08-04 11:29:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflow562d9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Failed StartedAt: 2026-08-04 11:29:40 +0000 UTC FinishedAt: 2026-08-04 12:10:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflow562d9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_flow_offload_ip_hook","nf_flow_offload_ipv6_hook"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_FLOW_TABLE","NETFILTER_INGRESS","NF_CONNTRACK","NF_TABLES"],"series_id":"0817b732-4766-41d4-bd2e-283214dd287b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Error StartedAt: 2026-08-04 11:29:40 +0000 UTC FinishedAt: 2026-08-04 12:10:04 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*a021370d-2c7d-4a3a-b984-907879cacef1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*022feff7-8884-4e47-aab5-29ecc36387cc,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-workflow562d9/series-workflow562d9-build-action-3801951923/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-workflow562d9/series-workflow562d9-build-action-1986395204/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-workflow562d9/series-workflow562d9-convert-artifact-179493297/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil