Name: series-workflow9zhzg Phase: Succeeded StartedAt: 2026-07-07 05:29:46 +0000 UTC FinishedAt: 2026-07-07 10:48:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9zhzg[0] Phase: Succeeded StartedAt: 2026-07-07 05:29:46 +0000 UTC FinishedAt: 2026-07-07 05:49:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9zhzg[0].run-triage Phase: Succeeded StartedAt: 2026-07-07 05:29:46 +0000 UTC FinishedAt: 2026-07-07 05:49:41 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "8cdeaa50eae8dad34885515f62559ee83e7e8dda", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MAC80211" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "8cdeaa50eae8dad34885515f62559ee83e7e8dda", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MAC80211" ], "series_id": "c3670525-58e4-460e-bd62-88142fcfdf45" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ieee80211_ibss_disconnect", "ieee80211_csa_connection_drop_work", "ieee80211_ibss_leave" ], "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+CgkJCTx0ZD4yMDI2LzA3LzA3IDA1OjQ4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQzgwMjExJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX2lic3NfZGlzY29ubmVjdCYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfY3NhX2Nvbm5lY3Rpb25fZHJvcF93b3JrJiMzNDssCiAgICAmIzM0O2llZWU4MDIxMV9pYnNzX2xlYXZlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBzeW5jaHJvbml6YXRpb24gYW5kIHRlYXJkb3duIHNlcXVlbmNlIGR1cmluZyBJQlNTIChBZC1Ib2MpIGRpc2Nvbm5lY3QgYW5kIGxlYXZlIG9wZXJhdGlvbnMgaW4gdGhlIG1hYzgwMjExIHN1YnN5c3RlbS4gSXQgcmVvcmRlcnMgYG5ldGlmX2NhcnJpZXJfb2ZmYCBhbmQgYHN0YV9pbmZvX2ZsdXNoYCBhbmQgYWRqdXN0cyBSQ1Ugc3luY2hyb25pemF0aW9uIHRvIGZpeCBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyBuZXcgcmVncmVzc2lvbnMgb3IgZGVhZGxvY2tzIGFyZSBpbnRyb2R1Y2VkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA3IDA1OjQ4PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZTRlODdjODkzNzAwNDViYzE5OTA1YjQ3YjhmOGY5MTBjOWY0NTgyYVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVsIDcgMDU6NDg6NDQgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL2lic3MuYyBiL25ldC9tYWM4MDIxMS9pYnNzLmNcbmluZGV4IGQwZmQ2MDU0ZjE4MjAwLi40NzJhYjg2NzJiZTVlMCAxMDA2NDRcbi0tLSBhL25ldC9tYWM4MDIxMS9pYnNzLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9tYWM4MDIxMS9pYnNzLmNcbkBAIC02NjgsNyAmIzQzOzY2OCw5IEBAIHN0YXRpYyB2b2lkIGllZWU4MDIxMV9pYnNzX2Rpc2Nvbm5lY3Qoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXG4gXG4gXHRpZmlic3MtXHUwMDNlc3RhdGUgPSBJRUVFODAyMTFfSUJTU19NTE1FX1NFQVJDSDtcbiBcbi1cdHN0YV9pbmZvX2ZsdXNoKHNkYXRhLCAtMSk7XG4mIzQzO1x0bmV0aWZfY2Fycmllcl9vZmYoc2RhdGEtXHUwMDNlZGV2KTtcbiYjNDM7XHRpZiAoIXN0YV9pbmZvX2ZsdXNoKHNkYXRhLCAtMSkpXG4mIzQzO1x0XHRzeW5jaHJvbml6ZV9uZXQoKTtcbiBcbiBcdHNwaW5fbG9ja19iaChcdTAwMjZpZmlic3MtXHUwMDNlaW5jb21wbGV0ZV9sb2NrKTtcbiBcdHdoaWxlICghbGlzdF9lbXB0eShcdTAwMjZpZmlic3MtXHUwMDNlaW5jb21wbGV0ZV9zdGF0aW9ucykpIHtcbkBAIC02ODIsOCAmIzQzOzY4NCw2IEBAIHN0YXRpYyB2b2lkIGllZWU4MDIxMV9pYnNzX2Rpc2Nvbm5lY3Qoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXG4gXHR9XG4gXHRzcGluX3VubG9ja19iaChcdTAwMjZpZmlic3MtXHUwMDNlaW5jb21wbGV0ZV9sb2NrKTtcbiBcbi1cdG5ldGlmX2NhcnJpZXJfb2ZmKHNkYXRhLVx1MDAzZWRldik7XG4tXG4gXHRzZGF0YS1cdTAwM2V2aWYuY2ZnLmlic3Nfam9pbmVkID0gZmFsc2U7XG4gXHRzZGF0YS1cdTAwM2V2aWYuY2ZnLmlic3NfY3JlYXRvciA9IGZhbHNlO1xuIFx0c2RhdGEtXHUwMDNldmlmLmJzc19jb25mLmVuYWJsZV9iZWFjb24gPSBmYWxzZTtcbkBAIC03MTAsNyAmIzQzOzcxMCw2IEBAIHN0YXRpYyB2b2lkIGllZWU4MDIxMV9jc2FfY29ubmVjdGlvbl9kcm9wX3dvcmsoc3RydWN0IHdpcGh5ICp3aXBoeSxcbiBcdFx0XHQgICAgIHUuaWJzcy5jc2FfY29ubmVjdGlvbl9kcm9wX3dvcmspO1xuIFxuIFx0aWVlZTgwMjExX2lic3NfZGlzY29ubmVjdChzZGF0YSk7XG4tXHRzeW5jaHJvbml6ZV9yY3UoKTtcbiBcdHNrYl9xdWV1ZV9wdXJnZShcdTAwMjZzZGF0YS1cdTAwM2Vza2JfcXVldWUpO1xuIFxuIFx0LyogdHJpZ2dlciBhIHNjYW4gdG8gZmluZCBhbm90aGVyIElCU1MgbmV0d29yayB0byBqb2luICovXG5AQCAtMTc5Nyw4ICYjNDM7MTc5Niw2IEBAIGludCBpZWVlODAyMTFfaWJzc19sZWF2ZShzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSlcbiBcdG1lbXNldChcdTAwMjZpZmlic3MtXHUwMDNlaHRfY2FwYSwgMCwgc2l6ZW9mKGlmaWJzcy1cdTAwM2VodF9jYXBhKSk7XG4gXHRtZW1zZXQoXHUwMDI2aWZpYnNzLVx1MDAzZWh0X2NhcGFfbWFzaywgMCwgc2l6ZW9mKGlmaWJzcy1cdTAwM2VodF9jYXBhX21hc2spKTtcbiBcbi1cdHN5bmNocm9uaXplX3JjdSgpO1xuLVxuIFx0c2tiX3F1ZXVlX3B1cmdlKFx1MDAyNnNkYXRhLVx1MDAzZXNrYl9xdWV1ZSk7XG4gXG4gXHR0aW1lcl9kZWxldGVfc3luYyhcdTAwMjZzZGF0YS1cdTAwM2V1Lmlic3MudGltZXIpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA3IDA1OjQ4PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQzgwMjExJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX2lic3NfZGlzY29ubmVjdCYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfY3NhX2Nvbm5lY3Rpb25fZHJvcF93b3JrJiMzNDssCiAgICAmIzM0O2llZWU4MDIxMV9pYnNzX2xlYXZlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBzeW5jaHJvbml6YXRpb24gYW5kIHRlYXJkb3duIHNlcXVlbmNlIGR1cmluZyBJQlNTIChBZC1Ib2MpIGRpc2Nvbm5lY3QgYW5kIGxlYXZlIG9wZXJhdGlvbnMgaW4gdGhlIG1hYzgwMjExIHN1YnN5c3RlbS4gSXQgcmVvcmRlcnMgYG5ldGlmX2NhcnJpZXJfb2ZmYCBhbmQgYHN0YV9pbmZvX2ZsdXNoYCBhbmQgYWRqdXN0cyBSQ1Ugc3luY2hyb25pemF0aW9uIHRvIGZpeCBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyBuZXcgcmVncmVzc2lvbnMgb3IgZGVhZGxvY2tzIGFyZSBpbnRyb2R1Y2VkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBlNGU4N2M4OTM3MDA0NWJjMTk5MDViNDdiOGY4ZjkxMGM5ZjQ1ODJhCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdWwgNyAwNTo0ODo0NCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9pYnNzLmMgYi9uZXQvbWFjODAyMTEvaWJzcy5jCmluZGV4IGQwZmQ2MDU0ZjE4MjAwLi40NzJhYjg2NzJiZTVlMCAxMDA2NDQKLS0tIGEvbmV0L21hYzgwMjExL2lic3MuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvbWFjODAyMTEvaWJzcy5jCkBAIC02NjgsNyAmIzQzOzY2OCw5IEBAIHN0YXRpYyB2b2lkIGllZWU4MDIxMV9pYnNzX2Rpc2Nvbm5lY3Qoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpCiAKIAlpZmlic3MtJmd0O3N0YXRlID0gSUVFRTgwMjExX0lCU1NfTUxNRV9TRUFSQ0g7CiAKLQlzdGFfaW5mb19mbHVzaChzZGF0YSwgLTEpOwomIzQzOwluZXRpZl9jYXJyaWVyX29mZihzZGF0YS0mZ3Q7ZGV2KTsKJiM0MzsJaWYgKCFzdGFfaW5mb19mbHVzaChzZGF0YSwgLTEpKQomIzQzOwkJc3luY2hyb25pemVfbmV0KCk7CiAKIAlzcGluX2xvY2tfYmgoJmFtcDtpZmlic3MtJmd0O2luY29tcGxldGVfbG9jayk7CiAJd2hpbGUgKCFsaXN0X2VtcHR5KCZhbXA7aWZpYnNzLSZndDtpbmNvbXBsZXRlX3N0YXRpb25zKSkgewpAQCAtNjgyLDggJiM0Mzs2ODQsNiBAQCBzdGF0aWMgdm9pZCBpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0KHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKQogCX0KIAlzcGluX3VubG9ja19iaCgmYW1wO2lmaWJzcy0mZ3Q7aW5jb21wbGV0ZV9sb2NrKTsKIAotCW5ldGlmX2NhcnJpZXJfb2ZmKHNkYXRhLSZndDtkZXYpOwotCiAJc2RhdGEtJmd0O3ZpZi5jZmcuaWJzc19qb2luZWQgPSBmYWxzZTsKIAlzZGF0YS0mZ3Q7dmlmLmNmZy5pYnNzX2NyZWF0b3IgPSBmYWxzZTsKIAlzZGF0YS0mZ3Q7dmlmLmJzc19jb25mLmVuYWJsZV9iZWFjb24gPSBmYWxzZTsKQEAgLTcxMCw3ICYjNDM7NzEwLDYgQEAgc3RhdGljIHZvaWQgaWVlZTgwMjExX2NzYV9jb25uZWN0aW9uX2Ryb3Bfd29yayhzdHJ1Y3Qgd2lwaHkgKndpcGh5LAogCQkJICAgICB1Lmlic3MuY3NhX2Nvbm5lY3Rpb25fZHJvcF93b3JrKTsKIAogCWllZWU4MDIxMV9pYnNzX2Rpc2Nvbm5lY3Qoc2RhdGEpOwotCXN5bmNocm9uaXplX3JjdSgpOwogCXNrYl9xdWV1ZV9wdXJnZSgmYW1wO3NkYXRhLSZndDtza2JfcXVldWUpOwogCiAJLyogdHJpZ2dlciBhIHNjYW4gdG8gZmluZCBhbm90aGVyIElCU1MgbmV0d29yayB0byBqb2luICovCkBAIC0xNzk3LDggJiM0MzsxNzk2LDYgQEAgaW50IGllZWU4MDIxMV9pYnNzX2xlYXZlKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKQogCW1lbXNldCgmYW1wO2lmaWJzcy0mZ3Q7aHRfY2FwYSwgMCwgc2l6ZW9mKGlmaWJzcy0mZ3Q7aHRfY2FwYSkpOwogCW1lbXNldCgmYW1wO2lmaWJzcy0mZ3Q7aHRfY2FwYV9tYXNrLCAwLCBzaXplb2YoaWZpYnNzLSZndDtodF9jYXBhX21hc2spKTsKIAotCXN5bmNocm9uaXplX3JjdSgpOwotCiAJc2tiX3F1ZXVlX3B1cmdlKCZhbXA7c2RhdGEtJmd0O3NrYl9xdWV1ZSk7CiAKIAl0aW1lcl9kZWxldGVfc3luYygmYW1wO3NkYXRhLSZndDt1Lmlic3MudGltZXIpOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNyAwNTo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzI1CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMTM2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgSUJTUyBEaXNjb25uZWN0aW9uIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdHdlYWtzIGBuZXQvbWFjODAyMTEvaWJzcy5jYC4gSXQgc2VlbXMgdG8gYmUgZm9jdXNpbmcgb24gdGhlIGRpc2Nvbm5lY3Rpb24gcHJvY2VzcyBmb3IgSUJTUyBuZXR3b3Jrcy4gVGhlIG1haW4gY2hhbmdlIGhlcmUgaXMgd2l0aGluIGBpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0YC4gTm93LCBpbnN0ZWFkIG9mIGltbWVkaWF0ZWx5IGZsdXNoaW5nIHN0YXRpb24gaW5mb3JtYXRpb24sIGl0JiMzOTtzIGNhbGxpbmcgYG5ldGlmX2NhcnJpZXJfb2ZmYCAqZmlyc3QqLCBiZWZvcmUgYHN0YV9pbmZvX2ZsdXNoYC4gVGhhdCBtYWtlcyBpbnR1aXRpdmUgc2Vuc2U7IHdlIHdhbnQgdG8gc2lnbmFsIHRoZSBsaW5rIGlzIGRvd24gKmJlZm9yZSogd2Ugc3RhcnQgY2xlYW5pbmcgdXAgc3RhdGlvbiBlbnRyaWVzLiBBIHNtYXJ0IG1vdmUuCgpUaGUgaW50ZXJlc3RpbmcgcGFydCBpcyB0aGUgY29uZGl0aW9uYWwgYHN5bmNocm9uaXplX25ldCgpYCBjYWxsIGFmdGVyIGBzdGFfaW5mb19mbHVzaGAgaWYgYHN0YV9pbmZvX2ZsdXNoYCByZXR1cm5zIDAuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoeSB0aGF0JiMzOTtzIHRoZXJlLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgd2hhdCBhcmUgdGhlIHBvc3NpYmxlIHJldHVybiB2YWx1ZXMgb2YgYHN0YV9pbmZvX2ZsdXNoYD8gV2hhdCBkb2VzIGEgemVybyByZXR1cm4gc2lnbmlmeSBpbiB0aGlzIGNvbnRleHQ/IElzIGl0IHJlbGF0ZWQgdG8gd2hldGhlciB0aGUgZmx1c2ggb3BlcmF0aW9uIHdhcyBzdWNjZXNzZnVsLCBvciBzb21ldGhpbmcgbW9yZSBudWFuY2VkPyBJIG5lZWQgdG8gZGlnIGludG8gYHN0YV9pbmZvX2ZsdXNoYCBpdHNlbGYgdG8gdW5kZXJzdGFuZCB0aGUgbG9naWMuIElzIHRoaXMgdG8gZW5zdXJlIGFsbCBxdWV1ZWQgb3BlcmF0aW9ucyBhcmUgY29tcGxldGVkLCBvciBpcyB0aGlzIHJlbGF0ZWQgdG8gcG90ZW50aWFsIHJhY2UgY29uZGl0aW9ucz8KCkFkZGl0aW9uYWxseSwgSSBzZWUgdGhleSYjMzk7dmUgcmVtb3ZlZCBgc3luY2hyb25pemVfcmN1KClgIGNhbGxzIGZyb20gYm90aCBgaWVlZTgwMjExX2NzYV9jb25uZWN0aW9uX2Ryb3Bfd29ya2AgYW5kIGBpZWVlODAyMTFfaWJzc19sZWF2ZWAuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoeSB0aG9zZSB3ZXJlIGRlZW1lZCB1bm5lY2Vzc2FyeS4gQXJlIHRoZXkgcmVkdW5kYW50IG5vdyBkdWUgdG8gdGhlIGNoYW5nZXMgaW4gYGllZWU4MDIxMV9pYnNzX2Rpc2Nvbm5lY3RgLCBvciB3YXMgdGhlcmUgYSBkZWVwZXIgcmVhc29uIGZvciB0aGVpciByZW1vdmFsPyBNeSBpbml0aWFsIHJlYWN0aW9uIGlzIHRoYXQgdGhleSByZW1vdmVkIHRoZSByZWR1bmRhbnQgYHN5bmNocm9uaXplX3JjdSgpYCBjYWxscy4gSWYgdGhlIG9wZXJhdGlvbnMgbm93IHdhaXQgZm9yIGFueSBSQ1UgZ3JhY2UgcGVyaW9kcywgaXQmIzM5O3Mgc2FmZSB0byByZW1vdmUgdGhlbS4gQnV0IEkgbmVlZCB0byBpbnZlc3RpZ2F0ZSBib3RoIGZ1bmN0aW9ucyB0byBiZSBzdXJlLiBBbHJpZ2h0LCB0aW1lIHRvIHRyYWNlIGRvd24gdGhlIGBzdGFfaW5mb19mbHVzaGAgZnVuY3Rpb24gYW5kIHRoZSBzdXJyb3VuZGluZyBjb2RlIHRvIGdldCBhIGNvbXBsZXRlIHBpY3R1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMDU6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RhX2luZm9fZmx1c2gmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9jZmcuYz0yMDEwPXN0YXRpYyBpbnQgaWVlZTgwMjExX3N0b3BfYXAoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmMtMjA5MC1cbm5ldC9tYWM4MDIxMS9jZmcuYzoyMDkxOlx0X19zdGFfaW5mb19mbHVzaChzZGF0YSwgdHJ1ZSwgbGlua19pZCwgTlVMTCk7XG5uZXQvbWFjODAyMTEvY2ZnLmMtMjA5Mi1cbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmM9MjcxMD1zdGF0aWMgaW50IGllZWU4MDIxMV9kZWxfc3RhdGlvbihzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYy0yNzE5LVxubmV0L21hYzgwMjExL2NmZy5jOjI3MjA6XHRzdGFfaW5mb19mbHVzaChzZGF0YSwgcGFyYW1zLVx1MDAzZWxpbmtfaWQpO1xubmV0L21hYzgwMjExL2NmZy5jLTI3MjEtXHRyZXR1cm4gMDtcbi0tXG5uZXQvbWFjODAyMTEvaWJzcy5jPTIwOT1zdGF0aWMgdm9pZCBfX2llZWU4MDIxMV9zdGFfam9pbl9pYnNzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS9pYnNzLmMtMjM0LVx0aWYgKCFldGhlcl9hZGRyX2VxdWFsKGlmaWJzcy1cdTAwM2Vic3NpZCwgYnNzaWQpKVxubmV0L21hYzgwMjExL2lic3MuYzoyMzU6XHRcdHN0YV9pbmZvX2ZsdXNoKHNkYXRhLCAtMSk7XG5uZXQvbWFjODAyMTEvaWJzcy5jLTIzNi1cbi0tXG5uZXQvbWFjODAyMTEvaWJzcy5jPTY0Nj1zdGF0aWMgdm9pZCBpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0KHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxuLS1cbm5ldC9tYWM4MDIxMS9pYnNzLmMtNjcxLVx0bmV0aWZfY2Fycmllcl9vZmYoc2RhdGEtXHUwMDNlZGV2KTtcbm5ldC9tYWM4MDIxMS9pYnNzLmM6NjcyOlx0aWYgKCFzdGFfaW5mb19mbHVzaChzZGF0YSwgLTEpKVxubmV0L21hYzgwMjExL2lic3MuYy02NzMtXHRcdHN5bmNocm9uaXplX25ldCgpO1xuLS1cbm5ldC9tYWM4MDIxMS9pZmFjZS5jPTQ3OT1zdGF0aWMgdm9pZCBpZWVlODAyMTFfZG9fc3RvcChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSwgYm9vbCBnb2luZ19kb3duKVxuLS1cbm5ldC9tYWM4MDIxMS9pZmFjZS5jLTUzNC1cdCAqL1xubmV0L21hYzgwMjExL2lmYWNlLmM6NTM1Olx0Zmx1c2hlZCA9IHN0YV9pbmZvX2ZsdXNoKHNkYXRhLCAtMSk7XG5uZXQvbWFjODAyMTEvaWZhY2UuYy01MzYtXHRXQVJOX09OX09OQ0Uoc2RhdGEtXHUwMDNldmlmLnR5cGUgIT0gTkw4MDIxMV9JRlRZUEVfQVBfVkxBTiBcdTAwMjZcdTAwMjZcbi0tXG5uZXQvbWFjODAyMTEvbGluay5jPTI4Nz1zdGF0aWMgaW50IGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS9saW5rLmMtMzEyLVx0aWYgKCFvbGRfbGlua3MgfHwgIW5ld19saW5rcylcbm5ldC9tYWM4MDIxMS9saW5rLmM6MzEzOlx0XHRXQVJOX09OKHN0YV9pbmZvX2ZsdXNoKHNkYXRhLCAtMSkgXHUwMDNlIDApO1xubmV0L21hYzgwMjExL2xpbmsuYy0zMTQtXG4tLVxubmV0L21hYzgwMjExL2xpbmsuYy00MzItXHRmb3JfZWFjaF9zZXRfYml0KGxpbmtfaWQsIFx1MDAyNnN0YV9yZW0sIElFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LUylcbm5ldC9tYWM4MDIxMS9saW5rLmM6NDMzOlx0XHRzdGFfaW5mb19mbHVzaChzZGF0YSwgbGlua19pZCk7XG5uZXQvbWFjODAyMTEvbGluay5jLTQzNC1cbi0tXG5uZXQvbWFjODAyMTEvbWVzaC5jPTExOTk9dm9pZCBpZWVlODAyMTFfc3RvcF9tZXNoKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxuLS1cbm5ldC9tYWM4MDIxMS9tZXNoLmMtMTIwNy1cdC8qIGZsdXNoIFNUQXMgYW5kIG1wYXRocyBvbiB0aGlzIGlmYWNlICovXG5uZXQvbWFjODAyMTEvbWVzaC5jOjEyMDg6XHRzdGFfaW5mb19mbHVzaChzZGF0YSwgLTEpO1xubmV0L21hYzgwMjExL21lc2guYy0xMjA5LVx0aWVlZTgwMjExX2ZyZWVfa2V5cyhzZGF0YSwgdHJ1ZSk7XG4tLVxubmV0L21hYzgwMjExL21sbWUuYz00NTA4PXN0YXRpYyB2b2lkIGllZWU4MDIxMV9zZXRfZGlzYXNzb2Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL21sbWUuYy00NjIxLVx0LyogUmVtb3ZlIFRETFMgcGVlcnMgKi9cbm5ldC9tYWM4MDIxMS9tbG1lLmM6NDYyMjpcdF9fc3RhX2luZm9fZmx1c2goc2RhdGEsIGZhbHNlLCAtMSwgYXBfc3RhKTtcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNDYyMy1cbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jLTQ2MjgtXHRcdC8qIFJlbW92ZSBBUCBwZWVyICovXG5uZXQvbWFjODAyMTEvbWxtZS5jOjQ2Mjk6XHRcdHN0YV9pbmZvX2ZsdXNoKHNkYXRhLCAtMSk7XG5uZXQvbWFjODAyMTEvbWxtZS5jLTQ2MzAtXHR9XG4tLVxubmV0L21hYzgwMjExL21sbWUuYy00Njg1LVx0XHQgKi9cbm5ldC9tYWM4MDIxMS9tbG1lLmM6NDY4NjpcdFx0c3RhX2luZm9fZmx1c2goc2RhdGEsIC0xKTtcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNDY4Ny1cdH1cbi0tXG5uZXQvbWFjODAyMTEvb2NiLmM9MjA4PWludCBpZWVlODAyMTFfb2NiX2xlYXZlKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxuLS1cbm5ldC9tYWM4MDIxMS9vY2IuYy0yMTYtXHRpZm9jYi1cdTAwM2Vqb2luZWQgPSBmYWxzZTtcbm5ldC9tYWM4MDIxMS9vY2IuYzoyMTc6XHRzdGFfaW5mb19mbHVzaChzZGF0YSwgLTEpO1xubmV0L21hYzgwMjExL29jYi5jLTIxOC1cbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYz0xNjkwPXZvaWQgc3RhX2luZm9fc3RvcChzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbClcbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy0xNjk3LVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM6MTY5ODppbnQgX19zdGFfaW5mb19mbHVzaChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSwgYm9vbCB2bGFucyxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTE2OTktXHRcdCAgICAgaW50IGxpbmtfaWQsIHN0cnVjdCBzdGFfaW5mbyAqZG9fbm90X2ZsdXNoX3N0YSlcbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaD05NTM9dm9pZCBzdGFfaW5mb19zdG9wKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsKTtcbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaC05NTUtLyoqXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaDo5NTY6ICogX19zdGFfaW5mb19mbHVzaCAtIGZsdXNoIG1hdGNoaW5nIFNUQSBlbnRyaWVzIGZyb20gdGhlIFNUQSB0YWJsZVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtOTU3LSAqXG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtOTY2LSAqL1xubmV0L21hYzgwMjExL3N0YV9pbmZvLmg6OTY3OmludCBfX3N0YV9pbmZvX2ZsdXNoKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLCBib29sIHZsYW5zLFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtOTY4LVx0XHQgICAgIGludCBsaW5rX2lkLCBzdHJ1Y3Qgc3RhX2luZm8gKmRvX25vdF9mbHVzaF9zdGEpO1xuLS1cbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oLTk3MC0vKipcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oOjk3MTogKiBzdGFfaW5mb19mbHVzaCAtIGZsdXNoIG1hdGNoaW5nIFNUQSBlbnRyaWVzIGZyb20gdGhlIFNUQSB0YWJsZVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtOTcyLSAqXG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtOTc5LSAqL1xubmV0L21hYzgwMjExL3N0YV9pbmZvLmg6OTgwOnN0YXRpYyBpbmxpbmUgaW50IHN0YV9pbmZvX2ZsdXNoKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtOTgxLVx0XHRcdFx0IGludCBsaW5rX2lkKVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtOTgyLXtcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oOjk4MzpcdHJldHVybiBfX3N0YV9pbmZvX2ZsdXNoKHNkYXRhLCBmYWxzZSwgbGlua19pZCwgTlVMTCk7XG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaC05ODQtfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA3IDA1OjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUxNDMKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAyNjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBNYWM4MDIxMSBJQlNTIERpc2Nvbm5lY3QgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyB0d2Vha2luZyBgaWVlZTgwMjExX2lic3NfZGlzY29ubmVjdGAgd2l0aGluIHRoZSBgbmV0L21hYzgwMjExL2lic3MuY2AgZmlsZS4gVGhlIGNvcmUgY2hhbmdlIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQ6IHRoZXkmIzM5O3JlIHJlcGxhY2luZyBgc3RhX2luZm9fZmx1c2goc2RhdGEsIC0xKWAgd2l0aCBhIHNsaWdodGx5IG1vcmUgY29tcGxleCBzZXF1ZW5jZS4gRmlyc3QsIGBuZXRpZl9jYXJyaWVyX29mZihzZGF0YS0mZ3Q7ZGV2KWAgaXMgY2FsbGVkLCB3aGljaCBtYWtlcyBzZW5zZTsgd2Ugd2FudCB0byBzaWduYWwgdGhlIG5ldHdvcmsgaW50ZXJmYWNlIGlzIGRvd24uIFRoZW4sIHRoZXkgY2FsbCBgc3RhX2luZm9fZmx1c2goc2RhdGEsIC0xKWAgYW5kICpjb25kaXRpb25hbGx5KiBydW4gYHN5bmNocm9uaXplX25ldCgpYC4gVGhhdCBpbXBsaWVzIHRoZXJlIG1pZ2h0IGhhdmUgYmVlbiBhIHN1YnRsZSByYWNlIG9yIG9yZGVyaW5nIHByb2JsZW0gYmVpbmcgYWRkcmVzc2VkIGhlcmUuCgpUaGV5JiMzOTt2ZSBhbHNvIHJlbW92ZWQgYHN5bmNocm9uaXplX3JjdSgpYCBmcm9tIGBpZWVlODAyMTFfY3NhX2Nvbm5lY3Rpb25fZHJvcF93b3JrYCBhbmQgYGllZWU4MDIxMV9pYnNzX2xlYXZlYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoaXMgaXMgcHJvYmFibHkgcmVsYXRlZCB0byB0aGUgc2FtZSB1bmRlcmx5aW5nIHByb2JsZW0uIEl0IGxvb2tzIGxpa2UgdGhleSBtaWdodCBiZSBzdHJlYW1saW5pbmcgdGhlIHN5bmNocm9uaXphdGlvbiBwcm9jZXNzIGFyb3VuZCBJQlNTIGRpc2Nvbm5lY3RzIG9yIGxlYXZlcy4gVGhpcyBjb3VsZCBiZSBhIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiwgYnV0IG1vcmUgbGlrZWx5LCBpdCYjMzk7cyBhYm91dCBhdm9pZGluZyBzb21lIHBvdGVudGlhbCBkYXRhIGNvcnJ1cHRpb24gb3Igc3RhbGUgc3RhdGUgaXNzdWVzLCBlc3BlY2lhbGx5IHdoZW4gZGVhbGluZyB3aXRoIHN0YXRpb24gaW5mb3JtYXRpb24uCgpHaXZlbiB0aGlzIGlzIGEgY2hhbmdlIHdpdGhpbiB0aGUgbWFjODAyMTEgc3Vic3lzdGVtLCBzcGVjaWZpY2FsbHkgYWZmZWN0aW5nIElCU1MgKEFkLUhvYykgbW9kZSwgSSBuZWVkIHRvIGNoZWNrIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIGBDT05GSUdfTUFDODAyMTFgIGlzIG9idmlvdXNseSBhIHByZXJlcXVpc2l0ZSwgYnV0IEkgc3VzcGVjdCB0aGVyZSBtaWdodCBiZSBhIG1vcmUgc3BlY2lmaWMgY29uZmlndXJhdGlvbiByZWxhdGVkIHRvIElCU1MgdGhhdCYjMzk7cyBpbiBwbGF5IGhlcmUuIEkmIzM5O2xsIG5lZWQgdG8gZGlnIGludG8gYG5ldC9tYWM4MDIxMS9LY29uZmlnYCBvciBzaW1pbGFyIGZpbGVzIHRvIHNlZSBpZiBhbnl0aGluZyBlbHNlIGlzIG5lY2Vzc2FyeSB0byB0cmlnZ2VyIHRoaXMgY29kZSBwYXRoLiBJIHdhbnQgdG8gdW5kZXJzdGFuZCB0aGUgKmV4YWN0KiBjb25kaXRpb25zIHdoZXJlIHRoaXMgcGF0Y2ggYmVjb21lcyByZWxldmFudC4gQSBkZWVwIGRpdmUgd2lsbCB0ZWxsIG1lIHRoZSBlZGdlIGNhc2VzIG9mIHRoaXMgZml4LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA3IDA1OjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNQUM4MDIxMSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI6Y29uZmlnIE1BQzgwMjExXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7R2VuZXJpYyBJRUVFIDgwMi4xMSBOZXR3b3JraW5nIFN0YWNrIChtYWM4MDIxMSlcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xOT1pZiBNQUM4MDIxMSAhPSBuXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIxOmNvbmZpZyBNQUM4MDIxMV9IQVNfUkNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyLVx0Ym9vbFxubmV0L21hYzgwMjExL0tjb25maWctMjMtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDpjb25maWcgTUFDODAyMTFfUkNfTUlOU1RSRUxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1LVx0Ym9vbCBcJiMzNDtNaW5zdHJlbFwmIzM0OyBpZiBFWFBFUlRcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0zMT1jaG9pY2Vcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00MC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjQxOmNvbmZpZyBNQUM4MDIxMV9SQ19ERUZBVUxUX01JTlNUUkVMXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00Mi1cdGJvb2wgXCYjMzQ7TWluc3RyZWxcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz00OD1lbmRjaG9pY2Vcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQ5LVxubmV0L21hYzgwMjExL0tjb25maWc6NTA6Y29uZmlnIE1BQzgwMjExX1JDX0RFRkFVTFRcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTUxLVx0c3RyaW5nXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9NTc9Y29tbWVudCBcJiMzNDtTb21lIHdpcmVsZXNzIGRyaXZlcnMgcmVxdWlyZSBhIHJhdGUgY29udHJvbCBhbGdvcml0aG1cJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01OS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjYwOmNvbmZpZyBNQUM4MDIxMV9LVU5JVF9URVNUXG5uZXQvbWFjODAyMTEvS2NvbmZpZy02MS1cdHRyaXN0YXRlIFwmIzM0O0tVbml0IHRlc3RzIGZvciBtYWM4MDIxMVwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4tLVxubmV0L21hYzgwMjExL0tjb25maWctNjktXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3MDpjb25maWcgTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL0tjb25maWctNzEtXHRib29sIFwmIzM0O0VuYWJsZSBtYWM4MDIxMSBtZXNoIG5ldHdvcmtpbmcgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTc4LVxubmV0L21hYzgwMjExL0tjb25maWc6Nzk6Y29uZmlnIE1BQzgwMjExX0xFRFNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTgwLVx0Ym9vbCBcJiMzNDtFbmFibGUgTEVEIHRyaWdnZXJzXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctODctXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo4ODpjb25maWcgTUFDODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL0tjb25maWctODktXHRib29sIFwmIzM0O0V4cG9ydCBtYWM4MDIxMSBpbnRlcm5hbHMgaW4gRGVidWdGU1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTk2LVxubmV0L21hYzgwMjExL0tjb25maWc6OTc6Y29uZmlnIE1BQzgwMjExX01FU1NBR0VfVFJBQ0lOR1xubmV0L21hYzgwMjExL0tjb25maWctOTgtXHRib29sIFwmIzM0O1RyYWNlIGFsbCBtYWM4MDIxMSBkZWJ1ZyBtZXNzYWdlc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEwOS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjExMDptZW51Y29uZmlnIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExMS1cdGJvb2wgXCYjMzQ7U2VsZWN0IG1hYzgwMjExIGRlYnVnZ2luZyBmZWF0dXJlc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExNS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjExNjpjb25maWcgTUFDODAyMTFfTk9JTkxJTkVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExNy1cdGJvb2wgXCYjMzQ7RG8gbm90IGlubGluZSBUWC9SWCBoYW5kbGVyc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjEzMjpjb25maWcgTUFDODAyMTFfVkVSQk9TRV9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTMzLVx0Ym9vbCBcJiMzNDtWZXJib3NlIGRlYnVnZ2luZyBvdXRwdXRcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNDItXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNDM6Y29uZmlnIE1BQzgwMjExX01MTUVfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE0NC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtYW5hZ2VkIE1MTUUgb3V0cHV0XCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTUzLVxubmV0L21hYzgwMjExL0tjb25maWc6MTU0OmNvbmZpZyBNQUM4MDIxMV9TVEFfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1NS1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBzdGF0aW9uIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE2Mi1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE2Mzpjb25maWcgTUFDODAyMTFfSFRfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE2NC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBIVCBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzQtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNzU6Y29uZmlnIE1BQzgwMjExX09DQl9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTc2LVx0Ym9vbCBcJiMzNDtWZXJib3NlIE9DQiBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xODUtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxODY6Y29uZmlnIE1BQzgwMjExX0lCU1NfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4Ny1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBJQlNTIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE5Ni1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE5Nzpjb25maWcgTUFDODAyMTFfUFNfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE5OC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBwb3dlcnNhdmUgbW9kZSBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMDgtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMDk6Y29uZmlnIE1BQzgwMjExX01QTF9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjEwLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggcGVlciBsaW5rIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIyMjpjb25maWcgTUFDODAyMTFfTVBBVEhfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMy1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIHBhdGggZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjM0LVxubmV0L21hYzgwMjExL0tjb25maWc6MjM1OmNvbmZpZyBNQUM4MDIxMV9NSFdNUF9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjM2LVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggSFdNUCByb3V0aW5nIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0Ny1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI0ODpjb25maWcgTUFDODAyMTFfTUVTSF9TWU5DX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDktXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBzeW5jaHJvbml6YXRpb24gZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjU4LVxubmV0L21hYzgwMjExL0tjb25maWc6MjU5OmNvbmZpZyBNQUM4MDIxMV9NRVNIX0NTQV9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjYwLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggY2hhbm5lbCBzd2l0Y2ggZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjY5LVxubmV0L21hYzgwMjExL0tjb25maWc6MjcwOmNvbmZpZyBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNzEtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBwb3dlcnNhdmUgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjgwLVxubmV0L21hYzgwMjExL0tjb25maWc6MjgxOmNvbmZpZyBNQUM4MDIxMV9URExTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODItXHRib29sIFwmIzM0O1ZlcmJvc2UgVERMUyBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTItXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyOTM6Y29uZmlnIE1BQzgwMjExX0RFQlVHX0NPVU5URVJTXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTQtXHRib29sIFwmIzM0O0V4dHJhIHN0YXRpc3RpY3MgZm9yIFRYL1JYIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMwNy1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjMwODpjb25maWcgTUFDODAyMTFfU1RBX0hBU0hfTUFYX1NJWkVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMwOS1cdGludCBcJiMzNDtTdGF0aW9uIGhhc2ggdGFibGUgbWF4aW11bSBzaXplXCYjMzQ7IGlmIE1BQzgwMjExX0RFQlVHX01FTlVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNyAwNTo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4MDM0CgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogNjcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRXhhbWluaW5nIHRoZSBJQlNTIENvbmZpZ3VyYXRpb24gTGFuZHNjYXBlKioKCk9rYXksIHNvIEkmIzM5O20gZm9jdXNpbmcgb24gdGhlIGNvbmZpZ3VyYXRpb24gaGVyZSwgYW5kIGl0JiMzOTtzIHByZXR0eSBjbGVhciB0aGF0IGBNQUM4MDIxMWAgaXMgdGhlIGNvcmUsIHRoZSBiaWcgb25lLiBOb3csIEkmIzM5O20gdHJ5aW5nIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgSUJTUyBjb25maWd1cmF0aW9uIHNwZWNpZmljYWxseS4gSSBzZWUgdGhpcyBgTUFDODAyMTFfSUJTU19ERUJVR2Agb3B0aW9uLCBidXQgdGhhdCYjMzk7cyBvYnZpb3VzbHkganVzdCBmb3IgZGVidWdnaW5nLiBUaGUgdGhpbmcgaXMsIElCU1MgaXMgKnBhcnQqIG9mIGBNQUM4MDIxMWAgaXRzZWxmLiBTbywgd2hhdCBJJiMzOTttIHJlYWxseSB0cnlpbmcgdG8gZmlndXJlIG91dCBpcyBpZiB0aGVyZSBhcmUgYW55ICpvdGhlciogbW9yZSBzcGVjaWZpYyBjb25maWd1cmF0aW9ucyB0aGF0IHBlcnRhaW4gZGlyZWN0bHkgdG8gSUJTUyBiZXlvbmQgdGhhdCBnZW5lcmFsIGRlYnVnIG9wdGlvbi4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJJiMzOTttIG5vdCBtaXNzaW5nIGFueXRoaW5nIGNydWNpYWwuIFRpbWUgdG8gZGVsdmUgYSBiaXQgZGVlcGVyIGFuZCBzZWUgaWYgdGhlcmUgYXJlIGFueSBoaWRkZW4gc2V0dGluZ3MhCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMDU6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnLipJQlNTJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvS2NvbmZpZz0xNzU9Y29uZmlnIE1BQzgwMjExX09DQl9ERUJVR1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4NS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE4Njpjb25maWcgTUFDODAyMTFfSUJTU19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTg3LVx0Ym9vbCBcJiMzNDtWZXJib3NlIElCU1MgZGVidWdnaW5nXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMDU6NDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODQyMQoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDE4NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgSUJTUyBEaXNjb25uZWN0aW9uIFBvaW50cyoqCgpPa2F5LCBzbyB0aGVyZSYjMzk7cyBubyBkZWRpY2F0ZWQgY29uZmlndXJhdGlvbiBvcHRpb24gc3BlY2lmaWNhbGx5IGZvciBJbmRlcGVuZGVudCBCYXNpYyBTZXJ2aWNlIFNldCAoSUJTUykgd2l0aGluIHRoZSBkcml2ZXI7IGl0JiMzOTtzIGFsbCBoYW5kbGVkIHVuZGVyIHRoZSB1bWJyZWxsYSBvZiBgTUFDODAyMTFgLiBUaGF0IG1ha2VzIHNlbnNlOyBpdCBrZWVwcyB0aGluZ3Mgc3RyZWFtbGluZWQuCgpNeSBpbml0aWFsIHNjYW4gdGVsbHMgbWUgdGhpcyBwYXRjaCBzcGVjaWZpY2FsbHkgdHdlYWtzIGEgZmV3IGtleSBmdW5jdGlvbnM6IGBpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0YCwgYGllZWU4MDIxMV9jc2FfY29ubmVjdGlvbl9kcm9wX3dvcmtgLCBhbmQgYGllZWU4MDIxMV9pYnNzX2xlYXZlYC4gVGhlc2UgYXJlIHRoZSBjb3JlIHJvdXRpbmVzIGludm9sdmVkIGluIElCU1MgZGlzY29ubmVjdGlvbiBhbmQgbGVhdmluZyB0aGUgSUJTUyBuZXR3b3JrLgoKTm93LCB3aGVyZSBkbyB0aGVzZSBmdW5jdGlvbnMgZ2V0IGludm9rZWQ/IEkgc3VzcGVjdCB0aGV5JiMzOTtyZSB0cmlnZ2VyZWQgaW4gYSBmZXcgd2F5cy4gTGlrZWx5IHRocm91Z2ggbmV0bGluayBjb21tYW5kcyBzcGVjaWZpYyB0byBgbWFjODAyMTFgIG9yIGFzIGEgcmVzdWx0IG9mIGludGVybmFsIGV2ZW50cyB3aXRoaW4gdGhlIGtlcm5lbCB3aXJlbGVzcyBzdGFjay4gRm9yIGV4YW1wbGUsIGBpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0YCBzZWVtcyB0byBiZSBjYWxsZWQgaW5kaXJlY3RseSBmcm9tIGBpZWVlODAyMTFfY3NhX2Nvbm5lY3Rpb25fZHJvcF93b3JrYCBhbmQgYGllZWU4MDIxMV9pYnNzX2xlYXZlYCwgSSYjMzk7bSBhbHNvIHNlZWluZyBpdCBjYWxsZWQgZnJvbSBmdW5jdGlvbnMgbGlrZSBgX19pZWVlODAyMTFfc3RhX2pvaW5faWJzc2AuLi4gVGhpcyBpbmRpY2F0ZXMgaXQmIzM5O3MgYSBjcml0aWNhbCBmdW5jdGlvbiBmb3IgbWFuYWdpbmcgY2xpZW50cyBhbmQgdGhlIElCU1MgbGlmZWN5Y2xlLgoKSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNhbGwgcGF0aHMgYmV0dGVyLiBMZXQmIzM5O3MgZGlnIGludG8gd2hlcmUgYGllZWU4MDIxMV9pYnNzX2Rpc2Nvbm5lY3RgIGlzIGNhbGxlZCBmcm9tLiBJIG5lZWQgdG8gdHJhY2UgdGhpcyBjYXJlZnVsbHkgdG8gc2VlIHRoZSBleGFjdCBjb25kaXRpb25zIHRoYXQgdHJpZ2dlciB0aGVzZSBkaXNjb25uZWN0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMDU6NDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aWVlZTgwMjExX2lic3NfZGlzY29ubmVjdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL2lic3MuYz02MjA9c3RhdGljIGludCBpZWVlODAyMTFfc3RhX2FjdGl2ZV9pYnNzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxuLS1cbm5ldC9tYWM4MDIxMS9pYnNzLmMtNjQ1LVxubmV0L21hYzgwMjExL2lic3MuYzo2NDY6c3RhdGljIHZvaWQgaWVlZTgwMjExX2lic3NfZGlzY29ubmVjdChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSlcbm5ldC9tYWM4MDIxMS9pYnNzLmMtNjQ3LXtcbi0tXG5uZXQvbWFjODAyMTEvaWJzcy5jPTcwNT1zdGF0aWMgdm9pZCBpZWVlODAyMTFfY3NhX2Nvbm5lY3Rpb25fZHJvcF93b3JrKHN0cnVjdCB3aXBoeSAqd2lwaHksXG4tLVxubmV0L21hYzgwMjExL2lic3MuYy03MTEtXG5uZXQvbWFjODAyMTEvaWJzcy5jOjcxMjpcdGllZWU4MDIxMV9pYnNzX2Rpc2Nvbm5lY3Qoc2RhdGEpO1xubmV0L21hYzgwMjExL2lic3MuYy03MTMtXHRza2JfcXVldWVfcHVyZ2UoXHUwMDI2c2RhdGEtXHUwMDNlc2tiX3F1ZXVlKTtcbi0tXG5uZXQvbWFjODAyMTEvaWJzcy5jPTE3ODI9aW50IGllZWU4MDIxMV9pYnNzX2xlYXZlKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxuLS1cbm5ldC9tYWM4MDIxMS9pYnNzLmMtMTc4Ni1cdGlmaWJzcy1cdTAwM2Vzc2lkX2xlbiA9IDA7XG5uZXQvbWFjODAyMTEvaWJzcy5jOjE3ODc6XHRpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0KHNkYXRhKTtcbm5ldC9tYWM4MDIxMS9pYnNzLmMtMTc4OC1cdGV0aF96ZXJvX2FkZHIoaWZpYnNzLVx1MDAzZWJzc2lkKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMDU6NDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTQ0NAoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDI3NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIFBsYW46IG1hYzgwMjExIElCU1MgRGlzY29ubmVjdCBGaXgqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IHRoaXMgcGF0Y2gg4oCTIGl0IGxvb2tzIGxpa2UgaXQmIzM5O3MgdG91Y2hpbmcgY29yZSBrZXJuZWwgbG9naWMgcmVsYXRlZCB0byBJQlNTIG1vZGUgd2l0aGluIGBtYWM4MDIxMWAsIHNwZWNpZmljYWxseSBob3cgZGlzY29ubmVjdCBhbmQgbGVhdmUgb3BlcmF0aW9ucyBhcmUgaGFuZGxlZC4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgaXQmIzM5O3MgKmZ1bmN0aW9uYWwqLCBtZWFuaW5nIGl0JiMzOTtzIGFsdGVyaW5nIHRoZSBmdW5kYW1lbnRhbCBiZWhhdmlvciBvZiB0aGUgZHJpdmVyLiBUaGF0IG1ha2VzIGZ1enppbmcgYSBoaWdoIHByaW9yaXR5LiBXZSBuZWVkIHRvIGVuc3VyZSB0aGlzIGZpeCBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgYW55IHJlZ3Jlc3Npb25zIG9yLCBoZWF2ZW4gZm9yYmlkLCBkZWFkbG9ja3MuIFRoaXMgaXMgYSBjcml0aWNhbCBhcmVhIGZvciBtZS4KClRoZSBwYXRjaCBzZWVtcyB0byBiZSBhZGRyZXNzaW5nIGEgcmFjZSBjb25kaXRpb24gb3Igc3luY2hyb25pemF0aW9uIHByb2JsZW0sIGp1ZGdpbmcgYnkgdGhlIHJlb3JkZXJpbmcgb2YgYG5ldGlmX2NhcnJpZXJfb2ZmYCBhbmQgYHN0YV9pbmZvX2ZsdXNoYCBhbmQgdGhlIFJDVSBzeW5jaHJvbml6YXRpb24gYWRqdXN0bWVudHMuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gZ28gYWZ0ZXIgdGhlc2UgY29yZSBjb21wb25lbnRzIGZvciBmdXp6aW5nLgoKTXkgbGlzdCBvZiBmb2N1cyBzeW1ib2xzIHdpbGwgYmU6CiogICBgaWVlZTgwMjExX2lic3NfZGlzY29ubmVjdGAKKiAgIGBpZWVlODAyMTFfY3NhX2Nvbm5lY3Rpb25fZHJvcF93b3JrYAoqICAgYGllZWU4MDIxMV9pYnNzX2xlYXZlYAoKTm93LCBsZXQmIzM5O3MgbmFpbCBkb3duIHRoZSBjb25maWd1cmF0aW9uIG5lZWRlZCBmb3IgZWZmZWN0aXZlIGZ1enppbmcuIFRoZSBwYXRjaCBpcyB0YXJnZXRpbmcgYG1hYzgwMjExYCwgYW5kIEkgdGhpbmsgYE1BQzgwMjExYCBzaG91bGQgYmUgdGhlIGtleSBjb25maWd1cmF0aW9uIG9wdGlvbiBuZWVkZWQuIEkgbmVlZCB0byBjb25maXJtIHRoYXQgYE1BQzgwMjExYCBpcyBzdWZmaWNpZW50LCBhbmQgSSB3aWxsIGFkZCBgV0xBTmAgb3IgYENGRzgwMjExYCBpZiBuZWNlc3NhcnkuIEkgc2hvdWxkIGJlIGZpbmUsIGFzIGBNQUM4MDIxMWAgdXN1YWxseSBpbXBsaWVzIGBDRkc4MDIxMWAuIEkmIzM5O2xsIGRvdWJsZS1jaGVjayB0aGUgZGVwZW5kZW5jeSB0byBiZSBzdXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNyAwNTo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkZXBlbmRzIG9uIENGRzgwMjExJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvS2NvbmZpZz0yPWNvbmZpZyBNQUM4MDIxMVxubmV0L21hYzgwMjExL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O0dlbmVyaWMgSUVFRSA4MDIuMTEgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTEpXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzo0Olx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxubmV0L21hYzgwMjExL0tjb25maWctNS1cdHNlbGVjdCBDUllQVE9cbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xNj1jb21tZW50IFwmIzM0O0NGRzgwMjExIG5lZWRzIHRvIGJlIGVuYWJsZWQgZm9yIE1BQzgwMjExXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNzpcdGRlcGVuZHMgb24gQ0ZHODAyMTE9blxubmV0L21hYzgwMjExL0tjb25maWctMTgtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA3IDA1OjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEwMzIwCgkJCQkJCQlvdXRwdXQ6IDE3NwoJCQkJCQkJdGhvdWdodHM6IDQ1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgaGF2aW5nIGl0OgoKKipDb25maXJtaW5nIGFuZCBGb3JtdWxhdGluZyB0aGUgUmVzcG9uc2UqKgoKQWxyaWdodCwgbGV0IG1lIHNlZS4uLiBNeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgYE1BQzgwMjExYCByZWxpZXMgb24gYENGRzgwMjExYCwgc28gdGhhdCBjb25maXJtcyB3aGF0IEkgc3VzcGVjdGVkLiBUaGUgbG9naWNhbCBjb25jbHVzaW9uIGlzIHRoYXQgZW5hYmxpbmcgYE1BQzgwMjExYCBpcyB0aGUgY29ycmVjdCBjb25maWd1cmF0aW9uIHRvIGZvY3VzIG9uLiBHb3QgaXQsIHRoYXTigJlzIHN0cmFpZ2h0Zm9yd2FyZC4gTm93IHRoYXQgSSBoYXZlIHRoYXQgY2xlYXIsIEkgd2lsbCBmb3JtdWxhdGUgdGhlIHJlc3BvbnNlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNyAwNTo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TUFDODAyMTEmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0JiMzNDssCiAgICAmIzM0O2llZWU4MDIxMV9jc2FfY29ubmVjdGlvbl9kcm9wX3dvcmsmIzM0OywKICAgICYjMzQ7aWVlZTgwMjExX2lic3NfbGVhdmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHN5bmNocm9uaXphdGlvbiBhbmQgdGVhcmRvd24gc2VxdWVuY2UgZHVyaW5nIElCU1MgKEFkLUhvYykgZGlzY29ubmVjdCBhbmQgbGVhdmUgb3BlcmF0aW9ucyBpbiB0aGUgbWFjODAyMTEgc3Vic3lzdGVtLiBJdCByZW9yZGVycyBgbmV0aWZfY2Fycmllcl9vZmZgIGFuZCBgc3RhX2luZm9fZmx1c2hgIGFuZCBhZGp1c3RzIFJDVSBzeW5jaHJvbml6YXRpb24gdG8gZml4IGEgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9uLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgbmV0d29ya2luZyBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIG5ldyByZWdyZXNzaW9ucyBvciBkZWFkbG9ja3MgYXJlIGludHJvZHVjZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQzgwMjExJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX2lic3NfZGlzY29ubmVjdCYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfY3NhX2Nvbm5lY3Rpb25fZHJvcF93b3JrJiMzNDssCiAgICAmIzM0O2llZWU4MDIxMV9pYnNzX2xlYXZlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBzeW5jaHJvbml6YXRpb24gYW5kIHRlYXJkb3duIHNlcXVlbmNlIGR1cmluZyBJQlNTIChBZC1Ib2MpIGRpc2Nvbm5lY3QgYW5kIGxlYXZlIG9wZXJhdGlvbnMgaW4gdGhlIG1hYzgwMjExIHN1YnN5c3RlbS4gSXQgcmVvcmRlcnMgYG5ldGlmX2NhcnJpZXJfb2ZmYCBhbmQgYHN0YV9pbmZvX2ZsdXNoYCBhbmQgYWRqdXN0cyBSQ1Ugc3luY2hyb25pemF0aW9uIHRvIGZpeCBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyBuZXcgcmVncmVzc2lvbnMgb3IgZGVhZGxvY2tzIGFyZSBpbnRyb2R1Y2VkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMDdUMDU6NDg6NDUuODcwOTE1ODY5WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDM4MTg2MzE2NTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTUFDODAyMTFcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0XCIsXG4gICAgXCJpZWVlODAyMTFfY3NhX2Nvbm5lY3Rpb25fZHJvcF93b3JrXCIsXG4gICAgXCJpZWVlODAyMTFfaWJzc19sZWF2ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBzeW5jaHJvbml6YXRpb24gYW5kIHRlYXJkb3duIHNlcXVlbmNlIGR1cmluZyBJQlNTIChBZC1Ib2MpIGRpc2Nvbm5lY3QgYW5kIGxlYXZlIG9wZXJhdGlvbnMgaW4gdGhlIG1hYzgwMjExIHN1YnN5c3RlbS4gSXQgcmVvcmRlcnMgYG5ldGlmX2NhcnJpZXJfb2ZmYCBhbmQgYHN0YV9pbmZvX2ZsdXNoYCBhbmQgYWRqdXN0cyBSQ1Ugc3luY2hyb25pemF0aW9uIHRvIGZpeCBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyBuZXcgcmVncmVzc2lvbnMgb3IgZGVhZGxvY2tzIGFyZSBpbnRyb2R1Y2VkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QwNTo0ODo0NS44NzA5MjIyNjlaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUzNDc4NzUxNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGU0ZTg3Yzg5MzcwMDQ1YmMxOTkwNWI0N2I4ZjhmOTEwYzlmNDU4MmFcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBKdWwgNyAwNTo0ODo0NCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvaWJzcy5jIGIvbmV0L21hYzgwMjExL2lic3MuY1xcbmluZGV4IGQwZmQ2MDU0ZjE4MjAwLi40NzJhYjg2NzJiZTVlMCAxMDA2NDRcXG4tLS0gYS9uZXQvbWFjODAyMTEvaWJzcy5jXFxuKysrIGIvbmV0L21hYzgwMjExL2lic3MuY1xcbkBAIC02NjgsNyArNjY4LDkgQEAgc3RhdGljIHZvaWQgaWVlZTgwMjExX2lic3NfZGlzY29ubmVjdChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSlcXG4gXFxuIFxcdGlmaWJzcy1cXHUwMDNlc3RhdGUgPSBJRUVFODAyMTFfSUJTU19NTE1FX1NFQVJDSDtcXG4gXFxuLVxcdHN0YV9pbmZvX2ZsdXNoKHNkYXRhLCAtMSk7XFxuK1xcdG5ldGlmX2NhcnJpZXJfb2ZmKHNkYXRhLVxcdTAwM2VkZXYpO1xcbitcXHRpZiAoIXN0YV9pbmZvX2ZsdXNoKHNkYXRhLCAtMSkpXFxuK1xcdFxcdHN5bmNocm9uaXplX25ldCgpO1xcbiBcXG4gXFx0c3Bpbl9sb2NrX2JoKFxcdTAwMjZpZmlic3MtXFx1MDAzZWluY29tcGxldGVfbG9jayk7XFxuIFxcdHdoaWxlICghbGlzdF9lbXB0eShcXHUwMDI2aWZpYnNzLVxcdTAwM2VpbmNvbXBsZXRlX3N0YXRpb25zKSkge1xcbkBAIC02ODIsOCArNjg0LDYgQEAgc3RhdGljIHZvaWQgaWVlZTgwMjExX2lic3NfZGlzY29ubmVjdChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSlcXG4gXFx0fVxcbiBcXHRzcGluX3VubG9ja19iaChcXHUwMDI2aWZpYnNzLVxcdTAwM2VpbmNvbXBsZXRlX2xvY2spO1xcbiBcXG4tXFx0bmV0aWZfY2Fycmllcl9vZmYoc2RhdGEtXFx1MDAzZWRldik7XFxuLVxcbiBcXHRzZGF0YS1cXHUwMDNldmlmLmNmZy5pYnNzX2pvaW5lZCA9IGZhbHNlO1xcbiBcXHRzZGF0YS1cXHUwMDNldmlmLmNmZy5pYnNzX2NyZWF0b3IgPSBmYWxzZTtcXG4gXFx0c2RhdGEtXFx1MDAzZXZpZi5ic3NfY29uZi5lbmFibGVfYmVhY29uID0gZmFsc2U7XFxuQEAgLTcxMCw3ICs3MTAsNiBAQCBzdGF0aWMgdm9pZCBpZWVlODAyMTFfY3NhX2Nvbm5lY3Rpb25fZHJvcF93b3JrKHN0cnVjdCB3aXBoeSAqd2lwaHksXFxuIFxcdFxcdFxcdCAgICAgdS5pYnNzLmNzYV9jb25uZWN0aW9uX2Ryb3Bfd29yayk7XFxuIFxcbiBcXHRpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0KHNkYXRhKTtcXG4tXFx0c3luY2hyb25pemVfcmN1KCk7XFxuIFxcdHNrYl9xdWV1ZV9wdXJnZShcXHUwMDI2c2RhdGEtXFx1MDAzZXNrYl9xdWV1ZSk7XFxuIFxcbiBcXHQvKiB0cmlnZ2VyIGEgc2NhbiB0byBmaW5kIGFub3RoZXIgSUJTUyBuZXR3b3JrIHRvIGpvaW4gKi9cXG5AQCAtMTc5Nyw4ICsxNzk2LDYgQEAgaW50IGllZWU4MDIxMV9pYnNzX2xlYXZlKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxcbiBcXHRtZW1zZXQoXFx1MDAyNmlmaWJzcy1cXHUwMDNlaHRfY2FwYSwgMCwgc2l6ZW9mKGlmaWJzcy1cXHUwMDNlaHRfY2FwYSkpO1xcbiBcXHRtZW1zZXQoXFx1MDAyNmlmaWJzcy1cXHUwMDNlaHRfY2FwYV9tYXNrLCAwLCBzaXplb2YoaWZpYnNzLVxcdTAwM2VodF9jYXBhX21hc2spKTtcXG4gXFxuLVxcdHN5bmNocm9uaXplX3JjdSgpO1xcbi1cXG4gXFx0c2tiX3F1ZXVlX3B1cmdlKFxcdTAwMjZzZGF0YS1cXHUwMDNlc2tiX3F1ZXVlKTtcXG4gXFxuIFxcdHRpbWVyX2RlbGV0ZV9zeW5jKFxcdTAwMjZzZGF0YS1cXHUwMDNldS5pYnNzLnRpbWVyKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDdUMDU6NDg6NDYuNDA2MzgyNTA1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MzI4MzE0OTA2MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNQUM4MDIxMVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImllZWU4MDIxMV9pYnNzX2Rpc2Nvbm5lY3RcIixcbiAgICBcImllZWU4MDIxMV9jc2FfY29ubmVjdGlvbl9kcm9wX3dvcmtcIixcbiAgICBcImllZWU4MDIxMV9pYnNzX2xlYXZlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHN5bmNocm9uaXphdGlvbiBhbmQgdGVhcmRvd24gc2VxdWVuY2UgZHVyaW5nIElCU1MgKEFkLUhvYykgZGlzY29ubmVjdCBhbmQgbGVhdmUgb3BlcmF0aW9ucyBpbiB0aGUgbWFjODAyMTEgc3Vic3lzdGVtLiBJdCByZW9yZGVycyBgbmV0aWZfY2Fycmllcl9vZmZgIGFuZCBgc3RhX2luZm9fZmx1c2hgIGFuZCBhZGp1c3RzIFJDVSBzeW5jaHJvbml6YXRpb24gdG8gZml4IGEgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9uLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgbmV0d29ya2luZyBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIG5ldyByZWdyZXNzaW9ucyBvciBkZWFkbG9ja3MgYXJlIGludHJvZHVjZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZTRlODdjODkzNzAwNDViYzE5OTA1YjQ3YjhmOGY5MTBjOWY0NTgyYVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVsIDcgMDU6NDg6NDQgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvaWJzcy5jIGIvbmV0L21hYzgwMjExL2lic3MuY1xuaW5kZXggZDBmZDYwNTRmMTgyMDAuLjQ3MmFiODY3MmJlNWUwIDEwMDY0NFxuLS0tIGEvbmV0L21hYzgwMjExL2lic3MuY1xuKysrIGIvbmV0L21hYzgwMjExL2lic3MuY1xuQEAgLTY2OCw3ICs2NjgsOSBAQCBzdGF0aWMgdm9pZCBpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0KHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxuIFxuIFx0aWZpYnNzLVx1MDAzZXN0YXRlID0gSUVFRTgwMjExX0lCU1NfTUxNRV9TRUFSQ0g7XG4gXG4tXHRzdGFfaW5mb19mbHVzaChzZGF0YSwgLTEpO1xuK1x0bmV0aWZfY2Fycmllcl9vZmYoc2RhdGEtXHUwMDNlZGV2KTtcbitcdGlmICghc3RhX2luZm9fZmx1c2goc2RhdGEsIC0xKSlcbitcdFx0c3luY2hyb25pemVfbmV0KCk7XG4gXG4gXHRzcGluX2xvY2tfYmgoXHUwMDI2aWZpYnNzLVx1MDAzZWluY29tcGxldGVfbG9jayk7XG4gXHR3aGlsZSAoIWxpc3RfZW1wdHkoXHUwMDI2aWZpYnNzLVx1MDAzZWluY29tcGxldGVfc3RhdGlvbnMpKSB7XG5AQCAtNjgyLDggKzY4NCw2IEBAIHN0YXRpYyB2b2lkIGllZWU4MDIxMV9pYnNzX2Rpc2Nvbm5lY3Qoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXG4gXHR9XG4gXHRzcGluX3VubG9ja19iaChcdTAwMjZpZmlic3MtXHUwMDNlaW5jb21wbGV0ZV9sb2NrKTtcbiBcbi1cdG5ldGlmX2NhcnJpZXJfb2ZmKHNkYXRhLVx1MDAzZWRldik7XG4tXG4gXHRzZGF0YS1cdTAwM2V2aWYuY2ZnLmlic3Nfam9pbmVkID0gZmFsc2U7XG4gXHRzZGF0YS1cdTAwM2V2aWYuY2ZnLmlic3NfY3JlYXRvciA9IGZhbHNlO1xuIFx0c2RhdGEtXHUwMDNldmlmLmJzc19jb25mLmVuYWJsZV9iZWFjb24gPSBmYWxzZTtcbkBAIC03MTAsNyArNzEwLDYgQEAgc3RhdGljIHZvaWQgaWVlZTgwMjExX2NzYV9jb25uZWN0aW9uX2Ryb3Bfd29yayhzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxuIFx0XHRcdCAgICAgdS5pYnNzLmNzYV9jb25uZWN0aW9uX2Ryb3Bfd29yayk7XG4gXG4gXHRpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0KHNkYXRhKTtcbi1cdHN5bmNocm9uaXplX3JjdSgpO1xuIFx0c2tiX3F1ZXVlX3B1cmdlKFx1MDAyNnNkYXRhLVx1MDAzZXNrYl9xdWV1ZSk7XG4gXG4gXHQvKiB0cmlnZ2VyIGEgc2NhbiB0byBmaW5kIGFub3RoZXIgSUJTUyBuZXR3b3JrIHRvIGpvaW4gKi9cbkBAIC0xNzk3LDggKzE3OTYsNiBAQCBpbnQgaWVlZTgwMjExX2lic3NfbGVhdmUoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXG4gXHRtZW1zZXQoXHUwMDI2aWZpYnNzLVx1MDAzZWh0X2NhcGEsIDAsIHNpemVvZihpZmlic3MtXHUwMDNlaHRfY2FwYSkpO1xuIFx0bWVtc2V0KFx1MDAyNmlmaWJzcy1cdTAwM2VodF9jYXBhX21hc2ssIDAsIHNpemVvZihpZmlic3MtXHUwMDNlaHRfY2FwYV9tYXNrKSk7XG4gXG4tXHRzeW5jaHJvbml6ZV9yY3UoKTtcbi1cbiBcdHNrYl9xdWV1ZV9wdXJnZShcdTAwMjZzZGF0YS1cdTAwM2Vza2JfcXVldWUpO1xuIFxuIFx0dGltZXJfZGVsZXRlX3N5bmMoXHUwMDI2c2RhdGEtXHUwMDNldS5pYnNzLnRpbWVyKTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDA1OjQ4OjQ2LjQwNjM4Mzg0NVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ1NDM2NDg5MjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBJQlNTIERpc2Nvbm5lY3Rpb24gUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdHdlYWtzIGBuZXQvbWFjODAyMTEvaWJzcy5jYC4gSXQgc2VlbXMgdG8gYmUgZm9jdXNpbmcgb24gdGhlIGRpc2Nvbm5lY3Rpb24gcHJvY2VzcyBmb3IgSUJTUyBuZXR3b3Jrcy4gVGhlIG1haW4gY2hhbmdlIGhlcmUgaXMgd2l0aGluIGBpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0YC4gTm93LCBpbnN0ZWFkIG9mIGltbWVkaWF0ZWx5IGZsdXNoaW5nIHN0YXRpb24gaW5mb3JtYXRpb24sIGl0J3MgY2FsbGluZyBgbmV0aWZfY2Fycmllcl9vZmZgICpmaXJzdCosIGJlZm9yZSBgc3RhX2luZm9fZmx1c2hgLiBUaGF0IG1ha2VzIGludHVpdGl2ZSBzZW5zZTsgd2Ugd2FudCB0byBzaWduYWwgdGhlIGxpbmsgaXMgZG93biAqYmVmb3JlKiB3ZSBzdGFydCBjbGVhbmluZyB1cCBzdGF0aW9uIGVudHJpZXMuIEEgc21hcnQgbW92ZS5cblxuVGhlIGludGVyZXN0aW5nIHBhcnQgaXMgdGhlIGNvbmRpdGlvbmFsIGBzeW5jaHJvbml6ZV9uZXQoKWAgY2FsbCBhZnRlciBgc3RhX2luZm9fZmx1c2hgIGlmIGBzdGFfaW5mb19mbHVzaGAgcmV0dXJucyAwLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aHkgdGhhdCdzIHRoZXJlLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgd2hhdCBhcmUgdGhlIHBvc3NpYmxlIHJldHVybiB2YWx1ZXMgb2YgYHN0YV9pbmZvX2ZsdXNoYD8gV2hhdCBkb2VzIGEgemVybyByZXR1cm4gc2lnbmlmeSBpbiB0aGlzIGNvbnRleHQ/IElzIGl0IHJlbGF0ZWQgdG8gd2hldGhlciB0aGUgZmx1c2ggb3BlcmF0aW9uIHdhcyBzdWNjZXNzZnVsLCBvciBzb21ldGhpbmcgbW9yZSBudWFuY2VkPyBJIG5lZWQgdG8gZGlnIGludG8gYHN0YV9pbmZvX2ZsdXNoYCBpdHNlbGYgdG8gdW5kZXJzdGFuZCB0aGUgbG9naWMuIElzIHRoaXMgdG8gZW5zdXJlIGFsbCBxdWV1ZWQgb3BlcmF0aW9ucyBhcmUgY29tcGxldGVkLCBvciBpcyB0aGlzIHJlbGF0ZWQgdG8gcG90ZW50aWFsIHJhY2UgY29uZGl0aW9ucz9cblxuQWRkaXRpb25hbGx5LCBJIHNlZSB0aGV5J3ZlIHJlbW92ZWQgYHN5bmNocm9uaXplX3JjdSgpYCBjYWxscyBmcm9tIGJvdGggYGllZWU4MDIxMV9jc2FfY29ubmVjdGlvbl9kcm9wX3dvcmtgIGFuZCBgaWVlZTgwMjExX2lic3NfbGVhdmVgLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aHkgdGhvc2Ugd2VyZSBkZWVtZWQgdW5uZWNlc3NhcnkuIEFyZSB0aGV5IHJlZHVuZGFudCBub3cgZHVlIHRvIHRoZSBjaGFuZ2VzIGluIGBpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0YCwgb3Igd2FzIHRoZXJlIGEgZGVlcGVyIHJlYXNvbiBmb3IgdGhlaXIgcmVtb3ZhbD8gTXkgaW5pdGlhbCByZWFjdGlvbiBpcyB0aGF0IHRoZXkgcmVtb3ZlZCB0aGUgcmVkdW5kYW50IGBzeW5jaHJvbml6ZV9yY3UoKWAgY2FsbHMuIElmIHRoZSBvcGVyYXRpb25zIG5vdyB3YWl0IGZvciBhbnkgUkNVIGdyYWNlIHBlcmlvZHMsIGl0J3Mgc2FmZSB0byByZW1vdmUgdGhlbS4gQnV0IEkgbmVlZCB0byBpbnZlc3RpZ2F0ZSBib3RoIGZ1bmN0aW9ucyB0byBiZSBzdXJlLiBBbHJpZ2h0LCB0aW1lIHRvIHRyYWNlIGRvd24gdGhlIGBzdGFfaW5mb19mbHVzaGAgZnVuY3Rpb24gYW5kIHRoZSBzdXJyb3VuZGluZyBjb2RlIHRvIGdldCBhIGNvbXBsZXRlIHBpY3R1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMjUsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMzYsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QwNTo0ODo1MC45NTAwMzQ5OFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4OTgzNDEzMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzdGFfaW5mb19mbHVzaFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tYWM4MDIxMS9jZmcuYz0yMDEwPXN0YXRpYyBpbnQgaWVlZTgwMjExX3N0b3BfYXAoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYy0yMDkwLVxcbm5ldC9tYWM4MDIxMS9jZmcuYzoyMDkxOlxcdF9fc3RhX2luZm9fZmx1c2goc2RhdGEsIHRydWUsIGxpbmtfaWQsIE5VTEwpO1xcbm5ldC9tYWM4MDIxMS9jZmcuYy0yMDkyLVxcbi0tXFxubmV0L21hYzgwMjExL2NmZy5jPTI3MTA9c3RhdGljIGludCBpZWVlODAyMTFfZGVsX3N0YXRpb24oc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldixcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYy0yNzE5LVxcbm5ldC9tYWM4MDIxMS9jZmcuYzoyNzIwOlxcdHN0YV9pbmZvX2ZsdXNoKHNkYXRhLCBwYXJhbXMtXFx1MDAzZWxpbmtfaWQpO1xcbm5ldC9tYWM4MDIxMS9jZmcuYy0yNzIxLVxcdHJldHVybiAwO1xcbi0tXFxubmV0L21hYzgwMjExL2lic3MuYz0yMDk9c3RhdGljIHZvaWQgX19pZWVlODAyMTFfc3RhX2pvaW5faWJzcyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9pYnNzLmMtMjM0LVxcdGlmICghZXRoZXJfYWRkcl9lcXVhbChpZmlic3MtXFx1MDAzZWJzc2lkLCBic3NpZCkpXFxubmV0L21hYzgwMjExL2lic3MuYzoyMzU6XFx0XFx0c3RhX2luZm9fZmx1c2goc2RhdGEsIC0xKTtcXG5uZXQvbWFjODAyMTEvaWJzcy5jLTIzNi1cXG4tLVxcbm5ldC9tYWM4MDIxMS9pYnNzLmM9NjQ2PXN0YXRpYyB2b2lkIGllZWU4MDIxMV9pYnNzX2Rpc2Nvbm5lY3Qoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXFxuLS1cXG5uZXQvbWFjODAyMTEvaWJzcy5jLTY3MS1cXHRuZXRpZl9jYXJyaWVyX29mZihzZGF0YS1cXHUwMDNlZGV2KTtcXG5uZXQvbWFjODAyMTEvaWJzcy5jOjY3MjpcXHRpZiAoIXN0YV9pbmZvX2ZsdXNoKHNkYXRhLCAtMSkpXFxubmV0L21hYzgwMjExL2lic3MuYy02NzMtXFx0XFx0c3luY2hyb25pemVfbmV0KCk7XFxuLS1cXG5uZXQvbWFjODAyMTEvaWZhY2UuYz00Nzk9c3RhdGljIHZvaWQgaWVlZTgwMjExX2RvX3N0b3Aoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsIGJvb2wgZ29pbmdfZG93bilcXG4tLVxcbm5ldC9tYWM4MDIxMS9pZmFjZS5jLTUzNC1cXHQgKi9cXG5uZXQvbWFjODAyMTEvaWZhY2UuYzo1MzU6XFx0Zmx1c2hlZCA9IHN0YV9pbmZvX2ZsdXNoKHNkYXRhLCAtMSk7XFxubmV0L21hYzgwMjExL2lmYWNlLmMtNTM2LVxcdFdBUk5fT05fT05DRShzZGF0YS1cXHUwMDNldmlmLnR5cGUgIT0gTkw4MDIxMV9JRlRZUEVfQVBfVkxBTiBcXHUwMDI2XFx1MDAyNlxcbi0tXFxubmV0L21hYzgwMjExL2xpbmsuYz0yODc9c3RhdGljIGludCBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rcyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9saW5rLmMtMzEyLVxcdGlmICghb2xkX2xpbmtzIHx8ICFuZXdfbGlua3MpXFxubmV0L21hYzgwMjExL2xpbmsuYzozMTM6XFx0XFx0V0FSTl9PTihzdGFfaW5mb19mbHVzaChzZGF0YSwgLTEpIFxcdTAwM2UgMCk7XFxubmV0L21hYzgwMjExL2xpbmsuYy0zMTQtXFxuLS1cXG5uZXQvbWFjODAyMTEvbGluay5jLTQzMi1cXHRmb3JfZWFjaF9zZXRfYml0KGxpbmtfaWQsIFxcdTAwMjZzdGFfcmVtLCBJRUVFODAyMTFfTUxEX01BWF9OVU1fTElOS1MpXFxubmV0L21hYzgwMjExL2xpbmsuYzo0MzM6XFx0XFx0c3RhX2luZm9fZmx1c2goc2RhdGEsIGxpbmtfaWQpO1xcbm5ldC9tYWM4MDIxMS9saW5rLmMtNDM0LVxcbi0tXFxubmV0L21hYzgwMjExL21lc2guYz0xMTk5PXZvaWQgaWVlZTgwMjExX3N0b3BfbWVzaChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSlcXG4tLVxcbm5ldC9tYWM4MDIxMS9tZXNoLmMtMTIwNy1cXHQvKiBmbHVzaCBTVEFzIGFuZCBtcGF0aHMgb24gdGhpcyBpZmFjZSAqL1xcbm5ldC9tYWM4MDIxMS9tZXNoLmM6MTIwODpcXHRzdGFfaW5mb19mbHVzaChzZGF0YSwgLTEpO1xcbm5ldC9tYWM4MDIxMS9tZXNoLmMtMTIwOS1cXHRpZWVlODAyMTFfZnJlZV9rZXlzKHNkYXRhLCB0cnVlKTtcXG4tLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmM9NDUwOD1zdGF0aWMgdm9pZCBpZWVlODAyMTFfc2V0X2Rpc2Fzc29jKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbi0tXFxubmV0L21hYzgwMjExL21sbWUuYy00NjIxLVxcdC8qIFJlbW92ZSBURExTIHBlZXJzICovXFxubmV0L21hYzgwMjExL21sbWUuYzo0NjIyOlxcdF9fc3RhX2luZm9fZmx1c2goc2RhdGEsIGZhbHNlLCAtMSwgYXBfc3RhKTtcXG5uZXQvbWFjODAyMTEvbWxtZS5jLTQ2MjMtXFxuLS1cXG5uZXQvbWFjODAyMTEvbWxtZS5jLTQ2MjgtXFx0XFx0LyogUmVtb3ZlIEFQIHBlZXIgKi9cXG5uZXQvbWFjODAyMTEvbWxtZS5jOjQ2Mjk6XFx0XFx0c3RhX2luZm9fZmx1c2goc2RhdGEsIC0xKTtcXG5uZXQvbWFjODAyMTEvbWxtZS5jLTQ2MzAtXFx0fVxcbi0tXFxubmV0L21hYzgwMjExL21sbWUuYy00Njg1LVxcdFxcdCAqL1xcbm5ldC9tYWM4MDIxMS9tbG1lLmM6NDY4NjpcXHRcXHRzdGFfaW5mb19mbHVzaChzZGF0YSwgLTEpO1xcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNDY4Ny1cXHR9XFxuLS1cXG5uZXQvbWFjODAyMTEvb2NiLmM9MjA4PWludCBpZWVlODAyMTFfb2NiX2xlYXZlKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxcbi0tXFxubmV0L21hYzgwMjExL29jYi5jLTIxNi1cXHRpZm9jYi1cXHUwMDNlam9pbmVkID0gZmFsc2U7XFxubmV0L21hYzgwMjExL29jYi5jOjIxNzpcXHRzdGFfaW5mb19mbHVzaChzZGF0YSwgLTEpO1xcbm5ldC9tYWM4MDIxMS9vY2IuYy0yMTgtXFxuLS1cXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYz0xNjkwPXZvaWQgc3RhX2luZm9fc3RvcChzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbClcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTE2OTctXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM6MTY5ODppbnQgX19zdGFfaW5mb19mbHVzaChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSwgYm9vbCB2bGFucyxcXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy0xNjk5LVxcdFxcdCAgICAgaW50IGxpbmtfaWQsIHN0cnVjdCBzdGFfaW5mbyAqZG9fbm90X2ZsdXNoX3N0YSlcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oPTk1Mz12b2lkIHN0YV9pbmZvX3N0b3Aoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwpO1xcbi0tXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtOTU1LS8qKlxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oOjk1NjogKiBfX3N0YV9pbmZvX2ZsdXNoIC0gZmx1c2ggbWF0Y2hpbmcgU1RBIGVudHJpZXMgZnJvbSB0aGUgU1RBIHRhYmxlXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtOTU3LSAqXFxuLS1cXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaC05NjYtICovXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmg6OTY3OmludCBfX3N0YV9pbmZvX2ZsdXNoKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLCBib29sIHZsYW5zLFxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oLTk2OC1cXHRcXHQgICAgIGludCBsaW5rX2lkLCBzdHJ1Y3Qgc3RhX2luZm8gKmRvX25vdF9mbHVzaF9zdGEpO1xcbi0tXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtOTcwLS8qKlxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oOjk3MTogKiBzdGFfaW5mb19mbHVzaCAtIGZsdXNoIG1hdGNoaW5nIFNUQSBlbnRyaWVzIGZyb20gdGhlIFNUQSB0YWJsZVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oLTk3Mi0gKlxcbi0tXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtOTc5LSAqL1xcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oOjk4MDpzdGF0aWMgaW5saW5lIGludCBzdGFfaW5mb19mbHVzaChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaC05ODEtXFx0XFx0XFx0XFx0IGludCBsaW5rX2lkKVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oLTk4Mi17XFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmg6OTgzOlxcdHJldHVybiBfX3N0YV9pbmZvX2ZsdXNoKHNkYXRhLCBmYWxzZSwgbGlua19pZCwgTlVMTCk7XFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtOTg0LX1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDdUMDU6NDg6NTEuMDM5ODc2ODgxWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTczMTg2NzUxNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE1hYzgwMjExIElCU1MgRGlzY29ubmVjdCBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdHdlYWtpbmcgYGllZWU4MDIxMV9pYnNzX2Rpc2Nvbm5lY3RgIHdpdGhpbiB0aGUgYG5ldC9tYWM4MDIxMS9pYnNzLmNgIGZpbGUuIFRoZSBjb3JlIGNoYW5nZSBpcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkOiB0aGV5J3JlIHJlcGxhY2luZyBgc3RhX2luZm9fZmx1c2goc2RhdGEsIC0xKWAgd2l0aCBhIHNsaWdodGx5IG1vcmUgY29tcGxleCBzZXF1ZW5jZS4gRmlyc3QsIGBuZXRpZl9jYXJyaWVyX29mZihzZGF0YS1cdTAwM2VkZXYpYCBpcyBjYWxsZWQsIHdoaWNoIG1ha2VzIHNlbnNlOyB3ZSB3YW50IHRvIHNpZ25hbCB0aGUgbmV0d29yayBpbnRlcmZhY2UgaXMgZG93bi4gVGhlbiwgdGhleSBjYWxsIGBzdGFfaW5mb19mbHVzaChzZGF0YSwgLTEpYCBhbmQgKmNvbmRpdGlvbmFsbHkqIHJ1biBgc3luY2hyb25pemVfbmV0KClgLiBUaGF0IGltcGxpZXMgdGhlcmUgbWlnaHQgaGF2ZSBiZWVuIGEgc3VidGxlIHJhY2Ugb3Igb3JkZXJpbmcgcHJvYmxlbSBiZWluZyBhZGRyZXNzZWQgaGVyZS5cblxuVGhleSd2ZSBhbHNvIHJlbW92ZWQgYHN5bmNocm9uaXplX3JjdSgpYCBmcm9tIGBpZWVlODAyMTFfY3NhX2Nvbm5lY3Rpb25fZHJvcF93b3JrYCBhbmQgYGllZWU4MDIxMV9pYnNzX2xlYXZlYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoaXMgaXMgcHJvYmFibHkgcmVsYXRlZCB0byB0aGUgc2FtZSB1bmRlcmx5aW5nIHByb2JsZW0uIEl0IGxvb2tzIGxpa2UgdGhleSBtaWdodCBiZSBzdHJlYW1saW5pbmcgdGhlIHN5bmNocm9uaXphdGlvbiBwcm9jZXNzIGFyb3VuZCBJQlNTIGRpc2Nvbm5lY3RzIG9yIGxlYXZlcy4gVGhpcyBjb3VsZCBiZSBhIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiwgYnV0IG1vcmUgbGlrZWx5LCBpdCdzIGFib3V0IGF2b2lkaW5nIHNvbWUgcG90ZW50aWFsIGRhdGEgY29ycnVwdGlvbiBvciBzdGFsZSBzdGF0ZSBpc3N1ZXMsIGVzcGVjaWFsbHkgd2hlbiBkZWFsaW5nIHdpdGggc3RhdGlvbiBpbmZvcm1hdGlvbi5cblxuR2l2ZW4gdGhpcyBpcyBhIGNoYW5nZSB3aXRoaW4gdGhlIG1hYzgwMjExIHN1YnN5c3RlbSwgc3BlY2lmaWNhbGx5IGFmZmVjdGluZyBJQlNTIChBZC1Ib2MpIG1vZGUsIEkgbmVlZCB0byBjaGVjayB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb25zLiBgQ09ORklHX01BQzgwMjExYCBpcyBvYnZpb3VzbHkgYSBwcmVyZXF1aXNpdGUsIGJ1dCBJIHN1c3BlY3QgdGhlcmUgbWlnaHQgYmUgYSBtb3JlIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gcmVsYXRlZCB0byBJQlNTIHRoYXQncyBpbiBwbGF5IGhlcmUuIEknbGwgbmVlZCB0byBkaWcgaW50byBgbmV0L21hYzgwMjExL0tjb25maWdgIG9yIHNpbWlsYXIgZmlsZXMgdG8gc2VlIGlmIGFueXRoaW5nIGVsc2UgaXMgbmVjZXNzYXJ5IHRvIHRyaWdnZXIgdGhpcyBjb2RlIHBhdGguIEkgd2FudCB0byB1bmRlcnN0YW5kIHRoZSAqZXhhY3QqIGNvbmRpdGlvbnMgd2hlcmUgdGhpcyBwYXRjaCBiZWNvbWVzIHJlbGV2YW50LiBBIGRlZXAgZGl2ZSB3aWxsIHRlbGwgbWUgdGhlIGVkZ2UgY2FzZXMgb2YgdGhpcyBmaXguXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUxNDMsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDdUMDU6NDg6NTYuNzcxNzQ2MzU3WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyOTY5NDQ1NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgTUFDODAyMTFcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L21hYzgwMjExL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWFjODAyMTEvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI6Y29uZmlnIE1BQzgwMjExXFxubmV0L21hYzgwMjExL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiR2VuZXJpYyBJRUVFIDgwMi4xMSBOZXR3b3JraW5nIFN0YWNrIChtYWM4MDIxMSlcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xOT1pZiBNQUM4MDIxMSAhPSBuXFxubmV0L21hYzgwMjExL0tjb25maWctMjAtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjE6Y29uZmlnIE1BQzgwMjExX0hBU19SQ1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyLVxcdGJvb2xcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMy1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDpjb25maWcgTUFDODAyMTFfUkNfTUlOU1RSRUxcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNS1cXHRib29sIFxcXCJNaW5zdHJlbFxcXCIgaWYgRVhQRVJUXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0zMT1jaG9pY2VcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQwLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjQxOmNvbmZpZyBNQUM4MDIxMV9SQ19ERUZBVUxUX01JTlNUUkVMXFxubmV0L21hYzgwMjExL0tjb25maWctNDItXFx0Ym9vbCBcXFwiTWluc3RyZWxcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz00OD1lbmRjaG9pY2VcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00OS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo1MDpjb25maWcgTUFDODAyMTFfUkNfREVGQVVMVFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTUxLVxcdHN0cmluZ1xcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9NTc9Y29tbWVudCBcXFwiU29tZSB3aXJlbGVzcyBkcml2ZXJzIHJlcXVpcmUgYSByYXRlIGNvbnRyb2wgYWxnb3JpdGhtXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctNTktXFxubmV0L21hYzgwMjExL0tjb25maWc6NjA6Y29uZmlnIE1BQzgwMjExX0tVTklUX1RFU1RcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy02MS1cXHR0cmlzdGF0ZSBcXFwiS1VuaXQgdGVzdHMgZm9yIG1hYzgwMjExXFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy02OS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3MDpjb25maWcgTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTcxLVxcdGJvb2wgXFxcIkVuYWJsZSBtYWM4MDIxMSBtZXNoIG5ldHdvcmtpbmcgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTc4LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjc5OmNvbmZpZyBNQUM4MDIxMV9MRURTXFxubmV0L21hYzgwMjExL0tjb25maWctODAtXFx0Ym9vbCBcXFwiRW5hYmxlIExFRCB0cmlnZ2Vyc1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg3LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjg4OmNvbmZpZyBNQUM4MDIxMV9ERUJVR0ZTXFxubmV0L21hYzgwMjExL0tjb25maWctODktXFx0Ym9vbCBcXFwiRXhwb3J0IG1hYzgwMjExIGludGVybmFscyBpbiBEZWJ1Z0ZTXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctOTYtXFxubmV0L21hYzgwMjExL0tjb25maWc6OTc6Y29uZmlnIE1BQzgwMjExX01FU1NBR0VfVFJBQ0lOR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTk4LVxcdGJvb2wgXFxcIlRyYWNlIGFsbCBtYWM4MDIxMSBkZWJ1ZyBtZXNzYWdlc1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEwOS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTA6bWVudWNvbmZpZyBNQUM4MDIxMV9ERUJVR19NRU5VXFxubmV0L21hYzgwMjExL0tjb25maWctMTExLVxcdGJvb2wgXFxcIlNlbGVjdCBtYWM4MDIxMSBkZWJ1Z2dpbmcgZmVhdHVyZXNcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTUtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTE2OmNvbmZpZyBNQUM4MDIxMV9OT0lOTElORVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExNy1cXHRib29sIFxcXCJEbyBub3QgaW5saW5lIFRYL1JYIGhhbmRsZXJzXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTMxLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjEzMjpjb25maWcgTUFDODAyMTFfVkVSQk9TRV9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMy1cXHRib29sIFxcXCJWZXJib3NlIGRlYnVnZ2luZyBvdXRwdXRcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNDItXFxubmV0L21hYzgwMjExL0tjb25maWc6MTQzOmNvbmZpZyBNQUM4MDIxMV9NTE1FX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTQ0LVxcdGJvb2wgXFxcIlZlcmJvc2UgbWFuYWdlZCBNTE1FIG91dHB1dFxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1My1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNTQ6Y29uZmlnIE1BQzgwMjExX1NUQV9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1NS1cXHRib29sIFxcXCJWZXJib3NlIHN0YXRpb24gZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTYyLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE2Mzpjb25maWcgTUFDODAyMTFfSFRfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjQtXFx0Ym9vbCBcXFwiVmVyYm9zZSBIVCBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzQtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTc1OmNvbmZpZyBNQUM4MDIxMV9PQ0JfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzYtXFx0Ym9vbCBcXFwiVmVyYm9zZSBPQ0IgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTg1LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE4Njpjb25maWcgTUFDODAyMTFfSUJTU19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4Ny1cXHRib29sIFxcXCJWZXJib3NlIElCU1MgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTk2LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE5Nzpjb25maWcgTUFDODAyMTFfUFNfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOTgtXFx0Ym9vbCBcXFwiVmVyYm9zZSBwb3dlcnNhdmUgbW9kZSBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMDgtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjA5OmNvbmZpZyBNQUM4MDIxMV9NUExfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMTAtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIHBlZXIgbGluayBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjEtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjIyOmNvbmZpZyBNQUM4MDIxMV9NUEFUSF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMy1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggcGF0aCBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMzQtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjM1OmNvbmZpZyBNQUM4MDIxMV9NSFdNUF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNi1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggSFdNUCByb3V0aW5nIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0Ny1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDg6Y29uZmlnIE1BQzgwMjExX01FU0hfU1lOQ19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0OS1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggc3luY2hyb25pemF0aW9uIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1OC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNTk6Y29uZmlnIE1BQzgwMjExX01FU0hfQ1NBX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjYwLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBjaGFubmVsIHN3aXRjaCBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNjktXFxubmV0L21hYzgwMjExL0tjb25maWc6MjcwOmNvbmZpZyBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjcxLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBwb3dlcnNhdmUgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjgwLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI4MTpjb25maWcgTUFDODAyMTFfVERMU19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI4Mi1cXHRib29sIFxcXCJWZXJib3NlIFRETFMgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjkyLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI5Mzpjb25maWcgTUFDODAyMTFfREVCVUdfQ09VTlRFUlNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTQtXFx0Ym9vbCBcXFwiRXh0cmEgc3RhdGlzdGljcyBmb3IgVFgvUlggZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMzA3LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjMwODpjb25maWcgTUFDODAyMTFfU1RBX0hBU0hfTUFYX1NJWkVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMDktXFx0aW50IFxcXCJTdGF0aW9uIGhhc2ggdGFibGUgbWF4aW11bSBzaXplXFxcIiBpZiBNQUM4MDIxMV9ERUJVR19NRU5VXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDA1OjQ4OjU2LjkwMTQ0NTUwNFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMwMzgwNDAxNzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRXhhbWluaW5nIHRoZSBJQlNTIENvbmZpZ3VyYXRpb24gTGFuZHNjYXBlKipcblxuT2theSwgc28gSSdtIGZvY3VzaW5nIG9uIHRoZSBjb25maWd1cmF0aW9uIGhlcmUsIGFuZCBpdCdzIHByZXR0eSBjbGVhciB0aGF0IGBNQUM4MDIxMWAgaXMgdGhlIGNvcmUsIHRoZSBiaWcgb25lLiBOb3csIEknbSB0cnlpbmcgdG8gZ2V0IGEgaGFuZGxlIG9uIHRoZSBJQlNTIGNvbmZpZ3VyYXRpb24gc3BlY2lmaWNhbGx5LiBJIHNlZSB0aGlzIGBNQUM4MDIxMV9JQlNTX0RFQlVHYCBvcHRpb24sIGJ1dCB0aGF0J3Mgb2J2aW91c2x5IGp1c3QgZm9yIGRlYnVnZ2luZy4gVGhlIHRoaW5nIGlzLCBJQlNTIGlzICpwYXJ0KiBvZiBgTUFDODAyMTFgIGl0c2VsZi4gU28sIHdoYXQgSSdtIHJlYWxseSB0cnlpbmcgdG8gZmlndXJlIG91dCBpcyBpZiB0aGVyZSBhcmUgYW55ICpvdGhlciogbW9yZSBzcGVjaWZpYyBjb25maWd1cmF0aW9ucyB0aGF0IHBlcnRhaW4gZGlyZWN0bHkgdG8gSUJTUyBiZXlvbmQgdGhhdCBnZW5lcmFsIGRlYnVnIG9wdGlvbi4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJJ20gbm90IG1pc3NpbmcgYW55dGhpbmcgY3J1Y2lhbC4gVGltZSB0byBkZWx2ZSBhIGJpdCBkZWVwZXIgYW5kIHNlZSBpZiB0aGVyZSBhcmUgYW55IGhpZGRlbiBzZXR0aW5ncyFcblxuXG4iLCJJbnB1dFRva2VucyI6ODAzNCwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDA1OjQ4OjU5LjkzOTQ4Nzk0OVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDAzNjQ5ODYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnLipJQlNTXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tYWM4MDIxMS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL0tjb25maWc9MTc1PWNvbmZpZyBNQUM4MDIxMV9PQ0JfREVCVUdcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4NS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxODY6Y29uZmlnIE1BQzgwMjExX0lCU1NfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xODctXFx0Ym9vbCBcXFwiVmVyYm9zZSBJQlNTIGRlYnVnZ2luZ1xcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDdUMDU6NDk6MDAuMDc5ODYzNDI1WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDc4MDMwMjkxMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgSUJTUyBEaXNjb25uZWN0aW9uIFBvaW50cyoqXG5cbk9rYXksIHNvIHRoZXJlJ3Mgbm8gZGVkaWNhdGVkIGNvbmZpZ3VyYXRpb24gb3B0aW9uIHNwZWNpZmljYWxseSBmb3IgSW5kZXBlbmRlbnQgQmFzaWMgU2VydmljZSBTZXQgKElCU1MpIHdpdGhpbiB0aGUgZHJpdmVyOyBpdCdzIGFsbCBoYW5kbGVkIHVuZGVyIHRoZSB1bWJyZWxsYSBvZiBgTUFDODAyMTFgLiBUaGF0IG1ha2VzIHNlbnNlOyBpdCBrZWVwcyB0aGluZ3Mgc3RyZWFtbGluZWQuXG5cbk15IGluaXRpYWwgc2NhbiB0ZWxscyBtZSB0aGlzIHBhdGNoIHNwZWNpZmljYWxseSB0d2Vha3MgYSBmZXcga2V5IGZ1bmN0aW9uczogYGllZWU4MDIxMV9pYnNzX2Rpc2Nvbm5lY3RgLCBgaWVlZTgwMjExX2NzYV9jb25uZWN0aW9uX2Ryb3Bfd29ya2AsIGFuZCBgaWVlZTgwMjExX2lic3NfbGVhdmVgLiBUaGVzZSBhcmUgdGhlIGNvcmUgcm91dGluZXMgaW52b2x2ZWQgaW4gSUJTUyBkaXNjb25uZWN0aW9uIGFuZCBsZWF2aW5nIHRoZSBJQlNTIG5ldHdvcmsuXG5cbk5vdywgd2hlcmUgZG8gdGhlc2UgZnVuY3Rpb25zIGdldCBpbnZva2VkPyBJIHN1c3BlY3QgdGhleSdyZSB0cmlnZ2VyZWQgaW4gYSBmZXcgd2F5cy4gTGlrZWx5IHRocm91Z2ggbmV0bGluayBjb21tYW5kcyBzcGVjaWZpYyB0byBgbWFjODAyMTFgIG9yIGFzIGEgcmVzdWx0IG9mIGludGVybmFsIGV2ZW50cyB3aXRoaW4gdGhlIGtlcm5lbCB3aXJlbGVzcyBzdGFjay4gRm9yIGV4YW1wbGUsIGBpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0YCBzZWVtcyB0byBiZSBjYWxsZWQgaW5kaXJlY3RseSBmcm9tIGBpZWVlODAyMTFfY3NhX2Nvbm5lY3Rpb25fZHJvcF93b3JrYCBhbmQgYGllZWU4MDIxMV9pYnNzX2xlYXZlYCwgSSdtIGFsc28gc2VlaW5nIGl0IGNhbGxlZCBmcm9tIGZ1bmN0aW9ucyBsaWtlIGBfX2llZWU4MDIxMV9zdGFfam9pbl9pYnNzYC4uLiBUaGlzIGluZGljYXRlcyBpdCdzIGEgY3JpdGljYWwgZnVuY3Rpb24gZm9yIG1hbmFnaW5nIGNsaWVudHMgYW5kIHRoZSBJQlNTIGxpZmVjeWNsZS5cblxuSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNhbGwgcGF0aHMgYmV0dGVyLiBMZXQncyBkaWcgaW50byB3aGVyZSBgaWVlZTgwMjExX2lic3NfZGlzY29ubmVjdGAgaXMgY2FsbGVkIGZyb20uIEkgbmVlZCB0byB0cmFjZSB0aGlzIGNhcmVmdWxseSB0byBzZWUgdGhlIGV4YWN0IGNvbmRpdGlvbnMgdGhhdCB0cmlnZ2VyIHRoZXNlIGRpc2Nvbm5lY3Rpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4NDIxLCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTg2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDA1OjQ5OjA0Ljg2MDE2ODk1NloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM1NzY1NDc3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImllZWU4MDIxMV9pYnNzX2Rpc2Nvbm5lY3RcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L21hYzgwMjExL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWFjODAyMTEvaWJzcy5jPTYyMD1zdGF0aWMgaW50IGllZWU4MDIxMV9zdGFfYWN0aXZlX2lic3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXFxuLS1cXG5uZXQvbWFjODAyMTEvaWJzcy5jLTY0NS1cXG5uZXQvbWFjODAyMTEvaWJzcy5jOjY0NjpzdGF0aWMgdm9pZCBpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0KHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxcbm5ldC9tYWM4MDIxMS9pYnNzLmMtNjQ3LXtcXG4tLVxcbm5ldC9tYWM4MDIxMS9pYnNzLmM9NzA1PXN0YXRpYyB2b2lkIGllZWU4MDIxMV9jc2FfY29ubmVjdGlvbl9kcm9wX3dvcmsoc3RydWN0IHdpcGh5ICp3aXBoeSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9pYnNzLmMtNzExLVxcbm5ldC9tYWM4MDIxMS9pYnNzLmM6NzEyOlxcdGllZWU4MDIxMV9pYnNzX2Rpc2Nvbm5lY3Qoc2RhdGEpO1xcbm5ldC9tYWM4MDIxMS9pYnNzLmMtNzEzLVxcdHNrYl9xdWV1ZV9wdXJnZShcXHUwMDI2c2RhdGEtXFx1MDAzZXNrYl9xdWV1ZSk7XFxuLS1cXG5uZXQvbWFjODAyMTEvaWJzcy5jPTE3ODI9aW50IGllZWU4MDIxMV9pYnNzX2xlYXZlKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxcbi0tXFxubmV0L21hYzgwMjExL2lic3MuYy0xNzg2LVxcdGlmaWJzcy1cXHUwMDNlc3NpZF9sZW4gPSAwO1xcbm5ldC9tYWM4MDIxMS9pYnNzLmM6MTc4NzpcXHRpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0KHNkYXRhKTtcXG5uZXQvbWFjODAyMTEvaWJzcy5jLTE3ODgtXFx0ZXRoX3plcm9fYWRkcihpZmlic3MtXFx1MDAzZWJzc2lkKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDdUMDU6NDk6MDQuOTk1OTM5MDgzWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUxNzgyMTY5MTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBQbGFuOiBtYWM4MDIxMSBJQlNTIERpc2Nvbm5lY3QgRml4KipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyBwYXRjaCDigJMgaXQgbG9va3MgbGlrZSBpdCdzIHRvdWNoaW5nIGNvcmUga2VybmVsIGxvZ2ljIHJlbGF0ZWQgdG8gSUJTUyBtb2RlIHdpdGhpbiBgbWFjODAyMTFgLCBzcGVjaWZpY2FsbHkgaG93IGRpc2Nvbm5lY3QgYW5kIGxlYXZlIG9wZXJhdGlvbnMgYXJlIGhhbmRsZWQuIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IGl0J3MgKmZ1bmN0aW9uYWwqLCBtZWFuaW5nIGl0J3MgYWx0ZXJpbmcgdGhlIGZ1bmRhbWVudGFsIGJlaGF2aW9yIG9mIHRoZSBkcml2ZXIuIFRoYXQgbWFrZXMgZnV6emluZyBhIGhpZ2ggcHJpb3JpdHkuIFdlIG5lZWQgdG8gZW5zdXJlIHRoaXMgZml4IGRvZXNuJ3QgaW50cm9kdWNlIGFueSByZWdyZXNzaW9ucyBvciwgaGVhdmVuIGZvcmJpZCwgZGVhZGxvY2tzLiBUaGlzIGlzIGEgY3JpdGljYWwgYXJlYSBmb3IgbWUuXG5cblRoZSBwYXRjaCBzZWVtcyB0byBiZSBhZGRyZXNzaW5nIGEgcmFjZSBjb25kaXRpb24gb3Igc3luY2hyb25pemF0aW9uIHByb2JsZW0sIGp1ZGdpbmcgYnkgdGhlIHJlb3JkZXJpbmcgb2YgYG5ldGlmX2NhcnJpZXJfb2ZmYCBhbmQgYHN0YV9pbmZvX2ZsdXNoYCBhbmQgdGhlIFJDVSBzeW5jaHJvbml6YXRpb24gYWRqdXN0bWVudHMuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gZ28gYWZ0ZXIgdGhlc2UgY29yZSBjb21wb25lbnRzIGZvciBmdXp6aW5nLlxuXG5NeSBsaXN0IG9mIGZvY3VzIHN5bWJvbHMgd2lsbCBiZTpcbiogICBgaWVlZTgwMjExX2lic3NfZGlzY29ubmVjdGBcbiogICBgaWVlZTgwMjExX2NzYV9jb25uZWN0aW9uX2Ryb3Bfd29ya2BcbiogICBgaWVlZTgwMjExX2lic3NfbGVhdmVgXG5cbk5vdywgbGV0J3MgbmFpbCBkb3duIHRoZSBjb25maWd1cmF0aW9uIG5lZWRlZCBmb3IgZWZmZWN0aXZlIGZ1enppbmcuIFRoZSBwYXRjaCBpcyB0YXJnZXRpbmcgYG1hYzgwMjExYCwgYW5kIEkgdGhpbmsgYE1BQzgwMjExYCBzaG91bGQgYmUgdGhlIGtleSBjb25maWd1cmF0aW9uIG9wdGlvbiBuZWVkZWQuIEkgbmVlZCB0byBjb25maXJtIHRoYXQgYE1BQzgwMjExYCBpcyBzdWZmaWNpZW50LCBhbmQgSSB3aWxsIGFkZCBgV0xBTmAgb3IgYENGRzgwMjExYCBpZiBuZWNlc3NhcnkuIEkgc2hvdWxkIGJlIGZpbmUsIGFzIGBNQUM4MDIxMWAgdXN1YWxseSBpbXBsaWVzIGBDRkc4MDIxMWAuIEknbGwgZG91YmxlLWNoZWNrIHRoZSBkZXBlbmRlbmN5IHRvIGJlIHN1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjk0NDQsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNzQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDdUMDU6NDk6MTAuMTc0MTU4NTc0WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MzY5MzEwMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkZXBlbmRzIG9uIENGRzgwMjExXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tYWM4MDIxMS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL0tjb25maWc9Mj1jb25maWcgTUFDODAyMTFcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJHZW5lcmljIElFRUUgODAyLjExIE5ldHdvcmtpbmcgU3RhY2sgKG1hYzgwMjExKVxcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo0OlxcdGRlcGVuZHMgb24gQ0ZHODAyMTFcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01LVxcdHNlbGVjdCBDUllQVE9cXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTE2PWNvbW1lbnQgXFxcIkNGRzgwMjExIG5lZWRzIHRvIGJlIGVuYWJsZWQgZm9yIE1BQzgwMjExXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE3OlxcdGRlcGVuZHMgb24gQ0ZHODAyMTE9blxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QwNTo0OToxMC4yNjc4NjE3NTRaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTkyNTUwMDA1MDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGhhdmluZyBpdDpcblxuKipDb25maXJtaW5nIGFuZCBGb3JtdWxhdGluZyB0aGUgUmVzcG9uc2UqKlxuXG5BbHJpZ2h0LCBsZXQgbWUgc2VlLi4uIE15IHVuZGVyc3RhbmRpbmcgaXMgdGhhdCBgTUFDODAyMTFgIHJlbGllcyBvbiBgQ0ZHODAyMTFgLCBzbyB0aGF0IGNvbmZpcm1zIHdoYXQgSSBzdXNwZWN0ZWQuIFRoZSBsb2dpY2FsIGNvbmNsdXNpb24gaXMgdGhhdCBlbmFibGluZyBgTUFDODAyMTFgIGlzIHRoZSBjb3JyZWN0IGNvbmZpZ3VyYXRpb24gdG8gZm9jdXMgb24uIEdvdCBpdCwgdGhhdOKAmXMgc3RyYWlnaHRmb3J3YXJkLiBOb3cgdGhhdCBJIGhhdmUgdGhhdCBjbGVhciwgSSB3aWxsIGZvcm11bGF0ZSB0aGUgcmVzcG9uc2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEwMzIwLCJPdXRwdXRUb2tlbnMiOjE3NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDA1OjQ5OjI5LjUyMjg2NDYwNVoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2NjY2MTgzMywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTUFDODAyMTFcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0XCIsXG4gICAgXCJpZWVlODAyMTFfY3NhX2Nvbm5lY3Rpb25fZHJvcF93b3JrXCIsXG4gICAgXCJpZWVlODAyMTFfaWJzc19sZWF2ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBzeW5jaHJvbml6YXRpb24gYW5kIHRlYXJkb3duIHNlcXVlbmNlIGR1cmluZyBJQlNTIChBZC1Ib2MpIGRpc2Nvbm5lY3QgYW5kIGxlYXZlIG9wZXJhdGlvbnMgaW4gdGhlIG1hYzgwMjExIHN1YnN5c3RlbS4gSXQgcmVvcmRlcnMgYG5ldGlmX2NhcnJpZXJfb2ZmYCBhbmQgYHN0YV9pbmZvX2ZsdXNoYCBhbmQgYWRqdXN0cyBSQ1Ugc3luY2hyb25pemF0aW9uIHRvIGZpeCBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyBuZXcgcmVncmVzc2lvbnMgb3IgZGVhZGxvY2tzIGFyZSBpbnRyb2R1Y2VkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1BQzgwMjExXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWVlZTgwMjExX2lic3NfZGlzY29ubmVjdFwiLFxuICAgIFwiaWVlZTgwMjExX2NzYV9jb25uZWN0aW9uX2Ryb3Bfd29ya1wiLFxuICAgIFwiaWVlZTgwMjExX2lic3NfbGVhdmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgc3luY2hyb25pemF0aW9uIGFuZCB0ZWFyZG93biBzZXF1ZW5jZSBkdXJpbmcgSUJTUyAoQWQtSG9jKSBkaXNjb25uZWN0IGFuZCBsZWF2ZSBvcGVyYXRpb25zIGluIHRoZSBtYWM4MDIxMSBzdWJzeXN0ZW0uIEl0IHJlb3JkZXJzIGBuZXRpZl9jYXJyaWVyX29mZmAgYW5kIGBzdGFfaW5mb19mbHVzaGAgYW5kIGFkanVzdHMgUkNVIHN5bmNocm9uaXphdGlvbiB0byBmaXggYSBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgbm8gbmV3IHJlZ3Jlc3Npb25zIG9yIGRlYWRsb2NrcyBhcmUgaW50cm9kdWNlZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow9zhzg[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-07 05:29:46 +0000 UTC FinishedAt: 2026-07-07 05:49:31 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "8cdeaa50eae8dad34885515f62559ee83e7e8dda", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MAC80211" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "8cdeaa50eae8dad34885515f62559ee83e7e8dda", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MAC80211" ], "series_id": "c3670525-58e4-460e-bd62-88142fcfdf45" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ieee80211_ibss_disconnect", "ieee80211_csa_connection_drop_work", "ieee80211_ibss_leave" ], "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+CgkJCTx0ZD4yMDI2LzA3LzA3IDA1OjQ4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQzgwMjExJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX2lic3NfZGlzY29ubmVjdCYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfY3NhX2Nvbm5lY3Rpb25fZHJvcF93b3JrJiMzNDssCiAgICAmIzM0O2llZWU4MDIxMV9pYnNzX2xlYXZlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBzeW5jaHJvbml6YXRpb24gYW5kIHRlYXJkb3duIHNlcXVlbmNlIGR1cmluZyBJQlNTIChBZC1Ib2MpIGRpc2Nvbm5lY3QgYW5kIGxlYXZlIG9wZXJhdGlvbnMgaW4gdGhlIG1hYzgwMjExIHN1YnN5c3RlbS4gSXQgcmVvcmRlcnMgYG5ldGlmX2NhcnJpZXJfb2ZmYCBhbmQgYHN0YV9pbmZvX2ZsdXNoYCBhbmQgYWRqdXN0cyBSQ1Ugc3luY2hyb25pemF0aW9uIHRvIGZpeCBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyBuZXcgcmVncmVzc2lvbnMgb3IgZGVhZGxvY2tzIGFyZSBpbnRyb2R1Y2VkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA3IDA1OjQ4PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZTRlODdjODkzNzAwNDViYzE5OTA1YjQ3YjhmOGY5MTBjOWY0NTgyYVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVsIDcgMDU6NDg6NDQgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL2lic3MuYyBiL25ldC9tYWM4MDIxMS9pYnNzLmNcbmluZGV4IGQwZmQ2MDU0ZjE4MjAwLi40NzJhYjg2NzJiZTVlMCAxMDA2NDRcbi0tLSBhL25ldC9tYWM4MDIxMS9pYnNzLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9tYWM4MDIxMS9pYnNzLmNcbkBAIC02NjgsNyAmIzQzOzY2OCw5IEBAIHN0YXRpYyB2b2lkIGllZWU4MDIxMV9pYnNzX2Rpc2Nvbm5lY3Qoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXG4gXG4gXHRpZmlic3MtXHUwMDNlc3RhdGUgPSBJRUVFODAyMTFfSUJTU19NTE1FX1NFQVJDSDtcbiBcbi1cdHN0YV9pbmZvX2ZsdXNoKHNkYXRhLCAtMSk7XG4mIzQzO1x0bmV0aWZfY2Fycmllcl9vZmYoc2RhdGEtXHUwMDNlZGV2KTtcbiYjNDM7XHRpZiAoIXN0YV9pbmZvX2ZsdXNoKHNkYXRhLCAtMSkpXG4mIzQzO1x0XHRzeW5jaHJvbml6ZV9uZXQoKTtcbiBcbiBcdHNwaW5fbG9ja19iaChcdTAwMjZpZmlic3MtXHUwMDNlaW5jb21wbGV0ZV9sb2NrKTtcbiBcdHdoaWxlICghbGlzdF9lbXB0eShcdTAwMjZpZmlic3MtXHUwMDNlaW5jb21wbGV0ZV9zdGF0aW9ucykpIHtcbkBAIC02ODIsOCAmIzQzOzY4NCw2IEBAIHN0YXRpYyB2b2lkIGllZWU4MDIxMV9pYnNzX2Rpc2Nvbm5lY3Qoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXG4gXHR9XG4gXHRzcGluX3VubG9ja19iaChcdTAwMjZpZmlic3MtXHUwMDNlaW5jb21wbGV0ZV9sb2NrKTtcbiBcbi1cdG5ldGlmX2NhcnJpZXJfb2ZmKHNkYXRhLVx1MDAzZWRldik7XG4tXG4gXHRzZGF0YS1cdTAwM2V2aWYuY2ZnLmlic3Nfam9pbmVkID0gZmFsc2U7XG4gXHRzZGF0YS1cdTAwM2V2aWYuY2ZnLmlic3NfY3JlYXRvciA9IGZhbHNlO1xuIFx0c2RhdGEtXHUwMDNldmlmLmJzc19jb25mLmVuYWJsZV9iZWFjb24gPSBmYWxzZTtcbkBAIC03MTAsNyAmIzQzOzcxMCw2IEBAIHN0YXRpYyB2b2lkIGllZWU4MDIxMV9jc2FfY29ubmVjdGlvbl9kcm9wX3dvcmsoc3RydWN0IHdpcGh5ICp3aXBoeSxcbiBcdFx0XHQgICAgIHUuaWJzcy5jc2FfY29ubmVjdGlvbl9kcm9wX3dvcmspO1xuIFxuIFx0aWVlZTgwMjExX2lic3NfZGlzY29ubmVjdChzZGF0YSk7XG4tXHRzeW5jaHJvbml6ZV9yY3UoKTtcbiBcdHNrYl9xdWV1ZV9wdXJnZShcdTAwMjZzZGF0YS1cdTAwM2Vza2JfcXVldWUpO1xuIFxuIFx0LyogdHJpZ2dlciBhIHNjYW4gdG8gZmluZCBhbm90aGVyIElCU1MgbmV0d29yayB0byBqb2luICovXG5AQCAtMTc5Nyw4ICYjNDM7MTc5Niw2IEBAIGludCBpZWVlODAyMTFfaWJzc19sZWF2ZShzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSlcbiBcdG1lbXNldChcdTAwMjZpZmlic3MtXHUwMDNlaHRfY2FwYSwgMCwgc2l6ZW9mKGlmaWJzcy1cdTAwM2VodF9jYXBhKSk7XG4gXHRtZW1zZXQoXHUwMDI2aWZpYnNzLVx1MDAzZWh0X2NhcGFfbWFzaywgMCwgc2l6ZW9mKGlmaWJzcy1cdTAwM2VodF9jYXBhX21hc2spKTtcbiBcbi1cdHN5bmNocm9uaXplX3JjdSgpO1xuLVxuIFx0c2tiX3F1ZXVlX3B1cmdlKFx1MDAyNnNkYXRhLVx1MDAzZXNrYl9xdWV1ZSk7XG4gXG4gXHR0aW1lcl9kZWxldGVfc3luYyhcdTAwMjZzZGF0YS1cdTAwM2V1Lmlic3MudGltZXIpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA3IDA1OjQ4PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQzgwMjExJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX2lic3NfZGlzY29ubmVjdCYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfY3NhX2Nvbm5lY3Rpb25fZHJvcF93b3JrJiMzNDssCiAgICAmIzM0O2llZWU4MDIxMV9pYnNzX2xlYXZlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBzeW5jaHJvbml6YXRpb24gYW5kIHRlYXJkb3duIHNlcXVlbmNlIGR1cmluZyBJQlNTIChBZC1Ib2MpIGRpc2Nvbm5lY3QgYW5kIGxlYXZlIG9wZXJhdGlvbnMgaW4gdGhlIG1hYzgwMjExIHN1YnN5c3RlbS4gSXQgcmVvcmRlcnMgYG5ldGlmX2NhcnJpZXJfb2ZmYCBhbmQgYHN0YV9pbmZvX2ZsdXNoYCBhbmQgYWRqdXN0cyBSQ1Ugc3luY2hyb25pemF0aW9uIHRvIGZpeCBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyBuZXcgcmVncmVzc2lvbnMgb3IgZGVhZGxvY2tzIGFyZSBpbnRyb2R1Y2VkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBlNGU4N2M4OTM3MDA0NWJjMTk5MDViNDdiOGY4ZjkxMGM5ZjQ1ODJhCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdWwgNyAwNTo0ODo0NCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9pYnNzLmMgYi9uZXQvbWFjODAyMTEvaWJzcy5jCmluZGV4IGQwZmQ2MDU0ZjE4MjAwLi40NzJhYjg2NzJiZTVlMCAxMDA2NDQKLS0tIGEvbmV0L21hYzgwMjExL2lic3MuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvbWFjODAyMTEvaWJzcy5jCkBAIC02NjgsNyAmIzQzOzY2OCw5IEBAIHN0YXRpYyB2b2lkIGllZWU4MDIxMV9pYnNzX2Rpc2Nvbm5lY3Qoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpCiAKIAlpZmlic3MtJmd0O3N0YXRlID0gSUVFRTgwMjExX0lCU1NfTUxNRV9TRUFSQ0g7CiAKLQlzdGFfaW5mb19mbHVzaChzZGF0YSwgLTEpOwomIzQzOwluZXRpZl9jYXJyaWVyX29mZihzZGF0YS0mZ3Q7ZGV2KTsKJiM0MzsJaWYgKCFzdGFfaW5mb19mbHVzaChzZGF0YSwgLTEpKQomIzQzOwkJc3luY2hyb25pemVfbmV0KCk7CiAKIAlzcGluX2xvY2tfYmgoJmFtcDtpZmlic3MtJmd0O2luY29tcGxldGVfbG9jayk7CiAJd2hpbGUgKCFsaXN0X2VtcHR5KCZhbXA7aWZpYnNzLSZndDtpbmNvbXBsZXRlX3N0YXRpb25zKSkgewpAQCAtNjgyLDggJiM0Mzs2ODQsNiBAQCBzdGF0aWMgdm9pZCBpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0KHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKQogCX0KIAlzcGluX3VubG9ja19iaCgmYW1wO2lmaWJzcy0mZ3Q7aW5jb21wbGV0ZV9sb2NrKTsKIAotCW5ldGlmX2NhcnJpZXJfb2ZmKHNkYXRhLSZndDtkZXYpOwotCiAJc2RhdGEtJmd0O3ZpZi5jZmcuaWJzc19qb2luZWQgPSBmYWxzZTsKIAlzZGF0YS0mZ3Q7dmlmLmNmZy5pYnNzX2NyZWF0b3IgPSBmYWxzZTsKIAlzZGF0YS0mZ3Q7dmlmLmJzc19jb25mLmVuYWJsZV9iZWFjb24gPSBmYWxzZTsKQEAgLTcxMCw3ICYjNDM7NzEwLDYgQEAgc3RhdGljIHZvaWQgaWVlZTgwMjExX2NzYV9jb25uZWN0aW9uX2Ryb3Bfd29yayhzdHJ1Y3Qgd2lwaHkgKndpcGh5LAogCQkJICAgICB1Lmlic3MuY3NhX2Nvbm5lY3Rpb25fZHJvcF93b3JrKTsKIAogCWllZWU4MDIxMV9pYnNzX2Rpc2Nvbm5lY3Qoc2RhdGEpOwotCXN5bmNocm9uaXplX3JjdSgpOwogCXNrYl9xdWV1ZV9wdXJnZSgmYW1wO3NkYXRhLSZndDtza2JfcXVldWUpOwogCiAJLyogdHJpZ2dlciBhIHNjYW4gdG8gZmluZCBhbm90aGVyIElCU1MgbmV0d29yayB0byBqb2luICovCkBAIC0xNzk3LDggJiM0MzsxNzk2LDYgQEAgaW50IGllZWU4MDIxMV9pYnNzX2xlYXZlKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKQogCW1lbXNldCgmYW1wO2lmaWJzcy0mZ3Q7aHRfY2FwYSwgMCwgc2l6ZW9mKGlmaWJzcy0mZ3Q7aHRfY2FwYSkpOwogCW1lbXNldCgmYW1wO2lmaWJzcy0mZ3Q7aHRfY2FwYV9tYXNrLCAwLCBzaXplb2YoaWZpYnNzLSZndDtodF9jYXBhX21hc2spKTsKIAotCXN5bmNocm9uaXplX3JjdSgpOwotCiAJc2tiX3F1ZXVlX3B1cmdlKCZhbXA7c2RhdGEtJmd0O3NrYl9xdWV1ZSk7CiAKIAl0aW1lcl9kZWxldGVfc3luYygmYW1wO3NkYXRhLSZndDt1Lmlic3MudGltZXIpOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNyAwNTo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzI1CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMTM2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgSUJTUyBEaXNjb25uZWN0aW9uIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdHdlYWtzIGBuZXQvbWFjODAyMTEvaWJzcy5jYC4gSXQgc2VlbXMgdG8gYmUgZm9jdXNpbmcgb24gdGhlIGRpc2Nvbm5lY3Rpb24gcHJvY2VzcyBmb3IgSUJTUyBuZXR3b3Jrcy4gVGhlIG1haW4gY2hhbmdlIGhlcmUgaXMgd2l0aGluIGBpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0YC4gTm93LCBpbnN0ZWFkIG9mIGltbWVkaWF0ZWx5IGZsdXNoaW5nIHN0YXRpb24gaW5mb3JtYXRpb24sIGl0JiMzOTtzIGNhbGxpbmcgYG5ldGlmX2NhcnJpZXJfb2ZmYCAqZmlyc3QqLCBiZWZvcmUgYHN0YV9pbmZvX2ZsdXNoYC4gVGhhdCBtYWtlcyBpbnR1aXRpdmUgc2Vuc2U7IHdlIHdhbnQgdG8gc2lnbmFsIHRoZSBsaW5rIGlzIGRvd24gKmJlZm9yZSogd2Ugc3RhcnQgY2xlYW5pbmcgdXAgc3RhdGlvbiBlbnRyaWVzLiBBIHNtYXJ0IG1vdmUuCgpUaGUgaW50ZXJlc3RpbmcgcGFydCBpcyB0aGUgY29uZGl0aW9uYWwgYHN5bmNocm9uaXplX25ldCgpYCBjYWxsIGFmdGVyIGBzdGFfaW5mb19mbHVzaGAgaWYgYHN0YV9pbmZvX2ZsdXNoYCByZXR1cm5zIDAuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoeSB0aGF0JiMzOTtzIHRoZXJlLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgd2hhdCBhcmUgdGhlIHBvc3NpYmxlIHJldHVybiB2YWx1ZXMgb2YgYHN0YV9pbmZvX2ZsdXNoYD8gV2hhdCBkb2VzIGEgemVybyByZXR1cm4gc2lnbmlmeSBpbiB0aGlzIGNvbnRleHQ/IElzIGl0IHJlbGF0ZWQgdG8gd2hldGhlciB0aGUgZmx1c2ggb3BlcmF0aW9uIHdhcyBzdWNjZXNzZnVsLCBvciBzb21ldGhpbmcgbW9yZSBudWFuY2VkPyBJIG5lZWQgdG8gZGlnIGludG8gYHN0YV9pbmZvX2ZsdXNoYCBpdHNlbGYgdG8gdW5kZXJzdGFuZCB0aGUgbG9naWMuIElzIHRoaXMgdG8gZW5zdXJlIGFsbCBxdWV1ZWQgb3BlcmF0aW9ucyBhcmUgY29tcGxldGVkLCBvciBpcyB0aGlzIHJlbGF0ZWQgdG8gcG90ZW50aWFsIHJhY2UgY29uZGl0aW9ucz8KCkFkZGl0aW9uYWxseSwgSSBzZWUgdGhleSYjMzk7dmUgcmVtb3ZlZCBgc3luY2hyb25pemVfcmN1KClgIGNhbGxzIGZyb20gYm90aCBgaWVlZTgwMjExX2NzYV9jb25uZWN0aW9uX2Ryb3Bfd29ya2AgYW5kIGBpZWVlODAyMTFfaWJzc19sZWF2ZWAuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoeSB0aG9zZSB3ZXJlIGRlZW1lZCB1bm5lY2Vzc2FyeS4gQXJlIHRoZXkgcmVkdW5kYW50IG5vdyBkdWUgdG8gdGhlIGNoYW5nZXMgaW4gYGllZWU4MDIxMV9pYnNzX2Rpc2Nvbm5lY3RgLCBvciB3YXMgdGhlcmUgYSBkZWVwZXIgcmVhc29uIGZvciB0aGVpciByZW1vdmFsPyBNeSBpbml0aWFsIHJlYWN0aW9uIGlzIHRoYXQgdGhleSByZW1vdmVkIHRoZSByZWR1bmRhbnQgYHN5bmNocm9uaXplX3JjdSgpYCBjYWxscy4gSWYgdGhlIG9wZXJhdGlvbnMgbm93IHdhaXQgZm9yIGFueSBSQ1UgZ3JhY2UgcGVyaW9kcywgaXQmIzM5O3Mgc2FmZSB0byByZW1vdmUgdGhlbS4gQnV0IEkgbmVlZCB0byBpbnZlc3RpZ2F0ZSBib3RoIGZ1bmN0aW9ucyB0byBiZSBzdXJlLiBBbHJpZ2h0LCB0aW1lIHRvIHRyYWNlIGRvd24gdGhlIGBzdGFfaW5mb19mbHVzaGAgZnVuY3Rpb24gYW5kIHRoZSBzdXJyb3VuZGluZyBjb2RlIHRvIGdldCBhIGNvbXBsZXRlIHBpY3R1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMDU6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RhX2luZm9fZmx1c2gmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9jZmcuYz0yMDEwPXN0YXRpYyBpbnQgaWVlZTgwMjExX3N0b3BfYXAoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmMtMjA5MC1cbm5ldC9tYWM4MDIxMS9jZmcuYzoyMDkxOlx0X19zdGFfaW5mb19mbHVzaChzZGF0YSwgdHJ1ZSwgbGlua19pZCwgTlVMTCk7XG5uZXQvbWFjODAyMTEvY2ZnLmMtMjA5Mi1cbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmM9MjcxMD1zdGF0aWMgaW50IGllZWU4MDIxMV9kZWxfc3RhdGlvbihzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYy0yNzE5LVxubmV0L21hYzgwMjExL2NmZy5jOjI3MjA6XHRzdGFfaW5mb19mbHVzaChzZGF0YSwgcGFyYW1zLVx1MDAzZWxpbmtfaWQpO1xubmV0L21hYzgwMjExL2NmZy5jLTI3MjEtXHRyZXR1cm4gMDtcbi0tXG5uZXQvbWFjODAyMTEvaWJzcy5jPTIwOT1zdGF0aWMgdm9pZCBfX2llZWU4MDIxMV9zdGFfam9pbl9pYnNzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS9pYnNzLmMtMjM0LVx0aWYgKCFldGhlcl9hZGRyX2VxdWFsKGlmaWJzcy1cdTAwM2Vic3NpZCwgYnNzaWQpKVxubmV0L21hYzgwMjExL2lic3MuYzoyMzU6XHRcdHN0YV9pbmZvX2ZsdXNoKHNkYXRhLCAtMSk7XG5uZXQvbWFjODAyMTEvaWJzcy5jLTIzNi1cbi0tXG5uZXQvbWFjODAyMTEvaWJzcy5jPTY0Nj1zdGF0aWMgdm9pZCBpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0KHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxuLS1cbm5ldC9tYWM4MDIxMS9pYnNzLmMtNjcxLVx0bmV0aWZfY2Fycmllcl9vZmYoc2RhdGEtXHUwMDNlZGV2KTtcbm5ldC9tYWM4MDIxMS9pYnNzLmM6NjcyOlx0aWYgKCFzdGFfaW5mb19mbHVzaChzZGF0YSwgLTEpKVxubmV0L21hYzgwMjExL2lic3MuYy02NzMtXHRcdHN5bmNocm9uaXplX25ldCgpO1xuLS1cbm5ldC9tYWM4MDIxMS9pZmFjZS5jPTQ3OT1zdGF0aWMgdm9pZCBpZWVlODAyMTFfZG9fc3RvcChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSwgYm9vbCBnb2luZ19kb3duKVxuLS1cbm5ldC9tYWM4MDIxMS9pZmFjZS5jLTUzNC1cdCAqL1xubmV0L21hYzgwMjExL2lmYWNlLmM6NTM1Olx0Zmx1c2hlZCA9IHN0YV9pbmZvX2ZsdXNoKHNkYXRhLCAtMSk7XG5uZXQvbWFjODAyMTEvaWZhY2UuYy01MzYtXHRXQVJOX09OX09OQ0Uoc2RhdGEtXHUwMDNldmlmLnR5cGUgIT0gTkw4MDIxMV9JRlRZUEVfQVBfVkxBTiBcdTAwMjZcdTAwMjZcbi0tXG5uZXQvbWFjODAyMTEvbGluay5jPTI4Nz1zdGF0aWMgaW50IGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS9saW5rLmMtMzEyLVx0aWYgKCFvbGRfbGlua3MgfHwgIW5ld19saW5rcylcbm5ldC9tYWM4MDIxMS9saW5rLmM6MzEzOlx0XHRXQVJOX09OKHN0YV9pbmZvX2ZsdXNoKHNkYXRhLCAtMSkgXHUwMDNlIDApO1xubmV0L21hYzgwMjExL2xpbmsuYy0zMTQtXG4tLVxubmV0L21hYzgwMjExL2xpbmsuYy00MzItXHRmb3JfZWFjaF9zZXRfYml0KGxpbmtfaWQsIFx1MDAyNnN0YV9yZW0sIElFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LUylcbm5ldC9tYWM4MDIxMS9saW5rLmM6NDMzOlx0XHRzdGFfaW5mb19mbHVzaChzZGF0YSwgbGlua19pZCk7XG5uZXQvbWFjODAyMTEvbGluay5jLTQzNC1cbi0tXG5uZXQvbWFjODAyMTEvbWVzaC5jPTExOTk9dm9pZCBpZWVlODAyMTFfc3RvcF9tZXNoKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxuLS1cbm5ldC9tYWM4MDIxMS9tZXNoLmMtMTIwNy1cdC8qIGZsdXNoIFNUQXMgYW5kIG1wYXRocyBvbiB0aGlzIGlmYWNlICovXG5uZXQvbWFjODAyMTEvbWVzaC5jOjEyMDg6XHRzdGFfaW5mb19mbHVzaChzZGF0YSwgLTEpO1xubmV0L21hYzgwMjExL21lc2guYy0xMjA5LVx0aWVlZTgwMjExX2ZyZWVfa2V5cyhzZGF0YSwgdHJ1ZSk7XG4tLVxubmV0L21hYzgwMjExL21sbWUuYz00NTA4PXN0YXRpYyB2b2lkIGllZWU4MDIxMV9zZXRfZGlzYXNzb2Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL21sbWUuYy00NjIxLVx0LyogUmVtb3ZlIFRETFMgcGVlcnMgKi9cbm5ldC9tYWM4MDIxMS9tbG1lLmM6NDYyMjpcdF9fc3RhX2luZm9fZmx1c2goc2RhdGEsIGZhbHNlLCAtMSwgYXBfc3RhKTtcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNDYyMy1cbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jLTQ2MjgtXHRcdC8qIFJlbW92ZSBBUCBwZWVyICovXG5uZXQvbWFjODAyMTEvbWxtZS5jOjQ2Mjk6XHRcdHN0YV9pbmZvX2ZsdXNoKHNkYXRhLCAtMSk7XG5uZXQvbWFjODAyMTEvbWxtZS5jLTQ2MzAtXHR9XG4tLVxubmV0L21hYzgwMjExL21sbWUuYy00Njg1LVx0XHQgKi9cbm5ldC9tYWM4MDIxMS9tbG1lLmM6NDY4NjpcdFx0c3RhX2luZm9fZmx1c2goc2RhdGEsIC0xKTtcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNDY4Ny1cdH1cbi0tXG5uZXQvbWFjODAyMTEvb2NiLmM9MjA4PWludCBpZWVlODAyMTFfb2NiX2xlYXZlKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxuLS1cbm5ldC9tYWM4MDIxMS9vY2IuYy0yMTYtXHRpZm9jYi1cdTAwM2Vqb2luZWQgPSBmYWxzZTtcbm5ldC9tYWM4MDIxMS9vY2IuYzoyMTc6XHRzdGFfaW5mb19mbHVzaChzZGF0YSwgLTEpO1xubmV0L21hYzgwMjExL29jYi5jLTIxOC1cbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYz0xNjkwPXZvaWQgc3RhX2luZm9fc3RvcChzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbClcbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy0xNjk3LVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM6MTY5ODppbnQgX19zdGFfaW5mb19mbHVzaChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSwgYm9vbCB2bGFucyxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTE2OTktXHRcdCAgICAgaW50IGxpbmtfaWQsIHN0cnVjdCBzdGFfaW5mbyAqZG9fbm90X2ZsdXNoX3N0YSlcbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaD05NTM9dm9pZCBzdGFfaW5mb19zdG9wKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsKTtcbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaC05NTUtLyoqXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaDo5NTY6ICogX19zdGFfaW5mb19mbHVzaCAtIGZsdXNoIG1hdGNoaW5nIFNUQSBlbnRyaWVzIGZyb20gdGhlIFNUQSB0YWJsZVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtOTU3LSAqXG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtOTY2LSAqL1xubmV0L21hYzgwMjExL3N0YV9pbmZvLmg6OTY3OmludCBfX3N0YV9pbmZvX2ZsdXNoKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLCBib29sIHZsYW5zLFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtOTY4LVx0XHQgICAgIGludCBsaW5rX2lkLCBzdHJ1Y3Qgc3RhX2luZm8gKmRvX25vdF9mbHVzaF9zdGEpO1xuLS1cbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oLTk3MC0vKipcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oOjk3MTogKiBzdGFfaW5mb19mbHVzaCAtIGZsdXNoIG1hdGNoaW5nIFNUQSBlbnRyaWVzIGZyb20gdGhlIFNUQSB0YWJsZVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtOTcyLSAqXG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtOTc5LSAqL1xubmV0L21hYzgwMjExL3N0YV9pbmZvLmg6OTgwOnN0YXRpYyBpbmxpbmUgaW50IHN0YV9pbmZvX2ZsdXNoKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtOTgxLVx0XHRcdFx0IGludCBsaW5rX2lkKVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtOTgyLXtcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oOjk4MzpcdHJldHVybiBfX3N0YV9pbmZvX2ZsdXNoKHNkYXRhLCBmYWxzZSwgbGlua19pZCwgTlVMTCk7XG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaC05ODQtfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA3IDA1OjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUxNDMKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAyNjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBNYWM4MDIxMSBJQlNTIERpc2Nvbm5lY3QgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyB0d2Vha2luZyBgaWVlZTgwMjExX2lic3NfZGlzY29ubmVjdGAgd2l0aGluIHRoZSBgbmV0L21hYzgwMjExL2lic3MuY2AgZmlsZS4gVGhlIGNvcmUgY2hhbmdlIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQ6IHRoZXkmIzM5O3JlIHJlcGxhY2luZyBgc3RhX2luZm9fZmx1c2goc2RhdGEsIC0xKWAgd2l0aCBhIHNsaWdodGx5IG1vcmUgY29tcGxleCBzZXF1ZW5jZS4gRmlyc3QsIGBuZXRpZl9jYXJyaWVyX29mZihzZGF0YS0mZ3Q7ZGV2KWAgaXMgY2FsbGVkLCB3aGljaCBtYWtlcyBzZW5zZTsgd2Ugd2FudCB0byBzaWduYWwgdGhlIG5ldHdvcmsgaW50ZXJmYWNlIGlzIGRvd24uIFRoZW4sIHRoZXkgY2FsbCBgc3RhX2luZm9fZmx1c2goc2RhdGEsIC0xKWAgYW5kICpjb25kaXRpb25hbGx5KiBydW4gYHN5bmNocm9uaXplX25ldCgpYC4gVGhhdCBpbXBsaWVzIHRoZXJlIG1pZ2h0IGhhdmUgYmVlbiBhIHN1YnRsZSByYWNlIG9yIG9yZGVyaW5nIHByb2JsZW0gYmVpbmcgYWRkcmVzc2VkIGhlcmUuCgpUaGV5JiMzOTt2ZSBhbHNvIHJlbW92ZWQgYHN5bmNocm9uaXplX3JjdSgpYCBmcm9tIGBpZWVlODAyMTFfY3NhX2Nvbm5lY3Rpb25fZHJvcF93b3JrYCBhbmQgYGllZWU4MDIxMV9pYnNzX2xlYXZlYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoaXMgaXMgcHJvYmFibHkgcmVsYXRlZCB0byB0aGUgc2FtZSB1bmRlcmx5aW5nIHByb2JsZW0uIEl0IGxvb2tzIGxpa2UgdGhleSBtaWdodCBiZSBzdHJlYW1saW5pbmcgdGhlIHN5bmNocm9uaXphdGlvbiBwcm9jZXNzIGFyb3VuZCBJQlNTIGRpc2Nvbm5lY3RzIG9yIGxlYXZlcy4gVGhpcyBjb3VsZCBiZSBhIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiwgYnV0IG1vcmUgbGlrZWx5LCBpdCYjMzk7cyBhYm91dCBhdm9pZGluZyBzb21lIHBvdGVudGlhbCBkYXRhIGNvcnJ1cHRpb24gb3Igc3RhbGUgc3RhdGUgaXNzdWVzLCBlc3BlY2lhbGx5IHdoZW4gZGVhbGluZyB3aXRoIHN0YXRpb24gaW5mb3JtYXRpb24uCgpHaXZlbiB0aGlzIGlzIGEgY2hhbmdlIHdpdGhpbiB0aGUgbWFjODAyMTEgc3Vic3lzdGVtLCBzcGVjaWZpY2FsbHkgYWZmZWN0aW5nIElCU1MgKEFkLUhvYykgbW9kZSwgSSBuZWVkIHRvIGNoZWNrIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIGBDT05GSUdfTUFDODAyMTFgIGlzIG9idmlvdXNseSBhIHByZXJlcXVpc2l0ZSwgYnV0IEkgc3VzcGVjdCB0aGVyZSBtaWdodCBiZSBhIG1vcmUgc3BlY2lmaWMgY29uZmlndXJhdGlvbiByZWxhdGVkIHRvIElCU1MgdGhhdCYjMzk7cyBpbiBwbGF5IGhlcmUuIEkmIzM5O2xsIG5lZWQgdG8gZGlnIGludG8gYG5ldC9tYWM4MDIxMS9LY29uZmlnYCBvciBzaW1pbGFyIGZpbGVzIHRvIHNlZSBpZiBhbnl0aGluZyBlbHNlIGlzIG5lY2Vzc2FyeSB0byB0cmlnZ2VyIHRoaXMgY29kZSBwYXRoLiBJIHdhbnQgdG8gdW5kZXJzdGFuZCB0aGUgKmV4YWN0KiBjb25kaXRpb25zIHdoZXJlIHRoaXMgcGF0Y2ggYmVjb21lcyByZWxldmFudC4gQSBkZWVwIGRpdmUgd2lsbCB0ZWxsIG1lIHRoZSBlZGdlIGNhc2VzIG9mIHRoaXMgZml4LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA3IDA1OjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNQUM4MDIxMSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI6Y29uZmlnIE1BQzgwMjExXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7R2VuZXJpYyBJRUVFIDgwMi4xMSBOZXR3b3JraW5nIFN0YWNrIChtYWM4MDIxMSlcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xOT1pZiBNQUM4MDIxMSAhPSBuXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIxOmNvbmZpZyBNQUM4MDIxMV9IQVNfUkNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyLVx0Ym9vbFxubmV0L21hYzgwMjExL0tjb25maWctMjMtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDpjb25maWcgTUFDODAyMTFfUkNfTUlOU1RSRUxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1LVx0Ym9vbCBcJiMzNDtNaW5zdHJlbFwmIzM0OyBpZiBFWFBFUlRcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0zMT1jaG9pY2Vcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00MC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjQxOmNvbmZpZyBNQUM4MDIxMV9SQ19ERUZBVUxUX01JTlNUUkVMXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00Mi1cdGJvb2wgXCYjMzQ7TWluc3RyZWxcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz00OD1lbmRjaG9pY2Vcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQ5LVxubmV0L21hYzgwMjExL0tjb25maWc6NTA6Y29uZmlnIE1BQzgwMjExX1JDX0RFRkFVTFRcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTUxLVx0c3RyaW5nXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9NTc9Y29tbWVudCBcJiMzNDtTb21lIHdpcmVsZXNzIGRyaXZlcnMgcmVxdWlyZSBhIHJhdGUgY29udHJvbCBhbGdvcml0aG1cJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01OS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjYwOmNvbmZpZyBNQUM4MDIxMV9LVU5JVF9URVNUXG5uZXQvbWFjODAyMTEvS2NvbmZpZy02MS1cdHRyaXN0YXRlIFwmIzM0O0tVbml0IHRlc3RzIGZvciBtYWM4MDIxMVwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4tLVxubmV0L21hYzgwMjExL0tjb25maWctNjktXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3MDpjb25maWcgTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL0tjb25maWctNzEtXHRib29sIFwmIzM0O0VuYWJsZSBtYWM4MDIxMSBtZXNoIG5ldHdvcmtpbmcgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTc4LVxubmV0L21hYzgwMjExL0tjb25maWc6Nzk6Y29uZmlnIE1BQzgwMjExX0xFRFNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTgwLVx0Ym9vbCBcJiMzNDtFbmFibGUgTEVEIHRyaWdnZXJzXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctODctXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo4ODpjb25maWcgTUFDODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL0tjb25maWctODktXHRib29sIFwmIzM0O0V4cG9ydCBtYWM4MDIxMSBpbnRlcm5hbHMgaW4gRGVidWdGU1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTk2LVxubmV0L21hYzgwMjExL0tjb25maWc6OTc6Y29uZmlnIE1BQzgwMjExX01FU1NBR0VfVFJBQ0lOR1xubmV0L21hYzgwMjExL0tjb25maWctOTgtXHRib29sIFwmIzM0O1RyYWNlIGFsbCBtYWM4MDIxMSBkZWJ1ZyBtZXNzYWdlc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEwOS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjExMDptZW51Y29uZmlnIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExMS1cdGJvb2wgXCYjMzQ7U2VsZWN0IG1hYzgwMjExIGRlYnVnZ2luZyBmZWF0dXJlc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExNS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjExNjpjb25maWcgTUFDODAyMTFfTk9JTkxJTkVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExNy1cdGJvb2wgXCYjMzQ7RG8gbm90IGlubGluZSBUWC9SWCBoYW5kbGVyc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjEzMjpjb25maWcgTUFDODAyMTFfVkVSQk9TRV9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTMzLVx0Ym9vbCBcJiMzNDtWZXJib3NlIGRlYnVnZ2luZyBvdXRwdXRcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNDItXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNDM6Y29uZmlnIE1BQzgwMjExX01MTUVfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE0NC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtYW5hZ2VkIE1MTUUgb3V0cHV0XCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTUzLVxubmV0L21hYzgwMjExL0tjb25maWc6MTU0OmNvbmZpZyBNQUM4MDIxMV9TVEFfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1NS1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBzdGF0aW9uIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE2Mi1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE2Mzpjb25maWcgTUFDODAyMTFfSFRfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE2NC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBIVCBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzQtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNzU6Y29uZmlnIE1BQzgwMjExX09DQl9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTc2LVx0Ym9vbCBcJiMzNDtWZXJib3NlIE9DQiBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xODUtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxODY6Y29uZmlnIE1BQzgwMjExX0lCU1NfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4Ny1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBJQlNTIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE5Ni1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE5Nzpjb25maWcgTUFDODAyMTFfUFNfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE5OC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBwb3dlcnNhdmUgbW9kZSBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMDgtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMDk6Y29uZmlnIE1BQzgwMjExX01QTF9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjEwLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggcGVlciBsaW5rIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIyMjpjb25maWcgTUFDODAyMTFfTVBBVEhfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMy1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIHBhdGggZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjM0LVxubmV0L21hYzgwMjExL0tjb25maWc6MjM1OmNvbmZpZyBNQUM4MDIxMV9NSFdNUF9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjM2LVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggSFdNUCByb3V0aW5nIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0Ny1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI0ODpjb25maWcgTUFDODAyMTFfTUVTSF9TWU5DX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDktXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBzeW5jaHJvbml6YXRpb24gZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjU4LVxubmV0L21hYzgwMjExL0tjb25maWc6MjU5OmNvbmZpZyBNQUM4MDIxMV9NRVNIX0NTQV9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjYwLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggY2hhbm5lbCBzd2l0Y2ggZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjY5LVxubmV0L21hYzgwMjExL0tjb25maWc6MjcwOmNvbmZpZyBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNzEtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBwb3dlcnNhdmUgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjgwLVxubmV0L21hYzgwMjExL0tjb25maWc6MjgxOmNvbmZpZyBNQUM4MDIxMV9URExTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODItXHRib29sIFwmIzM0O1ZlcmJvc2UgVERMUyBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTItXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyOTM6Y29uZmlnIE1BQzgwMjExX0RFQlVHX0NPVU5URVJTXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTQtXHRib29sIFwmIzM0O0V4dHJhIHN0YXRpc3RpY3MgZm9yIFRYL1JYIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMwNy1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjMwODpjb25maWcgTUFDODAyMTFfU1RBX0hBU0hfTUFYX1NJWkVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMwOS1cdGludCBcJiMzNDtTdGF0aW9uIGhhc2ggdGFibGUgbWF4aW11bSBzaXplXCYjMzQ7IGlmIE1BQzgwMjExX0RFQlVHX01FTlVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNyAwNTo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4MDM0CgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogNjcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRXhhbWluaW5nIHRoZSBJQlNTIENvbmZpZ3VyYXRpb24gTGFuZHNjYXBlKioKCk9rYXksIHNvIEkmIzM5O20gZm9jdXNpbmcgb24gdGhlIGNvbmZpZ3VyYXRpb24gaGVyZSwgYW5kIGl0JiMzOTtzIHByZXR0eSBjbGVhciB0aGF0IGBNQUM4MDIxMWAgaXMgdGhlIGNvcmUsIHRoZSBiaWcgb25lLiBOb3csIEkmIzM5O20gdHJ5aW5nIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgSUJTUyBjb25maWd1cmF0aW9uIHNwZWNpZmljYWxseS4gSSBzZWUgdGhpcyBgTUFDODAyMTFfSUJTU19ERUJVR2Agb3B0aW9uLCBidXQgdGhhdCYjMzk7cyBvYnZpb3VzbHkganVzdCBmb3IgZGVidWdnaW5nLiBUaGUgdGhpbmcgaXMsIElCU1MgaXMgKnBhcnQqIG9mIGBNQUM4MDIxMWAgaXRzZWxmLiBTbywgd2hhdCBJJiMzOTttIHJlYWxseSB0cnlpbmcgdG8gZmlndXJlIG91dCBpcyBpZiB0aGVyZSBhcmUgYW55ICpvdGhlciogbW9yZSBzcGVjaWZpYyBjb25maWd1cmF0aW9ucyB0aGF0IHBlcnRhaW4gZGlyZWN0bHkgdG8gSUJTUyBiZXlvbmQgdGhhdCBnZW5lcmFsIGRlYnVnIG9wdGlvbi4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJJiMzOTttIG5vdCBtaXNzaW5nIGFueXRoaW5nIGNydWNpYWwuIFRpbWUgdG8gZGVsdmUgYSBiaXQgZGVlcGVyIGFuZCBzZWUgaWYgdGhlcmUgYXJlIGFueSBoaWRkZW4gc2V0dGluZ3MhCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMDU6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnLipJQlNTJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvS2NvbmZpZz0xNzU9Y29uZmlnIE1BQzgwMjExX09DQl9ERUJVR1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4NS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE4Njpjb25maWcgTUFDODAyMTFfSUJTU19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTg3LVx0Ym9vbCBcJiMzNDtWZXJib3NlIElCU1MgZGVidWdnaW5nXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMDU6NDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODQyMQoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDE4NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgSUJTUyBEaXNjb25uZWN0aW9uIFBvaW50cyoqCgpPa2F5LCBzbyB0aGVyZSYjMzk7cyBubyBkZWRpY2F0ZWQgY29uZmlndXJhdGlvbiBvcHRpb24gc3BlY2lmaWNhbGx5IGZvciBJbmRlcGVuZGVudCBCYXNpYyBTZXJ2aWNlIFNldCAoSUJTUykgd2l0aGluIHRoZSBkcml2ZXI7IGl0JiMzOTtzIGFsbCBoYW5kbGVkIHVuZGVyIHRoZSB1bWJyZWxsYSBvZiBgTUFDODAyMTFgLiBUaGF0IG1ha2VzIHNlbnNlOyBpdCBrZWVwcyB0aGluZ3Mgc3RyZWFtbGluZWQuCgpNeSBpbml0aWFsIHNjYW4gdGVsbHMgbWUgdGhpcyBwYXRjaCBzcGVjaWZpY2FsbHkgdHdlYWtzIGEgZmV3IGtleSBmdW5jdGlvbnM6IGBpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0YCwgYGllZWU4MDIxMV9jc2FfY29ubmVjdGlvbl9kcm9wX3dvcmtgLCBhbmQgYGllZWU4MDIxMV9pYnNzX2xlYXZlYC4gVGhlc2UgYXJlIHRoZSBjb3JlIHJvdXRpbmVzIGludm9sdmVkIGluIElCU1MgZGlzY29ubmVjdGlvbiBhbmQgbGVhdmluZyB0aGUgSUJTUyBuZXR3b3JrLgoKTm93LCB3aGVyZSBkbyB0aGVzZSBmdW5jdGlvbnMgZ2V0IGludm9rZWQ/IEkgc3VzcGVjdCB0aGV5JiMzOTtyZSB0cmlnZ2VyZWQgaW4gYSBmZXcgd2F5cy4gTGlrZWx5IHRocm91Z2ggbmV0bGluayBjb21tYW5kcyBzcGVjaWZpYyB0byBgbWFjODAyMTFgIG9yIGFzIGEgcmVzdWx0IG9mIGludGVybmFsIGV2ZW50cyB3aXRoaW4gdGhlIGtlcm5lbCB3aXJlbGVzcyBzdGFjay4gRm9yIGV4YW1wbGUsIGBpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0YCBzZWVtcyB0byBiZSBjYWxsZWQgaW5kaXJlY3RseSBmcm9tIGBpZWVlODAyMTFfY3NhX2Nvbm5lY3Rpb25fZHJvcF93b3JrYCBhbmQgYGllZWU4MDIxMV9pYnNzX2xlYXZlYCwgSSYjMzk7bSBhbHNvIHNlZWluZyBpdCBjYWxsZWQgZnJvbSBmdW5jdGlvbnMgbGlrZSBgX19pZWVlODAyMTFfc3RhX2pvaW5faWJzc2AuLi4gVGhpcyBpbmRpY2F0ZXMgaXQmIzM5O3MgYSBjcml0aWNhbCBmdW5jdGlvbiBmb3IgbWFuYWdpbmcgY2xpZW50cyBhbmQgdGhlIElCU1MgbGlmZWN5Y2xlLgoKSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNhbGwgcGF0aHMgYmV0dGVyLiBMZXQmIzM5O3MgZGlnIGludG8gd2hlcmUgYGllZWU4MDIxMV9pYnNzX2Rpc2Nvbm5lY3RgIGlzIGNhbGxlZCBmcm9tLiBJIG5lZWQgdG8gdHJhY2UgdGhpcyBjYXJlZnVsbHkgdG8gc2VlIHRoZSBleGFjdCBjb25kaXRpb25zIHRoYXQgdHJpZ2dlciB0aGVzZSBkaXNjb25uZWN0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMDU6NDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aWVlZTgwMjExX2lic3NfZGlzY29ubmVjdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL2lic3MuYz02MjA9c3RhdGljIGludCBpZWVlODAyMTFfc3RhX2FjdGl2ZV9pYnNzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxuLS1cbm5ldC9tYWM4MDIxMS9pYnNzLmMtNjQ1LVxubmV0L21hYzgwMjExL2lic3MuYzo2NDY6c3RhdGljIHZvaWQgaWVlZTgwMjExX2lic3NfZGlzY29ubmVjdChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSlcbm5ldC9tYWM4MDIxMS9pYnNzLmMtNjQ3LXtcbi0tXG5uZXQvbWFjODAyMTEvaWJzcy5jPTcwNT1zdGF0aWMgdm9pZCBpZWVlODAyMTFfY3NhX2Nvbm5lY3Rpb25fZHJvcF93b3JrKHN0cnVjdCB3aXBoeSAqd2lwaHksXG4tLVxubmV0L21hYzgwMjExL2lic3MuYy03MTEtXG5uZXQvbWFjODAyMTEvaWJzcy5jOjcxMjpcdGllZWU4MDIxMV9pYnNzX2Rpc2Nvbm5lY3Qoc2RhdGEpO1xubmV0L21hYzgwMjExL2lic3MuYy03MTMtXHRza2JfcXVldWVfcHVyZ2UoXHUwMDI2c2RhdGEtXHUwMDNlc2tiX3F1ZXVlKTtcbi0tXG5uZXQvbWFjODAyMTEvaWJzcy5jPTE3ODI9aW50IGllZWU4MDIxMV9pYnNzX2xlYXZlKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxuLS1cbm5ldC9tYWM4MDIxMS9pYnNzLmMtMTc4Ni1cdGlmaWJzcy1cdTAwM2Vzc2lkX2xlbiA9IDA7XG5uZXQvbWFjODAyMTEvaWJzcy5jOjE3ODc6XHRpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0KHNkYXRhKTtcbm5ldC9tYWM4MDIxMS9pYnNzLmMtMTc4OC1cdGV0aF96ZXJvX2FkZHIoaWZpYnNzLVx1MDAzZWJzc2lkKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMDU6NDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTQ0NAoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDI3NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIFBsYW46IG1hYzgwMjExIElCU1MgRGlzY29ubmVjdCBGaXgqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IHRoaXMgcGF0Y2gg4oCTIGl0IGxvb2tzIGxpa2UgaXQmIzM5O3MgdG91Y2hpbmcgY29yZSBrZXJuZWwgbG9naWMgcmVsYXRlZCB0byBJQlNTIG1vZGUgd2l0aGluIGBtYWM4MDIxMWAsIHNwZWNpZmljYWxseSBob3cgZGlzY29ubmVjdCBhbmQgbGVhdmUgb3BlcmF0aW9ucyBhcmUgaGFuZGxlZC4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgaXQmIzM5O3MgKmZ1bmN0aW9uYWwqLCBtZWFuaW5nIGl0JiMzOTtzIGFsdGVyaW5nIHRoZSBmdW5kYW1lbnRhbCBiZWhhdmlvciBvZiB0aGUgZHJpdmVyLiBUaGF0IG1ha2VzIGZ1enppbmcgYSBoaWdoIHByaW9yaXR5LiBXZSBuZWVkIHRvIGVuc3VyZSB0aGlzIGZpeCBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgYW55IHJlZ3Jlc3Npb25zIG9yLCBoZWF2ZW4gZm9yYmlkLCBkZWFkbG9ja3MuIFRoaXMgaXMgYSBjcml0aWNhbCBhcmVhIGZvciBtZS4KClRoZSBwYXRjaCBzZWVtcyB0byBiZSBhZGRyZXNzaW5nIGEgcmFjZSBjb25kaXRpb24gb3Igc3luY2hyb25pemF0aW9uIHByb2JsZW0sIGp1ZGdpbmcgYnkgdGhlIHJlb3JkZXJpbmcgb2YgYG5ldGlmX2NhcnJpZXJfb2ZmYCBhbmQgYHN0YV9pbmZvX2ZsdXNoYCBhbmQgdGhlIFJDVSBzeW5jaHJvbml6YXRpb24gYWRqdXN0bWVudHMuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gZ28gYWZ0ZXIgdGhlc2UgY29yZSBjb21wb25lbnRzIGZvciBmdXp6aW5nLgoKTXkgbGlzdCBvZiBmb2N1cyBzeW1ib2xzIHdpbGwgYmU6CiogICBgaWVlZTgwMjExX2lic3NfZGlzY29ubmVjdGAKKiAgIGBpZWVlODAyMTFfY3NhX2Nvbm5lY3Rpb25fZHJvcF93b3JrYAoqICAgYGllZWU4MDIxMV9pYnNzX2xlYXZlYAoKTm93LCBsZXQmIzM5O3MgbmFpbCBkb3duIHRoZSBjb25maWd1cmF0aW9uIG5lZWRlZCBmb3IgZWZmZWN0aXZlIGZ1enppbmcuIFRoZSBwYXRjaCBpcyB0YXJnZXRpbmcgYG1hYzgwMjExYCwgYW5kIEkgdGhpbmsgYE1BQzgwMjExYCBzaG91bGQgYmUgdGhlIGtleSBjb25maWd1cmF0aW9uIG9wdGlvbiBuZWVkZWQuIEkgbmVlZCB0byBjb25maXJtIHRoYXQgYE1BQzgwMjExYCBpcyBzdWZmaWNpZW50LCBhbmQgSSB3aWxsIGFkZCBgV0xBTmAgb3IgYENGRzgwMjExYCBpZiBuZWNlc3NhcnkuIEkgc2hvdWxkIGJlIGZpbmUsIGFzIGBNQUM4MDIxMWAgdXN1YWxseSBpbXBsaWVzIGBDRkc4MDIxMWAuIEkmIzM5O2xsIGRvdWJsZS1jaGVjayB0aGUgZGVwZW5kZW5jeSB0byBiZSBzdXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNyAwNTo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkZXBlbmRzIG9uIENGRzgwMjExJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvS2NvbmZpZz0yPWNvbmZpZyBNQUM4MDIxMVxubmV0L21hYzgwMjExL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O0dlbmVyaWMgSUVFRSA4MDIuMTEgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTEpXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzo0Olx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxubmV0L21hYzgwMjExL0tjb25maWctNS1cdHNlbGVjdCBDUllQVE9cbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xNj1jb21tZW50IFwmIzM0O0NGRzgwMjExIG5lZWRzIHRvIGJlIGVuYWJsZWQgZm9yIE1BQzgwMjExXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNzpcdGRlcGVuZHMgb24gQ0ZHODAyMTE9blxubmV0L21hYzgwMjExL0tjb25maWctMTgtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA3IDA1OjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEwMzIwCgkJCQkJCQlvdXRwdXQ6IDE3NwoJCQkJCQkJdGhvdWdodHM6IDQ1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgaGF2aW5nIGl0OgoKKipDb25maXJtaW5nIGFuZCBGb3JtdWxhdGluZyB0aGUgUmVzcG9uc2UqKgoKQWxyaWdodCwgbGV0IG1lIHNlZS4uLiBNeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgYE1BQzgwMjExYCByZWxpZXMgb24gYENGRzgwMjExYCwgc28gdGhhdCBjb25maXJtcyB3aGF0IEkgc3VzcGVjdGVkLiBUaGUgbG9naWNhbCBjb25jbHVzaW9uIGlzIHRoYXQgZW5hYmxpbmcgYE1BQzgwMjExYCBpcyB0aGUgY29ycmVjdCBjb25maWd1cmF0aW9uIHRvIGZvY3VzIG9uLiBHb3QgaXQsIHRoYXTigJlzIHN0cmFpZ2h0Zm9yd2FyZC4gTm93IHRoYXQgSSBoYXZlIHRoYXQgY2xlYXIsIEkgd2lsbCBmb3JtdWxhdGUgdGhlIHJlc3BvbnNlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNyAwNTo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TUFDODAyMTEmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0JiMzNDssCiAgICAmIzM0O2llZWU4MDIxMV9jc2FfY29ubmVjdGlvbl9kcm9wX3dvcmsmIzM0OywKICAgICYjMzQ7aWVlZTgwMjExX2lic3NfbGVhdmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHN5bmNocm9uaXphdGlvbiBhbmQgdGVhcmRvd24gc2VxdWVuY2UgZHVyaW5nIElCU1MgKEFkLUhvYykgZGlzY29ubmVjdCBhbmQgbGVhdmUgb3BlcmF0aW9ucyBpbiB0aGUgbWFjODAyMTEgc3Vic3lzdGVtLiBJdCByZW9yZGVycyBgbmV0aWZfY2Fycmllcl9vZmZgIGFuZCBgc3RhX2luZm9fZmx1c2hgIGFuZCBhZGp1c3RzIFJDVSBzeW5jaHJvbml6YXRpb24gdG8gZml4IGEgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9uLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgbmV0d29ya2luZyBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIG5ldyByZWdyZXNzaW9ucyBvciBkZWFkbG9ja3MgYXJlIGludHJvZHVjZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQzgwMjExJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX2lic3NfZGlzY29ubmVjdCYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfY3NhX2Nvbm5lY3Rpb25fZHJvcF93b3JrJiMzNDssCiAgICAmIzM0O2llZWU4MDIxMV9pYnNzX2xlYXZlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBzeW5jaHJvbml6YXRpb24gYW5kIHRlYXJkb3duIHNlcXVlbmNlIGR1cmluZyBJQlNTIChBZC1Ib2MpIGRpc2Nvbm5lY3QgYW5kIGxlYXZlIG9wZXJhdGlvbnMgaW4gdGhlIG1hYzgwMjExIHN1YnN5c3RlbS4gSXQgcmVvcmRlcnMgYG5ldGlmX2NhcnJpZXJfb2ZmYCBhbmQgYHN0YV9pbmZvX2ZsdXNoYCBhbmQgYWRqdXN0cyBSQ1Ugc3luY2hyb25pemF0aW9uIHRvIGZpeCBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyBuZXcgcmVncmVzc2lvbnMgb3IgZGVhZGxvY2tzIGFyZSBpbnRyb2R1Y2VkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMDdUMDU6NDg6NDUuODcwOTE1ODY5WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDM4MTg2MzE2NTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTUFDODAyMTFcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0XCIsXG4gICAgXCJpZWVlODAyMTFfY3NhX2Nvbm5lY3Rpb25fZHJvcF93b3JrXCIsXG4gICAgXCJpZWVlODAyMTFfaWJzc19sZWF2ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBzeW5jaHJvbml6YXRpb24gYW5kIHRlYXJkb3duIHNlcXVlbmNlIGR1cmluZyBJQlNTIChBZC1Ib2MpIGRpc2Nvbm5lY3QgYW5kIGxlYXZlIG9wZXJhdGlvbnMgaW4gdGhlIG1hYzgwMjExIHN1YnN5c3RlbS4gSXQgcmVvcmRlcnMgYG5ldGlmX2NhcnJpZXJfb2ZmYCBhbmQgYHN0YV9pbmZvX2ZsdXNoYCBhbmQgYWRqdXN0cyBSQ1Ugc3luY2hyb25pemF0aW9uIHRvIGZpeCBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyBuZXcgcmVncmVzc2lvbnMgb3IgZGVhZGxvY2tzIGFyZSBpbnRyb2R1Y2VkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QwNTo0ODo0NS44NzA5MjIyNjlaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUzNDc4NzUxNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGU0ZTg3Yzg5MzcwMDQ1YmMxOTkwNWI0N2I4ZjhmOTEwYzlmNDU4MmFcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBKdWwgNyAwNTo0ODo0NCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvaWJzcy5jIGIvbmV0L21hYzgwMjExL2lic3MuY1xcbmluZGV4IGQwZmQ2MDU0ZjE4MjAwLi40NzJhYjg2NzJiZTVlMCAxMDA2NDRcXG4tLS0gYS9uZXQvbWFjODAyMTEvaWJzcy5jXFxuKysrIGIvbmV0L21hYzgwMjExL2lic3MuY1xcbkBAIC02NjgsNyArNjY4LDkgQEAgc3RhdGljIHZvaWQgaWVlZTgwMjExX2lic3NfZGlzY29ubmVjdChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSlcXG4gXFxuIFxcdGlmaWJzcy1cXHUwMDNlc3RhdGUgPSBJRUVFODAyMTFfSUJTU19NTE1FX1NFQVJDSDtcXG4gXFxuLVxcdHN0YV9pbmZvX2ZsdXNoKHNkYXRhLCAtMSk7XFxuK1xcdG5ldGlmX2NhcnJpZXJfb2ZmKHNkYXRhLVxcdTAwM2VkZXYpO1xcbitcXHRpZiAoIXN0YV9pbmZvX2ZsdXNoKHNkYXRhLCAtMSkpXFxuK1xcdFxcdHN5bmNocm9uaXplX25ldCgpO1xcbiBcXG4gXFx0c3Bpbl9sb2NrX2JoKFxcdTAwMjZpZmlic3MtXFx1MDAzZWluY29tcGxldGVfbG9jayk7XFxuIFxcdHdoaWxlICghbGlzdF9lbXB0eShcXHUwMDI2aWZpYnNzLVxcdTAwM2VpbmNvbXBsZXRlX3N0YXRpb25zKSkge1xcbkBAIC02ODIsOCArNjg0LDYgQEAgc3RhdGljIHZvaWQgaWVlZTgwMjExX2lic3NfZGlzY29ubmVjdChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSlcXG4gXFx0fVxcbiBcXHRzcGluX3VubG9ja19iaChcXHUwMDI2aWZpYnNzLVxcdTAwM2VpbmNvbXBsZXRlX2xvY2spO1xcbiBcXG4tXFx0bmV0aWZfY2Fycmllcl9vZmYoc2RhdGEtXFx1MDAzZWRldik7XFxuLVxcbiBcXHRzZGF0YS1cXHUwMDNldmlmLmNmZy5pYnNzX2pvaW5lZCA9IGZhbHNlO1xcbiBcXHRzZGF0YS1cXHUwMDNldmlmLmNmZy5pYnNzX2NyZWF0b3IgPSBmYWxzZTtcXG4gXFx0c2RhdGEtXFx1MDAzZXZpZi5ic3NfY29uZi5lbmFibGVfYmVhY29uID0gZmFsc2U7XFxuQEAgLTcxMCw3ICs3MTAsNiBAQCBzdGF0aWMgdm9pZCBpZWVlODAyMTFfY3NhX2Nvbm5lY3Rpb25fZHJvcF93b3JrKHN0cnVjdCB3aXBoeSAqd2lwaHksXFxuIFxcdFxcdFxcdCAgICAgdS5pYnNzLmNzYV9jb25uZWN0aW9uX2Ryb3Bfd29yayk7XFxuIFxcbiBcXHRpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0KHNkYXRhKTtcXG4tXFx0c3luY2hyb25pemVfcmN1KCk7XFxuIFxcdHNrYl9xdWV1ZV9wdXJnZShcXHUwMDI2c2RhdGEtXFx1MDAzZXNrYl9xdWV1ZSk7XFxuIFxcbiBcXHQvKiB0cmlnZ2VyIGEgc2NhbiB0byBmaW5kIGFub3RoZXIgSUJTUyBuZXR3b3JrIHRvIGpvaW4gKi9cXG5AQCAtMTc5Nyw4ICsxNzk2LDYgQEAgaW50IGllZWU4MDIxMV9pYnNzX2xlYXZlKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxcbiBcXHRtZW1zZXQoXFx1MDAyNmlmaWJzcy1cXHUwMDNlaHRfY2FwYSwgMCwgc2l6ZW9mKGlmaWJzcy1cXHUwMDNlaHRfY2FwYSkpO1xcbiBcXHRtZW1zZXQoXFx1MDAyNmlmaWJzcy1cXHUwMDNlaHRfY2FwYV9tYXNrLCAwLCBzaXplb2YoaWZpYnNzLVxcdTAwM2VodF9jYXBhX21hc2spKTtcXG4gXFxuLVxcdHN5bmNocm9uaXplX3JjdSgpO1xcbi1cXG4gXFx0c2tiX3F1ZXVlX3B1cmdlKFxcdTAwMjZzZGF0YS1cXHUwMDNlc2tiX3F1ZXVlKTtcXG4gXFxuIFxcdHRpbWVyX2RlbGV0ZV9zeW5jKFxcdTAwMjZzZGF0YS1cXHUwMDNldS5pYnNzLnRpbWVyKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDdUMDU6NDg6NDYuNDA2MzgyNTA1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MzI4MzE0OTA2MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNQUM4MDIxMVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImllZWU4MDIxMV9pYnNzX2Rpc2Nvbm5lY3RcIixcbiAgICBcImllZWU4MDIxMV9jc2FfY29ubmVjdGlvbl9kcm9wX3dvcmtcIixcbiAgICBcImllZWU4MDIxMV9pYnNzX2xlYXZlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHN5bmNocm9uaXphdGlvbiBhbmQgdGVhcmRvd24gc2VxdWVuY2UgZHVyaW5nIElCU1MgKEFkLUhvYykgZGlzY29ubmVjdCBhbmQgbGVhdmUgb3BlcmF0aW9ucyBpbiB0aGUgbWFjODAyMTEgc3Vic3lzdGVtLiBJdCByZW9yZGVycyBgbmV0aWZfY2Fycmllcl9vZmZgIGFuZCBgc3RhX2luZm9fZmx1c2hgIGFuZCBhZGp1c3RzIFJDVSBzeW5jaHJvbml6YXRpb24gdG8gZml4IGEgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9uLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgbmV0d29ya2luZyBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIG5ldyByZWdyZXNzaW9ucyBvciBkZWFkbG9ja3MgYXJlIGludHJvZHVjZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZTRlODdjODkzNzAwNDViYzE5OTA1YjQ3YjhmOGY5MTBjOWY0NTgyYVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVsIDcgMDU6NDg6NDQgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvaWJzcy5jIGIvbmV0L21hYzgwMjExL2lic3MuY1xuaW5kZXggZDBmZDYwNTRmMTgyMDAuLjQ3MmFiODY3MmJlNWUwIDEwMDY0NFxuLS0tIGEvbmV0L21hYzgwMjExL2lic3MuY1xuKysrIGIvbmV0L21hYzgwMjExL2lic3MuY1xuQEAgLTY2OCw3ICs2NjgsOSBAQCBzdGF0aWMgdm9pZCBpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0KHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxuIFxuIFx0aWZpYnNzLVx1MDAzZXN0YXRlID0gSUVFRTgwMjExX0lCU1NfTUxNRV9TRUFSQ0g7XG4gXG4tXHRzdGFfaW5mb19mbHVzaChzZGF0YSwgLTEpO1xuK1x0bmV0aWZfY2Fycmllcl9vZmYoc2RhdGEtXHUwMDNlZGV2KTtcbitcdGlmICghc3RhX2luZm9fZmx1c2goc2RhdGEsIC0xKSlcbitcdFx0c3luY2hyb25pemVfbmV0KCk7XG4gXG4gXHRzcGluX2xvY2tfYmgoXHUwMDI2aWZpYnNzLVx1MDAzZWluY29tcGxldGVfbG9jayk7XG4gXHR3aGlsZSAoIWxpc3RfZW1wdHkoXHUwMDI2aWZpYnNzLVx1MDAzZWluY29tcGxldGVfc3RhdGlvbnMpKSB7XG5AQCAtNjgyLDggKzY4NCw2IEBAIHN0YXRpYyB2b2lkIGllZWU4MDIxMV9pYnNzX2Rpc2Nvbm5lY3Qoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXG4gXHR9XG4gXHRzcGluX3VubG9ja19iaChcdTAwMjZpZmlic3MtXHUwMDNlaW5jb21wbGV0ZV9sb2NrKTtcbiBcbi1cdG5ldGlmX2NhcnJpZXJfb2ZmKHNkYXRhLVx1MDAzZWRldik7XG4tXG4gXHRzZGF0YS1cdTAwM2V2aWYuY2ZnLmlic3Nfam9pbmVkID0gZmFsc2U7XG4gXHRzZGF0YS1cdTAwM2V2aWYuY2ZnLmlic3NfY3JlYXRvciA9IGZhbHNlO1xuIFx0c2RhdGEtXHUwMDNldmlmLmJzc19jb25mLmVuYWJsZV9iZWFjb24gPSBmYWxzZTtcbkBAIC03MTAsNyArNzEwLDYgQEAgc3RhdGljIHZvaWQgaWVlZTgwMjExX2NzYV9jb25uZWN0aW9uX2Ryb3Bfd29yayhzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxuIFx0XHRcdCAgICAgdS5pYnNzLmNzYV9jb25uZWN0aW9uX2Ryb3Bfd29yayk7XG4gXG4gXHRpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0KHNkYXRhKTtcbi1cdHN5bmNocm9uaXplX3JjdSgpO1xuIFx0c2tiX3F1ZXVlX3B1cmdlKFx1MDAyNnNkYXRhLVx1MDAzZXNrYl9xdWV1ZSk7XG4gXG4gXHQvKiB0cmlnZ2VyIGEgc2NhbiB0byBmaW5kIGFub3RoZXIgSUJTUyBuZXR3b3JrIHRvIGpvaW4gKi9cbkBAIC0xNzk3LDggKzE3OTYsNiBAQCBpbnQgaWVlZTgwMjExX2lic3NfbGVhdmUoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXG4gXHRtZW1zZXQoXHUwMDI2aWZpYnNzLVx1MDAzZWh0X2NhcGEsIDAsIHNpemVvZihpZmlic3MtXHUwMDNlaHRfY2FwYSkpO1xuIFx0bWVtc2V0KFx1MDAyNmlmaWJzcy1cdTAwM2VodF9jYXBhX21hc2ssIDAsIHNpemVvZihpZmlic3MtXHUwMDNlaHRfY2FwYV9tYXNrKSk7XG4gXG4tXHRzeW5jaHJvbml6ZV9yY3UoKTtcbi1cbiBcdHNrYl9xdWV1ZV9wdXJnZShcdTAwMjZzZGF0YS1cdTAwM2Vza2JfcXVldWUpO1xuIFxuIFx0dGltZXJfZGVsZXRlX3N5bmMoXHUwMDI2c2RhdGEtXHUwMDNldS5pYnNzLnRpbWVyKTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDA1OjQ4OjQ2LjQwNjM4Mzg0NVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ1NDM2NDg5MjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBJQlNTIERpc2Nvbm5lY3Rpb24gUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdHdlYWtzIGBuZXQvbWFjODAyMTEvaWJzcy5jYC4gSXQgc2VlbXMgdG8gYmUgZm9jdXNpbmcgb24gdGhlIGRpc2Nvbm5lY3Rpb24gcHJvY2VzcyBmb3IgSUJTUyBuZXR3b3Jrcy4gVGhlIG1haW4gY2hhbmdlIGhlcmUgaXMgd2l0aGluIGBpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0YC4gTm93LCBpbnN0ZWFkIG9mIGltbWVkaWF0ZWx5IGZsdXNoaW5nIHN0YXRpb24gaW5mb3JtYXRpb24sIGl0J3MgY2FsbGluZyBgbmV0aWZfY2Fycmllcl9vZmZgICpmaXJzdCosIGJlZm9yZSBgc3RhX2luZm9fZmx1c2hgLiBUaGF0IG1ha2VzIGludHVpdGl2ZSBzZW5zZTsgd2Ugd2FudCB0byBzaWduYWwgdGhlIGxpbmsgaXMgZG93biAqYmVmb3JlKiB3ZSBzdGFydCBjbGVhbmluZyB1cCBzdGF0aW9uIGVudHJpZXMuIEEgc21hcnQgbW92ZS5cblxuVGhlIGludGVyZXN0aW5nIHBhcnQgaXMgdGhlIGNvbmRpdGlvbmFsIGBzeW5jaHJvbml6ZV9uZXQoKWAgY2FsbCBhZnRlciBgc3RhX2luZm9fZmx1c2hgIGlmIGBzdGFfaW5mb19mbHVzaGAgcmV0dXJucyAwLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aHkgdGhhdCdzIHRoZXJlLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgd2hhdCBhcmUgdGhlIHBvc3NpYmxlIHJldHVybiB2YWx1ZXMgb2YgYHN0YV9pbmZvX2ZsdXNoYD8gV2hhdCBkb2VzIGEgemVybyByZXR1cm4gc2lnbmlmeSBpbiB0aGlzIGNvbnRleHQ/IElzIGl0IHJlbGF0ZWQgdG8gd2hldGhlciB0aGUgZmx1c2ggb3BlcmF0aW9uIHdhcyBzdWNjZXNzZnVsLCBvciBzb21ldGhpbmcgbW9yZSBudWFuY2VkPyBJIG5lZWQgdG8gZGlnIGludG8gYHN0YV9pbmZvX2ZsdXNoYCBpdHNlbGYgdG8gdW5kZXJzdGFuZCB0aGUgbG9naWMuIElzIHRoaXMgdG8gZW5zdXJlIGFsbCBxdWV1ZWQgb3BlcmF0aW9ucyBhcmUgY29tcGxldGVkLCBvciBpcyB0aGlzIHJlbGF0ZWQgdG8gcG90ZW50aWFsIHJhY2UgY29uZGl0aW9ucz9cblxuQWRkaXRpb25hbGx5LCBJIHNlZSB0aGV5J3ZlIHJlbW92ZWQgYHN5bmNocm9uaXplX3JjdSgpYCBjYWxscyBmcm9tIGJvdGggYGllZWU4MDIxMV9jc2FfY29ubmVjdGlvbl9kcm9wX3dvcmtgIGFuZCBgaWVlZTgwMjExX2lic3NfbGVhdmVgLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aHkgdGhvc2Ugd2VyZSBkZWVtZWQgdW5uZWNlc3NhcnkuIEFyZSB0aGV5IHJlZHVuZGFudCBub3cgZHVlIHRvIHRoZSBjaGFuZ2VzIGluIGBpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0YCwgb3Igd2FzIHRoZXJlIGEgZGVlcGVyIHJlYXNvbiBmb3IgdGhlaXIgcmVtb3ZhbD8gTXkgaW5pdGlhbCByZWFjdGlvbiBpcyB0aGF0IHRoZXkgcmVtb3ZlZCB0aGUgcmVkdW5kYW50IGBzeW5jaHJvbml6ZV9yY3UoKWAgY2FsbHMuIElmIHRoZSBvcGVyYXRpb25zIG5vdyB3YWl0IGZvciBhbnkgUkNVIGdyYWNlIHBlcmlvZHMsIGl0J3Mgc2FmZSB0byByZW1vdmUgdGhlbS4gQnV0IEkgbmVlZCB0byBpbnZlc3RpZ2F0ZSBib3RoIGZ1bmN0aW9ucyB0byBiZSBzdXJlLiBBbHJpZ2h0LCB0aW1lIHRvIHRyYWNlIGRvd24gdGhlIGBzdGFfaW5mb19mbHVzaGAgZnVuY3Rpb24gYW5kIHRoZSBzdXJyb3VuZGluZyBjb2RlIHRvIGdldCBhIGNvbXBsZXRlIHBpY3R1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMjUsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMzYsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QwNTo0ODo1MC45NTAwMzQ5OFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4OTgzNDEzMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzdGFfaW5mb19mbHVzaFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tYWM4MDIxMS9jZmcuYz0yMDEwPXN0YXRpYyBpbnQgaWVlZTgwMjExX3N0b3BfYXAoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYy0yMDkwLVxcbm5ldC9tYWM4MDIxMS9jZmcuYzoyMDkxOlxcdF9fc3RhX2luZm9fZmx1c2goc2RhdGEsIHRydWUsIGxpbmtfaWQsIE5VTEwpO1xcbm5ldC9tYWM4MDIxMS9jZmcuYy0yMDkyLVxcbi0tXFxubmV0L21hYzgwMjExL2NmZy5jPTI3MTA9c3RhdGljIGludCBpZWVlODAyMTFfZGVsX3N0YXRpb24oc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldixcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYy0yNzE5LVxcbm5ldC9tYWM4MDIxMS9jZmcuYzoyNzIwOlxcdHN0YV9pbmZvX2ZsdXNoKHNkYXRhLCBwYXJhbXMtXFx1MDAzZWxpbmtfaWQpO1xcbm5ldC9tYWM4MDIxMS9jZmcuYy0yNzIxLVxcdHJldHVybiAwO1xcbi0tXFxubmV0L21hYzgwMjExL2lic3MuYz0yMDk9c3RhdGljIHZvaWQgX19pZWVlODAyMTFfc3RhX2pvaW5faWJzcyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9pYnNzLmMtMjM0LVxcdGlmICghZXRoZXJfYWRkcl9lcXVhbChpZmlic3MtXFx1MDAzZWJzc2lkLCBic3NpZCkpXFxubmV0L21hYzgwMjExL2lic3MuYzoyMzU6XFx0XFx0c3RhX2luZm9fZmx1c2goc2RhdGEsIC0xKTtcXG5uZXQvbWFjODAyMTEvaWJzcy5jLTIzNi1cXG4tLVxcbm5ldC9tYWM4MDIxMS9pYnNzLmM9NjQ2PXN0YXRpYyB2b2lkIGllZWU4MDIxMV9pYnNzX2Rpc2Nvbm5lY3Qoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXFxuLS1cXG5uZXQvbWFjODAyMTEvaWJzcy5jLTY3MS1cXHRuZXRpZl9jYXJyaWVyX29mZihzZGF0YS1cXHUwMDNlZGV2KTtcXG5uZXQvbWFjODAyMTEvaWJzcy5jOjY3MjpcXHRpZiAoIXN0YV9pbmZvX2ZsdXNoKHNkYXRhLCAtMSkpXFxubmV0L21hYzgwMjExL2lic3MuYy02NzMtXFx0XFx0c3luY2hyb25pemVfbmV0KCk7XFxuLS1cXG5uZXQvbWFjODAyMTEvaWZhY2UuYz00Nzk9c3RhdGljIHZvaWQgaWVlZTgwMjExX2RvX3N0b3Aoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsIGJvb2wgZ29pbmdfZG93bilcXG4tLVxcbm5ldC9tYWM4MDIxMS9pZmFjZS5jLTUzNC1cXHQgKi9cXG5uZXQvbWFjODAyMTEvaWZhY2UuYzo1MzU6XFx0Zmx1c2hlZCA9IHN0YV9pbmZvX2ZsdXNoKHNkYXRhLCAtMSk7XFxubmV0L21hYzgwMjExL2lmYWNlLmMtNTM2LVxcdFdBUk5fT05fT05DRShzZGF0YS1cXHUwMDNldmlmLnR5cGUgIT0gTkw4MDIxMV9JRlRZUEVfQVBfVkxBTiBcXHUwMDI2XFx1MDAyNlxcbi0tXFxubmV0L21hYzgwMjExL2xpbmsuYz0yODc9c3RhdGljIGludCBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rcyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9saW5rLmMtMzEyLVxcdGlmICghb2xkX2xpbmtzIHx8ICFuZXdfbGlua3MpXFxubmV0L21hYzgwMjExL2xpbmsuYzozMTM6XFx0XFx0V0FSTl9PTihzdGFfaW5mb19mbHVzaChzZGF0YSwgLTEpIFxcdTAwM2UgMCk7XFxubmV0L21hYzgwMjExL2xpbmsuYy0zMTQtXFxuLS1cXG5uZXQvbWFjODAyMTEvbGluay5jLTQzMi1cXHRmb3JfZWFjaF9zZXRfYml0KGxpbmtfaWQsIFxcdTAwMjZzdGFfcmVtLCBJRUVFODAyMTFfTUxEX01BWF9OVU1fTElOS1MpXFxubmV0L21hYzgwMjExL2xpbmsuYzo0MzM6XFx0XFx0c3RhX2luZm9fZmx1c2goc2RhdGEsIGxpbmtfaWQpO1xcbm5ldC9tYWM4MDIxMS9saW5rLmMtNDM0LVxcbi0tXFxubmV0L21hYzgwMjExL21lc2guYz0xMTk5PXZvaWQgaWVlZTgwMjExX3N0b3BfbWVzaChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSlcXG4tLVxcbm5ldC9tYWM4MDIxMS9tZXNoLmMtMTIwNy1cXHQvKiBmbHVzaCBTVEFzIGFuZCBtcGF0aHMgb24gdGhpcyBpZmFjZSAqL1xcbm5ldC9tYWM4MDIxMS9tZXNoLmM6MTIwODpcXHRzdGFfaW5mb19mbHVzaChzZGF0YSwgLTEpO1xcbm5ldC9tYWM4MDIxMS9tZXNoLmMtMTIwOS1cXHRpZWVlODAyMTFfZnJlZV9rZXlzKHNkYXRhLCB0cnVlKTtcXG4tLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmM9NDUwOD1zdGF0aWMgdm9pZCBpZWVlODAyMTFfc2V0X2Rpc2Fzc29jKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbi0tXFxubmV0L21hYzgwMjExL21sbWUuYy00NjIxLVxcdC8qIFJlbW92ZSBURExTIHBlZXJzICovXFxubmV0L21hYzgwMjExL21sbWUuYzo0NjIyOlxcdF9fc3RhX2luZm9fZmx1c2goc2RhdGEsIGZhbHNlLCAtMSwgYXBfc3RhKTtcXG5uZXQvbWFjODAyMTEvbWxtZS5jLTQ2MjMtXFxuLS1cXG5uZXQvbWFjODAyMTEvbWxtZS5jLTQ2MjgtXFx0XFx0LyogUmVtb3ZlIEFQIHBlZXIgKi9cXG5uZXQvbWFjODAyMTEvbWxtZS5jOjQ2Mjk6XFx0XFx0c3RhX2luZm9fZmx1c2goc2RhdGEsIC0xKTtcXG5uZXQvbWFjODAyMTEvbWxtZS5jLTQ2MzAtXFx0fVxcbi0tXFxubmV0L21hYzgwMjExL21sbWUuYy00Njg1LVxcdFxcdCAqL1xcbm5ldC9tYWM4MDIxMS9tbG1lLmM6NDY4NjpcXHRcXHRzdGFfaW5mb19mbHVzaChzZGF0YSwgLTEpO1xcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNDY4Ny1cXHR9XFxuLS1cXG5uZXQvbWFjODAyMTEvb2NiLmM9MjA4PWludCBpZWVlODAyMTFfb2NiX2xlYXZlKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxcbi0tXFxubmV0L21hYzgwMjExL29jYi5jLTIxNi1cXHRpZm9jYi1cXHUwMDNlam9pbmVkID0gZmFsc2U7XFxubmV0L21hYzgwMjExL29jYi5jOjIxNzpcXHRzdGFfaW5mb19mbHVzaChzZGF0YSwgLTEpO1xcbm5ldC9tYWM4MDIxMS9vY2IuYy0yMTgtXFxuLS1cXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYz0xNjkwPXZvaWQgc3RhX2luZm9fc3RvcChzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbClcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTE2OTctXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM6MTY5ODppbnQgX19zdGFfaW5mb19mbHVzaChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSwgYm9vbCB2bGFucyxcXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy0xNjk5LVxcdFxcdCAgICAgaW50IGxpbmtfaWQsIHN0cnVjdCBzdGFfaW5mbyAqZG9fbm90X2ZsdXNoX3N0YSlcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oPTk1Mz12b2lkIHN0YV9pbmZvX3N0b3Aoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwpO1xcbi0tXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtOTU1LS8qKlxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oOjk1NjogKiBfX3N0YV9pbmZvX2ZsdXNoIC0gZmx1c2ggbWF0Y2hpbmcgU1RBIGVudHJpZXMgZnJvbSB0aGUgU1RBIHRhYmxlXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtOTU3LSAqXFxuLS1cXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaC05NjYtICovXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmg6OTY3OmludCBfX3N0YV9pbmZvX2ZsdXNoKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLCBib29sIHZsYW5zLFxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oLTk2OC1cXHRcXHQgICAgIGludCBsaW5rX2lkLCBzdHJ1Y3Qgc3RhX2luZm8gKmRvX25vdF9mbHVzaF9zdGEpO1xcbi0tXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtOTcwLS8qKlxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oOjk3MTogKiBzdGFfaW5mb19mbHVzaCAtIGZsdXNoIG1hdGNoaW5nIFNUQSBlbnRyaWVzIGZyb20gdGhlIFNUQSB0YWJsZVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oLTk3Mi0gKlxcbi0tXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtOTc5LSAqL1xcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oOjk4MDpzdGF0aWMgaW5saW5lIGludCBzdGFfaW5mb19mbHVzaChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaC05ODEtXFx0XFx0XFx0XFx0IGludCBsaW5rX2lkKVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oLTk4Mi17XFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmg6OTgzOlxcdHJldHVybiBfX3N0YV9pbmZvX2ZsdXNoKHNkYXRhLCBmYWxzZSwgbGlua19pZCwgTlVMTCk7XFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtOTg0LX1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDdUMDU6NDg6NTEuMDM5ODc2ODgxWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTczMTg2NzUxNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE1hYzgwMjExIElCU1MgRGlzY29ubmVjdCBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdHdlYWtpbmcgYGllZWU4MDIxMV9pYnNzX2Rpc2Nvbm5lY3RgIHdpdGhpbiB0aGUgYG5ldC9tYWM4MDIxMS9pYnNzLmNgIGZpbGUuIFRoZSBjb3JlIGNoYW5nZSBpcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkOiB0aGV5J3JlIHJlcGxhY2luZyBgc3RhX2luZm9fZmx1c2goc2RhdGEsIC0xKWAgd2l0aCBhIHNsaWdodGx5IG1vcmUgY29tcGxleCBzZXF1ZW5jZS4gRmlyc3QsIGBuZXRpZl9jYXJyaWVyX29mZihzZGF0YS1cdTAwM2VkZXYpYCBpcyBjYWxsZWQsIHdoaWNoIG1ha2VzIHNlbnNlOyB3ZSB3YW50IHRvIHNpZ25hbCB0aGUgbmV0d29yayBpbnRlcmZhY2UgaXMgZG93bi4gVGhlbiwgdGhleSBjYWxsIGBzdGFfaW5mb19mbHVzaChzZGF0YSwgLTEpYCBhbmQgKmNvbmRpdGlvbmFsbHkqIHJ1biBgc3luY2hyb25pemVfbmV0KClgLiBUaGF0IGltcGxpZXMgdGhlcmUgbWlnaHQgaGF2ZSBiZWVuIGEgc3VidGxlIHJhY2Ugb3Igb3JkZXJpbmcgcHJvYmxlbSBiZWluZyBhZGRyZXNzZWQgaGVyZS5cblxuVGhleSd2ZSBhbHNvIHJlbW92ZWQgYHN5bmNocm9uaXplX3JjdSgpYCBmcm9tIGBpZWVlODAyMTFfY3NhX2Nvbm5lY3Rpb25fZHJvcF93b3JrYCBhbmQgYGllZWU4MDIxMV9pYnNzX2xlYXZlYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoaXMgaXMgcHJvYmFibHkgcmVsYXRlZCB0byB0aGUgc2FtZSB1bmRlcmx5aW5nIHByb2JsZW0uIEl0IGxvb2tzIGxpa2UgdGhleSBtaWdodCBiZSBzdHJlYW1saW5pbmcgdGhlIHN5bmNocm9uaXphdGlvbiBwcm9jZXNzIGFyb3VuZCBJQlNTIGRpc2Nvbm5lY3RzIG9yIGxlYXZlcy4gVGhpcyBjb3VsZCBiZSBhIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiwgYnV0IG1vcmUgbGlrZWx5LCBpdCdzIGFib3V0IGF2b2lkaW5nIHNvbWUgcG90ZW50aWFsIGRhdGEgY29ycnVwdGlvbiBvciBzdGFsZSBzdGF0ZSBpc3N1ZXMsIGVzcGVjaWFsbHkgd2hlbiBkZWFsaW5nIHdpdGggc3RhdGlvbiBpbmZvcm1hdGlvbi5cblxuR2l2ZW4gdGhpcyBpcyBhIGNoYW5nZSB3aXRoaW4gdGhlIG1hYzgwMjExIHN1YnN5c3RlbSwgc3BlY2lmaWNhbGx5IGFmZmVjdGluZyBJQlNTIChBZC1Ib2MpIG1vZGUsIEkgbmVlZCB0byBjaGVjayB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb25zLiBgQ09ORklHX01BQzgwMjExYCBpcyBvYnZpb3VzbHkgYSBwcmVyZXF1aXNpdGUsIGJ1dCBJIHN1c3BlY3QgdGhlcmUgbWlnaHQgYmUgYSBtb3JlIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gcmVsYXRlZCB0byBJQlNTIHRoYXQncyBpbiBwbGF5IGhlcmUuIEknbGwgbmVlZCB0byBkaWcgaW50byBgbmV0L21hYzgwMjExL0tjb25maWdgIG9yIHNpbWlsYXIgZmlsZXMgdG8gc2VlIGlmIGFueXRoaW5nIGVsc2UgaXMgbmVjZXNzYXJ5IHRvIHRyaWdnZXIgdGhpcyBjb2RlIHBhdGguIEkgd2FudCB0byB1bmRlcnN0YW5kIHRoZSAqZXhhY3QqIGNvbmRpdGlvbnMgd2hlcmUgdGhpcyBwYXRjaCBiZWNvbWVzIHJlbGV2YW50LiBBIGRlZXAgZGl2ZSB3aWxsIHRlbGwgbWUgdGhlIGVkZ2UgY2FzZXMgb2YgdGhpcyBmaXguXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUxNDMsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDdUMDU6NDg6NTYuNzcxNzQ2MzU3WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyOTY5NDQ1NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgTUFDODAyMTFcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L21hYzgwMjExL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWFjODAyMTEvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI6Y29uZmlnIE1BQzgwMjExXFxubmV0L21hYzgwMjExL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiR2VuZXJpYyBJRUVFIDgwMi4xMSBOZXR3b3JraW5nIFN0YWNrIChtYWM4MDIxMSlcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xOT1pZiBNQUM4MDIxMSAhPSBuXFxubmV0L21hYzgwMjExL0tjb25maWctMjAtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjE6Y29uZmlnIE1BQzgwMjExX0hBU19SQ1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyLVxcdGJvb2xcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMy1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDpjb25maWcgTUFDODAyMTFfUkNfTUlOU1RSRUxcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNS1cXHRib29sIFxcXCJNaW5zdHJlbFxcXCIgaWYgRVhQRVJUXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0zMT1jaG9pY2VcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQwLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjQxOmNvbmZpZyBNQUM4MDIxMV9SQ19ERUZBVUxUX01JTlNUUkVMXFxubmV0L21hYzgwMjExL0tjb25maWctNDItXFx0Ym9vbCBcXFwiTWluc3RyZWxcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz00OD1lbmRjaG9pY2VcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00OS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo1MDpjb25maWcgTUFDODAyMTFfUkNfREVGQVVMVFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTUxLVxcdHN0cmluZ1xcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9NTc9Y29tbWVudCBcXFwiU29tZSB3aXJlbGVzcyBkcml2ZXJzIHJlcXVpcmUgYSByYXRlIGNvbnRyb2wgYWxnb3JpdGhtXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctNTktXFxubmV0L21hYzgwMjExL0tjb25maWc6NjA6Y29uZmlnIE1BQzgwMjExX0tVTklUX1RFU1RcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy02MS1cXHR0cmlzdGF0ZSBcXFwiS1VuaXQgdGVzdHMgZm9yIG1hYzgwMjExXFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy02OS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3MDpjb25maWcgTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTcxLVxcdGJvb2wgXFxcIkVuYWJsZSBtYWM4MDIxMSBtZXNoIG5ldHdvcmtpbmcgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTc4LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjc5OmNvbmZpZyBNQUM4MDIxMV9MRURTXFxubmV0L21hYzgwMjExL0tjb25maWctODAtXFx0Ym9vbCBcXFwiRW5hYmxlIExFRCB0cmlnZ2Vyc1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg3LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjg4OmNvbmZpZyBNQUM4MDIxMV9ERUJVR0ZTXFxubmV0L21hYzgwMjExL0tjb25maWctODktXFx0Ym9vbCBcXFwiRXhwb3J0IG1hYzgwMjExIGludGVybmFscyBpbiBEZWJ1Z0ZTXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctOTYtXFxubmV0L21hYzgwMjExL0tjb25maWc6OTc6Y29uZmlnIE1BQzgwMjExX01FU1NBR0VfVFJBQ0lOR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTk4LVxcdGJvb2wgXFxcIlRyYWNlIGFsbCBtYWM4MDIxMSBkZWJ1ZyBtZXNzYWdlc1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEwOS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTA6bWVudWNvbmZpZyBNQUM4MDIxMV9ERUJVR19NRU5VXFxubmV0L21hYzgwMjExL0tjb25maWctMTExLVxcdGJvb2wgXFxcIlNlbGVjdCBtYWM4MDIxMSBkZWJ1Z2dpbmcgZmVhdHVyZXNcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTUtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTE2OmNvbmZpZyBNQUM4MDIxMV9OT0lOTElORVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExNy1cXHRib29sIFxcXCJEbyBub3QgaW5saW5lIFRYL1JYIGhhbmRsZXJzXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTMxLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjEzMjpjb25maWcgTUFDODAyMTFfVkVSQk9TRV9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMy1cXHRib29sIFxcXCJWZXJib3NlIGRlYnVnZ2luZyBvdXRwdXRcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNDItXFxubmV0L21hYzgwMjExL0tjb25maWc6MTQzOmNvbmZpZyBNQUM4MDIxMV9NTE1FX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTQ0LVxcdGJvb2wgXFxcIlZlcmJvc2UgbWFuYWdlZCBNTE1FIG91dHB1dFxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1My1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNTQ6Y29uZmlnIE1BQzgwMjExX1NUQV9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1NS1cXHRib29sIFxcXCJWZXJib3NlIHN0YXRpb24gZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTYyLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE2Mzpjb25maWcgTUFDODAyMTFfSFRfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjQtXFx0Ym9vbCBcXFwiVmVyYm9zZSBIVCBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzQtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTc1OmNvbmZpZyBNQUM4MDIxMV9PQ0JfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzYtXFx0Ym9vbCBcXFwiVmVyYm9zZSBPQ0IgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTg1LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE4Njpjb25maWcgTUFDODAyMTFfSUJTU19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4Ny1cXHRib29sIFxcXCJWZXJib3NlIElCU1MgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTk2LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE5Nzpjb25maWcgTUFDODAyMTFfUFNfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOTgtXFx0Ym9vbCBcXFwiVmVyYm9zZSBwb3dlcnNhdmUgbW9kZSBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMDgtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjA5OmNvbmZpZyBNQUM4MDIxMV9NUExfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMTAtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIHBlZXIgbGluayBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjEtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjIyOmNvbmZpZyBNQUM4MDIxMV9NUEFUSF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMy1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggcGF0aCBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMzQtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjM1OmNvbmZpZyBNQUM4MDIxMV9NSFdNUF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNi1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggSFdNUCByb3V0aW5nIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0Ny1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDg6Y29uZmlnIE1BQzgwMjExX01FU0hfU1lOQ19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0OS1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggc3luY2hyb25pemF0aW9uIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1OC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNTk6Y29uZmlnIE1BQzgwMjExX01FU0hfQ1NBX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjYwLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBjaGFubmVsIHN3aXRjaCBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNjktXFxubmV0L21hYzgwMjExL0tjb25maWc6MjcwOmNvbmZpZyBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjcxLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBwb3dlcnNhdmUgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjgwLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI4MTpjb25maWcgTUFDODAyMTFfVERMU19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI4Mi1cXHRib29sIFxcXCJWZXJib3NlIFRETFMgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjkyLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI5Mzpjb25maWcgTUFDODAyMTFfREVCVUdfQ09VTlRFUlNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTQtXFx0Ym9vbCBcXFwiRXh0cmEgc3RhdGlzdGljcyBmb3IgVFgvUlggZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMzA3LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjMwODpjb25maWcgTUFDODAyMTFfU1RBX0hBU0hfTUFYX1NJWkVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMDktXFx0aW50IFxcXCJTdGF0aW9uIGhhc2ggdGFibGUgbWF4aW11bSBzaXplXFxcIiBpZiBNQUM4MDIxMV9ERUJVR19NRU5VXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDA1OjQ4OjU2LjkwMTQ0NTUwNFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMwMzgwNDAxNzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRXhhbWluaW5nIHRoZSBJQlNTIENvbmZpZ3VyYXRpb24gTGFuZHNjYXBlKipcblxuT2theSwgc28gSSdtIGZvY3VzaW5nIG9uIHRoZSBjb25maWd1cmF0aW9uIGhlcmUsIGFuZCBpdCdzIHByZXR0eSBjbGVhciB0aGF0IGBNQUM4MDIxMWAgaXMgdGhlIGNvcmUsIHRoZSBiaWcgb25lLiBOb3csIEknbSB0cnlpbmcgdG8gZ2V0IGEgaGFuZGxlIG9uIHRoZSBJQlNTIGNvbmZpZ3VyYXRpb24gc3BlY2lmaWNhbGx5LiBJIHNlZSB0aGlzIGBNQUM4MDIxMV9JQlNTX0RFQlVHYCBvcHRpb24sIGJ1dCB0aGF0J3Mgb2J2aW91c2x5IGp1c3QgZm9yIGRlYnVnZ2luZy4gVGhlIHRoaW5nIGlzLCBJQlNTIGlzICpwYXJ0KiBvZiBgTUFDODAyMTFgIGl0c2VsZi4gU28sIHdoYXQgSSdtIHJlYWxseSB0cnlpbmcgdG8gZmlndXJlIG91dCBpcyBpZiB0aGVyZSBhcmUgYW55ICpvdGhlciogbW9yZSBzcGVjaWZpYyBjb25maWd1cmF0aW9ucyB0aGF0IHBlcnRhaW4gZGlyZWN0bHkgdG8gSUJTUyBiZXlvbmQgdGhhdCBnZW5lcmFsIGRlYnVnIG9wdGlvbi4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJJ20gbm90IG1pc3NpbmcgYW55dGhpbmcgY3J1Y2lhbC4gVGltZSB0byBkZWx2ZSBhIGJpdCBkZWVwZXIgYW5kIHNlZSBpZiB0aGVyZSBhcmUgYW55IGhpZGRlbiBzZXR0aW5ncyFcblxuXG4iLCJJbnB1dFRva2VucyI6ODAzNCwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDA1OjQ4OjU5LjkzOTQ4Nzk0OVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDAzNjQ5ODYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnLipJQlNTXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tYWM4MDIxMS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL0tjb25maWc9MTc1PWNvbmZpZyBNQUM4MDIxMV9PQ0JfREVCVUdcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4NS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxODY6Y29uZmlnIE1BQzgwMjExX0lCU1NfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xODctXFx0Ym9vbCBcXFwiVmVyYm9zZSBJQlNTIGRlYnVnZ2luZ1xcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDdUMDU6NDk6MDAuMDc5ODYzNDI1WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDc4MDMwMjkxMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgSUJTUyBEaXNjb25uZWN0aW9uIFBvaW50cyoqXG5cbk9rYXksIHNvIHRoZXJlJ3Mgbm8gZGVkaWNhdGVkIGNvbmZpZ3VyYXRpb24gb3B0aW9uIHNwZWNpZmljYWxseSBmb3IgSW5kZXBlbmRlbnQgQmFzaWMgU2VydmljZSBTZXQgKElCU1MpIHdpdGhpbiB0aGUgZHJpdmVyOyBpdCdzIGFsbCBoYW5kbGVkIHVuZGVyIHRoZSB1bWJyZWxsYSBvZiBgTUFDODAyMTFgLiBUaGF0IG1ha2VzIHNlbnNlOyBpdCBrZWVwcyB0aGluZ3Mgc3RyZWFtbGluZWQuXG5cbk15IGluaXRpYWwgc2NhbiB0ZWxscyBtZSB0aGlzIHBhdGNoIHNwZWNpZmljYWxseSB0d2Vha3MgYSBmZXcga2V5IGZ1bmN0aW9uczogYGllZWU4MDIxMV9pYnNzX2Rpc2Nvbm5lY3RgLCBgaWVlZTgwMjExX2NzYV9jb25uZWN0aW9uX2Ryb3Bfd29ya2AsIGFuZCBgaWVlZTgwMjExX2lic3NfbGVhdmVgLiBUaGVzZSBhcmUgdGhlIGNvcmUgcm91dGluZXMgaW52b2x2ZWQgaW4gSUJTUyBkaXNjb25uZWN0aW9uIGFuZCBsZWF2aW5nIHRoZSBJQlNTIG5ldHdvcmsuXG5cbk5vdywgd2hlcmUgZG8gdGhlc2UgZnVuY3Rpb25zIGdldCBpbnZva2VkPyBJIHN1c3BlY3QgdGhleSdyZSB0cmlnZ2VyZWQgaW4gYSBmZXcgd2F5cy4gTGlrZWx5IHRocm91Z2ggbmV0bGluayBjb21tYW5kcyBzcGVjaWZpYyB0byBgbWFjODAyMTFgIG9yIGFzIGEgcmVzdWx0IG9mIGludGVybmFsIGV2ZW50cyB3aXRoaW4gdGhlIGtlcm5lbCB3aXJlbGVzcyBzdGFjay4gRm9yIGV4YW1wbGUsIGBpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0YCBzZWVtcyB0byBiZSBjYWxsZWQgaW5kaXJlY3RseSBmcm9tIGBpZWVlODAyMTFfY3NhX2Nvbm5lY3Rpb25fZHJvcF93b3JrYCBhbmQgYGllZWU4MDIxMV9pYnNzX2xlYXZlYCwgSSdtIGFsc28gc2VlaW5nIGl0IGNhbGxlZCBmcm9tIGZ1bmN0aW9ucyBsaWtlIGBfX2llZWU4MDIxMV9zdGFfam9pbl9pYnNzYC4uLiBUaGlzIGluZGljYXRlcyBpdCdzIGEgY3JpdGljYWwgZnVuY3Rpb24gZm9yIG1hbmFnaW5nIGNsaWVudHMgYW5kIHRoZSBJQlNTIGxpZmVjeWNsZS5cblxuSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNhbGwgcGF0aHMgYmV0dGVyLiBMZXQncyBkaWcgaW50byB3aGVyZSBgaWVlZTgwMjExX2lic3NfZGlzY29ubmVjdGAgaXMgY2FsbGVkIGZyb20uIEkgbmVlZCB0byB0cmFjZSB0aGlzIGNhcmVmdWxseSB0byBzZWUgdGhlIGV4YWN0IGNvbmRpdGlvbnMgdGhhdCB0cmlnZ2VyIHRoZXNlIGRpc2Nvbm5lY3Rpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4NDIxLCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTg2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDA1OjQ5OjA0Ljg2MDE2ODk1NloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM1NzY1NDc3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImllZWU4MDIxMV9pYnNzX2Rpc2Nvbm5lY3RcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L21hYzgwMjExL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWFjODAyMTEvaWJzcy5jPTYyMD1zdGF0aWMgaW50IGllZWU4MDIxMV9zdGFfYWN0aXZlX2lic3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXFxuLS1cXG5uZXQvbWFjODAyMTEvaWJzcy5jLTY0NS1cXG5uZXQvbWFjODAyMTEvaWJzcy5jOjY0NjpzdGF0aWMgdm9pZCBpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0KHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxcbm5ldC9tYWM4MDIxMS9pYnNzLmMtNjQ3LXtcXG4tLVxcbm5ldC9tYWM4MDIxMS9pYnNzLmM9NzA1PXN0YXRpYyB2b2lkIGllZWU4MDIxMV9jc2FfY29ubmVjdGlvbl9kcm9wX3dvcmsoc3RydWN0IHdpcGh5ICp3aXBoeSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9pYnNzLmMtNzExLVxcbm5ldC9tYWM4MDIxMS9pYnNzLmM6NzEyOlxcdGllZWU4MDIxMV9pYnNzX2Rpc2Nvbm5lY3Qoc2RhdGEpO1xcbm5ldC9tYWM4MDIxMS9pYnNzLmMtNzEzLVxcdHNrYl9xdWV1ZV9wdXJnZShcXHUwMDI2c2RhdGEtXFx1MDAzZXNrYl9xdWV1ZSk7XFxuLS1cXG5uZXQvbWFjODAyMTEvaWJzcy5jPTE3ODI9aW50IGllZWU4MDIxMV9pYnNzX2xlYXZlKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxcbi0tXFxubmV0L21hYzgwMjExL2lic3MuYy0xNzg2LVxcdGlmaWJzcy1cXHUwMDNlc3NpZF9sZW4gPSAwO1xcbm5ldC9tYWM4MDIxMS9pYnNzLmM6MTc4NzpcXHRpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0KHNkYXRhKTtcXG5uZXQvbWFjODAyMTEvaWJzcy5jLTE3ODgtXFx0ZXRoX3plcm9fYWRkcihpZmlic3MtXFx1MDAzZWJzc2lkKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDdUMDU6NDk6MDQuOTk1OTM5MDgzWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUxNzgyMTY5MTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBQbGFuOiBtYWM4MDIxMSBJQlNTIERpc2Nvbm5lY3QgRml4KipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyBwYXRjaCDigJMgaXQgbG9va3MgbGlrZSBpdCdzIHRvdWNoaW5nIGNvcmUga2VybmVsIGxvZ2ljIHJlbGF0ZWQgdG8gSUJTUyBtb2RlIHdpdGhpbiBgbWFjODAyMTFgLCBzcGVjaWZpY2FsbHkgaG93IGRpc2Nvbm5lY3QgYW5kIGxlYXZlIG9wZXJhdGlvbnMgYXJlIGhhbmRsZWQuIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IGl0J3MgKmZ1bmN0aW9uYWwqLCBtZWFuaW5nIGl0J3MgYWx0ZXJpbmcgdGhlIGZ1bmRhbWVudGFsIGJlaGF2aW9yIG9mIHRoZSBkcml2ZXIuIFRoYXQgbWFrZXMgZnV6emluZyBhIGhpZ2ggcHJpb3JpdHkuIFdlIG5lZWQgdG8gZW5zdXJlIHRoaXMgZml4IGRvZXNuJ3QgaW50cm9kdWNlIGFueSByZWdyZXNzaW9ucyBvciwgaGVhdmVuIGZvcmJpZCwgZGVhZGxvY2tzLiBUaGlzIGlzIGEgY3JpdGljYWwgYXJlYSBmb3IgbWUuXG5cblRoZSBwYXRjaCBzZWVtcyB0byBiZSBhZGRyZXNzaW5nIGEgcmFjZSBjb25kaXRpb24gb3Igc3luY2hyb25pemF0aW9uIHByb2JsZW0sIGp1ZGdpbmcgYnkgdGhlIHJlb3JkZXJpbmcgb2YgYG5ldGlmX2NhcnJpZXJfb2ZmYCBhbmQgYHN0YV9pbmZvX2ZsdXNoYCBhbmQgdGhlIFJDVSBzeW5jaHJvbml6YXRpb24gYWRqdXN0bWVudHMuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gZ28gYWZ0ZXIgdGhlc2UgY29yZSBjb21wb25lbnRzIGZvciBmdXp6aW5nLlxuXG5NeSBsaXN0IG9mIGZvY3VzIHN5bWJvbHMgd2lsbCBiZTpcbiogICBgaWVlZTgwMjExX2lic3NfZGlzY29ubmVjdGBcbiogICBgaWVlZTgwMjExX2NzYV9jb25uZWN0aW9uX2Ryb3Bfd29ya2BcbiogICBgaWVlZTgwMjExX2lic3NfbGVhdmVgXG5cbk5vdywgbGV0J3MgbmFpbCBkb3duIHRoZSBjb25maWd1cmF0aW9uIG5lZWRlZCBmb3IgZWZmZWN0aXZlIGZ1enppbmcuIFRoZSBwYXRjaCBpcyB0YXJnZXRpbmcgYG1hYzgwMjExYCwgYW5kIEkgdGhpbmsgYE1BQzgwMjExYCBzaG91bGQgYmUgdGhlIGtleSBjb25maWd1cmF0aW9uIG9wdGlvbiBuZWVkZWQuIEkgbmVlZCB0byBjb25maXJtIHRoYXQgYE1BQzgwMjExYCBpcyBzdWZmaWNpZW50LCBhbmQgSSB3aWxsIGFkZCBgV0xBTmAgb3IgYENGRzgwMjExYCBpZiBuZWNlc3NhcnkuIEkgc2hvdWxkIGJlIGZpbmUsIGFzIGBNQUM4MDIxMWAgdXN1YWxseSBpbXBsaWVzIGBDRkc4MDIxMWAuIEknbGwgZG91YmxlLWNoZWNrIHRoZSBkZXBlbmRlbmN5IHRvIGJlIHN1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjk0NDQsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNzQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDdUMDU6NDk6MTAuMTc0MTU4NTc0WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MzY5MzEwMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkZXBlbmRzIG9uIENGRzgwMjExXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tYWM4MDIxMS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL0tjb25maWc9Mj1jb25maWcgTUFDODAyMTFcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJHZW5lcmljIElFRUUgODAyLjExIE5ldHdvcmtpbmcgU3RhY2sgKG1hYzgwMjExKVxcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo0OlxcdGRlcGVuZHMgb24gQ0ZHODAyMTFcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01LVxcdHNlbGVjdCBDUllQVE9cXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTE2PWNvbW1lbnQgXFxcIkNGRzgwMjExIG5lZWRzIHRvIGJlIGVuYWJsZWQgZm9yIE1BQzgwMjExXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE3OlxcdGRlcGVuZHMgb24gQ0ZHODAyMTE9blxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QwNTo0OToxMC4yNjc4NjE3NTRaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTkyNTUwMDA1MDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGhhdmluZyBpdDpcblxuKipDb25maXJtaW5nIGFuZCBGb3JtdWxhdGluZyB0aGUgUmVzcG9uc2UqKlxuXG5BbHJpZ2h0LCBsZXQgbWUgc2VlLi4uIE15IHVuZGVyc3RhbmRpbmcgaXMgdGhhdCBgTUFDODAyMTFgIHJlbGllcyBvbiBgQ0ZHODAyMTFgLCBzbyB0aGF0IGNvbmZpcm1zIHdoYXQgSSBzdXNwZWN0ZWQuIFRoZSBsb2dpY2FsIGNvbmNsdXNpb24gaXMgdGhhdCBlbmFibGluZyBgTUFDODAyMTFgIGlzIHRoZSBjb3JyZWN0IGNvbmZpZ3VyYXRpb24gdG8gZm9jdXMgb24uIEdvdCBpdCwgdGhhdOKAmXMgc3RyYWlnaHRmb3J3YXJkLiBOb3cgdGhhdCBJIGhhdmUgdGhhdCBjbGVhciwgSSB3aWxsIGZvcm11bGF0ZSB0aGUgcmVzcG9uc2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEwMzIwLCJPdXRwdXRUb2tlbnMiOjE3NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDA1OjQ5OjI5LjUyMjg2NDYwNVoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2NjY2MTgzMywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTUFDODAyMTFcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpZWVlODAyMTFfaWJzc19kaXNjb25uZWN0XCIsXG4gICAgXCJpZWVlODAyMTFfY3NhX2Nvbm5lY3Rpb25fZHJvcF93b3JrXCIsXG4gICAgXCJpZWVlODAyMTFfaWJzc19sZWF2ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBzeW5jaHJvbml6YXRpb24gYW5kIHRlYXJkb3duIHNlcXVlbmNlIGR1cmluZyBJQlNTIChBZC1Ib2MpIGRpc2Nvbm5lY3QgYW5kIGxlYXZlIG9wZXJhdGlvbnMgaW4gdGhlIG1hYzgwMjExIHN1YnN5c3RlbS4gSXQgcmVvcmRlcnMgYG5ldGlmX2NhcnJpZXJfb2ZmYCBhbmQgYHN0YV9pbmZvX2ZsdXNoYCBhbmQgYWRqdXN0cyBSQ1Ugc3luY2hyb25pemF0aW9uIHRvIGZpeCBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyBuZXcgcmVncmVzc2lvbnMgb3IgZGVhZGxvY2tzIGFyZSBpbnRyb2R1Y2VkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1BQzgwMjExXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWVlZTgwMjExX2lic3NfZGlzY29ubmVjdFwiLFxuICAgIFwiaWVlZTgwMjExX2NzYV9jb25uZWN0aW9uX2Ryb3Bfd29ya1wiLFxuICAgIFwiaWVlZTgwMjExX2lic3NfbGVhdmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgc3luY2hyb25pemF0aW9uIGFuZCB0ZWFyZG93biBzZXF1ZW5jZSBkdXJpbmcgSUJTUyAoQWQtSG9jKSBkaXNjb25uZWN0IGFuZCBsZWF2ZSBvcGVyYXRpb25zIGluIHRoZSBtYWM4MDIxMSBzdWJzeXN0ZW0uIEl0IHJlb3JkZXJzIGBuZXRpZl9jYXJyaWVyX29mZmAgYW5kIGBzdGFfaW5mb19mbHVzaGAgYW5kIGFkanVzdHMgUkNVIHN5bmNocm9uaXphdGlvbiB0byBmaXggYSBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgbm8gbmV3IHJlZ3Jlc3Npb25zIG9yIGRlYWRsb2NrcyBhcmUgaW50cm9kdWNlZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow9zhzg[1] Phase: Succeeded StartedAt: 2026-07-07 05:49:41 +0000 UTC FinishedAt: 2026-07-07 05:49:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9zhzg[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-07 05:49:41 +0000 UTC FinishedAt: 2026-07-07 05:49:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9zhzg[2] Phase: Succeeded StartedAt: 2026-07-07 05:49:41 +0000 UTC FinishedAt: 2026-07-07 10:48:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9zhzg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-07 05:49:41 +0000 UTC FinishedAt: 2026-07-07 10:48:19 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow9zhzg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-07 05:49:41 +0000 UTC FinishedAt: 2026-07-07 05:49:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9zhzg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-07 05:49:41 +0000 UTC FinishedAt: 2026-07-07 05:49:49 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow9zhzg/series-workflow9zhzg-convert-artifact-2652146210/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow9zhzg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-07 05:49:51 +0000 UTC FinishedAt: 2026-07-07 06:36:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9zhzg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-07 05:49:51 +0000 UTC FinishedAt: 2026-07-07 06:36:34 +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:*3fc83ca0-d3d2-458f-b5b4-bd2cddaa68cd,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-workflow9zhzg/series-workflow9zhzg-convert-artifact-2652146210/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": "4077ae0f-f9ec-4790-993e-45b715b8e188", "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-workflow9zhzg/series-workflow9zhzg-build-action-1242696672/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow9zhzg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-07 05:49:51 +0000 UTC FinishedAt: 2026-07-07 06:36:24 +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:*3fc83ca0-d3d2-458f-b5b4-bd2cddaa68cd,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-workflow9zhzg/series-workflow9zhzg-convert-artifact-2652146210/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": "4077ae0f-f9ec-4790-993e-45b715b8e188", "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-workflow9zhzg/series-workflow9zhzg-build-action-1242696672/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow9zhzg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-07 06:36:34 +0000 UTC FinishedAt: 2026-07-07 06:36:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9zhzg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-07 06:36:34 +0000 UTC FinishedAt: 2026-07-07 06:36:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9zhzg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-07 06:36:34 +0000 UTC FinishedAt: 2026-07-07 06:36:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9zhzg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-07 06:36:34 +0000 UTC FinishedAt: 2026-07-07 06:36:42 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow9zhzg/series-workflow9zhzg-convert-artifact-327997565/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow9zhzg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-07 06:36:44 +0000 UTC FinishedAt: 2026-07-07 06:38:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9zhzg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-07 06:36:44 +0000 UTC FinishedAt: 2026-07-07 06:38:35 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*4077ae0f-f9ec-4790-993e-45b715b8e188,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-workflow9zhzg/series-workflow9zhzg-build-action-1242696672/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-workflow9zhzg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-07 06:38:45 +0000 UTC FinishedAt: 2026-07-07 06:38:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9zhzg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-07 06:38:45 +0000 UTC FinishedAt: 2026-07-07 06:38:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9zhzg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-07 06:38:45 +0000 UTC FinishedAt: 2026-07-07 07:42:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9zhzg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-07 06:38:45 +0000 UTC FinishedAt: 2026-07-07 07:42:52 +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:*3fc83ca0-d3d2-458f-b5b4-bd2cddaa68cd,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-workflow9zhzg/series-workflow9zhzg-convert-artifact-327997565/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": "fcb2e579-661a-4e59-8776-a462140e24cb", "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-workflow9zhzg/series-workflow9zhzg-build-action-1544329433/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow9zhzg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-07 06:38:45 +0000 UTC FinishedAt: 2026-07-07 07:42:42 +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:*3fc83ca0-d3d2-458f-b5b4-bd2cddaa68cd,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-workflow9zhzg/series-workflow9zhzg-convert-artifact-327997565/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": "fcb2e579-661a-4e59-8776-a462140e24cb", "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-workflow9zhzg/series-workflow9zhzg-build-action-1544329433/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow9zhzg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-07 07:42:52 +0000 UTC FinishedAt: 2026-07-07 07:42:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9zhzg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-07 07:42:52 +0000 UTC FinishedAt: 2026-07-07 07:42:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9zhzg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-07 07:42:52 +0000 UTC FinishedAt: 2026-07-07 07:44:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9zhzg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-07 07:42:52 +0000 UTC FinishedAt: 2026-07-07 07:44:43 +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:*fcb2e579-661a-4e59-8776-a462140e24cb,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-workflow9zhzg/series-workflow9zhzg-build-action-1544329433/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-workflow9zhzg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-07 07:44:53 +0000 UTC FinishedAt: 2026-07-07 10:48:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9zhzg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-07 07:44:53 +0000 UTC FinishedAt: 2026-07-07 10:48:19 +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":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"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:*4077ae0f-f9ec-4790-993e-45b715b8e188,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*fcb2e579-661a-4e59-8776-a462140e24cb,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-workflow9zhzg/series-workflow9zhzg-build-action-1242696672/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-workflow9zhzg/series-workflow9zhzg-build-action-1544329433/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow9zhzg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-07 07:44:53 +0000 UTC FinishedAt: 2026-07-07 07:45:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9zhzg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-07 07:44:53 +0000 UTC FinishedAt: 2026-07-07 07:45:20 +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":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"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-workflow9zhzg/series-workflow9zhzg-convert-artifact-2558770178/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow9zhzg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-07 07:44:53 +0000 UTC FinishedAt: 2026-07-07 07:44:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9zhzg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-07 07:44:53 +0000 UTC FinishedAt: 2026-07-07 07:44:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9zhzg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-07 07:44:53 +0000 UTC FinishedAt: 2026-07-07 07:44:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9zhzg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-07 07:45:27 +0000 UTC FinishedAt: 2026-07-07 10:48:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9zhzg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_ibss_disconnect","ieee80211_csa_connection_drop_work","ieee80211_ibss_leave"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cdeaa50eae8dad34885515f62559ee83e7e8dda","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"c3670525-58e4-460e-bd62-88142fcfdf45","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-07 07:45:27 +0000 UTC FinishedAt: 2026-07-07 10:48:09 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*4077ae0f-f9ec-4790-993e-45b715b8e188,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*fcb2e579-661a-4e59-8776-a462140e24cb,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-workflow9zhzg/series-workflow9zhzg-build-action-1242696672/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-workflow9zhzg/series-workflow9zhzg-build-action-1544329433/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-workflow9zhzg/series-workflow9zhzg-convert-artifact-2558770178/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,}