Name: series-workfloww5ctv Phase: Succeeded StartedAt: 2026-07-02 11:05:15 +0000 UTC FinishedAt: 2026-07-02 12:33:26 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww5ctv[0] Phase: Succeeded StartedAt: 2026-07-02 11:05:15 +0000 UTC FinishedAt: 2026-07-02 11:15:43 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww5ctv[0].run-triage Phase: Succeeded StartedAt: 2026-07-02 11:05:15 +0000 UTC FinishedAt: 2026-07-02 11:15:43 +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": "c75597caada080effbfbc0a7fb10dc2a3bb543ad", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "OCTEONTX2_AF" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "c75597caada080effbfbc0a7fb10dc2a3bb543ad", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "OCTEONTX2_AF" ], "series_id": "638eaea0-ea09-4be5-a40e-ce4c689756ce" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "rvu_mbox_handler_nix_set_rx_mode" ], "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+CgkJCTx0ZD4yMDI2LzA3LzAyIDExOjE0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O09DVEVPTlRYMl9BRiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3J2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2dpYyBmb3IgZW5hYmxpbmcvZGlzYWJsaW5nIG11bHRpY2FzdCBhbmQgcHJvbWlzY3VvdXMgbW9kZXMgaW4gdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBkcml2ZXIuIEl0IHNwZWNpZmljYWxseSBjaGFuZ2VzIHRoZSBiZWhhdmlvciBmb3IgVmlydHVhbCBGdW5jdGlvbnMgKFZGcykuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIHJlYWNoYWJsZSBQQ0kgZHJpdmVyICh2aWEgdmhjaSBlbXVsYXRpb24pLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDExOjE0PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgMmQ2ODFlMDcyM2RlZTNjMWQ2Yzk2MjA4YzYwYjI1YjI2OTBlMDMwN1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDIgMTE6MTQ6MTQgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jXG5pbmRleCBkODk4OTM5NWU4NzVkYS4uYTdlMGUwZTA1YWQyM2IgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguY1xuQEAgLTQ1NzUsNyAmIzQzOzQ1NzUsNyBAQCBpbnQgcnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3Qgbml4X3J4X21vZGUgKnJlcSxcbiBcdFx0cnZ1X25wY19pbnN0YWxsX2FsbG11bHRpX2VudHJ5KHJ2dSwgcGNpZnVuYywgbml4bGYsXG4gXHRcdFx0XHRcdCAgICAgICBwZnZmLVx1MDAzZXJ4X2NoYW5fYmFzZSk7XG4gXHR9IGVsc2Uge1xuLVx0XHRpZiAoIW5peF9yeF9tdWx0aWNhc3QpXG4mIzQzO1x0XHRpZiAoIW5peF9yeF9tdWx0aWNhc3QgXHUwMDI2XHUwMDI2ICFpc192ZihwY2lmdW5jKSlcbiBcdFx0XHRydnVfbnBjX2VuYWJsZV9hbGxtdWx0aV9lbnRyeShydnUsIHBjaWZ1bmMsIG5peGxmLCBmYWxzZSk7XG4gXHR9XG4gXG5AQCAtNDU4NSw3ICYjNDM7NDU4NSw3IEBAIGludCBydnVfbWJveF9oYW5kbGVyX25peF9zZXRfcnhfbW9kZShzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBuaXhfcnhfbW9kZSAqcmVxLFxuIFx0XHRcdFx0XHQgICAgICBwZnZmLVx1MDAzZXJ4X2NoYW5fYmFzZSxcbiBcdFx0XHRcdFx0ICAgICAgcGZ2Zi1cdTAwM2VyeF9jaGFuX2NudCk7XG4gXHRlbHNlXG4tXHRcdGlmICghbml4X3J4X211bHRpY2FzdClcbiYjNDM7XHRcdGlmICghbml4X3J4X211bHRpY2FzdCBcdTAwMjZcdTAwMjYgIWlzX3ZmKHBjaWZ1bmMpKVxuIFx0XHRcdHJ2dV9ucGNfZW5hYmxlX3Byb21pc2NfZW50cnkocnZ1LCBwY2lmdW5jLCBuaXhsZiwgZmFsc2UpO1xuIFxuIFx0cmV0dXJuIDA7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTQ8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7T0NURU9OVFgyX0FGJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBlbmFibGluZy9kaXNhYmxpbmcgbXVsdGljYXN0IGFuZCBwcm9taXNjdW91cyBtb2RlcyBpbiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgUlZVIEFkbWluIEZ1bmN0aW9uIGRyaXZlci4gSXQgc3BlY2lmaWNhbGx5IGNoYW5nZXMgdGhlIGJlaGF2aW9yIGZvciBWaXJ0dWFsIEZ1bmN0aW9ucyAoVkZzKS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgcmVhY2hhYmxlIFBDSSBkcml2ZXIgKHZpYSB2aGNpIGVtdWxhdGlvbikuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDJkNjgxZTA3MjNkZWUzYzFkNmM5NjIwOGM2MGIyNWIyNjkwZTAzMDcKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IEp1bCAyIDExOjE0OjE0IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jCmluZGV4IGQ4OTg5Mzk1ZTg3NWRhLi5hN2UwZTBlMDVhZDIzYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYwpAQCAtNDU3NSw3ICYjNDM7NDU3NSw3IEBAIGludCBydnVfbWJveF9oYW5kbGVyX25peF9zZXRfcnhfbW9kZShzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBuaXhfcnhfbW9kZSAqcmVxLAogCQlydnVfbnBjX2luc3RhbGxfYWxsbXVsdGlfZW50cnkocnZ1LCBwY2lmdW5jLCBuaXhsZiwKIAkJCQkJICAgICAgIHBmdmYtJmd0O3J4X2NoYW5fYmFzZSk7CiAJfSBlbHNlIHsKLQkJaWYgKCFuaXhfcnhfbXVsdGljYXN0KQomIzQzOwkJaWYgKCFuaXhfcnhfbXVsdGljYXN0ICZhbXA7JmFtcDsgIWlzX3ZmKHBjaWZ1bmMpKQogCQkJcnZ1X25wY19lbmFibGVfYWxsbXVsdGlfZW50cnkocnZ1LCBwY2lmdW5jLCBuaXhsZiwgZmFsc2UpOwogCX0KIApAQCAtNDU4NSw3ICYjNDM7NDU4NSw3IEBAIGludCBydnVfbWJveF9oYW5kbGVyX25peF9zZXRfcnhfbW9kZShzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBuaXhfcnhfbW9kZSAqcmVxLAogCQkJCQkgICAgICBwZnZmLSZndDtyeF9jaGFuX2Jhc2UsCiAJCQkJCSAgICAgIHBmdmYtJmd0O3J4X2NoYW5fY250KTsKIAllbHNlCi0JCWlmICghbml4X3J4X211bHRpY2FzdCkKJiM0MzsJCWlmICghbml4X3J4X211bHRpY2FzdCAmYW1wOyZhbXA7ICFpc192ZihwY2lmdW5jKSkKIAkJCXJ2dV9ucGNfZW5hYmxlX3Byb21pc2NfZW50cnkocnZ1LCBwY2lmdW5jLCBuaXhsZiwgZmFsc2UpOwogCiAJcmV0dXJuIDA7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDExOjE0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwOTAKCQkJCQkJCW91dHB1dDogNjAKCQkJCQkJCXRob3VnaHRzOiAyNjQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgTWFydmVsbCBPY3Rlb25UWDIgUlZVIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IHR3ZWFrcyB0aGUgYHJ2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlYCBmdW5jdGlvbiBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jYC4gVGhlIGNvcmUgY2hhbmdlIGlzIGEgc21hbGwgY29uZGl0aW9uYWwgbW9kaWZpY2F0aW9uOiBgIW5peF9yeF9tdWx0aWNhc3RgIG5vdyBpbmNsdWRlcyBhIGNoZWNrIGZvciBgIWlzX3ZmKHBjaWZ1bmMpYC4gRnVuY3Rpb25hbGx5LCB0aGlzIHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2ggd2l0aGluIHRoZSBjb250ZXh0IG9mIHRoZSBPY3Rlb25UWDIgUlZVIGRyaXZlci4KCkhvd2V2ZXIsIG15IGV4cGVydCBpbnN0aW5jdHMga2ljayBpbiBpbW1lZGlhdGVseS4gVGhlIE9jdGVvblRYMiBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGV0aGVybmV0IGNvbnRyb2xsZXIuIE15IGZpcnN0IHRob3VnaHQgaXMgYWJvdXQgcmVhY2hhYmlsaXR5LiBDb3VsZCB0aGlzIGRyaXZlciBldmVuIGJlIGV4ZXJjaXNlZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGxpa2UgUUVNVSBvciBHb29nbGUgQ29tcHV0ZSBFbmdpbmU/IEdlbmVyYWxseSwgdGhlc2UgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVycyBhcmVuJiMzOTt0IGFjY2Vzc2libGUgdW5sZXNzIHRoZXJlJiMzOTtzIGFuIGVtdWxhdG9yIHNwZWNpZmljYWxseSBmb3IgdGhlIE9jdGVvblRYMiBvciBpZiBpdCYjMzk7cyBvcGVyYXRpbmcgYXMgYSBnZW5lcmljIGRyaXZlci4KClNvLCB0aGUgbmV4dCBzdGVwIGlzIHRvIGludmVzdGlnYXRlIHRoZSBwb3NzaWJpbGl0eSBvZiBlbXVsYXRpb24gaW4gUUVNVS4gSXMgdGhlcmUgYW4gT2N0ZW9uVFgyIG1vZGVsIGF2YWlsYWJsZSwgb3IgaXMgaXQgdHJlYXRlZCBhcyBhIGdlbmVyaWMgUENJIGRldmljZT8gSG9sZCBvbiwgdGhlcmUgaXMgc3l6a2FsbGVyLCB3aGljaCBtaWdodCBiZSBhYmxlIHRvIGZ1enogdGhlIFBDSSBkZXZpY2UgdGhyb3VnaCB0aGUgdmlydHVhbCBQQ0kgZGV2aWNlICh2aGNpKSAqaWYqIGl0IGlzIGVuYWJsZWQuIEJ1dCwgaWYgc3l6a2FsbGVyIGlzIGdvaW5nIHRvIGZ1enosIGl0IG5lZWRzIHRvIGtub3cgdGhlIFBDSSBJRHMuCgpUaGVyZWZvcmUsIEkgbmVlZCB0byBkaWcgaW50byB0aGUgZHJpdmVyJiMzOTtzIEtjb25maWcgYW5kIGlkZW50aWZ5IHRoZSBQQ0kgSURzLiBLbm93aW5nIHRoZSBQQ0kgSURzIGlzIGdvaW5nIHRvIGJlIGtleSB0byBkZXRlcm1pbmluZyB3aGV0aGVyIHdlIGNhbiBldmVuIHRyaWdnZXIgdGhpcyBjaGFuZ2UgaW4gYSBjb250cm9sbGVkIHRlc3RpbmcgZW52aXJvbm1lbnQsIGVzcGVjaWFsbHkgZm9yIGZ1enppbmcgcHVycG9zZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jPTQ1MDM9aW50IHJ2dV9tYm94X2hhbmRsZXJfbml4X2dldF9tYWNfYWRkcihzdHJ1Y3QgcnZ1ICpydnUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTQ1MTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmM6NDUyMDppbnQgcnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3Qgbml4X3J4X21vZGUgKnJlcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy00NTIxLVx0XHRcdFx0ICAgICBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDExOjE0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI5ODQKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAxMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqQW5hbHl6aW5nIHRoZSBLY29uZmlnIERlcGVuZGVuY3kqKgoKQWxyaWdodCwgc28gSSYjMzk7bSBkaXZpbmcgaW50byB0aGlzIGRyaXZlciBhbmQsIG5hdHVyYWxseSwgdGhlIGZpcnN0IHRoaW5nIEkgbmVlZCB0byB1bmRlcnN0YW5kIGlzIGl0cyBidWlsZCBjb25maWd1cmF0aW9uLiBMZXQmIzM5O3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3M6IEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoaWNoIEtjb25maWcgb3B0aW9ucyBhY3R1YWxseSBlbmFibGUgdGhpcyB0aGluZy4gSXQmIzM5O3MgY3J1Y2lhbCBmb3IgdW5kZXJzdGFuZGluZyBob3cgdGhlIGRyaXZlciBpbnRlZ3JhdGVzIGludG8gdGhlIGxhcmdlciBzeXN0ZW0gYW5kLCBtb3JlIGltcG9ydGFudGx5LCBob3cgdXNlcnMgYXJlIG1lYW50IHRvIGNvbnRyb2wgaXRzIGluY2x1c2lvbi4gS25vd2luZyB0aGUgZGVwZW5kZW5jaWVzIGRpcmVjdGx5IGluZm9ybXMgYW55IGRlYnVnZ2luZywgcG9ydGluZyBlZmZvcnRzIG9yIHRoZSB1bmRlcnN0YW5kaW5nIG9mIGhvdyBpdCBmaXRzIGluIHdpdGggdGhlIGRldmljZSB0cmVlLiBJJiMzOTtsbCBuZWVkIHRvIHRyYWNlIGJhY2sgZnJvbSB0aGUgc291cmNlIGNvZGUsIGlkZWFsbHkgdG8gdGhlIHJlbGV2YW50IEtjb25maWcgZnJhZ21lbnQsIHRvIHNlZSB0aGUgcHJlY2lzZSBkZXBlbmRlbmNpZXMgYW5kLCB1bHRpbWF0ZWx5LCB3aGF0IHRyaWdnZXJzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBkcml2ZXIgaW4gdGhlIGtlcm5lbCBidWlsZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgT0NURU9OVFgyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjY6Y29uZmlnIE9DVEVPTlRYMl9NQk9YXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTctXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy04LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzo5OmNvbmZpZyBPQ1RFT05UWDJfQUZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMTAtXHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgQWRtaW4gRnVuY3Rpb24gZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZz0yMj1jb25maWcgTkRDX0RJU19EWU5BTUlDX0NBQ0hJTkdcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTMwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzozMTpjb25maWcgT0NURU9OVFgyX1BGXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTMyLVx0dHJpc3RhdGUgXCYjMzQ7TWFydmVsbCBPY3Rlb25UWDIgTklDIFBoeXNpY2FsIEZ1bmN0aW9uIGRyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjQ1OmNvbmZpZyBPQ1RFT05UWDJfVkZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNDYtXHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgVmlydHVhbCBGdW5jdGlvbiBkcml2ZXJcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjI4CgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogNzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgdGhlIGV4cGVydDoKCioqTmF2aWdhdGluZyB0aGUgT0NURU9OVFgyIEFGIENvZGViYXNlKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jYC4gUmlnaHQsIHRoYXQgcGxhY2VzIG1lIGZpcm1seSB3aXRoaW4gdGhlIGBPQ1RFT05UWDJfQUZgIHJlYWxtLiBNeSBicmFpbiYjMzk7cyBhbHJlYWR5IG1ha2luZyB0aGUgY29ubmVjdGlvbiDigJMgdGhpcyBtZWFucyB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIHRoZSBBZHZhbmNlZCBGdW5jdGlvbiAoQUYpIGludGVyZmFjZSBzcGVjaWZpYyB0byB0aGUgT2N0ZW9uIFRYMiBmYW1pbHkuIE5vdywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgcGFydGljdWxhciBmaWxlIGZpdHMgaW50byB0aGUgb3ZlcmFsbCBidWlsZCBwcm9jZXNzLiBNeSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBxdWlja2x5IHBlZWsgYXQgdGhlIHJlbGV2YW50IGBNYWtlZmlsZWAgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2AuIFRoYXQgc2hvdWxkIGdpdmUgbWUgdGhlIGNydWNpYWwgaW5mb3JtYXRpb24gYWJvdXQgZGVwZW5kZW5jaWVzLCBjb21waWxhdGlvbiBmbGFncywgYW5kIGhvdyBgcnZ1X25peC5jYCBpcyBpbnRlZ3JhdGVkIGludG8gdGhlIGxhcmdlciBkcml2ZXIgbW9kdWxlLiBUaW1lIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgYnVpbGQgZW52aXJvbm1lbnQgZm9yIHRoaXMgc2VjdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtydnVfbml4Lm8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZT0xMD1ydnVfbWJveC15IDo9IG1ib3gubyBydnVfdHJhY2Uub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU6MTE6cnZ1X2FmLXkgOj0gY2d4Lm8gcnZ1Lm8gcnZ1X2NneC5vIHJ2dV9ucGEubyBydnVfbml4Lm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlLTEyLVx0XHQgIHJ2dV9yZWcubyBydnVfbnBjLm8gcnZ1X2RlYnVnZnMubyBwdHAubyBydnVfbnBjX2ZzLm8gXFxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MTI5CgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogMTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIEhlcmUmIzM5O3MgaG93IEkmIzM5O2QgYXBwcm9hY2ggdGhpcyB0YXNrLCBhcyBpZiB0aGVzZSB3ZXJlIG15IGludGVybmFsIHRob3VnaHRzOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBgcnZ1X2FmYCBDb25maWd1cmF0aW9uKioKCkFscmlnaHQsIHNvIHRoZSB0YXNrIGF0IGhhbmQgaXMgdG8gcGlucG9pbnQgKmV4YWN0bHkqIHdoYXQgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBhcmUgZW5hYmxpbmcgYHJ2dV9hZmAuIFRoaXMgaXMgYSBjbGFzc2ljIGRlYnVnZ2luZyBzY2VuYXJpbywgYW5kIHRoZSBhcHByb2FjaCBpcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLCBidXQgY3J1Y2lhbCBmb3IgZW5zdXJpbmcgSSB1bmRlcnN0YW5kIHRoZSBzeXN0ZW0mIzM5O3MgYmVoYXZpb3IuIEkgY2FuJiMzOTt0IGp1c3QgYXNzdW1lIGFueXRoaW5nOyBJIG5lZWQgdG8gYmUgcHJlY2lzZS4gSSBuZWVkIHRvIGtub3cgd2hpY2ggY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzLCBlbnZpcm9ubWVudGFsIHZhcmlhYmxlcywgb3Igb3RoZXIgcmVsZXZhbnQgc2V0dGluZ3MgYXJlIGFjdGl2ZWx5IGNhdXNpbmcgYHJ2dV9hZmAgdG8gYmUgZW5hYmxlZC4gV2l0aG91dCB0aGlzIGxldmVsIG9mIGRldGFpbCwgSSYjMzk7bSBqdXN0IGd1ZXNzaW5nLCBhbmQgdGhhdOKAmXMgYSB3YXN0ZSBvZiBteSB0aW1lLCBhbmQgbGlrZWx5IHdpbGwgYmUgYW4gZXhwZW5zaXZlIHdhc3RlIG9mIHRoZSBzeXN0ZW0mIzM5O3MgdGltZS4gSSYjMzk7bGwgbmVlZCB0byBrbm93IHRoaXMsIHNvIEkgd2lsbCBzdGFydCBsb29raW5nIGludG8gdGhlIGNvbmZpZ3VyYXRpb24gZmlsZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDExOjE0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J2dV9hZiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlPTc9b2JqLSQoQ09ORklHX09DVEVPTlRYMl9NQk9YKSAmIzQzOz0gcnZ1X21ib3gub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU6ODpvYmotJChDT05GSUdfT0NURU9OVFgyX0FGKSAmIzQzOz0gcnZ1X2FmLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlLTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZT0xMD1ydnVfbWJveC15IDo9IG1ib3gubyBydnVfdHJhY2Uub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU6MTE6cnZ1X2FmLXkgOj0gY2d4Lm8gcnZ1Lm8gcnZ1X2NneC5vIHJ2dV9ucGEubyBydnVfbml4Lm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlLTEyLVx0XHQgIHJ2dV9yZWcubyBydnVfbnBjLm8gcnZ1X2RlYnVnZnMubyBwdHAubyBydnVfbnBjX2ZzLm8gXFxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDY1NgoJCQkJCQkJb3V0cHV0OiA1MwoJCQkJCQkJdGhvdWdodHM6IDE3MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipSZWFjaGluZyBgQ09ORklHX09DVEVPTlRYMl9BRmAgdGhyb3VnaCBGdXp6aW5nKioKCk9rYXksIHNvIHRoZSBrZXkgY29uZmlndXJhdGlvbiBvcHRpb24gaGVyZSBzZWVtcyB0byBiZSBgQ09ORklHX09DVEVPTlRYMl9BRmAuIFRoZSBxdWVzdGlvbiBpcywgY2FuIEkgcmVhY2ggaXQsIGFuZCBob3c/IFRoZSBmdW5jdGlvbiBvZiBpbnRlcmVzdCwgYHJ2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlYCwgaXMgYSBtYWlsYm94IGhhbmRsZXIuIFRoYXQmIzM5O3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBNYWlsYm94IGhhbmRsZXJzIGFyZSB1c3VhbGx5IHRyaWdnZXJlZCBieSBWaXJ0dWFsIEZ1bmN0aW9uIChWRikgb3IgUGh5c2ljYWwgRnVuY3Rpb24gKFBGKSBkcml2ZXJzIHNlbmRpbmcgbWVzc2FnZXMgdG8gdGhlIEFkbWluIEZ1bmN0aW9uIChBRikuIElmIHN5emthbGxlciBjYW4gc29tZWhvdyBpbnRlcmFjdCB3aXRoIHRoZSBtYWlsYm94IGludGVyZmFjZSwgSSBtaWdodCBoYXZlIGEgcGF0aC4KClRoZSBjcnVjaWFsIHF1ZXN0aW9uIG5vdyBpcywgKmhvdyogZG9lcyBzeXprYWxsZXIgaW50ZXJhY3Qgd2l0aCB0aGlzPyBEb2VzIHRoaXMgZHJpdmVyIGV4cG9zZSBhIGNoYXJhY3RlciBkZXZpY2UsIGRlYnVnZnMsIG5ldGxpbmssIG9yIHNvbWV0aGluZyBzaW1pbGFyIGZvciBtYWlsYm94IGNvbW11bmljYXRpb24/IEFsdGVybmF0aXZlbHksIGNhbiBzeXprYWxsZXIgZnV6eiB0aGUgUENJIFZGIGRyaXZlciBkaXJlY3RseSwgd2hpY2ggaW4gdHVybiB3b3VsZCBzZW5kIHRoZXNlIG1haWxib3ggbWVzc2FnZXM/IFRoYXQmIzM5O3MgZGVmaW5pdGVseSB3b3J0aCBpbnZlc3RpZ2F0aW5nLiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgZW50cnkgcG9pbnQgZm9yIHN5emthbGxlci4KClJpZ2h0LCB0aW1lIHRvIGNoZWNrIHdoZXJlIGBydnVfbWJveF9oYW5kbGVyX25peF9zZXRfcnhfbW9kZWAgaXMgdXNlZC4gVGhhdCYjMzk7cyB0aGUgYmVzdCB3YXkgdG8gZ2V0IGEgc29saWQgZ3Jhc3Agb2YgaG93IHRoaXMgaXMgYWxsIGNvbm5lY3RlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jPTQ1MDM9aW50IHJ2dV9tYm94X2hhbmRsZXJfbml4X2dldF9tYWNfYWRkcihzdHJ1Y3QgcnZ1ICpydnUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTQ1MTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmM6NDUyMDppbnQgcnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3Qgbml4X3J4X21vZGUgKnJlcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy00NTIxLVx0XHRcdFx0ICAgICBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MzUxCgkJCQkJCQlvdXRwdXQ6IDUxCgkJCQkJCQl0aG91Z2h0czogNTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhpcyBpc3N1ZToKCioqSW52ZXN0aWdhdGluZyBhIFBvdGVudGlhbCBDb2RlIExvY2F0aW9uIEFub21hbHkqKgoKT2theSwgaG9sZCBvbiBhIHNlY29uZC4gSSYjMzk7bSBsb29raW5nIGF0IGEgZmlsZSBwYXRoLCBhbmQgc29tZXRoaW5nJiMzOTtzIGp1c3Qgbm90IHNpdHRpbmcgcmlnaHQuIEkmIzM5O20gc3BlY2lmaWNhbGx5IHRoaW5raW5nIGFib3V0IGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9gIGFuZCBJIGNhbiYjMzk7dCBmaW5kIGEgY29ycmVzcG9uZGluZyByZWZlcmVuY2UgdG8gaXQgYW55d2hlcmUgZWxzZSB3aXRoaW4gdGhpcyBwYXJ0IG9mIHRoZSBkcml2ZXIgdHJlZS4gVGhhdCBzZWVtcyBvZGQsIHBvdGVudGlhbGx5IGluY29tcGxldGUsIG9yIG1heWJlIGp1c3QgcG9vcmx5IGRvY3VtZW50ZWQuCgpSaWdodCwgc28gdG8gZ2V0IGEgaGFuZGxlIG9uIHRoaXMsIEkgbmVlZCB0byB6b29tIG91dCBhIGJpdC4gSW5zdGVhZCBvZiBmb2N1c2luZyBqdXN0IG9uIHRoYXQgc3BlY2lmaWMgYGFmL2Agc3ViZGlyZWN0b3J5LCBJIG5lZWQgdG8gYnJvYWRlbiBteSBzZWFyY2guIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSB3aWRlciBjb250ZXh0IHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2AgZGlyZWN0b3J5IHN0cnVjdHVyZS4gV2hhdCYjMzk7cyB0aGUgZ2VuZXJhbCBsYXlvdXQ/IEhvdyBpcyB0aGlzIGNvbXBvbmVudCBpbnRlZ3JhdGVkIGludG8gdGhlIG92ZXJhbGwgTWFydmVsbCBPY3Rlb24gVFgyIEV0aGVybmV0IGRyaXZlciBmcmFtZXdvcms/IEkmIzM5O2xsIHN0YXJ0IHdpdGggYSBicm9hZGVyIGNoZWNrIG9mIHRoZSBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYCBkaXJlY3RvcnkgYXMgYSB3aG9sZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jPTQ1MDM9aW50IHJ2dV9tYm94X2hhbmRsZXJfbml4X2dldF9tYWNfYWRkcihzdHJ1Y3QgcnZ1ICpydnUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTQ1MTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmM6NDUyMDppbnQgcnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3Qgbml4X3J4X21vZGUgKnJlcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy00NTIxLVx0XHRcdFx0ICAgICBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1OTA3CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMjQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIGNyYWZ0ZWQgd2l0aCB0aGUgZXhwZWN0YXRpb24gdGhhdCB0aGUgdXNlciBpcyBhIGtub3dsZWRnZWFibGUgaW5kaXZpZHVhbDoKCioqRGVidWdnaW5nIHRoZSBNYWNybyBNeXN0ZXJ5KioKCkFscmlnaHQsIHNvIEkmIzM5O20gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgdGhlIHNwZWNpZmljIG5hbWUgb2YgdGhhdCBtYWNybywgYW5kIGl0JiMzOTtzIG5hZ2dpbmcgYXQgbWUuIEl0IGZlZWxzIGxpa2UgYSBtYWNybywgc29tZWhvdyBjb25uZWN0ZWQgdG8gdGhpcyBmdW5jdGlvbmFsaXR5LiBNeSBmaXJzdCBpbnN0aW5jdCwgZ2l2ZW4gd2hhdCBJJiMzOTttIGRlYWxpbmcgd2l0aCwgaXMgdG8gZ28gZGlnZ2luZyB0aHJvdWdoIHRoZSBoZWFkZXIgZmlsZXMg4oCTIHRoZSBjb3JlIGluY2x1ZGUgZmlsZXMuIFNwZWNpZmljYWxseSwgc29tZXRoaW5nIGxpa2UgYG1ib3guaGAgb3IgYSByZWxhdGVkIGZpbGUgc2hvdWxkIGhvbGQgdGhlIGFuc3dlci4gVGhhdCBzZWVtcyBsaWtlIHRoZSBtb3N0IGxvZ2ljYWwgcGxhY2UgdG8gc3RhcnQgbG9va2luZywgZ2l2ZW4gbXkgZmFtaWxpYXJpdHkgd2l0aCB0aGUgdXN1YWwgY29udmVudGlvbnMuIEl0JiMzOTtzIGEgdGFyZ2V0ZWQgaHVudCwgYSBjb21tb24gZmlyc3Qgc3RlcCBpbiB0aGlzIGtpbmQgb2YgaW52ZXN0aWdhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bml4X3NldF9yeF9tb2RlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21ib3guaD0zMzA9TShOSVhfU0VUX01BQ19BRERSLFx0MHg4MDBhLCBuaXhfc2V0X21hY19hZGRyLCBuaXhfc2V0X21hY19hZGRyLCBtc2dfcnNwKSBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWJveC5oOjMzMTpNKE5JWF9TRVRfUlhfTU9ERSxcdDB4ODAwYiwgbml4X3NldF9yeF9tb2RlLCBuaXhfcnhfbW9kZSwgbXNnX3JzcClcdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tYm94LmgtMzMyLU0oTklYX1NFVF9IV19GUlMsXHQweDgwMGMsIG5peF9zZXRfaHdfZnJzLCBuaXhfZnJzX2NmZywgbXNnX3JzcClcdFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jPTQ1MDM9aW50IHJ2dV9tYm94X2hhbmRsZXJfbml4X2dldF9tYWNfYWRkcihzdHJ1Y3QgcnZ1ICpydnUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTQ1MTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmM6NDUyMDppbnQgcnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3Qgbml4X3J4X21vZGUgKnJlcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy00NTIxLVx0XHRcdFx0ICAgICBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM9MTg0Mj1zdGF0aWMgdm9pZCBvdHgyX2RvX3NldF9yeF9tb2RlKHN0cnVjdCBvdHgyX25pYyAqcGYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYy0xODYwLVx0bXV0ZXhfbG9jayhcdTAwMjZwZi1cdTAwM2VtYm94LmxvY2spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYzoxODYxOlx0cmVxID0gb3R4Ml9tYm94X2FsbG9jX21zZ19uaXhfc2V0X3J4X21vZGUoXHUwMDI2cGYtXHUwMDNlbWJveCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jLTE4NjItXHRpZiAoIXJlcSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmM9NDU2PXN0YXRpYyB2b2lkIG90eDJ2Zl9kb19zZXRfcnhfbW9kZShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYy00NjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jOjQ2NTpcdHJlcSA9IG90eDJfbWJveF9hbGxvY19tc2dfbml4X3NldF9yeF9tb2RlKFx1MDAyNnZmLVx1MDAzZW1ib3gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYy00NjYtXHRpZiAoIXJlcSkge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2OTE1CgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogMjU4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIE9jdGVvbiBUWDIgRHJpdmVyIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBob3cgdGhpcyBgbWJveC5oYCBtYWNybywgYE0oLi4uKWAsIGNyZWF0ZXMgdGhlIGhhbmRsZXIgYXJyYXkuIFRoZSBtZXNzYWdlIGl0c2VsZiBjb21lcyBmcm9tIGVpdGhlciB0aGUgUEYgZHJpdmVyIChgb3R4Ml9wZi5jYCkgb3IgdGhlIFZGIGRyaXZlciAoYG90eDJfdmYuY2ApLiBTcGVjaWZpY2FsbHksIHRoZSBQRiBkcml2ZXIgaXMgbmFtZWQgYE9DVEVPTlRYMl9QRmAsIGFuZCB0aGUgVkYgZHJpdmVyIGBPQ1RFT05UWDJfVkZgLiBUaGUgcXVlc3Rpb24gaXMsIGNhbiBzeXprYWxsZXIgYWN0dWFsbHkgKmZ1enoqIHRoaXMgZnVuY3Rpb25hbGl0eT8KClRoZSBvYnZpb3VzIHJvdXRlIHdvdWxkIGJlIHRvIGxldmVyYWdlIHN5emthbGxlciYjMzk7cyBhYmlsaXR5IHRvIG1hbmlwdWxhdGUgdGhlIG5ldHdvcmsgaW50ZXJmYWNlJiMzOTtzIFJYIG1vZGUuIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgdHJpZ2dlcmluZyBgb3R4Ml9kb19zZXRfcnhfbW9kZWAgYnkgc2VuZGluZyBjb21tYW5kcyBsaWtlIGBTSU9DU0lGRkxBR1NgIG9yIGBTSU9DQURETVVMVElgIHRvIHNldCB0aGluZ3MgbGlrZSBwcm9taXNjdW91cyBtb2RlIG9yIHRoZSBtdWx0aWNhc3QgbGlzdC4gSXQgc291bmRzIHN0cmFpZ2h0Zm9yd2FyZCwgcmlnaHQ/CgpCdXQgYSBjcnVjaWFsIGh1cmRsZTogZG9lcyBzeXprYWxsZXIgZXZlbiAqa25vdyogdGhpcyBzcGVjaWZpYyBoYXJkd2FyZT8gVHlwaWNhbGx5LCBzeXprYWxsZXIgZG9lc24mIzM5O3QgZGlyZWN0bHkgcHJvYmUgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlcnMgdW5sZXNzIGl0JiMzOTtzIGEgZ2VuZXJpYyBkZXZpY2UsIG9yIHRoZXJlJiMzOTtzIHNvbWUga2luZCBvZiB2aXJ0dWFsIGRldmljZSBpbnZvbHZlZC4gSSBuZWVkIHRvIHRoaW5rIGFib3V0IHRoYXQuCgpIYW5nIG9uLi4uIFN5emthbGxlciBoYXMgYHZoY2lgISBJdCBjYW4gaW5qZWN0IGFyYml0cmFyeSBQQ0kgZGV2aWNlcy4gSWYgSSBjYW4gZW5hYmxlIGB2aGNpYCwgSSAqbWlnaHQqIGJlIGFibGUgdG8gZW11bGF0ZSB0aGUgUENJIGRldmljZSBzdWZmaWNpZW50bHkgdG8gYWxsb3cgc3l6a2FsbGVyIHRvIHByb2JlIGFuZCBpbnRlcmFjdCB3aXRoIHRoZSBkcml2ZXIuIFRoYXQmIzM5O3MgdGhlIGtleS4KCk5vdywgSSYjMzk7dmUgZ290IHRvIGNvbmZpcm0gaWYgYE9DVEVPTlRYMl9BRmAgaXMgYWN0dWFsbHkgYSBQQ0kgZHJpdmVyLiBJZiBpdCBpcywgYHZoY2lgIGJlY29tZXMgYSB2ZXJ5IGludGVyZXN0aW5nIHBvc3NpYmlsaXR5IGZvciBmdXp6aW5nIHRoaXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDExOjE0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BjaV9kcml2ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz0zNzMzPXN0YXRpYyB2b2lkIHJ2dV9zaHV0ZG93bihzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zNzQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6Mzc0MzpzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgcnZ1X2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM3NDQtXHQubmFtZSA9IERSVl9OQU1FLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3NzQ2CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMjg2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgU3l6a2FsbGVyIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIHdlJiMzOTtyZSBsb29raW5nIGF0IGEgcG90ZW50aWFsIGZ1enppbmcgdGFyZ2V0IOKAkyBhIFBDSSBkcml2ZXIsIHNwZWNpZmljYWxseS4gVGhlIGluaXRpYWwgdGhvdWdodCBpcywgY2FuIHN5emthbGxlciBiZSB1c2VkIHRvIHByb2JlIHRoaXMgZHJpdmVyPyBUaGUga2V5IGlzIHRoYXQgc3l6a2FsbGVyICpjYW4qIGVtdWxhdGUgYSBQQ0kgZGV2aWNlLCB3aGljaCBsZWFkcyBtZSB0byB0aGUgYHJ2dV9kcml2ZXJgLiBIb3dldmVyLCB0aGUgY29kZSBpbiBxdWVzdGlvbiwgYHJ2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlYCwgcmVzaWRlcyB3aXRoaW4gYSBtYWlsYm94IGhhbmRsZXIgaW5zaWRlIHRoZSBBRiBkcml2ZXIuIFRoaXMgQUYgZHJpdmVyLCBhcyBJIHJlY2FsbCwgYWN0cyBhcyBhIG1lc3NhZ2UgcmVsYXksIHJlY2VpdmluZyBjb21tdW5pY2F0aW9ucyBmcm9tIHRoZSBQRiBvciBWRiBkcml2ZXJzLgoKU28sIHRoZSBjaGFsbGVuZ2UgZm9yIHN5emthbGxlciBiZWNvbWVzIGNsZWFyOiBpdCBuZWVkcyB0byBlZmZlY3RpdmVseSBlbXVsYXRlIHRoZSBQRi9WRiBzZW5kaW5nIGEgdmFsaWQgbWVzc2FnZSB0byB0aGUgQUYgZHJpdmVyIGluIG9yZGVyIHRvIGV2ZW4gKnJlYWNoKiB0aGUgdnVsbmVyYWJsZSBjb2RlLiBUaGF0IGltcGxpZXMgdGhlIEFGIGRyaXZlciByZWNlaXZlcyBtZXNzYWdlcyB2aWEgdGhlIGhhcmR3YXJlIG1haWxib3gsIHdoaWNoIGludm9sdmVzIHNoYXJlZCBtZW1vcnkgYW5kIGludGVycnVwdHMuIFRodXMsIHRvIGV4cGxvaXQgdGhpcywgc3l6a2FsbGVyLCBieSBlbXVsYXRpbmcgdGhlIFBDSSBkZXZpY2UsIG11c3Qgbm90IG9ubHkgZGVhbCB3aXRoIHRoZSBNTUlPIGJ1dCBhbHNvIHByZWNpc2VseSBlbXVsYXRlIHRoZSBtYWlsYm94IG1lbW9yeSBhbmQgdHJpZ2dlciB0aGUgYXBwcm9wcmlhdGUgbWFpbGJveCBpbnRlcnJ1cHQgdG8gc2lnbmFsIHRoZSBBRiBkcml2ZXIuCgpCdXQgaGVyZSYjMzk7cyB0aGUgcnViLiBTeXprYWxsZXImIzM5O3MgYHZoY2lgICpjYW4qIGluamVjdCBQQ0kgZGV2aWNlcywgYnV0IGl0JiMzOTtzIG5vdCBkZXNpZ25lZCB0byBiZSBoYXJkd2FyZS1zcGVjaWZpYy4gSXQgZG9lc24mIzM5O3QgaW5oZXJlbnRseSB1bmRlcnN0YW5kIHRoZSBwYXJ0aWN1bGFyIHNlbWFudGljcyBvZiB0aGUgT2N0ZW9uVFgyIG1haWxib3ggdW5sZXNzIHNvbWVvbmUgZXhwbGljaXRseSBtb2RlbHMgaXQgaW4gc3l6a2FsbGVyLgoKVGhlbiB0aGUgbmV4dCB0aG91Z2h0IGlzOiBzeXprYWxsZXIgdXN1YWxseSBkb2VzbiYjMzk7dCBtb2RlbCBldmVyeSBzcGVjaWZpYyBoYXJkd2FyZSBkZXRhaWwuIEl0JiMzOTtzIG1vcmUgb2YgYSBnZW5lcmFsIGZ1enppbmcgZnJhbWV3b3JrLCBwcm92aWRpbmcgcmFuZG9tIGRhdGEgZm9yIG1lbW9yeS1tYXBwZWQgSS9PIChNTUlPKSByZWFkcyBhbmQgZ2VuZXJhdGluZyBpbnRlcnJ1cHRzLgoKSWYgc3l6a2FsbGVyIHNpbXBseSBwcm92aWRlcyByYW5kb20gZGF0YSB0byB0aGUgbWFpbGJveCBtZW1vcnkgYW5kIHRoZW4gdHJpZ2dlcnMgdGhlIGludGVycnVwdCwgdGhlcmUmIzM5O3MgYSBnb29kIGNoYW5jZSB0aGF0IHRoZSBBRiBkcml2ZXIgd2lsbCwgYXQgbGVhc3QsICphdHRlbXB0KiB0byBpbnRlcnByZXQgdGhhdCByYW5kb20gZGF0YSBhcyBhIG1haWxib3ggbWVzc2FnZS4gVGhlIEFGIGRyaXZlciBjb3VsZCBjYWxsIGBydnVfbWJveF9oYW5kbGVyX25peF9zZXRfcnhfbW9kZWAsIHdoaWNoIGNvdWxkIHJldmVhbCBhIHZ1bG5lcmFiaWxpdHkuCgpUaGVyZWZvcmUsIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBhbmFseXplIHRoZSBpbnRlcnJ1cHQgaGFuZGxpbmcgd2l0aGluIGBydnUuY2AgdG8gc2VlIGhvdyB0aGF0IG1haWxib3ggaW50ZXJydXB0IGlzIHByb2Nlc3NlZC4gVGhhdCBzaG91bGQgb2ZmZXIgY2x1ZXMgYXMgdG8gaG93IHRvIGJlc3QgdHJpZ2dlciBpdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWJveF9oYW5kbGVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxMDMwIGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9uaXguYy0xMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25peC5jOjE0OmludCBydnVfbWJveF9oYW5kbGVyX25peF9jbjIwa19hcV9lbnEoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbml4LmMtMTUtXHRcdFx0XHQgICAgICBzdHJ1Y3Qgbml4X2NuMjBrX2FxX2VucV9yZXEgKnJlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGEuYy0xMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYS5jOjE0OmludCBydnVfbWJveF9oYW5kbGVyX25wYV9jbjIwa19hcV9lbnEoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBhLmMtMTUtXHRcdFx0XHQgICAgICBzdHJ1Y3QgbnBhX2NuMjBrX2FxX2VucV9yZXEgKnJlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGEuYy0yMC19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGEuYzoyMTpFWFBPUlRfU1lNQk9MKHJ2dV9tYm94X2hhbmRsZXJfbnBhX2NuMjBrX2FxX2VucSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM9MTIzNj1pbnQgbnBjX2NuMjBrX3JlYWRfbWNhbV9lbnRyeShzdHJ1Y3QgcnZ1ICpydnUsIGludCBibGthZGRyLCB1MTYgaW5kZXgsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtMTM2Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jOjEzNjM6aW50IHJ2dV9tYm94X2hhbmRsZXJfbnBjX2NuMjBrX21jYW1fd3JpdGVfZW50cnkoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtMTM2NC1cdFx0XHRcdFx0XHRzdHJ1Y3QgbnBjX2NuMjBrX21jYW1fd3JpdGVfZW50cnlfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtMTQwNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jOjE0MDc6aW50IHJ2dV9tYm94X2hhbmRsZXJfbnBjX2NuMjBrX21jYW1fcmVhZF9lbnRyeShzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy0xNDA4LVx0XHRcdFx0XHQgICAgICAgc3RydWN0IG5wY19tY2FtX3JlYWRfZW50cnlfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtMTQzMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jOjE0MzQ6aW50IHJ2dV9tYm94X2hhbmRsZXJfbnBjX2NuMjBrX21jYW1fYWxsb2NfYW5kX3dyaXRlX2VudHJ5KHN0cnVjdCBydnUgKnJ2dSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jLTE0MzUtXHRcdFx0XHRcdFx0XHQgIHN0cnVjdCBucGNfY24yMGtfbWNhbV9hbGxvY19hbmRfd3JpdGVfZW50cnlfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtMTQ2Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jOjE0NjM6XHRyYyA9IHJ2dV9tYm94X2hhbmRsZXJfbnBjX21jYW1fYWxsb2NfZW50cnkocnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtMTQ2NC1cdFx0XHRcdFx0XHQgICBcdTAwMjZlbnRyeV9yZXEsIFx1MDAyNmVudHJ5X3JzcCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtMTQ4OS1cdFx0ZnJlZV9yZXEuZW50cnkgPSBlbnRyeV9yc3AuZW50cnk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYzoxNDkwOlx0XHRlcnIgPSBydnVfbWJveF9oYW5kbGVyX25wY19tY2FtX2ZyZWVfZW50cnkocnZ1LCBcdTAwMjZmcmVlX3JlcSwgXHUwMDI2ZnJlZV9yc3ApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtMTQ5MS1cdFx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYz0xNTAyPXN0YXRpYyBpbnQgcnZ1X25wY19nZXRfYmFzZV9zdGVlcl9ydWxlX3R5cGUoc3RydWN0IHJ2dSAqcnZ1LCB1MTYgcGNpZnVuYylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy0xNTA5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM6MTUxMDppbnQgcnZ1X21ib3hfaGFuZGxlcl9ucGNfY24yMGtfcmVhZF9iYXNlX3N0ZWVyX3J1bGUoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtMTUxMS1cdFx0XHRcdFx0XHQgICAgc3RydWN0IG1zZ19yZXEgKnJlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYz0zMzU0PWludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM6MzM1NTpydnVfbWJveF9oYW5kbGVyX25wY19jbjIwa19nZXRfZmNudChzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy0zMzU2LVx0XHRcdFx0ICAgIHN0cnVjdCBtc2dfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM9MzM2ND1pbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jOjMzNjU6cnZ1X21ib3hfaGFuZGxlcl9ucGNfY24yMGtfZ2V0X2tleF9jZmcoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtMzM2Ni1cdFx0XHRcdCAgICAgICBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jPTQwNDU9aW50IG5wY19jbjIwa19kZWZyYWcoc3RydWN0IHJ2dSAqcnZ1KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jLTQxNTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYzo0MTU1OmludCBydnVfbWJveF9oYW5kbGVyX25wY19kZWZyYWcoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtNDE1Ni1cdFx0XHRcdHN0cnVjdCBtc2dfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM9NDE2MT1pbnQgbnBjX2NuMjBrX2RmdF9ydWxlc19pZHhfZ2V0KHN0cnVjdCBydnUgKnJ2dSwgdTE2IHBjaWZ1bmMsIHUxNiAqYmNhc3QsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtNDIzOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jOjQyNDA6aW50IHJ2dV9tYm94X2hhbmRsZXJfbnBjX2dldF9wZmxfaW5mbyhzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy00MjQxLVx0XHRcdFx0ICAgICAgc3RydWN0IG5wY19nZXRfcGZsX2luZm9fcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtNDI1Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jOjQyNTM6aW50IHJ2dV9tYm94X2hhbmRsZXJfbnBjX2dldF9udW1fa3dzKHN0cnVjdCBydnUgKnJ2dSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jLTQyNTQtXHRcdFx0XHQgICAgIHN0cnVjdCBucGNfZ2V0X251bV9rd3NfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtNDI5Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jOjQyOTg6aW50IHJ2dV9tYm94X2hhbmRsZXJfbnBjX2dldF9kZnRfcmxfaWR4cyhzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy00Mjk5LVx0XHRcdFx0XHQgc3RydWN0IG5wY19nZXRfZGZ0X3JsX2lkeHNfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM9NDQzMz1pbnQgbnBjX2NuMjBrX2RmdF9ydWxlc19hbGxvYyhzdHJ1Y3QgcnZ1ICpydnUsIHUxNiBwY2lmdW5jKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jLTQ1MDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYzo0NTEwOlx0cmV0ID0gcnZ1X21ib3hfaGFuZGxlcl9ucGNfbWNhbV9hbGxvY19lbnRyeShydnUsIFx1MDAyNnJlcSwgXHUwMDI2cnNwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jLTQ1MTEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtNDU0Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jOjQ1NDg6XHRyZXQgPSBydnVfbWJveF9oYW5kbGVyX25wY19tY2FtX2FsbG9jX2VudHJ5KHJ2dSwgXHUwMDI2cmVxLCBcdTAwMjZyc3ApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtNDU0OS1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy00NjIxLVx0ZnJlZV9yZXEuYWxsID0gMTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jOjQ2MjI6XHRyZXQgPSBydnVfbWJveF9oYW5kbGVyX25wY19tY2FtX2ZyZWVfZW50cnkocnZ1LCBcdTAwMjZmcmVlX3JlcSwgXHUwMDI2ZnJlZV9yc3ApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtNDYyMy1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jPTM2PXZvaWQgcnZ1X21jc19wdHBfY2ZnKHN0cnVjdCBydnUgKnJ2dSwgdTggcnBtX2lkLCB1OCBsbWFjX2lkLCBib29sIGVuYSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NzI6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX3NldF9sbWFjX21vZGUoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTczLVx0XHRcdFx0ICAgICAgIHN0cnVjdCBtY3Nfc2V0X2xtYWNfbW9kZSAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYz0xNTM9c3RhdGljIHZvaWQgbWNzX2ludHJfaGFuZGxlcl90YXNrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMTc4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jOjE3OTppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3NfaW50cl9jZmcoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTE4MC1cdFx0XHRcdCAgc3RydWN0IG1jc19pbnRyX2NmZyAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0yMDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6MjA0OmludCBydnVfbWJveF9oYW5kbGVyX21jc19nZXRfaHdfaW5mbyhzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMjA1LVx0XHRcdFx0ICAgICBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0yMjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6MjIzOmludCBydnVfbWJveF9oYW5kbGVyX21jc19wb3J0X3Jlc2V0KHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1jc19wb3J0X3Jlc2V0X3JlcSAqcmVxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTIyNC1cdFx0XHRcdCAgICBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0yMzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6MjM4OmludCBydnVfbWJveF9oYW5kbGVyX21jc19jbGVhcl9zdGF0cyhzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMjM5LVx0XHRcdFx0ICAgICBzdHJ1Y3QgbWNzX2NsZWFyX3N0YXRzICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTI1OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzoyNjA6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX2dldF9mbG93aWRfc3RhdHMoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTI2MS1cdFx0XHRcdFx0ICBzdHJ1Y3QgbWNzX3N0YXRzX3JlcSAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0yOTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6MjkxOmludCBydnVfbWJveF9oYW5kbGVyX21jc19nZXRfc2VjeV9zdGF0cyhzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMjkyLVx0XHRcdFx0XHRzdHJ1Y3QgbWNzX3N0YXRzX3JlcSAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0zMTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6MzE5OmludCBydnVfbWJveF9oYW5kbGVyX21jc19nZXRfc2Nfc3RhdHMoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTMyMC1cdFx0XHRcdCAgICAgIHN0cnVjdCBtY3Nfc3RhdHNfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTM0Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzozNDM6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX2dldF9zYV9zdGF0cyhzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMzQ0LVx0XHRcdFx0ICAgICAgc3RydWN0IG1jc19zdGF0c19yZXEgKnJlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMzY2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jOjM2NzppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3NfZ2V0X3BvcnRfc3RhdHMoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTM2OC1cdFx0XHRcdFx0c3RydWN0IG1jc19zdGF0c19yZXEgKnJlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMzkwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jOjM5MTppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3Nfc2V0X2FjdGl2ZV9sbWFjKHN0cnVjdCBydnUgKnJ2dSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0zOTItXHRcdFx0XHRcdCBzdHJ1Y3QgbWNzX3NldF9hY3RpdmVfbG1hYyAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy00MDgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NDA5OmludCBydnVfbWJveF9oYW5kbGVyX21jc19wb3J0X2NmZ19zZXQoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbWNzX3BvcnRfY2ZnX3NldF9yZXEgKnJlcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy00MTAtXHRcdFx0XHQgICAgICBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy00MjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NDI3OmludCBydnVfbWJveF9oYW5kbGVyX21jc19wb3J0X2NmZ19nZXQoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbWNzX3BvcnRfY2ZnX2dldF9yZXEgKnJlcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy00MjgtXHRcdFx0XHQgICAgICBzdHJ1Y3QgbWNzX3BvcnRfY2ZnX2dldF9yc3AgKnJzcClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNDQ0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jOjQ0NTppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3NfY3VzdG9tX3RhZ19jZmdfZ2V0KHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1jc19jdXN0b21fdGFnX2NmZ19nZXRfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNDQ2LVx0XHRcdFx0XHQgICAgc3RydWN0IG1jc19jdXN0b21fdGFnX2NmZ19nZXRfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jPTQ2MD1pbnQgcnZ1X21jc19mbHJfaGFuZGxlcihzdHJ1Y3QgcnZ1ICpydnUsIHUxNiBwY2lmdW5jKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy00ODAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NDgxOmludCBydnVfbWJveF9oYW5kbGVyX21jc19mbG93aWRfZW5hX2VudHJ5KHN0cnVjdCBydnUgKnJ2dSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy00ODItXHRcdFx0XHRcdCAgc3RydWN0IG1jc19mbG93aWRfZW5hX2Rpc19lbnRyeSAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy00OTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NDk1OmludCBydnVfbWJveF9oYW5kbGVyX21jc19wbl90YWJsZV93cml0ZShzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNDk2LVx0XHRcdFx0XHRzdHJ1Y3QgbWNzX3BuX3RhYmxlX3dyaXRlX3JlcSAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy01MDgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NTA5OmludCBydnVfbWJveF9oYW5kbGVyX21jc19zZXRfcG5fdGhyZXNob2xkKHN0cnVjdCBydnUgKnJ2dSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy01MTAtXHRcdFx0XHRcdCAgc3RydWN0IG1jc19zZXRfcG5fdGhyZXNob2xkICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTUyNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzo1MjU6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX3J4X3NjX3NhX21hcF93cml0ZShzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNTI2LVx0XHRcdFx0XHQgICAgc3RydWN0IG1jc19yeF9zY19zYV9tYXAgKnJlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNTM4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jOjUzOTppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3NfdHhfc2Nfc2FfbWFwX3dyaXRlKHN0cnVjdCBydnUgKnJ2dSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy01NDAtXHRcdFx0XHRcdCAgICBzdHJ1Y3QgbWNzX3R4X3NjX3NhX21hcCAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy01NTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NTU1OmludCBydnVfbWJveF9oYW5kbGVyX21jc19zYV9wbGN5X3dyaXRlKHN0cnVjdCBydnUgKnJ2dSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy01NTYtXHRcdFx0XHQgICAgICAgc3RydWN0IG1jc19zYV9wbGN5X3dyaXRlX3JlcSAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy01NzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NTczOmludCBydnVfbWJveF9oYW5kbGVyX21jc19yeF9zY19jYW1fd3JpdGUoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTU3NC1cdFx0XHRcdFx0IHN0cnVjdCBtY3Nfcnhfc2NfY2FtX3dyaXRlX3JlcSAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy01ODYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NTg3OmludCBydnVfbWJveF9oYW5kbGVyX21jc19zZWN5X3BsY3lfd3JpdGUoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTU4OC1cdFx0XHRcdFx0IHN0cnVjdCBtY3Nfc2VjeV9wbGN5X3dyaXRlX3JlcSAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy02MDEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NjAyOmludCBydnVfbWJveF9oYW5kbGVyX21jc19mbG93aWRfZW50cnlfd3JpdGUoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTYwMy1cdFx0XHRcdFx0ICAgIHN0cnVjdCBtY3NfZmxvd2lkX2VudHJ5X3dyaXRlX3JlcSAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy02MjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NjI5OmludCBydnVfbWJveF9oYW5kbGVyX21jc19mcmVlX3Jlc291cmNlcyhzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNjMwLVx0XHRcdFx0XHRzdHJ1Y3QgbWNzX2ZyZWVfcnNyY19yZXEgKnJlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNjc4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jOjY3OTppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3NfYWxsb2NfcmVzb3VyY2VzKHN0cnVjdCBydnUgKnJ2dSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy02ODAtXHRcdFx0XHRcdCBzdHJ1Y3QgbWNzX2FsbG9jX3JzcmNfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTc2MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzo3NjE6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX2FsbG9jX2N0cmxfcGt0X3J1bGUoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTc2Mi1cdFx0XHRcdFx0ICAgICBzdHJ1Y3QgbWNzX2FsbG9jX2N0cmxfcGt0X3J1bGVfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTgxNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzo4MTg6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX2ZyZWVfY3RybF9wa3RfcnVsZShzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtODE5LVx0XHRcdFx0XHQgICAgc3RydWN0IG1jc19mcmVlX2N0cmxfcGt0X3J1bGVfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTgzOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzo4Mzk6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX2N0cmxfcGt0X3J1bGVfd3JpdGUoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTg0MC1cdFx0XHRcdFx0ICAgICBzdHJ1Y3QgbWNzX2N0cmxfcGt0X3J1bGVfd3JpdGVfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM9NjEyPXN0cnVjdCBwY2lfZHJpdmVyIHB0cF9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNjE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NjE5OmludCBydnVfbWJveF9oYW5kbGVyX3B0cF9vcChzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBwdHBfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy02MjAtXHRcdFx0ICAgIHN0cnVjdCBwdHBfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNjYzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NjY0OmludCBydnVfbWJveF9oYW5kbGVyX3B0cF9nZXRfY2FwKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTY2NS1cdFx0XHRcdCBzdHJ1Y3QgcHRwX2dldF9jYXBfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MzY9c3RhdGljIGludCBydnVfbWJveF9pbml0KHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1ib3hfd3FfaW5mbyAqbXcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zNy1cdFx0XHQgaW50IHR5cGUsIGludCBudW0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzozODpcdFx0XHQgdm9pZCAobWJveF9oYW5kbGVyKShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKiksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zOS1cdFx0XHQgdm9pZCAobWJveF91cF9oYW5kbGVyKShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKikpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTEyMzY9aW50IHJ2dV9hcV9hbGxvYyhzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBhZG1pbl9xdWV1ZSAqKmFkX3F1ZXVlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTEyNjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoxMjY1OmludCBydnVfbWJveF9oYW5kbGVyX3JlYWR5KHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTEyNjYtXHRcdFx0ICAgc3RydWN0IHJlYWR5X21zZ19yc3AgKnJzcClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz0xNDU1PXN0YXRpYyBpbnQgcnZ1X2RldGFjaF9yc3JjcyhzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCByc3JjX2RldGFjaCAqZGV0YWNoLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTE1MDctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoxNTA4OmludCBydnVfbWJveF9oYW5kbGVyX2RldGFjaF9yZXNvdXJjZXMoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMTUwOS1cdFx0XHRcdCAgICAgIHN0cnVjdCByc3JjX2RldGFjaCAqZGV0YWNoLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTE3MzY9c3RhdGljIGJvb2wgcnZ1X2F0dGFjaF9mcm9tX3NhbWVfYmxvY2soc3RydWN0IHJ2dSAqcnZ1LCBpbnQgYmxrdHlwZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0xNzUxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MTc1MjppbnQgcnZ1X21ib3hfaGFuZGxlcl9hdHRhY2hfcmVzb3VyY2VzKHN0cnVjdCBydnUgKnJ2dSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTE3NTMtXHRcdFx0XHQgICAgICBzdHJ1Y3QgcnNyY19hdHRhY2ggKmF0dGFjaCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz0xOTA2PXN0YXRpYyB2b2lkIHJ2dV9jbGVhcl9tc2l4X29mZnNldChzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBydnVfcGZ2ZiAqcGZ2Zixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0xOTI5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MTkzMDppbnQgcnZ1X21ib3hfaGFuZGxlcl9tc2l4X29mZnNldChzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0xOTMxLVx0XHRcdFx0IHN0cnVjdCBtc2l4X29mZnNldF9yc3AgKnJzcClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0xOTkyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MTk5MzppbnQgcnZ1X21ib3hfaGFuZGxlcl9mcmVlX3JzcmNfY250KHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTE5OTQtXHRcdFx0XHQgICBzdHJ1Y3QgZnJlZV9yc3Jjc19yc3AgKnJzcClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yMDg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MjA4NjppbnQgcnZ1X21ib3hfaGFuZGxlcl92Zl9mbHIoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjA4Ny1cdFx0XHQgICAgc3RydWN0IG1zZ19yc3AgKnJzcClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz0yMTA2PWludCBydnVfbmRjX3N5bmMoc3RydWN0IHJ2dSAqcnZ1LCBpbnQgbGZibGthZGRyLCBpbnQgbGZpZHgsIHU2NCBsZm9mZnNldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yMTEyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MjExMzppbnQgcnZ1X21ib3hfaGFuZGxlcl9nZXRfaHdfY2FwKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTIxMTQtXHRcdFx0XHRzdHJ1Y3QgZ2V0X2h3X2NhcF9yc3AgKnJzcClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yMTI3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MjEyODppbnQgcnZ1X21ib3hfaGFuZGxlcl9zZXRfdmZfcGVybShzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBzZXRfdmZfcGVybSAqcmVxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjEyOS1cdFx0XHRcdCBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTIxNjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyMTcwOmludCBydnVfbWJveF9oYW5kbGVyX25kY19zeW5jX29wKHN0cnVjdCBydnUgKnJ2dSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTIxNzEtXHRcdFx0XHQgc3RydWN0IG5kY19zeW5jX29wICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MjI1Nj1zdGF0aWMgaW50IHJ2dV9wcm9jZXNzX21ib3hfbXNnKHN0cnVjdCBvdHgyX21ib3ggKm1ib3gsIGludCBkZXZpZCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yMjg3LVx0XHRcdFx0XHRcdFx0XHRcdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyMjg4Olx0XHRlcnIgPSBydnVfbWJveF9oYW5kbGVyXyAjIyBfZm5fbmFtZShydnUsXHRcdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yMjg5LVx0XHRcdFx0XHRcdCAgICAoc3RydWN0IF9yZXFfdHlwZSAqKXJlcSwgXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz0yMjk3PU1CT1hfTUVTU0FHRVNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yMzA2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MjMwNzpzdGF0aWMgdm9pZCBfX3J2dV9tYm94X2hhbmRsZXIoc3RydWN0IHJ2dV93b3JrICptd29yaywgaW50IHR5cGUsIGJvb2wgcG9sbClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTIzMDgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTIzOTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyMzk4OnN0YXRpYyBpbmxpbmUgdm9pZCBydnVfYWZwZl9tYm94X2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjM5OS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjQwMy1cdG11dGV4X2xvY2soXHUwMDI2cnZ1LVx1MDAzZW1ib3hfbG9jayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyNDA0Olx0X19ydnVfbWJveF9oYW5kbGVyKG13b3JrLCBUWVBFX0FGUEYsIHRydWUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjQwNS1cdG11dGV4X3VubG9jayhcdTAwMjZydnUtXHUwMDNlbWJveF9sb2NrKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNDA3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MjQwODpzdGF0aWMgaW5saW5lIHZvaWQgcnZ1X2FmdmZfbWJveF9oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI0MDkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI0MTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyNDEyOlx0X19ydnVfbWJveF9oYW5kbGVyKG13b3JrLCBUWVBFX0FGVkYsIGZhbHNlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI0MTMtfVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTI1NzA9c3RhdGljIGludCBydnVfbWJveF9pbml0KHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1ib3hfd3FfaW5mbyAqbXcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNTcxLVx0XHRcdCBpbnQgdHlwZSwgaW50IG51bSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjI1NzI6XHRcdFx0IHZvaWQgKG1ib3hfaGFuZGxlcikoc3RydWN0IHdvcmtfc3RydWN0ICopLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjU3My1cdFx0XHQgdm9pZCAobWJveF91cF9oYW5kbGVyKShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKikpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjY4NC1cdFx0bXdvcmstXHUwMDNlcnZ1ID0gcnZ1O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MjY4NTpcdFx0SU5JVF9XT1JLKFx1MDAyNm13b3JrLVx1MDAzZXdvcmssIG1ib3hfaGFuZGxlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNjg2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTI3MzQ9dm9pZCBydnVfcXVldWVfd29yayhzdHJ1Y3QgbWJveF93cV9pbmZvICptdywgaW50IGZpcnN0LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI3NTMtXHRcdCAqIHdoZW4gdGhlIGludGVycnVwdCBoYW5kbGVyIGlzIGNhbGxlZC5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjI3NTQ6XHRcdCAqIHBmLVx1MDAzZW1ib3gubnVtX21zZ3MgaG9sZHMgdGhlIGRhdGEgZm9yIHVzZSBpbiBwZmFmX21ib3hfaGFuZGxlclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjc1NS1cdFx0ICogcGZcdTAwM2VtYm94LnVwX251bV9tc2dzIGhvbGRzIHRoZSBkYXRhIGZvciB1c2UgaW5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz0zNDY2PXN0YXRpYyBpbnQgcnZ1X2VuYWJsZV9zcmlvdihzdHJ1Y3QgcnZ1ICpydnUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzUwOS1cdGVyciA9IHJ2dV9tYm94X2luaXQocnZ1LCBcdTAwMjZydnUtXHUwMDNlYWZ2Zl93cV9pbmZvLCBUWVBFX0FGVkYsIHZmcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjM1MTA6XHRcdFx0ICAgIHJ2dV9hZnZmX21ib3hfaGFuZGxlciwgcnZ1X2FmdmZfbWJveF91cF9oYW5kbGVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM1MTEtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTM1NDc9c3RhdGljIGludCBydnVfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zNjI3LVx0ZXJyID0gcnZ1X21ib3hfaW5pdChydnUsIFx1MDAyNnJ2dS1cdTAwM2VhZnBmX3dxX2luZm8sIFRZUEVfQUZQRixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjM2Mjg6XHRcdFx0ICAgIHJ2dS1cdTAwM2Vody1cdTAwM2V0b3RhbF9wZnMsIHJ2dV9hZnBmX21ib3hfaGFuZGxlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM2MjktXHRcdFx0ICAgIHJ2dV9hZnBmX21ib3hfdXBfaGFuZGxlcik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1Lmg9OTgzPXN0YXRpYyBpbmxpbmUgYm9vbCBpc19jZ3hfdmYoc3RydWN0IHJ2dSAqcnZ1LCB1MTYgcGNpZnVuYylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuaC05ODktI2RlZmluZSBNKF9uYW1lLCBfaWQsIGZuX25hbWUsIHJlcSwgcnNwKVx0XHRcdFx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5oOjk5MDppbnQgcnZ1X21ib3hfaGFuZGxlcl8gIyMgZm5fbmFtZShzdHJ1Y3QgcnZ1ICosIHN0cnVjdCByZXEgKiwgc3RydWN0IHJzcCAqKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5oLTk5MS1NQk9YX01FU1NBR0VTXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jPTUyNz12b2lkIHJ2dV9jZ3hfZGlzYWJsZV9kbWFjX2VudHJpZXMoc3RydWN0IHJ2dSAqcnZ1LCB1MTYgcGNpZnVuYylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtNTYyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjU2MzppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfc3RhcnRfcnh0eChzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtNTY0LVx0XHRcdFx0ICAgIHN0cnVjdCBtc2dfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTU2OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo1NzA6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X3N0b3Bfcnh0eChzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtNTcxLVx0XHRcdFx0ICAgc3RydWN0IG1zZ19yc3AgKnJzcClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM9NTc3PXN0YXRpYyBpbnQgcnZ1X2xtYWNfZ2V0X3N0YXRzKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtNjIwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjYyMTppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfc3RhdHMoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTYyMi1cdFx0XHQgICAgICAgc3RydWN0IGNneF9zdGF0c19yc3AgKnJzcClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtNjI2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjYyNzppbnQgcnZ1X21ib3hfaGFuZGxlcl9ycG1fc3RhdHMoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTYyOC1cdFx0XHQgICAgICAgc3RydWN0IHJwbV9zdGF0c19yc3AgKnJzcClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtNjMyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjYzMzppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfc3RhdHNfcnN0KHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy02MzQtXHRcdFx0XHQgICBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy02NjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6NjYyOmludCBydnVfbWJveF9oYW5kbGVyX2NneF9mZWNfc3RhdHMoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTY2My1cdFx0XHRcdCAgIHN0cnVjdCBtc2dfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTY3OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo2ODA6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X21hY19hZGRyX3NldChzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtNjgxLVx0XHRcdFx0ICAgICAgc3RydWN0IGNneF9tYWNfYWRkcl9zZXRfb3JfZ2V0ICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTcwMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo3MDM6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X21hY19hZGRyX2FkZChzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtNzA0LVx0XHRcdFx0ICAgICAgc3RydWN0IGNneF9tYWNfYWRkcl9hZGRfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTcyNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo3Mjc6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X21hY19hZGRyX2RlbChzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtNzI4LVx0XHRcdFx0ICAgICAgc3RydWN0IGNneF9tYWNfYWRkcl9kZWxfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTc0My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo3NDQ6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X21hY19tYXhfZW50cmllc19nZXQoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTc0NS1cdFx0XHRcdFx0ICAgICBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy03NzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6NzcxOmludCBydnVfbWJveF9oYW5kbGVyX2NneF9tYWNfYWRkcl9nZXQoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTc3Mi1cdFx0XHRcdCAgICAgIHN0cnVjdCBjZ3hfbWFjX2FkZHJfc2V0X29yX2dldCAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy03ODMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6Nzg0OmludCBydnVfbWJveF9oYW5kbGVyX2NneF9wcm9taXNjX2VuYWJsZShzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtNzg1LVx0XHRcdFx0XHRzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy04MDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6ODA0OmludCBydnVfbWJveF9oYW5kbGVyX2NneF9wcm9taXNjX2Rpc2FibGUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTgwNS1cdFx0XHRcdFx0IHN0cnVjdCBtc2dfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jPTgyMz1zdGF0aWMgaW50IHJ2dV9jZ3hfcHRwX3J4X2NmZyhzdHJ1Y3QgcnZ1ICpydnUsIHUxNiBwY2lmdW5jLCBib29sIGVuYWJsZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtODU4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjg1OTppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfcHRwX3J4X2VuYWJsZShzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtODYwLVx0XHRcdFx0ICAgICAgIHN0cnVjdCBtc2dfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTg2Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo4Njg6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X3B0cF9yeF9kaXNhYmxlKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy04NjktXHRcdFx0XHRcdHN0cnVjdCBtc2dfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jPTg3ND1zdGF0aWMgaW50IHJ2dV9jZ3hfY29uZmlnX2xpbmtldmVudHMoc3RydWN0IHJ2dSAqcnZ1LCB1MTYgcGNpZnVuYywgYm9vbCBlbilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtODk0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjg5NTppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfc3RhcnRfbGlua2V2ZW50cyhzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtODk2LVx0XHRcdFx0XHQgIHN0cnVjdCBtc2dfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTkwMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo5MDI6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X3N0b3BfbGlua2V2ZW50cyhzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtOTAzLVx0XHRcdFx0XHQgc3RydWN0IG1zZ19yc3AgKnJzcClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtOTA4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjkwOTppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfZ2V0X2xpbmtpbmZvKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy05MTAtXHRcdFx0XHQgICAgICBzdHJ1Y3QgY2d4X2xpbmtfaW5mb19tc2cgKnJzcClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtOTI2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjkyNzppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfZmVhdHVyZXNfZ2V0KHN0cnVjdCBydnUgKnJ2dSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy05MjgtXHRcdFx0XHQgICAgICBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYz05NzE9c3RhdGljIGludCBydnVfY2d4X2NvbmZpZ19pbnRsYmsoc3RydWN0IHJ2dSAqcnZ1LCB1MTYgcGNpZnVuYywgYm9vbCBlbilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtOTg2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjk4NzppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfaW50bGJrX2VuYWJsZShzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtOTg4LVx0XHRcdFx0ICAgICAgIHN0cnVjdCBtc2dfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTk5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo5OTQ6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X2ludGxia19kaXNhYmxlKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy05OTUtXHRcdFx0XHRcdHN0cnVjdCBtc2dfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jPTEwMDE9aW50IHJ2dV9jZ3hfY2ZnX3BhdXNlX2ZybShzdHJ1Y3QgcnZ1ICpydnUsIHUxNiBwY2lmdW5jLCB1OCB0eF9wYXVzZSwgdTggcnhfcGF1c2UpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTEwMzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6MTA0MDppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfY2ZnX3BhdXNlX2ZybShzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtMTA0MS1cdFx0XHRcdCAgICAgICBzdHJ1Y3QgY2d4X3BhdXNlX2ZybV9jZmcgKnJlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtMTA2Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzoxMDY4OmludCBydnVfbWJveF9oYW5kbGVyX2NneF9nZXRfcGh5X2ZlY19zdGF0cyhzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtMTA2OS1cdFx0XHRcdFx0ICAgc3RydWN0IG1zZ19yc3AgKnJzcClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM9MTEyNj1pbnQgcnZ1X2NneF9zdGFydF9zdG9wX2lvKHN0cnVjdCBydnUgKnJ2dSwgdTE2IHBjaWZ1bmMsIGJvb2wgc3RhcnQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTExNzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6MTE3MzppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfc2V0X2ZlY19wYXJhbShzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtMTE3NC1cdFx0XHRcdCAgICAgICBzdHJ1Y3QgZmVjX21vZGUgKnJlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtMTE4OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzoxMTkwOmludCBydnVfbWJveF9oYW5kbGVyX2NneF9nZXRfYXV4X2xpbmtfaW5mbyhzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtMTE5MS1cdFx0XHRcdFx0ICAgc3RydWN0IGNneF9md19kYXRhICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTEyMTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6MTIxNjppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfc2V0X2xpbmtfbW9kZShzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtMTIxNy1cdFx0XHRcdCAgICAgICBzdHJ1Y3QgY2d4X3NldF9saW5rX21vZGVfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTEyNDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6MTI0MzppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfbWFjX2FkZHJfcmVzZXQoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgY2d4X21hY19hZGRyX3Jlc2V0X3JlcSAqcmVxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTEyNDQtXHRcdFx0XHRcdHN0cnVjdCBtc2dfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTEyNTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6MTI2MDppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfbWFjX2FkZHJfdXBkYXRlKHN0cnVjdCBydnUgKnJ2dSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy0xMjYxLVx0XHRcdFx0XHQgc3RydWN0IGNneF9tYWNfYWRkcl91cGRhdGVfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jPTEyNzc9aW50IHJ2dV9jZ3hfcHJpb19mbG93X2N0cmxfY2ZnKHN0cnVjdCBydnUgKnJ2dSwgdTE2IHBjaWZ1bmMsIHU4IHR4X3BhdXNlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy0xMzEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjEzMTQ6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X3ByaW9fZmxvd19jdHJsX2NmZyhzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtMTMxNS1cdFx0XHRcdFx0ICAgIHN0cnVjdCBjZ3hfcGZjX2NmZyAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jbjEway5jPTExMz1zdGF0aWMgaW50IHJ2dV91cGRhdGVfbG10YWRkcihzdHJ1Y3QgcnZ1ICpydnUsIHUxNiBwY2lmdW5jLCB1NjQgbG10X2FkZHIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NuMTBrLmMtMTQ3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NuMTBrLmM6MTQ4OmludCBydnVfbWJveF9oYW5kbGVyX2xtdHN0X3RibF9zZXR1cChzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY24xMGsuYy0xNDktXHRcdFx0XHQgICAgIHN0cnVjdCBsbXRzdF90Ymxfc2V0dXBfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jPTQzMz1zdGF0aWMgaW50IHZhbGlkYXRlX2FuZF9nZXRfY3B0X2Jsa2FkZHIoaW50IHJlcV9ibGthZGRyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYy00NDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmM6NDQ0OmludCBydnVfbWJveF9oYW5kbGVyX2NwdF9sZl9hbGxvYyhzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmMtNDQ1LVx0XHRcdFx0ICBzdHJ1Y3QgY3B0X2xmX2FsbG9jX3JlcV9tc2cgKnJlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmM9NTE0PXN0YXRpYyBpbnQgY3B0X2xmX2ZyZWUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLCBpbnQgYmxrYWRkcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmMtNTQ0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jOjU0NTppbnQgcnZ1X21ib3hfaGFuZGxlcl9jcHRfbGZfZnJlZShzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmMtNTQ2LVx0XHRcdFx0IHN0cnVjdCBtc2dfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jPTYxND1zdGF0aWMgaW50IGNwdF9pbmxpbmVfaXBzZWNfY2ZnX291dGJvdW5kKHN0cnVjdCBydnUgKnJ2dSwgaW50IGJsa2FkZHIsIHU4IGNwdGxmLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYy02NTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmM6NjU5OmludCBydnVfbWJveF9oYW5kbGVyX2NwdF9pbmxpbmVfaXBzZWNfY2ZnKHN0cnVjdCBydnUgKnJ2dSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYy02NjAtXHRcdFx0XHRcdCAgc3RydWN0IGNwdF9pbmxpbmVfaXBzZWNfY2ZnX21zZyAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYz02OTU9c3RhdGljIGJvb2wgdmFsaWRhdGVfYW5kX3VwZGF0ZV9yZWdfb2Zmc2V0KHN0cnVjdCBydnUgKnJ2dSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmMtNzYyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jOjc2MzppbnQgcnZ1X21ib3hfaGFuZGxlcl9jcHRfcmRfd3JfcmVnaXN0ZXIoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jLTc2NC1cdFx0XHRcdFx0c3RydWN0IGNwdF9yZF93cl9yZWdfbXNnICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jPTgzMz1zdGF0aWMgdm9pZCBnZXRfZW5nX3N0cyhzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBjcHRfc3RzX3JzcCAqcnNwLCBpbnQgYmxrYWRkcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmMtODU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jOjg1ODppbnQgcnZ1X21ib3hfaGFuZGxlcl9jcHRfc3RzKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IGNwdF9zdHNfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmMtODU5LVx0XHRcdCAgICAgc3RydWN0IGNwdF9zdHNfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jPTg5OT1zdGF0aWMgdm9pZCBjcHRfcnhjX3RpbWVfY2ZnKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IGNwdF9yeGNfdGltZV9jZmdfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jLTkyMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYzo5MjQ6aW50IHJ2dV9tYm94X2hhbmRsZXJfY3B0X3J4Y190aW1lX2NmZyhzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmMtOTI1LVx0XHRcdFx0ICAgICAgc3RydWN0IGNwdF9yeGNfdGltZV9jZmdfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jLTk0My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYzo5NDQ6aW50IHJ2dV9tYm94X2hhbmRsZXJfY3B0X2N0eF9jYWNoZV9zeW5jKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYy05NDUtXHRcdFx0XHRcdHN0cnVjdCBtc2dfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jLTk0OS1cblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTE3NgoJCQkJCQkJb3V0cHV0OiA0NgoJCQkJCQkJdGhvdWdodHM6IDU2MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBGdXp6aW5nIFN0cmF0ZWd5OiBUYXJnZXRpbmcgdGhlIE1haWxib3ggSGFuZGxlciBpbiBgcnZ1LmNgKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIFRoZSBjb3JlIG9mIHRoZSBpc3N1ZSwgYW5kIHRoZXJlZm9yZSBteSB0YXJnZXQsIGlzIHRoZSBgcnZ1X3Byb2Nlc3NfbWJveF9tc2dgIGZ1bmN0aW9uIGluIGBydnUuY2AuIFRoaXMgaXMgd2hlcmUgdGhlIG1haWxib3ggbWVzc2FnZXMgYXJlIGhhbmRsZWQuIFRoZSBzdHJ1Y3R1cmUgaXMgcHJldHR5IGNsZWFyOiBpdCB1c2VzIGEgbWFjcm8gdG8gZGVmaW5lIHRoZSBtZXNzYWdlIGNhc2VzLCBhbmQgZWFjaCBjYXNlIGNhbGxzIGEgaGFuZGxlciBmdW5jdGlvbi4gU3BlY2lmaWNhbGx5LCBJJiMzOTttIGludGVyZXN0ZWQgaW4gaG93IHRoaXMgaXMgdHJpZ2dlcmVkLiBJIHNlZSB0aGF0IGBydnVfcHJvY2Vzc19tYm94X21zZ2AgaXMgY2FsbGVkIGJ5IGBfX3J2dV9tYm94X2hhbmRsZXJgLCB3aGljaCBpcyBhIHdvcmtxdWV1ZSBmdW5jdGlvbi4gVGhpcyB3b3JrIGlzIHF1ZXVlZCBieSBgcnZ1X3F1ZXVlX3dvcmtgLCB3aGljaCBpcyBpdHNlbGYgY2FsbGVkIGZyb20gdGhlIGludGVycnVwdCBoYW5kbGVyIGBydnVfbWJveF9pbnRyX2hhbmRsZXJgLiBBbmQgKnRoYXQqIGhhbmRsZXIgaXMgcmVnaXN0ZXJlZCBmb3IgdGhlIG1haWxib3ggaW50ZXJydXB0cy4KCkFoYSEgVGhpcyBpcyB3aGVyZSB0aGUgdnVsbmVyYWJpbGl0eSBleGlzdHMuCgpUaGUga2V5IGlzIHRoYXQgc3l6a2FsbGVyLCB0aHJvdWdoIGl0cyB2aGNpIGludGVyZmFjZSwgY2FuIGluamVjdCBpbnRlcnJ1cHRzIGZvciB0aGUgUENJIGRldmljZS4gU28sIGJ5IGNyYWZ0aW5nIGRhdGEgdG8gYmUgd3JpdHRlbiBpbnRvIHRoZSBCQVJzLCBJIGNhbiBtYW5pcHVsYXRlIHRoZSBtYWlsYm94IG1lbW9yeSwgdHJpZ2dlciBhbiBpbnRlcnJ1cHQgdmlhIHN5emthbGxlciwgYW5kIHRodXMgY2F1c2UgYHJ2dV9tYm94X2ludHJfaGFuZGxlcmAgdG8gcnVuLCB3aGljaCBpbiB0dXJuIHF1ZXVlcyBhIG1haWxib3ggd29yayBpdGVtIHRoYXQgd2lsbCwgaW4gdGhlIGVuZCwgY2FsbCB0aGUgbWFpbGJveCBoYW5kbGVycy4gVGhlIG1haWxib3ggbWVtb3J5LCBtYXBwZWQgdmlhIFBDSSBCQVJzLCBwcm92aWRlcyB0aGUgcGVyZmVjdCBhdHRhY2sgc3VyZmFjZS4gU3l6a2FsbGVyIGNhbiBwcm92aWRlIHRoZSBtZW1vcnkgZm9yIHRoZSBCQVJzIGFuZCBJIGNhbiBwb3B1bGF0ZSBpdCB3aXRoIHJhbmRvbSBkYXRhLiBUaGlzIG9wZW5zIHRoZSBkb29yIHRvIGZ1enppbmcgdGhlIG1haWxib3ggaGFuZGxlciBmdW5jdGlvbiwgYHJ2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlYCBpbiB0aGUgT2N0ZW9uVFgyIEFGIGRyaXZlci4KCk5vdywgbGV0IG1lIHRoaW5rIGFib3V0IHRoZSBmdW5jdGlvbmFsIGltcGxpY2F0aW9ucy4gVGhpcyBjb2RlIG1vZGlmaWVzIHRoZSBiZWhhdmlvciBvZiB0aGUgZGV2aWNlIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBmdW5jdGlvbiBpcyBydW5uaW5nIGZvciBhIFZpcnR1YWwgRnVuY3Rpb24gKFZGKS4gVGhlIGBpc192ZihwY2lmdW5jKWAgY2hlY2sgZGV0ZXJtaW5lcyB3aGV0aGVyIHNvbWUgZnVuY3Rpb25zIGFyZSBjYWxsZWQsIGFuZCB0aG9zZSBmdW5jdGlvbnMsIGluIHR1cm4sIG1vZGlmeSB0aGUgY29yZSBsb2dpYyBvZiB0aGUgT2N0ZW9uVFgyIEFGIGRyaXZlciYjMzk7cyBtYWlsYm94IGhhbmRsZXIsIG1lYW5pbmcgdGhpcyBjb2RlIGlzIGFic29sdXRlbHkgd29ydGggZnV6emluZyEKClRvIGVuc3VyZSBJJiMzOTttIHRhcmdldGluZyB0aGUgY29ycmVjdCBjb25maWd1cmF0aW9uLCBJIG5lZWQgdG8gdmVyaWZ5IGEgZmV3IHRoaW5ncy4gRmlyc3QgYW5kIGZvcmVtb3N0LCBgQ09ORklHX09DVEVPTlRYMl9BRmAgaXMgdGhlIGNyaXRpY2FsIHNldHRpbmcuIE5vdywgbGV0IG1lIGRvdWJsZS1jaGVjayB0aGUgS2NvbmZpZyBmaWxlIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnYCB0byBiZSBzdXJlIHRoZXJlIGFyZW4mIzM5O3QgYW55IG90aGVyIGRlcGVuZGVuY2llcyBvciByZWxhdGVkIGNvbmZpZ3VyYXRpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgT0NURU9OVFgyX0FGJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnPTY9Y29uZmlnIE9DVEVPTlRYMl9NQk9YXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy04LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzo5OmNvbmZpZyBPQ1RFT05UWDJfQUZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMTAtXHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgQWRtaW4gRnVuY3Rpb24gZHJpdmVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDExOjE1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2NDQ4CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipBbmFseXppbmcgdGhlIERlcGVuZGVuY2llcyBvZiBPQ1RFT05UWDJfQUYqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGBPQ1RFT05UWDJfQUZgLiBUaGUgZmlyc3QgdGhpbmcgdGhhdCBwb3BzIGludG8gbXkgaGVhZCBpcywgJiMzNDtXaGF0IG90aGVyIGNvbXBvbmVudHMgb3IgbW9kdWxlcyByZWx5IG9uICp0aGlzKiBwaWVjZT8mIzM0OyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgcmVsYXRpb25zaGlwcyB3aXRoaW4gdGhlIGJyb2FkZXIgc3lzdGVtLCBpZGVhbGx5IHdpdGhpbiB0aGUgTGludXgga2VybmVsIG9yIGEgc3BlY2lmaWMgbmV0d29ya2luZyBmcmFtZXdvcmsuIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgZGVwZW5kZW5jeSB0cmVlczsgYSBxdWljayBzY2FuIG9mIHRoZSBjb2RlIG9yIGNvbmZpZ3VyYXRpb24gZmlsZXMgd291bGQgYmUgdGhlIGlkZWFsIHBsYWNlIHRvIGJlZ2luIHRoaXMgYW5hbHlzaXMuIEFtIEkgZGVhbGluZyB3aXRoIGEgbW9kdWxlLCBhIGRyaXZlciwgc29tZSBoYXJkd2FyZSBhYnN0cmFjdGlvbiBsYXllciwgb3IgYW4gZW50aXJlbHkgZGlmZmVyZW50IGVudGl0eT8gVGhlIGNvbnRleHQgaXMga2V5IGhlcmUuCgpXaGF0JiMzOTtzIHRoZSBnb2FsPyBBcmUgd2UgdHJ5aW5nIHRvIHVuZGVyc3RhbmQgaG93IGBPQ1RFT05UWDJfQUZgIGFmZmVjdHMgb3RoZXIgcGFydHMgb2YgdGhlIHN5c3RlbSBmb3Igb3B0aW1pemF0aW9uLCB0cm91Ymxlc2hvb3RpbmcsIG9yIG1pZ3JhdGlvbiwgbWF5YmUgZXZlbiBzZWN1cml0eT8gVGhlIHVzZSBjYXNlIGRyaXZlcyB0aGUgZGVwdGggSSYjMzk7bGwgZ28gaW50by4gRG8gSSB3YW50IHRvIHVuZGVyc3RhbmQgd2hhdCB3b3VsZCBicmVhayBpZiBJIGNoYW5nZWQgdGhpcz8gT3Igd2hhdCBtaWdodCBiZSBhZmZlY3RlZCB3aGVuIGEgY2hhbmdlIGhhcHBlbnMgaW4gc29tZSBvdGhlciBzdWJzeXN0ZW0/IE9yIGFtIEkgdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgd2hpY2ggb3RoZXIgbW9kdWxlcyBzaG91bGQgYmUgY29uc2lkZXJlZCBkdXJpbmcgZnV0dXJlIG1vZGlmaWNhdGlvbnMgdG8gdGhpcyBzdWJzeXN0ZW0/CgpJJiMzOTttIG1lbnRhbGx5IHByZXBhcmluZyBmb3IgYSBjaGFpbiBvZiBjb21tYW5kLCBhIGhpZXJhcmNoeS4gSSYjMzk7bSB0aGlua2luZyBvZiB0cmFjaW5nIGJhY2sgdGhlIGluY2x1ZGUgZmlsZXMsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aGF0IHdvdWxkIHB1bGwgdGhpcyBtb2R1bGUgaW50byB0aGUgYnVpbGQsIG9yIGV2ZW4gcnVudGltZSBkZXBlbmRlbmNpZXMgdGhhdCBjb3VsZCBjYWxsIGl0cyByb3V0aW5lcy4gSSYjMzk7bSBnb2luZyB0byBzdGFydCB3aXRoIHRoZSBvYnZpb3VzIHBsYWNlczogbWFrZWZpbGVzLCBLY29uZmlnIGZpbGVzLCBhbmQgYW55IGRldmljZSB0cmVlIGVudHJpZXMsIGFuZCB0aGVuIG1vdmUgb24gdG8gdGhlIGNvZGUgaXRzZWxmLCBzdGFydGluZyB3aXRoIGFueSBjbGVhcmx5IG1hcmtlZCBlbnRyeSBwb2ludHMgb3IgaW5pdGlhbGl6YXRpb24gcm91dGluZXMuIEkgd2FudCB0byBzZWUgd2hpY2ggQVBJcyBpdCBleHBvcnRzIGFuZCBob3cgb3RoZXIgY29tcG9uZW50cyBpbnRlcmFjdCB3aXRoIGl0LiBGdW5jdGlvbiBjYWxscywgZGF0YSBzdHJ1Y3R1cmVzLCBhbmQgdGhlIGJyb2FkZXIgY29udHJvbCBmbG93IGFyZSBhbGwgZmFpciBnYW1lLiBJIGFtIGhvcGluZyB0aGUgc3lzdGVtIGlzIHdlbGwtZG9jdW1lbnRlZCwgc28gSSBjYW4gZmluZCBpdHMgb3ZlcmFsbCBwdXJwb3NlIGFuZCBmdW5jdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4gICAyOlx0I1xuICAgMzpcdCMgTWFydmVsbCBSVlUgTmV0d29yayBkcml2ZXJzIGNvbmZpZ3VyYXRpb25cbiAgIDQ6XHQjXG4gICA1Olx0XG4gICA2Olx0Y29uZmlnIE9DVEVPTlRYMl9NQk9YXG4gICA3Olx0XHR0cmlzdGF0ZVxuICAgODpcdFxuICAgOTpcdGNvbmZpZyBPQ1RFT05UWDJfQUZcbiAgMTA6XHRcdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBkcml2ZXJcJiMzNDtcbiAgMTE6XHRcdHNlbGVjdCBPQ1RFT05UWDJfTUJPWFxuICAxMjpcdFx0c2VsZWN0IE5FVF9ERVZMSU5LXG4gIDEzOlx0XHRkZXBlbmRzIG9uICg2NEJJVCBcdTAwMjZcdTAwMjYgQ09NUElMRV9URVNUKSB8fCBBUk02NFxuICAxNDpcdFx0ZGVwZW5kcyBvbiBQQ0lcbiAgMTU6XHRcdGRlcGVuZHMgb24gUFRQXzE1ODhfQ0xPQ0tfT1BUSU9OQUxcbiAgMTY6XHRcdGhlbHBcbiAgMTc6XHRcdCAgVGhpcyBkcml2ZXIgc3VwcG9ydHMgTWFydmVsbCYjMzk7cyBPY3Rlb25UWDIgUmVzb3VyY2UgVmlydHVhbGl6YXRpb25cbiAgMTg6XHRcdCAgVW5pdCYjMzk7cyBhZG1pbiBmdW5jdGlvbiBtYW5hZ2VyIHdoaWNoIG1hbmFnZXMgYWxsIFJWVSBIVyByZXNvdXJjZXNcbiAgMTk6XHRcdCAgYW5kIHByb3ZpZGVzIGEgbWVkaXVtIHRvIG90aGVyIFBGL1ZGcyB0byBjb25maWd1cmUgSFcuIFNob3VsZCBiZVxuICAyMDpcdFx0ICBlbmFibGVkIGZvciBvdGhlciBSVlUgZGV2aWNlIGRyaXZlcnMgdG8gd29yay5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjcxOTAKCQkJCQkJCW91dHB1dDogMTE1CgkJCQkJCQl0aG91Z2h0czogNTcxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBDb25maWd1cmF0aW9uIGFuZCBTY29wZSBmb3IgRnV6emluZyB0aGUgQUYgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBob3cgYmVzdCB0byBjb25maWd1cmUgdGhpcyBzeXN0ZW0gZm9yIGZ1enppbmcgdGhlIEFGIGRyaXZlci4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIGl0IGhpbmdlcyBvbiBhIGZldyBrZXkgZmFjdG9yczogYFBDSWAgYW5kIGVpdGhlciBgKDY0QklUICZhbXA7JmFtcDsgQ09NUElMRV9URVNUKWAgb3IgYEFSTTY0YC4gV2l0aCB0aG9zZSBpbiBtaW5kLCBgT0NURU9OVFgyX0FGYCBsb29rcyBsaWtlIHRoZSByaWdodCBjb25maWcgdG8gc3RhcnQgd2l0aC4KCkkgaGF2ZSB0byBjb25zaWRlciB3aGV0aGVyIHRvIGVuYWJsZSBgT0NURU9OVFgyX1BGYCBhbmQgYE9DVEVPTlRYMl9WRmAuIFdoaWxlIHRoZXkgbWlnaHQgbm90IGJlICpzdHJpY3RseSogbmVjZXNzYXJ5IGlmIHN5emthbGxlciBpcyBkaXJlY3RseSB0YXJnZXRpbmcgdGhlIEFGIGRyaXZlciYjMzk7cyBQQ0kgaW50ZXJmYWNlLCBlbmFibGluZyB0aGVtIGNvdWxkIGJlIGJlbmVmaWNpYWwuIElmIHN5emthbGxlciBlbmRzIHVwIGZ1enppbmcgdGhlIFBGL1ZGIGRyaXZlcnMsIHdoaWNoIHRoZW4gc2VuZCBtZXNzYWdlcyB0byB0aGUgQUYsIEkmIzM5O2xsIG5lZWQgdGhlbS4gU28sIGxldCYjMzk7cyBpbmNsdWRlIGBPQ1RFT05UWDJfQUZgIGZvciBub3csIGl0JiMzOTtzIHRoZSBtb3N0IGNvbnNlcnZhdGl2ZSBhcHByb2FjaC4KCk5leHQsIEkgbmVlZCB0byBwaW5wb2ludCB0aGUgZm9jdXMgc3ltYm9scyDigJMgdGhlIGZ1bmN0aW9ucyB0aGlzIGlzIGFjdHVhbGx5IHRvdWNoaW5nLiBBZnRlciBsb29raW5nLCB0aGUgcHJpbWFyeSBvbmUgaXMgYHJ2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlYC4gQXJlIHRoZXJlIGFueSBvdGhlcnM/IE5vcGUsIGp1c3QgdGhpcyBvbmUuIFNvLCB0aGF0JiMzOTtzIHRoZSBmb2N1cy4KCkp1c3QgdG8gYmUgYWJzb2x1dGVseSBjZXJ0YWluLCBJJiMzOTtsbCBkb3VibGUgY2hlY2sgdGhlIGNvbmZpZyByZXF1aXJlbWVudHMgYWdhaW4uIGBPQ1RFT05UWDJfQUZgIHNob3VsZCBiZSBzdWZmaWNpZW50IG9uIGl0cyBvd24uCgpOb3csIHdhaXQuLi4gdGhlcmUmIzM5O3MgdGhlIHBhdGNoIGl0c2VsZi4KCmBgYGMKQEAgLTQ1NzUsNyAmIzQzOzQ1NzUsNyBAQCBpbnQgcnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3Qgbml4X3J4X21vZGUgKnJlcSwKIAkJcnZ1X25wY19pbnN0YWxsX2FsbG11bHRpX2VudHJ5KHJ2dSwgcGNpZnVuYywgbml4bGYsCiAJCQkJCSAgICAgICBwZnZmLSZndDtyeF9jaGFuX2Jhc2UpOwogCX0gZWxzZSB7Ci0JCWlmICghbml4X3J4X211bHRpY2FzdCkKJiM0MzsJCWlmICghbml4X3J4X211bHRpY2FzdCAmYW1wOyZhbXA7ICFpc192ZihwY2lmdW5jKSkKIAkJCXJ2dV9ucGNfZW5hYmxlX2FsbG11bHRpX2VudHJ5KHJ2dSwgcGNpZnVuYywgbml4bGYsIGZhbHNlKTsKIAl9CiAKQEAgLTQ1ODUsNyAmIzQzOzQ1ODUsNyBAQCBpbnQgcnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3Qgbml4X3J4X21vZGUgKnJlcSwKIAkJCQkJICAgICAgcGZ2Zi0mZ3Q7cnhfY2hhbl9iYXNlLAogCQkJCQkgICAgICBwZnZmLSZndDtyeF9jaGFuX2NudCk7CiAJZWxzZQotCQlpZiAoIW5peF9yeF9tdWx0aWNhc3QpCiYjNDM7CQlpZiAoIW5peF9yeF9tdWx0aWNhc3QgJmFtcDsmYW1wOyAhaXNfdmYocGNpZnVuYykpCiAJCQlydnVfbnBjX2VuYWJsZV9wcm9taXNjX2VudHJ5KHJ2dSwgcGNpZnVuYywgbml4bGYsIGZhbHNlKTsKIAogCXJldHVybiAwOwpgYGAKClJpZ2h0LCBpdCYjMzk7cyBjaGFuZ2luZyB0aGUgYmVoYXZpb3Igb2YgdGhlIGRyaXZlci4gRnVuY3Rpb25hbGx5LCB0aGlzIGlzIGEgY2hhbmdlIHRvIGhvdyBSWCBtb2RlIGlzIGhhbmRsZWQuCgpPa2F5LCB3aXRoIHRoZSBjb250ZXh0IHNldCwgaXQmIzM5O3MgdGltZSB0byBzZXQtcmVzdWx0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O09DVEVPTlRYMl9BRiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3J2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2dpYyBmb3IgZW5hYmxpbmcvZGlzYWJsaW5nIG11bHRpY2FzdCBhbmQgcHJvbWlzY3VvdXMgbW9kZXMgaW4gdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBkcml2ZXIuIEl0IHNwZWNpZmljYWxseSBjaGFuZ2VzIHRoZSBiZWhhdmlvciBmb3IgVmlydHVhbCBGdW5jdGlvbnMgKFZGcykuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIHJlYWNoYWJsZSBQQ0kgZHJpdmVyICh2aWEgdmhjaSBlbXVsYXRpb24pLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtPQ1RFT05UWDJfQUYmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtydnVfbWJveF9oYW5kbGVyX25peF9zZXRfcnhfbW9kZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIGVuYWJsaW5nL2Rpc2FibGluZyBtdWx0aWNhc3QgYW5kIHByb21pc2N1b3VzIG1vZGVzIGluIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgQWRtaW4gRnVuY3Rpb24gZHJpdmVyLiBJdCBzcGVjaWZpY2FsbHkgY2hhbmdlcyB0aGUgYmVoYXZpb3IgZm9yIFZpcnR1YWwgRnVuY3Rpb25zIChWRnMpLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSByZWFjaGFibGUgUENJIGRyaXZlciAodmlhIHZoY2kgZW11bGF0aW9uKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDExOjE0OjE1Ljc1NjQ4NjUxNloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYyMzk2MDMwMzUxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk9DVEVPTlRYMl9BRlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInJ2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBlbmFibGluZy9kaXNhYmxpbmcgbXVsdGljYXN0IGFuZCBwcm9taXNjdW91cyBtb2RlcyBpbiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgUlZVIEFkbWluIEZ1bmN0aW9uIGRyaXZlci4gSXQgc3BlY2lmaWNhbGx5IGNoYW5nZXMgdGhlIGJlaGF2aW9yIGZvciBWaXJ0dWFsIEZ1bmN0aW9ucyAoVkZzKS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgcmVhY2hhYmxlIFBDSSBkcml2ZXIgKHZpYSB2aGNpIGVtdWxhdGlvbikuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDExOjE0OjE1Ljc1NjQ5MTY1NloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzI2ODk4NDE5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMmQ2ODFlMDcyM2RlZTNjMWQ2Yzk2MjA4YzYwYjI1YjI2OTBlMDMwN1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEp1bCAyIDExOjE0OjE0IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguY1xcbmluZGV4IGQ4OTg5Mzk1ZTg3NWRhLi5hN2UwZTBlMDVhZDIzYiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmNcXG5AQCAtNDU3NSw3ICs0NTc1LDcgQEAgaW50IHJ2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG5peF9yeF9tb2RlICpyZXEsXFxuIFxcdFxcdHJ2dV9ucGNfaW5zdGFsbF9hbGxtdWx0aV9lbnRyeShydnUsIHBjaWZ1bmMsIG5peGxmLFxcbiBcXHRcXHRcXHRcXHRcXHQgICAgICAgcGZ2Zi1cXHUwMDNlcnhfY2hhbl9iYXNlKTtcXG4gXFx0fSBlbHNlIHtcXG4tXFx0XFx0aWYgKCFuaXhfcnhfbXVsdGljYXN0KVxcbitcXHRcXHRpZiAoIW5peF9yeF9tdWx0aWNhc3QgXFx1MDAyNlxcdTAwMjYgIWlzX3ZmKHBjaWZ1bmMpKVxcbiBcXHRcXHRcXHRydnVfbnBjX2VuYWJsZV9hbGxtdWx0aV9lbnRyeShydnUsIHBjaWZ1bmMsIG5peGxmLCBmYWxzZSk7XFxuIFxcdH1cXG4gXFxuQEAgLTQ1ODUsNyArNDU4NSw3IEBAIGludCBydnVfbWJveF9oYW5kbGVyX25peF9zZXRfcnhfbW9kZShzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBuaXhfcnhfbW9kZSAqcmVxLFxcbiBcXHRcXHRcXHRcXHRcXHQgICAgICBwZnZmLVxcdTAwM2VyeF9jaGFuX2Jhc2UsXFxuIFxcdFxcdFxcdFxcdFxcdCAgICAgIHBmdmYtXFx1MDAzZXJ4X2NoYW5fY250KTtcXG4gXFx0ZWxzZVxcbi1cXHRcXHRpZiAoIW5peF9yeF9tdWx0aWNhc3QpXFxuK1xcdFxcdGlmICghbml4X3J4X211bHRpY2FzdCBcXHUwMDI2XFx1MDAyNiAhaXNfdmYocGNpZnVuYykpXFxuIFxcdFxcdFxcdHJ2dV9ucGNfZW5hYmxlX3Byb21pc2NfZW50cnkocnZ1LCBwY2lmdW5jLCBuaXhsZiwgZmFsc2UpO1xcbiBcXG4gXFx0cmV0dXJuIDA7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDExOjE0OjE2LjA4NDMxNzYzNFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjIwNjgxODcyODMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiT0NURU9OVFgyX0FGXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIGVuYWJsaW5nL2Rpc2FibGluZyBtdWx0aWNhc3QgYW5kIHByb21pc2N1b3VzIG1vZGVzIGluIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgQWRtaW4gRnVuY3Rpb24gZHJpdmVyLiBJdCBzcGVjaWZpY2FsbHkgY2hhbmdlcyB0aGUgYmVoYXZpb3IgZm9yIFZpcnR1YWwgRnVuY3Rpb25zIChWRnMpLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSByZWFjaGFibGUgUENJIGRyaXZlciAodmlhIHZoY2kgZW11bGF0aW9uKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAyZDY4MWUwNzIzZGVlM2MxZDZjOTYyMDhjNjBiMjViMjY5MGUwMzA3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMiAxMToxNDoxNCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguY1xuaW5kZXggZDg5ODkzOTVlODc1ZGEuLmE3ZTBlMGUwNWFkMjNiIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmNcbkBAIC00NTc1LDcgKzQ1NzUsNyBAQCBpbnQgcnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3Qgbml4X3J4X21vZGUgKnJlcSxcbiBcdFx0cnZ1X25wY19pbnN0YWxsX2FsbG11bHRpX2VudHJ5KHJ2dSwgcGNpZnVuYywgbml4bGYsXG4gXHRcdFx0XHRcdCAgICAgICBwZnZmLVx1MDAzZXJ4X2NoYW5fYmFzZSk7XG4gXHR9IGVsc2Uge1xuLVx0XHRpZiAoIW5peF9yeF9tdWx0aWNhc3QpXG4rXHRcdGlmICghbml4X3J4X211bHRpY2FzdCBcdTAwMjZcdTAwMjYgIWlzX3ZmKHBjaWZ1bmMpKVxuIFx0XHRcdHJ2dV9ucGNfZW5hYmxlX2FsbG11bHRpX2VudHJ5KHJ2dSwgcGNpZnVuYywgbml4bGYsIGZhbHNlKTtcbiBcdH1cbiBcbkBAIC00NTg1LDcgKzQ1ODUsNyBAQCBpbnQgcnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3Qgbml4X3J4X21vZGUgKnJlcSxcbiBcdFx0XHRcdFx0ICAgICAgcGZ2Zi1cdTAwM2VyeF9jaGFuX2Jhc2UsXG4gXHRcdFx0XHRcdCAgICAgIHBmdmYtXHUwMDNlcnhfY2hhbl9jbnQpO1xuIFx0ZWxzZVxuLVx0XHRpZiAoIW5peF9yeF9tdWx0aWNhc3QpXG4rXHRcdGlmICghbml4X3J4X211bHRpY2FzdCBcdTAwMjZcdTAwMjYgIWlzX3ZmKHBjaWZ1bmMpKVxuIFx0XHRcdHJ2dV9ucGNfZW5hYmxlX3Byb21pc2NfZW50cnkocnZ1LCBwY2lmdW5jLCBuaXhsZiwgZmFsc2UpO1xuIFxuIFx0cmV0dXJuIDA7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMToxNDoxNi4wODQzMTk3OTRaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MDMyOTA4MDM0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIE1hcnZlbGwgT2N0ZW9uVFgyIFJWVSBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQgdHdlYWtzIHRoZSBgcnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGVgIGZ1bmN0aW9uIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmNgLiBUaGUgY29yZSBjaGFuZ2UgaXMgYSBzbWFsbCBjb25kaXRpb25hbCBtb2RpZmljYXRpb246IGAhbml4X3J4X211bHRpY2FzdGAgbm93IGluY2x1ZGVzIGEgY2hlY2sgZm9yIGAhaXNfdmYocGNpZnVuYylgLiBGdW5jdGlvbmFsbHksIHRoaXMgc2VlbXMgc3RyYWlnaHRmb3J3YXJkIGVub3VnaCB3aXRoaW4gdGhlIGNvbnRleHQgb2YgdGhlIE9jdGVvblRYMiBSVlUgZHJpdmVyLlxuXG5Ib3dldmVyLCBteSBleHBlcnQgaW5zdGluY3RzIGtpY2sgaW4gaW1tZWRpYXRlbHkuIFRoZSBPY3Rlb25UWDIgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBldGhlcm5ldCBjb250cm9sbGVyLiBNeSBmaXJzdCB0aG91Z2h0IGlzIGFib3V0IHJlYWNoYWJpbGl0eS4gQ291bGQgdGhpcyBkcml2ZXIgZXZlbiBiZSBleGVyY2lzZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lPyBHZW5lcmFsbHksIHRoZXNlIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlcnMgYXJlbid0IGFjY2Vzc2libGUgdW5sZXNzIHRoZXJlJ3MgYW4gZW11bGF0b3Igc3BlY2lmaWNhbGx5IGZvciB0aGUgT2N0ZW9uVFgyIG9yIGlmIGl0J3Mgb3BlcmF0aW5nIGFzIGEgZ2VuZXJpYyBkcml2ZXIuXG5cblNvLCB0aGUgbmV4dCBzdGVwIGlzIHRvIGludmVzdGlnYXRlIHRoZSBwb3NzaWJpbGl0eSBvZiBlbXVsYXRpb24gaW4gUUVNVS4gSXMgdGhlcmUgYW4gT2N0ZW9uVFgyIG1vZGVsIGF2YWlsYWJsZSwgb3IgaXMgaXQgdHJlYXRlZCBhcyBhIGdlbmVyaWMgUENJIGRldmljZT8gSG9sZCBvbiwgdGhlcmUgaXMgc3l6a2FsbGVyLCB3aGljaCBtaWdodCBiZSBhYmxlIHRvIGZ1enogdGhlIFBDSSBkZXZpY2UgdGhyb3VnaCB0aGUgdmlydHVhbCBQQ0kgZGV2aWNlICh2aGNpKSAqaWYqIGl0IGlzIGVuYWJsZWQuIEJ1dCwgaWYgc3l6a2FsbGVyIGlzIGdvaW5nIHRvIGZ1enosIGl0IG5lZWRzIHRvIGtub3cgdGhlIFBDSSBJRHMuXG5cblRoZXJlZm9yZSwgSSBuZWVkIHRvIGRpZyBpbnRvIHRoZSBkcml2ZXIncyBLY29uZmlnIGFuZCBpZGVudGlmeSB0aGUgUENJIElEcy4gS25vd2luZyB0aGUgUENJIElEcyBpcyBnb2luZyB0byBiZSBrZXkgdG8gZGV0ZXJtaW5pbmcgd2hldGhlciB3ZSBjYW4gZXZlbiB0cmlnZ2VyIHRoaXMgY2hhbmdlIGluIGEgY29udHJvbGxlZCB0ZXN0aW5nIGVudmlyb25tZW50LCBlc3BlY2lhbGx5IGZvciBmdXp6aW5nIHB1cnBvc2VzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDkwLCJPdXRwdXRUb2tlbnMiOjYwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjY0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTQ6MjIuMTE3MjMwMTQ5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcxNjE1MzY4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmM9NDUwMz1pbnQgcnZ1X21ib3hfaGFuZGxlcl9uaXhfZ2V0X21hY19hZGRyKHN0cnVjdCBydnUgKnJ2dSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy00NTE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYzo0NTIwOmludCBydnVfbWJveF9oYW5kbGVyX25peF9zZXRfcnhfbW9kZShzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBuaXhfcnhfbW9kZSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy00NTIxLVxcdFxcdFxcdFxcdCAgICAgc3RydWN0IG1zZ19yc3AgKnJzcClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTQ6MjIuMTg4ODUwNDA3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzUwMzY2NTg3NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKkFuYWx5emluZyB0aGUgS2NvbmZpZyBEZXBlbmRlbmN5KipcblxuQWxyaWdodCwgc28gSSdtIGRpdmluZyBpbnRvIHRoaXMgZHJpdmVyIGFuZCwgbmF0dXJhbGx5LCB0aGUgZmlyc3QgdGhpbmcgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXMgaXRzIGJ1aWxkIGNvbmZpZ3VyYXRpb24uIExldCdzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzOiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGljaCBLY29uZmlnIG9wdGlvbnMgYWN0dWFsbHkgZW5hYmxlIHRoaXMgdGhpbmcuIEl0J3MgY3J1Y2lhbCBmb3IgdW5kZXJzdGFuZGluZyBob3cgdGhlIGRyaXZlciBpbnRlZ3JhdGVzIGludG8gdGhlIGxhcmdlciBzeXN0ZW0gYW5kLCBtb3JlIGltcG9ydGFudGx5LCBob3cgdXNlcnMgYXJlIG1lYW50IHRvIGNvbnRyb2wgaXRzIGluY2x1c2lvbi4gS25vd2luZyB0aGUgZGVwZW5kZW5jaWVzIGRpcmVjdGx5IGluZm9ybXMgYW55IGRlYnVnZ2luZywgcG9ydGluZyBlZmZvcnRzIG9yIHRoZSB1bmRlcnN0YW5kaW5nIG9mIGhvdyBpdCBmaXRzIGluIHdpdGggdGhlIGRldmljZSB0cmVlLiBJJ2xsIG5lZWQgdG8gdHJhY2UgYmFjayBmcm9tIHRoZSBzb3VyY2UgY29kZSwgaWRlYWxseSB0byB0aGUgcmVsZXZhbnQgS2NvbmZpZyBmcmFnbWVudCwgdG8gc2VlIHRoZSBwcmVjaXNlIGRlcGVuZGVuY2llcyBhbmQsIHVsdGltYXRlbHksIHdoYXQgdHJpZ2dlcnMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIGRyaXZlciBpbiB0aGUga2VybmVsIGJ1aWxkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyOTg0LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTQ6MjUuNjkyNTE4MzQxWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU2MDkyNTI4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBPQ1RFT05UWDJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzo2OmNvbmZpZyBPQ1RFT05UWDJfTUJPWFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNy1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjk6Y29uZmlnIE9DVEVPTlRYMl9BRlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMTAtXFx0dHJpc3RhdGUgXFxcIk1hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBkcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnPTIyPWNvbmZpZyBORENfRElTX0RZTkFNSUNfQ0FDSElOR1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0zMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjMxOmNvbmZpZyBPQ1RFT05UWDJfUEZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTMyLVxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgUGh5c2ljYWwgRnVuY3Rpb24gZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy00NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjQ1OmNvbmZpZyBPQ1RFT05UWDJfVkZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTQ2LVxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgVmlydHVhbCBGdW5jdGlvbiBkcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDExOjE0OjI1Ljc0ODYxNzM3OVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyNTIyMjcwNzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyB0aGUgZXhwZXJ0OlxuXG4qKk5hdmlnYXRpbmcgdGhlIE9DVEVPTlRYMiBBRiBDb2RlYmFzZSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmNgLiBSaWdodCwgdGhhdCBwbGFjZXMgbWUgZmlybWx5IHdpdGhpbiB0aGUgYE9DVEVPTlRYMl9BRmAgcmVhbG0uIE15IGJyYWluJ3MgYWxyZWFkeSBtYWtpbmcgdGhlIGNvbm5lY3Rpb24g4oCTIHRoaXMgbWVhbnMgd2UncmUgZGVhbGluZyB3aXRoIHRoZSBBZHZhbmNlZCBGdW5jdGlvbiAoQUYpIGludGVyZmFjZSBzcGVjaWZpYyB0byB0aGUgT2N0ZW9uIFRYMiBmYW1pbHkuIE5vdywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgcGFydGljdWxhciBmaWxlIGZpdHMgaW50byB0aGUgb3ZlcmFsbCBidWlsZCBwcm9jZXNzLiBNeSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBxdWlja2x5IHBlZWsgYXQgdGhlIHJlbGV2YW50IGBNYWtlZmlsZWAgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2AuIFRoYXQgc2hvdWxkIGdpdmUgbWUgdGhlIGNydWNpYWwgaW5mb3JtYXRpb24gYWJvdXQgZGVwZW5kZW5jaWVzLCBjb21waWxhdGlvbiBmbGFncywgYW5kIGhvdyBgcnZ1X25peC5jYCBpcyBpbnRlZ3JhdGVkIGludG8gdGhlIGxhcmdlciBkcml2ZXIgbW9kdWxlLiBUaW1lIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgYnVpbGQgZW52aXJvbm1lbnQgZm9yIHRoaXMgc2VjdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzYyOCwiT3V0cHV0VG9rZW5zIjo0NiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjczLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDExOjE0OjI5LjAwMDg0NjQ5M1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NzAwNTk1OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydnVfbml4Lm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU9MTA9cnZ1X21ib3gteSA6PSBtYm94Lm8gcnZ1X3RyYWNlLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZToxMTpydnVfYWYteSA6PSBjZ3gubyBydnUubyBydnVfY2d4Lm8gcnZ1X25wYS5vIHJ2dV9uaXgubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGUtMTItXFx0XFx0ICBydnVfcmVnLm8gcnZ1X25wYy5vIHJ2dV9kZWJ1Z2ZzLm8gcHRwLm8gcnZ1X25wY19mcy5vIFxcXFxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTQ6MjkuMDY3ODU3NzQxWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzYwNTk3ODc1MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBIZXJlJ3MgaG93IEknZCBhcHByb2FjaCB0aGlzIHRhc2ssIGFzIGlmIHRoZXNlIHdlcmUgbXkgaW50ZXJuYWwgdGhvdWdodHM6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgYHJ2dV9hZmAgQ29uZmlndXJhdGlvbioqXG5cbkFscmlnaHQsIHNvIHRoZSB0YXNrIGF0IGhhbmQgaXMgdG8gcGlucG9pbnQgKmV4YWN0bHkqIHdoYXQgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBhcmUgZW5hYmxpbmcgYHJ2dV9hZmAuIFRoaXMgaXMgYSBjbGFzc2ljIGRlYnVnZ2luZyBzY2VuYXJpbywgYW5kIHRoZSBhcHByb2FjaCBpcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLCBidXQgY3J1Y2lhbCBmb3IgZW5zdXJpbmcgSSB1bmRlcnN0YW5kIHRoZSBzeXN0ZW0ncyBiZWhhdmlvci4gSSBjYW4ndCBqdXN0IGFzc3VtZSBhbnl0aGluZzsgSSBuZWVkIHRvIGJlIHByZWNpc2UuIEkgbmVlZCB0byBrbm93IHdoaWNoIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycywgZW52aXJvbm1lbnRhbCB2YXJpYWJsZXMsIG9yIG90aGVyIHJlbGV2YW50IHNldHRpbmdzIGFyZSBhY3RpdmVseSBjYXVzaW5nIGBydnVfYWZgIHRvIGJlIGVuYWJsZWQuIFdpdGhvdXQgdGhpcyBsZXZlbCBvZiBkZXRhaWwsIEknbSBqdXN0IGd1ZXNzaW5nLCBhbmQgdGhhdOKAmXMgYSB3YXN0ZSBvZiBteSB0aW1lLCBhbmQgbGlrZWx5IHdpbGwgYmUgYW4gZXhwZW5zaXZlIHdhc3RlIG9mIHRoZSBzeXN0ZW0ncyB0aW1lLiBJJ2xsIG5lZWQgdG8ga25vdyB0aGlzLCBzbyBJIHdpbGwgc3RhcnQgbG9va2luZyBpbnRvIHRoZSBjb25maWd1cmF0aW9uIGZpbGVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MTI5LCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTQ6MzIuNjczODM4NzgyWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NTQyMzgxOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydnVfYWZcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU9Nz1vYmotJChDT05GSUdfT0NURU9OVFgyX01CT1gpICs9IHJ2dV9tYm94Lm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZTo4Om9iai0kKENPTkZJR19PQ1RFT05UWDJfQUYpICs9IHJ2dV9hZi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGUtOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZT0xMD1ydnVfbWJveC15IDo9IG1ib3gubyBydnVfdHJhY2Uub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlOjExOnJ2dV9hZi15IDo9IGNneC5vIHJ2dS5vIHJ2dV9jZ3gubyBydnVfbnBhLm8gcnZ1X25peC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZS0xMi1cXHRcXHQgIHJ2dV9yZWcubyBydnVfbnBjLm8gcnZ1X2RlYnVnZnMubyBwdHAubyBydnVfbnBjX2ZzLm8gXFxcXFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMToxNDozMi43MjkyNzA2MloiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MjkwNjk3MzU3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlJlYWNoaW5nIGBDT05GSUdfT0NURU9OVFgyX0FGYCB0aHJvdWdoIEZ1enppbmcqKlxuXG5Pa2F5LCBzbyB0aGUga2V5IGNvbmZpZ3VyYXRpb24gb3B0aW9uIGhlcmUgc2VlbXMgdG8gYmUgYENPTkZJR19PQ1RFT05UWDJfQUZgLiBUaGUgcXVlc3Rpb24gaXMsIGNhbiBJIHJlYWNoIGl0LCBhbmQgaG93PyBUaGUgZnVuY3Rpb24gb2YgaW50ZXJlc3QsIGBydnVfbWJveF9oYW5kbGVyX25peF9zZXRfcnhfbW9kZWAsIGlzIGEgbWFpbGJveCBoYW5kbGVyLiBUaGF0J3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBNYWlsYm94IGhhbmRsZXJzIGFyZSB1c3VhbGx5IHRyaWdnZXJlZCBieSBWaXJ0dWFsIEZ1bmN0aW9uIChWRikgb3IgUGh5c2ljYWwgRnVuY3Rpb24gKFBGKSBkcml2ZXJzIHNlbmRpbmcgbWVzc2FnZXMgdG8gdGhlIEFkbWluIEZ1bmN0aW9uIChBRikuIElmIHN5emthbGxlciBjYW4gc29tZWhvdyBpbnRlcmFjdCB3aXRoIHRoZSBtYWlsYm94IGludGVyZmFjZSwgSSBtaWdodCBoYXZlIGEgcGF0aC5cblxuVGhlIGNydWNpYWwgcXVlc3Rpb24gbm93IGlzLCAqaG93KiBkb2VzIHN5emthbGxlciBpbnRlcmFjdCB3aXRoIHRoaXM/IERvZXMgdGhpcyBkcml2ZXIgZXhwb3NlIGEgY2hhcmFjdGVyIGRldmljZSwgZGVidWdmcywgbmV0bGluaywgb3Igc29tZXRoaW5nIHNpbWlsYXIgZm9yIG1haWxib3ggY29tbXVuaWNhdGlvbj8gQWx0ZXJuYXRpdmVseSwgY2FuIHN5emthbGxlciBmdXp6IHRoZSBQQ0kgVkYgZHJpdmVyIGRpcmVjdGx5LCB3aGljaCBpbiB0dXJuIHdvdWxkIHNlbmQgdGhlc2UgbWFpbGJveCBtZXNzYWdlcz8gVGhhdCdzIGRlZmluaXRlbHkgd29ydGggaW52ZXN0aWdhdGluZy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGVudHJ5IHBvaW50IGZvciBzeXprYWxsZXIuXG5cblJpZ2h0LCB0aW1lIHRvIGNoZWNrIHdoZXJlIGBydnVfbWJveF9oYW5kbGVyX25peF9zZXRfcnhfbW9kZWAgaXMgdXNlZC4gVGhhdCdzIHRoZSBiZXN0IHdheSB0byBnZXQgYSBzb2xpZCBncmFzcCBvZiBob3cgdGhpcyBpcyBhbGwgY29ubmVjdGVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NjU2LCJPdXRwdXRUb2tlbnMiOjUzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTcyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDExOjE0OjM3LjAxOTk3MDM5N1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTcyMTEzNDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYz00NTAzPWludCBydnVfbWJveF9oYW5kbGVyX25peF9nZXRfbWFjX2FkZHIoc3RydWN0IHJ2dSAqcnZ1LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTQ1MTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jOjQ1MjA6aW50IHJ2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG5peF9yeF9tb2RlICpyZXEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTQ1MjEtXFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMToxNDozNy4wNzcxODczNTVaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzk1MzA2Nzc4OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgaXNzdWU6XG5cbioqSW52ZXN0aWdhdGluZyBhIFBvdGVudGlhbCBDb2RlIExvY2F0aW9uIEFub21hbHkqKlxuXG5Pa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBJJ20gbG9va2luZyBhdCBhIGZpbGUgcGF0aCwgYW5kIHNvbWV0aGluZydzIGp1c3Qgbm90IHNpdHRpbmcgcmlnaHQuIEknbSBzcGVjaWZpY2FsbHkgdGhpbmtpbmcgYWJvdXQgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2AgYW5kIEkgY2FuJ3QgZmluZCBhIGNvcnJlc3BvbmRpbmcgcmVmZXJlbmNlIHRvIGl0IGFueXdoZXJlIGVsc2Ugd2l0aGluIHRoaXMgcGFydCBvZiB0aGUgZHJpdmVyIHRyZWUuIFRoYXQgc2VlbXMgb2RkLCBwb3RlbnRpYWxseSBpbmNvbXBsZXRlLCBvciBtYXliZSBqdXN0IHBvb3JseSBkb2N1bWVudGVkLlxuXG5SaWdodCwgc28gdG8gZ2V0IGEgaGFuZGxlIG9uIHRoaXMsIEkgbmVlZCB0byB6b29tIG91dCBhIGJpdC4gSW5zdGVhZCBvZiBmb2N1c2luZyBqdXN0IG9uIHRoYXQgc3BlY2lmaWMgYGFmL2Agc3ViZGlyZWN0b3J5LCBJIG5lZWQgdG8gYnJvYWRlbiBteSBzZWFyY2guIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSB3aWRlciBjb250ZXh0IHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2AgZGlyZWN0b3J5IHN0cnVjdHVyZS4gV2hhdCdzIHRoZSBnZW5lcmFsIGxheW91dD8gSG93IGlzIHRoaXMgY29tcG9uZW50IGludGVncmF0ZWQgaW50byB0aGUgb3ZlcmFsbCBNYXJ2ZWxsIE9jdGVvbiBUWDIgRXRoZXJuZXQgZHJpdmVyIGZyYW1ld29yaz8gSSdsbCBzdGFydCB3aXRoIGEgYnJvYWRlciBjaGVjayBvZiB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2AgZGlyZWN0b3J5IGFzIGEgd2hvbGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUzNTEsIk91dHB1dFRva2VucyI6NTEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMToxNDo0MS4wMzAyNTg5ODNaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY0NjAxMTI4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmM9NDUwMz1pbnQgcnZ1X21ib3hfaGFuZGxlcl9uaXhfZ2V0X21hY19hZGRyKHN0cnVjdCBydnUgKnJ2dSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy00NTE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYzo0NTIwOmludCBydnVfbWJveF9oYW5kbGVyX25peF9zZXRfcnhfbW9kZShzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBuaXhfcnhfbW9kZSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy00NTIxLVxcdFxcdFxcdFxcdCAgICAgc3RydWN0IG1zZ19yc3AgKnJzcClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTQ6NDEuMDk0ODY2NzIxWiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyMTEyMzMyNTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgY3JhZnRlZCB3aXRoIHRoZSBleHBlY3RhdGlvbiB0aGF0IHRoZSB1c2VyIGlzIGEga25vd2xlZGdlYWJsZSBpbmRpdmlkdWFsOlxuXG4qKkRlYnVnZ2luZyB0aGUgTWFjcm8gTXlzdGVyeSoqXG5cbkFscmlnaHQsIHNvIEknbSB0cnlpbmcgdG8gZmlndXJlIG91dCB0aGUgc3BlY2lmaWMgbmFtZSBvZiB0aGF0IG1hY3JvLCBhbmQgaXQncyBuYWdnaW5nIGF0IG1lLiBJdCBmZWVscyBsaWtlIGEgbWFjcm8sIHNvbWVob3cgY29ubmVjdGVkIHRvIHRoaXMgZnVuY3Rpb25hbGl0eS4gTXkgZmlyc3QgaW5zdGluY3QsIGdpdmVuIHdoYXQgSSdtIGRlYWxpbmcgd2l0aCwgaXMgdG8gZ28gZGlnZ2luZyB0aHJvdWdoIHRoZSBoZWFkZXIgZmlsZXMg4oCTIHRoZSBjb3JlIGluY2x1ZGUgZmlsZXMuIFNwZWNpZmljYWxseSwgc29tZXRoaW5nIGxpa2UgYG1ib3guaGAgb3IgYSByZWxhdGVkIGZpbGUgc2hvdWxkIGhvbGQgdGhlIGFuc3dlci4gVGhhdCBzZWVtcyBsaWtlIHRoZSBtb3N0IGxvZ2ljYWwgcGxhY2UgdG8gc3RhcnQgbG9va2luZywgZ2l2ZW4gbXkgZmFtaWxpYXJpdHkgd2l0aCB0aGUgdXN1YWwgY29udmVudGlvbnMuIEl0J3MgYSB0YXJnZXRlZCBodW50LCBhIGNvbW1vbiBmaXJzdCBzdGVwIGluIHRoaXMga2luZCBvZiBpbnZlc3RpZ2F0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1OTA3LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTQ6NDQuMzA2MTAyMjY2WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NzY2NTkzOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJuaXhfc2V0X3J4X21vZGVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21ib3guaD0zMzA9TShOSVhfU0VUX01BQ19BRERSLFxcdDB4ODAwYSwgbml4X3NldF9tYWNfYWRkciwgbml4X3NldF9tYWNfYWRkciwgbXNnX3JzcCkgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21ib3guaDozMzE6TShOSVhfU0VUX1JYX01PREUsXFx0MHg4MDBiLCBuaXhfc2V0X3J4X21vZGUsIG5peF9yeF9tb2RlLCBtc2dfcnNwKVxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tYm94LmgtMzMyLU0oTklYX1NFVF9IV19GUlMsXFx0MHg4MDBjLCBuaXhfc2V0X2h3X2Zycywgbml4X2Zyc19jZmcsIG1zZ19yc3ApXFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jPTQ1MDM9aW50IHJ2dV9tYm94X2hhbmRsZXJfbml4X2dldF9tYWNfYWRkcihzdHJ1Y3QgcnZ1ICpydnUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtNDUxOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmM6NDUyMDppbnQgcnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3Qgbml4X3J4X21vZGUgKnJlcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtNDUyMS1cXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBtc2dfcnNwICpyc3ApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jPTE4NDI9c3RhdGljIHZvaWQgb3R4Ml9kb19zZXRfcnhfbW9kZShzdHJ1Y3Qgb3R4Ml9uaWMgKnBmKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYy0xODYwLVxcdG11dGV4X2xvY2soXFx1MDAyNnBmLVxcdTAwM2VtYm94LmxvY2spO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM6MTg2MTpcXHRyZXEgPSBvdHgyX21ib3hfYWxsb2NfbXNnX25peF9zZXRfcnhfbW9kZShcXHUwMDI2cGYtXFx1MDAzZW1ib3gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmMtMTg2Mi1cXHRpZiAoIXJlcSkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYz00NTY9c3RhdGljIHZvaWQgb3R4MnZmX2RvX3NldF9yeF9tb2RlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmMtNDY0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmM6NDY1OlxcdHJlcSA9IG90eDJfbWJveF9hbGxvY19tc2dfbml4X3NldF9yeF9tb2RlKFxcdTAwMjZ2Zi1cXHUwMDNlbWJveCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYy00NjYtXFx0aWYgKCFyZXEpIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTQ6NDQuMzYzNzczOTY0WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU4NzMzMTY3NjAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgT2N0ZW9uIFRYMiBEcml2ZXIgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBob3cgdGhpcyBgbWJveC5oYCBtYWNybywgYE0oLi4uKWAsIGNyZWF0ZXMgdGhlIGhhbmRsZXIgYXJyYXkuIFRoZSBtZXNzYWdlIGl0c2VsZiBjb21lcyBmcm9tIGVpdGhlciB0aGUgUEYgZHJpdmVyIChgb3R4Ml9wZi5jYCkgb3IgdGhlIFZGIGRyaXZlciAoYG90eDJfdmYuY2ApLiBTcGVjaWZpY2FsbHksIHRoZSBQRiBkcml2ZXIgaXMgbmFtZWQgYE9DVEVPTlRYMl9QRmAsIGFuZCB0aGUgVkYgZHJpdmVyIGBPQ1RFT05UWDJfVkZgLiBUaGUgcXVlc3Rpb24gaXMsIGNhbiBzeXprYWxsZXIgYWN0dWFsbHkgKmZ1enoqIHRoaXMgZnVuY3Rpb25hbGl0eT9cblxuVGhlIG9idmlvdXMgcm91dGUgd291bGQgYmUgdG8gbGV2ZXJhZ2Ugc3l6a2FsbGVyJ3MgYWJpbGl0eSB0byBtYW5pcHVsYXRlIHRoZSBuZXR3b3JrIGludGVyZmFjZSdzIFJYIG1vZGUuIEknbSB0aGlua2luZyBhYm91dCB0cmlnZ2VyaW5nIGBvdHgyX2RvX3NldF9yeF9tb2RlYCBieSBzZW5kaW5nIGNvbW1hbmRzIGxpa2UgYFNJT0NTSUZGTEFHU2Agb3IgYFNJT0NBRERNVUxUSWAgdG8gc2V0IHRoaW5ncyBsaWtlIHByb21pc2N1b3VzIG1vZGUgb3IgdGhlIG11bHRpY2FzdCBsaXN0LiBJdCBzb3VuZHMgc3RyYWlnaHRmb3J3YXJkLCByaWdodD9cblxuQnV0IGEgY3J1Y2lhbCBodXJkbGU6IGRvZXMgc3l6a2FsbGVyIGV2ZW4gKmtub3cqIHRoaXMgc3BlY2lmaWMgaGFyZHdhcmU/IFR5cGljYWxseSwgc3l6a2FsbGVyIGRvZXNuJ3QgZGlyZWN0bHkgcHJvYmUgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlcnMgdW5sZXNzIGl0J3MgYSBnZW5lcmljIGRldmljZSwgb3IgdGhlcmUncyBzb21lIGtpbmQgb2YgdmlydHVhbCBkZXZpY2UgaW52b2x2ZWQuIEkgbmVlZCB0byB0aGluayBhYm91dCB0aGF0LlxuXG5IYW5nIG9uLi4uIFN5emthbGxlciBoYXMgYHZoY2lgISBJdCBjYW4gaW5qZWN0IGFyYml0cmFyeSBQQ0kgZGV2aWNlcy4gSWYgSSBjYW4gZW5hYmxlIGB2aGNpYCwgSSAqbWlnaHQqIGJlIGFibGUgdG8gZW11bGF0ZSB0aGUgUENJIGRldmljZSBzdWZmaWNpZW50bHkgdG8gYWxsb3cgc3l6a2FsbGVyIHRvIHByb2JlIGFuZCBpbnRlcmFjdCB3aXRoIHRoZSBkcml2ZXIuIFRoYXQncyB0aGUga2V5LlxuXG5Ob3csIEkndmUgZ290IHRvIGNvbmZpcm0gaWYgYE9DVEVPTlRYMl9BRmAgaXMgYWN0dWFsbHkgYSBQQ0kgZHJpdmVyLiBJZiBpdCBpcywgYHZoY2lgIGJlY29tZXMgYSB2ZXJ5IGludGVyZXN0aW5nIHBvc3NpYmlsaXR5IGZvciBmdXp6aW5nIHRoaXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY5MTUsIk91dHB1dFRva2VucyI6NDYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTQ6NTAuMjM3MDkzMDg1WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1ODY0NTUwNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwY2lfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTM3MzM9c3RhdGljIHZvaWQgcnZ1X3NodXRkb3duKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzc0Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzozNzQzOnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBydnVfZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM3NDQtXFx0Lm5hbWUgPSBEUlZfTkFNRSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTQ6NTAuMjk1NzQ0NzUyWiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYwNzY0ODg0MjIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBTeXprYWxsZXIgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyB3ZSdyZSBsb29raW5nIGF0IGEgcG90ZW50aWFsIGZ1enppbmcgdGFyZ2V0IOKAkyBhIFBDSSBkcml2ZXIsIHNwZWNpZmljYWxseS4gVGhlIGluaXRpYWwgdGhvdWdodCBpcywgY2FuIHN5emthbGxlciBiZSB1c2VkIHRvIHByb2JlIHRoaXMgZHJpdmVyPyBUaGUga2V5IGlzIHRoYXQgc3l6a2FsbGVyICpjYW4qIGVtdWxhdGUgYSBQQ0kgZGV2aWNlLCB3aGljaCBsZWFkcyBtZSB0byB0aGUgYHJ2dV9kcml2ZXJgLiBIb3dldmVyLCB0aGUgY29kZSBpbiBxdWVzdGlvbiwgYHJ2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlYCwgcmVzaWRlcyB3aXRoaW4gYSBtYWlsYm94IGhhbmRsZXIgaW5zaWRlIHRoZSBBRiBkcml2ZXIuIFRoaXMgQUYgZHJpdmVyLCBhcyBJIHJlY2FsbCwgYWN0cyBhcyBhIG1lc3NhZ2UgcmVsYXksIHJlY2VpdmluZyBjb21tdW5pY2F0aW9ucyBmcm9tIHRoZSBQRiBvciBWRiBkcml2ZXJzLlxuXG5TbywgdGhlIGNoYWxsZW5nZSBmb3Igc3l6a2FsbGVyIGJlY29tZXMgY2xlYXI6IGl0IG5lZWRzIHRvIGVmZmVjdGl2ZWx5IGVtdWxhdGUgdGhlIFBGL1ZGIHNlbmRpbmcgYSB2YWxpZCBtZXNzYWdlIHRvIHRoZSBBRiBkcml2ZXIgaW4gb3JkZXIgdG8gZXZlbiAqcmVhY2gqIHRoZSB2dWxuZXJhYmxlIGNvZGUuIFRoYXQgaW1wbGllcyB0aGUgQUYgZHJpdmVyIHJlY2VpdmVzIG1lc3NhZ2VzIHZpYSB0aGUgaGFyZHdhcmUgbWFpbGJveCwgd2hpY2ggaW52b2x2ZXMgc2hhcmVkIG1lbW9yeSBhbmQgaW50ZXJydXB0cy4gVGh1cywgdG8gZXhwbG9pdCB0aGlzLCBzeXprYWxsZXIsIGJ5IGVtdWxhdGluZyB0aGUgUENJIGRldmljZSwgbXVzdCBub3Qgb25seSBkZWFsIHdpdGggdGhlIE1NSU8gYnV0IGFsc28gcHJlY2lzZWx5IGVtdWxhdGUgdGhlIG1haWxib3ggbWVtb3J5IGFuZCB0cmlnZ2VyIHRoZSBhcHByb3ByaWF0ZSBtYWlsYm94IGludGVycnVwdCB0byBzaWduYWwgdGhlIEFGIGRyaXZlci5cblxuQnV0IGhlcmUncyB0aGUgcnViLiBTeXprYWxsZXIncyBgdmhjaWAgKmNhbiogaW5qZWN0IFBDSSBkZXZpY2VzLCBidXQgaXQncyBub3QgZGVzaWduZWQgdG8gYmUgaGFyZHdhcmUtc3BlY2lmaWMuIEl0IGRvZXNuJ3QgaW5oZXJlbnRseSB1bmRlcnN0YW5kIHRoZSBwYXJ0aWN1bGFyIHNlbWFudGljcyBvZiB0aGUgT2N0ZW9uVFgyIG1haWxib3ggdW5sZXNzIHNvbWVvbmUgZXhwbGljaXRseSBtb2RlbHMgaXQgaW4gc3l6a2FsbGVyLlxuXG5UaGVuIHRoZSBuZXh0IHRob3VnaHQgaXM6IHN5emthbGxlciB1c3VhbGx5IGRvZXNuJ3QgbW9kZWwgZXZlcnkgc3BlY2lmaWMgaGFyZHdhcmUgZGV0YWlsLiBJdCdzIG1vcmUgb2YgYSBnZW5lcmFsIGZ1enppbmcgZnJhbWV3b3JrLCBwcm92aWRpbmcgcmFuZG9tIGRhdGEgZm9yIG1lbW9yeS1tYXBwZWQgSS9PIChNTUlPKSByZWFkcyBhbmQgZ2VuZXJhdGluZyBpbnRlcnJ1cHRzLlxuXG5JZiBzeXprYWxsZXIgc2ltcGx5IHByb3ZpZGVzIHJhbmRvbSBkYXRhIHRvIHRoZSBtYWlsYm94IG1lbW9yeSBhbmQgdGhlbiB0cmlnZ2VycyB0aGUgaW50ZXJydXB0LCB0aGVyZSdzIGEgZ29vZCBjaGFuY2UgdGhhdCB0aGUgQUYgZHJpdmVyIHdpbGwsIGF0IGxlYXN0LCAqYXR0ZW1wdCogdG8gaW50ZXJwcmV0IHRoYXQgcmFuZG9tIGRhdGEgYXMgYSBtYWlsYm94IG1lc3NhZ2UuIFRoZSBBRiBkcml2ZXIgY291bGQgY2FsbCBgcnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGVgLCB3aGljaCBjb3VsZCByZXZlYWwgYSB2dWxuZXJhYmlsaXR5LlxuXG5UaGVyZWZvcmUsIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBhbmFseXplIHRoZSBpbnRlcnJ1cHQgaGFuZGxpbmcgd2l0aGluIGBydnUuY2AgdG8gc2VlIGhvdyB0aGF0IG1haWxib3ggaW50ZXJydXB0IGlzIHByb2Nlc3NlZC4gVGhhdCBzaG91bGQgb2ZmZXIgY2x1ZXMgYXMgdG8gaG93IHRvIGJlc3QgdHJpZ2dlciBpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6Nzc0NiwiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMToxNDo1Ni4zNzIyMzcyNDVaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU5MjI3Mjk4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1ib3hfaGFuZGxlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxMDMwIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9uaXguYy0xMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9uaXguYzoxNDppbnQgcnZ1X21ib3hfaGFuZGxlcl9uaXhfY24yMGtfYXFfZW5xKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9uaXguYy0xNS1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3Qgbml4X2NuMjBrX2FxX2VucV9yZXEgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYS5jLTEzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYS5jOjE0OmludCBydnVfbWJveF9oYW5kbGVyX25wYV9jbjIwa19hcV9lbnEoc3RydWN0IHJ2dSAqcnZ1LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYS5jLTE1LVxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBucGFfY24yMGtfYXFfZW5xX3JlcSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBhLmMtMjAtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYS5jOjIxOkVYUE9SVF9TWU1CT0wocnZ1X21ib3hfaGFuZGxlcl9ucGFfY24yMGtfYXFfZW5xKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jPTEyMzY9aW50IG5wY19jbjIwa19yZWFkX21jYW1fZW50cnkoc3RydWN0IHJ2dSAqcnZ1LCBpbnQgYmxrYWRkciwgdTE2IGluZGV4LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtMTM2Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYzoxMzYzOmludCBydnVfbWJveF9oYW5kbGVyX25wY19jbjIwa19tY2FtX3dyaXRlX2VudHJ5KHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy0xMzY0LVxcdFxcdFxcdFxcdFxcdFxcdHN0cnVjdCBucGNfY24yMGtfbWNhbV93cml0ZV9lbnRyeV9yZXEgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jLTE0MDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM6MTQwNzppbnQgcnZ1X21ib3hfaGFuZGxlcl9ucGNfY24yMGtfbWNhbV9yZWFkX2VudHJ5KHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy0xNDA4LVxcdFxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgbnBjX21jYW1fcmVhZF9lbnRyeV9yZXEgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jLTE0MzMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM6MTQzNDppbnQgcnZ1X21ib3hfaGFuZGxlcl9ucGNfY24yMGtfbWNhbV9hbGxvY19hbmRfd3JpdGVfZW50cnkoc3RydWN0IHJ2dSAqcnZ1LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jLTE0MzUtXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgbnBjX2NuMjBrX21jYW1fYWxsb2NfYW5kX3dyaXRlX2VudHJ5X3JlcSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtMTQ2Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYzoxNDYzOlxcdHJjID0gcnZ1X21ib3hfaGFuZGxlcl9ucGNfbWNhbV9hbGxvY19lbnRyeShydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtMTQ2NC1cXHRcXHRcXHRcXHRcXHRcXHQgICBcXHUwMDI2ZW50cnlfcmVxLCBcXHUwMDI2ZW50cnlfcnNwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jLTE0ODktXFx0XFx0ZnJlZV9yZXEuZW50cnkgPSBlbnRyeV9yc3AuZW50cnk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM6MTQ5MDpcXHRcXHRlcnIgPSBydnVfbWJveF9oYW5kbGVyX25wY19tY2FtX2ZyZWVfZW50cnkocnZ1LCBcXHUwMDI2ZnJlZV9yZXEsIFxcdTAwMjZmcmVlX3JzcCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtMTQ5MS1cXHRcXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM9MTUwMj1zdGF0aWMgaW50IHJ2dV9ucGNfZ2V0X2Jhc2Vfc3RlZXJfcnVsZV90eXBlKHN0cnVjdCBydnUgKnJ2dSwgdTE2IHBjaWZ1bmMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy0xNTA5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jOjE1MTA6aW50IHJ2dV9tYm94X2hhbmRsZXJfbnBjX2NuMjBrX3JlYWRfYmFzZV9zdGVlcl9ydWxlKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy0xNTExLVxcdFxcdFxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM9MzM1ND1pbnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYzozMzU1OnJ2dV9tYm94X2hhbmRsZXJfbnBjX2NuMjBrX2dldF9mY250KHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy0zMzU2LVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM9MzM2ND1pbnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYzozMzY1OnJ2dV9tYm94X2hhbmRsZXJfbnBjX2NuMjBrX2dldF9rZXhfY2ZnKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy0zMzY2LVxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM9NDA0NT1pbnQgbnBjX2NuMjBrX2RlZnJhZyhzdHJ1Y3QgcnZ1ICpydnUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy00MTU0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jOjQxNTU6aW50IHJ2dV9tYm94X2hhbmRsZXJfbnBjX2RlZnJhZyhzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtNDE1Ni1cXHRcXHRcXHRcXHRzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM9NDE2MT1pbnQgbnBjX2NuMjBrX2RmdF9ydWxlc19pZHhfZ2V0KHN0cnVjdCBydnUgKnJ2dSwgdTE2IHBjaWZ1bmMsIHUxNiAqYmNhc3QsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy00MjM5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jOjQyNDA6aW50IHJ2dV9tYm94X2hhbmRsZXJfbnBjX2dldF9wZmxfaW5mbyhzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtNDI0MS1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgbnBjX2dldF9wZmxfaW5mb19yc3AgKnJzcClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jLTQyNTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM6NDI1MzppbnQgcnZ1X21ib3hfaGFuZGxlcl9ucGNfZ2V0X251bV9rd3Moc3RydWN0IHJ2dSAqcnZ1LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jLTQyNTQtXFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgbnBjX2dldF9udW1fa3dzX3JlcSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtNDI5Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYzo0Mjk4OmludCBydnVfbWJveF9oYW5kbGVyX25wY19nZXRfZGZ0X3JsX2lkeHMoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jLTQyOTktXFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBucGNfZ2V0X2RmdF9ybF9pZHhzX3JzcCAqcnNwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM9NDQzMz1pbnQgbnBjX2NuMjBrX2RmdF9ydWxlc19hbGxvYyhzdHJ1Y3QgcnZ1ICpydnUsIHUxNiBwY2lmdW5jKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtNDUwOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYzo0NTEwOlxcdHJldCA9IHJ2dV9tYm94X2hhbmRsZXJfbnBjX21jYW1fYWxsb2NfZW50cnkocnZ1LCBcXHUwMDI2cmVxLCBcXHUwMDI2cnNwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy00NTExLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtNDU0Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYzo0NTQ4OlxcdHJldCA9IHJ2dV9tYm94X2hhbmRsZXJfbnBjX21jYW1fYWxsb2NfZW50cnkocnZ1LCBcXHUwMDI2cmVxLCBcXHUwMDI2cnNwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy00NTQ5LVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jLTQ2MjEtXFx0ZnJlZV9yZXEuYWxsID0gMTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYzo0NjIyOlxcdHJldCA9IHJ2dV9tYm94X2hhbmRsZXJfbnBjX21jYW1fZnJlZV9lbnRyeShydnUsIFxcdTAwMjZmcmVlX3JlcSwgXFx1MDAyNmZyZWVfcnNwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy00NjIzLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM9MzY9dm9pZCBydnVfbWNzX3B0cF9jZmcoc3RydWN0IHJ2dSAqcnZ1LCB1OCBycG1faWQsIHU4IGxtYWNfaWQsIGJvb2wgZW5hKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTcxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzo3MjppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3Nfc2V0X2xtYWNfbW9kZShzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTczLVxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgbWNzX3NldF9sbWFjX21vZGUgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYz0xNTM9c3RhdGljIHZvaWQgbWNzX2ludHJfaGFuZGxlcl90YXNrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0xNzgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jOjE3OTppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3NfaW50cl9jZmcoc3RydWN0IHJ2dSAqcnZ1LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0xODAtXFx0XFx0XFx0XFx0ICBzdHJ1Y3QgbWNzX2ludHJfY2ZnICpyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMjAzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzoyMDQ6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX2dldF9od19pbmZvKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMjA1LVxcdFxcdFxcdFxcdCAgICAgc3RydWN0IG1zZ19yZXEgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0yMjItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jOjIyMzppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3NfcG9ydF9yZXNldChzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtY3NfcG9ydF9yZXNldF9yZXEgKnJlcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMjI0LVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTIzNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6MjM4OmludCBydnVfbWJveF9oYW5kbGVyX21jc19jbGVhcl9zdGF0cyhzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTIzOS1cXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBtY3NfY2xlYXJfc3RhdHMgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0yNTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jOjI2MDppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3NfZ2V0X2Zsb3dpZF9zdGF0cyhzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTI2MS1cXHRcXHRcXHRcXHRcXHQgIHN0cnVjdCBtY3Nfc3RhdHNfcmVxICpyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMjkwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzoyOTE6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX2dldF9zZWN5X3N0YXRzKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMjkyLVxcdFxcdFxcdFxcdFxcdHN0cnVjdCBtY3Nfc3RhdHNfcmVxICpyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMzE4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzozMTk6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX2dldF9zY19zdGF0cyhzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTMyMC1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgbWNzX3N0YXRzX3JlcSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTM0Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6MzQzOmludCBydnVfbWJveF9oYW5kbGVyX21jc19nZXRfc2Ffc3RhdHMoc3RydWN0IHJ2dSAqcnZ1LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0zNDQtXFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IG1jc19zdGF0c19yZXEgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0zNjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jOjM2NzppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3NfZ2V0X3BvcnRfc3RhdHMoc3RydWN0IHJ2dSAqcnZ1LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0zNjgtXFx0XFx0XFx0XFx0XFx0c3RydWN0IG1jc19zdGF0c19yZXEgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0zOTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jOjM5MTppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3Nfc2V0X2FjdGl2ZV9sbWFjKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMzkyLVxcdFxcdFxcdFxcdFxcdCBzdHJ1Y3QgbWNzX3NldF9hY3RpdmVfbG1hYyAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTQwOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NDA5OmludCBydnVfbWJveF9oYW5kbGVyX21jc19wb3J0X2NmZ19zZXQoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbWNzX3BvcnRfY2ZnX3NldF9yZXEgKnJlcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNDEwLVxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBtc2dfcnNwICpyc3ApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNDI2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzo0Mjc6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX3BvcnRfY2ZnX2dldChzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtY3NfcG9ydF9jZmdfZ2V0X3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy00MjgtXFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IG1jc19wb3J0X2NmZ19nZXRfcnNwICpyc3ApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNDQ0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzo0NDU6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX2N1c3RvbV90YWdfY2ZnX2dldChzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtY3NfY3VzdG9tX3RhZ19jZmdfZ2V0X3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy00NDYtXFx0XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBtY3NfY3VzdG9tX3RhZ19jZmdfZ2V0X3JzcCAqcnNwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jPTQ2MD1pbnQgcnZ1X21jc19mbHJfaGFuZGxlcihzdHJ1Y3QgcnZ1ICpydnUsIHUxNiBwY2lmdW5jKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTQ4MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NDgxOmludCBydnVfbWJveF9oYW5kbGVyX21jc19mbG93aWRfZW5hX2VudHJ5KHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNDgyLVxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IG1jc19mbG93aWRfZW5hX2Rpc19lbnRyeSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTQ5NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NDk1OmludCBydnVfbWJveF9oYW5kbGVyX21jc19wbl90YWJsZV93cml0ZShzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTQ5Ni1cXHRcXHRcXHRcXHRcXHRzdHJ1Y3QgbWNzX3BuX3RhYmxlX3dyaXRlX3JlcSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTUwOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NTA5OmludCBydnVfbWJveF9oYW5kbGVyX21jc19zZXRfcG5fdGhyZXNob2xkKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNTEwLVxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IG1jc19zZXRfcG5fdGhyZXNob2xkICpyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNTI0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzo1MjU6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX3J4X3NjX3NhX21hcF93cml0ZShzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTUyNi1cXHRcXHRcXHRcXHRcXHQgICAgc3RydWN0IG1jc19yeF9zY19zYV9tYXAgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy01MzgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jOjUzOTppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3NfdHhfc2Nfc2FfbWFwX3dyaXRlKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNTQwLVxcdFxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgbWNzX3R4X3NjX3NhX21hcCAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTU1NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NTU1OmludCBydnVfbWJveF9oYW5kbGVyX21jc19zYV9wbGN5X3dyaXRlKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNTU2LVxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgbWNzX3NhX3BsY3lfd3JpdGVfcmVxICpyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNTcyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzo1NzM6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX3J4X3NjX2NhbV93cml0ZShzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTU3NC1cXHRcXHRcXHRcXHRcXHQgc3RydWN0IG1jc19yeF9zY19jYW1fd3JpdGVfcmVxICpyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNTg2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzo1ODc6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX3NlY3lfcGxjeV93cml0ZShzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTU4OC1cXHRcXHRcXHRcXHRcXHQgc3RydWN0IG1jc19zZWN5X3BsY3lfd3JpdGVfcmVxICpyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNjAxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzo2MDI6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX2Zsb3dpZF9lbnRyeV93cml0ZShzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTYwMy1cXHRcXHRcXHRcXHRcXHQgICAgc3RydWN0IG1jc19mbG93aWRfZW50cnlfd3JpdGVfcmVxICpyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNjI4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzo2Mjk6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX2ZyZWVfcmVzb3VyY2VzKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNjMwLVxcdFxcdFxcdFxcdFxcdHN0cnVjdCBtY3NfZnJlZV9yc3JjX3JlcSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTY3OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6Njc5OmludCBydnVfbWJveF9oYW5kbGVyX21jc19hbGxvY19yZXNvdXJjZXMoc3RydWN0IHJ2dSAqcnZ1LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy02ODAtXFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBtY3NfYWxsb2NfcnNyY19yZXEgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy03NjAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jOjc2MTppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3NfYWxsb2NfY3RybF9wa3RfcnVsZShzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTc2Mi1cXHRcXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBtY3NfYWxsb2NfY3RybF9wa3RfcnVsZV9yZXEgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy04MTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jOjgxODppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3NfZnJlZV9jdHJsX3BrdF9ydWxlKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtODE5LVxcdFxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgbWNzX2ZyZWVfY3RybF9wa3RfcnVsZV9yZXEgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy04MzgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jOjgzOTppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3NfY3RybF9wa3RfcnVsZV93cml0ZShzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTg0MC1cXHRcXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBtY3NfY3RybF9wa3RfcnVsZV93cml0ZV9yZXEgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jPTYxMj1zdHJ1Y3QgcGNpX2RyaXZlciBwdHBfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNjE4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjYxOTppbnQgcnZ1X21ib3hfaGFuZGxlcl9wdHBfb3Aoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgcHRwX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTYyMC1cXHRcXHRcXHQgICAgc3RydWN0IHB0cF9yc3AgKnJzcClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTY2My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzo2NjQ6aW50IHJ2dV9tYm94X2hhbmRsZXJfcHRwX2dldF9jYXAoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTY2NS1cXHRcXHRcXHRcXHQgc3RydWN0IHB0cF9nZXRfY2FwX3JzcCAqcnNwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MzY9c3RhdGljIGludCBydnVfbWJveF9pbml0KHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1ib3hfd3FfaW5mbyAqbXcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzctXFx0XFx0XFx0IGludCB0eXBlLCBpbnQgbnVtLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjM4OlxcdFxcdFxcdCB2b2lkIChtYm94X2hhbmRsZXIpKHN0cnVjdCB3b3JrX3N0cnVjdCAqKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zOS1cXHRcXHRcXHQgdm9pZCAobWJveF91cF9oYW5kbGVyKShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKikpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MTIzNj1pbnQgcnZ1X2FxX2FsbG9jKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IGFkbWluX3F1ZXVlICoqYWRfcXVldWUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0xMjY0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjEyNjU6aW50IHJ2dV9tYm94X2hhbmRsZXJfcmVhZHkoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTEyNjYtXFx0XFx0XFx0ICAgc3RydWN0IHJlYWR5X21zZ19yc3AgKnJzcClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTE0NTU9c3RhdGljIGludCBydnVfZGV0YWNoX3JzcmNzKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IHJzcmNfZGV0YWNoICpkZXRhY2gsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0xNTA3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjE1MDg6aW50IHJ2dV9tYm94X2hhbmRsZXJfZGV0YWNoX3Jlc291cmNlcyhzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMTUwOS1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgcnNyY19kZXRhY2ggKmRldGFjaCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTE3MzY9c3RhdGljIGJvb2wgcnZ1X2F0dGFjaF9mcm9tX3NhbWVfYmxvY2soc3RydWN0IHJ2dSAqcnZ1LCBpbnQgYmxrdHlwZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTE3NTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MTc1MjppbnQgcnZ1X21ib3hfaGFuZGxlcl9hdHRhY2hfcmVzb3VyY2VzKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0xNzUzLVxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCByc3JjX2F0dGFjaCAqYXR0YWNoLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MTkwNj1zdGF0aWMgdm9pZCBydnVfY2xlYXJfbXNpeF9vZmZzZXQoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgcnZ1X3BmdmYgKnBmdmYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0xOTI5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjE5MzA6aW50IHJ2dV9tYm94X2hhbmRsZXJfbXNpeF9vZmZzZXQoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTE5MzEtXFx0XFx0XFx0XFx0IHN0cnVjdCBtc2l4X29mZnNldF9yc3AgKnJzcClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTE5OTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MTk5MzppbnQgcnZ1X21ib3hfaGFuZGxlcl9mcmVlX3JzcmNfY250KHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0xOTk0LVxcdFxcdFxcdFxcdCAgIHN0cnVjdCBmcmVlX3JzcmNzX3JzcCAqcnNwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjA4NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyMDg2OmludCBydnVfbWJveF9oYW5kbGVyX3ZmX2ZscihzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjA4Ny1cXHRcXHRcXHQgICAgc3RydWN0IG1zZ19yc3AgKnJzcClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTIxMDY9aW50IHJ2dV9uZGNfc3luYyhzdHJ1Y3QgcnZ1ICpydnUsIGludCBsZmJsa2FkZHIsIGludCBsZmlkeCwgdTY0IGxmb2Zmc2V0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjExMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyMTEzOmludCBydnVfbWJveF9oYW5kbGVyX2dldF9od19jYXAoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTIxMTQtXFx0XFx0XFx0XFx0c3RydWN0IGdldF9od19jYXBfcnNwICpyc3ApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yMTI3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjIxMjg6aW50IHJ2dV9tYm94X2hhbmRsZXJfc2V0X3ZmX3Blcm0oc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3Qgc2V0X3ZmX3Blcm0gKnJlcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yMTI5LVxcdFxcdFxcdFxcdCBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjE2OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyMTcwOmludCBydnVfbWJveF9oYW5kbGVyX25kY19zeW5jX29wKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yMTcxLVxcdFxcdFxcdFxcdCBzdHJ1Y3QgbmRjX3N5bmNfb3AgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTIyNTY9c3RhdGljIGludCBydnVfcHJvY2Vzc19tYm94X21zZyhzdHJ1Y3Qgb3R4Ml9tYm94ICptYm94LCBpbnQgZGV2aWQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yMjg3LVxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyMjg4OlxcdFxcdGVyciA9IHJ2dV9tYm94X2hhbmRsZXJfICMjIF9mbl9uYW1lKHJ2dSxcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjI4OS1cXHRcXHRcXHRcXHRcXHRcXHQgICAgKHN0cnVjdCBfcmVxX3R5cGUgKilyZXEsIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTIyOTc9TUJPWF9NRVNTQUdFU1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjMwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyMzA3OnN0YXRpYyB2b2lkIF9fcnZ1X21ib3hfaGFuZGxlcihzdHJ1Y3QgcnZ1X3dvcmsgKm13b3JrLCBpbnQgdHlwZSwgYm9vbCBwb2xsKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTIzMDgte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjM5Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyMzk4OnN0YXRpYyBpbmxpbmUgdm9pZCBydnVfYWZwZl9tYm94X2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTIzOTkte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjQwMy1cXHRtdXRleF9sb2NrKFxcdTAwMjZydnUtXFx1MDAzZW1ib3hfbG9jayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MjQwNDpcXHRfX3J2dV9tYm94X2hhbmRsZXIobXdvcmssIFRZUEVfQUZQRiwgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjQwNS1cXHRtdXRleF91bmxvY2soXFx1MDAyNnJ2dS1cXHUwMDNlbWJveF9sb2NrKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI0MDctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MjQwODpzdGF0aWMgaW5saW5lIHZvaWQgcnZ1X2FmdmZfbWJveF9oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNDA5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI0MTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MjQxMjpcXHRfX3J2dV9tYm94X2hhbmRsZXIobXdvcmssIFRZUEVfQUZWRiwgZmFsc2UpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI0MTMtfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MjU3MD1zdGF0aWMgaW50IHJ2dV9tYm94X2luaXQoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbWJveF93cV9pbmZvICptdyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNTcxLVxcdFxcdFxcdCBpbnQgdHlwZSwgaW50IG51bSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyNTcyOlxcdFxcdFxcdCB2b2lkIChtYm94X2hhbmRsZXIpKHN0cnVjdCB3b3JrX3N0cnVjdCAqKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNTczLVxcdFxcdFxcdCB2b2lkIChtYm94X3VwX2hhbmRsZXIpKHN0cnVjdCB3b3JrX3N0cnVjdCAqKSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI2ODQtXFx0XFx0bXdvcmstXFx1MDAzZXJ2dSA9IHJ2dTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyNjg1OlxcdFxcdElOSVRfV09SSyhcXHUwMDI2bXdvcmstXFx1MDAzZXdvcmssIG1ib3hfaGFuZGxlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjY4Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTI3MzQ9dm9pZCBydnVfcXVldWVfd29yayhzdHJ1Y3QgbWJveF93cV9pbmZvICptdywgaW50IGZpcnN0LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjc1My1cXHRcXHQgKiB3aGVuIHRoZSBpbnRlcnJ1cHQgaGFuZGxlciBpcyBjYWxsZWQuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6Mjc1NDpcXHRcXHQgKiBwZi1cXHUwMDNlbWJveC5udW1fbXNncyBob2xkcyB0aGUgZGF0YSBmb3IgdXNlIGluIHBmYWZfbWJveF9oYW5kbGVyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjc1NS1cXHRcXHQgKiBwZlxcdTAwM2VtYm94LnVwX251bV9tc2dzIGhvbGRzIHRoZSBkYXRhIGZvciB1c2UgaW5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTM0NjY9c3RhdGljIGludCBydnVfZW5hYmxlX3NyaW92KHN0cnVjdCBydnUgKnJ2dSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM1MDktXFx0ZXJyID0gcnZ1X21ib3hfaW5pdChydnUsIFxcdTAwMjZydnUtXFx1MDAzZWFmdmZfd3FfaW5mbywgVFlQRV9BRlZGLCB2ZnMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MzUxMDpcXHRcXHRcXHQgICAgcnZ1X2FmdmZfbWJveF9oYW5kbGVyLCBydnVfYWZ2Zl9tYm94X3VwX2hhbmRsZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM1MTEtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTM1NDc9c3RhdGljIGludCBydnVfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM2MjctXFx0ZXJyID0gcnZ1X21ib3hfaW5pdChydnUsIFxcdTAwMjZydnUtXFx1MDAzZWFmcGZfd3FfaW5mbywgVFlQRV9BRlBGLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjM2Mjg6XFx0XFx0XFx0ICAgIHJ2dS1cXHUwMDNlaHctXFx1MDAzZXRvdGFsX3BmcywgcnZ1X2FmcGZfbWJveF9oYW5kbGVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM2MjktXFx0XFx0XFx0ICAgIHJ2dV9hZnBmX21ib3hfdXBfaGFuZGxlcik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuaD05ODM9c3RhdGljIGlubGluZSBib29sIGlzX2NneF92ZihzdHJ1Y3QgcnZ1ICpydnUsIHUxNiBwY2lmdW5jKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmgtOTg5LSNkZWZpbmUgTShfbmFtZSwgX2lkLCBmbl9uYW1lLCByZXEsIHJzcClcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1Lmg6OTkwOmludCBydnVfbWJveF9oYW5kbGVyXyAjIyBmbl9uYW1lKHN0cnVjdCBydnUgKiwgc3RydWN0IHJlcSAqLCBzdHJ1Y3QgcnNwICopO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5oLTk5MS1NQk9YX01FU1NBR0VTXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM9NTI3PXZvaWQgcnZ1X2NneF9kaXNhYmxlX2RtYWNfZW50cmllcyhzdHJ1Y3QgcnZ1ICpydnUsIHUxNiBwY2lmdW5jKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTU2Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6NTYzOmludCBydnVfbWJveF9oYW5kbGVyX2NneF9zdGFydF9yeHR4KHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtNTY0LVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTU2OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6NTcwOmludCBydnVfbWJveF9oYW5kbGVyX2NneF9zdG9wX3J4dHgoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy01NzEtXFx0XFx0XFx0XFx0ICAgc3RydWN0IG1zZ19yc3AgKnJzcClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYz01Nzc9c3RhdGljIGludCBydnVfbG1hY19nZXRfc3RhdHMoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTYyMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6NjIxOmludCBydnVfbWJveF9oYW5kbGVyX2NneF9zdGF0cyhzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTYyMi1cXHRcXHRcXHQgICAgICAgc3RydWN0IGNneF9zdGF0c19yc3AgKnJzcClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy02MjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjYyNzppbnQgcnZ1X21ib3hfaGFuZGxlcl9ycG1fc3RhdHMoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy02MjgtXFx0XFx0XFx0ICAgICAgIHN0cnVjdCBycG1fc3RhdHNfcnNwICpyc3ApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtNjMyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo2MzM6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X3N0YXRzX3JzdChzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTYzNC1cXHRcXHRcXHRcXHQgICBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTY2MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6NjYyOmludCBydnVfbWJveF9oYW5kbGVyX2NneF9mZWNfc3RhdHMoc3RydWN0IHJ2dSAqcnZ1LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy02NjMtXFx0XFx0XFx0XFx0ICAgc3RydWN0IG1zZ19yZXEgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy02NzktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjY4MDppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfbWFjX2FkZHJfc2V0KHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtNjgxLVxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBjZ3hfbWFjX2FkZHJfc2V0X29yX2dldCAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTcwMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6NzAzOmludCBydnVfbWJveF9oYW5kbGVyX2NneF9tYWNfYWRkcl9hZGQoc3RydWN0IHJ2dSAqcnZ1LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy03MDQtXFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IGNneF9tYWNfYWRkcl9hZGRfcmVxICpyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtNzI2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo3Mjc6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X21hY19hZGRyX2RlbChzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTcyOC1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgY2d4X21hY19hZGRyX2RlbF9yZXEgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy03NDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjc0NDppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfbWFjX21heF9lbnRyaWVzX2dldChzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTc0NS1cXHRcXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBtc2dfcmVxICpyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtNzcwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo3NzE6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X21hY19hZGRyX2dldChzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTc3Mi1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgY2d4X21hY19hZGRyX3NldF9vcl9nZXQgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy03ODMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjc4NDppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfcHJvbWlzY19lbmFibGUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy03ODUtXFx0XFx0XFx0XFx0XFx0c3RydWN0IG1zZ19yc3AgKnJzcClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy04MDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjgwNDppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfcHJvbWlzY19kaXNhYmxlKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtODA1LVxcdFxcdFxcdFxcdFxcdCBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jPTgyMz1zdGF0aWMgaW50IHJ2dV9jZ3hfcHRwX3J4X2NmZyhzdHJ1Y3QgcnZ1ICpydnUsIHUxNiBwY2lmdW5jLCBib29sIGVuYWJsZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy04NTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjg1OTppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfcHRwX3J4X2VuYWJsZShzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTg2MC1cXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IG1zZ19yc3AgKnJzcClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy04NjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjg2ODppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfcHRwX3J4X2Rpc2FibGUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy04NjktXFx0XFx0XFx0XFx0XFx0c3RydWN0IG1zZ19yc3AgKnJzcClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYz04NzQ9c3RhdGljIGludCBydnVfY2d4X2NvbmZpZ19saW5rZXZlbnRzKHN0cnVjdCBydnUgKnJ2dSwgdTE2IHBjaWZ1bmMsIGJvb2wgZW4pXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtODk0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo4OTU6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X3N0YXJ0X2xpbmtldmVudHMoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy04OTYtXFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTkwMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6OTAyOmludCBydnVfbWJveF9oYW5kbGVyX2NneF9zdG9wX2xpbmtldmVudHMoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy05MDMtXFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBtc2dfcnNwICpyc3ApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtOTA4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo5MDk6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X2dldF9saW5raW5mbyhzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTkxMC1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgY2d4X2xpbmtfaW5mb19tc2cgKnJzcClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy05MjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjkyNzppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfZmVhdHVyZXNfZ2V0KHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtOTI4LVxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBtc2dfcmVxICpyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM9OTcxPXN0YXRpYyBpbnQgcnZ1X2NneF9jb25maWdfaW50bGJrKHN0cnVjdCBydnUgKnJ2dSwgdTE2IHBjaWZ1bmMsIGJvb2wgZW4pXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtOTg2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo5ODc6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X2ludGxia19lbmFibGUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy05ODgtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBtc2dfcnNwICpyc3ApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtOTkzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo5OTQ6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X2ludGxia19kaXNhYmxlKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtOTk1LVxcdFxcdFxcdFxcdFxcdHN0cnVjdCBtc2dfcnNwICpyc3ApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM9MTAwMT1pbnQgcnZ1X2NneF9jZmdfcGF1c2VfZnJtKHN0cnVjdCBydnUgKnJ2dSwgdTE2IHBjaWZ1bmMsIHU4IHR4X3BhdXNlLCB1OCByeF9wYXVzZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy0xMDM5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzoxMDQwOmludCBydnVfbWJveF9oYW5kbGVyX2NneF9jZmdfcGF1c2VfZnJtKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtMTA0MS1cXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IGNneF9wYXVzZV9mcm1fY2ZnICpyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtMTA2Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6MTA2ODppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfZ2V0X3BoeV9mZWNfc3RhdHMoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy0xMDY5LVxcdFxcdFxcdFxcdFxcdCAgIHN0cnVjdCBtc2dfcnNwICpyc3ApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM9MTEyNj1pbnQgcnZ1X2NneF9zdGFydF9zdG9wX2lvKHN0cnVjdCBydnUgKnJ2dSwgdTE2IHBjaWZ1bmMsIGJvb2wgc3RhcnQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtMTE3Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6MTE3MzppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfc2V0X2ZlY19wYXJhbShzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTExNzQtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBmZWNfbW9kZSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTExODktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjExOTA6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X2dldF9hdXhfbGlua19pbmZvKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtMTE5MS1cXHRcXHRcXHRcXHRcXHQgICBzdHJ1Y3QgY2d4X2Z3X2RhdGEgKnJzcClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy0xMjE1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzoxMjE2OmludCBydnVfbWJveF9oYW5kbGVyX2NneF9zZXRfbGlua19tb2RlKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtMTIxNy1cXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IGNneF9zZXRfbGlua19tb2RlX3JlcSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTEyNDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjEyNDM6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X21hY19hZGRyX3Jlc2V0KHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IGNneF9tYWNfYWRkcl9yZXNldF9yZXEgKnJlcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtMTI0NC1cXHRcXHRcXHRcXHRcXHRzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTEyNTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjEyNjA6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X21hY19hZGRyX3VwZGF0ZShzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTEyNjEtXFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBjZ3hfbWFjX2FkZHJfdXBkYXRlX3JlcSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jPTEyNzc9aW50IHJ2dV9jZ3hfcHJpb19mbG93X2N0cmxfY2ZnKHN0cnVjdCBydnUgKnJ2dSwgdTE2IHBjaWZ1bmMsIHU4IHR4X3BhdXNlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTEzMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjEzMTQ6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X3ByaW9fZmxvd19jdHJsX2NmZyhzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTEzMTUtXFx0XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBjZ3hfcGZjX2NmZyAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NuMTBrLmM9MTEzPXN0YXRpYyBpbnQgcnZ1X3VwZGF0ZV9sbXRhZGRyKHN0cnVjdCBydnUgKnJ2dSwgdTE2IHBjaWZ1bmMsIHU2NCBsbXRfYWRkcilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jbjEway5jLTE0Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY24xMGsuYzoxNDg6aW50IHJ2dV9tYm94X2hhbmRsZXJfbG10c3RfdGJsX3NldHVwKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY24xMGsuYy0xNDktXFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgbG10c3RfdGJsX3NldHVwX3JlcSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jPTQzMz1zdGF0aWMgaW50IHZhbGlkYXRlX2FuZF9nZXRfY3B0X2Jsa2FkZHIoaW50IHJlcV9ibGthZGRyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jLTQ0My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmM6NDQ0OmludCBydnVfbWJveF9oYW5kbGVyX2NwdF9sZl9hbGxvYyhzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jLTQ0NS1cXHRcXHRcXHRcXHQgIHN0cnVjdCBjcHRfbGZfYWxsb2NfcmVxX21zZyAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jPTUxND1zdGF0aWMgaW50IGNwdF9sZl9mcmVlKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSwgaW50IGJsa2FkZHIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmMtNTQ0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYzo1NDU6aW50IHJ2dV9tYm94X2hhbmRsZXJfY3B0X2xmX2ZyZWUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYy01NDYtXFx0XFx0XFx0XFx0IHN0cnVjdCBtc2dfcnNwICpyc3ApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmM9NjE0PXN0YXRpYyBpbnQgY3B0X2lubGluZV9pcHNlY19jZmdfb3V0Ym91bmQoc3RydWN0IHJ2dSAqcnZ1LCBpbnQgYmxrYWRkciwgdTggY3B0bGYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmMtNjU4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYzo2NTk6aW50IHJ2dV9tYm94X2hhbmRsZXJfY3B0X2lubGluZV9pcHNlY19jZmcoc3RydWN0IHJ2dSAqcnZ1LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYy02NjAtXFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgY3B0X2lubGluZV9pcHNlY19jZmdfbXNnICpyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmM9Njk1PXN0YXRpYyBib29sIHZhbGlkYXRlX2FuZF91cGRhdGVfcmVnX29mZnNldChzdHJ1Y3QgcnZ1ICpydnUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmMtNzYyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYzo3NjM6aW50IHJ2dV9tYm94X2hhbmRsZXJfY3B0X3JkX3dyX3JlZ2lzdGVyKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmMtNzY0LVxcdFxcdFxcdFxcdFxcdHN0cnVjdCBjcHRfcmRfd3JfcmVnX21zZyAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jPTgzMz1zdGF0aWMgdm9pZCBnZXRfZW5nX3N0cyhzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBjcHRfc3RzX3JzcCAqcnNwLCBpbnQgYmxrYWRkcilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYy04NTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jOjg1ODppbnQgcnZ1X21ib3hfaGFuZGxlcl9jcHRfc3RzKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IGNwdF9zdHNfcmVxICpyZXEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jLTg1OS1cXHRcXHRcXHQgICAgIHN0cnVjdCBjcHRfc3RzX3JzcCAqcnNwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jPTg5OT1zdGF0aWMgdm9pZCBjcHRfcnhjX3RpbWVfY2ZnKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IGNwdF9yeGNfdGltZV9jZmdfcmVxICpyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmMtOTIzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYzo5MjQ6aW50IHJ2dV9tYm94X2hhbmRsZXJfY3B0X3J4Y190aW1lX2NmZyhzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jLTkyNS1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgY3B0X3J4Y190aW1lX2NmZ19yZXEgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYy05NDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jOjk0NDppbnQgcnZ1X21ib3hfaGFuZGxlcl9jcHRfY3R4X2NhY2hlX3N5bmMoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYy05NDUtXFx0XFx0XFx0XFx0XFx0c3RydWN0IG1zZ19yc3AgKnJzcClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYy05NDktXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDExOjE0OjU2LjQzMTQ3NzEwM1oiLCJTZXEiOjIxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4ODQ5NzcwNzU0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEZ1enppbmcgU3RyYXRlZ3k6IFRhcmdldGluZyB0aGUgTWFpbGJveCBIYW5kbGVyIGluIGBydnUuY2AqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIFRoZSBjb3JlIG9mIHRoZSBpc3N1ZSwgYW5kIHRoZXJlZm9yZSBteSB0YXJnZXQsIGlzIHRoZSBgcnZ1X3Byb2Nlc3NfbWJveF9tc2dgIGZ1bmN0aW9uIGluIGBydnUuY2AuIFRoaXMgaXMgd2hlcmUgdGhlIG1haWxib3ggbWVzc2FnZXMgYXJlIGhhbmRsZWQuIFRoZSBzdHJ1Y3R1cmUgaXMgcHJldHR5IGNsZWFyOiBpdCB1c2VzIGEgbWFjcm8gdG8gZGVmaW5lIHRoZSBtZXNzYWdlIGNhc2VzLCBhbmQgZWFjaCBjYXNlIGNhbGxzIGEgaGFuZGxlciBmdW5jdGlvbi4gU3BlY2lmaWNhbGx5LCBJJ20gaW50ZXJlc3RlZCBpbiBob3cgdGhpcyBpcyB0cmlnZ2VyZWQuIEkgc2VlIHRoYXQgYHJ2dV9wcm9jZXNzX21ib3hfbXNnYCBpcyBjYWxsZWQgYnkgYF9fcnZ1X21ib3hfaGFuZGxlcmAsIHdoaWNoIGlzIGEgd29ya3F1ZXVlIGZ1bmN0aW9uLiBUaGlzIHdvcmsgaXMgcXVldWVkIGJ5IGBydnVfcXVldWVfd29ya2AsIHdoaWNoIGlzIGl0c2VsZiBjYWxsZWQgZnJvbSB0aGUgaW50ZXJydXB0IGhhbmRsZXIgYHJ2dV9tYm94X2ludHJfaGFuZGxlcmAuIEFuZCAqdGhhdCogaGFuZGxlciBpcyByZWdpc3RlcmVkIGZvciB0aGUgbWFpbGJveCBpbnRlcnJ1cHRzLlxuXG5BaGEhIFRoaXMgaXMgd2hlcmUgdGhlIHZ1bG5lcmFiaWxpdHkgZXhpc3RzLlxuXG5UaGUga2V5IGlzIHRoYXQgc3l6a2FsbGVyLCB0aHJvdWdoIGl0cyB2aGNpIGludGVyZmFjZSwgY2FuIGluamVjdCBpbnRlcnJ1cHRzIGZvciB0aGUgUENJIGRldmljZS4gU28sIGJ5IGNyYWZ0aW5nIGRhdGEgdG8gYmUgd3JpdHRlbiBpbnRvIHRoZSBCQVJzLCBJIGNhbiBtYW5pcHVsYXRlIHRoZSBtYWlsYm94IG1lbW9yeSwgdHJpZ2dlciBhbiBpbnRlcnJ1cHQgdmlhIHN5emthbGxlciwgYW5kIHRodXMgY2F1c2UgYHJ2dV9tYm94X2ludHJfaGFuZGxlcmAgdG8gcnVuLCB3aGljaCBpbiB0dXJuIHF1ZXVlcyBhIG1haWxib3ggd29yayBpdGVtIHRoYXQgd2lsbCwgaW4gdGhlIGVuZCwgY2FsbCB0aGUgbWFpbGJveCBoYW5kbGVycy4gVGhlIG1haWxib3ggbWVtb3J5LCBtYXBwZWQgdmlhIFBDSSBCQVJzLCBwcm92aWRlcyB0aGUgcGVyZmVjdCBhdHRhY2sgc3VyZmFjZS4gU3l6a2FsbGVyIGNhbiBwcm92aWRlIHRoZSBtZW1vcnkgZm9yIHRoZSBCQVJzIGFuZCBJIGNhbiBwb3B1bGF0ZSBpdCB3aXRoIHJhbmRvbSBkYXRhLiBUaGlzIG9wZW5zIHRoZSBkb29yIHRvIGZ1enppbmcgdGhlIG1haWxib3ggaGFuZGxlciBmdW5jdGlvbiwgYHJ2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlYCBpbiB0aGUgT2N0ZW9uVFgyIEFGIGRyaXZlci5cblxuTm93LCBsZXQgbWUgdGhpbmsgYWJvdXQgdGhlIGZ1bmN0aW9uYWwgaW1wbGljYXRpb25zLiBUaGlzIGNvZGUgbW9kaWZpZXMgdGhlIGJlaGF2aW9yIG9mIHRoZSBkZXZpY2UgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIGZ1bmN0aW9uIGlzIHJ1bm5pbmcgZm9yIGEgVmlydHVhbCBGdW5jdGlvbiAoVkYpLiBUaGUgYGlzX3ZmKHBjaWZ1bmMpYCBjaGVjayBkZXRlcm1pbmVzIHdoZXRoZXIgc29tZSBmdW5jdGlvbnMgYXJlIGNhbGxlZCwgYW5kIHRob3NlIGZ1bmN0aW9ucywgaW4gdHVybiwgbW9kaWZ5IHRoZSBjb3JlIGxvZ2ljIG9mIHRoZSBPY3Rlb25UWDIgQUYgZHJpdmVyJ3MgbWFpbGJveCBoYW5kbGVyLCBtZWFuaW5nIHRoaXMgY29kZSBpcyBhYnNvbHV0ZWx5IHdvcnRoIGZ1enppbmchXG5cblRvIGVuc3VyZSBJJ20gdGFyZ2V0aW5nIHRoZSBjb3JyZWN0IGNvbmZpZ3VyYXRpb24sIEkgbmVlZCB0byB2ZXJpZnkgYSBmZXcgdGhpbmdzLiBGaXJzdCBhbmQgZm9yZW1vc3QsIGBDT05GSUdfT0NURU9OVFgyX0FGYCBpcyB0aGUgY3JpdGljYWwgc2V0dGluZy4gTm93LCBsZXQgbWUgZG91YmxlLWNoZWNrIHRoZSBLY29uZmlnIGZpbGUgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWdgIHRvIGJlIHN1cmUgdGhlcmUgYXJlbid0IGFueSBvdGhlciBkZXBlbmRlbmNpZXMgb3IgcmVsYXRlZCBjb25maWd1cmF0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjUxNzYsIk91dHB1dFRva2VucyI6NDYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NjMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTU6MDUuMjgxMjUwMjk3WiIsIlNlcSI6MjIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NzY4Mjc4OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgT0NURU9OVFgyX0FGXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZz02PWNvbmZpZyBPQ1RFT05UWDJfTUJPWFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy04LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6OTpjb25maWcgT0NURU9OVFgyX0FGXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0xMC1cXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBPY3Rlb25UWDIgUlZVIEFkbWluIEZ1bmN0aW9uIGRyaXZlclxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTU6MDUuMzM4OTM5MTk1WiIsIlNlcSI6MjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM5NTE3MDA0MTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQW5hbHl6aW5nIHRoZSBEZXBlbmRlbmNpZXMgb2YgT0NURU9OVFgyX0FGKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYE9DVEVPTlRYMl9BRmAuIFRoZSBmaXJzdCB0aGluZyB0aGF0IHBvcHMgaW50byBteSBoZWFkIGlzLCBcIldoYXQgb3RoZXIgY29tcG9uZW50cyBvciBtb2R1bGVzIHJlbHkgb24gKnRoaXMqIHBpZWNlP1wiIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyByZWxhdGlvbnNoaXBzIHdpdGhpbiB0aGUgYnJvYWRlciBzeXN0ZW0sIGlkZWFsbHkgd2l0aGluIHRoZSBMaW51eCBrZXJuZWwgb3IgYSBzcGVjaWZpYyBuZXR3b3JraW5nIGZyYW1ld29yay4gSSdtIHRoaW5raW5nIGFib3V0IGRlcGVuZGVuY3kgdHJlZXM7IGEgcXVpY2sgc2NhbiBvZiB0aGUgY29kZSBvciBjb25maWd1cmF0aW9uIGZpbGVzIHdvdWxkIGJlIHRoZSBpZGVhbCBwbGFjZSB0byBiZWdpbiB0aGlzIGFuYWx5c2lzLiBBbSBJIGRlYWxpbmcgd2l0aCBhIG1vZHVsZSwgYSBkcml2ZXIsIHNvbWUgaGFyZHdhcmUgYWJzdHJhY3Rpb24gbGF5ZXIsIG9yIGFuIGVudGlyZWx5IGRpZmZlcmVudCBlbnRpdHk/IFRoZSBjb250ZXh0IGlzIGtleSBoZXJlLlxuXG5XaGF0J3MgdGhlIGdvYWw/IEFyZSB3ZSB0cnlpbmcgdG8gdW5kZXJzdGFuZCBob3cgYE9DVEVPTlRYMl9BRmAgYWZmZWN0cyBvdGhlciBwYXJ0cyBvZiB0aGUgc3lzdGVtIGZvciBvcHRpbWl6YXRpb24sIHRyb3VibGVzaG9vdGluZywgb3IgbWlncmF0aW9uLCBtYXliZSBldmVuIHNlY3VyaXR5PyBUaGUgdXNlIGNhc2UgZHJpdmVzIHRoZSBkZXB0aCBJJ2xsIGdvIGludG8uIERvIEkgd2FudCB0byB1bmRlcnN0YW5kIHdoYXQgd291bGQgYnJlYWsgaWYgSSBjaGFuZ2VkIHRoaXM/IE9yIHdoYXQgbWlnaHQgYmUgYWZmZWN0ZWQgd2hlbiBhIGNoYW5nZSBoYXBwZW5zIGluIHNvbWUgb3RoZXIgc3Vic3lzdGVtPyBPciBhbSBJIHRyeWluZyB0byBmaWd1cmUgb3V0IHdoaWNoIG90aGVyIG1vZHVsZXMgc2hvdWxkIGJlIGNvbnNpZGVyZWQgZHVyaW5nIGZ1dHVyZSBtb2RpZmljYXRpb25zIHRvIHRoaXMgc3Vic3lzdGVtP1xuXG5JJ20gbWVudGFsbHkgcHJlcGFyaW5nIGZvciBhIGNoYWluIG9mIGNvbW1hbmQsIGEgaGllcmFyY2h5LiBJJ20gdGhpbmtpbmcgb2YgdHJhY2luZyBiYWNrIHRoZSBpbmNsdWRlIGZpbGVzLCBjb25maWd1cmF0aW9uIG9wdGlvbnMgdGhhdCB3b3VsZCBwdWxsIHRoaXMgbW9kdWxlIGludG8gdGhlIGJ1aWxkLCBvciBldmVuIHJ1bnRpbWUgZGVwZW5kZW5jaWVzIHRoYXQgY291bGQgY2FsbCBpdHMgcm91dGluZXMuIEknbSBnb2luZyB0byBzdGFydCB3aXRoIHRoZSBvYnZpb3VzIHBsYWNlczogbWFrZWZpbGVzLCBLY29uZmlnIGZpbGVzLCBhbmQgYW55IGRldmljZSB0cmVlIGVudHJpZXMsIGFuZCB0aGVuIG1vdmUgb24gdG8gdGhlIGNvZGUgaXRzZWxmLCBzdGFydGluZyB3aXRoIGFueSBjbGVhcmx5IG1hcmtlZCBlbnRyeSBwb2ludHMgb3IgaW5pdGlhbGl6YXRpb24gcm91dGluZXMuIEkgd2FudCB0byBzZWUgd2hpY2ggQVBJcyBpdCBleHBvcnRzIGFuZCBob3cgb3RoZXIgY29tcG9uZW50cyBpbnRlcmFjdCB3aXRoIGl0LiBGdW5jdGlvbiBjYWxscywgZGF0YSBzdHJ1Y3R1cmVzLCBhbmQgdGhlIGJyb2FkZXIgY29udHJvbCBmbG93IGFyZSBhbGwgZmFpciBnYW1lLiBJIGFtIGhvcGluZyB0aGUgc3lzdGVtIGlzIHdlbGwtZG9jdW1lbnRlZCwgc28gSSBjYW4gZmluZCBpdHMgb3ZlcmFsbCBwdXJwb3NlIGFuZCBmdW5jdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjY0NDgsIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMToxNTowOS4yOTA2NDI2MjRaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjE5ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbiAgIDI6XFx0I1xcbiAgIDM6XFx0IyBNYXJ2ZWxsIFJWVSBOZXR3b3JrIGRyaXZlcnMgY29uZmlndXJhdGlvblxcbiAgIDQ6XFx0I1xcbiAgIDU6XFx0XFxuICAgNjpcXHRjb25maWcgT0NURU9OVFgyX01CT1hcXG4gICA3OlxcdFxcdHRyaXN0YXRlXFxuICAgODpcXHRcXG4gICA5OlxcdGNvbmZpZyBPQ1RFT05UWDJfQUZcXG4gIDEwOlxcdFxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgQWRtaW4gRnVuY3Rpb24gZHJpdmVyXFxcIlxcbiAgMTE6XFx0XFx0c2VsZWN0IE9DVEVPTlRYMl9NQk9YXFxuICAxMjpcXHRcXHRzZWxlY3QgTkVUX0RFVkxJTktcXG4gIDEzOlxcdFxcdGRlcGVuZHMgb24gKDY0QklUIFxcdTAwMjZcXHUwMDI2IENPTVBJTEVfVEVTVCkgfHwgQVJNNjRcXG4gIDE0OlxcdFxcdGRlcGVuZHMgb24gUENJXFxuICAxNTpcXHRcXHRkZXBlbmRzIG9uIFBUUF8xNTg4X0NMT0NLX09QVElPTkFMXFxuICAxNjpcXHRcXHRoZWxwXFxuICAxNzpcXHRcXHQgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIE1hcnZlbGwncyBPY3Rlb25UWDIgUmVzb3VyY2UgVmlydHVhbGl6YXRpb25cXG4gIDE4OlxcdFxcdCAgVW5pdCdzIGFkbWluIGZ1bmN0aW9uIG1hbmFnZXIgd2hpY2ggbWFuYWdlcyBhbGwgUlZVIEhXIHJlc291cmNlc1xcbiAgMTk6XFx0XFx0ICBhbmQgcHJvdmlkZXMgYSBtZWRpdW0gdG8gb3RoZXIgUEYvVkZzIHRvIGNvbmZpZ3VyZSBIVy4gU2hvdWxkIGJlXFxuICAyMDpcXHRcXHQgIGVuYWJsZWQgZm9yIG90aGVyIFJWVSBkZXZpY2UgZHJpdmVycyB0byB3b3JrLlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMToxNTowOS4yOTA3MDU4ODRaIiwiU2VxIjoyNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODc2OTUyOTg5NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgQ29uZmlndXJhdGlvbiBhbmQgU2NvcGUgZm9yIEZ1enppbmcgdGhlIEFGIERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGhvdyBiZXN0IHRvIGNvbmZpZ3VyZSB0aGlzIHN5c3RlbSBmb3IgZnV6emluZyB0aGUgQUYgZHJpdmVyLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgaXQgaGluZ2VzIG9uIGEgZmV3IGtleSBmYWN0b3JzOiBgUENJYCBhbmQgZWl0aGVyIGAoNjRCSVQgXHUwMDI2XHUwMDI2IENPTVBJTEVfVEVTVClgIG9yIGBBUk02NGAuIFdpdGggdGhvc2UgaW4gbWluZCwgYE9DVEVPTlRYMl9BRmAgbG9va3MgbGlrZSB0aGUgcmlnaHQgY29uZmlnIHRvIHN0YXJ0IHdpdGguXG5cbkkgaGF2ZSB0byBjb25zaWRlciB3aGV0aGVyIHRvIGVuYWJsZSBgT0NURU9OVFgyX1BGYCBhbmQgYE9DVEVPTlRYMl9WRmAuIFdoaWxlIHRoZXkgbWlnaHQgbm90IGJlICpzdHJpY3RseSogbmVjZXNzYXJ5IGlmIHN5emthbGxlciBpcyBkaXJlY3RseSB0YXJnZXRpbmcgdGhlIEFGIGRyaXZlcidzIFBDSSBpbnRlcmZhY2UsIGVuYWJsaW5nIHRoZW0gY291bGQgYmUgYmVuZWZpY2lhbC4gSWYgc3l6a2FsbGVyIGVuZHMgdXAgZnV6emluZyB0aGUgUEYvVkYgZHJpdmVycywgd2hpY2ggdGhlbiBzZW5kIG1lc3NhZ2VzIHRvIHRoZSBBRiwgSSdsbCBuZWVkIHRoZW0uIFNvLCBsZXQncyBpbmNsdWRlIGBPQ1RFT05UWDJfQUZgIGZvciBub3csIGl0J3MgdGhlIG1vc3QgY29uc2VydmF0aXZlIGFwcHJvYWNoLlxuXG5OZXh0LCBJIG5lZWQgdG8gcGlucG9pbnQgdGhlIGZvY3VzIHN5bWJvbHMg4oCTIHRoZSBmdW5jdGlvbnMgdGhpcyBpcyBhY3R1YWxseSB0b3VjaGluZy4gQWZ0ZXIgbG9va2luZywgdGhlIHByaW1hcnkgb25lIGlzIGBydnVfbWJveF9oYW5kbGVyX25peF9zZXRfcnhfbW9kZWAuIEFyZSB0aGVyZSBhbnkgb3RoZXJzPyBOb3BlLCBqdXN0IHRoaXMgb25lLiBTbywgdGhhdCdzIHRoZSBmb2N1cy5cblxuSnVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIEknbGwgZG91YmxlIGNoZWNrIHRoZSBjb25maWcgcmVxdWlyZW1lbnRzIGFnYWluLiBgT0NURU9OVFgyX0FGYCBzaG91bGQgYmUgc3VmZmljaWVudCBvbiBpdHMgb3duLlxuXG5Ob3csIHdhaXQuLi4gdGhlcmUncyB0aGUgcGF0Y2ggaXRzZWxmLlxuXG5gYGBjXG5AQCAtNDU3NSw3ICs0NTc1LDcgQEAgaW50IHJ2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG5peF9yeF9tb2RlICpyZXEsXG4gXHRcdHJ2dV9ucGNfaW5zdGFsbF9hbGxtdWx0aV9lbnRyeShydnUsIHBjaWZ1bmMsIG5peGxmLFxuIFx0XHRcdFx0XHQgICAgICAgcGZ2Zi1cdTAwM2VyeF9jaGFuX2Jhc2UpO1xuIFx0fSBlbHNlIHtcbi1cdFx0aWYgKCFuaXhfcnhfbXVsdGljYXN0KVxuK1x0XHRpZiAoIW5peF9yeF9tdWx0aWNhc3QgXHUwMDI2XHUwMDI2ICFpc192ZihwY2lmdW5jKSlcbiBcdFx0XHRydnVfbnBjX2VuYWJsZV9hbGxtdWx0aV9lbnRyeShydnUsIHBjaWZ1bmMsIG5peGxmLCBmYWxzZSk7XG4gXHR9XG4gXG5AQCAtNDU4NSw3ICs0NTg1LDcgQEAgaW50IHJ2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG5peF9yeF9tb2RlICpyZXEsXG4gXHRcdFx0XHRcdCAgICAgIHBmdmYtXHUwMDNlcnhfY2hhbl9iYXNlLFxuIFx0XHRcdFx0XHQgICAgICBwZnZmLVx1MDAzZXJ4X2NoYW5fY250KTtcbiBcdGVsc2Vcbi1cdFx0aWYgKCFuaXhfcnhfbXVsdGljYXN0KVxuK1x0XHRpZiAoIW5peF9yeF9tdWx0aWNhc3QgXHUwMDI2XHUwMDI2ICFpc192ZihwY2lmdW5jKSlcbiBcdFx0XHRydnVfbnBjX2VuYWJsZV9wcm9taXNjX2VudHJ5KHJ2dSwgcGNpZnVuYywgbml4bGYsIGZhbHNlKTtcbiBcbiBcdHJldHVybiAwO1xuYGBgXG5cblJpZ2h0LCBpdCdzIGNoYW5naW5nIHRoZSBiZWhhdmlvciBvZiB0aGUgZHJpdmVyLiBGdW5jdGlvbmFsbHksIHRoaXMgaXMgYSBjaGFuZ2UgdG8gaG93IFJYIG1vZGUgaXMgaGFuZGxlZC5cblxuT2theSwgd2l0aCB0aGUgY29udGV4dCBzZXQsIGl0J3MgdGltZSB0byBzZXQtcmVzdWx0cy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjcxOTAsIk91dHB1dFRva2VucyI6MTE1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTcxLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTU6MTguMDYwMjM4NzMxWiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTIyNTk1ODYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk9DVEVPTlRYMl9BRlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInJ2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBlbmFibGluZy9kaXNhYmxpbmcgbXVsdGljYXN0IGFuZCBwcm9taXNjdW91cyBtb2RlcyBpbiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgUlZVIEFkbWluIEZ1bmN0aW9uIGRyaXZlci4gSXQgc3BlY2lmaWNhbGx5IGNoYW5nZXMgdGhlIGJlaGF2aW9yIGZvciBWaXJ0dWFsIEZ1bmN0aW9ucyAoVkZzKS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgcmVhY2hhYmxlIFBDSSBkcml2ZXIgKHZpYSB2aGNpIGVtdWxhdGlvbikuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiT0NURU9OVFgyX0FGXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIGVuYWJsaW5nL2Rpc2FibGluZyBtdWx0aWNhc3QgYW5kIHByb21pc2N1b3VzIG1vZGVzIGluIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgQWRtaW4gRnVuY3Rpb24gZHJpdmVyLiBJdCBzcGVjaWZpY2FsbHkgY2hhbmdlcyB0aGUgYmVoYXZpb3IgZm9yIFZpcnR1YWwgRnVuY3Rpb25zIChWRnMpLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSByZWFjaGFibGUgUENJIGRyaXZlciAodmlhIHZoY2kgZW11bGF0aW9uKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workfloww5ctv[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-02 11:05:15 +0000 UTC FinishedAt: 2026-07-02 11:15:19 +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": "c75597caada080effbfbc0a7fb10dc2a3bb543ad", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "OCTEONTX2_AF" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "c75597caada080effbfbc0a7fb10dc2a3bb543ad", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "OCTEONTX2_AF" ], "series_id": "638eaea0-ea09-4be5-a40e-ce4c689756ce" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "rvu_mbox_handler_nix_set_rx_mode" ], "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+CgkJCTx0ZD4yMDI2LzA3LzAyIDExOjE0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O09DVEVPTlRYMl9BRiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3J2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2dpYyBmb3IgZW5hYmxpbmcvZGlzYWJsaW5nIG11bHRpY2FzdCBhbmQgcHJvbWlzY3VvdXMgbW9kZXMgaW4gdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBkcml2ZXIuIEl0IHNwZWNpZmljYWxseSBjaGFuZ2VzIHRoZSBiZWhhdmlvciBmb3IgVmlydHVhbCBGdW5jdGlvbnMgKFZGcykuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIHJlYWNoYWJsZSBQQ0kgZHJpdmVyICh2aWEgdmhjaSBlbXVsYXRpb24pLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDExOjE0PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgMmQ2ODFlMDcyM2RlZTNjMWQ2Yzk2MjA4YzYwYjI1YjI2OTBlMDMwN1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDIgMTE6MTQ6MTQgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jXG5pbmRleCBkODk4OTM5NWU4NzVkYS4uYTdlMGUwZTA1YWQyM2IgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguY1xuQEAgLTQ1NzUsNyAmIzQzOzQ1NzUsNyBAQCBpbnQgcnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3Qgbml4X3J4X21vZGUgKnJlcSxcbiBcdFx0cnZ1X25wY19pbnN0YWxsX2FsbG11bHRpX2VudHJ5KHJ2dSwgcGNpZnVuYywgbml4bGYsXG4gXHRcdFx0XHRcdCAgICAgICBwZnZmLVx1MDAzZXJ4X2NoYW5fYmFzZSk7XG4gXHR9IGVsc2Uge1xuLVx0XHRpZiAoIW5peF9yeF9tdWx0aWNhc3QpXG4mIzQzO1x0XHRpZiAoIW5peF9yeF9tdWx0aWNhc3QgXHUwMDI2XHUwMDI2ICFpc192ZihwY2lmdW5jKSlcbiBcdFx0XHRydnVfbnBjX2VuYWJsZV9hbGxtdWx0aV9lbnRyeShydnUsIHBjaWZ1bmMsIG5peGxmLCBmYWxzZSk7XG4gXHR9XG4gXG5AQCAtNDU4NSw3ICYjNDM7NDU4NSw3IEBAIGludCBydnVfbWJveF9oYW5kbGVyX25peF9zZXRfcnhfbW9kZShzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBuaXhfcnhfbW9kZSAqcmVxLFxuIFx0XHRcdFx0XHQgICAgICBwZnZmLVx1MDAzZXJ4X2NoYW5fYmFzZSxcbiBcdFx0XHRcdFx0ICAgICAgcGZ2Zi1cdTAwM2VyeF9jaGFuX2NudCk7XG4gXHRlbHNlXG4tXHRcdGlmICghbml4X3J4X211bHRpY2FzdClcbiYjNDM7XHRcdGlmICghbml4X3J4X211bHRpY2FzdCBcdTAwMjZcdTAwMjYgIWlzX3ZmKHBjaWZ1bmMpKVxuIFx0XHRcdHJ2dV9ucGNfZW5hYmxlX3Byb21pc2NfZW50cnkocnZ1LCBwY2lmdW5jLCBuaXhsZiwgZmFsc2UpO1xuIFxuIFx0cmV0dXJuIDA7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTQ8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7T0NURU9OVFgyX0FGJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBlbmFibGluZy9kaXNhYmxpbmcgbXVsdGljYXN0IGFuZCBwcm9taXNjdW91cyBtb2RlcyBpbiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgUlZVIEFkbWluIEZ1bmN0aW9uIGRyaXZlci4gSXQgc3BlY2lmaWNhbGx5IGNoYW5nZXMgdGhlIGJlaGF2aW9yIGZvciBWaXJ0dWFsIEZ1bmN0aW9ucyAoVkZzKS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgcmVhY2hhYmxlIFBDSSBkcml2ZXIgKHZpYSB2aGNpIGVtdWxhdGlvbikuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDJkNjgxZTA3MjNkZWUzYzFkNmM5NjIwOGM2MGIyNWIyNjkwZTAzMDcKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IEp1bCAyIDExOjE0OjE0IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jCmluZGV4IGQ4OTg5Mzk1ZTg3NWRhLi5hN2UwZTBlMDVhZDIzYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYwpAQCAtNDU3NSw3ICYjNDM7NDU3NSw3IEBAIGludCBydnVfbWJveF9oYW5kbGVyX25peF9zZXRfcnhfbW9kZShzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBuaXhfcnhfbW9kZSAqcmVxLAogCQlydnVfbnBjX2luc3RhbGxfYWxsbXVsdGlfZW50cnkocnZ1LCBwY2lmdW5jLCBuaXhsZiwKIAkJCQkJICAgICAgIHBmdmYtJmd0O3J4X2NoYW5fYmFzZSk7CiAJfSBlbHNlIHsKLQkJaWYgKCFuaXhfcnhfbXVsdGljYXN0KQomIzQzOwkJaWYgKCFuaXhfcnhfbXVsdGljYXN0ICZhbXA7JmFtcDsgIWlzX3ZmKHBjaWZ1bmMpKQogCQkJcnZ1X25wY19lbmFibGVfYWxsbXVsdGlfZW50cnkocnZ1LCBwY2lmdW5jLCBuaXhsZiwgZmFsc2UpOwogCX0KIApAQCAtNDU4NSw3ICYjNDM7NDU4NSw3IEBAIGludCBydnVfbWJveF9oYW5kbGVyX25peF9zZXRfcnhfbW9kZShzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBuaXhfcnhfbW9kZSAqcmVxLAogCQkJCQkgICAgICBwZnZmLSZndDtyeF9jaGFuX2Jhc2UsCiAJCQkJCSAgICAgIHBmdmYtJmd0O3J4X2NoYW5fY250KTsKIAllbHNlCi0JCWlmICghbml4X3J4X211bHRpY2FzdCkKJiM0MzsJCWlmICghbml4X3J4X211bHRpY2FzdCAmYW1wOyZhbXA7ICFpc192ZihwY2lmdW5jKSkKIAkJCXJ2dV9ucGNfZW5hYmxlX3Byb21pc2NfZW50cnkocnZ1LCBwY2lmdW5jLCBuaXhsZiwgZmFsc2UpOwogCiAJcmV0dXJuIDA7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDExOjE0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwOTAKCQkJCQkJCW91dHB1dDogNjAKCQkJCQkJCXRob3VnaHRzOiAyNjQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgTWFydmVsbCBPY3Rlb25UWDIgUlZVIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IHR3ZWFrcyB0aGUgYHJ2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlYCBmdW5jdGlvbiBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jYC4gVGhlIGNvcmUgY2hhbmdlIGlzIGEgc21hbGwgY29uZGl0aW9uYWwgbW9kaWZpY2F0aW9uOiBgIW5peF9yeF9tdWx0aWNhc3RgIG5vdyBpbmNsdWRlcyBhIGNoZWNrIGZvciBgIWlzX3ZmKHBjaWZ1bmMpYC4gRnVuY3Rpb25hbGx5LCB0aGlzIHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2ggd2l0aGluIHRoZSBjb250ZXh0IG9mIHRoZSBPY3Rlb25UWDIgUlZVIGRyaXZlci4KCkhvd2V2ZXIsIG15IGV4cGVydCBpbnN0aW5jdHMga2ljayBpbiBpbW1lZGlhdGVseS4gVGhlIE9jdGVvblRYMiBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGV0aGVybmV0IGNvbnRyb2xsZXIuIE15IGZpcnN0IHRob3VnaHQgaXMgYWJvdXQgcmVhY2hhYmlsaXR5LiBDb3VsZCB0aGlzIGRyaXZlciBldmVuIGJlIGV4ZXJjaXNlZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGxpa2UgUUVNVSBvciBHb29nbGUgQ29tcHV0ZSBFbmdpbmU/IEdlbmVyYWxseSwgdGhlc2UgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVycyBhcmVuJiMzOTt0IGFjY2Vzc2libGUgdW5sZXNzIHRoZXJlJiMzOTtzIGFuIGVtdWxhdG9yIHNwZWNpZmljYWxseSBmb3IgdGhlIE9jdGVvblRYMiBvciBpZiBpdCYjMzk7cyBvcGVyYXRpbmcgYXMgYSBnZW5lcmljIGRyaXZlci4KClNvLCB0aGUgbmV4dCBzdGVwIGlzIHRvIGludmVzdGlnYXRlIHRoZSBwb3NzaWJpbGl0eSBvZiBlbXVsYXRpb24gaW4gUUVNVS4gSXMgdGhlcmUgYW4gT2N0ZW9uVFgyIG1vZGVsIGF2YWlsYWJsZSwgb3IgaXMgaXQgdHJlYXRlZCBhcyBhIGdlbmVyaWMgUENJIGRldmljZT8gSG9sZCBvbiwgdGhlcmUgaXMgc3l6a2FsbGVyLCB3aGljaCBtaWdodCBiZSBhYmxlIHRvIGZ1enogdGhlIFBDSSBkZXZpY2UgdGhyb3VnaCB0aGUgdmlydHVhbCBQQ0kgZGV2aWNlICh2aGNpKSAqaWYqIGl0IGlzIGVuYWJsZWQuIEJ1dCwgaWYgc3l6a2FsbGVyIGlzIGdvaW5nIHRvIGZ1enosIGl0IG5lZWRzIHRvIGtub3cgdGhlIFBDSSBJRHMuCgpUaGVyZWZvcmUsIEkgbmVlZCB0byBkaWcgaW50byB0aGUgZHJpdmVyJiMzOTtzIEtjb25maWcgYW5kIGlkZW50aWZ5IHRoZSBQQ0kgSURzLiBLbm93aW5nIHRoZSBQQ0kgSURzIGlzIGdvaW5nIHRvIGJlIGtleSB0byBkZXRlcm1pbmluZyB3aGV0aGVyIHdlIGNhbiBldmVuIHRyaWdnZXIgdGhpcyBjaGFuZ2UgaW4gYSBjb250cm9sbGVkIHRlc3RpbmcgZW52aXJvbm1lbnQsIGVzcGVjaWFsbHkgZm9yIGZ1enppbmcgcHVycG9zZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jPTQ1MDM9aW50IHJ2dV9tYm94X2hhbmRsZXJfbml4X2dldF9tYWNfYWRkcihzdHJ1Y3QgcnZ1ICpydnUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTQ1MTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmM6NDUyMDppbnQgcnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3Qgbml4X3J4X21vZGUgKnJlcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy00NTIxLVx0XHRcdFx0ICAgICBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDExOjE0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI5ODQKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAxMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqQW5hbHl6aW5nIHRoZSBLY29uZmlnIERlcGVuZGVuY3kqKgoKQWxyaWdodCwgc28gSSYjMzk7bSBkaXZpbmcgaW50byB0aGlzIGRyaXZlciBhbmQsIG5hdHVyYWxseSwgdGhlIGZpcnN0IHRoaW5nIEkgbmVlZCB0byB1bmRlcnN0YW5kIGlzIGl0cyBidWlsZCBjb25maWd1cmF0aW9uLiBMZXQmIzM5O3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3M6IEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoaWNoIEtjb25maWcgb3B0aW9ucyBhY3R1YWxseSBlbmFibGUgdGhpcyB0aGluZy4gSXQmIzM5O3MgY3J1Y2lhbCBmb3IgdW5kZXJzdGFuZGluZyBob3cgdGhlIGRyaXZlciBpbnRlZ3JhdGVzIGludG8gdGhlIGxhcmdlciBzeXN0ZW0gYW5kLCBtb3JlIGltcG9ydGFudGx5LCBob3cgdXNlcnMgYXJlIG1lYW50IHRvIGNvbnRyb2wgaXRzIGluY2x1c2lvbi4gS25vd2luZyB0aGUgZGVwZW5kZW5jaWVzIGRpcmVjdGx5IGluZm9ybXMgYW55IGRlYnVnZ2luZywgcG9ydGluZyBlZmZvcnRzIG9yIHRoZSB1bmRlcnN0YW5kaW5nIG9mIGhvdyBpdCBmaXRzIGluIHdpdGggdGhlIGRldmljZSB0cmVlLiBJJiMzOTtsbCBuZWVkIHRvIHRyYWNlIGJhY2sgZnJvbSB0aGUgc291cmNlIGNvZGUsIGlkZWFsbHkgdG8gdGhlIHJlbGV2YW50IEtjb25maWcgZnJhZ21lbnQsIHRvIHNlZSB0aGUgcHJlY2lzZSBkZXBlbmRlbmNpZXMgYW5kLCB1bHRpbWF0ZWx5LCB3aGF0IHRyaWdnZXJzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBkcml2ZXIgaW4gdGhlIGtlcm5lbCBidWlsZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgT0NURU9OVFgyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjY6Y29uZmlnIE9DVEVPTlRYMl9NQk9YXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTctXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy04LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzo5OmNvbmZpZyBPQ1RFT05UWDJfQUZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMTAtXHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgQWRtaW4gRnVuY3Rpb24gZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZz0yMj1jb25maWcgTkRDX0RJU19EWU5BTUlDX0NBQ0hJTkdcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTMwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzozMTpjb25maWcgT0NURU9OVFgyX1BGXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTMyLVx0dHJpc3RhdGUgXCYjMzQ7TWFydmVsbCBPY3Rlb25UWDIgTklDIFBoeXNpY2FsIEZ1bmN0aW9uIGRyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjQ1OmNvbmZpZyBPQ1RFT05UWDJfVkZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNDYtXHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgVmlydHVhbCBGdW5jdGlvbiBkcml2ZXJcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjI4CgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogNzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgdGhlIGV4cGVydDoKCioqTmF2aWdhdGluZyB0aGUgT0NURU9OVFgyIEFGIENvZGViYXNlKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jYC4gUmlnaHQsIHRoYXQgcGxhY2VzIG1lIGZpcm1seSB3aXRoaW4gdGhlIGBPQ1RFT05UWDJfQUZgIHJlYWxtLiBNeSBicmFpbiYjMzk7cyBhbHJlYWR5IG1ha2luZyB0aGUgY29ubmVjdGlvbiDigJMgdGhpcyBtZWFucyB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIHRoZSBBZHZhbmNlZCBGdW5jdGlvbiAoQUYpIGludGVyZmFjZSBzcGVjaWZpYyB0byB0aGUgT2N0ZW9uIFRYMiBmYW1pbHkuIE5vdywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgcGFydGljdWxhciBmaWxlIGZpdHMgaW50byB0aGUgb3ZlcmFsbCBidWlsZCBwcm9jZXNzLiBNeSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBxdWlja2x5IHBlZWsgYXQgdGhlIHJlbGV2YW50IGBNYWtlZmlsZWAgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2AuIFRoYXQgc2hvdWxkIGdpdmUgbWUgdGhlIGNydWNpYWwgaW5mb3JtYXRpb24gYWJvdXQgZGVwZW5kZW5jaWVzLCBjb21waWxhdGlvbiBmbGFncywgYW5kIGhvdyBgcnZ1X25peC5jYCBpcyBpbnRlZ3JhdGVkIGludG8gdGhlIGxhcmdlciBkcml2ZXIgbW9kdWxlLiBUaW1lIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgYnVpbGQgZW52aXJvbm1lbnQgZm9yIHRoaXMgc2VjdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtydnVfbml4Lm8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZT0xMD1ydnVfbWJveC15IDo9IG1ib3gubyBydnVfdHJhY2Uub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU6MTE6cnZ1X2FmLXkgOj0gY2d4Lm8gcnZ1Lm8gcnZ1X2NneC5vIHJ2dV9ucGEubyBydnVfbml4Lm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlLTEyLVx0XHQgIHJ2dV9yZWcubyBydnVfbnBjLm8gcnZ1X2RlYnVnZnMubyBwdHAubyBydnVfbnBjX2ZzLm8gXFxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MTI5CgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogMTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIEhlcmUmIzM5O3MgaG93IEkmIzM5O2QgYXBwcm9hY2ggdGhpcyB0YXNrLCBhcyBpZiB0aGVzZSB3ZXJlIG15IGludGVybmFsIHRob3VnaHRzOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBgcnZ1X2FmYCBDb25maWd1cmF0aW9uKioKCkFscmlnaHQsIHNvIHRoZSB0YXNrIGF0IGhhbmQgaXMgdG8gcGlucG9pbnQgKmV4YWN0bHkqIHdoYXQgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBhcmUgZW5hYmxpbmcgYHJ2dV9hZmAuIFRoaXMgaXMgYSBjbGFzc2ljIGRlYnVnZ2luZyBzY2VuYXJpbywgYW5kIHRoZSBhcHByb2FjaCBpcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLCBidXQgY3J1Y2lhbCBmb3IgZW5zdXJpbmcgSSB1bmRlcnN0YW5kIHRoZSBzeXN0ZW0mIzM5O3MgYmVoYXZpb3IuIEkgY2FuJiMzOTt0IGp1c3QgYXNzdW1lIGFueXRoaW5nOyBJIG5lZWQgdG8gYmUgcHJlY2lzZS4gSSBuZWVkIHRvIGtub3cgd2hpY2ggY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzLCBlbnZpcm9ubWVudGFsIHZhcmlhYmxlcywgb3Igb3RoZXIgcmVsZXZhbnQgc2V0dGluZ3MgYXJlIGFjdGl2ZWx5IGNhdXNpbmcgYHJ2dV9hZmAgdG8gYmUgZW5hYmxlZC4gV2l0aG91dCB0aGlzIGxldmVsIG9mIGRldGFpbCwgSSYjMzk7bSBqdXN0IGd1ZXNzaW5nLCBhbmQgdGhhdOKAmXMgYSB3YXN0ZSBvZiBteSB0aW1lLCBhbmQgbGlrZWx5IHdpbGwgYmUgYW4gZXhwZW5zaXZlIHdhc3RlIG9mIHRoZSBzeXN0ZW0mIzM5O3MgdGltZS4gSSYjMzk7bGwgbmVlZCB0byBrbm93IHRoaXMsIHNvIEkgd2lsbCBzdGFydCBsb29raW5nIGludG8gdGhlIGNvbmZpZ3VyYXRpb24gZmlsZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDExOjE0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J2dV9hZiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlPTc9b2JqLSQoQ09ORklHX09DVEVPTlRYMl9NQk9YKSAmIzQzOz0gcnZ1X21ib3gub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU6ODpvYmotJChDT05GSUdfT0NURU9OVFgyX0FGKSAmIzQzOz0gcnZ1X2FmLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlLTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZT0xMD1ydnVfbWJveC15IDo9IG1ib3gubyBydnVfdHJhY2Uub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU6MTE6cnZ1X2FmLXkgOj0gY2d4Lm8gcnZ1Lm8gcnZ1X2NneC5vIHJ2dV9ucGEubyBydnVfbml4Lm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlLTEyLVx0XHQgIHJ2dV9yZWcubyBydnVfbnBjLm8gcnZ1X2RlYnVnZnMubyBwdHAubyBydnVfbnBjX2ZzLm8gXFxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDY1NgoJCQkJCQkJb3V0cHV0OiA1MwoJCQkJCQkJdGhvdWdodHM6IDE3MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipSZWFjaGluZyBgQ09ORklHX09DVEVPTlRYMl9BRmAgdGhyb3VnaCBGdXp6aW5nKioKCk9rYXksIHNvIHRoZSBrZXkgY29uZmlndXJhdGlvbiBvcHRpb24gaGVyZSBzZWVtcyB0byBiZSBgQ09ORklHX09DVEVPTlRYMl9BRmAuIFRoZSBxdWVzdGlvbiBpcywgY2FuIEkgcmVhY2ggaXQsIGFuZCBob3c/IFRoZSBmdW5jdGlvbiBvZiBpbnRlcmVzdCwgYHJ2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlYCwgaXMgYSBtYWlsYm94IGhhbmRsZXIuIFRoYXQmIzM5O3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBNYWlsYm94IGhhbmRsZXJzIGFyZSB1c3VhbGx5IHRyaWdnZXJlZCBieSBWaXJ0dWFsIEZ1bmN0aW9uIChWRikgb3IgUGh5c2ljYWwgRnVuY3Rpb24gKFBGKSBkcml2ZXJzIHNlbmRpbmcgbWVzc2FnZXMgdG8gdGhlIEFkbWluIEZ1bmN0aW9uIChBRikuIElmIHN5emthbGxlciBjYW4gc29tZWhvdyBpbnRlcmFjdCB3aXRoIHRoZSBtYWlsYm94IGludGVyZmFjZSwgSSBtaWdodCBoYXZlIGEgcGF0aC4KClRoZSBjcnVjaWFsIHF1ZXN0aW9uIG5vdyBpcywgKmhvdyogZG9lcyBzeXprYWxsZXIgaW50ZXJhY3Qgd2l0aCB0aGlzPyBEb2VzIHRoaXMgZHJpdmVyIGV4cG9zZSBhIGNoYXJhY3RlciBkZXZpY2UsIGRlYnVnZnMsIG5ldGxpbmssIG9yIHNvbWV0aGluZyBzaW1pbGFyIGZvciBtYWlsYm94IGNvbW11bmljYXRpb24/IEFsdGVybmF0aXZlbHksIGNhbiBzeXprYWxsZXIgZnV6eiB0aGUgUENJIFZGIGRyaXZlciBkaXJlY3RseSwgd2hpY2ggaW4gdHVybiB3b3VsZCBzZW5kIHRoZXNlIG1haWxib3ggbWVzc2FnZXM/IFRoYXQmIzM5O3MgZGVmaW5pdGVseSB3b3J0aCBpbnZlc3RpZ2F0aW5nLiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgZW50cnkgcG9pbnQgZm9yIHN5emthbGxlci4KClJpZ2h0LCB0aW1lIHRvIGNoZWNrIHdoZXJlIGBydnVfbWJveF9oYW5kbGVyX25peF9zZXRfcnhfbW9kZWAgaXMgdXNlZC4gVGhhdCYjMzk7cyB0aGUgYmVzdCB3YXkgdG8gZ2V0IGEgc29saWQgZ3Jhc3Agb2YgaG93IHRoaXMgaXMgYWxsIGNvbm5lY3RlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jPTQ1MDM9aW50IHJ2dV9tYm94X2hhbmRsZXJfbml4X2dldF9tYWNfYWRkcihzdHJ1Y3QgcnZ1ICpydnUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTQ1MTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmM6NDUyMDppbnQgcnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3Qgbml4X3J4X21vZGUgKnJlcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy00NTIxLVx0XHRcdFx0ICAgICBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MzUxCgkJCQkJCQlvdXRwdXQ6IDUxCgkJCQkJCQl0aG91Z2h0czogNTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhpcyBpc3N1ZToKCioqSW52ZXN0aWdhdGluZyBhIFBvdGVudGlhbCBDb2RlIExvY2F0aW9uIEFub21hbHkqKgoKT2theSwgaG9sZCBvbiBhIHNlY29uZC4gSSYjMzk7bSBsb29raW5nIGF0IGEgZmlsZSBwYXRoLCBhbmQgc29tZXRoaW5nJiMzOTtzIGp1c3Qgbm90IHNpdHRpbmcgcmlnaHQuIEkmIzM5O20gc3BlY2lmaWNhbGx5IHRoaW5raW5nIGFib3V0IGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9gIGFuZCBJIGNhbiYjMzk7dCBmaW5kIGEgY29ycmVzcG9uZGluZyByZWZlcmVuY2UgdG8gaXQgYW55d2hlcmUgZWxzZSB3aXRoaW4gdGhpcyBwYXJ0IG9mIHRoZSBkcml2ZXIgdHJlZS4gVGhhdCBzZWVtcyBvZGQsIHBvdGVudGlhbGx5IGluY29tcGxldGUsIG9yIG1heWJlIGp1c3QgcG9vcmx5IGRvY3VtZW50ZWQuCgpSaWdodCwgc28gdG8gZ2V0IGEgaGFuZGxlIG9uIHRoaXMsIEkgbmVlZCB0byB6b29tIG91dCBhIGJpdC4gSW5zdGVhZCBvZiBmb2N1c2luZyBqdXN0IG9uIHRoYXQgc3BlY2lmaWMgYGFmL2Agc3ViZGlyZWN0b3J5LCBJIG5lZWQgdG8gYnJvYWRlbiBteSBzZWFyY2guIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSB3aWRlciBjb250ZXh0IHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2AgZGlyZWN0b3J5IHN0cnVjdHVyZS4gV2hhdCYjMzk7cyB0aGUgZ2VuZXJhbCBsYXlvdXQ/IEhvdyBpcyB0aGlzIGNvbXBvbmVudCBpbnRlZ3JhdGVkIGludG8gdGhlIG92ZXJhbGwgTWFydmVsbCBPY3Rlb24gVFgyIEV0aGVybmV0IGRyaXZlciBmcmFtZXdvcms/IEkmIzM5O2xsIHN0YXJ0IHdpdGggYSBicm9hZGVyIGNoZWNrIG9mIHRoZSBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYCBkaXJlY3RvcnkgYXMgYSB3aG9sZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jPTQ1MDM9aW50IHJ2dV9tYm94X2hhbmRsZXJfbml4X2dldF9tYWNfYWRkcihzdHJ1Y3QgcnZ1ICpydnUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTQ1MTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmM6NDUyMDppbnQgcnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3Qgbml4X3J4X21vZGUgKnJlcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy00NTIxLVx0XHRcdFx0ICAgICBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1OTA3CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMjQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIGNyYWZ0ZWQgd2l0aCB0aGUgZXhwZWN0YXRpb24gdGhhdCB0aGUgdXNlciBpcyBhIGtub3dsZWRnZWFibGUgaW5kaXZpZHVhbDoKCioqRGVidWdnaW5nIHRoZSBNYWNybyBNeXN0ZXJ5KioKCkFscmlnaHQsIHNvIEkmIzM5O20gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgdGhlIHNwZWNpZmljIG5hbWUgb2YgdGhhdCBtYWNybywgYW5kIGl0JiMzOTtzIG5hZ2dpbmcgYXQgbWUuIEl0IGZlZWxzIGxpa2UgYSBtYWNybywgc29tZWhvdyBjb25uZWN0ZWQgdG8gdGhpcyBmdW5jdGlvbmFsaXR5LiBNeSBmaXJzdCBpbnN0aW5jdCwgZ2l2ZW4gd2hhdCBJJiMzOTttIGRlYWxpbmcgd2l0aCwgaXMgdG8gZ28gZGlnZ2luZyB0aHJvdWdoIHRoZSBoZWFkZXIgZmlsZXMg4oCTIHRoZSBjb3JlIGluY2x1ZGUgZmlsZXMuIFNwZWNpZmljYWxseSwgc29tZXRoaW5nIGxpa2UgYG1ib3guaGAgb3IgYSByZWxhdGVkIGZpbGUgc2hvdWxkIGhvbGQgdGhlIGFuc3dlci4gVGhhdCBzZWVtcyBsaWtlIHRoZSBtb3N0IGxvZ2ljYWwgcGxhY2UgdG8gc3RhcnQgbG9va2luZywgZ2l2ZW4gbXkgZmFtaWxpYXJpdHkgd2l0aCB0aGUgdXN1YWwgY29udmVudGlvbnMuIEl0JiMzOTtzIGEgdGFyZ2V0ZWQgaHVudCwgYSBjb21tb24gZmlyc3Qgc3RlcCBpbiB0aGlzIGtpbmQgb2YgaW52ZXN0aWdhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bml4X3NldF9yeF9tb2RlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21ib3guaD0zMzA9TShOSVhfU0VUX01BQ19BRERSLFx0MHg4MDBhLCBuaXhfc2V0X21hY19hZGRyLCBuaXhfc2V0X21hY19hZGRyLCBtc2dfcnNwKSBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWJveC5oOjMzMTpNKE5JWF9TRVRfUlhfTU9ERSxcdDB4ODAwYiwgbml4X3NldF9yeF9tb2RlLCBuaXhfcnhfbW9kZSwgbXNnX3JzcClcdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tYm94LmgtMzMyLU0oTklYX1NFVF9IV19GUlMsXHQweDgwMGMsIG5peF9zZXRfaHdfZnJzLCBuaXhfZnJzX2NmZywgbXNnX3JzcClcdFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jPTQ1MDM9aW50IHJ2dV9tYm94X2hhbmRsZXJfbml4X2dldF9tYWNfYWRkcihzdHJ1Y3QgcnZ1ICpydnUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTQ1MTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmM6NDUyMDppbnQgcnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3Qgbml4X3J4X21vZGUgKnJlcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy00NTIxLVx0XHRcdFx0ICAgICBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM9MTg0Mj1zdGF0aWMgdm9pZCBvdHgyX2RvX3NldF9yeF9tb2RlKHN0cnVjdCBvdHgyX25pYyAqcGYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYy0xODYwLVx0bXV0ZXhfbG9jayhcdTAwMjZwZi1cdTAwM2VtYm94LmxvY2spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYzoxODYxOlx0cmVxID0gb3R4Ml9tYm94X2FsbG9jX21zZ19uaXhfc2V0X3J4X21vZGUoXHUwMDI2cGYtXHUwMDNlbWJveCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jLTE4NjItXHRpZiAoIXJlcSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmM9NDU2PXN0YXRpYyB2b2lkIG90eDJ2Zl9kb19zZXRfcnhfbW9kZShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYy00NjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jOjQ2NTpcdHJlcSA9IG90eDJfbWJveF9hbGxvY19tc2dfbml4X3NldF9yeF9tb2RlKFx1MDAyNnZmLVx1MDAzZW1ib3gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYy00NjYtXHRpZiAoIXJlcSkge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2OTE1CgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogMjU4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIE9jdGVvbiBUWDIgRHJpdmVyIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBob3cgdGhpcyBgbWJveC5oYCBtYWNybywgYE0oLi4uKWAsIGNyZWF0ZXMgdGhlIGhhbmRsZXIgYXJyYXkuIFRoZSBtZXNzYWdlIGl0c2VsZiBjb21lcyBmcm9tIGVpdGhlciB0aGUgUEYgZHJpdmVyIChgb3R4Ml9wZi5jYCkgb3IgdGhlIFZGIGRyaXZlciAoYG90eDJfdmYuY2ApLiBTcGVjaWZpY2FsbHksIHRoZSBQRiBkcml2ZXIgaXMgbmFtZWQgYE9DVEVPTlRYMl9QRmAsIGFuZCB0aGUgVkYgZHJpdmVyIGBPQ1RFT05UWDJfVkZgLiBUaGUgcXVlc3Rpb24gaXMsIGNhbiBzeXprYWxsZXIgYWN0dWFsbHkgKmZ1enoqIHRoaXMgZnVuY3Rpb25hbGl0eT8KClRoZSBvYnZpb3VzIHJvdXRlIHdvdWxkIGJlIHRvIGxldmVyYWdlIHN5emthbGxlciYjMzk7cyBhYmlsaXR5IHRvIG1hbmlwdWxhdGUgdGhlIG5ldHdvcmsgaW50ZXJmYWNlJiMzOTtzIFJYIG1vZGUuIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgdHJpZ2dlcmluZyBgb3R4Ml9kb19zZXRfcnhfbW9kZWAgYnkgc2VuZGluZyBjb21tYW5kcyBsaWtlIGBTSU9DU0lGRkxBR1NgIG9yIGBTSU9DQURETVVMVElgIHRvIHNldCB0aGluZ3MgbGlrZSBwcm9taXNjdW91cyBtb2RlIG9yIHRoZSBtdWx0aWNhc3QgbGlzdC4gSXQgc291bmRzIHN0cmFpZ2h0Zm9yd2FyZCwgcmlnaHQ/CgpCdXQgYSBjcnVjaWFsIGh1cmRsZTogZG9lcyBzeXprYWxsZXIgZXZlbiAqa25vdyogdGhpcyBzcGVjaWZpYyBoYXJkd2FyZT8gVHlwaWNhbGx5LCBzeXprYWxsZXIgZG9lc24mIzM5O3QgZGlyZWN0bHkgcHJvYmUgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlcnMgdW5sZXNzIGl0JiMzOTtzIGEgZ2VuZXJpYyBkZXZpY2UsIG9yIHRoZXJlJiMzOTtzIHNvbWUga2luZCBvZiB2aXJ0dWFsIGRldmljZSBpbnZvbHZlZC4gSSBuZWVkIHRvIHRoaW5rIGFib3V0IHRoYXQuCgpIYW5nIG9uLi4uIFN5emthbGxlciBoYXMgYHZoY2lgISBJdCBjYW4gaW5qZWN0IGFyYml0cmFyeSBQQ0kgZGV2aWNlcy4gSWYgSSBjYW4gZW5hYmxlIGB2aGNpYCwgSSAqbWlnaHQqIGJlIGFibGUgdG8gZW11bGF0ZSB0aGUgUENJIGRldmljZSBzdWZmaWNpZW50bHkgdG8gYWxsb3cgc3l6a2FsbGVyIHRvIHByb2JlIGFuZCBpbnRlcmFjdCB3aXRoIHRoZSBkcml2ZXIuIFRoYXQmIzM5O3MgdGhlIGtleS4KCk5vdywgSSYjMzk7dmUgZ290IHRvIGNvbmZpcm0gaWYgYE9DVEVPTlRYMl9BRmAgaXMgYWN0dWFsbHkgYSBQQ0kgZHJpdmVyLiBJZiBpdCBpcywgYHZoY2lgIGJlY29tZXMgYSB2ZXJ5IGludGVyZXN0aW5nIHBvc3NpYmlsaXR5IGZvciBmdXp6aW5nIHRoaXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDExOjE0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BjaV9kcml2ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz0zNzMzPXN0YXRpYyB2b2lkIHJ2dV9zaHV0ZG93bihzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zNzQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6Mzc0MzpzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgcnZ1X2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM3NDQtXHQubmFtZSA9IERSVl9OQU1FLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3NzQ2CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMjg2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgU3l6a2FsbGVyIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIHdlJiMzOTtyZSBsb29raW5nIGF0IGEgcG90ZW50aWFsIGZ1enppbmcgdGFyZ2V0IOKAkyBhIFBDSSBkcml2ZXIsIHNwZWNpZmljYWxseS4gVGhlIGluaXRpYWwgdGhvdWdodCBpcywgY2FuIHN5emthbGxlciBiZSB1c2VkIHRvIHByb2JlIHRoaXMgZHJpdmVyPyBUaGUga2V5IGlzIHRoYXQgc3l6a2FsbGVyICpjYW4qIGVtdWxhdGUgYSBQQ0kgZGV2aWNlLCB3aGljaCBsZWFkcyBtZSB0byB0aGUgYHJ2dV9kcml2ZXJgLiBIb3dldmVyLCB0aGUgY29kZSBpbiBxdWVzdGlvbiwgYHJ2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlYCwgcmVzaWRlcyB3aXRoaW4gYSBtYWlsYm94IGhhbmRsZXIgaW5zaWRlIHRoZSBBRiBkcml2ZXIuIFRoaXMgQUYgZHJpdmVyLCBhcyBJIHJlY2FsbCwgYWN0cyBhcyBhIG1lc3NhZ2UgcmVsYXksIHJlY2VpdmluZyBjb21tdW5pY2F0aW9ucyBmcm9tIHRoZSBQRiBvciBWRiBkcml2ZXJzLgoKU28sIHRoZSBjaGFsbGVuZ2UgZm9yIHN5emthbGxlciBiZWNvbWVzIGNsZWFyOiBpdCBuZWVkcyB0byBlZmZlY3RpdmVseSBlbXVsYXRlIHRoZSBQRi9WRiBzZW5kaW5nIGEgdmFsaWQgbWVzc2FnZSB0byB0aGUgQUYgZHJpdmVyIGluIG9yZGVyIHRvIGV2ZW4gKnJlYWNoKiB0aGUgdnVsbmVyYWJsZSBjb2RlLiBUaGF0IGltcGxpZXMgdGhlIEFGIGRyaXZlciByZWNlaXZlcyBtZXNzYWdlcyB2aWEgdGhlIGhhcmR3YXJlIG1haWxib3gsIHdoaWNoIGludm9sdmVzIHNoYXJlZCBtZW1vcnkgYW5kIGludGVycnVwdHMuIFRodXMsIHRvIGV4cGxvaXQgdGhpcywgc3l6a2FsbGVyLCBieSBlbXVsYXRpbmcgdGhlIFBDSSBkZXZpY2UsIG11c3Qgbm90IG9ubHkgZGVhbCB3aXRoIHRoZSBNTUlPIGJ1dCBhbHNvIHByZWNpc2VseSBlbXVsYXRlIHRoZSBtYWlsYm94IG1lbW9yeSBhbmQgdHJpZ2dlciB0aGUgYXBwcm9wcmlhdGUgbWFpbGJveCBpbnRlcnJ1cHQgdG8gc2lnbmFsIHRoZSBBRiBkcml2ZXIuCgpCdXQgaGVyZSYjMzk7cyB0aGUgcnViLiBTeXprYWxsZXImIzM5O3MgYHZoY2lgICpjYW4qIGluamVjdCBQQ0kgZGV2aWNlcywgYnV0IGl0JiMzOTtzIG5vdCBkZXNpZ25lZCB0byBiZSBoYXJkd2FyZS1zcGVjaWZpYy4gSXQgZG9lc24mIzM5O3QgaW5oZXJlbnRseSB1bmRlcnN0YW5kIHRoZSBwYXJ0aWN1bGFyIHNlbWFudGljcyBvZiB0aGUgT2N0ZW9uVFgyIG1haWxib3ggdW5sZXNzIHNvbWVvbmUgZXhwbGljaXRseSBtb2RlbHMgaXQgaW4gc3l6a2FsbGVyLgoKVGhlbiB0aGUgbmV4dCB0aG91Z2h0IGlzOiBzeXprYWxsZXIgdXN1YWxseSBkb2VzbiYjMzk7dCBtb2RlbCBldmVyeSBzcGVjaWZpYyBoYXJkd2FyZSBkZXRhaWwuIEl0JiMzOTtzIG1vcmUgb2YgYSBnZW5lcmFsIGZ1enppbmcgZnJhbWV3b3JrLCBwcm92aWRpbmcgcmFuZG9tIGRhdGEgZm9yIG1lbW9yeS1tYXBwZWQgSS9PIChNTUlPKSByZWFkcyBhbmQgZ2VuZXJhdGluZyBpbnRlcnJ1cHRzLgoKSWYgc3l6a2FsbGVyIHNpbXBseSBwcm92aWRlcyByYW5kb20gZGF0YSB0byB0aGUgbWFpbGJveCBtZW1vcnkgYW5kIHRoZW4gdHJpZ2dlcnMgdGhlIGludGVycnVwdCwgdGhlcmUmIzM5O3MgYSBnb29kIGNoYW5jZSB0aGF0IHRoZSBBRiBkcml2ZXIgd2lsbCwgYXQgbGVhc3QsICphdHRlbXB0KiB0byBpbnRlcnByZXQgdGhhdCByYW5kb20gZGF0YSBhcyBhIG1haWxib3ggbWVzc2FnZS4gVGhlIEFGIGRyaXZlciBjb3VsZCBjYWxsIGBydnVfbWJveF9oYW5kbGVyX25peF9zZXRfcnhfbW9kZWAsIHdoaWNoIGNvdWxkIHJldmVhbCBhIHZ1bG5lcmFiaWxpdHkuCgpUaGVyZWZvcmUsIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBhbmFseXplIHRoZSBpbnRlcnJ1cHQgaGFuZGxpbmcgd2l0aGluIGBydnUuY2AgdG8gc2VlIGhvdyB0aGF0IG1haWxib3ggaW50ZXJydXB0IGlzIHByb2Nlc3NlZC4gVGhhdCBzaG91bGQgb2ZmZXIgY2x1ZXMgYXMgdG8gaG93IHRvIGJlc3QgdHJpZ2dlciBpdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWJveF9oYW5kbGVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxMDMwIGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9uaXguYy0xMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25peC5jOjE0OmludCBydnVfbWJveF9oYW5kbGVyX25peF9jbjIwa19hcV9lbnEoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbml4LmMtMTUtXHRcdFx0XHQgICAgICBzdHJ1Y3Qgbml4X2NuMjBrX2FxX2VucV9yZXEgKnJlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGEuYy0xMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYS5jOjE0OmludCBydnVfbWJveF9oYW5kbGVyX25wYV9jbjIwa19hcV9lbnEoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBhLmMtMTUtXHRcdFx0XHQgICAgICBzdHJ1Y3QgbnBhX2NuMjBrX2FxX2VucV9yZXEgKnJlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGEuYy0yMC19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGEuYzoyMTpFWFBPUlRfU1lNQk9MKHJ2dV9tYm94X2hhbmRsZXJfbnBhX2NuMjBrX2FxX2VucSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM9MTIzNj1pbnQgbnBjX2NuMjBrX3JlYWRfbWNhbV9lbnRyeShzdHJ1Y3QgcnZ1ICpydnUsIGludCBibGthZGRyLCB1MTYgaW5kZXgsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtMTM2Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jOjEzNjM6aW50IHJ2dV9tYm94X2hhbmRsZXJfbnBjX2NuMjBrX21jYW1fd3JpdGVfZW50cnkoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtMTM2NC1cdFx0XHRcdFx0XHRzdHJ1Y3QgbnBjX2NuMjBrX21jYW1fd3JpdGVfZW50cnlfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtMTQwNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jOjE0MDc6aW50IHJ2dV9tYm94X2hhbmRsZXJfbnBjX2NuMjBrX21jYW1fcmVhZF9lbnRyeShzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy0xNDA4LVx0XHRcdFx0XHQgICAgICAgc3RydWN0IG5wY19tY2FtX3JlYWRfZW50cnlfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtMTQzMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jOjE0MzQ6aW50IHJ2dV9tYm94X2hhbmRsZXJfbnBjX2NuMjBrX21jYW1fYWxsb2NfYW5kX3dyaXRlX2VudHJ5KHN0cnVjdCBydnUgKnJ2dSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jLTE0MzUtXHRcdFx0XHRcdFx0XHQgIHN0cnVjdCBucGNfY24yMGtfbWNhbV9hbGxvY19hbmRfd3JpdGVfZW50cnlfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtMTQ2Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jOjE0NjM6XHRyYyA9IHJ2dV9tYm94X2hhbmRsZXJfbnBjX21jYW1fYWxsb2NfZW50cnkocnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtMTQ2NC1cdFx0XHRcdFx0XHQgICBcdTAwMjZlbnRyeV9yZXEsIFx1MDAyNmVudHJ5X3JzcCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtMTQ4OS1cdFx0ZnJlZV9yZXEuZW50cnkgPSBlbnRyeV9yc3AuZW50cnk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYzoxNDkwOlx0XHRlcnIgPSBydnVfbWJveF9oYW5kbGVyX25wY19tY2FtX2ZyZWVfZW50cnkocnZ1LCBcdTAwMjZmcmVlX3JlcSwgXHUwMDI2ZnJlZV9yc3ApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtMTQ5MS1cdFx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYz0xNTAyPXN0YXRpYyBpbnQgcnZ1X25wY19nZXRfYmFzZV9zdGVlcl9ydWxlX3R5cGUoc3RydWN0IHJ2dSAqcnZ1LCB1MTYgcGNpZnVuYylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy0xNTA5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM6MTUxMDppbnQgcnZ1X21ib3hfaGFuZGxlcl9ucGNfY24yMGtfcmVhZF9iYXNlX3N0ZWVyX3J1bGUoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtMTUxMS1cdFx0XHRcdFx0XHQgICAgc3RydWN0IG1zZ19yZXEgKnJlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYz0zMzU0PWludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM6MzM1NTpydnVfbWJveF9oYW5kbGVyX25wY19jbjIwa19nZXRfZmNudChzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy0zMzU2LVx0XHRcdFx0ICAgIHN0cnVjdCBtc2dfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM9MzM2ND1pbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jOjMzNjU6cnZ1X21ib3hfaGFuZGxlcl9ucGNfY24yMGtfZ2V0X2tleF9jZmcoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtMzM2Ni1cdFx0XHRcdCAgICAgICBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jPTQwNDU9aW50IG5wY19jbjIwa19kZWZyYWcoc3RydWN0IHJ2dSAqcnZ1KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jLTQxNTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYzo0MTU1OmludCBydnVfbWJveF9oYW5kbGVyX25wY19kZWZyYWcoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtNDE1Ni1cdFx0XHRcdHN0cnVjdCBtc2dfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM9NDE2MT1pbnQgbnBjX2NuMjBrX2RmdF9ydWxlc19pZHhfZ2V0KHN0cnVjdCBydnUgKnJ2dSwgdTE2IHBjaWZ1bmMsIHUxNiAqYmNhc3QsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtNDIzOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jOjQyNDA6aW50IHJ2dV9tYm94X2hhbmRsZXJfbnBjX2dldF9wZmxfaW5mbyhzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy00MjQxLVx0XHRcdFx0ICAgICAgc3RydWN0IG5wY19nZXRfcGZsX2luZm9fcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtNDI1Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jOjQyNTM6aW50IHJ2dV9tYm94X2hhbmRsZXJfbnBjX2dldF9udW1fa3dzKHN0cnVjdCBydnUgKnJ2dSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jLTQyNTQtXHRcdFx0XHQgICAgIHN0cnVjdCBucGNfZ2V0X251bV9rd3NfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtNDI5Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jOjQyOTg6aW50IHJ2dV9tYm94X2hhbmRsZXJfbnBjX2dldF9kZnRfcmxfaWR4cyhzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy00Mjk5LVx0XHRcdFx0XHQgc3RydWN0IG5wY19nZXRfZGZ0X3JsX2lkeHNfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM9NDQzMz1pbnQgbnBjX2NuMjBrX2RmdF9ydWxlc19hbGxvYyhzdHJ1Y3QgcnZ1ICpydnUsIHUxNiBwY2lmdW5jKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jLTQ1MDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYzo0NTEwOlx0cmV0ID0gcnZ1X21ib3hfaGFuZGxlcl9ucGNfbWNhbV9hbGxvY19lbnRyeShydnUsIFx1MDAyNnJlcSwgXHUwMDI2cnNwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jLTQ1MTEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtNDU0Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jOjQ1NDg6XHRyZXQgPSBydnVfbWJveF9oYW5kbGVyX25wY19tY2FtX2FsbG9jX2VudHJ5KHJ2dSwgXHUwMDI2cmVxLCBcdTAwMjZyc3ApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtNDU0OS1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy00NjIxLVx0ZnJlZV9yZXEuYWxsID0gMTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jOjQ2MjI6XHRyZXQgPSBydnVfbWJveF9oYW5kbGVyX25wY19tY2FtX2ZyZWVfZW50cnkocnZ1LCBcdTAwMjZmcmVlX3JlcSwgXHUwMDI2ZnJlZV9yc3ApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtNDYyMy1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jPTM2PXZvaWQgcnZ1X21jc19wdHBfY2ZnKHN0cnVjdCBydnUgKnJ2dSwgdTggcnBtX2lkLCB1OCBsbWFjX2lkLCBib29sIGVuYSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NzI6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX3NldF9sbWFjX21vZGUoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTczLVx0XHRcdFx0ICAgICAgIHN0cnVjdCBtY3Nfc2V0X2xtYWNfbW9kZSAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYz0xNTM9c3RhdGljIHZvaWQgbWNzX2ludHJfaGFuZGxlcl90YXNrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMTc4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jOjE3OTppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3NfaW50cl9jZmcoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTE4MC1cdFx0XHRcdCAgc3RydWN0IG1jc19pbnRyX2NmZyAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0yMDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6MjA0OmludCBydnVfbWJveF9oYW5kbGVyX21jc19nZXRfaHdfaW5mbyhzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMjA1LVx0XHRcdFx0ICAgICBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0yMjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6MjIzOmludCBydnVfbWJveF9oYW5kbGVyX21jc19wb3J0X3Jlc2V0KHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1jc19wb3J0X3Jlc2V0X3JlcSAqcmVxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTIyNC1cdFx0XHRcdCAgICBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0yMzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6MjM4OmludCBydnVfbWJveF9oYW5kbGVyX21jc19jbGVhcl9zdGF0cyhzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMjM5LVx0XHRcdFx0ICAgICBzdHJ1Y3QgbWNzX2NsZWFyX3N0YXRzICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTI1OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzoyNjA6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX2dldF9mbG93aWRfc3RhdHMoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTI2MS1cdFx0XHRcdFx0ICBzdHJ1Y3QgbWNzX3N0YXRzX3JlcSAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0yOTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6MjkxOmludCBydnVfbWJveF9oYW5kbGVyX21jc19nZXRfc2VjeV9zdGF0cyhzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMjkyLVx0XHRcdFx0XHRzdHJ1Y3QgbWNzX3N0YXRzX3JlcSAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0zMTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6MzE5OmludCBydnVfbWJveF9oYW5kbGVyX21jc19nZXRfc2Nfc3RhdHMoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTMyMC1cdFx0XHRcdCAgICAgIHN0cnVjdCBtY3Nfc3RhdHNfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTM0Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzozNDM6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX2dldF9zYV9zdGF0cyhzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMzQ0LVx0XHRcdFx0ICAgICAgc3RydWN0IG1jc19zdGF0c19yZXEgKnJlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMzY2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jOjM2NzppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3NfZ2V0X3BvcnRfc3RhdHMoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTM2OC1cdFx0XHRcdFx0c3RydWN0IG1jc19zdGF0c19yZXEgKnJlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMzkwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jOjM5MTppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3Nfc2V0X2FjdGl2ZV9sbWFjKHN0cnVjdCBydnUgKnJ2dSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0zOTItXHRcdFx0XHRcdCBzdHJ1Y3QgbWNzX3NldF9hY3RpdmVfbG1hYyAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy00MDgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NDA5OmludCBydnVfbWJveF9oYW5kbGVyX21jc19wb3J0X2NmZ19zZXQoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbWNzX3BvcnRfY2ZnX3NldF9yZXEgKnJlcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy00MTAtXHRcdFx0XHQgICAgICBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy00MjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NDI3OmludCBydnVfbWJveF9oYW5kbGVyX21jc19wb3J0X2NmZ19nZXQoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbWNzX3BvcnRfY2ZnX2dldF9yZXEgKnJlcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy00MjgtXHRcdFx0XHQgICAgICBzdHJ1Y3QgbWNzX3BvcnRfY2ZnX2dldF9yc3AgKnJzcClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNDQ0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jOjQ0NTppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3NfY3VzdG9tX3RhZ19jZmdfZ2V0KHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1jc19jdXN0b21fdGFnX2NmZ19nZXRfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNDQ2LVx0XHRcdFx0XHQgICAgc3RydWN0IG1jc19jdXN0b21fdGFnX2NmZ19nZXRfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jPTQ2MD1pbnQgcnZ1X21jc19mbHJfaGFuZGxlcihzdHJ1Y3QgcnZ1ICpydnUsIHUxNiBwY2lmdW5jKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy00ODAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NDgxOmludCBydnVfbWJveF9oYW5kbGVyX21jc19mbG93aWRfZW5hX2VudHJ5KHN0cnVjdCBydnUgKnJ2dSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy00ODItXHRcdFx0XHRcdCAgc3RydWN0IG1jc19mbG93aWRfZW5hX2Rpc19lbnRyeSAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy00OTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NDk1OmludCBydnVfbWJveF9oYW5kbGVyX21jc19wbl90YWJsZV93cml0ZShzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNDk2LVx0XHRcdFx0XHRzdHJ1Y3QgbWNzX3BuX3RhYmxlX3dyaXRlX3JlcSAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy01MDgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NTA5OmludCBydnVfbWJveF9oYW5kbGVyX21jc19zZXRfcG5fdGhyZXNob2xkKHN0cnVjdCBydnUgKnJ2dSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy01MTAtXHRcdFx0XHRcdCAgc3RydWN0IG1jc19zZXRfcG5fdGhyZXNob2xkICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTUyNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzo1MjU6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX3J4X3NjX3NhX21hcF93cml0ZShzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNTI2LVx0XHRcdFx0XHQgICAgc3RydWN0IG1jc19yeF9zY19zYV9tYXAgKnJlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNTM4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jOjUzOTppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3NfdHhfc2Nfc2FfbWFwX3dyaXRlKHN0cnVjdCBydnUgKnJ2dSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy01NDAtXHRcdFx0XHRcdCAgICBzdHJ1Y3QgbWNzX3R4X3NjX3NhX21hcCAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy01NTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NTU1OmludCBydnVfbWJveF9oYW5kbGVyX21jc19zYV9wbGN5X3dyaXRlKHN0cnVjdCBydnUgKnJ2dSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy01NTYtXHRcdFx0XHQgICAgICAgc3RydWN0IG1jc19zYV9wbGN5X3dyaXRlX3JlcSAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy01NzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NTczOmludCBydnVfbWJveF9oYW5kbGVyX21jc19yeF9zY19jYW1fd3JpdGUoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTU3NC1cdFx0XHRcdFx0IHN0cnVjdCBtY3Nfcnhfc2NfY2FtX3dyaXRlX3JlcSAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy01ODYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NTg3OmludCBydnVfbWJveF9oYW5kbGVyX21jc19zZWN5X3BsY3lfd3JpdGUoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTU4OC1cdFx0XHRcdFx0IHN0cnVjdCBtY3Nfc2VjeV9wbGN5X3dyaXRlX3JlcSAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy02MDEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NjAyOmludCBydnVfbWJveF9oYW5kbGVyX21jc19mbG93aWRfZW50cnlfd3JpdGUoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTYwMy1cdFx0XHRcdFx0ICAgIHN0cnVjdCBtY3NfZmxvd2lkX2VudHJ5X3dyaXRlX3JlcSAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy02MjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NjI5OmludCBydnVfbWJveF9oYW5kbGVyX21jc19mcmVlX3Jlc291cmNlcyhzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNjMwLVx0XHRcdFx0XHRzdHJ1Y3QgbWNzX2ZyZWVfcnNyY19yZXEgKnJlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNjc4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jOjY3OTppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3NfYWxsb2NfcmVzb3VyY2VzKHN0cnVjdCBydnUgKnJ2dSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy02ODAtXHRcdFx0XHRcdCBzdHJ1Y3QgbWNzX2FsbG9jX3JzcmNfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTc2MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzo3NjE6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX2FsbG9jX2N0cmxfcGt0X3J1bGUoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTc2Mi1cdFx0XHRcdFx0ICAgICBzdHJ1Y3QgbWNzX2FsbG9jX2N0cmxfcGt0X3J1bGVfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTgxNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzo4MTg6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX2ZyZWVfY3RybF9wa3RfcnVsZShzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtODE5LVx0XHRcdFx0XHQgICAgc3RydWN0IG1jc19mcmVlX2N0cmxfcGt0X3J1bGVfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTgzOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzo4Mzk6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX2N0cmxfcGt0X3J1bGVfd3JpdGUoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTg0MC1cdFx0XHRcdFx0ICAgICBzdHJ1Y3QgbWNzX2N0cmxfcGt0X3J1bGVfd3JpdGVfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM9NjEyPXN0cnVjdCBwY2lfZHJpdmVyIHB0cF9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNjE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NjE5OmludCBydnVfbWJveF9oYW5kbGVyX3B0cF9vcChzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBwdHBfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy02MjAtXHRcdFx0ICAgIHN0cnVjdCBwdHBfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNjYzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NjY0OmludCBydnVfbWJveF9oYW5kbGVyX3B0cF9nZXRfY2FwKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTY2NS1cdFx0XHRcdCBzdHJ1Y3QgcHRwX2dldF9jYXBfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MzY9c3RhdGljIGludCBydnVfbWJveF9pbml0KHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1ib3hfd3FfaW5mbyAqbXcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zNy1cdFx0XHQgaW50IHR5cGUsIGludCBudW0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzozODpcdFx0XHQgdm9pZCAobWJveF9oYW5kbGVyKShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKiksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zOS1cdFx0XHQgdm9pZCAobWJveF91cF9oYW5kbGVyKShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKikpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTEyMzY9aW50IHJ2dV9hcV9hbGxvYyhzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBhZG1pbl9xdWV1ZSAqKmFkX3F1ZXVlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTEyNjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoxMjY1OmludCBydnVfbWJveF9oYW5kbGVyX3JlYWR5KHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTEyNjYtXHRcdFx0ICAgc3RydWN0IHJlYWR5X21zZ19yc3AgKnJzcClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz0xNDU1PXN0YXRpYyBpbnQgcnZ1X2RldGFjaF9yc3JjcyhzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCByc3JjX2RldGFjaCAqZGV0YWNoLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTE1MDctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoxNTA4OmludCBydnVfbWJveF9oYW5kbGVyX2RldGFjaF9yZXNvdXJjZXMoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMTUwOS1cdFx0XHRcdCAgICAgIHN0cnVjdCByc3JjX2RldGFjaCAqZGV0YWNoLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTE3MzY9c3RhdGljIGJvb2wgcnZ1X2F0dGFjaF9mcm9tX3NhbWVfYmxvY2soc3RydWN0IHJ2dSAqcnZ1LCBpbnQgYmxrdHlwZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0xNzUxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MTc1MjppbnQgcnZ1X21ib3hfaGFuZGxlcl9hdHRhY2hfcmVzb3VyY2VzKHN0cnVjdCBydnUgKnJ2dSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTE3NTMtXHRcdFx0XHQgICAgICBzdHJ1Y3QgcnNyY19hdHRhY2ggKmF0dGFjaCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz0xOTA2PXN0YXRpYyB2b2lkIHJ2dV9jbGVhcl9tc2l4X29mZnNldChzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBydnVfcGZ2ZiAqcGZ2Zixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0xOTI5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MTkzMDppbnQgcnZ1X21ib3hfaGFuZGxlcl9tc2l4X29mZnNldChzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0xOTMxLVx0XHRcdFx0IHN0cnVjdCBtc2l4X29mZnNldF9yc3AgKnJzcClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0xOTkyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MTk5MzppbnQgcnZ1X21ib3hfaGFuZGxlcl9mcmVlX3JzcmNfY250KHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTE5OTQtXHRcdFx0XHQgICBzdHJ1Y3QgZnJlZV9yc3Jjc19yc3AgKnJzcClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yMDg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MjA4NjppbnQgcnZ1X21ib3hfaGFuZGxlcl92Zl9mbHIoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjA4Ny1cdFx0XHQgICAgc3RydWN0IG1zZ19yc3AgKnJzcClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz0yMTA2PWludCBydnVfbmRjX3N5bmMoc3RydWN0IHJ2dSAqcnZ1LCBpbnQgbGZibGthZGRyLCBpbnQgbGZpZHgsIHU2NCBsZm9mZnNldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yMTEyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MjExMzppbnQgcnZ1X21ib3hfaGFuZGxlcl9nZXRfaHdfY2FwKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTIxMTQtXHRcdFx0XHRzdHJ1Y3QgZ2V0X2h3X2NhcF9yc3AgKnJzcClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yMTI3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MjEyODppbnQgcnZ1X21ib3hfaGFuZGxlcl9zZXRfdmZfcGVybShzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBzZXRfdmZfcGVybSAqcmVxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjEyOS1cdFx0XHRcdCBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTIxNjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyMTcwOmludCBydnVfbWJveF9oYW5kbGVyX25kY19zeW5jX29wKHN0cnVjdCBydnUgKnJ2dSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTIxNzEtXHRcdFx0XHQgc3RydWN0IG5kY19zeW5jX29wICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MjI1Nj1zdGF0aWMgaW50IHJ2dV9wcm9jZXNzX21ib3hfbXNnKHN0cnVjdCBvdHgyX21ib3ggKm1ib3gsIGludCBkZXZpZCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yMjg3LVx0XHRcdFx0XHRcdFx0XHRcdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyMjg4Olx0XHRlcnIgPSBydnVfbWJveF9oYW5kbGVyXyAjIyBfZm5fbmFtZShydnUsXHRcdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yMjg5LVx0XHRcdFx0XHRcdCAgICAoc3RydWN0IF9yZXFfdHlwZSAqKXJlcSwgXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz0yMjk3PU1CT1hfTUVTU0FHRVNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yMzA2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MjMwNzpzdGF0aWMgdm9pZCBfX3J2dV9tYm94X2hhbmRsZXIoc3RydWN0IHJ2dV93b3JrICptd29yaywgaW50IHR5cGUsIGJvb2wgcG9sbClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTIzMDgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTIzOTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyMzk4OnN0YXRpYyBpbmxpbmUgdm9pZCBydnVfYWZwZl9tYm94X2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjM5OS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjQwMy1cdG11dGV4X2xvY2soXHUwMDI2cnZ1LVx1MDAzZW1ib3hfbG9jayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyNDA0Olx0X19ydnVfbWJveF9oYW5kbGVyKG13b3JrLCBUWVBFX0FGUEYsIHRydWUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjQwNS1cdG11dGV4X3VubG9jayhcdTAwMjZydnUtXHUwMDNlbWJveF9sb2NrKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNDA3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MjQwODpzdGF0aWMgaW5saW5lIHZvaWQgcnZ1X2FmdmZfbWJveF9oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI0MDkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI0MTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyNDEyOlx0X19ydnVfbWJveF9oYW5kbGVyKG13b3JrLCBUWVBFX0FGVkYsIGZhbHNlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI0MTMtfVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTI1NzA9c3RhdGljIGludCBydnVfbWJveF9pbml0KHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1ib3hfd3FfaW5mbyAqbXcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNTcxLVx0XHRcdCBpbnQgdHlwZSwgaW50IG51bSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjI1NzI6XHRcdFx0IHZvaWQgKG1ib3hfaGFuZGxlcikoc3RydWN0IHdvcmtfc3RydWN0ICopLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjU3My1cdFx0XHQgdm9pZCAobWJveF91cF9oYW5kbGVyKShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKikpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjY4NC1cdFx0bXdvcmstXHUwMDNlcnZ1ID0gcnZ1O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MjY4NTpcdFx0SU5JVF9XT1JLKFx1MDAyNm13b3JrLVx1MDAzZXdvcmssIG1ib3hfaGFuZGxlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNjg2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTI3MzQ9dm9pZCBydnVfcXVldWVfd29yayhzdHJ1Y3QgbWJveF93cV9pbmZvICptdywgaW50IGZpcnN0LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI3NTMtXHRcdCAqIHdoZW4gdGhlIGludGVycnVwdCBoYW5kbGVyIGlzIGNhbGxlZC5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjI3NTQ6XHRcdCAqIHBmLVx1MDAzZW1ib3gubnVtX21zZ3MgaG9sZHMgdGhlIGRhdGEgZm9yIHVzZSBpbiBwZmFmX21ib3hfaGFuZGxlclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjc1NS1cdFx0ICogcGZcdTAwM2VtYm94LnVwX251bV9tc2dzIGhvbGRzIHRoZSBkYXRhIGZvciB1c2UgaW5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz0zNDY2PXN0YXRpYyBpbnQgcnZ1X2VuYWJsZV9zcmlvdihzdHJ1Y3QgcnZ1ICpydnUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzUwOS1cdGVyciA9IHJ2dV9tYm94X2luaXQocnZ1LCBcdTAwMjZydnUtXHUwMDNlYWZ2Zl93cV9pbmZvLCBUWVBFX0FGVkYsIHZmcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjM1MTA6XHRcdFx0ICAgIHJ2dV9hZnZmX21ib3hfaGFuZGxlciwgcnZ1X2FmdmZfbWJveF91cF9oYW5kbGVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM1MTEtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTM1NDc9c3RhdGljIGludCBydnVfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zNjI3LVx0ZXJyID0gcnZ1X21ib3hfaW5pdChydnUsIFx1MDAyNnJ2dS1cdTAwM2VhZnBmX3dxX2luZm8sIFRZUEVfQUZQRixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjM2Mjg6XHRcdFx0ICAgIHJ2dS1cdTAwM2Vody1cdTAwM2V0b3RhbF9wZnMsIHJ2dV9hZnBmX21ib3hfaGFuZGxlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM2MjktXHRcdFx0ICAgIHJ2dV9hZnBmX21ib3hfdXBfaGFuZGxlcik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1Lmg9OTgzPXN0YXRpYyBpbmxpbmUgYm9vbCBpc19jZ3hfdmYoc3RydWN0IHJ2dSAqcnZ1LCB1MTYgcGNpZnVuYylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuaC05ODktI2RlZmluZSBNKF9uYW1lLCBfaWQsIGZuX25hbWUsIHJlcSwgcnNwKVx0XHRcdFx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5oOjk5MDppbnQgcnZ1X21ib3hfaGFuZGxlcl8gIyMgZm5fbmFtZShzdHJ1Y3QgcnZ1ICosIHN0cnVjdCByZXEgKiwgc3RydWN0IHJzcCAqKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5oLTk5MS1NQk9YX01FU1NBR0VTXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jPTUyNz12b2lkIHJ2dV9jZ3hfZGlzYWJsZV9kbWFjX2VudHJpZXMoc3RydWN0IHJ2dSAqcnZ1LCB1MTYgcGNpZnVuYylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtNTYyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjU2MzppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfc3RhcnRfcnh0eChzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtNTY0LVx0XHRcdFx0ICAgIHN0cnVjdCBtc2dfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTU2OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo1NzA6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X3N0b3Bfcnh0eChzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtNTcxLVx0XHRcdFx0ICAgc3RydWN0IG1zZ19yc3AgKnJzcClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM9NTc3PXN0YXRpYyBpbnQgcnZ1X2xtYWNfZ2V0X3N0YXRzKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtNjIwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjYyMTppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfc3RhdHMoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTYyMi1cdFx0XHQgICAgICAgc3RydWN0IGNneF9zdGF0c19yc3AgKnJzcClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtNjI2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjYyNzppbnQgcnZ1X21ib3hfaGFuZGxlcl9ycG1fc3RhdHMoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTYyOC1cdFx0XHQgICAgICAgc3RydWN0IHJwbV9zdGF0c19yc3AgKnJzcClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtNjMyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjYzMzppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfc3RhdHNfcnN0KHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy02MzQtXHRcdFx0XHQgICBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy02NjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6NjYyOmludCBydnVfbWJveF9oYW5kbGVyX2NneF9mZWNfc3RhdHMoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTY2My1cdFx0XHRcdCAgIHN0cnVjdCBtc2dfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTY3OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo2ODA6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X21hY19hZGRyX3NldChzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtNjgxLVx0XHRcdFx0ICAgICAgc3RydWN0IGNneF9tYWNfYWRkcl9zZXRfb3JfZ2V0ICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTcwMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo3MDM6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X21hY19hZGRyX2FkZChzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtNzA0LVx0XHRcdFx0ICAgICAgc3RydWN0IGNneF9tYWNfYWRkcl9hZGRfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTcyNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo3Mjc6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X21hY19hZGRyX2RlbChzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtNzI4LVx0XHRcdFx0ICAgICAgc3RydWN0IGNneF9tYWNfYWRkcl9kZWxfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTc0My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo3NDQ6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X21hY19tYXhfZW50cmllc19nZXQoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTc0NS1cdFx0XHRcdFx0ICAgICBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy03NzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6NzcxOmludCBydnVfbWJveF9oYW5kbGVyX2NneF9tYWNfYWRkcl9nZXQoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTc3Mi1cdFx0XHRcdCAgICAgIHN0cnVjdCBjZ3hfbWFjX2FkZHJfc2V0X29yX2dldCAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy03ODMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6Nzg0OmludCBydnVfbWJveF9oYW5kbGVyX2NneF9wcm9taXNjX2VuYWJsZShzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtNzg1LVx0XHRcdFx0XHRzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy04MDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6ODA0OmludCBydnVfbWJveF9oYW5kbGVyX2NneF9wcm9taXNjX2Rpc2FibGUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTgwNS1cdFx0XHRcdFx0IHN0cnVjdCBtc2dfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jPTgyMz1zdGF0aWMgaW50IHJ2dV9jZ3hfcHRwX3J4X2NmZyhzdHJ1Y3QgcnZ1ICpydnUsIHUxNiBwY2lmdW5jLCBib29sIGVuYWJsZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtODU4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjg1OTppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfcHRwX3J4X2VuYWJsZShzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtODYwLVx0XHRcdFx0ICAgICAgIHN0cnVjdCBtc2dfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTg2Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo4Njg6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X3B0cF9yeF9kaXNhYmxlKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy04NjktXHRcdFx0XHRcdHN0cnVjdCBtc2dfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jPTg3ND1zdGF0aWMgaW50IHJ2dV9jZ3hfY29uZmlnX2xpbmtldmVudHMoc3RydWN0IHJ2dSAqcnZ1LCB1MTYgcGNpZnVuYywgYm9vbCBlbilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtODk0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjg5NTppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfc3RhcnRfbGlua2V2ZW50cyhzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtODk2LVx0XHRcdFx0XHQgIHN0cnVjdCBtc2dfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTkwMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo5MDI6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X3N0b3BfbGlua2V2ZW50cyhzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtOTAzLVx0XHRcdFx0XHQgc3RydWN0IG1zZ19yc3AgKnJzcClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtOTA4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjkwOTppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfZ2V0X2xpbmtpbmZvKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy05MTAtXHRcdFx0XHQgICAgICBzdHJ1Y3QgY2d4X2xpbmtfaW5mb19tc2cgKnJzcClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtOTI2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjkyNzppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfZmVhdHVyZXNfZ2V0KHN0cnVjdCBydnUgKnJ2dSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy05MjgtXHRcdFx0XHQgICAgICBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYz05NzE9c3RhdGljIGludCBydnVfY2d4X2NvbmZpZ19pbnRsYmsoc3RydWN0IHJ2dSAqcnZ1LCB1MTYgcGNpZnVuYywgYm9vbCBlbilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtOTg2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjk4NzppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfaW50bGJrX2VuYWJsZShzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtOTg4LVx0XHRcdFx0ICAgICAgIHN0cnVjdCBtc2dfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTk5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo5OTQ6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X2ludGxia19kaXNhYmxlKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy05OTUtXHRcdFx0XHRcdHN0cnVjdCBtc2dfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jPTEwMDE9aW50IHJ2dV9jZ3hfY2ZnX3BhdXNlX2ZybShzdHJ1Y3QgcnZ1ICpydnUsIHUxNiBwY2lmdW5jLCB1OCB0eF9wYXVzZSwgdTggcnhfcGF1c2UpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTEwMzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6MTA0MDppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfY2ZnX3BhdXNlX2ZybShzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtMTA0MS1cdFx0XHRcdCAgICAgICBzdHJ1Y3QgY2d4X3BhdXNlX2ZybV9jZmcgKnJlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtMTA2Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzoxMDY4OmludCBydnVfbWJveF9oYW5kbGVyX2NneF9nZXRfcGh5X2ZlY19zdGF0cyhzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtMTA2OS1cdFx0XHRcdFx0ICAgc3RydWN0IG1zZ19yc3AgKnJzcClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM9MTEyNj1pbnQgcnZ1X2NneF9zdGFydF9zdG9wX2lvKHN0cnVjdCBydnUgKnJ2dSwgdTE2IHBjaWZ1bmMsIGJvb2wgc3RhcnQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTExNzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6MTE3MzppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfc2V0X2ZlY19wYXJhbShzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtMTE3NC1cdFx0XHRcdCAgICAgICBzdHJ1Y3QgZmVjX21vZGUgKnJlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtMTE4OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzoxMTkwOmludCBydnVfbWJveF9oYW5kbGVyX2NneF9nZXRfYXV4X2xpbmtfaW5mbyhzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtMTE5MS1cdFx0XHRcdFx0ICAgc3RydWN0IGNneF9md19kYXRhICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTEyMTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6MTIxNjppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfc2V0X2xpbmtfbW9kZShzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtMTIxNy1cdFx0XHRcdCAgICAgICBzdHJ1Y3QgY2d4X3NldF9saW5rX21vZGVfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTEyNDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6MTI0MzppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfbWFjX2FkZHJfcmVzZXQoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgY2d4X21hY19hZGRyX3Jlc2V0X3JlcSAqcmVxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTEyNDQtXHRcdFx0XHRcdHN0cnVjdCBtc2dfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTEyNTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6MTI2MDppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfbWFjX2FkZHJfdXBkYXRlKHN0cnVjdCBydnUgKnJ2dSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy0xMjYxLVx0XHRcdFx0XHQgc3RydWN0IGNneF9tYWNfYWRkcl91cGRhdGVfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jPTEyNzc9aW50IHJ2dV9jZ3hfcHJpb19mbG93X2N0cmxfY2ZnKHN0cnVjdCBydnUgKnJ2dSwgdTE2IHBjaWZ1bmMsIHU4IHR4X3BhdXNlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy0xMzEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjEzMTQ6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X3ByaW9fZmxvd19jdHJsX2NmZyhzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtMTMxNS1cdFx0XHRcdFx0ICAgIHN0cnVjdCBjZ3hfcGZjX2NmZyAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jbjEway5jPTExMz1zdGF0aWMgaW50IHJ2dV91cGRhdGVfbG10YWRkcihzdHJ1Y3QgcnZ1ICpydnUsIHUxNiBwY2lmdW5jLCB1NjQgbG10X2FkZHIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NuMTBrLmMtMTQ3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NuMTBrLmM6MTQ4OmludCBydnVfbWJveF9oYW5kbGVyX2xtdHN0X3RibF9zZXR1cChzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY24xMGsuYy0xNDktXHRcdFx0XHQgICAgIHN0cnVjdCBsbXRzdF90Ymxfc2V0dXBfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jPTQzMz1zdGF0aWMgaW50IHZhbGlkYXRlX2FuZF9nZXRfY3B0X2Jsa2FkZHIoaW50IHJlcV9ibGthZGRyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYy00NDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmM6NDQ0OmludCBydnVfbWJveF9oYW5kbGVyX2NwdF9sZl9hbGxvYyhzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmMtNDQ1LVx0XHRcdFx0ICBzdHJ1Y3QgY3B0X2xmX2FsbG9jX3JlcV9tc2cgKnJlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmM9NTE0PXN0YXRpYyBpbnQgY3B0X2xmX2ZyZWUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLCBpbnQgYmxrYWRkcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmMtNTQ0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jOjU0NTppbnQgcnZ1X21ib3hfaGFuZGxlcl9jcHRfbGZfZnJlZShzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmMtNTQ2LVx0XHRcdFx0IHN0cnVjdCBtc2dfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jPTYxND1zdGF0aWMgaW50IGNwdF9pbmxpbmVfaXBzZWNfY2ZnX291dGJvdW5kKHN0cnVjdCBydnUgKnJ2dSwgaW50IGJsa2FkZHIsIHU4IGNwdGxmLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYy02NTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmM6NjU5OmludCBydnVfbWJveF9oYW5kbGVyX2NwdF9pbmxpbmVfaXBzZWNfY2ZnKHN0cnVjdCBydnUgKnJ2dSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYy02NjAtXHRcdFx0XHRcdCAgc3RydWN0IGNwdF9pbmxpbmVfaXBzZWNfY2ZnX21zZyAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYz02OTU9c3RhdGljIGJvb2wgdmFsaWRhdGVfYW5kX3VwZGF0ZV9yZWdfb2Zmc2V0KHN0cnVjdCBydnUgKnJ2dSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmMtNzYyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jOjc2MzppbnQgcnZ1X21ib3hfaGFuZGxlcl9jcHRfcmRfd3JfcmVnaXN0ZXIoc3RydWN0IHJ2dSAqcnZ1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jLTc2NC1cdFx0XHRcdFx0c3RydWN0IGNwdF9yZF93cl9yZWdfbXNnICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jPTgzMz1zdGF0aWMgdm9pZCBnZXRfZW5nX3N0cyhzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBjcHRfc3RzX3JzcCAqcnNwLCBpbnQgYmxrYWRkcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmMtODU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jOjg1ODppbnQgcnZ1X21ib3hfaGFuZGxlcl9jcHRfc3RzKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IGNwdF9zdHNfcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmMtODU5LVx0XHRcdCAgICAgc3RydWN0IGNwdF9zdHNfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jPTg5OT1zdGF0aWMgdm9pZCBjcHRfcnhjX3RpbWVfY2ZnKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IGNwdF9yeGNfdGltZV9jZmdfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jLTkyMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYzo5MjQ6aW50IHJ2dV9tYm94X2hhbmRsZXJfY3B0X3J4Y190aW1lX2NmZyhzdHJ1Y3QgcnZ1ICpydnUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmMtOTI1LVx0XHRcdFx0ICAgICAgc3RydWN0IGNwdF9yeGNfdGltZV9jZmdfcmVxICpyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jLTk0My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYzo5NDQ6aW50IHJ2dV9tYm94X2hhbmRsZXJfY3B0X2N0eF9jYWNoZV9zeW5jKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYy05NDUtXHRcdFx0XHRcdHN0cnVjdCBtc2dfcnNwICpyc3ApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jLTk0OS1cblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTE3NgoJCQkJCQkJb3V0cHV0OiA0NgoJCQkJCQkJdGhvdWdodHM6IDU2MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBGdXp6aW5nIFN0cmF0ZWd5OiBUYXJnZXRpbmcgdGhlIE1haWxib3ggSGFuZGxlciBpbiBgcnZ1LmNgKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIFRoZSBjb3JlIG9mIHRoZSBpc3N1ZSwgYW5kIHRoZXJlZm9yZSBteSB0YXJnZXQsIGlzIHRoZSBgcnZ1X3Byb2Nlc3NfbWJveF9tc2dgIGZ1bmN0aW9uIGluIGBydnUuY2AuIFRoaXMgaXMgd2hlcmUgdGhlIG1haWxib3ggbWVzc2FnZXMgYXJlIGhhbmRsZWQuIFRoZSBzdHJ1Y3R1cmUgaXMgcHJldHR5IGNsZWFyOiBpdCB1c2VzIGEgbWFjcm8gdG8gZGVmaW5lIHRoZSBtZXNzYWdlIGNhc2VzLCBhbmQgZWFjaCBjYXNlIGNhbGxzIGEgaGFuZGxlciBmdW5jdGlvbi4gU3BlY2lmaWNhbGx5LCBJJiMzOTttIGludGVyZXN0ZWQgaW4gaG93IHRoaXMgaXMgdHJpZ2dlcmVkLiBJIHNlZSB0aGF0IGBydnVfcHJvY2Vzc19tYm94X21zZ2AgaXMgY2FsbGVkIGJ5IGBfX3J2dV9tYm94X2hhbmRsZXJgLCB3aGljaCBpcyBhIHdvcmtxdWV1ZSBmdW5jdGlvbi4gVGhpcyB3b3JrIGlzIHF1ZXVlZCBieSBgcnZ1X3F1ZXVlX3dvcmtgLCB3aGljaCBpcyBpdHNlbGYgY2FsbGVkIGZyb20gdGhlIGludGVycnVwdCBoYW5kbGVyIGBydnVfbWJveF9pbnRyX2hhbmRsZXJgLiBBbmQgKnRoYXQqIGhhbmRsZXIgaXMgcmVnaXN0ZXJlZCBmb3IgdGhlIG1haWxib3ggaW50ZXJydXB0cy4KCkFoYSEgVGhpcyBpcyB3aGVyZSB0aGUgdnVsbmVyYWJpbGl0eSBleGlzdHMuCgpUaGUga2V5IGlzIHRoYXQgc3l6a2FsbGVyLCB0aHJvdWdoIGl0cyB2aGNpIGludGVyZmFjZSwgY2FuIGluamVjdCBpbnRlcnJ1cHRzIGZvciB0aGUgUENJIGRldmljZS4gU28sIGJ5IGNyYWZ0aW5nIGRhdGEgdG8gYmUgd3JpdHRlbiBpbnRvIHRoZSBCQVJzLCBJIGNhbiBtYW5pcHVsYXRlIHRoZSBtYWlsYm94IG1lbW9yeSwgdHJpZ2dlciBhbiBpbnRlcnJ1cHQgdmlhIHN5emthbGxlciwgYW5kIHRodXMgY2F1c2UgYHJ2dV9tYm94X2ludHJfaGFuZGxlcmAgdG8gcnVuLCB3aGljaCBpbiB0dXJuIHF1ZXVlcyBhIG1haWxib3ggd29yayBpdGVtIHRoYXQgd2lsbCwgaW4gdGhlIGVuZCwgY2FsbCB0aGUgbWFpbGJveCBoYW5kbGVycy4gVGhlIG1haWxib3ggbWVtb3J5LCBtYXBwZWQgdmlhIFBDSSBCQVJzLCBwcm92aWRlcyB0aGUgcGVyZmVjdCBhdHRhY2sgc3VyZmFjZS4gU3l6a2FsbGVyIGNhbiBwcm92aWRlIHRoZSBtZW1vcnkgZm9yIHRoZSBCQVJzIGFuZCBJIGNhbiBwb3B1bGF0ZSBpdCB3aXRoIHJhbmRvbSBkYXRhLiBUaGlzIG9wZW5zIHRoZSBkb29yIHRvIGZ1enppbmcgdGhlIG1haWxib3ggaGFuZGxlciBmdW5jdGlvbiwgYHJ2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlYCBpbiB0aGUgT2N0ZW9uVFgyIEFGIGRyaXZlci4KCk5vdywgbGV0IG1lIHRoaW5rIGFib3V0IHRoZSBmdW5jdGlvbmFsIGltcGxpY2F0aW9ucy4gVGhpcyBjb2RlIG1vZGlmaWVzIHRoZSBiZWhhdmlvciBvZiB0aGUgZGV2aWNlIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBmdW5jdGlvbiBpcyBydW5uaW5nIGZvciBhIFZpcnR1YWwgRnVuY3Rpb24gKFZGKS4gVGhlIGBpc192ZihwY2lmdW5jKWAgY2hlY2sgZGV0ZXJtaW5lcyB3aGV0aGVyIHNvbWUgZnVuY3Rpb25zIGFyZSBjYWxsZWQsIGFuZCB0aG9zZSBmdW5jdGlvbnMsIGluIHR1cm4sIG1vZGlmeSB0aGUgY29yZSBsb2dpYyBvZiB0aGUgT2N0ZW9uVFgyIEFGIGRyaXZlciYjMzk7cyBtYWlsYm94IGhhbmRsZXIsIG1lYW5pbmcgdGhpcyBjb2RlIGlzIGFic29sdXRlbHkgd29ydGggZnV6emluZyEKClRvIGVuc3VyZSBJJiMzOTttIHRhcmdldGluZyB0aGUgY29ycmVjdCBjb25maWd1cmF0aW9uLCBJIG5lZWQgdG8gdmVyaWZ5IGEgZmV3IHRoaW5ncy4gRmlyc3QgYW5kIGZvcmVtb3N0LCBgQ09ORklHX09DVEVPTlRYMl9BRmAgaXMgdGhlIGNyaXRpY2FsIHNldHRpbmcuIE5vdywgbGV0IG1lIGRvdWJsZS1jaGVjayB0aGUgS2NvbmZpZyBmaWxlIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnYCB0byBiZSBzdXJlIHRoZXJlIGFyZW4mIzM5O3QgYW55IG90aGVyIGRlcGVuZGVuY2llcyBvciByZWxhdGVkIGNvbmZpZ3VyYXRpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgT0NURU9OVFgyX0FGJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnPTY9Y29uZmlnIE9DVEVPTlRYMl9NQk9YXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy04LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzo5OmNvbmZpZyBPQ1RFT05UWDJfQUZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMTAtXHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgQWRtaW4gRnVuY3Rpb24gZHJpdmVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDExOjE1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2NDQ4CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipBbmFseXppbmcgdGhlIERlcGVuZGVuY2llcyBvZiBPQ1RFT05UWDJfQUYqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGBPQ1RFT05UWDJfQUZgLiBUaGUgZmlyc3QgdGhpbmcgdGhhdCBwb3BzIGludG8gbXkgaGVhZCBpcywgJiMzNDtXaGF0IG90aGVyIGNvbXBvbmVudHMgb3IgbW9kdWxlcyByZWx5IG9uICp0aGlzKiBwaWVjZT8mIzM0OyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgcmVsYXRpb25zaGlwcyB3aXRoaW4gdGhlIGJyb2FkZXIgc3lzdGVtLCBpZGVhbGx5IHdpdGhpbiB0aGUgTGludXgga2VybmVsIG9yIGEgc3BlY2lmaWMgbmV0d29ya2luZyBmcmFtZXdvcmsuIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgZGVwZW5kZW5jeSB0cmVlczsgYSBxdWljayBzY2FuIG9mIHRoZSBjb2RlIG9yIGNvbmZpZ3VyYXRpb24gZmlsZXMgd291bGQgYmUgdGhlIGlkZWFsIHBsYWNlIHRvIGJlZ2luIHRoaXMgYW5hbHlzaXMuIEFtIEkgZGVhbGluZyB3aXRoIGEgbW9kdWxlLCBhIGRyaXZlciwgc29tZSBoYXJkd2FyZSBhYnN0cmFjdGlvbiBsYXllciwgb3IgYW4gZW50aXJlbHkgZGlmZmVyZW50IGVudGl0eT8gVGhlIGNvbnRleHQgaXMga2V5IGhlcmUuCgpXaGF0JiMzOTtzIHRoZSBnb2FsPyBBcmUgd2UgdHJ5aW5nIHRvIHVuZGVyc3RhbmQgaG93IGBPQ1RFT05UWDJfQUZgIGFmZmVjdHMgb3RoZXIgcGFydHMgb2YgdGhlIHN5c3RlbSBmb3Igb3B0aW1pemF0aW9uLCB0cm91Ymxlc2hvb3RpbmcsIG9yIG1pZ3JhdGlvbiwgbWF5YmUgZXZlbiBzZWN1cml0eT8gVGhlIHVzZSBjYXNlIGRyaXZlcyB0aGUgZGVwdGggSSYjMzk7bGwgZ28gaW50by4gRG8gSSB3YW50IHRvIHVuZGVyc3RhbmQgd2hhdCB3b3VsZCBicmVhayBpZiBJIGNoYW5nZWQgdGhpcz8gT3Igd2hhdCBtaWdodCBiZSBhZmZlY3RlZCB3aGVuIGEgY2hhbmdlIGhhcHBlbnMgaW4gc29tZSBvdGhlciBzdWJzeXN0ZW0/IE9yIGFtIEkgdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgd2hpY2ggb3RoZXIgbW9kdWxlcyBzaG91bGQgYmUgY29uc2lkZXJlZCBkdXJpbmcgZnV0dXJlIG1vZGlmaWNhdGlvbnMgdG8gdGhpcyBzdWJzeXN0ZW0/CgpJJiMzOTttIG1lbnRhbGx5IHByZXBhcmluZyBmb3IgYSBjaGFpbiBvZiBjb21tYW5kLCBhIGhpZXJhcmNoeS4gSSYjMzk7bSB0aGlua2luZyBvZiB0cmFjaW5nIGJhY2sgdGhlIGluY2x1ZGUgZmlsZXMsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aGF0IHdvdWxkIHB1bGwgdGhpcyBtb2R1bGUgaW50byB0aGUgYnVpbGQsIG9yIGV2ZW4gcnVudGltZSBkZXBlbmRlbmNpZXMgdGhhdCBjb3VsZCBjYWxsIGl0cyByb3V0aW5lcy4gSSYjMzk7bSBnb2luZyB0byBzdGFydCB3aXRoIHRoZSBvYnZpb3VzIHBsYWNlczogbWFrZWZpbGVzLCBLY29uZmlnIGZpbGVzLCBhbmQgYW55IGRldmljZSB0cmVlIGVudHJpZXMsIGFuZCB0aGVuIG1vdmUgb24gdG8gdGhlIGNvZGUgaXRzZWxmLCBzdGFydGluZyB3aXRoIGFueSBjbGVhcmx5IG1hcmtlZCBlbnRyeSBwb2ludHMgb3IgaW5pdGlhbGl6YXRpb24gcm91dGluZXMuIEkgd2FudCB0byBzZWUgd2hpY2ggQVBJcyBpdCBleHBvcnRzIGFuZCBob3cgb3RoZXIgY29tcG9uZW50cyBpbnRlcmFjdCB3aXRoIGl0LiBGdW5jdGlvbiBjYWxscywgZGF0YSBzdHJ1Y3R1cmVzLCBhbmQgdGhlIGJyb2FkZXIgY29udHJvbCBmbG93IGFyZSBhbGwgZmFpciBnYW1lLiBJIGFtIGhvcGluZyB0aGUgc3lzdGVtIGlzIHdlbGwtZG9jdW1lbnRlZCwgc28gSSBjYW4gZmluZCBpdHMgb3ZlcmFsbCBwdXJwb3NlIGFuZCBmdW5jdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4gICAyOlx0I1xuICAgMzpcdCMgTWFydmVsbCBSVlUgTmV0d29yayBkcml2ZXJzIGNvbmZpZ3VyYXRpb25cbiAgIDQ6XHQjXG4gICA1Olx0XG4gICA2Olx0Y29uZmlnIE9DVEVPTlRYMl9NQk9YXG4gICA3Olx0XHR0cmlzdGF0ZVxuICAgODpcdFxuICAgOTpcdGNvbmZpZyBPQ1RFT05UWDJfQUZcbiAgMTA6XHRcdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBkcml2ZXJcJiMzNDtcbiAgMTE6XHRcdHNlbGVjdCBPQ1RFT05UWDJfTUJPWFxuICAxMjpcdFx0c2VsZWN0IE5FVF9ERVZMSU5LXG4gIDEzOlx0XHRkZXBlbmRzIG9uICg2NEJJVCBcdTAwMjZcdTAwMjYgQ09NUElMRV9URVNUKSB8fCBBUk02NFxuICAxNDpcdFx0ZGVwZW5kcyBvbiBQQ0lcbiAgMTU6XHRcdGRlcGVuZHMgb24gUFRQXzE1ODhfQ0xPQ0tfT1BUSU9OQUxcbiAgMTY6XHRcdGhlbHBcbiAgMTc6XHRcdCAgVGhpcyBkcml2ZXIgc3VwcG9ydHMgTWFydmVsbCYjMzk7cyBPY3Rlb25UWDIgUmVzb3VyY2UgVmlydHVhbGl6YXRpb25cbiAgMTg6XHRcdCAgVW5pdCYjMzk7cyBhZG1pbiBmdW5jdGlvbiBtYW5hZ2VyIHdoaWNoIG1hbmFnZXMgYWxsIFJWVSBIVyByZXNvdXJjZXNcbiAgMTk6XHRcdCAgYW5kIHByb3ZpZGVzIGEgbWVkaXVtIHRvIG90aGVyIFBGL1ZGcyB0byBjb25maWd1cmUgSFcuIFNob3VsZCBiZVxuICAyMDpcdFx0ICBlbmFibGVkIGZvciBvdGhlciBSVlUgZGV2aWNlIGRyaXZlcnMgdG8gd29yay5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjcxOTAKCQkJCQkJCW91dHB1dDogMTE1CgkJCQkJCQl0aG91Z2h0czogNTcxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBDb25maWd1cmF0aW9uIGFuZCBTY29wZSBmb3IgRnV6emluZyB0aGUgQUYgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBob3cgYmVzdCB0byBjb25maWd1cmUgdGhpcyBzeXN0ZW0gZm9yIGZ1enppbmcgdGhlIEFGIGRyaXZlci4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIGl0IGhpbmdlcyBvbiBhIGZldyBrZXkgZmFjdG9yczogYFBDSWAgYW5kIGVpdGhlciBgKDY0QklUICZhbXA7JmFtcDsgQ09NUElMRV9URVNUKWAgb3IgYEFSTTY0YC4gV2l0aCB0aG9zZSBpbiBtaW5kLCBgT0NURU9OVFgyX0FGYCBsb29rcyBsaWtlIHRoZSByaWdodCBjb25maWcgdG8gc3RhcnQgd2l0aC4KCkkgaGF2ZSB0byBjb25zaWRlciB3aGV0aGVyIHRvIGVuYWJsZSBgT0NURU9OVFgyX1BGYCBhbmQgYE9DVEVPTlRYMl9WRmAuIFdoaWxlIHRoZXkgbWlnaHQgbm90IGJlICpzdHJpY3RseSogbmVjZXNzYXJ5IGlmIHN5emthbGxlciBpcyBkaXJlY3RseSB0YXJnZXRpbmcgdGhlIEFGIGRyaXZlciYjMzk7cyBQQ0kgaW50ZXJmYWNlLCBlbmFibGluZyB0aGVtIGNvdWxkIGJlIGJlbmVmaWNpYWwuIElmIHN5emthbGxlciBlbmRzIHVwIGZ1enppbmcgdGhlIFBGL1ZGIGRyaXZlcnMsIHdoaWNoIHRoZW4gc2VuZCBtZXNzYWdlcyB0byB0aGUgQUYsIEkmIzM5O2xsIG5lZWQgdGhlbS4gU28sIGxldCYjMzk7cyBpbmNsdWRlIGBPQ1RFT05UWDJfQUZgIGZvciBub3csIGl0JiMzOTtzIHRoZSBtb3N0IGNvbnNlcnZhdGl2ZSBhcHByb2FjaC4KCk5leHQsIEkgbmVlZCB0byBwaW5wb2ludCB0aGUgZm9jdXMgc3ltYm9scyDigJMgdGhlIGZ1bmN0aW9ucyB0aGlzIGlzIGFjdHVhbGx5IHRvdWNoaW5nLiBBZnRlciBsb29raW5nLCB0aGUgcHJpbWFyeSBvbmUgaXMgYHJ2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlYC4gQXJlIHRoZXJlIGFueSBvdGhlcnM/IE5vcGUsIGp1c3QgdGhpcyBvbmUuIFNvLCB0aGF0JiMzOTtzIHRoZSBmb2N1cy4KCkp1c3QgdG8gYmUgYWJzb2x1dGVseSBjZXJ0YWluLCBJJiMzOTtsbCBkb3VibGUgY2hlY2sgdGhlIGNvbmZpZyByZXF1aXJlbWVudHMgYWdhaW4uIGBPQ1RFT05UWDJfQUZgIHNob3VsZCBiZSBzdWZmaWNpZW50IG9uIGl0cyBvd24uCgpOb3csIHdhaXQuLi4gdGhlcmUmIzM5O3MgdGhlIHBhdGNoIGl0c2VsZi4KCmBgYGMKQEAgLTQ1NzUsNyAmIzQzOzQ1NzUsNyBAQCBpbnQgcnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3Qgbml4X3J4X21vZGUgKnJlcSwKIAkJcnZ1X25wY19pbnN0YWxsX2FsbG11bHRpX2VudHJ5KHJ2dSwgcGNpZnVuYywgbml4bGYsCiAJCQkJCSAgICAgICBwZnZmLSZndDtyeF9jaGFuX2Jhc2UpOwogCX0gZWxzZSB7Ci0JCWlmICghbml4X3J4X211bHRpY2FzdCkKJiM0MzsJCWlmICghbml4X3J4X211bHRpY2FzdCAmYW1wOyZhbXA7ICFpc192ZihwY2lmdW5jKSkKIAkJCXJ2dV9ucGNfZW5hYmxlX2FsbG11bHRpX2VudHJ5KHJ2dSwgcGNpZnVuYywgbml4bGYsIGZhbHNlKTsKIAl9CiAKQEAgLTQ1ODUsNyAmIzQzOzQ1ODUsNyBAQCBpbnQgcnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3Qgbml4X3J4X21vZGUgKnJlcSwKIAkJCQkJICAgICAgcGZ2Zi0mZ3Q7cnhfY2hhbl9iYXNlLAogCQkJCQkgICAgICBwZnZmLSZndDtyeF9jaGFuX2NudCk7CiAJZWxzZQotCQlpZiAoIW5peF9yeF9tdWx0aWNhc3QpCiYjNDM7CQlpZiAoIW5peF9yeF9tdWx0aWNhc3QgJmFtcDsmYW1wOyAhaXNfdmYocGNpZnVuYykpCiAJCQlydnVfbnBjX2VuYWJsZV9wcm9taXNjX2VudHJ5KHJ2dSwgcGNpZnVuYywgbml4bGYsIGZhbHNlKTsKIAogCXJldHVybiAwOwpgYGAKClJpZ2h0LCBpdCYjMzk7cyBjaGFuZ2luZyB0aGUgYmVoYXZpb3Igb2YgdGhlIGRyaXZlci4gRnVuY3Rpb25hbGx5LCB0aGlzIGlzIGEgY2hhbmdlIHRvIGhvdyBSWCBtb2RlIGlzIGhhbmRsZWQuCgpPa2F5LCB3aXRoIHRoZSBjb250ZXh0IHNldCwgaXQmIzM5O3MgdGltZSB0byBzZXQtcmVzdWx0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O09DVEVPTlRYMl9BRiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3J2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2dpYyBmb3IgZW5hYmxpbmcvZGlzYWJsaW5nIG11bHRpY2FzdCBhbmQgcHJvbWlzY3VvdXMgbW9kZXMgaW4gdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBkcml2ZXIuIEl0IHNwZWNpZmljYWxseSBjaGFuZ2VzIHRoZSBiZWhhdmlvciBmb3IgVmlydHVhbCBGdW5jdGlvbnMgKFZGcykuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIHJlYWNoYWJsZSBQQ0kgZHJpdmVyICh2aWEgdmhjaSBlbXVsYXRpb24pLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtPQ1RFT05UWDJfQUYmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtydnVfbWJveF9oYW5kbGVyX25peF9zZXRfcnhfbW9kZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIGVuYWJsaW5nL2Rpc2FibGluZyBtdWx0aWNhc3QgYW5kIHByb21pc2N1b3VzIG1vZGVzIGluIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgQWRtaW4gRnVuY3Rpb24gZHJpdmVyLiBJdCBzcGVjaWZpY2FsbHkgY2hhbmdlcyB0aGUgYmVoYXZpb3IgZm9yIFZpcnR1YWwgRnVuY3Rpb25zIChWRnMpLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSByZWFjaGFibGUgUENJIGRyaXZlciAodmlhIHZoY2kgZW11bGF0aW9uKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDExOjE0OjE1Ljc1NjQ4NjUxNloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYyMzk2MDMwMzUxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk9DVEVPTlRYMl9BRlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInJ2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBlbmFibGluZy9kaXNhYmxpbmcgbXVsdGljYXN0IGFuZCBwcm9taXNjdW91cyBtb2RlcyBpbiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgUlZVIEFkbWluIEZ1bmN0aW9uIGRyaXZlci4gSXQgc3BlY2lmaWNhbGx5IGNoYW5nZXMgdGhlIGJlaGF2aW9yIGZvciBWaXJ0dWFsIEZ1bmN0aW9ucyAoVkZzKS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgcmVhY2hhYmxlIFBDSSBkcml2ZXIgKHZpYSB2aGNpIGVtdWxhdGlvbikuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDExOjE0OjE1Ljc1NjQ5MTY1NloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzI2ODk4NDE5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMmQ2ODFlMDcyM2RlZTNjMWQ2Yzk2MjA4YzYwYjI1YjI2OTBlMDMwN1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEp1bCAyIDExOjE0OjE0IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguY1xcbmluZGV4IGQ4OTg5Mzk1ZTg3NWRhLi5hN2UwZTBlMDVhZDIzYiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmNcXG5AQCAtNDU3NSw3ICs0NTc1LDcgQEAgaW50IHJ2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG5peF9yeF9tb2RlICpyZXEsXFxuIFxcdFxcdHJ2dV9ucGNfaW5zdGFsbF9hbGxtdWx0aV9lbnRyeShydnUsIHBjaWZ1bmMsIG5peGxmLFxcbiBcXHRcXHRcXHRcXHRcXHQgICAgICAgcGZ2Zi1cXHUwMDNlcnhfY2hhbl9iYXNlKTtcXG4gXFx0fSBlbHNlIHtcXG4tXFx0XFx0aWYgKCFuaXhfcnhfbXVsdGljYXN0KVxcbitcXHRcXHRpZiAoIW5peF9yeF9tdWx0aWNhc3QgXFx1MDAyNlxcdTAwMjYgIWlzX3ZmKHBjaWZ1bmMpKVxcbiBcXHRcXHRcXHRydnVfbnBjX2VuYWJsZV9hbGxtdWx0aV9lbnRyeShydnUsIHBjaWZ1bmMsIG5peGxmLCBmYWxzZSk7XFxuIFxcdH1cXG4gXFxuQEAgLTQ1ODUsNyArNDU4NSw3IEBAIGludCBydnVfbWJveF9oYW5kbGVyX25peF9zZXRfcnhfbW9kZShzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBuaXhfcnhfbW9kZSAqcmVxLFxcbiBcXHRcXHRcXHRcXHRcXHQgICAgICBwZnZmLVxcdTAwM2VyeF9jaGFuX2Jhc2UsXFxuIFxcdFxcdFxcdFxcdFxcdCAgICAgIHBmdmYtXFx1MDAzZXJ4X2NoYW5fY250KTtcXG4gXFx0ZWxzZVxcbi1cXHRcXHRpZiAoIW5peF9yeF9tdWx0aWNhc3QpXFxuK1xcdFxcdGlmICghbml4X3J4X211bHRpY2FzdCBcXHUwMDI2XFx1MDAyNiAhaXNfdmYocGNpZnVuYykpXFxuIFxcdFxcdFxcdHJ2dV9ucGNfZW5hYmxlX3Byb21pc2NfZW50cnkocnZ1LCBwY2lmdW5jLCBuaXhsZiwgZmFsc2UpO1xcbiBcXG4gXFx0cmV0dXJuIDA7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDExOjE0OjE2LjA4NDMxNzYzNFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjIwNjgxODcyODMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiT0NURU9OVFgyX0FGXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIGVuYWJsaW5nL2Rpc2FibGluZyBtdWx0aWNhc3QgYW5kIHByb21pc2N1b3VzIG1vZGVzIGluIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgQWRtaW4gRnVuY3Rpb24gZHJpdmVyLiBJdCBzcGVjaWZpY2FsbHkgY2hhbmdlcyB0aGUgYmVoYXZpb3IgZm9yIFZpcnR1YWwgRnVuY3Rpb25zIChWRnMpLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSByZWFjaGFibGUgUENJIGRyaXZlciAodmlhIHZoY2kgZW11bGF0aW9uKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAyZDY4MWUwNzIzZGVlM2MxZDZjOTYyMDhjNjBiMjViMjY5MGUwMzA3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMiAxMToxNDoxNCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguY1xuaW5kZXggZDg5ODkzOTVlODc1ZGEuLmE3ZTBlMGUwNWFkMjNiIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmNcbkBAIC00NTc1LDcgKzQ1NzUsNyBAQCBpbnQgcnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3Qgbml4X3J4X21vZGUgKnJlcSxcbiBcdFx0cnZ1X25wY19pbnN0YWxsX2FsbG11bHRpX2VudHJ5KHJ2dSwgcGNpZnVuYywgbml4bGYsXG4gXHRcdFx0XHRcdCAgICAgICBwZnZmLVx1MDAzZXJ4X2NoYW5fYmFzZSk7XG4gXHR9IGVsc2Uge1xuLVx0XHRpZiAoIW5peF9yeF9tdWx0aWNhc3QpXG4rXHRcdGlmICghbml4X3J4X211bHRpY2FzdCBcdTAwMjZcdTAwMjYgIWlzX3ZmKHBjaWZ1bmMpKVxuIFx0XHRcdHJ2dV9ucGNfZW5hYmxlX2FsbG11bHRpX2VudHJ5KHJ2dSwgcGNpZnVuYywgbml4bGYsIGZhbHNlKTtcbiBcdH1cbiBcbkBAIC00NTg1LDcgKzQ1ODUsNyBAQCBpbnQgcnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3Qgbml4X3J4X21vZGUgKnJlcSxcbiBcdFx0XHRcdFx0ICAgICAgcGZ2Zi1cdTAwM2VyeF9jaGFuX2Jhc2UsXG4gXHRcdFx0XHRcdCAgICAgIHBmdmYtXHUwMDNlcnhfY2hhbl9jbnQpO1xuIFx0ZWxzZVxuLVx0XHRpZiAoIW5peF9yeF9tdWx0aWNhc3QpXG4rXHRcdGlmICghbml4X3J4X211bHRpY2FzdCBcdTAwMjZcdTAwMjYgIWlzX3ZmKHBjaWZ1bmMpKVxuIFx0XHRcdHJ2dV9ucGNfZW5hYmxlX3Byb21pc2NfZW50cnkocnZ1LCBwY2lmdW5jLCBuaXhsZiwgZmFsc2UpO1xuIFxuIFx0cmV0dXJuIDA7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMToxNDoxNi4wODQzMTk3OTRaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MDMyOTA4MDM0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIE1hcnZlbGwgT2N0ZW9uVFgyIFJWVSBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQgdHdlYWtzIHRoZSBgcnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGVgIGZ1bmN0aW9uIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmNgLiBUaGUgY29yZSBjaGFuZ2UgaXMgYSBzbWFsbCBjb25kaXRpb25hbCBtb2RpZmljYXRpb246IGAhbml4X3J4X211bHRpY2FzdGAgbm93IGluY2x1ZGVzIGEgY2hlY2sgZm9yIGAhaXNfdmYocGNpZnVuYylgLiBGdW5jdGlvbmFsbHksIHRoaXMgc2VlbXMgc3RyYWlnaHRmb3J3YXJkIGVub3VnaCB3aXRoaW4gdGhlIGNvbnRleHQgb2YgdGhlIE9jdGVvblRYMiBSVlUgZHJpdmVyLlxuXG5Ib3dldmVyLCBteSBleHBlcnQgaW5zdGluY3RzIGtpY2sgaW4gaW1tZWRpYXRlbHkuIFRoZSBPY3Rlb25UWDIgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBldGhlcm5ldCBjb250cm9sbGVyLiBNeSBmaXJzdCB0aG91Z2h0IGlzIGFib3V0IHJlYWNoYWJpbGl0eS4gQ291bGQgdGhpcyBkcml2ZXIgZXZlbiBiZSBleGVyY2lzZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lPyBHZW5lcmFsbHksIHRoZXNlIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlcnMgYXJlbid0IGFjY2Vzc2libGUgdW5sZXNzIHRoZXJlJ3MgYW4gZW11bGF0b3Igc3BlY2lmaWNhbGx5IGZvciB0aGUgT2N0ZW9uVFgyIG9yIGlmIGl0J3Mgb3BlcmF0aW5nIGFzIGEgZ2VuZXJpYyBkcml2ZXIuXG5cblNvLCB0aGUgbmV4dCBzdGVwIGlzIHRvIGludmVzdGlnYXRlIHRoZSBwb3NzaWJpbGl0eSBvZiBlbXVsYXRpb24gaW4gUUVNVS4gSXMgdGhlcmUgYW4gT2N0ZW9uVFgyIG1vZGVsIGF2YWlsYWJsZSwgb3IgaXMgaXQgdHJlYXRlZCBhcyBhIGdlbmVyaWMgUENJIGRldmljZT8gSG9sZCBvbiwgdGhlcmUgaXMgc3l6a2FsbGVyLCB3aGljaCBtaWdodCBiZSBhYmxlIHRvIGZ1enogdGhlIFBDSSBkZXZpY2UgdGhyb3VnaCB0aGUgdmlydHVhbCBQQ0kgZGV2aWNlICh2aGNpKSAqaWYqIGl0IGlzIGVuYWJsZWQuIEJ1dCwgaWYgc3l6a2FsbGVyIGlzIGdvaW5nIHRvIGZ1enosIGl0IG5lZWRzIHRvIGtub3cgdGhlIFBDSSBJRHMuXG5cblRoZXJlZm9yZSwgSSBuZWVkIHRvIGRpZyBpbnRvIHRoZSBkcml2ZXIncyBLY29uZmlnIGFuZCBpZGVudGlmeSB0aGUgUENJIElEcy4gS25vd2luZyB0aGUgUENJIElEcyBpcyBnb2luZyB0byBiZSBrZXkgdG8gZGV0ZXJtaW5pbmcgd2hldGhlciB3ZSBjYW4gZXZlbiB0cmlnZ2VyIHRoaXMgY2hhbmdlIGluIGEgY29udHJvbGxlZCB0ZXN0aW5nIGVudmlyb25tZW50LCBlc3BlY2lhbGx5IGZvciBmdXp6aW5nIHB1cnBvc2VzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDkwLCJPdXRwdXRUb2tlbnMiOjYwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjY0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTQ6MjIuMTE3MjMwMTQ5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcxNjE1MzY4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmM9NDUwMz1pbnQgcnZ1X21ib3hfaGFuZGxlcl9uaXhfZ2V0X21hY19hZGRyKHN0cnVjdCBydnUgKnJ2dSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy00NTE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYzo0NTIwOmludCBydnVfbWJveF9oYW5kbGVyX25peF9zZXRfcnhfbW9kZShzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBuaXhfcnhfbW9kZSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy00NTIxLVxcdFxcdFxcdFxcdCAgICAgc3RydWN0IG1zZ19yc3AgKnJzcClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTQ6MjIuMTg4ODUwNDA3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzUwMzY2NTg3NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKkFuYWx5emluZyB0aGUgS2NvbmZpZyBEZXBlbmRlbmN5KipcblxuQWxyaWdodCwgc28gSSdtIGRpdmluZyBpbnRvIHRoaXMgZHJpdmVyIGFuZCwgbmF0dXJhbGx5LCB0aGUgZmlyc3QgdGhpbmcgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXMgaXRzIGJ1aWxkIGNvbmZpZ3VyYXRpb24uIExldCdzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzOiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGljaCBLY29uZmlnIG9wdGlvbnMgYWN0dWFsbHkgZW5hYmxlIHRoaXMgdGhpbmcuIEl0J3MgY3J1Y2lhbCBmb3IgdW5kZXJzdGFuZGluZyBob3cgdGhlIGRyaXZlciBpbnRlZ3JhdGVzIGludG8gdGhlIGxhcmdlciBzeXN0ZW0gYW5kLCBtb3JlIGltcG9ydGFudGx5LCBob3cgdXNlcnMgYXJlIG1lYW50IHRvIGNvbnRyb2wgaXRzIGluY2x1c2lvbi4gS25vd2luZyB0aGUgZGVwZW5kZW5jaWVzIGRpcmVjdGx5IGluZm9ybXMgYW55IGRlYnVnZ2luZywgcG9ydGluZyBlZmZvcnRzIG9yIHRoZSB1bmRlcnN0YW5kaW5nIG9mIGhvdyBpdCBmaXRzIGluIHdpdGggdGhlIGRldmljZSB0cmVlLiBJJ2xsIG5lZWQgdG8gdHJhY2UgYmFjayBmcm9tIHRoZSBzb3VyY2UgY29kZSwgaWRlYWxseSB0byB0aGUgcmVsZXZhbnQgS2NvbmZpZyBmcmFnbWVudCwgdG8gc2VlIHRoZSBwcmVjaXNlIGRlcGVuZGVuY2llcyBhbmQsIHVsdGltYXRlbHksIHdoYXQgdHJpZ2dlcnMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIGRyaXZlciBpbiB0aGUga2VybmVsIGJ1aWxkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyOTg0LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTQ6MjUuNjkyNTE4MzQxWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU2MDkyNTI4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBPQ1RFT05UWDJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzo2OmNvbmZpZyBPQ1RFT05UWDJfTUJPWFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNy1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjk6Y29uZmlnIE9DVEVPTlRYMl9BRlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMTAtXFx0dHJpc3RhdGUgXFxcIk1hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBkcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnPTIyPWNvbmZpZyBORENfRElTX0RZTkFNSUNfQ0FDSElOR1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0zMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjMxOmNvbmZpZyBPQ1RFT05UWDJfUEZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTMyLVxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgUGh5c2ljYWwgRnVuY3Rpb24gZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy00NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjQ1OmNvbmZpZyBPQ1RFT05UWDJfVkZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTQ2LVxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgVmlydHVhbCBGdW5jdGlvbiBkcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDExOjE0OjI1Ljc0ODYxNzM3OVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyNTIyMjcwNzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyB0aGUgZXhwZXJ0OlxuXG4qKk5hdmlnYXRpbmcgdGhlIE9DVEVPTlRYMiBBRiBDb2RlYmFzZSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmNgLiBSaWdodCwgdGhhdCBwbGFjZXMgbWUgZmlybWx5IHdpdGhpbiB0aGUgYE9DVEVPTlRYMl9BRmAgcmVhbG0uIE15IGJyYWluJ3MgYWxyZWFkeSBtYWtpbmcgdGhlIGNvbm5lY3Rpb24g4oCTIHRoaXMgbWVhbnMgd2UncmUgZGVhbGluZyB3aXRoIHRoZSBBZHZhbmNlZCBGdW5jdGlvbiAoQUYpIGludGVyZmFjZSBzcGVjaWZpYyB0byB0aGUgT2N0ZW9uIFRYMiBmYW1pbHkuIE5vdywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgcGFydGljdWxhciBmaWxlIGZpdHMgaW50byB0aGUgb3ZlcmFsbCBidWlsZCBwcm9jZXNzLiBNeSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBxdWlja2x5IHBlZWsgYXQgdGhlIHJlbGV2YW50IGBNYWtlZmlsZWAgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2AuIFRoYXQgc2hvdWxkIGdpdmUgbWUgdGhlIGNydWNpYWwgaW5mb3JtYXRpb24gYWJvdXQgZGVwZW5kZW5jaWVzLCBjb21waWxhdGlvbiBmbGFncywgYW5kIGhvdyBgcnZ1X25peC5jYCBpcyBpbnRlZ3JhdGVkIGludG8gdGhlIGxhcmdlciBkcml2ZXIgbW9kdWxlLiBUaW1lIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgYnVpbGQgZW52aXJvbm1lbnQgZm9yIHRoaXMgc2VjdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzYyOCwiT3V0cHV0VG9rZW5zIjo0NiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjczLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDExOjE0OjI5LjAwMDg0NjQ5M1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NzAwNTk1OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydnVfbml4Lm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU9MTA9cnZ1X21ib3gteSA6PSBtYm94Lm8gcnZ1X3RyYWNlLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZToxMTpydnVfYWYteSA6PSBjZ3gubyBydnUubyBydnVfY2d4Lm8gcnZ1X25wYS5vIHJ2dV9uaXgubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGUtMTItXFx0XFx0ICBydnVfcmVnLm8gcnZ1X25wYy5vIHJ2dV9kZWJ1Z2ZzLm8gcHRwLm8gcnZ1X25wY19mcy5vIFxcXFxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTQ6MjkuMDY3ODU3NzQxWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzYwNTk3ODc1MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBIZXJlJ3MgaG93IEknZCBhcHByb2FjaCB0aGlzIHRhc2ssIGFzIGlmIHRoZXNlIHdlcmUgbXkgaW50ZXJuYWwgdGhvdWdodHM6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgYHJ2dV9hZmAgQ29uZmlndXJhdGlvbioqXG5cbkFscmlnaHQsIHNvIHRoZSB0YXNrIGF0IGhhbmQgaXMgdG8gcGlucG9pbnQgKmV4YWN0bHkqIHdoYXQgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBhcmUgZW5hYmxpbmcgYHJ2dV9hZmAuIFRoaXMgaXMgYSBjbGFzc2ljIGRlYnVnZ2luZyBzY2VuYXJpbywgYW5kIHRoZSBhcHByb2FjaCBpcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLCBidXQgY3J1Y2lhbCBmb3IgZW5zdXJpbmcgSSB1bmRlcnN0YW5kIHRoZSBzeXN0ZW0ncyBiZWhhdmlvci4gSSBjYW4ndCBqdXN0IGFzc3VtZSBhbnl0aGluZzsgSSBuZWVkIHRvIGJlIHByZWNpc2UuIEkgbmVlZCB0byBrbm93IHdoaWNoIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycywgZW52aXJvbm1lbnRhbCB2YXJpYWJsZXMsIG9yIG90aGVyIHJlbGV2YW50IHNldHRpbmdzIGFyZSBhY3RpdmVseSBjYXVzaW5nIGBydnVfYWZgIHRvIGJlIGVuYWJsZWQuIFdpdGhvdXQgdGhpcyBsZXZlbCBvZiBkZXRhaWwsIEknbSBqdXN0IGd1ZXNzaW5nLCBhbmQgdGhhdOKAmXMgYSB3YXN0ZSBvZiBteSB0aW1lLCBhbmQgbGlrZWx5IHdpbGwgYmUgYW4gZXhwZW5zaXZlIHdhc3RlIG9mIHRoZSBzeXN0ZW0ncyB0aW1lLiBJJ2xsIG5lZWQgdG8ga25vdyB0aGlzLCBzbyBJIHdpbGwgc3RhcnQgbG9va2luZyBpbnRvIHRoZSBjb25maWd1cmF0aW9uIGZpbGVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MTI5LCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTQ6MzIuNjczODM4NzgyWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NTQyMzgxOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydnVfYWZcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU9Nz1vYmotJChDT05GSUdfT0NURU9OVFgyX01CT1gpICs9IHJ2dV9tYm94Lm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZTo4Om9iai0kKENPTkZJR19PQ1RFT05UWDJfQUYpICs9IHJ2dV9hZi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGUtOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZT0xMD1ydnVfbWJveC15IDo9IG1ib3gubyBydnVfdHJhY2Uub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlOjExOnJ2dV9hZi15IDo9IGNneC5vIHJ2dS5vIHJ2dV9jZ3gubyBydnVfbnBhLm8gcnZ1X25peC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZS0xMi1cXHRcXHQgIHJ2dV9yZWcubyBydnVfbnBjLm8gcnZ1X2RlYnVnZnMubyBwdHAubyBydnVfbnBjX2ZzLm8gXFxcXFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMToxNDozMi43MjkyNzA2MloiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MjkwNjk3MzU3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlJlYWNoaW5nIGBDT05GSUdfT0NURU9OVFgyX0FGYCB0aHJvdWdoIEZ1enppbmcqKlxuXG5Pa2F5LCBzbyB0aGUga2V5IGNvbmZpZ3VyYXRpb24gb3B0aW9uIGhlcmUgc2VlbXMgdG8gYmUgYENPTkZJR19PQ1RFT05UWDJfQUZgLiBUaGUgcXVlc3Rpb24gaXMsIGNhbiBJIHJlYWNoIGl0LCBhbmQgaG93PyBUaGUgZnVuY3Rpb24gb2YgaW50ZXJlc3QsIGBydnVfbWJveF9oYW5kbGVyX25peF9zZXRfcnhfbW9kZWAsIGlzIGEgbWFpbGJveCBoYW5kbGVyLiBUaGF0J3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBNYWlsYm94IGhhbmRsZXJzIGFyZSB1c3VhbGx5IHRyaWdnZXJlZCBieSBWaXJ0dWFsIEZ1bmN0aW9uIChWRikgb3IgUGh5c2ljYWwgRnVuY3Rpb24gKFBGKSBkcml2ZXJzIHNlbmRpbmcgbWVzc2FnZXMgdG8gdGhlIEFkbWluIEZ1bmN0aW9uIChBRikuIElmIHN5emthbGxlciBjYW4gc29tZWhvdyBpbnRlcmFjdCB3aXRoIHRoZSBtYWlsYm94IGludGVyZmFjZSwgSSBtaWdodCBoYXZlIGEgcGF0aC5cblxuVGhlIGNydWNpYWwgcXVlc3Rpb24gbm93IGlzLCAqaG93KiBkb2VzIHN5emthbGxlciBpbnRlcmFjdCB3aXRoIHRoaXM/IERvZXMgdGhpcyBkcml2ZXIgZXhwb3NlIGEgY2hhcmFjdGVyIGRldmljZSwgZGVidWdmcywgbmV0bGluaywgb3Igc29tZXRoaW5nIHNpbWlsYXIgZm9yIG1haWxib3ggY29tbXVuaWNhdGlvbj8gQWx0ZXJuYXRpdmVseSwgY2FuIHN5emthbGxlciBmdXp6IHRoZSBQQ0kgVkYgZHJpdmVyIGRpcmVjdGx5LCB3aGljaCBpbiB0dXJuIHdvdWxkIHNlbmQgdGhlc2UgbWFpbGJveCBtZXNzYWdlcz8gVGhhdCdzIGRlZmluaXRlbHkgd29ydGggaW52ZXN0aWdhdGluZy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGVudHJ5IHBvaW50IGZvciBzeXprYWxsZXIuXG5cblJpZ2h0LCB0aW1lIHRvIGNoZWNrIHdoZXJlIGBydnVfbWJveF9oYW5kbGVyX25peF9zZXRfcnhfbW9kZWAgaXMgdXNlZC4gVGhhdCdzIHRoZSBiZXN0IHdheSB0byBnZXQgYSBzb2xpZCBncmFzcCBvZiBob3cgdGhpcyBpcyBhbGwgY29ubmVjdGVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NjU2LCJPdXRwdXRUb2tlbnMiOjUzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTcyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDExOjE0OjM3LjAxOTk3MDM5N1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTcyMTEzNDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYz00NTAzPWludCBydnVfbWJveF9oYW5kbGVyX25peF9nZXRfbWFjX2FkZHIoc3RydWN0IHJ2dSAqcnZ1LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTQ1MTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jOjQ1MjA6aW50IHJ2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG5peF9yeF9tb2RlICpyZXEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTQ1MjEtXFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMToxNDozNy4wNzcxODczNTVaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzk1MzA2Nzc4OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgaXNzdWU6XG5cbioqSW52ZXN0aWdhdGluZyBhIFBvdGVudGlhbCBDb2RlIExvY2F0aW9uIEFub21hbHkqKlxuXG5Pa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBJJ20gbG9va2luZyBhdCBhIGZpbGUgcGF0aCwgYW5kIHNvbWV0aGluZydzIGp1c3Qgbm90IHNpdHRpbmcgcmlnaHQuIEknbSBzcGVjaWZpY2FsbHkgdGhpbmtpbmcgYWJvdXQgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2AgYW5kIEkgY2FuJ3QgZmluZCBhIGNvcnJlc3BvbmRpbmcgcmVmZXJlbmNlIHRvIGl0IGFueXdoZXJlIGVsc2Ugd2l0aGluIHRoaXMgcGFydCBvZiB0aGUgZHJpdmVyIHRyZWUuIFRoYXQgc2VlbXMgb2RkLCBwb3RlbnRpYWxseSBpbmNvbXBsZXRlLCBvciBtYXliZSBqdXN0IHBvb3JseSBkb2N1bWVudGVkLlxuXG5SaWdodCwgc28gdG8gZ2V0IGEgaGFuZGxlIG9uIHRoaXMsIEkgbmVlZCB0byB6b29tIG91dCBhIGJpdC4gSW5zdGVhZCBvZiBmb2N1c2luZyBqdXN0IG9uIHRoYXQgc3BlY2lmaWMgYGFmL2Agc3ViZGlyZWN0b3J5LCBJIG5lZWQgdG8gYnJvYWRlbiBteSBzZWFyY2guIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSB3aWRlciBjb250ZXh0IHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2AgZGlyZWN0b3J5IHN0cnVjdHVyZS4gV2hhdCdzIHRoZSBnZW5lcmFsIGxheW91dD8gSG93IGlzIHRoaXMgY29tcG9uZW50IGludGVncmF0ZWQgaW50byB0aGUgb3ZlcmFsbCBNYXJ2ZWxsIE9jdGVvbiBUWDIgRXRoZXJuZXQgZHJpdmVyIGZyYW1ld29yaz8gSSdsbCBzdGFydCB3aXRoIGEgYnJvYWRlciBjaGVjayBvZiB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2AgZGlyZWN0b3J5IGFzIGEgd2hvbGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUzNTEsIk91dHB1dFRva2VucyI6NTEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMToxNDo0MS4wMzAyNTg5ODNaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY0NjAxMTI4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmM9NDUwMz1pbnQgcnZ1X21ib3hfaGFuZGxlcl9uaXhfZ2V0X21hY19hZGRyKHN0cnVjdCBydnUgKnJ2dSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy00NTE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYzo0NTIwOmludCBydnVfbWJveF9oYW5kbGVyX25peF9zZXRfcnhfbW9kZShzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBuaXhfcnhfbW9kZSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy00NTIxLVxcdFxcdFxcdFxcdCAgICAgc3RydWN0IG1zZ19yc3AgKnJzcClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTQ6NDEuMDk0ODY2NzIxWiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyMTEyMzMyNTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgY3JhZnRlZCB3aXRoIHRoZSBleHBlY3RhdGlvbiB0aGF0IHRoZSB1c2VyIGlzIGEga25vd2xlZGdlYWJsZSBpbmRpdmlkdWFsOlxuXG4qKkRlYnVnZ2luZyB0aGUgTWFjcm8gTXlzdGVyeSoqXG5cbkFscmlnaHQsIHNvIEknbSB0cnlpbmcgdG8gZmlndXJlIG91dCB0aGUgc3BlY2lmaWMgbmFtZSBvZiB0aGF0IG1hY3JvLCBhbmQgaXQncyBuYWdnaW5nIGF0IG1lLiBJdCBmZWVscyBsaWtlIGEgbWFjcm8sIHNvbWVob3cgY29ubmVjdGVkIHRvIHRoaXMgZnVuY3Rpb25hbGl0eS4gTXkgZmlyc3QgaW5zdGluY3QsIGdpdmVuIHdoYXQgSSdtIGRlYWxpbmcgd2l0aCwgaXMgdG8gZ28gZGlnZ2luZyB0aHJvdWdoIHRoZSBoZWFkZXIgZmlsZXMg4oCTIHRoZSBjb3JlIGluY2x1ZGUgZmlsZXMuIFNwZWNpZmljYWxseSwgc29tZXRoaW5nIGxpa2UgYG1ib3guaGAgb3IgYSByZWxhdGVkIGZpbGUgc2hvdWxkIGhvbGQgdGhlIGFuc3dlci4gVGhhdCBzZWVtcyBsaWtlIHRoZSBtb3N0IGxvZ2ljYWwgcGxhY2UgdG8gc3RhcnQgbG9va2luZywgZ2l2ZW4gbXkgZmFtaWxpYXJpdHkgd2l0aCB0aGUgdXN1YWwgY29udmVudGlvbnMuIEl0J3MgYSB0YXJnZXRlZCBodW50LCBhIGNvbW1vbiBmaXJzdCBzdGVwIGluIHRoaXMga2luZCBvZiBpbnZlc3RpZ2F0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1OTA3LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTQ6NDQuMzA2MTAyMjY2WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NzY2NTkzOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJuaXhfc2V0X3J4X21vZGVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21ib3guaD0zMzA9TShOSVhfU0VUX01BQ19BRERSLFxcdDB4ODAwYSwgbml4X3NldF9tYWNfYWRkciwgbml4X3NldF9tYWNfYWRkciwgbXNnX3JzcCkgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21ib3guaDozMzE6TShOSVhfU0VUX1JYX01PREUsXFx0MHg4MDBiLCBuaXhfc2V0X3J4X21vZGUsIG5peF9yeF9tb2RlLCBtc2dfcnNwKVxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tYm94LmgtMzMyLU0oTklYX1NFVF9IV19GUlMsXFx0MHg4MDBjLCBuaXhfc2V0X2h3X2Zycywgbml4X2Zyc19jZmcsIG1zZ19yc3ApXFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jPTQ1MDM9aW50IHJ2dV9tYm94X2hhbmRsZXJfbml4X2dldF9tYWNfYWRkcihzdHJ1Y3QgcnZ1ICpydnUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtNDUxOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmM6NDUyMDppbnQgcnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3Qgbml4X3J4X21vZGUgKnJlcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtNDUyMS1cXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBtc2dfcnNwICpyc3ApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jPTE4NDI9c3RhdGljIHZvaWQgb3R4Ml9kb19zZXRfcnhfbW9kZShzdHJ1Y3Qgb3R4Ml9uaWMgKnBmKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYy0xODYwLVxcdG11dGV4X2xvY2soXFx1MDAyNnBmLVxcdTAwM2VtYm94LmxvY2spO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM6MTg2MTpcXHRyZXEgPSBvdHgyX21ib3hfYWxsb2NfbXNnX25peF9zZXRfcnhfbW9kZShcXHUwMDI2cGYtXFx1MDAzZW1ib3gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmMtMTg2Mi1cXHRpZiAoIXJlcSkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYz00NTY9c3RhdGljIHZvaWQgb3R4MnZmX2RvX3NldF9yeF9tb2RlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmMtNDY0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmM6NDY1OlxcdHJlcSA9IG90eDJfbWJveF9hbGxvY19tc2dfbml4X3NldF9yeF9tb2RlKFxcdTAwMjZ2Zi1cXHUwMDNlbWJveCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYy00NjYtXFx0aWYgKCFyZXEpIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTQ6NDQuMzYzNzczOTY0WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU4NzMzMTY3NjAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgT2N0ZW9uIFRYMiBEcml2ZXIgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBob3cgdGhpcyBgbWJveC5oYCBtYWNybywgYE0oLi4uKWAsIGNyZWF0ZXMgdGhlIGhhbmRsZXIgYXJyYXkuIFRoZSBtZXNzYWdlIGl0c2VsZiBjb21lcyBmcm9tIGVpdGhlciB0aGUgUEYgZHJpdmVyIChgb3R4Ml9wZi5jYCkgb3IgdGhlIFZGIGRyaXZlciAoYG90eDJfdmYuY2ApLiBTcGVjaWZpY2FsbHksIHRoZSBQRiBkcml2ZXIgaXMgbmFtZWQgYE9DVEVPTlRYMl9QRmAsIGFuZCB0aGUgVkYgZHJpdmVyIGBPQ1RFT05UWDJfVkZgLiBUaGUgcXVlc3Rpb24gaXMsIGNhbiBzeXprYWxsZXIgYWN0dWFsbHkgKmZ1enoqIHRoaXMgZnVuY3Rpb25hbGl0eT9cblxuVGhlIG9idmlvdXMgcm91dGUgd291bGQgYmUgdG8gbGV2ZXJhZ2Ugc3l6a2FsbGVyJ3MgYWJpbGl0eSB0byBtYW5pcHVsYXRlIHRoZSBuZXR3b3JrIGludGVyZmFjZSdzIFJYIG1vZGUuIEknbSB0aGlua2luZyBhYm91dCB0cmlnZ2VyaW5nIGBvdHgyX2RvX3NldF9yeF9tb2RlYCBieSBzZW5kaW5nIGNvbW1hbmRzIGxpa2UgYFNJT0NTSUZGTEFHU2Agb3IgYFNJT0NBRERNVUxUSWAgdG8gc2V0IHRoaW5ncyBsaWtlIHByb21pc2N1b3VzIG1vZGUgb3IgdGhlIG11bHRpY2FzdCBsaXN0LiBJdCBzb3VuZHMgc3RyYWlnaHRmb3J3YXJkLCByaWdodD9cblxuQnV0IGEgY3J1Y2lhbCBodXJkbGU6IGRvZXMgc3l6a2FsbGVyIGV2ZW4gKmtub3cqIHRoaXMgc3BlY2lmaWMgaGFyZHdhcmU/IFR5cGljYWxseSwgc3l6a2FsbGVyIGRvZXNuJ3QgZGlyZWN0bHkgcHJvYmUgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlcnMgdW5sZXNzIGl0J3MgYSBnZW5lcmljIGRldmljZSwgb3IgdGhlcmUncyBzb21lIGtpbmQgb2YgdmlydHVhbCBkZXZpY2UgaW52b2x2ZWQuIEkgbmVlZCB0byB0aGluayBhYm91dCB0aGF0LlxuXG5IYW5nIG9uLi4uIFN5emthbGxlciBoYXMgYHZoY2lgISBJdCBjYW4gaW5qZWN0IGFyYml0cmFyeSBQQ0kgZGV2aWNlcy4gSWYgSSBjYW4gZW5hYmxlIGB2aGNpYCwgSSAqbWlnaHQqIGJlIGFibGUgdG8gZW11bGF0ZSB0aGUgUENJIGRldmljZSBzdWZmaWNpZW50bHkgdG8gYWxsb3cgc3l6a2FsbGVyIHRvIHByb2JlIGFuZCBpbnRlcmFjdCB3aXRoIHRoZSBkcml2ZXIuIFRoYXQncyB0aGUga2V5LlxuXG5Ob3csIEkndmUgZ290IHRvIGNvbmZpcm0gaWYgYE9DVEVPTlRYMl9BRmAgaXMgYWN0dWFsbHkgYSBQQ0kgZHJpdmVyLiBJZiBpdCBpcywgYHZoY2lgIGJlY29tZXMgYSB2ZXJ5IGludGVyZXN0aW5nIHBvc3NpYmlsaXR5IGZvciBmdXp6aW5nIHRoaXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY5MTUsIk91dHB1dFRva2VucyI6NDYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTQ6NTAuMjM3MDkzMDg1WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1ODY0NTUwNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwY2lfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTM3MzM9c3RhdGljIHZvaWQgcnZ1X3NodXRkb3duKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzc0Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzozNzQzOnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBydnVfZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM3NDQtXFx0Lm5hbWUgPSBEUlZfTkFNRSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTQ6NTAuMjk1NzQ0NzUyWiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYwNzY0ODg0MjIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBTeXprYWxsZXIgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyB3ZSdyZSBsb29raW5nIGF0IGEgcG90ZW50aWFsIGZ1enppbmcgdGFyZ2V0IOKAkyBhIFBDSSBkcml2ZXIsIHNwZWNpZmljYWxseS4gVGhlIGluaXRpYWwgdGhvdWdodCBpcywgY2FuIHN5emthbGxlciBiZSB1c2VkIHRvIHByb2JlIHRoaXMgZHJpdmVyPyBUaGUga2V5IGlzIHRoYXQgc3l6a2FsbGVyICpjYW4qIGVtdWxhdGUgYSBQQ0kgZGV2aWNlLCB3aGljaCBsZWFkcyBtZSB0byB0aGUgYHJ2dV9kcml2ZXJgLiBIb3dldmVyLCB0aGUgY29kZSBpbiBxdWVzdGlvbiwgYHJ2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlYCwgcmVzaWRlcyB3aXRoaW4gYSBtYWlsYm94IGhhbmRsZXIgaW5zaWRlIHRoZSBBRiBkcml2ZXIuIFRoaXMgQUYgZHJpdmVyLCBhcyBJIHJlY2FsbCwgYWN0cyBhcyBhIG1lc3NhZ2UgcmVsYXksIHJlY2VpdmluZyBjb21tdW5pY2F0aW9ucyBmcm9tIHRoZSBQRiBvciBWRiBkcml2ZXJzLlxuXG5TbywgdGhlIGNoYWxsZW5nZSBmb3Igc3l6a2FsbGVyIGJlY29tZXMgY2xlYXI6IGl0IG5lZWRzIHRvIGVmZmVjdGl2ZWx5IGVtdWxhdGUgdGhlIFBGL1ZGIHNlbmRpbmcgYSB2YWxpZCBtZXNzYWdlIHRvIHRoZSBBRiBkcml2ZXIgaW4gb3JkZXIgdG8gZXZlbiAqcmVhY2gqIHRoZSB2dWxuZXJhYmxlIGNvZGUuIFRoYXQgaW1wbGllcyB0aGUgQUYgZHJpdmVyIHJlY2VpdmVzIG1lc3NhZ2VzIHZpYSB0aGUgaGFyZHdhcmUgbWFpbGJveCwgd2hpY2ggaW52b2x2ZXMgc2hhcmVkIG1lbW9yeSBhbmQgaW50ZXJydXB0cy4gVGh1cywgdG8gZXhwbG9pdCB0aGlzLCBzeXprYWxsZXIsIGJ5IGVtdWxhdGluZyB0aGUgUENJIGRldmljZSwgbXVzdCBub3Qgb25seSBkZWFsIHdpdGggdGhlIE1NSU8gYnV0IGFsc28gcHJlY2lzZWx5IGVtdWxhdGUgdGhlIG1haWxib3ggbWVtb3J5IGFuZCB0cmlnZ2VyIHRoZSBhcHByb3ByaWF0ZSBtYWlsYm94IGludGVycnVwdCB0byBzaWduYWwgdGhlIEFGIGRyaXZlci5cblxuQnV0IGhlcmUncyB0aGUgcnViLiBTeXprYWxsZXIncyBgdmhjaWAgKmNhbiogaW5qZWN0IFBDSSBkZXZpY2VzLCBidXQgaXQncyBub3QgZGVzaWduZWQgdG8gYmUgaGFyZHdhcmUtc3BlY2lmaWMuIEl0IGRvZXNuJ3QgaW5oZXJlbnRseSB1bmRlcnN0YW5kIHRoZSBwYXJ0aWN1bGFyIHNlbWFudGljcyBvZiB0aGUgT2N0ZW9uVFgyIG1haWxib3ggdW5sZXNzIHNvbWVvbmUgZXhwbGljaXRseSBtb2RlbHMgaXQgaW4gc3l6a2FsbGVyLlxuXG5UaGVuIHRoZSBuZXh0IHRob3VnaHQgaXM6IHN5emthbGxlciB1c3VhbGx5IGRvZXNuJ3QgbW9kZWwgZXZlcnkgc3BlY2lmaWMgaGFyZHdhcmUgZGV0YWlsLiBJdCdzIG1vcmUgb2YgYSBnZW5lcmFsIGZ1enppbmcgZnJhbWV3b3JrLCBwcm92aWRpbmcgcmFuZG9tIGRhdGEgZm9yIG1lbW9yeS1tYXBwZWQgSS9PIChNTUlPKSByZWFkcyBhbmQgZ2VuZXJhdGluZyBpbnRlcnJ1cHRzLlxuXG5JZiBzeXprYWxsZXIgc2ltcGx5IHByb3ZpZGVzIHJhbmRvbSBkYXRhIHRvIHRoZSBtYWlsYm94IG1lbW9yeSBhbmQgdGhlbiB0cmlnZ2VycyB0aGUgaW50ZXJydXB0LCB0aGVyZSdzIGEgZ29vZCBjaGFuY2UgdGhhdCB0aGUgQUYgZHJpdmVyIHdpbGwsIGF0IGxlYXN0LCAqYXR0ZW1wdCogdG8gaW50ZXJwcmV0IHRoYXQgcmFuZG9tIGRhdGEgYXMgYSBtYWlsYm94IG1lc3NhZ2UuIFRoZSBBRiBkcml2ZXIgY291bGQgY2FsbCBgcnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGVgLCB3aGljaCBjb3VsZCByZXZlYWwgYSB2dWxuZXJhYmlsaXR5LlxuXG5UaGVyZWZvcmUsIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBhbmFseXplIHRoZSBpbnRlcnJ1cHQgaGFuZGxpbmcgd2l0aGluIGBydnUuY2AgdG8gc2VlIGhvdyB0aGF0IG1haWxib3ggaW50ZXJydXB0IGlzIHByb2Nlc3NlZC4gVGhhdCBzaG91bGQgb2ZmZXIgY2x1ZXMgYXMgdG8gaG93IHRvIGJlc3QgdHJpZ2dlciBpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6Nzc0NiwiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMToxNDo1Ni4zNzIyMzcyNDVaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU5MjI3Mjk4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1ib3hfaGFuZGxlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxMDMwIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9uaXguYy0xMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9uaXguYzoxNDppbnQgcnZ1X21ib3hfaGFuZGxlcl9uaXhfY24yMGtfYXFfZW5xKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9uaXguYy0xNS1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3Qgbml4X2NuMjBrX2FxX2VucV9yZXEgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYS5jLTEzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYS5jOjE0OmludCBydnVfbWJveF9oYW5kbGVyX25wYV9jbjIwa19hcV9lbnEoc3RydWN0IHJ2dSAqcnZ1LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYS5jLTE1LVxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBucGFfY24yMGtfYXFfZW5xX3JlcSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBhLmMtMjAtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYS5jOjIxOkVYUE9SVF9TWU1CT0wocnZ1X21ib3hfaGFuZGxlcl9ucGFfY24yMGtfYXFfZW5xKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jPTEyMzY9aW50IG5wY19jbjIwa19yZWFkX21jYW1fZW50cnkoc3RydWN0IHJ2dSAqcnZ1LCBpbnQgYmxrYWRkciwgdTE2IGluZGV4LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtMTM2Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYzoxMzYzOmludCBydnVfbWJveF9oYW5kbGVyX25wY19jbjIwa19tY2FtX3dyaXRlX2VudHJ5KHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy0xMzY0LVxcdFxcdFxcdFxcdFxcdFxcdHN0cnVjdCBucGNfY24yMGtfbWNhbV93cml0ZV9lbnRyeV9yZXEgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jLTE0MDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM6MTQwNzppbnQgcnZ1X21ib3hfaGFuZGxlcl9ucGNfY24yMGtfbWNhbV9yZWFkX2VudHJ5KHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy0xNDA4LVxcdFxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgbnBjX21jYW1fcmVhZF9lbnRyeV9yZXEgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jLTE0MzMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM6MTQzNDppbnQgcnZ1X21ib3hfaGFuZGxlcl9ucGNfY24yMGtfbWNhbV9hbGxvY19hbmRfd3JpdGVfZW50cnkoc3RydWN0IHJ2dSAqcnZ1LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jLTE0MzUtXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgbnBjX2NuMjBrX21jYW1fYWxsb2NfYW5kX3dyaXRlX2VudHJ5X3JlcSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtMTQ2Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYzoxNDYzOlxcdHJjID0gcnZ1X21ib3hfaGFuZGxlcl9ucGNfbWNhbV9hbGxvY19lbnRyeShydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtMTQ2NC1cXHRcXHRcXHRcXHRcXHRcXHQgICBcXHUwMDI2ZW50cnlfcmVxLCBcXHUwMDI2ZW50cnlfcnNwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jLTE0ODktXFx0XFx0ZnJlZV9yZXEuZW50cnkgPSBlbnRyeV9yc3AuZW50cnk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM6MTQ5MDpcXHRcXHRlcnIgPSBydnVfbWJveF9oYW5kbGVyX25wY19tY2FtX2ZyZWVfZW50cnkocnZ1LCBcXHUwMDI2ZnJlZV9yZXEsIFxcdTAwMjZmcmVlX3JzcCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtMTQ5MS1cXHRcXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM9MTUwMj1zdGF0aWMgaW50IHJ2dV9ucGNfZ2V0X2Jhc2Vfc3RlZXJfcnVsZV90eXBlKHN0cnVjdCBydnUgKnJ2dSwgdTE2IHBjaWZ1bmMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy0xNTA5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jOjE1MTA6aW50IHJ2dV9tYm94X2hhbmRsZXJfbnBjX2NuMjBrX3JlYWRfYmFzZV9zdGVlcl9ydWxlKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy0xNTExLVxcdFxcdFxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM9MzM1ND1pbnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYzozMzU1OnJ2dV9tYm94X2hhbmRsZXJfbnBjX2NuMjBrX2dldF9mY250KHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy0zMzU2LVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM9MzM2ND1pbnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYzozMzY1OnJ2dV9tYm94X2hhbmRsZXJfbnBjX2NuMjBrX2dldF9rZXhfY2ZnKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy0zMzY2LVxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM9NDA0NT1pbnQgbnBjX2NuMjBrX2RlZnJhZyhzdHJ1Y3QgcnZ1ICpydnUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy00MTU0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jOjQxNTU6aW50IHJ2dV9tYm94X2hhbmRsZXJfbnBjX2RlZnJhZyhzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtNDE1Ni1cXHRcXHRcXHRcXHRzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM9NDE2MT1pbnQgbnBjX2NuMjBrX2RmdF9ydWxlc19pZHhfZ2V0KHN0cnVjdCBydnUgKnJ2dSwgdTE2IHBjaWZ1bmMsIHUxNiAqYmNhc3QsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy00MjM5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jOjQyNDA6aW50IHJ2dV9tYm94X2hhbmRsZXJfbnBjX2dldF9wZmxfaW5mbyhzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtNDI0MS1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgbnBjX2dldF9wZmxfaW5mb19yc3AgKnJzcClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jLTQyNTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM6NDI1MzppbnQgcnZ1X21ib3hfaGFuZGxlcl9ucGNfZ2V0X251bV9rd3Moc3RydWN0IHJ2dSAqcnZ1LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jLTQyNTQtXFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgbnBjX2dldF9udW1fa3dzX3JlcSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtNDI5Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYzo0Mjk4OmludCBydnVfbWJveF9oYW5kbGVyX25wY19nZXRfZGZ0X3JsX2lkeHMoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jLTQyOTktXFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBucGNfZ2V0X2RmdF9ybF9pZHhzX3JzcCAqcnNwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmM9NDQzMz1pbnQgbnBjX2NuMjBrX2RmdF9ydWxlc19hbGxvYyhzdHJ1Y3QgcnZ1ICpydnUsIHUxNiBwY2lmdW5jKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtNDUwOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYzo0NTEwOlxcdHJldCA9IHJ2dV9tYm94X2hhbmRsZXJfbnBjX21jYW1fYWxsb2NfZW50cnkocnZ1LCBcXHUwMDI2cmVxLCBcXHUwMDI2cnNwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy00NTExLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbnBjLmMtNDU0Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYzo0NTQ4OlxcdHJldCA9IHJ2dV9tYm94X2hhbmRsZXJfbnBjX21jYW1fYWxsb2NfZW50cnkocnZ1LCBcXHUwMDI2cmVxLCBcXHUwMDI2cnNwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy00NTQ5LVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL25wYy5jLTQ2MjEtXFx0ZnJlZV9yZXEuYWxsID0gMTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYzo0NjIyOlxcdHJldCA9IHJ2dV9tYm94X2hhbmRsZXJfbnBjX21jYW1fZnJlZV9lbnRyeShydnUsIFxcdTAwMjZmcmVlX3JlcSwgXFx1MDAyNmZyZWVfcnNwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9ucGMuYy00NjIzLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM9MzY9dm9pZCBydnVfbWNzX3B0cF9jZmcoc3RydWN0IHJ2dSAqcnZ1LCB1OCBycG1faWQsIHU4IGxtYWNfaWQsIGJvb2wgZW5hKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTcxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzo3MjppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3Nfc2V0X2xtYWNfbW9kZShzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTczLVxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgbWNzX3NldF9sbWFjX21vZGUgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYz0xNTM9c3RhdGljIHZvaWQgbWNzX2ludHJfaGFuZGxlcl90YXNrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0xNzgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jOjE3OTppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3NfaW50cl9jZmcoc3RydWN0IHJ2dSAqcnZ1LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0xODAtXFx0XFx0XFx0XFx0ICBzdHJ1Y3QgbWNzX2ludHJfY2ZnICpyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMjAzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzoyMDQ6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX2dldF9od19pbmZvKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMjA1LVxcdFxcdFxcdFxcdCAgICAgc3RydWN0IG1zZ19yZXEgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0yMjItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jOjIyMzppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3NfcG9ydF9yZXNldChzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtY3NfcG9ydF9yZXNldF9yZXEgKnJlcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMjI0LVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTIzNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6MjM4OmludCBydnVfbWJveF9oYW5kbGVyX21jc19jbGVhcl9zdGF0cyhzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTIzOS1cXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBtY3NfY2xlYXJfc3RhdHMgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0yNTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jOjI2MDppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3NfZ2V0X2Zsb3dpZF9zdGF0cyhzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTI2MS1cXHRcXHRcXHRcXHRcXHQgIHN0cnVjdCBtY3Nfc3RhdHNfcmVxICpyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMjkwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzoyOTE6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX2dldF9zZWN5X3N0YXRzKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMjkyLVxcdFxcdFxcdFxcdFxcdHN0cnVjdCBtY3Nfc3RhdHNfcmVxICpyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMzE4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzozMTk6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX2dldF9zY19zdGF0cyhzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTMyMC1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgbWNzX3N0YXRzX3JlcSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTM0Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6MzQzOmludCBydnVfbWJveF9oYW5kbGVyX21jc19nZXRfc2Ffc3RhdHMoc3RydWN0IHJ2dSAqcnZ1LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0zNDQtXFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IG1jc19zdGF0c19yZXEgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0zNjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jOjM2NzppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3NfZ2V0X3BvcnRfc3RhdHMoc3RydWN0IHJ2dSAqcnZ1LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0zNjgtXFx0XFx0XFx0XFx0XFx0c3RydWN0IG1jc19zdGF0c19yZXEgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0zOTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jOjM5MTppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3Nfc2V0X2FjdGl2ZV9sbWFjKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMzkyLVxcdFxcdFxcdFxcdFxcdCBzdHJ1Y3QgbWNzX3NldF9hY3RpdmVfbG1hYyAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTQwOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NDA5OmludCBydnVfbWJveF9oYW5kbGVyX21jc19wb3J0X2NmZ19zZXQoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbWNzX3BvcnRfY2ZnX3NldF9yZXEgKnJlcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNDEwLVxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBtc2dfcnNwICpyc3ApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNDI2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzo0Mjc6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX3BvcnRfY2ZnX2dldChzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtY3NfcG9ydF9jZmdfZ2V0X3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy00MjgtXFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IG1jc19wb3J0X2NmZ19nZXRfcnNwICpyc3ApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNDQ0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzo0NDU6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX2N1c3RvbV90YWdfY2ZnX2dldChzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtY3NfY3VzdG9tX3RhZ19jZmdfZ2V0X3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy00NDYtXFx0XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBtY3NfY3VzdG9tX3RhZ19jZmdfZ2V0X3JzcCAqcnNwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jPTQ2MD1pbnQgcnZ1X21jc19mbHJfaGFuZGxlcihzdHJ1Y3QgcnZ1ICpydnUsIHUxNiBwY2lmdW5jKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTQ4MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NDgxOmludCBydnVfbWJveF9oYW5kbGVyX21jc19mbG93aWRfZW5hX2VudHJ5KHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNDgyLVxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IG1jc19mbG93aWRfZW5hX2Rpc19lbnRyeSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTQ5NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NDk1OmludCBydnVfbWJveF9oYW5kbGVyX21jc19wbl90YWJsZV93cml0ZShzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTQ5Ni1cXHRcXHRcXHRcXHRcXHRzdHJ1Y3QgbWNzX3BuX3RhYmxlX3dyaXRlX3JlcSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTUwOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NTA5OmludCBydnVfbWJveF9oYW5kbGVyX21jc19zZXRfcG5fdGhyZXNob2xkKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNTEwLVxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IG1jc19zZXRfcG5fdGhyZXNob2xkICpyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNTI0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzo1MjU6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX3J4X3NjX3NhX21hcF93cml0ZShzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTUyNi1cXHRcXHRcXHRcXHRcXHQgICAgc3RydWN0IG1jc19yeF9zY19zYV9tYXAgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy01MzgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jOjUzOTppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3NfdHhfc2Nfc2FfbWFwX3dyaXRlKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNTQwLVxcdFxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgbWNzX3R4X3NjX3NhX21hcCAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTU1NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6NTU1OmludCBydnVfbWJveF9oYW5kbGVyX21jc19zYV9wbGN5X3dyaXRlKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNTU2LVxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgbWNzX3NhX3BsY3lfd3JpdGVfcmVxICpyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNTcyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzo1NzM6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX3J4X3NjX2NhbV93cml0ZShzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTU3NC1cXHRcXHRcXHRcXHRcXHQgc3RydWN0IG1jc19yeF9zY19jYW1fd3JpdGVfcmVxICpyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNTg2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzo1ODc6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX3NlY3lfcGxjeV93cml0ZShzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTU4OC1cXHRcXHRcXHRcXHRcXHQgc3RydWN0IG1jc19zZWN5X3BsY3lfd3JpdGVfcmVxICpyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNjAxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzo2MDI6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX2Zsb3dpZF9lbnRyeV93cml0ZShzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTYwMy1cXHRcXHRcXHRcXHRcXHQgICAgc3RydWN0IG1jc19mbG93aWRfZW50cnlfd3JpdGVfcmVxICpyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNjI4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzo2Mjk6aW50IHJ2dV9tYm94X2hhbmRsZXJfbWNzX2ZyZWVfcmVzb3VyY2VzKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtNjMwLVxcdFxcdFxcdFxcdFxcdHN0cnVjdCBtY3NfZnJlZV9yc3JjX3JlcSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTY3OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6Njc5OmludCBydnVfbWJveF9oYW5kbGVyX21jc19hbGxvY19yZXNvdXJjZXMoc3RydWN0IHJ2dSAqcnZ1LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy02ODAtXFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBtY3NfYWxsb2NfcnNyY19yZXEgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy03NjAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jOjc2MTppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3NfYWxsb2NfY3RybF9wa3RfcnVsZShzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTc2Mi1cXHRcXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBtY3NfYWxsb2NfY3RybF9wa3RfcnVsZV9yZXEgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy04MTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jOjgxODppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3NfZnJlZV9jdHJsX3BrdF9ydWxlKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtODE5LVxcdFxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgbWNzX2ZyZWVfY3RybF9wa3RfcnVsZV9yZXEgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy04MzgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jOjgzOTppbnQgcnZ1X21ib3hfaGFuZGxlcl9tY3NfY3RybF9wa3RfcnVsZV93cml0ZShzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTg0MC1cXHRcXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBtY3NfY3RybF9wa3RfcnVsZV93cml0ZV9yZXEgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jPTYxMj1zdHJ1Y3QgcGNpX2RyaXZlciBwdHBfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNjE4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjYxOTppbnQgcnZ1X21ib3hfaGFuZGxlcl9wdHBfb3Aoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgcHRwX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTYyMC1cXHRcXHRcXHQgICAgc3RydWN0IHB0cF9yc3AgKnJzcClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTY2My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzo2NjQ6aW50IHJ2dV9tYm94X2hhbmRsZXJfcHRwX2dldF9jYXAoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTY2NS1cXHRcXHRcXHRcXHQgc3RydWN0IHB0cF9nZXRfY2FwX3JzcCAqcnNwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MzY9c3RhdGljIGludCBydnVfbWJveF9pbml0KHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1ib3hfd3FfaW5mbyAqbXcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzctXFx0XFx0XFx0IGludCB0eXBlLCBpbnQgbnVtLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjM4OlxcdFxcdFxcdCB2b2lkIChtYm94X2hhbmRsZXIpKHN0cnVjdCB3b3JrX3N0cnVjdCAqKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zOS1cXHRcXHRcXHQgdm9pZCAobWJveF91cF9oYW5kbGVyKShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKikpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MTIzNj1pbnQgcnZ1X2FxX2FsbG9jKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IGFkbWluX3F1ZXVlICoqYWRfcXVldWUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0xMjY0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjEyNjU6aW50IHJ2dV9tYm94X2hhbmRsZXJfcmVhZHkoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTEyNjYtXFx0XFx0XFx0ICAgc3RydWN0IHJlYWR5X21zZ19yc3AgKnJzcClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTE0NTU9c3RhdGljIGludCBydnVfZGV0YWNoX3JzcmNzKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IHJzcmNfZGV0YWNoICpkZXRhY2gsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0xNTA3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjE1MDg6aW50IHJ2dV9tYm94X2hhbmRsZXJfZGV0YWNoX3Jlc291cmNlcyhzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMTUwOS1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgcnNyY19kZXRhY2ggKmRldGFjaCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTE3MzY9c3RhdGljIGJvb2wgcnZ1X2F0dGFjaF9mcm9tX3NhbWVfYmxvY2soc3RydWN0IHJ2dSAqcnZ1LCBpbnQgYmxrdHlwZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTE3NTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MTc1MjppbnQgcnZ1X21ib3hfaGFuZGxlcl9hdHRhY2hfcmVzb3VyY2VzKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0xNzUzLVxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCByc3JjX2F0dGFjaCAqYXR0YWNoLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MTkwNj1zdGF0aWMgdm9pZCBydnVfY2xlYXJfbXNpeF9vZmZzZXQoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgcnZ1X3BmdmYgKnBmdmYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0xOTI5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjE5MzA6aW50IHJ2dV9tYm94X2hhbmRsZXJfbXNpeF9vZmZzZXQoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTE5MzEtXFx0XFx0XFx0XFx0IHN0cnVjdCBtc2l4X29mZnNldF9yc3AgKnJzcClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTE5OTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MTk5MzppbnQgcnZ1X21ib3hfaGFuZGxlcl9mcmVlX3JzcmNfY250KHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0xOTk0LVxcdFxcdFxcdFxcdCAgIHN0cnVjdCBmcmVlX3JzcmNzX3JzcCAqcnNwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjA4NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyMDg2OmludCBydnVfbWJveF9oYW5kbGVyX3ZmX2ZscihzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjA4Ny1cXHRcXHRcXHQgICAgc3RydWN0IG1zZ19yc3AgKnJzcClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTIxMDY9aW50IHJ2dV9uZGNfc3luYyhzdHJ1Y3QgcnZ1ICpydnUsIGludCBsZmJsa2FkZHIsIGludCBsZmlkeCwgdTY0IGxmb2Zmc2V0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjExMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyMTEzOmludCBydnVfbWJveF9oYW5kbGVyX2dldF9od19jYXAoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTIxMTQtXFx0XFx0XFx0XFx0c3RydWN0IGdldF9od19jYXBfcnNwICpyc3ApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yMTI3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjIxMjg6aW50IHJ2dV9tYm94X2hhbmRsZXJfc2V0X3ZmX3Blcm0oc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3Qgc2V0X3ZmX3Blcm0gKnJlcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yMTI5LVxcdFxcdFxcdFxcdCBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjE2OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyMTcwOmludCBydnVfbWJveF9oYW5kbGVyX25kY19zeW5jX29wKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yMTcxLVxcdFxcdFxcdFxcdCBzdHJ1Y3QgbmRjX3N5bmNfb3AgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTIyNTY9c3RhdGljIGludCBydnVfcHJvY2Vzc19tYm94X21zZyhzdHJ1Y3Qgb3R4Ml9tYm94ICptYm94LCBpbnQgZGV2aWQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yMjg3LVxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyMjg4OlxcdFxcdGVyciA9IHJ2dV9tYm94X2hhbmRsZXJfICMjIF9mbl9uYW1lKHJ2dSxcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjI4OS1cXHRcXHRcXHRcXHRcXHRcXHQgICAgKHN0cnVjdCBfcmVxX3R5cGUgKilyZXEsIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTIyOTc9TUJPWF9NRVNTQUdFU1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjMwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyMzA3OnN0YXRpYyB2b2lkIF9fcnZ1X21ib3hfaGFuZGxlcihzdHJ1Y3QgcnZ1X3dvcmsgKm13b3JrLCBpbnQgdHlwZSwgYm9vbCBwb2xsKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTIzMDgte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjM5Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyMzk4OnN0YXRpYyBpbmxpbmUgdm9pZCBydnVfYWZwZl9tYm94X2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTIzOTkte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjQwMy1cXHRtdXRleF9sb2NrKFxcdTAwMjZydnUtXFx1MDAzZW1ib3hfbG9jayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MjQwNDpcXHRfX3J2dV9tYm94X2hhbmRsZXIobXdvcmssIFRZUEVfQUZQRiwgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjQwNS1cXHRtdXRleF91bmxvY2soXFx1MDAyNnJ2dS1cXHUwMDNlbWJveF9sb2NrKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI0MDctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MjQwODpzdGF0aWMgaW5saW5lIHZvaWQgcnZ1X2FmdmZfbWJveF9oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNDA5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI0MTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MjQxMjpcXHRfX3J2dV9tYm94X2hhbmRsZXIobXdvcmssIFRZUEVfQUZWRiwgZmFsc2UpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI0MTMtfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MjU3MD1zdGF0aWMgaW50IHJ2dV9tYm94X2luaXQoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbWJveF93cV9pbmZvICptdyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNTcxLVxcdFxcdFxcdCBpbnQgdHlwZSwgaW50IG51bSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyNTcyOlxcdFxcdFxcdCB2b2lkIChtYm94X2hhbmRsZXIpKHN0cnVjdCB3b3JrX3N0cnVjdCAqKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNTczLVxcdFxcdFxcdCB2b2lkIChtYm94X3VwX2hhbmRsZXIpKHN0cnVjdCB3b3JrX3N0cnVjdCAqKSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI2ODQtXFx0XFx0bXdvcmstXFx1MDAzZXJ2dSA9IHJ2dTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyNjg1OlxcdFxcdElOSVRfV09SSyhcXHUwMDI2bXdvcmstXFx1MDAzZXdvcmssIG1ib3hfaGFuZGxlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjY4Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTI3MzQ9dm9pZCBydnVfcXVldWVfd29yayhzdHJ1Y3QgbWJveF93cV9pbmZvICptdywgaW50IGZpcnN0LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjc1My1cXHRcXHQgKiB3aGVuIHRoZSBpbnRlcnJ1cHQgaGFuZGxlciBpcyBjYWxsZWQuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6Mjc1NDpcXHRcXHQgKiBwZi1cXHUwMDNlbWJveC5udW1fbXNncyBob2xkcyB0aGUgZGF0YSBmb3IgdXNlIGluIHBmYWZfbWJveF9oYW5kbGVyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjc1NS1cXHRcXHQgKiBwZlxcdTAwM2VtYm94LnVwX251bV9tc2dzIGhvbGRzIHRoZSBkYXRhIGZvciB1c2UgaW5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTM0NjY9c3RhdGljIGludCBydnVfZW5hYmxlX3NyaW92KHN0cnVjdCBydnUgKnJ2dSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM1MDktXFx0ZXJyID0gcnZ1X21ib3hfaW5pdChydnUsIFxcdTAwMjZydnUtXFx1MDAzZWFmdmZfd3FfaW5mbywgVFlQRV9BRlZGLCB2ZnMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MzUxMDpcXHRcXHRcXHQgICAgcnZ1X2FmdmZfbWJveF9oYW5kbGVyLCBydnVfYWZ2Zl9tYm94X3VwX2hhbmRsZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM1MTEtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTM1NDc9c3RhdGljIGludCBydnVfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM2MjctXFx0ZXJyID0gcnZ1X21ib3hfaW5pdChydnUsIFxcdTAwMjZydnUtXFx1MDAzZWFmcGZfd3FfaW5mbywgVFlQRV9BRlBGLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjM2Mjg6XFx0XFx0XFx0ICAgIHJ2dS1cXHUwMDNlaHctXFx1MDAzZXRvdGFsX3BmcywgcnZ1X2FmcGZfbWJveF9oYW5kbGVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM2MjktXFx0XFx0XFx0ICAgIHJ2dV9hZnBmX21ib3hfdXBfaGFuZGxlcik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuaD05ODM9c3RhdGljIGlubGluZSBib29sIGlzX2NneF92ZihzdHJ1Y3QgcnZ1ICpydnUsIHUxNiBwY2lmdW5jKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmgtOTg5LSNkZWZpbmUgTShfbmFtZSwgX2lkLCBmbl9uYW1lLCByZXEsIHJzcClcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1Lmg6OTkwOmludCBydnVfbWJveF9oYW5kbGVyXyAjIyBmbl9uYW1lKHN0cnVjdCBydnUgKiwgc3RydWN0IHJlcSAqLCBzdHJ1Y3QgcnNwICopO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5oLTk5MS1NQk9YX01FU1NBR0VTXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM9NTI3PXZvaWQgcnZ1X2NneF9kaXNhYmxlX2RtYWNfZW50cmllcyhzdHJ1Y3QgcnZ1ICpydnUsIHUxNiBwY2lmdW5jKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTU2Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6NTYzOmludCBydnVfbWJveF9oYW5kbGVyX2NneF9zdGFydF9yeHR4KHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtNTY0LVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTU2OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6NTcwOmludCBydnVfbWJveF9oYW5kbGVyX2NneF9zdG9wX3J4dHgoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy01NzEtXFx0XFx0XFx0XFx0ICAgc3RydWN0IG1zZ19yc3AgKnJzcClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYz01Nzc9c3RhdGljIGludCBydnVfbG1hY19nZXRfc3RhdHMoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTYyMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6NjIxOmludCBydnVfbWJveF9oYW5kbGVyX2NneF9zdGF0cyhzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTYyMi1cXHRcXHRcXHQgICAgICAgc3RydWN0IGNneF9zdGF0c19yc3AgKnJzcClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy02MjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjYyNzppbnQgcnZ1X21ib3hfaGFuZGxlcl9ycG1fc3RhdHMoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy02MjgtXFx0XFx0XFx0ICAgICAgIHN0cnVjdCBycG1fc3RhdHNfcnNwICpyc3ApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtNjMyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo2MzM6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X3N0YXRzX3JzdChzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTYzNC1cXHRcXHRcXHRcXHQgICBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTY2MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6NjYyOmludCBydnVfbWJveF9oYW5kbGVyX2NneF9mZWNfc3RhdHMoc3RydWN0IHJ2dSAqcnZ1LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy02NjMtXFx0XFx0XFx0XFx0ICAgc3RydWN0IG1zZ19yZXEgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy02NzktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjY4MDppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfbWFjX2FkZHJfc2V0KHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtNjgxLVxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBjZ3hfbWFjX2FkZHJfc2V0X29yX2dldCAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTcwMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6NzAzOmludCBydnVfbWJveF9oYW5kbGVyX2NneF9tYWNfYWRkcl9hZGQoc3RydWN0IHJ2dSAqcnZ1LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy03MDQtXFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IGNneF9tYWNfYWRkcl9hZGRfcmVxICpyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtNzI2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo3Mjc6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X21hY19hZGRyX2RlbChzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTcyOC1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgY2d4X21hY19hZGRyX2RlbF9yZXEgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy03NDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjc0NDppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfbWFjX21heF9lbnRyaWVzX2dldChzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTc0NS1cXHRcXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBtc2dfcmVxICpyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtNzcwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo3NzE6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X21hY19hZGRyX2dldChzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTc3Mi1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgY2d4X21hY19hZGRyX3NldF9vcl9nZXQgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy03ODMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjc4NDppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfcHJvbWlzY19lbmFibGUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy03ODUtXFx0XFx0XFx0XFx0XFx0c3RydWN0IG1zZ19yc3AgKnJzcClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy04MDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjgwNDppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfcHJvbWlzY19kaXNhYmxlKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtODA1LVxcdFxcdFxcdFxcdFxcdCBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jPTgyMz1zdGF0aWMgaW50IHJ2dV9jZ3hfcHRwX3J4X2NmZyhzdHJ1Y3QgcnZ1ICpydnUsIHUxNiBwY2lmdW5jLCBib29sIGVuYWJsZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy04NTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjg1OTppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfcHRwX3J4X2VuYWJsZShzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTg2MC1cXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IG1zZ19yc3AgKnJzcClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy04NjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjg2ODppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfcHRwX3J4X2Rpc2FibGUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy04NjktXFx0XFx0XFx0XFx0XFx0c3RydWN0IG1zZ19yc3AgKnJzcClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYz04NzQ9c3RhdGljIGludCBydnVfY2d4X2NvbmZpZ19saW5rZXZlbnRzKHN0cnVjdCBydnUgKnJ2dSwgdTE2IHBjaWZ1bmMsIGJvb2wgZW4pXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtODk0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo4OTU6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X3N0YXJ0X2xpbmtldmVudHMoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy04OTYtXFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTkwMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6OTAyOmludCBydnVfbWJveF9oYW5kbGVyX2NneF9zdG9wX2xpbmtldmVudHMoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy05MDMtXFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBtc2dfcnNwICpyc3ApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtOTA4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo5MDk6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X2dldF9saW5raW5mbyhzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBtc2dfcmVxICpyZXEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTkxMC1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgY2d4X2xpbmtfaW5mb19tc2cgKnJzcClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy05MjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjkyNzppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfZmVhdHVyZXNfZ2V0KHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtOTI4LVxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBtc2dfcmVxICpyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM9OTcxPXN0YXRpYyBpbnQgcnZ1X2NneF9jb25maWdfaW50bGJrKHN0cnVjdCBydnUgKnJ2dSwgdTE2IHBjaWZ1bmMsIGJvb2wgZW4pXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtOTg2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo5ODc6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X2ludGxia19lbmFibGUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy05ODgtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBtc2dfcnNwICpyc3ApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtOTkzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo5OTQ6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X2ludGxia19kaXNhYmxlKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtOTk1LVxcdFxcdFxcdFxcdFxcdHN0cnVjdCBtc2dfcnNwICpyc3ApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM9MTAwMT1pbnQgcnZ1X2NneF9jZmdfcGF1c2VfZnJtKHN0cnVjdCBydnUgKnJ2dSwgdTE2IHBjaWZ1bmMsIHU4IHR4X3BhdXNlLCB1OCByeF9wYXVzZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy0xMDM5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzoxMDQwOmludCBydnVfbWJveF9oYW5kbGVyX2NneF9jZmdfcGF1c2VfZnJtKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtMTA0MS1cXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IGNneF9wYXVzZV9mcm1fY2ZnICpyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtMTA2Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6MTA2ODppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfZ2V0X3BoeV9mZWNfc3RhdHMoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy0xMDY5LVxcdFxcdFxcdFxcdFxcdCAgIHN0cnVjdCBtc2dfcnNwICpyc3ApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM9MTEyNj1pbnQgcnZ1X2NneF9zdGFydF9zdG9wX2lvKHN0cnVjdCBydnUgKnJ2dSwgdTE2IHBjaWZ1bmMsIGJvb2wgc3RhcnQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtMTE3Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6MTE3MzppbnQgcnZ1X21ib3hfaGFuZGxlcl9jZ3hfc2V0X2ZlY19wYXJhbShzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTExNzQtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBmZWNfbW9kZSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTExODktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjExOTA6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X2dldF9hdXhfbGlua19pbmZvKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtMTE5MS1cXHRcXHRcXHRcXHRcXHQgICBzdHJ1Y3QgY2d4X2Z3X2RhdGEgKnJzcClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy0xMjE1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzoxMjE2OmludCBydnVfbWJveF9oYW5kbGVyX2NneF9zZXRfbGlua19tb2RlKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtMTIxNy1cXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IGNneF9zZXRfbGlua19tb2RlX3JlcSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTEyNDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjEyNDM6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X21hY19hZGRyX3Jlc2V0KHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IGNneF9tYWNfYWRkcl9yZXNldF9yZXEgKnJlcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtMTI0NC1cXHRcXHRcXHRcXHRcXHRzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTEyNTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjEyNjA6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X21hY19hZGRyX3VwZGF0ZShzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTEyNjEtXFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBjZ3hfbWFjX2FkZHJfdXBkYXRlX3JlcSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jPTEyNzc9aW50IHJ2dV9jZ3hfcHJpb19mbG93X2N0cmxfY2ZnKHN0cnVjdCBydnUgKnJ2dSwgdTE2IHBjaWZ1bmMsIHU4IHR4X3BhdXNlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTEzMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjEzMTQ6aW50IHJ2dV9tYm94X2hhbmRsZXJfY2d4X3ByaW9fZmxvd19jdHJsX2NmZyhzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTEzMTUtXFx0XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBjZ3hfcGZjX2NmZyAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NuMTBrLmM9MTEzPXN0YXRpYyBpbnQgcnZ1X3VwZGF0ZV9sbXRhZGRyKHN0cnVjdCBydnUgKnJ2dSwgdTE2IHBjaWZ1bmMsIHU2NCBsbXRfYWRkcilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jbjEway5jLTE0Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY24xMGsuYzoxNDg6aW50IHJ2dV9tYm94X2hhbmRsZXJfbG10c3RfdGJsX3NldHVwKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY24xMGsuYy0xNDktXFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgbG10c3RfdGJsX3NldHVwX3JlcSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jPTQzMz1zdGF0aWMgaW50IHZhbGlkYXRlX2FuZF9nZXRfY3B0X2Jsa2FkZHIoaW50IHJlcV9ibGthZGRyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jLTQ0My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmM6NDQ0OmludCBydnVfbWJveF9oYW5kbGVyX2NwdF9sZl9hbGxvYyhzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jLTQ0NS1cXHRcXHRcXHRcXHQgIHN0cnVjdCBjcHRfbGZfYWxsb2NfcmVxX21zZyAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jPTUxND1zdGF0aWMgaW50IGNwdF9sZl9mcmVlKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1zZ19yZXEgKnJlcSwgaW50IGJsa2FkZHIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmMtNTQ0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYzo1NDU6aW50IHJ2dV9tYm94X2hhbmRsZXJfY3B0X2xmX2ZyZWUoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYy01NDYtXFx0XFx0XFx0XFx0IHN0cnVjdCBtc2dfcnNwICpyc3ApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmM9NjE0PXN0YXRpYyBpbnQgY3B0X2lubGluZV9pcHNlY19jZmdfb3V0Ym91bmQoc3RydWN0IHJ2dSAqcnZ1LCBpbnQgYmxrYWRkciwgdTggY3B0bGYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmMtNjU4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYzo2NTk6aW50IHJ2dV9tYm94X2hhbmRsZXJfY3B0X2lubGluZV9pcHNlY19jZmcoc3RydWN0IHJ2dSAqcnZ1LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYy02NjAtXFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgY3B0X2lubGluZV9pcHNlY19jZmdfbXNnICpyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmM9Njk1PXN0YXRpYyBib29sIHZhbGlkYXRlX2FuZF91cGRhdGVfcmVnX29mZnNldChzdHJ1Y3QgcnZ1ICpydnUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmMtNzYyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYzo3NjM6aW50IHJ2dV9tYm94X2hhbmRsZXJfY3B0X3JkX3dyX3JlZ2lzdGVyKHN0cnVjdCBydnUgKnJ2dSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmMtNzY0LVxcdFxcdFxcdFxcdFxcdHN0cnVjdCBjcHRfcmRfd3JfcmVnX21zZyAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jPTgzMz1zdGF0aWMgdm9pZCBnZXRfZW5nX3N0cyhzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBjcHRfc3RzX3JzcCAqcnNwLCBpbnQgYmxrYWRkcilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYy04NTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jOjg1ODppbnQgcnZ1X21ib3hfaGFuZGxlcl9jcHRfc3RzKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IGNwdF9zdHNfcmVxICpyZXEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jLTg1OS1cXHRcXHRcXHQgICAgIHN0cnVjdCBjcHRfc3RzX3JzcCAqcnNwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jPTg5OT1zdGF0aWMgdm9pZCBjcHRfcnhjX3RpbWVfY2ZnKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IGNwdF9yeGNfdGltZV9jZmdfcmVxICpyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY3B0LmMtOTIzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYzo5MjQ6aW50IHJ2dV9tYm94X2hhbmRsZXJfY3B0X3J4Y190aW1lX2NmZyhzdHJ1Y3QgcnZ1ICpydnUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jLTkyNS1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgY3B0X3J4Y190aW1lX2NmZ19yZXEgKnJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYy05NDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NwdC5jOjk0NDppbnQgcnZ1X21ib3hfaGFuZGxlcl9jcHRfY3R4X2NhY2hlX3N5bmMoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbXNnX3JlcSAqcmVxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYy05NDUtXFx0XFx0XFx0XFx0XFx0c3RydWN0IG1zZ19yc3AgKnJzcClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jcHQuYy05NDktXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDExOjE0OjU2LjQzMTQ3NzEwM1oiLCJTZXEiOjIxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4ODQ5NzcwNzU0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEZ1enppbmcgU3RyYXRlZ3k6IFRhcmdldGluZyB0aGUgTWFpbGJveCBIYW5kbGVyIGluIGBydnUuY2AqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIFRoZSBjb3JlIG9mIHRoZSBpc3N1ZSwgYW5kIHRoZXJlZm9yZSBteSB0YXJnZXQsIGlzIHRoZSBgcnZ1X3Byb2Nlc3NfbWJveF9tc2dgIGZ1bmN0aW9uIGluIGBydnUuY2AuIFRoaXMgaXMgd2hlcmUgdGhlIG1haWxib3ggbWVzc2FnZXMgYXJlIGhhbmRsZWQuIFRoZSBzdHJ1Y3R1cmUgaXMgcHJldHR5IGNsZWFyOiBpdCB1c2VzIGEgbWFjcm8gdG8gZGVmaW5lIHRoZSBtZXNzYWdlIGNhc2VzLCBhbmQgZWFjaCBjYXNlIGNhbGxzIGEgaGFuZGxlciBmdW5jdGlvbi4gU3BlY2lmaWNhbGx5LCBJJ20gaW50ZXJlc3RlZCBpbiBob3cgdGhpcyBpcyB0cmlnZ2VyZWQuIEkgc2VlIHRoYXQgYHJ2dV9wcm9jZXNzX21ib3hfbXNnYCBpcyBjYWxsZWQgYnkgYF9fcnZ1X21ib3hfaGFuZGxlcmAsIHdoaWNoIGlzIGEgd29ya3F1ZXVlIGZ1bmN0aW9uLiBUaGlzIHdvcmsgaXMgcXVldWVkIGJ5IGBydnVfcXVldWVfd29ya2AsIHdoaWNoIGlzIGl0c2VsZiBjYWxsZWQgZnJvbSB0aGUgaW50ZXJydXB0IGhhbmRsZXIgYHJ2dV9tYm94X2ludHJfaGFuZGxlcmAuIEFuZCAqdGhhdCogaGFuZGxlciBpcyByZWdpc3RlcmVkIGZvciB0aGUgbWFpbGJveCBpbnRlcnJ1cHRzLlxuXG5BaGEhIFRoaXMgaXMgd2hlcmUgdGhlIHZ1bG5lcmFiaWxpdHkgZXhpc3RzLlxuXG5UaGUga2V5IGlzIHRoYXQgc3l6a2FsbGVyLCB0aHJvdWdoIGl0cyB2aGNpIGludGVyZmFjZSwgY2FuIGluamVjdCBpbnRlcnJ1cHRzIGZvciB0aGUgUENJIGRldmljZS4gU28sIGJ5IGNyYWZ0aW5nIGRhdGEgdG8gYmUgd3JpdHRlbiBpbnRvIHRoZSBCQVJzLCBJIGNhbiBtYW5pcHVsYXRlIHRoZSBtYWlsYm94IG1lbW9yeSwgdHJpZ2dlciBhbiBpbnRlcnJ1cHQgdmlhIHN5emthbGxlciwgYW5kIHRodXMgY2F1c2UgYHJ2dV9tYm94X2ludHJfaGFuZGxlcmAgdG8gcnVuLCB3aGljaCBpbiB0dXJuIHF1ZXVlcyBhIG1haWxib3ggd29yayBpdGVtIHRoYXQgd2lsbCwgaW4gdGhlIGVuZCwgY2FsbCB0aGUgbWFpbGJveCBoYW5kbGVycy4gVGhlIG1haWxib3ggbWVtb3J5LCBtYXBwZWQgdmlhIFBDSSBCQVJzLCBwcm92aWRlcyB0aGUgcGVyZmVjdCBhdHRhY2sgc3VyZmFjZS4gU3l6a2FsbGVyIGNhbiBwcm92aWRlIHRoZSBtZW1vcnkgZm9yIHRoZSBCQVJzIGFuZCBJIGNhbiBwb3B1bGF0ZSBpdCB3aXRoIHJhbmRvbSBkYXRhLiBUaGlzIG9wZW5zIHRoZSBkb29yIHRvIGZ1enppbmcgdGhlIG1haWxib3ggaGFuZGxlciBmdW5jdGlvbiwgYHJ2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlYCBpbiB0aGUgT2N0ZW9uVFgyIEFGIGRyaXZlci5cblxuTm93LCBsZXQgbWUgdGhpbmsgYWJvdXQgdGhlIGZ1bmN0aW9uYWwgaW1wbGljYXRpb25zLiBUaGlzIGNvZGUgbW9kaWZpZXMgdGhlIGJlaGF2aW9yIG9mIHRoZSBkZXZpY2UgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIGZ1bmN0aW9uIGlzIHJ1bm5pbmcgZm9yIGEgVmlydHVhbCBGdW5jdGlvbiAoVkYpLiBUaGUgYGlzX3ZmKHBjaWZ1bmMpYCBjaGVjayBkZXRlcm1pbmVzIHdoZXRoZXIgc29tZSBmdW5jdGlvbnMgYXJlIGNhbGxlZCwgYW5kIHRob3NlIGZ1bmN0aW9ucywgaW4gdHVybiwgbW9kaWZ5IHRoZSBjb3JlIGxvZ2ljIG9mIHRoZSBPY3Rlb25UWDIgQUYgZHJpdmVyJ3MgbWFpbGJveCBoYW5kbGVyLCBtZWFuaW5nIHRoaXMgY29kZSBpcyBhYnNvbHV0ZWx5IHdvcnRoIGZ1enppbmchXG5cblRvIGVuc3VyZSBJJ20gdGFyZ2V0aW5nIHRoZSBjb3JyZWN0IGNvbmZpZ3VyYXRpb24sIEkgbmVlZCB0byB2ZXJpZnkgYSBmZXcgdGhpbmdzLiBGaXJzdCBhbmQgZm9yZW1vc3QsIGBDT05GSUdfT0NURU9OVFgyX0FGYCBpcyB0aGUgY3JpdGljYWwgc2V0dGluZy4gTm93LCBsZXQgbWUgZG91YmxlLWNoZWNrIHRoZSBLY29uZmlnIGZpbGUgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWdgIHRvIGJlIHN1cmUgdGhlcmUgYXJlbid0IGFueSBvdGhlciBkZXBlbmRlbmNpZXMgb3IgcmVsYXRlZCBjb25maWd1cmF0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjUxNzYsIk91dHB1dFRva2VucyI6NDYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NjMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTU6MDUuMjgxMjUwMjk3WiIsIlNlcSI6MjIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NzY4Mjc4OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgT0NURU9OVFgyX0FGXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZz02PWNvbmZpZyBPQ1RFT05UWDJfTUJPWFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy04LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6OTpjb25maWcgT0NURU9OVFgyX0FGXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0xMC1cXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBPY3Rlb25UWDIgUlZVIEFkbWluIEZ1bmN0aW9uIGRyaXZlclxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTU6MDUuMzM4OTM5MTk1WiIsIlNlcSI6MjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM5NTE3MDA0MTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQW5hbHl6aW5nIHRoZSBEZXBlbmRlbmNpZXMgb2YgT0NURU9OVFgyX0FGKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYE9DVEVPTlRYMl9BRmAuIFRoZSBmaXJzdCB0aGluZyB0aGF0IHBvcHMgaW50byBteSBoZWFkIGlzLCBcIldoYXQgb3RoZXIgY29tcG9uZW50cyBvciBtb2R1bGVzIHJlbHkgb24gKnRoaXMqIHBpZWNlP1wiIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyByZWxhdGlvbnNoaXBzIHdpdGhpbiB0aGUgYnJvYWRlciBzeXN0ZW0sIGlkZWFsbHkgd2l0aGluIHRoZSBMaW51eCBrZXJuZWwgb3IgYSBzcGVjaWZpYyBuZXR3b3JraW5nIGZyYW1ld29yay4gSSdtIHRoaW5raW5nIGFib3V0IGRlcGVuZGVuY3kgdHJlZXM7IGEgcXVpY2sgc2NhbiBvZiB0aGUgY29kZSBvciBjb25maWd1cmF0aW9uIGZpbGVzIHdvdWxkIGJlIHRoZSBpZGVhbCBwbGFjZSB0byBiZWdpbiB0aGlzIGFuYWx5c2lzLiBBbSBJIGRlYWxpbmcgd2l0aCBhIG1vZHVsZSwgYSBkcml2ZXIsIHNvbWUgaGFyZHdhcmUgYWJzdHJhY3Rpb24gbGF5ZXIsIG9yIGFuIGVudGlyZWx5IGRpZmZlcmVudCBlbnRpdHk/IFRoZSBjb250ZXh0IGlzIGtleSBoZXJlLlxuXG5XaGF0J3MgdGhlIGdvYWw/IEFyZSB3ZSB0cnlpbmcgdG8gdW5kZXJzdGFuZCBob3cgYE9DVEVPTlRYMl9BRmAgYWZmZWN0cyBvdGhlciBwYXJ0cyBvZiB0aGUgc3lzdGVtIGZvciBvcHRpbWl6YXRpb24sIHRyb3VibGVzaG9vdGluZywgb3IgbWlncmF0aW9uLCBtYXliZSBldmVuIHNlY3VyaXR5PyBUaGUgdXNlIGNhc2UgZHJpdmVzIHRoZSBkZXB0aCBJJ2xsIGdvIGludG8uIERvIEkgd2FudCB0byB1bmRlcnN0YW5kIHdoYXQgd291bGQgYnJlYWsgaWYgSSBjaGFuZ2VkIHRoaXM/IE9yIHdoYXQgbWlnaHQgYmUgYWZmZWN0ZWQgd2hlbiBhIGNoYW5nZSBoYXBwZW5zIGluIHNvbWUgb3RoZXIgc3Vic3lzdGVtPyBPciBhbSBJIHRyeWluZyB0byBmaWd1cmUgb3V0IHdoaWNoIG90aGVyIG1vZHVsZXMgc2hvdWxkIGJlIGNvbnNpZGVyZWQgZHVyaW5nIGZ1dHVyZSBtb2RpZmljYXRpb25zIHRvIHRoaXMgc3Vic3lzdGVtP1xuXG5JJ20gbWVudGFsbHkgcHJlcGFyaW5nIGZvciBhIGNoYWluIG9mIGNvbW1hbmQsIGEgaGllcmFyY2h5LiBJJ20gdGhpbmtpbmcgb2YgdHJhY2luZyBiYWNrIHRoZSBpbmNsdWRlIGZpbGVzLCBjb25maWd1cmF0aW9uIG9wdGlvbnMgdGhhdCB3b3VsZCBwdWxsIHRoaXMgbW9kdWxlIGludG8gdGhlIGJ1aWxkLCBvciBldmVuIHJ1bnRpbWUgZGVwZW5kZW5jaWVzIHRoYXQgY291bGQgY2FsbCBpdHMgcm91dGluZXMuIEknbSBnb2luZyB0byBzdGFydCB3aXRoIHRoZSBvYnZpb3VzIHBsYWNlczogbWFrZWZpbGVzLCBLY29uZmlnIGZpbGVzLCBhbmQgYW55IGRldmljZSB0cmVlIGVudHJpZXMsIGFuZCB0aGVuIG1vdmUgb24gdG8gdGhlIGNvZGUgaXRzZWxmLCBzdGFydGluZyB3aXRoIGFueSBjbGVhcmx5IG1hcmtlZCBlbnRyeSBwb2ludHMgb3IgaW5pdGlhbGl6YXRpb24gcm91dGluZXMuIEkgd2FudCB0byBzZWUgd2hpY2ggQVBJcyBpdCBleHBvcnRzIGFuZCBob3cgb3RoZXIgY29tcG9uZW50cyBpbnRlcmFjdCB3aXRoIGl0LiBGdW5jdGlvbiBjYWxscywgZGF0YSBzdHJ1Y3R1cmVzLCBhbmQgdGhlIGJyb2FkZXIgY29udHJvbCBmbG93IGFyZSBhbGwgZmFpciBnYW1lLiBJIGFtIGhvcGluZyB0aGUgc3lzdGVtIGlzIHdlbGwtZG9jdW1lbnRlZCwgc28gSSBjYW4gZmluZCBpdHMgb3ZlcmFsbCBwdXJwb3NlIGFuZCBmdW5jdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjY0NDgsIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMToxNTowOS4yOTA2NDI2MjRaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjE5ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbiAgIDI6XFx0I1xcbiAgIDM6XFx0IyBNYXJ2ZWxsIFJWVSBOZXR3b3JrIGRyaXZlcnMgY29uZmlndXJhdGlvblxcbiAgIDQ6XFx0I1xcbiAgIDU6XFx0XFxuICAgNjpcXHRjb25maWcgT0NURU9OVFgyX01CT1hcXG4gICA3OlxcdFxcdHRyaXN0YXRlXFxuICAgODpcXHRcXG4gICA5OlxcdGNvbmZpZyBPQ1RFT05UWDJfQUZcXG4gIDEwOlxcdFxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgQWRtaW4gRnVuY3Rpb24gZHJpdmVyXFxcIlxcbiAgMTE6XFx0XFx0c2VsZWN0IE9DVEVPTlRYMl9NQk9YXFxuICAxMjpcXHRcXHRzZWxlY3QgTkVUX0RFVkxJTktcXG4gIDEzOlxcdFxcdGRlcGVuZHMgb24gKDY0QklUIFxcdTAwMjZcXHUwMDI2IENPTVBJTEVfVEVTVCkgfHwgQVJNNjRcXG4gIDE0OlxcdFxcdGRlcGVuZHMgb24gUENJXFxuICAxNTpcXHRcXHRkZXBlbmRzIG9uIFBUUF8xNTg4X0NMT0NLX09QVElPTkFMXFxuICAxNjpcXHRcXHRoZWxwXFxuICAxNzpcXHRcXHQgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIE1hcnZlbGwncyBPY3Rlb25UWDIgUmVzb3VyY2UgVmlydHVhbGl6YXRpb25cXG4gIDE4OlxcdFxcdCAgVW5pdCdzIGFkbWluIGZ1bmN0aW9uIG1hbmFnZXIgd2hpY2ggbWFuYWdlcyBhbGwgUlZVIEhXIHJlc291cmNlc1xcbiAgMTk6XFx0XFx0ICBhbmQgcHJvdmlkZXMgYSBtZWRpdW0gdG8gb3RoZXIgUEYvVkZzIHRvIGNvbmZpZ3VyZSBIVy4gU2hvdWxkIGJlXFxuICAyMDpcXHRcXHQgIGVuYWJsZWQgZm9yIG90aGVyIFJWVSBkZXZpY2UgZHJpdmVycyB0byB3b3JrLlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMToxNTowOS4yOTA3MDU4ODRaIiwiU2VxIjoyNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODc2OTUyOTg5NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgQ29uZmlndXJhdGlvbiBhbmQgU2NvcGUgZm9yIEZ1enppbmcgdGhlIEFGIERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGhvdyBiZXN0IHRvIGNvbmZpZ3VyZSB0aGlzIHN5c3RlbSBmb3IgZnV6emluZyB0aGUgQUYgZHJpdmVyLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgaXQgaGluZ2VzIG9uIGEgZmV3IGtleSBmYWN0b3JzOiBgUENJYCBhbmQgZWl0aGVyIGAoNjRCSVQgXHUwMDI2XHUwMDI2IENPTVBJTEVfVEVTVClgIG9yIGBBUk02NGAuIFdpdGggdGhvc2UgaW4gbWluZCwgYE9DVEVPTlRYMl9BRmAgbG9va3MgbGlrZSB0aGUgcmlnaHQgY29uZmlnIHRvIHN0YXJ0IHdpdGguXG5cbkkgaGF2ZSB0byBjb25zaWRlciB3aGV0aGVyIHRvIGVuYWJsZSBgT0NURU9OVFgyX1BGYCBhbmQgYE9DVEVPTlRYMl9WRmAuIFdoaWxlIHRoZXkgbWlnaHQgbm90IGJlICpzdHJpY3RseSogbmVjZXNzYXJ5IGlmIHN5emthbGxlciBpcyBkaXJlY3RseSB0YXJnZXRpbmcgdGhlIEFGIGRyaXZlcidzIFBDSSBpbnRlcmZhY2UsIGVuYWJsaW5nIHRoZW0gY291bGQgYmUgYmVuZWZpY2lhbC4gSWYgc3l6a2FsbGVyIGVuZHMgdXAgZnV6emluZyB0aGUgUEYvVkYgZHJpdmVycywgd2hpY2ggdGhlbiBzZW5kIG1lc3NhZ2VzIHRvIHRoZSBBRiwgSSdsbCBuZWVkIHRoZW0uIFNvLCBsZXQncyBpbmNsdWRlIGBPQ1RFT05UWDJfQUZgIGZvciBub3csIGl0J3MgdGhlIG1vc3QgY29uc2VydmF0aXZlIGFwcHJvYWNoLlxuXG5OZXh0LCBJIG5lZWQgdG8gcGlucG9pbnQgdGhlIGZvY3VzIHN5bWJvbHMg4oCTIHRoZSBmdW5jdGlvbnMgdGhpcyBpcyBhY3R1YWxseSB0b3VjaGluZy4gQWZ0ZXIgbG9va2luZywgdGhlIHByaW1hcnkgb25lIGlzIGBydnVfbWJveF9oYW5kbGVyX25peF9zZXRfcnhfbW9kZWAuIEFyZSB0aGVyZSBhbnkgb3RoZXJzPyBOb3BlLCBqdXN0IHRoaXMgb25lLiBTbywgdGhhdCdzIHRoZSBmb2N1cy5cblxuSnVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIEknbGwgZG91YmxlIGNoZWNrIHRoZSBjb25maWcgcmVxdWlyZW1lbnRzIGFnYWluLiBgT0NURU9OVFgyX0FGYCBzaG91bGQgYmUgc3VmZmljaWVudCBvbiBpdHMgb3duLlxuXG5Ob3csIHdhaXQuLi4gdGhlcmUncyB0aGUgcGF0Y2ggaXRzZWxmLlxuXG5gYGBjXG5AQCAtNDU3NSw3ICs0NTc1LDcgQEAgaW50IHJ2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG5peF9yeF9tb2RlICpyZXEsXG4gXHRcdHJ2dV9ucGNfaW5zdGFsbF9hbGxtdWx0aV9lbnRyeShydnUsIHBjaWZ1bmMsIG5peGxmLFxuIFx0XHRcdFx0XHQgICAgICAgcGZ2Zi1cdTAwM2VyeF9jaGFuX2Jhc2UpO1xuIFx0fSBlbHNlIHtcbi1cdFx0aWYgKCFuaXhfcnhfbXVsdGljYXN0KVxuK1x0XHRpZiAoIW5peF9yeF9tdWx0aWNhc3QgXHUwMDI2XHUwMDI2ICFpc192ZihwY2lmdW5jKSlcbiBcdFx0XHRydnVfbnBjX2VuYWJsZV9hbGxtdWx0aV9lbnRyeShydnUsIHBjaWZ1bmMsIG5peGxmLCBmYWxzZSk7XG4gXHR9XG4gXG5AQCAtNDU4NSw3ICs0NTg1LDcgQEAgaW50IHJ2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG5peF9yeF9tb2RlICpyZXEsXG4gXHRcdFx0XHRcdCAgICAgIHBmdmYtXHUwMDNlcnhfY2hhbl9iYXNlLFxuIFx0XHRcdFx0XHQgICAgICBwZnZmLVx1MDAzZXJ4X2NoYW5fY250KTtcbiBcdGVsc2Vcbi1cdFx0aWYgKCFuaXhfcnhfbXVsdGljYXN0KVxuK1x0XHRpZiAoIW5peF9yeF9tdWx0aWNhc3QgXHUwMDI2XHUwMDI2ICFpc192ZihwY2lmdW5jKSlcbiBcdFx0XHRydnVfbnBjX2VuYWJsZV9wcm9taXNjX2VudHJ5KHJ2dSwgcGNpZnVuYywgbml4bGYsIGZhbHNlKTtcbiBcbiBcdHJldHVybiAwO1xuYGBgXG5cblJpZ2h0LCBpdCdzIGNoYW5naW5nIHRoZSBiZWhhdmlvciBvZiB0aGUgZHJpdmVyLiBGdW5jdGlvbmFsbHksIHRoaXMgaXMgYSBjaGFuZ2UgdG8gaG93IFJYIG1vZGUgaXMgaGFuZGxlZC5cblxuT2theSwgd2l0aCB0aGUgY29udGV4dCBzZXQsIGl0J3MgdGltZSB0byBzZXQtcmVzdWx0cy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjcxOTAsIk91dHB1dFRva2VucyI6MTE1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTcxLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTU6MTguMDYwMjM4NzMxWiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTIyNTk1ODYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk9DVEVPTlRYMl9BRlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInJ2dV9tYm94X2hhbmRsZXJfbml4X3NldF9yeF9tb2RlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBlbmFibGluZy9kaXNhYmxpbmcgbXVsdGljYXN0IGFuZCBwcm9taXNjdW91cyBtb2RlcyBpbiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgUlZVIEFkbWluIEZ1bmN0aW9uIGRyaXZlci4gSXQgc3BlY2lmaWNhbGx5IGNoYW5nZXMgdGhlIGJlaGF2aW9yIGZvciBWaXJ0dWFsIEZ1bmN0aW9ucyAoVkZzKS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgcmVhY2hhYmxlIFBDSSBkcml2ZXIgKHZpYSB2aGNpIGVtdWxhdGlvbikuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiT0NURU9OVFgyX0FGXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicnZ1X21ib3hfaGFuZGxlcl9uaXhfc2V0X3J4X21vZGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIGVuYWJsaW5nL2Rpc2FibGluZyBtdWx0aWNhc3QgYW5kIHByb21pc2N1b3VzIG1vZGVzIGluIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgQWRtaW4gRnVuY3Rpb24gZHJpdmVyLiBJdCBzcGVjaWZpY2FsbHkgY2hhbmdlcyB0aGUgYmVoYXZpb3IgZm9yIFZpcnR1YWwgRnVuY3Rpb25zIChWRnMpLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSByZWFjaGFibGUgUENJIGRyaXZlciAodmlhIHZoY2kgZW11bGF0aW9uKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workfloww5ctv[1] Phase: Succeeded StartedAt: 2026-07-02 11:15:43 +0000 UTC FinishedAt: 2026-07-02 11:15:43 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww5ctv[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-02 11:15:43 +0000 UTC FinishedAt: 2026-07-02 11:15:43 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww5ctv[2] Phase: Succeeded StartedAt: 2026-07-02 11:15:43 +0000 UTC FinishedAt: 2026-07-02 12:33:26 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww5ctv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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":["rvu_mbox_handler_nix_set_rx_mode"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-02 11:15:43 +0000 UTC FinishedAt: 2026-07-02 12:33:26 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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":["rvu_mbox_handler_nix_set_rx_mode"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-workfloww5ctv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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":["rvu_mbox_handler_nix_set_rx_mode"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-02 11:15:44 +0000 UTC FinishedAt: 2026-07-02 11:16:38 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww5ctv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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":["rvu_mbox_handler_nix_set_rx_mode"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-02 11:15:44 +0000 UTC FinishedAt: 2026-07-02 11:16:08 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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-workfloww5ctv/series-workfloww5ctv-convert-artifact-2375430635/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workfloww5ctv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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":["rvu_mbox_handler_nix_set_rx_mode"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-02 11:16:38 +0000 UTC FinishedAt: 2026-07-02 11:53:10 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww5ctv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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":["rvu_mbox_handler_nix_set_rx_mode"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-02 11:16:38 +0000 UTC FinishedAt: 2026-07-02 11:53:10 +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:*dc4f1a2f-a257-4ee7-811f-6fc9dcd6329a,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-workfloww5ctv/series-workfloww5ctv-convert-artifact-2375430635/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": "e3d5fb15-5b2f-47a7-b61c-4f93e164ee97", "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-workfloww5ctv/series-workfloww5ctv-build-action-1421387241/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workfloww5ctv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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":["rvu_mbox_handler_nix_set_rx_mode"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-02 11:16:38 +0000 UTC FinishedAt: 2026-07-02 11:51:34 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*dc4f1a2f-a257-4ee7-811f-6fc9dcd6329a,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-workfloww5ctv/series-workfloww5ctv-convert-artifact-2375430635/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": "e3d5fb15-5b2f-47a7-b61c-4f93e164ee97", "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-workfloww5ctv/series-workfloww5ctv-build-action-1421387241/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workfloww5ctv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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":["rvu_mbox_handler_nix_set_rx_mode"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-02 11:53:10 +0000 UTC FinishedAt: 2026-07-02 11:53:10 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww5ctv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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":["rvu_mbox_handler_nix_set_rx_mode"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-02 11:53:10 +0000 UTC FinishedAt: 2026-07-02 11:53:10 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww5ctv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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":["rvu_mbox_handler_nix_set_rx_mode"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-02 11:53:10 +0000 UTC FinishedAt: 2026-07-02 11:53:51 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww5ctv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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":["rvu_mbox_handler_nix_set_rx_mode"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-02 11:53:10 +0000 UTC FinishedAt: 2026-07-02 11:53:34 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-workfloww5ctv/series-workfloww5ctv-convert-artifact-2797207746/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workfloww5ctv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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":["rvu_mbox_handler_nix_set_rx_mode"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-02 11:53:51 +0000 UTC FinishedAt: 2026-07-02 11:56:08 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww5ctv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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":["rvu_mbox_handler_nix_set_rx_mode"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-02 11:53:51 +0000 UTC FinishedAt: 2026-07-02 11:55:57 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*e3d5fb15-5b2f-47a7-b61c-4f93e164ee97,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-workfloww5ctv/series-workfloww5ctv-build-action-1421387241/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-workfloww5ctv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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":["rvu_mbox_handler_nix_set_rx_mode"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-02 11:56:08 +0000 UTC FinishedAt: 2026-07-02 11:56:08 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww5ctv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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":["rvu_mbox_handler_nix_set_rx_mode"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-02 11:56:08 +0000 UTC FinishedAt: 2026-07-02 11:56:08 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww5ctv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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":["rvu_mbox_handler_nix_set_rx_mode"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-02 11:56:08 +0000 UTC FinishedAt: 2026-07-02 12:29:27 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww5ctv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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":["rvu_mbox_handler_nix_set_rx_mode"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-02 11:56:08 +0000 UTC FinishedAt: 2026-07-02 12:29:27 +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:*dc4f1a2f-a257-4ee7-811f-6fc9dcd6329a,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-workfloww5ctv/series-workfloww5ctv-convert-artifact-2797207746/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": "6deb1685-02e1-4a0a-a759-39e5bb2b1de9", "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-workfloww5ctv/series-workfloww5ctv-build-action-3652760342/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workfloww5ctv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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":["rvu_mbox_handler_nix_set_rx_mode"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-02 11:56:08 +0000 UTC FinishedAt: 2026-07-02 12:28:49 +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:*dc4f1a2f-a257-4ee7-811f-6fc9dcd6329a,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-workfloww5ctv/series-workfloww5ctv-convert-artifact-2797207746/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": "6deb1685-02e1-4a0a-a759-39e5bb2b1de9", "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-workfloww5ctv/series-workfloww5ctv-build-action-3652760342/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workfloww5ctv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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":["rvu_mbox_handler_nix_set_rx_mode"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-02 12:29:27 +0000 UTC FinishedAt: 2026-07-02 12:29:27 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww5ctv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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":["rvu_mbox_handler_nix_set_rx_mode"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-02 12:29:27 +0000 UTC FinishedAt: 2026-07-02 12:29:27 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww5ctv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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":["rvu_mbox_handler_nix_set_rx_mode"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-02 12:29:27 +0000 UTC FinishedAt: 2026-07-02 12:31:41 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww5ctv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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":["rvu_mbox_handler_nix_set_rx_mode"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-02 12:29:27 +0000 UTC FinishedAt: 2026-07-02 12:31:31 +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:*6deb1685-02e1-4a0a-a759-39e5bb2b1de9,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-workfloww5ctv/series-workfloww5ctv-build-action-3652760342/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-workfloww5ctv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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":["rvu_mbox_handler_nix_set_rx_mode"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-02 12:31:41 +0000 UTC FinishedAt: 2026-07-02 12:33:26 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww5ctv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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":["rvu_mbox_handler_nix_set_rx_mode"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-02 12:31:41 +0000 UTC FinishedAt: 2026-07-02 12:33:26 +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":["rvu_mbox_handler_nix_set_rx_mode"],"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:*e3d5fb15-5b2f-47a7-b61c-4f93e164ee97,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*6deb1685-02e1-4a0a-a759-39e5bb2b1de9,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-workfloww5ctv/series-workfloww5ctv-build-action-1421387241/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-workfloww5ctv/series-workfloww5ctv-build-action-3652760342/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workfloww5ctv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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":["rvu_mbox_handler_nix_set_rx_mode"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-02 12:31:41 +0000 UTC FinishedAt: 2026-07-02 12:32:09 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww5ctv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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":["rvu_mbox_handler_nix_set_rx_mode"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-02 12:31:41 +0000 UTC FinishedAt: 2026-07-02 12:32:00 +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":["rvu_mbox_handler_nix_set_rx_mode"],"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-workfloww5ctv/series-workfloww5ctv-convert-artifact-130250743/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workfloww5ctv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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":["rvu_mbox_handler_nix_set_rx_mode"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-02 12:31:41 +0000 UTC FinishedAt: 2026-07-02 12:31:41 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww5ctv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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":["rvu_mbox_handler_nix_set_rx_mode"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-02 12:31:41 +0000 UTC FinishedAt: 2026-07-02 12:31:41 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww5ctv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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":["rvu_mbox_handler_nix_set_rx_mode"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-02 12:31:41 +0000 UTC FinishedAt: 2026-07-02 12:31:41 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww5ctv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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":["rvu_mbox_handler_nix_set_rx_mode"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-02 12:32:09 +0000 UTC FinishedAt: 2026-07-02 12:33:26 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww5ctv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"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":["rvu_mbox_handler_nix_set_rx_mode"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"c75597caada080effbfbc0a7fb10dc2a3bb543ad","config_name":"upstream-apparmor-kasan.config","enable_configs":["OCTEONTX2_AF"],"series_id":"638eaea0-ea09-4be5-a40e-ce4c689756ce","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-02 12:32:09 +0000 UTC FinishedAt: 2026-07-02 12:33:13 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*e3d5fb15-5b2f-47a7-b61c-4f93e164ee97,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*6deb1685-02e1-4a0a-a759-39e5bb2b1de9,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-workfloww5ctv/series-workfloww5ctv-build-action-1421387241/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-workfloww5ctv/series-workfloww5ctv-build-action-3652760342/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-workfloww5ctv/series-workfloww5ctv-convert-artifact-130250743/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,}