Name: series-workflow5sx97 Phase: Succeeded StartedAt: 2026-07-27 22:28:37 +0000 UTC FinishedAt: 2026-07-28 03:00:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5sx97[0] Phase: Succeeded StartedAt: 2026-07-27 22:28:37 +0000 UTC FinishedAt: 2026-07-27 22:46:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5sx97[0].run-triage Phase: Succeeded StartedAt: 2026-07-27 22:28:37 +0000 UTC FinishedAt: 2026-07-27 22:46:46 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "53658c6f3682967a5e76ed4bc7462c4bdcddaec3", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "INET_PSP", "NETDEVSIM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "53658c6f3682967a5e76ed4bc7462c4bdcddaec3", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "INET_PSP", "NETDEVSIM" ], "series_id": "87e206be-fa1b-4284-a32d-fa954c044556" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "psp_nl_dev_get_doit", "psp_nl_dev_set_doit", "psp_nl_key_rotate_doit", "psp_nl_rx_assoc_doit", "psp_nl_tx_assoc_doit", "psp_nl_get_stats_doit", "psp_nl_dev_assoc_doit", "psp_nl_dev_disassoc_doit", "psp_dev_create" ], "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+CgkJCTx0ZD4yMDI2LzA3LzI3IDIyOjQ1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lORVRfUFNQJiMzNDssCiAgICAmIzM0O05FVERFVlNJTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3BzcF9ubF9kZXZfZ2V0X2RvaXQmIzM0OywKICAgICYjMzQ7cHNwX25sX2Rldl9zZXRfZG9pdCYjMzQ7LAogICAgJiMzNDtwc3Bfbmxfa2V5X3JvdGF0ZV9kb2l0JiMzNDssCiAgICAmIzM0O3BzcF9ubF9yeF9hc3NvY19kb2l0JiMzNDssCiAgICAmIzM0O3BzcF9ubF90eF9hc3NvY19kb2l0JiMzNDssCiAgICAmIzM0O3BzcF9ubF9nZXRfc3RhdHNfZG9pdCYjMzQ7LAogICAgJiMzNDtwc3BfbmxfZGV2X2Fzc29jX2RvaXQmIzM0OywKICAgICYjMzQ7cHNwX25sX2Rldl9kaXNhc3NvY19kb2l0JiMzNDssCiAgICAmIzM0O3BzcF9kZXZfY3JlYXRlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gaW4gYHBzcF9ubF9tdWx0aWNhc3RfcGVyX25zYCB3aGVuIGEgZGV2aWNlIGNoYW5nZXMgbmV0bnMgaW4gcGFyYWxsZWwuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIGxvZ2ljIGZvciB0aGUgUFNQIChQU1AgU2VjdXJpdHkgUHJvdG9jb2wpIG5ldGxpbmsgaW50ZXJmYWNlLiBUaGUgY29kZSBpcyByZWFjaGFibGUgdmlhIG5ldGxpbmsgY29tbWFuZHMgYW5kIGNhbiBiZSB0ZXN0ZWQgdXNpbmcgdGhlIGBuZXRkZXZzaW1gIGRyaXZlciB3aGljaCBzdXBwb3J0cyBQU1AuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMjI6NDU8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA5ZWJmMjgyMTcyM2U3MDEyNTA1MmRmMjVmYWM5NGEzNzQzYTQ4MzM4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgMjcgMjI6NDU6MjMgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L3BzcC9wc3BfbmwuYyBiL25ldC9wc3AvcHNwX25sLmNcbmluZGV4IDk2MTBkOGM0NTZmZjU1Li40M2IwNjYzNTNjNjViMiAxMDA2NDRcbi0tLSBhL25ldC9wc3AvcHNwX25sLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9wc3AvcHNwX25sLmNcbkBAIC02Miw3ICYjNDM7NjIsMTQgQEAgcHNwX25sX211bHRpY2FzdF9wZXJfbnMoc3RydWN0IHBzcF9kZXYgKnBzZCwgdW5zaWduZWQgaW50IGdyb3VwLFxuIFx0c3RydWN0IG5ldCAqbWFpbl9uZXQ7XG4gXHRzdHJ1Y3Qgc2tfYnVmZiAqbnRmO1xuIFxuLVx0bWFpbl9uZXQgPSBkZXZfbmV0KHBzZC1cdTAwM2VtYWluX25ldGRldik7XG4mIzQzO1x0LyogZGV2aWNlIG1heSBiZSBjaGFuZ2luZyBuZXRucyBpbiBwYXJhbGxlbCAqL1xuJiM0MztcdHJjdV9yZWFkX2xvY2soKTtcbiYjNDM7XHRtYWluX25ldCA9IG1heWJlX2dldF9uZXQoZGV2X25ldF9yY3UocHNkLVx1MDAzZW1haW5fbmV0ZGV2KSk7XG4mIzQzO1x0cmN1X3JlYWRfdW5sb2NrKCk7XG4mIzQzO1xuJiM0MztcdGlmICghbWFpbl9uZXQpXG4mIzQzO1x0XHRyZXR1cm47XG4mIzQzO1xuIFx0eGFfaW5pdChcdTAwMjZzZW50X25ldHMpO1xuIFxuIFx0bGlzdF9mb3JfZWFjaF9lbnRyeShlbnRyeSwgXHUwMDI2cHNkLVx1MDAzZWFzc29jX2Rldl9saXN0LCBkZXZfbGlzdCkge1xuQEAgLTg4LDEwICYjNDM7OTUsMTAgQEAgcHNwX25sX211bHRpY2FzdF9wZXJfbnMoc3RydWN0IHBzcF9kZXYgKnBzZCwgdW5zaWduZWQgaW50IGdyb3VwLFxuIFxuIFx0LyogU2VuZCB0byBtYWluIGRldmljZSBuZXRucyAqL1xuIFx0bnRmID0gYnVpbGRfbnRmKHBzZCwgbWFpbl9uZXQsIGN0eCk7XG4tXHRpZiAoIW50Zilcbi1cdFx0cmV0dXJuO1xuLVx0Z2VubG1zZ19tdWx0aWNhc3RfbmV0bnMoXHUwMDI2cHNwX25sX2ZhbWlseSwgbWFpbl9uZXQsIG50ZiwgMCwgZ3JvdXAsXG4tXHRcdFx0XHRHRlBfS0VSTkVMKTtcbiYjNDM7XHRpZiAobnRmKVxuJiM0MztcdFx0Z2VubG1zZ19tdWx0aWNhc3RfbmV0bnMoXHUwMDI2cHNwX25sX2ZhbWlseSwgbWFpbl9uZXQsIG50ZiwgMCwgZ3JvdXAsXG4mIzQzO1x0XHRcdFx0XHRHRlBfS0VSTkVMKTtcbiYjNDM7XHRwdXRfbmV0KG1haW5fbmV0KTtcbiB9XG4gXG4gc3RhdGljIHN0cnVjdCBza19idWZmICpwc3BfbmxfY2xvbmVfbnRmKHN0cnVjdCBwc3BfZGV2ICpwc2QsIHN0cnVjdCBuZXQgKm5ldCxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMjo0NTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7SU5FVF9QU1AmIzM0OywKICAgICYjMzQ7TkVUREVWU0lNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cHNwX25sX2Rldl9nZXRfZG9pdCYjMzQ7LAogICAgJiMzNDtwc3BfbmxfZGV2X3NldF9kb2l0JiMzNDssCiAgICAmIzM0O3BzcF9ubF9rZXlfcm90YXRlX2RvaXQmIzM0OywKICAgICYjMzQ7cHNwX25sX3J4X2Fzc29jX2RvaXQmIzM0OywKICAgICYjMzQ7cHNwX25sX3R4X2Fzc29jX2RvaXQmIzM0OywKICAgICYjMzQ7cHNwX25sX2dldF9zdGF0c19kb2l0JiMzNDssCiAgICAmIzM0O3BzcF9ubF9kZXZfYXNzb2NfZG9pdCYjMzQ7LAogICAgJiMzNDtwc3BfbmxfZGV2X2Rpc2Fzc29jX2RvaXQmIzM0OywKICAgICYjMzQ7cHNwX2Rldl9jcmVhdGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSByYWNlIGNvbmRpdGlvbiBpbiBgcHNwX25sX211bHRpY2FzdF9wZXJfbnNgIHdoZW4gYSBkZXZpY2UgY2hhbmdlcyBuZXRucyBpbiBwYXJhbGxlbC4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvcmUgbG9naWMgZm9yIHRoZSBQU1AgKFBTUCBTZWN1cml0eSBQcm90b2NvbCkgbmV0bGluayBpbnRlcmZhY2UuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSB2aWEgbmV0bGluayBjb21tYW5kcyBhbmQgY2FuIGJlIHRlc3RlZCB1c2luZyB0aGUgYG5ldGRldnNpbWAgZHJpdmVyIHdoaWNoIHN1cHBvcnRzIFBTUC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDllYmYyODIxNzIzZTcwMTI1MDUyZGYyNWZhYzk0YTM3NDNhNDgzMzgKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEp1bCAyNyAyMjo0NToyMyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9wc3AvcHNwX25sLmMgYi9uZXQvcHNwL3BzcF9ubC5jCmluZGV4IDk2MTBkOGM0NTZmZjU1Li40M2IwNjYzNTNjNjViMiAxMDA2NDQKLS0tIGEvbmV0L3BzcC9wc3BfbmwuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvcHNwL3BzcF9ubC5jCkBAIC02Miw3ICYjNDM7NjIsMTQgQEAgcHNwX25sX211bHRpY2FzdF9wZXJfbnMoc3RydWN0IHBzcF9kZXYgKnBzZCwgdW5zaWduZWQgaW50IGdyb3VwLAogCXN0cnVjdCBuZXQgKm1haW5fbmV0OwogCXN0cnVjdCBza19idWZmICpudGY7CiAKLQltYWluX25ldCA9IGRldl9uZXQocHNkLSZndDttYWluX25ldGRldik7CiYjNDM7CS8qIGRldmljZSBtYXkgYmUgY2hhbmdpbmcgbmV0bnMgaW4gcGFyYWxsZWwgKi8KJiM0MzsJcmN1X3JlYWRfbG9jaygpOwomIzQzOwltYWluX25ldCA9IG1heWJlX2dldF9uZXQoZGV2X25ldF9yY3UocHNkLSZndDttYWluX25ldGRldikpOwomIzQzOwlyY3VfcmVhZF91bmxvY2soKTsKJiM0MzsKJiM0MzsJaWYgKCFtYWluX25ldCkKJiM0MzsJCXJldHVybjsKJiM0MzsKIAl4YV9pbml0KCZhbXA7c2VudF9uZXRzKTsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkoZW50cnksICZhbXA7cHNkLSZndDthc3NvY19kZXZfbGlzdCwgZGV2X2xpc3QpIHsKQEAgLTg4LDEwICYjNDM7OTUsMTAgQEAgcHNwX25sX211bHRpY2FzdF9wZXJfbnMoc3RydWN0IHBzcF9kZXYgKnBzZCwgdW5zaWduZWQgaW50IGdyb3VwLAogCiAJLyogU2VuZCB0byBtYWluIGRldmljZSBuZXRucyAqLwogCW50ZiA9IGJ1aWxkX250Zihwc2QsIG1haW5fbmV0LCBjdHgpOwotCWlmICghbnRmKQotCQlyZXR1cm47Ci0JZ2VubG1zZ19tdWx0aWNhc3RfbmV0bnMoJmFtcDtwc3BfbmxfZmFtaWx5LCBtYWluX25ldCwgbnRmLCAwLCBncm91cCwKLQkJCQlHRlBfS0VSTkVMKTsKJiM0MzsJaWYgKG50ZikKJiM0MzsJCWdlbmxtc2dfbXVsdGljYXN0X25ldG5zKCZhbXA7cHNwX25sX2ZhbWlseSwgbWFpbl9uZXQsIG50ZiwgMCwgZ3JvdXAsCiYjNDM7CQkJCQlHRlBfS0VSTkVMKTsKJiM0MzsJcHV0X25ldChtYWluX25ldCk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqcHNwX25sX2Nsb25lX250ZihzdHJ1Y3QgcHNwX2RldiAqcHNkLCBzdHJ1Y3QgbmV0ICpuZXQsCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIyOjQ1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzNDYKCQkJCQkJCW91dHB1dDogMjQKCQkJCQkJCXRob3VnaHRzOiAzNTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgTmV0bGluayBQYXRjaCBmb3IgUFNQKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBhIHBhdGNoIGluIGBuZXQvcHNwL3BzcF9ubC5jYC4gSXQgc2VlbXMgbGlrZSBpdCYjMzk7cyB0b3VjaGluZyBgcHNwX25sX211bHRpY2FzdF9wZXJfbnNgLCB3aGljaCBpcyBpbnRlcmVzdGluZy4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBhcHBlYXJzIHRvIGJlIGhvdyBgbWFpbl9uZXRgIGlzIGhhbmRsZWQuIFByZXZpb3VzbHksIGl0IHdhcyBhIHN0cmFpZ2h0Zm9yd2FyZCBgZGV2X25ldChwc2QtJmd0O21haW5fbmV0ZGV2KWAsIGJ1dCBub3cgdGhleSYjMzk7cmUgdXNpbmcgYHJjdV9yZWFkX2xvY2soKWAgYW5kIGBtYXliZV9nZXRfbmV0KClgIGluIGEgY3JpdGljYWwgc2VjdGlvbiwgYW5kIHRoZW4gYHB1dF9uZXQobWFpbl9uZXQpYCBhdCB0aGUgZW5kLiBUaGF0IHNjcmVhbXMgcmFjZSBjb25kaXRpb24gZml4IOKAkyBzcGVjaWZpY2FsbHksIGEgZGV2aWNlIGNoYW5naW5nIG5ldHdvcmsgbmFtZXNwYWNlcyBpbiBwYXJhbGxlbC4gSXQgbWFrZXMgdG90YWwgc2Vuc2U7IHRoaXMgaW50cm9kdWNlcyBhIHBvdGVudGlhbCBpc3N1ZSBpZiB0aGUgbmV0bnMgY2hhbmdlcyBiZXR3ZWVuIHRoZSBkZXZpY2UgbG9va3VwIGFuZCB0aGUgYWN0dWFsIG5ldGxpbmsgbXVsdGljYXN0LiBUaGUgUkNVIHByb3RlY3Rpb24gZW5zdXJlcyB0aGF0IHRoZSBuZXR3b3JrIG5hbWVzcGFjZSBkb2VzbiYjMzk7dCBkaXNhcHBlYXIgYmVmb3JlIHdlIGF0dGVtcHQgdGhlIG9wZXJhdGlvbiwgYW5kIGBtYXliZV9nZXRfbmV0YCBhbmQgYHB1dF9uZXRgIG1hbmFnZW1lbnQgYWRkcyBwcm9wZXIgcmVmZXJlbmNlIGNvdW50aW5nIHRvIG1hbmFnZSB0aGUgbGlmZWN5Y2xlIG9mIHRoZSBuZXR3b3JrIG5hbWVzcGFjZSBvYmplY3QuIFRoZSBhZGRlZCBgaWZgIHN0YXRlbWVudCB0byBjaGVjayBmb3IgYSB2YWxpZCBgbnRmYCBiZWZvcmUgbXVsdGljYXN0IGlzIGp1c3QgZ29vZCBkZWZlbnNpdmUgY29kaW5nLgoKTm93LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGBwc3BgIGlzIGFsbCBhYm91dC4gVGhpcyBjb250ZXh0IGlzIGVzc2VudGlhbC4gSSYjMzk7bGwgbmVlZCB0byBsb29rIHVwIGBwc3BfbmxfbXVsdGljYXN0X3Blcl9uc2AgYW5kIGRlbHZlIGludG8gYHBzcF9ubC5jYCB0byBzZWUgaG93IGl0IGZpdHMgaW50byB0aGUgYnJvYWRlciBwaWN0dXJlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHRoaXMgUFNQIG1vZHVsZSBkb2VzIGFuZCB3aGF0IGNvbmZpZ3VyYXRpb24gaXQgcmVxdWlyZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMjI6NDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cHNwX25sX211bHRpY2FzdF9wZXJfbnMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3BzcC9wc3BfbmwuYz0zND1zdGF0aWMgaW50IHBzcF9ubF9yZXBseV9zZW5kKHN0cnVjdCBza19idWZmICpyc3AsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG4tLVxubmV0L3BzcC9wc3BfbmwuYy00Mi0vKipcbm5ldC9wc3AvcHNwX25sLmM6NDM6ICogcHNwX25sX211bHRpY2FzdF9wZXJfbnMoKSAtIG11bHRpY2FzdCBhIG5vdGlmaWNhdGlvbiB0byBlYWNoIHVuaXF1ZSBuZXRuc1xubmV0L3BzcC9wc3BfbmwuYy00NC0gKiBAcHNkOiBQU1AgZGV2aWNlIChtdXN0IGJlIGxvY2tlZClcbi0tXG5uZXQvcHNwL3BzcF9ubC5jPTUzPXN0YXRpYyB2b2lkXG5uZXQvcHNwL3BzcF9ubC5jOjU0OnBzcF9ubF9tdWx0aWNhc3RfcGVyX25zKHN0cnVjdCBwc3BfZGV2ICpwc2QsIHVuc2lnbmVkIGludCBncm91cCxcbm5ldC9wc3AvcHNwX25sLmMtNTUtXHRcdFx0c3RydWN0IHNrX2J1ZmYgKigqYnVpbGRfbnRmKShzdHJ1Y3QgcHNwX2RldiAqLFxuLS1cbm5ldC9wc3AvcHNwX25sLmM9MTEwPXN0YXRpYyB2b2lkIHBzcF9ubF9tdWx0aWNhc3RfYWxsX25zKHN0cnVjdCBwc3BfZGV2ICpwc2QsIHN0cnVjdCBza19idWZmICpudGYsXG4tLVxubmV0L3BzcC9wc3BfbmwuYy0xMTIte1xubmV0L3BzcC9wc3BfbmwuYzoxMTM6XHRwc3BfbmxfbXVsdGljYXN0X3Blcl9ucyhwc2QsIGdyb3VwLCBwc3BfbmxfY2xvbmVfbnRmLCBudGYpO1xubmV0L3BzcC9wc3BfbmwuYy0xMTQtXHRubG1zZ19jb25zdW1lKG50Zik7XG4tLVxubmV0L3BzcC9wc3BfbmwuYz0zNTA9dm9pZCBwc3Bfbmxfbm90aWZ5X2RldihzdHJ1Y3QgcHNwX2RldiAqcHNkLCB1MzIgY21kKVxubmV0L3BzcC9wc3BfbmwuYy0zNTEte1xubmV0L3BzcC9wc3BfbmwuYzozNTI6XHRwc3BfbmxfbXVsdGljYXN0X3Blcl9ucyhwc2QsIFBTUF9OTEdSUF9NR01ULFxubmV0L3BzcC9wc3BfbmwuYy0zNTMtXHRcdFx0XHRwc3BfbmxfYnVpbGRfZGV2X250ZiwgXHUwMDI2Y21kKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMjo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNTIyCgkJCQkJCQlvdXRwdXQ6IDE5CgkJCQkJCQl0aG91Z2h0czogMTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBkaXN0aWxsZWQ6CgoqKkludmVzdGlnYXRpbmcgdGhlIEFjdGl2YXRpb24gb2YgYG5ldC9wc3AvYCoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGljaCBjb25maWd1cmF0aW9uIG9wdGlvbiBpcyByZXNwb25zaWJsZSBmb3IgZW5hYmxpbmcgYG5ldC9wc3AvYC4gVGhpcyBpcyBhIGJpdCBvZiBhIGJyZWFkY3J1bWIgdHJhaWwgSSBuZWVkIHRvIGZvbGxvdy4gSSYjMzk7bSBhc3N1bWluZyBpdCYjMzk7cyBwcm9iYWJseSBzb21ld2hlcmUgaW4gdGhlIGtlcm5lbCBjb25maWd1cmF0aW9uLiBJJiMzOTtsbCBuZWVkIHRvIGtub3cgd2hpY2ggc2V0dGluZ3MgdHJpZ2dlciBpdHMgaW5jbHVzaW9uIGR1cmluZyB0aGUgYnVpbGQgcHJvY2Vzcy4gSSYjMzk7bGwgcHJvYmFibHkgaGF2ZSB0byBzdGFydCBieSBzZWFyY2hpbmcgdGhyb3VnaCB0aGUgYC5jb25maWdgIGZpbGVzIG9yIHRoZSBLY29uZmlnIGZpbGVzIHJlbGF0ZWQgdG8gbmV0d29ya2luZy4gSSYjMzk7bGwgYmUgbG9va2luZyBmb3Igc29tZXRoaW5nIHRoYXQgZWl0aGVyIGRpcmVjdGx5IG1lbnRpb25zIGBwc3BgIG9yIGluZGlyZWN0bHkgZW5hYmxlcyBpdCB0aHJvdWdoIHNvbWUgZGVwZW5kZW5jeSBjaGFpbi4gSSBleHBlY3QgdGhpcyB3aWxsIGJlIGEgcmVsYXRpdmVseSBzdHJhaWdodGZvcndhcmQgZmluZCwgZ2l2ZW4gdGhhdCB0aGlzIGlzIGEgZmVhdHVyZSBvZiB0aGUga2VybmVsIG5ldHdvcmsgc3RhY2ssIEkgYXNzdW1lLiBJJiMzOTtsbCBzdGFydCB3aXRoIGEgZmV3IGxpa2VseSBrZXl3b3JkcyBhbmQgc2VlIHdoZXJlIHRoYXQgbGVhZHMgbWUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMjI6NDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cHNwX25sLm8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3BzcC9NYWtlZmlsZT0zPW9iai0kKENPTkZJR19JTkVUX1BTUCkgJiM0Mzs9IHBzcC5vXG5uZXQvcHNwL01ha2VmaWxlLTQtXG5uZXQvcHNwL01ha2VmaWxlOjU6cHNwLXkgOj0gcHNwX21haW4ubyBwc3BfbmwubyBwc3Bfc29jay5vIHBzcC1ubC1nZW4ub1xuLS1cbm5ldC9wc3AvcHNwLW5sLWdlbi5jPTY0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBwc3BfZGV2X2Rpc2Fzc29jX25sX3BvbGljeVtQU1BfQV9ERVZfTlNJRCAmIzQzOyAxXSA9IHtcbi0tXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy03MC0vKiBPcHMgdGFibGUgZm9yIHBzcCAqL1xubmV0L3BzcC9wc3AtbmwtZ2VuLmM6NzE6c3RhdGljIGNvbnN0IHN0cnVjdCBnZW5sX3NwbGl0X29wcyBwc3Bfbmxfb3BzW10gPSB7XG5uZXQvcHNwL3BzcC1ubC1nZW4uYy03Mi1cdHtcbi0tXG5uZXQvcHNwL3BzcC1ubC1nZW4uYz0xNjE9c3RydWN0IGdlbmxfZmFtaWx5IHBzcF9ubF9mYW1pbHkgX19yb19hZnRlcl9pbml0ID0ge1xuLS1cbm5ldC9wc3AvcHNwLW5sLWdlbi5jLTE2Ni1cdC5tb2R1bGVcdFx0PSBUSElTX01PRFVMRSxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjE2NzpcdC5zcGxpdF9vcHNcdD0gcHNwX25sX29wcyxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjE2ODpcdC5uX3NwbGl0X29wc1x0PSBBUlJBWV9TSVpFKHBzcF9ubF9vcHMpLFxubmV0L3BzcC9wc3AtbmwtZ2VuLmMtMTY5LVx0Lm1jZ3Jwc1x0XHQ9IHBzcF9ubF9tY2dycHMsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMjI6NDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDExMAoJCQkJCQkJb3V0cHV0OiAxOQoJCQkJCQkJdGhvdWdodHM6IDMzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkludmVzdGlnYXRpbmcgdGhlIENPTkZJR19JTkVUX1BTUCBEZXBlbmRlbmN5IFRyZWUqKgoKQWxyaWdodCwgc28gYENPTkZJR19JTkVUX1BTUGAgaXMgdGhlIHRhcmdldC4gRmlyc3QgdGhpbmcgSSYjMzk7bSBkb2luZyBpcyBhIHF1aWNrIHNjYW4gb2YgdGhlIHJlbGV2YW50IGBLY29uZmlnYCBmaWxlcy4gSSYjMzk7bSBoaXR0aW5nIGBuZXQvcHNwL0tjb25maWdgIChvciBzb21ldGhpbmcgYW5hbG9nb3VzIGluIHRoZSBhcHByb3ByaWF0ZSBuZXR3b3JrIGRpcmVjdG9yeSDigJMgbGV0JiMzOTtzIGFzc3VtZSBpdCYjMzk7cyB0aGVyZSkgdG8gdW5yYXZlbCB0aGlzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBhbGwgdGhlIGRvd25zdHJlYW0gZGVwZW5kZW5jaWVzOyB3aGF0IG90aGVyIGtub2JzIGFuZCBsZXZlcnMgZG9lcyB0aGlzIGZsYWcgcHVsbD8gVGhpcyBpbmNsdWRlcyB0aGUgdXN1YWwgc3VzcGVjdHM6IHN1Yi1mZWF0dXJlcywgcHJlcmVxdWlzaXRlIG1vZHVsZXMsIG1heWJlIGV2ZW4gY2VydGFpbiBoYXJkd2FyZSByZXF1aXJlbWVudHMuIFRoZSBnb2FsIGlzIHRvIGZ1bGx5IGdyYXNwIHRoZSAqaW1wYWN0KiBvZiBlbmFibGluZyBgQ09ORklHX0lORVRfUFNQYC4gSSB3YW50IHRvIGlkZW50aWZ5IGFueSBwb3RlbnRpYWwgY29uZmxpY3RzIG9yIHNpZGUtZWZmZWN0cyB3aXRoIHRoZSByZXN0IG9mIG15IHN5c3RlbSYjMzk7cyBjb25maWd1cmF0aW9uLiBJJiMzOTtsbCBuZWVkIHRvIHNlZSBpZiB0aGlzIGludHJvZHVjZXMgYW55IG5ldyBleHBvc2VkIGtlcm5lbCBpbnRlcmZhY2VzLiBMZXQmIzM5O3Mgc2VlIGhvdyBkZWVwIHRoaXMgcmFiYml0IGhvbGUgZ29lcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMjo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgSU5FVF9QU1AmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3BzcC9LY29uZmlnLTQtI1xubmV0L3BzcC9LY29uZmlnOjU6Y29uZmlnIElORVRfUFNQXG5uZXQvcHNwL0tjb25maWctNi1cdGJvb2wgXCYjMzQ7UFNQIFNlY3VyaXR5IFByb3RvY29sIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMjo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NDIxCgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcy4gSGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBhcyBpZiB0aGV5JiMzOTtyZSBteSBvd246CgoqKkFuYWx5emluZyB0aGUgUFNQIEtjb25maWcgRmlsZSoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byB0YWtlIGEgbG9vayBhdCB0aGUgZnVsbCBgbmV0L3BzcC9LY29uZmlnYCBmaWxlLiBJIG5lZWQgdG8gZ2V0IGEgY29tcHJlaGVuc2l2ZSB1bmRlcnN0YW5kaW5nIG9mICpleGFjdGx5KiB3aGF0JiMzOTtzIGRlZmluZWQsIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXZhaWxhYmxlLCB0aGVpciBkZXBlbmRlbmNpZXMsIGFuZCBhbnkgZGVmYXVsdCBzZXR0aW5ncy4gVGhlcmUmIzM5O3Mgbm8gc3Vic3RpdHV0ZSBmb3Igc2VlaW5nIHRoZSB3aG9sZSBwaWN0dXJlLiBJJiMzOTttIGxvb2tpbmcgZm9yIHRoZSBmb3VuZGF0aW9uYWwgYnVpbGRpbmcgYmxvY2tzLCB0aGUgYXJjaGl0ZWN0dXJhbCBjaG9pY2VzIGJha2VkIGludG8gdGhpcyBzcGVjaWZpYyBQU1AgbmV0d29yayBjb25maWd1cmF0aW9uLiBJJiMzOTttIGV4cGVjdGluZyB0byBmaW5kIGRldGFpbHMgYXJvdW5kIHN1cHBvcnRlZCBoYXJkd2FyZSwgZmVhdHVyZXMgZW5hYmxlZCAob3IgZGlzYWJsZWQpLCBhbmQgdGhlIGxvZ2ljYWwgb3JnYW5pemF0aW9uIG9mIHRoZSBjb25maWd1cmF0aW9uIHNwYWNlLiBJIHdhbnQgdG8gYnVpbGQgYSBtZW50YWwgbWFwIG9mIHRoaXMgUFNQJiMzOTtzIGNhcGFiaWxpdGllcyBhbmQgY29uc3RyYWludHMuIFRoaXMgd2lsbCBiZSB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgaXRzIHBsYWNlIHdpdGhpbiB0aGUgbGFyZ2VyIHN5c3RlbS4gVGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIyOjQ1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L3BzcC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAxMDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuICAgMjpcdCNcbiAgIDM6XHQjIFBTUCBjb25maWd1cmF0aW9uXG4gICA0Olx0I1xuICAgNTpcdGNvbmZpZyBJTkVUX1BTUFxuICAgNjpcdFx0Ym9vbCBcJiMzNDtQU1AgU2VjdXJpdHkgUHJvdG9jb2wgc3VwcG9ydFwmIzM0O1xuICAgNzpcdFx0ZGVwZW5kcyBvbiBJTkVUXG4gICA4Olx0XHRzZWxlY3QgU0tCX0RFQ1JZUFRFRFxuICAgOTpcdFx0c2VsZWN0IFNLQl9FWFRFTlNJT05TXG4gIDEwOlx0XHRzZWxlY3QgU09DS19WQUxJREFURV9YTUlUXG4gIDExOlx0XHRoZWxwXG4gIDEyOlx0XHRFbmFibGUga2VybmVsIHN1cHBvcnQgZm9yIHRoZSBQU1AgU2VjdXJpdHkgUHJvdG9jb2wgKFBTUCkuXG4gIDEzOlx0XHRGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWU6XG4gIDE0Olx0XHQgIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9nb29nbGUvcHNwL21haW4vZG9jL1BTUF9BcmNoX1NwZWMucGRmXG4gIDE1Olx0XG4gIDE2Olx0XHRJZiB1bnN1cmUsIHNheSBOLlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMjo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0ODY2CgkJCQkJCQlvdXRwdXQ6IDIxCgkJCQkJCQl0aG91Z2h0czogNjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQU1AgQ29uZmlndXJhdGlvbiBDaGFuZ2UqKgoKT2theSwgc28gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBpcyBzZXQgdG8gYElORVRfUFNQYCwgYW5kIHRoYXQgb2J2aW91c2x5IGhpbmdlcyBvbiBgSU5FVGAuIFRoYXQmIzM5O3MgdGhlIGJhc2VsaW5lLiBNeSBmb2N1cywgdGhvdWdoLCBpcyBvbiB0aGlzIHBhdGNoIGFuZCBpdHMgaW1wYWN0IG9uIGBwc3BfbmxfbXVsdGljYXN0X3Blcl9uc2AuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSByaXBwbGUgZWZmZWN0cywgdGhlIGRvd25zdHJlYW0gZGVwZW5kZW5jaWVzLiBUaGUgbW9kaWZpY2F0aW9uIG1pZ2h0IHNlZW0gc21hbGwsIGJ1dCB0aGVzZSBuZXR3b3JrIHN0cnVjdHVyZXMgY2FuIGJlIGRlbGljYXRlLiBOb3csIEkmIzM5O20gZ29pbmcgdG8gbG9vayBhdCB0aGUgY29kZWJhc2UgYW5kIGlkZW50aWZ5ICpldmVyeSogZnVuY3Rpb24gdGhhdCBjYWxscyBgcHNwX25sX211bHRpY2FzdF9wZXJfbnNgIG9yIGBwc3Bfbmxfbm90aWZ5X2RldmAuIFRoaXMgd2lsbCB0ZWxsIG1lIHdoYXQgc3lzdGVtcyBhcmUgdXRpbGl6aW5nIHRoZSBmdW5jdGlvbnMsIGFuZCBJIGNhbiBhc3Nlc3Mgd2hlcmUgY2hhbmdlcyB3aWxsIGhhdmUgYW4gaW1wYWN0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMjo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwc3Bfbmxfbm90aWZ5X2RldiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvcHNwL3BzcC5oPTE5PWludCBwc3BfYXR0YWNoX25ldGRldl9ub3RpZmllcih2b2lkKTtcbm5ldC9wc3AvcHNwLmgtMjAtXG5uZXQvcHNwL3BzcC5oOjIxOnZvaWQgcHNwX25sX25vdGlmeV9kZXYoc3RydWN0IHBzcF9kZXYgKnBzZCwgdTMyIGNtZCk7XG5uZXQvcHNwL3BzcC5oLTIyLVxuLS1cbm5ldC9wc3AvcHNwX21haW4uYz01OT1wc3BfZGV2X2NyZWF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxuLS1cbm5ldC9wc3AvcHNwX21haW4uYy0xMDYtXHQgKi9cbm5ldC9wc3AvcHNwX21haW4uYzoxMDc6XHRwc3Bfbmxfbm90aWZ5X2Rldihwc2QsIFBTUF9DTURfREVWX0FERF9OVEYpO1xubmV0L3BzcC9wc3BfbWFpbi5jLTEwOC1cbi0tXG5uZXQvcHNwL3BzcF9tYWluLmM9MTMxPXZvaWQgcHNwX2Rldl91bnJlZ2lzdGVyKHN0cnVjdCBwc3BfZGV2ICpwc2QpXG4tLVxubmV0L3BzcC9wc3BfbWFpbi5jLTEzOC1cbm5ldC9wc3AvcHNwX21haW4uYzoxMzk6XHRwc3Bfbmxfbm90aWZ5X2Rldihwc2QsIFBTUF9DTURfREVWX0RFTF9OVEYpO1xubmV0L3BzcC9wc3BfbWFpbi5jLTE0MC1cbi0tXG5uZXQvcHNwL3BzcF9tYWluLmM9NDI0PXN0YXRpYyBpbnQgcHNwX25ldGRldl9ldmVudChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLCB1bnNpZ25lZCBsb25nIGV2ZW50LFxuLS1cbm5ldC9wc3AvcHNwX21haW4uYy00MzgtXHRcdGlmIChwc3BfZGV2X2lzX3JlZ2lzdGVyZWQocHNkKSlcbm5ldC9wc3AvcHNwX21haW4uYzo0Mzk6XHRcdFx0cHNwX25sX25vdGlmeV9kZXYocHNkLCBQU1BfQ01EX0RFVl9DSEFOR0VfTlRGKTtcbm5ldC9wc3AvcHNwX21haW4uYy00NDAtXHRcdHBzcF9kZXZfZGlzYXNzb2Nfb25lKHBzZCwgZGV2KTtcbi0tXG5uZXQvcHNwL3BzcF9ubC5jPTMyNj1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKnBzcF9ubF9idWlsZF9kZXZfbnRmKHN0cnVjdCBwc3BfZGV2ICpwc2QsXG4tLVxubmV0L3BzcC9wc3BfbmwuYy0zNDktXG5uZXQvcHNwL3BzcF9ubC5jOjM1MDp2b2lkIHBzcF9ubF9ub3RpZnlfZGV2KHN0cnVjdCBwc3BfZGV2ICpwc2QsIHUzMiBjbWQpXG5uZXQvcHNwL3BzcF9ubC5jLTM1MS17XG4tLVxubmV0L3BzcC9wc3BfbmwuYz00MDU9aW50IHBzcF9ubF9kZXZfc2V0X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbi0tXG5uZXQvcHNwL3BzcF9ubC5jLTQzNy1cbm5ldC9wc3AvcHNwX25sLmM6NDM4Olx0cHNwX25sX25vdGlmeV9kZXYocHNkLCBQU1BfQ01EX0RFVl9DSEFOR0VfTlRGKTtcbm5ldC9wc3AvcHNwX25sLmMtNDM5LVxuLS1cbm5ldC9wc3AvcHNwX25sLmM9NDk5PWludCBwc3BfbmxfZGV2X2Fzc29jX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbi0tXG5uZXQvcHNwL3BzcF9ubC5jLTU2Ny1cbm5ldC9wc3AvcHNwX25sLmM6NTY4Olx0cHNwX25sX25vdGlmeV9kZXYocHNkLCBQU1BfQ01EX0RFVl9DSEFOR0VfTlRGKTtcbm5ldC9wc3AvcHNwX25sLmMtNTY5LVxuLS1cbm5ldC9wc3AvcHNwX25sLmM9NTg0PWludCBwc3BfbmxfZGV2X2Rpc2Fzc29jX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbi0tXG5uZXQvcHNwL3BzcF9ubC5jLTYyMy1cdCAqL1xubmV0L3BzcC9wc3BfbmwuYzo2MjQ6XHRwc3Bfbmxfbm90aWZ5X2Rldihwc2QsIFBTUF9DTURfREVWX0NIQU5HRV9OVEYpO1xubmV0L3BzcC9wc3BfbmwuYy02MjUtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIyOjQ1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYwMDMKCQkJCQkJCW91dHB1dDogMTkKCQkJCQkJCXRob3VnaHRzOiAxOTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqVHJhY2luZyB0aGUgUFNQIERldmljZSBDcmVhdGlvbiBQYXRoKioKCk9rYXksIHNvIEkmIzM5O20gZGl2aW5nIGludG8gdGhpcyBQU1AgY29kZSwgYW5kIG15IGluaXRpYWwgZm9jdXMgaXMgb24gdW5kZXJzdGFuZGluZyB0aGUgZGV2aWNlIGNyZWF0aW9uIGFuZCBub3RpZmljYXRpb24gcHJvY2Vzcy4gVGhlIGNvcmUgb2YgdGhlIG11bHRpY2FzdCBmdW5jdGlvbmFsaXR5IGFwcGVhcnMgdG8gcmVzaWRlIHdpdGhpbiBgcHNwX25sX211bHRpY2FzdF9wZXJfbnNgLCB3aGljaCBpcyB0cmlnZ2VyZWQgYnkgYHBzcF9ubF9tdWx0aWNhc3RfYWxsX25zYCBhbmQsIGltcG9ydGFudGx5LCBgcHNwX25sX25vdGlmeV9kZXZgLiBUaGlzIGBwc3Bfbmxfbm90aWZ5X2RldmAgZnVuY3Rpb24gYWN0cyBhcyBhIGNydWNpYWwgbGluayBiZWNhdXNlIGl0JiMzOTtzIGNhbGxlZCBieSBzZXZlcmFsIG5ldGxpbmsgaGFuZGxlcnMgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIGZvciBQU1Agb3BlcmF0aW9ucy4KClNwZWNpZmljYWxseSwgSSBzZWUgYHBzcF9kZXZfY3JlYXRlYCwgYHBzcF9kZXZfdW5yZWdpc3RlcmAsIGBwc3BfbmV0ZGV2X2V2ZW50YCwgYHBzcF9ubF9kZXZfc2V0X2RvaXRgLCBgcHNwX25sX2Rldl9hc3NvY19kb2l0YCwgYW5kIGBwc3BfbmxfZGV2X2Rpc2Fzc29jX2RvaXRgIGFzIHRoZSBjYWxsaW5nIGZ1bmN0aW9ucy4gVGhlc2UgbmV0bGluayBoYW5kbGVycyBhcmUgdGhlIGtleSBlbnRyeSBwb2ludHMgZm9yIG1hbmFnaW5nIGFuZCBpbnRlcmFjdGluZyB3aXRoIFBTUCBkZXZpY2VzLiBUaGVyZWZvcmUsIGEgZGVlcGVyIHVuZGVyc3RhbmRpbmcgb2YgYHBzcF9ubF9kZXZfc2V0X2RvaXRgLCBgcHNwX25sX2Rldl9hc3NvY19kb2l0YCwgYW5kIGBwc3BfbmxfZGV2X2Rpc2Fzc29jX2RvaXRgIGlzIGVzc2VudGlhbCwgYXMgdGhleSBhcmUgbGlrZWx5IHJlc3BvbnNpYmxlIGZvciB0cmlnZ2VyaW5nIG5vdGlmaWNhdGlvbnMuCgpIb3dldmVyLCBJIHRoaW5rIHRoZSBtb3N0IGltcG9ydGFudCBmdW5jdGlvbiB0byBsb29rIGF0IGZpcnN0IGlzIGBwc3BfZGV2X2NyZWF0ZWAsIHRoZSBmdW5jdGlvbiBjYWxsZWQgd2hlbiBhIFBTUCBkZXZpY2UgaXMgYWN0dWFsbHkgY3JlYXRlZC4gQnkgdHJhY2luZyB0aGUgZXhlY3V0aW9uIHBhdGggb2YgdGhpcyBmdW5jdGlvbiwgSSBzaG91bGQgYmUgYWJsZSB0byBnZXQgYSBiZXR0ZXIgaGFuZGxlIG9uIGhvdyB0aGUgd2hvbGUgc3lzdGVtIHdvcmtzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMjo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwc3BfZGV2X2NyZWF0ZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvcHNwLmM9MTA4Mj12b2lkIG1seDVlX3BzcF9yZWdpc3RlcihzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvcHNwLmMtMTA5Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9wc3AuYzoxMDk3Olx0cHNkID0gcHNwX2Rldl9jcmVhdGUocHJpdi1cdTAwM2VuZXRkZXYsIFx1MDAyNm1seDVfcHNwX29wcywgXHUwMDI2cHNwLVx1MDAzZWNhcHMsIE5VTEwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL3BzcC5jLTEwOTgtXHRpZiAoSVNfRVJSKHBzZCkpIHtcbi0tXG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vcHNwLmM9MjQyPW5zaW1fcHNwX3JlcmVnX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFyIF9fdXNlciAqZGF0YSwgc2l6ZV90IGNvdW50LFxuLS1cbmRyaXZlcnMvbmV0L25ldGRldnNpbS9wc3AuYy0yNTEtXG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vcHNwLmM6MjUyOlx0cHNkID0gcHNwX2Rldl9jcmVhdGUobnMtXHUwMDNlbmV0ZGV2LCBcdTAwMjZuc2ltX3BzcF9vcHMsIFx1MDAyNm5zaW1fcHNwX2NhcHMsIG5zKTtcbmRyaXZlcnMvbmV0L25ldGRldnNpbS9wc3AuYy0yNTMtXHRpZiAoSVNfRVJSKHBzZCkpIHtcbi0tXG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vcHNwLmM9MjcyPWludCBuc2ltX3BzcF9pbml0KHN0cnVjdCBuZXRkZXZzaW0gKm5zKVxuLS1cbmRyaXZlcnMvbmV0L25ldGRldnNpbS9wc3AuYy0yNzYtXG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vcHNwLmM6Mjc3Olx0cHNkID0gcHNwX2Rldl9jcmVhdGUobnMtXHUwMDNlbmV0ZGV2LCBcdTAwMjZuc2ltX3BzcF9vcHMsIFx1MDAyNm5zaW1fcHNwX2NhcHMsIG5zKTtcbmRyaXZlcnMvbmV0L25ldGRldnNpbS9wc3AuYy0yNzgtXHRpZiAoSVNfRVJSKHBzZCkpXG4tLVxuaW5jbHVkZS9uZXQvcHNwL2Z1bmN0aW9ucy5oPTE2PXN0cnVjdCBwc3BfZGV2ICpcbmluY2x1ZGUvbmV0L3BzcC9mdW5jdGlvbnMuaDoxNzpwc3BfZGV2X2NyZWF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBzdHJ1Y3QgcHNwX2Rldl9vcHMgKnBzZF9vcHMsXG5pbmNsdWRlL25ldC9wc3AvZnVuY3Rpb25zLmgtMTgtXHQgICAgICAgc3RydWN0IHBzcF9kZXZfY2FwcyAqcHNkX2NhcHMsIHZvaWQgKnByaXZfcHRyKTtcbi0tXG5uZXQvcHNwL3BzcF9tYWluLmM9Mzg9aW50IHBzcF9kZXZfY2hlY2tfYWNjZXNzKHN0cnVjdCBwc3BfZGV2ICpwc2QsIHN0cnVjdCBuZXQgKm5ldCwgYm9vbCBhZG1pbilcbi0tXG5uZXQvcHNwL3BzcF9tYWluLmMtNDktLyoqXG5uZXQvcHNwL3BzcF9tYWluLmM6NTA6ICogcHNwX2Rldl9jcmVhdGUoKSAtIGNyZWF0ZSBhbmQgcmVnaXN0ZXIgUFNQIGRldmljZVxubmV0L3BzcC9wc3BfbWFpbi5jLTUxLSAqIEBuZXRkZXY6XHRtYWluIG5ldGRldmljZVxuLS1cbm5ldC9wc3AvcHNwX21haW4uYz01OD1zdHJ1Y3QgcHNwX2RldiAqXG5uZXQvcHNwL3BzcF9tYWluLmM6NTk6cHNwX2Rldl9jcmVhdGUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbm5ldC9wc3AvcHNwX21haW4uYy02MC1cdCAgICAgICBzdHJ1Y3QgcHNwX2Rldl9vcHMgKnBzZF9vcHMsIHN0cnVjdCBwc3BfZGV2X2NhcHMgKnBzZF9jYXBzLFxuLS1cbm5ldC9wc3AvcHNwX21haW4uYy0xMTQtfVxubmV0L3BzcC9wc3BfbWFpbi5jOjExNTpFWFBPUlRfU1lNQk9MKHBzcF9kZXZfY3JlYXRlKTtcbm5ldC9wc3AvcHNwX21haW4uYy0xMTYtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIyOjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDczNzEKCQkJCQkJCW91dHB1dDogMjAKCQkJCQkJCXRob3VnaHRzOiA2MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIHNlZSB3aGF0IHdlJiMzOTt2ZSBnb3QgaGVyZS4KCioqSW5pdGlhbCBBc3Nlc3NtZW50IG9mIFBTUCBEcml2ZXIgSW5pdGlhbGl6YXRpb24qKgoKUmlnaHQsIHNvIGBwc3BfZGV2X2NyZWF0ZWAgaXMgYmVpbmcgY2FsbGVkIGJ5IGBuc2ltX3BzcF9pbml0YC4gVGhhdCYjMzk7cyBpbnRlcmVzdGluZywgYW5kIHBvdGVudGlhbGx5IHZlcnkgdXNlZnVsLiBUaGUgZmFjdCB0aGF0IGl0JiMzOTtzIGluIGBkcml2ZXJzL25ldC9uZXRkZXZzaW0vcHNwLmNgIGltbWVkaWF0ZWx5IHRlbGxzIG1lIHRoYXQgdGhpcyBpcyB0ZXN0YWJsZSB2aWEgbmV0ZGV2c2ltLiBUaGlzIGlzIGEgZ3JlYXQgc3RhcnRpbmcgcG9pbnQgZm9yIGFuYWx5emluZyBhbmQgcGVyaGFwcyBldmVudHVhbGx5IG1vZGlmeWluZyB0aGUgcHNwIGRyaXZlci4gTm93LCB0aGUgb2J2aW91cyBuZXh0IHN0ZXAgaXMgdG8gZmlndXJlIG91dCB0aGUgc3BlY2lmaWMgY29uZmlndXJhdGlvbiByZXF1aXJlZCB0byBpbml0aWFsaXplIGBuc2ltX3BzcF9pbml0YC4gTGV0JiMzOTtzIGRpZyBpbnRvIHRoYXQgYW5kIHNlZSB3aGF0IHdlIGNhbiBmaW5kLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMjo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtuc2ltX3BzcF9pbml0JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXYuYz0xMDM4PXN0YXRpYyBpbnQgbnNpbV9pbml0X25ldGRldnNpbShzdHJ1Y3QgbmV0ZGV2c2ltICpucylcbi0tXG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vbmV0ZGV2LmMtMTA3NC1cbmRyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXYuYzoxMDc1Olx0ZXJyID0gbnNpbV9wc3BfaW5pdChucyk7XG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vbmV0ZGV2LmMtMTA3Ni1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oPTQ0Nj1zdGF0aWMgaW5saW5lIHZvaWQgbnNpbV9tYWNzZWNfdGVhcmRvd24oc3RydWN0IG5ldGRldnNpbSAqbnMpXG4tLVxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oLTQ1MS0jaWYgSVNfRU5BQkxFRChDT05GSUdfSU5FVF9QU1ApXG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vbmV0ZGV2c2ltLmg6NDUyOmludCBuc2ltX3BzcF9pbml0KHN0cnVjdCBuZXRkZXZzaW0gKm5zKTtcbmRyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXZzaW0uaC00NTMtdm9pZCBuc2ltX3BzcF91bmluaXQoc3RydWN0IG5ldGRldnNpbSAqbnMpO1xuLS1cbmRyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXZzaW0uaD00NTY9bnNpbV9kb19wc3Aoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldGRldnNpbSAqbnMsXG4tLVxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oLTQ1OC0jZWxzZVxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oOjQ1OTpzdGF0aWMgaW5saW5lIGludCBuc2ltX3BzcF9pbml0KHN0cnVjdCBuZXRkZXZzaW0gKm5zKSB7IHJldHVybiAwOyB9XG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vbmV0ZGV2c2ltLmgtNDYwLXN0YXRpYyBpbmxpbmUgdm9pZCBuc2ltX3BzcF91bmluaXQoc3RydWN0IG5ldGRldnNpbSAqbnMpIHt9XG4tLVxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL3BzcC5jPTI2NT1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBuc2ltX3BzcF9yZXJlZ19mb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L25ldGRldnNpbS9wc3AuYy0yNzEtXG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vcHNwLmM6MjcyOmludCBuc2ltX3BzcF9pbml0KHN0cnVjdCBuZXRkZXZzaW0gKm5zKVxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL3BzcC5jLTI3My17XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIyOjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDgxMTMKCQkJCQkJCW91dHB1dDogMTkKCQkJCQkJCXRob3VnaHRzOiA1NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBOZXRkZXZzaW0gYW5kIFBTUCBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIGl0IHNlZW1zIGxpa2UgZW5hYmxpbmcgYENPTkZJR19JTkVUX1BTUGAgaXMgc3VmZmljaWVudCB0byBnZXQgUFNQIGZ1bmN0aW9uYWxpdHkgd29ya2luZyB3aXRoaW4gbmV0ZGV2c2ltLCBhc3N1bWluZywgb2YgY291cnNlLCB0aGF0IGBDT05GSUdfTkVUREVWU0lNYCBpcyBhbHNvIGVuYWJsZWQuIFRoYXQgc2VlbXMgc3RyYWlnaHRmb3J3YXJkIGVub3VnaCwgYnV0IEkgYWx3YXlzIHByZWZlciB0byBiZSB0aG9yb3VnaC4gSSBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoZXJlIGFyZW4mIzM5O3QgYW55IG90aGVyIHN1YnRsZSBkZXBlbmRlbmNpZXMgbHVya2luZyB3aXRoaW4gdGhlIG5ldGRldnNpbSBLY29uZmlnIGZpbGUgdGhhdCBtaWdodCBpbmZsdWVuY2UgdGhpcy4gTGV0IG1lIHF1aWNrbHkgZXhhbWluZSBgZHJpdmVycy9uZXQvbmV0ZGV2c2ltL0tjb25maWdgIGFuZCBkb3VibGUtY2hlY2sgZm9yIGFueSBoaWRkZW4gZ290Y2hhcyBvciBjb25kaXRpb25hbCBkZXBlbmRlbmNpZXMgdGhhdCBjb3VsZCBpbXBhY3QgdGhpcyBjb25maWd1cmF0aW9uLiBCZXR0ZXIgc2FmZSB0aGFuIHNvcnJ5IHdoZW4gZGVhbGluZyB3aXRoIGtlcm5lbCBjb25maWd1cmF0aW9ucyEKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMjI6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE5FVERFVlNJTSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9LY29uZmlnPTYwMj1zb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvaHlwZXJ2L0tjb25maWdcJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWctNjAzLVxuZHJpdmVycy9uZXQvS2NvbmZpZzo2MDQ6Y29uZmlnIE5FVERFVlNJTVxuZHJpdmVycy9uZXQvS2NvbmZpZy02MDUtXHR0cmlzdGF0ZSBcJiMzNDtTaW11bGF0ZWQgbmV0d29ya2luZyBkZXZpY2VcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMjI6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODQxOAoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDE4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipOYXZpZ2F0aW5nIHRoZSBOZXR3b3JrIERyaXZlciBDb25maWd1cmF0aW9uIExhbmRzY2FwZSoqCgpPa2F5LCB0aW1lIHRvIGRpdmUgaW50byB0aGUgbml0dHktZ3JpdHR5IG9mIHRoZSBuZXR3b3JrIGRyaXZlciBjb25maWd1cmF0aW9uLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgYSBwYXJ0aWN1bGFyIGZlYXR1cmUsIG9yIHBlcmhhcHMgYSBjb25mbGljdCwgaXMgYmVpbmcgY29udHJvbGxlZC4gTXkgZ3V0IHRlbGxzIG1lIHRoYXQgdGhlIGtleSBsaWVzIHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L0tjb25maWdgIGZpbGUuIEkmIzM5O20gZ29pbmcgdG8ganVtcCByaWdodCBpbnRvIGl0LiBJJiMzOTttIGJldHRpbmcgdGhhdCBhcm91bmQgbGluZSA2MDQsIEkmIzM5O2xsIGZpbmQgdGhlIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aGF0IGFyZSByZWxldmFudCB0byB3aGF0IEkmIzM5O20gbG9va2luZyBmb3IuIFRoaXMgaXMgd2hlcmUgdGhlIG1hZ2ljIGhhcHBlbnMsIHdoZXJlIHRoZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiBhbmQgZGVwZW5kZW5jaWVzIGFyZSBkZWZpbmVkLiBIb3BlZnVsbHksIHRoaXMgaXMgd2hlcmUgSSYjMzk7bGwgZmluZCB3aGF0IEkgbmVlZCB0byBlaXRoZXIgc29sdmUgdGhlIHByb2JsZW0gSSYjMzk7bSBpbnZlc3RpZ2F0aW5nIG9yIHRvIGdldCB0byBhIGRlZXBlciBsZXZlbCBvZiB1bmRlcnN0YW5kaW5nLiBMZXQmIzM5O3Mgc2VlIHdoYXQgS2NvbmZpZyBoYXMgaW4gc3RvcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIyOjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDYwMCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgNjAwOlx0XG4gNjAxOlx0c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L3RodW5kZXJib2x0L0tjb25maWdcJiMzNDtcbiA2MDI6XHRzb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvaHlwZXJ2L0tjb25maWdcJiMzNDtcbiA2MDM6XHRcbiA2MDQ6XHRjb25maWcgTkVUREVWU0lNXG4gNjA1Olx0XHR0cmlzdGF0ZSBcJiMzNDtTaW11bGF0ZWQgbmV0d29ya2luZyBkZXZpY2VcJiMzNDtcbiA2MDY6XHRcdGRlcGVuZHMgb24gREVCVUdfRlNcbiA2MDc6XHRcdGRlcGVuZHMgb24gSU5FVFxuIDYwODpcdFx0ZGVwZW5kcyBvbiBQU0FNUExFIHx8IFBTQU1QTEU9blxuIDYwOTpcdFx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS19NT0NLIHx8IFBUUF8xNTg4X0NMT0NLX01PQ0s9blxuIDYxMDpcdFx0c2VsZWN0IE5FVF9ERVZMSU5LXG4gNjExOlx0XHRzZWxlY3QgUEFHRV9QT09MXG4gNjEyOlx0XHRzZWxlY3QgTkVUX1NIQVBFUlxuIDYxMzpcdFx0aGVscFxuIDYxNDpcdFx0ICBUaGlzIGRyaXZlciBpcyBhIGRldmVsb3BlciB0ZXN0aW5nIHRvb2wgYW5kIHNvZnR3YXJlIG1vZGVsIHRoYXQgY2FuXG4gNjE1Olx0XHQgIGJlIHVzZWQgdG8gdGVzdCB2YXJpb3VzIGNvbnRyb2wgcGF0aCBuZXR3b3JraW5nIEFQSXMsIGVzcGVjaWFsbHlcbiA2MTY6XHRcdCAgSFctb2ZmbG9hZCByZWxhdGVkLlxuIDYxNzpcdFxuIDYxODpcdFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlXG4gNjE5Olx0XHQgIHdpbGwgYmUgY2FsbGVkIG5ldGRldnNpbS5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMjI6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODk2OAoJCQkJCQkJb3V0cHV0OiAxNwoJCQkJCQkJdGhvdWdodHM6IDMzMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIFRhcmdldCBJZGVudGlmaWNhdGlvbjogUFNQIE5ldGxpbmsgUmFjZSBDb25kaXRpb24qKgoKT2theSwgc28gSSYjMzk7dmUgZ290IHRoaXMgcGF0Y2gg4oCTIGl0IGxvb2tzIGxpa2UgaXQmIzM5O3MgYWRkcmVzc2luZyBhIHJhY2UgY29uZGl0aW9uIHdpdGhpbiBgcHNwX25sX211bHRpY2FzdF9wZXJfbnNgLCBzcGVjaWZpY2FsbHkgaW4gdGhlIGBuZXQvcHNwL3BzcF9ubC5jYCBmaWxlLiBJdCYjMzk7cyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBub3QgYSBzdXBlcmZpY2lhbCBvbmUsIGFuZCBpdCYjMzk7cyBmaXhpbmcgc29tZXRoaW5nIHJlbGF0ZWQgdG8gZGV2aWNlcyBjaGFuZ2luZyBuZXR3b3JrIG5hbWVzcGFjZXMgY29uY3VycmVudGx5LiBUaGlzIHNjcmVhbXMgJiMzNDtmdXp6aW5nIG9wcG9ydHVuaXR5JiMzNDsgdG8gbWUsIGVzcGVjaWFsbHkgZ2l2ZW4gdGhlIGNvbnRleHQgb2YgUFNQIChQU1AgU2VjdXJpdHkgUHJvdG9jb2wpIG5ldGxpbmsgaW50ZXJhY3Rpb25zLgoKVGhlIHBhdGNoIHNlZW1zIHRvIHJlcXVpcmUgYERFQlVHX0ZTYCBhbmQgYElORVRgLCB3aGljaCBpcyBnb29kIHRvIGtub3cgZm9yIHNldHVwLiBXZSYjMzk7cmUgdGFsa2luZyBhYm91dCBjb3JlIFBTUCBsb2dpYyByZWFjaGFibGUgdmlhIG5ldGxpbmsgY29tbWFuZHMsIHdoaWNoIG1ha2VzIGl0IGZ1enphYmxlIHdpdGggdGhlIGBuZXRkZXZzaW1gIGRyaXZlci4gUGVyZmVjdC4KCk15IGluaXRpYWwgdGhvdWdodCBpcyB0byB6ZXJvIGluIG9uIHRoZSBuZXRsaW5rIGVudHJ5IHBvaW50cyB0aGF0IHVsdGltYXRlbHkgY2FsbCBpbnRvIGBwc3BfbmxfbXVsdGljYXN0X3Blcl9uc2AuIFNpbmNlIGBwc3BfbmxfbXVsdGljYXN0X3Blcl9uc2AgaXMgc3RhdGljLCB3ZSYjMzk7cmUgbm90IGdvaW5nIHRvIGJlIGFibGUgdG8gY2FsbCB0aGUgZnVuY3Rpb24gZGlyZWN0bHkuIEFmdGVyIGEgYml0IG9mIHJldmlldywgYHBzcF9ubF9kZXZfc2V0X2RvaXRgLCBgcHNwX25sX2Rldl9hc3NvY19kb2l0YCwgYW5kIGBwc3BfbmxfZGV2X2Rpc2Fzc29jX2RvaXRgIHNlZW0gbGlrZSB0aGUga2V5IGVudHJ5IHBvaW50cy4gQW5kLCBgcHNwX2Rldl9jcmVhdGVgIGxvb2tzIGxpa2UgYW5vdGhlciBpbXBvcnRhbnQgc3ltYm9sLiBJJiMzOTtsbCBuZWVkIHRvIGVuYWJsZSBgSU5FVF9QU1BgIGFuZCBgTkVUREVWU0lNYCBmb3IgdGhlIGZ1enppbmcgc2V0dXAuCgpOb3csIGxldCBtZSBqdXN0IHF1aWNrbHkgZG91YmxlLWNoZWNrIHRoYXQgdGhlcmUgYXJlbiYjMzk7dCBhbnkgb3RoZXIgcG90ZW50aWFsbHkgcmVsZXZhbnQgbmV0bGluayBlbnRyeSBwb2ludHMgaW4gYG5ldC9wc3AvcHNwX25sLmNgIHRoYXQgSSBtaWdodCBoYXZlIG1pc3NlZC4gR290dGEgYmUgdGhvcm91Z2guCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIyOjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O19kb2l0JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAzMzM0IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvZ2VuZXRsaW5rLWMueWFtbD0yOT1wcm9wZXJ0aWVzOlxuLS1cbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmstYy55YW1sLTM1MS0gICAgICAgICAgICAgICAgcHJlOlxuRG9jdW1lbnRhdGlvbi9uZXRsaW5rL2dlbmV0bGluay1jLnlhbWw6MzUyOiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBIb29rIGZvciBhIGZ1bmN0aW9uIHRvIHJ1biBiZWZvcmUgdGhlIG1haW4gY2FsbGJhY2sgKHByZV9kb2l0IG9yIHN0YXJ0KS5cbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmstYy55YW1sLTM1My0gICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmdcbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmstYy55YW1sLTM1NC0gICAgICAgICAgICAgICAgcG9zdDpcbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmstYy55YW1sOjM1NTogICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogSG9vayBmb3IgYSBmdW5jdGlvbiB0byBydW4gYWZ0ZXIgdGhlIG1haW4gY2FsbGJhY2sgKHBvc3RfZG9pdCBvciBkb25lKS5cbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmstYy55YW1sLTM1Ni0gICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmdcbi0tXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvZ2VuZXRsaW5rLWxlZ2FjeS55YW1sPTMyPXByb3BlcnRpZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9uZXRsaW5rL2dlbmV0bGluay1sZWdhY3kueWFtbC00MTgtICAgICAgICAgICAgICAgIHByZTpcbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmstbGVnYWN5LnlhbWw6NDE5OiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBIb29rIGZvciBhIGZ1bmN0aW9uIHRvIHJ1biBiZWZvcmUgdGhlIG1haW4gY2FsbGJhY2sgKHByZV9kb2l0IG9yIHN0YXJ0KS5cbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmstbGVnYWN5LnlhbWwtNDIwLSAgICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZ1xuRG9jdW1lbnRhdGlvbi9uZXRsaW5rL2dlbmV0bGluay1sZWdhY3kueWFtbC00MjEtICAgICAgICAgICAgICAgIHBvc3Q6XG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvZ2VuZXRsaW5rLWxlZ2FjeS55YW1sOjQyMjogICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogSG9vayBmb3IgYSBmdW5jdGlvbiB0byBydW4gYWZ0ZXIgdGhlIG1haW4gY2FsbGJhY2sgKHBvc3RfZG9pdCBvciBkb25lKS5cbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmstbGVnYWN5LnlhbWwtNDIzLSAgICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZ1xuLS1cbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmsueWFtbD0zMj1wcm9wZXJ0aWVzOlxuLS1cbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmsueWFtbC0zMDMtICAgICAgICAgICAgICAgIHByZTpcbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmsueWFtbDozMDQ6ICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IEhvb2sgZm9yIGEgZnVuY3Rpb24gdG8gcnVuIGJlZm9yZSB0aGUgbWFpbiBjYWxsYmFjayAocHJlX2RvaXQgb3Igc3RhcnQpLlxuRG9jdW1lbnRhdGlvbi9uZXRsaW5rL2dlbmV0bGluay55YW1sLTMwNS0gICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmdcbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmsueWFtbC0zMDYtICAgICAgICAgICAgICAgIHBvc3Q6XG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvZ2VuZXRsaW5rLnlhbWw6MzA3OiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBIb29rIGZvciBhIGZ1bmN0aW9uIHRvIHJ1biBhZnRlciB0aGUgbWFpbiBjYWxsYmFjayAocG9zdF9kb2l0IG9yIGRvbmUpLlxuRG9jdW1lbnRhdGlvbi9uZXRsaW5rL2dlbmV0bGluay55YW1sLTMwOC0gICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmdcbi0tXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvbmV0bGluay1yYXcueWFtbD0zNT1wcm9wZXJ0aWVzOlxuLS1cbkRvY3VtZW50YXRpb24vbmV0bGluay9uZXRsaW5rLXJhdy55YW1sLTQ4NS0gICAgICAgICAgICAgICAgcHJlOlxuRG9jdW1lbnRhdGlvbi9uZXRsaW5rL25ldGxpbmstcmF3LnlhbWw6NDg2OiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBIb29rIGZvciBhIGZ1bmN0aW9uIHRvIHJ1biBiZWZvcmUgdGhlIG1haW4gY2FsbGJhY2sgKHByZV9kb2l0IG9yIHN0YXJ0KS5cbkRvY3VtZW50YXRpb24vbmV0bGluay9uZXRsaW5rLXJhdy55YW1sLTQ4Ny0gICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmdcbkRvY3VtZW50YXRpb24vbmV0bGluay9uZXRsaW5rLXJhdy55YW1sLTQ4OC0gICAgICAgICAgICAgICAgcG9zdDpcbkRvY3VtZW50YXRpb24vbmV0bGluay9uZXRsaW5rLXJhdy55YW1sOjQ4OTogICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogSG9vayBmb3IgYSBmdW5jdGlvbiB0byBydW4gYWZ0ZXIgdGhlIG1haW4gY2FsbGJhY2sgKHBvc3RfZG9pdCBvciBkb25lKS5cbkRvY3VtZW50YXRpb24vbmV0bGluay9uZXRsaW5rLXJhdy55YW1sLTQ5MC0gICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmdcbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q9MzUxPWxvY2sgbXVzdCBhbHdheXMgYmUgYWNxdWlyZWQgYmVmb3JlIHRoZSBwaHlzaWNhbCBkZXZpY2UmIzM5O3MgKHNlZVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0OjM1MjpgYG5ldGRldl9ubF9xdWV1ZV9jcmVhdGVfZG9pdGBgKS5cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC0zNTMtXG4tLVxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvc3BlY3MucnN0PTM3Mj1NZXNzYWdlcyBjYW4gYWxzbyBkZWZpbmUgYGBwcmVgYCBhbmQgYGBwb3N0YGAgcHJvcGVydGllcyB3aGljaCB3aWxsIGJlIHJlbmRlcmVkXG5Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbmV0bGluay9zcGVjcy5yc3Q6MzczOmFzIGBgcHJlX2RvaXRgYCBhbmQgYGBwb3N0X2RvaXRgYCBjYWxscyBpbiB0aGUga2VybmVsICh0aGVzZSBwcm9wZXJ0aWVzIHNob3VsZFxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvc3BlY3MucnN0LTM3NC1iZSBpZ25vcmVkIGJ5IHVzZXIgc3BhY2UpLlxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9ODE9c3RhdGljIGludCBkcmJkX21zZ19zcHJpbnRmX2luZm8oc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3QgY2hhciAqZm10LCAuLi4pXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0xMTMtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjExNDovKiBQZXItY29tbWFuZCBmbGFncyBmb3IgZHJiZF9wcmVfZG9pdCgpICovXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTExNS1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGRyYmRfZ2VubF9jbWRfZmxhZ3NbXSA9IHtcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTE1OD1zdGF0aWMgaW50IGRyYmRfYWRtX3ByZXBhcmUoc3RydWN0IGRyYmRfY29uZmlnX2NvbnRleHQgKmFkbV9jdHgsXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMDQtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjMwNTppbnQgZHJiZF9wcmVfZG9pdChjb25zdCBzdHJ1Y3QgZ2VubF9zcGxpdF9vcHMgKm9wcyxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzA2LVx0XHQgIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMzItXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjMzMzp2b2lkIGRyYmRfcG9zdF9kb2l0KGNvbnN0IHN0cnVjdCBnZW5sX3NwbGl0X29wcyAqb3BzLFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMzQtXHRcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9Nzk5PXN0YXRpYyBpbnQgZHJiZF9ubF9zZXRfcm9sZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtODM4LVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo4Mzk6aW50IGRyYmRfbmxfcHJpbWFyeV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTg0MC17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy04NDMtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjg0NDppbnQgZHJiZF9ubF9zZWNvbmRhcnlfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy04NDUte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9OTEzPWNoYXIgKnBwc2l6ZShjaGFyICpidWYsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplKVxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtOTQyLS8qIE5vdGUgdGhlc2UgYXJlIG5vdCB0byBiZSBjb25mdXNlZCB3aXRoXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjk0MzogKiBkcmJkX25sX3N1c3BlbmRfaW9fZG9pdC9kcmJkX25sX3Jlc3VtZV9pb19kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy05NDQtICogd2hpY2ggYXJlIChzdWIpIHN0YXRlIGNoYW5nZXMgdHJpZ2dlcmVkIGJ5IGFkbWluIChkcmJkc2V0dXApLFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9MTUzMT1zdGF0aWMgaW50IGRpc2tfb3B0c19jaGVja19hbF9zaXplKHN0cnVjdCBkcmJkX2RldmljZSAqZGV2aWNlLCBzdHJ1Y3QgZGlza19jb25mICpkYylcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTE1NTQtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjE1NTU6aW50IGRyYmRfbmxfY2hnX2Rpc2tfb3B0c19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTE1NTYte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9MTc4MT12b2lkIGRyYmRfYmFja2luZ19kZXZfZnJlZShzdHJ1Y3QgZHJiZF9kZXZpY2UgKmRldmljZSwgc3RydWN0IGRyYmRfYmFja2luZ19kZXYgKmxkZXYpXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0xNzkzLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzoxNzk0OmludCBkcmJkX25sX2F0dGFjaF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTE3OTUte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9MjIxOD1zdGF0aWMgaW50IGFkbV9kZXRhY2goc3RydWN0IGRyYmRfZGV2aWNlICpkZXZpY2UsIGludCBmb3JjZSlcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTIyMzMtICogT25seSB0aGVuIHdlIGhhdmUgZmluYWxseSBkZXRhY2hlZC4gKi9cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6MjIzNDppbnQgZHJiZF9ubF9kZXRhY2hfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yMjM1LXtcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTI0MjQ9c3RhdGljIHZvaWQgZnJlZV9jcnlwdG8oc3RydWN0IGNyeXB0byAqY3J5cHRvKVxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMjQzMS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6MjQzMjppbnQgZHJiZF9ubF9jaGdfbmV0X29wdHNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yNDMzLXtcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTI1NzQ9c3RhdGljIHZvaWQgcGVlcl9kZXZpY2VfdG9faW5mbyhzdHJ1Y3QgcGVlcl9kZXZpY2VfaW5mbyAqaW5mbyxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI1ODYtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjI1ODc6aW50IGRyYmRfbmxfY29ubmVjdF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI1ODgte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9MjczNj1zdGF0aWMgZW51bSBkcmJkX3N0YXRlX3J2IGNvbm5fdHJ5X2Rpc2Nvbm5lY3Qoc3RydWN0IGRyYmRfY29ubmVjdGlvbiAqY29ubmVjdGlvbiwgYm9vbCBmb3JjZSlcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI4MDEtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjI4MDI6aW50IGRyYmRfbmxfZGlzY29ubmVjdF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI4MDMte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9Mjg0MT12b2lkIHJlc3luY19hZnRlcl9vbmxpbmVfZ3JvdyhzdHJ1Y3QgZHJiZF9kZXZpY2UgKmRldmljZSlcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI4NTYtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjI4NTc6aW50IGRyYmRfbmxfcmVzaXplX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMjg1OC17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yOTkyLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzoyOTkzOmludCBkcmJkX25sX3Jlc291cmNlX29wdHNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yOTk0LXtcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMwMzAtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjMwMzE6aW50IGRyYmRfbmxfaW52YWxpZGF0ZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMwMzIte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9MzA5OT1zdGF0aWMgaW50IGRyYmRfYm1pb19zZXRfc3VzcF9hbChzdHJ1Y3QgZHJiZF9kZXZpY2UgKmRldmljZSxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMxMDgtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjMxMDk6aW50IGRyYmRfbmxfaW52YWxfcGVlcl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMxMTAte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzE1OS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6MzE2MDppbnQgZHJiZF9ubF9wYXVzZV9zeW5jX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzE2MS17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMTc5LVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozMTgwOmludCBkcmJkX25sX3Jlc3VtZV9zeW5jX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzE4MS17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMjA3LVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozMjA4OmludCBkcmJkX25sX3N1c3BlbmRfaW9fZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMjA5LXtcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMyMTItXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjMyMTM6aW50IGRyYmRfbmxfcmVzdW1lX2lvX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzIxNC17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMjY4LVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozMjY5OmludCBkcmJkX25sX291dGRhdGVfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMjcwLXtcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTM4MDE9c3RhdGljIGludCBubGFfcHV0X3N0YXR1c19pbmZvKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBkcmJkX2RldmljZSAqZGV2aWNlLFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzgxMy1cdCAqXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjM4MTQ6XHQgKiBJZiBzaWIgPT0gTlVMTCwgdGhpcyBpcyBkcmJkX25sX2dldF9zdGF0dXNfZG9pdCwgZXhlY3V0ZWQgc3luY2hyb25vdXNseVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zODE1LVx0ICogaW4gdGhlIGNvbnRleHQgb2YgdGhlIHJlcXVlc3RpbmcgdXNlciBwcm9jZXNzLiBFeGNsdWRlIHNlbnNpdGl2ZVxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzk1MC1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6Mzk1MTppbnQgZHJiZF9ubF9nZXRfc3RhdHVzX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzk1Mi17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz00MTAzPWludCBkcmJkX25sX2dldF9zdGF0dXNfZHVtcGl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYilcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQxNTAtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjQxNTE6aW50IGRyYmRfbmxfZ2V0X3RpbWVvdXRfdHlwZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQxNTIte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDE3OS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6NDE4MDppbnQgZHJiZF9ubF9zdGFydF9vdl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQxODEte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDIyNS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6NDIyNjppbnQgZHJiZF9ubF9uZXdfY191dWlkX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDIyNy17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz00MzIwPXN0YXRpYyB2b2lkIHJlc291cmNlX3RvX2luZm8oc3RydWN0IHJlc291cmNlX2luZm8gKmluZm8sXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00MzI4LVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0MzI5OmludCBkcmJkX25sX25ld19yZXNvdXJjZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQzMzAte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9NDM4NT1zdGF0aWMgdm9pZCBkZXZpY2VfdG9faW5mbyhzdHJ1Y3QgZGV2aWNlX2luZm8gKmluZm8sXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00MzkxLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0MzkyOmludCBkcmJkX25sX25ld19taW5vcl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQzOTMte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9NDQ2Mj1zdGF0aWMgZW51bSBkcmJkX3JldF9jb2RlIGFkbV9kZWxfbWlub3Ioc3RydWN0IGRyYmRfZGV2aWNlICpkZXZpY2UpXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00NDk4LVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0NDk5OmludCBkcmJkX25sX2RlbF9taW5vcl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQ1MDAte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9NDUxOD1zdGF0aWMgaW50IGFkbV9kZWxfcmVzb3VyY2Uoc3RydWN0IGRyYmRfcmVzb3VyY2UgKnJlc291cmNlKVxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDU0Ny1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6NDU0ODppbnQgZHJiZF9ubF9kb3duX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDU0OS17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00NjEwLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0NjExOmludCBkcmJkX25sX2RlbF9yZXNvdXJjZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQ2MTIte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jPTM1OT1jb25zdCBzdHJ1Y3QgZ2VubF9zcGxpdF9vcHMgZHJiZF9ubF9vcHNbMzJdID0ge1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTM2MS1cdFx0LmNtZFx0XHQ9IERSQkRfQURNX0dFVF9TVEFUVVMsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzozNjI6XHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6MzYzOlx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfZ2V0X3N0YXR1c19kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6MzY0Olx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtMzY1LVx0XHQucG9saWN5XHRcdD0gZHJiZF9nZXRfc3RhdHVzX2RvX25sX3BvbGljeSxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zNzctXHRcdC5jbWRcdFx0PSBEUkJEX0FETV9ORVdfTUlOT1IsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzozNzg6XHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6Mzc5Olx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfbmV3X21pbm9yX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzozODA6XHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zODEtXHRcdC5wb2xpY3lcdFx0PSBkcmJkX25ld19taW5vcl9ubF9wb2xpY3ksXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtMzg2LVx0XHQuY21kXHRcdD0gRFJCRF9BRE1fREVMX01JTk9SLFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6Mzg3Olx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjM4ODpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX2RlbF9taW5vcl9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6Mzg5Olx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtMzkwLVx0XHQucG9saWN5XHRcdD0gZHJiZF9kZWxfbWlub3JfbmxfcG9saWN5LFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTM5NS1cdFx0LmNtZFx0XHQ9IERSQkRfQURNX05FV19SRVNPVVJDRSxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjM5NjpcdFx0LnByZV9kb2l0XHQ9IGRyYmRfcHJlX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzozOTc6XHRcdC5kb2l0XHRcdD0gZHJiZF9ubF9uZXdfcmVzb3VyY2VfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjM5ODpcdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTM5OS1cdFx0LnBvbGljeVx0XHQ9IGRyYmRfbmV3X3Jlc291cmNlX25sX3BvbGljeSxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00MDQtXHRcdC5jbWRcdFx0PSBEUkJEX0FETV9ERUxfUkVTT1VSQ0UsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0MDU6XHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDA2Olx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfZGVsX3Jlc291cmNlX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0MDc6XHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00MDgtXHRcdC5wb2xpY3lcdFx0PSBkcmJkX2RlbF9yZXNvdXJjZV9ubF9wb2xpY3ksXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDEzLVx0XHQuY21kXHRcdD0gRFJCRF9BRE1fUkVTT1VSQ0VfT1BUUyxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQxNDpcdFx0LnByZV9kb2l0XHQ9IGRyYmRfcHJlX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0MTU6XHRcdC5kb2l0XHRcdD0gZHJiZF9ubF9yZXNvdXJjZV9vcHRzX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0MTY6XHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00MTctXHRcdC5wb2xpY3lcdFx0PSBkcmJkX3Jlc291cmNlX29wdHNfbmxfcG9saWN5LFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQyMi1cdFx0LmNtZFx0XHQ9IERSQkRfQURNX0NPTk5FQ1QsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0MjM6XHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDI0Olx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfY29ubmVjdF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDI1Olx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDI2LVx0XHQucG9saWN5XHRcdD0gZHJiZF9jb25uZWN0X25sX3BvbGljeSxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00MzEtXHRcdC5jbWRcdFx0PSBEUkJEX0FETV9ESVNDT05ORUNULFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDMyOlx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQzMzpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX2Rpc2Nvbm5lY3RfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQzNDpcdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQzNS1cdFx0LnBvbGljeVx0XHQ9IGRyYmRfZGlzY29ubmVjdF9ubF9wb2xpY3ksXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDQwLVx0XHQuY21kXHRcdD0gRFJCRF9BRE1fQVRUQUNILFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDQxOlx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ0MjpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX2F0dGFjaF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDQzOlx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDQ0LVx0XHQucG9saWN5XHRcdD0gZHJiZF9hdHRhY2hfbmxfcG9saWN5LFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQ0OS1cdFx0LmNtZFx0XHQ9IERSQkRfQURNX1JFU0laRSxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ1MDpcdFx0LnByZV9kb2l0XHQ9IGRyYmRfcHJlX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0NTE6XHRcdC5kb2l0XHRcdD0gZHJiZF9ubF9yZXNpemVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ1MjpcdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQ1My1cdFx0LnBvbGljeVx0XHQ9IGRyYmRfcmVzaXplX25sX3BvbGljeSxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00NTgtXHRcdC5jbWRcdFx0PSBEUkJEX0FETV9QUklNQVJZLFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDU5Olx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ2MDpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX3ByaW1hcnlfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ2MTpcdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQ2Mi1cdFx0LnBvbGljeVx0XHQ9IGRyYmRfcHJpbWFyeV9ubF9wb2xpY3ksXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDY3LVx0XHQuY21kXHRcdD0gRFJCRF9BRE1fU0VDT05EQVJZLFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDY4Olx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ2OTpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX3NlY29uZGFyeV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDcwOlx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDcxLVx0XHQucG9saWN5XHRcdD0gZHJiZF9zZWNvbmRhcnlfbmxfcG9saWN5LFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQ3Ni1cdFx0LmNtZFx0XHQ9IERSQkRfQURNX05FV19DX1VVSUQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0Nzc6XHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDc4Olx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfbmV3X2NfdXVpZF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDc5Olx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDgwLVx0XHQucG9saWN5XHRcdD0gZHJiZF9uZXdfY191dWlkX25sX3BvbGljeSxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00ODUtXHRcdC5jbWRcdFx0PSBEUkJEX0FETV9TVEFSVF9PVixcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ4NjpcdFx0LnByZV9kb2l0XHQ9IGRyYmRfcHJlX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0ODc6XHRcdC5kb2l0XHRcdD0gZHJiZF9ubF9zdGFydF9vdl9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDg4Olx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDg5LVx0XHQucG9saWN5XHRcdD0gZHJiZF9zdGFydF9vdl9ubF9wb2xpY3ksXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDk0LVx0XHQuY21kXHRcdD0gRFJCRF9BRE1fREVUQUNILFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDk1Olx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ5NjpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX2RldGFjaF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDk3Olx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDk4LVx0XHQucG9saWN5XHRcdD0gZHJiZF9kZXRhY2hfbmxfcG9saWN5LFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTUwMy1cdFx0LmNtZFx0XHQ9IERSQkRfQURNX0lOVkFMSURBVEUsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1MDQ6XHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTA1Olx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfaW52YWxpZGF0ZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTA2Olx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTA3LVx0XHQucG9saWN5XHRcdD0gZHJiZF9pbnZhbGlkYXRlX25sX3BvbGljeSxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01MTItXHRcdC5jbWRcdFx0PSBEUkJEX0FETV9JTlZBTF9QRUVSLFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTEzOlx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjUxNDpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX2ludmFsX3BlZXJfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjUxNTpcdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTUxNi1cdFx0LnBvbGljeVx0XHQ9IGRyYmRfaW52YWxfcGVlcl9ubF9wb2xpY3ksXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTIxLVx0XHQuY21kXHRcdD0gRFJCRF9BRE1fUEFVU0VfU1lOQyxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjUyMjpcdFx0LnByZV9kb2l0XHQ9IGRyYmRfcHJlX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1MjM6XHRcdC5kb2l0XHRcdD0gZHJiZF9ubF9wYXVzZV9zeW5jX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1MjQ6XHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01MjUtXHRcdC5wb2xpY3lcdFx0PSBkcmJkX3BhdXNlX3N5bmNfbmxfcG9saWN5LFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTUzMC1cdFx0LmNtZFx0XHQ9IERSQkRfQURNX1JFU1VNRV9TWU5DLFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTMxOlx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjUzMjpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX3Jlc3VtZV9zeW5jX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1MzM6XHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01MzQtXHRcdC5wb2xpY3lcdFx0PSBkcmJkX3Jlc3VtZV9zeW5jX25sX3BvbGljeSxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01MzktXHRcdC5jbWRcdFx0PSBEUkJEX0FETV9TVVNQRU5EX0lPLFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTQwOlx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU0MTpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX3N1c3BlbmRfaW9fZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU0MjpcdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU0My1cdFx0LnBvbGljeVx0XHQ9IGRyYmRfc3VzcGVuZF9pb19ubF9wb2xpY3ksXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTQ4LVx0XHQuY21kXHRcdD0gRFJCRF9BRE1fUkVTVU1FX0lPLFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTQ5Olx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU1MDpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX3Jlc3VtZV9pb19kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTUxOlx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTUyLVx0XHQucG9saWN5XHRcdD0gZHJiZF9yZXN1bWVfaW9fbmxfcG9saWN5LFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU1Ny1cdFx0LmNtZFx0XHQ9IERSQkRfQURNX09VVERBVEUsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1NTg6XHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTU5Olx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfb3V0ZGF0ZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTYwOlx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTYxLVx0XHQucG9saWN5XHRcdD0gZHJiZF9vdXRkYXRlX25sX3BvbGljeSxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01NjYtXHRcdC5jbWRcdFx0PSBEUkJEX0FETV9HRVRfVElNRU9VVF9UWVBFLFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTY3Olx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU2ODpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX2dldF90aW1lb3V0X3R5cGVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU2OTpcdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU3MC1cdFx0LnBvbGljeVx0XHQ9IGRyYmRfZ2V0X3RpbWVvdXRfdHlwZV9ubF9wb2xpY3ksXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTc1LVx0XHQuY21kXHRcdD0gRFJCRF9BRE1fRE9XTixcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU3NjpcdFx0LnByZV9kb2l0XHQ9IGRyYmRfcHJlX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1Nzc6XHRcdC5kb2l0XHRcdD0gZHJiZF9ubF9kb3duX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1Nzg6XHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01NzktXHRcdC5wb2xpY3lcdFx0PSBkcmJkX2Rvd25fbmxfcG9saWN5LFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU4NC1cdFx0LmNtZFx0XHQ9IERSQkRfQURNX0NIR19ESVNLX09QVFMsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1ODU6XHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTg2Olx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfY2hnX2Rpc2tfb3B0c19kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTg3Olx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTg4LVx0XHQucG9saWN5XHRcdD0gZHJiZF9jaGdfZGlza19vcHRzX25sX3BvbGljeSxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01OTMtXHRcdC5jbWRcdFx0PSBEUkJEX0FETV9DSEdfTkVUX09QVFMsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1OTQ6XHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTk1Olx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfY2hnX25ldF9vcHRzX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1OTY6XHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01OTctXHRcdC5wb2xpY3lcdFx0PSBkcmJkX2NoZ19uZXRfb3B0c19ubF9wb2xpY3ksXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg9MzQ9ZXh0ZXJuIGNvbnN0IHN0cnVjdCBnZW5sX3NwbGl0X29wcyBkcmJkX25sX29wc1szMl07XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaC0zNS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjM2OmludCBkcmJkX3ByZV9kb2l0KGNvbnN0IHN0cnVjdCBnZW5sX3NwbGl0X29wcyAqb3BzLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmgtMzctXHRcdCAgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaD0zOD12b2lkXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDozOTpkcmJkX3Bvc3RfZG9pdChjb25zdCBzdHJ1Y3QgZ2VubF9zcGxpdF9vcHMgKm9wcywgc3RydWN0IHNrX2J1ZmYgKnNrYixcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oLTQwLVx0ICAgICAgIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oPTQzPWludCBkcmJkX2FkbV9kdW1wX3BlZXJfZGV2aWNlc19kb25lKHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYik7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaC00NC1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjQ1OmludCBkcmJkX25sX2dldF9zdGF0dXNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oLTQ2LWludCBkcmJkX25sX2dldF9zdGF0dXNfZHVtcGl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYik7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo0NzppbnQgZHJiZF9ubF9uZXdfbWlub3JfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjQ4OmludCBkcmJkX25sX2RlbF9taW5vcl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NDk6aW50IGRyYmRfbmxfbmV3X3Jlc291cmNlX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo1MDppbnQgZHJiZF9ubF9kZWxfcmVzb3VyY2VfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjUxOmludCBkcmJkX25sX3Jlc291cmNlX29wdHNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjUyOmludCBkcmJkX25sX2Nvbm5lY3RfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjUzOmludCBkcmJkX25sX2Rpc2Nvbm5lY3RfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjU0OmludCBkcmJkX25sX2F0dGFjaF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NTU6aW50IGRyYmRfbmxfcmVzaXplX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo1NjppbnQgZHJiZF9ubF9wcmltYXJ5X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo1NzppbnQgZHJiZF9ubF9zZWNvbmRhcnlfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjU4OmludCBkcmJkX25sX25ld19jX3V1aWRfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjU5OmludCBkcmJkX25sX3N0YXJ0X292X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo2MDppbnQgZHJiZF9ubF9kZXRhY2hfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjYxOmludCBkcmJkX25sX2ludmFsaWRhdGVfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjYyOmludCBkcmJkX25sX2ludmFsX3BlZXJfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjYzOmludCBkcmJkX25sX3BhdXNlX3N5bmNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjY0OmludCBkcmJkX25sX3Jlc3VtZV9zeW5jX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo2NTppbnQgZHJiZF9ubF9zdXNwZW5kX2lvX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo2NjppbnQgZHJiZF9ubF9yZXN1bWVfaW9fZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjY3OmludCBkcmJkX25sX291dGRhdGVfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjY4OmludCBkcmJkX25sX2dldF90aW1lb3V0X3R5cGVfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjY5OmludCBkcmJkX25sX2Rvd25fZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjcwOmludCBkcmJkX25sX2NoZ19kaXNrX29wdHNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjcxOmludCBkcmJkX25sX2NoZ19uZXRfb3B0c19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmgtNzItaW50IGRyYmRfbmxfZ2V0X3Jlc291cmNlc19kdW1waXQoc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmM9MTczMT1zdGF0aWMgc3RydWN0IGRwbGxfcGluICpkcGxsX3Bpbl9maW5kX2Zyb21fbmxhdHRyKHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG4tLVxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jLTE3ODgtXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmM6MTc4OTppbnQgZHBsbF9ubF9waW5faWRfZ2V0X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0xNzkwLXtcbi0tXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmMtMTgyMy1cbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYzoxODI0OmludCBkcGxsX25sX3Bpbl9nZXRfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jLTE4MjUte1xuLS1cbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYz0xODUyPWludCBkcGxsX25sX3Bpbl9nZXRfZHVtcGl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYilcbi0tXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmMtMTg4OC1cbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYzoxODg5OmludCBkcGxsX25sX3Bpbl9zZXRfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jLTE4OTAte1xuLS1cbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYz0xOTI3PWRwbGxfZGV2aWNlX2ZpbmRfZnJvbV9ubGF0dHIoc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbi0tXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmMtMTk2NS1cbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYzoxOTY2OmludCBkcGxsX25sX2RldmljZV9pZF9nZXRfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jLTE5Njcte1xuLS1cbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0xOTk3LVxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jOjE5OTg6aW50IGRwbGxfbmxfZGV2aWNlX2dldF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmMtMTk5OS17XG4tLVxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jPTIwMjY9ZHBsbF9zZXRfZnJvbV9ubGF0dHIoc3RydWN0IGRwbGxfZGV2aWNlICpkcGxsLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuLS1cbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0yMDYyLVxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jOjIwNjM6aW50IGRwbGxfbmxfZGV2aWNlX3NldF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmMtMjA2NC17XG4tLVxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jPTIwNzA9aW50IGRwbGxfbmxfZGV2aWNlX2dldF9kdW1waXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sgKmNiKVxuLS1cbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0yMTAzLVxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jOjIxMDQ6aW50IGRwbGxfcHJlX2RvaXQoY29uc3Qgc3RydWN0IGdlbmxfc3BsaXRfb3BzICpvcHMsIHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmMtMjEwNS1cdFx0ICBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuLS1cbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0yMTI0LVxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jOjIxMjU6dm9pZCBkcGxsX3Bvc3RfZG9pdChjb25zdCBzdHJ1Y3QgZ2VubF9zcGxpdF9vcHMgKm9wcywgc3RydWN0IHNrX2J1ZmYgKnNrYixcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0yMTI2LVx0XHQgICAgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbi0tXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmM9MjEzMT1pbnRcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYzoyMTMyOmRwbGxfbG9ja19kb2l0KGNvbnN0IHN0cnVjdCBnZW5sX3NwbGl0X29wcyAqb3BzLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jLTIxMzMtXHQgICAgICAgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbi0tXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmM9MjE0MD12b2lkXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmM6MjE0MTpkcGxsX3VubG9ja19kb2l0KGNvbnN0IHN0cnVjdCBnZW5sX3NwbGl0X29wcyAqb3BzLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jLTIxNDItXHRcdCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuLS1cbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0yMTQ2LVxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jOjIxNDc6aW50IGRwbGxfcGluX3ByZV9kb2l0KGNvbnN0IHN0cnVjdCBnZW5sX3NwbGl0X29wcyAqb3BzLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jLTIxNDgtXHRcdCAgICAgIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG4tLVxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jLTIxNzItXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmM6MjE3Mzp2b2lkIGRwbGxfcGluX3Bvc3RfZG9pdChjb25zdCBzdHJ1Y3QgZ2VubF9zcGxpdF9vcHMgKm9wcywgc3RydWN0IHNrX2J1ZmYgKnNrYixcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0yMTc0LVx0XHRcdHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG4tLVxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYz05Mj1zdGF0aWMgY29uc3Qgc3RydWN0IGdlbmxfc3BsaXRfb3BzIGRwbGxfbmxfb3BzW10gPSB7XG4tLVxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYy05NC1cdFx0LmNtZFx0XHQ9IERQTExfQ01EX0RFVklDRV9JRF9HRVQsXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jOjk1Olx0XHQucHJlX2RvaXRcdD0gZHBsbF9sb2NrX2RvaXQsXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jOjk2Olx0XHQuZG9pdFx0XHQ9IGRwbGxfbmxfZGV2aWNlX2lkX2dldF9kb2l0LFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYzo5NzpcdFx0LnBvc3RfZG9pdFx0PSBkcGxsX3VubG9ja19kb2l0LFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYy05OC1cdFx0LnBvbGljeVx0XHQ9IGRwbGxfZGV2aWNlX2lkX2dldF9ubF9wb2xpY3ksXG4tLVxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYy0xMDMtXHRcdC5jbWRcdFx0PSBEUExMX0NNRF9ERVZJQ0VfR0VULFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYzoxMDQ6XHRcdC5wcmVfZG9pdFx0PSBkcGxsX3ByZV9kb2l0LFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYzoxMDU6XHRcdC5kb2l0XHRcdD0gZHBsbF9ubF9kZXZpY2VfZ2V0X2RvaXQsXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jOjEwNjpcdFx0LnBvc3RfZG9pdFx0PSBkcGxsX3Bvc3RfZG9pdCxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmMtMTA3LVx0XHQucG9saWN5XHRcdD0gZHBsbF9kZXZpY2VfZ2V0X25sX3BvbGljeSxcbi0tXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jLTExNy1cdFx0LmNtZFx0XHQ9IERQTExfQ01EX0RFVklDRV9TRVQsXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jOjExODpcdFx0LnByZV9kb2l0XHQ9IGRwbGxfcHJlX2RvaXQsXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jOjExOTpcdFx0LmRvaXRcdFx0PSBkcGxsX25sX2RldmljZV9zZXRfZG9pdCxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmM6MTIwOlx0XHQucG9zdF9kb2l0XHQ9IGRwbGxfcG9zdF9kb2l0LFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYy0xMjEtXHRcdC5wb2xpY3lcdFx0PSBkcGxsX2RldmljZV9zZXRfbmxfcG9saWN5LFxuLS1cbmRyaXZlcnMvZHBsbC9kcGxsX25sLmMtMTI2LVx0XHQuY21kXHRcdD0gRFBMTF9DTURfUElOX0lEX0dFVCxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmM6MTI3Olx0XHQucHJlX2RvaXRcdD0gZHBsbF9sb2NrX2RvaXQsXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jOjEyODpcdFx0LmRvaXRcdFx0PSBkcGxsX25sX3Bpbl9pZF9nZXRfZG9pdCxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmM6MTI5Olx0XHQucG9zdF9kb2l0XHQ9IGRwbGxfdW5sb2NrX2RvaXQsXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jLTEzMC1cdFx0LnBvbGljeVx0XHQ9IGRwbGxfcGluX2lkX2dldF9ubF9wb2xpY3ksXG4tLVxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYy0xMzUtXHRcdC5jbWRcdFx0PSBEUExMX0NNRF9QSU5fR0VULFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYzoxMzY6XHRcdC5wcmVfZG9pdFx0PSBkcGxsX3Bpbl9wcmVfZG9pdCxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmM6MTM3Olx0XHQuZG9pdFx0XHQ9IGRwbGxfbmxfcGluX2dldF9kb2l0LFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYzoxMzg6XHRcdC5wb3N0X2RvaXRcdD0gZHBsbF9waW5fcG9zdF9kb2l0LFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYy0xMzktXHRcdC5wb2xpY3lcdFx0PSBkcGxsX3Bpbl9nZXRfZG9fbmxfcG9saWN5LFxuLS1cbmRyaXZlcnMvZHBsbC9kcGxsX25sLmMtMTUxLVx0XHQuY21kXHRcdD0gRFBMTF9DTURfUElOX1NFVCxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmM6MTUyOlx0XHQucHJlX2RvaXRcdD0gZHBsbF9waW5fcHJlX2RvaXQsXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jOjE1MzpcdFx0LmRvaXRcdFx0PSBkcGxsX25sX3Bpbl9zZXRfZG9pdCxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmM6MTU0Olx0XHQucG9zdF9kb2l0XHQ9IGRwbGxfcGluX3Bvc3RfZG9pdCxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmMtMTU1LVx0XHQucG9saWN5XHRcdD0gZHBsbF9waW5fc2V0X25sX3BvbGljeSxcbi0tXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5oPTE4PWV4dGVybiBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcGxsX3JlZmVyZW5jZV9zeW5jX25sX3BvbGljeVtEUExMX0FfUElOX1NUQVRFICYjNDM7IDFdO1xuZHJpdmVycy9kcGxsL2RwbGxfbmwuaC0xOS1cbmRyaXZlcnMvZHBsbC9kcGxsX25sLmg6MjA6aW50IGRwbGxfbG9ja19kb2l0KGNvbnN0IHN0cnVjdCBnZW5sX3NwbGl0X29wcyAqb3BzLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIyOjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzNTE2CgkJCQkJCQlvdXRwdXQ6IDI3CgkJCQkJCQl0aG91Z2h0czogMTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKlNlYXJjaGluZyBmb3IgYF9kb2l0YCBpbiBgbmV0L3BzcC9gKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBpdC4gTXkgaW5pdGlhbCB0aG91Z2h0IHByb2Nlc3MgaXMgc3RyYWlnaHRmb3J3YXJkOiBJIG5lZWQgdG8gaW52ZXN0aWdhdGUgdGhlIGZ1bmN0aW9uYWxpdHkgb3IgaW1wbGVtZW50YXRpb24gb2Ygc29tZXRoaW5nIHJlbGF0ZWQgdG8gYF9kb2l0YCB3aXRoaW4gdGhlIGBuZXQvcHNwL2AgZGlyZWN0b3J5IHN0cnVjdHVyZS4gR2l2ZW4gbXkgZXhwZXJ0aXNlLCBJ4oCZbSBpbW1lZGlhdGVseSBmb3JtaW5nIGh5cG90aGVzZXMgYmFzZWQgb24gY29udGV4dC4gJiMzNDtOZXQmIzM0OyBzdHJvbmdseSBzdWdnZXN0cyBuZXR3b3JraW5nIGNvbXBvbmVudHMgb3IgbW9kdWxlcywgYW5kICYjMzQ7cHNwJiMzNDsgY291bGQgaW5kaWNhdGUgcHJvdG9jb2xzLCBwb3RlbnRpYWxseSByZWZlcnJpbmcgdG8gUG9zdFNjcmlwdCwgcHJvdG9jb2wtc3BlY2lmaWMgcHJvY2Vzc2luZywgb3IgcGVyaGFwcyBzb21ldGhpbmcgZW50aXJlbHkgaW50ZXJuYWwgdG8gdGhlIHN5c3RlbSBJJiMzOTttIHdvcmtpbmcgd2l0aCAob3IgdHJvdWJsZXNob290aW5nKS4KCk15IGltbWVkaWF0ZSBnb2FsIGlzbiYjMzk7dCBqdXN0IHRvICpmaW5kKiB0aGUgc3RyaW5nLCBidXQgdG8gdW5kZXJzdGFuZCBpdHMgdXNhZ2UuIEkmIzM5O20gYWxyZWFkeSBhbnRpY2lwYXRpbmcgdGhlIG5lZWQgdG8gaW50ZXJwcmV0IHRoZSBzdXJyb3VuZGluZyBjb2RlLCBpZGVudGlmeSBpdHMgcHVycG9zZSwgYW5kIGRldGVybWluZSBhbnkgZGVwZW5kZW5jaWVzIG9yIHNpZGUgZWZmZWN0cy4gSXMgYF9kb2l0YCBhIGZ1bmN0aW9uLCBhIG1hY3JvLCBhIHZhcmlhYmxlLCBvciBzb21ldGhpbmcgZWxzZSBlbnRpcmVseT8gVGhlIHVuZGVyc2NvcmUgcHJlZml4IHR5cGljYWxseSBzdWdnZXN0cyBpbnRlcm5hbCB1c2FnZSBvciBhIGNvbnZlbnRpb24uIEnigJltIGFsc28gY29uc2lkZXJpbmcgaG93IHRoZSBzZWFyY2ggY29udGV4dCBpcyBjb25maWd1cmVkLiBJcyB0aGlzIGEgY29kZSBzZWFyY2gsIGEgZGVidWdnaW5nIHNlc3Npb24sIG9yIGFyZSB3ZSB3b3JraW5nIGluIGEgc3BlY2lmaWMgYnVpbGQgY29udGV4dD8gVGhlIHNlYXJjaCBwYXJhbWV0ZXJzIHdpbGwgaW5mbHVlbmNlIGhvdyBJIGludGVycHJldCB0aGUgcmVzdWx0cy4gQXJlIHdlIHRhbGtpbmcgYWJvdXQgYSBzb3VyY2UgY29kZSBzZWFyY2g/IFRoZW4sIHRoZSBzZWFyY2ggZW5naW5lIEkgdXNlLCBsaWtlIGdyZXAsIHJpcGdyZXAsIG9yIFZTIENvZGXigJlzIHNlYXJjaCBmdW5jdGlvbmFsaXR5LCB3aWxsIGFmZmVjdCBob3cgSSBhcHByb2FjaCB0aGlzLiBJcyB0aGlzIGEgcnVudGltZSBpbnZlc3RpZ2F0aW9uPyBUaGVuLCB0b29scyBsaWtlIGdkYiBvciBkZWJ1Z2dlcnMgbWF5IGJlIGludm9sdmVkLiBVbHRpbWF0ZWx5LCB0aGlzIHNlYXJjaCBpcyB0aGUgZm91bmRhdGlvbiBmb3IgYSBkZWVwZXIgZGl2ZS4gVGhlIGluZm9ybWF0aW9uIGdhaW5lZCB3aWxsIGRpY3RhdGUgbXkgbmV4dCBzdGVwcywgYW5kIEkgYW0gcmVhZHkgdG8gYWRhcHQgYWNjb3JkaW5nbHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIyOjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O19kb2l0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3BzcC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3BzcC9wc3AtbmwtZ2VuLmM9NzE9c3RhdGljIGNvbnN0IHN0cnVjdCBnZW5sX3NwbGl0X29wcyBwc3Bfbmxfb3BzW10gPSB7XG4tLVxubmV0L3BzcC9wc3AtbmwtZ2VuLmMtNzMtXHRcdC5jbWRcdFx0PSBQU1BfQ01EX0RFVl9HRVQsXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzo3NDpcdFx0LnByZV9kb2l0XHQ9IHBzcF9kZXZpY2VfZ2V0X2xvY2tlZCxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjc1Olx0XHQuZG9pdFx0XHQ9IHBzcF9ubF9kZXZfZ2V0X2RvaXQsXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzo3NjpcdFx0LnBvc3RfZG9pdFx0PSBwc3BfZGV2aWNlX3VubG9jayxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jLTc3LVx0XHQucG9saWN5XHRcdD0gcHNwX2Rldl9nZXRfbmxfcG9saWN5LFxuLS1cbm5ldC9wc3AvcHNwLW5sLWdlbi5jLTg3LVx0XHQuY21kXHRcdD0gUFNQX0NNRF9ERVZfU0VULFxubmV0L3BzcC9wc3AtbmwtZ2VuLmM6ODg6XHRcdC5wcmVfZG9pdFx0PSBwc3BfZGV2aWNlX2dldF9sb2NrZWRfYWRtaW4sXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzo4OTpcdFx0LmRvaXRcdFx0PSBwc3BfbmxfZGV2X3NldF9kb2l0LFxubmV0L3BzcC9wc3AtbmwtZ2VuLmM6OTA6XHRcdC5wb3N0X2RvaXRcdD0gcHNwX2RldmljZV91bmxvY2ssXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy05MS1cdFx0LnBvbGljeVx0XHQ9IHBzcF9kZXZfc2V0X25sX3BvbGljeSxcbi0tXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy05Ni1cdFx0LmNtZFx0XHQ9IFBTUF9DTURfS0VZX1JPVEFURSxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjk3Olx0XHQucHJlX2RvaXRcdD0gcHNwX2RldmljZV9nZXRfbG9ja2VkX2FkbWluLFxubmV0L3BzcC9wc3AtbmwtZ2VuLmM6OTg6XHRcdC5kb2l0XHRcdD0gcHNwX25sX2tleV9yb3RhdGVfZG9pdCxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjk5Olx0XHQucG9zdF9kb2l0XHQ9IHBzcF9kZXZpY2VfdW5sb2NrLFxubmV0L3BzcC9wc3AtbmwtZ2VuLmMtMTAwLVx0XHQucG9saWN5XHRcdD0gcHNwX2tleV9yb3RhdGVfbmxfcG9saWN5LFxuLS1cbm5ldC9wc3AvcHNwLW5sLWdlbi5jLTEwNS1cdFx0LmNtZFx0XHQ9IFBTUF9DTURfUlhfQVNTT0MsXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxMDY6XHRcdC5wcmVfZG9pdFx0PSBwc3BfYXNzb2NfZGV2aWNlX2dldF9sb2NrZWQsXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxMDc6XHRcdC5kb2l0XHRcdD0gcHNwX25sX3J4X2Fzc29jX2RvaXQsXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxMDg6XHRcdC5wb3N0X2RvaXRcdD0gcHNwX2RldmljZV91bmxvY2ssXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy0xMDktXHRcdC5wb2xpY3lcdFx0PSBwc3BfcnhfYXNzb2NfbmxfcG9saWN5LFxuLS1cbm5ldC9wc3AvcHNwLW5sLWdlbi5jLTExNC1cdFx0LmNtZFx0XHQ9IFBTUF9DTURfVFhfQVNTT0MsXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxMTU6XHRcdC5wcmVfZG9pdFx0PSBwc3BfYXNzb2NfZGV2aWNlX2dldF9sb2NrZWQsXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxMTY6XHRcdC5kb2l0XHRcdD0gcHNwX25sX3R4X2Fzc29jX2RvaXQsXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxMTc6XHRcdC5wb3N0X2RvaXRcdD0gcHNwX2RldmljZV91bmxvY2ssXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy0xMTgtXHRcdC5wb2xpY3lcdFx0PSBwc3BfdHhfYXNzb2NfbmxfcG9saWN5LFxuLS1cbm5ldC9wc3AvcHNwLW5sLWdlbi5jLTEyMy1cdFx0LmNtZFx0XHQ9IFBTUF9DTURfR0VUX1NUQVRTLFxubmV0L3BzcC9wc3AtbmwtZ2VuLmM6MTI0Olx0XHQucHJlX2RvaXRcdD0gcHNwX2RldmljZV9nZXRfbG9ja2VkLFxubmV0L3BzcC9wc3AtbmwtZ2VuLmM6MTI1Olx0XHQuZG9pdFx0XHQ9IHBzcF9ubF9nZXRfc3RhdHNfZG9pdCxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjEyNjpcdFx0LnBvc3RfZG9pdFx0PSBwc3BfZGV2aWNlX3VubG9jayxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jLTEyNy1cdFx0LnBvbGljeVx0XHQ9IHBzcF9nZXRfc3RhdHNfbmxfcG9saWN5LFxuLS1cbm5ldC9wc3AvcHNwLW5sLWdlbi5jLTEzNy1cdFx0LmNtZFx0XHQ9IFBTUF9DTURfREVWX0FTU09DLFxubmV0L3BzcC9wc3AtbmwtZ2VuLmM6MTM4Olx0XHQucHJlX2RvaXRcdD0gcHNwX2RldmljZV9nZXRfbG9ja2VkX2Rldl9hc3NvYyxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjEzOTpcdFx0LmRvaXRcdFx0PSBwc3BfbmxfZGV2X2Fzc29jX2RvaXQsXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxNDA6XHRcdC5wb3N0X2RvaXRcdD0gcHNwX2RldmljZV91bmxvY2ssXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy0xNDEtXHRcdC5wb2xpY3lcdFx0PSBwc3BfZGV2X2Fzc29jX25sX3BvbGljeSxcbi0tXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy0xNDYtXHRcdC5jbWRcdFx0PSBQU1BfQ01EX0RFVl9ESVNBU1NPQyxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjE0NzpcdFx0LnByZV9kb2l0XHQ9IHBzcF9kZXZpY2VfZ2V0X2xvY2tlZCxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjE0ODpcdFx0LmRvaXRcdFx0PSBwc3BfbmxfZGV2X2Rpc2Fzc29jX2RvaXQsXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxNDk6XHRcdC5wb3N0X2RvaXRcdD0gcHNwX2RldmljZV91bmxvY2ssXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy0xNTAtXHRcdC5wb2xpY3lcdFx0PSBwc3BfZGV2X2Rpc2Fzc29jX25sX3BvbGljeSxcbi0tXG5uZXQvcHNwL3BzcC1ubC1nZW4uaD0yOD1wc3BfZGV2aWNlX3VubG9jayhjb25zdCBzdHJ1Y3QgZ2VubF9zcGxpdF9vcHMgKm9wcywgc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5uZXQvcHNwL3BzcC1ubC1nZW4uaC0zMC1cbm5ldC9wc3AvcHNwLW5sLWdlbi5oOjMxOmludCBwc3BfbmxfZGV2X2dldF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xubmV0L3BzcC9wc3AtbmwtZ2VuLmgtMzItaW50IHBzcF9ubF9kZXZfZ2V0X2R1bXBpdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0bGlua19jYWxsYmFjayAqY2IpO1xubmV0L3BzcC9wc3AtbmwtZ2VuLmg6MzM6aW50IHBzcF9ubF9kZXZfc2V0X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XG5uZXQvcHNwL3BzcC1ubC1nZW4uaDozNDppbnQgcHNwX25sX2tleV9yb3RhdGVfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbm5ldC9wc3AvcHNwLW5sLWdlbi5oOjM1OmludCBwc3BfbmxfcnhfYXNzb2NfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbm5ldC9wc3AvcHNwLW5sLWdlbi5oOjM2OmludCBwc3BfbmxfdHhfYXNzb2NfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbm5ldC9wc3AvcHNwLW5sLWdlbi5oOjM3OmludCBwc3BfbmxfZ2V0X3N0YXRzX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XG5uZXQvcHNwL3BzcC1ubC1nZW4uaC0zOC1pbnQgcHNwX25sX2dldF9zdGF0c19kdW1waXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sgKmNiKTtcbm5ldC9wc3AvcHNwLW5sLWdlbi5oOjM5OmludCBwc3BfbmxfZGV2X2Fzc29jX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XG5uZXQvcHNwL3BzcC1ubC1nZW4uaDo0MDppbnQgcHNwX25sX2Rldl9kaXNhc3NvY19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xubmV0L3BzcC9wc3AtbmwtZ2VuLmgtNDEtXG4tLVxubmV0L3BzcC9wc3BfbmwuYz0zNTA9dm9pZCBwc3Bfbmxfbm90aWZ5X2RldihzdHJ1Y3QgcHNwX2RldiAqcHNkLCB1MzIgY21kKVxuLS1cbm5ldC9wc3AvcHNwX25sLmMtMzU1LVxubmV0L3BzcC9wc3BfbmwuYzozNTY6aW50IHBzcF9ubF9kZXZfZ2V0X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnJlcSwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbm5ldC9wc3AvcHNwX25sLmMtMzU3LXtcbi0tXG5uZXQvcHNwL3BzcF9ubC5jPTM4Nz1pbnQgcHNwX25sX2Rldl9nZXRfZHVtcGl0KHN0cnVjdCBza19idWZmICpyc3AsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYilcbi0tXG5uZXQvcHNwL3BzcF9ubC5jLTQwNC1cbm5ldC9wc3AvcHNwX25sLmM6NDA1OmludCBwc3BfbmxfZGV2X3NldF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5uZXQvcHNwL3BzcF9ubC5jLTQwNi17XG4tLVxubmV0L3BzcC9wc3BfbmwuYy00NDYtXG5uZXQvcHNwL3BzcF9ubC5jOjQ0NzppbnQgcHNwX25sX2tleV9yb3RhdGVfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxubmV0L3BzcC9wc3BfbmwuYy00NDgte1xuLS1cbm5ldC9wc3AvcHNwX25sLmMtNDk4LVxubmV0L3BzcC9wc3BfbmwuYzo0OTk6aW50IHBzcF9ubF9kZXZfYXNzb2NfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxubmV0L3BzcC9wc3BfbmwuYy01MDAte1xuLS1cbm5ldC9wc3AvcHNwX25sLmMtNTgzLVxubmV0L3BzcC9wc3BfbmwuYzo1ODQ6aW50IHBzcF9ubF9kZXZfZGlzYXNzb2NfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxubmV0L3BzcC9wc3BfbmwuYy01ODUte1xuLS1cbm5ldC9wc3AvcHNwX25sLmM9NzUwPXBzcF9ubF9wdXRfa2V5KHN0cnVjdCBza19idWZmICpza2IsIHUzMiBhdHRyLCB1MzIgdmVyc2lvbixcbi0tXG5uZXQvcHNwL3BzcF9ubC5jLTc2OC1cbm5ldC9wc3AvcHNwX25sLmM6NzY5OmludCBwc3BfbmxfcnhfYXNzb2NfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxubmV0L3BzcC9wc3BfbmwuYy03NzAte1xuLS1cbm5ldC9wc3AvcHNwX25sLmMtODI0LVxubmV0L3BzcC9wc3BfbmwuYzo4MjU6aW50IHBzcF9ubF90eF9hc3NvY19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5uZXQvcHNwL3BzcF9ubC5jLTgyNi17XG4tLVxubmV0L3BzcC9wc3BfbmwuYz04NzA9cHNwX25sX3N0YXRzX2ZpbGwoc3RydWN0IHBzcF9kZXYgKnBzZCwgc3RydWN0IHNrX2J1ZmYgKnJzcCxcbi0tXG5uZXQvcHNwL3BzcF9ubC5jLTkxMC1cbm5ldC9wc3AvcHNwX25sLmM6OTExOmludCBwc3BfbmxfZ2V0X3N0YXRzX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbm5ldC9wc3AvcHNwX25sLmMtOTEyLXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMjI6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjY1OTYKCQkJCQkJCW91dHB1dDogMjI0CgkJCQkJCQl0aG91Z2h0czogMTM0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2Ugc3ltYm9scyBhbmQgdGhlIGludGVuZGVkIGFwcHJvYWNoOgoKKipBbmFseXNpcyBvZiBGb2N1cyBTeW1ib2xzIGFuZCBUb29sIFNlbGVjdGlvbioqCgpSaWdodCwgSSYjMzk7dmUgZ290IGEgc29saWQgY29sbGVjdGlvbiBvZiBmb2N1cyBzeW1ib2xzIGhlcmUuIExldCYjMzk7cyBzZWUsIHdlIGhhdmUgYSBzZXQgb2YgYHBzcF9ubF8qX2RvaXRgIGZ1bmN0aW9ucy4gVGhlc2UgbGlrZWx5IHJlcHJlc2VudCBOZXRsaW5rIG9wZXJhdGlvbnMgZm9yIGEgcGFydGljdWxhciBQU1AgKGxpa2VseSBhICYjMzQ7UHJvdGVjdGVkIFNlcnZpY2UgUGxhdGZvcm0mIzM0OyBvciBzb21ldGhpbmcgc2ltaWxhciwganVkZ2luZyBieSB0aGUgcHJlZml4KSwgY292ZXJpbmcgZ2V0dGluZywgc2V0dGluZywgcm90YXRpbmcga2V5cywgYW5kIGhhbmRsaW5nIGFzc29jaWF0aW9uL2Rpc2Fzc29jaWF0aW9uLCBib3RoIGZvciByZWNlaXZlIGFuZCB0cmFuc21pdCBzaWRlcywgYWxvbmcgd2l0aCBzdGF0aXN0aWNhbCBkYXRhIGFuZCBjcmVhdGlvbi9kZWxldGlvbi4KClNwZWNpZmljYWxseSwgSSBzZWUgYSBjbGVhciBncm91cCB0aGF0JiMzOTtzIGFzc29jaWF0ZWQgd2l0aCBkZXZpY2UgbWFuYWdlbWVudCBhbmQgYXNzb2NpYXRpb24vZGlzYXNzb2NpYXRpb24uIFRoZSB1c2Ugb2YgJiMzNDtkb2l0JiMzNDsgc3VnZ2VzdHMgdGhlc2UgYXJlIHRoZSBjb3JlIGZ1bmN0aW9ucyB0aGF0IGhhbmRsZSBzcGVjaWZpYyBhY3Rpb25zIG9yIHJlcXVlc3RzLiBUaGVuIHRoZXJlJiMzOTtzIGBwc3BfZGV2X2NyZWF0ZWAsIHdoaWNoIGxvZ2ljYWxseSBmaXRzIGludG8gZGV2aWNlIGxpZmVjeWNsZSBvcGVyYXRpb25zLiBJdCYjMzk7cyBhIGNvbXByZWhlbnNpdmUgc2V0LCBjb3ZlcmluZyBhbGwgdGhlIGJhc2VzIEkmIzM5O2QgZXhwZWN0IGZvciBpbnRlcmFjdGlvbiB3aXRoIGEgbmV0d29yayBkZXZpY2UgdGhyb3VnaCBOZXRsaW5rLgoKR2l2ZW4gdGhpcyBsaXN0LCBhbmQgdGhlIG5hdHVyZSBvZiB0aGVzZSBzeW1ib2xzLCB0aGUgJiMzNDtzZXQtcmVzdWx0cyYjMzQ7IHRvb2wgaXMgZGVmaW5pdGVseSB0aGUgcmlnaHQgY2hvaWNlLiBJdCYjMzk7cyBkZXNpZ25lZCBmb3IgYW5hbHl6aW5nIGZ1bmN0aW9uIGNhbGwgc2VxdWVuY2VzLiBJJiMzOTttIGdvaW5nIHRvIHN0YXJ0IGJ5IHJ1bm5pbmcgdGhvc2Ugc3ltYm9scyB0aHJvdWdoIHRoZSAmIzM0O3NldC1yZXN1bHRzJiMzNDsgdG9vbCBhbmQgZXhhbWluZSB0aGUgcmVzdWx0cyBpbiBkZXRhaWwuIFRoaXMgd2lsbCBhbGxvdyBtZSB0byB0cmFjayB0aGUgZXhlY3V0aW9uIGZsb3csIGlkZW50aWZ5IHdoaWNoIGZ1bmN0aW9ucyBjYWxsIGVhY2ggb3RoZXIsIGFuZCBzZWUgaG93IHRoZSB2YXJpb3VzIE5ldGxpbmsgb3BlcmF0aW9ucyBpbnRlcnJlbGF0ZSB3aXRoaW4gdGhlIHN5c3RlbS4gSXQgc2hvdWxkIHJldmVhbCB0aGUgY3JpdGljYWwgcGF0aHMgYW5kIGRlcGVuZGVuY2llcyBmb3IgZGV2aWNlIG1hbmFnZW1lbnQuIEkgc2hvdWxkIGJlIGFibGUgdG8gZ2V0IGEgbXVjaCBjbGVhcmVyIHBpY3R1cmUgb2YgdGhlIG92ZXJhbGwgYXJjaGl0ZWN0dXJlIHdpdGggdGhhdCBhcHByb2FjaC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMjI6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lORVRfUFNQJiMzNDssCiAgICAmIzM0O05FVERFVlNJTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3BzcF9ubF9kZXZfZ2V0X2RvaXQmIzM0OywKICAgICYjMzQ7cHNwX25sX2Rldl9zZXRfZG9pdCYjMzQ7LAogICAgJiMzNDtwc3Bfbmxfa2V5X3JvdGF0ZV9kb2l0JiMzNDssCiAgICAmIzM0O3BzcF9ubF9yeF9hc3NvY19kb2l0JiMzNDssCiAgICAmIzM0O3BzcF9ubF90eF9hc3NvY19kb2l0JiMzNDssCiAgICAmIzM0O3BzcF9ubF9nZXRfc3RhdHNfZG9pdCYjMzQ7LAogICAgJiMzNDtwc3BfbmxfZGV2X2Fzc29jX2RvaXQmIzM0OywKICAgICYjMzQ7cHNwX25sX2Rldl9kaXNhc3NvY19kb2l0JiMzNDssCiAgICAmIzM0O3BzcF9kZXZfY3JlYXRlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gaW4gYHBzcF9ubF9tdWx0aWNhc3RfcGVyX25zYCB3aGVuIGEgZGV2aWNlIGNoYW5nZXMgbmV0bnMgaW4gcGFyYWxsZWwuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIGxvZ2ljIGZvciB0aGUgUFNQIChQU1AgU2VjdXJpdHkgUHJvdG9jb2wpIG5ldGxpbmsgaW50ZXJmYWNlLiBUaGUgY29kZSBpcyByZWFjaGFibGUgdmlhIG5ldGxpbmsgY29tbWFuZHMgYW5kIGNhbiBiZSB0ZXN0ZWQgdXNpbmcgdGhlIGBuZXRkZXZzaW1gIGRyaXZlciB3aGljaCBzdXBwb3J0cyBQU1AuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lORVRfUFNQJiMzNDssCiAgICAmIzM0O05FVERFVlNJTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3BzcF9ubF9kZXZfZ2V0X2RvaXQmIzM0OywKICAgICYjMzQ7cHNwX25sX2Rldl9zZXRfZG9pdCYjMzQ7LAogICAgJiMzNDtwc3Bfbmxfa2V5X3JvdGF0ZV9kb2l0JiMzNDssCiAgICAmIzM0O3BzcF9ubF9yeF9hc3NvY19kb2l0JiMzNDssCiAgICAmIzM0O3BzcF9ubF90eF9hc3NvY19kb2l0JiMzNDssCiAgICAmIzM0O3BzcF9ubF9nZXRfc3RhdHNfZG9pdCYjMzQ7LAogICAgJiMzNDtwc3BfbmxfZGV2X2Fzc29jX2RvaXQmIzM0OywKICAgICYjMzQ7cHNwX25sX2Rldl9kaXNhc3NvY19kb2l0JiMzNDssCiAgICAmIzM0O3BzcF9kZXZfY3JlYXRlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gaW4gYHBzcF9ubF9tdWx0aWNhc3RfcGVyX25zYCB3aGVuIGEgZGV2aWNlIGNoYW5nZXMgbmV0bnMgaW4gcGFyYWxsZWwuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIGxvZ2ljIGZvciB0aGUgUFNQIChQU1AgU2VjdXJpdHkgUHJvdG9jb2wpIG5ldGxpbmsgaW50ZXJmYWNlLiBUaGUgY29kZSBpcyByZWFjaGFibGUgdmlhIG5ldGxpbmsgY29tbWFuZHMgYW5kIGNhbiBiZSB0ZXN0ZWQgdXNpbmcgdGhlIGBuZXRkZXZzaW1gIGRyaXZlciB3aGljaCBzdXBwb3J0cyBQU1AuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMjo0NToyNS44OTI4NDY2MjVaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2OTQ4MzgzNjMxNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJTkVUX1BTUFwiLFxuICAgIFwiTkVUREVWU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicHNwX25sX2Rldl9nZXRfZG9pdFwiLFxuICAgIFwicHNwX25sX2Rldl9zZXRfZG9pdFwiLFxuICAgIFwicHNwX25sX2tleV9yb3RhdGVfZG9pdFwiLFxuICAgIFwicHNwX25sX3J4X2Fzc29jX2RvaXRcIixcbiAgICBcInBzcF9ubF90eF9hc3NvY19kb2l0XCIsXG4gICAgXCJwc3BfbmxfZ2V0X3N0YXRzX2RvaXRcIixcbiAgICBcInBzcF9ubF9kZXZfYXNzb2NfZG9pdFwiLFxuICAgIFwicHNwX25sX2Rldl9kaXNhc3NvY19kb2l0XCIsXG4gICAgXCJwc3BfZGV2X2NyZWF0ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gaW4gYHBzcF9ubF9tdWx0aWNhc3RfcGVyX25zYCB3aGVuIGEgZGV2aWNlIGNoYW5nZXMgbmV0bnMgaW4gcGFyYWxsZWwuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIGxvZ2ljIGZvciB0aGUgUFNQIChQU1AgU2VjdXJpdHkgUHJvdG9jb2wpIG5ldGxpbmsgaW50ZXJmYWNlLiBUaGUgY29kZSBpcyByZWFjaGFibGUgdmlhIG5ldGxpbmsgY29tbWFuZHMgYW5kIGNhbiBiZSB0ZXN0ZWQgdXNpbmcgdGhlIGBuZXRkZXZzaW1gIGRyaXZlciB3aGljaCBzdXBwb3J0cyBQU1AuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIyOjQ1OjI1Ljg5Mjg1NDE4NVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjgwMzg1NTkzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgOWViZjI4MjE3MjNlNzAxMjUwNTJkZjI1ZmFjOTRhMzc0M2E0ODMzOFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEp1bCAyNyAyMjo0NToyMyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9uZXQvcHNwL3BzcF9ubC5jIGIvbmV0L3BzcC9wc3BfbmwuY1xcbmluZGV4IDk2MTBkOGM0NTZmZjU1Li40M2IwNjYzNTNjNjViMiAxMDA2NDRcXG4tLS0gYS9uZXQvcHNwL3BzcF9ubC5jXFxuKysrIGIvbmV0L3BzcC9wc3BfbmwuY1xcbkBAIC02Miw3ICs2MiwxNCBAQCBwc3BfbmxfbXVsdGljYXN0X3Blcl9ucyhzdHJ1Y3QgcHNwX2RldiAqcHNkLCB1bnNpZ25lZCBpbnQgZ3JvdXAsXFxuIFxcdHN0cnVjdCBuZXQgKm1haW5fbmV0O1xcbiBcXHRzdHJ1Y3Qgc2tfYnVmZiAqbnRmO1xcbiBcXG4tXFx0bWFpbl9uZXQgPSBkZXZfbmV0KHBzZC1cXHUwMDNlbWFpbl9uZXRkZXYpO1xcbitcXHQvKiBkZXZpY2UgbWF5IGJlIGNoYW5naW5nIG5ldG5zIGluIHBhcmFsbGVsICovXFxuK1xcdHJjdV9yZWFkX2xvY2soKTtcXG4rXFx0bWFpbl9uZXQgPSBtYXliZV9nZXRfbmV0KGRldl9uZXRfcmN1KHBzZC1cXHUwMDNlbWFpbl9uZXRkZXYpKTtcXG4rXFx0cmN1X3JlYWRfdW5sb2NrKCk7XFxuK1xcbitcXHRpZiAoIW1haW5fbmV0KVxcbitcXHRcXHRyZXR1cm47XFxuK1xcbiBcXHR4YV9pbml0KFxcdTAwMjZzZW50X25ldHMpO1xcbiBcXG4gXFx0bGlzdF9mb3JfZWFjaF9lbnRyeShlbnRyeSwgXFx1MDAyNnBzZC1cXHUwMDNlYXNzb2NfZGV2X2xpc3QsIGRldl9saXN0KSB7XFxuQEAgLTg4LDEwICs5NSwxMCBAQCBwc3BfbmxfbXVsdGljYXN0X3Blcl9ucyhzdHJ1Y3QgcHNwX2RldiAqcHNkLCB1bnNpZ25lZCBpbnQgZ3JvdXAsXFxuIFxcbiBcXHQvKiBTZW5kIHRvIG1haW4gZGV2aWNlIG5ldG5zICovXFxuIFxcdG50ZiA9IGJ1aWxkX250Zihwc2QsIG1haW5fbmV0LCBjdHgpO1xcbi1cXHRpZiAoIW50ZilcXG4tXFx0XFx0cmV0dXJuO1xcbi1cXHRnZW5sbXNnX211bHRpY2FzdF9uZXRucyhcXHUwMDI2cHNwX25sX2ZhbWlseSwgbWFpbl9uZXQsIG50ZiwgMCwgZ3JvdXAsXFxuLVxcdFxcdFxcdFxcdEdGUF9LRVJORUwpO1xcbitcXHRpZiAobnRmKVxcbitcXHRcXHRnZW5sbXNnX211bHRpY2FzdF9uZXRucyhcXHUwMDI2cHNwX25sX2ZhbWlseSwgbWFpbl9uZXQsIG50ZiwgMCwgZ3JvdXAsXFxuK1xcdFxcdFxcdFxcdFxcdEdGUF9LRVJORUwpO1xcbitcXHRwdXRfbmV0KG1haW5fbmV0KTtcXG4gfVxcbiBcXG4gc3RhdGljIHN0cnVjdCBza19idWZmICpwc3BfbmxfY2xvbmVfbnRmKHN0cnVjdCBwc3BfZGV2ICpwc2QsIHN0cnVjdCBuZXQgKm5ldCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjI6NDU6MjYuNTc0MDg3ODI4WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6Njg4MDI1ODQxMDIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiSU5FVF9QU1BcIixcbiAgICBcIk5FVERFVlNJTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInBzcF9ubF9kZXZfZ2V0X2RvaXRcIixcbiAgICBcInBzcF9ubF9kZXZfc2V0X2RvaXRcIixcbiAgICBcInBzcF9ubF9rZXlfcm90YXRlX2RvaXRcIixcbiAgICBcInBzcF9ubF9yeF9hc3NvY19kb2l0XCIsXG4gICAgXCJwc3BfbmxfdHhfYXNzb2NfZG9pdFwiLFxuICAgIFwicHNwX25sX2dldF9zdGF0c19kb2l0XCIsXG4gICAgXCJwc3BfbmxfZGV2X2Fzc29jX2RvaXRcIixcbiAgICBcInBzcF9ubF9kZXZfZGlzYXNzb2NfZG9pdFwiLFxuICAgIFwicHNwX2Rldl9jcmVhdGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHJhY2UgY29uZGl0aW9uIGluIGBwc3BfbmxfbXVsdGljYXN0X3Blcl9uc2Agd2hlbiBhIGRldmljZSBjaGFuZ2VzIG5ldG5zIGluIHBhcmFsbGVsLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29yZSBsb2dpYyBmb3IgdGhlIFBTUCAoUFNQIFNlY3VyaXR5IFByb3RvY29sKSBuZXRsaW5rIGludGVyZmFjZS4gVGhlIGNvZGUgaXMgcmVhY2hhYmxlIHZpYSBuZXRsaW5rIGNvbW1hbmRzIGFuZCBjYW4gYmUgdGVzdGVkIHVzaW5nIHRoZSBgbmV0ZGV2c2ltYCBkcml2ZXIgd2hpY2ggc3VwcG9ydHMgUFNQLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA5ZWJmMjgyMTcyM2U3MDEyNTA1MmRmMjVmYWM5NGEzNzQzYTQ4MzM4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgMjcgMjI6NDU6MjMgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvcHNwL3BzcF9ubC5jIGIvbmV0L3BzcC9wc3BfbmwuY1xuaW5kZXggOTYxMGQ4YzQ1NmZmNTUuLjQzYjA2NjM1M2M2NWIyIDEwMDY0NFxuLS0tIGEvbmV0L3BzcC9wc3BfbmwuY1xuKysrIGIvbmV0L3BzcC9wc3BfbmwuY1xuQEAgLTYyLDcgKzYyLDE0IEBAIHBzcF9ubF9tdWx0aWNhc3RfcGVyX25zKHN0cnVjdCBwc3BfZGV2ICpwc2QsIHVuc2lnbmVkIGludCBncm91cCxcbiBcdHN0cnVjdCBuZXQgKm1haW5fbmV0O1xuIFx0c3RydWN0IHNrX2J1ZmYgKm50ZjtcbiBcbi1cdG1haW5fbmV0ID0gZGV2X25ldChwc2QtXHUwMDNlbWFpbl9uZXRkZXYpO1xuK1x0LyogZGV2aWNlIG1heSBiZSBjaGFuZ2luZyBuZXRucyBpbiBwYXJhbGxlbCAqL1xuK1x0cmN1X3JlYWRfbG9jaygpO1xuK1x0bWFpbl9uZXQgPSBtYXliZV9nZXRfbmV0KGRldl9uZXRfcmN1KHBzZC1cdTAwM2VtYWluX25ldGRldikpO1xuK1x0cmN1X3JlYWRfdW5sb2NrKCk7XG4rXG4rXHRpZiAoIW1haW5fbmV0KVxuK1x0XHRyZXR1cm47XG4rXG4gXHR4YV9pbml0KFx1MDAyNnNlbnRfbmV0cyk7XG4gXG4gXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGVudHJ5LCBcdTAwMjZwc2QtXHUwMDNlYXNzb2NfZGV2X2xpc3QsIGRldl9saXN0KSB7XG5AQCAtODgsMTAgKzk1LDEwIEBAIHBzcF9ubF9tdWx0aWNhc3RfcGVyX25zKHN0cnVjdCBwc3BfZGV2ICpwc2QsIHVuc2lnbmVkIGludCBncm91cCxcbiBcbiBcdC8qIFNlbmQgdG8gbWFpbiBkZXZpY2UgbmV0bnMgKi9cbiBcdG50ZiA9IGJ1aWxkX250Zihwc2QsIG1haW5fbmV0LCBjdHgpO1xuLVx0aWYgKCFudGYpXG4tXHRcdHJldHVybjtcbi1cdGdlbmxtc2dfbXVsdGljYXN0X25ldG5zKFx1MDAyNnBzcF9ubF9mYW1pbHksIG1haW5fbmV0LCBudGYsIDAsIGdyb3VwLFxuLVx0XHRcdFx0R0ZQX0tFUk5FTCk7XG4rXHRpZiAobnRmKVxuK1x0XHRnZW5sbXNnX211bHRpY2FzdF9uZXRucyhcdTAwMjZwc3BfbmxfZmFtaWx5LCBtYWluX25ldCwgbnRmLCAwLCBncm91cCxcbitcdFx0XHRcdFx0R0ZQX0tFUk5FTCk7XG4rXHRwdXRfbmV0KG1haW5fbmV0KTtcbiB9XG4gXG4gc3RhdGljIHN0cnVjdCBza19idWZmICpwc3BfbmxfY2xvbmVfbnRmKHN0cnVjdCBwc3BfZGV2ICpwc2QsIHN0cnVjdCBuZXQgKm5ldCxcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIyOjQ1OjI2LjU3NDA4OTQ5OFoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUzNzU2OTM2MTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgTmV0bGluayBQYXRjaCBmb3IgUFNQKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCBpbiBgbmV0L3BzcC9wc3BfbmwuY2AuIEl0IHNlZW1zIGxpa2UgaXQncyB0b3VjaGluZyBgcHNwX25sX211bHRpY2FzdF9wZXJfbnNgLCB3aGljaCBpcyBpbnRlcmVzdGluZy4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBhcHBlYXJzIHRvIGJlIGhvdyBgbWFpbl9uZXRgIGlzIGhhbmRsZWQuIFByZXZpb3VzbHksIGl0IHdhcyBhIHN0cmFpZ2h0Zm9yd2FyZCBgZGV2X25ldChwc2QtXHUwMDNlbWFpbl9uZXRkZXYpYCwgYnV0IG5vdyB0aGV5J3JlIHVzaW5nIGByY3VfcmVhZF9sb2NrKClgIGFuZCBgbWF5YmVfZ2V0X25ldCgpYCBpbiBhIGNyaXRpY2FsIHNlY3Rpb24sIGFuZCB0aGVuIGBwdXRfbmV0KG1haW5fbmV0KWAgYXQgdGhlIGVuZC4gVGhhdCBzY3JlYW1zIHJhY2UgY29uZGl0aW9uIGZpeCDigJMgc3BlY2lmaWNhbGx5LCBhIGRldmljZSBjaGFuZ2luZyBuZXR3b3JrIG5hbWVzcGFjZXMgaW4gcGFyYWxsZWwuIEl0IG1ha2VzIHRvdGFsIHNlbnNlOyB0aGlzIGludHJvZHVjZXMgYSBwb3RlbnRpYWwgaXNzdWUgaWYgdGhlIG5ldG5zIGNoYW5nZXMgYmV0d2VlbiB0aGUgZGV2aWNlIGxvb2t1cCBhbmQgdGhlIGFjdHVhbCBuZXRsaW5rIG11bHRpY2FzdC4gVGhlIFJDVSBwcm90ZWN0aW9uIGVuc3VyZXMgdGhhdCB0aGUgbmV0d29yayBuYW1lc3BhY2UgZG9lc24ndCBkaXNhcHBlYXIgYmVmb3JlIHdlIGF0dGVtcHQgdGhlIG9wZXJhdGlvbiwgYW5kIGBtYXliZV9nZXRfbmV0YCBhbmQgYHB1dF9uZXRgIG1hbmFnZW1lbnQgYWRkcyBwcm9wZXIgcmVmZXJlbmNlIGNvdW50aW5nIHRvIG1hbmFnZSB0aGUgbGlmZWN5Y2xlIG9mIHRoZSBuZXR3b3JrIG5hbWVzcGFjZSBvYmplY3QuIFRoZSBhZGRlZCBgaWZgIHN0YXRlbWVudCB0byBjaGVjayBmb3IgYSB2YWxpZCBgbnRmYCBiZWZvcmUgbXVsdGljYXN0IGlzIGp1c3QgZ29vZCBkZWZlbnNpdmUgY29kaW5nLlxuXG5Ob3csIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgYHBzcGAgaXMgYWxsIGFib3V0LiBUaGlzIGNvbnRleHQgaXMgZXNzZW50aWFsLiBJJ2xsIG5lZWQgdG8gbG9vayB1cCBgcHNwX25sX211bHRpY2FzdF9wZXJfbnNgIGFuZCBkZWx2ZSBpbnRvIGBwc3BfbmwuY2AgdG8gc2VlIGhvdyBpdCBmaXRzIGludG8gdGhlIGJyb2FkZXIgcGljdHVyZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCB0aGlzIFBTUCBtb2R1bGUgZG9lcyBhbmQgd2hhdCBjb25maWd1cmF0aW9uIGl0IHJlcXVpcmVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzQ2LCJPdXRwdXRUb2tlbnMiOjI0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzU1LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjI6NDU6MzEuOTQ5Nzg2MjAzWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM0MDgyMDgyNjQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicHNwX25sX211bHRpY2FzdF9wZXJfbnNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3BzcC9wc3BfbmwuYz0zND1zdGF0aWMgaW50IHBzcF9ubF9yZXBseV9zZW5kKHN0cnVjdCBza19idWZmICpyc3AsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuLS1cXG5uZXQvcHNwL3BzcF9ubC5jLTQyLS8qKlxcbm5ldC9wc3AvcHNwX25sLmM6NDM6ICogcHNwX25sX211bHRpY2FzdF9wZXJfbnMoKSAtIG11bHRpY2FzdCBhIG5vdGlmaWNhdGlvbiB0byBlYWNoIHVuaXF1ZSBuZXRuc1xcbm5ldC9wc3AvcHNwX25sLmMtNDQtICogQHBzZDogUFNQIGRldmljZSAobXVzdCBiZSBsb2NrZWQpXFxuLS1cXG5uZXQvcHNwL3BzcF9ubC5jPTUzPXN0YXRpYyB2b2lkXFxubmV0L3BzcC9wc3BfbmwuYzo1NDpwc3BfbmxfbXVsdGljYXN0X3Blcl9ucyhzdHJ1Y3QgcHNwX2RldiAqcHNkLCB1bnNpZ25lZCBpbnQgZ3JvdXAsXFxubmV0L3BzcC9wc3BfbmwuYy01NS1cXHRcXHRcXHRzdHJ1Y3Qgc2tfYnVmZiAqKCpidWlsZF9udGYpKHN0cnVjdCBwc3BfZGV2ICosXFxuLS1cXG5uZXQvcHNwL3BzcF9ubC5jPTExMD1zdGF0aWMgdm9pZCBwc3BfbmxfbXVsdGljYXN0X2FsbF9ucyhzdHJ1Y3QgcHNwX2RldiAqcHNkLCBzdHJ1Y3Qgc2tfYnVmZiAqbnRmLFxcbi0tXFxubmV0L3BzcC9wc3BfbmwuYy0xMTIte1xcbm5ldC9wc3AvcHNwX25sLmM6MTEzOlxcdHBzcF9ubF9tdWx0aWNhc3RfcGVyX25zKHBzZCwgZ3JvdXAsIHBzcF9ubF9jbG9uZV9udGYsIG50Zik7XFxubmV0L3BzcC9wc3BfbmwuYy0xMTQtXFx0bmxtc2dfY29uc3VtZShudGYpO1xcbi0tXFxubmV0L3BzcC9wc3BfbmwuYz0zNTA9dm9pZCBwc3Bfbmxfbm90aWZ5X2RldihzdHJ1Y3QgcHNwX2RldiAqcHNkLCB1MzIgY21kKVxcbm5ldC9wc3AvcHNwX25sLmMtMzUxLXtcXG5uZXQvcHNwL3BzcF9ubC5jOjM1MjpcXHRwc3BfbmxfbXVsdGljYXN0X3Blcl9ucyhwc2QsIFBTUF9OTEdSUF9NR01ULFxcbm5ldC9wc3AvcHNwX25sLmMtMzUzLVxcdFxcdFxcdFxcdHBzcF9ubF9idWlsZF9kZXZfbnRmLCBcXHUwMDI2Y21kKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjI6NDU6MzUuMzU4MDAyNjE4WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjkwMjIwNDQ4NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgZGlzdGlsbGVkOlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIEFjdGl2YXRpb24gb2YgYG5ldC9wc3AvYCoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoaWNoIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciBlbmFibGluZyBgbmV0L3BzcC9gLiBUaGlzIGlzIGEgYml0IG9mIGEgYnJlYWRjcnVtYiB0cmFpbCBJIG5lZWQgdG8gZm9sbG93LiBJJ20gYXNzdW1pbmcgaXQncyBwcm9iYWJseSBzb21ld2hlcmUgaW4gdGhlIGtlcm5lbCBjb25maWd1cmF0aW9uLiBJJ2xsIG5lZWQgdG8ga25vdyB3aGljaCBzZXR0aW5ncyB0cmlnZ2VyIGl0cyBpbmNsdXNpb24gZHVyaW5nIHRoZSBidWlsZCBwcm9jZXNzLiBJJ2xsIHByb2JhYmx5IGhhdmUgdG8gc3RhcnQgYnkgc2VhcmNoaW5nIHRocm91Z2ggdGhlIGAuY29uZmlnYCBmaWxlcyBvciB0aGUgS2NvbmZpZyBmaWxlcyByZWxhdGVkIHRvIG5ldHdvcmtpbmcuIEknbGwgYmUgbG9va2luZyBmb3Igc29tZXRoaW5nIHRoYXQgZWl0aGVyIGRpcmVjdGx5IG1lbnRpb25zIGBwc3BgIG9yIGluZGlyZWN0bHkgZW5hYmxlcyBpdCB0aHJvdWdoIHNvbWUgZGVwZW5kZW5jeSBjaGFpbi4gSSBleHBlY3QgdGhpcyB3aWxsIGJlIGEgcmVsYXRpdmVseSBzdHJhaWdodGZvcndhcmQgZmluZCwgZ2l2ZW4gdGhhdCB0aGlzIGlzIGEgZmVhdHVyZSBvZiB0aGUga2VybmVsIG5ldHdvcmsgc3RhY2ssIEkgYXNzdW1lLiBJJ2xsIHN0YXJ0IHdpdGggYSBmZXcgbGlrZWx5IGtleXdvcmRzIGFuZCBzZWUgd2hlcmUgdGhhdCBsZWFkcyBtZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzUyMiwiT3V0cHV0VG9rZW5zIjoxOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIyOjQ1OjM4LjI2MDIwODk3NVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyOTI3MzM1NjI2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBzcF9ubC5vXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9wc3AvTWFrZWZpbGU9Mz1vYmotJChDT05GSUdfSU5FVF9QU1ApICs9IHBzcC5vXFxubmV0L3BzcC9NYWtlZmlsZS00LVxcbm5ldC9wc3AvTWFrZWZpbGU6NTpwc3AteSA6PSBwc3BfbWFpbi5vIHBzcF9ubC5vIHBzcF9zb2NrLm8gcHNwLW5sLWdlbi5vXFxuLS1cXG5uZXQvcHNwL3BzcC1ubC1nZW4uYz02ND1zdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgcHNwX2Rldl9kaXNhc3NvY19ubF9wb2xpY3lbUFNQX0FfREVWX05TSUQgKyAxXSA9IHtcXG4tLVxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jLTcwLS8qIE9wcyB0YWJsZSBmb3IgcHNwICovXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmM6NzE6c3RhdGljIGNvbnN0IHN0cnVjdCBnZW5sX3NwbGl0X29wcyBwc3Bfbmxfb3BzW10gPSB7XFxubmV0L3BzcC9wc3AtbmwtZ2VuLmMtNzItXFx0e1xcbi0tXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmM9MTYxPXN0cnVjdCBnZW5sX2ZhbWlseSBwc3BfbmxfZmFtaWx5IF9fcm9fYWZ0ZXJfaW5pdCA9IHtcXG4tLVxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jLTE2Ni1cXHQubW9kdWxlXFx0XFx0PSBUSElTX01PRFVMRSxcXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxNjc6XFx0LnNwbGl0X29wc1xcdD0gcHNwX25sX29wcyxcXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxNjg6XFx0Lm5fc3BsaXRfb3BzXFx0PSBBUlJBWV9TSVpFKHBzcF9ubF9vcHMpLFxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jLTE2OS1cXHQubWNncnBzXFx0XFx0PSBwc3BfbmxfbWNncnBzLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMjo0NTo0MS4xODc1NTIwNDFaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzY4NDkzMTU2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBDT05GSUdfSU5FVF9QU1AgRGVwZW5kZW5jeSBUcmVlKipcblxuQWxyaWdodCwgc28gYENPTkZJR19JTkVUX1BTUGAgaXMgdGhlIHRhcmdldC4gRmlyc3QgdGhpbmcgSSdtIGRvaW5nIGlzIGEgcXVpY2sgc2NhbiBvZiB0aGUgcmVsZXZhbnQgYEtjb25maWdgIGZpbGVzLiBJJ20gaGl0dGluZyBgbmV0L3BzcC9LY29uZmlnYCAob3Igc29tZXRoaW5nIGFuYWxvZ291cyBpbiB0aGUgYXBwcm9wcmlhdGUgbmV0d29yayBkaXJlY3Rvcnkg4oCTIGxldCdzIGFzc3VtZSBpdCdzIHRoZXJlKSB0byB1bnJhdmVsIHRoaXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGFsbCB0aGUgZG93bnN0cmVhbSBkZXBlbmRlbmNpZXM7IHdoYXQgb3RoZXIga25vYnMgYW5kIGxldmVycyBkb2VzIHRoaXMgZmxhZyBwdWxsPyBUaGlzIGluY2x1ZGVzIHRoZSB1c3VhbCBzdXNwZWN0czogc3ViLWZlYXR1cmVzLCBwcmVyZXF1aXNpdGUgbW9kdWxlcywgbWF5YmUgZXZlbiBjZXJ0YWluIGhhcmR3YXJlIHJlcXVpcmVtZW50cy4gVGhlIGdvYWwgaXMgdG8gZnVsbHkgZ3Jhc3AgdGhlICppbXBhY3QqIG9mIGVuYWJsaW5nIGBDT05GSUdfSU5FVF9QU1BgLiBJIHdhbnQgdG8gaWRlbnRpZnkgYW55IHBvdGVudGlhbCBjb25mbGljdHMgb3Igc2lkZS1lZmZlY3RzIHdpdGggdGhlIHJlc3Qgb2YgbXkgc3lzdGVtJ3MgY29uZmlndXJhdGlvbi4gSSdsbCBuZWVkIHRvIHNlZSBpZiB0aGlzIGludHJvZHVjZXMgYW55IG5ldyBleHBvc2VkIGtlcm5lbCBpbnRlcmZhY2VzLiBMZXQncyBzZWUgaG93IGRlZXAgdGhpcyByYWJiaXQgaG9sZSBnb2VzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MTEwLCJPdXRwdXRUb2tlbnMiOjE5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjI6NDU6NDQuNTU2MDQ3MjA3WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1MDUxODcyNDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIElORVRfUFNQXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9wc3AvS2NvbmZpZy00LSNcXG5uZXQvcHNwL0tjb25maWc6NTpjb25maWcgSU5FVF9QU1BcXG5uZXQvcHNwL0tjb25maWctNi1cXHRib29sIFxcXCJQU1AgU2VjdXJpdHkgUHJvdG9jb2wgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjI6NDU6NDcuMDYxMjM5ODg0WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzE3OTU5NjY5MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBhcyBpZiB0aGV5J3JlIG15IG93bjpcblxuKipBbmFseXppbmcgdGhlIFBTUCBLY29uZmlnIEZpbGUqKlxuXG5BbHJpZ2h0LCBsZXQncyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHRha2UgYSBsb29rIGF0IHRoZSBmdWxsIGBuZXQvcHNwL0tjb25maWdgIGZpbGUuIEkgbmVlZCB0byBnZXQgYSBjb21wcmVoZW5zaXZlIHVuZGVyc3RhbmRpbmcgb2YgKmV4YWN0bHkqIHdoYXQncyBkZWZpbmVkLCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGF2YWlsYWJsZSwgdGhlaXIgZGVwZW5kZW5jaWVzLCBhbmQgYW55IGRlZmF1bHQgc2V0dGluZ3MuIFRoZXJlJ3Mgbm8gc3Vic3RpdHV0ZSBmb3Igc2VlaW5nIHRoZSB3aG9sZSBwaWN0dXJlLiBJJ20gbG9va2luZyBmb3IgdGhlIGZvdW5kYXRpb25hbCBidWlsZGluZyBibG9ja3MsIHRoZSBhcmNoaXRlY3R1cmFsIGNob2ljZXMgYmFrZWQgaW50byB0aGlzIHNwZWNpZmljIFBTUCBuZXR3b3JrIGNvbmZpZ3VyYXRpb24uIEknbSBleHBlY3RpbmcgdG8gZmluZCBkZXRhaWxzIGFyb3VuZCBzdXBwb3J0ZWQgaGFyZHdhcmUsIGZlYXR1cmVzIGVuYWJsZWQgKG9yIGRpc2FibGVkKSwgYW5kIHRoZSBsb2dpY2FsIG9yZ2FuaXphdGlvbiBvZiB0aGUgY29uZmlndXJhdGlvbiBzcGFjZS4gSSB3YW50IHRvIGJ1aWxkIGEgbWVudGFsIG1hcCBvZiB0aGlzIFBTUCdzIGNhcGFiaWxpdGllcyBhbmQgY29uc3RyYWludHMuIFRoaXMgd2lsbCBiZSB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgaXRzIHBsYWNlIHdpdGhpbiB0aGUgbGFyZ2VyIHN5c3RlbS4gVGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ0MjEsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMjo0NTo1MC4yNDA4Mzk1MTRaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODE5MTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L3BzcC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDEwMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbiAgIDI6XFx0I1xcbiAgIDM6XFx0IyBQU1AgY29uZmlndXJhdGlvblxcbiAgIDQ6XFx0I1xcbiAgIDU6XFx0Y29uZmlnIElORVRfUFNQXFxuICAgNjpcXHRcXHRib29sIFxcXCJQU1AgU2VjdXJpdHkgUHJvdG9jb2wgc3VwcG9ydFxcXCJcXG4gICA3OlxcdFxcdGRlcGVuZHMgb24gSU5FVFxcbiAgIDg6XFx0XFx0c2VsZWN0IFNLQl9ERUNSWVBURURcXG4gICA5OlxcdFxcdHNlbGVjdCBTS0JfRVhURU5TSU9OU1xcbiAgMTA6XFx0XFx0c2VsZWN0IFNPQ0tfVkFMSURBVEVfWE1JVFxcbiAgMTE6XFx0XFx0aGVscFxcbiAgMTI6XFx0XFx0RW5hYmxlIGtlcm5lbCBzdXBwb3J0IGZvciB0aGUgUFNQIFNlY3VyaXR5IFByb3RvY29sIChQU1ApLlxcbiAgMTM6XFx0XFx0Rm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlOlxcbiAgMTQ6XFx0XFx0ICBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZ29vZ2xlL3BzcC9tYWluL2RvYy9QU1BfQXJjaF9TcGVjLnBkZlxcbiAgMTU6XFx0XFxuICAxNjpcXHRcXHRJZiB1bnN1cmUsIHNheSBOLlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMjo0NTo1MC4yNDA5MjQxNTRaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzAyMjYzMjY2NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFBTUCBDb25maWd1cmF0aW9uIENoYW5nZSoqXG5cbk9rYXksIHNvIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24gaXMgc2V0IHRvIGBJTkVUX1BTUGAsIGFuZCB0aGF0IG9idmlvdXNseSBoaW5nZXMgb24gYElORVRgLiBUaGF0J3MgdGhlIGJhc2VsaW5lLiBNeSBmb2N1cywgdGhvdWdoLCBpcyBvbiB0aGlzIHBhdGNoIGFuZCBpdHMgaW1wYWN0IG9uIGBwc3BfbmxfbXVsdGljYXN0X3Blcl9uc2AuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSByaXBwbGUgZWZmZWN0cywgdGhlIGRvd25zdHJlYW0gZGVwZW5kZW5jaWVzLiBUaGUgbW9kaWZpY2F0aW9uIG1pZ2h0IHNlZW0gc21hbGwsIGJ1dCB0aGVzZSBuZXR3b3JrIHN0cnVjdHVyZXMgY2FuIGJlIGRlbGljYXRlLiBOb3csIEknbSBnb2luZyB0byBsb29rIGF0IHRoZSBjb2RlYmFzZSBhbmQgaWRlbnRpZnkgKmV2ZXJ5KiBmdW5jdGlvbiB0aGF0IGNhbGxzIGBwc3BfbmxfbXVsdGljYXN0X3Blcl9uc2Agb3IgYHBzcF9ubF9ub3RpZnlfZGV2YC4gVGhpcyB3aWxsIHRlbGwgbWUgd2hhdCBzeXN0ZW1zIGFyZSB1dGlsaXppbmcgdGhlIGZ1bmN0aW9ucywgYW5kIEkgY2FuIGFzc2VzcyB3aGVyZSBjaGFuZ2VzIHdpbGwgaGF2ZSBhbiBpbXBhY3QuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ4NjYsIk91dHB1dFRva2VucyI6MjEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIyOjQ1OjUzLjI2MzU1OTQzOFoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjU2Nzk3ODc1NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwc3Bfbmxfbm90aWZ5X2RldlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvcHNwL3BzcC5oPTE5PWludCBwc3BfYXR0YWNoX25ldGRldl9ub3RpZmllcih2b2lkKTtcXG5uZXQvcHNwL3BzcC5oLTIwLVxcbm5ldC9wc3AvcHNwLmg6MjE6dm9pZCBwc3Bfbmxfbm90aWZ5X2RldihzdHJ1Y3QgcHNwX2RldiAqcHNkLCB1MzIgY21kKTtcXG5uZXQvcHNwL3BzcC5oLTIyLVxcbi0tXFxubmV0L3BzcC9wc3BfbWFpbi5jPTU5PXBzcF9kZXZfY3JlYXRlKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5uZXQvcHNwL3BzcF9tYWluLmMtMTA2LVxcdCAqL1xcbm5ldC9wc3AvcHNwX21haW4uYzoxMDc6XFx0cHNwX25sX25vdGlmeV9kZXYocHNkLCBQU1BfQ01EX0RFVl9BRERfTlRGKTtcXG5uZXQvcHNwL3BzcF9tYWluLmMtMTA4LVxcbi0tXFxubmV0L3BzcC9wc3BfbWFpbi5jPTEzMT12b2lkIHBzcF9kZXZfdW5yZWdpc3RlcihzdHJ1Y3QgcHNwX2RldiAqcHNkKVxcbi0tXFxubmV0L3BzcC9wc3BfbWFpbi5jLTEzOC1cXG5uZXQvcHNwL3BzcF9tYWluLmM6MTM5OlxcdHBzcF9ubF9ub3RpZnlfZGV2KHBzZCwgUFNQX0NNRF9ERVZfREVMX05URik7XFxubmV0L3BzcC9wc3BfbWFpbi5jLTE0MC1cXG4tLVxcbm5ldC9wc3AvcHNwX21haW4uYz00MjQ9c3RhdGljIGludCBwc3BfbmV0ZGV2X2V2ZW50KHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsIHVuc2lnbmVkIGxvbmcgZXZlbnQsXFxuLS1cXG5uZXQvcHNwL3BzcF9tYWluLmMtNDM4LVxcdFxcdGlmIChwc3BfZGV2X2lzX3JlZ2lzdGVyZWQocHNkKSlcXG5uZXQvcHNwL3BzcF9tYWluLmM6NDM5OlxcdFxcdFxcdHBzcF9ubF9ub3RpZnlfZGV2KHBzZCwgUFNQX0NNRF9ERVZfQ0hBTkdFX05URik7XFxubmV0L3BzcC9wc3BfbWFpbi5jLTQ0MC1cXHRcXHRwc3BfZGV2X2Rpc2Fzc29jX29uZShwc2QsIGRldik7XFxuLS1cXG5uZXQvcHNwL3BzcF9ubC5jPTMyNj1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKnBzcF9ubF9idWlsZF9kZXZfbnRmKHN0cnVjdCBwc3BfZGV2ICpwc2QsXFxuLS1cXG5uZXQvcHNwL3BzcF9ubC5jLTM0OS1cXG5uZXQvcHNwL3BzcF9ubC5jOjM1MDp2b2lkIHBzcF9ubF9ub3RpZnlfZGV2KHN0cnVjdCBwc3BfZGV2ICpwc2QsIHUzMiBjbWQpXFxubmV0L3BzcC9wc3BfbmwuYy0zNTEte1xcbi0tXFxubmV0L3BzcC9wc3BfbmwuYz00MDU9aW50IHBzcF9ubF9kZXZfc2V0X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG4tLVxcbm5ldC9wc3AvcHNwX25sLmMtNDM3LVxcbm5ldC9wc3AvcHNwX25sLmM6NDM4OlxcdHBzcF9ubF9ub3RpZnlfZGV2KHBzZCwgUFNQX0NNRF9ERVZfQ0hBTkdFX05URik7XFxubmV0L3BzcC9wc3BfbmwuYy00MzktXFxuLS1cXG5uZXQvcHNwL3BzcF9ubC5jPTQ5OT1pbnQgcHNwX25sX2Rldl9hc3NvY19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuLS1cXG5uZXQvcHNwL3BzcF9ubC5jLTU2Ny1cXG5uZXQvcHNwL3BzcF9ubC5jOjU2ODpcXHRwc3Bfbmxfbm90aWZ5X2Rldihwc2QsIFBTUF9DTURfREVWX0NIQU5HRV9OVEYpO1xcbm5ldC9wc3AvcHNwX25sLmMtNTY5LVxcbi0tXFxubmV0L3BzcC9wc3BfbmwuYz01ODQ9aW50IHBzcF9ubF9kZXZfZGlzYXNzb2NfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbi0tXFxubmV0L3BzcC9wc3BfbmwuYy02MjMtXFx0ICovXFxubmV0L3BzcC9wc3BfbmwuYzo2MjQ6XFx0cHNwX25sX25vdGlmeV9kZXYocHNkLCBQU1BfQ01EX0RFVl9DSEFOR0VfTlRGKTtcXG5uZXQvcHNwL3BzcF9ubC5jLTYyNS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjI6NDU6NTUuODMxNTQzNzYzWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ0MDc3NjIzNTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqVHJhY2luZyB0aGUgUFNQIERldmljZSBDcmVhdGlvbiBQYXRoKipcblxuT2theSwgc28gSSdtIGRpdmluZyBpbnRvIHRoaXMgUFNQIGNvZGUsIGFuZCBteSBpbml0aWFsIGZvY3VzIGlzIG9uIHVuZGVyc3RhbmRpbmcgdGhlIGRldmljZSBjcmVhdGlvbiBhbmQgbm90aWZpY2F0aW9uIHByb2Nlc3MuIFRoZSBjb3JlIG9mIHRoZSBtdWx0aWNhc3QgZnVuY3Rpb25hbGl0eSBhcHBlYXJzIHRvIHJlc2lkZSB3aXRoaW4gYHBzcF9ubF9tdWx0aWNhc3RfcGVyX25zYCwgd2hpY2ggaXMgdHJpZ2dlcmVkIGJ5IGBwc3BfbmxfbXVsdGljYXN0X2FsbF9uc2AgYW5kLCBpbXBvcnRhbnRseSwgYHBzcF9ubF9ub3RpZnlfZGV2YC4gVGhpcyBgcHNwX25sX25vdGlmeV9kZXZgIGZ1bmN0aW9uIGFjdHMgYXMgYSBjcnVjaWFsIGxpbmsgYmVjYXVzZSBpdCdzIGNhbGxlZCBieSBzZXZlcmFsIG5ldGxpbmsgaGFuZGxlcnMgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIGZvciBQU1Agb3BlcmF0aW9ucy5cblxuU3BlY2lmaWNhbGx5LCBJIHNlZSBgcHNwX2Rldl9jcmVhdGVgLCBgcHNwX2Rldl91bnJlZ2lzdGVyYCwgYHBzcF9uZXRkZXZfZXZlbnRgLCBgcHNwX25sX2Rldl9zZXRfZG9pdGAsIGBwc3BfbmxfZGV2X2Fzc29jX2RvaXRgLCBhbmQgYHBzcF9ubF9kZXZfZGlzYXNzb2NfZG9pdGAgYXMgdGhlIGNhbGxpbmcgZnVuY3Rpb25zLiBUaGVzZSBuZXRsaW5rIGhhbmRsZXJzIGFyZSB0aGUga2V5IGVudHJ5IHBvaW50cyBmb3IgbWFuYWdpbmcgYW5kIGludGVyYWN0aW5nIHdpdGggUFNQIGRldmljZXMuIFRoZXJlZm9yZSwgYSBkZWVwZXIgdW5kZXJzdGFuZGluZyBvZiBgcHNwX25sX2Rldl9zZXRfZG9pdGAsIGBwc3BfbmxfZGV2X2Fzc29jX2RvaXRgLCBhbmQgYHBzcF9ubF9kZXZfZGlzYXNzb2NfZG9pdGAgaXMgZXNzZW50aWFsLCBhcyB0aGV5IGFyZSBsaWtlbHkgcmVzcG9uc2libGUgZm9yIHRyaWdnZXJpbmcgbm90aWZpY2F0aW9ucy5cblxuSG93ZXZlciwgSSB0aGluayB0aGUgbW9zdCBpbXBvcnRhbnQgZnVuY3Rpb24gdG8gbG9vayBhdCBmaXJzdCBpcyBgcHNwX2Rldl9jcmVhdGVgLCB0aGUgZnVuY3Rpb24gY2FsbGVkIHdoZW4gYSBQU1AgZGV2aWNlIGlzIGFjdHVhbGx5IGNyZWF0ZWQuIEJ5IHRyYWNpbmcgdGhlIGV4ZWN1dGlvbiBwYXRoIG9mIHRoaXMgZnVuY3Rpb24sIEkgc2hvdWxkIGJlIGFibGUgdG8gZ2V0IGEgYmV0dGVyIGhhbmRsZSBvbiBob3cgdGhlIHdob2xlIHN5c3RlbSB3b3Jrcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NjAwMywiT3V0cHV0VG9rZW5zIjoxOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMjo0NjowMC4yMzkzMDk2NTNaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1MjkwNDQ2MzYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicHNwX2Rldl9jcmVhdGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL3BzcC5jPTEwODI9dm9pZCBtbHg1ZV9wc3BfcmVnaXN0ZXIoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvcHNwLmMtMTA5Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvcHNwLmM6MTA5NzpcXHRwc2QgPSBwc3BfZGV2X2NyZWF0ZShwcml2LVxcdTAwM2VuZXRkZXYsIFxcdTAwMjZtbHg1X3BzcF9vcHMsIFxcdTAwMjZwc3AtXFx1MDAzZWNhcHMsIE5VTEwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9wc3AuYy0xMDk4LVxcdGlmIChJU19FUlIocHNkKSkge1xcbi0tXFxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL3BzcC5jPTI0Mj1uc2ltX3BzcF9yZXJlZ193cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKmRhdGEsIHNpemVfdCBjb3VudCxcXG4tLVxcbmRyaXZlcnMvbmV0L25ldGRldnNpbS9wc3AuYy0yNTEtXFxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL3BzcC5jOjI1MjpcXHRwc2QgPSBwc3BfZGV2X2NyZWF0ZShucy1cXHUwMDNlbmV0ZGV2LCBcXHUwMDI2bnNpbV9wc3Bfb3BzLCBcXHUwMDI2bnNpbV9wc3BfY2FwcywgbnMpO1xcbmRyaXZlcnMvbmV0L25ldGRldnNpbS9wc3AuYy0yNTMtXFx0aWYgKElTX0VSUihwc2QpKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vcHNwLmM9MjcyPWludCBuc2ltX3BzcF9pbml0KHN0cnVjdCBuZXRkZXZzaW0gKm5zKVxcbi0tXFxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL3BzcC5jLTI3Ni1cXG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vcHNwLmM6Mjc3OlxcdHBzZCA9IHBzcF9kZXZfY3JlYXRlKG5zLVxcdTAwM2VuZXRkZXYsIFxcdTAwMjZuc2ltX3BzcF9vcHMsIFxcdTAwMjZuc2ltX3BzcF9jYXBzLCBucyk7XFxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL3BzcC5jLTI3OC1cXHRpZiAoSVNfRVJSKHBzZCkpXFxuLS1cXG5pbmNsdWRlL25ldC9wc3AvZnVuY3Rpb25zLmg9MTY9c3RydWN0IHBzcF9kZXYgKlxcbmluY2x1ZGUvbmV0L3BzcC9mdW5jdGlvbnMuaDoxNzpwc3BfZGV2X2NyZWF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBzdHJ1Y3QgcHNwX2Rldl9vcHMgKnBzZF9vcHMsXFxuaW5jbHVkZS9uZXQvcHNwL2Z1bmN0aW9ucy5oLTE4LVxcdCAgICAgICBzdHJ1Y3QgcHNwX2Rldl9jYXBzICpwc2RfY2Fwcywgdm9pZCAqcHJpdl9wdHIpO1xcbi0tXFxubmV0L3BzcC9wc3BfbWFpbi5jPTM4PWludCBwc3BfZGV2X2NoZWNrX2FjY2VzcyhzdHJ1Y3QgcHNwX2RldiAqcHNkLCBzdHJ1Y3QgbmV0ICpuZXQsIGJvb2wgYWRtaW4pXFxuLS1cXG5uZXQvcHNwL3BzcF9tYWluLmMtNDktLyoqXFxubmV0L3BzcC9wc3BfbWFpbi5jOjUwOiAqIHBzcF9kZXZfY3JlYXRlKCkgLSBjcmVhdGUgYW5kIHJlZ2lzdGVyIFBTUCBkZXZpY2VcXG5uZXQvcHNwL3BzcF9tYWluLmMtNTEtICogQG5ldGRldjpcXHRtYWluIG5ldGRldmljZVxcbi0tXFxubmV0L3BzcC9wc3BfbWFpbi5jPTU4PXN0cnVjdCBwc3BfZGV2ICpcXG5uZXQvcHNwL3BzcF9tYWluLmM6NTk6cHNwX2Rldl9jcmVhdGUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG5uZXQvcHNwL3BzcF9tYWluLmMtNjAtXFx0ICAgICAgIHN0cnVjdCBwc3BfZGV2X29wcyAqcHNkX29wcywgc3RydWN0IHBzcF9kZXZfY2FwcyAqcHNkX2NhcHMsXFxuLS1cXG5uZXQvcHNwL3BzcF9tYWluLmMtMTE0LX1cXG5uZXQvcHNwL3BzcF9tYWluLmM6MTE1OkVYUE9SVF9TWU1CT0wocHNwX2Rldl9jcmVhdGUpO1xcbm5ldC9wc3AvcHNwX21haW4uYy0xMTYtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIyOjQ2OjAyLjc2ODM2MDI3OVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyOTAyOTMyNTE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBzZWUgd2hhdCB3ZSd2ZSBnb3QgaGVyZS5cblxuKipJbml0aWFsIEFzc2Vzc21lbnQgb2YgUFNQIERyaXZlciBJbml0aWFsaXphdGlvbioqXG5cblJpZ2h0LCBzbyBgcHNwX2Rldl9jcmVhdGVgIGlzIGJlaW5nIGNhbGxlZCBieSBgbnNpbV9wc3BfaW5pdGAuIFRoYXQncyBpbnRlcmVzdGluZywgYW5kIHBvdGVudGlhbGx5IHZlcnkgdXNlZnVsLiBUaGUgZmFjdCB0aGF0IGl0J3MgaW4gYGRyaXZlcnMvbmV0L25ldGRldnNpbS9wc3AuY2AgaW1tZWRpYXRlbHkgdGVsbHMgbWUgdGhhdCB0aGlzIGlzIHRlc3RhYmxlIHZpYSBuZXRkZXZzaW0uIFRoaXMgaXMgYSBncmVhdCBzdGFydGluZyBwb2ludCBmb3IgYW5hbHl6aW5nIGFuZCBwZXJoYXBzIGV2ZW50dWFsbHkgbW9kaWZ5aW5nIHRoZSBwc3AgZHJpdmVyLiBOb3csIHRoZSBvYnZpb3VzIG5leHQgc3RlcCBpcyB0byBmaWd1cmUgb3V0IHRoZSBzcGVjaWZpYyBjb25maWd1cmF0aW9uIHJlcXVpcmVkIHRvIGluaXRpYWxpemUgYG5zaW1fcHNwX2luaXRgLiBMZXQncyBkaWcgaW50byB0aGF0IGFuZCBzZWUgd2hhdCB3ZSBjYW4gZmluZC5cblxuXG4iLCJJbnB1dFRva2VucyI6NzM3MSwiT3V0cHV0VG9rZW5zIjoyMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjYyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIyOjQ2OjA1LjY3MTI5NDY3NloiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjUzMjI2Mzc0NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJuc2ltX3BzcF9pbml0XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXYuYz0xMDM4PXN0YXRpYyBpbnQgbnNpbV9pbml0X25ldGRldnNpbShzdHJ1Y3QgbmV0ZGV2c2ltICpucylcXG4tLVxcbmRyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXYuYy0xMDc0LVxcbmRyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXYuYzoxMDc1OlxcdGVyciA9IG5zaW1fcHNwX2luaXQobnMpO1xcbmRyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXYuYy0xMDc2LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vbmV0ZGV2c2ltLmg9NDQ2PXN0YXRpYyBpbmxpbmUgdm9pZCBuc2ltX21hY3NlY190ZWFyZG93bihzdHJ1Y3QgbmV0ZGV2c2ltICpucylcXG4tLVxcbmRyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXZzaW0uaC00NTEtI2lmIElTX0VOQUJMRUQoQ09ORklHX0lORVRfUFNQKVxcbmRyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXZzaW0uaDo0NTI6aW50IG5zaW1fcHNwX2luaXQoc3RydWN0IG5ldGRldnNpbSAqbnMpO1xcbmRyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXZzaW0uaC00NTMtdm9pZCBuc2ltX3BzcF91bmluaXQoc3RydWN0IG5ldGRldnNpbSAqbnMpO1xcbi0tXFxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oPTQ1Nj1uc2ltX2RvX3BzcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0ZGV2c2ltICpucyxcXG4tLVxcbmRyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXZzaW0uaC00NTgtI2Vsc2VcXG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vbmV0ZGV2c2ltLmg6NDU5OnN0YXRpYyBpbmxpbmUgaW50IG5zaW1fcHNwX2luaXQoc3RydWN0IG5ldGRldnNpbSAqbnMpIHsgcmV0dXJuIDA7IH1cXG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vbmV0ZGV2c2ltLmgtNDYwLXN0YXRpYyBpbmxpbmUgdm9pZCBuc2ltX3BzcF91bmluaXQoc3RydWN0IG5ldGRldnNpbSAqbnMpIHt9XFxuLS1cXG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vcHNwLmM9MjY1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5zaW1fcHNwX3JlcmVnX2ZvcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vcHNwLmMtMjcxLVxcbmRyaXZlcnMvbmV0L25ldGRldnNpbS9wc3AuYzoyNzI6aW50IG5zaW1fcHNwX2luaXQoc3RydWN0IG5ldGRldnNpbSAqbnMpXFxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL3BzcC5jLTI3My17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIyOjQ2OjA4LjIwMzU2NTMyMloiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzE5MzcxNDY3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIE5ldGRldnNpbSBhbmQgUFNQIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyBpdCBzZWVtcyBsaWtlIGVuYWJsaW5nIGBDT05GSUdfSU5FVF9QU1BgIGlzIHN1ZmZpY2llbnQgdG8gZ2V0IFBTUCBmdW5jdGlvbmFsaXR5IHdvcmtpbmcgd2l0aGluIG5ldGRldnNpbSwgYXNzdW1pbmcsIG9mIGNvdXJzZSwgdGhhdCBgQ09ORklHX05FVERFVlNJTWAgaXMgYWxzbyBlbmFibGVkLiBUaGF0IHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2gsIGJ1dCBJIGFsd2F5cyBwcmVmZXIgdG8gYmUgdGhvcm91Z2guIEkgbmVlZCB0byB2ZXJpZnkgdGhhdCB0aGVyZSBhcmVuJ3QgYW55IG90aGVyIHN1YnRsZSBkZXBlbmRlbmNpZXMgbHVya2luZyB3aXRoaW4gdGhlIG5ldGRldnNpbSBLY29uZmlnIGZpbGUgdGhhdCBtaWdodCBpbmZsdWVuY2UgdGhpcy4gTGV0IG1lIHF1aWNrbHkgZXhhbWluZSBgZHJpdmVycy9uZXQvbmV0ZGV2c2ltL0tjb25maWdgIGFuZCBkb3VibGUtY2hlY2sgZm9yIGFueSBoaWRkZW4gZ290Y2hhcyBvciBjb25kaXRpb25hbCBkZXBlbmRlbmNpZXMgdGhhdCBjb3VsZCBpbXBhY3QgdGhpcyBjb25maWd1cmF0aW9uLiBCZXR0ZXIgc2FmZSB0aGFuIHNvcnJ5IHdoZW4gZGVhbGluZyB3aXRoIGtlcm5lbCBjb25maWd1cmF0aW9ucyFcblxuXG4iLCJJbnB1dFRva2VucyI6ODExMywiT3V0cHV0VG9rZW5zIjoxOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIyOjQ2OjExLjUyMjkzOTY3OVoiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjM1Mjk2MzE2MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgTkVUREVWU0lNXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L0tjb25maWc9NjAyPXNvdXJjZSBcXFwiZHJpdmVycy9uZXQvaHlwZXJ2L0tjb25maWdcXFwiXFxuZHJpdmVycy9uZXQvS2NvbmZpZy02MDMtXFxuZHJpdmVycy9uZXQvS2NvbmZpZzo2MDQ6Y29uZmlnIE5FVERFVlNJTVxcbmRyaXZlcnMvbmV0L0tjb25maWctNjA1LVxcdHRyaXN0YXRlIFxcXCJTaW11bGF0ZWQgbmV0d29ya2luZyBkZXZpY2VcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIyOjQ2OjEzLjg3NTkxMTc2WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4MTYzNTAwNjAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipOYXZpZ2F0aW5nIHRoZSBOZXR3b3JrIERyaXZlciBDb25maWd1cmF0aW9uIExhbmRzY2FwZSoqXG5cbk9rYXksIHRpbWUgdG8gZGl2ZSBpbnRvIHRoZSBuaXR0eS1ncml0dHkgb2YgdGhlIG5ldHdvcmsgZHJpdmVyIGNvbmZpZ3VyYXRpb24uIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyBhIHBhcnRpY3VsYXIgZmVhdHVyZSwgb3IgcGVyaGFwcyBhIGNvbmZsaWN0LCBpcyBiZWluZyBjb250cm9sbGVkLiBNeSBndXQgdGVsbHMgbWUgdGhhdCB0aGUga2V5IGxpZXMgd2l0aGluIHRoZSBgZHJpdmVycy9uZXQvS2NvbmZpZ2AgZmlsZS4gSSdtIGdvaW5nIHRvIGp1bXAgcmlnaHQgaW50byBpdC4gSSdtIGJldHRpbmcgdGhhdCBhcm91bmQgbGluZSA2MDQsIEknbGwgZmluZCB0aGUgc3BlY2lmaWMgY29uZmlndXJhdGlvbiBvcHRpb25zIHRoYXQgYXJlIHJlbGV2YW50IHRvIHdoYXQgSSdtIGxvb2tpbmcgZm9yLiBUaGlzIGlzIHdoZXJlIHRoZSBtYWdpYyBoYXBwZW5zLCB3aGVyZSB0aGUgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gYW5kIGRlcGVuZGVuY2llcyBhcmUgZGVmaW5lZC4gSG9wZWZ1bGx5LCB0aGlzIGlzIHdoZXJlIEknbGwgZmluZCB3aGF0IEkgbmVlZCB0byBlaXRoZXIgc29sdmUgdGhlIHByb2JsZW0gSSdtIGludmVzdGlnYXRpbmcgb3IgdG8gZ2V0IHRvIGEgZGVlcGVyIGxldmVsIG9mIHVuZGVyc3RhbmRpbmcuIExldCdzIHNlZSB3aGF0IEtjb25maWcgaGFzIGluIHN0b3JlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4NDE4LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjI6NDY6MTYuNjkyMjY0OTQ5WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyNzc2OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDYwMCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDYwMDpcXHRcXG4gNjAxOlxcdHNvdXJjZSBcXFwiZHJpdmVycy9uZXQvdGh1bmRlcmJvbHQvS2NvbmZpZ1xcXCJcXG4gNjAyOlxcdHNvdXJjZSBcXFwiZHJpdmVycy9uZXQvaHlwZXJ2L0tjb25maWdcXFwiXFxuIDYwMzpcXHRcXG4gNjA0OlxcdGNvbmZpZyBORVRERVZTSU1cXG4gNjA1OlxcdFxcdHRyaXN0YXRlIFxcXCJTaW11bGF0ZWQgbmV0d29ya2luZyBkZXZpY2VcXFwiXFxuIDYwNjpcXHRcXHRkZXBlbmRzIG9uIERFQlVHX0ZTXFxuIDYwNzpcXHRcXHRkZXBlbmRzIG9uIElORVRcXG4gNjA4OlxcdFxcdGRlcGVuZHMgb24gUFNBTVBMRSB8fCBQU0FNUExFPW5cXG4gNjA5OlxcdFxcdGRlcGVuZHMgb24gUFRQXzE1ODhfQ0xPQ0tfTU9DSyB8fCBQVFBfMTU4OF9DTE9DS19NT0NLPW5cXG4gNjEwOlxcdFxcdHNlbGVjdCBORVRfREVWTElOS1xcbiA2MTE6XFx0XFx0c2VsZWN0IFBBR0VfUE9PTFxcbiA2MTI6XFx0XFx0c2VsZWN0IE5FVF9TSEFQRVJcXG4gNjEzOlxcdFxcdGhlbHBcXG4gNjE0OlxcdFxcdCAgVGhpcyBkcml2ZXIgaXMgYSBkZXZlbG9wZXIgdGVzdGluZyB0b29sIGFuZCBzb2Z0d2FyZSBtb2RlbCB0aGF0IGNhblxcbiA2MTU6XFx0XFx0ICBiZSB1c2VkIHRvIHRlc3QgdmFyaW91cyBjb250cm9sIHBhdGggbmV0d29ya2luZyBBUElzLCBlc3BlY2lhbGx5XFxuIDYxNjpcXHRcXHQgIEhXLW9mZmxvYWQgcmVsYXRlZC5cXG4gNjE3OlxcdFxcbiA2MTg6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlXFxuIDYxOTpcXHRcXHQgIHdpbGwgYmUgY2FsbGVkIG5ldGRldnNpbS5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjI6NDY6MTYuNjkyMzk0OTRaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTc4Nzc0NTk2NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIFRhcmdldCBJZGVudGlmaWNhdGlvbjogUFNQIE5ldGxpbmsgUmFjZSBDb25kaXRpb24qKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCB0aGlzIHBhdGNoIOKAkyBpdCBsb29rcyBsaWtlIGl0J3MgYWRkcmVzc2luZyBhIHJhY2UgY29uZGl0aW9uIHdpdGhpbiBgcHNwX25sX211bHRpY2FzdF9wZXJfbnNgLCBzcGVjaWZpY2FsbHkgaW4gdGhlIGBuZXQvcHNwL3BzcF9ubC5jYCBmaWxlLiBJdCdzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIG5vdCBhIHN1cGVyZmljaWFsIG9uZSwgYW5kIGl0J3MgZml4aW5nIHNvbWV0aGluZyByZWxhdGVkIHRvIGRldmljZXMgY2hhbmdpbmcgbmV0d29yayBuYW1lc3BhY2VzIGNvbmN1cnJlbnRseS4gVGhpcyBzY3JlYW1zIFwiZnV6emluZyBvcHBvcnR1bml0eVwiIHRvIG1lLCBlc3BlY2lhbGx5IGdpdmVuIHRoZSBjb250ZXh0IG9mIFBTUCAoUFNQIFNlY3VyaXR5IFByb3RvY29sKSBuZXRsaW5rIGludGVyYWN0aW9ucy5cblxuVGhlIHBhdGNoIHNlZW1zIHRvIHJlcXVpcmUgYERFQlVHX0ZTYCBhbmQgYElORVRgLCB3aGljaCBpcyBnb29kIHRvIGtub3cgZm9yIHNldHVwLiBXZSdyZSB0YWxraW5nIGFib3V0IGNvcmUgUFNQIGxvZ2ljIHJlYWNoYWJsZSB2aWEgbmV0bGluayBjb21tYW5kcywgd2hpY2ggbWFrZXMgaXQgZnV6emFibGUgd2l0aCB0aGUgYG5ldGRldnNpbWAgZHJpdmVyLiBQZXJmZWN0LlxuXG5NeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gemVybyBpbiBvbiB0aGUgbmV0bGluayBlbnRyeSBwb2ludHMgdGhhdCB1bHRpbWF0ZWx5IGNhbGwgaW50byBgcHNwX25sX211bHRpY2FzdF9wZXJfbnNgLiBTaW5jZSBgcHNwX25sX211bHRpY2FzdF9wZXJfbnNgIGlzIHN0YXRpYywgd2UncmUgbm90IGdvaW5nIHRvIGJlIGFibGUgdG8gY2FsbCB0aGUgZnVuY3Rpb24gZGlyZWN0bHkuIEFmdGVyIGEgYml0IG9mIHJldmlldywgYHBzcF9ubF9kZXZfc2V0X2RvaXRgLCBgcHNwX25sX2Rldl9hc3NvY19kb2l0YCwgYW5kIGBwc3BfbmxfZGV2X2Rpc2Fzc29jX2RvaXRgIHNlZW0gbGlrZSB0aGUga2V5IGVudHJ5IHBvaW50cy4gQW5kLCBgcHNwX2Rldl9jcmVhdGVgIGxvb2tzIGxpa2UgYW5vdGhlciBpbXBvcnRhbnQgc3ltYm9sLiBJJ2xsIG5lZWQgdG8gZW5hYmxlIGBJTkVUX1BTUGAgYW5kIGBORVRERVZTSU1gIGZvciB0aGUgZnV6emluZyBzZXR1cC5cblxuTm93LCBsZXQgbWUganVzdCBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGF0IHRoZXJlIGFyZW4ndCBhbnkgb3RoZXIgcG90ZW50aWFsbHkgcmVsZXZhbnQgbmV0bGluayBlbnRyeSBwb2ludHMgaW4gYG5ldC9wc3AvcHNwX25sLmNgIHRoYXQgSSBtaWdodCBoYXZlIG1pc3NlZC4gR290dGEgYmUgdGhvcm91Z2guXG5cblxuIiwiSW5wdXRUb2tlbnMiOjg5NjgsIk91dHB1dFRva2VucyI6MTcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMzEsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMjo0NjoyMi40ODAxNDMxNzRaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI5MzE1NjY4OTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiX2RvaXRcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAzMzM0IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvZ2VuZXRsaW5rLWMueWFtbD0yOT1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXRsaW5rL2dlbmV0bGluay1jLnlhbWwtMzUxLSAgICAgICAgICAgICAgICBwcmU6XFxuRG9jdW1lbnRhdGlvbi9uZXRsaW5rL2dlbmV0bGluay1jLnlhbWw6MzUyOiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBIb29rIGZvciBhIGZ1bmN0aW9uIHRvIHJ1biBiZWZvcmUgdGhlIG1haW4gY2FsbGJhY2sgKHByZV9kb2l0IG9yIHN0YXJ0KS5cXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvZ2VuZXRsaW5rLWMueWFtbC0zNTMtICAgICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nXFxuRG9jdW1lbnRhdGlvbi9uZXRsaW5rL2dlbmV0bGluay1jLnlhbWwtMzU0LSAgICAgICAgICAgICAgICBwb3N0OlxcbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmstYy55YW1sOjM1NTogICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogSG9vayBmb3IgYSBmdW5jdGlvbiB0byBydW4gYWZ0ZXIgdGhlIG1haW4gY2FsbGJhY2sgKHBvc3RfZG9pdCBvciBkb25lKS5cXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvZ2VuZXRsaW5rLWMueWFtbC0zNTYtICAgICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvZ2VuZXRsaW5rLWxlZ2FjeS55YW1sPTMyPXByb3BlcnRpZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvZ2VuZXRsaW5rLWxlZ2FjeS55YW1sLTQxOC0gICAgICAgICAgICAgICAgcHJlOlxcbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmstbGVnYWN5LnlhbWw6NDE5OiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBIb29rIGZvciBhIGZ1bmN0aW9uIHRvIHJ1biBiZWZvcmUgdGhlIG1haW4gY2FsbGJhY2sgKHByZV9kb2l0IG9yIHN0YXJ0KS5cXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvZ2VuZXRsaW5rLWxlZ2FjeS55YW1sLTQyMC0gICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmdcXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvZ2VuZXRsaW5rLWxlZ2FjeS55YW1sLTQyMS0gICAgICAgICAgICAgICAgcG9zdDpcXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvZ2VuZXRsaW5rLWxlZ2FjeS55YW1sOjQyMjogICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogSG9vayBmb3IgYSBmdW5jdGlvbiB0byBydW4gYWZ0ZXIgdGhlIG1haW4gY2FsbGJhY2sgKHBvc3RfZG9pdCBvciBkb25lKS5cXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvZ2VuZXRsaW5rLWxlZ2FjeS55YW1sLTQyMy0gICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmdcXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmsueWFtbD0zMj1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXRsaW5rL2dlbmV0bGluay55YW1sLTMwMy0gICAgICAgICAgICAgICAgcHJlOlxcbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmsueWFtbDozMDQ6ICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IEhvb2sgZm9yIGEgZnVuY3Rpb24gdG8gcnVuIGJlZm9yZSB0aGUgbWFpbiBjYWxsYmFjayAocHJlX2RvaXQgb3Igc3RhcnQpLlxcbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmsueWFtbC0zMDUtICAgICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nXFxuRG9jdW1lbnRhdGlvbi9uZXRsaW5rL2dlbmV0bGluay55YW1sLTMwNi0gICAgICAgICAgICAgICAgcG9zdDpcXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvZ2VuZXRsaW5rLnlhbWw6MzA3OiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBIb29rIGZvciBhIGZ1bmN0aW9uIHRvIHJ1biBhZnRlciB0aGUgbWFpbiBjYWxsYmFjayAocG9zdF9kb2l0IG9yIGRvbmUpLlxcbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmsueWFtbC0zMDgtICAgICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvbmV0bGluay1yYXcueWFtbD0zNT1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXRsaW5rL25ldGxpbmstcmF3LnlhbWwtNDg1LSAgICAgICAgICAgICAgICBwcmU6XFxuRG9jdW1lbnRhdGlvbi9uZXRsaW5rL25ldGxpbmstcmF3LnlhbWw6NDg2OiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBIb29rIGZvciBhIGZ1bmN0aW9uIHRvIHJ1biBiZWZvcmUgdGhlIG1haW4gY2FsbGJhY2sgKHByZV9kb2l0IG9yIHN0YXJ0KS5cXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvbmV0bGluay1yYXcueWFtbC00ODctICAgICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nXFxuRG9jdW1lbnRhdGlvbi9uZXRsaW5rL25ldGxpbmstcmF3LnlhbWwtNDg4LSAgICAgICAgICAgICAgICBwb3N0OlxcbkRvY3VtZW50YXRpb24vbmV0bGluay9uZXRsaW5rLXJhdy55YW1sOjQ4OTogICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogSG9vayBmb3IgYSBmdW5jdGlvbiB0byBydW4gYWZ0ZXIgdGhlIG1haW4gY2FsbGJhY2sgKHBvc3RfZG9pdCBvciBkb25lKS5cXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvbmV0bGluay1yYXcueWFtbC00OTAtICAgICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q9MzUxPWxvY2sgbXVzdCBhbHdheXMgYmUgYWNxdWlyZWQgYmVmb3JlIHRoZSBwaHlzaWNhbCBkZXZpY2UncyAoc2VlXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0OjM1MjpgYG5ldGRldl9ubF9xdWV1ZV9jcmVhdGVfZG9pdGBgKS5cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtMzUzLVxcbi0tXFxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvc3BlY3MucnN0PTM3Mj1NZXNzYWdlcyBjYW4gYWxzbyBkZWZpbmUgYGBwcmVgYCBhbmQgYGBwb3N0YGAgcHJvcGVydGllcyB3aGljaCB3aWxsIGJlIHJlbmRlcmVkXFxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvc3BlY3MucnN0OjM3MzphcyBgYHByZV9kb2l0YGAgYW5kIGBgcG9zdF9kb2l0YGAgY2FsbHMgaW4gdGhlIGtlcm5lbCAodGhlc2UgcHJvcGVydGllcyBzaG91bGRcXG5Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbmV0bGluay9zcGVjcy5yc3QtMzc0LWJlIGlnbm9yZWQgYnkgdXNlciBzcGFjZSkuXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTgxPXN0YXRpYyBpbnQgZHJiZF9tc2dfc3ByaW50Zl9pbmZvKHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKVxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0xMTMtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzoxMTQ6LyogUGVyLWNvbW1hbmQgZmxhZ3MgZm9yIGRyYmRfcHJlX2RvaXQoKSAqL1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMTE1LXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgZHJiZF9nZW5sX2NtZF9mbGFnc1tdID0ge1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz0xNTg9c3RhdGljIGludCBkcmJkX2FkbV9wcmVwYXJlKHN0cnVjdCBkcmJkX2NvbmZpZ19jb250ZXh0ICphZG1fY3R4LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMDQtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozMDU6aW50IGRyYmRfcHJlX2RvaXQoY29uc3Qgc3RydWN0IGdlbmxfc3BsaXRfb3BzICpvcHMsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMDYtXFx0XFx0ICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMzItXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozMzM6dm9pZCBkcmJkX3Bvc3RfZG9pdChjb25zdCBzdHJ1Y3QgZ2VubF9zcGxpdF9vcHMgKm9wcyxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMzNC1cXHRcXHQgICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9Nzk5PXN0YXRpYyBpbnQgZHJiZF9ubF9zZXRfcm9sZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy04MzgtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo4Mzk6aW50IGRyYmRfbmxfcHJpbWFyeV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy04NDAte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy04NDMtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo4NDQ6aW50IGRyYmRfbmxfc2Vjb25kYXJ5X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTg0NS17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTkxMz1jaGFyICpwcHNpemUoY2hhciAqYnVmLCB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSlcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtOTQyLS8qIE5vdGUgdGhlc2UgYXJlIG5vdCB0byBiZSBjb25mdXNlZCB3aXRoXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo5NDM6ICogZHJiZF9ubF9zdXNwZW5kX2lvX2RvaXQvZHJiZF9ubF9yZXN1bWVfaW9fZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTk0NC0gKiB3aGljaCBhcmUgKHN1Yikgc3RhdGUgY2hhbmdlcyB0cmlnZ2VyZWQgYnkgYWRtaW4gKGRyYmRzZXR1cCksXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTE1MzE9c3RhdGljIGludCBkaXNrX29wdHNfY2hlY2tfYWxfc2l6ZShzdHJ1Y3QgZHJiZF9kZXZpY2UgKmRldmljZSwgc3RydWN0IGRpc2tfY29uZiAqZGMpXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTE1NTQtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzoxNTU1OmludCBkcmJkX25sX2NoZ19kaXNrX29wdHNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMTU1Ni17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTE3ODE9dm9pZCBkcmJkX2JhY2tpbmdfZGV2X2ZyZWUoc3RydWN0IGRyYmRfZGV2aWNlICpkZXZpY2UsIHN0cnVjdCBkcmJkX2JhY2tpbmdfZGV2ICpsZGV2KVxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0xNzkzLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6MTc5NDppbnQgZHJiZF9ubF9hdHRhY2hfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMTc5NS17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTIyMTg9c3RhdGljIGludCBhZG1fZGV0YWNoKHN0cnVjdCBkcmJkX2RldmljZSAqZGV2aWNlLCBpbnQgZm9yY2UpXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTIyMzMtICogT25seSB0aGVuIHdlIGhhdmUgZmluYWxseSBkZXRhY2hlZC4gKi9cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjIyMzQ6aW50IGRyYmRfbmxfZGV0YWNoX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTIyMzUte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz0yNDI0PXN0YXRpYyB2b2lkIGZyZWVfY3J5cHRvKHN0cnVjdCBjcnlwdG8gKmNyeXB0bylcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMjQzMS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjI0MzI6aW50IGRyYmRfbmxfY2hnX25ldF9vcHRzX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI0MzMte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz0yNTc0PXN0YXRpYyB2b2lkIHBlZXJfZGV2aWNlX3RvX2luZm8oc3RydWN0IHBlZXJfZGV2aWNlX2luZm8gKmluZm8sXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI1ODYtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzoyNTg3OmludCBkcmJkX25sX2Nvbm5lY3RfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMjU4OC17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTI3MzY9c3RhdGljIGVudW0gZHJiZF9zdGF0ZV9ydiBjb25uX3RyeV9kaXNjb25uZWN0KHN0cnVjdCBkcmJkX2Nvbm5lY3Rpb24gKmNvbm5lY3Rpb24sIGJvb2wgZm9yY2UpXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI4MDEtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzoyODAyOmludCBkcmJkX25sX2Rpc2Nvbm5lY3RfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMjgwMy17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTI4NDE9dm9pZCByZXN5bmNfYWZ0ZXJfb25saW5lX2dyb3coc3RydWN0IGRyYmRfZGV2aWNlICpkZXZpY2UpXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI4NTYtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzoyODU3OmludCBkcmJkX25sX3Jlc2l6ZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yODU4LXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMjk5Mi1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjI5OTM6aW50IGRyYmRfbmxfcmVzb3VyY2Vfb3B0c19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yOTk0LXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzAzMC1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjMwMzE6aW50IGRyYmRfbmxfaW52YWxpZGF0ZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMDMyLXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9MzA5OT1zdGF0aWMgaW50IGRyYmRfYm1pb19zZXRfc3VzcF9hbChzdHJ1Y3QgZHJiZF9kZXZpY2UgKmRldmljZSxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzEwOC1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjMxMDk6aW50IGRyYmRfbmxfaW52YWxfcGVlcl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMTEwLXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzE1OS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjMxNjA6aW50IGRyYmRfbmxfcGF1c2Vfc3luY19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMTYxLXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzE3OS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjMxODA6aW50IGRyYmRfbmxfcmVzdW1lX3N5bmNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzE4MS17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMyMDctXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozMjA4OmludCBkcmJkX25sX3N1c3BlbmRfaW9fZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzIwOS17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMyMTItXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozMjEzOmludCBkcmJkX25sX3Jlc3VtZV9pb19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMjE0LXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzI2OC1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjMyNjk6aW50IGRyYmRfbmxfb3V0ZGF0ZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMjcwLXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9MzgwMT1zdGF0aWMgaW50IG5sYV9wdXRfc3RhdHVzX2luZm8oc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGRyYmRfZGV2aWNlICpkZXZpY2UsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTM4MTMtXFx0ICpcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjM4MTQ6XFx0ICogSWYgc2liID09IE5VTEwsIHRoaXMgaXMgZHJiZF9ubF9nZXRfc3RhdHVzX2RvaXQsIGV4ZWN1dGVkIHN5bmNocm9ub3VzbHlcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTM4MTUtXFx0ICogaW4gdGhlIGNvbnRleHQgb2YgdGhlIHJlcXVlc3RpbmcgdXNlciBwcm9jZXNzLiBFeGNsdWRlIHNlbnNpdGl2ZVxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zOTUwLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6Mzk1MTppbnQgZHJiZF9ubF9nZXRfc3RhdHVzX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTM5NTIte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz00MTAzPWludCBkcmJkX25sX2dldF9zdGF0dXNfZHVtcGl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYilcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDE1MC1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjQxNTE6aW50IGRyYmRfbmxfZ2V0X3RpbWVvdXRfdHlwZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00MTUyLXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDE3OS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjQxODA6aW50IGRyYmRfbmxfc3RhcnRfb3ZfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDE4MS17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQyMjUtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0MjI2OmludCBkcmJkX25sX25ld19jX3V1aWRfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDIyNy17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTQzMjA9c3RhdGljIHZvaWQgcmVzb3VyY2VfdG9faW5mbyhzdHJ1Y3QgcmVzb3VyY2VfaW5mbyAqaW5mbyxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDMyOC1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjQzMjk6aW50IGRyYmRfbmxfbmV3X3Jlc291cmNlX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQzMzAte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz00Mzg1PXN0YXRpYyB2b2lkIGRldmljZV90b19pbmZvKHN0cnVjdCBkZXZpY2VfaW5mbyAqaW5mbyxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDM5MS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjQzOTI6aW50IGRyYmRfbmxfbmV3X21pbm9yX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQzOTMte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz00NDYyPXN0YXRpYyBlbnVtIGRyYmRfcmV0X2NvZGUgYWRtX2RlbF9taW5vcihzdHJ1Y3QgZHJiZF9kZXZpY2UgKmRldmljZSlcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDQ5OC1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjQ0OTk6aW50IGRyYmRfbmxfZGVsX21pbm9yX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQ1MDAte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz00NTE4PXN0YXRpYyBpbnQgYWRtX2RlbF9yZXNvdXJjZShzdHJ1Y3QgZHJiZF9yZXNvdXJjZSAqcmVzb3VyY2UpXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQ1NDctXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0NTQ4OmludCBkcmJkX25sX2Rvd25fZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDU0OS17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQ2MTAtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0NjExOmludCBkcmJkX25sX2RlbF9yZXNvdXJjZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00NjEyLXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jPTM1OT1jb25zdCBzdHJ1Y3QgZ2VubF9zcGxpdF9vcHMgZHJiZF9ubF9vcHNbMzJdID0ge1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtMzYxLVxcdFxcdC5jbWRcXHRcXHQ9IERSQkRfQURNX0dFVF9TVEFUVVMsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6MzYyOlxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzozNjM6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfZ2V0X3N0YXR1c19kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjM2NDpcXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zNjUtXFx0XFx0LnBvbGljeVxcdFxcdD0gZHJiZF9nZXRfc3RhdHVzX2RvX25sX3BvbGljeSxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTM3Ny1cXHRcXHQuY21kXFx0XFx0PSBEUkJEX0FETV9ORVdfTUlOT1IsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6Mzc4OlxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzozNzk6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfbmV3X21pbm9yX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6MzgwOlxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTM4MS1cXHRcXHQucG9saWN5XFx0XFx0PSBkcmJkX25ld19taW5vcl9ubF9wb2xpY3ksXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zODYtXFx0XFx0LmNtZFxcdFxcdD0gRFJCRF9BRE1fREVMX01JTk9SLFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjM4NzpcXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6Mzg4OlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX2RlbF9taW5vcl9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjM4OTpcXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zOTAtXFx0XFx0LnBvbGljeVxcdFxcdD0gZHJiZF9kZWxfbWlub3JfbmxfcG9saWN5LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtMzk1LVxcdFxcdC5jbWRcXHRcXHQ9IERSQkRfQURNX05FV19SRVNPVVJDRSxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzozOTY6XFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjM5NzpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9uZXdfcmVzb3VyY2VfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzozOTg6XFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtMzk5LVxcdFxcdC5wb2xpY3lcXHRcXHQ9IGRyYmRfbmV3X3Jlc291cmNlX25sX3BvbGljeSxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQwNC1cXHRcXHQuY21kXFx0XFx0PSBEUkJEX0FETV9ERUxfUkVTT1VSQ0UsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDA1OlxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0MDY6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfZGVsX3Jlc291cmNlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDA3OlxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQwOC1cXHRcXHQucG9saWN5XFx0XFx0PSBkcmJkX2RlbF9yZXNvdXJjZV9ubF9wb2xpY3ksXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00MTMtXFx0XFx0LmNtZFxcdFxcdD0gRFJCRF9BRE1fUkVTT1VSQ0VfT1BUUyxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0MTQ6XFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQxNTpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9yZXNvdXJjZV9vcHRzX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDE2OlxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQxNy1cXHRcXHQucG9saWN5XFx0XFx0PSBkcmJkX3Jlc291cmNlX29wdHNfbmxfcG9saWN5LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDIyLVxcdFxcdC5jbWRcXHRcXHQ9IERSQkRfQURNX0NPTk5FQ1QsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDIzOlxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0MjQ6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfY29ubmVjdF9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQyNTpcXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00MjYtXFx0XFx0LnBvbGljeVxcdFxcdD0gZHJiZF9jb25uZWN0X25sX3BvbGljeSxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQzMS1cXHRcXHQuY21kXFx0XFx0PSBEUkJEX0FETV9ESVNDT05ORUNULFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQzMjpcXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDMzOlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX2Rpc2Nvbm5lY3RfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0MzQ6XFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDM1LVxcdFxcdC5wb2xpY3lcXHRcXHQ9IGRyYmRfZGlzY29ubmVjdF9ubF9wb2xpY3ksXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00NDAtXFx0XFx0LmNtZFxcdFxcdD0gRFJCRF9BRE1fQVRUQUNILFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ0MTpcXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDQyOlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX2F0dGFjaF9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ0MzpcXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00NDQtXFx0XFx0LnBvbGljeVxcdFxcdD0gZHJiZF9hdHRhY2hfbmxfcG9saWN5LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDQ5LVxcdFxcdC5jbWRcXHRcXHQ9IERSQkRfQURNX1JFU0laRSxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0NTA6XFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ1MTpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9yZXNpemVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0NTI6XFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDUzLVxcdFxcdC5wb2xpY3lcXHRcXHQ9IGRyYmRfcmVzaXplX25sX3BvbGljeSxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQ1OC1cXHRcXHQuY21kXFx0XFx0PSBEUkJEX0FETV9QUklNQVJZLFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ1OTpcXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDYwOlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX3ByaW1hcnlfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0NjE6XFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDYyLVxcdFxcdC5wb2xpY3lcXHRcXHQ9IGRyYmRfcHJpbWFyeV9ubF9wb2xpY3ksXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00NjctXFx0XFx0LmNtZFxcdFxcdD0gRFJCRF9BRE1fU0VDT05EQVJZLFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ2ODpcXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDY5OlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX3NlY29uZGFyeV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ3MDpcXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00NzEtXFx0XFx0LnBvbGljeVxcdFxcdD0gZHJiZF9zZWNvbmRhcnlfbmxfcG9saWN5LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDc2LVxcdFxcdC5jbWRcXHRcXHQ9IERSQkRfQURNX05FV19DX1VVSUQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDc3OlxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0Nzg6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfbmV3X2NfdXVpZF9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ3OTpcXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00ODAtXFx0XFx0LnBvbGljeVxcdFxcdD0gZHJiZF9uZXdfY191dWlkX25sX3BvbGljeSxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQ4NS1cXHRcXHQuY21kXFx0XFx0PSBEUkJEX0FETV9TVEFSVF9PVixcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0ODY6XFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ4NzpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9zdGFydF9vdl9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ4ODpcXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00ODktXFx0XFx0LnBvbGljeVxcdFxcdD0gZHJiZF9zdGFydF9vdl9ubF9wb2xpY3ksXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00OTQtXFx0XFx0LmNtZFxcdFxcdD0gRFJCRF9BRE1fREVUQUNILFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ5NTpcXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDk2OlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX2RldGFjaF9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ5NzpcXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00OTgtXFx0XFx0LnBvbGljeVxcdFxcdD0gZHJiZF9kZXRhY2hfbmxfcG9saWN5LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTAzLVxcdFxcdC5jbWRcXHRcXHQ9IERSQkRfQURNX0lOVkFMSURBVEUsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTA0OlxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1MDU6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfaW52YWxpZGF0ZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjUwNjpcXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01MDctXFx0XFx0LnBvbGljeVxcdFxcdD0gZHJiZF9pbnZhbGlkYXRlX25sX3BvbGljeSxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTUxMi1cXHRcXHQuY21kXFx0XFx0PSBEUkJEX0FETV9JTlZBTF9QRUVSLFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjUxMzpcXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTE0OlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX2ludmFsX3BlZXJfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1MTU6XFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTE2LVxcdFxcdC5wb2xpY3lcXHRcXHQ9IGRyYmRfaW52YWxfcGVlcl9ubF9wb2xpY3ksXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01MjEtXFx0XFx0LmNtZFxcdFxcdD0gRFJCRF9BRE1fUEFVU0VfU1lOQyxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1MjI6XFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjUyMzpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9wYXVzZV9zeW5jX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTI0OlxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTUyNS1cXHRcXHQucG9saWN5XFx0XFx0PSBkcmJkX3BhdXNlX3N5bmNfbmxfcG9saWN5LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTMwLVxcdFxcdC5jbWRcXHRcXHQ9IERSQkRfQURNX1JFU1VNRV9TWU5DLFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjUzMTpcXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTMyOlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX3Jlc3VtZV9zeW5jX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTMzOlxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTUzNC1cXHRcXHQucG9saWN5XFx0XFx0PSBkcmJkX3Jlc3VtZV9zeW5jX25sX3BvbGljeSxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTUzOS1cXHRcXHQuY21kXFx0XFx0PSBEUkJEX0FETV9TVVNQRU5EX0lPLFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU0MDpcXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTQxOlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX3N1c3BlbmRfaW9fZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1NDI6XFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTQzLVxcdFxcdC5wb2xpY3lcXHRcXHQ9IGRyYmRfc3VzcGVuZF9pb19ubF9wb2xpY3ksXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01NDgtXFx0XFx0LmNtZFxcdFxcdD0gRFJCRF9BRE1fUkVTVU1FX0lPLFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU0OTpcXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTUwOlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX3Jlc3VtZV9pb19kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU1MTpcXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01NTItXFx0XFx0LnBvbGljeVxcdFxcdD0gZHJiZF9yZXN1bWVfaW9fbmxfcG9saWN5LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTU3LVxcdFxcdC5jbWRcXHRcXHQ9IERSQkRfQURNX09VVERBVEUsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTU4OlxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1NTk6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfb3V0ZGF0ZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU2MDpcXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01NjEtXFx0XFx0LnBvbGljeVxcdFxcdD0gZHJiZF9vdXRkYXRlX25sX3BvbGljeSxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU2Ni1cXHRcXHQuY21kXFx0XFx0PSBEUkJEX0FETV9HRVRfVElNRU9VVF9UWVBFLFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU2NzpcXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTY4OlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX2dldF90aW1lb3V0X3R5cGVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1Njk6XFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTcwLVxcdFxcdC5wb2xpY3lcXHRcXHQ9IGRyYmRfZ2V0X3RpbWVvdXRfdHlwZV9ubF9wb2xpY3ksXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01NzUtXFx0XFx0LmNtZFxcdFxcdD0gRFJCRF9BRE1fRE9XTixcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1NzY6XFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU3NzpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9kb3duX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTc4OlxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU3OS1cXHRcXHQucG9saWN5XFx0XFx0PSBkcmJkX2Rvd25fbmxfcG9saWN5LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTg0LVxcdFxcdC5jbWRcXHRcXHQ9IERSQkRfQURNX0NIR19ESVNLX09QVFMsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTg1OlxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1ODY6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfY2hnX2Rpc2tfb3B0c19kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU4NzpcXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01ODgtXFx0XFx0LnBvbGljeVxcdFxcdD0gZHJiZF9jaGdfZGlza19vcHRzX25sX3BvbGljeSxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU5My1cXHRcXHQuY21kXFx0XFx0PSBEUkJEX0FETV9DSEdfTkVUX09QVFMsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTk0OlxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1OTU6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfY2hnX25ldF9vcHRzX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTk2OlxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU5Ny1cXHRcXHQucG9saWN5XFx0XFx0PSBkcmJkX2NoZ19uZXRfb3B0c19ubF9wb2xpY3ksXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaD0zND1leHRlcm4gY29uc3Qgc3RydWN0IGdlbmxfc3BsaXRfb3BzIGRyYmRfbmxfb3BzWzMyXTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaC0zNS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDozNjppbnQgZHJiZF9wcmVfZG9pdChjb25zdCBzdHJ1Y3QgZ2VubF9zcGxpdF9vcHMgKm9wcywgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaC0zNy1cXHRcXHQgIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oPTM4PXZvaWRcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDozOTpkcmJkX3Bvc3RfZG9pdChjb25zdCBzdHJ1Y3QgZ2VubF9zcGxpdF9vcHMgKm9wcywgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaC00MC1cXHQgICAgICAgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaD00Mz1pbnQgZHJiZF9hZG1fZHVtcF9wZWVyX2RldmljZXNfZG9uZShzdHJ1Y3QgbmV0bGlua19jYWxsYmFjayAqY2IpO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oLTQ0LVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjQ1OmludCBkcmJkX25sX2dldF9zdGF0dXNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaC00Ni1pbnQgZHJiZF9ubF9nZXRfc3RhdHVzX2R1bXBpdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0bGlua19jYWxsYmFjayAqY2IpO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjQ3OmludCBkcmJkX25sX25ld19taW5vcl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjQ4OmludCBkcmJkX25sX2RlbF9taW5vcl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjQ5OmludCBkcmJkX25sX25ld19yZXNvdXJjZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjUwOmludCBkcmJkX25sX2RlbF9yZXNvdXJjZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjUxOmludCBkcmJkX25sX3Jlc291cmNlX29wdHNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo1MjppbnQgZHJiZF9ubF9jb25uZWN0X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NTM6aW50IGRyYmRfbmxfZGlzY29ubmVjdF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjU0OmludCBkcmJkX25sX2F0dGFjaF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjU1OmludCBkcmJkX25sX3Jlc2l6ZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjU2OmludCBkcmJkX25sX3ByaW1hcnlfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo1NzppbnQgZHJiZF9ubF9zZWNvbmRhcnlfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo1ODppbnQgZHJiZF9ubF9uZXdfY191dWlkX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NTk6aW50IGRyYmRfbmxfc3RhcnRfb3ZfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo2MDppbnQgZHJiZF9ubF9kZXRhY2hfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo2MTppbnQgZHJiZF9ubF9pbnZhbGlkYXRlX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NjI6aW50IGRyYmRfbmxfaW52YWxfcGVlcl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjYzOmludCBkcmJkX25sX3BhdXNlX3N5bmNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo2NDppbnQgZHJiZF9ubF9yZXN1bWVfc3luY19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjY1OmludCBkcmJkX25sX3N1c3BlbmRfaW9fZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo2NjppbnQgZHJiZF9ubF9yZXN1bWVfaW9fZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo2NzppbnQgZHJiZF9ubF9vdXRkYXRlX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6Njg6aW50IGRyYmRfbmxfZ2V0X3RpbWVvdXRfdHlwZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjY5OmludCBkcmJkX25sX2Rvd25fZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo3MDppbnQgZHJiZF9ubF9jaGdfZGlza19vcHRzX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NzE6aW50IGRyYmRfbmxfY2hnX25ldF9vcHRzX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmgtNzItaW50IGRyYmRfbmxfZ2V0X3Jlc291cmNlc19kdW1waXQoc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYz0xNzMxPXN0YXRpYyBzdHJ1Y3QgZHBsbF9waW4gKmRwbGxfcGluX2ZpbmRfZnJvbV9ubGF0dHIoc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0xNzg4LVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYzoxNzg5OmludCBkcGxsX25sX3Bpbl9pZF9nZXRfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0xNzkwLXtcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0xODIzLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYzoxODI0OmludCBkcGxsX25sX3Bpbl9nZXRfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0xODI1LXtcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYz0xODUyPWludCBkcGxsX25sX3Bpbl9nZXRfZHVtcGl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYilcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0xODg4LVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYzoxODg5OmludCBkcGxsX25sX3Bpbl9zZXRfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0xODkwLXtcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYz0xOTI3PWRwbGxfZGV2aWNlX2ZpbmRfZnJvbV9ubGF0dHIoc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0xOTY1LVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYzoxOTY2OmludCBkcGxsX25sX2RldmljZV9pZF9nZXRfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0xOTY3LXtcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0xOTk3LVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYzoxOTk4OmludCBkcGxsX25sX2RldmljZV9nZXRfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0xOTk5LXtcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYz0yMDI2PWRwbGxfc2V0X2Zyb21fbmxhdHRyKHN0cnVjdCBkcGxsX2RldmljZSAqZHBsbCwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0yMDYyLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYzoyMDYzOmludCBkcGxsX25sX2RldmljZV9zZXRfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0yMDY0LXtcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYz0yMDcwPWludCBkcGxsX25sX2RldmljZV9nZXRfZHVtcGl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYilcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0yMTAzLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYzoyMTA0OmludCBkcGxsX3ByZV9kb2l0KGNvbnN0IHN0cnVjdCBnZW5sX3NwbGl0X29wcyAqb3BzLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0yMTA1LVxcdFxcdCAgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0yMTI0LVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYzoyMTI1OnZvaWQgZHBsbF9wb3N0X2RvaXQoY29uc3Qgc3RydWN0IGdlbmxfc3BsaXRfb3BzICpvcHMsIHN0cnVjdCBza19idWZmICpza2IsXFxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jLTIxMjYtXFx0XFx0ICAgIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuLS1cXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmM9MjEzMT1pbnRcXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmM6MjEzMjpkcGxsX2xvY2tfZG9pdChjb25zdCBzdHJ1Y3QgZ2VubF9zcGxpdF9vcHMgKm9wcywgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmMtMjEzMy1cXHQgICAgICAgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYz0yMTQwPXZvaWRcXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmM6MjE0MTpkcGxsX3VubG9ja19kb2l0KGNvbnN0IHN0cnVjdCBnZW5sX3NwbGl0X29wcyAqb3BzLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0yMTQyLVxcdFxcdCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbi0tXFxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jLTIxNDYtXFxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jOjIxNDc6aW50IGRwbGxfcGluX3ByZV9kb2l0KGNvbnN0IHN0cnVjdCBnZW5sX3NwbGl0X29wcyAqb3BzLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0yMTQ4LVxcdFxcdCAgICAgIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuLS1cXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmMtMjE3Mi1cXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmM6MjE3Mzp2b2lkIGRwbGxfcGluX3Bvc3RfZG9pdChjb25zdCBzdHJ1Y3QgZ2VubF9zcGxpdF9vcHMgKm9wcywgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmMtMjE3NC1cXHRcXHRcXHRzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbi0tXFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYz05Mj1zdGF0aWMgY29uc3Qgc3RydWN0IGdlbmxfc3BsaXRfb3BzIGRwbGxfbmxfb3BzW10gPSB7XFxuLS1cXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jLTk0LVxcdFxcdC5jbWRcXHRcXHQ9IERQTExfQ01EX0RFVklDRV9JRF9HRVQsXFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYzo5NTpcXHRcXHQucHJlX2RvaXRcXHQ9IGRwbGxfbG9ja19kb2l0LFxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmM6OTY6XFx0XFx0LmRvaXRcXHRcXHQ9IGRwbGxfbmxfZGV2aWNlX2lkX2dldF9kb2l0LFxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmM6OTc6XFx0XFx0LnBvc3RfZG9pdFxcdD0gZHBsbF91bmxvY2tfZG9pdCxcXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jLTk4LVxcdFxcdC5wb2xpY3lcXHRcXHQ9IGRwbGxfZGV2aWNlX2lkX2dldF9ubF9wb2xpY3ksXFxuLS1cXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jLTEwMy1cXHRcXHQuY21kXFx0XFx0PSBEUExMX0NNRF9ERVZJQ0VfR0VULFxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmM6MTA0OlxcdFxcdC5wcmVfZG9pdFxcdD0gZHBsbF9wcmVfZG9pdCxcXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jOjEwNTpcXHRcXHQuZG9pdFxcdFxcdD0gZHBsbF9ubF9kZXZpY2VfZ2V0X2RvaXQsXFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYzoxMDY6XFx0XFx0LnBvc3RfZG9pdFxcdD0gZHBsbF9wb3N0X2RvaXQsXFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYy0xMDctXFx0XFx0LnBvbGljeVxcdFxcdD0gZHBsbF9kZXZpY2VfZ2V0X25sX3BvbGljeSxcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmMtMTE3LVxcdFxcdC5jbWRcXHRcXHQ9IERQTExfQ01EX0RFVklDRV9TRVQsXFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYzoxMTg6XFx0XFx0LnByZV9kb2l0XFx0PSBkcGxsX3ByZV9kb2l0LFxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmM6MTE5OlxcdFxcdC5kb2l0XFx0XFx0PSBkcGxsX25sX2RldmljZV9zZXRfZG9pdCxcXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jOjEyMDpcXHRcXHQucG9zdF9kb2l0XFx0PSBkcGxsX3Bvc3RfZG9pdCxcXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jLTEyMS1cXHRcXHQucG9saWN5XFx0XFx0PSBkcGxsX2RldmljZV9zZXRfbmxfcG9saWN5LFxcbi0tXFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYy0xMjYtXFx0XFx0LmNtZFxcdFxcdD0gRFBMTF9DTURfUElOX0lEX0dFVCxcXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jOjEyNzpcXHRcXHQucHJlX2RvaXRcXHQ9IGRwbGxfbG9ja19kb2l0LFxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmM6MTI4OlxcdFxcdC5kb2l0XFx0XFx0PSBkcGxsX25sX3Bpbl9pZF9nZXRfZG9pdCxcXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jOjEyOTpcXHRcXHQucG9zdF9kb2l0XFx0PSBkcGxsX3VubG9ja19kb2l0LFxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmMtMTMwLVxcdFxcdC5wb2xpY3lcXHRcXHQ9IGRwbGxfcGluX2lkX2dldF9ubF9wb2xpY3ksXFxuLS1cXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jLTEzNS1cXHRcXHQuY21kXFx0XFx0PSBEUExMX0NNRF9QSU5fR0VULFxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmM6MTM2OlxcdFxcdC5wcmVfZG9pdFxcdD0gZHBsbF9waW5fcHJlX2RvaXQsXFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYzoxMzc6XFx0XFx0LmRvaXRcXHRcXHQ9IGRwbGxfbmxfcGluX2dldF9kb2l0LFxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmM6MTM4OlxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRwbGxfcGluX3Bvc3RfZG9pdCxcXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jLTEzOS1cXHRcXHQucG9saWN5XFx0XFx0PSBkcGxsX3Bpbl9nZXRfZG9fbmxfcG9saWN5LFxcbi0tXFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYy0xNTEtXFx0XFx0LmNtZFxcdFxcdD0gRFBMTF9DTURfUElOX1NFVCxcXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jOjE1MjpcXHRcXHQucHJlX2RvaXRcXHQ9IGRwbGxfcGluX3ByZV9kb2l0LFxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmM6MTUzOlxcdFxcdC5kb2l0XFx0XFx0PSBkcGxsX25sX3Bpbl9zZXRfZG9pdCxcXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jOjE1NDpcXHRcXHQucG9zdF9kb2l0XFx0PSBkcGxsX3Bpbl9wb3N0X2RvaXQsXFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYy0xNTUtXFx0XFx0LnBvbGljeVxcdFxcdD0gZHBsbF9waW5fc2V0X25sX3BvbGljeSxcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmg9MTg9ZXh0ZXJuIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRwbGxfcmVmZXJlbmNlX3N5bmNfbmxfcG9saWN5W0RQTExfQV9QSU5fU1RBVEUgKyAxXTtcXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5oLTE5LVxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmg6MjA6aW50IGRwbGxfbG9ja19kb2l0KGNvbnN0IHN0cnVjdCBnZW5sX3NwbGl0X29wcyAqb3BzLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMjo0NjoyNS40MTE3MTY0N1oiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDg5NDExODY4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqU2VhcmNoaW5nIGZvciBgX2RvaXRgIGluIGBuZXQvcHNwL2AqKlxuXG5BbHJpZ2h0LCBsZXQncyBnZXQgZG93biB0byBpdC4gTXkgaW5pdGlhbCB0aG91Z2h0IHByb2Nlc3MgaXMgc3RyYWlnaHRmb3J3YXJkOiBJIG5lZWQgdG8gaW52ZXN0aWdhdGUgdGhlIGZ1bmN0aW9uYWxpdHkgb3IgaW1wbGVtZW50YXRpb24gb2Ygc29tZXRoaW5nIHJlbGF0ZWQgdG8gYF9kb2l0YCB3aXRoaW4gdGhlIGBuZXQvcHNwL2AgZGlyZWN0b3J5IHN0cnVjdHVyZS4gR2l2ZW4gbXkgZXhwZXJ0aXNlLCBJ4oCZbSBpbW1lZGlhdGVseSBmb3JtaW5nIGh5cG90aGVzZXMgYmFzZWQgb24gY29udGV4dC4gXCJOZXRcIiBzdHJvbmdseSBzdWdnZXN0cyBuZXR3b3JraW5nIGNvbXBvbmVudHMgb3IgbW9kdWxlcywgYW5kIFwicHNwXCIgY291bGQgaW5kaWNhdGUgcHJvdG9jb2xzLCBwb3RlbnRpYWxseSByZWZlcnJpbmcgdG8gUG9zdFNjcmlwdCwgcHJvdG9jb2wtc3BlY2lmaWMgcHJvY2Vzc2luZywgb3IgcGVyaGFwcyBzb21ldGhpbmcgZW50aXJlbHkgaW50ZXJuYWwgdG8gdGhlIHN5c3RlbSBJJ20gd29ya2luZyB3aXRoIChvciB0cm91Ymxlc2hvb3RpbmcpLlxuXG5NeSBpbW1lZGlhdGUgZ29hbCBpc24ndCBqdXN0IHRvICpmaW5kKiB0aGUgc3RyaW5nLCBidXQgdG8gdW5kZXJzdGFuZCBpdHMgdXNhZ2UuIEknbSBhbHJlYWR5IGFudGljaXBhdGluZyB0aGUgbmVlZCB0byBpbnRlcnByZXQgdGhlIHN1cnJvdW5kaW5nIGNvZGUsIGlkZW50aWZ5IGl0cyBwdXJwb3NlLCBhbmQgZGV0ZXJtaW5lIGFueSBkZXBlbmRlbmNpZXMgb3Igc2lkZSBlZmZlY3RzLiBJcyBgX2RvaXRgIGEgZnVuY3Rpb24sIGEgbWFjcm8sIGEgdmFyaWFibGUsIG9yIHNvbWV0aGluZyBlbHNlIGVudGlyZWx5PyBUaGUgdW5kZXJzY29yZSBwcmVmaXggdHlwaWNhbGx5IHN1Z2dlc3RzIGludGVybmFsIHVzYWdlIG9yIGEgY29udmVudGlvbi4gSeKAmW0gYWxzbyBjb25zaWRlcmluZyBob3cgdGhlIHNlYXJjaCBjb250ZXh0IGlzIGNvbmZpZ3VyZWQuIElzIHRoaXMgYSBjb2RlIHNlYXJjaCwgYSBkZWJ1Z2dpbmcgc2Vzc2lvbiwgb3IgYXJlIHdlIHdvcmtpbmcgaW4gYSBzcGVjaWZpYyBidWlsZCBjb250ZXh0PyBUaGUgc2VhcmNoIHBhcmFtZXRlcnMgd2lsbCBpbmZsdWVuY2UgaG93IEkgaW50ZXJwcmV0IHRoZSByZXN1bHRzLiBBcmUgd2UgdGFsa2luZyBhYm91dCBhIHNvdXJjZSBjb2RlIHNlYXJjaD8gVGhlbiwgdGhlIHNlYXJjaCBlbmdpbmUgSSB1c2UsIGxpa2UgZ3JlcCwgcmlwZ3JlcCwgb3IgVlMgQ29kZeKAmXMgc2VhcmNoIGZ1bmN0aW9uYWxpdHksIHdpbGwgYWZmZWN0IGhvdyBJIGFwcHJvYWNoIHRoaXMuIElzIHRoaXMgYSBydW50aW1lIGludmVzdGlnYXRpb24/IFRoZW4sIHRvb2xzIGxpa2UgZ2RiIG9yIGRlYnVnZ2VycyBtYXkgYmUgaW52b2x2ZWQuIFVsdGltYXRlbHksIHRoaXMgc2VhcmNoIGlzIHRoZSBmb3VuZGF0aW9uIGZvciBhIGRlZXBlciBkaXZlLiBUaGUgaW5mb3JtYXRpb24gZ2FpbmVkIHdpbGwgZGljdGF0ZSBteSBuZXh0IHN0ZXBzLCBhbmQgSSBhbSByZWFkeSB0byBhZGFwdCBhY2NvcmRpbmdseS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjM1MTYsIk91dHB1dFRva2VucyI6MjcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMjo0NjoyOS41MDExMzI3MzhaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0NjQyNDI5NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJfZG9pdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvcHNwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvcHNwL3BzcC1ubC1nZW4uYz03MT1zdGF0aWMgY29uc3Qgc3RydWN0IGdlbmxfc3BsaXRfb3BzIHBzcF9ubF9vcHNbXSA9IHtcXG4tLVxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jLTczLVxcdFxcdC5jbWRcXHRcXHQ9IFBTUF9DTURfREVWX0dFVCxcXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzo3NDpcXHRcXHQucHJlX2RvaXRcXHQ9IHBzcF9kZXZpY2VfZ2V0X2xvY2tlZCxcXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzo3NTpcXHRcXHQuZG9pdFxcdFxcdD0gcHNwX25sX2Rldl9nZXRfZG9pdCxcXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzo3NjpcXHRcXHQucG9zdF9kb2l0XFx0PSBwc3BfZGV2aWNlX3VubG9jayxcXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy03Ny1cXHRcXHQucG9saWN5XFx0XFx0PSBwc3BfZGV2X2dldF9ubF9wb2xpY3ksXFxuLS1cXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy04Ny1cXHRcXHQuY21kXFx0XFx0PSBQU1BfQ01EX0RFVl9TRVQsXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmM6ODg6XFx0XFx0LnByZV9kb2l0XFx0PSBwc3BfZGV2aWNlX2dldF9sb2NrZWRfYWRtaW4sXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmM6ODk6XFx0XFx0LmRvaXRcXHRcXHQ9IHBzcF9ubF9kZXZfc2V0X2RvaXQsXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmM6OTA6XFx0XFx0LnBvc3RfZG9pdFxcdD0gcHNwX2RldmljZV91bmxvY2ssXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmMtOTEtXFx0XFx0LnBvbGljeVxcdFxcdD0gcHNwX2Rldl9zZXRfbmxfcG9saWN5LFxcbi0tXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmMtOTYtXFx0XFx0LmNtZFxcdFxcdD0gUFNQX0NNRF9LRVlfUk9UQVRFLFxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjk3OlxcdFxcdC5wcmVfZG9pdFxcdD0gcHNwX2RldmljZV9nZXRfbG9ja2VkX2FkbWluLFxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjk4OlxcdFxcdC5kb2l0XFx0XFx0PSBwc3Bfbmxfa2V5X3JvdGF0ZV9kb2l0LFxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjk5OlxcdFxcdC5wb3N0X2RvaXRcXHQ9IHBzcF9kZXZpY2VfdW5sb2NrLFxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jLTEwMC1cXHRcXHQucG9saWN5XFx0XFx0PSBwc3Bfa2V5X3JvdGF0ZV9ubF9wb2xpY3ksXFxuLS1cXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy0xMDUtXFx0XFx0LmNtZFxcdFxcdD0gUFNQX0NNRF9SWF9BU1NPQyxcXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxMDY6XFx0XFx0LnByZV9kb2l0XFx0PSBwc3BfYXNzb2NfZGV2aWNlX2dldF9sb2NrZWQsXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmM6MTA3OlxcdFxcdC5kb2l0XFx0XFx0PSBwc3BfbmxfcnhfYXNzb2NfZG9pdCxcXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxMDg6XFx0XFx0LnBvc3RfZG9pdFxcdD0gcHNwX2RldmljZV91bmxvY2ssXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmMtMTA5LVxcdFxcdC5wb2xpY3lcXHRcXHQ9IHBzcF9yeF9hc3NvY19ubF9wb2xpY3ksXFxuLS1cXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy0xMTQtXFx0XFx0LmNtZFxcdFxcdD0gUFNQX0NNRF9UWF9BU1NPQyxcXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxMTU6XFx0XFx0LnByZV9kb2l0XFx0PSBwc3BfYXNzb2NfZGV2aWNlX2dldF9sb2NrZWQsXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmM6MTE2OlxcdFxcdC5kb2l0XFx0XFx0PSBwc3BfbmxfdHhfYXNzb2NfZG9pdCxcXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxMTc6XFx0XFx0LnBvc3RfZG9pdFxcdD0gcHNwX2RldmljZV91bmxvY2ssXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmMtMTE4LVxcdFxcdC5wb2xpY3lcXHRcXHQ9IHBzcF90eF9hc3NvY19ubF9wb2xpY3ksXFxuLS1cXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy0xMjMtXFx0XFx0LmNtZFxcdFxcdD0gUFNQX0NNRF9HRVRfU1RBVFMsXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmM6MTI0OlxcdFxcdC5wcmVfZG9pdFxcdD0gcHNwX2RldmljZV9nZXRfbG9ja2VkLFxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjEyNTpcXHRcXHQuZG9pdFxcdFxcdD0gcHNwX25sX2dldF9zdGF0c19kb2l0LFxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjEyNjpcXHRcXHQucG9zdF9kb2l0XFx0PSBwc3BfZGV2aWNlX3VubG9jayxcXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy0xMjctXFx0XFx0LnBvbGljeVxcdFxcdD0gcHNwX2dldF9zdGF0c19ubF9wb2xpY3ksXFxuLS1cXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy0xMzctXFx0XFx0LmNtZFxcdFxcdD0gUFNQX0NNRF9ERVZfQVNTT0MsXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmM6MTM4OlxcdFxcdC5wcmVfZG9pdFxcdD0gcHNwX2RldmljZV9nZXRfbG9ja2VkX2Rldl9hc3NvYyxcXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxMzk6XFx0XFx0LmRvaXRcXHRcXHQ9IHBzcF9ubF9kZXZfYXNzb2NfZG9pdCxcXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxNDA6XFx0XFx0LnBvc3RfZG9pdFxcdD0gcHNwX2RldmljZV91bmxvY2ssXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmMtMTQxLVxcdFxcdC5wb2xpY3lcXHRcXHQ9IHBzcF9kZXZfYXNzb2NfbmxfcG9saWN5LFxcbi0tXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmMtMTQ2LVxcdFxcdC5jbWRcXHRcXHQ9IFBTUF9DTURfREVWX0RJU0FTU09DLFxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjE0NzpcXHRcXHQucHJlX2RvaXRcXHQ9IHBzcF9kZXZpY2VfZ2V0X2xvY2tlZCxcXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxNDg6XFx0XFx0LmRvaXRcXHRcXHQ9IHBzcF9ubF9kZXZfZGlzYXNzb2NfZG9pdCxcXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxNDk6XFx0XFx0LnBvc3RfZG9pdFxcdD0gcHNwX2RldmljZV91bmxvY2ssXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmMtMTUwLVxcdFxcdC5wb2xpY3lcXHRcXHQ9IHBzcF9kZXZfZGlzYXNzb2NfbmxfcG9saWN5LFxcbi0tXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmg9Mjg9cHNwX2RldmljZV91bmxvY2soY29uc3Qgc3RydWN0IGdlbmxfc3BsaXRfb3BzICpvcHMsIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5uZXQvcHNwL3BzcC1ubC1nZW4uaC0zMC1cXG5uZXQvcHNwL3BzcC1ubC1nZW4uaDozMTppbnQgcHNwX25sX2Rldl9nZXRfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5uZXQvcHNwL3BzcC1ubC1nZW4uaC0zMi1pbnQgcHNwX25sX2Rldl9nZXRfZHVtcGl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYik7XFxubmV0L3BzcC9wc3AtbmwtZ2VuLmg6MzM6aW50IHBzcF9ubF9kZXZfc2V0X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxubmV0L3BzcC9wc3AtbmwtZ2VuLmg6MzQ6aW50IHBzcF9ubF9rZXlfcm90YXRlX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxubmV0L3BzcC9wc3AtbmwtZ2VuLmg6MzU6aW50IHBzcF9ubF9yeF9hc3NvY19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbm5ldC9wc3AvcHNwLW5sLWdlbi5oOjM2OmludCBwc3BfbmxfdHhfYXNzb2NfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5uZXQvcHNwL3BzcC1ubC1nZW4uaDozNzppbnQgcHNwX25sX2dldF9zdGF0c19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbm5ldC9wc3AvcHNwLW5sLWdlbi5oLTM4LWludCBwc3BfbmxfZ2V0X3N0YXRzX2R1bXBpdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0bGlua19jYWxsYmFjayAqY2IpO1xcbm5ldC9wc3AvcHNwLW5sLWdlbi5oOjM5OmludCBwc3BfbmxfZGV2X2Fzc29jX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxubmV0L3BzcC9wc3AtbmwtZ2VuLmg6NDA6aW50IHBzcF9ubF9kZXZfZGlzYXNzb2NfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5uZXQvcHNwL3BzcC1ubC1nZW4uaC00MS1cXG4tLVxcbm5ldC9wc3AvcHNwX25sLmM9MzUwPXZvaWQgcHNwX25sX25vdGlmeV9kZXYoc3RydWN0IHBzcF9kZXYgKnBzZCwgdTMyIGNtZClcXG4tLVxcbm5ldC9wc3AvcHNwX25sLmMtMzU1LVxcbm5ldC9wc3AvcHNwX25sLmM6MzU2OmludCBwc3BfbmxfZGV2X2dldF9kb2l0KHN0cnVjdCBza19idWZmICpyZXEsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxubmV0L3BzcC9wc3BfbmwuYy0zNTcte1xcbi0tXFxubmV0L3BzcC9wc3BfbmwuYz0zODc9aW50IHBzcF9ubF9kZXZfZ2V0X2R1bXBpdChzdHJ1Y3Qgc2tfYnVmZiAqcnNwLCBzdHJ1Y3QgbmV0bGlua19jYWxsYmFjayAqY2IpXFxuLS1cXG5uZXQvcHNwL3BzcF9ubC5jLTQwNC1cXG5uZXQvcHNwL3BzcF9ubC5jOjQwNTppbnQgcHNwX25sX2Rldl9zZXRfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbm5ldC9wc3AvcHNwX25sLmMtNDA2LXtcXG4tLVxcbm5ldC9wc3AvcHNwX25sLmMtNDQ2LVxcbm5ldC9wc3AvcHNwX25sLmM6NDQ3OmludCBwc3Bfbmxfa2V5X3JvdGF0ZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxubmV0L3BzcC9wc3BfbmwuYy00NDgte1xcbi0tXFxubmV0L3BzcC9wc3BfbmwuYy00OTgtXFxubmV0L3BzcC9wc3BfbmwuYzo0OTk6aW50IHBzcF9ubF9kZXZfYXNzb2NfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbm5ldC9wc3AvcHNwX25sLmMtNTAwLXtcXG4tLVxcbm5ldC9wc3AvcHNwX25sLmMtNTgzLVxcbm5ldC9wc3AvcHNwX25sLmM6NTg0OmludCBwc3BfbmxfZGV2X2Rpc2Fzc29jX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5uZXQvcHNwL3BzcF9ubC5jLTU4NS17XFxuLS1cXG5uZXQvcHNwL3BzcF9ubC5jPTc1MD1wc3BfbmxfcHV0X2tleShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgYXR0ciwgdTMyIHZlcnNpb24sXFxuLS1cXG5uZXQvcHNwL3BzcF9ubC5jLTc2OC1cXG5uZXQvcHNwL3BzcF9ubC5jOjc2OTppbnQgcHNwX25sX3J4X2Fzc29jX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5uZXQvcHNwL3BzcF9ubC5jLTc3MC17XFxuLS1cXG5uZXQvcHNwL3BzcF9ubC5jLTgyNC1cXG5uZXQvcHNwL3BzcF9ubC5jOjgyNTppbnQgcHNwX25sX3R4X2Fzc29jX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5uZXQvcHNwL3BzcF9ubC5jLTgyNi17XFxuLS1cXG5uZXQvcHNwL3BzcF9ubC5jPTg3MD1wc3Bfbmxfc3RhdHNfZmlsbChzdHJ1Y3QgcHNwX2RldiAqcHNkLCBzdHJ1Y3Qgc2tfYnVmZiAqcnNwLFxcbi0tXFxubmV0L3BzcC9wc3BfbmwuYy05MTAtXFxubmV0L3BzcC9wc3BfbmwuYzo5MTE6aW50IHBzcF9ubF9nZXRfc3RhdHNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbm5ldC9wc3AvcHNwX25sLmMtOTEyLXtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjI6NDY6MjkuNjQ3NTYyNjc0WiIsIlNlcSI6MjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU1ODUyNTMzNzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHN5bWJvbHMgYW5kIHRoZSBpbnRlbmRlZCBhcHByb2FjaDpcblxuKipBbmFseXNpcyBvZiBGb2N1cyBTeW1ib2xzIGFuZCBUb29sIFNlbGVjdGlvbioqXG5cblJpZ2h0LCBJJ3ZlIGdvdCBhIHNvbGlkIGNvbGxlY3Rpb24gb2YgZm9jdXMgc3ltYm9scyBoZXJlLiBMZXQncyBzZWUsIHdlIGhhdmUgYSBzZXQgb2YgYHBzcF9ubF8qX2RvaXRgIGZ1bmN0aW9ucy4gVGhlc2UgbGlrZWx5IHJlcHJlc2VudCBOZXRsaW5rIG9wZXJhdGlvbnMgZm9yIGEgcGFydGljdWxhciBQU1AgKGxpa2VseSBhIFwiUHJvdGVjdGVkIFNlcnZpY2UgUGxhdGZvcm1cIiBvciBzb21ldGhpbmcgc2ltaWxhciwganVkZ2luZyBieSB0aGUgcHJlZml4KSwgY292ZXJpbmcgZ2V0dGluZywgc2V0dGluZywgcm90YXRpbmcga2V5cywgYW5kIGhhbmRsaW5nIGFzc29jaWF0aW9uL2Rpc2Fzc29jaWF0aW9uLCBib3RoIGZvciByZWNlaXZlIGFuZCB0cmFuc21pdCBzaWRlcywgYWxvbmcgd2l0aCBzdGF0aXN0aWNhbCBkYXRhIGFuZCBjcmVhdGlvbi9kZWxldGlvbi5cblxuU3BlY2lmaWNhbGx5LCBJIHNlZSBhIGNsZWFyIGdyb3VwIHRoYXQncyBhc3NvY2lhdGVkIHdpdGggZGV2aWNlIG1hbmFnZW1lbnQgYW5kIGFzc29jaWF0aW9uL2Rpc2Fzc29jaWF0aW9uLiBUaGUgdXNlIG9mIFwiZG9pdFwiIHN1Z2dlc3RzIHRoZXNlIGFyZSB0aGUgY29yZSBmdW5jdGlvbnMgdGhhdCBoYW5kbGUgc3BlY2lmaWMgYWN0aW9ucyBvciByZXF1ZXN0cy4gVGhlbiB0aGVyZSdzIGBwc3BfZGV2X2NyZWF0ZWAsIHdoaWNoIGxvZ2ljYWxseSBmaXRzIGludG8gZGV2aWNlIGxpZmVjeWNsZSBvcGVyYXRpb25zLiBJdCdzIGEgY29tcHJlaGVuc2l2ZSBzZXQsIGNvdmVyaW5nIGFsbCB0aGUgYmFzZXMgSSdkIGV4cGVjdCBmb3IgaW50ZXJhY3Rpb24gd2l0aCBhIG5ldHdvcmsgZGV2aWNlIHRocm91Z2ggTmV0bGluay5cblxuR2l2ZW4gdGhpcyBsaXN0LCBhbmQgdGhlIG5hdHVyZSBvZiB0aGVzZSBzeW1ib2xzLCB0aGUgXCJzZXQtcmVzdWx0c1wiIHRvb2wgaXMgZGVmaW5pdGVseSB0aGUgcmlnaHQgY2hvaWNlLiBJdCdzIGRlc2lnbmVkIGZvciBhbmFseXppbmcgZnVuY3Rpb24gY2FsbCBzZXF1ZW5jZXMuIEknbSBnb2luZyB0byBzdGFydCBieSBydW5uaW5nIHRob3NlIHN5bWJvbHMgdGhyb3VnaCB0aGUgXCJzZXQtcmVzdWx0c1wiIHRvb2wgYW5kIGV4YW1pbmUgdGhlIHJlc3VsdHMgaW4gZGV0YWlsLiBUaGlzIHdpbGwgYWxsb3cgbWUgdG8gdHJhY2sgdGhlIGV4ZWN1dGlvbiBmbG93LCBpZGVudGlmeSB3aGljaCBmdW5jdGlvbnMgY2FsbCBlYWNoIG90aGVyLCBhbmQgc2VlIGhvdyB0aGUgdmFyaW91cyBOZXRsaW5rIG9wZXJhdGlvbnMgaW50ZXJyZWxhdGUgd2l0aGluIHRoZSBzeXN0ZW0uIEl0IHNob3VsZCByZXZlYWwgdGhlIGNyaXRpY2FsIHBhdGhzIGFuZCBkZXBlbmRlbmNpZXMgZm9yIGRldmljZSBtYW5hZ2VtZW50LiBJIHNob3VsZCBiZSBhYmxlIHRvIGdldCBhIG11Y2ggY2xlYXJlciBwaWN0dXJlIG9mIHRoZSBvdmVyYWxsIGFyY2hpdGVjdHVyZSB3aXRoIHRoYXQgYXBwcm9hY2guXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2NTk2LCJPdXRwdXRUb2tlbnMiOjIyNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMjo0NjozNS4yMzI4MTg1MTRaIiwiU2VxIjoyNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDM4NDk4MDYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIklORVRfUFNQXCIsXG4gICAgXCJORVRERVZTSU1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJwc3BfbmxfZGV2X2dldF9kb2l0XCIsXG4gICAgXCJwc3BfbmxfZGV2X3NldF9kb2l0XCIsXG4gICAgXCJwc3Bfbmxfa2V5X3JvdGF0ZV9kb2l0XCIsXG4gICAgXCJwc3BfbmxfcnhfYXNzb2NfZG9pdFwiLFxuICAgIFwicHNwX25sX3R4X2Fzc29jX2RvaXRcIixcbiAgICBcInBzcF9ubF9nZXRfc3RhdHNfZG9pdFwiLFxuICAgIFwicHNwX25sX2Rldl9hc3NvY19kb2l0XCIsXG4gICAgXCJwc3BfbmxfZGV2X2Rpc2Fzc29jX2RvaXRcIixcbiAgICBcInBzcF9kZXZfY3JlYXRlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSByYWNlIGNvbmRpdGlvbiBpbiBgcHNwX25sX211bHRpY2FzdF9wZXJfbnNgIHdoZW4gYSBkZXZpY2UgY2hhbmdlcyBuZXRucyBpbiBwYXJhbGxlbC4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvcmUgbG9naWMgZm9yIHRoZSBQU1AgKFBTUCBTZWN1cml0eSBQcm90b2NvbCkgbmV0bGluayBpbnRlcmZhY2UuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSB2aWEgbmV0bGluayBjb21tYW5kcyBhbmQgY2FuIGJlIHRlc3RlZCB1c2luZyB0aGUgYG5ldGRldnNpbWAgZHJpdmVyIHdoaWNoIHN1cHBvcnRzIFBTUC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJTkVUX1BTUFwiLFxuICAgIFwiTkVUREVWU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicHNwX25sX2Rldl9nZXRfZG9pdFwiLFxuICAgIFwicHNwX25sX2Rldl9zZXRfZG9pdFwiLFxuICAgIFwicHNwX25sX2tleV9yb3RhdGVfZG9pdFwiLFxuICAgIFwicHNwX25sX3J4X2Fzc29jX2RvaXRcIixcbiAgICBcInBzcF9ubF90eF9hc3NvY19kb2l0XCIsXG4gICAgXCJwc3BfbmxfZ2V0X3N0YXRzX2RvaXRcIixcbiAgICBcInBzcF9ubF9kZXZfYXNzb2NfZG9pdFwiLFxuICAgIFwicHNwX25sX2Rldl9kaXNhc3NvY19kb2l0XCIsXG4gICAgXCJwc3BfZGV2X2NyZWF0ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gaW4gYHBzcF9ubF9tdWx0aWNhc3RfcGVyX25zYCB3aGVuIGEgZGV2aWNlIGNoYW5nZXMgbmV0bnMgaW4gcGFyYWxsZWwuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIGxvZ2ljIGZvciB0aGUgUFNQIChQU1AgU2VjdXJpdHkgUHJvdG9jb2wpIG5ldGxpbmsgaW50ZXJmYWNlLiBUaGUgY29kZSBpcyByZWFjaGFibGUgdmlhIG5ldGxpbmsgY29tbWFuZHMgYW5kIGNhbiBiZSB0ZXN0ZWQgdXNpbmcgdGhlIGBuZXRkZXZzaW1gIGRyaXZlciB3aGljaCBzdXBwb3J0cyBQU1AuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflow5sx97[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-27 22:28:37 +0000 UTC FinishedAt: 2026-07-27 22:46:37 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "53658c6f3682967a5e76ed4bc7462c4bdcddaec3", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "INET_PSP", "NETDEVSIM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "53658c6f3682967a5e76ed4bc7462c4bdcddaec3", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "INET_PSP", "NETDEVSIM" ], "series_id": "87e206be-fa1b-4284-a32d-fa954c044556" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "psp_nl_dev_get_doit", "psp_nl_dev_set_doit", "psp_nl_key_rotate_doit", "psp_nl_rx_assoc_doit", "psp_nl_tx_assoc_doit", "psp_nl_get_stats_doit", "psp_nl_dev_assoc_doit", "psp_nl_dev_disassoc_doit", "psp_dev_create" ], "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+CgkJCTx0ZD4yMDI2LzA3LzI3IDIyOjQ1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lORVRfUFNQJiMzNDssCiAgICAmIzM0O05FVERFVlNJTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3BzcF9ubF9kZXZfZ2V0X2RvaXQmIzM0OywKICAgICYjMzQ7cHNwX25sX2Rldl9zZXRfZG9pdCYjMzQ7LAogICAgJiMzNDtwc3Bfbmxfa2V5X3JvdGF0ZV9kb2l0JiMzNDssCiAgICAmIzM0O3BzcF9ubF9yeF9hc3NvY19kb2l0JiMzNDssCiAgICAmIzM0O3BzcF9ubF90eF9hc3NvY19kb2l0JiMzNDssCiAgICAmIzM0O3BzcF9ubF9nZXRfc3RhdHNfZG9pdCYjMzQ7LAogICAgJiMzNDtwc3BfbmxfZGV2X2Fzc29jX2RvaXQmIzM0OywKICAgICYjMzQ7cHNwX25sX2Rldl9kaXNhc3NvY19kb2l0JiMzNDssCiAgICAmIzM0O3BzcF9kZXZfY3JlYXRlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gaW4gYHBzcF9ubF9tdWx0aWNhc3RfcGVyX25zYCB3aGVuIGEgZGV2aWNlIGNoYW5nZXMgbmV0bnMgaW4gcGFyYWxsZWwuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIGxvZ2ljIGZvciB0aGUgUFNQIChQU1AgU2VjdXJpdHkgUHJvdG9jb2wpIG5ldGxpbmsgaW50ZXJmYWNlLiBUaGUgY29kZSBpcyByZWFjaGFibGUgdmlhIG5ldGxpbmsgY29tbWFuZHMgYW5kIGNhbiBiZSB0ZXN0ZWQgdXNpbmcgdGhlIGBuZXRkZXZzaW1gIGRyaXZlciB3aGljaCBzdXBwb3J0cyBQU1AuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMjI6NDU8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA5ZWJmMjgyMTcyM2U3MDEyNTA1MmRmMjVmYWM5NGEzNzQzYTQ4MzM4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgMjcgMjI6NDU6MjMgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L3BzcC9wc3BfbmwuYyBiL25ldC9wc3AvcHNwX25sLmNcbmluZGV4IDk2MTBkOGM0NTZmZjU1Li40M2IwNjYzNTNjNjViMiAxMDA2NDRcbi0tLSBhL25ldC9wc3AvcHNwX25sLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9wc3AvcHNwX25sLmNcbkBAIC02Miw3ICYjNDM7NjIsMTQgQEAgcHNwX25sX211bHRpY2FzdF9wZXJfbnMoc3RydWN0IHBzcF9kZXYgKnBzZCwgdW5zaWduZWQgaW50IGdyb3VwLFxuIFx0c3RydWN0IG5ldCAqbWFpbl9uZXQ7XG4gXHRzdHJ1Y3Qgc2tfYnVmZiAqbnRmO1xuIFxuLVx0bWFpbl9uZXQgPSBkZXZfbmV0KHBzZC1cdTAwM2VtYWluX25ldGRldik7XG4mIzQzO1x0LyogZGV2aWNlIG1heSBiZSBjaGFuZ2luZyBuZXRucyBpbiBwYXJhbGxlbCAqL1xuJiM0MztcdHJjdV9yZWFkX2xvY2soKTtcbiYjNDM7XHRtYWluX25ldCA9IG1heWJlX2dldF9uZXQoZGV2X25ldF9yY3UocHNkLVx1MDAzZW1haW5fbmV0ZGV2KSk7XG4mIzQzO1x0cmN1X3JlYWRfdW5sb2NrKCk7XG4mIzQzO1xuJiM0MztcdGlmICghbWFpbl9uZXQpXG4mIzQzO1x0XHRyZXR1cm47XG4mIzQzO1xuIFx0eGFfaW5pdChcdTAwMjZzZW50X25ldHMpO1xuIFxuIFx0bGlzdF9mb3JfZWFjaF9lbnRyeShlbnRyeSwgXHUwMDI2cHNkLVx1MDAzZWFzc29jX2Rldl9saXN0LCBkZXZfbGlzdCkge1xuQEAgLTg4LDEwICYjNDM7OTUsMTAgQEAgcHNwX25sX211bHRpY2FzdF9wZXJfbnMoc3RydWN0IHBzcF9kZXYgKnBzZCwgdW5zaWduZWQgaW50IGdyb3VwLFxuIFxuIFx0LyogU2VuZCB0byBtYWluIGRldmljZSBuZXRucyAqL1xuIFx0bnRmID0gYnVpbGRfbnRmKHBzZCwgbWFpbl9uZXQsIGN0eCk7XG4tXHRpZiAoIW50Zilcbi1cdFx0cmV0dXJuO1xuLVx0Z2VubG1zZ19tdWx0aWNhc3RfbmV0bnMoXHUwMDI2cHNwX25sX2ZhbWlseSwgbWFpbl9uZXQsIG50ZiwgMCwgZ3JvdXAsXG4tXHRcdFx0XHRHRlBfS0VSTkVMKTtcbiYjNDM7XHRpZiAobnRmKVxuJiM0MztcdFx0Z2VubG1zZ19tdWx0aWNhc3RfbmV0bnMoXHUwMDI2cHNwX25sX2ZhbWlseSwgbWFpbl9uZXQsIG50ZiwgMCwgZ3JvdXAsXG4mIzQzO1x0XHRcdFx0XHRHRlBfS0VSTkVMKTtcbiYjNDM7XHRwdXRfbmV0KG1haW5fbmV0KTtcbiB9XG4gXG4gc3RhdGljIHN0cnVjdCBza19idWZmICpwc3BfbmxfY2xvbmVfbnRmKHN0cnVjdCBwc3BfZGV2ICpwc2QsIHN0cnVjdCBuZXQgKm5ldCxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMjo0NTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7SU5FVF9QU1AmIzM0OywKICAgICYjMzQ7TkVUREVWU0lNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cHNwX25sX2Rldl9nZXRfZG9pdCYjMzQ7LAogICAgJiMzNDtwc3BfbmxfZGV2X3NldF9kb2l0JiMzNDssCiAgICAmIzM0O3BzcF9ubF9rZXlfcm90YXRlX2RvaXQmIzM0OywKICAgICYjMzQ7cHNwX25sX3J4X2Fzc29jX2RvaXQmIzM0OywKICAgICYjMzQ7cHNwX25sX3R4X2Fzc29jX2RvaXQmIzM0OywKICAgICYjMzQ7cHNwX25sX2dldF9zdGF0c19kb2l0JiMzNDssCiAgICAmIzM0O3BzcF9ubF9kZXZfYXNzb2NfZG9pdCYjMzQ7LAogICAgJiMzNDtwc3BfbmxfZGV2X2Rpc2Fzc29jX2RvaXQmIzM0OywKICAgICYjMzQ7cHNwX2Rldl9jcmVhdGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSByYWNlIGNvbmRpdGlvbiBpbiBgcHNwX25sX211bHRpY2FzdF9wZXJfbnNgIHdoZW4gYSBkZXZpY2UgY2hhbmdlcyBuZXRucyBpbiBwYXJhbGxlbC4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvcmUgbG9naWMgZm9yIHRoZSBQU1AgKFBTUCBTZWN1cml0eSBQcm90b2NvbCkgbmV0bGluayBpbnRlcmZhY2UuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSB2aWEgbmV0bGluayBjb21tYW5kcyBhbmQgY2FuIGJlIHRlc3RlZCB1c2luZyB0aGUgYG5ldGRldnNpbWAgZHJpdmVyIHdoaWNoIHN1cHBvcnRzIFBTUC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDllYmYyODIxNzIzZTcwMTI1MDUyZGYyNWZhYzk0YTM3NDNhNDgzMzgKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEp1bCAyNyAyMjo0NToyMyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9wc3AvcHNwX25sLmMgYi9uZXQvcHNwL3BzcF9ubC5jCmluZGV4IDk2MTBkOGM0NTZmZjU1Li40M2IwNjYzNTNjNjViMiAxMDA2NDQKLS0tIGEvbmV0L3BzcC9wc3BfbmwuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvcHNwL3BzcF9ubC5jCkBAIC02Miw3ICYjNDM7NjIsMTQgQEAgcHNwX25sX211bHRpY2FzdF9wZXJfbnMoc3RydWN0IHBzcF9kZXYgKnBzZCwgdW5zaWduZWQgaW50IGdyb3VwLAogCXN0cnVjdCBuZXQgKm1haW5fbmV0OwogCXN0cnVjdCBza19idWZmICpudGY7CiAKLQltYWluX25ldCA9IGRldl9uZXQocHNkLSZndDttYWluX25ldGRldik7CiYjNDM7CS8qIGRldmljZSBtYXkgYmUgY2hhbmdpbmcgbmV0bnMgaW4gcGFyYWxsZWwgKi8KJiM0MzsJcmN1X3JlYWRfbG9jaygpOwomIzQzOwltYWluX25ldCA9IG1heWJlX2dldF9uZXQoZGV2X25ldF9yY3UocHNkLSZndDttYWluX25ldGRldikpOwomIzQzOwlyY3VfcmVhZF91bmxvY2soKTsKJiM0MzsKJiM0MzsJaWYgKCFtYWluX25ldCkKJiM0MzsJCXJldHVybjsKJiM0MzsKIAl4YV9pbml0KCZhbXA7c2VudF9uZXRzKTsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkoZW50cnksICZhbXA7cHNkLSZndDthc3NvY19kZXZfbGlzdCwgZGV2X2xpc3QpIHsKQEAgLTg4LDEwICYjNDM7OTUsMTAgQEAgcHNwX25sX211bHRpY2FzdF9wZXJfbnMoc3RydWN0IHBzcF9kZXYgKnBzZCwgdW5zaWduZWQgaW50IGdyb3VwLAogCiAJLyogU2VuZCB0byBtYWluIGRldmljZSBuZXRucyAqLwogCW50ZiA9IGJ1aWxkX250Zihwc2QsIG1haW5fbmV0LCBjdHgpOwotCWlmICghbnRmKQotCQlyZXR1cm47Ci0JZ2VubG1zZ19tdWx0aWNhc3RfbmV0bnMoJmFtcDtwc3BfbmxfZmFtaWx5LCBtYWluX25ldCwgbnRmLCAwLCBncm91cCwKLQkJCQlHRlBfS0VSTkVMKTsKJiM0MzsJaWYgKG50ZikKJiM0MzsJCWdlbmxtc2dfbXVsdGljYXN0X25ldG5zKCZhbXA7cHNwX25sX2ZhbWlseSwgbWFpbl9uZXQsIG50ZiwgMCwgZ3JvdXAsCiYjNDM7CQkJCQlHRlBfS0VSTkVMKTsKJiM0MzsJcHV0X25ldChtYWluX25ldCk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqcHNwX25sX2Nsb25lX250ZihzdHJ1Y3QgcHNwX2RldiAqcHNkLCBzdHJ1Y3QgbmV0ICpuZXQsCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIyOjQ1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzNDYKCQkJCQkJCW91dHB1dDogMjQKCQkJCQkJCXRob3VnaHRzOiAzNTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgTmV0bGluayBQYXRjaCBmb3IgUFNQKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBhIHBhdGNoIGluIGBuZXQvcHNwL3BzcF9ubC5jYC4gSXQgc2VlbXMgbGlrZSBpdCYjMzk7cyB0b3VjaGluZyBgcHNwX25sX211bHRpY2FzdF9wZXJfbnNgLCB3aGljaCBpcyBpbnRlcmVzdGluZy4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBhcHBlYXJzIHRvIGJlIGhvdyBgbWFpbl9uZXRgIGlzIGhhbmRsZWQuIFByZXZpb3VzbHksIGl0IHdhcyBhIHN0cmFpZ2h0Zm9yd2FyZCBgZGV2X25ldChwc2QtJmd0O21haW5fbmV0ZGV2KWAsIGJ1dCBub3cgdGhleSYjMzk7cmUgdXNpbmcgYHJjdV9yZWFkX2xvY2soKWAgYW5kIGBtYXliZV9nZXRfbmV0KClgIGluIGEgY3JpdGljYWwgc2VjdGlvbiwgYW5kIHRoZW4gYHB1dF9uZXQobWFpbl9uZXQpYCBhdCB0aGUgZW5kLiBUaGF0IHNjcmVhbXMgcmFjZSBjb25kaXRpb24gZml4IOKAkyBzcGVjaWZpY2FsbHksIGEgZGV2aWNlIGNoYW5naW5nIG5ldHdvcmsgbmFtZXNwYWNlcyBpbiBwYXJhbGxlbC4gSXQgbWFrZXMgdG90YWwgc2Vuc2U7IHRoaXMgaW50cm9kdWNlcyBhIHBvdGVudGlhbCBpc3N1ZSBpZiB0aGUgbmV0bnMgY2hhbmdlcyBiZXR3ZWVuIHRoZSBkZXZpY2UgbG9va3VwIGFuZCB0aGUgYWN0dWFsIG5ldGxpbmsgbXVsdGljYXN0LiBUaGUgUkNVIHByb3RlY3Rpb24gZW5zdXJlcyB0aGF0IHRoZSBuZXR3b3JrIG5hbWVzcGFjZSBkb2VzbiYjMzk7dCBkaXNhcHBlYXIgYmVmb3JlIHdlIGF0dGVtcHQgdGhlIG9wZXJhdGlvbiwgYW5kIGBtYXliZV9nZXRfbmV0YCBhbmQgYHB1dF9uZXRgIG1hbmFnZW1lbnQgYWRkcyBwcm9wZXIgcmVmZXJlbmNlIGNvdW50aW5nIHRvIG1hbmFnZSB0aGUgbGlmZWN5Y2xlIG9mIHRoZSBuZXR3b3JrIG5hbWVzcGFjZSBvYmplY3QuIFRoZSBhZGRlZCBgaWZgIHN0YXRlbWVudCB0byBjaGVjayBmb3IgYSB2YWxpZCBgbnRmYCBiZWZvcmUgbXVsdGljYXN0IGlzIGp1c3QgZ29vZCBkZWZlbnNpdmUgY29kaW5nLgoKTm93LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGBwc3BgIGlzIGFsbCBhYm91dC4gVGhpcyBjb250ZXh0IGlzIGVzc2VudGlhbC4gSSYjMzk7bGwgbmVlZCB0byBsb29rIHVwIGBwc3BfbmxfbXVsdGljYXN0X3Blcl9uc2AgYW5kIGRlbHZlIGludG8gYHBzcF9ubC5jYCB0byBzZWUgaG93IGl0IGZpdHMgaW50byB0aGUgYnJvYWRlciBwaWN0dXJlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHRoaXMgUFNQIG1vZHVsZSBkb2VzIGFuZCB3aGF0IGNvbmZpZ3VyYXRpb24gaXQgcmVxdWlyZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMjI6NDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cHNwX25sX211bHRpY2FzdF9wZXJfbnMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3BzcC9wc3BfbmwuYz0zND1zdGF0aWMgaW50IHBzcF9ubF9yZXBseV9zZW5kKHN0cnVjdCBza19idWZmICpyc3AsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG4tLVxubmV0L3BzcC9wc3BfbmwuYy00Mi0vKipcbm5ldC9wc3AvcHNwX25sLmM6NDM6ICogcHNwX25sX211bHRpY2FzdF9wZXJfbnMoKSAtIG11bHRpY2FzdCBhIG5vdGlmaWNhdGlvbiB0byBlYWNoIHVuaXF1ZSBuZXRuc1xubmV0L3BzcC9wc3BfbmwuYy00NC0gKiBAcHNkOiBQU1AgZGV2aWNlIChtdXN0IGJlIGxvY2tlZClcbi0tXG5uZXQvcHNwL3BzcF9ubC5jPTUzPXN0YXRpYyB2b2lkXG5uZXQvcHNwL3BzcF9ubC5jOjU0OnBzcF9ubF9tdWx0aWNhc3RfcGVyX25zKHN0cnVjdCBwc3BfZGV2ICpwc2QsIHVuc2lnbmVkIGludCBncm91cCxcbm5ldC9wc3AvcHNwX25sLmMtNTUtXHRcdFx0c3RydWN0IHNrX2J1ZmYgKigqYnVpbGRfbnRmKShzdHJ1Y3QgcHNwX2RldiAqLFxuLS1cbm5ldC9wc3AvcHNwX25sLmM9MTEwPXN0YXRpYyB2b2lkIHBzcF9ubF9tdWx0aWNhc3RfYWxsX25zKHN0cnVjdCBwc3BfZGV2ICpwc2QsIHN0cnVjdCBza19idWZmICpudGYsXG4tLVxubmV0L3BzcC9wc3BfbmwuYy0xMTIte1xubmV0L3BzcC9wc3BfbmwuYzoxMTM6XHRwc3BfbmxfbXVsdGljYXN0X3Blcl9ucyhwc2QsIGdyb3VwLCBwc3BfbmxfY2xvbmVfbnRmLCBudGYpO1xubmV0L3BzcC9wc3BfbmwuYy0xMTQtXHRubG1zZ19jb25zdW1lKG50Zik7XG4tLVxubmV0L3BzcC9wc3BfbmwuYz0zNTA9dm9pZCBwc3Bfbmxfbm90aWZ5X2RldihzdHJ1Y3QgcHNwX2RldiAqcHNkLCB1MzIgY21kKVxubmV0L3BzcC9wc3BfbmwuYy0zNTEte1xubmV0L3BzcC9wc3BfbmwuYzozNTI6XHRwc3BfbmxfbXVsdGljYXN0X3Blcl9ucyhwc2QsIFBTUF9OTEdSUF9NR01ULFxubmV0L3BzcC9wc3BfbmwuYy0zNTMtXHRcdFx0XHRwc3BfbmxfYnVpbGRfZGV2X250ZiwgXHUwMDI2Y21kKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMjo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNTIyCgkJCQkJCQlvdXRwdXQ6IDE5CgkJCQkJCQl0aG91Z2h0czogMTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBkaXN0aWxsZWQ6CgoqKkludmVzdGlnYXRpbmcgdGhlIEFjdGl2YXRpb24gb2YgYG5ldC9wc3AvYCoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGljaCBjb25maWd1cmF0aW9uIG9wdGlvbiBpcyByZXNwb25zaWJsZSBmb3IgZW5hYmxpbmcgYG5ldC9wc3AvYC4gVGhpcyBpcyBhIGJpdCBvZiBhIGJyZWFkY3J1bWIgdHJhaWwgSSBuZWVkIHRvIGZvbGxvdy4gSSYjMzk7bSBhc3N1bWluZyBpdCYjMzk7cyBwcm9iYWJseSBzb21ld2hlcmUgaW4gdGhlIGtlcm5lbCBjb25maWd1cmF0aW9uLiBJJiMzOTtsbCBuZWVkIHRvIGtub3cgd2hpY2ggc2V0dGluZ3MgdHJpZ2dlciBpdHMgaW5jbHVzaW9uIGR1cmluZyB0aGUgYnVpbGQgcHJvY2Vzcy4gSSYjMzk7bGwgcHJvYmFibHkgaGF2ZSB0byBzdGFydCBieSBzZWFyY2hpbmcgdGhyb3VnaCB0aGUgYC5jb25maWdgIGZpbGVzIG9yIHRoZSBLY29uZmlnIGZpbGVzIHJlbGF0ZWQgdG8gbmV0d29ya2luZy4gSSYjMzk7bGwgYmUgbG9va2luZyBmb3Igc29tZXRoaW5nIHRoYXQgZWl0aGVyIGRpcmVjdGx5IG1lbnRpb25zIGBwc3BgIG9yIGluZGlyZWN0bHkgZW5hYmxlcyBpdCB0aHJvdWdoIHNvbWUgZGVwZW5kZW5jeSBjaGFpbi4gSSBleHBlY3QgdGhpcyB3aWxsIGJlIGEgcmVsYXRpdmVseSBzdHJhaWdodGZvcndhcmQgZmluZCwgZ2l2ZW4gdGhhdCB0aGlzIGlzIGEgZmVhdHVyZSBvZiB0aGUga2VybmVsIG5ldHdvcmsgc3RhY2ssIEkgYXNzdW1lLiBJJiMzOTtsbCBzdGFydCB3aXRoIGEgZmV3IGxpa2VseSBrZXl3b3JkcyBhbmQgc2VlIHdoZXJlIHRoYXQgbGVhZHMgbWUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMjI6NDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cHNwX25sLm8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3BzcC9NYWtlZmlsZT0zPW9iai0kKENPTkZJR19JTkVUX1BTUCkgJiM0Mzs9IHBzcC5vXG5uZXQvcHNwL01ha2VmaWxlLTQtXG5uZXQvcHNwL01ha2VmaWxlOjU6cHNwLXkgOj0gcHNwX21haW4ubyBwc3BfbmwubyBwc3Bfc29jay5vIHBzcC1ubC1nZW4ub1xuLS1cbm5ldC9wc3AvcHNwLW5sLWdlbi5jPTY0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBwc3BfZGV2X2Rpc2Fzc29jX25sX3BvbGljeVtQU1BfQV9ERVZfTlNJRCAmIzQzOyAxXSA9IHtcbi0tXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy03MC0vKiBPcHMgdGFibGUgZm9yIHBzcCAqL1xubmV0L3BzcC9wc3AtbmwtZ2VuLmM6NzE6c3RhdGljIGNvbnN0IHN0cnVjdCBnZW5sX3NwbGl0X29wcyBwc3Bfbmxfb3BzW10gPSB7XG5uZXQvcHNwL3BzcC1ubC1nZW4uYy03Mi1cdHtcbi0tXG5uZXQvcHNwL3BzcC1ubC1nZW4uYz0xNjE9c3RydWN0IGdlbmxfZmFtaWx5IHBzcF9ubF9mYW1pbHkgX19yb19hZnRlcl9pbml0ID0ge1xuLS1cbm5ldC9wc3AvcHNwLW5sLWdlbi5jLTE2Ni1cdC5tb2R1bGVcdFx0PSBUSElTX01PRFVMRSxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjE2NzpcdC5zcGxpdF9vcHNcdD0gcHNwX25sX29wcyxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjE2ODpcdC5uX3NwbGl0X29wc1x0PSBBUlJBWV9TSVpFKHBzcF9ubF9vcHMpLFxubmV0L3BzcC9wc3AtbmwtZ2VuLmMtMTY5LVx0Lm1jZ3Jwc1x0XHQ9IHBzcF9ubF9tY2dycHMsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMjI6NDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDExMAoJCQkJCQkJb3V0cHV0OiAxOQoJCQkJCQkJdGhvdWdodHM6IDMzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkludmVzdGlnYXRpbmcgdGhlIENPTkZJR19JTkVUX1BTUCBEZXBlbmRlbmN5IFRyZWUqKgoKQWxyaWdodCwgc28gYENPTkZJR19JTkVUX1BTUGAgaXMgdGhlIHRhcmdldC4gRmlyc3QgdGhpbmcgSSYjMzk7bSBkb2luZyBpcyBhIHF1aWNrIHNjYW4gb2YgdGhlIHJlbGV2YW50IGBLY29uZmlnYCBmaWxlcy4gSSYjMzk7bSBoaXR0aW5nIGBuZXQvcHNwL0tjb25maWdgIChvciBzb21ldGhpbmcgYW5hbG9nb3VzIGluIHRoZSBhcHByb3ByaWF0ZSBuZXR3b3JrIGRpcmVjdG9yeSDigJMgbGV0JiMzOTtzIGFzc3VtZSBpdCYjMzk7cyB0aGVyZSkgdG8gdW5yYXZlbCB0aGlzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBhbGwgdGhlIGRvd25zdHJlYW0gZGVwZW5kZW5jaWVzOyB3aGF0IG90aGVyIGtub2JzIGFuZCBsZXZlcnMgZG9lcyB0aGlzIGZsYWcgcHVsbD8gVGhpcyBpbmNsdWRlcyB0aGUgdXN1YWwgc3VzcGVjdHM6IHN1Yi1mZWF0dXJlcywgcHJlcmVxdWlzaXRlIG1vZHVsZXMsIG1heWJlIGV2ZW4gY2VydGFpbiBoYXJkd2FyZSByZXF1aXJlbWVudHMuIFRoZSBnb2FsIGlzIHRvIGZ1bGx5IGdyYXNwIHRoZSAqaW1wYWN0KiBvZiBlbmFibGluZyBgQ09ORklHX0lORVRfUFNQYC4gSSB3YW50IHRvIGlkZW50aWZ5IGFueSBwb3RlbnRpYWwgY29uZmxpY3RzIG9yIHNpZGUtZWZmZWN0cyB3aXRoIHRoZSByZXN0IG9mIG15IHN5c3RlbSYjMzk7cyBjb25maWd1cmF0aW9uLiBJJiMzOTtsbCBuZWVkIHRvIHNlZSBpZiB0aGlzIGludHJvZHVjZXMgYW55IG5ldyBleHBvc2VkIGtlcm5lbCBpbnRlcmZhY2VzLiBMZXQmIzM5O3Mgc2VlIGhvdyBkZWVwIHRoaXMgcmFiYml0IGhvbGUgZ29lcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMjo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgSU5FVF9QU1AmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3BzcC9LY29uZmlnLTQtI1xubmV0L3BzcC9LY29uZmlnOjU6Y29uZmlnIElORVRfUFNQXG5uZXQvcHNwL0tjb25maWctNi1cdGJvb2wgXCYjMzQ7UFNQIFNlY3VyaXR5IFByb3RvY29sIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMjo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NDIxCgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcy4gSGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBhcyBpZiB0aGV5JiMzOTtyZSBteSBvd246CgoqKkFuYWx5emluZyB0aGUgUFNQIEtjb25maWcgRmlsZSoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byB0YWtlIGEgbG9vayBhdCB0aGUgZnVsbCBgbmV0L3BzcC9LY29uZmlnYCBmaWxlLiBJIG5lZWQgdG8gZ2V0IGEgY29tcHJlaGVuc2l2ZSB1bmRlcnN0YW5kaW5nIG9mICpleGFjdGx5KiB3aGF0JiMzOTtzIGRlZmluZWQsIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXZhaWxhYmxlLCB0aGVpciBkZXBlbmRlbmNpZXMsIGFuZCBhbnkgZGVmYXVsdCBzZXR0aW5ncy4gVGhlcmUmIzM5O3Mgbm8gc3Vic3RpdHV0ZSBmb3Igc2VlaW5nIHRoZSB3aG9sZSBwaWN0dXJlLiBJJiMzOTttIGxvb2tpbmcgZm9yIHRoZSBmb3VuZGF0aW9uYWwgYnVpbGRpbmcgYmxvY2tzLCB0aGUgYXJjaGl0ZWN0dXJhbCBjaG9pY2VzIGJha2VkIGludG8gdGhpcyBzcGVjaWZpYyBQU1AgbmV0d29yayBjb25maWd1cmF0aW9uLiBJJiMzOTttIGV4cGVjdGluZyB0byBmaW5kIGRldGFpbHMgYXJvdW5kIHN1cHBvcnRlZCBoYXJkd2FyZSwgZmVhdHVyZXMgZW5hYmxlZCAob3IgZGlzYWJsZWQpLCBhbmQgdGhlIGxvZ2ljYWwgb3JnYW5pemF0aW9uIG9mIHRoZSBjb25maWd1cmF0aW9uIHNwYWNlLiBJIHdhbnQgdG8gYnVpbGQgYSBtZW50YWwgbWFwIG9mIHRoaXMgUFNQJiMzOTtzIGNhcGFiaWxpdGllcyBhbmQgY29uc3RyYWludHMuIFRoaXMgd2lsbCBiZSB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgaXRzIHBsYWNlIHdpdGhpbiB0aGUgbGFyZ2VyIHN5c3RlbS4gVGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIyOjQ1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L3BzcC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAxMDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuICAgMjpcdCNcbiAgIDM6XHQjIFBTUCBjb25maWd1cmF0aW9uXG4gICA0Olx0I1xuICAgNTpcdGNvbmZpZyBJTkVUX1BTUFxuICAgNjpcdFx0Ym9vbCBcJiMzNDtQU1AgU2VjdXJpdHkgUHJvdG9jb2wgc3VwcG9ydFwmIzM0O1xuICAgNzpcdFx0ZGVwZW5kcyBvbiBJTkVUXG4gICA4Olx0XHRzZWxlY3QgU0tCX0RFQ1JZUFRFRFxuICAgOTpcdFx0c2VsZWN0IFNLQl9FWFRFTlNJT05TXG4gIDEwOlx0XHRzZWxlY3QgU09DS19WQUxJREFURV9YTUlUXG4gIDExOlx0XHRoZWxwXG4gIDEyOlx0XHRFbmFibGUga2VybmVsIHN1cHBvcnQgZm9yIHRoZSBQU1AgU2VjdXJpdHkgUHJvdG9jb2wgKFBTUCkuXG4gIDEzOlx0XHRGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWU6XG4gIDE0Olx0XHQgIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9nb29nbGUvcHNwL21haW4vZG9jL1BTUF9BcmNoX1NwZWMucGRmXG4gIDE1Olx0XG4gIDE2Olx0XHRJZiB1bnN1cmUsIHNheSBOLlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMjo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0ODY2CgkJCQkJCQlvdXRwdXQ6IDIxCgkJCQkJCQl0aG91Z2h0czogNjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQU1AgQ29uZmlndXJhdGlvbiBDaGFuZ2UqKgoKT2theSwgc28gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBpcyBzZXQgdG8gYElORVRfUFNQYCwgYW5kIHRoYXQgb2J2aW91c2x5IGhpbmdlcyBvbiBgSU5FVGAuIFRoYXQmIzM5O3MgdGhlIGJhc2VsaW5lLiBNeSBmb2N1cywgdGhvdWdoLCBpcyBvbiB0aGlzIHBhdGNoIGFuZCBpdHMgaW1wYWN0IG9uIGBwc3BfbmxfbXVsdGljYXN0X3Blcl9uc2AuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSByaXBwbGUgZWZmZWN0cywgdGhlIGRvd25zdHJlYW0gZGVwZW5kZW5jaWVzLiBUaGUgbW9kaWZpY2F0aW9uIG1pZ2h0IHNlZW0gc21hbGwsIGJ1dCB0aGVzZSBuZXR3b3JrIHN0cnVjdHVyZXMgY2FuIGJlIGRlbGljYXRlLiBOb3csIEkmIzM5O20gZ29pbmcgdG8gbG9vayBhdCB0aGUgY29kZWJhc2UgYW5kIGlkZW50aWZ5ICpldmVyeSogZnVuY3Rpb24gdGhhdCBjYWxscyBgcHNwX25sX211bHRpY2FzdF9wZXJfbnNgIG9yIGBwc3Bfbmxfbm90aWZ5X2RldmAuIFRoaXMgd2lsbCB0ZWxsIG1lIHdoYXQgc3lzdGVtcyBhcmUgdXRpbGl6aW5nIHRoZSBmdW5jdGlvbnMsIGFuZCBJIGNhbiBhc3Nlc3Mgd2hlcmUgY2hhbmdlcyB3aWxsIGhhdmUgYW4gaW1wYWN0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMjo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwc3Bfbmxfbm90aWZ5X2RldiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvcHNwL3BzcC5oPTE5PWludCBwc3BfYXR0YWNoX25ldGRldl9ub3RpZmllcih2b2lkKTtcbm5ldC9wc3AvcHNwLmgtMjAtXG5uZXQvcHNwL3BzcC5oOjIxOnZvaWQgcHNwX25sX25vdGlmeV9kZXYoc3RydWN0IHBzcF9kZXYgKnBzZCwgdTMyIGNtZCk7XG5uZXQvcHNwL3BzcC5oLTIyLVxuLS1cbm5ldC9wc3AvcHNwX21haW4uYz01OT1wc3BfZGV2X2NyZWF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxuLS1cbm5ldC9wc3AvcHNwX21haW4uYy0xMDYtXHQgKi9cbm5ldC9wc3AvcHNwX21haW4uYzoxMDc6XHRwc3Bfbmxfbm90aWZ5X2Rldihwc2QsIFBTUF9DTURfREVWX0FERF9OVEYpO1xubmV0L3BzcC9wc3BfbWFpbi5jLTEwOC1cbi0tXG5uZXQvcHNwL3BzcF9tYWluLmM9MTMxPXZvaWQgcHNwX2Rldl91bnJlZ2lzdGVyKHN0cnVjdCBwc3BfZGV2ICpwc2QpXG4tLVxubmV0L3BzcC9wc3BfbWFpbi5jLTEzOC1cbm5ldC9wc3AvcHNwX21haW4uYzoxMzk6XHRwc3Bfbmxfbm90aWZ5X2Rldihwc2QsIFBTUF9DTURfREVWX0RFTF9OVEYpO1xubmV0L3BzcC9wc3BfbWFpbi5jLTE0MC1cbi0tXG5uZXQvcHNwL3BzcF9tYWluLmM9NDI0PXN0YXRpYyBpbnQgcHNwX25ldGRldl9ldmVudChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLCB1bnNpZ25lZCBsb25nIGV2ZW50LFxuLS1cbm5ldC9wc3AvcHNwX21haW4uYy00MzgtXHRcdGlmIChwc3BfZGV2X2lzX3JlZ2lzdGVyZWQocHNkKSlcbm5ldC9wc3AvcHNwX21haW4uYzo0Mzk6XHRcdFx0cHNwX25sX25vdGlmeV9kZXYocHNkLCBQU1BfQ01EX0RFVl9DSEFOR0VfTlRGKTtcbm5ldC9wc3AvcHNwX21haW4uYy00NDAtXHRcdHBzcF9kZXZfZGlzYXNzb2Nfb25lKHBzZCwgZGV2KTtcbi0tXG5uZXQvcHNwL3BzcF9ubC5jPTMyNj1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKnBzcF9ubF9idWlsZF9kZXZfbnRmKHN0cnVjdCBwc3BfZGV2ICpwc2QsXG4tLVxubmV0L3BzcC9wc3BfbmwuYy0zNDktXG5uZXQvcHNwL3BzcF9ubC5jOjM1MDp2b2lkIHBzcF9ubF9ub3RpZnlfZGV2KHN0cnVjdCBwc3BfZGV2ICpwc2QsIHUzMiBjbWQpXG5uZXQvcHNwL3BzcF9ubC5jLTM1MS17XG4tLVxubmV0L3BzcC9wc3BfbmwuYz00MDU9aW50IHBzcF9ubF9kZXZfc2V0X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbi0tXG5uZXQvcHNwL3BzcF9ubC5jLTQzNy1cbm5ldC9wc3AvcHNwX25sLmM6NDM4Olx0cHNwX25sX25vdGlmeV9kZXYocHNkLCBQU1BfQ01EX0RFVl9DSEFOR0VfTlRGKTtcbm5ldC9wc3AvcHNwX25sLmMtNDM5LVxuLS1cbm5ldC9wc3AvcHNwX25sLmM9NDk5PWludCBwc3BfbmxfZGV2X2Fzc29jX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbi0tXG5uZXQvcHNwL3BzcF9ubC5jLTU2Ny1cbm5ldC9wc3AvcHNwX25sLmM6NTY4Olx0cHNwX25sX25vdGlmeV9kZXYocHNkLCBQU1BfQ01EX0RFVl9DSEFOR0VfTlRGKTtcbm5ldC9wc3AvcHNwX25sLmMtNTY5LVxuLS1cbm5ldC9wc3AvcHNwX25sLmM9NTg0PWludCBwc3BfbmxfZGV2X2Rpc2Fzc29jX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbi0tXG5uZXQvcHNwL3BzcF9ubC5jLTYyMy1cdCAqL1xubmV0L3BzcC9wc3BfbmwuYzo2MjQ6XHRwc3Bfbmxfbm90aWZ5X2Rldihwc2QsIFBTUF9DTURfREVWX0NIQU5HRV9OVEYpO1xubmV0L3BzcC9wc3BfbmwuYy02MjUtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIyOjQ1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYwMDMKCQkJCQkJCW91dHB1dDogMTkKCQkJCQkJCXRob3VnaHRzOiAxOTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqVHJhY2luZyB0aGUgUFNQIERldmljZSBDcmVhdGlvbiBQYXRoKioKCk9rYXksIHNvIEkmIzM5O20gZGl2aW5nIGludG8gdGhpcyBQU1AgY29kZSwgYW5kIG15IGluaXRpYWwgZm9jdXMgaXMgb24gdW5kZXJzdGFuZGluZyB0aGUgZGV2aWNlIGNyZWF0aW9uIGFuZCBub3RpZmljYXRpb24gcHJvY2Vzcy4gVGhlIGNvcmUgb2YgdGhlIG11bHRpY2FzdCBmdW5jdGlvbmFsaXR5IGFwcGVhcnMgdG8gcmVzaWRlIHdpdGhpbiBgcHNwX25sX211bHRpY2FzdF9wZXJfbnNgLCB3aGljaCBpcyB0cmlnZ2VyZWQgYnkgYHBzcF9ubF9tdWx0aWNhc3RfYWxsX25zYCBhbmQsIGltcG9ydGFudGx5LCBgcHNwX25sX25vdGlmeV9kZXZgLiBUaGlzIGBwc3Bfbmxfbm90aWZ5X2RldmAgZnVuY3Rpb24gYWN0cyBhcyBhIGNydWNpYWwgbGluayBiZWNhdXNlIGl0JiMzOTtzIGNhbGxlZCBieSBzZXZlcmFsIG5ldGxpbmsgaGFuZGxlcnMgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIGZvciBQU1Agb3BlcmF0aW9ucy4KClNwZWNpZmljYWxseSwgSSBzZWUgYHBzcF9kZXZfY3JlYXRlYCwgYHBzcF9kZXZfdW5yZWdpc3RlcmAsIGBwc3BfbmV0ZGV2X2V2ZW50YCwgYHBzcF9ubF9kZXZfc2V0X2RvaXRgLCBgcHNwX25sX2Rldl9hc3NvY19kb2l0YCwgYW5kIGBwc3BfbmxfZGV2X2Rpc2Fzc29jX2RvaXRgIGFzIHRoZSBjYWxsaW5nIGZ1bmN0aW9ucy4gVGhlc2UgbmV0bGluayBoYW5kbGVycyBhcmUgdGhlIGtleSBlbnRyeSBwb2ludHMgZm9yIG1hbmFnaW5nIGFuZCBpbnRlcmFjdGluZyB3aXRoIFBTUCBkZXZpY2VzLiBUaGVyZWZvcmUsIGEgZGVlcGVyIHVuZGVyc3RhbmRpbmcgb2YgYHBzcF9ubF9kZXZfc2V0X2RvaXRgLCBgcHNwX25sX2Rldl9hc3NvY19kb2l0YCwgYW5kIGBwc3BfbmxfZGV2X2Rpc2Fzc29jX2RvaXRgIGlzIGVzc2VudGlhbCwgYXMgdGhleSBhcmUgbGlrZWx5IHJlc3BvbnNpYmxlIGZvciB0cmlnZ2VyaW5nIG5vdGlmaWNhdGlvbnMuCgpIb3dldmVyLCBJIHRoaW5rIHRoZSBtb3N0IGltcG9ydGFudCBmdW5jdGlvbiB0byBsb29rIGF0IGZpcnN0IGlzIGBwc3BfZGV2X2NyZWF0ZWAsIHRoZSBmdW5jdGlvbiBjYWxsZWQgd2hlbiBhIFBTUCBkZXZpY2UgaXMgYWN0dWFsbHkgY3JlYXRlZC4gQnkgdHJhY2luZyB0aGUgZXhlY3V0aW9uIHBhdGggb2YgdGhpcyBmdW5jdGlvbiwgSSBzaG91bGQgYmUgYWJsZSB0byBnZXQgYSBiZXR0ZXIgaGFuZGxlIG9uIGhvdyB0aGUgd2hvbGUgc3lzdGVtIHdvcmtzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMjo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwc3BfZGV2X2NyZWF0ZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvcHNwLmM9MTA4Mj12b2lkIG1seDVlX3BzcF9yZWdpc3RlcihzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvcHNwLmMtMTA5Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9wc3AuYzoxMDk3Olx0cHNkID0gcHNwX2Rldl9jcmVhdGUocHJpdi1cdTAwM2VuZXRkZXYsIFx1MDAyNm1seDVfcHNwX29wcywgXHUwMDI2cHNwLVx1MDAzZWNhcHMsIE5VTEwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL3BzcC5jLTEwOTgtXHRpZiAoSVNfRVJSKHBzZCkpIHtcbi0tXG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vcHNwLmM9MjQyPW5zaW1fcHNwX3JlcmVnX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFyIF9fdXNlciAqZGF0YSwgc2l6ZV90IGNvdW50LFxuLS1cbmRyaXZlcnMvbmV0L25ldGRldnNpbS9wc3AuYy0yNTEtXG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vcHNwLmM6MjUyOlx0cHNkID0gcHNwX2Rldl9jcmVhdGUobnMtXHUwMDNlbmV0ZGV2LCBcdTAwMjZuc2ltX3BzcF9vcHMsIFx1MDAyNm5zaW1fcHNwX2NhcHMsIG5zKTtcbmRyaXZlcnMvbmV0L25ldGRldnNpbS9wc3AuYy0yNTMtXHRpZiAoSVNfRVJSKHBzZCkpIHtcbi0tXG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vcHNwLmM9MjcyPWludCBuc2ltX3BzcF9pbml0KHN0cnVjdCBuZXRkZXZzaW0gKm5zKVxuLS1cbmRyaXZlcnMvbmV0L25ldGRldnNpbS9wc3AuYy0yNzYtXG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vcHNwLmM6Mjc3Olx0cHNkID0gcHNwX2Rldl9jcmVhdGUobnMtXHUwMDNlbmV0ZGV2LCBcdTAwMjZuc2ltX3BzcF9vcHMsIFx1MDAyNm5zaW1fcHNwX2NhcHMsIG5zKTtcbmRyaXZlcnMvbmV0L25ldGRldnNpbS9wc3AuYy0yNzgtXHRpZiAoSVNfRVJSKHBzZCkpXG4tLVxuaW5jbHVkZS9uZXQvcHNwL2Z1bmN0aW9ucy5oPTE2PXN0cnVjdCBwc3BfZGV2ICpcbmluY2x1ZGUvbmV0L3BzcC9mdW5jdGlvbnMuaDoxNzpwc3BfZGV2X2NyZWF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBzdHJ1Y3QgcHNwX2Rldl9vcHMgKnBzZF9vcHMsXG5pbmNsdWRlL25ldC9wc3AvZnVuY3Rpb25zLmgtMTgtXHQgICAgICAgc3RydWN0IHBzcF9kZXZfY2FwcyAqcHNkX2NhcHMsIHZvaWQgKnByaXZfcHRyKTtcbi0tXG5uZXQvcHNwL3BzcF9tYWluLmM9Mzg9aW50IHBzcF9kZXZfY2hlY2tfYWNjZXNzKHN0cnVjdCBwc3BfZGV2ICpwc2QsIHN0cnVjdCBuZXQgKm5ldCwgYm9vbCBhZG1pbilcbi0tXG5uZXQvcHNwL3BzcF9tYWluLmMtNDktLyoqXG5uZXQvcHNwL3BzcF9tYWluLmM6NTA6ICogcHNwX2Rldl9jcmVhdGUoKSAtIGNyZWF0ZSBhbmQgcmVnaXN0ZXIgUFNQIGRldmljZVxubmV0L3BzcC9wc3BfbWFpbi5jLTUxLSAqIEBuZXRkZXY6XHRtYWluIG5ldGRldmljZVxuLS1cbm5ldC9wc3AvcHNwX21haW4uYz01OD1zdHJ1Y3QgcHNwX2RldiAqXG5uZXQvcHNwL3BzcF9tYWluLmM6NTk6cHNwX2Rldl9jcmVhdGUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbm5ldC9wc3AvcHNwX21haW4uYy02MC1cdCAgICAgICBzdHJ1Y3QgcHNwX2Rldl9vcHMgKnBzZF9vcHMsIHN0cnVjdCBwc3BfZGV2X2NhcHMgKnBzZF9jYXBzLFxuLS1cbm5ldC9wc3AvcHNwX21haW4uYy0xMTQtfVxubmV0L3BzcC9wc3BfbWFpbi5jOjExNTpFWFBPUlRfU1lNQk9MKHBzcF9kZXZfY3JlYXRlKTtcbm5ldC9wc3AvcHNwX21haW4uYy0xMTYtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIyOjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDczNzEKCQkJCQkJCW91dHB1dDogMjAKCQkJCQkJCXRob3VnaHRzOiA2MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIHNlZSB3aGF0IHdlJiMzOTt2ZSBnb3QgaGVyZS4KCioqSW5pdGlhbCBBc3Nlc3NtZW50IG9mIFBTUCBEcml2ZXIgSW5pdGlhbGl6YXRpb24qKgoKUmlnaHQsIHNvIGBwc3BfZGV2X2NyZWF0ZWAgaXMgYmVpbmcgY2FsbGVkIGJ5IGBuc2ltX3BzcF9pbml0YC4gVGhhdCYjMzk7cyBpbnRlcmVzdGluZywgYW5kIHBvdGVudGlhbGx5IHZlcnkgdXNlZnVsLiBUaGUgZmFjdCB0aGF0IGl0JiMzOTtzIGluIGBkcml2ZXJzL25ldC9uZXRkZXZzaW0vcHNwLmNgIGltbWVkaWF0ZWx5IHRlbGxzIG1lIHRoYXQgdGhpcyBpcyB0ZXN0YWJsZSB2aWEgbmV0ZGV2c2ltLiBUaGlzIGlzIGEgZ3JlYXQgc3RhcnRpbmcgcG9pbnQgZm9yIGFuYWx5emluZyBhbmQgcGVyaGFwcyBldmVudHVhbGx5IG1vZGlmeWluZyB0aGUgcHNwIGRyaXZlci4gTm93LCB0aGUgb2J2aW91cyBuZXh0IHN0ZXAgaXMgdG8gZmlndXJlIG91dCB0aGUgc3BlY2lmaWMgY29uZmlndXJhdGlvbiByZXF1aXJlZCB0byBpbml0aWFsaXplIGBuc2ltX3BzcF9pbml0YC4gTGV0JiMzOTtzIGRpZyBpbnRvIHRoYXQgYW5kIHNlZSB3aGF0IHdlIGNhbiBmaW5kLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMjo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtuc2ltX3BzcF9pbml0JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXYuYz0xMDM4PXN0YXRpYyBpbnQgbnNpbV9pbml0X25ldGRldnNpbShzdHJ1Y3QgbmV0ZGV2c2ltICpucylcbi0tXG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vbmV0ZGV2LmMtMTA3NC1cbmRyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXYuYzoxMDc1Olx0ZXJyID0gbnNpbV9wc3BfaW5pdChucyk7XG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vbmV0ZGV2LmMtMTA3Ni1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oPTQ0Nj1zdGF0aWMgaW5saW5lIHZvaWQgbnNpbV9tYWNzZWNfdGVhcmRvd24oc3RydWN0IG5ldGRldnNpbSAqbnMpXG4tLVxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oLTQ1MS0jaWYgSVNfRU5BQkxFRChDT05GSUdfSU5FVF9QU1ApXG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vbmV0ZGV2c2ltLmg6NDUyOmludCBuc2ltX3BzcF9pbml0KHN0cnVjdCBuZXRkZXZzaW0gKm5zKTtcbmRyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXZzaW0uaC00NTMtdm9pZCBuc2ltX3BzcF91bmluaXQoc3RydWN0IG5ldGRldnNpbSAqbnMpO1xuLS1cbmRyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXZzaW0uaD00NTY9bnNpbV9kb19wc3Aoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldGRldnNpbSAqbnMsXG4tLVxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oLTQ1OC0jZWxzZVxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oOjQ1OTpzdGF0aWMgaW5saW5lIGludCBuc2ltX3BzcF9pbml0KHN0cnVjdCBuZXRkZXZzaW0gKm5zKSB7IHJldHVybiAwOyB9XG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vbmV0ZGV2c2ltLmgtNDYwLXN0YXRpYyBpbmxpbmUgdm9pZCBuc2ltX3BzcF91bmluaXQoc3RydWN0IG5ldGRldnNpbSAqbnMpIHt9XG4tLVxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL3BzcC5jPTI2NT1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBuc2ltX3BzcF9yZXJlZ19mb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L25ldGRldnNpbS9wc3AuYy0yNzEtXG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vcHNwLmM6MjcyOmludCBuc2ltX3BzcF9pbml0KHN0cnVjdCBuZXRkZXZzaW0gKm5zKVxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL3BzcC5jLTI3My17XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIyOjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDgxMTMKCQkJCQkJCW91dHB1dDogMTkKCQkJCQkJCXRob3VnaHRzOiA1NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBOZXRkZXZzaW0gYW5kIFBTUCBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIGl0IHNlZW1zIGxpa2UgZW5hYmxpbmcgYENPTkZJR19JTkVUX1BTUGAgaXMgc3VmZmljaWVudCB0byBnZXQgUFNQIGZ1bmN0aW9uYWxpdHkgd29ya2luZyB3aXRoaW4gbmV0ZGV2c2ltLCBhc3N1bWluZywgb2YgY291cnNlLCB0aGF0IGBDT05GSUdfTkVUREVWU0lNYCBpcyBhbHNvIGVuYWJsZWQuIFRoYXQgc2VlbXMgc3RyYWlnaHRmb3J3YXJkIGVub3VnaCwgYnV0IEkgYWx3YXlzIHByZWZlciB0byBiZSB0aG9yb3VnaC4gSSBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoZXJlIGFyZW4mIzM5O3QgYW55IG90aGVyIHN1YnRsZSBkZXBlbmRlbmNpZXMgbHVya2luZyB3aXRoaW4gdGhlIG5ldGRldnNpbSBLY29uZmlnIGZpbGUgdGhhdCBtaWdodCBpbmZsdWVuY2UgdGhpcy4gTGV0IG1lIHF1aWNrbHkgZXhhbWluZSBgZHJpdmVycy9uZXQvbmV0ZGV2c2ltL0tjb25maWdgIGFuZCBkb3VibGUtY2hlY2sgZm9yIGFueSBoaWRkZW4gZ290Y2hhcyBvciBjb25kaXRpb25hbCBkZXBlbmRlbmNpZXMgdGhhdCBjb3VsZCBpbXBhY3QgdGhpcyBjb25maWd1cmF0aW9uLiBCZXR0ZXIgc2FmZSB0aGFuIHNvcnJ5IHdoZW4gZGVhbGluZyB3aXRoIGtlcm5lbCBjb25maWd1cmF0aW9ucyEKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMjI6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE5FVERFVlNJTSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9LY29uZmlnPTYwMj1zb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvaHlwZXJ2L0tjb25maWdcJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWctNjAzLVxuZHJpdmVycy9uZXQvS2NvbmZpZzo2MDQ6Y29uZmlnIE5FVERFVlNJTVxuZHJpdmVycy9uZXQvS2NvbmZpZy02MDUtXHR0cmlzdGF0ZSBcJiMzNDtTaW11bGF0ZWQgbmV0d29ya2luZyBkZXZpY2VcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMjI6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODQxOAoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDE4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipOYXZpZ2F0aW5nIHRoZSBOZXR3b3JrIERyaXZlciBDb25maWd1cmF0aW9uIExhbmRzY2FwZSoqCgpPa2F5LCB0aW1lIHRvIGRpdmUgaW50byB0aGUgbml0dHktZ3JpdHR5IG9mIHRoZSBuZXR3b3JrIGRyaXZlciBjb25maWd1cmF0aW9uLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgYSBwYXJ0aWN1bGFyIGZlYXR1cmUsIG9yIHBlcmhhcHMgYSBjb25mbGljdCwgaXMgYmVpbmcgY29udHJvbGxlZC4gTXkgZ3V0IHRlbGxzIG1lIHRoYXQgdGhlIGtleSBsaWVzIHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L0tjb25maWdgIGZpbGUuIEkmIzM5O20gZ29pbmcgdG8ganVtcCByaWdodCBpbnRvIGl0LiBJJiMzOTttIGJldHRpbmcgdGhhdCBhcm91bmQgbGluZSA2MDQsIEkmIzM5O2xsIGZpbmQgdGhlIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aGF0IGFyZSByZWxldmFudCB0byB3aGF0IEkmIzM5O20gbG9va2luZyBmb3IuIFRoaXMgaXMgd2hlcmUgdGhlIG1hZ2ljIGhhcHBlbnMsIHdoZXJlIHRoZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiBhbmQgZGVwZW5kZW5jaWVzIGFyZSBkZWZpbmVkLiBIb3BlZnVsbHksIHRoaXMgaXMgd2hlcmUgSSYjMzk7bGwgZmluZCB3aGF0IEkgbmVlZCB0byBlaXRoZXIgc29sdmUgdGhlIHByb2JsZW0gSSYjMzk7bSBpbnZlc3RpZ2F0aW5nIG9yIHRvIGdldCB0byBhIGRlZXBlciBsZXZlbCBvZiB1bmRlcnN0YW5kaW5nLiBMZXQmIzM5O3Mgc2VlIHdoYXQgS2NvbmZpZyBoYXMgaW4gc3RvcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIyOjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDYwMCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgNjAwOlx0XG4gNjAxOlx0c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L3RodW5kZXJib2x0L0tjb25maWdcJiMzNDtcbiA2MDI6XHRzb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvaHlwZXJ2L0tjb25maWdcJiMzNDtcbiA2MDM6XHRcbiA2MDQ6XHRjb25maWcgTkVUREVWU0lNXG4gNjA1Olx0XHR0cmlzdGF0ZSBcJiMzNDtTaW11bGF0ZWQgbmV0d29ya2luZyBkZXZpY2VcJiMzNDtcbiA2MDY6XHRcdGRlcGVuZHMgb24gREVCVUdfRlNcbiA2MDc6XHRcdGRlcGVuZHMgb24gSU5FVFxuIDYwODpcdFx0ZGVwZW5kcyBvbiBQU0FNUExFIHx8IFBTQU1QTEU9blxuIDYwOTpcdFx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS19NT0NLIHx8IFBUUF8xNTg4X0NMT0NLX01PQ0s9blxuIDYxMDpcdFx0c2VsZWN0IE5FVF9ERVZMSU5LXG4gNjExOlx0XHRzZWxlY3QgUEFHRV9QT09MXG4gNjEyOlx0XHRzZWxlY3QgTkVUX1NIQVBFUlxuIDYxMzpcdFx0aGVscFxuIDYxNDpcdFx0ICBUaGlzIGRyaXZlciBpcyBhIGRldmVsb3BlciB0ZXN0aW5nIHRvb2wgYW5kIHNvZnR3YXJlIG1vZGVsIHRoYXQgY2FuXG4gNjE1Olx0XHQgIGJlIHVzZWQgdG8gdGVzdCB2YXJpb3VzIGNvbnRyb2wgcGF0aCBuZXR3b3JraW5nIEFQSXMsIGVzcGVjaWFsbHlcbiA2MTY6XHRcdCAgSFctb2ZmbG9hZCByZWxhdGVkLlxuIDYxNzpcdFxuIDYxODpcdFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlXG4gNjE5Olx0XHQgIHdpbGwgYmUgY2FsbGVkIG5ldGRldnNpbS5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMjI6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODk2OAoJCQkJCQkJb3V0cHV0OiAxNwoJCQkJCQkJdGhvdWdodHM6IDMzMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIFRhcmdldCBJZGVudGlmaWNhdGlvbjogUFNQIE5ldGxpbmsgUmFjZSBDb25kaXRpb24qKgoKT2theSwgc28gSSYjMzk7dmUgZ290IHRoaXMgcGF0Y2gg4oCTIGl0IGxvb2tzIGxpa2UgaXQmIzM5O3MgYWRkcmVzc2luZyBhIHJhY2UgY29uZGl0aW9uIHdpdGhpbiBgcHNwX25sX211bHRpY2FzdF9wZXJfbnNgLCBzcGVjaWZpY2FsbHkgaW4gdGhlIGBuZXQvcHNwL3BzcF9ubC5jYCBmaWxlLiBJdCYjMzk7cyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBub3QgYSBzdXBlcmZpY2lhbCBvbmUsIGFuZCBpdCYjMzk7cyBmaXhpbmcgc29tZXRoaW5nIHJlbGF0ZWQgdG8gZGV2aWNlcyBjaGFuZ2luZyBuZXR3b3JrIG5hbWVzcGFjZXMgY29uY3VycmVudGx5LiBUaGlzIHNjcmVhbXMgJiMzNDtmdXp6aW5nIG9wcG9ydHVuaXR5JiMzNDsgdG8gbWUsIGVzcGVjaWFsbHkgZ2l2ZW4gdGhlIGNvbnRleHQgb2YgUFNQIChQU1AgU2VjdXJpdHkgUHJvdG9jb2wpIG5ldGxpbmsgaW50ZXJhY3Rpb25zLgoKVGhlIHBhdGNoIHNlZW1zIHRvIHJlcXVpcmUgYERFQlVHX0ZTYCBhbmQgYElORVRgLCB3aGljaCBpcyBnb29kIHRvIGtub3cgZm9yIHNldHVwLiBXZSYjMzk7cmUgdGFsa2luZyBhYm91dCBjb3JlIFBTUCBsb2dpYyByZWFjaGFibGUgdmlhIG5ldGxpbmsgY29tbWFuZHMsIHdoaWNoIG1ha2VzIGl0IGZ1enphYmxlIHdpdGggdGhlIGBuZXRkZXZzaW1gIGRyaXZlci4gUGVyZmVjdC4KCk15IGluaXRpYWwgdGhvdWdodCBpcyB0byB6ZXJvIGluIG9uIHRoZSBuZXRsaW5rIGVudHJ5IHBvaW50cyB0aGF0IHVsdGltYXRlbHkgY2FsbCBpbnRvIGBwc3BfbmxfbXVsdGljYXN0X3Blcl9uc2AuIFNpbmNlIGBwc3BfbmxfbXVsdGljYXN0X3Blcl9uc2AgaXMgc3RhdGljLCB3ZSYjMzk7cmUgbm90IGdvaW5nIHRvIGJlIGFibGUgdG8gY2FsbCB0aGUgZnVuY3Rpb24gZGlyZWN0bHkuIEFmdGVyIGEgYml0IG9mIHJldmlldywgYHBzcF9ubF9kZXZfc2V0X2RvaXRgLCBgcHNwX25sX2Rldl9hc3NvY19kb2l0YCwgYW5kIGBwc3BfbmxfZGV2X2Rpc2Fzc29jX2RvaXRgIHNlZW0gbGlrZSB0aGUga2V5IGVudHJ5IHBvaW50cy4gQW5kLCBgcHNwX2Rldl9jcmVhdGVgIGxvb2tzIGxpa2UgYW5vdGhlciBpbXBvcnRhbnQgc3ltYm9sLiBJJiMzOTtsbCBuZWVkIHRvIGVuYWJsZSBgSU5FVF9QU1BgIGFuZCBgTkVUREVWU0lNYCBmb3IgdGhlIGZ1enppbmcgc2V0dXAuCgpOb3csIGxldCBtZSBqdXN0IHF1aWNrbHkgZG91YmxlLWNoZWNrIHRoYXQgdGhlcmUgYXJlbiYjMzk7dCBhbnkgb3RoZXIgcG90ZW50aWFsbHkgcmVsZXZhbnQgbmV0bGluayBlbnRyeSBwb2ludHMgaW4gYG5ldC9wc3AvcHNwX25sLmNgIHRoYXQgSSBtaWdodCBoYXZlIG1pc3NlZC4gR290dGEgYmUgdGhvcm91Z2guCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIyOjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O19kb2l0JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAzMzM0IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvZ2VuZXRsaW5rLWMueWFtbD0yOT1wcm9wZXJ0aWVzOlxuLS1cbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmstYy55YW1sLTM1MS0gICAgICAgICAgICAgICAgcHJlOlxuRG9jdW1lbnRhdGlvbi9uZXRsaW5rL2dlbmV0bGluay1jLnlhbWw6MzUyOiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBIb29rIGZvciBhIGZ1bmN0aW9uIHRvIHJ1biBiZWZvcmUgdGhlIG1haW4gY2FsbGJhY2sgKHByZV9kb2l0IG9yIHN0YXJ0KS5cbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmstYy55YW1sLTM1My0gICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmdcbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmstYy55YW1sLTM1NC0gICAgICAgICAgICAgICAgcG9zdDpcbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmstYy55YW1sOjM1NTogICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogSG9vayBmb3IgYSBmdW5jdGlvbiB0byBydW4gYWZ0ZXIgdGhlIG1haW4gY2FsbGJhY2sgKHBvc3RfZG9pdCBvciBkb25lKS5cbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmstYy55YW1sLTM1Ni0gICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmdcbi0tXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvZ2VuZXRsaW5rLWxlZ2FjeS55YW1sPTMyPXByb3BlcnRpZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9uZXRsaW5rL2dlbmV0bGluay1sZWdhY3kueWFtbC00MTgtICAgICAgICAgICAgICAgIHByZTpcbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmstbGVnYWN5LnlhbWw6NDE5OiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBIb29rIGZvciBhIGZ1bmN0aW9uIHRvIHJ1biBiZWZvcmUgdGhlIG1haW4gY2FsbGJhY2sgKHByZV9kb2l0IG9yIHN0YXJ0KS5cbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmstbGVnYWN5LnlhbWwtNDIwLSAgICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZ1xuRG9jdW1lbnRhdGlvbi9uZXRsaW5rL2dlbmV0bGluay1sZWdhY3kueWFtbC00MjEtICAgICAgICAgICAgICAgIHBvc3Q6XG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvZ2VuZXRsaW5rLWxlZ2FjeS55YW1sOjQyMjogICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogSG9vayBmb3IgYSBmdW5jdGlvbiB0byBydW4gYWZ0ZXIgdGhlIG1haW4gY2FsbGJhY2sgKHBvc3RfZG9pdCBvciBkb25lKS5cbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmstbGVnYWN5LnlhbWwtNDIzLSAgICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZ1xuLS1cbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmsueWFtbD0zMj1wcm9wZXJ0aWVzOlxuLS1cbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmsueWFtbC0zMDMtICAgICAgICAgICAgICAgIHByZTpcbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmsueWFtbDozMDQ6ICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IEhvb2sgZm9yIGEgZnVuY3Rpb24gdG8gcnVuIGJlZm9yZSB0aGUgbWFpbiBjYWxsYmFjayAocHJlX2RvaXQgb3Igc3RhcnQpLlxuRG9jdW1lbnRhdGlvbi9uZXRsaW5rL2dlbmV0bGluay55YW1sLTMwNS0gICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmdcbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmsueWFtbC0zMDYtICAgICAgICAgICAgICAgIHBvc3Q6XG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvZ2VuZXRsaW5rLnlhbWw6MzA3OiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBIb29rIGZvciBhIGZ1bmN0aW9uIHRvIHJ1biBhZnRlciB0aGUgbWFpbiBjYWxsYmFjayAocG9zdF9kb2l0IG9yIGRvbmUpLlxuRG9jdW1lbnRhdGlvbi9uZXRsaW5rL2dlbmV0bGluay55YW1sLTMwOC0gICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmdcbi0tXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvbmV0bGluay1yYXcueWFtbD0zNT1wcm9wZXJ0aWVzOlxuLS1cbkRvY3VtZW50YXRpb24vbmV0bGluay9uZXRsaW5rLXJhdy55YW1sLTQ4NS0gICAgICAgICAgICAgICAgcHJlOlxuRG9jdW1lbnRhdGlvbi9uZXRsaW5rL25ldGxpbmstcmF3LnlhbWw6NDg2OiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBIb29rIGZvciBhIGZ1bmN0aW9uIHRvIHJ1biBiZWZvcmUgdGhlIG1haW4gY2FsbGJhY2sgKHByZV9kb2l0IG9yIHN0YXJ0KS5cbkRvY3VtZW50YXRpb24vbmV0bGluay9uZXRsaW5rLXJhdy55YW1sLTQ4Ny0gICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmdcbkRvY3VtZW50YXRpb24vbmV0bGluay9uZXRsaW5rLXJhdy55YW1sLTQ4OC0gICAgICAgICAgICAgICAgcG9zdDpcbkRvY3VtZW50YXRpb24vbmV0bGluay9uZXRsaW5rLXJhdy55YW1sOjQ4OTogICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogSG9vayBmb3IgYSBmdW5jdGlvbiB0byBydW4gYWZ0ZXIgdGhlIG1haW4gY2FsbGJhY2sgKHBvc3RfZG9pdCBvciBkb25lKS5cbkRvY3VtZW50YXRpb24vbmV0bGluay9uZXRsaW5rLXJhdy55YW1sLTQ5MC0gICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmdcbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q9MzUxPWxvY2sgbXVzdCBhbHdheXMgYmUgYWNxdWlyZWQgYmVmb3JlIHRoZSBwaHlzaWNhbCBkZXZpY2UmIzM5O3MgKHNlZVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0OjM1MjpgYG5ldGRldl9ubF9xdWV1ZV9jcmVhdGVfZG9pdGBgKS5cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC0zNTMtXG4tLVxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvc3BlY3MucnN0PTM3Mj1NZXNzYWdlcyBjYW4gYWxzbyBkZWZpbmUgYGBwcmVgYCBhbmQgYGBwb3N0YGAgcHJvcGVydGllcyB3aGljaCB3aWxsIGJlIHJlbmRlcmVkXG5Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbmV0bGluay9zcGVjcy5yc3Q6MzczOmFzIGBgcHJlX2RvaXRgYCBhbmQgYGBwb3N0X2RvaXRgYCBjYWxscyBpbiB0aGUga2VybmVsICh0aGVzZSBwcm9wZXJ0aWVzIHNob3VsZFxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvc3BlY3MucnN0LTM3NC1iZSBpZ25vcmVkIGJ5IHVzZXIgc3BhY2UpLlxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9ODE9c3RhdGljIGludCBkcmJkX21zZ19zcHJpbnRmX2luZm8oc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3QgY2hhciAqZm10LCAuLi4pXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0xMTMtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjExNDovKiBQZXItY29tbWFuZCBmbGFncyBmb3IgZHJiZF9wcmVfZG9pdCgpICovXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTExNS1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGRyYmRfZ2VubF9jbWRfZmxhZ3NbXSA9IHtcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTE1OD1zdGF0aWMgaW50IGRyYmRfYWRtX3ByZXBhcmUoc3RydWN0IGRyYmRfY29uZmlnX2NvbnRleHQgKmFkbV9jdHgsXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMDQtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjMwNTppbnQgZHJiZF9wcmVfZG9pdChjb25zdCBzdHJ1Y3QgZ2VubF9zcGxpdF9vcHMgKm9wcyxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzA2LVx0XHQgIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMzItXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjMzMzp2b2lkIGRyYmRfcG9zdF9kb2l0KGNvbnN0IHN0cnVjdCBnZW5sX3NwbGl0X29wcyAqb3BzLFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMzQtXHRcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9Nzk5PXN0YXRpYyBpbnQgZHJiZF9ubF9zZXRfcm9sZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtODM4LVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo4Mzk6aW50IGRyYmRfbmxfcHJpbWFyeV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTg0MC17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy04NDMtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjg0NDppbnQgZHJiZF9ubF9zZWNvbmRhcnlfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy04NDUte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9OTEzPWNoYXIgKnBwc2l6ZShjaGFyICpidWYsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplKVxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtOTQyLS8qIE5vdGUgdGhlc2UgYXJlIG5vdCB0byBiZSBjb25mdXNlZCB3aXRoXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjk0MzogKiBkcmJkX25sX3N1c3BlbmRfaW9fZG9pdC9kcmJkX25sX3Jlc3VtZV9pb19kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy05NDQtICogd2hpY2ggYXJlIChzdWIpIHN0YXRlIGNoYW5nZXMgdHJpZ2dlcmVkIGJ5IGFkbWluIChkcmJkc2V0dXApLFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9MTUzMT1zdGF0aWMgaW50IGRpc2tfb3B0c19jaGVja19hbF9zaXplKHN0cnVjdCBkcmJkX2RldmljZSAqZGV2aWNlLCBzdHJ1Y3QgZGlza19jb25mICpkYylcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTE1NTQtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjE1NTU6aW50IGRyYmRfbmxfY2hnX2Rpc2tfb3B0c19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTE1NTYte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9MTc4MT12b2lkIGRyYmRfYmFja2luZ19kZXZfZnJlZShzdHJ1Y3QgZHJiZF9kZXZpY2UgKmRldmljZSwgc3RydWN0IGRyYmRfYmFja2luZ19kZXYgKmxkZXYpXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0xNzkzLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzoxNzk0OmludCBkcmJkX25sX2F0dGFjaF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTE3OTUte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9MjIxOD1zdGF0aWMgaW50IGFkbV9kZXRhY2goc3RydWN0IGRyYmRfZGV2aWNlICpkZXZpY2UsIGludCBmb3JjZSlcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTIyMzMtICogT25seSB0aGVuIHdlIGhhdmUgZmluYWxseSBkZXRhY2hlZC4gKi9cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6MjIzNDppbnQgZHJiZF9ubF9kZXRhY2hfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yMjM1LXtcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTI0MjQ9c3RhdGljIHZvaWQgZnJlZV9jcnlwdG8oc3RydWN0IGNyeXB0byAqY3J5cHRvKVxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMjQzMS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6MjQzMjppbnQgZHJiZF9ubF9jaGdfbmV0X29wdHNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yNDMzLXtcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTI1NzQ9c3RhdGljIHZvaWQgcGVlcl9kZXZpY2VfdG9faW5mbyhzdHJ1Y3QgcGVlcl9kZXZpY2VfaW5mbyAqaW5mbyxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI1ODYtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjI1ODc6aW50IGRyYmRfbmxfY29ubmVjdF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI1ODgte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9MjczNj1zdGF0aWMgZW51bSBkcmJkX3N0YXRlX3J2IGNvbm5fdHJ5X2Rpc2Nvbm5lY3Qoc3RydWN0IGRyYmRfY29ubmVjdGlvbiAqY29ubmVjdGlvbiwgYm9vbCBmb3JjZSlcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI4MDEtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjI4MDI6aW50IGRyYmRfbmxfZGlzY29ubmVjdF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI4MDMte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9Mjg0MT12b2lkIHJlc3luY19hZnRlcl9vbmxpbmVfZ3JvdyhzdHJ1Y3QgZHJiZF9kZXZpY2UgKmRldmljZSlcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI4NTYtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjI4NTc6aW50IGRyYmRfbmxfcmVzaXplX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMjg1OC17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yOTkyLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzoyOTkzOmludCBkcmJkX25sX3Jlc291cmNlX29wdHNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yOTk0LXtcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMwMzAtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjMwMzE6aW50IGRyYmRfbmxfaW52YWxpZGF0ZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMwMzIte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9MzA5OT1zdGF0aWMgaW50IGRyYmRfYm1pb19zZXRfc3VzcF9hbChzdHJ1Y3QgZHJiZF9kZXZpY2UgKmRldmljZSxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMxMDgtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjMxMDk6aW50IGRyYmRfbmxfaW52YWxfcGVlcl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMxMTAte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzE1OS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6MzE2MDppbnQgZHJiZF9ubF9wYXVzZV9zeW5jX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzE2MS17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMTc5LVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozMTgwOmludCBkcmJkX25sX3Jlc3VtZV9zeW5jX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzE4MS17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMjA3LVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozMjA4OmludCBkcmJkX25sX3N1c3BlbmRfaW9fZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMjA5LXtcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMyMTItXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjMyMTM6aW50IGRyYmRfbmxfcmVzdW1lX2lvX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzIxNC17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMjY4LVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozMjY5OmludCBkcmJkX25sX291dGRhdGVfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMjcwLXtcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTM4MDE9c3RhdGljIGludCBubGFfcHV0X3N0YXR1c19pbmZvKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBkcmJkX2RldmljZSAqZGV2aWNlLFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzgxMy1cdCAqXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjM4MTQ6XHQgKiBJZiBzaWIgPT0gTlVMTCwgdGhpcyBpcyBkcmJkX25sX2dldF9zdGF0dXNfZG9pdCwgZXhlY3V0ZWQgc3luY2hyb25vdXNseVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zODE1LVx0ICogaW4gdGhlIGNvbnRleHQgb2YgdGhlIHJlcXVlc3RpbmcgdXNlciBwcm9jZXNzLiBFeGNsdWRlIHNlbnNpdGl2ZVxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzk1MC1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6Mzk1MTppbnQgZHJiZF9ubF9nZXRfc3RhdHVzX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzk1Mi17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz00MTAzPWludCBkcmJkX25sX2dldF9zdGF0dXNfZHVtcGl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYilcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQxNTAtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjQxNTE6aW50IGRyYmRfbmxfZ2V0X3RpbWVvdXRfdHlwZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQxNTIte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDE3OS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6NDE4MDppbnQgZHJiZF9ubF9zdGFydF9vdl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQxODEte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDIyNS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6NDIyNjppbnQgZHJiZF9ubF9uZXdfY191dWlkX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDIyNy17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz00MzIwPXN0YXRpYyB2b2lkIHJlc291cmNlX3RvX2luZm8oc3RydWN0IHJlc291cmNlX2luZm8gKmluZm8sXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00MzI4LVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0MzI5OmludCBkcmJkX25sX25ld19yZXNvdXJjZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQzMzAte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9NDM4NT1zdGF0aWMgdm9pZCBkZXZpY2VfdG9faW5mbyhzdHJ1Y3QgZGV2aWNlX2luZm8gKmluZm8sXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00MzkxLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0MzkyOmludCBkcmJkX25sX25ld19taW5vcl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQzOTMte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9NDQ2Mj1zdGF0aWMgZW51bSBkcmJkX3JldF9jb2RlIGFkbV9kZWxfbWlub3Ioc3RydWN0IGRyYmRfZGV2aWNlICpkZXZpY2UpXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00NDk4LVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0NDk5OmludCBkcmJkX25sX2RlbF9taW5vcl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQ1MDAte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9NDUxOD1zdGF0aWMgaW50IGFkbV9kZWxfcmVzb3VyY2Uoc3RydWN0IGRyYmRfcmVzb3VyY2UgKnJlc291cmNlKVxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDU0Ny1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6NDU0ODppbnQgZHJiZF9ubF9kb3duX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDU0OS17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00NjEwLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0NjExOmludCBkcmJkX25sX2RlbF9yZXNvdXJjZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQ2MTIte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jPTM1OT1jb25zdCBzdHJ1Y3QgZ2VubF9zcGxpdF9vcHMgZHJiZF9ubF9vcHNbMzJdID0ge1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTM2MS1cdFx0LmNtZFx0XHQ9IERSQkRfQURNX0dFVF9TVEFUVVMsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzozNjI6XHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6MzYzOlx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfZ2V0X3N0YXR1c19kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6MzY0Olx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtMzY1LVx0XHQucG9saWN5XHRcdD0gZHJiZF9nZXRfc3RhdHVzX2RvX25sX3BvbGljeSxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zNzctXHRcdC5jbWRcdFx0PSBEUkJEX0FETV9ORVdfTUlOT1IsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzozNzg6XHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6Mzc5Olx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfbmV3X21pbm9yX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzozODA6XHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zODEtXHRcdC5wb2xpY3lcdFx0PSBkcmJkX25ld19taW5vcl9ubF9wb2xpY3ksXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtMzg2LVx0XHQuY21kXHRcdD0gRFJCRF9BRE1fREVMX01JTk9SLFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6Mzg3Olx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjM4ODpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX2RlbF9taW5vcl9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6Mzg5Olx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtMzkwLVx0XHQucG9saWN5XHRcdD0gZHJiZF9kZWxfbWlub3JfbmxfcG9saWN5LFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTM5NS1cdFx0LmNtZFx0XHQ9IERSQkRfQURNX05FV19SRVNPVVJDRSxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjM5NjpcdFx0LnByZV9kb2l0XHQ9IGRyYmRfcHJlX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzozOTc6XHRcdC5kb2l0XHRcdD0gZHJiZF9ubF9uZXdfcmVzb3VyY2VfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjM5ODpcdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTM5OS1cdFx0LnBvbGljeVx0XHQ9IGRyYmRfbmV3X3Jlc291cmNlX25sX3BvbGljeSxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00MDQtXHRcdC5jbWRcdFx0PSBEUkJEX0FETV9ERUxfUkVTT1VSQ0UsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0MDU6XHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDA2Olx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfZGVsX3Jlc291cmNlX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0MDc6XHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00MDgtXHRcdC5wb2xpY3lcdFx0PSBkcmJkX2RlbF9yZXNvdXJjZV9ubF9wb2xpY3ksXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDEzLVx0XHQuY21kXHRcdD0gRFJCRF9BRE1fUkVTT1VSQ0VfT1BUUyxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQxNDpcdFx0LnByZV9kb2l0XHQ9IGRyYmRfcHJlX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0MTU6XHRcdC5kb2l0XHRcdD0gZHJiZF9ubF9yZXNvdXJjZV9vcHRzX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0MTY6XHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00MTctXHRcdC5wb2xpY3lcdFx0PSBkcmJkX3Jlc291cmNlX29wdHNfbmxfcG9saWN5LFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQyMi1cdFx0LmNtZFx0XHQ9IERSQkRfQURNX0NPTk5FQ1QsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0MjM6XHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDI0Olx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfY29ubmVjdF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDI1Olx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDI2LVx0XHQucG9saWN5XHRcdD0gZHJiZF9jb25uZWN0X25sX3BvbGljeSxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00MzEtXHRcdC5jbWRcdFx0PSBEUkJEX0FETV9ESVNDT05ORUNULFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDMyOlx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQzMzpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX2Rpc2Nvbm5lY3RfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQzNDpcdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQzNS1cdFx0LnBvbGljeVx0XHQ9IGRyYmRfZGlzY29ubmVjdF9ubF9wb2xpY3ksXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDQwLVx0XHQuY21kXHRcdD0gRFJCRF9BRE1fQVRUQUNILFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDQxOlx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ0MjpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX2F0dGFjaF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDQzOlx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDQ0LVx0XHQucG9saWN5XHRcdD0gZHJiZF9hdHRhY2hfbmxfcG9saWN5LFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQ0OS1cdFx0LmNtZFx0XHQ9IERSQkRfQURNX1JFU0laRSxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ1MDpcdFx0LnByZV9kb2l0XHQ9IGRyYmRfcHJlX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0NTE6XHRcdC5kb2l0XHRcdD0gZHJiZF9ubF9yZXNpemVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ1MjpcdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQ1My1cdFx0LnBvbGljeVx0XHQ9IGRyYmRfcmVzaXplX25sX3BvbGljeSxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00NTgtXHRcdC5jbWRcdFx0PSBEUkJEX0FETV9QUklNQVJZLFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDU5Olx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ2MDpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX3ByaW1hcnlfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ2MTpcdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQ2Mi1cdFx0LnBvbGljeVx0XHQ9IGRyYmRfcHJpbWFyeV9ubF9wb2xpY3ksXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDY3LVx0XHQuY21kXHRcdD0gRFJCRF9BRE1fU0VDT05EQVJZLFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDY4Olx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ2OTpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX3NlY29uZGFyeV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDcwOlx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDcxLVx0XHQucG9saWN5XHRcdD0gZHJiZF9zZWNvbmRhcnlfbmxfcG9saWN5LFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQ3Ni1cdFx0LmNtZFx0XHQ9IERSQkRfQURNX05FV19DX1VVSUQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0Nzc6XHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDc4Olx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfbmV3X2NfdXVpZF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDc5Olx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDgwLVx0XHQucG9saWN5XHRcdD0gZHJiZF9uZXdfY191dWlkX25sX3BvbGljeSxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00ODUtXHRcdC5jbWRcdFx0PSBEUkJEX0FETV9TVEFSVF9PVixcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ4NjpcdFx0LnByZV9kb2l0XHQ9IGRyYmRfcHJlX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0ODc6XHRcdC5kb2l0XHRcdD0gZHJiZF9ubF9zdGFydF9vdl9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDg4Olx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDg5LVx0XHQucG9saWN5XHRcdD0gZHJiZF9zdGFydF9vdl9ubF9wb2xpY3ksXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDk0LVx0XHQuY21kXHRcdD0gRFJCRF9BRE1fREVUQUNILFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDk1Olx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ5NjpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX2RldGFjaF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDk3Olx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDk4LVx0XHQucG9saWN5XHRcdD0gZHJiZF9kZXRhY2hfbmxfcG9saWN5LFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTUwMy1cdFx0LmNtZFx0XHQ9IERSQkRfQURNX0lOVkFMSURBVEUsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1MDQ6XHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTA1Olx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfaW52YWxpZGF0ZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTA2Olx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTA3LVx0XHQucG9saWN5XHRcdD0gZHJiZF9pbnZhbGlkYXRlX25sX3BvbGljeSxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01MTItXHRcdC5jbWRcdFx0PSBEUkJEX0FETV9JTlZBTF9QRUVSLFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTEzOlx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjUxNDpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX2ludmFsX3BlZXJfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjUxNTpcdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTUxNi1cdFx0LnBvbGljeVx0XHQ9IGRyYmRfaW52YWxfcGVlcl9ubF9wb2xpY3ksXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTIxLVx0XHQuY21kXHRcdD0gRFJCRF9BRE1fUEFVU0VfU1lOQyxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjUyMjpcdFx0LnByZV9kb2l0XHQ9IGRyYmRfcHJlX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1MjM6XHRcdC5kb2l0XHRcdD0gZHJiZF9ubF9wYXVzZV9zeW5jX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1MjQ6XHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01MjUtXHRcdC5wb2xpY3lcdFx0PSBkcmJkX3BhdXNlX3N5bmNfbmxfcG9saWN5LFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTUzMC1cdFx0LmNtZFx0XHQ9IERSQkRfQURNX1JFU1VNRV9TWU5DLFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTMxOlx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjUzMjpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX3Jlc3VtZV9zeW5jX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1MzM6XHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01MzQtXHRcdC5wb2xpY3lcdFx0PSBkcmJkX3Jlc3VtZV9zeW5jX25sX3BvbGljeSxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01MzktXHRcdC5jbWRcdFx0PSBEUkJEX0FETV9TVVNQRU5EX0lPLFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTQwOlx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU0MTpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX3N1c3BlbmRfaW9fZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU0MjpcdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU0My1cdFx0LnBvbGljeVx0XHQ9IGRyYmRfc3VzcGVuZF9pb19ubF9wb2xpY3ksXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTQ4LVx0XHQuY21kXHRcdD0gRFJCRF9BRE1fUkVTVU1FX0lPLFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTQ5Olx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU1MDpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX3Jlc3VtZV9pb19kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTUxOlx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTUyLVx0XHQucG9saWN5XHRcdD0gZHJiZF9yZXN1bWVfaW9fbmxfcG9saWN5LFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU1Ny1cdFx0LmNtZFx0XHQ9IERSQkRfQURNX09VVERBVEUsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1NTg6XHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTU5Olx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfb3V0ZGF0ZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTYwOlx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTYxLVx0XHQucG9saWN5XHRcdD0gZHJiZF9vdXRkYXRlX25sX3BvbGljeSxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01NjYtXHRcdC5jbWRcdFx0PSBEUkJEX0FETV9HRVRfVElNRU9VVF9UWVBFLFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTY3Olx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU2ODpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX2dldF90aW1lb3V0X3R5cGVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU2OTpcdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU3MC1cdFx0LnBvbGljeVx0XHQ9IGRyYmRfZ2V0X3RpbWVvdXRfdHlwZV9ubF9wb2xpY3ksXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTc1LVx0XHQuY21kXHRcdD0gRFJCRF9BRE1fRE9XTixcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU3NjpcdFx0LnByZV9kb2l0XHQ9IGRyYmRfcHJlX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1Nzc6XHRcdC5kb2l0XHRcdD0gZHJiZF9ubF9kb3duX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1Nzg6XHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01NzktXHRcdC5wb2xpY3lcdFx0PSBkcmJkX2Rvd25fbmxfcG9saWN5LFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU4NC1cdFx0LmNtZFx0XHQ9IERSQkRfQURNX0NIR19ESVNLX09QVFMsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1ODU6XHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTg2Olx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfY2hnX2Rpc2tfb3B0c19kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTg3Olx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTg4LVx0XHQucG9saWN5XHRcdD0gZHJiZF9jaGdfZGlza19vcHRzX25sX3BvbGljeSxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01OTMtXHRcdC5jbWRcdFx0PSBEUkJEX0FETV9DSEdfTkVUX09QVFMsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1OTQ6XHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTk1Olx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfY2hnX25ldF9vcHRzX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1OTY6XHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01OTctXHRcdC5wb2xpY3lcdFx0PSBkcmJkX2NoZ19uZXRfb3B0c19ubF9wb2xpY3ksXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg9MzQ9ZXh0ZXJuIGNvbnN0IHN0cnVjdCBnZW5sX3NwbGl0X29wcyBkcmJkX25sX29wc1szMl07XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaC0zNS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjM2OmludCBkcmJkX3ByZV9kb2l0KGNvbnN0IHN0cnVjdCBnZW5sX3NwbGl0X29wcyAqb3BzLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmgtMzctXHRcdCAgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaD0zOD12b2lkXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDozOTpkcmJkX3Bvc3RfZG9pdChjb25zdCBzdHJ1Y3QgZ2VubF9zcGxpdF9vcHMgKm9wcywgc3RydWN0IHNrX2J1ZmYgKnNrYixcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oLTQwLVx0ICAgICAgIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oPTQzPWludCBkcmJkX2FkbV9kdW1wX3BlZXJfZGV2aWNlc19kb25lKHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYik7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaC00NC1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjQ1OmludCBkcmJkX25sX2dldF9zdGF0dXNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oLTQ2LWludCBkcmJkX25sX2dldF9zdGF0dXNfZHVtcGl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYik7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo0NzppbnQgZHJiZF9ubF9uZXdfbWlub3JfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjQ4OmludCBkcmJkX25sX2RlbF9taW5vcl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NDk6aW50IGRyYmRfbmxfbmV3X3Jlc291cmNlX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo1MDppbnQgZHJiZF9ubF9kZWxfcmVzb3VyY2VfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjUxOmludCBkcmJkX25sX3Jlc291cmNlX29wdHNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjUyOmludCBkcmJkX25sX2Nvbm5lY3RfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjUzOmludCBkcmJkX25sX2Rpc2Nvbm5lY3RfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjU0OmludCBkcmJkX25sX2F0dGFjaF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NTU6aW50IGRyYmRfbmxfcmVzaXplX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo1NjppbnQgZHJiZF9ubF9wcmltYXJ5X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo1NzppbnQgZHJiZF9ubF9zZWNvbmRhcnlfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjU4OmludCBkcmJkX25sX25ld19jX3V1aWRfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjU5OmludCBkcmJkX25sX3N0YXJ0X292X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo2MDppbnQgZHJiZF9ubF9kZXRhY2hfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjYxOmludCBkcmJkX25sX2ludmFsaWRhdGVfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjYyOmludCBkcmJkX25sX2ludmFsX3BlZXJfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjYzOmludCBkcmJkX25sX3BhdXNlX3N5bmNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjY0OmludCBkcmJkX25sX3Jlc3VtZV9zeW5jX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo2NTppbnQgZHJiZF9ubF9zdXNwZW5kX2lvX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo2NjppbnQgZHJiZF9ubF9yZXN1bWVfaW9fZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjY3OmludCBkcmJkX25sX291dGRhdGVfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjY4OmludCBkcmJkX25sX2dldF90aW1lb3V0X3R5cGVfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjY5OmludCBkcmJkX25sX2Rvd25fZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjcwOmludCBkcmJkX25sX2NoZ19kaXNrX29wdHNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjcxOmludCBkcmJkX25sX2NoZ19uZXRfb3B0c19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmgtNzItaW50IGRyYmRfbmxfZ2V0X3Jlc291cmNlc19kdW1waXQoc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmM9MTczMT1zdGF0aWMgc3RydWN0IGRwbGxfcGluICpkcGxsX3Bpbl9maW5kX2Zyb21fbmxhdHRyKHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG4tLVxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jLTE3ODgtXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmM6MTc4OTppbnQgZHBsbF9ubF9waW5faWRfZ2V0X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0xNzkwLXtcbi0tXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmMtMTgyMy1cbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYzoxODI0OmludCBkcGxsX25sX3Bpbl9nZXRfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jLTE4MjUte1xuLS1cbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYz0xODUyPWludCBkcGxsX25sX3Bpbl9nZXRfZHVtcGl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYilcbi0tXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmMtMTg4OC1cbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYzoxODg5OmludCBkcGxsX25sX3Bpbl9zZXRfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jLTE4OTAte1xuLS1cbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYz0xOTI3PWRwbGxfZGV2aWNlX2ZpbmRfZnJvbV9ubGF0dHIoc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbi0tXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmMtMTk2NS1cbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYzoxOTY2OmludCBkcGxsX25sX2RldmljZV9pZF9nZXRfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jLTE5Njcte1xuLS1cbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0xOTk3LVxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jOjE5OTg6aW50IGRwbGxfbmxfZGV2aWNlX2dldF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmMtMTk5OS17XG4tLVxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jPTIwMjY9ZHBsbF9zZXRfZnJvbV9ubGF0dHIoc3RydWN0IGRwbGxfZGV2aWNlICpkcGxsLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuLS1cbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0yMDYyLVxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jOjIwNjM6aW50IGRwbGxfbmxfZGV2aWNlX3NldF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmMtMjA2NC17XG4tLVxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jPTIwNzA9aW50IGRwbGxfbmxfZGV2aWNlX2dldF9kdW1waXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sgKmNiKVxuLS1cbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0yMTAzLVxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jOjIxMDQ6aW50IGRwbGxfcHJlX2RvaXQoY29uc3Qgc3RydWN0IGdlbmxfc3BsaXRfb3BzICpvcHMsIHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmMtMjEwNS1cdFx0ICBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuLS1cbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0yMTI0LVxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jOjIxMjU6dm9pZCBkcGxsX3Bvc3RfZG9pdChjb25zdCBzdHJ1Y3QgZ2VubF9zcGxpdF9vcHMgKm9wcywgc3RydWN0IHNrX2J1ZmYgKnNrYixcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0yMTI2LVx0XHQgICAgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbi0tXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmM9MjEzMT1pbnRcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYzoyMTMyOmRwbGxfbG9ja19kb2l0KGNvbnN0IHN0cnVjdCBnZW5sX3NwbGl0X29wcyAqb3BzLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jLTIxMzMtXHQgICAgICAgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbi0tXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmM9MjE0MD12b2lkXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmM6MjE0MTpkcGxsX3VubG9ja19kb2l0KGNvbnN0IHN0cnVjdCBnZW5sX3NwbGl0X29wcyAqb3BzLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jLTIxNDItXHRcdCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuLS1cbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0yMTQ2LVxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jOjIxNDc6aW50IGRwbGxfcGluX3ByZV9kb2l0KGNvbnN0IHN0cnVjdCBnZW5sX3NwbGl0X29wcyAqb3BzLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jLTIxNDgtXHRcdCAgICAgIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG4tLVxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jLTIxNzItXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmM6MjE3Mzp2b2lkIGRwbGxfcGluX3Bvc3RfZG9pdChjb25zdCBzdHJ1Y3QgZ2VubF9zcGxpdF9vcHMgKm9wcywgc3RydWN0IHNrX2J1ZmYgKnNrYixcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0yMTc0LVx0XHRcdHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG4tLVxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYz05Mj1zdGF0aWMgY29uc3Qgc3RydWN0IGdlbmxfc3BsaXRfb3BzIGRwbGxfbmxfb3BzW10gPSB7XG4tLVxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYy05NC1cdFx0LmNtZFx0XHQ9IERQTExfQ01EX0RFVklDRV9JRF9HRVQsXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jOjk1Olx0XHQucHJlX2RvaXRcdD0gZHBsbF9sb2NrX2RvaXQsXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jOjk2Olx0XHQuZG9pdFx0XHQ9IGRwbGxfbmxfZGV2aWNlX2lkX2dldF9kb2l0LFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYzo5NzpcdFx0LnBvc3RfZG9pdFx0PSBkcGxsX3VubG9ja19kb2l0LFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYy05OC1cdFx0LnBvbGljeVx0XHQ9IGRwbGxfZGV2aWNlX2lkX2dldF9ubF9wb2xpY3ksXG4tLVxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYy0xMDMtXHRcdC5jbWRcdFx0PSBEUExMX0NNRF9ERVZJQ0VfR0VULFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYzoxMDQ6XHRcdC5wcmVfZG9pdFx0PSBkcGxsX3ByZV9kb2l0LFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYzoxMDU6XHRcdC5kb2l0XHRcdD0gZHBsbF9ubF9kZXZpY2VfZ2V0X2RvaXQsXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jOjEwNjpcdFx0LnBvc3RfZG9pdFx0PSBkcGxsX3Bvc3RfZG9pdCxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmMtMTA3LVx0XHQucG9saWN5XHRcdD0gZHBsbF9kZXZpY2VfZ2V0X25sX3BvbGljeSxcbi0tXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jLTExNy1cdFx0LmNtZFx0XHQ9IERQTExfQ01EX0RFVklDRV9TRVQsXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jOjExODpcdFx0LnByZV9kb2l0XHQ9IGRwbGxfcHJlX2RvaXQsXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jOjExOTpcdFx0LmRvaXRcdFx0PSBkcGxsX25sX2RldmljZV9zZXRfZG9pdCxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmM6MTIwOlx0XHQucG9zdF9kb2l0XHQ9IGRwbGxfcG9zdF9kb2l0LFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYy0xMjEtXHRcdC5wb2xpY3lcdFx0PSBkcGxsX2RldmljZV9zZXRfbmxfcG9saWN5LFxuLS1cbmRyaXZlcnMvZHBsbC9kcGxsX25sLmMtMTI2LVx0XHQuY21kXHRcdD0gRFBMTF9DTURfUElOX0lEX0dFVCxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmM6MTI3Olx0XHQucHJlX2RvaXRcdD0gZHBsbF9sb2NrX2RvaXQsXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jOjEyODpcdFx0LmRvaXRcdFx0PSBkcGxsX25sX3Bpbl9pZF9nZXRfZG9pdCxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmM6MTI5Olx0XHQucG9zdF9kb2l0XHQ9IGRwbGxfdW5sb2NrX2RvaXQsXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jLTEzMC1cdFx0LnBvbGljeVx0XHQ9IGRwbGxfcGluX2lkX2dldF9ubF9wb2xpY3ksXG4tLVxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYy0xMzUtXHRcdC5jbWRcdFx0PSBEUExMX0NNRF9QSU5fR0VULFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYzoxMzY6XHRcdC5wcmVfZG9pdFx0PSBkcGxsX3Bpbl9wcmVfZG9pdCxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmM6MTM3Olx0XHQuZG9pdFx0XHQ9IGRwbGxfbmxfcGluX2dldF9kb2l0LFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYzoxMzg6XHRcdC5wb3N0X2RvaXRcdD0gZHBsbF9waW5fcG9zdF9kb2l0LFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYy0xMzktXHRcdC5wb2xpY3lcdFx0PSBkcGxsX3Bpbl9nZXRfZG9fbmxfcG9saWN5LFxuLS1cbmRyaXZlcnMvZHBsbC9kcGxsX25sLmMtMTUxLVx0XHQuY21kXHRcdD0gRFBMTF9DTURfUElOX1NFVCxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmM6MTUyOlx0XHQucHJlX2RvaXRcdD0gZHBsbF9waW5fcHJlX2RvaXQsXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jOjE1MzpcdFx0LmRvaXRcdFx0PSBkcGxsX25sX3Bpbl9zZXRfZG9pdCxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmM6MTU0Olx0XHQucG9zdF9kb2l0XHQ9IGRwbGxfcGluX3Bvc3RfZG9pdCxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmMtMTU1LVx0XHQucG9saWN5XHRcdD0gZHBsbF9waW5fc2V0X25sX3BvbGljeSxcbi0tXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5oPTE4PWV4dGVybiBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcGxsX3JlZmVyZW5jZV9zeW5jX25sX3BvbGljeVtEUExMX0FfUElOX1NUQVRFICYjNDM7IDFdO1xuZHJpdmVycy9kcGxsL2RwbGxfbmwuaC0xOS1cbmRyaXZlcnMvZHBsbC9kcGxsX25sLmg6MjA6aW50IGRwbGxfbG9ja19kb2l0KGNvbnN0IHN0cnVjdCBnZW5sX3NwbGl0X29wcyAqb3BzLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIyOjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzNTE2CgkJCQkJCQlvdXRwdXQ6IDI3CgkJCQkJCQl0aG91Z2h0czogMTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKlNlYXJjaGluZyBmb3IgYF9kb2l0YCBpbiBgbmV0L3BzcC9gKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBpdC4gTXkgaW5pdGlhbCB0aG91Z2h0IHByb2Nlc3MgaXMgc3RyYWlnaHRmb3J3YXJkOiBJIG5lZWQgdG8gaW52ZXN0aWdhdGUgdGhlIGZ1bmN0aW9uYWxpdHkgb3IgaW1wbGVtZW50YXRpb24gb2Ygc29tZXRoaW5nIHJlbGF0ZWQgdG8gYF9kb2l0YCB3aXRoaW4gdGhlIGBuZXQvcHNwL2AgZGlyZWN0b3J5IHN0cnVjdHVyZS4gR2l2ZW4gbXkgZXhwZXJ0aXNlLCBJ4oCZbSBpbW1lZGlhdGVseSBmb3JtaW5nIGh5cG90aGVzZXMgYmFzZWQgb24gY29udGV4dC4gJiMzNDtOZXQmIzM0OyBzdHJvbmdseSBzdWdnZXN0cyBuZXR3b3JraW5nIGNvbXBvbmVudHMgb3IgbW9kdWxlcywgYW5kICYjMzQ7cHNwJiMzNDsgY291bGQgaW5kaWNhdGUgcHJvdG9jb2xzLCBwb3RlbnRpYWxseSByZWZlcnJpbmcgdG8gUG9zdFNjcmlwdCwgcHJvdG9jb2wtc3BlY2lmaWMgcHJvY2Vzc2luZywgb3IgcGVyaGFwcyBzb21ldGhpbmcgZW50aXJlbHkgaW50ZXJuYWwgdG8gdGhlIHN5c3RlbSBJJiMzOTttIHdvcmtpbmcgd2l0aCAob3IgdHJvdWJsZXNob290aW5nKS4KCk15IGltbWVkaWF0ZSBnb2FsIGlzbiYjMzk7dCBqdXN0IHRvICpmaW5kKiB0aGUgc3RyaW5nLCBidXQgdG8gdW5kZXJzdGFuZCBpdHMgdXNhZ2UuIEkmIzM5O20gYWxyZWFkeSBhbnRpY2lwYXRpbmcgdGhlIG5lZWQgdG8gaW50ZXJwcmV0IHRoZSBzdXJyb3VuZGluZyBjb2RlLCBpZGVudGlmeSBpdHMgcHVycG9zZSwgYW5kIGRldGVybWluZSBhbnkgZGVwZW5kZW5jaWVzIG9yIHNpZGUgZWZmZWN0cy4gSXMgYF9kb2l0YCBhIGZ1bmN0aW9uLCBhIG1hY3JvLCBhIHZhcmlhYmxlLCBvciBzb21ldGhpbmcgZWxzZSBlbnRpcmVseT8gVGhlIHVuZGVyc2NvcmUgcHJlZml4IHR5cGljYWxseSBzdWdnZXN0cyBpbnRlcm5hbCB1c2FnZSBvciBhIGNvbnZlbnRpb24uIEnigJltIGFsc28gY29uc2lkZXJpbmcgaG93IHRoZSBzZWFyY2ggY29udGV4dCBpcyBjb25maWd1cmVkLiBJcyB0aGlzIGEgY29kZSBzZWFyY2gsIGEgZGVidWdnaW5nIHNlc3Npb24sIG9yIGFyZSB3ZSB3b3JraW5nIGluIGEgc3BlY2lmaWMgYnVpbGQgY29udGV4dD8gVGhlIHNlYXJjaCBwYXJhbWV0ZXJzIHdpbGwgaW5mbHVlbmNlIGhvdyBJIGludGVycHJldCB0aGUgcmVzdWx0cy4gQXJlIHdlIHRhbGtpbmcgYWJvdXQgYSBzb3VyY2UgY29kZSBzZWFyY2g/IFRoZW4sIHRoZSBzZWFyY2ggZW5naW5lIEkgdXNlLCBsaWtlIGdyZXAsIHJpcGdyZXAsIG9yIFZTIENvZGXigJlzIHNlYXJjaCBmdW5jdGlvbmFsaXR5LCB3aWxsIGFmZmVjdCBob3cgSSBhcHByb2FjaCB0aGlzLiBJcyB0aGlzIGEgcnVudGltZSBpbnZlc3RpZ2F0aW9uPyBUaGVuLCB0b29scyBsaWtlIGdkYiBvciBkZWJ1Z2dlcnMgbWF5IGJlIGludm9sdmVkLiBVbHRpbWF0ZWx5LCB0aGlzIHNlYXJjaCBpcyB0aGUgZm91bmRhdGlvbiBmb3IgYSBkZWVwZXIgZGl2ZS4gVGhlIGluZm9ybWF0aW9uIGdhaW5lZCB3aWxsIGRpY3RhdGUgbXkgbmV4dCBzdGVwcywgYW5kIEkgYW0gcmVhZHkgdG8gYWRhcHQgYWNjb3JkaW5nbHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIyOjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O19kb2l0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3BzcC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3BzcC9wc3AtbmwtZ2VuLmM9NzE9c3RhdGljIGNvbnN0IHN0cnVjdCBnZW5sX3NwbGl0X29wcyBwc3Bfbmxfb3BzW10gPSB7XG4tLVxubmV0L3BzcC9wc3AtbmwtZ2VuLmMtNzMtXHRcdC5jbWRcdFx0PSBQU1BfQ01EX0RFVl9HRVQsXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzo3NDpcdFx0LnByZV9kb2l0XHQ9IHBzcF9kZXZpY2VfZ2V0X2xvY2tlZCxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjc1Olx0XHQuZG9pdFx0XHQ9IHBzcF9ubF9kZXZfZ2V0X2RvaXQsXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzo3NjpcdFx0LnBvc3RfZG9pdFx0PSBwc3BfZGV2aWNlX3VubG9jayxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jLTc3LVx0XHQucG9saWN5XHRcdD0gcHNwX2Rldl9nZXRfbmxfcG9saWN5LFxuLS1cbm5ldC9wc3AvcHNwLW5sLWdlbi5jLTg3LVx0XHQuY21kXHRcdD0gUFNQX0NNRF9ERVZfU0VULFxubmV0L3BzcC9wc3AtbmwtZ2VuLmM6ODg6XHRcdC5wcmVfZG9pdFx0PSBwc3BfZGV2aWNlX2dldF9sb2NrZWRfYWRtaW4sXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzo4OTpcdFx0LmRvaXRcdFx0PSBwc3BfbmxfZGV2X3NldF9kb2l0LFxubmV0L3BzcC9wc3AtbmwtZ2VuLmM6OTA6XHRcdC5wb3N0X2RvaXRcdD0gcHNwX2RldmljZV91bmxvY2ssXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy05MS1cdFx0LnBvbGljeVx0XHQ9IHBzcF9kZXZfc2V0X25sX3BvbGljeSxcbi0tXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy05Ni1cdFx0LmNtZFx0XHQ9IFBTUF9DTURfS0VZX1JPVEFURSxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjk3Olx0XHQucHJlX2RvaXRcdD0gcHNwX2RldmljZV9nZXRfbG9ja2VkX2FkbWluLFxubmV0L3BzcC9wc3AtbmwtZ2VuLmM6OTg6XHRcdC5kb2l0XHRcdD0gcHNwX25sX2tleV9yb3RhdGVfZG9pdCxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjk5Olx0XHQucG9zdF9kb2l0XHQ9IHBzcF9kZXZpY2VfdW5sb2NrLFxubmV0L3BzcC9wc3AtbmwtZ2VuLmMtMTAwLVx0XHQucG9saWN5XHRcdD0gcHNwX2tleV9yb3RhdGVfbmxfcG9saWN5LFxuLS1cbm5ldC9wc3AvcHNwLW5sLWdlbi5jLTEwNS1cdFx0LmNtZFx0XHQ9IFBTUF9DTURfUlhfQVNTT0MsXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxMDY6XHRcdC5wcmVfZG9pdFx0PSBwc3BfYXNzb2NfZGV2aWNlX2dldF9sb2NrZWQsXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxMDc6XHRcdC5kb2l0XHRcdD0gcHNwX25sX3J4X2Fzc29jX2RvaXQsXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxMDg6XHRcdC5wb3N0X2RvaXRcdD0gcHNwX2RldmljZV91bmxvY2ssXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy0xMDktXHRcdC5wb2xpY3lcdFx0PSBwc3BfcnhfYXNzb2NfbmxfcG9saWN5LFxuLS1cbm5ldC9wc3AvcHNwLW5sLWdlbi5jLTExNC1cdFx0LmNtZFx0XHQ9IFBTUF9DTURfVFhfQVNTT0MsXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxMTU6XHRcdC5wcmVfZG9pdFx0PSBwc3BfYXNzb2NfZGV2aWNlX2dldF9sb2NrZWQsXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxMTY6XHRcdC5kb2l0XHRcdD0gcHNwX25sX3R4X2Fzc29jX2RvaXQsXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxMTc6XHRcdC5wb3N0X2RvaXRcdD0gcHNwX2RldmljZV91bmxvY2ssXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy0xMTgtXHRcdC5wb2xpY3lcdFx0PSBwc3BfdHhfYXNzb2NfbmxfcG9saWN5LFxuLS1cbm5ldC9wc3AvcHNwLW5sLWdlbi5jLTEyMy1cdFx0LmNtZFx0XHQ9IFBTUF9DTURfR0VUX1NUQVRTLFxubmV0L3BzcC9wc3AtbmwtZ2VuLmM6MTI0Olx0XHQucHJlX2RvaXRcdD0gcHNwX2RldmljZV9nZXRfbG9ja2VkLFxubmV0L3BzcC9wc3AtbmwtZ2VuLmM6MTI1Olx0XHQuZG9pdFx0XHQ9IHBzcF9ubF9nZXRfc3RhdHNfZG9pdCxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjEyNjpcdFx0LnBvc3RfZG9pdFx0PSBwc3BfZGV2aWNlX3VubG9jayxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jLTEyNy1cdFx0LnBvbGljeVx0XHQ9IHBzcF9nZXRfc3RhdHNfbmxfcG9saWN5LFxuLS1cbm5ldC9wc3AvcHNwLW5sLWdlbi5jLTEzNy1cdFx0LmNtZFx0XHQ9IFBTUF9DTURfREVWX0FTU09DLFxubmV0L3BzcC9wc3AtbmwtZ2VuLmM6MTM4Olx0XHQucHJlX2RvaXRcdD0gcHNwX2RldmljZV9nZXRfbG9ja2VkX2Rldl9hc3NvYyxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjEzOTpcdFx0LmRvaXRcdFx0PSBwc3BfbmxfZGV2X2Fzc29jX2RvaXQsXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxNDA6XHRcdC5wb3N0X2RvaXRcdD0gcHNwX2RldmljZV91bmxvY2ssXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy0xNDEtXHRcdC5wb2xpY3lcdFx0PSBwc3BfZGV2X2Fzc29jX25sX3BvbGljeSxcbi0tXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy0xNDYtXHRcdC5jbWRcdFx0PSBQU1BfQ01EX0RFVl9ESVNBU1NPQyxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjE0NzpcdFx0LnByZV9kb2l0XHQ9IHBzcF9kZXZpY2VfZ2V0X2xvY2tlZCxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjE0ODpcdFx0LmRvaXRcdFx0PSBwc3BfbmxfZGV2X2Rpc2Fzc29jX2RvaXQsXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxNDk6XHRcdC5wb3N0X2RvaXRcdD0gcHNwX2RldmljZV91bmxvY2ssXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy0xNTAtXHRcdC5wb2xpY3lcdFx0PSBwc3BfZGV2X2Rpc2Fzc29jX25sX3BvbGljeSxcbi0tXG5uZXQvcHNwL3BzcC1ubC1nZW4uaD0yOD1wc3BfZGV2aWNlX3VubG9jayhjb25zdCBzdHJ1Y3QgZ2VubF9zcGxpdF9vcHMgKm9wcywgc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5uZXQvcHNwL3BzcC1ubC1nZW4uaC0zMC1cbm5ldC9wc3AvcHNwLW5sLWdlbi5oOjMxOmludCBwc3BfbmxfZGV2X2dldF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xubmV0L3BzcC9wc3AtbmwtZ2VuLmgtMzItaW50IHBzcF9ubF9kZXZfZ2V0X2R1bXBpdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0bGlua19jYWxsYmFjayAqY2IpO1xubmV0L3BzcC9wc3AtbmwtZ2VuLmg6MzM6aW50IHBzcF9ubF9kZXZfc2V0X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XG5uZXQvcHNwL3BzcC1ubC1nZW4uaDozNDppbnQgcHNwX25sX2tleV9yb3RhdGVfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbm5ldC9wc3AvcHNwLW5sLWdlbi5oOjM1OmludCBwc3BfbmxfcnhfYXNzb2NfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbm5ldC9wc3AvcHNwLW5sLWdlbi5oOjM2OmludCBwc3BfbmxfdHhfYXNzb2NfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbm5ldC9wc3AvcHNwLW5sLWdlbi5oOjM3OmludCBwc3BfbmxfZ2V0X3N0YXRzX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XG5uZXQvcHNwL3BzcC1ubC1nZW4uaC0zOC1pbnQgcHNwX25sX2dldF9zdGF0c19kdW1waXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sgKmNiKTtcbm5ldC9wc3AvcHNwLW5sLWdlbi5oOjM5OmludCBwc3BfbmxfZGV2X2Fzc29jX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XG5uZXQvcHNwL3BzcC1ubC1nZW4uaDo0MDppbnQgcHNwX25sX2Rldl9kaXNhc3NvY19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xubmV0L3BzcC9wc3AtbmwtZ2VuLmgtNDEtXG4tLVxubmV0L3BzcC9wc3BfbmwuYz0zNTA9dm9pZCBwc3Bfbmxfbm90aWZ5X2RldihzdHJ1Y3QgcHNwX2RldiAqcHNkLCB1MzIgY21kKVxuLS1cbm5ldC9wc3AvcHNwX25sLmMtMzU1LVxubmV0L3BzcC9wc3BfbmwuYzozNTY6aW50IHBzcF9ubF9kZXZfZ2V0X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnJlcSwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbm5ldC9wc3AvcHNwX25sLmMtMzU3LXtcbi0tXG5uZXQvcHNwL3BzcF9ubC5jPTM4Nz1pbnQgcHNwX25sX2Rldl9nZXRfZHVtcGl0KHN0cnVjdCBza19idWZmICpyc3AsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYilcbi0tXG5uZXQvcHNwL3BzcF9ubC5jLTQwNC1cbm5ldC9wc3AvcHNwX25sLmM6NDA1OmludCBwc3BfbmxfZGV2X3NldF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5uZXQvcHNwL3BzcF9ubC5jLTQwNi17XG4tLVxubmV0L3BzcC9wc3BfbmwuYy00NDYtXG5uZXQvcHNwL3BzcF9ubC5jOjQ0NzppbnQgcHNwX25sX2tleV9yb3RhdGVfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxubmV0L3BzcC9wc3BfbmwuYy00NDgte1xuLS1cbm5ldC9wc3AvcHNwX25sLmMtNDk4LVxubmV0L3BzcC9wc3BfbmwuYzo0OTk6aW50IHBzcF9ubF9kZXZfYXNzb2NfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxubmV0L3BzcC9wc3BfbmwuYy01MDAte1xuLS1cbm5ldC9wc3AvcHNwX25sLmMtNTgzLVxubmV0L3BzcC9wc3BfbmwuYzo1ODQ6aW50IHBzcF9ubF9kZXZfZGlzYXNzb2NfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxubmV0L3BzcC9wc3BfbmwuYy01ODUte1xuLS1cbm5ldC9wc3AvcHNwX25sLmM9NzUwPXBzcF9ubF9wdXRfa2V5KHN0cnVjdCBza19idWZmICpza2IsIHUzMiBhdHRyLCB1MzIgdmVyc2lvbixcbi0tXG5uZXQvcHNwL3BzcF9ubC5jLTc2OC1cbm5ldC9wc3AvcHNwX25sLmM6NzY5OmludCBwc3BfbmxfcnhfYXNzb2NfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxubmV0L3BzcC9wc3BfbmwuYy03NzAte1xuLS1cbm5ldC9wc3AvcHNwX25sLmMtODI0LVxubmV0L3BzcC9wc3BfbmwuYzo4MjU6aW50IHBzcF9ubF90eF9hc3NvY19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5uZXQvcHNwL3BzcF9ubC5jLTgyNi17XG4tLVxubmV0L3BzcC9wc3BfbmwuYz04NzA9cHNwX25sX3N0YXRzX2ZpbGwoc3RydWN0IHBzcF9kZXYgKnBzZCwgc3RydWN0IHNrX2J1ZmYgKnJzcCxcbi0tXG5uZXQvcHNwL3BzcF9ubC5jLTkxMC1cbm5ldC9wc3AvcHNwX25sLmM6OTExOmludCBwc3BfbmxfZ2V0X3N0YXRzX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbm5ldC9wc3AvcHNwX25sLmMtOTEyLXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMjI6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjY1OTYKCQkJCQkJCW91dHB1dDogMjI0CgkJCQkJCQl0aG91Z2h0czogMTM0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2Ugc3ltYm9scyBhbmQgdGhlIGludGVuZGVkIGFwcHJvYWNoOgoKKipBbmFseXNpcyBvZiBGb2N1cyBTeW1ib2xzIGFuZCBUb29sIFNlbGVjdGlvbioqCgpSaWdodCwgSSYjMzk7dmUgZ290IGEgc29saWQgY29sbGVjdGlvbiBvZiBmb2N1cyBzeW1ib2xzIGhlcmUuIExldCYjMzk7cyBzZWUsIHdlIGhhdmUgYSBzZXQgb2YgYHBzcF9ubF8qX2RvaXRgIGZ1bmN0aW9ucy4gVGhlc2UgbGlrZWx5IHJlcHJlc2VudCBOZXRsaW5rIG9wZXJhdGlvbnMgZm9yIGEgcGFydGljdWxhciBQU1AgKGxpa2VseSBhICYjMzQ7UHJvdGVjdGVkIFNlcnZpY2UgUGxhdGZvcm0mIzM0OyBvciBzb21ldGhpbmcgc2ltaWxhciwganVkZ2luZyBieSB0aGUgcHJlZml4KSwgY292ZXJpbmcgZ2V0dGluZywgc2V0dGluZywgcm90YXRpbmcga2V5cywgYW5kIGhhbmRsaW5nIGFzc29jaWF0aW9uL2Rpc2Fzc29jaWF0aW9uLCBib3RoIGZvciByZWNlaXZlIGFuZCB0cmFuc21pdCBzaWRlcywgYWxvbmcgd2l0aCBzdGF0aXN0aWNhbCBkYXRhIGFuZCBjcmVhdGlvbi9kZWxldGlvbi4KClNwZWNpZmljYWxseSwgSSBzZWUgYSBjbGVhciBncm91cCB0aGF0JiMzOTtzIGFzc29jaWF0ZWQgd2l0aCBkZXZpY2UgbWFuYWdlbWVudCBhbmQgYXNzb2NpYXRpb24vZGlzYXNzb2NpYXRpb24uIFRoZSB1c2Ugb2YgJiMzNDtkb2l0JiMzNDsgc3VnZ2VzdHMgdGhlc2UgYXJlIHRoZSBjb3JlIGZ1bmN0aW9ucyB0aGF0IGhhbmRsZSBzcGVjaWZpYyBhY3Rpb25zIG9yIHJlcXVlc3RzLiBUaGVuIHRoZXJlJiMzOTtzIGBwc3BfZGV2X2NyZWF0ZWAsIHdoaWNoIGxvZ2ljYWxseSBmaXRzIGludG8gZGV2aWNlIGxpZmVjeWNsZSBvcGVyYXRpb25zLiBJdCYjMzk7cyBhIGNvbXByZWhlbnNpdmUgc2V0LCBjb3ZlcmluZyBhbGwgdGhlIGJhc2VzIEkmIzM5O2QgZXhwZWN0IGZvciBpbnRlcmFjdGlvbiB3aXRoIGEgbmV0d29yayBkZXZpY2UgdGhyb3VnaCBOZXRsaW5rLgoKR2l2ZW4gdGhpcyBsaXN0LCBhbmQgdGhlIG5hdHVyZSBvZiB0aGVzZSBzeW1ib2xzLCB0aGUgJiMzNDtzZXQtcmVzdWx0cyYjMzQ7IHRvb2wgaXMgZGVmaW5pdGVseSB0aGUgcmlnaHQgY2hvaWNlLiBJdCYjMzk7cyBkZXNpZ25lZCBmb3IgYW5hbHl6aW5nIGZ1bmN0aW9uIGNhbGwgc2VxdWVuY2VzLiBJJiMzOTttIGdvaW5nIHRvIHN0YXJ0IGJ5IHJ1bm5pbmcgdGhvc2Ugc3ltYm9scyB0aHJvdWdoIHRoZSAmIzM0O3NldC1yZXN1bHRzJiMzNDsgdG9vbCBhbmQgZXhhbWluZSB0aGUgcmVzdWx0cyBpbiBkZXRhaWwuIFRoaXMgd2lsbCBhbGxvdyBtZSB0byB0cmFjayB0aGUgZXhlY3V0aW9uIGZsb3csIGlkZW50aWZ5IHdoaWNoIGZ1bmN0aW9ucyBjYWxsIGVhY2ggb3RoZXIsIGFuZCBzZWUgaG93IHRoZSB2YXJpb3VzIE5ldGxpbmsgb3BlcmF0aW9ucyBpbnRlcnJlbGF0ZSB3aXRoaW4gdGhlIHN5c3RlbS4gSXQgc2hvdWxkIHJldmVhbCB0aGUgY3JpdGljYWwgcGF0aHMgYW5kIGRlcGVuZGVuY2llcyBmb3IgZGV2aWNlIG1hbmFnZW1lbnQuIEkgc2hvdWxkIGJlIGFibGUgdG8gZ2V0IGEgbXVjaCBjbGVhcmVyIHBpY3R1cmUgb2YgdGhlIG92ZXJhbGwgYXJjaGl0ZWN0dXJlIHdpdGggdGhhdCBhcHByb2FjaC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMjI6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lORVRfUFNQJiMzNDssCiAgICAmIzM0O05FVERFVlNJTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3BzcF9ubF9kZXZfZ2V0X2RvaXQmIzM0OywKICAgICYjMzQ7cHNwX25sX2Rldl9zZXRfZG9pdCYjMzQ7LAogICAgJiMzNDtwc3Bfbmxfa2V5X3JvdGF0ZV9kb2l0JiMzNDssCiAgICAmIzM0O3BzcF9ubF9yeF9hc3NvY19kb2l0JiMzNDssCiAgICAmIzM0O3BzcF9ubF90eF9hc3NvY19kb2l0JiMzNDssCiAgICAmIzM0O3BzcF9ubF9nZXRfc3RhdHNfZG9pdCYjMzQ7LAogICAgJiMzNDtwc3BfbmxfZGV2X2Fzc29jX2RvaXQmIzM0OywKICAgICYjMzQ7cHNwX25sX2Rldl9kaXNhc3NvY19kb2l0JiMzNDssCiAgICAmIzM0O3BzcF9kZXZfY3JlYXRlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gaW4gYHBzcF9ubF9tdWx0aWNhc3RfcGVyX25zYCB3aGVuIGEgZGV2aWNlIGNoYW5nZXMgbmV0bnMgaW4gcGFyYWxsZWwuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIGxvZ2ljIGZvciB0aGUgUFNQIChQU1AgU2VjdXJpdHkgUHJvdG9jb2wpIG5ldGxpbmsgaW50ZXJmYWNlLiBUaGUgY29kZSBpcyByZWFjaGFibGUgdmlhIG5ldGxpbmsgY29tbWFuZHMgYW5kIGNhbiBiZSB0ZXN0ZWQgdXNpbmcgdGhlIGBuZXRkZXZzaW1gIGRyaXZlciB3aGljaCBzdXBwb3J0cyBQU1AuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lORVRfUFNQJiMzNDssCiAgICAmIzM0O05FVERFVlNJTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3BzcF9ubF9kZXZfZ2V0X2RvaXQmIzM0OywKICAgICYjMzQ7cHNwX25sX2Rldl9zZXRfZG9pdCYjMzQ7LAogICAgJiMzNDtwc3Bfbmxfa2V5X3JvdGF0ZV9kb2l0JiMzNDssCiAgICAmIzM0O3BzcF9ubF9yeF9hc3NvY19kb2l0JiMzNDssCiAgICAmIzM0O3BzcF9ubF90eF9hc3NvY19kb2l0JiMzNDssCiAgICAmIzM0O3BzcF9ubF9nZXRfc3RhdHNfZG9pdCYjMzQ7LAogICAgJiMzNDtwc3BfbmxfZGV2X2Fzc29jX2RvaXQmIzM0OywKICAgICYjMzQ7cHNwX25sX2Rldl9kaXNhc3NvY19kb2l0JiMzNDssCiAgICAmIzM0O3BzcF9kZXZfY3JlYXRlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gaW4gYHBzcF9ubF9tdWx0aWNhc3RfcGVyX25zYCB3aGVuIGEgZGV2aWNlIGNoYW5nZXMgbmV0bnMgaW4gcGFyYWxsZWwuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIGxvZ2ljIGZvciB0aGUgUFNQIChQU1AgU2VjdXJpdHkgUHJvdG9jb2wpIG5ldGxpbmsgaW50ZXJmYWNlLiBUaGUgY29kZSBpcyByZWFjaGFibGUgdmlhIG5ldGxpbmsgY29tbWFuZHMgYW5kIGNhbiBiZSB0ZXN0ZWQgdXNpbmcgdGhlIGBuZXRkZXZzaW1gIGRyaXZlciB3aGljaCBzdXBwb3J0cyBQU1AuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMjo0NToyNS44OTI4NDY2MjVaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2OTQ4MzgzNjMxNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJTkVUX1BTUFwiLFxuICAgIFwiTkVUREVWU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicHNwX25sX2Rldl9nZXRfZG9pdFwiLFxuICAgIFwicHNwX25sX2Rldl9zZXRfZG9pdFwiLFxuICAgIFwicHNwX25sX2tleV9yb3RhdGVfZG9pdFwiLFxuICAgIFwicHNwX25sX3J4X2Fzc29jX2RvaXRcIixcbiAgICBcInBzcF9ubF90eF9hc3NvY19kb2l0XCIsXG4gICAgXCJwc3BfbmxfZ2V0X3N0YXRzX2RvaXRcIixcbiAgICBcInBzcF9ubF9kZXZfYXNzb2NfZG9pdFwiLFxuICAgIFwicHNwX25sX2Rldl9kaXNhc3NvY19kb2l0XCIsXG4gICAgXCJwc3BfZGV2X2NyZWF0ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gaW4gYHBzcF9ubF9tdWx0aWNhc3RfcGVyX25zYCB3aGVuIGEgZGV2aWNlIGNoYW5nZXMgbmV0bnMgaW4gcGFyYWxsZWwuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIGxvZ2ljIGZvciB0aGUgUFNQIChQU1AgU2VjdXJpdHkgUHJvdG9jb2wpIG5ldGxpbmsgaW50ZXJmYWNlLiBUaGUgY29kZSBpcyByZWFjaGFibGUgdmlhIG5ldGxpbmsgY29tbWFuZHMgYW5kIGNhbiBiZSB0ZXN0ZWQgdXNpbmcgdGhlIGBuZXRkZXZzaW1gIGRyaXZlciB3aGljaCBzdXBwb3J0cyBQU1AuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIyOjQ1OjI1Ljg5Mjg1NDE4NVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjgwMzg1NTkzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgOWViZjI4MjE3MjNlNzAxMjUwNTJkZjI1ZmFjOTRhMzc0M2E0ODMzOFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEp1bCAyNyAyMjo0NToyMyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9uZXQvcHNwL3BzcF9ubC5jIGIvbmV0L3BzcC9wc3BfbmwuY1xcbmluZGV4IDk2MTBkOGM0NTZmZjU1Li40M2IwNjYzNTNjNjViMiAxMDA2NDRcXG4tLS0gYS9uZXQvcHNwL3BzcF9ubC5jXFxuKysrIGIvbmV0L3BzcC9wc3BfbmwuY1xcbkBAIC02Miw3ICs2MiwxNCBAQCBwc3BfbmxfbXVsdGljYXN0X3Blcl9ucyhzdHJ1Y3QgcHNwX2RldiAqcHNkLCB1bnNpZ25lZCBpbnQgZ3JvdXAsXFxuIFxcdHN0cnVjdCBuZXQgKm1haW5fbmV0O1xcbiBcXHRzdHJ1Y3Qgc2tfYnVmZiAqbnRmO1xcbiBcXG4tXFx0bWFpbl9uZXQgPSBkZXZfbmV0KHBzZC1cXHUwMDNlbWFpbl9uZXRkZXYpO1xcbitcXHQvKiBkZXZpY2UgbWF5IGJlIGNoYW5naW5nIG5ldG5zIGluIHBhcmFsbGVsICovXFxuK1xcdHJjdV9yZWFkX2xvY2soKTtcXG4rXFx0bWFpbl9uZXQgPSBtYXliZV9nZXRfbmV0KGRldl9uZXRfcmN1KHBzZC1cXHUwMDNlbWFpbl9uZXRkZXYpKTtcXG4rXFx0cmN1X3JlYWRfdW5sb2NrKCk7XFxuK1xcbitcXHRpZiAoIW1haW5fbmV0KVxcbitcXHRcXHRyZXR1cm47XFxuK1xcbiBcXHR4YV9pbml0KFxcdTAwMjZzZW50X25ldHMpO1xcbiBcXG4gXFx0bGlzdF9mb3JfZWFjaF9lbnRyeShlbnRyeSwgXFx1MDAyNnBzZC1cXHUwMDNlYXNzb2NfZGV2X2xpc3QsIGRldl9saXN0KSB7XFxuQEAgLTg4LDEwICs5NSwxMCBAQCBwc3BfbmxfbXVsdGljYXN0X3Blcl9ucyhzdHJ1Y3QgcHNwX2RldiAqcHNkLCB1bnNpZ25lZCBpbnQgZ3JvdXAsXFxuIFxcbiBcXHQvKiBTZW5kIHRvIG1haW4gZGV2aWNlIG5ldG5zICovXFxuIFxcdG50ZiA9IGJ1aWxkX250Zihwc2QsIG1haW5fbmV0LCBjdHgpO1xcbi1cXHRpZiAoIW50ZilcXG4tXFx0XFx0cmV0dXJuO1xcbi1cXHRnZW5sbXNnX211bHRpY2FzdF9uZXRucyhcXHUwMDI2cHNwX25sX2ZhbWlseSwgbWFpbl9uZXQsIG50ZiwgMCwgZ3JvdXAsXFxuLVxcdFxcdFxcdFxcdEdGUF9LRVJORUwpO1xcbitcXHRpZiAobnRmKVxcbitcXHRcXHRnZW5sbXNnX211bHRpY2FzdF9uZXRucyhcXHUwMDI2cHNwX25sX2ZhbWlseSwgbWFpbl9uZXQsIG50ZiwgMCwgZ3JvdXAsXFxuK1xcdFxcdFxcdFxcdFxcdEdGUF9LRVJORUwpO1xcbitcXHRwdXRfbmV0KG1haW5fbmV0KTtcXG4gfVxcbiBcXG4gc3RhdGljIHN0cnVjdCBza19idWZmICpwc3BfbmxfY2xvbmVfbnRmKHN0cnVjdCBwc3BfZGV2ICpwc2QsIHN0cnVjdCBuZXQgKm5ldCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjI6NDU6MjYuNTc0MDg3ODI4WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6Njg4MDI1ODQxMDIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiSU5FVF9QU1BcIixcbiAgICBcIk5FVERFVlNJTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInBzcF9ubF9kZXZfZ2V0X2RvaXRcIixcbiAgICBcInBzcF9ubF9kZXZfc2V0X2RvaXRcIixcbiAgICBcInBzcF9ubF9rZXlfcm90YXRlX2RvaXRcIixcbiAgICBcInBzcF9ubF9yeF9hc3NvY19kb2l0XCIsXG4gICAgXCJwc3BfbmxfdHhfYXNzb2NfZG9pdFwiLFxuICAgIFwicHNwX25sX2dldF9zdGF0c19kb2l0XCIsXG4gICAgXCJwc3BfbmxfZGV2X2Fzc29jX2RvaXRcIixcbiAgICBcInBzcF9ubF9kZXZfZGlzYXNzb2NfZG9pdFwiLFxuICAgIFwicHNwX2Rldl9jcmVhdGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHJhY2UgY29uZGl0aW9uIGluIGBwc3BfbmxfbXVsdGljYXN0X3Blcl9uc2Agd2hlbiBhIGRldmljZSBjaGFuZ2VzIG5ldG5zIGluIHBhcmFsbGVsLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29yZSBsb2dpYyBmb3IgdGhlIFBTUCAoUFNQIFNlY3VyaXR5IFByb3RvY29sKSBuZXRsaW5rIGludGVyZmFjZS4gVGhlIGNvZGUgaXMgcmVhY2hhYmxlIHZpYSBuZXRsaW5rIGNvbW1hbmRzIGFuZCBjYW4gYmUgdGVzdGVkIHVzaW5nIHRoZSBgbmV0ZGV2c2ltYCBkcml2ZXIgd2hpY2ggc3VwcG9ydHMgUFNQLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA5ZWJmMjgyMTcyM2U3MDEyNTA1MmRmMjVmYWM5NGEzNzQzYTQ4MzM4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgMjcgMjI6NDU6MjMgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvcHNwL3BzcF9ubC5jIGIvbmV0L3BzcC9wc3BfbmwuY1xuaW5kZXggOTYxMGQ4YzQ1NmZmNTUuLjQzYjA2NjM1M2M2NWIyIDEwMDY0NFxuLS0tIGEvbmV0L3BzcC9wc3BfbmwuY1xuKysrIGIvbmV0L3BzcC9wc3BfbmwuY1xuQEAgLTYyLDcgKzYyLDE0IEBAIHBzcF9ubF9tdWx0aWNhc3RfcGVyX25zKHN0cnVjdCBwc3BfZGV2ICpwc2QsIHVuc2lnbmVkIGludCBncm91cCxcbiBcdHN0cnVjdCBuZXQgKm1haW5fbmV0O1xuIFx0c3RydWN0IHNrX2J1ZmYgKm50ZjtcbiBcbi1cdG1haW5fbmV0ID0gZGV2X25ldChwc2QtXHUwMDNlbWFpbl9uZXRkZXYpO1xuK1x0LyogZGV2aWNlIG1heSBiZSBjaGFuZ2luZyBuZXRucyBpbiBwYXJhbGxlbCAqL1xuK1x0cmN1X3JlYWRfbG9jaygpO1xuK1x0bWFpbl9uZXQgPSBtYXliZV9nZXRfbmV0KGRldl9uZXRfcmN1KHBzZC1cdTAwM2VtYWluX25ldGRldikpO1xuK1x0cmN1X3JlYWRfdW5sb2NrKCk7XG4rXG4rXHRpZiAoIW1haW5fbmV0KVxuK1x0XHRyZXR1cm47XG4rXG4gXHR4YV9pbml0KFx1MDAyNnNlbnRfbmV0cyk7XG4gXG4gXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGVudHJ5LCBcdTAwMjZwc2QtXHUwMDNlYXNzb2NfZGV2X2xpc3QsIGRldl9saXN0KSB7XG5AQCAtODgsMTAgKzk1LDEwIEBAIHBzcF9ubF9tdWx0aWNhc3RfcGVyX25zKHN0cnVjdCBwc3BfZGV2ICpwc2QsIHVuc2lnbmVkIGludCBncm91cCxcbiBcbiBcdC8qIFNlbmQgdG8gbWFpbiBkZXZpY2UgbmV0bnMgKi9cbiBcdG50ZiA9IGJ1aWxkX250Zihwc2QsIG1haW5fbmV0LCBjdHgpO1xuLVx0aWYgKCFudGYpXG4tXHRcdHJldHVybjtcbi1cdGdlbmxtc2dfbXVsdGljYXN0X25ldG5zKFx1MDAyNnBzcF9ubF9mYW1pbHksIG1haW5fbmV0LCBudGYsIDAsIGdyb3VwLFxuLVx0XHRcdFx0R0ZQX0tFUk5FTCk7XG4rXHRpZiAobnRmKVxuK1x0XHRnZW5sbXNnX211bHRpY2FzdF9uZXRucyhcdTAwMjZwc3BfbmxfZmFtaWx5LCBtYWluX25ldCwgbnRmLCAwLCBncm91cCxcbitcdFx0XHRcdFx0R0ZQX0tFUk5FTCk7XG4rXHRwdXRfbmV0KG1haW5fbmV0KTtcbiB9XG4gXG4gc3RhdGljIHN0cnVjdCBza19idWZmICpwc3BfbmxfY2xvbmVfbnRmKHN0cnVjdCBwc3BfZGV2ICpwc2QsIHN0cnVjdCBuZXQgKm5ldCxcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIyOjQ1OjI2LjU3NDA4OTQ5OFoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUzNzU2OTM2MTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgTmV0bGluayBQYXRjaCBmb3IgUFNQKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCBpbiBgbmV0L3BzcC9wc3BfbmwuY2AuIEl0IHNlZW1zIGxpa2UgaXQncyB0b3VjaGluZyBgcHNwX25sX211bHRpY2FzdF9wZXJfbnNgLCB3aGljaCBpcyBpbnRlcmVzdGluZy4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBhcHBlYXJzIHRvIGJlIGhvdyBgbWFpbl9uZXRgIGlzIGhhbmRsZWQuIFByZXZpb3VzbHksIGl0IHdhcyBhIHN0cmFpZ2h0Zm9yd2FyZCBgZGV2X25ldChwc2QtXHUwMDNlbWFpbl9uZXRkZXYpYCwgYnV0IG5vdyB0aGV5J3JlIHVzaW5nIGByY3VfcmVhZF9sb2NrKClgIGFuZCBgbWF5YmVfZ2V0X25ldCgpYCBpbiBhIGNyaXRpY2FsIHNlY3Rpb24sIGFuZCB0aGVuIGBwdXRfbmV0KG1haW5fbmV0KWAgYXQgdGhlIGVuZC4gVGhhdCBzY3JlYW1zIHJhY2UgY29uZGl0aW9uIGZpeCDigJMgc3BlY2lmaWNhbGx5LCBhIGRldmljZSBjaGFuZ2luZyBuZXR3b3JrIG5hbWVzcGFjZXMgaW4gcGFyYWxsZWwuIEl0IG1ha2VzIHRvdGFsIHNlbnNlOyB0aGlzIGludHJvZHVjZXMgYSBwb3RlbnRpYWwgaXNzdWUgaWYgdGhlIG5ldG5zIGNoYW5nZXMgYmV0d2VlbiB0aGUgZGV2aWNlIGxvb2t1cCBhbmQgdGhlIGFjdHVhbCBuZXRsaW5rIG11bHRpY2FzdC4gVGhlIFJDVSBwcm90ZWN0aW9uIGVuc3VyZXMgdGhhdCB0aGUgbmV0d29yayBuYW1lc3BhY2UgZG9lc24ndCBkaXNhcHBlYXIgYmVmb3JlIHdlIGF0dGVtcHQgdGhlIG9wZXJhdGlvbiwgYW5kIGBtYXliZV9nZXRfbmV0YCBhbmQgYHB1dF9uZXRgIG1hbmFnZW1lbnQgYWRkcyBwcm9wZXIgcmVmZXJlbmNlIGNvdW50aW5nIHRvIG1hbmFnZSB0aGUgbGlmZWN5Y2xlIG9mIHRoZSBuZXR3b3JrIG5hbWVzcGFjZSBvYmplY3QuIFRoZSBhZGRlZCBgaWZgIHN0YXRlbWVudCB0byBjaGVjayBmb3IgYSB2YWxpZCBgbnRmYCBiZWZvcmUgbXVsdGljYXN0IGlzIGp1c3QgZ29vZCBkZWZlbnNpdmUgY29kaW5nLlxuXG5Ob3csIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgYHBzcGAgaXMgYWxsIGFib3V0LiBUaGlzIGNvbnRleHQgaXMgZXNzZW50aWFsLiBJJ2xsIG5lZWQgdG8gbG9vayB1cCBgcHNwX25sX211bHRpY2FzdF9wZXJfbnNgIGFuZCBkZWx2ZSBpbnRvIGBwc3BfbmwuY2AgdG8gc2VlIGhvdyBpdCBmaXRzIGludG8gdGhlIGJyb2FkZXIgcGljdHVyZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCB0aGlzIFBTUCBtb2R1bGUgZG9lcyBhbmQgd2hhdCBjb25maWd1cmF0aW9uIGl0IHJlcXVpcmVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzQ2LCJPdXRwdXRUb2tlbnMiOjI0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzU1LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjI6NDU6MzEuOTQ5Nzg2MjAzWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM0MDgyMDgyNjQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicHNwX25sX211bHRpY2FzdF9wZXJfbnNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3BzcC9wc3BfbmwuYz0zND1zdGF0aWMgaW50IHBzcF9ubF9yZXBseV9zZW5kKHN0cnVjdCBza19idWZmICpyc3AsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuLS1cXG5uZXQvcHNwL3BzcF9ubC5jLTQyLS8qKlxcbm5ldC9wc3AvcHNwX25sLmM6NDM6ICogcHNwX25sX211bHRpY2FzdF9wZXJfbnMoKSAtIG11bHRpY2FzdCBhIG5vdGlmaWNhdGlvbiB0byBlYWNoIHVuaXF1ZSBuZXRuc1xcbm5ldC9wc3AvcHNwX25sLmMtNDQtICogQHBzZDogUFNQIGRldmljZSAobXVzdCBiZSBsb2NrZWQpXFxuLS1cXG5uZXQvcHNwL3BzcF9ubC5jPTUzPXN0YXRpYyB2b2lkXFxubmV0L3BzcC9wc3BfbmwuYzo1NDpwc3BfbmxfbXVsdGljYXN0X3Blcl9ucyhzdHJ1Y3QgcHNwX2RldiAqcHNkLCB1bnNpZ25lZCBpbnQgZ3JvdXAsXFxubmV0L3BzcC9wc3BfbmwuYy01NS1cXHRcXHRcXHRzdHJ1Y3Qgc2tfYnVmZiAqKCpidWlsZF9udGYpKHN0cnVjdCBwc3BfZGV2ICosXFxuLS1cXG5uZXQvcHNwL3BzcF9ubC5jPTExMD1zdGF0aWMgdm9pZCBwc3BfbmxfbXVsdGljYXN0X2FsbF9ucyhzdHJ1Y3QgcHNwX2RldiAqcHNkLCBzdHJ1Y3Qgc2tfYnVmZiAqbnRmLFxcbi0tXFxubmV0L3BzcC9wc3BfbmwuYy0xMTIte1xcbm5ldC9wc3AvcHNwX25sLmM6MTEzOlxcdHBzcF9ubF9tdWx0aWNhc3RfcGVyX25zKHBzZCwgZ3JvdXAsIHBzcF9ubF9jbG9uZV9udGYsIG50Zik7XFxubmV0L3BzcC9wc3BfbmwuYy0xMTQtXFx0bmxtc2dfY29uc3VtZShudGYpO1xcbi0tXFxubmV0L3BzcC9wc3BfbmwuYz0zNTA9dm9pZCBwc3Bfbmxfbm90aWZ5X2RldihzdHJ1Y3QgcHNwX2RldiAqcHNkLCB1MzIgY21kKVxcbm5ldC9wc3AvcHNwX25sLmMtMzUxLXtcXG5uZXQvcHNwL3BzcF9ubC5jOjM1MjpcXHRwc3BfbmxfbXVsdGljYXN0X3Blcl9ucyhwc2QsIFBTUF9OTEdSUF9NR01ULFxcbm5ldC9wc3AvcHNwX25sLmMtMzUzLVxcdFxcdFxcdFxcdHBzcF9ubF9idWlsZF9kZXZfbnRmLCBcXHUwMDI2Y21kKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjI6NDU6MzUuMzU4MDAyNjE4WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjkwMjIwNDQ4NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgZGlzdGlsbGVkOlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIEFjdGl2YXRpb24gb2YgYG5ldC9wc3AvYCoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoaWNoIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciBlbmFibGluZyBgbmV0L3BzcC9gLiBUaGlzIGlzIGEgYml0IG9mIGEgYnJlYWRjcnVtYiB0cmFpbCBJIG5lZWQgdG8gZm9sbG93LiBJJ20gYXNzdW1pbmcgaXQncyBwcm9iYWJseSBzb21ld2hlcmUgaW4gdGhlIGtlcm5lbCBjb25maWd1cmF0aW9uLiBJJ2xsIG5lZWQgdG8ga25vdyB3aGljaCBzZXR0aW5ncyB0cmlnZ2VyIGl0cyBpbmNsdXNpb24gZHVyaW5nIHRoZSBidWlsZCBwcm9jZXNzLiBJJ2xsIHByb2JhYmx5IGhhdmUgdG8gc3RhcnQgYnkgc2VhcmNoaW5nIHRocm91Z2ggdGhlIGAuY29uZmlnYCBmaWxlcyBvciB0aGUgS2NvbmZpZyBmaWxlcyByZWxhdGVkIHRvIG5ldHdvcmtpbmcuIEknbGwgYmUgbG9va2luZyBmb3Igc29tZXRoaW5nIHRoYXQgZWl0aGVyIGRpcmVjdGx5IG1lbnRpb25zIGBwc3BgIG9yIGluZGlyZWN0bHkgZW5hYmxlcyBpdCB0aHJvdWdoIHNvbWUgZGVwZW5kZW5jeSBjaGFpbi4gSSBleHBlY3QgdGhpcyB3aWxsIGJlIGEgcmVsYXRpdmVseSBzdHJhaWdodGZvcndhcmQgZmluZCwgZ2l2ZW4gdGhhdCB0aGlzIGlzIGEgZmVhdHVyZSBvZiB0aGUga2VybmVsIG5ldHdvcmsgc3RhY2ssIEkgYXNzdW1lLiBJJ2xsIHN0YXJ0IHdpdGggYSBmZXcgbGlrZWx5IGtleXdvcmRzIGFuZCBzZWUgd2hlcmUgdGhhdCBsZWFkcyBtZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzUyMiwiT3V0cHV0VG9rZW5zIjoxOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIyOjQ1OjM4LjI2MDIwODk3NVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyOTI3MzM1NjI2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBzcF9ubC5vXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9wc3AvTWFrZWZpbGU9Mz1vYmotJChDT05GSUdfSU5FVF9QU1ApICs9IHBzcC5vXFxubmV0L3BzcC9NYWtlZmlsZS00LVxcbm5ldC9wc3AvTWFrZWZpbGU6NTpwc3AteSA6PSBwc3BfbWFpbi5vIHBzcF9ubC5vIHBzcF9zb2NrLm8gcHNwLW5sLWdlbi5vXFxuLS1cXG5uZXQvcHNwL3BzcC1ubC1nZW4uYz02ND1zdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgcHNwX2Rldl9kaXNhc3NvY19ubF9wb2xpY3lbUFNQX0FfREVWX05TSUQgKyAxXSA9IHtcXG4tLVxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jLTcwLS8qIE9wcyB0YWJsZSBmb3IgcHNwICovXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmM6NzE6c3RhdGljIGNvbnN0IHN0cnVjdCBnZW5sX3NwbGl0X29wcyBwc3Bfbmxfb3BzW10gPSB7XFxubmV0L3BzcC9wc3AtbmwtZ2VuLmMtNzItXFx0e1xcbi0tXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmM9MTYxPXN0cnVjdCBnZW5sX2ZhbWlseSBwc3BfbmxfZmFtaWx5IF9fcm9fYWZ0ZXJfaW5pdCA9IHtcXG4tLVxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jLTE2Ni1cXHQubW9kdWxlXFx0XFx0PSBUSElTX01PRFVMRSxcXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxNjc6XFx0LnNwbGl0X29wc1xcdD0gcHNwX25sX29wcyxcXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxNjg6XFx0Lm5fc3BsaXRfb3BzXFx0PSBBUlJBWV9TSVpFKHBzcF9ubF9vcHMpLFxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jLTE2OS1cXHQubWNncnBzXFx0XFx0PSBwc3BfbmxfbWNncnBzLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMjo0NTo0MS4xODc1NTIwNDFaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzY4NDkzMTU2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBDT05GSUdfSU5FVF9QU1AgRGVwZW5kZW5jeSBUcmVlKipcblxuQWxyaWdodCwgc28gYENPTkZJR19JTkVUX1BTUGAgaXMgdGhlIHRhcmdldC4gRmlyc3QgdGhpbmcgSSdtIGRvaW5nIGlzIGEgcXVpY2sgc2NhbiBvZiB0aGUgcmVsZXZhbnQgYEtjb25maWdgIGZpbGVzLiBJJ20gaGl0dGluZyBgbmV0L3BzcC9LY29uZmlnYCAob3Igc29tZXRoaW5nIGFuYWxvZ291cyBpbiB0aGUgYXBwcm9wcmlhdGUgbmV0d29yayBkaXJlY3Rvcnkg4oCTIGxldCdzIGFzc3VtZSBpdCdzIHRoZXJlKSB0byB1bnJhdmVsIHRoaXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGFsbCB0aGUgZG93bnN0cmVhbSBkZXBlbmRlbmNpZXM7IHdoYXQgb3RoZXIga25vYnMgYW5kIGxldmVycyBkb2VzIHRoaXMgZmxhZyBwdWxsPyBUaGlzIGluY2x1ZGVzIHRoZSB1c3VhbCBzdXNwZWN0czogc3ViLWZlYXR1cmVzLCBwcmVyZXF1aXNpdGUgbW9kdWxlcywgbWF5YmUgZXZlbiBjZXJ0YWluIGhhcmR3YXJlIHJlcXVpcmVtZW50cy4gVGhlIGdvYWwgaXMgdG8gZnVsbHkgZ3Jhc3AgdGhlICppbXBhY3QqIG9mIGVuYWJsaW5nIGBDT05GSUdfSU5FVF9QU1BgLiBJIHdhbnQgdG8gaWRlbnRpZnkgYW55IHBvdGVudGlhbCBjb25mbGljdHMgb3Igc2lkZS1lZmZlY3RzIHdpdGggdGhlIHJlc3Qgb2YgbXkgc3lzdGVtJ3MgY29uZmlndXJhdGlvbi4gSSdsbCBuZWVkIHRvIHNlZSBpZiB0aGlzIGludHJvZHVjZXMgYW55IG5ldyBleHBvc2VkIGtlcm5lbCBpbnRlcmZhY2VzLiBMZXQncyBzZWUgaG93IGRlZXAgdGhpcyByYWJiaXQgaG9sZSBnb2VzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MTEwLCJPdXRwdXRUb2tlbnMiOjE5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjI6NDU6NDQuNTU2MDQ3MjA3WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1MDUxODcyNDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIElORVRfUFNQXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9wc3AvS2NvbmZpZy00LSNcXG5uZXQvcHNwL0tjb25maWc6NTpjb25maWcgSU5FVF9QU1BcXG5uZXQvcHNwL0tjb25maWctNi1cXHRib29sIFxcXCJQU1AgU2VjdXJpdHkgUHJvdG9jb2wgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjI6NDU6NDcuMDYxMjM5ODg0WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzE3OTU5NjY5MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBhcyBpZiB0aGV5J3JlIG15IG93bjpcblxuKipBbmFseXppbmcgdGhlIFBTUCBLY29uZmlnIEZpbGUqKlxuXG5BbHJpZ2h0LCBsZXQncyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHRha2UgYSBsb29rIGF0IHRoZSBmdWxsIGBuZXQvcHNwL0tjb25maWdgIGZpbGUuIEkgbmVlZCB0byBnZXQgYSBjb21wcmVoZW5zaXZlIHVuZGVyc3RhbmRpbmcgb2YgKmV4YWN0bHkqIHdoYXQncyBkZWZpbmVkLCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGF2YWlsYWJsZSwgdGhlaXIgZGVwZW5kZW5jaWVzLCBhbmQgYW55IGRlZmF1bHQgc2V0dGluZ3MuIFRoZXJlJ3Mgbm8gc3Vic3RpdHV0ZSBmb3Igc2VlaW5nIHRoZSB3aG9sZSBwaWN0dXJlLiBJJ20gbG9va2luZyBmb3IgdGhlIGZvdW5kYXRpb25hbCBidWlsZGluZyBibG9ja3MsIHRoZSBhcmNoaXRlY3R1cmFsIGNob2ljZXMgYmFrZWQgaW50byB0aGlzIHNwZWNpZmljIFBTUCBuZXR3b3JrIGNvbmZpZ3VyYXRpb24uIEknbSBleHBlY3RpbmcgdG8gZmluZCBkZXRhaWxzIGFyb3VuZCBzdXBwb3J0ZWQgaGFyZHdhcmUsIGZlYXR1cmVzIGVuYWJsZWQgKG9yIGRpc2FibGVkKSwgYW5kIHRoZSBsb2dpY2FsIG9yZ2FuaXphdGlvbiBvZiB0aGUgY29uZmlndXJhdGlvbiBzcGFjZS4gSSB3YW50IHRvIGJ1aWxkIGEgbWVudGFsIG1hcCBvZiB0aGlzIFBTUCdzIGNhcGFiaWxpdGllcyBhbmQgY29uc3RyYWludHMuIFRoaXMgd2lsbCBiZSB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgaXRzIHBsYWNlIHdpdGhpbiB0aGUgbGFyZ2VyIHN5c3RlbS4gVGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ0MjEsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMjo0NTo1MC4yNDA4Mzk1MTRaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODE5MTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L3BzcC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDEwMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbiAgIDI6XFx0I1xcbiAgIDM6XFx0IyBQU1AgY29uZmlndXJhdGlvblxcbiAgIDQ6XFx0I1xcbiAgIDU6XFx0Y29uZmlnIElORVRfUFNQXFxuICAgNjpcXHRcXHRib29sIFxcXCJQU1AgU2VjdXJpdHkgUHJvdG9jb2wgc3VwcG9ydFxcXCJcXG4gICA3OlxcdFxcdGRlcGVuZHMgb24gSU5FVFxcbiAgIDg6XFx0XFx0c2VsZWN0IFNLQl9ERUNSWVBURURcXG4gICA5OlxcdFxcdHNlbGVjdCBTS0JfRVhURU5TSU9OU1xcbiAgMTA6XFx0XFx0c2VsZWN0IFNPQ0tfVkFMSURBVEVfWE1JVFxcbiAgMTE6XFx0XFx0aGVscFxcbiAgMTI6XFx0XFx0RW5hYmxlIGtlcm5lbCBzdXBwb3J0IGZvciB0aGUgUFNQIFNlY3VyaXR5IFByb3RvY29sIChQU1ApLlxcbiAgMTM6XFx0XFx0Rm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlOlxcbiAgMTQ6XFx0XFx0ICBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZ29vZ2xlL3BzcC9tYWluL2RvYy9QU1BfQXJjaF9TcGVjLnBkZlxcbiAgMTU6XFx0XFxuICAxNjpcXHRcXHRJZiB1bnN1cmUsIHNheSBOLlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMjo0NTo1MC4yNDA5MjQxNTRaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzAyMjYzMjY2NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFBTUCBDb25maWd1cmF0aW9uIENoYW5nZSoqXG5cbk9rYXksIHNvIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24gaXMgc2V0IHRvIGBJTkVUX1BTUGAsIGFuZCB0aGF0IG9idmlvdXNseSBoaW5nZXMgb24gYElORVRgLiBUaGF0J3MgdGhlIGJhc2VsaW5lLiBNeSBmb2N1cywgdGhvdWdoLCBpcyBvbiB0aGlzIHBhdGNoIGFuZCBpdHMgaW1wYWN0IG9uIGBwc3BfbmxfbXVsdGljYXN0X3Blcl9uc2AuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSByaXBwbGUgZWZmZWN0cywgdGhlIGRvd25zdHJlYW0gZGVwZW5kZW5jaWVzLiBUaGUgbW9kaWZpY2F0aW9uIG1pZ2h0IHNlZW0gc21hbGwsIGJ1dCB0aGVzZSBuZXR3b3JrIHN0cnVjdHVyZXMgY2FuIGJlIGRlbGljYXRlLiBOb3csIEknbSBnb2luZyB0byBsb29rIGF0IHRoZSBjb2RlYmFzZSBhbmQgaWRlbnRpZnkgKmV2ZXJ5KiBmdW5jdGlvbiB0aGF0IGNhbGxzIGBwc3BfbmxfbXVsdGljYXN0X3Blcl9uc2Agb3IgYHBzcF9ubF9ub3RpZnlfZGV2YC4gVGhpcyB3aWxsIHRlbGwgbWUgd2hhdCBzeXN0ZW1zIGFyZSB1dGlsaXppbmcgdGhlIGZ1bmN0aW9ucywgYW5kIEkgY2FuIGFzc2VzcyB3aGVyZSBjaGFuZ2VzIHdpbGwgaGF2ZSBhbiBpbXBhY3QuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ4NjYsIk91dHB1dFRva2VucyI6MjEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIyOjQ1OjUzLjI2MzU1OTQzOFoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjU2Nzk3ODc1NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwc3Bfbmxfbm90aWZ5X2RldlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvcHNwL3BzcC5oPTE5PWludCBwc3BfYXR0YWNoX25ldGRldl9ub3RpZmllcih2b2lkKTtcXG5uZXQvcHNwL3BzcC5oLTIwLVxcbm5ldC9wc3AvcHNwLmg6MjE6dm9pZCBwc3Bfbmxfbm90aWZ5X2RldihzdHJ1Y3QgcHNwX2RldiAqcHNkLCB1MzIgY21kKTtcXG5uZXQvcHNwL3BzcC5oLTIyLVxcbi0tXFxubmV0L3BzcC9wc3BfbWFpbi5jPTU5PXBzcF9kZXZfY3JlYXRlKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5uZXQvcHNwL3BzcF9tYWluLmMtMTA2LVxcdCAqL1xcbm5ldC9wc3AvcHNwX21haW4uYzoxMDc6XFx0cHNwX25sX25vdGlmeV9kZXYocHNkLCBQU1BfQ01EX0RFVl9BRERfTlRGKTtcXG5uZXQvcHNwL3BzcF9tYWluLmMtMTA4LVxcbi0tXFxubmV0L3BzcC9wc3BfbWFpbi5jPTEzMT12b2lkIHBzcF9kZXZfdW5yZWdpc3RlcihzdHJ1Y3QgcHNwX2RldiAqcHNkKVxcbi0tXFxubmV0L3BzcC9wc3BfbWFpbi5jLTEzOC1cXG5uZXQvcHNwL3BzcF9tYWluLmM6MTM5OlxcdHBzcF9ubF9ub3RpZnlfZGV2KHBzZCwgUFNQX0NNRF9ERVZfREVMX05URik7XFxubmV0L3BzcC9wc3BfbWFpbi5jLTE0MC1cXG4tLVxcbm5ldC9wc3AvcHNwX21haW4uYz00MjQ9c3RhdGljIGludCBwc3BfbmV0ZGV2X2V2ZW50KHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsIHVuc2lnbmVkIGxvbmcgZXZlbnQsXFxuLS1cXG5uZXQvcHNwL3BzcF9tYWluLmMtNDM4LVxcdFxcdGlmIChwc3BfZGV2X2lzX3JlZ2lzdGVyZWQocHNkKSlcXG5uZXQvcHNwL3BzcF9tYWluLmM6NDM5OlxcdFxcdFxcdHBzcF9ubF9ub3RpZnlfZGV2KHBzZCwgUFNQX0NNRF9ERVZfQ0hBTkdFX05URik7XFxubmV0L3BzcC9wc3BfbWFpbi5jLTQ0MC1cXHRcXHRwc3BfZGV2X2Rpc2Fzc29jX29uZShwc2QsIGRldik7XFxuLS1cXG5uZXQvcHNwL3BzcF9ubC5jPTMyNj1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKnBzcF9ubF9idWlsZF9kZXZfbnRmKHN0cnVjdCBwc3BfZGV2ICpwc2QsXFxuLS1cXG5uZXQvcHNwL3BzcF9ubC5jLTM0OS1cXG5uZXQvcHNwL3BzcF9ubC5jOjM1MDp2b2lkIHBzcF9ubF9ub3RpZnlfZGV2KHN0cnVjdCBwc3BfZGV2ICpwc2QsIHUzMiBjbWQpXFxubmV0L3BzcC9wc3BfbmwuYy0zNTEte1xcbi0tXFxubmV0L3BzcC9wc3BfbmwuYz00MDU9aW50IHBzcF9ubF9kZXZfc2V0X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG4tLVxcbm5ldC9wc3AvcHNwX25sLmMtNDM3LVxcbm5ldC9wc3AvcHNwX25sLmM6NDM4OlxcdHBzcF9ubF9ub3RpZnlfZGV2KHBzZCwgUFNQX0NNRF9ERVZfQ0hBTkdFX05URik7XFxubmV0L3BzcC9wc3BfbmwuYy00MzktXFxuLS1cXG5uZXQvcHNwL3BzcF9ubC5jPTQ5OT1pbnQgcHNwX25sX2Rldl9hc3NvY19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuLS1cXG5uZXQvcHNwL3BzcF9ubC5jLTU2Ny1cXG5uZXQvcHNwL3BzcF9ubC5jOjU2ODpcXHRwc3Bfbmxfbm90aWZ5X2Rldihwc2QsIFBTUF9DTURfREVWX0NIQU5HRV9OVEYpO1xcbm5ldC9wc3AvcHNwX25sLmMtNTY5LVxcbi0tXFxubmV0L3BzcC9wc3BfbmwuYz01ODQ9aW50IHBzcF9ubF9kZXZfZGlzYXNzb2NfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbi0tXFxubmV0L3BzcC9wc3BfbmwuYy02MjMtXFx0ICovXFxubmV0L3BzcC9wc3BfbmwuYzo2MjQ6XFx0cHNwX25sX25vdGlmeV9kZXYocHNkLCBQU1BfQ01EX0RFVl9DSEFOR0VfTlRGKTtcXG5uZXQvcHNwL3BzcF9ubC5jLTYyNS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjI6NDU6NTUuODMxNTQzNzYzWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ0MDc3NjIzNTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqVHJhY2luZyB0aGUgUFNQIERldmljZSBDcmVhdGlvbiBQYXRoKipcblxuT2theSwgc28gSSdtIGRpdmluZyBpbnRvIHRoaXMgUFNQIGNvZGUsIGFuZCBteSBpbml0aWFsIGZvY3VzIGlzIG9uIHVuZGVyc3RhbmRpbmcgdGhlIGRldmljZSBjcmVhdGlvbiBhbmQgbm90aWZpY2F0aW9uIHByb2Nlc3MuIFRoZSBjb3JlIG9mIHRoZSBtdWx0aWNhc3QgZnVuY3Rpb25hbGl0eSBhcHBlYXJzIHRvIHJlc2lkZSB3aXRoaW4gYHBzcF9ubF9tdWx0aWNhc3RfcGVyX25zYCwgd2hpY2ggaXMgdHJpZ2dlcmVkIGJ5IGBwc3BfbmxfbXVsdGljYXN0X2FsbF9uc2AgYW5kLCBpbXBvcnRhbnRseSwgYHBzcF9ubF9ub3RpZnlfZGV2YC4gVGhpcyBgcHNwX25sX25vdGlmeV9kZXZgIGZ1bmN0aW9uIGFjdHMgYXMgYSBjcnVjaWFsIGxpbmsgYmVjYXVzZSBpdCdzIGNhbGxlZCBieSBzZXZlcmFsIG5ldGxpbmsgaGFuZGxlcnMgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIGZvciBQU1Agb3BlcmF0aW9ucy5cblxuU3BlY2lmaWNhbGx5LCBJIHNlZSBgcHNwX2Rldl9jcmVhdGVgLCBgcHNwX2Rldl91bnJlZ2lzdGVyYCwgYHBzcF9uZXRkZXZfZXZlbnRgLCBgcHNwX25sX2Rldl9zZXRfZG9pdGAsIGBwc3BfbmxfZGV2X2Fzc29jX2RvaXRgLCBhbmQgYHBzcF9ubF9kZXZfZGlzYXNzb2NfZG9pdGAgYXMgdGhlIGNhbGxpbmcgZnVuY3Rpb25zLiBUaGVzZSBuZXRsaW5rIGhhbmRsZXJzIGFyZSB0aGUga2V5IGVudHJ5IHBvaW50cyBmb3IgbWFuYWdpbmcgYW5kIGludGVyYWN0aW5nIHdpdGggUFNQIGRldmljZXMuIFRoZXJlZm9yZSwgYSBkZWVwZXIgdW5kZXJzdGFuZGluZyBvZiBgcHNwX25sX2Rldl9zZXRfZG9pdGAsIGBwc3BfbmxfZGV2X2Fzc29jX2RvaXRgLCBhbmQgYHBzcF9ubF9kZXZfZGlzYXNzb2NfZG9pdGAgaXMgZXNzZW50aWFsLCBhcyB0aGV5IGFyZSBsaWtlbHkgcmVzcG9uc2libGUgZm9yIHRyaWdnZXJpbmcgbm90aWZpY2F0aW9ucy5cblxuSG93ZXZlciwgSSB0aGluayB0aGUgbW9zdCBpbXBvcnRhbnQgZnVuY3Rpb24gdG8gbG9vayBhdCBmaXJzdCBpcyBgcHNwX2Rldl9jcmVhdGVgLCB0aGUgZnVuY3Rpb24gY2FsbGVkIHdoZW4gYSBQU1AgZGV2aWNlIGlzIGFjdHVhbGx5IGNyZWF0ZWQuIEJ5IHRyYWNpbmcgdGhlIGV4ZWN1dGlvbiBwYXRoIG9mIHRoaXMgZnVuY3Rpb24sIEkgc2hvdWxkIGJlIGFibGUgdG8gZ2V0IGEgYmV0dGVyIGhhbmRsZSBvbiBob3cgdGhlIHdob2xlIHN5c3RlbSB3b3Jrcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NjAwMywiT3V0cHV0VG9rZW5zIjoxOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMjo0NjowMC4yMzkzMDk2NTNaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1MjkwNDQ2MzYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicHNwX2Rldl9jcmVhdGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL3BzcC5jPTEwODI9dm9pZCBtbHg1ZV9wc3BfcmVnaXN0ZXIoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvcHNwLmMtMTA5Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvcHNwLmM6MTA5NzpcXHRwc2QgPSBwc3BfZGV2X2NyZWF0ZShwcml2LVxcdTAwM2VuZXRkZXYsIFxcdTAwMjZtbHg1X3BzcF9vcHMsIFxcdTAwMjZwc3AtXFx1MDAzZWNhcHMsIE5VTEwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9wc3AuYy0xMDk4LVxcdGlmIChJU19FUlIocHNkKSkge1xcbi0tXFxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL3BzcC5jPTI0Mj1uc2ltX3BzcF9yZXJlZ193cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKmRhdGEsIHNpemVfdCBjb3VudCxcXG4tLVxcbmRyaXZlcnMvbmV0L25ldGRldnNpbS9wc3AuYy0yNTEtXFxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL3BzcC5jOjI1MjpcXHRwc2QgPSBwc3BfZGV2X2NyZWF0ZShucy1cXHUwMDNlbmV0ZGV2LCBcXHUwMDI2bnNpbV9wc3Bfb3BzLCBcXHUwMDI2bnNpbV9wc3BfY2FwcywgbnMpO1xcbmRyaXZlcnMvbmV0L25ldGRldnNpbS9wc3AuYy0yNTMtXFx0aWYgKElTX0VSUihwc2QpKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vcHNwLmM9MjcyPWludCBuc2ltX3BzcF9pbml0KHN0cnVjdCBuZXRkZXZzaW0gKm5zKVxcbi0tXFxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL3BzcC5jLTI3Ni1cXG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vcHNwLmM6Mjc3OlxcdHBzZCA9IHBzcF9kZXZfY3JlYXRlKG5zLVxcdTAwM2VuZXRkZXYsIFxcdTAwMjZuc2ltX3BzcF9vcHMsIFxcdTAwMjZuc2ltX3BzcF9jYXBzLCBucyk7XFxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL3BzcC5jLTI3OC1cXHRpZiAoSVNfRVJSKHBzZCkpXFxuLS1cXG5pbmNsdWRlL25ldC9wc3AvZnVuY3Rpb25zLmg9MTY9c3RydWN0IHBzcF9kZXYgKlxcbmluY2x1ZGUvbmV0L3BzcC9mdW5jdGlvbnMuaDoxNzpwc3BfZGV2X2NyZWF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBzdHJ1Y3QgcHNwX2Rldl9vcHMgKnBzZF9vcHMsXFxuaW5jbHVkZS9uZXQvcHNwL2Z1bmN0aW9ucy5oLTE4LVxcdCAgICAgICBzdHJ1Y3QgcHNwX2Rldl9jYXBzICpwc2RfY2Fwcywgdm9pZCAqcHJpdl9wdHIpO1xcbi0tXFxubmV0L3BzcC9wc3BfbWFpbi5jPTM4PWludCBwc3BfZGV2X2NoZWNrX2FjY2VzcyhzdHJ1Y3QgcHNwX2RldiAqcHNkLCBzdHJ1Y3QgbmV0ICpuZXQsIGJvb2wgYWRtaW4pXFxuLS1cXG5uZXQvcHNwL3BzcF9tYWluLmMtNDktLyoqXFxubmV0L3BzcC9wc3BfbWFpbi5jOjUwOiAqIHBzcF9kZXZfY3JlYXRlKCkgLSBjcmVhdGUgYW5kIHJlZ2lzdGVyIFBTUCBkZXZpY2VcXG5uZXQvcHNwL3BzcF9tYWluLmMtNTEtICogQG5ldGRldjpcXHRtYWluIG5ldGRldmljZVxcbi0tXFxubmV0L3BzcC9wc3BfbWFpbi5jPTU4PXN0cnVjdCBwc3BfZGV2ICpcXG5uZXQvcHNwL3BzcF9tYWluLmM6NTk6cHNwX2Rldl9jcmVhdGUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG5uZXQvcHNwL3BzcF9tYWluLmMtNjAtXFx0ICAgICAgIHN0cnVjdCBwc3BfZGV2X29wcyAqcHNkX29wcywgc3RydWN0IHBzcF9kZXZfY2FwcyAqcHNkX2NhcHMsXFxuLS1cXG5uZXQvcHNwL3BzcF9tYWluLmMtMTE0LX1cXG5uZXQvcHNwL3BzcF9tYWluLmM6MTE1OkVYUE9SVF9TWU1CT0wocHNwX2Rldl9jcmVhdGUpO1xcbm5ldC9wc3AvcHNwX21haW4uYy0xMTYtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIyOjQ2OjAyLjc2ODM2MDI3OVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyOTAyOTMyNTE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBzZWUgd2hhdCB3ZSd2ZSBnb3QgaGVyZS5cblxuKipJbml0aWFsIEFzc2Vzc21lbnQgb2YgUFNQIERyaXZlciBJbml0aWFsaXphdGlvbioqXG5cblJpZ2h0LCBzbyBgcHNwX2Rldl9jcmVhdGVgIGlzIGJlaW5nIGNhbGxlZCBieSBgbnNpbV9wc3BfaW5pdGAuIFRoYXQncyBpbnRlcmVzdGluZywgYW5kIHBvdGVudGlhbGx5IHZlcnkgdXNlZnVsLiBUaGUgZmFjdCB0aGF0IGl0J3MgaW4gYGRyaXZlcnMvbmV0L25ldGRldnNpbS9wc3AuY2AgaW1tZWRpYXRlbHkgdGVsbHMgbWUgdGhhdCB0aGlzIGlzIHRlc3RhYmxlIHZpYSBuZXRkZXZzaW0uIFRoaXMgaXMgYSBncmVhdCBzdGFydGluZyBwb2ludCBmb3IgYW5hbHl6aW5nIGFuZCBwZXJoYXBzIGV2ZW50dWFsbHkgbW9kaWZ5aW5nIHRoZSBwc3AgZHJpdmVyLiBOb3csIHRoZSBvYnZpb3VzIG5leHQgc3RlcCBpcyB0byBmaWd1cmUgb3V0IHRoZSBzcGVjaWZpYyBjb25maWd1cmF0aW9uIHJlcXVpcmVkIHRvIGluaXRpYWxpemUgYG5zaW1fcHNwX2luaXRgLiBMZXQncyBkaWcgaW50byB0aGF0IGFuZCBzZWUgd2hhdCB3ZSBjYW4gZmluZC5cblxuXG4iLCJJbnB1dFRva2VucyI6NzM3MSwiT3V0cHV0VG9rZW5zIjoyMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjYyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIyOjQ2OjA1LjY3MTI5NDY3NloiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjUzMjI2Mzc0NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJuc2ltX3BzcF9pbml0XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXYuYz0xMDM4PXN0YXRpYyBpbnQgbnNpbV9pbml0X25ldGRldnNpbShzdHJ1Y3QgbmV0ZGV2c2ltICpucylcXG4tLVxcbmRyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXYuYy0xMDc0LVxcbmRyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXYuYzoxMDc1OlxcdGVyciA9IG5zaW1fcHNwX2luaXQobnMpO1xcbmRyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXYuYy0xMDc2LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vbmV0ZGV2c2ltLmg9NDQ2PXN0YXRpYyBpbmxpbmUgdm9pZCBuc2ltX21hY3NlY190ZWFyZG93bihzdHJ1Y3QgbmV0ZGV2c2ltICpucylcXG4tLVxcbmRyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXZzaW0uaC00NTEtI2lmIElTX0VOQUJMRUQoQ09ORklHX0lORVRfUFNQKVxcbmRyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXZzaW0uaDo0NTI6aW50IG5zaW1fcHNwX2luaXQoc3RydWN0IG5ldGRldnNpbSAqbnMpO1xcbmRyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXZzaW0uaC00NTMtdm9pZCBuc2ltX3BzcF91bmluaXQoc3RydWN0IG5ldGRldnNpbSAqbnMpO1xcbi0tXFxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oPTQ1Nj1uc2ltX2RvX3BzcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0ZGV2c2ltICpucyxcXG4tLVxcbmRyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXZzaW0uaC00NTgtI2Vsc2VcXG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vbmV0ZGV2c2ltLmg6NDU5OnN0YXRpYyBpbmxpbmUgaW50IG5zaW1fcHNwX2luaXQoc3RydWN0IG5ldGRldnNpbSAqbnMpIHsgcmV0dXJuIDA7IH1cXG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vbmV0ZGV2c2ltLmgtNDYwLXN0YXRpYyBpbmxpbmUgdm9pZCBuc2ltX3BzcF91bmluaXQoc3RydWN0IG5ldGRldnNpbSAqbnMpIHt9XFxuLS1cXG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vcHNwLmM9MjY1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5zaW1fcHNwX3JlcmVnX2ZvcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vcHNwLmMtMjcxLVxcbmRyaXZlcnMvbmV0L25ldGRldnNpbS9wc3AuYzoyNzI6aW50IG5zaW1fcHNwX2luaXQoc3RydWN0IG5ldGRldnNpbSAqbnMpXFxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL3BzcC5jLTI3My17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIyOjQ2OjA4LjIwMzU2NTMyMloiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzE5MzcxNDY3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIE5ldGRldnNpbSBhbmQgUFNQIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyBpdCBzZWVtcyBsaWtlIGVuYWJsaW5nIGBDT05GSUdfSU5FVF9QU1BgIGlzIHN1ZmZpY2llbnQgdG8gZ2V0IFBTUCBmdW5jdGlvbmFsaXR5IHdvcmtpbmcgd2l0aGluIG5ldGRldnNpbSwgYXNzdW1pbmcsIG9mIGNvdXJzZSwgdGhhdCBgQ09ORklHX05FVERFVlNJTWAgaXMgYWxzbyBlbmFibGVkLiBUaGF0IHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2gsIGJ1dCBJIGFsd2F5cyBwcmVmZXIgdG8gYmUgdGhvcm91Z2guIEkgbmVlZCB0byB2ZXJpZnkgdGhhdCB0aGVyZSBhcmVuJ3QgYW55IG90aGVyIHN1YnRsZSBkZXBlbmRlbmNpZXMgbHVya2luZyB3aXRoaW4gdGhlIG5ldGRldnNpbSBLY29uZmlnIGZpbGUgdGhhdCBtaWdodCBpbmZsdWVuY2UgdGhpcy4gTGV0IG1lIHF1aWNrbHkgZXhhbWluZSBgZHJpdmVycy9uZXQvbmV0ZGV2c2ltL0tjb25maWdgIGFuZCBkb3VibGUtY2hlY2sgZm9yIGFueSBoaWRkZW4gZ290Y2hhcyBvciBjb25kaXRpb25hbCBkZXBlbmRlbmNpZXMgdGhhdCBjb3VsZCBpbXBhY3QgdGhpcyBjb25maWd1cmF0aW9uLiBCZXR0ZXIgc2FmZSB0aGFuIHNvcnJ5IHdoZW4gZGVhbGluZyB3aXRoIGtlcm5lbCBjb25maWd1cmF0aW9ucyFcblxuXG4iLCJJbnB1dFRva2VucyI6ODExMywiT3V0cHV0VG9rZW5zIjoxOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIyOjQ2OjExLjUyMjkzOTY3OVoiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjM1Mjk2MzE2MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgTkVUREVWU0lNXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L0tjb25maWc9NjAyPXNvdXJjZSBcXFwiZHJpdmVycy9uZXQvaHlwZXJ2L0tjb25maWdcXFwiXFxuZHJpdmVycy9uZXQvS2NvbmZpZy02MDMtXFxuZHJpdmVycy9uZXQvS2NvbmZpZzo2MDQ6Y29uZmlnIE5FVERFVlNJTVxcbmRyaXZlcnMvbmV0L0tjb25maWctNjA1LVxcdHRyaXN0YXRlIFxcXCJTaW11bGF0ZWQgbmV0d29ya2luZyBkZXZpY2VcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIyOjQ2OjEzLjg3NTkxMTc2WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4MTYzNTAwNjAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipOYXZpZ2F0aW5nIHRoZSBOZXR3b3JrIERyaXZlciBDb25maWd1cmF0aW9uIExhbmRzY2FwZSoqXG5cbk9rYXksIHRpbWUgdG8gZGl2ZSBpbnRvIHRoZSBuaXR0eS1ncml0dHkgb2YgdGhlIG5ldHdvcmsgZHJpdmVyIGNvbmZpZ3VyYXRpb24uIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyBhIHBhcnRpY3VsYXIgZmVhdHVyZSwgb3IgcGVyaGFwcyBhIGNvbmZsaWN0LCBpcyBiZWluZyBjb250cm9sbGVkLiBNeSBndXQgdGVsbHMgbWUgdGhhdCB0aGUga2V5IGxpZXMgd2l0aGluIHRoZSBgZHJpdmVycy9uZXQvS2NvbmZpZ2AgZmlsZS4gSSdtIGdvaW5nIHRvIGp1bXAgcmlnaHQgaW50byBpdC4gSSdtIGJldHRpbmcgdGhhdCBhcm91bmQgbGluZSA2MDQsIEknbGwgZmluZCB0aGUgc3BlY2lmaWMgY29uZmlndXJhdGlvbiBvcHRpb25zIHRoYXQgYXJlIHJlbGV2YW50IHRvIHdoYXQgSSdtIGxvb2tpbmcgZm9yLiBUaGlzIGlzIHdoZXJlIHRoZSBtYWdpYyBoYXBwZW5zLCB3aGVyZSB0aGUgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gYW5kIGRlcGVuZGVuY2llcyBhcmUgZGVmaW5lZC4gSG9wZWZ1bGx5LCB0aGlzIGlzIHdoZXJlIEknbGwgZmluZCB3aGF0IEkgbmVlZCB0byBlaXRoZXIgc29sdmUgdGhlIHByb2JsZW0gSSdtIGludmVzdGlnYXRpbmcgb3IgdG8gZ2V0IHRvIGEgZGVlcGVyIGxldmVsIG9mIHVuZGVyc3RhbmRpbmcuIExldCdzIHNlZSB3aGF0IEtjb25maWcgaGFzIGluIHN0b3JlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4NDE4LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjI6NDY6MTYuNjkyMjY0OTQ5WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyNzc2OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDYwMCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDYwMDpcXHRcXG4gNjAxOlxcdHNvdXJjZSBcXFwiZHJpdmVycy9uZXQvdGh1bmRlcmJvbHQvS2NvbmZpZ1xcXCJcXG4gNjAyOlxcdHNvdXJjZSBcXFwiZHJpdmVycy9uZXQvaHlwZXJ2L0tjb25maWdcXFwiXFxuIDYwMzpcXHRcXG4gNjA0OlxcdGNvbmZpZyBORVRERVZTSU1cXG4gNjA1OlxcdFxcdHRyaXN0YXRlIFxcXCJTaW11bGF0ZWQgbmV0d29ya2luZyBkZXZpY2VcXFwiXFxuIDYwNjpcXHRcXHRkZXBlbmRzIG9uIERFQlVHX0ZTXFxuIDYwNzpcXHRcXHRkZXBlbmRzIG9uIElORVRcXG4gNjA4OlxcdFxcdGRlcGVuZHMgb24gUFNBTVBMRSB8fCBQU0FNUExFPW5cXG4gNjA5OlxcdFxcdGRlcGVuZHMgb24gUFRQXzE1ODhfQ0xPQ0tfTU9DSyB8fCBQVFBfMTU4OF9DTE9DS19NT0NLPW5cXG4gNjEwOlxcdFxcdHNlbGVjdCBORVRfREVWTElOS1xcbiA2MTE6XFx0XFx0c2VsZWN0IFBBR0VfUE9PTFxcbiA2MTI6XFx0XFx0c2VsZWN0IE5FVF9TSEFQRVJcXG4gNjEzOlxcdFxcdGhlbHBcXG4gNjE0OlxcdFxcdCAgVGhpcyBkcml2ZXIgaXMgYSBkZXZlbG9wZXIgdGVzdGluZyB0b29sIGFuZCBzb2Z0d2FyZSBtb2RlbCB0aGF0IGNhblxcbiA2MTU6XFx0XFx0ICBiZSB1c2VkIHRvIHRlc3QgdmFyaW91cyBjb250cm9sIHBhdGggbmV0d29ya2luZyBBUElzLCBlc3BlY2lhbGx5XFxuIDYxNjpcXHRcXHQgIEhXLW9mZmxvYWQgcmVsYXRlZC5cXG4gNjE3OlxcdFxcbiA2MTg6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlXFxuIDYxOTpcXHRcXHQgIHdpbGwgYmUgY2FsbGVkIG5ldGRldnNpbS5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjI6NDY6MTYuNjkyMzk0OTRaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTc4Nzc0NTk2NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIFRhcmdldCBJZGVudGlmaWNhdGlvbjogUFNQIE5ldGxpbmsgUmFjZSBDb25kaXRpb24qKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCB0aGlzIHBhdGNoIOKAkyBpdCBsb29rcyBsaWtlIGl0J3MgYWRkcmVzc2luZyBhIHJhY2UgY29uZGl0aW9uIHdpdGhpbiBgcHNwX25sX211bHRpY2FzdF9wZXJfbnNgLCBzcGVjaWZpY2FsbHkgaW4gdGhlIGBuZXQvcHNwL3BzcF9ubC5jYCBmaWxlLiBJdCdzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIG5vdCBhIHN1cGVyZmljaWFsIG9uZSwgYW5kIGl0J3MgZml4aW5nIHNvbWV0aGluZyByZWxhdGVkIHRvIGRldmljZXMgY2hhbmdpbmcgbmV0d29yayBuYW1lc3BhY2VzIGNvbmN1cnJlbnRseS4gVGhpcyBzY3JlYW1zIFwiZnV6emluZyBvcHBvcnR1bml0eVwiIHRvIG1lLCBlc3BlY2lhbGx5IGdpdmVuIHRoZSBjb250ZXh0IG9mIFBTUCAoUFNQIFNlY3VyaXR5IFByb3RvY29sKSBuZXRsaW5rIGludGVyYWN0aW9ucy5cblxuVGhlIHBhdGNoIHNlZW1zIHRvIHJlcXVpcmUgYERFQlVHX0ZTYCBhbmQgYElORVRgLCB3aGljaCBpcyBnb29kIHRvIGtub3cgZm9yIHNldHVwLiBXZSdyZSB0YWxraW5nIGFib3V0IGNvcmUgUFNQIGxvZ2ljIHJlYWNoYWJsZSB2aWEgbmV0bGluayBjb21tYW5kcywgd2hpY2ggbWFrZXMgaXQgZnV6emFibGUgd2l0aCB0aGUgYG5ldGRldnNpbWAgZHJpdmVyLiBQZXJmZWN0LlxuXG5NeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gemVybyBpbiBvbiB0aGUgbmV0bGluayBlbnRyeSBwb2ludHMgdGhhdCB1bHRpbWF0ZWx5IGNhbGwgaW50byBgcHNwX25sX211bHRpY2FzdF9wZXJfbnNgLiBTaW5jZSBgcHNwX25sX211bHRpY2FzdF9wZXJfbnNgIGlzIHN0YXRpYywgd2UncmUgbm90IGdvaW5nIHRvIGJlIGFibGUgdG8gY2FsbCB0aGUgZnVuY3Rpb24gZGlyZWN0bHkuIEFmdGVyIGEgYml0IG9mIHJldmlldywgYHBzcF9ubF9kZXZfc2V0X2RvaXRgLCBgcHNwX25sX2Rldl9hc3NvY19kb2l0YCwgYW5kIGBwc3BfbmxfZGV2X2Rpc2Fzc29jX2RvaXRgIHNlZW0gbGlrZSB0aGUga2V5IGVudHJ5IHBvaW50cy4gQW5kLCBgcHNwX2Rldl9jcmVhdGVgIGxvb2tzIGxpa2UgYW5vdGhlciBpbXBvcnRhbnQgc3ltYm9sLiBJJ2xsIG5lZWQgdG8gZW5hYmxlIGBJTkVUX1BTUGAgYW5kIGBORVRERVZTSU1gIGZvciB0aGUgZnV6emluZyBzZXR1cC5cblxuTm93LCBsZXQgbWUganVzdCBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGF0IHRoZXJlIGFyZW4ndCBhbnkgb3RoZXIgcG90ZW50aWFsbHkgcmVsZXZhbnQgbmV0bGluayBlbnRyeSBwb2ludHMgaW4gYG5ldC9wc3AvcHNwX25sLmNgIHRoYXQgSSBtaWdodCBoYXZlIG1pc3NlZC4gR290dGEgYmUgdGhvcm91Z2guXG5cblxuIiwiSW5wdXRUb2tlbnMiOjg5NjgsIk91dHB1dFRva2VucyI6MTcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMzEsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMjo0NjoyMi40ODAxNDMxNzRaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI5MzE1NjY4OTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiX2RvaXRcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAzMzM0IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvZ2VuZXRsaW5rLWMueWFtbD0yOT1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXRsaW5rL2dlbmV0bGluay1jLnlhbWwtMzUxLSAgICAgICAgICAgICAgICBwcmU6XFxuRG9jdW1lbnRhdGlvbi9uZXRsaW5rL2dlbmV0bGluay1jLnlhbWw6MzUyOiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBIb29rIGZvciBhIGZ1bmN0aW9uIHRvIHJ1biBiZWZvcmUgdGhlIG1haW4gY2FsbGJhY2sgKHByZV9kb2l0IG9yIHN0YXJ0KS5cXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvZ2VuZXRsaW5rLWMueWFtbC0zNTMtICAgICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nXFxuRG9jdW1lbnRhdGlvbi9uZXRsaW5rL2dlbmV0bGluay1jLnlhbWwtMzU0LSAgICAgICAgICAgICAgICBwb3N0OlxcbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmstYy55YW1sOjM1NTogICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogSG9vayBmb3IgYSBmdW5jdGlvbiB0byBydW4gYWZ0ZXIgdGhlIG1haW4gY2FsbGJhY2sgKHBvc3RfZG9pdCBvciBkb25lKS5cXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvZ2VuZXRsaW5rLWMueWFtbC0zNTYtICAgICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvZ2VuZXRsaW5rLWxlZ2FjeS55YW1sPTMyPXByb3BlcnRpZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvZ2VuZXRsaW5rLWxlZ2FjeS55YW1sLTQxOC0gICAgICAgICAgICAgICAgcHJlOlxcbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmstbGVnYWN5LnlhbWw6NDE5OiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBIb29rIGZvciBhIGZ1bmN0aW9uIHRvIHJ1biBiZWZvcmUgdGhlIG1haW4gY2FsbGJhY2sgKHByZV9kb2l0IG9yIHN0YXJ0KS5cXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvZ2VuZXRsaW5rLWxlZ2FjeS55YW1sLTQyMC0gICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmdcXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvZ2VuZXRsaW5rLWxlZ2FjeS55YW1sLTQyMS0gICAgICAgICAgICAgICAgcG9zdDpcXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvZ2VuZXRsaW5rLWxlZ2FjeS55YW1sOjQyMjogICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogSG9vayBmb3IgYSBmdW5jdGlvbiB0byBydW4gYWZ0ZXIgdGhlIG1haW4gY2FsbGJhY2sgKHBvc3RfZG9pdCBvciBkb25lKS5cXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvZ2VuZXRsaW5rLWxlZ2FjeS55YW1sLTQyMy0gICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmdcXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmsueWFtbD0zMj1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXRsaW5rL2dlbmV0bGluay55YW1sLTMwMy0gICAgICAgICAgICAgICAgcHJlOlxcbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmsueWFtbDozMDQ6ICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IEhvb2sgZm9yIGEgZnVuY3Rpb24gdG8gcnVuIGJlZm9yZSB0aGUgbWFpbiBjYWxsYmFjayAocHJlX2RvaXQgb3Igc3RhcnQpLlxcbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmsueWFtbC0zMDUtICAgICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nXFxuRG9jdW1lbnRhdGlvbi9uZXRsaW5rL2dlbmV0bGluay55YW1sLTMwNi0gICAgICAgICAgICAgICAgcG9zdDpcXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvZ2VuZXRsaW5rLnlhbWw6MzA3OiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBIb29rIGZvciBhIGZ1bmN0aW9uIHRvIHJ1biBhZnRlciB0aGUgbWFpbiBjYWxsYmFjayAocG9zdF9kb2l0IG9yIGRvbmUpLlxcbkRvY3VtZW50YXRpb24vbmV0bGluay9nZW5ldGxpbmsueWFtbC0zMDgtICAgICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvbmV0bGluay1yYXcueWFtbD0zNT1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXRsaW5rL25ldGxpbmstcmF3LnlhbWwtNDg1LSAgICAgICAgICAgICAgICBwcmU6XFxuRG9jdW1lbnRhdGlvbi9uZXRsaW5rL25ldGxpbmstcmF3LnlhbWw6NDg2OiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBIb29rIGZvciBhIGZ1bmN0aW9uIHRvIHJ1biBiZWZvcmUgdGhlIG1haW4gY2FsbGJhY2sgKHByZV9kb2l0IG9yIHN0YXJ0KS5cXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvbmV0bGluay1yYXcueWFtbC00ODctICAgICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nXFxuRG9jdW1lbnRhdGlvbi9uZXRsaW5rL25ldGxpbmstcmF3LnlhbWwtNDg4LSAgICAgICAgICAgICAgICBwb3N0OlxcbkRvY3VtZW50YXRpb24vbmV0bGluay9uZXRsaW5rLXJhdy55YW1sOjQ4OTogICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogSG9vayBmb3IgYSBmdW5jdGlvbiB0byBydW4gYWZ0ZXIgdGhlIG1haW4gY2FsbGJhY2sgKHBvc3RfZG9pdCBvciBkb25lKS5cXG5Eb2N1bWVudGF0aW9uL25ldGxpbmsvbmV0bGluay1yYXcueWFtbC00OTAtICAgICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q9MzUxPWxvY2sgbXVzdCBhbHdheXMgYmUgYWNxdWlyZWQgYmVmb3JlIHRoZSBwaHlzaWNhbCBkZXZpY2UncyAoc2VlXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0OjM1MjpgYG5ldGRldl9ubF9xdWV1ZV9jcmVhdGVfZG9pdGBgKS5cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtMzUzLVxcbi0tXFxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvc3BlY3MucnN0PTM3Mj1NZXNzYWdlcyBjYW4gYWxzbyBkZWZpbmUgYGBwcmVgYCBhbmQgYGBwb3N0YGAgcHJvcGVydGllcyB3aGljaCB3aWxsIGJlIHJlbmRlcmVkXFxuRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvc3BlY3MucnN0OjM3MzphcyBgYHByZV9kb2l0YGAgYW5kIGBgcG9zdF9kb2l0YGAgY2FsbHMgaW4gdGhlIGtlcm5lbCAodGhlc2UgcHJvcGVydGllcyBzaG91bGRcXG5Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbmV0bGluay9zcGVjcy5yc3QtMzc0LWJlIGlnbm9yZWQgYnkgdXNlciBzcGFjZSkuXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTgxPXN0YXRpYyBpbnQgZHJiZF9tc2dfc3ByaW50Zl9pbmZvKHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKVxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0xMTMtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzoxMTQ6LyogUGVyLWNvbW1hbmQgZmxhZ3MgZm9yIGRyYmRfcHJlX2RvaXQoKSAqL1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMTE1LXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgZHJiZF9nZW5sX2NtZF9mbGFnc1tdID0ge1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz0xNTg9c3RhdGljIGludCBkcmJkX2FkbV9wcmVwYXJlKHN0cnVjdCBkcmJkX2NvbmZpZ19jb250ZXh0ICphZG1fY3R4LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMDQtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozMDU6aW50IGRyYmRfcHJlX2RvaXQoY29uc3Qgc3RydWN0IGdlbmxfc3BsaXRfb3BzICpvcHMsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMDYtXFx0XFx0ICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMzItXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozMzM6dm9pZCBkcmJkX3Bvc3RfZG9pdChjb25zdCBzdHJ1Y3QgZ2VubF9zcGxpdF9vcHMgKm9wcyxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMzNC1cXHRcXHQgICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9Nzk5PXN0YXRpYyBpbnQgZHJiZF9ubF9zZXRfcm9sZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy04MzgtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo4Mzk6aW50IGRyYmRfbmxfcHJpbWFyeV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy04NDAte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy04NDMtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo4NDQ6aW50IGRyYmRfbmxfc2Vjb25kYXJ5X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTg0NS17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTkxMz1jaGFyICpwcHNpemUoY2hhciAqYnVmLCB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSlcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtOTQyLS8qIE5vdGUgdGhlc2UgYXJlIG5vdCB0byBiZSBjb25mdXNlZCB3aXRoXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo5NDM6ICogZHJiZF9ubF9zdXNwZW5kX2lvX2RvaXQvZHJiZF9ubF9yZXN1bWVfaW9fZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTk0NC0gKiB3aGljaCBhcmUgKHN1Yikgc3RhdGUgY2hhbmdlcyB0cmlnZ2VyZWQgYnkgYWRtaW4gKGRyYmRzZXR1cCksXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTE1MzE9c3RhdGljIGludCBkaXNrX29wdHNfY2hlY2tfYWxfc2l6ZShzdHJ1Y3QgZHJiZF9kZXZpY2UgKmRldmljZSwgc3RydWN0IGRpc2tfY29uZiAqZGMpXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTE1NTQtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzoxNTU1OmludCBkcmJkX25sX2NoZ19kaXNrX29wdHNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMTU1Ni17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTE3ODE9dm9pZCBkcmJkX2JhY2tpbmdfZGV2X2ZyZWUoc3RydWN0IGRyYmRfZGV2aWNlICpkZXZpY2UsIHN0cnVjdCBkcmJkX2JhY2tpbmdfZGV2ICpsZGV2KVxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0xNzkzLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6MTc5NDppbnQgZHJiZF9ubF9hdHRhY2hfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMTc5NS17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTIyMTg9c3RhdGljIGludCBhZG1fZGV0YWNoKHN0cnVjdCBkcmJkX2RldmljZSAqZGV2aWNlLCBpbnQgZm9yY2UpXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTIyMzMtICogT25seSB0aGVuIHdlIGhhdmUgZmluYWxseSBkZXRhY2hlZC4gKi9cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjIyMzQ6aW50IGRyYmRfbmxfZGV0YWNoX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTIyMzUte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz0yNDI0PXN0YXRpYyB2b2lkIGZyZWVfY3J5cHRvKHN0cnVjdCBjcnlwdG8gKmNyeXB0bylcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMjQzMS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjI0MzI6aW50IGRyYmRfbmxfY2hnX25ldF9vcHRzX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI0MzMte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz0yNTc0PXN0YXRpYyB2b2lkIHBlZXJfZGV2aWNlX3RvX2luZm8oc3RydWN0IHBlZXJfZGV2aWNlX2luZm8gKmluZm8sXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI1ODYtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzoyNTg3OmludCBkcmJkX25sX2Nvbm5lY3RfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMjU4OC17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTI3MzY9c3RhdGljIGVudW0gZHJiZF9zdGF0ZV9ydiBjb25uX3RyeV9kaXNjb25uZWN0KHN0cnVjdCBkcmJkX2Nvbm5lY3Rpb24gKmNvbm5lY3Rpb24sIGJvb2wgZm9yY2UpXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI4MDEtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzoyODAyOmludCBkcmJkX25sX2Rpc2Nvbm5lY3RfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMjgwMy17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTI4NDE9dm9pZCByZXN5bmNfYWZ0ZXJfb25saW5lX2dyb3coc3RydWN0IGRyYmRfZGV2aWNlICpkZXZpY2UpXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI4NTYtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzoyODU3OmludCBkcmJkX25sX3Jlc2l6ZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yODU4LXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMjk5Mi1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjI5OTM6aW50IGRyYmRfbmxfcmVzb3VyY2Vfb3B0c19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yOTk0LXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzAzMC1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjMwMzE6aW50IGRyYmRfbmxfaW52YWxpZGF0ZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMDMyLXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9MzA5OT1zdGF0aWMgaW50IGRyYmRfYm1pb19zZXRfc3VzcF9hbChzdHJ1Y3QgZHJiZF9kZXZpY2UgKmRldmljZSxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzEwOC1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjMxMDk6aW50IGRyYmRfbmxfaW52YWxfcGVlcl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMTEwLXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzE1OS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjMxNjA6aW50IGRyYmRfbmxfcGF1c2Vfc3luY19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMTYxLXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzE3OS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjMxODA6aW50IGRyYmRfbmxfcmVzdW1lX3N5bmNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzE4MS17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMyMDctXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozMjA4OmludCBkcmJkX25sX3N1c3BlbmRfaW9fZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzIwOS17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMyMTItXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozMjEzOmludCBkcmJkX25sX3Jlc3VtZV9pb19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMjE0LXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzI2OC1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjMyNjk6aW50IGRyYmRfbmxfb3V0ZGF0ZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMjcwLXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9MzgwMT1zdGF0aWMgaW50IG5sYV9wdXRfc3RhdHVzX2luZm8oc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGRyYmRfZGV2aWNlICpkZXZpY2UsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTM4MTMtXFx0ICpcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjM4MTQ6XFx0ICogSWYgc2liID09IE5VTEwsIHRoaXMgaXMgZHJiZF9ubF9nZXRfc3RhdHVzX2RvaXQsIGV4ZWN1dGVkIHN5bmNocm9ub3VzbHlcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTM4MTUtXFx0ICogaW4gdGhlIGNvbnRleHQgb2YgdGhlIHJlcXVlc3RpbmcgdXNlciBwcm9jZXNzLiBFeGNsdWRlIHNlbnNpdGl2ZVxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zOTUwLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6Mzk1MTppbnQgZHJiZF9ubF9nZXRfc3RhdHVzX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTM5NTIte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz00MTAzPWludCBkcmJkX25sX2dldF9zdGF0dXNfZHVtcGl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYilcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDE1MC1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjQxNTE6aW50IGRyYmRfbmxfZ2V0X3RpbWVvdXRfdHlwZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00MTUyLXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDE3OS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjQxODA6aW50IGRyYmRfbmxfc3RhcnRfb3ZfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDE4MS17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQyMjUtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0MjI2OmludCBkcmJkX25sX25ld19jX3V1aWRfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDIyNy17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTQzMjA9c3RhdGljIHZvaWQgcmVzb3VyY2VfdG9faW5mbyhzdHJ1Y3QgcmVzb3VyY2VfaW5mbyAqaW5mbyxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDMyOC1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjQzMjk6aW50IGRyYmRfbmxfbmV3X3Jlc291cmNlX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQzMzAte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz00Mzg1PXN0YXRpYyB2b2lkIGRldmljZV90b19pbmZvKHN0cnVjdCBkZXZpY2VfaW5mbyAqaW5mbyxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDM5MS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjQzOTI6aW50IGRyYmRfbmxfbmV3X21pbm9yX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQzOTMte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz00NDYyPXN0YXRpYyBlbnVtIGRyYmRfcmV0X2NvZGUgYWRtX2RlbF9taW5vcihzdHJ1Y3QgZHJiZF9kZXZpY2UgKmRldmljZSlcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDQ5OC1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjQ0OTk6aW50IGRyYmRfbmxfZGVsX21pbm9yX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQ1MDAte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz00NTE4PXN0YXRpYyBpbnQgYWRtX2RlbF9yZXNvdXJjZShzdHJ1Y3QgZHJiZF9yZXNvdXJjZSAqcmVzb3VyY2UpXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQ1NDctXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0NTQ4OmludCBkcmJkX25sX2Rvd25fZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDU0OS17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQ2MTAtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0NjExOmludCBkcmJkX25sX2RlbF9yZXNvdXJjZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00NjEyLXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jPTM1OT1jb25zdCBzdHJ1Y3QgZ2VubF9zcGxpdF9vcHMgZHJiZF9ubF9vcHNbMzJdID0ge1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtMzYxLVxcdFxcdC5jbWRcXHRcXHQ9IERSQkRfQURNX0dFVF9TVEFUVVMsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6MzYyOlxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzozNjM6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfZ2V0X3N0YXR1c19kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjM2NDpcXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zNjUtXFx0XFx0LnBvbGljeVxcdFxcdD0gZHJiZF9nZXRfc3RhdHVzX2RvX25sX3BvbGljeSxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTM3Ny1cXHRcXHQuY21kXFx0XFx0PSBEUkJEX0FETV9ORVdfTUlOT1IsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6Mzc4OlxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzozNzk6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfbmV3X21pbm9yX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6MzgwOlxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTM4MS1cXHRcXHQucG9saWN5XFx0XFx0PSBkcmJkX25ld19taW5vcl9ubF9wb2xpY3ksXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zODYtXFx0XFx0LmNtZFxcdFxcdD0gRFJCRF9BRE1fREVMX01JTk9SLFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjM4NzpcXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6Mzg4OlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX2RlbF9taW5vcl9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjM4OTpcXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zOTAtXFx0XFx0LnBvbGljeVxcdFxcdD0gZHJiZF9kZWxfbWlub3JfbmxfcG9saWN5LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtMzk1LVxcdFxcdC5jbWRcXHRcXHQ9IERSQkRfQURNX05FV19SRVNPVVJDRSxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzozOTY6XFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjM5NzpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9uZXdfcmVzb3VyY2VfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzozOTg6XFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtMzk5LVxcdFxcdC5wb2xpY3lcXHRcXHQ9IGRyYmRfbmV3X3Jlc291cmNlX25sX3BvbGljeSxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQwNC1cXHRcXHQuY21kXFx0XFx0PSBEUkJEX0FETV9ERUxfUkVTT1VSQ0UsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDA1OlxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0MDY6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfZGVsX3Jlc291cmNlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDA3OlxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQwOC1cXHRcXHQucG9saWN5XFx0XFx0PSBkcmJkX2RlbF9yZXNvdXJjZV9ubF9wb2xpY3ksXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00MTMtXFx0XFx0LmNtZFxcdFxcdD0gRFJCRF9BRE1fUkVTT1VSQ0VfT1BUUyxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0MTQ6XFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQxNTpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9yZXNvdXJjZV9vcHRzX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDE2OlxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQxNy1cXHRcXHQucG9saWN5XFx0XFx0PSBkcmJkX3Jlc291cmNlX29wdHNfbmxfcG9saWN5LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDIyLVxcdFxcdC5jbWRcXHRcXHQ9IERSQkRfQURNX0NPTk5FQ1QsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDIzOlxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0MjQ6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfY29ubmVjdF9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQyNTpcXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00MjYtXFx0XFx0LnBvbGljeVxcdFxcdD0gZHJiZF9jb25uZWN0X25sX3BvbGljeSxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQzMS1cXHRcXHQuY21kXFx0XFx0PSBEUkJEX0FETV9ESVNDT05ORUNULFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQzMjpcXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDMzOlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX2Rpc2Nvbm5lY3RfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0MzQ6XFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDM1LVxcdFxcdC5wb2xpY3lcXHRcXHQ9IGRyYmRfZGlzY29ubmVjdF9ubF9wb2xpY3ksXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00NDAtXFx0XFx0LmNtZFxcdFxcdD0gRFJCRF9BRE1fQVRUQUNILFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ0MTpcXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDQyOlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX2F0dGFjaF9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ0MzpcXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00NDQtXFx0XFx0LnBvbGljeVxcdFxcdD0gZHJiZF9hdHRhY2hfbmxfcG9saWN5LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDQ5LVxcdFxcdC5jbWRcXHRcXHQ9IERSQkRfQURNX1JFU0laRSxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0NTA6XFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ1MTpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9yZXNpemVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0NTI6XFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDUzLVxcdFxcdC5wb2xpY3lcXHRcXHQ9IGRyYmRfcmVzaXplX25sX3BvbGljeSxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQ1OC1cXHRcXHQuY21kXFx0XFx0PSBEUkJEX0FETV9QUklNQVJZLFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ1OTpcXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDYwOlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX3ByaW1hcnlfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0NjE6XFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDYyLVxcdFxcdC5wb2xpY3lcXHRcXHQ9IGRyYmRfcHJpbWFyeV9ubF9wb2xpY3ksXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00NjctXFx0XFx0LmNtZFxcdFxcdD0gRFJCRF9BRE1fU0VDT05EQVJZLFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ2ODpcXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDY5OlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX3NlY29uZGFyeV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ3MDpcXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00NzEtXFx0XFx0LnBvbGljeVxcdFxcdD0gZHJiZF9zZWNvbmRhcnlfbmxfcG9saWN5LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDc2LVxcdFxcdC5jbWRcXHRcXHQ9IERSQkRfQURNX05FV19DX1VVSUQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDc3OlxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0Nzg6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfbmV3X2NfdXVpZF9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ3OTpcXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00ODAtXFx0XFx0LnBvbGljeVxcdFxcdD0gZHJiZF9uZXdfY191dWlkX25sX3BvbGljeSxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQ4NS1cXHRcXHQuY21kXFx0XFx0PSBEUkJEX0FETV9TVEFSVF9PVixcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0ODY6XFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ4NzpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9zdGFydF9vdl9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ4ODpcXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00ODktXFx0XFx0LnBvbGljeVxcdFxcdD0gZHJiZF9zdGFydF9vdl9ubF9wb2xpY3ksXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00OTQtXFx0XFx0LmNtZFxcdFxcdD0gRFJCRF9BRE1fREVUQUNILFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ5NTpcXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDk2OlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX2RldGFjaF9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ5NzpcXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00OTgtXFx0XFx0LnBvbGljeVxcdFxcdD0gZHJiZF9kZXRhY2hfbmxfcG9saWN5LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTAzLVxcdFxcdC5jbWRcXHRcXHQ9IERSQkRfQURNX0lOVkFMSURBVEUsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTA0OlxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1MDU6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfaW52YWxpZGF0ZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjUwNjpcXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01MDctXFx0XFx0LnBvbGljeVxcdFxcdD0gZHJiZF9pbnZhbGlkYXRlX25sX3BvbGljeSxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTUxMi1cXHRcXHQuY21kXFx0XFx0PSBEUkJEX0FETV9JTlZBTF9QRUVSLFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjUxMzpcXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTE0OlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX2ludmFsX3BlZXJfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1MTU6XFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTE2LVxcdFxcdC5wb2xpY3lcXHRcXHQ9IGRyYmRfaW52YWxfcGVlcl9ubF9wb2xpY3ksXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01MjEtXFx0XFx0LmNtZFxcdFxcdD0gRFJCRF9BRE1fUEFVU0VfU1lOQyxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1MjI6XFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjUyMzpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9wYXVzZV9zeW5jX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTI0OlxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTUyNS1cXHRcXHQucG9saWN5XFx0XFx0PSBkcmJkX3BhdXNlX3N5bmNfbmxfcG9saWN5LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTMwLVxcdFxcdC5jbWRcXHRcXHQ9IERSQkRfQURNX1JFU1VNRV9TWU5DLFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjUzMTpcXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTMyOlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX3Jlc3VtZV9zeW5jX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTMzOlxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTUzNC1cXHRcXHQucG9saWN5XFx0XFx0PSBkcmJkX3Jlc3VtZV9zeW5jX25sX3BvbGljeSxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTUzOS1cXHRcXHQuY21kXFx0XFx0PSBEUkJEX0FETV9TVVNQRU5EX0lPLFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU0MDpcXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTQxOlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX3N1c3BlbmRfaW9fZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1NDI6XFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTQzLVxcdFxcdC5wb2xpY3lcXHRcXHQ9IGRyYmRfc3VzcGVuZF9pb19ubF9wb2xpY3ksXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01NDgtXFx0XFx0LmNtZFxcdFxcdD0gRFJCRF9BRE1fUkVTVU1FX0lPLFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU0OTpcXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTUwOlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX3Jlc3VtZV9pb19kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU1MTpcXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01NTItXFx0XFx0LnBvbGljeVxcdFxcdD0gZHJiZF9yZXN1bWVfaW9fbmxfcG9saWN5LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTU3LVxcdFxcdC5jbWRcXHRcXHQ9IERSQkRfQURNX09VVERBVEUsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTU4OlxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1NTk6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfb3V0ZGF0ZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU2MDpcXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01NjEtXFx0XFx0LnBvbGljeVxcdFxcdD0gZHJiZF9vdXRkYXRlX25sX3BvbGljeSxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU2Ni1cXHRcXHQuY21kXFx0XFx0PSBEUkJEX0FETV9HRVRfVElNRU9VVF9UWVBFLFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU2NzpcXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTY4OlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX2dldF90aW1lb3V0X3R5cGVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1Njk6XFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTcwLVxcdFxcdC5wb2xpY3lcXHRcXHQ9IGRyYmRfZ2V0X3RpbWVvdXRfdHlwZV9ubF9wb2xpY3ksXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01NzUtXFx0XFx0LmNtZFxcdFxcdD0gRFJCRF9BRE1fRE9XTixcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1NzY6XFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU3NzpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9kb3duX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTc4OlxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU3OS1cXHRcXHQucG9saWN5XFx0XFx0PSBkcmJkX2Rvd25fbmxfcG9saWN5LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTg0LVxcdFxcdC5jbWRcXHRcXHQ9IERSQkRfQURNX0NIR19ESVNLX09QVFMsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTg1OlxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1ODY6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfY2hnX2Rpc2tfb3B0c19kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU4NzpcXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01ODgtXFx0XFx0LnBvbGljeVxcdFxcdD0gZHJiZF9jaGdfZGlza19vcHRzX25sX3BvbGljeSxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU5My1cXHRcXHQuY21kXFx0XFx0PSBEUkJEX0FETV9DSEdfTkVUX09QVFMsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTk0OlxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1OTU6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfY2hnX25ldF9vcHRzX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTk2OlxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU5Ny1cXHRcXHQucG9saWN5XFx0XFx0PSBkcmJkX2NoZ19uZXRfb3B0c19ubF9wb2xpY3ksXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaD0zND1leHRlcm4gY29uc3Qgc3RydWN0IGdlbmxfc3BsaXRfb3BzIGRyYmRfbmxfb3BzWzMyXTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaC0zNS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDozNjppbnQgZHJiZF9wcmVfZG9pdChjb25zdCBzdHJ1Y3QgZ2VubF9zcGxpdF9vcHMgKm9wcywgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaC0zNy1cXHRcXHQgIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oPTM4PXZvaWRcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDozOTpkcmJkX3Bvc3RfZG9pdChjb25zdCBzdHJ1Y3QgZ2VubF9zcGxpdF9vcHMgKm9wcywgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaC00MC1cXHQgICAgICAgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaD00Mz1pbnQgZHJiZF9hZG1fZHVtcF9wZWVyX2RldmljZXNfZG9uZShzdHJ1Y3QgbmV0bGlua19jYWxsYmFjayAqY2IpO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oLTQ0LVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjQ1OmludCBkcmJkX25sX2dldF9zdGF0dXNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaC00Ni1pbnQgZHJiZF9ubF9nZXRfc3RhdHVzX2R1bXBpdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0bGlua19jYWxsYmFjayAqY2IpO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjQ3OmludCBkcmJkX25sX25ld19taW5vcl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjQ4OmludCBkcmJkX25sX2RlbF9taW5vcl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjQ5OmludCBkcmJkX25sX25ld19yZXNvdXJjZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjUwOmludCBkcmJkX25sX2RlbF9yZXNvdXJjZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjUxOmludCBkcmJkX25sX3Jlc291cmNlX29wdHNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo1MjppbnQgZHJiZF9ubF9jb25uZWN0X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NTM6aW50IGRyYmRfbmxfZGlzY29ubmVjdF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjU0OmludCBkcmJkX25sX2F0dGFjaF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjU1OmludCBkcmJkX25sX3Jlc2l6ZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjU2OmludCBkcmJkX25sX3ByaW1hcnlfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo1NzppbnQgZHJiZF9ubF9zZWNvbmRhcnlfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo1ODppbnQgZHJiZF9ubF9uZXdfY191dWlkX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NTk6aW50IGRyYmRfbmxfc3RhcnRfb3ZfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo2MDppbnQgZHJiZF9ubF9kZXRhY2hfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo2MTppbnQgZHJiZF9ubF9pbnZhbGlkYXRlX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NjI6aW50IGRyYmRfbmxfaW52YWxfcGVlcl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjYzOmludCBkcmJkX25sX3BhdXNlX3N5bmNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo2NDppbnQgZHJiZF9ubF9yZXN1bWVfc3luY19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjY1OmludCBkcmJkX25sX3N1c3BlbmRfaW9fZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo2NjppbnQgZHJiZF9ubF9yZXN1bWVfaW9fZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo2NzppbnQgZHJiZF9ubF9vdXRkYXRlX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6Njg6aW50IGRyYmRfbmxfZ2V0X3RpbWVvdXRfdHlwZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjY5OmludCBkcmJkX25sX2Rvd25fZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo3MDppbnQgZHJiZF9ubF9jaGdfZGlza19vcHRzX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NzE6aW50IGRyYmRfbmxfY2hnX25ldF9vcHRzX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmgtNzItaW50IGRyYmRfbmxfZ2V0X3Jlc291cmNlc19kdW1waXQoc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYz0xNzMxPXN0YXRpYyBzdHJ1Y3QgZHBsbF9waW4gKmRwbGxfcGluX2ZpbmRfZnJvbV9ubGF0dHIoc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0xNzg4LVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYzoxNzg5OmludCBkcGxsX25sX3Bpbl9pZF9nZXRfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0xNzkwLXtcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0xODIzLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYzoxODI0OmludCBkcGxsX25sX3Bpbl9nZXRfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0xODI1LXtcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYz0xODUyPWludCBkcGxsX25sX3Bpbl9nZXRfZHVtcGl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYilcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0xODg4LVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYzoxODg5OmludCBkcGxsX25sX3Bpbl9zZXRfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0xODkwLXtcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYz0xOTI3PWRwbGxfZGV2aWNlX2ZpbmRfZnJvbV9ubGF0dHIoc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0xOTY1LVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYzoxOTY2OmludCBkcGxsX25sX2RldmljZV9pZF9nZXRfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0xOTY3LXtcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0xOTk3LVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYzoxOTk4OmludCBkcGxsX25sX2RldmljZV9nZXRfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0xOTk5LXtcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYz0yMDI2PWRwbGxfc2V0X2Zyb21fbmxhdHRyKHN0cnVjdCBkcGxsX2RldmljZSAqZHBsbCwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0yMDYyLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYzoyMDYzOmludCBkcGxsX25sX2RldmljZV9zZXRfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0yMDY0LXtcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYz0yMDcwPWludCBkcGxsX25sX2RldmljZV9nZXRfZHVtcGl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYilcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0yMTAzLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYzoyMTA0OmludCBkcGxsX3ByZV9kb2l0KGNvbnN0IHN0cnVjdCBnZW5sX3NwbGl0X29wcyAqb3BzLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0yMTA1LVxcdFxcdCAgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0yMTI0LVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYzoyMTI1OnZvaWQgZHBsbF9wb3N0X2RvaXQoY29uc3Qgc3RydWN0IGdlbmxfc3BsaXRfb3BzICpvcHMsIHN0cnVjdCBza19idWZmICpza2IsXFxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jLTIxMjYtXFx0XFx0ICAgIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuLS1cXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmM9MjEzMT1pbnRcXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmM6MjEzMjpkcGxsX2xvY2tfZG9pdChjb25zdCBzdHJ1Y3QgZ2VubF9zcGxpdF9vcHMgKm9wcywgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmMtMjEzMy1cXHQgICAgICAgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYz0yMTQwPXZvaWRcXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmM6MjE0MTpkcGxsX3VubG9ja19kb2l0KGNvbnN0IHN0cnVjdCBnZW5sX3NwbGl0X29wcyAqb3BzLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0yMTQyLVxcdFxcdCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbi0tXFxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jLTIxNDYtXFxuZHJpdmVycy9kcGxsL2RwbGxfbmV0bGluay5jOjIxNDc6aW50IGRwbGxfcGluX3ByZV9kb2l0KGNvbnN0IHN0cnVjdCBnZW5sX3NwbGl0X29wcyAqb3BzLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbmRyaXZlcnMvZHBsbC9kcGxsX25ldGxpbmsuYy0yMTQ4LVxcdFxcdCAgICAgIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuLS1cXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmMtMjE3Mi1cXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmM6MjE3Mzp2b2lkIGRwbGxfcGluX3Bvc3RfZG9pdChjb25zdCBzdHJ1Y3QgZ2VubF9zcGxpdF9vcHMgKm9wcywgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5kcml2ZXJzL2RwbGwvZHBsbF9uZXRsaW5rLmMtMjE3NC1cXHRcXHRcXHRzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbi0tXFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYz05Mj1zdGF0aWMgY29uc3Qgc3RydWN0IGdlbmxfc3BsaXRfb3BzIGRwbGxfbmxfb3BzW10gPSB7XFxuLS1cXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jLTk0LVxcdFxcdC5jbWRcXHRcXHQ9IERQTExfQ01EX0RFVklDRV9JRF9HRVQsXFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYzo5NTpcXHRcXHQucHJlX2RvaXRcXHQ9IGRwbGxfbG9ja19kb2l0LFxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmM6OTY6XFx0XFx0LmRvaXRcXHRcXHQ9IGRwbGxfbmxfZGV2aWNlX2lkX2dldF9kb2l0LFxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmM6OTc6XFx0XFx0LnBvc3RfZG9pdFxcdD0gZHBsbF91bmxvY2tfZG9pdCxcXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jLTk4LVxcdFxcdC5wb2xpY3lcXHRcXHQ9IGRwbGxfZGV2aWNlX2lkX2dldF9ubF9wb2xpY3ksXFxuLS1cXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jLTEwMy1cXHRcXHQuY21kXFx0XFx0PSBEUExMX0NNRF9ERVZJQ0VfR0VULFxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmM6MTA0OlxcdFxcdC5wcmVfZG9pdFxcdD0gZHBsbF9wcmVfZG9pdCxcXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jOjEwNTpcXHRcXHQuZG9pdFxcdFxcdD0gZHBsbF9ubF9kZXZpY2VfZ2V0X2RvaXQsXFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYzoxMDY6XFx0XFx0LnBvc3RfZG9pdFxcdD0gZHBsbF9wb3N0X2RvaXQsXFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYy0xMDctXFx0XFx0LnBvbGljeVxcdFxcdD0gZHBsbF9kZXZpY2VfZ2V0X25sX3BvbGljeSxcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmMtMTE3LVxcdFxcdC5jbWRcXHRcXHQ9IERQTExfQ01EX0RFVklDRV9TRVQsXFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYzoxMTg6XFx0XFx0LnByZV9kb2l0XFx0PSBkcGxsX3ByZV9kb2l0LFxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmM6MTE5OlxcdFxcdC5kb2l0XFx0XFx0PSBkcGxsX25sX2RldmljZV9zZXRfZG9pdCxcXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jOjEyMDpcXHRcXHQucG9zdF9kb2l0XFx0PSBkcGxsX3Bvc3RfZG9pdCxcXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jLTEyMS1cXHRcXHQucG9saWN5XFx0XFx0PSBkcGxsX2RldmljZV9zZXRfbmxfcG9saWN5LFxcbi0tXFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYy0xMjYtXFx0XFx0LmNtZFxcdFxcdD0gRFBMTF9DTURfUElOX0lEX0dFVCxcXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jOjEyNzpcXHRcXHQucHJlX2RvaXRcXHQ9IGRwbGxfbG9ja19kb2l0LFxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmM6MTI4OlxcdFxcdC5kb2l0XFx0XFx0PSBkcGxsX25sX3Bpbl9pZF9nZXRfZG9pdCxcXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jOjEyOTpcXHRcXHQucG9zdF9kb2l0XFx0PSBkcGxsX3VubG9ja19kb2l0LFxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmMtMTMwLVxcdFxcdC5wb2xpY3lcXHRcXHQ9IGRwbGxfcGluX2lkX2dldF9ubF9wb2xpY3ksXFxuLS1cXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jLTEzNS1cXHRcXHQuY21kXFx0XFx0PSBEUExMX0NNRF9QSU5fR0VULFxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmM6MTM2OlxcdFxcdC5wcmVfZG9pdFxcdD0gZHBsbF9waW5fcHJlX2RvaXQsXFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYzoxMzc6XFx0XFx0LmRvaXRcXHRcXHQ9IGRwbGxfbmxfcGluX2dldF9kb2l0LFxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmM6MTM4OlxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRwbGxfcGluX3Bvc3RfZG9pdCxcXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jLTEzOS1cXHRcXHQucG9saWN5XFx0XFx0PSBkcGxsX3Bpbl9nZXRfZG9fbmxfcG9saWN5LFxcbi0tXFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYy0xNTEtXFx0XFx0LmNtZFxcdFxcdD0gRFBMTF9DTURfUElOX1NFVCxcXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jOjE1MjpcXHRcXHQucHJlX2RvaXRcXHQ9IGRwbGxfcGluX3ByZV9kb2l0LFxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmM6MTUzOlxcdFxcdC5kb2l0XFx0XFx0PSBkcGxsX25sX3Bpbl9zZXRfZG9pdCxcXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5jOjE1NDpcXHRcXHQucG9zdF9kb2l0XFx0PSBkcGxsX3Bpbl9wb3N0X2RvaXQsXFxuZHJpdmVycy9kcGxsL2RwbGxfbmwuYy0xNTUtXFx0XFx0LnBvbGljeVxcdFxcdD0gZHBsbF9waW5fc2V0X25sX3BvbGljeSxcXG4tLVxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmg9MTg9ZXh0ZXJuIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRwbGxfcmVmZXJlbmNlX3N5bmNfbmxfcG9saWN5W0RQTExfQV9QSU5fU1RBVEUgKyAxXTtcXG5kcml2ZXJzL2RwbGwvZHBsbF9ubC5oLTE5LVxcbmRyaXZlcnMvZHBsbC9kcGxsX25sLmg6MjA6aW50IGRwbGxfbG9ja19kb2l0KGNvbnN0IHN0cnVjdCBnZW5sX3NwbGl0X29wcyAqb3BzLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMjo0NjoyNS40MTE3MTY0N1oiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDg5NDExODY4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqU2VhcmNoaW5nIGZvciBgX2RvaXRgIGluIGBuZXQvcHNwL2AqKlxuXG5BbHJpZ2h0LCBsZXQncyBnZXQgZG93biB0byBpdC4gTXkgaW5pdGlhbCB0aG91Z2h0IHByb2Nlc3MgaXMgc3RyYWlnaHRmb3J3YXJkOiBJIG5lZWQgdG8gaW52ZXN0aWdhdGUgdGhlIGZ1bmN0aW9uYWxpdHkgb3IgaW1wbGVtZW50YXRpb24gb2Ygc29tZXRoaW5nIHJlbGF0ZWQgdG8gYF9kb2l0YCB3aXRoaW4gdGhlIGBuZXQvcHNwL2AgZGlyZWN0b3J5IHN0cnVjdHVyZS4gR2l2ZW4gbXkgZXhwZXJ0aXNlLCBJ4oCZbSBpbW1lZGlhdGVseSBmb3JtaW5nIGh5cG90aGVzZXMgYmFzZWQgb24gY29udGV4dC4gXCJOZXRcIiBzdHJvbmdseSBzdWdnZXN0cyBuZXR3b3JraW5nIGNvbXBvbmVudHMgb3IgbW9kdWxlcywgYW5kIFwicHNwXCIgY291bGQgaW5kaWNhdGUgcHJvdG9jb2xzLCBwb3RlbnRpYWxseSByZWZlcnJpbmcgdG8gUG9zdFNjcmlwdCwgcHJvdG9jb2wtc3BlY2lmaWMgcHJvY2Vzc2luZywgb3IgcGVyaGFwcyBzb21ldGhpbmcgZW50aXJlbHkgaW50ZXJuYWwgdG8gdGhlIHN5c3RlbSBJJ20gd29ya2luZyB3aXRoIChvciB0cm91Ymxlc2hvb3RpbmcpLlxuXG5NeSBpbW1lZGlhdGUgZ29hbCBpc24ndCBqdXN0IHRvICpmaW5kKiB0aGUgc3RyaW5nLCBidXQgdG8gdW5kZXJzdGFuZCBpdHMgdXNhZ2UuIEknbSBhbHJlYWR5IGFudGljaXBhdGluZyB0aGUgbmVlZCB0byBpbnRlcnByZXQgdGhlIHN1cnJvdW5kaW5nIGNvZGUsIGlkZW50aWZ5IGl0cyBwdXJwb3NlLCBhbmQgZGV0ZXJtaW5lIGFueSBkZXBlbmRlbmNpZXMgb3Igc2lkZSBlZmZlY3RzLiBJcyBgX2RvaXRgIGEgZnVuY3Rpb24sIGEgbWFjcm8sIGEgdmFyaWFibGUsIG9yIHNvbWV0aGluZyBlbHNlIGVudGlyZWx5PyBUaGUgdW5kZXJzY29yZSBwcmVmaXggdHlwaWNhbGx5IHN1Z2dlc3RzIGludGVybmFsIHVzYWdlIG9yIGEgY29udmVudGlvbi4gSeKAmW0gYWxzbyBjb25zaWRlcmluZyBob3cgdGhlIHNlYXJjaCBjb250ZXh0IGlzIGNvbmZpZ3VyZWQuIElzIHRoaXMgYSBjb2RlIHNlYXJjaCwgYSBkZWJ1Z2dpbmcgc2Vzc2lvbiwgb3IgYXJlIHdlIHdvcmtpbmcgaW4gYSBzcGVjaWZpYyBidWlsZCBjb250ZXh0PyBUaGUgc2VhcmNoIHBhcmFtZXRlcnMgd2lsbCBpbmZsdWVuY2UgaG93IEkgaW50ZXJwcmV0IHRoZSByZXN1bHRzLiBBcmUgd2UgdGFsa2luZyBhYm91dCBhIHNvdXJjZSBjb2RlIHNlYXJjaD8gVGhlbiwgdGhlIHNlYXJjaCBlbmdpbmUgSSB1c2UsIGxpa2UgZ3JlcCwgcmlwZ3JlcCwgb3IgVlMgQ29kZeKAmXMgc2VhcmNoIGZ1bmN0aW9uYWxpdHksIHdpbGwgYWZmZWN0IGhvdyBJIGFwcHJvYWNoIHRoaXMuIElzIHRoaXMgYSBydW50aW1lIGludmVzdGlnYXRpb24/IFRoZW4sIHRvb2xzIGxpa2UgZ2RiIG9yIGRlYnVnZ2VycyBtYXkgYmUgaW52b2x2ZWQuIFVsdGltYXRlbHksIHRoaXMgc2VhcmNoIGlzIHRoZSBmb3VuZGF0aW9uIGZvciBhIGRlZXBlciBkaXZlLiBUaGUgaW5mb3JtYXRpb24gZ2FpbmVkIHdpbGwgZGljdGF0ZSBteSBuZXh0IHN0ZXBzLCBhbmQgSSBhbSByZWFkeSB0byBhZGFwdCBhY2NvcmRpbmdseS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjM1MTYsIk91dHB1dFRva2VucyI6MjcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMjo0NjoyOS41MDExMzI3MzhaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0NjQyNDI5NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJfZG9pdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvcHNwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvcHNwL3BzcC1ubC1nZW4uYz03MT1zdGF0aWMgY29uc3Qgc3RydWN0IGdlbmxfc3BsaXRfb3BzIHBzcF9ubF9vcHNbXSA9IHtcXG4tLVxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jLTczLVxcdFxcdC5jbWRcXHRcXHQ9IFBTUF9DTURfREVWX0dFVCxcXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzo3NDpcXHRcXHQucHJlX2RvaXRcXHQ9IHBzcF9kZXZpY2VfZ2V0X2xvY2tlZCxcXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzo3NTpcXHRcXHQuZG9pdFxcdFxcdD0gcHNwX25sX2Rldl9nZXRfZG9pdCxcXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzo3NjpcXHRcXHQucG9zdF9kb2l0XFx0PSBwc3BfZGV2aWNlX3VubG9jayxcXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy03Ny1cXHRcXHQucG9saWN5XFx0XFx0PSBwc3BfZGV2X2dldF9ubF9wb2xpY3ksXFxuLS1cXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy04Ny1cXHRcXHQuY21kXFx0XFx0PSBQU1BfQ01EX0RFVl9TRVQsXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmM6ODg6XFx0XFx0LnByZV9kb2l0XFx0PSBwc3BfZGV2aWNlX2dldF9sb2NrZWRfYWRtaW4sXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmM6ODk6XFx0XFx0LmRvaXRcXHRcXHQ9IHBzcF9ubF9kZXZfc2V0X2RvaXQsXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmM6OTA6XFx0XFx0LnBvc3RfZG9pdFxcdD0gcHNwX2RldmljZV91bmxvY2ssXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmMtOTEtXFx0XFx0LnBvbGljeVxcdFxcdD0gcHNwX2Rldl9zZXRfbmxfcG9saWN5LFxcbi0tXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmMtOTYtXFx0XFx0LmNtZFxcdFxcdD0gUFNQX0NNRF9LRVlfUk9UQVRFLFxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjk3OlxcdFxcdC5wcmVfZG9pdFxcdD0gcHNwX2RldmljZV9nZXRfbG9ja2VkX2FkbWluLFxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjk4OlxcdFxcdC5kb2l0XFx0XFx0PSBwc3Bfbmxfa2V5X3JvdGF0ZV9kb2l0LFxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjk5OlxcdFxcdC5wb3N0X2RvaXRcXHQ9IHBzcF9kZXZpY2VfdW5sb2NrLFxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jLTEwMC1cXHRcXHQucG9saWN5XFx0XFx0PSBwc3Bfa2V5X3JvdGF0ZV9ubF9wb2xpY3ksXFxuLS1cXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy0xMDUtXFx0XFx0LmNtZFxcdFxcdD0gUFNQX0NNRF9SWF9BU1NPQyxcXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxMDY6XFx0XFx0LnByZV9kb2l0XFx0PSBwc3BfYXNzb2NfZGV2aWNlX2dldF9sb2NrZWQsXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmM6MTA3OlxcdFxcdC5kb2l0XFx0XFx0PSBwc3BfbmxfcnhfYXNzb2NfZG9pdCxcXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxMDg6XFx0XFx0LnBvc3RfZG9pdFxcdD0gcHNwX2RldmljZV91bmxvY2ssXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmMtMTA5LVxcdFxcdC5wb2xpY3lcXHRcXHQ9IHBzcF9yeF9hc3NvY19ubF9wb2xpY3ksXFxuLS1cXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy0xMTQtXFx0XFx0LmNtZFxcdFxcdD0gUFNQX0NNRF9UWF9BU1NPQyxcXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxMTU6XFx0XFx0LnByZV9kb2l0XFx0PSBwc3BfYXNzb2NfZGV2aWNlX2dldF9sb2NrZWQsXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmM6MTE2OlxcdFxcdC5kb2l0XFx0XFx0PSBwc3BfbmxfdHhfYXNzb2NfZG9pdCxcXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxMTc6XFx0XFx0LnBvc3RfZG9pdFxcdD0gcHNwX2RldmljZV91bmxvY2ssXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmMtMTE4LVxcdFxcdC5wb2xpY3lcXHRcXHQ9IHBzcF90eF9hc3NvY19ubF9wb2xpY3ksXFxuLS1cXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy0xMjMtXFx0XFx0LmNtZFxcdFxcdD0gUFNQX0NNRF9HRVRfU1RBVFMsXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmM6MTI0OlxcdFxcdC5wcmVfZG9pdFxcdD0gcHNwX2RldmljZV9nZXRfbG9ja2VkLFxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjEyNTpcXHRcXHQuZG9pdFxcdFxcdD0gcHNwX25sX2dldF9zdGF0c19kb2l0LFxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjEyNjpcXHRcXHQucG9zdF9kb2l0XFx0PSBwc3BfZGV2aWNlX3VubG9jayxcXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy0xMjctXFx0XFx0LnBvbGljeVxcdFxcdD0gcHNwX2dldF9zdGF0c19ubF9wb2xpY3ksXFxuLS1cXG5uZXQvcHNwL3BzcC1ubC1nZW4uYy0xMzctXFx0XFx0LmNtZFxcdFxcdD0gUFNQX0NNRF9ERVZfQVNTT0MsXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmM6MTM4OlxcdFxcdC5wcmVfZG9pdFxcdD0gcHNwX2RldmljZV9nZXRfbG9ja2VkX2Rldl9hc3NvYyxcXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxMzk6XFx0XFx0LmRvaXRcXHRcXHQ9IHBzcF9ubF9kZXZfYXNzb2NfZG9pdCxcXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxNDA6XFx0XFx0LnBvc3RfZG9pdFxcdD0gcHNwX2RldmljZV91bmxvY2ssXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmMtMTQxLVxcdFxcdC5wb2xpY3lcXHRcXHQ9IHBzcF9kZXZfYXNzb2NfbmxfcG9saWN5LFxcbi0tXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmMtMTQ2LVxcdFxcdC5jbWRcXHRcXHQ9IFBTUF9DTURfREVWX0RJU0FTU09DLFxcbm5ldC9wc3AvcHNwLW5sLWdlbi5jOjE0NzpcXHRcXHQucHJlX2RvaXRcXHQ9IHBzcF9kZXZpY2VfZ2V0X2xvY2tlZCxcXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxNDg6XFx0XFx0LmRvaXRcXHRcXHQ9IHBzcF9ubF9kZXZfZGlzYXNzb2NfZG9pdCxcXG5uZXQvcHNwL3BzcC1ubC1nZW4uYzoxNDk6XFx0XFx0LnBvc3RfZG9pdFxcdD0gcHNwX2RldmljZV91bmxvY2ssXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmMtMTUwLVxcdFxcdC5wb2xpY3lcXHRcXHQ9IHBzcF9kZXZfZGlzYXNzb2NfbmxfcG9saWN5LFxcbi0tXFxubmV0L3BzcC9wc3AtbmwtZ2VuLmg9Mjg9cHNwX2RldmljZV91bmxvY2soY29uc3Qgc3RydWN0IGdlbmxfc3BsaXRfb3BzICpvcHMsIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5uZXQvcHNwL3BzcC1ubC1nZW4uaC0zMC1cXG5uZXQvcHNwL3BzcC1ubC1nZW4uaDozMTppbnQgcHNwX25sX2Rldl9nZXRfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5uZXQvcHNwL3BzcC1ubC1nZW4uaC0zMi1pbnQgcHNwX25sX2Rldl9nZXRfZHVtcGl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYik7XFxubmV0L3BzcC9wc3AtbmwtZ2VuLmg6MzM6aW50IHBzcF9ubF9kZXZfc2V0X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxubmV0L3BzcC9wc3AtbmwtZ2VuLmg6MzQ6aW50IHBzcF9ubF9rZXlfcm90YXRlX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxubmV0L3BzcC9wc3AtbmwtZ2VuLmg6MzU6aW50IHBzcF9ubF9yeF9hc3NvY19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbm5ldC9wc3AvcHNwLW5sLWdlbi5oOjM2OmludCBwc3BfbmxfdHhfYXNzb2NfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5uZXQvcHNwL3BzcC1ubC1nZW4uaDozNzppbnQgcHNwX25sX2dldF9zdGF0c19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbm5ldC9wc3AvcHNwLW5sLWdlbi5oLTM4LWludCBwc3BfbmxfZ2V0X3N0YXRzX2R1bXBpdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0bGlua19jYWxsYmFjayAqY2IpO1xcbm5ldC9wc3AvcHNwLW5sLWdlbi5oOjM5OmludCBwc3BfbmxfZGV2X2Fzc29jX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxubmV0L3BzcC9wc3AtbmwtZ2VuLmg6NDA6aW50IHBzcF9ubF9kZXZfZGlzYXNzb2NfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5uZXQvcHNwL3BzcC1ubC1nZW4uaC00MS1cXG4tLVxcbm5ldC9wc3AvcHNwX25sLmM9MzUwPXZvaWQgcHNwX25sX25vdGlmeV9kZXYoc3RydWN0IHBzcF9kZXYgKnBzZCwgdTMyIGNtZClcXG4tLVxcbm5ldC9wc3AvcHNwX25sLmMtMzU1LVxcbm5ldC9wc3AvcHNwX25sLmM6MzU2OmludCBwc3BfbmxfZGV2X2dldF9kb2l0KHN0cnVjdCBza19idWZmICpyZXEsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxubmV0L3BzcC9wc3BfbmwuYy0zNTcte1xcbi0tXFxubmV0L3BzcC9wc3BfbmwuYz0zODc9aW50IHBzcF9ubF9kZXZfZ2V0X2R1bXBpdChzdHJ1Y3Qgc2tfYnVmZiAqcnNwLCBzdHJ1Y3QgbmV0bGlua19jYWxsYmFjayAqY2IpXFxuLS1cXG5uZXQvcHNwL3BzcF9ubC5jLTQwNC1cXG5uZXQvcHNwL3BzcF9ubC5jOjQwNTppbnQgcHNwX25sX2Rldl9zZXRfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbm5ldC9wc3AvcHNwX25sLmMtNDA2LXtcXG4tLVxcbm5ldC9wc3AvcHNwX25sLmMtNDQ2LVxcbm5ldC9wc3AvcHNwX25sLmM6NDQ3OmludCBwc3Bfbmxfa2V5X3JvdGF0ZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxubmV0L3BzcC9wc3BfbmwuYy00NDgte1xcbi0tXFxubmV0L3BzcC9wc3BfbmwuYy00OTgtXFxubmV0L3BzcC9wc3BfbmwuYzo0OTk6aW50IHBzcF9ubF9kZXZfYXNzb2NfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbm5ldC9wc3AvcHNwX25sLmMtNTAwLXtcXG4tLVxcbm5ldC9wc3AvcHNwX25sLmMtNTgzLVxcbm5ldC9wc3AvcHNwX25sLmM6NTg0OmludCBwc3BfbmxfZGV2X2Rpc2Fzc29jX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5uZXQvcHNwL3BzcF9ubC5jLTU4NS17XFxuLS1cXG5uZXQvcHNwL3BzcF9ubC5jPTc1MD1wc3BfbmxfcHV0X2tleShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgYXR0ciwgdTMyIHZlcnNpb24sXFxuLS1cXG5uZXQvcHNwL3BzcF9ubC5jLTc2OC1cXG5uZXQvcHNwL3BzcF9ubC5jOjc2OTppbnQgcHNwX25sX3J4X2Fzc29jX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5uZXQvcHNwL3BzcF9ubC5jLTc3MC17XFxuLS1cXG5uZXQvcHNwL3BzcF9ubC5jLTgyNC1cXG5uZXQvcHNwL3BzcF9ubC5jOjgyNTppbnQgcHNwX25sX3R4X2Fzc29jX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5uZXQvcHNwL3BzcF9ubC5jLTgyNi17XFxuLS1cXG5uZXQvcHNwL3BzcF9ubC5jPTg3MD1wc3Bfbmxfc3RhdHNfZmlsbChzdHJ1Y3QgcHNwX2RldiAqcHNkLCBzdHJ1Y3Qgc2tfYnVmZiAqcnNwLFxcbi0tXFxubmV0L3BzcC9wc3BfbmwuYy05MTAtXFxubmV0L3BzcC9wc3BfbmwuYzo5MTE6aW50IHBzcF9ubF9nZXRfc3RhdHNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbm5ldC9wc3AvcHNwX25sLmMtOTEyLXtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjI6NDY6MjkuNjQ3NTYyNjc0WiIsIlNlcSI6MjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU1ODUyNTMzNzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHN5bWJvbHMgYW5kIHRoZSBpbnRlbmRlZCBhcHByb2FjaDpcblxuKipBbmFseXNpcyBvZiBGb2N1cyBTeW1ib2xzIGFuZCBUb29sIFNlbGVjdGlvbioqXG5cblJpZ2h0LCBJJ3ZlIGdvdCBhIHNvbGlkIGNvbGxlY3Rpb24gb2YgZm9jdXMgc3ltYm9scyBoZXJlLiBMZXQncyBzZWUsIHdlIGhhdmUgYSBzZXQgb2YgYHBzcF9ubF8qX2RvaXRgIGZ1bmN0aW9ucy4gVGhlc2UgbGlrZWx5IHJlcHJlc2VudCBOZXRsaW5rIG9wZXJhdGlvbnMgZm9yIGEgcGFydGljdWxhciBQU1AgKGxpa2VseSBhIFwiUHJvdGVjdGVkIFNlcnZpY2UgUGxhdGZvcm1cIiBvciBzb21ldGhpbmcgc2ltaWxhciwganVkZ2luZyBieSB0aGUgcHJlZml4KSwgY292ZXJpbmcgZ2V0dGluZywgc2V0dGluZywgcm90YXRpbmcga2V5cywgYW5kIGhhbmRsaW5nIGFzc29jaWF0aW9uL2Rpc2Fzc29jaWF0aW9uLCBib3RoIGZvciByZWNlaXZlIGFuZCB0cmFuc21pdCBzaWRlcywgYWxvbmcgd2l0aCBzdGF0aXN0aWNhbCBkYXRhIGFuZCBjcmVhdGlvbi9kZWxldGlvbi5cblxuU3BlY2lmaWNhbGx5LCBJIHNlZSBhIGNsZWFyIGdyb3VwIHRoYXQncyBhc3NvY2lhdGVkIHdpdGggZGV2aWNlIG1hbmFnZW1lbnQgYW5kIGFzc29jaWF0aW9uL2Rpc2Fzc29jaWF0aW9uLiBUaGUgdXNlIG9mIFwiZG9pdFwiIHN1Z2dlc3RzIHRoZXNlIGFyZSB0aGUgY29yZSBmdW5jdGlvbnMgdGhhdCBoYW5kbGUgc3BlY2lmaWMgYWN0aW9ucyBvciByZXF1ZXN0cy4gVGhlbiB0aGVyZSdzIGBwc3BfZGV2X2NyZWF0ZWAsIHdoaWNoIGxvZ2ljYWxseSBmaXRzIGludG8gZGV2aWNlIGxpZmVjeWNsZSBvcGVyYXRpb25zLiBJdCdzIGEgY29tcHJlaGVuc2l2ZSBzZXQsIGNvdmVyaW5nIGFsbCB0aGUgYmFzZXMgSSdkIGV4cGVjdCBmb3IgaW50ZXJhY3Rpb24gd2l0aCBhIG5ldHdvcmsgZGV2aWNlIHRocm91Z2ggTmV0bGluay5cblxuR2l2ZW4gdGhpcyBsaXN0LCBhbmQgdGhlIG5hdHVyZSBvZiB0aGVzZSBzeW1ib2xzLCB0aGUgXCJzZXQtcmVzdWx0c1wiIHRvb2wgaXMgZGVmaW5pdGVseSB0aGUgcmlnaHQgY2hvaWNlLiBJdCdzIGRlc2lnbmVkIGZvciBhbmFseXppbmcgZnVuY3Rpb24gY2FsbCBzZXF1ZW5jZXMuIEknbSBnb2luZyB0byBzdGFydCBieSBydW5uaW5nIHRob3NlIHN5bWJvbHMgdGhyb3VnaCB0aGUgXCJzZXQtcmVzdWx0c1wiIHRvb2wgYW5kIGV4YW1pbmUgdGhlIHJlc3VsdHMgaW4gZGV0YWlsLiBUaGlzIHdpbGwgYWxsb3cgbWUgdG8gdHJhY2sgdGhlIGV4ZWN1dGlvbiBmbG93LCBpZGVudGlmeSB3aGljaCBmdW5jdGlvbnMgY2FsbCBlYWNoIG90aGVyLCBhbmQgc2VlIGhvdyB0aGUgdmFyaW91cyBOZXRsaW5rIG9wZXJhdGlvbnMgaW50ZXJyZWxhdGUgd2l0aGluIHRoZSBzeXN0ZW0uIEl0IHNob3VsZCByZXZlYWwgdGhlIGNyaXRpY2FsIHBhdGhzIGFuZCBkZXBlbmRlbmNpZXMgZm9yIGRldmljZSBtYW5hZ2VtZW50LiBJIHNob3VsZCBiZSBhYmxlIHRvIGdldCBhIG11Y2ggY2xlYXJlciBwaWN0dXJlIG9mIHRoZSBvdmVyYWxsIGFyY2hpdGVjdHVyZSB3aXRoIHRoYXQgYXBwcm9hY2guXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2NTk2LCJPdXRwdXRUb2tlbnMiOjIyNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMjo0NjozNS4yMzI4MTg1MTRaIiwiU2VxIjoyNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDM4NDk4MDYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIklORVRfUFNQXCIsXG4gICAgXCJORVRERVZTSU1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJwc3BfbmxfZGV2X2dldF9kb2l0XCIsXG4gICAgXCJwc3BfbmxfZGV2X3NldF9kb2l0XCIsXG4gICAgXCJwc3Bfbmxfa2V5X3JvdGF0ZV9kb2l0XCIsXG4gICAgXCJwc3BfbmxfcnhfYXNzb2NfZG9pdFwiLFxuICAgIFwicHNwX25sX3R4X2Fzc29jX2RvaXRcIixcbiAgICBcInBzcF9ubF9nZXRfc3RhdHNfZG9pdFwiLFxuICAgIFwicHNwX25sX2Rldl9hc3NvY19kb2l0XCIsXG4gICAgXCJwc3BfbmxfZGV2X2Rpc2Fzc29jX2RvaXRcIixcbiAgICBcInBzcF9kZXZfY3JlYXRlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSByYWNlIGNvbmRpdGlvbiBpbiBgcHNwX25sX211bHRpY2FzdF9wZXJfbnNgIHdoZW4gYSBkZXZpY2UgY2hhbmdlcyBuZXRucyBpbiBwYXJhbGxlbC4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvcmUgbG9naWMgZm9yIHRoZSBQU1AgKFBTUCBTZWN1cml0eSBQcm90b2NvbCkgbmV0bGluayBpbnRlcmZhY2UuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSB2aWEgbmV0bGluayBjb21tYW5kcyBhbmQgY2FuIGJlIHRlc3RlZCB1c2luZyB0aGUgYG5ldGRldnNpbWAgZHJpdmVyIHdoaWNoIHN1cHBvcnRzIFBTUC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJTkVUX1BTUFwiLFxuICAgIFwiTkVUREVWU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicHNwX25sX2Rldl9nZXRfZG9pdFwiLFxuICAgIFwicHNwX25sX2Rldl9zZXRfZG9pdFwiLFxuICAgIFwicHNwX25sX2tleV9yb3RhdGVfZG9pdFwiLFxuICAgIFwicHNwX25sX3J4X2Fzc29jX2RvaXRcIixcbiAgICBcInBzcF9ubF90eF9hc3NvY19kb2l0XCIsXG4gICAgXCJwc3BfbmxfZ2V0X3N0YXRzX2RvaXRcIixcbiAgICBcInBzcF9ubF9kZXZfYXNzb2NfZG9pdFwiLFxuICAgIFwicHNwX25sX2Rldl9kaXNhc3NvY19kb2l0XCIsXG4gICAgXCJwc3BfZGV2X2NyZWF0ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gaW4gYHBzcF9ubF9tdWx0aWNhc3RfcGVyX25zYCB3aGVuIGEgZGV2aWNlIGNoYW5nZXMgbmV0bnMgaW4gcGFyYWxsZWwuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIGxvZ2ljIGZvciB0aGUgUFNQIChQU1AgU2VjdXJpdHkgUHJvdG9jb2wpIG5ldGxpbmsgaW50ZXJmYWNlLiBUaGUgY29kZSBpcyByZWFjaGFibGUgdmlhIG5ldGxpbmsgY29tbWFuZHMgYW5kIGNhbiBiZSB0ZXN0ZWQgdXNpbmcgdGhlIGBuZXRkZXZzaW1gIGRyaXZlciB3aGljaCBzdXBwb3J0cyBQU1AuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflow5sx97[1] Phase: Succeeded StartedAt: 2026-07-27 22:46:46 +0000 UTC FinishedAt: 2026-07-27 22:46:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5sx97[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-27 22:46:46 +0000 UTC FinishedAt: 2026-07-27 22:46:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5sx97[2] Phase: Succeeded StartedAt: 2026-07-27 22:46:46 +0000 UTC FinishedAt: 2026-07-28 03:00:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5sx97[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-27 22:46:46 +0000 UTC FinishedAt: 2026-07-28 03:00:34 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow5sx97[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-27 22:46:46 +0000 UTC FinishedAt: 2026-07-27 22:46:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5sx97[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-27 22:46:46 +0000 UTC FinishedAt: 2026-07-27 22:46:53 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow5sx97/series-workflow5sx97-convert-artifact-2006793003/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow5sx97[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-27 22:46:57 +0000 UTC FinishedAt: 2026-07-27 23:18:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5sx97[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-27 22:46:57 +0000 UTC FinishedAt: 2026-07-27 23:18:26 +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:*d464ef72-847a-4711-8624-79f6456a8fba,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-workflow5sx97/series-workflow5sx97-convert-artifact-2006793003/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": "d8f1cdd6-a718-4d89-93c6-136a1b3a7ebb", "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-workflow5sx97/series-workflow5sx97-build-action-3086011433/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow5sx97[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-27 22:46:57 +0000 UTC FinishedAt: 2026-07-27 23:18:16 +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:*d464ef72-847a-4711-8624-79f6456a8fba,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-workflow5sx97/series-workflow5sx97-convert-artifact-2006793003/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": "d8f1cdd6-a718-4d89-93c6-136a1b3a7ebb", "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-workflow5sx97/series-workflow5sx97-build-action-3086011433/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow5sx97[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-27 23:18:26 +0000 UTC FinishedAt: 2026-07-27 23:18:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5sx97[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-27 23:18:26 +0000 UTC FinishedAt: 2026-07-27 23:18:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5sx97[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-27 23:18:26 +0000 UTC FinishedAt: 2026-07-27 23:18:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5sx97[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-27 23:18:26 +0000 UTC FinishedAt: 2026-07-27 23:18:33 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow5sx97/series-workflow5sx97-convert-artifact-234840322/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow5sx97[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-27 23:18:36 +0000 UTC FinishedAt: 2026-07-27 23:20:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5sx97[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-27 23:18:36 +0000 UTC FinishedAt: 2026-07-27 23:20:33 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*d8f1cdd6-a718-4d89-93c6-136a1b3a7ebb,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-workflow5sx97/series-workflow5sx97-build-action-3086011433/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-workflow5sx97[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-27 23:20:43 +0000 UTC FinishedAt: 2026-07-27 23:20:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5sx97[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-27 23:20:43 +0000 UTC FinishedAt: 2026-07-27 23:20:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5sx97[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-27 23:20:43 +0000 UTC FinishedAt: 2026-07-27 23:56:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5sx97[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-27 23:20:43 +0000 UTC FinishedAt: 2026-07-27 23:56:11 +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:*d464ef72-847a-4711-8624-79f6456a8fba,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-workflow5sx97/series-workflow5sx97-convert-artifact-234840322/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": "daf668f2-5840-44ae-a0ba-2d13feaf6693", "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-workflow5sx97/series-workflow5sx97-build-action-1395870550/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow5sx97[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-27 23:20:43 +0000 UTC FinishedAt: 2026-07-27 23:56:01 +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:*d464ef72-847a-4711-8624-79f6456a8fba,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-workflow5sx97/series-workflow5sx97-convert-artifact-234840322/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": "daf668f2-5840-44ae-a0ba-2d13feaf6693", "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-workflow5sx97/series-workflow5sx97-build-action-1395870550/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow5sx97[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-27 23:56:11 +0000 UTC FinishedAt: 2026-07-27 23:56:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5sx97[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-27 23:56:11 +0000 UTC FinishedAt: 2026-07-27 23:56:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5sx97[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-27 23:56:11 +0000 UTC FinishedAt: 2026-07-27 23:58:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5sx97[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-27 23:56:11 +0000 UTC FinishedAt: 2026-07-27 23:57:52 +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:*daf668f2-5840-44ae-a0ba-2d13feaf6693,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-workflow5sx97/series-workflow5sx97-build-action-1395870550/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-workflow5sx97[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-27 23:58:02 +0000 UTC FinishedAt: 2026-07-28 03:00:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5sx97[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-27 23:58:02 +0000 UTC FinishedAt: 2026-07-28 03:00:34 +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":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"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:*d8f1cdd6-a718-4d89-93c6-136a1b3a7ebb,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*daf668f2-5840-44ae-a0ba-2d13feaf6693,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-workflow5sx97/series-workflow5sx97-build-action-3086011433/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-workflow5sx97/series-workflow5sx97-build-action-1395870550/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow5sx97[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-27 23:58:02 +0000 UTC FinishedAt: 2026-07-27 23:58:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5sx97[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-27 23:58:02 +0000 UTC FinishedAt: 2026-07-27 23:58:07 +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":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"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-workflow5sx97/series-workflow5sx97-convert-artifact-1048874807/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow5sx97[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-27 23:58:02 +0000 UTC FinishedAt: 2026-07-27 23:58:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5sx97[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-27 23:58:02 +0000 UTC FinishedAt: 2026-07-27 23:58:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5sx97[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-27 23:58:02 +0000 UTC FinishedAt: 2026-07-27 23:58:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5sx97[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-27 23:58:12 +0000 UTC FinishedAt: 2026-07-28 03:00:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5sx97[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["psp_nl_dev_get_doit","psp_nl_dev_set_doit","psp_nl_key_rotate_doit","psp_nl_rx_assoc_doit","psp_nl_tx_assoc_doit","psp_nl_get_stats_doit","psp_nl_dev_assoc_doit","psp_nl_dev_disassoc_doit","psp_dev_create"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53658c6f3682967a5e76ed4bc7462c4bdcddaec3","config_name":"upstream-apparmor-kasan.config","enable_configs":["INET_PSP","NETDEVSIM"],"series_id":"87e206be-fa1b-4284-a32d-fa954c044556","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-27 23:58:12 +0000 UTC FinishedAt: 2026-07-28 03:00:23 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*d8f1cdd6-a718-4d89-93c6-136a1b3a7ebb,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*daf668f2-5840-44ae-a0ba-2d13feaf6693,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-workflow5sx97/series-workflow5sx97-build-action-3086011433/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-workflow5sx97/series-workflow5sx97-build-action-1395870550/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-workflow5sx97/series-workflow5sx97-convert-artifact-1048874807/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,}