Name: series-workflowmgx6f Phase: Succeeded StartedAt: 2026-07-31 23:50:18 +0000 UTC FinishedAt: 2026-08-01 04:18:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmgx6f[0] Phase: Succeeded StartedAt: 2026-07-31 23:50:18 +0000 UTC FinishedAt: 2026-08-01 00:10:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmgx6f[0].run-triage Phase: Succeeded StartedAt: 2026-07-31 23:50:18 +0000 UTC FinishedAt: 2026-08-01 00:10:58 +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": "2195424c3da2ef1829a63b807e3a900a90e57d85", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IP_SCTP" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "2195424c3da2ef1829a63b807e3a900a90e57d85", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IP_SCTP" ], "series_id": "9b9302d7-cb65-4392-a788-6db194b26f0c" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "sctp_process_strreset_resp", "sctp_sf_do_reconf" ], "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+CgkJCTx0ZD4yMDI2LzA4LzAxIDAwOjEwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lQX1NDVFAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcCYjMzQ7LAogICAgJiMzNDtzY3RwX3NmX2RvX3JlY29uZiYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIHZhbGlkYXRpb24gY2hlY2tzIGluIGBzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcGAgdG8gaGFuZGxlIG91dC1vZi1zZXF1ZW5jZSBzdHJlYW0gcmVzZXQgcmVzcG9uc2VzIGFuZCBwcmV2ZW50IG91dC1vZi1ib3VuZHMgc3RyZWFtIGNvdW50cyB3aGVuIHByb2Nlc3NpbmcgYFNDVFBfU1RSUkVTRVRfQUREX09VVF9TVFJFQU1TYCByZXNwb25zZXMuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIFNDVFAgbG9naWMgdGhhdCBpcyByZWFjaGFibGUgZnJvbSBuZXR3b3JrIGlucHV0IGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDAwOjEwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgYTViMzE4ZTkwZDM2ZDBmMTE0ZTEzZTEwOWIwNzBmYTIwMTJkMGQ4MFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgQXVnIDEgMDA6MTA6MjIgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc3RyZWFtLmMgYi9uZXQvc2N0cC9zdHJlYW0uY1xuaW5kZXggMzRmZmU2Yzk0NWE0Yi4uNzIyOGM3ZWQ5N2M0NiAxMDA2NDRcbi0tLSBhL25ldC9zY3RwL3N0cmVhbS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvc2N0cC9zdHJlYW0uY1xuQEAgLTkyNyw2ICYjNDM7OTI3LDE0IEBAIHN0cnVjdCBzY3RwX2NodW5rICpzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcChcbiBcdHN0cnVjdCBzY3RwX3BhcmFtaGRyICpyZXE7XG4gXHRfX3UzMiByZXN1bHQ7XG4gXG4mIzQzO1x0LyogUHJvY2VzcyByZXNwb25zZXMgaW4gcmVxdWVzdCBzZXF1ZW5jZS4gIHN0cnJlc2V0X291dHNlcSBhZHZhbmNlcyBhZnRlclxuJiM0MztcdCAqIGVhY2ggYWNjZXB0ZWQgcmVzcG9uc2UsIHNvIHRoaXMgYWxzbyByZWplY3RzIGR1cGxpY2F0ZSByZXNwb25zZXMgd2hpbGVcbiYjNDM7XHQgKiBhbm90aGVyIHBhcmFtZXRlciBmcm9tIHRoZSBzYW1lIFJFQ09ORiBjaHVuayByZW1haW5zIG91dHN0YW5kaW5nLlxuJiM0MztcdCAqL1xuJiM0MztcdGlmICghYXNvYy1cdTAwM2VzdHJyZXNldF9vdXRzdGFuZGluZyB8fFxuJiM0MztcdCAgICByZXNwLVx1MDAzZXJlc3BvbnNlX3NlcSAhPSBodG9ubChhc29jLVx1MDAzZXN0cnJlc2V0X291dHNlcSkpXG4mIzQzO1x0XHRyZXR1cm4gTlVMTDtcbiYjNDM7XG4gXHRyZXEgPSBzY3RwX2NodW5rX2xvb2t1cF9zdHJyZXNldF9wYXJhbShhc29jLCByZXNwLVx1MDAzZXJlc3BvbnNlX3NlcSwgMCk7XG4gXHRpZiAoIXJlcSlcbiBcdFx0cmV0dXJuIE5VTEw7XG5AQCAtMTA0Nyw2ICYjNDM7MTA1NSw4IEBAIHN0cnVjdCBzY3RwX2NodW5rICpzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcChcbiBcbiBcdFx0YWRkc3RybSA9IChzdHJ1Y3Qgc2N0cF9zdHJyZXNldF9hZGRzdHJtICopcmVxO1xuIFx0XHRudW1zID0gbnRvaHMoYWRkc3RybS1cdTAwM2VudW1iZXJfb2Zfc3RyZWFtcyk7XG4mIzQzO1x0XHRpZiAobnVtcyBcdTAwM2Ugc3RyZWFtLVx1MDAzZW91dGNudClcbiYjNDM7XHRcdFx0cmV0dXJuIE5VTEw7XG4gXHRcdG51bWJlciA9IHN0cmVhbS1cdTAwM2VvdXRjbnQgLSBudW1zO1xuIFxuIFx0XHRpZiAocmVzdWx0ID09IFNDVFBfU1RSUkVTRVRfUEVSRk9STUVEKSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDA6MTA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lQX1NDVFAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcCYjMzQ7LAogICAgJiMzNDtzY3RwX3NmX2RvX3JlY29uZiYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIHZhbGlkYXRpb24gY2hlY2tzIGluIGBzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcGAgdG8gaGFuZGxlIG91dC1vZi1zZXF1ZW5jZSBzdHJlYW0gcmVzZXQgcmVzcG9uc2VzIGFuZCBwcmV2ZW50IG91dC1vZi1ib3VuZHMgc3RyZWFtIGNvdW50cyB3aGVuIHByb2Nlc3NpbmcgYFNDVFBfU1RSUkVTRVRfQUREX09VVF9TVFJFQU1TYCByZXNwb25zZXMuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIFNDVFAgbG9naWMgdGhhdCBpcyByZWFjaGFibGUgZnJvbSBuZXR3b3JrIGlucHV0IGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgYTViMzE4ZTkwZDM2ZDBmMTE0ZTEzZTEwOWIwNzBmYTIwMTJkMGQ4MApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTYXQgQXVnIDEgMDA6MTA6MjIgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvc2N0cC9zdHJlYW0uYyBiL25ldC9zY3RwL3N0cmVhbS5jCmluZGV4IDM0ZmZlNmM5NDVhNGIuLjcyMjhjN2VkOTdjNDYgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3N0cmVhbS5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC9zY3RwL3N0cmVhbS5jCkBAIC05MjcsNiAmIzQzOzkyNywxNCBAQCBzdHJ1Y3Qgc2N0cF9jaHVuayAqc2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3AoCiAJc3RydWN0IHNjdHBfcGFyYW1oZHIgKnJlcTsKIAlfX3UzMiByZXN1bHQ7CiAKJiM0MzsJLyogUHJvY2VzcyByZXNwb25zZXMgaW4gcmVxdWVzdCBzZXF1ZW5jZS4gIHN0cnJlc2V0X291dHNlcSBhZHZhbmNlcyBhZnRlcgomIzQzOwkgKiBlYWNoIGFjY2VwdGVkIHJlc3BvbnNlLCBzbyB0aGlzIGFsc28gcmVqZWN0cyBkdXBsaWNhdGUgcmVzcG9uc2VzIHdoaWxlCiYjNDM7CSAqIGFub3RoZXIgcGFyYW1ldGVyIGZyb20gdGhlIHNhbWUgUkVDT05GIGNodW5rIHJlbWFpbnMgb3V0c3RhbmRpbmcuCiYjNDM7CSAqLwomIzQzOwlpZiAoIWFzb2MtJmd0O3N0cnJlc2V0X291dHN0YW5kaW5nIHx8CiYjNDM7CSAgICByZXNwLSZndDtyZXNwb25zZV9zZXEgIT0gaHRvbmwoYXNvYy0mZ3Q7c3RycmVzZXRfb3V0c2VxKSkKJiM0MzsJCXJldHVybiBOVUxMOwomIzQzOwogCXJlcSA9IHNjdHBfY2h1bmtfbG9va3VwX3N0cnJlc2V0X3BhcmFtKGFzb2MsIHJlc3AtJmd0O3Jlc3BvbnNlX3NlcSwgMCk7CiAJaWYgKCFyZXEpCiAJCXJldHVybiBOVUxMOwpAQCAtMTA0Nyw2ICYjNDM7MTA1NSw4IEBAIHN0cnVjdCBzY3RwX2NodW5rICpzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcCgKIAogCQlhZGRzdHJtID0gKHN0cnVjdCBzY3RwX3N0cnJlc2V0X2FkZHN0cm0gKilyZXE7CiAJCW51bXMgPSBudG9ocyhhZGRzdHJtLSZndDtudW1iZXJfb2Zfc3RyZWFtcyk7CiYjNDM7CQlpZiAobnVtcyAmZ3Q7IHN0cmVhbS0mZ3Q7b3V0Y250KQomIzQzOwkJCXJldHVybiBOVUxMOwogCQludW1iZXIgPSBzdHJlYW0tJmd0O291dGNudCAtIG51bXM7CiAKIAkJaWYgKHJlc3VsdCA9PSBTQ1RQX1NUUlJFU0VUX1BFUkZPUk1FRCkgewo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjU1CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMTgyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlNDVFAgU3RyZWFtIFJlc2V0IFJlc3BvbnNlIFBhdGNoIEFuYWx5c2lzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGluIGBuZXQvc2N0cC9zdHJlYW0uY2AsIHNwZWNpZmljYWxseSB0aGUgYHNjdHBfcHJvY2Vzc19zdHJyZXNldF9yZXNwYCBmdW5jdGlvbi4gTXkgaW5pdGlhbCBpbXByZXNzaW9uIGlzIHRoYXQgdGhpcyBpcyBkZWFsaW5nIHdpdGggc29tZSBjcnVjaWFsIGVycm9yIGhhbmRsaW5nIGluIHRoZSBTQ1RQIHN0cmVhbSByZXNldCByZXNwb25zZSBwcm9jZXNzaW5nIGxvZ2ljLiBJIHNlZSB0aGV5JiMzOTt2ZSBhZGRlZCBhIGNoZWNrIOKAkyBhICp2ZXJ5KiBpbXBvcnRhbnQgb25lLCBpdCBzZWVtcy4gVGhlIGZpcnN0IGFkZGl0aW9uLCBgaWYgKCFhc29jLSZndDtzdHJyZXNldF9vdXRzdGFuZGluZyB8fCByZXNwLSZndDtyZXNwb25zZV9zZXEgIT0gaHRvbmwoYXNvYy0mZ3Q7c3RycmVzZXRfb3V0c2VxKSkgcmV0dXJuIE5VTEw7YCwgbG9va3MgbGlrZSBpdCYjMzk7cyBndWFyZGluZyBhZ2FpbnN0IHByb2Nlc3NpbmcgYSByZXNwb25zZSB0aGF0JiMzOTtzIGVpdGhlciB1bnNvbGljaXRlZCBvciBvdXQgb2Ygc2VxdWVuY2UuIFRoYXQmIzM5O3MgZ29vZCBkZWZlbnNpdmUgcHJvZ3JhbW1pbmc7IHlvdSAqaGF2ZSogdG8gdmFsaWRhdGUgdGhvc2UgdGhpbmdzLiAKClRoZSBzZWNvbmQgY2hlY2ssIGBpZiAobnVtcyAmZ3Q7IHN0cmVhbS0mZ3Q7b3V0Y250KSByZXR1cm4gTlVMTDtgIGlzIHRoZSBtb3JlIGludGVyZXN0aW5nIG9uZSwgdGhvdWdoLiBJdCYjMzk7cyByZWxhdGVkIHRvIHRoZSBgc2N0cF9zdHJyZXNldF9hZGRzdHJtYCBzdHJ1Y3R1cmUsIGFuZCBpdCBsb29rcyBsaWtlIGl0JiMzOTtzIHRoZXJlIHRvIHByZXZlbnQgYSBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93IG9yIG90aGVyIG1lbW9yeSBjb3JydXB0aW9uLiBgbnVtc2AgcmVwcmVzZW50cyB0aGUgbnVtYmVyIG9mIHN0cmVhbXMgYmVpbmcgYWRkZWQsIGFuZCBpdCBsb29rcyBsaWtlIHdlJiMzOTtyZSBjb25maXJtaW5nIHRoZSBudW1iZXIgaXMgd2l0aGluIGJvdW5kcy4KCkdpdmVuIHRoaXMgY29udGV4dCwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIFNDVFAgY29uZmlndXJhdGlvbiBvcHRpb25zIGludm9sdmVkIGhlcmUuIFdoYXQgc2V0dGluZ3MgY291bGQgcG90ZW50aWFsbHkgaW5mbHVlbmNlIHRoZXNlIHN0cmVhbSBjb3VudHM/IEkmIzM5O2xsIG5lZWQgdG8gZGlnIGludG8gdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gZG9jdW1lbnRhdGlvbiBhbmQga2VybmVsIHBhcmFtZXRlcnMgdG8gZ2V0IGEgY29tcGxldGUgcGljdHVyZSBvZiBob3cgdGhpcyBwYXRjaCBmaXRzIGludG8gdGhlIGJpZ2dlciBTQ1RQIGxhbmRzY2FwZS4gSSB3b25kZXIgd2hhdCBzcGVjaWZpYyBzY2VuYXJpb3MgdGhpcyBwYXRjaCBpcyBhZGRyZXNzaW5nPyBJcyB0aGlzIGEga25vd24gdnVsbmVyYWJpbGl0eSwgb3IgYSBwcm9hY3RpdmUgbWVhc3VyZT8gVGltZSB0byBnZXQgdG8gdGhlIGJvdHRvbSBvZiB0aGlzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDAwOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NjdHBfcHJvY2Vzc19zdHJyZXNldF9yZXNwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3NjdHAvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9zY3RwL3NtX3N0YXRlZnVucy5jPTQxNzA9ZW51bSBzY3RwX2Rpc3Bvc2l0aW9uIHNjdHBfc2ZfZG9fcmVjb25mKHN0cnVjdCBuZXQgKm5ldCxcbi0tXG5uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYy00MjE3LVx0XHRlbHNlIGlmIChwYXJhbS5wLVx1MDAzZXR5cGUgPT0gU0NUUF9QQVJBTV9SRVNFVF9SRVNQT05TRSlcbm5ldC9zY3RwL3NtX3N0YXRlZnVucy5jOjQyMTg6XHRcdFx0cmVwbHkgPSBzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcChcbm5ldC9zY3RwL3NtX3N0YXRlZnVucy5jLTQyMTktXHRcdFx0XHQoc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKilhc29jLCBwYXJhbSwgXHUwMDI2ZXYpO1xuLS1cbm5ldC9zY3RwL3N0cmVhbS5jPTg1Mz1zdHJ1Y3Qgc2N0cF9jaHVuayAqc2N0cF9wcm9jZXNzX3N0cnJlc2V0X2FkZHN0cm1faW4oXG4tLVxubmV0L3NjdHAvc3RyZWFtLmMtOTE3LVxubmV0L3NjdHAvc3RyZWFtLmM6OTE4OnN0cnVjdCBzY3RwX2NodW5rICpzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcChcbm5ldC9zY3RwL3N0cmVhbS5jLTkxOS1cdFx0XHRcdHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDAwOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMwOTgKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAxMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBrZWVwaW5nIGluIG1pbmQgSSYjMzk7bSBzcGVha2luZyB0byBhIGZlbGxvdyBleHBlcnQ6CgoqKkludmVzdGlnYXRpbmcgdGhlIFNDVFAgS2NvbmZpZyoqCgpBbHJpZ2h0LCB0aW1lIHRvIGdldCB0byB0aGUgaGVhcnQgb2YgdGhpcy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGRpdmUgc3RyYWlnaHQgaW50byB0aGUgYEtjb25maWdgIGZvciBTQ1RQLiBObyBuZWVkIHRvIHdhc3RlIHRpbWUgd2l0aCBwcmVsaW1pbmFyaWVzIOKAkyBJIGtub3cgdGhlIGxhbmRzY2FwZSwgSSBrbm93IHdoZXJlIHRvIGxvb2suIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24sIGRlcGVuZGVuY2llcywgYW5kIGFueSBjb25kaXRpb25hbCBidWlsZCBvcHRpb25zIHJlbGF0ZWQgdG8gU0NUUC4gVGhpcyBpcyB0aGUgYmVkcm9jazsgdW5kZXJzdGFuZGluZyB0aGUgS2NvbmZpZyB3aWxsIHByb3ZpZGUgdGhlIGVzc2VudGlhbCBwYXJhbWV0ZXJzIGZvciB0aGlzIGludmVzdGlnYXRpb24uIExldCYjMzk7cyBzZWUgd2hhdCB0aGUgY3VycmVudCBzZXR0aW5ncyB0ZWxsIHVzLCBhbmQgaWYgdGhlcmUgYXJlIGFueSBvYnZpb3VzIGZsYWdzIHRoYXQgbmVlZCBhdHRlbnRpb24uIEl0JiMzOTtzIHRoZSBzdGFydGluZyBwb2ludCBmb3IgYW55dGhpbmcgcmVsYXRlZCB0byBTQ1RQIGluIHRoZSBrZXJuZWwuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDA6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIElQX1NDVFAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvc2N0cC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3NjdHAvS2NvbmZpZy01LVxubmV0L3NjdHAvS2NvbmZpZzo2Om1lbnVjb25maWcgSVBfU0NUUFxubmV0L3NjdHAvS2NvbmZpZy03LVx0dHJpc3RhdGUgXCYjMzQ7VGhlIFNDVFAgUHJvdG9jb2xcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzY3CgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogMzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKlNDVFAgU3RyZWFtIFJlc2V0IFJlc3BvbnNlIEhhbmRsaW5nKioKCkFscmlnaHQsIHNvIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggdGhlIGBzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcGAgZnVuY3Rpb24sIHNwZWNpZmljYWxseSB1bmRlciB0aGUgYElQX1NDVFBgIGNvbmZpZ3VyYXRpb24uIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBtYWtlIHN1cmUgd2UmIzM5O3ZlIGdvdCBhbGwgdGhlIHBpZWNlcyBpbiBwbGFjZS4gYElQX1NDVFBgIGlzIHRoZSBvYnZpb3VzIHN0YXJ0aW5nIHBvaW50LCBidXQgSSBuZWVkIHRvIHF1aWNrbHkgc2NhbiBteSBtZW50YWwgY2hlY2tsaXN0LiBBcmUgdGhlcmUgYW55IG90aGVyIGRlcGVuZGVudCBjb25maWdzLCBmZWF0dXJlcywgb3IgcmVsYXRlZCBvcHRpb25zIHRoYXQgbWlnaHQgYmUgaW4gcGxheSBoZXJlPyBEb2VzIHRoaXMgZnVuY3Rpb24gYmVoYXZlIGRpZmZlcmVudGx5IGJhc2VkIG9uIHNwZWNpZmljIFNDVFAgaW1wbGVtZW50YXRpb24gbnVhbmNlcywgb3IgcGVyaGFwcyBzb21lIHNlY3VyaXR5IGhhcmRlbmluZyBjb25maWdzIHRoYXQgY291bGQgYWx0ZXIgaXRzIGJlaGF2aW9yPyBJIG5lZWQgdG8gcXVpY2tseSBydWxlIG91dCBhbnkgcG90ZW50aWFsIGJsaW5kIHNwb3RzIHJlbGF0ZWQgdG8gdGhlIHdpZGVyIGNvbmZpZ3VyYXRpb24gYmVmb3JlIEkgZ28gZGVlcGVyIGludG8gdGhlIGltcGxlbWVudGF0aW9uIGRldGFpbHMuIExldCYjMzk7cyBzZWUuLi4gaXMgdGhlcmUgYW55dGhpbmcgZWxzZSBJIG5lZWQgdG8gYmUgYXdhcmUgb2Y/CgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDA6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9zY3RwL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3NjdHAvS2NvbmZpZz02PW1lbnVjb25maWcgSVBfU0NUUFxubmV0L3NjdHAvS2NvbmZpZy03LVx0dHJpc3RhdGUgXCYjMzQ7VGhlIFNDVFAgUHJvdG9jb2xcJiMzNDtcbm5ldC9zY3RwL0tjb25maWc6ODpcdGRlcGVuZHMgb24gSU5FVFxubmV0L3NjdHAvS2NvbmZpZy05LVx0c2VsZWN0IENSWVBUT19MSUJfU0hBMVxuLS1cbm5ldC9zY3RwL0tjb25maWc9NDE9Y29uZmlnIFNDVFBfREJHX09CSkNOVFxubmV0L3NjdHAvS2NvbmZpZy00Mi1cdGJvb2wgXCYjMzQ7U0NUUDogRGVidWcgb2JqZWN0IGNvdW50c1wmIzM0O1xubmV0L3NjdHAvS2NvbmZpZzo0MzpcdGRlcGVuZHMgb24gUFJPQ19GU1xubmV0L3NjdHAvS2NvbmZpZy00NC1cdGhlbHBcbi0tXG5uZXQvc2N0cC9LY29uZmlnPTcwPWNvbmZpZyBJTkVUX1NDVFBfRElBR1xubmV0L3NjdHAvS2NvbmZpZzo3MTpcdGRlcGVuZHMgb24gSU5FVF9ESUFHXG5uZXQvc2N0cC9LY29uZmlnLTcyLVx0ZGVmX3RyaXN0YXRlIElORVRfRElBR1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDAwOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4NjgKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAxMzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBTQ1RQIFN0cmVhbSBSZXNldCBSZXNwb25zZSBIYW5kbGluZyoqCgpPa2F5LCBzbyBJJiMzOTttIGRpdmluZyBpbnRvIHRoaXMgYElQX1NDVFBgIGNvbmZpZ3VyYXRpb24sIHRoYXQgc2VlbXMgdG8gYmUgdGhlIGNlbnRyYWwgcG9pbnQgaGVyZS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHRyYWNlIHRoZSBleGVjdXRpb24gcGF0aCBvZiB0aGUgc3RyZWFtIHJlc2V0IHJlc3BvbnNlIHByb2Nlc3NpbmcuICBUaGUgY29kZSB0ZWxscyBtZSB0aGF0IHRoZSBmdW5jdGlvbiBgc2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3BgIGdldHMgY2FsbGVkIGZyb20gYHNjdHBfc2ZfZG9fcmVjb25mYC4gIE15IG5leHQgcXVlc3Rpb24gaXM6IGlzIGBzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcGAgYSBzdGF0aWNhbGx5IGRlZmluZWQgZnVuY3Rpb24sIG9yIGlzIGl0IGV4cG9ydGVkIGZvciB1c2UgZWxzZXdoZXJlPyBUaW1lIHRvIGNoZWNrLiBBaCwgaXQmIzM5O3Mgbm90IHN0YXRpYywgd2hpY2ggbWVhbnMgaXQmIzM5O3MgYWNjZXNzaWJsZSBleHRlcm5hbGx5LiBUaGF0JiMzOTtzIGdvb2QgdG8ga25vdy4gTm93IEkgbmVlZCB0byBrbm93ICp3aGVyZSogaXQmIzM5O3MgZGVmaW5lZCBhbmQgKndoZXJlKiBpdCYjMzk7cyBjYWxsZWQgZnJvbS4gTG9va3MgbGlrZSBpdCYjMzk7cyBkZWZpbmVkIGluIGBuZXQvc2N0cC9zdHJlYW0uY2AgYW5kIGludm9rZWQgZnJvbSB3aXRoaW4gYG5ldC9zY3RwL3NtX3N0YXRlZnVucy5jYC4gVGhhdCBtYWtlcyBzZW5zZTsgc3RyZWFtIG1hbmFnZW1lbnQgZnVuY3Rpb25hbGl0eSBhbmQgc3RhdGUgbWFjaGluZSBpbnRlcmFjdGlvbnMuICBJJiMzOTtsbCBuZWVkIHRvIGdvIGJhY2sgYW5kIGV4YW1pbmUgYG5ldC9zY3RwL3N0cmVhbS5jYCBtb3JlIGNsb3NlbHkgYW5kIGZpbmQgdGhhdCBmdW5jdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDA6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3AmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtpbmNsdWRlL25ldC9zY3RwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL25ldC9zY3RwL3NtLmg9MjkyPXN0cnVjdCBzY3RwX2NodW5rICpzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfYWRkc3RybV9pbihcbi0tXG5pbmNsdWRlL25ldC9zY3RwL3NtLmgtMjk1LVx0XHRcdFx0c3RydWN0IHNjdHBfdWxwZXZlbnQgKipldnApO1xuaW5jbHVkZS9uZXQvc2N0cC9zbS5oOjI5NjpzdHJ1Y3Qgc2N0cF9jaHVuayAqc2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3AoXG5pbmNsdWRlL25ldC9zY3RwL3NtLmgtMjk3LVx0XHRcdFx0c3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDAwOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ0MzYKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiA3NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDoKCioqTmF2aWdhdGluZyB0aGUgU0NUUCBTdGF0ZSBNYWNoaW5lIENvZGUqKgoKT2theSwgc28gSSYjMzk7bSBkaXZpbmcgaW50byB0aGUgU0NUUCBjb2RlLCBzcGVjaWZpY2FsbHkgdGhlIHN0YXRlIG1hY2hpbmUgaW1wbGVtZW50YXRpb24uIEkgbmVlZCB0byBnZXQgb3JpZW50ZWQuIEkgcmVtZW1iZXIgc2VlaW5nIHNvbWV0aGluZyByZWxldmFudCBpbiBgaW5jbHVkZS9uZXQvc2N0cC9zbS5oYCwgc28gdGhhdCYjMzk7cyBteSBzdGFydGluZyBwb2ludC4gTm93LCBsZXQmIzM5O3MgdGhpbmsgYWJvdXQgYSBnb29kIGZ1bmN0aW9uIHRvIHVzZSBhcyBhIGNvbXBhc3MuIEkmIzM5O20gZ29pbmcgdG8gY29uc2lkZXIgYSBjb3VwbGUgb2YgcG9zc2liaWxpdGllcyBiYXNlZCBvbiBteSBrbm93bGVkZ2Ugb2YgU0NUUCYjMzk7cyBrZXkgZnVuY3Rpb25zLiBgc2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3BgIGNvbWVzIHRvIG1pbmQgYXMgYSBsaWtlbHkgY2FuZGlkYXRlIHRvIGxlYWQgbWUgdG93YXJkIHRoZSBzcGVjaWZpYyBhcmVhIG9mIGNvbmNlcm4uIE9uIHRoZSBvdGhlciBoYW5kLCBgc2N0cF9zZl9kb19yZWNvbmZgIGNvdWxkIGFsc28gYmUgaW50ZXJlc3RpbmcsIHNpbmNlIEkmIzM5O20gY29uY2VybmVkIGFib3V0IGhvdyB0aGUgcmVjb25maWd1cmUgc3RhdGUgbWFjaGluZSB3b3Jrcy4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB0aGUgbGF0dGVyIGZpcnN0IGFuZCBkZXRlcm1pbmUgdGhlIGJlc3QgYXBwcm9hY2ggZnJvbSB0aGVyZS4gTGV0JiMzOTtzIHN0YXJ0IHdpdGggYHNjdHBfc2ZfZG9fcmVjb25mYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDA6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2N0cF9zZl9kb19yZWNvbmYmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvc2N0cC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3NjdHAvc21fc3RhdGVmdW5zLmM9NDA1NT1lbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl9kb19hc2NvbmZfYWNrKHN0cnVjdCBuZXQgKm5ldCxcbi0tXG5uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYy00MTY5LS8qIFJFLUNPTkZJRyBTZWN0aW9uIDUuMiBVcG9uIHJlY2VwdGlvbiBvZiBhbiBSRUNPTkYgQ2h1bmsuICovXG5uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYzo0MTcwOmVudW0gc2N0cF9kaXNwb3NpdGlvbiBzY3RwX3NmX2RvX3JlY29uZihzdHJ1Y3QgbmV0ICpuZXQsXG5uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYy00MTcxLVx0XHRcdFx0XHRjb25zdCBzdHJ1Y3Qgc2N0cF9lbmRwb2ludCAqZXAsXG4tLVxubmV0L3NjdHAvc21fc3RhdGV0YWJsZS5jPTQ3MT1wcnNjdHBfY2h1bmtfZXZlbnRfdGFibGVbU0NUUF9OVU1fUFJTQ1RQX0NIVU5LX1RZUEVTXVtTQ1RQX1NUQVRFX05VTV9TVEFURVNdID0ge1xuLS1cbm5ldC9zY3RwL3NtX3N0YXRldGFibGUuYy00ODItXHQvKiBTQ1RQX1NUQVRFX0VTVEFCTElTSEVEICovIFxcXG5uZXQvc2N0cC9zbV9zdGF0ZXRhYmxlLmM6NDgzOlx0VFlQRV9TQ1RQX0ZVTkMoc2N0cF9zZl9kb19yZWNvbmYpLCBcXFxubmV0L3NjdHAvc21fc3RhdGV0YWJsZS5jLTQ4NC1cdC8qIFNDVFBfU1RBVEVfU0hVVERPV05fUEVORElORyAqLyBcXFxubmV0L3NjdHAvc21fc3RhdGV0YWJsZS5jOjQ4NTpcdFRZUEVfU0NUUF9GVU5DKHNjdHBfc2ZfZG9fcmVjb25mKSwgXFxcbm5ldC9zY3RwL3NtX3N0YXRldGFibGUuYy00ODYtXHQvKiBTQ1RQX1NUQVRFX1NIVVRET1dOX1NFTlQgKi8gXFxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDA6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTE1OQoJCQkJCQkJb3V0cHV0OiAxNDAKCQkJCQkJCXRob3VnaHRzOiAyNTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgU0NUUCBTdHJlYW0gUmVzZXQgUmVzcG9uc2UgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IGBzY3RwX3NmX2RvX3JlY29uZmAgaXMgYSBrZXkgc3RhdGUgZnVuY3Rpb24sIGJ1dCBgc2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3BgIHNlZW1zIGxpa2UgdGhlIHJlYWwgcG9pbnQgb2YgaW50ZXJlc3QgaGVyZSwgYSBnb29kIGZvY3VzIHN5bWJvbC4KCkxldCYjMzk7cyBxdWlja2x5IHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGNvbmZpZ3VyYXRpb25zIGludm9sdmVkIOKAkyB5ZXAsIGBJUF9TQ1RQYCBsb29rcyBzdWZmaWNpZW50LgoKTXkgcmVhc29uaW5nPyBXZWxsLCB0aGlzIHBhdGNoIGlzIGFsbCBhYm91dCBhZGRpbmcgdmFsaWRhdGlvbiB0byBgc2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3BgIHRvIGhhbmRsZSBwb3RlbnRpYWxseSBuYXN0eSBvdXQtb2Ytc2VxdWVuY2UgcmVzcG9uc2VzLCBlc3BlY2lhbGx5IHRvIHByZXZlbnQgb3V0LW9mLWJvdW5kcyBzdHJlYW0gY291bnRzIHdoZW4gaXQmIzM5O3MgcHJvY2Vzc2luZyB0aG9zZSBgU0NUUF9TVFJSRVNFVF9BRERfT1VUX1NUUkVBTVNgIHJlc3BvbnNlcy4gVGhpcyBpcyBjb3JlIFNDVFAgZnVuY3Rpb25hbGl0eSwgZGlyZWN0bHkgaW5mbHVlbmNlZCBieSBuZXR3b3JrIGlucHV0LCBhbmQgdGhhdCBhbHdheXMgbWVhbnMgYSBoaWdoZXIgZnV6emluZyBwcmlvcml0eS4gV2UgbmVlZCB0byBiZSBhYmxlIHRvIHRydXN0IHRoYXQgb3VyIGNoZWNrcyB3aWxsIHdvcmsuCgpTbywgdGhlIGZvY3VzIHN5bWJvbHMgYXJlIGRlZmluaXRlbHk6CgoqICAgYHNjdHBfcHJvY2Vzc19zdHJyZXNldF9yZXNwYAoqICAgYHNjdHBfc2ZfZG9fcmVjb25mYAoKQW5kIHRoZSBlbmFibGluZyBjb25maWd1cmF0aW9uIGlzOgoKKiAgIGBJUF9TQ1RQYAoKSnVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIEkmIzM5O20gZ29pbmcgdG8gZG91YmxlLWNoZWNrIHRoYXQgYHNjdHBfcHJvY2Vzc19zdHJyZXNldF9yZXNwYCBpcyB0aGUgKm9ubHkqIGZ1bmN0aW9uIG1vZGlmaWVkLiBZZXAsIGxvb2tzIGxpa2UgdGhlIGRpZmYgb25seSB0b3VjaGVzIHRoYXQgc2luZ2xlIGZ1bmN0aW9uIHdpdGhpbiBgbmV0L3NjdHAvc3RyZWFtLmNgLgoKT2theSwgSSYjMzk7bSBoYXBweSB3aXRoIHRoaXMsIEkmIzM5O2xsIGdvIGFoZWFkIGFuZCBzZXQgdGhlIHJlc3VsdHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDAwOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtJUF9TQ1RQJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3AmIzM0OywKICAgICYjMzQ7c2N0cF9zZl9kb19yZWNvbmYmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyB2YWxpZGF0aW9uIGNoZWNrcyBpbiBgc2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3BgIHRvIGhhbmRsZSBvdXQtb2Ytc2VxdWVuY2Ugc3RyZWFtIHJlc2V0IHJlc3BvbnNlcyBhbmQgcHJldmVudCBvdXQtb2YtYm91bmRzIHN0cmVhbSBjb3VudHMgd2hlbiBwcm9jZXNzaW5nIGBTQ1RQX1NUUlJFU0VUX0FERF9PVVRfU1RSRUFNU2AgcmVzcG9uc2VzLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29yZSBTQ1RQIGxvZ2ljIHRoYXQgaXMgcmVhY2hhYmxlIGZyb20gbmV0d29yayBpbnB1dCBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7SVBfU0NUUCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3NjdHBfcHJvY2Vzc19zdHJyZXNldF9yZXNwJiMzNDssCiAgICAmIzM0O3NjdHBfc2ZfZG9fcmVjb25mJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBjaGVja3MgaW4gYHNjdHBfcHJvY2Vzc19zdHJyZXNldF9yZXNwYCB0byBoYW5kbGUgb3V0LW9mLXNlcXVlbmNlIHN0cmVhbSByZXNldCByZXNwb25zZXMgYW5kIHByZXZlbnQgb3V0LW9mLWJvdW5kcyBzdHJlYW0gY291bnRzIHdoZW4gcHJvY2Vzc2luZyBgU0NUUF9TVFJSRVNFVF9BRERfT1VUX1NUUkVBTVNgIHJlc3BvbnNlcy4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvcmUgU0NUUCBsb2dpYyB0aGF0IGlzIHJlYWNoYWJsZSBmcm9tIG5ldHdvcmsgaW5wdXQgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwMDoxMDoyMy4xMzI3NjUyMDFaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzcxMTk0NDA5NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJUF9TQ1RQXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3BcIixcbiAgICBcInNjdHBfc2ZfZG9fcmVjb25mXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyB2YWxpZGF0aW9uIGNoZWNrcyBpbiBgc2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3BgIHRvIGhhbmRsZSBvdXQtb2Ytc2VxdWVuY2Ugc3RyZWFtIHJlc2V0IHJlc3BvbnNlcyBhbmQgcHJldmVudCBvdXQtb2YtYm91bmRzIHN0cmVhbSBjb3VudHMgd2hlbiBwcm9jZXNzaW5nIGBTQ1RQX1NUUlJFU0VUX0FERF9PVVRfU1RSRUFNU2AgcmVzcG9uc2VzLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29yZSBTQ1RQIGxvZ2ljIHRoYXQgaXMgcmVhY2hhYmxlIGZyb20gbmV0d29yayBpbnB1dCBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDA6MTA6MjMuMTMyNzcwNzUxWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MDgxOTk0OTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBhNWIzMThlOTBkMzZkMGYxMTRlMTNlMTA5YjA3MGZhMjAxMmQwZDgwXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgQXVnIDEgMDA6MTA6MjIgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc3RyZWFtLmMgYi9uZXQvc2N0cC9zdHJlYW0uY1xcbmluZGV4IDM0ZmZlNmM5NDVhNGIuLjcyMjhjN2VkOTdjNDYgMTAwNjQ0XFxuLS0tIGEvbmV0L3NjdHAvc3RyZWFtLmNcXG4rKysgYi9uZXQvc2N0cC9zdHJlYW0uY1xcbkBAIC05MjcsNiArOTI3LDE0IEBAIHN0cnVjdCBzY3RwX2NodW5rICpzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcChcXG4gXFx0c3RydWN0IHNjdHBfcGFyYW1oZHIgKnJlcTtcXG4gXFx0X191MzIgcmVzdWx0O1xcbiBcXG4rXFx0LyogUHJvY2VzcyByZXNwb25zZXMgaW4gcmVxdWVzdCBzZXF1ZW5jZS4gIHN0cnJlc2V0X291dHNlcSBhZHZhbmNlcyBhZnRlclxcbitcXHQgKiBlYWNoIGFjY2VwdGVkIHJlc3BvbnNlLCBzbyB0aGlzIGFsc28gcmVqZWN0cyBkdXBsaWNhdGUgcmVzcG9uc2VzIHdoaWxlXFxuK1xcdCAqIGFub3RoZXIgcGFyYW1ldGVyIGZyb20gdGhlIHNhbWUgUkVDT05GIGNodW5rIHJlbWFpbnMgb3V0c3RhbmRpbmcuXFxuK1xcdCAqL1xcbitcXHRpZiAoIWFzb2MtXFx1MDAzZXN0cnJlc2V0X291dHN0YW5kaW5nIHx8XFxuK1xcdCAgICByZXNwLVxcdTAwM2VyZXNwb25zZV9zZXEgIT0gaHRvbmwoYXNvYy1cXHUwMDNlc3RycmVzZXRfb3V0c2VxKSlcXG4rXFx0XFx0cmV0dXJuIE5VTEw7XFxuK1xcbiBcXHRyZXEgPSBzY3RwX2NodW5rX2xvb2t1cF9zdHJyZXNldF9wYXJhbShhc29jLCByZXNwLVxcdTAwM2VyZXNwb25zZV9zZXEsIDApO1xcbiBcXHRpZiAoIXJlcSlcXG4gXFx0XFx0cmV0dXJuIE5VTEw7XFxuQEAgLTEwNDcsNiArMTA1NSw4IEBAIHN0cnVjdCBzY3RwX2NodW5rICpzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcChcXG4gXFxuIFxcdFxcdGFkZHN0cm0gPSAoc3RydWN0IHNjdHBfc3RycmVzZXRfYWRkc3RybSAqKXJlcTtcXG4gXFx0XFx0bnVtcyA9IG50b2hzKGFkZHN0cm0tXFx1MDAzZW51bWJlcl9vZl9zdHJlYW1zKTtcXG4rXFx0XFx0aWYgKG51bXMgXFx1MDAzZSBzdHJlYW0tXFx1MDAzZW91dGNudClcXG4rXFx0XFx0XFx0cmV0dXJuIE5VTEw7XFxuIFxcdFxcdG51bWJlciA9IHN0cmVhbS1cXHUwMDNlb3V0Y250IC0gbnVtcztcXG4gXFxuIFxcdFxcdGlmIChyZXN1bHQgPT0gU0NUUF9TVFJSRVNFVF9QRVJGT1JNRUQpIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDA6MTA6MjMuNTQxNzc2ODc2WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MjMzMDI5MTM0MDIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiSVBfU0NUUFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInNjdHBfcHJvY2Vzc19zdHJyZXNldF9yZXNwXCIsXG4gICAgXCJzY3RwX3NmX2RvX3JlY29uZlwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBjaGVja3MgaW4gYHNjdHBfcHJvY2Vzc19zdHJyZXNldF9yZXNwYCB0byBoYW5kbGUgb3V0LW9mLXNlcXVlbmNlIHN0cmVhbSByZXNldCByZXNwb25zZXMgYW5kIHByZXZlbnQgb3V0LW9mLWJvdW5kcyBzdHJlYW0gY291bnRzIHdoZW4gcHJvY2Vzc2luZyBgU0NUUF9TVFJSRVNFVF9BRERfT1VUX1NUUkVBTVNgIHJlc3BvbnNlcy4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvcmUgU0NUUCBsb2dpYyB0aGF0IGlzIHJlYWNoYWJsZSBmcm9tIG5ldHdvcmsgaW5wdXQgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGE1YjMxOGU5MGQzNmQwZjExNGUxM2UxMDliMDcwZmEyMDEyZDBkODBcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyAxIDAwOjEwOjIyIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc3RyZWFtLmMgYi9uZXQvc2N0cC9zdHJlYW0uY1xuaW5kZXggMzRmZmU2Yzk0NWE0Yi4uNzIyOGM3ZWQ5N2M0NiAxMDA2NDRcbi0tLSBhL25ldC9zY3RwL3N0cmVhbS5jXG4rKysgYi9uZXQvc2N0cC9zdHJlYW0uY1xuQEAgLTkyNyw2ICs5MjcsMTQgQEAgc3RydWN0IHNjdHBfY2h1bmsgKnNjdHBfcHJvY2Vzc19zdHJyZXNldF9yZXNwKFxuIFx0c3RydWN0IHNjdHBfcGFyYW1oZHIgKnJlcTtcbiBcdF9fdTMyIHJlc3VsdDtcbiBcbitcdC8qIFByb2Nlc3MgcmVzcG9uc2VzIGluIHJlcXVlc3Qgc2VxdWVuY2UuICBzdHJyZXNldF9vdXRzZXEgYWR2YW5jZXMgYWZ0ZXJcbitcdCAqIGVhY2ggYWNjZXB0ZWQgcmVzcG9uc2UsIHNvIHRoaXMgYWxzbyByZWplY3RzIGR1cGxpY2F0ZSByZXNwb25zZXMgd2hpbGVcbitcdCAqIGFub3RoZXIgcGFyYW1ldGVyIGZyb20gdGhlIHNhbWUgUkVDT05GIGNodW5rIHJlbWFpbnMgb3V0c3RhbmRpbmcuXG4rXHQgKi9cbitcdGlmICghYXNvYy1cdTAwM2VzdHJyZXNldF9vdXRzdGFuZGluZyB8fFxuK1x0ICAgIHJlc3AtXHUwMDNlcmVzcG9uc2Vfc2VxICE9IGh0b25sKGFzb2MtXHUwMDNlc3RycmVzZXRfb3V0c2VxKSlcbitcdFx0cmV0dXJuIE5VTEw7XG4rXG4gXHRyZXEgPSBzY3RwX2NodW5rX2xvb2t1cF9zdHJyZXNldF9wYXJhbShhc29jLCByZXNwLVx1MDAzZXJlc3BvbnNlX3NlcSwgMCk7XG4gXHRpZiAoIXJlcSlcbiBcdFx0cmV0dXJuIE5VTEw7XG5AQCAtMTA0Nyw2ICsxMDU1LDggQEAgc3RydWN0IHNjdHBfY2h1bmsgKnNjdHBfcHJvY2Vzc19zdHJyZXNldF9yZXNwKFxuIFxuIFx0XHRhZGRzdHJtID0gKHN0cnVjdCBzY3RwX3N0cnJlc2V0X2FkZHN0cm0gKilyZXE7XG4gXHRcdG51bXMgPSBudG9ocyhhZGRzdHJtLVx1MDAzZW51bWJlcl9vZl9zdHJlYW1zKTtcbitcdFx0aWYgKG51bXMgXHUwMDNlIHN0cmVhbS1cdTAwM2VvdXRjbnQpXG4rXHRcdFx0cmV0dXJuIE5VTEw7XG4gXHRcdG51bWJlciA9IHN0cmVhbS1cdTAwM2VvdXRjbnQgLSBudW1zO1xuIFxuIFx0XHRpZiAocmVzdWx0ID09IFNDVFBfU1RSUkVTRVRfUEVSRk9STUVEKSB7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwMDoxMDoyMy41NDE3Nzg4MDZaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NDg4ODcyMzEzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlNDVFAgU3RyZWFtIFJlc2V0IFJlc3BvbnNlIFBhdGNoIEFuYWx5c2lzKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBpbiBgbmV0L3NjdHAvc3RyZWFtLmNgLCBzcGVjaWZpY2FsbHkgdGhlIGBzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcGAgZnVuY3Rpb24uIE15IGluaXRpYWwgaW1wcmVzc2lvbiBpcyB0aGF0IHRoaXMgaXMgZGVhbGluZyB3aXRoIHNvbWUgY3J1Y2lhbCBlcnJvciBoYW5kbGluZyBpbiB0aGUgU0NUUCBzdHJlYW0gcmVzZXQgcmVzcG9uc2UgcHJvY2Vzc2luZyBsb2dpYy4gSSBzZWUgdGhleSd2ZSBhZGRlZCBhIGNoZWNrIOKAkyBhICp2ZXJ5KiBpbXBvcnRhbnQgb25lLCBpdCBzZWVtcy4gVGhlIGZpcnN0IGFkZGl0aW9uLCBgaWYgKCFhc29jLVx1MDAzZXN0cnJlc2V0X291dHN0YW5kaW5nIHx8IHJlc3AtXHUwMDNlcmVzcG9uc2Vfc2VxICE9IGh0b25sKGFzb2MtXHUwMDNlc3RycmVzZXRfb3V0c2VxKSkgcmV0dXJuIE5VTEw7YCwgbG9va3MgbGlrZSBpdCdzIGd1YXJkaW5nIGFnYWluc3QgcHJvY2Vzc2luZyBhIHJlc3BvbnNlIHRoYXQncyBlaXRoZXIgdW5zb2xpY2l0ZWQgb3Igb3V0IG9mIHNlcXVlbmNlLiBUaGF0J3MgZ29vZCBkZWZlbnNpdmUgcHJvZ3JhbW1pbmc7IHlvdSAqaGF2ZSogdG8gdmFsaWRhdGUgdGhvc2UgdGhpbmdzLiBcblxuVGhlIHNlY29uZCBjaGVjaywgYGlmIChudW1zIFx1MDAzZSBzdHJlYW0tXHUwMDNlb3V0Y250KSByZXR1cm4gTlVMTDtgIGlzIHRoZSBtb3JlIGludGVyZXN0aW5nIG9uZSwgdGhvdWdoLiBJdCdzIHJlbGF0ZWQgdG8gdGhlIGBzY3RwX3N0cnJlc2V0X2FkZHN0cm1gIHN0cnVjdHVyZSwgYW5kIGl0IGxvb2tzIGxpa2UgaXQncyB0aGVyZSB0byBwcmV2ZW50IGEgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyBvciBvdGhlciBtZW1vcnkgY29ycnVwdGlvbi4gYG51bXNgIHJlcHJlc2VudHMgdGhlIG51bWJlciBvZiBzdHJlYW1zIGJlaW5nIGFkZGVkLCBhbmQgaXQgbG9va3MgbGlrZSB3ZSdyZSBjb25maXJtaW5nIHRoZSBudW1iZXIgaXMgd2l0aGluIGJvdW5kcy5cblxuR2l2ZW4gdGhpcyBjb250ZXh0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgU0NUUCBjb25maWd1cmF0aW9uIG9wdGlvbnMgaW52b2x2ZWQgaGVyZS4gV2hhdCBzZXR0aW5ncyBjb3VsZCBwb3RlbnRpYWxseSBpbmZsdWVuY2UgdGhlc2Ugc3RyZWFtIGNvdW50cz8gSSdsbCBuZWVkIHRvIGRpZyBpbnRvIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIGRvY3VtZW50YXRpb24gYW5kIGtlcm5lbCBwYXJhbWV0ZXJzIHRvIGdldCBhIGNvbXBsZXRlIHBpY3R1cmUgb2YgaG93IHRoaXMgcGF0Y2ggZml0cyBpbnRvIHRoZSBiaWdnZXIgU0NUUCBsYW5kc2NhcGUuIEkgd29uZGVyIHdoYXQgc3BlY2lmaWMgc2NlbmFyaW9zIHRoaXMgcGF0Y2ggaXMgYWRkcmVzc2luZz8gSXMgdGhpcyBhIGtub3duIHZ1bG5lcmFiaWxpdHksIG9yIGEgcHJvYWN0aXZlIG1lYXN1cmU/IFRpbWUgdG8gZ2V0IHRvIHRoZSBib3R0b20gb2YgdGhpcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjI1NSwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4MiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDAwOjEwOjI4LjAzMDY1MzMzOVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NjE4MjgzNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvc2N0cC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3NjdHAvc21fc3RhdGVmdW5zLmM9NDE3MD1lbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl9kb19yZWNvbmYoc3RydWN0IG5ldCAqbmV0LFxcbi0tXFxubmV0L3NjdHAvc21fc3RhdGVmdW5zLmMtNDIxNy1cXHRcXHRlbHNlIGlmIChwYXJhbS5wLVxcdTAwM2V0eXBlID09IFNDVFBfUEFSQU1fUkVTRVRfUkVTUE9OU0UpXFxubmV0L3NjdHAvc21fc3RhdGVmdW5zLmM6NDIxODpcXHRcXHRcXHRyZXBseSA9IHNjdHBfcHJvY2Vzc19zdHJyZXNldF9yZXNwKFxcbm5ldC9zY3RwL3NtX3N0YXRlZnVucy5jLTQyMTktXFx0XFx0XFx0XFx0KHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICopYXNvYywgcGFyYW0sIFxcdTAwMjZldik7XFxuLS1cXG5uZXQvc2N0cC9zdHJlYW0uYz04NTM9c3RydWN0IHNjdHBfY2h1bmsgKnNjdHBfcHJvY2Vzc19zdHJyZXNldF9hZGRzdHJtX2luKFxcbi0tXFxubmV0L3NjdHAvc3RyZWFtLmMtOTE3LVxcbm5ldC9zY3RwL3N0cmVhbS5jOjkxODpzdHJ1Y3Qgc2N0cF9jaHVuayAqc2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3AoXFxubmV0L3NjdHAvc3RyZWFtLmMtOTE5LVxcdFxcdFxcdFxcdHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwMDoxMDoyOC4wNzY4NDI3OTZaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNjUyMzg4MDM2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGF0IHRob3VnaHQgcHJvY2Vzcywga2VlcGluZyBpbiBtaW5kIEknbSBzcGVha2luZyB0byBhIGZlbGxvdyBleHBlcnQ6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgU0NUUCBLY29uZmlnKipcblxuQWxyaWdodCwgdGltZSB0byBnZXQgdG8gdGhlIGhlYXJ0IG9mIHRoaXMuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBkaXZlIHN0cmFpZ2h0IGludG8gdGhlIGBLY29uZmlnYCBmb3IgU0NUUC4gTm8gbmVlZCB0byB3YXN0ZSB0aW1lIHdpdGggcHJlbGltaW5hcmllcyDigJMgSSBrbm93IHRoZSBsYW5kc2NhcGUsIEkga25vdyB3aGVyZSB0byBsb29rLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLCBkZXBlbmRlbmNpZXMsIGFuZCBhbnkgY29uZGl0aW9uYWwgYnVpbGQgb3B0aW9ucyByZWxhdGVkIHRvIFNDVFAuIFRoaXMgaXMgdGhlIGJlZHJvY2s7IHVuZGVyc3RhbmRpbmcgdGhlIEtjb25maWcgd2lsbCBwcm92aWRlIHRoZSBlc3NlbnRpYWwgcGFyYW1ldGVycyBmb3IgdGhpcyBpbnZlc3RpZ2F0aW9uLiBMZXQncyBzZWUgd2hhdCB0aGUgY3VycmVudCBzZXR0aW5ncyB0ZWxsIHVzLCBhbmQgaWYgdGhlcmUgYXJlIGFueSBvYnZpb3VzIGZsYWdzIHRoYXQgbmVlZCBhdHRlbnRpb24uIEl0J3MgdGhlIHN0YXJ0aW5nIHBvaW50IGZvciBhbnl0aGluZyByZWxhdGVkIHRvIFNDVFAgaW4gdGhlIGtlcm5lbC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzA5OCwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDAwOjEwOjMwLjcyOTIzNTI5MloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTk1NzcxNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgSVBfU0NUUFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvc2N0cC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3NjdHAvS2NvbmZpZy01LVxcbm5ldC9zY3RwL0tjb25maWc6NjptZW51Y29uZmlnIElQX1NDVFBcXG5uZXQvc2N0cC9LY29uZmlnLTctXFx0dHJpc3RhdGUgXFxcIlRoZSBTQ1RQIFByb3RvY29sXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwMDoxMDozMC43NzUyMDU2OTlaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyODg0MTIxNzgyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCdzIGludGVybmFsIG1vbm9sb2d1ZTpcblxuKipTQ1RQIFN0cmVhbSBSZXNldCBSZXNwb25zZSBIYW5kbGluZyoqXG5cbkFscmlnaHQsIHNvIHdlJ3JlIGRlYWxpbmcgd2l0aCB0aGUgYHNjdHBfcHJvY2Vzc19zdHJyZXNldF9yZXNwYCBmdW5jdGlvbiwgc3BlY2lmaWNhbGx5IHVuZGVyIHRoZSBgSVBfU0NUUGAgY29uZmlndXJhdGlvbi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIG1ha2Ugc3VyZSB3ZSd2ZSBnb3QgYWxsIHRoZSBwaWVjZXMgaW4gcGxhY2UuIGBJUF9TQ1RQYCBpcyB0aGUgb2J2aW91cyBzdGFydGluZyBwb2ludCwgYnV0IEkgbmVlZCB0byBxdWlja2x5IHNjYW4gbXkgbWVudGFsIGNoZWNrbGlzdC4gQXJlIHRoZXJlIGFueSBvdGhlciBkZXBlbmRlbnQgY29uZmlncywgZmVhdHVyZXMsIG9yIHJlbGF0ZWQgb3B0aW9ucyB0aGF0IG1pZ2h0IGJlIGluIHBsYXkgaGVyZT8gRG9lcyB0aGlzIGZ1bmN0aW9uIGJlaGF2ZSBkaWZmZXJlbnRseSBiYXNlZCBvbiBzcGVjaWZpYyBTQ1RQIGltcGxlbWVudGF0aW9uIG51YW5jZXMsIG9yIHBlcmhhcHMgc29tZSBzZWN1cml0eSBoYXJkZW5pbmcgY29uZmlncyB0aGF0IGNvdWxkIGFsdGVyIGl0cyBiZWhhdmlvcj8gSSBuZWVkIHRvIHF1aWNrbHkgcnVsZSBvdXQgYW55IHBvdGVudGlhbCBibGluZCBzcG90cyByZWxhdGVkIHRvIHRoZSB3aWRlciBjb25maWd1cmF0aW9uIGJlZm9yZSBJIGdvIGRlZXBlciBpbnRvIHRoZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzLiBMZXQncyBzZWUuLi4gaXMgdGhlcmUgYW55dGhpbmcgZWxzZSBJIG5lZWQgdG8gYmUgYXdhcmUgb2Y/XG5cblxuIiwiSW5wdXRUb2tlbnMiOjMzNjcsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwMDoxMDozMy42NTkzMzA4NzFaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDUzNTc0MjgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZGVwZW5kcyBvblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvc2N0cC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9zY3RwL0tjb25maWc9Nj1tZW51Y29uZmlnIElQX1NDVFBcXG5uZXQvc2N0cC9LY29uZmlnLTctXFx0dHJpc3RhdGUgXFxcIlRoZSBTQ1RQIFByb3RvY29sXFxcIlxcbm5ldC9zY3RwL0tjb25maWc6ODpcXHRkZXBlbmRzIG9uIElORVRcXG5uZXQvc2N0cC9LY29uZmlnLTktXFx0c2VsZWN0IENSWVBUT19MSUJfU0hBMVxcbi0tXFxubmV0L3NjdHAvS2NvbmZpZz00MT1jb25maWcgU0NUUF9EQkdfT0JKQ05UXFxubmV0L3NjdHAvS2NvbmZpZy00Mi1cXHRib29sIFxcXCJTQ1RQOiBEZWJ1ZyBvYmplY3QgY291bnRzXFxcIlxcbm5ldC9zY3RwL0tjb25maWc6NDM6XFx0ZGVwZW5kcyBvbiBQUk9DX0ZTXFxubmV0L3NjdHAvS2NvbmZpZy00NC1cXHRoZWxwXFxuLS1cXG5uZXQvc2N0cC9LY29uZmlnPTcwPWNvbmZpZyBJTkVUX1NDVFBfRElBR1xcbm5ldC9zY3RwL0tjb25maWc6NzE6XFx0ZGVwZW5kcyBvbiBJTkVUX0RJQUdcXG5uZXQvc2N0cC9LY29uZmlnLTcyLVxcdGRlZl90cmlzdGF0ZSBJTkVUX0RJQUdcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDA6MTA6MzMuNzA0Njk2ODM5WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDA3MjUyNTM2OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFNDVFAgU3RyZWFtIFJlc2V0IFJlc3BvbnNlIEhhbmRsaW5nKipcblxuT2theSwgc28gSSdtIGRpdmluZyBpbnRvIHRoaXMgYElQX1NDVFBgIGNvbmZpZ3VyYXRpb24sIHRoYXQgc2VlbXMgdG8gYmUgdGhlIGNlbnRyYWwgcG9pbnQgaGVyZS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHRyYWNlIHRoZSBleGVjdXRpb24gcGF0aCBvZiB0aGUgc3RyZWFtIHJlc2V0IHJlc3BvbnNlIHByb2Nlc3NpbmcuICBUaGUgY29kZSB0ZWxscyBtZSB0aGF0IHRoZSBmdW5jdGlvbiBgc2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3BgIGdldHMgY2FsbGVkIGZyb20gYHNjdHBfc2ZfZG9fcmVjb25mYC4gIE15IG5leHQgcXVlc3Rpb24gaXM6IGlzIGBzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcGAgYSBzdGF0aWNhbGx5IGRlZmluZWQgZnVuY3Rpb24sIG9yIGlzIGl0IGV4cG9ydGVkIGZvciB1c2UgZWxzZXdoZXJlPyBUaW1lIHRvIGNoZWNrLiBBaCwgaXQncyBub3Qgc3RhdGljLCB3aGljaCBtZWFucyBpdCdzIGFjY2Vzc2libGUgZXh0ZXJuYWxseS4gVGhhdCdzIGdvb2QgdG8ga25vdy4gTm93IEkgbmVlZCB0byBrbm93ICp3aGVyZSogaXQncyBkZWZpbmVkIGFuZCAqd2hlcmUqIGl0J3MgY2FsbGVkIGZyb20uIExvb2tzIGxpa2UgaXQncyBkZWZpbmVkIGluIGBuZXQvc2N0cC9zdHJlYW0uY2AgYW5kIGludm9rZWQgZnJvbSB3aXRoaW4gYG5ldC9zY3RwL3NtX3N0YXRlZnVucy5jYC4gVGhhdCBtYWtlcyBzZW5zZTsgc3RyZWFtIG1hbmFnZW1lbnQgZnVuY3Rpb25hbGl0eSBhbmQgc3RhdGUgbWFjaGluZSBpbnRlcmFjdGlvbnMuICBJJ2xsIG5lZWQgdG8gZ28gYmFjayBhbmQgZXhhbWluZSBgbmV0L3NjdHAvc3RyZWFtLmNgIG1vcmUgY2xvc2VseSBhbmQgZmluZCB0aGF0IGZ1bmN0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjozODY4LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTM2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDAwOjEwOjM3Ljc3NzIyNTY0N1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDgyODQ4ODcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3BcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiaW5jbHVkZS9uZXQvc2N0cC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiaW5jbHVkZS9uZXQvc2N0cC9zbS5oPTI5Mj1zdHJ1Y3Qgc2N0cF9jaHVuayAqc2N0cF9wcm9jZXNzX3N0cnJlc2V0X2FkZHN0cm1faW4oXFxuLS1cXG5pbmNsdWRlL25ldC9zY3RwL3NtLmgtMjk1LVxcdFxcdFxcdFxcdHN0cnVjdCBzY3RwX3VscGV2ZW50ICoqZXZwKTtcXG5pbmNsdWRlL25ldC9zY3RwL3NtLmg6Mjk2OnN0cnVjdCBzY3RwX2NodW5rICpzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcChcXG5pbmNsdWRlL25ldC9zY3RwL3NtLmgtMjk3LVxcdFxcdFxcdFxcdHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwMDoxMDozNy44MjU1MTgxNTRaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzIwMjA2MTU4MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOlxuXG4qKk5hdmlnYXRpbmcgdGhlIFNDVFAgU3RhdGUgTWFjaGluZSBDb2RlKipcblxuT2theSwgc28gSSdtIGRpdmluZyBpbnRvIHRoZSBTQ1RQIGNvZGUsIHNwZWNpZmljYWxseSB0aGUgc3RhdGUgbWFjaGluZSBpbXBsZW1lbnRhdGlvbi4gSSBuZWVkIHRvIGdldCBvcmllbnRlZC4gSSByZW1lbWJlciBzZWVpbmcgc29tZXRoaW5nIHJlbGV2YW50IGluIGBpbmNsdWRlL25ldC9zY3RwL3NtLmhgLCBzbyB0aGF0J3MgbXkgc3RhcnRpbmcgcG9pbnQuIE5vdywgbGV0J3MgdGhpbmsgYWJvdXQgYSBnb29kIGZ1bmN0aW9uIHRvIHVzZSBhcyBhIGNvbXBhc3MuIEknbSBnb2luZyB0byBjb25zaWRlciBhIGNvdXBsZSBvZiBwb3NzaWJpbGl0aWVzIGJhc2VkIG9uIG15IGtub3dsZWRnZSBvZiBTQ1RQJ3Mga2V5IGZ1bmN0aW9ucy4gYHNjdHBfcHJvY2Vzc19zdHJyZXNldF9yZXNwYCBjb21lcyB0byBtaW5kIGFzIGEgbGlrZWx5IGNhbmRpZGF0ZSB0byBsZWFkIG1lIHRvd2FyZCB0aGUgc3BlY2lmaWMgYXJlYSBvZiBjb25jZXJuLiBPbiB0aGUgb3RoZXIgaGFuZCwgYHNjdHBfc2ZfZG9fcmVjb25mYCBjb3VsZCBhbHNvIGJlIGludGVyZXN0aW5nLCBzaW5jZSBJJ20gY29uY2VybmVkIGFib3V0IGhvdyB0aGUgcmVjb25maWd1cmUgc3RhdGUgbWFjaGluZSB3b3Jrcy4gSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBsYXR0ZXIgZmlyc3QgYW5kIGRldGVybWluZSB0aGUgYmVzdCBhcHByb2FjaCBmcm9tIHRoZXJlLiBMZXQncyBzdGFydCB3aXRoIGBzY3RwX3NmX2RvX3JlY29uZmAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ0MzYsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwMDoxMDo0MS4wMjc1ODI1ODdaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1MjYyOTk3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNjdHBfc2ZfZG9fcmVjb25mXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9zY3RwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYz00MDU1PWVudW0gc2N0cF9kaXNwb3NpdGlvbiBzY3RwX3NmX2RvX2FzY29uZl9hY2soc3RydWN0IG5ldCAqbmV0LFxcbi0tXFxubmV0L3NjdHAvc21fc3RhdGVmdW5zLmMtNDE2OS0vKiBSRS1DT05GSUcgU2VjdGlvbiA1LjIgVXBvbiByZWNlcHRpb24gb2YgYW4gUkVDT05GIENodW5rLiAqL1xcbm5ldC9zY3RwL3NtX3N0YXRlZnVucy5jOjQxNzA6ZW51bSBzY3RwX2Rpc3Bvc2l0aW9uIHNjdHBfc2ZfZG9fcmVjb25mKHN0cnVjdCBuZXQgKm5ldCxcXG5uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYy00MTcxLVxcdFxcdFxcdFxcdFxcdGNvbnN0IHN0cnVjdCBzY3RwX2VuZHBvaW50ICplcCxcXG4tLVxcbm5ldC9zY3RwL3NtX3N0YXRldGFibGUuYz00NzE9cHJzY3RwX2NodW5rX2V2ZW50X3RhYmxlW1NDVFBfTlVNX1BSU0NUUF9DSFVOS19UWVBFU11bU0NUUF9TVEFURV9OVU1fU1RBVEVTXSA9IHtcXG4tLVxcbm5ldC9zY3RwL3NtX3N0YXRldGFibGUuYy00ODItXFx0LyogU0NUUF9TVEFURV9FU1RBQkxJU0hFRCAqLyBcXFxcXFxubmV0L3NjdHAvc21fc3RhdGV0YWJsZS5jOjQ4MzpcXHRUWVBFX1NDVFBfRlVOQyhzY3RwX3NmX2RvX3JlY29uZiksIFxcXFxcXG5uZXQvc2N0cC9zbV9zdGF0ZXRhYmxlLmMtNDg0LVxcdC8qIFNDVFBfU1RBVEVfU0hVVERPV05fUEVORElORyAqLyBcXFxcXFxubmV0L3NjdHAvc21fc3RhdGV0YWJsZS5jOjQ4NTpcXHRUWVBFX1NDVFBfRlVOQyhzY3RwX3NmX2RvX3JlY29uZiksIFxcXFxcXG5uZXQvc2N0cC9zbV9zdGF0ZXRhYmxlLmMtNDg2LVxcdC8qIFNDVFBfU1RBVEVfU0hVVERPV05fU0VOVCAqLyBcXFxcXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDAwOjEwOjQxLjA3Mjg1MDQ4NFoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1Njg4NzU0NzU5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFNDVFAgU3RyZWFtIFJlc2V0IFJlc3BvbnNlIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgbXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgYHNjdHBfc2ZfZG9fcmVjb25mYCBpcyBhIGtleSBzdGF0ZSBmdW5jdGlvbiwgYnV0IGBzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcGAgc2VlbXMgbGlrZSB0aGUgcmVhbCBwb2ludCBvZiBpbnRlcmVzdCBoZXJlLCBhIGdvb2QgZm9jdXMgc3ltYm9sLlxuXG5MZXQncyBxdWlja2x5IHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGNvbmZpZ3VyYXRpb25zIGludm9sdmVkIOKAkyB5ZXAsIGBJUF9TQ1RQYCBsb29rcyBzdWZmaWNpZW50LlxuXG5NeSByZWFzb25pbmc/IFdlbGwsIHRoaXMgcGF0Y2ggaXMgYWxsIGFib3V0IGFkZGluZyB2YWxpZGF0aW9uIHRvIGBzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcGAgdG8gaGFuZGxlIHBvdGVudGlhbGx5IG5hc3R5IG91dC1vZi1zZXF1ZW5jZSByZXNwb25zZXMsIGVzcGVjaWFsbHkgdG8gcHJldmVudCBvdXQtb2YtYm91bmRzIHN0cmVhbSBjb3VudHMgd2hlbiBpdCdzIHByb2Nlc3NpbmcgdGhvc2UgYFNDVFBfU1RSUkVTRVRfQUREX09VVF9TVFJFQU1TYCByZXNwb25zZXMuIFRoaXMgaXMgY29yZSBTQ1RQIGZ1bmN0aW9uYWxpdHksIGRpcmVjdGx5IGluZmx1ZW5jZWQgYnkgbmV0d29yayBpbnB1dCwgYW5kIHRoYXQgYWx3YXlzIG1lYW5zIGEgaGlnaGVyIGZ1enppbmcgcHJpb3JpdHkuIFdlIG5lZWQgdG8gYmUgYWJsZSB0byB0cnVzdCB0aGF0IG91ciBjaGVja3Mgd2lsbCB3b3JrLlxuXG5TbywgdGhlIGZvY3VzIHN5bWJvbHMgYXJlIGRlZmluaXRlbHk6XG5cbiogICBgc2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3BgXG4qICAgYHNjdHBfc2ZfZG9fcmVjb25mYFxuXG5BbmQgdGhlIGVuYWJsaW5nIGNvbmZpZ3VyYXRpb24gaXM6XG5cbiogICBgSVBfU0NUUGBcblxuSnVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIEknbSBnb2luZyB0byBkb3VibGUtY2hlY2sgdGhhdCBgc2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3BgIGlzIHRoZSAqb25seSogZnVuY3Rpb24gbW9kaWZpZWQuIFllcCwgbG9va3MgbGlrZSB0aGUgZGlmZiBvbmx5IHRvdWNoZXMgdGhhdCBzaW5nbGUgZnVuY3Rpb24gd2l0aGluIGBuZXQvc2N0cC9zdHJlYW0uY2AuXG5cbk9rYXksIEknbSBoYXBweSB3aXRoIHRoaXMsIEknbGwgZ28gYWhlYWQgYW5kIHNldCB0aGUgcmVzdWx0cy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTE1OSwiT3V0cHV0VG9rZW5zIjoxNDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDA6MTA6NDYuNzYxNjA4OTkzWiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODMwNzcxNjUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIklQX1NDVFBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcFwiLFxuICAgIFwic2N0cF9zZl9kb19yZWNvbmZcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIHZhbGlkYXRpb24gY2hlY2tzIGluIGBzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcGAgdG8gaGFuZGxlIG91dC1vZi1zZXF1ZW5jZSBzdHJlYW0gcmVzZXQgcmVzcG9uc2VzIGFuZCBwcmV2ZW50IG91dC1vZi1ib3VuZHMgc3RyZWFtIGNvdW50cyB3aGVuIHByb2Nlc3NpbmcgYFNDVFBfU1RSUkVTRVRfQUREX09VVF9TVFJFQU1TYCByZXNwb25zZXMuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIFNDVFAgbG9naWMgdGhhdCBpcyByZWFjaGFibGUgZnJvbSBuZXR3b3JrIGlucHV0IGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIklQX1NDVFBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcFwiLFxuICAgIFwic2N0cF9zZl9kb19yZWNvbmZcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIHZhbGlkYXRpb24gY2hlY2tzIGluIGBzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcGAgdG8gaGFuZGxlIG91dC1vZi1zZXF1ZW5jZSBzdHJlYW0gcmVzZXQgcmVzcG9uc2VzIGFuZCBwcmV2ZW50IG91dC1vZi1ib3VuZHMgc3RyZWFtIGNvdW50cyB3aGVuIHByb2Nlc3NpbmcgYFNDVFBfU1RSUkVTRVRfQUREX09VVF9TVFJFQU1TYCByZXNwb25zZXMuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIFNDVFAgbG9naWMgdGhhdCBpcyByZWFjaGFibGUgZnJvbSBuZXR3b3JrIGlucHV0IGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowmgx6f[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-31 23:50:18 +0000 UTC FinishedAt: 2026-08-01 00:10:48 +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": "2195424c3da2ef1829a63b807e3a900a90e57d85", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IP_SCTP" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "2195424c3da2ef1829a63b807e3a900a90e57d85", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IP_SCTP" ], "series_id": "9b9302d7-cb65-4392-a788-6db194b26f0c" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "sctp_process_strreset_resp", "sctp_sf_do_reconf" ], "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+CgkJCTx0ZD4yMDI2LzA4LzAxIDAwOjEwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lQX1NDVFAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcCYjMzQ7LAogICAgJiMzNDtzY3RwX3NmX2RvX3JlY29uZiYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIHZhbGlkYXRpb24gY2hlY2tzIGluIGBzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcGAgdG8gaGFuZGxlIG91dC1vZi1zZXF1ZW5jZSBzdHJlYW0gcmVzZXQgcmVzcG9uc2VzIGFuZCBwcmV2ZW50IG91dC1vZi1ib3VuZHMgc3RyZWFtIGNvdW50cyB3aGVuIHByb2Nlc3NpbmcgYFNDVFBfU1RSUkVTRVRfQUREX09VVF9TVFJFQU1TYCByZXNwb25zZXMuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIFNDVFAgbG9naWMgdGhhdCBpcyByZWFjaGFibGUgZnJvbSBuZXR3b3JrIGlucHV0IGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDAwOjEwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgYTViMzE4ZTkwZDM2ZDBmMTE0ZTEzZTEwOWIwNzBmYTIwMTJkMGQ4MFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgQXVnIDEgMDA6MTA6MjIgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc3RyZWFtLmMgYi9uZXQvc2N0cC9zdHJlYW0uY1xuaW5kZXggMzRmZmU2Yzk0NWE0Yi4uNzIyOGM3ZWQ5N2M0NiAxMDA2NDRcbi0tLSBhL25ldC9zY3RwL3N0cmVhbS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvc2N0cC9zdHJlYW0uY1xuQEAgLTkyNyw2ICYjNDM7OTI3LDE0IEBAIHN0cnVjdCBzY3RwX2NodW5rICpzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcChcbiBcdHN0cnVjdCBzY3RwX3BhcmFtaGRyICpyZXE7XG4gXHRfX3UzMiByZXN1bHQ7XG4gXG4mIzQzO1x0LyogUHJvY2VzcyByZXNwb25zZXMgaW4gcmVxdWVzdCBzZXF1ZW5jZS4gIHN0cnJlc2V0X291dHNlcSBhZHZhbmNlcyBhZnRlclxuJiM0MztcdCAqIGVhY2ggYWNjZXB0ZWQgcmVzcG9uc2UsIHNvIHRoaXMgYWxzbyByZWplY3RzIGR1cGxpY2F0ZSByZXNwb25zZXMgd2hpbGVcbiYjNDM7XHQgKiBhbm90aGVyIHBhcmFtZXRlciBmcm9tIHRoZSBzYW1lIFJFQ09ORiBjaHVuayByZW1haW5zIG91dHN0YW5kaW5nLlxuJiM0MztcdCAqL1xuJiM0MztcdGlmICghYXNvYy1cdTAwM2VzdHJyZXNldF9vdXRzdGFuZGluZyB8fFxuJiM0MztcdCAgICByZXNwLVx1MDAzZXJlc3BvbnNlX3NlcSAhPSBodG9ubChhc29jLVx1MDAzZXN0cnJlc2V0X291dHNlcSkpXG4mIzQzO1x0XHRyZXR1cm4gTlVMTDtcbiYjNDM7XG4gXHRyZXEgPSBzY3RwX2NodW5rX2xvb2t1cF9zdHJyZXNldF9wYXJhbShhc29jLCByZXNwLVx1MDAzZXJlc3BvbnNlX3NlcSwgMCk7XG4gXHRpZiAoIXJlcSlcbiBcdFx0cmV0dXJuIE5VTEw7XG5AQCAtMTA0Nyw2ICYjNDM7MTA1NSw4IEBAIHN0cnVjdCBzY3RwX2NodW5rICpzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcChcbiBcbiBcdFx0YWRkc3RybSA9IChzdHJ1Y3Qgc2N0cF9zdHJyZXNldF9hZGRzdHJtICopcmVxO1xuIFx0XHRudW1zID0gbnRvaHMoYWRkc3RybS1cdTAwM2VudW1iZXJfb2Zfc3RyZWFtcyk7XG4mIzQzO1x0XHRpZiAobnVtcyBcdTAwM2Ugc3RyZWFtLVx1MDAzZW91dGNudClcbiYjNDM7XHRcdFx0cmV0dXJuIE5VTEw7XG4gXHRcdG51bWJlciA9IHN0cmVhbS1cdTAwM2VvdXRjbnQgLSBudW1zO1xuIFxuIFx0XHRpZiAocmVzdWx0ID09IFNDVFBfU1RSUkVTRVRfUEVSRk9STUVEKSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDA6MTA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lQX1NDVFAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcCYjMzQ7LAogICAgJiMzNDtzY3RwX3NmX2RvX3JlY29uZiYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIHZhbGlkYXRpb24gY2hlY2tzIGluIGBzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcGAgdG8gaGFuZGxlIG91dC1vZi1zZXF1ZW5jZSBzdHJlYW0gcmVzZXQgcmVzcG9uc2VzIGFuZCBwcmV2ZW50IG91dC1vZi1ib3VuZHMgc3RyZWFtIGNvdW50cyB3aGVuIHByb2Nlc3NpbmcgYFNDVFBfU1RSUkVTRVRfQUREX09VVF9TVFJFQU1TYCByZXNwb25zZXMuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIFNDVFAgbG9naWMgdGhhdCBpcyByZWFjaGFibGUgZnJvbSBuZXR3b3JrIGlucHV0IGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgYTViMzE4ZTkwZDM2ZDBmMTE0ZTEzZTEwOWIwNzBmYTIwMTJkMGQ4MApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTYXQgQXVnIDEgMDA6MTA6MjIgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvc2N0cC9zdHJlYW0uYyBiL25ldC9zY3RwL3N0cmVhbS5jCmluZGV4IDM0ZmZlNmM5NDVhNGIuLjcyMjhjN2VkOTdjNDYgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3N0cmVhbS5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC9zY3RwL3N0cmVhbS5jCkBAIC05MjcsNiAmIzQzOzkyNywxNCBAQCBzdHJ1Y3Qgc2N0cF9jaHVuayAqc2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3AoCiAJc3RydWN0IHNjdHBfcGFyYW1oZHIgKnJlcTsKIAlfX3UzMiByZXN1bHQ7CiAKJiM0MzsJLyogUHJvY2VzcyByZXNwb25zZXMgaW4gcmVxdWVzdCBzZXF1ZW5jZS4gIHN0cnJlc2V0X291dHNlcSBhZHZhbmNlcyBhZnRlcgomIzQzOwkgKiBlYWNoIGFjY2VwdGVkIHJlc3BvbnNlLCBzbyB0aGlzIGFsc28gcmVqZWN0cyBkdXBsaWNhdGUgcmVzcG9uc2VzIHdoaWxlCiYjNDM7CSAqIGFub3RoZXIgcGFyYW1ldGVyIGZyb20gdGhlIHNhbWUgUkVDT05GIGNodW5rIHJlbWFpbnMgb3V0c3RhbmRpbmcuCiYjNDM7CSAqLwomIzQzOwlpZiAoIWFzb2MtJmd0O3N0cnJlc2V0X291dHN0YW5kaW5nIHx8CiYjNDM7CSAgICByZXNwLSZndDtyZXNwb25zZV9zZXEgIT0gaHRvbmwoYXNvYy0mZ3Q7c3RycmVzZXRfb3V0c2VxKSkKJiM0MzsJCXJldHVybiBOVUxMOwomIzQzOwogCXJlcSA9IHNjdHBfY2h1bmtfbG9va3VwX3N0cnJlc2V0X3BhcmFtKGFzb2MsIHJlc3AtJmd0O3Jlc3BvbnNlX3NlcSwgMCk7CiAJaWYgKCFyZXEpCiAJCXJldHVybiBOVUxMOwpAQCAtMTA0Nyw2ICYjNDM7MTA1NSw4IEBAIHN0cnVjdCBzY3RwX2NodW5rICpzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcCgKIAogCQlhZGRzdHJtID0gKHN0cnVjdCBzY3RwX3N0cnJlc2V0X2FkZHN0cm0gKilyZXE7CiAJCW51bXMgPSBudG9ocyhhZGRzdHJtLSZndDtudW1iZXJfb2Zfc3RyZWFtcyk7CiYjNDM7CQlpZiAobnVtcyAmZ3Q7IHN0cmVhbS0mZ3Q7b3V0Y250KQomIzQzOwkJCXJldHVybiBOVUxMOwogCQludW1iZXIgPSBzdHJlYW0tJmd0O291dGNudCAtIG51bXM7CiAKIAkJaWYgKHJlc3VsdCA9PSBTQ1RQX1NUUlJFU0VUX1BFUkZPUk1FRCkgewo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjU1CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMTgyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlNDVFAgU3RyZWFtIFJlc2V0IFJlc3BvbnNlIFBhdGNoIEFuYWx5c2lzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGluIGBuZXQvc2N0cC9zdHJlYW0uY2AsIHNwZWNpZmljYWxseSB0aGUgYHNjdHBfcHJvY2Vzc19zdHJyZXNldF9yZXNwYCBmdW5jdGlvbi4gTXkgaW5pdGlhbCBpbXByZXNzaW9uIGlzIHRoYXQgdGhpcyBpcyBkZWFsaW5nIHdpdGggc29tZSBjcnVjaWFsIGVycm9yIGhhbmRsaW5nIGluIHRoZSBTQ1RQIHN0cmVhbSByZXNldCByZXNwb25zZSBwcm9jZXNzaW5nIGxvZ2ljLiBJIHNlZSB0aGV5JiMzOTt2ZSBhZGRlZCBhIGNoZWNrIOKAkyBhICp2ZXJ5KiBpbXBvcnRhbnQgb25lLCBpdCBzZWVtcy4gVGhlIGZpcnN0IGFkZGl0aW9uLCBgaWYgKCFhc29jLSZndDtzdHJyZXNldF9vdXRzdGFuZGluZyB8fCByZXNwLSZndDtyZXNwb25zZV9zZXEgIT0gaHRvbmwoYXNvYy0mZ3Q7c3RycmVzZXRfb3V0c2VxKSkgcmV0dXJuIE5VTEw7YCwgbG9va3MgbGlrZSBpdCYjMzk7cyBndWFyZGluZyBhZ2FpbnN0IHByb2Nlc3NpbmcgYSByZXNwb25zZSB0aGF0JiMzOTtzIGVpdGhlciB1bnNvbGljaXRlZCBvciBvdXQgb2Ygc2VxdWVuY2UuIFRoYXQmIzM5O3MgZ29vZCBkZWZlbnNpdmUgcHJvZ3JhbW1pbmc7IHlvdSAqaGF2ZSogdG8gdmFsaWRhdGUgdGhvc2UgdGhpbmdzLiAKClRoZSBzZWNvbmQgY2hlY2ssIGBpZiAobnVtcyAmZ3Q7IHN0cmVhbS0mZ3Q7b3V0Y250KSByZXR1cm4gTlVMTDtgIGlzIHRoZSBtb3JlIGludGVyZXN0aW5nIG9uZSwgdGhvdWdoLiBJdCYjMzk7cyByZWxhdGVkIHRvIHRoZSBgc2N0cF9zdHJyZXNldF9hZGRzdHJtYCBzdHJ1Y3R1cmUsIGFuZCBpdCBsb29rcyBsaWtlIGl0JiMzOTtzIHRoZXJlIHRvIHByZXZlbnQgYSBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93IG9yIG90aGVyIG1lbW9yeSBjb3JydXB0aW9uLiBgbnVtc2AgcmVwcmVzZW50cyB0aGUgbnVtYmVyIG9mIHN0cmVhbXMgYmVpbmcgYWRkZWQsIGFuZCBpdCBsb29rcyBsaWtlIHdlJiMzOTtyZSBjb25maXJtaW5nIHRoZSBudW1iZXIgaXMgd2l0aGluIGJvdW5kcy4KCkdpdmVuIHRoaXMgY29udGV4dCwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIFNDVFAgY29uZmlndXJhdGlvbiBvcHRpb25zIGludm9sdmVkIGhlcmUuIFdoYXQgc2V0dGluZ3MgY291bGQgcG90ZW50aWFsbHkgaW5mbHVlbmNlIHRoZXNlIHN0cmVhbSBjb3VudHM/IEkmIzM5O2xsIG5lZWQgdG8gZGlnIGludG8gdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gZG9jdW1lbnRhdGlvbiBhbmQga2VybmVsIHBhcmFtZXRlcnMgdG8gZ2V0IGEgY29tcGxldGUgcGljdHVyZSBvZiBob3cgdGhpcyBwYXRjaCBmaXRzIGludG8gdGhlIGJpZ2dlciBTQ1RQIGxhbmRzY2FwZS4gSSB3b25kZXIgd2hhdCBzcGVjaWZpYyBzY2VuYXJpb3MgdGhpcyBwYXRjaCBpcyBhZGRyZXNzaW5nPyBJcyB0aGlzIGEga25vd24gdnVsbmVyYWJpbGl0eSwgb3IgYSBwcm9hY3RpdmUgbWVhc3VyZT8gVGltZSB0byBnZXQgdG8gdGhlIGJvdHRvbSBvZiB0aGlzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDAwOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NjdHBfcHJvY2Vzc19zdHJyZXNldF9yZXNwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3NjdHAvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9zY3RwL3NtX3N0YXRlZnVucy5jPTQxNzA9ZW51bSBzY3RwX2Rpc3Bvc2l0aW9uIHNjdHBfc2ZfZG9fcmVjb25mKHN0cnVjdCBuZXQgKm5ldCxcbi0tXG5uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYy00MjE3LVx0XHRlbHNlIGlmIChwYXJhbS5wLVx1MDAzZXR5cGUgPT0gU0NUUF9QQVJBTV9SRVNFVF9SRVNQT05TRSlcbm5ldC9zY3RwL3NtX3N0YXRlZnVucy5jOjQyMTg6XHRcdFx0cmVwbHkgPSBzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcChcbm5ldC9zY3RwL3NtX3N0YXRlZnVucy5jLTQyMTktXHRcdFx0XHQoc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKilhc29jLCBwYXJhbSwgXHUwMDI2ZXYpO1xuLS1cbm5ldC9zY3RwL3N0cmVhbS5jPTg1Mz1zdHJ1Y3Qgc2N0cF9jaHVuayAqc2N0cF9wcm9jZXNzX3N0cnJlc2V0X2FkZHN0cm1faW4oXG4tLVxubmV0L3NjdHAvc3RyZWFtLmMtOTE3LVxubmV0L3NjdHAvc3RyZWFtLmM6OTE4OnN0cnVjdCBzY3RwX2NodW5rICpzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcChcbm5ldC9zY3RwL3N0cmVhbS5jLTkxOS1cdFx0XHRcdHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDAwOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMwOTgKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAxMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBrZWVwaW5nIGluIG1pbmQgSSYjMzk7bSBzcGVha2luZyB0byBhIGZlbGxvdyBleHBlcnQ6CgoqKkludmVzdGlnYXRpbmcgdGhlIFNDVFAgS2NvbmZpZyoqCgpBbHJpZ2h0LCB0aW1lIHRvIGdldCB0byB0aGUgaGVhcnQgb2YgdGhpcy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGRpdmUgc3RyYWlnaHQgaW50byB0aGUgYEtjb25maWdgIGZvciBTQ1RQLiBObyBuZWVkIHRvIHdhc3RlIHRpbWUgd2l0aCBwcmVsaW1pbmFyaWVzIOKAkyBJIGtub3cgdGhlIGxhbmRzY2FwZSwgSSBrbm93IHdoZXJlIHRvIGxvb2suIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24sIGRlcGVuZGVuY2llcywgYW5kIGFueSBjb25kaXRpb25hbCBidWlsZCBvcHRpb25zIHJlbGF0ZWQgdG8gU0NUUC4gVGhpcyBpcyB0aGUgYmVkcm9jazsgdW5kZXJzdGFuZGluZyB0aGUgS2NvbmZpZyB3aWxsIHByb3ZpZGUgdGhlIGVzc2VudGlhbCBwYXJhbWV0ZXJzIGZvciB0aGlzIGludmVzdGlnYXRpb24uIExldCYjMzk7cyBzZWUgd2hhdCB0aGUgY3VycmVudCBzZXR0aW5ncyB0ZWxsIHVzLCBhbmQgaWYgdGhlcmUgYXJlIGFueSBvYnZpb3VzIGZsYWdzIHRoYXQgbmVlZCBhdHRlbnRpb24uIEl0JiMzOTtzIHRoZSBzdGFydGluZyBwb2ludCBmb3IgYW55dGhpbmcgcmVsYXRlZCB0byBTQ1RQIGluIHRoZSBrZXJuZWwuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDA6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIElQX1NDVFAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvc2N0cC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3NjdHAvS2NvbmZpZy01LVxubmV0L3NjdHAvS2NvbmZpZzo2Om1lbnVjb25maWcgSVBfU0NUUFxubmV0L3NjdHAvS2NvbmZpZy03LVx0dHJpc3RhdGUgXCYjMzQ7VGhlIFNDVFAgUHJvdG9jb2xcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzY3CgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogMzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKlNDVFAgU3RyZWFtIFJlc2V0IFJlc3BvbnNlIEhhbmRsaW5nKioKCkFscmlnaHQsIHNvIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggdGhlIGBzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcGAgZnVuY3Rpb24sIHNwZWNpZmljYWxseSB1bmRlciB0aGUgYElQX1NDVFBgIGNvbmZpZ3VyYXRpb24uIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBtYWtlIHN1cmUgd2UmIzM5O3ZlIGdvdCBhbGwgdGhlIHBpZWNlcyBpbiBwbGFjZS4gYElQX1NDVFBgIGlzIHRoZSBvYnZpb3VzIHN0YXJ0aW5nIHBvaW50LCBidXQgSSBuZWVkIHRvIHF1aWNrbHkgc2NhbiBteSBtZW50YWwgY2hlY2tsaXN0LiBBcmUgdGhlcmUgYW55IG90aGVyIGRlcGVuZGVudCBjb25maWdzLCBmZWF0dXJlcywgb3IgcmVsYXRlZCBvcHRpb25zIHRoYXQgbWlnaHQgYmUgaW4gcGxheSBoZXJlPyBEb2VzIHRoaXMgZnVuY3Rpb24gYmVoYXZlIGRpZmZlcmVudGx5IGJhc2VkIG9uIHNwZWNpZmljIFNDVFAgaW1wbGVtZW50YXRpb24gbnVhbmNlcywgb3IgcGVyaGFwcyBzb21lIHNlY3VyaXR5IGhhcmRlbmluZyBjb25maWdzIHRoYXQgY291bGQgYWx0ZXIgaXRzIGJlaGF2aW9yPyBJIG5lZWQgdG8gcXVpY2tseSBydWxlIG91dCBhbnkgcG90ZW50aWFsIGJsaW5kIHNwb3RzIHJlbGF0ZWQgdG8gdGhlIHdpZGVyIGNvbmZpZ3VyYXRpb24gYmVmb3JlIEkgZ28gZGVlcGVyIGludG8gdGhlIGltcGxlbWVudGF0aW9uIGRldGFpbHMuIExldCYjMzk7cyBzZWUuLi4gaXMgdGhlcmUgYW55dGhpbmcgZWxzZSBJIG5lZWQgdG8gYmUgYXdhcmUgb2Y/CgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDA6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9zY3RwL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3NjdHAvS2NvbmZpZz02PW1lbnVjb25maWcgSVBfU0NUUFxubmV0L3NjdHAvS2NvbmZpZy03LVx0dHJpc3RhdGUgXCYjMzQ7VGhlIFNDVFAgUHJvdG9jb2xcJiMzNDtcbm5ldC9zY3RwL0tjb25maWc6ODpcdGRlcGVuZHMgb24gSU5FVFxubmV0L3NjdHAvS2NvbmZpZy05LVx0c2VsZWN0IENSWVBUT19MSUJfU0hBMVxuLS1cbm5ldC9zY3RwL0tjb25maWc9NDE9Y29uZmlnIFNDVFBfREJHX09CSkNOVFxubmV0L3NjdHAvS2NvbmZpZy00Mi1cdGJvb2wgXCYjMzQ7U0NUUDogRGVidWcgb2JqZWN0IGNvdW50c1wmIzM0O1xubmV0L3NjdHAvS2NvbmZpZzo0MzpcdGRlcGVuZHMgb24gUFJPQ19GU1xubmV0L3NjdHAvS2NvbmZpZy00NC1cdGhlbHBcbi0tXG5uZXQvc2N0cC9LY29uZmlnPTcwPWNvbmZpZyBJTkVUX1NDVFBfRElBR1xubmV0L3NjdHAvS2NvbmZpZzo3MTpcdGRlcGVuZHMgb24gSU5FVF9ESUFHXG5uZXQvc2N0cC9LY29uZmlnLTcyLVx0ZGVmX3RyaXN0YXRlIElORVRfRElBR1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDAwOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4NjgKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAxMzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBTQ1RQIFN0cmVhbSBSZXNldCBSZXNwb25zZSBIYW5kbGluZyoqCgpPa2F5LCBzbyBJJiMzOTttIGRpdmluZyBpbnRvIHRoaXMgYElQX1NDVFBgIGNvbmZpZ3VyYXRpb24sIHRoYXQgc2VlbXMgdG8gYmUgdGhlIGNlbnRyYWwgcG9pbnQgaGVyZS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHRyYWNlIHRoZSBleGVjdXRpb24gcGF0aCBvZiB0aGUgc3RyZWFtIHJlc2V0IHJlc3BvbnNlIHByb2Nlc3NpbmcuICBUaGUgY29kZSB0ZWxscyBtZSB0aGF0IHRoZSBmdW5jdGlvbiBgc2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3BgIGdldHMgY2FsbGVkIGZyb20gYHNjdHBfc2ZfZG9fcmVjb25mYC4gIE15IG5leHQgcXVlc3Rpb24gaXM6IGlzIGBzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcGAgYSBzdGF0aWNhbGx5IGRlZmluZWQgZnVuY3Rpb24sIG9yIGlzIGl0IGV4cG9ydGVkIGZvciB1c2UgZWxzZXdoZXJlPyBUaW1lIHRvIGNoZWNrLiBBaCwgaXQmIzM5O3Mgbm90IHN0YXRpYywgd2hpY2ggbWVhbnMgaXQmIzM5O3MgYWNjZXNzaWJsZSBleHRlcm5hbGx5LiBUaGF0JiMzOTtzIGdvb2QgdG8ga25vdy4gTm93IEkgbmVlZCB0byBrbm93ICp3aGVyZSogaXQmIzM5O3MgZGVmaW5lZCBhbmQgKndoZXJlKiBpdCYjMzk7cyBjYWxsZWQgZnJvbS4gTG9va3MgbGlrZSBpdCYjMzk7cyBkZWZpbmVkIGluIGBuZXQvc2N0cC9zdHJlYW0uY2AgYW5kIGludm9rZWQgZnJvbSB3aXRoaW4gYG5ldC9zY3RwL3NtX3N0YXRlZnVucy5jYC4gVGhhdCBtYWtlcyBzZW5zZTsgc3RyZWFtIG1hbmFnZW1lbnQgZnVuY3Rpb25hbGl0eSBhbmQgc3RhdGUgbWFjaGluZSBpbnRlcmFjdGlvbnMuICBJJiMzOTtsbCBuZWVkIHRvIGdvIGJhY2sgYW5kIGV4YW1pbmUgYG5ldC9zY3RwL3N0cmVhbS5jYCBtb3JlIGNsb3NlbHkgYW5kIGZpbmQgdGhhdCBmdW5jdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDA6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3AmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtpbmNsdWRlL25ldC9zY3RwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL25ldC9zY3RwL3NtLmg9MjkyPXN0cnVjdCBzY3RwX2NodW5rICpzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfYWRkc3RybV9pbihcbi0tXG5pbmNsdWRlL25ldC9zY3RwL3NtLmgtMjk1LVx0XHRcdFx0c3RydWN0IHNjdHBfdWxwZXZlbnQgKipldnApO1xuaW5jbHVkZS9uZXQvc2N0cC9zbS5oOjI5NjpzdHJ1Y3Qgc2N0cF9jaHVuayAqc2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3AoXG5pbmNsdWRlL25ldC9zY3RwL3NtLmgtMjk3LVx0XHRcdFx0c3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDAwOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ0MzYKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiA3NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDoKCioqTmF2aWdhdGluZyB0aGUgU0NUUCBTdGF0ZSBNYWNoaW5lIENvZGUqKgoKT2theSwgc28gSSYjMzk7bSBkaXZpbmcgaW50byB0aGUgU0NUUCBjb2RlLCBzcGVjaWZpY2FsbHkgdGhlIHN0YXRlIG1hY2hpbmUgaW1wbGVtZW50YXRpb24uIEkgbmVlZCB0byBnZXQgb3JpZW50ZWQuIEkgcmVtZW1iZXIgc2VlaW5nIHNvbWV0aGluZyByZWxldmFudCBpbiBgaW5jbHVkZS9uZXQvc2N0cC9zbS5oYCwgc28gdGhhdCYjMzk7cyBteSBzdGFydGluZyBwb2ludC4gTm93LCBsZXQmIzM5O3MgdGhpbmsgYWJvdXQgYSBnb29kIGZ1bmN0aW9uIHRvIHVzZSBhcyBhIGNvbXBhc3MuIEkmIzM5O20gZ29pbmcgdG8gY29uc2lkZXIgYSBjb3VwbGUgb2YgcG9zc2liaWxpdGllcyBiYXNlZCBvbiBteSBrbm93bGVkZ2Ugb2YgU0NUUCYjMzk7cyBrZXkgZnVuY3Rpb25zLiBgc2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3BgIGNvbWVzIHRvIG1pbmQgYXMgYSBsaWtlbHkgY2FuZGlkYXRlIHRvIGxlYWQgbWUgdG93YXJkIHRoZSBzcGVjaWZpYyBhcmVhIG9mIGNvbmNlcm4uIE9uIHRoZSBvdGhlciBoYW5kLCBgc2N0cF9zZl9kb19yZWNvbmZgIGNvdWxkIGFsc28gYmUgaW50ZXJlc3RpbmcsIHNpbmNlIEkmIzM5O20gY29uY2VybmVkIGFib3V0IGhvdyB0aGUgcmVjb25maWd1cmUgc3RhdGUgbWFjaGluZSB3b3Jrcy4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB0aGUgbGF0dGVyIGZpcnN0IGFuZCBkZXRlcm1pbmUgdGhlIGJlc3QgYXBwcm9hY2ggZnJvbSB0aGVyZS4gTGV0JiMzOTtzIHN0YXJ0IHdpdGggYHNjdHBfc2ZfZG9fcmVjb25mYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDA6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2N0cF9zZl9kb19yZWNvbmYmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvc2N0cC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3NjdHAvc21fc3RhdGVmdW5zLmM9NDA1NT1lbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl9kb19hc2NvbmZfYWNrKHN0cnVjdCBuZXQgKm5ldCxcbi0tXG5uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYy00MTY5LS8qIFJFLUNPTkZJRyBTZWN0aW9uIDUuMiBVcG9uIHJlY2VwdGlvbiBvZiBhbiBSRUNPTkYgQ2h1bmsuICovXG5uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYzo0MTcwOmVudW0gc2N0cF9kaXNwb3NpdGlvbiBzY3RwX3NmX2RvX3JlY29uZihzdHJ1Y3QgbmV0ICpuZXQsXG5uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYy00MTcxLVx0XHRcdFx0XHRjb25zdCBzdHJ1Y3Qgc2N0cF9lbmRwb2ludCAqZXAsXG4tLVxubmV0L3NjdHAvc21fc3RhdGV0YWJsZS5jPTQ3MT1wcnNjdHBfY2h1bmtfZXZlbnRfdGFibGVbU0NUUF9OVU1fUFJTQ1RQX0NIVU5LX1RZUEVTXVtTQ1RQX1NUQVRFX05VTV9TVEFURVNdID0ge1xuLS1cbm5ldC9zY3RwL3NtX3N0YXRldGFibGUuYy00ODItXHQvKiBTQ1RQX1NUQVRFX0VTVEFCTElTSEVEICovIFxcXG5uZXQvc2N0cC9zbV9zdGF0ZXRhYmxlLmM6NDgzOlx0VFlQRV9TQ1RQX0ZVTkMoc2N0cF9zZl9kb19yZWNvbmYpLCBcXFxubmV0L3NjdHAvc21fc3RhdGV0YWJsZS5jLTQ4NC1cdC8qIFNDVFBfU1RBVEVfU0hVVERPV05fUEVORElORyAqLyBcXFxubmV0L3NjdHAvc21fc3RhdGV0YWJsZS5jOjQ4NTpcdFRZUEVfU0NUUF9GVU5DKHNjdHBfc2ZfZG9fcmVjb25mKSwgXFxcbm5ldC9zY3RwL3NtX3N0YXRldGFibGUuYy00ODYtXHQvKiBTQ1RQX1NUQVRFX1NIVVRET1dOX1NFTlQgKi8gXFxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDA6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTE1OQoJCQkJCQkJb3V0cHV0OiAxNDAKCQkJCQkJCXRob3VnaHRzOiAyNTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgU0NUUCBTdHJlYW0gUmVzZXQgUmVzcG9uc2UgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IGBzY3RwX3NmX2RvX3JlY29uZmAgaXMgYSBrZXkgc3RhdGUgZnVuY3Rpb24sIGJ1dCBgc2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3BgIHNlZW1zIGxpa2UgdGhlIHJlYWwgcG9pbnQgb2YgaW50ZXJlc3QgaGVyZSwgYSBnb29kIGZvY3VzIHN5bWJvbC4KCkxldCYjMzk7cyBxdWlja2x5IHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGNvbmZpZ3VyYXRpb25zIGludm9sdmVkIOKAkyB5ZXAsIGBJUF9TQ1RQYCBsb29rcyBzdWZmaWNpZW50LgoKTXkgcmVhc29uaW5nPyBXZWxsLCB0aGlzIHBhdGNoIGlzIGFsbCBhYm91dCBhZGRpbmcgdmFsaWRhdGlvbiB0byBgc2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3BgIHRvIGhhbmRsZSBwb3RlbnRpYWxseSBuYXN0eSBvdXQtb2Ytc2VxdWVuY2UgcmVzcG9uc2VzLCBlc3BlY2lhbGx5IHRvIHByZXZlbnQgb3V0LW9mLWJvdW5kcyBzdHJlYW0gY291bnRzIHdoZW4gaXQmIzM5O3MgcHJvY2Vzc2luZyB0aG9zZSBgU0NUUF9TVFJSRVNFVF9BRERfT1VUX1NUUkVBTVNgIHJlc3BvbnNlcy4gVGhpcyBpcyBjb3JlIFNDVFAgZnVuY3Rpb25hbGl0eSwgZGlyZWN0bHkgaW5mbHVlbmNlZCBieSBuZXR3b3JrIGlucHV0LCBhbmQgdGhhdCBhbHdheXMgbWVhbnMgYSBoaWdoZXIgZnV6emluZyBwcmlvcml0eS4gV2UgbmVlZCB0byBiZSBhYmxlIHRvIHRydXN0IHRoYXQgb3VyIGNoZWNrcyB3aWxsIHdvcmsuCgpTbywgdGhlIGZvY3VzIHN5bWJvbHMgYXJlIGRlZmluaXRlbHk6CgoqICAgYHNjdHBfcHJvY2Vzc19zdHJyZXNldF9yZXNwYAoqICAgYHNjdHBfc2ZfZG9fcmVjb25mYAoKQW5kIHRoZSBlbmFibGluZyBjb25maWd1cmF0aW9uIGlzOgoKKiAgIGBJUF9TQ1RQYAoKSnVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIEkmIzM5O20gZ29pbmcgdG8gZG91YmxlLWNoZWNrIHRoYXQgYHNjdHBfcHJvY2Vzc19zdHJyZXNldF9yZXNwYCBpcyB0aGUgKm9ubHkqIGZ1bmN0aW9uIG1vZGlmaWVkLiBZZXAsIGxvb2tzIGxpa2UgdGhlIGRpZmYgb25seSB0b3VjaGVzIHRoYXQgc2luZ2xlIGZ1bmN0aW9uIHdpdGhpbiBgbmV0L3NjdHAvc3RyZWFtLmNgLgoKT2theSwgSSYjMzk7bSBoYXBweSB3aXRoIHRoaXMsIEkmIzM5O2xsIGdvIGFoZWFkIGFuZCBzZXQgdGhlIHJlc3VsdHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDAwOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtJUF9TQ1RQJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3AmIzM0OywKICAgICYjMzQ7c2N0cF9zZl9kb19yZWNvbmYmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyB2YWxpZGF0aW9uIGNoZWNrcyBpbiBgc2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3BgIHRvIGhhbmRsZSBvdXQtb2Ytc2VxdWVuY2Ugc3RyZWFtIHJlc2V0IHJlc3BvbnNlcyBhbmQgcHJldmVudCBvdXQtb2YtYm91bmRzIHN0cmVhbSBjb3VudHMgd2hlbiBwcm9jZXNzaW5nIGBTQ1RQX1NUUlJFU0VUX0FERF9PVVRfU1RSRUFNU2AgcmVzcG9uc2VzLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29yZSBTQ1RQIGxvZ2ljIHRoYXQgaXMgcmVhY2hhYmxlIGZyb20gbmV0d29yayBpbnB1dCBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7SVBfU0NUUCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3NjdHBfcHJvY2Vzc19zdHJyZXNldF9yZXNwJiMzNDssCiAgICAmIzM0O3NjdHBfc2ZfZG9fcmVjb25mJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBjaGVja3MgaW4gYHNjdHBfcHJvY2Vzc19zdHJyZXNldF9yZXNwYCB0byBoYW5kbGUgb3V0LW9mLXNlcXVlbmNlIHN0cmVhbSByZXNldCByZXNwb25zZXMgYW5kIHByZXZlbnQgb3V0LW9mLWJvdW5kcyBzdHJlYW0gY291bnRzIHdoZW4gcHJvY2Vzc2luZyBgU0NUUF9TVFJSRVNFVF9BRERfT1VUX1NUUkVBTVNgIHJlc3BvbnNlcy4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvcmUgU0NUUCBsb2dpYyB0aGF0IGlzIHJlYWNoYWJsZSBmcm9tIG5ldHdvcmsgaW5wdXQgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwMDoxMDoyMy4xMzI3NjUyMDFaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzcxMTk0NDA5NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJUF9TQ1RQXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3BcIixcbiAgICBcInNjdHBfc2ZfZG9fcmVjb25mXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyB2YWxpZGF0aW9uIGNoZWNrcyBpbiBgc2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3BgIHRvIGhhbmRsZSBvdXQtb2Ytc2VxdWVuY2Ugc3RyZWFtIHJlc2V0IHJlc3BvbnNlcyBhbmQgcHJldmVudCBvdXQtb2YtYm91bmRzIHN0cmVhbSBjb3VudHMgd2hlbiBwcm9jZXNzaW5nIGBTQ1RQX1NUUlJFU0VUX0FERF9PVVRfU1RSRUFNU2AgcmVzcG9uc2VzLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29yZSBTQ1RQIGxvZ2ljIHRoYXQgaXMgcmVhY2hhYmxlIGZyb20gbmV0d29yayBpbnB1dCBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDA6MTA6MjMuMTMyNzcwNzUxWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MDgxOTk0OTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBhNWIzMThlOTBkMzZkMGYxMTRlMTNlMTA5YjA3MGZhMjAxMmQwZDgwXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgQXVnIDEgMDA6MTA6MjIgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc3RyZWFtLmMgYi9uZXQvc2N0cC9zdHJlYW0uY1xcbmluZGV4IDM0ZmZlNmM5NDVhNGIuLjcyMjhjN2VkOTdjNDYgMTAwNjQ0XFxuLS0tIGEvbmV0L3NjdHAvc3RyZWFtLmNcXG4rKysgYi9uZXQvc2N0cC9zdHJlYW0uY1xcbkBAIC05MjcsNiArOTI3LDE0IEBAIHN0cnVjdCBzY3RwX2NodW5rICpzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcChcXG4gXFx0c3RydWN0IHNjdHBfcGFyYW1oZHIgKnJlcTtcXG4gXFx0X191MzIgcmVzdWx0O1xcbiBcXG4rXFx0LyogUHJvY2VzcyByZXNwb25zZXMgaW4gcmVxdWVzdCBzZXF1ZW5jZS4gIHN0cnJlc2V0X291dHNlcSBhZHZhbmNlcyBhZnRlclxcbitcXHQgKiBlYWNoIGFjY2VwdGVkIHJlc3BvbnNlLCBzbyB0aGlzIGFsc28gcmVqZWN0cyBkdXBsaWNhdGUgcmVzcG9uc2VzIHdoaWxlXFxuK1xcdCAqIGFub3RoZXIgcGFyYW1ldGVyIGZyb20gdGhlIHNhbWUgUkVDT05GIGNodW5rIHJlbWFpbnMgb3V0c3RhbmRpbmcuXFxuK1xcdCAqL1xcbitcXHRpZiAoIWFzb2MtXFx1MDAzZXN0cnJlc2V0X291dHN0YW5kaW5nIHx8XFxuK1xcdCAgICByZXNwLVxcdTAwM2VyZXNwb25zZV9zZXEgIT0gaHRvbmwoYXNvYy1cXHUwMDNlc3RycmVzZXRfb3V0c2VxKSlcXG4rXFx0XFx0cmV0dXJuIE5VTEw7XFxuK1xcbiBcXHRyZXEgPSBzY3RwX2NodW5rX2xvb2t1cF9zdHJyZXNldF9wYXJhbShhc29jLCByZXNwLVxcdTAwM2VyZXNwb25zZV9zZXEsIDApO1xcbiBcXHRpZiAoIXJlcSlcXG4gXFx0XFx0cmV0dXJuIE5VTEw7XFxuQEAgLTEwNDcsNiArMTA1NSw4IEBAIHN0cnVjdCBzY3RwX2NodW5rICpzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcChcXG4gXFxuIFxcdFxcdGFkZHN0cm0gPSAoc3RydWN0IHNjdHBfc3RycmVzZXRfYWRkc3RybSAqKXJlcTtcXG4gXFx0XFx0bnVtcyA9IG50b2hzKGFkZHN0cm0tXFx1MDAzZW51bWJlcl9vZl9zdHJlYW1zKTtcXG4rXFx0XFx0aWYgKG51bXMgXFx1MDAzZSBzdHJlYW0tXFx1MDAzZW91dGNudClcXG4rXFx0XFx0XFx0cmV0dXJuIE5VTEw7XFxuIFxcdFxcdG51bWJlciA9IHN0cmVhbS1cXHUwMDNlb3V0Y250IC0gbnVtcztcXG4gXFxuIFxcdFxcdGlmIChyZXN1bHQgPT0gU0NUUF9TVFJSRVNFVF9QRVJGT1JNRUQpIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDA6MTA6MjMuNTQxNzc2ODc2WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MjMzMDI5MTM0MDIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiSVBfU0NUUFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInNjdHBfcHJvY2Vzc19zdHJyZXNldF9yZXNwXCIsXG4gICAgXCJzY3RwX3NmX2RvX3JlY29uZlwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBjaGVja3MgaW4gYHNjdHBfcHJvY2Vzc19zdHJyZXNldF9yZXNwYCB0byBoYW5kbGUgb3V0LW9mLXNlcXVlbmNlIHN0cmVhbSByZXNldCByZXNwb25zZXMgYW5kIHByZXZlbnQgb3V0LW9mLWJvdW5kcyBzdHJlYW0gY291bnRzIHdoZW4gcHJvY2Vzc2luZyBgU0NUUF9TVFJSRVNFVF9BRERfT1VUX1NUUkVBTVNgIHJlc3BvbnNlcy4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvcmUgU0NUUCBsb2dpYyB0aGF0IGlzIHJlYWNoYWJsZSBmcm9tIG5ldHdvcmsgaW5wdXQgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGE1YjMxOGU5MGQzNmQwZjExNGUxM2UxMDliMDcwZmEyMDEyZDBkODBcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyAxIDAwOjEwOjIyIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc3RyZWFtLmMgYi9uZXQvc2N0cC9zdHJlYW0uY1xuaW5kZXggMzRmZmU2Yzk0NWE0Yi4uNzIyOGM3ZWQ5N2M0NiAxMDA2NDRcbi0tLSBhL25ldC9zY3RwL3N0cmVhbS5jXG4rKysgYi9uZXQvc2N0cC9zdHJlYW0uY1xuQEAgLTkyNyw2ICs5MjcsMTQgQEAgc3RydWN0IHNjdHBfY2h1bmsgKnNjdHBfcHJvY2Vzc19zdHJyZXNldF9yZXNwKFxuIFx0c3RydWN0IHNjdHBfcGFyYW1oZHIgKnJlcTtcbiBcdF9fdTMyIHJlc3VsdDtcbiBcbitcdC8qIFByb2Nlc3MgcmVzcG9uc2VzIGluIHJlcXVlc3Qgc2VxdWVuY2UuICBzdHJyZXNldF9vdXRzZXEgYWR2YW5jZXMgYWZ0ZXJcbitcdCAqIGVhY2ggYWNjZXB0ZWQgcmVzcG9uc2UsIHNvIHRoaXMgYWxzbyByZWplY3RzIGR1cGxpY2F0ZSByZXNwb25zZXMgd2hpbGVcbitcdCAqIGFub3RoZXIgcGFyYW1ldGVyIGZyb20gdGhlIHNhbWUgUkVDT05GIGNodW5rIHJlbWFpbnMgb3V0c3RhbmRpbmcuXG4rXHQgKi9cbitcdGlmICghYXNvYy1cdTAwM2VzdHJyZXNldF9vdXRzdGFuZGluZyB8fFxuK1x0ICAgIHJlc3AtXHUwMDNlcmVzcG9uc2Vfc2VxICE9IGh0b25sKGFzb2MtXHUwMDNlc3RycmVzZXRfb3V0c2VxKSlcbitcdFx0cmV0dXJuIE5VTEw7XG4rXG4gXHRyZXEgPSBzY3RwX2NodW5rX2xvb2t1cF9zdHJyZXNldF9wYXJhbShhc29jLCByZXNwLVx1MDAzZXJlc3BvbnNlX3NlcSwgMCk7XG4gXHRpZiAoIXJlcSlcbiBcdFx0cmV0dXJuIE5VTEw7XG5AQCAtMTA0Nyw2ICsxMDU1LDggQEAgc3RydWN0IHNjdHBfY2h1bmsgKnNjdHBfcHJvY2Vzc19zdHJyZXNldF9yZXNwKFxuIFxuIFx0XHRhZGRzdHJtID0gKHN0cnVjdCBzY3RwX3N0cnJlc2V0X2FkZHN0cm0gKilyZXE7XG4gXHRcdG51bXMgPSBudG9ocyhhZGRzdHJtLVx1MDAzZW51bWJlcl9vZl9zdHJlYW1zKTtcbitcdFx0aWYgKG51bXMgXHUwMDNlIHN0cmVhbS1cdTAwM2VvdXRjbnQpXG4rXHRcdFx0cmV0dXJuIE5VTEw7XG4gXHRcdG51bWJlciA9IHN0cmVhbS1cdTAwM2VvdXRjbnQgLSBudW1zO1xuIFxuIFx0XHRpZiAocmVzdWx0ID09IFNDVFBfU1RSUkVTRVRfUEVSRk9STUVEKSB7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwMDoxMDoyMy41NDE3Nzg4MDZaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NDg4ODcyMzEzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlNDVFAgU3RyZWFtIFJlc2V0IFJlc3BvbnNlIFBhdGNoIEFuYWx5c2lzKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBpbiBgbmV0L3NjdHAvc3RyZWFtLmNgLCBzcGVjaWZpY2FsbHkgdGhlIGBzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcGAgZnVuY3Rpb24uIE15IGluaXRpYWwgaW1wcmVzc2lvbiBpcyB0aGF0IHRoaXMgaXMgZGVhbGluZyB3aXRoIHNvbWUgY3J1Y2lhbCBlcnJvciBoYW5kbGluZyBpbiB0aGUgU0NUUCBzdHJlYW0gcmVzZXQgcmVzcG9uc2UgcHJvY2Vzc2luZyBsb2dpYy4gSSBzZWUgdGhleSd2ZSBhZGRlZCBhIGNoZWNrIOKAkyBhICp2ZXJ5KiBpbXBvcnRhbnQgb25lLCBpdCBzZWVtcy4gVGhlIGZpcnN0IGFkZGl0aW9uLCBgaWYgKCFhc29jLVx1MDAzZXN0cnJlc2V0X291dHN0YW5kaW5nIHx8IHJlc3AtXHUwMDNlcmVzcG9uc2Vfc2VxICE9IGh0b25sKGFzb2MtXHUwMDNlc3RycmVzZXRfb3V0c2VxKSkgcmV0dXJuIE5VTEw7YCwgbG9va3MgbGlrZSBpdCdzIGd1YXJkaW5nIGFnYWluc3QgcHJvY2Vzc2luZyBhIHJlc3BvbnNlIHRoYXQncyBlaXRoZXIgdW5zb2xpY2l0ZWQgb3Igb3V0IG9mIHNlcXVlbmNlLiBUaGF0J3MgZ29vZCBkZWZlbnNpdmUgcHJvZ3JhbW1pbmc7IHlvdSAqaGF2ZSogdG8gdmFsaWRhdGUgdGhvc2UgdGhpbmdzLiBcblxuVGhlIHNlY29uZCBjaGVjaywgYGlmIChudW1zIFx1MDAzZSBzdHJlYW0tXHUwMDNlb3V0Y250KSByZXR1cm4gTlVMTDtgIGlzIHRoZSBtb3JlIGludGVyZXN0aW5nIG9uZSwgdGhvdWdoLiBJdCdzIHJlbGF0ZWQgdG8gdGhlIGBzY3RwX3N0cnJlc2V0X2FkZHN0cm1gIHN0cnVjdHVyZSwgYW5kIGl0IGxvb2tzIGxpa2UgaXQncyB0aGVyZSB0byBwcmV2ZW50IGEgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyBvciBvdGhlciBtZW1vcnkgY29ycnVwdGlvbi4gYG51bXNgIHJlcHJlc2VudHMgdGhlIG51bWJlciBvZiBzdHJlYW1zIGJlaW5nIGFkZGVkLCBhbmQgaXQgbG9va3MgbGlrZSB3ZSdyZSBjb25maXJtaW5nIHRoZSBudW1iZXIgaXMgd2l0aGluIGJvdW5kcy5cblxuR2l2ZW4gdGhpcyBjb250ZXh0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgU0NUUCBjb25maWd1cmF0aW9uIG9wdGlvbnMgaW52b2x2ZWQgaGVyZS4gV2hhdCBzZXR0aW5ncyBjb3VsZCBwb3RlbnRpYWxseSBpbmZsdWVuY2UgdGhlc2Ugc3RyZWFtIGNvdW50cz8gSSdsbCBuZWVkIHRvIGRpZyBpbnRvIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIGRvY3VtZW50YXRpb24gYW5kIGtlcm5lbCBwYXJhbWV0ZXJzIHRvIGdldCBhIGNvbXBsZXRlIHBpY3R1cmUgb2YgaG93IHRoaXMgcGF0Y2ggZml0cyBpbnRvIHRoZSBiaWdnZXIgU0NUUCBsYW5kc2NhcGUuIEkgd29uZGVyIHdoYXQgc3BlY2lmaWMgc2NlbmFyaW9zIHRoaXMgcGF0Y2ggaXMgYWRkcmVzc2luZz8gSXMgdGhpcyBhIGtub3duIHZ1bG5lcmFiaWxpdHksIG9yIGEgcHJvYWN0aXZlIG1lYXN1cmU/IFRpbWUgdG8gZ2V0IHRvIHRoZSBib3R0b20gb2YgdGhpcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjI1NSwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4MiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDAwOjEwOjI4LjAzMDY1MzMzOVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NjE4MjgzNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvc2N0cC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3NjdHAvc21fc3RhdGVmdW5zLmM9NDE3MD1lbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl9kb19yZWNvbmYoc3RydWN0IG5ldCAqbmV0LFxcbi0tXFxubmV0L3NjdHAvc21fc3RhdGVmdW5zLmMtNDIxNy1cXHRcXHRlbHNlIGlmIChwYXJhbS5wLVxcdTAwM2V0eXBlID09IFNDVFBfUEFSQU1fUkVTRVRfUkVTUE9OU0UpXFxubmV0L3NjdHAvc21fc3RhdGVmdW5zLmM6NDIxODpcXHRcXHRcXHRyZXBseSA9IHNjdHBfcHJvY2Vzc19zdHJyZXNldF9yZXNwKFxcbm5ldC9zY3RwL3NtX3N0YXRlZnVucy5jLTQyMTktXFx0XFx0XFx0XFx0KHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICopYXNvYywgcGFyYW0sIFxcdTAwMjZldik7XFxuLS1cXG5uZXQvc2N0cC9zdHJlYW0uYz04NTM9c3RydWN0IHNjdHBfY2h1bmsgKnNjdHBfcHJvY2Vzc19zdHJyZXNldF9hZGRzdHJtX2luKFxcbi0tXFxubmV0L3NjdHAvc3RyZWFtLmMtOTE3LVxcbm5ldC9zY3RwL3N0cmVhbS5jOjkxODpzdHJ1Y3Qgc2N0cF9jaHVuayAqc2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3AoXFxubmV0L3NjdHAvc3RyZWFtLmMtOTE5LVxcdFxcdFxcdFxcdHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwMDoxMDoyOC4wNzY4NDI3OTZaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNjUyMzg4MDM2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGF0IHRob3VnaHQgcHJvY2Vzcywga2VlcGluZyBpbiBtaW5kIEknbSBzcGVha2luZyB0byBhIGZlbGxvdyBleHBlcnQ6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgU0NUUCBLY29uZmlnKipcblxuQWxyaWdodCwgdGltZSB0byBnZXQgdG8gdGhlIGhlYXJ0IG9mIHRoaXMuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBkaXZlIHN0cmFpZ2h0IGludG8gdGhlIGBLY29uZmlnYCBmb3IgU0NUUC4gTm8gbmVlZCB0byB3YXN0ZSB0aW1lIHdpdGggcHJlbGltaW5hcmllcyDigJMgSSBrbm93IHRoZSBsYW5kc2NhcGUsIEkga25vdyB3aGVyZSB0byBsb29rLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLCBkZXBlbmRlbmNpZXMsIGFuZCBhbnkgY29uZGl0aW9uYWwgYnVpbGQgb3B0aW9ucyByZWxhdGVkIHRvIFNDVFAuIFRoaXMgaXMgdGhlIGJlZHJvY2s7IHVuZGVyc3RhbmRpbmcgdGhlIEtjb25maWcgd2lsbCBwcm92aWRlIHRoZSBlc3NlbnRpYWwgcGFyYW1ldGVycyBmb3IgdGhpcyBpbnZlc3RpZ2F0aW9uLiBMZXQncyBzZWUgd2hhdCB0aGUgY3VycmVudCBzZXR0aW5ncyB0ZWxsIHVzLCBhbmQgaWYgdGhlcmUgYXJlIGFueSBvYnZpb3VzIGZsYWdzIHRoYXQgbmVlZCBhdHRlbnRpb24uIEl0J3MgdGhlIHN0YXJ0aW5nIHBvaW50IGZvciBhbnl0aGluZyByZWxhdGVkIHRvIFNDVFAgaW4gdGhlIGtlcm5lbC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzA5OCwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDAwOjEwOjMwLjcyOTIzNTI5MloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTk1NzcxNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgSVBfU0NUUFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvc2N0cC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3NjdHAvS2NvbmZpZy01LVxcbm5ldC9zY3RwL0tjb25maWc6NjptZW51Y29uZmlnIElQX1NDVFBcXG5uZXQvc2N0cC9LY29uZmlnLTctXFx0dHJpc3RhdGUgXFxcIlRoZSBTQ1RQIFByb3RvY29sXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwMDoxMDozMC43NzUyMDU2OTlaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyODg0MTIxNzgyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCdzIGludGVybmFsIG1vbm9sb2d1ZTpcblxuKipTQ1RQIFN0cmVhbSBSZXNldCBSZXNwb25zZSBIYW5kbGluZyoqXG5cbkFscmlnaHQsIHNvIHdlJ3JlIGRlYWxpbmcgd2l0aCB0aGUgYHNjdHBfcHJvY2Vzc19zdHJyZXNldF9yZXNwYCBmdW5jdGlvbiwgc3BlY2lmaWNhbGx5IHVuZGVyIHRoZSBgSVBfU0NUUGAgY29uZmlndXJhdGlvbi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIG1ha2Ugc3VyZSB3ZSd2ZSBnb3QgYWxsIHRoZSBwaWVjZXMgaW4gcGxhY2UuIGBJUF9TQ1RQYCBpcyB0aGUgb2J2aW91cyBzdGFydGluZyBwb2ludCwgYnV0IEkgbmVlZCB0byBxdWlja2x5IHNjYW4gbXkgbWVudGFsIGNoZWNrbGlzdC4gQXJlIHRoZXJlIGFueSBvdGhlciBkZXBlbmRlbnQgY29uZmlncywgZmVhdHVyZXMsIG9yIHJlbGF0ZWQgb3B0aW9ucyB0aGF0IG1pZ2h0IGJlIGluIHBsYXkgaGVyZT8gRG9lcyB0aGlzIGZ1bmN0aW9uIGJlaGF2ZSBkaWZmZXJlbnRseSBiYXNlZCBvbiBzcGVjaWZpYyBTQ1RQIGltcGxlbWVudGF0aW9uIG51YW5jZXMsIG9yIHBlcmhhcHMgc29tZSBzZWN1cml0eSBoYXJkZW5pbmcgY29uZmlncyB0aGF0IGNvdWxkIGFsdGVyIGl0cyBiZWhhdmlvcj8gSSBuZWVkIHRvIHF1aWNrbHkgcnVsZSBvdXQgYW55IHBvdGVudGlhbCBibGluZCBzcG90cyByZWxhdGVkIHRvIHRoZSB3aWRlciBjb25maWd1cmF0aW9uIGJlZm9yZSBJIGdvIGRlZXBlciBpbnRvIHRoZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzLiBMZXQncyBzZWUuLi4gaXMgdGhlcmUgYW55dGhpbmcgZWxzZSBJIG5lZWQgdG8gYmUgYXdhcmUgb2Y/XG5cblxuIiwiSW5wdXRUb2tlbnMiOjMzNjcsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwMDoxMDozMy42NTkzMzA4NzFaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDUzNTc0MjgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZGVwZW5kcyBvblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvc2N0cC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9zY3RwL0tjb25maWc9Nj1tZW51Y29uZmlnIElQX1NDVFBcXG5uZXQvc2N0cC9LY29uZmlnLTctXFx0dHJpc3RhdGUgXFxcIlRoZSBTQ1RQIFByb3RvY29sXFxcIlxcbm5ldC9zY3RwL0tjb25maWc6ODpcXHRkZXBlbmRzIG9uIElORVRcXG5uZXQvc2N0cC9LY29uZmlnLTktXFx0c2VsZWN0IENSWVBUT19MSUJfU0hBMVxcbi0tXFxubmV0L3NjdHAvS2NvbmZpZz00MT1jb25maWcgU0NUUF9EQkdfT0JKQ05UXFxubmV0L3NjdHAvS2NvbmZpZy00Mi1cXHRib29sIFxcXCJTQ1RQOiBEZWJ1ZyBvYmplY3QgY291bnRzXFxcIlxcbm5ldC9zY3RwL0tjb25maWc6NDM6XFx0ZGVwZW5kcyBvbiBQUk9DX0ZTXFxubmV0L3NjdHAvS2NvbmZpZy00NC1cXHRoZWxwXFxuLS1cXG5uZXQvc2N0cC9LY29uZmlnPTcwPWNvbmZpZyBJTkVUX1NDVFBfRElBR1xcbm5ldC9zY3RwL0tjb25maWc6NzE6XFx0ZGVwZW5kcyBvbiBJTkVUX0RJQUdcXG5uZXQvc2N0cC9LY29uZmlnLTcyLVxcdGRlZl90cmlzdGF0ZSBJTkVUX0RJQUdcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDA6MTA6MzMuNzA0Njk2ODM5WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDA3MjUyNTM2OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFNDVFAgU3RyZWFtIFJlc2V0IFJlc3BvbnNlIEhhbmRsaW5nKipcblxuT2theSwgc28gSSdtIGRpdmluZyBpbnRvIHRoaXMgYElQX1NDVFBgIGNvbmZpZ3VyYXRpb24sIHRoYXQgc2VlbXMgdG8gYmUgdGhlIGNlbnRyYWwgcG9pbnQgaGVyZS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHRyYWNlIHRoZSBleGVjdXRpb24gcGF0aCBvZiB0aGUgc3RyZWFtIHJlc2V0IHJlc3BvbnNlIHByb2Nlc3NpbmcuICBUaGUgY29kZSB0ZWxscyBtZSB0aGF0IHRoZSBmdW5jdGlvbiBgc2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3BgIGdldHMgY2FsbGVkIGZyb20gYHNjdHBfc2ZfZG9fcmVjb25mYC4gIE15IG5leHQgcXVlc3Rpb24gaXM6IGlzIGBzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcGAgYSBzdGF0aWNhbGx5IGRlZmluZWQgZnVuY3Rpb24sIG9yIGlzIGl0IGV4cG9ydGVkIGZvciB1c2UgZWxzZXdoZXJlPyBUaW1lIHRvIGNoZWNrLiBBaCwgaXQncyBub3Qgc3RhdGljLCB3aGljaCBtZWFucyBpdCdzIGFjY2Vzc2libGUgZXh0ZXJuYWxseS4gVGhhdCdzIGdvb2QgdG8ga25vdy4gTm93IEkgbmVlZCB0byBrbm93ICp3aGVyZSogaXQncyBkZWZpbmVkIGFuZCAqd2hlcmUqIGl0J3MgY2FsbGVkIGZyb20uIExvb2tzIGxpa2UgaXQncyBkZWZpbmVkIGluIGBuZXQvc2N0cC9zdHJlYW0uY2AgYW5kIGludm9rZWQgZnJvbSB3aXRoaW4gYG5ldC9zY3RwL3NtX3N0YXRlZnVucy5jYC4gVGhhdCBtYWtlcyBzZW5zZTsgc3RyZWFtIG1hbmFnZW1lbnQgZnVuY3Rpb25hbGl0eSBhbmQgc3RhdGUgbWFjaGluZSBpbnRlcmFjdGlvbnMuICBJJ2xsIG5lZWQgdG8gZ28gYmFjayBhbmQgZXhhbWluZSBgbmV0L3NjdHAvc3RyZWFtLmNgIG1vcmUgY2xvc2VseSBhbmQgZmluZCB0aGF0IGZ1bmN0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjozODY4LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTM2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDAwOjEwOjM3Ljc3NzIyNTY0N1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDgyODQ4ODcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3BcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiaW5jbHVkZS9uZXQvc2N0cC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiaW5jbHVkZS9uZXQvc2N0cC9zbS5oPTI5Mj1zdHJ1Y3Qgc2N0cF9jaHVuayAqc2N0cF9wcm9jZXNzX3N0cnJlc2V0X2FkZHN0cm1faW4oXFxuLS1cXG5pbmNsdWRlL25ldC9zY3RwL3NtLmgtMjk1LVxcdFxcdFxcdFxcdHN0cnVjdCBzY3RwX3VscGV2ZW50ICoqZXZwKTtcXG5pbmNsdWRlL25ldC9zY3RwL3NtLmg6Mjk2OnN0cnVjdCBzY3RwX2NodW5rICpzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcChcXG5pbmNsdWRlL25ldC9zY3RwL3NtLmgtMjk3LVxcdFxcdFxcdFxcdHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwMDoxMDozNy44MjU1MTgxNTRaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzIwMjA2MTU4MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOlxuXG4qKk5hdmlnYXRpbmcgdGhlIFNDVFAgU3RhdGUgTWFjaGluZSBDb2RlKipcblxuT2theSwgc28gSSdtIGRpdmluZyBpbnRvIHRoZSBTQ1RQIGNvZGUsIHNwZWNpZmljYWxseSB0aGUgc3RhdGUgbWFjaGluZSBpbXBsZW1lbnRhdGlvbi4gSSBuZWVkIHRvIGdldCBvcmllbnRlZC4gSSByZW1lbWJlciBzZWVpbmcgc29tZXRoaW5nIHJlbGV2YW50IGluIGBpbmNsdWRlL25ldC9zY3RwL3NtLmhgLCBzbyB0aGF0J3MgbXkgc3RhcnRpbmcgcG9pbnQuIE5vdywgbGV0J3MgdGhpbmsgYWJvdXQgYSBnb29kIGZ1bmN0aW9uIHRvIHVzZSBhcyBhIGNvbXBhc3MuIEknbSBnb2luZyB0byBjb25zaWRlciBhIGNvdXBsZSBvZiBwb3NzaWJpbGl0aWVzIGJhc2VkIG9uIG15IGtub3dsZWRnZSBvZiBTQ1RQJ3Mga2V5IGZ1bmN0aW9ucy4gYHNjdHBfcHJvY2Vzc19zdHJyZXNldF9yZXNwYCBjb21lcyB0byBtaW5kIGFzIGEgbGlrZWx5IGNhbmRpZGF0ZSB0byBsZWFkIG1lIHRvd2FyZCB0aGUgc3BlY2lmaWMgYXJlYSBvZiBjb25jZXJuLiBPbiB0aGUgb3RoZXIgaGFuZCwgYHNjdHBfc2ZfZG9fcmVjb25mYCBjb3VsZCBhbHNvIGJlIGludGVyZXN0aW5nLCBzaW5jZSBJJ20gY29uY2VybmVkIGFib3V0IGhvdyB0aGUgcmVjb25maWd1cmUgc3RhdGUgbWFjaGluZSB3b3Jrcy4gSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBsYXR0ZXIgZmlyc3QgYW5kIGRldGVybWluZSB0aGUgYmVzdCBhcHByb2FjaCBmcm9tIHRoZXJlLiBMZXQncyBzdGFydCB3aXRoIGBzY3RwX3NmX2RvX3JlY29uZmAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ0MzYsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwMDoxMDo0MS4wMjc1ODI1ODdaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1MjYyOTk3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNjdHBfc2ZfZG9fcmVjb25mXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9zY3RwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYz00MDU1PWVudW0gc2N0cF9kaXNwb3NpdGlvbiBzY3RwX3NmX2RvX2FzY29uZl9hY2soc3RydWN0IG5ldCAqbmV0LFxcbi0tXFxubmV0L3NjdHAvc21fc3RhdGVmdW5zLmMtNDE2OS0vKiBSRS1DT05GSUcgU2VjdGlvbiA1LjIgVXBvbiByZWNlcHRpb24gb2YgYW4gUkVDT05GIENodW5rLiAqL1xcbm5ldC9zY3RwL3NtX3N0YXRlZnVucy5jOjQxNzA6ZW51bSBzY3RwX2Rpc3Bvc2l0aW9uIHNjdHBfc2ZfZG9fcmVjb25mKHN0cnVjdCBuZXQgKm5ldCxcXG5uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYy00MTcxLVxcdFxcdFxcdFxcdFxcdGNvbnN0IHN0cnVjdCBzY3RwX2VuZHBvaW50ICplcCxcXG4tLVxcbm5ldC9zY3RwL3NtX3N0YXRldGFibGUuYz00NzE9cHJzY3RwX2NodW5rX2V2ZW50X3RhYmxlW1NDVFBfTlVNX1BSU0NUUF9DSFVOS19UWVBFU11bU0NUUF9TVEFURV9OVU1fU1RBVEVTXSA9IHtcXG4tLVxcbm5ldC9zY3RwL3NtX3N0YXRldGFibGUuYy00ODItXFx0LyogU0NUUF9TVEFURV9FU1RBQkxJU0hFRCAqLyBcXFxcXFxubmV0L3NjdHAvc21fc3RhdGV0YWJsZS5jOjQ4MzpcXHRUWVBFX1NDVFBfRlVOQyhzY3RwX3NmX2RvX3JlY29uZiksIFxcXFxcXG5uZXQvc2N0cC9zbV9zdGF0ZXRhYmxlLmMtNDg0LVxcdC8qIFNDVFBfU1RBVEVfU0hVVERPV05fUEVORElORyAqLyBcXFxcXFxubmV0L3NjdHAvc21fc3RhdGV0YWJsZS5jOjQ4NTpcXHRUWVBFX1NDVFBfRlVOQyhzY3RwX3NmX2RvX3JlY29uZiksIFxcXFxcXG5uZXQvc2N0cC9zbV9zdGF0ZXRhYmxlLmMtNDg2LVxcdC8qIFNDVFBfU1RBVEVfU0hVVERPV05fU0VOVCAqLyBcXFxcXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDAwOjEwOjQxLjA3Mjg1MDQ4NFoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1Njg4NzU0NzU5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFNDVFAgU3RyZWFtIFJlc2V0IFJlc3BvbnNlIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgbXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgYHNjdHBfc2ZfZG9fcmVjb25mYCBpcyBhIGtleSBzdGF0ZSBmdW5jdGlvbiwgYnV0IGBzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcGAgc2VlbXMgbGlrZSB0aGUgcmVhbCBwb2ludCBvZiBpbnRlcmVzdCBoZXJlLCBhIGdvb2QgZm9jdXMgc3ltYm9sLlxuXG5MZXQncyBxdWlja2x5IHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGNvbmZpZ3VyYXRpb25zIGludm9sdmVkIOKAkyB5ZXAsIGBJUF9TQ1RQYCBsb29rcyBzdWZmaWNpZW50LlxuXG5NeSByZWFzb25pbmc/IFdlbGwsIHRoaXMgcGF0Y2ggaXMgYWxsIGFib3V0IGFkZGluZyB2YWxpZGF0aW9uIHRvIGBzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcGAgdG8gaGFuZGxlIHBvdGVudGlhbGx5IG5hc3R5IG91dC1vZi1zZXF1ZW5jZSByZXNwb25zZXMsIGVzcGVjaWFsbHkgdG8gcHJldmVudCBvdXQtb2YtYm91bmRzIHN0cmVhbSBjb3VudHMgd2hlbiBpdCdzIHByb2Nlc3NpbmcgdGhvc2UgYFNDVFBfU1RSUkVTRVRfQUREX09VVF9TVFJFQU1TYCByZXNwb25zZXMuIFRoaXMgaXMgY29yZSBTQ1RQIGZ1bmN0aW9uYWxpdHksIGRpcmVjdGx5IGluZmx1ZW5jZWQgYnkgbmV0d29yayBpbnB1dCwgYW5kIHRoYXQgYWx3YXlzIG1lYW5zIGEgaGlnaGVyIGZ1enppbmcgcHJpb3JpdHkuIFdlIG5lZWQgdG8gYmUgYWJsZSB0byB0cnVzdCB0aGF0IG91ciBjaGVja3Mgd2lsbCB3b3JrLlxuXG5TbywgdGhlIGZvY3VzIHN5bWJvbHMgYXJlIGRlZmluaXRlbHk6XG5cbiogICBgc2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3BgXG4qICAgYHNjdHBfc2ZfZG9fcmVjb25mYFxuXG5BbmQgdGhlIGVuYWJsaW5nIGNvbmZpZ3VyYXRpb24gaXM6XG5cbiogICBgSVBfU0NUUGBcblxuSnVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIEknbSBnb2luZyB0byBkb3VibGUtY2hlY2sgdGhhdCBgc2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3BgIGlzIHRoZSAqb25seSogZnVuY3Rpb24gbW9kaWZpZWQuIFllcCwgbG9va3MgbGlrZSB0aGUgZGlmZiBvbmx5IHRvdWNoZXMgdGhhdCBzaW5nbGUgZnVuY3Rpb24gd2l0aGluIGBuZXQvc2N0cC9zdHJlYW0uY2AuXG5cbk9rYXksIEknbSBoYXBweSB3aXRoIHRoaXMsIEknbGwgZ28gYWhlYWQgYW5kIHNldCB0aGUgcmVzdWx0cy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTE1OSwiT3V0cHV0VG9rZW5zIjoxNDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDA6MTA6NDYuNzYxNjA4OTkzWiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODMwNzcxNjUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIklQX1NDVFBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcFwiLFxuICAgIFwic2N0cF9zZl9kb19yZWNvbmZcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIHZhbGlkYXRpb24gY2hlY2tzIGluIGBzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcGAgdG8gaGFuZGxlIG91dC1vZi1zZXF1ZW5jZSBzdHJlYW0gcmVzZXQgcmVzcG9uc2VzIGFuZCBwcmV2ZW50IG91dC1vZi1ib3VuZHMgc3RyZWFtIGNvdW50cyB3aGVuIHByb2Nlc3NpbmcgYFNDVFBfU1RSUkVTRVRfQUREX09VVF9TVFJFQU1TYCByZXNwb25zZXMuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIFNDVFAgbG9naWMgdGhhdCBpcyByZWFjaGFibGUgZnJvbSBuZXR3b3JrIGlucHV0IGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIklQX1NDVFBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcFwiLFxuICAgIFwic2N0cF9zZl9kb19yZWNvbmZcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIHZhbGlkYXRpb24gY2hlY2tzIGluIGBzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcGAgdG8gaGFuZGxlIG91dC1vZi1zZXF1ZW5jZSBzdHJlYW0gcmVzZXQgcmVzcG9uc2VzIGFuZCBwcmV2ZW50IG91dC1vZi1ib3VuZHMgc3RyZWFtIGNvdW50cyB3aGVuIHByb2Nlc3NpbmcgYFNDVFBfU1RSUkVTRVRfQUREX09VVF9TVFJFQU1TYCByZXNwb25zZXMuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIFNDVFAgbG9naWMgdGhhdCBpcyByZWFjaGFibGUgZnJvbSBuZXR3b3JrIGlucHV0IGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowmgx6f[1] Phase: Succeeded StartedAt: 2026-08-01 00:10:58 +0000 UTC FinishedAt: 2026-08-01 00:10:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmgx6f[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-01 00:10:58 +0000 UTC FinishedAt: 2026-08-01 00:10:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmgx6f[2] Phase: Succeeded StartedAt: 2026-08-01 00:10:58 +0000 UTC FinishedAt: 2026-08-01 04:18:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmgx6f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-01 00:10:58 +0000 UTC FinishedAt: 2026-08-01 04:18:55 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","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-workflowmgx6f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","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-01 00:10:58 +0000 UTC FinishedAt: 2026-08-01 00:11:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmgx6f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","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-01 00:10:58 +0000 UTC FinishedAt: 2026-08-01 00:11:02 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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-workflowmgx6f/series-workflowmgx6f-convert-artifact-1460917780/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmgx6f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","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-01 00:11:08 +0000 UTC FinishedAt: 2026-08-01 00:39:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmgx6f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","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-01 00:11:08 +0000 UTC FinishedAt: 2026-08-01 00:39:35 +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:*16d603e9-6ff5-423d-94df-703f83c997ff,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-workflowmgx6f/series-workflowmgx6f-convert-artifact-1460917780/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": "338f3229-5964-486c-a1a9-6c1674cdebd4", "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-workflowmgx6f/series-workflowmgx6f-build-action-3329712786/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmgx6f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","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-01 00:11:08 +0000 UTC FinishedAt: 2026-08-01 00:38:25 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*16d603e9-6ff5-423d-94df-703f83c997ff,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-workflowmgx6f/series-workflowmgx6f-convert-artifact-1460917780/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": "338f3229-5964-486c-a1a9-6c1674cdebd4", "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-workflowmgx6f/series-workflowmgx6f-build-action-3329712786/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmgx6f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","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-01 00:39:35 +0000 UTC FinishedAt: 2026-08-01 00:39:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmgx6f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","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-01 00:39:35 +0000 UTC FinishedAt: 2026-08-01 00:39:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmgx6f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","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-01 00:39:35 +0000 UTC FinishedAt: 2026-08-01 00:40:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmgx6f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","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-01 00:39:35 +0000 UTC FinishedAt: 2026-08-01 00:39:40 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","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-workflowmgx6f/series-workflowmgx6f-convert-artifact-351765971/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmgx6f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","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-01 00:40:03 +0000 UTC FinishedAt: 2026-08-01 00:42:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmgx6f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","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-01 00:40:03 +0000 UTC FinishedAt: 2026-08-01 00:42:07 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*338f3229-5964-486c-a1a9-6c1674cdebd4,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-workflowmgx6f/series-workflowmgx6f-build-action-3329712786/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-workflowmgx6f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","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-01 00:42:17 +0000 UTC FinishedAt: 2026-08-01 00:42:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmgx6f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","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-01 00:42:17 +0000 UTC FinishedAt: 2026-08-01 00:42:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmgx6f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","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-01 00:42:17 +0000 UTC FinishedAt: 2026-08-01 01:11:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmgx6f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","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-01 00:42:17 +0000 UTC FinishedAt: 2026-08-01 01:11:18 +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:*16d603e9-6ff5-423d-94df-703f83c997ff,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-workflowmgx6f/series-workflowmgx6f-convert-artifact-351765971/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": "21938d61-0760-4991-aaf2-b73a9e276679", "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-workflowmgx6f/series-workflowmgx6f-build-action-1240316679/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmgx6f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","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-01 00:42:17 +0000 UTC FinishedAt: 2026-08-01 01:10:18 +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:*16d603e9-6ff5-423d-94df-703f83c997ff,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-workflowmgx6f/series-workflowmgx6f-convert-artifact-351765971/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": "21938d61-0760-4991-aaf2-b73a9e276679", "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-workflowmgx6f/series-workflowmgx6f-build-action-1240316679/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmgx6f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","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-01 01:11:18 +0000 UTC FinishedAt: 2026-08-01 01:11:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmgx6f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","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-01 01:11:18 +0000 UTC FinishedAt: 2026-08-01 01:11:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmgx6f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","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-01 01:11:18 +0000 UTC FinishedAt: 2026-08-01 01:13:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmgx6f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","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-01 01:11:18 +0000 UTC FinishedAt: 2026-08-01 01:13:07 +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:*21938d61-0760-4991-aaf2-b73a9e276679,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-workflowmgx6f/series-workflowmgx6f-build-action-1240316679/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-workflowmgx6f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-01 01:13:19 +0000 UTC FinishedAt: 2026-08-01 04:18:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmgx6f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","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: Succeeded StartedAt: 2026-08-01 01:13:19 +0000 UTC FinishedAt: 2026-08-01 04:18:55 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"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:*338f3229-5964-486c-a1a9-6c1674cdebd4,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*21938d61-0760-4991-aaf2-b73a9e276679,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-workflowmgx6f/series-workflowmgx6f-build-action-3329712786/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-workflowmgx6f/series-workflowmgx6f-build-action-1240316679/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowmgx6f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","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-01 01:13:19 +0000 UTC FinishedAt: 2026-08-01 01:13:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmgx6f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","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-01 01:13:19 +0000 UTC FinishedAt: 2026-08-01 01:13:23 +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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"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-workflowmgx6f/series-workflowmgx6f-convert-artifact-4000959308/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmgx6f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","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-01 01:13:19 +0000 UTC FinishedAt: 2026-08-01 01:13:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmgx6f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","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-01 01:13:19 +0000 UTC FinishedAt: 2026-08-01 01:13:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmgx6f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","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-01 01:13:19 +0000 UTC FinishedAt: 2026-08-01 01:13:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmgx6f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","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: Succeeded StartedAt: 2026-08-01 01:13:31 +0000 UTC FinishedAt: 2026-08-01 04:18:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmgx6f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_process_strreset_resp","sctp_sf_do_reconf"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"9b9302d7-cb65-4392-a788-6db194b26f0c","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: Succeeded StartedAt: 2026-08-01 01:13:31 +0000 UTC FinishedAt: 2026-08-01 04:18:46 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*338f3229-5964-486c-a1a9-6c1674cdebd4,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*21938d61-0760-4991-aaf2-b73a9e276679,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-workflowmgx6f/series-workflowmgx6f-build-action-3329712786/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-workflowmgx6f/series-workflowmgx6f-build-action-1240316679/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-workflowmgx6f/series-workflowmgx6f-convert-artifact-4000959308/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,}