Name: series-workflowrbph2 Phase: Succeeded StartedAt: 2026-08-26 09:35:10 +0000 UTC FinishedAt: 2026-08-26 10:47:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrbph2[0] Phase: Succeeded StartedAt: 2026-08-26 09:35:10 +0000 UTC FinishedAt: 2026-08-26 10:03:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrbph2[0].run-triage Phase: Succeeded StartedAt: 2026-08-26 09:35:10 +0000 UTC FinishedAt: 2026-08-26 10:03:18 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "881dc9dd66d2367e7fe1be0f953a8837cb3b26a9", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MT7925U", "MAC80211", "USB" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "881dc9dd66d2367e7fe1be0f953a8837cb3b26a9", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MT7925U", "MAC80211", "USB" ], "series_id": "bf6e6a40-889e-4fe0-987f-c2fed945fb0f" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "mt7925_configure_filter", "mt7925_mcu_config_sniffer" ], "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+CgkJCTx0ZD4yMDI2LzA4LzI2IDA5OjQ5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MTNtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNVDc5MjVVJiMzNDssCiAgICAmIzM0O01BQzgwMjExJiMzNDssCiAgICAmIzM0O1VTQiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O210NzkyNV9jb25maWd1cmVfZmlsdGVyJiMzNDssCiAgICAmIzM0O210NzkyNV9tY3VfY29uZmlnX3NuaWZmZXImIzM0OwogIF0sCiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGZpZWxkIGByeGZpbHRlcmAgdG8gYHN0cnVjdCBtdDc5MnhfcGh5YCB0byBzdG9yZSB0aGUgUlggZmlsdGVyIGZsYWdzLiBUaGlzIHN0cnVjdHVyZSBpcyBlbWJlZGRlZCBpbiBgc3RydWN0IG10NzkyeF9kZXZgLCB3aGljaCBpcyBhbGxvY2F0ZWQgdmlhIGBtdDc2X2FsbG9jX2RldmljZWAgLVx1MDAzZSBgaWVlZTgwMjExX2FsbG9jX2h3YCAtXHUwMDNlIGB3aXBoeV9uZXdfbm1gIHVzaW5nIGBremFsbG9jYC4gVGh1cywgdGhlIG5ldyBmaWVsZCBpcyBmdWxseSB6ZXJvLWluaXRpYWxpemVkIHVwb24gYWxsb2NhdGlvbi4gVGhlIHBhdGNoIHRoZW4gd3JpdGVzIHRvIHRoaXMgZmllbGQgaW4gYG10NzkyNV9jb25maWd1cmVfZmlsdGVyYCBhbmQgcmVhZHMgZnJvbSBpdCBpbiBgbXQ3OTI1X21jdV9jb25maWdfc25pZmZlcmAgdG8gY29uZGl0aW9uYWxseSBzZXQgdGhlIGBkcm9wX2VycmAgZmxhZyBpbiBhIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24gcmVxdWVzdC4gVGhlcmUgYXJlIG5vIG5ldyBhbGxvY2F0aW9ucywgbm8gc3RydWN0dXJlcyBjb3BpZWQgdG8gdXNlciBzcGFjZSwgYW5kIG5vIGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIHdoZXJlIHVuaW5pdGlhbGl6ZWQgZmllbGRzIGNvdWxkIGJlIHJlYWQuIEFueSBwb3RlbnRpYWwgYnVncyBpbnRyb2R1Y2VkIGJ5IHRoaXMgcGF0Y2ggd291bGQgYmUgcmVsYXRlZCB0byBpbmNvcnJlY3QgbG9naWMgb3Igb3V0LW9mLWJvdW5kcyBhY2Nlc3MsIHdoaWNoIGFyZSB3ZWxsLWNvdmVyZWQgYnkgc3RhbmRhcmQgS0FTQU4gYW5kIG90aGVyIGJ1ZyBkZXRlY3RvcnMuIFRoZXJlIGlzIG5vIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcyB0aGF0IHdvdWxkIHJlcXVpcmUgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVkaWF0ZWsgTVQ3OTI1IHdpcmVsZXNzIGRyaXZlciB0byBjb25maWd1cmUgdGhlIHNuaWZmZXImIzM5O3MgZHJvcF9lcnIgZmxhZyBiYXNlZCBvbiB0aGUgcnhmaWx0ZXIgc2V0dGluZ3MuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZHJpdmVyJiMzOTtzIG1hYzgwMjExIGNhbGxiYWNrcy4gVGhlIGRyaXZlciBoYXMgYSBVU0IgdmFyaWFudCAobXQ3OTI1dSkgd2hpY2ggY2FuIGJlIGZ1enplZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIFVTQiBlbXVsYXRpb24gKHN5el91c2JfY29ubmVjdCkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjYgMDk6NDk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA4ZGQ4ZTg4NGQzYTgzNjY1ZDcwNzI3MGI4ZDcxODVhNDZiMzQ4YmM0XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBBdWcgMjYgMDk6NDk6MzcgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jXG5pbmRleCBhOTA1OTg2NmI3MDE2Li5jZmJmZDc3ZTg5MGZiIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmNcbkBAIC04MzIsMTEgJiM0Mzs4MzIsOCBAQCBzdGF0aWMgdm9pZCBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbiBcdFx0XHRcdCAgICB1bnNpZ25lZCBpbnQgKnRvdGFsX2ZsYWdzLFxuIFx0XHRcdFx0ICAgIHU2NCBtdWx0aWNhc3QpXG4ge1xuLSNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9GQ1NGQUlMICAgIEJJVCgyKVxuLSNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9DT05UUk9MICAgIEJJVCg1KVxuLSNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9PVEhFUl9CU1MgIEJJVCg2KVxuLSNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9FTkFCTEUgICAgIEJJVCgzMSlcbiBcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcbiYjNDM7XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG4gXHR1MzIgZmxhZ3MgPSBNVDc5MjVfRklMVEVSX0VOQUJMRTtcbiBcbiAjZGVmaW5lIE1UNzkyNV9GSUxURVIoX2ZpZiwgX3R5cGUpIGRvIHtcdFx0XHRcXFxuQEAgLTg0OCw2ICYjNDM7ODQ1LDggQEAgc3RhdGljIHZvaWQgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXIoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4gXHRNVDc5MjVfRklMVEVSKEZJRl9DT05UUk9MLCBDT05UUk9MKTtcbiBcdE1UNzkyNV9GSUxURVIoRklGX09USEVSX0JTUywgT1RIRVJfQlNTKTtcbiBcbiYjNDM7XHRwaHktXHUwMDNlcnhmaWx0ZXIgPSBmbGFncztcbiYjNDM7XG4gXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuIFx0bXQ3OTI1X21jdV9zZXRfcnhmaWx0ZXIoZGV2LCBmbGFncywgMCwgMCk7XG4gXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmNcbmluZGV4IGU5NGZhNTQ0ZmYyMDcuLmFkYzEzN2EwZTZiNGQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmNcbkBAIC0yMjUxLDcgJiM0MzsyMjUxLDcgQEAgaW50IG10NzkyNV9tY3VfY29uZmlnX3NuaWZmZXIoc3RydWN0IG10NzkyeF92aWYgKnZpZixcbiBcdFx0XHQubGVuID0gY3B1X3RvX2xlMTYoc2l6ZW9mKHJlcS50bHYpKSxcbiBcdFx0XHQuY29udHJvbF9jaCA9IGNoYW5kZWYtXHUwMDNlY2hhbi1cdTAwM2Vod192YWx1ZSxcbiBcdFx0XHQuY2VudGVyX2NoID0gaWVlZTgwMjExX2ZyZXF1ZW5jeV90b19jaGFubmVsKGZyZXExKSxcbi1cdFx0XHQuZHJvcF9lcnIgPSAxLFxuJiM0MztcdFx0XHQuZHJvcF9lcnIgPSAhKHZpZi1cdTAwM2VwaHktXHUwMDNlcnhmaWx0ZXIgXHUwMDI2IE1UNzkyNV9GSUxURVJfRkNTRkFJTCksXG4gXHRcdH0sXG4gXHR9O1xuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L210NzkyNS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbXQ3OTI1LmhcbmluZGV4IDRjYzI1OTQxOGFmY2EuLjhmYjhhNGMxMzE2ZTAgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tdDc5MjUuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbXQ3OTI1LmhcbkBAIC03LDYgJiM0Mzs3LDExIEBAXG4gI2luY2x1ZGUgXCYjMzQ7Li4vbXQ3OTJ4LmhcJiMzNDtcbiAjaW5jbHVkZSBcJiMzNDtyZWdzLmhcJiMzNDtcbiBcbiYjNDM7I2RlZmluZSBNVDc5MjVfRklMVEVSX0ZDU0ZBSUxcdFx0QklUKDIpXG4mIzQzOyNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9DT05UUk9MXHRcdEJJVCg1KVxuJiM0MzsjZGVmaW5lIE1UNzkyNV9GSUxURVJfT1RIRVJfQlNTXHRCSVQoNilcbiYjNDM7I2RlZmluZSBNVDc5MjVfRklMVEVSX0VOQUJMRVx0XHRCSVQoMzEpXG4mIzQzO1xuICNkZWZpbmUgTVQ3OTI1X0JFQUNPTl9SQVRFU19UQkxcdFx0MjVcbiBcbiAjZGVmaW5lIE1UNzkyNV9UWF9SSU5HX1NJWkVcdFx0MjA0OFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4LmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oXG5pbmRleCA3MDA3M2I0M2FmNTQzLi43NWQzMmE0YWRkZDcxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaFxuQEAgLTE2OCw2ICYjNDM7MTY4LDcgQEAgc3RydWN0IG10NzkyeF9waHkge1xuIFx0czE2IGNvdmVyYWdlX2NsYXNzO1xuIFx0dTggc2xvdHRpbWU7XG4gXG4mIzQzO1x0dTMyIHJ4ZmlsdGVyO1xuIFx0dTMyIHJ4X2FtcGR1X3RzO1xuIFx0dTMyIGFtcGR1X3JlZjtcbiBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAwOTo0OTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xMm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01UNzkyNVUmIzM0OywKICAgICYjMzQ7TUFDODAyMTEmIzM0OywKICAgICYjMzQ7VVNCJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXImIzM0OywKICAgICYjMzQ7bXQ3OTI1X21jdV9jb25maWdfc25pZmZlciYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVkaWF0ZWsgTVQ3OTI1IHdpcmVsZXNzIGRyaXZlciB0byBjb25maWd1cmUgdGhlIHNuaWZmZXImIzM5O3MgZHJvcF9lcnIgZmxhZyBiYXNlZCBvbiB0aGUgcnhmaWx0ZXIgc2V0dGluZ3MuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZHJpdmVyJiMzOTtzIG1hYzgwMjExIGNhbGxiYWNrcy4gVGhlIGRyaXZlciBoYXMgYSBVU0IgdmFyaWFudCAobXQ3OTI1dSkgd2hpY2ggY2FuIGJlIGZ1enplZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIFVTQiBlbXVsYXRpb24gKHN5el91c2JfY29ubmVjdCkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA4ZGQ4ZTg4NGQzYTgzNjY1ZDcwNzI3MGI4ZDcxODVhNDZiMzQ4YmM0CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFdlZCBBdWcgMjYgMDk6NDk6MzcgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMKaW5kZXggYTkwNTk4NjZiNzAxNi4uY2ZiZmQ3N2U4OTBmYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYwpAQCAtODMyLDExICYjNDM7ODMyLDggQEAgc3RhdGljIHZvaWQgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXIoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsCiAJCQkJICAgIHVuc2lnbmVkIGludCAqdG90YWxfZmxhZ3MsCiAJCQkJICAgIHU2NCBtdWx0aWNhc3QpCiB7Ci0jZGVmaW5lIE1UNzkyNV9GSUxURVJfRkNTRkFJTCAgICBCSVQoMikKLSNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9DT05UUk9MICAgIEJJVCg1KQotI2RlZmluZSBNVDc5MjVfRklMVEVSX09USEVSX0JTUyAgQklUKDYpCi0jZGVmaW5lIE1UNzkyNV9GSUxURVJfRU5BQkxFICAgICBCSVQoMzEpCiAJc3RydWN0IG10NzkyeF9kZXYgKmRldiA9IG10NzkyeF9od19kZXYoaHcpOwomIzQzOwlzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7CiAJdTMyIGZsYWdzID0gTVQ3OTI1X0ZJTFRFUl9FTkFCTEU7CiAKICNkZWZpbmUgTVQ3OTI1X0ZJTFRFUihfZmlmLCBfdHlwZSkgZG8gewkJCVwKQEAgLTg0OCw2ICYjNDM7ODQ1LDggQEAgc3RhdGljIHZvaWQgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXIoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsCiAJTVQ3OTI1X0ZJTFRFUihGSUZfQ09OVFJPTCwgQ09OVFJPTCk7CiAJTVQ3OTI1X0ZJTFRFUihGSUZfT1RIRVJfQlNTLCBPVEhFUl9CU1MpOwogCiYjNDM7CXBoeS0mZ3Q7cnhmaWx0ZXIgPSBmbGFnczsKJiM0MzsKIAltdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpOwogCW10NzkyNV9tY3Vfc2V0X3J4ZmlsdGVyKGRldiwgZmxhZ3MsIDAsIDApOwogCW10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jCmluZGV4IGU5NGZhNTQ0ZmYyMDcuLmFkYzEzN2EwZTZiNGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jCkBAIC0yMjUxLDcgJiM0MzsyMjUxLDcgQEAgaW50IG10NzkyNV9tY3VfY29uZmlnX3NuaWZmZXIoc3RydWN0IG10NzkyeF92aWYgKnZpZiwKIAkJCS5sZW4gPSBjcHVfdG9fbGUxNihzaXplb2YocmVxLnRsdikpLAogCQkJLmNvbnRyb2xfY2ggPSBjaGFuZGVmLSZndDtjaGFuLSZndDtod192YWx1ZSwKIAkJCS5jZW50ZXJfY2ggPSBpZWVlODAyMTFfZnJlcXVlbmN5X3RvX2NoYW5uZWwoZnJlcTEpLAotCQkJLmRyb3BfZXJyID0gMSwKJiM0MzsJCQkuZHJvcF9lcnIgPSAhKHZpZi0mZ3Q7cGh5LSZndDtyeGZpbHRlciAmYW1wOyBNVDc5MjVfRklMVEVSX0ZDU0ZBSUwpLAogCQl9LAogCX07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L210NzkyNS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbXQ3OTI1LmgKaW5kZXggNGNjMjU5NDE4YWZjYS4uOGZiOGE0YzEzMTZlMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbXQ3OTI1LmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbXQ3OTI1LmgKQEAgLTcsNiAmIzQzOzcsMTEgQEAKICNpbmNsdWRlICYjMzQ7Li4vbXQ3OTJ4LmgmIzM0OwogI2luY2x1ZGUgJiMzNDtyZWdzLmgmIzM0OwogCiYjNDM7I2RlZmluZSBNVDc5MjVfRklMVEVSX0ZDU0ZBSUwJCUJJVCgyKQomIzQzOyNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9DT05UUk9MCQlCSVQoNSkKJiM0MzsjZGVmaW5lIE1UNzkyNV9GSUxURVJfT1RIRVJfQlNTCUJJVCg2KQomIzQzOyNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9FTkFCTEUJCUJJVCgzMSkKJiM0MzsKICNkZWZpbmUgTVQ3OTI1X0JFQUNPTl9SQVRFU19UQkwJCTI1CiAKICNkZWZpbmUgTVQ3OTI1X1RYX1JJTkdfU0laRQkJMjA0OApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4LmgKaW5kZXggNzAwNzNiNDNhZjU0My4uNzVkMzJhNGFkZGQ3MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oCkBAIC0xNjgsNiAmIzQzOzE2OCw3IEBAIHN0cnVjdCBtdDc5MnhfcGh5IHsKIAlzMTYgY292ZXJhZ2VfY2xhc3M7CiAJdTggc2xvdHRpbWU7CiAKJiM0MzsJdTMyIHJ4ZmlsdGVyOwogCXUzMiByeF9hbXBkdV90czsKIAl1MzIgYW1wZHVfcmVmOwogCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDA5OjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMxMDkKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAzODcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgVGhpcyBXaS1GaSBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCYjMzk7cyB0b3VjaGluZyBhIGZldyBmaWxlcyByZWxhdGVkIHRvIHRoZSBNZWRpYXRlayBNVDc5MjUgd2lyZWxlc3MgZHJpdmVyOiBgbWFpbi5jYCwgYG1jdS5jYCwgYG10NzkyNS5oYCwgYW5kIGBtdDc5MnguaGAuIFRoZSBjb3JlIG9mIHRoZSBjaGFuZ2Ugc2VlbXMgdG8gYmUgYWJvdXQgbW92aW5nIHNvbWUgYCNkZWZpbmVgIHN0YXRlbWVudHMgdG8gYSBoZWFkZXIgZmlsZSwgYWRkaW5nIGFuIGByeGZpbHRlcmAgZmllbGQgdG8gdGhlIGBtdDc5MnhfcGh5YCBzdHJ1Y3QsIGFuZCB0aGVuIHVzaW5nIHRoYXQgbmV3IGZpbHRlciBpbiBhIGNvdXBsZSBvZiBwbGFjZXMuIFNwZWNpZmljYWxseSwgaXQmIzM5O3Mgc2V0dGluZyBgcGh5LSZndDtyeGZpbHRlciA9IGZsYWdzO2AgaW4gYG10NzkyNV9jb25maWd1cmVfZmlsdGVyYCwgYW5kIGxldmVyYWdpbmcgdGhlIGZpbHRlciBpbiBgbXQ3OTI1X21jdV9jb25maWdfc25pZmZlcmAsIHdoZXJlIGl0JiMzOTtzIHVzaW5nIHRoZSBmaWx0ZXIgdG8gc2VsZWN0aXZlbHkgZHJvcCBwYWNrZXRzOiBgLmRyb3BfZXJyID0gISh2aWYtJmd0O3BoeS0mZ3Q7cnhmaWx0ZXIgJmFtcDsgTVQ3OTI1X0ZJTFRFUl9GQ1NGQUlMKWAuCgpOb3csIHRoZSBpbXBvcnRhbnQgcXVlc3Rpb24gaXM6IHdoYXQga2luZCBvZiB0YXJnZXQgZGV2aWNlIGFtIEkgZGVhbGluZyB3aXRoIGhlcmU/IFRoaXMgZHJpdmVyIGlzIGZvciB0aGUgTVQ3OTI1LCB3aGljaCwgZ2l2ZW4gbXkgZXhwZXJpZW5jZSB3aXRoIHRoZSBgbXQ3NmAgZmFtaWx5LCBpcyBhbG1vc3QgY2VydGFpbmx5IGEgcGh5c2ljYWwgaGFyZHdhcmUgZHJpdmVyLCBsaWtlbHkgUENJZSBvciBVU0IuIEkgZG91YnQgaXQgd291bGQgYmUgYSBwdXJlbHkgc29mdHdhcmUtYmFzZWQgV2ktRmkgc3RhY2suIFNvLCB0aGUgcXVlc3Rpb24gaXMsIGNhbiB0aGlzIGJlIGVtdWxhdGVkIHdpdGhpbiBRRU1VPyBJIGRvdWJ0IHRoYXQgdGhpcyBpcyBzb21ldGhpbmcgdGhhdCBoYXMgYSBnZW5lcmljIGVub3VnaCBVU0IgaW50ZXJmYWNlIHRvIGJlIGVtdWxhdGVkIGFzIGEgVVNCIGdhZGdldCwgYW5kIGVtdWxhdGluZyBhIHNwZWNpZmljIE1lZGlhdGVrIFdpLUZpIGNhcmQgaXMgbm90IHNvbWV0aGluZyBJJiMzOTt2ZSB1c3VhbGx5IHNlZW4sIHVubGVzcyB3ZSYjMzk7cmUgdGFsa2luZyBhYm91dCB2ZXJ5IGdlbmVyYWwsIHNpbXBsZSBVU0IgZGV2aWNlcy4gSXQmIzM5O3Mgbm90IGxpa2UgYG1hYzgwMjExX2h3c2ltYCwgd2hpY2ggcHJvdmlkZXMgYSBnZW5lcmFsIFdpLUZpIGVtdWxhdGlvbi4KCkkgbmVlZCB0byBjb25maXJtIHdoZXRoZXIgdGhpcyBkcml2ZXIgaXMgZm9yIGEgUENJIG9yIFVTQiBkZXZpY2UsIGFuZCBJJiMzOTtsbCB1c2UgYGdyZXBwZXJgIHRvIHNlZSBpZiB0aGVyZSBpcyBhbnkgaW5kaWNhdGlvbiBvZiBpdCBiZWluZyBlaXRoZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjYgMDk6NDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTI1JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAzMTkxIGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9NYWtlZmlsZS0yLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfTVQ3OTI1X0NPTU1PTikgJiM0Mzs9IG10NzkyNS1jb21tb24ub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGU6NDpvYmotJChDT05GSUdfTVQ3OTI1RSkgJiM0Mzs9IG10NzkyNWUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGU6NTpvYmotJChDT05GSUdfTVQ3OTI1VSkgJiM0Mzs9IG10NzkyNXUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGUtNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L01ha2VmaWxlOjc6bXQ3OTI1LWNvbW1vbi15IDo9IG1hYy5vIG1jdS5vIHJlZ2QubyBtYWluLm8gaW5pdC5vIGRlYnVnZnMub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGU6ODptdDc5MjUtY29tbW9uLSQoQ09ORklHX05MODAyMTFfVEVTVE1PREUpICYjNDM7PSB0ZXN0bW9kZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9NYWtlZmlsZTo5Om10NzkyNWUteSA6PSBwY2kubyBwY2lfbWFjLm8gcGNpX21jdS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9NYWtlZmlsZToxMDptdDc5MjV1LXkgOj0gdXNiLm9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo0OiNpbmNsdWRlIFwmIzM0O210NzkyNS5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtNS0jaW5jbHVkZSBcJiMzNDttY3UuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz03PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo4Om10NzkyNV9yZWdfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtOS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTEzLVx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNDpcdG10NzkyNV9tY3VfcmVndmFsKGRldiwgZGV2LVx1MDAzZW10NzYuZGVidWdmc19yZWcsIFx1MDAyNnJlZ3ZhbCwgdHJ1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTUtXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz0yMD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MjE6bXQ3OTI1X3JlZ19nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yNy1cdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6Mjg6XHRyZXQgPSBtdDc5MjVfbWN1X3JlZ3ZhbChkZXYsIGRldi1cdTAwM2VtdDc2LmRlYnVnZnNfcmVnLCBcdTAwMjZyZWd2YWwsIGZhbHNlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yOS1cdG10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjM2OkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3JlZ3ZhbCwgbXQ3OTI1X3JlZ19nZXQsIG10NzkyNV9yZWdfc2V0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTM3LVx0XHRcdCBcJiMzNDsweCUwOGxseFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9Mzg9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjM5Om10NzkyNV9md19kZWJ1Z19zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy00MC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTQ1LVx0ZGV2LVx1MDAzZWZ3X2RlYnVnID0gKHU4KXZhbDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo0NjpcdG10NzkyNV9tY3VfZndfbG9nXzJfaG9zdChkZXYsIGRldi1cdTAwM2Vmd19kZWJ1Zyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtNDctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jPTUzPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo1NDptdDc5MjVfZndfZGVidWdfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTU1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtNjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6NjM6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfZndfZGVidWcsIG10NzkyNV9md19kZWJ1Z19nZXQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6NjQ6XHRcdFx0IG10NzkyNV9md19kZWJ1Z19zZXQsIFwmIzM0OyVsbGRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTY1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz02OD1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjY5Om10NzkyNV9zZXFfcHV0c19hcnJheShzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgKnN0cixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy03MC1cdFx0ICAgICAgczggdmFsW11bMl0sIGludCBsZW4sIHU4IGJhbmRfaWR4KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy04Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo4MzojZGVmaW5lIG10NzkyNV9wcmludF90eHB3cl9lbnRyeShwcmVmaXgsIHJhdGUsIGlkeClcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtODQtKHtcdFx0XHRcdFx0XHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6ODU6XHRtdDc5MjVfc2VxX3B1dHNfYXJyYXkocywgI3ByZWZpeCBcJiMzNDsgKHRtYWMpXCYjMzQ7LFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy04Ni1cdFx0XHQgICAgICB0eHB3ci1cdTAwM2VyYXRlLFx0XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz05MT1zdGF0aWMgaW5saW5lIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo5MjptdDc5MjVfZWh0X3R4cHdyKHN0cnVjdCBzZXFfZmlsZSAqcywgc3RydWN0IG10NzkyNV90eHB3ciAqdHhwd3IsIHU4IGJhbmRfaWR4KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTkzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtOTctXHRcdCAgIFwmIzM0O21jczEyXCYjMzQ7LCBcJiMzNDttY3MxM1wmIzM0OywgXCYjMzQ7bWNzMTRcJiMzNDssIFwmIzM0O21jczE1XCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo5ODpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShFSFQyNiwgZWh0MjYsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo5OTpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShFSFQ1MiwgZWh0NTIsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMDA6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUMTA2LCBlaHQxMDYsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMDE6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUMjQyLCBlaHQyNDIsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMDI6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUNDg0LCBlaHQ0ODQsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xMDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTA0Olx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDk5NiwgZWh0OTk2LCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTA1Olx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDk5NngyLCBlaHQ5OTZ4MiwgYmFuZF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjEwNjpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShFSFQ5OTZ4NCwgZWh0OTk2eDQsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMDc6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUMjZfNTIsIGVodDI2XzUyLCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTA4Olx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDI2XzEwNiwgZWh0MjZfMTA2LCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTA5Olx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDQ4NF8yNDIsIGVodDQ4NF8yNDIsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMTA6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUOTk2XzQ4NCwgZWh0OTk2XzQ4NCwgYmFuZF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjExMTpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShFSFQ5OTZfNDg0XzI0MiwgZWh0OTk2XzQ4NF8yNDIsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMTI6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUOTk2eDJfNDg0LCBlaHQ5OTZ4Ml80ODQsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMTM6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUOTk2eDMsIGVodDk5NngzLCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTE0Olx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDk5NngzXzQ4NCwgZWh0OTk2eDNfNDg0LCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTE1LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MTE3PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMTg6bXQ3OTI1X3R4cHdyKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xMTkte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTEyMC1cdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBkZXZfZ2V0X2RydmRhdGEocy1cdTAwM2Vwcml2YXRlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMjE6XHRzdHJ1Y3QgbXQ3OTI1X3R4cHdyICp0eHB3ciA9IE5VTEw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTIyLVx0dTggYmFuZF9pZHggPSBkZXYtXHUwMDNlbXBoeS5iYW5kX2lkeDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTMwLVx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMzE6XHRyZXQgPSBtdDc5MjVfZ2V0X3R4cHdyX2luZm8oZGV2LCBiYW5kX2lkeCwgdHhwd3IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTEzMi1cdG10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTEzOC1cdFx0ICAgXCYjMzQ7IFwmIzM0OywgXCYjMzQ7MW1cJiMzNDssIFwmIzM0OzJtXCYjMzQ7LCBcJiMzNDs1bVwmIzM0OywgXCYjMzQ7MTFtXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMzk6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoQ0NLLCBjY2ssIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNDAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE0My1cdFx0ICAgXCYjMzQ7NDhtXCYjMzQ7LCBcJiMzNDs1NG1cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE0NDpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShPRkRNLCBvZmRtLCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTQ1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNDgtXHRcdCAgIFwmIzM0O21jczZcJiMzNDssIFwmIzM0O21jczdcJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE0OTpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShIVDIwLCBodDIwLCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTUwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNTMtXHRcdCAgIFwmIzM0O21jczZcJiMzNDssIFwmIzM0O21jczdcJiMzNDssIFwmIzM0O21jczMyXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNTQ6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoSFQ0MCwgaHQ0MCwgYmFuZF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE1NS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTU4LVx0XHQgICBcJiMzNDttY3M2XCYjMzQ7LCBcJiMzNDttY3M3XCYjMzQ7LCBcJiMzNDttY3M4XCYjMzQ7LCBcJiMzNDttY3M5XCYjMzQ7LCBcJiMzNDttY3MxMFwmIzM0OywgXCYjMzQ7bWNzMTFcJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE1OTpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShWSFQyMCwgdmh0MjAsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNjA6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoVkhUNDAsIHZodDQwLCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTYxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE2MjpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShWSFQ4MCwgdmh0ODAsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNjM6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoVkhUMTYwLCB2aHQxNjAsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTY1Olx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEhFMjYsIGhlMjYsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNjY6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoSEU1MiwgaGU1MiwgYmFuZF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE2NzpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShIRTEwNiwgaGUxMDYsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNjg6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoSEUyNDIsIGhlMjQyLCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTY5Olx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEhFNDg0LCBoZTQ4NCwgYmFuZF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNzE6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoSEU5OTYsIGhlOTk2LCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTcyOlx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEhFOTk2eDIsIGhlOTk2eDIsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTc0Olx0bXQ3OTI1X2VodF90eHB3cihzLCB0eHB3ciwgYmFuZF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE3NS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MTgxPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxODI6bXQ3OTI1X3BtX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE4My17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTIwNS1cdHBtLVx1MDAzZWVuYWJsZV91c2VyID0gdmFsO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjIwNjpcdG10NzkyNV9zZXRfcnVudGltZV9wbShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTIwNy1cdG10NzZfY29ubmFjX3Bvd2VyX3NhdmVfc2NoZWQoXHUwMDI2ZGV2LVx1MDAzZW1waHksIHBtKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MjE0PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyMTU6bXQ3OTI1X3BtX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yMTYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yMjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MjI0OkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3BtLCBtdDc5MjVfcG1fZ2V0LCBtdDc5MjVfcG1fc2V0LCBcJiMzNDslbGxkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yMjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MjI2PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyMjc6bXQ3OTI1X2RlZXBfc2xlZXBfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjI4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjQyLVx0cG0tXHUwMDNlZHNfZW5hYmxlID0gZW5hYmxlIFx1MDAyNlx1MDAyNiAhbW9uaXRvcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyNDM6XHRtdDc5MjVfbWN1X3NldF9kZWVwX3NsZWVwKGRldiwgcG0tXHUwMDNlZHNfZW5hYmxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yNDQtb3V0OlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz0yNTA9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI1MTptdDc5MjVfZGVlcF9zbGVlcF9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjUyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI2MDpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19kcywgbXQ3OTI1X2RlZXBfc2xlZXBfZ2V0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI2MTpcdFx0XHQgbXQ3OTI1X2RlZXBfc2xlZXBfc2V0LCBcJiMzNDslbGxkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yNjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MjYzPURFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3BtX2lkbGVfdGltZW91dCwgbXQ3OTJ4X3BtX2lkbGVfdGltZW91dF9nZXQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI2NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyNjY6c3RhdGljIGludCBtdDc5MjVfY2hpcF9yZXNldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI2Ny17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI3OC1cdFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyNzk6XHRcdHJldCA9IG10NzkyNV9tY3VfY2hpcF9jb25maWcoZGV2LCBcJiMzNDthc3NlcnRcJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI4MC1cdFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjg2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI4NzpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19yZXNldCwgTlVMTCwgbXQ3OTI1X2NoaXBfcmVzZXQsIFwmIzM0OyVsbGRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI4OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyODk6aW50IG10NzkyNV9pbml0X2RlYnVnZnMoc3RydWN0IG10NzkyeF9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yOTAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0zMDQtXHRkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3NlcWZpbGUoZGV2LVx1MDAzZW10NzYuZGV2LCBcJiMzNDt0eHBvd2VyX3NrdVwmIzM0OywgZGlyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjMwNTpcdFx0XHRcdCAgICBtdDc5MjVfdHhwd3IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTMwNi1cdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXCYjMzQ7dHhfc3RhdHNcJiMzNDssIDA0MDAsIGRpciwgZGV2LCBcdTAwMjZtdDc5MnhfdHhfc3RhdHNfZm9wcyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTgtI2luY2x1ZGUgXHUwMDNjbGludXgvZmlybXdhcmUuaFx1MDAzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjk6I2luY2x1ZGUgXCYjMzQ7bXQ3OTI1LmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMC0jaW5jbHVkZSBcJiMzNDtyZWdkLmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTQ6c3RhdGljIHNzaXplX3QgbXQ3OTI1X3RoZXJtYWxfdGVtcF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNS1cdFx0XHRcdFx0c3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTI0LVx0XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShtZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoyNTpcdFx0dGVtcGVyYXR1cmUgPSBtdDc5MjVfbWN1X2dldF90ZW1wZXJhdHVyZShwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTI2LVx0XHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShtZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMzYtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjM3OnN0YXRpYyBTRU5TT1JfREVWSUNFX0FUVFJfUk8odGVtcDFfaW5wdXQsIG10NzkyNV90aGVybWFsX3RlbXAsIDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTM4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjM5OnN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICptdDc5MjVfaHdtb25fYXR0cnNbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy00MC1cdFx1MDAyNnNlbnNvcl9kZXZfYXR0cl90ZW1wMV9pbnB1dC5kZXZfYXR0ci5hdHRyLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy00Mi19O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjQzOkFUVFJJQlVURV9HUk9VUFMobXQ3OTI1X2h3bW9uKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy00NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzo0NTpzdGF0aWMgaW50IG10NzkyNV90aGVybWFsX2luaXQoc3RydWN0IG10NzkyeF9waHkgKnBoeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy00Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTUzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjU0Olx0bmFtZSA9IGRldm1fa2FzcHJpbnRmKFx1MDAyNndpcGh5LVx1MDAzZWRldiwgR0ZQX0tFUk5FTCwgXCYjMzQ7bXQ3OTI1XyVzXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTU1LVx0XHRcdCAgICAgIHdpcGh5X25hbWUod2lwaHkpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtNTktXHRod21vbiA9IGRldm1faHdtb25fZGV2aWNlX3JlZ2lzdGVyX3dpdGhfZ3JvdXBzKFx1MDAyNndpcGh5LVx1MDAzZWRldiwgbmFtZSwgcGh5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjYwOlx0XHRcdFx0XHRcdCAgICAgICBtdDc5MjVfaHdtb25fZ3JvdXBzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy02MS1cdHJldHVybiBQVFJfRVJSX09SX1pFUk8oaHdtb24pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy02My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzo2NDpzdGF0aWMgdm9pZCBtdDc5MjVfbWFjX2luaXRfYmFzaWNfcmF0ZXMoc3RydWN0IG10NzkyeF9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy02NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTczLVx0XHQgICAgICAgRklFTERfUFJFUChNVF9UWF9SQVRFX0lEWCwgcmF0ZSBcdTAwMjYgR0VOTUFTSyg3LCAwKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6NzQ6XHRcdG10NzkyNV9tYWNfc2V0X2ZpeGVkX3JhdGVfdGFibGUoZGV2LCBpZHgsIHJhdGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTc1LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy03Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzo3ODppbnQgbXQ3OTI1X21hY19pbml0KHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtNzkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy04Ni1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIE1UNzkyeF9XVEJMX1NJWkU7IGkmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjg3Olx0XHRtdDc5MjVfbWFjX3d0YmxfdXBkYXRlKGRldiwgaSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy04OC1cdFx0XHRcdCAgICAgICBNVF9XVEJMX1VQREFURV9BRE1fQ09VTlRfQ0xFQVIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy05MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzo5MjpcdG10NzkyNV9tYWNfaW5pdF9iYXNpY19yYXRlcyhkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTkzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy05Ny19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6OTg6RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTI1X21hY19pbml0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy05OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxMDA6c3RhdGljIGludCBfX210NzkyNV9pbml0X2hhcmR3YXJlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTAxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTExLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjExMjpcdHJldCA9IG10NzkyNV9tY3Vfc2V0X2VlcHJvbShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTExMy1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTExNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxMTY6XHRyZXQgPSBtdDc5MjVfbWFjX2luaXQoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMTctXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMjAtXHRpZiAoaXNfbXQ3OTI3KFx1MDAyNmRldi1cdTAwM2VtdDc2KSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjEyMTpcdFx0cmV0ID0gbXQ3OTI1X21jdV9zZXRfZGJkYyhcdTAwMjZkZXYtXHUwMDNlbXBoeSwgdHJ1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTIyLVx0XHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTEzMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxMzM6c3RhdGljIGludCBtdDc5MjVfaW5pdF9oYXJkd2FyZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTEzNC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTEzOS1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIE1UNzkyeF9NQ1VfSU5JVF9SRVRSWV9DT1VOVDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxNDA6XHRcdHJldCA9IF9fbXQ3OTI1X2luaXRfaGFyZHdhcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNDEtXHRcdGlmICghcmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTU1OnN0YXRpYyB2b2lkIG10NzkyNV9pbml0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE1Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE2MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxNjE6XHRyZXQgPSBtdDc5MjVfaW5pdF9oYXJkd2FyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE2Mi1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE2NS1cdG10NzZfc2V0X3N0cmVhbV9jYXBzKFx1MDAyNmRldi1cdTAwM2VtcGh5LCB0cnVlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxNjY6XHRtdDc5MjVfc2V0X3N0cmVhbV9oZV9laHRfY2FwcyhcdTAwMjZkZXYtXHUwMDNlcGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNjctXHRtdDc5MnhfY29uZmlnX21hY19hZGRyX2xpc3QoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTY5Olx0cmV0ID0gbXQ3OTI1X2luaXRfbWxvX2NhcHMoXHUwMDI2ZGV2LVx1MDAzZXBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTcwLVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xODEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTgyOlx0cmV0ID0gbXQ3OTI1X2luaXRfZGVidWdmcyhkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE4My1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTg3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjE4ODpcdHJldCA9IG10NzkyNV90aGVybWFsX2luaXQoXHUwMDI2ZGV2LVx1MDAzZXBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTg5LVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xOTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTk0Olx0cmV0ID0gbXQ3OTI1X21jdV9zZXRfdGhlcm1hbF9wcm90ZWN0KGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTk1LVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yMDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjAzOlx0bXQ3OTI1X21jdV9zZXRfZGVlcF9zbGVlcChkZXYsIGRldi1cdTAwM2VwbS5kc19lbmFibGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTIwNC19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjA1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjIwNjppbnQgbXQ3OTI1X3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTIwNy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTIxNi1cdElOSVRfREVMQVlFRF9XT1JLKFx1MDAyNmRldi1cdTAwM2VwbS5wc193b3JrLCBtdDc5MnhfcG1fcG93ZXJfc2F2ZV93b3JrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoyMTc6XHRJTklUX0RFTEFZRURfV09SSyhcdTAwMjZkZXYtXHUwMDNlbWxvX3BtX3dvcmssIG10NzkyNV9tbG9fcG1fd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjE4LVx0SU5JVF9XT1JLKFx1MDAyNmRldi1cdTAwM2VwbS53YWtlX3dvcmssIG10NzkyeF9wbV93YWtlX3dvcmspO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yMjQtXHRJTklUX0RFTEFZRURfV09SSyhcdTAwMjZkZXYtXHUwMDNlbXBoeS5tYWNfd29yaywgbXQ3OTJ4X21hY193b3JrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoyMjU6XHRJTklUX0RFTEFZRURfV09SSyhcdTAwMjZkZXYtXHUwMDNlcGh5LnNjYW5fd29yaywgbXQ3OTI1X3NjYW5fd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjI2Olx0SU5JVF9ERUxBWUVEX1dPUksoXHUwMDI2ZGV2LVx1MDAzZWNvcmVkdW1wLndvcmssIG10NzkyNV9jb3JlZHVtcF93b3JrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yMjctI2lmIElTX0VOQUJMRUQoQ09ORklHX0lQVjYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjI4Olx0SU5JVF9XT1JLKFx1MDAyNmRldi1cdTAwM2VpcHY2X25zX3dvcmssIG10NzkyNV9zZXRfaXB2Nl9uc193b3JrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yMjktXHRza2JfcXVldWVfaGVhZF9pbml0KFx1MDAyNmRldi1cdTAwM2VpcHY2X25zX2xpc3QpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yMzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjM0Olx0SU5JVF9XT1JLKFx1MDAyNmRldi1cdTAwM2VyZXNldF93b3JrLCBtdDc5MjVfbWFjX3Jlc2V0X3dvcmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjIzNTpcdElOSVRfV09SSyhcdTAwMjZkZXYtXHUwMDNlaW5pdF93b3JrLCBtdDc5MjVfaW5pdF93b3JrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yMzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjM3Olx0SU5JVF9XT1JLKFx1MDAyNmRldi1cdTAwM2VwaHkucm9jX3dvcmssIG10NzkyNV9yb2Nfd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjM4LVx0dGltZXJfc2V0dXAoXHUwMDI2ZGV2LVx1MDAzZXBoeS5yb2NfdGltZXIsIG10NzkyeF9yb2NfdGltZXIsIDApO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yNjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjY1Olx0aHctXHUwMDNld2lwaHktXHUwMDNlcmVnX25vdGlmaWVyID0gbXQ3OTI1X3JlZ2Rfbm90aWZpZXI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjY2LVx0ZGV2LVx1MDAzZW1waHkuc2JhbmRfMmcuc2JhbmQuaHRfY2FwLmNhcCB8PVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yOTItfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjI5MzpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MjVfcmVnaXN0ZXJfZGV2aWNlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy02LSNpbmNsdWRlIFx1MDAzY2xpbnV4L3RpbWVrZWVwaW5nLmhcdTAwM2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjc6I2luY2x1ZGUgXCYjMzQ7bXQ3OTI1LmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTgtI2luY2x1ZGUgXCYjMzQ7Li4vZG1hLmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEzOmJvb2wgbXQ3OTI1X21hY193dGJsX3VwZGF0ZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBpbnQgaWR4LCB1MzIgbWFzaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTE0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0yMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjIyOnN0YXRpYyB2b2lkIG10NzkyNV9tYWNfc3RhX3BvbGwoc3RydWN0IG10NzkyeF9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTIzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy01OC1cdFx0aWR4ID0gbWxpbmstXHUwMDNld2NpZC5pZHg7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo1OTpcdFx0YWRkciA9IG10NzkyNV9tYWNfd3RibF9sbWFjX2FkZHIoZGV2LCBpZHgsIE1UX1dUQkxfQUMwX0NUVF9PRkZTRVQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNjAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNzctXHRcdGlmIChjbGVhcikge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6Nzg6XHRcdFx0bXQ3OTI1X21hY193dGJsX3VwZGF0ZShkZXYsIGlkeCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTc5LVx0XHRcdFx0XHQgICAgICAgTVRfV1RCTF9VUERBVEVfQURNX0NPVU5UX0NMRUFSKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjM6XHRcdGFkZHIgPSBtdDc5MjVfbWFjX3d0YmxfbG1hY19hZGRyKGRldiwgaWR4LCA2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNC1cdFx0dmFsID0gbXQ3Nl9ycihkZXYsIGFkZHIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI1LVx0XHRpZiAocmF0ZS1cdTAwM2VmbGFncyBcdTAwMjYgUkFURV9JTkZPX0ZMQUdTX0VIVF9NQ1MpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyNjpcdFx0XHRhZGRyID0gbXQ3OTI1X21hY193dGJsX2xtYWNfYWRkcihkZXYsIGlkeCwgNSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjctXHRcdFx0dmFsID0gbXQ3Nl9ycihkZXYsIGFkZHIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTE0MS1cdFx0LyogZ2V0IHNpZ25hbCBzdHJlbmd0aCBvZiByZXNwIGZyYW1lcyAoQ1RTL0JBL0FDSykgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjE0MjpcdFx0YWRkciA9IG10NzkyNV9tYWNfd3RibF9sbWFjX2FkZHIoZGV2LCBpZHgsIDM0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTE0My1cdFx0dmFsID0gbXQ3Nl9ycihkZXYsIGFkZHIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTE1Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjE1Nzp2b2lkIG10NzkyNV9tYWNfc2V0X2ZpeGVkX3JhdGVfdGFibGUoc3RydWN0IG10NzkyeF9kZXYgKmRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTE1OC1cdFx0XHRcdCAgICAgdTggdGJsX2lkeCwgdTE2IHJhdGVfaWR4KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTE2OC0vKiBUaGUgSFcgZG9lcyBub3QgdHJhbnNsYXRlIHRoZSBtYWMgaGVhZGVyIHRvIDgwMi4zIGZvciBtZXNoIHBvaW50ICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxNjk6c3RhdGljIGludCBtdDc5MjVfcmV2ZXJzZV9mcmFnMF9oZHJfdHJhbnMoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTE2IGhkcl9nYXApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xNzAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jPTI0OD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoyNDk6bXQ3OTI1X21hY19maWxsX3J4X3JhdGUoc3RydWN0IG10NzkyeF9kZXYgKmRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTI1MC1cdFx0XHRzdHJ1Y3QgbXQ3Nl9yeF9zdGF0dXMgKnN0YXR1cyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz0zNTg9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MzU5Om10NzkyNV9tYWNfZmlsbF9yeChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMzYwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy01MzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo1Mzk6XHRcdHJldCA9IG10NzkyNV9tYWNfZmlsbF9yeF9yYXRlKGRldiwgc3RhdHVzLCBzYmFuZCwgcnh2LCBcdTAwMjZtb2RlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTU0MC1cdFx0aWYgKHJldCBcdTAwM2MgMClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy01NTItXHRpZiAoaGRyX3RyYW5zIFx1MDAyNlx1MDAyNiBpZWVlODAyMTFfaGFzX21vcmVmcmFncyhmYykpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjU1MzpcdFx0aWYgKG10NzkyNV9yZXZlcnNlX2ZyYWcwX2hkcl90cmFucyhza2IsIGhkcl9nYXApKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNTU0LVx0XHRcdHJldHVybiAtRUlOVkFMO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jPTYyNj1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6NjI3Om10NzkyNV9tYWNfd3JpdGVfdHh3aV84MDIzKF9fbGUzMiAqdHh3aSwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTYyOC1cdFx0XHQgICBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jPTY2MT1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6NjYyOm10NzkyNV9tYWNfd3JpdGVfdHh3aV84MDIxMShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgX19sZTMyICp0eHdpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNjYzLVx0XHRcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jPTcyOT12b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo3MzA6bXQ3OTI1X21hY193cml0ZV90eHdpKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBfX2xlMzIgKnR4d2ksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy03MzEtXHRcdCAgICAgIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBtdDc2X3djaWQgKndjaWQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtODE4LVx0aWYgKGlzXzgwMjMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo4MTk6XHRcdG10NzkyNV9tYWNfd3JpdGVfdHh3aV84MDIzKHR4d2ksIHNrYiwgd2NpZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy04MjAtXHRlbHNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo4MjE6XHRcdG10NzkyNV9tYWNfd3JpdGVfdHh3aV84MDIxMShkZXYsIHR4d2ksIHNrYiwga2V5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTgyMi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy04NDEtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6ODQyOkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyNV9tYWNfd3JpdGVfdHh3aSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy04NDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo4NDQ6c3RhdGljIHZvaWQgbXQ3OTI1X3R4X2NoZWNrX2FnZ3Ioc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTg0NS1cdFx0XHRcdCBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jPTg5OD1zdGF0aWMgYm9vbFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6ODk5Om10NzkyNV9tYWNfYWRkX3R4c19za2Ioc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IG10NzZfd2NpZCAqd2NpZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTkwMC1cdFx0ICAgICAgIGludCBwaWQsIF9fbGUzMiAqdHhzX2RhdGEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTAzNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEwMzY6dm9pZCBtdDc5MjVfbWFjX2FkZF90eHMoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEwMzcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEwNjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMDY0Olx0bXQ3OTI1X21hY19hZGRfdHhzX3NrYihkZXYsIHdjaWQsIHBpZCwgdHhzX2RhdGEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTA2NS1cdGlmICghd2NpZC1cdTAwM2VzdGEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTA3My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEwNzQ6dm9pZCBtdDc5MjVfdHh3aV9mcmVlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3R4d2lfY2FjaGUgKnQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMDc1LVx0XHQgICAgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLCBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEwODgtXHRcdGlmIChsaWtlbHkodC1cdTAwM2Vza2ItXHUwMDNlcHJvdG9jb2wgIT0gY3B1X3RvX2JlMTYoRVRIX1BfUEFFKSkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMDg5Olx0XHRcdG10NzkyNV90eF9jaGVja19hZ2dyKHN0YSwgdC1cdTAwM2Vza2IsIHdjaWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTA5MC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMTAwLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjExMDE6RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTI1X3R4d2lfZnJlZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMTAyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM9MTEwMz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTEwNDptdDc5MjVfbWFjX3R4X2ZyZWUoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdm9pZCAqZGF0YSwgaW50IGxlbilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTExMDUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTExNzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMTcxOlx0XHRcdG10NzkyNV90eHdpX2ZyZWUoZGV2LCB0eHdpLCBzdGEsIHdjaWQsIFx1MDAyNmZyZWVfbGlzdCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMTcyLVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTE3NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjExNzU6XHRtdDc5MjVfbWFjX3N0YV9wb2xsKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMTc2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTExODctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMTg4OmJvb2wgbXQ3OTI1X3J4X2NoZWNrKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgdm9pZCAqZGF0YSwgaW50IGxlbilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTExODkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyMDYtXHRcdC8qIFBLVF9UWVBFX1RYUlhfTk9USUZZIGNhbiBiZSByZWNlaXZlZCBvbmx5IGJ5IG1taW8gZGV2aWNlcyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTIwNzpcdFx0bXQ3OTI1X21hY190eF9mcmVlKGRldiwgZGF0YSwgbGVuKTsgLyogbW1pbyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTIwOC1cdFx0cmV0dXJuIGZhbHNlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyMTAtXHRcdGZvciAocnhkICYjNDM7PSA0OyByeGQgJiM0MzsgMTIgXHUwMDNjPSBlbmQ7IHJ4ZCAmIzQzOz0gMTIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjExOlx0XHRcdG10NzkyNV9tYWNfYWRkX3R4cyhkZXYsIHJ4ZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjEyLVx0XHRyZXR1cm4gZmFsc2U7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTIxNi19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjE3OkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyNV9yeF9jaGVjayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjE4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTIxOTp2b2lkIG10NzkyNV9xdWV1ZV9yeF9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCBlbnVtIG10NzZfcnhxX2lkIHEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjIwLVx0XHRcdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgKmluZm8pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI0My1cdFx0LyogUEtUX1RZUEVfVFhSWF9OT1RJRlkgY2FuIGJlIHJlY2VpdmVkIG9ubHkgYnkgbW1pbyBkZXZpY2VzICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjQ0Olx0XHRtdDc5MjVfbWFjX3R4X2ZyZWUoZGV2LCBza2ItXHUwMDNlZGF0YSwgc2tiLVx1MDAzZWxlbik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjQ1LVx0XHRuYXBpX2NvbnN1bWVfc2tiKHNrYiwgMSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI0Ny1cdGNhc2UgUEtUX1RZUEVfUlhfRVZFTlQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjQ4Olx0XHRtdDc5MjVfbWN1X3J4X2V2ZW50KGRldiwgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNDktXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNTEtXHRcdGZvciAocnhkICYjNDM7PSAyOyByeGQgJiM0MzsgOCBcdTAwM2M9IGVuZDsgcnhkICYjNDM7PSA4KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTI1MjpcdFx0XHRtdDc5MjVfbWFjX2FkZF90eHMoZGV2LCByeGQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI1My1cdFx0ZGV2X2tmcmVlX3NrYihza2IpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNTYtXHRjYXNlIFBLVF9UWVBFX05PUk1BTDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyNTc6XHRcdGlmICghbXQ3OTI1X21hY19maWxsX3J4KGRldiwgc2tiKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI1OC1cdFx0XHRtdDc2X3J4KFx1MDAyNmRldi1cdTAwM2VtdDc2LCBxLCBza2IpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNjYtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTI2NzpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MjVfcXVldWVfcnhfc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz0xMjY5PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjcwOm10NzkyNV92aWZfY29ubmVjdF9pdGVyKHZvaWQgKnByaXYsIHU4ICptYWMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjcxLVx0XHRcdHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI5MC1cdFx0XHRcdFx0ICAgIFx1MDAyNm12aWYtXHUwMDNlc3RhLmRlZmxpbmsud2NpZCwgdHJ1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjkxOlx0XHRtdDc5MjVfbWN1X3NldF90eChkZXYsIGJzc19jb25mKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyOTItXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI5Ni1cdFx0XHRcdFx0ICAgIHRydWUsIE5VTEwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTI5NzpcdFx0bXQ3OTI1X21jdV9zdGFfdXBkYXRlKGRldiwgTlVMTCwgdmlmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI5OC1cdFx0XHRcdCAgICAgIFx1MDAyNm12aWYtXHUwMDNlc3RhLmRlZmxpbmssIHRydWUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjk5LVx0XHRcdFx0ICAgICAgTVQ3Nl9TVEFfSU5GT19TVEFURV9OT05FKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEzMDA6XHRcdG10NzkyNV9tY3VfdW5pX2FkZF9iZWFjb25fb2ZmbG9hZChkZXYsIGh3LCB2aWYsIHRydWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTMwMS1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMzA0LS8qIHN5c3RlbSBlcnJvciByZWNvdmVyeSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTMwNTp2b2lkIG10NzkyNV9tYWNfcmVzZXRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMzA2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMzQ1LVx0XHRcdFx0XHQgICAgSUVFRTgwMjExX0lGQUNFX0lURVJfUkVTVU1FX0FMTCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEzNDY6XHRcdFx0XHRcdCAgICBtdDc5MjVfdmlmX2Nvbm5lY3RfaXRlciwgTlVMTCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMzQ3LVx0bXQ3Nl9jb25uYWNfcG93ZXJfc2F2ZV9zY2hlZChcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5waHksIHBtKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEzNDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMzQ5Olx0bXQ3OTI1X3JlZ2RfY2hhbmdlKFx1MDAyNmRldi1cdTAwM2VwaHksIFwmIzM0OzAwXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEzNTAtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTM1MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEzNTI6dm9pZCBtdDc5MjVfY29yZWR1bXBfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMzUzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMzc5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTM4MDpcdFx0c2tiX3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IG10NzkyNV9tY3VfcnhkKSAmIzQzOyA4KTtcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDA5OjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT45bTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxMDM1CgkJCQkJCQlvdXRwdXQ6IDQ1CgkJCQkJCQl0aG91Z2h0czogMzkzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTVQ3OTI1IERyaXZlciBmb3IgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgc28gbG9va2luZyBhdCB0aGlzIE1ha2VmaWxlIG91dHB1dCwgaXQgc2VlbXMgcHJldHR5IGNsZWFyIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggZHJpdmVycyBmb3IgTWVkaWF0ZWsmIzM5O3MgTVQ3OTI1IHdpcmVsZXNzIGNoaXAuIFNwZWNpZmljYWxseSwgbGluZXMgMy01IHNob3cgZGlmZmVyZW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyAoYENPTkZJR19NVDc5MjVfQ09NTU9OYCwgYENPTkZJR19NVDc5MjVFYCwgYENPTkZJR19NVDc5MjVVYCkgZWFjaCBsZWFkaW5nIHRvIGNvcnJlc3BvbmRpbmcgb2JqZWN0IGZpbGVzIChgbXQ3OTI1LWNvbW1vbi5vYCwgYG10NzkyNWUub2AsIGBtdDc5MjV1Lm9gKS4gTGluZSA5IGRlZmluZXMgYG10NzkyNWUteWAgYXMgYSBQQ0kgZHJpdmVyIHdpdGggYXNzb2NpYXRlZCBtb2R1bGVzLCBhbmQgbGluZSAxMCBkZWZpbmVzIGBtdDc5MjV1LXlgIGFzIGEgVVNCIGRyaXZlciB3aXRoIGp1c3QgdGhlIGB1c2Iub2AgbW9kdWxlLiBUaGlzIGlzIGludGVyZXN0aW5nIGZyb20gYSBmdXp6aW5nIHBlcnNwZWN0aXZlLiBUaGUgcXVlc3Rpb24gbm93IGlzLCBjYW4gd2UgZnV6eiB0aGlzIHdpdGhpbiBhIHZpcnR1YWxpemVkIHNldHVwPwoKR2l2ZW4gdGhlIFVTQiBhc3BlY3Qgb2YgYG10NzkyNXVgLCBJIGltbWVkaWF0ZWx5IHRoaW5rIG9mIHRoZSBVU0IgZnV6emluZyBjYXBhYmlsaXRpZXMgb2YgdG9vbHMgbGlrZSBzeXprYWxsZXIuIFVTQiBkcml2ZXJzIGFyZSBvZnRlbiBxdWl0ZSB2dWxuZXJhYmxlLCBlc3BlY2lhbGx5IHdpdGggdGhlIGNvbXBsZXhpdHkgb2YgVVNCIHByb3RvY29sIGhhbmRsaW5nLiBSZW1lbWJlciwgd2UgaGF2ZSB0aGUgb3B0aW9uIHRvIHNldCB1cCBkdW1teV9oY2Qgb3IgdmhjaS1oY2QgZm9yIFVTQiBmdXp6aW5nLiBXYWl0LCBzeXprYWxsZXIgaGFzIGEgZGVkaWNhdGVkIFVTQiBmdXp6ZXIgdGhhdCYjMzk7cyBleGNlbGxlbnQgYXQgZW11bGF0aW5nIFVTQiBkZXZpY2VzLiBJdCYjMzk7cyBleHRlbnNpdmUuCgpUaGUga2V5IHF1ZXN0aW9uIGlzLCBpcyBgbXQ3OTI1dWAgdGhhdCBraW5kIG9mIFVTQiBkcml2ZXI/IElmIHNvLCBhbmQgaXQgaW50ZXJhY3RzIHdpdGggYW4gYWN0dWFsIFVTQiBkZXZpY2UsIHRoZW4gd2UmIzM5O3JlIGdvbGRlbi4gU3l6a2FsbGVyJiMzOTtzIGBzeXpfdXNiX2Nvbm5lY3RgIHN5c3RlbSBjYWxsIGlzIGEgcHJpbWUgY2FuZGlkYXRlIGZvciBmdXp6aW5nIGl0LiBJIG5lZWQgdG8gY29uZmlybSB0aGF0IGBtdDc5MjV1YCBpcyBpbmRlZWQgYSBVU0IgZHJpdmVyIHRoYXQgYmluZHMgdG8gYSBVU0IgZGV2aWNlLCB0aG91Z2guCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjYgMDk6NTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dXNiX2RyaXZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jPTM0NT1NT0RVTEVfRklSTVdBUkUoTVQ3OTI1X1JPTV9QQVRDSCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYy0zNDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYzozNDc6c3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIG10NzkyNXVfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmMtMzQ4LVx0Lm5hbWVcdFx0PSBLQlVJTERfTU9ETkFNRSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYy0zNTktfTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jOjM2MDptb2R1bGVfdXNiX2RyaXZlcihtdDc5MjV1X2RyaXZlcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYy0zNjEtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjYgMDk6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjIxMzMKCQkJCQkJCW91dHB1dDogNDgKCQkJCQkJCXRob3VnaHRzOiAxNDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBWdWxuZXJhYmlsaXR5IFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBjb25maXJtaW5nIHRoYXQgYG10NzkyNXVgIGlzIGluZGVlZCB0aGUgVVNCIGRyaXZlciDigJMgbWFrZXMgc2Vuc2UuIFRoZSBwYXRjaCBpbXBhY3RzIGBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcmAgd2l0aGluIGBtYWluLmNgIGFuZCBgbXQ3OTI1X21jdV9jb25maWdfc25pZmZlcmAgaW4gYG1jdS5jYC4gUmlnaHQsIGFuZCB0aGVzZSBhcmUgYm90aCBwYXJ0IG9mIHRoZSAqY29tbW9uKiBjb2RlLCBgbXQ3OTI1LWNvbW1vbi5vYC4gVGhhdCYjMzk7cyBpbXBvcnRhbnQ7IGl0IG1lYW5zIGJvdGggdGhlIFBDSWUgYW5kIFVTQiB2YXJpYW50cyBsZXZlcmFnZSB0aGVzZSBmdW5jdGlvbnMuCgpTaW5jZSB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGEgVVNCIGRyaXZlciwgdGhlIGltcGxpY2F0aW9ucyBhcmUgaW1tZWRpYXRlbHkgY2xlYXI6IHRoaXMgY29kZSBpcyBwb3RlbnRpYWxseSByZWFjaGFibGUgdGhyb3VnaCBmdXp6aW5nIOKAkyBzcGVjaWZpY2FsbHksIHRoZSBgc3l6X3VzYl9jb25uZWN0YCBjYWxsIHdpdGhpbiBzeXprYWxsZXIuIFRoYXQmIzM5O3MgYSBjbGFzc2ljIGF0dGFjayB2ZWN0b3IgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gVGhlIGZhY3QgdGhhdCB0aGUgVVNCIGVtdWxhdGlvbiBpcyB3b3JraW5nIG1ha2VzIHRoaXMgcGFydGljdWxhcmx5IGludGVyZXN0aW5nLgoKSG9sZCBvbiBhIHNlY29uZCwgbGV0IG1lIGp1c3QgcXVpY2tseSBjb25maXJtIHRoYXQgYG10NzkyNV9jb25maWd1cmVfZmlsdGVyYCBpcyAqYWN0dWFsbHkqIHJlYWNoYWJsZSB3aXRoaW4gdGhlIGV4ZWN1dGlvbiBwYXRoLiBBbHdheXMgYSBnb29kIGRvdWJsZS1jaGVjayBiZWZvcmUgZ2V0dGluZyBhaGVhZCBvZiBteXNlbGYuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjYgMTA6MDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTgwNT1zdGF0aWMgaW50IG10NzkyNV9jb25maWcoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIGludCByYWRpb19pZHgsIHUzMiBjaGFuZ2VkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy04MjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6ODMwOnN0YXRpYyB2b2lkIG10NzkyNV9jb25maWd1cmVfZmlsdGVyKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTgzMS1cdFx0XHRcdCAgICB1bnNpZ25lZCBpbnQgY2hhbmdlZF9mbGFncyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MjQ4Mz1jb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc5MjVfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0yNDkwLVx0LmNvbmZfdHggPSBtdDc5MjVfY29uZl90eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoyNDkxOlx0LmNvbmZpZ3VyZV9maWx0ZXIgPSBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0yNDkyLVx0LnN0YXJ0X2FwID0gbXQ3OTI1X3N0YXJ0X2FwLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDEwOjAxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyOTQ3CgkJCQkJCQlvdXRwdXQ6IDUxCgkJCQkJCQl0aG91Z2h0czogNzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBOZXR3b3JrIEZpbHRlciBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcmAgZnVuY3Rpb24uIFRoZSBmYWN0IHRoYXQgaXQmIzM5O3MgYW4gYGllZWU4MDIxMV9vcHNgIGNhbGxiYWNrIGltbWVkaWF0ZWx5IHRlbGxzIG1lIGl0JiMzOTtzIHRpZWQgZGlyZWN0bHkgaW50byB0aGUgbWFjODAyMTEgc3Vic3lzdGVtLiBUaGF0IG1lYW5zIHdoZW4gdGhlIGZpbHRlciBjb25maWd1cmF0aW9uIGlzIGNoYW5nZWQsIG1hYzgwMjExIHdpbGwgY2FsbCAqdGhpcyogZnVuY3Rpb24gc3BlY2lmaWNhbGx5LiBNYWtlcyBzZW5zZS4gQnV0IEkmIzM5O20gYWxzbyBzZWVpbmcgYG10NzkyNV9tY3VfY29uZmlnX3NuaWZmZXJgIGluIHRoZSBjb2RlLCBhbmQgSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRoYXQmIzM5O3MgcmVsYXRlZC4gSXQmIzM5O3MgKm5vdCogYSBjYWxsYmFjaywgc28gaXQmIzM5O3MgYmVpbmcgY2FsbGVkIGZyb20gc29tZXdoZXJlIGVsc2UuIFRpbWUgdG8gZ28gaHVudGluZyBhbmQgdHJhY2Ugd2hlcmUgdGhhdCBjYWxsIGlzIG9yaWdpbmF0aW5nIGZyb20uIEkmIzM5O2xsIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhlIGhhcmR3YXJlIGZpbHRlciBhbmQgdGhlIHNuaWZmZXIgY29uZmlndXJhdGlvbiB0byBnZXQgYSBmdWxsIHBpY3R1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDEwOjAxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210NzkyNV9tY3VfY29uZmlnX3NuaWZmZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTE5MzY9bXQ3OTI1X2NoYW5nZV9jaGFuY3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xOTU1LVx0XHRtdDc5MjVfbWN1X3NldF9zbmlmZmVyKG12aWYtXHUwMDNlcGh5LVx1MDAzZWRldiwgdmlmLCB0cnVlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxOTU2Olx0XHRtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyKG12aWYsIGN0eCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTk1Ny1cdH0gZWxzZSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM9MjE3ND1pbnQgbXQ3OTI1X21jdV9zZXRfc25pZmZlcihzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTIyMDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzoyMjAzOmludCBtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyKHN0cnVjdCBtdDc5MnhfdmlmICp2aWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0yMjA0LVx0XHRcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbXQ3OTI1Lmg9MzYxPWludCBtdDc5MjVfbWN1X3NldF9zbmlmZmVyKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tdDc5MjUuaC0zNjItXHRcdFx0ICAgYm9vbCBlbmFibGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbXQ3OTI1Lmg6MzYzOmludCBtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyKHN0cnVjdCBtdDc5MnhfdmlmICp2aWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tdDc5MjUuaC0zNjQtXHRcdFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDEwOjAxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzODg3CgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogMTEyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIE1UNzkyNSBNQ1UgQ29uZmlndXJhdGlvbiBmb3IgU25pZmZpbmcqKgoKT2theSwgc28gYG10NzkyNV9tY3VfY29uZmlnX3NuaWZmZXJgIGlzIGJlaW5nIGNhbGxlZCBmcm9tIGBtdDc5MjVfY2hhbmdlX2NoYW5jdHhgLiBUaGF0JiMzOTtzIGludGVyZXN0aW5nLCBhbmQgYG10NzkyNV9jaGFuZ2VfY2hhbmN0eGAgaXMgYW4gYGllZWU4MDIxMV9vcHNgIGNhbGxiYWNrLCBvciBhdCBsZWFzdCBjYWxsZWQgZnJvbSBvbmUuIFRoaXMgbWVhbnMgYm90aCBvZiB0aGVzZSBmdW5jdGlvbnMsIHRoZSBzbmlmZmVyIGNvbmZpZ3VyYXRpb24gYW5kIHRoZSBjaGFubmVsIGNvbnRleHQgY2hhbmdlLCBhcmUgYWNjZXNzaWJsZSB0aHJvdWdoIHN0YW5kYXJkIG1hYzgwMjExIG9wZXJhdGlvbnMsIHdoaWNoIGlzIGdvb2QgdG8ga25vdy4gQW5kIGJlY2F1c2UgdGhpcyBpcyBhIFVTQiBkcml2ZXIsIGl0IGltbWVkaWF0ZWx5IG9wZW5zIHVwIGZ1enppbmcgcG9zc2liaWxpdGllcyB2aWEgVVNCIGVtdWxhdGlvbi4gVGhhdCYjMzk7cyBhIHNvbGlkIGF0dGFjayBzdXJmYWNlLiBOb3csIGJlZm9yZSBJIGdldCB0b28gZXhjaXRlZCBhbmQgc3RhcnQgbWFwcGluZyBvdXQgZnV6emluZyBzdHJhdGVnaWVzLCBJIHNob3VsZCBwcm9iYWJseSBjaGVjayBpZiB0aGVyZSYjMzk7cyBhbnkgc3BlY2lmaWMgaGFyZHdhcmUgY29uZmlndXJhdGlvbiByZXF1aXJlZCBmb3IgdGhlIHNuaWZmZXIgdG8gd29yay4gVGltZSB0byBjb25zdWx0IHRoZSBLY29uZmlnIGZvciBgTVQ3OTI1VWAgYW5kIHNlZSBpZiBhbnkgc3BlY2lmaWMgc2V0dGluZ3MgbmVlZCB0byBiZSBlbmFibGVkIGJlZm9yZSBJIGNhbiBwcm9jZWVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTVQ3OTI1VSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnPTc9Y29uZmlnIE1UNzkyNUVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnLTE4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZzoxOTpjb25maWcgTVQ3OTI1VVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZy0yMC1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyNVUgKFVTQikgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNDQxMwoJCQkJCQkJb3V0cHV0OiA0NwoJCQkJCQkJdGhvdWdodHM6IDE1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQW5hbHl6aW5nIHRoZSBNVDc5MjVVIERlcGVuZGVuY2llcyoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIFRoZSByZXF1ZXN0IGlzIGNsZWFyOiBJIG5lZWQgdG8gYXNjZXJ0YWluIHRoZSBkZXBlbmRlbmNpZXMgZm9yIHRoZSBgTVQ3OTI1VWAuIE15IGltbWVkaWF0ZSBhcHByb2FjaCB3aWxsIGJlIHRvIGJlZ2luIGJ1aWxkaW5nIGEgbWVudGFsIG1hcC4gSSYjMzk7bGwgbmVlZCB0byBjb25zaWRlciB0aGlzIGZyb20gYSBmZXcgYW5nbGVzLgoKRmlyc3QsIHRoZSBoYXJkd2FyZSBsZXZlbC4gV2hhdCBhcmUgdGhlIGV4dGVybmFsIGludGVyZmFjZXMgb2YgdGhlIGBNVDc5MjVVYD8gVVNCPyBQQ0llPyBXaGF0IGFjY29tcGFueWluZyBjb21wb25lbnRzIGFyZSB0eXBpY2FsbHkgcGFpcmVkIHdpdGggdGhpcyBjaGlwIHRvIGZvcm0gYSBmdW5jdGlvbmFsIFdpRmkgbW9kdWxlPyBUcmFuc2NlaXZlcnMsIHBvd2VyIG1hbmFnZW1lbnQsIGNsb2NrcyDigJMgdGhlIHVzdWFsIHN1c3BlY3RzLiBJJiMzOTtsbCBuZWVkIHRvIGtub3cgd2hpY2ggb2YgdGhlc2UgYXJlIGludGVncmF0ZWQgb24tZGllIGFuZCB3aGljaCBhcmUgZXh0ZXJuYWwgYW5kIHRodXMsIHdoYXQgdGhlIHBpbi1vdXRzIGFyZS4gVGhlIGRhdGEgc2hlZXQgaXMgdGhlIG5hdHVyYWwgc3RhcnRpbmcgcG9pbnQsIGJ1dCBJJiMzOTtsbCBhbHNvIGNvbnNpZGVyIGV4aXN0aW5nIGltcGxlbWVudGF0aW9ucy4KCk5leHQsIHRoZSBmaXJtd2FyZSBhbmQgc29mdHdhcmUgbGV2ZWwuIFdoYXQgZHJpdmVyIHN1cHBvcnQgaXMgYXZhaWxhYmxlPyBJcyBpdCBvcGVuLXNvdXJjZSwgb3IgcHJvcHJpZXRhcnk/IFdoYXQgb3RoZXIga2VybmVsIG1vZHVsZXMgb3IgbGlicmFyaWVzIGlzIHRoZSBkcml2ZXIgYnVpbHQgdXBvbj8gQXJlIHRoZXJlIGFueSB1cHN0cmVhbSBwYXRjaGVzIHRoYXQgYWRkcmVzcyB0aGlzIGNoaXA/IE15IGdvYWwgaXMgdG8gcXVpY2tseSBwaW5wb2ludCB0aGUga2V5IGFic3RyYWN0aW9ucyB0aGF0IG1hbmFnZSB0aGUgaGFyZHdhcmUgYW5kIGlkZW50aWZ5IHRoZSBzb2Z0d2FyZSBpbnRlcmZhY2VzLiBUaGlzIHdpbGwgaW5jbHVkZSBjb25zaWRlcmF0aW9ucyBmb3IgYW55IGZpcm13YXJlIGJsb2JzIHRoYXQgbWlnaHQgYmUgcmVxdWlyZWQgYW5kIHRoZWlyIGxvY2F0aW9uIHdpdGhpbiB0aGUgc3lzdGVtIG9yIGJvb3QgcHJvY2Vzcy4gSSYjMzk7bGwgYWxzbyBjaGVjayBmb3IgYW55IHNwZWNpZmljIHNlY3VyaXR5IGNvbnNpZGVyYXRpb25zLgoKSSYjMzk7bGwgYmUgbWluZGZ1bCBvZiB0aGUgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQuIENyb3NzLWNvbXBpbGF0aW9uPyBUYXJnZXQgYXJjaGl0ZWN0dXJlPyBJZiB0aGVyZSYjMzk7cyBhbiBTREsgYXZhaWxhYmxlLCBJJiMzOTtsbCBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIHN0cnVjdHVyZSwgYnVpbGQgc3lzdGVtLCBhbmQgYW55IHByb3ByaWV0YXJ5IGhlYWRlcnMgb3IgbGlicmFyaWVzIGl0IGRlcGVuZHMgb24uIEkmIzM5O2xsIG1lbnRhbGx5IGNhdGVnb3JpemUgdGhlIGRlcGVuZGVuY2llcyDigJMgY29yZSBrZXJuZWwgZmVhdHVyZXMsIGRldmljZS1zcGVjaWZpYyBkcml2ZXJzLCBib2FyZC1zcGVjaWZpYyBhZGFwdGF0aW9ucywgYW5kIG1heWJlIGV2ZW4gdXNlci1zcGFjZSB1dGlsaXRpZXMuIEFuZCBvZiBjb3Vyc2UsIEkmIzM5O2xsIGJlIGF3YXJlIG9mIHBvdGVudGlhbCBjb25mbGljdHMgd2l0aCBvdGhlciBkcml2ZXJzIG9yIGhhcmR3YXJlIGNvbXBvbmVudHMgYWxyZWFkeSBwcmVzZW50IG9uIHRoZSBwbGF0Zm9ybS4KClRoZSBlbmQgZ2FtZSBpcyB0byBjcmVhdGUgYSBjb21wbGV0ZSBkZXBlbmRlbmN5IGdyYXBoLCBhbGxvd2luZyBtZSB0byB1bmRlcnN0YW5kIHRoZSBjb21wbGV0ZSBhcmNoaXRlY3R1cmUuIFRoaXMgd2lsbCBlbmFibGUgbWUgdG8gbWFrZSBpbmZvcm1lZCBkZWNpc2lvbnMgYWJvdXQgdGhlIGRldmVsb3BtZW50IG9yIGludGVncmF0aW9uIGVmZm9ydCwgcG90ZW50aWFsIHByb2JsZW1zLCBhbmQgdGhlIGNvbXBsZXhpdHkgcmVxdWlyZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDEwOjAxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuICAgMjpcdGNvbmZpZyBNVDc5MjVfQ09NTU9OXG4gICAzOlx0XHR0cmlzdGF0ZVxuICAgNDpcdFx0c2VsZWN0IE1UNzkyeF9MSUJcbiAgIDU6XHRcdHNlbGVjdCBXQU5UX0RFVl9DT1JFRFVNUFxuICAgNjpcdFxuICAgNzpcdGNvbmZpZyBNVDc5MjVFXG4gICA4Olx0XHR0cmlzdGF0ZSBcJiMzNDtNZWRpYVRlayBNVDc5MjVFIChQQ0llKSBzdXBwb3J0XCYjMzQ7XG4gICA5Olx0XHRzZWxlY3QgTVQ3OTI1X0NPTU1PTlxuICAxMDpcdFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxuICAxMTpcdFx0ZGVwZW5kcyBvbiBQQ0lcbiAgMTI6XHRcdGhlbHBcbiAgMTM6XHRcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIE1UNzkyNS1iYXNlZCB3aXJlbGVzcyBQQ0llIGRldmljZXMsXG4gIDE0Olx0XHQgIHdoaWNoIHN1cHBvcnQgb3BlcmF0aW9uIGF0IDZHSHosIDVHSHosIGFuZCAyLjRHSHogSUVFRSA4MDIuMTFiZVxuICAxNTpcdFx0ICAyeDI6MlNTIDQwOTYtUUFNLCAxNjBNSHogY2hhbm5lbHMuXG4gIDE2Olx0XG4gIDE3Olx0XHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuXG4gIDE4Olx0XG4gIDE5Olx0Y29uZmlnIE1UNzkyNVVcbiAgMjA6XHRcdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyNVUgKFVTQikgc3VwcG9ydFwmIzM0O1xuICAyMTpcdFx0c2VsZWN0IE1UNzkyeF9VU0JcbiAgMjI6XHRcdHNlbGVjdCBNVDc5MjVfQ09NTU9OXG4gIDIzOlx0XHRkZXBlbmRzIG9uIE1BQzgwMjExXG4gIDI0Olx0XHRkZXBlbmRzIG9uIFVTQlxuICAyNTpcdFx0aGVscFxuICAyNjpcdFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3OTI1LWJhc2VkIHdpcmVsZXNzIFVTQiBkZXZpY2VzLFxuICAyNzpcdFx0ICB3aGljaCBzdXBwb3J0IG9wZXJhdGlvbiBhdCA2R0h6LCA1R0h6LCBhbmQgMi40R0h6IElFRUUgODAyLjExYmVcbiAgMjg6XHRcdCAgMngyOjJTUyA0MDk2LVFBTSwgMTYwTUh6IGNoYW5uZWxzLlxuICAyOTpcdFxuICAzMDpcdFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTM4OAoJCQkJCQkJb3V0cHV0OiA0OQoJCQkJCQkJdGhvdWdodHM6IDM1MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgTVQ3OTI1VSBDb25maWd1cmF0aW9uIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpbW1lZGlhdGVseSwgdGhlIGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IHRoZSByZXF1aXJlZCBjb25maWcgaXMgbGlzdGVkIGFzIGBNVDc5MjVVYC4gSG93ZXZlciwgaXQmIzM5O3MgY2xlYXIgYWZ0ZXIgYSBtb21lbnQgdGhhdCB0aGUgY29yZSBjb2RlIGJlaW5nIG1vZGlmaWVkIGlzIGFjdHVhbGx5IHNoYXJlZCwgc3BlY2lmaWNhbGx5IGBtdDc5MjUtY29tbW9uLm9gLiBUaGF0IHRlbGxzIG1lIHRoZSByZWFsIGNvbnRyb2xsaW5nIGNvbmZpZyBvcHRpb24gaXMgYE1UNzkyNV9DT01NT05gLCB3aGljaCBnZXRzIGVuYWJsZWQgKnRocm91Z2gqIGBNVDc5MjVVYCBhbmQgYE1UNzkyNUVgLiBTbywgdG8gdGVzdCB0aGlzIHZpYSBVU0IgZW11bGF0aW9uLCBlbmFibGluZyBgTVQ3OTI1VWAgaXMgdGhlIGNvcnJlY3QgcGF0aC4gSXQmIzM5O3MgYSBxdWljayBub3RlIHRvIGFsc28gbWFrZSBzdXJlIEkgY2hlY2sgZm9yIHRoZSBkZXBlbmRlbmNpZXMgLSBgTUFDODAyMTFgIGFuZCBgVVNCYCwgb2YgY291cnNlLgoKTmV4dCwgSSBuZWVkIHRvIHBpbnBvaW50IHRoZSBjcml0aWNhbCBwYXJ0cy4gSSB3YW50IHRvIHNlZSBpZiB0aGVyZSBhcmUgc3BlY2lmaWMgZnVuY3Rpb25zIGltcGFjdGVkLiBSaWdodCwgdGhlIHBhdGNoIG1vZGlmaWVzIGBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcmAgYW5kIGBtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyYC4KCk5vdywgSSYjMzk7bGwgY2hlY2sgdGhlIHZpc2liaWxpdHkgb2YgdGhvc2UgZnVuY3Rpb25zLiBgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXJgIGlzIHN0YXRpYyB3aXRoaW4gYG1haW4uY2AuIEl0JiMzOTtzIGFzc2lnbmVkIHRvIGBpZWVlODAyMTFfb3BzLmNvbmZpZ3VyZV9maWx0ZXJgLiBCZWNhdXNlIGl0JiMzOTtzIHN0YXRpYywgaXQgd29uJiMzOTt0IGhhdmUgYSBkaXN0aW5jdCBzeW1ib2wgaW4gbWFueSBidWlsZHMsIHVubGVzcyBpdCYjMzk7cyBub3QgaW5saW5lZCwgd2hpY2ggaXMgd29ydGggY29uc2lkZXJpbmcgbGF0ZXIuIGBtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyYCwgb24gdGhlIG90aGVyIGhhbmQsIGlzbiYjMzk7dCBzdGF0aWMgaW4gYG1jdS5jYC4gSSBhbHNvIHNlZSB0aGF0IGl0IGlzIGNhbGxlZCBmcm9tIGBtdDc5MjVfY2hhbmdlX2NoYW5jdHhgIGluIGBtYWluLmNgLgoKU2luY2UgdGhlIHNuaWZmZXIgY29uZmlndXJhdGlvbiBmdW5jdGlvbiBpc24mIzM5O3Qgc3RhdGljLCBpdCYjMzk7cyBhIGtleSBzeW1ib2wuIExldCYjMzk7cyBtYWtlIHN1cmUgdGhhdCB0aGF0IGlzIGhhbmRsZWQgY29ycmVjdGx5LiBgbXQ3OTI1X2NoYW5nZV9jaGFuY3R4YCBpcyBhbHNvIG5vdCBzdGF0aWMuCgpJJiMzOTttIG5vdyBnb2luZyB0byBmb2N1cyBteSBhdHRlbnRpb24gb24gYG10NzkyNV9jaGFuZ2VfY2hhbmN0eGAgd2l0aGluIGBtYWluLmNgIGJlY2F1c2UgaXQgaXMgbm90IHN0YXRpYywgYW5kIGlzIGEgY2xlYXIgZW50cnkgcG9pbnQgdG8gdGhlIHNuaWZmZXIgY29uZmlndXJhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjYgMTA6MDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTI1X2NoYW5nZV9jaGFuY3R4JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0xOTM1PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTkzNjptdDc5MjVfY2hhbmdlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTkzNy1cdFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MjQ4Mz1jb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc5MjVfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0yNTM1LVx0LnJlbW92ZV9jaGFuY3R4ID0gbXQ3OTI1X3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjI1MzY6XHQuY2hhbmdlX2NoYW5jdHggPSBtdDc5MjVfY2hhbmdlX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMjUzNy1cdC5hc3NpZ25fdmlmX2NoYW5jdHggPSBtdDc5MjVfYXNzaWduX3ZpZl9jaGFuY3R4LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjU5MwoJCQkJCQkJb3V0cHV0OiAxNjMKCQkJCQkJCXRob3VnaHRzOiA3MTEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgRnV6emluZyBTdHJhdGVneSoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBiZWVuIGxvb2tpbmcgb3ZlciB0aGlzIGNvZGUgYW5kIHRoaW5raW5nIGFib3V0IHRoZSBiZXN0IGZ1enppbmcgYXBwcm9hY2guIEkgc2VlIHRoYXQgYG10NzkyNV9jb25maWd1cmVfZmlsdGVyYCBpcyBzdGF0aWMsIHdoaWNoIHVzdWFsbHkgd291bGQgbWFrZSBtZSBoZXNpdGFudCwgYnV0IGJlY2F1c2UgaXQmIzM5O3MgcGFydCBvZiB0aGUgYGllZWU4MDIxMV9vcHNgIGNhbGxiYWNrLCBJJiMzOTttIHByZXR0eSBzdXJlIGl0JiMzOTtzIGFkZHJlc3MtdGFrZW4gYW5kIHdvbiYjMzk7dCBiZSBpbmxpbmVkIGF3YXkgY29tcGxldGVseS4gVGhhdCBtYWtlcyBpdCBhIGdvb2QgY2FuZGlkYXRlLCBhbG9uZyB3aXRoIHRoZSBub24tc3RhdGljIGBtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyYC4gSSYjMzk7dmUgZG91YmxlLWNoZWNrZWQgdGhvc2UgZnVuY3Rpb24gbmFtZXMsIGp1c3QgdG8gYmUgc3VyZS4KCkkmIzM5O3ZlIGFsc28gdmVyaWZpZWQgdGhhdCB0aGUgbmVjZXNzYXJ5IGNvbmZpZ3MgYXJlIGVuYWJsZWQgYnkgdGhlIGBNVDc5MjVVYCwgYE1BQzgwMjExYCwgYW5kIGBVU0JgIGNvbmZpZ3VyYXRpb25zLiBgTVQ3OTI1VWAgcHVsbHMgaW4gYE1UNzkyNV9DT01NT05gLCB3aGljaCBpcyB3aGF0IEkgbmVlZC4KClRoaXMgcGF0Y2ggaXMgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlIOKAkyBpdCBtb2RpZmllcyB0aGUgYGRyb3BfZXJyYCBmbGFnIGJhc2VkIG9uIHRoZSBgcnhmaWx0ZXJgLiBJJiMzOTttIHNlZWluZyBpdCBjaGFuZ2VzIHRoZSBzbmlmZmVyIGNvbmZpZ3VyYXRpb24gYmFzZWQgb24gdGhlIHJlY2VpdmVkIGZpbHRlci4gU28sIGZ1enppbmcgdGhlc2UgdHdvIGZ1bmN0aW9ucyB3aWxsIGJlIGEgZ29vZCB3YXkgdG8gdGVzdCB0aGlzLgoKSSYjMzk7bSBzZXR0aW5nIGBXb3J0aEZ1enppbmc9dHJ1ZWAgYW5kIG15IGBGb2N1c1N5bWJvbHNgIHRvIGBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcmAgYW5kIGBtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyYCwgYW5kIEkgd2lsbCBlbmFibGUgdGhlIGNvbmZpZ3MgSSYjMzk7dmUgbWVudGlvbmVkLgoKRnJvbSB3aGF0IEkgY2FuIHNlZSwgSSBzaG91bGQgYmUgYWJsZSB0byB0cmlnZ2VyIHRoaXMgZnVuY3Rpb25hbGl0eSB0aHJvdWdoIFVTQiBlbXVsYXRpb24gdXNpbmcgdGhlIGBtdDc5MjV1YCBkcml2ZXIuIE5vdyBJJiMzOTtsbCBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDEwOjAxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNVDc5MjVVJiMzNDssCiAgICAmIzM0O01BQzgwMjExJiMzNDssCiAgICAmIzM0O1VTQiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O210NzkyNV9jb25maWd1cmVfZmlsdGVyJiMzNDssCiAgICAmIzM0O210NzkyNV9tY3VfY29uZmlnX3NuaWZmZXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhdGVrIE1UNzkyNSB3aXJlbGVzcyBkcml2ZXIgdG8gY29uZmlndXJlIHRoZSBzbmlmZmVyJiMzOTtzIGRyb3BfZXJyIGZsYWcgYmFzZWQgb24gdGhlIHJ4ZmlsdGVyIHNldHRpbmdzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlciYjMzk7cyBtYWM4MDIxMSBjYWxsYmFja3MuIFRoZSBkcml2ZXIgaGFzIGEgVVNCIHZhcmlhbnQgKG10NzkyNXUpIHdoaWNoIGNhbiBiZSBmdXp6ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSBVU0IgZW11bGF0aW9uIChzeXpfdXNiX2Nvbm5lY3QpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNVDc5MjVVJiMzNDssCiAgICAmIzM0O01BQzgwMjExJiMzNDssCiAgICAmIzM0O1VTQiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O210NzkyNV9jb25maWd1cmVfZmlsdGVyJiMzNDssCiAgICAmIzM0O210NzkyNV9tY3VfY29uZmlnX3NuaWZmZXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhdGVrIE1UNzkyNSB3aXJlbGVzcyBkcml2ZXIgdG8gY29uZmlndXJlIHRoZSBzbmlmZmVyJiMzOTtzIGRyb3BfZXJyIGZsYWcgYmFzZWQgb24gdGhlIHJ4ZmlsdGVyIHNldHRpbmdzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlciYjMzk7cyBtYWM4MDIxMSBjYWxsYmFja3MuIFRoZSBkcml2ZXIgaGFzIGEgVVNCIHZhcmlhbnQgKG10NzkyNXUpIHdoaWNoIGNhbiBiZSBmdXp6ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSBVU0IgZW11bGF0aW9uIChzeXpfdXNiX2Nvbm5lY3QpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDEwOjAxPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgZmllbGQgYHJ4ZmlsdGVyYCB0byBgc3RydWN0IG10NzkyeF9waHlgIHRvIHN0b3JlIHRoZSBSWCBmaWx0ZXIgZmxhZ3MuIFRoaXMgc3RydWN0dXJlIGlzIGVtYmVkZGVkIGluIGBzdHJ1Y3QgbXQ3OTJ4X2RldmAsIHdoaWNoIGlzIGFsbG9jYXRlZCB2aWEgYG10NzZfYWxsb2NfZGV2aWNlYCAtXHUwMDNlIGBpZWVlODAyMTFfYWxsb2NfaHdgIC1cdTAwM2UgYHdpcGh5X25ld19ubWAgdXNpbmcgYGt6YWxsb2NgLiBUaHVzLCB0aGUgbmV3IGZpZWxkIGlzIGZ1bGx5IHplcm8taW5pdGlhbGl6ZWQgdXBvbiBhbGxvY2F0aW9uLiBUaGUgcGF0Y2ggdGhlbiB3cml0ZXMgdG8gdGhpcyBmaWVsZCBpbiBgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXJgIGFuZCByZWFkcyBmcm9tIGl0IGluIGBtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyYCB0byBjb25kaXRpb25hbGx5IHNldCB0aGUgYGRyb3BfZXJyYCBmbGFnIGluIGEgaGFyZHdhcmUgY29uZmlndXJhdGlvbiByZXF1ZXN0LiBUaGVyZSBhcmUgbm8gbmV3IGFsbG9jYXRpb25zLCBubyBzdHJ1Y3R1cmVzIGNvcGllZCB0byB1c2VyIHNwYWNlLCBhbmQgbm8gY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHMgY291bGQgYmUgcmVhZC4gQW55IHBvdGVudGlhbCBidWdzIGludHJvZHVjZWQgYnkgdGhpcyBwYXRjaCB3b3VsZCBiZSByZWxhdGVkIHRvIGluY29ycmVjdCBsb2dpYyBvciBvdXQtb2YtYm91bmRzIGFjY2Vzcywgd2hpY2ggYXJlIHdlbGwtY292ZXJlZCBieSBzdGFuZGFyZCBLQVNBTiBhbmQgb3RoZXIgYnVnIGRldGVjdG9ycy4gVGhlcmUgaXMgbm8gcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzIHRoYXQgd291bGQgcmVxdWlyZSBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24uJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIHNlY3VyaXR5IGVuZ2luZWVyIHNwZWNpYWxpemluZyBpbiBrZXJuZWwgbWVtb3J5CmVycm9yIGRldGVjdG9ycyAoS0FTQU4gYW5kIEtNU0FOKS4gWW91ciBqb2IgaXMgdG8gcmV2aWV3IHRoZSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kCmRldGVybWluZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGp1c3RpZnkgc3Bhd25pbmcgYSBkZWRpY2F0ZWQgS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikKZnV6emluZyBzZXNzaW9uIGluIGFkZGl0aW9uIHRvIHN0YW5kYXJkIEtBU0FOIGZ1enppbmcuCgpDUklUSUNBTCBESVNUSU5DVElPTiBCRVRXRUVOIEtBU0FOIEFORCBLTVNBTjoKLSBTdGFuZGFyZCBLQVNBTiBrZXJuZWwgYnVpbGRzICh1cHN0cmVhbS1hcHBhcm1vci1rYXNhbi5jb25maWcpIGFscmVhZHkgZW5hYmxlCiAgYSBjb21wcmVoZW5zaXZlIHN1aXRlIG9mIGRlYnVnZ2luZyB0b29scyBhbmQgc2FuaXRpemVycywgaW5jbHVkaW5nIEtBU0FOCiAgKG91dC1vZi1ib3VuZHMgYWNjZXNzZXMsIHVzZS1hZnRlci1mcmVlLCBkb3VibGUgZnJlZSwgaW52YWxpZCBmcmVlKSwgTE9DS0RFUAogIChsb2NraW5nIGJ1Z3MgYW5kIGRlYWRsb2NrcyksIFVCLXNhbml0aXplcnMsIGFuZCBtZW1vcnkgY29ycnVwdGlvbiBjaGVja3MuCi0gS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikgZGV0ZWN0cyByZWFkcyBvZiBVTklOSVRJQUxJWkVEIG1lbW9yeSAoc3RhY2ssIGhlYXAsCiAgb3IgcGFnZSBhbGxvY2F0aW9ucykgYW5kIGtlcm5lbC10by11c2VyIG1lbW9yeSBpbmZvLWxlYWtzLgoKUnVsZTogVEhFUkUgSVMgTk8gU0VOU0UgSU4gUlVOTklORyBBIEtNU0FOIFNFU1NJT04gSUYgQSBCVUcgQ0FOIEJFIENBVUdIVCBCWSBLQVNBTiwKTE9DS0RFUCwgT1IgT1RIRVIgU1RBTkRBUkQgQlVHIERFVEVDVE9SUy4KQSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGluY3VycyBzaWduaWZpY2FudCByZXNvdXJjZSBjb3N0cy4gWW91IG11c3QgT05MWQpzZXQgTmVlZHNLTVNBTj10cnVlIGlmIHRoZSBjb2RlIGNoYW5nZXMgaW50cm9kdWNlIG9yIGV4cG9zZSBVTklOSVRJQUxJWkVEIE1FTU9SWSByaXNrcwp0aGF0IGFyZSBkZXRlY3RlZCBPTkxZIGJ5IEtNU0FOLgoKTG9vayBob2xpc3RpY2FsbHkgYXQgdGhlIHBhdGNoIHNlcmllcyBhbmQgc3Vycm91bmRpbmcgY29kZS4gRXZlbiBpZiBubyBkaXJlY3QKdW5pbml0aWFsaXplZCBmaWVsZCBhY2Nlc3NlcyBvciBuZXcgYnVmZmVyIGFsbG9jYXRpb25zIGFyZSBhZGRlZCBpbiB0aGUgZGlmZiBpdHNlbGYsCmEgcGF0Y2ggbWF5IGFsdGVyIGNvbnRyb2wgZmxvdywgYm91bmRzIGNoZWNraW5nLCBvciBkYXRhIGxlbmd0aCBjYWxjdWxhdGlvbnMgaW4gd2F5cwp0aGF0IGNoYW5nZSBob3cgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgb3BlcmF0ZXMgb24gZXhpc3RpbmcgYnVmZmVycyAoZS5nLiBhbGxvd2luZwp1bmluaXRpYWxpemVkIHN0YWNrL2hlYXAgbWVtb3J5IHRvIGJlIHJlYWQsIGNvcGllZCB0byB1c2VyIHNwYWNlLCBvciB1c2VkIGluIGNvbnRyb2wKZmxvdykuIERvIG5vdCBoZXNpdGF0ZSB0byB1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlLApjYWxsZWQgZnVuY3Rpb25zLCBhbmQgY2FsbGVycy4KClNldCBOZWVkc0tNU0FOPXRydWUgT05MWSBJRiB0aGUgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllczoKMS4gS2VybmVsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlICh2aWEgY29weV90b191c2VyLCBwdXRfdXNlciwgbmV0bGluayBza2IKICAgYXR0cmlidXRlcywgaW9jdGwgb3V0cHV0IGFyZ3VtZW50cywgc29ja2V0IG9wdGlvbnMsIG9yIEJQRiBidWZmZXJzKSB3aGVyZSBmaWVsZHMKICAgb3Igc3RydWN0dXJlIHBhZGRpbmcgbWlnaHQgbm90IGJlIGZ1bGx5IGluaXRpYWxpemVkL3plcm9lZC4KMi4gQ29uZGl0aW9uYWwgbG9naWMgb3IgYnJhbmNoaW5nIHRoYXQgZGVwZW5kcyBvbiBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIHZhcmlhYmxlcwogICBvciBzdHJ1Y3QgZmllbGRzLgozLiBBbGxvY2F0aW9uIG9yIGluaXRpYWxpemF0aW9uIG9mIGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIHdoZXJlIHVuaW5pdGlhbGl6ZWQgZmllbGRzCiAgIGNvdWxkIGJlIHJlYWQgbGF0ZXIgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMuCjQuIEJvdW5kcyBjaGVja3MsIGxlbmd0aHMsIG9yIGxvZ2ljIGluIGEgd2F5IHRoYXQgYWxsb3dzIHN1cnJvdW5kaW5nIGNvZGUgdG8gYWNjZXNzCiAgIHVuaW5pdGlhbGl6ZWQgYnl0ZXMgb2YgZXhpc3RpbmcgYnVmZmVycy4KClNldCBOZWVkc0tNU0FOPWZhbHNlIElGOgotIFRoZSBjb2RlIGNoYW5nZXMgcHJpbWFyaWx5IHJpc2sgb3V0LW9mLWJvdW5kcyBhY2Nlc3MsIGFycmF5IG92ZXJmbG93cywgTlVMTCBwb2ludGVyCiAgZGVyZWZlcmVuY2VzLCBsb2NraW5nIGRlYWRsb2Nrcywgb3IgdXNlLWFmdGVyLWZyZWUgYnVncyAodGhlc2UgYXJlIGFscmVhZHkgY2F1Z2h0CiAgYnkgS0FTQU4sIExPQ0tERVAsIG9yIHN0YW5kYXJkIGJ1ZyBkZXRlY3RvcnMpLgotIEFsbCBzdGFjay9oZWFwIHN0cnVjdHVyZXMgdG91Y2hlZCBvciBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBhcmUgZnVsbHkgemVyb2VkCiAgb3IgaW5pdGlhbGl6ZWQgKGUuZy4gdXNpbmcgPSB7MH0sIG1lbXNldCwga3phbGxvYykgYmVmb3JlIGJlaW5nIHJlYWQgb3IgY29waWVkLgotIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcy4KClVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaWYgbmVjZXNzYXJ5LCB0aGVuIHByb3ZpZGUKZGV0YWlsZWQgS01TQU5SZWFzb25pbmcgY29udHJhc3RpbmcgS0FTQU4gdnMgS01TQU4gYXBwbGljYWJpbGl0eSBmb3IgdGhpcyBwYXRjaC4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDhkZDhlODg0ZDNhODM2NjVkNzA3MjcwYjhkNzE4NWE0NmIzNDhiYzQKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgV2VkIEF1ZyAyNiAwOTo0OTozNyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYwppbmRleCBhOTA1OTg2NmI3MDE2Li5jZmJmZDc3ZTg5MGZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jCkBAIC04MzIsMTEgJiM0Mzs4MzIsOCBAQCBzdGF0aWMgdm9pZCBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywKIAkJCQkgICAgdW5zaWduZWQgaW50ICp0b3RhbF9mbGFncywKIAkJCQkgICAgdTY0IG11bHRpY2FzdCkKIHsKLSNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9GQ1NGQUlMICAgIEJJVCgyKQotI2RlZmluZSBNVDc5MjVfRklMVEVSX0NPTlRST0wgICAgQklUKDUpCi0jZGVmaW5lIE1UNzkyNV9GSUxURVJfT1RIRVJfQlNTICBCSVQoNikKLSNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9FTkFCTEUgICAgIEJJVCgzMSkKIAlzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gbXQ3OTJ4X2h3X2Rldihodyk7CiYjNDM7CXN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTsKIAl1MzIgZmxhZ3MgPSBNVDc5MjVfRklMVEVSX0VOQUJMRTsKIAogI2RlZmluZSBNVDc5MjVfRklMVEVSKF9maWYsIF90eXBlKSBkbyB7CQkJXApAQCAtODQ4LDYgJiM0Mzs4NDUsOCBAQCBzdGF0aWMgdm9pZCBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywKIAlNVDc5MjVfRklMVEVSKEZJRl9DT05UUk9MLCBDT05UUk9MKTsKIAlNVDc5MjVfRklMVEVSKEZJRl9PVEhFUl9CU1MsIE9USEVSX0JTUyk7CiAKJiM0MzsJcGh5LSZndDtyeGZpbHRlciA9IGZsYWdzOwomIzQzOwogCW10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7CiAJbXQ3OTI1X21jdV9zZXRfcnhmaWx0ZXIoZGV2LCBmbGFncywgMCwgMCk7CiAJbXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMKaW5kZXggZTk0ZmE1NDRmZjIwNy4uYWRjMTM3YTBlNmI0ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMKQEAgLTIyNTEsNyAmIzQzOzIyNTEsNyBAQCBpbnQgbXQ3OTI1X21jdV9jb25maWdfc25pZmZlcihzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqdmlmLAogCQkJLmxlbiA9IGNwdV90b19sZTE2KHNpemVvZihyZXEudGx2KSksCiAJCQkuY29udHJvbF9jaCA9IGNoYW5kZWYtJmd0O2NoYW4tJmd0O2h3X3ZhbHVlLAogCQkJLmNlbnRlcl9jaCA9IGllZWU4MDIxMV9mcmVxdWVuY3lfdG9fY2hhbm5lbChmcmVxMSksCi0JCQkuZHJvcF9lcnIgPSAxLAomIzQzOwkJCS5kcm9wX2VyciA9ICEodmlmLSZndDtwaHktJmd0O3J4ZmlsdGVyICZhbXA7IE1UNzkyNV9GSUxURVJfRkNTRkFJTCksCiAJCX0sCiAJfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbXQ3OTI1LmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tdDc5MjUuaAppbmRleCA0Y2MyNTk0MThhZmNhLi44ZmI4YTRjMTMxNmUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tdDc5MjUuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tdDc5MjUuaApAQCAtNyw2ICYjNDM7NywxMSBAQAogI2luY2x1ZGUgJiMzNDsuLi9tdDc5MnguaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O3JlZ3MuaCYjMzQ7CiAKJiM0MzsjZGVmaW5lIE1UNzkyNV9GSUxURVJfRkNTRkFJTAkJQklUKDIpCiYjNDM7I2RlZmluZSBNVDc5MjVfRklMVEVSX0NPTlRST0wJCUJJVCg1KQomIzQzOyNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9PVEhFUl9CU1MJQklUKDYpCiYjNDM7I2RlZmluZSBNVDc5MjVfRklMVEVSX0VOQUJMRQkJQklUKDMxKQomIzQzOwogI2RlZmluZSBNVDc5MjVfQkVBQ09OX1JBVEVTX1RCTAkJMjUKIAogI2RlZmluZSBNVDc5MjVfVFhfUklOR19TSVpFCQkyMDQ4CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaAppbmRleCA3MDA3M2I0M2FmNTQzLi43NWQzMmE0YWRkZDcxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4LmgKQEAgLTE2OCw2ICYjNDM7MTY4LDcgQEAgc3RydWN0IG10NzkyeF9waHkgewogCXMxNiBjb3ZlcmFnZV9jbGFzczsKIAl1OCBzbG90dGltZTsKIAomIzQzOwl1MzIgcnhmaWx0ZXI7CiAJdTMyIHJ4X2FtcGR1X3RzOwogCXUzMiBhbXBkdV9yZWY7CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDEwOjAxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMxMDYKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiAzMTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBNVDc5MjUgRmlsdGVyIENvbmZpZ3VyYXRpb24gUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyB0aGUgZmlsdGVyIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBNVDc5MjUgd2lyZWxlc3MgZHJpdmVyLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIG1ha2luZyBjaGFuZ2VzIHRvIHRoZSBgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXJgIGZ1bmN0aW9uIGluIGBtYWluLmNgLCBhbmQgSSBzZWUgaXQmIzM5O3MgbW92aW5nIGEgZmV3IGAjZGVmaW5lYHMgKHRob3NlIGZpbHRlciBmbGFncykgb3ZlciB0byBgbXQ3OTI1LmhgLiBUaGF0JiMzOTtzIGdlbmVyYWxseSBnb29kIHByYWN0aWNlLCBrZWVwaW5nIHJlbGF0ZWQgZGVmaW5pdGlvbnMgdG9nZXRoZXIuIEkgYWxzbyBub3RpY2UgYSBuZXcgZmllbGQsIGByeGZpbHRlcmAsIGJlaW5nIGFkZGVkIHRvIHRoZSBgc3RydWN0IG10NzkyeF9waHlgIHN0cnVjdCBpbiBgbXQ3OTJ4LmhgLiBUaGUgYG10NzkyNV9jb25maWd1cmVfZmlsdGVyYCBmdW5jdGlvbiBub3cgYXNzaWducyB0aGlzIGByeGZpbHRlcmAgZmllbGQgd2l0aCBgZmxhZ3NgLCB3aGljaCBpcyBzdGFuZGFyZC4KCk15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIGFib3V0IHBvdGVudGlhbCB1bmluaXRpYWxpemVkIG1lbW9yeSBpc3N1ZXMuIFRoaXMgYHJ4ZmlsdGVyYCBmaWVsZCBpcyBuZXcsIGFuZCBJIG5lZWQgdG8gY29uZmlybSBob3cgdGhlIGBzdHJ1Y3QgbXQ3OTJ4X3BoeWAgaXMgYWxsb2NhdGVkLiBJcyBpdCB1c2luZyBga3phbGxvY2Agb3Igc29tZSBvdGhlciBhbGxvY2F0aW9uIHRoYXQgemVyb3Mgb3V0IHRoZSBtZW1vcnk/IElmIG5vdCwgd2UgY291bGQgaGF2ZSBwcm9ibGVtcyB3aXRoIHRoZSBpbml0aWFsIHZhbHVlIG9mIGByeGZpbHRlcmAgYmVpbmcgZ2FyYmFnZS4gVGhlIGZhY3QgdGhhdCBgbXQ3OTI1X21jdV9jb25maWdfc25pZmZlcmAgaW4gYG1jdS5jYCBpcyB1c2luZyB0aGUgYHJ4ZmlsdGVyYCBmaWVsZCBpcyBhIHRyaWdnZXIgdG8gbWFrZSBzdXJlIHRoYXQgZmllbGQgaXMgaW5pdGlhbGl6ZWQgYW5kIGNhbiBiZSB0cnVzdGVkLiBJJiMzOTttIGdvaW5nIHRvIGRpZyBpbnRvIHRoZSBjb2RlIGFuZCB0cmFjZSB0aGUgYWxsb2NhdGlvbiBvZiBgc3RydWN0IG10NzkyeF9waHlgIHRvIHZlcmlmeSB0aGlzLiBHb3R0YSBiZSBzdXJlIHdlJiMzOTtyZSBub3QgaW50cm9kdWNpbmcgYSBzdWJ0bGUgYnVnIHJlbGF0ZWQgdG8gdW5pbml0aWFsaXplZCBkYXRhLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2FsbG9jLiptdDc5MnhfcGh5JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3NiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDEwOjAyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4MTAKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAyMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEaXZpbmcgaW50byB0aGUgYG10NzkyeF9waHlgIExhbmRzY2FwZSoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgYG10NzkyeF9waHlgIG1vZHVsZSBiZXR0ZXIuIE15IGZpcnN0IGluc3RpbmN0IGlzIGFsd2F5cyB0byB0cmFjZSBpdHMgZGVmaW5pdGlvbiBhbmQgdXNhZ2UuIFdoZXJlIGlzIGl0IGFjdHVhbGx5IGRlY2xhcmVkPyBJJiMzOTttIHRoaW5raW5nIEkmIzM5O2xsIG5lZWQgdG8gZ28gYmV5b25kIGEgc2ltcGxlIGBncmVwYCBvciBgZmluZGAg4oCTIEkgd2FudCB0byBtYXAgdGhlIHJlbGF0aW9uc2hpcHMuIEtub3dpbmcgd2hlcmUgaXQmIzM5O3MgKmRlZmluZWQqIGlzIGp1c3QgdGhlIHN0YXJ0aW5nIHBvaW50OyBJIG5lZWQgdG8gZm9sbG93IHRoZSBicmVhZGNydW1icyBvZiBpdHMgaW50ZXJhY3Rpb25zLiBIb3cgZG9lcyB0aGUga2VybmVsIHV0aWxpemUgdGhpcyBQSFk/IFdoYXQgb3RoZXIgbW9kdWxlcyBkZXBlbmQgb24gaXQsIGFuZCB3aGF0IGZ1bmN0aW9ucyBhcmUgdGhlIGtleSBlbnRyeSBwb2ludHM/IEkmIzM5O20gYW50aWNpcGF0aW5nIHNvbWUgcG90ZW50aWFsbHkgaW50cmljYXRlIGRlcGVuZGVuY2llcywgYW5kIEkgd2FudCB0byBidWlsZCBhIGNsZWFyIG1lbnRhbCBtb2RlbCBvZiBpdHMgcGxhY2Ugd2l0aGluIHRoZSB3aWRlciBkcml2ZXIgYXJjaGl0ZWN0dXJlLiBUaGlzIGlzIG1vcmUgdGhhbiBqdXN0IGNvZGUgYnJvd3Npbmc7IEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBvcGVyYXRpb25hbCBjb250ZXh0LiBMZXQmIzM5O3MgZ2V0IHRvIGl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI0LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzdHJ1Y3QgbXQ3OTJ4X3BoeSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDc1MyBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jPTE0PXN0YXRpYyBzc2l6ZV90IG10NzkyMV90aGVybWFsX3RlbXBfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTE5LVx0Y2FzZSAwOiB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MjA6XHRcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0yMS1cdFx0c3RydWN0IG10NzkyeF9kZXYgKm1kZXYgPSBwaHktXHUwMDNlZGV2O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYz00Mz1BVFRSSUJVVEVfR1JPVVBTKG10NzkyMV9od21vbik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtNDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6NDU6c3RhdGljIGludCBtdDc5MjFfdGhlcm1hbF9pbml0KHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtNDYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTE2OT1tdDc5MjFfbWFjX2ZpbGxfcngoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy0xNzctXHRzdHJ1Y3QgbXQ3Nl9waHkgKm1waHkgPSBcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5waHk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzoxNzg6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gXHUwMDI2ZGV2LVx1MDAzZXBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTE3OS1cdHN0cnVjdCBpZWVlODAyMTFfc3VwcG9ydGVkX2JhbmQgKnNiYW5kO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xMz1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MTQ6bXQ3OTIxX2luaXRfaGVfY2FwcyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBlbnVtIG5sODAyMTFfYmFuZCBiYW5kLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTE1LVx0XHQgICAgc3RydWN0IGllZWU4MDIxMV9zYmFuZF9pZnR5cGVfZGF0YSAqZGF0YSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTk1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjE5Njp2b2lkIG10NzkyMV9zZXRfc3RyZWFtX2hlX2NhcHMoc3RydWN0IG10NzkyeF9waHkgKnBoeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xOTcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yMjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MjI3OmludCBfX210NzkyMV9zdGFydChzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTIyOC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTI3Mj1zdGF0aWMgaW50IG10NzkyMV9zdGFydChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yNzMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjI3NDpcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yNzUtXHRpbnQgZXJyO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0zMDE9bXQ3OTIxX2FkZF9pbnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTMwNC1cdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzozMDU6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzA2LVx0c3RydWN0IG10NzZfdHhxICptdHhxO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0zNjI9c3RhdGljIHZvaWQgbXQ3OTIxX3JvY19pdGVyKHZvaWQgKnByaXYsIHU4ICptYWMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM2NS1cdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjM2NjpcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM2Ny1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MzcxPXZvaWQgbXQ3OTIxX3JvY19hYm9ydF9zeW5jKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzcyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzozNzM6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gXHUwMDI2ZGV2LVx1MDAzZXBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zNzQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTM4Nz12b2lkIG10NzkyMV9yb2Nfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzg4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzozODk6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM5MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzozOTE6XHRwaHkgPSAoc3RydWN0IG10NzkyeF9waHkgKiljb250YWluZXJfb2Yod29yaywgc3RydWN0IG10NzkyeF9waHksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzkyLVx0XHRcdFx0XHRcdHJvY193b3JrKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDA1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjQwNjpzdGF0aWMgaW50IG10NzkyMV9hYm9ydF9yb2Moc3RydWN0IG10NzkyeF9waHkgKnBoeSwgc3RydWN0IG10NzkyeF92aWYgKnZpZilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00MDcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00MjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NDIxOnN0YXRpYyBpbnQgbXQ3OTIxX3NldF9yb2Moc3RydWN0IG10NzkyeF9waHkgKnBoeSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00MjItXHRcdFx0ICBzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz00NTE9c3RhdGljIGludCBtdDc5MjFfcmVtYWluX29uX2NoYW5uZWwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQ1Ny1cdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjQ1ODpcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00NTktXHRpbnQgZXJyO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz00Njg9c3RhdGljIGludCBtdDc5MjFfY2FuY2VsX3JlbWFpbl9vbl9jaGFubmVsKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00NzEtXHRzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqbXZpZiA9IChzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqKXZpZi1cdTAwM2VkcnZfcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo0NzI6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDczLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz00Nzc9aW50IG10NzkyMV9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3Nl9waHkgKm1waHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDc4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo0Nzk6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXBoeS1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQ4MC1cdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBwaHktXHUwMDNlZGV2O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz02MzQ9c3RhdGljIGludCBtdDc5MjFfY29uZmlnKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBpbnQgcmFkaW9faWR4LCB1MzIgY2hhbmdlZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNjM2LVx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IG10NzkyeF9od19kZXYoaHcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjYzNzpcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy02MzgtXHRpbnQgcmV0ID0gMDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9Njk1PXN0YXRpYyB2b2lkIG10NzkyMV9ic3NfaW5mb19jaGFuZ2VkKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy02OTkte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjcwMDpcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy03MDEtXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gbXQ3OTJ4X2h3X2Rldihodyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTc2Nj1tdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlKHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsIGJvb2wgaXNfYWRkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy03NjgtXHRzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqbXZpZiA9IChzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqKXZpZi1cdTAwM2VkcnZfcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo3Njk6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXZpZi1cdTAwM2VwaHk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNzcwLVx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IHBoeS1cdTAwM2VkZXY7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTEwMTM9dm9pZCBtdDc5MjFfc2Nhbl93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMDE0LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoxMDE1Olx0c3RydWN0IG10NzkyeF9waHkgKnBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMDE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjEwMTc6XHRwaHkgPSAoc3RydWN0IG10NzkyeF9waHkgKiljb250YWluZXJfb2Yod29yaywgc3RydWN0IG10NzkyeF9waHksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTAxOC1cdFx0XHRcdFx0XHRzY2FuX3dvcmsud29yayk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTExMTc9bXQ3OTIxX3NldF9hbnRlbm5hKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBpbnQgcmFkaW9faWR4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMTIwLVx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IG10NzkyeF9od19kZXYoaHcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjExMjE6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTEyMi1cdGludCBtYXhfbnNzID0gaHdlaWdodDgoaHctXHUwMDNld2lwaHktXHUwMDNlYXZhaWxhYmxlX2FudGVubmFzX3R4KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MTE0ND1zdGF0aWMgaW50IG10NzkyMV9zdXNwZW5kKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMTQ3LVx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IG10NzkyeF9od19kZXYoaHcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjExNDg6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTE0OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MTE2OT1zdGF0aWMgaW50IG10NzkyMV9yZXN1bWUoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTExNzEtXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gbXQ3OTJ4X2h3X2Rldihodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MTE3MjpcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMTczLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xMzM0PW10NzkyMV9zdGFydF9hcChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTMzNy1cdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjEzMzg6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTMzOS1cdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MTM2Mj1tdDc5MjFfc3RvcF9hcChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTM2NS1cdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjEzNjY6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTM2Ny1cdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MTQwND1tdDc5MjFfY2hhbmdlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTE0MDgtXHRzdHJ1Y3QgbXQ3OTJ4X2NoYW5jdHggKm1jdHggPSAoc3RydWN0IG10NzkyeF9jaGFuY3R4ICopY3R4LVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjE0MDk6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTQxMC1cdHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWY7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTE1MzY9c3RhdGljIHZvaWQgbXQ3OTIxX3Jma2lsbF9wb2xsKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTE1Mzcte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjE1Mzg6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTUzOS1cdGludCByZXQgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jPTE2Mz1tdDc5MjFfbWN1X3NjYW5fZXZlbnQoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYy0xNjUtXHRzdHJ1Y3QgbXQ3Nl9waHkgKm1waHkgPSBcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5waHk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYzoxNjY6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXBoeS1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtMTY3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jPTQxMD1zdGF0aWMgaW50IG10NzkyMV9sb2FkX2NsYyhzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBjb25zdCBjaGFyICpmd19uYW1lKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTQxNS1cdHN0cnVjdCBtdDc2X2RldiAqbWRldiA9IFx1MDAyNmRldi1cdTAwM2VtdDc2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmM6NDE2Olx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IFx1MDAyNmRldi1cdTAwM2VwaHk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYy00MTctXHRjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jPTUyMz1zdGF0aWMgdm9pZCBtdDc5MjFfbWN1X3BhcnNlX3BoeV9jYXAoc3RydWN0IG10NzZfZGV2ICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtNTUzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmM6NTU0OnN0YXRpYyBpbnQgbXQ3OTIxX21jdV9nZXRfbmljX2NhcGFiaWxpdHkoc3RydWN0IG10NzkyeF9waHkgKm1waHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYy01NTUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jPTY3MD1pbnQgbXQ3OTIxX21jdV9zZXRfdHgoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYy03NjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYzo3NjQ6aW50IG10NzkyMV9tY3Vfc2V0X3JvYyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqdmlmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtNzY1LVx0XHQgICAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFuLCBpbnQgZHVyYXRpb24sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtODMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmM6ODMxOmludCBtdDc5MjFfbWN1X2Fib3J0X3JvYyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqdmlmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtODMyLVx0XHRcdCB1OCB0b2tlbl9pZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYy04NjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYzo4NjE6aW50IG10NzkyMV9tY3Vfc2V0X2NoYW5faW5mbyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBpbnQgY21kKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtODYyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYz0xMzk4PWludCBtdDc5MjFfbWN1X3NldF9jbGMoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdTggKmFscGhhMixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYy0xNDAwLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jOjE0MDE6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gKHN0cnVjdCBtdDc5MnhfcGh5ICopXHUwMDI2ZGV2LVx1MDAzZXBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTE0MDItXHRpbnQgaSwgcmV0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTE0MTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYzoxNDIwOmludCBtdDc5MjFfbWN1X2dldF90ZW1wZXJhdHVyZShzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtMTQyMS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtMTQzNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jOjE0Mzc6aW50IG10NzkyMV9tY3Vfd2ZfcmZfcGluX2N0cmwoc3RydWN0IG10NzkyeF9waHkgKnBoeSwgdTggYWN0aW9uKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtMTQzOC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmg9MjAyPXUzMiBtdDc5MjFfcmVnX21hcChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB1MzIgYWRkcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaC0yMDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaDoyMDQ6aW50IF9fbXQ3OTIxX3N0YXJ0KHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMjA1LWludCBtdDc5MjFfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oPTIxMT1pbnQgbXQ3OTIxX21jdV9zdGFfdXBkYXRlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMjEzLVx0XHRcdCAgZW51bSBtdDc2X3N0YV9pbmZvX3N0YXRlIHN0YXRlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oOjIxNDppbnQgbXQ3OTIxX21jdV9zZXRfY2hhbl9pbmZvKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksIGludCBjbWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMjE1LWludCBtdDc5MjFfbWN1X3NldF90eChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oPTIxNj1pbnQgbXQ3OTIxX21jdV9zZXRfZWVwcm9tKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmg6MjE3OmludCBtdDc5MjFfbWN1X2dldF9yeF9yYXRlKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaC0yMTgtXHRcdFx0ICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwgc3RydWN0IHJhdGVfaW5mbyAqcmF0ZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmg9MjIzPWludCBtdDc5MjFfbWN1X3JhZGlvX2xlZF9jdHJsKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHU4IHZhbHVlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oOjIyNDppbnQgbXQ3OTIxX21jdV93Zl9yZl9waW5fY3RybChzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCB1OCBhY3Rpb24pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMjI1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oPTI4MD12b2lkIG10NzkyMV9zdGF0c193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaDoyODE6dm9pZCBtdDc5MjFfc2V0X3N0cmVhbV9oZV9jYXBzKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMjgyLWludCBtdDc5MjFfaW5pdF9kZWJ1Z2ZzKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oPTMyND1pbnQgbXQ3OTIxX21jdV9jb25maWdfc25pZmZlcihzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqdmlmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMzI1LVx0XHRcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmg6MzI2OmludCBtdDc5MjFfbWN1X2dldF90ZW1wZXJhdHVyZShzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oLTMyNy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaD0zNDQ9aW50IG10NzkyMV9tY3Vfc2V0X2NsYyhzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB1OCAqYWxwaGEyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMzQ1LVx0XHQgICAgICAgZW51bSBlbnZpcm9ubWVudF9jYXAgZW52X2NhcCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaDozNDY6aW50IG10NzkyMV9tY3Vfc2V0X3JvYyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqdmlmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMzQ3LVx0XHQgICAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFuLCBpbnQgZHVyYXRpb24sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaC0zNDgtXHRcdCAgICAgICBlbnVtIG10NzkyMV9yb2NfcmVxIHR5cGUsIHU4IHRva2VuX2lkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oOjM0OTppbnQgbXQ3OTIxX21jdV9hYm9ydF9yb2Moc3RydWN0IG10NzkyeF9waHkgKnBoeSwgc3RydWN0IG10NzkyeF92aWYgKnZpZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oLTM1MC1cdFx0XHQgdTggdG9rZW5faWQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuYz0xNTA9bXQ3OTIxX3JlZ2RfaXNfdmFsaWRfYWxwaGEyKGNvbnN0IGNoYXIgKmFscGhhMilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmMtMTYzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jOjE2NDppbnQgbXQ3OTIxX3JlZ2RfY2hhbmdlKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksIGNoYXIgKmFscGhhMilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuYy0xNjUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuYy0xOTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmM6MTkyOmludCBtdDc5MjFfcmVnZF9pbml0KHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmMtMTkzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmg9MTU9Ym9vbCBtdDc5MjFfcmVnZF9jbGNfc3VwcG9ydGVkKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5oOjE2OmludCBtdDc5MjFfcmVnZF9jaGFuZ2Uoc3RydWN0IG10NzkyeF9waHkgKnBoeSwgY2hhciAqYWxwaGEyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuaDoxNzppbnQgbXQ3OTIxX3JlZ2RfaW5pdChzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuaC0xOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS90ZXN0bW9kZS5jPTExMT1pbnQgbXQ3OTIxX3Rlc3Rtb2RlX2NtZChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS90ZXN0bW9kZS5jLTExNS1cdHN0cnVjdCBtdDc2X3BoeSAqbXBoeSA9IGh3LVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS90ZXN0bW9kZS5jOjExNjpcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtcGh5LVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS90ZXN0bW9kZS5jLTExNy1cdGludCBlcnI7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdGVzdG1vZGUuYz0xNDg9aW50IG10NzkyMV90ZXN0bW9kZV9kdW1wKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3Qgc2tfYnVmZiAqbXNnLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3Rlc3Rtb2RlLmMtMTUyLVx0c3RydWN0IG10NzZfcGh5ICptcGh5ID0gaHctXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3Rlc3Rtb2RlLmM6MTUzOlx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG1waHktXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3Rlc3Rtb2RlLmMtMTU0LVx0aW50IGVycjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM9MTQ9c3RhdGljIHNzaXplX3QgbXQ3OTI1X3RoZXJtYWxfdGVtcF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTktXHRjYXNlIDA6IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoyMDpcdFx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTIxLVx0XHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqbWRldiA9IHBoeS1cdTAwM2VkZXY7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jPTQzPUFUVFJJQlVURV9HUk9VUFMobXQ3OTI1X2h3bW9uKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy00NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzo0NTpzdGF0aWMgaW50IG10NzkyNV90aGVybWFsX2luaXQoc3RydWN0IG10NzkyeF9waHkgKnBoeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy00Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM9MzU5PW10NzkyNV9tYWNfZmlsbF9yeChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTM2Ny1cdHN0cnVjdCBtdDc2X3BoeSAqbXBoeSA9IFx1MDAyNmRldi1cdTAwM2VtdDc2LnBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjM2ODpcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBcdTAwMjZkZXYtXHUwMDNlcGh5O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMzY5LVx0c3RydWN0IGllZWU4MDIxMV9zdXBwb3J0ZWRfYmFuZCAqc2JhbmQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTE1PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTY6bXQ3OTI1X2luaXRfaGVfY2FwcyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBlbnVtIG5sODAyMTFfYmFuZCBiYW5kLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE3LVx0XHQgICAgc3RydWN0IGllZWU4MDIxMV9zYmFuZF9pZnR5cGVfZGF0YSAqZGF0YSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MTYwPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTYxOm10NzkyNV9pbml0X2VodF9jYXBzKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksIGVudW0gbmw4MDIxMV9iYW5kIGJhbmQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTYyLVx0XHQgICAgIHN0cnVjdCBpZWVlODAyMTFfc2JhbmRfaWZ0eXBlX2RhdGEgKmRhdGEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTI2My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoyNjQ6aW50IG10NzkyNV9pbml0X21sb19jYXBzKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMjY1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9Mjk1PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6Mjk2Ol9fbXQ3OTI1X3NldF9zdHJlYW1faGVfZWh0X2NhcHMoc3RydWN0IG10NzkyeF9waHkgKnBoeSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0yOTctXHRcdFx0XHRzdHJ1Y3QgaWVlZTgwMjExX3N1cHBvcnRlZF9iYW5kICpzYmFuZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMzIxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjMyMjp2b2lkIG10NzkyNV9zZXRfc3RyZWFtX2hlX2VodF9jYXBzKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMzIzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMzM2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjMzNzppbnQgX19tdDc5MjVfc3RhcnQoc3RydWN0IG10NzkyeF9waHkgKnBoeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0zMzgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0zNjM9c3RhdGljIGludCBtdDc5MjVfc3RhcnQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMzY0LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzozNjU6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMzY2LVx0aW50IGVycjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9NDUxPW10NzkyNV9hZGRfaW50ZXJmYWNlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy00NTQtXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gbXQ3OTJ4X2h3X2Rldihodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6NDU1Olx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG10NzkyeF9od19waHkoaHcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTQ1Ni1cdGludCByZXQgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz00ODM9c3RhdGljIHZvaWQgbXQ3OTI1X3JvY19pdGVyKHZvaWQgKnByaXYsIHU4ICptYWMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTQ4Ni1cdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjQ4NzpcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTQ4OC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9NDkyPXZvaWQgbXQ3OTI1X3JvY19hYm9ydF9zeW5jKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNDkzLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzo0OTQ6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gXHUwMDI2ZGV2LVx1MDAzZXBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy00OTUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTUwOT12b2lkIG10NzkyNV9yb2Nfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNTEwLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzo1MTE6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTUxMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzo1MTM6XHRwaHkgPSAoc3RydWN0IG10NzkyeF9waHkgKiljb250YWluZXJfb2Yod29yaywgc3RydWN0IG10NzkyeF9waHksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNTE0LVx0XHRcdFx0XHRcdHJvY193b3JrKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNTI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjUyNzpzdGF0aWMgaW50IG10NzkyNV9hYm9ydF9yb2Moc3RydWN0IG10NzkyeF9waHkgKnBoeSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy01MjgtXHRcdFx0ICAgIHN0cnVjdCBtdDc5MnhfYnNzX2NvbmYgKm1jb25mKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy01NDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6NTQzOnN0YXRpYyBpbnQgbXQ3OTI1X3NldF9yb2Moc3RydWN0IG10NzkyeF9waHkgKnBoeSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy01NDQtXHRcdFx0ICBzdHJ1Y3QgbXQ3OTJ4X2Jzc19jb25mICptY29uZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNTcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjU3MzpzdGF0aWMgaW50IG10NzkyNV9zZXRfbWxvX3JvYyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTU3NC1cdFx0XHQgICAgICBzdHJ1Y3QgbXQ3OTJ4X2Jzc19jb25mICptY29uZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9NjAwPXN0YXRpYyBpbnQgbXQ3OTI1X3JlbWFpbl9vbl9jaGFubmVsKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy02MDYtXHRzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqbXZpZiA9IChzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqKXZpZi1cdTAwM2VkcnZfcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzo2MDc6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNjA4LVx0aW50IGVycjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9NjE4PXN0YXRpYyBpbnQgbXQ3OTI1X2NhbmNlbF9yZW1haW5fb25fY2hhbm5lbChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNjIxLVx0c3RydWN0IG10NzkyeF92aWYgKm12aWYgPSAoc3RydWN0IG10NzkyeF92aWYgKil2aWYtXHUwMDNlZHJ2X3ByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6NjIyOlx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG10NzkyeF9od19waHkoaHcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTYyMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9NjI3PXN0YXRpYyBpbnQgbXQ3OTI1X3NldF9saW5rX2tleShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgZW51bSBzZXRfa2V5X2NtZCBjbWQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTY3MS1cdGlmIChjbWQgPT0gU0VUX0tFWSBcdTAwMjZcdTAwMjYgIW1jb25mLVx1MDAzZW10NzYuY2lwaGVyKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6NjcyOlx0XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNjczLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz04MzA9c3RhdGljIHZvaWQgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXIoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTgzNS1cdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzo4MzY6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtODM3LVx0dTMyIGZsYWdzID0gTVQ3OTI1X0ZJTFRFUl9FTkFCTEU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTE0Nzc9dm9pZCBtdDc5MjVfc2Nhbl93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xNDc4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxNDc5Olx0c3RydWN0IG10NzkyeF9waHkgKnBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xNDgwLVx0c3RydWN0IG10NzkyeF9kZXYgKmRldjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTQ4Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxNDgzOlx0cGh5ID0gKHN0cnVjdCBtdDc5MnhfcGh5ICopY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBtdDc5MnhfcGh5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE0ODQtXHRcdFx0XHRcdFx0c2Nhbl93b3JrLndvcmspO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0xNjA0PW10NzkyNV9zZXRfYW50ZW5uYShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgaW50IHJhZGlvX2lkeCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTYwNy1cdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxNjA4Olx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG10NzkyeF9od19waHkoaHcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE2MDktXHRpbnQgbWF4X25zcyA9IGh3ZWlnaHQ4KGh3LVx1MDAzZXdpcGh5LVx1MDAzZWF2YWlsYWJsZV9hbnRlbm5hc190eCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTE2MzI9c3RhdGljIGludCBtdDc5MjVfc3VzcGVuZChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTYzNS1cdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxNjM2Olx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG10NzkyeF9od19waHkoaHcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE2MzctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTE2NTc9c3RhdGljIGludCBtdDc5MjVfcmVzdW1lKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xNjU5LVx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IG10NzkyeF9od19kZXYoaHcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjE2NjA6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTY2MS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MTkzNj1tdDc5MjVfY2hhbmdlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE5NDAtXHRzdHJ1Y3QgbXQ3OTJ4X2NoYW5jdHggKm1jdHggPSAoc3RydWN0IG10NzkyeF9jaGFuY3R4ICopY3R4LVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjE5NDE6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTk0Mi1cdHN0cnVjdCBtdDc5MnhfYnNzX2NvbmYgKm1jb25mO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0yMDYzPXN0YXRpYyB2b2lkIG10NzkyNV9saW5rX2luZm9fY2hhbmdlZChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMjA2OC1cdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjIwNjk6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMjA3MC1cdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MjEyMj1tdDc5MjVfY2hhbmdlX3ZpZl9saW5rcyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMjEzMS1cdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoyMTMyOlx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG10NzkyeF9od19waHkoaHcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTIxMzMtXHRzdHJ1Y3QgaWVlZTgwMjExX2Jzc19jb25mICpsaW5rX2NvbmY7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTIzNTM9c3RhdGljIHZvaWQgbXQ3OTI1X3Jma2lsbF9wb2xsKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTIzNTQte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjIzNTU6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMjM1Ni1cdGludCByZXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM9NDA2PW10NzkyNV9tY3Vfc2Nhbl9ldmVudChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTQwOC1cdHN0cnVjdCBtdDc2X3BoeSAqbXBoeSA9IFx1MDAyNmRldi1cdTAwM2VtdDc2LnBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jOjQwOTpcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtcGh5LVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy00MTAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM9Nzk4PXN0YXRpYyBpbnQgbXQ3OTI1X2xvYWRfY2xjKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIGNvbnN0IGNoYXIgKmZ3X25hbWUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtODAzLVx0c3RydWN0IG10NzZfZGV2ICptZGV2ID0gXHUwMDI2ZGV2LVx1MDAzZW10NzY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzo4MDQ6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gXHUwMDI2ZGV2LVx1MDAzZXBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTgwNS1cdGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZnc7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM9ODg4PWludCBtdDc5MjVfbWN1X2Z3X2xvZ18yX2hvc3Qoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdTggY3RybClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy05MDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzo5MTA6aW50IG10NzkyNV9tY3VfZ2V0X3RlbXBlcmF0dXJlKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy05MTEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jPTEzMjc9aW50IG10NzkyNV9tY3VfYWRkX2tleShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0xMzUxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM6MTM1MjppbnQgbXQ3OTI1X21jdV9zZXRfbWxvX3JvYyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3OTJ4X2Jzc19jb25mICptY29uZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTEzNTMtXHRcdFx0ICAgdTE2IHNlbF9saW5rcywgaW50IGR1cmF0aW9uLCB1OCB0b2tlbl9pZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0xNDU1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM6MTQ1NjppbnQgbXQ3OTI1X21jdV9zZXRfcm9jKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksIHN0cnVjdCBtdDc5MnhfYnNzX2NvbmYgKm1jb25mLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMTQ1Ny1cdFx0ICAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbm5lbCAqY2hhbiwgaW50IGR1cmF0aW9uLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTE1MDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzoxNTA1OmludCBtdDc5MjVfbWN1X2Fib3J0X3JvYyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3OTJ4X2Jzc19jb25mICptY29uZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTE1MDYtXHRcdFx0IHU4IHRva2VuX2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jPTI2NzI9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jOjI2NzM6bXQ3OTI1X21jdV9ic3NfYm1jX3RsdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMjY3NC1cdFx0ICAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM9MjcwMj1tdDc5MjVfbWN1X2Jzc19tbGRfdGx2KHN0cnVjdCBza19idWZmICpza2IsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMjcwNy1cdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopbGlua19jb25mLVx1MDAzZXZpZi1cdTAwM2VkcnZfcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jOjI3MDg6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXZpZi1cdTAwM2VwaHk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0yNzA5LVx0c3RydWN0IGJzc19tbGRfdGx2ICptbGQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM9Mjc2Nj1tdDc5MjVfbWN1X2Jzc19oZV90bHYoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGllZWU4MDIxMV9ic3NfY29uZiAqbGlua19jb25mLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM6Mjc2NzpcdFx0ICAgICAgc3RydWN0IG10NzkyeF9waHkgKnBoeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTI3Njgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jPTI4MTA9bXQ3OTI1X21jdV9ic3NfaWZzX3RsdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTI4MTMtXHRzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqbXZpZiA9IChzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqKWxpbmtfY29uZi1cdTAwM2V2aWYtXHUwMDNlZHJ2X3ByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzoyODE0Olx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG12aWYtXHUwMDNlcGh5O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMjgxNS1cdHN0cnVjdCBic3NfaWZzX3RpbWVfdGx2ICppZnNfdGltZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0yODIzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM6MjgyNDppbnQgbXQ3OTI1X21jdV9zZXRfdGltaW5nKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0yODI1LVx0XHRcdCAgc3RydWN0IGllZWU4MDIxMV9ic3NfY29uZiAqbGlua19jb25mKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jPTI4NDI9dm9pZCBtdDc5MjVfbWN1X2RlbF9kZXYoc3RydWN0IG10NzZfZGV2ICptZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTI4OTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzoyODk4OmludCBtdDc5MjVfbWN1X2FkZF9ic3NfaW5mb19zdGEoc3RydWN0IG10NzkyeF9waHkgKnBoeSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTI4OTktXHRcdFx0XHRzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHhfY29uZiAqY3R4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTI5MzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzoyOTQwOmludCBtdDc5MjVfbWN1X2FkZF9ic3NfaW5mbyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMjk0MS1cdFx0XHQgICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYz0zNTMxPWludCBtdDc5MjVfbWN1X3NldF9jbGMoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdTggKmFscGhhMixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0zNTMzLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jOjM1MzQ6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gKHN0cnVjdCBtdDc5MnhfcGh5ICopXHUwMDI2ZGV2LVx1MDAzZXBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTM1MzUtXHRpbnQgaSwgcmV0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jPTM2NDg9RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTI1X21jdV9maWxsX21lc3NhZ2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMzY0OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jOjM2NTA6aW50IG10NzkyNV9tY3Vfc2V0X3J0c190aHJlc2goc3RydWN0IG10NzkyeF9waHkgKnBoeSwgdTMyIHZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTM2NTEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTM2NzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzozNjcyOmludCBtdDc5MjVfbWN1X3NldF9yYWRpb19lbihzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBib29sIGVuYWJsZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTM2NzMte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jPTM4Nzg9aW50IG10NzkyNV9tY3Vfc2V0X3JhdGVfdHhwb3dlcihzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0zOTA3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM6MzkwODppbnQgbXQ3OTI1X21jdV93Zl9yZl9waW5fY3RybChzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMzkwOS17XG4tLVxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDEwOjAyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxMDE3CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogNDUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzc3VtaW5nIEkmIzM5O20gYWxyZWFkeSBkZWVwIGluIHRoZSB3ZWVkcyB3aXRoIE1UNzkyeCBkcml2ZXIgaW50ZXJuYWxzOgoKKipEaXZpbmcgaW50byB0aGUgTVQ3OTJ4IFBIWSBTdHJ1Y3R1cmUqKgoKQWxyaWdodCwgc28gdGhlIGBtdDc5MnhfcGh5YCBzdHJ1Y3QgaXMga2V5IGhlcmUuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyBpdCYjMzk7cyBiZWluZyBoYW5kbGVkLiBJdCYjMzk7cyBlaXRoZXIgYSBkaXJlY3RseSBlbWJlZGRlZCBtZW1iZXIgd2l0aGluIHRoZSBgbXQ3OTJ4X2RldmAgc3RydWN0dXJlLCBvciBpdCYjMzk7cyBiZWluZyBhbGxvY2F0ZWQgc2VwYXJhdGVseSwgYW5kIHRoZSBwb2ludGVyIGlzIHN0b3JlZCBpbiBgbXQ3OTJ4X2RldmAuIFRoaXMgaXMgYSBwcmV0dHkgc3RhbmRhcmQgcGF0dGVybiwgc28gSSB3YW50IHRvIGNvbmZpcm0uIFRoZSBuZXh0IGxvZ2ljYWwgc3RlcCwgYmVmb3JlIEkgZ28gZGVlcGVyIGludG8gdGhlIGNvZGUsIGlzIHRvIHF1aWNrbHkgcmVmcmVzaCBteSBtZW1vcnkgb24gdGhlIGBzdHJ1Y3QgbXQ3OTJ4X2RldmAgZGVmaW5pdGlvbi4gS25vd2luZyBob3cgYG10NzkyeF9kZXZgIGlzIHN0cnVjdHVyZWQgaXMgZ29pbmcgdG8gaW1tZWRpYXRlbHkgdGVsbCBtZSBob3cgdG8gYWNjZXNzIHRoYXQgYG10NzkyeF9waHlgIGluc3RhbmNlLiBJdCB3aWxsIHNhdmUgYSBsb3Qgb2YgZGVidWdnaW5nIHRpbWUgbGF0ZXIhIExldCYjMzk7cyBnZXQgdGhhdCBkZWZpbml0aW9uIHVwLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI2LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzdHJ1Y3QgbXQ3OTJ4X2RldiBcXHsmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4Lmg9MjMzPXN0cnVjdCBtdDc5MnhfaGlmX29wcyB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaC0yNDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oOjI0MTpzdHJ1Y3QgbXQ3OTJ4X2RldiB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oLTI0Mi1cdHVuaW9uIHsgLyogbXVzdCBiZSBmaXJzdCAqL1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI3LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTQ2NwoJCQkJCQkJb3V0cHV0OiA0OAoJCQkJCQkJdGhvdWdodHM6IDM3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHN1bW1hcnksIGFzIGlmIEkgd2VyZSB0aGlua2luZyB0aGVzZSB0aG91Z2h0czoKCioqRGl2aW5nIGludG8gdGhlIE1UNzkyeCBEcml2ZXIgU3RydWN0dXJlKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGFyY2hpdGVjdHVyZSBvZiB0aGlzIE1UNzkyeCB3aXJlbGVzcyBkcml2ZXIuIFRoZSBmaXJzdCB0aGluZyBvbiBteSBsaXN0IGlzIHRvIGRpc3NlY3QgdGhlIGBzdHJ1Y3QgbXQ3OTJ4X2RldmAgZGF0YSBzdHJ1Y3R1cmUuIEl0JiMzOTtzIGRlZmluZWQgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4LmhgLCB3aGljaCBtYWtlcyBwZXJmZWN0IHNlbnNlLiBUaGlzIHN0cnVjdCBpcyBsaWtlbHkgdGhlIGNlbnRyYWwgaHViIGZvciByZXByZXNlbnRpbmcgdGhlIGRldmljZSYjMzk7cyBoYXJkd2FyZSBzdGF0ZSBhbmQgcmVzb3VyY2VzIHdpdGhpbiB0aGUgZHJpdmVyLiBJIGV4cGVjdCB0byBmaW5kIGNyaXRpY2FsIGRldmljZS1zcGVjaWZpYyBpbmZvcm1hdGlvbiBoZXJlIOKAkyByZWdpc3RlciBtYXBwaW5ncywgaW50ZXJydXB0IGNvbmZpZ3VyYXRpb25zLCBhbmQgcG9pbnRlcnMgdG8gb3RoZXIgcmVsYXRlZCBkYXRhIHN0cnVjdHVyZXMuIFRoaXMgaXMgdGhlIGVudHJ5IHBvaW50IGZvciB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgZHJpdmVyIGludGVyYWN0cyB3aXRoIHRoZSBoYXJkd2FyZSwgc28gSSBuZWVkIHRvIGtub3cgdGhpcyBpbnNpZGUgYW5kIG91dC4gSXQmIzM5O3MgdGhlIGNvcmUgb2YgdGhlIHdob2xlIG9wZXJhdGlvbi4gTGV0JiMzOTtzIHNlZSB3aGF0IHdlJiMzOTt2ZSBnb3QuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjgvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDEwOjAyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaCYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDI0MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA1MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgMjQwOlx0XG4gMjQxOlx0c3RydWN0IG10NzkyeF9kZXYge1xuIDI0MjpcdFx0dW5pb24geyAvKiBtdXN0IGJlIGZpcnN0ICovXG4gMjQzOlx0XHRcdHN0cnVjdCBtdDc2X2RldiBtdDc2O1xuIDI0NDpcdFx0XHRzdHJ1Y3QgbXQ3Nl9waHkgbXBoeTtcbiAyNDU6XHRcdH07XG4gMjQ2Olx0XG4gMjQ3Olx0XHRzdHJ1Y3QgbWFjX2FkZHJlc3MgbWFjYWRkcl9saXN0WzhdO1xuIDI0ODpcdFxuIDI0OTpcdFx0Y29uc3Qgc3RydWN0IG10NzZfYnVzX29wcyAqYnVzX29wcztcbiAyNTA6XHRcdHN0cnVjdCBtdDc5MnhfcGh5IHBoeTtcbiAyNTE6XHRcbiAyNTI6XHRcdHN0cnVjdCB3b3JrX3N0cnVjdCByZXNldF93b3JrO1xuIDI1MzpcdFx0Ym9vbCBod19mdWxsX3Jlc2V0OjE7XG4gMjU0Olx0XHRib29sIGh3X2luaXRfZG9uZToxO1xuIDI1NTpcdFx0Ym9vbCBmd19hc3NlcnQ6MTtcbiAyNTY6XHRcdGJvb2wgaGFzX2VodDoxO1xuIDI1NzpcdFx0Ym9vbCByZWdkX3VzZXI6MTtcbiAyNTg6XHRcdGJvb2wgcmVnZF9pbl9wcm9ncmVzczoxO1xuIDI1OTpcdFx0Ym9vbCBhc3BtX3N1cHBvcnRlZDoxO1xuIDI2MDpcdFx0Ym9vbCBoaWZfaWRsZToxO1xuIDI2MTpcdFx0Ym9vbCBoaWZfcmVzdW1lZDoxO1xuIDI2MjpcdFx0Ym9vbCByZWdkX2NoYW5nZToxO1xuIDI2MzpcdFx0d2FpdF9xdWV1ZV9oZWFkX3Qgd2FpdDtcbiAyNjQ6XHRcbiAyNjU6XHRcdHN0cnVjdCB3b3JrX3N0cnVjdCBpbml0X3dvcms7XG4gMjY2Olx0XHRzdHJ1Y3Qgd29ya19zdHJ1Y3QgdXNiX3Jlc2V0X3dvcms7XG4gMjY3Olx0XHRhdG9taWNfdCB1c2JfcmVzZXRfcGVuZGluZztcbiAyNjg6XHRcbiAyNjk6XHRcdHU4IGZ3X2RlYnVnO1xuIDI3MDpcdFx0dTggZndfZmVhdHVyZXM7XG4gMjcxOlx0XG4gMjcyOlx0XHRzdHJ1Y3QgbXQ3Nl9jb25uYWNfcG0gcG07XG4gMjczOlx0XHRzdHJ1Y3QgbXQ3Nl9jb25uYWNfY29yZWR1bXAgY29yZWR1bXA7XG4gMjc0Olx0XHRjb25zdCBzdHJ1Y3QgbXQ3OTJ4X2hpZl9vcHMgKmhpZl9vcHM7XG4gMjc1Olx0XHRjb25zdCBzdHJ1Y3QgbXQ3OTJ4X2lycV9tYXAgKmlycV9tYXA7XG4gMjc2Olx0XG4gMjc3Olx0XHRzdHJ1Y3Qgd29ya19zdHJ1Y3QgaXB2Nl9uc193b3JrO1xuIDI3ODpcdFx0c3RydWN0IGRlbGF5ZWRfd29yayBtbG9fcG1fd29yaztcbiAyNzk6XHRcdC8qIElQdjYgYWRkcmVzc2VzIGZvciBXb1dMQU4gKi9cbiAyODA6XHRcdHN0cnVjdCBza19idWZmX2hlYWQgaXB2Nl9uc19saXN0O1xuIDI4MTpcdFxuIDI4MjpcdFx0ZW51bSBlbnZpcm9ubWVudF9jYXAgY291bnRyeV9pZV9lbnY7XG4gMjgzOlx0XHR1MzIgYmFja3VwX2wxO1xuIDI4NDpcdFx0dTMyIGJhY2t1cF9sMjtcbiAyODU6XHRcbiAyODY6XHRcdHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpuZXdfY3R4O1xuIDI4NzpcdH07XG4gMjg4Olx0XG4gMjg5Olx0c3RhdGljIGlubGluZSBzdHJ1Y3QgbXQ3OTJ4X2Jzc19jb25mICpcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjYgMTA6MDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI0OTIKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiA0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgcHJlc2VudGVkIGFzIGEgZmlyc3QtcGVyc29uIGV4cGVydCBzdW1tYXJ5OgoKKipEaWdnaW5nIGludG8gdGhlIE1UNzkyeCBQSFkgU3RydWN0dXJlKioKCkFscmlnaHQsIGxldCYjMzk7cyBzZWUuLi5JJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBNVDc5MnggZHJpdmVyLCBhbmQgSSBzZWUgdGhhdCB0aGlzIGBzdHJ1Y3QgbXQ3OTJ4X3BoeSBwaHk7YCBpcyBuZXN0ZWQgcmlnaHQgaW5zaWRlIGBzdHJ1Y3QgbXQ3OTJ4X2RldmAuIE1ha2VzIHBlcmZlY3Qgc2Vuc2U7IHRoZSBQSFkgaXMgY2xlYXJseSBhIGZ1bmRhbWVudGFsIGNvbXBvbmVudCBvZiB0aGUgZGV2aWNlLiBNeSBxdWVzdGlvbiBub3cgaXMsIGhvdyBpcyB0aGUgd2hvbGUgYHN0cnVjdCBtdDc5MnhfZGV2YCBhbGxvY2F0ZWQ/IElzIGl0IG9uIHRoZSBzdGFjaywgaW4ga2VybmVsIG1lbW9yeSB2aWEgYGttYWxsb2NgLCBvciBzb21ldGhpbmcgZWxzZSBlbnRpcmVseT8gS25vd2luZyB0aGUgYWxsb2NhdGlvbiBtZXRob2QgaXMgY3J1Y2lhbCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgbGlmZXRpbWUgbWFuYWdlbWVudCBvZiB0aGUgYHBoeWAgc3RydWN0dXJlIHdpdGhpbiBpdC4gQXJlIHdlIGRlYWxpbmcgd2l0aCBhIHNpbmdsZSwgc3RhdGljYWxseSBhbGxvY2F0ZWQgZGV2aWNlLCBvciBkbyB3ZSBoYXZlIHRoZSBhYmlsaXR5IHRvIGNyZWF0ZSBtdWx0aXBsZSBkZXZpY2VzIGR5bmFtaWNhbGx5PyBUaGUgY29udGV4dCB3aWxsIGJlIGltcG9ydGFudCBmb3IgdGhpbmdzIGxpa2UgcmVzb3VyY2UgbWFuYWdlbWVudCwgZHJpdmVyIGluaXRpYWxpemF0aW9uLCBhbmQgc2h1dGRvd24gc2VxdWVuY2VzLiBJIG5lZWQgdG8gdHJhY2UgYmFjayB0aHJvdWdoIHRoZSBjb2RlLCBwcm9iYWJseSBzdGFydGluZyB3aXRoIHRoZSBkZXZpY2UgcHJvYmUgZnVuY3Rpb24sIHRvIGZpZ3VyZSBvdXQgd2hlcmUgdGhhdCBgbXQ3OTJ4X2RldmAgZ2V0cyBpdHMgbWVtb3J5LiBUaGF0IHdpbGwgbGlrZWx5IHJldmVhbCB0aGUgYmlnZ2VyIHBpY3R1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzAvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDEwOjAyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2FsbG9jLiptdDc5MnhfZGV2JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3NiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oPTQ0NT12b2lkIG10NzkyeF9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4Lmg6NDQ2OmludCBtdDc5MnhfZG1hX2FsbG9jX3F1ZXVlcyhzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaC00NDctXHRcdFx0ICAgIGNvbnN0IHN0cnVjdCBtdDc5MnhfZG1hX2xheW91dCAqbGF5b3V0KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYz04OD1FWFBPUlRfU1lNQk9MX0dQTChtdDc5MnhfcnhfcG9sbF9jb21wbGV0ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYy04OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jOjkwOmludCBtdDc5MnhfZG1hX2FsbG9jX3F1ZXVlcyhzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmMtOTEtXHRcdFx0ICAgIGNvbnN0IHN0cnVjdCBtdDc5MnhfZG1hX2xheW91dCAqbGF5b3V0KVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMxLzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzE1MQoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDEzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipEaXZpbmcgaW50byBgbXQ3Nl9hbGxvY19kZXZpY2VgKioKCk9rYXksIHRpbWUgdG8gZGlzc2VjdCBgbXQ3Nl9hbGxvY19kZXZpY2VgLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBleGFjdGx5IGhvdyB0aGlzIGZ1bmN0aW9uIGhhbmRsZXMgdGhlIGluaXRpYWxpemF0aW9uIG9mIGFuIE1UNzYtYmFzZWQgZGV2aWNlLiBTcGVjaWZpY2FsbHksIEkmIzM5O20gaW50ZXJlc3RlZCBpbiB0aGUgcmVzb3VyY2UgYWxsb2NhdGlvbiBzdHJhdGVneSBoZXJlLiBJIHN1c3BlY3QgaXQmIzM5O3MgcmVzcG9uc2libGUgZm9yIGdyYWJiaW5nIHRoZSBQQ0kgcmVzb3VyY2VzLCBsaWtlbHkgaW5jbHVkaW5nIHRoZSBCQVJzLCBpbnRlcnJ1cHQgbGluZXMsIGFuZCBETUEgYnVmZmVycyBpZiBhcHBsaWNhYmxlLiBJdCYjMzk7cyBwcm9iYWJseSBzZXR0aW5nIHVwIHRoZSBpbml0aWFsIHN0cnVjdHVyZXMsIGxpa2UgdGhlIGBzdHJ1Y3QgbXQ3Nl9kZXZgIGl0c2VsZiwgYW5kIGFzc29jaWF0aW5nIGl0IHdpdGggdGhlIFBDSSBkZXZpY2UgaW5mb3JtYXRpb24uIEkgd2FudCB0byBwYXkgY2xvc2UgYXR0ZW50aW9uIHRvIGFueSBlcnJvciBoYW5kbGluZy4gRG9lcyBpdCBncmFjZWZ1bGx5IGhhbmRsZSByZXNvdXJjZSBjb25mbGljdHM/IFdoYXQgYWJvdXQgcHJvYmluZyBmb3IgdGhlIHJpZ2h0IGhhcmR3YXJlIElEPyBJIG5lZWQgdG8gYmUgc3VyZSB0aGUgZnVuY3Rpb24mIzM5O3MgY2hlY2tzIGFyZSByb2J1c3QsIGVzcGVjaWFsbHkgd2hlbiBkZWFsaW5nIHdpdGggZGlmZmVyZW50IGhhcmR3YXJlIHJldmlzaW9ucyBvciB2ZW5kb3Itc3BlY2lmaWMgbnVhbmNlcy4gQW5kLCBJIGV4cGVjdCB0aGVyZSB0byBiZSBjYWxscyB0byBhbGxvY2F0ZSB0aGUgZmlybXdhcmUgYnVmZmVycyB0byBsb2FkIHRoZSBmaXJtd2FyZSBsYXRlci4gTGV04oCZcyBjb25maXJtIGFsbCBvZiB0aGVzZSBzdXNwaWNpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMyLzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc2X2FsbG9jX2RldmljZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jPTY2Nz1zdHJ1Y3QgbXQ3Nl9kZXYgKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjY2ODptdDc2X2FsbG9jX2RldmljZShzdHJ1Y3QgZGV2aWNlICpwZGV2LCB1bnNpZ25lZCBpbnQgc2l6ZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy02NjktXHRcdCAgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgKm9wcyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtNzQzLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYzo3NDQ6RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl9hbGxvY19kZXZpY2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTc0NS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaD0xMzAxPV9fbXQ3Nl93Y2lkX3B0cihzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgdTE2IGlkeClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xMzA5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTMxMDpzdHJ1Y3QgbXQ3Nl9kZXYgKm10NzZfYWxsb2NfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKnBkZXYsIHVuc2lnbmVkIGludCBzaXplLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTMxMS1cdFx0XHRcdCAgIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzICpvcHMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvcGNpLmM9MTU9bXQ3NnBjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL3BjaS5jLTM0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvcGNpLmM6MzU6XHRtZGV2ID0gbXQ3Nl9hbGxvY19kZXZpY2UoXHUwMDI2cGRldi1cdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgXHUwMDI2bXQ3NjAzX29wcyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL3BjaS5jLTM2LVx0XHRcdFx0IFx1MDAyNm10NzYwM19kcnZfb3BzKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9zb2MuYz0xMD1tdDc2X3dtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9zb2MuYy0yNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL3NvYy5jOjI2Olx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBzaXplb2YoKmRldiksIFx1MDAyNm10NzYwM19vcHMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9zb2MuYy0yNy1cdFx0XHRcdCBcdTAwMjZtdDc2MDNfZHJ2X29wcyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbW1pby5jPTE2Nj1pbnQgbXQ3NjE1X21taW9fcHJvYmUoc3RydWN0IGRldmljZSAqcGRldiwgdm9pZCBfX2lvbWVtICptZW1fYmFzZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tbWlvLmMtMTk2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbW1pby5jOjE5NzpcdG1kZXYgPSBtdDc2X2FsbG9jX2RldmljZShwZGV2LCBzaXplb2YoKmRldiksIG9wcywgXHUwMDI2ZHJ2X29wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tbWlvLmMtMTk4LVx0aWYgKCFtZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYz03Nj1zdGF0aWMgaW50IG10NzY2M3NfcHJvYmUoc3RydWN0IHNkaW9fZnVuYyAqZnVuYyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvLmMtMTExLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jOjExMjpcdG1kZXYgPSBtdDc2X2FsbG9jX2RldmljZShcdTAwMjZmdW5jLVx1MDAzZWRldiwgc2l6ZW9mKCpkZXYpLCBvcHMsIFx1MDAyNmRydl9vcHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jLTExMy1cdGlmICghbWRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYz0xMTI9c3RhdGljIGludCBtdDc2NjN1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50Zixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0xNDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoxNDk6XHRtZGV2ID0gbXQ3Nl9hbGxvY19kZXZpY2UoXHUwMDI2dXNiX2ludGYtXHUwMDNlZGV2LCBzaXplb2YoKmRldiksIG9wcywgXHUwMDI2ZHJ2X29wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0xNTAtXHRpZiAoIW1kZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmM9MTU0PW10NzZ4MGVfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYy0xOTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYzoxOTI6XHRtZGV2ID0gbXQ3Nl9hbGxvY19kZXZpY2UoXHUwMDI2cGRldi1cdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgXHUwMDI2bXQ3NngwZV9vcHMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYy0xOTMtXHRcdFx0XHQgXHUwMDI2ZHJ2X29wcyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM9MjEzPXN0YXRpYyBpbnQgbXQ3NngwdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqdXNiX2ludGYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMjM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM6MjM2Olx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKFx1MDAyNnVzYl9pbnRmLVx1MDAzZWRldiwgc2l6ZW9mKCpkZXYpLCBcdTAwMjZtdDc2eDB1X29wcyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTIzNy1cdFx0XHRcdCBcdTAwMjZkcnZfb3BzKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYz0yMD1tdDc2eDJlX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtNTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYzo1NjpcdG1kZXYgPSBtdDc2X2FsbG9jX2RldmljZShcdTAwMjZwZGV2LVx1MDAzZWRldiwgc2l6ZW9mKCpkZXYpLCBcdTAwMjZtdDc2eDJfb3BzLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtNTctXHRcdFx0XHQgXHUwMDI2ZHJ2X29wcyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmM9MzI9c3RhdGljIGludCBtdDc2eDJ1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jLTUzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmM6NTQ6XHRtZGV2ID0gbXQ3Nl9hbGxvY19kZXZpY2UoXHUwMDI2aW50Zi1cdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgXHUwMDI2bXQ3NngydV9vcHMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYy01NS1cdFx0XHRcdCBcdTAwMjZkcnZfb3BzKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM9OTE3PXN0cnVjdCBtdDc5MTVfZGV2ICptdDc5MTVfbW1pb19wcm9iZShzdHJ1Y3QgZGV2aWNlICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy05NDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6OTQ0Olx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKHBkZXYsIHNpemVvZigqZGV2KSwgXHUwMDI2bXQ3OTE1X29wcywgXHUwMDI2ZHJ2X29wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtOTQ1LVx0aWYgKCFtZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jPTI1OT1zdGF0aWMgaW50IG10NzkyMV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmMtMzM4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmM6MzM5Olx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBzaXplb2YoKmRldiksIG9wcywgXHUwMDI2ZHJ2X29wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2kuYy0zNDAtXHRpZiAoIW1kZXYpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvLmM9OTA9c3RhdGljIGludCBtdDc5MjFzX3Byb2JlKHN0cnVjdCBzZGlvX2Z1bmMgKmZ1bmMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jLTEzNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3NkaW8uYzoxMzg6XHRtZGV2ID0gbXQ3Nl9hbGxvY19kZXZpY2UoXHUwMDI2ZnVuYy1cdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgb3BzLCBcdTAwMjZkcnZfb3BzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3NkaW8uYy0xMzktXHRpZiAoIW1kZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmM9MTUwPXN0YXRpYyBpbnQgbXQ3OTIxdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqdXNiX2ludGYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmMtMTk3LVx0b3BzLVx1MDAzZXN0b3AgPSBtdDc5Mnh1X3N0b3A7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYzoxOTg6XHRtZGV2ID0gbXQ3Nl9hbGxvY19kZXZpY2UoXHUwMDI2dXNiX2ludGYtXHUwMDNlZGV2LCBzaXplb2YoKmRldiksIG9wcywgXHUwMDI2ZHJ2X29wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYy0xOTktXHRpZiAoIW1kZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmM9MzEzPXN0YXRpYyBpbnQgbXQ3OTI1X3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYy0zOTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYzozOTk6XHRtZGV2ID0gbXQ3Nl9hbGxvY19kZXZpY2UoXHUwMDI2cGRldi1cdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgb3BzLCBcdTAwMjZkcnZfb3BzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jLTQwMC1cdGlmICghbWRldikge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jPTE0Mz1zdGF0aWMgaW50IG10NzkyNXVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jLTE5MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jOjE5MTpcdG1kZXYgPSBtdDc2X2FsbG9jX2RldmljZShcdTAwMjZ1c2JfaW50Zi1cdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgb3BzLCBcdTAwMjZkcnZfb3BzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jLTE5Mi1cdGlmICghbWRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODE2PXN0cnVjdCBtdDc5OTZfZGV2ICptdDc5OTZfbW1pb19wcm9iZShzdHJ1Y3QgZGV2aWNlICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04NDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODQ2Olx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKHBkZXYsIHNpemVvZigqZGV2KSwgXHUwMDI2bXQ3OTk2X29wcywgXHUwMDI2ZHJ2X29wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODQ3LVx0aWYgKCFtZGV2KVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMzLzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjY3NgoJCQkJCQkJb3V0cHV0OiA0OQoJCQkJCQkJdGhvdWdodHM6IDUxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHN1bW1hcnksIGFzIHRob3VnaCBJJiMzOTttIHRoaW5raW5nIHRocm91Z2ggdGhpcyBwcm9jZXNzOgoKKipEaXZpbmcgaW50byB0aGUgTVQ3NiBEZXZpY2UgQWxsb2NhdGlvbioqCgpPa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhpcyBNVDc2IGRyaXZlciBpcyBhbGxvY2F0aW5nIGl0cyBkZXZpY2Ugc3RydWN0dXJlLiBSaWdodCwgbGV0JiMzOTtzIHN0YXJ0IHdpdGggYG10NzZfYWxsb2NfZGV2aWNlYC4gSSBrbm93IHRoYXQmIzM5O3MgdGhlIGZ1bmN0aW9uIHRoYXQga2lja3Mgb2ZmIHRoZSBkZXZpY2UmIzM5O3MgYWxsb2NhdGlvbiwgc28gdGhhdCYjMzk7cyB3aGVyZSBJIG5lZWQgdG8gYmUuIExldCBtZSBncmFiIHRoZSBzb3VyY2UgY29kZSBmb3IgdGhhdCBmdW5jdGlvbiwgd2hpY2ggSSBiZWxpZXZlIGlzIGhhbmdpbmcgb3V0IGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmNgLiBUaW1lIHRvIGRpZyBpbiBhbmQgc2VlIHdoYXQmIzM5O3MgaGFwcGVuaW5nIHVuZGVyIHRoZSBob29kLiBJIGV4cGVjdCB0byBzZWUgbWVtb3J5IGFsbG9jYXRpb24gYW5kIHNvbWUgZnVuZGFtZW50YWwgZGV2aWNlIGluaXRpYWxpemF0aW9uLiBMZXQmIzM5O3Mgc2VlIGlmIG15IGluaXRpYWwgYXNzdW1wdGlvbnMgaG9sZCB0cnVlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM0LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDY2NywKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA1MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgNjY3Olx0c3RydWN0IG10NzZfZGV2ICpcbiA2Njg6XHRtdDc2X2FsbG9jX2RldmljZShzdHJ1Y3QgZGV2aWNlICpwZGV2LCB1bnNpZ25lZCBpbnQgc2l6ZSxcbiA2Njk6XHRcdFx0ICBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyAqb3BzLFxuIDY3MDpcdFx0XHQgIGNvbnN0IHN0cnVjdCBtdDc2X2RyaXZlcl9vcHMgKmRydl9vcHMpXG4gNjcxOlx0e1xuIDY3MjpcdFx0c3RydWN0IGllZWU4MDIxMV9odyAqaHc7XG4gNjczOlx0XHRzdHJ1Y3QgbXQ3Nl9waHkgKnBoeTtcbiA2NzQ6XHRcdHN0cnVjdCBtdDc2X2RldiAqZGV2O1xuIDY3NTpcdFx0aW50IGk7XG4gNjc2Olx0XG4gNjc3Olx0XHRodyA9IGllZWU4MDIxMV9hbGxvY19odyhzaXplLCBvcHMpO1xuIDY3ODpcdFx0aWYgKCFodylcbiA2Nzk6XHRcdFx0cmV0dXJuIE5VTEw7XG4gNjgwOlx0XG4gNjgxOlx0XHRkZXYgPSBody1cdTAwM2Vwcml2O1xuIDY4MjpcdFx0ZGV2LVx1MDAzZWh3ID0gaHc7XG4gNjgzOlx0XHRkZXYtXHUwMDNlZGV2ID0gcGRldjtcbiA2ODQ6XHRcdGRldi1cdTAwM2VkcnYgPSBkcnZfb3BzO1xuIDY4NTpcdFx0ZGV2LVx1MDAzZWRtYV9kZXYgPSBwZGV2O1xuIDY4NjpcdFxuIDY4NzpcdFx0cGh5ID0gXHUwMDI2ZGV2LVx1MDAzZXBoeTtcbiA2ODg6XHRcdHBoeS1cdTAwM2VkZXYgPSBkZXY7XG4gNjg5Olx0XHRwaHktXHUwMDNlaHcgPSBodztcbiA2OTA6XHRcdHBoeS1cdTAwM2ViYW5kX2lkeCA9IE1UX0JBTkQwO1xuIDY5MTpcdFx0ZGV2LVx1MDAzZXBoeXNbcGh5LVx1MDAzZWJhbmRfaWR4XSA9IHBoeTtcbiA2OTI6XHRcbiA2OTM6XHRcdHNwaW5fbG9ja19pbml0KFx1MDAyNmRldi1cdTAwM2VyeF9sb2NrKTtcbiA2OTQ6XHRcdHNwaW5fbG9ja19pbml0KFx1MDAyNmRldi1cdTAwM2Vsb2NrKTtcbiA2OTU6XHRcdHNwaW5fbG9ja19pbml0KFx1MDAyNmRldi1cdTAwM2VjY19sb2NrKTtcbiA2OTY6XHRcdHNwaW5fbG9ja19pbml0KFx1MDAyNmRldi1cdTAwM2VzdGF0dXNfbG9jayk7XG4gNjk3Olx0XHRzcGluX2xvY2tfaW5pdChcdTAwMjZkZXYtXHUwMDNld2VkX2xvY2spO1xuIDY5ODpcdFx0bXV0ZXhfaW5pdChcdTAwMjZkZXYtXHUwMDNlbXV0ZXgpO1xuIDY5OTpcdFx0aW5pdF93YWl0cXVldWVfaGVhZChcdTAwMjZkZXYtXHUwMDNldHhfd2FpdCk7XG4gNzAwOlx0XG4gNzAxOlx0XHRza2JfcXVldWVfaGVhZF9pbml0KFx1MDAyNmRldi1cdTAwM2VtY3UucmVzX3EpO1xuIDcwMjpcdFx0aW5pdF93YWl0cXVldWVfaGVhZChcdTAwMjZkZXYtXHUwMDNlbWN1LndhaXQpO1xuIDcwMzpcdFx0bXV0ZXhfaW5pdChcdTAwMjZkZXYtXHUwMDNlbWN1Lm11dGV4KTtcbiA3MDQ6XHRcdGRldi1cdTAwM2V0eF93b3JrZXIuZm4gPSBtdDc2X3R4X3dvcmtlcjtcbiA3MDU6XHRcbiA3MDY6XHRcdGh3LVx1MDAzZXdpcGh5LVx1MDAzZWZsYWdzIHw9IFdJUEhZX0ZMQUdfSUJTU19SU047XG4gNzA3Olx0XHRody1cdTAwM2V3aXBoeS1cdTAwM2VpbnRlcmZhY2VfbW9kZXMgPVxuIDcwODpcdFx0XHRCSVQoTkw4MDIxMV9JRlRZUEVfU1RBVElPTikgfFxuIDcwOTpcdFx0XHRCSVQoTkw4MDIxMV9JRlRZUEVfQVApIHxcbiA3MTA6XHQjaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbiA3MTE6XHRcdFx0QklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpIHxcbiA3MTI6XHQjZW5kaWZcbiA3MTM6XHRcdFx0QklUKE5MODAyMTFfSUZUWVBFX1AyUF9DTElFTlQpIHxcbiA3MTQ6XHRcdFx0QklUKE5MODAyMTFfSUZUWVBFX1AyUF9HTykgfFxuIDcxNTpcdFx0XHRCSVQoTkw4MDIxMV9JRlRZUEVfQURIT0MpO1xuIDcxNjpcdFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM1LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNzc4MwoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDI3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipDaGVja2luZyB0aGUgTWVtb3J5IEFsbG9jYXRpb24gU3RyYXRlZ3kgaW4gSUVFRSA4MDIuMTEgSGFyZHdhcmUgSW5pdGlhbGl6YXRpb24qKgoKT2theSwgc28gYGllZWU4MDIxMV9hbGxvY19od2AgaGFzIGJlZW4gY2FsbGVkLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGRpZyBpbnRvIHRoZSBtZW1vcnkgYWxsb2NhdGlvbiBzdHJhdGVneSBiZWluZyB1c2VkIHdpdGhpbiB0aGlzIGZ1bmN0aW9uLiBUaGUgY3JpdGljYWwgcXVlc3Rpb24sIG9mIGNvdXJzZSwgaXMgd2hldGhlciBpdCBsZXZlcmFnZXMgYGt6YWxsb2NgLiBUaGUgdXNlIG9mIGBremFsbG9jYCBpcyBzb21ldGhpbmcgSSBwYXkgY2xvc2UgYXR0ZW50aW9uIHRvLCBlc3BlY2lhbGx5IGluIGtlcm5lbCBjb250ZXh0cyBsaWtlIHRoaXMuIEl0JiMzOTtzIGEga2V5IGluZGljYXRvciBvZiB3aGV0aGVyIHRoZSBhbGxvY2F0ZWQgbWVtb3J5IGlzIGJlaW5nIHplcm9lZCBvdXQuIFVuZGVyc3RhbmRpbmcgdGhpcyBpcyBjcnVjaWFsIGZvciBzZXZlcmFsIHJlYXNvbnM6IGl0IGltcGFjdHMgc2VjdXJpdHkgYnkgcG90ZW50aWFsbHkgbWl0aWdhdGluZyBpbmZvcm1hdGlvbiBsZWFrcywgaW5mbHVlbmNlcyBwZXJmb3JtYW5jZSBieSByZW1vdmluZyB0aGUgbmVlZCBmb3IgZXhwbGljaXQgaW5pdGlhbGl6YXRpb24sIGFuZCBjYW4gYWxzbyBhZmZlY3QgZGVidWdnaW5nIGVmZm9ydHMgaWYgdW5pbml0aWFsaXplZCBtZW1vcnkgaXMgdW5leHBlY3RlZGx5IHVzZWQgZG93biB0aGUgbGluZS4gSSYjMzk7bGwgbmVlZCB0byBjb25maXJtIHRoYXQgYGt6YWxsb2NgIChvciBzb21ldGhpbmcgZXF1YWxseSByZWxpYWJsZSkgaXMsIGluIGZhY3QsIGJlaW5nIGVtcGxveWVkIGhlcmUgdG8gbWFuYWdlIG1lbW9yeSB3aXRoaW4gdGhpcyBjcnVjaWFsIElFRUUgODAyLjExIGhhcmR3YXJlIGluaXRpYWxpemF0aW9uIHJvdXRpbmUuIElmIG5vdCwgSSYjMzk7bGwgbmVlZCB0byB1bmRlcnN0YW5kIHdoeSwgYW5kIHdoYXQgYWx0ZXJuYXRpdmVzIGFyZSBpbiBwbGFjZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNi8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjYgMTA6MDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aWVlZTgwMjExX2FsbG9jX2h3JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9tYWluLmM9Nzc3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3ZodF9jYXAgbWFjODAyMTFfdmh0X2NhcGFfbW9kX21hc2sgPSB7XG4tLVxubmV0L21hYzgwMjExL21haW4uYy03OTQtXG5uZXQvbWFjODAyMTEvbWFpbi5jOjc5NTpzdHJ1Y3QgaWVlZTgwMjExX2h3ICppZWVlODAyMTFfYWxsb2NfaHdfbm0oc2l6ZV90IHByaXZfZGF0YV9sZW4sXG5uZXQvbWFjODAyMTEvbWFpbi5jLTc5Ni1cdFx0XHRcdFx0ICAgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgKm9wcyxcbi0tXG5uZXQvbWFjODAyMTEvbWFpbi5jLTEwNTEtfVxubmV0L21hYzgwMjExL21haW4uYzoxMDUyOkVYUE9SVF9TWU1CT0woaWVlZTgwMjExX2FsbG9jX2h3X25tKTtcbm5ldC9tYWM4MDIxMS9tYWluLmMtMTA1My1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNy8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjYgMTA6MDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjgzMjIKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAzNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIGl0IHdlcmUgbXkgb3duOgoKKipEaXZpbmcgaW50byB0aGUgODAyLjExIEhhcmR3YXJlIEFsbG9jYXRpb24qKgoKT2theSwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkgd2l0aCBgbmV0L21hYzgwMjExL21haW4uY2AuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgaGFyZHdhcmUgaXMgYmVpbmcgYWxsb2NhdGVkIGZvciB0aGlzIDgwMi4xMSBpbXBsZW1lbnRhdGlvbi4gTGV0JiMzOTtzIHN0YXJ0IGJ5IGRpZ2dpbmcgaW50byBgaWVlZTgwMjExX2FsbG9jX2h3X25tYC4gVGhpcyBmdW5jdGlvbiBpcyBsaWtlbHkgdGhlIGNvcm5lcnN0b25lIG9mIGhhcmR3YXJlIGluaXRpYWxpemF0aW9uIGFuZCBhc3NvY2lhdGlvbi4gSSYjMzk7bSBhc3N1bWluZyAmIzM0O25tJiMzNDsgc3RhbmRzIGZvciBzb21ldGhpbmcgcmVsYXRlZCB0byB0aGUgbmFtaW5nIG9yIG1hbmFnaW5nIG9mIHRoZSBuZXcgaGFyZHdhcmUgaW50ZXJmYWNlIG9yIG5ldHdvcmsgbWFuYWdlci4gVW5kZXJzdGFuZGluZyB0aGlzIHJvdXRpbmUgd2lsbCBsaWtlbHkgaWxsdW1pbmF0ZSB0aGUgaW5pdGlhbCBzZXR1cCBmbG93LiBJdCYjMzk7cyB0aGUgc3RhcnRpbmcgcG9pbnQgZm9yIHJlYWxseSBkaWdnaW5nIGludG8gaG93IHRoZXkmIzM5O3ZlIHN0cnVjdHVyZWQgaGFyZHdhcmUgYWNjZXNzIGFuZCBjb250cm9sIHdpdGhpbiB0aGUgbWFjODAyMTEgZnJhbWV3b3JrLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM4LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9tYWluLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA3OTUsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNTAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDc5NTpcdHN0cnVjdCBpZWVlODAyMTFfaHcgKmllZWU4MDIxMV9hbGxvY19od19ubShzaXplX3QgcHJpdl9kYXRhX2xlbixcbiA3OTY6XHRcdFx0XHRcdFx0ICAgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgKm9wcyxcbiA3OTc6XHRcdFx0XHRcdFx0ICAgY29uc3QgY2hhciAqcmVxdWVzdGVkX25hbWUpXG4gNzk4Olx0e1xuIDc5OTpcdFx0c3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWw7XG4gODAwOlx0XHRpbnQgcHJpdl9zaXplLCBpO1xuIDgwMTpcdFx0c3RydWN0IHdpcGh5ICp3aXBoeTtcbiA4MDI6XHRcdGJvb2wgZW11bGF0ZV9jaGFuY3R4O1xuIDgwMzpcdFxuIDgwNDpcdFx0aWYgKFdBUk5fT04oIW9wcy1cdTAwM2V0eCB8fCAhb3BzLVx1MDAzZXN0YXJ0IHx8ICFvcHMtXHUwMDNlc3RvcCB8fCAhb3BzLVx1MDAzZWNvbmZpZyB8fFxuIDgwNTpcdFx0XHQgICAgIW9wcy1cdTAwM2VhZGRfaW50ZXJmYWNlIHx8ICFvcHMtXHUwMDNlcmVtb3ZlX2ludGVyZmFjZSB8fFxuIDgwNjpcdFx0XHQgICAgIW9wcy1cdTAwM2Vjb25maWd1cmVfZmlsdGVyIHx8ICFvcHMtXHUwMDNld2FrZV90eF9xdWV1ZSkpXG4gODA3Olx0XHRcdHJldHVybiBOVUxMO1xuIDgwODpcdFxuIDgwOTpcdFx0aWYgKFdBUk5fT04ob3BzLVx1MDAzZXN0YV9zdGF0ZSBcdTAwMjZcdTAwMjYgKG9wcy1cdTAwM2VzdGFfYWRkIHx8IG9wcy1cdTAwM2VzdGFfcmVtb3ZlKSkpXG4gODEwOlx0XHRcdHJldHVybiBOVUxMO1xuIDgxMTpcdFxuIDgxMjpcdFx0aWYgKFdBUk5fT04oISFvcHMtXHUwMDNlbGlua19pbmZvX2NoYW5nZWQgIT0gISFvcHMtXHUwMDNldmlmX2NmZ19jaGFuZ2VkIHx8XG4gODEzOlx0XHRcdCAgICAob3BzLVx1MDAzZWxpbmtfaW5mb19jaGFuZ2VkIFx1MDAyNlx1MDAyNiBvcHMtXHUwMDNlYnNzX2luZm9fY2hhbmdlZCkpKVxuIDgxNDpcdFx0XHRyZXR1cm4gTlVMTDtcbiA4MTU6XHRcbiA4MTY6XHRcdC8qIGNoZWNrIGFsbCBvciBubyBjaGFubmVsIGNvbnRleHQgb3BlcmF0aW9ucyBleGlzdCAqL1xuIDgxNzpcdFx0aWYgKG9wcy1cdTAwM2VhZGRfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCBcdTAwMjZcdTAwMjZcbiA4MTg6XHRcdCAgICBvcHMtXHUwMDNlcmVtb3ZlX2NoYW5jdHggPT0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHggXHUwMDI2XHUwMDI2XG4gODE5Olx0XHQgICAgb3BzLVx1MDAzZWNoYW5nZV9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4KSB7XG4gODIwOlx0XHRcdGlmIChXQVJOX09OKG9wcy1cdTAwM2Vhc3NpZ25fdmlmX2NoYW5jdHggfHxcbiA4MjE6XHRcdFx0XHQgICAgb3BzLVx1MDAzZXVuYXNzaWduX3ZpZl9jaGFuY3R4KSlcbiA4MjI6XHRcdFx0XHRyZXR1cm4gTlVMTDtcbiA4MjM6XHRcdFx0ZW11bGF0ZV9jaGFuY3R4ID0gdHJ1ZTtcbiA4MjQ6XHRcdH0gZWxzZSB7XG4gODI1Olx0XHRcdGlmIChXQVJOX09OKG9wcy1cdTAwM2VhZGRfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCB8fFxuIDgyNjpcdFx0XHRcdCAgICBvcHMtXHUwMDNlcmVtb3ZlX2NoYW5jdHggPT0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHggfHxcbiA4Mjc6XHRcdFx0XHQgICAgb3BzLVx1MDAzZWNoYW5nZV9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4KSlcbiA4Mjg6XHRcdFx0XHRyZXR1cm4gTlVMTDtcbiA4Mjk6XHRcdFx0aWYgKFdBUk5fT04oIW9wcy1cdTAwM2VhZGRfY2hhbmN0eCB8fFxuIDgzMDpcdFx0XHRcdCAgICAhb3BzLVx1MDAzZXJlbW92ZV9jaGFuY3R4IHx8XG4gODMxOlx0XHRcdFx0ICAgICFvcHMtXHUwMDNlY2hhbmdlX2NoYW5jdHggfHxcbiA4MzI6XHRcdFx0XHQgICAgIW9wcy1cdTAwM2Vhc3NpZ25fdmlmX2NoYW5jdHggfHxcbiA4MzM6XHRcdFx0XHQgICAgIW9wcy1cdTAwM2V1bmFzc2lnbl92aWZfY2hhbmN0eCkpXG4gODM0Olx0XHRcdFx0cmV0dXJuIE5VTEw7XG4gODM1Olx0XHRcdGVtdWxhdGVfY2hhbmN0eCA9IGZhbHNlO1xuIDgzNjpcdFx0fVxuIDgzNzpcdFxuIDgzODpcdFx0LyogRW5zdXJlIDMyLWJ5dGUgYWxpZ25tZW50IG9mIG91ciBwcml2YXRlIGRhdGEgYW5kIGh3IHByaXZhdGUgZGF0YS5cbiA4Mzk6XHRcdCAqIFdlIHVzZSB0aGUgd2lwaHkgcHJpdiBkYXRhIGZvciBib3RoIG91ciBpZWVlODAyMTFfbG9jYWwgYW5kIGZvclxuIDg0MDpcdFx0ICogdGhlIGRyaXZlciYjMzk7cyBwcml2YXRlIGRhdGFcbiA4NDE6XHRcdCAqXG4gODQyOlx0XHQgKiBJbiBtZW1vcnkgaXQmIzM5O2xsIGJlIGxpa2UgdGhpczpcbiA4NDM6XHRcdCAqXG4gODQ0Olx0XHQgKiAmIzQzOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0mIzQzO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM5LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyOTQ5OQoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDIxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMgYGllZWU4MDIxMV9hbGxvY19od19ubWAgZnVuY3Rpb24uIEkmIzM5O20gYWxyZWFkeSBwaWN0dXJpbmcgdGhlIGxpa2VseSBzY2VuYXJpb3MgaXQgYWRkcmVzc2VzLiBLbm93aW5nIHRoZSBuYW1lLCBJJiMzOTttIGV4cGVjdGluZyB0aGlzIHRvIGJlIHRoZSBjb3JlIGFsbG9jYXRpb24gZnVuY3Rpb24gZm9yIGEgbmV3IGhhcmR3YXJlIChodykgbmV0d29yayBtYW5hZ2VyIChubSkgd2l0aGluIGFuIDgwMi4xMSBjb250ZXh0LiBHaXZlbiBteSBleHBlcmllbmNlLCBJIGtub3cgdGhhdCBmdW5jdGlvbiBuYW1lcyBhcmUgY3JpdGljYWwgaW4gY29tcGxleCBzeXN0ZW1zLCBhbmQgdGhpcyBpcyBwcm9iYWJseSB3aGVyZSB0aGUgbG93LWxldmVsIGRldGFpbHMgb2YgaGFyZHdhcmUgaW50ZWdyYXRpb24gYmVnaW5zLiBJJiMzOTttIGtlZW4gdG8gc2VlIGlmIGl0JiMzOTtzIGEgcmVsYXRpdmVseSBzdHJhaWdodGZvcndhcmQgYWxsb2NhdGlvbiwgb3IgaWYgdGhlcmUmIzM5O3MgYSBidW5jaCBvZiBwcmUtYWxsb2NhdGlvbiBjaGVja3MgYW5kIGluaXRpYWxpemF0aW9ucyBJIG5lZWQgdG8gY29uc2lkZXIuIEkmIzM5O20gZXNwZWNpYWxseSBpbnRlcmVzdGVkIGluIGhvdyBpdCBoYW5kbGVzIHBvdGVudGlhbCByZXNvdXJjZSBjb25zdHJhaW50cyBvciBlcnJvciBjb25kaXRpb25zLCB3aGljaCBpcyBlc3NlbnRpYWwgdG8gcm9idXN0IGNvZGUuIEkmIzM5O20gYWxzbyBob3BpbmcgaXQgYWRoZXJlcyB0byBhbnkgZXhpc3RpbmcgZnJhbWV3b3JrIG9yIGRyaXZlciBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgdG8gdGhlIE9TIG9yIGVudmlyb25tZW50LiBJJiMzOTttIGVhZ2VyIHRvIGdldCBpbnRvIHRoZSBkZXRhaWxzIHRvIHVuZGVyc3RhbmQgdGhlIGFsbG9jYXRpb24gcHJvY2VzcyBmcm9tIHN0YXJ0IHRvIGZpbmlzaC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40MC8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjYgMTA6MDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvbWFpbi5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogODQ1LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyA4NDU6XHRcdCAqIHwgc3RydWN0IHdpcGh5XHQgICAgfFxuIDg0NjpcdFx0ICogJiM0MzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tJiM0MztcbiA4NDc6XHRcdCAqIHwgc3RydWN0IGllZWU4MDIxMV9sb2NhbCAgfFxuIDg0ODpcdFx0ICogJiM0MzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tJiM0MztcbiA4NDk6XHRcdCAqIHwgZHJpdmVyJiMzOTtzIHByaXZhdGUgZGF0YSAgIHxcbiA4NTA6XHRcdCAqICYjNDM7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSYjNDM7XG4gODUxOlx0XHQgKlxuIDg1MjpcdFx0ICovXG4gODUzOlx0XHRwcml2X3NpemUgPSBBTElHTihzaXplb2YoKmxvY2FsKSwgTkVUREVWX0FMSUdOKSAmIzQzOyBwcml2X2RhdGFfbGVuO1xuIDg1NDpcdFxuIDg1NTpcdFx0d2lwaHkgPSB3aXBoeV9uZXdfbm0oXHUwMDI2bWFjODAyMTFfY29uZmlnX29wcywgcHJpdl9zaXplLCByZXF1ZXN0ZWRfbmFtZSk7XG4gODU2Olx0XG4gODU3Olx0XHRpZiAoIXdpcGh5KVxuIDg1ODpcdFx0XHRyZXR1cm4gTlVMTDtcbiA4NTk6XHRcbiA4NjA6XHRcdHdpcGh5LVx1MDAzZW1nbXRfc3R5cGVzID0gaWVlZTgwMjExX2RlZmF1bHRfbWdtdF9zdHlwZXM7XG4gODYxOlx0XG4gODYyOlx0XHR3aXBoeS1cdTAwM2Vwcml2aWQgPSBtYWM4MDIxMV93aXBoeV9wcml2aWQ7XG4gODYzOlx0XG4gODY0Olx0XHR3aXBoeS1cdTAwM2VmbGFncyB8PSBXSVBIWV9GTEFHX05FVE5TX09LIHxcbiA4NjU6XHRcdFx0XHRXSVBIWV9GTEFHXzRBRERSX0FQIHxcbiA4NjY6XHRcdFx0XHRXSVBIWV9GTEFHXzRBRERSX1NUQVRJT04gfFxuIDg2NzpcdFx0XHRcdFdJUEhZX0ZMQUdfUkVQT1JUU19PQlNTIHxcbiA4Njg6XHRcdFx0XHRXSVBIWV9GTEFHX09GRkNIQU5fVFg7XG4gODY5Olx0XG4gODcwOlx0XHRpZiAoZW11bGF0ZV9jaGFuY3R4IHx8IG9wcy1cdTAwM2VyZW1haW5fb25fY2hhbm5lbClcbiA4NzE6XHRcdFx0d2lwaHktXHUwMDNlZmxhZ3MgfD0gV0lQSFlfRkxBR19IQVNfUkVNQUlOX09OX0NIQU5ORUw7XG4gODcyOlx0XG4gODczOlx0XHR3aXBoeS1cdTAwM2Vic3NfcGFyYW1fc3VwcG9ydCA9IFdJUEhZX0JTU19QQVJBTV9DVFNfUFJPVCB8XG4gODc0Olx0XHRcdFx0XHQgICBXSVBIWV9CU1NfUEFSQU1fU0hPUlRfUFJFQU1CTEUgfFxuIDg3NTpcdFx0XHRcdFx0ICAgV0lQSFlfQlNTX1BBUkFNX1NIT1JUX1NMT1RfVElNRSB8XG4gODc2Olx0XHRcdFx0XHQgICBXSVBIWV9CU1NfUEFSQU1fQkFTSUNfUkFURVMgfFxuIDg3NzpcdFx0XHRcdFx0ICAgV0lQSFlfQlNTX1BBUkFNX0FQX0lTT0xBVEUgfFxuIDg3ODpcdFx0XHRcdFx0ICAgV0lQSFlfQlNTX1BBUkFNX0hUX09QTU9ERSB8XG4gODc5Olx0XHRcdFx0XHQgICBXSVBIWV9CU1NfUEFSQU1fUDJQX0NUV0lORE9XIHxcbiA4ODA6XHRcdFx0XHRcdCAgIFdJUEhZX0JTU19QQVJBTV9QMlBfT1BQUFM7XG4gODgxOlx0XHR3aXBoeS1cdTAwM2VmZWF0dXJlcyB8PSBOTDgwMjExX0ZFQVRVUkVfU0tfVFhfU1RBVFVTIHxcbiA4ODI6XHRcdFx0XHQgICBOTDgwMjExX0ZFQVRVUkVfU0FFIHxcbiA4ODM6XHRcdFx0XHQgICBOTDgwMjExX0ZFQVRVUkVfSFRfSUJTUyB8XG4gODg0Olx0XHRcdFx0ICAgTkw4MDIxMV9GRUFUVVJFX1ZJRl9UWFBPV0VSIHxcbiA4ODU6XHRcdFx0XHQgICBOTDgwMjExX0ZFQVRVUkVfTUFDX09OX0NSRUFURSB8XG4gODg2Olx0XHRcdFx0ICAgTkw4MDIxMV9GRUFUVVJFX1VTRVJTUEFDRV9NUE0gfFxuIDg4NzpcdFx0XHRcdCAgIE5MODAyMTFfRkVBVFVSRV9GVUxMX0FQX0NMSUVOVF9TVEFURTtcbiA4ODg6XHRcdHdpcGh5X2V4dF9mZWF0dXJlX3NldCh3aXBoeSwgTkw4MDIxMV9FWFRfRkVBVFVSRV9GSUxTX1NUQSk7XG4gODg5Olx0XHR3aXBoeV9leHRfZmVhdHVyZV9zZXQod2lwaHksXG4gODkwOlx0XHRcdFx0ICAgICAgTkw4MDIxMV9FWFRfRkVBVFVSRV9DT05UUk9MX1BPUlRfT1ZFUl9OTDgwMjExKTtcbiA4OTE6XHRcdHdpcGh5X2V4dF9mZWF0dXJlX3NldCh3aXBoeSxcbiA4OTI6XHRcdFx0XHQgICAgICBOTDgwMjExX0VYVF9GRUFUVVJFX0NPTlRST0xfUE9SVF9OT19QUkVBVVRIKTtcbiA4OTM6XHRcdHdpcGh5X2V4dF9mZWF0dXJlX3NldCh3aXBoeSxcbiA4OTQ6XHRcdFx0XHQgICAgICBOTDgwMjExX0VYVF9GRUFUVVJFX0NPTlRST0xfUE9SVF9PVkVSX05MODAyMTFfVFhfU1RBVFVTKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40MS8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjYgMTA6MDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzA3NjEKCQkJCQkJCW91dHB1dDogMjkKCQkJCQkJCXRob3VnaHRzOiA0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBzdW1tYXJ5LCBhcyBpZiBJIHdlcmUgdGhpbmtpbmcgaXQ6CgoqKkRpZ2dpbmcgaW50byB0aGUgV2lyZWxlc3MgUGh5IEFsbG9jYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBzZWVpbmcgYHdpcGh5X25ld19ubWAgYmVpbmcgY2FsbGVkIGhlcmUuIFJpZ2h0LCB0aGF0JiMzOTtzIHRoZSBvbmUgdGhhdCYjMzk7cyByZXNwb25zaWJsZSBmb3IgYWxsb2NhdGluZyBhIGB3aXBoeWAgc3RydWN0dXJlLiBUaW1lIHRvIGRpdmUgaW50byB0aGUgY29yZSBpbXBsZW1lbnRhdGlvbi4gTGV0JiMzOTtzIGhlYWQgb3ZlciB0byBgbmV0L3dpcmVsZXNzL2NvcmUuY2AgYW5kIHRha2UgYSBsb29rIGF0IGhvdyBgd2lwaHlfbmV3X25tYCBpcyBhY3R1YWxseSBoYW5kbGluZyB0aGUgbWVtb3J5IGFsbG9jYXRpb24gYW5kIGluaXRpYWxpemF0aW9uLiBOZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHBhcnRpY3VsYXJzIG9mIHRoaXMgZnVuY3Rpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDIvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDEwOjAyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3dpcGh5X25ld19ubSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC93aXJlbGVzcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvd2lyZWxlc3MvY29yZS5jPTUxNT1zdGF0aWMgdm9pZCBjZmc4MDIxMV93aXBoeV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbi0tXG5uZXQvd2lyZWxlc3MvY29yZS5jLTU0NS1cbm5ldC93aXJlbGVzcy9jb3JlLmM6NTQ2OnN0cnVjdCB3aXBoeSAqd2lwaHlfbmV3X25tKGNvbnN0IHN0cnVjdCBjZmc4MDIxMV9vcHMgKm9wcywgaW50IHNpemVvZl9wcml2LFxubmV0L3dpcmVsZXNzL2NvcmUuYy01NDctXHRcdFx0ICAgY29uc3QgY2hhciAqcmVxdWVzdGVkX25hbWUpXG4tLVxubmV0L3dpcmVsZXNzL2NvcmUuYy02OTktfVxubmV0L3dpcmVsZXNzL2NvcmUuYzo3MDA6RVhQT1JUX1NZTUJPTCh3aXBoeV9uZXdfbm0pO1xubmV0L3dpcmVsZXNzL2NvcmUuYy03MDEtXG4tLVxubmV0L3dpcmVsZXNzL3Rlc3RzL3V0aWwuYz0xMz1pbnQgdF93aXBoeV9pbml0KHN0cnVjdCBrdW5pdF9yZXNvdXJjZSAqcmVzb3VyY2UsIHZvaWQgKmN0eClcbi0tXG5uZXQvd2lyZWxlc3MvdGVzdHMvdXRpbC5jLTIyLVxubmV0L3dpcmVsZXNzL3Rlc3RzL3V0aWwuYzoyMzpcdHdpcGh5ID0gd2lwaHlfbmV3X25tKG9wcywgc2l6ZW9mKCpwcml2KSwgXCYjMzQ7a3VuaXRcJiMzNDspO1xubmV0L3dpcmVsZXNzL3Rlc3RzL3V0aWwuYy0yNC1cdEtVTklUX0FTU0VSVF9OT1RfTlVMTCh0ZXN0LCB3aXBoeSk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDMvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDEwOjAyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMxMjQyCgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogMjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipEaXZpbmcgaW50byBgd2lwaHlfbmV3X25tYCoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBzb21ldGhpbmcgcmVsYXRlZCB0byBXaS1GaSBkcml2ZXIgaW5pdGlhbGl6YXRpb24sIGFuZCBteSBpbnN0aW5jdHMgYXJlIHRlbGxpbmcgbWUgdG8gbG9vayBhdCBgd2lwaHlfbmV3X25tYCBpbiBgbmV0L3dpcmVsZXNzL2NvcmUuY2AuIFRoYXQgZnVuY3Rpb24gbmFtZSBpdHNlbGYgaXMgYSBwcmV0dHkgYmlnIGNsdWUuIFRoZSAmIzM0O3dpcGh5JiMzNDsgcGFydCBpbW1lZGlhdGVseSBmbGFncyB0aGlzIGFzIGJlaW5nIGFib3V0IHRoZSB3aXJlbGVzcyBwaHlzaWNhbCBkZXZpY2UgYWJzdHJhY3Rpb24gbGF5ZXIsIHRoZSBjb3JlIG9mIHRoZSB3aXJlbGVzcyBuZXR3b3JraW5nIHN0YWNrLiBUaGUgJiMzNDtuZXcmIzM0OyBzdHJvbmdseSBzdWdnZXN0cyBpdCYjMzk7cyBpbnZvbHZlZCBpbiBjcmVhdGluZyBvciBzZXR0aW5nIHVwIGEgbmV3IFdpLUZpIHBoeXNpY2FsIGRldmljZS4gQW5kICYjMzQ7bm0mIzM0OyBwcm9iYWJseSBzdGFuZHMgZm9yICYjMzQ7bmV0IGRldmljZSBtYW5hZ2VyJiMzNDsgb3Igc29tZXRoaW5nIHNpbWlsYXIsIGltcGx5aW5nIHNvbWUgaW50ZXJhY3Rpb24gd2l0aCB0aGUgb3ZlcmFsbCBuZXR3b3JrIGRldmljZSBpbmZyYXN0cnVjdHVyZS4gCgpHaXZlbiBteSBleHBlcnRpc2UsIEkgc3VzcGVjdCB0aGlzIGZ1bmN0aW9uIGxpa2VseSBoYW5kbGVzIHRoZSBsb3ctbGV2ZWwgYXNwZWN0cyBvZiBhbGxvY2F0aW5nIGFuZCBpbml0aWFsaXppbmcgdGhlIHdpcGh5IHN0cnVjdHVyZSwgcGVyaGFwcyBzZXR0aW5nIHVwIGl0cyBjYXBhYmlsaXRpZXMsIHJlZ2lzdGVyaW5nIGl0IHdpdGggdGhlIHN5c3RlbSwgYW5kIHR5aW5nIGl0IHRvIGEgbmV0d29yayBkZXZpY2UuIEkmIzM5O20gZ3Vlc3NpbmcgaXQgbWlnaHQgYWxzbyBkZWFsIHdpdGggdGhpbmdzIGxpa2UgYWxsb2NhdGluZyBtZW1vcnkgZm9yIHRoZSBkZXZpY2UmIzM5O3MgY29udHJvbCBzdHJ1Y3R1cmVzLiBJdCYjMzk7cyB0aGUga2luZCBvZiBmdW5jdGlvbiB0aGF0IHdvdWxkIGJlIGNydWNpYWwgZm9yIGEgZHJpdmVyIHRvIHdvcmsgd2l0aCB0aGUgY29yZSBXaS1GaSBzdGFjayBpbiB0aGUgTGludXgga2VybmVsLiBMZXQmIzM5O3Mgc2VlIGlmIHRoaXMgaHVuY2ggaXMgY29ycmVjdCwgb3IgaWYgdGhpcyBmdW5jdGlvbiYjMzk7cyBwdXJwb3NlIGhhcyBhIG51YW5jZSB0aGF0IGVzY2FwZXMgbXkgdW5kZXJzdGFuZGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40NC8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjYgMTA6MDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvd2lyZWxlc3MvY29yZS5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogNTQ2LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyA1NDY6XHRzdHJ1Y3Qgd2lwaHkgKndpcGh5X25ld19ubShjb25zdCBzdHJ1Y3QgY2ZnODAyMTFfb3BzICpvcHMsIGludCBzaXplb2ZfcHJpdixcbiA1NDc6XHRcdFx0XHQgICBjb25zdCBjaGFyICpyZXF1ZXN0ZWRfbmFtZSlcbiA1NDg6XHR7XG4gNTQ5Olx0XHRzdGF0aWMgYXRvbWljX3Qgd2lwaHlfY291bnRlciA9IEFUT01JQ19JTklUKDApO1xuIDU1MDpcdFxuIDU1MTpcdFx0c3RydWN0IGNmZzgwMjExX3JlZ2lzdGVyZWRfZGV2aWNlICpyZGV2O1xuIDU1MjpcdFx0aW50IGFsbG9jX3NpemU7XG4gNTUzOlx0XG4gNTU0Olx0XHRXQVJOX09OKG9wcy1cdTAwM2VhZGRfa2V5IFx1MDAyNlx1MDAyNiAoIW9wcy1cdTAwM2VkZWxfa2V5IHx8ICFvcHMtXHUwMDNlc2V0X2RlZmF1bHRfa2V5KSk7XG4gNTU1Olx0XHRXQVJOX09OKG9wcy1cdTAwM2VhdXRoIFx1MDAyNlx1MDAyNiAoIW9wcy1cdTAwM2Vhc3NvYyB8fCAhb3BzLVx1MDAzZWRlYXV0aCB8fCAhb3BzLVx1MDAzZWRpc2Fzc29jKSk7XG4gNTU2Olx0XHRXQVJOX09OKG9wcy1cdTAwM2Vjb25uZWN0IFx1MDAyNlx1MDAyNiAhb3BzLVx1MDAzZWRpc2Nvbm5lY3QpO1xuIDU1NzpcdFx0V0FSTl9PTihvcHMtXHUwMDNlam9pbl9pYnNzIFx1MDAyNlx1MDAyNiAhb3BzLVx1MDAzZWxlYXZlX2lic3MpO1xuIDU1ODpcdFx0V0FSTl9PTihvcHMtXHUwMDNlYWRkX3ZpcnR1YWxfaW50ZiBcdTAwMjZcdTAwMjYgIW9wcy1cdTAwM2VkZWxfdmlydHVhbF9pbnRmKTtcbiA1NTk6XHRcdFdBUk5fT04ob3BzLVx1MDAzZWFkZF9zdGF0aW9uIFx1MDAyNlx1MDAyNiAhb3BzLVx1MDAzZWRlbF9zdGF0aW9uKTtcbiA1NjA6XHRcdFdBUk5fT04ob3BzLVx1MDAzZWFkZF9tcGF0aCBcdTAwMjZcdTAwMjYgIW9wcy1cdTAwM2VkZWxfbXBhdGgpO1xuIDU2MTpcdFx0V0FSTl9PTihvcHMtXHUwMDNlam9pbl9tZXNoIFx1MDAyNlx1MDAyNiAhb3BzLVx1MDAzZWxlYXZlX21lc2gpO1xuIDU2MjpcdFx0V0FSTl9PTihvcHMtXHUwMDNlc3RhcnRfcDJwX2RldmljZSBcdTAwMjZcdTAwMjYgIW9wcy1cdTAwM2VzdG9wX3AycF9kZXZpY2UpO1xuIDU2MzpcdFx0V0FSTl9PTihvcHMtXHUwMDNlc3RhcnRfYXAgXHUwMDI2XHUwMDI2ICFvcHMtXHUwMDNlc3RvcF9hcCk7XG4gNTY0Olx0XHRXQVJOX09OKG9wcy1cdTAwM2Vqb2luX29jYiBcdTAwMjZcdTAwMjYgIW9wcy1cdTAwM2VsZWF2ZV9vY2IpO1xuIDU2NTpcdFx0V0FSTl9PTihvcHMtXHUwMDNlc3VzcGVuZCBcdTAwMjZcdTAwMjYgIW9wcy1cdTAwM2VyZXN1bWUpO1xuIDU2NjpcdFx0V0FSTl9PTihvcHMtXHUwMDNlc2NoZWRfc2Nhbl9zdGFydCBcdTAwMjZcdTAwMjYgIW9wcy1cdTAwM2VzY2hlZF9zY2FuX3N0b3ApO1xuIDU2NzpcdFx0V0FSTl9PTihvcHMtXHUwMDNlcmVtYWluX29uX2NoYW5uZWwgXHUwMDI2XHUwMDI2ICFvcHMtXHUwMDNlY2FuY2VsX3JlbWFpbl9vbl9jaGFubmVsKTtcbiA1Njg6XHRcdFdBUk5fT04ob3BzLVx1MDAzZXRkbHNfY2hhbm5lbF9zd2l0Y2ggXHUwMDI2XHUwMDI2ICFvcHMtXHUwMDNldGRsc19jYW5jZWxfY2hhbm5lbF9zd2l0Y2gpO1xuIDU2OTpcdFx0V0FSTl9PTihvcHMtXHUwMDNlYWRkX3R4X3RzIFx1MDAyNlx1MDAyNiAhb3BzLVx1MDAzZWRlbF90eF90cyk7XG4gNTcwOlx0XG4gNTcxOlx0XHRhbGxvY19zaXplID0gc2l6ZW9mKCpyZGV2KSAmIzQzOyBzaXplb2ZfcHJpdjtcbiA1NzI6XHRcbiA1NzM6XHRcdHJkZXYgPSBremFsbG9jKGFsbG9jX3NpemUsIEdGUF9LRVJORUwpO1xuIDU3NDpcdFx0aWYgKCFyZGV2KVxuIDU3NTpcdFx0XHRyZXR1cm4gTlVMTDtcbiA1NzY6XHRcbiA1Nzc6XHRcdHJkZXYtXHUwMDNlb3BzID0gb3BzO1xuIDU3ODpcdFxuIDU3OTpcdFx0cmRldi1cdTAwM2V3aXBoeV9pZHggPSBhdG9taWNfaW5jX3JldHVybihcdTAwMjZ3aXBoeV9jb3VudGVyKTtcbiA1ODA6XHRcbiA1ODE6XHRcdGlmICh1bmxpa2VseShyZGV2LVx1MDAzZXdpcGh5X2lkeCBcdTAwM2MgMCkpIHtcbiA1ODI6XHRcdFx0LyogdWdoLCB3cmFwcGVkISAqL1xuIDU4MzpcdFx0XHRhdG9taWNfZGVjKFx1MDAyNndpcGh5X2NvdW50ZXIpO1xuIDU4NDpcdFx0XHRrZnJlZShyZGV2KTtcbiA1ODU6XHRcdFx0cmV0dXJuIE5VTEw7XG4gNTg2Olx0XHR9XG4gNTg3Olx0XG4gNTg4Olx0XHQvKiBhdG9taWNfaW5jX3JldHVybiBtYWtlcyBpdCBzdGFydCBhdCAxLCBtYWtlIGl0IHN0YXJ0IGF0IDAgKi9cbiA1ODk6XHRcdHJkZXYtXHUwMDNld2lwaHlfaWR4LS07XG4gNTkwOlx0XG4gNTkxOlx0XHQvKiBnaXZlIGl0IGEgcHJvcGVyIG5hbWUgKi9cbiA1OTI6XHRcdGlmIChyZXF1ZXN0ZWRfbmFtZSBcdTAwMjZcdTAwMjYgcmVxdWVzdGVkX25hbWVbMF0pIHtcbiA1OTM6XHRcdFx0aW50IHJ2O1xuIDU5NDpcdFxuIDU5NTpcdFx0XHRydG5sX2xvY2soKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40NS8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjYgMTA6MDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzI0OTkKCQkJCQkJCW91dHB1dDogMjY0CgkJCQkJCQl0aG91Z2h0czogMTM5MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXNpcyBvZiB0aGUgUlggRmlsdGVyIEZsYWcgUGVyc2lzdGVuY2UgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcywgdGhpcyBpcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLiBUaGUgY3JpdGljYWwgcGFydCBpcyB1bmRlcnN0YW5kaW5nIGhvdyBgcGh5LSZndDtyeGZpbHRlcmAgaXMgdXNlZC4gV2Ugc3RhcnQgd2l0aCBga3phbGxvY2AgaW5pdGlhbGl6aW5nIHRoZSBgbXQ3OTJ4X2RldmAgc3RydWN0dXJlLCB3aGljaCBpbmNsdWRlcyB0aGUgYG10NzkyeF9waHlgIHN0cnVjdC4gVGhpcyBtZWFucyBgcGh5LSZndDtyeGZpbHRlcmAgaXMgaW5pdGlhbGx5IHplcm8uCgpUaGVuLCBgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXJgIGlzIGNhbGxlZC4gIFRoaXMgZnVuY3Rpb24gc2V0cyBgcGh5LSZndDtyeGZpbHRlcmAgdG8gdGhlIGBmbGFnc2AgdmFsdWUuICBTbyBmYXIsIHNvIGdvb2Q6IGluaXRpYWxpemF0aW9uIGFuZCBhc3NpZ25tZW50IGFyZSBjbGVhci4KCkxhdGVyLCBpbiBgbXQ3OTI1X21jdV9jb25maWdfc25pZmZlcmAsIHRoZSB2YWx1ZSBvZiBgcGh5LSZndDtyeGZpbHRlcmAgaXMgcmVhZC4gQ3JpdGljYWxseSwgaXQmIzM5O3MgdXNlZCB0byBjb25kaXRpb25hbGx5IHNldCB0aGUgYGRyb3BfZXJyYCBmbGFnIGluIGEgY29uZmlndXJhdGlvbiByZXF1ZXN0LiAgVGhlIGxvZ2ljIGlzIHNvdW5kOiB3ZSYjMzk7cmUgc3RvcmluZyB0aGUgUlggZmlsdGVyIGZsYWdzIGFuZCByZXVzaW5nIHRoZW0gdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdG8gZHJvcCBmcmFtZXMgd2l0aCBGQ1MgZXJyb3JzLgoKTXkgaW1tZWRpYXRlIHF1ZXN0aW9uOiBJcyB0aGVyZSBhbnkgcG90ZW50aWFsIGZvciBhbiB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkPyBOby4gYHBoeS0mZ3Q7cnhmaWx0ZXJgIGlzIGluaXRpYWxpemVkIHRvIHplcm8gZHVyaW5nIHRoZSBkZXZpY2Ugc3RydWN0dXJlIGFsbG9jYXRpb24gdmlhIGBremFsbG9jYC4gVGhlIHZhbHVlIGlzICpvdmVyd3JpdHRlbiogaW4gYG10NzkyNV9jb25maWd1cmVfZmlsdGVyYCwgYW5kIHRoZW4gKnJlYWQqIGFmdGVyd2FyZHMuIFdlJiMzOTtyZSBub3QgcmVhZGluZyB1bml0aWFsaXplZCBtZW1vcnksIGFuZCB0aGVyZSYjMzk7cyBubyBkYXRhIGJlaW5nIGxlYWtlZCB0byB1c2VyIHNwYWNlLCByaWdodD8gVGhlIGtleSBpcyB0byBjb25maXJtIHRoYXQgYHBoeWAgaXMgYWx3YXlzIHBhcnQgb2YgYGRldmAgYW5kIHRoYXQgdGhlIGxpZmV0aW1lIG9mIHRoZSBwb2ludGVyIGlzIHdlbGwgbWFuYWdlZC4KCkxldCYjMzk7cyBkbyBhIHF1aWNrIGRvdWJsZS1jaGVjayBvZiB0aGUgcGF0Y2ggZm9yIG90aGVyIHN1YnRsZSBjaGFuZ2VzLCBqdXN0IHRvIGJlIHRob3JvdWdoLi4uIFllcCwgSSBzZWUgaXQgZGVmaW5lcyB0aGUgbmV3IGBNVDc5MjVfRklMVEVSXypgIG1hY3Jvcy4gRmluZS4KCk15IGZpbmFsIGNvbmNsdXNpb24gaXMgdGhhdCB0aGlzIGxvb2tzIGxpa2UgYSBwdXJlbHkgbG9naWNhbCBjaGFuZ2UsIG5vIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGlzc3VlcyB0aGF0IEtNU0FOIHdvdWxkIGhpZ2hsaWdodC4gTm8gZGF0YSBsZWFrcywgYW5kIG5vIG5vdmVsIGFsbG9jYXRpb25zIG9yIHBvaW50ZXIgbWFuYWdlbWVudCB0aGF0IHdvdWxkIHJlcXVpcmUgZXh0cmEgc2NydXRpbnkuICBTdGFuZGFyZCBrZXJuZWwgc2FuaXRpemVycyBzaG91bGQgY2F0Y2ggYW55IHJlbGF0ZWQgYnVncy4gU28sIEkmIzM5O2Qgc2F5IHRoYXQgYE5lZWRzS01TQU5gIGlzIGBmYWxzZWAgaGVyZS4gVGhlIHBhdGNoIHNpbXBseSBwZXJzaXN0cyB0aGUgUlggZmlsdGVyIHNldHRpbmdzIHdpdGhpbiB0aGUgYHBoeWAgc3RydWN0dXJlIGFuZCByZXVzZXMgdGhlbSBpbiBhIHdlbGwtZGVmaW5lZCB3YXkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDYvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDEwOjAzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgZmllbGQgYHJ4ZmlsdGVyYCB0byBgc3RydWN0IG10NzkyeF9waHlgIHRvIHN0b3JlIHRoZSBSWCBmaWx0ZXIgZmxhZ3MuIFRoaXMgc3RydWN0dXJlIGlzIGVtYmVkZGVkIGluIGBzdHJ1Y3QgbXQ3OTJ4X2RldmAsIHdoaWNoIGlzIGFsbG9jYXRlZCB2aWEgYG10NzZfYWxsb2NfZGV2aWNlYCAtXHUwMDNlIGBpZWVlODAyMTFfYWxsb2NfaHdgIC1cdTAwM2UgYHdpcGh5X25ld19ubWAgdXNpbmcgYGt6YWxsb2NgLiBUaHVzLCB0aGUgbmV3IGZpZWxkIGlzIGZ1bGx5IHplcm8taW5pdGlhbGl6ZWQgdXBvbiBhbGxvY2F0aW9uLiBUaGUgcGF0Y2ggdGhlbiB3cml0ZXMgdG8gdGhpcyBmaWVsZCBpbiBgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXJgIGFuZCByZWFkcyBmcm9tIGl0IGluIGBtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyYCB0byBjb25kaXRpb25hbGx5IHNldCB0aGUgYGRyb3BfZXJyYCBmbGFnIGluIGEgaGFyZHdhcmUgY29uZmlndXJhdGlvbiByZXF1ZXN0LiBUaGVyZSBhcmUgbm8gbmV3IGFsbG9jYXRpb25zLCBubyBzdHJ1Y3R1cmVzIGNvcGllZCB0byB1c2VyIHNwYWNlLCBhbmQgbm8gY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHMgY291bGQgYmUgcmVhZC4gQW55IHBvdGVudGlhbCBidWdzIGludHJvZHVjZWQgYnkgdGhpcyBwYXRjaCB3b3VsZCBiZSByZWxhdGVkIHRvIGluY29ycmVjdCBsb2dpYyBvciBvdXQtb2YtYm91bmRzIGFjY2Vzcywgd2hpY2ggYXJlIHdlbGwtY292ZXJlZCBieSBzdGFuZGFyZCBLQVNBTiBhbmQgb3RoZXIgYnVnIGRldGVjdG9ycy4gVGhlcmUgaXMgbm8gcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzIHRoYXQgd291bGQgcmVxdWlyZSBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24uJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGZpZWxkIGByeGZpbHRlcmAgdG8gYHN0cnVjdCBtdDc5MnhfcGh5YCB0byBzdG9yZSB0aGUgUlggZmlsdGVyIGZsYWdzLiBUaGlzIHN0cnVjdHVyZSBpcyBlbWJlZGRlZCBpbiBgc3RydWN0IG10NzkyeF9kZXZgLCB3aGljaCBpcyBhbGxvY2F0ZWQgdmlhIGBtdDc2X2FsbG9jX2RldmljZWAgLVx1MDAzZSBgaWVlZTgwMjExX2FsbG9jX2h3YCAtXHUwMDNlIGB3aXBoeV9uZXdfbm1gIHVzaW5nIGBremFsbG9jYC4gVGh1cywgdGhlIG5ldyBmaWVsZCBpcyBmdWxseSB6ZXJvLWluaXRpYWxpemVkIHVwb24gYWxsb2NhdGlvbi4gVGhlIHBhdGNoIHRoZW4gd3JpdGVzIHRvIHRoaXMgZmllbGQgaW4gYG10NzkyNV9jb25maWd1cmVfZmlsdGVyYCBhbmQgcmVhZHMgZnJvbSBpdCBpbiBgbXQ3OTI1X21jdV9jb25maWdfc25pZmZlcmAgdG8gY29uZGl0aW9uYWxseSBzZXQgdGhlIGBkcm9wX2VycmAgZmxhZyBpbiBhIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24gcmVxdWVzdC4gVGhlcmUgYXJlIG5vIG5ldyBhbGxvY2F0aW9ucywgbm8gc3RydWN0dXJlcyBjb3BpZWQgdG8gdXNlciBzcGFjZSwgYW5kIG5vIGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIHdoZXJlIHVuaW5pdGlhbGl6ZWQgZmllbGRzIGNvdWxkIGJlIHJlYWQuIEFueSBwb3RlbnRpYWwgYnVncyBpbnRyb2R1Y2VkIGJ5IHRoaXMgcGF0Y2ggd291bGQgYmUgcmVsYXRlZCB0byBpbmNvcnJlY3QgbG9naWMgb3Igb3V0LW9mLWJvdW5kcyBhY2Nlc3MsIHdoaWNoIGFyZSB3ZWxsLWNvdmVyZWQgYnkgc3RhbmRhcmQgS0FTQU4gYW5kIG90aGVyIGJ1ZyBkZXRlY3RvcnMuIFRoZXJlIGlzIG5vIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcyB0aGF0IHdvdWxkIHJlcXVpcmUgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0yNlQwOTo0OTozOC42NTY3Nzg5NzVaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MDgyMjUzNDc3MTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVQ3OTI1VVwiLFxuICAgIFwiTUFDODAyMTFcIixcbiAgICBcIlVTQlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm10NzkyNV9jb25maWd1cmVfZmlsdGVyXCIsXG4gICAgXCJtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyXCJcbiAgXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGZpZWxkIGByeGZpbHRlcmAgdG8gYHN0cnVjdCBtdDc5MnhfcGh5YCB0byBzdG9yZSB0aGUgUlggZmlsdGVyIGZsYWdzLiBUaGlzIHN0cnVjdHVyZSBpcyBlbWJlZGRlZCBpbiBgc3RydWN0IG10NzkyeF9kZXZgLCB3aGljaCBpcyBhbGxvY2F0ZWQgdmlhIGBtdDc2X2FsbG9jX2RldmljZWAgLVxcdTAwM2UgYGllZWU4MDIxMV9hbGxvY19od2AgLVxcdTAwM2UgYHdpcGh5X25ld19ubWAgdXNpbmcgYGt6YWxsb2NgLiBUaHVzLCB0aGUgbmV3IGZpZWxkIGlzIGZ1bGx5IHplcm8taW5pdGlhbGl6ZWQgdXBvbiBhbGxvY2F0aW9uLiBUaGUgcGF0Y2ggdGhlbiB3cml0ZXMgdG8gdGhpcyBmaWVsZCBpbiBgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXJgIGFuZCByZWFkcyBmcm9tIGl0IGluIGBtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyYCB0byBjb25kaXRpb25hbGx5IHNldCB0aGUgYGRyb3BfZXJyYCBmbGFnIGluIGEgaGFyZHdhcmUgY29uZmlndXJhdGlvbiByZXF1ZXN0LiBUaGVyZSBhcmUgbm8gbmV3IGFsbG9jYXRpb25zLCBubyBzdHJ1Y3R1cmVzIGNvcGllZCB0byB1c2VyIHNwYWNlLCBhbmQgbm8gY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHMgY291bGQgYmUgcmVhZC4gQW55IHBvdGVudGlhbCBidWdzIGludHJvZHVjZWQgYnkgdGhpcyBwYXRjaCB3b3VsZCBiZSByZWxhdGVkIHRvIGluY29ycmVjdCBsb2dpYyBvciBvdXQtb2YtYm91bmRzIGFjY2Vzcywgd2hpY2ggYXJlIHdlbGwtY292ZXJlZCBieSBzdGFuZGFyZCBLQVNBTiBhbmQgb3RoZXIgYnVnIGRldGVjdG9ycy4gVGhlcmUgaXMgbm8gcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzIHRoYXQgd291bGQgcmVxdWlyZSBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24uXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhdGVrIE1UNzkyNSB3aXJlbGVzcyBkcml2ZXIgdG8gY29uZmlndXJlIHRoZSBzbmlmZmVyJ3MgZHJvcF9lcnIgZmxhZyBiYXNlZCBvbiB0aGUgcnhmaWx0ZXIgc2V0dGluZ3MuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZHJpdmVyJ3MgbWFjODAyMTEgY2FsbGJhY2tzLiBUaGUgZHJpdmVyIGhhcyBhIFVTQiB2YXJpYW50IChtdDc5MjV1KSB3aGljaCBjYW4gYmUgZnV6emVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB2aWEgVVNCIGVtdWxhdGlvbiAoc3l6X3VzYl9jb25uZWN0KS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjZUMDk6NDk6MzguNjU2Nzg1MDc1WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNjIwOTUxNjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA4ZGQ4ZTg4NGQzYTgzNjY1ZDcwNzI3MGI4ZDcxODVhNDZiMzQ4YmM0XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgQXVnIDI2IDA5OjQ5OjM3IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uY1xcbmluZGV4IGE5MDU5ODY2YjcwMTYuLmNmYmZkNzdlODkwZmIgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jXFxuQEAgLTgzMiwxMSArODMyLDggQEAgc3RhdGljIHZvaWQgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXIoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuIFxcdFxcdFxcdFxcdCAgICB1bnNpZ25lZCBpbnQgKnRvdGFsX2ZsYWdzLFxcbiBcXHRcXHRcXHRcXHQgICAgdTY0IG11bHRpY2FzdClcXG4ge1xcbi0jZGVmaW5lIE1UNzkyNV9GSUxURVJfRkNTRkFJTCAgICBCSVQoMilcXG4tI2RlZmluZSBNVDc5MjVfRklMVEVSX0NPTlRST0wgICAgQklUKDUpXFxuLSNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9PVEhFUl9CU1MgIEJJVCg2KVxcbi0jZGVmaW5lIE1UNzkyNV9GSUxURVJfRU5BQkxFICAgICBCSVQoMzEpXFxuIFxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcXG4rXFx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG10NzkyeF9od19waHkoaHcpO1xcbiBcXHR1MzIgZmxhZ3MgPSBNVDc5MjVfRklMVEVSX0VOQUJMRTtcXG4gXFxuICNkZWZpbmUgTVQ3OTI1X0ZJTFRFUihfZmlmLCBfdHlwZSkgZG8ge1xcdFxcdFxcdFxcXFxcXG5AQCAtODQ4LDYgKzg0NSw4IEBAIHN0YXRpYyB2b2lkIG10NzkyNV9jb25maWd1cmVfZmlsdGVyKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbiBcXHRNVDc5MjVfRklMVEVSKEZJRl9DT05UUk9MLCBDT05UUk9MKTtcXG4gXFx0TVQ3OTI1X0ZJTFRFUihGSUZfT1RIRVJfQlNTLCBPVEhFUl9CU1MpO1xcbiBcXG4rXFx0cGh5LVxcdTAwM2VyeGZpbHRlciA9IGZsYWdzO1xcbitcXG4gXFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG4gXFx0bXQ3OTI1X21jdV9zZXRfcnhmaWx0ZXIoZGV2LCBmbGFncywgMCwgMCk7XFxuIFxcdG10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmNcXG5pbmRleCBlOTRmYTU0NGZmMjA3Li5hZGMxMzdhMGU2YjRkIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmNcXG5AQCAtMjI1MSw3ICsyMjUxLDcgQEAgaW50IG10NzkyNV9tY3VfY29uZmlnX3NuaWZmZXIoc3RydWN0IG10NzkyeF92aWYgKnZpZixcXG4gXFx0XFx0XFx0LmxlbiA9IGNwdV90b19sZTE2KHNpemVvZihyZXEudGx2KSksXFxuIFxcdFxcdFxcdC5jb250cm9sX2NoID0gY2hhbmRlZi1cXHUwMDNlY2hhbi1cXHUwMDNlaHdfdmFsdWUsXFxuIFxcdFxcdFxcdC5jZW50ZXJfY2ggPSBpZWVlODAyMTFfZnJlcXVlbmN5X3RvX2NoYW5uZWwoZnJlcTEpLFxcbi1cXHRcXHRcXHQuZHJvcF9lcnIgPSAxLFxcbitcXHRcXHRcXHQuZHJvcF9lcnIgPSAhKHZpZi1cXHUwMDNlcGh5LVxcdTAwM2VyeGZpbHRlciBcXHUwMDI2IE1UNzkyNV9GSUxURVJfRkNTRkFJTCksXFxuIFxcdFxcdH0sXFxuIFxcdH07XFxuIFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tdDc5MjUuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L210NzkyNS5oXFxuaW5kZXggNGNjMjU5NDE4YWZjYS4uOGZiOGE0YzEzMTZlMCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tdDc5MjUuaFxcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L210NzkyNS5oXFxuQEAgLTcsNiArNywxMSBAQFxcbiAjaW5jbHVkZSBcXFwiLi4vbXQ3OTJ4LmhcXFwiXFxuICNpbmNsdWRlIFxcXCJyZWdzLmhcXFwiXFxuIFxcbisjZGVmaW5lIE1UNzkyNV9GSUxURVJfRkNTRkFJTFxcdFxcdEJJVCgyKVxcbisjZGVmaW5lIE1UNzkyNV9GSUxURVJfQ09OVFJPTFxcdFxcdEJJVCg1KVxcbisjZGVmaW5lIE1UNzkyNV9GSUxURVJfT1RIRVJfQlNTXFx0QklUKDYpXFxuKyNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9FTkFCTEVcXHRcXHRCSVQoMzEpXFxuK1xcbiAjZGVmaW5lIE1UNzkyNV9CRUFDT05fUkFURVNfVEJMXFx0XFx0MjVcXG4gXFxuICNkZWZpbmUgTVQ3OTI1X1RYX1JJTkdfU0laRVxcdFxcdDIwNDhcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4LmhcXG5pbmRleCA3MDA3M2I0M2FmNTQzLi43NWQzMmE0YWRkZDcxIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4LmhcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oXFxuQEAgLTE2OCw2ICsxNjgsNyBAQCBzdHJ1Y3QgbXQ3OTJ4X3BoeSB7XFxuIFxcdHMxNiBjb3ZlcmFnZV9jbGFzcztcXG4gXFx0dTggc2xvdHRpbWU7XFxuIFxcbitcXHR1MzIgcnhmaWx0ZXI7XFxuIFxcdHUzMiByeF9hbXBkdV90cztcXG4gXFx0dTMyIGFtcGR1X3JlZjtcXG4gXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDA5OjQ5OjM5LjAxOTU2Nzk0OFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjczNjEzODE0OTA1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNVDc5MjVVXCIsXG4gICAgXCJNQUM4MDIxMVwiLFxuICAgIFwiVVNCXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXJcIixcbiAgICBcIm10NzkyNV9tY3VfY29uZmlnX3NuaWZmZXJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVkaWF0ZWsgTVQ3OTI1IHdpcmVsZXNzIGRyaXZlciB0byBjb25maWd1cmUgdGhlIHNuaWZmZXIncyBkcm9wX2VyciBmbGFnIGJhc2VkIG9uIHRoZSByeGZpbHRlciBzZXR0aW5ncy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXIncyBtYWM4MDIxMSBjYWxsYmFja3MuIFRoZSBkcml2ZXIgaGFzIGEgVVNCIHZhcmlhbnQgKG10NzkyNXUpIHdoaWNoIGNhbiBiZSBmdXp6ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSBVU0IgZW11bGF0aW9uIChzeXpfdXNiX2Nvbm5lY3QpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA4ZGQ4ZTg4NGQzYTgzNjY1ZDcwNzI3MGI4ZDcxODVhNDZiMzQ4YmM0XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBBdWcgMjYgMDk6NDk6MzcgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmNcbmluZGV4IGE5MDU5ODY2YjcwMTYuLmNmYmZkNzdlODkwZmIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uY1xuQEAgLTgzMiwxMSArODMyLDggQEAgc3RhdGljIHZvaWQgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXIoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4gXHRcdFx0XHQgICAgdW5zaWduZWQgaW50ICp0b3RhbF9mbGFncyxcbiBcdFx0XHRcdCAgICB1NjQgbXVsdGljYXN0KVxuIHtcbi0jZGVmaW5lIE1UNzkyNV9GSUxURVJfRkNTRkFJTCAgICBCSVQoMilcbi0jZGVmaW5lIE1UNzkyNV9GSUxURVJfQ09OVFJPTCAgICBCSVQoNSlcbi0jZGVmaW5lIE1UNzkyNV9GSUxURVJfT1RIRVJfQlNTICBCSVQoNilcbi0jZGVmaW5lIE1UNzkyNV9GSUxURVJfRU5BQkxFICAgICBCSVQoMzEpXG4gXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gbXQ3OTJ4X2h3X2Rldihodyk7XG4rXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG4gXHR1MzIgZmxhZ3MgPSBNVDc5MjVfRklMVEVSX0VOQUJMRTtcbiBcbiAjZGVmaW5lIE1UNzkyNV9GSUxURVIoX2ZpZiwgX3R5cGUpIGRvIHtcdFx0XHRcXFxuQEAgLTg0OCw2ICs4NDUsOCBAQCBzdGF0aWMgdm9pZCBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbiBcdE1UNzkyNV9GSUxURVIoRklGX0NPTlRST0wsIENPTlRST0wpO1xuIFx0TVQ3OTI1X0ZJTFRFUihGSUZfT1RIRVJfQlNTLCBPVEhFUl9CU1MpO1xuIFxuK1x0cGh5LVx1MDAzZXJ4ZmlsdGVyID0gZmxhZ3M7XG4rXG4gXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuIFx0bXQ3OTI1X21jdV9zZXRfcnhmaWx0ZXIoZGV2LCBmbGFncywgMCwgMCk7XG4gXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmNcbmluZGV4IGU5NGZhNTQ0ZmYyMDcuLmFkYzEzN2EwZTZiNGQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmNcbkBAIC0yMjUxLDcgKzIyNTEsNyBAQCBpbnQgbXQ3OTI1X21jdV9jb25maWdfc25pZmZlcihzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqdmlmLFxuIFx0XHRcdC5sZW4gPSBjcHVfdG9fbGUxNihzaXplb2YocmVxLnRsdikpLFxuIFx0XHRcdC5jb250cm9sX2NoID0gY2hhbmRlZi1cdTAwM2VjaGFuLVx1MDAzZWh3X3ZhbHVlLFxuIFx0XHRcdC5jZW50ZXJfY2ggPSBpZWVlODAyMTFfZnJlcXVlbmN5X3RvX2NoYW5uZWwoZnJlcTEpLFxuLVx0XHRcdC5kcm9wX2VyciA9IDEsXG4rXHRcdFx0LmRyb3BfZXJyID0gISh2aWYtXHUwMDNlcGh5LVx1MDAzZXJ4ZmlsdGVyIFx1MDAyNiBNVDc5MjVfRklMVEVSX0ZDU0ZBSUwpLFxuIFx0XHR9LFxuIFx0fTtcbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tdDc5MjUuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L210NzkyNS5oXG5pbmRleCA0Y2MyNTk0MThhZmNhLi44ZmI4YTRjMTMxNmUwIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbXQ3OTI1LmhcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L210NzkyNS5oXG5AQCAtNyw2ICs3LDExIEBAXG4gI2luY2x1ZGUgXCIuLi9tdDc5MnguaFwiXG4gI2luY2x1ZGUgXCJyZWdzLmhcIlxuIFxuKyNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9GQ1NGQUlMXHRcdEJJVCgyKVxuKyNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9DT05UUk9MXHRcdEJJVCg1KVxuKyNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9PVEhFUl9CU1NcdEJJVCg2KVxuKyNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9FTkFCTEVcdFx0QklUKDMxKVxuK1xuICNkZWZpbmUgTVQ3OTI1X0JFQUNPTl9SQVRFU19UQkxcdFx0MjVcbiBcbiAjZGVmaW5lIE1UNzkyNV9UWF9SSU5HX1NJWkVcdFx0MjA0OFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4LmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oXG5pbmRleCA3MDA3M2I0M2FmNTQzLi43NWQzMmE0YWRkZDcxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaFxuQEAgLTE2OCw2ICsxNjgsNyBAQCBzdHJ1Y3QgbXQ3OTJ4X3BoeSB7XG4gXHRzMTYgY292ZXJhZ2VfY2xhc3M7XG4gXHR1OCBzbG90dGltZTtcbiBcbitcdHUzMiByeGZpbHRlcjtcbiBcdHUzMiByeF9hbXBkdV90cztcbiBcdHUzMiBhbXBkdV9yZWY7XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQwOTo0OTozOS4wMTk1NjkxMzhaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3NTY5MDg5OTU1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIFRoaXMgV2ktRmkgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0J3MgdG91Y2hpbmcgYSBmZXcgZmlsZXMgcmVsYXRlZCB0byB0aGUgTWVkaWF0ZWsgTVQ3OTI1IHdpcmVsZXNzIGRyaXZlcjogYG1haW4uY2AsIGBtY3UuY2AsIGBtdDc5MjUuaGAsIGFuZCBgbXQ3OTJ4LmhgLiBUaGUgY29yZSBvZiB0aGUgY2hhbmdlIHNlZW1zIHRvIGJlIGFib3V0IG1vdmluZyBzb21lIGAjZGVmaW5lYCBzdGF0ZW1lbnRzIHRvIGEgaGVhZGVyIGZpbGUsIGFkZGluZyBhbiBgcnhmaWx0ZXJgIGZpZWxkIHRvIHRoZSBgbXQ3OTJ4X3BoeWAgc3RydWN0LCBhbmQgdGhlbiB1c2luZyB0aGF0IG5ldyBmaWx0ZXIgaW4gYSBjb3VwbGUgb2YgcGxhY2VzLiBTcGVjaWZpY2FsbHksIGl0J3Mgc2V0dGluZyBgcGh5LVx1MDAzZXJ4ZmlsdGVyID0gZmxhZ3M7YCBpbiBgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXJgLCBhbmQgbGV2ZXJhZ2luZyB0aGUgZmlsdGVyIGluIGBtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyYCwgd2hlcmUgaXQncyB1c2luZyB0aGUgZmlsdGVyIHRvIHNlbGVjdGl2ZWx5IGRyb3AgcGFja2V0czogYC5kcm9wX2VyciA9ICEodmlmLVx1MDAzZXBoeS1cdTAwM2VyeGZpbHRlciBcdTAwMjYgTVQ3OTI1X0ZJTFRFUl9GQ1NGQUlMKWAuXG5cbk5vdywgdGhlIGltcG9ydGFudCBxdWVzdGlvbiBpczogd2hhdCBraW5kIG9mIHRhcmdldCBkZXZpY2UgYW0gSSBkZWFsaW5nIHdpdGggaGVyZT8gVGhpcyBkcml2ZXIgaXMgZm9yIHRoZSBNVDc5MjUsIHdoaWNoLCBnaXZlbiBteSBleHBlcmllbmNlIHdpdGggdGhlIGBtdDc2YCBmYW1pbHksIGlzIGFsbW9zdCBjZXJ0YWlubHkgYSBwaHlzaWNhbCBoYXJkd2FyZSBkcml2ZXIsIGxpa2VseSBQQ0llIG9yIFVTQi4gSSBkb3VidCBpdCB3b3VsZCBiZSBhIHB1cmVseSBzb2Z0d2FyZS1iYXNlZCBXaS1GaSBzdGFjay4gU28sIHRoZSBxdWVzdGlvbiBpcywgY2FuIHRoaXMgYmUgZW11bGF0ZWQgd2l0aGluIFFFTVU/IEkgZG91YnQgdGhhdCB0aGlzIGlzIHNvbWV0aGluZyB0aGF0IGhhcyBhIGdlbmVyaWMgZW5vdWdoIFVTQiBpbnRlcmZhY2UgdG8gYmUgZW11bGF0ZWQgYXMgYSBVU0IgZ2FkZ2V0LCBhbmQgZW11bGF0aW5nIGEgc3BlY2lmaWMgTWVkaWF0ZWsgV2ktRmkgY2FyZCBpcyBub3Qgc29tZXRoaW5nIEkndmUgdXN1YWxseSBzZWVuLCB1bmxlc3Mgd2UncmUgdGFsa2luZyBhYm91dCB2ZXJ5IGdlbmVyYWwsIHNpbXBsZSBVU0IgZGV2aWNlcy4gSXQncyBub3QgbGlrZSBgbWFjODAyMTFfaHdzaW1gLCB3aGljaCBwcm92aWRlcyBhIGdlbmVyYWwgV2ktRmkgZW11bGF0aW9uLlxuXG5JIG5lZWQgdG8gY29uZmlybSB3aGV0aGVyIHRoaXMgZHJpdmVyIGlzIGZvciBhIFBDSSBvciBVU0IgZGV2aWNlLCBhbmQgSSdsbCB1c2UgYGdyZXBwZXJgIHRvIHNlZSBpZiB0aGVyZSBpcyBhbnkgaW5kaWNhdGlvbiBvZiBpdCBiZWluZyBlaXRoZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxMDksIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozODcsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQwOTo0OTo0Ni41ODg2NjI1NzNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDg1NjU0NDYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3OTI1XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDMxOTEgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L01ha2VmaWxlLTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfTVQ3OTI1X0NPTU1PTikgKz0gbXQ3OTI1LWNvbW1vbi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGU6NDpvYmotJChDT05GSUdfTVQ3OTI1RSkgKz0gbXQ3OTI1ZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGU6NTpvYmotJChDT05GSUdfTVQ3OTI1VSkgKz0gbXQ3OTI1dS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGUtNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9NYWtlZmlsZTo3Om10NzkyNS1jb21tb24teSA6PSBtYWMubyBtY3UubyByZWdkLm8gbWFpbi5vIGluaXQubyBkZWJ1Z2ZzLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9NYWtlZmlsZTo4Om10NzkyNS1jb21tb24tJChDT05GSUdfTkw4MDIxMV9URVNUTU9ERSkgKz0gdGVzdG1vZGUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L01ha2VmaWxlOjk6bXQ3OTI1ZS15IDo9IHBjaS5vIHBjaV9tYWMubyBwY2lfbWN1Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9NYWtlZmlsZToxMDptdDc5MjV1LXkgOj0gdXNiLm9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0zLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo0OiNpbmNsdWRlIFxcXCJtdDc5MjUuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtNS0jaW5jbHVkZSBcXFwibWN1LmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9Nz1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjg6bXQ3OTI1X3JlZ19zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtOS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTMtXFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTQ6XFx0bXQ3OTI1X21jdV9yZWd2YWwoZGV2LCBkZXYtXFx1MDAzZW10NzYuZGVidWdmc19yZWcsIFxcdTAwMjZyZWd2YWwsIHRydWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNS1cXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jPTIwPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MjE6bXQ3OTI1X3JlZ19nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTIyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yNy1cXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyODpcXHRyZXQgPSBtdDc5MjVfbWN1X3JlZ3ZhbChkZXYsIGRldi1cXHUwMDNlbXQ3Ni5kZWJ1Z2ZzX3JlZywgXFx1MDAyNnJlZ3ZhbCwgZmFsc2UpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yOS1cXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTM1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzozNjpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19yZWd2YWwsIG10NzkyNV9yZWdfZ2V0LCBtdDc5MjVfcmVnX3NldCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMzctXFx0XFx0XFx0IFxcXCIweCUwOGxseFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jPTM4PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6Mzk6bXQ3OTI1X2Z3X2RlYnVnX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy00MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtNDUtXFx0ZGV2LVxcdTAwM2Vmd19kZWJ1ZyA9ICh1OCl2YWw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjQ2OlxcdG10NzkyNV9tY3VfZndfbG9nXzJfaG9zdChkZXYsIGRldi1cXHUwMDNlZndfZGVidWcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy00Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz01Mz1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjU0Om10NzkyNV9md19kZWJ1Z19nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTU1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy02Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6NjM6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfZndfZGVidWcsIG10NzkyNV9md19kZWJ1Z19nZXQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjY0OlxcdFxcdFxcdCBtdDc5MjVfZndfZGVidWdfc2V0LCBcXFwiJWxsZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTY1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jPTY4PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjY5Om10NzkyNV9zZXFfcHV0c19hcnJheShzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgKnN0cixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtNzAtXFx0XFx0ICAgICAgczggdmFsW11bMl0sIGludCBsZW4sIHU4IGJhbmRfaWR4KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTgyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo4MzojZGVmaW5lIG10NzkyNV9wcmludF90eHB3cl9lbnRyeShwcmVmaXgsIHJhdGUsIGlkeClcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTg0LSh7XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo4NTpcXHRtdDc5MjVfc2VxX3B1dHNfYXJyYXkocywgI3ByZWZpeCBcXFwiICh0bWFjKVxcXCIsXFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy04Ni1cXHRcXHRcXHQgICAgICB0eHB3ci1cXHUwMDNlcmF0ZSxcXHRcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9OTE9c3RhdGljIGlubGluZSB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjkyOm10NzkyNV9laHRfdHhwd3Ioc3RydWN0IHNlcV9maWxlICpzLCBzdHJ1Y3QgbXQ3OTI1X3R4cHdyICp0eHB3ciwgdTggYmFuZF9pZHgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTkzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy05Ny1cXHRcXHQgICBcXFwibWNzMTJcXFwiLCBcXFwibWNzMTNcXFwiLCBcXFwibWNzMTRcXFwiLCBcXFwibWNzMTVcXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6OTg6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDI2LCBlaHQyNiwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo5OTpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUNTIsIGVodDUyLCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjEwMDpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUMTA2LCBlaHQxMDYsIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTAxOlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShFSFQyNDIsIGVodDI0MiwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMDI6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDQ4NCwgZWh0NDg0LCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTEwMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTA0OlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShFSFQ5OTYsIGVodDk5NiwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMDU6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDk5NngyLCBlaHQ5OTZ4MiwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMDY6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDk5Nng0LCBlaHQ5OTZ4NCwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMDc6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDI2XzUyLCBlaHQyNl81MiwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMDg6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDI2XzEwNiwgZWh0MjZfMTA2LCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjEwOTpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUNDg0XzI0MiwgZWh0NDg0XzI0MiwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMTA6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDk5Nl80ODQsIGVodDk5Nl80ODQsIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTExOlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShFSFQ5OTZfNDg0XzI0MiwgZWh0OTk2XzQ4NF8yNDIsIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTEyOlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShFSFQ5OTZ4Ml80ODQsIGVodDk5NngyXzQ4NCwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMTM6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDk5NngzLCBlaHQ5OTZ4MywgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMTQ6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDk5NngzXzQ4NCwgZWh0OTk2eDNfNDg0LCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTExNS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MTE3PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTE4Om10NzkyNV90eHB3cihzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTExOS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTEyMC1cXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gZGV2X2dldF9kcnZkYXRhKHMtXFx1MDAzZXByaXZhdGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMjE6XFx0c3RydWN0IG10NzkyNV90eHB3ciAqdHhwd3IgPSBOVUxMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xMjItXFx0dTggYmFuZF9pZHggPSBkZXYtXFx1MDAzZW1waHkuYmFuZF9pZHg7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTMwLVxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjEzMTpcXHRyZXQgPSBtdDc5MjVfZ2V0X3R4cHdyX2luZm8oZGV2LCBiYW5kX2lkeCwgdHhwd3IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xMzItXFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xMzgtXFx0XFx0ICAgXFxcIiBcXFwiLCBcXFwiMW1cXFwiLCBcXFwiMm1cXFwiLCBcXFwiNW1cXFwiLCBcXFwiMTFtXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjEzOTpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoQ0NLLCBjY2ssIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTQwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE0My1cXHRcXHQgICBcXFwiNDhtXFxcIiwgXFxcIjU0bVxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNDQ6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KE9GRE0sIG9mZG0sIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTQ1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE0OC1cXHRcXHQgICBcXFwibWNzNlxcXCIsIFxcXCJtY3M3XFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE0OTpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoSFQyMCwgaHQyMCwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNTAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTUzLVxcdFxcdCAgIFxcXCJtY3M2XFxcIiwgXFxcIm1jczdcXFwiLCBcXFwibWNzMzJcXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTU0OlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShIVDQwLCBodDQwLCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE1NS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNTgtXFx0XFx0ICAgXFxcIm1jczZcXFwiLCBcXFwibWNzN1xcXCIsIFxcXCJtY3M4XFxcIiwgXFxcIm1jczlcXFwiLCBcXFwibWNzMTBcXFwiLCBcXFwibWNzMTFcXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTU5OlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShWSFQyMCwgdmh0MjAsIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTYwOlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShWSFQ0MCwgdmh0NDAsIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTYxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNjI6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KFZIVDgwLCB2aHQ4MCwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNjM6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KFZIVDE2MCwgdmh0MTYwLCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE2NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTY1OlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShIRTI2LCBoZTI2LCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE2NjpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoSEU1MiwgaGU1MiwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNjc6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEhFMTA2LCBoZTEwNiwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNjg6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEhFMjQyLCBoZTI0MiwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNjk6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEhFNDg0LCBoZTQ4NCwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE3MTpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoSEU5OTYsIGhlOTk2LCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE3MjpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoSEU5OTZ4MiwgaGU5OTZ4MiwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE3NDpcXHRtdDc5MjVfZWh0X3R4cHdyKHMsIHR4cHdyLCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE3NS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz0xODE9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxODI6bXQ3OTI1X3BtX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xODMte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTIwNS1cXHRwbS1cXHUwMDNlZW5hYmxlX3VzZXIgPSB2YWw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjIwNjpcXHRtdDc5MjVfc2V0X3J1bnRpbWVfcG0oZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjA3LVxcdG10NzZfY29ubmFjX3Bvd2VyX3NhdmVfc2NoZWQoXFx1MDAyNmRldi1cXHUwMDNlbXBoeSwgcG0pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jPTIxND1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjIxNTptdDc5MjVfcG1fZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yMTYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTIyMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MjI0OkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3BtLCBtdDc5MjVfcG1fZ2V0LCBtdDc5MjVfcG1fc2V0LCBcXFwiJWxsZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTIyNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MjI2PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MjI3Om10NzkyNV9kZWVwX3NsZWVwX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yMjgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI0Mi1cXHRwbS1cXHUwMDNlZHNfZW5hYmxlID0gZW5hYmxlIFxcdTAwMjZcXHUwMDI2ICFtb25pdG9yO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyNDM6XFx0bXQ3OTI1X21jdV9zZXRfZGVlcF9zbGVlcChkZXYsIHBtLVxcdTAwM2Vkc19lbmFibGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yNDQtb3V0Olxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jPTI1MD1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI1MTptdDc5MjVfZGVlcF9zbGVlcF9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI1Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjU5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyNjA6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfZHMsIG10NzkyNV9kZWVwX3NsZWVwX2dldCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MjYxOlxcdFxcdFxcdCBtdDc5MjVfZGVlcF9zbGVlcF9zZXQsIFxcXCIlbGxkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjYyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz0yNjM9REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfcG1faWRsZV90aW1lb3V0LCBtdDc5MnhfcG1faWRsZV90aW1lb3V0X2dldCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yNjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI2NjpzdGF0aWMgaW50IG10NzkyNV9jaGlwX3Jlc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI2Ny17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjc4LVxcdFxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI3OTpcXHRcXHRyZXQgPSBtdDc5MjVfbWN1X2NoaXBfY29uZmlnKGRldiwgXFxcImFzc2VydFxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yODAtXFx0XFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yODYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI4NzpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19yZXNldCwgTlVMTCwgbXQ3OTI1X2NoaXBfcmVzZXQsIFxcXCIlbGxkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjg4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyODk6aW50IG10NzkyNV9pbml0X2RlYnVnZnMoc3RydWN0IG10NzkyeF9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjkwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0zMDQtXFx0ZGVidWdmc19jcmVhdGVfZGV2bV9zZXFmaWxlKGRldi1cXHUwMDNlbXQ3Ni5kZXYsIFxcXCJ0eHBvd2VyX3NrdVxcXCIsIGRpcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MzA1OlxcdFxcdFxcdFxcdCAgICBtdDc5MjVfdHhwd3IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0zMDYtXFx0ZGVidWdmc19jcmVhdGVfZmlsZShcXFwidHhfc3RhdHNcXFwiLCAwNDAwLCBkaXIsIGRldiwgXFx1MDAyNm10NzkyeF90eF9zdGF0c19mb3BzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy04LSNpbmNsdWRlIFxcdTAwM2NsaW51eC9maXJtd2FyZS5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzo5OiNpbmNsdWRlIFxcXCJtdDc5MjUuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTAtI2luY2x1ZGUgXFxcInJlZ2QuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTQ6c3RhdGljIHNzaXplX3QgbXQ3OTI1X3RoZXJtYWxfdGVtcF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTUtXFx0XFx0XFx0XFx0XFx0c3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjQtXFx0XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUobWRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjI1OlxcdFxcdHRlbXBlcmF0dXJlID0gbXQ3OTI1X21jdV9nZXRfdGVtcGVyYXR1cmUocGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjYtXFx0XFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UobWRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMzYtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzozNzpzdGF0aWMgU0VOU09SX0RFVklDRV9BVFRSX1JPKHRlbXAxX2lucHV0LCBtdDc5MjVfdGhlcm1hbF90ZW1wLCAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjM5OnN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICptdDc5MjVfaHdtb25fYXR0cnNbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtNDAtXFx0XFx1MDAyNnNlbnNvcl9kZXZfYXR0cl90ZW1wMV9pbnB1dC5kZXZfYXR0ci5hdHRyLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTQyLX07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjQzOkFUVFJJQlVURV9HUk9VUFMobXQ3OTI1X2h3bW9uKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtNDQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjQ1OnN0YXRpYyBpbnQgbXQ3OTI1X3RoZXJtYWxfaW5pdChzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy00Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtNTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjU0OlxcdG5hbWUgPSBkZXZtX2thc3ByaW50ZihcXHUwMDI2d2lwaHktXFx1MDAzZWRldiwgR0ZQX0tFUk5FTCwgXFxcIm10NzkyNV8lc1xcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTU1LVxcdFxcdFxcdCAgICAgIHdpcGh5X25hbWUod2lwaHkpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy01OS1cXHRod21vbiA9IGRldm1faHdtb25fZGV2aWNlX3JlZ2lzdGVyX3dpdGhfZ3JvdXBzKFxcdTAwMjZ3aXBoeS1cXHUwMDNlZGV2LCBuYW1lLCBwaHksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjYwOlxcdFxcdFxcdFxcdFxcdFxcdCAgICAgICBtdDc5MjVfaHdtb25fZ3JvdXBzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtNjEtXFx0cmV0dXJuIFBUUl9FUlJfT1JfWkVSTyhod21vbik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtNjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjY0OnN0YXRpYyB2b2lkIG10NzkyNV9tYWNfaW5pdF9iYXNpY19yYXRlcyhzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy02NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtNzMtXFx0XFx0ICAgICAgIEZJRUxEX1BSRVAoTVRfVFhfUkFURV9JRFgsIHJhdGUgXFx1MDAyNiBHRU5NQVNLKDcsIDApKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6NzQ6XFx0XFx0bXQ3OTI1X21hY19zZXRfZml4ZWRfcmF0ZV90YWJsZShkZXYsIGlkeCwgcmF0ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTc1LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy03Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6Nzg6aW50IG10NzkyNV9tYWNfaW5pdChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy03OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtODYtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIE1UNzkyeF9XVEJMX1NJWkU7IGkrKylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6ODc6XFx0XFx0bXQ3OTI1X21hY193dGJsX3VwZGF0ZShkZXYsIGksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTg4LVxcdFxcdFxcdFxcdCAgICAgICBNVF9XVEJMX1VQREFURV9BRE1fQ09VTlRfQ0xFQVIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTkxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzo5MjpcXHRtdDc5MjVfbWFjX2luaXRfYmFzaWNfcmF0ZXMoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtOTMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtOTctfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzo5ODpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MjVfbWFjX2luaXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy05OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTAwOnN0YXRpYyBpbnQgX19tdDc5MjVfaW5pdF9oYXJkd2FyZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMDEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTExMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTEyOlxcdHJldCA9IG10NzkyNV9tY3Vfc2V0X2VlcHJvbShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMTMtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjExNjpcXHRyZXQgPSBtdDc5MjVfbWFjX2luaXQoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTE3LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTIwLVxcdGlmIChpc19tdDc5MjcoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTIxOlxcdFxcdHJldCA9IG10NzkyNV9tY3Vfc2V0X2RiZGMoXFx1MDAyNmRldi1cXHUwMDNlbXBoeSwgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTEyMi1cXHRcXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTMyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxMzM6c3RhdGljIGludCBtdDc5MjVfaW5pdF9oYXJkd2FyZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMzQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTEzOS1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgTVQ3OTJ4X01DVV9JTklUX1JFVFJZX0NPVU5UOyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTQwOlxcdFxcdHJldCA9IF9fbXQ3OTI1X2luaXRfaGFyZHdhcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTQxLVxcdFxcdGlmICghcmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE1NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTU1OnN0YXRpYyB2b2lkIG10NzkyNV9pbml0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNTYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE2MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTYxOlxcdHJldCA9IG10NzkyNV9pbml0X2hhcmR3YXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE2Mi1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE2NS1cXHRtdDc2X3NldF9zdHJlYW1fY2FwcyhcXHUwMDI2ZGV2LVxcdTAwM2VtcGh5LCB0cnVlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTY2OlxcdG10NzkyNV9zZXRfc3RyZWFtX2hlX2VodF9jYXBzKFxcdTAwMjZkZXYtXFx1MDAzZXBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE2Ny1cXHRtdDc5MnhfY29uZmlnX21hY19hZGRyX2xpc3QoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTY4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxNjk6XFx0cmV0ID0gbXQ3OTI1X2luaXRfbWxvX2NhcHMoXFx1MDAyNmRldi1cXHUwMDNlcGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTcwLVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xODEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjE4MjpcXHRyZXQgPSBtdDc5MjVfaW5pdF9kZWJ1Z2ZzKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE4My1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTg3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxODg6XFx0cmV0ID0gbXQ3OTI1X3RoZXJtYWxfaW5pdChcXHUwMDI2ZGV2LVxcdTAwM2VwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xODktXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE5My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTk0OlxcdHJldCA9IG10NzkyNV9tY3Vfc2V0X3RoZXJtYWxfcHJvdGVjdChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xOTUtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTIwMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjAzOlxcdG10NzkyNV9tY3Vfc2V0X2RlZXBfc2xlZXAoZGV2LCBkZXYtXFx1MDAzZXBtLmRzX2VuYWJsZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTIwNC19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTIwNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjA2OmludCBtdDc5MjVfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTIwNy17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjE2LVxcdElOSVRfREVMQVlFRF9XT1JLKFxcdTAwMjZkZXYtXFx1MDAzZXBtLnBzX3dvcmssIG10NzkyeF9wbV9wb3dlcl9zYXZlX3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoyMTc6XFx0SU5JVF9ERUxBWUVEX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlbWxvX3BtX3dvcmssIG10NzkyNV9tbG9fcG1fd29yayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTIxOC1cXHRJTklUX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlcG0ud2FrZV93b3JrLCBtdDc5MnhfcG1fd2FrZV93b3JrKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yMjQtXFx0SU5JVF9ERUxBWUVEX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlbXBoeS5tYWNfd29yaywgbXQ3OTJ4X21hY193b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjI1OlxcdElOSVRfREVMQVlFRF9XT1JLKFxcdTAwMjZkZXYtXFx1MDAzZXBoeS5zY2FuX3dvcmssIG10NzkyNV9zY2FuX3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoyMjY6XFx0SU5JVF9ERUxBWUVEX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlY29yZWR1bXAud29yaywgbXQ3OTI1X2NvcmVkdW1wX3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yMjctI2lmIElTX0VOQUJMRUQoQ09ORklHX0lQVjYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjIyODpcXHRJTklUX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlaXB2Nl9uc193b3JrLCBtdDc5MjVfc2V0X2lwdjZfbnNfd29yayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTIyOS1cXHRza2JfcXVldWVfaGVhZF9pbml0KFxcdTAwMjZkZXYtXFx1MDAzZWlwdjZfbnNfbGlzdCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjMzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoyMzQ6XFx0SU5JVF9XT1JLKFxcdTAwMjZkZXYtXFx1MDAzZXJlc2V0X3dvcmssIG10NzkyNV9tYWNfcmVzZXRfd29yayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjIzNTpcXHRJTklUX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlaW5pdF93b3JrLCBtdDc5MjVfaW5pdF93b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjM2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoyMzc6XFx0SU5JVF9XT1JLKFxcdTAwMjZkZXYtXFx1MDAzZXBoeS5yb2Nfd29yaywgbXQ3OTI1X3JvY193b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjM4LVxcdHRpbWVyX3NldHVwKFxcdTAwMjZkZXYtXFx1MDAzZXBoeS5yb2NfdGltZXIsIG10NzkyeF9yb2NfdGltZXIsIDApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTI2NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjY1OlxcdGh3LVxcdTAwM2V3aXBoeS1cXHUwMDNlcmVnX25vdGlmaWVyID0gbXQ3OTI1X3JlZ2Rfbm90aWZpZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTI2Ni1cXHRkZXYtXFx1MDAzZW1waHkuc2JhbmRfMmcuc2JhbmQuaHRfY2FwLmNhcCB8PVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTI5Mi19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjI5MzpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MjVfcmVnaXN0ZXJfZGV2aWNlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTYtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3RpbWVrZWVwaW5nLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6NzojaW5jbHVkZSBcXFwibXQ3OTI1LmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtOC0jaW5jbHVkZSBcXFwiLi4vZG1hLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMzpib29sIG10NzkyNV9tYWNfd3RibF91cGRhdGUoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgaW50IGlkeCwgdTMyIG1hc2spXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MjI6c3RhdGljIHZvaWQgbXQ3OTI1X21hY19zdGFfcG9sbChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTIzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTU4LVxcdFxcdGlkeCA9IG1saW5rLVxcdTAwM2V3Y2lkLmlkeDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo1OTpcXHRcXHRhZGRyID0gbXQ3OTI1X21hY193dGJsX2xtYWNfYWRkcihkZXYsIGlkeCwgTVRfV1RCTF9BQzBfQ1RUX09GRlNFVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNjAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy03Ny1cXHRcXHRpZiAoY2xlYXIpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo3ODpcXHRcXHRcXHRtdDc5MjVfbWFjX3d0YmxfdXBkYXRlKGRldiwgaWR4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTc5LVxcdFxcdFxcdFxcdFxcdCAgICAgICBNVF9XVEJMX1VQREFURV9BRE1fQ09VTlRfQ0xFQVIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTIyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyMzpcXHRcXHRhZGRyID0gbXQ3OTI1X21hY193dGJsX2xtYWNfYWRkcihkZXYsIGlkeCwgNik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI0LVxcdFxcdHZhbCA9IG10NzZfcnIoZGV2LCBhZGRyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjUtXFx0XFx0aWYgKHJhdGUtXFx1MDAzZWZsYWdzIFxcdTAwMjYgUkFURV9JTkZPX0ZMQUdTX0VIVF9NQ1MpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjY6XFx0XFx0XFx0YWRkciA9IG10NzkyNV9tYWNfd3RibF9sbWFjX2FkZHIoZGV2LCBpZHgsIDUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNy1cXHRcXHRcXHR2YWwgPSBtdDc2X3JyKGRldiwgYWRkcik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xNDEtXFx0XFx0LyogZ2V0IHNpZ25hbCBzdHJlbmd0aCBvZiByZXNwIGZyYW1lcyAoQ1RTL0JBL0FDSykgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxNDI6XFx0XFx0YWRkciA9IG10NzkyNV9tYWNfd3RibF9sbWFjX2FkZHIoZGV2LCBpZHgsIDM0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xNDMtXFx0XFx0dmFsID0gbXQ3Nl9ycihkZXYsIGFkZHIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTU2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjE1Nzp2b2lkIG10NzkyNV9tYWNfc2V0X2ZpeGVkX3JhdGVfdGFibGUoc3RydWN0IG10NzkyeF9kZXYgKmRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xNTgtXFx0XFx0XFx0XFx0ICAgICB1OCB0YmxfaWR4LCB1MTYgcmF0ZV9pZHgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xNjgtLyogVGhlIEhXIGRvZXMgbm90IHRyYW5zbGF0ZSB0aGUgbWFjIGhlYWRlciB0byA4MDIuMyBmb3IgbWVzaCBwb2ludCAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjE2OTpzdGF0aWMgaW50IG10NzkyNV9yZXZlcnNlX2ZyYWcwX2hkcl90cmFucyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MTYgaGRyX2dhcClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xNzAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM9MjQ4PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoyNDk6bXQ3OTI1X21hY19maWxsX3J4X3JhdGUoc3RydWN0IG10NzkyeF9kZXYgKmRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0yNTAtXFx0XFx0XFx0c3RydWN0IG10NzZfcnhfc3RhdHVzICpzdGF0dXMsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz0zNTg9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjM1OTptdDc5MjVfbWFjX2ZpbGxfcngoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0zNjAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNTM4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjUzOTpcXHRcXHRyZXQgPSBtdDc5MjVfbWFjX2ZpbGxfcnhfcmF0ZShkZXYsIHN0YXR1cywgc2JhbmQsIHJ4diwgXFx1MDAyNm1vZGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTU0MC1cXHRcXHRpZiAocmV0IFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTU1Mi1cXHRpZiAoaGRyX3RyYW5zIFxcdTAwMjZcXHUwMDI2IGllZWU4MDIxMV9oYXNfbW9yZWZyYWdzKGZjKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjU1MzpcXHRcXHRpZiAobXQ3OTI1X3JldmVyc2VfZnJhZzBfaGRyX3RyYW5zKHNrYiwgaGRyX2dhcCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNTU0LVxcdFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM9NjI2PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6NjI3Om10NzkyNV9tYWNfd3JpdGVfdHh3aV84MDIzKF9fbGUzMiAqdHh3aSwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy02MjgtXFx0XFx0XFx0ICAgc3RydWN0IG10NzZfd2NpZCAqd2NpZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jPTY2MT1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjY2MjptdDc5MjVfbWFjX3dyaXRlX3R4d2lfODAyMTEoc3RydWN0IG10NzZfZGV2ICpkZXYsIF9fbGUzMiAqdHh3aSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy02NjMtXFx0XFx0XFx0ICAgIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz03Mjk9dm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjczMDptdDc5MjVfbWFjX3dyaXRlX3R4d2koc3RydWN0IG10NzZfZGV2ICpkZXYsIF9fbGUzMiAqdHh3aSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy03MzEtXFx0XFx0ICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG10NzZfd2NpZCAqd2NpZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTgxOC1cXHRpZiAoaXNfODAyMylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo4MTk6XFx0XFx0bXQ3OTI1X21hY193cml0ZV90eHdpXzgwMjModHh3aSwgc2tiLCB3Y2lkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy04MjAtXFx0ZWxzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjgyMTpcXHRcXHRtdDc5MjVfbWFjX3dyaXRlX3R4d2lfODAyMTEoZGV2LCB0eHdpLCBza2IsIGtleSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtODIyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtODQxLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo4NDI6RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTI1X21hY193cml0ZV90eHdpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy04NDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6ODQ0OnN0YXRpYyB2b2lkIG10NzkyNV90eF9jaGVja19hZ2dyKHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsIHN0cnVjdCBza19idWZmICpza2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtODQ1LVxcdFxcdFxcdFxcdCBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM9ODk4PXN0YXRpYyBib29sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6ODk5Om10NzkyNV9tYWNfYWRkX3R4c19za2Ioc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IG10NzZfd2NpZCAqd2NpZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy05MDAtXFx0XFx0ICAgICAgIGludCBwaWQsIF9fbGUzMiAqdHhzX2RhdGEpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMDM1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEwMzY6dm9pZCBtdDc5MjVfbWFjX2FkZF90eHMoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMDM3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEwNjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTA2NDpcXHRtdDc5MjVfbWFjX2FkZF90eHNfc2tiKGRldiwgd2NpZCwgcGlkLCB0eHNfZGF0YSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTA2NS1cXHRpZiAoIXdjaWQtXFx1MDAzZXN0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEwNzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTA3NDp2b2lkIG10NzkyNV90eHdpX2ZyZWUoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IG10NzZfdHh3aV9jYWNoZSAqdCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMDc1LVxcdFxcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsIHN0cnVjdCBtdDc2X3djaWQgKndjaWQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMDg4LVxcdFxcdGlmIChsaWtlbHkodC1cXHUwMDNlc2tiLVxcdTAwM2Vwcm90b2NvbCAhPSBjcHVfdG9fYmUxNihFVEhfUF9QQUUpKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMDg5OlxcdFxcdFxcdG10NzkyNV90eF9jaGVja19hZ2dyKHN0YSwgdC1cXHUwMDNlc2tiLCB3Y2lkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMDkwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTEwMC19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTEwMTpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MjVfdHh3aV9mcmVlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMTAyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jPTExMDM9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMTA0Om10NzkyNV9tYWNfdHhfZnJlZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB2b2lkICpkYXRhLCBpbnQgbGVuKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTExMDUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTE3MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMTcxOlxcdFxcdFxcdG10NzkyNV90eHdpX2ZyZWUoZGV2LCB0eHdpLCBzdGEsIHdjaWQsIFxcdTAwMjZmcmVlX2xpc3QpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTExNzItXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTE3NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMTc1OlxcdG10NzkyNV9tYWNfc3RhX3BvbGwoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMTc2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTE4Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMTg4OmJvb2wgbXQ3OTI1X3J4X2NoZWNrKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgdm9pZCAqZGF0YSwgaW50IGxlbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMTg5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyMDYtXFx0XFx0LyogUEtUX1RZUEVfVFhSWF9OT1RJRlkgY2FuIGJlIHJlY2VpdmVkIG9ubHkgYnkgbW1pbyBkZXZpY2VzICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTIwNzpcXHRcXHRtdDc5MjVfbWFjX3R4X2ZyZWUoZGV2LCBkYXRhLCBsZW4pOyAvKiBtbWlvICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTIwOC1cXHRcXHRyZXR1cm4gZmFsc2U7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjEwLVxcdFxcdGZvciAocnhkICs9IDQ7IHJ4ZCArIDEyIFxcdTAwM2M9IGVuZDsgcnhkICs9IDEyKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyMTE6XFx0XFx0XFx0bXQ3OTI1X21hY19hZGRfdHhzKGRldiwgcnhkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjEyLVxcdFxcdHJldHVybiBmYWxzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyMTYtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyMTc6RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTI1X3J4X2NoZWNrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjE4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyMTk6dm9pZCBtdDc5MjVfcXVldWVfcnhfc2tiKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgZW51bSBtdDc2X3J4cV9pZCBxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyMjAtXFx0XFx0XFx0IHN0cnVjdCBza19idWZmICpza2IsIHUzMiAqaW5mbylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNDMtXFx0XFx0LyogUEtUX1RZUEVfVFhSWF9OT1RJRlkgY2FuIGJlIHJlY2VpdmVkIG9ubHkgYnkgbW1pbyBkZXZpY2VzICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTI0NDpcXHRcXHRtdDc5MjVfbWFjX3R4X2ZyZWUoZGV2LCBza2ItXFx1MDAzZWRhdGEsIHNrYi1cXHUwMDNlbGVuKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjQ1LVxcdFxcdG5hcGlfY29uc3VtZV9za2Ioc2tiLCAxKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNDctXFx0Y2FzZSBQS1RfVFlQRV9SWF9FVkVOVDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjQ4OlxcdFxcdG10NzkyNV9tY3VfcnhfZXZlbnQoZGV2LCBza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNDktXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjUxLVxcdFxcdGZvciAocnhkICs9IDI7IHJ4ZCArIDggXFx1MDAzYz0gZW5kOyByeGQgKz0gOClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjUyOlxcdFxcdFxcdG10NzkyNV9tYWNfYWRkX3R4cyhkZXYsIHJ4ZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI1My1cXHRcXHRkZXZfa2ZyZWVfc2tiKHNrYik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjU2LVxcdGNhc2UgUEtUX1RZUEVfTk9STUFMOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyNTc6XFx0XFx0aWYgKCFtdDc5MjVfbWFjX2ZpbGxfcngoZGV2LCBza2IpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI1OC1cXHRcXHRcXHRtdDc2X3J4KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYsIHEsIHNrYik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjY2LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjY3OkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyNV9xdWV1ZV9yeF9za2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM9MTI2OT1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyNzA6bXQ3OTI1X3ZpZl9jb25uZWN0X2l0ZXIodm9pZCAqcHJpdiwgdTggKm1hYyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjcxLVxcdFxcdFxcdHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjkwLVxcdFxcdFxcdFxcdFxcdCAgICBcXHUwMDI2bXZpZi1cXHUwMDNlc3RhLmRlZmxpbmsud2NpZCwgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTI5MTpcXHRcXHRtdDc5MjVfbWN1X3NldF90eChkZXYsIGJzc19jb25mKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjkyLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyOTYtXFx0XFx0XFx0XFx0XFx0ICAgIHRydWUsIE5VTEwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyOTc6XFx0XFx0bXQ3OTI1X21jdV9zdGFfdXBkYXRlKGRldiwgTlVMTCwgdmlmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyOTgtXFx0XFx0XFx0XFx0ICAgICAgXFx1MDAyNm12aWYtXFx1MDAzZXN0YS5kZWZsaW5rLCB0cnVlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyOTktXFx0XFx0XFx0XFx0ICAgICAgTVQ3Nl9TVEFfSU5GT19TVEFURV9OT05FKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMzAwOlxcdFxcdG10NzkyNV9tY3VfdW5pX2FkZF9iZWFjb25fb2ZmbG9hZChkZXYsIGh3LCB2aWYsIHRydWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEzMDEtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTMwNC0vKiBzeXN0ZW0gZXJyb3IgcmVjb3ZlcnkgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMzA1OnZvaWQgbXQ3OTI1X21hY19yZXNldF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMzA2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEzNDUtXFx0XFx0XFx0XFx0XFx0ICAgIElFRUU4MDIxMV9JRkFDRV9JVEVSX1JFU1VNRV9BTEwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTM0NjpcXHRcXHRcXHRcXHRcXHQgICAgbXQ3OTI1X3ZpZl9jb25uZWN0X2l0ZXIsIE5VTEwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEzNDctXFx0bXQ3Nl9jb25uYWNfcG93ZXJfc2F2ZV9zY2hlZChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LnBoeSwgcG0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEzNDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTM0OTpcXHRtdDc5MjVfcmVnZF9jaGFuZ2UoXFx1MDAyNmRldi1cXHUwMDNlcGh5LCBcXFwiMDBcXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMzUwLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMzUxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEzNTI6dm9pZCBtdDc5MjVfY29yZWR1bXBfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTM1My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMzc5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEzODA6XFx0XFx0c2tiX3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IG10NzkyNV9tY3VfcnhkKSArIDgpO1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQwOTo0OTo0Ni42MzcyMzE0ODlaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1OTEwMTU3MTU3NDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBNVDc5MjUgRHJpdmVyIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIGxvb2tpbmcgYXQgdGhpcyBNYWtlZmlsZSBvdXRwdXQsIGl0IHNlZW1zIHByZXR0eSBjbGVhciB3ZSdyZSBkZWFsaW5nIHdpdGggZHJpdmVycyBmb3IgTWVkaWF0ZWsncyBNVDc5MjUgd2lyZWxlc3MgY2hpcC4gU3BlY2lmaWNhbGx5LCBsaW5lcyAzLTUgc2hvdyBkaWZmZXJlbnQgY29uZmlndXJhdGlvbiBvcHRpb25zIChgQ09ORklHX01UNzkyNV9DT01NT05gLCBgQ09ORklHX01UNzkyNUVgLCBgQ09ORklHX01UNzkyNVVgKSBlYWNoIGxlYWRpbmcgdG8gY29ycmVzcG9uZGluZyBvYmplY3QgZmlsZXMgKGBtdDc5MjUtY29tbW9uLm9gLCBgbXQ3OTI1ZS5vYCwgYG10NzkyNXUub2ApLiBMaW5lIDkgZGVmaW5lcyBgbXQ3OTI1ZS15YCBhcyBhIFBDSSBkcml2ZXIgd2l0aCBhc3NvY2lhdGVkIG1vZHVsZXMsIGFuZCBsaW5lIDEwIGRlZmluZXMgYG10NzkyNXUteWAgYXMgYSBVU0IgZHJpdmVyIHdpdGgganVzdCB0aGUgYHVzYi5vYCBtb2R1bGUuIFRoaXMgaXMgaW50ZXJlc3RpbmcgZnJvbSBhIGZ1enppbmcgcGVyc3BlY3RpdmUuIFRoZSBxdWVzdGlvbiBub3cgaXMsIGNhbiB3ZSBmdXp6IHRoaXMgd2l0aGluIGEgdmlydHVhbGl6ZWQgc2V0dXA/XG5cbkdpdmVuIHRoZSBVU0IgYXNwZWN0IG9mIGBtdDc5MjV1YCwgSSBpbW1lZGlhdGVseSB0aGluayBvZiB0aGUgVVNCIGZ1enppbmcgY2FwYWJpbGl0aWVzIG9mIHRvb2xzIGxpa2Ugc3l6a2FsbGVyLiBVU0IgZHJpdmVycyBhcmUgb2Z0ZW4gcXVpdGUgdnVsbmVyYWJsZSwgZXNwZWNpYWxseSB3aXRoIHRoZSBjb21wbGV4aXR5IG9mIFVTQiBwcm90b2NvbCBoYW5kbGluZy4gUmVtZW1iZXIsIHdlIGhhdmUgdGhlIG9wdGlvbiB0byBzZXQgdXAgZHVtbXlfaGNkIG9yIHZoY2ktaGNkIGZvciBVU0IgZnV6emluZy4gV2FpdCwgc3l6a2FsbGVyIGhhcyBhIGRlZGljYXRlZCBVU0IgZnV6emVyIHRoYXQncyBleGNlbGxlbnQgYXQgZW11bGF0aW5nIFVTQiBkZXZpY2VzLiBJdCdzIGV4dGVuc2l2ZS5cblxuVGhlIGtleSBxdWVzdGlvbiBpcywgaXMgYG10NzkyNXVgIHRoYXQga2luZCBvZiBVU0IgZHJpdmVyPyBJZiBzbywgYW5kIGl0IGludGVyYWN0cyB3aXRoIGFuIGFjdHVhbCBVU0IgZGV2aWNlLCB0aGVuIHdlJ3JlIGdvbGRlbi4gU3l6a2FsbGVyJ3MgYHN5el91c2JfY29ubmVjdGAgc3lzdGVtIGNhbGwgaXMgYSBwcmltZSBjYW5kaWRhdGUgZm9yIGZ1enppbmcgaXQuIEkgbmVlZCB0byBjb25maXJtIHRoYXQgYG10NzkyNXVgIGlzIGluZGVlZCBhIFVTQiBkcml2ZXIgdGhhdCBiaW5kcyB0byBhIFVTQiBkZXZpY2UsIHRob3VnaC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjEwMzUsIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjZUMDk6NTk6MzcuNjUyOTQ5NjE3WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyOTM4NzA5OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ1c2JfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jPTM0NT1NT0RVTEVfRklSTVdBUkUoTVQ3OTI1X1JPTV9QQVRDSCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmMtMzQ2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jOjM0NzpzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgbXQ3OTI1dV9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmMtMzQ4LVxcdC5uYW1lXFx0XFx0PSBLQlVJTERfTU9ETkFNRSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jLTM1OS19O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jOjM2MDptb2R1bGVfdXNiX2RyaXZlcihtdDc5MjV1X2RyaXZlcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmMtMzYxLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQwOTo1OTozOC4wODIzNDU4NjVaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4NTg0ODA1Nzg4NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFZ1bG5lcmFiaWxpdHkgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBjb25maXJtaW5nIHRoYXQgYG10NzkyNXVgIGlzIGluZGVlZCB0aGUgVVNCIGRyaXZlciDigJMgbWFrZXMgc2Vuc2UuIFRoZSBwYXRjaCBpbXBhY3RzIGBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcmAgd2l0aGluIGBtYWluLmNgIGFuZCBgbXQ3OTI1X21jdV9jb25maWdfc25pZmZlcmAgaW4gYG1jdS5jYC4gUmlnaHQsIGFuZCB0aGVzZSBhcmUgYm90aCBwYXJ0IG9mIHRoZSAqY29tbW9uKiBjb2RlLCBgbXQ3OTI1LWNvbW1vbi5vYC4gVGhhdCdzIGltcG9ydGFudDsgaXQgbWVhbnMgYm90aCB0aGUgUENJZSBhbmQgVVNCIHZhcmlhbnRzIGxldmVyYWdlIHRoZXNlIGZ1bmN0aW9ucy5cblxuU2luY2Ugd2UncmUgZGVhbGluZyB3aXRoIGEgVVNCIGRyaXZlciwgdGhlIGltcGxpY2F0aW9ucyBhcmUgaW1tZWRpYXRlbHkgY2xlYXI6IHRoaXMgY29kZSBpcyBwb3RlbnRpYWxseSByZWFjaGFibGUgdGhyb3VnaCBmdXp6aW5nIOKAkyBzcGVjaWZpY2FsbHksIHRoZSBgc3l6X3VzYl9jb25uZWN0YCBjYWxsIHdpdGhpbiBzeXprYWxsZXIuIFRoYXQncyBhIGNsYXNzaWMgYXR0YWNrIHZlY3RvciBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBUaGUgZmFjdCB0aGF0IHRoZSBVU0IgZW11bGF0aW9uIGlzIHdvcmtpbmcgbWFrZXMgdGhpcyBwYXJ0aWN1bGFybHkgaW50ZXJlc3RpbmcuXG5cbkhvbGQgb24gYSBzZWNvbmQsIGxldCBtZSBqdXN0IHF1aWNrbHkgY29uZmlybSB0aGF0IGBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcmAgaXMgKmFjdHVhbGx5KiByZWFjaGFibGUgd2l0aGluIHRoZSBleGVjdXRpb24gcGF0aC4gQWx3YXlzIGEgZ29vZCBkb3VibGUtY2hlY2sgYmVmb3JlIGdldHRpbmcgYWhlYWQgb2YgbXlzZWxmLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjEzMywiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMTowMy45MzA0MDc0MTFaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mzk4NzIyMTQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzkyNV9jb25maWd1cmVfZmlsdGVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9ODA1PXN0YXRpYyBpbnQgbXQ3OTI1X2NvbmZpZyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgaW50IHJhZGlvX2lkeCwgdTMyIGNoYW5nZWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtODI5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzo4MzA6c3RhdGljIHZvaWQgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXIoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTgzMS1cXHRcXHRcXHRcXHQgICAgdW5zaWduZWQgaW50IGNoYW5nZWRfZmxhZ3MsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MjQ4Mz1jb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc5MjVfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTI0OTAtXFx0LmNvbmZfdHggPSBtdDc5MjVfY29uZl90eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MjQ5MTpcXHQuY29uZmlndXJlX2ZpbHRlciA9IG10NzkyNV9jb25maWd1cmVfZmlsdGVyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0yNDkyLVxcdC5zdGFydF9hcCA9IG10NzkyNV9zdGFydF9hcCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjZUMTA6MDE6MDQuMzI5MTM1NTcyWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTIwNjUyMzM3NzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBOZXR3b3JrIEZpbHRlciBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXJgIGZ1bmN0aW9uLiBUaGUgZmFjdCB0aGF0IGl0J3MgYW4gYGllZWU4MDIxMV9vcHNgIGNhbGxiYWNrIGltbWVkaWF0ZWx5IHRlbGxzIG1lIGl0J3MgdGllZCBkaXJlY3RseSBpbnRvIHRoZSBtYWM4MDIxMSBzdWJzeXN0ZW0uIFRoYXQgbWVhbnMgd2hlbiB0aGUgZmlsdGVyIGNvbmZpZ3VyYXRpb24gaXMgY2hhbmdlZCwgbWFjODAyMTEgd2lsbCBjYWxsICp0aGlzKiBmdW5jdGlvbiBzcGVjaWZpY2FsbHkuIE1ha2VzIHNlbnNlLiBCdXQgSSdtIGFsc28gc2VlaW5nIGBtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyYCBpbiB0aGUgY29kZSwgYW5kIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0aGF0J3MgcmVsYXRlZC4gSXQncyAqbm90KiBhIGNhbGxiYWNrLCBzbyBpdCdzIGJlaW5nIGNhbGxlZCBmcm9tIHNvbWV3aGVyZSBlbHNlLiBUaW1lIHRvIGdvIGh1bnRpbmcgYW5kIHRyYWNlIHdoZXJlIHRoYXQgY2FsbCBpcyBvcmlnaW5hdGluZyBmcm9tLiBJJ2xsIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhlIGhhcmR3YXJlIGZpbHRlciBhbmQgdGhlIHNuaWZmZXIgY29uZmlndXJhdGlvbiB0byBnZXQgYSBmdWxsIHBpY3R1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyOTQ3LCJPdXRwdXRUb2tlbnMiOjUxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjZUMTA6MDE6MTYuMzk0MzcxNTY0WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTE3NTIxNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MTkzNj1tdDc5MjVfY2hhbmdlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTk1NS1cXHRcXHRtdDc5MjVfbWN1X3NldF9zbmlmZmVyKG12aWYtXFx1MDAzZXBoeS1cXHUwMDNlZGV2LCB2aWYsIHRydWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxOTU2OlxcdFxcdG10NzkyNV9tY3VfY29uZmlnX3NuaWZmZXIobXZpZiwgY3R4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTk1Ny1cXHR9IGVsc2Uge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM9MjE3ND1pbnQgbXQ3OTI1X21jdV9zZXRfc25pZmZlcihzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMjIwMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzoyMjAzOmludCBtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyKHN0cnVjdCBtdDc5MnhfdmlmICp2aWYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMjIwNC1cXHRcXHRcXHQgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHhfY29uZiAqY3R4KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbXQ3OTI1Lmg9MzYxPWludCBtdDc5MjVfbWN1X3NldF9zbmlmZmVyKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbXQ3OTI1LmgtMzYyLVxcdFxcdFxcdCAgIGJvb2wgZW5hYmxlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tdDc5MjUuaDozNjM6aW50IG10NzkyNV9tY3VfY29uZmlnX3NuaWZmZXIoc3RydWN0IG10NzkyeF92aWYgKnZpZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tdDc5MjUuaC0zNjQtXFx0XFx0XFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDEwOjAxOjE2LjQzOTU1Mjc0MVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MDc3MDA5MzUyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIE1UNzkyNSBNQ1UgQ29uZmlndXJhdGlvbiBmb3IgU25pZmZpbmcqKlxuXG5Pa2F5LCBzbyBgbXQ3OTI1X21jdV9jb25maWdfc25pZmZlcmAgaXMgYmVpbmcgY2FsbGVkIGZyb20gYG10NzkyNV9jaGFuZ2VfY2hhbmN0eGAuIFRoYXQncyBpbnRlcmVzdGluZywgYW5kIGBtdDc5MjVfY2hhbmdlX2NoYW5jdHhgIGlzIGFuIGBpZWVlODAyMTFfb3BzYCBjYWxsYmFjaywgb3IgYXQgbGVhc3QgY2FsbGVkIGZyb20gb25lLiBUaGlzIG1lYW5zIGJvdGggb2YgdGhlc2UgZnVuY3Rpb25zLCB0aGUgc25pZmZlciBjb25maWd1cmF0aW9uIGFuZCB0aGUgY2hhbm5lbCBjb250ZXh0IGNoYW5nZSwgYXJlIGFjY2Vzc2libGUgdGhyb3VnaCBzdGFuZGFyZCBtYWM4MDIxMSBvcGVyYXRpb25zLCB3aGljaCBpcyBnb29kIHRvIGtub3cuIEFuZCBiZWNhdXNlIHRoaXMgaXMgYSBVU0IgZHJpdmVyLCBpdCBpbW1lZGlhdGVseSBvcGVucyB1cCBmdXp6aW5nIHBvc3NpYmlsaXRpZXMgdmlhIFVTQiBlbXVsYXRpb24uIFRoYXQncyBhIHNvbGlkIGF0dGFjayBzdXJmYWNlLiBOb3csIGJlZm9yZSBJIGdldCB0b28gZXhjaXRlZCBhbmQgc3RhcnQgbWFwcGluZyBvdXQgZnV6emluZyBzdHJhdGVnaWVzLCBJIHNob3VsZCBwcm9iYWJseSBjaGVjayBpZiB0aGVyZSdzIGFueSBzcGVjaWZpYyBoYXJkd2FyZSBjb25maWd1cmF0aW9uIHJlcXVpcmVkIGZvciB0aGUgc25pZmZlciB0byB3b3JrLiBUaW1lIHRvIGNvbnN1bHQgdGhlIEtjb25maWcgZm9yIGBNVDc5MjVVYCBhbmQgc2VlIGlmIGFueSBzcGVjaWZpYyBzZXR0aW5ncyBuZWVkIHRvIGJlIGVuYWJsZWQgYmVmb3JlIEkgY2FuIHByb2NlZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzODg3LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTEyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDEwOjAxOjIzLjUxNjU2NTAzNFoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDU1ODU1MTYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1UNzkyNVVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWc9Nz1jb25maWcgTVQ3OTI1RVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZy0xOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnOjE5OmNvbmZpZyBNVDc5MjVVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZy0yMC1cXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3OTI1VSAoVVNCKSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMToyMy41NjIxNTYwMloiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMTE4OTU1MDQ1NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipBbmFseXppbmcgdGhlIE1UNzkyNVUgRGVwZW5kZW5jaWVzKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIFRoZSByZXF1ZXN0IGlzIGNsZWFyOiBJIG5lZWQgdG8gYXNjZXJ0YWluIHRoZSBkZXBlbmRlbmNpZXMgZm9yIHRoZSBgTVQ3OTI1VWAuIE15IGltbWVkaWF0ZSBhcHByb2FjaCB3aWxsIGJlIHRvIGJlZ2luIGJ1aWxkaW5nIGEgbWVudGFsIG1hcC4gSSdsbCBuZWVkIHRvIGNvbnNpZGVyIHRoaXMgZnJvbSBhIGZldyBhbmdsZXMuXG5cbkZpcnN0LCB0aGUgaGFyZHdhcmUgbGV2ZWwuIFdoYXQgYXJlIHRoZSBleHRlcm5hbCBpbnRlcmZhY2VzIG9mIHRoZSBgTVQ3OTI1VWA/IFVTQj8gUENJZT8gV2hhdCBhY2NvbXBhbnlpbmcgY29tcG9uZW50cyBhcmUgdHlwaWNhbGx5IHBhaXJlZCB3aXRoIHRoaXMgY2hpcCB0byBmb3JtIGEgZnVuY3Rpb25hbCBXaUZpIG1vZHVsZT8gVHJhbnNjZWl2ZXJzLCBwb3dlciBtYW5hZ2VtZW50LCBjbG9ja3Mg4oCTIHRoZSB1c3VhbCBzdXNwZWN0cy4gSSdsbCBuZWVkIHRvIGtub3cgd2hpY2ggb2YgdGhlc2UgYXJlIGludGVncmF0ZWQgb24tZGllIGFuZCB3aGljaCBhcmUgZXh0ZXJuYWwgYW5kIHRodXMsIHdoYXQgdGhlIHBpbi1vdXRzIGFyZS4gVGhlIGRhdGEgc2hlZXQgaXMgdGhlIG5hdHVyYWwgc3RhcnRpbmcgcG9pbnQsIGJ1dCBJJ2xsIGFsc28gY29uc2lkZXIgZXhpc3RpbmcgaW1wbGVtZW50YXRpb25zLlxuXG5OZXh0LCB0aGUgZmlybXdhcmUgYW5kIHNvZnR3YXJlIGxldmVsLiBXaGF0IGRyaXZlciBzdXBwb3J0IGlzIGF2YWlsYWJsZT8gSXMgaXQgb3Blbi1zb3VyY2UsIG9yIHByb3ByaWV0YXJ5PyBXaGF0IG90aGVyIGtlcm5lbCBtb2R1bGVzIG9yIGxpYnJhcmllcyBpcyB0aGUgZHJpdmVyIGJ1aWx0IHVwb24/IEFyZSB0aGVyZSBhbnkgdXBzdHJlYW0gcGF0Y2hlcyB0aGF0IGFkZHJlc3MgdGhpcyBjaGlwPyBNeSBnb2FsIGlzIHRvIHF1aWNrbHkgcGlucG9pbnQgdGhlIGtleSBhYnN0cmFjdGlvbnMgdGhhdCBtYW5hZ2UgdGhlIGhhcmR3YXJlIGFuZCBpZGVudGlmeSB0aGUgc29mdHdhcmUgaW50ZXJmYWNlcy4gVGhpcyB3aWxsIGluY2x1ZGUgY29uc2lkZXJhdGlvbnMgZm9yIGFueSBmaXJtd2FyZSBibG9icyB0aGF0IG1pZ2h0IGJlIHJlcXVpcmVkIGFuZCB0aGVpciBsb2NhdGlvbiB3aXRoaW4gdGhlIHN5c3RlbSBvciBib290IHByb2Nlc3MuIEknbGwgYWxzbyBjaGVjayBmb3IgYW55IHNwZWNpZmljIHNlY3VyaXR5IGNvbnNpZGVyYXRpb25zLlxuXG5JJ2xsIGJlIG1pbmRmdWwgb2YgdGhlIGRldmVsb3BtZW50IGVudmlyb25tZW50LiBDcm9zcy1jb21waWxhdGlvbj8gVGFyZ2V0IGFyY2hpdGVjdHVyZT8gSWYgdGhlcmUncyBhbiBTREsgYXZhaWxhYmxlLCBJJ2xsIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgc3RydWN0dXJlLCBidWlsZCBzeXN0ZW0sIGFuZCBhbnkgcHJvcHJpZXRhcnkgaGVhZGVycyBvciBsaWJyYXJpZXMgaXQgZGVwZW5kcyBvbi4gSSdsbCBtZW50YWxseSBjYXRlZ29yaXplIHRoZSBkZXBlbmRlbmNpZXMg4oCTIGNvcmUga2VybmVsIGZlYXR1cmVzLCBkZXZpY2Utc3BlY2lmaWMgZHJpdmVycywgYm9hcmQtc3BlY2lmaWMgYWRhcHRhdGlvbnMsIGFuZCBtYXliZSBldmVuIHVzZXItc3BhY2UgdXRpbGl0aWVzLiBBbmQgb2YgY291cnNlLCBJJ2xsIGJlIGF3YXJlIG9mIHBvdGVudGlhbCBjb25mbGljdHMgd2l0aCBvdGhlciBkcml2ZXJzIG9yIGhhcmR3YXJlIGNvbXBvbmVudHMgYWxyZWFkeSBwcmVzZW50IG9uIHRoZSBwbGF0Zm9ybS5cblxuVGhlIGVuZCBnYW1lIGlzIHRvIGNyZWF0ZSBhIGNvbXBsZXRlIGRlcGVuZGVuY3kgZ3JhcGgsIGFsbG93aW5nIG1lIHRvIHVuZGVyc3RhbmQgdGhlIGNvbXBsZXRlIGFyY2hpdGVjdHVyZS4gVGhpcyB3aWxsIGVuYWJsZSBtZSB0byBtYWtlIGluZm9ybWVkIGRlY2lzaW9ucyBhYm91dCB0aGUgZGV2ZWxvcG1lbnQgb3IgaW50ZWdyYXRpb24gZWZmb3J0LCBwb3RlbnRpYWwgcHJvYmxlbXMsIGFuZCB0aGUgY29tcGxleGl0eSByZXF1aXJlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjQ0MTMsIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMTozNC43NTE3MTA1MzdaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzE3NjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiA0MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxcbiAgIDI6XFx0Y29uZmlnIE1UNzkyNV9DT01NT05cXG4gICAzOlxcdFxcdHRyaXN0YXRlXFxuICAgNDpcXHRcXHRzZWxlY3QgTVQ3OTJ4X0xJQlxcbiAgIDU6XFx0XFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXFxuICAgNjpcXHRcXG4gICA3OlxcdGNvbmZpZyBNVDc5MjVFXFxuICAgODpcXHRcXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3OTI1RSAoUENJZSkgc3VwcG9ydFxcXCJcXG4gICA5OlxcdFxcdHNlbGVjdCBNVDc5MjVfQ09NTU9OXFxuICAxMDpcXHRcXHRkZXBlbmRzIG9uIE1BQzgwMjExXFxuICAxMTpcXHRcXHRkZXBlbmRzIG9uIFBDSVxcbiAgMTI6XFx0XFx0aGVscFxcbiAgMTM6XFx0XFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3OTI1LWJhc2VkIHdpcmVsZXNzIFBDSWUgZGV2aWNlcyxcXG4gIDE0OlxcdFxcdCAgd2hpY2ggc3VwcG9ydCBvcGVyYXRpb24gYXQgNkdIeiwgNUdIeiwgYW5kIDIuNEdIeiBJRUVFIDgwMi4xMWJlXFxuICAxNTpcXHRcXHQgIDJ4MjoyU1MgNDA5Ni1RQU0sIDE2ME1IeiBjaGFubmVscy5cXG4gIDE2OlxcdFxcbiAgMTc6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxcbiAgMTg6XFx0XFxuICAxOTpcXHRjb25maWcgTVQ3OTI1VVxcbiAgMjA6XFx0XFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzkyNVUgKFVTQikgc3VwcG9ydFxcXCJcXG4gIDIxOlxcdFxcdHNlbGVjdCBNVDc5MnhfVVNCXFxuICAyMjpcXHRcXHRzZWxlY3QgTVQ3OTI1X0NPTU1PTlxcbiAgMjM6XFx0XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxcbiAgMjQ6XFx0XFx0ZGVwZW5kcyBvbiBVU0JcXG4gIDI1OlxcdFxcdGhlbHBcXG4gIDI2OlxcdFxcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIE1UNzkyNS1iYXNlZCB3aXJlbGVzcyBVU0IgZGV2aWNlcyxcXG4gIDI3OlxcdFxcdCAgd2hpY2ggc3VwcG9ydCBvcGVyYXRpb24gYXQgNkdIeiwgNUdIeiwgYW5kIDIuNEdIeiBJRUVFIDgwMi4xMWJlXFxuICAyODpcXHRcXHQgIDJ4MjoyU1MgNDA5Ni1RQU0sIDE2ME1IeiBjaGFubmVscy5cXG4gIDI5OlxcdFxcbiAgMzA6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMTozNC43NTE3ODM2NjdaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzQ2MzQ0NzM0MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiB0aGUgTVQ3OTI1VSBDb25maWd1cmF0aW9uIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHksIHRoZSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCB0aGUgcmVxdWlyZWQgY29uZmlnIGlzIGxpc3RlZCBhcyBgTVQ3OTI1VWAuIEhvd2V2ZXIsIGl0J3MgY2xlYXIgYWZ0ZXIgYSBtb21lbnQgdGhhdCB0aGUgY29yZSBjb2RlIGJlaW5nIG1vZGlmaWVkIGlzIGFjdHVhbGx5IHNoYXJlZCwgc3BlY2lmaWNhbGx5IGBtdDc5MjUtY29tbW9uLm9gLiBUaGF0IHRlbGxzIG1lIHRoZSByZWFsIGNvbnRyb2xsaW5nIGNvbmZpZyBvcHRpb24gaXMgYE1UNzkyNV9DT01NT05gLCB3aGljaCBnZXRzIGVuYWJsZWQgKnRocm91Z2gqIGBNVDc5MjVVYCBhbmQgYE1UNzkyNUVgLiBTbywgdG8gdGVzdCB0aGlzIHZpYSBVU0IgZW11bGF0aW9uLCBlbmFibGluZyBgTVQ3OTI1VWAgaXMgdGhlIGNvcnJlY3QgcGF0aC4gSXQncyBhIHF1aWNrIG5vdGUgdG8gYWxzbyBtYWtlIHN1cmUgSSBjaGVjayBmb3IgdGhlIGRlcGVuZGVuY2llcyAtIGBNQUM4MDIxMWAgYW5kIGBVU0JgLCBvZiBjb3Vyc2UuXG5cbk5leHQsIEkgbmVlZCB0byBwaW5wb2ludCB0aGUgY3JpdGljYWwgcGFydHMuIEkgd2FudCB0byBzZWUgaWYgdGhlcmUgYXJlIHNwZWNpZmljIGZ1bmN0aW9ucyBpbXBhY3RlZC4gUmlnaHQsIHRoZSBwYXRjaCBtb2RpZmllcyBgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXJgIGFuZCBgbXQ3OTI1X21jdV9jb25maWdfc25pZmZlcmAuXG5cbk5vdywgSSdsbCBjaGVjayB0aGUgdmlzaWJpbGl0eSBvZiB0aG9zZSBmdW5jdGlvbnMuIGBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcmAgaXMgc3RhdGljIHdpdGhpbiBgbWFpbi5jYC4gSXQncyBhc3NpZ25lZCB0byBgaWVlZTgwMjExX29wcy5jb25maWd1cmVfZmlsdGVyYC4gQmVjYXVzZSBpdCdzIHN0YXRpYywgaXQgd29uJ3QgaGF2ZSBhIGRpc3RpbmN0IHN5bWJvbCBpbiBtYW55IGJ1aWxkcywgdW5sZXNzIGl0J3Mgbm90IGlubGluZWQsIHdoaWNoIGlzIHdvcnRoIGNvbnNpZGVyaW5nIGxhdGVyLiBgbXQ3OTI1X21jdV9jb25maWdfc25pZmZlcmAsIG9uIHRoZSBvdGhlciBoYW5kLCBpc24ndCBzdGF0aWMgaW4gYG1jdS5jYC4gSSBhbHNvIHNlZSB0aGF0IGl0IGlzIGNhbGxlZCBmcm9tIGBtdDc5MjVfY2hhbmdlX2NoYW5jdHhgIGluIGBtYWluLmNgLlxuXG5TaW5jZSB0aGUgc25pZmZlciBjb25maWd1cmF0aW9uIGZ1bmN0aW9uIGlzbid0IHN0YXRpYywgaXQncyBhIGtleSBzeW1ib2wuIExldCdzIG1ha2Ugc3VyZSB0aGF0IHRoYXQgaXMgaGFuZGxlZCBjb3JyZWN0bHkuIGBtdDc5MjVfY2hhbmdlX2NoYW5jdHhgIGlzIGFsc28gbm90IHN0YXRpYy5cblxuSSdtIG5vdyBnb2luZyB0byBmb2N1cyBteSBhdHRlbnRpb24gb24gYG10NzkyNV9jaGFuZ2VfY2hhbmN0eGAgd2l0aGluIGBtYWluLmNgIGJlY2F1c2UgaXQgaXMgbm90IHN0YXRpYywgYW5kIGlzIGEgY2xlYXIgZW50cnkgcG9pbnQgdG8gdGhlIHNuaWZmZXIgY29uZmlndXJhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjUzODgsIk91dHB1dFRva2VucyI6NDksIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNTIsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMTo0Mi4yMTUyMzMwOThaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ3ODcwNTQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzkyNV9jaGFuZ2VfY2hhbmN0eFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTE5MzU9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTkzNjptdDc5MjVfY2hhbmdlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE5MzctXFx0XFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0yNDgzPWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10NzkyNV9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMjUzNS1cXHQucmVtb3ZlX2NoYW5jdHggPSBtdDc5MjVfcmVtb3ZlX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjI1MzY6XFx0LmNoYW5nZV9jaGFuY3R4ID0gbXQ3OTI1X2NoYW5nZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0yNTM3LVxcdC5hc3NpZ25fdmlmX2NoYW5jdHggPSBtdDc5MjVfYXNzaWduX3ZpZl9jaGFuY3R4LFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMTo0Mi4yNjMxMDU4NDVaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTI4MTYyNjU3MzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgRnV6emluZyBTdHJhdGVneSoqXG5cbk9rYXksIHNvIEkndmUgYmVlbiBsb29raW5nIG92ZXIgdGhpcyBjb2RlIGFuZCB0aGlua2luZyBhYm91dCB0aGUgYmVzdCBmdXp6aW5nIGFwcHJvYWNoLiBJIHNlZSB0aGF0IGBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcmAgaXMgc3RhdGljLCB3aGljaCB1c3VhbGx5IHdvdWxkIG1ha2UgbWUgaGVzaXRhbnQsIGJ1dCBiZWNhdXNlIGl0J3MgcGFydCBvZiB0aGUgYGllZWU4MDIxMV9vcHNgIGNhbGxiYWNrLCBJJ20gcHJldHR5IHN1cmUgaXQncyBhZGRyZXNzLXRha2VuIGFuZCB3b24ndCBiZSBpbmxpbmVkIGF3YXkgY29tcGxldGVseS4gVGhhdCBtYWtlcyBpdCBhIGdvb2QgY2FuZGlkYXRlLCBhbG9uZyB3aXRoIHRoZSBub24tc3RhdGljIGBtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyYC4gSSd2ZSBkb3VibGUtY2hlY2tlZCB0aG9zZSBmdW5jdGlvbiBuYW1lcywganVzdCB0byBiZSBzdXJlLlxuXG5JJ3ZlIGFsc28gdmVyaWZpZWQgdGhhdCB0aGUgbmVjZXNzYXJ5IGNvbmZpZ3MgYXJlIGVuYWJsZWQgYnkgdGhlIGBNVDc5MjVVYCwgYE1BQzgwMjExYCwgYW5kIGBVU0JgIGNvbmZpZ3VyYXRpb25zLiBgTVQ3OTI1VWAgcHVsbHMgaW4gYE1UNzkyNV9DT01NT05gLCB3aGljaCBpcyB3aGF0IEkgbmVlZC5cblxuVGhpcyBwYXRjaCBpcyBkZWZpbml0ZWx5IGEgZnVuY3Rpb25hbCBjaGFuZ2Ug4oCTIGl0IG1vZGlmaWVzIHRoZSBgZHJvcF9lcnJgIGZsYWcgYmFzZWQgb24gdGhlIGByeGZpbHRlcmAuIEknbSBzZWVpbmcgaXQgY2hhbmdlcyB0aGUgc25pZmZlciBjb25maWd1cmF0aW9uIGJhc2VkIG9uIHRoZSByZWNlaXZlZCBmaWx0ZXIuIFNvLCBmdXp6aW5nIHRoZXNlIHR3byBmdW5jdGlvbnMgd2lsbCBiZSBhIGdvb2Qgd2F5IHRvIHRlc3QgdGhpcy5cblxuSSdtIHNldHRpbmcgYFdvcnRoRnV6emluZz10cnVlYCBhbmQgbXkgYEZvY3VzU3ltYm9sc2AgdG8gYG10NzkyNV9jb25maWd1cmVfZmlsdGVyYCBhbmQgYG10NzkyNV9tY3VfY29uZmlnX3NuaWZmZXJgLCBhbmQgSSB3aWxsIGVuYWJsZSB0aGUgY29uZmlncyBJJ3ZlIG1lbnRpb25lZC5cblxuRnJvbSB3aGF0IEkgY2FuIHNlZSwgSSBzaG91bGQgYmUgYWJsZSB0byB0cmlnZ2VyIHRoaXMgZnVuY3Rpb25hbGl0eSB0aHJvdWdoIFVTQiBlbXVsYXRpb24gdXNpbmcgdGhlIGBtdDc5MjV1YCBkcml2ZXIuIE5vdyBJJ2xsIGNhbGwgYHNldC1yZXN1bHRzYC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjY1OTMsIk91dHB1dFRva2VucyI6MTYzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzExLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDEwOjAxOjU1LjA3OTM3NDI1OFoiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc4MzM5NDQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNVDc5MjVVXCIsXG4gICAgXCJNQUM4MDIxMVwiLFxuICAgIFwiVVNCXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXJcIixcbiAgICBcIm10NzkyNV9tY3VfY29uZmlnX3NuaWZmZXJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVkaWF0ZWsgTVQ3OTI1IHdpcmVsZXNzIGRyaXZlciB0byBjb25maWd1cmUgdGhlIHNuaWZmZXIncyBkcm9wX2VyciBmbGFnIGJhc2VkIG9uIHRoZSByeGZpbHRlciBzZXR0aW5ncy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXIncyBtYWM4MDIxMSBjYWxsYmFja3MuIFRoZSBkcml2ZXIgaGFzIGEgVVNCIHZhcmlhbnQgKG10NzkyNXUpIHdoaWNoIGNhbiBiZSBmdXp6ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSBVU0IgZW11bGF0aW9uIChzeXpfdXNiX2Nvbm5lY3QpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1UNzkyNVVcIixcbiAgICBcIk1BQzgwMjExXCIsXG4gICAgXCJVU0JcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtdDc5MjVfY29uZmlndXJlX2ZpbHRlclwiLFxuICAgIFwibXQ3OTI1X21jdV9jb25maWdfc25pZmZlclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYXRlayBNVDc5MjUgd2lyZWxlc3MgZHJpdmVyIHRvIGNvbmZpZ3VyZSB0aGUgc25pZmZlcidzIGRyb3BfZXJyIGZsYWcgYmFzZWQgb24gdGhlIHJ4ZmlsdGVyIHNldHRpbmdzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlcidzIG1hYzgwMjExIGNhbGxiYWNrcy4gVGhlIGRyaXZlciBoYXMgYSBVU0IgdmFyaWFudCAobXQ3OTI1dSkgd2hpY2ggY2FuIGJlIGZ1enplZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIFVTQiBlbXVsYXRpb24gKHN5el91c2JfY29ubmVjdCkuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDEwOjAxOjU1LjE1NzcyMDg3MloiLCJTZXEiOjE5LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzE3MjQzOTQyMzYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMTo1NS4xNTgxNTc4OTJaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6ImFnZW50IiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NzE3MjM5NTMyMzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgZmllbGQgYHJ4ZmlsdGVyYCB0byBgc3RydWN0IG10NzkyeF9waHlgIHRvIHN0b3JlIHRoZSBSWCBmaWx0ZXIgZmxhZ3MuIFRoaXMgc3RydWN0dXJlIGlzIGVtYmVkZGVkIGluIGBzdHJ1Y3QgbXQ3OTJ4X2RldmAsIHdoaWNoIGlzIGFsbG9jYXRlZCB2aWEgYG10NzZfYWxsb2NfZGV2aWNlYCAtXFx1MDAzZSBgaWVlZTgwMjExX2FsbG9jX2h3YCAtXFx1MDAzZSBgd2lwaHlfbmV3X25tYCB1c2luZyBga3phbGxvY2AuIFRodXMsIHRoZSBuZXcgZmllbGQgaXMgZnVsbHkgemVyby1pbml0aWFsaXplZCB1cG9uIGFsbG9jYXRpb24uIFRoZSBwYXRjaCB0aGVuIHdyaXRlcyB0byB0aGlzIGZpZWxkIGluIGBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcmAgYW5kIHJlYWRzIGZyb20gaXQgaW4gYG10NzkyNV9tY3VfY29uZmlnX3NuaWZmZXJgIHRvIGNvbmRpdGlvbmFsbHkgc2V0IHRoZSBgZHJvcF9lcnJgIGZsYWcgaW4gYSBoYXJkd2FyZSBjb25maWd1cmF0aW9uIHJlcXVlc3QuIFRoZXJlIGFyZSBubyBuZXcgYWxsb2NhdGlvbnMsIG5vIHN0cnVjdHVyZXMgY29waWVkIHRvIHVzZXIgc3BhY2UsIGFuZCBubyBjb21wbGV4IGRhdGEgc3RydWN0dXJlcyB3aGVyZSB1bmluaXRpYWxpemVkIGZpZWxkcyBjb3VsZCBiZSByZWFkLiBBbnkgcG90ZW50aWFsIGJ1Z3MgaW50cm9kdWNlZCBieSB0aGlzIHBhdGNoIHdvdWxkIGJlIHJlbGF0ZWQgdG8gaW5jb3JyZWN0IGxvZ2ljIG9yIG91dC1vZi1ib3VuZHMgYWNjZXNzLCB3aGljaCBhcmUgd2VsbC1jb3ZlcmVkIGJ5IHN0YW5kYXJkIEtBU0FOIGFuZCBvdGhlciBidWcgZGV0ZWN0b3JzLiBUaGVyZSBpcyBubyByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MgdGhhdCB3b3VsZCByZXF1aXJlIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbi5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgc2VjdXJpdHkgZW5naW5lZXIgc3BlY2lhbGl6aW5nIGluIGtlcm5lbCBtZW1vcnlcbmVycm9yIGRldGVjdG9ycyAoS0FTQU4gYW5kIEtNU0FOKS4gWW91ciBqb2IgaXMgdG8gcmV2aWV3IHRoZSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kXG5kZXRlcm1pbmUgaWYgdGhlIGNvZGUgY2hhbmdlcyBqdXN0aWZ5IHNwYXduaW5nIGEgZGVkaWNhdGVkIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpXG5mdXp6aW5nIHNlc3Npb24gaW4gYWRkaXRpb24gdG8gc3RhbmRhcmQgS0FTQU4gZnV6emluZy5cblxuQ1JJVElDQUwgRElTVElOQ1RJT04gQkVUV0VFTiBLQVNBTiBBTkQgS01TQU46XG4tIFN0YW5kYXJkIEtBU0FOIGtlcm5lbCBidWlsZHMgKHVwc3RyZWFtLWFwcGFybW9yLWthc2FuLmNvbmZpZykgYWxyZWFkeSBlbmFibGVcbiAgYSBjb21wcmVoZW5zaXZlIHN1aXRlIG9mIGRlYnVnZ2luZyB0b29scyBhbmQgc2FuaXRpemVycywgaW5jbHVkaW5nIEtBU0FOXG4gIChvdXQtb2YtYm91bmRzIGFjY2Vzc2VzLCB1c2UtYWZ0ZXItZnJlZSwgZG91YmxlIGZyZWUsIGludmFsaWQgZnJlZSksIExPQ0tERVBcbiAgKGxvY2tpbmcgYnVncyBhbmQgZGVhZGxvY2tzKSwgVUItc2FuaXRpemVycywgYW5kIG1lbW9yeSBjb3JydXB0aW9uIGNoZWNrcy5cbi0gS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikgZGV0ZWN0cyByZWFkcyBvZiBVTklOSVRJQUxJWkVEIG1lbW9yeSAoc3RhY2ssIGhlYXAsXG4gIG9yIHBhZ2UgYWxsb2NhdGlvbnMpIGFuZCBrZXJuZWwtdG8tdXNlciBtZW1vcnkgaW5mby1sZWFrcy5cblxuUnVsZTogVEhFUkUgSVMgTk8gU0VOU0UgSU4gUlVOTklORyBBIEtNU0FOIFNFU1NJT04gSUYgQSBCVUcgQ0FOIEJFIENBVUdIVCBCWSBLQVNBTixcbkxPQ0tERVAsIE9SIE9USEVSIFNUQU5EQVJEIEJVRyBERVRFQ1RPUlMuXG5BIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaW5jdXJzIHNpZ25pZmljYW50IHJlc291cmNlIGNvc3RzLiBZb3UgbXVzdCBPTkxZXG5zZXQgTmVlZHNLTVNBTj10cnVlIGlmIHRoZSBjb2RlIGNoYW5nZXMgaW50cm9kdWNlIG9yIGV4cG9zZSBVTklOSVRJQUxJWkVEIE1FTU9SWSByaXNrc1xudGhhdCBhcmUgZGV0ZWN0ZWQgT05MWSBieSBLTVNBTi5cblxuTG9vayBob2xpc3RpY2FsbHkgYXQgdGhlIHBhdGNoIHNlcmllcyBhbmQgc3Vycm91bmRpbmcgY29kZS4gRXZlbiBpZiBubyBkaXJlY3RcbnVuaW5pdGlhbGl6ZWQgZmllbGQgYWNjZXNzZXMgb3IgbmV3IGJ1ZmZlciBhbGxvY2F0aW9ucyBhcmUgYWRkZWQgaW4gdGhlIGRpZmYgaXRzZWxmLFxuYSBwYXRjaCBtYXkgYWx0ZXIgY29udHJvbCBmbG93LCBib3VuZHMgY2hlY2tpbmcsIG9yIGRhdGEgbGVuZ3RoIGNhbGN1bGF0aW9ucyBpbiB3YXlzXG50aGF0IGNoYW5nZSBob3cgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgb3BlcmF0ZXMgb24gZXhpc3RpbmcgYnVmZmVycyAoZS5nLiBhbGxvd2luZ1xudW5pbml0aWFsaXplZCBzdGFjay9oZWFwIG1lbW9yeSB0byBiZSByZWFkLCBjb3BpZWQgdG8gdXNlciBzcGFjZSwgb3IgdXNlZCBpbiBjb250cm9sXG5mbG93KS4gRG8gbm90IGhlc2l0YXRlIHRvIHVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUsXG5jYWxsZWQgZnVuY3Rpb25zLCBhbmQgY2FsbGVycy5cblxuU2V0IE5lZWRzS01TQU49dHJ1ZSBPTkxZIElGIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzOlxuMS4gS2VybmVsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlICh2aWEgY29weV90b191c2VyLCBwdXRfdXNlciwgbmV0bGluayBza2JcbiAgIGF0dHJpYnV0ZXMsIGlvY3RsIG91dHB1dCBhcmd1bWVudHMsIHNvY2tldCBvcHRpb25zLCBvciBCUEYgYnVmZmVycykgd2hlcmUgZmllbGRzXG4gICBvciBzdHJ1Y3R1cmUgcGFkZGluZyBtaWdodCBub3QgYmUgZnVsbHkgaW5pdGlhbGl6ZWQvemVyb2VkLlxuMi4gQ29uZGl0aW9uYWwgbG9naWMgb3IgYnJhbmNoaW5nIHRoYXQgZGVwZW5kcyBvbiBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIHZhcmlhYmxlc1xuICAgb3Igc3RydWN0IGZpZWxkcy5cbjMuIEFsbG9jYXRpb24gb3IgaW5pdGlhbGl6YXRpb24gb2YgY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHNcbiAgIGNvdWxkIGJlIHJlYWQgbGF0ZXIgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMuXG40LiBCb3VuZHMgY2hlY2tzLCBsZW5ndGhzLCBvciBsb2dpYyBpbiBhIHdheSB0aGF0IGFsbG93cyBzdXJyb3VuZGluZyBjb2RlIHRvIGFjY2Vzc1xuICAgdW5pbml0aWFsaXplZCBieXRlcyBvZiBleGlzdGluZyBidWZmZXJzLlxuXG5TZXQgTmVlZHNLTVNBTj1mYWxzZSBJRjpcbi0gVGhlIGNvZGUgY2hhbmdlcyBwcmltYXJpbHkgcmlzayBvdXQtb2YtYm91bmRzIGFjY2VzcywgYXJyYXkgb3ZlcmZsb3dzLCBOVUxMIHBvaW50ZXJcbiAgZGVyZWZlcmVuY2VzLCBsb2NraW5nIGRlYWRsb2Nrcywgb3IgdXNlLWFmdGVyLWZyZWUgYnVncyAodGhlc2UgYXJlIGFscmVhZHkgY2F1Z2h0XG4gIGJ5IEtBU0FOLCBMT0NLREVQLCBvciBzdGFuZGFyZCBidWcgZGV0ZWN0b3JzKS5cbi0gQWxsIHN0YWNrL2hlYXAgc3RydWN0dXJlcyB0b3VjaGVkIG9yIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIGFyZSBmdWxseSB6ZXJvZWRcbiAgb3IgaW5pdGlhbGl6ZWQgKGUuZy4gdXNpbmcgPSB7MH0sIG1lbXNldCwga3phbGxvYykgYmVmb3JlIGJlaW5nIHJlYWQgb3IgY29waWVkLlxuLSBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MuXG5cblVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaWYgbmVjZXNzYXJ5LCB0aGVuIHByb3ZpZGVcbmRldGFpbGVkIEtNU0FOUmVhc29uaW5nIGNvbnRyYXN0aW5nIEtBU0FOIHZzIEtNU0FOIGFwcGxpY2FiaWxpdHkgZm9yIHRoaXMgcGF0Y2guXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA4ZGQ4ZTg4NGQzYTgzNjY1ZDcwNzI3MGI4ZDcxODVhNDZiMzQ4YmM0XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBBdWcgMjYgMDk6NDk6MzcgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmNcbmluZGV4IGE5MDU5ODY2YjcwMTYuLmNmYmZkNzdlODkwZmIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uY1xuQEAgLTgzMiwxMSArODMyLDggQEAgc3RhdGljIHZvaWQgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXIoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4gXHRcdFx0XHQgICAgdW5zaWduZWQgaW50ICp0b3RhbF9mbGFncyxcbiBcdFx0XHRcdCAgICB1NjQgbXVsdGljYXN0KVxuIHtcbi0jZGVmaW5lIE1UNzkyNV9GSUxURVJfRkNTRkFJTCAgICBCSVQoMilcbi0jZGVmaW5lIE1UNzkyNV9GSUxURVJfQ09OVFJPTCAgICBCSVQoNSlcbi0jZGVmaW5lIE1UNzkyNV9GSUxURVJfT1RIRVJfQlNTICBCSVQoNilcbi0jZGVmaW5lIE1UNzkyNV9GSUxURVJfRU5BQkxFICAgICBCSVQoMzEpXG4gXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gbXQ3OTJ4X2h3X2Rldihodyk7XG4rXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG4gXHR1MzIgZmxhZ3MgPSBNVDc5MjVfRklMVEVSX0VOQUJMRTtcbiBcbiAjZGVmaW5lIE1UNzkyNV9GSUxURVIoX2ZpZiwgX3R5cGUpIGRvIHtcdFx0XHRcXFxuQEAgLTg0OCw2ICs4NDUsOCBAQCBzdGF0aWMgdm9pZCBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbiBcdE1UNzkyNV9GSUxURVIoRklGX0NPTlRST0wsIENPTlRST0wpO1xuIFx0TVQ3OTI1X0ZJTFRFUihGSUZfT1RIRVJfQlNTLCBPVEhFUl9CU1MpO1xuIFxuK1x0cGh5LVx1MDAzZXJ4ZmlsdGVyID0gZmxhZ3M7XG4rXG4gXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuIFx0bXQ3OTI1X21jdV9zZXRfcnhmaWx0ZXIoZGV2LCBmbGFncywgMCwgMCk7XG4gXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmNcbmluZGV4IGU5NGZhNTQ0ZmYyMDcuLmFkYzEzN2EwZTZiNGQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmNcbkBAIC0yMjUxLDcgKzIyNTEsNyBAQCBpbnQgbXQ3OTI1X21jdV9jb25maWdfc25pZmZlcihzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqdmlmLFxuIFx0XHRcdC5sZW4gPSBjcHVfdG9fbGUxNihzaXplb2YocmVxLnRsdikpLFxuIFx0XHRcdC5jb250cm9sX2NoID0gY2hhbmRlZi1cdTAwM2VjaGFuLVx1MDAzZWh3X3ZhbHVlLFxuIFx0XHRcdC5jZW50ZXJfY2ggPSBpZWVlODAyMTFfZnJlcXVlbmN5X3RvX2NoYW5uZWwoZnJlcTEpLFxuLVx0XHRcdC5kcm9wX2VyciA9IDEsXG4rXHRcdFx0LmRyb3BfZXJyID0gISh2aWYtXHUwMDNlcGh5LVx1MDAzZXJ4ZmlsdGVyIFx1MDAyNiBNVDc5MjVfRklMVEVSX0ZDU0ZBSUwpLFxuIFx0XHR9LFxuIFx0fTtcbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tdDc5MjUuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L210NzkyNS5oXG5pbmRleCA0Y2MyNTk0MThhZmNhLi44ZmI4YTRjMTMxNmUwIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbXQ3OTI1LmhcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L210NzkyNS5oXG5AQCAtNyw2ICs3LDExIEBAXG4gI2luY2x1ZGUgXCIuLi9tdDc5MnguaFwiXG4gI2luY2x1ZGUgXCJyZWdzLmhcIlxuIFxuKyNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9GQ1NGQUlMXHRcdEJJVCgyKVxuKyNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9DT05UUk9MXHRcdEJJVCg1KVxuKyNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9PVEhFUl9CU1NcdEJJVCg2KVxuKyNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9FTkFCTEVcdFx0QklUKDMxKVxuK1xuICNkZWZpbmUgTVQ3OTI1X0JFQUNPTl9SQVRFU19UQkxcdFx0MjVcbiBcbiAjZGVmaW5lIE1UNzkyNV9UWF9SSU5HX1NJWkVcdFx0MjA0OFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4LmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oXG5pbmRleCA3MDA3M2I0M2FmNTQzLi43NWQzMmE0YWRkZDcxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaFxuQEAgLTE2OCw2ICsxNjgsNyBAQCBzdHJ1Y3QgbXQ3OTJ4X3BoeSB7XG4gXHRzMTYgY292ZXJhZ2VfY2xhc3M7XG4gXHR1OCBzbG90dGltZTtcbiBcbitcdHUzMiByeGZpbHRlcjtcbiBcdHUzMiByeF9hbXBkdV90cztcbiBcdHUzMiBhbXBkdV9yZWY7XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMTo1NS4xNTgxNTk2MTJaIiwiU2VxIjoyMSwiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTAyMTM4NzIwMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE1UNzkyNSBGaWx0ZXIgQ29uZmlndXJhdGlvbiBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgdGhlIGZpbHRlciBjb25maWd1cmF0aW9uIGZvciB0aGUgTVQ3OTI1IHdpcmVsZXNzIGRyaXZlci4gU3BlY2lmaWNhbGx5LCBpdCdzIG1ha2luZyBjaGFuZ2VzIHRvIHRoZSBgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXJgIGZ1bmN0aW9uIGluIGBtYWluLmNgLCBhbmQgSSBzZWUgaXQncyBtb3ZpbmcgYSBmZXcgYCNkZWZpbmVgcyAodGhvc2UgZmlsdGVyIGZsYWdzKSBvdmVyIHRvIGBtdDc5MjUuaGAuIFRoYXQncyBnZW5lcmFsbHkgZ29vZCBwcmFjdGljZSwga2VlcGluZyByZWxhdGVkIGRlZmluaXRpb25zIHRvZ2V0aGVyLiBJIGFsc28gbm90aWNlIGEgbmV3IGZpZWxkLCBgcnhmaWx0ZXJgLCBiZWluZyBhZGRlZCB0byB0aGUgYHN0cnVjdCBtdDc5MnhfcGh5YCBzdHJ1Y3QgaW4gYG10NzkyeC5oYC4gVGhlIGBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcmAgZnVuY3Rpb24gbm93IGFzc2lnbnMgdGhpcyBgcnhmaWx0ZXJgIGZpZWxkIHdpdGggYGZsYWdzYCwgd2hpY2ggaXMgc3RhbmRhcmQuXG5cbk15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIGFib3V0IHBvdGVudGlhbCB1bmluaXRpYWxpemVkIG1lbW9yeSBpc3N1ZXMuIFRoaXMgYHJ4ZmlsdGVyYCBmaWVsZCBpcyBuZXcsIGFuZCBJIG5lZWQgdG8gY29uZmlybSBob3cgdGhlIGBzdHJ1Y3QgbXQ3OTJ4X3BoeWAgaXMgYWxsb2NhdGVkLiBJcyBpdCB1c2luZyBga3phbGxvY2Agb3Igc29tZSBvdGhlciBhbGxvY2F0aW9uIHRoYXQgemVyb3Mgb3V0IHRoZSBtZW1vcnk/IElmIG5vdCwgd2UgY291bGQgaGF2ZSBwcm9ibGVtcyB3aXRoIHRoZSBpbml0aWFsIHZhbHVlIG9mIGByeGZpbHRlcmAgYmVpbmcgZ2FyYmFnZS4gVGhlIGZhY3QgdGhhdCBgbXQ3OTI1X21jdV9jb25maWdfc25pZmZlcmAgaW4gYG1jdS5jYCBpcyB1c2luZyB0aGUgYHJ4ZmlsdGVyYCBmaWVsZCBpcyBhIHRyaWdnZXIgdG8gbWFrZSBzdXJlIHRoYXQgZmllbGQgaXMgaW5pdGlhbGl6ZWQgYW5kIGNhbiBiZSB0cnVzdGVkLiBJJ20gZ29pbmcgdG8gZGlnIGludG8gdGhlIGNvZGUgYW5kIHRyYWNlIHRoZSBhbGxvY2F0aW9uIG9mIGBzdHJ1Y3QgbXQ3OTJ4X3BoeWAgdG8gdmVyaWZ5IHRoaXMuIEdvdHRhIGJlIHN1cmUgd2UncmUgbm90IGludHJvZHVjaW5nIGEgc3VidGxlIGJ1ZyByZWxhdGVkIHRvIHVuaW5pdGlhbGl6ZWQgZGF0YS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzEwNiwiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMxMywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDEwOjAyOjA0LjE3OTU1MDA2MloiLCJTZXEiOjIyLCJOZXN0aW5nIjozLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzQ2NzQ4OTM0LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJhbGxvYy4qbXQ3OTJ4X3BoeVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMjowNC41MjYzMDcxNjZaIiwiU2VxIjoyMywiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDA0NTY2Mjg1MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRGl2aW5nIGludG8gdGhlIGBtdDc5MnhfcGh5YCBMYW5kc2NhcGUqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgYG10NzkyeF9waHlgIG1vZHVsZSBiZXR0ZXIuIE15IGZpcnN0IGluc3RpbmN0IGlzIGFsd2F5cyB0byB0cmFjZSBpdHMgZGVmaW5pdGlvbiBhbmQgdXNhZ2UuIFdoZXJlIGlzIGl0IGFjdHVhbGx5IGRlY2xhcmVkPyBJJ20gdGhpbmtpbmcgSSdsbCBuZWVkIHRvIGdvIGJleW9uZCBhIHNpbXBsZSBgZ3JlcGAgb3IgYGZpbmRgIOKAkyBJIHdhbnQgdG8gbWFwIHRoZSByZWxhdGlvbnNoaXBzLiBLbm93aW5nIHdoZXJlIGl0J3MgKmRlZmluZWQqIGlzIGp1c3QgdGhlIHN0YXJ0aW5nIHBvaW50OyBJIG5lZWQgdG8gZm9sbG93IHRoZSBicmVhZGNydW1icyBvZiBpdHMgaW50ZXJhY3Rpb25zLiBIb3cgZG9lcyB0aGUga2VybmVsIHV0aWxpemUgdGhpcyBQSFk/IFdoYXQgb3RoZXIgbW9kdWxlcyBkZXBlbmQgb24gaXQsIGFuZCB3aGF0IGZ1bmN0aW9ucyBhcmUgdGhlIGtleSBlbnRyeSBwb2ludHM/IEknbSBhbnRpY2lwYXRpbmcgc29tZSBwb3RlbnRpYWxseSBpbnRyaWNhdGUgZGVwZW5kZW5jaWVzLCBhbmQgSSB3YW50IHRvIGJ1aWxkIGEgY2xlYXIgbWVudGFsIG1vZGVsIG9mIGl0cyBwbGFjZSB3aXRoaW4gdGhlIHdpZGVyIGRyaXZlciBhcmNoaXRlY3R1cmUuIFRoaXMgaXMgbW9yZSB0aGFuIGp1c3QgY29kZSBicm93c2luZzsgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIG9wZXJhdGlvbmFsIGNvbnRleHQuIExldCdzIGdldCB0byBpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzgxMCwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDEwOjAyOjA4LjU3MTk3MjMwOFoiLCJTZXEiOjI0LCJOZXN0aW5nIjozLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDczMjUwNzYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3RydWN0IG10NzkyeF9waHlcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3NlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDc1MyBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jPTE0PXN0YXRpYyBzc2l6ZV90IG10NzkyMV90aGVybWFsX3RlbXBfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTktXFx0Y2FzZSAwOiB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjIwOlxcdFxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMjEtXFx0XFx0c3RydWN0IG10NzkyeF9kZXYgKm1kZXYgPSBwaHktXFx1MDAzZWRldjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYz00Mz1BVFRSSUJVVEVfR1JPVVBTKG10NzkyMV9od21vbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzo0NTpzdGF0aWMgaW50IG10NzkyMV90aGVybWFsX2luaXQoc3RydWN0IG10NzkyeF9waHkgKnBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtNDYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM9MTY5PW10NzkyMV9tYWNfZmlsbF9yeChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMTc3LVxcdHN0cnVjdCBtdDc2X3BoeSAqbXBoeSA9IFxcdTAwMjZkZXYtXFx1MDAzZW10NzYucGh5O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjE3ODpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gXFx1MDAyNmRldi1cXHUwMDNlcGh5O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTE3OS1cXHRzdHJ1Y3QgaWVlZTgwMjExX3N1cHBvcnRlZF9iYW5kICpzYmFuZDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xMz1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjE0Om10NzkyMV9pbml0X2hlX2NhcHMoc3RydWN0IG10NzkyeF9waHkgKnBoeSwgZW51bSBubDgwMjExX2JhbmQgYmFuZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTUtXFx0XFx0ICAgIHN0cnVjdCBpZWVlODAyMTFfc2JhbmRfaWZ0eXBlX2RhdGEgKmRhdGEpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoxOTY6dm9pZCBtdDc5MjFfc2V0X3N0cmVhbV9oZV9jYXBzKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTE5Ny17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjI2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyMjc6aW50IF9fbXQ3OTIxX3N0YXJ0KHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTIyOC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MjcyPXN0YXRpYyBpbnQgbXQ3OTIxX3N0YXJ0KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yNzMte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyNzQ6XFx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG10NzkyeF9od19waHkoaHcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yNzUtXFx0aW50IGVycjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0zMDE9bXQ3OTIxX2FkZF9pbnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzA0LVxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MzA1OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzA2LVxcdHN0cnVjdCBtdDc2X3R4cSAqbXR4cTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0zNjI9c3RhdGljIHZvaWQgbXQ3OTIxX3JvY19pdGVyKHZvaWQgKnByaXYsIHU4ICptYWMsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzY1LVxcdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVxcdTAwM2VkcnZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MzY2OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zNjctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MzcxPXZvaWQgbXQ3OTIxX3JvY19hYm9ydF9zeW5jKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM3Mi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjM3MzpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gXFx1MDAyNmRldi1cXHUwMDNlcGh5O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zNzQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9Mzg3PXZvaWQgbXQ3OTIxX3JvY193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzg4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6Mzg5OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM5MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MzkxOlxcdHBoeSA9IChzdHJ1Y3QgbXQ3OTJ4X3BoeSAqKWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgbXQ3OTJ4X3BoeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzkyLVxcdFxcdFxcdFxcdFxcdFxcdHJvY193b3JrKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00MDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjQwNjpzdGF0aWMgaW50IG10NzkyMV9hYm9ydF9yb2Moc3RydWN0IG10NzkyeF9waHkgKnBoeSwgc3RydWN0IG10NzkyeF92aWYgKnZpZilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDA3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00MjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjQyMTpzdGF0aWMgaW50IG10NzkyMV9zZXRfcm9jKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQyMi1cXHRcXHRcXHQgIHN0cnVjdCBtdDc5MnhfdmlmICp2aWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9NDUxPXN0YXRpYyBpbnQgbXQ3OTIxX3JlbWFpbl9vbl9jaGFubmVsKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQ1Ny1cXHRzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqbXZpZiA9IChzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqKXZpZi1cXHUwMDNlZHJ2X3ByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjQ1ODpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQ1OS1cXHRpbnQgZXJyO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTQ2OD1zdGF0aWMgaW50IG10NzkyMV9jYW5jZWxfcmVtYWluX29uX2NoYW5uZWwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDcxLVxcdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVxcdTAwM2VkcnZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NDcyOlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDczLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTQ3Nz1pbnQgbXQ3OTIxX3NldF9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqbXBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDc4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NDc5OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtcGh5LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00ODAtXFx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IHBoeS1cXHUwMDNlZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTYzND1zdGF0aWMgaW50IG10NzkyMV9jb25maWcoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIGludCByYWRpb19pZHgsIHUzMiBjaGFuZ2VkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTYzNi1cXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gbXQ3OTJ4X2h3X2Rldihodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjYzNzpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTYzOC1cXHRpbnQgcmV0ID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz02OTU9c3RhdGljIHZvaWQgbXQ3OTIxX2Jzc19pbmZvX2NoYW5nZWQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNjk5LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NzAwOlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNzAxLVxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz03NjY9bXQ3OTIxX3JlZ2Rfc2V0XzZnaHpfcG93ZXJfdHlwZShzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLCBib29sIGlzX2FkZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy03NjgtXFx0c3RydWN0IG10NzkyeF92aWYgKm12aWYgPSAoc3RydWN0IG10NzkyeF92aWYgKil2aWYtXFx1MDAzZWRydl9wcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo3Njk6XFx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG12aWYtXFx1MDAzZXBoeTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNzcwLVxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBwaHktXFx1MDAzZWRldjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xMDEzPXZvaWQgbXQ3OTIxX3NjYW5fd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTEwMTQte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoxMDE1OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTEwMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjEwMTc6XFx0cGh5ID0gKHN0cnVjdCBtdDc5MnhfcGh5ICopY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBtdDc5MnhfcGh5LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMDE4LVxcdFxcdFxcdFxcdFxcdFxcdHNjYW5fd29yay53b3JrKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xMTE3PW10NzkyMV9zZXRfYW50ZW5uYShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgaW50IHJhZGlvX2lkeCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMTIwLVxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MTEyMTpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTExMjItXFx0aW50IG1heF9uc3MgPSBod2VpZ2h0OChody1cXHUwMDNld2lwaHktXFx1MDAzZWF2YWlsYWJsZV9hbnRlbm5hc190eCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MTE0ND1zdGF0aWMgaW50IG10NzkyMV9zdXNwZW5kKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTExNDctXFx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IG10NzkyeF9od19kZXYoaHcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoxMTQ4OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTE0OS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xMTY5PXN0YXRpYyBpbnQgbXQ3OTIxX3Jlc3VtZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMTcxLVxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MTE3MjpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTExNzMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MTMzND1tdDc5MjFfc3RhcnRfYXAoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTMzNy1cXHRzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqbXZpZiA9IChzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqKXZpZi1cXHUwMDNlZHJ2X3ByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjEzMzg6XFx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG10NzkyeF9od19waHkoaHcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMzM5LVxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xMzYyPW10NzkyMV9zdG9wX2FwKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTEzNjUtXFx0c3RydWN0IG10NzkyeF92aWYgKm12aWYgPSAoc3RydWN0IG10NzkyeF92aWYgKil2aWYtXFx1MDAzZWRydl9wcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoxMzY2OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTM2Ny1cXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gbXQ3OTJ4X2h3X2Rldihodyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MTQwND1tdDc5MjFfY2hhbmdlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTQwOC1cXHRzdHJ1Y3QgbXQ3OTJ4X2NoYW5jdHggKm1jdHggPSAoc3RydWN0IG10NzkyeF9jaGFuY3R4ICopY3R4LVxcdTAwM2VkcnZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MTQwOTpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTE0MTAtXFx0c3RydWN0IGllZWU4MDIxMV92aWYgKnZpZjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xNTM2PXN0YXRpYyB2b2lkIG10NzkyMV9yZmtpbGxfcG9sbChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTUzNy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjE1Mzg6XFx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG10NzkyeF9od19waHkoaHcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xNTM5LVxcdGludCByZXQgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmM9MTYzPW10NzkyMV9tY3Vfc2Nhbl9ldmVudChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtMTY1LVxcdHN0cnVjdCBtdDc2X3BoeSAqbXBoeSA9IFxcdTAwMjZkZXYtXFx1MDAzZW10NzYucGh5O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jOjE2NjpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXBoeS1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYy0xNjctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYz00MTA9c3RhdGljIGludCBtdDc5MjFfbG9hZF9jbGMoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgY29uc3QgY2hhciAqZndfbmFtZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTQxNS1cXHRzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYgPSBcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jOjQxNjpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gXFx1MDAyNmRldi1cXHUwMDNlcGh5O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTQxNy1cXHRjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmM9NTIzPXN0YXRpYyB2b2lkIG10NzkyMV9tY3VfcGFyc2VfcGh5X2NhcChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTU1My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYzo1NTQ6c3RhdGljIGludCBtdDc5MjFfbWN1X2dldF9uaWNfY2FwYWJpbGl0eShzdHJ1Y3QgbXQ3OTJ4X3BoeSAqbXBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYy01NTUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmM9NjcwPWludCBtdDc5MjFfbWN1X3NldF90eChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtNzYzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jOjc2NDppbnQgbXQ3OTIxX21jdV9zZXRfcm9jKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksIHN0cnVjdCBtdDc5MnhfdmlmICp2aWYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtNzY1LVxcdFxcdCAgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5uZWwgKmNoYW4sIGludCBkdXJhdGlvbixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTgzMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYzo4MzE6aW50IG10NzkyMV9tY3VfYWJvcnRfcm9jKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksIHN0cnVjdCBtdDc5MnhfdmlmICp2aWYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtODMyLVxcdFxcdFxcdCB1OCB0b2tlbl9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTg2MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYzo4NjE6aW50IG10NzkyMV9tY3Vfc2V0X2NoYW5faW5mbyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBpbnQgY21kKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTg2Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYz0xMzk4PWludCBtdDc5MjFfbWN1X3NldF9jbGMoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdTggKmFscGhhMixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTE0MDAte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jOjE0MDE6XFx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IChzdHJ1Y3QgbXQ3OTJ4X3BoeSAqKVxcdTAwMjZkZXYtXFx1MDAzZXBoeTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYy0xNDAyLVxcdGludCBpLCByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYy0xNDE5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jOjE0MjA6aW50IG10NzkyMV9tY3VfZ2V0X3RlbXBlcmF0dXJlKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtMTQyMS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYy0xNDM2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jOjE0Mzc6aW50IG10NzkyMV9tY3Vfd2ZfcmZfcGluX2N0cmwoc3RydWN0IG10NzkyeF9waHkgKnBoeSwgdTggYWN0aW9uKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTE0Mzgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmg9MjAyPXUzMiBtdDc5MjFfcmVnX21hcChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB1MzIgYWRkcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMjAzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oOjIwNDppbnQgX19tdDc5MjFfc3RhcnQoc3RydWN0IG10NzkyeF9waHkgKnBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMjA1LWludCBtdDc5MjFfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmg9MjExPWludCBtdDc5MjFfbWN1X3N0YV91cGRhdGUoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oLTIxMy1cXHRcXHRcXHQgIGVudW0gbXQ3Nl9zdGFfaW5mb19zdGF0ZSBzdGF0ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmg6MjE0OmludCBtdDc5MjFfbWN1X3NldF9jaGFuX2luZm8oc3RydWN0IG10NzkyeF9waHkgKnBoeSwgaW50IGNtZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMjE1LWludCBtdDc5MjFfbWN1X3NldF90eChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaD0yMTY9aW50IG10NzkyMV9tY3Vfc2V0X2VlcHJvbShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaDoyMTc6aW50IG10NzkyMV9tY3VfZ2V0X3J4X3JhdGUoc3RydWN0IG10NzkyeF9waHkgKnBoeSwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaC0yMTgtXFx0XFx0XFx0ICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwgc3RydWN0IHJhdGVfaW5mbyAqcmF0ZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaD0yMjM9aW50IG10NzkyMV9tY3VfcmFkaW9fbGVkX2N0cmwoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdTggdmFsdWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oOjIyNDppbnQgbXQ3OTIxX21jdV93Zl9yZl9waW5fY3RybChzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCB1OCBhY3Rpb24pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oLTIyNS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oPTI4MD12b2lkIG10NzkyMV9zdGF0c193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmg6MjgxOnZvaWQgbXQ3OTIxX3NldF9zdHJlYW1faGVfY2FwcyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaC0yODItaW50IG10NzkyMV9pbml0X2RlYnVnZnMoc3RydWN0IG10NzkyeF9kZXYgKmRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaD0zMjQ9aW50IG10NzkyMV9tY3VfY29uZmlnX3NuaWZmZXIoc3RydWN0IG10NzkyeF92aWYgKnZpZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaC0zMjUtXFx0XFx0XFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmg6MzI2OmludCBtdDc5MjFfbWN1X2dldF90ZW1wZXJhdHVyZShzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaC0zMjctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaD0zNDQ9aW50IG10NzkyMV9tY3Vfc2V0X2NsYyhzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB1OCAqYWxwaGEyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oLTM0NS1cXHRcXHQgICAgICAgZW51bSBlbnZpcm9ubWVudF9jYXAgZW52X2NhcCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmg6MzQ2OmludCBtdDc5MjFfbWN1X3NldF9yb2Moc3RydWN0IG10NzkyeF9waHkgKnBoeSwgc3RydWN0IG10NzkyeF92aWYgKnZpZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaC0zNDctXFx0XFx0ICAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbm5lbCAqY2hhbiwgaW50IGR1cmF0aW9uLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oLTM0OC1cXHRcXHQgICAgICAgZW51bSBtdDc5MjFfcm9jX3JlcSB0eXBlLCB1OCB0b2tlbl9pZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmg6MzQ5OmludCBtdDc5MjFfbWN1X2Fib3J0X3JvYyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqdmlmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oLTM1MC1cXHRcXHRcXHQgdTggdG9rZW5faWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jPTE1MD1tdDc5MjFfcmVnZF9pc192YWxpZF9hbHBoYTIoY29uc3QgY2hhciAqYWxwaGEyKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jLTE2My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmM6MTY0OmludCBtdDc5MjFfcmVnZF9jaGFuZ2Uoc3RydWN0IG10NzkyeF9waHkgKnBoeSwgY2hhciAqYWxwaGEyKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuYy0xNjUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jLTE5MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmM6MTkyOmludCBtdDc5MjFfcmVnZF9pbml0KHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jLTE5My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmg9MTU9Ym9vbCBtdDc5MjFfcmVnZF9jbGNfc3VwcG9ydGVkKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuaDoxNjppbnQgbXQ3OTIxX3JlZ2RfY2hhbmdlKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksIGNoYXIgKmFscGhhMik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5oOjE3OmludCBtdDc5MjFfcmVnZF9pbml0KHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuaC0xOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3Rlc3Rtb2RlLmM9MTExPWludCBtdDc5MjFfdGVzdG1vZGVfY21kKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdGVzdG1vZGUuYy0xMTUtXFx0c3RydWN0IG10NzZfcGh5ICptcGh5ID0gaHctXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdGVzdG1vZGUuYzoxMTY6XFx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG1waHktXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdGVzdG1vZGUuYy0xMTctXFx0aW50IGVycjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3Rlc3Rtb2RlLmM9MTQ4PWludCBtdDc5MjFfdGVzdG1vZGVfZHVtcChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IHNrX2J1ZmYgKm1zZyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3Rlc3Rtb2RlLmMtMTUyLVxcdHN0cnVjdCBtdDc2X3BoeSAqbXBoeSA9IGh3LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3Rlc3Rtb2RlLmM6MTUzOlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtcGh5LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3Rlc3Rtb2RlLmMtMTU0LVxcdGludCBlcnI7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM9MTQ9c3RhdGljIHNzaXplX3QgbXQ3OTI1X3RoZXJtYWxfdGVtcF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xOS1cXHRjYXNlIDA6IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjA6XFx0XFx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yMS1cXHRcXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqbWRldiA9IHBoeS1cXHUwMDNlZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jPTQzPUFUVFJJQlVURV9HUk9VUFMobXQ3OTI1X2h3bW9uKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtNDQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjQ1OnN0YXRpYyBpbnQgbXQ3OTI1X3RoZXJtYWxfaW5pdChzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy00Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz0zNTk9bXQ3OTI1X21hY19maWxsX3J4KHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0zNjctXFx0c3RydWN0IG10NzZfcGh5ICptcGh5ID0gXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5waHk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MzY4OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBcXHUwMDI2ZGV2LVxcdTAwM2VwaHk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMzY5LVxcdHN0cnVjdCBpZWVlODAyMTFfc3VwcG9ydGVkX2JhbmQgKnNiYW5kO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTE1PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjE2Om10NzkyNV9pbml0X2hlX2NhcHMoc3RydWN0IG10NzkyeF9waHkgKnBoeSwgZW51bSBubDgwMjExX2JhbmQgYmFuZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTctXFx0XFx0ICAgIHN0cnVjdCBpZWVlODAyMTFfc2JhbmRfaWZ0eXBlX2RhdGEgKmRhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MTYwPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjE2MTptdDc5MjVfaW5pdF9laHRfY2FwcyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBlbnVtIG5sODAyMTFfYmFuZCBiYW5kLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xNjItXFx0XFx0ICAgICBzdHJ1Y3QgaWVlZTgwMjExX3NiYW5kX2lmdHlwZV9kYXRhICpkYXRhKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTI2My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MjY0OmludCBtdDc5MjVfaW5pdF9tbG9fY2FwcyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0yNjUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTI5NT1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoyOTY6X19tdDc5MjVfc2V0X3N0cmVhbV9oZV9laHRfY2FwcyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0yOTctXFx0XFx0XFx0XFx0c3RydWN0IGllZWU4MDIxMV9zdXBwb3J0ZWRfYmFuZCAqc2JhbmQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMzIxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzozMjI6dm9pZCBtdDc5MjVfc2V0X3N0cmVhbV9oZV9laHRfY2FwcyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0zMjMte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTMzNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MzM3OmludCBfX210NzkyNV9zdGFydChzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0zMzgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTM2Mz1zdGF0aWMgaW50IG10NzkyNV9zdGFydChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMzY0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MzY1OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMzY2LVxcdGludCBlcnI7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9NDUxPW10NzkyNV9hZGRfaW50ZXJmYWNlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTQ1NC1cXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gbXQ3OTJ4X2h3X2Rldihodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjQ1NTpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTQ1Ni1cXHRpbnQgcmV0ID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz00ODM9c3RhdGljIHZvaWQgbXQ3OTI1X3JvY19pdGVyKHZvaWQgKnByaXYsIHU4ICptYWMsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNDg2LVxcdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVxcdTAwM2VkcnZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6NDg3OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy00ODgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9NDkyPXZvaWQgbXQ3OTI1X3JvY19hYm9ydF9zeW5jKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTQ5My17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjQ5NDpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gXFx1MDAyNmRldi1cXHUwMDNlcGh5O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy00OTUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9NTA5PXZvaWQgbXQ3OTI1X3JvY193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNTEwLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6NTExOlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTUxMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6NTEzOlxcdHBoeSA9IChzdHJ1Y3QgbXQ3OTJ4X3BoeSAqKWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgbXQ3OTJ4X3BoeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNTE0LVxcdFxcdFxcdFxcdFxcdFxcdHJvY193b3JrKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy01MjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjUyNzpzdGF0aWMgaW50IG10NzkyNV9hYm9ydF9yb2Moc3RydWN0IG10NzkyeF9waHkgKnBoeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNTI4LVxcdFxcdFxcdCAgICBzdHJ1Y3QgbXQ3OTJ4X2Jzc19jb25mICptY29uZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy01NDItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjU0MzpzdGF0aWMgaW50IG10NzkyNV9zZXRfcm9jKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTU0NC1cXHRcXHRcXHQgIHN0cnVjdCBtdDc5MnhfYnNzX2NvbmYgKm1jb25mLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTU3Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6NTczOnN0YXRpYyBpbnQgbXQ3OTI1X3NldF9tbG9fcm9jKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTU3NC1cXHRcXHRcXHQgICAgICBzdHJ1Y3QgbXQ3OTJ4X2Jzc19jb25mICptY29uZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz02MDA9c3RhdGljIGludCBtdDc5MjVfcmVtYWluX29uX2NoYW5uZWwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNjA2LVxcdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVxcdTAwM2VkcnZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6NjA3OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNjA4LVxcdGludCBlcnI7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9NjE4PXN0YXRpYyBpbnQgbXQ3OTI1X2NhbmNlbF9yZW1haW5fb25fY2hhbm5lbChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy02MjEtXFx0c3RydWN0IG10NzkyeF92aWYgKm12aWYgPSAoc3RydWN0IG10NzkyeF92aWYgKil2aWYtXFx1MDAzZWRydl9wcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzo2MjI6XFx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG10NzkyeF9od19waHkoaHcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy02MjMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9NjI3PXN0YXRpYyBpbnQgbXQ3OTI1X3NldF9saW5rX2tleShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgZW51bSBzZXRfa2V5X2NtZCBjbWQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNjcxLVxcdGlmIChjbWQgPT0gU0VUX0tFWSBcXHUwMDI2XFx1MDAyNiAhbWNvbmYtXFx1MDAzZW10NzYuY2lwaGVyKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjY3MjpcXHRcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTY3My1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz04MzA9c3RhdGljIHZvaWQgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXIoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtODM1LVxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6ODM2OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtODM3LVxcdHUzMiBmbGFncyA9IE1UNzkyNV9GSUxURVJfRU5BQkxFO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTE0Nzc9dm9pZCBtdDc5MjVfc2Nhbl93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTQ3OC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjE0Nzk6XFx0c3RydWN0IG10NzkyeF9waHkgKnBoeTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTQ4MC1cXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE0ODItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjE0ODM6XFx0cGh5ID0gKHN0cnVjdCBtdDc5MnhfcGh5ICopY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBtdDc5MnhfcGh5LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xNDg0LVxcdFxcdFxcdFxcdFxcdFxcdHNjYW5fd29yay53b3JrKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0xNjA0PW10NzkyNV9zZXRfYW50ZW5uYShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgaW50IHJhZGlvX2lkeCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xNjA3LVxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTYwODpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE2MDktXFx0aW50IG1heF9uc3MgPSBod2VpZ2h0OChody1cXHUwMDNld2lwaHktXFx1MDAzZWF2YWlsYWJsZV9hbnRlbm5hc190eCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MTYzMj1zdGF0aWMgaW50IG10NzkyNV9zdXNwZW5kKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE2MzUtXFx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IG10NzkyeF9od19kZXYoaHcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxNjM2OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTYzNy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0xNjU3PXN0YXRpYyBpbnQgbXQ3OTI1X3Jlc3VtZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xNjU5LVxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTY2MDpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE2NjEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MTkzNj1tdDc5MjVfY2hhbmdlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTk0MC1cXHRzdHJ1Y3QgbXQ3OTJ4X2NoYW5jdHggKm1jdHggPSAoc3RydWN0IG10NzkyeF9jaGFuY3R4ICopY3R4LVxcdTAwM2VkcnZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTk0MTpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE5NDItXFx0c3RydWN0IG10NzkyeF9ic3NfY29uZiAqbWNvbmY7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MjA2Mz1zdGF0aWMgdm9pZCBtdDc5MjVfbGlua19pbmZvX2NoYW5nZWQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMjA2OC1cXHRzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqbXZpZiA9IChzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqKXZpZi1cXHUwMDNlZHJ2X3ByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjIwNjk6XFx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG10NzkyeF9od19waHkoaHcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0yMDcwLVxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0yMTIyPW10NzkyNV9jaGFuZ2VfdmlmX2xpbmtzKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTIxMzEtXFx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IG10NzkyeF9od19kZXYoaHcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoyMTMyOlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMjEzMy1cXHRzdHJ1Y3QgaWVlZTgwMjExX2Jzc19jb25mICpsaW5rX2NvbmY7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MjM1Mz1zdGF0aWMgdm9pZCBtdDc5MjVfcmZraWxsX3BvbGwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTIzNTQte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoyMzU1OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMjM1Ni1cXHRpbnQgcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM9NDA2PW10NzkyNV9tY3Vfc2Nhbl9ldmVudChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtNDA4LVxcdHN0cnVjdCBtdDc2X3BoeSAqbXBoeSA9IFxcdTAwMjZkZXYtXFx1MDAzZW10NzYucGh5O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jOjQwOTpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXBoeS1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy00MTAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYz03OTg9c3RhdGljIGludCBtdDc5MjVfbG9hZF9jbGMoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgY29uc3QgY2hhciAqZndfbmFtZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTgwMy1cXHRzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYgPSBcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jOjgwNDpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gXFx1MDAyNmRldi1cXHUwMDNlcGh5O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTgwNS1cXHRjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM9ODg4PWludCBtdDc5MjVfbWN1X2Z3X2xvZ18yX2hvc3Qoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdTggY3RybClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTkwOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzo5MTA6aW50IG10NzkyNV9tY3VfZ2V0X3RlbXBlcmF0dXJlKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtOTExLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jPTEzMjc9aW50IG10NzkyNV9tY3VfYWRkX2tleShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTEzNTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM6MTM1MjppbnQgbXQ3OTI1X21jdV9zZXRfbWxvX3JvYyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3OTJ4X2Jzc19jb25mICptY29uZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0xMzUzLVxcdFxcdFxcdCAgIHUxNiBzZWxfbGlua3MsIGludCBkdXJhdGlvbiwgdTggdG9rZW5faWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0xNDU1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jOjE0NTY6aW50IG10NzkyNV9tY3Vfc2V0X3JvYyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3OTJ4X2Jzc19jb25mICptY29uZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0xNDU3LVxcdFxcdCAgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5uZWwgKmNoYW4sIGludCBkdXJhdGlvbixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTE1MDQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM6MTUwNTppbnQgbXQ3OTI1X21jdV9hYm9ydF9yb2Moc3RydWN0IG10NzkyeF9waHkgKnBoeSwgc3RydWN0IG10NzkyeF9ic3NfY29uZiAqbWNvbmYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMTUwNi1cXHRcXHRcXHQgdTggdG9rZW5faWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYz0yNjcyPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM6MjY3MzptdDc5MjVfbWN1X2Jzc19ibWNfdGx2KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMjY3NC1cXHRcXHQgICAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jPTI3MDI9bXQ3OTI1X21jdV9ic3NfbWxkX3RsdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMjcwNy1cXHRzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqbXZpZiA9IChzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqKWxpbmtfY29uZi1cXHUwMDNldmlmLVxcdTAwM2VkcnZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzoyNzA4OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdmlmLVxcdTAwM2VwaHk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMjcwOS1cXHRzdHJ1Y3QgYnNzX21sZF90bHYgKm1sZDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jPTI3NjY9bXQ3OTI1X21jdV9ic3NfaGVfdGx2KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBpZWVlODAyMTFfYnNzX2NvbmYgKmxpbmtfY29uZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzoyNzY3OlxcdFxcdCAgICAgIHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMjc2OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYz0yODEwPW10NzkyNV9tY3VfYnNzX2lmc190bHYoc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTI4MTMtXFx0c3RydWN0IG10NzkyeF92aWYgKm12aWYgPSAoc3RydWN0IG10NzkyeF92aWYgKilsaW5rX2NvbmYtXFx1MDAzZXZpZi1cXHUwMDNlZHJ2X3ByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM6MjgxNDpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXZpZi1cXHUwMDNlcGh5O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTI4MTUtXFx0c3RydWN0IGJzc19pZnNfdGltZV90bHYgKmlmc190aW1lO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMjgyMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzoyODI0OmludCBtdDc5MjVfbWN1X3NldF90aW1pbmcoc3RydWN0IG10NzkyeF9waHkgKnBoeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0yODI1LVxcdFxcdFxcdCAgc3RydWN0IGllZWU4MDIxMV9ic3NfY29uZiAqbGlua19jb25mKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM9Mjg0Mj12b2lkIG10NzkyNV9tY3VfZGVsX2RldihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0yODk3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jOjI4OTg6aW50IG10NzkyNV9tY3VfYWRkX2Jzc19pbmZvX3N0YShzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTI4OTktXFx0XFx0XFx0XFx0c3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTI5MzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM6Mjk0MDppbnQgbXQ3OTI1X21jdV9hZGRfYnNzX2luZm8oc3RydWN0IG10NzkyeF9waHkgKnBoeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0yOTQxLVxcdFxcdFxcdCAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHhfY29uZiAqY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM9MzUzMT1pbnQgbXQ3OTI1X21jdV9zZXRfY2xjKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHU4ICphbHBoYTIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0zNTMzLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzozNTM0OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSAoc3RydWN0IG10NzkyeF9waHkgKilcXHUwMDI2ZGV2LVxcdTAwM2VwaHk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMzUzNS1cXHRpbnQgaSwgcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM9MzY0OD1FWFBPUlRfU1lNQk9MX0dQTChtdDc5MjVfbWN1X2ZpbGxfbWVzc2FnZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMzY0OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzozNjUwOmludCBtdDc5MjVfbWN1X3NldF9ydHNfdGhyZXNoKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksIHUzMiB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMzY1MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0zNjcxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jOjM2NzI6aW50IG10NzkyNV9tY3Vfc2V0X3JhZGlvX2VuKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksIGJvb2wgZW5hYmxlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTM2NzMte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM9Mzg3OD1pbnQgbXQ3OTI1X21jdV9zZXRfcmF0ZV90eHBvd2VyKHN0cnVjdCBtdDc2X3BoeSAqcGh5KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMzkwNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzozOTA4OmludCBtdDc5MjVfbWN1X3dmX3JmX3Bpbl9jdHJsKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMzkwOS17XFxuLS1cXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjZUMTA6MDI6MDguNjE5MzA5MDc0WiIsIlNlcSI6MjUsIk5lc3RpbmciOjMsIlR5cGUiOiJsbG0iLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3MDY5MzA0ODYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgYXNzdW1pbmcgSSdtIGFscmVhZHkgZGVlcCBpbiB0aGUgd2VlZHMgd2l0aCBNVDc5MnggZHJpdmVyIGludGVybmFsczpcblxuKipEaXZpbmcgaW50byB0aGUgTVQ3OTJ4IFBIWSBTdHJ1Y3R1cmUqKlxuXG5BbHJpZ2h0LCBzbyB0aGUgYG10NzkyeF9waHlgIHN0cnVjdCBpcyBrZXkgaGVyZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IGl0J3MgYmVpbmcgaGFuZGxlZC4gSXQncyBlaXRoZXIgYSBkaXJlY3RseSBlbWJlZGRlZCBtZW1iZXIgd2l0aGluIHRoZSBgbXQ3OTJ4X2RldmAgc3RydWN0dXJlLCBvciBpdCdzIGJlaW5nIGFsbG9jYXRlZCBzZXBhcmF0ZWx5LCBhbmQgdGhlIHBvaW50ZXIgaXMgc3RvcmVkIGluIGBtdDc5MnhfZGV2YC4gVGhpcyBpcyBhIHByZXR0eSBzdGFuZGFyZCBwYXR0ZXJuLCBzbyBJIHdhbnQgdG8gY29uZmlybS4gVGhlIG5leHQgbG9naWNhbCBzdGVwLCBiZWZvcmUgSSBnbyBkZWVwZXIgaW50byB0aGUgY29kZSwgaXMgdG8gcXVpY2tseSByZWZyZXNoIG15IG1lbW9yeSBvbiB0aGUgYHN0cnVjdCBtdDc5MnhfZGV2YCBkZWZpbml0aW9uLiBLbm93aW5nIGhvdyBgbXQ3OTJ4X2RldmAgaXMgc3RydWN0dXJlZCBpcyBnb2luZyB0byBpbW1lZGlhdGVseSB0ZWxsIG1lIGhvdyB0byBhY2Nlc3MgdGhhdCBgbXQ3OTJ4X3BoeWAgaW5zdGFuY2UuIEl0IHdpbGwgc2F2ZSBhIGxvdCBvZiBkZWJ1Z2dpbmcgdGltZSBsYXRlciEgTGV0J3MgZ2V0IHRoYXQgZGVmaW5pdGlvbiB1cC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjEwMTcsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMjoxMi4zMjYyNDI4NTFaIiwiU2VxIjoyNiwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2NzY0MzU3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0cnVjdCBtdDc5MnhfZGV2IFxcXFx7XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzZcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaD0yMzM9c3RydWN0IG10NzkyeF9oaWZfb3BzIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4LmgtMjQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4Lmg6MjQxOnN0cnVjdCBtdDc5MnhfZGV2IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oLTI0Mi1cXHR1bmlvbiB7IC8qIG11c3QgYmUgZmlyc3QgKi9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjZUMTA6MDI6MTIuMzczMDExMTE4WiIsIlNlcSI6MjcsIk5lc3RpbmciOjMsIlR5cGUiOiJsbG0iLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3NTU0NDg3NTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyBpZiBJIHdlcmUgdGhpbmtpbmcgdGhlc2UgdGhvdWdodHM6XG5cbioqRGl2aW5nIGludG8gdGhlIE1UNzkyeCBEcml2ZXIgU3RydWN0dXJlKipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBhcmNoaXRlY3R1cmUgb2YgdGhpcyBNVDc5Mnggd2lyZWxlc3MgZHJpdmVyLiBUaGUgZmlyc3QgdGhpbmcgb24gbXkgbGlzdCBpcyB0byBkaXNzZWN0IHRoZSBgc3RydWN0IG10NzkyeF9kZXZgIGRhdGEgc3RydWN0dXJlLiBJdCdzIGRlZmluZWQgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4LmhgLCB3aGljaCBtYWtlcyBwZXJmZWN0IHNlbnNlLiBUaGlzIHN0cnVjdCBpcyBsaWtlbHkgdGhlIGNlbnRyYWwgaHViIGZvciByZXByZXNlbnRpbmcgdGhlIGRldmljZSdzIGhhcmR3YXJlIHN0YXRlIGFuZCByZXNvdXJjZXMgd2l0aGluIHRoZSBkcml2ZXIuIEkgZXhwZWN0IHRvIGZpbmQgY3JpdGljYWwgZGV2aWNlLXNwZWNpZmljIGluZm9ybWF0aW9uIGhlcmUg4oCTIHJlZ2lzdGVyIG1hcHBpbmdzLCBpbnRlcnJ1cHQgY29uZmlndXJhdGlvbnMsIGFuZCBwb2ludGVycyB0byBvdGhlciByZWxhdGVkIGRhdGEgc3RydWN0dXJlcy4gVGhpcyBpcyB0aGUgZW50cnkgcG9pbnQgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRoZSBkcml2ZXIgaW50ZXJhY3RzIHdpdGggdGhlIGhhcmR3YXJlLCBzbyBJIG5lZWQgdG8ga25vdyB0aGlzIGluc2lkZSBhbmQgb3V0LiBJdCdzIHRoZSBjb3JlIG9mIHRoZSB3aG9sZSBvcGVyYXRpb24uIExldCdzIHNlZSB3aGF0IHdlJ3ZlIGdvdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE0NjcsIk91dHB1dFRva2VucyI6NDgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMjoxNi4xMjg0NjIwMDJaIiwiU2VxIjoyOCwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTcxOTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaFwiLFxuICBcIkZpcnN0TGluZVwiOiAyNDAsXG4gIFwiTGluZUNvdW50XCI6IDUwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAyNDA6XFx0XFxuIDI0MTpcXHRzdHJ1Y3QgbXQ3OTJ4X2RldiB7XFxuIDI0MjpcXHRcXHR1bmlvbiB7IC8qIG11c3QgYmUgZmlyc3QgKi9cXG4gMjQzOlxcdFxcdFxcdHN0cnVjdCBtdDc2X2RldiBtdDc2O1xcbiAyNDQ6XFx0XFx0XFx0c3RydWN0IG10NzZfcGh5IG1waHk7XFxuIDI0NTpcXHRcXHR9O1xcbiAyNDY6XFx0XFxuIDI0NzpcXHRcXHRzdHJ1Y3QgbWFjX2FkZHJlc3MgbWFjYWRkcl9saXN0WzhdO1xcbiAyNDg6XFx0XFxuIDI0OTpcXHRcXHRjb25zdCBzdHJ1Y3QgbXQ3Nl9idXNfb3BzICpidXNfb3BzO1xcbiAyNTA6XFx0XFx0c3RydWN0IG10NzkyeF9waHkgcGh5O1xcbiAyNTE6XFx0XFxuIDI1MjpcXHRcXHRzdHJ1Y3Qgd29ya19zdHJ1Y3QgcmVzZXRfd29yaztcXG4gMjUzOlxcdFxcdGJvb2wgaHdfZnVsbF9yZXNldDoxO1xcbiAyNTQ6XFx0XFx0Ym9vbCBod19pbml0X2RvbmU6MTtcXG4gMjU1OlxcdFxcdGJvb2wgZndfYXNzZXJ0OjE7XFxuIDI1NjpcXHRcXHRib29sIGhhc19laHQ6MTtcXG4gMjU3OlxcdFxcdGJvb2wgcmVnZF91c2VyOjE7XFxuIDI1ODpcXHRcXHRib29sIHJlZ2RfaW5fcHJvZ3Jlc3M6MTtcXG4gMjU5OlxcdFxcdGJvb2wgYXNwbV9zdXBwb3J0ZWQ6MTtcXG4gMjYwOlxcdFxcdGJvb2wgaGlmX2lkbGU6MTtcXG4gMjYxOlxcdFxcdGJvb2wgaGlmX3Jlc3VtZWQ6MTtcXG4gMjYyOlxcdFxcdGJvb2wgcmVnZF9jaGFuZ2U6MTtcXG4gMjYzOlxcdFxcdHdhaXRfcXVldWVfaGVhZF90IHdhaXQ7XFxuIDI2NDpcXHRcXG4gMjY1OlxcdFxcdHN0cnVjdCB3b3JrX3N0cnVjdCBpbml0X3dvcms7XFxuIDI2NjpcXHRcXHRzdHJ1Y3Qgd29ya19zdHJ1Y3QgdXNiX3Jlc2V0X3dvcms7XFxuIDI2NzpcXHRcXHRhdG9taWNfdCB1c2JfcmVzZXRfcGVuZGluZztcXG4gMjY4OlxcdFxcbiAyNjk6XFx0XFx0dTggZndfZGVidWc7XFxuIDI3MDpcXHRcXHR1OCBmd19mZWF0dXJlcztcXG4gMjcxOlxcdFxcbiAyNzI6XFx0XFx0c3RydWN0IG10NzZfY29ubmFjX3BtIHBtO1xcbiAyNzM6XFx0XFx0c3RydWN0IG10NzZfY29ubmFjX2NvcmVkdW1wIGNvcmVkdW1wO1xcbiAyNzQ6XFx0XFx0Y29uc3Qgc3RydWN0IG10NzkyeF9oaWZfb3BzICpoaWZfb3BzO1xcbiAyNzU6XFx0XFx0Y29uc3Qgc3RydWN0IG10NzkyeF9pcnFfbWFwICppcnFfbWFwO1xcbiAyNzY6XFx0XFxuIDI3NzpcXHRcXHRzdHJ1Y3Qgd29ya19zdHJ1Y3QgaXB2Nl9uc193b3JrO1xcbiAyNzg6XFx0XFx0c3RydWN0IGRlbGF5ZWRfd29yayBtbG9fcG1fd29yaztcXG4gMjc5OlxcdFxcdC8qIElQdjYgYWRkcmVzc2VzIGZvciBXb1dMQU4gKi9cXG4gMjgwOlxcdFxcdHN0cnVjdCBza19idWZmX2hlYWQgaXB2Nl9uc19saXN0O1xcbiAyODE6XFx0XFxuIDI4MjpcXHRcXHRlbnVtIGVudmlyb25tZW50X2NhcCBjb3VudHJ5X2llX2VudjtcXG4gMjgzOlxcdFxcdHUzMiBiYWNrdXBfbDE7XFxuIDI4NDpcXHRcXHR1MzIgYmFja3VwX2wyO1xcbiAyODU6XFx0XFxuIDI4NjpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHhfY29uZiAqbmV3X2N0eDtcXG4gMjg3OlxcdH07XFxuIDI4ODpcXHRcXG4gMjg5OlxcdHN0YXRpYyBpbmxpbmUgc3RydWN0IG10NzkyeF9ic3NfY29uZiAqXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDEwOjAyOjE2LjEyODU2NTAwMloiLCJTZXEiOjI5LCJOZXN0aW5nIjozLCJUeXBlIjoibGxtIiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NzAxMjE3NzYxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHByZXNlbnRlZCBhcyBhIGZpcnN0LXBlcnNvbiBleHBlcnQgc3VtbWFyeTpcblxuKipEaWdnaW5nIGludG8gdGhlIE1UNzkyeCBQSFkgU3RydWN0dXJlKipcblxuQWxyaWdodCwgbGV0J3Mgc2VlLi4uSSdtIGxvb2tpbmcgYXQgdGhpcyBNVDc5MnggZHJpdmVyLCBhbmQgSSBzZWUgdGhhdCB0aGlzIGBzdHJ1Y3QgbXQ3OTJ4X3BoeSBwaHk7YCBpcyBuZXN0ZWQgcmlnaHQgaW5zaWRlIGBzdHJ1Y3QgbXQ3OTJ4X2RldmAuIE1ha2VzIHBlcmZlY3Qgc2Vuc2U7IHRoZSBQSFkgaXMgY2xlYXJseSBhIGZ1bmRhbWVudGFsIGNvbXBvbmVudCBvZiB0aGUgZGV2aWNlLiBNeSBxdWVzdGlvbiBub3cgaXMsIGhvdyBpcyB0aGUgd2hvbGUgYHN0cnVjdCBtdDc5MnhfZGV2YCBhbGxvY2F0ZWQ/IElzIGl0IG9uIHRoZSBzdGFjaywgaW4ga2VybmVsIG1lbW9yeSB2aWEgYGttYWxsb2NgLCBvciBzb21ldGhpbmcgZWxzZSBlbnRpcmVseT8gS25vd2luZyB0aGUgYWxsb2NhdGlvbiBtZXRob2QgaXMgY3J1Y2lhbCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgbGlmZXRpbWUgbWFuYWdlbWVudCBvZiB0aGUgYHBoeWAgc3RydWN0dXJlIHdpdGhpbiBpdC4gQXJlIHdlIGRlYWxpbmcgd2l0aCBhIHNpbmdsZSwgc3RhdGljYWxseSBhbGxvY2F0ZWQgZGV2aWNlLCBvciBkbyB3ZSBoYXZlIHRoZSBhYmlsaXR5IHRvIGNyZWF0ZSBtdWx0aXBsZSBkZXZpY2VzIGR5bmFtaWNhbGx5PyBUaGUgY29udGV4dCB3aWxsIGJlIGltcG9ydGFudCBmb3IgdGhpbmdzIGxpa2UgcmVzb3VyY2UgbWFuYWdlbWVudCwgZHJpdmVyIGluaXRpYWxpemF0aW9uLCBhbmQgc2h1dGRvd24gc2VxdWVuY2VzLiBJIG5lZWQgdG8gdHJhY2UgYmFjayB0aHJvdWdoIHRoZSBjb2RlLCBwcm9iYWJseSBzdGFydGluZyB3aXRoIHRoZSBkZXZpY2UgcHJvYmUgZnVuY3Rpb24sIHRvIGZpZ3VyZSBvdXQgd2hlcmUgdGhhdCBgbXQ3OTJ4X2RldmAgZ2V0cyBpdHMgbWVtb3J5LiBUaGF0IHdpbGwgbGlrZWx5IHJldmVhbCB0aGUgYmlnZ2VyIHBpY3R1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyNDkyLCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDAsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMjoyMC44Mjk3OTA1MzNaIiwiU2VxIjozMCwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5MzcwNTU3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImFsbG9jLiptdDc5MnhfZGV2XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzZcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaD00NDU9dm9pZCBtdDc5MnhfZG1hX2NsZWFudXAoc3RydWN0IG10NzkyeF9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaDo0NDY6aW50IG10NzkyeF9kbWFfYWxsb2NfcXVldWVzKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaC00NDctXFx0XFx0XFx0ICAgIGNvbnN0IHN0cnVjdCBtdDc5MnhfZG1hX2xheW91dCAqbGF5b3V0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jPTg4PUVYUE9SVF9TWU1CT0xfR1BMKG10NzkyeF9yeF9wb2xsX2NvbXBsZXRlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYy04OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYzo5MDppbnQgbXQ3OTJ4X2RtYV9hbGxvY19xdWV1ZXMoc3RydWN0IG10NzkyeF9kZXYgKmRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYy05MS1cXHRcXHRcXHQgICAgY29uc3Qgc3RydWN0IG10NzkyeF9kbWFfbGF5b3V0ICpsYXlvdXQpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDEwOjAyOjIwLjg3OTE2NjA3OVoiLCJTZXEiOjMxLCJOZXN0aW5nIjozLCJUeXBlIjoibGxtIiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MzMzMTkxMzUyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqRGl2aW5nIGludG8gYG10NzZfYWxsb2NfZGV2aWNlYCoqXG5cbk9rYXksIHRpbWUgdG8gZGlzc2VjdCBgbXQ3Nl9hbGxvY19kZXZpY2VgLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBleGFjdGx5IGhvdyB0aGlzIGZ1bmN0aW9uIGhhbmRsZXMgdGhlIGluaXRpYWxpemF0aW9uIG9mIGFuIE1UNzYtYmFzZWQgZGV2aWNlLiBTcGVjaWZpY2FsbHksIEknbSBpbnRlcmVzdGVkIGluIHRoZSByZXNvdXJjZSBhbGxvY2F0aW9uIHN0cmF0ZWd5IGhlcmUuIEkgc3VzcGVjdCBpdCdzIHJlc3BvbnNpYmxlIGZvciBncmFiYmluZyB0aGUgUENJIHJlc291cmNlcywgbGlrZWx5IGluY2x1ZGluZyB0aGUgQkFScywgaW50ZXJydXB0IGxpbmVzLCBhbmQgRE1BIGJ1ZmZlcnMgaWYgYXBwbGljYWJsZS4gSXQncyBwcm9iYWJseSBzZXR0aW5nIHVwIHRoZSBpbml0aWFsIHN0cnVjdHVyZXMsIGxpa2UgdGhlIGBzdHJ1Y3QgbXQ3Nl9kZXZgIGl0c2VsZiwgYW5kIGFzc29jaWF0aW5nIGl0IHdpdGggdGhlIFBDSSBkZXZpY2UgaW5mb3JtYXRpb24uIEkgd2FudCB0byBwYXkgY2xvc2UgYXR0ZW50aW9uIHRvIGFueSBlcnJvciBoYW5kbGluZy4gRG9lcyBpdCBncmFjZWZ1bGx5IGhhbmRsZSByZXNvdXJjZSBjb25mbGljdHM/IFdoYXQgYWJvdXQgcHJvYmluZyBmb3IgdGhlIHJpZ2h0IGhhcmR3YXJlIElEPyBJIG5lZWQgdG8gYmUgc3VyZSB0aGUgZnVuY3Rpb24ncyBjaGVja3MgYXJlIHJvYnVzdCwgZXNwZWNpYWxseSB3aGVuIGRlYWxpbmcgd2l0aCBkaWZmZXJlbnQgaGFyZHdhcmUgcmV2aXNpb25zIG9yIHZlbmRvci1zcGVjaWZpYyBudWFuY2VzLiBBbmQsIEkgZXhwZWN0IHRoZXJlIHRvIGJlIGNhbGxzIHRvIGFsbG9jYXRlIHRoZSBmaXJtd2FyZSBidWZmZXJzIHRvIGxvYWQgdGhlIGZpcm13YXJlIGxhdGVyLiBMZXTigJlzIGNvbmZpcm0gYWxsIG9mIHRoZXNlIHN1c3BpY2lvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMTUxLCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjZUMTA6MDI6MjYuMjEyMzYyMDkxWiIsIlNlcSI6MzIsIk5lc3RpbmciOjMsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NTE2NTU2NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc2X2FsbG9jX2RldmljZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYz02Njc9c3RydWN0IG10NzZfZGV2ICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmM6NjY4Om10NzZfYWxsb2NfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKnBkZXYsIHVuc2lnbmVkIGludCBzaXplLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy02NjktXFx0XFx0ICBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyAqb3BzLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTc0My19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjc0NDpFWFBPUlRfU1lNQk9MX0dQTChtdDc2X2FsbG9jX2RldmljZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTc0NS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oPTEzMDE9X19tdDc2X3djaWRfcHRyKHN0cnVjdCBtdDc2X2RldiAqZGV2LCB1MTYgaWR4KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTMwOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxMzEwOnN0cnVjdCBtdDc2X2RldiAqbXQ3Nl9hbGxvY19kZXZpY2Uoc3RydWN0IGRldmljZSAqcGRldiwgdW5zaWduZWQgaW50IHNpemUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTMxMS1cXHRcXHRcXHRcXHQgICBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyAqb3BzLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvcGNpLmM9MTU9bXQ3NnBjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvcGNpLmMtMzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvcGNpLmM6MzU6XFx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgXFx1MDAyNm10NzYwM19vcHMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvcGNpLmMtMzYtXFx0XFx0XFx0XFx0IFxcdTAwMjZtdDc2MDNfZHJ2X29wcyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9zb2MuYz0xMD1tdDc2X3dtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL3NvYy5jLTI1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL3NvYy5jOjI2OlxcdG1kZXYgPSBtdDc2X2FsbG9jX2RldmljZShcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBzaXplb2YoKmRldiksIFxcdTAwMjZtdDc2MDNfb3BzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL3NvYy5jLTI3LVxcdFxcdFxcdFxcdCBcXHUwMDI2bXQ3NjAzX2Rydl9vcHMpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbW1pby5jPTE2Nj1pbnQgbXQ3NjE1X21taW9fcHJvYmUoc3RydWN0IGRldmljZSAqcGRldiwgdm9pZCBfX2lvbWVtICptZW1fYmFzZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21taW8uYy0xOTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbW1pby5jOjE5NzpcXHRtZGV2ID0gbXQ3Nl9hbGxvY19kZXZpY2UocGRldiwgc2l6ZW9mKCpkZXYpLCBvcHMsIFxcdTAwMjZkcnZfb3BzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tbWlvLmMtMTk4LVxcdGlmICghbWRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYz03Nj1zdGF0aWMgaW50IG10NzY2M3NfcHJvYmUoc3RydWN0IHNkaW9fZnVuYyAqZnVuYyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYy0xMTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jOjExMjpcXHRtZGV2ID0gbXQ3Nl9hbGxvY19kZXZpY2UoXFx1MDAyNmZ1bmMtXFx1MDAzZWRldiwgc2l6ZW9mKCpkZXYpLCBvcHMsIFxcdTAwMjZkcnZfb3BzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvLmMtMTEzLVxcdGlmICghbWRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jPTExMj1zdGF0aWMgaW50IG10NzY2M3VfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMTQ4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jOjE0OTpcXHRtZGV2ID0gbXQ3Nl9hbGxvY19kZXZpY2UoXFx1MDAyNnVzYl9pbnRmLVxcdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgb3BzLCBcXHUwMDI2ZHJ2X29wcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMTUwLVxcdGlmICghbWRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jPTE1ND1tdDc2eDBlX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYy0xOTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmM6MTkyOlxcdG1kZXYgPSBtdDc2X2FsbG9jX2RldmljZShcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBzaXplb2YoKmRldiksIFxcdTAwMjZtdDc2eDBlX29wcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYy0xOTMtXFx0XFx0XFx0XFx0IFxcdTAwMjZkcnZfb3BzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jPTIxMz1zdGF0aWMgaW50IG10NzZ4MHVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMjM1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jOjIzNjpcXHRtZGV2ID0gbXQ3Nl9hbGxvY19kZXZpY2UoXFx1MDAyNnVzYl9pbnRmLVxcdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgXFx1MDAyNm10NzZ4MHVfb3BzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTIzNy1cXHRcXHRcXHRcXHQgXFx1MDAyNmRydl9vcHMpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM9MjA9bXQ3NngyZV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtNTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM6NTY6XFx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgXFx1MDAyNm10NzZ4Ml9vcHMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtNTctXFx0XFx0XFx0XFx0IFxcdTAwMjZkcnZfb3BzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jPTMyPXN0YXRpYyBpbnQgbXQ3NngydV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jLTUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jOjU0OlxcdG1kZXYgPSBtdDc2X2FsbG9jX2RldmljZShcXHUwMDI2aW50Zi1cXHUwMDNlZGV2LCBzaXplb2YoKmRldiksIFxcdTAwMjZtdDc2eDJ1X29wcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYy01NS1cXHRcXHRcXHRcXHQgXFx1MDAyNmRydl9vcHMpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jPTkxNz1zdHJ1Y3QgbXQ3OTE1X2RldiAqbXQ3OTE1X21taW9fcHJvYmUoc3RydWN0IGRldmljZSAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy05NDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjk0NDpcXHRtZGV2ID0gbXQ3Nl9hbGxvY19kZXZpY2UocGRldiwgc2l6ZW9mKCpkZXYpLCBcXHUwMDI2bXQ3OTE1X29wcywgXFx1MDAyNmRydl9vcHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy05NDUtXFx0aWYgKCFtZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmM9MjU5PXN0YXRpYyBpbnQgbXQ3OTIxX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jLTMzOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2kuYzozMzk6XFx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgb3BzLCBcXHUwMDI2ZHJ2X29wcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmMtMzQwLVxcdGlmICghbWRldikge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jPTkwPXN0YXRpYyBpbnQgbXQ3OTIxc19wcm9iZShzdHJ1Y3Qgc2Rpb19mdW5jICpmdW5jLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jLTEzNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvLmM6MTM4OlxcdG1kZXYgPSBtdDc2X2FsbG9jX2RldmljZShcXHUwMDI2ZnVuYy1cXHUwMDNlZGV2LCBzaXplb2YoKmRldiksIG9wcywgXFx1MDAyNmRydl9vcHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3NkaW8uYy0xMzktXFx0aWYgKCFtZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmM9MTUwPXN0YXRpYyBpbnQgbXQ3OTIxdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqdXNiX2ludGYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYy0xOTctXFx0b3BzLVxcdTAwM2VzdG9wID0gbXQ3OTJ4dV9zdG9wO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jOjE5ODpcXHRtZGV2ID0gbXQ3Nl9hbGxvY19kZXZpY2UoXFx1MDAyNnVzYl9pbnRmLVxcdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgb3BzLCBcXHUwMDI2ZHJ2X29wcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmMtMTk5LVxcdGlmICghbWRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jPTMxMz1zdGF0aWMgaW50IG10NzkyNV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYy0zOTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmM6Mzk5OlxcdG1kZXYgPSBtdDc2X2FsbG9jX2RldmljZShcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBzaXplb2YoKmRldiksIG9wcywgXFx1MDAyNmRydl9vcHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jLTQwMC1cXHRpZiAoIW1kZXYpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jPTE0Mz1zdGF0aWMgaW50IG10NzkyNXVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmMtMTkwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jOjE5MTpcXHRtZGV2ID0gbXQ3Nl9hbGxvY19kZXZpY2UoXFx1MDAyNnVzYl9pbnRmLVxcdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgb3BzLCBcXHUwMDI2ZHJ2X29wcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmMtMTkyLVxcdGlmICghbWRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz04MTY9c3RydWN0IG10Nzk5Nl9kZXYgKm10Nzk5Nl9tbWlvX3Byb2JlKHN0cnVjdCBkZXZpY2UgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODQ1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4NDY6XFx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKHBkZXYsIHNpemVvZigqZGV2KSwgXFx1MDAyNm10Nzk5Nl9vcHMsIFxcdTAwMjZkcnZfb3BzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODQ3LVxcdGlmICghbWRldilcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjZUMTA6MDI6MjYuMjY3NTcxNDU3WiIsIlNlcSI6MzMsIk5lc3RpbmciOjMsIlR5cGUiOiJsbG0iLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU3Nzk5NDM2MzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyB0aG91Z2ggSSdtIHRoaW5raW5nIHRocm91Z2ggdGhpcyBwcm9jZXNzOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBNVDc2IERldmljZSBBbGxvY2F0aW9uKipcblxuT2theSwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgTVQ3NiBkcml2ZXIgaXMgYWxsb2NhdGluZyBpdHMgZGV2aWNlIHN0cnVjdHVyZS4gUmlnaHQsIGxldCdzIHN0YXJ0IHdpdGggYG10NzZfYWxsb2NfZGV2aWNlYC4gSSBrbm93IHRoYXQncyB0aGUgZnVuY3Rpb24gdGhhdCBraWNrcyBvZmYgdGhlIGRldmljZSdzIGFsbG9jYXRpb24sIHNvIHRoYXQncyB3aGVyZSBJIG5lZWQgdG8gYmUuIExldCBtZSBncmFiIHRoZSBzb3VyY2UgY29kZSBmb3IgdGhhdCBmdW5jdGlvbiwgd2hpY2ggSSBiZWxpZXZlIGlzIGhhbmdpbmcgb3V0IGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmNgLiBUaW1lIHRvIGRpZyBpbiBhbmQgc2VlIHdoYXQncyBoYXBwZW5pbmcgdW5kZXIgdGhlIGhvb2QuIEkgZXhwZWN0IHRvIHNlZSBtZW1vcnkgYWxsb2NhdGlvbiBhbmQgc29tZSBmdW5kYW1lbnRhbCBkZXZpY2UgaW5pdGlhbGl6YXRpb24uIExldCdzIHNlZSBpZiBteSBpbml0aWFsIGFzc3VtcHRpb25zIGhvbGQgdHJ1ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjY2NzYsIk91dHB1dFRva2VucyI6NDksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMjozMi4wNDc1MTc2NzdaIiwiU2VxIjozNCwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE5NDgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuY1wiLFxuICBcIkZpcnN0TGluZVwiOiA2NjcsXG4gIFwiTGluZUNvdW50XCI6IDUwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiA2Njc6XFx0c3RydWN0IG10NzZfZGV2ICpcXG4gNjY4OlxcdG10NzZfYWxsb2NfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKnBkZXYsIHVuc2lnbmVkIGludCBzaXplLFxcbiA2Njk6XFx0XFx0XFx0ICBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyAqb3BzLFxcbiA2NzA6XFx0XFx0XFx0ICBjb25zdCBzdHJ1Y3QgbXQ3Nl9kcml2ZXJfb3BzICpkcnZfb3BzKVxcbiA2NzE6XFx0e1xcbiA2NzI6XFx0XFx0c3RydWN0IGllZWU4MDIxMV9odyAqaHc7XFxuIDY3MzpcXHRcXHRzdHJ1Y3QgbXQ3Nl9waHkgKnBoeTtcXG4gNjc0OlxcdFxcdHN0cnVjdCBtdDc2X2RldiAqZGV2O1xcbiA2NzU6XFx0XFx0aW50IGk7XFxuIDY3NjpcXHRcXG4gNjc3OlxcdFxcdGh3ID0gaWVlZTgwMjExX2FsbG9jX2h3KHNpemUsIG9wcyk7XFxuIDY3ODpcXHRcXHRpZiAoIWh3KVxcbiA2Nzk6XFx0XFx0XFx0cmV0dXJuIE5VTEw7XFxuIDY4MDpcXHRcXG4gNjgxOlxcdFxcdGRldiA9IGh3LVxcdTAwM2Vwcml2O1xcbiA2ODI6XFx0XFx0ZGV2LVxcdTAwM2VodyA9IGh3O1xcbiA2ODM6XFx0XFx0ZGV2LVxcdTAwM2VkZXYgPSBwZGV2O1xcbiA2ODQ6XFx0XFx0ZGV2LVxcdTAwM2VkcnYgPSBkcnZfb3BzO1xcbiA2ODU6XFx0XFx0ZGV2LVxcdTAwM2VkbWFfZGV2ID0gcGRldjtcXG4gNjg2OlxcdFxcbiA2ODc6XFx0XFx0cGh5ID0gXFx1MDAyNmRldi1cXHUwMDNlcGh5O1xcbiA2ODg6XFx0XFx0cGh5LVxcdTAwM2VkZXYgPSBkZXY7XFxuIDY4OTpcXHRcXHRwaHktXFx1MDAzZWh3ID0gaHc7XFxuIDY5MDpcXHRcXHRwaHktXFx1MDAzZWJhbmRfaWR4ID0gTVRfQkFORDA7XFxuIDY5MTpcXHRcXHRkZXYtXFx1MDAzZXBoeXNbcGh5LVxcdTAwM2ViYW5kX2lkeF0gPSBwaHk7XFxuIDY5MjpcXHRcXG4gNjkzOlxcdFxcdHNwaW5fbG9ja19pbml0KFxcdTAwMjZkZXYtXFx1MDAzZXJ4X2xvY2spO1xcbiA2OTQ6XFx0XFx0c3Bpbl9sb2NrX2luaXQoXFx1MDAyNmRldi1cXHUwMDNlbG9jayk7XFxuIDY5NTpcXHRcXHRzcGluX2xvY2tfaW5pdChcXHUwMDI2ZGV2LVxcdTAwM2VjY19sb2NrKTtcXG4gNjk2OlxcdFxcdHNwaW5fbG9ja19pbml0KFxcdTAwMjZkZXYtXFx1MDAzZXN0YXR1c19sb2NrKTtcXG4gNjk3OlxcdFxcdHNwaW5fbG9ja19pbml0KFxcdTAwMjZkZXYtXFx1MDAzZXdlZF9sb2NrKTtcXG4gNjk4OlxcdFxcdG11dGV4X2luaXQoXFx1MDAyNmRldi1cXHUwMDNlbXV0ZXgpO1xcbiA2OTk6XFx0XFx0aW5pdF93YWl0cXVldWVfaGVhZChcXHUwMDI2ZGV2LVxcdTAwM2V0eF93YWl0KTtcXG4gNzAwOlxcdFxcbiA3MDE6XFx0XFx0c2tiX3F1ZXVlX2hlYWRfaW5pdChcXHUwMDI2ZGV2LVxcdTAwM2VtY3UucmVzX3EpO1xcbiA3MDI6XFx0XFx0aW5pdF93YWl0cXVldWVfaGVhZChcXHUwMDI2ZGV2LVxcdTAwM2VtY3Uud2FpdCk7XFxuIDcwMzpcXHRcXHRtdXRleF9pbml0KFxcdTAwMjZkZXYtXFx1MDAzZW1jdS5tdXRleCk7XFxuIDcwNDpcXHRcXHRkZXYtXFx1MDAzZXR4X3dvcmtlci5mbiA9IG10NzZfdHhfd29ya2VyO1xcbiA3MDU6XFx0XFxuIDcwNjpcXHRcXHRody1cXHUwMDNld2lwaHktXFx1MDAzZWZsYWdzIHw9IFdJUEhZX0ZMQUdfSUJTU19SU047XFxuIDcwNzpcXHRcXHRody1cXHUwMDNld2lwaHktXFx1MDAzZWludGVyZmFjZV9tb2RlcyA9XFxuIDcwODpcXHRcXHRcXHRCSVQoTkw4MDIxMV9JRlRZUEVfU1RBVElPTikgfFxcbiA3MDk6XFx0XFx0XFx0QklUKE5MODAyMTFfSUZUWVBFX0FQKSB8XFxuIDcxMDpcXHQjaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG4gNzExOlxcdFxcdFxcdEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKSB8XFxuIDcxMjpcXHQjZW5kaWZcXG4gNzEzOlxcdFxcdFxcdEJJVChOTDgwMjExX0lGVFlQRV9QMlBfQ0xJRU5UKSB8XFxuIDcxNDpcXHRcXHRcXHRCSVQoTkw4MDIxMV9JRlRZUEVfUDJQX0dPKSB8XFxuIDcxNTpcXHRcXHRcXHRCSVQoTkw4MDIxMV9JRlRZUEVfQURIT0MpO1xcbiA3MTY6XFx0XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDEwOjAyOjMyLjA0NzYzODUyN1oiLCJTZXEiOjM1LCJOZXN0aW5nIjozLCJUeXBlIjoibGxtIiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDQ2OTUzMTExLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6XG5cbioqQ2hlY2tpbmcgdGhlIE1lbW9yeSBBbGxvY2F0aW9uIFN0cmF0ZWd5IGluIElFRUUgODAyLjExIEhhcmR3YXJlIEluaXRpYWxpemF0aW9uKipcblxuT2theSwgc28gYGllZWU4MDIxMV9hbGxvY19od2AgaGFzIGJlZW4gY2FsbGVkLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGRpZyBpbnRvIHRoZSBtZW1vcnkgYWxsb2NhdGlvbiBzdHJhdGVneSBiZWluZyB1c2VkIHdpdGhpbiB0aGlzIGZ1bmN0aW9uLiBUaGUgY3JpdGljYWwgcXVlc3Rpb24sIG9mIGNvdXJzZSwgaXMgd2hldGhlciBpdCBsZXZlcmFnZXMgYGt6YWxsb2NgLiBUaGUgdXNlIG9mIGBremFsbG9jYCBpcyBzb21ldGhpbmcgSSBwYXkgY2xvc2UgYXR0ZW50aW9uIHRvLCBlc3BlY2lhbGx5IGluIGtlcm5lbCBjb250ZXh0cyBsaWtlIHRoaXMuIEl0J3MgYSBrZXkgaW5kaWNhdG9yIG9mIHdoZXRoZXIgdGhlIGFsbG9jYXRlZCBtZW1vcnkgaXMgYmVpbmcgemVyb2VkIG91dC4gVW5kZXJzdGFuZGluZyB0aGlzIGlzIGNydWNpYWwgZm9yIHNldmVyYWwgcmVhc29uczogaXQgaW1wYWN0cyBzZWN1cml0eSBieSBwb3RlbnRpYWxseSBtaXRpZ2F0aW5nIGluZm9ybWF0aW9uIGxlYWtzLCBpbmZsdWVuY2VzIHBlcmZvcm1hbmNlIGJ5IHJlbW92aW5nIHRoZSBuZWVkIGZvciBleHBsaWNpdCBpbml0aWFsaXphdGlvbiwgYW5kIGNhbiBhbHNvIGFmZmVjdCBkZWJ1Z2dpbmcgZWZmb3J0cyBpZiB1bmluaXRpYWxpemVkIG1lbW9yeSBpcyB1bmV4cGVjdGVkbHkgdXNlZCBkb3duIHRoZSBsaW5lLiBJJ2xsIG5lZWQgdG8gY29uZmlybSB0aGF0IGBremFsbG9jYCAob3Igc29tZXRoaW5nIGVxdWFsbHkgcmVsaWFibGUpIGlzLCBpbiBmYWN0LCBiZWluZyBlbXBsb3llZCBoZXJlIHRvIG1hbmFnZSBtZW1vcnkgd2l0aGluIHRoaXMgY3J1Y2lhbCBJRUVFIDgwMi4xMSBoYXJkd2FyZSBpbml0aWFsaXphdGlvbiByb3V0aW5lLiBJZiBub3QsIEknbGwgbmVlZCB0byB1bmRlcnN0YW5kIHdoeSwgYW5kIHdoYXQgYWx0ZXJuYXRpdmVzIGFyZSBpbiBwbGFjZS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjc3ODMsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDEwOjAyOjM2LjA5NDU5NDM2OFoiLCJTZXEiOjM2LCJOZXN0aW5nIjozLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDc1NTQ4NDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaWVlZTgwMjExX2FsbG9jX2h3XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tYWM4MDIxMVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWFjODAyMTEvbWFpbi5jPTc3Nz1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV92aHRfY2FwIG1hYzgwMjExX3ZodF9jYXBhX21vZF9tYXNrID0ge1xcbi0tXFxubmV0L21hYzgwMjExL21haW4uYy03OTQtXFxubmV0L21hYzgwMjExL21haW4uYzo3OTU6c3RydWN0IGllZWU4MDIxMV9odyAqaWVlZTgwMjExX2FsbG9jX2h3X25tKHNpemVfdCBwcml2X2RhdGFfbGVuLFxcbm5ldC9tYWM4MDIxMS9tYWluLmMtNzk2LVxcdFxcdFxcdFxcdFxcdCAgIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzICpvcHMsXFxuLS1cXG5uZXQvbWFjODAyMTEvbWFpbi5jLTEwNTEtfVxcbm5ldC9tYWM4MDIxMS9tYWluLmM6MTA1MjpFWFBPUlRfU1lNQk9MKGllZWU4MDIxMV9hbGxvY19od19ubSk7XFxubmV0L21hYzgwMjExL21haW4uYy0xMDUzLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMjozNi4xNDIxNTQzODVaIiwiU2VxIjozNywiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzUzNDkyOTAyOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzcywgYXMgaWYgaXQgd2VyZSBteSBvd246XG5cbioqRGl2aW5nIGludG8gdGhlIDgwMi4xMSBIYXJkd2FyZSBBbGxvY2F0aW9uKipcblxuT2theSwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkgd2l0aCBgbmV0L21hYzgwMjExL21haW4uY2AuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgaGFyZHdhcmUgaXMgYmVpbmcgYWxsb2NhdGVkIGZvciB0aGlzIDgwMi4xMSBpbXBsZW1lbnRhdGlvbi4gTGV0J3Mgc3RhcnQgYnkgZGlnZ2luZyBpbnRvIGBpZWVlODAyMTFfYWxsb2NfaHdfbm1gLiBUaGlzIGZ1bmN0aW9uIGlzIGxpa2VseSB0aGUgY29ybmVyc3RvbmUgb2YgaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24gYW5kIGFzc29jaWF0aW9uLiBJJ20gYXNzdW1pbmcgXCJubVwiIHN0YW5kcyBmb3Igc29tZXRoaW5nIHJlbGF0ZWQgdG8gdGhlIG5hbWluZyBvciBtYW5hZ2luZyBvZiB0aGUgbmV3IGhhcmR3YXJlIGludGVyZmFjZSBvciBuZXR3b3JrIG1hbmFnZXIuIFVuZGVyc3RhbmRpbmcgdGhpcyByb3V0aW5lIHdpbGwgbGlrZWx5IGlsbHVtaW5hdGUgdGhlIGluaXRpYWwgc2V0dXAgZmxvdy4gSXQncyB0aGUgc3RhcnRpbmcgcG9pbnQgZm9yIHJlYWxseSBkaWdnaW5nIGludG8gaG93IHRoZXkndmUgc3RydWN0dXJlZCBoYXJkd2FyZSBhY2Nlc3MgYW5kIGNvbnRyb2wgd2l0aGluIHRoZSBtYWM4MDIxMSBmcmFtZXdvcmsuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI4MzIyLCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjZUMTA6MDI6MzkuNjc3MDg2NjM0WiIsIlNlcSI6MzgsIk5lc3RpbmciOjMsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyNzg5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvbWFjODAyMTEvbWFpbi5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDc5NSxcbiAgXCJMaW5lQ291bnRcIjogNTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDc5NTpcXHRzdHJ1Y3QgaWVlZTgwMjExX2h3ICppZWVlODAyMTFfYWxsb2NfaHdfbm0oc2l6ZV90IHByaXZfZGF0YV9sZW4sXFxuIDc5NjpcXHRcXHRcXHRcXHRcXHRcXHQgICBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyAqb3BzLFxcbiA3OTc6XFx0XFx0XFx0XFx0XFx0XFx0ICAgY29uc3QgY2hhciAqcmVxdWVzdGVkX25hbWUpXFxuIDc5ODpcXHR7XFxuIDc5OTpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbDtcXG4gODAwOlxcdFxcdGludCBwcml2X3NpemUsIGk7XFxuIDgwMTpcXHRcXHRzdHJ1Y3Qgd2lwaHkgKndpcGh5O1xcbiA4MDI6XFx0XFx0Ym9vbCBlbXVsYXRlX2NoYW5jdHg7XFxuIDgwMzpcXHRcXG4gODA0OlxcdFxcdGlmIChXQVJOX09OKCFvcHMtXFx1MDAzZXR4IHx8ICFvcHMtXFx1MDAzZXN0YXJ0IHx8ICFvcHMtXFx1MDAzZXN0b3AgfHwgIW9wcy1cXHUwMDNlY29uZmlnIHx8XFxuIDgwNTpcXHRcXHRcXHQgICAgIW9wcy1cXHUwMDNlYWRkX2ludGVyZmFjZSB8fCAhb3BzLVxcdTAwM2VyZW1vdmVfaW50ZXJmYWNlIHx8XFxuIDgwNjpcXHRcXHRcXHQgICAgIW9wcy1cXHUwMDNlY29uZmlndXJlX2ZpbHRlciB8fCAhb3BzLVxcdTAwM2V3YWtlX3R4X3F1ZXVlKSlcXG4gODA3OlxcdFxcdFxcdHJldHVybiBOVUxMO1xcbiA4MDg6XFx0XFxuIDgwOTpcXHRcXHRpZiAoV0FSTl9PTihvcHMtXFx1MDAzZXN0YV9zdGF0ZSBcXHUwMDI2XFx1MDAyNiAob3BzLVxcdTAwM2VzdGFfYWRkIHx8IG9wcy1cXHUwMDNlc3RhX3JlbW92ZSkpKVxcbiA4MTA6XFx0XFx0XFx0cmV0dXJuIE5VTEw7XFxuIDgxMTpcXHRcXG4gODEyOlxcdFxcdGlmIChXQVJOX09OKCEhb3BzLVxcdTAwM2VsaW5rX2luZm9fY2hhbmdlZCAhPSAhIW9wcy1cXHUwMDNldmlmX2NmZ19jaGFuZ2VkIHx8XFxuIDgxMzpcXHRcXHRcXHQgICAgKG9wcy1cXHUwMDNlbGlua19pbmZvX2NoYW5nZWQgXFx1MDAyNlxcdTAwMjYgb3BzLVxcdTAwM2Vic3NfaW5mb19jaGFuZ2VkKSkpXFxuIDgxNDpcXHRcXHRcXHRyZXR1cm4gTlVMTDtcXG4gODE1OlxcdFxcbiA4MTY6XFx0XFx0LyogY2hlY2sgYWxsIG9yIG5vIGNoYW5uZWwgY29udGV4dCBvcGVyYXRpb25zIGV4aXN0ICovXFxuIDgxNzpcXHRcXHRpZiAob3BzLVxcdTAwM2VhZGRfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCBcXHUwMDI2XFx1MDAyNlxcbiA4MTg6XFx0XFx0ICAgIG9wcy1cXHUwMDNlcmVtb3ZlX2NoYW5jdHggPT0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHggXFx1MDAyNlxcdTAwMjZcXG4gODE5OlxcdFxcdCAgICBvcHMtXFx1MDAzZWNoYW5nZV9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4KSB7XFxuIDgyMDpcXHRcXHRcXHRpZiAoV0FSTl9PTihvcHMtXFx1MDAzZWFzc2lnbl92aWZfY2hhbmN0eCB8fFxcbiA4MjE6XFx0XFx0XFx0XFx0ICAgIG9wcy1cXHUwMDNldW5hc3NpZ25fdmlmX2NoYW5jdHgpKVxcbiA4MjI6XFx0XFx0XFx0XFx0cmV0dXJuIE5VTEw7XFxuIDgyMzpcXHRcXHRcXHRlbXVsYXRlX2NoYW5jdHggPSB0cnVlO1xcbiA4MjQ6XFx0XFx0fSBlbHNlIHtcXG4gODI1OlxcdFxcdFxcdGlmIChXQVJOX09OKG9wcy1cXHUwMDNlYWRkX2NoYW5jdHggPT0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHggfHxcXG4gODI2OlxcdFxcdFxcdFxcdCAgICBvcHMtXFx1MDAzZXJlbW92ZV9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4IHx8XFxuIDgyNzpcXHRcXHRcXHRcXHQgICAgb3BzLVxcdTAwM2VjaGFuZ2VfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCkpXFxuIDgyODpcXHRcXHRcXHRcXHRyZXR1cm4gTlVMTDtcXG4gODI5OlxcdFxcdFxcdGlmIChXQVJOX09OKCFvcHMtXFx1MDAzZWFkZF9jaGFuY3R4IHx8XFxuIDgzMDpcXHRcXHRcXHRcXHQgICAgIW9wcy1cXHUwMDNlcmVtb3ZlX2NoYW5jdHggfHxcXG4gODMxOlxcdFxcdFxcdFxcdCAgICAhb3BzLVxcdTAwM2VjaGFuZ2VfY2hhbmN0eCB8fFxcbiA4MzI6XFx0XFx0XFx0XFx0ICAgICFvcHMtXFx1MDAzZWFzc2lnbl92aWZfY2hhbmN0eCB8fFxcbiA4MzM6XFx0XFx0XFx0XFx0ICAgICFvcHMtXFx1MDAzZXVuYXNzaWduX3ZpZl9jaGFuY3R4KSlcXG4gODM0OlxcdFxcdFxcdFxcdHJldHVybiBOVUxMO1xcbiA4MzU6XFx0XFx0XFx0ZW11bGF0ZV9jaGFuY3R4ID0gZmFsc2U7XFxuIDgzNjpcXHRcXHR9XFxuIDgzNzpcXHRcXG4gODM4OlxcdFxcdC8qIEVuc3VyZSAzMi1ieXRlIGFsaWdubWVudCBvZiBvdXIgcHJpdmF0ZSBkYXRhIGFuZCBodyBwcml2YXRlIGRhdGEuXFxuIDgzOTpcXHRcXHQgKiBXZSB1c2UgdGhlIHdpcGh5IHByaXYgZGF0YSBmb3IgYm90aCBvdXIgaWVlZTgwMjExX2xvY2FsIGFuZCBmb3JcXG4gODQwOlxcdFxcdCAqIHRoZSBkcml2ZXIncyBwcml2YXRlIGRhdGFcXG4gODQxOlxcdFxcdCAqXFxuIDg0MjpcXHRcXHQgKiBJbiBtZW1vcnkgaXQnbGwgYmUgbGlrZSB0aGlzOlxcbiA4NDM6XFx0XFx0ICpcXG4gODQ0OlxcdFxcdCAqICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMjozOS42NzcyMTU3NDRaIiwiU2VxIjozOSwiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzg3NTY5Nzc4NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgYGllZWU4MDIxMV9hbGxvY19od19ubWAgZnVuY3Rpb24uIEknbSBhbHJlYWR5IHBpY3R1cmluZyB0aGUgbGlrZWx5IHNjZW5hcmlvcyBpdCBhZGRyZXNzZXMuIEtub3dpbmcgdGhlIG5hbWUsIEknbSBleHBlY3RpbmcgdGhpcyB0byBiZSB0aGUgY29yZSBhbGxvY2F0aW9uIGZ1bmN0aW9uIGZvciBhIG5ldyBoYXJkd2FyZSAoaHcpIG5ldHdvcmsgbWFuYWdlciAobm0pIHdpdGhpbiBhbiA4MDIuMTEgY29udGV4dC4gR2l2ZW4gbXkgZXhwZXJpZW5jZSwgSSBrbm93IHRoYXQgZnVuY3Rpb24gbmFtZXMgYXJlIGNyaXRpY2FsIGluIGNvbXBsZXggc3lzdGVtcywgYW5kIHRoaXMgaXMgcHJvYmFibHkgd2hlcmUgdGhlIGxvdy1sZXZlbCBkZXRhaWxzIG9mIGhhcmR3YXJlIGludGVncmF0aW9uIGJlZ2lucy4gSSdtIGtlZW4gdG8gc2VlIGlmIGl0J3MgYSByZWxhdGl2ZWx5IHN0cmFpZ2h0Zm9yd2FyZCBhbGxvY2F0aW9uLCBvciBpZiB0aGVyZSdzIGEgYnVuY2ggb2YgcHJlLWFsbG9jYXRpb24gY2hlY2tzIGFuZCBpbml0aWFsaXphdGlvbnMgSSBuZWVkIHRvIGNvbnNpZGVyLiBJJ20gZXNwZWNpYWxseSBpbnRlcmVzdGVkIGluIGhvdyBpdCBoYW5kbGVzIHBvdGVudGlhbCByZXNvdXJjZSBjb25zdHJhaW50cyBvciBlcnJvciBjb25kaXRpb25zLCB3aGljaCBpcyBlc3NlbnRpYWwgdG8gcm9idXN0IGNvZGUuIEknbSBhbHNvIGhvcGluZyBpdCBhZGhlcmVzIHRvIGFueSBleGlzdGluZyBmcmFtZXdvcmsgb3IgZHJpdmVyIGFyY2hpdGVjdHVyZSBzcGVjaWZpYyB0byB0aGUgT1Mgb3IgZW52aXJvbm1lbnQuIEknbSBlYWdlciB0byBnZXQgaW50byB0aGUgZGV0YWlscyB0byB1bmRlcnN0YW5kIHRoZSBhbGxvY2F0aW9uIHByb2Nlc3MgZnJvbSBzdGFydCB0byBmaW5pc2guXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI5NDk5LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjEsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMjo0My41NTI5MTYxN1oiLCJTZXEiOjQwLCJOZXN0aW5nIjozLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTE1MzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L21hYzgwMjExL21haW4uY1wiLFxuICBcIkZpcnN0TGluZVwiOiA4NDUsXG4gIFwiTGluZUNvdW50XCI6IDUwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiA4NDU6XFx0XFx0ICogfCBzdHJ1Y3Qgd2lwaHlcXHQgICAgfFxcbiA4NDY6XFx0XFx0ICogKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXFxuIDg0NzpcXHRcXHQgKiB8IHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgIHxcXG4gODQ4OlxcdFxcdCAqICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xcbiA4NDk6XFx0XFx0ICogfCBkcml2ZXIncyBwcml2YXRlIGRhdGEgICB8XFxuIDg1MDpcXHRcXHQgKiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcXG4gODUxOlxcdFxcdCAqXFxuIDg1MjpcXHRcXHQgKi9cXG4gODUzOlxcdFxcdHByaXZfc2l6ZSA9IEFMSUdOKHNpemVvZigqbG9jYWwpLCBORVRERVZfQUxJR04pICsgcHJpdl9kYXRhX2xlbjtcXG4gODU0OlxcdFxcbiA4NTU6XFx0XFx0d2lwaHkgPSB3aXBoeV9uZXdfbm0oXFx1MDAyNm1hYzgwMjExX2NvbmZpZ19vcHMsIHByaXZfc2l6ZSwgcmVxdWVzdGVkX25hbWUpO1xcbiA4NTY6XFx0XFxuIDg1NzpcXHRcXHRpZiAoIXdpcGh5KVxcbiA4NTg6XFx0XFx0XFx0cmV0dXJuIE5VTEw7XFxuIDg1OTpcXHRcXG4gODYwOlxcdFxcdHdpcGh5LVxcdTAwM2VtZ210X3N0eXBlcyA9IGllZWU4MDIxMV9kZWZhdWx0X21nbXRfc3R5cGVzO1xcbiA4NjE6XFx0XFxuIDg2MjpcXHRcXHR3aXBoeS1cXHUwMDNlcHJpdmlkID0gbWFjODAyMTFfd2lwaHlfcHJpdmlkO1xcbiA4NjM6XFx0XFxuIDg2NDpcXHRcXHR3aXBoeS1cXHUwMDNlZmxhZ3MgfD0gV0lQSFlfRkxBR19ORVROU19PSyB8XFxuIDg2NTpcXHRcXHRcXHRcXHRXSVBIWV9GTEFHXzRBRERSX0FQIHxcXG4gODY2OlxcdFxcdFxcdFxcdFdJUEhZX0ZMQUdfNEFERFJfU1RBVElPTiB8XFxuIDg2NzpcXHRcXHRcXHRcXHRXSVBIWV9GTEFHX1JFUE9SVFNfT0JTUyB8XFxuIDg2ODpcXHRcXHRcXHRcXHRXSVBIWV9GTEFHX09GRkNIQU5fVFg7XFxuIDg2OTpcXHRcXG4gODcwOlxcdFxcdGlmIChlbXVsYXRlX2NoYW5jdHggfHwgb3BzLVxcdTAwM2VyZW1haW5fb25fY2hhbm5lbClcXG4gODcxOlxcdFxcdFxcdHdpcGh5LVxcdTAwM2VmbGFncyB8PSBXSVBIWV9GTEFHX0hBU19SRU1BSU5fT05fQ0hBTk5FTDtcXG4gODcyOlxcdFxcbiA4NzM6XFx0XFx0d2lwaHktXFx1MDAzZWJzc19wYXJhbV9zdXBwb3J0ID0gV0lQSFlfQlNTX1BBUkFNX0NUU19QUk9UIHxcXG4gODc0OlxcdFxcdFxcdFxcdFxcdCAgIFdJUEhZX0JTU19QQVJBTV9TSE9SVF9QUkVBTUJMRSB8XFxuIDg3NTpcXHRcXHRcXHRcXHRcXHQgICBXSVBIWV9CU1NfUEFSQU1fU0hPUlRfU0xPVF9USU1FIHxcXG4gODc2OlxcdFxcdFxcdFxcdFxcdCAgIFdJUEhZX0JTU19QQVJBTV9CQVNJQ19SQVRFUyB8XFxuIDg3NzpcXHRcXHRcXHRcXHRcXHQgICBXSVBIWV9CU1NfUEFSQU1fQVBfSVNPTEFURSB8XFxuIDg3ODpcXHRcXHRcXHRcXHRcXHQgICBXSVBIWV9CU1NfUEFSQU1fSFRfT1BNT0RFIHxcXG4gODc5OlxcdFxcdFxcdFxcdFxcdCAgIFdJUEhZX0JTU19QQVJBTV9QMlBfQ1RXSU5ET1cgfFxcbiA4ODA6XFx0XFx0XFx0XFx0XFx0ICAgV0lQSFlfQlNTX1BBUkFNX1AyUF9PUFBQUztcXG4gODgxOlxcdFxcdHdpcGh5LVxcdTAwM2VmZWF0dXJlcyB8PSBOTDgwMjExX0ZFQVRVUkVfU0tfVFhfU1RBVFVTIHxcXG4gODgyOlxcdFxcdFxcdFxcdCAgIE5MODAyMTFfRkVBVFVSRV9TQUUgfFxcbiA4ODM6XFx0XFx0XFx0XFx0ICAgTkw4MDIxMV9GRUFUVVJFX0hUX0lCU1MgfFxcbiA4ODQ6XFx0XFx0XFx0XFx0ICAgTkw4MDIxMV9GRUFUVVJFX1ZJRl9UWFBPV0VSIHxcXG4gODg1OlxcdFxcdFxcdFxcdCAgIE5MODAyMTFfRkVBVFVSRV9NQUNfT05fQ1JFQVRFIHxcXG4gODg2OlxcdFxcdFxcdFxcdCAgIE5MODAyMTFfRkVBVFVSRV9VU0VSU1BBQ0VfTVBNIHxcXG4gODg3OlxcdFxcdFxcdFxcdCAgIE5MODAyMTFfRkVBVFVSRV9GVUxMX0FQX0NMSUVOVF9TVEFURTtcXG4gODg4OlxcdFxcdHdpcGh5X2V4dF9mZWF0dXJlX3NldCh3aXBoeSwgTkw4MDIxMV9FWFRfRkVBVFVSRV9GSUxTX1NUQSk7XFxuIDg4OTpcXHRcXHR3aXBoeV9leHRfZmVhdHVyZV9zZXQod2lwaHksXFxuIDg5MDpcXHRcXHRcXHRcXHQgICAgICBOTDgwMjExX0VYVF9GRUFUVVJFX0NPTlRST0xfUE9SVF9PVkVSX05MODAyMTEpO1xcbiA4OTE6XFx0XFx0d2lwaHlfZXh0X2ZlYXR1cmVfc2V0KHdpcGh5LFxcbiA4OTI6XFx0XFx0XFx0XFx0ICAgICAgTkw4MDIxMV9FWFRfRkVBVFVSRV9DT05UUk9MX1BPUlRfTk9fUFJFQVVUSCk7XFxuIDg5MzpcXHRcXHR3aXBoeV9leHRfZmVhdHVyZV9zZXQod2lwaHksXFxuIDg5NDpcXHRcXHRcXHRcXHQgICAgICBOTDgwMjExX0VYVF9GRUFUVVJFX0NPTlRST0xfUE9SVF9PVkVSX05MODAyMTFfVFhfU1RBVFVTKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjZUMTA6MDI6NDMuNTUzMDI4NzZaIiwiU2VxIjo0MSwiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA2NzA1MDkwNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHN1bW1hcnksIGFzIGlmIEkgd2VyZSB0aGlua2luZyBpdDpcblxuKipEaWdnaW5nIGludG8gdGhlIFdpcmVsZXNzIFBoeSBBbGxvY2F0aW9uKipcblxuT2theSwgc28gSSdtIHNlZWluZyBgd2lwaHlfbmV3X25tYCBiZWluZyBjYWxsZWQgaGVyZS4gUmlnaHQsIHRoYXQncyB0aGUgb25lIHRoYXQncyByZXNwb25zaWJsZSBmb3IgYWxsb2NhdGluZyBhIGB3aXBoeWAgc3RydWN0dXJlLiBUaW1lIHRvIGRpdmUgaW50byB0aGUgY29yZSBpbXBsZW1lbnRhdGlvbi4gTGV0J3MgaGVhZCBvdmVyIHRvIGBuZXQvd2lyZWxlc3MvY29yZS5jYCBhbmQgdGFrZSBhIGxvb2sgYXQgaG93IGB3aXBoeV9uZXdfbm1gIGlzIGFjdHVhbGx5IGhhbmRsaW5nIHRoZSBtZW1vcnkgYWxsb2NhdGlvbiBhbmQgaW5pdGlhbGl6YXRpb24uIE5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcGFydGljdWxhcnMgb2YgdGhpcyBmdW5jdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzA3NjEsIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDEwOjAyOjQ2LjYyMDA4MjUxN1oiLCJTZXEiOjQyLCJOZXN0aW5nIjozLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDU5MTc5ODcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwid2lwaHlfbmV3X25tXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC93aXJlbGVzc1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvd2lyZWxlc3MvY29yZS5jPTUxNT1zdGF0aWMgdm9pZCBjZmc4MDIxMV93aXBoeV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbm5ldC93aXJlbGVzcy9jb3JlLmMtNTQ1LVxcbm5ldC93aXJlbGVzcy9jb3JlLmM6NTQ2OnN0cnVjdCB3aXBoeSAqd2lwaHlfbmV3X25tKGNvbnN0IHN0cnVjdCBjZmc4MDIxMV9vcHMgKm9wcywgaW50IHNpemVvZl9wcml2LFxcbm5ldC93aXJlbGVzcy9jb3JlLmMtNTQ3LVxcdFxcdFxcdCAgIGNvbnN0IGNoYXIgKnJlcXVlc3RlZF9uYW1lKVxcbi0tXFxubmV0L3dpcmVsZXNzL2NvcmUuYy02OTktfVxcbm5ldC93aXJlbGVzcy9jb3JlLmM6NzAwOkVYUE9SVF9TWU1CT0wod2lwaHlfbmV3X25tKTtcXG5uZXQvd2lyZWxlc3MvY29yZS5jLTcwMS1cXG4tLVxcbm5ldC93aXJlbGVzcy90ZXN0cy91dGlsLmM9MTM9aW50IHRfd2lwaHlfaW5pdChzdHJ1Y3Qga3VuaXRfcmVzb3VyY2UgKnJlc291cmNlLCB2b2lkICpjdHgpXFxuLS1cXG5uZXQvd2lyZWxlc3MvdGVzdHMvdXRpbC5jLTIyLVxcbm5ldC93aXJlbGVzcy90ZXN0cy91dGlsLmM6MjM6XFx0d2lwaHkgPSB3aXBoeV9uZXdfbm0ob3BzLCBzaXplb2YoKnByaXYpLCBcXFwia3VuaXRcXFwiKTtcXG5uZXQvd2lyZWxlc3MvdGVzdHMvdXRpbC5jLTI0LVxcdEtVTklUX0FTU0VSVF9OT1RfTlVMTCh0ZXN0LCB3aXBoeSk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDEwOjAyOjQ2LjY2NjAxMDMxNFoiLCJTZXEiOjQzLCJOZXN0aW5nIjozLCJUeXBlIjoibGxtIiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozODk0NDM3MjA5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOlxuXG4qKkRpdmluZyBpbnRvIGB3aXBoeV9uZXdfbm1gKipcblxuT2theSwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgc29tZXRoaW5nIHJlbGF0ZWQgdG8gV2ktRmkgZHJpdmVyIGluaXRpYWxpemF0aW9uLCBhbmQgbXkgaW5zdGluY3RzIGFyZSB0ZWxsaW5nIG1lIHRvIGxvb2sgYXQgYHdpcGh5X25ld19ubWAgaW4gYG5ldC93aXJlbGVzcy9jb3JlLmNgLiBUaGF0IGZ1bmN0aW9uIG5hbWUgaXRzZWxmIGlzIGEgcHJldHR5IGJpZyBjbHVlLiBUaGUgXCJ3aXBoeVwiIHBhcnQgaW1tZWRpYXRlbHkgZmxhZ3MgdGhpcyBhcyBiZWluZyBhYm91dCB0aGUgd2lyZWxlc3MgcGh5c2ljYWwgZGV2aWNlIGFic3RyYWN0aW9uIGxheWVyLCB0aGUgY29yZSBvZiB0aGUgd2lyZWxlc3MgbmV0d29ya2luZyBzdGFjay4gVGhlIFwibmV3XCIgc3Ryb25nbHkgc3VnZ2VzdHMgaXQncyBpbnZvbHZlZCBpbiBjcmVhdGluZyBvciBzZXR0aW5nIHVwIGEgbmV3IFdpLUZpIHBoeXNpY2FsIGRldmljZS4gQW5kIFwibm1cIiBwcm9iYWJseSBzdGFuZHMgZm9yIFwibmV0IGRldmljZSBtYW5hZ2VyXCIgb3Igc29tZXRoaW5nIHNpbWlsYXIsIGltcGx5aW5nIHNvbWUgaW50ZXJhY3Rpb24gd2l0aCB0aGUgb3ZlcmFsbCBuZXR3b3JrIGRldmljZSBpbmZyYXN0cnVjdHVyZS4gXG5cbkdpdmVuIG15IGV4cGVydGlzZSwgSSBzdXNwZWN0IHRoaXMgZnVuY3Rpb24gbGlrZWx5IGhhbmRsZXMgdGhlIGxvdy1sZXZlbCBhc3BlY3RzIG9mIGFsbG9jYXRpbmcgYW5kIGluaXRpYWxpemluZyB0aGUgd2lwaHkgc3RydWN0dXJlLCBwZXJoYXBzIHNldHRpbmcgdXAgaXRzIGNhcGFiaWxpdGllcywgcmVnaXN0ZXJpbmcgaXQgd2l0aCB0aGUgc3lzdGVtLCBhbmQgdHlpbmcgaXQgdG8gYSBuZXR3b3JrIGRldmljZS4gSSdtIGd1ZXNzaW5nIGl0IG1pZ2h0IGFsc28gZGVhbCB3aXRoIHRoaW5ncyBsaWtlIGFsbG9jYXRpbmcgbWVtb3J5IGZvciB0aGUgZGV2aWNlJ3MgY29udHJvbCBzdHJ1Y3R1cmVzLiBJdCdzIHRoZSBraW5kIG9mIGZ1bmN0aW9uIHRoYXQgd291bGQgYmUgY3J1Y2lhbCBmb3IgYSBkcml2ZXIgdG8gd29yayB3aXRoIHRoZSBjb3JlIFdpLUZpIHN0YWNrIGluIHRoZSBMaW51eCBrZXJuZWwuIExldCdzIHNlZSBpZiB0aGlzIGh1bmNoIGlzIGNvcnJlY3QsIG9yIGlmIHRoaXMgZnVuY3Rpb24ncyBwdXJwb3NlIGhhcyBhIG51YW5jZSB0aGF0IGVzY2FwZXMgbXkgdW5kZXJzdGFuZGluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzEyNDIsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMjo1MC41NjA0NTA4NDNaIiwiU2VxIjo0NCwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE3MDgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIm5ldC93aXJlbGVzcy9jb3JlLmNcIixcbiAgXCJGaXJzdExpbmVcIjogNTQ2LFxuICBcIkxpbmVDb3VudFwiOiA1MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgNTQ2OlxcdHN0cnVjdCB3aXBoeSAqd2lwaHlfbmV3X25tKGNvbnN0IHN0cnVjdCBjZmc4MDIxMV9vcHMgKm9wcywgaW50IHNpemVvZl9wcml2LFxcbiA1NDc6XFx0XFx0XFx0XFx0ICAgY29uc3QgY2hhciAqcmVxdWVzdGVkX25hbWUpXFxuIDU0ODpcXHR7XFxuIDU0OTpcXHRcXHRzdGF0aWMgYXRvbWljX3Qgd2lwaHlfY291bnRlciA9IEFUT01JQ19JTklUKDApO1xcbiA1NTA6XFx0XFxuIDU1MTpcXHRcXHRzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXY7XFxuIDU1MjpcXHRcXHRpbnQgYWxsb2Nfc2l6ZTtcXG4gNTUzOlxcdFxcbiA1NTQ6XFx0XFx0V0FSTl9PTihvcHMtXFx1MDAzZWFkZF9rZXkgXFx1MDAyNlxcdTAwMjYgKCFvcHMtXFx1MDAzZWRlbF9rZXkgfHwgIW9wcy1cXHUwMDNlc2V0X2RlZmF1bHRfa2V5KSk7XFxuIDU1NTpcXHRcXHRXQVJOX09OKG9wcy1cXHUwMDNlYXV0aCBcXHUwMDI2XFx1MDAyNiAoIW9wcy1cXHUwMDNlYXNzb2MgfHwgIW9wcy1cXHUwMDNlZGVhdXRoIHx8ICFvcHMtXFx1MDAzZWRpc2Fzc29jKSk7XFxuIDU1NjpcXHRcXHRXQVJOX09OKG9wcy1cXHUwMDNlY29ubmVjdCBcXHUwMDI2XFx1MDAyNiAhb3BzLVxcdTAwM2VkaXNjb25uZWN0KTtcXG4gNTU3OlxcdFxcdFdBUk5fT04ob3BzLVxcdTAwM2Vqb2luX2lic3MgXFx1MDAyNlxcdTAwMjYgIW9wcy1cXHUwMDNlbGVhdmVfaWJzcyk7XFxuIDU1ODpcXHRcXHRXQVJOX09OKG9wcy1cXHUwMDNlYWRkX3ZpcnR1YWxfaW50ZiBcXHUwMDI2XFx1MDAyNiAhb3BzLVxcdTAwM2VkZWxfdmlydHVhbF9pbnRmKTtcXG4gNTU5OlxcdFxcdFdBUk5fT04ob3BzLVxcdTAwM2VhZGRfc3RhdGlvbiBcXHUwMDI2XFx1MDAyNiAhb3BzLVxcdTAwM2VkZWxfc3RhdGlvbik7XFxuIDU2MDpcXHRcXHRXQVJOX09OKG9wcy1cXHUwMDNlYWRkX21wYXRoIFxcdTAwMjZcXHUwMDI2ICFvcHMtXFx1MDAzZWRlbF9tcGF0aCk7XFxuIDU2MTpcXHRcXHRXQVJOX09OKG9wcy1cXHUwMDNlam9pbl9tZXNoIFxcdTAwMjZcXHUwMDI2ICFvcHMtXFx1MDAzZWxlYXZlX21lc2gpO1xcbiA1NjI6XFx0XFx0V0FSTl9PTihvcHMtXFx1MDAzZXN0YXJ0X3AycF9kZXZpY2UgXFx1MDAyNlxcdTAwMjYgIW9wcy1cXHUwMDNlc3RvcF9wMnBfZGV2aWNlKTtcXG4gNTYzOlxcdFxcdFdBUk5fT04ob3BzLVxcdTAwM2VzdGFydF9hcCBcXHUwMDI2XFx1MDAyNiAhb3BzLVxcdTAwM2VzdG9wX2FwKTtcXG4gNTY0OlxcdFxcdFdBUk5fT04ob3BzLVxcdTAwM2Vqb2luX29jYiBcXHUwMDI2XFx1MDAyNiAhb3BzLVxcdTAwM2VsZWF2ZV9vY2IpO1xcbiA1NjU6XFx0XFx0V0FSTl9PTihvcHMtXFx1MDAzZXN1c3BlbmQgXFx1MDAyNlxcdTAwMjYgIW9wcy1cXHUwMDNlcmVzdW1lKTtcXG4gNTY2OlxcdFxcdFdBUk5fT04ob3BzLVxcdTAwM2VzY2hlZF9zY2FuX3N0YXJ0IFxcdTAwMjZcXHUwMDI2ICFvcHMtXFx1MDAzZXNjaGVkX3NjYW5fc3RvcCk7XFxuIDU2NzpcXHRcXHRXQVJOX09OKG9wcy1cXHUwMDNlcmVtYWluX29uX2NoYW5uZWwgXFx1MDAyNlxcdTAwMjYgIW9wcy1cXHUwMDNlY2FuY2VsX3JlbWFpbl9vbl9jaGFubmVsKTtcXG4gNTY4OlxcdFxcdFdBUk5fT04ob3BzLVxcdTAwM2V0ZGxzX2NoYW5uZWxfc3dpdGNoIFxcdTAwMjZcXHUwMDI2ICFvcHMtXFx1MDAzZXRkbHNfY2FuY2VsX2NoYW5uZWxfc3dpdGNoKTtcXG4gNTY5OlxcdFxcdFdBUk5fT04ob3BzLVxcdTAwM2VhZGRfdHhfdHMgXFx1MDAyNlxcdTAwMjYgIW9wcy1cXHUwMDNlZGVsX3R4X3RzKTtcXG4gNTcwOlxcdFxcbiA1NzE6XFx0XFx0YWxsb2Nfc2l6ZSA9IHNpemVvZigqcmRldikgKyBzaXplb2ZfcHJpdjtcXG4gNTcyOlxcdFxcbiA1NzM6XFx0XFx0cmRldiA9IGt6YWxsb2MoYWxsb2Nfc2l6ZSwgR0ZQX0tFUk5FTCk7XFxuIDU3NDpcXHRcXHRpZiAoIXJkZXYpXFxuIDU3NTpcXHRcXHRcXHRyZXR1cm4gTlVMTDtcXG4gNTc2OlxcdFxcbiA1Nzc6XFx0XFx0cmRldi1cXHUwMDNlb3BzID0gb3BzO1xcbiA1Nzg6XFx0XFxuIDU3OTpcXHRcXHRyZGV2LVxcdTAwM2V3aXBoeV9pZHggPSBhdG9taWNfaW5jX3JldHVybihcXHUwMDI2d2lwaHlfY291bnRlcik7XFxuIDU4MDpcXHRcXG4gNTgxOlxcdFxcdGlmICh1bmxpa2VseShyZGV2LVxcdTAwM2V3aXBoeV9pZHggXFx1MDAzYyAwKSkge1xcbiA1ODI6XFx0XFx0XFx0LyogdWdoLCB3cmFwcGVkISAqL1xcbiA1ODM6XFx0XFx0XFx0YXRvbWljX2RlYyhcXHUwMDI2d2lwaHlfY291bnRlcik7XFxuIDU4NDpcXHRcXHRcXHRrZnJlZShyZGV2KTtcXG4gNTg1OlxcdFxcdFxcdHJldHVybiBOVUxMO1xcbiA1ODY6XFx0XFx0fVxcbiA1ODc6XFx0XFxuIDU4ODpcXHRcXHQvKiBhdG9taWNfaW5jX3JldHVybiBtYWtlcyBpdCBzdGFydCBhdCAxLCBtYWtlIGl0IHN0YXJ0IGF0IDAgKi9cXG4gNTg5OlxcdFxcdHJkZXYtXFx1MDAzZXdpcGh5X2lkeC0tO1xcbiA1OTA6XFx0XFxuIDU5MTpcXHRcXHQvKiBnaXZlIGl0IGEgcHJvcGVyIG5hbWUgKi9cXG4gNTkyOlxcdFxcdGlmIChyZXF1ZXN0ZWRfbmFtZSBcXHUwMDI2XFx1MDAyNiByZXF1ZXN0ZWRfbmFtZVswXSkge1xcbiA1OTM6XFx0XFx0XFx0aW50IHJ2O1xcbiA1OTQ6XFx0XFxuIDU5NTpcXHRcXHRcXHRydG5sX2xvY2soKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjZUMTA6MDI6NTAuNTYwNTY5MzQzWiIsIlNlcSI6NDUsIk5lc3RpbmciOjMsIlR5cGUiOiJsbG0iLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2MzIxNTIxNzU0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5c2lzIG9mIHRoZSBSWCBGaWx0ZXIgRmxhZyBQZXJzaXN0ZW5jZSBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcywgdGhpcyBpcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLiBUaGUgY3JpdGljYWwgcGFydCBpcyB1bmRlcnN0YW5kaW5nIGhvdyBgcGh5LVx1MDAzZXJ4ZmlsdGVyYCBpcyB1c2VkLiBXZSBzdGFydCB3aXRoIGBremFsbG9jYCBpbml0aWFsaXppbmcgdGhlIGBtdDc5MnhfZGV2YCBzdHJ1Y3R1cmUsIHdoaWNoIGluY2x1ZGVzIHRoZSBgbXQ3OTJ4X3BoeWAgc3RydWN0LiBUaGlzIG1lYW5zIGBwaHktXHUwMDNlcnhmaWx0ZXJgIGlzIGluaXRpYWxseSB6ZXJvLlxuXG5UaGVuLCBgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXJgIGlzIGNhbGxlZC4gIFRoaXMgZnVuY3Rpb24gc2V0cyBgcGh5LVx1MDAzZXJ4ZmlsdGVyYCB0byB0aGUgYGZsYWdzYCB2YWx1ZS4gIFNvIGZhciwgc28gZ29vZDogaW5pdGlhbGl6YXRpb24gYW5kIGFzc2lnbm1lbnQgYXJlIGNsZWFyLlxuXG5MYXRlciwgaW4gYG10NzkyNV9tY3VfY29uZmlnX3NuaWZmZXJgLCB0aGUgdmFsdWUgb2YgYHBoeS1cdTAwM2VyeGZpbHRlcmAgaXMgcmVhZC4gQ3JpdGljYWxseSwgaXQncyB1c2VkIHRvIGNvbmRpdGlvbmFsbHkgc2V0IHRoZSBgZHJvcF9lcnJgIGZsYWcgaW4gYSBjb25maWd1cmF0aW9uIHJlcXVlc3QuICBUaGUgbG9naWMgaXMgc291bmQ6IHdlJ3JlIHN0b3JpbmcgdGhlIFJYIGZpbHRlciBmbGFncyBhbmQgcmV1c2luZyB0aGVtIHRvIGRldGVybWluZSB3aGV0aGVyIHRvIGRyb3AgZnJhbWVzIHdpdGggRkNTIGVycm9ycy5cblxuTXkgaW1tZWRpYXRlIHF1ZXN0aW9uOiBJcyB0aGVyZSBhbnkgcG90ZW50aWFsIGZvciBhbiB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkPyBOby4gYHBoeS1cdTAwM2VyeGZpbHRlcmAgaXMgaW5pdGlhbGl6ZWQgdG8gemVybyBkdXJpbmcgdGhlIGRldmljZSBzdHJ1Y3R1cmUgYWxsb2NhdGlvbiB2aWEgYGt6YWxsb2NgLiBUaGUgdmFsdWUgaXMgKm92ZXJ3cml0dGVuKiBpbiBgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXJgLCBhbmQgdGhlbiAqcmVhZCogYWZ0ZXJ3YXJkcy4gV2UncmUgbm90IHJlYWRpbmcgdW5pdGlhbGl6ZWQgbWVtb3J5LCBhbmQgdGhlcmUncyBubyBkYXRhIGJlaW5nIGxlYWtlZCB0byB1c2VyIHNwYWNlLCByaWdodD8gVGhlIGtleSBpcyB0byBjb25maXJtIHRoYXQgYHBoeWAgaXMgYWx3YXlzIHBhcnQgb2YgYGRldmAgYW5kIHRoYXQgdGhlIGxpZmV0aW1lIG9mIHRoZSBwb2ludGVyIGlzIHdlbGwgbWFuYWdlZC5cblxuTGV0J3MgZG8gYSBxdWljayBkb3VibGUtY2hlY2sgb2YgdGhlIHBhdGNoIGZvciBvdGhlciBzdWJ0bGUgY2hhbmdlcywganVzdCB0byBiZSB0aG9yb3VnaC4uLiBZZXAsIEkgc2VlIGl0IGRlZmluZXMgdGhlIG5ldyBgTVQ3OTI1X0ZJTFRFUl8qYCBtYWNyb3MuIEZpbmUuXG5cbk15IGZpbmFsIGNvbmNsdXNpb24gaXMgdGhhdCB0aGlzIGxvb2tzIGxpa2UgYSBwdXJlbHkgbG9naWNhbCBjaGFuZ2UsIG5vIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGlzc3VlcyB0aGF0IEtNU0FOIHdvdWxkIGhpZ2hsaWdodC4gTm8gZGF0YSBsZWFrcywgYW5kIG5vIG5vdmVsIGFsbG9jYXRpb25zIG9yIHBvaW50ZXIgbWFuYWdlbWVudCB0aGF0IHdvdWxkIHJlcXVpcmUgZXh0cmEgc2NydXRpbnkuICBTdGFuZGFyZCBrZXJuZWwgc2FuaXRpemVycyBzaG91bGQgY2F0Y2ggYW55IHJlbGF0ZWQgYnVncy4gU28sIEknZCBzYXkgdGhhdCBgTmVlZHNLTVNBTmAgaXMgYGZhbHNlYCBoZXJlLiBUaGUgcGF0Y2ggc2ltcGx5IHBlcnNpc3RzIHRoZSBSWCBmaWx0ZXIgc2V0dGluZ3Mgd2l0aGluIHRoZSBgcGh5YCBzdHJ1Y3R1cmUgYW5kIHJldXNlcyB0aGVtIGluIGEgd2VsbC1kZWZpbmVkIHdheS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzI0OTksIk91dHB1dFRva2VucyI6MjY0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTM5MywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDEwOjAzOjA2Ljg4MjA5Mzc2OFoiLCJTZXEiOjQ2LCJOZXN0aW5nIjozLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1NjAwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBmaWVsZCBgcnhmaWx0ZXJgIHRvIGBzdHJ1Y3QgbXQ3OTJ4X3BoeWAgdG8gc3RvcmUgdGhlIFJYIGZpbHRlciBmbGFncy4gVGhpcyBzdHJ1Y3R1cmUgaXMgZW1iZWRkZWQgaW4gYHN0cnVjdCBtdDc5MnhfZGV2YCwgd2hpY2ggaXMgYWxsb2NhdGVkIHZpYSBgbXQ3Nl9hbGxvY19kZXZpY2VgIC1cXHUwMDNlIGBpZWVlODAyMTFfYWxsb2NfaHdgIC1cXHUwMDNlIGB3aXBoeV9uZXdfbm1gIHVzaW5nIGBremFsbG9jYC4gVGh1cywgdGhlIG5ldyBmaWVsZCBpcyBmdWxseSB6ZXJvLWluaXRpYWxpemVkIHVwb24gYWxsb2NhdGlvbi4gVGhlIHBhdGNoIHRoZW4gd3JpdGVzIHRvIHRoaXMgZmllbGQgaW4gYG10NzkyNV9jb25maWd1cmVfZmlsdGVyYCBhbmQgcmVhZHMgZnJvbSBpdCBpbiBgbXQ3OTI1X21jdV9jb25maWdfc25pZmZlcmAgdG8gY29uZGl0aW9uYWxseSBzZXQgdGhlIGBkcm9wX2VycmAgZmxhZyBpbiBhIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24gcmVxdWVzdC4gVGhlcmUgYXJlIG5vIG5ldyBhbGxvY2F0aW9ucywgbm8gc3RydWN0dXJlcyBjb3BpZWQgdG8gdXNlciBzcGFjZSwgYW5kIG5vIGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIHdoZXJlIHVuaW5pdGlhbGl6ZWQgZmllbGRzIGNvdWxkIGJlIHJlYWQuIEFueSBwb3RlbnRpYWwgYnVncyBpbnRyb2R1Y2VkIGJ5IHRoaXMgcGF0Y2ggd291bGQgYmUgcmVsYXRlZCB0byBpbmNvcnJlY3QgbG9naWMgb3Igb3V0LW9mLWJvdW5kcyBhY2Nlc3MsIHdoaWNoIGFyZSB3ZWxsLWNvdmVyZWQgYnkgc3RhbmRhcmQgS0FTQU4gYW5kIG90aGVyIGJ1ZyBkZXRlY3RvcnMuIFRoZXJlIGlzIG5vIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcyB0aGF0IHdvdWxkIHJlcXVpcmUgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uLlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgZmllbGQgYHJ4ZmlsdGVyYCB0byBgc3RydWN0IG10NzkyeF9waHlgIHRvIHN0b3JlIHRoZSBSWCBmaWx0ZXIgZmxhZ3MuIFRoaXMgc3RydWN0dXJlIGlzIGVtYmVkZGVkIGluIGBzdHJ1Y3QgbXQ3OTJ4X2RldmAsIHdoaWNoIGlzIGFsbG9jYXRlZCB2aWEgYG10NzZfYWxsb2NfZGV2aWNlYCAtXFx1MDAzZSBgaWVlZTgwMjExX2FsbG9jX2h3YCAtXFx1MDAzZSBgd2lwaHlfbmV3X25tYCB1c2luZyBga3phbGxvY2AuIFRodXMsIHRoZSBuZXcgZmllbGQgaXMgZnVsbHkgemVyby1pbml0aWFsaXplZCB1cG9uIGFsbG9jYXRpb24uIFRoZSBwYXRjaCB0aGVuIHdyaXRlcyB0byB0aGlzIGZpZWxkIGluIGBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcmAgYW5kIHJlYWRzIGZyb20gaXQgaW4gYG10NzkyNV9tY3VfY29uZmlnX3NuaWZmZXJgIHRvIGNvbmRpdGlvbmFsbHkgc2V0IHRoZSBgZHJvcF9lcnJgIGZsYWcgaW4gYSBoYXJkd2FyZSBjb25maWd1cmF0aW9uIHJlcXVlc3QuIFRoZXJlIGFyZSBubyBuZXcgYWxsb2NhdGlvbnMsIG5vIHN0cnVjdHVyZXMgY29waWVkIHRvIHVzZXIgc3BhY2UsIGFuZCBubyBjb21wbGV4IGRhdGEgc3RydWN0dXJlcyB3aGVyZSB1bmluaXRpYWxpemVkIGZpZWxkcyBjb3VsZCBiZSByZWFkLiBBbnkgcG90ZW50aWFsIGJ1Z3MgaW50cm9kdWNlZCBieSB0aGlzIHBhdGNoIHdvdWxkIGJlIHJlbGF0ZWQgdG8gaW5jb3JyZWN0IGxvZ2ljIG9yIG91dC1vZi1ib3VuZHMgYWNjZXNzLCB3aGljaCBhcmUgd2VsbC1jb3ZlcmVkIGJ5IHN0YW5kYXJkIEtBU0FOIGFuZCBvdGhlciBidWcgZGV0ZWN0b3JzLiBUaGVyZSBpcyBubyByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MgdGhhdCB3b3VsZCByZXF1aXJlIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbi5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowrbph2[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-26 09:35:10 +0000 UTC FinishedAt: 2026-08-26 10:03:08 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "881dc9dd66d2367e7fe1be0f953a8837cb3b26a9", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MT7925U", "MAC80211", "USB" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "881dc9dd66d2367e7fe1be0f953a8837cb3b26a9", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MT7925U", "MAC80211", "USB" ], "series_id": "bf6e6a40-889e-4fe0-987f-c2fed945fb0f" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "mt7925_configure_filter", "mt7925_mcu_config_sniffer" ], "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+CgkJCTx0ZD4yMDI2LzA4LzI2IDA5OjQ5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MTNtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNVDc5MjVVJiMzNDssCiAgICAmIzM0O01BQzgwMjExJiMzNDssCiAgICAmIzM0O1VTQiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O210NzkyNV9jb25maWd1cmVfZmlsdGVyJiMzNDssCiAgICAmIzM0O210NzkyNV9tY3VfY29uZmlnX3NuaWZmZXImIzM0OwogIF0sCiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGZpZWxkIGByeGZpbHRlcmAgdG8gYHN0cnVjdCBtdDc5MnhfcGh5YCB0byBzdG9yZSB0aGUgUlggZmlsdGVyIGZsYWdzLiBUaGlzIHN0cnVjdHVyZSBpcyBlbWJlZGRlZCBpbiBgc3RydWN0IG10NzkyeF9kZXZgLCB3aGljaCBpcyBhbGxvY2F0ZWQgdmlhIGBtdDc2X2FsbG9jX2RldmljZWAgLVx1MDAzZSBgaWVlZTgwMjExX2FsbG9jX2h3YCAtXHUwMDNlIGB3aXBoeV9uZXdfbm1gIHVzaW5nIGBremFsbG9jYC4gVGh1cywgdGhlIG5ldyBmaWVsZCBpcyBmdWxseSB6ZXJvLWluaXRpYWxpemVkIHVwb24gYWxsb2NhdGlvbi4gVGhlIHBhdGNoIHRoZW4gd3JpdGVzIHRvIHRoaXMgZmllbGQgaW4gYG10NzkyNV9jb25maWd1cmVfZmlsdGVyYCBhbmQgcmVhZHMgZnJvbSBpdCBpbiBgbXQ3OTI1X21jdV9jb25maWdfc25pZmZlcmAgdG8gY29uZGl0aW9uYWxseSBzZXQgdGhlIGBkcm9wX2VycmAgZmxhZyBpbiBhIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24gcmVxdWVzdC4gVGhlcmUgYXJlIG5vIG5ldyBhbGxvY2F0aW9ucywgbm8gc3RydWN0dXJlcyBjb3BpZWQgdG8gdXNlciBzcGFjZSwgYW5kIG5vIGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIHdoZXJlIHVuaW5pdGlhbGl6ZWQgZmllbGRzIGNvdWxkIGJlIHJlYWQuIEFueSBwb3RlbnRpYWwgYnVncyBpbnRyb2R1Y2VkIGJ5IHRoaXMgcGF0Y2ggd291bGQgYmUgcmVsYXRlZCB0byBpbmNvcnJlY3QgbG9naWMgb3Igb3V0LW9mLWJvdW5kcyBhY2Nlc3MsIHdoaWNoIGFyZSB3ZWxsLWNvdmVyZWQgYnkgc3RhbmRhcmQgS0FTQU4gYW5kIG90aGVyIGJ1ZyBkZXRlY3RvcnMuIFRoZXJlIGlzIG5vIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcyB0aGF0IHdvdWxkIHJlcXVpcmUgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVkaWF0ZWsgTVQ3OTI1IHdpcmVsZXNzIGRyaXZlciB0byBjb25maWd1cmUgdGhlIHNuaWZmZXImIzM5O3MgZHJvcF9lcnIgZmxhZyBiYXNlZCBvbiB0aGUgcnhmaWx0ZXIgc2V0dGluZ3MuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZHJpdmVyJiMzOTtzIG1hYzgwMjExIGNhbGxiYWNrcy4gVGhlIGRyaXZlciBoYXMgYSBVU0IgdmFyaWFudCAobXQ3OTI1dSkgd2hpY2ggY2FuIGJlIGZ1enplZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIFVTQiBlbXVsYXRpb24gKHN5el91c2JfY29ubmVjdCkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjYgMDk6NDk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA4ZGQ4ZTg4NGQzYTgzNjY1ZDcwNzI3MGI4ZDcxODVhNDZiMzQ4YmM0XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBBdWcgMjYgMDk6NDk6MzcgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jXG5pbmRleCBhOTA1OTg2NmI3MDE2Li5jZmJmZDc3ZTg5MGZiIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmNcbkBAIC04MzIsMTEgJiM0Mzs4MzIsOCBAQCBzdGF0aWMgdm9pZCBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbiBcdFx0XHRcdCAgICB1bnNpZ25lZCBpbnQgKnRvdGFsX2ZsYWdzLFxuIFx0XHRcdFx0ICAgIHU2NCBtdWx0aWNhc3QpXG4ge1xuLSNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9GQ1NGQUlMICAgIEJJVCgyKVxuLSNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9DT05UUk9MICAgIEJJVCg1KVxuLSNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9PVEhFUl9CU1MgIEJJVCg2KVxuLSNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9FTkFCTEUgICAgIEJJVCgzMSlcbiBcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcbiYjNDM7XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG4gXHR1MzIgZmxhZ3MgPSBNVDc5MjVfRklMVEVSX0VOQUJMRTtcbiBcbiAjZGVmaW5lIE1UNzkyNV9GSUxURVIoX2ZpZiwgX3R5cGUpIGRvIHtcdFx0XHRcXFxuQEAgLTg0OCw2ICYjNDM7ODQ1LDggQEAgc3RhdGljIHZvaWQgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXIoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4gXHRNVDc5MjVfRklMVEVSKEZJRl9DT05UUk9MLCBDT05UUk9MKTtcbiBcdE1UNzkyNV9GSUxURVIoRklGX09USEVSX0JTUywgT1RIRVJfQlNTKTtcbiBcbiYjNDM7XHRwaHktXHUwMDNlcnhmaWx0ZXIgPSBmbGFncztcbiYjNDM7XG4gXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuIFx0bXQ3OTI1X21jdV9zZXRfcnhmaWx0ZXIoZGV2LCBmbGFncywgMCwgMCk7XG4gXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmNcbmluZGV4IGU5NGZhNTQ0ZmYyMDcuLmFkYzEzN2EwZTZiNGQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmNcbkBAIC0yMjUxLDcgJiM0MzsyMjUxLDcgQEAgaW50IG10NzkyNV9tY3VfY29uZmlnX3NuaWZmZXIoc3RydWN0IG10NzkyeF92aWYgKnZpZixcbiBcdFx0XHQubGVuID0gY3B1X3RvX2xlMTYoc2l6ZW9mKHJlcS50bHYpKSxcbiBcdFx0XHQuY29udHJvbF9jaCA9IGNoYW5kZWYtXHUwMDNlY2hhbi1cdTAwM2Vod192YWx1ZSxcbiBcdFx0XHQuY2VudGVyX2NoID0gaWVlZTgwMjExX2ZyZXF1ZW5jeV90b19jaGFubmVsKGZyZXExKSxcbi1cdFx0XHQuZHJvcF9lcnIgPSAxLFxuJiM0MztcdFx0XHQuZHJvcF9lcnIgPSAhKHZpZi1cdTAwM2VwaHktXHUwMDNlcnhmaWx0ZXIgXHUwMDI2IE1UNzkyNV9GSUxURVJfRkNTRkFJTCksXG4gXHRcdH0sXG4gXHR9O1xuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L210NzkyNS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbXQ3OTI1LmhcbmluZGV4IDRjYzI1OTQxOGFmY2EuLjhmYjhhNGMxMzE2ZTAgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tdDc5MjUuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbXQ3OTI1LmhcbkBAIC03LDYgJiM0Mzs3LDExIEBAXG4gI2luY2x1ZGUgXCYjMzQ7Li4vbXQ3OTJ4LmhcJiMzNDtcbiAjaW5jbHVkZSBcJiMzNDtyZWdzLmhcJiMzNDtcbiBcbiYjNDM7I2RlZmluZSBNVDc5MjVfRklMVEVSX0ZDU0ZBSUxcdFx0QklUKDIpXG4mIzQzOyNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9DT05UUk9MXHRcdEJJVCg1KVxuJiM0MzsjZGVmaW5lIE1UNzkyNV9GSUxURVJfT1RIRVJfQlNTXHRCSVQoNilcbiYjNDM7I2RlZmluZSBNVDc5MjVfRklMVEVSX0VOQUJMRVx0XHRCSVQoMzEpXG4mIzQzO1xuICNkZWZpbmUgTVQ3OTI1X0JFQUNPTl9SQVRFU19UQkxcdFx0MjVcbiBcbiAjZGVmaW5lIE1UNzkyNV9UWF9SSU5HX1NJWkVcdFx0MjA0OFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4LmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oXG5pbmRleCA3MDA3M2I0M2FmNTQzLi43NWQzMmE0YWRkZDcxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaFxuQEAgLTE2OCw2ICYjNDM7MTY4LDcgQEAgc3RydWN0IG10NzkyeF9waHkge1xuIFx0czE2IGNvdmVyYWdlX2NsYXNzO1xuIFx0dTggc2xvdHRpbWU7XG4gXG4mIzQzO1x0dTMyIHJ4ZmlsdGVyO1xuIFx0dTMyIHJ4X2FtcGR1X3RzO1xuIFx0dTMyIGFtcGR1X3JlZjtcbiBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAwOTo0OTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xMm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01UNzkyNVUmIzM0OywKICAgICYjMzQ7TUFDODAyMTEmIzM0OywKICAgICYjMzQ7VVNCJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXImIzM0OywKICAgICYjMzQ7bXQ3OTI1X21jdV9jb25maWdfc25pZmZlciYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVkaWF0ZWsgTVQ3OTI1IHdpcmVsZXNzIGRyaXZlciB0byBjb25maWd1cmUgdGhlIHNuaWZmZXImIzM5O3MgZHJvcF9lcnIgZmxhZyBiYXNlZCBvbiB0aGUgcnhmaWx0ZXIgc2V0dGluZ3MuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZHJpdmVyJiMzOTtzIG1hYzgwMjExIGNhbGxiYWNrcy4gVGhlIGRyaXZlciBoYXMgYSBVU0IgdmFyaWFudCAobXQ3OTI1dSkgd2hpY2ggY2FuIGJlIGZ1enplZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIFVTQiBlbXVsYXRpb24gKHN5el91c2JfY29ubmVjdCkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA4ZGQ4ZTg4NGQzYTgzNjY1ZDcwNzI3MGI4ZDcxODVhNDZiMzQ4YmM0CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFdlZCBBdWcgMjYgMDk6NDk6MzcgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMKaW5kZXggYTkwNTk4NjZiNzAxNi4uY2ZiZmQ3N2U4OTBmYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYwpAQCAtODMyLDExICYjNDM7ODMyLDggQEAgc3RhdGljIHZvaWQgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXIoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsCiAJCQkJICAgIHVuc2lnbmVkIGludCAqdG90YWxfZmxhZ3MsCiAJCQkJICAgIHU2NCBtdWx0aWNhc3QpCiB7Ci0jZGVmaW5lIE1UNzkyNV9GSUxURVJfRkNTRkFJTCAgICBCSVQoMikKLSNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9DT05UUk9MICAgIEJJVCg1KQotI2RlZmluZSBNVDc5MjVfRklMVEVSX09USEVSX0JTUyAgQklUKDYpCi0jZGVmaW5lIE1UNzkyNV9GSUxURVJfRU5BQkxFICAgICBCSVQoMzEpCiAJc3RydWN0IG10NzkyeF9kZXYgKmRldiA9IG10NzkyeF9od19kZXYoaHcpOwomIzQzOwlzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7CiAJdTMyIGZsYWdzID0gTVQ3OTI1X0ZJTFRFUl9FTkFCTEU7CiAKICNkZWZpbmUgTVQ3OTI1X0ZJTFRFUihfZmlmLCBfdHlwZSkgZG8gewkJCVwKQEAgLTg0OCw2ICYjNDM7ODQ1LDggQEAgc3RhdGljIHZvaWQgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXIoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsCiAJTVQ3OTI1X0ZJTFRFUihGSUZfQ09OVFJPTCwgQ09OVFJPTCk7CiAJTVQ3OTI1X0ZJTFRFUihGSUZfT1RIRVJfQlNTLCBPVEhFUl9CU1MpOwogCiYjNDM7CXBoeS0mZ3Q7cnhmaWx0ZXIgPSBmbGFnczsKJiM0MzsKIAltdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpOwogCW10NzkyNV9tY3Vfc2V0X3J4ZmlsdGVyKGRldiwgZmxhZ3MsIDAsIDApOwogCW10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jCmluZGV4IGU5NGZhNTQ0ZmYyMDcuLmFkYzEzN2EwZTZiNGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jCkBAIC0yMjUxLDcgJiM0MzsyMjUxLDcgQEAgaW50IG10NzkyNV9tY3VfY29uZmlnX3NuaWZmZXIoc3RydWN0IG10NzkyeF92aWYgKnZpZiwKIAkJCS5sZW4gPSBjcHVfdG9fbGUxNihzaXplb2YocmVxLnRsdikpLAogCQkJLmNvbnRyb2xfY2ggPSBjaGFuZGVmLSZndDtjaGFuLSZndDtod192YWx1ZSwKIAkJCS5jZW50ZXJfY2ggPSBpZWVlODAyMTFfZnJlcXVlbmN5X3RvX2NoYW5uZWwoZnJlcTEpLAotCQkJLmRyb3BfZXJyID0gMSwKJiM0MzsJCQkuZHJvcF9lcnIgPSAhKHZpZi0mZ3Q7cGh5LSZndDtyeGZpbHRlciAmYW1wOyBNVDc5MjVfRklMVEVSX0ZDU0ZBSUwpLAogCQl9LAogCX07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L210NzkyNS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbXQ3OTI1LmgKaW5kZXggNGNjMjU5NDE4YWZjYS4uOGZiOGE0YzEzMTZlMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbXQ3OTI1LmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbXQ3OTI1LmgKQEAgLTcsNiAmIzQzOzcsMTEgQEAKICNpbmNsdWRlICYjMzQ7Li4vbXQ3OTJ4LmgmIzM0OwogI2luY2x1ZGUgJiMzNDtyZWdzLmgmIzM0OwogCiYjNDM7I2RlZmluZSBNVDc5MjVfRklMVEVSX0ZDU0ZBSUwJCUJJVCgyKQomIzQzOyNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9DT05UUk9MCQlCSVQoNSkKJiM0MzsjZGVmaW5lIE1UNzkyNV9GSUxURVJfT1RIRVJfQlNTCUJJVCg2KQomIzQzOyNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9FTkFCTEUJCUJJVCgzMSkKJiM0MzsKICNkZWZpbmUgTVQ3OTI1X0JFQUNPTl9SQVRFU19UQkwJCTI1CiAKICNkZWZpbmUgTVQ3OTI1X1RYX1JJTkdfU0laRQkJMjA0OApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4LmgKaW5kZXggNzAwNzNiNDNhZjU0My4uNzVkMzJhNGFkZGQ3MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oCkBAIC0xNjgsNiAmIzQzOzE2OCw3IEBAIHN0cnVjdCBtdDc5MnhfcGh5IHsKIAlzMTYgY292ZXJhZ2VfY2xhc3M7CiAJdTggc2xvdHRpbWU7CiAKJiM0MzsJdTMyIHJ4ZmlsdGVyOwogCXUzMiByeF9hbXBkdV90czsKIAl1MzIgYW1wZHVfcmVmOwogCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDA5OjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMxMDkKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAzODcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgVGhpcyBXaS1GaSBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCYjMzk7cyB0b3VjaGluZyBhIGZldyBmaWxlcyByZWxhdGVkIHRvIHRoZSBNZWRpYXRlayBNVDc5MjUgd2lyZWxlc3MgZHJpdmVyOiBgbWFpbi5jYCwgYG1jdS5jYCwgYG10NzkyNS5oYCwgYW5kIGBtdDc5MnguaGAuIFRoZSBjb3JlIG9mIHRoZSBjaGFuZ2Ugc2VlbXMgdG8gYmUgYWJvdXQgbW92aW5nIHNvbWUgYCNkZWZpbmVgIHN0YXRlbWVudHMgdG8gYSBoZWFkZXIgZmlsZSwgYWRkaW5nIGFuIGByeGZpbHRlcmAgZmllbGQgdG8gdGhlIGBtdDc5MnhfcGh5YCBzdHJ1Y3QsIGFuZCB0aGVuIHVzaW5nIHRoYXQgbmV3IGZpbHRlciBpbiBhIGNvdXBsZSBvZiBwbGFjZXMuIFNwZWNpZmljYWxseSwgaXQmIzM5O3Mgc2V0dGluZyBgcGh5LSZndDtyeGZpbHRlciA9IGZsYWdzO2AgaW4gYG10NzkyNV9jb25maWd1cmVfZmlsdGVyYCwgYW5kIGxldmVyYWdpbmcgdGhlIGZpbHRlciBpbiBgbXQ3OTI1X21jdV9jb25maWdfc25pZmZlcmAsIHdoZXJlIGl0JiMzOTtzIHVzaW5nIHRoZSBmaWx0ZXIgdG8gc2VsZWN0aXZlbHkgZHJvcCBwYWNrZXRzOiBgLmRyb3BfZXJyID0gISh2aWYtJmd0O3BoeS0mZ3Q7cnhmaWx0ZXIgJmFtcDsgTVQ3OTI1X0ZJTFRFUl9GQ1NGQUlMKWAuCgpOb3csIHRoZSBpbXBvcnRhbnQgcXVlc3Rpb24gaXM6IHdoYXQga2luZCBvZiB0YXJnZXQgZGV2aWNlIGFtIEkgZGVhbGluZyB3aXRoIGhlcmU/IFRoaXMgZHJpdmVyIGlzIGZvciB0aGUgTVQ3OTI1LCB3aGljaCwgZ2l2ZW4gbXkgZXhwZXJpZW5jZSB3aXRoIHRoZSBgbXQ3NmAgZmFtaWx5LCBpcyBhbG1vc3QgY2VydGFpbmx5IGEgcGh5c2ljYWwgaGFyZHdhcmUgZHJpdmVyLCBsaWtlbHkgUENJZSBvciBVU0IuIEkgZG91YnQgaXQgd291bGQgYmUgYSBwdXJlbHkgc29mdHdhcmUtYmFzZWQgV2ktRmkgc3RhY2suIFNvLCB0aGUgcXVlc3Rpb24gaXMsIGNhbiB0aGlzIGJlIGVtdWxhdGVkIHdpdGhpbiBRRU1VPyBJIGRvdWJ0IHRoYXQgdGhpcyBpcyBzb21ldGhpbmcgdGhhdCBoYXMgYSBnZW5lcmljIGVub3VnaCBVU0IgaW50ZXJmYWNlIHRvIGJlIGVtdWxhdGVkIGFzIGEgVVNCIGdhZGdldCwgYW5kIGVtdWxhdGluZyBhIHNwZWNpZmljIE1lZGlhdGVrIFdpLUZpIGNhcmQgaXMgbm90IHNvbWV0aGluZyBJJiMzOTt2ZSB1c3VhbGx5IHNlZW4sIHVubGVzcyB3ZSYjMzk7cmUgdGFsa2luZyBhYm91dCB2ZXJ5IGdlbmVyYWwsIHNpbXBsZSBVU0IgZGV2aWNlcy4gSXQmIzM5O3Mgbm90IGxpa2UgYG1hYzgwMjExX2h3c2ltYCwgd2hpY2ggcHJvdmlkZXMgYSBnZW5lcmFsIFdpLUZpIGVtdWxhdGlvbi4KCkkgbmVlZCB0byBjb25maXJtIHdoZXRoZXIgdGhpcyBkcml2ZXIgaXMgZm9yIGEgUENJIG9yIFVTQiBkZXZpY2UsIGFuZCBJJiMzOTtsbCB1c2UgYGdyZXBwZXJgIHRvIHNlZSBpZiB0aGVyZSBpcyBhbnkgaW5kaWNhdGlvbiBvZiBpdCBiZWluZyBlaXRoZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjYgMDk6NDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTI1JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAzMTkxIGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9NYWtlZmlsZS0yLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfTVQ3OTI1X0NPTU1PTikgJiM0Mzs9IG10NzkyNS1jb21tb24ub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGU6NDpvYmotJChDT05GSUdfTVQ3OTI1RSkgJiM0Mzs9IG10NzkyNWUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGU6NTpvYmotJChDT05GSUdfTVQ3OTI1VSkgJiM0Mzs9IG10NzkyNXUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGUtNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L01ha2VmaWxlOjc6bXQ3OTI1LWNvbW1vbi15IDo9IG1hYy5vIG1jdS5vIHJlZ2QubyBtYWluLm8gaW5pdC5vIGRlYnVnZnMub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGU6ODptdDc5MjUtY29tbW9uLSQoQ09ORklHX05MODAyMTFfVEVTVE1PREUpICYjNDM7PSB0ZXN0bW9kZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9NYWtlZmlsZTo5Om10NzkyNWUteSA6PSBwY2kubyBwY2lfbWFjLm8gcGNpX21jdS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9NYWtlZmlsZToxMDptdDc5MjV1LXkgOj0gdXNiLm9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo0OiNpbmNsdWRlIFwmIzM0O210NzkyNS5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtNS0jaW5jbHVkZSBcJiMzNDttY3UuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz03PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo4Om10NzkyNV9yZWdfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtOS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTEzLVx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNDpcdG10NzkyNV9tY3VfcmVndmFsKGRldiwgZGV2LVx1MDAzZW10NzYuZGVidWdmc19yZWcsIFx1MDAyNnJlZ3ZhbCwgdHJ1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTUtXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz0yMD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MjE6bXQ3OTI1X3JlZ19nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yNy1cdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6Mjg6XHRyZXQgPSBtdDc5MjVfbWN1X3JlZ3ZhbChkZXYsIGRldi1cdTAwM2VtdDc2LmRlYnVnZnNfcmVnLCBcdTAwMjZyZWd2YWwsIGZhbHNlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yOS1cdG10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjM2OkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3JlZ3ZhbCwgbXQ3OTI1X3JlZ19nZXQsIG10NzkyNV9yZWdfc2V0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTM3LVx0XHRcdCBcJiMzNDsweCUwOGxseFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9Mzg9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjM5Om10NzkyNV9md19kZWJ1Z19zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy00MC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTQ1LVx0ZGV2LVx1MDAzZWZ3X2RlYnVnID0gKHU4KXZhbDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo0NjpcdG10NzkyNV9tY3VfZndfbG9nXzJfaG9zdChkZXYsIGRldi1cdTAwM2Vmd19kZWJ1Zyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtNDctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jPTUzPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo1NDptdDc5MjVfZndfZGVidWdfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTU1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtNjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6NjM6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfZndfZGVidWcsIG10NzkyNV9md19kZWJ1Z19nZXQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6NjQ6XHRcdFx0IG10NzkyNV9md19kZWJ1Z19zZXQsIFwmIzM0OyVsbGRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTY1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz02OD1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjY5Om10NzkyNV9zZXFfcHV0c19hcnJheShzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgKnN0cixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy03MC1cdFx0ICAgICAgczggdmFsW11bMl0sIGludCBsZW4sIHU4IGJhbmRfaWR4KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy04Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo4MzojZGVmaW5lIG10NzkyNV9wcmludF90eHB3cl9lbnRyeShwcmVmaXgsIHJhdGUsIGlkeClcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtODQtKHtcdFx0XHRcdFx0XHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6ODU6XHRtdDc5MjVfc2VxX3B1dHNfYXJyYXkocywgI3ByZWZpeCBcJiMzNDsgKHRtYWMpXCYjMzQ7LFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy04Ni1cdFx0XHQgICAgICB0eHB3ci1cdTAwM2VyYXRlLFx0XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz05MT1zdGF0aWMgaW5saW5lIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo5MjptdDc5MjVfZWh0X3R4cHdyKHN0cnVjdCBzZXFfZmlsZSAqcywgc3RydWN0IG10NzkyNV90eHB3ciAqdHhwd3IsIHU4IGJhbmRfaWR4KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTkzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtOTctXHRcdCAgIFwmIzM0O21jczEyXCYjMzQ7LCBcJiMzNDttY3MxM1wmIzM0OywgXCYjMzQ7bWNzMTRcJiMzNDssIFwmIzM0O21jczE1XCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo5ODpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShFSFQyNiwgZWh0MjYsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo5OTpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShFSFQ1MiwgZWh0NTIsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMDA6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUMTA2LCBlaHQxMDYsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMDE6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUMjQyLCBlaHQyNDIsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMDI6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUNDg0LCBlaHQ0ODQsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xMDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTA0Olx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDk5NiwgZWh0OTk2LCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTA1Olx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDk5NngyLCBlaHQ5OTZ4MiwgYmFuZF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjEwNjpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShFSFQ5OTZ4NCwgZWh0OTk2eDQsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMDc6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUMjZfNTIsIGVodDI2XzUyLCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTA4Olx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDI2XzEwNiwgZWh0MjZfMTA2LCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTA5Olx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDQ4NF8yNDIsIGVodDQ4NF8yNDIsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMTA6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUOTk2XzQ4NCwgZWh0OTk2XzQ4NCwgYmFuZF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjExMTpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShFSFQ5OTZfNDg0XzI0MiwgZWh0OTk2XzQ4NF8yNDIsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMTI6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUOTk2eDJfNDg0LCBlaHQ5OTZ4Ml80ODQsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMTM6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUOTk2eDMsIGVodDk5NngzLCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTE0Olx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDk5NngzXzQ4NCwgZWh0OTk2eDNfNDg0LCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTE1LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MTE3PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMTg6bXQ3OTI1X3R4cHdyKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xMTkte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTEyMC1cdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBkZXZfZ2V0X2RydmRhdGEocy1cdTAwM2Vwcml2YXRlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMjE6XHRzdHJ1Y3QgbXQ3OTI1X3R4cHdyICp0eHB3ciA9IE5VTEw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTIyLVx0dTggYmFuZF9pZHggPSBkZXYtXHUwMDNlbXBoeS5iYW5kX2lkeDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTMwLVx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMzE6XHRyZXQgPSBtdDc5MjVfZ2V0X3R4cHdyX2luZm8oZGV2LCBiYW5kX2lkeCwgdHhwd3IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTEzMi1cdG10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTEzOC1cdFx0ICAgXCYjMzQ7IFwmIzM0OywgXCYjMzQ7MW1cJiMzNDssIFwmIzM0OzJtXCYjMzQ7LCBcJiMzNDs1bVwmIzM0OywgXCYjMzQ7MTFtXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMzk6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoQ0NLLCBjY2ssIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNDAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE0My1cdFx0ICAgXCYjMzQ7NDhtXCYjMzQ7LCBcJiMzNDs1NG1cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE0NDpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShPRkRNLCBvZmRtLCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTQ1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNDgtXHRcdCAgIFwmIzM0O21jczZcJiMzNDssIFwmIzM0O21jczdcJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE0OTpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShIVDIwLCBodDIwLCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTUwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNTMtXHRcdCAgIFwmIzM0O21jczZcJiMzNDssIFwmIzM0O21jczdcJiMzNDssIFwmIzM0O21jczMyXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNTQ6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoSFQ0MCwgaHQ0MCwgYmFuZF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE1NS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTU4LVx0XHQgICBcJiMzNDttY3M2XCYjMzQ7LCBcJiMzNDttY3M3XCYjMzQ7LCBcJiMzNDttY3M4XCYjMzQ7LCBcJiMzNDttY3M5XCYjMzQ7LCBcJiMzNDttY3MxMFwmIzM0OywgXCYjMzQ7bWNzMTFcJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE1OTpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShWSFQyMCwgdmh0MjAsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNjA6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoVkhUNDAsIHZodDQwLCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTYxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE2MjpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShWSFQ4MCwgdmh0ODAsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNjM6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoVkhUMTYwLCB2aHQxNjAsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTY1Olx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEhFMjYsIGhlMjYsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNjY6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoSEU1MiwgaGU1MiwgYmFuZF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE2NzpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShIRTEwNiwgaGUxMDYsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNjg6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoSEUyNDIsIGhlMjQyLCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTY5Olx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEhFNDg0LCBoZTQ4NCwgYmFuZF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNzE6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoSEU5OTYsIGhlOTk2LCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTcyOlx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEhFOTk2eDIsIGhlOTk2eDIsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTc0Olx0bXQ3OTI1X2VodF90eHB3cihzLCB0eHB3ciwgYmFuZF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE3NS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MTgxPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxODI6bXQ3OTI1X3BtX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE4My17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTIwNS1cdHBtLVx1MDAzZWVuYWJsZV91c2VyID0gdmFsO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjIwNjpcdG10NzkyNV9zZXRfcnVudGltZV9wbShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTIwNy1cdG10NzZfY29ubmFjX3Bvd2VyX3NhdmVfc2NoZWQoXHUwMDI2ZGV2LVx1MDAzZW1waHksIHBtKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MjE0PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyMTU6bXQ3OTI1X3BtX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yMTYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yMjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MjI0OkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3BtLCBtdDc5MjVfcG1fZ2V0LCBtdDc5MjVfcG1fc2V0LCBcJiMzNDslbGxkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yMjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MjI2PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyMjc6bXQ3OTI1X2RlZXBfc2xlZXBfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjI4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjQyLVx0cG0tXHUwMDNlZHNfZW5hYmxlID0gZW5hYmxlIFx1MDAyNlx1MDAyNiAhbW9uaXRvcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyNDM6XHRtdDc5MjVfbWN1X3NldF9kZWVwX3NsZWVwKGRldiwgcG0tXHUwMDNlZHNfZW5hYmxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yNDQtb3V0OlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz0yNTA9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI1MTptdDc5MjVfZGVlcF9zbGVlcF9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjUyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI2MDpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19kcywgbXQ3OTI1X2RlZXBfc2xlZXBfZ2V0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI2MTpcdFx0XHQgbXQ3OTI1X2RlZXBfc2xlZXBfc2V0LCBcJiMzNDslbGxkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yNjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MjYzPURFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3BtX2lkbGVfdGltZW91dCwgbXQ3OTJ4X3BtX2lkbGVfdGltZW91dF9nZXQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI2NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyNjY6c3RhdGljIGludCBtdDc5MjVfY2hpcF9yZXNldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI2Ny17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI3OC1cdFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyNzk6XHRcdHJldCA9IG10NzkyNV9tY3VfY2hpcF9jb25maWcoZGV2LCBcJiMzNDthc3NlcnRcJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI4MC1cdFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjg2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI4NzpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19yZXNldCwgTlVMTCwgbXQ3OTI1X2NoaXBfcmVzZXQsIFwmIzM0OyVsbGRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI4OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyODk6aW50IG10NzkyNV9pbml0X2RlYnVnZnMoc3RydWN0IG10NzkyeF9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yOTAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0zMDQtXHRkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3NlcWZpbGUoZGV2LVx1MDAzZW10NzYuZGV2LCBcJiMzNDt0eHBvd2VyX3NrdVwmIzM0OywgZGlyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjMwNTpcdFx0XHRcdCAgICBtdDc5MjVfdHhwd3IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTMwNi1cdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXCYjMzQ7dHhfc3RhdHNcJiMzNDssIDA0MDAsIGRpciwgZGV2LCBcdTAwMjZtdDc5MnhfdHhfc3RhdHNfZm9wcyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTgtI2luY2x1ZGUgXHUwMDNjbGludXgvZmlybXdhcmUuaFx1MDAzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjk6I2luY2x1ZGUgXCYjMzQ7bXQ3OTI1LmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMC0jaW5jbHVkZSBcJiMzNDtyZWdkLmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTQ6c3RhdGljIHNzaXplX3QgbXQ3OTI1X3RoZXJtYWxfdGVtcF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNS1cdFx0XHRcdFx0c3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTI0LVx0XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShtZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoyNTpcdFx0dGVtcGVyYXR1cmUgPSBtdDc5MjVfbWN1X2dldF90ZW1wZXJhdHVyZShwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTI2LVx0XHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShtZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMzYtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjM3OnN0YXRpYyBTRU5TT1JfREVWSUNFX0FUVFJfUk8odGVtcDFfaW5wdXQsIG10NzkyNV90aGVybWFsX3RlbXAsIDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTM4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjM5OnN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICptdDc5MjVfaHdtb25fYXR0cnNbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy00MC1cdFx1MDAyNnNlbnNvcl9kZXZfYXR0cl90ZW1wMV9pbnB1dC5kZXZfYXR0ci5hdHRyLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy00Mi19O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjQzOkFUVFJJQlVURV9HUk9VUFMobXQ3OTI1X2h3bW9uKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy00NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzo0NTpzdGF0aWMgaW50IG10NzkyNV90aGVybWFsX2luaXQoc3RydWN0IG10NzkyeF9waHkgKnBoeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy00Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTUzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjU0Olx0bmFtZSA9IGRldm1fa2FzcHJpbnRmKFx1MDAyNndpcGh5LVx1MDAzZWRldiwgR0ZQX0tFUk5FTCwgXCYjMzQ7bXQ3OTI1XyVzXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTU1LVx0XHRcdCAgICAgIHdpcGh5X25hbWUod2lwaHkpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtNTktXHRod21vbiA9IGRldm1faHdtb25fZGV2aWNlX3JlZ2lzdGVyX3dpdGhfZ3JvdXBzKFx1MDAyNndpcGh5LVx1MDAzZWRldiwgbmFtZSwgcGh5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjYwOlx0XHRcdFx0XHRcdCAgICAgICBtdDc5MjVfaHdtb25fZ3JvdXBzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy02MS1cdHJldHVybiBQVFJfRVJSX09SX1pFUk8oaHdtb24pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy02My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzo2NDpzdGF0aWMgdm9pZCBtdDc5MjVfbWFjX2luaXRfYmFzaWNfcmF0ZXMoc3RydWN0IG10NzkyeF9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy02NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTczLVx0XHQgICAgICAgRklFTERfUFJFUChNVF9UWF9SQVRFX0lEWCwgcmF0ZSBcdTAwMjYgR0VOTUFTSyg3LCAwKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6NzQ6XHRcdG10NzkyNV9tYWNfc2V0X2ZpeGVkX3JhdGVfdGFibGUoZGV2LCBpZHgsIHJhdGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTc1LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy03Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzo3ODppbnQgbXQ3OTI1X21hY19pbml0KHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtNzkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy04Ni1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIE1UNzkyeF9XVEJMX1NJWkU7IGkmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjg3Olx0XHRtdDc5MjVfbWFjX3d0YmxfdXBkYXRlKGRldiwgaSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy04OC1cdFx0XHRcdCAgICAgICBNVF9XVEJMX1VQREFURV9BRE1fQ09VTlRfQ0xFQVIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy05MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzo5MjpcdG10NzkyNV9tYWNfaW5pdF9iYXNpY19yYXRlcyhkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTkzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy05Ny19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6OTg6RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTI1X21hY19pbml0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy05OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxMDA6c3RhdGljIGludCBfX210NzkyNV9pbml0X2hhcmR3YXJlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTAxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTExLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjExMjpcdHJldCA9IG10NzkyNV9tY3Vfc2V0X2VlcHJvbShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTExMy1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTExNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxMTY6XHRyZXQgPSBtdDc5MjVfbWFjX2luaXQoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMTctXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMjAtXHRpZiAoaXNfbXQ3OTI3KFx1MDAyNmRldi1cdTAwM2VtdDc2KSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjEyMTpcdFx0cmV0ID0gbXQ3OTI1X21jdV9zZXRfZGJkYyhcdTAwMjZkZXYtXHUwMDNlbXBoeSwgdHJ1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTIyLVx0XHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTEzMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxMzM6c3RhdGljIGludCBtdDc5MjVfaW5pdF9oYXJkd2FyZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTEzNC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTEzOS1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIE1UNzkyeF9NQ1VfSU5JVF9SRVRSWV9DT1VOVDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxNDA6XHRcdHJldCA9IF9fbXQ3OTI1X2luaXRfaGFyZHdhcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNDEtXHRcdGlmICghcmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTU1OnN0YXRpYyB2b2lkIG10NzkyNV9pbml0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE1Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE2MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxNjE6XHRyZXQgPSBtdDc5MjVfaW5pdF9oYXJkd2FyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE2Mi1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE2NS1cdG10NzZfc2V0X3N0cmVhbV9jYXBzKFx1MDAyNmRldi1cdTAwM2VtcGh5LCB0cnVlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxNjY6XHRtdDc5MjVfc2V0X3N0cmVhbV9oZV9laHRfY2FwcyhcdTAwMjZkZXYtXHUwMDNlcGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNjctXHRtdDc5MnhfY29uZmlnX21hY19hZGRyX2xpc3QoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTY5Olx0cmV0ID0gbXQ3OTI1X2luaXRfbWxvX2NhcHMoXHUwMDI2ZGV2LVx1MDAzZXBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTcwLVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xODEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTgyOlx0cmV0ID0gbXQ3OTI1X2luaXRfZGVidWdmcyhkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE4My1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTg3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjE4ODpcdHJldCA9IG10NzkyNV90aGVybWFsX2luaXQoXHUwMDI2ZGV2LVx1MDAzZXBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTg5LVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xOTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTk0Olx0cmV0ID0gbXQ3OTI1X21jdV9zZXRfdGhlcm1hbF9wcm90ZWN0KGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTk1LVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yMDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjAzOlx0bXQ3OTI1X21jdV9zZXRfZGVlcF9zbGVlcChkZXYsIGRldi1cdTAwM2VwbS5kc19lbmFibGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTIwNC19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjA1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjIwNjppbnQgbXQ3OTI1X3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTIwNy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTIxNi1cdElOSVRfREVMQVlFRF9XT1JLKFx1MDAyNmRldi1cdTAwM2VwbS5wc193b3JrLCBtdDc5MnhfcG1fcG93ZXJfc2F2ZV93b3JrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoyMTc6XHRJTklUX0RFTEFZRURfV09SSyhcdTAwMjZkZXYtXHUwMDNlbWxvX3BtX3dvcmssIG10NzkyNV9tbG9fcG1fd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjE4LVx0SU5JVF9XT1JLKFx1MDAyNmRldi1cdTAwM2VwbS53YWtlX3dvcmssIG10NzkyeF9wbV93YWtlX3dvcmspO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yMjQtXHRJTklUX0RFTEFZRURfV09SSyhcdTAwMjZkZXYtXHUwMDNlbXBoeS5tYWNfd29yaywgbXQ3OTJ4X21hY193b3JrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoyMjU6XHRJTklUX0RFTEFZRURfV09SSyhcdTAwMjZkZXYtXHUwMDNlcGh5LnNjYW5fd29yaywgbXQ3OTI1X3NjYW5fd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjI2Olx0SU5JVF9ERUxBWUVEX1dPUksoXHUwMDI2ZGV2LVx1MDAzZWNvcmVkdW1wLndvcmssIG10NzkyNV9jb3JlZHVtcF93b3JrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yMjctI2lmIElTX0VOQUJMRUQoQ09ORklHX0lQVjYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjI4Olx0SU5JVF9XT1JLKFx1MDAyNmRldi1cdTAwM2VpcHY2X25zX3dvcmssIG10NzkyNV9zZXRfaXB2Nl9uc193b3JrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yMjktXHRza2JfcXVldWVfaGVhZF9pbml0KFx1MDAyNmRldi1cdTAwM2VpcHY2X25zX2xpc3QpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yMzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjM0Olx0SU5JVF9XT1JLKFx1MDAyNmRldi1cdTAwM2VyZXNldF93b3JrLCBtdDc5MjVfbWFjX3Jlc2V0X3dvcmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjIzNTpcdElOSVRfV09SSyhcdTAwMjZkZXYtXHUwMDNlaW5pdF93b3JrLCBtdDc5MjVfaW5pdF93b3JrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yMzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjM3Olx0SU5JVF9XT1JLKFx1MDAyNmRldi1cdTAwM2VwaHkucm9jX3dvcmssIG10NzkyNV9yb2Nfd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjM4LVx0dGltZXJfc2V0dXAoXHUwMDI2ZGV2LVx1MDAzZXBoeS5yb2NfdGltZXIsIG10NzkyeF9yb2NfdGltZXIsIDApO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yNjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjY1Olx0aHctXHUwMDNld2lwaHktXHUwMDNlcmVnX25vdGlmaWVyID0gbXQ3OTI1X3JlZ2Rfbm90aWZpZXI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjY2LVx0ZGV2LVx1MDAzZW1waHkuc2JhbmRfMmcuc2JhbmQuaHRfY2FwLmNhcCB8PVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yOTItfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjI5MzpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MjVfcmVnaXN0ZXJfZGV2aWNlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy02LSNpbmNsdWRlIFx1MDAzY2xpbnV4L3RpbWVrZWVwaW5nLmhcdTAwM2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjc6I2luY2x1ZGUgXCYjMzQ7bXQ3OTI1LmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTgtI2luY2x1ZGUgXCYjMzQ7Li4vZG1hLmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEzOmJvb2wgbXQ3OTI1X21hY193dGJsX3VwZGF0ZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBpbnQgaWR4LCB1MzIgbWFzaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTE0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0yMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjIyOnN0YXRpYyB2b2lkIG10NzkyNV9tYWNfc3RhX3BvbGwoc3RydWN0IG10NzkyeF9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTIzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy01OC1cdFx0aWR4ID0gbWxpbmstXHUwMDNld2NpZC5pZHg7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo1OTpcdFx0YWRkciA9IG10NzkyNV9tYWNfd3RibF9sbWFjX2FkZHIoZGV2LCBpZHgsIE1UX1dUQkxfQUMwX0NUVF9PRkZTRVQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNjAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNzctXHRcdGlmIChjbGVhcikge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6Nzg6XHRcdFx0bXQ3OTI1X21hY193dGJsX3VwZGF0ZShkZXYsIGlkeCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTc5LVx0XHRcdFx0XHQgICAgICAgTVRfV1RCTF9VUERBVEVfQURNX0NPVU5UX0NMRUFSKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjM6XHRcdGFkZHIgPSBtdDc5MjVfbWFjX3d0YmxfbG1hY19hZGRyKGRldiwgaWR4LCA2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNC1cdFx0dmFsID0gbXQ3Nl9ycihkZXYsIGFkZHIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI1LVx0XHRpZiAocmF0ZS1cdTAwM2VmbGFncyBcdTAwMjYgUkFURV9JTkZPX0ZMQUdTX0VIVF9NQ1MpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyNjpcdFx0XHRhZGRyID0gbXQ3OTI1X21hY193dGJsX2xtYWNfYWRkcihkZXYsIGlkeCwgNSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjctXHRcdFx0dmFsID0gbXQ3Nl9ycihkZXYsIGFkZHIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTE0MS1cdFx0LyogZ2V0IHNpZ25hbCBzdHJlbmd0aCBvZiByZXNwIGZyYW1lcyAoQ1RTL0JBL0FDSykgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjE0MjpcdFx0YWRkciA9IG10NzkyNV9tYWNfd3RibF9sbWFjX2FkZHIoZGV2LCBpZHgsIDM0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTE0My1cdFx0dmFsID0gbXQ3Nl9ycihkZXYsIGFkZHIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTE1Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjE1Nzp2b2lkIG10NzkyNV9tYWNfc2V0X2ZpeGVkX3JhdGVfdGFibGUoc3RydWN0IG10NzkyeF9kZXYgKmRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTE1OC1cdFx0XHRcdCAgICAgdTggdGJsX2lkeCwgdTE2IHJhdGVfaWR4KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTE2OC0vKiBUaGUgSFcgZG9lcyBub3QgdHJhbnNsYXRlIHRoZSBtYWMgaGVhZGVyIHRvIDgwMi4zIGZvciBtZXNoIHBvaW50ICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxNjk6c3RhdGljIGludCBtdDc5MjVfcmV2ZXJzZV9mcmFnMF9oZHJfdHJhbnMoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTE2IGhkcl9nYXApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xNzAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jPTI0OD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoyNDk6bXQ3OTI1X21hY19maWxsX3J4X3JhdGUoc3RydWN0IG10NzkyeF9kZXYgKmRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTI1MC1cdFx0XHRzdHJ1Y3QgbXQ3Nl9yeF9zdGF0dXMgKnN0YXR1cyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz0zNTg9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MzU5Om10NzkyNV9tYWNfZmlsbF9yeChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMzYwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy01MzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo1Mzk6XHRcdHJldCA9IG10NzkyNV9tYWNfZmlsbF9yeF9yYXRlKGRldiwgc3RhdHVzLCBzYmFuZCwgcnh2LCBcdTAwMjZtb2RlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTU0MC1cdFx0aWYgKHJldCBcdTAwM2MgMClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy01NTItXHRpZiAoaGRyX3RyYW5zIFx1MDAyNlx1MDAyNiBpZWVlODAyMTFfaGFzX21vcmVmcmFncyhmYykpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjU1MzpcdFx0aWYgKG10NzkyNV9yZXZlcnNlX2ZyYWcwX2hkcl90cmFucyhza2IsIGhkcl9nYXApKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNTU0LVx0XHRcdHJldHVybiAtRUlOVkFMO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jPTYyNj1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6NjI3Om10NzkyNV9tYWNfd3JpdGVfdHh3aV84MDIzKF9fbGUzMiAqdHh3aSwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTYyOC1cdFx0XHQgICBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jPTY2MT1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6NjYyOm10NzkyNV9tYWNfd3JpdGVfdHh3aV84MDIxMShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgX19sZTMyICp0eHdpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNjYzLVx0XHRcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jPTcyOT12b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo3MzA6bXQ3OTI1X21hY193cml0ZV90eHdpKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBfX2xlMzIgKnR4d2ksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy03MzEtXHRcdCAgICAgIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBtdDc2X3djaWQgKndjaWQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtODE4LVx0aWYgKGlzXzgwMjMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo4MTk6XHRcdG10NzkyNV9tYWNfd3JpdGVfdHh3aV84MDIzKHR4d2ksIHNrYiwgd2NpZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy04MjAtXHRlbHNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo4MjE6XHRcdG10NzkyNV9tYWNfd3JpdGVfdHh3aV84MDIxMShkZXYsIHR4d2ksIHNrYiwga2V5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTgyMi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy04NDEtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6ODQyOkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyNV9tYWNfd3JpdGVfdHh3aSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy04NDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo4NDQ6c3RhdGljIHZvaWQgbXQ3OTI1X3R4X2NoZWNrX2FnZ3Ioc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTg0NS1cdFx0XHRcdCBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jPTg5OD1zdGF0aWMgYm9vbFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6ODk5Om10NzkyNV9tYWNfYWRkX3R4c19za2Ioc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IG10NzZfd2NpZCAqd2NpZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTkwMC1cdFx0ICAgICAgIGludCBwaWQsIF9fbGUzMiAqdHhzX2RhdGEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTAzNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEwMzY6dm9pZCBtdDc5MjVfbWFjX2FkZF90eHMoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEwMzcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEwNjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMDY0Olx0bXQ3OTI1X21hY19hZGRfdHhzX3NrYihkZXYsIHdjaWQsIHBpZCwgdHhzX2RhdGEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTA2NS1cdGlmICghd2NpZC1cdTAwM2VzdGEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTA3My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEwNzQ6dm9pZCBtdDc5MjVfdHh3aV9mcmVlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3R4d2lfY2FjaGUgKnQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMDc1LVx0XHQgICAgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLCBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEwODgtXHRcdGlmIChsaWtlbHkodC1cdTAwM2Vza2ItXHUwMDNlcHJvdG9jb2wgIT0gY3B1X3RvX2JlMTYoRVRIX1BfUEFFKSkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMDg5Olx0XHRcdG10NzkyNV90eF9jaGVja19hZ2dyKHN0YSwgdC1cdTAwM2Vza2IsIHdjaWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTA5MC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMTAwLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjExMDE6RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTI1X3R4d2lfZnJlZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMTAyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM9MTEwMz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTEwNDptdDc5MjVfbWFjX3R4X2ZyZWUoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdm9pZCAqZGF0YSwgaW50IGxlbilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTExMDUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTExNzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMTcxOlx0XHRcdG10NzkyNV90eHdpX2ZyZWUoZGV2LCB0eHdpLCBzdGEsIHdjaWQsIFx1MDAyNmZyZWVfbGlzdCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMTcyLVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTE3NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjExNzU6XHRtdDc5MjVfbWFjX3N0YV9wb2xsKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMTc2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTExODctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMTg4OmJvb2wgbXQ3OTI1X3J4X2NoZWNrKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgdm9pZCAqZGF0YSwgaW50IGxlbilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTExODkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyMDYtXHRcdC8qIFBLVF9UWVBFX1RYUlhfTk9USUZZIGNhbiBiZSByZWNlaXZlZCBvbmx5IGJ5IG1taW8gZGV2aWNlcyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTIwNzpcdFx0bXQ3OTI1X21hY190eF9mcmVlKGRldiwgZGF0YSwgbGVuKTsgLyogbW1pbyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTIwOC1cdFx0cmV0dXJuIGZhbHNlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyMTAtXHRcdGZvciAocnhkICYjNDM7PSA0OyByeGQgJiM0MzsgMTIgXHUwMDNjPSBlbmQ7IHJ4ZCAmIzQzOz0gMTIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjExOlx0XHRcdG10NzkyNV9tYWNfYWRkX3R4cyhkZXYsIHJ4ZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjEyLVx0XHRyZXR1cm4gZmFsc2U7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTIxNi19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjE3OkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyNV9yeF9jaGVjayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjE4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTIxOTp2b2lkIG10NzkyNV9xdWV1ZV9yeF9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCBlbnVtIG10NzZfcnhxX2lkIHEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjIwLVx0XHRcdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgKmluZm8pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI0My1cdFx0LyogUEtUX1RZUEVfVFhSWF9OT1RJRlkgY2FuIGJlIHJlY2VpdmVkIG9ubHkgYnkgbW1pbyBkZXZpY2VzICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjQ0Olx0XHRtdDc5MjVfbWFjX3R4X2ZyZWUoZGV2LCBza2ItXHUwMDNlZGF0YSwgc2tiLVx1MDAzZWxlbik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjQ1LVx0XHRuYXBpX2NvbnN1bWVfc2tiKHNrYiwgMSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI0Ny1cdGNhc2UgUEtUX1RZUEVfUlhfRVZFTlQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjQ4Olx0XHRtdDc5MjVfbWN1X3J4X2V2ZW50KGRldiwgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNDktXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNTEtXHRcdGZvciAocnhkICYjNDM7PSAyOyByeGQgJiM0MzsgOCBcdTAwM2M9IGVuZDsgcnhkICYjNDM7PSA4KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTI1MjpcdFx0XHRtdDc5MjVfbWFjX2FkZF90eHMoZGV2LCByeGQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI1My1cdFx0ZGV2X2tmcmVlX3NrYihza2IpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNTYtXHRjYXNlIFBLVF9UWVBFX05PUk1BTDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyNTc6XHRcdGlmICghbXQ3OTI1X21hY19maWxsX3J4KGRldiwgc2tiKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI1OC1cdFx0XHRtdDc2X3J4KFx1MDAyNmRldi1cdTAwM2VtdDc2LCBxLCBza2IpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNjYtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTI2NzpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MjVfcXVldWVfcnhfc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz0xMjY5PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjcwOm10NzkyNV92aWZfY29ubmVjdF9pdGVyKHZvaWQgKnByaXYsIHU4ICptYWMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjcxLVx0XHRcdHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI5MC1cdFx0XHRcdFx0ICAgIFx1MDAyNm12aWYtXHUwMDNlc3RhLmRlZmxpbmsud2NpZCwgdHJ1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjkxOlx0XHRtdDc5MjVfbWN1X3NldF90eChkZXYsIGJzc19jb25mKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyOTItXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI5Ni1cdFx0XHRcdFx0ICAgIHRydWUsIE5VTEwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTI5NzpcdFx0bXQ3OTI1X21jdV9zdGFfdXBkYXRlKGRldiwgTlVMTCwgdmlmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI5OC1cdFx0XHRcdCAgICAgIFx1MDAyNm12aWYtXHUwMDNlc3RhLmRlZmxpbmssIHRydWUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjk5LVx0XHRcdFx0ICAgICAgTVQ3Nl9TVEFfSU5GT19TVEFURV9OT05FKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEzMDA6XHRcdG10NzkyNV9tY3VfdW5pX2FkZF9iZWFjb25fb2ZmbG9hZChkZXYsIGh3LCB2aWYsIHRydWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTMwMS1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMzA0LS8qIHN5c3RlbSBlcnJvciByZWNvdmVyeSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTMwNTp2b2lkIG10NzkyNV9tYWNfcmVzZXRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMzA2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMzQ1LVx0XHRcdFx0XHQgICAgSUVFRTgwMjExX0lGQUNFX0lURVJfUkVTVU1FX0FMTCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEzNDY6XHRcdFx0XHRcdCAgICBtdDc5MjVfdmlmX2Nvbm5lY3RfaXRlciwgTlVMTCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMzQ3LVx0bXQ3Nl9jb25uYWNfcG93ZXJfc2F2ZV9zY2hlZChcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5waHksIHBtKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEzNDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMzQ5Olx0bXQ3OTI1X3JlZ2RfY2hhbmdlKFx1MDAyNmRldi1cdTAwM2VwaHksIFwmIzM0OzAwXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEzNTAtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTM1MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEzNTI6dm9pZCBtdDc5MjVfY29yZWR1bXBfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMzUzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMzc5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTM4MDpcdFx0c2tiX3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IG10NzkyNV9tY3VfcnhkKSAmIzQzOyA4KTtcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDA5OjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT45bTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxMDM1CgkJCQkJCQlvdXRwdXQ6IDQ1CgkJCQkJCQl0aG91Z2h0czogMzkzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTVQ3OTI1IERyaXZlciBmb3IgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgc28gbG9va2luZyBhdCB0aGlzIE1ha2VmaWxlIG91dHB1dCwgaXQgc2VlbXMgcHJldHR5IGNsZWFyIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggZHJpdmVycyBmb3IgTWVkaWF0ZWsmIzM5O3MgTVQ3OTI1IHdpcmVsZXNzIGNoaXAuIFNwZWNpZmljYWxseSwgbGluZXMgMy01IHNob3cgZGlmZmVyZW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyAoYENPTkZJR19NVDc5MjVfQ09NTU9OYCwgYENPTkZJR19NVDc5MjVFYCwgYENPTkZJR19NVDc5MjVVYCkgZWFjaCBsZWFkaW5nIHRvIGNvcnJlc3BvbmRpbmcgb2JqZWN0IGZpbGVzIChgbXQ3OTI1LWNvbW1vbi5vYCwgYG10NzkyNWUub2AsIGBtdDc5MjV1Lm9gKS4gTGluZSA5IGRlZmluZXMgYG10NzkyNWUteWAgYXMgYSBQQ0kgZHJpdmVyIHdpdGggYXNzb2NpYXRlZCBtb2R1bGVzLCBhbmQgbGluZSAxMCBkZWZpbmVzIGBtdDc5MjV1LXlgIGFzIGEgVVNCIGRyaXZlciB3aXRoIGp1c3QgdGhlIGB1c2Iub2AgbW9kdWxlLiBUaGlzIGlzIGludGVyZXN0aW5nIGZyb20gYSBmdXp6aW5nIHBlcnNwZWN0aXZlLiBUaGUgcXVlc3Rpb24gbm93IGlzLCBjYW4gd2UgZnV6eiB0aGlzIHdpdGhpbiBhIHZpcnR1YWxpemVkIHNldHVwPwoKR2l2ZW4gdGhlIFVTQiBhc3BlY3Qgb2YgYG10NzkyNXVgLCBJIGltbWVkaWF0ZWx5IHRoaW5rIG9mIHRoZSBVU0IgZnV6emluZyBjYXBhYmlsaXRpZXMgb2YgdG9vbHMgbGlrZSBzeXprYWxsZXIuIFVTQiBkcml2ZXJzIGFyZSBvZnRlbiBxdWl0ZSB2dWxuZXJhYmxlLCBlc3BlY2lhbGx5IHdpdGggdGhlIGNvbXBsZXhpdHkgb2YgVVNCIHByb3RvY29sIGhhbmRsaW5nLiBSZW1lbWJlciwgd2UgaGF2ZSB0aGUgb3B0aW9uIHRvIHNldCB1cCBkdW1teV9oY2Qgb3IgdmhjaS1oY2QgZm9yIFVTQiBmdXp6aW5nLiBXYWl0LCBzeXprYWxsZXIgaGFzIGEgZGVkaWNhdGVkIFVTQiBmdXp6ZXIgdGhhdCYjMzk7cyBleGNlbGxlbnQgYXQgZW11bGF0aW5nIFVTQiBkZXZpY2VzLiBJdCYjMzk7cyBleHRlbnNpdmUuCgpUaGUga2V5IHF1ZXN0aW9uIGlzLCBpcyBgbXQ3OTI1dWAgdGhhdCBraW5kIG9mIFVTQiBkcml2ZXI/IElmIHNvLCBhbmQgaXQgaW50ZXJhY3RzIHdpdGggYW4gYWN0dWFsIFVTQiBkZXZpY2UsIHRoZW4gd2UmIzM5O3JlIGdvbGRlbi4gU3l6a2FsbGVyJiMzOTtzIGBzeXpfdXNiX2Nvbm5lY3RgIHN5c3RlbSBjYWxsIGlzIGEgcHJpbWUgY2FuZGlkYXRlIGZvciBmdXp6aW5nIGl0LiBJIG5lZWQgdG8gY29uZmlybSB0aGF0IGBtdDc5MjV1YCBpcyBpbmRlZWQgYSBVU0IgZHJpdmVyIHRoYXQgYmluZHMgdG8gYSBVU0IgZGV2aWNlLCB0aG91Z2guCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjYgMDk6NTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dXNiX2RyaXZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jPTM0NT1NT0RVTEVfRklSTVdBUkUoTVQ3OTI1X1JPTV9QQVRDSCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYy0zNDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYzozNDc6c3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIG10NzkyNXVfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmMtMzQ4LVx0Lm5hbWVcdFx0PSBLQlVJTERfTU9ETkFNRSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYy0zNTktfTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jOjM2MDptb2R1bGVfdXNiX2RyaXZlcihtdDc5MjV1X2RyaXZlcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYy0zNjEtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjYgMDk6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjIxMzMKCQkJCQkJCW91dHB1dDogNDgKCQkJCQkJCXRob3VnaHRzOiAxNDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBWdWxuZXJhYmlsaXR5IFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBjb25maXJtaW5nIHRoYXQgYG10NzkyNXVgIGlzIGluZGVlZCB0aGUgVVNCIGRyaXZlciDigJMgbWFrZXMgc2Vuc2UuIFRoZSBwYXRjaCBpbXBhY3RzIGBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcmAgd2l0aGluIGBtYWluLmNgIGFuZCBgbXQ3OTI1X21jdV9jb25maWdfc25pZmZlcmAgaW4gYG1jdS5jYC4gUmlnaHQsIGFuZCB0aGVzZSBhcmUgYm90aCBwYXJ0IG9mIHRoZSAqY29tbW9uKiBjb2RlLCBgbXQ3OTI1LWNvbW1vbi5vYC4gVGhhdCYjMzk7cyBpbXBvcnRhbnQ7IGl0IG1lYW5zIGJvdGggdGhlIFBDSWUgYW5kIFVTQiB2YXJpYW50cyBsZXZlcmFnZSB0aGVzZSBmdW5jdGlvbnMuCgpTaW5jZSB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGEgVVNCIGRyaXZlciwgdGhlIGltcGxpY2F0aW9ucyBhcmUgaW1tZWRpYXRlbHkgY2xlYXI6IHRoaXMgY29kZSBpcyBwb3RlbnRpYWxseSByZWFjaGFibGUgdGhyb3VnaCBmdXp6aW5nIOKAkyBzcGVjaWZpY2FsbHksIHRoZSBgc3l6X3VzYl9jb25uZWN0YCBjYWxsIHdpdGhpbiBzeXprYWxsZXIuIFRoYXQmIzM5O3MgYSBjbGFzc2ljIGF0dGFjayB2ZWN0b3IgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gVGhlIGZhY3QgdGhhdCB0aGUgVVNCIGVtdWxhdGlvbiBpcyB3b3JraW5nIG1ha2VzIHRoaXMgcGFydGljdWxhcmx5IGludGVyZXN0aW5nLgoKSG9sZCBvbiBhIHNlY29uZCwgbGV0IG1lIGp1c3QgcXVpY2tseSBjb25maXJtIHRoYXQgYG10NzkyNV9jb25maWd1cmVfZmlsdGVyYCBpcyAqYWN0dWFsbHkqIHJlYWNoYWJsZSB3aXRoaW4gdGhlIGV4ZWN1dGlvbiBwYXRoLiBBbHdheXMgYSBnb29kIGRvdWJsZS1jaGVjayBiZWZvcmUgZ2V0dGluZyBhaGVhZCBvZiBteXNlbGYuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjYgMTA6MDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTgwNT1zdGF0aWMgaW50IG10NzkyNV9jb25maWcoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIGludCByYWRpb19pZHgsIHUzMiBjaGFuZ2VkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy04MjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6ODMwOnN0YXRpYyB2b2lkIG10NzkyNV9jb25maWd1cmVfZmlsdGVyKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTgzMS1cdFx0XHRcdCAgICB1bnNpZ25lZCBpbnQgY2hhbmdlZF9mbGFncyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MjQ4Mz1jb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc5MjVfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0yNDkwLVx0LmNvbmZfdHggPSBtdDc5MjVfY29uZl90eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoyNDkxOlx0LmNvbmZpZ3VyZV9maWx0ZXIgPSBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0yNDkyLVx0LnN0YXJ0X2FwID0gbXQ3OTI1X3N0YXJ0X2FwLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDEwOjAxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyOTQ3CgkJCQkJCQlvdXRwdXQ6IDUxCgkJCQkJCQl0aG91Z2h0czogNzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBOZXR3b3JrIEZpbHRlciBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcmAgZnVuY3Rpb24uIFRoZSBmYWN0IHRoYXQgaXQmIzM5O3MgYW4gYGllZWU4MDIxMV9vcHNgIGNhbGxiYWNrIGltbWVkaWF0ZWx5IHRlbGxzIG1lIGl0JiMzOTtzIHRpZWQgZGlyZWN0bHkgaW50byB0aGUgbWFjODAyMTEgc3Vic3lzdGVtLiBUaGF0IG1lYW5zIHdoZW4gdGhlIGZpbHRlciBjb25maWd1cmF0aW9uIGlzIGNoYW5nZWQsIG1hYzgwMjExIHdpbGwgY2FsbCAqdGhpcyogZnVuY3Rpb24gc3BlY2lmaWNhbGx5LiBNYWtlcyBzZW5zZS4gQnV0IEkmIzM5O20gYWxzbyBzZWVpbmcgYG10NzkyNV9tY3VfY29uZmlnX3NuaWZmZXJgIGluIHRoZSBjb2RlLCBhbmQgSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRoYXQmIzM5O3MgcmVsYXRlZC4gSXQmIzM5O3MgKm5vdCogYSBjYWxsYmFjaywgc28gaXQmIzM5O3MgYmVpbmcgY2FsbGVkIGZyb20gc29tZXdoZXJlIGVsc2UuIFRpbWUgdG8gZ28gaHVudGluZyBhbmQgdHJhY2Ugd2hlcmUgdGhhdCBjYWxsIGlzIG9yaWdpbmF0aW5nIGZyb20uIEkmIzM5O2xsIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhlIGhhcmR3YXJlIGZpbHRlciBhbmQgdGhlIHNuaWZmZXIgY29uZmlndXJhdGlvbiB0byBnZXQgYSBmdWxsIHBpY3R1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDEwOjAxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210NzkyNV9tY3VfY29uZmlnX3NuaWZmZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTE5MzY9bXQ3OTI1X2NoYW5nZV9jaGFuY3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xOTU1LVx0XHRtdDc5MjVfbWN1X3NldF9zbmlmZmVyKG12aWYtXHUwMDNlcGh5LVx1MDAzZWRldiwgdmlmLCB0cnVlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxOTU2Olx0XHRtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyKG12aWYsIGN0eCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTk1Ny1cdH0gZWxzZSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM9MjE3ND1pbnQgbXQ3OTI1X21jdV9zZXRfc25pZmZlcihzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTIyMDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzoyMjAzOmludCBtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyKHN0cnVjdCBtdDc5MnhfdmlmICp2aWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0yMjA0LVx0XHRcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbXQ3OTI1Lmg9MzYxPWludCBtdDc5MjVfbWN1X3NldF9zbmlmZmVyKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tdDc5MjUuaC0zNjItXHRcdFx0ICAgYm9vbCBlbmFibGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbXQ3OTI1Lmg6MzYzOmludCBtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyKHN0cnVjdCBtdDc5MnhfdmlmICp2aWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tdDc5MjUuaC0zNjQtXHRcdFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDEwOjAxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzODg3CgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogMTEyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIE1UNzkyNSBNQ1UgQ29uZmlndXJhdGlvbiBmb3IgU25pZmZpbmcqKgoKT2theSwgc28gYG10NzkyNV9tY3VfY29uZmlnX3NuaWZmZXJgIGlzIGJlaW5nIGNhbGxlZCBmcm9tIGBtdDc5MjVfY2hhbmdlX2NoYW5jdHhgLiBUaGF0JiMzOTtzIGludGVyZXN0aW5nLCBhbmQgYG10NzkyNV9jaGFuZ2VfY2hhbmN0eGAgaXMgYW4gYGllZWU4MDIxMV9vcHNgIGNhbGxiYWNrLCBvciBhdCBsZWFzdCBjYWxsZWQgZnJvbSBvbmUuIFRoaXMgbWVhbnMgYm90aCBvZiB0aGVzZSBmdW5jdGlvbnMsIHRoZSBzbmlmZmVyIGNvbmZpZ3VyYXRpb24gYW5kIHRoZSBjaGFubmVsIGNvbnRleHQgY2hhbmdlLCBhcmUgYWNjZXNzaWJsZSB0aHJvdWdoIHN0YW5kYXJkIG1hYzgwMjExIG9wZXJhdGlvbnMsIHdoaWNoIGlzIGdvb2QgdG8ga25vdy4gQW5kIGJlY2F1c2UgdGhpcyBpcyBhIFVTQiBkcml2ZXIsIGl0IGltbWVkaWF0ZWx5IG9wZW5zIHVwIGZ1enppbmcgcG9zc2liaWxpdGllcyB2aWEgVVNCIGVtdWxhdGlvbi4gVGhhdCYjMzk7cyBhIHNvbGlkIGF0dGFjayBzdXJmYWNlLiBOb3csIGJlZm9yZSBJIGdldCB0b28gZXhjaXRlZCBhbmQgc3RhcnQgbWFwcGluZyBvdXQgZnV6emluZyBzdHJhdGVnaWVzLCBJIHNob3VsZCBwcm9iYWJseSBjaGVjayBpZiB0aGVyZSYjMzk7cyBhbnkgc3BlY2lmaWMgaGFyZHdhcmUgY29uZmlndXJhdGlvbiByZXF1aXJlZCBmb3IgdGhlIHNuaWZmZXIgdG8gd29yay4gVGltZSB0byBjb25zdWx0IHRoZSBLY29uZmlnIGZvciBgTVQ3OTI1VWAgYW5kIHNlZSBpZiBhbnkgc3BlY2lmaWMgc2V0dGluZ3MgbmVlZCB0byBiZSBlbmFibGVkIGJlZm9yZSBJIGNhbiBwcm9jZWVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTVQ3OTI1VSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnPTc9Y29uZmlnIE1UNzkyNUVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnLTE4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZzoxOTpjb25maWcgTVQ3OTI1VVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZy0yMC1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyNVUgKFVTQikgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNDQxMwoJCQkJCQkJb3V0cHV0OiA0NwoJCQkJCQkJdGhvdWdodHM6IDE1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQW5hbHl6aW5nIHRoZSBNVDc5MjVVIERlcGVuZGVuY2llcyoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIFRoZSByZXF1ZXN0IGlzIGNsZWFyOiBJIG5lZWQgdG8gYXNjZXJ0YWluIHRoZSBkZXBlbmRlbmNpZXMgZm9yIHRoZSBgTVQ3OTI1VWAuIE15IGltbWVkaWF0ZSBhcHByb2FjaCB3aWxsIGJlIHRvIGJlZ2luIGJ1aWxkaW5nIGEgbWVudGFsIG1hcC4gSSYjMzk7bGwgbmVlZCB0byBjb25zaWRlciB0aGlzIGZyb20gYSBmZXcgYW5nbGVzLgoKRmlyc3QsIHRoZSBoYXJkd2FyZSBsZXZlbC4gV2hhdCBhcmUgdGhlIGV4dGVybmFsIGludGVyZmFjZXMgb2YgdGhlIGBNVDc5MjVVYD8gVVNCPyBQQ0llPyBXaGF0IGFjY29tcGFueWluZyBjb21wb25lbnRzIGFyZSB0eXBpY2FsbHkgcGFpcmVkIHdpdGggdGhpcyBjaGlwIHRvIGZvcm0gYSBmdW5jdGlvbmFsIFdpRmkgbW9kdWxlPyBUcmFuc2NlaXZlcnMsIHBvd2VyIG1hbmFnZW1lbnQsIGNsb2NrcyDigJMgdGhlIHVzdWFsIHN1c3BlY3RzLiBJJiMzOTtsbCBuZWVkIHRvIGtub3cgd2hpY2ggb2YgdGhlc2UgYXJlIGludGVncmF0ZWQgb24tZGllIGFuZCB3aGljaCBhcmUgZXh0ZXJuYWwgYW5kIHRodXMsIHdoYXQgdGhlIHBpbi1vdXRzIGFyZS4gVGhlIGRhdGEgc2hlZXQgaXMgdGhlIG5hdHVyYWwgc3RhcnRpbmcgcG9pbnQsIGJ1dCBJJiMzOTtsbCBhbHNvIGNvbnNpZGVyIGV4aXN0aW5nIGltcGxlbWVudGF0aW9ucy4KCk5leHQsIHRoZSBmaXJtd2FyZSBhbmQgc29mdHdhcmUgbGV2ZWwuIFdoYXQgZHJpdmVyIHN1cHBvcnQgaXMgYXZhaWxhYmxlPyBJcyBpdCBvcGVuLXNvdXJjZSwgb3IgcHJvcHJpZXRhcnk/IFdoYXQgb3RoZXIga2VybmVsIG1vZHVsZXMgb3IgbGlicmFyaWVzIGlzIHRoZSBkcml2ZXIgYnVpbHQgdXBvbj8gQXJlIHRoZXJlIGFueSB1cHN0cmVhbSBwYXRjaGVzIHRoYXQgYWRkcmVzcyB0aGlzIGNoaXA/IE15IGdvYWwgaXMgdG8gcXVpY2tseSBwaW5wb2ludCB0aGUga2V5IGFic3RyYWN0aW9ucyB0aGF0IG1hbmFnZSB0aGUgaGFyZHdhcmUgYW5kIGlkZW50aWZ5IHRoZSBzb2Z0d2FyZSBpbnRlcmZhY2VzLiBUaGlzIHdpbGwgaW5jbHVkZSBjb25zaWRlcmF0aW9ucyBmb3IgYW55IGZpcm13YXJlIGJsb2JzIHRoYXQgbWlnaHQgYmUgcmVxdWlyZWQgYW5kIHRoZWlyIGxvY2F0aW9uIHdpdGhpbiB0aGUgc3lzdGVtIG9yIGJvb3QgcHJvY2Vzcy4gSSYjMzk7bGwgYWxzbyBjaGVjayBmb3IgYW55IHNwZWNpZmljIHNlY3VyaXR5IGNvbnNpZGVyYXRpb25zLgoKSSYjMzk7bGwgYmUgbWluZGZ1bCBvZiB0aGUgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQuIENyb3NzLWNvbXBpbGF0aW9uPyBUYXJnZXQgYXJjaGl0ZWN0dXJlPyBJZiB0aGVyZSYjMzk7cyBhbiBTREsgYXZhaWxhYmxlLCBJJiMzOTtsbCBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIHN0cnVjdHVyZSwgYnVpbGQgc3lzdGVtLCBhbmQgYW55IHByb3ByaWV0YXJ5IGhlYWRlcnMgb3IgbGlicmFyaWVzIGl0IGRlcGVuZHMgb24uIEkmIzM5O2xsIG1lbnRhbGx5IGNhdGVnb3JpemUgdGhlIGRlcGVuZGVuY2llcyDigJMgY29yZSBrZXJuZWwgZmVhdHVyZXMsIGRldmljZS1zcGVjaWZpYyBkcml2ZXJzLCBib2FyZC1zcGVjaWZpYyBhZGFwdGF0aW9ucywgYW5kIG1heWJlIGV2ZW4gdXNlci1zcGFjZSB1dGlsaXRpZXMuIEFuZCBvZiBjb3Vyc2UsIEkmIzM5O2xsIGJlIGF3YXJlIG9mIHBvdGVudGlhbCBjb25mbGljdHMgd2l0aCBvdGhlciBkcml2ZXJzIG9yIGhhcmR3YXJlIGNvbXBvbmVudHMgYWxyZWFkeSBwcmVzZW50IG9uIHRoZSBwbGF0Zm9ybS4KClRoZSBlbmQgZ2FtZSBpcyB0byBjcmVhdGUgYSBjb21wbGV0ZSBkZXBlbmRlbmN5IGdyYXBoLCBhbGxvd2luZyBtZSB0byB1bmRlcnN0YW5kIHRoZSBjb21wbGV0ZSBhcmNoaXRlY3R1cmUuIFRoaXMgd2lsbCBlbmFibGUgbWUgdG8gbWFrZSBpbmZvcm1lZCBkZWNpc2lvbnMgYWJvdXQgdGhlIGRldmVsb3BtZW50IG9yIGludGVncmF0aW9uIGVmZm9ydCwgcG90ZW50aWFsIHByb2JsZW1zLCBhbmQgdGhlIGNvbXBsZXhpdHkgcmVxdWlyZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDEwOjAxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuICAgMjpcdGNvbmZpZyBNVDc5MjVfQ09NTU9OXG4gICAzOlx0XHR0cmlzdGF0ZVxuICAgNDpcdFx0c2VsZWN0IE1UNzkyeF9MSUJcbiAgIDU6XHRcdHNlbGVjdCBXQU5UX0RFVl9DT1JFRFVNUFxuICAgNjpcdFxuICAgNzpcdGNvbmZpZyBNVDc5MjVFXG4gICA4Olx0XHR0cmlzdGF0ZSBcJiMzNDtNZWRpYVRlayBNVDc5MjVFIChQQ0llKSBzdXBwb3J0XCYjMzQ7XG4gICA5Olx0XHRzZWxlY3QgTVQ3OTI1X0NPTU1PTlxuICAxMDpcdFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxuICAxMTpcdFx0ZGVwZW5kcyBvbiBQQ0lcbiAgMTI6XHRcdGhlbHBcbiAgMTM6XHRcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIE1UNzkyNS1iYXNlZCB3aXJlbGVzcyBQQ0llIGRldmljZXMsXG4gIDE0Olx0XHQgIHdoaWNoIHN1cHBvcnQgb3BlcmF0aW9uIGF0IDZHSHosIDVHSHosIGFuZCAyLjRHSHogSUVFRSA4MDIuMTFiZVxuICAxNTpcdFx0ICAyeDI6MlNTIDQwOTYtUUFNLCAxNjBNSHogY2hhbm5lbHMuXG4gIDE2Olx0XG4gIDE3Olx0XHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuXG4gIDE4Olx0XG4gIDE5Olx0Y29uZmlnIE1UNzkyNVVcbiAgMjA6XHRcdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyNVUgKFVTQikgc3VwcG9ydFwmIzM0O1xuICAyMTpcdFx0c2VsZWN0IE1UNzkyeF9VU0JcbiAgMjI6XHRcdHNlbGVjdCBNVDc5MjVfQ09NTU9OXG4gIDIzOlx0XHRkZXBlbmRzIG9uIE1BQzgwMjExXG4gIDI0Olx0XHRkZXBlbmRzIG9uIFVTQlxuICAyNTpcdFx0aGVscFxuICAyNjpcdFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3OTI1LWJhc2VkIHdpcmVsZXNzIFVTQiBkZXZpY2VzLFxuICAyNzpcdFx0ICB3aGljaCBzdXBwb3J0IG9wZXJhdGlvbiBhdCA2R0h6LCA1R0h6LCBhbmQgMi40R0h6IElFRUUgODAyLjExYmVcbiAgMjg6XHRcdCAgMngyOjJTUyA0MDk2LVFBTSwgMTYwTUh6IGNoYW5uZWxzLlxuICAyOTpcdFxuICAzMDpcdFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTM4OAoJCQkJCQkJb3V0cHV0OiA0OQoJCQkJCQkJdGhvdWdodHM6IDM1MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgTVQ3OTI1VSBDb25maWd1cmF0aW9uIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpbW1lZGlhdGVseSwgdGhlIGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IHRoZSByZXF1aXJlZCBjb25maWcgaXMgbGlzdGVkIGFzIGBNVDc5MjVVYC4gSG93ZXZlciwgaXQmIzM5O3MgY2xlYXIgYWZ0ZXIgYSBtb21lbnQgdGhhdCB0aGUgY29yZSBjb2RlIGJlaW5nIG1vZGlmaWVkIGlzIGFjdHVhbGx5IHNoYXJlZCwgc3BlY2lmaWNhbGx5IGBtdDc5MjUtY29tbW9uLm9gLiBUaGF0IHRlbGxzIG1lIHRoZSByZWFsIGNvbnRyb2xsaW5nIGNvbmZpZyBvcHRpb24gaXMgYE1UNzkyNV9DT01NT05gLCB3aGljaCBnZXRzIGVuYWJsZWQgKnRocm91Z2gqIGBNVDc5MjVVYCBhbmQgYE1UNzkyNUVgLiBTbywgdG8gdGVzdCB0aGlzIHZpYSBVU0IgZW11bGF0aW9uLCBlbmFibGluZyBgTVQ3OTI1VWAgaXMgdGhlIGNvcnJlY3QgcGF0aC4gSXQmIzM5O3MgYSBxdWljayBub3RlIHRvIGFsc28gbWFrZSBzdXJlIEkgY2hlY2sgZm9yIHRoZSBkZXBlbmRlbmNpZXMgLSBgTUFDODAyMTFgIGFuZCBgVVNCYCwgb2YgY291cnNlLgoKTmV4dCwgSSBuZWVkIHRvIHBpbnBvaW50IHRoZSBjcml0aWNhbCBwYXJ0cy4gSSB3YW50IHRvIHNlZSBpZiB0aGVyZSBhcmUgc3BlY2lmaWMgZnVuY3Rpb25zIGltcGFjdGVkLiBSaWdodCwgdGhlIHBhdGNoIG1vZGlmaWVzIGBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcmAgYW5kIGBtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyYC4KCk5vdywgSSYjMzk7bGwgY2hlY2sgdGhlIHZpc2liaWxpdHkgb2YgdGhvc2UgZnVuY3Rpb25zLiBgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXJgIGlzIHN0YXRpYyB3aXRoaW4gYG1haW4uY2AuIEl0JiMzOTtzIGFzc2lnbmVkIHRvIGBpZWVlODAyMTFfb3BzLmNvbmZpZ3VyZV9maWx0ZXJgLiBCZWNhdXNlIGl0JiMzOTtzIHN0YXRpYywgaXQgd29uJiMzOTt0IGhhdmUgYSBkaXN0aW5jdCBzeW1ib2wgaW4gbWFueSBidWlsZHMsIHVubGVzcyBpdCYjMzk7cyBub3QgaW5saW5lZCwgd2hpY2ggaXMgd29ydGggY29uc2lkZXJpbmcgbGF0ZXIuIGBtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyYCwgb24gdGhlIG90aGVyIGhhbmQsIGlzbiYjMzk7dCBzdGF0aWMgaW4gYG1jdS5jYC4gSSBhbHNvIHNlZSB0aGF0IGl0IGlzIGNhbGxlZCBmcm9tIGBtdDc5MjVfY2hhbmdlX2NoYW5jdHhgIGluIGBtYWluLmNgLgoKU2luY2UgdGhlIHNuaWZmZXIgY29uZmlndXJhdGlvbiBmdW5jdGlvbiBpc24mIzM5O3Qgc3RhdGljLCBpdCYjMzk7cyBhIGtleSBzeW1ib2wuIExldCYjMzk7cyBtYWtlIHN1cmUgdGhhdCB0aGF0IGlzIGhhbmRsZWQgY29ycmVjdGx5LiBgbXQ3OTI1X2NoYW5nZV9jaGFuY3R4YCBpcyBhbHNvIG5vdCBzdGF0aWMuCgpJJiMzOTttIG5vdyBnb2luZyB0byBmb2N1cyBteSBhdHRlbnRpb24gb24gYG10NzkyNV9jaGFuZ2VfY2hhbmN0eGAgd2l0aGluIGBtYWluLmNgIGJlY2F1c2UgaXQgaXMgbm90IHN0YXRpYywgYW5kIGlzIGEgY2xlYXIgZW50cnkgcG9pbnQgdG8gdGhlIHNuaWZmZXIgY29uZmlndXJhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjYgMTA6MDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTI1X2NoYW5nZV9jaGFuY3R4JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0xOTM1PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTkzNjptdDc5MjVfY2hhbmdlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTkzNy1cdFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MjQ4Mz1jb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc5MjVfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0yNTM1LVx0LnJlbW92ZV9jaGFuY3R4ID0gbXQ3OTI1X3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjI1MzY6XHQuY2hhbmdlX2NoYW5jdHggPSBtdDc5MjVfY2hhbmdlX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMjUzNy1cdC5hc3NpZ25fdmlmX2NoYW5jdHggPSBtdDc5MjVfYXNzaWduX3ZpZl9jaGFuY3R4LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjU5MwoJCQkJCQkJb3V0cHV0OiAxNjMKCQkJCQkJCXRob3VnaHRzOiA3MTEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgRnV6emluZyBTdHJhdGVneSoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBiZWVuIGxvb2tpbmcgb3ZlciB0aGlzIGNvZGUgYW5kIHRoaW5raW5nIGFib3V0IHRoZSBiZXN0IGZ1enppbmcgYXBwcm9hY2guIEkgc2VlIHRoYXQgYG10NzkyNV9jb25maWd1cmVfZmlsdGVyYCBpcyBzdGF0aWMsIHdoaWNoIHVzdWFsbHkgd291bGQgbWFrZSBtZSBoZXNpdGFudCwgYnV0IGJlY2F1c2UgaXQmIzM5O3MgcGFydCBvZiB0aGUgYGllZWU4MDIxMV9vcHNgIGNhbGxiYWNrLCBJJiMzOTttIHByZXR0eSBzdXJlIGl0JiMzOTtzIGFkZHJlc3MtdGFrZW4gYW5kIHdvbiYjMzk7dCBiZSBpbmxpbmVkIGF3YXkgY29tcGxldGVseS4gVGhhdCBtYWtlcyBpdCBhIGdvb2QgY2FuZGlkYXRlLCBhbG9uZyB3aXRoIHRoZSBub24tc3RhdGljIGBtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyYC4gSSYjMzk7dmUgZG91YmxlLWNoZWNrZWQgdGhvc2UgZnVuY3Rpb24gbmFtZXMsIGp1c3QgdG8gYmUgc3VyZS4KCkkmIzM5O3ZlIGFsc28gdmVyaWZpZWQgdGhhdCB0aGUgbmVjZXNzYXJ5IGNvbmZpZ3MgYXJlIGVuYWJsZWQgYnkgdGhlIGBNVDc5MjVVYCwgYE1BQzgwMjExYCwgYW5kIGBVU0JgIGNvbmZpZ3VyYXRpb25zLiBgTVQ3OTI1VWAgcHVsbHMgaW4gYE1UNzkyNV9DT01NT05gLCB3aGljaCBpcyB3aGF0IEkgbmVlZC4KClRoaXMgcGF0Y2ggaXMgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlIOKAkyBpdCBtb2RpZmllcyB0aGUgYGRyb3BfZXJyYCBmbGFnIGJhc2VkIG9uIHRoZSBgcnhmaWx0ZXJgLiBJJiMzOTttIHNlZWluZyBpdCBjaGFuZ2VzIHRoZSBzbmlmZmVyIGNvbmZpZ3VyYXRpb24gYmFzZWQgb24gdGhlIHJlY2VpdmVkIGZpbHRlci4gU28sIGZ1enppbmcgdGhlc2UgdHdvIGZ1bmN0aW9ucyB3aWxsIGJlIGEgZ29vZCB3YXkgdG8gdGVzdCB0aGlzLgoKSSYjMzk7bSBzZXR0aW5nIGBXb3J0aEZ1enppbmc9dHJ1ZWAgYW5kIG15IGBGb2N1c1N5bWJvbHNgIHRvIGBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcmAgYW5kIGBtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyYCwgYW5kIEkgd2lsbCBlbmFibGUgdGhlIGNvbmZpZ3MgSSYjMzk7dmUgbWVudGlvbmVkLgoKRnJvbSB3aGF0IEkgY2FuIHNlZSwgSSBzaG91bGQgYmUgYWJsZSB0byB0cmlnZ2VyIHRoaXMgZnVuY3Rpb25hbGl0eSB0aHJvdWdoIFVTQiBlbXVsYXRpb24gdXNpbmcgdGhlIGBtdDc5MjV1YCBkcml2ZXIuIE5vdyBJJiMzOTtsbCBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDEwOjAxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNVDc5MjVVJiMzNDssCiAgICAmIzM0O01BQzgwMjExJiMzNDssCiAgICAmIzM0O1VTQiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O210NzkyNV9jb25maWd1cmVfZmlsdGVyJiMzNDssCiAgICAmIzM0O210NzkyNV9tY3VfY29uZmlnX3NuaWZmZXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhdGVrIE1UNzkyNSB3aXJlbGVzcyBkcml2ZXIgdG8gY29uZmlndXJlIHRoZSBzbmlmZmVyJiMzOTtzIGRyb3BfZXJyIGZsYWcgYmFzZWQgb24gdGhlIHJ4ZmlsdGVyIHNldHRpbmdzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlciYjMzk7cyBtYWM4MDIxMSBjYWxsYmFja3MuIFRoZSBkcml2ZXIgaGFzIGEgVVNCIHZhcmlhbnQgKG10NzkyNXUpIHdoaWNoIGNhbiBiZSBmdXp6ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSBVU0IgZW11bGF0aW9uIChzeXpfdXNiX2Nvbm5lY3QpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNVDc5MjVVJiMzNDssCiAgICAmIzM0O01BQzgwMjExJiMzNDssCiAgICAmIzM0O1VTQiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O210NzkyNV9jb25maWd1cmVfZmlsdGVyJiMzNDssCiAgICAmIzM0O210NzkyNV9tY3VfY29uZmlnX3NuaWZmZXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhdGVrIE1UNzkyNSB3aXJlbGVzcyBkcml2ZXIgdG8gY29uZmlndXJlIHRoZSBzbmlmZmVyJiMzOTtzIGRyb3BfZXJyIGZsYWcgYmFzZWQgb24gdGhlIHJ4ZmlsdGVyIHNldHRpbmdzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlciYjMzk7cyBtYWM4MDIxMSBjYWxsYmFja3MuIFRoZSBkcml2ZXIgaGFzIGEgVVNCIHZhcmlhbnQgKG10NzkyNXUpIHdoaWNoIGNhbiBiZSBmdXp6ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSBVU0IgZW11bGF0aW9uIChzeXpfdXNiX2Nvbm5lY3QpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDEwOjAxPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgZmllbGQgYHJ4ZmlsdGVyYCB0byBgc3RydWN0IG10NzkyeF9waHlgIHRvIHN0b3JlIHRoZSBSWCBmaWx0ZXIgZmxhZ3MuIFRoaXMgc3RydWN0dXJlIGlzIGVtYmVkZGVkIGluIGBzdHJ1Y3QgbXQ3OTJ4X2RldmAsIHdoaWNoIGlzIGFsbG9jYXRlZCB2aWEgYG10NzZfYWxsb2NfZGV2aWNlYCAtXHUwMDNlIGBpZWVlODAyMTFfYWxsb2NfaHdgIC1cdTAwM2UgYHdpcGh5X25ld19ubWAgdXNpbmcgYGt6YWxsb2NgLiBUaHVzLCB0aGUgbmV3IGZpZWxkIGlzIGZ1bGx5IHplcm8taW5pdGlhbGl6ZWQgdXBvbiBhbGxvY2F0aW9uLiBUaGUgcGF0Y2ggdGhlbiB3cml0ZXMgdG8gdGhpcyBmaWVsZCBpbiBgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXJgIGFuZCByZWFkcyBmcm9tIGl0IGluIGBtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyYCB0byBjb25kaXRpb25hbGx5IHNldCB0aGUgYGRyb3BfZXJyYCBmbGFnIGluIGEgaGFyZHdhcmUgY29uZmlndXJhdGlvbiByZXF1ZXN0LiBUaGVyZSBhcmUgbm8gbmV3IGFsbG9jYXRpb25zLCBubyBzdHJ1Y3R1cmVzIGNvcGllZCB0byB1c2VyIHNwYWNlLCBhbmQgbm8gY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHMgY291bGQgYmUgcmVhZC4gQW55IHBvdGVudGlhbCBidWdzIGludHJvZHVjZWQgYnkgdGhpcyBwYXRjaCB3b3VsZCBiZSByZWxhdGVkIHRvIGluY29ycmVjdCBsb2dpYyBvciBvdXQtb2YtYm91bmRzIGFjY2Vzcywgd2hpY2ggYXJlIHdlbGwtY292ZXJlZCBieSBzdGFuZGFyZCBLQVNBTiBhbmQgb3RoZXIgYnVnIGRldGVjdG9ycy4gVGhlcmUgaXMgbm8gcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzIHRoYXQgd291bGQgcmVxdWlyZSBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24uJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIHNlY3VyaXR5IGVuZ2luZWVyIHNwZWNpYWxpemluZyBpbiBrZXJuZWwgbWVtb3J5CmVycm9yIGRldGVjdG9ycyAoS0FTQU4gYW5kIEtNU0FOKS4gWW91ciBqb2IgaXMgdG8gcmV2aWV3IHRoZSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kCmRldGVybWluZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGp1c3RpZnkgc3Bhd25pbmcgYSBkZWRpY2F0ZWQgS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikKZnV6emluZyBzZXNzaW9uIGluIGFkZGl0aW9uIHRvIHN0YW5kYXJkIEtBU0FOIGZ1enppbmcuCgpDUklUSUNBTCBESVNUSU5DVElPTiBCRVRXRUVOIEtBU0FOIEFORCBLTVNBTjoKLSBTdGFuZGFyZCBLQVNBTiBrZXJuZWwgYnVpbGRzICh1cHN0cmVhbS1hcHBhcm1vci1rYXNhbi5jb25maWcpIGFscmVhZHkgZW5hYmxlCiAgYSBjb21wcmVoZW5zaXZlIHN1aXRlIG9mIGRlYnVnZ2luZyB0b29scyBhbmQgc2FuaXRpemVycywgaW5jbHVkaW5nIEtBU0FOCiAgKG91dC1vZi1ib3VuZHMgYWNjZXNzZXMsIHVzZS1hZnRlci1mcmVlLCBkb3VibGUgZnJlZSwgaW52YWxpZCBmcmVlKSwgTE9DS0RFUAogIChsb2NraW5nIGJ1Z3MgYW5kIGRlYWRsb2NrcyksIFVCLXNhbml0aXplcnMsIGFuZCBtZW1vcnkgY29ycnVwdGlvbiBjaGVja3MuCi0gS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikgZGV0ZWN0cyByZWFkcyBvZiBVTklOSVRJQUxJWkVEIG1lbW9yeSAoc3RhY2ssIGhlYXAsCiAgb3IgcGFnZSBhbGxvY2F0aW9ucykgYW5kIGtlcm5lbC10by11c2VyIG1lbW9yeSBpbmZvLWxlYWtzLgoKUnVsZTogVEhFUkUgSVMgTk8gU0VOU0UgSU4gUlVOTklORyBBIEtNU0FOIFNFU1NJT04gSUYgQSBCVUcgQ0FOIEJFIENBVUdIVCBCWSBLQVNBTiwKTE9DS0RFUCwgT1IgT1RIRVIgU1RBTkRBUkQgQlVHIERFVEVDVE9SUy4KQSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGluY3VycyBzaWduaWZpY2FudCByZXNvdXJjZSBjb3N0cy4gWW91IG11c3QgT05MWQpzZXQgTmVlZHNLTVNBTj10cnVlIGlmIHRoZSBjb2RlIGNoYW5nZXMgaW50cm9kdWNlIG9yIGV4cG9zZSBVTklOSVRJQUxJWkVEIE1FTU9SWSByaXNrcwp0aGF0IGFyZSBkZXRlY3RlZCBPTkxZIGJ5IEtNU0FOLgoKTG9vayBob2xpc3RpY2FsbHkgYXQgdGhlIHBhdGNoIHNlcmllcyBhbmQgc3Vycm91bmRpbmcgY29kZS4gRXZlbiBpZiBubyBkaXJlY3QKdW5pbml0aWFsaXplZCBmaWVsZCBhY2Nlc3NlcyBvciBuZXcgYnVmZmVyIGFsbG9jYXRpb25zIGFyZSBhZGRlZCBpbiB0aGUgZGlmZiBpdHNlbGYsCmEgcGF0Y2ggbWF5IGFsdGVyIGNvbnRyb2wgZmxvdywgYm91bmRzIGNoZWNraW5nLCBvciBkYXRhIGxlbmd0aCBjYWxjdWxhdGlvbnMgaW4gd2F5cwp0aGF0IGNoYW5nZSBob3cgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgb3BlcmF0ZXMgb24gZXhpc3RpbmcgYnVmZmVycyAoZS5nLiBhbGxvd2luZwp1bmluaXRpYWxpemVkIHN0YWNrL2hlYXAgbWVtb3J5IHRvIGJlIHJlYWQsIGNvcGllZCB0byB1c2VyIHNwYWNlLCBvciB1c2VkIGluIGNvbnRyb2wKZmxvdykuIERvIG5vdCBoZXNpdGF0ZSB0byB1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlLApjYWxsZWQgZnVuY3Rpb25zLCBhbmQgY2FsbGVycy4KClNldCBOZWVkc0tNU0FOPXRydWUgT05MWSBJRiB0aGUgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllczoKMS4gS2VybmVsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlICh2aWEgY29weV90b191c2VyLCBwdXRfdXNlciwgbmV0bGluayBza2IKICAgYXR0cmlidXRlcywgaW9jdGwgb3V0cHV0IGFyZ3VtZW50cywgc29ja2V0IG9wdGlvbnMsIG9yIEJQRiBidWZmZXJzKSB3aGVyZSBmaWVsZHMKICAgb3Igc3RydWN0dXJlIHBhZGRpbmcgbWlnaHQgbm90IGJlIGZ1bGx5IGluaXRpYWxpemVkL3plcm9lZC4KMi4gQ29uZGl0aW9uYWwgbG9naWMgb3IgYnJhbmNoaW5nIHRoYXQgZGVwZW5kcyBvbiBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIHZhcmlhYmxlcwogICBvciBzdHJ1Y3QgZmllbGRzLgozLiBBbGxvY2F0aW9uIG9yIGluaXRpYWxpemF0aW9uIG9mIGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIHdoZXJlIHVuaW5pdGlhbGl6ZWQgZmllbGRzCiAgIGNvdWxkIGJlIHJlYWQgbGF0ZXIgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMuCjQuIEJvdW5kcyBjaGVja3MsIGxlbmd0aHMsIG9yIGxvZ2ljIGluIGEgd2F5IHRoYXQgYWxsb3dzIHN1cnJvdW5kaW5nIGNvZGUgdG8gYWNjZXNzCiAgIHVuaW5pdGlhbGl6ZWQgYnl0ZXMgb2YgZXhpc3RpbmcgYnVmZmVycy4KClNldCBOZWVkc0tNU0FOPWZhbHNlIElGOgotIFRoZSBjb2RlIGNoYW5nZXMgcHJpbWFyaWx5IHJpc2sgb3V0LW9mLWJvdW5kcyBhY2Nlc3MsIGFycmF5IG92ZXJmbG93cywgTlVMTCBwb2ludGVyCiAgZGVyZWZlcmVuY2VzLCBsb2NraW5nIGRlYWRsb2Nrcywgb3IgdXNlLWFmdGVyLWZyZWUgYnVncyAodGhlc2UgYXJlIGFscmVhZHkgY2F1Z2h0CiAgYnkgS0FTQU4sIExPQ0tERVAsIG9yIHN0YW5kYXJkIGJ1ZyBkZXRlY3RvcnMpLgotIEFsbCBzdGFjay9oZWFwIHN0cnVjdHVyZXMgdG91Y2hlZCBvciBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBhcmUgZnVsbHkgemVyb2VkCiAgb3IgaW5pdGlhbGl6ZWQgKGUuZy4gdXNpbmcgPSB7MH0sIG1lbXNldCwga3phbGxvYykgYmVmb3JlIGJlaW5nIHJlYWQgb3IgY29waWVkLgotIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcy4KClVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaWYgbmVjZXNzYXJ5LCB0aGVuIHByb3ZpZGUKZGV0YWlsZWQgS01TQU5SZWFzb25pbmcgY29udHJhc3RpbmcgS0FTQU4gdnMgS01TQU4gYXBwbGljYWJpbGl0eSBmb3IgdGhpcyBwYXRjaC4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDhkZDhlODg0ZDNhODM2NjVkNzA3MjcwYjhkNzE4NWE0NmIzNDhiYzQKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgV2VkIEF1ZyAyNiAwOTo0OTozNyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYwppbmRleCBhOTA1OTg2NmI3MDE2Li5jZmJmZDc3ZTg5MGZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jCkBAIC04MzIsMTEgJiM0Mzs4MzIsOCBAQCBzdGF0aWMgdm9pZCBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywKIAkJCQkgICAgdW5zaWduZWQgaW50ICp0b3RhbF9mbGFncywKIAkJCQkgICAgdTY0IG11bHRpY2FzdCkKIHsKLSNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9GQ1NGQUlMICAgIEJJVCgyKQotI2RlZmluZSBNVDc5MjVfRklMVEVSX0NPTlRST0wgICAgQklUKDUpCi0jZGVmaW5lIE1UNzkyNV9GSUxURVJfT1RIRVJfQlNTICBCSVQoNikKLSNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9FTkFCTEUgICAgIEJJVCgzMSkKIAlzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gbXQ3OTJ4X2h3X2Rldihodyk7CiYjNDM7CXN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTsKIAl1MzIgZmxhZ3MgPSBNVDc5MjVfRklMVEVSX0VOQUJMRTsKIAogI2RlZmluZSBNVDc5MjVfRklMVEVSKF9maWYsIF90eXBlKSBkbyB7CQkJXApAQCAtODQ4LDYgJiM0Mzs4NDUsOCBAQCBzdGF0aWMgdm9pZCBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywKIAlNVDc5MjVfRklMVEVSKEZJRl9DT05UUk9MLCBDT05UUk9MKTsKIAlNVDc5MjVfRklMVEVSKEZJRl9PVEhFUl9CU1MsIE9USEVSX0JTUyk7CiAKJiM0MzsJcGh5LSZndDtyeGZpbHRlciA9IGZsYWdzOwomIzQzOwogCW10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7CiAJbXQ3OTI1X21jdV9zZXRfcnhmaWx0ZXIoZGV2LCBmbGFncywgMCwgMCk7CiAJbXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMKaW5kZXggZTk0ZmE1NDRmZjIwNy4uYWRjMTM3YTBlNmI0ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMKQEAgLTIyNTEsNyAmIzQzOzIyNTEsNyBAQCBpbnQgbXQ3OTI1X21jdV9jb25maWdfc25pZmZlcihzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqdmlmLAogCQkJLmxlbiA9IGNwdV90b19sZTE2KHNpemVvZihyZXEudGx2KSksCiAJCQkuY29udHJvbF9jaCA9IGNoYW5kZWYtJmd0O2NoYW4tJmd0O2h3X3ZhbHVlLAogCQkJLmNlbnRlcl9jaCA9IGllZWU4MDIxMV9mcmVxdWVuY3lfdG9fY2hhbm5lbChmcmVxMSksCi0JCQkuZHJvcF9lcnIgPSAxLAomIzQzOwkJCS5kcm9wX2VyciA9ICEodmlmLSZndDtwaHktJmd0O3J4ZmlsdGVyICZhbXA7IE1UNzkyNV9GSUxURVJfRkNTRkFJTCksCiAJCX0sCiAJfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbXQ3OTI1LmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tdDc5MjUuaAppbmRleCA0Y2MyNTk0MThhZmNhLi44ZmI4YTRjMTMxNmUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tdDc5MjUuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tdDc5MjUuaApAQCAtNyw2ICYjNDM7NywxMSBAQAogI2luY2x1ZGUgJiMzNDsuLi9tdDc5MnguaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O3JlZ3MuaCYjMzQ7CiAKJiM0MzsjZGVmaW5lIE1UNzkyNV9GSUxURVJfRkNTRkFJTAkJQklUKDIpCiYjNDM7I2RlZmluZSBNVDc5MjVfRklMVEVSX0NPTlRST0wJCUJJVCg1KQomIzQzOyNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9PVEhFUl9CU1MJQklUKDYpCiYjNDM7I2RlZmluZSBNVDc5MjVfRklMVEVSX0VOQUJMRQkJQklUKDMxKQomIzQzOwogI2RlZmluZSBNVDc5MjVfQkVBQ09OX1JBVEVTX1RCTAkJMjUKIAogI2RlZmluZSBNVDc5MjVfVFhfUklOR19TSVpFCQkyMDQ4CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaAppbmRleCA3MDA3M2I0M2FmNTQzLi43NWQzMmE0YWRkZDcxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4LmgKQEAgLTE2OCw2ICYjNDM7MTY4LDcgQEAgc3RydWN0IG10NzkyeF9waHkgewogCXMxNiBjb3ZlcmFnZV9jbGFzczsKIAl1OCBzbG90dGltZTsKIAomIzQzOwl1MzIgcnhmaWx0ZXI7CiAJdTMyIHJ4X2FtcGR1X3RzOwogCXUzMiBhbXBkdV9yZWY7CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDEwOjAxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMxMDYKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiAzMTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBNVDc5MjUgRmlsdGVyIENvbmZpZ3VyYXRpb24gUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyB0aGUgZmlsdGVyIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBNVDc5MjUgd2lyZWxlc3MgZHJpdmVyLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIG1ha2luZyBjaGFuZ2VzIHRvIHRoZSBgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXJgIGZ1bmN0aW9uIGluIGBtYWluLmNgLCBhbmQgSSBzZWUgaXQmIzM5O3MgbW92aW5nIGEgZmV3IGAjZGVmaW5lYHMgKHRob3NlIGZpbHRlciBmbGFncykgb3ZlciB0byBgbXQ3OTI1LmhgLiBUaGF0JiMzOTtzIGdlbmVyYWxseSBnb29kIHByYWN0aWNlLCBrZWVwaW5nIHJlbGF0ZWQgZGVmaW5pdGlvbnMgdG9nZXRoZXIuIEkgYWxzbyBub3RpY2UgYSBuZXcgZmllbGQsIGByeGZpbHRlcmAsIGJlaW5nIGFkZGVkIHRvIHRoZSBgc3RydWN0IG10NzkyeF9waHlgIHN0cnVjdCBpbiBgbXQ3OTJ4LmhgLiBUaGUgYG10NzkyNV9jb25maWd1cmVfZmlsdGVyYCBmdW5jdGlvbiBub3cgYXNzaWducyB0aGlzIGByeGZpbHRlcmAgZmllbGQgd2l0aCBgZmxhZ3NgLCB3aGljaCBpcyBzdGFuZGFyZC4KCk15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIGFib3V0IHBvdGVudGlhbCB1bmluaXRpYWxpemVkIG1lbW9yeSBpc3N1ZXMuIFRoaXMgYHJ4ZmlsdGVyYCBmaWVsZCBpcyBuZXcsIGFuZCBJIG5lZWQgdG8gY29uZmlybSBob3cgdGhlIGBzdHJ1Y3QgbXQ3OTJ4X3BoeWAgaXMgYWxsb2NhdGVkLiBJcyBpdCB1c2luZyBga3phbGxvY2Agb3Igc29tZSBvdGhlciBhbGxvY2F0aW9uIHRoYXQgemVyb3Mgb3V0IHRoZSBtZW1vcnk/IElmIG5vdCwgd2UgY291bGQgaGF2ZSBwcm9ibGVtcyB3aXRoIHRoZSBpbml0aWFsIHZhbHVlIG9mIGByeGZpbHRlcmAgYmVpbmcgZ2FyYmFnZS4gVGhlIGZhY3QgdGhhdCBgbXQ3OTI1X21jdV9jb25maWdfc25pZmZlcmAgaW4gYG1jdS5jYCBpcyB1c2luZyB0aGUgYHJ4ZmlsdGVyYCBmaWVsZCBpcyBhIHRyaWdnZXIgdG8gbWFrZSBzdXJlIHRoYXQgZmllbGQgaXMgaW5pdGlhbGl6ZWQgYW5kIGNhbiBiZSB0cnVzdGVkLiBJJiMzOTttIGdvaW5nIHRvIGRpZyBpbnRvIHRoZSBjb2RlIGFuZCB0cmFjZSB0aGUgYWxsb2NhdGlvbiBvZiBgc3RydWN0IG10NzkyeF9waHlgIHRvIHZlcmlmeSB0aGlzLiBHb3R0YSBiZSBzdXJlIHdlJiMzOTtyZSBub3QgaW50cm9kdWNpbmcgYSBzdWJ0bGUgYnVnIHJlbGF0ZWQgdG8gdW5pbml0aWFsaXplZCBkYXRhLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2FsbG9jLiptdDc5MnhfcGh5JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3NiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDEwOjAyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4MTAKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAyMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEaXZpbmcgaW50byB0aGUgYG10NzkyeF9waHlgIExhbmRzY2FwZSoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgYG10NzkyeF9waHlgIG1vZHVsZSBiZXR0ZXIuIE15IGZpcnN0IGluc3RpbmN0IGlzIGFsd2F5cyB0byB0cmFjZSBpdHMgZGVmaW5pdGlvbiBhbmQgdXNhZ2UuIFdoZXJlIGlzIGl0IGFjdHVhbGx5IGRlY2xhcmVkPyBJJiMzOTttIHRoaW5raW5nIEkmIzM5O2xsIG5lZWQgdG8gZ28gYmV5b25kIGEgc2ltcGxlIGBncmVwYCBvciBgZmluZGAg4oCTIEkgd2FudCB0byBtYXAgdGhlIHJlbGF0aW9uc2hpcHMuIEtub3dpbmcgd2hlcmUgaXQmIzM5O3MgKmRlZmluZWQqIGlzIGp1c3QgdGhlIHN0YXJ0aW5nIHBvaW50OyBJIG5lZWQgdG8gZm9sbG93IHRoZSBicmVhZGNydW1icyBvZiBpdHMgaW50ZXJhY3Rpb25zLiBIb3cgZG9lcyB0aGUga2VybmVsIHV0aWxpemUgdGhpcyBQSFk/IFdoYXQgb3RoZXIgbW9kdWxlcyBkZXBlbmQgb24gaXQsIGFuZCB3aGF0IGZ1bmN0aW9ucyBhcmUgdGhlIGtleSBlbnRyeSBwb2ludHM/IEkmIzM5O20gYW50aWNpcGF0aW5nIHNvbWUgcG90ZW50aWFsbHkgaW50cmljYXRlIGRlcGVuZGVuY2llcywgYW5kIEkgd2FudCB0byBidWlsZCBhIGNsZWFyIG1lbnRhbCBtb2RlbCBvZiBpdHMgcGxhY2Ugd2l0aGluIHRoZSB3aWRlciBkcml2ZXIgYXJjaGl0ZWN0dXJlLiBUaGlzIGlzIG1vcmUgdGhhbiBqdXN0IGNvZGUgYnJvd3Npbmc7IEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBvcGVyYXRpb25hbCBjb250ZXh0LiBMZXQmIzM5O3MgZ2V0IHRvIGl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI0LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzdHJ1Y3QgbXQ3OTJ4X3BoeSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDc1MyBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jPTE0PXN0YXRpYyBzc2l6ZV90IG10NzkyMV90aGVybWFsX3RlbXBfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTE5LVx0Y2FzZSAwOiB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MjA6XHRcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0yMS1cdFx0c3RydWN0IG10NzkyeF9kZXYgKm1kZXYgPSBwaHktXHUwMDNlZGV2O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYz00Mz1BVFRSSUJVVEVfR1JPVVBTKG10NzkyMV9od21vbik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtNDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6NDU6c3RhdGljIGludCBtdDc5MjFfdGhlcm1hbF9pbml0KHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtNDYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTE2OT1tdDc5MjFfbWFjX2ZpbGxfcngoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy0xNzctXHRzdHJ1Y3QgbXQ3Nl9waHkgKm1waHkgPSBcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5waHk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzoxNzg6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gXHUwMDI2ZGV2LVx1MDAzZXBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTE3OS1cdHN0cnVjdCBpZWVlODAyMTFfc3VwcG9ydGVkX2JhbmQgKnNiYW5kO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xMz1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MTQ6bXQ3OTIxX2luaXRfaGVfY2FwcyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBlbnVtIG5sODAyMTFfYmFuZCBiYW5kLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTE1LVx0XHQgICAgc3RydWN0IGllZWU4MDIxMV9zYmFuZF9pZnR5cGVfZGF0YSAqZGF0YSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTk1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjE5Njp2b2lkIG10NzkyMV9zZXRfc3RyZWFtX2hlX2NhcHMoc3RydWN0IG10NzkyeF9waHkgKnBoeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xOTcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yMjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MjI3OmludCBfX210NzkyMV9zdGFydChzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTIyOC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTI3Mj1zdGF0aWMgaW50IG10NzkyMV9zdGFydChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yNzMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjI3NDpcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yNzUtXHRpbnQgZXJyO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0zMDE9bXQ3OTIxX2FkZF9pbnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTMwNC1cdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzozMDU6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzA2LVx0c3RydWN0IG10NzZfdHhxICptdHhxO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0zNjI9c3RhdGljIHZvaWQgbXQ3OTIxX3JvY19pdGVyKHZvaWQgKnByaXYsIHU4ICptYWMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM2NS1cdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjM2NjpcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM2Ny1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MzcxPXZvaWQgbXQ3OTIxX3JvY19hYm9ydF9zeW5jKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzcyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzozNzM6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gXHUwMDI2ZGV2LVx1MDAzZXBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zNzQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTM4Nz12b2lkIG10NzkyMV9yb2Nfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzg4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzozODk6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM5MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzozOTE6XHRwaHkgPSAoc3RydWN0IG10NzkyeF9waHkgKiljb250YWluZXJfb2Yod29yaywgc3RydWN0IG10NzkyeF9waHksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzkyLVx0XHRcdFx0XHRcdHJvY193b3JrKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDA1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjQwNjpzdGF0aWMgaW50IG10NzkyMV9hYm9ydF9yb2Moc3RydWN0IG10NzkyeF9waHkgKnBoeSwgc3RydWN0IG10NzkyeF92aWYgKnZpZilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00MDcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00MjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NDIxOnN0YXRpYyBpbnQgbXQ3OTIxX3NldF9yb2Moc3RydWN0IG10NzkyeF9waHkgKnBoeSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00MjItXHRcdFx0ICBzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz00NTE9c3RhdGljIGludCBtdDc5MjFfcmVtYWluX29uX2NoYW5uZWwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQ1Ny1cdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjQ1ODpcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00NTktXHRpbnQgZXJyO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz00Njg9c3RhdGljIGludCBtdDc5MjFfY2FuY2VsX3JlbWFpbl9vbl9jaGFubmVsKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00NzEtXHRzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqbXZpZiA9IChzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqKXZpZi1cdTAwM2VkcnZfcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo0NzI6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDczLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz00Nzc9aW50IG10NzkyMV9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3Nl9waHkgKm1waHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDc4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo0Nzk6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXBoeS1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQ4MC1cdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBwaHktXHUwMDNlZGV2O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz02MzQ9c3RhdGljIGludCBtdDc5MjFfY29uZmlnKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBpbnQgcmFkaW9faWR4LCB1MzIgY2hhbmdlZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNjM2LVx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IG10NzkyeF9od19kZXYoaHcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjYzNzpcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy02MzgtXHRpbnQgcmV0ID0gMDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9Njk1PXN0YXRpYyB2b2lkIG10NzkyMV9ic3NfaW5mb19jaGFuZ2VkKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy02OTkte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjcwMDpcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy03MDEtXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gbXQ3OTJ4X2h3X2Rldihodyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTc2Nj1tdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlKHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsIGJvb2wgaXNfYWRkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy03NjgtXHRzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqbXZpZiA9IChzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqKXZpZi1cdTAwM2VkcnZfcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo3Njk6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXZpZi1cdTAwM2VwaHk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNzcwLVx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IHBoeS1cdTAwM2VkZXY7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTEwMTM9dm9pZCBtdDc5MjFfc2Nhbl93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMDE0LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoxMDE1Olx0c3RydWN0IG10NzkyeF9waHkgKnBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMDE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjEwMTc6XHRwaHkgPSAoc3RydWN0IG10NzkyeF9waHkgKiljb250YWluZXJfb2Yod29yaywgc3RydWN0IG10NzkyeF9waHksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTAxOC1cdFx0XHRcdFx0XHRzY2FuX3dvcmsud29yayk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTExMTc9bXQ3OTIxX3NldF9hbnRlbm5hKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBpbnQgcmFkaW9faWR4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMTIwLVx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IG10NzkyeF9od19kZXYoaHcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjExMjE6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTEyMi1cdGludCBtYXhfbnNzID0gaHdlaWdodDgoaHctXHUwMDNld2lwaHktXHUwMDNlYXZhaWxhYmxlX2FudGVubmFzX3R4KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MTE0ND1zdGF0aWMgaW50IG10NzkyMV9zdXNwZW5kKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMTQ3LVx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IG10NzkyeF9od19kZXYoaHcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjExNDg6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTE0OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MTE2OT1zdGF0aWMgaW50IG10NzkyMV9yZXN1bWUoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTExNzEtXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gbXQ3OTJ4X2h3X2Rldihodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MTE3MjpcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMTczLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xMzM0PW10NzkyMV9zdGFydF9hcChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTMzNy1cdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjEzMzg6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTMzOS1cdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MTM2Mj1tdDc5MjFfc3RvcF9hcChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTM2NS1cdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjEzNjY6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTM2Ny1cdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MTQwND1tdDc5MjFfY2hhbmdlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTE0MDgtXHRzdHJ1Y3QgbXQ3OTJ4X2NoYW5jdHggKm1jdHggPSAoc3RydWN0IG10NzkyeF9jaGFuY3R4ICopY3R4LVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjE0MDk6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTQxMC1cdHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWY7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTE1MzY9c3RhdGljIHZvaWQgbXQ3OTIxX3Jma2lsbF9wb2xsKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTE1Mzcte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjE1Mzg6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTUzOS1cdGludCByZXQgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jPTE2Mz1tdDc5MjFfbWN1X3NjYW5fZXZlbnQoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYy0xNjUtXHRzdHJ1Y3QgbXQ3Nl9waHkgKm1waHkgPSBcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5waHk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYzoxNjY6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXBoeS1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtMTY3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jPTQxMD1zdGF0aWMgaW50IG10NzkyMV9sb2FkX2NsYyhzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBjb25zdCBjaGFyICpmd19uYW1lKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTQxNS1cdHN0cnVjdCBtdDc2X2RldiAqbWRldiA9IFx1MDAyNmRldi1cdTAwM2VtdDc2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmM6NDE2Olx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IFx1MDAyNmRldi1cdTAwM2VwaHk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYy00MTctXHRjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jPTUyMz1zdGF0aWMgdm9pZCBtdDc5MjFfbWN1X3BhcnNlX3BoeV9jYXAoc3RydWN0IG10NzZfZGV2ICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtNTUzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmM6NTU0OnN0YXRpYyBpbnQgbXQ3OTIxX21jdV9nZXRfbmljX2NhcGFiaWxpdHkoc3RydWN0IG10NzkyeF9waHkgKm1waHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYy01NTUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jPTY3MD1pbnQgbXQ3OTIxX21jdV9zZXRfdHgoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYy03NjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYzo3NjQ6aW50IG10NzkyMV9tY3Vfc2V0X3JvYyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqdmlmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtNzY1LVx0XHQgICAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFuLCBpbnQgZHVyYXRpb24sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtODMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmM6ODMxOmludCBtdDc5MjFfbWN1X2Fib3J0X3JvYyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqdmlmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtODMyLVx0XHRcdCB1OCB0b2tlbl9pZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYy04NjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYzo4NjE6aW50IG10NzkyMV9tY3Vfc2V0X2NoYW5faW5mbyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBpbnQgY21kKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtODYyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYz0xMzk4PWludCBtdDc5MjFfbWN1X3NldF9jbGMoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdTggKmFscGhhMixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYy0xNDAwLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jOjE0MDE6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gKHN0cnVjdCBtdDc5MnhfcGh5ICopXHUwMDI2ZGV2LVx1MDAzZXBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTE0MDItXHRpbnQgaSwgcmV0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTE0MTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYzoxNDIwOmludCBtdDc5MjFfbWN1X2dldF90ZW1wZXJhdHVyZShzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtMTQyMS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtMTQzNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jOjE0Mzc6aW50IG10NzkyMV9tY3Vfd2ZfcmZfcGluX2N0cmwoc3RydWN0IG10NzkyeF9waHkgKnBoeSwgdTggYWN0aW9uKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtMTQzOC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmg9MjAyPXUzMiBtdDc5MjFfcmVnX21hcChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB1MzIgYWRkcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaC0yMDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaDoyMDQ6aW50IF9fbXQ3OTIxX3N0YXJ0KHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMjA1LWludCBtdDc5MjFfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oPTIxMT1pbnQgbXQ3OTIxX21jdV9zdGFfdXBkYXRlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMjEzLVx0XHRcdCAgZW51bSBtdDc2X3N0YV9pbmZvX3N0YXRlIHN0YXRlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oOjIxNDppbnQgbXQ3OTIxX21jdV9zZXRfY2hhbl9pbmZvKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksIGludCBjbWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMjE1LWludCBtdDc5MjFfbWN1X3NldF90eChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oPTIxNj1pbnQgbXQ3OTIxX21jdV9zZXRfZWVwcm9tKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmg6MjE3OmludCBtdDc5MjFfbWN1X2dldF9yeF9yYXRlKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaC0yMTgtXHRcdFx0ICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwgc3RydWN0IHJhdGVfaW5mbyAqcmF0ZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmg9MjIzPWludCBtdDc5MjFfbWN1X3JhZGlvX2xlZF9jdHJsKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHU4IHZhbHVlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oOjIyNDppbnQgbXQ3OTIxX21jdV93Zl9yZl9waW5fY3RybChzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCB1OCBhY3Rpb24pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMjI1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oPTI4MD12b2lkIG10NzkyMV9zdGF0c193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaDoyODE6dm9pZCBtdDc5MjFfc2V0X3N0cmVhbV9oZV9jYXBzKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMjgyLWludCBtdDc5MjFfaW5pdF9kZWJ1Z2ZzKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oPTMyND1pbnQgbXQ3OTIxX21jdV9jb25maWdfc25pZmZlcihzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqdmlmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMzI1LVx0XHRcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmg6MzI2OmludCBtdDc5MjFfbWN1X2dldF90ZW1wZXJhdHVyZShzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oLTMyNy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaD0zNDQ9aW50IG10NzkyMV9tY3Vfc2V0X2NsYyhzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB1OCAqYWxwaGEyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMzQ1LVx0XHQgICAgICAgZW51bSBlbnZpcm9ubWVudF9jYXAgZW52X2NhcCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaDozNDY6aW50IG10NzkyMV9tY3Vfc2V0X3JvYyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqdmlmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMzQ3LVx0XHQgICAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFuLCBpbnQgZHVyYXRpb24sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaC0zNDgtXHRcdCAgICAgICBlbnVtIG10NzkyMV9yb2NfcmVxIHR5cGUsIHU4IHRva2VuX2lkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oOjM0OTppbnQgbXQ3OTIxX21jdV9hYm9ydF9yb2Moc3RydWN0IG10NzkyeF9waHkgKnBoeSwgc3RydWN0IG10NzkyeF92aWYgKnZpZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oLTM1MC1cdFx0XHQgdTggdG9rZW5faWQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuYz0xNTA9bXQ3OTIxX3JlZ2RfaXNfdmFsaWRfYWxwaGEyKGNvbnN0IGNoYXIgKmFscGhhMilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmMtMTYzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jOjE2NDppbnQgbXQ3OTIxX3JlZ2RfY2hhbmdlKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksIGNoYXIgKmFscGhhMilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuYy0xNjUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuYy0xOTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmM6MTkyOmludCBtdDc5MjFfcmVnZF9pbml0KHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmMtMTkzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmg9MTU9Ym9vbCBtdDc5MjFfcmVnZF9jbGNfc3VwcG9ydGVkKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5oOjE2OmludCBtdDc5MjFfcmVnZF9jaGFuZ2Uoc3RydWN0IG10NzkyeF9waHkgKnBoeSwgY2hhciAqYWxwaGEyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuaDoxNzppbnQgbXQ3OTIxX3JlZ2RfaW5pdChzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuaC0xOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS90ZXN0bW9kZS5jPTExMT1pbnQgbXQ3OTIxX3Rlc3Rtb2RlX2NtZChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS90ZXN0bW9kZS5jLTExNS1cdHN0cnVjdCBtdDc2X3BoeSAqbXBoeSA9IGh3LVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS90ZXN0bW9kZS5jOjExNjpcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtcGh5LVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS90ZXN0bW9kZS5jLTExNy1cdGludCBlcnI7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdGVzdG1vZGUuYz0xNDg9aW50IG10NzkyMV90ZXN0bW9kZV9kdW1wKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3Qgc2tfYnVmZiAqbXNnLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3Rlc3Rtb2RlLmMtMTUyLVx0c3RydWN0IG10NzZfcGh5ICptcGh5ID0gaHctXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3Rlc3Rtb2RlLmM6MTUzOlx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG1waHktXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3Rlc3Rtb2RlLmMtMTU0LVx0aW50IGVycjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM9MTQ9c3RhdGljIHNzaXplX3QgbXQ3OTI1X3RoZXJtYWxfdGVtcF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTktXHRjYXNlIDA6IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoyMDpcdFx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTIxLVx0XHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqbWRldiA9IHBoeS1cdTAwM2VkZXY7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jPTQzPUFUVFJJQlVURV9HUk9VUFMobXQ3OTI1X2h3bW9uKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy00NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzo0NTpzdGF0aWMgaW50IG10NzkyNV90aGVybWFsX2luaXQoc3RydWN0IG10NzkyeF9waHkgKnBoeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy00Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM9MzU5PW10NzkyNV9tYWNfZmlsbF9yeChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTM2Ny1cdHN0cnVjdCBtdDc2X3BoeSAqbXBoeSA9IFx1MDAyNmRldi1cdTAwM2VtdDc2LnBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjM2ODpcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBcdTAwMjZkZXYtXHUwMDNlcGh5O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMzY5LVx0c3RydWN0IGllZWU4MDIxMV9zdXBwb3J0ZWRfYmFuZCAqc2JhbmQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTE1PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTY6bXQ3OTI1X2luaXRfaGVfY2FwcyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBlbnVtIG5sODAyMTFfYmFuZCBiYW5kLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE3LVx0XHQgICAgc3RydWN0IGllZWU4MDIxMV9zYmFuZF9pZnR5cGVfZGF0YSAqZGF0YSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MTYwPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTYxOm10NzkyNV9pbml0X2VodF9jYXBzKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksIGVudW0gbmw4MDIxMV9iYW5kIGJhbmQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTYyLVx0XHQgICAgIHN0cnVjdCBpZWVlODAyMTFfc2JhbmRfaWZ0eXBlX2RhdGEgKmRhdGEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTI2My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoyNjQ6aW50IG10NzkyNV9pbml0X21sb19jYXBzKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMjY1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9Mjk1PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6Mjk2Ol9fbXQ3OTI1X3NldF9zdHJlYW1faGVfZWh0X2NhcHMoc3RydWN0IG10NzkyeF9waHkgKnBoeSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0yOTctXHRcdFx0XHRzdHJ1Y3QgaWVlZTgwMjExX3N1cHBvcnRlZF9iYW5kICpzYmFuZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMzIxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjMyMjp2b2lkIG10NzkyNV9zZXRfc3RyZWFtX2hlX2VodF9jYXBzKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMzIzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMzM2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjMzNzppbnQgX19tdDc5MjVfc3RhcnQoc3RydWN0IG10NzkyeF9waHkgKnBoeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0zMzgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0zNjM9c3RhdGljIGludCBtdDc5MjVfc3RhcnQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMzY0LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzozNjU6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMzY2LVx0aW50IGVycjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9NDUxPW10NzkyNV9hZGRfaW50ZXJmYWNlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy00NTQtXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gbXQ3OTJ4X2h3X2Rldihodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6NDU1Olx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG10NzkyeF9od19waHkoaHcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTQ1Ni1cdGludCByZXQgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz00ODM9c3RhdGljIHZvaWQgbXQ3OTI1X3JvY19pdGVyKHZvaWQgKnByaXYsIHU4ICptYWMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTQ4Ni1cdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjQ4NzpcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTQ4OC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9NDkyPXZvaWQgbXQ3OTI1X3JvY19hYm9ydF9zeW5jKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNDkzLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzo0OTQ6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gXHUwMDI2ZGV2LVx1MDAzZXBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy00OTUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTUwOT12b2lkIG10NzkyNV9yb2Nfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNTEwLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzo1MTE6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTUxMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzo1MTM6XHRwaHkgPSAoc3RydWN0IG10NzkyeF9waHkgKiljb250YWluZXJfb2Yod29yaywgc3RydWN0IG10NzkyeF9waHksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNTE0LVx0XHRcdFx0XHRcdHJvY193b3JrKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNTI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjUyNzpzdGF0aWMgaW50IG10NzkyNV9hYm9ydF9yb2Moc3RydWN0IG10NzkyeF9waHkgKnBoeSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy01MjgtXHRcdFx0ICAgIHN0cnVjdCBtdDc5MnhfYnNzX2NvbmYgKm1jb25mKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy01NDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6NTQzOnN0YXRpYyBpbnQgbXQ3OTI1X3NldF9yb2Moc3RydWN0IG10NzkyeF9waHkgKnBoeSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy01NDQtXHRcdFx0ICBzdHJ1Y3QgbXQ3OTJ4X2Jzc19jb25mICptY29uZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNTcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjU3MzpzdGF0aWMgaW50IG10NzkyNV9zZXRfbWxvX3JvYyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTU3NC1cdFx0XHQgICAgICBzdHJ1Y3QgbXQ3OTJ4X2Jzc19jb25mICptY29uZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9NjAwPXN0YXRpYyBpbnQgbXQ3OTI1X3JlbWFpbl9vbl9jaGFubmVsKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy02MDYtXHRzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqbXZpZiA9IChzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqKXZpZi1cdTAwM2VkcnZfcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzo2MDc6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNjA4LVx0aW50IGVycjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9NjE4PXN0YXRpYyBpbnQgbXQ3OTI1X2NhbmNlbF9yZW1haW5fb25fY2hhbm5lbChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNjIxLVx0c3RydWN0IG10NzkyeF92aWYgKm12aWYgPSAoc3RydWN0IG10NzkyeF92aWYgKil2aWYtXHUwMDNlZHJ2X3ByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6NjIyOlx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG10NzkyeF9od19waHkoaHcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTYyMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9NjI3PXN0YXRpYyBpbnQgbXQ3OTI1X3NldF9saW5rX2tleShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgZW51bSBzZXRfa2V5X2NtZCBjbWQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTY3MS1cdGlmIChjbWQgPT0gU0VUX0tFWSBcdTAwMjZcdTAwMjYgIW1jb25mLVx1MDAzZW10NzYuY2lwaGVyKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6NjcyOlx0XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNjczLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz04MzA9c3RhdGljIHZvaWQgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXIoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTgzNS1cdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzo4MzY6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtODM3LVx0dTMyIGZsYWdzID0gTVQ3OTI1X0ZJTFRFUl9FTkFCTEU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTE0Nzc9dm9pZCBtdDc5MjVfc2Nhbl93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xNDc4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxNDc5Olx0c3RydWN0IG10NzkyeF9waHkgKnBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xNDgwLVx0c3RydWN0IG10NzkyeF9kZXYgKmRldjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTQ4Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxNDgzOlx0cGh5ID0gKHN0cnVjdCBtdDc5MnhfcGh5ICopY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBtdDc5MnhfcGh5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE0ODQtXHRcdFx0XHRcdFx0c2Nhbl93b3JrLndvcmspO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0xNjA0PW10NzkyNV9zZXRfYW50ZW5uYShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgaW50IHJhZGlvX2lkeCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTYwNy1cdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxNjA4Olx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG10NzkyeF9od19waHkoaHcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE2MDktXHRpbnQgbWF4X25zcyA9IGh3ZWlnaHQ4KGh3LVx1MDAzZXdpcGh5LVx1MDAzZWF2YWlsYWJsZV9hbnRlbm5hc190eCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTE2MzI9c3RhdGljIGludCBtdDc5MjVfc3VzcGVuZChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTYzNS1cdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxNjM2Olx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG10NzkyeF9od19waHkoaHcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE2MzctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTE2NTc9c3RhdGljIGludCBtdDc5MjVfcmVzdW1lKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xNjU5LVx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IG10NzkyeF9od19kZXYoaHcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjE2NjA6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTY2MS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MTkzNj1tdDc5MjVfY2hhbmdlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE5NDAtXHRzdHJ1Y3QgbXQ3OTJ4X2NoYW5jdHggKm1jdHggPSAoc3RydWN0IG10NzkyeF9jaGFuY3R4ICopY3R4LVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjE5NDE6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTk0Mi1cdHN0cnVjdCBtdDc5MnhfYnNzX2NvbmYgKm1jb25mO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0yMDYzPXN0YXRpYyB2b2lkIG10NzkyNV9saW5rX2luZm9fY2hhbmdlZChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMjA2OC1cdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjIwNjk6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMjA3MC1cdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MjEyMj1tdDc5MjVfY2hhbmdlX3ZpZl9saW5rcyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMjEzMS1cdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoyMTMyOlx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG10NzkyeF9od19waHkoaHcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTIxMzMtXHRzdHJ1Y3QgaWVlZTgwMjExX2Jzc19jb25mICpsaW5rX2NvbmY7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTIzNTM9c3RhdGljIHZvaWQgbXQ3OTI1X3Jma2lsbF9wb2xsKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTIzNTQte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjIzNTU6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMjM1Ni1cdGludCByZXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM9NDA2PW10NzkyNV9tY3Vfc2Nhbl9ldmVudChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTQwOC1cdHN0cnVjdCBtdDc2X3BoeSAqbXBoeSA9IFx1MDAyNmRldi1cdTAwM2VtdDc2LnBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jOjQwOTpcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtcGh5LVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy00MTAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM9Nzk4PXN0YXRpYyBpbnQgbXQ3OTI1X2xvYWRfY2xjKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIGNvbnN0IGNoYXIgKmZ3X25hbWUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtODAzLVx0c3RydWN0IG10NzZfZGV2ICptZGV2ID0gXHUwMDI2ZGV2LVx1MDAzZW10NzY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzo4MDQ6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gXHUwMDI2ZGV2LVx1MDAzZXBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTgwNS1cdGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZnc7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM9ODg4PWludCBtdDc5MjVfbWN1X2Z3X2xvZ18yX2hvc3Qoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdTggY3RybClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy05MDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzo5MTA6aW50IG10NzkyNV9tY3VfZ2V0X3RlbXBlcmF0dXJlKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy05MTEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jPTEzMjc9aW50IG10NzkyNV9tY3VfYWRkX2tleShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0xMzUxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM6MTM1MjppbnQgbXQ3OTI1X21jdV9zZXRfbWxvX3JvYyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3OTJ4X2Jzc19jb25mICptY29uZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTEzNTMtXHRcdFx0ICAgdTE2IHNlbF9saW5rcywgaW50IGR1cmF0aW9uLCB1OCB0b2tlbl9pZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0xNDU1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM6MTQ1NjppbnQgbXQ3OTI1X21jdV9zZXRfcm9jKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksIHN0cnVjdCBtdDc5MnhfYnNzX2NvbmYgKm1jb25mLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMTQ1Ny1cdFx0ICAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbm5lbCAqY2hhbiwgaW50IGR1cmF0aW9uLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTE1MDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzoxNTA1OmludCBtdDc5MjVfbWN1X2Fib3J0X3JvYyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3OTJ4X2Jzc19jb25mICptY29uZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTE1MDYtXHRcdFx0IHU4IHRva2VuX2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jPTI2NzI9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jOjI2NzM6bXQ3OTI1X21jdV9ic3NfYm1jX3RsdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMjY3NC1cdFx0ICAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM9MjcwMj1tdDc5MjVfbWN1X2Jzc19tbGRfdGx2KHN0cnVjdCBza19idWZmICpza2IsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMjcwNy1cdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopbGlua19jb25mLVx1MDAzZXZpZi1cdTAwM2VkcnZfcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jOjI3MDg6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXZpZi1cdTAwM2VwaHk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0yNzA5LVx0c3RydWN0IGJzc19tbGRfdGx2ICptbGQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM9Mjc2Nj1tdDc5MjVfbWN1X2Jzc19oZV90bHYoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGllZWU4MDIxMV9ic3NfY29uZiAqbGlua19jb25mLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM6Mjc2NzpcdFx0ICAgICAgc3RydWN0IG10NzkyeF9waHkgKnBoeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTI3Njgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jPTI4MTA9bXQ3OTI1X21jdV9ic3NfaWZzX3RsdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTI4MTMtXHRzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqbXZpZiA9IChzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqKWxpbmtfY29uZi1cdTAwM2V2aWYtXHUwMDNlZHJ2X3ByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzoyODE0Olx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG12aWYtXHUwMDNlcGh5O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMjgxNS1cdHN0cnVjdCBic3NfaWZzX3RpbWVfdGx2ICppZnNfdGltZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0yODIzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM6MjgyNDppbnQgbXQ3OTI1X21jdV9zZXRfdGltaW5nKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0yODI1LVx0XHRcdCAgc3RydWN0IGllZWU4MDIxMV9ic3NfY29uZiAqbGlua19jb25mKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jPTI4NDI9dm9pZCBtdDc5MjVfbWN1X2RlbF9kZXYoc3RydWN0IG10NzZfZGV2ICptZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTI4OTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzoyODk4OmludCBtdDc5MjVfbWN1X2FkZF9ic3NfaW5mb19zdGEoc3RydWN0IG10NzkyeF9waHkgKnBoeSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTI4OTktXHRcdFx0XHRzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHhfY29uZiAqY3R4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTI5MzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzoyOTQwOmludCBtdDc5MjVfbWN1X2FkZF9ic3NfaW5mbyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMjk0MS1cdFx0XHQgICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYz0zNTMxPWludCBtdDc5MjVfbWN1X3NldF9jbGMoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdTggKmFscGhhMixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0zNTMzLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jOjM1MzQ6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gKHN0cnVjdCBtdDc5MnhfcGh5ICopXHUwMDI2ZGV2LVx1MDAzZXBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTM1MzUtXHRpbnQgaSwgcmV0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jPTM2NDg9RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTI1X21jdV9maWxsX21lc3NhZ2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMzY0OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jOjM2NTA6aW50IG10NzkyNV9tY3Vfc2V0X3J0c190aHJlc2goc3RydWN0IG10NzkyeF9waHkgKnBoeSwgdTMyIHZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTM2NTEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTM2NzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzozNjcyOmludCBtdDc5MjVfbWN1X3NldF9yYWRpb19lbihzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBib29sIGVuYWJsZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTM2NzMte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jPTM4Nzg9aW50IG10NzkyNV9tY3Vfc2V0X3JhdGVfdHhwb3dlcihzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0zOTA3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM6MzkwODppbnQgbXQ3OTI1X21jdV93Zl9yZl9waW5fY3RybChzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMzkwOS17XG4tLVxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDEwOjAyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxMDE3CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogNDUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzc3VtaW5nIEkmIzM5O20gYWxyZWFkeSBkZWVwIGluIHRoZSB3ZWVkcyB3aXRoIE1UNzkyeCBkcml2ZXIgaW50ZXJuYWxzOgoKKipEaXZpbmcgaW50byB0aGUgTVQ3OTJ4IFBIWSBTdHJ1Y3R1cmUqKgoKQWxyaWdodCwgc28gdGhlIGBtdDc5MnhfcGh5YCBzdHJ1Y3QgaXMga2V5IGhlcmUuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyBpdCYjMzk7cyBiZWluZyBoYW5kbGVkLiBJdCYjMzk7cyBlaXRoZXIgYSBkaXJlY3RseSBlbWJlZGRlZCBtZW1iZXIgd2l0aGluIHRoZSBgbXQ3OTJ4X2RldmAgc3RydWN0dXJlLCBvciBpdCYjMzk7cyBiZWluZyBhbGxvY2F0ZWQgc2VwYXJhdGVseSwgYW5kIHRoZSBwb2ludGVyIGlzIHN0b3JlZCBpbiBgbXQ3OTJ4X2RldmAuIFRoaXMgaXMgYSBwcmV0dHkgc3RhbmRhcmQgcGF0dGVybiwgc28gSSB3YW50IHRvIGNvbmZpcm0uIFRoZSBuZXh0IGxvZ2ljYWwgc3RlcCwgYmVmb3JlIEkgZ28gZGVlcGVyIGludG8gdGhlIGNvZGUsIGlzIHRvIHF1aWNrbHkgcmVmcmVzaCBteSBtZW1vcnkgb24gdGhlIGBzdHJ1Y3QgbXQ3OTJ4X2RldmAgZGVmaW5pdGlvbi4gS25vd2luZyBob3cgYG10NzkyeF9kZXZgIGlzIHN0cnVjdHVyZWQgaXMgZ29pbmcgdG8gaW1tZWRpYXRlbHkgdGVsbCBtZSBob3cgdG8gYWNjZXNzIHRoYXQgYG10NzkyeF9waHlgIGluc3RhbmNlLiBJdCB3aWxsIHNhdmUgYSBsb3Qgb2YgZGVidWdnaW5nIHRpbWUgbGF0ZXIhIExldCYjMzk7cyBnZXQgdGhhdCBkZWZpbml0aW9uIHVwLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI2LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzdHJ1Y3QgbXQ3OTJ4X2RldiBcXHsmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4Lmg9MjMzPXN0cnVjdCBtdDc5MnhfaGlmX29wcyB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaC0yNDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oOjI0MTpzdHJ1Y3QgbXQ3OTJ4X2RldiB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oLTI0Mi1cdHVuaW9uIHsgLyogbXVzdCBiZSBmaXJzdCAqL1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI3LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTQ2NwoJCQkJCQkJb3V0cHV0OiA0OAoJCQkJCQkJdGhvdWdodHM6IDM3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHN1bW1hcnksIGFzIGlmIEkgd2VyZSB0aGlua2luZyB0aGVzZSB0aG91Z2h0czoKCioqRGl2aW5nIGludG8gdGhlIE1UNzkyeCBEcml2ZXIgU3RydWN0dXJlKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGFyY2hpdGVjdHVyZSBvZiB0aGlzIE1UNzkyeCB3aXJlbGVzcyBkcml2ZXIuIFRoZSBmaXJzdCB0aGluZyBvbiBteSBsaXN0IGlzIHRvIGRpc3NlY3QgdGhlIGBzdHJ1Y3QgbXQ3OTJ4X2RldmAgZGF0YSBzdHJ1Y3R1cmUuIEl0JiMzOTtzIGRlZmluZWQgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4LmhgLCB3aGljaCBtYWtlcyBwZXJmZWN0IHNlbnNlLiBUaGlzIHN0cnVjdCBpcyBsaWtlbHkgdGhlIGNlbnRyYWwgaHViIGZvciByZXByZXNlbnRpbmcgdGhlIGRldmljZSYjMzk7cyBoYXJkd2FyZSBzdGF0ZSBhbmQgcmVzb3VyY2VzIHdpdGhpbiB0aGUgZHJpdmVyLiBJIGV4cGVjdCB0byBmaW5kIGNyaXRpY2FsIGRldmljZS1zcGVjaWZpYyBpbmZvcm1hdGlvbiBoZXJlIOKAkyByZWdpc3RlciBtYXBwaW5ncywgaW50ZXJydXB0IGNvbmZpZ3VyYXRpb25zLCBhbmQgcG9pbnRlcnMgdG8gb3RoZXIgcmVsYXRlZCBkYXRhIHN0cnVjdHVyZXMuIFRoaXMgaXMgdGhlIGVudHJ5IHBvaW50IGZvciB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgZHJpdmVyIGludGVyYWN0cyB3aXRoIHRoZSBoYXJkd2FyZSwgc28gSSBuZWVkIHRvIGtub3cgdGhpcyBpbnNpZGUgYW5kIG91dC4gSXQmIzM5O3MgdGhlIGNvcmUgb2YgdGhlIHdob2xlIG9wZXJhdGlvbi4gTGV0JiMzOTtzIHNlZSB3aGF0IHdlJiMzOTt2ZSBnb3QuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjgvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDEwOjAyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaCYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDI0MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA1MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgMjQwOlx0XG4gMjQxOlx0c3RydWN0IG10NzkyeF9kZXYge1xuIDI0MjpcdFx0dW5pb24geyAvKiBtdXN0IGJlIGZpcnN0ICovXG4gMjQzOlx0XHRcdHN0cnVjdCBtdDc2X2RldiBtdDc2O1xuIDI0NDpcdFx0XHRzdHJ1Y3QgbXQ3Nl9waHkgbXBoeTtcbiAyNDU6XHRcdH07XG4gMjQ2Olx0XG4gMjQ3Olx0XHRzdHJ1Y3QgbWFjX2FkZHJlc3MgbWFjYWRkcl9saXN0WzhdO1xuIDI0ODpcdFxuIDI0OTpcdFx0Y29uc3Qgc3RydWN0IG10NzZfYnVzX29wcyAqYnVzX29wcztcbiAyNTA6XHRcdHN0cnVjdCBtdDc5MnhfcGh5IHBoeTtcbiAyNTE6XHRcbiAyNTI6XHRcdHN0cnVjdCB3b3JrX3N0cnVjdCByZXNldF93b3JrO1xuIDI1MzpcdFx0Ym9vbCBod19mdWxsX3Jlc2V0OjE7XG4gMjU0Olx0XHRib29sIGh3X2luaXRfZG9uZToxO1xuIDI1NTpcdFx0Ym9vbCBmd19hc3NlcnQ6MTtcbiAyNTY6XHRcdGJvb2wgaGFzX2VodDoxO1xuIDI1NzpcdFx0Ym9vbCByZWdkX3VzZXI6MTtcbiAyNTg6XHRcdGJvb2wgcmVnZF9pbl9wcm9ncmVzczoxO1xuIDI1OTpcdFx0Ym9vbCBhc3BtX3N1cHBvcnRlZDoxO1xuIDI2MDpcdFx0Ym9vbCBoaWZfaWRsZToxO1xuIDI2MTpcdFx0Ym9vbCBoaWZfcmVzdW1lZDoxO1xuIDI2MjpcdFx0Ym9vbCByZWdkX2NoYW5nZToxO1xuIDI2MzpcdFx0d2FpdF9xdWV1ZV9oZWFkX3Qgd2FpdDtcbiAyNjQ6XHRcbiAyNjU6XHRcdHN0cnVjdCB3b3JrX3N0cnVjdCBpbml0X3dvcms7XG4gMjY2Olx0XHRzdHJ1Y3Qgd29ya19zdHJ1Y3QgdXNiX3Jlc2V0X3dvcms7XG4gMjY3Olx0XHRhdG9taWNfdCB1c2JfcmVzZXRfcGVuZGluZztcbiAyNjg6XHRcbiAyNjk6XHRcdHU4IGZ3X2RlYnVnO1xuIDI3MDpcdFx0dTggZndfZmVhdHVyZXM7XG4gMjcxOlx0XG4gMjcyOlx0XHRzdHJ1Y3QgbXQ3Nl9jb25uYWNfcG0gcG07XG4gMjczOlx0XHRzdHJ1Y3QgbXQ3Nl9jb25uYWNfY29yZWR1bXAgY29yZWR1bXA7XG4gMjc0Olx0XHRjb25zdCBzdHJ1Y3QgbXQ3OTJ4X2hpZl9vcHMgKmhpZl9vcHM7XG4gMjc1Olx0XHRjb25zdCBzdHJ1Y3QgbXQ3OTJ4X2lycV9tYXAgKmlycV9tYXA7XG4gMjc2Olx0XG4gMjc3Olx0XHRzdHJ1Y3Qgd29ya19zdHJ1Y3QgaXB2Nl9uc193b3JrO1xuIDI3ODpcdFx0c3RydWN0IGRlbGF5ZWRfd29yayBtbG9fcG1fd29yaztcbiAyNzk6XHRcdC8qIElQdjYgYWRkcmVzc2VzIGZvciBXb1dMQU4gKi9cbiAyODA6XHRcdHN0cnVjdCBza19idWZmX2hlYWQgaXB2Nl9uc19saXN0O1xuIDI4MTpcdFxuIDI4MjpcdFx0ZW51bSBlbnZpcm9ubWVudF9jYXAgY291bnRyeV9pZV9lbnY7XG4gMjgzOlx0XHR1MzIgYmFja3VwX2wxO1xuIDI4NDpcdFx0dTMyIGJhY2t1cF9sMjtcbiAyODU6XHRcbiAyODY6XHRcdHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpuZXdfY3R4O1xuIDI4NzpcdH07XG4gMjg4Olx0XG4gMjg5Olx0c3RhdGljIGlubGluZSBzdHJ1Y3QgbXQ3OTJ4X2Jzc19jb25mICpcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjYgMTA6MDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI0OTIKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiA0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgcHJlc2VudGVkIGFzIGEgZmlyc3QtcGVyc29uIGV4cGVydCBzdW1tYXJ5OgoKKipEaWdnaW5nIGludG8gdGhlIE1UNzkyeCBQSFkgU3RydWN0dXJlKioKCkFscmlnaHQsIGxldCYjMzk7cyBzZWUuLi5JJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBNVDc5MnggZHJpdmVyLCBhbmQgSSBzZWUgdGhhdCB0aGlzIGBzdHJ1Y3QgbXQ3OTJ4X3BoeSBwaHk7YCBpcyBuZXN0ZWQgcmlnaHQgaW5zaWRlIGBzdHJ1Y3QgbXQ3OTJ4X2RldmAuIE1ha2VzIHBlcmZlY3Qgc2Vuc2U7IHRoZSBQSFkgaXMgY2xlYXJseSBhIGZ1bmRhbWVudGFsIGNvbXBvbmVudCBvZiB0aGUgZGV2aWNlLiBNeSBxdWVzdGlvbiBub3cgaXMsIGhvdyBpcyB0aGUgd2hvbGUgYHN0cnVjdCBtdDc5MnhfZGV2YCBhbGxvY2F0ZWQ/IElzIGl0IG9uIHRoZSBzdGFjaywgaW4ga2VybmVsIG1lbW9yeSB2aWEgYGttYWxsb2NgLCBvciBzb21ldGhpbmcgZWxzZSBlbnRpcmVseT8gS25vd2luZyB0aGUgYWxsb2NhdGlvbiBtZXRob2QgaXMgY3J1Y2lhbCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgbGlmZXRpbWUgbWFuYWdlbWVudCBvZiB0aGUgYHBoeWAgc3RydWN0dXJlIHdpdGhpbiBpdC4gQXJlIHdlIGRlYWxpbmcgd2l0aCBhIHNpbmdsZSwgc3RhdGljYWxseSBhbGxvY2F0ZWQgZGV2aWNlLCBvciBkbyB3ZSBoYXZlIHRoZSBhYmlsaXR5IHRvIGNyZWF0ZSBtdWx0aXBsZSBkZXZpY2VzIGR5bmFtaWNhbGx5PyBUaGUgY29udGV4dCB3aWxsIGJlIGltcG9ydGFudCBmb3IgdGhpbmdzIGxpa2UgcmVzb3VyY2UgbWFuYWdlbWVudCwgZHJpdmVyIGluaXRpYWxpemF0aW9uLCBhbmQgc2h1dGRvd24gc2VxdWVuY2VzLiBJIG5lZWQgdG8gdHJhY2UgYmFjayB0aHJvdWdoIHRoZSBjb2RlLCBwcm9iYWJseSBzdGFydGluZyB3aXRoIHRoZSBkZXZpY2UgcHJvYmUgZnVuY3Rpb24sIHRvIGZpZ3VyZSBvdXQgd2hlcmUgdGhhdCBgbXQ3OTJ4X2RldmAgZ2V0cyBpdHMgbWVtb3J5LiBUaGF0IHdpbGwgbGlrZWx5IHJldmVhbCB0aGUgYmlnZ2VyIHBpY3R1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzAvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDEwOjAyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2FsbG9jLiptdDc5MnhfZGV2JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3NiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oPTQ0NT12b2lkIG10NzkyeF9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4Lmg6NDQ2OmludCBtdDc5MnhfZG1hX2FsbG9jX3F1ZXVlcyhzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaC00NDctXHRcdFx0ICAgIGNvbnN0IHN0cnVjdCBtdDc5MnhfZG1hX2xheW91dCAqbGF5b3V0KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYz04OD1FWFBPUlRfU1lNQk9MX0dQTChtdDc5MnhfcnhfcG9sbF9jb21wbGV0ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYy04OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jOjkwOmludCBtdDc5MnhfZG1hX2FsbG9jX3F1ZXVlcyhzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmMtOTEtXHRcdFx0ICAgIGNvbnN0IHN0cnVjdCBtdDc5MnhfZG1hX2xheW91dCAqbGF5b3V0KVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMxLzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzE1MQoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDEzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipEaXZpbmcgaW50byBgbXQ3Nl9hbGxvY19kZXZpY2VgKioKCk9rYXksIHRpbWUgdG8gZGlzc2VjdCBgbXQ3Nl9hbGxvY19kZXZpY2VgLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBleGFjdGx5IGhvdyB0aGlzIGZ1bmN0aW9uIGhhbmRsZXMgdGhlIGluaXRpYWxpemF0aW9uIG9mIGFuIE1UNzYtYmFzZWQgZGV2aWNlLiBTcGVjaWZpY2FsbHksIEkmIzM5O20gaW50ZXJlc3RlZCBpbiB0aGUgcmVzb3VyY2UgYWxsb2NhdGlvbiBzdHJhdGVneSBoZXJlLiBJIHN1c3BlY3QgaXQmIzM5O3MgcmVzcG9uc2libGUgZm9yIGdyYWJiaW5nIHRoZSBQQ0kgcmVzb3VyY2VzLCBsaWtlbHkgaW5jbHVkaW5nIHRoZSBCQVJzLCBpbnRlcnJ1cHQgbGluZXMsIGFuZCBETUEgYnVmZmVycyBpZiBhcHBsaWNhYmxlLiBJdCYjMzk7cyBwcm9iYWJseSBzZXR0aW5nIHVwIHRoZSBpbml0aWFsIHN0cnVjdHVyZXMsIGxpa2UgdGhlIGBzdHJ1Y3QgbXQ3Nl9kZXZgIGl0c2VsZiwgYW5kIGFzc29jaWF0aW5nIGl0IHdpdGggdGhlIFBDSSBkZXZpY2UgaW5mb3JtYXRpb24uIEkgd2FudCB0byBwYXkgY2xvc2UgYXR0ZW50aW9uIHRvIGFueSBlcnJvciBoYW5kbGluZy4gRG9lcyBpdCBncmFjZWZ1bGx5IGhhbmRsZSByZXNvdXJjZSBjb25mbGljdHM/IFdoYXQgYWJvdXQgcHJvYmluZyBmb3IgdGhlIHJpZ2h0IGhhcmR3YXJlIElEPyBJIG5lZWQgdG8gYmUgc3VyZSB0aGUgZnVuY3Rpb24mIzM5O3MgY2hlY2tzIGFyZSByb2J1c3QsIGVzcGVjaWFsbHkgd2hlbiBkZWFsaW5nIHdpdGggZGlmZmVyZW50IGhhcmR3YXJlIHJldmlzaW9ucyBvciB2ZW5kb3Itc3BlY2lmaWMgbnVhbmNlcy4gQW5kLCBJIGV4cGVjdCB0aGVyZSB0byBiZSBjYWxscyB0byBhbGxvY2F0ZSB0aGUgZmlybXdhcmUgYnVmZmVycyB0byBsb2FkIHRoZSBmaXJtd2FyZSBsYXRlci4gTGV04oCZcyBjb25maXJtIGFsbCBvZiB0aGVzZSBzdXNwaWNpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMyLzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc2X2FsbG9jX2RldmljZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jPTY2Nz1zdHJ1Y3QgbXQ3Nl9kZXYgKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjY2ODptdDc2X2FsbG9jX2RldmljZShzdHJ1Y3QgZGV2aWNlICpwZGV2LCB1bnNpZ25lZCBpbnQgc2l6ZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy02NjktXHRcdCAgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgKm9wcyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtNzQzLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYzo3NDQ6RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl9hbGxvY19kZXZpY2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTc0NS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaD0xMzAxPV9fbXQ3Nl93Y2lkX3B0cihzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgdTE2IGlkeClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xMzA5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTMxMDpzdHJ1Y3QgbXQ3Nl9kZXYgKm10NzZfYWxsb2NfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKnBkZXYsIHVuc2lnbmVkIGludCBzaXplLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTMxMS1cdFx0XHRcdCAgIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzICpvcHMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvcGNpLmM9MTU9bXQ3NnBjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL3BjaS5jLTM0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvcGNpLmM6MzU6XHRtZGV2ID0gbXQ3Nl9hbGxvY19kZXZpY2UoXHUwMDI2cGRldi1cdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgXHUwMDI2bXQ3NjAzX29wcyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL3BjaS5jLTM2LVx0XHRcdFx0IFx1MDAyNm10NzYwM19kcnZfb3BzKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9zb2MuYz0xMD1tdDc2X3dtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9zb2MuYy0yNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL3NvYy5jOjI2Olx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBzaXplb2YoKmRldiksIFx1MDAyNm10NzYwM19vcHMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9zb2MuYy0yNy1cdFx0XHRcdCBcdTAwMjZtdDc2MDNfZHJ2X29wcyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbW1pby5jPTE2Nj1pbnQgbXQ3NjE1X21taW9fcHJvYmUoc3RydWN0IGRldmljZSAqcGRldiwgdm9pZCBfX2lvbWVtICptZW1fYmFzZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tbWlvLmMtMTk2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbW1pby5jOjE5NzpcdG1kZXYgPSBtdDc2X2FsbG9jX2RldmljZShwZGV2LCBzaXplb2YoKmRldiksIG9wcywgXHUwMDI2ZHJ2X29wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tbWlvLmMtMTk4LVx0aWYgKCFtZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYz03Nj1zdGF0aWMgaW50IG10NzY2M3NfcHJvYmUoc3RydWN0IHNkaW9fZnVuYyAqZnVuYyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvLmMtMTExLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jOjExMjpcdG1kZXYgPSBtdDc2X2FsbG9jX2RldmljZShcdTAwMjZmdW5jLVx1MDAzZWRldiwgc2l6ZW9mKCpkZXYpLCBvcHMsIFx1MDAyNmRydl9vcHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jLTExMy1cdGlmICghbWRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYz0xMTI9c3RhdGljIGludCBtdDc2NjN1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50Zixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0xNDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoxNDk6XHRtZGV2ID0gbXQ3Nl9hbGxvY19kZXZpY2UoXHUwMDI2dXNiX2ludGYtXHUwMDNlZGV2LCBzaXplb2YoKmRldiksIG9wcywgXHUwMDI2ZHJ2X29wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0xNTAtXHRpZiAoIW1kZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmM9MTU0PW10NzZ4MGVfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYy0xOTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYzoxOTI6XHRtZGV2ID0gbXQ3Nl9hbGxvY19kZXZpY2UoXHUwMDI2cGRldi1cdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgXHUwMDI2bXQ3NngwZV9vcHMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYy0xOTMtXHRcdFx0XHQgXHUwMDI2ZHJ2X29wcyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM9MjEzPXN0YXRpYyBpbnQgbXQ3NngwdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqdXNiX2ludGYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMjM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM6MjM2Olx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKFx1MDAyNnVzYl9pbnRmLVx1MDAzZWRldiwgc2l6ZW9mKCpkZXYpLCBcdTAwMjZtdDc2eDB1X29wcyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTIzNy1cdFx0XHRcdCBcdTAwMjZkcnZfb3BzKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYz0yMD1tdDc2eDJlX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtNTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYzo1NjpcdG1kZXYgPSBtdDc2X2FsbG9jX2RldmljZShcdTAwMjZwZGV2LVx1MDAzZWRldiwgc2l6ZW9mKCpkZXYpLCBcdTAwMjZtdDc2eDJfb3BzLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtNTctXHRcdFx0XHQgXHUwMDI2ZHJ2X29wcyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmM9MzI9c3RhdGljIGludCBtdDc2eDJ1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jLTUzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmM6NTQ6XHRtZGV2ID0gbXQ3Nl9hbGxvY19kZXZpY2UoXHUwMDI2aW50Zi1cdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgXHUwMDI2bXQ3NngydV9vcHMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYy01NS1cdFx0XHRcdCBcdTAwMjZkcnZfb3BzKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM9OTE3PXN0cnVjdCBtdDc5MTVfZGV2ICptdDc5MTVfbW1pb19wcm9iZShzdHJ1Y3QgZGV2aWNlICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy05NDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6OTQ0Olx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKHBkZXYsIHNpemVvZigqZGV2KSwgXHUwMDI2bXQ3OTE1X29wcywgXHUwMDI2ZHJ2X29wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtOTQ1LVx0aWYgKCFtZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jPTI1OT1zdGF0aWMgaW50IG10NzkyMV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmMtMzM4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmM6MzM5Olx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBzaXplb2YoKmRldiksIG9wcywgXHUwMDI2ZHJ2X29wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2kuYy0zNDAtXHRpZiAoIW1kZXYpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvLmM9OTA9c3RhdGljIGludCBtdDc5MjFzX3Byb2JlKHN0cnVjdCBzZGlvX2Z1bmMgKmZ1bmMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jLTEzNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3NkaW8uYzoxMzg6XHRtZGV2ID0gbXQ3Nl9hbGxvY19kZXZpY2UoXHUwMDI2ZnVuYy1cdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgb3BzLCBcdTAwMjZkcnZfb3BzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3NkaW8uYy0xMzktXHRpZiAoIW1kZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmM9MTUwPXN0YXRpYyBpbnQgbXQ3OTIxdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqdXNiX2ludGYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmMtMTk3LVx0b3BzLVx1MDAzZXN0b3AgPSBtdDc5Mnh1X3N0b3A7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYzoxOTg6XHRtZGV2ID0gbXQ3Nl9hbGxvY19kZXZpY2UoXHUwMDI2dXNiX2ludGYtXHUwMDNlZGV2LCBzaXplb2YoKmRldiksIG9wcywgXHUwMDI2ZHJ2X29wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYy0xOTktXHRpZiAoIW1kZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmM9MzEzPXN0YXRpYyBpbnQgbXQ3OTI1X3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYy0zOTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYzozOTk6XHRtZGV2ID0gbXQ3Nl9hbGxvY19kZXZpY2UoXHUwMDI2cGRldi1cdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgb3BzLCBcdTAwMjZkcnZfb3BzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jLTQwMC1cdGlmICghbWRldikge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jPTE0Mz1zdGF0aWMgaW50IG10NzkyNXVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jLTE5MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jOjE5MTpcdG1kZXYgPSBtdDc2X2FsbG9jX2RldmljZShcdTAwMjZ1c2JfaW50Zi1cdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgb3BzLCBcdTAwMjZkcnZfb3BzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jLTE5Mi1cdGlmICghbWRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODE2PXN0cnVjdCBtdDc5OTZfZGV2ICptdDc5OTZfbW1pb19wcm9iZShzdHJ1Y3QgZGV2aWNlICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04NDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODQ2Olx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKHBkZXYsIHNpemVvZigqZGV2KSwgXHUwMDI2bXQ3OTk2X29wcywgXHUwMDI2ZHJ2X29wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODQ3LVx0aWYgKCFtZGV2KVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMzLzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjY3NgoJCQkJCQkJb3V0cHV0OiA0OQoJCQkJCQkJdGhvdWdodHM6IDUxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHN1bW1hcnksIGFzIHRob3VnaCBJJiMzOTttIHRoaW5raW5nIHRocm91Z2ggdGhpcyBwcm9jZXNzOgoKKipEaXZpbmcgaW50byB0aGUgTVQ3NiBEZXZpY2UgQWxsb2NhdGlvbioqCgpPa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhpcyBNVDc2IGRyaXZlciBpcyBhbGxvY2F0aW5nIGl0cyBkZXZpY2Ugc3RydWN0dXJlLiBSaWdodCwgbGV0JiMzOTtzIHN0YXJ0IHdpdGggYG10NzZfYWxsb2NfZGV2aWNlYC4gSSBrbm93IHRoYXQmIzM5O3MgdGhlIGZ1bmN0aW9uIHRoYXQga2lja3Mgb2ZmIHRoZSBkZXZpY2UmIzM5O3MgYWxsb2NhdGlvbiwgc28gdGhhdCYjMzk7cyB3aGVyZSBJIG5lZWQgdG8gYmUuIExldCBtZSBncmFiIHRoZSBzb3VyY2UgY29kZSBmb3IgdGhhdCBmdW5jdGlvbiwgd2hpY2ggSSBiZWxpZXZlIGlzIGhhbmdpbmcgb3V0IGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmNgLiBUaW1lIHRvIGRpZyBpbiBhbmQgc2VlIHdoYXQmIzM5O3MgaGFwcGVuaW5nIHVuZGVyIHRoZSBob29kLiBJIGV4cGVjdCB0byBzZWUgbWVtb3J5IGFsbG9jYXRpb24gYW5kIHNvbWUgZnVuZGFtZW50YWwgZGV2aWNlIGluaXRpYWxpemF0aW9uLiBMZXQmIzM5O3Mgc2VlIGlmIG15IGluaXRpYWwgYXNzdW1wdGlvbnMgaG9sZCB0cnVlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM0LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDY2NywKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA1MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgNjY3Olx0c3RydWN0IG10NzZfZGV2ICpcbiA2Njg6XHRtdDc2X2FsbG9jX2RldmljZShzdHJ1Y3QgZGV2aWNlICpwZGV2LCB1bnNpZ25lZCBpbnQgc2l6ZSxcbiA2Njk6XHRcdFx0ICBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyAqb3BzLFxuIDY3MDpcdFx0XHQgIGNvbnN0IHN0cnVjdCBtdDc2X2RyaXZlcl9vcHMgKmRydl9vcHMpXG4gNjcxOlx0e1xuIDY3MjpcdFx0c3RydWN0IGllZWU4MDIxMV9odyAqaHc7XG4gNjczOlx0XHRzdHJ1Y3QgbXQ3Nl9waHkgKnBoeTtcbiA2NzQ6XHRcdHN0cnVjdCBtdDc2X2RldiAqZGV2O1xuIDY3NTpcdFx0aW50IGk7XG4gNjc2Olx0XG4gNjc3Olx0XHRodyA9IGllZWU4MDIxMV9hbGxvY19odyhzaXplLCBvcHMpO1xuIDY3ODpcdFx0aWYgKCFodylcbiA2Nzk6XHRcdFx0cmV0dXJuIE5VTEw7XG4gNjgwOlx0XG4gNjgxOlx0XHRkZXYgPSBody1cdTAwM2Vwcml2O1xuIDY4MjpcdFx0ZGV2LVx1MDAzZWh3ID0gaHc7XG4gNjgzOlx0XHRkZXYtXHUwMDNlZGV2ID0gcGRldjtcbiA2ODQ6XHRcdGRldi1cdTAwM2VkcnYgPSBkcnZfb3BzO1xuIDY4NTpcdFx0ZGV2LVx1MDAzZWRtYV9kZXYgPSBwZGV2O1xuIDY4NjpcdFxuIDY4NzpcdFx0cGh5ID0gXHUwMDI2ZGV2LVx1MDAzZXBoeTtcbiA2ODg6XHRcdHBoeS1cdTAwM2VkZXYgPSBkZXY7XG4gNjg5Olx0XHRwaHktXHUwMDNlaHcgPSBodztcbiA2OTA6XHRcdHBoeS1cdTAwM2ViYW5kX2lkeCA9IE1UX0JBTkQwO1xuIDY5MTpcdFx0ZGV2LVx1MDAzZXBoeXNbcGh5LVx1MDAzZWJhbmRfaWR4XSA9IHBoeTtcbiA2OTI6XHRcbiA2OTM6XHRcdHNwaW5fbG9ja19pbml0KFx1MDAyNmRldi1cdTAwM2VyeF9sb2NrKTtcbiA2OTQ6XHRcdHNwaW5fbG9ja19pbml0KFx1MDAyNmRldi1cdTAwM2Vsb2NrKTtcbiA2OTU6XHRcdHNwaW5fbG9ja19pbml0KFx1MDAyNmRldi1cdTAwM2VjY19sb2NrKTtcbiA2OTY6XHRcdHNwaW5fbG9ja19pbml0KFx1MDAyNmRldi1cdTAwM2VzdGF0dXNfbG9jayk7XG4gNjk3Olx0XHRzcGluX2xvY2tfaW5pdChcdTAwMjZkZXYtXHUwMDNld2VkX2xvY2spO1xuIDY5ODpcdFx0bXV0ZXhfaW5pdChcdTAwMjZkZXYtXHUwMDNlbXV0ZXgpO1xuIDY5OTpcdFx0aW5pdF93YWl0cXVldWVfaGVhZChcdTAwMjZkZXYtXHUwMDNldHhfd2FpdCk7XG4gNzAwOlx0XG4gNzAxOlx0XHRza2JfcXVldWVfaGVhZF9pbml0KFx1MDAyNmRldi1cdTAwM2VtY3UucmVzX3EpO1xuIDcwMjpcdFx0aW5pdF93YWl0cXVldWVfaGVhZChcdTAwMjZkZXYtXHUwMDNlbWN1LndhaXQpO1xuIDcwMzpcdFx0bXV0ZXhfaW5pdChcdTAwMjZkZXYtXHUwMDNlbWN1Lm11dGV4KTtcbiA3MDQ6XHRcdGRldi1cdTAwM2V0eF93b3JrZXIuZm4gPSBtdDc2X3R4X3dvcmtlcjtcbiA3MDU6XHRcbiA3MDY6XHRcdGh3LVx1MDAzZXdpcGh5LVx1MDAzZWZsYWdzIHw9IFdJUEhZX0ZMQUdfSUJTU19SU047XG4gNzA3Olx0XHRody1cdTAwM2V3aXBoeS1cdTAwM2VpbnRlcmZhY2VfbW9kZXMgPVxuIDcwODpcdFx0XHRCSVQoTkw4MDIxMV9JRlRZUEVfU1RBVElPTikgfFxuIDcwOTpcdFx0XHRCSVQoTkw4MDIxMV9JRlRZUEVfQVApIHxcbiA3MTA6XHQjaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbiA3MTE6XHRcdFx0QklUKE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpIHxcbiA3MTI6XHQjZW5kaWZcbiA3MTM6XHRcdFx0QklUKE5MODAyMTFfSUZUWVBFX1AyUF9DTElFTlQpIHxcbiA3MTQ6XHRcdFx0QklUKE5MODAyMTFfSUZUWVBFX1AyUF9HTykgfFxuIDcxNTpcdFx0XHRCSVQoTkw4MDIxMV9JRlRZUEVfQURIT0MpO1xuIDcxNjpcdFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM1LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNzc4MwoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDI3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipDaGVja2luZyB0aGUgTWVtb3J5IEFsbG9jYXRpb24gU3RyYXRlZ3kgaW4gSUVFRSA4MDIuMTEgSGFyZHdhcmUgSW5pdGlhbGl6YXRpb24qKgoKT2theSwgc28gYGllZWU4MDIxMV9hbGxvY19od2AgaGFzIGJlZW4gY2FsbGVkLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGRpZyBpbnRvIHRoZSBtZW1vcnkgYWxsb2NhdGlvbiBzdHJhdGVneSBiZWluZyB1c2VkIHdpdGhpbiB0aGlzIGZ1bmN0aW9uLiBUaGUgY3JpdGljYWwgcXVlc3Rpb24sIG9mIGNvdXJzZSwgaXMgd2hldGhlciBpdCBsZXZlcmFnZXMgYGt6YWxsb2NgLiBUaGUgdXNlIG9mIGBremFsbG9jYCBpcyBzb21ldGhpbmcgSSBwYXkgY2xvc2UgYXR0ZW50aW9uIHRvLCBlc3BlY2lhbGx5IGluIGtlcm5lbCBjb250ZXh0cyBsaWtlIHRoaXMuIEl0JiMzOTtzIGEga2V5IGluZGljYXRvciBvZiB3aGV0aGVyIHRoZSBhbGxvY2F0ZWQgbWVtb3J5IGlzIGJlaW5nIHplcm9lZCBvdXQuIFVuZGVyc3RhbmRpbmcgdGhpcyBpcyBjcnVjaWFsIGZvciBzZXZlcmFsIHJlYXNvbnM6IGl0IGltcGFjdHMgc2VjdXJpdHkgYnkgcG90ZW50aWFsbHkgbWl0aWdhdGluZyBpbmZvcm1hdGlvbiBsZWFrcywgaW5mbHVlbmNlcyBwZXJmb3JtYW5jZSBieSByZW1vdmluZyB0aGUgbmVlZCBmb3IgZXhwbGljaXQgaW5pdGlhbGl6YXRpb24sIGFuZCBjYW4gYWxzbyBhZmZlY3QgZGVidWdnaW5nIGVmZm9ydHMgaWYgdW5pbml0aWFsaXplZCBtZW1vcnkgaXMgdW5leHBlY3RlZGx5IHVzZWQgZG93biB0aGUgbGluZS4gSSYjMzk7bGwgbmVlZCB0byBjb25maXJtIHRoYXQgYGt6YWxsb2NgIChvciBzb21ldGhpbmcgZXF1YWxseSByZWxpYWJsZSkgaXMsIGluIGZhY3QsIGJlaW5nIGVtcGxveWVkIGhlcmUgdG8gbWFuYWdlIG1lbW9yeSB3aXRoaW4gdGhpcyBjcnVjaWFsIElFRUUgODAyLjExIGhhcmR3YXJlIGluaXRpYWxpemF0aW9uIHJvdXRpbmUuIElmIG5vdCwgSSYjMzk7bGwgbmVlZCB0byB1bmRlcnN0YW5kIHdoeSwgYW5kIHdoYXQgYWx0ZXJuYXRpdmVzIGFyZSBpbiBwbGFjZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNi8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjYgMTA6MDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aWVlZTgwMjExX2FsbG9jX2h3JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9tYWluLmM9Nzc3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3ZodF9jYXAgbWFjODAyMTFfdmh0X2NhcGFfbW9kX21hc2sgPSB7XG4tLVxubmV0L21hYzgwMjExL21haW4uYy03OTQtXG5uZXQvbWFjODAyMTEvbWFpbi5jOjc5NTpzdHJ1Y3QgaWVlZTgwMjExX2h3ICppZWVlODAyMTFfYWxsb2NfaHdfbm0oc2l6ZV90IHByaXZfZGF0YV9sZW4sXG5uZXQvbWFjODAyMTEvbWFpbi5jLTc5Ni1cdFx0XHRcdFx0ICAgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgKm9wcyxcbi0tXG5uZXQvbWFjODAyMTEvbWFpbi5jLTEwNTEtfVxubmV0L21hYzgwMjExL21haW4uYzoxMDUyOkVYUE9SVF9TWU1CT0woaWVlZTgwMjExX2FsbG9jX2h3X25tKTtcbm5ldC9tYWM4MDIxMS9tYWluLmMtMTA1My1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNy8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjYgMTA6MDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjgzMjIKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAzNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIGl0IHdlcmUgbXkgb3duOgoKKipEaXZpbmcgaW50byB0aGUgODAyLjExIEhhcmR3YXJlIEFsbG9jYXRpb24qKgoKT2theSwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkgd2l0aCBgbmV0L21hYzgwMjExL21haW4uY2AuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgaGFyZHdhcmUgaXMgYmVpbmcgYWxsb2NhdGVkIGZvciB0aGlzIDgwMi4xMSBpbXBsZW1lbnRhdGlvbi4gTGV0JiMzOTtzIHN0YXJ0IGJ5IGRpZ2dpbmcgaW50byBgaWVlZTgwMjExX2FsbG9jX2h3X25tYC4gVGhpcyBmdW5jdGlvbiBpcyBsaWtlbHkgdGhlIGNvcm5lcnN0b25lIG9mIGhhcmR3YXJlIGluaXRpYWxpemF0aW9uIGFuZCBhc3NvY2lhdGlvbi4gSSYjMzk7bSBhc3N1bWluZyAmIzM0O25tJiMzNDsgc3RhbmRzIGZvciBzb21ldGhpbmcgcmVsYXRlZCB0byB0aGUgbmFtaW5nIG9yIG1hbmFnaW5nIG9mIHRoZSBuZXcgaGFyZHdhcmUgaW50ZXJmYWNlIG9yIG5ldHdvcmsgbWFuYWdlci4gVW5kZXJzdGFuZGluZyB0aGlzIHJvdXRpbmUgd2lsbCBsaWtlbHkgaWxsdW1pbmF0ZSB0aGUgaW5pdGlhbCBzZXR1cCBmbG93LiBJdCYjMzk7cyB0aGUgc3RhcnRpbmcgcG9pbnQgZm9yIHJlYWxseSBkaWdnaW5nIGludG8gaG93IHRoZXkmIzM5O3ZlIHN0cnVjdHVyZWQgaGFyZHdhcmUgYWNjZXNzIGFuZCBjb250cm9sIHdpdGhpbiB0aGUgbWFjODAyMTEgZnJhbWV3b3JrLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM4LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9tYWluLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA3OTUsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNTAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDc5NTpcdHN0cnVjdCBpZWVlODAyMTFfaHcgKmllZWU4MDIxMV9hbGxvY19od19ubShzaXplX3QgcHJpdl9kYXRhX2xlbixcbiA3OTY6XHRcdFx0XHRcdFx0ICAgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgKm9wcyxcbiA3OTc6XHRcdFx0XHRcdFx0ICAgY29uc3QgY2hhciAqcmVxdWVzdGVkX25hbWUpXG4gNzk4Olx0e1xuIDc5OTpcdFx0c3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWw7XG4gODAwOlx0XHRpbnQgcHJpdl9zaXplLCBpO1xuIDgwMTpcdFx0c3RydWN0IHdpcGh5ICp3aXBoeTtcbiA4MDI6XHRcdGJvb2wgZW11bGF0ZV9jaGFuY3R4O1xuIDgwMzpcdFxuIDgwNDpcdFx0aWYgKFdBUk5fT04oIW9wcy1cdTAwM2V0eCB8fCAhb3BzLVx1MDAzZXN0YXJ0IHx8ICFvcHMtXHUwMDNlc3RvcCB8fCAhb3BzLVx1MDAzZWNvbmZpZyB8fFxuIDgwNTpcdFx0XHQgICAgIW9wcy1cdTAwM2VhZGRfaW50ZXJmYWNlIHx8ICFvcHMtXHUwMDNlcmVtb3ZlX2ludGVyZmFjZSB8fFxuIDgwNjpcdFx0XHQgICAgIW9wcy1cdTAwM2Vjb25maWd1cmVfZmlsdGVyIHx8ICFvcHMtXHUwMDNld2FrZV90eF9xdWV1ZSkpXG4gODA3Olx0XHRcdHJldHVybiBOVUxMO1xuIDgwODpcdFxuIDgwOTpcdFx0aWYgKFdBUk5fT04ob3BzLVx1MDAzZXN0YV9zdGF0ZSBcdTAwMjZcdTAwMjYgKG9wcy1cdTAwM2VzdGFfYWRkIHx8IG9wcy1cdTAwM2VzdGFfcmVtb3ZlKSkpXG4gODEwOlx0XHRcdHJldHVybiBOVUxMO1xuIDgxMTpcdFxuIDgxMjpcdFx0aWYgKFdBUk5fT04oISFvcHMtXHUwMDNlbGlua19pbmZvX2NoYW5nZWQgIT0gISFvcHMtXHUwMDNldmlmX2NmZ19jaGFuZ2VkIHx8XG4gODEzOlx0XHRcdCAgICAob3BzLVx1MDAzZWxpbmtfaW5mb19jaGFuZ2VkIFx1MDAyNlx1MDAyNiBvcHMtXHUwMDNlYnNzX2luZm9fY2hhbmdlZCkpKVxuIDgxNDpcdFx0XHRyZXR1cm4gTlVMTDtcbiA4MTU6XHRcbiA4MTY6XHRcdC8qIGNoZWNrIGFsbCBvciBubyBjaGFubmVsIGNvbnRleHQgb3BlcmF0aW9ucyBleGlzdCAqL1xuIDgxNzpcdFx0aWYgKG9wcy1cdTAwM2VhZGRfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCBcdTAwMjZcdTAwMjZcbiA4MTg6XHRcdCAgICBvcHMtXHUwMDNlcmVtb3ZlX2NoYW5jdHggPT0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHggXHUwMDI2XHUwMDI2XG4gODE5Olx0XHQgICAgb3BzLVx1MDAzZWNoYW5nZV9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4KSB7XG4gODIwOlx0XHRcdGlmIChXQVJOX09OKG9wcy1cdTAwM2Vhc3NpZ25fdmlmX2NoYW5jdHggfHxcbiA4MjE6XHRcdFx0XHQgICAgb3BzLVx1MDAzZXVuYXNzaWduX3ZpZl9jaGFuY3R4KSlcbiA4MjI6XHRcdFx0XHRyZXR1cm4gTlVMTDtcbiA4MjM6XHRcdFx0ZW11bGF0ZV9jaGFuY3R4ID0gdHJ1ZTtcbiA4MjQ6XHRcdH0gZWxzZSB7XG4gODI1Olx0XHRcdGlmIChXQVJOX09OKG9wcy1cdTAwM2VhZGRfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCB8fFxuIDgyNjpcdFx0XHRcdCAgICBvcHMtXHUwMDNlcmVtb3ZlX2NoYW5jdHggPT0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHggfHxcbiA4Mjc6XHRcdFx0XHQgICAgb3BzLVx1MDAzZWNoYW5nZV9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4KSlcbiA4Mjg6XHRcdFx0XHRyZXR1cm4gTlVMTDtcbiA4Mjk6XHRcdFx0aWYgKFdBUk5fT04oIW9wcy1cdTAwM2VhZGRfY2hhbmN0eCB8fFxuIDgzMDpcdFx0XHRcdCAgICAhb3BzLVx1MDAzZXJlbW92ZV9jaGFuY3R4IHx8XG4gODMxOlx0XHRcdFx0ICAgICFvcHMtXHUwMDNlY2hhbmdlX2NoYW5jdHggfHxcbiA4MzI6XHRcdFx0XHQgICAgIW9wcy1cdTAwM2Vhc3NpZ25fdmlmX2NoYW5jdHggfHxcbiA4MzM6XHRcdFx0XHQgICAgIW9wcy1cdTAwM2V1bmFzc2lnbl92aWZfY2hhbmN0eCkpXG4gODM0Olx0XHRcdFx0cmV0dXJuIE5VTEw7XG4gODM1Olx0XHRcdGVtdWxhdGVfY2hhbmN0eCA9IGZhbHNlO1xuIDgzNjpcdFx0fVxuIDgzNzpcdFxuIDgzODpcdFx0LyogRW5zdXJlIDMyLWJ5dGUgYWxpZ25tZW50IG9mIG91ciBwcml2YXRlIGRhdGEgYW5kIGh3IHByaXZhdGUgZGF0YS5cbiA4Mzk6XHRcdCAqIFdlIHVzZSB0aGUgd2lwaHkgcHJpdiBkYXRhIGZvciBib3RoIG91ciBpZWVlODAyMTFfbG9jYWwgYW5kIGZvclxuIDg0MDpcdFx0ICogdGhlIGRyaXZlciYjMzk7cyBwcml2YXRlIGRhdGFcbiA4NDE6XHRcdCAqXG4gODQyOlx0XHQgKiBJbiBtZW1vcnkgaXQmIzM5O2xsIGJlIGxpa2UgdGhpczpcbiA4NDM6XHRcdCAqXG4gODQ0Olx0XHQgKiAmIzQzOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0mIzQzO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM5LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNiAxMDowMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyOTQ5OQoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDIxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMgYGllZWU4MDIxMV9hbGxvY19od19ubWAgZnVuY3Rpb24uIEkmIzM5O20gYWxyZWFkeSBwaWN0dXJpbmcgdGhlIGxpa2VseSBzY2VuYXJpb3MgaXQgYWRkcmVzc2VzLiBLbm93aW5nIHRoZSBuYW1lLCBJJiMzOTttIGV4cGVjdGluZyB0aGlzIHRvIGJlIHRoZSBjb3JlIGFsbG9jYXRpb24gZnVuY3Rpb24gZm9yIGEgbmV3IGhhcmR3YXJlIChodykgbmV0d29yayBtYW5hZ2VyIChubSkgd2l0aGluIGFuIDgwMi4xMSBjb250ZXh0LiBHaXZlbiBteSBleHBlcmllbmNlLCBJIGtub3cgdGhhdCBmdW5jdGlvbiBuYW1lcyBhcmUgY3JpdGljYWwgaW4gY29tcGxleCBzeXN0ZW1zLCBhbmQgdGhpcyBpcyBwcm9iYWJseSB3aGVyZSB0aGUgbG93LWxldmVsIGRldGFpbHMgb2YgaGFyZHdhcmUgaW50ZWdyYXRpb24gYmVnaW5zLiBJJiMzOTttIGtlZW4gdG8gc2VlIGlmIGl0JiMzOTtzIGEgcmVsYXRpdmVseSBzdHJhaWdodGZvcndhcmQgYWxsb2NhdGlvbiwgb3IgaWYgdGhlcmUmIzM5O3MgYSBidW5jaCBvZiBwcmUtYWxsb2NhdGlvbiBjaGVja3MgYW5kIGluaXRpYWxpemF0aW9ucyBJIG5lZWQgdG8gY29uc2lkZXIuIEkmIzM5O20gZXNwZWNpYWxseSBpbnRlcmVzdGVkIGluIGhvdyBpdCBoYW5kbGVzIHBvdGVudGlhbCByZXNvdXJjZSBjb25zdHJhaW50cyBvciBlcnJvciBjb25kaXRpb25zLCB3aGljaCBpcyBlc3NlbnRpYWwgdG8gcm9idXN0IGNvZGUuIEkmIzM5O20gYWxzbyBob3BpbmcgaXQgYWRoZXJlcyB0byBhbnkgZXhpc3RpbmcgZnJhbWV3b3JrIG9yIGRyaXZlciBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgdG8gdGhlIE9TIG9yIGVudmlyb25tZW50LiBJJiMzOTttIGVhZ2VyIHRvIGdldCBpbnRvIHRoZSBkZXRhaWxzIHRvIHVuZGVyc3RhbmQgdGhlIGFsbG9jYXRpb24gcHJvY2VzcyBmcm9tIHN0YXJ0IHRvIGZpbmlzaC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40MC8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjYgMTA6MDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvbWFpbi5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogODQ1LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyA4NDU6XHRcdCAqIHwgc3RydWN0IHdpcGh5XHQgICAgfFxuIDg0NjpcdFx0ICogJiM0MzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tJiM0MztcbiA4NDc6XHRcdCAqIHwgc3RydWN0IGllZWU4MDIxMV9sb2NhbCAgfFxuIDg0ODpcdFx0ICogJiM0MzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tJiM0MztcbiA4NDk6XHRcdCAqIHwgZHJpdmVyJiMzOTtzIHByaXZhdGUgZGF0YSAgIHxcbiA4NTA6XHRcdCAqICYjNDM7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSYjNDM7XG4gODUxOlx0XHQgKlxuIDg1MjpcdFx0ICovXG4gODUzOlx0XHRwcml2X3NpemUgPSBBTElHTihzaXplb2YoKmxvY2FsKSwgTkVUREVWX0FMSUdOKSAmIzQzOyBwcml2X2RhdGFfbGVuO1xuIDg1NDpcdFxuIDg1NTpcdFx0d2lwaHkgPSB3aXBoeV9uZXdfbm0oXHUwMDI2bWFjODAyMTFfY29uZmlnX29wcywgcHJpdl9zaXplLCByZXF1ZXN0ZWRfbmFtZSk7XG4gODU2Olx0XG4gODU3Olx0XHRpZiAoIXdpcGh5KVxuIDg1ODpcdFx0XHRyZXR1cm4gTlVMTDtcbiA4NTk6XHRcbiA4NjA6XHRcdHdpcGh5LVx1MDAzZW1nbXRfc3R5cGVzID0gaWVlZTgwMjExX2RlZmF1bHRfbWdtdF9zdHlwZXM7XG4gODYxOlx0XG4gODYyOlx0XHR3aXBoeS1cdTAwM2Vwcml2aWQgPSBtYWM4MDIxMV93aXBoeV9wcml2aWQ7XG4gODYzOlx0XG4gODY0Olx0XHR3aXBoeS1cdTAwM2VmbGFncyB8PSBXSVBIWV9GTEFHX05FVE5TX09LIHxcbiA4NjU6XHRcdFx0XHRXSVBIWV9GTEFHXzRBRERSX0FQIHxcbiA4NjY6XHRcdFx0XHRXSVBIWV9GTEFHXzRBRERSX1NUQVRJT04gfFxuIDg2NzpcdFx0XHRcdFdJUEhZX0ZMQUdfUkVQT1JUU19PQlNTIHxcbiA4Njg6XHRcdFx0XHRXSVBIWV9GTEFHX09GRkNIQU5fVFg7XG4gODY5Olx0XG4gODcwOlx0XHRpZiAoZW11bGF0ZV9jaGFuY3R4IHx8IG9wcy1cdTAwM2VyZW1haW5fb25fY2hhbm5lbClcbiA4NzE6XHRcdFx0d2lwaHktXHUwMDNlZmxhZ3MgfD0gV0lQSFlfRkxBR19IQVNfUkVNQUlOX09OX0NIQU5ORUw7XG4gODcyOlx0XG4gODczOlx0XHR3aXBoeS1cdTAwM2Vic3NfcGFyYW1fc3VwcG9ydCA9IFdJUEhZX0JTU19QQVJBTV9DVFNfUFJPVCB8XG4gODc0Olx0XHRcdFx0XHQgICBXSVBIWV9CU1NfUEFSQU1fU0hPUlRfUFJFQU1CTEUgfFxuIDg3NTpcdFx0XHRcdFx0ICAgV0lQSFlfQlNTX1BBUkFNX1NIT1JUX1NMT1RfVElNRSB8XG4gODc2Olx0XHRcdFx0XHQgICBXSVBIWV9CU1NfUEFSQU1fQkFTSUNfUkFURVMgfFxuIDg3NzpcdFx0XHRcdFx0ICAgV0lQSFlfQlNTX1BBUkFNX0FQX0lTT0xBVEUgfFxuIDg3ODpcdFx0XHRcdFx0ICAgV0lQSFlfQlNTX1BBUkFNX0hUX09QTU9ERSB8XG4gODc5Olx0XHRcdFx0XHQgICBXSVBIWV9CU1NfUEFSQU1fUDJQX0NUV0lORE9XIHxcbiA4ODA6XHRcdFx0XHRcdCAgIFdJUEhZX0JTU19QQVJBTV9QMlBfT1BQUFM7XG4gODgxOlx0XHR3aXBoeS1cdTAwM2VmZWF0dXJlcyB8PSBOTDgwMjExX0ZFQVRVUkVfU0tfVFhfU1RBVFVTIHxcbiA4ODI6XHRcdFx0XHQgICBOTDgwMjExX0ZFQVRVUkVfU0FFIHxcbiA4ODM6XHRcdFx0XHQgICBOTDgwMjExX0ZFQVRVUkVfSFRfSUJTUyB8XG4gODg0Olx0XHRcdFx0ICAgTkw4MDIxMV9GRUFUVVJFX1ZJRl9UWFBPV0VSIHxcbiA4ODU6XHRcdFx0XHQgICBOTDgwMjExX0ZFQVRVUkVfTUFDX09OX0NSRUFURSB8XG4gODg2Olx0XHRcdFx0ICAgTkw4MDIxMV9GRUFUVVJFX1VTRVJTUEFDRV9NUE0gfFxuIDg4NzpcdFx0XHRcdCAgIE5MODAyMTFfRkVBVFVSRV9GVUxMX0FQX0NMSUVOVF9TVEFURTtcbiA4ODg6XHRcdHdpcGh5X2V4dF9mZWF0dXJlX3NldCh3aXBoeSwgTkw4MDIxMV9FWFRfRkVBVFVSRV9GSUxTX1NUQSk7XG4gODg5Olx0XHR3aXBoeV9leHRfZmVhdHVyZV9zZXQod2lwaHksXG4gODkwOlx0XHRcdFx0ICAgICAgTkw4MDIxMV9FWFRfRkVBVFVSRV9DT05UUk9MX1BPUlRfT1ZFUl9OTDgwMjExKTtcbiA4OTE6XHRcdHdpcGh5X2V4dF9mZWF0dXJlX3NldCh3aXBoeSxcbiA4OTI6XHRcdFx0XHQgICAgICBOTDgwMjExX0VYVF9GRUFUVVJFX0NPTlRST0xfUE9SVF9OT19QUkVBVVRIKTtcbiA4OTM6XHRcdHdpcGh5X2V4dF9mZWF0dXJlX3NldCh3aXBoeSxcbiA4OTQ6XHRcdFx0XHQgICAgICBOTDgwMjExX0VYVF9GRUFUVVJFX0NPTlRST0xfUE9SVF9PVkVSX05MODAyMTFfVFhfU1RBVFVTKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40MS8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjYgMTA6MDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzA3NjEKCQkJCQkJCW91dHB1dDogMjkKCQkJCQkJCXRob3VnaHRzOiA0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBzdW1tYXJ5LCBhcyBpZiBJIHdlcmUgdGhpbmtpbmcgaXQ6CgoqKkRpZ2dpbmcgaW50byB0aGUgV2lyZWxlc3MgUGh5IEFsbG9jYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBzZWVpbmcgYHdpcGh5X25ld19ubWAgYmVpbmcgY2FsbGVkIGhlcmUuIFJpZ2h0LCB0aGF0JiMzOTtzIHRoZSBvbmUgdGhhdCYjMzk7cyByZXNwb25zaWJsZSBmb3IgYWxsb2NhdGluZyBhIGB3aXBoeWAgc3RydWN0dXJlLiBUaW1lIHRvIGRpdmUgaW50byB0aGUgY29yZSBpbXBsZW1lbnRhdGlvbi4gTGV0JiMzOTtzIGhlYWQgb3ZlciB0byBgbmV0L3dpcmVsZXNzL2NvcmUuY2AgYW5kIHRha2UgYSBsb29rIGF0IGhvdyBgd2lwaHlfbmV3X25tYCBpcyBhY3R1YWxseSBoYW5kbGluZyB0aGUgbWVtb3J5IGFsbG9jYXRpb24gYW5kIGluaXRpYWxpemF0aW9uLiBOZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHBhcnRpY3VsYXJzIG9mIHRoaXMgZnVuY3Rpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDIvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDEwOjAyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3dpcGh5X25ld19ubSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC93aXJlbGVzcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvd2lyZWxlc3MvY29yZS5jPTUxNT1zdGF0aWMgdm9pZCBjZmc4MDIxMV93aXBoeV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbi0tXG5uZXQvd2lyZWxlc3MvY29yZS5jLTU0NS1cbm5ldC93aXJlbGVzcy9jb3JlLmM6NTQ2OnN0cnVjdCB3aXBoeSAqd2lwaHlfbmV3X25tKGNvbnN0IHN0cnVjdCBjZmc4MDIxMV9vcHMgKm9wcywgaW50IHNpemVvZl9wcml2LFxubmV0L3dpcmVsZXNzL2NvcmUuYy01NDctXHRcdFx0ICAgY29uc3QgY2hhciAqcmVxdWVzdGVkX25hbWUpXG4tLVxubmV0L3dpcmVsZXNzL2NvcmUuYy02OTktfVxubmV0L3dpcmVsZXNzL2NvcmUuYzo3MDA6RVhQT1JUX1NZTUJPTCh3aXBoeV9uZXdfbm0pO1xubmV0L3dpcmVsZXNzL2NvcmUuYy03MDEtXG4tLVxubmV0L3dpcmVsZXNzL3Rlc3RzL3V0aWwuYz0xMz1pbnQgdF93aXBoeV9pbml0KHN0cnVjdCBrdW5pdF9yZXNvdXJjZSAqcmVzb3VyY2UsIHZvaWQgKmN0eClcbi0tXG5uZXQvd2lyZWxlc3MvdGVzdHMvdXRpbC5jLTIyLVxubmV0L3dpcmVsZXNzL3Rlc3RzL3V0aWwuYzoyMzpcdHdpcGh5ID0gd2lwaHlfbmV3X25tKG9wcywgc2l6ZW9mKCpwcml2KSwgXCYjMzQ7a3VuaXRcJiMzNDspO1xubmV0L3dpcmVsZXNzL3Rlc3RzL3V0aWwuYy0yNC1cdEtVTklUX0FTU0VSVF9OT1RfTlVMTCh0ZXN0LCB3aXBoeSk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDMvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDEwOjAyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMxMjQyCgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogMjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipEaXZpbmcgaW50byBgd2lwaHlfbmV3X25tYCoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBzb21ldGhpbmcgcmVsYXRlZCB0byBXaS1GaSBkcml2ZXIgaW5pdGlhbGl6YXRpb24sIGFuZCBteSBpbnN0aW5jdHMgYXJlIHRlbGxpbmcgbWUgdG8gbG9vayBhdCBgd2lwaHlfbmV3X25tYCBpbiBgbmV0L3dpcmVsZXNzL2NvcmUuY2AuIFRoYXQgZnVuY3Rpb24gbmFtZSBpdHNlbGYgaXMgYSBwcmV0dHkgYmlnIGNsdWUuIFRoZSAmIzM0O3dpcGh5JiMzNDsgcGFydCBpbW1lZGlhdGVseSBmbGFncyB0aGlzIGFzIGJlaW5nIGFib3V0IHRoZSB3aXJlbGVzcyBwaHlzaWNhbCBkZXZpY2UgYWJzdHJhY3Rpb24gbGF5ZXIsIHRoZSBjb3JlIG9mIHRoZSB3aXJlbGVzcyBuZXR3b3JraW5nIHN0YWNrLiBUaGUgJiMzNDtuZXcmIzM0OyBzdHJvbmdseSBzdWdnZXN0cyBpdCYjMzk7cyBpbnZvbHZlZCBpbiBjcmVhdGluZyBvciBzZXR0aW5nIHVwIGEgbmV3IFdpLUZpIHBoeXNpY2FsIGRldmljZS4gQW5kICYjMzQ7bm0mIzM0OyBwcm9iYWJseSBzdGFuZHMgZm9yICYjMzQ7bmV0IGRldmljZSBtYW5hZ2VyJiMzNDsgb3Igc29tZXRoaW5nIHNpbWlsYXIsIGltcGx5aW5nIHNvbWUgaW50ZXJhY3Rpb24gd2l0aCB0aGUgb3ZlcmFsbCBuZXR3b3JrIGRldmljZSBpbmZyYXN0cnVjdHVyZS4gCgpHaXZlbiBteSBleHBlcnRpc2UsIEkgc3VzcGVjdCB0aGlzIGZ1bmN0aW9uIGxpa2VseSBoYW5kbGVzIHRoZSBsb3ctbGV2ZWwgYXNwZWN0cyBvZiBhbGxvY2F0aW5nIGFuZCBpbml0aWFsaXppbmcgdGhlIHdpcGh5IHN0cnVjdHVyZSwgcGVyaGFwcyBzZXR0aW5nIHVwIGl0cyBjYXBhYmlsaXRpZXMsIHJlZ2lzdGVyaW5nIGl0IHdpdGggdGhlIHN5c3RlbSwgYW5kIHR5aW5nIGl0IHRvIGEgbmV0d29yayBkZXZpY2UuIEkmIzM5O20gZ3Vlc3NpbmcgaXQgbWlnaHQgYWxzbyBkZWFsIHdpdGggdGhpbmdzIGxpa2UgYWxsb2NhdGluZyBtZW1vcnkgZm9yIHRoZSBkZXZpY2UmIzM5O3MgY29udHJvbCBzdHJ1Y3R1cmVzLiBJdCYjMzk7cyB0aGUga2luZCBvZiBmdW5jdGlvbiB0aGF0IHdvdWxkIGJlIGNydWNpYWwgZm9yIGEgZHJpdmVyIHRvIHdvcmsgd2l0aCB0aGUgY29yZSBXaS1GaSBzdGFjayBpbiB0aGUgTGludXgga2VybmVsLiBMZXQmIzM5O3Mgc2VlIGlmIHRoaXMgaHVuY2ggaXMgY29ycmVjdCwgb3IgaWYgdGhpcyBmdW5jdGlvbiYjMzk7cyBwdXJwb3NlIGhhcyBhIG51YW5jZSB0aGF0IGVzY2FwZXMgbXkgdW5kZXJzdGFuZGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40NC8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjYgMTA6MDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvd2lyZWxlc3MvY29yZS5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogNTQ2LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyA1NDY6XHRzdHJ1Y3Qgd2lwaHkgKndpcGh5X25ld19ubShjb25zdCBzdHJ1Y3QgY2ZnODAyMTFfb3BzICpvcHMsIGludCBzaXplb2ZfcHJpdixcbiA1NDc6XHRcdFx0XHQgICBjb25zdCBjaGFyICpyZXF1ZXN0ZWRfbmFtZSlcbiA1NDg6XHR7XG4gNTQ5Olx0XHRzdGF0aWMgYXRvbWljX3Qgd2lwaHlfY291bnRlciA9IEFUT01JQ19JTklUKDApO1xuIDU1MDpcdFxuIDU1MTpcdFx0c3RydWN0IGNmZzgwMjExX3JlZ2lzdGVyZWRfZGV2aWNlICpyZGV2O1xuIDU1MjpcdFx0aW50IGFsbG9jX3NpemU7XG4gNTUzOlx0XG4gNTU0Olx0XHRXQVJOX09OKG9wcy1cdTAwM2VhZGRfa2V5IFx1MDAyNlx1MDAyNiAoIW9wcy1cdTAwM2VkZWxfa2V5IHx8ICFvcHMtXHUwMDNlc2V0X2RlZmF1bHRfa2V5KSk7XG4gNTU1Olx0XHRXQVJOX09OKG9wcy1cdTAwM2VhdXRoIFx1MDAyNlx1MDAyNiAoIW9wcy1cdTAwM2Vhc3NvYyB8fCAhb3BzLVx1MDAzZWRlYXV0aCB8fCAhb3BzLVx1MDAzZWRpc2Fzc29jKSk7XG4gNTU2Olx0XHRXQVJOX09OKG9wcy1cdTAwM2Vjb25uZWN0IFx1MDAyNlx1MDAyNiAhb3BzLVx1MDAzZWRpc2Nvbm5lY3QpO1xuIDU1NzpcdFx0V0FSTl9PTihvcHMtXHUwMDNlam9pbl9pYnNzIFx1MDAyNlx1MDAyNiAhb3BzLVx1MDAzZWxlYXZlX2lic3MpO1xuIDU1ODpcdFx0V0FSTl9PTihvcHMtXHUwMDNlYWRkX3ZpcnR1YWxfaW50ZiBcdTAwMjZcdTAwMjYgIW9wcy1cdTAwM2VkZWxfdmlydHVhbF9pbnRmKTtcbiA1NTk6XHRcdFdBUk5fT04ob3BzLVx1MDAzZWFkZF9zdGF0aW9uIFx1MDAyNlx1MDAyNiAhb3BzLVx1MDAzZWRlbF9zdGF0aW9uKTtcbiA1NjA6XHRcdFdBUk5fT04ob3BzLVx1MDAzZWFkZF9tcGF0aCBcdTAwMjZcdTAwMjYgIW9wcy1cdTAwM2VkZWxfbXBhdGgpO1xuIDU2MTpcdFx0V0FSTl9PTihvcHMtXHUwMDNlam9pbl9tZXNoIFx1MDAyNlx1MDAyNiAhb3BzLVx1MDAzZWxlYXZlX21lc2gpO1xuIDU2MjpcdFx0V0FSTl9PTihvcHMtXHUwMDNlc3RhcnRfcDJwX2RldmljZSBcdTAwMjZcdTAwMjYgIW9wcy1cdTAwM2VzdG9wX3AycF9kZXZpY2UpO1xuIDU2MzpcdFx0V0FSTl9PTihvcHMtXHUwMDNlc3RhcnRfYXAgXHUwMDI2XHUwMDI2ICFvcHMtXHUwMDNlc3RvcF9hcCk7XG4gNTY0Olx0XHRXQVJOX09OKG9wcy1cdTAwM2Vqb2luX29jYiBcdTAwMjZcdTAwMjYgIW9wcy1cdTAwM2VsZWF2ZV9vY2IpO1xuIDU2NTpcdFx0V0FSTl9PTihvcHMtXHUwMDNlc3VzcGVuZCBcdTAwMjZcdTAwMjYgIW9wcy1cdTAwM2VyZXN1bWUpO1xuIDU2NjpcdFx0V0FSTl9PTihvcHMtXHUwMDNlc2NoZWRfc2Nhbl9zdGFydCBcdTAwMjZcdTAwMjYgIW9wcy1cdTAwM2VzY2hlZF9zY2FuX3N0b3ApO1xuIDU2NzpcdFx0V0FSTl9PTihvcHMtXHUwMDNlcmVtYWluX29uX2NoYW5uZWwgXHUwMDI2XHUwMDI2ICFvcHMtXHUwMDNlY2FuY2VsX3JlbWFpbl9vbl9jaGFubmVsKTtcbiA1Njg6XHRcdFdBUk5fT04ob3BzLVx1MDAzZXRkbHNfY2hhbm5lbF9zd2l0Y2ggXHUwMDI2XHUwMDI2ICFvcHMtXHUwMDNldGRsc19jYW5jZWxfY2hhbm5lbF9zd2l0Y2gpO1xuIDU2OTpcdFx0V0FSTl9PTihvcHMtXHUwMDNlYWRkX3R4X3RzIFx1MDAyNlx1MDAyNiAhb3BzLVx1MDAzZWRlbF90eF90cyk7XG4gNTcwOlx0XG4gNTcxOlx0XHRhbGxvY19zaXplID0gc2l6ZW9mKCpyZGV2KSAmIzQzOyBzaXplb2ZfcHJpdjtcbiA1NzI6XHRcbiA1NzM6XHRcdHJkZXYgPSBremFsbG9jKGFsbG9jX3NpemUsIEdGUF9LRVJORUwpO1xuIDU3NDpcdFx0aWYgKCFyZGV2KVxuIDU3NTpcdFx0XHRyZXR1cm4gTlVMTDtcbiA1NzY6XHRcbiA1Nzc6XHRcdHJkZXYtXHUwMDNlb3BzID0gb3BzO1xuIDU3ODpcdFxuIDU3OTpcdFx0cmRldi1cdTAwM2V3aXBoeV9pZHggPSBhdG9taWNfaW5jX3JldHVybihcdTAwMjZ3aXBoeV9jb3VudGVyKTtcbiA1ODA6XHRcbiA1ODE6XHRcdGlmICh1bmxpa2VseShyZGV2LVx1MDAzZXdpcGh5X2lkeCBcdTAwM2MgMCkpIHtcbiA1ODI6XHRcdFx0LyogdWdoLCB3cmFwcGVkISAqL1xuIDU4MzpcdFx0XHRhdG9taWNfZGVjKFx1MDAyNndpcGh5X2NvdW50ZXIpO1xuIDU4NDpcdFx0XHRrZnJlZShyZGV2KTtcbiA1ODU6XHRcdFx0cmV0dXJuIE5VTEw7XG4gNTg2Olx0XHR9XG4gNTg3Olx0XG4gNTg4Olx0XHQvKiBhdG9taWNfaW5jX3JldHVybiBtYWtlcyBpdCBzdGFydCBhdCAxLCBtYWtlIGl0IHN0YXJ0IGF0IDAgKi9cbiA1ODk6XHRcdHJkZXYtXHUwMDNld2lwaHlfaWR4LS07XG4gNTkwOlx0XG4gNTkxOlx0XHQvKiBnaXZlIGl0IGEgcHJvcGVyIG5hbWUgKi9cbiA1OTI6XHRcdGlmIChyZXF1ZXN0ZWRfbmFtZSBcdTAwMjZcdTAwMjYgcmVxdWVzdGVkX25hbWVbMF0pIHtcbiA1OTM6XHRcdFx0aW50IHJ2O1xuIDU5NDpcdFxuIDU5NTpcdFx0XHRydG5sX2xvY2soKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40NS8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjYgMTA6MDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzI0OTkKCQkJCQkJCW91dHB1dDogMjY0CgkJCQkJCQl0aG91Z2h0czogMTM5MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXNpcyBvZiB0aGUgUlggRmlsdGVyIEZsYWcgUGVyc2lzdGVuY2UgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcywgdGhpcyBpcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLiBUaGUgY3JpdGljYWwgcGFydCBpcyB1bmRlcnN0YW5kaW5nIGhvdyBgcGh5LSZndDtyeGZpbHRlcmAgaXMgdXNlZC4gV2Ugc3RhcnQgd2l0aCBga3phbGxvY2AgaW5pdGlhbGl6aW5nIHRoZSBgbXQ3OTJ4X2RldmAgc3RydWN0dXJlLCB3aGljaCBpbmNsdWRlcyB0aGUgYG10NzkyeF9waHlgIHN0cnVjdC4gVGhpcyBtZWFucyBgcGh5LSZndDtyeGZpbHRlcmAgaXMgaW5pdGlhbGx5IHplcm8uCgpUaGVuLCBgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXJgIGlzIGNhbGxlZC4gIFRoaXMgZnVuY3Rpb24gc2V0cyBgcGh5LSZndDtyeGZpbHRlcmAgdG8gdGhlIGBmbGFnc2AgdmFsdWUuICBTbyBmYXIsIHNvIGdvb2Q6IGluaXRpYWxpemF0aW9uIGFuZCBhc3NpZ25tZW50IGFyZSBjbGVhci4KCkxhdGVyLCBpbiBgbXQ3OTI1X21jdV9jb25maWdfc25pZmZlcmAsIHRoZSB2YWx1ZSBvZiBgcGh5LSZndDtyeGZpbHRlcmAgaXMgcmVhZC4gQ3JpdGljYWxseSwgaXQmIzM5O3MgdXNlZCB0byBjb25kaXRpb25hbGx5IHNldCB0aGUgYGRyb3BfZXJyYCBmbGFnIGluIGEgY29uZmlndXJhdGlvbiByZXF1ZXN0LiAgVGhlIGxvZ2ljIGlzIHNvdW5kOiB3ZSYjMzk7cmUgc3RvcmluZyB0aGUgUlggZmlsdGVyIGZsYWdzIGFuZCByZXVzaW5nIHRoZW0gdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdG8gZHJvcCBmcmFtZXMgd2l0aCBGQ1MgZXJyb3JzLgoKTXkgaW1tZWRpYXRlIHF1ZXN0aW9uOiBJcyB0aGVyZSBhbnkgcG90ZW50aWFsIGZvciBhbiB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkPyBOby4gYHBoeS0mZ3Q7cnhmaWx0ZXJgIGlzIGluaXRpYWxpemVkIHRvIHplcm8gZHVyaW5nIHRoZSBkZXZpY2Ugc3RydWN0dXJlIGFsbG9jYXRpb24gdmlhIGBremFsbG9jYC4gVGhlIHZhbHVlIGlzICpvdmVyd3JpdHRlbiogaW4gYG10NzkyNV9jb25maWd1cmVfZmlsdGVyYCwgYW5kIHRoZW4gKnJlYWQqIGFmdGVyd2FyZHMuIFdlJiMzOTtyZSBub3QgcmVhZGluZyB1bml0aWFsaXplZCBtZW1vcnksIGFuZCB0aGVyZSYjMzk7cyBubyBkYXRhIGJlaW5nIGxlYWtlZCB0byB1c2VyIHNwYWNlLCByaWdodD8gVGhlIGtleSBpcyB0byBjb25maXJtIHRoYXQgYHBoeWAgaXMgYWx3YXlzIHBhcnQgb2YgYGRldmAgYW5kIHRoYXQgdGhlIGxpZmV0aW1lIG9mIHRoZSBwb2ludGVyIGlzIHdlbGwgbWFuYWdlZC4KCkxldCYjMzk7cyBkbyBhIHF1aWNrIGRvdWJsZS1jaGVjayBvZiB0aGUgcGF0Y2ggZm9yIG90aGVyIHN1YnRsZSBjaGFuZ2VzLCBqdXN0IHRvIGJlIHRob3JvdWdoLi4uIFllcCwgSSBzZWUgaXQgZGVmaW5lcyB0aGUgbmV3IGBNVDc5MjVfRklMVEVSXypgIG1hY3Jvcy4gRmluZS4KCk15IGZpbmFsIGNvbmNsdXNpb24gaXMgdGhhdCB0aGlzIGxvb2tzIGxpa2UgYSBwdXJlbHkgbG9naWNhbCBjaGFuZ2UsIG5vIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGlzc3VlcyB0aGF0IEtNU0FOIHdvdWxkIGhpZ2hsaWdodC4gTm8gZGF0YSBsZWFrcywgYW5kIG5vIG5vdmVsIGFsbG9jYXRpb25zIG9yIHBvaW50ZXIgbWFuYWdlbWVudCB0aGF0IHdvdWxkIHJlcXVpcmUgZXh0cmEgc2NydXRpbnkuICBTdGFuZGFyZCBrZXJuZWwgc2FuaXRpemVycyBzaG91bGQgY2F0Y2ggYW55IHJlbGF0ZWQgYnVncy4gU28sIEkmIzM5O2Qgc2F5IHRoYXQgYE5lZWRzS01TQU5gIGlzIGBmYWxzZWAgaGVyZS4gVGhlIHBhdGNoIHNpbXBseSBwZXJzaXN0cyB0aGUgUlggZmlsdGVyIHNldHRpbmdzIHdpdGhpbiB0aGUgYHBoeWAgc3RydWN0dXJlIGFuZCByZXVzZXMgdGhlbSBpbiBhIHdlbGwtZGVmaW5lZCB3YXkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDYvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDEwOjAzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgZmllbGQgYHJ4ZmlsdGVyYCB0byBgc3RydWN0IG10NzkyeF9waHlgIHRvIHN0b3JlIHRoZSBSWCBmaWx0ZXIgZmxhZ3MuIFRoaXMgc3RydWN0dXJlIGlzIGVtYmVkZGVkIGluIGBzdHJ1Y3QgbXQ3OTJ4X2RldmAsIHdoaWNoIGlzIGFsbG9jYXRlZCB2aWEgYG10NzZfYWxsb2NfZGV2aWNlYCAtXHUwMDNlIGBpZWVlODAyMTFfYWxsb2NfaHdgIC1cdTAwM2UgYHdpcGh5X25ld19ubWAgdXNpbmcgYGt6YWxsb2NgLiBUaHVzLCB0aGUgbmV3IGZpZWxkIGlzIGZ1bGx5IHplcm8taW5pdGlhbGl6ZWQgdXBvbiBhbGxvY2F0aW9uLiBUaGUgcGF0Y2ggdGhlbiB3cml0ZXMgdG8gdGhpcyBmaWVsZCBpbiBgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXJgIGFuZCByZWFkcyBmcm9tIGl0IGluIGBtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyYCB0byBjb25kaXRpb25hbGx5IHNldCB0aGUgYGRyb3BfZXJyYCBmbGFnIGluIGEgaGFyZHdhcmUgY29uZmlndXJhdGlvbiByZXF1ZXN0LiBUaGVyZSBhcmUgbm8gbmV3IGFsbG9jYXRpb25zLCBubyBzdHJ1Y3R1cmVzIGNvcGllZCB0byB1c2VyIHNwYWNlLCBhbmQgbm8gY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHMgY291bGQgYmUgcmVhZC4gQW55IHBvdGVudGlhbCBidWdzIGludHJvZHVjZWQgYnkgdGhpcyBwYXRjaCB3b3VsZCBiZSByZWxhdGVkIHRvIGluY29ycmVjdCBsb2dpYyBvciBvdXQtb2YtYm91bmRzIGFjY2Vzcywgd2hpY2ggYXJlIHdlbGwtY292ZXJlZCBieSBzdGFuZGFyZCBLQVNBTiBhbmQgb3RoZXIgYnVnIGRldGVjdG9ycy4gVGhlcmUgaXMgbm8gcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzIHRoYXQgd291bGQgcmVxdWlyZSBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24uJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGZpZWxkIGByeGZpbHRlcmAgdG8gYHN0cnVjdCBtdDc5MnhfcGh5YCB0byBzdG9yZSB0aGUgUlggZmlsdGVyIGZsYWdzLiBUaGlzIHN0cnVjdHVyZSBpcyBlbWJlZGRlZCBpbiBgc3RydWN0IG10NzkyeF9kZXZgLCB3aGljaCBpcyBhbGxvY2F0ZWQgdmlhIGBtdDc2X2FsbG9jX2RldmljZWAgLVx1MDAzZSBgaWVlZTgwMjExX2FsbG9jX2h3YCAtXHUwMDNlIGB3aXBoeV9uZXdfbm1gIHVzaW5nIGBremFsbG9jYC4gVGh1cywgdGhlIG5ldyBmaWVsZCBpcyBmdWxseSB6ZXJvLWluaXRpYWxpemVkIHVwb24gYWxsb2NhdGlvbi4gVGhlIHBhdGNoIHRoZW4gd3JpdGVzIHRvIHRoaXMgZmllbGQgaW4gYG10NzkyNV9jb25maWd1cmVfZmlsdGVyYCBhbmQgcmVhZHMgZnJvbSBpdCBpbiBgbXQ3OTI1X21jdV9jb25maWdfc25pZmZlcmAgdG8gY29uZGl0aW9uYWxseSBzZXQgdGhlIGBkcm9wX2VycmAgZmxhZyBpbiBhIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24gcmVxdWVzdC4gVGhlcmUgYXJlIG5vIG5ldyBhbGxvY2F0aW9ucywgbm8gc3RydWN0dXJlcyBjb3BpZWQgdG8gdXNlciBzcGFjZSwgYW5kIG5vIGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIHdoZXJlIHVuaW5pdGlhbGl6ZWQgZmllbGRzIGNvdWxkIGJlIHJlYWQuIEFueSBwb3RlbnRpYWwgYnVncyBpbnRyb2R1Y2VkIGJ5IHRoaXMgcGF0Y2ggd291bGQgYmUgcmVsYXRlZCB0byBpbmNvcnJlY3QgbG9naWMgb3Igb3V0LW9mLWJvdW5kcyBhY2Nlc3MsIHdoaWNoIGFyZSB3ZWxsLWNvdmVyZWQgYnkgc3RhbmRhcmQgS0FTQU4gYW5kIG90aGVyIGJ1ZyBkZXRlY3RvcnMuIFRoZXJlIGlzIG5vIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcyB0aGF0IHdvdWxkIHJlcXVpcmUgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0yNlQwOTo0OTozOC42NTY3Nzg5NzVaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MDgyMjUzNDc3MTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVQ3OTI1VVwiLFxuICAgIFwiTUFDODAyMTFcIixcbiAgICBcIlVTQlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm10NzkyNV9jb25maWd1cmVfZmlsdGVyXCIsXG4gICAgXCJtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyXCJcbiAgXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGZpZWxkIGByeGZpbHRlcmAgdG8gYHN0cnVjdCBtdDc5MnhfcGh5YCB0byBzdG9yZSB0aGUgUlggZmlsdGVyIGZsYWdzLiBUaGlzIHN0cnVjdHVyZSBpcyBlbWJlZGRlZCBpbiBgc3RydWN0IG10NzkyeF9kZXZgLCB3aGljaCBpcyBhbGxvY2F0ZWQgdmlhIGBtdDc2X2FsbG9jX2RldmljZWAgLVxcdTAwM2UgYGllZWU4MDIxMV9hbGxvY19od2AgLVxcdTAwM2UgYHdpcGh5X25ld19ubWAgdXNpbmcgYGt6YWxsb2NgLiBUaHVzLCB0aGUgbmV3IGZpZWxkIGlzIGZ1bGx5IHplcm8taW5pdGlhbGl6ZWQgdXBvbiBhbGxvY2F0aW9uLiBUaGUgcGF0Y2ggdGhlbiB3cml0ZXMgdG8gdGhpcyBmaWVsZCBpbiBgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXJgIGFuZCByZWFkcyBmcm9tIGl0IGluIGBtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyYCB0byBjb25kaXRpb25hbGx5IHNldCB0aGUgYGRyb3BfZXJyYCBmbGFnIGluIGEgaGFyZHdhcmUgY29uZmlndXJhdGlvbiByZXF1ZXN0LiBUaGVyZSBhcmUgbm8gbmV3IGFsbG9jYXRpb25zLCBubyBzdHJ1Y3R1cmVzIGNvcGllZCB0byB1c2VyIHNwYWNlLCBhbmQgbm8gY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHMgY291bGQgYmUgcmVhZC4gQW55IHBvdGVudGlhbCBidWdzIGludHJvZHVjZWQgYnkgdGhpcyBwYXRjaCB3b3VsZCBiZSByZWxhdGVkIHRvIGluY29ycmVjdCBsb2dpYyBvciBvdXQtb2YtYm91bmRzIGFjY2Vzcywgd2hpY2ggYXJlIHdlbGwtY292ZXJlZCBieSBzdGFuZGFyZCBLQVNBTiBhbmQgb3RoZXIgYnVnIGRldGVjdG9ycy4gVGhlcmUgaXMgbm8gcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzIHRoYXQgd291bGQgcmVxdWlyZSBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24uXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhdGVrIE1UNzkyNSB3aXJlbGVzcyBkcml2ZXIgdG8gY29uZmlndXJlIHRoZSBzbmlmZmVyJ3MgZHJvcF9lcnIgZmxhZyBiYXNlZCBvbiB0aGUgcnhmaWx0ZXIgc2V0dGluZ3MuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZHJpdmVyJ3MgbWFjODAyMTEgY2FsbGJhY2tzLiBUaGUgZHJpdmVyIGhhcyBhIFVTQiB2YXJpYW50IChtdDc5MjV1KSB3aGljaCBjYW4gYmUgZnV6emVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB2aWEgVVNCIGVtdWxhdGlvbiAoc3l6X3VzYl9jb25uZWN0KS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjZUMDk6NDk6MzguNjU2Nzg1MDc1WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNjIwOTUxNjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA4ZGQ4ZTg4NGQzYTgzNjY1ZDcwNzI3MGI4ZDcxODVhNDZiMzQ4YmM0XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgQXVnIDI2IDA5OjQ5OjM3IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uY1xcbmluZGV4IGE5MDU5ODY2YjcwMTYuLmNmYmZkNzdlODkwZmIgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jXFxuQEAgLTgzMiwxMSArODMyLDggQEAgc3RhdGljIHZvaWQgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXIoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuIFxcdFxcdFxcdFxcdCAgICB1bnNpZ25lZCBpbnQgKnRvdGFsX2ZsYWdzLFxcbiBcXHRcXHRcXHRcXHQgICAgdTY0IG11bHRpY2FzdClcXG4ge1xcbi0jZGVmaW5lIE1UNzkyNV9GSUxURVJfRkNTRkFJTCAgICBCSVQoMilcXG4tI2RlZmluZSBNVDc5MjVfRklMVEVSX0NPTlRST0wgICAgQklUKDUpXFxuLSNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9PVEhFUl9CU1MgIEJJVCg2KVxcbi0jZGVmaW5lIE1UNzkyNV9GSUxURVJfRU5BQkxFICAgICBCSVQoMzEpXFxuIFxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcXG4rXFx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG10NzkyeF9od19waHkoaHcpO1xcbiBcXHR1MzIgZmxhZ3MgPSBNVDc5MjVfRklMVEVSX0VOQUJMRTtcXG4gXFxuICNkZWZpbmUgTVQ3OTI1X0ZJTFRFUihfZmlmLCBfdHlwZSkgZG8ge1xcdFxcdFxcdFxcXFxcXG5AQCAtODQ4LDYgKzg0NSw4IEBAIHN0YXRpYyB2b2lkIG10NzkyNV9jb25maWd1cmVfZmlsdGVyKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbiBcXHRNVDc5MjVfRklMVEVSKEZJRl9DT05UUk9MLCBDT05UUk9MKTtcXG4gXFx0TVQ3OTI1X0ZJTFRFUihGSUZfT1RIRVJfQlNTLCBPVEhFUl9CU1MpO1xcbiBcXG4rXFx0cGh5LVxcdTAwM2VyeGZpbHRlciA9IGZsYWdzO1xcbitcXG4gXFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG4gXFx0bXQ3OTI1X21jdV9zZXRfcnhmaWx0ZXIoZGV2LCBmbGFncywgMCwgMCk7XFxuIFxcdG10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmNcXG5pbmRleCBlOTRmYTU0NGZmMjA3Li5hZGMxMzdhMGU2YjRkIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmNcXG5AQCAtMjI1MSw3ICsyMjUxLDcgQEAgaW50IG10NzkyNV9tY3VfY29uZmlnX3NuaWZmZXIoc3RydWN0IG10NzkyeF92aWYgKnZpZixcXG4gXFx0XFx0XFx0LmxlbiA9IGNwdV90b19sZTE2KHNpemVvZihyZXEudGx2KSksXFxuIFxcdFxcdFxcdC5jb250cm9sX2NoID0gY2hhbmRlZi1cXHUwMDNlY2hhbi1cXHUwMDNlaHdfdmFsdWUsXFxuIFxcdFxcdFxcdC5jZW50ZXJfY2ggPSBpZWVlODAyMTFfZnJlcXVlbmN5X3RvX2NoYW5uZWwoZnJlcTEpLFxcbi1cXHRcXHRcXHQuZHJvcF9lcnIgPSAxLFxcbitcXHRcXHRcXHQuZHJvcF9lcnIgPSAhKHZpZi1cXHUwMDNlcGh5LVxcdTAwM2VyeGZpbHRlciBcXHUwMDI2IE1UNzkyNV9GSUxURVJfRkNTRkFJTCksXFxuIFxcdFxcdH0sXFxuIFxcdH07XFxuIFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tdDc5MjUuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L210NzkyNS5oXFxuaW5kZXggNGNjMjU5NDE4YWZjYS4uOGZiOGE0YzEzMTZlMCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tdDc5MjUuaFxcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L210NzkyNS5oXFxuQEAgLTcsNiArNywxMSBAQFxcbiAjaW5jbHVkZSBcXFwiLi4vbXQ3OTJ4LmhcXFwiXFxuICNpbmNsdWRlIFxcXCJyZWdzLmhcXFwiXFxuIFxcbisjZGVmaW5lIE1UNzkyNV9GSUxURVJfRkNTRkFJTFxcdFxcdEJJVCgyKVxcbisjZGVmaW5lIE1UNzkyNV9GSUxURVJfQ09OVFJPTFxcdFxcdEJJVCg1KVxcbisjZGVmaW5lIE1UNzkyNV9GSUxURVJfT1RIRVJfQlNTXFx0QklUKDYpXFxuKyNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9FTkFCTEVcXHRcXHRCSVQoMzEpXFxuK1xcbiAjZGVmaW5lIE1UNzkyNV9CRUFDT05fUkFURVNfVEJMXFx0XFx0MjVcXG4gXFxuICNkZWZpbmUgTVQ3OTI1X1RYX1JJTkdfU0laRVxcdFxcdDIwNDhcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4LmhcXG5pbmRleCA3MDA3M2I0M2FmNTQzLi43NWQzMmE0YWRkZDcxIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4LmhcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oXFxuQEAgLTE2OCw2ICsxNjgsNyBAQCBzdHJ1Y3QgbXQ3OTJ4X3BoeSB7XFxuIFxcdHMxNiBjb3ZlcmFnZV9jbGFzcztcXG4gXFx0dTggc2xvdHRpbWU7XFxuIFxcbitcXHR1MzIgcnhmaWx0ZXI7XFxuIFxcdHUzMiByeF9hbXBkdV90cztcXG4gXFx0dTMyIGFtcGR1X3JlZjtcXG4gXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDA5OjQ5OjM5LjAxOTU2Nzk0OFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjczNjEzODE0OTA1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNVDc5MjVVXCIsXG4gICAgXCJNQUM4MDIxMVwiLFxuICAgIFwiVVNCXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXJcIixcbiAgICBcIm10NzkyNV9tY3VfY29uZmlnX3NuaWZmZXJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVkaWF0ZWsgTVQ3OTI1IHdpcmVsZXNzIGRyaXZlciB0byBjb25maWd1cmUgdGhlIHNuaWZmZXIncyBkcm9wX2VyciBmbGFnIGJhc2VkIG9uIHRoZSByeGZpbHRlciBzZXR0aW5ncy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXIncyBtYWM4MDIxMSBjYWxsYmFja3MuIFRoZSBkcml2ZXIgaGFzIGEgVVNCIHZhcmlhbnQgKG10NzkyNXUpIHdoaWNoIGNhbiBiZSBmdXp6ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSBVU0IgZW11bGF0aW9uIChzeXpfdXNiX2Nvbm5lY3QpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA4ZGQ4ZTg4NGQzYTgzNjY1ZDcwNzI3MGI4ZDcxODVhNDZiMzQ4YmM0XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBBdWcgMjYgMDk6NDk6MzcgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmNcbmluZGV4IGE5MDU5ODY2YjcwMTYuLmNmYmZkNzdlODkwZmIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uY1xuQEAgLTgzMiwxMSArODMyLDggQEAgc3RhdGljIHZvaWQgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXIoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4gXHRcdFx0XHQgICAgdW5zaWduZWQgaW50ICp0b3RhbF9mbGFncyxcbiBcdFx0XHRcdCAgICB1NjQgbXVsdGljYXN0KVxuIHtcbi0jZGVmaW5lIE1UNzkyNV9GSUxURVJfRkNTRkFJTCAgICBCSVQoMilcbi0jZGVmaW5lIE1UNzkyNV9GSUxURVJfQ09OVFJPTCAgICBCSVQoNSlcbi0jZGVmaW5lIE1UNzkyNV9GSUxURVJfT1RIRVJfQlNTICBCSVQoNilcbi0jZGVmaW5lIE1UNzkyNV9GSUxURVJfRU5BQkxFICAgICBCSVQoMzEpXG4gXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gbXQ3OTJ4X2h3X2Rldihodyk7XG4rXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG4gXHR1MzIgZmxhZ3MgPSBNVDc5MjVfRklMVEVSX0VOQUJMRTtcbiBcbiAjZGVmaW5lIE1UNzkyNV9GSUxURVIoX2ZpZiwgX3R5cGUpIGRvIHtcdFx0XHRcXFxuQEAgLTg0OCw2ICs4NDUsOCBAQCBzdGF0aWMgdm9pZCBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbiBcdE1UNzkyNV9GSUxURVIoRklGX0NPTlRST0wsIENPTlRST0wpO1xuIFx0TVQ3OTI1X0ZJTFRFUihGSUZfT1RIRVJfQlNTLCBPVEhFUl9CU1MpO1xuIFxuK1x0cGh5LVx1MDAzZXJ4ZmlsdGVyID0gZmxhZ3M7XG4rXG4gXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuIFx0bXQ3OTI1X21jdV9zZXRfcnhmaWx0ZXIoZGV2LCBmbGFncywgMCwgMCk7XG4gXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmNcbmluZGV4IGU5NGZhNTQ0ZmYyMDcuLmFkYzEzN2EwZTZiNGQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmNcbkBAIC0yMjUxLDcgKzIyNTEsNyBAQCBpbnQgbXQ3OTI1X21jdV9jb25maWdfc25pZmZlcihzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqdmlmLFxuIFx0XHRcdC5sZW4gPSBjcHVfdG9fbGUxNihzaXplb2YocmVxLnRsdikpLFxuIFx0XHRcdC5jb250cm9sX2NoID0gY2hhbmRlZi1cdTAwM2VjaGFuLVx1MDAzZWh3X3ZhbHVlLFxuIFx0XHRcdC5jZW50ZXJfY2ggPSBpZWVlODAyMTFfZnJlcXVlbmN5X3RvX2NoYW5uZWwoZnJlcTEpLFxuLVx0XHRcdC5kcm9wX2VyciA9IDEsXG4rXHRcdFx0LmRyb3BfZXJyID0gISh2aWYtXHUwMDNlcGh5LVx1MDAzZXJ4ZmlsdGVyIFx1MDAyNiBNVDc5MjVfRklMVEVSX0ZDU0ZBSUwpLFxuIFx0XHR9LFxuIFx0fTtcbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tdDc5MjUuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L210NzkyNS5oXG5pbmRleCA0Y2MyNTk0MThhZmNhLi44ZmI4YTRjMTMxNmUwIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbXQ3OTI1LmhcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L210NzkyNS5oXG5AQCAtNyw2ICs3LDExIEBAXG4gI2luY2x1ZGUgXCIuLi9tdDc5MnguaFwiXG4gI2luY2x1ZGUgXCJyZWdzLmhcIlxuIFxuKyNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9GQ1NGQUlMXHRcdEJJVCgyKVxuKyNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9DT05UUk9MXHRcdEJJVCg1KVxuKyNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9PVEhFUl9CU1NcdEJJVCg2KVxuKyNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9FTkFCTEVcdFx0QklUKDMxKVxuK1xuICNkZWZpbmUgTVQ3OTI1X0JFQUNPTl9SQVRFU19UQkxcdFx0MjVcbiBcbiAjZGVmaW5lIE1UNzkyNV9UWF9SSU5HX1NJWkVcdFx0MjA0OFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4LmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oXG5pbmRleCA3MDA3M2I0M2FmNTQzLi43NWQzMmE0YWRkZDcxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaFxuQEAgLTE2OCw2ICsxNjgsNyBAQCBzdHJ1Y3QgbXQ3OTJ4X3BoeSB7XG4gXHRzMTYgY292ZXJhZ2VfY2xhc3M7XG4gXHR1OCBzbG90dGltZTtcbiBcbitcdHUzMiByeGZpbHRlcjtcbiBcdHUzMiByeF9hbXBkdV90cztcbiBcdHUzMiBhbXBkdV9yZWY7XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQwOTo0OTozOS4wMTk1NjkxMzhaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3NTY5MDg5OTU1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIFRoaXMgV2ktRmkgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0J3MgdG91Y2hpbmcgYSBmZXcgZmlsZXMgcmVsYXRlZCB0byB0aGUgTWVkaWF0ZWsgTVQ3OTI1IHdpcmVsZXNzIGRyaXZlcjogYG1haW4uY2AsIGBtY3UuY2AsIGBtdDc5MjUuaGAsIGFuZCBgbXQ3OTJ4LmhgLiBUaGUgY29yZSBvZiB0aGUgY2hhbmdlIHNlZW1zIHRvIGJlIGFib3V0IG1vdmluZyBzb21lIGAjZGVmaW5lYCBzdGF0ZW1lbnRzIHRvIGEgaGVhZGVyIGZpbGUsIGFkZGluZyBhbiBgcnhmaWx0ZXJgIGZpZWxkIHRvIHRoZSBgbXQ3OTJ4X3BoeWAgc3RydWN0LCBhbmQgdGhlbiB1c2luZyB0aGF0IG5ldyBmaWx0ZXIgaW4gYSBjb3VwbGUgb2YgcGxhY2VzLiBTcGVjaWZpY2FsbHksIGl0J3Mgc2V0dGluZyBgcGh5LVx1MDAzZXJ4ZmlsdGVyID0gZmxhZ3M7YCBpbiBgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXJgLCBhbmQgbGV2ZXJhZ2luZyB0aGUgZmlsdGVyIGluIGBtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyYCwgd2hlcmUgaXQncyB1c2luZyB0aGUgZmlsdGVyIHRvIHNlbGVjdGl2ZWx5IGRyb3AgcGFja2V0czogYC5kcm9wX2VyciA9ICEodmlmLVx1MDAzZXBoeS1cdTAwM2VyeGZpbHRlciBcdTAwMjYgTVQ3OTI1X0ZJTFRFUl9GQ1NGQUlMKWAuXG5cbk5vdywgdGhlIGltcG9ydGFudCBxdWVzdGlvbiBpczogd2hhdCBraW5kIG9mIHRhcmdldCBkZXZpY2UgYW0gSSBkZWFsaW5nIHdpdGggaGVyZT8gVGhpcyBkcml2ZXIgaXMgZm9yIHRoZSBNVDc5MjUsIHdoaWNoLCBnaXZlbiBteSBleHBlcmllbmNlIHdpdGggdGhlIGBtdDc2YCBmYW1pbHksIGlzIGFsbW9zdCBjZXJ0YWlubHkgYSBwaHlzaWNhbCBoYXJkd2FyZSBkcml2ZXIsIGxpa2VseSBQQ0llIG9yIFVTQi4gSSBkb3VidCBpdCB3b3VsZCBiZSBhIHB1cmVseSBzb2Z0d2FyZS1iYXNlZCBXaS1GaSBzdGFjay4gU28sIHRoZSBxdWVzdGlvbiBpcywgY2FuIHRoaXMgYmUgZW11bGF0ZWQgd2l0aGluIFFFTVU/IEkgZG91YnQgdGhhdCB0aGlzIGlzIHNvbWV0aGluZyB0aGF0IGhhcyBhIGdlbmVyaWMgZW5vdWdoIFVTQiBpbnRlcmZhY2UgdG8gYmUgZW11bGF0ZWQgYXMgYSBVU0IgZ2FkZ2V0LCBhbmQgZW11bGF0aW5nIGEgc3BlY2lmaWMgTWVkaWF0ZWsgV2ktRmkgY2FyZCBpcyBub3Qgc29tZXRoaW5nIEkndmUgdXN1YWxseSBzZWVuLCB1bmxlc3Mgd2UncmUgdGFsa2luZyBhYm91dCB2ZXJ5IGdlbmVyYWwsIHNpbXBsZSBVU0IgZGV2aWNlcy4gSXQncyBub3QgbGlrZSBgbWFjODAyMTFfaHdzaW1gLCB3aGljaCBwcm92aWRlcyBhIGdlbmVyYWwgV2ktRmkgZW11bGF0aW9uLlxuXG5JIG5lZWQgdG8gY29uZmlybSB3aGV0aGVyIHRoaXMgZHJpdmVyIGlzIGZvciBhIFBDSSBvciBVU0IgZGV2aWNlLCBhbmQgSSdsbCB1c2UgYGdyZXBwZXJgIHRvIHNlZSBpZiB0aGVyZSBpcyBhbnkgaW5kaWNhdGlvbiBvZiBpdCBiZWluZyBlaXRoZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxMDksIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozODcsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQwOTo0OTo0Ni41ODg2NjI1NzNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDg1NjU0NDYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3OTI1XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDMxOTEgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L01ha2VmaWxlLTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfTVQ3OTI1X0NPTU1PTikgKz0gbXQ3OTI1LWNvbW1vbi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGU6NDpvYmotJChDT05GSUdfTVQ3OTI1RSkgKz0gbXQ3OTI1ZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGU6NTpvYmotJChDT05GSUdfTVQ3OTI1VSkgKz0gbXQ3OTI1dS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGUtNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9NYWtlZmlsZTo3Om10NzkyNS1jb21tb24teSA6PSBtYWMubyBtY3UubyByZWdkLm8gbWFpbi5vIGluaXQubyBkZWJ1Z2ZzLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9NYWtlZmlsZTo4Om10NzkyNS1jb21tb24tJChDT05GSUdfTkw4MDIxMV9URVNUTU9ERSkgKz0gdGVzdG1vZGUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L01ha2VmaWxlOjk6bXQ3OTI1ZS15IDo9IHBjaS5vIHBjaV9tYWMubyBwY2lfbWN1Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9NYWtlZmlsZToxMDptdDc5MjV1LXkgOj0gdXNiLm9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0zLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo0OiNpbmNsdWRlIFxcXCJtdDc5MjUuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtNS0jaW5jbHVkZSBcXFwibWN1LmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9Nz1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjg6bXQ3OTI1X3JlZ19zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtOS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTMtXFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTQ6XFx0bXQ3OTI1X21jdV9yZWd2YWwoZGV2LCBkZXYtXFx1MDAzZW10NzYuZGVidWdmc19yZWcsIFxcdTAwMjZyZWd2YWwsIHRydWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNS1cXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jPTIwPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MjE6bXQ3OTI1X3JlZ19nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTIyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yNy1cXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyODpcXHRyZXQgPSBtdDc5MjVfbWN1X3JlZ3ZhbChkZXYsIGRldi1cXHUwMDNlbXQ3Ni5kZWJ1Z2ZzX3JlZywgXFx1MDAyNnJlZ3ZhbCwgZmFsc2UpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yOS1cXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTM1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzozNjpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19yZWd2YWwsIG10NzkyNV9yZWdfZ2V0LCBtdDc5MjVfcmVnX3NldCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMzctXFx0XFx0XFx0IFxcXCIweCUwOGxseFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jPTM4PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6Mzk6bXQ3OTI1X2Z3X2RlYnVnX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy00MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtNDUtXFx0ZGV2LVxcdTAwM2Vmd19kZWJ1ZyA9ICh1OCl2YWw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjQ2OlxcdG10NzkyNV9tY3VfZndfbG9nXzJfaG9zdChkZXYsIGRldi1cXHUwMDNlZndfZGVidWcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy00Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz01Mz1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjU0Om10NzkyNV9md19kZWJ1Z19nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTU1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy02Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6NjM6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfZndfZGVidWcsIG10NzkyNV9md19kZWJ1Z19nZXQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjY0OlxcdFxcdFxcdCBtdDc5MjVfZndfZGVidWdfc2V0LCBcXFwiJWxsZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTY1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jPTY4PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjY5Om10NzkyNV9zZXFfcHV0c19hcnJheShzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgKnN0cixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtNzAtXFx0XFx0ICAgICAgczggdmFsW11bMl0sIGludCBsZW4sIHU4IGJhbmRfaWR4KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTgyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo4MzojZGVmaW5lIG10NzkyNV9wcmludF90eHB3cl9lbnRyeShwcmVmaXgsIHJhdGUsIGlkeClcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTg0LSh7XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo4NTpcXHRtdDc5MjVfc2VxX3B1dHNfYXJyYXkocywgI3ByZWZpeCBcXFwiICh0bWFjKVxcXCIsXFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy04Ni1cXHRcXHRcXHQgICAgICB0eHB3ci1cXHUwMDNlcmF0ZSxcXHRcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9OTE9c3RhdGljIGlubGluZSB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjkyOm10NzkyNV9laHRfdHhwd3Ioc3RydWN0IHNlcV9maWxlICpzLCBzdHJ1Y3QgbXQ3OTI1X3R4cHdyICp0eHB3ciwgdTggYmFuZF9pZHgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTkzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy05Ny1cXHRcXHQgICBcXFwibWNzMTJcXFwiLCBcXFwibWNzMTNcXFwiLCBcXFwibWNzMTRcXFwiLCBcXFwibWNzMTVcXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6OTg6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDI2LCBlaHQyNiwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo5OTpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUNTIsIGVodDUyLCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjEwMDpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUMTA2LCBlaHQxMDYsIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTAxOlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShFSFQyNDIsIGVodDI0MiwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMDI6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDQ4NCwgZWh0NDg0LCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTEwMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTA0OlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShFSFQ5OTYsIGVodDk5NiwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMDU6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDk5NngyLCBlaHQ5OTZ4MiwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMDY6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDk5Nng0LCBlaHQ5OTZ4NCwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMDc6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDI2XzUyLCBlaHQyNl81MiwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMDg6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDI2XzEwNiwgZWh0MjZfMTA2LCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjEwOTpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUNDg0XzI0MiwgZWh0NDg0XzI0MiwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMTA6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDk5Nl80ODQsIGVodDk5Nl80ODQsIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTExOlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShFSFQ5OTZfNDg0XzI0MiwgZWh0OTk2XzQ4NF8yNDIsIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTEyOlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShFSFQ5OTZ4Ml80ODQsIGVodDk5NngyXzQ4NCwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMTM6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDk5NngzLCBlaHQ5OTZ4MywgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMTQ6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDk5NngzXzQ4NCwgZWh0OTk2eDNfNDg0LCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTExNS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MTE3PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTE4Om10NzkyNV90eHB3cihzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTExOS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTEyMC1cXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gZGV2X2dldF9kcnZkYXRhKHMtXFx1MDAzZXByaXZhdGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMjE6XFx0c3RydWN0IG10NzkyNV90eHB3ciAqdHhwd3IgPSBOVUxMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xMjItXFx0dTggYmFuZF9pZHggPSBkZXYtXFx1MDAzZW1waHkuYmFuZF9pZHg7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTMwLVxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjEzMTpcXHRyZXQgPSBtdDc5MjVfZ2V0X3R4cHdyX2luZm8oZGV2LCBiYW5kX2lkeCwgdHhwd3IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xMzItXFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xMzgtXFx0XFx0ICAgXFxcIiBcXFwiLCBcXFwiMW1cXFwiLCBcXFwiMm1cXFwiLCBcXFwiNW1cXFwiLCBcXFwiMTFtXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjEzOTpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoQ0NLLCBjY2ssIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTQwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE0My1cXHRcXHQgICBcXFwiNDhtXFxcIiwgXFxcIjU0bVxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNDQ6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KE9GRE0sIG9mZG0sIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTQ1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE0OC1cXHRcXHQgICBcXFwibWNzNlxcXCIsIFxcXCJtY3M3XFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE0OTpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoSFQyMCwgaHQyMCwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNTAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTUzLVxcdFxcdCAgIFxcXCJtY3M2XFxcIiwgXFxcIm1jczdcXFwiLCBcXFwibWNzMzJcXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTU0OlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShIVDQwLCBodDQwLCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE1NS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNTgtXFx0XFx0ICAgXFxcIm1jczZcXFwiLCBcXFwibWNzN1xcXCIsIFxcXCJtY3M4XFxcIiwgXFxcIm1jczlcXFwiLCBcXFwibWNzMTBcXFwiLCBcXFwibWNzMTFcXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTU5OlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShWSFQyMCwgdmh0MjAsIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTYwOlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShWSFQ0MCwgdmh0NDAsIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTYxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNjI6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KFZIVDgwLCB2aHQ4MCwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNjM6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KFZIVDE2MCwgdmh0MTYwLCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE2NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTY1OlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShIRTI2LCBoZTI2LCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE2NjpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoSEU1MiwgaGU1MiwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNjc6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEhFMTA2LCBoZTEwNiwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNjg6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEhFMjQyLCBoZTI0MiwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNjk6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEhFNDg0LCBoZTQ4NCwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE3MTpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoSEU5OTYsIGhlOTk2LCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE3MjpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoSEU5OTZ4MiwgaGU5OTZ4MiwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE3NDpcXHRtdDc5MjVfZWh0X3R4cHdyKHMsIHR4cHdyLCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE3NS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz0xODE9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxODI6bXQ3OTI1X3BtX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xODMte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTIwNS1cXHRwbS1cXHUwMDNlZW5hYmxlX3VzZXIgPSB2YWw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjIwNjpcXHRtdDc5MjVfc2V0X3J1bnRpbWVfcG0oZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjA3LVxcdG10NzZfY29ubmFjX3Bvd2VyX3NhdmVfc2NoZWQoXFx1MDAyNmRldi1cXHUwMDNlbXBoeSwgcG0pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jPTIxND1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjIxNTptdDc5MjVfcG1fZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yMTYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTIyMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MjI0OkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3BtLCBtdDc5MjVfcG1fZ2V0LCBtdDc5MjVfcG1fc2V0LCBcXFwiJWxsZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTIyNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MjI2PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MjI3Om10NzkyNV9kZWVwX3NsZWVwX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yMjgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI0Mi1cXHRwbS1cXHUwMDNlZHNfZW5hYmxlID0gZW5hYmxlIFxcdTAwMjZcXHUwMDI2ICFtb25pdG9yO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyNDM6XFx0bXQ3OTI1X21jdV9zZXRfZGVlcF9zbGVlcChkZXYsIHBtLVxcdTAwM2Vkc19lbmFibGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yNDQtb3V0Olxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jPTI1MD1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI1MTptdDc5MjVfZGVlcF9zbGVlcF9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI1Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjU5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyNjA6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfZHMsIG10NzkyNV9kZWVwX3NsZWVwX2dldCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MjYxOlxcdFxcdFxcdCBtdDc5MjVfZGVlcF9zbGVlcF9zZXQsIFxcXCIlbGxkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjYyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz0yNjM9REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfcG1faWRsZV90aW1lb3V0LCBtdDc5MnhfcG1faWRsZV90aW1lb3V0X2dldCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yNjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI2NjpzdGF0aWMgaW50IG10NzkyNV9jaGlwX3Jlc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI2Ny17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjc4LVxcdFxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI3OTpcXHRcXHRyZXQgPSBtdDc5MjVfbWN1X2NoaXBfY29uZmlnKGRldiwgXFxcImFzc2VydFxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yODAtXFx0XFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yODYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI4NzpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19yZXNldCwgTlVMTCwgbXQ3OTI1X2NoaXBfcmVzZXQsIFxcXCIlbGxkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjg4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyODk6aW50IG10NzkyNV9pbml0X2RlYnVnZnMoc3RydWN0IG10NzkyeF9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjkwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0zMDQtXFx0ZGVidWdmc19jcmVhdGVfZGV2bV9zZXFmaWxlKGRldi1cXHUwMDNlbXQ3Ni5kZXYsIFxcXCJ0eHBvd2VyX3NrdVxcXCIsIGRpcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MzA1OlxcdFxcdFxcdFxcdCAgICBtdDc5MjVfdHhwd3IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0zMDYtXFx0ZGVidWdmc19jcmVhdGVfZmlsZShcXFwidHhfc3RhdHNcXFwiLCAwNDAwLCBkaXIsIGRldiwgXFx1MDAyNm10NzkyeF90eF9zdGF0c19mb3BzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy04LSNpbmNsdWRlIFxcdTAwM2NsaW51eC9maXJtd2FyZS5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzo5OiNpbmNsdWRlIFxcXCJtdDc5MjUuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTAtI2luY2x1ZGUgXFxcInJlZ2QuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTQ6c3RhdGljIHNzaXplX3QgbXQ3OTI1X3RoZXJtYWxfdGVtcF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTUtXFx0XFx0XFx0XFx0XFx0c3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjQtXFx0XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUobWRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjI1OlxcdFxcdHRlbXBlcmF0dXJlID0gbXQ3OTI1X21jdV9nZXRfdGVtcGVyYXR1cmUocGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjYtXFx0XFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UobWRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMzYtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzozNzpzdGF0aWMgU0VOU09SX0RFVklDRV9BVFRSX1JPKHRlbXAxX2lucHV0LCBtdDc5MjVfdGhlcm1hbF90ZW1wLCAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjM5OnN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICptdDc5MjVfaHdtb25fYXR0cnNbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtNDAtXFx0XFx1MDAyNnNlbnNvcl9kZXZfYXR0cl90ZW1wMV9pbnB1dC5kZXZfYXR0ci5hdHRyLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTQyLX07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjQzOkFUVFJJQlVURV9HUk9VUFMobXQ3OTI1X2h3bW9uKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtNDQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjQ1OnN0YXRpYyBpbnQgbXQ3OTI1X3RoZXJtYWxfaW5pdChzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy00Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtNTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjU0OlxcdG5hbWUgPSBkZXZtX2thc3ByaW50ZihcXHUwMDI2d2lwaHktXFx1MDAzZWRldiwgR0ZQX0tFUk5FTCwgXFxcIm10NzkyNV8lc1xcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTU1LVxcdFxcdFxcdCAgICAgIHdpcGh5X25hbWUod2lwaHkpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy01OS1cXHRod21vbiA9IGRldm1faHdtb25fZGV2aWNlX3JlZ2lzdGVyX3dpdGhfZ3JvdXBzKFxcdTAwMjZ3aXBoeS1cXHUwMDNlZGV2LCBuYW1lLCBwaHksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjYwOlxcdFxcdFxcdFxcdFxcdFxcdCAgICAgICBtdDc5MjVfaHdtb25fZ3JvdXBzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtNjEtXFx0cmV0dXJuIFBUUl9FUlJfT1JfWkVSTyhod21vbik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtNjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjY0OnN0YXRpYyB2b2lkIG10NzkyNV9tYWNfaW5pdF9iYXNpY19yYXRlcyhzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy02NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtNzMtXFx0XFx0ICAgICAgIEZJRUxEX1BSRVAoTVRfVFhfUkFURV9JRFgsIHJhdGUgXFx1MDAyNiBHRU5NQVNLKDcsIDApKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6NzQ6XFx0XFx0bXQ3OTI1X21hY19zZXRfZml4ZWRfcmF0ZV90YWJsZShkZXYsIGlkeCwgcmF0ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTc1LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy03Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6Nzg6aW50IG10NzkyNV9tYWNfaW5pdChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy03OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtODYtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIE1UNzkyeF9XVEJMX1NJWkU7IGkrKylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6ODc6XFx0XFx0bXQ3OTI1X21hY193dGJsX3VwZGF0ZShkZXYsIGksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTg4LVxcdFxcdFxcdFxcdCAgICAgICBNVF9XVEJMX1VQREFURV9BRE1fQ09VTlRfQ0xFQVIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTkxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzo5MjpcXHRtdDc5MjVfbWFjX2luaXRfYmFzaWNfcmF0ZXMoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtOTMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtOTctfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzo5ODpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MjVfbWFjX2luaXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy05OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTAwOnN0YXRpYyBpbnQgX19tdDc5MjVfaW5pdF9oYXJkd2FyZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMDEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTExMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTEyOlxcdHJldCA9IG10NzkyNV9tY3Vfc2V0X2VlcHJvbShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMTMtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjExNjpcXHRyZXQgPSBtdDc5MjVfbWFjX2luaXQoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTE3LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTIwLVxcdGlmIChpc19tdDc5MjcoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTIxOlxcdFxcdHJldCA9IG10NzkyNV9tY3Vfc2V0X2RiZGMoXFx1MDAyNmRldi1cXHUwMDNlbXBoeSwgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTEyMi1cXHRcXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTMyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxMzM6c3RhdGljIGludCBtdDc5MjVfaW5pdF9oYXJkd2FyZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMzQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTEzOS1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgTVQ3OTJ4X01DVV9JTklUX1JFVFJZX0NPVU5UOyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTQwOlxcdFxcdHJldCA9IF9fbXQ3OTI1X2luaXRfaGFyZHdhcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTQxLVxcdFxcdGlmICghcmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE1NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTU1OnN0YXRpYyB2b2lkIG10NzkyNV9pbml0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNTYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE2MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTYxOlxcdHJldCA9IG10NzkyNV9pbml0X2hhcmR3YXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE2Mi1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE2NS1cXHRtdDc2X3NldF9zdHJlYW1fY2FwcyhcXHUwMDI2ZGV2LVxcdTAwM2VtcGh5LCB0cnVlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTY2OlxcdG10NzkyNV9zZXRfc3RyZWFtX2hlX2VodF9jYXBzKFxcdTAwMjZkZXYtXFx1MDAzZXBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE2Ny1cXHRtdDc5MnhfY29uZmlnX21hY19hZGRyX2xpc3QoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTY4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxNjk6XFx0cmV0ID0gbXQ3OTI1X2luaXRfbWxvX2NhcHMoXFx1MDAyNmRldi1cXHUwMDNlcGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTcwLVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xODEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjE4MjpcXHRyZXQgPSBtdDc5MjVfaW5pdF9kZWJ1Z2ZzKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE4My1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTg3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxODg6XFx0cmV0ID0gbXQ3OTI1X3RoZXJtYWxfaW5pdChcXHUwMDI2ZGV2LVxcdTAwM2VwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xODktXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE5My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTk0OlxcdHJldCA9IG10NzkyNV9tY3Vfc2V0X3RoZXJtYWxfcHJvdGVjdChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xOTUtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTIwMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjAzOlxcdG10NzkyNV9tY3Vfc2V0X2RlZXBfc2xlZXAoZGV2LCBkZXYtXFx1MDAzZXBtLmRzX2VuYWJsZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTIwNC19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTIwNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjA2OmludCBtdDc5MjVfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTIwNy17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjE2LVxcdElOSVRfREVMQVlFRF9XT1JLKFxcdTAwMjZkZXYtXFx1MDAzZXBtLnBzX3dvcmssIG10NzkyeF9wbV9wb3dlcl9zYXZlX3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoyMTc6XFx0SU5JVF9ERUxBWUVEX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlbWxvX3BtX3dvcmssIG10NzkyNV9tbG9fcG1fd29yayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTIxOC1cXHRJTklUX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlcG0ud2FrZV93b3JrLCBtdDc5MnhfcG1fd2FrZV93b3JrKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yMjQtXFx0SU5JVF9ERUxBWUVEX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlbXBoeS5tYWNfd29yaywgbXQ3OTJ4X21hY193b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjI1OlxcdElOSVRfREVMQVlFRF9XT1JLKFxcdTAwMjZkZXYtXFx1MDAzZXBoeS5zY2FuX3dvcmssIG10NzkyNV9zY2FuX3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoyMjY6XFx0SU5JVF9ERUxBWUVEX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlY29yZWR1bXAud29yaywgbXQ3OTI1X2NvcmVkdW1wX3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yMjctI2lmIElTX0VOQUJMRUQoQ09ORklHX0lQVjYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjIyODpcXHRJTklUX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlaXB2Nl9uc193b3JrLCBtdDc5MjVfc2V0X2lwdjZfbnNfd29yayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTIyOS1cXHRza2JfcXVldWVfaGVhZF9pbml0KFxcdTAwMjZkZXYtXFx1MDAzZWlwdjZfbnNfbGlzdCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjMzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoyMzQ6XFx0SU5JVF9XT1JLKFxcdTAwMjZkZXYtXFx1MDAzZXJlc2V0X3dvcmssIG10NzkyNV9tYWNfcmVzZXRfd29yayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjIzNTpcXHRJTklUX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlaW5pdF93b3JrLCBtdDc5MjVfaW5pdF93b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjM2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoyMzc6XFx0SU5JVF9XT1JLKFxcdTAwMjZkZXYtXFx1MDAzZXBoeS5yb2Nfd29yaywgbXQ3OTI1X3JvY193b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjM4LVxcdHRpbWVyX3NldHVwKFxcdTAwMjZkZXYtXFx1MDAzZXBoeS5yb2NfdGltZXIsIG10NzkyeF9yb2NfdGltZXIsIDApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTI2NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjY1OlxcdGh3LVxcdTAwM2V3aXBoeS1cXHUwMDNlcmVnX25vdGlmaWVyID0gbXQ3OTI1X3JlZ2Rfbm90aWZpZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTI2Ni1cXHRkZXYtXFx1MDAzZW1waHkuc2JhbmRfMmcuc2JhbmQuaHRfY2FwLmNhcCB8PVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTI5Mi19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjI5MzpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MjVfcmVnaXN0ZXJfZGV2aWNlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTYtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3RpbWVrZWVwaW5nLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6NzojaW5jbHVkZSBcXFwibXQ3OTI1LmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtOC0jaW5jbHVkZSBcXFwiLi4vZG1hLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMzpib29sIG10NzkyNV9tYWNfd3RibF91cGRhdGUoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgaW50IGlkeCwgdTMyIG1hc2spXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MjI6c3RhdGljIHZvaWQgbXQ3OTI1X21hY19zdGFfcG9sbChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTIzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTU4LVxcdFxcdGlkeCA9IG1saW5rLVxcdTAwM2V3Y2lkLmlkeDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo1OTpcXHRcXHRhZGRyID0gbXQ3OTI1X21hY193dGJsX2xtYWNfYWRkcihkZXYsIGlkeCwgTVRfV1RCTF9BQzBfQ1RUX09GRlNFVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNjAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy03Ny1cXHRcXHRpZiAoY2xlYXIpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo3ODpcXHRcXHRcXHRtdDc5MjVfbWFjX3d0YmxfdXBkYXRlKGRldiwgaWR4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTc5LVxcdFxcdFxcdFxcdFxcdCAgICAgICBNVF9XVEJMX1VQREFURV9BRE1fQ09VTlRfQ0xFQVIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTIyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyMzpcXHRcXHRhZGRyID0gbXQ3OTI1X21hY193dGJsX2xtYWNfYWRkcihkZXYsIGlkeCwgNik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI0LVxcdFxcdHZhbCA9IG10NzZfcnIoZGV2LCBhZGRyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjUtXFx0XFx0aWYgKHJhdGUtXFx1MDAzZWZsYWdzIFxcdTAwMjYgUkFURV9JTkZPX0ZMQUdTX0VIVF9NQ1MpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjY6XFx0XFx0XFx0YWRkciA9IG10NzkyNV9tYWNfd3RibF9sbWFjX2FkZHIoZGV2LCBpZHgsIDUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNy1cXHRcXHRcXHR2YWwgPSBtdDc2X3JyKGRldiwgYWRkcik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xNDEtXFx0XFx0LyogZ2V0IHNpZ25hbCBzdHJlbmd0aCBvZiByZXNwIGZyYW1lcyAoQ1RTL0JBL0FDSykgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxNDI6XFx0XFx0YWRkciA9IG10NzkyNV9tYWNfd3RibF9sbWFjX2FkZHIoZGV2LCBpZHgsIDM0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xNDMtXFx0XFx0dmFsID0gbXQ3Nl9ycihkZXYsIGFkZHIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTU2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjE1Nzp2b2lkIG10NzkyNV9tYWNfc2V0X2ZpeGVkX3JhdGVfdGFibGUoc3RydWN0IG10NzkyeF9kZXYgKmRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xNTgtXFx0XFx0XFx0XFx0ICAgICB1OCB0YmxfaWR4LCB1MTYgcmF0ZV9pZHgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xNjgtLyogVGhlIEhXIGRvZXMgbm90IHRyYW5zbGF0ZSB0aGUgbWFjIGhlYWRlciB0byA4MDIuMyBmb3IgbWVzaCBwb2ludCAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjE2OTpzdGF0aWMgaW50IG10NzkyNV9yZXZlcnNlX2ZyYWcwX2hkcl90cmFucyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MTYgaGRyX2dhcClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xNzAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM9MjQ4PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoyNDk6bXQ3OTI1X21hY19maWxsX3J4X3JhdGUoc3RydWN0IG10NzkyeF9kZXYgKmRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0yNTAtXFx0XFx0XFx0c3RydWN0IG10NzZfcnhfc3RhdHVzICpzdGF0dXMsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz0zNTg9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjM1OTptdDc5MjVfbWFjX2ZpbGxfcngoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0zNjAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNTM4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjUzOTpcXHRcXHRyZXQgPSBtdDc5MjVfbWFjX2ZpbGxfcnhfcmF0ZShkZXYsIHN0YXR1cywgc2JhbmQsIHJ4diwgXFx1MDAyNm1vZGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTU0MC1cXHRcXHRpZiAocmV0IFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTU1Mi1cXHRpZiAoaGRyX3RyYW5zIFxcdTAwMjZcXHUwMDI2IGllZWU4MDIxMV9oYXNfbW9yZWZyYWdzKGZjKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjU1MzpcXHRcXHRpZiAobXQ3OTI1X3JldmVyc2VfZnJhZzBfaGRyX3RyYW5zKHNrYiwgaGRyX2dhcCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNTU0LVxcdFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM9NjI2PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6NjI3Om10NzkyNV9tYWNfd3JpdGVfdHh3aV84MDIzKF9fbGUzMiAqdHh3aSwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy02MjgtXFx0XFx0XFx0ICAgc3RydWN0IG10NzZfd2NpZCAqd2NpZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jPTY2MT1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjY2MjptdDc5MjVfbWFjX3dyaXRlX3R4d2lfODAyMTEoc3RydWN0IG10NzZfZGV2ICpkZXYsIF9fbGUzMiAqdHh3aSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy02NjMtXFx0XFx0XFx0ICAgIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz03Mjk9dm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjczMDptdDc5MjVfbWFjX3dyaXRlX3R4d2koc3RydWN0IG10NzZfZGV2ICpkZXYsIF9fbGUzMiAqdHh3aSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy03MzEtXFx0XFx0ICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG10NzZfd2NpZCAqd2NpZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTgxOC1cXHRpZiAoaXNfODAyMylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo4MTk6XFx0XFx0bXQ3OTI1X21hY193cml0ZV90eHdpXzgwMjModHh3aSwgc2tiLCB3Y2lkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy04MjAtXFx0ZWxzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjgyMTpcXHRcXHRtdDc5MjVfbWFjX3dyaXRlX3R4d2lfODAyMTEoZGV2LCB0eHdpLCBza2IsIGtleSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtODIyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtODQxLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo4NDI6RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTI1X21hY193cml0ZV90eHdpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy04NDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6ODQ0OnN0YXRpYyB2b2lkIG10NzkyNV90eF9jaGVja19hZ2dyKHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsIHN0cnVjdCBza19idWZmICpza2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtODQ1LVxcdFxcdFxcdFxcdCBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM9ODk4PXN0YXRpYyBib29sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6ODk5Om10NzkyNV9tYWNfYWRkX3R4c19za2Ioc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IG10NzZfd2NpZCAqd2NpZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy05MDAtXFx0XFx0ICAgICAgIGludCBwaWQsIF9fbGUzMiAqdHhzX2RhdGEpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMDM1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEwMzY6dm9pZCBtdDc5MjVfbWFjX2FkZF90eHMoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMDM3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEwNjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTA2NDpcXHRtdDc5MjVfbWFjX2FkZF90eHNfc2tiKGRldiwgd2NpZCwgcGlkLCB0eHNfZGF0YSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTA2NS1cXHRpZiAoIXdjaWQtXFx1MDAzZXN0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEwNzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTA3NDp2b2lkIG10NzkyNV90eHdpX2ZyZWUoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IG10NzZfdHh3aV9jYWNoZSAqdCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMDc1LVxcdFxcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsIHN0cnVjdCBtdDc2X3djaWQgKndjaWQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMDg4LVxcdFxcdGlmIChsaWtlbHkodC1cXHUwMDNlc2tiLVxcdTAwM2Vwcm90b2NvbCAhPSBjcHVfdG9fYmUxNihFVEhfUF9QQUUpKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMDg5OlxcdFxcdFxcdG10NzkyNV90eF9jaGVja19hZ2dyKHN0YSwgdC1cXHUwMDNlc2tiLCB3Y2lkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMDkwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTEwMC19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTEwMTpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MjVfdHh3aV9mcmVlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMTAyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jPTExMDM9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMTA0Om10NzkyNV9tYWNfdHhfZnJlZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB2b2lkICpkYXRhLCBpbnQgbGVuKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTExMDUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTE3MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMTcxOlxcdFxcdFxcdG10NzkyNV90eHdpX2ZyZWUoZGV2LCB0eHdpLCBzdGEsIHdjaWQsIFxcdTAwMjZmcmVlX2xpc3QpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTExNzItXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTE3NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMTc1OlxcdG10NzkyNV9tYWNfc3RhX3BvbGwoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMTc2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTE4Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMTg4OmJvb2wgbXQ3OTI1X3J4X2NoZWNrKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgdm9pZCAqZGF0YSwgaW50IGxlbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMTg5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyMDYtXFx0XFx0LyogUEtUX1RZUEVfVFhSWF9OT1RJRlkgY2FuIGJlIHJlY2VpdmVkIG9ubHkgYnkgbW1pbyBkZXZpY2VzICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTIwNzpcXHRcXHRtdDc5MjVfbWFjX3R4X2ZyZWUoZGV2LCBkYXRhLCBsZW4pOyAvKiBtbWlvICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTIwOC1cXHRcXHRyZXR1cm4gZmFsc2U7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjEwLVxcdFxcdGZvciAocnhkICs9IDQ7IHJ4ZCArIDEyIFxcdTAwM2M9IGVuZDsgcnhkICs9IDEyKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyMTE6XFx0XFx0XFx0bXQ3OTI1X21hY19hZGRfdHhzKGRldiwgcnhkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjEyLVxcdFxcdHJldHVybiBmYWxzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyMTYtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyMTc6RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTI1X3J4X2NoZWNrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjE4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyMTk6dm9pZCBtdDc5MjVfcXVldWVfcnhfc2tiKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgZW51bSBtdDc2X3J4cV9pZCBxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyMjAtXFx0XFx0XFx0IHN0cnVjdCBza19idWZmICpza2IsIHUzMiAqaW5mbylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNDMtXFx0XFx0LyogUEtUX1RZUEVfVFhSWF9OT1RJRlkgY2FuIGJlIHJlY2VpdmVkIG9ubHkgYnkgbW1pbyBkZXZpY2VzICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTI0NDpcXHRcXHRtdDc5MjVfbWFjX3R4X2ZyZWUoZGV2LCBza2ItXFx1MDAzZWRhdGEsIHNrYi1cXHUwMDNlbGVuKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjQ1LVxcdFxcdG5hcGlfY29uc3VtZV9za2Ioc2tiLCAxKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNDctXFx0Y2FzZSBQS1RfVFlQRV9SWF9FVkVOVDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjQ4OlxcdFxcdG10NzkyNV9tY3VfcnhfZXZlbnQoZGV2LCBza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNDktXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjUxLVxcdFxcdGZvciAocnhkICs9IDI7IHJ4ZCArIDggXFx1MDAzYz0gZW5kOyByeGQgKz0gOClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjUyOlxcdFxcdFxcdG10NzkyNV9tYWNfYWRkX3R4cyhkZXYsIHJ4ZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI1My1cXHRcXHRkZXZfa2ZyZWVfc2tiKHNrYik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjU2LVxcdGNhc2UgUEtUX1RZUEVfTk9STUFMOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyNTc6XFx0XFx0aWYgKCFtdDc5MjVfbWFjX2ZpbGxfcngoZGV2LCBza2IpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI1OC1cXHRcXHRcXHRtdDc2X3J4KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYsIHEsIHNrYik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjY2LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjY3OkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyNV9xdWV1ZV9yeF9za2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM9MTI2OT1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyNzA6bXQ3OTI1X3ZpZl9jb25uZWN0X2l0ZXIodm9pZCAqcHJpdiwgdTggKm1hYyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjcxLVxcdFxcdFxcdHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjkwLVxcdFxcdFxcdFxcdFxcdCAgICBcXHUwMDI2bXZpZi1cXHUwMDNlc3RhLmRlZmxpbmsud2NpZCwgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTI5MTpcXHRcXHRtdDc5MjVfbWN1X3NldF90eChkZXYsIGJzc19jb25mKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjkyLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyOTYtXFx0XFx0XFx0XFx0XFx0ICAgIHRydWUsIE5VTEwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyOTc6XFx0XFx0bXQ3OTI1X21jdV9zdGFfdXBkYXRlKGRldiwgTlVMTCwgdmlmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyOTgtXFx0XFx0XFx0XFx0ICAgICAgXFx1MDAyNm12aWYtXFx1MDAzZXN0YS5kZWZsaW5rLCB0cnVlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyOTktXFx0XFx0XFx0XFx0ICAgICAgTVQ3Nl9TVEFfSU5GT19TVEFURV9OT05FKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMzAwOlxcdFxcdG10NzkyNV9tY3VfdW5pX2FkZF9iZWFjb25fb2ZmbG9hZChkZXYsIGh3LCB2aWYsIHRydWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEzMDEtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTMwNC0vKiBzeXN0ZW0gZXJyb3IgcmVjb3ZlcnkgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMzA1OnZvaWQgbXQ3OTI1X21hY19yZXNldF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMzA2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEzNDUtXFx0XFx0XFx0XFx0XFx0ICAgIElFRUU4MDIxMV9JRkFDRV9JVEVSX1JFU1VNRV9BTEwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTM0NjpcXHRcXHRcXHRcXHRcXHQgICAgbXQ3OTI1X3ZpZl9jb25uZWN0X2l0ZXIsIE5VTEwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEzNDctXFx0bXQ3Nl9jb25uYWNfcG93ZXJfc2F2ZV9zY2hlZChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LnBoeSwgcG0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEzNDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTM0OTpcXHRtdDc5MjVfcmVnZF9jaGFuZ2UoXFx1MDAyNmRldi1cXHUwMDNlcGh5LCBcXFwiMDBcXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMzUwLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMzUxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEzNTI6dm9pZCBtdDc5MjVfY29yZWR1bXBfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTM1My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMzc5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEzODA6XFx0XFx0c2tiX3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IG10NzkyNV9tY3VfcnhkKSArIDgpO1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQwOTo0OTo0Ni42MzcyMzE0ODlaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1OTEwMTU3MTU3NDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBNVDc5MjUgRHJpdmVyIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIGxvb2tpbmcgYXQgdGhpcyBNYWtlZmlsZSBvdXRwdXQsIGl0IHNlZW1zIHByZXR0eSBjbGVhciB3ZSdyZSBkZWFsaW5nIHdpdGggZHJpdmVycyBmb3IgTWVkaWF0ZWsncyBNVDc5MjUgd2lyZWxlc3MgY2hpcC4gU3BlY2lmaWNhbGx5LCBsaW5lcyAzLTUgc2hvdyBkaWZmZXJlbnQgY29uZmlndXJhdGlvbiBvcHRpb25zIChgQ09ORklHX01UNzkyNV9DT01NT05gLCBgQ09ORklHX01UNzkyNUVgLCBgQ09ORklHX01UNzkyNVVgKSBlYWNoIGxlYWRpbmcgdG8gY29ycmVzcG9uZGluZyBvYmplY3QgZmlsZXMgKGBtdDc5MjUtY29tbW9uLm9gLCBgbXQ3OTI1ZS5vYCwgYG10NzkyNXUub2ApLiBMaW5lIDkgZGVmaW5lcyBgbXQ3OTI1ZS15YCBhcyBhIFBDSSBkcml2ZXIgd2l0aCBhc3NvY2lhdGVkIG1vZHVsZXMsIGFuZCBsaW5lIDEwIGRlZmluZXMgYG10NzkyNXUteWAgYXMgYSBVU0IgZHJpdmVyIHdpdGgganVzdCB0aGUgYHVzYi5vYCBtb2R1bGUuIFRoaXMgaXMgaW50ZXJlc3RpbmcgZnJvbSBhIGZ1enppbmcgcGVyc3BlY3RpdmUuIFRoZSBxdWVzdGlvbiBub3cgaXMsIGNhbiB3ZSBmdXp6IHRoaXMgd2l0aGluIGEgdmlydHVhbGl6ZWQgc2V0dXA/XG5cbkdpdmVuIHRoZSBVU0IgYXNwZWN0IG9mIGBtdDc5MjV1YCwgSSBpbW1lZGlhdGVseSB0aGluayBvZiB0aGUgVVNCIGZ1enppbmcgY2FwYWJpbGl0aWVzIG9mIHRvb2xzIGxpa2Ugc3l6a2FsbGVyLiBVU0IgZHJpdmVycyBhcmUgb2Z0ZW4gcXVpdGUgdnVsbmVyYWJsZSwgZXNwZWNpYWxseSB3aXRoIHRoZSBjb21wbGV4aXR5IG9mIFVTQiBwcm90b2NvbCBoYW5kbGluZy4gUmVtZW1iZXIsIHdlIGhhdmUgdGhlIG9wdGlvbiB0byBzZXQgdXAgZHVtbXlfaGNkIG9yIHZoY2ktaGNkIGZvciBVU0IgZnV6emluZy4gV2FpdCwgc3l6a2FsbGVyIGhhcyBhIGRlZGljYXRlZCBVU0IgZnV6emVyIHRoYXQncyBleGNlbGxlbnQgYXQgZW11bGF0aW5nIFVTQiBkZXZpY2VzLiBJdCdzIGV4dGVuc2l2ZS5cblxuVGhlIGtleSBxdWVzdGlvbiBpcywgaXMgYG10NzkyNXVgIHRoYXQga2luZCBvZiBVU0IgZHJpdmVyPyBJZiBzbywgYW5kIGl0IGludGVyYWN0cyB3aXRoIGFuIGFjdHVhbCBVU0IgZGV2aWNlLCB0aGVuIHdlJ3JlIGdvbGRlbi4gU3l6a2FsbGVyJ3MgYHN5el91c2JfY29ubmVjdGAgc3lzdGVtIGNhbGwgaXMgYSBwcmltZSBjYW5kaWRhdGUgZm9yIGZ1enppbmcgaXQuIEkgbmVlZCB0byBjb25maXJtIHRoYXQgYG10NzkyNXVgIGlzIGluZGVlZCBhIFVTQiBkcml2ZXIgdGhhdCBiaW5kcyB0byBhIFVTQiBkZXZpY2UsIHRob3VnaC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjEwMzUsIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjZUMDk6NTk6MzcuNjUyOTQ5NjE3WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyOTM4NzA5OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ1c2JfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jPTM0NT1NT0RVTEVfRklSTVdBUkUoTVQ3OTI1X1JPTV9QQVRDSCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmMtMzQ2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jOjM0NzpzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgbXQ3OTI1dV9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmMtMzQ4LVxcdC5uYW1lXFx0XFx0PSBLQlVJTERfTU9ETkFNRSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jLTM1OS19O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jOjM2MDptb2R1bGVfdXNiX2RyaXZlcihtdDc5MjV1X2RyaXZlcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmMtMzYxLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQwOTo1OTozOC4wODIzNDU4NjVaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4NTg0ODA1Nzg4NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFZ1bG5lcmFiaWxpdHkgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBjb25maXJtaW5nIHRoYXQgYG10NzkyNXVgIGlzIGluZGVlZCB0aGUgVVNCIGRyaXZlciDigJMgbWFrZXMgc2Vuc2UuIFRoZSBwYXRjaCBpbXBhY3RzIGBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcmAgd2l0aGluIGBtYWluLmNgIGFuZCBgbXQ3OTI1X21jdV9jb25maWdfc25pZmZlcmAgaW4gYG1jdS5jYC4gUmlnaHQsIGFuZCB0aGVzZSBhcmUgYm90aCBwYXJ0IG9mIHRoZSAqY29tbW9uKiBjb2RlLCBgbXQ3OTI1LWNvbW1vbi5vYC4gVGhhdCdzIGltcG9ydGFudDsgaXQgbWVhbnMgYm90aCB0aGUgUENJZSBhbmQgVVNCIHZhcmlhbnRzIGxldmVyYWdlIHRoZXNlIGZ1bmN0aW9ucy5cblxuU2luY2Ugd2UncmUgZGVhbGluZyB3aXRoIGEgVVNCIGRyaXZlciwgdGhlIGltcGxpY2F0aW9ucyBhcmUgaW1tZWRpYXRlbHkgY2xlYXI6IHRoaXMgY29kZSBpcyBwb3RlbnRpYWxseSByZWFjaGFibGUgdGhyb3VnaCBmdXp6aW5nIOKAkyBzcGVjaWZpY2FsbHksIHRoZSBgc3l6X3VzYl9jb25uZWN0YCBjYWxsIHdpdGhpbiBzeXprYWxsZXIuIFRoYXQncyBhIGNsYXNzaWMgYXR0YWNrIHZlY3RvciBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBUaGUgZmFjdCB0aGF0IHRoZSBVU0IgZW11bGF0aW9uIGlzIHdvcmtpbmcgbWFrZXMgdGhpcyBwYXJ0aWN1bGFybHkgaW50ZXJlc3RpbmcuXG5cbkhvbGQgb24gYSBzZWNvbmQsIGxldCBtZSBqdXN0IHF1aWNrbHkgY29uZmlybSB0aGF0IGBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcmAgaXMgKmFjdHVhbGx5KiByZWFjaGFibGUgd2l0aGluIHRoZSBleGVjdXRpb24gcGF0aC4gQWx3YXlzIGEgZ29vZCBkb3VibGUtY2hlY2sgYmVmb3JlIGdldHRpbmcgYWhlYWQgb2YgbXlzZWxmLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjEzMywiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMTowMy45MzA0MDc0MTFaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mzk4NzIyMTQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzkyNV9jb25maWd1cmVfZmlsdGVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9ODA1PXN0YXRpYyBpbnQgbXQ3OTI1X2NvbmZpZyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgaW50IHJhZGlvX2lkeCwgdTMyIGNoYW5nZWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtODI5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzo4MzA6c3RhdGljIHZvaWQgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXIoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTgzMS1cXHRcXHRcXHRcXHQgICAgdW5zaWduZWQgaW50IGNoYW5nZWRfZmxhZ3MsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MjQ4Mz1jb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc5MjVfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTI0OTAtXFx0LmNvbmZfdHggPSBtdDc5MjVfY29uZl90eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MjQ5MTpcXHQuY29uZmlndXJlX2ZpbHRlciA9IG10NzkyNV9jb25maWd1cmVfZmlsdGVyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0yNDkyLVxcdC5zdGFydF9hcCA9IG10NzkyNV9zdGFydF9hcCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjZUMTA6MDE6MDQuMzI5MTM1NTcyWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTIwNjUyMzM3NzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBOZXR3b3JrIEZpbHRlciBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXJgIGZ1bmN0aW9uLiBUaGUgZmFjdCB0aGF0IGl0J3MgYW4gYGllZWU4MDIxMV9vcHNgIGNhbGxiYWNrIGltbWVkaWF0ZWx5IHRlbGxzIG1lIGl0J3MgdGllZCBkaXJlY3RseSBpbnRvIHRoZSBtYWM4MDIxMSBzdWJzeXN0ZW0uIFRoYXQgbWVhbnMgd2hlbiB0aGUgZmlsdGVyIGNvbmZpZ3VyYXRpb24gaXMgY2hhbmdlZCwgbWFjODAyMTEgd2lsbCBjYWxsICp0aGlzKiBmdW5jdGlvbiBzcGVjaWZpY2FsbHkuIE1ha2VzIHNlbnNlLiBCdXQgSSdtIGFsc28gc2VlaW5nIGBtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyYCBpbiB0aGUgY29kZSwgYW5kIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0aGF0J3MgcmVsYXRlZC4gSXQncyAqbm90KiBhIGNhbGxiYWNrLCBzbyBpdCdzIGJlaW5nIGNhbGxlZCBmcm9tIHNvbWV3aGVyZSBlbHNlLiBUaW1lIHRvIGdvIGh1bnRpbmcgYW5kIHRyYWNlIHdoZXJlIHRoYXQgY2FsbCBpcyBvcmlnaW5hdGluZyBmcm9tLiBJJ2xsIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhlIGhhcmR3YXJlIGZpbHRlciBhbmQgdGhlIHNuaWZmZXIgY29uZmlndXJhdGlvbiB0byBnZXQgYSBmdWxsIHBpY3R1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyOTQ3LCJPdXRwdXRUb2tlbnMiOjUxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjZUMTA6MDE6MTYuMzk0MzcxNTY0WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTE3NTIxNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MTkzNj1tdDc5MjVfY2hhbmdlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTk1NS1cXHRcXHRtdDc5MjVfbWN1X3NldF9zbmlmZmVyKG12aWYtXFx1MDAzZXBoeS1cXHUwMDNlZGV2LCB2aWYsIHRydWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxOTU2OlxcdFxcdG10NzkyNV9tY3VfY29uZmlnX3NuaWZmZXIobXZpZiwgY3R4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTk1Ny1cXHR9IGVsc2Uge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM9MjE3ND1pbnQgbXQ3OTI1X21jdV9zZXRfc25pZmZlcihzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMjIwMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzoyMjAzOmludCBtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyKHN0cnVjdCBtdDc5MnhfdmlmICp2aWYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMjIwNC1cXHRcXHRcXHQgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHhfY29uZiAqY3R4KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbXQ3OTI1Lmg9MzYxPWludCBtdDc5MjVfbWN1X3NldF9zbmlmZmVyKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbXQ3OTI1LmgtMzYyLVxcdFxcdFxcdCAgIGJvb2wgZW5hYmxlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tdDc5MjUuaDozNjM6aW50IG10NzkyNV9tY3VfY29uZmlnX3NuaWZmZXIoc3RydWN0IG10NzkyeF92aWYgKnZpZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tdDc5MjUuaC0zNjQtXFx0XFx0XFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDEwOjAxOjE2LjQzOTU1Mjc0MVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MDc3MDA5MzUyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIE1UNzkyNSBNQ1UgQ29uZmlndXJhdGlvbiBmb3IgU25pZmZpbmcqKlxuXG5Pa2F5LCBzbyBgbXQ3OTI1X21jdV9jb25maWdfc25pZmZlcmAgaXMgYmVpbmcgY2FsbGVkIGZyb20gYG10NzkyNV9jaGFuZ2VfY2hhbmN0eGAuIFRoYXQncyBpbnRlcmVzdGluZywgYW5kIGBtdDc5MjVfY2hhbmdlX2NoYW5jdHhgIGlzIGFuIGBpZWVlODAyMTFfb3BzYCBjYWxsYmFjaywgb3IgYXQgbGVhc3QgY2FsbGVkIGZyb20gb25lLiBUaGlzIG1lYW5zIGJvdGggb2YgdGhlc2UgZnVuY3Rpb25zLCB0aGUgc25pZmZlciBjb25maWd1cmF0aW9uIGFuZCB0aGUgY2hhbm5lbCBjb250ZXh0IGNoYW5nZSwgYXJlIGFjY2Vzc2libGUgdGhyb3VnaCBzdGFuZGFyZCBtYWM4MDIxMSBvcGVyYXRpb25zLCB3aGljaCBpcyBnb29kIHRvIGtub3cuIEFuZCBiZWNhdXNlIHRoaXMgaXMgYSBVU0IgZHJpdmVyLCBpdCBpbW1lZGlhdGVseSBvcGVucyB1cCBmdXp6aW5nIHBvc3NpYmlsaXRpZXMgdmlhIFVTQiBlbXVsYXRpb24uIFRoYXQncyBhIHNvbGlkIGF0dGFjayBzdXJmYWNlLiBOb3csIGJlZm9yZSBJIGdldCB0b28gZXhjaXRlZCBhbmQgc3RhcnQgbWFwcGluZyBvdXQgZnV6emluZyBzdHJhdGVnaWVzLCBJIHNob3VsZCBwcm9iYWJseSBjaGVjayBpZiB0aGVyZSdzIGFueSBzcGVjaWZpYyBoYXJkd2FyZSBjb25maWd1cmF0aW9uIHJlcXVpcmVkIGZvciB0aGUgc25pZmZlciB0byB3b3JrLiBUaW1lIHRvIGNvbnN1bHQgdGhlIEtjb25maWcgZm9yIGBNVDc5MjVVYCBhbmQgc2VlIGlmIGFueSBzcGVjaWZpYyBzZXR0aW5ncyBuZWVkIHRvIGJlIGVuYWJsZWQgYmVmb3JlIEkgY2FuIHByb2NlZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzODg3LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTEyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDEwOjAxOjIzLjUxNjU2NTAzNFoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDU1ODU1MTYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1UNzkyNVVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWc9Nz1jb25maWcgTVQ3OTI1RVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZy0xOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnOjE5OmNvbmZpZyBNVDc5MjVVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZy0yMC1cXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3OTI1VSAoVVNCKSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMToyMy41NjIxNTYwMloiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMTE4OTU1MDQ1NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipBbmFseXppbmcgdGhlIE1UNzkyNVUgRGVwZW5kZW5jaWVzKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIFRoZSByZXF1ZXN0IGlzIGNsZWFyOiBJIG5lZWQgdG8gYXNjZXJ0YWluIHRoZSBkZXBlbmRlbmNpZXMgZm9yIHRoZSBgTVQ3OTI1VWAuIE15IGltbWVkaWF0ZSBhcHByb2FjaCB3aWxsIGJlIHRvIGJlZ2luIGJ1aWxkaW5nIGEgbWVudGFsIG1hcC4gSSdsbCBuZWVkIHRvIGNvbnNpZGVyIHRoaXMgZnJvbSBhIGZldyBhbmdsZXMuXG5cbkZpcnN0LCB0aGUgaGFyZHdhcmUgbGV2ZWwuIFdoYXQgYXJlIHRoZSBleHRlcm5hbCBpbnRlcmZhY2VzIG9mIHRoZSBgTVQ3OTI1VWA/IFVTQj8gUENJZT8gV2hhdCBhY2NvbXBhbnlpbmcgY29tcG9uZW50cyBhcmUgdHlwaWNhbGx5IHBhaXJlZCB3aXRoIHRoaXMgY2hpcCB0byBmb3JtIGEgZnVuY3Rpb25hbCBXaUZpIG1vZHVsZT8gVHJhbnNjZWl2ZXJzLCBwb3dlciBtYW5hZ2VtZW50LCBjbG9ja3Mg4oCTIHRoZSB1c3VhbCBzdXNwZWN0cy4gSSdsbCBuZWVkIHRvIGtub3cgd2hpY2ggb2YgdGhlc2UgYXJlIGludGVncmF0ZWQgb24tZGllIGFuZCB3aGljaCBhcmUgZXh0ZXJuYWwgYW5kIHRodXMsIHdoYXQgdGhlIHBpbi1vdXRzIGFyZS4gVGhlIGRhdGEgc2hlZXQgaXMgdGhlIG5hdHVyYWwgc3RhcnRpbmcgcG9pbnQsIGJ1dCBJJ2xsIGFsc28gY29uc2lkZXIgZXhpc3RpbmcgaW1wbGVtZW50YXRpb25zLlxuXG5OZXh0LCB0aGUgZmlybXdhcmUgYW5kIHNvZnR3YXJlIGxldmVsLiBXaGF0IGRyaXZlciBzdXBwb3J0IGlzIGF2YWlsYWJsZT8gSXMgaXQgb3Blbi1zb3VyY2UsIG9yIHByb3ByaWV0YXJ5PyBXaGF0IG90aGVyIGtlcm5lbCBtb2R1bGVzIG9yIGxpYnJhcmllcyBpcyB0aGUgZHJpdmVyIGJ1aWx0IHVwb24/IEFyZSB0aGVyZSBhbnkgdXBzdHJlYW0gcGF0Y2hlcyB0aGF0IGFkZHJlc3MgdGhpcyBjaGlwPyBNeSBnb2FsIGlzIHRvIHF1aWNrbHkgcGlucG9pbnQgdGhlIGtleSBhYnN0cmFjdGlvbnMgdGhhdCBtYW5hZ2UgdGhlIGhhcmR3YXJlIGFuZCBpZGVudGlmeSB0aGUgc29mdHdhcmUgaW50ZXJmYWNlcy4gVGhpcyB3aWxsIGluY2x1ZGUgY29uc2lkZXJhdGlvbnMgZm9yIGFueSBmaXJtd2FyZSBibG9icyB0aGF0IG1pZ2h0IGJlIHJlcXVpcmVkIGFuZCB0aGVpciBsb2NhdGlvbiB3aXRoaW4gdGhlIHN5c3RlbSBvciBib290IHByb2Nlc3MuIEknbGwgYWxzbyBjaGVjayBmb3IgYW55IHNwZWNpZmljIHNlY3VyaXR5IGNvbnNpZGVyYXRpb25zLlxuXG5JJ2xsIGJlIG1pbmRmdWwgb2YgdGhlIGRldmVsb3BtZW50IGVudmlyb25tZW50LiBDcm9zcy1jb21waWxhdGlvbj8gVGFyZ2V0IGFyY2hpdGVjdHVyZT8gSWYgdGhlcmUncyBhbiBTREsgYXZhaWxhYmxlLCBJJ2xsIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgc3RydWN0dXJlLCBidWlsZCBzeXN0ZW0sIGFuZCBhbnkgcHJvcHJpZXRhcnkgaGVhZGVycyBvciBsaWJyYXJpZXMgaXQgZGVwZW5kcyBvbi4gSSdsbCBtZW50YWxseSBjYXRlZ29yaXplIHRoZSBkZXBlbmRlbmNpZXMg4oCTIGNvcmUga2VybmVsIGZlYXR1cmVzLCBkZXZpY2Utc3BlY2lmaWMgZHJpdmVycywgYm9hcmQtc3BlY2lmaWMgYWRhcHRhdGlvbnMsIGFuZCBtYXliZSBldmVuIHVzZXItc3BhY2UgdXRpbGl0aWVzLiBBbmQgb2YgY291cnNlLCBJJ2xsIGJlIGF3YXJlIG9mIHBvdGVudGlhbCBjb25mbGljdHMgd2l0aCBvdGhlciBkcml2ZXJzIG9yIGhhcmR3YXJlIGNvbXBvbmVudHMgYWxyZWFkeSBwcmVzZW50IG9uIHRoZSBwbGF0Zm9ybS5cblxuVGhlIGVuZCBnYW1lIGlzIHRvIGNyZWF0ZSBhIGNvbXBsZXRlIGRlcGVuZGVuY3kgZ3JhcGgsIGFsbG93aW5nIG1lIHRvIHVuZGVyc3RhbmQgdGhlIGNvbXBsZXRlIGFyY2hpdGVjdHVyZS4gVGhpcyB3aWxsIGVuYWJsZSBtZSB0byBtYWtlIGluZm9ybWVkIGRlY2lzaW9ucyBhYm91dCB0aGUgZGV2ZWxvcG1lbnQgb3IgaW50ZWdyYXRpb24gZWZmb3J0LCBwb3RlbnRpYWwgcHJvYmxlbXMsIGFuZCB0aGUgY29tcGxleGl0eSByZXF1aXJlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjQ0MTMsIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMTozNC43NTE3MTA1MzdaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzE3NjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiA0MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxcbiAgIDI6XFx0Y29uZmlnIE1UNzkyNV9DT01NT05cXG4gICAzOlxcdFxcdHRyaXN0YXRlXFxuICAgNDpcXHRcXHRzZWxlY3QgTVQ3OTJ4X0xJQlxcbiAgIDU6XFx0XFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXFxuICAgNjpcXHRcXG4gICA3OlxcdGNvbmZpZyBNVDc5MjVFXFxuICAgODpcXHRcXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3OTI1RSAoUENJZSkgc3VwcG9ydFxcXCJcXG4gICA5OlxcdFxcdHNlbGVjdCBNVDc5MjVfQ09NTU9OXFxuICAxMDpcXHRcXHRkZXBlbmRzIG9uIE1BQzgwMjExXFxuICAxMTpcXHRcXHRkZXBlbmRzIG9uIFBDSVxcbiAgMTI6XFx0XFx0aGVscFxcbiAgMTM6XFx0XFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3OTI1LWJhc2VkIHdpcmVsZXNzIFBDSWUgZGV2aWNlcyxcXG4gIDE0OlxcdFxcdCAgd2hpY2ggc3VwcG9ydCBvcGVyYXRpb24gYXQgNkdIeiwgNUdIeiwgYW5kIDIuNEdIeiBJRUVFIDgwMi4xMWJlXFxuICAxNTpcXHRcXHQgIDJ4MjoyU1MgNDA5Ni1RQU0sIDE2ME1IeiBjaGFubmVscy5cXG4gIDE2OlxcdFxcbiAgMTc6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxcbiAgMTg6XFx0XFxuICAxOTpcXHRjb25maWcgTVQ3OTI1VVxcbiAgMjA6XFx0XFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzkyNVUgKFVTQikgc3VwcG9ydFxcXCJcXG4gIDIxOlxcdFxcdHNlbGVjdCBNVDc5MnhfVVNCXFxuICAyMjpcXHRcXHRzZWxlY3QgTVQ3OTI1X0NPTU1PTlxcbiAgMjM6XFx0XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxcbiAgMjQ6XFx0XFx0ZGVwZW5kcyBvbiBVU0JcXG4gIDI1OlxcdFxcdGhlbHBcXG4gIDI2OlxcdFxcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIE1UNzkyNS1iYXNlZCB3aXJlbGVzcyBVU0IgZGV2aWNlcyxcXG4gIDI3OlxcdFxcdCAgd2hpY2ggc3VwcG9ydCBvcGVyYXRpb24gYXQgNkdIeiwgNUdIeiwgYW5kIDIuNEdIeiBJRUVFIDgwMi4xMWJlXFxuICAyODpcXHRcXHQgIDJ4MjoyU1MgNDA5Ni1RQU0sIDE2ME1IeiBjaGFubmVscy5cXG4gIDI5OlxcdFxcbiAgMzA6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMTozNC43NTE3ODM2NjdaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzQ2MzQ0NzM0MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiB0aGUgTVQ3OTI1VSBDb25maWd1cmF0aW9uIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHksIHRoZSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCB0aGUgcmVxdWlyZWQgY29uZmlnIGlzIGxpc3RlZCBhcyBgTVQ3OTI1VWAuIEhvd2V2ZXIsIGl0J3MgY2xlYXIgYWZ0ZXIgYSBtb21lbnQgdGhhdCB0aGUgY29yZSBjb2RlIGJlaW5nIG1vZGlmaWVkIGlzIGFjdHVhbGx5IHNoYXJlZCwgc3BlY2lmaWNhbGx5IGBtdDc5MjUtY29tbW9uLm9gLiBUaGF0IHRlbGxzIG1lIHRoZSByZWFsIGNvbnRyb2xsaW5nIGNvbmZpZyBvcHRpb24gaXMgYE1UNzkyNV9DT01NT05gLCB3aGljaCBnZXRzIGVuYWJsZWQgKnRocm91Z2gqIGBNVDc5MjVVYCBhbmQgYE1UNzkyNUVgLiBTbywgdG8gdGVzdCB0aGlzIHZpYSBVU0IgZW11bGF0aW9uLCBlbmFibGluZyBgTVQ3OTI1VWAgaXMgdGhlIGNvcnJlY3QgcGF0aC4gSXQncyBhIHF1aWNrIG5vdGUgdG8gYWxzbyBtYWtlIHN1cmUgSSBjaGVjayBmb3IgdGhlIGRlcGVuZGVuY2llcyAtIGBNQUM4MDIxMWAgYW5kIGBVU0JgLCBvZiBjb3Vyc2UuXG5cbk5leHQsIEkgbmVlZCB0byBwaW5wb2ludCB0aGUgY3JpdGljYWwgcGFydHMuIEkgd2FudCB0byBzZWUgaWYgdGhlcmUgYXJlIHNwZWNpZmljIGZ1bmN0aW9ucyBpbXBhY3RlZC4gUmlnaHQsIHRoZSBwYXRjaCBtb2RpZmllcyBgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXJgIGFuZCBgbXQ3OTI1X21jdV9jb25maWdfc25pZmZlcmAuXG5cbk5vdywgSSdsbCBjaGVjayB0aGUgdmlzaWJpbGl0eSBvZiB0aG9zZSBmdW5jdGlvbnMuIGBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcmAgaXMgc3RhdGljIHdpdGhpbiBgbWFpbi5jYC4gSXQncyBhc3NpZ25lZCB0byBgaWVlZTgwMjExX29wcy5jb25maWd1cmVfZmlsdGVyYC4gQmVjYXVzZSBpdCdzIHN0YXRpYywgaXQgd29uJ3QgaGF2ZSBhIGRpc3RpbmN0IHN5bWJvbCBpbiBtYW55IGJ1aWxkcywgdW5sZXNzIGl0J3Mgbm90IGlubGluZWQsIHdoaWNoIGlzIHdvcnRoIGNvbnNpZGVyaW5nIGxhdGVyLiBgbXQ3OTI1X21jdV9jb25maWdfc25pZmZlcmAsIG9uIHRoZSBvdGhlciBoYW5kLCBpc24ndCBzdGF0aWMgaW4gYG1jdS5jYC4gSSBhbHNvIHNlZSB0aGF0IGl0IGlzIGNhbGxlZCBmcm9tIGBtdDc5MjVfY2hhbmdlX2NoYW5jdHhgIGluIGBtYWluLmNgLlxuXG5TaW5jZSB0aGUgc25pZmZlciBjb25maWd1cmF0aW9uIGZ1bmN0aW9uIGlzbid0IHN0YXRpYywgaXQncyBhIGtleSBzeW1ib2wuIExldCdzIG1ha2Ugc3VyZSB0aGF0IHRoYXQgaXMgaGFuZGxlZCBjb3JyZWN0bHkuIGBtdDc5MjVfY2hhbmdlX2NoYW5jdHhgIGlzIGFsc28gbm90IHN0YXRpYy5cblxuSSdtIG5vdyBnb2luZyB0byBmb2N1cyBteSBhdHRlbnRpb24gb24gYG10NzkyNV9jaGFuZ2VfY2hhbmN0eGAgd2l0aGluIGBtYWluLmNgIGJlY2F1c2UgaXQgaXMgbm90IHN0YXRpYywgYW5kIGlzIGEgY2xlYXIgZW50cnkgcG9pbnQgdG8gdGhlIHNuaWZmZXIgY29uZmlndXJhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjUzODgsIk91dHB1dFRva2VucyI6NDksIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNTIsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMTo0Mi4yMTUyMzMwOThaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ3ODcwNTQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzkyNV9jaGFuZ2VfY2hhbmN0eFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTE5MzU9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTkzNjptdDc5MjVfY2hhbmdlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE5MzctXFx0XFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0yNDgzPWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10NzkyNV9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMjUzNS1cXHQucmVtb3ZlX2NoYW5jdHggPSBtdDc5MjVfcmVtb3ZlX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjI1MzY6XFx0LmNoYW5nZV9jaGFuY3R4ID0gbXQ3OTI1X2NoYW5nZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0yNTM3LVxcdC5hc3NpZ25fdmlmX2NoYW5jdHggPSBtdDc5MjVfYXNzaWduX3ZpZl9jaGFuY3R4LFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMTo0Mi4yNjMxMDU4NDVaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTI4MTYyNjU3MzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgRnV6emluZyBTdHJhdGVneSoqXG5cbk9rYXksIHNvIEkndmUgYmVlbiBsb29raW5nIG92ZXIgdGhpcyBjb2RlIGFuZCB0aGlua2luZyBhYm91dCB0aGUgYmVzdCBmdXp6aW5nIGFwcHJvYWNoLiBJIHNlZSB0aGF0IGBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcmAgaXMgc3RhdGljLCB3aGljaCB1c3VhbGx5IHdvdWxkIG1ha2UgbWUgaGVzaXRhbnQsIGJ1dCBiZWNhdXNlIGl0J3MgcGFydCBvZiB0aGUgYGllZWU4MDIxMV9vcHNgIGNhbGxiYWNrLCBJJ20gcHJldHR5IHN1cmUgaXQncyBhZGRyZXNzLXRha2VuIGFuZCB3b24ndCBiZSBpbmxpbmVkIGF3YXkgY29tcGxldGVseS4gVGhhdCBtYWtlcyBpdCBhIGdvb2QgY2FuZGlkYXRlLCBhbG9uZyB3aXRoIHRoZSBub24tc3RhdGljIGBtdDc5MjVfbWN1X2NvbmZpZ19zbmlmZmVyYC4gSSd2ZSBkb3VibGUtY2hlY2tlZCB0aG9zZSBmdW5jdGlvbiBuYW1lcywganVzdCB0byBiZSBzdXJlLlxuXG5JJ3ZlIGFsc28gdmVyaWZpZWQgdGhhdCB0aGUgbmVjZXNzYXJ5IGNvbmZpZ3MgYXJlIGVuYWJsZWQgYnkgdGhlIGBNVDc5MjVVYCwgYE1BQzgwMjExYCwgYW5kIGBVU0JgIGNvbmZpZ3VyYXRpb25zLiBgTVQ3OTI1VWAgcHVsbHMgaW4gYE1UNzkyNV9DT01NT05gLCB3aGljaCBpcyB3aGF0IEkgbmVlZC5cblxuVGhpcyBwYXRjaCBpcyBkZWZpbml0ZWx5IGEgZnVuY3Rpb25hbCBjaGFuZ2Ug4oCTIGl0IG1vZGlmaWVzIHRoZSBgZHJvcF9lcnJgIGZsYWcgYmFzZWQgb24gdGhlIGByeGZpbHRlcmAuIEknbSBzZWVpbmcgaXQgY2hhbmdlcyB0aGUgc25pZmZlciBjb25maWd1cmF0aW9uIGJhc2VkIG9uIHRoZSByZWNlaXZlZCBmaWx0ZXIuIFNvLCBmdXp6aW5nIHRoZXNlIHR3byBmdW5jdGlvbnMgd2lsbCBiZSBhIGdvb2Qgd2F5IHRvIHRlc3QgdGhpcy5cblxuSSdtIHNldHRpbmcgYFdvcnRoRnV6emluZz10cnVlYCBhbmQgbXkgYEZvY3VzU3ltYm9sc2AgdG8gYG10NzkyNV9jb25maWd1cmVfZmlsdGVyYCBhbmQgYG10NzkyNV9tY3VfY29uZmlnX3NuaWZmZXJgLCBhbmQgSSB3aWxsIGVuYWJsZSB0aGUgY29uZmlncyBJJ3ZlIG1lbnRpb25lZC5cblxuRnJvbSB3aGF0IEkgY2FuIHNlZSwgSSBzaG91bGQgYmUgYWJsZSB0byB0cmlnZ2VyIHRoaXMgZnVuY3Rpb25hbGl0eSB0aHJvdWdoIFVTQiBlbXVsYXRpb24gdXNpbmcgdGhlIGBtdDc5MjV1YCBkcml2ZXIuIE5vdyBJJ2xsIGNhbGwgYHNldC1yZXN1bHRzYC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjY1OTMsIk91dHB1dFRva2VucyI6MTYzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzExLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDEwOjAxOjU1LjA3OTM3NDI1OFoiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc4MzM5NDQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNVDc5MjVVXCIsXG4gICAgXCJNQUM4MDIxMVwiLFxuICAgIFwiVVNCXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXJcIixcbiAgICBcIm10NzkyNV9tY3VfY29uZmlnX3NuaWZmZXJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVkaWF0ZWsgTVQ3OTI1IHdpcmVsZXNzIGRyaXZlciB0byBjb25maWd1cmUgdGhlIHNuaWZmZXIncyBkcm9wX2VyciBmbGFnIGJhc2VkIG9uIHRoZSByeGZpbHRlciBzZXR0aW5ncy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXIncyBtYWM4MDIxMSBjYWxsYmFja3MuIFRoZSBkcml2ZXIgaGFzIGEgVVNCIHZhcmlhbnQgKG10NzkyNXUpIHdoaWNoIGNhbiBiZSBmdXp6ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSBVU0IgZW11bGF0aW9uIChzeXpfdXNiX2Nvbm5lY3QpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1UNzkyNVVcIixcbiAgICBcIk1BQzgwMjExXCIsXG4gICAgXCJVU0JcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtdDc5MjVfY29uZmlndXJlX2ZpbHRlclwiLFxuICAgIFwibXQ3OTI1X21jdV9jb25maWdfc25pZmZlclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYXRlayBNVDc5MjUgd2lyZWxlc3MgZHJpdmVyIHRvIGNvbmZpZ3VyZSB0aGUgc25pZmZlcidzIGRyb3BfZXJyIGZsYWcgYmFzZWQgb24gdGhlIHJ4ZmlsdGVyIHNldHRpbmdzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlcidzIG1hYzgwMjExIGNhbGxiYWNrcy4gVGhlIGRyaXZlciBoYXMgYSBVU0IgdmFyaWFudCAobXQ3OTI1dSkgd2hpY2ggY2FuIGJlIGZ1enplZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIFVTQiBlbXVsYXRpb24gKHN5el91c2JfY29ubmVjdCkuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDEwOjAxOjU1LjE1NzcyMDg3MloiLCJTZXEiOjE5LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzE3MjQzOTQyMzYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMTo1NS4xNTgxNTc4OTJaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6ImFnZW50IiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NzE3MjM5NTMyMzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgZmllbGQgYHJ4ZmlsdGVyYCB0byBgc3RydWN0IG10NzkyeF9waHlgIHRvIHN0b3JlIHRoZSBSWCBmaWx0ZXIgZmxhZ3MuIFRoaXMgc3RydWN0dXJlIGlzIGVtYmVkZGVkIGluIGBzdHJ1Y3QgbXQ3OTJ4X2RldmAsIHdoaWNoIGlzIGFsbG9jYXRlZCB2aWEgYG10NzZfYWxsb2NfZGV2aWNlYCAtXFx1MDAzZSBgaWVlZTgwMjExX2FsbG9jX2h3YCAtXFx1MDAzZSBgd2lwaHlfbmV3X25tYCB1c2luZyBga3phbGxvY2AuIFRodXMsIHRoZSBuZXcgZmllbGQgaXMgZnVsbHkgemVyby1pbml0aWFsaXplZCB1cG9uIGFsbG9jYXRpb24uIFRoZSBwYXRjaCB0aGVuIHdyaXRlcyB0byB0aGlzIGZpZWxkIGluIGBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcmAgYW5kIHJlYWRzIGZyb20gaXQgaW4gYG10NzkyNV9tY3VfY29uZmlnX3NuaWZmZXJgIHRvIGNvbmRpdGlvbmFsbHkgc2V0IHRoZSBgZHJvcF9lcnJgIGZsYWcgaW4gYSBoYXJkd2FyZSBjb25maWd1cmF0aW9uIHJlcXVlc3QuIFRoZXJlIGFyZSBubyBuZXcgYWxsb2NhdGlvbnMsIG5vIHN0cnVjdHVyZXMgY29waWVkIHRvIHVzZXIgc3BhY2UsIGFuZCBubyBjb21wbGV4IGRhdGEgc3RydWN0dXJlcyB3aGVyZSB1bmluaXRpYWxpemVkIGZpZWxkcyBjb3VsZCBiZSByZWFkLiBBbnkgcG90ZW50aWFsIGJ1Z3MgaW50cm9kdWNlZCBieSB0aGlzIHBhdGNoIHdvdWxkIGJlIHJlbGF0ZWQgdG8gaW5jb3JyZWN0IGxvZ2ljIG9yIG91dC1vZi1ib3VuZHMgYWNjZXNzLCB3aGljaCBhcmUgd2VsbC1jb3ZlcmVkIGJ5IHN0YW5kYXJkIEtBU0FOIGFuZCBvdGhlciBidWcgZGV0ZWN0b3JzLiBUaGVyZSBpcyBubyByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MgdGhhdCB3b3VsZCByZXF1aXJlIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbi5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgc2VjdXJpdHkgZW5naW5lZXIgc3BlY2lhbGl6aW5nIGluIGtlcm5lbCBtZW1vcnlcbmVycm9yIGRldGVjdG9ycyAoS0FTQU4gYW5kIEtNU0FOKS4gWW91ciBqb2IgaXMgdG8gcmV2aWV3IHRoZSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kXG5kZXRlcm1pbmUgaWYgdGhlIGNvZGUgY2hhbmdlcyBqdXN0aWZ5IHNwYXduaW5nIGEgZGVkaWNhdGVkIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpXG5mdXp6aW5nIHNlc3Npb24gaW4gYWRkaXRpb24gdG8gc3RhbmRhcmQgS0FTQU4gZnV6emluZy5cblxuQ1JJVElDQUwgRElTVElOQ1RJT04gQkVUV0VFTiBLQVNBTiBBTkQgS01TQU46XG4tIFN0YW5kYXJkIEtBU0FOIGtlcm5lbCBidWlsZHMgKHVwc3RyZWFtLWFwcGFybW9yLWthc2FuLmNvbmZpZykgYWxyZWFkeSBlbmFibGVcbiAgYSBjb21wcmVoZW5zaXZlIHN1aXRlIG9mIGRlYnVnZ2luZyB0b29scyBhbmQgc2FuaXRpemVycywgaW5jbHVkaW5nIEtBU0FOXG4gIChvdXQtb2YtYm91bmRzIGFjY2Vzc2VzLCB1c2UtYWZ0ZXItZnJlZSwgZG91YmxlIGZyZWUsIGludmFsaWQgZnJlZSksIExPQ0tERVBcbiAgKGxvY2tpbmcgYnVncyBhbmQgZGVhZGxvY2tzKSwgVUItc2FuaXRpemVycywgYW5kIG1lbW9yeSBjb3JydXB0aW9uIGNoZWNrcy5cbi0gS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikgZGV0ZWN0cyByZWFkcyBvZiBVTklOSVRJQUxJWkVEIG1lbW9yeSAoc3RhY2ssIGhlYXAsXG4gIG9yIHBhZ2UgYWxsb2NhdGlvbnMpIGFuZCBrZXJuZWwtdG8tdXNlciBtZW1vcnkgaW5mby1sZWFrcy5cblxuUnVsZTogVEhFUkUgSVMgTk8gU0VOU0UgSU4gUlVOTklORyBBIEtNU0FOIFNFU1NJT04gSUYgQSBCVUcgQ0FOIEJFIENBVUdIVCBCWSBLQVNBTixcbkxPQ0tERVAsIE9SIE9USEVSIFNUQU5EQVJEIEJVRyBERVRFQ1RPUlMuXG5BIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaW5jdXJzIHNpZ25pZmljYW50IHJlc291cmNlIGNvc3RzLiBZb3UgbXVzdCBPTkxZXG5zZXQgTmVlZHNLTVNBTj10cnVlIGlmIHRoZSBjb2RlIGNoYW5nZXMgaW50cm9kdWNlIG9yIGV4cG9zZSBVTklOSVRJQUxJWkVEIE1FTU9SWSByaXNrc1xudGhhdCBhcmUgZGV0ZWN0ZWQgT05MWSBieSBLTVNBTi5cblxuTG9vayBob2xpc3RpY2FsbHkgYXQgdGhlIHBhdGNoIHNlcmllcyBhbmQgc3Vycm91bmRpbmcgY29kZS4gRXZlbiBpZiBubyBkaXJlY3RcbnVuaW5pdGlhbGl6ZWQgZmllbGQgYWNjZXNzZXMgb3IgbmV3IGJ1ZmZlciBhbGxvY2F0aW9ucyBhcmUgYWRkZWQgaW4gdGhlIGRpZmYgaXRzZWxmLFxuYSBwYXRjaCBtYXkgYWx0ZXIgY29udHJvbCBmbG93LCBib3VuZHMgY2hlY2tpbmcsIG9yIGRhdGEgbGVuZ3RoIGNhbGN1bGF0aW9ucyBpbiB3YXlzXG50aGF0IGNoYW5nZSBob3cgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgb3BlcmF0ZXMgb24gZXhpc3RpbmcgYnVmZmVycyAoZS5nLiBhbGxvd2luZ1xudW5pbml0aWFsaXplZCBzdGFjay9oZWFwIG1lbW9yeSB0byBiZSByZWFkLCBjb3BpZWQgdG8gdXNlciBzcGFjZSwgb3IgdXNlZCBpbiBjb250cm9sXG5mbG93KS4gRG8gbm90IGhlc2l0YXRlIHRvIHVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUsXG5jYWxsZWQgZnVuY3Rpb25zLCBhbmQgY2FsbGVycy5cblxuU2V0IE5lZWRzS01TQU49dHJ1ZSBPTkxZIElGIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzOlxuMS4gS2VybmVsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlICh2aWEgY29weV90b191c2VyLCBwdXRfdXNlciwgbmV0bGluayBza2JcbiAgIGF0dHJpYnV0ZXMsIGlvY3RsIG91dHB1dCBhcmd1bWVudHMsIHNvY2tldCBvcHRpb25zLCBvciBCUEYgYnVmZmVycykgd2hlcmUgZmllbGRzXG4gICBvciBzdHJ1Y3R1cmUgcGFkZGluZyBtaWdodCBub3QgYmUgZnVsbHkgaW5pdGlhbGl6ZWQvemVyb2VkLlxuMi4gQ29uZGl0aW9uYWwgbG9naWMgb3IgYnJhbmNoaW5nIHRoYXQgZGVwZW5kcyBvbiBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIHZhcmlhYmxlc1xuICAgb3Igc3RydWN0IGZpZWxkcy5cbjMuIEFsbG9jYXRpb24gb3IgaW5pdGlhbGl6YXRpb24gb2YgY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHNcbiAgIGNvdWxkIGJlIHJlYWQgbGF0ZXIgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMuXG40LiBCb3VuZHMgY2hlY2tzLCBsZW5ndGhzLCBvciBsb2dpYyBpbiBhIHdheSB0aGF0IGFsbG93cyBzdXJyb3VuZGluZyBjb2RlIHRvIGFjY2Vzc1xuICAgdW5pbml0aWFsaXplZCBieXRlcyBvZiBleGlzdGluZyBidWZmZXJzLlxuXG5TZXQgTmVlZHNLTVNBTj1mYWxzZSBJRjpcbi0gVGhlIGNvZGUgY2hhbmdlcyBwcmltYXJpbHkgcmlzayBvdXQtb2YtYm91bmRzIGFjY2VzcywgYXJyYXkgb3ZlcmZsb3dzLCBOVUxMIHBvaW50ZXJcbiAgZGVyZWZlcmVuY2VzLCBsb2NraW5nIGRlYWRsb2Nrcywgb3IgdXNlLWFmdGVyLWZyZWUgYnVncyAodGhlc2UgYXJlIGFscmVhZHkgY2F1Z2h0XG4gIGJ5IEtBU0FOLCBMT0NLREVQLCBvciBzdGFuZGFyZCBidWcgZGV0ZWN0b3JzKS5cbi0gQWxsIHN0YWNrL2hlYXAgc3RydWN0dXJlcyB0b3VjaGVkIG9yIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIGFyZSBmdWxseSB6ZXJvZWRcbiAgb3IgaW5pdGlhbGl6ZWQgKGUuZy4gdXNpbmcgPSB7MH0sIG1lbXNldCwga3phbGxvYykgYmVmb3JlIGJlaW5nIHJlYWQgb3IgY29waWVkLlxuLSBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MuXG5cblVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaWYgbmVjZXNzYXJ5LCB0aGVuIHByb3ZpZGVcbmRldGFpbGVkIEtNU0FOUmVhc29uaW5nIGNvbnRyYXN0aW5nIEtBU0FOIHZzIEtNU0FOIGFwcGxpY2FiaWxpdHkgZm9yIHRoaXMgcGF0Y2guXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA4ZGQ4ZTg4NGQzYTgzNjY1ZDcwNzI3MGI4ZDcxODVhNDZiMzQ4YmM0XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBBdWcgMjYgMDk6NDk6MzcgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmNcbmluZGV4IGE5MDU5ODY2YjcwMTYuLmNmYmZkNzdlODkwZmIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uY1xuQEAgLTgzMiwxMSArODMyLDggQEAgc3RhdGljIHZvaWQgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXIoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4gXHRcdFx0XHQgICAgdW5zaWduZWQgaW50ICp0b3RhbF9mbGFncyxcbiBcdFx0XHRcdCAgICB1NjQgbXVsdGljYXN0KVxuIHtcbi0jZGVmaW5lIE1UNzkyNV9GSUxURVJfRkNTRkFJTCAgICBCSVQoMilcbi0jZGVmaW5lIE1UNzkyNV9GSUxURVJfQ09OVFJPTCAgICBCSVQoNSlcbi0jZGVmaW5lIE1UNzkyNV9GSUxURVJfT1RIRVJfQlNTICBCSVQoNilcbi0jZGVmaW5lIE1UNzkyNV9GSUxURVJfRU5BQkxFICAgICBCSVQoMzEpXG4gXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gbXQ3OTJ4X2h3X2Rldihodyk7XG4rXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG4gXHR1MzIgZmxhZ3MgPSBNVDc5MjVfRklMVEVSX0VOQUJMRTtcbiBcbiAjZGVmaW5lIE1UNzkyNV9GSUxURVIoX2ZpZiwgX3R5cGUpIGRvIHtcdFx0XHRcXFxuQEAgLTg0OCw2ICs4NDUsOCBAQCBzdGF0aWMgdm9pZCBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbiBcdE1UNzkyNV9GSUxURVIoRklGX0NPTlRST0wsIENPTlRST0wpO1xuIFx0TVQ3OTI1X0ZJTFRFUihGSUZfT1RIRVJfQlNTLCBPVEhFUl9CU1MpO1xuIFxuK1x0cGh5LVx1MDAzZXJ4ZmlsdGVyID0gZmxhZ3M7XG4rXG4gXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuIFx0bXQ3OTI1X21jdV9zZXRfcnhmaWx0ZXIoZGV2LCBmbGFncywgMCwgMCk7XG4gXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmNcbmluZGV4IGU5NGZhNTQ0ZmYyMDcuLmFkYzEzN2EwZTZiNGQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmNcbkBAIC0yMjUxLDcgKzIyNTEsNyBAQCBpbnQgbXQ3OTI1X21jdV9jb25maWdfc25pZmZlcihzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqdmlmLFxuIFx0XHRcdC5sZW4gPSBjcHVfdG9fbGUxNihzaXplb2YocmVxLnRsdikpLFxuIFx0XHRcdC5jb250cm9sX2NoID0gY2hhbmRlZi1cdTAwM2VjaGFuLVx1MDAzZWh3X3ZhbHVlLFxuIFx0XHRcdC5jZW50ZXJfY2ggPSBpZWVlODAyMTFfZnJlcXVlbmN5X3RvX2NoYW5uZWwoZnJlcTEpLFxuLVx0XHRcdC5kcm9wX2VyciA9IDEsXG4rXHRcdFx0LmRyb3BfZXJyID0gISh2aWYtXHUwMDNlcGh5LVx1MDAzZXJ4ZmlsdGVyIFx1MDAyNiBNVDc5MjVfRklMVEVSX0ZDU0ZBSUwpLFxuIFx0XHR9LFxuIFx0fTtcbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tdDc5MjUuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L210NzkyNS5oXG5pbmRleCA0Y2MyNTk0MThhZmNhLi44ZmI4YTRjMTMxNmUwIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbXQ3OTI1LmhcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L210NzkyNS5oXG5AQCAtNyw2ICs3LDExIEBAXG4gI2luY2x1ZGUgXCIuLi9tdDc5MnguaFwiXG4gI2luY2x1ZGUgXCJyZWdzLmhcIlxuIFxuKyNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9GQ1NGQUlMXHRcdEJJVCgyKVxuKyNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9DT05UUk9MXHRcdEJJVCg1KVxuKyNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9PVEhFUl9CU1NcdEJJVCg2KVxuKyNkZWZpbmUgTVQ3OTI1X0ZJTFRFUl9FTkFCTEVcdFx0QklUKDMxKVxuK1xuICNkZWZpbmUgTVQ3OTI1X0JFQUNPTl9SQVRFU19UQkxcdFx0MjVcbiBcbiAjZGVmaW5lIE1UNzkyNV9UWF9SSU5HX1NJWkVcdFx0MjA0OFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4LmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oXG5pbmRleCA3MDA3M2I0M2FmNTQzLi43NWQzMmE0YWRkZDcxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaFxuQEAgLTE2OCw2ICsxNjgsNyBAQCBzdHJ1Y3QgbXQ3OTJ4X3BoeSB7XG4gXHRzMTYgY292ZXJhZ2VfY2xhc3M7XG4gXHR1OCBzbG90dGltZTtcbiBcbitcdHUzMiByeGZpbHRlcjtcbiBcdHUzMiByeF9hbXBkdV90cztcbiBcdHUzMiBhbXBkdV9yZWY7XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMTo1NS4xNTgxNTk2MTJaIiwiU2VxIjoyMSwiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTAyMTM4NzIwMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE1UNzkyNSBGaWx0ZXIgQ29uZmlndXJhdGlvbiBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgdGhlIGZpbHRlciBjb25maWd1cmF0aW9uIGZvciB0aGUgTVQ3OTI1IHdpcmVsZXNzIGRyaXZlci4gU3BlY2lmaWNhbGx5LCBpdCdzIG1ha2luZyBjaGFuZ2VzIHRvIHRoZSBgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXJgIGZ1bmN0aW9uIGluIGBtYWluLmNgLCBhbmQgSSBzZWUgaXQncyBtb3ZpbmcgYSBmZXcgYCNkZWZpbmVgcyAodGhvc2UgZmlsdGVyIGZsYWdzKSBvdmVyIHRvIGBtdDc5MjUuaGAuIFRoYXQncyBnZW5lcmFsbHkgZ29vZCBwcmFjdGljZSwga2VlcGluZyByZWxhdGVkIGRlZmluaXRpb25zIHRvZ2V0aGVyLiBJIGFsc28gbm90aWNlIGEgbmV3IGZpZWxkLCBgcnhmaWx0ZXJgLCBiZWluZyBhZGRlZCB0byB0aGUgYHN0cnVjdCBtdDc5MnhfcGh5YCBzdHJ1Y3QgaW4gYG10NzkyeC5oYC4gVGhlIGBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcmAgZnVuY3Rpb24gbm93IGFzc2lnbnMgdGhpcyBgcnhmaWx0ZXJgIGZpZWxkIHdpdGggYGZsYWdzYCwgd2hpY2ggaXMgc3RhbmRhcmQuXG5cbk15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIGFib3V0IHBvdGVudGlhbCB1bmluaXRpYWxpemVkIG1lbW9yeSBpc3N1ZXMuIFRoaXMgYHJ4ZmlsdGVyYCBmaWVsZCBpcyBuZXcsIGFuZCBJIG5lZWQgdG8gY29uZmlybSBob3cgdGhlIGBzdHJ1Y3QgbXQ3OTJ4X3BoeWAgaXMgYWxsb2NhdGVkLiBJcyBpdCB1c2luZyBga3phbGxvY2Agb3Igc29tZSBvdGhlciBhbGxvY2F0aW9uIHRoYXQgemVyb3Mgb3V0IHRoZSBtZW1vcnk/IElmIG5vdCwgd2UgY291bGQgaGF2ZSBwcm9ibGVtcyB3aXRoIHRoZSBpbml0aWFsIHZhbHVlIG9mIGByeGZpbHRlcmAgYmVpbmcgZ2FyYmFnZS4gVGhlIGZhY3QgdGhhdCBgbXQ3OTI1X21jdV9jb25maWdfc25pZmZlcmAgaW4gYG1jdS5jYCBpcyB1c2luZyB0aGUgYHJ4ZmlsdGVyYCBmaWVsZCBpcyBhIHRyaWdnZXIgdG8gbWFrZSBzdXJlIHRoYXQgZmllbGQgaXMgaW5pdGlhbGl6ZWQgYW5kIGNhbiBiZSB0cnVzdGVkLiBJJ20gZ29pbmcgdG8gZGlnIGludG8gdGhlIGNvZGUgYW5kIHRyYWNlIHRoZSBhbGxvY2F0aW9uIG9mIGBzdHJ1Y3QgbXQ3OTJ4X3BoeWAgdG8gdmVyaWZ5IHRoaXMuIEdvdHRhIGJlIHN1cmUgd2UncmUgbm90IGludHJvZHVjaW5nIGEgc3VidGxlIGJ1ZyByZWxhdGVkIHRvIHVuaW5pdGlhbGl6ZWQgZGF0YS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzEwNiwiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMxMywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDEwOjAyOjA0LjE3OTU1MDA2MloiLCJTZXEiOjIyLCJOZXN0aW5nIjozLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzQ2NzQ4OTM0LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJhbGxvYy4qbXQ3OTJ4X3BoeVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMjowNC41MjYzMDcxNjZaIiwiU2VxIjoyMywiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDA0NTY2Mjg1MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRGl2aW5nIGludG8gdGhlIGBtdDc5MnhfcGh5YCBMYW5kc2NhcGUqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgYG10NzkyeF9waHlgIG1vZHVsZSBiZXR0ZXIuIE15IGZpcnN0IGluc3RpbmN0IGlzIGFsd2F5cyB0byB0cmFjZSBpdHMgZGVmaW5pdGlvbiBhbmQgdXNhZ2UuIFdoZXJlIGlzIGl0IGFjdHVhbGx5IGRlY2xhcmVkPyBJJ20gdGhpbmtpbmcgSSdsbCBuZWVkIHRvIGdvIGJleW9uZCBhIHNpbXBsZSBgZ3JlcGAgb3IgYGZpbmRgIOKAkyBJIHdhbnQgdG8gbWFwIHRoZSByZWxhdGlvbnNoaXBzLiBLbm93aW5nIHdoZXJlIGl0J3MgKmRlZmluZWQqIGlzIGp1c3QgdGhlIHN0YXJ0aW5nIHBvaW50OyBJIG5lZWQgdG8gZm9sbG93IHRoZSBicmVhZGNydW1icyBvZiBpdHMgaW50ZXJhY3Rpb25zLiBIb3cgZG9lcyB0aGUga2VybmVsIHV0aWxpemUgdGhpcyBQSFk/IFdoYXQgb3RoZXIgbW9kdWxlcyBkZXBlbmQgb24gaXQsIGFuZCB3aGF0IGZ1bmN0aW9ucyBhcmUgdGhlIGtleSBlbnRyeSBwb2ludHM/IEknbSBhbnRpY2lwYXRpbmcgc29tZSBwb3RlbnRpYWxseSBpbnRyaWNhdGUgZGVwZW5kZW5jaWVzLCBhbmQgSSB3YW50IHRvIGJ1aWxkIGEgY2xlYXIgbWVudGFsIG1vZGVsIG9mIGl0cyBwbGFjZSB3aXRoaW4gdGhlIHdpZGVyIGRyaXZlciBhcmNoaXRlY3R1cmUuIFRoaXMgaXMgbW9yZSB0aGFuIGp1c3QgY29kZSBicm93c2luZzsgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIG9wZXJhdGlvbmFsIGNvbnRleHQuIExldCdzIGdldCB0byBpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzgxMCwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDEwOjAyOjA4LjU3MTk3MjMwOFoiLCJTZXEiOjI0LCJOZXN0aW5nIjozLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDczMjUwNzYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3RydWN0IG10NzkyeF9waHlcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3NlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDc1MyBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jPTE0PXN0YXRpYyBzc2l6ZV90IG10NzkyMV90aGVybWFsX3RlbXBfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTktXFx0Y2FzZSAwOiB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjIwOlxcdFxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMjEtXFx0XFx0c3RydWN0IG10NzkyeF9kZXYgKm1kZXYgPSBwaHktXFx1MDAzZWRldjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYz00Mz1BVFRSSUJVVEVfR1JPVVBTKG10NzkyMV9od21vbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzo0NTpzdGF0aWMgaW50IG10NzkyMV90aGVybWFsX2luaXQoc3RydWN0IG10NzkyeF9waHkgKnBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtNDYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM9MTY5PW10NzkyMV9tYWNfZmlsbF9yeChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMTc3LVxcdHN0cnVjdCBtdDc2X3BoeSAqbXBoeSA9IFxcdTAwMjZkZXYtXFx1MDAzZW10NzYucGh5O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjE3ODpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gXFx1MDAyNmRldi1cXHUwMDNlcGh5O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTE3OS1cXHRzdHJ1Y3QgaWVlZTgwMjExX3N1cHBvcnRlZF9iYW5kICpzYmFuZDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xMz1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjE0Om10NzkyMV9pbml0X2hlX2NhcHMoc3RydWN0IG10NzkyeF9waHkgKnBoeSwgZW51bSBubDgwMjExX2JhbmQgYmFuZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTUtXFx0XFx0ICAgIHN0cnVjdCBpZWVlODAyMTFfc2JhbmRfaWZ0eXBlX2RhdGEgKmRhdGEpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoxOTY6dm9pZCBtdDc5MjFfc2V0X3N0cmVhbV9oZV9jYXBzKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTE5Ny17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjI2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyMjc6aW50IF9fbXQ3OTIxX3N0YXJ0KHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTIyOC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MjcyPXN0YXRpYyBpbnQgbXQ3OTIxX3N0YXJ0KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yNzMte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyNzQ6XFx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG10NzkyeF9od19waHkoaHcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yNzUtXFx0aW50IGVycjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0zMDE9bXQ3OTIxX2FkZF9pbnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzA0LVxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MzA1OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzA2LVxcdHN0cnVjdCBtdDc2X3R4cSAqbXR4cTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0zNjI9c3RhdGljIHZvaWQgbXQ3OTIxX3JvY19pdGVyKHZvaWQgKnByaXYsIHU4ICptYWMsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzY1LVxcdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVxcdTAwM2VkcnZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MzY2OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zNjctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MzcxPXZvaWQgbXQ3OTIxX3JvY19hYm9ydF9zeW5jKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM3Mi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjM3MzpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gXFx1MDAyNmRldi1cXHUwMDNlcGh5O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zNzQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9Mzg3PXZvaWQgbXQ3OTIxX3JvY193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzg4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6Mzg5OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM5MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MzkxOlxcdHBoeSA9IChzdHJ1Y3QgbXQ3OTJ4X3BoeSAqKWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgbXQ3OTJ4X3BoeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzkyLVxcdFxcdFxcdFxcdFxcdFxcdHJvY193b3JrKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00MDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjQwNjpzdGF0aWMgaW50IG10NzkyMV9hYm9ydF9yb2Moc3RydWN0IG10NzkyeF9waHkgKnBoeSwgc3RydWN0IG10NzkyeF92aWYgKnZpZilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDA3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00MjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjQyMTpzdGF0aWMgaW50IG10NzkyMV9zZXRfcm9jKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQyMi1cXHRcXHRcXHQgIHN0cnVjdCBtdDc5MnhfdmlmICp2aWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9NDUxPXN0YXRpYyBpbnQgbXQ3OTIxX3JlbWFpbl9vbl9jaGFubmVsKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQ1Ny1cXHRzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqbXZpZiA9IChzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqKXZpZi1cXHUwMDNlZHJ2X3ByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjQ1ODpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQ1OS1cXHRpbnQgZXJyO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTQ2OD1zdGF0aWMgaW50IG10NzkyMV9jYW5jZWxfcmVtYWluX29uX2NoYW5uZWwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDcxLVxcdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVxcdTAwM2VkcnZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NDcyOlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDczLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTQ3Nz1pbnQgbXQ3OTIxX3NldF9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqbXBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDc4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NDc5OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtcGh5LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00ODAtXFx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IHBoeS1cXHUwMDNlZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTYzND1zdGF0aWMgaW50IG10NzkyMV9jb25maWcoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIGludCByYWRpb19pZHgsIHUzMiBjaGFuZ2VkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTYzNi1cXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gbXQ3OTJ4X2h3X2Rldihodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjYzNzpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTYzOC1cXHRpbnQgcmV0ID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz02OTU9c3RhdGljIHZvaWQgbXQ3OTIxX2Jzc19pbmZvX2NoYW5nZWQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNjk5LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NzAwOlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNzAxLVxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz03NjY9bXQ3OTIxX3JlZ2Rfc2V0XzZnaHpfcG93ZXJfdHlwZShzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLCBib29sIGlzX2FkZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy03NjgtXFx0c3RydWN0IG10NzkyeF92aWYgKm12aWYgPSAoc3RydWN0IG10NzkyeF92aWYgKil2aWYtXFx1MDAzZWRydl9wcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo3Njk6XFx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG12aWYtXFx1MDAzZXBoeTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNzcwLVxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBwaHktXFx1MDAzZWRldjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xMDEzPXZvaWQgbXQ3OTIxX3NjYW5fd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTEwMTQte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoxMDE1OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTEwMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjEwMTc6XFx0cGh5ID0gKHN0cnVjdCBtdDc5MnhfcGh5ICopY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBtdDc5MnhfcGh5LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMDE4LVxcdFxcdFxcdFxcdFxcdFxcdHNjYW5fd29yay53b3JrKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xMTE3PW10NzkyMV9zZXRfYW50ZW5uYShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgaW50IHJhZGlvX2lkeCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMTIwLVxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MTEyMTpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTExMjItXFx0aW50IG1heF9uc3MgPSBod2VpZ2h0OChody1cXHUwMDNld2lwaHktXFx1MDAzZWF2YWlsYWJsZV9hbnRlbm5hc190eCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MTE0ND1zdGF0aWMgaW50IG10NzkyMV9zdXNwZW5kKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTExNDctXFx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IG10NzkyeF9od19kZXYoaHcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoxMTQ4OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTE0OS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xMTY5PXN0YXRpYyBpbnQgbXQ3OTIxX3Jlc3VtZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMTcxLVxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MTE3MjpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTExNzMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MTMzND1tdDc5MjFfc3RhcnRfYXAoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTMzNy1cXHRzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqbXZpZiA9IChzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqKXZpZi1cXHUwMDNlZHJ2X3ByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjEzMzg6XFx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG10NzkyeF9od19waHkoaHcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMzM5LVxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xMzYyPW10NzkyMV9zdG9wX2FwKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTEzNjUtXFx0c3RydWN0IG10NzkyeF92aWYgKm12aWYgPSAoc3RydWN0IG10NzkyeF92aWYgKil2aWYtXFx1MDAzZWRydl9wcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoxMzY2OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTM2Ny1cXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gbXQ3OTJ4X2h3X2Rldihodyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MTQwND1tdDc5MjFfY2hhbmdlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTQwOC1cXHRzdHJ1Y3QgbXQ3OTJ4X2NoYW5jdHggKm1jdHggPSAoc3RydWN0IG10NzkyeF9jaGFuY3R4ICopY3R4LVxcdTAwM2VkcnZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MTQwOTpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTE0MTAtXFx0c3RydWN0IGllZWU4MDIxMV92aWYgKnZpZjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xNTM2PXN0YXRpYyB2b2lkIG10NzkyMV9yZmtpbGxfcG9sbChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTUzNy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjE1Mzg6XFx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG10NzkyeF9od19waHkoaHcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xNTM5LVxcdGludCByZXQgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmM9MTYzPW10NzkyMV9tY3Vfc2Nhbl9ldmVudChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtMTY1LVxcdHN0cnVjdCBtdDc2X3BoeSAqbXBoeSA9IFxcdTAwMjZkZXYtXFx1MDAzZW10NzYucGh5O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jOjE2NjpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXBoeS1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYy0xNjctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYz00MTA9c3RhdGljIGludCBtdDc5MjFfbG9hZF9jbGMoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgY29uc3QgY2hhciAqZndfbmFtZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTQxNS1cXHRzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYgPSBcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jOjQxNjpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gXFx1MDAyNmRldi1cXHUwMDNlcGh5O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTQxNy1cXHRjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmM9NTIzPXN0YXRpYyB2b2lkIG10NzkyMV9tY3VfcGFyc2VfcGh5X2NhcChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTU1My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYzo1NTQ6c3RhdGljIGludCBtdDc5MjFfbWN1X2dldF9uaWNfY2FwYWJpbGl0eShzdHJ1Y3QgbXQ3OTJ4X3BoeSAqbXBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYy01NTUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmM9NjcwPWludCBtdDc5MjFfbWN1X3NldF90eChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtNzYzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jOjc2NDppbnQgbXQ3OTIxX21jdV9zZXRfcm9jKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksIHN0cnVjdCBtdDc5MnhfdmlmICp2aWYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtNzY1LVxcdFxcdCAgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5uZWwgKmNoYW4sIGludCBkdXJhdGlvbixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTgzMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYzo4MzE6aW50IG10NzkyMV9tY3VfYWJvcnRfcm9jKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksIHN0cnVjdCBtdDc5MnhfdmlmICp2aWYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtODMyLVxcdFxcdFxcdCB1OCB0b2tlbl9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTg2MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYzo4NjE6aW50IG10NzkyMV9tY3Vfc2V0X2NoYW5faW5mbyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBpbnQgY21kKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTg2Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYz0xMzk4PWludCBtdDc5MjFfbWN1X3NldF9jbGMoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdTggKmFscGhhMixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTE0MDAte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jOjE0MDE6XFx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IChzdHJ1Y3QgbXQ3OTJ4X3BoeSAqKVxcdTAwMjZkZXYtXFx1MDAzZXBoeTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYy0xNDAyLVxcdGludCBpLCByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYy0xNDE5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jOjE0MjA6aW50IG10NzkyMV9tY3VfZ2V0X3RlbXBlcmF0dXJlKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtMTQyMS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYy0xNDM2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jOjE0Mzc6aW50IG10NzkyMV9tY3Vfd2ZfcmZfcGluX2N0cmwoc3RydWN0IG10NzkyeF9waHkgKnBoeSwgdTggYWN0aW9uKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTE0Mzgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmg9MjAyPXUzMiBtdDc5MjFfcmVnX21hcChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB1MzIgYWRkcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMjAzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oOjIwNDppbnQgX19tdDc5MjFfc3RhcnQoc3RydWN0IG10NzkyeF9waHkgKnBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMjA1LWludCBtdDc5MjFfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmg9MjExPWludCBtdDc5MjFfbWN1X3N0YV91cGRhdGUoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oLTIxMy1cXHRcXHRcXHQgIGVudW0gbXQ3Nl9zdGFfaW5mb19zdGF0ZSBzdGF0ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmg6MjE0OmludCBtdDc5MjFfbWN1X3NldF9jaGFuX2luZm8oc3RydWN0IG10NzkyeF9waHkgKnBoeSwgaW50IGNtZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMjE1LWludCBtdDc5MjFfbWN1X3NldF90eChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaD0yMTY9aW50IG10NzkyMV9tY3Vfc2V0X2VlcHJvbShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaDoyMTc6aW50IG10NzkyMV9tY3VfZ2V0X3J4X3JhdGUoc3RydWN0IG10NzkyeF9waHkgKnBoeSwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaC0yMTgtXFx0XFx0XFx0ICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwgc3RydWN0IHJhdGVfaW5mbyAqcmF0ZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaD0yMjM9aW50IG10NzkyMV9tY3VfcmFkaW9fbGVkX2N0cmwoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdTggdmFsdWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oOjIyNDppbnQgbXQ3OTIxX21jdV93Zl9yZl9waW5fY3RybChzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCB1OCBhY3Rpb24pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oLTIyNS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oPTI4MD12b2lkIG10NzkyMV9zdGF0c193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmg6MjgxOnZvaWQgbXQ3OTIxX3NldF9zdHJlYW1faGVfY2FwcyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaC0yODItaW50IG10NzkyMV9pbml0X2RlYnVnZnMoc3RydWN0IG10NzkyeF9kZXYgKmRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaD0zMjQ9aW50IG10NzkyMV9tY3VfY29uZmlnX3NuaWZmZXIoc3RydWN0IG10NzkyeF92aWYgKnZpZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaC0zMjUtXFx0XFx0XFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmg6MzI2OmludCBtdDc5MjFfbWN1X2dldF90ZW1wZXJhdHVyZShzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaC0zMjctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaD0zNDQ9aW50IG10NzkyMV9tY3Vfc2V0X2NsYyhzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB1OCAqYWxwaGEyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oLTM0NS1cXHRcXHQgICAgICAgZW51bSBlbnZpcm9ubWVudF9jYXAgZW52X2NhcCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmg6MzQ2OmludCBtdDc5MjFfbWN1X3NldF9yb2Moc3RydWN0IG10NzkyeF9waHkgKnBoeSwgc3RydWN0IG10NzkyeF92aWYgKnZpZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaC0zNDctXFx0XFx0ICAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbm5lbCAqY2hhbiwgaW50IGR1cmF0aW9uLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oLTM0OC1cXHRcXHQgICAgICAgZW51bSBtdDc5MjFfcm9jX3JlcSB0eXBlLCB1OCB0b2tlbl9pZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmg6MzQ5OmludCBtdDc5MjFfbWN1X2Fib3J0X3JvYyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqdmlmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oLTM1MC1cXHRcXHRcXHQgdTggdG9rZW5faWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jPTE1MD1tdDc5MjFfcmVnZF9pc192YWxpZF9hbHBoYTIoY29uc3QgY2hhciAqYWxwaGEyKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jLTE2My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmM6MTY0OmludCBtdDc5MjFfcmVnZF9jaGFuZ2Uoc3RydWN0IG10NzkyeF9waHkgKnBoeSwgY2hhciAqYWxwaGEyKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuYy0xNjUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jLTE5MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmM6MTkyOmludCBtdDc5MjFfcmVnZF9pbml0KHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jLTE5My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmg9MTU9Ym9vbCBtdDc5MjFfcmVnZF9jbGNfc3VwcG9ydGVkKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuaDoxNjppbnQgbXQ3OTIxX3JlZ2RfY2hhbmdlKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksIGNoYXIgKmFscGhhMik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5oOjE3OmludCBtdDc5MjFfcmVnZF9pbml0KHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuaC0xOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3Rlc3Rtb2RlLmM9MTExPWludCBtdDc5MjFfdGVzdG1vZGVfY21kKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdGVzdG1vZGUuYy0xMTUtXFx0c3RydWN0IG10NzZfcGh5ICptcGh5ID0gaHctXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdGVzdG1vZGUuYzoxMTY6XFx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG1waHktXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdGVzdG1vZGUuYy0xMTctXFx0aW50IGVycjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3Rlc3Rtb2RlLmM9MTQ4PWludCBtdDc5MjFfdGVzdG1vZGVfZHVtcChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IHNrX2J1ZmYgKm1zZyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3Rlc3Rtb2RlLmMtMTUyLVxcdHN0cnVjdCBtdDc2X3BoeSAqbXBoeSA9IGh3LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3Rlc3Rtb2RlLmM6MTUzOlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtcGh5LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3Rlc3Rtb2RlLmMtMTU0LVxcdGludCBlcnI7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM9MTQ9c3RhdGljIHNzaXplX3QgbXQ3OTI1X3RoZXJtYWxfdGVtcF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xOS1cXHRjYXNlIDA6IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjA6XFx0XFx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yMS1cXHRcXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqbWRldiA9IHBoeS1cXHUwMDNlZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jPTQzPUFUVFJJQlVURV9HUk9VUFMobXQ3OTI1X2h3bW9uKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtNDQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjQ1OnN0YXRpYyBpbnQgbXQ3OTI1X3RoZXJtYWxfaW5pdChzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy00Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz0zNTk9bXQ3OTI1X21hY19maWxsX3J4KHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0zNjctXFx0c3RydWN0IG10NzZfcGh5ICptcGh5ID0gXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5waHk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MzY4OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBcXHUwMDI2ZGV2LVxcdTAwM2VwaHk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMzY5LVxcdHN0cnVjdCBpZWVlODAyMTFfc3VwcG9ydGVkX2JhbmQgKnNiYW5kO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTE1PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjE2Om10NzkyNV9pbml0X2hlX2NhcHMoc3RydWN0IG10NzkyeF9waHkgKnBoeSwgZW51bSBubDgwMjExX2JhbmQgYmFuZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTctXFx0XFx0ICAgIHN0cnVjdCBpZWVlODAyMTFfc2JhbmRfaWZ0eXBlX2RhdGEgKmRhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MTYwPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjE2MTptdDc5MjVfaW5pdF9laHRfY2FwcyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBlbnVtIG5sODAyMTFfYmFuZCBiYW5kLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xNjItXFx0XFx0ICAgICBzdHJ1Y3QgaWVlZTgwMjExX3NiYW5kX2lmdHlwZV9kYXRhICpkYXRhKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTI2My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MjY0OmludCBtdDc5MjVfaW5pdF9tbG9fY2FwcyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0yNjUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTI5NT1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoyOTY6X19tdDc5MjVfc2V0X3N0cmVhbV9oZV9laHRfY2FwcyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0yOTctXFx0XFx0XFx0XFx0c3RydWN0IGllZWU4MDIxMV9zdXBwb3J0ZWRfYmFuZCAqc2JhbmQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMzIxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzozMjI6dm9pZCBtdDc5MjVfc2V0X3N0cmVhbV9oZV9laHRfY2FwcyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0zMjMte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTMzNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MzM3OmludCBfX210NzkyNV9zdGFydChzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0zMzgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTM2Mz1zdGF0aWMgaW50IG10NzkyNV9zdGFydChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMzY0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MzY1OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMzY2LVxcdGludCBlcnI7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9NDUxPW10NzkyNV9hZGRfaW50ZXJmYWNlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTQ1NC1cXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gbXQ3OTJ4X2h3X2Rldihodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjQ1NTpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTQ1Ni1cXHRpbnQgcmV0ID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz00ODM9c3RhdGljIHZvaWQgbXQ3OTI1X3JvY19pdGVyKHZvaWQgKnByaXYsIHU4ICptYWMsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNDg2LVxcdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVxcdTAwM2VkcnZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6NDg3OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy00ODgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9NDkyPXZvaWQgbXQ3OTI1X3JvY19hYm9ydF9zeW5jKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTQ5My17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjQ5NDpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gXFx1MDAyNmRldi1cXHUwMDNlcGh5O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy00OTUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9NTA5PXZvaWQgbXQ3OTI1X3JvY193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNTEwLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6NTExOlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTUxMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6NTEzOlxcdHBoeSA9IChzdHJ1Y3QgbXQ3OTJ4X3BoeSAqKWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgbXQ3OTJ4X3BoeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNTE0LVxcdFxcdFxcdFxcdFxcdFxcdHJvY193b3JrKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy01MjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjUyNzpzdGF0aWMgaW50IG10NzkyNV9hYm9ydF9yb2Moc3RydWN0IG10NzkyeF9waHkgKnBoeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNTI4LVxcdFxcdFxcdCAgICBzdHJ1Y3QgbXQ3OTJ4X2Jzc19jb25mICptY29uZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy01NDItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjU0MzpzdGF0aWMgaW50IG10NzkyNV9zZXRfcm9jKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTU0NC1cXHRcXHRcXHQgIHN0cnVjdCBtdDc5MnhfYnNzX2NvbmYgKm1jb25mLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTU3Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6NTczOnN0YXRpYyBpbnQgbXQ3OTI1X3NldF9tbG9fcm9jKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTU3NC1cXHRcXHRcXHQgICAgICBzdHJ1Y3QgbXQ3OTJ4X2Jzc19jb25mICptY29uZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz02MDA9c3RhdGljIGludCBtdDc5MjVfcmVtYWluX29uX2NoYW5uZWwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNjA2LVxcdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVxcdTAwM2VkcnZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6NjA3OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNjA4LVxcdGludCBlcnI7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9NjE4PXN0YXRpYyBpbnQgbXQ3OTI1X2NhbmNlbF9yZW1haW5fb25fY2hhbm5lbChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy02MjEtXFx0c3RydWN0IG10NzkyeF92aWYgKm12aWYgPSAoc3RydWN0IG10NzkyeF92aWYgKil2aWYtXFx1MDAzZWRydl9wcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzo2MjI6XFx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG10NzkyeF9od19waHkoaHcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy02MjMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9NjI3PXN0YXRpYyBpbnQgbXQ3OTI1X3NldF9saW5rX2tleShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgZW51bSBzZXRfa2V5X2NtZCBjbWQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNjcxLVxcdGlmIChjbWQgPT0gU0VUX0tFWSBcXHUwMDI2XFx1MDAyNiAhbWNvbmYtXFx1MDAzZW10NzYuY2lwaGVyKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjY3MjpcXHRcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTY3My1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz04MzA9c3RhdGljIHZvaWQgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXIoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtODM1LVxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6ODM2OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtODM3LVxcdHUzMiBmbGFncyA9IE1UNzkyNV9GSUxURVJfRU5BQkxFO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTE0Nzc9dm9pZCBtdDc5MjVfc2Nhbl93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTQ3OC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjE0Nzk6XFx0c3RydWN0IG10NzkyeF9waHkgKnBoeTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTQ4MC1cXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE0ODItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjE0ODM6XFx0cGh5ID0gKHN0cnVjdCBtdDc5MnhfcGh5ICopY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBtdDc5MnhfcGh5LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xNDg0LVxcdFxcdFxcdFxcdFxcdFxcdHNjYW5fd29yay53b3JrKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0xNjA0PW10NzkyNV9zZXRfYW50ZW5uYShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgaW50IHJhZGlvX2lkeCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xNjA3LVxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTYwODpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE2MDktXFx0aW50IG1heF9uc3MgPSBod2VpZ2h0OChody1cXHUwMDNld2lwaHktXFx1MDAzZWF2YWlsYWJsZV9hbnRlbm5hc190eCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MTYzMj1zdGF0aWMgaW50IG10NzkyNV9zdXNwZW5kKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE2MzUtXFx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IG10NzkyeF9od19kZXYoaHcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxNjM2OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTYzNy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0xNjU3PXN0YXRpYyBpbnQgbXQ3OTI1X3Jlc3VtZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xNjU5LVxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTY2MDpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE2NjEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MTkzNj1tdDc5MjVfY2hhbmdlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTk0MC1cXHRzdHJ1Y3QgbXQ3OTJ4X2NoYW5jdHggKm1jdHggPSAoc3RydWN0IG10NzkyeF9jaGFuY3R4ICopY3R4LVxcdTAwM2VkcnZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTk0MTpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE5NDItXFx0c3RydWN0IG10NzkyeF9ic3NfY29uZiAqbWNvbmY7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MjA2Mz1zdGF0aWMgdm9pZCBtdDc5MjVfbGlua19pbmZvX2NoYW5nZWQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMjA2OC1cXHRzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqbXZpZiA9IChzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqKXZpZi1cXHUwMDNlZHJ2X3ByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjIwNjk6XFx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG10NzkyeF9od19waHkoaHcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0yMDcwLVxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0yMTIyPW10NzkyNV9jaGFuZ2VfdmlmX2xpbmtzKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTIxMzEtXFx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IG10NzkyeF9od19kZXYoaHcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoyMTMyOlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMjEzMy1cXHRzdHJ1Y3QgaWVlZTgwMjExX2Jzc19jb25mICpsaW5rX2NvbmY7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MjM1Mz1zdGF0aWMgdm9pZCBtdDc5MjVfcmZraWxsX3BvbGwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTIzNTQte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoyMzU1OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMjM1Ni1cXHRpbnQgcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM9NDA2PW10NzkyNV9tY3Vfc2Nhbl9ldmVudChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtNDA4LVxcdHN0cnVjdCBtdDc2X3BoeSAqbXBoeSA9IFxcdTAwMjZkZXYtXFx1MDAzZW10NzYucGh5O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jOjQwOTpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXBoeS1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy00MTAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYz03OTg9c3RhdGljIGludCBtdDc5MjVfbG9hZF9jbGMoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgY29uc3QgY2hhciAqZndfbmFtZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTgwMy1cXHRzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYgPSBcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jOjgwNDpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gXFx1MDAyNmRldi1cXHUwMDNlcGh5O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTgwNS1cXHRjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM9ODg4PWludCBtdDc5MjVfbWN1X2Z3X2xvZ18yX2hvc3Qoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdTggY3RybClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTkwOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzo5MTA6aW50IG10NzkyNV9tY3VfZ2V0X3RlbXBlcmF0dXJlKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtOTExLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jPTEzMjc9aW50IG10NzkyNV9tY3VfYWRkX2tleShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTEzNTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM6MTM1MjppbnQgbXQ3OTI1X21jdV9zZXRfbWxvX3JvYyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3OTJ4X2Jzc19jb25mICptY29uZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0xMzUzLVxcdFxcdFxcdCAgIHUxNiBzZWxfbGlua3MsIGludCBkdXJhdGlvbiwgdTggdG9rZW5faWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0xNDU1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jOjE0NTY6aW50IG10NzkyNV9tY3Vfc2V0X3JvYyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3OTJ4X2Jzc19jb25mICptY29uZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0xNDU3LVxcdFxcdCAgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5uZWwgKmNoYW4sIGludCBkdXJhdGlvbixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTE1MDQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM6MTUwNTppbnQgbXQ3OTI1X21jdV9hYm9ydF9yb2Moc3RydWN0IG10NzkyeF9waHkgKnBoeSwgc3RydWN0IG10NzkyeF9ic3NfY29uZiAqbWNvbmYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMTUwNi1cXHRcXHRcXHQgdTggdG9rZW5faWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYz0yNjcyPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM6MjY3MzptdDc5MjVfbWN1X2Jzc19ibWNfdGx2KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMjY3NC1cXHRcXHQgICAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jPTI3MDI9bXQ3OTI1X21jdV9ic3NfbWxkX3RsdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMjcwNy1cXHRzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqbXZpZiA9IChzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqKWxpbmtfY29uZi1cXHUwMDNldmlmLVxcdTAwM2VkcnZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzoyNzA4OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdmlmLVxcdTAwM2VwaHk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMjcwOS1cXHRzdHJ1Y3QgYnNzX21sZF90bHYgKm1sZDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jPTI3NjY9bXQ3OTI1X21jdV9ic3NfaGVfdGx2KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBpZWVlODAyMTFfYnNzX2NvbmYgKmxpbmtfY29uZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzoyNzY3OlxcdFxcdCAgICAgIHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMjc2OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYz0yODEwPW10NzkyNV9tY3VfYnNzX2lmc190bHYoc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTI4MTMtXFx0c3RydWN0IG10NzkyeF92aWYgKm12aWYgPSAoc3RydWN0IG10NzkyeF92aWYgKilsaW5rX2NvbmYtXFx1MDAzZXZpZi1cXHUwMDNlZHJ2X3ByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM6MjgxNDpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXZpZi1cXHUwMDNlcGh5O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTI4MTUtXFx0c3RydWN0IGJzc19pZnNfdGltZV90bHYgKmlmc190aW1lO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMjgyMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzoyODI0OmludCBtdDc5MjVfbWN1X3NldF90aW1pbmcoc3RydWN0IG10NzkyeF9waHkgKnBoeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0yODI1LVxcdFxcdFxcdCAgc3RydWN0IGllZWU4MDIxMV9ic3NfY29uZiAqbGlua19jb25mKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM9Mjg0Mj12b2lkIG10NzkyNV9tY3VfZGVsX2RldihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0yODk3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jOjI4OTg6aW50IG10NzkyNV9tY3VfYWRkX2Jzc19pbmZvX3N0YShzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTI4OTktXFx0XFx0XFx0XFx0c3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTI5MzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM6Mjk0MDppbnQgbXQ3OTI1X21jdV9hZGRfYnNzX2luZm8oc3RydWN0IG10NzkyeF9waHkgKnBoeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0yOTQxLVxcdFxcdFxcdCAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHhfY29uZiAqY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM9MzUzMT1pbnQgbXQ3OTI1X21jdV9zZXRfY2xjKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHU4ICphbHBoYTIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0zNTMzLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzozNTM0OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSAoc3RydWN0IG10NzkyeF9waHkgKilcXHUwMDI2ZGV2LVxcdTAwM2VwaHk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMzUzNS1cXHRpbnQgaSwgcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM9MzY0OD1FWFBPUlRfU1lNQk9MX0dQTChtdDc5MjVfbWN1X2ZpbGxfbWVzc2FnZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMzY0OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzozNjUwOmludCBtdDc5MjVfbWN1X3NldF9ydHNfdGhyZXNoKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksIHUzMiB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMzY1MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYy0zNjcxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jOjM2NzI6aW50IG10NzkyNV9tY3Vfc2V0X3JhZGlvX2VuKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksIGJvb2wgZW5hYmxlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21jdS5jLTM2NzMte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmM9Mzg3OD1pbnQgbXQ3OTI1X21jdV9zZXRfcmF0ZV90eHBvd2VyKHN0cnVjdCBtdDc2X3BoeSAqcGh5KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMzkwNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tY3UuYzozOTA4OmludCBtdDc5MjVfbWN1X3dmX3JmX3Bpbl9jdHJsKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWN1LmMtMzkwOS17XFxuLS1cXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjZUMTA6MDI6MDguNjE5MzA5MDc0WiIsIlNlcSI6MjUsIk5lc3RpbmciOjMsIlR5cGUiOiJsbG0iLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3MDY5MzA0ODYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgYXNzdW1pbmcgSSdtIGFscmVhZHkgZGVlcCBpbiB0aGUgd2VlZHMgd2l0aCBNVDc5MnggZHJpdmVyIGludGVybmFsczpcblxuKipEaXZpbmcgaW50byB0aGUgTVQ3OTJ4IFBIWSBTdHJ1Y3R1cmUqKlxuXG5BbHJpZ2h0LCBzbyB0aGUgYG10NzkyeF9waHlgIHN0cnVjdCBpcyBrZXkgaGVyZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IGl0J3MgYmVpbmcgaGFuZGxlZC4gSXQncyBlaXRoZXIgYSBkaXJlY3RseSBlbWJlZGRlZCBtZW1iZXIgd2l0aGluIHRoZSBgbXQ3OTJ4X2RldmAgc3RydWN0dXJlLCBvciBpdCdzIGJlaW5nIGFsbG9jYXRlZCBzZXBhcmF0ZWx5LCBhbmQgdGhlIHBvaW50ZXIgaXMgc3RvcmVkIGluIGBtdDc5MnhfZGV2YC4gVGhpcyBpcyBhIHByZXR0eSBzdGFuZGFyZCBwYXR0ZXJuLCBzbyBJIHdhbnQgdG8gY29uZmlybS4gVGhlIG5leHQgbG9naWNhbCBzdGVwLCBiZWZvcmUgSSBnbyBkZWVwZXIgaW50byB0aGUgY29kZSwgaXMgdG8gcXVpY2tseSByZWZyZXNoIG15IG1lbW9yeSBvbiB0aGUgYHN0cnVjdCBtdDc5MnhfZGV2YCBkZWZpbml0aW9uLiBLbm93aW5nIGhvdyBgbXQ3OTJ4X2RldmAgaXMgc3RydWN0dXJlZCBpcyBnb2luZyB0byBpbW1lZGlhdGVseSB0ZWxsIG1lIGhvdyB0byBhY2Nlc3MgdGhhdCBgbXQ3OTJ4X3BoeWAgaW5zdGFuY2UuIEl0IHdpbGwgc2F2ZSBhIGxvdCBvZiBkZWJ1Z2dpbmcgdGltZSBsYXRlciEgTGV0J3MgZ2V0IHRoYXQgZGVmaW5pdGlvbiB1cC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjEwMTcsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMjoxMi4zMjYyNDI4NTFaIiwiU2VxIjoyNiwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2NzY0MzU3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0cnVjdCBtdDc5MnhfZGV2IFxcXFx7XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzZcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaD0yMzM9c3RydWN0IG10NzkyeF9oaWZfb3BzIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4LmgtMjQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4Lmg6MjQxOnN0cnVjdCBtdDc5MnhfZGV2IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oLTI0Mi1cXHR1bmlvbiB7IC8qIG11c3QgYmUgZmlyc3QgKi9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjZUMTA6MDI6MTIuMzczMDExMTE4WiIsIlNlcSI6MjcsIk5lc3RpbmciOjMsIlR5cGUiOiJsbG0iLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3NTU0NDg3NTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyBpZiBJIHdlcmUgdGhpbmtpbmcgdGhlc2UgdGhvdWdodHM6XG5cbioqRGl2aW5nIGludG8gdGhlIE1UNzkyeCBEcml2ZXIgU3RydWN0dXJlKipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBhcmNoaXRlY3R1cmUgb2YgdGhpcyBNVDc5Mnggd2lyZWxlc3MgZHJpdmVyLiBUaGUgZmlyc3QgdGhpbmcgb24gbXkgbGlzdCBpcyB0byBkaXNzZWN0IHRoZSBgc3RydWN0IG10NzkyeF9kZXZgIGRhdGEgc3RydWN0dXJlLiBJdCdzIGRlZmluZWQgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4LmhgLCB3aGljaCBtYWtlcyBwZXJmZWN0IHNlbnNlLiBUaGlzIHN0cnVjdCBpcyBsaWtlbHkgdGhlIGNlbnRyYWwgaHViIGZvciByZXByZXNlbnRpbmcgdGhlIGRldmljZSdzIGhhcmR3YXJlIHN0YXRlIGFuZCByZXNvdXJjZXMgd2l0aGluIHRoZSBkcml2ZXIuIEkgZXhwZWN0IHRvIGZpbmQgY3JpdGljYWwgZGV2aWNlLXNwZWNpZmljIGluZm9ybWF0aW9uIGhlcmUg4oCTIHJlZ2lzdGVyIG1hcHBpbmdzLCBpbnRlcnJ1cHQgY29uZmlndXJhdGlvbnMsIGFuZCBwb2ludGVycyB0byBvdGhlciByZWxhdGVkIGRhdGEgc3RydWN0dXJlcy4gVGhpcyBpcyB0aGUgZW50cnkgcG9pbnQgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRoZSBkcml2ZXIgaW50ZXJhY3RzIHdpdGggdGhlIGhhcmR3YXJlLCBzbyBJIG5lZWQgdG8ga25vdyB0aGlzIGluc2lkZSBhbmQgb3V0LiBJdCdzIHRoZSBjb3JlIG9mIHRoZSB3aG9sZSBvcGVyYXRpb24uIExldCdzIHNlZSB3aGF0IHdlJ3ZlIGdvdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE0NjcsIk91dHB1dFRva2VucyI6NDgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMjoxNi4xMjg0NjIwMDJaIiwiU2VxIjoyOCwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTcxOTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaFwiLFxuICBcIkZpcnN0TGluZVwiOiAyNDAsXG4gIFwiTGluZUNvdW50XCI6IDUwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAyNDA6XFx0XFxuIDI0MTpcXHRzdHJ1Y3QgbXQ3OTJ4X2RldiB7XFxuIDI0MjpcXHRcXHR1bmlvbiB7IC8qIG11c3QgYmUgZmlyc3QgKi9cXG4gMjQzOlxcdFxcdFxcdHN0cnVjdCBtdDc2X2RldiBtdDc2O1xcbiAyNDQ6XFx0XFx0XFx0c3RydWN0IG10NzZfcGh5IG1waHk7XFxuIDI0NTpcXHRcXHR9O1xcbiAyNDY6XFx0XFxuIDI0NzpcXHRcXHRzdHJ1Y3QgbWFjX2FkZHJlc3MgbWFjYWRkcl9saXN0WzhdO1xcbiAyNDg6XFx0XFxuIDI0OTpcXHRcXHRjb25zdCBzdHJ1Y3QgbXQ3Nl9idXNfb3BzICpidXNfb3BzO1xcbiAyNTA6XFx0XFx0c3RydWN0IG10NzkyeF9waHkgcGh5O1xcbiAyNTE6XFx0XFxuIDI1MjpcXHRcXHRzdHJ1Y3Qgd29ya19zdHJ1Y3QgcmVzZXRfd29yaztcXG4gMjUzOlxcdFxcdGJvb2wgaHdfZnVsbF9yZXNldDoxO1xcbiAyNTQ6XFx0XFx0Ym9vbCBod19pbml0X2RvbmU6MTtcXG4gMjU1OlxcdFxcdGJvb2wgZndfYXNzZXJ0OjE7XFxuIDI1NjpcXHRcXHRib29sIGhhc19laHQ6MTtcXG4gMjU3OlxcdFxcdGJvb2wgcmVnZF91c2VyOjE7XFxuIDI1ODpcXHRcXHRib29sIHJlZ2RfaW5fcHJvZ3Jlc3M6MTtcXG4gMjU5OlxcdFxcdGJvb2wgYXNwbV9zdXBwb3J0ZWQ6MTtcXG4gMjYwOlxcdFxcdGJvb2wgaGlmX2lkbGU6MTtcXG4gMjYxOlxcdFxcdGJvb2wgaGlmX3Jlc3VtZWQ6MTtcXG4gMjYyOlxcdFxcdGJvb2wgcmVnZF9jaGFuZ2U6MTtcXG4gMjYzOlxcdFxcdHdhaXRfcXVldWVfaGVhZF90IHdhaXQ7XFxuIDI2NDpcXHRcXG4gMjY1OlxcdFxcdHN0cnVjdCB3b3JrX3N0cnVjdCBpbml0X3dvcms7XFxuIDI2NjpcXHRcXHRzdHJ1Y3Qgd29ya19zdHJ1Y3QgdXNiX3Jlc2V0X3dvcms7XFxuIDI2NzpcXHRcXHRhdG9taWNfdCB1c2JfcmVzZXRfcGVuZGluZztcXG4gMjY4OlxcdFxcbiAyNjk6XFx0XFx0dTggZndfZGVidWc7XFxuIDI3MDpcXHRcXHR1OCBmd19mZWF0dXJlcztcXG4gMjcxOlxcdFxcbiAyNzI6XFx0XFx0c3RydWN0IG10NzZfY29ubmFjX3BtIHBtO1xcbiAyNzM6XFx0XFx0c3RydWN0IG10NzZfY29ubmFjX2NvcmVkdW1wIGNvcmVkdW1wO1xcbiAyNzQ6XFx0XFx0Y29uc3Qgc3RydWN0IG10NzkyeF9oaWZfb3BzICpoaWZfb3BzO1xcbiAyNzU6XFx0XFx0Y29uc3Qgc3RydWN0IG10NzkyeF9pcnFfbWFwICppcnFfbWFwO1xcbiAyNzY6XFx0XFxuIDI3NzpcXHRcXHRzdHJ1Y3Qgd29ya19zdHJ1Y3QgaXB2Nl9uc193b3JrO1xcbiAyNzg6XFx0XFx0c3RydWN0IGRlbGF5ZWRfd29yayBtbG9fcG1fd29yaztcXG4gMjc5OlxcdFxcdC8qIElQdjYgYWRkcmVzc2VzIGZvciBXb1dMQU4gKi9cXG4gMjgwOlxcdFxcdHN0cnVjdCBza19idWZmX2hlYWQgaXB2Nl9uc19saXN0O1xcbiAyODE6XFx0XFxuIDI4MjpcXHRcXHRlbnVtIGVudmlyb25tZW50X2NhcCBjb3VudHJ5X2llX2VudjtcXG4gMjgzOlxcdFxcdHUzMiBiYWNrdXBfbDE7XFxuIDI4NDpcXHRcXHR1MzIgYmFja3VwX2wyO1xcbiAyODU6XFx0XFxuIDI4NjpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHhfY29uZiAqbmV3X2N0eDtcXG4gMjg3OlxcdH07XFxuIDI4ODpcXHRcXG4gMjg5OlxcdHN0YXRpYyBpbmxpbmUgc3RydWN0IG10NzkyeF9ic3NfY29uZiAqXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDEwOjAyOjE2LjEyODU2NTAwMloiLCJTZXEiOjI5LCJOZXN0aW5nIjozLCJUeXBlIjoibGxtIiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NzAxMjE3NzYxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHByZXNlbnRlZCBhcyBhIGZpcnN0LXBlcnNvbiBleHBlcnQgc3VtbWFyeTpcblxuKipEaWdnaW5nIGludG8gdGhlIE1UNzkyeCBQSFkgU3RydWN0dXJlKipcblxuQWxyaWdodCwgbGV0J3Mgc2VlLi4uSSdtIGxvb2tpbmcgYXQgdGhpcyBNVDc5MnggZHJpdmVyLCBhbmQgSSBzZWUgdGhhdCB0aGlzIGBzdHJ1Y3QgbXQ3OTJ4X3BoeSBwaHk7YCBpcyBuZXN0ZWQgcmlnaHQgaW5zaWRlIGBzdHJ1Y3QgbXQ3OTJ4X2RldmAuIE1ha2VzIHBlcmZlY3Qgc2Vuc2U7IHRoZSBQSFkgaXMgY2xlYXJseSBhIGZ1bmRhbWVudGFsIGNvbXBvbmVudCBvZiB0aGUgZGV2aWNlLiBNeSBxdWVzdGlvbiBub3cgaXMsIGhvdyBpcyB0aGUgd2hvbGUgYHN0cnVjdCBtdDc5MnhfZGV2YCBhbGxvY2F0ZWQ/IElzIGl0IG9uIHRoZSBzdGFjaywgaW4ga2VybmVsIG1lbW9yeSB2aWEgYGttYWxsb2NgLCBvciBzb21ldGhpbmcgZWxzZSBlbnRpcmVseT8gS25vd2luZyB0aGUgYWxsb2NhdGlvbiBtZXRob2QgaXMgY3J1Y2lhbCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgbGlmZXRpbWUgbWFuYWdlbWVudCBvZiB0aGUgYHBoeWAgc3RydWN0dXJlIHdpdGhpbiBpdC4gQXJlIHdlIGRlYWxpbmcgd2l0aCBhIHNpbmdsZSwgc3RhdGljYWxseSBhbGxvY2F0ZWQgZGV2aWNlLCBvciBkbyB3ZSBoYXZlIHRoZSBhYmlsaXR5IHRvIGNyZWF0ZSBtdWx0aXBsZSBkZXZpY2VzIGR5bmFtaWNhbGx5PyBUaGUgY29udGV4dCB3aWxsIGJlIGltcG9ydGFudCBmb3IgdGhpbmdzIGxpa2UgcmVzb3VyY2UgbWFuYWdlbWVudCwgZHJpdmVyIGluaXRpYWxpemF0aW9uLCBhbmQgc2h1dGRvd24gc2VxdWVuY2VzLiBJIG5lZWQgdG8gdHJhY2UgYmFjayB0aHJvdWdoIHRoZSBjb2RlLCBwcm9iYWJseSBzdGFydGluZyB3aXRoIHRoZSBkZXZpY2UgcHJvYmUgZnVuY3Rpb24sIHRvIGZpZ3VyZSBvdXQgd2hlcmUgdGhhdCBgbXQ3OTJ4X2RldmAgZ2V0cyBpdHMgbWVtb3J5LiBUaGF0IHdpbGwgbGlrZWx5IHJldmVhbCB0aGUgYmlnZ2VyIHBpY3R1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyNDkyLCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDAsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMjoyMC44Mjk3OTA1MzNaIiwiU2VxIjozMCwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5MzcwNTU3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImFsbG9jLiptdDc5MnhfZGV2XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzZcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaD00NDU9dm9pZCBtdDc5MnhfZG1hX2NsZWFudXAoc3RydWN0IG10NzkyeF9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaDo0NDY6aW50IG10NzkyeF9kbWFfYWxsb2NfcXVldWVzKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaC00NDctXFx0XFx0XFx0ICAgIGNvbnN0IHN0cnVjdCBtdDc5MnhfZG1hX2xheW91dCAqbGF5b3V0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jPTg4PUVYUE9SVF9TWU1CT0xfR1BMKG10NzkyeF9yeF9wb2xsX2NvbXBsZXRlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYy04OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYzo5MDppbnQgbXQ3OTJ4X2RtYV9hbGxvY19xdWV1ZXMoc3RydWN0IG10NzkyeF9kZXYgKmRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYy05MS1cXHRcXHRcXHQgICAgY29uc3Qgc3RydWN0IG10NzkyeF9kbWFfbGF5b3V0ICpsYXlvdXQpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDEwOjAyOjIwLjg3OTE2NjA3OVoiLCJTZXEiOjMxLCJOZXN0aW5nIjozLCJUeXBlIjoibGxtIiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MzMzMTkxMzUyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqRGl2aW5nIGludG8gYG10NzZfYWxsb2NfZGV2aWNlYCoqXG5cbk9rYXksIHRpbWUgdG8gZGlzc2VjdCBgbXQ3Nl9hbGxvY19kZXZpY2VgLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBleGFjdGx5IGhvdyB0aGlzIGZ1bmN0aW9uIGhhbmRsZXMgdGhlIGluaXRpYWxpemF0aW9uIG9mIGFuIE1UNzYtYmFzZWQgZGV2aWNlLiBTcGVjaWZpY2FsbHksIEknbSBpbnRlcmVzdGVkIGluIHRoZSByZXNvdXJjZSBhbGxvY2F0aW9uIHN0cmF0ZWd5IGhlcmUuIEkgc3VzcGVjdCBpdCdzIHJlc3BvbnNpYmxlIGZvciBncmFiYmluZyB0aGUgUENJIHJlc291cmNlcywgbGlrZWx5IGluY2x1ZGluZyB0aGUgQkFScywgaW50ZXJydXB0IGxpbmVzLCBhbmQgRE1BIGJ1ZmZlcnMgaWYgYXBwbGljYWJsZS4gSXQncyBwcm9iYWJseSBzZXR0aW5nIHVwIHRoZSBpbml0aWFsIHN0cnVjdHVyZXMsIGxpa2UgdGhlIGBzdHJ1Y3QgbXQ3Nl9kZXZgIGl0c2VsZiwgYW5kIGFzc29jaWF0aW5nIGl0IHdpdGggdGhlIFBDSSBkZXZpY2UgaW5mb3JtYXRpb24uIEkgd2FudCB0byBwYXkgY2xvc2UgYXR0ZW50aW9uIHRvIGFueSBlcnJvciBoYW5kbGluZy4gRG9lcyBpdCBncmFjZWZ1bGx5IGhhbmRsZSByZXNvdXJjZSBjb25mbGljdHM/IFdoYXQgYWJvdXQgcHJvYmluZyBmb3IgdGhlIHJpZ2h0IGhhcmR3YXJlIElEPyBJIG5lZWQgdG8gYmUgc3VyZSB0aGUgZnVuY3Rpb24ncyBjaGVja3MgYXJlIHJvYnVzdCwgZXNwZWNpYWxseSB3aGVuIGRlYWxpbmcgd2l0aCBkaWZmZXJlbnQgaGFyZHdhcmUgcmV2aXNpb25zIG9yIHZlbmRvci1zcGVjaWZpYyBudWFuY2VzLiBBbmQsIEkgZXhwZWN0IHRoZXJlIHRvIGJlIGNhbGxzIHRvIGFsbG9jYXRlIHRoZSBmaXJtd2FyZSBidWZmZXJzIHRvIGxvYWQgdGhlIGZpcm13YXJlIGxhdGVyLiBMZXTigJlzIGNvbmZpcm0gYWxsIG9mIHRoZXNlIHN1c3BpY2lvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMTUxLCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjZUMTA6MDI6MjYuMjEyMzYyMDkxWiIsIlNlcSI6MzIsIk5lc3RpbmciOjMsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NTE2NTU2NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc2X2FsbG9jX2RldmljZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYz02Njc9c3RydWN0IG10NzZfZGV2ICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmM6NjY4Om10NzZfYWxsb2NfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKnBkZXYsIHVuc2lnbmVkIGludCBzaXplLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy02NjktXFx0XFx0ICBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyAqb3BzLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTc0My19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjc0NDpFWFBPUlRfU1lNQk9MX0dQTChtdDc2X2FsbG9jX2RldmljZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTc0NS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oPTEzMDE9X19tdDc2X3djaWRfcHRyKHN0cnVjdCBtdDc2X2RldiAqZGV2LCB1MTYgaWR4KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTMwOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxMzEwOnN0cnVjdCBtdDc2X2RldiAqbXQ3Nl9hbGxvY19kZXZpY2Uoc3RydWN0IGRldmljZSAqcGRldiwgdW5zaWduZWQgaW50IHNpemUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTMxMS1cXHRcXHRcXHRcXHQgICBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyAqb3BzLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvcGNpLmM9MTU9bXQ3NnBjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvcGNpLmMtMzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvcGNpLmM6MzU6XFx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgXFx1MDAyNm10NzYwM19vcHMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvcGNpLmMtMzYtXFx0XFx0XFx0XFx0IFxcdTAwMjZtdDc2MDNfZHJ2X29wcyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9zb2MuYz0xMD1tdDc2X3dtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL3NvYy5jLTI1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL3NvYy5jOjI2OlxcdG1kZXYgPSBtdDc2X2FsbG9jX2RldmljZShcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBzaXplb2YoKmRldiksIFxcdTAwMjZtdDc2MDNfb3BzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL3NvYy5jLTI3LVxcdFxcdFxcdFxcdCBcXHUwMDI2bXQ3NjAzX2Rydl9vcHMpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbW1pby5jPTE2Nj1pbnQgbXQ3NjE1X21taW9fcHJvYmUoc3RydWN0IGRldmljZSAqcGRldiwgdm9pZCBfX2lvbWVtICptZW1fYmFzZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21taW8uYy0xOTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbW1pby5jOjE5NzpcXHRtZGV2ID0gbXQ3Nl9hbGxvY19kZXZpY2UocGRldiwgc2l6ZW9mKCpkZXYpLCBvcHMsIFxcdTAwMjZkcnZfb3BzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tbWlvLmMtMTk4LVxcdGlmICghbWRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYz03Nj1zdGF0aWMgaW50IG10NzY2M3NfcHJvYmUoc3RydWN0IHNkaW9fZnVuYyAqZnVuYyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYy0xMTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jOjExMjpcXHRtZGV2ID0gbXQ3Nl9hbGxvY19kZXZpY2UoXFx1MDAyNmZ1bmMtXFx1MDAzZWRldiwgc2l6ZW9mKCpkZXYpLCBvcHMsIFxcdTAwMjZkcnZfb3BzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvLmMtMTEzLVxcdGlmICghbWRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jPTExMj1zdGF0aWMgaW50IG10NzY2M3VfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMTQ4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jOjE0OTpcXHRtZGV2ID0gbXQ3Nl9hbGxvY19kZXZpY2UoXFx1MDAyNnVzYl9pbnRmLVxcdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgb3BzLCBcXHUwMDI2ZHJ2X29wcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMTUwLVxcdGlmICghbWRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jPTE1ND1tdDc2eDBlX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYy0xOTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmM6MTkyOlxcdG1kZXYgPSBtdDc2X2FsbG9jX2RldmljZShcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBzaXplb2YoKmRldiksIFxcdTAwMjZtdDc2eDBlX29wcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYy0xOTMtXFx0XFx0XFx0XFx0IFxcdTAwMjZkcnZfb3BzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jPTIxMz1zdGF0aWMgaW50IG10NzZ4MHVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMjM1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jOjIzNjpcXHRtZGV2ID0gbXQ3Nl9hbGxvY19kZXZpY2UoXFx1MDAyNnVzYl9pbnRmLVxcdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgXFx1MDAyNm10NzZ4MHVfb3BzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTIzNy1cXHRcXHRcXHRcXHQgXFx1MDAyNmRydl9vcHMpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM9MjA9bXQ3NngyZV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtNTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM6NTY6XFx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgXFx1MDAyNm10NzZ4Ml9vcHMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtNTctXFx0XFx0XFx0XFx0IFxcdTAwMjZkcnZfb3BzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jPTMyPXN0YXRpYyBpbnQgbXQ3NngydV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jLTUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jOjU0OlxcdG1kZXYgPSBtdDc2X2FsbG9jX2RldmljZShcXHUwMDI2aW50Zi1cXHUwMDNlZGV2LCBzaXplb2YoKmRldiksIFxcdTAwMjZtdDc2eDJ1X29wcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYy01NS1cXHRcXHRcXHRcXHQgXFx1MDAyNmRydl9vcHMpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jPTkxNz1zdHJ1Y3QgbXQ3OTE1X2RldiAqbXQ3OTE1X21taW9fcHJvYmUoc3RydWN0IGRldmljZSAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy05NDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjk0NDpcXHRtZGV2ID0gbXQ3Nl9hbGxvY19kZXZpY2UocGRldiwgc2l6ZW9mKCpkZXYpLCBcXHUwMDI2bXQ3OTE1X29wcywgXFx1MDAyNmRydl9vcHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy05NDUtXFx0aWYgKCFtZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmM9MjU5PXN0YXRpYyBpbnQgbXQ3OTIxX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jLTMzOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2kuYzozMzk6XFx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgb3BzLCBcXHUwMDI2ZHJ2X29wcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmMtMzQwLVxcdGlmICghbWRldikge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jPTkwPXN0YXRpYyBpbnQgbXQ3OTIxc19wcm9iZShzdHJ1Y3Qgc2Rpb19mdW5jICpmdW5jLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jLTEzNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvLmM6MTM4OlxcdG1kZXYgPSBtdDc2X2FsbG9jX2RldmljZShcXHUwMDI2ZnVuYy1cXHUwMDNlZGV2LCBzaXplb2YoKmRldiksIG9wcywgXFx1MDAyNmRydl9vcHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3NkaW8uYy0xMzktXFx0aWYgKCFtZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmM9MTUwPXN0YXRpYyBpbnQgbXQ3OTIxdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqdXNiX2ludGYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYy0xOTctXFx0b3BzLVxcdTAwM2VzdG9wID0gbXQ3OTJ4dV9zdG9wO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jOjE5ODpcXHRtZGV2ID0gbXQ3Nl9hbGxvY19kZXZpY2UoXFx1MDAyNnVzYl9pbnRmLVxcdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgb3BzLCBcXHUwMDI2ZHJ2X29wcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmMtMTk5LVxcdGlmICghbWRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jPTMxMz1zdGF0aWMgaW50IG10NzkyNV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYy0zOTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmM6Mzk5OlxcdG1kZXYgPSBtdDc2X2FsbG9jX2RldmljZShcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBzaXplb2YoKmRldiksIG9wcywgXFx1MDAyNmRydl9vcHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jLTQwMC1cXHRpZiAoIW1kZXYpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jPTE0Mz1zdGF0aWMgaW50IG10NzkyNXVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmMtMTkwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jOjE5MTpcXHRtZGV2ID0gbXQ3Nl9hbGxvY19kZXZpY2UoXFx1MDAyNnVzYl9pbnRmLVxcdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgb3BzLCBcXHUwMDI2ZHJ2X29wcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmMtMTkyLVxcdGlmICghbWRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz04MTY9c3RydWN0IG10Nzk5Nl9kZXYgKm10Nzk5Nl9tbWlvX3Byb2JlKHN0cnVjdCBkZXZpY2UgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODQ1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4NDY6XFx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKHBkZXYsIHNpemVvZigqZGV2KSwgXFx1MDAyNm10Nzk5Nl9vcHMsIFxcdTAwMjZkcnZfb3BzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODQ3LVxcdGlmICghbWRldilcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjZUMTA6MDI6MjYuMjY3NTcxNDU3WiIsIlNlcSI6MzMsIk5lc3RpbmciOjMsIlR5cGUiOiJsbG0iLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU3Nzk5NDM2MzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyB0aG91Z2ggSSdtIHRoaW5raW5nIHRocm91Z2ggdGhpcyBwcm9jZXNzOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBNVDc2IERldmljZSBBbGxvY2F0aW9uKipcblxuT2theSwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgTVQ3NiBkcml2ZXIgaXMgYWxsb2NhdGluZyBpdHMgZGV2aWNlIHN0cnVjdHVyZS4gUmlnaHQsIGxldCdzIHN0YXJ0IHdpdGggYG10NzZfYWxsb2NfZGV2aWNlYC4gSSBrbm93IHRoYXQncyB0aGUgZnVuY3Rpb24gdGhhdCBraWNrcyBvZmYgdGhlIGRldmljZSdzIGFsbG9jYXRpb24sIHNvIHRoYXQncyB3aGVyZSBJIG5lZWQgdG8gYmUuIExldCBtZSBncmFiIHRoZSBzb3VyY2UgY29kZSBmb3IgdGhhdCBmdW5jdGlvbiwgd2hpY2ggSSBiZWxpZXZlIGlzIGhhbmdpbmcgb3V0IGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmNgLiBUaW1lIHRvIGRpZyBpbiBhbmQgc2VlIHdoYXQncyBoYXBwZW5pbmcgdW5kZXIgdGhlIGhvb2QuIEkgZXhwZWN0IHRvIHNlZSBtZW1vcnkgYWxsb2NhdGlvbiBhbmQgc29tZSBmdW5kYW1lbnRhbCBkZXZpY2UgaW5pdGlhbGl6YXRpb24uIExldCdzIHNlZSBpZiBteSBpbml0aWFsIGFzc3VtcHRpb25zIGhvbGQgdHJ1ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjY2NzYsIk91dHB1dFRva2VucyI6NDksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMjozMi4wNDc1MTc2NzdaIiwiU2VxIjozNCwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE5NDgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuY1wiLFxuICBcIkZpcnN0TGluZVwiOiA2NjcsXG4gIFwiTGluZUNvdW50XCI6IDUwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiA2Njc6XFx0c3RydWN0IG10NzZfZGV2ICpcXG4gNjY4OlxcdG10NzZfYWxsb2NfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKnBkZXYsIHVuc2lnbmVkIGludCBzaXplLFxcbiA2Njk6XFx0XFx0XFx0ICBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyAqb3BzLFxcbiA2NzA6XFx0XFx0XFx0ICBjb25zdCBzdHJ1Y3QgbXQ3Nl9kcml2ZXJfb3BzICpkcnZfb3BzKVxcbiA2NzE6XFx0e1xcbiA2NzI6XFx0XFx0c3RydWN0IGllZWU4MDIxMV9odyAqaHc7XFxuIDY3MzpcXHRcXHRzdHJ1Y3QgbXQ3Nl9waHkgKnBoeTtcXG4gNjc0OlxcdFxcdHN0cnVjdCBtdDc2X2RldiAqZGV2O1xcbiA2NzU6XFx0XFx0aW50IGk7XFxuIDY3NjpcXHRcXG4gNjc3OlxcdFxcdGh3ID0gaWVlZTgwMjExX2FsbG9jX2h3KHNpemUsIG9wcyk7XFxuIDY3ODpcXHRcXHRpZiAoIWh3KVxcbiA2Nzk6XFx0XFx0XFx0cmV0dXJuIE5VTEw7XFxuIDY4MDpcXHRcXG4gNjgxOlxcdFxcdGRldiA9IGh3LVxcdTAwM2Vwcml2O1xcbiA2ODI6XFx0XFx0ZGV2LVxcdTAwM2VodyA9IGh3O1xcbiA2ODM6XFx0XFx0ZGV2LVxcdTAwM2VkZXYgPSBwZGV2O1xcbiA2ODQ6XFx0XFx0ZGV2LVxcdTAwM2VkcnYgPSBkcnZfb3BzO1xcbiA2ODU6XFx0XFx0ZGV2LVxcdTAwM2VkbWFfZGV2ID0gcGRldjtcXG4gNjg2OlxcdFxcbiA2ODc6XFx0XFx0cGh5ID0gXFx1MDAyNmRldi1cXHUwMDNlcGh5O1xcbiA2ODg6XFx0XFx0cGh5LVxcdTAwM2VkZXYgPSBkZXY7XFxuIDY4OTpcXHRcXHRwaHktXFx1MDAzZWh3ID0gaHc7XFxuIDY5MDpcXHRcXHRwaHktXFx1MDAzZWJhbmRfaWR4ID0gTVRfQkFORDA7XFxuIDY5MTpcXHRcXHRkZXYtXFx1MDAzZXBoeXNbcGh5LVxcdTAwM2ViYW5kX2lkeF0gPSBwaHk7XFxuIDY5MjpcXHRcXG4gNjkzOlxcdFxcdHNwaW5fbG9ja19pbml0KFxcdTAwMjZkZXYtXFx1MDAzZXJ4X2xvY2spO1xcbiA2OTQ6XFx0XFx0c3Bpbl9sb2NrX2luaXQoXFx1MDAyNmRldi1cXHUwMDNlbG9jayk7XFxuIDY5NTpcXHRcXHRzcGluX2xvY2tfaW5pdChcXHUwMDI2ZGV2LVxcdTAwM2VjY19sb2NrKTtcXG4gNjk2OlxcdFxcdHNwaW5fbG9ja19pbml0KFxcdTAwMjZkZXYtXFx1MDAzZXN0YXR1c19sb2NrKTtcXG4gNjk3OlxcdFxcdHNwaW5fbG9ja19pbml0KFxcdTAwMjZkZXYtXFx1MDAzZXdlZF9sb2NrKTtcXG4gNjk4OlxcdFxcdG11dGV4X2luaXQoXFx1MDAyNmRldi1cXHUwMDNlbXV0ZXgpO1xcbiA2OTk6XFx0XFx0aW5pdF93YWl0cXVldWVfaGVhZChcXHUwMDI2ZGV2LVxcdTAwM2V0eF93YWl0KTtcXG4gNzAwOlxcdFxcbiA3MDE6XFx0XFx0c2tiX3F1ZXVlX2hlYWRfaW5pdChcXHUwMDI2ZGV2LVxcdTAwM2VtY3UucmVzX3EpO1xcbiA3MDI6XFx0XFx0aW5pdF93YWl0cXVldWVfaGVhZChcXHUwMDI2ZGV2LVxcdTAwM2VtY3Uud2FpdCk7XFxuIDcwMzpcXHRcXHRtdXRleF9pbml0KFxcdTAwMjZkZXYtXFx1MDAzZW1jdS5tdXRleCk7XFxuIDcwNDpcXHRcXHRkZXYtXFx1MDAzZXR4X3dvcmtlci5mbiA9IG10NzZfdHhfd29ya2VyO1xcbiA3MDU6XFx0XFxuIDcwNjpcXHRcXHRody1cXHUwMDNld2lwaHktXFx1MDAzZWZsYWdzIHw9IFdJUEhZX0ZMQUdfSUJTU19SU047XFxuIDcwNzpcXHRcXHRody1cXHUwMDNld2lwaHktXFx1MDAzZWludGVyZmFjZV9tb2RlcyA9XFxuIDcwODpcXHRcXHRcXHRCSVQoTkw4MDIxMV9JRlRZUEVfU1RBVElPTikgfFxcbiA3MDk6XFx0XFx0XFx0QklUKE5MODAyMTFfSUZUWVBFX0FQKSB8XFxuIDcxMDpcXHQjaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG4gNzExOlxcdFxcdFxcdEJJVChOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UKSB8XFxuIDcxMjpcXHQjZW5kaWZcXG4gNzEzOlxcdFxcdFxcdEJJVChOTDgwMjExX0lGVFlQRV9QMlBfQ0xJRU5UKSB8XFxuIDcxNDpcXHRcXHRcXHRCSVQoTkw4MDIxMV9JRlRZUEVfUDJQX0dPKSB8XFxuIDcxNTpcXHRcXHRcXHRCSVQoTkw4MDIxMV9JRlRZUEVfQURIT0MpO1xcbiA3MTY6XFx0XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDEwOjAyOjMyLjA0NzYzODUyN1oiLCJTZXEiOjM1LCJOZXN0aW5nIjozLCJUeXBlIjoibGxtIiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDQ2OTUzMTExLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6XG5cbioqQ2hlY2tpbmcgdGhlIE1lbW9yeSBBbGxvY2F0aW9uIFN0cmF0ZWd5IGluIElFRUUgODAyLjExIEhhcmR3YXJlIEluaXRpYWxpemF0aW9uKipcblxuT2theSwgc28gYGllZWU4MDIxMV9hbGxvY19od2AgaGFzIGJlZW4gY2FsbGVkLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGRpZyBpbnRvIHRoZSBtZW1vcnkgYWxsb2NhdGlvbiBzdHJhdGVneSBiZWluZyB1c2VkIHdpdGhpbiB0aGlzIGZ1bmN0aW9uLiBUaGUgY3JpdGljYWwgcXVlc3Rpb24sIG9mIGNvdXJzZSwgaXMgd2hldGhlciBpdCBsZXZlcmFnZXMgYGt6YWxsb2NgLiBUaGUgdXNlIG9mIGBremFsbG9jYCBpcyBzb21ldGhpbmcgSSBwYXkgY2xvc2UgYXR0ZW50aW9uIHRvLCBlc3BlY2lhbGx5IGluIGtlcm5lbCBjb250ZXh0cyBsaWtlIHRoaXMuIEl0J3MgYSBrZXkgaW5kaWNhdG9yIG9mIHdoZXRoZXIgdGhlIGFsbG9jYXRlZCBtZW1vcnkgaXMgYmVpbmcgemVyb2VkIG91dC4gVW5kZXJzdGFuZGluZyB0aGlzIGlzIGNydWNpYWwgZm9yIHNldmVyYWwgcmVhc29uczogaXQgaW1wYWN0cyBzZWN1cml0eSBieSBwb3RlbnRpYWxseSBtaXRpZ2F0aW5nIGluZm9ybWF0aW9uIGxlYWtzLCBpbmZsdWVuY2VzIHBlcmZvcm1hbmNlIGJ5IHJlbW92aW5nIHRoZSBuZWVkIGZvciBleHBsaWNpdCBpbml0aWFsaXphdGlvbiwgYW5kIGNhbiBhbHNvIGFmZmVjdCBkZWJ1Z2dpbmcgZWZmb3J0cyBpZiB1bmluaXRpYWxpemVkIG1lbW9yeSBpcyB1bmV4cGVjdGVkbHkgdXNlZCBkb3duIHRoZSBsaW5lLiBJJ2xsIG5lZWQgdG8gY29uZmlybSB0aGF0IGBremFsbG9jYCAob3Igc29tZXRoaW5nIGVxdWFsbHkgcmVsaWFibGUpIGlzLCBpbiBmYWN0LCBiZWluZyBlbXBsb3llZCBoZXJlIHRvIG1hbmFnZSBtZW1vcnkgd2l0aGluIHRoaXMgY3J1Y2lhbCBJRUVFIDgwMi4xMSBoYXJkd2FyZSBpbml0aWFsaXphdGlvbiByb3V0aW5lLiBJZiBub3QsIEknbGwgbmVlZCB0byB1bmRlcnN0YW5kIHdoeSwgYW5kIHdoYXQgYWx0ZXJuYXRpdmVzIGFyZSBpbiBwbGFjZS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjc3ODMsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDEwOjAyOjM2LjA5NDU5NDM2OFoiLCJTZXEiOjM2LCJOZXN0aW5nIjozLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDc1NTQ4NDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaWVlZTgwMjExX2FsbG9jX2h3XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tYWM4MDIxMVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWFjODAyMTEvbWFpbi5jPTc3Nz1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV92aHRfY2FwIG1hYzgwMjExX3ZodF9jYXBhX21vZF9tYXNrID0ge1xcbi0tXFxubmV0L21hYzgwMjExL21haW4uYy03OTQtXFxubmV0L21hYzgwMjExL21haW4uYzo3OTU6c3RydWN0IGllZWU4MDIxMV9odyAqaWVlZTgwMjExX2FsbG9jX2h3X25tKHNpemVfdCBwcml2X2RhdGFfbGVuLFxcbm5ldC9tYWM4MDIxMS9tYWluLmMtNzk2LVxcdFxcdFxcdFxcdFxcdCAgIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzICpvcHMsXFxuLS1cXG5uZXQvbWFjODAyMTEvbWFpbi5jLTEwNTEtfVxcbm5ldC9tYWM4MDIxMS9tYWluLmM6MTA1MjpFWFBPUlRfU1lNQk9MKGllZWU4MDIxMV9hbGxvY19od19ubSk7XFxubmV0L21hYzgwMjExL21haW4uYy0xMDUzLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMjozNi4xNDIxNTQzODVaIiwiU2VxIjozNywiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzUzNDkyOTAyOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzcywgYXMgaWYgaXQgd2VyZSBteSBvd246XG5cbioqRGl2aW5nIGludG8gdGhlIDgwMi4xMSBIYXJkd2FyZSBBbGxvY2F0aW9uKipcblxuT2theSwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkgd2l0aCBgbmV0L21hYzgwMjExL21haW4uY2AuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgaGFyZHdhcmUgaXMgYmVpbmcgYWxsb2NhdGVkIGZvciB0aGlzIDgwMi4xMSBpbXBsZW1lbnRhdGlvbi4gTGV0J3Mgc3RhcnQgYnkgZGlnZ2luZyBpbnRvIGBpZWVlODAyMTFfYWxsb2NfaHdfbm1gLiBUaGlzIGZ1bmN0aW9uIGlzIGxpa2VseSB0aGUgY29ybmVyc3RvbmUgb2YgaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24gYW5kIGFzc29jaWF0aW9uLiBJJ20gYXNzdW1pbmcgXCJubVwiIHN0YW5kcyBmb3Igc29tZXRoaW5nIHJlbGF0ZWQgdG8gdGhlIG5hbWluZyBvciBtYW5hZ2luZyBvZiB0aGUgbmV3IGhhcmR3YXJlIGludGVyZmFjZSBvciBuZXR3b3JrIG1hbmFnZXIuIFVuZGVyc3RhbmRpbmcgdGhpcyByb3V0aW5lIHdpbGwgbGlrZWx5IGlsbHVtaW5hdGUgdGhlIGluaXRpYWwgc2V0dXAgZmxvdy4gSXQncyB0aGUgc3RhcnRpbmcgcG9pbnQgZm9yIHJlYWxseSBkaWdnaW5nIGludG8gaG93IHRoZXkndmUgc3RydWN0dXJlZCBoYXJkd2FyZSBhY2Nlc3MgYW5kIGNvbnRyb2wgd2l0aGluIHRoZSBtYWM4MDIxMSBmcmFtZXdvcmsuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI4MzIyLCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjZUMTA6MDI6MzkuNjc3MDg2NjM0WiIsIlNlcSI6MzgsIk5lc3RpbmciOjMsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyNzg5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvbWFjODAyMTEvbWFpbi5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDc5NSxcbiAgXCJMaW5lQ291bnRcIjogNTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDc5NTpcXHRzdHJ1Y3QgaWVlZTgwMjExX2h3ICppZWVlODAyMTFfYWxsb2NfaHdfbm0oc2l6ZV90IHByaXZfZGF0YV9sZW4sXFxuIDc5NjpcXHRcXHRcXHRcXHRcXHRcXHQgICBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyAqb3BzLFxcbiA3OTc6XFx0XFx0XFx0XFx0XFx0XFx0ICAgY29uc3QgY2hhciAqcmVxdWVzdGVkX25hbWUpXFxuIDc5ODpcXHR7XFxuIDc5OTpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbDtcXG4gODAwOlxcdFxcdGludCBwcml2X3NpemUsIGk7XFxuIDgwMTpcXHRcXHRzdHJ1Y3Qgd2lwaHkgKndpcGh5O1xcbiA4MDI6XFx0XFx0Ym9vbCBlbXVsYXRlX2NoYW5jdHg7XFxuIDgwMzpcXHRcXG4gODA0OlxcdFxcdGlmIChXQVJOX09OKCFvcHMtXFx1MDAzZXR4IHx8ICFvcHMtXFx1MDAzZXN0YXJ0IHx8ICFvcHMtXFx1MDAzZXN0b3AgfHwgIW9wcy1cXHUwMDNlY29uZmlnIHx8XFxuIDgwNTpcXHRcXHRcXHQgICAgIW9wcy1cXHUwMDNlYWRkX2ludGVyZmFjZSB8fCAhb3BzLVxcdTAwM2VyZW1vdmVfaW50ZXJmYWNlIHx8XFxuIDgwNjpcXHRcXHRcXHQgICAgIW9wcy1cXHUwMDNlY29uZmlndXJlX2ZpbHRlciB8fCAhb3BzLVxcdTAwM2V3YWtlX3R4X3F1ZXVlKSlcXG4gODA3OlxcdFxcdFxcdHJldHVybiBOVUxMO1xcbiA4MDg6XFx0XFxuIDgwOTpcXHRcXHRpZiAoV0FSTl9PTihvcHMtXFx1MDAzZXN0YV9zdGF0ZSBcXHUwMDI2XFx1MDAyNiAob3BzLVxcdTAwM2VzdGFfYWRkIHx8IG9wcy1cXHUwMDNlc3RhX3JlbW92ZSkpKVxcbiA4MTA6XFx0XFx0XFx0cmV0dXJuIE5VTEw7XFxuIDgxMTpcXHRcXG4gODEyOlxcdFxcdGlmIChXQVJOX09OKCEhb3BzLVxcdTAwM2VsaW5rX2luZm9fY2hhbmdlZCAhPSAhIW9wcy1cXHUwMDNldmlmX2NmZ19jaGFuZ2VkIHx8XFxuIDgxMzpcXHRcXHRcXHQgICAgKG9wcy1cXHUwMDNlbGlua19pbmZvX2NoYW5nZWQgXFx1MDAyNlxcdTAwMjYgb3BzLVxcdTAwM2Vic3NfaW5mb19jaGFuZ2VkKSkpXFxuIDgxNDpcXHRcXHRcXHRyZXR1cm4gTlVMTDtcXG4gODE1OlxcdFxcbiA4MTY6XFx0XFx0LyogY2hlY2sgYWxsIG9yIG5vIGNoYW5uZWwgY29udGV4dCBvcGVyYXRpb25zIGV4aXN0ICovXFxuIDgxNzpcXHRcXHRpZiAob3BzLVxcdTAwM2VhZGRfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCBcXHUwMDI2XFx1MDAyNlxcbiA4MTg6XFx0XFx0ICAgIG9wcy1cXHUwMDNlcmVtb3ZlX2NoYW5jdHggPT0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHggXFx1MDAyNlxcdTAwMjZcXG4gODE5OlxcdFxcdCAgICBvcHMtXFx1MDAzZWNoYW5nZV9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4KSB7XFxuIDgyMDpcXHRcXHRcXHRpZiAoV0FSTl9PTihvcHMtXFx1MDAzZWFzc2lnbl92aWZfY2hhbmN0eCB8fFxcbiA4MjE6XFx0XFx0XFx0XFx0ICAgIG9wcy1cXHUwMDNldW5hc3NpZ25fdmlmX2NoYW5jdHgpKVxcbiA4MjI6XFx0XFx0XFx0XFx0cmV0dXJuIE5VTEw7XFxuIDgyMzpcXHRcXHRcXHRlbXVsYXRlX2NoYW5jdHggPSB0cnVlO1xcbiA4MjQ6XFx0XFx0fSBlbHNlIHtcXG4gODI1OlxcdFxcdFxcdGlmIChXQVJOX09OKG9wcy1cXHUwMDNlYWRkX2NoYW5jdHggPT0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHggfHxcXG4gODI2OlxcdFxcdFxcdFxcdCAgICBvcHMtXFx1MDAzZXJlbW92ZV9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4IHx8XFxuIDgyNzpcXHRcXHRcXHRcXHQgICAgb3BzLVxcdTAwM2VjaGFuZ2VfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCkpXFxuIDgyODpcXHRcXHRcXHRcXHRyZXR1cm4gTlVMTDtcXG4gODI5OlxcdFxcdFxcdGlmIChXQVJOX09OKCFvcHMtXFx1MDAzZWFkZF9jaGFuY3R4IHx8XFxuIDgzMDpcXHRcXHRcXHRcXHQgICAgIW9wcy1cXHUwMDNlcmVtb3ZlX2NoYW5jdHggfHxcXG4gODMxOlxcdFxcdFxcdFxcdCAgICAhb3BzLVxcdTAwM2VjaGFuZ2VfY2hhbmN0eCB8fFxcbiA4MzI6XFx0XFx0XFx0XFx0ICAgICFvcHMtXFx1MDAzZWFzc2lnbl92aWZfY2hhbmN0eCB8fFxcbiA4MzM6XFx0XFx0XFx0XFx0ICAgICFvcHMtXFx1MDAzZXVuYXNzaWduX3ZpZl9jaGFuY3R4KSlcXG4gODM0OlxcdFxcdFxcdFxcdHJldHVybiBOVUxMO1xcbiA4MzU6XFx0XFx0XFx0ZW11bGF0ZV9jaGFuY3R4ID0gZmFsc2U7XFxuIDgzNjpcXHRcXHR9XFxuIDgzNzpcXHRcXG4gODM4OlxcdFxcdC8qIEVuc3VyZSAzMi1ieXRlIGFsaWdubWVudCBvZiBvdXIgcHJpdmF0ZSBkYXRhIGFuZCBodyBwcml2YXRlIGRhdGEuXFxuIDgzOTpcXHRcXHQgKiBXZSB1c2UgdGhlIHdpcGh5IHByaXYgZGF0YSBmb3IgYm90aCBvdXIgaWVlZTgwMjExX2xvY2FsIGFuZCBmb3JcXG4gODQwOlxcdFxcdCAqIHRoZSBkcml2ZXIncyBwcml2YXRlIGRhdGFcXG4gODQxOlxcdFxcdCAqXFxuIDg0MjpcXHRcXHQgKiBJbiBtZW1vcnkgaXQnbGwgYmUgbGlrZSB0aGlzOlxcbiA4NDM6XFx0XFx0ICpcXG4gODQ0OlxcdFxcdCAqICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMjozOS42NzcyMTU3NDRaIiwiU2VxIjozOSwiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzg3NTY5Nzc4NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgYGllZWU4MDIxMV9hbGxvY19od19ubWAgZnVuY3Rpb24uIEknbSBhbHJlYWR5IHBpY3R1cmluZyB0aGUgbGlrZWx5IHNjZW5hcmlvcyBpdCBhZGRyZXNzZXMuIEtub3dpbmcgdGhlIG5hbWUsIEknbSBleHBlY3RpbmcgdGhpcyB0byBiZSB0aGUgY29yZSBhbGxvY2F0aW9uIGZ1bmN0aW9uIGZvciBhIG5ldyBoYXJkd2FyZSAoaHcpIG5ldHdvcmsgbWFuYWdlciAobm0pIHdpdGhpbiBhbiA4MDIuMTEgY29udGV4dC4gR2l2ZW4gbXkgZXhwZXJpZW5jZSwgSSBrbm93IHRoYXQgZnVuY3Rpb24gbmFtZXMgYXJlIGNyaXRpY2FsIGluIGNvbXBsZXggc3lzdGVtcywgYW5kIHRoaXMgaXMgcHJvYmFibHkgd2hlcmUgdGhlIGxvdy1sZXZlbCBkZXRhaWxzIG9mIGhhcmR3YXJlIGludGVncmF0aW9uIGJlZ2lucy4gSSdtIGtlZW4gdG8gc2VlIGlmIGl0J3MgYSByZWxhdGl2ZWx5IHN0cmFpZ2h0Zm9yd2FyZCBhbGxvY2F0aW9uLCBvciBpZiB0aGVyZSdzIGEgYnVuY2ggb2YgcHJlLWFsbG9jYXRpb24gY2hlY2tzIGFuZCBpbml0aWFsaXphdGlvbnMgSSBuZWVkIHRvIGNvbnNpZGVyLiBJJ20gZXNwZWNpYWxseSBpbnRlcmVzdGVkIGluIGhvdyBpdCBoYW5kbGVzIHBvdGVudGlhbCByZXNvdXJjZSBjb25zdHJhaW50cyBvciBlcnJvciBjb25kaXRpb25zLCB3aGljaCBpcyBlc3NlbnRpYWwgdG8gcm9idXN0IGNvZGUuIEknbSBhbHNvIGhvcGluZyBpdCBhZGhlcmVzIHRvIGFueSBleGlzdGluZyBmcmFtZXdvcmsgb3IgZHJpdmVyIGFyY2hpdGVjdHVyZSBzcGVjaWZpYyB0byB0aGUgT1Mgb3IgZW52aXJvbm1lbnQuIEknbSBlYWdlciB0byBnZXQgaW50byB0aGUgZGV0YWlscyB0byB1bmRlcnN0YW5kIHRoZSBhbGxvY2F0aW9uIHByb2Nlc3MgZnJvbSBzdGFydCB0byBmaW5pc2guXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI5NDk5LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjEsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMjo0My41NTI5MTYxN1oiLCJTZXEiOjQwLCJOZXN0aW5nIjozLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTE1MzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L21hYzgwMjExL21haW4uY1wiLFxuICBcIkZpcnN0TGluZVwiOiA4NDUsXG4gIFwiTGluZUNvdW50XCI6IDUwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiA4NDU6XFx0XFx0ICogfCBzdHJ1Y3Qgd2lwaHlcXHQgICAgfFxcbiA4NDY6XFx0XFx0ICogKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXFxuIDg0NzpcXHRcXHQgKiB8IHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgIHxcXG4gODQ4OlxcdFxcdCAqICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xcbiA4NDk6XFx0XFx0ICogfCBkcml2ZXIncyBwcml2YXRlIGRhdGEgICB8XFxuIDg1MDpcXHRcXHQgKiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcXG4gODUxOlxcdFxcdCAqXFxuIDg1MjpcXHRcXHQgKi9cXG4gODUzOlxcdFxcdHByaXZfc2l6ZSA9IEFMSUdOKHNpemVvZigqbG9jYWwpLCBORVRERVZfQUxJR04pICsgcHJpdl9kYXRhX2xlbjtcXG4gODU0OlxcdFxcbiA4NTU6XFx0XFx0d2lwaHkgPSB3aXBoeV9uZXdfbm0oXFx1MDAyNm1hYzgwMjExX2NvbmZpZ19vcHMsIHByaXZfc2l6ZSwgcmVxdWVzdGVkX25hbWUpO1xcbiA4NTY6XFx0XFxuIDg1NzpcXHRcXHRpZiAoIXdpcGh5KVxcbiA4NTg6XFx0XFx0XFx0cmV0dXJuIE5VTEw7XFxuIDg1OTpcXHRcXG4gODYwOlxcdFxcdHdpcGh5LVxcdTAwM2VtZ210X3N0eXBlcyA9IGllZWU4MDIxMV9kZWZhdWx0X21nbXRfc3R5cGVzO1xcbiA4NjE6XFx0XFxuIDg2MjpcXHRcXHR3aXBoeS1cXHUwMDNlcHJpdmlkID0gbWFjODAyMTFfd2lwaHlfcHJpdmlkO1xcbiA4NjM6XFx0XFxuIDg2NDpcXHRcXHR3aXBoeS1cXHUwMDNlZmxhZ3MgfD0gV0lQSFlfRkxBR19ORVROU19PSyB8XFxuIDg2NTpcXHRcXHRcXHRcXHRXSVBIWV9GTEFHXzRBRERSX0FQIHxcXG4gODY2OlxcdFxcdFxcdFxcdFdJUEhZX0ZMQUdfNEFERFJfU1RBVElPTiB8XFxuIDg2NzpcXHRcXHRcXHRcXHRXSVBIWV9GTEFHX1JFUE9SVFNfT0JTUyB8XFxuIDg2ODpcXHRcXHRcXHRcXHRXSVBIWV9GTEFHX09GRkNIQU5fVFg7XFxuIDg2OTpcXHRcXG4gODcwOlxcdFxcdGlmIChlbXVsYXRlX2NoYW5jdHggfHwgb3BzLVxcdTAwM2VyZW1haW5fb25fY2hhbm5lbClcXG4gODcxOlxcdFxcdFxcdHdpcGh5LVxcdTAwM2VmbGFncyB8PSBXSVBIWV9GTEFHX0hBU19SRU1BSU5fT05fQ0hBTk5FTDtcXG4gODcyOlxcdFxcbiA4NzM6XFx0XFx0d2lwaHktXFx1MDAzZWJzc19wYXJhbV9zdXBwb3J0ID0gV0lQSFlfQlNTX1BBUkFNX0NUU19QUk9UIHxcXG4gODc0OlxcdFxcdFxcdFxcdFxcdCAgIFdJUEhZX0JTU19QQVJBTV9TSE9SVF9QUkVBTUJMRSB8XFxuIDg3NTpcXHRcXHRcXHRcXHRcXHQgICBXSVBIWV9CU1NfUEFSQU1fU0hPUlRfU0xPVF9USU1FIHxcXG4gODc2OlxcdFxcdFxcdFxcdFxcdCAgIFdJUEhZX0JTU19QQVJBTV9CQVNJQ19SQVRFUyB8XFxuIDg3NzpcXHRcXHRcXHRcXHRcXHQgICBXSVBIWV9CU1NfUEFSQU1fQVBfSVNPTEFURSB8XFxuIDg3ODpcXHRcXHRcXHRcXHRcXHQgICBXSVBIWV9CU1NfUEFSQU1fSFRfT1BNT0RFIHxcXG4gODc5OlxcdFxcdFxcdFxcdFxcdCAgIFdJUEhZX0JTU19QQVJBTV9QMlBfQ1RXSU5ET1cgfFxcbiA4ODA6XFx0XFx0XFx0XFx0XFx0ICAgV0lQSFlfQlNTX1BBUkFNX1AyUF9PUFBQUztcXG4gODgxOlxcdFxcdHdpcGh5LVxcdTAwM2VmZWF0dXJlcyB8PSBOTDgwMjExX0ZFQVRVUkVfU0tfVFhfU1RBVFVTIHxcXG4gODgyOlxcdFxcdFxcdFxcdCAgIE5MODAyMTFfRkVBVFVSRV9TQUUgfFxcbiA4ODM6XFx0XFx0XFx0XFx0ICAgTkw4MDIxMV9GRUFUVVJFX0hUX0lCU1MgfFxcbiA4ODQ6XFx0XFx0XFx0XFx0ICAgTkw4MDIxMV9GRUFUVVJFX1ZJRl9UWFBPV0VSIHxcXG4gODg1OlxcdFxcdFxcdFxcdCAgIE5MODAyMTFfRkVBVFVSRV9NQUNfT05fQ1JFQVRFIHxcXG4gODg2OlxcdFxcdFxcdFxcdCAgIE5MODAyMTFfRkVBVFVSRV9VU0VSU1BBQ0VfTVBNIHxcXG4gODg3OlxcdFxcdFxcdFxcdCAgIE5MODAyMTFfRkVBVFVSRV9GVUxMX0FQX0NMSUVOVF9TVEFURTtcXG4gODg4OlxcdFxcdHdpcGh5X2V4dF9mZWF0dXJlX3NldCh3aXBoeSwgTkw4MDIxMV9FWFRfRkVBVFVSRV9GSUxTX1NUQSk7XFxuIDg4OTpcXHRcXHR3aXBoeV9leHRfZmVhdHVyZV9zZXQod2lwaHksXFxuIDg5MDpcXHRcXHRcXHRcXHQgICAgICBOTDgwMjExX0VYVF9GRUFUVVJFX0NPTlRST0xfUE9SVF9PVkVSX05MODAyMTEpO1xcbiA4OTE6XFx0XFx0d2lwaHlfZXh0X2ZlYXR1cmVfc2V0KHdpcGh5LFxcbiA4OTI6XFx0XFx0XFx0XFx0ICAgICAgTkw4MDIxMV9FWFRfRkVBVFVSRV9DT05UUk9MX1BPUlRfTk9fUFJFQVVUSCk7XFxuIDg5MzpcXHRcXHR3aXBoeV9leHRfZmVhdHVyZV9zZXQod2lwaHksXFxuIDg5NDpcXHRcXHRcXHRcXHQgICAgICBOTDgwMjExX0VYVF9GRUFUVVJFX0NPTlRST0xfUE9SVF9PVkVSX05MODAyMTFfVFhfU1RBVFVTKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjZUMTA6MDI6NDMuNTUzMDI4NzZaIiwiU2VxIjo0MSwiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA2NzA1MDkwNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHN1bW1hcnksIGFzIGlmIEkgd2VyZSB0aGlua2luZyBpdDpcblxuKipEaWdnaW5nIGludG8gdGhlIFdpcmVsZXNzIFBoeSBBbGxvY2F0aW9uKipcblxuT2theSwgc28gSSdtIHNlZWluZyBgd2lwaHlfbmV3X25tYCBiZWluZyBjYWxsZWQgaGVyZS4gUmlnaHQsIHRoYXQncyB0aGUgb25lIHRoYXQncyByZXNwb25zaWJsZSBmb3IgYWxsb2NhdGluZyBhIGB3aXBoeWAgc3RydWN0dXJlLiBUaW1lIHRvIGRpdmUgaW50byB0aGUgY29yZSBpbXBsZW1lbnRhdGlvbi4gTGV0J3MgaGVhZCBvdmVyIHRvIGBuZXQvd2lyZWxlc3MvY29yZS5jYCBhbmQgdGFrZSBhIGxvb2sgYXQgaG93IGB3aXBoeV9uZXdfbm1gIGlzIGFjdHVhbGx5IGhhbmRsaW5nIHRoZSBtZW1vcnkgYWxsb2NhdGlvbiBhbmQgaW5pdGlhbGl6YXRpb24uIE5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcGFydGljdWxhcnMgb2YgdGhpcyBmdW5jdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzA3NjEsIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDEwOjAyOjQ2LjYyMDA4MjUxN1oiLCJTZXEiOjQyLCJOZXN0aW5nIjozLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDU5MTc5ODcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwid2lwaHlfbmV3X25tXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC93aXJlbGVzc1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvd2lyZWxlc3MvY29yZS5jPTUxNT1zdGF0aWMgdm9pZCBjZmc4MDIxMV93aXBoeV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbm5ldC93aXJlbGVzcy9jb3JlLmMtNTQ1LVxcbm5ldC93aXJlbGVzcy9jb3JlLmM6NTQ2OnN0cnVjdCB3aXBoeSAqd2lwaHlfbmV3X25tKGNvbnN0IHN0cnVjdCBjZmc4MDIxMV9vcHMgKm9wcywgaW50IHNpemVvZl9wcml2LFxcbm5ldC93aXJlbGVzcy9jb3JlLmMtNTQ3LVxcdFxcdFxcdCAgIGNvbnN0IGNoYXIgKnJlcXVlc3RlZF9uYW1lKVxcbi0tXFxubmV0L3dpcmVsZXNzL2NvcmUuYy02OTktfVxcbm5ldC93aXJlbGVzcy9jb3JlLmM6NzAwOkVYUE9SVF9TWU1CT0wod2lwaHlfbmV3X25tKTtcXG5uZXQvd2lyZWxlc3MvY29yZS5jLTcwMS1cXG4tLVxcbm5ldC93aXJlbGVzcy90ZXN0cy91dGlsLmM9MTM9aW50IHRfd2lwaHlfaW5pdChzdHJ1Y3Qga3VuaXRfcmVzb3VyY2UgKnJlc291cmNlLCB2b2lkICpjdHgpXFxuLS1cXG5uZXQvd2lyZWxlc3MvdGVzdHMvdXRpbC5jLTIyLVxcbm5ldC93aXJlbGVzcy90ZXN0cy91dGlsLmM6MjM6XFx0d2lwaHkgPSB3aXBoeV9uZXdfbm0ob3BzLCBzaXplb2YoKnByaXYpLCBcXFwia3VuaXRcXFwiKTtcXG5uZXQvd2lyZWxlc3MvdGVzdHMvdXRpbC5jLTI0LVxcdEtVTklUX0FTU0VSVF9OT1RfTlVMTCh0ZXN0LCB3aXBoeSk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDEwOjAyOjQ2LjY2NjAxMDMxNFoiLCJTZXEiOjQzLCJOZXN0aW5nIjozLCJUeXBlIjoibGxtIiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozODk0NDM3MjA5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOlxuXG4qKkRpdmluZyBpbnRvIGB3aXBoeV9uZXdfbm1gKipcblxuT2theSwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgc29tZXRoaW5nIHJlbGF0ZWQgdG8gV2ktRmkgZHJpdmVyIGluaXRpYWxpemF0aW9uLCBhbmQgbXkgaW5zdGluY3RzIGFyZSB0ZWxsaW5nIG1lIHRvIGxvb2sgYXQgYHdpcGh5X25ld19ubWAgaW4gYG5ldC93aXJlbGVzcy9jb3JlLmNgLiBUaGF0IGZ1bmN0aW9uIG5hbWUgaXRzZWxmIGlzIGEgcHJldHR5IGJpZyBjbHVlLiBUaGUgXCJ3aXBoeVwiIHBhcnQgaW1tZWRpYXRlbHkgZmxhZ3MgdGhpcyBhcyBiZWluZyBhYm91dCB0aGUgd2lyZWxlc3MgcGh5c2ljYWwgZGV2aWNlIGFic3RyYWN0aW9uIGxheWVyLCB0aGUgY29yZSBvZiB0aGUgd2lyZWxlc3MgbmV0d29ya2luZyBzdGFjay4gVGhlIFwibmV3XCIgc3Ryb25nbHkgc3VnZ2VzdHMgaXQncyBpbnZvbHZlZCBpbiBjcmVhdGluZyBvciBzZXR0aW5nIHVwIGEgbmV3IFdpLUZpIHBoeXNpY2FsIGRldmljZS4gQW5kIFwibm1cIiBwcm9iYWJseSBzdGFuZHMgZm9yIFwibmV0IGRldmljZSBtYW5hZ2VyXCIgb3Igc29tZXRoaW5nIHNpbWlsYXIsIGltcGx5aW5nIHNvbWUgaW50ZXJhY3Rpb24gd2l0aCB0aGUgb3ZlcmFsbCBuZXR3b3JrIGRldmljZSBpbmZyYXN0cnVjdHVyZS4gXG5cbkdpdmVuIG15IGV4cGVydGlzZSwgSSBzdXNwZWN0IHRoaXMgZnVuY3Rpb24gbGlrZWx5IGhhbmRsZXMgdGhlIGxvdy1sZXZlbCBhc3BlY3RzIG9mIGFsbG9jYXRpbmcgYW5kIGluaXRpYWxpemluZyB0aGUgd2lwaHkgc3RydWN0dXJlLCBwZXJoYXBzIHNldHRpbmcgdXAgaXRzIGNhcGFiaWxpdGllcywgcmVnaXN0ZXJpbmcgaXQgd2l0aCB0aGUgc3lzdGVtLCBhbmQgdHlpbmcgaXQgdG8gYSBuZXR3b3JrIGRldmljZS4gSSdtIGd1ZXNzaW5nIGl0IG1pZ2h0IGFsc28gZGVhbCB3aXRoIHRoaW5ncyBsaWtlIGFsbG9jYXRpbmcgbWVtb3J5IGZvciB0aGUgZGV2aWNlJ3MgY29udHJvbCBzdHJ1Y3R1cmVzLiBJdCdzIHRoZSBraW5kIG9mIGZ1bmN0aW9uIHRoYXQgd291bGQgYmUgY3J1Y2lhbCBmb3IgYSBkcml2ZXIgdG8gd29yayB3aXRoIHRoZSBjb3JlIFdpLUZpIHN0YWNrIGluIHRoZSBMaW51eCBrZXJuZWwuIExldCdzIHNlZSBpZiB0aGlzIGh1bmNoIGlzIGNvcnJlY3QsIG9yIGlmIHRoaXMgZnVuY3Rpb24ncyBwdXJwb3NlIGhhcyBhIG51YW5jZSB0aGF0IGVzY2FwZXMgbXkgdW5kZXJzdGFuZGluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzEyNDIsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQxMDowMjo1MC41NjA0NTA4NDNaIiwiU2VxIjo0NCwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE3MDgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIm5ldC93aXJlbGVzcy9jb3JlLmNcIixcbiAgXCJGaXJzdExpbmVcIjogNTQ2LFxuICBcIkxpbmVDb3VudFwiOiA1MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgNTQ2OlxcdHN0cnVjdCB3aXBoeSAqd2lwaHlfbmV3X25tKGNvbnN0IHN0cnVjdCBjZmc4MDIxMV9vcHMgKm9wcywgaW50IHNpemVvZl9wcml2LFxcbiA1NDc6XFx0XFx0XFx0XFx0ICAgY29uc3QgY2hhciAqcmVxdWVzdGVkX25hbWUpXFxuIDU0ODpcXHR7XFxuIDU0OTpcXHRcXHRzdGF0aWMgYXRvbWljX3Qgd2lwaHlfY291bnRlciA9IEFUT01JQ19JTklUKDApO1xcbiA1NTA6XFx0XFxuIDU1MTpcXHRcXHRzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXY7XFxuIDU1MjpcXHRcXHRpbnQgYWxsb2Nfc2l6ZTtcXG4gNTUzOlxcdFxcbiA1NTQ6XFx0XFx0V0FSTl9PTihvcHMtXFx1MDAzZWFkZF9rZXkgXFx1MDAyNlxcdTAwMjYgKCFvcHMtXFx1MDAzZWRlbF9rZXkgfHwgIW9wcy1cXHUwMDNlc2V0X2RlZmF1bHRfa2V5KSk7XFxuIDU1NTpcXHRcXHRXQVJOX09OKG9wcy1cXHUwMDNlYXV0aCBcXHUwMDI2XFx1MDAyNiAoIW9wcy1cXHUwMDNlYXNzb2MgfHwgIW9wcy1cXHUwMDNlZGVhdXRoIHx8ICFvcHMtXFx1MDAzZWRpc2Fzc29jKSk7XFxuIDU1NjpcXHRcXHRXQVJOX09OKG9wcy1cXHUwMDNlY29ubmVjdCBcXHUwMDI2XFx1MDAyNiAhb3BzLVxcdTAwM2VkaXNjb25uZWN0KTtcXG4gNTU3OlxcdFxcdFdBUk5fT04ob3BzLVxcdTAwM2Vqb2luX2lic3MgXFx1MDAyNlxcdTAwMjYgIW9wcy1cXHUwMDNlbGVhdmVfaWJzcyk7XFxuIDU1ODpcXHRcXHRXQVJOX09OKG9wcy1cXHUwMDNlYWRkX3ZpcnR1YWxfaW50ZiBcXHUwMDI2XFx1MDAyNiAhb3BzLVxcdTAwM2VkZWxfdmlydHVhbF9pbnRmKTtcXG4gNTU5OlxcdFxcdFdBUk5fT04ob3BzLVxcdTAwM2VhZGRfc3RhdGlvbiBcXHUwMDI2XFx1MDAyNiAhb3BzLVxcdTAwM2VkZWxfc3RhdGlvbik7XFxuIDU2MDpcXHRcXHRXQVJOX09OKG9wcy1cXHUwMDNlYWRkX21wYXRoIFxcdTAwMjZcXHUwMDI2ICFvcHMtXFx1MDAzZWRlbF9tcGF0aCk7XFxuIDU2MTpcXHRcXHRXQVJOX09OKG9wcy1cXHUwMDNlam9pbl9tZXNoIFxcdTAwMjZcXHUwMDI2ICFvcHMtXFx1MDAzZWxlYXZlX21lc2gpO1xcbiA1NjI6XFx0XFx0V0FSTl9PTihvcHMtXFx1MDAzZXN0YXJ0X3AycF9kZXZpY2UgXFx1MDAyNlxcdTAwMjYgIW9wcy1cXHUwMDNlc3RvcF9wMnBfZGV2aWNlKTtcXG4gNTYzOlxcdFxcdFdBUk5fT04ob3BzLVxcdTAwM2VzdGFydF9hcCBcXHUwMDI2XFx1MDAyNiAhb3BzLVxcdTAwM2VzdG9wX2FwKTtcXG4gNTY0OlxcdFxcdFdBUk5fT04ob3BzLVxcdTAwM2Vqb2luX29jYiBcXHUwMDI2XFx1MDAyNiAhb3BzLVxcdTAwM2VsZWF2ZV9vY2IpO1xcbiA1NjU6XFx0XFx0V0FSTl9PTihvcHMtXFx1MDAzZXN1c3BlbmQgXFx1MDAyNlxcdTAwMjYgIW9wcy1cXHUwMDNlcmVzdW1lKTtcXG4gNTY2OlxcdFxcdFdBUk5fT04ob3BzLVxcdTAwM2VzY2hlZF9zY2FuX3N0YXJ0IFxcdTAwMjZcXHUwMDI2ICFvcHMtXFx1MDAzZXNjaGVkX3NjYW5fc3RvcCk7XFxuIDU2NzpcXHRcXHRXQVJOX09OKG9wcy1cXHUwMDNlcmVtYWluX29uX2NoYW5uZWwgXFx1MDAyNlxcdTAwMjYgIW9wcy1cXHUwMDNlY2FuY2VsX3JlbWFpbl9vbl9jaGFubmVsKTtcXG4gNTY4OlxcdFxcdFdBUk5fT04ob3BzLVxcdTAwM2V0ZGxzX2NoYW5uZWxfc3dpdGNoIFxcdTAwMjZcXHUwMDI2ICFvcHMtXFx1MDAzZXRkbHNfY2FuY2VsX2NoYW5uZWxfc3dpdGNoKTtcXG4gNTY5OlxcdFxcdFdBUk5fT04ob3BzLVxcdTAwM2VhZGRfdHhfdHMgXFx1MDAyNlxcdTAwMjYgIW9wcy1cXHUwMDNlZGVsX3R4X3RzKTtcXG4gNTcwOlxcdFxcbiA1NzE6XFx0XFx0YWxsb2Nfc2l6ZSA9IHNpemVvZigqcmRldikgKyBzaXplb2ZfcHJpdjtcXG4gNTcyOlxcdFxcbiA1NzM6XFx0XFx0cmRldiA9IGt6YWxsb2MoYWxsb2Nfc2l6ZSwgR0ZQX0tFUk5FTCk7XFxuIDU3NDpcXHRcXHRpZiAoIXJkZXYpXFxuIDU3NTpcXHRcXHRcXHRyZXR1cm4gTlVMTDtcXG4gNTc2OlxcdFxcbiA1Nzc6XFx0XFx0cmRldi1cXHUwMDNlb3BzID0gb3BzO1xcbiA1Nzg6XFx0XFxuIDU3OTpcXHRcXHRyZGV2LVxcdTAwM2V3aXBoeV9pZHggPSBhdG9taWNfaW5jX3JldHVybihcXHUwMDI2d2lwaHlfY291bnRlcik7XFxuIDU4MDpcXHRcXG4gNTgxOlxcdFxcdGlmICh1bmxpa2VseShyZGV2LVxcdTAwM2V3aXBoeV9pZHggXFx1MDAzYyAwKSkge1xcbiA1ODI6XFx0XFx0XFx0LyogdWdoLCB3cmFwcGVkISAqL1xcbiA1ODM6XFx0XFx0XFx0YXRvbWljX2RlYyhcXHUwMDI2d2lwaHlfY291bnRlcik7XFxuIDU4NDpcXHRcXHRcXHRrZnJlZShyZGV2KTtcXG4gNTg1OlxcdFxcdFxcdHJldHVybiBOVUxMO1xcbiA1ODY6XFx0XFx0fVxcbiA1ODc6XFx0XFxuIDU4ODpcXHRcXHQvKiBhdG9taWNfaW5jX3JldHVybiBtYWtlcyBpdCBzdGFydCBhdCAxLCBtYWtlIGl0IHN0YXJ0IGF0IDAgKi9cXG4gNTg5OlxcdFxcdHJkZXYtXFx1MDAzZXdpcGh5X2lkeC0tO1xcbiA1OTA6XFx0XFxuIDU5MTpcXHRcXHQvKiBnaXZlIGl0IGEgcHJvcGVyIG5hbWUgKi9cXG4gNTkyOlxcdFxcdGlmIChyZXF1ZXN0ZWRfbmFtZSBcXHUwMDI2XFx1MDAyNiByZXF1ZXN0ZWRfbmFtZVswXSkge1xcbiA1OTM6XFx0XFx0XFx0aW50IHJ2O1xcbiA1OTQ6XFx0XFxuIDU5NTpcXHRcXHRcXHRydG5sX2xvY2soKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjZUMTA6MDI6NTAuNTYwNTY5MzQzWiIsIlNlcSI6NDUsIk5lc3RpbmciOjMsIlR5cGUiOiJsbG0iLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2MzIxNTIxNzU0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5c2lzIG9mIHRoZSBSWCBGaWx0ZXIgRmxhZyBQZXJzaXN0ZW5jZSBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcywgdGhpcyBpcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLiBUaGUgY3JpdGljYWwgcGFydCBpcyB1bmRlcnN0YW5kaW5nIGhvdyBgcGh5LVx1MDAzZXJ4ZmlsdGVyYCBpcyB1c2VkLiBXZSBzdGFydCB3aXRoIGBremFsbG9jYCBpbml0aWFsaXppbmcgdGhlIGBtdDc5MnhfZGV2YCBzdHJ1Y3R1cmUsIHdoaWNoIGluY2x1ZGVzIHRoZSBgbXQ3OTJ4X3BoeWAgc3RydWN0LiBUaGlzIG1lYW5zIGBwaHktXHUwMDNlcnhmaWx0ZXJgIGlzIGluaXRpYWxseSB6ZXJvLlxuXG5UaGVuLCBgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXJgIGlzIGNhbGxlZC4gIFRoaXMgZnVuY3Rpb24gc2V0cyBgcGh5LVx1MDAzZXJ4ZmlsdGVyYCB0byB0aGUgYGZsYWdzYCB2YWx1ZS4gIFNvIGZhciwgc28gZ29vZDogaW5pdGlhbGl6YXRpb24gYW5kIGFzc2lnbm1lbnQgYXJlIGNsZWFyLlxuXG5MYXRlciwgaW4gYG10NzkyNV9tY3VfY29uZmlnX3NuaWZmZXJgLCB0aGUgdmFsdWUgb2YgYHBoeS1cdTAwM2VyeGZpbHRlcmAgaXMgcmVhZC4gQ3JpdGljYWxseSwgaXQncyB1c2VkIHRvIGNvbmRpdGlvbmFsbHkgc2V0IHRoZSBgZHJvcF9lcnJgIGZsYWcgaW4gYSBjb25maWd1cmF0aW9uIHJlcXVlc3QuICBUaGUgbG9naWMgaXMgc291bmQ6IHdlJ3JlIHN0b3JpbmcgdGhlIFJYIGZpbHRlciBmbGFncyBhbmQgcmV1c2luZyB0aGVtIHRvIGRldGVybWluZSB3aGV0aGVyIHRvIGRyb3AgZnJhbWVzIHdpdGggRkNTIGVycm9ycy5cblxuTXkgaW1tZWRpYXRlIHF1ZXN0aW9uOiBJcyB0aGVyZSBhbnkgcG90ZW50aWFsIGZvciBhbiB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkPyBOby4gYHBoeS1cdTAwM2VyeGZpbHRlcmAgaXMgaW5pdGlhbGl6ZWQgdG8gemVybyBkdXJpbmcgdGhlIGRldmljZSBzdHJ1Y3R1cmUgYWxsb2NhdGlvbiB2aWEgYGt6YWxsb2NgLiBUaGUgdmFsdWUgaXMgKm92ZXJ3cml0dGVuKiBpbiBgbXQ3OTI1X2NvbmZpZ3VyZV9maWx0ZXJgLCBhbmQgdGhlbiAqcmVhZCogYWZ0ZXJ3YXJkcy4gV2UncmUgbm90IHJlYWRpbmcgdW5pdGlhbGl6ZWQgbWVtb3J5LCBhbmQgdGhlcmUncyBubyBkYXRhIGJlaW5nIGxlYWtlZCB0byB1c2VyIHNwYWNlLCByaWdodD8gVGhlIGtleSBpcyB0byBjb25maXJtIHRoYXQgYHBoeWAgaXMgYWx3YXlzIHBhcnQgb2YgYGRldmAgYW5kIHRoYXQgdGhlIGxpZmV0aW1lIG9mIHRoZSBwb2ludGVyIGlzIHdlbGwgbWFuYWdlZC5cblxuTGV0J3MgZG8gYSBxdWljayBkb3VibGUtY2hlY2sgb2YgdGhlIHBhdGNoIGZvciBvdGhlciBzdWJ0bGUgY2hhbmdlcywganVzdCB0byBiZSB0aG9yb3VnaC4uLiBZZXAsIEkgc2VlIGl0IGRlZmluZXMgdGhlIG5ldyBgTVQ3OTI1X0ZJTFRFUl8qYCBtYWNyb3MuIEZpbmUuXG5cbk15IGZpbmFsIGNvbmNsdXNpb24gaXMgdGhhdCB0aGlzIGxvb2tzIGxpa2UgYSBwdXJlbHkgbG9naWNhbCBjaGFuZ2UsIG5vIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGlzc3VlcyB0aGF0IEtNU0FOIHdvdWxkIGhpZ2hsaWdodC4gTm8gZGF0YSBsZWFrcywgYW5kIG5vIG5vdmVsIGFsbG9jYXRpb25zIG9yIHBvaW50ZXIgbWFuYWdlbWVudCB0aGF0IHdvdWxkIHJlcXVpcmUgZXh0cmEgc2NydXRpbnkuICBTdGFuZGFyZCBrZXJuZWwgc2FuaXRpemVycyBzaG91bGQgY2F0Y2ggYW55IHJlbGF0ZWQgYnVncy4gU28sIEknZCBzYXkgdGhhdCBgTmVlZHNLTVNBTmAgaXMgYGZhbHNlYCBoZXJlLiBUaGUgcGF0Y2ggc2ltcGx5IHBlcnNpc3RzIHRoZSBSWCBmaWx0ZXIgc2V0dGluZ3Mgd2l0aGluIHRoZSBgcGh5YCBzdHJ1Y3R1cmUgYW5kIHJldXNlcyB0aGVtIGluIGEgd2VsbC1kZWZpbmVkIHdheS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzI0OTksIk91dHB1dFRva2VucyI6MjY0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTM5MywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDEwOjAzOjA2Ljg4MjA5Mzc2OFoiLCJTZXEiOjQ2LCJOZXN0aW5nIjozLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1NjAwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBmaWVsZCBgcnhmaWx0ZXJgIHRvIGBzdHJ1Y3QgbXQ3OTJ4X3BoeWAgdG8gc3RvcmUgdGhlIFJYIGZpbHRlciBmbGFncy4gVGhpcyBzdHJ1Y3R1cmUgaXMgZW1iZWRkZWQgaW4gYHN0cnVjdCBtdDc5MnhfZGV2YCwgd2hpY2ggaXMgYWxsb2NhdGVkIHZpYSBgbXQ3Nl9hbGxvY19kZXZpY2VgIC1cXHUwMDNlIGBpZWVlODAyMTFfYWxsb2NfaHdgIC1cXHUwMDNlIGB3aXBoeV9uZXdfbm1gIHVzaW5nIGBremFsbG9jYC4gVGh1cywgdGhlIG5ldyBmaWVsZCBpcyBmdWxseSB6ZXJvLWluaXRpYWxpemVkIHVwb24gYWxsb2NhdGlvbi4gVGhlIHBhdGNoIHRoZW4gd3JpdGVzIHRvIHRoaXMgZmllbGQgaW4gYG10NzkyNV9jb25maWd1cmVfZmlsdGVyYCBhbmQgcmVhZHMgZnJvbSBpdCBpbiBgbXQ3OTI1X21jdV9jb25maWdfc25pZmZlcmAgdG8gY29uZGl0aW9uYWxseSBzZXQgdGhlIGBkcm9wX2VycmAgZmxhZyBpbiBhIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24gcmVxdWVzdC4gVGhlcmUgYXJlIG5vIG5ldyBhbGxvY2F0aW9ucywgbm8gc3RydWN0dXJlcyBjb3BpZWQgdG8gdXNlciBzcGFjZSwgYW5kIG5vIGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIHdoZXJlIHVuaW5pdGlhbGl6ZWQgZmllbGRzIGNvdWxkIGJlIHJlYWQuIEFueSBwb3RlbnRpYWwgYnVncyBpbnRyb2R1Y2VkIGJ5IHRoaXMgcGF0Y2ggd291bGQgYmUgcmVsYXRlZCB0byBpbmNvcnJlY3QgbG9naWMgb3Igb3V0LW9mLWJvdW5kcyBhY2Nlc3MsIHdoaWNoIGFyZSB3ZWxsLWNvdmVyZWQgYnkgc3RhbmRhcmQgS0FTQU4gYW5kIG90aGVyIGJ1ZyBkZXRlY3RvcnMuIFRoZXJlIGlzIG5vIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcyB0aGF0IHdvdWxkIHJlcXVpcmUgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uLlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgZmllbGQgYHJ4ZmlsdGVyYCB0byBgc3RydWN0IG10NzkyeF9waHlgIHRvIHN0b3JlIHRoZSBSWCBmaWx0ZXIgZmxhZ3MuIFRoaXMgc3RydWN0dXJlIGlzIGVtYmVkZGVkIGluIGBzdHJ1Y3QgbXQ3OTJ4X2RldmAsIHdoaWNoIGlzIGFsbG9jYXRlZCB2aWEgYG10NzZfYWxsb2NfZGV2aWNlYCAtXFx1MDAzZSBgaWVlZTgwMjExX2FsbG9jX2h3YCAtXFx1MDAzZSBgd2lwaHlfbmV3X25tYCB1c2luZyBga3phbGxvY2AuIFRodXMsIHRoZSBuZXcgZmllbGQgaXMgZnVsbHkgemVyby1pbml0aWFsaXplZCB1cG9uIGFsbG9jYXRpb24uIFRoZSBwYXRjaCB0aGVuIHdyaXRlcyB0byB0aGlzIGZpZWxkIGluIGBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcmAgYW5kIHJlYWRzIGZyb20gaXQgaW4gYG10NzkyNV9tY3VfY29uZmlnX3NuaWZmZXJgIHRvIGNvbmRpdGlvbmFsbHkgc2V0IHRoZSBgZHJvcF9lcnJgIGZsYWcgaW4gYSBoYXJkd2FyZSBjb25maWd1cmF0aW9uIHJlcXVlc3QuIFRoZXJlIGFyZSBubyBuZXcgYWxsb2NhdGlvbnMsIG5vIHN0cnVjdHVyZXMgY29waWVkIHRvIHVzZXIgc3BhY2UsIGFuZCBubyBjb21wbGV4IGRhdGEgc3RydWN0dXJlcyB3aGVyZSB1bmluaXRpYWxpemVkIGZpZWxkcyBjb3VsZCBiZSByZWFkLiBBbnkgcG90ZW50aWFsIGJ1Z3MgaW50cm9kdWNlZCBieSB0aGlzIHBhdGNoIHdvdWxkIGJlIHJlbGF0ZWQgdG8gaW5jb3JyZWN0IGxvZ2ljIG9yIG91dC1vZi1ib3VuZHMgYWNjZXNzLCB3aGljaCBhcmUgd2VsbC1jb3ZlcmVkIGJ5IHN0YW5kYXJkIEtBU0FOIGFuZCBvdGhlciBidWcgZGV0ZWN0b3JzLiBUaGVyZSBpcyBubyByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MgdGhhdCB3b3VsZCByZXF1aXJlIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbi5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowrbph2[1] Phase: Succeeded StartedAt: 2026-08-26 10:03:18 +0000 UTC FinishedAt: 2026-08-26 10:03:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrbph2[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-26 10:03:18 +0000 UTC FinishedAt: 2026-08-26 10:03:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrbph2[2] Phase: Succeeded StartedAt: 2026-08-26 10:03:18 +0000 UTC FinishedAt: 2026-08-26 10:47:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrbph2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-26 10:03:18 +0000 UTC FinishedAt: 2026-08-26 10:47:41 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowrbph2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-26 10:03:18 +0000 UTC FinishedAt: 2026-08-26 10:03:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrbph2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-26 10:03:18 +0000 UTC FinishedAt: 2026-08-26 10:03:23 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowrbph2/series-workflowrbph2-convert-artifact-1871612111/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowrbph2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-26 10:03:28 +0000 UTC FinishedAt: 2026-08-26 10:20:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrbph2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-26 10:03:28 +0000 UTC FinishedAt: 2026-08-26 10:20:34 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*a34fbc33-3081-46c7-8218-1db5d695b491,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-workflowrbph2/series-workflowrbph2-convert-artifact-1871612111/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": "8507de86-0cc8-4e66-9cd9-51a0e6a7d0ab", "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-workflowrbph2/series-workflowrbph2-build-action-823220245/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowrbph2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-26 10:03:28 +0000 UTC FinishedAt: 2026-08-26 10:20:24 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*a34fbc33-3081-46c7-8218-1db5d695b491,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-workflowrbph2/series-workflowrbph2-convert-artifact-1871612111/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": "8507de86-0cc8-4e66-9cd9-51a0e6a7d0ab", "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-workflowrbph2/series-workflowrbph2-build-action-823220245/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowrbph2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-26 10:20:34 +0000 UTC FinishedAt: 2026-08-26 10:20:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrbph2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-26 10:20:34 +0000 UTC FinishedAt: 2026-08-26 10:20:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrbph2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-26 10:20:34 +0000 UTC FinishedAt: 2026-08-26 10:20:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrbph2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-26 10:20:34 +0000 UTC FinishedAt: 2026-08-26 10:20:39 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowrbph2/series-workflowrbph2-convert-artifact-2728631582/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowrbph2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-26 10:20:44 +0000 UTC FinishedAt: 2026-08-26 10:23:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrbph2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-26 10:20:44 +0000 UTC FinishedAt: 2026-08-26 10:22:52 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*8507de86-0cc8-4e66-9cd9-51a0e6a7d0ab,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-workflowrbph2/series-workflowrbph2-build-action-823220245/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-workflowrbph2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-26 10:23:02 +0000 UTC FinishedAt: 2026-08-26 10:23:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrbph2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-26 10:23:02 +0000 UTC FinishedAt: 2026-08-26 10:23:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrbph2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-26 10:23:02 +0000 UTC FinishedAt: 2026-08-26 10:42:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrbph2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-26 10:23:02 +0000 UTC FinishedAt: 2026-08-26 10:42:13 +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:*a34fbc33-3081-46c7-8218-1db5d695b491,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-workflowrbph2/series-workflowrbph2-convert-artifact-2728631582/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": "92937482-1e26-4c4d-9c1b-e10a2f5068a9", "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-workflowrbph2/series-workflowrbph2-build-action-2862435058/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowrbph2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-26 10:23:02 +0000 UTC FinishedAt: 2026-08-26 10:42: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:*a34fbc33-3081-46c7-8218-1db5d695b491,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-workflowrbph2/series-workflowrbph2-convert-artifact-2728631582/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": "92937482-1e26-4c4d-9c1b-e10a2f5068a9", "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-workflowrbph2/series-workflowrbph2-build-action-2862435058/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowrbph2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-26 10:42:13 +0000 UTC FinishedAt: 2026-08-26 10:42:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrbph2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-26 10:42:13 +0000 UTC FinishedAt: 2026-08-26 10:42:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrbph2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-26 10:42:13 +0000 UTC FinishedAt: 2026-08-26 10:44:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrbph2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-26 10:42:13 +0000 UTC FinishedAt: 2026-08-26 10:44:20 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*92937482-1e26-4c4d-9c1b-e10a2f5068a9,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-workflowrbph2/series-workflowrbph2-build-action-2862435058/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-workflowrbph2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-26 10:44:29 +0000 UTC FinishedAt: 2026-08-26 10:47:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrbph2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-26 10:44:29 +0000 UTC FinishedAt: 2026-08-26 10:47:41 +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":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"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:*8507de86-0cc8-4e66-9cd9-51a0e6a7d0ab,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*92937482-1e26-4c4d-9c1b-e10a2f5068a9,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-workflowrbph2/series-workflowrbph2-build-action-823220245/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-workflowrbph2/series-workflowrbph2-build-action-2862435058/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowrbph2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-26 10:44:29 +0000 UTC FinishedAt: 2026-08-26 10:44:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrbph2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-26 10:44:29 +0000 UTC FinishedAt: 2026-08-26 10:44:34 +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":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"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-workflowrbph2/series-workflowrbph2-convert-artifact-1567220515/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowrbph2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-26 10:44:29 +0000 UTC FinishedAt: 2026-08-26 10:44:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrbph2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-26 10:44:29 +0000 UTC FinishedAt: 2026-08-26 10:44:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrbph2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-26 10:44:29 +0000 UTC FinishedAt: 2026-08-26 10:44:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrbph2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-26 10:44:39 +0000 UTC FinishedAt: 2026-08-26 10:47:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrbph2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_configure_filter","mt7925_mcu_config_sniffer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"881dc9dd66d2367e7fe1be0f953a8837cb3b26a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MAC80211","USB"],"series_id":"bf6e6a40-889e-4fe0-987f-c2fed945fb0f","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-26 10:44:39 +0000 UTC FinishedAt: 2026-08-26 10:47:21 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*8507de86-0cc8-4e66-9cd9-51a0e6a7d0ab,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*92937482-1e26-4c4d-9c1b-e10a2f5068a9,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-workflowrbph2/series-workflowrbph2-build-action-823220245/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-workflowrbph2/series-workflowrbph2-build-action-2862435058/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-workflowrbph2/series-workflowrbph2-convert-artifact-1567220515/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,}