Name: series-workflown6gmx Phase: Succeeded StartedAt: 2026-08-24 05:52:04 +0000 UTC FinishedAt: 2026-08-24 10:28:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflown6gmx[0] Phase: Succeeded StartedAt: 2026-08-24 05:52:04 +0000 UTC FinishedAt: 2026-08-24 06:49:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflown6gmx[0].run-triage Phase: Succeeded StartedAt: 2026-08-24 05:52:04 +0000 UTC FinishedAt: 2026-08-24 06:49:05 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "ca800a9302764c445de0da0e84d2252400a770ee", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MAC80211_MESH" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "ca800a9302764c445de0da0e84d2252400a770ee", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MAC80211_MESH" ], "series_id": "cf476a99-cf06-4797-ba1e-9dad6056bd6b" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ieee80211_stop_mesh" ], "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+CgkJCTx0ZD4yMDI2LzA4LzI0IDA2OjQ4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQzgwMjExX01FU0gmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtpZWVlODAyMTFfc3RvcF9tZXNoJiMzNDsKICBdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgbWVtb3J5IGxlYWsgb3IgdXNlLWFmdGVyLWZyZWUgYnkgZnJlZWluZyBhIHBlbmRpbmcgY2hhbm5lbCBzd2l0Y2ggc3RydWN0dXJlIChgaWZtc2gtXHUwMDNlY3NhYCkgd2hlbiBzdG9wcGluZyB0aGUgbWVzaCBpbnRlcmZhY2UuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IGFsbG9jYXRpb25zLCBjb3B5IGRhdGEgdG8gdXNlciBzcGFjZSwgb3IgYWRkIGxvZ2ljIHRoYXQgY291bGQgZGVwZW5kIG9uIHVuaW5pdGlhbGl6ZWQgbWVtb3J5LiBBbnkgaXNzdWVzIHJlbGF0ZWQgdG8gdGhpcyBjaGFuZ2UgKHN1Y2ggYXMgZG91YmxlIGZyZWUgb3IgdXNlLWFmdGVyLWZyZWUpIHdvdWxkIGJlIGNhdWdodCBieSBLQVNBTiwgbm90IEtNU0FOLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIG1lbW9yeSBsZWFrIG9mIGBpZm1zaC1cdTAwM2Vjc2FgIGluIGBpZWVlODAyMTFfc3RvcF9tZXNoYCBkdXJpbmcgbWFjODAyMTEgbWVzaCB0ZWFyZG93bi4gVGhpcyBpcyByZWFjaGFibGUgdmlhIG5sODAyMTEgbWVzaCBvcGVyYXRpb25zIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDA2OjQ4PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZmFmOWI2MmE5MDE1ODBiZDEyYmQ0N2M4ZGU4ODMzMDljOWQ2YjY2ZVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gQXVnIDI0IDA2OjQ4OjA0IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9tZXNoLmMgYi9uZXQvbWFjODAyMTEvbWVzaC5jXG5pbmRleCBkNDUwN2U0ZTZlYzE2Li45MzhmYWQ4MTI5NTc3IDEwMDY0NFxuLS0tIGEvbmV0L21hYzgwMjExL21lc2guY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L21hYzgwMjExL21lc2guY1xuQEAgLTEyMDEsNiAmIzQzOzEyMDEsNyBAQCB2b2lkIGllZWU4MDIxMV9zdG9wX21lc2goc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXG4gXHRzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCA9IHNkYXRhLVx1MDAzZWxvY2FsO1xuIFx0c3RydWN0IGllZWU4MDIxMV9pZl9tZXNoICppZm1zaCA9IFx1MDAyNnNkYXRhLVx1MDAzZXUubWVzaDtcbiBcdHN0cnVjdCBiZWFjb25fZGF0YSAqYmNuO1xuJiM0MztcdHN0cnVjdCBtZXNoX2NzYV9zZXR0aW5ncyAqY3NhO1xuIFxuIFx0bmV0aWZfY2Fycmllcl9vZmYoc2RhdGEtXHUwMDNlZGV2KTtcbiBcbkBAIC0xMjIyLDYgJiM0MzsxMjIzLDEzIEBAIHZvaWQgaWVlZTgwMjExX3N0b3BfbWVzaChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSlcbiBcdFJDVV9JTklUX1BPSU5URVIoaWZtc2gtXHUwMDNlYmVhY29uLCBOVUxMKTtcbiBcdGtmcmVlX3JjdShiY24sIHJjdV9oZWFkKTtcbiBcbiYjNDM7XHQvKiBmcmVlIGFueSBwZW5kaW5nLCB1bmZpbmlzaGVkIGNoYW5uZWwgc3dpdGNoICovXG4mIzQzO1x0Y3NhID0gc2RhdGFfZGVyZWZlcmVuY2UoaWZtc2gtXHUwMDNlY3NhLCBzZGF0YSk7XG4mIzQzO1x0aWYgKGNzYSkge1xuJiM0MztcdFx0UkNVX0lOSVRfUE9JTlRFUihpZm1zaC1cdTAwM2Vjc2EsIE5VTEwpO1xuJiM0MztcdFx0a2ZyZWVfcmN1KGNzYSwgcmN1X2hlYWQpO1xuJiM0MztcdH1cbiYjNDM7XG4gXHQvKiBmcmVlIGFsbCBwb3RlbnRpYWxseSBzdGlsbCBidWZmZXJlZCBncm91cC1hZGRyZXNzZWQgZnJhbWVzICovXG4gXHRsb2NhbC1cdTAwM2V0b3RhbF9wc19idWZmZXJlZCAtPSBza2JfcXVldWVfbGVuKFx1MDAyNmlmbXNoLVx1MDAzZXBzLmJjX2J1Zik7XG4gXHRza2JfcXVldWVfcHVyZ2UoXHUwMDI2aWZtc2gtXHUwMDNlcHMuYmNfYnVmKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwNjo0ODwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TUFDODAyMTFfTUVTSCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2llZWU4MDIxMV9zdG9wX21lc2gmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBvZiBgaWZtc2gtXHUwMDNlY3NhYCBpbiBgaWVlZTgwMjExX3N0b3BfbWVzaGAgZHVyaW5nIG1hYzgwMjExIG1lc2ggdGVhcmRvd24uIFRoaXMgaXMgcmVhY2hhYmxlIHZpYSBubDgwMjExIG1lc2ggb3BlcmF0aW9ucyBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGZhZjliNjJhOTAxNTgwYmQxMmJkNDdjOGRlODgzMzA5YzlkNmI2NmUKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEF1ZyAyNCAwNjo0ODowNCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9tZXNoLmMgYi9uZXQvbWFjODAyMTEvbWVzaC5jCmluZGV4IGQ0NTA3ZTRlNmVjMTYuLjkzOGZhZDgxMjk1NzcgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIxMS9tZXNoLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L21hYzgwMjExL21lc2guYwpAQCAtMTIwMSw2ICYjNDM7MTIwMSw3IEBAIHZvaWQgaWVlZTgwMjExX3N0b3BfbWVzaChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSkKIAlzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCA9IHNkYXRhLSZndDtsb2NhbDsKIAlzdHJ1Y3QgaWVlZTgwMjExX2lmX21lc2ggKmlmbXNoID0gJmFtcDtzZGF0YS0mZ3Q7dS5tZXNoOwogCXN0cnVjdCBiZWFjb25fZGF0YSAqYmNuOwomIzQzOwlzdHJ1Y3QgbWVzaF9jc2Ffc2V0dGluZ3MgKmNzYTsKIAogCW5ldGlmX2NhcnJpZXJfb2ZmKHNkYXRhLSZndDtkZXYpOwogCkBAIC0xMjIyLDYgJiM0MzsxMjIzLDEzIEBAIHZvaWQgaWVlZTgwMjExX3N0b3BfbWVzaChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSkKIAlSQ1VfSU5JVF9QT0lOVEVSKGlmbXNoLSZndDtiZWFjb24sIE5VTEwpOwogCWtmcmVlX3JjdShiY24sIHJjdV9oZWFkKTsKIAomIzQzOwkvKiBmcmVlIGFueSBwZW5kaW5nLCB1bmZpbmlzaGVkIGNoYW5uZWwgc3dpdGNoICovCiYjNDM7CWNzYSA9IHNkYXRhX2RlcmVmZXJlbmNlKGlmbXNoLSZndDtjc2EsIHNkYXRhKTsKJiM0MzsJaWYgKGNzYSkgewomIzQzOwkJUkNVX0lOSVRfUE9JTlRFUihpZm1zaC0mZ3Q7Y3NhLCBOVUxMKTsKJiM0MzsJCWtmcmVlX3JjdShjc2EsIHJjdV9oZWFkKTsKJiM0MzsJfQomIzQzOwogCS8qIGZyZWUgYWxsIHBvdGVudGlhbGx5IHN0aWxsIGJ1ZmZlcmVkIGdyb3VwLWFkZHJlc3NlZCBmcmFtZXMgKi8KIAlsb2NhbC0mZ3Q7dG90YWxfcHNfYnVmZmVyZWQgLT0gc2tiX3F1ZXVlX2xlbigmYW1wO2lmbXNoLSZndDtwcy5iY19idWYpOwogCXNrYl9xdWV1ZV9wdXJnZSgmYW1wO2lmbXNoLSZndDtwcy5iY19idWYpOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwNjo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjUyCgkJCQkJCQlvdXRwdXQ6IDIyCgkJCQkJCQl0aG91Z2h0czogMjAxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFBhdGNoIGluIG5ldC9tYWM4MDIxMS9tZXNoLmMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0d2Vha3MgYG5ldC9tYWM4MDIxMS9tZXNoLmNgLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIG1vZGlmeWluZyB0aGUgYGllZWU4MDIxMV9zdG9wX21lc2hgIGZ1bmN0aW9uLiBUaGUga2V5IGNoYW5nZSBzZWVtcyB0byBiZSBmcmVlaW5nIGBpZm1zaC0mZ3Q7Y3NhYCBpZiBpdCYjMzk7cyBub3QgbnVsbC4gVGhpcyBpcyBwcm9iYWJseSBhIGJ1ZyBmaXgsIGxpa2VseSBhZGRyZXNzaW5nIGEgbWVtb3J5IGxlYWsgb3IgYSBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgc2l0dWF0aW9uIOKAkyBnb29kIGNhdGNoLgoKTm93LCBteSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byB1bmRlcnN0YW5kIHRoZSBpbXBhY3Qgb2YgdGhpcyBjaGFuZ2UuIElzIHRoaXMgYGllZWU4MDIxMV9zdG9wX21lc2hgIGZ1bmN0aW9uIGV2ZW4gcmVhY2hhYmxlPyBJdCYjMzk7cyBwYXJ0IG9mIHRoZSBtYWM4MDIxMSBtZXNoIG5ldHdvcmtpbmcgc3Vic3lzdGVtLCBzbyBJIGtub3cgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCB0aGF0IHNwZWNpZmljIGZ1bmN0aW9uYWxpdHkuIEFuZCB0aGF0JiMzOTtzIGludGVyZXN0aW5nIGJlY2F1c2UgbWFjODAyMTEgaXMgc29tZXRoaW5nIHdlIGNhbiBmdXp6LCBlc3BlY2lhbGx5IHdpdGggdGhlIGBtYWM4MDIxMV9od3NpbWAgbW9kdWxlLiBJdCYjMzk7ZCBiZSBncmVhdCB0byB0ZXN0IHRoaXMgZml4IHRob3JvdWdobHkuCgpJIG5lZWQgdG8gY29uZmlybSB0aGUgY29uZmlndXJhdGlvbiBvcHRpb24gZm9yIG1hYzgwMjExIG1lc2ggc3VwcG9ydC4gSXQmIzM5O3MgcHJvYmFibHkgYENPTkZJR19NQUM4MDIxMV9NRVNIYCwgcmlnaHQ/IEJ1dCwganVzdCB0byBiZSBzdXJlLCBpcyB0aGVyZSBzb21ldGhpbmcgZWxzZSByZWxhdGVkIHRvIHRoaXM/IEkgYmV0dGVyIHZlcmlmeSBpdCYjMzk7cyB0aGUgb25seSBvbmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDY6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TUFDODAyMTFfTUVTSCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL21pcHMvY29uZmlncy9tYWx0YV9kZWZjb25maWc9MjA3PUNPTkZJR19NQUM4MDIxMT1tXG5hcmNoL21pcHMvY29uZmlncy9tYWx0YV9kZWZjb25maWc6MjA4OkNPTkZJR19NQUM4MDIxMV9NRVNIPXlcbmFyY2gvbWlwcy9jb25maWdzL21hbHRhX2RlZmNvbmZpZy0yMDktQ09ORklHX1JGS0lMTD1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGFfa3ZtX2RlZmNvbmZpZz0yMTE9Q09ORklHX01BQzgwMjExPW1cbmFyY2gvbWlwcy9jb25maWdzL21hbHRhX2t2bV9kZWZjb25maWc6MjEyOkNPTkZJR19NQUM4MDIxMV9NRVNIPXlcbmFyY2gvbWlwcy9jb25maWdzL21hbHRhX2t2bV9kZWZjb25maWctMjEzLUNPTkZJR19SRktJTEw9bVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL21hbHRhdXBfeHBhX2RlZmNvbmZpZz0yMDg9Q09ORklHX01BQzgwMjExPW1cbmFyY2gvbWlwcy9jb25maWdzL21hbHRhdXBfeHBhX2RlZmNvbmZpZzoyMDk6Q09ORklHX01BQzgwMjExX01FU0g9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGF1cF94cGFfZGVmY29uZmlnLTIxMC1DT05GSUdfUkZLSUxMPW1cbi0tXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2eHhfZGVmY29uZmlnPTI4Nj1DT05GSUdfTUFDODAyMTE9bVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNnh4X2RlZmNvbmZpZzoyODc6Q09ORklHX01BQzgwMjExX01FU0g9eVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNnh4X2RlZmNvbmZpZy0yODgtQ09ORklHX01BQzgwMjExX0xFRFM9eVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmM9OTYzMD1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBhdGgxMGtfaWZfbGltaXRzW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYy05NjQ2LVx0XHQudHlwZXNcdD0gQklUKE5MODAyMTFfSUZUWVBFX0FQKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYzo5NjQ3OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYy05NjQ4LVx0XHRcdHwgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYz05NjUzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IGF0aDEwa18xMHhfaWZfbGltaXRzW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYy05NjU2LVx0XHQudHlwZXNcdD0gQklUKE5MODAyMTFfSUZUWVBFX0FQKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYzo5NjU3OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYy05NjU4LVx0XHRcdHwgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYz05Njk0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IGF0aDEwa190bHZfaWZfbGltaXRbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jLTk3MDEtXHRcdC50eXBlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9BUCkgfFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYzo5NzAyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYy05NzAzLVx0XHRcdCBCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVCkgfFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmM9OTcxND1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBhdGgxMGtfdGx2X3Fjc19pZl9saW1pdFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMtOTcyNS1cdFx0LnR5cGVzID0gQklUKE5MODAyMTFfSUZUWVBFX0FQKSB8XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jOjk3MjY6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jLTk3MjctXHRcdFx0IEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKSB8XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYz05Nzg3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IGF0aDEwa18xMF80X2lmX2xpbWl0c1tdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMtOTc5NC1cdFx0LnR5cGVzXHQ9IEJJVChOTDgwMjExX0lGVFlQRV9BUClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmM6OTc5NTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMtOTc5Ni1cdFx0XHR8IEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvbWFjLmM9MTAyODY9c3RhdGljIGludCBhdGgxMWtfbWFjX3NldHVwX2lmYWNlX2NvbWJpbmF0aW9ucyhzdHJ1Y3QgYXRoMTFrICphcilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL21hYy5jLTEwMzE5LVx0bGltaXRzWzFdLnR5cGVzIHw9IEJJVChOTDgwMjExX0lGVFlQRV9BUCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL21hYy5jOjEwMzIwOlx0aWYgKElTX0VOQUJMRUQoQ09ORklHX01BQzgwMjExX01FU0gpIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9tYWMuYy0xMDMyMS1cdCAgICBhYi1cdTAwM2Vod19wYXJhbXMuaW50ZXJmYWNlX21vZGVzIFx1MDAyNiBCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVCkpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYz0xNDM2Nz1zdGF0aWMgYm9vbCBhdGgxMmtfbWFjX2lzX2lmYWNlX21vZGVfZW5hYmxlKHN0cnVjdCBhdGgxMmtfaHcgKmFoLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmMtMTQzNzUtXHRpZiAodHlwZSA9PSBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jOjE0Mzc2Olx0XHRpZiAoSVNfRU5BQkxFRChDT05GSUdfTUFDODAyMTFfTUVTSCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTE0Mzc3LVx0XHRcdG1vZGUgPSBCSVQodHlwZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYz0xNDM5ND1hdGgxMmtfbWFjX3NldHVwX3JhZGlvX2lmYWNlX2NvbWIoc3RydWN0IGF0aDEyayAqYXIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYy0xNDQwNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmM6MTQ0MDU6XHRtZXNoID0gSVNfRU5BQkxFRChDT05GSUdfTUFDODAyMTFfTUVTSCkgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTE0NDA2LVx0ICAgICAgIChpbnRlcmZhY2VfbW9kZXMgXHUwMDI2IEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDVrL2Jhc2UuYz0yNTU4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IGlmX2xpbWl0c1tdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg1ay9iYXNlLmMtMjU2MC1cdHsgLm1heCA9IDQsXHQudHlwZXMgPVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDVrL2Jhc2UuYzoyNTYxOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDVrL2Jhc2UuYy0yNTYyLVx0XHRcdFx0IEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKSB8XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2h0Y19kcnZfaW5pdC5jPTY5NT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBpZl9saW1pdHNbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaHRjX2Rydl9pbml0LmMtNjk4LVx0eyAubWF4ID0gMixcdC50eXBlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9BUCkgfFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2h0Y19kcnZfaW5pdC5jOjY5OTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9odGNfZHJ2X2luaXQuYy03MDAtXHRcdFx0XHQgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpIHxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaW5pdC5jPTgyOT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBpZl9saW1pdHNbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaW5pdC5jLTgzMS1cdHsgLm1heCA9IDgsXHQudHlwZXMgPVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2luaXQuYzo4MzI6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaW5pdC5jLTgzMy1cdFx0XHRcdCBCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVCkgfFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9mdy5jPTIyMz1zdGF0aWMgaW50IGNhcmw5MTcwX2Z3KHN0cnVjdCBhcjkxNzAgKmFyLCBjb25zdCBfX3U4ICpkYXRhLCBzaXplX3QgbGVuKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9mdy5jLTM0Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9mdy5jOjM0MzojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9mdy5jLTM0NC1cdFx0XHRpZl9jb21iX3R5cGVzIHw9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvZncuYy0zNDUtXHRcdFx0XHRCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvZncuYzozNDY6I2VuZGlmIC8qIENPTkZJR19NQUM4MDIxMV9NRVNIICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvZncuYy0zNDctXHRcdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmM9NTE4PW10NzZfYWxsb2NfcGh5KHN0cnVjdCBtdDc2X2RldiAqZGV2LCB1bnNpZ25lZCBpbnQgc2l6ZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtNTM5LVx0XHRCSVQoTkw4MDIxMV9JRlRZUEVfQVApIHxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYzo1NDA6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtNTQxLVx0XHRCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVCkgfFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYz02Njk9bXQ3Nl9hbGxvY19kZXZpY2Uoc3RydWN0IGRldmljZSAqcGRldiwgdW5zaWduZWQgaW50IHNpemUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTcxMS1cdFx0QklUKE5MODAyMTFfSUZUWVBFX0FQKSB8XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmM6NzEyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTcxMy1cdFx0QklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpIHxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM9MzE1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IGlmX2xpbWl0c1tdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zMjEtXHRcdC50eXBlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9TVEFUSU9OKSB8XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MzIyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTMyMy1cdFx0XHQgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpIHxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9pbml0LmM9MjI5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IGlmX2xpbWl0c1tdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2luaXQuYy0yMzUtXHRcdC50eXBlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9BUCkgfFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvaW5pdC5jOjIzNjojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2luaXQuYy0yMzctXHRcdFx0IEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKSB8XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3V0aWwuYz0zMz1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBtdDc2eDAyX2lmX2xpbWl0c1tdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91dGlsLmMtMzktXHRcdC50eXBlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9TVEFUSU9OKSB8XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXRpbC5jOjQwOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3V0aWwuYy00MS1cdFx0XHQgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpIHxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXRpbC5jPTQ5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IG10NzZ4MDJ1X2lmX2xpbWl0c1tdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91dGlsLmMtNTUtXHRcdC50eXBlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9TVEFUSU9OKSB8XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXRpbC5jOjU2OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3V0aWwuYy01Ny1cdFx0XHQgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpIHxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9MTU9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfaWZhY2VfbGltaXQgaWZfbGltaXRzW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTIxLVx0XHQudHlwZXMgPSBCSVQoTkw4MDIxMV9JRlRZUEVfQVApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MjI6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMjMtXHRcdFx0IHwgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTkzMD1tdDc5MTVfc2V0X3N0cmVhbV9oZV90eGJmX2NhcHMoc3RydWN0IG10NzkxNV9waHkgKnBoeSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtOTQ1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjk0NjojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy05NDctXHRpZiAodmlmID09IE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTEwMjA9bXQ3OTE1X2luaXRfaGVfY2FwcyhzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5LCBlbnVtIG5sODAyMTFfYmFuZCBiYW5kLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMDU5LVx0XHRjYXNlIE5MODAyMTFfSUZUWVBFX0FQOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjEwNjA6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTA2MS1cdFx0Y2FzZSBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UOlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xNz1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBpZl9saW1pdHNfZ2xvYmFsID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0yMS1cdFx0IHwgQklUKE5MODAyMTFfSUZUWVBFX0FQKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjIyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTIzLVx0XHQgfCBCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9NTE9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfaWZhY2VfbGltaXQgaWZfbGltaXRzW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTU0LVx0XHQudHlwZXMgPSBCSVQoTkw4MDIxMV9JRlRZUEVfQVApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NTU6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNTYtXHRcdFx0IHwgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTEzNTA9bXQ3OTk2X3NldF9zdHJlYW1faGVfdHhiZl9jYXBzKHN0cnVjdCBtdDc5OTZfcGh5ICpwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTEzNTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTM1OTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMzYwLVx0aWYgKHZpZiA9PSBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xNjk5PV9fbXQ3OTk2X3NldF9zdHJlYW1faGVfZWh0X2NhcHMoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTcwOS1cdFx0Y2FzZSBOTDgwMjExX0lGVFlQRV9BUDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNzEwOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE3MTEtXHRcdGNhc2UgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVDpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MngwMGRldi5jPTEzMjY9c3RhdGljIGlubGluZSB2b2lkIHJ0MngwMGxpYl9zZXRfaWZfY29tYmluYXRpb25zKHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDJ4MDBkZXYuYy0xMzM5LVx0aWZfbGltaXQtXHUwMDNldHlwZXMgPSBCSVQoTkw4MDIxMV9JRlRZUEVfQVApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDJ4MDBkZXYuYzoxMzQwOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDJ4MDBkZXYuYy0xMzQxLVx0aWZfbGltaXQtXHUwMDNldHlwZXMgfD0gQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyeDAwZGV2LmM9MTM3ND1pbnQgcnQyeDAwbGliX3Byb2JlX2RldihzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyeDAwZGV2LmMtMTQ1OS1cdFx0ICAgIEJJVChOTDgwMjExX0lGVFlQRV9BREhPQykgfFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDJ4MDBkZXYuYzoxNDYwOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDJ4MDBkZXYuYy0xNDYxLVx0XHQgICAgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpIHxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy90aS93bDE4eHgvbWFpbi5jPTE4NzY9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfaWZhY2VfbGltaXQgd2wxOHh4X2lmYWNlX2xpbWl0c1tdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3RpL3dsMTh4eC9tYWluLmMtMTg4NS1cdFx0XHQgfCBCSVQoTkw4MDIxMV9JRlRZUEVfUDJQX0NMSUVOVClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3RpL3dsMTh4eC9tYWluLmM6MTg4NjojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3RpL3dsMTh4eC9tYWluLmMtMTg4Ny1cdFx0XHQgfCBCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy90aS93bDE4eHgvbWFpbi5jPTE4OTY9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfaWZhY2VfbGltaXQgd2wxOHh4X2lmYWNlX2FwX2xpbWl0c1tdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3RpL3dsMTh4eC9tYWluLmMtMTkwMC1cdH0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy90aS93bDE4eHgvbWFpbi5jOjE5MDE6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5kcml2ZXJzL25ldC93aXJlbGVzcy90aS93bDE4eHgvbWFpbi5jLTE5MDItXHR7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdGkvd2xjb3JlL21haW4uYz02MjA5PXN0YXRpYyBpbnQgd2wxMjcxX2luaXRfaWVlZTgwMjExKHN0cnVjdCB3bDEyNzEgKndsKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3RpL3dsY29yZS9tYWluLmMtNjI0NS1cdFx0XHRcdFx0IEJJVChOTDgwMjExX0lGVFlQRV9QMlBfQ0xJRU5UKSB8XG5kcml2ZXJzL25ldC93aXJlbGVzcy90aS93bGNvcmUvbWFpbi5jOjYyNDY6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5kcml2ZXJzL25ldC93aXJlbGVzcy90aS93bGNvcmUvbWFpbi5jLTYyNDctXHRcdFx0XHRcdCBCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVCkgfFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvbWFjODAyMTFfaHdzaW1fbWFpbi5jPTQ1MTg9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfc2JhbmRfaWZ0eXBlX2RhdGEgc2JhbmRfY2FwYV8yZ2h6W10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9tYWM4MDIxMV9od3NpbV9tYWluLmMtNDc1MS1cdH0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltX21haW4uYzo0NzUyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9tYWM4MDIxMV9od3NpbV9tYWluLmMtNDc1My1cdHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltX21haW4uYz00Nzk1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3NiYW5kX2lmdHlwZV9kYXRhIHNiYW5kX2NhcGFfNWdoeltdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvbWFjODAyMTFfaHdzaW1fbWFpbi5jLTUwNjEtXHR9LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9tYWM4MDIxMV9od3NpbV9tYWluLmM6NTA2MjojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvbWFjODAyMTFfaHdzaW1fbWFpbi5jLTUwNjMtXHR7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9tYWM4MDIxMV9od3NpbV9tYWluLmM9NTEwOD1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9zYmFuZF9pZnR5cGVfZGF0YSBzYmFuZF9jYXBhXzZnaHpbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltX21haW4uYy01NDE2LVx0fSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvbWFjODAyMTFfaHdzaW1fbWFpbi5jOjU0MTc6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltX21haW4uYy01NDE4LVx0e1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvbWFjODAyMTFfaHdzaW1fbWFpbi5jPTU2MDg9c3RhdGljIHZvaWQgbWFjODAyMTFfaHdzaW1fc2JhbmRfY2FwYWIoc3RydWN0IGllZWU4MDIxMV9zdXBwb3J0ZWRfYmFuZCAqc2JhbmQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9tYWM4MDIxMV9od3NpbV9tYWluLmMtNTYyNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvbWFjODAyMTFfaHdzaW1fbWFpbi5jOjU2MjU6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltX21haW4uYy01NjI2LSNkZWZpbmUgSFdTSU1fTUVTSF9CSVQgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpXG4tLVxuaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaD0xNDQ9c3RhdGljIGlubGluZSBib29sIGRldl94bWl0X2NvbXBsZXRlKGludCByYylcbi0tXG5pbmNsdWRlL2xpbnV4L25ldGRldmljZS5oLTE2NS0jZWxpZiBkZWZpbmVkKENPTkZJR19XTEFOKVxuaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaDoxNjY6IyBpZiBkZWZpbmVkKENPTkZJR19NQUM4MDIxMV9NRVNIKVxuaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaC0xNjctIyAgZGVmaW5lIExMX01BWF9IRUFERVIgMTI4XG4tLVxuaW5jbHVkZS9uZXQvbWFjODAyMTEuaD0yMzA3PXN0YXRpYyBpbmxpbmUgYm9vbCBpZWVlODAyMTFfdmlmX2lzX21lc2goc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZilcbmluY2x1ZGUvbmV0L21hYzgwMjExLmgtMjMwOC17XG5pbmNsdWRlL25ldC9tYWM4MDIxMS5oOjIzMDk6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5pbmNsdWRlL25ldC9tYWM4MDIxMS5oLTIzMTAtXHRyZXR1cm4gdmlmLVx1MDAzZXR5cGUgPT0gTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz02MD1jb25maWcgTUFDODAyMTFfS1VOSVRfVEVTVFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTY5LVxubmV0L21hYzgwMjExL0tjb25maWc6NzA6Y29uZmlnIE1BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTcxLVx0Ym9vbCBcJiMzNDtFbmFibGUgbWFjODAyMTEgbWVzaCBuZXR3b3JraW5nIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0yMDk9Y29uZmlnIE1BQzgwMjExX01QTF9ERUJVR1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIxMS1cdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWc6MjEyOlx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMTMtXHRoZWxwXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MjIyPWNvbmZpZyBNQUM4MDIxMV9NUEFUSF9ERUJVR1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyNC1cdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWc6MjI1Olx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjYtXHRoZWxwXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MjM1PWNvbmZpZyBNQUM4MDIxMV9NSFdNUF9ERUJVR1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNy1cdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWc6MjM4Olx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMzktXHRoZWxwXG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjQ3LVxubmV0L21hYzgwMjExL0tjb25maWc6MjQ4OmNvbmZpZyBNQUM4MDIxMV9NRVNIX1NZTkNfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0OS1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIHN5bmNocm9uaXphdGlvbiBkZWJ1Z2dpbmdcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1MC1cdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWc6MjUxOlx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNTItXHRoZWxwXG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjU4LVxubmV0L21hYzgwMjExL0tjb25maWc6MjU5OmNvbmZpZyBNQUM4MDIxMV9NRVNIX0NTQV9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjYwLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggY2hhbm5lbCBzd2l0Y2ggZGVidWdnaW5nXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNjEtXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI2MjpcdGRlcGVuZHMgb24gTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL0tjb25maWctMjYzLVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2OS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI3MDpjb25maWcgTUFDODAyMTFfTUVTSF9QU19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjcxLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggcG93ZXJzYXZlIGRlYnVnZ2luZ1wmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWctMjcyLVx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNzM6XHRkZXBlbmRzIG9uIE1BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI3NC1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU9NDE9bWFjODAyMTEtJChDT05GSUdfTUFDODAyMTFfREVCVUdGUykgJiM0Mzs9IFxcXG4tLVxubmV0L21hYzgwMjExL01ha2VmaWxlLTQ2LVxubmV0L21hYzgwMjExL01ha2VmaWxlOjQ3Om1hYzgwMjExLSQoQ09ORklHX01BQzgwMjExX01FU0gpICYjNDM7PSBcXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTQ4LVx0bWVzaC5vIFxcXG4tLVxubmV0L21hYzgwMjExL2NmZy5jPTYxMz1zdGF0aWMgaW50IGllZWU4MDIxMV9hZGRfa2V5KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsXG4tLVxubmV0L21hYzgwMjExL2NmZy5jLTcxMC1cdGNhc2UgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVDpcbm5ldC9tYWM4MDIxMS9jZmcuYzo3MTE6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvY2ZnLmMtNzEyLVx0XHRpZiAoc2RhdGEtXHUwMDNldS5tZXNoLnNlY3VyaXR5ICE9IElFRUU4MDIxMV9NRVNIX1NFQ19OT05FKVxuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYz0yMTkwPXN0YXRpYyB2b2lkIHN0YV9hcHBseV9tZXNoX3BhcmFtcyhzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCxcbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmMtMjE5My17XG5uZXQvbWFjODAyMTEvY2ZnLmM6MjE5NDojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9jZmcuYy0yMTk1LVx0c3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEgPSBzdGEtXHUwMDNlc2RhdGE7XG4tLVxubmV0L21hYzgwMjExL2NmZy5jPTI3ODc9c3RhdGljIGludCBpZWVlODAyMTFfY2hhbmdlX3N0YXRpb24oc3RydWN0IHdpcGh5ICp3aXBoeSxcbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmMtMjg5My1cbm5ldC9tYWM4MDIxMS9jZmcuYzoyODk0OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL2NmZy5jLTI4OTUtc3RhdGljIGludCBpZWVlODAyMTFfYWRkX21wYXRoKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4tLVxubmV0L21hYzgwMjExL2NmZy5jPTQ0Mjg9c3RhdGljIGludCBpZWVlODAyMTFfc2V0X2FmdGVyX2NzYV9iZWFjb24oc3RydWN0IGllZWU4MDIxMV9saW5rX2RhdGEgKmxpbmtfZGF0YSxcbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmMtNDQ1MS1cdFx0YnJlYWs7XG5uZXQvbWFjODAyMTEvY2ZnLmM6NDQ1MjojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9jZmcuYy00NDUzLVx0Y2FzZSBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UOlxuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYz00NTYzPXN0YXRpYyBpbnQgaWVlZTgwMjExX3NldF9jc2FfYmVhY29uKHN0cnVjdCBpZWVlODAyMTFfbGlua19kYXRhICpsaW5rX2RhdGEsXG4tLVxubmV0L21hYzgwMjExL2NmZy5jLTQ2NTQtXHRcdGJyZWFrO1xubmV0L21hYzgwMjExL2NmZy5jOjQ2NTU6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvY2ZnLmMtNDY1Ni1cdGNhc2UgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVDoge1xuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYz01OTc2PWNvbnN0IHN0cnVjdCBjZmc4MDIxMV9vcHMgbWFjODAyMTFfY29uZmlnX29wcyA9IHtcbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmMtNTk5Ni1cdC5kdW1wX3N1cnZleSA9IGllZWU4MDIxMV9kdW1wX3N1cnZleSxcbm5ldC9tYWM4MDIxMS9jZmcuYzo1OTk3OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL2NmZy5jLTU5OTgtXHQuYWRkX21wYXRoID0gaWVlZTgwMjExX2FkZF9tcGF0aCxcbi0tXG5uZXQvbWFjODAyMTEvZGVidWcuaC01Mi1cbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjUzOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSF9TWU5DX0RFQlVHXG5uZXQvbWFjODAyMTEvZGVidWcuaDo1NDojZGVmaW5lIE1BQzgwMjExX01FU0hfU1lOQ19ERUJVRyAxXG5uZXQvbWFjODAyMTEvZGVidWcuaC01NS0jZWxzZVxubmV0L21hYzgwMjExL2RlYnVnLmg6NTY6I2RlZmluZSBNQUM4MDIxMV9NRVNIX1NZTkNfREVCVUcgMFxubmV0L21hYzgwMjExL2RlYnVnLmgtNTctI2VuZGlmXG5uZXQvbWFjODAyMTEvZGVidWcuaC01OC1cbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjU5OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSF9DU0FfREVCVUdcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjYwOiNkZWZpbmUgTUFDODAyMTFfTUVTSF9DU0FfREVCVUcgMVxubmV0L21hYzgwMjExL2RlYnVnLmgtNjEtI2Vsc2Vcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjYyOiNkZWZpbmUgTUFDODAyMTFfTUVTSF9DU0FfREVCVUcgMFxubmV0L21hYzgwMjExL2RlYnVnLmgtNjMtI2VuZGlmXG5uZXQvbWFjODAyMTEvZGVidWcuaC02NC1cbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjY1OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSF9QU19ERUJVR1xubmV0L21hYzgwMjExL2RlYnVnLmg6NjY6I2RlZmluZSBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHIDFcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTY3LSNlbHNlXG5uZXQvbWFjODAyMTEvZGVidWcuaDo2ODojZGVmaW5lIE1BQzgwMjExX01FU0hfUFNfREVCVUcgMFxubmV0L21hYzgwMjExL2RlYnVnLmgtNjktI2VuZGlmXG4tLVxubmV0L21hYzgwMjExL2RlYnVnLmg9MTI1PWRvIHtcdFx0XHRcdFx0XHRcdFx0XHRcXFxuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTIxOC0jZGVmaW5lIG1zeW5jX2RiZyhzZGF0YSwgZm10LCAuLi4pXHRcdFx0XHRcdFxcXG5uZXQvbWFjODAyMTEvZGVidWcuaDoyMTk6XHRfc2RhdGFfZGJnKE1BQzgwMjExX01FU0hfU1lOQ19ERUJVRyxcdFx0XHRcdFxcXG5uZXQvbWFjODAyMTEvZGVidWcuaC0yMjAtXHRcdCAgIHNkYXRhLCBmbXQsICMjX19WQV9BUkdTX18pXG4tLVxubmV0L21hYzgwMjExL2RlYnVnLmgtMjIyLSNkZWZpbmUgbWNzYV9kYmcoc2RhdGEsIGZtdCwgLi4uKVx0XHRcdFx0XHRcXFxubmV0L21hYzgwMjExL2RlYnVnLmg6MjIzOlx0X3NkYXRhX2RiZyhNQUM4MDIxMV9NRVNIX0NTQV9ERUJVRyxcdFx0XHRcdFxcXG5uZXQvbWFjODAyMTEvZGVidWcuaC0yMjQtXHRcdCAgIHNkYXRhLCBmbXQsICMjX19WQV9BUkdTX18pXG4tLVxubmV0L21hYzgwMjExL2RlYnVnLmgtMjI2LSNkZWZpbmUgbXBzX2RiZyhzZGF0YSwgZm10LCAuLi4pXHRcdFx0XHRcdFxcXG5uZXQvbWFjODAyMTEvZGVidWcuaDoyMjc6XHRfc2RhdGFfZGJnKE1BQzgwMjExX01FU0hfUFNfREVCVUcsXHRcdFx0XHRcXFxubmV0L21hYzgwMjExL2RlYnVnLmgtMjI4LVx0XHQgICBzZGF0YSwgZm10LCAjI19fVkFfQVJHU19fKVxuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jPTczNj1JRUVFODAyMTFfSUZfTElOS19GSUxFKGFkZHIsIGNvbmYtXHUwMDNlYWRkciwgTUFDKTtcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTczNy1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jOjczODojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTczOS1JRUVFODAyMTFfSUZfRklMRShlc3RhYl9wbGlua3MsIHUubWVzaC5lc3RhYl9wbGlua3MsIEFUT01JQyk7XG4tLVxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmM9ODY4PXN0YXRpYyB2b2lkIGFkZF9pYnNzX2ZpbGVzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTg3Mi1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jOjg3MzojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTg3NC1cbi0tXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuYz05Mzc9c3RhdGljIHZvaWQgYWRkX2ZpbGVzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTk0OS1cdGNhc2UgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVDpcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jOjk1MDojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTk1MS1cdFx0YWRkX21lc2hfZmlsZXMoc2RhdGEpO1xuLS1cbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oPTc3MD1zdHJ1Y3QgaWVlZTgwMjExX2lmX21lc2gge1xuLS1cbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTg1MC1cbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oOjg1MTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTg1Mi0jZGVmaW5lIElFRUU4MDIxMV9JRlNUQV9NRVNIX0NUUl9JTkMobXNoLCBuYW1lKVx0XFxcbi0tXG5uZXQvbWFjODAyMTEvbWFpbi5jPTExMzc9aW50IGllZWU4MDIxMV9yZWdpc3Rlcl9odyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcbi0tXG5uZXQvbWFjODAyMTEvbWFpbi5jLTEzOTItXG5uZXQvbWFjODAyMTEvbWFpbi5jOjEzOTM6I2lmbmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL21haW4uYy0xMzk0LVx0LyogbWVzaCBkZXBlbmRzIG9uIEtjb25maWcsIGJ1dCBkcml2ZXJzIHNob3VsZCBzZXQgaXQgaWYgdGhleSB3YW50ICovXG4tLVxubmV0L21hYzgwMjExL21lc2guaD0zNzg9dm9pZCBtZXNoX3BhdGhfcmVmcmVzaChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbi0tXG5uZXQvbWFjODAyMTEvbWVzaC5oLTM4MC1cbm5ldC9tYWM4MDIxMS9tZXNoLmg6MzgxOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL21lc2guaC0zODItc3RhdGljIGlubGluZVxuLS1cbm5ldC9tYWM4MDIxMS9vZmZjaGFubmVsLmM9ODEwPWludCBpZWVlODAyMTFfbWdtdF90eChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxuLS1cbm5ldC9tYWM4MDIxMS9vZmZjaGFubmVsLmMtODM5LVx0XHRcdG5lZWRfb2ZmY2hhbiA9IHRydWU7XG5uZXQvbWFjODAyMTEvb2ZmY2hhbm5lbC5jOjg0MDojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9vZmZjaGFubmVsLmMtODQxLVx0XHRmYWxsdGhyb3VnaDtcbi0tXG5uZXQvbWFjODAyMTEvcnguYz0yNzk0PWllZWU4MDIxMV9kZWxpdmVyX3NrYihzdHJ1Y3QgaWVlZTgwMjExX3J4X2RhdGEgKnJ4KVxuLS1cbm5ldC9tYWM4MDIxMS9yeC5jLTI4OTMtXG5uZXQvbWFjODAyMTEvcnguYzoyODk0OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL3J4LmMtMjg5NS1zdGF0aWMgYm9vbFxuLS1cbm5ldC9tYWM4MDIxMS9yeC5jPTI5NjE9aWVlZTgwMjExX3J4X21lc2hfZGF0YShzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSwgc3RydWN0IHN0YV9pbmZvICpzdGEsXG4tLVxubmV0L21hYzgwMjExL3J4LmMtMjk2My17XG5uZXQvbWFjODAyMTEvcnguYzoyOTY0OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL3J4LmMtMjk2NS1cdHN0cnVjdCBpZWVlODAyMTFfaWZfbWVzaCAqaWZtc2ggPSBcdTAwMjZzZGF0YS1cdTAwM2V1Lm1lc2g7XG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM9NDY4PXZvaWQgc3RhX2luZm9fZnJlZShzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCwgc3RydWN0IHN0YV9pbmZvICpzdGEpXG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtNTA2LVx0a2ZyZWUocmN1X2RlcmVmZXJlbmNlX3JhdyhzdGEtXHUwMDNlc3RhLnJhdGVzKSk7XG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYzo1MDc6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy01MDgtXHRrZnJlZShzdGEtXHUwMDNlbWVzaCk7XG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM9NjMzPV9fc3RhX2luZm9fYWxsb2Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtNjY3LVx0d2lwaHlfd29ya19pbml0KFx1MDAyNnN0YS1cdTAwM2VhbXBkdV9tbG1lLndvcmssIGllZWU4MDIxMV9iYV9zZXNzaW9uX3dvcmspO1xubmV0L21hYzgwMjExL3N0YV9pbmZvLmM6NjY4OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtNjY5LVx0aWYgKGllZWU4MDIxMV92aWZfaXNfbWVzaChcdTAwMjZzZGF0YS1cdTAwM2V2aWYpKSB7XG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtNzk1LVx0c3RhX2luZm9fZnJlZV9saW5rKFx1MDAyNnN0YS1cdTAwM2VkZWZsaW5rKTtcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jOjc5NjojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTc5Ny1cdGtmcmVlKHN0YS1cdTAwM2VtZXNoKTtcbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYz0xMTA3PXN0YXRpYyB2b2lkIF9fc3RhX2luZm9fcmVjYWxjX3RpbShzdHJ1Y3Qgc3RhX2luZm8gKnN0YSwgYm9vbCBpZ25vcmVfcGVuZGluZylcbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy0xMTIxLVx0XHRwcyA9IFx1MDAyNnN0YS1cdTAwM2VzZGF0YS1cdTAwM2Vic3MtXHUwMDNlcHM7XG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYzoxMTIyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtMTEyMy1cdH0gZWxzZSBpZiAoaWVlZTgwMjExX3ZpZl9pc19tZXNoKFx1MDAyNnN0YS1cdTAwM2VzZGF0YS1cdTAwM2V2aWYpKSB7XG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM9Mjc0Mz1zdGF0aWMgaW5saW5lIHU2NCBzdGFfZ2V0X3N0YXRzX2J5dGVzKHN0cnVjdCBpZWVlODAyMTFfc3RhX3J4X3N0YXRzICpyeHN0YXRzKVxuLS1cbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTI3NTUtXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYzoyNzU2OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtMjc1Ny1zdGF0aWMgdm9pZCBzdGFfc2V0X21lc2hfc2luZm8oc3RydWN0IHN0YV9pbmZvICpzdGEsXG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM9MzA3OT12b2lkIHN0YV9zZXRfc2luZm8oc3RydWN0IHN0YV9pbmZvICpzdGEsIHN0cnVjdCBzdGF0aW9uX2luZm8gKnNpbmZvLFxuLS1cbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTMyNjQtXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYzozMjY1OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtMzI2Ni1cdGlmIChpZWVlODAyMTFfdmlmX2lzX21lc2goXHUwMDI2c2RhdGEtXHUwMDNldmlmKSlcbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaD03MTU9c3RydWN0IHN0YV9pbmZvIHtcbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaC03MzItXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaDo3MzM6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaC03MzQtXHRzdHJ1Y3QgbWVzaF9zdGEgKm1lc2g7XG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmg9ODAwPXN0YXRpYyBpbmxpbmUgZW51bSBubDgwMjExX3BsaW5rX3N0YXRlIHN0YV9wbGlua19zdGF0ZShzdHJ1Y3Qgc3RhX2luZm8gKnN0YSlcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oLTgwMS17XG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaDo4MDI6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaC04MDMtXHRyZXR1cm4gc3RhLVx1MDAzZW1lc2gtXHUwMDNlcGxpbmtfc3RhdGU7XG4tLVxubmV0L21hYzgwMjExL3R4LmM9MjUwNz1pbnQgaWVlZTgwMjExX2xvb2t1cF9yYV9zdGEoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL3R4LmMtMjUzMS1cdFx0YnJlYWs7XG5uZXQvbWFjODAyMTEvdHguYzoyNTMyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL3R4LmMtMjUzMy1cdGNhc2UgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVDpcbi0tXG5uZXQvbWFjODAyMTEvdHguYz0yNjQ4PXN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqaWVlZTgwMjExX2J1aWxkX2hkcihzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbi0tXG5uZXQvbWFjODAyMTEvdHguYy0yNzQ3LVx0XHRicmVhaztcbm5ldC9tYWM4MDIxMS90eC5jOjI3NDg6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvdHguYy0yNzQ5LVx0Y2FzZSBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UOlxuLS1cbm5ldC9tYWM4MDIxMS90eC5jLTMwMDktXG5uZXQvbWFjODAyMTEvdHguYzozMDEwOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL3R4LmMtMzAxMS1cdGlmIChtZXNoaGRybGVuIFx1MDAzZSAwKVxuLS1cbm5ldC93aXJlbGVzcy9jb3JlLmM9MTcwNz1zdGF0aWMgaW50IGNmZzgwMjExX25ldGRldl9ub3RpZmllcl9jYWxsKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsXG4tLVxubmV0L3dpcmVsZXNzL2NvcmUuYy0xNzg5LSNlbmRpZlxubmV0L3dpcmVsZXNzL2NvcmUuYzoxNzkwOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L3dpcmVsZXNzL2NvcmUuYy0xNzkxLVx0XHRjYXNlIE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQ6XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDY6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTQ5ODIKCQkJCQkJCW91dHB1dDogMjUKCQkJCQkJCXRob3VnaHRzOiA0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duOgoKKipNZXNoIENvbmZpZ3VyYXRpb24gQ2hlY2sqKgoKQWxyaWdodCwgeWVwLCBjb25maXJtZWQuIFdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYENPTkZJR19NQUM4MDIxMV9NRVNIYC4gVGhhdCYjMzk7cyB0aGUga2V5LiBOb3csIGxldCYjMzk7cyBqdXN0IHF1aWNrbHkgdmVyaWZ5IHNvbWV0aGluZyBjcnVjaWFsOiBjYW4gd2UgYWN0dWFsbHkgcmVhY2ggYGllZWU4MDIxMV9zdG9wX21lc2hgPyBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IGZ1bmN0aW9uIGlzIGFjY2Vzc2libGUgYW5kIGRlZmluZWQgd2l0aGluIHRoZSBjdXJyZW50IGJ1aWxkIGVudmlyb25tZW50LCBzaW5jZSB0aGF0JiMzOTtzIGEgcHJldHR5IGZ1bmRhbWVudGFsIG9wZXJhdGlvbi4gR290dGEgY29uZmlybSB0aGF0IHRoZSBmdW5jdGlvbiBleGlzdHMgYW5kIGlzIGluIHNjb3BlIGJlZm9yZSB3ZSBkaXZlIGFueSBkZWVwZXIuIEl0JiMzOTtzIGEgZnVuZGFtZW50YWwgY2hlY2ssIG1ha2luZyBzdXJlIHdlIGhhdmVuJiMzOTt0IGdvdCBhbnkgbGlua2FnZSBwcm9ibGVtcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwNjo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpZWVlODAyMTFfc3RvcF9tZXNoJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9jZmcuYz0zMzI2PXN0YXRpYyBpbnQgaWVlZTgwMjExX2xlYXZlX21lc2goc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmMtMzMzMS1cbm5ldC9tYWM4MDIxMS9jZmcuYzozMzMyOlx0aWVlZTgwMjExX3N0b3BfbWVzaChzZGF0YSk7XG5uZXQvbWFjODAyMTEvY2ZnLmMtMzMzMy1cdGllZWU4MDIxMV9saW5rX3JlbGVhc2VfY2hhbm5lbChcdTAwMjZzZGF0YS1cdTAwM2VkZWZsaW5rKTtcbi0tXG5uZXQvbWFjODAyMTEvbWVzaC5jPTExNTg9aW50IGllZWU4MDIxMV9zdGFydF9tZXNoKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxuLS1cbm5ldC9tYWM4MDIxMS9tZXNoLmMtMTE4Ny1cdGlmIChpZWVlODAyMTFfbWVzaF9idWlsZF9iZWFjb24oaWZtc2gpKSB7XG5uZXQvbWFjODAyMTEvbWVzaC5jOjExODg6XHRcdGllZWU4MDIxMV9zdG9wX21lc2goc2RhdGEpO1xubmV0L21hYzgwMjExL21lc2guYy0xMTg5LVx0XHRyZXR1cm4gLUVOT01FTTtcbi0tXG5uZXQvbWFjODAyMTEvbWVzaC5jLTExOTgtXG5uZXQvbWFjODAyMTEvbWVzaC5jOjExOTk6dm9pZCBpZWVlODAyMTFfc3RvcF9tZXNoKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxubmV0L21hYzgwMjExL21lc2guYy0xMjAwLXtcbi0tXG5uZXQvbWFjODAyMTEvbWVzaC5oPTI3OT1pbnQgaWVlZTgwMjExX3N0YXJ0X21lc2goc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpO1xubmV0L21hYzgwMjExL21lc2guaDoyODA6dm9pZCBpZWVlODAyMTFfc3RvcF9tZXNoKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKTtcbm5ldC9tYWM4MDIxMS9tZXNoLmgtMjgxLXZvaWQgaWVlZTgwMjExX21lc2hfcm9vdF9zZXR1cChzdHJ1Y3QgaWVlZTgwMjExX2lmX21lc2ggKmlmbXNoKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwNjo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNTc0MAoJCQkJCQkJb3V0cHV0OiAxNwoJCQkJCQkJdGhvdWdodHM6IDQyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBhdGNoIGZvciBGb2N1cyBTeW1ib2wgSWRlbnRpZmljYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIHRyeWluZyB0byBmaWd1cmUgb3V0IHRoZSBiZXN0IGZvY3VzIHN5bWJvbCBmb3IgZnV6emluZyBhbmQgYW5hbHlzaXMuIEl0IGxvb2tzIGxpa2UgYGllZWU4MDIxMV9zdG9wX21lc2hgIGlzIHRoZSBrZXkuIFRoZSBmdW5jdGlvbiBgaWVlZTgwMjExX3N0b3BfbWVzaGAgaXMgY2FsbGVkIGZyb20gYm90aCBgaWVlZTgwMjExX2xlYXZlX21lc2hgIGFuZCBgaWVlZTgwMjExX3N0YXJ0X21lc2hgLiAgSW1wb3J0YW50bHksIGBpZWVlODAyMTFfbGVhdmVfbWVzaGAgaXRzZWxmIGlzIHJlYWNoZWQgdGhyb3VnaCB0aGUgc3RhbmRhcmQgYG1hYzgwMjExX2NvbmZpZ19vcHMubGVhdmVfbWVzaGAgd2hpY2ggaXMsIG9mIGNvdXJzZSwgYWNjZXNzaWJsZSBmcm9tIHVzZXJzcGFjZSB0aHJvdWdoIG5sODAyMTEuIFRoYXQgY29uZmlybXMgaXQmIzM5O3MgYSB2YWxpZCB0YXJnZXQgZm9yIGZ1enppbmcuCgpUaGUgY29yZSBvZiB0aGUgcGF0Y2ggaW52b2x2ZXMgZnJlZWluZyBgaWZtc2gtJmd0O2NzYWAgd2l0aGluIGBpZWVlODAyMTFfc3RvcF9tZXNoYCwgYWRkcmVzc2luZyBlaXRoZXIgYSBtZW1vcnkgbGVhayBvciB1c2UtYWZ0ZXItZnJlZSB2dWxuZXJhYmlsaXR5LiAgYGllZWU4MDIxMV9zdG9wX21lc2hgIGhhcyBnb3QgdG8gYmUgaW4gYEZvY3VzU3ltYm9sc2AsIGdpdmVuIGl0cyBkaXJlY3QgaW52b2x2ZW1lbnQgaW4gdGhlIGZpeC4gTGV0JiMzOTtzIG1ha2Ugc3VyZSB0aGUgYE1BQzgwMjExX01FU0hgIGNvbmZpZyBpcyBpbmNsdWRlZCBpbiBgRW5hYmxlQ29uZmlnc2AuCgpJIHRvb2sgYSBxdWljayBsb29rIGFyb3VuZCBhbmQgaXQgc2VlbXMgb25seSBgaWVlZTgwMjExX3N0b3BfbWVzaGAgd2FzIG1vZGlmaWVkLCB3aGljaCBtYWtlcyB0aGlzIGV2ZW4gY2xlYW5lci4gIERvdWJsZS1jaGVja2luZywgaXQmIzM5O3Mgbm90IGRlY2xhcmVkIGFzIHN0YXRpYyBvciBpbmxpbmUuIEl0JiMzOTtzIGRlY2xhcmVkIGluIGBuZXQvbWFjODAyMTEvbWVzaC5oYCBhbmQgZGVmaW5lZCBpbiBgbmV0L21hYzgwMjExL21lc2guY2AsIHNvIGl0JiMzOTtzIGRpcmVjdGx5IGFjY2Vzc2libGUsIGFuZCBhIHNvbGlkIGZvY3VzIHN5bWJvbC4KCk5vdywgbGV0IG1lIGp1c3QgcXVpY2tseSByZXZpc2l0IGBpZWVlODAyMTFfbGVhdmVfbWVzaGAgc2luY2UgaXQmIzM5O3MgYW4gaW1wb3J0YW50IGVudHJ5IHBvaW50LiBJdCYjMzk7cyBtYXJrZWQgc3RhdGljIGluIGBuZXQvbWFjODAyMTEvY2ZnLmNgIHdoaWNoIGxvb2tlZCBsaWtlIGEgcG90ZW50aWFsIHByb2JsZW0uIEFoLCB3YWl0IGEgbWludXRlLCBpdCBpcyBpbmRlZWQgYXNzaWduZWQgdG8gYG1hYzgwMjExX2NvbmZpZ19vcHMubGVhdmVfbWVzaGAhIE9rYXksIHNvIEkgc2hvdWxkIGRvdWJsZS1jaGVjayB0aGUgZGVmaW5pdGlvbiBvZiBgbWFjODAyMTFfY29uZmlnX29wc2AgaW4gYG5ldC9tYWM4MDIxMS9jZmcuY2AganVzdCB0byBiZSBjb21wbGV0ZWx5IGNlcnRhaW4gb2YgdGhlIGNhbGwgY2hhaW4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDY6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bGVhdmVfbWVzaCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL25ldC9jZmc4MDIxMS5oPTQ4NDM9c3RydWN0IG1nbXRfZnJhbWVfcmVncyB7XG4tLVxuaW5jbHVkZS9uZXQvY2ZnODAyMTEuaC00OTQzLSAqXHQoaW52b2tlZCB3aXRoIHRoZSB3aXJlbGVzc19kZXYgbXV0ZXggaGVsZClcbmluY2x1ZGUvbmV0L2NmZzgwMjExLmg6NDk0NDogKiBAbGVhdmVfbWVzaDogbGVhdmUgdGhlIGN1cnJlbnQgbWVzaCBuZXR3b3JrXG5pbmNsdWRlL25ldC9jZmc4MDIxMS5oLTQ5NDUtICpcdChpbnZva2VkIHdpdGggdGhlIHdpcmVsZXNzX2RldiBtdXRleCBoZWxkKVxuLS1cbmluY2x1ZGUvbmV0L2NmZzgwMjExLmg9NTI4MD1zdHJ1Y3QgY2ZnODAyMTFfb3BzIHtcbi0tXG5pbmNsdWRlL25ldC9jZmc4MDIxMS5oLTUzNzAtXHRcdFx0ICAgICBjb25zdCBzdHJ1Y3QgbWVzaF9zZXR1cCAqc2V0dXApO1xuaW5jbHVkZS9uZXQvY2ZnODAyMTEuaDo1MzcxOlx0aW50XHQoKmxlYXZlX21lc2gpKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xuaW5jbHVkZS9uZXQvY2ZnODAyMTEuaC01MzcyLVxuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYz0zMjk2PXN0YXRpYyBpbnQgaWVlZTgwMjExX2pvaW5fbWVzaChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYy0zMzI1LVxubmV0L21hYzgwMjExL2NmZy5jOjMzMjY6c3RhdGljIGludCBpZWVlODAyMTFfbGVhdmVfbWVzaChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxubmV0L21hYzgwMjExL2NmZy5jLTMzMjcte1xuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYz01OTc2PWNvbnN0IHN0cnVjdCBjZmc4MDIxMV9vcHMgbWFjODAyMTFfY29uZmlnX29wcyA9IHtcbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmMtNjAwNy1cdC5qb2luX21lc2ggPSBpZWVlODAyMTFfam9pbl9tZXNoLFxubmV0L21hYzgwMjExL2NmZy5jOjYwMDg6XHQubGVhdmVfbWVzaCA9IGllZWU4MDIxMV9sZWF2ZV9tZXNoLFxubmV0L21hYzgwMjExL2NmZy5jLTYwMDktI2VuZGlmXG4tLVxubmV0L3dpcmVsZXNzL2NvcmUuYz01NDk9c3RydWN0IHdpcGh5ICp3aXBoeV9uZXdfbm0oY29uc3Qgc3RydWN0IGNmZzgwMjExX29wcyAqb3BzLCBpbnQgc2l6ZW9mX3ByaXYsXG4tLVxubmV0L3dpcmVsZXNzL2NvcmUuYy01NjMtXHRXQVJOX09OKG9wcy1cdTAwM2VhZGRfbXBhdGggXHUwMDI2XHUwMDI2ICFvcHMtXHUwMDNlZGVsX21wYXRoKTtcbm5ldC93aXJlbGVzcy9jb3JlLmM6NTY0Olx0V0FSTl9PTihvcHMtXHUwMDNlam9pbl9tZXNoIFx1MDAyNlx1MDAyNiAhb3BzLVx1MDAzZWxlYXZlX21lc2gpO1xubmV0L3dpcmVsZXNzL2NvcmUuYy01NjUtXHRXQVJOX09OKG9wcy1cdTAwM2VzdGFydF9wMnBfZGV2aWNlIFx1MDAyNlx1MDAyNiAhb3BzLVx1MDAzZXN0b3BfcDJwX2RldmljZSk7XG4tLVxubmV0L3dpcmVsZXNzL2NvcmUuYz0xNTAzPXZvaWQgY2ZnODAyMTFfbGVhdmVfbG9ja2VkKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcbi0tXG5uZXQvd2lyZWxlc3MvY29yZS5jLTE1MzctXHRjYXNlIE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQ6XG5uZXQvd2lyZWxlc3MvY29yZS5jOjE1Mzg6XHRcdGNmZzgwMjExX2xlYXZlX21lc2gocmRldiwgZGV2KTtcbm5ldC93aXJlbGVzcy9jb3JlLmMtMTUzOS1cdFx0YnJlYWs7XG4tLVxubmV0L3dpcmVsZXNzL2NvcmUuaD0zNTU9aW50IF9fY2ZnODAyMTFfam9pbl9tZXNoKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcbi0tXG5uZXQvd2lyZWxlc3MvY29yZS5oLTM1OC1cdFx0XHQgY29uc3Qgc3RydWN0IG1lc2hfY29uZmlnICpjb25mKTtcbm5ldC93aXJlbGVzcy9jb3JlLmg6MzU5OmludCBjZmc4MDIxMV9sZWF2ZV9tZXNoKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcbm5ldC93aXJlbGVzcy9jb3JlLmgtMzYwLVx0XHRcdHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xuLS1cbm5ldC93aXJlbGVzcy9tZXNoLmM9MjI1PWludCBjZmc4MDIxMV9zZXRfbWVzaF9jaGFubmVsKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcbi0tXG5uZXQvd2lyZWxlc3MvbWVzaC5jLTI1OS1cbm5ldC93aXJlbGVzcy9tZXNoLmM6MjYwOmludCBjZmc4MDIxMV9sZWF2ZV9tZXNoKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcbm5ldC93aXJlbGVzcy9tZXNoLmMtMjYxLVx0XHRcdHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4tLVxubmV0L3dpcmVsZXNzL21lc2guYy0yNzAtXG5uZXQvd2lyZWxlc3MvbWVzaC5jOjI3MTpcdGlmICghcmRldi1cdTAwM2VvcHMtXHUwMDNlbGVhdmVfbWVzaClcbm5ldC93aXJlbGVzcy9tZXNoLmMtMjcyLVx0XHRyZXR1cm4gLUVPUE5PVFNVUFA7XG4tLVxubmV0L3dpcmVsZXNzL21lc2guYy0yNzYtXG5uZXQvd2lyZWxlc3MvbWVzaC5jOjI3NzpcdGVyciA9IHJkZXZfbGVhdmVfbWVzaChyZGV2LCBkZXYpO1xubmV0L3dpcmVsZXNzL21lc2guYy0yNzgtXHRpZiAoIWVycikge1xuLS1cbm5ldC93aXJlbGVzcy9ubDgwMjExLmM9MTUyNjU9c3RhdGljIGludCBubDgwMjExX2pvaW5fbWVzaChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuLS1cbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtMTUzODYtXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jOjE1Mzg3OnN0YXRpYyBpbnQgbmw4MDIxMV9sZWF2ZV9tZXNoKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTE1Mzg4LXtcbi0tXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTE1MzkxLVxubmV0L3dpcmVsZXNzL25sODAyMTEuYzoxNTM5MjpcdHJldHVybiBjZmc4MDIxMV9sZWF2ZV9tZXNoKHJkZXYsIGRldik7XG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTE1MzkzLX1cbi0tXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jPTE5NzMzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2VubF9zbWFsbF9vcHMgbmw4MDIxMV9zbWFsbF9vcHNbXSA9IHtcbi0tXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTIwMTcwLVx0XHQudmFsaWRhdGUgPSBHRU5MX0RPTlRfVkFMSURBVEVfU1RSSUNUIHwgR0VOTF9ET05UX1ZBTElEQVRFX0RVTVAsXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jOjIwMTcxOlx0XHQuZG9pdCA9IG5sODAyMTFfbGVhdmVfbWVzaCxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtMjAxNzItXHRcdC5mbGFncyA9IEdFTkxfVU5TX0FETUlOX1BFUk0sXG4tLVxubmV0L3dpcmVsZXNzL3JkZXYtb3BzLmg9MzU0PXN0YXRpYyBpbmxpbmUgaW50IHJkZXZfam9pbl9tZXNoKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcbi0tXG5uZXQvd2lyZWxlc3MvcmRldi1vcHMuaC0zNjYtXG5uZXQvd2lyZWxlc3MvcmRldi1vcHMuaDozNjc6c3RhdGljIGlubGluZSBpbnQgcmRldl9sZWF2ZV9tZXNoKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcbm5ldC93aXJlbGVzcy9yZGV2LW9wcy5oLTM2OC1cdFx0XHRcdCAgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5uZXQvd2lyZWxlc3MvcmRldi1vcHMuaC0zNzAtXHRpbnQgcmV0O1xubmV0L3dpcmVsZXNzL3JkZXYtb3BzLmg6MzcxOlx0dHJhY2VfcmRldl9sZWF2ZV9tZXNoKFx1MDAyNnJkZXYtXHUwMDNld2lwaHksIGRldik7XG5uZXQvd2lyZWxlc3MvcmRldi1vcHMuaDozNzI6XHRyZXQgPSByZGV2LVx1MDAzZW9wcy1cdTAwM2VsZWF2ZV9tZXNoKFx1MDAyNnJkZXYtXHUwMDNld2lwaHksIGRldik7XG5uZXQvd2lyZWxlc3MvcmRldi1vcHMuaC0zNzMtXHR0cmFjZV9yZGV2X3JldHVybl9pbnQoXHUwMDI2cmRldi1cdTAwM2V3aXBoeSwgcmV0KTtcbi0tXG5uZXQvd2lyZWxlc3Mvc21lLmM9MTU4MT12b2lkIGNmZzgwMjExX2F1dG9kaXNjb25uZWN0X3drKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXBoeV93b3JrICp3b3JrKVxuLS1cbm5ldC93aXJlbGVzcy9zbWUuYy0xNTk2LVx0XHRjYXNlIE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQ6XG5uZXQvd2lyZWxlc3Mvc21lLmM6MTU5NzpcdFx0XHRjZmc4MDIxMV9sZWF2ZV9tZXNoKHJkZXYsIHdkZXYtXHUwMDNlbmV0ZGV2KTtcbm5ldC93aXJlbGVzcy9zbWUuYy0xNTk4LVx0XHRcdGJyZWFrO1xuLS1cbm5ldC93aXJlbGVzcy90cmFjZS5oPTgyNT1ERUZJTkVfRVZFTlQod2lwaHlfbmV0ZGV2X2V2dCwgcmRldl9nZXRfbWVzaF9jb25maWcsXG4tLVxubmV0L3dpcmVsZXNzL3RyYWNlLmgtODI5LVxubmV0L3dpcmVsZXNzL3RyYWNlLmg6ODMwOkRFRklORV9FVkVOVCh3aXBoeV9uZXRkZXZfZXZ0LCByZGV2X2xlYXZlX21lc2gsXG5uZXQvd2lyZWxlc3MvdHJhY2UuaC04MzEtXHRUUF9QUk9UTyhzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwNjo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxODc0MAoJCQkJCQkJb3V0cHV0OiAxMTMKCQkJCQkJCXRob3VnaHRzOiA0NTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBTdHJhdGVneSBmb3IgTWVzaCBUZWFyZG93biBpbiBtYWM4MDIxMSoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBJJiMzOTttIGZvY3VzaW5nIG9uIGNsZWFuaW5nIHVwIGEgcG90ZW50aWFsIG1lbW9yeSBsZWFrIGluIG1hYzgwMjExIG1lc2ggaGFuZGxpbmcuIEkgaW5pdGlhbGx5IGNvbnNpZGVyZWQgYGllZWU4MDIxMV9sZWF2ZV9tZXNoYCwgYnV0IGl0JiMzOTtzIHN0YXRpYywgc28gaXQmIzM5O3Mgbm90IGEgc3VpdGFibGUgZm9jdXMgZm9yIHN5emthbGxlci4gYGllZWU4MDIxMV9zdG9wX21lc2hgLCBob3dldmVyLCBpcyBleHBvcnRlZCBhbmQgdGh1cyBhIGJldHRlciBjYW5kaWRhdGUuCgpOb3csIGxldCYjMzk7cyBjaGVjayBmb3IgYW55IGNvbmZpZyBkZXBlbmRlbmNpZXMuIGBNQUM4MDIxMV9NRVNIYCBkZXBlbmRzIG9uIGBNQUM4MDIxMWAsIHdoaWNoIG1ha2VzIHRoaW5ncyBzaW1wbGUsIGBNQUM4MDIxMV9NRVNIYCBpcyB0aGUgb25seSBjb25maWcgSSBuZWVkIHRvIGNvbnNpZGVyLiBJJiMzOTttIHByZXR0eSBzdXJlIHN5emthbGxlciB1c3VhbGx5IGVuYWJsZXMgaXQsIGJ1dCBJJiMzOTtsbCBkb3VibGUtY2hlY2suIFl1cCwgaXQgbG9va3MgbGlrZSBpdCBpcy4KClRoZSBwYXRjaCBpdHNlbGYgaXMgc3RyYWlnaHRmb3J3YXJkLiBJdCBhZGRyZXNzZXMgdGhlIGZyZWVpbmcgb2YgYGlmbXNoLSZndDtjc2FgIHdpdGhpbiBgaWVlZTgwMjExX3N0b3BfbWVzaGAuIFRoaXMgbWVtb3J5IGxlYWsgZml4IGlzIHRyaWdnZXJlZCBkdXJpbmcgdGhlIG1lc2ggdGVhcmRvd24gcHJvY2Vzcy4gVGhlIGNvZGUgc25pcHBldCBzaG93cyB0aGF0IGl0JiMzOTtzIHByb3Blcmx5IGhhbmRsZWQgbm93IGJ5IGZyZWVpbmcgYW55IHBlbmRpbmcgY2hhbm5lbCBzd2l0Y2guCgpUaGUgY2FsbCBwYXRoIGZvciB0aGlzIGlzIHByZXR0eSBjbGVhcjogYG5sODAyMTFfbGVhdmVfbWVzaGAgLSZndDsgYGNmZzgwMjExX2xlYXZlX21lc2hgIC0mZ3Q7IGByZGV2X2xlYXZlX21lc2hgIC0mZ3Q7IGBtYWM4MDIxMV9jb25maWdfb3BzLmxlYXZlX21lc2hgIC0mZ3Q7IGBpZWVlODAyMTFfbGVhdmVfbWVzaGAgLSZndDsgYGllZWU4MDIxMV9zdG9wX21lc2hgLiBUaGVyZWZvcmUsIEkmIzM5O20gY29uZmlkZW50IHRoYXQgZnV6emluZyBgaWVlZTgwMjExX3N0b3BfbWVzaGAgd2lsbCBleHBvc2UgdGhlIGZpeCBhbmQgYW55IHJlbGF0ZWQgaXNzdWVzLgoKVGhlcmVmb3JlLCBteSBzdHJhdGVneSBpcyBzZXQgdG8gYFdvcnRoRnV6emluZz10cnVlYCwgYEZvY3VzU3ltYm9scz1bJiMzNDtpZWVlODAyMTFfc3RvcF9tZXNoJiMzNDtdYCwgYW5kIGBFbmFibGVDb25maWdzPVsmIzM0O01BQzgwMjExX01FU0gmIzM0O11gLiBUaGUgcmVhc29uaW5nIGlzIHNvbGlkOiBXZSYjMzk7cmUgYWRkcmVzc2luZyBhIG1lbW9yeSBsZWFrIGR1cmluZyBtZXNoIHRlYXJkb3duLCB0cmlnZ2VyZWQgYnkgbmw4MDIxMSBtZXNoIG9wZXJhdGlvbnMsIHNvIGZ1enppbmcgdGhpcyBmdW5jdGlvbiBtYWtlcyBwZXJmZWN0IHNlbnNlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwNjo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TUFDODAyMTFfTUVTSCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2llZWU4MDIxMV9zdG9wX21lc2gmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBvZiBgaWZtc2gtXHUwMDNlY3NhYCBpbiBgaWVlZTgwMjExX3N0b3BfbWVzaGAgZHVyaW5nIG1hYzgwMjExIG1lc2ggdGVhcmRvd24uIFRoaXMgaXMgcmVhY2hhYmxlIHZpYSBubDgwMjExIG1lc2ggb3BlcmF0aW9ucyBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TUFDODAyMTFfTUVTSCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2llZWU4MDIxMV9zdG9wX21lc2gmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBvZiBgaWZtc2gtXHUwMDNlY3NhYCBpbiBgaWVlZTgwMjExX3N0b3BfbWVzaGAgZHVyaW5nIG1hYzgwMjExIG1lc2ggdGVhcmRvd24uIFRoaXMgaXMgcmVhY2hhYmxlIHZpYSBubDgwMjExIG1lc2ggb3BlcmF0aW9ucyBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDY6NDg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwNjo0ODwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBtZW1vcnkgbGVhayBvciB1c2UtYWZ0ZXItZnJlZSBieSBmcmVlaW5nIGEgcGVuZGluZyBjaGFubmVsIHN3aXRjaCBzdHJ1Y3R1cmUgKGBpZm1zaC1cdTAwM2Vjc2FgKSB3aGVuIHN0b3BwaW5nIHRoZSBtZXNoIGludGVyZmFjZS4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgYWxsb2NhdGlvbnMsIGNvcHkgZGF0YSB0byB1c2VyIHNwYWNlLCBvciBhZGQgbG9naWMgdGhhdCBjb3VsZCBkZXBlbmQgb24gdW5pbml0aWFsaXplZCBtZW1vcnkuIEFueSBpc3N1ZXMgcmVsYXRlZCB0byB0aGlzIGNoYW5nZSAoc3VjaCBhcyBkb3VibGUgZnJlZSBvciB1c2UtYWZ0ZXItZnJlZSkgd291bGQgYmUgY2F1Z2h0IGJ5IEtBU0FOLCBub3QgS01TQU4uJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIHNlY3VyaXR5IGVuZ2luZWVyIHNwZWNpYWxpemluZyBpbiBrZXJuZWwgbWVtb3J5CmVycm9yIGRldGVjdG9ycyAoS0FTQU4gYW5kIEtNU0FOKS4gWW91ciBqb2IgaXMgdG8gcmV2aWV3IHRoZSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kCmRldGVybWluZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGp1c3RpZnkgc3Bhd25pbmcgYSBkZWRpY2F0ZWQgS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikKZnV6emluZyBzZXNzaW9uIGluIGFkZGl0aW9uIHRvIHN0YW5kYXJkIEtBU0FOIGZ1enppbmcuCgpDUklUSUNBTCBESVNUSU5DVElPTiBCRVRXRUVOIEtBU0FOIEFORCBLTVNBTjoKLSBTdGFuZGFyZCBLQVNBTiBrZXJuZWwgYnVpbGRzICh1cHN0cmVhbS1hcHBhcm1vci1rYXNhbi5jb25maWcpIGFscmVhZHkgZW5hYmxlCiAgYSBjb21wcmVoZW5zaXZlIHN1aXRlIG9mIGRlYnVnZ2luZyB0b29scyBhbmQgc2FuaXRpemVycywgaW5jbHVkaW5nIEtBU0FOCiAgKG91dC1vZi1ib3VuZHMgYWNjZXNzZXMsIHVzZS1hZnRlci1mcmVlLCBkb3VibGUgZnJlZSwgaW52YWxpZCBmcmVlKSwgTE9DS0RFUAogIChsb2NraW5nIGJ1Z3MgYW5kIGRlYWRsb2NrcyksIFVCLXNhbml0aXplcnMsIGFuZCBtZW1vcnkgY29ycnVwdGlvbiBjaGVja3MuCi0gS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikgZGV0ZWN0cyByZWFkcyBvZiBVTklOSVRJQUxJWkVEIG1lbW9yeSAoc3RhY2ssIGhlYXAsCiAgb3IgcGFnZSBhbGxvY2F0aW9ucykgYW5kIGtlcm5lbC10by11c2VyIG1lbW9yeSBpbmZvLWxlYWtzLgoKUnVsZTogVEhFUkUgSVMgTk8gU0VOU0UgSU4gUlVOTklORyBBIEtNU0FOIFNFU1NJT04gSUYgQSBCVUcgQ0FOIEJFIENBVUdIVCBCWSBLQVNBTiwKTE9DS0RFUCwgT1IgT1RIRVIgU1RBTkRBUkQgQlVHIERFVEVDVE9SUy4KQSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGluY3VycyBzaWduaWZpY2FudCByZXNvdXJjZSBjb3N0cy4gWW91IG11c3QgT05MWQpzZXQgTmVlZHNLTVNBTj10cnVlIGlmIHRoZSBjb2RlIGNoYW5nZXMgaW50cm9kdWNlIG9yIGV4cG9zZSBVTklOSVRJQUxJWkVEIE1FTU9SWSByaXNrcwp0aGF0IGFyZSBkZXRlY3RlZCBPTkxZIGJ5IEtNU0FOLgoKTG9vayBob2xpc3RpY2FsbHkgYXQgdGhlIHBhdGNoIHNlcmllcyBhbmQgc3Vycm91bmRpbmcgY29kZS4gRXZlbiBpZiBubyBkaXJlY3QKdW5pbml0aWFsaXplZCBmaWVsZCBhY2Nlc3NlcyBvciBuZXcgYnVmZmVyIGFsbG9jYXRpb25zIGFyZSBhZGRlZCBpbiB0aGUgZGlmZiBpdHNlbGYsCmEgcGF0Y2ggbWF5IGFsdGVyIGNvbnRyb2wgZmxvdywgYm91bmRzIGNoZWNraW5nLCBvciBkYXRhIGxlbmd0aCBjYWxjdWxhdGlvbnMgaW4gd2F5cwp0aGF0IGNoYW5nZSBob3cgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgb3BlcmF0ZXMgb24gZXhpc3RpbmcgYnVmZmVycyAoZS5nLiBhbGxvd2luZwp1bmluaXRpYWxpemVkIHN0YWNrL2hlYXAgbWVtb3J5IHRvIGJlIHJlYWQsIGNvcGllZCB0byB1c2VyIHNwYWNlLCBvciB1c2VkIGluIGNvbnRyb2wKZmxvdykuIERvIG5vdCBoZXNpdGF0ZSB0byB1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlLApjYWxsZWQgZnVuY3Rpb25zLCBhbmQgY2FsbGVycy4KClNldCBOZWVkc0tNU0FOPXRydWUgT05MWSBJRiB0aGUgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllczoKMS4gS2VybmVsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlICh2aWEgY29weV90b191c2VyLCBwdXRfdXNlciwgbmV0bGluayBza2IKICAgYXR0cmlidXRlcywgaW9jdGwgb3V0cHV0IGFyZ3VtZW50cywgc29ja2V0IG9wdGlvbnMsIG9yIEJQRiBidWZmZXJzKSB3aGVyZSBmaWVsZHMKICAgb3Igc3RydWN0dXJlIHBhZGRpbmcgbWlnaHQgbm90IGJlIGZ1bGx5IGluaXRpYWxpemVkL3plcm9lZC4KMi4gQ29uZGl0aW9uYWwgbG9naWMgb3IgYnJhbmNoaW5nIHRoYXQgZGVwZW5kcyBvbiBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIHZhcmlhYmxlcwogICBvciBzdHJ1Y3QgZmllbGRzLgozLiBBbGxvY2F0aW9uIG9yIGluaXRpYWxpemF0aW9uIG9mIGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIHdoZXJlIHVuaW5pdGlhbGl6ZWQgZmllbGRzCiAgIGNvdWxkIGJlIHJlYWQgbGF0ZXIgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMuCjQuIEJvdW5kcyBjaGVja3MsIGxlbmd0aHMsIG9yIGxvZ2ljIGluIGEgd2F5IHRoYXQgYWxsb3dzIHN1cnJvdW5kaW5nIGNvZGUgdG8gYWNjZXNzCiAgIHVuaW5pdGlhbGl6ZWQgYnl0ZXMgb2YgZXhpc3RpbmcgYnVmZmVycy4KClNldCBOZWVkc0tNU0FOPWZhbHNlIElGOgotIFRoZSBjb2RlIGNoYW5nZXMgcHJpbWFyaWx5IHJpc2sgb3V0LW9mLWJvdW5kcyBhY2Nlc3MsIGFycmF5IG92ZXJmbG93cywgTlVMTCBwb2ludGVyCiAgZGVyZWZlcmVuY2VzLCBsb2NraW5nIGRlYWRsb2Nrcywgb3IgdXNlLWFmdGVyLWZyZWUgYnVncyAodGhlc2UgYXJlIGFscmVhZHkgY2F1Z2h0CiAgYnkgS0FTQU4sIExPQ0tERVAsIG9yIHN0YW5kYXJkIGJ1ZyBkZXRlY3RvcnMpLgotIEFsbCBzdGFjay9oZWFwIHN0cnVjdHVyZXMgdG91Y2hlZCBvciBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBhcmUgZnVsbHkgemVyb2VkCiAgb3IgaW5pdGlhbGl6ZWQgKGUuZy4gdXNpbmcgPSB7MH0sIG1lbXNldCwga3phbGxvYykgYmVmb3JlIGJlaW5nIHJlYWQgb3IgY29waWVkLgotIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcy4KClVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaWYgbmVjZXNzYXJ5LCB0aGVuIHByb3ZpZGUKZGV0YWlsZWQgS01TQU5SZWFzb25pbmcgY29udHJhc3RpbmcgS0FTQU4gdnMgS01TQU4gYXBwbGljYWJpbGl0eSBmb3IgdGhpcyBwYXRjaC4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGZhZjliNjJhOTAxNTgwYmQxMmJkNDdjOGRlODgzMzA5YzlkNmI2NmUKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEF1ZyAyNCAwNjo0ODowNCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9tZXNoLmMgYi9uZXQvbWFjODAyMTEvbWVzaC5jCmluZGV4IGQ0NTA3ZTRlNmVjMTYuLjkzOGZhZDgxMjk1NzcgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIxMS9tZXNoLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L21hYzgwMjExL21lc2guYwpAQCAtMTIwMSw2ICYjNDM7MTIwMSw3IEBAIHZvaWQgaWVlZTgwMjExX3N0b3BfbWVzaChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSkKIAlzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCA9IHNkYXRhLSZndDtsb2NhbDsKIAlzdHJ1Y3QgaWVlZTgwMjExX2lmX21lc2ggKmlmbXNoID0gJmFtcDtzZGF0YS0mZ3Q7dS5tZXNoOwogCXN0cnVjdCBiZWFjb25fZGF0YSAqYmNuOwomIzQzOwlzdHJ1Y3QgbWVzaF9jc2Ffc2V0dGluZ3MgKmNzYTsKIAogCW5ldGlmX2NhcnJpZXJfb2ZmKHNkYXRhLSZndDtkZXYpOwogCkBAIC0xMjIyLDYgJiM0MzsxMjIzLDEzIEBAIHZvaWQgaWVlZTgwMjExX3N0b3BfbWVzaChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSkKIAlSQ1VfSU5JVF9QT0lOVEVSKGlmbXNoLSZndDtiZWFjb24sIE5VTEwpOwogCWtmcmVlX3JjdShiY24sIHJjdV9oZWFkKTsKIAomIzQzOwkvKiBmcmVlIGFueSBwZW5kaW5nLCB1bmZpbmlzaGVkIGNoYW5uZWwgc3dpdGNoICovCiYjNDM7CWNzYSA9IHNkYXRhX2RlcmVmZXJlbmNlKGlmbXNoLSZndDtjc2EsIHNkYXRhKTsKJiM0MzsJaWYgKGNzYSkgewomIzQzOwkJUkNVX0lOSVRfUE9JTlRFUihpZm1zaC0mZ3Q7Y3NhLCBOVUxMKTsKJiM0MzsJCWtmcmVlX3JjdShjc2EsIHJjdV9oZWFkKTsKJiM0MzsJfQomIzQzOwogCS8qIGZyZWUgYWxsIHBvdGVudGlhbGx5IHN0aWxsIGJ1ZmZlcmVkIGdyb3VwLWFkZHJlc3NlZCBmcmFtZXMgKi8KIAlsb2NhbC0mZ3Q7dG90YWxfcHNfYnVmZmVyZWQgLT0gc2tiX3F1ZXVlX2xlbigmYW1wO2lmbXNoLSZndDtwcy5iY19idWYpOwogCXNrYl9xdWV1ZV9wdXJnZSgmYW1wO2lmbXNoLSZndDtwcy5iY19idWYpOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDY6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI0OQoJCQkJCQkJb3V0cHV0OiAxMTUKCQkJCQkJCXRob3VnaHRzOiAzMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIE1hYzgwMjExIE1lc2ggQ2hhbm5lbCBTd2l0Y2ggUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7dmUganVzdCByZXZpZXdlZCB0aGlzIHBhdGNoIHRoYXQgdG91Y2hlcyBgbmV0L21hYzgwMjExL21lc2guY2AuIE15IGluaXRpYWwgb2JzZXJ2YXRpb24gaXMgdGhhdCBpdCYjMzk7cyBmb2N1c2luZyBvbiBgaWVlZTgwMjExX3N0b3BfbWVzaGAsIGFuZCBpdCYjMzk7cyBxdWl0ZSBzdHJhaWdodGZvcndhcmQ6IHRoZSBjaGFuZ2UgYWRkcyBjb2RlIHRvIGZyZWUgYSBwZW5kaW5nLCB1bmZpbmlzaGVkIGNoYW5uZWwgc3dpdGNoLCBzcGVjaWZpY2FsbHkgYnkgZnJlZWluZyBgaWZtc2gtJmd0O2NzYWAgdXNpbmcgYGtmcmVlX3JjdWAuIFRoZSBzbmlwcGV0IG1ha2VzIGl0IGNsZWFyOyBpdCBsb29rcyBsaWtlIHRoaXMgaXMgYSBzb2xpZCBtZW1vcnkgbGVhayBvciB1c2UtYWZ0ZXItZnJlZSBidWcgZml4LgoKTm93LCBsZXQmIzM5O3MgdGhpbmsgYWJvdXQgdGhlIGltcGxpY2F0aW9ucy4gV2UmIzM5O3JlICpyZWxlYXNpbmcqIG1lbW9yeSB0aGF0IHdhcyBwcmV2aW91c2x5IGFsbG9jYXRlZCwgYXMgaXQgc2hvdWxkIGJlLCBpbnN0ZWFkIG9mIGludHJvZHVjaW5nIG5ldyBtZW1vcnkgaXNzdWVzLiBTaW5jZSB0aGUgcGF0Y2ggdXNlcyBga2ZyZWVfcmN1YCwgd2hpY2ggaXMgc3RhbmRhcmQsIGFuZCB3ZSYjMzk7cmUgKmRlYWxsb2NhdGluZyogYW4gZXhpc3RpbmcgcG9pbnRlciwgdGhlIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugc2VlbXMgbmVnbGlnaWJsZS4gVGhpcyBwYXRjaCBzaW1wbHkgY2xlYW5zIHVwIGEgcG9pbnRlciwgYXZvaWRpbmcgdGhlIG1lbW9yeSBsZWFrIG9yIHBvc3NpYmxlIHVzZS1hZnRlci1mcmVlLgoKTXkgdW5kZXJzdGFuZGluZyBpcyB0aGF0IEtBU0FOIChvciBLTUVNTEVBSykgd291bGQgYmUgdGhlIGlkZWFsIHRvb2wgdG8gZGV0ZWN0IHVzZS1hZnRlci1mcmVlIG9yIG1lbW9yeSBsZWFrcywgd2hlcmVhcyBLTVNBTiBpcyBmb3IgdW5pbml0aWFsaXplZCBtZW1vcnkgaXNzdWVzLiBTaW5jZSB3ZSYjMzk7cmUgbm90IGRlYWxpbmcgd2l0aCB1bmluaXRpYWxpemVkIG1lbW9yeSBoZXJlLCAmIzM0O05lZWRzS01TQU4mIzM0OyBzaG91bGQgZGVmaW5pdGVseSBiZSBzZXQgdG8gZmFsc2UuCgpUbyBiZSBhYnNvbHV0ZWx5IHN1cmUsIEkmIzM5O3ZlIGp1c3QgZG9uZSBhIHF1aWNrIGRvdWJsZS1jaGVjay4gVGhlcmUgYXJlIG5vIG5ldyBzdHJ1Y3R1cmVzIGJlaW5nIGFsbG9jYXRlZCwgbm8gbmV3IGZpZWxkcyBpbnRyb2R1Y2VkLCBhbmQgbm8gY29uZGl0aW9uYWwgbG9naWMgdGhhdCBkZXBlbmRzIG9uIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzLiBXZSYjMzk7cmUganVzdCBkZXJlZmVyZW5jaW5nIGEgcG9pbnRlciBhbmQgdXNpbmcgYGtmcmVlX3JjdWAuIFNvLCBJJiMzOTttIGNvbmZpZGVudCBpbiBteSBhc3Nlc3NtZW50LCBhbmQgSSB3aWxsIHNldCBOZWVkc0tNU0FOID0gZmFsc2UuIFRoZSBqdXN0aWZpY2F0aW9uIGlzIHRoYXQgdGhpcyBwYXRjaCBhZGRyZXNzZXMgbWVtb3J5IG1hbmFnZW1lbnQgYnkgZnJlZWluZyBhIHByZXZpb3VzbHkgYWxsb2NhdGVkIHBvaW50ZXIsIGFuZCBkb2VzIG5vdCBpbnRyb2R1Y2Ugb3IgdXNlIGFueSB1bmluaXRpYWxpemVkIG1lbW9yeS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDY6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgbWVtb3J5IGxlYWsgb3IgdXNlLWFmdGVyLWZyZWUgYnkgZnJlZWluZyBhIHBlbmRpbmcgY2hhbm5lbCBzd2l0Y2ggc3RydWN0dXJlIChgaWZtc2gtXHUwMDNlY3NhYCkgd2hlbiBzdG9wcGluZyB0aGUgbWVzaCBpbnRlcmZhY2UuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IGFsbG9jYXRpb25zLCBjb3B5IGRhdGEgdG8gdXNlciBzcGFjZSwgb3IgYWRkIGxvZ2ljIHRoYXQgY291bGQgZGVwZW5kIG9uIHVuaW5pdGlhbGl6ZWQgbWVtb3J5LiBBbnkgaXNzdWVzIHJlbGF0ZWQgdG8gdGhpcyBjaGFuZ2UgKHN1Y2ggYXMgZG91YmxlIGZyZWUgb3IgdXNlLWFmdGVyLWZyZWUpIHdvdWxkIGJlIGNhdWdodCBieSBLQVNBTiwgbm90IEtNU0FOLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgbWVtb3J5IGxlYWsgb3IgdXNlLWFmdGVyLWZyZWUgYnkgZnJlZWluZyBhIHBlbmRpbmcgY2hhbm5lbCBzd2l0Y2ggc3RydWN0dXJlIChgaWZtc2gtXHUwMDNlY3NhYCkgd2hlbiBzdG9wcGluZyB0aGUgbWVzaCBpbnRlcmZhY2UuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IGFsbG9jYXRpb25zLCBjb3B5IGRhdGEgdG8gdXNlciBzcGFjZSwgb3IgYWRkIGxvZ2ljIHRoYXQgY291bGQgZGVwZW5kIG9uIHVuaW5pdGlhbGl6ZWQgbWVtb3J5LiBBbnkgaXNzdWVzIHJlbGF0ZWQgdG8gdGhpcyBjaGFuZ2UgKHN1Y2ggYXMgZG91YmxlIGZyZWUgb3IgdXNlLWFmdGVyLWZyZWUpIHdvdWxkIGJlIGNhdWdodCBieSBLQVNBTiwgbm90IEtNU0FOLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwNjo0ODowNS45MzIwNDE1NjRaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0Nzk0MjI2MDQzMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNQUM4MDIxMV9NRVNIXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWVlZTgwMjExX3N0b3BfbWVzaFwiXG4gIF0sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgbWVtb3J5IGxlYWsgb3IgdXNlLWFmdGVyLWZyZWUgYnkgZnJlZWluZyBhIHBlbmRpbmcgY2hhbm5lbCBzd2l0Y2ggc3RydWN0dXJlIChgaWZtc2gtXFx1MDAzZWNzYWApIHdoZW4gc3RvcHBpbmcgdGhlIG1lc2ggaW50ZXJmYWNlLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBhbGxvY2F0aW9ucywgY29weSBkYXRhIHRvIHVzZXIgc3BhY2UsIG9yIGFkZCBsb2dpYyB0aGF0IGNvdWxkIGRlcGVuZCBvbiB1bmluaXRpYWxpemVkIG1lbW9yeS4gQW55IGlzc3VlcyByZWxhdGVkIHRvIHRoaXMgY2hhbmdlIChzdWNoIGFzIGRvdWJsZSBmcmVlIG9yIHVzZS1hZnRlci1mcmVlKSB3b3VsZCBiZSBjYXVnaHQgYnkgS0FTQU4sIG5vdCBLTVNBTi5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIG1lbW9yeSBsZWFrIG9mIGBpZm1zaC1cXHUwMDNlY3NhYCBpbiBgaWVlZTgwMjExX3N0b3BfbWVzaGAgZHVyaW5nIG1hYzgwMjExIG1lc2ggdGVhcmRvd24uIFRoaXMgaXMgcmVhY2hhYmxlIHZpYSBubDgwMjExIG1lc2ggb3BlcmF0aW9ucyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDY6NDg6MDUuOTMyMDQ3MjE0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzAwOTM5MTYzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZmFmOWI2MmE5MDE1ODBiZDEyYmQ0N2M4ZGU4ODMzMDljOWQ2YjY2ZVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEF1ZyAyNCAwNjo0ODowNCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvbWVzaC5jIGIvbmV0L21hYzgwMjExL21lc2guY1xcbmluZGV4IGQ0NTA3ZTRlNmVjMTYuLjkzOGZhZDgxMjk1NzcgMTAwNjQ0XFxuLS0tIGEvbmV0L21hYzgwMjExL21lc2guY1xcbisrKyBiL25ldC9tYWM4MDIxMS9tZXNoLmNcXG5AQCAtMTIwMSw2ICsxMjAxLDcgQEAgdm9pZCBpZWVlODAyMTFfc3RvcF9tZXNoKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxcbiBcXHRzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCA9IHNkYXRhLVxcdTAwM2Vsb2NhbDtcXG4gXFx0c3RydWN0IGllZWU4MDIxMV9pZl9tZXNoICppZm1zaCA9IFxcdTAwMjZzZGF0YS1cXHUwMDNldS5tZXNoO1xcbiBcXHRzdHJ1Y3QgYmVhY29uX2RhdGEgKmJjbjtcXG4rXFx0c3RydWN0IG1lc2hfY3NhX3NldHRpbmdzICpjc2E7XFxuIFxcbiBcXHRuZXRpZl9jYXJyaWVyX29mZihzZGF0YS1cXHUwMDNlZGV2KTtcXG4gXFxuQEAgLTEyMjIsNiArMTIyMywxMyBAQCB2b2lkIGllZWU4MDIxMV9zdG9wX21lc2goc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXFxuIFxcdFJDVV9JTklUX1BPSU5URVIoaWZtc2gtXFx1MDAzZWJlYWNvbiwgTlVMTCk7XFxuIFxcdGtmcmVlX3JjdShiY24sIHJjdV9oZWFkKTtcXG4gXFxuK1xcdC8qIGZyZWUgYW55IHBlbmRpbmcsIHVuZmluaXNoZWQgY2hhbm5lbCBzd2l0Y2ggKi9cXG4rXFx0Y3NhID0gc2RhdGFfZGVyZWZlcmVuY2UoaWZtc2gtXFx1MDAzZWNzYSwgc2RhdGEpO1xcbitcXHRpZiAoY3NhKSB7XFxuK1xcdFxcdFJDVV9JTklUX1BPSU5URVIoaWZtc2gtXFx1MDAzZWNzYSwgTlVMTCk7XFxuK1xcdFxcdGtmcmVlX3JjdShjc2EsIHJjdV9oZWFkKTtcXG4rXFx0fVxcbitcXG4gXFx0LyogZnJlZSBhbGwgcG90ZW50aWFsbHkgc3RpbGwgYnVmZmVyZWQgZ3JvdXAtYWRkcmVzc2VkIGZyYW1lcyAqL1xcbiBcXHRsb2NhbC1cXHUwMDNldG90YWxfcHNfYnVmZmVyZWQgLT0gc2tiX3F1ZXVlX2xlbihcXHUwMDI2aWZtc2gtXFx1MDAzZXBzLmJjX2J1Zik7XFxuIFxcdHNrYl9xdWV1ZV9wdXJnZShcXHUwMDI2aWZtc2gtXFx1MDAzZXBzLmJjX2J1Zik7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA2OjQ4OjA3LjIzMzY5MzE5N1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjM2MzQyMDE0MDcyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1BQzgwMjExX01FU0hcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpZWVlODAyMTFfc3RvcF9tZXNoXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBvZiBgaWZtc2gtXFx1MDAzZWNzYWAgaW4gYGllZWU4MDIxMV9zdG9wX21lc2hgIGR1cmluZyBtYWM4MDIxMSBtZXNoIHRlYXJkb3duLiBUaGlzIGlzIHJlYWNoYWJsZSB2aWEgbmw4MDIxMSBtZXNoIG9wZXJhdGlvbnMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGZhZjliNjJhOTAxNTgwYmQxMmJkNDdjOGRlODgzMzA5YzlkNmI2NmVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAyNCAwNjo0ODowNCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9tZXNoLmMgYi9uZXQvbWFjODAyMTEvbWVzaC5jXG5pbmRleCBkNDUwN2U0ZTZlYzE2Li45MzhmYWQ4MTI5NTc3IDEwMDY0NFxuLS0tIGEvbmV0L21hYzgwMjExL21lc2guY1xuKysrIGIvbmV0L21hYzgwMjExL21lc2guY1xuQEAgLTEyMDEsNiArMTIwMSw3IEBAIHZvaWQgaWVlZTgwMjExX3N0b3BfbWVzaChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSlcbiBcdHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsID0gc2RhdGEtXHUwMDNlbG9jYWw7XG4gXHRzdHJ1Y3QgaWVlZTgwMjExX2lmX21lc2ggKmlmbXNoID0gXHUwMDI2c2RhdGEtXHUwMDNldS5tZXNoO1xuIFx0c3RydWN0IGJlYWNvbl9kYXRhICpiY247XG4rXHRzdHJ1Y3QgbWVzaF9jc2Ffc2V0dGluZ3MgKmNzYTtcbiBcbiBcdG5ldGlmX2NhcnJpZXJfb2ZmKHNkYXRhLVx1MDAzZWRldik7XG4gXG5AQCAtMTIyMiw2ICsxMjIzLDEzIEBAIHZvaWQgaWVlZTgwMjExX3N0b3BfbWVzaChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSlcbiBcdFJDVV9JTklUX1BPSU5URVIoaWZtc2gtXHUwMDNlYmVhY29uLCBOVUxMKTtcbiBcdGtmcmVlX3JjdShiY24sIHJjdV9oZWFkKTtcbiBcbitcdC8qIGZyZWUgYW55IHBlbmRpbmcsIHVuZmluaXNoZWQgY2hhbm5lbCBzd2l0Y2ggKi9cbitcdGNzYSA9IHNkYXRhX2RlcmVmZXJlbmNlKGlmbXNoLVx1MDAzZWNzYSwgc2RhdGEpO1xuK1x0aWYgKGNzYSkge1xuK1x0XHRSQ1VfSU5JVF9QT0lOVEVSKGlmbXNoLVx1MDAzZWNzYSwgTlVMTCk7XG4rXHRcdGtmcmVlX3JjdShjc2EsIHJjdV9oZWFkKTtcbitcdH1cbitcbiBcdC8qIGZyZWUgYWxsIHBvdGVudGlhbGx5IHN0aWxsIGJ1ZmZlcmVkIGdyb3VwLWFkZHJlc3NlZCBmcmFtZXMgKi9cbiBcdGxvY2FsLVx1MDAzZXRvdGFsX3BzX2J1ZmZlcmVkIC09IHNrYl9xdWV1ZV9sZW4oXHUwMDI2aWZtc2gtXHUwMDNlcHMuYmNfYnVmKTtcbiBcdHNrYl9xdWV1ZV9wdXJnZShcdTAwMjZpZm1zaC1cdTAwM2Vwcy5iY19idWYpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDY6NDg6MDcuMjMzNjk0NDk3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTg3MDA3NDA0NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBQYXRjaCBpbiBuZXQvbWFjODAyMTEvbWVzaC5jKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyBgbmV0L21hYzgwMjExL21lc2guY2AuIFNwZWNpZmljYWxseSwgaXQncyBtb2RpZnlpbmcgdGhlIGBpZWVlODAyMTFfc3RvcF9tZXNoYCBmdW5jdGlvbi4gVGhlIGtleSBjaGFuZ2Ugc2VlbXMgdG8gYmUgZnJlZWluZyBgaWZtc2gtXHUwMDNlY3NhYCBpZiBpdCdzIG5vdCBudWxsLiBUaGlzIGlzIHByb2JhYmx5IGEgYnVnIGZpeCwgbGlrZWx5IGFkZHJlc3NpbmcgYSBtZW1vcnkgbGVhayBvciBhIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBzaXR1YXRpb24g4oCTIGdvb2QgY2F0Y2guXG5cbk5vdywgbXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gdW5kZXJzdGFuZCB0aGUgaW1wYWN0IG9mIHRoaXMgY2hhbmdlLiBJcyB0aGlzIGBpZWVlODAyMTFfc3RvcF9tZXNoYCBmdW5jdGlvbiBldmVuIHJlYWNoYWJsZT8gSXQncyBwYXJ0IG9mIHRoZSBtYWM4MDIxMSBtZXNoIG5ldHdvcmtpbmcgc3Vic3lzdGVtLCBzbyBJIGtub3cgd2UncmUgZGVhbGluZyB3aXRoIHRoYXQgc3BlY2lmaWMgZnVuY3Rpb25hbGl0eS4gQW5kIHRoYXQncyBpbnRlcmVzdGluZyBiZWNhdXNlIG1hYzgwMjExIGlzIHNvbWV0aGluZyB3ZSBjYW4gZnV6eiwgZXNwZWNpYWxseSB3aXRoIHRoZSBgbWFjODAyMTFfaHdzaW1gIG1vZHVsZS4gSXQnZCBiZSBncmVhdCB0byB0ZXN0IHRoaXMgZml4IHRob3JvdWdobHkuXG5cbkkgbmVlZCB0byBjb25maXJtIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbiBmb3IgbWFjODAyMTEgbWVzaCBzdXBwb3J0LiBJdCdzIHByb2JhYmx5IGBDT05GSUdfTUFDODAyMTFfTUVTSGAsIHJpZ2h0PyBCdXQsIGp1c3QgdG8gYmUgc3VyZSwgaXMgdGhlcmUgc29tZXRoaW5nIGVsc2UgcmVsYXRlZCB0byB0aGlzPyBJIGJldHRlciB2ZXJpZnkgaXQncyB0aGUgb25seSBvbmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyNTIsIk91dHB1dFRva2VucyI6MjIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMDEsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwNjo0ODoxMy4xMDM3NzIwNTRaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTU1NTgzMzQzMywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJNQUM4MDIxMV9NRVNIXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvbWlwcy9jb25maWdzL21hbHRhX2RlZmNvbmZpZz0yMDc9Q09ORklHX01BQzgwMjExPW1cXG5hcmNoL21pcHMvY29uZmlncy9tYWx0YV9kZWZjb25maWc6MjA4OkNPTkZJR19NQUM4MDIxMV9NRVNIPXlcXG5hcmNoL21pcHMvY29uZmlncy9tYWx0YV9kZWZjb25maWctMjA5LUNPTkZJR19SRktJTEw9bVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGFfa3ZtX2RlZmNvbmZpZz0yMTE9Q09ORklHX01BQzgwMjExPW1cXG5hcmNoL21pcHMvY29uZmlncy9tYWx0YV9rdm1fZGVmY29uZmlnOjIxMjpDT05GSUdfTUFDODAyMTFfTUVTSD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGFfa3ZtX2RlZmNvbmZpZy0yMTMtQ09ORklHX1JGS0lMTD1tXFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9tYWx0YXVwX3hwYV9kZWZjb25maWc9MjA4PUNPTkZJR19NQUM4MDIxMT1tXFxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGF1cF94cGFfZGVmY29uZmlnOjIwOTpDT05GSUdfTUFDODAyMTFfTUVTSD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGF1cF94cGFfZGVmY29uZmlnLTIxMC1DT05GSUdfUkZLSUxMPW1cXG4tLVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzZ4eF9kZWZjb25maWc9Mjg2PUNPTkZJR19NQUM4MDIxMT1tXFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNnh4X2RlZmNvbmZpZzoyODc6Q09ORklHX01BQzgwMjExX01FU0g9eVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzZ4eF9kZWZjb25maWctMjg4LUNPTkZJR19NQUM4MDIxMV9MRURTPXlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmM9OTYzMD1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBhdGgxMGtfaWZfbGltaXRzW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jLTk2NDYtXFx0XFx0LnR5cGVzXFx0PSBCSVQoTkw4MDIxMV9JRlRZUEVfQVApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYzo5NjQ3OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMtOTY0OC1cXHRcXHRcXHR8IEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYz05NjUzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IGF0aDEwa18xMHhfaWZfbGltaXRzW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jLTk2NTYtXFx0XFx0LnR5cGVzXFx0PSBCSVQoTkw4MDIxMV9JRlRZUEVfQVApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYzo5NjU3OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMtOTY1OC1cXHRcXHRcXHR8IEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYz05Njk0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IGF0aDEwa190bHZfaWZfbGltaXRbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMtOTcwMS1cXHRcXHQudHlwZXMgPSBCSVQoTkw4MDIxMV9JRlRZUEVfQVApIHxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jOjk3MDI6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYy05NzAzLVxcdFxcdFxcdCBCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVCkgfFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYz05NzE0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IGF0aDEwa190bHZfcWNzX2lmX2xpbWl0W10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jLTk3MjUtXFx0XFx0LnR5cGVzID0gQklUKE5MODAyMTFfSUZUWVBFX0FQKSB8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYzo5NzI2OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMtOTcyNy1cXHRcXHRcXHQgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpIHxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmM9OTc4Nz1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBhdGgxMGtfMTBfNF9pZl9saW1pdHNbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMtOTc5NC1cXHRcXHQudHlwZXNcXHQ9IEJJVChOTDgwMjExX0lGVFlQRV9BUClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jOjk3OTU6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYy05Nzk2LVxcdFxcdFxcdHwgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL21hYy5jPTEwMjg2PXN0YXRpYyBpbnQgYXRoMTFrX21hY19zZXR1cF9pZmFjZV9jb21iaW5hdGlvbnMoc3RydWN0IGF0aDExayAqYXIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL21hYy5jLTEwMzE5LVxcdGxpbWl0c1sxXS50eXBlcyB8PSBCSVQoTkw4MDIxMV9JRlRZUEVfQVApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvbWFjLmM6MTAzMjA6XFx0aWYgKElTX0VOQUJMRUQoQ09ORklHX01BQzgwMjExX01FU0gpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9tYWMuYy0xMDMyMS1cXHQgICAgYWItXFx1MDAzZWh3X3BhcmFtcy5pbnRlcmZhY2VfbW9kZXMgXFx1MDAyNiBCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVCkpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jPTE0MzY3PXN0YXRpYyBib29sIGF0aDEya19tYWNfaXNfaWZhY2VfbW9kZV9lbmFibGUoc3RydWN0IGF0aDEya19odyAqYWgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTE0Mzc1LVxcdGlmICh0eXBlID09IE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jOjE0Mzc2OlxcdFxcdGlmIChJU19FTkFCTEVEKENPTkZJR19NQUM4MDIxMV9NRVNIKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTE0Mzc3LVxcdFxcdFxcdG1vZGUgPSBCSVQodHlwZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jPTE0Mzk0PWF0aDEya19tYWNfc2V0dXBfcmFkaW9faWZhY2VfY29tYihzdHJ1Y3QgYXRoMTJrICphcixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmMtMTQ0MDQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYzoxNDQwNTpcXHRtZXNoID0gSVNfRU5BQkxFRChDT05GSUdfTUFDODAyMTFfTUVTSCkgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTE0NDA2LVxcdCAgICAgICAoaW50ZXJmYWNlX21vZGVzIFxcdTAwMjYgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg1ay9iYXNlLmM9MjU1OD1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBpZl9saW1pdHNbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg1ay9iYXNlLmMtMjU2MC1cXHR7IC5tYXggPSA0LFxcdC50eXBlcyA9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDVrL2Jhc2UuYzoyNTYxOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg1ay9iYXNlLmMtMjU2Mi1cXHRcXHRcXHRcXHQgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpIHxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9odGNfZHJ2X2luaXQuYz02OTU9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfaWZhY2VfbGltaXQgaWZfbGltaXRzW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaHRjX2Rydl9pbml0LmMtNjk4LVxcdHsgLm1heCA9IDIsXFx0LnR5cGVzID0gQklUKE5MODAyMTFfSUZUWVBFX0FQKSB8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2h0Y19kcnZfaW5pdC5jOjY5OTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaHRjX2Rydl9pbml0LmMtNzAwLVxcdFxcdFxcdFxcdCBCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVCkgfFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2luaXQuYz04Mjk9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfaWZhY2VfbGltaXQgaWZfbGltaXRzW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaW5pdC5jLTgzMS1cXHR7IC5tYXggPSA4LFxcdC50eXBlcyA9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2luaXQuYzo4MzI6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2luaXQuYy04MzMtXFx0XFx0XFx0XFx0IEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKSB8XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvZncuYz0yMjM9c3RhdGljIGludCBjYXJsOTE3MF9mdyhzdHJ1Y3QgYXI5MTcwICphciwgY29uc3QgX191OCAqZGF0YSwgc2l6ZV90IGxlbilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9mdy5jLTM0Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvZncuYzozNDM6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL2Z3LmMtMzQ0LVxcdFxcdFxcdGlmX2NvbWJfdHlwZXMgfD1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvZncuYy0zNDUtXFx0XFx0XFx0XFx0QklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9mdy5jOjM0NjojZW5kaWYgLyogQ09ORklHX01BQzgwMjExX01FU0ggKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvZncuYy0zNDctXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jPTUxOD1tdDc2X2FsbG9jX3BoeShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgdW5zaWduZWQgaW50IHNpemUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtNTM5LVxcdFxcdEJJVChOTDgwMjExX0lGVFlQRV9BUCkgfFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYzo1NDA6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTU0MS1cXHRcXHRCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVCkgfFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jPTY2OT1tdDc2X2FsbG9jX2RldmljZShzdHJ1Y3QgZGV2aWNlICpwZGV2LCB1bnNpZ25lZCBpbnQgc2l6ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy03MTEtXFx0XFx0QklUKE5MODAyMTFfSUZUWVBFX0FQKSB8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjcxMjojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtNzEzLVxcdFxcdEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKSB8XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM9MzE1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IGlmX2xpbWl0c1tdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTMyMS1cXHRcXHQudHlwZXMgPSBCSVQoTkw4MDIxMV9JRlRZUEVfU1RBVElPTikgfFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzozMjI6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTMyMy1cXHRcXHRcXHQgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpIHxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2luaXQuYz0yMjk9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfaWZhY2VfbGltaXQgaWZfbGltaXRzW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9pbml0LmMtMjM1LVxcdFxcdC50eXBlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9BUCkgfFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2luaXQuYzoyMzY6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvaW5pdC5jLTIzNy1cXHRcXHRcXHQgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpIHxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91dGlsLmM9MzM9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfaWZhY2VfbGltaXQgbXQ3NngwMl9pZl9saW1pdHNbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91dGlsLmMtMzktXFx0XFx0LnR5cGVzID0gQklUKE5MODAyMTFfSUZUWVBFX1NUQVRJT04pIHxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXRpbC5jOjQwOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91dGlsLmMtNDEtXFx0XFx0XFx0IEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKSB8XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXRpbC5jPTQ5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IG10NzZ4MDJ1X2lmX2xpbWl0c1tdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3V0aWwuYy01NS1cXHRcXHQudHlwZXMgPSBCSVQoTkw4MDIxMV9JRlRZUEVfU1RBVElPTikgfFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91dGlsLmM6NTY6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3V0aWwuYy01Ny1cXHRcXHRcXHQgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpIHxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0xNT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBpZl9saW1pdHNbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0yMS1cXHRcXHQudHlwZXMgPSBCSVQoTkw4MDIxMV9JRlRZUEVfQVApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjIyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0yMy1cXHRcXHRcXHQgfCBCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz05MzA9bXQ3OTE1X3NldF9zdHJlYW1faGVfdHhiZl9jYXBzKHN0cnVjdCBtdDc5MTVfcGh5ICpwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtOTQ1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzo5NDY6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTk0Ny1cXHRpZiAodmlmID09IE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9MTAyMD1tdDc5MTVfaW5pdF9oZV9jYXBzKHN0cnVjdCBtdDc5MTVfcGh5ICpwaHksIGVudW0gbmw4MDIxMV9iYW5kIGJhbmQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTA1OS1cXHRcXHRjYXNlIE5MODAyMTFfSUZUWVBFX0FQOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoxMDYwOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMDYxLVxcdFxcdGNhc2UgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVDpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xNz1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBpZl9saW1pdHNfZ2xvYmFsID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTIxLVxcdFxcdCB8IEJJVChOTDgwMjExX0lGVFlQRV9BUClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MjI6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTIzLVxcdFxcdCB8IEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTUxPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IGlmX2xpbWl0c1tdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTU0LVxcdFxcdC50eXBlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9BUClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NTU6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTU2LVxcdFxcdFxcdCB8IEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTEzNTA9bXQ3OTk2X3NldF9zdHJlYW1faGVfdHhiZl9jYXBzKHN0cnVjdCBtdDc5OTZfcGh5ICpwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTM1OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTM1OTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTM2MC1cXHRpZiAodmlmID09IE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MTY5OT1fX210Nzk5Nl9zZXRfc3RyZWFtX2hlX2VodF9jYXBzKHN0cnVjdCBtdDc5OTZfcGh5ICpwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTcwOS1cXHRcXHRjYXNlIE5MODAyMTFfSUZUWVBFX0FQOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNzEwOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNzExLVxcdFxcdGNhc2UgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVDpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyeDAwZGV2LmM9MTMyNj1zdGF0aWMgaW5saW5lIHZvaWQgcnQyeDAwbGliX3NldF9pZl9jb21iaW5hdGlvbnMoc3RydWN0IHJ0MngwMF9kZXYgKnJ0MngwMGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyeDAwZGV2LmMtMTMzOS1cXHRpZl9saW1pdC1cXHUwMDNldHlwZXMgPSBCSVQoTkw4MDIxMV9JRlRZUEVfQVApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyeDAwZGV2LmM6MTM0MDojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MngwMGRldi5jLTEzNDEtXFx0aWZfbGltaXQtXFx1MDAzZXR5cGVzIHw9IEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyeDAwZGV2LmM9MTM3ND1pbnQgcnQyeDAwbGliX3Byb2JlX2RldihzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDJ4MDBkZXYuYy0xNDU5LVxcdFxcdCAgICBCSVQoTkw4MDIxMV9JRlRZUEVfQURIT0MpIHxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MngwMGRldi5jOjE0NjA6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDJ4MDBkZXYuYy0xNDYxLVxcdFxcdCAgICBCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVCkgfFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdGkvd2wxOHh4L21haW4uYz0xODc2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IHdsMTh4eF9pZmFjZV9saW1pdHNbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3RpL3dsMTh4eC9tYWluLmMtMTg4NS1cXHRcXHRcXHQgfCBCSVQoTkw4MDIxMV9JRlRZUEVfUDJQX0NMSUVOVClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy90aS93bDE4eHgvbWFpbi5jOjE4ODY6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdGkvd2wxOHh4L21haW4uYy0xODg3LVxcdFxcdFxcdCB8IEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdGkvd2wxOHh4L21haW4uYz0xODk2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IHdsMTh4eF9pZmFjZV9hcF9saW1pdHNbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3RpL3dsMTh4eC9tYWluLmMtMTkwMC1cXHR9LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3RpL3dsMTh4eC9tYWluLmM6MTkwMTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5kcml2ZXJzL25ldC93aXJlbGVzcy90aS93bDE4eHgvbWFpbi5jLTE5MDItXFx0e1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdGkvd2xjb3JlL21haW4uYz02MjA5PXN0YXRpYyBpbnQgd2wxMjcxX2luaXRfaWVlZTgwMjExKHN0cnVjdCB3bDEyNzEgKndsKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdGkvd2xjb3JlL21haW4uYy02MjQ1LVxcdFxcdFxcdFxcdFxcdCBCSVQoTkw4MDIxMV9JRlRZUEVfUDJQX0NMSUVOVCkgfFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3RpL3dsY29yZS9tYWluLmM6NjI0NjojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5kcml2ZXJzL25ldC93aXJlbGVzcy90aS93bGNvcmUvbWFpbi5jLTYyNDctXFx0XFx0XFx0XFx0XFx0IEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKSB8XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltX21haW4uYz00NTE4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3NiYW5kX2lmdHlwZV9kYXRhIHNiYW5kX2NhcGFfMmdoeltdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9tYWM4MDIxMV9od3NpbV9tYWluLmMtNDc1MS1cXHR9LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvbWFjODAyMTFfaHdzaW1fbWFpbi5jOjQ3NTI6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9tYWM4MDIxMV9od3NpbV9tYWluLmMtNDc1My1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltX21haW4uYz00Nzk1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3NiYW5kX2lmdHlwZV9kYXRhIHNiYW5kX2NhcGFfNWdoeltdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9tYWM4MDIxMV9od3NpbV9tYWluLmMtNTA2MS1cXHR9LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvbWFjODAyMTFfaHdzaW1fbWFpbi5jOjUwNjI6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9tYWM4MDIxMV9od3NpbV9tYWluLmMtNTA2My1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltX21haW4uYz01MTA4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3NiYW5kX2lmdHlwZV9kYXRhIHNiYW5kX2NhcGFfNmdoeltdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9tYWM4MDIxMV9od3NpbV9tYWluLmMtNTQxNi1cXHR9LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvbWFjODAyMTFfaHdzaW1fbWFpbi5jOjU0MTc6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9tYWM4MDIxMV9od3NpbV9tYWluLmMtNTQxOC1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltX21haW4uYz01NjA4PXN0YXRpYyB2b2lkIG1hYzgwMjExX2h3c2ltX3NiYW5kX2NhcGFiKHN0cnVjdCBpZWVlODAyMTFfc3VwcG9ydGVkX2JhbmQgKnNiYW5kKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9tYWM4MDIxMV9od3NpbV9tYWluLmMtNTYyNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltX21haW4uYzo1NjI1OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvbWFjODAyMTFfaHdzaW1fbWFpbi5jLTU2MjYtI2RlZmluZSBIV1NJTV9NRVNIX0JJVCBCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVClcXG4tLVxcbmluY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmg9MTQ0PXN0YXRpYyBpbmxpbmUgYm9vbCBkZXZfeG1pdF9jb21wbGV0ZShpbnQgcmMpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L25ldGRldmljZS5oLTE2NS0jZWxpZiBkZWZpbmVkKENPTkZJR19XTEFOKVxcbmluY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmg6MTY2OiMgaWYgZGVmaW5lZChDT05GSUdfTUFDODAyMTFfTUVTSClcXG5pbmNsdWRlL2xpbnV4L25ldGRldmljZS5oLTE2Ny0jICBkZWZpbmUgTExfTUFYX0hFQURFUiAxMjhcXG4tLVxcbmluY2x1ZGUvbmV0L21hYzgwMjExLmg9MjMwNz1zdGF0aWMgaW5saW5lIGJvb2wgaWVlZTgwMjExX3ZpZl9pc19tZXNoKHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpXFxuaW5jbHVkZS9uZXQvbWFjODAyMTEuaC0yMzA4LXtcXG5pbmNsdWRlL25ldC9tYWM4MDIxMS5oOjIzMDk6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuaW5jbHVkZS9uZXQvbWFjODAyMTEuaC0yMzEwLVxcdHJldHVybiB2aWYtXFx1MDAzZXR5cGUgPT0gTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVDtcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTYwPWNvbmZpZyBNQUM4MDIxMV9LVU5JVF9URVNUXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy02OS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3MDpjb25maWcgTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTcxLVxcdGJvb2wgXFxcIkVuYWJsZSBtYWM4MDIxMSBtZXNoIG5ldHdvcmtpbmcgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTIwOT1jb25maWcgTUFDODAyMTFfTVBMX0RFQlVHXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMTEtXFx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXFxubmV0L21hYzgwMjExL0tjb25maWc6MjEyOlxcdGRlcGVuZHMgb24gTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIxMy1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0yMjI9Y29uZmlnIE1BQzgwMjExX01QQVRIX0RFQlVHXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjQtXFx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXFxubmV0L21hYzgwMjExL0tjb25maWc6MjI1OlxcdGRlcGVuZHMgb24gTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyNi1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0yMzU9Y29uZmlnIE1BQzgwMjExX01IV01QX0RFQlVHXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMzctXFx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXFxubmV0L21hYzgwMjExL0tjb25maWc6MjM4OlxcdGRlcGVuZHMgb24gTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzOS1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDctXFxubmV0L21hYzgwMjExL0tjb25maWc6MjQ4OmNvbmZpZyBNQUM4MDIxMV9NRVNIX1NZTkNfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDktXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIHN5bmNocm9uaXphdGlvbiBkZWJ1Z2dpbmdcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWctMjUwLVxcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI1MTpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNTItXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjU4LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI1OTpjb25maWcgTUFDODAyMTFfTUVTSF9DU0FfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNjAtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIGNoYW5uZWwgc3dpdGNoIGRlYnVnZ2luZ1xcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNjEtXFx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXFxubmV0L21hYzgwMjExL0tjb25maWc6MjYyOlxcdGRlcGVuZHMgb24gTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2My1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNjktXFxubmV0L21hYzgwMjExL0tjb25maWc6MjcwOmNvbmZpZyBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjcxLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBwb3dlcnNhdmUgZGVidWdnaW5nXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI3Mi1cXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNzM6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL0tjb25maWctMjc0LVxcdGhlbHBcXG4tLVxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZT00MT1tYWM4MDIxMS0kKENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTKSArPSBcXFxcXFxuLS1cXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtNDYtXFxubmV0L21hYzgwMjExL01ha2VmaWxlOjQ3Om1hYzgwMjExLSQoQ09ORklHX01BQzgwMjExX01FU0gpICs9IFxcXFxcXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtNDgtXFx0bWVzaC5vIFxcXFxcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYz02MTM9c3RhdGljIGludCBpZWVlODAyMTFfYWRkX2tleShzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxcbi0tXFxubmV0L21hYzgwMjExL2NmZy5jLTcxMC1cXHRjYXNlIE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQ6XFxubmV0L21hYzgwMjExL2NmZy5jOjcxMTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvY2ZnLmMtNzEyLVxcdFxcdGlmIChzZGF0YS1cXHUwMDNldS5tZXNoLnNlY3VyaXR5ICE9IElFRUU4MDIxMV9NRVNIX1NFQ19OT05FKVxcbi0tXFxubmV0L21hYzgwMjExL2NmZy5jPTIxOTA9c3RhdGljIHZvaWQgc3RhX2FwcGx5X21lc2hfcGFyYW1zKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsLFxcbi0tXFxubmV0L21hYzgwMjExL2NmZy5jLTIxOTMte1xcbm5ldC9tYWM4MDIxMS9jZmcuYzoyMTk0OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9jZmcuYy0yMTk1LVxcdHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhID0gc3RhLVxcdTAwM2VzZGF0YTtcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYz0yNzg3PXN0YXRpYyBpbnQgaWVlZTgwMjExX2NoYW5nZV9zdGF0aW9uKHN0cnVjdCB3aXBoeSAqd2lwaHksXFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmMtMjg5My1cXG5uZXQvbWFjODAyMTEvY2ZnLmM6Mjg5NDojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvY2ZnLmMtMjg5NS1zdGF0aWMgaW50IGllZWU4MDIxMV9hZGRfbXBhdGgoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYz00NDI4PXN0YXRpYyBpbnQgaWVlZTgwMjExX3NldF9hZnRlcl9jc2FfYmVhY29uKHN0cnVjdCBpZWVlODAyMTFfbGlua19kYXRhICpsaW5rX2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmMtNDQ1MS1cXHRcXHRicmVhaztcXG5uZXQvbWFjODAyMTEvY2ZnLmM6NDQ1MjojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvY2ZnLmMtNDQ1My1cXHRjYXNlIE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQ6XFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmM9NDU2Mz1zdGF0aWMgaW50IGllZWU4MDIxMV9zZXRfY3NhX2JlYWNvbihzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfZGF0YSAqbGlua19kYXRhLFxcbi0tXFxubmV0L21hYzgwMjExL2NmZy5jLTQ2NTQtXFx0XFx0YnJlYWs7XFxubmV0L21hYzgwMjExL2NmZy5jOjQ2NTU6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL2NmZy5jLTQ2NTYtXFx0Y2FzZSBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UOiB7XFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmM9NTk3Nj1jb25zdCBzdHJ1Y3QgY2ZnODAyMTFfb3BzIG1hYzgwMjExX2NvbmZpZ19vcHMgPSB7XFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmMtNTk5Ni1cXHQuZHVtcF9zdXJ2ZXkgPSBpZWVlODAyMTFfZHVtcF9zdXJ2ZXksXFxubmV0L21hYzgwMjExL2NmZy5jOjU5OTc6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL2NmZy5jLTU5OTgtXFx0LmFkZF9tcGF0aCA9IGllZWU4MDIxMV9hZGRfbXBhdGgsXFxuLS1cXG5uZXQvbWFjODAyMTEvZGVidWcuaC01Mi1cXG5uZXQvbWFjODAyMTEvZGVidWcuaDo1MzojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hfU1lOQ19ERUJVR1xcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjU0OiNkZWZpbmUgTUFDODAyMTFfTUVTSF9TWU5DX0RFQlVHIDFcXG5uZXQvbWFjODAyMTEvZGVidWcuaC01NS0jZWxzZVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjU2OiNkZWZpbmUgTUFDODAyMTFfTUVTSF9TWU5DX0RFQlVHIDBcXG5uZXQvbWFjODAyMTEvZGVidWcuaC01Ny0jZW5kaWZcXG5uZXQvbWFjODAyMTEvZGVidWcuaC01OC1cXG5uZXQvbWFjODAyMTEvZGVidWcuaDo1OTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hfQ1NBX0RFQlVHXFxubmV0L21hYzgwMjExL2RlYnVnLmg6NjA6I2RlZmluZSBNQUM4MDIxMV9NRVNIX0NTQV9ERUJVRyAxXFxubmV0L21hYzgwMjExL2RlYnVnLmgtNjEtI2Vsc2VcXG5uZXQvbWFjODAyMTEvZGVidWcuaDo2MjojZGVmaW5lIE1BQzgwMjExX01FU0hfQ1NBX0RFQlVHIDBcXG5uZXQvbWFjODAyMTEvZGVidWcuaC02My0jZW5kaWZcXG5uZXQvbWFjODAyMTEvZGVidWcuaC02NC1cXG5uZXQvbWFjODAyMTEvZGVidWcuaDo2NTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hfUFNfREVCVUdcXG5uZXQvbWFjODAyMTEvZGVidWcuaDo2NjojZGVmaW5lIE1BQzgwMjExX01FU0hfUFNfREVCVUcgMVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTY3LSNlbHNlXFxubmV0L21hYzgwMjExL2RlYnVnLmg6Njg6I2RlZmluZSBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHIDBcXG5uZXQvbWFjODAyMTEvZGVidWcuaC02OS0jZW5kaWZcXG4tLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oPTEyNT1kbyB7XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnLmgtMjE4LSNkZWZpbmUgbXN5bmNfZGJnKHNkYXRhLCBmbXQsIC4uLilcXHRcXHRcXHRcXHRcXHRcXFxcXFxubmV0L21hYzgwMjExL2RlYnVnLmg6MjE5OlxcdF9zZGF0YV9kYmcoTUFDODAyMTFfTUVTSF9TWU5DX0RFQlVHLFxcdFxcdFxcdFxcdFxcXFxcXG5uZXQvbWFjODAyMTEvZGVidWcuaC0yMjAtXFx0XFx0ICAgc2RhdGEsIGZtdCwgIyNfX1ZBX0FSR1NfXylcXG4tLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTIyMi0jZGVmaW5lIG1jc2FfZGJnKHNkYXRhLCBmbXQsIC4uLilcXHRcXHRcXHRcXHRcXHRcXFxcXFxubmV0L21hYzgwMjExL2RlYnVnLmg6MjIzOlxcdF9zZGF0YV9kYmcoTUFDODAyMTFfTUVTSF9DU0FfREVCVUcsXFx0XFx0XFx0XFx0XFxcXFxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTIyNC1cXHRcXHQgICBzZGF0YSwgZm10LCAjI19fVkFfQVJHU19fKVxcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnLmgtMjI2LSNkZWZpbmUgbXBzX2RiZyhzZGF0YSwgZm10LCAuLi4pXFx0XFx0XFx0XFx0XFx0XFxcXFxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjIyNzpcXHRfc2RhdGFfZGJnKE1BQzgwMjExX01FU0hfUFNfREVCVUcsXFx0XFx0XFx0XFx0XFxcXFxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTIyOC1cXHRcXHQgICBzZGF0YSwgZm10LCAjI19fVkFfQVJHU19fKVxcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmM9NzM2PUlFRUU4MDIxMV9JRl9MSU5LX0ZJTEUoYWRkciwgY29uZi1cXHUwMDNlYWRkciwgTUFDKTtcXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuYy03MzctXFxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmM6NzM4OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTczOS1JRUVFODAyMTFfSUZfRklMRShlc3RhYl9wbGlua3MsIHUubWVzaC5lc3RhYl9wbGlua3MsIEFUT01JQyk7XFxuLS1cXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuYz04Njg9c3RhdGljIHZvaWQgYWRkX2lic3NfZmlsZXMoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXFxuLS1cXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuYy04NzItXFxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmM6ODczOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTg3NC1cXG4tLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jPTkzNz1zdGF0aWMgdm9pZCBhZGRfZmlsZXMoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXFxuLS1cXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuYy05NDktXFx0Y2FzZSBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UOlxcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jOjk1MDojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuYy05NTEtXFx0XFx0YWRkX21lc2hfZmlsZXMoc2RhdGEpO1xcbi0tXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg9NzcwPXN0cnVjdCBpZWVlODAyMTFfaWZfbWVzaCB7XFxuLS1cXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC04NTAtXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg6ODUxOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTg1Mi0jZGVmaW5lIElFRUU4MDIxMV9JRlNUQV9NRVNIX0NUUl9JTkMobXNoLCBuYW1lKVxcdFxcXFxcXG4tLVxcbm5ldC9tYWM4MDIxMS9tYWluLmM9MTEzNz1pbnQgaWVlZTgwMjExX3JlZ2lzdGVyX2h3KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxcbi0tXFxubmV0L21hYzgwMjExL21haW4uYy0xMzkyLVxcbm5ldC9tYWM4MDIxMS9tYWluLmM6MTM5MzojaWZuZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL21haW4uYy0xMzk0LVxcdC8qIG1lc2ggZGVwZW5kcyBvbiBLY29uZmlnLCBidXQgZHJpdmVycyBzaG91bGQgc2V0IGl0IGlmIHRoZXkgd2FudCAqL1xcbi0tXFxubmV0L21hYzgwMjExL21lc2guaD0zNzg9dm9pZCBtZXNoX3BhdGhfcmVmcmVzaChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9tZXNoLmgtMzgwLVxcbm5ldC9tYWM4MDIxMS9tZXNoLmg6MzgxOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9tZXNoLmgtMzgyLXN0YXRpYyBpbmxpbmVcXG4tLVxcbm5ldC9tYWM4MDIxMS9vZmZjaGFubmVsLmM9ODEwPWludCBpZWVlODAyMTFfbWdtdF90eChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxcbi0tXFxubmV0L21hYzgwMjExL29mZmNoYW5uZWwuYy04MzktXFx0XFx0XFx0bmVlZF9vZmZjaGFuID0gdHJ1ZTtcXG5uZXQvbWFjODAyMTEvb2ZmY2hhbm5lbC5jOjg0MDojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvb2ZmY2hhbm5lbC5jLTg0MS1cXHRcXHRmYWxsdGhyb3VnaDtcXG4tLVxcbm5ldC9tYWM4MDIxMS9yeC5jPTI3OTQ9aWVlZTgwMjExX2RlbGl2ZXJfc2tiKHN0cnVjdCBpZWVlODAyMTFfcnhfZGF0YSAqcngpXFxuLS1cXG5uZXQvbWFjODAyMTEvcnguYy0yODkzLVxcbm5ldC9tYWM4MDIxMS9yeC5jOjI4OTQ6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL3J4LmMtMjg5NS1zdGF0aWMgYm9vbFxcbi0tXFxubmV0L21hYzgwMjExL3J4LmM9Mjk2MT1pZWVlODAyMTFfcnhfbWVzaF9kYXRhKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLCBzdHJ1Y3Qgc3RhX2luZm8gKnN0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9yeC5jLTI5NjMte1xcbm5ldC9tYWM4MDIxMS9yeC5jOjI5NjQ6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL3J4LmMtMjk2NS1cXHRzdHJ1Y3QgaWVlZTgwMjExX2lmX21lc2ggKmlmbXNoID0gXFx1MDAyNnNkYXRhLVxcdTAwM2V1Lm1lc2g7XFxuLS1cXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYz00Njg9dm9pZCBzdGFfaW5mb19mcmVlKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsLCBzdHJ1Y3Qgc3RhX2luZm8gKnN0YSlcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTUwNi1cXHRrZnJlZShyY3VfZGVyZWZlcmVuY2VfcmF3KHN0YS1cXHUwMDNlc3RhLnJhdGVzKSk7XFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM6NTA3OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTUwOC1cXHRrZnJlZShzdGEtXFx1MDAzZW1lc2gpO1xcbi0tXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM9NjMzPV9fc3RhX2luZm9fYWxsb2Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy02NjctXFx0d2lwaHlfd29ya19pbml0KFxcdTAwMjZzdGEtXFx1MDAzZWFtcGR1X21sbWUud29yaywgaWVlZTgwMjExX2JhX3Nlc3Npb25fd29yayk7XFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM6NjY4OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTY2OS1cXHRpZiAoaWVlZTgwMjExX3ZpZl9pc19tZXNoKFxcdTAwMjZzZGF0YS1cXHUwMDNldmlmKSkge1xcbi0tXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtNzk1LVxcdHN0YV9pbmZvX2ZyZWVfbGluayhcXHUwMDI2c3RhLVxcdTAwM2VkZWZsaW5rKTtcXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYzo3OTY6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtNzk3LVxcdGtmcmVlKHN0YS1cXHUwMDNlbWVzaCk7XFxuLS1cXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYz0xMTA3PXN0YXRpYyB2b2lkIF9fc3RhX2luZm9fcmVjYWxjX3RpbShzdHJ1Y3Qgc3RhX2luZm8gKnN0YSwgYm9vbCBpZ25vcmVfcGVuZGluZylcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTExMjEtXFx0XFx0cHMgPSBcXHUwMDI2c3RhLVxcdTAwM2VzZGF0YS1cXHUwMDNlYnNzLVxcdTAwM2VwcztcXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYzoxMTIyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTExMjMtXFx0fSBlbHNlIGlmIChpZWVlODAyMTFfdmlmX2lzX21lc2goXFx1MDAyNnN0YS1cXHUwMDNlc2RhdGEtXFx1MDAzZXZpZikpIHtcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jPTI3NDM9c3RhdGljIGlubGluZSB1NjQgc3RhX2dldF9zdGF0c19ieXRlcyhzdHJ1Y3QgaWVlZTgwMjExX3N0YV9yeF9zdGF0cyAqcnhzdGF0cylcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTI3NTUtXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM6Mjc1NjojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy0yNzU3LXN0YXRpYyB2b2lkIHN0YV9zZXRfbWVzaF9zaW5mbyhzdHJ1Y3Qgc3RhX2luZm8gKnN0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jPTMwNzk9dm9pZCBzdGFfc2V0X3NpbmZvKHN0cnVjdCBzdGFfaW5mbyAqc3RhLCBzdHJ1Y3Qgc3RhdGlvbl9pbmZvICpzaW5mbyxcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTMyNjQtXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM6MzI2NTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy0zMjY2LVxcdGlmIChpZWVlODAyMTFfdmlmX2lzX21lc2goXFx1MDAyNnNkYXRhLVxcdTAwM2V2aWYpKVxcbi0tXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmg9NzE1PXN0cnVjdCBzdGFfaW5mbyB7XFxuLS1cXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaC03MzItXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmg6NzMzOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oLTczNC1cXHRzdHJ1Y3QgbWVzaF9zdGEgKm1lc2g7XFxuLS1cXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaD04MDA9c3RhdGljIGlubGluZSBlbnVtIG5sODAyMTFfcGxpbmtfc3RhdGUgc3RhX3BsaW5rX3N0YXRlKHN0cnVjdCBzdGFfaW5mbyAqc3RhKVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oLTgwMS17XFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmg6ODAyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oLTgwMy1cXHRyZXR1cm4gc3RhLVxcdTAwM2VtZXNoLVxcdTAwM2VwbGlua19zdGF0ZTtcXG4tLVxcbm5ldC9tYWM4MDIxMS90eC5jPTI1MDc9aW50IGllZWU4MDIxMV9sb29rdXBfcmFfc3RhKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbi0tXFxubmV0L21hYzgwMjExL3R4LmMtMjUzMS1cXHRcXHRicmVhaztcXG5uZXQvbWFjODAyMTEvdHguYzoyNTMyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS90eC5jLTI1MzMtXFx0Y2FzZSBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UOlxcbi0tXFxubmV0L21hYzgwMjExL3R4LmM9MjY0OD1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmllZWU4MDIxMV9idWlsZF9oZHIoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvdHguYy0yNzQ3LVxcdFxcdGJyZWFrO1xcbm5ldC9tYWM4MDIxMS90eC5jOjI3NDg6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL3R4LmMtMjc0OS1cXHRjYXNlIE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQ6XFxuLS1cXG5uZXQvbWFjODAyMTEvdHguYy0zMDA5LVxcbm5ldC9tYWM4MDIxMS90eC5jOjMwMTA6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL3R4LmMtMzAxMS1cXHRpZiAobWVzaGhkcmxlbiBcXHUwMDNlIDApXFxuLS1cXG5uZXQvd2lyZWxlc3MvY29yZS5jPTE3MDc9c3RhdGljIGludCBjZmc4MDIxMV9uZXRkZXZfbm90aWZpZXJfY2FsbChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLFxcbi0tXFxubmV0L3dpcmVsZXNzL2NvcmUuYy0xNzg5LSNlbmRpZlxcbm5ldC93aXJlbGVzcy9jb3JlLmM6MTc5MDojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvd2lyZWxlc3MvY29yZS5jLTE3OTEtXFx0XFx0Y2FzZSBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UOlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwNjo0ODoxNC42NTk2MDk3NzZaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MjQ0NTg5OTgwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93bjpcblxuKipNZXNoIENvbmZpZ3VyYXRpb24gQ2hlY2sqKlxuXG5BbHJpZ2h0LCB5ZXAsIGNvbmZpcm1lZC4gV2UncmUgZGVhbGluZyB3aXRoIGBDT05GSUdfTUFDODAyMTFfTUVTSGAuIFRoYXQncyB0aGUga2V5LiBOb3csIGxldCdzIGp1c3QgcXVpY2tseSB2ZXJpZnkgc29tZXRoaW5nIGNydWNpYWw6IGNhbiB3ZSBhY3R1YWxseSByZWFjaCBgaWVlZTgwMjExX3N0b3BfbWVzaGA/IFdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgZnVuY3Rpb24gaXMgYWNjZXNzaWJsZSBhbmQgZGVmaW5lZCB3aXRoaW4gdGhlIGN1cnJlbnQgYnVpbGQgZW52aXJvbm1lbnQsIHNpbmNlIHRoYXQncyBhIHByZXR0eSBmdW5kYW1lbnRhbCBvcGVyYXRpb24uIEdvdHRhIGNvbmZpcm0gdGhhdCB0aGUgZnVuY3Rpb24gZXhpc3RzIGFuZCBpcyBpbiBzY29wZSBiZWZvcmUgd2UgZGl2ZSBhbnkgZGVlcGVyLiBJdCdzIGEgZnVuZGFtZW50YWwgY2hlY2ssIG1ha2luZyBzdXJlIHdlIGhhdmVuJ3QgZ290IGFueSBsaW5rYWdlIHByb2JsZW1zLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNDk4MiwiT3V0cHV0VG9rZW5zIjoyNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA2OjQ4OjIwLjkwNDIwMjUxNloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTU0OTQ2MTIyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImllZWU4MDIxMV9zdG9wX21lc2hcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL2NmZy5jPTMzMjY9c3RhdGljIGludCBpZWVlODAyMTFfbGVhdmVfbWVzaChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxubmV0L21hYzgwMjExL2NmZy5jLTMzMzEtXFxubmV0L21hYzgwMjExL2NmZy5jOjMzMzI6XFx0aWVlZTgwMjExX3N0b3BfbWVzaChzZGF0YSk7XFxubmV0L21hYzgwMjExL2NmZy5jLTMzMzMtXFx0aWVlZTgwMjExX2xpbmtfcmVsZWFzZV9jaGFubmVsKFxcdTAwMjZzZGF0YS1cXHUwMDNlZGVmbGluayk7XFxuLS1cXG5uZXQvbWFjODAyMTEvbWVzaC5jPTExNTg9aW50IGllZWU4MDIxMV9zdGFydF9tZXNoKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxcbi0tXFxubmV0L21hYzgwMjExL21lc2guYy0xMTg3LVxcdGlmIChpZWVlODAyMTFfbWVzaF9idWlsZF9iZWFjb24oaWZtc2gpKSB7XFxubmV0L21hYzgwMjExL21lc2guYzoxMTg4OlxcdFxcdGllZWU4MDIxMV9zdG9wX21lc2goc2RhdGEpO1xcbm5ldC9tYWM4MDIxMS9tZXNoLmMtMTE4OS1cXHRcXHRyZXR1cm4gLUVOT01FTTtcXG4tLVxcbm5ldC9tYWM4MDIxMS9tZXNoLmMtMTE5OC1cXG5uZXQvbWFjODAyMTEvbWVzaC5jOjExOTk6dm9pZCBpZWVlODAyMTFfc3RvcF9tZXNoKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxcbm5ldC9tYWM4MDIxMS9tZXNoLmMtMTIwMC17XFxuLS1cXG5uZXQvbWFjODAyMTEvbWVzaC5oPTI3OT1pbnQgaWVlZTgwMjExX3N0YXJ0X21lc2goc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpO1xcbm5ldC9tYWM4MDIxMS9tZXNoLmg6MjgwOnZvaWQgaWVlZTgwMjExX3N0b3BfbWVzaChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSk7XFxubmV0L21hYzgwMjExL21lc2guaC0yODEtdm9pZCBpZWVlODAyMTFfbWVzaF9yb290X3NldHVwKHN0cnVjdCBpZWVlODAyMTFfaWZfbWVzaCAqaWZtc2gpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwNjo0ODoyMi40NTkxNTYxMDhaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMTI5MzI0OTU5MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFBhdGNoIGZvciBGb2N1cyBTeW1ib2wgSWRlbnRpZmljYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCB0cnlpbmcgdG8gZmlndXJlIG91dCB0aGUgYmVzdCBmb2N1cyBzeW1ib2wgZm9yIGZ1enppbmcgYW5kIGFuYWx5c2lzLiBJdCBsb29rcyBsaWtlIGBpZWVlODAyMTFfc3RvcF9tZXNoYCBpcyB0aGUga2V5LiBUaGUgZnVuY3Rpb24gYGllZWU4MDIxMV9zdG9wX21lc2hgIGlzIGNhbGxlZCBmcm9tIGJvdGggYGllZWU4MDIxMV9sZWF2ZV9tZXNoYCBhbmQgYGllZWU4MDIxMV9zdGFydF9tZXNoYC4gIEltcG9ydGFudGx5LCBgaWVlZTgwMjExX2xlYXZlX21lc2hgIGl0c2VsZiBpcyByZWFjaGVkIHRocm91Z2ggdGhlIHN0YW5kYXJkIGBtYWM4MDIxMV9jb25maWdfb3BzLmxlYXZlX21lc2hgIHdoaWNoIGlzLCBvZiBjb3Vyc2UsIGFjY2Vzc2libGUgZnJvbSB1c2Vyc3BhY2UgdGhyb3VnaCBubDgwMjExLiBUaGF0IGNvbmZpcm1zIGl0J3MgYSB2YWxpZCB0YXJnZXQgZm9yIGZ1enppbmcuXG5cblRoZSBjb3JlIG9mIHRoZSBwYXRjaCBpbnZvbHZlcyBmcmVlaW5nIGBpZm1zaC1cdTAwM2Vjc2FgIHdpdGhpbiBgaWVlZTgwMjExX3N0b3BfbWVzaGAsIGFkZHJlc3NpbmcgZWl0aGVyIGEgbWVtb3J5IGxlYWsgb3IgdXNlLWFmdGVyLWZyZWUgdnVsbmVyYWJpbGl0eS4gIGBpZWVlODAyMTFfc3RvcF9tZXNoYCBoYXMgZ290IHRvIGJlIGluIGBGb2N1c1N5bWJvbHNgLCBnaXZlbiBpdHMgZGlyZWN0IGludm9sdmVtZW50IGluIHRoZSBmaXguIExldCdzIG1ha2Ugc3VyZSB0aGUgYE1BQzgwMjExX01FU0hgIGNvbmZpZyBpcyBpbmNsdWRlZCBpbiBgRW5hYmxlQ29uZmlnc2AuXG5cbkkgdG9vayBhIHF1aWNrIGxvb2sgYXJvdW5kIGFuZCBpdCBzZWVtcyBvbmx5IGBpZWVlODAyMTFfc3RvcF9tZXNoYCB3YXMgbW9kaWZpZWQsIHdoaWNoIG1ha2VzIHRoaXMgZXZlbiBjbGVhbmVyLiAgRG91YmxlLWNoZWNraW5nLCBpdCdzIG5vdCBkZWNsYXJlZCBhcyBzdGF0aWMgb3IgaW5saW5lLiBJdCdzIGRlY2xhcmVkIGluIGBuZXQvbWFjODAyMTEvbWVzaC5oYCBhbmQgZGVmaW5lZCBpbiBgbmV0L21hYzgwMjExL21lc2guY2AsIHNvIGl0J3MgZGlyZWN0bHkgYWNjZXNzaWJsZSwgYW5kIGEgc29saWQgZm9jdXMgc3ltYm9sLlxuXG5Ob3csIGxldCBtZSBqdXN0IHF1aWNrbHkgcmV2aXNpdCBgaWVlZTgwMjExX2xlYXZlX21lc2hgIHNpbmNlIGl0J3MgYW4gaW1wb3J0YW50IGVudHJ5IHBvaW50LiBJdCdzIG1hcmtlZCBzdGF0aWMgaW4gYG5ldC9tYWM4MDIxMS9jZmcuY2Agd2hpY2ggbG9va2VkIGxpa2UgYSBwb3RlbnRpYWwgcHJvYmxlbS4gQWgsIHdhaXQgYSBtaW51dGUsIGl0IGlzIGluZGVlZCBhc3NpZ25lZCB0byBgbWFjODAyMTFfY29uZmlnX29wcy5sZWF2ZV9tZXNoYCEgT2theSwgc28gSSBzaG91bGQgZG91YmxlLWNoZWNrIHRoZSBkZWZpbml0aW9uIG9mIGBtYWM4MDIxMV9jb25maWdfb3BzYCBpbiBgbmV0L21hYzgwMjExL2NmZy5jYCBqdXN0IHRvIGJlIGNvbXBsZXRlbHkgY2VydGFpbiBvZiB0aGUgY2FsbCBjaGFpbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MTU3NDAsIk91dHB1dFRva2VucyI6MTcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDY6NDg6MzMuNzUyNDA4NzlaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ0Mjg1OTg4OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJsZWF2ZV9tZXNoXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImluY2x1ZGUvbmV0L2NmZzgwMjExLmg9NDg0Mz1zdHJ1Y3QgbWdtdF9mcmFtZV9yZWdzIHtcXG4tLVxcbmluY2x1ZGUvbmV0L2NmZzgwMjExLmgtNDk0My0gKlxcdChpbnZva2VkIHdpdGggdGhlIHdpcmVsZXNzX2RldiBtdXRleCBoZWxkKVxcbmluY2x1ZGUvbmV0L2NmZzgwMjExLmg6NDk0NDogKiBAbGVhdmVfbWVzaDogbGVhdmUgdGhlIGN1cnJlbnQgbWVzaCBuZXR3b3JrXFxuaW5jbHVkZS9uZXQvY2ZnODAyMTEuaC00OTQ1LSAqXFx0KGludm9rZWQgd2l0aCB0aGUgd2lyZWxlc3NfZGV2IG11dGV4IGhlbGQpXFxuLS1cXG5pbmNsdWRlL25ldC9jZmc4MDIxMS5oPTUyODA9c3RydWN0IGNmZzgwMjExX29wcyB7XFxuLS1cXG5pbmNsdWRlL25ldC9jZmc4MDIxMS5oLTUzNzAtXFx0XFx0XFx0ICAgICBjb25zdCBzdHJ1Y3QgbWVzaF9zZXR1cCAqc2V0dXApO1xcbmluY2x1ZGUvbmV0L2NmZzgwMjExLmg6NTM3MTpcXHRpbnRcXHQoKmxlYXZlX21lc2gpKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xcbmluY2x1ZGUvbmV0L2NmZzgwMjExLmgtNTM3Mi1cXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYz0zMjk2PXN0YXRpYyBpbnQgaWVlZTgwMjExX2pvaW5fbWVzaChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbi0tXFxubmV0L21hYzgwMjExL2NmZy5jLTMzMjUtXFxubmV0L21hYzgwMjExL2NmZy5jOjMzMjY6c3RhdGljIGludCBpZWVlODAyMTFfbGVhdmVfbWVzaChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbm5ldC9tYWM4MDIxMS9jZmcuYy0zMzI3LXtcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYz01OTc2PWNvbnN0IHN0cnVjdCBjZmc4MDIxMV9vcHMgbWFjODAyMTFfY29uZmlnX29wcyA9IHtcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYy02MDA3LVxcdC5qb2luX21lc2ggPSBpZWVlODAyMTFfam9pbl9tZXNoLFxcbm5ldC9tYWM4MDIxMS9jZmcuYzo2MDA4OlxcdC5sZWF2ZV9tZXNoID0gaWVlZTgwMjExX2xlYXZlX21lc2gsXFxubmV0L21hYzgwMjExL2NmZy5jLTYwMDktI2VuZGlmXFxuLS1cXG5uZXQvd2lyZWxlc3MvY29yZS5jPTU0OT1zdHJ1Y3Qgd2lwaHkgKndpcGh5X25ld19ubShjb25zdCBzdHJ1Y3QgY2ZnODAyMTFfb3BzICpvcHMsIGludCBzaXplb2ZfcHJpdixcXG4tLVxcbm5ldC93aXJlbGVzcy9jb3JlLmMtNTYzLVxcdFdBUk5fT04ob3BzLVxcdTAwM2VhZGRfbXBhdGggXFx1MDAyNlxcdTAwMjYgIW9wcy1cXHUwMDNlZGVsX21wYXRoKTtcXG5uZXQvd2lyZWxlc3MvY29yZS5jOjU2NDpcXHRXQVJOX09OKG9wcy1cXHUwMDNlam9pbl9tZXNoIFxcdTAwMjZcXHUwMDI2ICFvcHMtXFx1MDAzZWxlYXZlX21lc2gpO1xcbm5ldC93aXJlbGVzcy9jb3JlLmMtNTY1LVxcdFdBUk5fT04ob3BzLVxcdTAwM2VzdGFydF9wMnBfZGV2aWNlIFxcdTAwMjZcXHUwMDI2ICFvcHMtXFx1MDAzZXN0b3BfcDJwX2RldmljZSk7XFxuLS1cXG5uZXQvd2lyZWxlc3MvY29yZS5jPTE1MDM9dm9pZCBjZmc4MDIxMV9sZWF2ZV9sb2NrZWQoc3RydWN0IGNmZzgwMjExX3JlZ2lzdGVyZWRfZGV2aWNlICpyZGV2LFxcbi0tXFxubmV0L3dpcmVsZXNzL2NvcmUuYy0xNTM3LVxcdGNhc2UgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVDpcXG5uZXQvd2lyZWxlc3MvY29yZS5jOjE1Mzg6XFx0XFx0Y2ZnODAyMTFfbGVhdmVfbWVzaChyZGV2LCBkZXYpO1xcbm5ldC93aXJlbGVzcy9jb3JlLmMtMTUzOS1cXHRcXHRicmVhaztcXG4tLVxcbm5ldC93aXJlbGVzcy9jb3JlLmg9MzU1PWludCBfX2NmZzgwMjExX2pvaW5fbWVzaChzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYsXFxuLS1cXG5uZXQvd2lyZWxlc3MvY29yZS5oLTM1OC1cXHRcXHRcXHQgY29uc3Qgc3RydWN0IG1lc2hfY29uZmlnICpjb25mKTtcXG5uZXQvd2lyZWxlc3MvY29yZS5oOjM1OTppbnQgY2ZnODAyMTFfbGVhdmVfbWVzaChzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYsXFxubmV0L3dpcmVsZXNzL2NvcmUuaC0zNjAtXFx0XFx0XFx0c3RydWN0IG5ldF9kZXZpY2UgKmRldik7XFxuLS1cXG5uZXQvd2lyZWxlc3MvbWVzaC5jPTIyNT1pbnQgY2ZnODAyMTFfc2V0X21lc2hfY2hhbm5lbChzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYsXFxuLS1cXG5uZXQvd2lyZWxlc3MvbWVzaC5jLTI1OS1cXG5uZXQvd2lyZWxlc3MvbWVzaC5jOjI2MDppbnQgY2ZnODAyMTFfbGVhdmVfbWVzaChzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYsXFxubmV0L3dpcmVsZXNzL21lc2guYy0yNjEtXFx0XFx0XFx0c3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbm5ldC93aXJlbGVzcy9tZXNoLmMtMjcwLVxcbm5ldC93aXJlbGVzcy9tZXNoLmM6MjcxOlxcdGlmICghcmRldi1cXHUwMDNlb3BzLVxcdTAwM2VsZWF2ZV9tZXNoKVxcbm5ldC93aXJlbGVzcy9tZXNoLmMtMjcyLVxcdFxcdHJldHVybiAtRU9QTk9UU1VQUDtcXG4tLVxcbm5ldC93aXJlbGVzcy9tZXNoLmMtMjc2LVxcbm5ldC93aXJlbGVzcy9tZXNoLmM6Mjc3OlxcdGVyciA9IHJkZXZfbGVhdmVfbWVzaChyZGV2LCBkZXYpO1xcbm5ldC93aXJlbGVzcy9tZXNoLmMtMjc4LVxcdGlmICghZXJyKSB7XFxuLS1cXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jPTE1MjY1PXN0YXRpYyBpbnQgbmw4MDIxMV9qb2luX21lc2goc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG4tLVxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtMTUzODYtXFxubmV0L3dpcmVsZXNzL25sODAyMTEuYzoxNTM4NzpzdGF0aWMgaW50IG5sODAyMTFfbGVhdmVfbWVzaChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtMTUzODgte1xcbi0tXFxubmV0L3dpcmVsZXNzL25sODAyMTEuYy0xNTM5MS1cXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jOjE1MzkyOlxcdHJldHVybiBjZmc4MDIxMV9sZWF2ZV9tZXNoKHJkZXYsIGRldik7XFxubmV0L3dpcmVsZXNzL25sODAyMTEuYy0xNTM5My19XFxuLS1cXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jPTE5NzMzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2VubF9zbWFsbF9vcHMgbmw4MDIxMV9zbWFsbF9vcHNbXSA9IHtcXG4tLVxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtMjAxNzAtXFx0XFx0LnZhbGlkYXRlID0gR0VOTF9ET05UX1ZBTElEQVRFX1NUUklDVCB8IEdFTkxfRE9OVF9WQUxJREFURV9EVU1QLFxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmM6MjAxNzE6XFx0XFx0LmRvaXQgPSBubDgwMjExX2xlYXZlX21lc2gsXFxubmV0L3dpcmVsZXNzL25sODAyMTEuYy0yMDE3Mi1cXHRcXHQuZmxhZ3MgPSBHRU5MX1VOU19BRE1JTl9QRVJNLFxcbi0tXFxubmV0L3dpcmVsZXNzL3JkZXYtb3BzLmg9MzU0PXN0YXRpYyBpbmxpbmUgaW50IHJkZXZfam9pbl9tZXNoKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcXG4tLVxcbm5ldC93aXJlbGVzcy9yZGV2LW9wcy5oLTM2Ni1cXG5uZXQvd2lyZWxlc3MvcmRldi1vcHMuaDozNjc6c3RhdGljIGlubGluZSBpbnQgcmRldl9sZWF2ZV9tZXNoKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcXG5uZXQvd2lyZWxlc3MvcmRldi1vcHMuaC0zNjgtXFx0XFx0XFx0XFx0ICBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxubmV0L3dpcmVsZXNzL3JkZXYtb3BzLmgtMzcwLVxcdGludCByZXQ7XFxubmV0L3dpcmVsZXNzL3JkZXYtb3BzLmg6MzcxOlxcdHRyYWNlX3JkZXZfbGVhdmVfbWVzaChcXHUwMDI2cmRldi1cXHUwMDNld2lwaHksIGRldik7XFxubmV0L3dpcmVsZXNzL3JkZXYtb3BzLmg6MzcyOlxcdHJldCA9IHJkZXYtXFx1MDAzZW9wcy1cXHUwMDNlbGVhdmVfbWVzaChcXHUwMDI2cmRldi1cXHUwMDNld2lwaHksIGRldik7XFxubmV0L3dpcmVsZXNzL3JkZXYtb3BzLmgtMzczLVxcdHRyYWNlX3JkZXZfcmV0dXJuX2ludChcXHUwMDI2cmRldi1cXHUwMDNld2lwaHksIHJldCk7XFxuLS1cXG5uZXQvd2lyZWxlc3Mvc21lLmM9MTU4MT12b2lkIGNmZzgwMjExX2F1dG9kaXNjb25uZWN0X3drKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXBoeV93b3JrICp3b3JrKVxcbi0tXFxubmV0L3dpcmVsZXNzL3NtZS5jLTE1OTYtXFx0XFx0Y2FzZSBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UOlxcbm5ldC93aXJlbGVzcy9zbWUuYzoxNTk3OlxcdFxcdFxcdGNmZzgwMjExX2xlYXZlX21lc2gocmRldiwgd2Rldi1cXHUwMDNlbmV0ZGV2KTtcXG5uZXQvd2lyZWxlc3Mvc21lLmMtMTU5OC1cXHRcXHRcXHRicmVhaztcXG4tLVxcbm5ldC93aXJlbGVzcy90cmFjZS5oPTgyNT1ERUZJTkVfRVZFTlQod2lwaHlfbmV0ZGV2X2V2dCwgcmRldl9nZXRfbWVzaF9jb25maWcsXFxuLS1cXG5uZXQvd2lyZWxlc3MvdHJhY2UuaC04MjktXFxubmV0L3dpcmVsZXNzL3RyYWNlLmg6ODMwOkRFRklORV9FVkVOVCh3aXBoeV9uZXRkZXZfZXZ0LCByZGV2X2xlYXZlX21lc2gsXFxubmV0L3dpcmVsZXNzL3RyYWNlLmgtODMxLVxcdFRQX1BST1RPKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwNjo0ODozNS4xOTUyNzQxNDhaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4MzEwMzg0NDEyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgU3RyYXRlZ3kgZm9yIE1lc2ggVGVhcmRvd24gaW4gbWFjODAyMTEqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEknbSBmb2N1c2luZyBvbiBjbGVhbmluZyB1cCBhIHBvdGVudGlhbCBtZW1vcnkgbGVhayBpbiBtYWM4MDIxMSBtZXNoIGhhbmRsaW5nLiBJIGluaXRpYWxseSBjb25zaWRlcmVkIGBpZWVlODAyMTFfbGVhdmVfbWVzaGAsIGJ1dCBpdCdzIHN0YXRpYywgc28gaXQncyBub3QgYSBzdWl0YWJsZSBmb2N1cyBmb3Igc3l6a2FsbGVyLiBgaWVlZTgwMjExX3N0b3BfbWVzaGAsIGhvd2V2ZXIsIGlzIGV4cG9ydGVkIGFuZCB0aHVzIGEgYmV0dGVyIGNhbmRpZGF0ZS5cblxuTm93LCBsZXQncyBjaGVjayBmb3IgYW55IGNvbmZpZyBkZXBlbmRlbmNpZXMuIGBNQUM4MDIxMV9NRVNIYCBkZXBlbmRzIG9uIGBNQUM4MDIxMWAsIHdoaWNoIG1ha2VzIHRoaW5ncyBzaW1wbGUsIGBNQUM4MDIxMV9NRVNIYCBpcyB0aGUgb25seSBjb25maWcgSSBuZWVkIHRvIGNvbnNpZGVyLiBJJ20gcHJldHR5IHN1cmUgc3l6a2FsbGVyIHVzdWFsbHkgZW5hYmxlcyBpdCwgYnV0IEknbGwgZG91YmxlLWNoZWNrLiBZdXAsIGl0IGxvb2tzIGxpa2UgaXQgaXMuXG5cblRoZSBwYXRjaCBpdHNlbGYgaXMgc3RyYWlnaHRmb3J3YXJkLiBJdCBhZGRyZXNzZXMgdGhlIGZyZWVpbmcgb2YgYGlmbXNoLVx1MDAzZWNzYWAgd2l0aGluIGBpZWVlODAyMTFfc3RvcF9tZXNoYC4gVGhpcyBtZW1vcnkgbGVhayBmaXggaXMgdHJpZ2dlcmVkIGR1cmluZyB0aGUgbWVzaCB0ZWFyZG93biBwcm9jZXNzLiBUaGUgY29kZSBzbmlwcGV0IHNob3dzIHRoYXQgaXQncyBwcm9wZXJseSBoYW5kbGVkIG5vdyBieSBmcmVlaW5nIGFueSBwZW5kaW5nIGNoYW5uZWwgc3dpdGNoLlxuXG5UaGUgY2FsbCBwYXRoIGZvciB0aGlzIGlzIHByZXR0eSBjbGVhcjogYG5sODAyMTFfbGVhdmVfbWVzaGAgLVx1MDAzZSBgY2ZnODAyMTFfbGVhdmVfbWVzaGAgLVx1MDAzZSBgcmRldl9sZWF2ZV9tZXNoYCAtXHUwMDNlIGBtYWM4MDIxMV9jb25maWdfb3BzLmxlYXZlX21lc2hgIC1cdTAwM2UgYGllZWU4MDIxMV9sZWF2ZV9tZXNoYCAtXHUwMDNlIGBpZWVlODAyMTFfc3RvcF9tZXNoYC4gVGhlcmVmb3JlLCBJJ20gY29uZmlkZW50IHRoYXQgZnV6emluZyBgaWVlZTgwMjExX3N0b3BfbWVzaGAgd2lsbCBleHBvc2UgdGhlIGZpeCBhbmQgYW55IHJlbGF0ZWQgaXNzdWVzLlxuXG5UaGVyZWZvcmUsIG15IHN0cmF0ZWd5IGlzIHNldCB0byBgV29ydGhGdXp6aW5nPXRydWVgLCBgRm9jdXNTeW1ib2xzPVtcImllZWU4MDIxMV9zdG9wX21lc2hcIl1gLCBhbmQgYEVuYWJsZUNvbmZpZ3M9W1wiTUFDODAyMTFfTUVTSFwiXWAuIFRoZSByZWFzb25pbmcgaXMgc29saWQ6IFdlJ3JlIGFkZHJlc3NpbmcgYSBtZW1vcnkgbGVhayBkdXJpbmcgbWVzaCB0ZWFyZG93biwgdHJpZ2dlcmVkIGJ5IG5sODAyMTEgbWVzaCBvcGVyYXRpb25zLCBzbyBmdXp6aW5nIHRoaXMgZnVuY3Rpb24gbWFrZXMgcGVyZmVjdCBzZW5zZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTg3NDAsIk91dHB1dFRva2VucyI6MTEzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDU5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA2OjQ4OjQzLjUwNTY2NjQwMVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcwMDM4MzY4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNQUM4MDIxMV9NRVNIXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWVlZTgwMjExX3N0b3BfbWVzaFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgb2YgYGlmbXNoLVxcdTAwM2Vjc2FgIGluIGBpZWVlODAyMTFfc3RvcF9tZXNoYCBkdXJpbmcgbWFjODAyMTEgbWVzaCB0ZWFyZG93bi4gVGhpcyBpcyByZWFjaGFibGUgdmlhIG5sODAyMTEgbWVzaCBvcGVyYXRpb25zIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1BQzgwMjExX01FU0hcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpZWVlODAyMTFfc3RvcF9tZXNoXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBvZiBgaWZtc2gtXFx1MDAzZWNzYWAgaW4gYGllZWU4MDIxMV9zdG9wX21lc2hgIGR1cmluZyBtYWM4MDIxMSBtZXNoIHRlYXJkb3duLiBUaGlzIGlzIHJlYWNoYWJsZSB2aWEgbmw4MDIxMSBtZXNoIG9wZXJhdGlvbnMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA2OjQ4OjQzLjU3NTcxMTA1OVoiLCJTZXEiOjExLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTAyOTg1ODE5ODUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwNjo0ODo0My41NzYxMjM5MzlaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6ImFnZW50IiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MTAyOTgxNjQ1NjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIG1lbW9yeSBsZWFrIG9yIHVzZS1hZnRlci1mcmVlIGJ5IGZyZWVpbmcgYSBwZW5kaW5nIGNoYW5uZWwgc3dpdGNoIHN0cnVjdHVyZSAoYGlmbXNoLVxcdTAwM2Vjc2FgKSB3aGVuIHN0b3BwaW5nIHRoZSBtZXNoIGludGVyZmFjZS4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgYWxsb2NhdGlvbnMsIGNvcHkgZGF0YSB0byB1c2VyIHNwYWNlLCBvciBhZGQgbG9naWMgdGhhdCBjb3VsZCBkZXBlbmQgb24gdW5pbml0aWFsaXplZCBtZW1vcnkuIEFueSBpc3N1ZXMgcmVsYXRlZCB0byB0aGlzIGNoYW5nZSAoc3VjaCBhcyBkb3VibGUgZnJlZSBvciB1c2UtYWZ0ZXItZnJlZSkgd291bGQgYmUgY2F1Z2h0IGJ5IEtBU0FOLCBub3QgS01TQU4uXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIHNlY3VyaXR5IGVuZ2luZWVyIHNwZWNpYWxpemluZyBpbiBrZXJuZWwgbWVtb3J5XG5lcnJvciBkZXRlY3RvcnMgKEtBU0FOIGFuZCBLTVNBTikuIFlvdXIgam9iIGlzIHRvIHJldmlldyB0aGUgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZFxuZGV0ZXJtaW5lIGlmIHRoZSBjb2RlIGNoYW5nZXMganVzdGlmeSBzcGF3bmluZyBhIGRlZGljYXRlZCBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKVxuZnV6emluZyBzZXNzaW9uIGluIGFkZGl0aW9uIHRvIHN0YW5kYXJkIEtBU0FOIGZ1enppbmcuXG5cbkNSSVRJQ0FMIERJU1RJTkNUSU9OIEJFVFdFRU4gS0FTQU4gQU5EIEtNU0FOOlxuLSBTdGFuZGFyZCBLQVNBTiBrZXJuZWwgYnVpbGRzICh1cHN0cmVhbS1hcHBhcm1vci1rYXNhbi5jb25maWcpIGFscmVhZHkgZW5hYmxlXG4gIGEgY29tcHJlaGVuc2l2ZSBzdWl0ZSBvZiBkZWJ1Z2dpbmcgdG9vbHMgYW5kIHNhbml0aXplcnMsIGluY2x1ZGluZyBLQVNBTlxuICAob3V0LW9mLWJvdW5kcyBhY2Nlc3NlcywgdXNlLWFmdGVyLWZyZWUsIGRvdWJsZSBmcmVlLCBpbnZhbGlkIGZyZWUpLCBMT0NLREVQXG4gIChsb2NraW5nIGJ1Z3MgYW5kIGRlYWRsb2NrcyksIFVCLXNhbml0aXplcnMsIGFuZCBtZW1vcnkgY29ycnVwdGlvbiBjaGVja3MuXG4tIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpIGRldGVjdHMgcmVhZHMgb2YgVU5JTklUSUFMSVpFRCBtZW1vcnkgKHN0YWNrLCBoZWFwLFxuICBvciBwYWdlIGFsbG9jYXRpb25zKSBhbmQga2VybmVsLXRvLXVzZXIgbWVtb3J5IGluZm8tbGVha3MuXG5cblJ1bGU6IFRIRVJFIElTIE5PIFNFTlNFIElOIFJVTk5JTkcgQSBLTVNBTiBTRVNTSU9OIElGIEEgQlVHIENBTiBCRSBDQVVHSFQgQlkgS0FTQU4sXG5MT0NLREVQLCBPUiBPVEhFUiBTVEFOREFSRCBCVUcgREVURUNUT1JTLlxuQSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGluY3VycyBzaWduaWZpY2FudCByZXNvdXJjZSBjb3N0cy4gWW91IG11c3QgT05MWVxuc2V0IE5lZWRzS01TQU49dHJ1ZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGludHJvZHVjZSBvciBleHBvc2UgVU5JTklUSUFMSVpFRCBNRU1PUlkgcmlza3NcbnRoYXQgYXJlIGRldGVjdGVkIE9OTFkgYnkgS01TQU4uXG5cbkxvb2sgaG9saXN0aWNhbGx5IGF0IHRoZSBwYXRjaCBzZXJpZXMgYW5kIHN1cnJvdW5kaW5nIGNvZGUuIEV2ZW4gaWYgbm8gZGlyZWN0XG51bmluaXRpYWxpemVkIGZpZWxkIGFjY2Vzc2VzIG9yIG5ldyBidWZmZXIgYWxsb2NhdGlvbnMgYXJlIGFkZGVkIGluIHRoZSBkaWZmIGl0c2VsZixcbmEgcGF0Y2ggbWF5IGFsdGVyIGNvbnRyb2wgZmxvdywgYm91bmRzIGNoZWNraW5nLCBvciBkYXRhIGxlbmd0aCBjYWxjdWxhdGlvbnMgaW4gd2F5c1xudGhhdCBjaGFuZ2UgaG93IHRoZSByZXN0IG9mIHRoZSBjb2RlIG9wZXJhdGVzIG9uIGV4aXN0aW5nIGJ1ZmZlcnMgKGUuZy4gYWxsb3dpbmdcbnVuaW5pdGlhbGl6ZWQgc3RhY2svaGVhcCBtZW1vcnkgdG8gYmUgcmVhZCwgY29waWVkIHRvIHVzZXIgc3BhY2UsIG9yIHVzZWQgaW4gY29udHJvbFxuZmxvdykuIERvIG5vdCBoZXNpdGF0ZSB0byB1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlLFxuY2FsbGVkIGZ1bmN0aW9ucywgYW5kIGNhbGxlcnMuXG5cblNldCBOZWVkc0tNU0FOPXRydWUgT05MWSBJRiB0aGUgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllczpcbjEuIEtlcm5lbCBzdHJ1Y3R1cmVzIHNlbnQgdG8gdXNlciBzcGFjZSAodmlhIGNvcHlfdG9fdXNlciwgcHV0X3VzZXIsIG5ldGxpbmsgc2tiXG4gICBhdHRyaWJ1dGVzLCBpb2N0bCBvdXRwdXQgYXJndW1lbnRzLCBzb2NrZXQgb3B0aW9ucywgb3IgQlBGIGJ1ZmZlcnMpIHdoZXJlIGZpZWxkc1xuICAgb3Igc3RydWN0dXJlIHBhZGRpbmcgbWlnaHQgbm90IGJlIGZ1bGx5IGluaXRpYWxpemVkL3plcm9lZC5cbjIuIENvbmRpdGlvbmFsIGxvZ2ljIG9yIGJyYW5jaGluZyB0aGF0IGRlcGVuZHMgb24gcG90ZW50aWFsbHkgdW5pbml0aWFsaXplZCB2YXJpYWJsZXNcbiAgIG9yIHN0cnVjdCBmaWVsZHMuXG4zLiBBbGxvY2F0aW9uIG9yIGluaXRpYWxpemF0aW9uIG9mIGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIHdoZXJlIHVuaW5pdGlhbGl6ZWQgZmllbGRzXG4gICBjb3VsZCBiZSByZWFkIGxhdGVyIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLlxuNC4gQm91bmRzIGNoZWNrcywgbGVuZ3Rocywgb3IgbG9naWMgaW4gYSB3YXkgdGhhdCBhbGxvd3Mgc3Vycm91bmRpbmcgY29kZSB0byBhY2Nlc3NcbiAgIHVuaW5pdGlhbGl6ZWQgYnl0ZXMgb2YgZXhpc3RpbmcgYnVmZmVycy5cblxuU2V0IE5lZWRzS01TQU49ZmFsc2UgSUY6XG4tIFRoZSBjb2RlIGNoYW5nZXMgcHJpbWFyaWx5IHJpc2sgb3V0LW9mLWJvdW5kcyBhY2Nlc3MsIGFycmF5IG92ZXJmbG93cywgTlVMTCBwb2ludGVyXG4gIGRlcmVmZXJlbmNlcywgbG9ja2luZyBkZWFkbG9ja3MsIG9yIHVzZS1hZnRlci1mcmVlIGJ1Z3MgKHRoZXNlIGFyZSBhbHJlYWR5IGNhdWdodFxuICBieSBLQVNBTiwgTE9DS0RFUCwgb3Igc3RhbmRhcmQgYnVnIGRldGVjdG9ycykuXG4tIEFsbCBzdGFjay9oZWFwIHN0cnVjdHVyZXMgdG91Y2hlZCBvciBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBhcmUgZnVsbHkgemVyb2VkXG4gIG9yIGluaXRpYWxpemVkIChlLmcuIHVzaW5nID0gezB9LCBtZW1zZXQsIGt6YWxsb2MpIGJlZm9yZSBiZWluZyByZWFkIG9yIGNvcGllZC5cbi0gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBhbnkgcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzLlxuXG5Vc2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlIGlmIG5lY2Vzc2FyeSwgdGhlbiBwcm92aWRlXG5kZXRhaWxlZCBLTVNBTlJlYXNvbmluZyBjb250cmFzdGluZyBLQVNBTiB2cyBLTVNBTiBhcHBsaWNhYmlsaXR5IGZvciB0aGlzIHBhdGNoLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZmFmOWI2MmE5MDE1ODBiZDEyYmQ0N2M4ZGU4ODMzMDljOWQ2YjY2ZVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gQXVnIDI0IDA2OjQ4OjA0IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL21lc2guYyBiL25ldC9tYWM4MDIxMS9tZXNoLmNcbmluZGV4IGQ0NTA3ZTRlNmVjMTYuLjkzOGZhZDgxMjk1NzcgMTAwNjQ0XG4tLS0gYS9uZXQvbWFjODAyMTEvbWVzaC5jXG4rKysgYi9uZXQvbWFjODAyMTEvbWVzaC5jXG5AQCAtMTIwMSw2ICsxMjAxLDcgQEAgdm9pZCBpZWVlODAyMTFfc3RvcF9tZXNoKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxuIFx0c3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwgPSBzZGF0YS1cdTAwM2Vsb2NhbDtcbiBcdHN0cnVjdCBpZWVlODAyMTFfaWZfbWVzaCAqaWZtc2ggPSBcdTAwMjZzZGF0YS1cdTAwM2V1Lm1lc2g7XG4gXHRzdHJ1Y3QgYmVhY29uX2RhdGEgKmJjbjtcbitcdHN0cnVjdCBtZXNoX2NzYV9zZXR0aW5ncyAqY3NhO1xuIFxuIFx0bmV0aWZfY2Fycmllcl9vZmYoc2RhdGEtXHUwMDNlZGV2KTtcbiBcbkBAIC0xMjIyLDYgKzEyMjMsMTMgQEAgdm9pZCBpZWVlODAyMTFfc3RvcF9tZXNoKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxuIFx0UkNVX0lOSVRfUE9JTlRFUihpZm1zaC1cdTAwM2ViZWFjb24sIE5VTEwpO1xuIFx0a2ZyZWVfcmN1KGJjbiwgcmN1X2hlYWQpO1xuIFxuK1x0LyogZnJlZSBhbnkgcGVuZGluZywgdW5maW5pc2hlZCBjaGFubmVsIHN3aXRjaCAqL1xuK1x0Y3NhID0gc2RhdGFfZGVyZWZlcmVuY2UoaWZtc2gtXHUwMDNlY3NhLCBzZGF0YSk7XG4rXHRpZiAoY3NhKSB7XG4rXHRcdFJDVV9JTklUX1BPSU5URVIoaWZtc2gtXHUwMDNlY3NhLCBOVUxMKTtcbitcdFx0a2ZyZWVfcmN1KGNzYSwgcmN1X2hlYWQpO1xuK1x0fVxuK1xuIFx0LyogZnJlZSBhbGwgcG90ZW50aWFsbHkgc3RpbGwgYnVmZmVyZWQgZ3JvdXAtYWRkcmVzc2VkIGZyYW1lcyAqL1xuIFx0bG9jYWwtXHUwMDNldG90YWxfcHNfYnVmZmVyZWQgLT0gc2tiX3F1ZXVlX2xlbihcdTAwMjZpZm1zaC1cdTAwM2Vwcy5iY19idWYpO1xuIFx0c2tiX3F1ZXVlX3B1cmdlKFx1MDAyNmlmbXNoLVx1MDAzZXBzLmJjX2J1Zik7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwNjo0ODo0My41NzYxMjQ4MjlaIiwiU2VxIjoxMywiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTAyOTgxNDA2NTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIE1hYzgwMjExIE1lc2ggQ2hhbm5lbCBTd2l0Y2ggUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGp1c3QgcmV2aWV3ZWQgdGhpcyBwYXRjaCB0aGF0IHRvdWNoZXMgYG5ldC9tYWM4MDIxMS9tZXNoLmNgLiBNeSBpbml0aWFsIG9ic2VydmF0aW9uIGlzIHRoYXQgaXQncyBmb2N1c2luZyBvbiBgaWVlZTgwMjExX3N0b3BfbWVzaGAsIGFuZCBpdCdzIHF1aXRlIHN0cmFpZ2h0Zm9yd2FyZDogdGhlIGNoYW5nZSBhZGRzIGNvZGUgdG8gZnJlZSBhIHBlbmRpbmcsIHVuZmluaXNoZWQgY2hhbm5lbCBzd2l0Y2gsIHNwZWNpZmljYWxseSBieSBmcmVlaW5nIGBpZm1zaC1cdTAwM2Vjc2FgIHVzaW5nIGBrZnJlZV9yY3VgLiBUaGUgc25pcHBldCBtYWtlcyBpdCBjbGVhcjsgaXQgbG9va3MgbGlrZSB0aGlzIGlzIGEgc29saWQgbWVtb3J5IGxlYWsgb3IgdXNlLWFmdGVyLWZyZWUgYnVnIGZpeC5cblxuTm93LCBsZXQncyB0aGluayBhYm91dCB0aGUgaW1wbGljYXRpb25zLiBXZSdyZSAqcmVsZWFzaW5nKiBtZW1vcnkgdGhhdCB3YXMgcHJldmlvdXNseSBhbGxvY2F0ZWQsIGFzIGl0IHNob3VsZCBiZSwgaW5zdGVhZCBvZiBpbnRyb2R1Y2luZyBuZXcgbWVtb3J5IGlzc3Vlcy4gU2luY2UgdGhlIHBhdGNoIHVzZXMgYGtmcmVlX3JjdWAsIHdoaWNoIGlzIHN0YW5kYXJkLCBhbmQgd2UncmUgKmRlYWxsb2NhdGluZyogYW4gZXhpc3RpbmcgcG9pbnRlciwgdGhlIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugc2VlbXMgbmVnbGlnaWJsZS4gVGhpcyBwYXRjaCBzaW1wbHkgY2xlYW5zIHVwIGEgcG9pbnRlciwgYXZvaWRpbmcgdGhlIG1lbW9yeSBsZWFrIG9yIHBvc3NpYmxlIHVzZS1hZnRlci1mcmVlLlxuXG5NeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgS0FTQU4gKG9yIEtNRU1MRUFLKSB3b3VsZCBiZSB0aGUgaWRlYWwgdG9vbCB0byBkZXRlY3QgdXNlLWFmdGVyLWZyZWUgb3IgbWVtb3J5IGxlYWtzLCB3aGVyZWFzIEtNU0FOIGlzIGZvciB1bmluaXRpYWxpemVkIG1lbW9yeSBpc3N1ZXMuIFNpbmNlIHdlJ3JlIG5vdCBkZWFsaW5nIHdpdGggdW5pbml0aWFsaXplZCBtZW1vcnkgaGVyZSwgXCJOZWVkc0tNU0FOXCIgc2hvdWxkIGRlZmluaXRlbHkgYmUgc2V0IHRvIGZhbHNlLlxuXG5UbyBiZSBhYnNvbHV0ZWx5IHN1cmUsIEkndmUganVzdCBkb25lIGEgcXVpY2sgZG91YmxlLWNoZWNrLiBUaGVyZSBhcmUgbm8gbmV3IHN0cnVjdHVyZXMgYmVpbmcgYWxsb2NhdGVkLCBubyBuZXcgZmllbGRzIGludHJvZHVjZWQsIGFuZCBubyBjb25kaXRpb25hbCBsb2dpYyB0aGF0IGRlcGVuZHMgb24gdW5pbml0aWFsaXplZCB2YXJpYWJsZXMuIFdlJ3JlIGp1c3QgZGVyZWZlcmVuY2luZyBhIHBvaW50ZXIgYW5kIHVzaW5nIGBrZnJlZV9yY3VgLiBTbywgSSdtIGNvbmZpZGVudCBpbiBteSBhc3Nlc3NtZW50LCBhbmQgSSB3aWxsIHNldCBOZWVkc0tNU0FOID0gZmFsc2UuIFRoZSBqdXN0aWZpY2F0aW9uIGlzIHRoYXQgdGhpcyBwYXRjaCBhZGRyZXNzZXMgbWVtb3J5IG1hbmFnZW1lbnQgYnkgZnJlZWluZyBhIHByZXZpb3VzbHkgYWxsb2NhdGVkIHBvaW50ZXIsIGFuZCBkb2VzIG5vdCBpbnRyb2R1Y2Ugb3IgdXNlIGFueSB1bmluaXRpYWxpemVkIG1lbW9yeS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjI0OSwiT3V0cHV0VG9rZW5zIjoxMTUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMjMsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwNjo0ODo1My44NzQyNjg4NzRaIiwiU2VxIjoxNCwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzg2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIG1lbW9yeSBsZWFrIG9yIHVzZS1hZnRlci1mcmVlIGJ5IGZyZWVpbmcgYSBwZW5kaW5nIGNoYW5uZWwgc3dpdGNoIHN0cnVjdHVyZSAoYGlmbXNoLVxcdTAwM2Vjc2FgKSB3aGVuIHN0b3BwaW5nIHRoZSBtZXNoIGludGVyZmFjZS4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgYWxsb2NhdGlvbnMsIGNvcHkgZGF0YSB0byB1c2VyIHNwYWNlLCBvciBhZGQgbG9naWMgdGhhdCBjb3VsZCBkZXBlbmQgb24gdW5pbml0aWFsaXplZCBtZW1vcnkuIEFueSBpc3N1ZXMgcmVsYXRlZCB0byB0aGlzIGNoYW5nZSAoc3VjaCBhcyBkb3VibGUgZnJlZSBvciB1c2UtYWZ0ZXItZnJlZSkgd291bGQgYmUgY2F1Z2h0IGJ5IEtBU0FOLCBub3QgS01TQU4uXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgbWVtb3J5IGxlYWsgb3IgdXNlLWFmdGVyLWZyZWUgYnkgZnJlZWluZyBhIHBlbmRpbmcgY2hhbm5lbCBzd2l0Y2ggc3RydWN0dXJlIChgaWZtc2gtXFx1MDAzZWNzYWApIHdoZW4gc3RvcHBpbmcgdGhlIG1lc2ggaW50ZXJmYWNlLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBhbGxvY2F0aW9ucywgY29weSBkYXRhIHRvIHVzZXIgc3BhY2UsIG9yIGFkZCBsb2dpYyB0aGF0IGNvdWxkIGRlcGVuZCBvbiB1bmluaXRpYWxpemVkIG1lbW9yeS4gQW55IGlzc3VlcyByZWxhdGVkIHRvIHRoaXMgY2hhbmdlIChzdWNoIGFzIGRvdWJsZSBmcmVlIG9yIHVzZS1hZnRlci1mcmVlKSB3b3VsZCBiZSBjYXVnaHQgYnkgS0FTQU4sIG5vdCBLTVNBTi5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflown6gmx[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-24 05:52:04 +0000 UTC FinishedAt: 2026-08-24 06:48:55 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "ca800a9302764c445de0da0e84d2252400a770ee", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MAC80211_MESH" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "ca800a9302764c445de0da0e84d2252400a770ee", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MAC80211_MESH" ], "series_id": "cf476a99-cf06-4797-ba1e-9dad6056bd6b" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ieee80211_stop_mesh" ], "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+CgkJCTx0ZD4yMDI2LzA4LzI0IDA2OjQ4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQzgwMjExX01FU0gmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtpZWVlODAyMTFfc3RvcF9tZXNoJiMzNDsKICBdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgbWVtb3J5IGxlYWsgb3IgdXNlLWFmdGVyLWZyZWUgYnkgZnJlZWluZyBhIHBlbmRpbmcgY2hhbm5lbCBzd2l0Y2ggc3RydWN0dXJlIChgaWZtc2gtXHUwMDNlY3NhYCkgd2hlbiBzdG9wcGluZyB0aGUgbWVzaCBpbnRlcmZhY2UuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IGFsbG9jYXRpb25zLCBjb3B5IGRhdGEgdG8gdXNlciBzcGFjZSwgb3IgYWRkIGxvZ2ljIHRoYXQgY291bGQgZGVwZW5kIG9uIHVuaW5pdGlhbGl6ZWQgbWVtb3J5LiBBbnkgaXNzdWVzIHJlbGF0ZWQgdG8gdGhpcyBjaGFuZ2UgKHN1Y2ggYXMgZG91YmxlIGZyZWUgb3IgdXNlLWFmdGVyLWZyZWUpIHdvdWxkIGJlIGNhdWdodCBieSBLQVNBTiwgbm90IEtNU0FOLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIG1lbW9yeSBsZWFrIG9mIGBpZm1zaC1cdTAwM2Vjc2FgIGluIGBpZWVlODAyMTFfc3RvcF9tZXNoYCBkdXJpbmcgbWFjODAyMTEgbWVzaCB0ZWFyZG93bi4gVGhpcyBpcyByZWFjaGFibGUgdmlhIG5sODAyMTEgbWVzaCBvcGVyYXRpb25zIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDA2OjQ4PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZmFmOWI2MmE5MDE1ODBiZDEyYmQ0N2M4ZGU4ODMzMDljOWQ2YjY2ZVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gQXVnIDI0IDA2OjQ4OjA0IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9tZXNoLmMgYi9uZXQvbWFjODAyMTEvbWVzaC5jXG5pbmRleCBkNDUwN2U0ZTZlYzE2Li45MzhmYWQ4MTI5NTc3IDEwMDY0NFxuLS0tIGEvbmV0L21hYzgwMjExL21lc2guY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L21hYzgwMjExL21lc2guY1xuQEAgLTEyMDEsNiAmIzQzOzEyMDEsNyBAQCB2b2lkIGllZWU4MDIxMV9zdG9wX21lc2goc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXG4gXHRzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCA9IHNkYXRhLVx1MDAzZWxvY2FsO1xuIFx0c3RydWN0IGllZWU4MDIxMV9pZl9tZXNoICppZm1zaCA9IFx1MDAyNnNkYXRhLVx1MDAzZXUubWVzaDtcbiBcdHN0cnVjdCBiZWFjb25fZGF0YSAqYmNuO1xuJiM0MztcdHN0cnVjdCBtZXNoX2NzYV9zZXR0aW5ncyAqY3NhO1xuIFxuIFx0bmV0aWZfY2Fycmllcl9vZmYoc2RhdGEtXHUwMDNlZGV2KTtcbiBcbkBAIC0xMjIyLDYgJiM0MzsxMjIzLDEzIEBAIHZvaWQgaWVlZTgwMjExX3N0b3BfbWVzaChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSlcbiBcdFJDVV9JTklUX1BPSU5URVIoaWZtc2gtXHUwMDNlYmVhY29uLCBOVUxMKTtcbiBcdGtmcmVlX3JjdShiY24sIHJjdV9oZWFkKTtcbiBcbiYjNDM7XHQvKiBmcmVlIGFueSBwZW5kaW5nLCB1bmZpbmlzaGVkIGNoYW5uZWwgc3dpdGNoICovXG4mIzQzO1x0Y3NhID0gc2RhdGFfZGVyZWZlcmVuY2UoaWZtc2gtXHUwMDNlY3NhLCBzZGF0YSk7XG4mIzQzO1x0aWYgKGNzYSkge1xuJiM0MztcdFx0UkNVX0lOSVRfUE9JTlRFUihpZm1zaC1cdTAwM2Vjc2EsIE5VTEwpO1xuJiM0MztcdFx0a2ZyZWVfcmN1KGNzYSwgcmN1X2hlYWQpO1xuJiM0MztcdH1cbiYjNDM7XG4gXHQvKiBmcmVlIGFsbCBwb3RlbnRpYWxseSBzdGlsbCBidWZmZXJlZCBncm91cC1hZGRyZXNzZWQgZnJhbWVzICovXG4gXHRsb2NhbC1cdTAwM2V0b3RhbF9wc19idWZmZXJlZCAtPSBza2JfcXVldWVfbGVuKFx1MDAyNmlmbXNoLVx1MDAzZXBzLmJjX2J1Zik7XG4gXHRza2JfcXVldWVfcHVyZ2UoXHUwMDI2aWZtc2gtXHUwMDNlcHMuYmNfYnVmKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwNjo0ODwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TUFDODAyMTFfTUVTSCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2llZWU4MDIxMV9zdG9wX21lc2gmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBvZiBgaWZtc2gtXHUwMDNlY3NhYCBpbiBgaWVlZTgwMjExX3N0b3BfbWVzaGAgZHVyaW5nIG1hYzgwMjExIG1lc2ggdGVhcmRvd24uIFRoaXMgaXMgcmVhY2hhYmxlIHZpYSBubDgwMjExIG1lc2ggb3BlcmF0aW9ucyBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGZhZjliNjJhOTAxNTgwYmQxMmJkNDdjOGRlODgzMzA5YzlkNmI2NmUKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEF1ZyAyNCAwNjo0ODowNCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9tZXNoLmMgYi9uZXQvbWFjODAyMTEvbWVzaC5jCmluZGV4IGQ0NTA3ZTRlNmVjMTYuLjkzOGZhZDgxMjk1NzcgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIxMS9tZXNoLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L21hYzgwMjExL21lc2guYwpAQCAtMTIwMSw2ICYjNDM7MTIwMSw3IEBAIHZvaWQgaWVlZTgwMjExX3N0b3BfbWVzaChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSkKIAlzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCA9IHNkYXRhLSZndDtsb2NhbDsKIAlzdHJ1Y3QgaWVlZTgwMjExX2lmX21lc2ggKmlmbXNoID0gJmFtcDtzZGF0YS0mZ3Q7dS5tZXNoOwogCXN0cnVjdCBiZWFjb25fZGF0YSAqYmNuOwomIzQzOwlzdHJ1Y3QgbWVzaF9jc2Ffc2V0dGluZ3MgKmNzYTsKIAogCW5ldGlmX2NhcnJpZXJfb2ZmKHNkYXRhLSZndDtkZXYpOwogCkBAIC0xMjIyLDYgJiM0MzsxMjIzLDEzIEBAIHZvaWQgaWVlZTgwMjExX3N0b3BfbWVzaChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSkKIAlSQ1VfSU5JVF9QT0lOVEVSKGlmbXNoLSZndDtiZWFjb24sIE5VTEwpOwogCWtmcmVlX3JjdShiY24sIHJjdV9oZWFkKTsKIAomIzQzOwkvKiBmcmVlIGFueSBwZW5kaW5nLCB1bmZpbmlzaGVkIGNoYW5uZWwgc3dpdGNoICovCiYjNDM7CWNzYSA9IHNkYXRhX2RlcmVmZXJlbmNlKGlmbXNoLSZndDtjc2EsIHNkYXRhKTsKJiM0MzsJaWYgKGNzYSkgewomIzQzOwkJUkNVX0lOSVRfUE9JTlRFUihpZm1zaC0mZ3Q7Y3NhLCBOVUxMKTsKJiM0MzsJCWtmcmVlX3JjdShjc2EsIHJjdV9oZWFkKTsKJiM0MzsJfQomIzQzOwogCS8qIGZyZWUgYWxsIHBvdGVudGlhbGx5IHN0aWxsIGJ1ZmZlcmVkIGdyb3VwLWFkZHJlc3NlZCBmcmFtZXMgKi8KIAlsb2NhbC0mZ3Q7dG90YWxfcHNfYnVmZmVyZWQgLT0gc2tiX3F1ZXVlX2xlbigmYW1wO2lmbXNoLSZndDtwcy5iY19idWYpOwogCXNrYl9xdWV1ZV9wdXJnZSgmYW1wO2lmbXNoLSZndDtwcy5iY19idWYpOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwNjo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjUyCgkJCQkJCQlvdXRwdXQ6IDIyCgkJCQkJCQl0aG91Z2h0czogMjAxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFBhdGNoIGluIG5ldC9tYWM4MDIxMS9tZXNoLmMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0d2Vha3MgYG5ldC9tYWM4MDIxMS9tZXNoLmNgLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIG1vZGlmeWluZyB0aGUgYGllZWU4MDIxMV9zdG9wX21lc2hgIGZ1bmN0aW9uLiBUaGUga2V5IGNoYW5nZSBzZWVtcyB0byBiZSBmcmVlaW5nIGBpZm1zaC0mZ3Q7Y3NhYCBpZiBpdCYjMzk7cyBub3QgbnVsbC4gVGhpcyBpcyBwcm9iYWJseSBhIGJ1ZyBmaXgsIGxpa2VseSBhZGRyZXNzaW5nIGEgbWVtb3J5IGxlYWsgb3IgYSBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgc2l0dWF0aW9uIOKAkyBnb29kIGNhdGNoLgoKTm93LCBteSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byB1bmRlcnN0YW5kIHRoZSBpbXBhY3Qgb2YgdGhpcyBjaGFuZ2UuIElzIHRoaXMgYGllZWU4MDIxMV9zdG9wX21lc2hgIGZ1bmN0aW9uIGV2ZW4gcmVhY2hhYmxlPyBJdCYjMzk7cyBwYXJ0IG9mIHRoZSBtYWM4MDIxMSBtZXNoIG5ldHdvcmtpbmcgc3Vic3lzdGVtLCBzbyBJIGtub3cgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCB0aGF0IHNwZWNpZmljIGZ1bmN0aW9uYWxpdHkuIEFuZCB0aGF0JiMzOTtzIGludGVyZXN0aW5nIGJlY2F1c2UgbWFjODAyMTEgaXMgc29tZXRoaW5nIHdlIGNhbiBmdXp6LCBlc3BlY2lhbGx5IHdpdGggdGhlIGBtYWM4MDIxMV9od3NpbWAgbW9kdWxlLiBJdCYjMzk7ZCBiZSBncmVhdCB0byB0ZXN0IHRoaXMgZml4IHRob3JvdWdobHkuCgpJIG5lZWQgdG8gY29uZmlybSB0aGUgY29uZmlndXJhdGlvbiBvcHRpb24gZm9yIG1hYzgwMjExIG1lc2ggc3VwcG9ydC4gSXQmIzM5O3MgcHJvYmFibHkgYENPTkZJR19NQUM4MDIxMV9NRVNIYCwgcmlnaHQ/IEJ1dCwganVzdCB0byBiZSBzdXJlLCBpcyB0aGVyZSBzb21ldGhpbmcgZWxzZSByZWxhdGVkIHRvIHRoaXM/IEkgYmV0dGVyIHZlcmlmeSBpdCYjMzk7cyB0aGUgb25seSBvbmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDY6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TUFDODAyMTFfTUVTSCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL21pcHMvY29uZmlncy9tYWx0YV9kZWZjb25maWc9MjA3PUNPTkZJR19NQUM4MDIxMT1tXG5hcmNoL21pcHMvY29uZmlncy9tYWx0YV9kZWZjb25maWc6MjA4OkNPTkZJR19NQUM4MDIxMV9NRVNIPXlcbmFyY2gvbWlwcy9jb25maWdzL21hbHRhX2RlZmNvbmZpZy0yMDktQ09ORklHX1JGS0lMTD1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGFfa3ZtX2RlZmNvbmZpZz0yMTE9Q09ORklHX01BQzgwMjExPW1cbmFyY2gvbWlwcy9jb25maWdzL21hbHRhX2t2bV9kZWZjb25maWc6MjEyOkNPTkZJR19NQUM4MDIxMV9NRVNIPXlcbmFyY2gvbWlwcy9jb25maWdzL21hbHRhX2t2bV9kZWZjb25maWctMjEzLUNPTkZJR19SRktJTEw9bVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL21hbHRhdXBfeHBhX2RlZmNvbmZpZz0yMDg9Q09ORklHX01BQzgwMjExPW1cbmFyY2gvbWlwcy9jb25maWdzL21hbHRhdXBfeHBhX2RlZmNvbmZpZzoyMDk6Q09ORklHX01BQzgwMjExX01FU0g9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGF1cF94cGFfZGVmY29uZmlnLTIxMC1DT05GSUdfUkZLSUxMPW1cbi0tXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2eHhfZGVmY29uZmlnPTI4Nj1DT05GSUdfTUFDODAyMTE9bVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNnh4X2RlZmNvbmZpZzoyODc6Q09ORklHX01BQzgwMjExX01FU0g9eVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNnh4X2RlZmNvbmZpZy0yODgtQ09ORklHX01BQzgwMjExX0xFRFM9eVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmM9OTYzMD1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBhdGgxMGtfaWZfbGltaXRzW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYy05NjQ2LVx0XHQudHlwZXNcdD0gQklUKE5MODAyMTFfSUZUWVBFX0FQKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYzo5NjQ3OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYy05NjQ4LVx0XHRcdHwgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYz05NjUzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IGF0aDEwa18xMHhfaWZfbGltaXRzW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYy05NjU2LVx0XHQudHlwZXNcdD0gQklUKE5MODAyMTFfSUZUWVBFX0FQKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYzo5NjU3OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYy05NjU4LVx0XHRcdHwgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYz05Njk0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IGF0aDEwa190bHZfaWZfbGltaXRbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jLTk3MDEtXHRcdC50eXBlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9BUCkgfFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYzo5NzAyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYy05NzAzLVx0XHRcdCBCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVCkgfFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmM9OTcxND1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBhdGgxMGtfdGx2X3Fjc19pZl9saW1pdFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMtOTcyNS1cdFx0LnR5cGVzID0gQklUKE5MODAyMTFfSUZUWVBFX0FQKSB8XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jOjk3MjY6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jLTk3MjctXHRcdFx0IEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKSB8XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYz05Nzg3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IGF0aDEwa18xMF80X2lmX2xpbWl0c1tdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMtOTc5NC1cdFx0LnR5cGVzXHQ9IEJJVChOTDgwMjExX0lGVFlQRV9BUClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmM6OTc5NTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMtOTc5Ni1cdFx0XHR8IEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvbWFjLmM9MTAyODY9c3RhdGljIGludCBhdGgxMWtfbWFjX3NldHVwX2lmYWNlX2NvbWJpbmF0aW9ucyhzdHJ1Y3QgYXRoMTFrICphcilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL21hYy5jLTEwMzE5LVx0bGltaXRzWzFdLnR5cGVzIHw9IEJJVChOTDgwMjExX0lGVFlQRV9BUCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL21hYy5jOjEwMzIwOlx0aWYgKElTX0VOQUJMRUQoQ09ORklHX01BQzgwMjExX01FU0gpIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9tYWMuYy0xMDMyMS1cdCAgICBhYi1cdTAwM2Vod19wYXJhbXMuaW50ZXJmYWNlX21vZGVzIFx1MDAyNiBCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVCkpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYz0xNDM2Nz1zdGF0aWMgYm9vbCBhdGgxMmtfbWFjX2lzX2lmYWNlX21vZGVfZW5hYmxlKHN0cnVjdCBhdGgxMmtfaHcgKmFoLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmMtMTQzNzUtXHRpZiAodHlwZSA9PSBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jOjE0Mzc2Olx0XHRpZiAoSVNfRU5BQkxFRChDT05GSUdfTUFDODAyMTFfTUVTSCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTE0Mzc3LVx0XHRcdG1vZGUgPSBCSVQodHlwZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYz0xNDM5ND1hdGgxMmtfbWFjX3NldHVwX3JhZGlvX2lmYWNlX2NvbWIoc3RydWN0IGF0aDEyayAqYXIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYy0xNDQwNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmM6MTQ0MDU6XHRtZXNoID0gSVNfRU5BQkxFRChDT05GSUdfTUFDODAyMTFfTUVTSCkgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTE0NDA2LVx0ICAgICAgIChpbnRlcmZhY2VfbW9kZXMgXHUwMDI2IEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDVrL2Jhc2UuYz0yNTU4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IGlmX2xpbWl0c1tdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg1ay9iYXNlLmMtMjU2MC1cdHsgLm1heCA9IDQsXHQudHlwZXMgPVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDVrL2Jhc2UuYzoyNTYxOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDVrL2Jhc2UuYy0yNTYyLVx0XHRcdFx0IEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKSB8XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2h0Y19kcnZfaW5pdC5jPTY5NT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBpZl9saW1pdHNbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaHRjX2Rydl9pbml0LmMtNjk4LVx0eyAubWF4ID0gMixcdC50eXBlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9BUCkgfFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2h0Y19kcnZfaW5pdC5jOjY5OTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9odGNfZHJ2X2luaXQuYy03MDAtXHRcdFx0XHQgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpIHxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaW5pdC5jPTgyOT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBpZl9saW1pdHNbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaW5pdC5jLTgzMS1cdHsgLm1heCA9IDgsXHQudHlwZXMgPVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2luaXQuYzo4MzI6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaW5pdC5jLTgzMy1cdFx0XHRcdCBCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVCkgfFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9mdy5jPTIyMz1zdGF0aWMgaW50IGNhcmw5MTcwX2Z3KHN0cnVjdCBhcjkxNzAgKmFyLCBjb25zdCBfX3U4ICpkYXRhLCBzaXplX3QgbGVuKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9mdy5jLTM0Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9mdy5jOjM0MzojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9mdy5jLTM0NC1cdFx0XHRpZl9jb21iX3R5cGVzIHw9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvZncuYy0zNDUtXHRcdFx0XHRCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvZncuYzozNDY6I2VuZGlmIC8qIENPTkZJR19NQUM4MDIxMV9NRVNIICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvZncuYy0zNDctXHRcdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmM9NTE4PW10NzZfYWxsb2NfcGh5KHN0cnVjdCBtdDc2X2RldiAqZGV2LCB1bnNpZ25lZCBpbnQgc2l6ZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtNTM5LVx0XHRCSVQoTkw4MDIxMV9JRlRZUEVfQVApIHxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYzo1NDA6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtNTQxLVx0XHRCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVCkgfFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYz02Njk9bXQ3Nl9hbGxvY19kZXZpY2Uoc3RydWN0IGRldmljZSAqcGRldiwgdW5zaWduZWQgaW50IHNpemUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTcxMS1cdFx0QklUKE5MODAyMTFfSUZUWVBFX0FQKSB8XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmM6NzEyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTcxMy1cdFx0QklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpIHxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM9MzE1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IGlmX2xpbWl0c1tdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zMjEtXHRcdC50eXBlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9TVEFUSU9OKSB8XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MzIyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTMyMy1cdFx0XHQgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpIHxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9pbml0LmM9MjI5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IGlmX2xpbWl0c1tdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2luaXQuYy0yMzUtXHRcdC50eXBlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9BUCkgfFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvaW5pdC5jOjIzNjojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2luaXQuYy0yMzctXHRcdFx0IEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKSB8XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3V0aWwuYz0zMz1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBtdDc2eDAyX2lmX2xpbWl0c1tdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91dGlsLmMtMzktXHRcdC50eXBlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9TVEFUSU9OKSB8XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXRpbC5jOjQwOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3V0aWwuYy00MS1cdFx0XHQgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpIHxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXRpbC5jPTQ5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IG10NzZ4MDJ1X2lmX2xpbWl0c1tdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91dGlsLmMtNTUtXHRcdC50eXBlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9TVEFUSU9OKSB8XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXRpbC5jOjU2OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3V0aWwuYy01Ny1cdFx0XHQgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpIHxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9MTU9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfaWZhY2VfbGltaXQgaWZfbGltaXRzW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTIxLVx0XHQudHlwZXMgPSBCSVQoTkw4MDIxMV9JRlRZUEVfQVApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MjI6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMjMtXHRcdFx0IHwgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTkzMD1tdDc5MTVfc2V0X3N0cmVhbV9oZV90eGJmX2NhcHMoc3RydWN0IG10NzkxNV9waHkgKnBoeSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtOTQ1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjk0NjojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy05NDctXHRpZiAodmlmID09IE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTEwMjA9bXQ3OTE1X2luaXRfaGVfY2FwcyhzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5LCBlbnVtIG5sODAyMTFfYmFuZCBiYW5kLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMDU5LVx0XHRjYXNlIE5MODAyMTFfSUZUWVBFX0FQOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjEwNjA6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTA2MS1cdFx0Y2FzZSBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UOlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xNz1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBpZl9saW1pdHNfZ2xvYmFsID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0yMS1cdFx0IHwgQklUKE5MODAyMTFfSUZUWVBFX0FQKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjIyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTIzLVx0XHQgfCBCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9NTE9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfaWZhY2VfbGltaXQgaWZfbGltaXRzW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTU0LVx0XHQudHlwZXMgPSBCSVQoTkw4MDIxMV9JRlRZUEVfQVApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NTU6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNTYtXHRcdFx0IHwgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTEzNTA9bXQ3OTk2X3NldF9zdHJlYW1faGVfdHhiZl9jYXBzKHN0cnVjdCBtdDc5OTZfcGh5ICpwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTEzNTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTM1OTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMzYwLVx0aWYgKHZpZiA9PSBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xNjk5PV9fbXQ3OTk2X3NldF9zdHJlYW1faGVfZWh0X2NhcHMoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTcwOS1cdFx0Y2FzZSBOTDgwMjExX0lGVFlQRV9BUDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNzEwOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE3MTEtXHRcdGNhc2UgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVDpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MngwMGRldi5jPTEzMjY9c3RhdGljIGlubGluZSB2b2lkIHJ0MngwMGxpYl9zZXRfaWZfY29tYmluYXRpb25zKHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDJ4MDBkZXYuYy0xMzM5LVx0aWZfbGltaXQtXHUwMDNldHlwZXMgPSBCSVQoTkw4MDIxMV9JRlRZUEVfQVApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDJ4MDBkZXYuYzoxMzQwOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDJ4MDBkZXYuYy0xMzQxLVx0aWZfbGltaXQtXHUwMDNldHlwZXMgfD0gQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyeDAwZGV2LmM9MTM3ND1pbnQgcnQyeDAwbGliX3Byb2JlX2RldihzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyeDAwZGV2LmMtMTQ1OS1cdFx0ICAgIEJJVChOTDgwMjExX0lGVFlQRV9BREhPQykgfFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDJ4MDBkZXYuYzoxNDYwOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDJ4MDBkZXYuYy0xNDYxLVx0XHQgICAgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpIHxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy90aS93bDE4eHgvbWFpbi5jPTE4NzY9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfaWZhY2VfbGltaXQgd2wxOHh4X2lmYWNlX2xpbWl0c1tdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3RpL3dsMTh4eC9tYWluLmMtMTg4NS1cdFx0XHQgfCBCSVQoTkw4MDIxMV9JRlRZUEVfUDJQX0NMSUVOVClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3RpL3dsMTh4eC9tYWluLmM6MTg4NjojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3RpL3dsMTh4eC9tYWluLmMtMTg4Ny1cdFx0XHQgfCBCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy90aS93bDE4eHgvbWFpbi5jPTE4OTY9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfaWZhY2VfbGltaXQgd2wxOHh4X2lmYWNlX2FwX2xpbWl0c1tdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3RpL3dsMTh4eC9tYWluLmMtMTkwMC1cdH0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy90aS93bDE4eHgvbWFpbi5jOjE5MDE6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5kcml2ZXJzL25ldC93aXJlbGVzcy90aS93bDE4eHgvbWFpbi5jLTE5MDItXHR7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdGkvd2xjb3JlL21haW4uYz02MjA5PXN0YXRpYyBpbnQgd2wxMjcxX2luaXRfaWVlZTgwMjExKHN0cnVjdCB3bDEyNzEgKndsKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3RpL3dsY29yZS9tYWluLmMtNjI0NS1cdFx0XHRcdFx0IEJJVChOTDgwMjExX0lGVFlQRV9QMlBfQ0xJRU5UKSB8XG5kcml2ZXJzL25ldC93aXJlbGVzcy90aS93bGNvcmUvbWFpbi5jOjYyNDY6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5kcml2ZXJzL25ldC93aXJlbGVzcy90aS93bGNvcmUvbWFpbi5jLTYyNDctXHRcdFx0XHRcdCBCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVCkgfFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvbWFjODAyMTFfaHdzaW1fbWFpbi5jPTQ1MTg9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfc2JhbmRfaWZ0eXBlX2RhdGEgc2JhbmRfY2FwYV8yZ2h6W10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9tYWM4MDIxMV9od3NpbV9tYWluLmMtNDc1MS1cdH0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltX21haW4uYzo0NzUyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9tYWM4MDIxMV9od3NpbV9tYWluLmMtNDc1My1cdHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltX21haW4uYz00Nzk1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3NiYW5kX2lmdHlwZV9kYXRhIHNiYW5kX2NhcGFfNWdoeltdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvbWFjODAyMTFfaHdzaW1fbWFpbi5jLTUwNjEtXHR9LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9tYWM4MDIxMV9od3NpbV9tYWluLmM6NTA2MjojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvbWFjODAyMTFfaHdzaW1fbWFpbi5jLTUwNjMtXHR7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9tYWM4MDIxMV9od3NpbV9tYWluLmM9NTEwOD1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9zYmFuZF9pZnR5cGVfZGF0YSBzYmFuZF9jYXBhXzZnaHpbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltX21haW4uYy01NDE2LVx0fSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvbWFjODAyMTFfaHdzaW1fbWFpbi5jOjU0MTc6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltX21haW4uYy01NDE4LVx0e1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvbWFjODAyMTFfaHdzaW1fbWFpbi5jPTU2MDg9c3RhdGljIHZvaWQgbWFjODAyMTFfaHdzaW1fc2JhbmRfY2FwYWIoc3RydWN0IGllZWU4MDIxMV9zdXBwb3J0ZWRfYmFuZCAqc2JhbmQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9tYWM4MDIxMV9od3NpbV9tYWluLmMtNTYyNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvbWFjODAyMTFfaHdzaW1fbWFpbi5jOjU2MjU6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltX21haW4uYy01NjI2LSNkZWZpbmUgSFdTSU1fTUVTSF9CSVQgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpXG4tLVxuaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaD0xNDQ9c3RhdGljIGlubGluZSBib29sIGRldl94bWl0X2NvbXBsZXRlKGludCByYylcbi0tXG5pbmNsdWRlL2xpbnV4L25ldGRldmljZS5oLTE2NS0jZWxpZiBkZWZpbmVkKENPTkZJR19XTEFOKVxuaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaDoxNjY6IyBpZiBkZWZpbmVkKENPTkZJR19NQUM4MDIxMV9NRVNIKVxuaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaC0xNjctIyAgZGVmaW5lIExMX01BWF9IRUFERVIgMTI4XG4tLVxuaW5jbHVkZS9uZXQvbWFjODAyMTEuaD0yMzA3PXN0YXRpYyBpbmxpbmUgYm9vbCBpZWVlODAyMTFfdmlmX2lzX21lc2goc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZilcbmluY2x1ZGUvbmV0L21hYzgwMjExLmgtMjMwOC17XG5pbmNsdWRlL25ldC9tYWM4MDIxMS5oOjIzMDk6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5pbmNsdWRlL25ldC9tYWM4MDIxMS5oLTIzMTAtXHRyZXR1cm4gdmlmLVx1MDAzZXR5cGUgPT0gTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz02MD1jb25maWcgTUFDODAyMTFfS1VOSVRfVEVTVFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTY5LVxubmV0L21hYzgwMjExL0tjb25maWc6NzA6Y29uZmlnIE1BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTcxLVx0Ym9vbCBcJiMzNDtFbmFibGUgbWFjODAyMTEgbWVzaCBuZXR3b3JraW5nIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0yMDk9Y29uZmlnIE1BQzgwMjExX01QTF9ERUJVR1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIxMS1cdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWc6MjEyOlx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMTMtXHRoZWxwXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MjIyPWNvbmZpZyBNQUM4MDIxMV9NUEFUSF9ERUJVR1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyNC1cdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWc6MjI1Olx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjYtXHRoZWxwXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MjM1PWNvbmZpZyBNQUM4MDIxMV9NSFdNUF9ERUJVR1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNy1cdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWc6MjM4Olx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMzktXHRoZWxwXG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjQ3LVxubmV0L21hYzgwMjExL0tjb25maWc6MjQ4OmNvbmZpZyBNQUM4MDIxMV9NRVNIX1NZTkNfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0OS1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIHN5bmNocm9uaXphdGlvbiBkZWJ1Z2dpbmdcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1MC1cdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWc6MjUxOlx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNTItXHRoZWxwXG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjU4LVxubmV0L21hYzgwMjExL0tjb25maWc6MjU5OmNvbmZpZyBNQUM4MDIxMV9NRVNIX0NTQV9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjYwLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggY2hhbm5lbCBzd2l0Y2ggZGVidWdnaW5nXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNjEtXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI2MjpcdGRlcGVuZHMgb24gTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL0tjb25maWctMjYzLVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2OS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI3MDpjb25maWcgTUFDODAyMTFfTUVTSF9QU19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjcxLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggcG93ZXJzYXZlIGRlYnVnZ2luZ1wmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWctMjcyLVx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNzM6XHRkZXBlbmRzIG9uIE1BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI3NC1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU9NDE9bWFjODAyMTEtJChDT05GSUdfTUFDODAyMTFfREVCVUdGUykgJiM0Mzs9IFxcXG4tLVxubmV0L21hYzgwMjExL01ha2VmaWxlLTQ2LVxubmV0L21hYzgwMjExL01ha2VmaWxlOjQ3Om1hYzgwMjExLSQoQ09ORklHX01BQzgwMjExX01FU0gpICYjNDM7PSBcXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTQ4LVx0bWVzaC5vIFxcXG4tLVxubmV0L21hYzgwMjExL2NmZy5jPTYxMz1zdGF0aWMgaW50IGllZWU4MDIxMV9hZGRfa2V5KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsXG4tLVxubmV0L21hYzgwMjExL2NmZy5jLTcxMC1cdGNhc2UgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVDpcbm5ldC9tYWM4MDIxMS9jZmcuYzo3MTE6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvY2ZnLmMtNzEyLVx0XHRpZiAoc2RhdGEtXHUwMDNldS5tZXNoLnNlY3VyaXR5ICE9IElFRUU4MDIxMV9NRVNIX1NFQ19OT05FKVxuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYz0yMTkwPXN0YXRpYyB2b2lkIHN0YV9hcHBseV9tZXNoX3BhcmFtcyhzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCxcbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmMtMjE5My17XG5uZXQvbWFjODAyMTEvY2ZnLmM6MjE5NDojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9jZmcuYy0yMTk1LVx0c3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEgPSBzdGEtXHUwMDNlc2RhdGE7XG4tLVxubmV0L21hYzgwMjExL2NmZy5jPTI3ODc9c3RhdGljIGludCBpZWVlODAyMTFfY2hhbmdlX3N0YXRpb24oc3RydWN0IHdpcGh5ICp3aXBoeSxcbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmMtMjg5My1cbm5ldC9tYWM4MDIxMS9jZmcuYzoyODk0OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL2NmZy5jLTI4OTUtc3RhdGljIGludCBpZWVlODAyMTFfYWRkX21wYXRoKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4tLVxubmV0L21hYzgwMjExL2NmZy5jPTQ0Mjg9c3RhdGljIGludCBpZWVlODAyMTFfc2V0X2FmdGVyX2NzYV9iZWFjb24oc3RydWN0IGllZWU4MDIxMV9saW5rX2RhdGEgKmxpbmtfZGF0YSxcbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmMtNDQ1MS1cdFx0YnJlYWs7XG5uZXQvbWFjODAyMTEvY2ZnLmM6NDQ1MjojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9jZmcuYy00NDUzLVx0Y2FzZSBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UOlxuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYz00NTYzPXN0YXRpYyBpbnQgaWVlZTgwMjExX3NldF9jc2FfYmVhY29uKHN0cnVjdCBpZWVlODAyMTFfbGlua19kYXRhICpsaW5rX2RhdGEsXG4tLVxubmV0L21hYzgwMjExL2NmZy5jLTQ2NTQtXHRcdGJyZWFrO1xubmV0L21hYzgwMjExL2NmZy5jOjQ2NTU6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvY2ZnLmMtNDY1Ni1cdGNhc2UgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVDoge1xuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYz01OTc2PWNvbnN0IHN0cnVjdCBjZmc4MDIxMV9vcHMgbWFjODAyMTFfY29uZmlnX29wcyA9IHtcbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmMtNTk5Ni1cdC5kdW1wX3N1cnZleSA9IGllZWU4MDIxMV9kdW1wX3N1cnZleSxcbm5ldC9tYWM4MDIxMS9jZmcuYzo1OTk3OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL2NmZy5jLTU5OTgtXHQuYWRkX21wYXRoID0gaWVlZTgwMjExX2FkZF9tcGF0aCxcbi0tXG5uZXQvbWFjODAyMTEvZGVidWcuaC01Mi1cbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjUzOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSF9TWU5DX0RFQlVHXG5uZXQvbWFjODAyMTEvZGVidWcuaDo1NDojZGVmaW5lIE1BQzgwMjExX01FU0hfU1lOQ19ERUJVRyAxXG5uZXQvbWFjODAyMTEvZGVidWcuaC01NS0jZWxzZVxubmV0L21hYzgwMjExL2RlYnVnLmg6NTY6I2RlZmluZSBNQUM4MDIxMV9NRVNIX1NZTkNfREVCVUcgMFxubmV0L21hYzgwMjExL2RlYnVnLmgtNTctI2VuZGlmXG5uZXQvbWFjODAyMTEvZGVidWcuaC01OC1cbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjU5OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSF9DU0FfREVCVUdcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjYwOiNkZWZpbmUgTUFDODAyMTFfTUVTSF9DU0FfREVCVUcgMVxubmV0L21hYzgwMjExL2RlYnVnLmgtNjEtI2Vsc2Vcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjYyOiNkZWZpbmUgTUFDODAyMTFfTUVTSF9DU0FfREVCVUcgMFxubmV0L21hYzgwMjExL2RlYnVnLmgtNjMtI2VuZGlmXG5uZXQvbWFjODAyMTEvZGVidWcuaC02NC1cbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjY1OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSF9QU19ERUJVR1xubmV0L21hYzgwMjExL2RlYnVnLmg6NjY6I2RlZmluZSBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHIDFcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTY3LSNlbHNlXG5uZXQvbWFjODAyMTEvZGVidWcuaDo2ODojZGVmaW5lIE1BQzgwMjExX01FU0hfUFNfREVCVUcgMFxubmV0L21hYzgwMjExL2RlYnVnLmgtNjktI2VuZGlmXG4tLVxubmV0L21hYzgwMjExL2RlYnVnLmg9MTI1PWRvIHtcdFx0XHRcdFx0XHRcdFx0XHRcXFxuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTIxOC0jZGVmaW5lIG1zeW5jX2RiZyhzZGF0YSwgZm10LCAuLi4pXHRcdFx0XHRcdFxcXG5uZXQvbWFjODAyMTEvZGVidWcuaDoyMTk6XHRfc2RhdGFfZGJnKE1BQzgwMjExX01FU0hfU1lOQ19ERUJVRyxcdFx0XHRcdFxcXG5uZXQvbWFjODAyMTEvZGVidWcuaC0yMjAtXHRcdCAgIHNkYXRhLCBmbXQsICMjX19WQV9BUkdTX18pXG4tLVxubmV0L21hYzgwMjExL2RlYnVnLmgtMjIyLSNkZWZpbmUgbWNzYV9kYmcoc2RhdGEsIGZtdCwgLi4uKVx0XHRcdFx0XHRcXFxubmV0L21hYzgwMjExL2RlYnVnLmg6MjIzOlx0X3NkYXRhX2RiZyhNQUM4MDIxMV9NRVNIX0NTQV9ERUJVRyxcdFx0XHRcdFxcXG5uZXQvbWFjODAyMTEvZGVidWcuaC0yMjQtXHRcdCAgIHNkYXRhLCBmbXQsICMjX19WQV9BUkdTX18pXG4tLVxubmV0L21hYzgwMjExL2RlYnVnLmgtMjI2LSNkZWZpbmUgbXBzX2RiZyhzZGF0YSwgZm10LCAuLi4pXHRcdFx0XHRcdFxcXG5uZXQvbWFjODAyMTEvZGVidWcuaDoyMjc6XHRfc2RhdGFfZGJnKE1BQzgwMjExX01FU0hfUFNfREVCVUcsXHRcdFx0XHRcXFxubmV0L21hYzgwMjExL2RlYnVnLmgtMjI4LVx0XHQgICBzZGF0YSwgZm10LCAjI19fVkFfQVJHU19fKVxuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jPTczNj1JRUVFODAyMTFfSUZfTElOS19GSUxFKGFkZHIsIGNvbmYtXHUwMDNlYWRkciwgTUFDKTtcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTczNy1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jOjczODojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTczOS1JRUVFODAyMTFfSUZfRklMRShlc3RhYl9wbGlua3MsIHUubWVzaC5lc3RhYl9wbGlua3MsIEFUT01JQyk7XG4tLVxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmM9ODY4PXN0YXRpYyB2b2lkIGFkZF9pYnNzX2ZpbGVzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTg3Mi1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jOjg3MzojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTg3NC1cbi0tXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuYz05Mzc9c3RhdGljIHZvaWQgYWRkX2ZpbGVzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTk0OS1cdGNhc2UgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVDpcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jOjk1MDojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTk1MS1cdFx0YWRkX21lc2hfZmlsZXMoc2RhdGEpO1xuLS1cbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oPTc3MD1zdHJ1Y3QgaWVlZTgwMjExX2lmX21lc2gge1xuLS1cbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTg1MC1cbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oOjg1MTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTg1Mi0jZGVmaW5lIElFRUU4MDIxMV9JRlNUQV9NRVNIX0NUUl9JTkMobXNoLCBuYW1lKVx0XFxcbi0tXG5uZXQvbWFjODAyMTEvbWFpbi5jPTExMzc9aW50IGllZWU4MDIxMV9yZWdpc3Rlcl9odyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcbi0tXG5uZXQvbWFjODAyMTEvbWFpbi5jLTEzOTItXG5uZXQvbWFjODAyMTEvbWFpbi5jOjEzOTM6I2lmbmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL21haW4uYy0xMzk0LVx0LyogbWVzaCBkZXBlbmRzIG9uIEtjb25maWcsIGJ1dCBkcml2ZXJzIHNob3VsZCBzZXQgaXQgaWYgdGhleSB3YW50ICovXG4tLVxubmV0L21hYzgwMjExL21lc2guaD0zNzg9dm9pZCBtZXNoX3BhdGhfcmVmcmVzaChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbi0tXG5uZXQvbWFjODAyMTEvbWVzaC5oLTM4MC1cbm5ldC9tYWM4MDIxMS9tZXNoLmg6MzgxOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL21lc2guaC0zODItc3RhdGljIGlubGluZVxuLS1cbm5ldC9tYWM4MDIxMS9vZmZjaGFubmVsLmM9ODEwPWludCBpZWVlODAyMTFfbWdtdF90eChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxuLS1cbm5ldC9tYWM4MDIxMS9vZmZjaGFubmVsLmMtODM5LVx0XHRcdG5lZWRfb2ZmY2hhbiA9IHRydWU7XG5uZXQvbWFjODAyMTEvb2ZmY2hhbm5lbC5jOjg0MDojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9vZmZjaGFubmVsLmMtODQxLVx0XHRmYWxsdGhyb3VnaDtcbi0tXG5uZXQvbWFjODAyMTEvcnguYz0yNzk0PWllZWU4MDIxMV9kZWxpdmVyX3NrYihzdHJ1Y3QgaWVlZTgwMjExX3J4X2RhdGEgKnJ4KVxuLS1cbm5ldC9tYWM4MDIxMS9yeC5jLTI4OTMtXG5uZXQvbWFjODAyMTEvcnguYzoyODk0OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL3J4LmMtMjg5NS1zdGF0aWMgYm9vbFxuLS1cbm5ldC9tYWM4MDIxMS9yeC5jPTI5NjE9aWVlZTgwMjExX3J4X21lc2hfZGF0YShzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSwgc3RydWN0IHN0YV9pbmZvICpzdGEsXG4tLVxubmV0L21hYzgwMjExL3J4LmMtMjk2My17XG5uZXQvbWFjODAyMTEvcnguYzoyOTY0OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL3J4LmMtMjk2NS1cdHN0cnVjdCBpZWVlODAyMTFfaWZfbWVzaCAqaWZtc2ggPSBcdTAwMjZzZGF0YS1cdTAwM2V1Lm1lc2g7XG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM9NDY4PXZvaWQgc3RhX2luZm9fZnJlZShzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCwgc3RydWN0IHN0YV9pbmZvICpzdGEpXG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtNTA2LVx0a2ZyZWUocmN1X2RlcmVmZXJlbmNlX3JhdyhzdGEtXHUwMDNlc3RhLnJhdGVzKSk7XG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYzo1MDc6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy01MDgtXHRrZnJlZShzdGEtXHUwMDNlbWVzaCk7XG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM9NjMzPV9fc3RhX2luZm9fYWxsb2Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtNjY3LVx0d2lwaHlfd29ya19pbml0KFx1MDAyNnN0YS1cdTAwM2VhbXBkdV9tbG1lLndvcmssIGllZWU4MDIxMV9iYV9zZXNzaW9uX3dvcmspO1xubmV0L21hYzgwMjExL3N0YV9pbmZvLmM6NjY4OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtNjY5LVx0aWYgKGllZWU4MDIxMV92aWZfaXNfbWVzaChcdTAwMjZzZGF0YS1cdTAwM2V2aWYpKSB7XG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtNzk1LVx0c3RhX2luZm9fZnJlZV9saW5rKFx1MDAyNnN0YS1cdTAwM2VkZWZsaW5rKTtcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jOjc5NjojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTc5Ny1cdGtmcmVlKHN0YS1cdTAwM2VtZXNoKTtcbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYz0xMTA3PXN0YXRpYyB2b2lkIF9fc3RhX2luZm9fcmVjYWxjX3RpbShzdHJ1Y3Qgc3RhX2luZm8gKnN0YSwgYm9vbCBpZ25vcmVfcGVuZGluZylcbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy0xMTIxLVx0XHRwcyA9IFx1MDAyNnN0YS1cdTAwM2VzZGF0YS1cdTAwM2Vic3MtXHUwMDNlcHM7XG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYzoxMTIyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtMTEyMy1cdH0gZWxzZSBpZiAoaWVlZTgwMjExX3ZpZl9pc19tZXNoKFx1MDAyNnN0YS1cdTAwM2VzZGF0YS1cdTAwM2V2aWYpKSB7XG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM9Mjc0Mz1zdGF0aWMgaW5saW5lIHU2NCBzdGFfZ2V0X3N0YXRzX2J5dGVzKHN0cnVjdCBpZWVlODAyMTFfc3RhX3J4X3N0YXRzICpyeHN0YXRzKVxuLS1cbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTI3NTUtXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYzoyNzU2OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtMjc1Ny1zdGF0aWMgdm9pZCBzdGFfc2V0X21lc2hfc2luZm8oc3RydWN0IHN0YV9pbmZvICpzdGEsXG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM9MzA3OT12b2lkIHN0YV9zZXRfc2luZm8oc3RydWN0IHN0YV9pbmZvICpzdGEsIHN0cnVjdCBzdGF0aW9uX2luZm8gKnNpbmZvLFxuLS1cbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTMyNjQtXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYzozMjY1OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtMzI2Ni1cdGlmIChpZWVlODAyMTFfdmlmX2lzX21lc2goXHUwMDI2c2RhdGEtXHUwMDNldmlmKSlcbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaD03MTU9c3RydWN0IHN0YV9pbmZvIHtcbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaC03MzItXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaDo3MzM6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaC03MzQtXHRzdHJ1Y3QgbWVzaF9zdGEgKm1lc2g7XG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmg9ODAwPXN0YXRpYyBpbmxpbmUgZW51bSBubDgwMjExX3BsaW5rX3N0YXRlIHN0YV9wbGlua19zdGF0ZShzdHJ1Y3Qgc3RhX2luZm8gKnN0YSlcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oLTgwMS17XG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaDo4MDI6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaC04MDMtXHRyZXR1cm4gc3RhLVx1MDAzZW1lc2gtXHUwMDNlcGxpbmtfc3RhdGU7XG4tLVxubmV0L21hYzgwMjExL3R4LmM9MjUwNz1pbnQgaWVlZTgwMjExX2xvb2t1cF9yYV9zdGEoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL3R4LmMtMjUzMS1cdFx0YnJlYWs7XG5uZXQvbWFjODAyMTEvdHguYzoyNTMyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL3R4LmMtMjUzMy1cdGNhc2UgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVDpcbi0tXG5uZXQvbWFjODAyMTEvdHguYz0yNjQ4PXN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqaWVlZTgwMjExX2J1aWxkX2hkcihzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbi0tXG5uZXQvbWFjODAyMTEvdHguYy0yNzQ3LVx0XHRicmVhaztcbm5ldC9tYWM4MDIxMS90eC5jOjI3NDg6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvdHguYy0yNzQ5LVx0Y2FzZSBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UOlxuLS1cbm5ldC9tYWM4MDIxMS90eC5jLTMwMDktXG5uZXQvbWFjODAyMTEvdHguYzozMDEwOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL3R4LmMtMzAxMS1cdGlmIChtZXNoaGRybGVuIFx1MDAzZSAwKVxuLS1cbm5ldC93aXJlbGVzcy9jb3JlLmM9MTcwNz1zdGF0aWMgaW50IGNmZzgwMjExX25ldGRldl9ub3RpZmllcl9jYWxsKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsXG4tLVxubmV0L3dpcmVsZXNzL2NvcmUuYy0xNzg5LSNlbmRpZlxubmV0L3dpcmVsZXNzL2NvcmUuYzoxNzkwOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L3dpcmVsZXNzL2NvcmUuYy0xNzkxLVx0XHRjYXNlIE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQ6XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDY6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTQ5ODIKCQkJCQkJCW91dHB1dDogMjUKCQkJCQkJCXRob3VnaHRzOiA0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duOgoKKipNZXNoIENvbmZpZ3VyYXRpb24gQ2hlY2sqKgoKQWxyaWdodCwgeWVwLCBjb25maXJtZWQuIFdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYENPTkZJR19NQUM4MDIxMV9NRVNIYC4gVGhhdCYjMzk7cyB0aGUga2V5LiBOb3csIGxldCYjMzk7cyBqdXN0IHF1aWNrbHkgdmVyaWZ5IHNvbWV0aGluZyBjcnVjaWFsOiBjYW4gd2UgYWN0dWFsbHkgcmVhY2ggYGllZWU4MDIxMV9zdG9wX21lc2hgPyBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IGZ1bmN0aW9uIGlzIGFjY2Vzc2libGUgYW5kIGRlZmluZWQgd2l0aGluIHRoZSBjdXJyZW50IGJ1aWxkIGVudmlyb25tZW50LCBzaW5jZSB0aGF0JiMzOTtzIGEgcHJldHR5IGZ1bmRhbWVudGFsIG9wZXJhdGlvbi4gR290dGEgY29uZmlybSB0aGF0IHRoZSBmdW5jdGlvbiBleGlzdHMgYW5kIGlzIGluIHNjb3BlIGJlZm9yZSB3ZSBkaXZlIGFueSBkZWVwZXIuIEl0JiMzOTtzIGEgZnVuZGFtZW50YWwgY2hlY2ssIG1ha2luZyBzdXJlIHdlIGhhdmVuJiMzOTt0IGdvdCBhbnkgbGlua2FnZSBwcm9ibGVtcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwNjo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpZWVlODAyMTFfc3RvcF9tZXNoJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9jZmcuYz0zMzI2PXN0YXRpYyBpbnQgaWVlZTgwMjExX2xlYXZlX21lc2goc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmMtMzMzMS1cbm5ldC9tYWM4MDIxMS9jZmcuYzozMzMyOlx0aWVlZTgwMjExX3N0b3BfbWVzaChzZGF0YSk7XG5uZXQvbWFjODAyMTEvY2ZnLmMtMzMzMy1cdGllZWU4MDIxMV9saW5rX3JlbGVhc2VfY2hhbm5lbChcdTAwMjZzZGF0YS1cdTAwM2VkZWZsaW5rKTtcbi0tXG5uZXQvbWFjODAyMTEvbWVzaC5jPTExNTg9aW50IGllZWU4MDIxMV9zdGFydF9tZXNoKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxuLS1cbm5ldC9tYWM4MDIxMS9tZXNoLmMtMTE4Ny1cdGlmIChpZWVlODAyMTFfbWVzaF9idWlsZF9iZWFjb24oaWZtc2gpKSB7XG5uZXQvbWFjODAyMTEvbWVzaC5jOjExODg6XHRcdGllZWU4MDIxMV9zdG9wX21lc2goc2RhdGEpO1xubmV0L21hYzgwMjExL21lc2guYy0xMTg5LVx0XHRyZXR1cm4gLUVOT01FTTtcbi0tXG5uZXQvbWFjODAyMTEvbWVzaC5jLTExOTgtXG5uZXQvbWFjODAyMTEvbWVzaC5jOjExOTk6dm9pZCBpZWVlODAyMTFfc3RvcF9tZXNoKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxubmV0L21hYzgwMjExL21lc2guYy0xMjAwLXtcbi0tXG5uZXQvbWFjODAyMTEvbWVzaC5oPTI3OT1pbnQgaWVlZTgwMjExX3N0YXJ0X21lc2goc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpO1xubmV0L21hYzgwMjExL21lc2guaDoyODA6dm9pZCBpZWVlODAyMTFfc3RvcF9tZXNoKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKTtcbm5ldC9tYWM4MDIxMS9tZXNoLmgtMjgxLXZvaWQgaWVlZTgwMjExX21lc2hfcm9vdF9zZXR1cChzdHJ1Y3QgaWVlZTgwMjExX2lmX21lc2ggKmlmbXNoKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwNjo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNTc0MAoJCQkJCQkJb3V0cHV0OiAxNwoJCQkJCQkJdGhvdWdodHM6IDQyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBhdGNoIGZvciBGb2N1cyBTeW1ib2wgSWRlbnRpZmljYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIHRyeWluZyB0byBmaWd1cmUgb3V0IHRoZSBiZXN0IGZvY3VzIHN5bWJvbCBmb3IgZnV6emluZyBhbmQgYW5hbHlzaXMuIEl0IGxvb2tzIGxpa2UgYGllZWU4MDIxMV9zdG9wX21lc2hgIGlzIHRoZSBrZXkuIFRoZSBmdW5jdGlvbiBgaWVlZTgwMjExX3N0b3BfbWVzaGAgaXMgY2FsbGVkIGZyb20gYm90aCBgaWVlZTgwMjExX2xlYXZlX21lc2hgIGFuZCBgaWVlZTgwMjExX3N0YXJ0X21lc2hgLiAgSW1wb3J0YW50bHksIGBpZWVlODAyMTFfbGVhdmVfbWVzaGAgaXRzZWxmIGlzIHJlYWNoZWQgdGhyb3VnaCB0aGUgc3RhbmRhcmQgYG1hYzgwMjExX2NvbmZpZ19vcHMubGVhdmVfbWVzaGAgd2hpY2ggaXMsIG9mIGNvdXJzZSwgYWNjZXNzaWJsZSBmcm9tIHVzZXJzcGFjZSB0aHJvdWdoIG5sODAyMTEuIFRoYXQgY29uZmlybXMgaXQmIzM5O3MgYSB2YWxpZCB0YXJnZXQgZm9yIGZ1enppbmcuCgpUaGUgY29yZSBvZiB0aGUgcGF0Y2ggaW52b2x2ZXMgZnJlZWluZyBgaWZtc2gtJmd0O2NzYWAgd2l0aGluIGBpZWVlODAyMTFfc3RvcF9tZXNoYCwgYWRkcmVzc2luZyBlaXRoZXIgYSBtZW1vcnkgbGVhayBvciB1c2UtYWZ0ZXItZnJlZSB2dWxuZXJhYmlsaXR5LiAgYGllZWU4MDIxMV9zdG9wX21lc2hgIGhhcyBnb3QgdG8gYmUgaW4gYEZvY3VzU3ltYm9sc2AsIGdpdmVuIGl0cyBkaXJlY3QgaW52b2x2ZW1lbnQgaW4gdGhlIGZpeC4gTGV0JiMzOTtzIG1ha2Ugc3VyZSB0aGUgYE1BQzgwMjExX01FU0hgIGNvbmZpZyBpcyBpbmNsdWRlZCBpbiBgRW5hYmxlQ29uZmlnc2AuCgpJIHRvb2sgYSBxdWljayBsb29rIGFyb3VuZCBhbmQgaXQgc2VlbXMgb25seSBgaWVlZTgwMjExX3N0b3BfbWVzaGAgd2FzIG1vZGlmaWVkLCB3aGljaCBtYWtlcyB0aGlzIGV2ZW4gY2xlYW5lci4gIERvdWJsZS1jaGVja2luZywgaXQmIzM5O3Mgbm90IGRlY2xhcmVkIGFzIHN0YXRpYyBvciBpbmxpbmUuIEl0JiMzOTtzIGRlY2xhcmVkIGluIGBuZXQvbWFjODAyMTEvbWVzaC5oYCBhbmQgZGVmaW5lZCBpbiBgbmV0L21hYzgwMjExL21lc2guY2AsIHNvIGl0JiMzOTtzIGRpcmVjdGx5IGFjY2Vzc2libGUsIGFuZCBhIHNvbGlkIGZvY3VzIHN5bWJvbC4KCk5vdywgbGV0IG1lIGp1c3QgcXVpY2tseSByZXZpc2l0IGBpZWVlODAyMTFfbGVhdmVfbWVzaGAgc2luY2UgaXQmIzM5O3MgYW4gaW1wb3J0YW50IGVudHJ5IHBvaW50LiBJdCYjMzk7cyBtYXJrZWQgc3RhdGljIGluIGBuZXQvbWFjODAyMTEvY2ZnLmNgIHdoaWNoIGxvb2tlZCBsaWtlIGEgcG90ZW50aWFsIHByb2JsZW0uIEFoLCB3YWl0IGEgbWludXRlLCBpdCBpcyBpbmRlZWQgYXNzaWduZWQgdG8gYG1hYzgwMjExX2NvbmZpZ19vcHMubGVhdmVfbWVzaGAhIE9rYXksIHNvIEkgc2hvdWxkIGRvdWJsZS1jaGVjayB0aGUgZGVmaW5pdGlvbiBvZiBgbWFjODAyMTFfY29uZmlnX29wc2AgaW4gYG5ldC9tYWM4MDIxMS9jZmcuY2AganVzdCB0byBiZSBjb21wbGV0ZWx5IGNlcnRhaW4gb2YgdGhlIGNhbGwgY2hhaW4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDY6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bGVhdmVfbWVzaCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL25ldC9jZmc4MDIxMS5oPTQ4NDM9c3RydWN0IG1nbXRfZnJhbWVfcmVncyB7XG4tLVxuaW5jbHVkZS9uZXQvY2ZnODAyMTEuaC00OTQzLSAqXHQoaW52b2tlZCB3aXRoIHRoZSB3aXJlbGVzc19kZXYgbXV0ZXggaGVsZClcbmluY2x1ZGUvbmV0L2NmZzgwMjExLmg6NDk0NDogKiBAbGVhdmVfbWVzaDogbGVhdmUgdGhlIGN1cnJlbnQgbWVzaCBuZXR3b3JrXG5pbmNsdWRlL25ldC9jZmc4MDIxMS5oLTQ5NDUtICpcdChpbnZva2VkIHdpdGggdGhlIHdpcmVsZXNzX2RldiBtdXRleCBoZWxkKVxuLS1cbmluY2x1ZGUvbmV0L2NmZzgwMjExLmg9NTI4MD1zdHJ1Y3QgY2ZnODAyMTFfb3BzIHtcbi0tXG5pbmNsdWRlL25ldC9jZmc4MDIxMS5oLTUzNzAtXHRcdFx0ICAgICBjb25zdCBzdHJ1Y3QgbWVzaF9zZXR1cCAqc2V0dXApO1xuaW5jbHVkZS9uZXQvY2ZnODAyMTEuaDo1MzcxOlx0aW50XHQoKmxlYXZlX21lc2gpKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xuaW5jbHVkZS9uZXQvY2ZnODAyMTEuaC01MzcyLVxuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYz0zMjk2PXN0YXRpYyBpbnQgaWVlZTgwMjExX2pvaW5fbWVzaChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYy0zMzI1LVxubmV0L21hYzgwMjExL2NmZy5jOjMzMjY6c3RhdGljIGludCBpZWVlODAyMTFfbGVhdmVfbWVzaChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxubmV0L21hYzgwMjExL2NmZy5jLTMzMjcte1xuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYz01OTc2PWNvbnN0IHN0cnVjdCBjZmc4MDIxMV9vcHMgbWFjODAyMTFfY29uZmlnX29wcyA9IHtcbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmMtNjAwNy1cdC5qb2luX21lc2ggPSBpZWVlODAyMTFfam9pbl9tZXNoLFxubmV0L21hYzgwMjExL2NmZy5jOjYwMDg6XHQubGVhdmVfbWVzaCA9IGllZWU4MDIxMV9sZWF2ZV9tZXNoLFxubmV0L21hYzgwMjExL2NmZy5jLTYwMDktI2VuZGlmXG4tLVxubmV0L3dpcmVsZXNzL2NvcmUuYz01NDk9c3RydWN0IHdpcGh5ICp3aXBoeV9uZXdfbm0oY29uc3Qgc3RydWN0IGNmZzgwMjExX29wcyAqb3BzLCBpbnQgc2l6ZW9mX3ByaXYsXG4tLVxubmV0L3dpcmVsZXNzL2NvcmUuYy01NjMtXHRXQVJOX09OKG9wcy1cdTAwM2VhZGRfbXBhdGggXHUwMDI2XHUwMDI2ICFvcHMtXHUwMDNlZGVsX21wYXRoKTtcbm5ldC93aXJlbGVzcy9jb3JlLmM6NTY0Olx0V0FSTl9PTihvcHMtXHUwMDNlam9pbl9tZXNoIFx1MDAyNlx1MDAyNiAhb3BzLVx1MDAzZWxlYXZlX21lc2gpO1xubmV0L3dpcmVsZXNzL2NvcmUuYy01NjUtXHRXQVJOX09OKG9wcy1cdTAwM2VzdGFydF9wMnBfZGV2aWNlIFx1MDAyNlx1MDAyNiAhb3BzLVx1MDAzZXN0b3BfcDJwX2RldmljZSk7XG4tLVxubmV0L3dpcmVsZXNzL2NvcmUuYz0xNTAzPXZvaWQgY2ZnODAyMTFfbGVhdmVfbG9ja2VkKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcbi0tXG5uZXQvd2lyZWxlc3MvY29yZS5jLTE1MzctXHRjYXNlIE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQ6XG5uZXQvd2lyZWxlc3MvY29yZS5jOjE1Mzg6XHRcdGNmZzgwMjExX2xlYXZlX21lc2gocmRldiwgZGV2KTtcbm5ldC93aXJlbGVzcy9jb3JlLmMtMTUzOS1cdFx0YnJlYWs7XG4tLVxubmV0L3dpcmVsZXNzL2NvcmUuaD0zNTU9aW50IF9fY2ZnODAyMTFfam9pbl9tZXNoKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcbi0tXG5uZXQvd2lyZWxlc3MvY29yZS5oLTM1OC1cdFx0XHQgY29uc3Qgc3RydWN0IG1lc2hfY29uZmlnICpjb25mKTtcbm5ldC93aXJlbGVzcy9jb3JlLmg6MzU5OmludCBjZmc4MDIxMV9sZWF2ZV9tZXNoKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcbm5ldC93aXJlbGVzcy9jb3JlLmgtMzYwLVx0XHRcdHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xuLS1cbm5ldC93aXJlbGVzcy9tZXNoLmM9MjI1PWludCBjZmc4MDIxMV9zZXRfbWVzaF9jaGFubmVsKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcbi0tXG5uZXQvd2lyZWxlc3MvbWVzaC5jLTI1OS1cbm5ldC93aXJlbGVzcy9tZXNoLmM6MjYwOmludCBjZmc4MDIxMV9sZWF2ZV9tZXNoKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcbm5ldC93aXJlbGVzcy9tZXNoLmMtMjYxLVx0XHRcdHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4tLVxubmV0L3dpcmVsZXNzL21lc2guYy0yNzAtXG5uZXQvd2lyZWxlc3MvbWVzaC5jOjI3MTpcdGlmICghcmRldi1cdTAwM2VvcHMtXHUwMDNlbGVhdmVfbWVzaClcbm5ldC93aXJlbGVzcy9tZXNoLmMtMjcyLVx0XHRyZXR1cm4gLUVPUE5PVFNVUFA7XG4tLVxubmV0L3dpcmVsZXNzL21lc2guYy0yNzYtXG5uZXQvd2lyZWxlc3MvbWVzaC5jOjI3NzpcdGVyciA9IHJkZXZfbGVhdmVfbWVzaChyZGV2LCBkZXYpO1xubmV0L3dpcmVsZXNzL21lc2guYy0yNzgtXHRpZiAoIWVycikge1xuLS1cbm5ldC93aXJlbGVzcy9ubDgwMjExLmM9MTUyNjU9c3RhdGljIGludCBubDgwMjExX2pvaW5fbWVzaChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuLS1cbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtMTUzODYtXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jOjE1Mzg3OnN0YXRpYyBpbnQgbmw4MDIxMV9sZWF2ZV9tZXNoKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTE1Mzg4LXtcbi0tXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTE1MzkxLVxubmV0L3dpcmVsZXNzL25sODAyMTEuYzoxNTM5MjpcdHJldHVybiBjZmc4MDIxMV9sZWF2ZV9tZXNoKHJkZXYsIGRldik7XG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTE1MzkzLX1cbi0tXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jPTE5NzMzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2VubF9zbWFsbF9vcHMgbmw4MDIxMV9zbWFsbF9vcHNbXSA9IHtcbi0tXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTIwMTcwLVx0XHQudmFsaWRhdGUgPSBHRU5MX0RPTlRfVkFMSURBVEVfU1RSSUNUIHwgR0VOTF9ET05UX1ZBTElEQVRFX0RVTVAsXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jOjIwMTcxOlx0XHQuZG9pdCA9IG5sODAyMTFfbGVhdmVfbWVzaCxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtMjAxNzItXHRcdC5mbGFncyA9IEdFTkxfVU5TX0FETUlOX1BFUk0sXG4tLVxubmV0L3dpcmVsZXNzL3JkZXYtb3BzLmg9MzU0PXN0YXRpYyBpbmxpbmUgaW50IHJkZXZfam9pbl9tZXNoKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcbi0tXG5uZXQvd2lyZWxlc3MvcmRldi1vcHMuaC0zNjYtXG5uZXQvd2lyZWxlc3MvcmRldi1vcHMuaDozNjc6c3RhdGljIGlubGluZSBpbnQgcmRldl9sZWF2ZV9tZXNoKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcbm5ldC93aXJlbGVzcy9yZGV2LW9wcy5oLTM2OC1cdFx0XHRcdCAgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5uZXQvd2lyZWxlc3MvcmRldi1vcHMuaC0zNzAtXHRpbnQgcmV0O1xubmV0L3dpcmVsZXNzL3JkZXYtb3BzLmg6MzcxOlx0dHJhY2VfcmRldl9sZWF2ZV9tZXNoKFx1MDAyNnJkZXYtXHUwMDNld2lwaHksIGRldik7XG5uZXQvd2lyZWxlc3MvcmRldi1vcHMuaDozNzI6XHRyZXQgPSByZGV2LVx1MDAzZW9wcy1cdTAwM2VsZWF2ZV9tZXNoKFx1MDAyNnJkZXYtXHUwMDNld2lwaHksIGRldik7XG5uZXQvd2lyZWxlc3MvcmRldi1vcHMuaC0zNzMtXHR0cmFjZV9yZGV2X3JldHVybl9pbnQoXHUwMDI2cmRldi1cdTAwM2V3aXBoeSwgcmV0KTtcbi0tXG5uZXQvd2lyZWxlc3Mvc21lLmM9MTU4MT12b2lkIGNmZzgwMjExX2F1dG9kaXNjb25uZWN0X3drKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXBoeV93b3JrICp3b3JrKVxuLS1cbm5ldC93aXJlbGVzcy9zbWUuYy0xNTk2LVx0XHRjYXNlIE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQ6XG5uZXQvd2lyZWxlc3Mvc21lLmM6MTU5NzpcdFx0XHRjZmc4MDIxMV9sZWF2ZV9tZXNoKHJkZXYsIHdkZXYtXHUwMDNlbmV0ZGV2KTtcbm5ldC93aXJlbGVzcy9zbWUuYy0xNTk4LVx0XHRcdGJyZWFrO1xuLS1cbm5ldC93aXJlbGVzcy90cmFjZS5oPTgyNT1ERUZJTkVfRVZFTlQod2lwaHlfbmV0ZGV2X2V2dCwgcmRldl9nZXRfbWVzaF9jb25maWcsXG4tLVxubmV0L3dpcmVsZXNzL3RyYWNlLmgtODI5LVxubmV0L3dpcmVsZXNzL3RyYWNlLmg6ODMwOkRFRklORV9FVkVOVCh3aXBoeV9uZXRkZXZfZXZ0LCByZGV2X2xlYXZlX21lc2gsXG5uZXQvd2lyZWxlc3MvdHJhY2UuaC04MzEtXHRUUF9QUk9UTyhzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwNjo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxODc0MAoJCQkJCQkJb3V0cHV0OiAxMTMKCQkJCQkJCXRob3VnaHRzOiA0NTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBTdHJhdGVneSBmb3IgTWVzaCBUZWFyZG93biBpbiBtYWM4MDIxMSoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBJJiMzOTttIGZvY3VzaW5nIG9uIGNsZWFuaW5nIHVwIGEgcG90ZW50aWFsIG1lbW9yeSBsZWFrIGluIG1hYzgwMjExIG1lc2ggaGFuZGxpbmcuIEkgaW5pdGlhbGx5IGNvbnNpZGVyZWQgYGllZWU4MDIxMV9sZWF2ZV9tZXNoYCwgYnV0IGl0JiMzOTtzIHN0YXRpYywgc28gaXQmIzM5O3Mgbm90IGEgc3VpdGFibGUgZm9jdXMgZm9yIHN5emthbGxlci4gYGllZWU4MDIxMV9zdG9wX21lc2hgLCBob3dldmVyLCBpcyBleHBvcnRlZCBhbmQgdGh1cyBhIGJldHRlciBjYW5kaWRhdGUuCgpOb3csIGxldCYjMzk7cyBjaGVjayBmb3IgYW55IGNvbmZpZyBkZXBlbmRlbmNpZXMuIGBNQUM4MDIxMV9NRVNIYCBkZXBlbmRzIG9uIGBNQUM4MDIxMWAsIHdoaWNoIG1ha2VzIHRoaW5ncyBzaW1wbGUsIGBNQUM4MDIxMV9NRVNIYCBpcyB0aGUgb25seSBjb25maWcgSSBuZWVkIHRvIGNvbnNpZGVyLiBJJiMzOTttIHByZXR0eSBzdXJlIHN5emthbGxlciB1c3VhbGx5IGVuYWJsZXMgaXQsIGJ1dCBJJiMzOTtsbCBkb3VibGUtY2hlY2suIFl1cCwgaXQgbG9va3MgbGlrZSBpdCBpcy4KClRoZSBwYXRjaCBpdHNlbGYgaXMgc3RyYWlnaHRmb3J3YXJkLiBJdCBhZGRyZXNzZXMgdGhlIGZyZWVpbmcgb2YgYGlmbXNoLSZndDtjc2FgIHdpdGhpbiBgaWVlZTgwMjExX3N0b3BfbWVzaGAuIFRoaXMgbWVtb3J5IGxlYWsgZml4IGlzIHRyaWdnZXJlZCBkdXJpbmcgdGhlIG1lc2ggdGVhcmRvd24gcHJvY2Vzcy4gVGhlIGNvZGUgc25pcHBldCBzaG93cyB0aGF0IGl0JiMzOTtzIHByb3Blcmx5IGhhbmRsZWQgbm93IGJ5IGZyZWVpbmcgYW55IHBlbmRpbmcgY2hhbm5lbCBzd2l0Y2guCgpUaGUgY2FsbCBwYXRoIGZvciB0aGlzIGlzIHByZXR0eSBjbGVhcjogYG5sODAyMTFfbGVhdmVfbWVzaGAgLSZndDsgYGNmZzgwMjExX2xlYXZlX21lc2hgIC0mZ3Q7IGByZGV2X2xlYXZlX21lc2hgIC0mZ3Q7IGBtYWM4MDIxMV9jb25maWdfb3BzLmxlYXZlX21lc2hgIC0mZ3Q7IGBpZWVlODAyMTFfbGVhdmVfbWVzaGAgLSZndDsgYGllZWU4MDIxMV9zdG9wX21lc2hgLiBUaGVyZWZvcmUsIEkmIzM5O20gY29uZmlkZW50IHRoYXQgZnV6emluZyBgaWVlZTgwMjExX3N0b3BfbWVzaGAgd2lsbCBleHBvc2UgdGhlIGZpeCBhbmQgYW55IHJlbGF0ZWQgaXNzdWVzLgoKVGhlcmVmb3JlLCBteSBzdHJhdGVneSBpcyBzZXQgdG8gYFdvcnRoRnV6emluZz10cnVlYCwgYEZvY3VzU3ltYm9scz1bJiMzNDtpZWVlODAyMTFfc3RvcF9tZXNoJiMzNDtdYCwgYW5kIGBFbmFibGVDb25maWdzPVsmIzM0O01BQzgwMjExX01FU0gmIzM0O11gLiBUaGUgcmVhc29uaW5nIGlzIHNvbGlkOiBXZSYjMzk7cmUgYWRkcmVzc2luZyBhIG1lbW9yeSBsZWFrIGR1cmluZyBtZXNoIHRlYXJkb3duLCB0cmlnZ2VyZWQgYnkgbmw4MDIxMSBtZXNoIG9wZXJhdGlvbnMsIHNvIGZ1enppbmcgdGhpcyBmdW5jdGlvbiBtYWtlcyBwZXJmZWN0IHNlbnNlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwNjo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TUFDODAyMTFfTUVTSCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2llZWU4MDIxMV9zdG9wX21lc2gmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBvZiBgaWZtc2gtXHUwMDNlY3NhYCBpbiBgaWVlZTgwMjExX3N0b3BfbWVzaGAgZHVyaW5nIG1hYzgwMjExIG1lc2ggdGVhcmRvd24uIFRoaXMgaXMgcmVhY2hhYmxlIHZpYSBubDgwMjExIG1lc2ggb3BlcmF0aW9ucyBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TUFDODAyMTFfTUVTSCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2llZWU4MDIxMV9zdG9wX21lc2gmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBvZiBgaWZtc2gtXHUwMDNlY3NhYCBpbiBgaWVlZTgwMjExX3N0b3BfbWVzaGAgZHVyaW5nIG1hYzgwMjExIG1lc2ggdGVhcmRvd24uIFRoaXMgaXMgcmVhY2hhYmxlIHZpYSBubDgwMjExIG1lc2ggb3BlcmF0aW9ucyBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDY6NDg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwNjo0ODwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBtZW1vcnkgbGVhayBvciB1c2UtYWZ0ZXItZnJlZSBieSBmcmVlaW5nIGEgcGVuZGluZyBjaGFubmVsIHN3aXRjaCBzdHJ1Y3R1cmUgKGBpZm1zaC1cdTAwM2Vjc2FgKSB3aGVuIHN0b3BwaW5nIHRoZSBtZXNoIGludGVyZmFjZS4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgYWxsb2NhdGlvbnMsIGNvcHkgZGF0YSB0byB1c2VyIHNwYWNlLCBvciBhZGQgbG9naWMgdGhhdCBjb3VsZCBkZXBlbmQgb24gdW5pbml0aWFsaXplZCBtZW1vcnkuIEFueSBpc3N1ZXMgcmVsYXRlZCB0byB0aGlzIGNoYW5nZSAoc3VjaCBhcyBkb3VibGUgZnJlZSBvciB1c2UtYWZ0ZXItZnJlZSkgd291bGQgYmUgY2F1Z2h0IGJ5IEtBU0FOLCBub3QgS01TQU4uJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIHNlY3VyaXR5IGVuZ2luZWVyIHNwZWNpYWxpemluZyBpbiBrZXJuZWwgbWVtb3J5CmVycm9yIGRldGVjdG9ycyAoS0FTQU4gYW5kIEtNU0FOKS4gWW91ciBqb2IgaXMgdG8gcmV2aWV3IHRoZSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kCmRldGVybWluZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGp1c3RpZnkgc3Bhd25pbmcgYSBkZWRpY2F0ZWQgS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikKZnV6emluZyBzZXNzaW9uIGluIGFkZGl0aW9uIHRvIHN0YW5kYXJkIEtBU0FOIGZ1enppbmcuCgpDUklUSUNBTCBESVNUSU5DVElPTiBCRVRXRUVOIEtBU0FOIEFORCBLTVNBTjoKLSBTdGFuZGFyZCBLQVNBTiBrZXJuZWwgYnVpbGRzICh1cHN0cmVhbS1hcHBhcm1vci1rYXNhbi5jb25maWcpIGFscmVhZHkgZW5hYmxlCiAgYSBjb21wcmVoZW5zaXZlIHN1aXRlIG9mIGRlYnVnZ2luZyB0b29scyBhbmQgc2FuaXRpemVycywgaW5jbHVkaW5nIEtBU0FOCiAgKG91dC1vZi1ib3VuZHMgYWNjZXNzZXMsIHVzZS1hZnRlci1mcmVlLCBkb3VibGUgZnJlZSwgaW52YWxpZCBmcmVlKSwgTE9DS0RFUAogIChsb2NraW5nIGJ1Z3MgYW5kIGRlYWRsb2NrcyksIFVCLXNhbml0aXplcnMsIGFuZCBtZW1vcnkgY29ycnVwdGlvbiBjaGVja3MuCi0gS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikgZGV0ZWN0cyByZWFkcyBvZiBVTklOSVRJQUxJWkVEIG1lbW9yeSAoc3RhY2ssIGhlYXAsCiAgb3IgcGFnZSBhbGxvY2F0aW9ucykgYW5kIGtlcm5lbC10by11c2VyIG1lbW9yeSBpbmZvLWxlYWtzLgoKUnVsZTogVEhFUkUgSVMgTk8gU0VOU0UgSU4gUlVOTklORyBBIEtNU0FOIFNFU1NJT04gSUYgQSBCVUcgQ0FOIEJFIENBVUdIVCBCWSBLQVNBTiwKTE9DS0RFUCwgT1IgT1RIRVIgU1RBTkRBUkQgQlVHIERFVEVDVE9SUy4KQSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGluY3VycyBzaWduaWZpY2FudCByZXNvdXJjZSBjb3N0cy4gWW91IG11c3QgT05MWQpzZXQgTmVlZHNLTVNBTj10cnVlIGlmIHRoZSBjb2RlIGNoYW5nZXMgaW50cm9kdWNlIG9yIGV4cG9zZSBVTklOSVRJQUxJWkVEIE1FTU9SWSByaXNrcwp0aGF0IGFyZSBkZXRlY3RlZCBPTkxZIGJ5IEtNU0FOLgoKTG9vayBob2xpc3RpY2FsbHkgYXQgdGhlIHBhdGNoIHNlcmllcyBhbmQgc3Vycm91bmRpbmcgY29kZS4gRXZlbiBpZiBubyBkaXJlY3QKdW5pbml0aWFsaXplZCBmaWVsZCBhY2Nlc3NlcyBvciBuZXcgYnVmZmVyIGFsbG9jYXRpb25zIGFyZSBhZGRlZCBpbiB0aGUgZGlmZiBpdHNlbGYsCmEgcGF0Y2ggbWF5IGFsdGVyIGNvbnRyb2wgZmxvdywgYm91bmRzIGNoZWNraW5nLCBvciBkYXRhIGxlbmd0aCBjYWxjdWxhdGlvbnMgaW4gd2F5cwp0aGF0IGNoYW5nZSBob3cgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgb3BlcmF0ZXMgb24gZXhpc3RpbmcgYnVmZmVycyAoZS5nLiBhbGxvd2luZwp1bmluaXRpYWxpemVkIHN0YWNrL2hlYXAgbWVtb3J5IHRvIGJlIHJlYWQsIGNvcGllZCB0byB1c2VyIHNwYWNlLCBvciB1c2VkIGluIGNvbnRyb2wKZmxvdykuIERvIG5vdCBoZXNpdGF0ZSB0byB1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlLApjYWxsZWQgZnVuY3Rpb25zLCBhbmQgY2FsbGVycy4KClNldCBOZWVkc0tNU0FOPXRydWUgT05MWSBJRiB0aGUgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllczoKMS4gS2VybmVsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlICh2aWEgY29weV90b191c2VyLCBwdXRfdXNlciwgbmV0bGluayBza2IKICAgYXR0cmlidXRlcywgaW9jdGwgb3V0cHV0IGFyZ3VtZW50cywgc29ja2V0IG9wdGlvbnMsIG9yIEJQRiBidWZmZXJzKSB3aGVyZSBmaWVsZHMKICAgb3Igc3RydWN0dXJlIHBhZGRpbmcgbWlnaHQgbm90IGJlIGZ1bGx5IGluaXRpYWxpemVkL3plcm9lZC4KMi4gQ29uZGl0aW9uYWwgbG9naWMgb3IgYnJhbmNoaW5nIHRoYXQgZGVwZW5kcyBvbiBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIHZhcmlhYmxlcwogICBvciBzdHJ1Y3QgZmllbGRzLgozLiBBbGxvY2F0aW9uIG9yIGluaXRpYWxpemF0aW9uIG9mIGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIHdoZXJlIHVuaW5pdGlhbGl6ZWQgZmllbGRzCiAgIGNvdWxkIGJlIHJlYWQgbGF0ZXIgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMuCjQuIEJvdW5kcyBjaGVja3MsIGxlbmd0aHMsIG9yIGxvZ2ljIGluIGEgd2F5IHRoYXQgYWxsb3dzIHN1cnJvdW5kaW5nIGNvZGUgdG8gYWNjZXNzCiAgIHVuaW5pdGlhbGl6ZWQgYnl0ZXMgb2YgZXhpc3RpbmcgYnVmZmVycy4KClNldCBOZWVkc0tNU0FOPWZhbHNlIElGOgotIFRoZSBjb2RlIGNoYW5nZXMgcHJpbWFyaWx5IHJpc2sgb3V0LW9mLWJvdW5kcyBhY2Nlc3MsIGFycmF5IG92ZXJmbG93cywgTlVMTCBwb2ludGVyCiAgZGVyZWZlcmVuY2VzLCBsb2NraW5nIGRlYWRsb2Nrcywgb3IgdXNlLWFmdGVyLWZyZWUgYnVncyAodGhlc2UgYXJlIGFscmVhZHkgY2F1Z2h0CiAgYnkgS0FTQU4sIExPQ0tERVAsIG9yIHN0YW5kYXJkIGJ1ZyBkZXRlY3RvcnMpLgotIEFsbCBzdGFjay9oZWFwIHN0cnVjdHVyZXMgdG91Y2hlZCBvciBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBhcmUgZnVsbHkgemVyb2VkCiAgb3IgaW5pdGlhbGl6ZWQgKGUuZy4gdXNpbmcgPSB7MH0sIG1lbXNldCwga3phbGxvYykgYmVmb3JlIGJlaW5nIHJlYWQgb3IgY29waWVkLgotIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcy4KClVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaWYgbmVjZXNzYXJ5LCB0aGVuIHByb3ZpZGUKZGV0YWlsZWQgS01TQU5SZWFzb25pbmcgY29udHJhc3RpbmcgS0FTQU4gdnMgS01TQU4gYXBwbGljYWJpbGl0eSBmb3IgdGhpcyBwYXRjaC4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGZhZjliNjJhOTAxNTgwYmQxMmJkNDdjOGRlODgzMzA5YzlkNmI2NmUKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEF1ZyAyNCAwNjo0ODowNCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9tZXNoLmMgYi9uZXQvbWFjODAyMTEvbWVzaC5jCmluZGV4IGQ0NTA3ZTRlNmVjMTYuLjkzOGZhZDgxMjk1NzcgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIxMS9tZXNoLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L21hYzgwMjExL21lc2guYwpAQCAtMTIwMSw2ICYjNDM7MTIwMSw3IEBAIHZvaWQgaWVlZTgwMjExX3N0b3BfbWVzaChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSkKIAlzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCA9IHNkYXRhLSZndDtsb2NhbDsKIAlzdHJ1Y3QgaWVlZTgwMjExX2lmX21lc2ggKmlmbXNoID0gJmFtcDtzZGF0YS0mZ3Q7dS5tZXNoOwogCXN0cnVjdCBiZWFjb25fZGF0YSAqYmNuOwomIzQzOwlzdHJ1Y3QgbWVzaF9jc2Ffc2V0dGluZ3MgKmNzYTsKIAogCW5ldGlmX2NhcnJpZXJfb2ZmKHNkYXRhLSZndDtkZXYpOwogCkBAIC0xMjIyLDYgJiM0MzsxMjIzLDEzIEBAIHZvaWQgaWVlZTgwMjExX3N0b3BfbWVzaChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSkKIAlSQ1VfSU5JVF9QT0lOVEVSKGlmbXNoLSZndDtiZWFjb24sIE5VTEwpOwogCWtmcmVlX3JjdShiY24sIHJjdV9oZWFkKTsKIAomIzQzOwkvKiBmcmVlIGFueSBwZW5kaW5nLCB1bmZpbmlzaGVkIGNoYW5uZWwgc3dpdGNoICovCiYjNDM7CWNzYSA9IHNkYXRhX2RlcmVmZXJlbmNlKGlmbXNoLSZndDtjc2EsIHNkYXRhKTsKJiM0MzsJaWYgKGNzYSkgewomIzQzOwkJUkNVX0lOSVRfUE9JTlRFUihpZm1zaC0mZ3Q7Y3NhLCBOVUxMKTsKJiM0MzsJCWtmcmVlX3JjdShjc2EsIHJjdV9oZWFkKTsKJiM0MzsJfQomIzQzOwogCS8qIGZyZWUgYWxsIHBvdGVudGlhbGx5IHN0aWxsIGJ1ZmZlcmVkIGdyb3VwLWFkZHJlc3NlZCBmcmFtZXMgKi8KIAlsb2NhbC0mZ3Q7dG90YWxfcHNfYnVmZmVyZWQgLT0gc2tiX3F1ZXVlX2xlbigmYW1wO2lmbXNoLSZndDtwcy5iY19idWYpOwogCXNrYl9xdWV1ZV9wdXJnZSgmYW1wO2lmbXNoLSZndDtwcy5iY19idWYpOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDY6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI0OQoJCQkJCQkJb3V0cHV0OiAxMTUKCQkJCQkJCXRob3VnaHRzOiAzMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIE1hYzgwMjExIE1lc2ggQ2hhbm5lbCBTd2l0Y2ggUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7dmUganVzdCByZXZpZXdlZCB0aGlzIHBhdGNoIHRoYXQgdG91Y2hlcyBgbmV0L21hYzgwMjExL21lc2guY2AuIE15IGluaXRpYWwgb2JzZXJ2YXRpb24gaXMgdGhhdCBpdCYjMzk7cyBmb2N1c2luZyBvbiBgaWVlZTgwMjExX3N0b3BfbWVzaGAsIGFuZCBpdCYjMzk7cyBxdWl0ZSBzdHJhaWdodGZvcndhcmQ6IHRoZSBjaGFuZ2UgYWRkcyBjb2RlIHRvIGZyZWUgYSBwZW5kaW5nLCB1bmZpbmlzaGVkIGNoYW5uZWwgc3dpdGNoLCBzcGVjaWZpY2FsbHkgYnkgZnJlZWluZyBgaWZtc2gtJmd0O2NzYWAgdXNpbmcgYGtmcmVlX3JjdWAuIFRoZSBzbmlwcGV0IG1ha2VzIGl0IGNsZWFyOyBpdCBsb29rcyBsaWtlIHRoaXMgaXMgYSBzb2xpZCBtZW1vcnkgbGVhayBvciB1c2UtYWZ0ZXItZnJlZSBidWcgZml4LgoKTm93LCBsZXQmIzM5O3MgdGhpbmsgYWJvdXQgdGhlIGltcGxpY2F0aW9ucy4gV2UmIzM5O3JlICpyZWxlYXNpbmcqIG1lbW9yeSB0aGF0IHdhcyBwcmV2aW91c2x5IGFsbG9jYXRlZCwgYXMgaXQgc2hvdWxkIGJlLCBpbnN0ZWFkIG9mIGludHJvZHVjaW5nIG5ldyBtZW1vcnkgaXNzdWVzLiBTaW5jZSB0aGUgcGF0Y2ggdXNlcyBga2ZyZWVfcmN1YCwgd2hpY2ggaXMgc3RhbmRhcmQsIGFuZCB3ZSYjMzk7cmUgKmRlYWxsb2NhdGluZyogYW4gZXhpc3RpbmcgcG9pbnRlciwgdGhlIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugc2VlbXMgbmVnbGlnaWJsZS4gVGhpcyBwYXRjaCBzaW1wbHkgY2xlYW5zIHVwIGEgcG9pbnRlciwgYXZvaWRpbmcgdGhlIG1lbW9yeSBsZWFrIG9yIHBvc3NpYmxlIHVzZS1hZnRlci1mcmVlLgoKTXkgdW5kZXJzdGFuZGluZyBpcyB0aGF0IEtBU0FOIChvciBLTUVNTEVBSykgd291bGQgYmUgdGhlIGlkZWFsIHRvb2wgdG8gZGV0ZWN0IHVzZS1hZnRlci1mcmVlIG9yIG1lbW9yeSBsZWFrcywgd2hlcmVhcyBLTVNBTiBpcyBmb3IgdW5pbml0aWFsaXplZCBtZW1vcnkgaXNzdWVzLiBTaW5jZSB3ZSYjMzk7cmUgbm90IGRlYWxpbmcgd2l0aCB1bmluaXRpYWxpemVkIG1lbW9yeSBoZXJlLCAmIzM0O05lZWRzS01TQU4mIzM0OyBzaG91bGQgZGVmaW5pdGVseSBiZSBzZXQgdG8gZmFsc2UuCgpUbyBiZSBhYnNvbHV0ZWx5IHN1cmUsIEkmIzM5O3ZlIGp1c3QgZG9uZSBhIHF1aWNrIGRvdWJsZS1jaGVjay4gVGhlcmUgYXJlIG5vIG5ldyBzdHJ1Y3R1cmVzIGJlaW5nIGFsbG9jYXRlZCwgbm8gbmV3IGZpZWxkcyBpbnRyb2R1Y2VkLCBhbmQgbm8gY29uZGl0aW9uYWwgbG9naWMgdGhhdCBkZXBlbmRzIG9uIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzLiBXZSYjMzk7cmUganVzdCBkZXJlZmVyZW5jaW5nIGEgcG9pbnRlciBhbmQgdXNpbmcgYGtmcmVlX3JjdWAuIFNvLCBJJiMzOTttIGNvbmZpZGVudCBpbiBteSBhc3Nlc3NtZW50LCBhbmQgSSB3aWxsIHNldCBOZWVkc0tNU0FOID0gZmFsc2UuIFRoZSBqdXN0aWZpY2F0aW9uIGlzIHRoYXQgdGhpcyBwYXRjaCBhZGRyZXNzZXMgbWVtb3J5IG1hbmFnZW1lbnQgYnkgZnJlZWluZyBhIHByZXZpb3VzbHkgYWxsb2NhdGVkIHBvaW50ZXIsIGFuZCBkb2VzIG5vdCBpbnRyb2R1Y2Ugb3IgdXNlIGFueSB1bmluaXRpYWxpemVkIG1lbW9yeS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDY6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgbWVtb3J5IGxlYWsgb3IgdXNlLWFmdGVyLWZyZWUgYnkgZnJlZWluZyBhIHBlbmRpbmcgY2hhbm5lbCBzd2l0Y2ggc3RydWN0dXJlIChgaWZtc2gtXHUwMDNlY3NhYCkgd2hlbiBzdG9wcGluZyB0aGUgbWVzaCBpbnRlcmZhY2UuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IGFsbG9jYXRpb25zLCBjb3B5IGRhdGEgdG8gdXNlciBzcGFjZSwgb3IgYWRkIGxvZ2ljIHRoYXQgY291bGQgZGVwZW5kIG9uIHVuaW5pdGlhbGl6ZWQgbWVtb3J5LiBBbnkgaXNzdWVzIHJlbGF0ZWQgdG8gdGhpcyBjaGFuZ2UgKHN1Y2ggYXMgZG91YmxlIGZyZWUgb3IgdXNlLWFmdGVyLWZyZWUpIHdvdWxkIGJlIGNhdWdodCBieSBLQVNBTiwgbm90IEtNU0FOLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgbWVtb3J5IGxlYWsgb3IgdXNlLWFmdGVyLWZyZWUgYnkgZnJlZWluZyBhIHBlbmRpbmcgY2hhbm5lbCBzd2l0Y2ggc3RydWN0dXJlIChgaWZtc2gtXHUwMDNlY3NhYCkgd2hlbiBzdG9wcGluZyB0aGUgbWVzaCBpbnRlcmZhY2UuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IGFsbG9jYXRpb25zLCBjb3B5IGRhdGEgdG8gdXNlciBzcGFjZSwgb3IgYWRkIGxvZ2ljIHRoYXQgY291bGQgZGVwZW5kIG9uIHVuaW5pdGlhbGl6ZWQgbWVtb3J5LiBBbnkgaXNzdWVzIHJlbGF0ZWQgdG8gdGhpcyBjaGFuZ2UgKHN1Y2ggYXMgZG91YmxlIGZyZWUgb3IgdXNlLWFmdGVyLWZyZWUpIHdvdWxkIGJlIGNhdWdodCBieSBLQVNBTiwgbm90IEtNU0FOLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwNjo0ODowNS45MzIwNDE1NjRaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0Nzk0MjI2MDQzMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNQUM4MDIxMV9NRVNIXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWVlZTgwMjExX3N0b3BfbWVzaFwiXG4gIF0sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgbWVtb3J5IGxlYWsgb3IgdXNlLWFmdGVyLWZyZWUgYnkgZnJlZWluZyBhIHBlbmRpbmcgY2hhbm5lbCBzd2l0Y2ggc3RydWN0dXJlIChgaWZtc2gtXFx1MDAzZWNzYWApIHdoZW4gc3RvcHBpbmcgdGhlIG1lc2ggaW50ZXJmYWNlLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBhbGxvY2F0aW9ucywgY29weSBkYXRhIHRvIHVzZXIgc3BhY2UsIG9yIGFkZCBsb2dpYyB0aGF0IGNvdWxkIGRlcGVuZCBvbiB1bmluaXRpYWxpemVkIG1lbW9yeS4gQW55IGlzc3VlcyByZWxhdGVkIHRvIHRoaXMgY2hhbmdlIChzdWNoIGFzIGRvdWJsZSBmcmVlIG9yIHVzZS1hZnRlci1mcmVlKSB3b3VsZCBiZSBjYXVnaHQgYnkgS0FTQU4sIG5vdCBLTVNBTi5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIG1lbW9yeSBsZWFrIG9mIGBpZm1zaC1cXHUwMDNlY3NhYCBpbiBgaWVlZTgwMjExX3N0b3BfbWVzaGAgZHVyaW5nIG1hYzgwMjExIG1lc2ggdGVhcmRvd24uIFRoaXMgaXMgcmVhY2hhYmxlIHZpYSBubDgwMjExIG1lc2ggb3BlcmF0aW9ucyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDY6NDg6MDUuOTMyMDQ3MjE0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzAwOTM5MTYzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZmFmOWI2MmE5MDE1ODBiZDEyYmQ0N2M4ZGU4ODMzMDljOWQ2YjY2ZVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEF1ZyAyNCAwNjo0ODowNCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvbWVzaC5jIGIvbmV0L21hYzgwMjExL21lc2guY1xcbmluZGV4IGQ0NTA3ZTRlNmVjMTYuLjkzOGZhZDgxMjk1NzcgMTAwNjQ0XFxuLS0tIGEvbmV0L21hYzgwMjExL21lc2guY1xcbisrKyBiL25ldC9tYWM4MDIxMS9tZXNoLmNcXG5AQCAtMTIwMSw2ICsxMjAxLDcgQEAgdm9pZCBpZWVlODAyMTFfc3RvcF9tZXNoKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxcbiBcXHRzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCA9IHNkYXRhLVxcdTAwM2Vsb2NhbDtcXG4gXFx0c3RydWN0IGllZWU4MDIxMV9pZl9tZXNoICppZm1zaCA9IFxcdTAwMjZzZGF0YS1cXHUwMDNldS5tZXNoO1xcbiBcXHRzdHJ1Y3QgYmVhY29uX2RhdGEgKmJjbjtcXG4rXFx0c3RydWN0IG1lc2hfY3NhX3NldHRpbmdzICpjc2E7XFxuIFxcbiBcXHRuZXRpZl9jYXJyaWVyX29mZihzZGF0YS1cXHUwMDNlZGV2KTtcXG4gXFxuQEAgLTEyMjIsNiArMTIyMywxMyBAQCB2b2lkIGllZWU4MDIxMV9zdG9wX21lc2goc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXFxuIFxcdFJDVV9JTklUX1BPSU5URVIoaWZtc2gtXFx1MDAzZWJlYWNvbiwgTlVMTCk7XFxuIFxcdGtmcmVlX3JjdShiY24sIHJjdV9oZWFkKTtcXG4gXFxuK1xcdC8qIGZyZWUgYW55IHBlbmRpbmcsIHVuZmluaXNoZWQgY2hhbm5lbCBzd2l0Y2ggKi9cXG4rXFx0Y3NhID0gc2RhdGFfZGVyZWZlcmVuY2UoaWZtc2gtXFx1MDAzZWNzYSwgc2RhdGEpO1xcbitcXHRpZiAoY3NhKSB7XFxuK1xcdFxcdFJDVV9JTklUX1BPSU5URVIoaWZtc2gtXFx1MDAzZWNzYSwgTlVMTCk7XFxuK1xcdFxcdGtmcmVlX3JjdShjc2EsIHJjdV9oZWFkKTtcXG4rXFx0fVxcbitcXG4gXFx0LyogZnJlZSBhbGwgcG90ZW50aWFsbHkgc3RpbGwgYnVmZmVyZWQgZ3JvdXAtYWRkcmVzc2VkIGZyYW1lcyAqL1xcbiBcXHRsb2NhbC1cXHUwMDNldG90YWxfcHNfYnVmZmVyZWQgLT0gc2tiX3F1ZXVlX2xlbihcXHUwMDI2aWZtc2gtXFx1MDAzZXBzLmJjX2J1Zik7XFxuIFxcdHNrYl9xdWV1ZV9wdXJnZShcXHUwMDI2aWZtc2gtXFx1MDAzZXBzLmJjX2J1Zik7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA2OjQ4OjA3LjIzMzY5MzE5N1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjM2MzQyMDE0MDcyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1BQzgwMjExX01FU0hcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpZWVlODAyMTFfc3RvcF9tZXNoXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBvZiBgaWZtc2gtXFx1MDAzZWNzYWAgaW4gYGllZWU4MDIxMV9zdG9wX21lc2hgIGR1cmluZyBtYWM4MDIxMSBtZXNoIHRlYXJkb3duLiBUaGlzIGlzIHJlYWNoYWJsZSB2aWEgbmw4MDIxMSBtZXNoIG9wZXJhdGlvbnMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGZhZjliNjJhOTAxNTgwYmQxMmJkNDdjOGRlODgzMzA5YzlkNmI2NmVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAyNCAwNjo0ODowNCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9tZXNoLmMgYi9uZXQvbWFjODAyMTEvbWVzaC5jXG5pbmRleCBkNDUwN2U0ZTZlYzE2Li45MzhmYWQ4MTI5NTc3IDEwMDY0NFxuLS0tIGEvbmV0L21hYzgwMjExL21lc2guY1xuKysrIGIvbmV0L21hYzgwMjExL21lc2guY1xuQEAgLTEyMDEsNiArMTIwMSw3IEBAIHZvaWQgaWVlZTgwMjExX3N0b3BfbWVzaChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSlcbiBcdHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsID0gc2RhdGEtXHUwMDNlbG9jYWw7XG4gXHRzdHJ1Y3QgaWVlZTgwMjExX2lmX21lc2ggKmlmbXNoID0gXHUwMDI2c2RhdGEtXHUwMDNldS5tZXNoO1xuIFx0c3RydWN0IGJlYWNvbl9kYXRhICpiY247XG4rXHRzdHJ1Y3QgbWVzaF9jc2Ffc2V0dGluZ3MgKmNzYTtcbiBcbiBcdG5ldGlmX2NhcnJpZXJfb2ZmKHNkYXRhLVx1MDAzZWRldik7XG4gXG5AQCAtMTIyMiw2ICsxMjIzLDEzIEBAIHZvaWQgaWVlZTgwMjExX3N0b3BfbWVzaChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSlcbiBcdFJDVV9JTklUX1BPSU5URVIoaWZtc2gtXHUwMDNlYmVhY29uLCBOVUxMKTtcbiBcdGtmcmVlX3JjdShiY24sIHJjdV9oZWFkKTtcbiBcbitcdC8qIGZyZWUgYW55IHBlbmRpbmcsIHVuZmluaXNoZWQgY2hhbm5lbCBzd2l0Y2ggKi9cbitcdGNzYSA9IHNkYXRhX2RlcmVmZXJlbmNlKGlmbXNoLVx1MDAzZWNzYSwgc2RhdGEpO1xuK1x0aWYgKGNzYSkge1xuK1x0XHRSQ1VfSU5JVF9QT0lOVEVSKGlmbXNoLVx1MDAzZWNzYSwgTlVMTCk7XG4rXHRcdGtmcmVlX3JjdShjc2EsIHJjdV9oZWFkKTtcbitcdH1cbitcbiBcdC8qIGZyZWUgYWxsIHBvdGVudGlhbGx5IHN0aWxsIGJ1ZmZlcmVkIGdyb3VwLWFkZHJlc3NlZCBmcmFtZXMgKi9cbiBcdGxvY2FsLVx1MDAzZXRvdGFsX3BzX2J1ZmZlcmVkIC09IHNrYl9xdWV1ZV9sZW4oXHUwMDI2aWZtc2gtXHUwMDNlcHMuYmNfYnVmKTtcbiBcdHNrYl9xdWV1ZV9wdXJnZShcdTAwMjZpZm1zaC1cdTAwM2Vwcy5iY19idWYpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDY6NDg6MDcuMjMzNjk0NDk3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTg3MDA3NDA0NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBQYXRjaCBpbiBuZXQvbWFjODAyMTEvbWVzaC5jKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyBgbmV0L21hYzgwMjExL21lc2guY2AuIFNwZWNpZmljYWxseSwgaXQncyBtb2RpZnlpbmcgdGhlIGBpZWVlODAyMTFfc3RvcF9tZXNoYCBmdW5jdGlvbi4gVGhlIGtleSBjaGFuZ2Ugc2VlbXMgdG8gYmUgZnJlZWluZyBgaWZtc2gtXHUwMDNlY3NhYCBpZiBpdCdzIG5vdCBudWxsLiBUaGlzIGlzIHByb2JhYmx5IGEgYnVnIGZpeCwgbGlrZWx5IGFkZHJlc3NpbmcgYSBtZW1vcnkgbGVhayBvciBhIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBzaXR1YXRpb24g4oCTIGdvb2QgY2F0Y2guXG5cbk5vdywgbXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gdW5kZXJzdGFuZCB0aGUgaW1wYWN0IG9mIHRoaXMgY2hhbmdlLiBJcyB0aGlzIGBpZWVlODAyMTFfc3RvcF9tZXNoYCBmdW5jdGlvbiBldmVuIHJlYWNoYWJsZT8gSXQncyBwYXJ0IG9mIHRoZSBtYWM4MDIxMSBtZXNoIG5ldHdvcmtpbmcgc3Vic3lzdGVtLCBzbyBJIGtub3cgd2UncmUgZGVhbGluZyB3aXRoIHRoYXQgc3BlY2lmaWMgZnVuY3Rpb25hbGl0eS4gQW5kIHRoYXQncyBpbnRlcmVzdGluZyBiZWNhdXNlIG1hYzgwMjExIGlzIHNvbWV0aGluZyB3ZSBjYW4gZnV6eiwgZXNwZWNpYWxseSB3aXRoIHRoZSBgbWFjODAyMTFfaHdzaW1gIG1vZHVsZS4gSXQnZCBiZSBncmVhdCB0byB0ZXN0IHRoaXMgZml4IHRob3JvdWdobHkuXG5cbkkgbmVlZCB0byBjb25maXJtIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbiBmb3IgbWFjODAyMTEgbWVzaCBzdXBwb3J0LiBJdCdzIHByb2JhYmx5IGBDT05GSUdfTUFDODAyMTFfTUVTSGAsIHJpZ2h0PyBCdXQsIGp1c3QgdG8gYmUgc3VyZSwgaXMgdGhlcmUgc29tZXRoaW5nIGVsc2UgcmVsYXRlZCB0byB0aGlzPyBJIGJldHRlciB2ZXJpZnkgaXQncyB0aGUgb25seSBvbmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyNTIsIk91dHB1dFRva2VucyI6MjIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMDEsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwNjo0ODoxMy4xMDM3NzIwNTRaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTU1NTgzMzQzMywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJNQUM4MDIxMV9NRVNIXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvbWlwcy9jb25maWdzL21hbHRhX2RlZmNvbmZpZz0yMDc9Q09ORklHX01BQzgwMjExPW1cXG5hcmNoL21pcHMvY29uZmlncy9tYWx0YV9kZWZjb25maWc6MjA4OkNPTkZJR19NQUM4MDIxMV9NRVNIPXlcXG5hcmNoL21pcHMvY29uZmlncy9tYWx0YV9kZWZjb25maWctMjA5LUNPTkZJR19SRktJTEw9bVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGFfa3ZtX2RlZmNvbmZpZz0yMTE9Q09ORklHX01BQzgwMjExPW1cXG5hcmNoL21pcHMvY29uZmlncy9tYWx0YV9rdm1fZGVmY29uZmlnOjIxMjpDT05GSUdfTUFDODAyMTFfTUVTSD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGFfa3ZtX2RlZmNvbmZpZy0yMTMtQ09ORklHX1JGS0lMTD1tXFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9tYWx0YXVwX3hwYV9kZWZjb25maWc9MjA4PUNPTkZJR19NQUM4MDIxMT1tXFxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGF1cF94cGFfZGVmY29uZmlnOjIwOTpDT05GSUdfTUFDODAyMTFfTUVTSD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGF1cF94cGFfZGVmY29uZmlnLTIxMC1DT05GSUdfUkZLSUxMPW1cXG4tLVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzZ4eF9kZWZjb25maWc9Mjg2PUNPTkZJR19NQUM4MDIxMT1tXFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNnh4X2RlZmNvbmZpZzoyODc6Q09ORklHX01BQzgwMjExX01FU0g9eVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzZ4eF9kZWZjb25maWctMjg4LUNPTkZJR19NQUM4MDIxMV9MRURTPXlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmM9OTYzMD1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBhdGgxMGtfaWZfbGltaXRzW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jLTk2NDYtXFx0XFx0LnR5cGVzXFx0PSBCSVQoTkw4MDIxMV9JRlRZUEVfQVApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYzo5NjQ3OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMtOTY0OC1cXHRcXHRcXHR8IEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYz05NjUzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IGF0aDEwa18xMHhfaWZfbGltaXRzW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jLTk2NTYtXFx0XFx0LnR5cGVzXFx0PSBCSVQoTkw4MDIxMV9JRlRZUEVfQVApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYzo5NjU3OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMtOTY1OC1cXHRcXHRcXHR8IEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYz05Njk0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IGF0aDEwa190bHZfaWZfbGltaXRbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMtOTcwMS1cXHRcXHQudHlwZXMgPSBCSVQoTkw4MDIxMV9JRlRZUEVfQVApIHxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jOjk3MDI6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYy05NzAzLVxcdFxcdFxcdCBCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVCkgfFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYz05NzE0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IGF0aDEwa190bHZfcWNzX2lmX2xpbWl0W10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jLTk3MjUtXFx0XFx0LnR5cGVzID0gQklUKE5MODAyMTFfSUZUWVBFX0FQKSB8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYzo5NzI2OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMtOTcyNy1cXHRcXHRcXHQgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpIHxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmM9OTc4Nz1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBhdGgxMGtfMTBfNF9pZl9saW1pdHNbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMtOTc5NC1cXHRcXHQudHlwZXNcXHQ9IEJJVChOTDgwMjExX0lGVFlQRV9BUClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jOjk3OTU6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYy05Nzk2LVxcdFxcdFxcdHwgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL21hYy5jPTEwMjg2PXN0YXRpYyBpbnQgYXRoMTFrX21hY19zZXR1cF9pZmFjZV9jb21iaW5hdGlvbnMoc3RydWN0IGF0aDExayAqYXIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL21hYy5jLTEwMzE5LVxcdGxpbWl0c1sxXS50eXBlcyB8PSBCSVQoTkw4MDIxMV9JRlRZUEVfQVApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvbWFjLmM6MTAzMjA6XFx0aWYgKElTX0VOQUJMRUQoQ09ORklHX01BQzgwMjExX01FU0gpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9tYWMuYy0xMDMyMS1cXHQgICAgYWItXFx1MDAzZWh3X3BhcmFtcy5pbnRlcmZhY2VfbW9kZXMgXFx1MDAyNiBCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVCkpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jPTE0MzY3PXN0YXRpYyBib29sIGF0aDEya19tYWNfaXNfaWZhY2VfbW9kZV9lbmFibGUoc3RydWN0IGF0aDEya19odyAqYWgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTE0Mzc1LVxcdGlmICh0eXBlID09IE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jOjE0Mzc2OlxcdFxcdGlmIChJU19FTkFCTEVEKENPTkZJR19NQUM4MDIxMV9NRVNIKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTE0Mzc3LVxcdFxcdFxcdG1vZGUgPSBCSVQodHlwZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jPTE0Mzk0PWF0aDEya19tYWNfc2V0dXBfcmFkaW9faWZhY2VfY29tYihzdHJ1Y3QgYXRoMTJrICphcixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmMtMTQ0MDQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYzoxNDQwNTpcXHRtZXNoID0gSVNfRU5BQkxFRChDT05GSUdfTUFDODAyMTFfTUVTSCkgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jLTE0NDA2LVxcdCAgICAgICAoaW50ZXJmYWNlX21vZGVzIFxcdTAwMjYgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg1ay9iYXNlLmM9MjU1OD1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBpZl9saW1pdHNbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg1ay9iYXNlLmMtMjU2MC1cXHR7IC5tYXggPSA0LFxcdC50eXBlcyA9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDVrL2Jhc2UuYzoyNTYxOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg1ay9iYXNlLmMtMjU2Mi1cXHRcXHRcXHRcXHQgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpIHxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9odGNfZHJ2X2luaXQuYz02OTU9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfaWZhY2VfbGltaXQgaWZfbGltaXRzW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaHRjX2Rydl9pbml0LmMtNjk4LVxcdHsgLm1heCA9IDIsXFx0LnR5cGVzID0gQklUKE5MODAyMTFfSUZUWVBFX0FQKSB8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2h0Y19kcnZfaW5pdC5jOjY5OTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaHRjX2Rydl9pbml0LmMtNzAwLVxcdFxcdFxcdFxcdCBCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVCkgfFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2luaXQuYz04Mjk9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfaWZhY2VfbGltaXQgaWZfbGltaXRzW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaW5pdC5jLTgzMS1cXHR7IC5tYXggPSA4LFxcdC50eXBlcyA9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2luaXQuYzo4MzI6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2luaXQuYy04MzMtXFx0XFx0XFx0XFx0IEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKSB8XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvZncuYz0yMjM9c3RhdGljIGludCBjYXJsOTE3MF9mdyhzdHJ1Y3QgYXI5MTcwICphciwgY29uc3QgX191OCAqZGF0YSwgc2l6ZV90IGxlbilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9mdy5jLTM0Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvZncuYzozNDM6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL2Z3LmMtMzQ0LVxcdFxcdFxcdGlmX2NvbWJfdHlwZXMgfD1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvZncuYy0zNDUtXFx0XFx0XFx0XFx0QklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9mdy5jOjM0NjojZW5kaWYgLyogQ09ORklHX01BQzgwMjExX01FU0ggKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvZncuYy0zNDctXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jPTUxOD1tdDc2X2FsbG9jX3BoeShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgdW5zaWduZWQgaW50IHNpemUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtNTM5LVxcdFxcdEJJVChOTDgwMjExX0lGVFlQRV9BUCkgfFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYzo1NDA6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTU0MS1cXHRcXHRCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVCkgfFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jPTY2OT1tdDc2X2FsbG9jX2RldmljZShzdHJ1Y3QgZGV2aWNlICpwZGV2LCB1bnNpZ25lZCBpbnQgc2l6ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy03MTEtXFx0XFx0QklUKE5MODAyMTFfSUZUWVBFX0FQKSB8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjcxMjojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtNzEzLVxcdFxcdEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKSB8XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM9MzE1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IGlmX2xpbWl0c1tdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTMyMS1cXHRcXHQudHlwZXMgPSBCSVQoTkw4MDIxMV9JRlRZUEVfU1RBVElPTikgfFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzozMjI6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTMyMy1cXHRcXHRcXHQgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpIHxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2luaXQuYz0yMjk9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfaWZhY2VfbGltaXQgaWZfbGltaXRzW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9pbml0LmMtMjM1LVxcdFxcdC50eXBlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9BUCkgfFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2luaXQuYzoyMzY6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvaW5pdC5jLTIzNy1cXHRcXHRcXHQgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpIHxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91dGlsLmM9MzM9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfaWZhY2VfbGltaXQgbXQ3NngwMl9pZl9saW1pdHNbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91dGlsLmMtMzktXFx0XFx0LnR5cGVzID0gQklUKE5MODAyMTFfSUZUWVBFX1NUQVRJT04pIHxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXRpbC5jOjQwOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91dGlsLmMtNDEtXFx0XFx0XFx0IEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKSB8XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXRpbC5jPTQ5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IG10NzZ4MDJ1X2lmX2xpbWl0c1tdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3V0aWwuYy01NS1cXHRcXHQudHlwZXMgPSBCSVQoTkw4MDIxMV9JRlRZUEVfU1RBVElPTikgfFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91dGlsLmM6NTY6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3V0aWwuYy01Ny1cXHRcXHRcXHQgQklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpIHxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0xNT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBpZl9saW1pdHNbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0yMS1cXHRcXHQudHlwZXMgPSBCSVQoTkw4MDIxMV9JRlRZUEVfQVApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjIyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0yMy1cXHRcXHRcXHQgfCBCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz05MzA9bXQ3OTE1X3NldF9zdHJlYW1faGVfdHhiZl9jYXBzKHN0cnVjdCBtdDc5MTVfcGh5ICpwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtOTQ1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzo5NDY6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTk0Ny1cXHRpZiAodmlmID09IE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9MTAyMD1tdDc5MTVfaW5pdF9oZV9jYXBzKHN0cnVjdCBtdDc5MTVfcGh5ICpwaHksIGVudW0gbmw4MDIxMV9iYW5kIGJhbmQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTA1OS1cXHRcXHRjYXNlIE5MODAyMTFfSUZUWVBFX0FQOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoxMDYwOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMDYxLVxcdFxcdGNhc2UgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVDpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xNz1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBpZl9saW1pdHNfZ2xvYmFsID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTIxLVxcdFxcdCB8IEJJVChOTDgwMjExX0lGVFlQRV9BUClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MjI6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTIzLVxcdFxcdCB8IEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTUxPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IGlmX2xpbWl0c1tdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTU0LVxcdFxcdC50eXBlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9BUClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NTU6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTU2LVxcdFxcdFxcdCB8IEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTEzNTA9bXQ3OTk2X3NldF9zdHJlYW1faGVfdHhiZl9jYXBzKHN0cnVjdCBtdDc5OTZfcGh5ICpwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTM1OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTM1OTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTM2MC1cXHRpZiAodmlmID09IE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MTY5OT1fX210Nzk5Nl9zZXRfc3RyZWFtX2hlX2VodF9jYXBzKHN0cnVjdCBtdDc5OTZfcGh5ICpwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTcwOS1cXHRcXHRjYXNlIE5MODAyMTFfSUZUWVBFX0FQOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNzEwOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNzExLVxcdFxcdGNhc2UgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVDpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyeDAwZGV2LmM9MTMyNj1zdGF0aWMgaW5saW5lIHZvaWQgcnQyeDAwbGliX3NldF9pZl9jb21iaW5hdGlvbnMoc3RydWN0IHJ0MngwMF9kZXYgKnJ0MngwMGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyeDAwZGV2LmMtMTMzOS1cXHRpZl9saW1pdC1cXHUwMDNldHlwZXMgPSBCSVQoTkw4MDIxMV9JRlRZUEVfQVApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyeDAwZGV2LmM6MTM0MDojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MngwMGRldi5jLTEzNDEtXFx0aWZfbGltaXQtXFx1MDAzZXR5cGVzIHw9IEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyeDAwZGV2LmM9MTM3ND1pbnQgcnQyeDAwbGliX3Byb2JlX2RldihzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDJ4MDBkZXYuYy0xNDU5LVxcdFxcdCAgICBCSVQoTkw4MDIxMV9JRlRZUEVfQURIT0MpIHxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MngwMGRldi5jOjE0NjA6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDJ4MDBkZXYuYy0xNDYxLVxcdFxcdCAgICBCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVCkgfFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdGkvd2wxOHh4L21haW4uYz0xODc2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IHdsMTh4eF9pZmFjZV9saW1pdHNbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3RpL3dsMTh4eC9tYWluLmMtMTg4NS1cXHRcXHRcXHQgfCBCSVQoTkw4MDIxMV9JRlRZUEVfUDJQX0NMSUVOVClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy90aS93bDE4eHgvbWFpbi5jOjE4ODY6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdGkvd2wxOHh4L21haW4uYy0xODg3LVxcdFxcdFxcdCB8IEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdGkvd2wxOHh4L21haW4uYz0xODk2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IHdsMTh4eF9pZmFjZV9hcF9saW1pdHNbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3RpL3dsMTh4eC9tYWluLmMtMTkwMC1cXHR9LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3RpL3dsMTh4eC9tYWluLmM6MTkwMTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5kcml2ZXJzL25ldC93aXJlbGVzcy90aS93bDE4eHgvbWFpbi5jLTE5MDItXFx0e1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdGkvd2xjb3JlL21haW4uYz02MjA5PXN0YXRpYyBpbnQgd2wxMjcxX2luaXRfaWVlZTgwMjExKHN0cnVjdCB3bDEyNzEgKndsKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdGkvd2xjb3JlL21haW4uYy02MjQ1LVxcdFxcdFxcdFxcdFxcdCBCSVQoTkw4MDIxMV9JRlRZUEVfUDJQX0NMSUVOVCkgfFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3RpL3dsY29yZS9tYWluLmM6NjI0NjojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5kcml2ZXJzL25ldC93aXJlbGVzcy90aS93bGNvcmUvbWFpbi5jLTYyNDctXFx0XFx0XFx0XFx0XFx0IEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKSB8XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltX21haW4uYz00NTE4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3NiYW5kX2lmdHlwZV9kYXRhIHNiYW5kX2NhcGFfMmdoeltdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9tYWM4MDIxMV9od3NpbV9tYWluLmMtNDc1MS1cXHR9LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvbWFjODAyMTFfaHdzaW1fbWFpbi5jOjQ3NTI6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9tYWM4MDIxMV9od3NpbV9tYWluLmMtNDc1My1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltX21haW4uYz00Nzk1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3NiYW5kX2lmdHlwZV9kYXRhIHNiYW5kX2NhcGFfNWdoeltdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9tYWM4MDIxMV9od3NpbV9tYWluLmMtNTA2MS1cXHR9LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvbWFjODAyMTFfaHdzaW1fbWFpbi5jOjUwNjI6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9tYWM4MDIxMV9od3NpbV9tYWluLmMtNTA2My1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltX21haW4uYz01MTA4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3NiYW5kX2lmdHlwZV9kYXRhIHNiYW5kX2NhcGFfNmdoeltdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9tYWM4MDIxMV9od3NpbV9tYWluLmMtNTQxNi1cXHR9LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvbWFjODAyMTFfaHdzaW1fbWFpbi5jOjU0MTc6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9tYWM4MDIxMV9od3NpbV9tYWluLmMtNTQxOC1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltX21haW4uYz01NjA4PXN0YXRpYyB2b2lkIG1hYzgwMjExX2h3c2ltX3NiYW5kX2NhcGFiKHN0cnVjdCBpZWVlODAyMTFfc3VwcG9ydGVkX2JhbmQgKnNiYW5kKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9tYWM4MDIxMV9od3NpbV9tYWluLmMtNTYyNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltX21haW4uYzo1NjI1OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvbWFjODAyMTFfaHdzaW1fbWFpbi5jLTU2MjYtI2RlZmluZSBIV1NJTV9NRVNIX0JJVCBCSVQoTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVClcXG4tLVxcbmluY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmg9MTQ0PXN0YXRpYyBpbmxpbmUgYm9vbCBkZXZfeG1pdF9jb21wbGV0ZShpbnQgcmMpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L25ldGRldmljZS5oLTE2NS0jZWxpZiBkZWZpbmVkKENPTkZJR19XTEFOKVxcbmluY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmg6MTY2OiMgaWYgZGVmaW5lZChDT05GSUdfTUFDODAyMTFfTUVTSClcXG5pbmNsdWRlL2xpbnV4L25ldGRldmljZS5oLTE2Ny0jICBkZWZpbmUgTExfTUFYX0hFQURFUiAxMjhcXG4tLVxcbmluY2x1ZGUvbmV0L21hYzgwMjExLmg9MjMwNz1zdGF0aWMgaW5saW5lIGJvb2wgaWVlZTgwMjExX3ZpZl9pc19tZXNoKHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpXFxuaW5jbHVkZS9uZXQvbWFjODAyMTEuaC0yMzA4LXtcXG5pbmNsdWRlL25ldC9tYWM4MDIxMS5oOjIzMDk6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxuaW5jbHVkZS9uZXQvbWFjODAyMTEuaC0yMzEwLVxcdHJldHVybiB2aWYtXFx1MDAzZXR5cGUgPT0gTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVDtcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTYwPWNvbmZpZyBNQUM4MDIxMV9LVU5JVF9URVNUXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy02OS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3MDpjb25maWcgTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTcxLVxcdGJvb2wgXFxcIkVuYWJsZSBtYWM4MDIxMSBtZXNoIG5ldHdvcmtpbmcgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTIwOT1jb25maWcgTUFDODAyMTFfTVBMX0RFQlVHXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMTEtXFx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXFxubmV0L21hYzgwMjExL0tjb25maWc6MjEyOlxcdGRlcGVuZHMgb24gTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIxMy1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0yMjI9Y29uZmlnIE1BQzgwMjExX01QQVRIX0RFQlVHXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjQtXFx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXFxubmV0L21hYzgwMjExL0tjb25maWc6MjI1OlxcdGRlcGVuZHMgb24gTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyNi1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0yMzU9Y29uZmlnIE1BQzgwMjExX01IV01QX0RFQlVHXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMzctXFx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXFxubmV0L21hYzgwMjExL0tjb25maWc6MjM4OlxcdGRlcGVuZHMgb24gTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzOS1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDctXFxubmV0L21hYzgwMjExL0tjb25maWc6MjQ4OmNvbmZpZyBNQUM4MDIxMV9NRVNIX1NZTkNfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDktXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIHN5bmNocm9uaXphdGlvbiBkZWJ1Z2dpbmdcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWctMjUwLVxcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI1MTpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNTItXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjU4LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI1OTpjb25maWcgTUFDODAyMTFfTUVTSF9DU0FfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNjAtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIGNoYW5uZWwgc3dpdGNoIGRlYnVnZ2luZ1xcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNjEtXFx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXFxubmV0L21hYzgwMjExL0tjb25maWc6MjYyOlxcdGRlcGVuZHMgb24gTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2My1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNjktXFxubmV0L21hYzgwMjExL0tjb25maWc6MjcwOmNvbmZpZyBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjcxLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBwb3dlcnNhdmUgZGVidWdnaW5nXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI3Mi1cXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNzM6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL0tjb25maWctMjc0LVxcdGhlbHBcXG4tLVxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZT00MT1tYWM4MDIxMS0kKENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTKSArPSBcXFxcXFxuLS1cXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtNDYtXFxubmV0L21hYzgwMjExL01ha2VmaWxlOjQ3Om1hYzgwMjExLSQoQ09ORklHX01BQzgwMjExX01FU0gpICs9IFxcXFxcXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtNDgtXFx0bWVzaC5vIFxcXFxcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYz02MTM9c3RhdGljIGludCBpZWVlODAyMTFfYWRkX2tleShzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxcbi0tXFxubmV0L21hYzgwMjExL2NmZy5jLTcxMC1cXHRjYXNlIE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQ6XFxubmV0L21hYzgwMjExL2NmZy5jOjcxMTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvY2ZnLmMtNzEyLVxcdFxcdGlmIChzZGF0YS1cXHUwMDNldS5tZXNoLnNlY3VyaXR5ICE9IElFRUU4MDIxMV9NRVNIX1NFQ19OT05FKVxcbi0tXFxubmV0L21hYzgwMjExL2NmZy5jPTIxOTA9c3RhdGljIHZvaWQgc3RhX2FwcGx5X21lc2hfcGFyYW1zKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsLFxcbi0tXFxubmV0L21hYzgwMjExL2NmZy5jLTIxOTMte1xcbm5ldC9tYWM4MDIxMS9jZmcuYzoyMTk0OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9jZmcuYy0yMTk1LVxcdHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhID0gc3RhLVxcdTAwM2VzZGF0YTtcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYz0yNzg3PXN0YXRpYyBpbnQgaWVlZTgwMjExX2NoYW5nZV9zdGF0aW9uKHN0cnVjdCB3aXBoeSAqd2lwaHksXFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmMtMjg5My1cXG5uZXQvbWFjODAyMTEvY2ZnLmM6Mjg5NDojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvY2ZnLmMtMjg5NS1zdGF0aWMgaW50IGllZWU4MDIxMV9hZGRfbXBhdGgoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYz00NDI4PXN0YXRpYyBpbnQgaWVlZTgwMjExX3NldF9hZnRlcl9jc2FfYmVhY29uKHN0cnVjdCBpZWVlODAyMTFfbGlua19kYXRhICpsaW5rX2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmMtNDQ1MS1cXHRcXHRicmVhaztcXG5uZXQvbWFjODAyMTEvY2ZnLmM6NDQ1MjojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvY2ZnLmMtNDQ1My1cXHRjYXNlIE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQ6XFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmM9NDU2Mz1zdGF0aWMgaW50IGllZWU4MDIxMV9zZXRfY3NhX2JlYWNvbihzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfZGF0YSAqbGlua19kYXRhLFxcbi0tXFxubmV0L21hYzgwMjExL2NmZy5jLTQ2NTQtXFx0XFx0YnJlYWs7XFxubmV0L21hYzgwMjExL2NmZy5jOjQ2NTU6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL2NmZy5jLTQ2NTYtXFx0Y2FzZSBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UOiB7XFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmM9NTk3Nj1jb25zdCBzdHJ1Y3QgY2ZnODAyMTFfb3BzIG1hYzgwMjExX2NvbmZpZ19vcHMgPSB7XFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmMtNTk5Ni1cXHQuZHVtcF9zdXJ2ZXkgPSBpZWVlODAyMTFfZHVtcF9zdXJ2ZXksXFxubmV0L21hYzgwMjExL2NmZy5jOjU5OTc6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL2NmZy5jLTU5OTgtXFx0LmFkZF9tcGF0aCA9IGllZWU4MDIxMV9hZGRfbXBhdGgsXFxuLS1cXG5uZXQvbWFjODAyMTEvZGVidWcuaC01Mi1cXG5uZXQvbWFjODAyMTEvZGVidWcuaDo1MzojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hfU1lOQ19ERUJVR1xcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjU0OiNkZWZpbmUgTUFDODAyMTFfTUVTSF9TWU5DX0RFQlVHIDFcXG5uZXQvbWFjODAyMTEvZGVidWcuaC01NS0jZWxzZVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjU2OiNkZWZpbmUgTUFDODAyMTFfTUVTSF9TWU5DX0RFQlVHIDBcXG5uZXQvbWFjODAyMTEvZGVidWcuaC01Ny0jZW5kaWZcXG5uZXQvbWFjODAyMTEvZGVidWcuaC01OC1cXG5uZXQvbWFjODAyMTEvZGVidWcuaDo1OTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hfQ1NBX0RFQlVHXFxubmV0L21hYzgwMjExL2RlYnVnLmg6NjA6I2RlZmluZSBNQUM4MDIxMV9NRVNIX0NTQV9ERUJVRyAxXFxubmV0L21hYzgwMjExL2RlYnVnLmgtNjEtI2Vsc2VcXG5uZXQvbWFjODAyMTEvZGVidWcuaDo2MjojZGVmaW5lIE1BQzgwMjExX01FU0hfQ1NBX0RFQlVHIDBcXG5uZXQvbWFjODAyMTEvZGVidWcuaC02My0jZW5kaWZcXG5uZXQvbWFjODAyMTEvZGVidWcuaC02NC1cXG5uZXQvbWFjODAyMTEvZGVidWcuaDo2NTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hfUFNfREVCVUdcXG5uZXQvbWFjODAyMTEvZGVidWcuaDo2NjojZGVmaW5lIE1BQzgwMjExX01FU0hfUFNfREVCVUcgMVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTY3LSNlbHNlXFxubmV0L21hYzgwMjExL2RlYnVnLmg6Njg6I2RlZmluZSBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHIDBcXG5uZXQvbWFjODAyMTEvZGVidWcuaC02OS0jZW5kaWZcXG4tLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oPTEyNT1kbyB7XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnLmgtMjE4LSNkZWZpbmUgbXN5bmNfZGJnKHNkYXRhLCBmbXQsIC4uLilcXHRcXHRcXHRcXHRcXHRcXFxcXFxubmV0L21hYzgwMjExL2RlYnVnLmg6MjE5OlxcdF9zZGF0YV9kYmcoTUFDODAyMTFfTUVTSF9TWU5DX0RFQlVHLFxcdFxcdFxcdFxcdFxcXFxcXG5uZXQvbWFjODAyMTEvZGVidWcuaC0yMjAtXFx0XFx0ICAgc2RhdGEsIGZtdCwgIyNfX1ZBX0FSR1NfXylcXG4tLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTIyMi0jZGVmaW5lIG1jc2FfZGJnKHNkYXRhLCBmbXQsIC4uLilcXHRcXHRcXHRcXHRcXHRcXFxcXFxubmV0L21hYzgwMjExL2RlYnVnLmg6MjIzOlxcdF9zZGF0YV9kYmcoTUFDODAyMTFfTUVTSF9DU0FfREVCVUcsXFx0XFx0XFx0XFx0XFxcXFxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTIyNC1cXHRcXHQgICBzZGF0YSwgZm10LCAjI19fVkFfQVJHU19fKVxcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnLmgtMjI2LSNkZWZpbmUgbXBzX2RiZyhzZGF0YSwgZm10LCAuLi4pXFx0XFx0XFx0XFx0XFx0XFxcXFxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjIyNzpcXHRfc2RhdGFfZGJnKE1BQzgwMjExX01FU0hfUFNfREVCVUcsXFx0XFx0XFx0XFx0XFxcXFxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTIyOC1cXHRcXHQgICBzZGF0YSwgZm10LCAjI19fVkFfQVJHU19fKVxcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmM9NzM2PUlFRUU4MDIxMV9JRl9MSU5LX0ZJTEUoYWRkciwgY29uZi1cXHUwMDNlYWRkciwgTUFDKTtcXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuYy03MzctXFxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmM6NzM4OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTczOS1JRUVFODAyMTFfSUZfRklMRShlc3RhYl9wbGlua3MsIHUubWVzaC5lc3RhYl9wbGlua3MsIEFUT01JQyk7XFxuLS1cXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuYz04Njg9c3RhdGljIHZvaWQgYWRkX2lic3NfZmlsZXMoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXFxuLS1cXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuYy04NzItXFxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmM6ODczOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTg3NC1cXG4tLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jPTkzNz1zdGF0aWMgdm9pZCBhZGRfZmlsZXMoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXFxuLS1cXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuYy05NDktXFx0Y2FzZSBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UOlxcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jOjk1MDojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuYy05NTEtXFx0XFx0YWRkX21lc2hfZmlsZXMoc2RhdGEpO1xcbi0tXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg9NzcwPXN0cnVjdCBpZWVlODAyMTFfaWZfbWVzaCB7XFxuLS1cXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC04NTAtXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg6ODUxOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTg1Mi0jZGVmaW5lIElFRUU4MDIxMV9JRlNUQV9NRVNIX0NUUl9JTkMobXNoLCBuYW1lKVxcdFxcXFxcXG4tLVxcbm5ldC9tYWM4MDIxMS9tYWluLmM9MTEzNz1pbnQgaWVlZTgwMjExX3JlZ2lzdGVyX2h3KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxcbi0tXFxubmV0L21hYzgwMjExL21haW4uYy0xMzkyLVxcbm5ldC9tYWM4MDIxMS9tYWluLmM6MTM5MzojaWZuZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL21haW4uYy0xMzk0LVxcdC8qIG1lc2ggZGVwZW5kcyBvbiBLY29uZmlnLCBidXQgZHJpdmVycyBzaG91bGQgc2V0IGl0IGlmIHRoZXkgd2FudCAqL1xcbi0tXFxubmV0L21hYzgwMjExL21lc2guaD0zNzg9dm9pZCBtZXNoX3BhdGhfcmVmcmVzaChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9tZXNoLmgtMzgwLVxcbm5ldC9tYWM4MDIxMS9tZXNoLmg6MzgxOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9tZXNoLmgtMzgyLXN0YXRpYyBpbmxpbmVcXG4tLVxcbm5ldC9tYWM4MDIxMS9vZmZjaGFubmVsLmM9ODEwPWludCBpZWVlODAyMTFfbWdtdF90eChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxcbi0tXFxubmV0L21hYzgwMjExL29mZmNoYW5uZWwuYy04MzktXFx0XFx0XFx0bmVlZF9vZmZjaGFuID0gdHJ1ZTtcXG5uZXQvbWFjODAyMTEvb2ZmY2hhbm5lbC5jOjg0MDojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvb2ZmY2hhbm5lbC5jLTg0MS1cXHRcXHRmYWxsdGhyb3VnaDtcXG4tLVxcbm5ldC9tYWM4MDIxMS9yeC5jPTI3OTQ9aWVlZTgwMjExX2RlbGl2ZXJfc2tiKHN0cnVjdCBpZWVlODAyMTFfcnhfZGF0YSAqcngpXFxuLS1cXG5uZXQvbWFjODAyMTEvcnguYy0yODkzLVxcbm5ldC9tYWM4MDIxMS9yeC5jOjI4OTQ6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL3J4LmMtMjg5NS1zdGF0aWMgYm9vbFxcbi0tXFxubmV0L21hYzgwMjExL3J4LmM9Mjk2MT1pZWVlODAyMTFfcnhfbWVzaF9kYXRhKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLCBzdHJ1Y3Qgc3RhX2luZm8gKnN0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9yeC5jLTI5NjMte1xcbm5ldC9tYWM4MDIxMS9yeC5jOjI5NjQ6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL3J4LmMtMjk2NS1cXHRzdHJ1Y3QgaWVlZTgwMjExX2lmX21lc2ggKmlmbXNoID0gXFx1MDAyNnNkYXRhLVxcdTAwM2V1Lm1lc2g7XFxuLS1cXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYz00Njg9dm9pZCBzdGFfaW5mb19mcmVlKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsLCBzdHJ1Y3Qgc3RhX2luZm8gKnN0YSlcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTUwNi1cXHRrZnJlZShyY3VfZGVyZWZlcmVuY2VfcmF3KHN0YS1cXHUwMDNlc3RhLnJhdGVzKSk7XFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM6NTA3OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTUwOC1cXHRrZnJlZShzdGEtXFx1MDAzZW1lc2gpO1xcbi0tXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM9NjMzPV9fc3RhX2luZm9fYWxsb2Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy02NjctXFx0d2lwaHlfd29ya19pbml0KFxcdTAwMjZzdGEtXFx1MDAzZWFtcGR1X21sbWUud29yaywgaWVlZTgwMjExX2JhX3Nlc3Npb25fd29yayk7XFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM6NjY4OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTY2OS1cXHRpZiAoaWVlZTgwMjExX3ZpZl9pc19tZXNoKFxcdTAwMjZzZGF0YS1cXHUwMDNldmlmKSkge1xcbi0tXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtNzk1LVxcdHN0YV9pbmZvX2ZyZWVfbGluayhcXHUwMDI2c3RhLVxcdTAwM2VkZWZsaW5rKTtcXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYzo3OTY6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtNzk3LVxcdGtmcmVlKHN0YS1cXHUwMDNlbWVzaCk7XFxuLS1cXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYz0xMTA3PXN0YXRpYyB2b2lkIF9fc3RhX2luZm9fcmVjYWxjX3RpbShzdHJ1Y3Qgc3RhX2luZm8gKnN0YSwgYm9vbCBpZ25vcmVfcGVuZGluZylcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTExMjEtXFx0XFx0cHMgPSBcXHUwMDI2c3RhLVxcdTAwM2VzZGF0YS1cXHUwMDNlYnNzLVxcdTAwM2VwcztcXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYzoxMTIyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTExMjMtXFx0fSBlbHNlIGlmIChpZWVlODAyMTFfdmlmX2lzX21lc2goXFx1MDAyNnN0YS1cXHUwMDNlc2RhdGEtXFx1MDAzZXZpZikpIHtcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jPTI3NDM9c3RhdGljIGlubGluZSB1NjQgc3RhX2dldF9zdGF0c19ieXRlcyhzdHJ1Y3QgaWVlZTgwMjExX3N0YV9yeF9zdGF0cyAqcnhzdGF0cylcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTI3NTUtXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM6Mjc1NjojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy0yNzU3LXN0YXRpYyB2b2lkIHN0YV9zZXRfbWVzaF9zaW5mbyhzdHJ1Y3Qgc3RhX2luZm8gKnN0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jPTMwNzk9dm9pZCBzdGFfc2V0X3NpbmZvKHN0cnVjdCBzdGFfaW5mbyAqc3RhLCBzdHJ1Y3Qgc3RhdGlvbl9pbmZvICpzaW5mbyxcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTMyNjQtXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM6MzI2NTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy0zMjY2LVxcdGlmIChpZWVlODAyMTFfdmlmX2lzX21lc2goXFx1MDAyNnNkYXRhLVxcdTAwM2V2aWYpKVxcbi0tXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmg9NzE1PXN0cnVjdCBzdGFfaW5mbyB7XFxuLS1cXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaC03MzItXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmg6NzMzOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oLTczNC1cXHRzdHJ1Y3QgbWVzaF9zdGEgKm1lc2g7XFxuLS1cXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaD04MDA9c3RhdGljIGlubGluZSBlbnVtIG5sODAyMTFfcGxpbmtfc3RhdGUgc3RhX3BsaW5rX3N0YXRlKHN0cnVjdCBzdGFfaW5mbyAqc3RhKVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oLTgwMS17XFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmg6ODAyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oLTgwMy1cXHRyZXR1cm4gc3RhLVxcdTAwM2VtZXNoLVxcdTAwM2VwbGlua19zdGF0ZTtcXG4tLVxcbm5ldC9tYWM4MDIxMS90eC5jPTI1MDc9aW50IGllZWU4MDIxMV9sb29rdXBfcmFfc3RhKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbi0tXFxubmV0L21hYzgwMjExL3R4LmMtMjUzMS1cXHRcXHRicmVhaztcXG5uZXQvbWFjODAyMTEvdHguYzoyNTMyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS90eC5jLTI1MzMtXFx0Y2FzZSBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UOlxcbi0tXFxubmV0L21hYzgwMjExL3R4LmM9MjY0OD1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmllZWU4MDIxMV9idWlsZF9oZHIoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvdHguYy0yNzQ3LVxcdFxcdGJyZWFrO1xcbm5ldC9tYWM4MDIxMS90eC5jOjI3NDg6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL3R4LmMtMjc0OS1cXHRjYXNlIE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQ6XFxuLS1cXG5uZXQvbWFjODAyMTEvdHguYy0zMDA5LVxcbm5ldC9tYWM4MDIxMS90eC5jOjMwMTA6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL3R4LmMtMzAxMS1cXHRpZiAobWVzaGhkcmxlbiBcXHUwMDNlIDApXFxuLS1cXG5uZXQvd2lyZWxlc3MvY29yZS5jPTE3MDc9c3RhdGljIGludCBjZmc4MDIxMV9uZXRkZXZfbm90aWZpZXJfY2FsbChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLFxcbi0tXFxubmV0L3dpcmVsZXNzL2NvcmUuYy0xNzg5LSNlbmRpZlxcbm5ldC93aXJlbGVzcy9jb3JlLmM6MTc5MDojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvd2lyZWxlc3MvY29yZS5jLTE3OTEtXFx0XFx0Y2FzZSBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UOlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwNjo0ODoxNC42NTk2MDk3NzZaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MjQ0NTg5OTgwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93bjpcblxuKipNZXNoIENvbmZpZ3VyYXRpb24gQ2hlY2sqKlxuXG5BbHJpZ2h0LCB5ZXAsIGNvbmZpcm1lZC4gV2UncmUgZGVhbGluZyB3aXRoIGBDT05GSUdfTUFDODAyMTFfTUVTSGAuIFRoYXQncyB0aGUga2V5LiBOb3csIGxldCdzIGp1c3QgcXVpY2tseSB2ZXJpZnkgc29tZXRoaW5nIGNydWNpYWw6IGNhbiB3ZSBhY3R1YWxseSByZWFjaCBgaWVlZTgwMjExX3N0b3BfbWVzaGA/IFdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgZnVuY3Rpb24gaXMgYWNjZXNzaWJsZSBhbmQgZGVmaW5lZCB3aXRoaW4gdGhlIGN1cnJlbnQgYnVpbGQgZW52aXJvbm1lbnQsIHNpbmNlIHRoYXQncyBhIHByZXR0eSBmdW5kYW1lbnRhbCBvcGVyYXRpb24uIEdvdHRhIGNvbmZpcm0gdGhhdCB0aGUgZnVuY3Rpb24gZXhpc3RzIGFuZCBpcyBpbiBzY29wZSBiZWZvcmUgd2UgZGl2ZSBhbnkgZGVlcGVyLiBJdCdzIGEgZnVuZGFtZW50YWwgY2hlY2ssIG1ha2luZyBzdXJlIHdlIGhhdmVuJ3QgZ290IGFueSBsaW5rYWdlIHByb2JsZW1zLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNDk4MiwiT3V0cHV0VG9rZW5zIjoyNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA2OjQ4OjIwLjkwNDIwMjUxNloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTU0OTQ2MTIyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImllZWU4MDIxMV9zdG9wX21lc2hcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL2NmZy5jPTMzMjY9c3RhdGljIGludCBpZWVlODAyMTFfbGVhdmVfbWVzaChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxubmV0L21hYzgwMjExL2NmZy5jLTMzMzEtXFxubmV0L21hYzgwMjExL2NmZy5jOjMzMzI6XFx0aWVlZTgwMjExX3N0b3BfbWVzaChzZGF0YSk7XFxubmV0L21hYzgwMjExL2NmZy5jLTMzMzMtXFx0aWVlZTgwMjExX2xpbmtfcmVsZWFzZV9jaGFubmVsKFxcdTAwMjZzZGF0YS1cXHUwMDNlZGVmbGluayk7XFxuLS1cXG5uZXQvbWFjODAyMTEvbWVzaC5jPTExNTg9aW50IGllZWU4MDIxMV9zdGFydF9tZXNoKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxcbi0tXFxubmV0L21hYzgwMjExL21lc2guYy0xMTg3LVxcdGlmIChpZWVlODAyMTFfbWVzaF9idWlsZF9iZWFjb24oaWZtc2gpKSB7XFxubmV0L21hYzgwMjExL21lc2guYzoxMTg4OlxcdFxcdGllZWU4MDIxMV9zdG9wX21lc2goc2RhdGEpO1xcbm5ldC9tYWM4MDIxMS9tZXNoLmMtMTE4OS1cXHRcXHRyZXR1cm4gLUVOT01FTTtcXG4tLVxcbm5ldC9tYWM4MDIxMS9tZXNoLmMtMTE5OC1cXG5uZXQvbWFjODAyMTEvbWVzaC5jOjExOTk6dm9pZCBpZWVlODAyMTFfc3RvcF9tZXNoKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxcbm5ldC9tYWM4MDIxMS9tZXNoLmMtMTIwMC17XFxuLS1cXG5uZXQvbWFjODAyMTEvbWVzaC5oPTI3OT1pbnQgaWVlZTgwMjExX3N0YXJ0X21lc2goc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpO1xcbm5ldC9tYWM4MDIxMS9tZXNoLmg6MjgwOnZvaWQgaWVlZTgwMjExX3N0b3BfbWVzaChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSk7XFxubmV0L21hYzgwMjExL21lc2guaC0yODEtdm9pZCBpZWVlODAyMTFfbWVzaF9yb290X3NldHVwKHN0cnVjdCBpZWVlODAyMTFfaWZfbWVzaCAqaWZtc2gpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwNjo0ODoyMi40NTkxNTYxMDhaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMTI5MzI0OTU5MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFBhdGNoIGZvciBGb2N1cyBTeW1ib2wgSWRlbnRpZmljYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCB0cnlpbmcgdG8gZmlndXJlIG91dCB0aGUgYmVzdCBmb2N1cyBzeW1ib2wgZm9yIGZ1enppbmcgYW5kIGFuYWx5c2lzLiBJdCBsb29rcyBsaWtlIGBpZWVlODAyMTFfc3RvcF9tZXNoYCBpcyB0aGUga2V5LiBUaGUgZnVuY3Rpb24gYGllZWU4MDIxMV9zdG9wX21lc2hgIGlzIGNhbGxlZCBmcm9tIGJvdGggYGllZWU4MDIxMV9sZWF2ZV9tZXNoYCBhbmQgYGllZWU4MDIxMV9zdGFydF9tZXNoYC4gIEltcG9ydGFudGx5LCBgaWVlZTgwMjExX2xlYXZlX21lc2hgIGl0c2VsZiBpcyByZWFjaGVkIHRocm91Z2ggdGhlIHN0YW5kYXJkIGBtYWM4MDIxMV9jb25maWdfb3BzLmxlYXZlX21lc2hgIHdoaWNoIGlzLCBvZiBjb3Vyc2UsIGFjY2Vzc2libGUgZnJvbSB1c2Vyc3BhY2UgdGhyb3VnaCBubDgwMjExLiBUaGF0IGNvbmZpcm1zIGl0J3MgYSB2YWxpZCB0YXJnZXQgZm9yIGZ1enppbmcuXG5cblRoZSBjb3JlIG9mIHRoZSBwYXRjaCBpbnZvbHZlcyBmcmVlaW5nIGBpZm1zaC1cdTAwM2Vjc2FgIHdpdGhpbiBgaWVlZTgwMjExX3N0b3BfbWVzaGAsIGFkZHJlc3NpbmcgZWl0aGVyIGEgbWVtb3J5IGxlYWsgb3IgdXNlLWFmdGVyLWZyZWUgdnVsbmVyYWJpbGl0eS4gIGBpZWVlODAyMTFfc3RvcF9tZXNoYCBoYXMgZ290IHRvIGJlIGluIGBGb2N1c1N5bWJvbHNgLCBnaXZlbiBpdHMgZGlyZWN0IGludm9sdmVtZW50IGluIHRoZSBmaXguIExldCdzIG1ha2Ugc3VyZSB0aGUgYE1BQzgwMjExX01FU0hgIGNvbmZpZyBpcyBpbmNsdWRlZCBpbiBgRW5hYmxlQ29uZmlnc2AuXG5cbkkgdG9vayBhIHF1aWNrIGxvb2sgYXJvdW5kIGFuZCBpdCBzZWVtcyBvbmx5IGBpZWVlODAyMTFfc3RvcF9tZXNoYCB3YXMgbW9kaWZpZWQsIHdoaWNoIG1ha2VzIHRoaXMgZXZlbiBjbGVhbmVyLiAgRG91YmxlLWNoZWNraW5nLCBpdCdzIG5vdCBkZWNsYXJlZCBhcyBzdGF0aWMgb3IgaW5saW5lLiBJdCdzIGRlY2xhcmVkIGluIGBuZXQvbWFjODAyMTEvbWVzaC5oYCBhbmQgZGVmaW5lZCBpbiBgbmV0L21hYzgwMjExL21lc2guY2AsIHNvIGl0J3MgZGlyZWN0bHkgYWNjZXNzaWJsZSwgYW5kIGEgc29saWQgZm9jdXMgc3ltYm9sLlxuXG5Ob3csIGxldCBtZSBqdXN0IHF1aWNrbHkgcmV2aXNpdCBgaWVlZTgwMjExX2xlYXZlX21lc2hgIHNpbmNlIGl0J3MgYW4gaW1wb3J0YW50IGVudHJ5IHBvaW50LiBJdCdzIG1hcmtlZCBzdGF0aWMgaW4gYG5ldC9tYWM4MDIxMS9jZmcuY2Agd2hpY2ggbG9va2VkIGxpa2UgYSBwb3RlbnRpYWwgcHJvYmxlbS4gQWgsIHdhaXQgYSBtaW51dGUsIGl0IGlzIGluZGVlZCBhc3NpZ25lZCB0byBgbWFjODAyMTFfY29uZmlnX29wcy5sZWF2ZV9tZXNoYCEgT2theSwgc28gSSBzaG91bGQgZG91YmxlLWNoZWNrIHRoZSBkZWZpbml0aW9uIG9mIGBtYWM4MDIxMV9jb25maWdfb3BzYCBpbiBgbmV0L21hYzgwMjExL2NmZy5jYCBqdXN0IHRvIGJlIGNvbXBsZXRlbHkgY2VydGFpbiBvZiB0aGUgY2FsbCBjaGFpbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MTU3NDAsIk91dHB1dFRva2VucyI6MTcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDY6NDg6MzMuNzUyNDA4NzlaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ0Mjg1OTg4OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJsZWF2ZV9tZXNoXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImluY2x1ZGUvbmV0L2NmZzgwMjExLmg9NDg0Mz1zdHJ1Y3QgbWdtdF9mcmFtZV9yZWdzIHtcXG4tLVxcbmluY2x1ZGUvbmV0L2NmZzgwMjExLmgtNDk0My0gKlxcdChpbnZva2VkIHdpdGggdGhlIHdpcmVsZXNzX2RldiBtdXRleCBoZWxkKVxcbmluY2x1ZGUvbmV0L2NmZzgwMjExLmg6NDk0NDogKiBAbGVhdmVfbWVzaDogbGVhdmUgdGhlIGN1cnJlbnQgbWVzaCBuZXR3b3JrXFxuaW5jbHVkZS9uZXQvY2ZnODAyMTEuaC00OTQ1LSAqXFx0KGludm9rZWQgd2l0aCB0aGUgd2lyZWxlc3NfZGV2IG11dGV4IGhlbGQpXFxuLS1cXG5pbmNsdWRlL25ldC9jZmc4MDIxMS5oPTUyODA9c3RydWN0IGNmZzgwMjExX29wcyB7XFxuLS1cXG5pbmNsdWRlL25ldC9jZmc4MDIxMS5oLTUzNzAtXFx0XFx0XFx0ICAgICBjb25zdCBzdHJ1Y3QgbWVzaF9zZXR1cCAqc2V0dXApO1xcbmluY2x1ZGUvbmV0L2NmZzgwMjExLmg6NTM3MTpcXHRpbnRcXHQoKmxlYXZlX21lc2gpKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xcbmluY2x1ZGUvbmV0L2NmZzgwMjExLmgtNTM3Mi1cXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYz0zMjk2PXN0YXRpYyBpbnQgaWVlZTgwMjExX2pvaW5fbWVzaChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbi0tXFxubmV0L21hYzgwMjExL2NmZy5jLTMzMjUtXFxubmV0L21hYzgwMjExL2NmZy5jOjMzMjY6c3RhdGljIGludCBpZWVlODAyMTFfbGVhdmVfbWVzaChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbm5ldC9tYWM4MDIxMS9jZmcuYy0zMzI3LXtcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYz01OTc2PWNvbnN0IHN0cnVjdCBjZmc4MDIxMV9vcHMgbWFjODAyMTFfY29uZmlnX29wcyA9IHtcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYy02MDA3LVxcdC5qb2luX21lc2ggPSBpZWVlODAyMTFfam9pbl9tZXNoLFxcbm5ldC9tYWM4MDIxMS9jZmcuYzo2MDA4OlxcdC5sZWF2ZV9tZXNoID0gaWVlZTgwMjExX2xlYXZlX21lc2gsXFxubmV0L21hYzgwMjExL2NmZy5jLTYwMDktI2VuZGlmXFxuLS1cXG5uZXQvd2lyZWxlc3MvY29yZS5jPTU0OT1zdHJ1Y3Qgd2lwaHkgKndpcGh5X25ld19ubShjb25zdCBzdHJ1Y3QgY2ZnODAyMTFfb3BzICpvcHMsIGludCBzaXplb2ZfcHJpdixcXG4tLVxcbm5ldC93aXJlbGVzcy9jb3JlLmMtNTYzLVxcdFdBUk5fT04ob3BzLVxcdTAwM2VhZGRfbXBhdGggXFx1MDAyNlxcdTAwMjYgIW9wcy1cXHUwMDNlZGVsX21wYXRoKTtcXG5uZXQvd2lyZWxlc3MvY29yZS5jOjU2NDpcXHRXQVJOX09OKG9wcy1cXHUwMDNlam9pbl9tZXNoIFxcdTAwMjZcXHUwMDI2ICFvcHMtXFx1MDAzZWxlYXZlX21lc2gpO1xcbm5ldC93aXJlbGVzcy9jb3JlLmMtNTY1LVxcdFdBUk5fT04ob3BzLVxcdTAwM2VzdGFydF9wMnBfZGV2aWNlIFxcdTAwMjZcXHUwMDI2ICFvcHMtXFx1MDAzZXN0b3BfcDJwX2RldmljZSk7XFxuLS1cXG5uZXQvd2lyZWxlc3MvY29yZS5jPTE1MDM9dm9pZCBjZmc4MDIxMV9sZWF2ZV9sb2NrZWQoc3RydWN0IGNmZzgwMjExX3JlZ2lzdGVyZWRfZGV2aWNlICpyZGV2LFxcbi0tXFxubmV0L3dpcmVsZXNzL2NvcmUuYy0xNTM3LVxcdGNhc2UgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVDpcXG5uZXQvd2lyZWxlc3MvY29yZS5jOjE1Mzg6XFx0XFx0Y2ZnODAyMTFfbGVhdmVfbWVzaChyZGV2LCBkZXYpO1xcbm5ldC93aXJlbGVzcy9jb3JlLmMtMTUzOS1cXHRcXHRicmVhaztcXG4tLVxcbm5ldC93aXJlbGVzcy9jb3JlLmg9MzU1PWludCBfX2NmZzgwMjExX2pvaW5fbWVzaChzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYsXFxuLS1cXG5uZXQvd2lyZWxlc3MvY29yZS5oLTM1OC1cXHRcXHRcXHQgY29uc3Qgc3RydWN0IG1lc2hfY29uZmlnICpjb25mKTtcXG5uZXQvd2lyZWxlc3MvY29yZS5oOjM1OTppbnQgY2ZnODAyMTFfbGVhdmVfbWVzaChzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYsXFxubmV0L3dpcmVsZXNzL2NvcmUuaC0zNjAtXFx0XFx0XFx0c3RydWN0IG5ldF9kZXZpY2UgKmRldik7XFxuLS1cXG5uZXQvd2lyZWxlc3MvbWVzaC5jPTIyNT1pbnQgY2ZnODAyMTFfc2V0X21lc2hfY2hhbm5lbChzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYsXFxuLS1cXG5uZXQvd2lyZWxlc3MvbWVzaC5jLTI1OS1cXG5uZXQvd2lyZWxlc3MvbWVzaC5jOjI2MDppbnQgY2ZnODAyMTFfbGVhdmVfbWVzaChzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYsXFxubmV0L3dpcmVsZXNzL21lc2guYy0yNjEtXFx0XFx0XFx0c3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbm5ldC93aXJlbGVzcy9tZXNoLmMtMjcwLVxcbm5ldC93aXJlbGVzcy9tZXNoLmM6MjcxOlxcdGlmICghcmRldi1cXHUwMDNlb3BzLVxcdTAwM2VsZWF2ZV9tZXNoKVxcbm5ldC93aXJlbGVzcy9tZXNoLmMtMjcyLVxcdFxcdHJldHVybiAtRU9QTk9UU1VQUDtcXG4tLVxcbm5ldC93aXJlbGVzcy9tZXNoLmMtMjc2LVxcbm5ldC93aXJlbGVzcy9tZXNoLmM6Mjc3OlxcdGVyciA9IHJkZXZfbGVhdmVfbWVzaChyZGV2LCBkZXYpO1xcbm5ldC93aXJlbGVzcy9tZXNoLmMtMjc4LVxcdGlmICghZXJyKSB7XFxuLS1cXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jPTE1MjY1PXN0YXRpYyBpbnQgbmw4MDIxMV9qb2luX21lc2goc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG4tLVxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtMTUzODYtXFxubmV0L3dpcmVsZXNzL25sODAyMTEuYzoxNTM4NzpzdGF0aWMgaW50IG5sODAyMTFfbGVhdmVfbWVzaChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtMTUzODgte1xcbi0tXFxubmV0L3dpcmVsZXNzL25sODAyMTEuYy0xNTM5MS1cXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jOjE1MzkyOlxcdHJldHVybiBjZmc4MDIxMV9sZWF2ZV9tZXNoKHJkZXYsIGRldik7XFxubmV0L3dpcmVsZXNzL25sODAyMTEuYy0xNTM5My19XFxuLS1cXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jPTE5NzMzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2VubF9zbWFsbF9vcHMgbmw4MDIxMV9zbWFsbF9vcHNbXSA9IHtcXG4tLVxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtMjAxNzAtXFx0XFx0LnZhbGlkYXRlID0gR0VOTF9ET05UX1ZBTElEQVRFX1NUUklDVCB8IEdFTkxfRE9OVF9WQUxJREFURV9EVU1QLFxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmM6MjAxNzE6XFx0XFx0LmRvaXQgPSBubDgwMjExX2xlYXZlX21lc2gsXFxubmV0L3dpcmVsZXNzL25sODAyMTEuYy0yMDE3Mi1cXHRcXHQuZmxhZ3MgPSBHRU5MX1VOU19BRE1JTl9QRVJNLFxcbi0tXFxubmV0L3dpcmVsZXNzL3JkZXYtb3BzLmg9MzU0PXN0YXRpYyBpbmxpbmUgaW50IHJkZXZfam9pbl9tZXNoKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcXG4tLVxcbm5ldC93aXJlbGVzcy9yZGV2LW9wcy5oLTM2Ni1cXG5uZXQvd2lyZWxlc3MvcmRldi1vcHMuaDozNjc6c3RhdGljIGlubGluZSBpbnQgcmRldl9sZWF2ZV9tZXNoKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcXG5uZXQvd2lyZWxlc3MvcmRldi1vcHMuaC0zNjgtXFx0XFx0XFx0XFx0ICBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxubmV0L3dpcmVsZXNzL3JkZXYtb3BzLmgtMzcwLVxcdGludCByZXQ7XFxubmV0L3dpcmVsZXNzL3JkZXYtb3BzLmg6MzcxOlxcdHRyYWNlX3JkZXZfbGVhdmVfbWVzaChcXHUwMDI2cmRldi1cXHUwMDNld2lwaHksIGRldik7XFxubmV0L3dpcmVsZXNzL3JkZXYtb3BzLmg6MzcyOlxcdHJldCA9IHJkZXYtXFx1MDAzZW9wcy1cXHUwMDNlbGVhdmVfbWVzaChcXHUwMDI2cmRldi1cXHUwMDNld2lwaHksIGRldik7XFxubmV0L3dpcmVsZXNzL3JkZXYtb3BzLmgtMzczLVxcdHRyYWNlX3JkZXZfcmV0dXJuX2ludChcXHUwMDI2cmRldi1cXHUwMDNld2lwaHksIHJldCk7XFxuLS1cXG5uZXQvd2lyZWxlc3Mvc21lLmM9MTU4MT12b2lkIGNmZzgwMjExX2F1dG9kaXNjb25uZWN0X3drKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXBoeV93b3JrICp3b3JrKVxcbi0tXFxubmV0L3dpcmVsZXNzL3NtZS5jLTE1OTYtXFx0XFx0Y2FzZSBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UOlxcbm5ldC93aXJlbGVzcy9zbWUuYzoxNTk3OlxcdFxcdFxcdGNmZzgwMjExX2xlYXZlX21lc2gocmRldiwgd2Rldi1cXHUwMDNlbmV0ZGV2KTtcXG5uZXQvd2lyZWxlc3Mvc21lLmMtMTU5OC1cXHRcXHRcXHRicmVhaztcXG4tLVxcbm5ldC93aXJlbGVzcy90cmFjZS5oPTgyNT1ERUZJTkVfRVZFTlQod2lwaHlfbmV0ZGV2X2V2dCwgcmRldl9nZXRfbWVzaF9jb25maWcsXFxuLS1cXG5uZXQvd2lyZWxlc3MvdHJhY2UuaC04MjktXFxubmV0L3dpcmVsZXNzL3RyYWNlLmg6ODMwOkRFRklORV9FVkVOVCh3aXBoeV9uZXRkZXZfZXZ0LCByZGV2X2xlYXZlX21lc2gsXFxubmV0L3dpcmVsZXNzL3RyYWNlLmgtODMxLVxcdFRQX1BST1RPKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwNjo0ODozNS4xOTUyNzQxNDhaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4MzEwMzg0NDEyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgU3RyYXRlZ3kgZm9yIE1lc2ggVGVhcmRvd24gaW4gbWFjODAyMTEqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEknbSBmb2N1c2luZyBvbiBjbGVhbmluZyB1cCBhIHBvdGVudGlhbCBtZW1vcnkgbGVhayBpbiBtYWM4MDIxMSBtZXNoIGhhbmRsaW5nLiBJIGluaXRpYWxseSBjb25zaWRlcmVkIGBpZWVlODAyMTFfbGVhdmVfbWVzaGAsIGJ1dCBpdCdzIHN0YXRpYywgc28gaXQncyBub3QgYSBzdWl0YWJsZSBmb2N1cyBmb3Igc3l6a2FsbGVyLiBgaWVlZTgwMjExX3N0b3BfbWVzaGAsIGhvd2V2ZXIsIGlzIGV4cG9ydGVkIGFuZCB0aHVzIGEgYmV0dGVyIGNhbmRpZGF0ZS5cblxuTm93LCBsZXQncyBjaGVjayBmb3IgYW55IGNvbmZpZyBkZXBlbmRlbmNpZXMuIGBNQUM4MDIxMV9NRVNIYCBkZXBlbmRzIG9uIGBNQUM4MDIxMWAsIHdoaWNoIG1ha2VzIHRoaW5ncyBzaW1wbGUsIGBNQUM4MDIxMV9NRVNIYCBpcyB0aGUgb25seSBjb25maWcgSSBuZWVkIHRvIGNvbnNpZGVyLiBJJ20gcHJldHR5IHN1cmUgc3l6a2FsbGVyIHVzdWFsbHkgZW5hYmxlcyBpdCwgYnV0IEknbGwgZG91YmxlLWNoZWNrLiBZdXAsIGl0IGxvb2tzIGxpa2UgaXQgaXMuXG5cblRoZSBwYXRjaCBpdHNlbGYgaXMgc3RyYWlnaHRmb3J3YXJkLiBJdCBhZGRyZXNzZXMgdGhlIGZyZWVpbmcgb2YgYGlmbXNoLVx1MDAzZWNzYWAgd2l0aGluIGBpZWVlODAyMTFfc3RvcF9tZXNoYC4gVGhpcyBtZW1vcnkgbGVhayBmaXggaXMgdHJpZ2dlcmVkIGR1cmluZyB0aGUgbWVzaCB0ZWFyZG93biBwcm9jZXNzLiBUaGUgY29kZSBzbmlwcGV0IHNob3dzIHRoYXQgaXQncyBwcm9wZXJseSBoYW5kbGVkIG5vdyBieSBmcmVlaW5nIGFueSBwZW5kaW5nIGNoYW5uZWwgc3dpdGNoLlxuXG5UaGUgY2FsbCBwYXRoIGZvciB0aGlzIGlzIHByZXR0eSBjbGVhcjogYG5sODAyMTFfbGVhdmVfbWVzaGAgLVx1MDAzZSBgY2ZnODAyMTFfbGVhdmVfbWVzaGAgLVx1MDAzZSBgcmRldl9sZWF2ZV9tZXNoYCAtXHUwMDNlIGBtYWM4MDIxMV9jb25maWdfb3BzLmxlYXZlX21lc2hgIC1cdTAwM2UgYGllZWU4MDIxMV9sZWF2ZV9tZXNoYCAtXHUwMDNlIGBpZWVlODAyMTFfc3RvcF9tZXNoYC4gVGhlcmVmb3JlLCBJJ20gY29uZmlkZW50IHRoYXQgZnV6emluZyBgaWVlZTgwMjExX3N0b3BfbWVzaGAgd2lsbCBleHBvc2UgdGhlIGZpeCBhbmQgYW55IHJlbGF0ZWQgaXNzdWVzLlxuXG5UaGVyZWZvcmUsIG15IHN0cmF0ZWd5IGlzIHNldCB0byBgV29ydGhGdXp6aW5nPXRydWVgLCBgRm9jdXNTeW1ib2xzPVtcImllZWU4MDIxMV9zdG9wX21lc2hcIl1gLCBhbmQgYEVuYWJsZUNvbmZpZ3M9W1wiTUFDODAyMTFfTUVTSFwiXWAuIFRoZSByZWFzb25pbmcgaXMgc29saWQ6IFdlJ3JlIGFkZHJlc3NpbmcgYSBtZW1vcnkgbGVhayBkdXJpbmcgbWVzaCB0ZWFyZG93biwgdHJpZ2dlcmVkIGJ5IG5sODAyMTEgbWVzaCBvcGVyYXRpb25zLCBzbyBmdXp6aW5nIHRoaXMgZnVuY3Rpb24gbWFrZXMgcGVyZmVjdCBzZW5zZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTg3NDAsIk91dHB1dFRva2VucyI6MTEzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDU5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA2OjQ4OjQzLjUwNTY2NjQwMVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcwMDM4MzY4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNQUM4MDIxMV9NRVNIXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWVlZTgwMjExX3N0b3BfbWVzaFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgb2YgYGlmbXNoLVxcdTAwM2Vjc2FgIGluIGBpZWVlODAyMTFfc3RvcF9tZXNoYCBkdXJpbmcgbWFjODAyMTEgbWVzaCB0ZWFyZG93bi4gVGhpcyBpcyByZWFjaGFibGUgdmlhIG5sODAyMTEgbWVzaCBvcGVyYXRpb25zIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1BQzgwMjExX01FU0hcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpZWVlODAyMTFfc3RvcF9tZXNoXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBvZiBgaWZtc2gtXFx1MDAzZWNzYWAgaW4gYGllZWU4MDIxMV9zdG9wX21lc2hgIGR1cmluZyBtYWM4MDIxMSBtZXNoIHRlYXJkb3duLiBUaGlzIGlzIHJlYWNoYWJsZSB2aWEgbmw4MDIxMSBtZXNoIG9wZXJhdGlvbnMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA2OjQ4OjQzLjU3NTcxMTA1OVoiLCJTZXEiOjExLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTAyOTg1ODE5ODUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwNjo0ODo0My41NzYxMjM5MzlaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6ImFnZW50IiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MTAyOTgxNjQ1NjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIG1lbW9yeSBsZWFrIG9yIHVzZS1hZnRlci1mcmVlIGJ5IGZyZWVpbmcgYSBwZW5kaW5nIGNoYW5uZWwgc3dpdGNoIHN0cnVjdHVyZSAoYGlmbXNoLVxcdTAwM2Vjc2FgKSB3aGVuIHN0b3BwaW5nIHRoZSBtZXNoIGludGVyZmFjZS4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgYWxsb2NhdGlvbnMsIGNvcHkgZGF0YSB0byB1c2VyIHNwYWNlLCBvciBhZGQgbG9naWMgdGhhdCBjb3VsZCBkZXBlbmQgb24gdW5pbml0aWFsaXplZCBtZW1vcnkuIEFueSBpc3N1ZXMgcmVsYXRlZCB0byB0aGlzIGNoYW5nZSAoc3VjaCBhcyBkb3VibGUgZnJlZSBvciB1c2UtYWZ0ZXItZnJlZSkgd291bGQgYmUgY2F1Z2h0IGJ5IEtBU0FOLCBub3QgS01TQU4uXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIHNlY3VyaXR5IGVuZ2luZWVyIHNwZWNpYWxpemluZyBpbiBrZXJuZWwgbWVtb3J5XG5lcnJvciBkZXRlY3RvcnMgKEtBU0FOIGFuZCBLTVNBTikuIFlvdXIgam9iIGlzIHRvIHJldmlldyB0aGUgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZFxuZGV0ZXJtaW5lIGlmIHRoZSBjb2RlIGNoYW5nZXMganVzdGlmeSBzcGF3bmluZyBhIGRlZGljYXRlZCBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKVxuZnV6emluZyBzZXNzaW9uIGluIGFkZGl0aW9uIHRvIHN0YW5kYXJkIEtBU0FOIGZ1enppbmcuXG5cbkNSSVRJQ0FMIERJU1RJTkNUSU9OIEJFVFdFRU4gS0FTQU4gQU5EIEtNU0FOOlxuLSBTdGFuZGFyZCBLQVNBTiBrZXJuZWwgYnVpbGRzICh1cHN0cmVhbS1hcHBhcm1vci1rYXNhbi5jb25maWcpIGFscmVhZHkgZW5hYmxlXG4gIGEgY29tcHJlaGVuc2l2ZSBzdWl0ZSBvZiBkZWJ1Z2dpbmcgdG9vbHMgYW5kIHNhbml0aXplcnMsIGluY2x1ZGluZyBLQVNBTlxuICAob3V0LW9mLWJvdW5kcyBhY2Nlc3NlcywgdXNlLWFmdGVyLWZyZWUsIGRvdWJsZSBmcmVlLCBpbnZhbGlkIGZyZWUpLCBMT0NLREVQXG4gIChsb2NraW5nIGJ1Z3MgYW5kIGRlYWRsb2NrcyksIFVCLXNhbml0aXplcnMsIGFuZCBtZW1vcnkgY29ycnVwdGlvbiBjaGVja3MuXG4tIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpIGRldGVjdHMgcmVhZHMgb2YgVU5JTklUSUFMSVpFRCBtZW1vcnkgKHN0YWNrLCBoZWFwLFxuICBvciBwYWdlIGFsbG9jYXRpb25zKSBhbmQga2VybmVsLXRvLXVzZXIgbWVtb3J5IGluZm8tbGVha3MuXG5cblJ1bGU6IFRIRVJFIElTIE5PIFNFTlNFIElOIFJVTk5JTkcgQSBLTVNBTiBTRVNTSU9OIElGIEEgQlVHIENBTiBCRSBDQVVHSFQgQlkgS0FTQU4sXG5MT0NLREVQLCBPUiBPVEhFUiBTVEFOREFSRCBCVUcgREVURUNUT1JTLlxuQSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGluY3VycyBzaWduaWZpY2FudCByZXNvdXJjZSBjb3N0cy4gWW91IG11c3QgT05MWVxuc2V0IE5lZWRzS01TQU49dHJ1ZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGludHJvZHVjZSBvciBleHBvc2UgVU5JTklUSUFMSVpFRCBNRU1PUlkgcmlza3NcbnRoYXQgYXJlIGRldGVjdGVkIE9OTFkgYnkgS01TQU4uXG5cbkxvb2sgaG9saXN0aWNhbGx5IGF0IHRoZSBwYXRjaCBzZXJpZXMgYW5kIHN1cnJvdW5kaW5nIGNvZGUuIEV2ZW4gaWYgbm8gZGlyZWN0XG51bmluaXRpYWxpemVkIGZpZWxkIGFjY2Vzc2VzIG9yIG5ldyBidWZmZXIgYWxsb2NhdGlvbnMgYXJlIGFkZGVkIGluIHRoZSBkaWZmIGl0c2VsZixcbmEgcGF0Y2ggbWF5IGFsdGVyIGNvbnRyb2wgZmxvdywgYm91bmRzIGNoZWNraW5nLCBvciBkYXRhIGxlbmd0aCBjYWxjdWxhdGlvbnMgaW4gd2F5c1xudGhhdCBjaGFuZ2UgaG93IHRoZSByZXN0IG9mIHRoZSBjb2RlIG9wZXJhdGVzIG9uIGV4aXN0aW5nIGJ1ZmZlcnMgKGUuZy4gYWxsb3dpbmdcbnVuaW5pdGlhbGl6ZWQgc3RhY2svaGVhcCBtZW1vcnkgdG8gYmUgcmVhZCwgY29waWVkIHRvIHVzZXIgc3BhY2UsIG9yIHVzZWQgaW4gY29udHJvbFxuZmxvdykuIERvIG5vdCBoZXNpdGF0ZSB0byB1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlLFxuY2FsbGVkIGZ1bmN0aW9ucywgYW5kIGNhbGxlcnMuXG5cblNldCBOZWVkc0tNU0FOPXRydWUgT05MWSBJRiB0aGUgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllczpcbjEuIEtlcm5lbCBzdHJ1Y3R1cmVzIHNlbnQgdG8gdXNlciBzcGFjZSAodmlhIGNvcHlfdG9fdXNlciwgcHV0X3VzZXIsIG5ldGxpbmsgc2tiXG4gICBhdHRyaWJ1dGVzLCBpb2N0bCBvdXRwdXQgYXJndW1lbnRzLCBzb2NrZXQgb3B0aW9ucywgb3IgQlBGIGJ1ZmZlcnMpIHdoZXJlIGZpZWxkc1xuICAgb3Igc3RydWN0dXJlIHBhZGRpbmcgbWlnaHQgbm90IGJlIGZ1bGx5IGluaXRpYWxpemVkL3plcm9lZC5cbjIuIENvbmRpdGlvbmFsIGxvZ2ljIG9yIGJyYW5jaGluZyB0aGF0IGRlcGVuZHMgb24gcG90ZW50aWFsbHkgdW5pbml0aWFsaXplZCB2YXJpYWJsZXNcbiAgIG9yIHN0cnVjdCBmaWVsZHMuXG4zLiBBbGxvY2F0aW9uIG9yIGluaXRpYWxpemF0aW9uIG9mIGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIHdoZXJlIHVuaW5pdGlhbGl6ZWQgZmllbGRzXG4gICBjb3VsZCBiZSByZWFkIGxhdGVyIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLlxuNC4gQm91bmRzIGNoZWNrcywgbGVuZ3Rocywgb3IgbG9naWMgaW4gYSB3YXkgdGhhdCBhbGxvd3Mgc3Vycm91bmRpbmcgY29kZSB0byBhY2Nlc3NcbiAgIHVuaW5pdGlhbGl6ZWQgYnl0ZXMgb2YgZXhpc3RpbmcgYnVmZmVycy5cblxuU2V0IE5lZWRzS01TQU49ZmFsc2UgSUY6XG4tIFRoZSBjb2RlIGNoYW5nZXMgcHJpbWFyaWx5IHJpc2sgb3V0LW9mLWJvdW5kcyBhY2Nlc3MsIGFycmF5IG92ZXJmbG93cywgTlVMTCBwb2ludGVyXG4gIGRlcmVmZXJlbmNlcywgbG9ja2luZyBkZWFkbG9ja3MsIG9yIHVzZS1hZnRlci1mcmVlIGJ1Z3MgKHRoZXNlIGFyZSBhbHJlYWR5IGNhdWdodFxuICBieSBLQVNBTiwgTE9DS0RFUCwgb3Igc3RhbmRhcmQgYnVnIGRldGVjdG9ycykuXG4tIEFsbCBzdGFjay9oZWFwIHN0cnVjdHVyZXMgdG91Y2hlZCBvciBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBhcmUgZnVsbHkgemVyb2VkXG4gIG9yIGluaXRpYWxpemVkIChlLmcuIHVzaW5nID0gezB9LCBtZW1zZXQsIGt6YWxsb2MpIGJlZm9yZSBiZWluZyByZWFkIG9yIGNvcGllZC5cbi0gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBhbnkgcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzLlxuXG5Vc2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlIGlmIG5lY2Vzc2FyeSwgdGhlbiBwcm92aWRlXG5kZXRhaWxlZCBLTVNBTlJlYXNvbmluZyBjb250cmFzdGluZyBLQVNBTiB2cyBLTVNBTiBhcHBsaWNhYmlsaXR5IGZvciB0aGlzIHBhdGNoLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZmFmOWI2MmE5MDE1ODBiZDEyYmQ0N2M4ZGU4ODMzMDljOWQ2YjY2ZVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gQXVnIDI0IDA2OjQ4OjA0IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL21lc2guYyBiL25ldC9tYWM4MDIxMS9tZXNoLmNcbmluZGV4IGQ0NTA3ZTRlNmVjMTYuLjkzOGZhZDgxMjk1NzcgMTAwNjQ0XG4tLS0gYS9uZXQvbWFjODAyMTEvbWVzaC5jXG4rKysgYi9uZXQvbWFjODAyMTEvbWVzaC5jXG5AQCAtMTIwMSw2ICsxMjAxLDcgQEAgdm9pZCBpZWVlODAyMTFfc3RvcF9tZXNoKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxuIFx0c3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwgPSBzZGF0YS1cdTAwM2Vsb2NhbDtcbiBcdHN0cnVjdCBpZWVlODAyMTFfaWZfbWVzaCAqaWZtc2ggPSBcdTAwMjZzZGF0YS1cdTAwM2V1Lm1lc2g7XG4gXHRzdHJ1Y3QgYmVhY29uX2RhdGEgKmJjbjtcbitcdHN0cnVjdCBtZXNoX2NzYV9zZXR0aW5ncyAqY3NhO1xuIFxuIFx0bmV0aWZfY2Fycmllcl9vZmYoc2RhdGEtXHUwMDNlZGV2KTtcbiBcbkBAIC0xMjIyLDYgKzEyMjMsMTMgQEAgdm9pZCBpZWVlODAyMTFfc3RvcF9tZXNoKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxuIFx0UkNVX0lOSVRfUE9JTlRFUihpZm1zaC1cdTAwM2ViZWFjb24sIE5VTEwpO1xuIFx0a2ZyZWVfcmN1KGJjbiwgcmN1X2hlYWQpO1xuIFxuK1x0LyogZnJlZSBhbnkgcGVuZGluZywgdW5maW5pc2hlZCBjaGFubmVsIHN3aXRjaCAqL1xuK1x0Y3NhID0gc2RhdGFfZGVyZWZlcmVuY2UoaWZtc2gtXHUwMDNlY3NhLCBzZGF0YSk7XG4rXHRpZiAoY3NhKSB7XG4rXHRcdFJDVV9JTklUX1BPSU5URVIoaWZtc2gtXHUwMDNlY3NhLCBOVUxMKTtcbitcdFx0a2ZyZWVfcmN1KGNzYSwgcmN1X2hlYWQpO1xuK1x0fVxuK1xuIFx0LyogZnJlZSBhbGwgcG90ZW50aWFsbHkgc3RpbGwgYnVmZmVyZWQgZ3JvdXAtYWRkcmVzc2VkIGZyYW1lcyAqL1xuIFx0bG9jYWwtXHUwMDNldG90YWxfcHNfYnVmZmVyZWQgLT0gc2tiX3F1ZXVlX2xlbihcdTAwMjZpZm1zaC1cdTAwM2Vwcy5iY19idWYpO1xuIFx0c2tiX3F1ZXVlX3B1cmdlKFx1MDAyNmlmbXNoLVx1MDAzZXBzLmJjX2J1Zik7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwNjo0ODo0My41NzYxMjQ4MjlaIiwiU2VxIjoxMywiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTAyOTgxNDA2NTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIE1hYzgwMjExIE1lc2ggQ2hhbm5lbCBTd2l0Y2ggUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGp1c3QgcmV2aWV3ZWQgdGhpcyBwYXRjaCB0aGF0IHRvdWNoZXMgYG5ldC9tYWM4MDIxMS9tZXNoLmNgLiBNeSBpbml0aWFsIG9ic2VydmF0aW9uIGlzIHRoYXQgaXQncyBmb2N1c2luZyBvbiBgaWVlZTgwMjExX3N0b3BfbWVzaGAsIGFuZCBpdCdzIHF1aXRlIHN0cmFpZ2h0Zm9yd2FyZDogdGhlIGNoYW5nZSBhZGRzIGNvZGUgdG8gZnJlZSBhIHBlbmRpbmcsIHVuZmluaXNoZWQgY2hhbm5lbCBzd2l0Y2gsIHNwZWNpZmljYWxseSBieSBmcmVlaW5nIGBpZm1zaC1cdTAwM2Vjc2FgIHVzaW5nIGBrZnJlZV9yY3VgLiBUaGUgc25pcHBldCBtYWtlcyBpdCBjbGVhcjsgaXQgbG9va3MgbGlrZSB0aGlzIGlzIGEgc29saWQgbWVtb3J5IGxlYWsgb3IgdXNlLWFmdGVyLWZyZWUgYnVnIGZpeC5cblxuTm93LCBsZXQncyB0aGluayBhYm91dCB0aGUgaW1wbGljYXRpb25zLiBXZSdyZSAqcmVsZWFzaW5nKiBtZW1vcnkgdGhhdCB3YXMgcHJldmlvdXNseSBhbGxvY2F0ZWQsIGFzIGl0IHNob3VsZCBiZSwgaW5zdGVhZCBvZiBpbnRyb2R1Y2luZyBuZXcgbWVtb3J5IGlzc3Vlcy4gU2luY2UgdGhlIHBhdGNoIHVzZXMgYGtmcmVlX3JjdWAsIHdoaWNoIGlzIHN0YW5kYXJkLCBhbmQgd2UncmUgKmRlYWxsb2NhdGluZyogYW4gZXhpc3RpbmcgcG9pbnRlciwgdGhlIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugc2VlbXMgbmVnbGlnaWJsZS4gVGhpcyBwYXRjaCBzaW1wbHkgY2xlYW5zIHVwIGEgcG9pbnRlciwgYXZvaWRpbmcgdGhlIG1lbW9yeSBsZWFrIG9yIHBvc3NpYmxlIHVzZS1hZnRlci1mcmVlLlxuXG5NeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgS0FTQU4gKG9yIEtNRU1MRUFLKSB3b3VsZCBiZSB0aGUgaWRlYWwgdG9vbCB0byBkZXRlY3QgdXNlLWFmdGVyLWZyZWUgb3IgbWVtb3J5IGxlYWtzLCB3aGVyZWFzIEtNU0FOIGlzIGZvciB1bmluaXRpYWxpemVkIG1lbW9yeSBpc3N1ZXMuIFNpbmNlIHdlJ3JlIG5vdCBkZWFsaW5nIHdpdGggdW5pbml0aWFsaXplZCBtZW1vcnkgaGVyZSwgXCJOZWVkc0tNU0FOXCIgc2hvdWxkIGRlZmluaXRlbHkgYmUgc2V0IHRvIGZhbHNlLlxuXG5UbyBiZSBhYnNvbHV0ZWx5IHN1cmUsIEkndmUganVzdCBkb25lIGEgcXVpY2sgZG91YmxlLWNoZWNrLiBUaGVyZSBhcmUgbm8gbmV3IHN0cnVjdHVyZXMgYmVpbmcgYWxsb2NhdGVkLCBubyBuZXcgZmllbGRzIGludHJvZHVjZWQsIGFuZCBubyBjb25kaXRpb25hbCBsb2dpYyB0aGF0IGRlcGVuZHMgb24gdW5pbml0aWFsaXplZCB2YXJpYWJsZXMuIFdlJ3JlIGp1c3QgZGVyZWZlcmVuY2luZyBhIHBvaW50ZXIgYW5kIHVzaW5nIGBrZnJlZV9yY3VgLiBTbywgSSdtIGNvbmZpZGVudCBpbiBteSBhc3Nlc3NtZW50LCBhbmQgSSB3aWxsIHNldCBOZWVkc0tNU0FOID0gZmFsc2UuIFRoZSBqdXN0aWZpY2F0aW9uIGlzIHRoYXQgdGhpcyBwYXRjaCBhZGRyZXNzZXMgbWVtb3J5IG1hbmFnZW1lbnQgYnkgZnJlZWluZyBhIHByZXZpb3VzbHkgYWxsb2NhdGVkIHBvaW50ZXIsIGFuZCBkb2VzIG5vdCBpbnRyb2R1Y2Ugb3IgdXNlIGFueSB1bmluaXRpYWxpemVkIG1lbW9yeS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjI0OSwiT3V0cHV0VG9rZW5zIjoxMTUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMjMsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwNjo0ODo1My44NzQyNjg4NzRaIiwiU2VxIjoxNCwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzg2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIG1lbW9yeSBsZWFrIG9yIHVzZS1hZnRlci1mcmVlIGJ5IGZyZWVpbmcgYSBwZW5kaW5nIGNoYW5uZWwgc3dpdGNoIHN0cnVjdHVyZSAoYGlmbXNoLVxcdTAwM2Vjc2FgKSB3aGVuIHN0b3BwaW5nIHRoZSBtZXNoIGludGVyZmFjZS4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgYWxsb2NhdGlvbnMsIGNvcHkgZGF0YSB0byB1c2VyIHNwYWNlLCBvciBhZGQgbG9naWMgdGhhdCBjb3VsZCBkZXBlbmQgb24gdW5pbml0aWFsaXplZCBtZW1vcnkuIEFueSBpc3N1ZXMgcmVsYXRlZCB0byB0aGlzIGNoYW5nZSAoc3VjaCBhcyBkb3VibGUgZnJlZSBvciB1c2UtYWZ0ZXItZnJlZSkgd291bGQgYmUgY2F1Z2h0IGJ5IEtBU0FOLCBub3QgS01TQU4uXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgbWVtb3J5IGxlYWsgb3IgdXNlLWFmdGVyLWZyZWUgYnkgZnJlZWluZyBhIHBlbmRpbmcgY2hhbm5lbCBzd2l0Y2ggc3RydWN0dXJlIChgaWZtc2gtXFx1MDAzZWNzYWApIHdoZW4gc3RvcHBpbmcgdGhlIG1lc2ggaW50ZXJmYWNlLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBhbGxvY2F0aW9ucywgY29weSBkYXRhIHRvIHVzZXIgc3BhY2UsIG9yIGFkZCBsb2dpYyB0aGF0IGNvdWxkIGRlcGVuZCBvbiB1bmluaXRpYWxpemVkIG1lbW9yeS4gQW55IGlzc3VlcyByZWxhdGVkIHRvIHRoaXMgY2hhbmdlIChzdWNoIGFzIGRvdWJsZSBmcmVlIG9yIHVzZS1hZnRlci1mcmVlKSB3b3VsZCBiZSBjYXVnaHQgYnkgS0FTQU4sIG5vdCBLTVNBTi5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflown6gmx[1] Phase: Succeeded StartedAt: 2026-08-24 06:49:05 +0000 UTC FinishedAt: 2026-08-24 06:49:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflown6gmx[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-24 06:49:05 +0000 UTC FinishedAt: 2026-08-24 06:49:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflown6gmx[2] Phase: Succeeded StartedAt: 2026-08-24 06:49:05 +0000 UTC FinishedAt: 2026-08-24 10:28:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflown6gmx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_stop_mesh"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-24 06:49:05 +0000 UTC FinishedAt: 2026-08-24 10:28:03 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_stop_mesh"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflown6gmx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_stop_mesh"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-24 06:49:05 +0000 UTC FinishedAt: 2026-08-24 06:49:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflown6gmx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_stop_mesh"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-24 06:49:05 +0000 UTC FinishedAt: 2026-08-24 06:49:10 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflown6gmx/series-workflown6gmx-convert-artifact-4207344295/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflown6gmx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_stop_mesh"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-24 06:49:15 +0000 UTC FinishedAt: 2026-08-24 07:05:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflown6gmx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_stop_mesh"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-24 06:49:15 +0000 UTC FinishedAt: 2026-08-24 07:05:25 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*036edff4-e2f8-4e18-965a-386bf9455636,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-workflown6gmx/series-workflown6gmx-convert-artifact-4207344295/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": "d3299c2c-884b-4060-8c03-93eaea269ec6", "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-workflown6gmx/series-workflown6gmx-build-action-3384756797/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflown6gmx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_stop_mesh"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-24 06:49:15 +0000 UTC FinishedAt: 2026-08-24 07:05:15 +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:*036edff4-e2f8-4e18-965a-386bf9455636,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-workflown6gmx/series-workflown6gmx-convert-artifact-4207344295/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": "d3299c2c-884b-4060-8c03-93eaea269ec6", "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-workflown6gmx/series-workflown6gmx-build-action-3384756797/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflown6gmx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_stop_mesh"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-24 07:05:25 +0000 UTC FinishedAt: 2026-08-24 07:05:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflown6gmx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_stop_mesh"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-24 07:05:25 +0000 UTC FinishedAt: 2026-08-24 07:05:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflown6gmx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_stop_mesh"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-24 07:05:25 +0000 UTC FinishedAt: 2026-08-24 07:05:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflown6gmx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_stop_mesh"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-24 07:05:25 +0000 UTC FinishedAt: 2026-08-24 07:05:29 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflown6gmx/series-workflown6gmx-convert-artifact-3297964374/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflown6gmx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_stop_mesh"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-24 07:05:35 +0000 UTC FinishedAt: 2026-08-24 07:07:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflown6gmx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_stop_mesh"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-24 07:05:35 +0000 UTC FinishedAt: 2026-08-24 07:07:45 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*d3299c2c-884b-4060-8c03-93eaea269ec6,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-workflown6gmx/series-workflown6gmx-build-action-3384756797/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-workflown6gmx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_stop_mesh"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-24 07:07:55 +0000 UTC FinishedAt: 2026-08-24 07:07:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflown6gmx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_stop_mesh"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-24 07:07:55 +0000 UTC FinishedAt: 2026-08-24 07:07:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflown6gmx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_stop_mesh"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-24 07:07:55 +0000 UTC FinishedAt: 2026-08-24 07:24:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflown6gmx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_stop_mesh"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-24 07:07:55 +0000 UTC FinishedAt: 2026-08-24 07:24:03 +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:*036edff4-e2f8-4e18-965a-386bf9455636,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-workflown6gmx/series-workflown6gmx-convert-artifact-3297964374/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": "f5be51b9-b035-430a-8615-b15c02bba677", "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-workflown6gmx/series-workflown6gmx-build-action-4115109722/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflown6gmx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_stop_mesh"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-24 07:07:55 +0000 UTC FinishedAt: 2026-08-24 07:23:53 +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:*036edff4-e2f8-4e18-965a-386bf9455636,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-workflown6gmx/series-workflown6gmx-convert-artifact-3297964374/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": "f5be51b9-b035-430a-8615-b15c02bba677", "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-workflown6gmx/series-workflown6gmx-build-action-4115109722/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflown6gmx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_stop_mesh"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-24 07:24:03 +0000 UTC FinishedAt: 2026-08-24 07:24:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflown6gmx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_stop_mesh"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-24 07:24:03 +0000 UTC FinishedAt: 2026-08-24 07:24:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflown6gmx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_stop_mesh"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-24 07:24:03 +0000 UTC FinishedAt: 2026-08-24 07:26:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflown6gmx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_stop_mesh"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-24 07:24:03 +0000 UTC FinishedAt: 2026-08-24 07:26:13 +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:*f5be51b9-b035-430a-8615-b15c02bba677,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-workflown6gmx/series-workflown6gmx-build-action-4115109722/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-workflown6gmx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_stop_mesh"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-24 07:26:23 +0000 UTC FinishedAt: 2026-08-24 10:28:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflown6gmx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_stop_mesh"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-24 07:26:23 +0000 UTC FinishedAt: 2026-08-24 10:28:03 +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_stop_mesh"],"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:*d3299c2c-884b-4060-8c03-93eaea269ec6,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*f5be51b9-b035-430a-8615-b15c02bba677,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-workflown6gmx/series-workflown6gmx-build-action-3384756797/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-workflown6gmx/series-workflown6gmx-build-action-4115109722/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflown6gmx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_stop_mesh"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-24 07:26:23 +0000 UTC FinishedAt: 2026-08-24 07:26:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflown6gmx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_stop_mesh"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-24 07:26:23 +0000 UTC FinishedAt: 2026-08-24 07:26:28 +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_stop_mesh"],"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-workflown6gmx/series-workflown6gmx-convert-artifact-2262065659/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflown6gmx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_stop_mesh"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-24 07:26:23 +0000 UTC FinishedAt: 2026-08-24 07:26:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflown6gmx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_stop_mesh"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-24 07:26:23 +0000 UTC FinishedAt: 2026-08-24 07:26:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflown6gmx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_stop_mesh"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-24 07:26:23 +0000 UTC FinishedAt: 2026-08-24 07:26:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflown6gmx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_stop_mesh"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-24 07:26:33 +0000 UTC FinishedAt: 2026-08-24 10:28:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflown6gmx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_stop_mesh"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211_MESH"],"series_id":"cf476a99-cf06-4797-ba1e-9dad6056bd6b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-24 07:26:33 +0000 UTC FinishedAt: 2026-08-24 10:27:54 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*d3299c2c-884b-4060-8c03-93eaea269ec6,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*f5be51b9-b035-430a-8615-b15c02bba677,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-workflown6gmx/series-workflown6gmx-build-action-3384756797/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-workflown6gmx/series-workflown6gmx-build-action-4115109722/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-workflown6gmx/series-workflown6gmx-convert-artifact-2262065659/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,}