Name: series-workflownq72t Phase: Succeeded StartedAt: 2026-06-25 00:53:18 +0000 UTC FinishedAt: 2026-06-25 02:02:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflownq72t[0] Phase: Succeeded StartedAt: 2026-06-25 00:53:18 +0000 UTC FinishedAt: 2026-06-25 01:04:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflownq72t[0].run-triage Phase: Succeeded StartedAt: 2026-06-25 00:53:18 +0000 UTC FinishedAt: 2026-06-25 01:04:36 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "ab9de95c9cf952332ab79453b4b5d1bfca8e514f", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MT7663U", "MT76x0U", "MT76x2U", "MT7921U", "MT7925U" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "ab9de95c9cf952332ab79453b4b5d1bfca8e514f", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MT7663U", "MT76x0U", "MT76x2U", "MT7921U", "MT7925U" ], "series_id": "299dee08-29be-40a6-8adf-cf26915683fc" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "__mt76_set_channel", "mt76_set_channel" ], "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+CgkJCTx0ZD4yMDI2LzA2LzI1IDAxOjAyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01UNzY2M1UmIzM0OywKICAgICYjMzQ7TVQ3NngwVSYjMzQ7LAogICAgJiMzNDtNVDc2eDJVJiMzNDssCiAgICAmIzM0O01UNzkyMVUmIzM0OywKICAgICYjMzQ7TVQ3OTI1VSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O19fbXQ3Nl9zZXRfY2hhbm5lbCYjMzQ7LAogICAgJiMzNDttdDc2X3NldF9jaGFubmVsJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSB0aW1lb3V0IGNoZWNrIHRvIHdhaXRfZXZlbnRfdGltZW91dCBpbiBfX210NzZfc2V0X2NoYW5uZWwgdG8gcHJldmVudCBwcm9jZWVkaW5nIHdoZW4gVFggaXMgc3RpbGwgcGVuZGluZyBhbmQgdGhlIHdhaXQgdGltZXMgb3V0LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIE1UNzYgbWFjODAyMTEgZHJpdmVyLiBUaGUgY29kZSBpcyByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSB0aGUgVVNCIGludGVyZmFjZSBvZiBNVDc2IGRldmljZXMgKGUuZy4sIE1UNzZ4MFUsIE1UNzZ4MlUpIHVzaW5nIGR1bW15X2hjZCBhbmQgbmw4MDIxMSBjb21tYW5kcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNSAwMTowMjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDIxMTg2ZTc4MjNiOTI0MjBmNzA3NjNjY2QxMDhkNDA2NzIyNGFhYTVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1biAyNSAwMTowMjoxNSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmNcbmluZGV4IDEzYzRlOGFiZTI4MTkxLi4zNzQ3NGQ2NGNmZWNkYiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jXG5AQCAtMTAzMyw2ICYjNDM7MTAzMyw3IEBAIGludCBfX210NzZfc2V0X2NoYW5uZWwoc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiAqY2hhbmRlZixcbiBcdFx0ICAgICAgIGJvb2wgb2ZmY2hhbm5lbClcbiB7XG4gXHRzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiA9IHBoeS1cdTAwM2VkZXY7XG4mIzQzO1x0bG9uZyB0aW1lX2xlZnQ7XG4gXHRpbnQgdGltZW91dCA9IEhaIC8gNTtcbiBcdGludCByZXQ7XG4gXG5AQCAtMTA0MCw4ICYjNDM7MTA0MSwxMyBAQCBpbnQgX19tdDc2X3NldF9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWYsXG4gXHRtdDc2X3R4cV9zY2hlZHVsZV9wZW5kaW5nKHBoeSk7XG4gXG4gXHRzZXRfYml0KE1UNzZfUkVTRVQsIFx1MDAyNnBoeS1cdTAwM2VzdGF0ZSk7XG4tXHR3YWl0X2V2ZW50X3RpbWVvdXQoZGV2LVx1MDAzZXR4X3dhaXQsICFtdDc2X2hhc190eF9wZW5kaW5nKHBoeSksIHRpbWVvdXQpO1xuJiM0MztcdHRpbWVfbGVmdCA9IHdhaXRfZXZlbnRfdGltZW91dChkZXYtXHUwMDNldHhfd2FpdCwgIW10NzZfaGFzX3R4X3BlbmRpbmcocGh5KSxcbiYjNDM7XHRcdFx0XHQgICAgICAgdGltZW91dCk7XG4gXHRtdDc2X3VwZGF0ZV9zdXJ2ZXkocGh5KTtcbiYjNDM7XHRpZiAoIXRpbWVfbGVmdCkge1xuJiM0MztcdFx0cmV0ID0gLUVUSU1FRE9VVDtcbiYjNDM7XHRcdGdvdG8gb3V0O1xuJiM0MztcdH1cbiBcbiBcdGlmIChwaHktXHUwMDNlY2hhbmRlZi5jaGFuLVx1MDAzZWNlbnRlcl9mcmVxICE9IGNoYW5kZWYtXHUwMDNlY2hhbi1cdTAwM2VjZW50ZXJfZnJlcSB8fFxuIFx0ICAgIHBoeS1cdTAwM2VjaGFuZGVmLndpZHRoICE9IGNoYW5kZWYtXHUwMDNld2lkdGgpXG5AQCAtMTA1OSw2ICYjNDM7MTA2NSw3IEBAIGludCBfX210NzZfc2V0X2NoYW5uZWwoc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiAqY2hhbmRlZixcbiBcbiBcdHJldCA9IGRldi1cdTAwM2VkcnYtXHUwMDNlc2V0X2NoYW5uZWwocGh5KTtcbiBcbiYjNDM7b3V0OlxuIFx0Y2xlYXJfYml0KE1UNzZfUkVTRVQsIFx1MDAyNnBoeS1cdTAwM2VzdGF0ZSk7XG4gXHRtdDc2X3dvcmtlcl9lbmFibGUoXHUwMDI2ZGV2LVx1MDAzZXR4X3dvcmtlcik7XG4gXHRtdDc2X3dvcmtlcl9zY2hlZHVsZShcdTAwMjZkZXYtXHUwMDNldHhfd29ya2VyKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNSAwMTowMjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNVDc2NjNVJiMzNDssCiAgICAmIzM0O01UNzZ4MFUmIzM0OywKICAgICYjMzQ7TVQ3NngyVSYjMzQ7LAogICAgJiMzNDtNVDc5MjFVJiMzNDssCiAgICAmIzM0O01UNzkyNVUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtfX210NzZfc2V0X2NoYW5uZWwmIzM0OywKICAgICYjMzQ7bXQ3Nl9zZXRfY2hhbm5lbCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgdGltZW91dCBjaGVjayB0byB3YWl0X2V2ZW50X3RpbWVvdXQgaW4gX19tdDc2X3NldF9jaGFubmVsIHRvIHByZXZlbnQgcHJvY2VlZGluZyB3aGVuIFRYIGlzIHN0aWxsIHBlbmRpbmcgYW5kIHRoZSB3YWl0IHRpbWVzIG91dC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBNVDc2IG1hYzgwMjExIGRyaXZlci4gVGhlIGNvZGUgaXMgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB2aWEgdGhlIFVTQiBpbnRlcmZhY2Ugb2YgTVQ3NiBkZXZpY2VzIChlLmcuLCBNVDc2eDBVLCBNVDc2eDJVKSB1c2luZyBkdW1teV9oY2QgYW5kIG5sODAyMTEgY29tbWFuZHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDIxMTg2ZTc4MjNiOTI0MjBmNzA3NjNjY2QxMDhkNDA2NzIyNGFhYTUKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IEp1biAyNSAwMTowMjoxNSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYwppbmRleCAxM2M0ZThhYmUyODE5MS4uMzc0NzRkNjRjZmVjZGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMKQEAgLTEwMzMsNiAmIzQzOzEwMzMsNyBAQCBpbnQgX19tdDc2X3NldF9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWYsCiAJCSAgICAgICBib29sIG9mZmNoYW5uZWwpCiB7CiAJc3RydWN0IG10NzZfZGV2ICpkZXYgPSBwaHktJmd0O2RldjsKJiM0MzsJbG9uZyB0aW1lX2xlZnQ7CiAJaW50IHRpbWVvdXQgPSBIWiAvIDU7CiAJaW50IHJldDsKIApAQCAtMTA0MCw4ICYjNDM7MTA0MSwxMyBAQCBpbnQgX19tdDc2X3NldF9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWYsCiAJbXQ3Nl90eHFfc2NoZWR1bGVfcGVuZGluZyhwaHkpOwogCiAJc2V0X2JpdChNVDc2X1JFU0VULCAmYW1wO3BoeS0mZ3Q7c3RhdGUpOwotCXdhaXRfZXZlbnRfdGltZW91dChkZXYtJmd0O3R4X3dhaXQsICFtdDc2X2hhc190eF9wZW5kaW5nKHBoeSksIHRpbWVvdXQpOwomIzQzOwl0aW1lX2xlZnQgPSB3YWl0X2V2ZW50X3RpbWVvdXQoZGV2LSZndDt0eF93YWl0LCAhbXQ3Nl9oYXNfdHhfcGVuZGluZyhwaHkpLAomIzQzOwkJCQkgICAgICAgdGltZW91dCk7CiAJbXQ3Nl91cGRhdGVfc3VydmV5KHBoeSk7CiYjNDM7CWlmICghdGltZV9sZWZ0KSB7CiYjNDM7CQlyZXQgPSAtRVRJTUVET1VUOwomIzQzOwkJZ290byBvdXQ7CiYjNDM7CX0KIAogCWlmIChwaHktJmd0O2NoYW5kZWYuY2hhbi0mZ3Q7Y2VudGVyX2ZyZXEgIT0gY2hhbmRlZi0mZ3Q7Y2hhbi0mZ3Q7Y2VudGVyX2ZyZXEgfHwKIAkgICAgcGh5LSZndDtjaGFuZGVmLndpZHRoICE9IGNoYW5kZWYtJmd0O3dpZHRoKQpAQCAtMTA1OSw2ICYjNDM7MTA2NSw3IEBAIGludCBfX210NzZfc2V0X2NoYW5uZWwoc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiAqY2hhbmRlZiwKIAogCXJldCA9IGRldi0mZ3Q7ZHJ2LSZndDtzZXRfY2hhbm5lbChwaHkpOwogCiYjNDM7b3V0OgogCWNsZWFyX2JpdChNVDc2X1JFU0VULCAmYW1wO3BoeS0mZ3Q7c3RhdGUpOwogCW10NzZfd29ya2VyX2VuYWJsZSgmYW1wO2Rldi0mZ3Q7dHhfd29ya2VyKTsKIAltdDc2X3dvcmtlcl9zY2hlZHVsZSgmYW1wO2Rldi0mZ3Q7dHhfd29ya2VyKTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjUgMDE6MDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjIzMgoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDMwOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFJlYWNoYWJpbGl0eSBvZiBhIFRpbWVvdXQgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmNgLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIG1vZGlmeWluZyB0aGUgYF9fbXQ3Nl9zZXRfY2hhbm5lbGAgZnVuY3Rpb24sIGFkZGluZyBhIHRpbWVvdXQgY2hlY2sgd2l0aGluIGB3YWl0X2V2ZW50X3RpbWVvdXRgLiBJZiB0aGUgdGltZW91dCBleHBpcmVzLCBpdCByZXR1cm5zIGAtRVRJTUVET1VUYCBhbmQganVtcHMgdG8gdGhlIGBvdXQ6YCBsYWJlbC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBjYW4gd2UgZXZlbiAqcmVhY2gqIHRoaXMgY29kZSBpbiBvdXIgZnV6emluZyBlbnZpcm9ubWVudD8KClNpbmNlIGl0JiMzOTtzIGEgZHJpdmVyIGZvciBNZWRpYXRlayBNVDc2IHdpcmVsZXNzIGRldmljZXMsIG15IGV4cGVyaWVuY2UgaW1tZWRpYXRlbHkgZmxhZ3MgYSBwb3RlbnRpYWwgaXNzdWUuIFR5cGljYWxseSwgdGhlc2UgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVycyBhcmVuJiMzOTt0IGVhc2lseSBhY2Nlc3NpYmxlIHdpdGhpbiB2aXJ0dWFsaXphdGlvbiBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgdW5sZXNzIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggc29mdHdhcmUgZW11bGF0aW9uIG9yIFBDSSBwYXNzdGhyb3VnaC4gQnV0IGBtYWM4MDIxMV9od3NpbWAgc2ltdWxhdGVzICpnZW5lcmljKiBtYWM4MDIxMSBkZXZpY2VzLCBub3Qgc29tZXRoaW5nIGFzIHNwZWNpZmljIGFzIGFuIE1UNzYgY2hpcC4gSXMgdGhlcmUgYW4gTVQ3NiBlbXVsYXRvciBvdXQgdGhlcmU/IFByb2JhYmx5IG5vdC4KClNvLCB0aGUgY2hhbmNlcyBvZiB0aGlzIHRpbWVvdXQgY29kZSBiZWluZyBkaXJlY3RseSBleGVyY2lzZWQgaW4gb3VyIGN1cnJlbnQgZnV6emluZyBzZXR1cCBzZWVtIGxvdy4gSG93ZXZlciwgSSBjYW4mIzM5O3QgYmUgdG9vIHN1cmUgd2l0aG91dCBhIGRvdWJsZS1jaGVjay4gSSBuZWVkIHRvIGludmVzdGlnYXRlIGlmIHRoZXJlJiMzOTtzIGFueSBraW5kIG9mIHZpcnR1YWwgb3IgVVNCIGludGVyZmFjZSBhc3NvY2lhdGVkIHdpdGggTVQ3NiB0aGF0IHdlICpjb3VsZCogZnV6eiB0aHJvdWdoIFVTQiBnYWRnZXQgb3Igc29tZXRoaW5nIHNpbWlsYXIuIEFoLCB5ZXMsIEkgcmVjYWxsIE1UNzYgZG9lcyBoYXZlIFVTQiBkcml2ZXJzLCBuYW1lbHkgYG10NzZ4MHVgIGFuZCBgbXQ3NngydWAuIFRoYXQmIzM5O3MgYSBnYW1lLWNoYW5nZXIhIFVTQiBkZXZpY2VzIG9wZW4gdGhlIGRvb3IgZm9yIGZ1enppbmcgdXNpbmcgYGR1bW15X2hjZGAgb3Igc3l6a2FsbGVyJiMzOTtzIFVTQiBmdXp6aW5nIGNhcGFiaWxpdGllcy4gTm93IEkgbmVlZCB0byBjb25maXJtIHdoZXRoZXIgdGhlc2UgTVQ3NiBVU0IgZHJpdmVycyBhcmUgZW5hYmxlZCwgb3IgYXQgbGVhc3QgaWYgd2UgY291bGQgcG90ZW50aWFsbHkgdXNlIHRoZW0gZm9yIGZ1enppbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjUgMDE6MDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3Ni4qdXNiJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDcwOCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZT0yPW9iai0kKENPTkZJR19NVDc2X0NPUkUpICYjNDM7PSBtdDc2Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfTVQ3Nl9VU0IpICYjNDM7PSBtdDc2LXVzYi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlLTQtb2JqLSQoQ09ORklHX01UNzZfU0RJTykgJiM0Mzs9IG10NzYtc2Rpby5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlPTU9b2JqLSQoQ09ORklHX01UNzZ4MDJfTElCKSAmIzQzOz0gbXQ3NngwMi1saWIub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19NVDc2eDAyX1VTQikgJiM0Mzs9IG10NzZ4MDItdXNiLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtNy1vYmotJChDT05GSUdfTVQ3Nl9DT05OQUNfTElCKSAmIzQzOz0gbXQ3Ni1jb25uYWMtbGliLm9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlPTE3PW10NzYtJChDT05GSUdfTkw4MDIxMV9URVNUTU9ERSkgJiM0Mzs9IHRlc3Rtb2RlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtMTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlOjE5Om10NzYtdXNiLXkgOj0gdXNiLm8gdXNiX3RyYWNlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtMjAtbXQ3Ni1zZGlvLXkgOj0gc2Rpby5vIHNkaW9fdHhyeC5vXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZT0yNz1tdDc2eDAyLWxpYi15IDo9IG10NzZ4MDJfdXRpbC5vIG10NzZ4MDJfbWFjLm8gbXQ3NngwMl9tY3UubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtMzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlOjMyOm10NzZ4MDItdXNiLXkgOj0gbXQ3NngwMl91c2JfbWN1Lm8gbXQ3NngwMl91c2JfY29yZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlLTMzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZGVidWdmcy5jPTc0PXN0YXRpYyBpbnQgbXQ3Nl9yeF9xdWV1ZXNfcmVhZChzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kZWJ1Z2ZzLmMtODItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RlYnVnZnMuYzo4MzpcdFx0cXVldWVkID0gbXQ3Nl9pc191c2IoZGV2KSA/IHEtXHUwMDNlbmRlc2MgLSBxLVx1MDAzZXF1ZXVlZCA6IHEtXHUwMDNlcXVldWVkO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kZWJ1Z2ZzLmMtODQtXHRcdHNlcV9wcmludGYocywgXCYjMzQ7ICU5ZCB8ICU5ZCB8ICU5ZCB8ICU5ZCB8XFxuXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oPTk1PXN0cnVjdCBtdDc2X2J1c19vcHMge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTEwOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjExMDojZGVmaW5lIG10NzZfaXNfdXNiKGRldikgKChkZXYpLVx1MDAzZWJ1cy1cdTAwM2V0eXBlID09IE1UNzZfQlVTX1VTQilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTExMS0jZGVmaW5lIG10NzZfaXNfbW1pbyhkZXYpICgoZGV2KS1cdTAwM2VidXMtXHUwMDNldHlwZSA9PSBNVDc2X0JVU19NTUlPKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oPTY0OT1zdHJ1Y3QgbXQ3Nl9tY3Uge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTY2Mi0jZGVmaW5lIE1DVV9SRVNQX1VSQl9TSVpFXHQxMDI0XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDo2NjM6c3RydWN0IG10NzZfdXNiIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTY2NC1cdHN0cnVjdCBtdXRleCB1c2JfY3RybF9tdHg7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg9OTIxPXN0cnVjdCBtdDc2X2RldiB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTAzNS1cdFx0c3RydWN0IG10NzZfbW1pbyBtbWlvO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTAzNjpcdFx0c3RydWN0IG10NzZfdXNiIHVzYjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTEwMzctXHRcdHN0cnVjdCBtdDc2X3NkaW8gc2Rpbztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaD0xODM4PW10NzZ1X2J1bGtfbXNnKHN0cnVjdCBtdDc2X2RldiAqZGV2LCB2b2lkICpkYXRhLCBpbnQgbGVuLCBpbnQgKmFjdHVhbF9sZW4sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTg0Mi1cdHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2ID0gaW50ZXJmYWNlX3RvX3VzYmRldih1aW50Zik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxODQzOlx0c3RydWN0IG10NzZfdXNiICp1c2IgPSBcdTAwMjZkZXYtXHUwMDNldXNiO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTg0NC1cdHVuc2lnbmVkIGludCBwaXBlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oPTE4Njg9dm9pZCBfX19tdDc2dV93cihzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgdTggcmVxLCB1OCByZXFfdHlwZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE4NjktXHRcdCB1MzIgYWRkciwgdTMyIHZhbCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxODcwOmludCBfX210NzZ1X2luaXQoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTg3MS1cdFx0IHN0cnVjdCBtdDc2X2J1c19vcHMgKm9wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxODcyOmludCBtdDc2dV9pbml0KHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Zik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xODczLWludCBtdDc2dV9hbGxvY19tY3VfcXVldWUoc3RydWN0IG10NzZfZGV2ICpkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L01ha2VmaWxlPTQ9b2JqLSQoQ09ORklHX01UNzYxNUUpICYjNDM7PSBtdDc2MTVlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L01ha2VmaWxlOjU6b2JqLSQoQ09ORklHX01UNzY2M19VU0JfU0RJT19DT01NT04pICYjNDM7PSBtdDc2NjMtdXNiLXNkaW8tY29tbW9uLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L01ha2VmaWxlLTYtb2JqLSQoQ09ORklHX01UNzY2M1UpICYjNDM7PSBtdDc2NjN1Lm9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9NYWtlZmlsZT0xNj1tdDc2MTVlLSQoQ09ORklHX01UNzYyMl9XTUFDKSAmIzQzOz0gc29jLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L01ha2VmaWxlLTE3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvTWFrZWZpbGU6MTg6bXQ3NjYzLXVzYi1zZGlvLWNvbW1vbi15IDo9IHVzYl9zZGlvLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L01ha2VmaWxlOjE5Om10NzY2M3UteSA6PSB1c2IubyB1c2JfbWN1Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L01ha2VmaWxlLTIwLW10NzY2M3MteSA6PSBzZGlvLm8gc2Rpb19tY3Uub1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RlYnVnZnMuYz05Nj1tdDc2MTVfcG1fc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jLTEwNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RlYnVnZnMuYzoxMDU6XHRpZiAoIW10NzYxNV9maXJtd2FyZV9vZmZsb2FkKGRldikgfHwgbXQ3Nl9pc191c2IoXHUwMDI2ZGV2LVx1MDAzZW10NzYpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jLTEwNi1cdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oPTM1NT1leHRlcm4gY29uc3QgdTMyIG10NzY2M2VfcmVnX21hcFtfX01UX0JBU0VfTUFYXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oOjM1NjpleHRlcm4gY29uc3QgdTMyIG10NzY2M191c2Jfc2Rpb19yZWdfbWFwW19fTVRfQkFTRV9NQVhdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbXQ3NjE1LmgtMzU3LWV4dGVybiBzdHJ1Y3QgcGNpX2RyaXZlciBtdDc2MTVfcGNpX2RyaXZlcjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaD01NDA9dm9pZCBtdDc2MjJfdHJpZ2dlcl9oaWZfaW50KHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYsIGJvb2wgZW4pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oLTU0Mi0vKiB1c2IgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oOjU0MzppbnQgbXQ3NjYzX3VzYl9zZGlvX3R4X3ByZXBhcmVfc2tiKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgdm9pZCAqdHh3aV9wdHIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaC01NDQtXHRcdFx0XHQgICBlbnVtIG10NzZfdHhxX2lkIHFpZCwgc3RydWN0IG10NzZfd2NpZCAqd2NpZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaC01NDYtXHRcdFx0XHQgICBzdHJ1Y3QgbXQ3Nl90eF9pbmZvICp0eF9pbmZvKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oOjU0Nzpib29sIG10NzY2M191c2Jfc2Rpb190eF9zdGF0dXNfZGF0YShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHU4ICp1cGRhdGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbXQ3NjE1Lmg6NTQ4OnZvaWQgbXQ3NjYzX3VzYl9zZGlvX3R4X2NvbXBsZXRlX3NrYihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaC01NDktXHRcdFx0XHQgICAgIHN0cnVjdCBtdDc2X3F1ZXVlX2VudHJ5ICplKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oOjU1MDppbnQgbXQ3NjYzX3VzYl9zZGlvX3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oLTU1MS1pbnQgbXQ3NjYzdV9tY3VfaW5pdChzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvLmM9NzY9c3RhdGljIGludCBtdDc2NjNzX3Byb2JlKHN0cnVjdCBzZGlvX2Z1bmMgKmZ1bmMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jLTgxLVx0XHQuZHJ2X2ZsYWdzID0gTVRfRFJWX1JYX0RNQV9IRFIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvLmM6ODI6XHRcdC50eF9wcmVwYXJlX3NrYiA9IG10NzY2M191c2Jfc2Rpb190eF9wcmVwYXJlX3NrYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYzo4MzpcdFx0LnR4X2NvbXBsZXRlX3NrYiA9IG10NzY2M191c2Jfc2Rpb190eF9jb21wbGV0ZV9za2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvLmM6ODQ6XHRcdC50eF9zdGF0dXNfZGF0YSA9IG10NzY2M191c2Jfc2Rpb190eF9zdGF0dXNfZGF0YSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYy04NS1cdFx0LnJ4X3NrYiA9IG10NzYxNV9xdWV1ZV9yeF9za2IsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jLTExOC1cdElOSVRfV09SSyhcdTAwMjZkZXYtXHUwMDNlbWN1X3dvcmssIG10NzY2M3NfaW5pdF93b3JrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYzoxMTk6XHRkZXYtXHUwMDNlcmVnX21hcCA9IG10NzY2M191c2Jfc2Rpb19yZWdfbWFwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jLTEyMC1cdGRldi1cdTAwM2VvcHMgPSBvcHM7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jLTE1OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYzoxNTk6XHRyZXQgPSBtdDc2NjNfdXNiX3NkaW9fcmVnaXN0ZXJfZGV2aWNlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvLmMtMTYwLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYz01Nz1zdGF0aWMgdm9pZCBtdDc2NjN1X2NvcHkoc3RydWN0IG10NzZfZGV2ICpkZXYsIHUzMiBvZmZzZXQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtNTkte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmM6NjA6XHRzdHJ1Y3QgbXQ3Nl91c2IgKnVzYiA9IFx1MDAyNmRldi1cdTAwM2V1c2I7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy02MS1cdGludCByZXQsIGkgPSAwLCBiYXRjaF9sZW47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmM9MTAxPXN0YXRpYyB2b2lkIG10NzY2M3VfaW5pdF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0xMTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoxMTI6c3RhdGljIGludCBtdDc2NjN1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50ZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTExMy1cdFx0XHQgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTExNy1cdFx0LmRydl9mbGFncyA9IE1UX0RSVl9SWF9ETUFfSERSIHwgTVRfRFJWX0hXX01HTVRfVFhRLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmM6MTE4Olx0XHQudHhfcHJlcGFyZV9za2IgPSBtdDc2NjNfdXNiX3NkaW9fdHhfcHJlcGFyZV9za2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoxMTk6XHRcdC50eF9jb21wbGV0ZV9za2IgPSBtdDc2NjNfdXNiX3NkaW9fdHhfY29tcGxldGVfc2tiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmM6MTIwOlx0XHQudHhfc3RhdHVzX2RhdGEgPSBtdDc2NjNfdXNiX3NkaW9fdHhfc3RhdHVzX2RhdGEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0xMjEtXHRcdC5yeF9za2IgPSBtdDc2MTVfcXVldWVfcnhfc2tiLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTE0OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jOjE0OTpcdG1kZXYgPSBtdDc2X2FsbG9jX2RldmljZShcdTAwMjZ1c2JfaW50Zi1cdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgb3BzLCBcdTAwMjZkcnZfb3BzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTE1MC1cdGlmICghbWRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0xNTgtXHRJTklUX1dPUksoXHUwMDI2ZGV2LVx1MDAzZW1jdV93b3JrLCBtdDc2NjN1X2luaXRfd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoxNTk6XHRkZXYtXHUwMDNlcmVnX21hcCA9IG10NzY2M191c2Jfc2Rpb19yZWdfbWFwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMTYwLVx0ZGV2LVx1MDAzZW9wcyA9IG9wcztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jOjE2MTpcdHJldCA9IF9fbXQ3NnVfaW5pdChtZGV2LCB1c2JfaW50ZiwgXHUwMDI2YnVzX29wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0xNjItXHRpZiAocmV0IFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTE4NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jOjE4NjpcdHJldCA9IG10NzY2M191c2Jfc2Rpb19yZWdpc3Rlcl9kZXZpY2UoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTE4Ny1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMjAwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmM6MjAxOnN0YXRpYyB2b2lkIG10NzY2M3VfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqdXNiX2ludGYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0yMDIte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmM6MjAzOlx0c3RydWN0IG10NzYxNV9kZXYgKmRldiA9IHVzYl9nZXRfaW50ZmRhdGEodXNiX2ludGYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMjA0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTIxNi0jaWZkZWYgQ09ORklHX1BNXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoyMTc6c3RhdGljIGludCBtdDc2NjN1X3N1c3BlbmQoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsIHBtX21lc3NhZ2VfdCBzdGF0ZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTIxOC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoyMTk6XHRzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2ID0gdXNiX2dldF9pbnRmZGF0YShpbnRmKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTIyMC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0yMzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoyMzY6c3RhdGljIGludCBtdDc2NjN1X3Jlc3VtZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTIzNy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoyMzg6XHRzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2ID0gdXNiX2dldF9pbnRmZGF0YShpbnRmKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTIzOS1cdGludCBlcnI7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0xNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmM6MTc6Y29uc3QgdTMyIG10NzY2M191c2Jfc2Rpb19yZWdfbWFwW10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTE4LVx0W01UX1RPUF9DRkdfQkFTRV1cdD0gMHg4MDAyMDAwMCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTQwLX07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjQxOkVYUE9SVF9TWU1CT0xfR1BMKG10NzY2M191c2Jfc2Rpb19yZWdfbWFwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtNDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jPTQzPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjQ0Om10NzY2M191c2Jfc2Rpb193cml0ZV90eHdpKHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3djaWQgKndjaWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTQ1LVx0XHRcdCAgIGVudW0gbXQ3Nl90eHFfaWQgcWlkLCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtNTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjU2OnN0YXRpYyBpbnQgbXQ3NjYzX3VzYl9zZGlvX3NldF9yYXRlcyhzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy01Ny1cdFx0XHRcdCAgICAgc3RydWN0IG10NzYxNV93dGJsX3JhdGVfZGVzYyAqd3JkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMTMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzoxMzE6c3RhdGljIHZvaWQgbXQ3NjYzX3VzYl9zZGlvX3JhdGVfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTEzMi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0xNDgtXHRcdG10NzYxNV9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjE0OTpcdFx0bXQ3NjYzX3VzYl9zZGlvX3NldF9yYXRlcyhkZXYsIHdyZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTE1MC1cdFx0bXQ3NjE1X211dGV4X3JlbGVhc2UoZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTE1NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmM6MTU2OmJvb2wgbXQ3NjYzX3VzYl9zZGlvX3R4X3N0YXR1c19kYXRhKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgdTggKnVwZGF0ZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMTU3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTE2NS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjE2NjpFWFBPUlRfU1lNQk9MX0dQTChtdDc2NjNfdXNiX3NkaW9fdHhfc3RhdHVzX2RhdGEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0xNjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjE2ODp2b2lkIG10NzY2M191c2Jfc2Rpb190eF9jb21wbGV0ZV9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0xNjktXHRcdFx0XHQgICAgIHN0cnVjdCBtdDc2X3F1ZXVlX2VudHJ5ICplKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMTcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzoxNzM6XHRpZiAobXQ3Nl9pc191c2IobWRldikpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTE3NC1cdFx0aGVhZHJvb20gJiM0Mzs9IE1UX1VTQl9IRFJfU0laRTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTE3OC19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjE3OTpFWFBPUlRfU1lNQk9MX0dQTChtdDc2NjNfdXNiX3NkaW9fdHhfY29tcGxldGVfc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMTgwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzoxODE6aW50IG10NzY2M191c2Jfc2Rpb190eF9wcmVwYXJlX3NrYihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHZvaWQgKnR4d2lfcHRyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0xODItXHRcdFx0XHQgICBlbnVtIG10NzZfdHhxX2lkIHFpZCwgc3RydWN0IG10NzZfd2NpZCAqd2NpZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTIwNi1cdHBrdGlkID0gbXQ3Nl90eF9zdGF0dXNfc2tiX2FkZChcdTAwMjZkZXYtXHUwMDNlbXQ3Niwgd2NpZCwgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmM6MjA3Olx0bXQ3NjYzX3VzYl9zZGlvX3dyaXRlX3R4d2koZGV2LCB3Y2lkLCBxaWQsIHN0YSwga2V5LCBwa3RpZCwgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmM6MjA4Olx0aWYgKG10NzZfaXNfdXNiKG1kZXYpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTIwOS1cdFx0dTMyIGxlbiA9IHNrYi1cdTAwM2VsZW47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0yMjMtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzoyMjQ6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NjYzX3VzYl9zZGlvX3R4X3ByZXBhcmVfc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMjI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYz0yMjY9c3RhdGljIGludCBtdDc2NjN1X2RtYV9zY2hlZF9pbml0KHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0yNzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjI3ODpzdGF0aWMgaW50IG10NzY2M191c2Jfc2Rpb19pbml0X2hhcmR3YXJlKHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTI3OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0yODUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjI4NjpcdGlmIChtdDc2X2lzX3VzYihcdTAwMjZkZXYtXHUwMDNlbXQ3NikpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMjg3LVx0XHRyZXQgPSBtdDc2NjN1X2RtYV9zY2hlZF9pbml0KGRldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0zMDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjMwNjppbnQgbXQ3NjYzX3VzYl9zZGlvX3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0zMDcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMzEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzozMTE6XHRJTklUX1dPUksoXHUwMDI2ZGV2LVx1MDAzZXJhdGVfd29yaywgbXQ3NjYzX3VzYl9zZGlvX3JhdGVfd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTMxMi1cdElOSVRfTElTVF9IRUFEKFx1MDAyNmRldi1cdTAwM2V3cmRfaGVhZCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0zMTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjMxNTpcdGVyciA9IG10NzY2M191c2Jfc2Rpb19pbml0X2hhcmR3YXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTMxNi1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0zMTktXHRody1cdTAwM2VleHRyYV90eF9oZWFkcm9vbSAmIzQzOz0gTVRfVVNCX1RYRF9TSVpFO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzozMjA6XHRpZiAobXQ3Nl9pc191c2IoXHUwMDI2ZGV2LVx1MDAzZW10NzYpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTMyMS1cdFx0aHctXHUwMDNlZXh0cmFfdHhfaGVhZHJvb20gJiM0Mzs9IE1UX1VTQl9IRFJfU0laRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMzIyLVx0XHQvKiBjaGVjayBodyBzZyBzdXBwb3J0IGluIG9yZGVyIHRvIGVuYWJsZSBBTVNEVSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzozMjM6XHRcdGlmIChkZXYtXHUwMDNlbXQ3Ni51c2Iuc2dfZW4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTMyNC1cdFx0XHRody1cdTAwM2VtYXhfdHhfZnJhZ21lbnRzID0gTVRfSFdfVFhQX01BWF9CVUZfTlVNO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMzMzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzozMzQ6XHRpZiAoIWRldi1cdTAwM2VtdDc2LnVzYi5zZ19lbikge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0zMzUtXHRcdHN0cnVjdCBpZWVlODAyMTFfc3RhX3ZodF9jYXAgKnZodF9jYXA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0zNDctfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzozNDg6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NjYzX3VzYl9zZGlvX3JlZ2lzdGVyX2RldmljZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTM0OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21hYy5jPTM2PWludCBtdDc2X2Nvbm5hY19wbV93YWtlKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3Nl9jb25uYWNfcG0gKnBtKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWFjLmMtMzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21hYy5jOjQwOlx0aWYgKG10NzZfaXNfdXNiKGRldikpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21hYy5jLTQxLVx0XHRyZXR1cm4gMDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21hYy5jPTYyPXZvaWQgbXQ3Nl9jb25uYWNfcG93ZXJfc2F2ZV9zY2hlZChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21hYy5jLTY2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tYWMuYzo2NzpcdGlmIChtdDc2X2lzX3VzYihkZXYpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tYWMuYy02OC1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmM9MjU2Nj1tdDc2X2Nvbm5hY19tY3Vfc2V0X3dvd19jdHJsKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmMtMjYwOC1cdFx0cmVxLndvd19jdHJsX3Rsdi53YWtldXBfaGlmID0gV09XX1BDSUU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jOjI2MDk6XHRlbHNlIGlmIChtdDc2X2lzX3VzYihkZXYpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYy0yNjEwLVx0XHRyZXEud293X2N0cmxfdGx2Lndha2V1cF9oaWYgPSBXT1dfVVNCO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmM9MjYxOT1pbnQgbXQ3Nl9jb25uYWNfbWN1X3NldF9oaWZfc3VzcGVuZChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgYm9vbCBzdXNwZW5kLCBib29sIHdhaXRfcmVzcClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jLTI2NDQtXHRcdHJlcS5oZHIuaGlmX3R5cGUgPSAyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYzoyNjQ1Olx0ZWxzZSBpZiAobXQ3Nl9pc191c2IoZGV2KSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmMtMjY0Ni1cdFx0cmVxLmhkci5oaWZfdHlwZSA9IDE7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvTWFrZWZpbGU9Nj1tdDc2eDAtY29tbW9uLXkgOj0gaW5pdC5vIG1haW4ubyBlZXByb20ubyBwaHkub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvTWFrZWZpbGUtNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL01ha2VmaWxlOjg6bXQ3NngwdS15IDo9IHVzYi5vIHVzYl9tY3Uub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvTWFrZWZpbGUtOS1tdDc2eDBlLXkgOj0gcGNpLm8gcGNpX21jdS5vXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGh5LmM9MTAzPW10NzZ4MF9yZl93cihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgdTMyIG9mZnNldCwgdTggdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGh5LmMtMTA0LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BoeS5jOjEwNTpcdGlmIChtdDc2X2lzX3VzYihcdTAwMjZkZXYtXHUwMDNlbXQ3NikpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BoeS5jLTEwNi1cdFx0c3RydWN0IG10NzZfcmVnX3BhaXIgcGFpciA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9waHkuYz0xMTk9c3RhdGljIGludCBtdDc2eDBfcmZfcnIoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIHUzMiBvZmZzZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGh5LmMtMTIzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGh5LmM6MTI0Olx0aWYgKG10NzZfaXNfdXNiKFx1MDAyNmRldi1cdTAwM2VtdDc2KSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGh5LmMtMTI1LVx0XHRzdHJ1Y3QgbXQ3Nl9yZWdfcGFpciBwYWlyID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BoeS5jPTkxMz12b2lkIG10NzZ4MF9waHlfc2V0X2NoYW5uZWwoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGh5LmMtOTcwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGh5LmM6OTcxOlx0aWYgKG10NzZfaXNfdXNiKFx1MDAyNmRldi1cdTAwM2VtdDc2KSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGh5LmMtOTcyLVx0XHRtdDc2eDBfcGh5X2JicF9zZXRfYncoZGV2LCBjaGFuZGVmLVx1MDAzZXdpZHRoKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0xMS0jaW5jbHVkZSBcJiMzNDttY3UuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM6MTI6I2luY2x1ZGUgXCYjMzQ7Li4vbXQ3NngwMl91c2IuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYz0xND1zdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgbXQ3NngwX2RldmljZV90YWJsZVtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTQ1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM6NDY6c3RhdGljIHZvaWQgbXQ3NngwX2luaXRfdXNiX2RtYShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTQ3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYz0xNTE9c3RhdGljIGludCBtdDc2eDB1X2luaXRfaGFyZHdhcmUoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIGJvb2wgcmVzZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMTYzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM6MTY0Olx0bXQ3NngwX2luaXRfdXNiX2RtYShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMTY1LVx0ZXJyID0gbXQ3NngwX2luaXRfaGFyZHdhcmUoZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYz0xNzk9c3RhdGljIGludCBtdDc2eDB1X3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0xODEtXHRzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyA9IGRldi1cdTAwM2VtdDc2Lmh3O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM6MTgyOlx0c3RydWN0IG10NzZfdXNiICp1c2IgPSBcdTAwMjZkZXYtXHUwMDNlbXQ3Ni51c2I7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0xODMtXHRpbnQgZXJyO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTE5OC1cdC8qIGNoZWNrIGh3IHNnIHN1cHBvcnQgaW4gb3JkZXIgdG8gZW5hYmxlIEFNU0RVICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYzoxOTk6XHRody1cdTAwM2VtYXhfdHhfZnJhZ21lbnRzID0gZGV2LVx1MDAzZW10NzYudXNiLnNnX2VuID8gTVRfVFhfU0dfTUFYX1NJWkUgOiAxO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMjAwLVx0ZXJyID0gbXQ3NngwX3JlZ2lzdGVyX2RldmljZShkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTIxMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jOjIxMzpzdGF0aWMgaW50IG10NzZ4MHVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMjE0LVx0XHRcdCBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMjM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM6MjM2Olx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKFx1MDAyNnVzYl9pbnRmLVx1MDAzZWRldiwgc2l6ZW9mKCpkZXYpLCBcdTAwMjZtdDc2eDB1X29wcyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTIzNy1cdFx0XHRcdCBcdTAwMjZkcnZfb3BzKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0yNTItXHRtdDc2eDAydV9pbml0X21jdShtZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jOjI1MzpcdHJldCA9IG10NzZ1X2luaXQobWRldiwgdXNiX2ludGYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMjU0LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0yOTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYzoyOTI6c3RhdGljIHZvaWQgbXQ3NngwX2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMjkzLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jOjI5NDpcdHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2ID0gdXNiX2dldF9pbnRmZGF0YSh1c2JfaW50Zik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0yOTUtXHRib29sIGluaXRpYWxpemVkID0gdGVzdF9iaXQoTVQ3Nl9TVEFURV9JTklUSUFMSVpFRCwgXHUwMDI2ZGV2LVx1MDAzZW1waHkuc3RhdGUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTMwNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jOjMwODpzdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIG10NzZ4MF9zdXNwZW5kKHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50ZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTMwOS1cdFx0XHRcdFx0IHBtX21lc3NhZ2VfdCBzdGF0ZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTMxMC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYzozMTE6XHRzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiA9IHVzYl9nZXRfaW50ZmRhdGEodXNiX2ludGYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMzEyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTMxOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jOjMyMDpzdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIG10NzZ4MF9yZXN1bWUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMzIxLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jOjMyMjpcdHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2ID0gdXNiX2dldF9pbnRmZGF0YSh1c2JfaW50Zik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0zMjMtXHRpbnQgcmV0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYl9tY3UuYy0xMC0jaW5jbHVkZSBcJiMzNDttY3UuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiX21jdS5jOjExOiNpbmNsdWRlIFwmIzM0Oy4uL210NzZ4MDJfdXNiLmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYl9tY3UuYy0xMi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfYmVhY29uLmM9MjY9bXQ3NngwMl93cml0ZV9iZWFjb24oc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIGludCBvZmZzZXQsIHN0cnVjdCBza19idWZmICpza2IpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX2JlYWNvbi5jLTM1LVx0ICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfYmVhY29uLmM6MzY6XHRpZiAobXQ3Nl9pc191c2IoXHUwMDI2ZGV2LVx1MDAzZW10NzYpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfYmVhY29uLmMtMzctXHRcdHN0cnVjdCBtdDc2eDAyX3R4d2kgKnR4d2k7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3VzYl9jb3JlLmMtNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91c2JfY29yZS5jOjY6I2luY2x1ZGUgXCYjMzQ7bXQ3NngwMl91c2IuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3VzYl9jb3JlLmMtNy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXNiX21jdS5jLTEwLSNpbmNsdWRlIFwmIzM0O210NzZ4MDJfbWN1LmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91c2JfbWN1LmM6MTE6I2luY2x1ZGUgXCYjMzQ7bXQ3NngwMl91c2IuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3VzYl9tY3UuYy0xMi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXNiX21jdS5jPTIxPW10NzZ4MDJ1X211bHRpcGxlX21jdV9yZWFkcyhzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgdTggKmRhdGEsIGludCBsZW4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXNiX21jdS5jLTIyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91c2JfbWN1LmM6MjM6XHRzdHJ1Y3QgbXQ3Nl91c2IgKnVzYiA9IFx1MDAyNmRldi1cdTAwM2V1c2I7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXNiX21jdS5jLTI0LVx0aW50IGk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3VzYl9tY3UuYz0zNz1zdGF0aWMgaW50IG10NzZ4MDJ1X21jdV93YWl0X3Jlc3Aoc3RydWN0IG10NzZfZGV2ICpkZXYsIHU4IHNlcSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91c2JfbWN1LmMtMzgte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3VzYl9tY3UuYzozOTpcdHN0cnVjdCBtdDc2X3VzYiAqdXNiID0gXHUwMDI2ZGV2LVx1MDAzZXVzYjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91c2JfbWN1LmMtNDAtXHR1OCAqZGF0YSA9IHVzYi1cdTAwM2VtY3UuZGF0YTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXNiX21jdS5jPTE2Nj1tdDc2eDAydV9tY3VfcmRfcnAoc3RydWN0IG10NzZfZGV2ICpkZXYsIHUzMiBiYXNlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91c2JfbWN1LmMtMTcwLVx0Y29uc3QgaW50IG1heF92YWxzX3Blcl9jbWQgPSBNVF9JTkJBTkRfUEFDS0VUX01BWF9MRU4gLyA4O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3VzYl9tY3UuYzoxNzE6XHRzdHJ1Y3QgbXQ3Nl91c2IgKnVzYiA9IFx1MDAyNmRldi1cdTAwM2V1c2I7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXNiX21jdS5jLTE3Mi1cdHN0cnVjdCBza19idWZmICpza2I7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3V0aWwuYz0xNDA9aW50IG10NzZ4MDJfaW5pdF9kZXZpY2Uoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3V0aWwuYy0xNTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXRpbC5jOjE1MzpcdGlmIChtdDc2X2lzX3VzYihcdTAwMjZkZXYtXHUwMDNlbXQ3NikpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91dGlsLmMtMTU0LVx0XHRody1cdTAwM2VleHRyYV90eF9oZWFkcm9vbSAmIzQzOz0gc2l6ZW9mKHN0cnVjdCBtdDc2eDAyX3R4d2kpICYjNDM7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3V0aWwuYz00MDY9aW50IG10NzZ4MDJfc2V0X2tleShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgZW51bSBzZXRfa2V5X2NtZCBjbWQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3V0aWwuYy00NDMtXHQgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91dGlsLmM6NDQ0Olx0aWYgKG10NzZfaXNfdXNiKFx1MDAyNmRldi1cdTAwM2VtdDc2KSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91dGlsLmMtNDQ1LVx0ICAgIHZpZi1cdTAwM2V0eXBlID09IE5MODAyMTFfSUZUWVBFX0FQIFx1MDAyNlx1MDAyNlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jLTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYzo5OiNpbmNsdWRlIFwmIzM0Oy4uL210NzZ4MDJfdXNiLmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jLTEwLSNpbmNsdWRlIFwmIzM0O210NzZ4MnUuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jPTEyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBtdDc2eDJ1X2RldmljZV90YWJsZVtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jLTMxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmM6MzI6c3RhdGljIGludCBtdDc2eDJ1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmMtMzMtXHRcdFx0IGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYy05MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jOjkxOnN0YXRpYyB2b2lkIG10NzZ4MnVfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jLTkyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jOjkzOlx0c3RydWN0IG10NzZ4MDJfZGV2ICpkZXYgPSB1c2JfZ2V0X2ludGZkYXRhKGludGYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmMtOTQtXHRzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyA9IG10NzZfaHcoZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYy0xMDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYzoxMDM6c3RhdGljIGludCBfX21heWJlX3VudXNlZCBtdDc2eDJ1X3N1c3BlbmQoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYy0xMDQtXHRcdFx0XHRcdCAgcG1fbWVzc2FnZV90IHN0YXRlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmMtMTA1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jOjEwNjpcdHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2ID0gdXNiX2dldF9pbnRmZGF0YShpbnRmKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jLTEwNy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYy0xMTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYzoxMTM6c3RhdGljIGludCBfX21heWJlX3VudXNlZCBtdDc2eDJ1X3Jlc3VtZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jLTExNC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYzoxMTU6XHRzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiA9IHVzYl9nZXRfaW50ZmRhdGEoaW50Zik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYy0xMTYtXHRpbnQgZXJyO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9pbml0LmMtMTAtI2luY2x1ZGUgXCYjMzQ7Li4vbXQ3NngwMl9waHkuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX2luaXQuYzoxMTojaW5jbHVkZSBcJiMzNDsuLi9tdDc2eDAyX3VzYi5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfaW5pdC5jLTEyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9pbml0LmM9MTkwPWludCBtdDc2eDJ1X3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfaW5pdC5jLTE5Mi1cdHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3ID0gbXQ3Nl9odyhkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX2luaXQuYzoxOTM6XHRzdHJ1Y3QgbXQ3Nl91c2IgKnVzYiA9IFx1MDAyNmRldi1cdTAwM2VtdDc2LnVzYjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9pbml0LmMtMTk0LVx0Ym9vbCB2aHQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX2luaXQuYy0yMTktXHQvKiBjaGVjayBodyBzZyBzdXBwb3J0IGluIG9yZGVyIHRvIGVuYWJsZSBBTVNEVSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX2luaXQuYzoyMjA6XHRody1cdTAwM2VtYXhfdHhfZnJhZ21lbnRzID0gZGV2LVx1MDAzZW10NzYudXNiLnNnX2VuID8gTVRfVFhfU0dfTUFYX1NJWkUgOiAxO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX2luaXQuYy0yMjEtXHRzd2l0Y2ggKGRldi1cdTAwM2VtdDc2LnJldikge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9tYWluLmMtNi0jaW5jbHVkZSBcJiMzNDttdDc2eDJ1LmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9tYWluLmM6NzojaW5jbHVkZSBcJiMzNDsuLi9tdDc2eDAyX3VzYi5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWFpbi5jLTgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX21jdS5jLTktI2luY2x1ZGUgXCYjMzQ7ZWVwcm9tLmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9tY3UuYzoxMDojaW5jbHVkZSBcJiMzNDsuLi9tdDc2eDAyX3VzYi5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWN1LmMtMTEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX21jdS5jPTI4PXN0YXRpYyB2b2lkIG10NzZ4MnVfbWN1X2VuYWJsZV9wYXRjaChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9tY3UuYy0yOS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWN1LmM6MzA6XHRzdHJ1Y3QgbXQ3Nl91c2IgKnVzYiA9IFx1MDAyNmRldi1cdTAwM2VtdDc2LnVzYjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9tY3UuYy0zMS1cdHN0YXRpYyBjb25zdCB1OCBkYXRhW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX21jdS5jPTQzPXN0YXRpYyB2b2lkIG10NzZ4MnVfbWN1X3Jlc2V0X3dtdChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9tY3UuYy00NC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWN1LmM6NDU6XHRzdHJ1Y3QgbXQ3Nl91c2IgKnVzYiA9IFx1MDAyNmRldi1cdTAwM2VtdDc2LnVzYjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9tY3UuYy00Ni1cdHU4IGRhdGFbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9MTQzPW10NzkyMV9wbV9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTQ3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjE0ODpcdGlmIChtdDc2X2lzX3VzYihcdTAwMjZkZXYtXHUwMDNlbXQ3NikpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTQ5LVx0XHRyZXR1cm4gLUVPUE5PVFNVUFA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTE4OD1tdDc5MjFfZGVlcF9zbGVlcF9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTk0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjE5NTpcdGlmIChtdDc2X2lzX3VzYihcdTAwMjZkZXYtXHUwMDNlbXQ3NikpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTk2LVx0XHRyZXR1cm4gLUVPUE5PVFNVUFA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jPTE3MD1pbnQgbXQ3OTIxX3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0yMDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MjEwOlx0aWYgKCFtdDc2X2lzX3VzYihcdTAwMjZkZXYtXHUwMDNlbXQ3NikgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMjExLVx0ICAgICFpc19tdDc5MDIoXHUwMDI2ZGV2LVx1MDAzZW10NzYpKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM9NjU1PXZvaWQgbXQ3OTIxX21hY19yZXNldF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy02ODAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo2ODE6XHRpZiAoKG10NzZfaXNfc2RpbyhcdTAwMjZkZXYtXHUwMDNlbXQ3NikgfHwgbXQ3Nl9pc191c2IoXHUwMDI2ZGV2LVx1MDAzZW10NzYpKSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTY4Mi1cdCAgICBhdG9taWNfcmVhZChcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5idXNfaHVuZykpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM9NzY5PWludCBtdDc5MjFfdXNiX3NkaW9fdHhfcHJlcGFyZV9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCB2b2lkICp0eHdpX3B0cixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04MDQtXHRwYWQgPSByb3VuZF91cChza2ItXHUwMDNlbGVuLCA0KSAtIHNrYi1cdTAwM2VsZW47XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo4MDU6XHRpZiAobXQ3Nl9pc191c2IobWRldikpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04MDYtXHRcdHBhZCAmIzQzOz0gNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmM9MTM9Ym9vbCBtdDc5MjFfcmVnZF9jbGNfc3VwcG9ydGVkKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jLTE1LVx0aWYgKG10NzkyMV9kaXNhYmxlX2NsYyB8fFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jOjE2Olx0ICAgIG10NzZfaXNfdXNiKFx1MDAyNmRldi1cdTAwM2VtdDc2KSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuYy0xNy1cdFx0cmV0dXJuIGZhbHNlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jPTE1MD1zdGF0aWMgaW50IG10NzkyMXVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jLTE5Ny1cdG9wcy1cdTAwM2VzdG9wID0gbXQ3OTJ4dV9zdG9wO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmM6MTk4Olx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKFx1MDAyNnVzYl9pbnRmLVx1MDAzZWRldiwgc2l6ZW9mKCpkZXYpLCBvcHMsIFx1MDAyNmRydl9vcHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmMtMTk5LVx0aWYgKCFtZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jLTIxMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jOjIxMjpcdHJldCA9IF9fbXQ3NnVfaW5pdChtZGV2LCB1c2JfaW50ZiwgXHUwMDI2YnVzX29wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYy0yMTMtXHRpZiAocmV0IFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz0xODI9bXQ3OTI1X3BtX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xODYtXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNSAwMTowMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTIwNAoJCQkJCQkJb3V0cHV0OiA0OQoJCQkJCQkJdGhvdWdodHM6IDE4MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIHRoZSBNVDc2IFVTQiBEcml2ZXIqKgoKT2theSwgc28gdGhlIE1UNzYgZHJpdmVyIGZhbWlseSBoYXMgVVNCIHN1cHBvcnQg4oCTIHRoYXQmIzM5O3MgYSBrZXkgcGllY2Ugb2YgaW5mb3JtYXRpb24uIFNwZWNpZmljYWxseSwgaXQgc3VwcG9ydHMgYSByYW5nZSBvZiBVU0IgdmFyaWFudHM6IGBtdDc2LXVzYmAsIGBtdDc2eDAyLXVzYmAsIGBtdDc2MTUtdXNiYCwgdGhlIHdob2xlIGxvdC4gVGhpcyBpcyBicmlsbGlhbnQgYmVjYXVzZSBpdCBtZWFucyB3ZSBjYW4gZnV6eiBpdCB1c2luZyBhIFVTQiBnYWRnZXQgc2V0dXAhCgpOb3csIHRoZSBtYWluIHRhcmdldCBmb3IgbW9kaWZpY2F0aW9uIGlzIHRoZSBgX19tdDc2X3NldF9jaGFubmVsYCBmdW5jdGlvbiwgYW5kIEkga25vdyBpdCByZXNpZGVzIHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuY2AgZmlsZS4gTmV4dCwgSSBuZWVkIHRvIGNvbmZpcm0gaWYgdGhhdCBmdW5jdGlvbiBpcyBhY2Nlc3NpYmxlLiBJIHN1c3BlY3QgaXQmIzM5O3MgbGlrZWx5IGEgbWFjODAyMTEgY2FsbGJhY2ssIHNvbWV0aGluZyBhbG9uZyB0aGUgbGluZXMgb2YgYHNldF9jaGFubmVsYC4gTGV0JiMzOTtzIGNvbmZpcm0gdGhhdCBieSBjaGVja2luZyBgbWFjODAyMTEuY2AgZm9yIGNhbGxzIHRvIGBfX210NzZfc2V0X2NoYW5uZWxgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI1IDAxOjAyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O19fbXQ3Nl9zZXRfY2hhbm5lbCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmM9MTAzMD1FWFBPUlRfU1lNQk9MX0dQTChtdDc2X3VwZGF0ZV9zdXJ2ZXkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTEwMzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmM6MTAzMjppbnQgX19tdDc2X3NldF9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtMTAzMy1cdFx0ICAgICAgIGJvb2wgb2ZmY2hhbm5lbClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmM9MTA3Nj1pbnQgbXQ3Nl9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IGNmZzgwMjExX2NoYW5fZGVmICpjaGFuZGVmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy0xMDg0LVx0bXV0ZXhfbG9jayhcdTAwMjZkZXYtXHUwMDNlbXV0ZXgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjEwODU6XHRyZXQgPSBfX210NzZfc2V0X2NoYW5uZWwocGh5LCBjaGFuZGVmLCBvZmZjaGFubmVsKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy0xMDg2LVx0bXV0ZXhfdW5sb2NrKFx1MDAyNmRldi1cdTAwM2VtdXRleCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjUgMDE6MDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjAwMTQKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiA0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzOgoKKipUcmFjaW5nIHRoZSBDYWxsIENoYWluIG9mIGBtdDc2X3NldF9jaGFubmVsYCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYF9fbXQ3Nl9zZXRfY2hhbm5lbGAsIHdoaWNoIGlzIHByZXR0eSBjbGVhcmx5IGEgbG93LWxldmVsIGZ1bmN0aW9uIHJlbGF0ZWQgdG8gY2hhbm5lbCBjb25maWd1cmF0aW9uIHdpdGhpbiB0aGUgbXQ3NiB3aXJlbGVzcyBkcml2ZXIuIE15IGluc3RpbmN0IGlzIHRvIHRyYWNlIGJhY2sgdGhlIGNhbGwgc3RhY2suIFNwZWNpZmljYWxseSwgSSYjMzk7bSBub3RpbmcgdGhhdCBgX19tdDc2X3NldF9jaGFubmVsYCBpcyBjYWxsZWQgYnkgYG10NzZfc2V0X2NoYW5uZWxgLiBOb3csIGxldCYjMzk7cyBzZWUgd2hlcmUgKnRoYXQqIGZ1bmN0aW9uLCBgbXQ3Nl9zZXRfY2hhbm5lbGAsIGlzIGFjdHVhbGx5ICp1c2VkKi4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGhpZ2hlci1sZXZlbCBjb250ZXh0LCB0aGUgaW5pdGlhdGluZyBmdW5jdGlvbiBjYWxscywgYW5kIHRoZSB0eXBpY2FsIGZsb3cgdG8gaGF2ZSBhbnkgaWRlYSBob3cgdG8gZGVidWcgb3IgbW9kaWZ5IGl0LiBUaGF0IHdpbGwgcHJvdmlkZSBhIGNyaXRpY2FsIGNsdWUgYWJvdXQgdGhlIGNvbnRyb2wgZmxvdy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNSAwMTowMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc2X3NldF9jaGFubmVsJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9jaGFubmVsLmM9MjI9bXQ3Nl9waHlfdXBkYXRlX2NoYW5uZWwoc3RydWN0IG10NzZfcGh5ICpwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9jaGFubmVsLmMtMjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2NoYW5uZWwuYzoyOTpcdHJldHVybiBfX210NzZfc2V0X2NoYW5uZWwocGh5LCBcdTAwMjZwaHktXHUwMDNlbWFpbl9jaGFuZGVmLCBmYWxzZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2NoYW5uZWwuYy0zMC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9jaGFubmVsLmM9MzEzPXZvaWQgbXQ3Nl9yb2NfY29tcGxldGUoc3RydWN0IG10NzZfcGh5ICpwaHkpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9jaGFubmVsLmMtMzI0LVx0ICAgICF0ZXN0X2JpdChNVDc2X01DVV9SRVNFVCwgXHUwMDI2ZGV2LVx1MDAzZXBoeS5zdGF0ZSkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvY2hhbm5lbC5jOjMyNTpcdFx0X19tdDc2X3NldF9jaGFubmVsKHBoeSwgXHUwMDI2cGh5LVx1MDAzZW1haW5fY2hhbmRlZiwgZmFsc2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9jaGFubmVsLmMtMzI2LVx0XHRtdDc2X29mZmNoYW5uZWxfbm90aWZ5KHBoeSwgZmFsc2UpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvY2hhbm5lbC5jPTM1Nz1pbnQgbXQ3Nl9yZW1haW5fb25fY2hhbm5lbChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2NoYW5uZWwuYy0zOTQtXHRcdG10NzZfb2ZmY2hhbm5lbF9ub3RpZnkocGh5LCB0cnVlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvY2hhbm5lbC5jOjM5NTpcdHJldCA9IF9fbXQ3Nl9zZXRfY2hhbm5lbChwaHksIFx1MDAyNmNoYW5kZWYsIG9mZmNoYW5uZWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9jaGFubmVsLmMtMzk2LVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYz0xMDMwPUVYUE9SVF9TWU1CT0xfR1BMKG10NzZfdXBkYXRlX3N1cnZleSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtMTAzMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYzoxMDMyOmludCBfX210NzZfc2V0X2NoYW5uZWwoc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiAqY2hhbmRlZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy0xMDMzLVx0XHQgICAgICAgYm9vbCBvZmZjaGFubmVsKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy0xMDc1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjEwNzY6aW50IG10NzZfc2V0X2NoYW5uZWwoc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiAqY2hhbmRlZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy0xMDc3LVx0XHQgICAgIGJvb2wgb2ZmY2hhbm5lbClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtMTA4NC1cdG11dGV4X2xvY2soXHUwMDI2ZGV2LVx1MDAzZW11dGV4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYzoxMDg1Olx0cmV0ID0gX19tdDc2X3NldF9jaGFubmVsKHBoeSwgY2hhbmRlZiwgb2ZmY2hhbm5lbCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtMTA4Ni1cdG11dGV4X3VubG9jayhcdTAwMjZkZXYtXHUwMDNlbXV0ZXgpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYz0xMDkxPWludCBtdDc2X3VwZGF0ZV9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqcGh5KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy0xMDk4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjEwOTk6XHRyZXR1cm4gbXQ3Nl9zZXRfY2hhbm5lbChwaHksIGNoYW5kZWYsIG9mZmNoYW5uZWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTExMDAtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oPTE3OTk9dm9pZCBtdDc2X3F1ZXVlX3R4X2NvbXBsZXRlKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE4MDAtXHRcdFx0ICAgIHN0cnVjdCBtdDc2X3F1ZXVlX2VudHJ5ICplKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjE4MDE6aW50IF9fbXQ3Nl9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IGNmZzgwMjExX2NoYW5fZGVmICpjaGFuZGVmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTgwMi1cdFx0ICAgICAgIGJvb2wgb2ZmY2hhbm5lbCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg9MTgwNT1tdDc2X29mZmNoYW5uZWxfY2hhbmRlZihzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFuLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE4MTQtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTgxNTppbnQgbXQ3Nl9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IGNmZzgwMjExX2NoYW5fZGVmICpjaGFuZGVmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTgxNi1cdFx0ICAgICBib29sIG9mZmNoYW5uZWwpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvc2Nhbi5jPTc9c3RhdGljIHZvaWQgbXQ3Nl9zY2FuX2NvbXBsZXRlKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBib29sIGFib3J0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvc2Nhbi5jLTIwLVx0ICAgICF0ZXN0X2JpdChNVDc2X01DVV9SRVNFVCwgXHUwMDI2ZGV2LVx1MDAzZXBoeS5zdGF0ZSkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvc2Nhbi5jOjIxOlx0XHRtdDc2X3NldF9jaGFubmVsKHBoeSwgXHUwMDI2cGh5LVx1MDAzZW1haW5fY2hhbmRlZiwgZmFsc2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zY2FuLmMtMjItXHRcdG10NzZfb2ZmY2hhbm5lbF9ub3RpZnkocGh5LCBmYWxzZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zY2FuLmM9MTA3PXZvaWQgbXQ3Nl9zY2FuX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvc2Nhbi5jLTEzNS1cdFx0ZGV2LVx1MDAzZXNjYW4uY2hhbiA9IE5VTEw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3NjYW4uYzoxMzY6XHRcdG10NzZfc2V0X2NoYW5uZWwocGh5LCBcdTAwMjZwaHktXHUwMDNlbWFpbl9jaGFuZGVmLCBmYWxzZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3NjYW4uYy0xMzctXHRcdG10NzZfb2ZmY2hhbm5lbF9ub3RpZnkocGh5LCBmYWxzZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zY2FuLmMtMTQ1LVx0XHRtdDc2X29mZmNoYW5uZWxfbm90aWZ5KHBoeSwgdHJ1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3NjYW4uYzoxNDY6XHRtdDc2X3NldF9jaGFubmVsKHBoeSwgXHUwMDI2Y2hhbmRlZiwgb2ZmY2hhbm5lbCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3NjYW4uYy0xNDctXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjUgMDE6MDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjIwOTcKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAxODAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIE1UNzYgQ2hhbm5lbCBTZXR0aW5nIEZ1bmN0aW9ucyBmb3IgVGVzdGFiaWxpdHkqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGhvdyB0aGUgYG10NzZfc2V0X2NoYW5uZWxgIGFuZCBgX19tdDc2X3NldF9jaGFubmVsYCBmdW5jdGlvbnMgYXJlIHVzZWQgaW4gdGhlIE1UNzYgd2lyZWxlc3MgZHJpdmVyLiBJdCBzZWVtcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkOyB0aGV5JiMzOTtyZSBjYWxsZWQgaW4gcmVzcG9uc2UgdG8gdGhlIHVzdWFsIG1hYzgwMjExIGV2ZW50czogc2Nhbm5pbmcgKGBtdDc2X3NjYW5fd29ya2AsIGBtdDc2X3NjYW5fY29tcGxldGVgKSwgY2hhbm5lbCB1cGRhdGVzIChgbXQ3Nl91cGRhdGVfY2hhbm5lbGApLCBhbmQgYWxzbyB0aGluZ3MgbGlrZSByZW1haW5pbmcgb24gYSBzcGVjaWZpYyBjaGFubmVsIChgbXQ3Nl9yZW1haW5fb25fY2hhbm5lbGApLCBST0MgY29tcGxldGlvbiAoYG10NzZfcm9jX2NvbXBsZXRlYCksIGFuZCBkaXJlY3QgUEhZIGNoYW5uZWwgdXBkYXRlcyAoYG10NzZfcGh5X3VwZGF0ZV9jaGFubmVsYCkuIFRoYXQmIzM5O3MgYWxsIHN0YW5kYXJkIG9wZXJhdGluZyBwcm9jZWR1cmUgZm9yIGEgbWFjODAyMTEtY29tcGxpYW50IGRyaXZlciwgbm90aGluZyBwYXJ0aWN1bGFybHkgb3V0IG9mIHRoZSBvcmRpbmFyeSBoZXJlLgoKVGhlIGludGVyZXN0aW5nIHBhcnQsIGZyb20gYSB0ZXN0aW5nIHBlcnNwZWN0aXZlLCBpcyB0aGF0IE1UNzYgaGFzIFVTQiBzdXBwb3J0LiBUaGF0IG1lYW5zIHdlIGNhbiBwb3RlbnRpYWxseSBsZXZlcmFnZSBgZHVtbXlfaGNkYCB3aXRoaW4gc3l6a2FsbGVyIHRvIGVtdWxhdGUgYSBVU0IgZGV2aWNlIGFuZCB0aGVuIHRyaWdnZXIgdGhlc2UgbWFjODAyMTEgb3BlcmF0aW9ucywgcGFydGljdWxhcmx5IHZpYSBgbmw4MDIxMWAuIFRoYXQgd291bGQgZ2l2ZSB1cyBhIGNvbXBsZXRlbHkgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgdG8gdGhvcm91Z2hseSB0ZXN0IGFsbCB0aG9zZSBjaGFubmVsIHNldHRpbmcgYW5kIG1hbmFnZW1lbnQgZnVuY3Rpb25zLiBHaXZlbiB0aGF0IHRoZXkgYXJlIHVzZWQgaW4gc28gbWFueSBkaWZmZXJlbnQgZnVuY3Rpb25zIHdpdGhpbiB0aGUgZHJpdmVyLCBpdCBzaG91bGQgYmUgcXVpdGUgcmVhY2hhYmxlLgoKUmlnaHQsIHNvIHRvIG1ha2UgdGhpcyBoYXBwZW4sIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBmaWd1cmUgb3V0IHdoaWNoIGtlcm5lbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHJlcXVpcmVkIHRvIGVuYWJsZSB0aG9zZSBNVDc2IFVTQiBkcml2ZXJzIGluIHRoZSBmaXJzdCBwbGFjZS4gVGhhdCYjMzk7bGwgYmUgdGhlIHN0YXJ0aW5nIHBvaW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNSAwMTowMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTVQ3Ni4qVVNCJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnPTY9Y29uZmlnIE1UNzZfTEVEU1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoxMjpjb25maWcgTVQ3Nl9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xMy1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnPTIwPWNvbmZpZyBNVDc2eDAyX0xJQlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0yMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyNDpjb25maWcgTVQ3NngwMl9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0yNS1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZz0yMT1jb25maWcgTVQ3NjIyX1dNQUNcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnLTMxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZzozMjpjb25maWcgTVQ3NjYzX1VTQl9TRElPX0NPTU1PTlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZy0zMy1cdHRyaXN0YXRlXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI1IDAxOjAyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyOTkzCgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogNTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYW5hbHlzaXMgb2YgdGhlIHNpdHVhdGlvbjoKCioqSW52ZXN0aWdhdGluZyBNVDc2IERyaXZlciBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBleGFjdCBjb25maWd1cmF0aW9uIG9wdGlvbnMgdGhhdCBhY3RpdmF0ZSB0aGVzZSBNVDc2IHdpcmVsZXNzIGRyaXZlcnMuIEkmIzM5O20gZ29pbmcgdG8gZGl2ZSByaWdodCBpbnRvIHRoZSBgS2NvbmZpZ2AgZmlsZXMgZm9yIHRoZSBNZWRpYXRlayB3aXJlbGVzcyBkcml2ZXJzLiBTcGVjaWZpY2FsbHksIEkmIzM5O2xsIGJlIHN0YXJ0aW5nIHdpdGggYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZ2AsIGFuZCB0aGVuIGJyYW5jaCBvdXQgdG8gbG9vayBhdCB0aGUgbW9yZSBzcGVjaWZpYyBgbXQ3NngwYCBkaXJlY3RvcnkmIzM5O3MgYEtjb25maWdgIGZpbGUgYW5kIG90aGVycyBsaWtlIGl0LiBUaGlzIHNob3VsZCBnaXZlIG1lIHRoZSBncm91bmQgdHJ1dGggb2Ygd2hhdCBmbGFncyBuZWVkIHRvIGJlIHNldCB0byBpbmNsdWRlIHRoZXNlIE1UNzYtYmFzZWQgZHJpdmVycyBpbiBhIGtlcm5lbCBidWlsZC4gSSBleHBlY3QgdG8gZmluZCBzb21lIGludGVyZXN0aW5nIGRlcGVuZGVuY2llcyBhbmQgcG90ZW50aWFsbHkgcGxhdGZvcm0tc3BlY2lmaWMgY29uZmlndXJhdGlvbnMgaW4gdGhlc2UgZmlsZXMgYXMgd2VsbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjUgMDE6MDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1UNzYmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyOmNvbmZpZyBNVDc2X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0zLVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzo2OmNvbmZpZyBNVDc2X0xFRFNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy03LVx0Ym9vbFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoxMjpjb25maWcgTVQ3Nl9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xMy1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTE1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjE2OmNvbmZpZyBNVDc2X1NESU9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xNy1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTE5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjIwOmNvbmZpZyBNVDc2eDAyX0xJQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTIxLVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6MjQ6Y29uZmlnIE1UNzZ4MDJfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjUtXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0yNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyODpjb25maWcgTVQ3Nl9DT05OQUNfTElCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjktXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZz0zNj1jb25maWcgTVQ3OTJ4X1VTQlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0zOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzo0MDpjb25maWcgTVQ3Nl9OUFVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy00MS1cdGJvb2xcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9LY29uZmlnOjI6Y29uZmlnIE1UNzYwM0VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzYwM0UgKFBDSWUpIGFuZCBNVDc2eDggV0xBTiBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZy0yLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZzozOmNvbmZpZyBNVDc2MTVfQ09NTU9OXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnLTQtXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWctNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWc6ODpjb25maWcgTVQ3NjE1RVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZy05LVx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3NjE1RSBhbmQgTVQ3NjYzRSAoUENJZSkgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWctMjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnOjIxOmNvbmZpZyBNVDc2MjJfV01BQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZy0yMi1cdGJvb2wgXCYjMzQ7TVQ3NjIyIChTb0MpIFdNQUMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWctMzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnOjMyOmNvbmZpZyBNVDc2NjNfVVNCX1NESU9fQ09NTU9OXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnLTMzLVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnLTM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZzozNjpjb25maWcgTVQ3NjYzVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZy0zNy1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzY2M1UgKFVTQikgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWctNDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnOjQ3OmNvbmZpZyBNVDc2NjNTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnLTQ4LVx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3NjYzUyAoU0RJTykgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL0tjb25maWc6Mjpjb25maWcgTVQ3NngwX0NPTU1PTlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvS2NvbmZpZy0zLVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9LY29uZmlnLTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9LY29uZmlnOjY6Y29uZmlnIE1UNzZ4MFVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL0tjb25maWctNy1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzZ4MFUgKFVTQikgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL0tjb25maWctMTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9LY29uZmlnOjE5OmNvbmZpZyBNVDc2eDBFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9LY29uZmlnLTIwLVx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3NngwRSAoUENJZSkgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6Mjpjb25maWcgTVQ3NngyX0NPTU1PTlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZy0zLVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnLTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjY6Y29uZmlnIE1UNzZ4MkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWctNy1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzZ4MkUgKFBDSWUpIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnLTE3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoxODpjb25maWcgTVQ3NngyVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZy0xOS1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzZ4MlUgKFVTQikgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNSAwMTowMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTIzOQoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDY5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlVTQiBTdXBwb3J0IGZvciBNVDc2OiBBIFF1aWNrIE1lbnRhbCBDaGVja2xpc3QqKgoKT2theSwgc28gSSYjMzk7bSB0aGlua2luZyBhYm91dCBVU0Igc3VwcG9ydCBmb3IgTVQ3Ni1iYXNlZCBkZXZpY2VzLiBMZXQgbWUgcXVpY2tseSBydW4gdGhyb3VnaCB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgaW4gbXkgaGVhZC4uLiBJIGtub3cgd2UmIzM5O3ZlIGdvdCBhIGZldyBvZiB0aGVtIHRoYXQgYXJlIHByZXR0eSBjb21tb246IE1UNzY2M1UsIE1UNzZ4MFUsIGFuZCBNVDc2eDJVLiBUaG9zZSBhcmUgZGVmaW5pdGVseSBrZXkuCgpIb2xkIG9uLi4uIEkmIzM5O20gcHJldHR5IHN1cmUgdGhlcmUmIzM5O3MgYW4gTVQ3OTIxVSB2YXJpYW50IGFzIHdlbGwsIHJpZ2h0PyBMZXQgbWUganVzdCBkb3VibGUtY2hlY2sgdGhhdC4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJJiMzOTttIG5vdCBtaXNzaW5nIGFueXRoaW5nIGNydWNpYWwgdGhlcmUuIFRpbWUgdG8gcHVsbCB1cCB0aGUgYG10NzkyMS9LY29uZmlnYCBmaWxlIGluIG15IG1lbnRhbCByZXBvc2l0b3J5IGFuZCB2ZXJpZnkgdGhhdCBJJiMzOTttIGluY2x1ZGluZyBldmVyeXRoaW5nIEkgc2hvdWxkIGJlIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNSAwMTowMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTVQ3OTIxJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWc6Mjpjb25maWcgTVQ3OTIxX0NPTU1PTlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0zLVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnOjc6Y29uZmlnIE1UNzkyMUVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctOC1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyMUUgKFBDSWUpIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZzoxNzpjb25maWcgTVQ3OTIxU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0xOC1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyMVMgKFNESU8pIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZzoyODpjb25maWcgTVQ3OTIxVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0yOS1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyMVUgKFVTQikgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNSAwMTowMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTk0NQoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDgwNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIHRoZSBNVDc2IFVTQiBEcml2ZXJzKioKCk9rYXksIHNvIHdlIG5lZWQgdG8gZ2V0IHRoZXNlIE1UNzYgVVNCIGRyaXZlcnMgcmVhZHkgZm9yIGZ1enppbmcuIEkmIzM5O3ZlIGlkZW50aWZpZWQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zOiBgTVQ3NjYzVWAsIGBNVDc2eDBVYCwgYE1UNzZ4MlVgLCBhbmQgYE1UNzkyMVVgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZW5hYmxlIHRoZXNlIGNvbmZpZ3VyYXRpb25zIHRvIGVuc3VyZSB0aGVpciBVU0IgZHJpdmVycyBhcmUgYnVpbHQgYW5kIGFjY2Vzc2libGUgZm9yIGZ1enppbmcuIExldCYjMzk7cyBtYWtlIHN1cmUgdGhvc2UgYXJlIHNlbGVjdGVkLCBhaCB5ZXMsIGBNVDc2X1VTQmAgaXMgc2VsZWN0ZWQgYnkgdGhlc2UuIEFsc28sIHRob3NlIHNlbGVjdCBgTVQ3Nl9DT1JFYCBhbmQgYE1UNzZfVVNCYCAtIGdvb2QsIGdvb2QuIEkgc2hvdWxkIHByb2JhYmx5IGFkZCBgTUFDODAyMTFgLCBldmVuIHRob3VnaCBpdCBpcyBhbHJlYWR5IGVuYWJsZWQsIHRvIHRoZSBsaXN0IGluIGNhc2Ugd2UgbmVlZCBpdCwgYnV0IHRoZSBvdGhlcnMgYXJlIHRoZSBvbmVzIHdlIHJlYWxseSB3YW50LgoKVGhlIHByaW1hcnkgZnVuY3Rpb24gd2UgbmVlZCB0byBmb2N1cyBvdXIgZnV6emluZyBlZmZvcnRzIG9uIGFwcGVhcnMgdG8gYmUgYF9fbXQ3Nl9zZXRfY2hhbm5lbGAsIHNpbmNlIHRoYXQgaXMgdGhlIG1vZGlmaWVkIGZ1bmN0aW9uLiBJIHNob3VsZCBhbHNvIGluY2x1ZGUgYG10NzZfc2V0X2NoYW5uZWxgIGluIG91ciBmdXp6aW5nIHRhcmdldHMsIGFzIHdlbGwuIEFsc28sIGxldCYjMzk7cyBhZGQgYG10NzZfdXBkYXRlX2NoYW5uZWxgLCBgbXQ3Nl9zY2FuX3dvcmtgLCBgbXQ3Nl9zY2FuX2NvbXBsZXRlYCwgYG10NzZfcmVtYWluX29uX2NoYW5uZWxgLCBgbXQ3Nl9yb2NfY29tcGxldGVgLCBhbmQgYG10NzZfcGh5X3VwZGF0ZV9jaGFubmVsYCB0byB0aGF0IGxpc3QsIGJlY2F1c2UgdGhleSBhcmUgcmVsYXRlZC4gWWVwLCBgX19tdDc2X3NldF9jaGFubmVsYCBpcyB0aGUgb25lIG1vZGlmaWVkLCBzbyBsZXQmIzM5O3MgbWFyayBgX19tdDc2X3NldF9jaGFubmVsYCBhbmQgYG10NzZfc2V0X2NoYW5uZWxgIGFzIG91ciBwcmltYXJ5IGBGb2N1c1N5bWJvbHNgLgoKTGV0JiMzOTtzIHF1aWNrbHkgcmV2aWV3IHRoZSBwYXRjaCBhZ2Fpbi4uLiByaWdodCwgc28gdGhlIGNoYW5nZSBpcyBhZGRpbmcgYSB0aW1lb3V0IGNoZWNrIHRvIHRoZSBgd2FpdF9ldmVudF90aW1lb3V0YCBjYWxsIGluIGBfX210NzZfc2V0X2NoYW5uZWxgLiBJZiB0aGUgdGltZW91dCBleHBpcmVzLCBpdCBub3cgZXhpdHMgZWFybHksIHdoZXJlYXMgYmVmb3JlIGl0IHdvdWxkIGhhdmUgY29udGludWVkLiBUaGlzIHByZXZlbnRzIGEgcG90ZW50aWFsIGhhbmcgb3IgaXNzdWUgaWYgdGhlIFRYIGlzbiYjMzk7dCBjbGVhciBpbiB0aW1lLiBUaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSBhbmQgYWJzb2x1dGVseSB3YXJyYW50cyBmdXp6aW5nLgoKSSYjMzk7bGwgcXVpY2tseSBkb3VibGUtY2hlY2sgdG8gbWFrZSBzdXJlIHRoZXJlIGFyZW4mIzM5O3QgYW55IG90aGVyIHJlbGV2YW50IFVTQiBjb25maWd1cmF0aW9ucyBmb3IgTVQ3NiB3ZSBzaG91bGQgYmUgYXdhcmUgb2YuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI1IDAxOjAyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNVC4qVSQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc9MzY9Y29uZmlnIE1UNzkyeF9VU0Jcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6NDA6Y29uZmlnIE1UNzZfTlBVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctNDEtXHRib29sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZz0zMj1jb25maWcgTVQ3NjYzX1VTQl9TRElPX0NPTU1PTlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWctMzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnOjM2OmNvbmZpZyBNVDc2NjNVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnLTM3LVx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3NjYzVSAoVVNCKSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvS2NvbmZpZz0yPWNvbmZpZyBNVDc2eDBfQ09NTU9OXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvS2NvbmZpZy01LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvS2NvbmZpZzo2OmNvbmZpZyBNVDc2eDBVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9LY29uZmlnLTctXHR0cmlzdGF0ZSBcJiMzNDtNZWRpYVRlayBNVDc2eDBVIChVU0IpIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnPTY9Y29uZmlnIE1UNzZ4MkVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnLTE3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoxODpjb25maWcgTVQ3NngyVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZy0xOS1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzZ4MlUgKFVTQikgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWc9MTc9Y29uZmlnIE1UNzkyMVNcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZzoyODpjb25maWcgTVQ3OTIxVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0yOS1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyMVUgKFVTQikgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWc9Nz1jb25maWcgTVQ3OTI1RVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWctMTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnOjE5OmNvbmZpZyBNVDc5MjVVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnLTIwLVx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3OTI1VSAoVVNCKSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZz0yPWNvbmZpZyBNVDc5OTZFXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy0xNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6MTY6Y29uZmlnIE1UNzk5Nl9OUFVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctMTctXHRib29sIFwmIzM0O01UNzk5NiAoUENJZSkgTlBVIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjUgMDE6MDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjgyMTUKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAyNDUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIFVTQiBXaS1GaSBEcml2ZXIgQ29uZmlndXJhdGlvbnMqKgoKT2theSwgc28gSSBzZWUgYE1UNzkyNVVgIGlzIGFsc28gaW4gdGhlIG1peC4gUmlnaHQsIEkgbmVlZCB0byBtYWtlIGEgbm90ZSBvZiB3aGljaCBjb25maWd1cmF0aW9ucyBJIG5lZWQgdG8gZW5hYmxlLiBCYXNlZCBvbiB0aGUgcHJlc2VuY2Ugb2YgdGhpcyBjaGlwLCBpdCBzZWVtcyB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgYXJlOiBgTVQ3NjYzVWAsIGBNVDc2eDBVYCwgYE1UNzZ4MlVgLCBgTVQ3OTIxVWAsIGFuZCBub3csIGBNVDc5MjVVYC4KCkhtbSwgaG9sZCBvbi4gSXNuJiMzOTt0IGBNVDc2X1VTQmAgYSBjb21tb24gY29uZmlndXJhdGlvbiBmb3IgdGhlc2UgZHJpdmVycz8gUGVyaGFwcyBJIGNhbiBzaW1wbGlmeSB0aGluZ3MgYnkganVzdCBlbmFibGluZyB0aGF0IGluc3RlYWQgb2YgbGlzdGluZyB0aGVtIGFsbCBpbmRpdmlkdWFsbHk/IExldCYjMzk7cyBjaGVjay4gRmlyc3QsIEkgbmVlZCB0byBzZWUgaWYgYE1UNzZfVVNCYCBjYW4gYmUgZW5hYmxlZCBkaXJlY3RseSwgb3IgaWYgaXQmIzM5O3MgZGVwZW5kZW50LgoKSSYjMzk7bGwgY2hlY2sgdGhlIGBLY29uZmlnYCBmaWxlIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWdgLiBBaCwgaGVyZSBpdCBpczoKYGBgCmNvbmZpZyBNVDc2X1VTQgoJdHJpc3RhdGUKYGBgCk9rYXksIHNvIGl0JiMzOTtzIGEgKnRyaXN0YXRlKiBjb25maWcsIGJ1dCB0aGVyZSYjMzk7cyBubyB2aXNpYmxlIHByb21wdC4gVGhhdCBtZWFucyBpdCBjYW4mIzM5O3QgYmUgZW5hYmxlZCBkaXJlY3RseSB0aHJvdWdoIHRoZSB1c2VyIGludGVyZmFjZS4gSXQmIzM5O3Mgb25seSAqc2VsZWN0ZWQqIGJ5IHRoZSBzcGVjaWZpYyBkcml2ZXIgY29uZmlncy4gU28sIGl0IGxvb2tzIGxpa2UgSSBuZWVkIHRvIHN0aWNrIHdpdGggbGlzdGluZyB0aGUgaW5kaXZpZHVhbCBkcml2ZXJzLCBzcGVjaWZpY2FsbHk6IGBNVDc2NjNVYCwgYE1UNzZ4MFVgLCBgTVQ3NngyVWAsIGBNVDc5MjFVYCwgYW5kIGZpbmFsbHksIGBNVDc5MjVVYC4KCkp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLCBsZXQgbWUgZG91YmxlIGNoZWNrIGFnYWluIHRvIG1ha2Ugc3VyZSB0aGF0IGBNVDc2X1VTQmAgZG9lc24mIzM5O3QgaGF2ZSBhIHByb21wdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjUgMDE6MDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1UNzZfVVNCJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnPTY9Y29uZmlnIE1UNzZfTEVEU1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoxMjpjb25maWcgTVQ3Nl9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xMy1cdHRyaXN0YXRlXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI1IDAxOjAzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI4OTc0CgkJCQkJCQlvdXRwdXQ6IDE5OAoJCQkJCQkJdGhvdWdodHM6IDM1NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE1UNzYgVVNCIERyaXZlciBDaGFuZ2VzKioKCk9rYXksIGhlcmUmIzM5O3Mgd2hhdCBJJiMzOTt2ZSBnb3QuIE5vIHNwZWNpZmljIHByb21wdCwganVzdCBkaXZpbmcgaW4uIEZpcnN0LCBJIG5lZWQgdG8gY29uZmlybSB0aGUgcmVsZXZhbnQgVVNCIGRyaXZlcnMgd2l0aGluIE1UNzYuIExvb2tzIGxpa2UgYE1UNzZ4MDJfVVNCYCBhbmQgYE1UNzkyeF9VU0JgIGFyZSB0aGUgb25lcyB0byBjb25zaWRlciwgbm8gc3BlY2lmaWMgcHJvbXB0cyBhdHRhY2hlZCB0byB0aGVtIGVpdGhlci4KClNvLCB0aGUga2V5IGNvbmZpZ3MgSSYjMzk7bSBsb29raW5nIGF0IGFyZTogYE1UNzY2M1VgLCBgTVQ3NngwVWAsIGBNVDc2eDJVYCwgYE1UNzkyMVVgLCBhbmQgYE1UNzkyNVVgLiBUaGF04oCZcyBteSB3b3JraW5nIGxpc3QuCgpUaGUgY3JpdGljYWwgc3ltYm9scyBJJiMzOTttIGZvY3VzaW5nIG9uIGhlcmUgYXJlIGBfX210NzZfc2V0X2NoYW5uZWxgIGFuZCBgbXQ3Nl9zZXRfY2hhbm5lbGAuCgpUaGUgY29yZSBvZiB0aGlzIHBhdGNoIHNlZW1zIHRvIGJlIGFkZGluZyBhIHRpbWVvdXQgY2hlY2sgd2l0aGluIGBfX210NzZfc2V0X2NoYW5uZWxgIHVzaW5nIGB3YWl0X2V2ZW50X3RpbWVvdXRgLiBUaGlzIHByZXZlbnRzIHRoZSBzeXN0ZW0gZnJvbSBoYW5naW5nIGlmIFRYIG9wZXJhdGlvbnMgYXJlIHN0aWxsIHBlbmRpbmcgd2hlbiB0aGUgY2hhbm5lbCBpcyBiZWluZyBjaGFuZ2VkLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgaW1wcm92ZW1lbnQgaW4gdGhlIE1UNzYgbWFjODAyMTEgZHJpdmVyLiBUaGlzIGlzIGRlZmluaXRlbHkgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gR2l2ZW4gdGhlc2UgYXJlIFVTQiBkZXZpY2VzLCBhbmQgYmFzZWQgb24gdGhlIE1UNzYgc2VyaWVzLCBJIGFtIGNvbmZpZGVudCB0aGlzIHdvdWxkIHdvcmsgd2l0aCBgZHVtbXlfaGNkYCBhbmQgYG5sODAyMTFgIGNvbW1hbmRzLgoKTm93LCBsZXQgbWUganVzdCBxdWlja2x5IGRvdWJsZS1jaGVjayBgX19tdDc2X3NldF9jaGFubmVsYCB0byBtYWtlIHN1cmUgaXQmIzM5O3Mgbm90IGEgcGVyZm9ybWFuY2UgYm90dGxlbmVjay4gQmFzZWQgb24gbXkgdW5kZXJzdGFuZGluZywgaXQmIzM5O3MgdXNlZCBkdXJpbmcgY2hhbm5lbCBjaGFuZ2VzLCB1cGRhdGVzLCBhbmQgc3RheWluZyBvbiBjaGFubmVsIGZvciBzY2FubmluZyBhbmQgb2ZmLWNoYW5uZWwgb3BlcmF0aW9ucy4gVGhlc2UgYXJlIGNvbnRyb2wgcGF0aCBmdW5jdGlvbnMsIG5vdCBkYXRhIHBhdGggb3BlcmF0aW9ucyBsaWtlIFRYL1JYLiBTbywgYWRkcmVzc2luZyBwb3RlbnRpYWwgdGltZW91dHMgaGVyZSBpcyBjb21wbGV0ZWx5IGFwcHJvcHJpYXRlLiBJdOKAmXMgbm90IHNvbWV0aGluZyB0aGF04oCZcyBsaWtlbHkgdG8gYmUgaW52b2tlZCBjb25zdGFudGx5LgoKQWxyaWdodCwgSSBhbSByZWFkeSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI1IDAxOjAzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNVDc2NjNVJiMzNDssCiAgICAmIzM0O01UNzZ4MFUmIzM0OywKICAgICYjMzQ7TVQ3NngyVSYjMzQ7LAogICAgJiMzNDtNVDc5MjFVJiMzNDssCiAgICAmIzM0O01UNzkyNVUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtfX210NzZfc2V0X2NoYW5uZWwmIzM0OywKICAgICYjMzQ7bXQ3Nl9zZXRfY2hhbm5lbCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgdGltZW91dCBjaGVjayB0byB3YWl0X2V2ZW50X3RpbWVvdXQgaW4gX19tdDc2X3NldF9jaGFubmVsIHRvIHByZXZlbnQgcHJvY2VlZGluZyB3aGVuIFRYIGlzIHN0aWxsIHBlbmRpbmcgYW5kIHRoZSB3YWl0IHRpbWVzIG91dC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBNVDc2IG1hYzgwMjExIGRyaXZlci4gVGhlIGNvZGUgaXMgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB2aWEgdGhlIFVTQiBpbnRlcmZhY2Ugb2YgTVQ3NiBkZXZpY2VzIChlLmcuLCBNVDc2eDBVLCBNVDc2eDJVKSB1c2luZyBkdW1teV9oY2QgYW5kIG5sODAyMTEgY29tbWFuZHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01UNzY2M1UmIzM0OywKICAgICYjMzQ7TVQ3NngwVSYjMzQ7LAogICAgJiMzNDtNVDc2eDJVJiMzNDssCiAgICAmIzM0O01UNzkyMVUmIzM0OywKICAgICYjMzQ7TVQ3OTI1VSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O19fbXQ3Nl9zZXRfY2hhbm5lbCYjMzQ7LAogICAgJiMzNDttdDc2X3NldF9jaGFubmVsJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSB0aW1lb3V0IGNoZWNrIHRvIHdhaXRfZXZlbnRfdGltZW91dCBpbiBfX210NzZfc2V0X2NoYW5uZWwgdG8gcHJldmVudCBwcm9jZWVkaW5nIHdoZW4gVFggaXMgc3RpbGwgcGVuZGluZyBhbmQgdGhlIHdhaXQgdGltZXMgb3V0LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIE1UNzYgbWFjODAyMTEgZHJpdmVyLiBUaGUgY29kZSBpcyByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSB0aGUgVVNCIGludGVyZmFjZSBvZiBNVDc2IGRldmljZXMgKGUuZy4sIE1UNzZ4MFUsIE1UNzZ4MlUpIHVzaW5nIGR1bW15X2hjZCBhbmQgbmw4MDIxMSBjb21tYW5kcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI1VDAxOjAyOjE2LjUxODcxODY3NVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUzNjM1NTA1MTQwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1UNzY2M1VcIixcbiAgICBcIk1UNzZ4MFVcIixcbiAgICBcIk1UNzZ4MlVcIixcbiAgICBcIk1UNzkyMVVcIixcbiAgICBcIk1UNzkyNVVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJfX210NzZfc2V0X2NoYW5uZWxcIixcbiAgICBcIm10NzZfc2V0X2NoYW5uZWxcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgdGltZW91dCBjaGVjayB0byB3YWl0X2V2ZW50X3RpbWVvdXQgaW4gX19tdDc2X3NldF9jaGFubmVsIHRvIHByZXZlbnQgcHJvY2VlZGluZyB3aGVuIFRYIGlzIHN0aWxsIHBlbmRpbmcgYW5kIHRoZSB3YWl0IHRpbWVzIG91dC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBNVDc2IG1hYzgwMjExIGRyaXZlci4gVGhlIGNvZGUgaXMgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB2aWEgdGhlIFVTQiBpbnRlcmZhY2Ugb2YgTVQ3NiBkZXZpY2VzIChlLmcuLCBNVDc2eDBVLCBNVDc2eDJVKSB1c2luZyBkdW1teV9oY2QgYW5kIG5sODAyMTEgY29tbWFuZHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI1VDAxOjAyOjE2LjUxODcyNTgyNVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDk4MTE4MTY4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMjExODZlNzgyM2I5MjQyMGY3MDc2M2NjZDEwOGQ0MDY3MjI0YWFhNVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEp1biAyNSAwMTowMjoxNSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmNcXG5pbmRleCAxM2M0ZThhYmUyODE5MS4uMzc0NzRkNjRjZmVjZGIgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jXFxuQEAgLTEwMzMsNiArMTAzMyw3IEBAIGludCBfX210NzZfc2V0X2NoYW5uZWwoc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiAqY2hhbmRlZixcXG4gXFx0XFx0ICAgICAgIGJvb2wgb2ZmY2hhbm5lbClcXG4ge1xcbiBcXHRzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiA9IHBoeS1cXHUwMDNlZGV2O1xcbitcXHRsb25nIHRpbWVfbGVmdDtcXG4gXFx0aW50IHRpbWVvdXQgPSBIWiAvIDU7XFxuIFxcdGludCByZXQ7XFxuIFxcbkBAIC0xMDQwLDggKzEwNDEsMTMgQEAgaW50IF9fbXQ3Nl9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IGNmZzgwMjExX2NoYW5fZGVmICpjaGFuZGVmLFxcbiBcXHRtdDc2X3R4cV9zY2hlZHVsZV9wZW5kaW5nKHBoeSk7XFxuIFxcbiBcXHRzZXRfYml0KE1UNzZfUkVTRVQsIFxcdTAwMjZwaHktXFx1MDAzZXN0YXRlKTtcXG4tXFx0d2FpdF9ldmVudF90aW1lb3V0KGRldi1cXHUwMDNldHhfd2FpdCwgIW10NzZfaGFzX3R4X3BlbmRpbmcocGh5KSwgdGltZW91dCk7XFxuK1xcdHRpbWVfbGVmdCA9IHdhaXRfZXZlbnRfdGltZW91dChkZXYtXFx1MDAzZXR4X3dhaXQsICFtdDc2X2hhc190eF9wZW5kaW5nKHBoeSksXFxuK1xcdFxcdFxcdFxcdCAgICAgICB0aW1lb3V0KTtcXG4gXFx0bXQ3Nl91cGRhdGVfc3VydmV5KHBoeSk7XFxuK1xcdGlmICghdGltZV9sZWZ0KSB7XFxuK1xcdFxcdHJldCA9IC1FVElNRURPVVQ7XFxuK1xcdFxcdGdvdG8gb3V0O1xcbitcXHR9XFxuIFxcbiBcXHRpZiAocGh5LVxcdTAwM2VjaGFuZGVmLmNoYW4tXFx1MDAzZWNlbnRlcl9mcmVxICE9IGNoYW5kZWYtXFx1MDAzZWNoYW4tXFx1MDAzZWNlbnRlcl9mcmVxIHx8XFxuIFxcdCAgICBwaHktXFx1MDAzZWNoYW5kZWYud2lkdGggIT0gY2hhbmRlZi1cXHUwMDNld2lkdGgpXFxuQEAgLTEwNTksNiArMTA2NSw3IEBAIGludCBfX210NzZfc2V0X2NoYW5uZWwoc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiAqY2hhbmRlZixcXG4gXFxuIFxcdHJldCA9IGRldi1cXHUwMDNlZHJ2LVxcdTAwM2VzZXRfY2hhbm5lbChwaHkpO1xcbiBcXG4rb3V0OlxcbiBcXHRjbGVhcl9iaXQoTVQ3Nl9SRVNFVCwgXFx1MDAyNnBoeS1cXHUwMDNlc3RhdGUpO1xcbiBcXHRtdDc2X3dvcmtlcl9lbmFibGUoXFx1MDAyNmRldi1cXHUwMDNldHhfd29ya2VyKTtcXG4gXFx0bXQ3Nl93b3JrZXJfc2NoZWR1bGUoXFx1MDAyNmRldi1cXHUwMDNldHhfd29ya2VyKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjVUMDE6MDI6MTcuMDE3NzA2MzAzWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MzEzNjUwOTE1MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNVDc2NjNVXCIsXG4gICAgXCJNVDc2eDBVXCIsXG4gICAgXCJNVDc2eDJVXCIsXG4gICAgXCJNVDc5MjFVXCIsXG4gICAgXCJNVDc5MjVVXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiX19tdDc2X3NldF9jaGFubmVsXCIsXG4gICAgXCJtdDc2X3NldF9jaGFubmVsXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIHRpbWVvdXQgY2hlY2sgdG8gd2FpdF9ldmVudF90aW1lb3V0IGluIF9fbXQ3Nl9zZXRfY2hhbm5lbCB0byBwcmV2ZW50IHByb2NlZWRpbmcgd2hlbiBUWCBpcyBzdGlsbCBwZW5kaW5nIGFuZCB0aGUgd2FpdCB0aW1lcyBvdXQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgTVQ3NiBtYWM4MDIxMSBkcml2ZXIuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIHRoZSBVU0IgaW50ZXJmYWNlIG9mIE1UNzYgZGV2aWNlcyAoZS5nLiwgTVQ3NngwVSwgTVQ3NngyVSkgdXNpbmcgZHVtbXlfaGNkIGFuZCBubDgwMjExIGNvbW1hbmRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDIxMTg2ZTc4MjNiOTI0MjBmNzA3NjNjY2QxMDhkNDA2NzIyNGFhYTVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1biAyNSAwMTowMjoxNSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuY1xuaW5kZXggMTNjNGU4YWJlMjgxOTEuLjM3NDc0ZDY0Y2ZlY2RiIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmNcbkBAIC0xMDMzLDYgKzEwMzMsNyBAQCBpbnQgX19tdDc2X3NldF9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWYsXG4gXHRcdCAgICAgICBib29sIG9mZmNoYW5uZWwpXG4ge1xuIFx0c3RydWN0IG10NzZfZGV2ICpkZXYgPSBwaHktXHUwMDNlZGV2O1xuK1x0bG9uZyB0aW1lX2xlZnQ7XG4gXHRpbnQgdGltZW91dCA9IEhaIC8gNTtcbiBcdGludCByZXQ7XG4gXG5AQCAtMTA0MCw4ICsxMDQxLDEzIEBAIGludCBfX210NzZfc2V0X2NoYW5uZWwoc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiAqY2hhbmRlZixcbiBcdG10NzZfdHhxX3NjaGVkdWxlX3BlbmRpbmcocGh5KTtcbiBcbiBcdHNldF9iaXQoTVQ3Nl9SRVNFVCwgXHUwMDI2cGh5LVx1MDAzZXN0YXRlKTtcbi1cdHdhaXRfZXZlbnRfdGltZW91dChkZXYtXHUwMDNldHhfd2FpdCwgIW10NzZfaGFzX3R4X3BlbmRpbmcocGh5KSwgdGltZW91dCk7XG4rXHR0aW1lX2xlZnQgPSB3YWl0X2V2ZW50X3RpbWVvdXQoZGV2LVx1MDAzZXR4X3dhaXQsICFtdDc2X2hhc190eF9wZW5kaW5nKHBoeSksXG4rXHRcdFx0XHQgICAgICAgdGltZW91dCk7XG4gXHRtdDc2X3VwZGF0ZV9zdXJ2ZXkocGh5KTtcbitcdGlmICghdGltZV9sZWZ0KSB7XG4rXHRcdHJldCA9IC1FVElNRURPVVQ7XG4rXHRcdGdvdG8gb3V0O1xuK1x0fVxuIFxuIFx0aWYgKHBoeS1cdTAwM2VjaGFuZGVmLmNoYW4tXHUwMDNlY2VudGVyX2ZyZXEgIT0gY2hhbmRlZi1cdTAwM2VjaGFuLVx1MDAzZWNlbnRlcl9mcmVxIHx8XG4gXHQgICAgcGh5LVx1MDAzZWNoYW5kZWYud2lkdGggIT0gY2hhbmRlZi1cdTAwM2V3aWR0aClcbkBAIC0xMDU5LDYgKzEwNjUsNyBAQCBpbnQgX19tdDc2X3NldF9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWYsXG4gXG4gXHRyZXQgPSBkZXYtXHUwMDNlZHJ2LVx1MDAzZXNldF9jaGFubmVsKHBoeSk7XG4gXG4rb3V0OlxuIFx0Y2xlYXJfYml0KE1UNzZfUkVTRVQsIFx1MDAyNnBoeS1cdTAwM2VzdGF0ZSk7XG4gXHRtdDc2X3dvcmtlcl9lbmFibGUoXHUwMDI2ZGV2LVx1MDAzZXR4X3dvcmtlcik7XG4gXHRtdDc2X3dvcmtlcl9zY2hlZHVsZShcdTAwMjZkZXYtXHUwMDNldHhfd29ya2VyKTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI1VDAxOjAyOjE3LjAxNzcwNzkwM1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY0ODA3NDU0NDIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgYSBUaW1lb3V0IFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuY2AuIFNwZWNpZmljYWxseSwgaXQncyBtb2RpZnlpbmcgdGhlIGBfX210NzZfc2V0X2NoYW5uZWxgIGZ1bmN0aW9uLCBhZGRpbmcgYSB0aW1lb3V0IGNoZWNrIHdpdGhpbiBgd2FpdF9ldmVudF90aW1lb3V0YC4gSWYgdGhlIHRpbWVvdXQgZXhwaXJlcywgaXQgcmV0dXJucyBgLUVUSU1FRE9VVGAgYW5kIGp1bXBzIHRvIHRoZSBgb3V0OmAgbGFiZWwuIE15IGluaXRpYWwgdGhvdWdodCBpcywgY2FuIHdlIGV2ZW4gKnJlYWNoKiB0aGlzIGNvZGUgaW4gb3VyIGZ1enppbmcgZW52aXJvbm1lbnQ/XG5cblNpbmNlIGl0J3MgYSBkcml2ZXIgZm9yIE1lZGlhdGVrIE1UNzYgd2lyZWxlc3MgZGV2aWNlcywgbXkgZXhwZXJpZW5jZSBpbW1lZGlhdGVseSBmbGFncyBhIHBvdGVudGlhbCBpc3N1ZS4gVHlwaWNhbGx5LCB0aGVzZSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXJzIGFyZW4ndCBlYXNpbHkgYWNjZXNzaWJsZSB3aXRoaW4gdmlydHVhbGl6YXRpb24gZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIHVubGVzcyB3ZSdyZSBkZWFsaW5nIHdpdGggc29mdHdhcmUgZW11bGF0aW9uIG9yIFBDSSBwYXNzdGhyb3VnaC4gQnV0IGBtYWM4MDIxMV9od3NpbWAgc2ltdWxhdGVzICpnZW5lcmljKiBtYWM4MDIxMSBkZXZpY2VzLCBub3Qgc29tZXRoaW5nIGFzIHNwZWNpZmljIGFzIGFuIE1UNzYgY2hpcC4gSXMgdGhlcmUgYW4gTVQ3NiBlbXVsYXRvciBvdXQgdGhlcmU/IFByb2JhYmx5IG5vdC5cblxuU28sIHRoZSBjaGFuY2VzIG9mIHRoaXMgdGltZW91dCBjb2RlIGJlaW5nIGRpcmVjdGx5IGV4ZXJjaXNlZCBpbiBvdXIgY3VycmVudCBmdXp6aW5nIHNldHVwIHNlZW0gbG93LiBIb3dldmVyLCBJIGNhbid0IGJlIHRvbyBzdXJlIHdpdGhvdXQgYSBkb3VibGUtY2hlY2suIEkgbmVlZCB0byBpbnZlc3RpZ2F0ZSBpZiB0aGVyZSdzIGFueSBraW5kIG9mIHZpcnR1YWwgb3IgVVNCIGludGVyZmFjZSBhc3NvY2lhdGVkIHdpdGggTVQ3NiB0aGF0IHdlICpjb3VsZCogZnV6eiB0aHJvdWdoIFVTQiBnYWRnZXQgb3Igc29tZXRoaW5nIHNpbWlsYXIuIEFoLCB5ZXMsIEkgcmVjYWxsIE1UNzYgZG9lcyBoYXZlIFVTQiBkcml2ZXJzLCBuYW1lbHkgYG10NzZ4MHVgIGFuZCBgbXQ3NngydWAuIFRoYXQncyBhIGdhbWUtY2hhbmdlciEgVVNCIGRldmljZXMgb3BlbiB0aGUgZG9vciBmb3IgZnV6emluZyB1c2luZyBgZHVtbXlfaGNkYCBvciBzeXprYWxsZXIncyBVU0IgZnV6emluZyBjYXBhYmlsaXRpZXMuIE5vdyBJIG5lZWQgdG8gY29uZmlybSB3aGV0aGVyIHRoZXNlIE1UNzYgVVNCIGRyaXZlcnMgYXJlIGVuYWJsZWQsIG9yIGF0IGxlYXN0IGlmIHdlIGNvdWxkIHBvdGVudGlhbGx5IHVzZSB0aGVtIGZvciBmdXp6aW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjMyLCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzA5LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjVUMDE6MDI6MjMuNDk4NDU1OTE1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYxNDUxODQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzYuKnVzYlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDcwOCBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZT0yPW9iai0kKENPTkZJR19NVDc2X0NPUkUpICs9IG10NzYub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfTVQ3Nl9VU0IpICs9IG10NzYtdXNiLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlLTQtb2JqLSQoQ09ORklHX01UNzZfU0RJTykgKz0gbXQ3Ni1zZGlvLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlPTU9b2JqLSQoQ09ORklHX01UNzZ4MDJfTElCKSArPSBtdDc2eDAyLWxpYi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19NVDc2eDAyX1VTQikgKz0gbXQ3NngwMi11c2Iub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtNy1vYmotJChDT05GSUdfTVQ3Nl9DT05OQUNfTElCKSArPSBtdDc2LWNvbm5hYy1saWIub1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZT0xNz1tdDc2LSQoQ09ORklHX05MODAyMTFfVEVTVE1PREUpICs9IHRlc3Rtb2RlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlLTE4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU6MTk6bXQ3Ni11c2IteSA6PSB1c2IubyB1c2JfdHJhY2Uub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtMjAtbXQ3Ni1zZGlvLXkgOj0gc2Rpby5vIHNkaW9fdHhyeC5vXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlPTI3PW10NzZ4MDItbGliLXkgOj0gbXQ3NngwMl91dGlsLm8gbXQ3NngwMl9tYWMubyBtdDc2eDAyX21jdS5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtMzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZTozMjptdDc2eDAyLXVzYi15IDo9IG10NzZ4MDJfdXNiX21jdS5vIG10NzZ4MDJfdXNiX2NvcmUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtMzMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RlYnVnZnMuYz03ND1zdGF0aWMgaW50IG10NzZfcnhfcXVldWVzX3JlYWQoc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kZWJ1Z2ZzLmMtODItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kZWJ1Z2ZzLmM6ODM6XFx0XFx0cXVldWVkID0gbXQ3Nl9pc191c2IoZGV2KSA/IHEtXFx1MDAzZW5kZXNjIC0gcS1cXHUwMDNlcXVldWVkIDogcS1cXHUwMDNlcXVldWVkO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZGVidWdmcy5jLTg0LVxcdFxcdHNlcV9wcmludGYocywgXFxcIiAlOWQgfCAlOWQgfCAlOWQgfCAlOWQgfFxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oPTk1PXN0cnVjdCBtdDc2X2J1c19vcHMge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTA5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjExMDojZGVmaW5lIG10NzZfaXNfdXNiKGRldikgKChkZXYpLVxcdTAwM2VidXMtXFx1MDAzZXR5cGUgPT0gTVQ3Nl9CVVNfVVNCKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTExMS0jZGVmaW5lIG10NzZfaXNfbW1pbyhkZXYpICgoZGV2KS1cXHUwMDNlYnVzLVxcdTAwM2V0eXBlID09IE1UNzZfQlVTX01NSU8pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaD02NDk9c3RydWN0IG10NzZfbWN1IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTY2Mi0jZGVmaW5lIE1DVV9SRVNQX1VSQl9TSVpFXFx0MTAyNFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjY2MzpzdHJ1Y3QgbXQ3Nl91c2Ige1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTY2NC1cXHRzdHJ1Y3QgbXV0ZXggdXNiX2N0cmxfbXR4O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg9OTIxPXN0cnVjdCBtdDc2X2RldiB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xMDM1LVxcdFxcdHN0cnVjdCBtdDc2X21taW8gbW1pbztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxMDM2OlxcdFxcdHN0cnVjdCBtdDc2X3VzYiB1c2I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTAzNy1cXHRcXHRzdHJ1Y3QgbXQ3Nl9zZGlvIHNkaW87XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaD0xODM4PW10NzZ1X2J1bGtfbXNnKHN0cnVjdCBtdDc2X2RldiAqZGV2LCB2b2lkICpkYXRhLCBpbnQgbGVuLCBpbnQgKmFjdHVhbF9sZW4sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xODQyLVxcdHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2ID0gaW50ZXJmYWNlX3RvX3VzYmRldih1aW50Zik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTg0MzpcXHRzdHJ1Y3QgbXQ3Nl91c2IgKnVzYiA9IFxcdTAwMjZkZXYtXFx1MDAzZXVzYjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xODQ0LVxcdHVuc2lnbmVkIGludCBwaXBlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg9MTg2OD12b2lkIF9fX210NzZ1X3dyKHN0cnVjdCBtdDc2X2RldiAqZGV2LCB1OCByZXEsIHU4IHJlcV90eXBlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE4NjktXFx0XFx0IHUzMiBhZGRyLCB1MzIgdmFsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxODcwOmludCBfX210NzZ1X2luaXQoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE4NzEtXFx0XFx0IHN0cnVjdCBtdDc2X2J1c19vcHMgKm9wcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTg3MjppbnQgbXQ3NnVfaW5pdChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE4NzMtaW50IG10NzZ1X2FsbG9jX21jdV9xdWV1ZShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9NYWtlZmlsZT00PW9iai0kKENPTkZJR19NVDc2MTVFKSArPSBtdDc2MTVlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9NYWtlZmlsZTo1Om9iai0kKENPTkZJR19NVDc2NjNfVVNCX1NESU9fQ09NTU9OKSArPSBtdDc2NjMtdXNiLXNkaW8tY29tbW9uLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9NYWtlZmlsZS02LW9iai0kKENPTkZJR19NVDc2NjNVKSArPSBtdDc2NjN1Lm9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L01ha2VmaWxlPTE2PW10NzYxNWUtJChDT05GSUdfTVQ3NjIyX1dNQUMpICs9IHNvYy5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvTWFrZWZpbGUtMTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvTWFrZWZpbGU6MTg6bXQ3NjYzLXVzYi1zZGlvLWNvbW1vbi15IDo9IHVzYl9zZGlvLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9NYWtlZmlsZToxOTptdDc2NjN1LXkgOj0gdXNiLm8gdXNiX21jdS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvTWFrZWZpbGUtMjAtbXQ3NjYzcy15IDo9IHNkaW8ubyBzZGlvX21jdS5vXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kZWJ1Z2ZzLmM9OTY9bXQ3NjE1X3BtX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jLTEwNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kZWJ1Z2ZzLmM6MTA1OlxcdGlmICghbXQ3NjE1X2Zpcm13YXJlX29mZmxvYWQoZGV2KSB8fCBtdDc2X2lzX3VzYihcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kZWJ1Z2ZzLmMtMTA2LVxcdFxcdHJldHVybiAtRU9QTk9UU1VQUDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oPTM1NT1leHRlcm4gY29uc3QgdTMyIG10NzY2M2VfcmVnX21hcFtfX01UX0JBU0VfTUFYXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaDozNTY6ZXh0ZXJuIGNvbnN0IHUzMiBtdDc2NjNfdXNiX3NkaW9fcmVnX21hcFtfX01UX0JBU0VfTUFYXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaC0zNTctZXh0ZXJuIHN0cnVjdCBwY2lfZHJpdmVyIG10NzYxNV9wY2lfZHJpdmVyO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbXQ3NjE1Lmg9NTQwPXZvaWQgbXQ3NjIyX3RyaWdnZXJfaGlmX2ludChzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2LCBib29sIGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oLTU0Mi0vKiB1c2IgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaDo1NDM6aW50IG10NzY2M191c2Jfc2Rpb190eF9wcmVwYXJlX3NrYihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHZvaWQgKnR4d2lfcHRyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oLTU0NC1cXHRcXHRcXHRcXHQgICBlbnVtIG10NzZfdHhxX2lkIHFpZCwgc3RydWN0IG10NzZfd2NpZCAqd2NpZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oLTU0Ni1cXHRcXHRcXHRcXHQgICBzdHJ1Y3QgbXQ3Nl90eF9pbmZvICp0eF9pbmZvKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaDo1NDc6Ym9vbCBtdDc2NjNfdXNiX3NkaW9fdHhfc3RhdHVzX2RhdGEoc3RydWN0IG10NzZfZGV2ICptZGV2LCB1OCAqdXBkYXRlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaDo1NDg6dm9pZCBtdDc2NjNfdXNiX3NkaW9fdHhfY29tcGxldGVfc2tiKHN0cnVjdCBtdDc2X2RldiAqbWRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaC01NDktXFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgbXQ3Nl9xdWV1ZV9lbnRyeSAqZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbXQ3NjE1Lmg6NTUwOmludCBtdDc2NjNfdXNiX3NkaW9fcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oLTU1MS1pbnQgbXQ3NjYzdV9tY3VfaW5pdChzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYz03Nj1zdGF0aWMgaW50IG10NzY2M3NfcHJvYmUoc3RydWN0IHNkaW9fZnVuYyAqZnVuYyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYy04MS1cXHRcXHQuZHJ2X2ZsYWdzID0gTVRfRFJWX1JYX0RNQV9IRFIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jOjgyOlxcdFxcdC50eF9wcmVwYXJlX3NrYiA9IG10NzY2M191c2Jfc2Rpb190eF9wcmVwYXJlX3NrYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvLmM6ODM6XFx0XFx0LnR4X2NvbXBsZXRlX3NrYiA9IG10NzY2M191c2Jfc2Rpb190eF9jb21wbGV0ZV9za2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jOjg0OlxcdFxcdC50eF9zdGF0dXNfZGF0YSA9IG10NzY2M191c2Jfc2Rpb190eF9zdGF0dXNfZGF0YSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvLmMtODUtXFx0XFx0LnJ4X3NrYiA9IG10NzYxNV9xdWV1ZV9yeF9za2IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvLmMtMTE4LVxcdElOSVRfV09SSyhcXHUwMDI2ZGV2LVxcdTAwM2VtY3Vfd29yaywgbXQ3NjYzc19pbml0X3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYzoxMTk6XFx0ZGV2LVxcdTAwM2VyZWdfbWFwID0gbXQ3NjYzX3VzYl9zZGlvX3JlZ19tYXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jLTEyMC1cXHRkZXYtXFx1MDAzZW9wcyA9IG9wcztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYy0xNTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jOjE1OTpcXHRyZXQgPSBtdDc2NjNfdXNiX3NkaW9fcmVnaXN0ZXJfZGV2aWNlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jLTE2MC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmM9NTc9c3RhdGljIHZvaWQgbXQ3NjYzdV9jb3B5KHN0cnVjdCBtdDc2X2RldiAqZGV2LCB1MzIgb2Zmc2V0LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtNTkte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jOjYwOlxcdHN0cnVjdCBtdDc2X3VzYiAqdXNiID0gXFx1MDAyNmRldi1cXHUwMDNldXNiO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTYxLVxcdGludCByZXQsIGkgPSAwLCBiYXRjaF9sZW47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYz0xMDE9c3RhdGljIHZvaWQgbXQ3NjYzdV9pbml0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMTExLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jOjExMjpzdGF0aWMgaW50IG10NzY2M3VfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTExMy1cXHRcXHRcXHQgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMTE3LVxcdFxcdC5kcnZfZmxhZ3MgPSBNVF9EUlZfUlhfRE1BX0hEUiB8IE1UX0RSVl9IV19NR01UX1RYUSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoxMTg6XFx0XFx0LnR4X3ByZXBhcmVfc2tiID0gbXQ3NjYzX3VzYl9zZGlvX3R4X3ByZXBhcmVfc2tiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jOjExOTpcXHRcXHQudHhfY29tcGxldGVfc2tiID0gbXQ3NjYzX3VzYl9zZGlvX3R4X2NvbXBsZXRlX3NrYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoxMjA6XFx0XFx0LnR4X3N0YXR1c19kYXRhID0gbXQ3NjYzX3VzYl9zZGlvX3R4X3N0YXR1c19kYXRhLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTEyMS1cXHRcXHQucnhfc2tiID0gbXQ3NjE1X3F1ZXVlX3J4X3NrYixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTE0OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoxNDk6XFx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKFxcdTAwMjZ1c2JfaW50Zi1cXHUwMDNlZGV2LCBzaXplb2YoKmRldiksIG9wcywgXFx1MDAyNmRydl9vcHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTE1MC1cXHRpZiAoIW1kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0xNTgtXFx0SU5JVF9XT1JLKFxcdTAwMjZkZXYtXFx1MDAzZW1jdV93b3JrLCBtdDc2NjN1X2luaXRfd29yayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmM6MTU5OlxcdGRldi1cXHUwMDNlcmVnX21hcCA9IG10NzY2M191c2Jfc2Rpb19yZWdfbWFwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTE2MC1cXHRkZXYtXFx1MDAzZW9wcyA9IG9wcztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoxNjE6XFx0cmV0ID0gX19tdDc2dV9pbml0KG1kZXYsIHVzYl9pbnRmLCBcXHUwMDI2YnVzX29wcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMTYyLVxcdGlmIChyZXQgXFx1MDAzYyAwKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMTg1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jOjE4NjpcXHRyZXQgPSBtdDc2NjNfdXNiX3NkaW9fcmVnaXN0ZXJfZGV2aWNlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMTg3LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0yMDAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmM6MjAxOnN0YXRpYyB2b2lkIG10NzY2M3VfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqdXNiX2ludGYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMjAyLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoyMDM6XFx0c3RydWN0IG10NzYxNV9kZXYgKmRldiA9IHVzYl9nZXRfaW50ZmRhdGEodXNiX2ludGYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTIwNC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTIxNi0jaWZkZWYgQ09ORklHX1BNXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmM6MjE3OnN0YXRpYyBpbnQgbXQ3NjYzdV9zdXNwZW5kKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLCBwbV9tZXNzYWdlX3Qgc3RhdGUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMjE4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoyMTk6XFx0c3RydWN0IG10NzYxNV9kZXYgKmRldiA9IHVzYl9nZXRfaW50ZmRhdGEoaW50Zik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMjIwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMjM1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jOjIzNjpzdGF0aWMgaW50IG10NzY2M3VfcmVzdW1lKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTIzNy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmM6MjM4OlxcdHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYgPSB1c2JfZ2V0X2ludGZkYXRhKGludGYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTIzOS1cXHRpbnQgZXJyO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0xNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjE3OmNvbnN0IHUzMiBtdDc2NjNfdXNiX3NkaW9fcmVnX21hcFtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMTgtXFx0W01UX1RPUF9DRkdfQkFTRV1cXHQ9IDB4ODAwMjAwMDAsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTQwLX07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzo0MTpFWFBPUlRfU1lNQk9MX0dQTChtdDc2NjNfdXNiX3NkaW9fcmVnX21hcCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy00Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jPTQzPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzo0NDptdDc2NjNfdXNiX3NkaW9fd3JpdGVfdHh3aShzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtNDUtXFx0XFx0XFx0ICAgZW51bSBtdDc2X3R4cV9pZCBxaWQsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTU1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmM6NTY6c3RhdGljIGludCBtdDc2NjNfdXNiX3NkaW9fc2V0X3JhdGVzKHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy01Ny1cXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBtdDc2MTVfd3RibF9yYXRlX2Rlc2MgKndyZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMTMwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmM6MTMxOnN0YXRpYyB2b2lkIG10NzY2M191c2Jfc2Rpb19yYXRlX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMTMyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMTQ4LVxcdFxcdG10NzYxNV9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzoxNDk6XFx0XFx0bXQ3NjYzX3VzYl9zZGlvX3NldF9yYXRlcyhkZXYsIHdyZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0xNTAtXFx0XFx0bXQ3NjE1X211dGV4X3JlbGVhc2UoZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMTU1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmM6MTU2OmJvb2wgbXQ3NjYzX3VzYl9zZGlvX3R4X3N0YXR1c19kYXRhKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgdTggKnVwZGF0ZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTE1Ny17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTE2NS19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzoxNjY6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NjYzX3VzYl9zZGlvX3R4X3N0YXR1c19kYXRhKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTE2Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjE2ODp2b2lkIG10NzY2M191c2Jfc2Rpb190eF9jb21wbGV0ZV9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMTY5LVxcdFxcdFxcdFxcdCAgICAgc3RydWN0IG10NzZfcXVldWVfZW50cnkgKmUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTE3Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjE3MzpcXHRpZiAobXQ3Nl9pc191c2IobWRldikpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0xNzQtXFx0XFx0aGVhZHJvb20gKz0gTVRfVVNCX0hEUl9TSVpFO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0xNzgtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmM6MTc5OkVYUE9SVF9TWU1CT0xfR1BMKG10NzY2M191c2Jfc2Rpb190eF9jb21wbGV0ZV9za2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMTgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmM6MTgxOmludCBtdDc2NjNfdXNiX3NkaW9fdHhfcHJlcGFyZV9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCB2b2lkICp0eHdpX3B0cixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTE4Mi1cXHRcXHRcXHRcXHQgICBlbnVtIG10NzZfdHhxX2lkIHFpZCwgc3RydWN0IG10NzZfd2NpZCAqd2NpZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMjA2LVxcdHBrdGlkID0gbXQ3Nl90eF9zdGF0dXNfc2tiX2FkZChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LCB3Y2lkLCBza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmM6MjA3OlxcdG10NzY2M191c2Jfc2Rpb193cml0ZV90eHdpKGRldiwgd2NpZCwgcWlkLCBzdGEsIGtleSwgcGt0aWQsIHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzoyMDg6XFx0aWYgKG10NzZfaXNfdXNiKG1kZXYpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0yMDktXFx0XFx0dTMyIGxlbiA9IHNrYi1cXHUwMDNlbGVuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0yMjMtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmM6MjI0OkVYUE9SVF9TWU1CT0xfR1BMKG10NzY2M191c2Jfc2Rpb190eF9wcmVwYXJlX3NrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0yMjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYz0yMjY9c3RhdGljIGludCBtdDc2NjN1X2RtYV9zY2hlZF9pbml0KHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTI3Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjI3ODpzdGF0aWMgaW50IG10NzY2M191c2Jfc2Rpb19pbml0X2hhcmR3YXJlKHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0yNzkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0yODUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzoyODY6XFx0aWYgKG10NzZfaXNfdXNiKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0yODctXFx0XFx0cmV0ID0gbXQ3NjYzdV9kbWFfc2NoZWRfaW5pdChkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0zMDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzozMDY6aW50IG10NzY2M191c2Jfc2Rpb19yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzYxNV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTMwNy17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTMxMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjMxMTpcXHRJTklUX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlcmF0ZV93b3JrLCBtdDc2NjNfdXNiX3NkaW9fcmF0ZV93b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTMxMi1cXHRJTklUX0xJU1RfSEVBRChcXHUwMDI2ZGV2LVxcdTAwM2V3cmRfaGVhZCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTMxNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjMxNTpcXHRlcnIgPSBtdDc2NjNfdXNiX3NkaW9faW5pdF9oYXJkd2FyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMzE2LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTMxOS1cXHRody1cXHUwMDNlZXh0cmFfdHhfaGVhZHJvb20gKz0gTVRfVVNCX1RYRF9TSVpFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmM6MzIwOlxcdGlmIChtdDc2X2lzX3VzYihcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMzIxLVxcdFxcdGh3LVxcdTAwM2VleHRyYV90eF9oZWFkcm9vbSArPSBNVF9VU0JfSERSX1NJWkU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0zMjItXFx0XFx0LyogY2hlY2sgaHcgc2cgc3VwcG9ydCBpbiBvcmRlciB0byBlbmFibGUgQU1TRFUgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjMyMzpcXHRcXHRpZiAoZGV2LVxcdTAwM2VtdDc2LnVzYi5zZ19lbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTMyNC1cXHRcXHRcXHRody1cXHUwMDNlbWF4X3R4X2ZyYWdtZW50cyA9IE1UX0hXX1RYUF9NQVhfQlVGX05VTTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMzMzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmM6MzM0OlxcdGlmICghZGV2LVxcdTAwM2VtdDc2LnVzYi5zZ19lbikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMzM1LVxcdFxcdHN0cnVjdCBpZWVlODAyMTFfc3RhX3ZodF9jYXAgKnZodF9jYXA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTM0Ny19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzozNDg6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NjYzX3VzYl9zZGlvX3JlZ2lzdGVyX2RldmljZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0zNDktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21hYy5jPTM2PWludCBtdDc2X2Nvbm5hY19wbV93YWtlKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3Nl9jb25uYWNfcG0gKnBtKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tYWMuYy0zOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21hYy5jOjQwOlxcdGlmIChtdDc2X2lzX3VzYihkZXYpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWFjLmMtNDEtXFx0XFx0cmV0dXJuIDA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21hYy5jPTYyPXZvaWQgbXQ3Nl9jb25uYWNfcG93ZXJfc2F2ZV9zY2hlZChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWFjLmMtNjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tYWMuYzo2NzpcXHRpZiAobXQ3Nl9pc191c2IoZGV2KSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21hYy5jLTY4LVxcdFxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmM9MjU2Nj1tdDc2X2Nvbm5hY19tY3Vfc2V0X3dvd19jdHJsKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYy0yNjA4LVxcdFxcdHJlcS53b3dfY3RybF90bHYud2FrZXVwX2hpZiA9IFdPV19QQ0lFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmM6MjYwOTpcXHRlbHNlIGlmIChtdDc2X2lzX3VzYihkZXYpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmMtMjYxMC1cXHRcXHRyZXEud293X2N0cmxfdGx2Lndha2V1cF9oaWYgPSBXT1dfVVNCO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYz0yNjE5PWludCBtdDc2X2Nvbm5hY19tY3Vfc2V0X2hpZl9zdXNwZW5kKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBib29sIHN1c3BlbmQsIGJvb2wgd2FpdF9yZXNwKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYy0yNjQ0LVxcdFxcdHJlcS5oZHIuaGlmX3R5cGUgPSAyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmM6MjY0NTpcXHRlbHNlIGlmIChtdDc2X2lzX3VzYihkZXYpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmMtMjY0Ni1cXHRcXHRyZXEuaGRyLmhpZl90eXBlID0gMTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL01ha2VmaWxlPTY9bXQ3NngwLWNvbW1vbi15IDo9IGluaXQubyBtYWluLm8gZWVwcm9tLm8gcGh5Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9NYWtlZmlsZS03LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL01ha2VmaWxlOjg6bXQ3NngwdS15IDo9IHVzYi5vIHVzYl9tY3Uub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL01ha2VmaWxlLTktbXQ3NngwZS15IDo9IHBjaS5vIHBjaV9tY3Uub1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGh5LmM9MTAzPW10NzZ4MF9yZl93cihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgdTMyIG9mZnNldCwgdTggdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BoeS5jLTEwNC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGh5LmM6MTA1OlxcdGlmIChtdDc2X2lzX3VzYihcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BoeS5jLTEwNi1cXHRcXHRzdHJ1Y3QgbXQ3Nl9yZWdfcGFpciBwYWlyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGh5LmM9MTE5PXN0YXRpYyBpbnQgbXQ3NngwX3JmX3JyKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCB1MzIgb2Zmc2V0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGh5LmMtMTIzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BoeS5jOjEyNDpcXHRpZiAobXQ3Nl9pc191c2IoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9waHkuYy0xMjUtXFx0XFx0c3RydWN0IG10NzZfcmVnX3BhaXIgcGFpciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BoeS5jPTkxMz12b2lkIG10NzZ4MF9waHlfc2V0X2NoYW5uZWwoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9waHkuYy05NzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGh5LmM6OTcxOlxcdGlmIChtdDc2X2lzX3VzYihcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BoeS5jLTk3Mi1cXHRcXHRtdDc2eDBfcGh5X2JicF9zZXRfYncoZGV2LCBjaGFuZGVmLVxcdTAwM2V3aWR0aCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0xMS0jaW5jbHVkZSBcXFwibWN1LmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM6MTI6I2luY2x1ZGUgXFxcIi4uL210NzZ4MDJfdXNiLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM9MTQ9c3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIG10NzZ4MF9kZXZpY2VfdGFibGVbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTQ1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jOjQ2OnN0YXRpYyB2b2lkIG10NzZ4MF9pbml0X3VzYl9kbWEoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtNDcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM9MTUxPXN0YXRpYyBpbnQgbXQ3NngwdV9pbml0X2hhcmR3YXJlKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCBib29sIHJlc2V0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMTYzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jOjE2NDpcXHRtdDc2eDBfaW5pdF91c2JfZG1hKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMTY1LVxcdGVyciA9IG10NzZ4MF9pbml0X2hhcmR3YXJlKGRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYz0xNzk9c3RhdGljIGludCBtdDc2eDB1X3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTE4MS1cXHRzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyA9IGRldi1cXHUwMDNlbXQ3Ni5odztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYzoxODI6XFx0c3RydWN0IG10NzZfdXNiICp1c2IgPSBcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LnVzYjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0xODMtXFx0aW50IGVycjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTE5OC1cXHQvKiBjaGVjayBodyBzZyBzdXBwb3J0IGluIG9yZGVyIHRvIGVuYWJsZSBBTVNEVSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jOjE5OTpcXHRody1cXHUwMDNlbWF4X3R4X2ZyYWdtZW50cyA9IGRldi1cXHUwMDNlbXQ3Ni51c2Iuc2dfZW4gPyBNVF9UWF9TR19NQVhfU0laRSA6IDE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMjAwLVxcdGVyciA9IG10NzZ4MF9yZWdpc3Rlcl9kZXZpY2UoZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTIxMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYzoyMTM6c3RhdGljIGludCBtdDc2eDB1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50ZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0yMTQtXFx0XFx0XFx0IGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTIzNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYzoyMzY6XFx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKFxcdTAwMjZ1c2JfaW50Zi1cXHUwMDNlZGV2LCBzaXplb2YoKmRldiksIFxcdTAwMjZtdDc2eDB1X29wcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0yMzctXFx0XFx0XFx0XFx0IFxcdTAwMjZkcnZfb3BzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTI1Mi1cXHRtdDc2eDAydV9pbml0X21jdShtZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYzoyNTM6XFx0cmV0ID0gbXQ3NnVfaW5pdChtZGV2LCB1c2JfaW50Zik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMjU0LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0yOTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM6MjkyOnN0YXRpYyB2b2lkIG10NzZ4MF9kaXNjb25uZWN0KHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50ZilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0yOTMte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jOjI5NDpcXHRzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiA9IHVzYl9nZXRfaW50ZmRhdGEodXNiX2ludGYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTI5NS1cXHRib29sIGluaXRpYWxpemVkID0gdGVzdF9iaXQoTVQ3Nl9TVEFURV9JTklUSUFMSVpFRCwgXFx1MDAyNmRldi1cXHUwMDNlbXBoeS5zdGF0ZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0zMDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM6MzA4OnN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgbXQ3NngwX3N1c3BlbmQoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTMwOS1cXHRcXHRcXHRcXHRcXHQgcG1fbWVzc2FnZV90IHN0YXRlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTMxMC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM6MzExOlxcdHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2ID0gdXNiX2dldF9pbnRmZGF0YSh1c2JfaW50Zik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMzEyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMzE5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jOjMyMDpzdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIG10NzZ4MF9yZXN1bWUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTMyMS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM6MzIyOlxcdHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2ID0gdXNiX2dldF9pbnRmZGF0YSh1c2JfaW50Zik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMzIzLVxcdGludCByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2JfbWN1LmMtMTAtI2luY2x1ZGUgXFxcIm1jdS5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYl9tY3UuYzoxMTojaW5jbHVkZSBcXFwiLi4vbXQ3NngwMl91c2IuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2JfbWN1LmMtMTItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfYmVhY29uLmM9MjY9bXQ3NngwMl93cml0ZV9iZWFjb24oc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIGludCBvZmZzZXQsIHN0cnVjdCBza19idWZmICpza2IpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfYmVhY29uLmMtMzUtXFx0ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX2JlYWNvbi5jOjM2OlxcdGlmIChtdDc2X2lzX3VzYihcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl9iZWFjb24uYy0zNy1cXHRcXHRzdHJ1Y3QgbXQ3NngwMl90eHdpICp0eHdpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3VzYl9jb3JlLmMtNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXNiX2NvcmUuYzo2OiNpbmNsdWRlIFxcXCJtdDc2eDAyX3VzYi5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91c2JfY29yZS5jLTctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXNiX21jdS5jLTEwLSNpbmNsdWRlIFxcXCJtdDc2eDAyX21jdS5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91c2JfbWN1LmM6MTE6I2luY2x1ZGUgXFxcIm10NzZ4MDJfdXNiLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3VzYl9tY3UuYy0xMi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91c2JfbWN1LmM9MjE9bXQ3NngwMnVfbXVsdGlwbGVfbWN1X3JlYWRzKHN0cnVjdCBtdDc2X2RldiAqZGV2LCB1OCAqZGF0YSwgaW50IGxlbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXNiX21jdS5jLTIyLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXNiX21jdS5jOjIzOlxcdHN0cnVjdCBtdDc2X3VzYiAqdXNiID0gXFx1MDAyNmRldi1cXHUwMDNldXNiO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91c2JfbWN1LmMtMjQtXFx0aW50IGk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXNiX21jdS5jPTM3PXN0YXRpYyBpbnQgbXQ3NngwMnVfbWN1X3dhaXRfcmVzcChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgdTggc2VxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91c2JfbWN1LmMtMzgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91c2JfbWN1LmM6Mzk6XFx0c3RydWN0IG10NzZfdXNiICp1c2IgPSBcXHUwMDI2ZGV2LVxcdTAwM2V1c2I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3VzYl9tY3UuYy00MC1cXHR1OCAqZGF0YSA9IHVzYi1cXHUwMDNlbWN1LmRhdGE7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXNiX21jdS5jPTE2Nj1tdDc2eDAydV9tY3VfcmRfcnAoc3RydWN0IG10NzZfZGV2ICpkZXYsIHUzMiBiYXNlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3VzYl9tY3UuYy0xNzAtXFx0Y29uc3QgaW50IG1heF92YWxzX3Blcl9jbWQgPSBNVF9JTkJBTkRfUEFDS0VUX01BWF9MRU4gLyA4O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91c2JfbWN1LmM6MTcxOlxcdHN0cnVjdCBtdDc2X3VzYiAqdXNiID0gXFx1MDAyNmRldi1cXHUwMDNldXNiO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91c2JfbWN1LmMtMTcyLVxcdHN0cnVjdCBza19idWZmICpza2I7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXRpbC5jPTE0MD1pbnQgbXQ3NngwMl9pbml0X2RldmljZShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91dGlsLmMtMTUyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91dGlsLmM6MTUzOlxcdGlmIChtdDc2X2lzX3VzYihcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91dGlsLmMtMTU0LVxcdFxcdGh3LVxcdTAwM2VleHRyYV90eF9oZWFkcm9vbSArPSBzaXplb2Yoc3RydWN0IG10NzZ4MDJfdHh3aSkgK1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3V0aWwuYz00MDY9aW50IG10NzZ4MDJfc2V0X2tleShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgZW51bSBzZXRfa2V5X2NtZCBjbWQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXRpbC5jLTQ0My1cXHQgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXRpbC5jOjQ0NDpcXHRpZiAobXQ3Nl9pc191c2IoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NikgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXRpbC5jLTQ0NS1cXHQgICAgdmlmLVxcdTAwM2V0eXBlID09IE5MODAyMTFfSUZUWVBFX0FQIFxcdTAwMjZcXHUwMDI2XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYy04LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jOjk6I2luY2x1ZGUgXFxcIi4uL210NzZ4MDJfdXNiLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmMtMTAtI2luY2x1ZGUgXFxcIm10NzZ4MnUuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jPTEyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBtdDc2eDJ1X2RldmljZV90YWJsZVtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmMtMzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmM6MzI6c3RhdGljIGludCBtdDc2eDJ1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jLTMzLVxcdFxcdFxcdCBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYy05MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYzo5MTpzdGF0aWMgdm9pZCBtdDc2eDJ1X2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmMtOTIte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jOjkzOlxcdHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2ID0gdXNiX2dldF9pbnRmZGF0YShpbnRmKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYy05NC1cXHRzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyA9IG10NzZfaHcoZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jLTEwMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYzoxMDM6c3RhdGljIGludCBfX21heWJlX3VudXNlZCBtdDc2eDJ1X3N1c3BlbmQoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmMtMTA0LVxcdFxcdFxcdFxcdFxcdCAgcG1fbWVzc2FnZV90IHN0YXRlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jLTEwNS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmM6MTA2OlxcdHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2ID0gdXNiX2dldF9pbnRmZGF0YShpbnRmKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYy0xMDctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYy0xMTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmM6MTEzOnN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgbXQ3NngydV9yZXN1bWUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmMtMTE0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYzoxMTU6XFx0c3RydWN0IG10NzZ4MDJfZGV2ICpkZXYgPSB1c2JfZ2V0X2ludGZkYXRhKGludGYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jLTExNi1cXHRpbnQgZXJyO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX2luaXQuYy0xMC0jaW5jbHVkZSBcXFwiLi4vbXQ3NngwMl9waHkuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfaW5pdC5jOjExOiNpbmNsdWRlIFxcXCIuLi9tdDc2eDAyX3VzYi5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9pbml0LmMtMTItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfaW5pdC5jPTE5MD1pbnQgbXQ3NngydV9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfaW5pdC5jLTE5Mi1cXHRzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyA9IG10NzZfaHcoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfaW5pdC5jOjE5MzpcXHRzdHJ1Y3QgbXQ3Nl91c2IgKnVzYiA9IFxcdTAwMjZkZXYtXFx1MDAzZW10NzYudXNiO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9pbml0LmMtMTk0LVxcdGJvb2wgdmh0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX2luaXQuYy0yMTktXFx0LyogY2hlY2sgaHcgc2cgc3VwcG9ydCBpbiBvcmRlciB0byBlbmFibGUgQU1TRFUgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfaW5pdC5jOjIyMDpcXHRody1cXHUwMDNlbWF4X3R4X2ZyYWdtZW50cyA9IGRldi1cXHUwMDNlbXQ3Ni51c2Iuc2dfZW4gPyBNVF9UWF9TR19NQVhfU0laRSA6IDE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX2luaXQuYy0yMjEtXFx0c3dpdGNoIChkZXYtXFx1MDAzZW10NzYucmV2KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWFpbi5jLTYtI2luY2x1ZGUgXFxcIm10NzZ4MnUuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWFpbi5jOjc6I2luY2x1ZGUgXFxcIi4uL210NzZ4MDJfdXNiLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX21haW4uYy04LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX21jdS5jLTktI2luY2x1ZGUgXFxcImVlcHJvbS5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9tY3UuYzoxMDojaW5jbHVkZSBcXFwiLi4vbXQ3NngwMl91c2IuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWN1LmMtMTEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWN1LmM9Mjg9c3RhdGljIHZvaWQgbXQ3NngydV9tY3VfZW5hYmxlX3BhdGNoKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9tY3UuYy0yOS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX21jdS5jOjMwOlxcdHN0cnVjdCBtdDc2X3VzYiAqdXNiID0gXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni51c2I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX21jdS5jLTMxLVxcdHN0YXRpYyBjb25zdCB1OCBkYXRhW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWN1LmM9NDM9c3RhdGljIHZvaWQgbXQ3NngydV9tY3VfcmVzZXRfd210KHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9tY3UuYy00NC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX21jdS5jOjQ1OlxcdHN0cnVjdCBtdDc2X3VzYiAqdXNiID0gXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni51c2I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX21jdS5jLTQ2LVxcdHU4IGRhdGFbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz0xNDM9bXQ3OTIxX3BtX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTE0Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MTQ4OlxcdGlmIChtdDc2X2lzX3VzYihcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTQ5LVxcdFxcdHJldHVybiAtRU9QTk9UU1VQUDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz0xODg9bXQ3OTIxX2RlZXBfc2xlZXBfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTk0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoxOTU6XFx0aWYgKG10NzZfaXNfdXNiKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xOTYtXFx0XFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jPTE3MD1pbnQgbXQ3OTIxX3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTIwOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MjEwOlxcdGlmICghbXQ3Nl9pc191c2IoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NikgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMjExLVxcdCAgICAhaXNfbXQ3OTAyKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYz02NTU9dm9pZCBtdDc5MjFfbWFjX3Jlc2V0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjY4MTpcXHRpZiAoKG10NzZfaXNfc2RpbyhcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSB8fCBtdDc2X2lzX3VzYihcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSkgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy02ODItXFx0ICAgIGF0b21pY19yZWFkKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYuYnVzX2h1bmcpKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM9NzY5PWludCBtdDc5MjFfdXNiX3NkaW9fdHhfcHJlcGFyZV9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCB2b2lkICp0eHdpX3B0cixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTgwNC1cXHRwYWQgPSByb3VuZF91cChza2ItXFx1MDAzZWxlbiwgNCkgLSBza2ItXFx1MDAzZWxlbjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo4MDU6XFx0aWYgKG10NzZfaXNfdXNiKG1kZXYpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTgwNi1cXHRcXHRwYWQgKz0gNDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuYz0xMz1ib29sIG10NzkyMV9yZWdkX2NsY19zdXBwb3J0ZWQoc3RydWN0IG10NzkyeF9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuYy0xNS1cXHRpZiAobXQ3OTIxX2Rpc2FibGVfY2xjIHx8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jOjE2OlxcdCAgICBtdDc2X2lzX3VzYihcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmMtMTctXFx0XFx0cmV0dXJuIGZhbHNlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmM9MTUwPXN0YXRpYyBpbnQgbXQ3OTIxdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqdXNiX2ludGYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYy0xOTctXFx0b3BzLVxcdTAwM2VzdG9wID0gbXQ3OTJ4dV9zdG9wO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jOjE5ODpcXHRtZGV2ID0gbXQ3Nl9hbGxvY19kZXZpY2UoXFx1MDAyNnVzYl9pbnRmLVxcdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgb3BzLCBcXHUwMDI2ZHJ2X29wcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmMtMTk5LVxcdGlmICghbWRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jLTIxMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYzoyMTI6XFx0cmV0ID0gX19tdDc2dV9pbml0KG1kZXYsIHVzYl9pbnRmLCBcXHUwMDI2YnVzX29wcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmMtMjEzLVxcdGlmIChyZXQgXFx1MDAzYyAwKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jPTE4Mj1tdDc5MjVfcG1fc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTg2LVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNVQwMTowMjoyMy41NTk5MTQ2NjNaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NjEzNjY0Mzg4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgdGhlIE1UNzYgVVNCIERyaXZlcioqXG5cbk9rYXksIHNvIHRoZSBNVDc2IGRyaXZlciBmYW1pbHkgaGFzIFVTQiBzdXBwb3J0IOKAkyB0aGF0J3MgYSBrZXkgcGllY2Ugb2YgaW5mb3JtYXRpb24uIFNwZWNpZmljYWxseSwgaXQgc3VwcG9ydHMgYSByYW5nZSBvZiBVU0IgdmFyaWFudHM6IGBtdDc2LXVzYmAsIGBtdDc2eDAyLXVzYmAsIGBtdDc2MTUtdXNiYCwgdGhlIHdob2xlIGxvdC4gVGhpcyBpcyBicmlsbGlhbnQgYmVjYXVzZSBpdCBtZWFucyB3ZSBjYW4gZnV6eiBpdCB1c2luZyBhIFVTQiBnYWRnZXQgc2V0dXAhXG5cbk5vdywgdGhlIG1haW4gdGFyZ2V0IGZvciBtb2RpZmljYXRpb24gaXMgdGhlIGBfX210NzZfc2V0X2NoYW5uZWxgIGZ1bmN0aW9uLCBhbmQgSSBrbm93IGl0IHJlc2lkZXMgd2l0aGluIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jYCBmaWxlLiBOZXh0LCBJIG5lZWQgdG8gY29uZmlybSBpZiB0aGF0IGZ1bmN0aW9uIGlzIGFjY2Vzc2libGUuIEkgc3VzcGVjdCBpdCdzIGxpa2VseSBhIG1hYzgwMjExIGNhbGxiYWNrLCBzb21ldGhpbmcgYWxvbmcgdGhlIGxpbmVzIG9mIGBzZXRfY2hhbm5lbGAuIExldCdzIGNvbmZpcm0gdGhhdCBieSBjaGVja2luZyBgbWFjODAyMTEuY2AgZm9yIGNhbGxzIHRvIGBfX210NzZfc2V0X2NoYW5uZWxgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTIwNCwiT3V0cHV0VG9rZW5zIjo0OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4MywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yNVQwMTowMjoyOC4xNzM1ODE1ODFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ3MDA1NjIzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl9fbXQ3Nl9zZXRfY2hhbm5lbFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jPTEwMzA9RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl91cGRhdGVfc3VydmV5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtMTAzMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmM6MTAzMjppbnQgX19tdDc2X3NldF9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTEwMzMtXFx0XFx0ICAgICAgIGJvb2wgb2ZmY2hhbm5lbClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYz0xMDc2PWludCBtdDc2X3NldF9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtMTA4NC1cXHRtdXRleF9sb2NrKFxcdTAwMjZkZXYtXFx1MDAzZW11dGV4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmM6MTA4NTpcXHRyZXQgPSBfX210NzZfc2V0X2NoYW5uZWwocGh5LCBjaGFuZGVmLCBvZmZjaGFubmVsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtMTA4Ni1cXHRtdXRleF91bmxvY2soXFx1MDAyNmRldi1cXHUwMDNlbXV0ZXgpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNVQwMTowMjoyOC40MjA1OTM4MDVaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MTMwNDgyMjQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzczpcblxuKipUcmFjaW5nIHRoZSBDYWxsIENoYWluIG9mIGBtdDc2X3NldF9jaGFubmVsYCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGBfX210NzZfc2V0X2NoYW5uZWxgLCB3aGljaCBpcyBwcmV0dHkgY2xlYXJseSBhIGxvdy1sZXZlbCBmdW5jdGlvbiByZWxhdGVkIHRvIGNoYW5uZWwgY29uZmlndXJhdGlvbiB3aXRoaW4gdGhlIG10NzYgd2lyZWxlc3MgZHJpdmVyLiBNeSBpbnN0aW5jdCBpcyB0byB0cmFjZSBiYWNrIHRoZSBjYWxsIHN0YWNrLiBTcGVjaWZpY2FsbHksIEknbSBub3RpbmcgdGhhdCBgX19tdDc2X3NldF9jaGFubmVsYCBpcyBjYWxsZWQgYnkgYG10NzZfc2V0X2NoYW5uZWxgLiBOb3csIGxldCdzIHNlZSB3aGVyZSAqdGhhdCogZnVuY3Rpb24sIGBtdDc2X3NldF9jaGFubmVsYCwgaXMgYWN0dWFsbHkgKnVzZWQqLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaGlnaGVyLWxldmVsIGNvbnRleHQsIHRoZSBpbml0aWF0aW5nIGZ1bmN0aW9uIGNhbGxzLCBhbmQgdGhlIHR5cGljYWwgZmxvdyB0byBoYXZlIGFueSBpZGVhIGhvdyB0byBkZWJ1ZyBvciBtb2RpZnkgaXQuIFRoYXQgd2lsbCBwcm92aWRlIGEgY3JpdGljYWwgY2x1ZSBhYm91dCB0aGUgY29udHJvbCBmbG93LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDAxNCwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI1VDAxOjAyOjMzLjU1MTA3ODA2OVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTE1ODg1OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc2X3NldF9jaGFubmVsXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvY2hhbm5lbC5jPTIyPW10NzZfcGh5X3VwZGF0ZV9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqcGh5LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9jaGFubmVsLmMtMjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9jaGFubmVsLmM6Mjk6XFx0cmV0dXJuIF9fbXQ3Nl9zZXRfY2hhbm5lbChwaHksIFxcdTAwMjZwaHktXFx1MDAzZW1haW5fY2hhbmRlZiwgZmFsc2UpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvY2hhbm5lbC5jLTMwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvY2hhbm5lbC5jPTMxMz12b2lkIG10NzZfcm9jX2NvbXBsZXRlKHN0cnVjdCBtdDc2X3BoeSAqcGh5KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9jaGFubmVsLmMtMzI0LVxcdCAgICAhdGVzdF9iaXQoTVQ3Nl9NQ1VfUkVTRVQsIFxcdTAwMjZkZXYtXFx1MDAzZXBoeS5zdGF0ZSkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2NoYW5uZWwuYzozMjU6XFx0XFx0X19tdDc2X3NldF9jaGFubmVsKHBoeSwgXFx1MDAyNnBoeS1cXHUwMDNlbWFpbl9jaGFuZGVmLCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9jaGFubmVsLmMtMzI2LVxcdFxcdG10NzZfb2ZmY2hhbm5lbF9ub3RpZnkocGh5LCBmYWxzZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2NoYW5uZWwuYz0zNTc9aW50IG10NzZfcmVtYWluX29uX2NoYW5uZWwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2NoYW5uZWwuYy0zOTQtXFx0XFx0bXQ3Nl9vZmZjaGFubmVsX25vdGlmeShwaHksIHRydWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvY2hhbm5lbC5jOjM5NTpcXHRyZXQgPSBfX210NzZfc2V0X2NoYW5uZWwocGh5LCBcXHUwMDI2Y2hhbmRlZiwgb2ZmY2hhbm5lbCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9jaGFubmVsLmMtMzk2LVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYz0xMDMwPUVYUE9SVF9TWU1CT0xfR1BMKG10NzZfdXBkYXRlX3N1cnZleSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTEwMzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjEwMzI6aW50IF9fbXQ3Nl9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IGNmZzgwMjExX2NoYW5fZGVmICpjaGFuZGVmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy0xMDMzLVxcdFxcdCAgICAgICBib29sIG9mZmNoYW5uZWwpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtMTA3NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmM6MTA3NjppbnQgbXQ3Nl9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IGNmZzgwMjExX2NoYW5fZGVmICpjaGFuZGVmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy0xMDc3LVxcdFxcdCAgICAgYm9vbCBvZmZjaGFubmVsKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTEwODQtXFx0bXV0ZXhfbG9jayhcXHUwMDI2ZGV2LVxcdTAwM2VtdXRleCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjEwODU6XFx0cmV0ID0gX19tdDc2X3NldF9jaGFubmVsKHBoeSwgY2hhbmRlZiwgb2ZmY2hhbm5lbCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTEwODYtXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZkZXYtXFx1MDAzZW11dGV4KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYz0xMDkxPWludCBtdDc2X3VwZGF0ZV9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqcGh5KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTEwOTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjEwOTk6XFx0cmV0dXJuIG10NzZfc2V0X2NoYW5uZWwocGh5LCBjaGFuZGVmLCBvZmZjaGFubmVsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtMTEwMC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaD0xNzk5PXZvaWQgbXQ3Nl9xdWV1ZV90eF9jb21wbGV0ZShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTgwMC1cXHRcXHRcXHQgICAgc3RydWN0IG10NzZfcXVldWVfZW50cnkgKmUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjE4MDE6aW50IF9fbXQ3Nl9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IGNmZzgwMjExX2NoYW5fZGVmICpjaGFuZGVmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE4MDItXFx0XFx0ICAgICAgIGJvb2wgb2ZmY2hhbm5lbCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaD0xODA1PW10NzZfb2ZmY2hhbm5lbF9jaGFuZGVmKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5uZWwgKmNoYW4sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xODE0LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxODE1OmludCBtdDc2X3NldF9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTgxNi1cXHRcXHQgICAgIGJvb2wgb2ZmY2hhbm5lbCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3NjYW4uYz03PXN0YXRpYyB2b2lkIG10NzZfc2Nhbl9jb21wbGV0ZShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgYm9vbCBhYm9ydClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvc2Nhbi5jLTIwLVxcdCAgICAhdGVzdF9iaXQoTVQ3Nl9NQ1VfUkVTRVQsIFxcdTAwMjZkZXYtXFx1MDAzZXBoeS5zdGF0ZSkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3NjYW4uYzoyMTpcXHRcXHRtdDc2X3NldF9jaGFubmVsKHBoeSwgXFx1MDAyNnBoeS1cXHUwMDNlbWFpbl9jaGFuZGVmLCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zY2FuLmMtMjItXFx0XFx0bXQ3Nl9vZmZjaGFubmVsX25vdGlmeShwaHksIGZhbHNlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvc2Nhbi5jPTEwNz12b2lkIG10NzZfc2Nhbl93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvc2Nhbi5jLTEzNS1cXHRcXHRkZXYtXFx1MDAzZXNjYW4uY2hhbiA9IE5VTEw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zY2FuLmM6MTM2OlxcdFxcdG10NzZfc2V0X2NoYW5uZWwocGh5LCBcXHUwMDI2cGh5LVxcdTAwM2VtYWluX2NoYW5kZWYsIGZhbHNlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3NjYW4uYy0xMzctXFx0XFx0bXQ3Nl9vZmZjaGFubmVsX25vdGlmeShwaHksIGZhbHNlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvc2Nhbi5jLTE0NS1cXHRcXHRtdDc2X29mZmNoYW5uZWxfbm90aWZ5KHBoeSwgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zY2FuLmM6MTQ2OlxcdG10NzZfc2V0X2NoYW5uZWwocGh5LCBcXHUwMDI2Y2hhbmRlZiwgb2ZmY2hhbm5lbCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zY2FuLmMtMTQ3LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNVQwMTowMjozMy42MTAyNDI1OThaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NzUyMTk0NDg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBNVDc2IENoYW5uZWwgU2V0dGluZyBGdW5jdGlvbnMgZm9yIFRlc3RhYmlsaXR5KipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgaG93IHRoZSBgbXQ3Nl9zZXRfY2hhbm5lbGAgYW5kIGBfX210NzZfc2V0X2NoYW5uZWxgIGZ1bmN0aW9ucyBhcmUgdXNlZCBpbiB0aGUgTVQ3NiB3aXJlbGVzcyBkcml2ZXIuIEl0IHNlZW1zIHByZXR0eSBzdHJhaWdodGZvcndhcmQ7IHRoZXkncmUgY2FsbGVkIGluIHJlc3BvbnNlIHRvIHRoZSB1c3VhbCBtYWM4MDIxMSBldmVudHM6IHNjYW5uaW5nIChgbXQ3Nl9zY2FuX3dvcmtgLCBgbXQ3Nl9zY2FuX2NvbXBsZXRlYCksIGNoYW5uZWwgdXBkYXRlcyAoYG10NzZfdXBkYXRlX2NoYW5uZWxgKSwgYW5kIGFsc28gdGhpbmdzIGxpa2UgcmVtYWluaW5nIG9uIGEgc3BlY2lmaWMgY2hhbm5lbCAoYG10NzZfcmVtYWluX29uX2NoYW5uZWxgKSwgUk9DIGNvbXBsZXRpb24gKGBtdDc2X3JvY19jb21wbGV0ZWApLCBhbmQgZGlyZWN0IFBIWSBjaGFubmVsIHVwZGF0ZXMgKGBtdDc2X3BoeV91cGRhdGVfY2hhbm5lbGApLiBUaGF0J3MgYWxsIHN0YW5kYXJkIG9wZXJhdGluZyBwcm9jZWR1cmUgZm9yIGEgbWFjODAyMTEtY29tcGxpYW50IGRyaXZlciwgbm90aGluZyBwYXJ0aWN1bGFybHkgb3V0IG9mIHRoZSBvcmRpbmFyeSBoZXJlLlxuXG5UaGUgaW50ZXJlc3RpbmcgcGFydCwgZnJvbSBhIHRlc3RpbmcgcGVyc3BlY3RpdmUsIGlzIHRoYXQgTVQ3NiBoYXMgVVNCIHN1cHBvcnQuIFRoYXQgbWVhbnMgd2UgY2FuIHBvdGVudGlhbGx5IGxldmVyYWdlIGBkdW1teV9oY2RgIHdpdGhpbiBzeXprYWxsZXIgdG8gZW11bGF0ZSBhIFVTQiBkZXZpY2UgYW5kIHRoZW4gdHJpZ2dlciB0aGVzZSBtYWM4MDIxMSBvcGVyYXRpb25zLCBwYXJ0aWN1bGFybHkgdmlhIGBubDgwMjExYC4gVGhhdCB3b3VsZCBnaXZlIHVzIGEgY29tcGxldGVseSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCB0byB0aG9yb3VnaGx5IHRlc3QgYWxsIHRob3NlIGNoYW5uZWwgc2V0dGluZyBhbmQgbWFuYWdlbWVudCBmdW5jdGlvbnMuIEdpdmVuIHRoYXQgdGhleSBhcmUgdXNlZCBpbiBzbyBtYW55IGRpZmZlcmVudCBmdW5jdGlvbnMgd2l0aGluIHRoZSBkcml2ZXIsIGl0IHNob3VsZCBiZSBxdWl0ZSByZWFjaGFibGUuXG5cblJpZ2h0LCBzbyB0byBtYWtlIHRoaXMgaGFwcGVuLCB0aGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gZmlndXJlIG91dCB3aGljaCBrZXJuZWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSByZXF1aXJlZCB0byBlbmFibGUgdGhvc2UgTVQ3NiBVU0IgZHJpdmVycyBpbiB0aGUgZmlyc3QgcGxhY2UuIFRoYXQnbGwgYmUgdGhlIHN0YXJ0aW5nIHBvaW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjA5NywiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yNVQwMTowMjozOS4zNjI0NDA4MDdaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU4MDUzOTg5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNVDc2LipVU0JcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnPTY9Y29uZmlnIE1UNzZfTEVEU1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTExLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoxMjpjb25maWcgTVQ3Nl9VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMTMtXFx0dHJpc3RhdGVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZz0yMD1jb25maWcgTVQ3NngwMl9MSUJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0yMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6MjQ6Y29uZmlnIE1UNzZ4MDJfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTI1LVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnPTIxPWNvbmZpZyBNVDc2MjJfV01BQ1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZy0zMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnOjMyOmNvbmZpZyBNVDc2NjNfVVNCX1NESU9fQ09NTU9OXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZy0zMy1cXHR0cmlzdGF0ZVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNVQwMTowMjozOS40MjA1MDAzNDZaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzM4MTM3MDg3OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGFuYWx5c2lzIG9mIHRoZSBzaXR1YXRpb246XG5cbioqSW52ZXN0aWdhdGluZyBNVDc2IERyaXZlciBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGV4YWN0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aGF0IGFjdGl2YXRlIHRoZXNlIE1UNzYgd2lyZWxlc3MgZHJpdmVycy4gSSdtIGdvaW5nIHRvIGRpdmUgcmlnaHQgaW50byB0aGUgYEtjb25maWdgIGZpbGVzIGZvciB0aGUgTWVkaWF0ZWsgd2lyZWxlc3MgZHJpdmVycy4gU3BlY2lmaWNhbGx5LCBJJ2xsIGJlIHN0YXJ0aW5nIHdpdGggYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZ2AsIGFuZCB0aGVuIGJyYW5jaCBvdXQgdG8gbG9vayBhdCB0aGUgbW9yZSBzcGVjaWZpYyBgbXQ3NngwYCBkaXJlY3RvcnkncyBgS2NvbmZpZ2AgZmlsZSBhbmQgb3RoZXJzIGxpa2UgaXQuIFRoaXMgc2hvdWxkIGdpdmUgbWUgdGhlIGdyb3VuZCB0cnV0aCBvZiB3aGF0IGZsYWdzIG5lZWQgdG8gYmUgc2V0IHRvIGluY2x1ZGUgdGhlc2UgTVQ3Ni1iYXNlZCBkcml2ZXJzIGluIGEga2VybmVsIGJ1aWxkLiBJIGV4cGVjdCB0byBmaW5kIHNvbWUgaW50ZXJlc3RpbmcgZGVwZW5kZW5jaWVzIGFuZCBwb3RlbnRpYWxseSBwbGF0Zm9ybS1zcGVjaWZpYyBjb25maWd1cmF0aW9ucyBpbiB0aGVzZSBmaWxlcyBhcyB3ZWxsLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjk5MywiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI1VDAxOjAyOjQyLjgwMTg3NTMwM1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTgxMDgxOTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1UNzZcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjI6Y29uZmlnIE1UNzZfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0zLVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6Njpjb25maWcgTVQ3Nl9MRURTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTctXFx0Ym9vbFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTExLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoxMjpjb25maWcgTVQ3Nl9VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMTMtXFx0dHJpc3RhdGVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6MTY6Y29uZmlnIE1UNzZfU0RJT1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xNy1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTE5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyMDpjb25maWcgTVQ3NngwMl9MSUJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjEtXFx0dHJpc3RhdGVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0yMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6MjQ6Y29uZmlnIE1UNzZ4MDJfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTI1LVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjI4OmNvbmZpZyBNVDc2X0NPTk5BQ19MSUJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjktXFx0dHJpc3RhdGVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZz0zNj1jb25maWcgTVQ3OTJ4X1VTQlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTM5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzo0MDpjb25maWcgTVQ3Nl9OUFVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctNDEtXFx0Ym9vbFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL0tjb25maWc6Mjpjb25maWcgTVQ3NjAzRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3NjAzRSAoUENJZSkgYW5kIE1UNzZ4OCBXTEFOIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnLTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZzozOmNvbmZpZyBNVDc2MTVfQ09NTU9OXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZy00LVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnLTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZzo4OmNvbmZpZyBNVDc2MTVFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZy05LVxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc2MTVFIGFuZCBNVDc2NjNFIChQQ0llKSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZy0yMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnOjIxOmNvbmZpZyBNVDc2MjJfV01BQ1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWctMjItXFx0Ym9vbCBcXFwiTVQ3NjIyIChTb0MpIFdNQUMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWctMzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZzozMjpjb25maWcgTVQ3NjYzX1VTQl9TRElPX0NPTU1PTlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWctMzMtXFx0dHJpc3RhdGVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWctMzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZzozNjpjb25maWcgTVQ3NjYzVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWctMzctXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzY2M1UgKFVTQikgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWctNDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZzo0Nzpjb25maWcgTVQ3NjYzU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWctNDgtXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzY2M1MgKFNESU8pIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvS2NvbmZpZzoyOmNvbmZpZyBNVDc2eDBfQ09NTU9OXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvS2NvbmZpZy0zLVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9LY29uZmlnLTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvS2NvbmZpZzo2OmNvbmZpZyBNVDc2eDBVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvS2NvbmZpZy03LVxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc2eDBVIChVU0IpIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9LY29uZmlnLTE4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL0tjb25maWc6MTk6Y29uZmlnIE1UNzZ4MEVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9LY29uZmlnLTIwLVxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc2eDBFIChQQ0llKSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6Mjpjb25maWcgTVQ3NngyX0NPTU1PTlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWctMy1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZy01LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6Njpjb25maWcgTVQ3NngyRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWctNy1cXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3NngyRSAoUENJZSkgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWctMTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoxODpjb25maWcgTVQ3NngyVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWctMTktXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzZ4MlUgKFVTQikgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjVUMDE6MDI6NDIuODU5OTkwNDcyWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1MzMxMDIyNzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqVVNCIFN1cHBvcnQgZm9yIE1UNzY6IEEgUXVpY2sgTWVudGFsIENoZWNrbGlzdCoqXG5cbk9rYXksIHNvIEknbSB0aGlua2luZyBhYm91dCBVU0Igc3VwcG9ydCBmb3IgTVQ3Ni1iYXNlZCBkZXZpY2VzLiBMZXQgbWUgcXVpY2tseSBydW4gdGhyb3VnaCB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgaW4gbXkgaGVhZC4uLiBJIGtub3cgd2UndmUgZ290IGEgZmV3IG9mIHRoZW0gdGhhdCBhcmUgcHJldHR5IGNvbW1vbjogTVQ3NjYzVSwgTVQ3NngwVSwgYW5kIE1UNzZ4MlUuIFRob3NlIGFyZSBkZWZpbml0ZWx5IGtleS5cblxuSG9sZCBvbi4uLiBJJ20gcHJldHR5IHN1cmUgdGhlcmUncyBhbiBNVDc5MjFVIHZhcmlhbnQgYXMgd2VsbCwgcmlnaHQ/IExldCBtZSBqdXN0IGRvdWJsZS1jaGVjayB0aGF0LiBJIG5lZWQgdG8gbWFrZSBzdXJlIEknbSBub3QgbWlzc2luZyBhbnl0aGluZyBjcnVjaWFsIHRoZXJlLiBUaW1lIHRvIHB1bGwgdXAgdGhlIGBtdDc5MjEvS2NvbmZpZ2AgZmlsZSBpbiBteSBtZW50YWwgcmVwb3NpdG9yeSBhbmQgdmVyaWZ5IHRoYXQgSSdtIGluY2x1ZGluZyBldmVyeXRoaW5nIEkgc2hvdWxkIGJlIVxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTIzOSwiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI1VDAxOjAyOjQ2LjM5MzA5NTY4NloiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjMxMjAxNDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1UNzkyMVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWc6Mjpjb25maWcgTVQ3OTIxX0NPTU1PTlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctMy1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy02LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWc6Nzpjb25maWcgTVQ3OTIxRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctOC1cXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3OTIxRSAoUENJZSkgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZzoxNzpjb25maWcgTVQ3OTIxU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctMTgtXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzkyMVMgKFNESU8pIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWc6Mjg6Y29uZmlnIE1UNzkyMVVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTI5LVxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc5MjFVIChVU0IpIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI1VDAxOjAyOjQ2LjQ1NjIyNDk0NFoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDE2NjAwODcxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIHRoZSBNVDc2IFVTQiBEcml2ZXJzKipcblxuT2theSwgc28gd2UgbmVlZCB0byBnZXQgdGhlc2UgTVQ3NiBVU0IgZHJpdmVycyByZWFkeSBmb3IgZnV6emluZy4gSSd2ZSBpZGVudGlmaWVkIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uczogYE1UNzY2M1VgLCBgTVQ3NngwVWAsIGBNVDc2eDJVYCwgYW5kIGBNVDc5MjFVYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGVuYWJsZSB0aGVzZSBjb25maWd1cmF0aW9ucyB0byBlbnN1cmUgdGhlaXIgVVNCIGRyaXZlcnMgYXJlIGJ1aWx0IGFuZCBhY2Nlc3NpYmxlIGZvciBmdXp6aW5nLiBMZXQncyBtYWtlIHN1cmUgdGhvc2UgYXJlIHNlbGVjdGVkLCBhaCB5ZXMsIGBNVDc2X1VTQmAgaXMgc2VsZWN0ZWQgYnkgdGhlc2UuIEFsc28sIHRob3NlIHNlbGVjdCBgTVQ3Nl9DT1JFYCBhbmQgYE1UNzZfVVNCYCAtIGdvb2QsIGdvb2QuIEkgc2hvdWxkIHByb2JhYmx5IGFkZCBgTUFDODAyMTFgLCBldmVuIHRob3VnaCBpdCBpcyBhbHJlYWR5IGVuYWJsZWQsIHRvIHRoZSBsaXN0IGluIGNhc2Ugd2UgbmVlZCBpdCwgYnV0IHRoZSBvdGhlcnMgYXJlIHRoZSBvbmVzIHdlIHJlYWxseSB3YW50LlxuXG5UaGUgcHJpbWFyeSBmdW5jdGlvbiB3ZSBuZWVkIHRvIGZvY3VzIG91ciBmdXp6aW5nIGVmZm9ydHMgb24gYXBwZWFycyB0byBiZSBgX19tdDc2X3NldF9jaGFubmVsYCwgc2luY2UgdGhhdCBpcyB0aGUgbW9kaWZpZWQgZnVuY3Rpb24uIEkgc2hvdWxkIGFsc28gaW5jbHVkZSBgbXQ3Nl9zZXRfY2hhbm5lbGAgaW4gb3VyIGZ1enppbmcgdGFyZ2V0cywgYXMgd2VsbC4gQWxzbywgbGV0J3MgYWRkIGBtdDc2X3VwZGF0ZV9jaGFubmVsYCwgYG10NzZfc2Nhbl93b3JrYCwgYG10NzZfc2Nhbl9jb21wbGV0ZWAsIGBtdDc2X3JlbWFpbl9vbl9jaGFubmVsYCwgYG10NzZfcm9jX2NvbXBsZXRlYCwgYW5kIGBtdDc2X3BoeV91cGRhdGVfY2hhbm5lbGAgdG8gdGhhdCBsaXN0LCBiZWNhdXNlIHRoZXkgYXJlIHJlbGF0ZWQuIFllcCwgYF9fbXQ3Nl9zZXRfY2hhbm5lbGAgaXMgdGhlIG9uZSBtb2RpZmllZCwgc28gbGV0J3MgbWFyayBgX19tdDc2X3NldF9jaGFubmVsYCBhbmQgYG10NzZfc2V0X2NoYW5uZWxgIGFzIG91ciBwcmltYXJ5IGBGb2N1c1N5bWJvbHNgLlxuXG5MZXQncyBxdWlja2x5IHJldmlldyB0aGUgcGF0Y2ggYWdhaW4uLi4gcmlnaHQsIHNvIHRoZSBjaGFuZ2UgaXMgYWRkaW5nIGEgdGltZW91dCBjaGVjayB0byB0aGUgYHdhaXRfZXZlbnRfdGltZW91dGAgY2FsbCBpbiBgX19tdDc2X3NldF9jaGFubmVsYC4gSWYgdGhlIHRpbWVvdXQgZXhwaXJlcywgaXQgbm93IGV4aXRzIGVhcmx5LCB3aGVyZWFzIGJlZm9yZSBpdCB3b3VsZCBoYXZlIGNvbnRpbnVlZC4gVGhpcyBwcmV2ZW50cyBhIHBvdGVudGlhbCBoYW5nIG9yIGlzc3VlIGlmIHRoZSBUWCBpc24ndCBjbGVhciBpbiB0aW1lLiBUaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSBhbmQgYWJzb2x1dGVseSB3YXJyYW50cyBmdXp6aW5nLlxuXG5JJ2xsIHF1aWNrbHkgZG91YmxlLWNoZWNrIHRvIG1ha2Ugc3VyZSB0aGVyZSBhcmVuJ3QgYW55IG90aGVyIHJlbGV2YW50IFVTQiBjb25maWd1cmF0aW9ucyBmb3IgTVQ3NiB3ZSBzaG91bGQgYmUgYXdhcmUgb2YuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1OTQ1LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODA3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI1VDAxOjAyOjU2LjYyMjIzNTk3NloiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI2MTU1ODE3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNVC4qVSRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnPTM2PWNvbmZpZyBNVDc5MnhfVVNCXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjQwOmNvbmZpZyBNVDc2X05QVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy00MS1cXHRib29sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnPTMyPWNvbmZpZyBNVDc2NjNfVVNCX1NESU9fQ09NTU9OXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnLTM1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWc6MzY6Y29uZmlnIE1UNzY2M1VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnLTM3LVxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc2NjNVIChVU0IpIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9LY29uZmlnPTI9Y29uZmlnIE1UNzZ4MF9DT01NT05cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL0tjb25maWctNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9LY29uZmlnOjY6Y29uZmlnIE1UNzZ4MFVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9LY29uZmlnLTctXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzZ4MFUgKFVTQikgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc9Nj1jb25maWcgTVQ3NngyRVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZy0xNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjE4OmNvbmZpZyBNVDc2eDJVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZy0xOS1cXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3NngyVSAoVVNCKSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZz0xNz1jb25maWcgTVQ3OTIxU1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0yNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnOjI4OmNvbmZpZyBNVDc5MjFVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0yOS1cXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3OTIxVSAoVVNCKSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZz03PWNvbmZpZyBNVDc5MjVFXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnLTE4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWc6MTk6Y29uZmlnIE1UNzkyNVVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnLTIwLVxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc5MjVVIChVU0IpIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnPTI9Y29uZmlnIE1UNzk5NkVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctMTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZzoxNjpjb25maWcgTVQ3OTk2X05QVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctMTctXFx0Ym9vbCBcXFwiTVQ3OTk2IChQQ0llKSBOUFUgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjVUMDE6MDI6NTYuNzQ4Mzk2NzMzWiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU2NDcwNTIxNTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIFVTQiBXaS1GaSBEcml2ZXIgQ29uZmlndXJhdGlvbnMqKlxuXG5Pa2F5LCBzbyBJIHNlZSBgTVQ3OTI1VWAgaXMgYWxzbyBpbiB0aGUgbWl4LiBSaWdodCwgSSBuZWVkIHRvIG1ha2UgYSBub3RlIG9mIHdoaWNoIGNvbmZpZ3VyYXRpb25zIEkgbmVlZCB0byBlbmFibGUuIEJhc2VkIG9uIHRoZSBwcmVzZW5jZSBvZiB0aGlzIGNoaXAsIGl0IHNlZW1zIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucyBhcmU6IGBNVDc2NjNVYCwgYE1UNzZ4MFVgLCBgTVQ3NngyVWAsIGBNVDc5MjFVYCwgYW5kIG5vdywgYE1UNzkyNVVgLlxuXG5IbW0sIGhvbGQgb24uIElzbid0IGBNVDc2X1VTQmAgYSBjb21tb24gY29uZmlndXJhdGlvbiBmb3IgdGhlc2UgZHJpdmVycz8gUGVyaGFwcyBJIGNhbiBzaW1wbGlmeSB0aGluZ3MgYnkganVzdCBlbmFibGluZyB0aGF0IGluc3RlYWQgb2YgbGlzdGluZyB0aGVtIGFsbCBpbmRpdmlkdWFsbHk/IExldCdzIGNoZWNrLiBGaXJzdCwgSSBuZWVkIHRvIHNlZSBpZiBgTVQ3Nl9VU0JgIGNhbiBiZSBlbmFibGVkIGRpcmVjdGx5LCBvciBpZiBpdCdzIGRlcGVuZGVudC5cblxuSSdsbCBjaGVjayB0aGUgYEtjb25maWdgIGZpbGUgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZ2AuIEFoLCBoZXJlIGl0IGlzOlxuYGBgXG5jb25maWcgTVQ3Nl9VU0Jcblx0dHJpc3RhdGVcbmBgYFxuT2theSwgc28gaXQncyBhICp0cmlzdGF0ZSogY29uZmlnLCBidXQgdGhlcmUncyBubyB2aXNpYmxlIHByb21wdC4gVGhhdCBtZWFucyBpdCBjYW4ndCBiZSBlbmFibGVkIGRpcmVjdGx5IHRocm91Z2ggdGhlIHVzZXIgaW50ZXJmYWNlLiBJdCdzIG9ubHkgKnNlbGVjdGVkKiBieSB0aGUgc3BlY2lmaWMgZHJpdmVyIGNvbmZpZ3MuIFNvLCBpdCBsb29rcyBsaWtlIEkgbmVlZCB0byBzdGljayB3aXRoIGxpc3RpbmcgdGhlIGluZGl2aWR1YWwgZHJpdmVycywgc3BlY2lmaWNhbGx5OiBgTVQ3NjYzVWAsIGBNVDc2eDBVYCwgYE1UNzZ4MlVgLCBgTVQ3OTIxVWAsIGFuZCBmaW5hbGx5LCBgTVQ3OTI1VWAuXG5cbkp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLCBsZXQgbWUgZG91YmxlIGNoZWNrIGFnYWluIHRvIG1ha2Ugc3VyZSB0aGF0IGBNVDc2X1VTQmAgZG9lc24ndCBoYXZlIGEgcHJvbXB0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyODIxNSwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yNVQwMTowMzowMi4zOTU0NTIzOTVaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjkzNjY1MzM4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNVDc2X1VTQlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc9Nj1jb25maWcgTVQ3Nl9MRURTXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjEyOmNvbmZpZyBNVDc2X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xMy1cXHR0cmlzdGF0ZVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNVQwMTowMzowMi40ODkxMjQ1MDNaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzU4MTI2MzM3NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE1UNzYgVVNCIERyaXZlciBDaGFuZ2VzKipcblxuT2theSwgaGVyZSdzIHdoYXQgSSd2ZSBnb3QuIE5vIHNwZWNpZmljIHByb21wdCwganVzdCBkaXZpbmcgaW4uIEZpcnN0LCBJIG5lZWQgdG8gY29uZmlybSB0aGUgcmVsZXZhbnQgVVNCIGRyaXZlcnMgd2l0aGluIE1UNzYuIExvb2tzIGxpa2UgYE1UNzZ4MDJfVVNCYCBhbmQgYE1UNzkyeF9VU0JgIGFyZSB0aGUgb25lcyB0byBjb25zaWRlciwgbm8gc3BlY2lmaWMgcHJvbXB0cyBhdHRhY2hlZCB0byB0aGVtIGVpdGhlci5cblxuU28sIHRoZSBrZXkgY29uZmlncyBJJ20gbG9va2luZyBhdCBhcmU6IGBNVDc2NjNVYCwgYE1UNzZ4MFVgLCBgTVQ3NngyVWAsIGBNVDc5MjFVYCwgYW5kIGBNVDc5MjVVYC4gVGhhdOKAmXMgbXkgd29ya2luZyBsaXN0LlxuXG5UaGUgY3JpdGljYWwgc3ltYm9scyBJJ20gZm9jdXNpbmcgb24gaGVyZSBhcmUgYF9fbXQ3Nl9zZXRfY2hhbm5lbGAgYW5kIGBtdDc2X3NldF9jaGFubmVsYC5cblxuVGhlIGNvcmUgb2YgdGhpcyBwYXRjaCBzZWVtcyB0byBiZSBhZGRpbmcgYSB0aW1lb3V0IGNoZWNrIHdpdGhpbiBgX19tdDc2X3NldF9jaGFubmVsYCB1c2luZyBgd2FpdF9ldmVudF90aW1lb3V0YC4gVGhpcyBwcmV2ZW50cyB0aGUgc3lzdGVtIGZyb20gaGFuZ2luZyBpZiBUWCBvcGVyYXRpb25zIGFyZSBzdGlsbCBwZW5kaW5nIHdoZW4gdGhlIGNoYW5uZWwgaXMgYmVpbmcgY2hhbmdlZCwgd2hpY2ggaXMgYSBmdW5jdGlvbmFsIGltcHJvdmVtZW50IGluIHRoZSBNVDc2IG1hYzgwMjExIGRyaXZlci4gVGhpcyBpcyBkZWZpbml0ZWx5IHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIEdpdmVuIHRoZXNlIGFyZSBVU0IgZGV2aWNlcywgYW5kIGJhc2VkIG9uIHRoZSBNVDc2IHNlcmllcywgSSBhbSBjb25maWRlbnQgdGhpcyB3b3VsZCB3b3JrIHdpdGggYGR1bW15X2hjZGAgYW5kIGBubDgwMjExYCBjb21tYW5kcy5cblxuTm93LCBsZXQgbWUganVzdCBxdWlja2x5IGRvdWJsZS1jaGVjayBgX19tdDc2X3NldF9jaGFubmVsYCB0byBtYWtlIHN1cmUgaXQncyBub3QgYSBwZXJmb3JtYW5jZSBib3R0bGVuZWNrLiBCYXNlZCBvbiBteSB1bmRlcnN0YW5kaW5nLCBpdCdzIHVzZWQgZHVyaW5nIGNoYW5uZWwgY2hhbmdlcywgdXBkYXRlcywgYW5kIHN0YXlpbmcgb24gY2hhbm5lbCBmb3Igc2Nhbm5pbmcgYW5kIG9mZi1jaGFubmVsIG9wZXJhdGlvbnMuIFRoZXNlIGFyZSBjb250cm9sIHBhdGggZnVuY3Rpb25zLCBub3QgZGF0YSBwYXRoIG9wZXJhdGlvbnMgbGlrZSBUWC9SWC4gU28sIGFkZHJlc3NpbmcgcG90ZW50aWFsIHRpbWVvdXRzIGhlcmUgaXMgY29tcGxldGVseSBhcHByb3ByaWF0ZS4gSXTigJlzIG5vdCBzb21ldGhpbmcgdGhhdOKAmXMgbGlrZWx5IHRvIGJlIGludm9rZWQgY29uc3RhbnRseS5cblxuQWxyaWdodCwgSSBhbSByZWFkeSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI4OTc0LCJPdXRwdXRUb2tlbnMiOjE5OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM1NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yNVQwMTowMzoxMC4wNzAzOTAzMzdaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MzgyMDM3OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVQ3NjYzVVwiLFxuICAgIFwiTVQ3NngwVVwiLFxuICAgIFwiTVQ3NngyVVwiLFxuICAgIFwiTVQ3OTIxVVwiLFxuICAgIFwiTVQ3OTI1VVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIl9fbXQ3Nl9zZXRfY2hhbm5lbFwiLFxuICAgIFwibXQ3Nl9zZXRfY2hhbm5lbFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSB0aW1lb3V0IGNoZWNrIHRvIHdhaXRfZXZlbnRfdGltZW91dCBpbiBfX210NzZfc2V0X2NoYW5uZWwgdG8gcHJldmVudCBwcm9jZWVkaW5nIHdoZW4gVFggaXMgc3RpbGwgcGVuZGluZyBhbmQgdGhlIHdhaXQgdGltZXMgb3V0LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIE1UNzYgbWFjODAyMTEgZHJpdmVyLiBUaGUgY29kZSBpcyByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSB0aGUgVVNCIGludGVyZmFjZSBvZiBNVDc2IGRldmljZXMgKGUuZy4sIE1UNzZ4MFUsIE1UNzZ4MlUpIHVzaW5nIGR1bW15X2hjZCBhbmQgbmw4MDIxMSBjb21tYW5kcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNVDc2NjNVXCIsXG4gICAgXCJNVDc2eDBVXCIsXG4gICAgXCJNVDc2eDJVXCIsXG4gICAgXCJNVDc5MjFVXCIsXG4gICAgXCJNVDc5MjVVXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiX19tdDc2X3NldF9jaGFubmVsXCIsXG4gICAgXCJtdDc2X3NldF9jaGFubmVsXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIHRpbWVvdXQgY2hlY2sgdG8gd2FpdF9ldmVudF90aW1lb3V0IGluIF9fbXQ3Nl9zZXRfY2hhbm5lbCB0byBwcmV2ZW50IHByb2NlZWRpbmcgd2hlbiBUWCBpcyBzdGlsbCBwZW5kaW5nIGFuZCB0aGUgd2FpdCB0aW1lcyBvdXQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgTVQ3NiBtYWM4MDIxMSBkcml2ZXIuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIHRoZSBVU0IgaW50ZXJmYWNlIG9mIE1UNzYgZGV2aWNlcyAoZS5nLiwgTVQ3NngwVSwgTVQ3NngyVSkgdXNpbmcgZHVtbXlfaGNkIGFuZCBubDgwMjExIGNvbW1hbmRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflownq72t[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-25 00:53:18 +0000 UTC FinishedAt: 2026-06-25 01:03:11 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "ab9de95c9cf952332ab79453b4b5d1bfca8e514f", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MT7663U", "MT76x0U", "MT76x2U", "MT7921U", "MT7925U" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "ab9de95c9cf952332ab79453b4b5d1bfca8e514f", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MT7663U", "MT76x0U", "MT76x2U", "MT7921U", "MT7925U" ], "series_id": "299dee08-29be-40a6-8adf-cf26915683fc" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "__mt76_set_channel", "mt76_set_channel" ], "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+CgkJCTx0ZD4yMDI2LzA2LzI1IDAxOjAyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01UNzY2M1UmIzM0OywKICAgICYjMzQ7TVQ3NngwVSYjMzQ7LAogICAgJiMzNDtNVDc2eDJVJiMzNDssCiAgICAmIzM0O01UNzkyMVUmIzM0OywKICAgICYjMzQ7TVQ3OTI1VSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O19fbXQ3Nl9zZXRfY2hhbm5lbCYjMzQ7LAogICAgJiMzNDttdDc2X3NldF9jaGFubmVsJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSB0aW1lb3V0IGNoZWNrIHRvIHdhaXRfZXZlbnRfdGltZW91dCBpbiBfX210NzZfc2V0X2NoYW5uZWwgdG8gcHJldmVudCBwcm9jZWVkaW5nIHdoZW4gVFggaXMgc3RpbGwgcGVuZGluZyBhbmQgdGhlIHdhaXQgdGltZXMgb3V0LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIE1UNzYgbWFjODAyMTEgZHJpdmVyLiBUaGUgY29kZSBpcyByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSB0aGUgVVNCIGludGVyZmFjZSBvZiBNVDc2IGRldmljZXMgKGUuZy4sIE1UNzZ4MFUsIE1UNzZ4MlUpIHVzaW5nIGR1bW15X2hjZCBhbmQgbmw4MDIxMSBjb21tYW5kcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNSAwMTowMjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDIxMTg2ZTc4MjNiOTI0MjBmNzA3NjNjY2QxMDhkNDA2NzIyNGFhYTVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1biAyNSAwMTowMjoxNSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmNcbmluZGV4IDEzYzRlOGFiZTI4MTkxLi4zNzQ3NGQ2NGNmZWNkYiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jXG5AQCAtMTAzMyw2ICYjNDM7MTAzMyw3IEBAIGludCBfX210NzZfc2V0X2NoYW5uZWwoc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiAqY2hhbmRlZixcbiBcdFx0ICAgICAgIGJvb2wgb2ZmY2hhbm5lbClcbiB7XG4gXHRzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiA9IHBoeS1cdTAwM2VkZXY7XG4mIzQzO1x0bG9uZyB0aW1lX2xlZnQ7XG4gXHRpbnQgdGltZW91dCA9IEhaIC8gNTtcbiBcdGludCByZXQ7XG4gXG5AQCAtMTA0MCw4ICYjNDM7MTA0MSwxMyBAQCBpbnQgX19tdDc2X3NldF9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWYsXG4gXHRtdDc2X3R4cV9zY2hlZHVsZV9wZW5kaW5nKHBoeSk7XG4gXG4gXHRzZXRfYml0KE1UNzZfUkVTRVQsIFx1MDAyNnBoeS1cdTAwM2VzdGF0ZSk7XG4tXHR3YWl0X2V2ZW50X3RpbWVvdXQoZGV2LVx1MDAzZXR4X3dhaXQsICFtdDc2X2hhc190eF9wZW5kaW5nKHBoeSksIHRpbWVvdXQpO1xuJiM0MztcdHRpbWVfbGVmdCA9IHdhaXRfZXZlbnRfdGltZW91dChkZXYtXHUwMDNldHhfd2FpdCwgIW10NzZfaGFzX3R4X3BlbmRpbmcocGh5KSxcbiYjNDM7XHRcdFx0XHQgICAgICAgdGltZW91dCk7XG4gXHRtdDc2X3VwZGF0ZV9zdXJ2ZXkocGh5KTtcbiYjNDM7XHRpZiAoIXRpbWVfbGVmdCkge1xuJiM0MztcdFx0cmV0ID0gLUVUSU1FRE9VVDtcbiYjNDM7XHRcdGdvdG8gb3V0O1xuJiM0MztcdH1cbiBcbiBcdGlmIChwaHktXHUwMDNlY2hhbmRlZi5jaGFuLVx1MDAzZWNlbnRlcl9mcmVxICE9IGNoYW5kZWYtXHUwMDNlY2hhbi1cdTAwM2VjZW50ZXJfZnJlcSB8fFxuIFx0ICAgIHBoeS1cdTAwM2VjaGFuZGVmLndpZHRoICE9IGNoYW5kZWYtXHUwMDNld2lkdGgpXG5AQCAtMTA1OSw2ICYjNDM7MTA2NSw3IEBAIGludCBfX210NzZfc2V0X2NoYW5uZWwoc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiAqY2hhbmRlZixcbiBcbiBcdHJldCA9IGRldi1cdTAwM2VkcnYtXHUwMDNlc2V0X2NoYW5uZWwocGh5KTtcbiBcbiYjNDM7b3V0OlxuIFx0Y2xlYXJfYml0KE1UNzZfUkVTRVQsIFx1MDAyNnBoeS1cdTAwM2VzdGF0ZSk7XG4gXHRtdDc2X3dvcmtlcl9lbmFibGUoXHUwMDI2ZGV2LVx1MDAzZXR4X3dvcmtlcik7XG4gXHRtdDc2X3dvcmtlcl9zY2hlZHVsZShcdTAwMjZkZXYtXHUwMDNldHhfd29ya2VyKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNSAwMTowMjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNVDc2NjNVJiMzNDssCiAgICAmIzM0O01UNzZ4MFUmIzM0OywKICAgICYjMzQ7TVQ3NngyVSYjMzQ7LAogICAgJiMzNDtNVDc5MjFVJiMzNDssCiAgICAmIzM0O01UNzkyNVUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtfX210NzZfc2V0X2NoYW5uZWwmIzM0OywKICAgICYjMzQ7bXQ3Nl9zZXRfY2hhbm5lbCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgdGltZW91dCBjaGVjayB0byB3YWl0X2V2ZW50X3RpbWVvdXQgaW4gX19tdDc2X3NldF9jaGFubmVsIHRvIHByZXZlbnQgcHJvY2VlZGluZyB3aGVuIFRYIGlzIHN0aWxsIHBlbmRpbmcgYW5kIHRoZSB3YWl0IHRpbWVzIG91dC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBNVDc2IG1hYzgwMjExIGRyaXZlci4gVGhlIGNvZGUgaXMgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB2aWEgdGhlIFVTQiBpbnRlcmZhY2Ugb2YgTVQ3NiBkZXZpY2VzIChlLmcuLCBNVDc2eDBVLCBNVDc2eDJVKSB1c2luZyBkdW1teV9oY2QgYW5kIG5sODAyMTEgY29tbWFuZHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDIxMTg2ZTc4MjNiOTI0MjBmNzA3NjNjY2QxMDhkNDA2NzIyNGFhYTUKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IEp1biAyNSAwMTowMjoxNSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYwppbmRleCAxM2M0ZThhYmUyODE5MS4uMzc0NzRkNjRjZmVjZGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMKQEAgLTEwMzMsNiAmIzQzOzEwMzMsNyBAQCBpbnQgX19tdDc2X3NldF9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWYsCiAJCSAgICAgICBib29sIG9mZmNoYW5uZWwpCiB7CiAJc3RydWN0IG10NzZfZGV2ICpkZXYgPSBwaHktJmd0O2RldjsKJiM0MzsJbG9uZyB0aW1lX2xlZnQ7CiAJaW50IHRpbWVvdXQgPSBIWiAvIDU7CiAJaW50IHJldDsKIApAQCAtMTA0MCw4ICYjNDM7MTA0MSwxMyBAQCBpbnQgX19tdDc2X3NldF9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWYsCiAJbXQ3Nl90eHFfc2NoZWR1bGVfcGVuZGluZyhwaHkpOwogCiAJc2V0X2JpdChNVDc2X1JFU0VULCAmYW1wO3BoeS0mZ3Q7c3RhdGUpOwotCXdhaXRfZXZlbnRfdGltZW91dChkZXYtJmd0O3R4X3dhaXQsICFtdDc2X2hhc190eF9wZW5kaW5nKHBoeSksIHRpbWVvdXQpOwomIzQzOwl0aW1lX2xlZnQgPSB3YWl0X2V2ZW50X3RpbWVvdXQoZGV2LSZndDt0eF93YWl0LCAhbXQ3Nl9oYXNfdHhfcGVuZGluZyhwaHkpLAomIzQzOwkJCQkgICAgICAgdGltZW91dCk7CiAJbXQ3Nl91cGRhdGVfc3VydmV5KHBoeSk7CiYjNDM7CWlmICghdGltZV9sZWZ0KSB7CiYjNDM7CQlyZXQgPSAtRVRJTUVET1VUOwomIzQzOwkJZ290byBvdXQ7CiYjNDM7CX0KIAogCWlmIChwaHktJmd0O2NoYW5kZWYuY2hhbi0mZ3Q7Y2VudGVyX2ZyZXEgIT0gY2hhbmRlZi0mZ3Q7Y2hhbi0mZ3Q7Y2VudGVyX2ZyZXEgfHwKIAkgICAgcGh5LSZndDtjaGFuZGVmLndpZHRoICE9IGNoYW5kZWYtJmd0O3dpZHRoKQpAQCAtMTA1OSw2ICYjNDM7MTA2NSw3IEBAIGludCBfX210NzZfc2V0X2NoYW5uZWwoc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiAqY2hhbmRlZiwKIAogCXJldCA9IGRldi0mZ3Q7ZHJ2LSZndDtzZXRfY2hhbm5lbChwaHkpOwogCiYjNDM7b3V0OgogCWNsZWFyX2JpdChNVDc2X1JFU0VULCAmYW1wO3BoeS0mZ3Q7c3RhdGUpOwogCW10NzZfd29ya2VyX2VuYWJsZSgmYW1wO2Rldi0mZ3Q7dHhfd29ya2VyKTsKIAltdDc2X3dvcmtlcl9zY2hlZHVsZSgmYW1wO2Rldi0mZ3Q7dHhfd29ya2VyKTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjUgMDE6MDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjIzMgoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDMwOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFJlYWNoYWJpbGl0eSBvZiBhIFRpbWVvdXQgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmNgLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIG1vZGlmeWluZyB0aGUgYF9fbXQ3Nl9zZXRfY2hhbm5lbGAgZnVuY3Rpb24sIGFkZGluZyBhIHRpbWVvdXQgY2hlY2sgd2l0aGluIGB3YWl0X2V2ZW50X3RpbWVvdXRgLiBJZiB0aGUgdGltZW91dCBleHBpcmVzLCBpdCByZXR1cm5zIGAtRVRJTUVET1VUYCBhbmQganVtcHMgdG8gdGhlIGBvdXQ6YCBsYWJlbC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBjYW4gd2UgZXZlbiAqcmVhY2gqIHRoaXMgY29kZSBpbiBvdXIgZnV6emluZyBlbnZpcm9ubWVudD8KClNpbmNlIGl0JiMzOTtzIGEgZHJpdmVyIGZvciBNZWRpYXRlayBNVDc2IHdpcmVsZXNzIGRldmljZXMsIG15IGV4cGVyaWVuY2UgaW1tZWRpYXRlbHkgZmxhZ3MgYSBwb3RlbnRpYWwgaXNzdWUuIFR5cGljYWxseSwgdGhlc2UgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVycyBhcmVuJiMzOTt0IGVhc2lseSBhY2Nlc3NpYmxlIHdpdGhpbiB2aXJ0dWFsaXphdGlvbiBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgdW5sZXNzIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggc29mdHdhcmUgZW11bGF0aW9uIG9yIFBDSSBwYXNzdGhyb3VnaC4gQnV0IGBtYWM4MDIxMV9od3NpbWAgc2ltdWxhdGVzICpnZW5lcmljKiBtYWM4MDIxMSBkZXZpY2VzLCBub3Qgc29tZXRoaW5nIGFzIHNwZWNpZmljIGFzIGFuIE1UNzYgY2hpcC4gSXMgdGhlcmUgYW4gTVQ3NiBlbXVsYXRvciBvdXQgdGhlcmU/IFByb2JhYmx5IG5vdC4KClNvLCB0aGUgY2hhbmNlcyBvZiB0aGlzIHRpbWVvdXQgY29kZSBiZWluZyBkaXJlY3RseSBleGVyY2lzZWQgaW4gb3VyIGN1cnJlbnQgZnV6emluZyBzZXR1cCBzZWVtIGxvdy4gSG93ZXZlciwgSSBjYW4mIzM5O3QgYmUgdG9vIHN1cmUgd2l0aG91dCBhIGRvdWJsZS1jaGVjay4gSSBuZWVkIHRvIGludmVzdGlnYXRlIGlmIHRoZXJlJiMzOTtzIGFueSBraW5kIG9mIHZpcnR1YWwgb3IgVVNCIGludGVyZmFjZSBhc3NvY2lhdGVkIHdpdGggTVQ3NiB0aGF0IHdlICpjb3VsZCogZnV6eiB0aHJvdWdoIFVTQiBnYWRnZXQgb3Igc29tZXRoaW5nIHNpbWlsYXIuIEFoLCB5ZXMsIEkgcmVjYWxsIE1UNzYgZG9lcyBoYXZlIFVTQiBkcml2ZXJzLCBuYW1lbHkgYG10NzZ4MHVgIGFuZCBgbXQ3NngydWAuIFRoYXQmIzM5O3MgYSBnYW1lLWNoYW5nZXIhIFVTQiBkZXZpY2VzIG9wZW4gdGhlIGRvb3IgZm9yIGZ1enppbmcgdXNpbmcgYGR1bW15X2hjZGAgb3Igc3l6a2FsbGVyJiMzOTtzIFVTQiBmdXp6aW5nIGNhcGFiaWxpdGllcy4gTm93IEkgbmVlZCB0byBjb25maXJtIHdoZXRoZXIgdGhlc2UgTVQ3NiBVU0IgZHJpdmVycyBhcmUgZW5hYmxlZCwgb3IgYXQgbGVhc3QgaWYgd2UgY291bGQgcG90ZW50aWFsbHkgdXNlIHRoZW0gZm9yIGZ1enppbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjUgMDE6MDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3Ni4qdXNiJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDcwOCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZT0yPW9iai0kKENPTkZJR19NVDc2X0NPUkUpICYjNDM7PSBtdDc2Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfTVQ3Nl9VU0IpICYjNDM7PSBtdDc2LXVzYi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlLTQtb2JqLSQoQ09ORklHX01UNzZfU0RJTykgJiM0Mzs9IG10NzYtc2Rpby5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlPTU9b2JqLSQoQ09ORklHX01UNzZ4MDJfTElCKSAmIzQzOz0gbXQ3NngwMi1saWIub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19NVDc2eDAyX1VTQikgJiM0Mzs9IG10NzZ4MDItdXNiLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtNy1vYmotJChDT05GSUdfTVQ3Nl9DT05OQUNfTElCKSAmIzQzOz0gbXQ3Ni1jb25uYWMtbGliLm9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlPTE3PW10NzYtJChDT05GSUdfTkw4MDIxMV9URVNUTU9ERSkgJiM0Mzs9IHRlc3Rtb2RlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtMTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlOjE5Om10NzYtdXNiLXkgOj0gdXNiLm8gdXNiX3RyYWNlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtMjAtbXQ3Ni1zZGlvLXkgOj0gc2Rpby5vIHNkaW9fdHhyeC5vXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZT0yNz1tdDc2eDAyLWxpYi15IDo9IG10NzZ4MDJfdXRpbC5vIG10NzZ4MDJfbWFjLm8gbXQ3NngwMl9tY3UubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtMzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlOjMyOm10NzZ4MDItdXNiLXkgOj0gbXQ3NngwMl91c2JfbWN1Lm8gbXQ3NngwMl91c2JfY29yZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlLTMzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZGVidWdmcy5jPTc0PXN0YXRpYyBpbnQgbXQ3Nl9yeF9xdWV1ZXNfcmVhZChzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kZWJ1Z2ZzLmMtODItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RlYnVnZnMuYzo4MzpcdFx0cXVldWVkID0gbXQ3Nl9pc191c2IoZGV2KSA/IHEtXHUwMDNlbmRlc2MgLSBxLVx1MDAzZXF1ZXVlZCA6IHEtXHUwMDNlcXVldWVkO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kZWJ1Z2ZzLmMtODQtXHRcdHNlcV9wcmludGYocywgXCYjMzQ7ICU5ZCB8ICU5ZCB8ICU5ZCB8ICU5ZCB8XFxuXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oPTk1PXN0cnVjdCBtdDc2X2J1c19vcHMge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTEwOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjExMDojZGVmaW5lIG10NzZfaXNfdXNiKGRldikgKChkZXYpLVx1MDAzZWJ1cy1cdTAwM2V0eXBlID09IE1UNzZfQlVTX1VTQilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTExMS0jZGVmaW5lIG10NzZfaXNfbW1pbyhkZXYpICgoZGV2KS1cdTAwM2VidXMtXHUwMDNldHlwZSA9PSBNVDc2X0JVU19NTUlPKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oPTY0OT1zdHJ1Y3QgbXQ3Nl9tY3Uge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTY2Mi0jZGVmaW5lIE1DVV9SRVNQX1VSQl9TSVpFXHQxMDI0XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDo2NjM6c3RydWN0IG10NzZfdXNiIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTY2NC1cdHN0cnVjdCBtdXRleCB1c2JfY3RybF9tdHg7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg9OTIxPXN0cnVjdCBtdDc2X2RldiB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTAzNS1cdFx0c3RydWN0IG10NzZfbW1pbyBtbWlvO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTAzNjpcdFx0c3RydWN0IG10NzZfdXNiIHVzYjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTEwMzctXHRcdHN0cnVjdCBtdDc2X3NkaW8gc2Rpbztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaD0xODM4PW10NzZ1X2J1bGtfbXNnKHN0cnVjdCBtdDc2X2RldiAqZGV2LCB2b2lkICpkYXRhLCBpbnQgbGVuLCBpbnQgKmFjdHVhbF9sZW4sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTg0Mi1cdHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2ID0gaW50ZXJmYWNlX3RvX3VzYmRldih1aW50Zik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxODQzOlx0c3RydWN0IG10NzZfdXNiICp1c2IgPSBcdTAwMjZkZXYtXHUwMDNldXNiO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTg0NC1cdHVuc2lnbmVkIGludCBwaXBlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oPTE4Njg9dm9pZCBfX19tdDc2dV93cihzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgdTggcmVxLCB1OCByZXFfdHlwZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE4NjktXHRcdCB1MzIgYWRkciwgdTMyIHZhbCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxODcwOmludCBfX210NzZ1X2luaXQoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTg3MS1cdFx0IHN0cnVjdCBtdDc2X2J1c19vcHMgKm9wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxODcyOmludCBtdDc2dV9pbml0KHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Zik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xODczLWludCBtdDc2dV9hbGxvY19tY3VfcXVldWUoc3RydWN0IG10NzZfZGV2ICpkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L01ha2VmaWxlPTQ9b2JqLSQoQ09ORklHX01UNzYxNUUpICYjNDM7PSBtdDc2MTVlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L01ha2VmaWxlOjU6b2JqLSQoQ09ORklHX01UNzY2M19VU0JfU0RJT19DT01NT04pICYjNDM7PSBtdDc2NjMtdXNiLXNkaW8tY29tbW9uLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L01ha2VmaWxlLTYtb2JqLSQoQ09ORklHX01UNzY2M1UpICYjNDM7PSBtdDc2NjN1Lm9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9NYWtlZmlsZT0xNj1tdDc2MTVlLSQoQ09ORklHX01UNzYyMl9XTUFDKSAmIzQzOz0gc29jLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L01ha2VmaWxlLTE3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvTWFrZWZpbGU6MTg6bXQ3NjYzLXVzYi1zZGlvLWNvbW1vbi15IDo9IHVzYl9zZGlvLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L01ha2VmaWxlOjE5Om10NzY2M3UteSA6PSB1c2IubyB1c2JfbWN1Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L01ha2VmaWxlLTIwLW10NzY2M3MteSA6PSBzZGlvLm8gc2Rpb19tY3Uub1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RlYnVnZnMuYz05Nj1tdDc2MTVfcG1fc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jLTEwNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RlYnVnZnMuYzoxMDU6XHRpZiAoIW10NzYxNV9maXJtd2FyZV9vZmZsb2FkKGRldikgfHwgbXQ3Nl9pc191c2IoXHUwMDI2ZGV2LVx1MDAzZW10NzYpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jLTEwNi1cdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oPTM1NT1leHRlcm4gY29uc3QgdTMyIG10NzY2M2VfcmVnX21hcFtfX01UX0JBU0VfTUFYXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oOjM1NjpleHRlcm4gY29uc3QgdTMyIG10NzY2M191c2Jfc2Rpb19yZWdfbWFwW19fTVRfQkFTRV9NQVhdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbXQ3NjE1LmgtMzU3LWV4dGVybiBzdHJ1Y3QgcGNpX2RyaXZlciBtdDc2MTVfcGNpX2RyaXZlcjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaD01NDA9dm9pZCBtdDc2MjJfdHJpZ2dlcl9oaWZfaW50KHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYsIGJvb2wgZW4pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oLTU0Mi0vKiB1c2IgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oOjU0MzppbnQgbXQ3NjYzX3VzYl9zZGlvX3R4X3ByZXBhcmVfc2tiKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgdm9pZCAqdHh3aV9wdHIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaC01NDQtXHRcdFx0XHQgICBlbnVtIG10NzZfdHhxX2lkIHFpZCwgc3RydWN0IG10NzZfd2NpZCAqd2NpZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaC01NDYtXHRcdFx0XHQgICBzdHJ1Y3QgbXQ3Nl90eF9pbmZvICp0eF9pbmZvKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oOjU0Nzpib29sIG10NzY2M191c2Jfc2Rpb190eF9zdGF0dXNfZGF0YShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHU4ICp1cGRhdGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbXQ3NjE1Lmg6NTQ4OnZvaWQgbXQ3NjYzX3VzYl9zZGlvX3R4X2NvbXBsZXRlX3NrYihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaC01NDktXHRcdFx0XHQgICAgIHN0cnVjdCBtdDc2X3F1ZXVlX2VudHJ5ICplKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oOjU1MDppbnQgbXQ3NjYzX3VzYl9zZGlvX3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oLTU1MS1pbnQgbXQ3NjYzdV9tY3VfaW5pdChzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvLmM9NzY9c3RhdGljIGludCBtdDc2NjNzX3Byb2JlKHN0cnVjdCBzZGlvX2Z1bmMgKmZ1bmMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jLTgxLVx0XHQuZHJ2X2ZsYWdzID0gTVRfRFJWX1JYX0RNQV9IRFIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvLmM6ODI6XHRcdC50eF9wcmVwYXJlX3NrYiA9IG10NzY2M191c2Jfc2Rpb190eF9wcmVwYXJlX3NrYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYzo4MzpcdFx0LnR4X2NvbXBsZXRlX3NrYiA9IG10NzY2M191c2Jfc2Rpb190eF9jb21wbGV0ZV9za2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvLmM6ODQ6XHRcdC50eF9zdGF0dXNfZGF0YSA9IG10NzY2M191c2Jfc2Rpb190eF9zdGF0dXNfZGF0YSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYy04NS1cdFx0LnJ4X3NrYiA9IG10NzYxNV9xdWV1ZV9yeF9za2IsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jLTExOC1cdElOSVRfV09SSyhcdTAwMjZkZXYtXHUwMDNlbWN1X3dvcmssIG10NzY2M3NfaW5pdF93b3JrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYzoxMTk6XHRkZXYtXHUwMDNlcmVnX21hcCA9IG10NzY2M191c2Jfc2Rpb19yZWdfbWFwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jLTEyMC1cdGRldi1cdTAwM2VvcHMgPSBvcHM7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jLTE1OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYzoxNTk6XHRyZXQgPSBtdDc2NjNfdXNiX3NkaW9fcmVnaXN0ZXJfZGV2aWNlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvLmMtMTYwLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYz01Nz1zdGF0aWMgdm9pZCBtdDc2NjN1X2NvcHkoc3RydWN0IG10NzZfZGV2ICpkZXYsIHUzMiBvZmZzZXQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtNTkte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmM6NjA6XHRzdHJ1Y3QgbXQ3Nl91c2IgKnVzYiA9IFx1MDAyNmRldi1cdTAwM2V1c2I7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy02MS1cdGludCByZXQsIGkgPSAwLCBiYXRjaF9sZW47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmM9MTAxPXN0YXRpYyB2b2lkIG10NzY2M3VfaW5pdF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0xMTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoxMTI6c3RhdGljIGludCBtdDc2NjN1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50ZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTExMy1cdFx0XHQgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTExNy1cdFx0LmRydl9mbGFncyA9IE1UX0RSVl9SWF9ETUFfSERSIHwgTVRfRFJWX0hXX01HTVRfVFhRLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmM6MTE4Olx0XHQudHhfcHJlcGFyZV9za2IgPSBtdDc2NjNfdXNiX3NkaW9fdHhfcHJlcGFyZV9za2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoxMTk6XHRcdC50eF9jb21wbGV0ZV9za2IgPSBtdDc2NjNfdXNiX3NkaW9fdHhfY29tcGxldGVfc2tiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmM6MTIwOlx0XHQudHhfc3RhdHVzX2RhdGEgPSBtdDc2NjNfdXNiX3NkaW9fdHhfc3RhdHVzX2RhdGEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0xMjEtXHRcdC5yeF9za2IgPSBtdDc2MTVfcXVldWVfcnhfc2tiLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTE0OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jOjE0OTpcdG1kZXYgPSBtdDc2X2FsbG9jX2RldmljZShcdTAwMjZ1c2JfaW50Zi1cdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgb3BzLCBcdTAwMjZkcnZfb3BzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTE1MC1cdGlmICghbWRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0xNTgtXHRJTklUX1dPUksoXHUwMDI2ZGV2LVx1MDAzZW1jdV93b3JrLCBtdDc2NjN1X2luaXRfd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoxNTk6XHRkZXYtXHUwMDNlcmVnX21hcCA9IG10NzY2M191c2Jfc2Rpb19yZWdfbWFwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMTYwLVx0ZGV2LVx1MDAzZW9wcyA9IG9wcztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jOjE2MTpcdHJldCA9IF9fbXQ3NnVfaW5pdChtZGV2LCB1c2JfaW50ZiwgXHUwMDI2YnVzX29wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0xNjItXHRpZiAocmV0IFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTE4NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jOjE4NjpcdHJldCA9IG10NzY2M191c2Jfc2Rpb19yZWdpc3Rlcl9kZXZpY2UoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTE4Ny1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMjAwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmM6MjAxOnN0YXRpYyB2b2lkIG10NzY2M3VfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqdXNiX2ludGYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0yMDIte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmM6MjAzOlx0c3RydWN0IG10NzYxNV9kZXYgKmRldiA9IHVzYl9nZXRfaW50ZmRhdGEodXNiX2ludGYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMjA0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTIxNi0jaWZkZWYgQ09ORklHX1BNXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoyMTc6c3RhdGljIGludCBtdDc2NjN1X3N1c3BlbmQoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsIHBtX21lc3NhZ2VfdCBzdGF0ZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTIxOC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoyMTk6XHRzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2ID0gdXNiX2dldF9pbnRmZGF0YShpbnRmKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTIyMC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0yMzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoyMzY6c3RhdGljIGludCBtdDc2NjN1X3Jlc3VtZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTIzNy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoyMzg6XHRzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2ID0gdXNiX2dldF9pbnRmZGF0YShpbnRmKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTIzOS1cdGludCBlcnI7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0xNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmM6MTc6Y29uc3QgdTMyIG10NzY2M191c2Jfc2Rpb19yZWdfbWFwW10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTE4LVx0W01UX1RPUF9DRkdfQkFTRV1cdD0gMHg4MDAyMDAwMCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTQwLX07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjQxOkVYUE9SVF9TWU1CT0xfR1BMKG10NzY2M191c2Jfc2Rpb19yZWdfbWFwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtNDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jPTQzPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjQ0Om10NzY2M191c2Jfc2Rpb193cml0ZV90eHdpKHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3djaWQgKndjaWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTQ1LVx0XHRcdCAgIGVudW0gbXQ3Nl90eHFfaWQgcWlkLCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtNTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjU2OnN0YXRpYyBpbnQgbXQ3NjYzX3VzYl9zZGlvX3NldF9yYXRlcyhzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy01Ny1cdFx0XHRcdCAgICAgc3RydWN0IG10NzYxNV93dGJsX3JhdGVfZGVzYyAqd3JkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMTMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzoxMzE6c3RhdGljIHZvaWQgbXQ3NjYzX3VzYl9zZGlvX3JhdGVfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTEzMi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0xNDgtXHRcdG10NzYxNV9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjE0OTpcdFx0bXQ3NjYzX3VzYl9zZGlvX3NldF9yYXRlcyhkZXYsIHdyZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTE1MC1cdFx0bXQ3NjE1X211dGV4X3JlbGVhc2UoZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTE1NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmM6MTU2OmJvb2wgbXQ3NjYzX3VzYl9zZGlvX3R4X3N0YXR1c19kYXRhKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgdTggKnVwZGF0ZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMTU3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTE2NS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjE2NjpFWFBPUlRfU1lNQk9MX0dQTChtdDc2NjNfdXNiX3NkaW9fdHhfc3RhdHVzX2RhdGEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0xNjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjE2ODp2b2lkIG10NzY2M191c2Jfc2Rpb190eF9jb21wbGV0ZV9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0xNjktXHRcdFx0XHQgICAgIHN0cnVjdCBtdDc2X3F1ZXVlX2VudHJ5ICplKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMTcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzoxNzM6XHRpZiAobXQ3Nl9pc191c2IobWRldikpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTE3NC1cdFx0aGVhZHJvb20gJiM0Mzs9IE1UX1VTQl9IRFJfU0laRTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTE3OC19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjE3OTpFWFBPUlRfU1lNQk9MX0dQTChtdDc2NjNfdXNiX3NkaW9fdHhfY29tcGxldGVfc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMTgwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzoxODE6aW50IG10NzY2M191c2Jfc2Rpb190eF9wcmVwYXJlX3NrYihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHZvaWQgKnR4d2lfcHRyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0xODItXHRcdFx0XHQgICBlbnVtIG10NzZfdHhxX2lkIHFpZCwgc3RydWN0IG10NzZfd2NpZCAqd2NpZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTIwNi1cdHBrdGlkID0gbXQ3Nl90eF9zdGF0dXNfc2tiX2FkZChcdTAwMjZkZXYtXHUwMDNlbXQ3Niwgd2NpZCwgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmM6MjA3Olx0bXQ3NjYzX3VzYl9zZGlvX3dyaXRlX3R4d2koZGV2LCB3Y2lkLCBxaWQsIHN0YSwga2V5LCBwa3RpZCwgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmM6MjA4Olx0aWYgKG10NzZfaXNfdXNiKG1kZXYpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTIwOS1cdFx0dTMyIGxlbiA9IHNrYi1cdTAwM2VsZW47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0yMjMtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzoyMjQ6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NjYzX3VzYl9zZGlvX3R4X3ByZXBhcmVfc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMjI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYz0yMjY9c3RhdGljIGludCBtdDc2NjN1X2RtYV9zY2hlZF9pbml0KHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0yNzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjI3ODpzdGF0aWMgaW50IG10NzY2M191c2Jfc2Rpb19pbml0X2hhcmR3YXJlKHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTI3OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0yODUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjI4NjpcdGlmIChtdDc2X2lzX3VzYihcdTAwMjZkZXYtXHUwMDNlbXQ3NikpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMjg3LVx0XHRyZXQgPSBtdDc2NjN1X2RtYV9zY2hlZF9pbml0KGRldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0zMDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjMwNjppbnQgbXQ3NjYzX3VzYl9zZGlvX3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0zMDcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMzEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzozMTE6XHRJTklUX1dPUksoXHUwMDI2ZGV2LVx1MDAzZXJhdGVfd29yaywgbXQ3NjYzX3VzYl9zZGlvX3JhdGVfd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTMxMi1cdElOSVRfTElTVF9IRUFEKFx1MDAyNmRldi1cdTAwM2V3cmRfaGVhZCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0zMTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjMxNTpcdGVyciA9IG10NzY2M191c2Jfc2Rpb19pbml0X2hhcmR3YXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTMxNi1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0zMTktXHRody1cdTAwM2VleHRyYV90eF9oZWFkcm9vbSAmIzQzOz0gTVRfVVNCX1RYRF9TSVpFO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzozMjA6XHRpZiAobXQ3Nl9pc191c2IoXHUwMDI2ZGV2LVx1MDAzZW10NzYpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTMyMS1cdFx0aHctXHUwMDNlZXh0cmFfdHhfaGVhZHJvb20gJiM0Mzs9IE1UX1VTQl9IRFJfU0laRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMzIyLVx0XHQvKiBjaGVjayBodyBzZyBzdXBwb3J0IGluIG9yZGVyIHRvIGVuYWJsZSBBTVNEVSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzozMjM6XHRcdGlmIChkZXYtXHUwMDNlbXQ3Ni51c2Iuc2dfZW4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTMyNC1cdFx0XHRody1cdTAwM2VtYXhfdHhfZnJhZ21lbnRzID0gTVRfSFdfVFhQX01BWF9CVUZfTlVNO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMzMzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzozMzQ6XHRpZiAoIWRldi1cdTAwM2VtdDc2LnVzYi5zZ19lbikge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0zMzUtXHRcdHN0cnVjdCBpZWVlODAyMTFfc3RhX3ZodF9jYXAgKnZodF9jYXA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0zNDctfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzozNDg6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NjYzX3VzYl9zZGlvX3JlZ2lzdGVyX2RldmljZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTM0OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21hYy5jPTM2PWludCBtdDc2X2Nvbm5hY19wbV93YWtlKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3Nl9jb25uYWNfcG0gKnBtKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWFjLmMtMzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21hYy5jOjQwOlx0aWYgKG10NzZfaXNfdXNiKGRldikpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21hYy5jLTQxLVx0XHRyZXR1cm4gMDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21hYy5jPTYyPXZvaWQgbXQ3Nl9jb25uYWNfcG93ZXJfc2F2ZV9zY2hlZChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21hYy5jLTY2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tYWMuYzo2NzpcdGlmIChtdDc2X2lzX3VzYihkZXYpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tYWMuYy02OC1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmM9MjU2Nj1tdDc2X2Nvbm5hY19tY3Vfc2V0X3dvd19jdHJsKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmMtMjYwOC1cdFx0cmVxLndvd19jdHJsX3Rsdi53YWtldXBfaGlmID0gV09XX1BDSUU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jOjI2MDk6XHRlbHNlIGlmIChtdDc2X2lzX3VzYihkZXYpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYy0yNjEwLVx0XHRyZXEud293X2N0cmxfdGx2Lndha2V1cF9oaWYgPSBXT1dfVVNCO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmM9MjYxOT1pbnQgbXQ3Nl9jb25uYWNfbWN1X3NldF9oaWZfc3VzcGVuZChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgYm9vbCBzdXNwZW5kLCBib29sIHdhaXRfcmVzcClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jLTI2NDQtXHRcdHJlcS5oZHIuaGlmX3R5cGUgPSAyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYzoyNjQ1Olx0ZWxzZSBpZiAobXQ3Nl9pc191c2IoZGV2KSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmMtMjY0Ni1cdFx0cmVxLmhkci5oaWZfdHlwZSA9IDE7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvTWFrZWZpbGU9Nj1tdDc2eDAtY29tbW9uLXkgOj0gaW5pdC5vIG1haW4ubyBlZXByb20ubyBwaHkub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvTWFrZWZpbGUtNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL01ha2VmaWxlOjg6bXQ3NngwdS15IDo9IHVzYi5vIHVzYl9tY3Uub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvTWFrZWZpbGUtOS1tdDc2eDBlLXkgOj0gcGNpLm8gcGNpX21jdS5vXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGh5LmM9MTAzPW10NzZ4MF9yZl93cihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgdTMyIG9mZnNldCwgdTggdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGh5LmMtMTA0LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BoeS5jOjEwNTpcdGlmIChtdDc2X2lzX3VzYihcdTAwMjZkZXYtXHUwMDNlbXQ3NikpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BoeS5jLTEwNi1cdFx0c3RydWN0IG10NzZfcmVnX3BhaXIgcGFpciA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9waHkuYz0xMTk9c3RhdGljIGludCBtdDc2eDBfcmZfcnIoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIHUzMiBvZmZzZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGh5LmMtMTIzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGh5LmM6MTI0Olx0aWYgKG10NzZfaXNfdXNiKFx1MDAyNmRldi1cdTAwM2VtdDc2KSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGh5LmMtMTI1LVx0XHRzdHJ1Y3QgbXQ3Nl9yZWdfcGFpciBwYWlyID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BoeS5jPTkxMz12b2lkIG10NzZ4MF9waHlfc2V0X2NoYW5uZWwoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGh5LmMtOTcwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGh5LmM6OTcxOlx0aWYgKG10NzZfaXNfdXNiKFx1MDAyNmRldi1cdTAwM2VtdDc2KSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGh5LmMtOTcyLVx0XHRtdDc2eDBfcGh5X2JicF9zZXRfYncoZGV2LCBjaGFuZGVmLVx1MDAzZXdpZHRoKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0xMS0jaW5jbHVkZSBcJiMzNDttY3UuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM6MTI6I2luY2x1ZGUgXCYjMzQ7Li4vbXQ3NngwMl91c2IuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYz0xND1zdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgbXQ3NngwX2RldmljZV90YWJsZVtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTQ1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM6NDY6c3RhdGljIHZvaWQgbXQ3NngwX2luaXRfdXNiX2RtYShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTQ3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYz0xNTE9c3RhdGljIGludCBtdDc2eDB1X2luaXRfaGFyZHdhcmUoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIGJvb2wgcmVzZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMTYzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM6MTY0Olx0bXQ3NngwX2luaXRfdXNiX2RtYShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMTY1LVx0ZXJyID0gbXQ3NngwX2luaXRfaGFyZHdhcmUoZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYz0xNzk9c3RhdGljIGludCBtdDc2eDB1X3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0xODEtXHRzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyA9IGRldi1cdTAwM2VtdDc2Lmh3O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM6MTgyOlx0c3RydWN0IG10NzZfdXNiICp1c2IgPSBcdTAwMjZkZXYtXHUwMDNlbXQ3Ni51c2I7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0xODMtXHRpbnQgZXJyO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTE5OC1cdC8qIGNoZWNrIGh3IHNnIHN1cHBvcnQgaW4gb3JkZXIgdG8gZW5hYmxlIEFNU0RVICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYzoxOTk6XHRody1cdTAwM2VtYXhfdHhfZnJhZ21lbnRzID0gZGV2LVx1MDAzZW10NzYudXNiLnNnX2VuID8gTVRfVFhfU0dfTUFYX1NJWkUgOiAxO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMjAwLVx0ZXJyID0gbXQ3NngwX3JlZ2lzdGVyX2RldmljZShkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTIxMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jOjIxMzpzdGF0aWMgaW50IG10NzZ4MHVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMjE0LVx0XHRcdCBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMjM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM6MjM2Olx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKFx1MDAyNnVzYl9pbnRmLVx1MDAzZWRldiwgc2l6ZW9mKCpkZXYpLCBcdTAwMjZtdDc2eDB1X29wcyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTIzNy1cdFx0XHRcdCBcdTAwMjZkcnZfb3BzKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0yNTItXHRtdDc2eDAydV9pbml0X21jdShtZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jOjI1MzpcdHJldCA9IG10NzZ1X2luaXQobWRldiwgdXNiX2ludGYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMjU0LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0yOTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYzoyOTI6c3RhdGljIHZvaWQgbXQ3NngwX2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMjkzLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jOjI5NDpcdHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2ID0gdXNiX2dldF9pbnRmZGF0YSh1c2JfaW50Zik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0yOTUtXHRib29sIGluaXRpYWxpemVkID0gdGVzdF9iaXQoTVQ3Nl9TVEFURV9JTklUSUFMSVpFRCwgXHUwMDI2ZGV2LVx1MDAzZW1waHkuc3RhdGUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTMwNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jOjMwODpzdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIG10NzZ4MF9zdXNwZW5kKHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50ZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTMwOS1cdFx0XHRcdFx0IHBtX21lc3NhZ2VfdCBzdGF0ZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTMxMC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYzozMTE6XHRzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiA9IHVzYl9nZXRfaW50ZmRhdGEodXNiX2ludGYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMzEyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTMxOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jOjMyMDpzdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIG10NzZ4MF9yZXN1bWUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMzIxLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jOjMyMjpcdHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2ID0gdXNiX2dldF9pbnRmZGF0YSh1c2JfaW50Zik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0zMjMtXHRpbnQgcmV0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYl9tY3UuYy0xMC0jaW5jbHVkZSBcJiMzNDttY3UuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiX21jdS5jOjExOiNpbmNsdWRlIFwmIzM0Oy4uL210NzZ4MDJfdXNiLmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYl9tY3UuYy0xMi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfYmVhY29uLmM9MjY9bXQ3NngwMl93cml0ZV9iZWFjb24oc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIGludCBvZmZzZXQsIHN0cnVjdCBza19idWZmICpza2IpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX2JlYWNvbi5jLTM1LVx0ICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfYmVhY29uLmM6MzY6XHRpZiAobXQ3Nl9pc191c2IoXHUwMDI2ZGV2LVx1MDAzZW10NzYpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfYmVhY29uLmMtMzctXHRcdHN0cnVjdCBtdDc2eDAyX3R4d2kgKnR4d2k7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3VzYl9jb3JlLmMtNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91c2JfY29yZS5jOjY6I2luY2x1ZGUgXCYjMzQ7bXQ3NngwMl91c2IuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3VzYl9jb3JlLmMtNy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXNiX21jdS5jLTEwLSNpbmNsdWRlIFwmIzM0O210NzZ4MDJfbWN1LmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91c2JfbWN1LmM6MTE6I2luY2x1ZGUgXCYjMzQ7bXQ3NngwMl91c2IuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3VzYl9tY3UuYy0xMi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXNiX21jdS5jPTIxPW10NzZ4MDJ1X211bHRpcGxlX21jdV9yZWFkcyhzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgdTggKmRhdGEsIGludCBsZW4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXNiX21jdS5jLTIyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91c2JfbWN1LmM6MjM6XHRzdHJ1Y3QgbXQ3Nl91c2IgKnVzYiA9IFx1MDAyNmRldi1cdTAwM2V1c2I7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXNiX21jdS5jLTI0LVx0aW50IGk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3VzYl9tY3UuYz0zNz1zdGF0aWMgaW50IG10NzZ4MDJ1X21jdV93YWl0X3Jlc3Aoc3RydWN0IG10NzZfZGV2ICpkZXYsIHU4IHNlcSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91c2JfbWN1LmMtMzgte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3VzYl9tY3UuYzozOTpcdHN0cnVjdCBtdDc2X3VzYiAqdXNiID0gXHUwMDI2ZGV2LVx1MDAzZXVzYjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91c2JfbWN1LmMtNDAtXHR1OCAqZGF0YSA9IHVzYi1cdTAwM2VtY3UuZGF0YTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXNiX21jdS5jPTE2Nj1tdDc2eDAydV9tY3VfcmRfcnAoc3RydWN0IG10NzZfZGV2ICpkZXYsIHUzMiBiYXNlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91c2JfbWN1LmMtMTcwLVx0Y29uc3QgaW50IG1heF92YWxzX3Blcl9jbWQgPSBNVF9JTkJBTkRfUEFDS0VUX01BWF9MRU4gLyA4O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3VzYl9tY3UuYzoxNzE6XHRzdHJ1Y3QgbXQ3Nl91c2IgKnVzYiA9IFx1MDAyNmRldi1cdTAwM2V1c2I7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXNiX21jdS5jLTE3Mi1cdHN0cnVjdCBza19idWZmICpza2I7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3V0aWwuYz0xNDA9aW50IG10NzZ4MDJfaW5pdF9kZXZpY2Uoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3V0aWwuYy0xNTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXRpbC5jOjE1MzpcdGlmIChtdDc2X2lzX3VzYihcdTAwMjZkZXYtXHUwMDNlbXQ3NikpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91dGlsLmMtMTU0LVx0XHRody1cdTAwM2VleHRyYV90eF9oZWFkcm9vbSAmIzQzOz0gc2l6ZW9mKHN0cnVjdCBtdDc2eDAyX3R4d2kpICYjNDM7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3V0aWwuYz00MDY9aW50IG10NzZ4MDJfc2V0X2tleShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgZW51bSBzZXRfa2V5X2NtZCBjbWQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3V0aWwuYy00NDMtXHQgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91dGlsLmM6NDQ0Olx0aWYgKG10NzZfaXNfdXNiKFx1MDAyNmRldi1cdTAwM2VtdDc2KSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91dGlsLmMtNDQ1LVx0ICAgIHZpZi1cdTAwM2V0eXBlID09IE5MODAyMTFfSUZUWVBFX0FQIFx1MDAyNlx1MDAyNlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jLTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYzo5OiNpbmNsdWRlIFwmIzM0Oy4uL210NzZ4MDJfdXNiLmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jLTEwLSNpbmNsdWRlIFwmIzM0O210NzZ4MnUuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jPTEyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBtdDc2eDJ1X2RldmljZV90YWJsZVtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jLTMxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmM6MzI6c3RhdGljIGludCBtdDc2eDJ1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmMtMzMtXHRcdFx0IGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYy05MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jOjkxOnN0YXRpYyB2b2lkIG10NzZ4MnVfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jLTkyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jOjkzOlx0c3RydWN0IG10NzZ4MDJfZGV2ICpkZXYgPSB1c2JfZ2V0X2ludGZkYXRhKGludGYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmMtOTQtXHRzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyA9IG10NzZfaHcoZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYy0xMDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYzoxMDM6c3RhdGljIGludCBfX21heWJlX3VudXNlZCBtdDc2eDJ1X3N1c3BlbmQoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYy0xMDQtXHRcdFx0XHRcdCAgcG1fbWVzc2FnZV90IHN0YXRlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmMtMTA1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jOjEwNjpcdHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2ID0gdXNiX2dldF9pbnRmZGF0YShpbnRmKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jLTEwNy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYy0xMTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYzoxMTM6c3RhdGljIGludCBfX21heWJlX3VudXNlZCBtdDc2eDJ1X3Jlc3VtZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jLTExNC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYzoxMTU6XHRzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiA9IHVzYl9nZXRfaW50ZmRhdGEoaW50Zik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYy0xMTYtXHRpbnQgZXJyO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9pbml0LmMtMTAtI2luY2x1ZGUgXCYjMzQ7Li4vbXQ3NngwMl9waHkuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX2luaXQuYzoxMTojaW5jbHVkZSBcJiMzNDsuLi9tdDc2eDAyX3VzYi5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfaW5pdC5jLTEyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9pbml0LmM9MTkwPWludCBtdDc2eDJ1X3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfaW5pdC5jLTE5Mi1cdHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3ID0gbXQ3Nl9odyhkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX2luaXQuYzoxOTM6XHRzdHJ1Y3QgbXQ3Nl91c2IgKnVzYiA9IFx1MDAyNmRldi1cdTAwM2VtdDc2LnVzYjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9pbml0LmMtMTk0LVx0Ym9vbCB2aHQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX2luaXQuYy0yMTktXHQvKiBjaGVjayBodyBzZyBzdXBwb3J0IGluIG9yZGVyIHRvIGVuYWJsZSBBTVNEVSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX2luaXQuYzoyMjA6XHRody1cdTAwM2VtYXhfdHhfZnJhZ21lbnRzID0gZGV2LVx1MDAzZW10NzYudXNiLnNnX2VuID8gTVRfVFhfU0dfTUFYX1NJWkUgOiAxO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX2luaXQuYy0yMjEtXHRzd2l0Y2ggKGRldi1cdTAwM2VtdDc2LnJldikge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9tYWluLmMtNi0jaW5jbHVkZSBcJiMzNDttdDc2eDJ1LmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9tYWluLmM6NzojaW5jbHVkZSBcJiMzNDsuLi9tdDc2eDAyX3VzYi5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWFpbi5jLTgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX21jdS5jLTktI2luY2x1ZGUgXCYjMzQ7ZWVwcm9tLmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9tY3UuYzoxMDojaW5jbHVkZSBcJiMzNDsuLi9tdDc2eDAyX3VzYi5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWN1LmMtMTEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX21jdS5jPTI4PXN0YXRpYyB2b2lkIG10NzZ4MnVfbWN1X2VuYWJsZV9wYXRjaChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9tY3UuYy0yOS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWN1LmM6MzA6XHRzdHJ1Y3QgbXQ3Nl91c2IgKnVzYiA9IFx1MDAyNmRldi1cdTAwM2VtdDc2LnVzYjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9tY3UuYy0zMS1cdHN0YXRpYyBjb25zdCB1OCBkYXRhW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX21jdS5jPTQzPXN0YXRpYyB2b2lkIG10NzZ4MnVfbWN1X3Jlc2V0X3dtdChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9tY3UuYy00NC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWN1LmM6NDU6XHRzdHJ1Y3QgbXQ3Nl91c2IgKnVzYiA9IFx1MDAyNmRldi1cdTAwM2VtdDc2LnVzYjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9tY3UuYy00Ni1cdHU4IGRhdGFbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9MTQzPW10NzkyMV9wbV9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTQ3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjE0ODpcdGlmIChtdDc2X2lzX3VzYihcdTAwMjZkZXYtXHUwMDNlbXQ3NikpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTQ5LVx0XHRyZXR1cm4gLUVPUE5PVFNVUFA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTE4OD1tdDc5MjFfZGVlcF9zbGVlcF9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTk0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjE5NTpcdGlmIChtdDc2X2lzX3VzYihcdTAwMjZkZXYtXHUwMDNlbXQ3NikpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTk2LVx0XHRyZXR1cm4gLUVPUE5PVFNVUFA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jPTE3MD1pbnQgbXQ3OTIxX3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0yMDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MjEwOlx0aWYgKCFtdDc2X2lzX3VzYihcdTAwMjZkZXYtXHUwMDNlbXQ3NikgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMjExLVx0ICAgICFpc19tdDc5MDIoXHUwMDI2ZGV2LVx1MDAzZW10NzYpKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM9NjU1PXZvaWQgbXQ3OTIxX21hY19yZXNldF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy02ODAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo2ODE6XHRpZiAoKG10NzZfaXNfc2RpbyhcdTAwMjZkZXYtXHUwMDNlbXQ3NikgfHwgbXQ3Nl9pc191c2IoXHUwMDI2ZGV2LVx1MDAzZW10NzYpKSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTY4Mi1cdCAgICBhdG9taWNfcmVhZChcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5idXNfaHVuZykpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM9NzY5PWludCBtdDc5MjFfdXNiX3NkaW9fdHhfcHJlcGFyZV9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCB2b2lkICp0eHdpX3B0cixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04MDQtXHRwYWQgPSByb3VuZF91cChza2ItXHUwMDNlbGVuLCA0KSAtIHNrYi1cdTAwM2VsZW47XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo4MDU6XHRpZiAobXQ3Nl9pc191c2IobWRldikpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04MDYtXHRcdHBhZCAmIzQzOz0gNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmM9MTM9Ym9vbCBtdDc5MjFfcmVnZF9jbGNfc3VwcG9ydGVkKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jLTE1LVx0aWYgKG10NzkyMV9kaXNhYmxlX2NsYyB8fFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jOjE2Olx0ICAgIG10NzZfaXNfdXNiKFx1MDAyNmRldi1cdTAwM2VtdDc2KSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuYy0xNy1cdFx0cmV0dXJuIGZhbHNlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jPTE1MD1zdGF0aWMgaW50IG10NzkyMXVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jLTE5Ny1cdG9wcy1cdTAwM2VzdG9wID0gbXQ3OTJ4dV9zdG9wO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmM6MTk4Olx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKFx1MDAyNnVzYl9pbnRmLVx1MDAzZWRldiwgc2l6ZW9mKCpkZXYpLCBvcHMsIFx1MDAyNmRydl9vcHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmMtMTk5LVx0aWYgKCFtZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jLTIxMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jOjIxMjpcdHJldCA9IF9fbXQ3NnVfaW5pdChtZGV2LCB1c2JfaW50ZiwgXHUwMDI2YnVzX29wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYy0yMTMtXHRpZiAocmV0IFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz0xODI9bXQ3OTI1X3BtX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xODYtXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNSAwMTowMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTIwNAoJCQkJCQkJb3V0cHV0OiA0OQoJCQkJCQkJdGhvdWdodHM6IDE4MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIHRoZSBNVDc2IFVTQiBEcml2ZXIqKgoKT2theSwgc28gdGhlIE1UNzYgZHJpdmVyIGZhbWlseSBoYXMgVVNCIHN1cHBvcnQg4oCTIHRoYXQmIzM5O3MgYSBrZXkgcGllY2Ugb2YgaW5mb3JtYXRpb24uIFNwZWNpZmljYWxseSwgaXQgc3VwcG9ydHMgYSByYW5nZSBvZiBVU0IgdmFyaWFudHM6IGBtdDc2LXVzYmAsIGBtdDc2eDAyLXVzYmAsIGBtdDc2MTUtdXNiYCwgdGhlIHdob2xlIGxvdC4gVGhpcyBpcyBicmlsbGlhbnQgYmVjYXVzZSBpdCBtZWFucyB3ZSBjYW4gZnV6eiBpdCB1c2luZyBhIFVTQiBnYWRnZXQgc2V0dXAhCgpOb3csIHRoZSBtYWluIHRhcmdldCBmb3IgbW9kaWZpY2F0aW9uIGlzIHRoZSBgX19tdDc2X3NldF9jaGFubmVsYCBmdW5jdGlvbiwgYW5kIEkga25vdyBpdCByZXNpZGVzIHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuY2AgZmlsZS4gTmV4dCwgSSBuZWVkIHRvIGNvbmZpcm0gaWYgdGhhdCBmdW5jdGlvbiBpcyBhY2Nlc3NpYmxlLiBJIHN1c3BlY3QgaXQmIzM5O3MgbGlrZWx5IGEgbWFjODAyMTEgY2FsbGJhY2ssIHNvbWV0aGluZyBhbG9uZyB0aGUgbGluZXMgb2YgYHNldF9jaGFubmVsYC4gTGV0JiMzOTtzIGNvbmZpcm0gdGhhdCBieSBjaGVja2luZyBgbWFjODAyMTEuY2AgZm9yIGNhbGxzIHRvIGBfX210NzZfc2V0X2NoYW5uZWxgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI1IDAxOjAyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O19fbXQ3Nl9zZXRfY2hhbm5lbCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmM9MTAzMD1FWFBPUlRfU1lNQk9MX0dQTChtdDc2X3VwZGF0ZV9zdXJ2ZXkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTEwMzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmM6MTAzMjppbnQgX19tdDc2X3NldF9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtMTAzMy1cdFx0ICAgICAgIGJvb2wgb2ZmY2hhbm5lbClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmM9MTA3Nj1pbnQgbXQ3Nl9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IGNmZzgwMjExX2NoYW5fZGVmICpjaGFuZGVmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy0xMDg0LVx0bXV0ZXhfbG9jayhcdTAwMjZkZXYtXHUwMDNlbXV0ZXgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjEwODU6XHRyZXQgPSBfX210NzZfc2V0X2NoYW5uZWwocGh5LCBjaGFuZGVmLCBvZmZjaGFubmVsKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy0xMDg2LVx0bXV0ZXhfdW5sb2NrKFx1MDAyNmRldi1cdTAwM2VtdXRleCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjUgMDE6MDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjAwMTQKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiA0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzOgoKKipUcmFjaW5nIHRoZSBDYWxsIENoYWluIG9mIGBtdDc2X3NldF9jaGFubmVsYCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYF9fbXQ3Nl9zZXRfY2hhbm5lbGAsIHdoaWNoIGlzIHByZXR0eSBjbGVhcmx5IGEgbG93LWxldmVsIGZ1bmN0aW9uIHJlbGF0ZWQgdG8gY2hhbm5lbCBjb25maWd1cmF0aW9uIHdpdGhpbiB0aGUgbXQ3NiB3aXJlbGVzcyBkcml2ZXIuIE15IGluc3RpbmN0IGlzIHRvIHRyYWNlIGJhY2sgdGhlIGNhbGwgc3RhY2suIFNwZWNpZmljYWxseSwgSSYjMzk7bSBub3RpbmcgdGhhdCBgX19tdDc2X3NldF9jaGFubmVsYCBpcyBjYWxsZWQgYnkgYG10NzZfc2V0X2NoYW5uZWxgLiBOb3csIGxldCYjMzk7cyBzZWUgd2hlcmUgKnRoYXQqIGZ1bmN0aW9uLCBgbXQ3Nl9zZXRfY2hhbm5lbGAsIGlzIGFjdHVhbGx5ICp1c2VkKi4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGhpZ2hlci1sZXZlbCBjb250ZXh0LCB0aGUgaW5pdGlhdGluZyBmdW5jdGlvbiBjYWxscywgYW5kIHRoZSB0eXBpY2FsIGZsb3cgdG8gaGF2ZSBhbnkgaWRlYSBob3cgdG8gZGVidWcgb3IgbW9kaWZ5IGl0LiBUaGF0IHdpbGwgcHJvdmlkZSBhIGNyaXRpY2FsIGNsdWUgYWJvdXQgdGhlIGNvbnRyb2wgZmxvdy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNSAwMTowMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc2X3NldF9jaGFubmVsJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9jaGFubmVsLmM9MjI9bXQ3Nl9waHlfdXBkYXRlX2NoYW5uZWwoc3RydWN0IG10NzZfcGh5ICpwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9jaGFubmVsLmMtMjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2NoYW5uZWwuYzoyOTpcdHJldHVybiBfX210NzZfc2V0X2NoYW5uZWwocGh5LCBcdTAwMjZwaHktXHUwMDNlbWFpbl9jaGFuZGVmLCBmYWxzZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2NoYW5uZWwuYy0zMC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9jaGFubmVsLmM9MzEzPXZvaWQgbXQ3Nl9yb2NfY29tcGxldGUoc3RydWN0IG10NzZfcGh5ICpwaHkpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9jaGFubmVsLmMtMzI0LVx0ICAgICF0ZXN0X2JpdChNVDc2X01DVV9SRVNFVCwgXHUwMDI2ZGV2LVx1MDAzZXBoeS5zdGF0ZSkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvY2hhbm5lbC5jOjMyNTpcdFx0X19tdDc2X3NldF9jaGFubmVsKHBoeSwgXHUwMDI2cGh5LVx1MDAzZW1haW5fY2hhbmRlZiwgZmFsc2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9jaGFubmVsLmMtMzI2LVx0XHRtdDc2X29mZmNoYW5uZWxfbm90aWZ5KHBoeSwgZmFsc2UpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvY2hhbm5lbC5jPTM1Nz1pbnQgbXQ3Nl9yZW1haW5fb25fY2hhbm5lbChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2NoYW5uZWwuYy0zOTQtXHRcdG10NzZfb2ZmY2hhbm5lbF9ub3RpZnkocGh5LCB0cnVlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvY2hhbm5lbC5jOjM5NTpcdHJldCA9IF9fbXQ3Nl9zZXRfY2hhbm5lbChwaHksIFx1MDAyNmNoYW5kZWYsIG9mZmNoYW5uZWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9jaGFubmVsLmMtMzk2LVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYz0xMDMwPUVYUE9SVF9TWU1CT0xfR1BMKG10NzZfdXBkYXRlX3N1cnZleSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtMTAzMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYzoxMDMyOmludCBfX210NzZfc2V0X2NoYW5uZWwoc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiAqY2hhbmRlZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy0xMDMzLVx0XHQgICAgICAgYm9vbCBvZmZjaGFubmVsKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy0xMDc1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjEwNzY6aW50IG10NzZfc2V0X2NoYW5uZWwoc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiAqY2hhbmRlZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy0xMDc3LVx0XHQgICAgIGJvb2wgb2ZmY2hhbm5lbClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtMTA4NC1cdG11dGV4X2xvY2soXHUwMDI2ZGV2LVx1MDAzZW11dGV4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYzoxMDg1Olx0cmV0ID0gX19tdDc2X3NldF9jaGFubmVsKHBoeSwgY2hhbmRlZiwgb2ZmY2hhbm5lbCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtMTA4Ni1cdG11dGV4X3VubG9jayhcdTAwMjZkZXYtXHUwMDNlbXV0ZXgpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYz0xMDkxPWludCBtdDc2X3VwZGF0ZV9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqcGh5KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy0xMDk4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjEwOTk6XHRyZXR1cm4gbXQ3Nl9zZXRfY2hhbm5lbChwaHksIGNoYW5kZWYsIG9mZmNoYW5uZWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTExMDAtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oPTE3OTk9dm9pZCBtdDc2X3F1ZXVlX3R4X2NvbXBsZXRlKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE4MDAtXHRcdFx0ICAgIHN0cnVjdCBtdDc2X3F1ZXVlX2VudHJ5ICplKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjE4MDE6aW50IF9fbXQ3Nl9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IGNmZzgwMjExX2NoYW5fZGVmICpjaGFuZGVmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTgwMi1cdFx0ICAgICAgIGJvb2wgb2ZmY2hhbm5lbCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg9MTgwNT1tdDc2X29mZmNoYW5uZWxfY2hhbmRlZihzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFuLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE4MTQtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTgxNTppbnQgbXQ3Nl9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IGNmZzgwMjExX2NoYW5fZGVmICpjaGFuZGVmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTgxNi1cdFx0ICAgICBib29sIG9mZmNoYW5uZWwpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvc2Nhbi5jPTc9c3RhdGljIHZvaWQgbXQ3Nl9zY2FuX2NvbXBsZXRlKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBib29sIGFib3J0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvc2Nhbi5jLTIwLVx0ICAgICF0ZXN0X2JpdChNVDc2X01DVV9SRVNFVCwgXHUwMDI2ZGV2LVx1MDAzZXBoeS5zdGF0ZSkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvc2Nhbi5jOjIxOlx0XHRtdDc2X3NldF9jaGFubmVsKHBoeSwgXHUwMDI2cGh5LVx1MDAzZW1haW5fY2hhbmRlZiwgZmFsc2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zY2FuLmMtMjItXHRcdG10NzZfb2ZmY2hhbm5lbF9ub3RpZnkocGh5LCBmYWxzZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zY2FuLmM9MTA3PXZvaWQgbXQ3Nl9zY2FuX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvc2Nhbi5jLTEzNS1cdFx0ZGV2LVx1MDAzZXNjYW4uY2hhbiA9IE5VTEw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3NjYW4uYzoxMzY6XHRcdG10NzZfc2V0X2NoYW5uZWwocGh5LCBcdTAwMjZwaHktXHUwMDNlbWFpbl9jaGFuZGVmLCBmYWxzZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3NjYW4uYy0xMzctXHRcdG10NzZfb2ZmY2hhbm5lbF9ub3RpZnkocGh5LCBmYWxzZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zY2FuLmMtMTQ1LVx0XHRtdDc2X29mZmNoYW5uZWxfbm90aWZ5KHBoeSwgdHJ1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3NjYW4uYzoxNDY6XHRtdDc2X3NldF9jaGFubmVsKHBoeSwgXHUwMDI2Y2hhbmRlZiwgb2ZmY2hhbm5lbCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3NjYW4uYy0xNDctXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjUgMDE6MDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjIwOTcKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAxODAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIE1UNzYgQ2hhbm5lbCBTZXR0aW5nIEZ1bmN0aW9ucyBmb3IgVGVzdGFiaWxpdHkqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGhvdyB0aGUgYG10NzZfc2V0X2NoYW5uZWxgIGFuZCBgX19tdDc2X3NldF9jaGFubmVsYCBmdW5jdGlvbnMgYXJlIHVzZWQgaW4gdGhlIE1UNzYgd2lyZWxlc3MgZHJpdmVyLiBJdCBzZWVtcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkOyB0aGV5JiMzOTtyZSBjYWxsZWQgaW4gcmVzcG9uc2UgdG8gdGhlIHVzdWFsIG1hYzgwMjExIGV2ZW50czogc2Nhbm5pbmcgKGBtdDc2X3NjYW5fd29ya2AsIGBtdDc2X3NjYW5fY29tcGxldGVgKSwgY2hhbm5lbCB1cGRhdGVzIChgbXQ3Nl91cGRhdGVfY2hhbm5lbGApLCBhbmQgYWxzbyB0aGluZ3MgbGlrZSByZW1haW5pbmcgb24gYSBzcGVjaWZpYyBjaGFubmVsIChgbXQ3Nl9yZW1haW5fb25fY2hhbm5lbGApLCBST0MgY29tcGxldGlvbiAoYG10NzZfcm9jX2NvbXBsZXRlYCksIGFuZCBkaXJlY3QgUEhZIGNoYW5uZWwgdXBkYXRlcyAoYG10NzZfcGh5X3VwZGF0ZV9jaGFubmVsYCkuIFRoYXQmIzM5O3MgYWxsIHN0YW5kYXJkIG9wZXJhdGluZyBwcm9jZWR1cmUgZm9yIGEgbWFjODAyMTEtY29tcGxpYW50IGRyaXZlciwgbm90aGluZyBwYXJ0aWN1bGFybHkgb3V0IG9mIHRoZSBvcmRpbmFyeSBoZXJlLgoKVGhlIGludGVyZXN0aW5nIHBhcnQsIGZyb20gYSB0ZXN0aW5nIHBlcnNwZWN0aXZlLCBpcyB0aGF0IE1UNzYgaGFzIFVTQiBzdXBwb3J0LiBUaGF0IG1lYW5zIHdlIGNhbiBwb3RlbnRpYWxseSBsZXZlcmFnZSBgZHVtbXlfaGNkYCB3aXRoaW4gc3l6a2FsbGVyIHRvIGVtdWxhdGUgYSBVU0IgZGV2aWNlIGFuZCB0aGVuIHRyaWdnZXIgdGhlc2UgbWFjODAyMTEgb3BlcmF0aW9ucywgcGFydGljdWxhcmx5IHZpYSBgbmw4MDIxMWAuIFRoYXQgd291bGQgZ2l2ZSB1cyBhIGNvbXBsZXRlbHkgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgdG8gdGhvcm91Z2hseSB0ZXN0IGFsbCB0aG9zZSBjaGFubmVsIHNldHRpbmcgYW5kIG1hbmFnZW1lbnQgZnVuY3Rpb25zLiBHaXZlbiB0aGF0IHRoZXkgYXJlIHVzZWQgaW4gc28gbWFueSBkaWZmZXJlbnQgZnVuY3Rpb25zIHdpdGhpbiB0aGUgZHJpdmVyLCBpdCBzaG91bGQgYmUgcXVpdGUgcmVhY2hhYmxlLgoKUmlnaHQsIHNvIHRvIG1ha2UgdGhpcyBoYXBwZW4sIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBmaWd1cmUgb3V0IHdoaWNoIGtlcm5lbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHJlcXVpcmVkIHRvIGVuYWJsZSB0aG9zZSBNVDc2IFVTQiBkcml2ZXJzIGluIHRoZSBmaXJzdCBwbGFjZS4gVGhhdCYjMzk7bGwgYmUgdGhlIHN0YXJ0aW5nIHBvaW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNSAwMTowMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTVQ3Ni4qVVNCJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnPTY9Y29uZmlnIE1UNzZfTEVEU1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoxMjpjb25maWcgTVQ3Nl9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xMy1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnPTIwPWNvbmZpZyBNVDc2eDAyX0xJQlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0yMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyNDpjb25maWcgTVQ3NngwMl9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0yNS1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZz0yMT1jb25maWcgTVQ3NjIyX1dNQUNcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnLTMxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZzozMjpjb25maWcgTVQ3NjYzX1VTQl9TRElPX0NPTU1PTlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZy0zMy1cdHRyaXN0YXRlXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI1IDAxOjAyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyOTkzCgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogNTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYW5hbHlzaXMgb2YgdGhlIHNpdHVhdGlvbjoKCioqSW52ZXN0aWdhdGluZyBNVDc2IERyaXZlciBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBleGFjdCBjb25maWd1cmF0aW9uIG9wdGlvbnMgdGhhdCBhY3RpdmF0ZSB0aGVzZSBNVDc2IHdpcmVsZXNzIGRyaXZlcnMuIEkmIzM5O20gZ29pbmcgdG8gZGl2ZSByaWdodCBpbnRvIHRoZSBgS2NvbmZpZ2AgZmlsZXMgZm9yIHRoZSBNZWRpYXRlayB3aXJlbGVzcyBkcml2ZXJzLiBTcGVjaWZpY2FsbHksIEkmIzM5O2xsIGJlIHN0YXJ0aW5nIHdpdGggYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZ2AsIGFuZCB0aGVuIGJyYW5jaCBvdXQgdG8gbG9vayBhdCB0aGUgbW9yZSBzcGVjaWZpYyBgbXQ3NngwYCBkaXJlY3RvcnkmIzM5O3MgYEtjb25maWdgIGZpbGUgYW5kIG90aGVycyBsaWtlIGl0LiBUaGlzIHNob3VsZCBnaXZlIG1lIHRoZSBncm91bmQgdHJ1dGggb2Ygd2hhdCBmbGFncyBuZWVkIHRvIGJlIHNldCB0byBpbmNsdWRlIHRoZXNlIE1UNzYtYmFzZWQgZHJpdmVycyBpbiBhIGtlcm5lbCBidWlsZC4gSSBleHBlY3QgdG8gZmluZCBzb21lIGludGVyZXN0aW5nIGRlcGVuZGVuY2llcyBhbmQgcG90ZW50aWFsbHkgcGxhdGZvcm0tc3BlY2lmaWMgY29uZmlndXJhdGlvbnMgaW4gdGhlc2UgZmlsZXMgYXMgd2VsbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjUgMDE6MDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1UNzYmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyOmNvbmZpZyBNVDc2X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0zLVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzo2OmNvbmZpZyBNVDc2X0xFRFNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy03LVx0Ym9vbFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoxMjpjb25maWcgTVQ3Nl9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xMy1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTE1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjE2OmNvbmZpZyBNVDc2X1NESU9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xNy1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTE5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjIwOmNvbmZpZyBNVDc2eDAyX0xJQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTIxLVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6MjQ6Y29uZmlnIE1UNzZ4MDJfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjUtXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0yNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyODpjb25maWcgTVQ3Nl9DT05OQUNfTElCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjktXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZz0zNj1jb25maWcgTVQ3OTJ4X1VTQlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0zOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzo0MDpjb25maWcgTVQ3Nl9OUFVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy00MS1cdGJvb2xcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9LY29uZmlnOjI6Y29uZmlnIE1UNzYwM0VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzYwM0UgKFBDSWUpIGFuZCBNVDc2eDggV0xBTiBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZy0yLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZzozOmNvbmZpZyBNVDc2MTVfQ09NTU9OXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnLTQtXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWctNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWc6ODpjb25maWcgTVQ3NjE1RVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZy05LVx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3NjE1RSBhbmQgTVQ3NjYzRSAoUENJZSkgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWctMjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnOjIxOmNvbmZpZyBNVDc2MjJfV01BQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZy0yMi1cdGJvb2wgXCYjMzQ7TVQ3NjIyIChTb0MpIFdNQUMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWctMzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnOjMyOmNvbmZpZyBNVDc2NjNfVVNCX1NESU9fQ09NTU9OXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnLTMzLVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnLTM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZzozNjpjb25maWcgTVQ3NjYzVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZy0zNy1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzY2M1UgKFVTQikgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWctNDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnOjQ3OmNvbmZpZyBNVDc2NjNTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnLTQ4LVx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3NjYzUyAoU0RJTykgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL0tjb25maWc6Mjpjb25maWcgTVQ3NngwX0NPTU1PTlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvS2NvbmZpZy0zLVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9LY29uZmlnLTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9LY29uZmlnOjY6Y29uZmlnIE1UNzZ4MFVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL0tjb25maWctNy1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzZ4MFUgKFVTQikgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL0tjb25maWctMTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9LY29uZmlnOjE5OmNvbmZpZyBNVDc2eDBFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9LY29uZmlnLTIwLVx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3NngwRSAoUENJZSkgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6Mjpjb25maWcgTVQ3NngyX0NPTU1PTlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZy0zLVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnLTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjY6Y29uZmlnIE1UNzZ4MkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWctNy1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzZ4MkUgKFBDSWUpIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnLTE3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoxODpjb25maWcgTVQ3NngyVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZy0xOS1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzZ4MlUgKFVTQikgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNSAwMTowMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTIzOQoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDY5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlVTQiBTdXBwb3J0IGZvciBNVDc2OiBBIFF1aWNrIE1lbnRhbCBDaGVja2xpc3QqKgoKT2theSwgc28gSSYjMzk7bSB0aGlua2luZyBhYm91dCBVU0Igc3VwcG9ydCBmb3IgTVQ3Ni1iYXNlZCBkZXZpY2VzLiBMZXQgbWUgcXVpY2tseSBydW4gdGhyb3VnaCB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgaW4gbXkgaGVhZC4uLiBJIGtub3cgd2UmIzM5O3ZlIGdvdCBhIGZldyBvZiB0aGVtIHRoYXQgYXJlIHByZXR0eSBjb21tb246IE1UNzY2M1UsIE1UNzZ4MFUsIGFuZCBNVDc2eDJVLiBUaG9zZSBhcmUgZGVmaW5pdGVseSBrZXkuCgpIb2xkIG9uLi4uIEkmIzM5O20gcHJldHR5IHN1cmUgdGhlcmUmIzM5O3MgYW4gTVQ3OTIxVSB2YXJpYW50IGFzIHdlbGwsIHJpZ2h0PyBMZXQgbWUganVzdCBkb3VibGUtY2hlY2sgdGhhdC4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJJiMzOTttIG5vdCBtaXNzaW5nIGFueXRoaW5nIGNydWNpYWwgdGhlcmUuIFRpbWUgdG8gcHVsbCB1cCB0aGUgYG10NzkyMS9LY29uZmlnYCBmaWxlIGluIG15IG1lbnRhbCByZXBvc2l0b3J5IGFuZCB2ZXJpZnkgdGhhdCBJJiMzOTttIGluY2x1ZGluZyBldmVyeXRoaW5nIEkgc2hvdWxkIGJlIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNSAwMTowMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTVQ3OTIxJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWc6Mjpjb25maWcgTVQ3OTIxX0NPTU1PTlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0zLVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnOjc6Y29uZmlnIE1UNzkyMUVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctOC1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyMUUgKFBDSWUpIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZzoxNzpjb25maWcgTVQ3OTIxU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0xOC1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyMVMgKFNESU8pIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZzoyODpjb25maWcgTVQ3OTIxVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0yOS1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyMVUgKFVTQikgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNSAwMTowMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTk0NQoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDgwNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIHRoZSBNVDc2IFVTQiBEcml2ZXJzKioKCk9rYXksIHNvIHdlIG5lZWQgdG8gZ2V0IHRoZXNlIE1UNzYgVVNCIGRyaXZlcnMgcmVhZHkgZm9yIGZ1enppbmcuIEkmIzM5O3ZlIGlkZW50aWZpZWQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zOiBgTVQ3NjYzVWAsIGBNVDc2eDBVYCwgYE1UNzZ4MlVgLCBhbmQgYE1UNzkyMVVgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZW5hYmxlIHRoZXNlIGNvbmZpZ3VyYXRpb25zIHRvIGVuc3VyZSB0aGVpciBVU0IgZHJpdmVycyBhcmUgYnVpbHQgYW5kIGFjY2Vzc2libGUgZm9yIGZ1enppbmcuIExldCYjMzk7cyBtYWtlIHN1cmUgdGhvc2UgYXJlIHNlbGVjdGVkLCBhaCB5ZXMsIGBNVDc2X1VTQmAgaXMgc2VsZWN0ZWQgYnkgdGhlc2UuIEFsc28sIHRob3NlIHNlbGVjdCBgTVQ3Nl9DT1JFYCBhbmQgYE1UNzZfVVNCYCAtIGdvb2QsIGdvb2QuIEkgc2hvdWxkIHByb2JhYmx5IGFkZCBgTUFDODAyMTFgLCBldmVuIHRob3VnaCBpdCBpcyBhbHJlYWR5IGVuYWJsZWQsIHRvIHRoZSBsaXN0IGluIGNhc2Ugd2UgbmVlZCBpdCwgYnV0IHRoZSBvdGhlcnMgYXJlIHRoZSBvbmVzIHdlIHJlYWxseSB3YW50LgoKVGhlIHByaW1hcnkgZnVuY3Rpb24gd2UgbmVlZCB0byBmb2N1cyBvdXIgZnV6emluZyBlZmZvcnRzIG9uIGFwcGVhcnMgdG8gYmUgYF9fbXQ3Nl9zZXRfY2hhbm5lbGAsIHNpbmNlIHRoYXQgaXMgdGhlIG1vZGlmaWVkIGZ1bmN0aW9uLiBJIHNob3VsZCBhbHNvIGluY2x1ZGUgYG10NzZfc2V0X2NoYW5uZWxgIGluIG91ciBmdXp6aW5nIHRhcmdldHMsIGFzIHdlbGwuIEFsc28sIGxldCYjMzk7cyBhZGQgYG10NzZfdXBkYXRlX2NoYW5uZWxgLCBgbXQ3Nl9zY2FuX3dvcmtgLCBgbXQ3Nl9zY2FuX2NvbXBsZXRlYCwgYG10NzZfcmVtYWluX29uX2NoYW5uZWxgLCBgbXQ3Nl9yb2NfY29tcGxldGVgLCBhbmQgYG10NzZfcGh5X3VwZGF0ZV9jaGFubmVsYCB0byB0aGF0IGxpc3QsIGJlY2F1c2UgdGhleSBhcmUgcmVsYXRlZC4gWWVwLCBgX19tdDc2X3NldF9jaGFubmVsYCBpcyB0aGUgb25lIG1vZGlmaWVkLCBzbyBsZXQmIzM5O3MgbWFyayBgX19tdDc2X3NldF9jaGFubmVsYCBhbmQgYG10NzZfc2V0X2NoYW5uZWxgIGFzIG91ciBwcmltYXJ5IGBGb2N1c1N5bWJvbHNgLgoKTGV0JiMzOTtzIHF1aWNrbHkgcmV2aWV3IHRoZSBwYXRjaCBhZ2Fpbi4uLiByaWdodCwgc28gdGhlIGNoYW5nZSBpcyBhZGRpbmcgYSB0aW1lb3V0IGNoZWNrIHRvIHRoZSBgd2FpdF9ldmVudF90aW1lb3V0YCBjYWxsIGluIGBfX210NzZfc2V0X2NoYW5uZWxgLiBJZiB0aGUgdGltZW91dCBleHBpcmVzLCBpdCBub3cgZXhpdHMgZWFybHksIHdoZXJlYXMgYmVmb3JlIGl0IHdvdWxkIGhhdmUgY29udGludWVkLiBUaGlzIHByZXZlbnRzIGEgcG90ZW50aWFsIGhhbmcgb3IgaXNzdWUgaWYgdGhlIFRYIGlzbiYjMzk7dCBjbGVhciBpbiB0aW1lLiBUaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSBhbmQgYWJzb2x1dGVseSB3YXJyYW50cyBmdXp6aW5nLgoKSSYjMzk7bGwgcXVpY2tseSBkb3VibGUtY2hlY2sgdG8gbWFrZSBzdXJlIHRoZXJlIGFyZW4mIzM5O3QgYW55IG90aGVyIHJlbGV2YW50IFVTQiBjb25maWd1cmF0aW9ucyBmb3IgTVQ3NiB3ZSBzaG91bGQgYmUgYXdhcmUgb2YuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI1IDAxOjAyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNVC4qVSQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc9MzY9Y29uZmlnIE1UNzkyeF9VU0Jcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6NDA6Y29uZmlnIE1UNzZfTlBVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctNDEtXHRib29sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZz0zMj1jb25maWcgTVQ3NjYzX1VTQl9TRElPX0NPTU1PTlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWctMzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnOjM2OmNvbmZpZyBNVDc2NjNVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnLTM3LVx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3NjYzVSAoVVNCKSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvS2NvbmZpZz0yPWNvbmZpZyBNVDc2eDBfQ09NTU9OXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvS2NvbmZpZy01LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvS2NvbmZpZzo2OmNvbmZpZyBNVDc2eDBVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9LY29uZmlnLTctXHR0cmlzdGF0ZSBcJiMzNDtNZWRpYVRlayBNVDc2eDBVIChVU0IpIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnPTY9Y29uZmlnIE1UNzZ4MkVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnLTE3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoxODpjb25maWcgTVQ3NngyVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZy0xOS1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzZ4MlUgKFVTQikgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWc9MTc9Y29uZmlnIE1UNzkyMVNcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZzoyODpjb25maWcgTVQ3OTIxVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0yOS1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyMVUgKFVTQikgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWc9Nz1jb25maWcgTVQ3OTI1RVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWctMTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnOjE5OmNvbmZpZyBNVDc5MjVVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnLTIwLVx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3OTI1VSAoVVNCKSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZz0yPWNvbmZpZyBNVDc5OTZFXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy0xNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6MTY6Y29uZmlnIE1UNzk5Nl9OUFVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctMTctXHRib29sIFwmIzM0O01UNzk5NiAoUENJZSkgTlBVIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjUgMDE6MDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjgyMTUKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAyNDUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIFVTQiBXaS1GaSBEcml2ZXIgQ29uZmlndXJhdGlvbnMqKgoKT2theSwgc28gSSBzZWUgYE1UNzkyNVVgIGlzIGFsc28gaW4gdGhlIG1peC4gUmlnaHQsIEkgbmVlZCB0byBtYWtlIGEgbm90ZSBvZiB3aGljaCBjb25maWd1cmF0aW9ucyBJIG5lZWQgdG8gZW5hYmxlLiBCYXNlZCBvbiB0aGUgcHJlc2VuY2Ugb2YgdGhpcyBjaGlwLCBpdCBzZWVtcyB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgYXJlOiBgTVQ3NjYzVWAsIGBNVDc2eDBVYCwgYE1UNzZ4MlVgLCBgTVQ3OTIxVWAsIGFuZCBub3csIGBNVDc5MjVVYC4KCkhtbSwgaG9sZCBvbi4gSXNuJiMzOTt0IGBNVDc2X1VTQmAgYSBjb21tb24gY29uZmlndXJhdGlvbiBmb3IgdGhlc2UgZHJpdmVycz8gUGVyaGFwcyBJIGNhbiBzaW1wbGlmeSB0aGluZ3MgYnkganVzdCBlbmFibGluZyB0aGF0IGluc3RlYWQgb2YgbGlzdGluZyB0aGVtIGFsbCBpbmRpdmlkdWFsbHk/IExldCYjMzk7cyBjaGVjay4gRmlyc3QsIEkgbmVlZCB0byBzZWUgaWYgYE1UNzZfVVNCYCBjYW4gYmUgZW5hYmxlZCBkaXJlY3RseSwgb3IgaWYgaXQmIzM5O3MgZGVwZW5kZW50LgoKSSYjMzk7bGwgY2hlY2sgdGhlIGBLY29uZmlnYCBmaWxlIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWdgLiBBaCwgaGVyZSBpdCBpczoKYGBgCmNvbmZpZyBNVDc2X1VTQgoJdHJpc3RhdGUKYGBgCk9rYXksIHNvIGl0JiMzOTtzIGEgKnRyaXN0YXRlKiBjb25maWcsIGJ1dCB0aGVyZSYjMzk7cyBubyB2aXNpYmxlIHByb21wdC4gVGhhdCBtZWFucyBpdCBjYW4mIzM5O3QgYmUgZW5hYmxlZCBkaXJlY3RseSB0aHJvdWdoIHRoZSB1c2VyIGludGVyZmFjZS4gSXQmIzM5O3Mgb25seSAqc2VsZWN0ZWQqIGJ5IHRoZSBzcGVjaWZpYyBkcml2ZXIgY29uZmlncy4gU28sIGl0IGxvb2tzIGxpa2UgSSBuZWVkIHRvIHN0aWNrIHdpdGggbGlzdGluZyB0aGUgaW5kaXZpZHVhbCBkcml2ZXJzLCBzcGVjaWZpY2FsbHk6IGBNVDc2NjNVYCwgYE1UNzZ4MFVgLCBgTVQ3NngyVWAsIGBNVDc5MjFVYCwgYW5kIGZpbmFsbHksIGBNVDc5MjVVYC4KCkp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLCBsZXQgbWUgZG91YmxlIGNoZWNrIGFnYWluIHRvIG1ha2Ugc3VyZSB0aGF0IGBNVDc2X1VTQmAgZG9lc24mIzM5O3QgaGF2ZSBhIHByb21wdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjUgMDE6MDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1UNzZfVVNCJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnPTY9Y29uZmlnIE1UNzZfTEVEU1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoxMjpjb25maWcgTVQ3Nl9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xMy1cdHRyaXN0YXRlXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI1IDAxOjAzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI4OTc0CgkJCQkJCQlvdXRwdXQ6IDE5OAoJCQkJCQkJdGhvdWdodHM6IDM1NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE1UNzYgVVNCIERyaXZlciBDaGFuZ2VzKioKCk9rYXksIGhlcmUmIzM5O3Mgd2hhdCBJJiMzOTt2ZSBnb3QuIE5vIHNwZWNpZmljIHByb21wdCwganVzdCBkaXZpbmcgaW4uIEZpcnN0LCBJIG5lZWQgdG8gY29uZmlybSB0aGUgcmVsZXZhbnQgVVNCIGRyaXZlcnMgd2l0aGluIE1UNzYuIExvb2tzIGxpa2UgYE1UNzZ4MDJfVVNCYCBhbmQgYE1UNzkyeF9VU0JgIGFyZSB0aGUgb25lcyB0byBjb25zaWRlciwgbm8gc3BlY2lmaWMgcHJvbXB0cyBhdHRhY2hlZCB0byB0aGVtIGVpdGhlci4KClNvLCB0aGUga2V5IGNvbmZpZ3MgSSYjMzk7bSBsb29raW5nIGF0IGFyZTogYE1UNzY2M1VgLCBgTVQ3NngwVWAsIGBNVDc2eDJVYCwgYE1UNzkyMVVgLCBhbmQgYE1UNzkyNVVgLiBUaGF04oCZcyBteSB3b3JraW5nIGxpc3QuCgpUaGUgY3JpdGljYWwgc3ltYm9scyBJJiMzOTttIGZvY3VzaW5nIG9uIGhlcmUgYXJlIGBfX210NzZfc2V0X2NoYW5uZWxgIGFuZCBgbXQ3Nl9zZXRfY2hhbm5lbGAuCgpUaGUgY29yZSBvZiB0aGlzIHBhdGNoIHNlZW1zIHRvIGJlIGFkZGluZyBhIHRpbWVvdXQgY2hlY2sgd2l0aGluIGBfX210NzZfc2V0X2NoYW5uZWxgIHVzaW5nIGB3YWl0X2V2ZW50X3RpbWVvdXRgLiBUaGlzIHByZXZlbnRzIHRoZSBzeXN0ZW0gZnJvbSBoYW5naW5nIGlmIFRYIG9wZXJhdGlvbnMgYXJlIHN0aWxsIHBlbmRpbmcgd2hlbiB0aGUgY2hhbm5lbCBpcyBiZWluZyBjaGFuZ2VkLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgaW1wcm92ZW1lbnQgaW4gdGhlIE1UNzYgbWFjODAyMTEgZHJpdmVyLiBUaGlzIGlzIGRlZmluaXRlbHkgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gR2l2ZW4gdGhlc2UgYXJlIFVTQiBkZXZpY2VzLCBhbmQgYmFzZWQgb24gdGhlIE1UNzYgc2VyaWVzLCBJIGFtIGNvbmZpZGVudCB0aGlzIHdvdWxkIHdvcmsgd2l0aCBgZHVtbXlfaGNkYCBhbmQgYG5sODAyMTFgIGNvbW1hbmRzLgoKTm93LCBsZXQgbWUganVzdCBxdWlja2x5IGRvdWJsZS1jaGVjayBgX19tdDc2X3NldF9jaGFubmVsYCB0byBtYWtlIHN1cmUgaXQmIzM5O3Mgbm90IGEgcGVyZm9ybWFuY2UgYm90dGxlbmVjay4gQmFzZWQgb24gbXkgdW5kZXJzdGFuZGluZywgaXQmIzM5O3MgdXNlZCBkdXJpbmcgY2hhbm5lbCBjaGFuZ2VzLCB1cGRhdGVzLCBhbmQgc3RheWluZyBvbiBjaGFubmVsIGZvciBzY2FubmluZyBhbmQgb2ZmLWNoYW5uZWwgb3BlcmF0aW9ucy4gVGhlc2UgYXJlIGNvbnRyb2wgcGF0aCBmdW5jdGlvbnMsIG5vdCBkYXRhIHBhdGggb3BlcmF0aW9ucyBsaWtlIFRYL1JYLiBTbywgYWRkcmVzc2luZyBwb3RlbnRpYWwgdGltZW91dHMgaGVyZSBpcyBjb21wbGV0ZWx5IGFwcHJvcHJpYXRlLiBJdOKAmXMgbm90IHNvbWV0aGluZyB0aGF04oCZcyBsaWtlbHkgdG8gYmUgaW52b2tlZCBjb25zdGFudGx5LgoKQWxyaWdodCwgSSBhbSByZWFkeSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI1IDAxOjAzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNVDc2NjNVJiMzNDssCiAgICAmIzM0O01UNzZ4MFUmIzM0OywKICAgICYjMzQ7TVQ3NngyVSYjMzQ7LAogICAgJiMzNDtNVDc5MjFVJiMzNDssCiAgICAmIzM0O01UNzkyNVUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtfX210NzZfc2V0X2NoYW5uZWwmIzM0OywKICAgICYjMzQ7bXQ3Nl9zZXRfY2hhbm5lbCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgdGltZW91dCBjaGVjayB0byB3YWl0X2V2ZW50X3RpbWVvdXQgaW4gX19tdDc2X3NldF9jaGFubmVsIHRvIHByZXZlbnQgcHJvY2VlZGluZyB3aGVuIFRYIGlzIHN0aWxsIHBlbmRpbmcgYW5kIHRoZSB3YWl0IHRpbWVzIG91dC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBNVDc2IG1hYzgwMjExIGRyaXZlci4gVGhlIGNvZGUgaXMgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB2aWEgdGhlIFVTQiBpbnRlcmZhY2Ugb2YgTVQ3NiBkZXZpY2VzIChlLmcuLCBNVDc2eDBVLCBNVDc2eDJVKSB1c2luZyBkdW1teV9oY2QgYW5kIG5sODAyMTEgY29tbWFuZHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01UNzY2M1UmIzM0OywKICAgICYjMzQ7TVQ3NngwVSYjMzQ7LAogICAgJiMzNDtNVDc2eDJVJiMzNDssCiAgICAmIzM0O01UNzkyMVUmIzM0OywKICAgICYjMzQ7TVQ3OTI1VSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O19fbXQ3Nl9zZXRfY2hhbm5lbCYjMzQ7LAogICAgJiMzNDttdDc2X3NldF9jaGFubmVsJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSB0aW1lb3V0IGNoZWNrIHRvIHdhaXRfZXZlbnRfdGltZW91dCBpbiBfX210NzZfc2V0X2NoYW5uZWwgdG8gcHJldmVudCBwcm9jZWVkaW5nIHdoZW4gVFggaXMgc3RpbGwgcGVuZGluZyBhbmQgdGhlIHdhaXQgdGltZXMgb3V0LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIE1UNzYgbWFjODAyMTEgZHJpdmVyLiBUaGUgY29kZSBpcyByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSB0aGUgVVNCIGludGVyZmFjZSBvZiBNVDc2IGRldmljZXMgKGUuZy4sIE1UNzZ4MFUsIE1UNzZ4MlUpIHVzaW5nIGR1bW15X2hjZCBhbmQgbmw4MDIxMSBjb21tYW5kcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI1VDAxOjAyOjE2LjUxODcxODY3NVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUzNjM1NTA1MTQwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1UNzY2M1VcIixcbiAgICBcIk1UNzZ4MFVcIixcbiAgICBcIk1UNzZ4MlVcIixcbiAgICBcIk1UNzkyMVVcIixcbiAgICBcIk1UNzkyNVVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJfX210NzZfc2V0X2NoYW5uZWxcIixcbiAgICBcIm10NzZfc2V0X2NoYW5uZWxcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgdGltZW91dCBjaGVjayB0byB3YWl0X2V2ZW50X3RpbWVvdXQgaW4gX19tdDc2X3NldF9jaGFubmVsIHRvIHByZXZlbnQgcHJvY2VlZGluZyB3aGVuIFRYIGlzIHN0aWxsIHBlbmRpbmcgYW5kIHRoZSB3YWl0IHRpbWVzIG91dC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBNVDc2IG1hYzgwMjExIGRyaXZlci4gVGhlIGNvZGUgaXMgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB2aWEgdGhlIFVTQiBpbnRlcmZhY2Ugb2YgTVQ3NiBkZXZpY2VzIChlLmcuLCBNVDc2eDBVLCBNVDc2eDJVKSB1c2luZyBkdW1teV9oY2QgYW5kIG5sODAyMTEgY29tbWFuZHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI1VDAxOjAyOjE2LjUxODcyNTgyNVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDk4MTE4MTY4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMjExODZlNzgyM2I5MjQyMGY3MDc2M2NjZDEwOGQ0MDY3MjI0YWFhNVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEp1biAyNSAwMTowMjoxNSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmNcXG5pbmRleCAxM2M0ZThhYmUyODE5MS4uMzc0NzRkNjRjZmVjZGIgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jXFxuQEAgLTEwMzMsNiArMTAzMyw3IEBAIGludCBfX210NzZfc2V0X2NoYW5uZWwoc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiAqY2hhbmRlZixcXG4gXFx0XFx0ICAgICAgIGJvb2wgb2ZmY2hhbm5lbClcXG4ge1xcbiBcXHRzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiA9IHBoeS1cXHUwMDNlZGV2O1xcbitcXHRsb25nIHRpbWVfbGVmdDtcXG4gXFx0aW50IHRpbWVvdXQgPSBIWiAvIDU7XFxuIFxcdGludCByZXQ7XFxuIFxcbkBAIC0xMDQwLDggKzEwNDEsMTMgQEAgaW50IF9fbXQ3Nl9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IGNmZzgwMjExX2NoYW5fZGVmICpjaGFuZGVmLFxcbiBcXHRtdDc2X3R4cV9zY2hlZHVsZV9wZW5kaW5nKHBoeSk7XFxuIFxcbiBcXHRzZXRfYml0KE1UNzZfUkVTRVQsIFxcdTAwMjZwaHktXFx1MDAzZXN0YXRlKTtcXG4tXFx0d2FpdF9ldmVudF90aW1lb3V0KGRldi1cXHUwMDNldHhfd2FpdCwgIW10NzZfaGFzX3R4X3BlbmRpbmcocGh5KSwgdGltZW91dCk7XFxuK1xcdHRpbWVfbGVmdCA9IHdhaXRfZXZlbnRfdGltZW91dChkZXYtXFx1MDAzZXR4X3dhaXQsICFtdDc2X2hhc190eF9wZW5kaW5nKHBoeSksXFxuK1xcdFxcdFxcdFxcdCAgICAgICB0aW1lb3V0KTtcXG4gXFx0bXQ3Nl91cGRhdGVfc3VydmV5KHBoeSk7XFxuK1xcdGlmICghdGltZV9sZWZ0KSB7XFxuK1xcdFxcdHJldCA9IC1FVElNRURPVVQ7XFxuK1xcdFxcdGdvdG8gb3V0O1xcbitcXHR9XFxuIFxcbiBcXHRpZiAocGh5LVxcdTAwM2VjaGFuZGVmLmNoYW4tXFx1MDAzZWNlbnRlcl9mcmVxICE9IGNoYW5kZWYtXFx1MDAzZWNoYW4tXFx1MDAzZWNlbnRlcl9mcmVxIHx8XFxuIFxcdCAgICBwaHktXFx1MDAzZWNoYW5kZWYud2lkdGggIT0gY2hhbmRlZi1cXHUwMDNld2lkdGgpXFxuQEAgLTEwNTksNiArMTA2NSw3IEBAIGludCBfX210NzZfc2V0X2NoYW5uZWwoc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiAqY2hhbmRlZixcXG4gXFxuIFxcdHJldCA9IGRldi1cXHUwMDNlZHJ2LVxcdTAwM2VzZXRfY2hhbm5lbChwaHkpO1xcbiBcXG4rb3V0OlxcbiBcXHRjbGVhcl9iaXQoTVQ3Nl9SRVNFVCwgXFx1MDAyNnBoeS1cXHUwMDNlc3RhdGUpO1xcbiBcXHRtdDc2X3dvcmtlcl9lbmFibGUoXFx1MDAyNmRldi1cXHUwMDNldHhfd29ya2VyKTtcXG4gXFx0bXQ3Nl93b3JrZXJfc2NoZWR1bGUoXFx1MDAyNmRldi1cXHUwMDNldHhfd29ya2VyKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjVUMDE6MDI6MTcuMDE3NzA2MzAzWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MzEzNjUwOTE1MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNVDc2NjNVXCIsXG4gICAgXCJNVDc2eDBVXCIsXG4gICAgXCJNVDc2eDJVXCIsXG4gICAgXCJNVDc5MjFVXCIsXG4gICAgXCJNVDc5MjVVXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiX19tdDc2X3NldF9jaGFubmVsXCIsXG4gICAgXCJtdDc2X3NldF9jaGFubmVsXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIHRpbWVvdXQgY2hlY2sgdG8gd2FpdF9ldmVudF90aW1lb3V0IGluIF9fbXQ3Nl9zZXRfY2hhbm5lbCB0byBwcmV2ZW50IHByb2NlZWRpbmcgd2hlbiBUWCBpcyBzdGlsbCBwZW5kaW5nIGFuZCB0aGUgd2FpdCB0aW1lcyBvdXQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgTVQ3NiBtYWM4MDIxMSBkcml2ZXIuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIHRoZSBVU0IgaW50ZXJmYWNlIG9mIE1UNzYgZGV2aWNlcyAoZS5nLiwgTVQ3NngwVSwgTVQ3NngyVSkgdXNpbmcgZHVtbXlfaGNkIGFuZCBubDgwMjExIGNvbW1hbmRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDIxMTg2ZTc4MjNiOTI0MjBmNzA3NjNjY2QxMDhkNDA2NzIyNGFhYTVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1biAyNSAwMTowMjoxNSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuY1xuaW5kZXggMTNjNGU4YWJlMjgxOTEuLjM3NDc0ZDY0Y2ZlY2RiIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmNcbkBAIC0xMDMzLDYgKzEwMzMsNyBAQCBpbnQgX19tdDc2X3NldF9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWYsXG4gXHRcdCAgICAgICBib29sIG9mZmNoYW5uZWwpXG4ge1xuIFx0c3RydWN0IG10NzZfZGV2ICpkZXYgPSBwaHktXHUwMDNlZGV2O1xuK1x0bG9uZyB0aW1lX2xlZnQ7XG4gXHRpbnQgdGltZW91dCA9IEhaIC8gNTtcbiBcdGludCByZXQ7XG4gXG5AQCAtMTA0MCw4ICsxMDQxLDEzIEBAIGludCBfX210NzZfc2V0X2NoYW5uZWwoc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiAqY2hhbmRlZixcbiBcdG10NzZfdHhxX3NjaGVkdWxlX3BlbmRpbmcocGh5KTtcbiBcbiBcdHNldF9iaXQoTVQ3Nl9SRVNFVCwgXHUwMDI2cGh5LVx1MDAzZXN0YXRlKTtcbi1cdHdhaXRfZXZlbnRfdGltZW91dChkZXYtXHUwMDNldHhfd2FpdCwgIW10NzZfaGFzX3R4X3BlbmRpbmcocGh5KSwgdGltZW91dCk7XG4rXHR0aW1lX2xlZnQgPSB3YWl0X2V2ZW50X3RpbWVvdXQoZGV2LVx1MDAzZXR4X3dhaXQsICFtdDc2X2hhc190eF9wZW5kaW5nKHBoeSksXG4rXHRcdFx0XHQgICAgICAgdGltZW91dCk7XG4gXHRtdDc2X3VwZGF0ZV9zdXJ2ZXkocGh5KTtcbitcdGlmICghdGltZV9sZWZ0KSB7XG4rXHRcdHJldCA9IC1FVElNRURPVVQ7XG4rXHRcdGdvdG8gb3V0O1xuK1x0fVxuIFxuIFx0aWYgKHBoeS1cdTAwM2VjaGFuZGVmLmNoYW4tXHUwMDNlY2VudGVyX2ZyZXEgIT0gY2hhbmRlZi1cdTAwM2VjaGFuLVx1MDAzZWNlbnRlcl9mcmVxIHx8XG4gXHQgICAgcGh5LVx1MDAzZWNoYW5kZWYud2lkdGggIT0gY2hhbmRlZi1cdTAwM2V3aWR0aClcbkBAIC0xMDU5LDYgKzEwNjUsNyBAQCBpbnQgX19tdDc2X3NldF9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWYsXG4gXG4gXHRyZXQgPSBkZXYtXHUwMDNlZHJ2LVx1MDAzZXNldF9jaGFubmVsKHBoeSk7XG4gXG4rb3V0OlxuIFx0Y2xlYXJfYml0KE1UNzZfUkVTRVQsIFx1MDAyNnBoeS1cdTAwM2VzdGF0ZSk7XG4gXHRtdDc2X3dvcmtlcl9lbmFibGUoXHUwMDI2ZGV2LVx1MDAzZXR4X3dvcmtlcik7XG4gXHRtdDc2X3dvcmtlcl9zY2hlZHVsZShcdTAwMjZkZXYtXHUwMDNldHhfd29ya2VyKTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI1VDAxOjAyOjE3LjAxNzcwNzkwM1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY0ODA3NDU0NDIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgYSBUaW1lb3V0IFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuY2AuIFNwZWNpZmljYWxseSwgaXQncyBtb2RpZnlpbmcgdGhlIGBfX210NzZfc2V0X2NoYW5uZWxgIGZ1bmN0aW9uLCBhZGRpbmcgYSB0aW1lb3V0IGNoZWNrIHdpdGhpbiBgd2FpdF9ldmVudF90aW1lb3V0YC4gSWYgdGhlIHRpbWVvdXQgZXhwaXJlcywgaXQgcmV0dXJucyBgLUVUSU1FRE9VVGAgYW5kIGp1bXBzIHRvIHRoZSBgb3V0OmAgbGFiZWwuIE15IGluaXRpYWwgdGhvdWdodCBpcywgY2FuIHdlIGV2ZW4gKnJlYWNoKiB0aGlzIGNvZGUgaW4gb3VyIGZ1enppbmcgZW52aXJvbm1lbnQ/XG5cblNpbmNlIGl0J3MgYSBkcml2ZXIgZm9yIE1lZGlhdGVrIE1UNzYgd2lyZWxlc3MgZGV2aWNlcywgbXkgZXhwZXJpZW5jZSBpbW1lZGlhdGVseSBmbGFncyBhIHBvdGVudGlhbCBpc3N1ZS4gVHlwaWNhbGx5LCB0aGVzZSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXJzIGFyZW4ndCBlYXNpbHkgYWNjZXNzaWJsZSB3aXRoaW4gdmlydHVhbGl6YXRpb24gZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIHVubGVzcyB3ZSdyZSBkZWFsaW5nIHdpdGggc29mdHdhcmUgZW11bGF0aW9uIG9yIFBDSSBwYXNzdGhyb3VnaC4gQnV0IGBtYWM4MDIxMV9od3NpbWAgc2ltdWxhdGVzICpnZW5lcmljKiBtYWM4MDIxMSBkZXZpY2VzLCBub3Qgc29tZXRoaW5nIGFzIHNwZWNpZmljIGFzIGFuIE1UNzYgY2hpcC4gSXMgdGhlcmUgYW4gTVQ3NiBlbXVsYXRvciBvdXQgdGhlcmU/IFByb2JhYmx5IG5vdC5cblxuU28sIHRoZSBjaGFuY2VzIG9mIHRoaXMgdGltZW91dCBjb2RlIGJlaW5nIGRpcmVjdGx5IGV4ZXJjaXNlZCBpbiBvdXIgY3VycmVudCBmdXp6aW5nIHNldHVwIHNlZW0gbG93LiBIb3dldmVyLCBJIGNhbid0IGJlIHRvbyBzdXJlIHdpdGhvdXQgYSBkb3VibGUtY2hlY2suIEkgbmVlZCB0byBpbnZlc3RpZ2F0ZSBpZiB0aGVyZSdzIGFueSBraW5kIG9mIHZpcnR1YWwgb3IgVVNCIGludGVyZmFjZSBhc3NvY2lhdGVkIHdpdGggTVQ3NiB0aGF0IHdlICpjb3VsZCogZnV6eiB0aHJvdWdoIFVTQiBnYWRnZXQgb3Igc29tZXRoaW5nIHNpbWlsYXIuIEFoLCB5ZXMsIEkgcmVjYWxsIE1UNzYgZG9lcyBoYXZlIFVTQiBkcml2ZXJzLCBuYW1lbHkgYG10NzZ4MHVgIGFuZCBgbXQ3NngydWAuIFRoYXQncyBhIGdhbWUtY2hhbmdlciEgVVNCIGRldmljZXMgb3BlbiB0aGUgZG9vciBmb3IgZnV6emluZyB1c2luZyBgZHVtbXlfaGNkYCBvciBzeXprYWxsZXIncyBVU0IgZnV6emluZyBjYXBhYmlsaXRpZXMuIE5vdyBJIG5lZWQgdG8gY29uZmlybSB3aGV0aGVyIHRoZXNlIE1UNzYgVVNCIGRyaXZlcnMgYXJlIGVuYWJsZWQsIG9yIGF0IGxlYXN0IGlmIHdlIGNvdWxkIHBvdGVudGlhbGx5IHVzZSB0aGVtIGZvciBmdXp6aW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjMyLCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzA5LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjVUMDE6MDI6MjMuNDk4NDU1OTE1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYxNDUxODQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzYuKnVzYlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDcwOCBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZT0yPW9iai0kKENPTkZJR19NVDc2X0NPUkUpICs9IG10NzYub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfTVQ3Nl9VU0IpICs9IG10NzYtdXNiLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlLTQtb2JqLSQoQ09ORklHX01UNzZfU0RJTykgKz0gbXQ3Ni1zZGlvLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlPTU9b2JqLSQoQ09ORklHX01UNzZ4MDJfTElCKSArPSBtdDc2eDAyLWxpYi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19NVDc2eDAyX1VTQikgKz0gbXQ3NngwMi11c2Iub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtNy1vYmotJChDT05GSUdfTVQ3Nl9DT05OQUNfTElCKSArPSBtdDc2LWNvbm5hYy1saWIub1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZT0xNz1tdDc2LSQoQ09ORklHX05MODAyMTFfVEVTVE1PREUpICs9IHRlc3Rtb2RlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlLTE4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU6MTk6bXQ3Ni11c2IteSA6PSB1c2IubyB1c2JfdHJhY2Uub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtMjAtbXQ3Ni1zZGlvLXkgOj0gc2Rpby5vIHNkaW9fdHhyeC5vXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlPTI3PW10NzZ4MDItbGliLXkgOj0gbXQ3NngwMl91dGlsLm8gbXQ3NngwMl9tYWMubyBtdDc2eDAyX21jdS5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtMzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZTozMjptdDc2eDAyLXVzYi15IDo9IG10NzZ4MDJfdXNiX21jdS5vIG10NzZ4MDJfdXNiX2NvcmUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtMzMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RlYnVnZnMuYz03ND1zdGF0aWMgaW50IG10NzZfcnhfcXVldWVzX3JlYWQoc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kZWJ1Z2ZzLmMtODItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kZWJ1Z2ZzLmM6ODM6XFx0XFx0cXVldWVkID0gbXQ3Nl9pc191c2IoZGV2KSA/IHEtXFx1MDAzZW5kZXNjIC0gcS1cXHUwMDNlcXVldWVkIDogcS1cXHUwMDNlcXVldWVkO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZGVidWdmcy5jLTg0LVxcdFxcdHNlcV9wcmludGYocywgXFxcIiAlOWQgfCAlOWQgfCAlOWQgfCAlOWQgfFxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oPTk1PXN0cnVjdCBtdDc2X2J1c19vcHMge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTA5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjExMDojZGVmaW5lIG10NzZfaXNfdXNiKGRldikgKChkZXYpLVxcdTAwM2VidXMtXFx1MDAzZXR5cGUgPT0gTVQ3Nl9CVVNfVVNCKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTExMS0jZGVmaW5lIG10NzZfaXNfbW1pbyhkZXYpICgoZGV2KS1cXHUwMDNlYnVzLVxcdTAwM2V0eXBlID09IE1UNzZfQlVTX01NSU8pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaD02NDk9c3RydWN0IG10NzZfbWN1IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTY2Mi0jZGVmaW5lIE1DVV9SRVNQX1VSQl9TSVpFXFx0MTAyNFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjY2MzpzdHJ1Y3QgbXQ3Nl91c2Ige1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTY2NC1cXHRzdHJ1Y3QgbXV0ZXggdXNiX2N0cmxfbXR4O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg9OTIxPXN0cnVjdCBtdDc2X2RldiB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xMDM1LVxcdFxcdHN0cnVjdCBtdDc2X21taW8gbW1pbztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxMDM2OlxcdFxcdHN0cnVjdCBtdDc2X3VzYiB1c2I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTAzNy1cXHRcXHRzdHJ1Y3QgbXQ3Nl9zZGlvIHNkaW87XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaD0xODM4PW10NzZ1X2J1bGtfbXNnKHN0cnVjdCBtdDc2X2RldiAqZGV2LCB2b2lkICpkYXRhLCBpbnQgbGVuLCBpbnQgKmFjdHVhbF9sZW4sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xODQyLVxcdHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2ID0gaW50ZXJmYWNlX3RvX3VzYmRldih1aW50Zik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTg0MzpcXHRzdHJ1Y3QgbXQ3Nl91c2IgKnVzYiA9IFxcdTAwMjZkZXYtXFx1MDAzZXVzYjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xODQ0LVxcdHVuc2lnbmVkIGludCBwaXBlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg9MTg2OD12b2lkIF9fX210NzZ1X3dyKHN0cnVjdCBtdDc2X2RldiAqZGV2LCB1OCByZXEsIHU4IHJlcV90eXBlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE4NjktXFx0XFx0IHUzMiBhZGRyLCB1MzIgdmFsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxODcwOmludCBfX210NzZ1X2luaXQoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE4NzEtXFx0XFx0IHN0cnVjdCBtdDc2X2J1c19vcHMgKm9wcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTg3MjppbnQgbXQ3NnVfaW5pdChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE4NzMtaW50IG10NzZ1X2FsbG9jX21jdV9xdWV1ZShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9NYWtlZmlsZT00PW9iai0kKENPTkZJR19NVDc2MTVFKSArPSBtdDc2MTVlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9NYWtlZmlsZTo1Om9iai0kKENPTkZJR19NVDc2NjNfVVNCX1NESU9fQ09NTU9OKSArPSBtdDc2NjMtdXNiLXNkaW8tY29tbW9uLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9NYWtlZmlsZS02LW9iai0kKENPTkZJR19NVDc2NjNVKSArPSBtdDc2NjN1Lm9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L01ha2VmaWxlPTE2PW10NzYxNWUtJChDT05GSUdfTVQ3NjIyX1dNQUMpICs9IHNvYy5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvTWFrZWZpbGUtMTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvTWFrZWZpbGU6MTg6bXQ3NjYzLXVzYi1zZGlvLWNvbW1vbi15IDo9IHVzYl9zZGlvLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9NYWtlZmlsZToxOTptdDc2NjN1LXkgOj0gdXNiLm8gdXNiX21jdS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvTWFrZWZpbGUtMjAtbXQ3NjYzcy15IDo9IHNkaW8ubyBzZGlvX21jdS5vXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kZWJ1Z2ZzLmM9OTY9bXQ3NjE1X3BtX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jLTEwNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kZWJ1Z2ZzLmM6MTA1OlxcdGlmICghbXQ3NjE1X2Zpcm13YXJlX29mZmxvYWQoZGV2KSB8fCBtdDc2X2lzX3VzYihcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kZWJ1Z2ZzLmMtMTA2LVxcdFxcdHJldHVybiAtRU9QTk9UU1VQUDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oPTM1NT1leHRlcm4gY29uc3QgdTMyIG10NzY2M2VfcmVnX21hcFtfX01UX0JBU0VfTUFYXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaDozNTY6ZXh0ZXJuIGNvbnN0IHUzMiBtdDc2NjNfdXNiX3NkaW9fcmVnX21hcFtfX01UX0JBU0VfTUFYXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaC0zNTctZXh0ZXJuIHN0cnVjdCBwY2lfZHJpdmVyIG10NzYxNV9wY2lfZHJpdmVyO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbXQ3NjE1Lmg9NTQwPXZvaWQgbXQ3NjIyX3RyaWdnZXJfaGlmX2ludChzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2LCBib29sIGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oLTU0Mi0vKiB1c2IgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaDo1NDM6aW50IG10NzY2M191c2Jfc2Rpb190eF9wcmVwYXJlX3NrYihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHZvaWQgKnR4d2lfcHRyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oLTU0NC1cXHRcXHRcXHRcXHQgICBlbnVtIG10NzZfdHhxX2lkIHFpZCwgc3RydWN0IG10NzZfd2NpZCAqd2NpZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oLTU0Ni1cXHRcXHRcXHRcXHQgICBzdHJ1Y3QgbXQ3Nl90eF9pbmZvICp0eF9pbmZvKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaDo1NDc6Ym9vbCBtdDc2NjNfdXNiX3NkaW9fdHhfc3RhdHVzX2RhdGEoc3RydWN0IG10NzZfZGV2ICptZGV2LCB1OCAqdXBkYXRlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaDo1NDg6dm9pZCBtdDc2NjNfdXNiX3NkaW9fdHhfY29tcGxldGVfc2tiKHN0cnVjdCBtdDc2X2RldiAqbWRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaC01NDktXFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgbXQ3Nl9xdWV1ZV9lbnRyeSAqZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbXQ3NjE1Lmg6NTUwOmludCBtdDc2NjNfdXNiX3NkaW9fcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oLTU1MS1pbnQgbXQ3NjYzdV9tY3VfaW5pdChzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYz03Nj1zdGF0aWMgaW50IG10NzY2M3NfcHJvYmUoc3RydWN0IHNkaW9fZnVuYyAqZnVuYyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYy04MS1cXHRcXHQuZHJ2X2ZsYWdzID0gTVRfRFJWX1JYX0RNQV9IRFIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jOjgyOlxcdFxcdC50eF9wcmVwYXJlX3NrYiA9IG10NzY2M191c2Jfc2Rpb190eF9wcmVwYXJlX3NrYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvLmM6ODM6XFx0XFx0LnR4X2NvbXBsZXRlX3NrYiA9IG10NzY2M191c2Jfc2Rpb190eF9jb21wbGV0ZV9za2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jOjg0OlxcdFxcdC50eF9zdGF0dXNfZGF0YSA9IG10NzY2M191c2Jfc2Rpb190eF9zdGF0dXNfZGF0YSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvLmMtODUtXFx0XFx0LnJ4X3NrYiA9IG10NzYxNV9xdWV1ZV9yeF9za2IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvLmMtMTE4LVxcdElOSVRfV09SSyhcXHUwMDI2ZGV2LVxcdTAwM2VtY3Vfd29yaywgbXQ3NjYzc19pbml0X3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYzoxMTk6XFx0ZGV2LVxcdTAwM2VyZWdfbWFwID0gbXQ3NjYzX3VzYl9zZGlvX3JlZ19tYXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jLTEyMC1cXHRkZXYtXFx1MDAzZW9wcyA9IG9wcztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYy0xNTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jOjE1OTpcXHRyZXQgPSBtdDc2NjNfdXNiX3NkaW9fcmVnaXN0ZXJfZGV2aWNlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jLTE2MC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmM9NTc9c3RhdGljIHZvaWQgbXQ3NjYzdV9jb3B5KHN0cnVjdCBtdDc2X2RldiAqZGV2LCB1MzIgb2Zmc2V0LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtNTkte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jOjYwOlxcdHN0cnVjdCBtdDc2X3VzYiAqdXNiID0gXFx1MDAyNmRldi1cXHUwMDNldXNiO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTYxLVxcdGludCByZXQsIGkgPSAwLCBiYXRjaF9sZW47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYz0xMDE9c3RhdGljIHZvaWQgbXQ3NjYzdV9pbml0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMTExLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jOjExMjpzdGF0aWMgaW50IG10NzY2M3VfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTExMy1cXHRcXHRcXHQgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMTE3LVxcdFxcdC5kcnZfZmxhZ3MgPSBNVF9EUlZfUlhfRE1BX0hEUiB8IE1UX0RSVl9IV19NR01UX1RYUSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoxMTg6XFx0XFx0LnR4X3ByZXBhcmVfc2tiID0gbXQ3NjYzX3VzYl9zZGlvX3R4X3ByZXBhcmVfc2tiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jOjExOTpcXHRcXHQudHhfY29tcGxldGVfc2tiID0gbXQ3NjYzX3VzYl9zZGlvX3R4X2NvbXBsZXRlX3NrYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoxMjA6XFx0XFx0LnR4X3N0YXR1c19kYXRhID0gbXQ3NjYzX3VzYl9zZGlvX3R4X3N0YXR1c19kYXRhLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTEyMS1cXHRcXHQucnhfc2tiID0gbXQ3NjE1X3F1ZXVlX3J4X3NrYixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTE0OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoxNDk6XFx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKFxcdTAwMjZ1c2JfaW50Zi1cXHUwMDNlZGV2LCBzaXplb2YoKmRldiksIG9wcywgXFx1MDAyNmRydl9vcHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTE1MC1cXHRpZiAoIW1kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0xNTgtXFx0SU5JVF9XT1JLKFxcdTAwMjZkZXYtXFx1MDAzZW1jdV93b3JrLCBtdDc2NjN1X2luaXRfd29yayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmM6MTU5OlxcdGRldi1cXHUwMDNlcmVnX21hcCA9IG10NzY2M191c2Jfc2Rpb19yZWdfbWFwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTE2MC1cXHRkZXYtXFx1MDAzZW9wcyA9IG9wcztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoxNjE6XFx0cmV0ID0gX19tdDc2dV9pbml0KG1kZXYsIHVzYl9pbnRmLCBcXHUwMDI2YnVzX29wcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMTYyLVxcdGlmIChyZXQgXFx1MDAzYyAwKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMTg1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jOjE4NjpcXHRyZXQgPSBtdDc2NjNfdXNiX3NkaW9fcmVnaXN0ZXJfZGV2aWNlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMTg3LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0yMDAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmM6MjAxOnN0YXRpYyB2b2lkIG10NzY2M3VfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqdXNiX2ludGYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMjAyLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoyMDM6XFx0c3RydWN0IG10NzYxNV9kZXYgKmRldiA9IHVzYl9nZXRfaW50ZmRhdGEodXNiX2ludGYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTIwNC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTIxNi0jaWZkZWYgQ09ORklHX1BNXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmM6MjE3OnN0YXRpYyBpbnQgbXQ3NjYzdV9zdXNwZW5kKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLCBwbV9tZXNzYWdlX3Qgc3RhdGUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMjE4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoyMTk6XFx0c3RydWN0IG10NzYxNV9kZXYgKmRldiA9IHVzYl9nZXRfaW50ZmRhdGEoaW50Zik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMjIwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMjM1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jOjIzNjpzdGF0aWMgaW50IG10NzY2M3VfcmVzdW1lKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTIzNy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmM6MjM4OlxcdHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYgPSB1c2JfZ2V0X2ludGZkYXRhKGludGYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTIzOS1cXHRpbnQgZXJyO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0xNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjE3OmNvbnN0IHUzMiBtdDc2NjNfdXNiX3NkaW9fcmVnX21hcFtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMTgtXFx0W01UX1RPUF9DRkdfQkFTRV1cXHQ9IDB4ODAwMjAwMDAsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTQwLX07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzo0MTpFWFBPUlRfU1lNQk9MX0dQTChtdDc2NjNfdXNiX3NkaW9fcmVnX21hcCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy00Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jPTQzPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzo0NDptdDc2NjNfdXNiX3NkaW9fd3JpdGVfdHh3aShzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtNDUtXFx0XFx0XFx0ICAgZW51bSBtdDc2X3R4cV9pZCBxaWQsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTU1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmM6NTY6c3RhdGljIGludCBtdDc2NjNfdXNiX3NkaW9fc2V0X3JhdGVzKHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy01Ny1cXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBtdDc2MTVfd3RibF9yYXRlX2Rlc2MgKndyZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMTMwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmM6MTMxOnN0YXRpYyB2b2lkIG10NzY2M191c2Jfc2Rpb19yYXRlX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMTMyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMTQ4LVxcdFxcdG10NzYxNV9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzoxNDk6XFx0XFx0bXQ3NjYzX3VzYl9zZGlvX3NldF9yYXRlcyhkZXYsIHdyZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0xNTAtXFx0XFx0bXQ3NjE1X211dGV4X3JlbGVhc2UoZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMTU1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmM6MTU2OmJvb2wgbXQ3NjYzX3VzYl9zZGlvX3R4X3N0YXR1c19kYXRhKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgdTggKnVwZGF0ZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTE1Ny17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTE2NS19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzoxNjY6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NjYzX3VzYl9zZGlvX3R4X3N0YXR1c19kYXRhKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTE2Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjE2ODp2b2lkIG10NzY2M191c2Jfc2Rpb190eF9jb21wbGV0ZV9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMTY5LVxcdFxcdFxcdFxcdCAgICAgc3RydWN0IG10NzZfcXVldWVfZW50cnkgKmUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTE3Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjE3MzpcXHRpZiAobXQ3Nl9pc191c2IobWRldikpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0xNzQtXFx0XFx0aGVhZHJvb20gKz0gTVRfVVNCX0hEUl9TSVpFO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0xNzgtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmM6MTc5OkVYUE9SVF9TWU1CT0xfR1BMKG10NzY2M191c2Jfc2Rpb190eF9jb21wbGV0ZV9za2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMTgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmM6MTgxOmludCBtdDc2NjNfdXNiX3NkaW9fdHhfcHJlcGFyZV9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCB2b2lkICp0eHdpX3B0cixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTE4Mi1cXHRcXHRcXHRcXHQgICBlbnVtIG10NzZfdHhxX2lkIHFpZCwgc3RydWN0IG10NzZfd2NpZCAqd2NpZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMjA2LVxcdHBrdGlkID0gbXQ3Nl90eF9zdGF0dXNfc2tiX2FkZChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LCB3Y2lkLCBza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmM6MjA3OlxcdG10NzY2M191c2Jfc2Rpb193cml0ZV90eHdpKGRldiwgd2NpZCwgcWlkLCBzdGEsIGtleSwgcGt0aWQsIHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzoyMDg6XFx0aWYgKG10NzZfaXNfdXNiKG1kZXYpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0yMDktXFx0XFx0dTMyIGxlbiA9IHNrYi1cXHUwMDNlbGVuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0yMjMtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmM6MjI0OkVYUE9SVF9TWU1CT0xfR1BMKG10NzY2M191c2Jfc2Rpb190eF9wcmVwYXJlX3NrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0yMjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYz0yMjY9c3RhdGljIGludCBtdDc2NjN1X2RtYV9zY2hlZF9pbml0KHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTI3Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjI3ODpzdGF0aWMgaW50IG10NzY2M191c2Jfc2Rpb19pbml0X2hhcmR3YXJlKHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0yNzkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0yODUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzoyODY6XFx0aWYgKG10NzZfaXNfdXNiKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0yODctXFx0XFx0cmV0ID0gbXQ3NjYzdV9kbWFfc2NoZWRfaW5pdChkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0zMDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzozMDY6aW50IG10NzY2M191c2Jfc2Rpb19yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzYxNV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTMwNy17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTMxMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjMxMTpcXHRJTklUX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlcmF0ZV93b3JrLCBtdDc2NjNfdXNiX3NkaW9fcmF0ZV93b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTMxMi1cXHRJTklUX0xJU1RfSEVBRChcXHUwMDI2ZGV2LVxcdTAwM2V3cmRfaGVhZCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTMxNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjMxNTpcXHRlcnIgPSBtdDc2NjNfdXNiX3NkaW9faW5pdF9oYXJkd2FyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMzE2LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTMxOS1cXHRody1cXHUwMDNlZXh0cmFfdHhfaGVhZHJvb20gKz0gTVRfVVNCX1RYRF9TSVpFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmM6MzIwOlxcdGlmIChtdDc2X2lzX3VzYihcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMzIxLVxcdFxcdGh3LVxcdTAwM2VleHRyYV90eF9oZWFkcm9vbSArPSBNVF9VU0JfSERSX1NJWkU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0zMjItXFx0XFx0LyogY2hlY2sgaHcgc2cgc3VwcG9ydCBpbiBvcmRlciB0byBlbmFibGUgQU1TRFUgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jOjMyMzpcXHRcXHRpZiAoZGV2LVxcdTAwM2VtdDc2LnVzYi5zZ19lbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTMyNC1cXHRcXHRcXHRody1cXHUwMDNlbWF4X3R4X2ZyYWdtZW50cyA9IE1UX0hXX1RYUF9NQVhfQlVGX05VTTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMzMzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmM6MzM0OlxcdGlmICghZGV2LVxcdTAwM2VtdDc2LnVzYi5zZ19lbikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYl9zZGlvLmMtMzM1LVxcdFxcdHN0cnVjdCBpZWVlODAyMTFfc3RhX3ZodF9jYXAgKnZodF9jYXA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2Jfc2Rpby5jLTM0Ny19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYzozNDg6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NjYzX3VzYl9zZGlvX3JlZ2lzdGVyX2RldmljZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiX3NkaW8uYy0zNDktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21hYy5jPTM2PWludCBtdDc2X2Nvbm5hY19wbV93YWtlKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3Nl9jb25uYWNfcG0gKnBtKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tYWMuYy0zOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21hYy5jOjQwOlxcdGlmIChtdDc2X2lzX3VzYihkZXYpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWFjLmMtNDEtXFx0XFx0cmV0dXJuIDA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21hYy5jPTYyPXZvaWQgbXQ3Nl9jb25uYWNfcG93ZXJfc2F2ZV9zY2hlZChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWFjLmMtNjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tYWMuYzo2NzpcXHRpZiAobXQ3Nl9pc191c2IoZGV2KSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21hYy5jLTY4LVxcdFxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmM9MjU2Nj1tdDc2X2Nvbm5hY19tY3Vfc2V0X3dvd19jdHJsKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYy0yNjA4LVxcdFxcdHJlcS53b3dfY3RybF90bHYud2FrZXVwX2hpZiA9IFdPV19QQ0lFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmM6MjYwOTpcXHRlbHNlIGlmIChtdDc2X2lzX3VzYihkZXYpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmMtMjYxMC1cXHRcXHRyZXEud293X2N0cmxfdGx2Lndha2V1cF9oaWYgPSBXT1dfVVNCO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYz0yNjE5PWludCBtdDc2X2Nvbm5hY19tY3Vfc2V0X2hpZl9zdXNwZW5kKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBib29sIHN1c3BlbmQsIGJvb2wgd2FpdF9yZXNwKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYy0yNjQ0LVxcdFxcdHJlcS5oZHIuaGlmX3R5cGUgPSAyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmM6MjY0NTpcXHRlbHNlIGlmIChtdDc2X2lzX3VzYihkZXYpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmMtMjY0Ni1cXHRcXHRyZXEuaGRyLmhpZl90eXBlID0gMTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL01ha2VmaWxlPTY9bXQ3NngwLWNvbW1vbi15IDo9IGluaXQubyBtYWluLm8gZWVwcm9tLm8gcGh5Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9NYWtlZmlsZS03LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL01ha2VmaWxlOjg6bXQ3NngwdS15IDo9IHVzYi5vIHVzYl9tY3Uub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL01ha2VmaWxlLTktbXQ3NngwZS15IDo9IHBjaS5vIHBjaV9tY3Uub1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGh5LmM9MTAzPW10NzZ4MF9yZl93cihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgdTMyIG9mZnNldCwgdTggdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BoeS5jLTEwNC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGh5LmM6MTA1OlxcdGlmIChtdDc2X2lzX3VzYihcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BoeS5jLTEwNi1cXHRcXHRzdHJ1Y3QgbXQ3Nl9yZWdfcGFpciBwYWlyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGh5LmM9MTE5PXN0YXRpYyBpbnQgbXQ3NngwX3JmX3JyKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCB1MzIgb2Zmc2V0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGh5LmMtMTIzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BoeS5jOjEyNDpcXHRpZiAobXQ3Nl9pc191c2IoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9waHkuYy0xMjUtXFx0XFx0c3RydWN0IG10NzZfcmVnX3BhaXIgcGFpciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BoeS5jPTkxMz12b2lkIG10NzZ4MF9waHlfc2V0X2NoYW5uZWwoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9waHkuYy05NzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGh5LmM6OTcxOlxcdGlmIChtdDc2X2lzX3VzYihcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BoeS5jLTk3Mi1cXHRcXHRtdDc2eDBfcGh5X2JicF9zZXRfYncoZGV2LCBjaGFuZGVmLVxcdTAwM2V3aWR0aCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0xMS0jaW5jbHVkZSBcXFwibWN1LmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM6MTI6I2luY2x1ZGUgXFxcIi4uL210NzZ4MDJfdXNiLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM9MTQ9c3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIG10NzZ4MF9kZXZpY2VfdGFibGVbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTQ1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jOjQ2OnN0YXRpYyB2b2lkIG10NzZ4MF9pbml0X3VzYl9kbWEoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtNDcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM9MTUxPXN0YXRpYyBpbnQgbXQ3NngwdV9pbml0X2hhcmR3YXJlKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2LCBib29sIHJlc2V0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMTYzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jOjE2NDpcXHRtdDc2eDBfaW5pdF91c2JfZG1hKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMTY1LVxcdGVyciA9IG10NzZ4MF9pbml0X2hhcmR3YXJlKGRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYz0xNzk9c3RhdGljIGludCBtdDc2eDB1X3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTE4MS1cXHRzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyA9IGRldi1cXHUwMDNlbXQ3Ni5odztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYzoxODI6XFx0c3RydWN0IG10NzZfdXNiICp1c2IgPSBcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LnVzYjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0xODMtXFx0aW50IGVycjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTE5OC1cXHQvKiBjaGVjayBodyBzZyBzdXBwb3J0IGluIG9yZGVyIHRvIGVuYWJsZSBBTVNEVSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jOjE5OTpcXHRody1cXHUwMDNlbWF4X3R4X2ZyYWdtZW50cyA9IGRldi1cXHUwMDNlbXQ3Ni51c2Iuc2dfZW4gPyBNVF9UWF9TR19NQVhfU0laRSA6IDE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMjAwLVxcdGVyciA9IG10NzZ4MF9yZWdpc3Rlcl9kZXZpY2UoZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTIxMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYzoyMTM6c3RhdGljIGludCBtdDc2eDB1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50ZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0yMTQtXFx0XFx0XFx0IGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTIzNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYzoyMzY6XFx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKFxcdTAwMjZ1c2JfaW50Zi1cXHUwMDNlZGV2LCBzaXplb2YoKmRldiksIFxcdTAwMjZtdDc2eDB1X29wcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0yMzctXFx0XFx0XFx0XFx0IFxcdTAwMjZkcnZfb3BzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTI1Mi1cXHRtdDc2eDAydV9pbml0X21jdShtZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYzoyNTM6XFx0cmV0ID0gbXQ3NnVfaW5pdChtZGV2LCB1c2JfaW50Zik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMjU0LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0yOTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM6MjkyOnN0YXRpYyB2b2lkIG10NzZ4MF9kaXNjb25uZWN0KHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50ZilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0yOTMte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jOjI5NDpcXHRzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiA9IHVzYl9nZXRfaW50ZmRhdGEodXNiX2ludGYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTI5NS1cXHRib29sIGluaXRpYWxpemVkID0gdGVzdF9iaXQoTVQ3Nl9TVEFURV9JTklUSUFMSVpFRCwgXFx1MDAyNmRldi1cXHUwMDNlbXBoeS5zdGF0ZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0zMDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM6MzA4OnN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgbXQ3NngwX3N1c3BlbmQoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTMwOS1cXHRcXHRcXHRcXHRcXHQgcG1fbWVzc2FnZV90IHN0YXRlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTMxMC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM6MzExOlxcdHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2ID0gdXNiX2dldF9pbnRmZGF0YSh1c2JfaW50Zik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMzEyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMzE5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jOjMyMDpzdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIG10NzZ4MF9yZXN1bWUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTMyMS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM6MzIyOlxcdHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2ID0gdXNiX2dldF9pbnRmZGF0YSh1c2JfaW50Zik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMzIzLVxcdGludCByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2JfbWN1LmMtMTAtI2luY2x1ZGUgXFxcIm1jdS5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYl9tY3UuYzoxMTojaW5jbHVkZSBcXFwiLi4vbXQ3NngwMl91c2IuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2JfbWN1LmMtMTItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfYmVhY29uLmM9MjY9bXQ3NngwMl93cml0ZV9iZWFjb24oc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYsIGludCBvZmZzZXQsIHN0cnVjdCBza19idWZmICpza2IpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfYmVhY29uLmMtMzUtXFx0ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX2JlYWNvbi5jOjM2OlxcdGlmIChtdDc2X2lzX3VzYihcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl9iZWFjb24uYy0zNy1cXHRcXHRzdHJ1Y3QgbXQ3NngwMl90eHdpICp0eHdpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3VzYl9jb3JlLmMtNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXNiX2NvcmUuYzo2OiNpbmNsdWRlIFxcXCJtdDc2eDAyX3VzYi5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91c2JfY29yZS5jLTctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXNiX21jdS5jLTEwLSNpbmNsdWRlIFxcXCJtdDc2eDAyX21jdS5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91c2JfbWN1LmM6MTE6I2luY2x1ZGUgXFxcIm10NzZ4MDJfdXNiLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3VzYl9tY3UuYy0xMi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91c2JfbWN1LmM9MjE9bXQ3NngwMnVfbXVsdGlwbGVfbWN1X3JlYWRzKHN0cnVjdCBtdDc2X2RldiAqZGV2LCB1OCAqZGF0YSwgaW50IGxlbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXNiX21jdS5jLTIyLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXNiX21jdS5jOjIzOlxcdHN0cnVjdCBtdDc2X3VzYiAqdXNiID0gXFx1MDAyNmRldi1cXHUwMDNldXNiO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91c2JfbWN1LmMtMjQtXFx0aW50IGk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXNiX21jdS5jPTM3PXN0YXRpYyBpbnQgbXQ3NngwMnVfbWN1X3dhaXRfcmVzcChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgdTggc2VxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91c2JfbWN1LmMtMzgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91c2JfbWN1LmM6Mzk6XFx0c3RydWN0IG10NzZfdXNiICp1c2IgPSBcXHUwMDI2ZGV2LVxcdTAwM2V1c2I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3VzYl9tY3UuYy00MC1cXHR1OCAqZGF0YSA9IHVzYi1cXHUwMDNlbWN1LmRhdGE7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXNiX21jdS5jPTE2Nj1tdDc2eDAydV9tY3VfcmRfcnAoc3RydWN0IG10NzZfZGV2ICpkZXYsIHUzMiBiYXNlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3VzYl9tY3UuYy0xNzAtXFx0Y29uc3QgaW50IG1heF92YWxzX3Blcl9jbWQgPSBNVF9JTkJBTkRfUEFDS0VUX01BWF9MRU4gLyA4O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91c2JfbWN1LmM6MTcxOlxcdHN0cnVjdCBtdDc2X3VzYiAqdXNiID0gXFx1MDAyNmRldi1cXHUwMDNldXNiO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91c2JfbWN1LmMtMTcyLVxcdHN0cnVjdCBza19idWZmICpza2I7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXRpbC5jPTE0MD1pbnQgbXQ3NngwMl9pbml0X2RldmljZShzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91dGlsLmMtMTUyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91dGlsLmM6MTUzOlxcdGlmIChtdDc2X2lzX3VzYihcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91dGlsLmMtMTU0LVxcdFxcdGh3LVxcdTAwM2VleHRyYV90eF9oZWFkcm9vbSArPSBzaXplb2Yoc3RydWN0IG10NzZ4MDJfdHh3aSkgK1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3V0aWwuYz00MDY9aW50IG10NzZ4MDJfc2V0X2tleShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgZW51bSBzZXRfa2V5X2NtZCBjbWQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXRpbC5jLTQ0My1cXHQgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXRpbC5jOjQ0NDpcXHRpZiAobXQ3Nl9pc191c2IoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NikgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXRpbC5jLTQ0NS1cXHQgICAgdmlmLVxcdTAwM2V0eXBlID09IE5MODAyMTFfSUZUWVBFX0FQIFxcdTAwMjZcXHUwMDI2XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYy04LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jOjk6I2luY2x1ZGUgXFxcIi4uL210NzZ4MDJfdXNiLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmMtMTAtI2luY2x1ZGUgXFxcIm10NzZ4MnUuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jPTEyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBtdDc2eDJ1X2RldmljZV90YWJsZVtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmMtMzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmM6MzI6c3RhdGljIGludCBtdDc2eDJ1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jLTMzLVxcdFxcdFxcdCBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYy05MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYzo5MTpzdGF0aWMgdm9pZCBtdDc2eDJ1X2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmMtOTIte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jOjkzOlxcdHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2ID0gdXNiX2dldF9pbnRmZGF0YShpbnRmKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYy05NC1cXHRzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyA9IG10NzZfaHcoZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jLTEwMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYzoxMDM6c3RhdGljIGludCBfX21heWJlX3VudXNlZCBtdDc2eDJ1X3N1c3BlbmQoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmMtMTA0LVxcdFxcdFxcdFxcdFxcdCAgcG1fbWVzc2FnZV90IHN0YXRlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jLTEwNS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmM6MTA2OlxcdHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2ID0gdXNiX2dldF9pbnRmZGF0YShpbnRmKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYy0xMDctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYy0xMTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmM6MTEzOnN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgbXQ3NngydV9yZXN1bWUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmMtMTE0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYzoxMTU6XFx0c3RydWN0IG10NzZ4MDJfZGV2ICpkZXYgPSB1c2JfZ2V0X2ludGZkYXRhKGludGYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jLTExNi1cXHRpbnQgZXJyO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX2luaXQuYy0xMC0jaW5jbHVkZSBcXFwiLi4vbXQ3NngwMl9waHkuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfaW5pdC5jOjExOiNpbmNsdWRlIFxcXCIuLi9tdDc2eDAyX3VzYi5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9pbml0LmMtMTItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfaW5pdC5jPTE5MD1pbnQgbXQ3NngydV9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfaW5pdC5jLTE5Mi1cXHRzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyA9IG10NzZfaHcoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfaW5pdC5jOjE5MzpcXHRzdHJ1Y3QgbXQ3Nl91c2IgKnVzYiA9IFxcdTAwMjZkZXYtXFx1MDAzZW10NzYudXNiO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9pbml0LmMtMTk0LVxcdGJvb2wgdmh0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX2luaXQuYy0yMTktXFx0LyogY2hlY2sgaHcgc2cgc3VwcG9ydCBpbiBvcmRlciB0byBlbmFibGUgQU1TRFUgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfaW5pdC5jOjIyMDpcXHRody1cXHUwMDNlbWF4X3R4X2ZyYWdtZW50cyA9IGRldi1cXHUwMDNlbXQ3Ni51c2Iuc2dfZW4gPyBNVF9UWF9TR19NQVhfU0laRSA6IDE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX2luaXQuYy0yMjEtXFx0c3dpdGNoIChkZXYtXFx1MDAzZW10NzYucmV2KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWFpbi5jLTYtI2luY2x1ZGUgXFxcIm10NzZ4MnUuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWFpbi5jOjc6I2luY2x1ZGUgXFxcIi4uL210NzZ4MDJfdXNiLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX21haW4uYy04LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX21jdS5jLTktI2luY2x1ZGUgXFxcImVlcHJvbS5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9tY3UuYzoxMDojaW5jbHVkZSBcXFwiLi4vbXQ3NngwMl91c2IuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWN1LmMtMTEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWN1LmM9Mjg9c3RhdGljIHZvaWQgbXQ3NngydV9tY3VfZW5hYmxlX3BhdGNoKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9tY3UuYy0yOS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX21jdS5jOjMwOlxcdHN0cnVjdCBtdDc2X3VzYiAqdXNiID0gXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni51c2I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX21jdS5jLTMxLVxcdHN0YXRpYyBjb25zdCB1OCBkYXRhW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWN1LmM9NDM9c3RhdGljIHZvaWQgbXQ3NngydV9tY3VfcmVzZXRfd210KHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9tY3UuYy00NC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX21jdS5jOjQ1OlxcdHN0cnVjdCBtdDc2X3VzYiAqdXNiID0gXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni51c2I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX21jdS5jLTQ2LVxcdHU4IGRhdGFbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz0xNDM9bXQ3OTIxX3BtX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTE0Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MTQ4OlxcdGlmIChtdDc2X2lzX3VzYihcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTQ5LVxcdFxcdHJldHVybiAtRU9QTk9UU1VQUDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz0xODg9bXQ3OTIxX2RlZXBfc2xlZXBfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTk0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoxOTU6XFx0aWYgKG10NzZfaXNfdXNiKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xOTYtXFx0XFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jPTE3MD1pbnQgbXQ3OTIxX3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTIwOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MjEwOlxcdGlmICghbXQ3Nl9pc191c2IoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NikgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMjExLVxcdCAgICAhaXNfbXQ3OTAyKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYz02NTU9dm9pZCBtdDc5MjFfbWFjX3Jlc2V0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjY4MTpcXHRpZiAoKG10NzZfaXNfc2RpbyhcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSB8fCBtdDc2X2lzX3VzYihcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSkgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy02ODItXFx0ICAgIGF0b21pY19yZWFkKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYuYnVzX2h1bmcpKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM9NzY5PWludCBtdDc5MjFfdXNiX3NkaW9fdHhfcHJlcGFyZV9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCB2b2lkICp0eHdpX3B0cixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTgwNC1cXHRwYWQgPSByb3VuZF91cChza2ItXFx1MDAzZWxlbiwgNCkgLSBza2ItXFx1MDAzZWxlbjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo4MDU6XFx0aWYgKG10NzZfaXNfdXNiKG1kZXYpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTgwNi1cXHRcXHRwYWQgKz0gNDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuYz0xMz1ib29sIG10NzkyMV9yZWdkX2NsY19zdXBwb3J0ZWQoc3RydWN0IG10NzkyeF9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuYy0xNS1cXHRpZiAobXQ3OTIxX2Rpc2FibGVfY2xjIHx8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jOjE2OlxcdCAgICBtdDc2X2lzX3VzYihcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmMtMTctXFx0XFx0cmV0dXJuIGZhbHNlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmM9MTUwPXN0YXRpYyBpbnQgbXQ3OTIxdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqdXNiX2ludGYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYy0xOTctXFx0b3BzLVxcdTAwM2VzdG9wID0gbXQ3OTJ4dV9zdG9wO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jOjE5ODpcXHRtZGV2ID0gbXQ3Nl9hbGxvY19kZXZpY2UoXFx1MDAyNnVzYl9pbnRmLVxcdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgb3BzLCBcXHUwMDI2ZHJ2X29wcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmMtMTk5LVxcdGlmICghbWRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jLTIxMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYzoyMTI6XFx0cmV0ID0gX19tdDc2dV9pbml0KG1kZXYsIHVzYl9pbnRmLCBcXHUwMDI2YnVzX29wcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmMtMjEzLVxcdGlmIChyZXQgXFx1MDAzYyAwKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jPTE4Mj1tdDc5MjVfcG1fc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTg2LVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNVQwMTowMjoyMy41NTk5MTQ2NjNaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NjEzNjY0Mzg4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgdGhlIE1UNzYgVVNCIERyaXZlcioqXG5cbk9rYXksIHNvIHRoZSBNVDc2IGRyaXZlciBmYW1pbHkgaGFzIFVTQiBzdXBwb3J0IOKAkyB0aGF0J3MgYSBrZXkgcGllY2Ugb2YgaW5mb3JtYXRpb24uIFNwZWNpZmljYWxseSwgaXQgc3VwcG9ydHMgYSByYW5nZSBvZiBVU0IgdmFyaWFudHM6IGBtdDc2LXVzYmAsIGBtdDc2eDAyLXVzYmAsIGBtdDc2MTUtdXNiYCwgdGhlIHdob2xlIGxvdC4gVGhpcyBpcyBicmlsbGlhbnQgYmVjYXVzZSBpdCBtZWFucyB3ZSBjYW4gZnV6eiBpdCB1c2luZyBhIFVTQiBnYWRnZXQgc2V0dXAhXG5cbk5vdywgdGhlIG1haW4gdGFyZ2V0IGZvciBtb2RpZmljYXRpb24gaXMgdGhlIGBfX210NzZfc2V0X2NoYW5uZWxgIGZ1bmN0aW9uLCBhbmQgSSBrbm93IGl0IHJlc2lkZXMgd2l0aGluIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jYCBmaWxlLiBOZXh0LCBJIG5lZWQgdG8gY29uZmlybSBpZiB0aGF0IGZ1bmN0aW9uIGlzIGFjY2Vzc2libGUuIEkgc3VzcGVjdCBpdCdzIGxpa2VseSBhIG1hYzgwMjExIGNhbGxiYWNrLCBzb21ldGhpbmcgYWxvbmcgdGhlIGxpbmVzIG9mIGBzZXRfY2hhbm5lbGAuIExldCdzIGNvbmZpcm0gdGhhdCBieSBjaGVja2luZyBgbWFjODAyMTEuY2AgZm9yIGNhbGxzIHRvIGBfX210NzZfc2V0X2NoYW5uZWxgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTIwNCwiT3V0cHV0VG9rZW5zIjo0OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4MywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yNVQwMTowMjoyOC4xNzM1ODE1ODFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ3MDA1NjIzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl9fbXQ3Nl9zZXRfY2hhbm5lbFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jPTEwMzA9RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl91cGRhdGVfc3VydmV5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtMTAzMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmM6MTAzMjppbnQgX19tdDc2X3NldF9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTEwMzMtXFx0XFx0ICAgICAgIGJvb2wgb2ZmY2hhbm5lbClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYz0xMDc2PWludCBtdDc2X3NldF9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtMTA4NC1cXHRtdXRleF9sb2NrKFxcdTAwMjZkZXYtXFx1MDAzZW11dGV4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmM6MTA4NTpcXHRyZXQgPSBfX210NzZfc2V0X2NoYW5uZWwocGh5LCBjaGFuZGVmLCBvZmZjaGFubmVsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtMTA4Ni1cXHRtdXRleF91bmxvY2soXFx1MDAyNmRldi1cXHUwMDNlbXV0ZXgpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNVQwMTowMjoyOC40MjA1OTM4MDVaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MTMwNDgyMjQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzczpcblxuKipUcmFjaW5nIHRoZSBDYWxsIENoYWluIG9mIGBtdDc2X3NldF9jaGFubmVsYCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGBfX210NzZfc2V0X2NoYW5uZWxgLCB3aGljaCBpcyBwcmV0dHkgY2xlYXJseSBhIGxvdy1sZXZlbCBmdW5jdGlvbiByZWxhdGVkIHRvIGNoYW5uZWwgY29uZmlndXJhdGlvbiB3aXRoaW4gdGhlIG10NzYgd2lyZWxlc3MgZHJpdmVyLiBNeSBpbnN0aW5jdCBpcyB0byB0cmFjZSBiYWNrIHRoZSBjYWxsIHN0YWNrLiBTcGVjaWZpY2FsbHksIEknbSBub3RpbmcgdGhhdCBgX19tdDc2X3NldF9jaGFubmVsYCBpcyBjYWxsZWQgYnkgYG10NzZfc2V0X2NoYW5uZWxgLiBOb3csIGxldCdzIHNlZSB3aGVyZSAqdGhhdCogZnVuY3Rpb24sIGBtdDc2X3NldF9jaGFubmVsYCwgaXMgYWN0dWFsbHkgKnVzZWQqLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaGlnaGVyLWxldmVsIGNvbnRleHQsIHRoZSBpbml0aWF0aW5nIGZ1bmN0aW9uIGNhbGxzLCBhbmQgdGhlIHR5cGljYWwgZmxvdyB0byBoYXZlIGFueSBpZGVhIGhvdyB0byBkZWJ1ZyBvciBtb2RpZnkgaXQuIFRoYXQgd2lsbCBwcm92aWRlIGEgY3JpdGljYWwgY2x1ZSBhYm91dCB0aGUgY29udHJvbCBmbG93LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDAxNCwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI1VDAxOjAyOjMzLjU1MTA3ODA2OVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTE1ODg1OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc2X3NldF9jaGFubmVsXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvY2hhbm5lbC5jPTIyPW10NzZfcGh5X3VwZGF0ZV9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqcGh5LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9jaGFubmVsLmMtMjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9jaGFubmVsLmM6Mjk6XFx0cmV0dXJuIF9fbXQ3Nl9zZXRfY2hhbm5lbChwaHksIFxcdTAwMjZwaHktXFx1MDAzZW1haW5fY2hhbmRlZiwgZmFsc2UpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvY2hhbm5lbC5jLTMwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvY2hhbm5lbC5jPTMxMz12b2lkIG10NzZfcm9jX2NvbXBsZXRlKHN0cnVjdCBtdDc2X3BoeSAqcGh5KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9jaGFubmVsLmMtMzI0LVxcdCAgICAhdGVzdF9iaXQoTVQ3Nl9NQ1VfUkVTRVQsIFxcdTAwMjZkZXYtXFx1MDAzZXBoeS5zdGF0ZSkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2NoYW5uZWwuYzozMjU6XFx0XFx0X19tdDc2X3NldF9jaGFubmVsKHBoeSwgXFx1MDAyNnBoeS1cXHUwMDNlbWFpbl9jaGFuZGVmLCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9jaGFubmVsLmMtMzI2LVxcdFxcdG10NzZfb2ZmY2hhbm5lbF9ub3RpZnkocGh5LCBmYWxzZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2NoYW5uZWwuYz0zNTc9aW50IG10NzZfcmVtYWluX29uX2NoYW5uZWwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2NoYW5uZWwuYy0zOTQtXFx0XFx0bXQ3Nl9vZmZjaGFubmVsX25vdGlmeShwaHksIHRydWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvY2hhbm5lbC5jOjM5NTpcXHRyZXQgPSBfX210NzZfc2V0X2NoYW5uZWwocGh5LCBcXHUwMDI2Y2hhbmRlZiwgb2ZmY2hhbm5lbCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9jaGFubmVsLmMtMzk2LVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYz0xMDMwPUVYUE9SVF9TWU1CT0xfR1BMKG10NzZfdXBkYXRlX3N1cnZleSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTEwMzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjEwMzI6aW50IF9fbXQ3Nl9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IGNmZzgwMjExX2NoYW5fZGVmICpjaGFuZGVmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy0xMDMzLVxcdFxcdCAgICAgICBib29sIG9mZmNoYW5uZWwpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtMTA3NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmM6MTA3NjppbnQgbXQ3Nl9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IGNmZzgwMjExX2NoYW5fZGVmICpjaGFuZGVmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy0xMDc3LVxcdFxcdCAgICAgYm9vbCBvZmZjaGFubmVsKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTEwODQtXFx0bXV0ZXhfbG9jayhcXHUwMDI2ZGV2LVxcdTAwM2VtdXRleCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjEwODU6XFx0cmV0ID0gX19tdDc2X3NldF9jaGFubmVsKHBoeSwgY2hhbmRlZiwgb2ZmY2hhbm5lbCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTEwODYtXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZkZXYtXFx1MDAzZW11dGV4KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYz0xMDkxPWludCBtdDc2X3VwZGF0ZV9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqcGh5KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTEwOTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjEwOTk6XFx0cmV0dXJuIG10NzZfc2V0X2NoYW5uZWwocGh5LCBjaGFuZGVmLCBvZmZjaGFubmVsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtMTEwMC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaD0xNzk5PXZvaWQgbXQ3Nl9xdWV1ZV90eF9jb21wbGV0ZShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTgwMC1cXHRcXHRcXHQgICAgc3RydWN0IG10NzZfcXVldWVfZW50cnkgKmUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjE4MDE6aW50IF9fbXQ3Nl9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IGNmZzgwMjExX2NoYW5fZGVmICpjaGFuZGVmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE4MDItXFx0XFx0ICAgICAgIGJvb2wgb2ZmY2hhbm5lbCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaD0xODA1PW10NzZfb2ZmY2hhbm5lbF9jaGFuZGVmKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5uZWwgKmNoYW4sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xODE0LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxODE1OmludCBtdDc2X3NldF9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTgxNi1cXHRcXHQgICAgIGJvb2wgb2ZmY2hhbm5lbCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3NjYW4uYz03PXN0YXRpYyB2b2lkIG10NzZfc2Nhbl9jb21wbGV0ZShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgYm9vbCBhYm9ydClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvc2Nhbi5jLTIwLVxcdCAgICAhdGVzdF9iaXQoTVQ3Nl9NQ1VfUkVTRVQsIFxcdTAwMjZkZXYtXFx1MDAzZXBoeS5zdGF0ZSkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3NjYW4uYzoyMTpcXHRcXHRtdDc2X3NldF9jaGFubmVsKHBoeSwgXFx1MDAyNnBoeS1cXHUwMDNlbWFpbl9jaGFuZGVmLCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zY2FuLmMtMjItXFx0XFx0bXQ3Nl9vZmZjaGFubmVsX25vdGlmeShwaHksIGZhbHNlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvc2Nhbi5jPTEwNz12b2lkIG10NzZfc2Nhbl93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvc2Nhbi5jLTEzNS1cXHRcXHRkZXYtXFx1MDAzZXNjYW4uY2hhbiA9IE5VTEw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zY2FuLmM6MTM2OlxcdFxcdG10NzZfc2V0X2NoYW5uZWwocGh5LCBcXHUwMDI2cGh5LVxcdTAwM2VtYWluX2NoYW5kZWYsIGZhbHNlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3NjYW4uYy0xMzctXFx0XFx0bXQ3Nl9vZmZjaGFubmVsX25vdGlmeShwaHksIGZhbHNlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvc2Nhbi5jLTE0NS1cXHRcXHRtdDc2X29mZmNoYW5uZWxfbm90aWZ5KHBoeSwgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zY2FuLmM6MTQ2OlxcdG10NzZfc2V0X2NoYW5uZWwocGh5LCBcXHUwMDI2Y2hhbmRlZiwgb2ZmY2hhbm5lbCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zY2FuLmMtMTQ3LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNVQwMTowMjozMy42MTAyNDI1OThaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NzUyMTk0NDg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBNVDc2IENoYW5uZWwgU2V0dGluZyBGdW5jdGlvbnMgZm9yIFRlc3RhYmlsaXR5KipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgaG93IHRoZSBgbXQ3Nl9zZXRfY2hhbm5lbGAgYW5kIGBfX210NzZfc2V0X2NoYW5uZWxgIGZ1bmN0aW9ucyBhcmUgdXNlZCBpbiB0aGUgTVQ3NiB3aXJlbGVzcyBkcml2ZXIuIEl0IHNlZW1zIHByZXR0eSBzdHJhaWdodGZvcndhcmQ7IHRoZXkncmUgY2FsbGVkIGluIHJlc3BvbnNlIHRvIHRoZSB1c3VhbCBtYWM4MDIxMSBldmVudHM6IHNjYW5uaW5nIChgbXQ3Nl9zY2FuX3dvcmtgLCBgbXQ3Nl9zY2FuX2NvbXBsZXRlYCksIGNoYW5uZWwgdXBkYXRlcyAoYG10NzZfdXBkYXRlX2NoYW5uZWxgKSwgYW5kIGFsc28gdGhpbmdzIGxpa2UgcmVtYWluaW5nIG9uIGEgc3BlY2lmaWMgY2hhbm5lbCAoYG10NzZfcmVtYWluX29uX2NoYW5uZWxgKSwgUk9DIGNvbXBsZXRpb24gKGBtdDc2X3JvY19jb21wbGV0ZWApLCBhbmQgZGlyZWN0IFBIWSBjaGFubmVsIHVwZGF0ZXMgKGBtdDc2X3BoeV91cGRhdGVfY2hhbm5lbGApLiBUaGF0J3MgYWxsIHN0YW5kYXJkIG9wZXJhdGluZyBwcm9jZWR1cmUgZm9yIGEgbWFjODAyMTEtY29tcGxpYW50IGRyaXZlciwgbm90aGluZyBwYXJ0aWN1bGFybHkgb3V0IG9mIHRoZSBvcmRpbmFyeSBoZXJlLlxuXG5UaGUgaW50ZXJlc3RpbmcgcGFydCwgZnJvbSBhIHRlc3RpbmcgcGVyc3BlY3RpdmUsIGlzIHRoYXQgTVQ3NiBoYXMgVVNCIHN1cHBvcnQuIFRoYXQgbWVhbnMgd2UgY2FuIHBvdGVudGlhbGx5IGxldmVyYWdlIGBkdW1teV9oY2RgIHdpdGhpbiBzeXprYWxsZXIgdG8gZW11bGF0ZSBhIFVTQiBkZXZpY2UgYW5kIHRoZW4gdHJpZ2dlciB0aGVzZSBtYWM4MDIxMSBvcGVyYXRpb25zLCBwYXJ0aWN1bGFybHkgdmlhIGBubDgwMjExYC4gVGhhdCB3b3VsZCBnaXZlIHVzIGEgY29tcGxldGVseSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCB0byB0aG9yb3VnaGx5IHRlc3QgYWxsIHRob3NlIGNoYW5uZWwgc2V0dGluZyBhbmQgbWFuYWdlbWVudCBmdW5jdGlvbnMuIEdpdmVuIHRoYXQgdGhleSBhcmUgdXNlZCBpbiBzbyBtYW55IGRpZmZlcmVudCBmdW5jdGlvbnMgd2l0aGluIHRoZSBkcml2ZXIsIGl0IHNob3VsZCBiZSBxdWl0ZSByZWFjaGFibGUuXG5cblJpZ2h0LCBzbyB0byBtYWtlIHRoaXMgaGFwcGVuLCB0aGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gZmlndXJlIG91dCB3aGljaCBrZXJuZWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSByZXF1aXJlZCB0byBlbmFibGUgdGhvc2UgTVQ3NiBVU0IgZHJpdmVycyBpbiB0aGUgZmlyc3QgcGxhY2UuIFRoYXQnbGwgYmUgdGhlIHN0YXJ0aW5nIHBvaW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjA5NywiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yNVQwMTowMjozOS4zNjI0NDA4MDdaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU4MDUzOTg5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNVDc2LipVU0JcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnPTY9Y29uZmlnIE1UNzZfTEVEU1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTExLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoxMjpjb25maWcgTVQ3Nl9VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMTMtXFx0dHJpc3RhdGVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZz0yMD1jb25maWcgTVQ3NngwMl9MSUJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0yMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6MjQ6Y29uZmlnIE1UNzZ4MDJfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTI1LVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnPTIxPWNvbmZpZyBNVDc2MjJfV01BQ1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZy0zMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnOjMyOmNvbmZpZyBNVDc2NjNfVVNCX1NESU9fQ09NTU9OXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZy0zMy1cXHR0cmlzdGF0ZVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNVQwMTowMjozOS40MjA1MDAzNDZaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzM4MTM3MDg3OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGFuYWx5c2lzIG9mIHRoZSBzaXR1YXRpb246XG5cbioqSW52ZXN0aWdhdGluZyBNVDc2IERyaXZlciBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGV4YWN0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aGF0IGFjdGl2YXRlIHRoZXNlIE1UNzYgd2lyZWxlc3MgZHJpdmVycy4gSSdtIGdvaW5nIHRvIGRpdmUgcmlnaHQgaW50byB0aGUgYEtjb25maWdgIGZpbGVzIGZvciB0aGUgTWVkaWF0ZWsgd2lyZWxlc3MgZHJpdmVycy4gU3BlY2lmaWNhbGx5LCBJJ2xsIGJlIHN0YXJ0aW5nIHdpdGggYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZ2AsIGFuZCB0aGVuIGJyYW5jaCBvdXQgdG8gbG9vayBhdCB0aGUgbW9yZSBzcGVjaWZpYyBgbXQ3NngwYCBkaXJlY3RvcnkncyBgS2NvbmZpZ2AgZmlsZSBhbmQgb3RoZXJzIGxpa2UgaXQuIFRoaXMgc2hvdWxkIGdpdmUgbWUgdGhlIGdyb3VuZCB0cnV0aCBvZiB3aGF0IGZsYWdzIG5lZWQgdG8gYmUgc2V0IHRvIGluY2x1ZGUgdGhlc2UgTVQ3Ni1iYXNlZCBkcml2ZXJzIGluIGEga2VybmVsIGJ1aWxkLiBJIGV4cGVjdCB0byBmaW5kIHNvbWUgaW50ZXJlc3RpbmcgZGVwZW5kZW5jaWVzIGFuZCBwb3RlbnRpYWxseSBwbGF0Zm9ybS1zcGVjaWZpYyBjb25maWd1cmF0aW9ucyBpbiB0aGVzZSBmaWxlcyBhcyB3ZWxsLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjk5MywiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI1VDAxOjAyOjQyLjgwMTg3NTMwM1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTgxMDgxOTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1UNzZcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjI6Y29uZmlnIE1UNzZfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0zLVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6Njpjb25maWcgTVQ3Nl9MRURTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTctXFx0Ym9vbFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTExLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoxMjpjb25maWcgTVQ3Nl9VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMTMtXFx0dHJpc3RhdGVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6MTY6Y29uZmlnIE1UNzZfU0RJT1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xNy1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTE5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyMDpjb25maWcgTVQ3NngwMl9MSUJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjEtXFx0dHJpc3RhdGVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0yMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6MjQ6Y29uZmlnIE1UNzZ4MDJfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTI1LVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjI4OmNvbmZpZyBNVDc2X0NPTk5BQ19MSUJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjktXFx0dHJpc3RhdGVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZz0zNj1jb25maWcgTVQ3OTJ4X1VTQlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTM5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzo0MDpjb25maWcgTVQ3Nl9OUFVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctNDEtXFx0Ym9vbFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL0tjb25maWc6Mjpjb25maWcgTVQ3NjAzRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3NjAzRSAoUENJZSkgYW5kIE1UNzZ4OCBXTEFOIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnLTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZzozOmNvbmZpZyBNVDc2MTVfQ09NTU9OXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZy00LVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnLTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZzo4OmNvbmZpZyBNVDc2MTVFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZy05LVxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc2MTVFIGFuZCBNVDc2NjNFIChQQ0llKSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZy0yMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnOjIxOmNvbmZpZyBNVDc2MjJfV01BQ1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWctMjItXFx0Ym9vbCBcXFwiTVQ3NjIyIChTb0MpIFdNQUMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWctMzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZzozMjpjb25maWcgTVQ3NjYzX1VTQl9TRElPX0NPTU1PTlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWctMzMtXFx0dHJpc3RhdGVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWctMzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZzozNjpjb25maWcgTVQ3NjYzVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWctMzctXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzY2M1UgKFVTQikgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWctNDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZzo0Nzpjb25maWcgTVQ3NjYzU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWctNDgtXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzY2M1MgKFNESU8pIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvS2NvbmZpZzoyOmNvbmZpZyBNVDc2eDBfQ09NTU9OXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvS2NvbmZpZy0zLVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9LY29uZmlnLTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvS2NvbmZpZzo2OmNvbmZpZyBNVDc2eDBVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvS2NvbmZpZy03LVxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc2eDBVIChVU0IpIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9LY29uZmlnLTE4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL0tjb25maWc6MTk6Y29uZmlnIE1UNzZ4MEVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9LY29uZmlnLTIwLVxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc2eDBFIChQQ0llKSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6Mjpjb25maWcgTVQ3NngyX0NPTU1PTlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWctMy1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZy01LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc6Njpjb25maWcgTVQ3NngyRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWctNy1cXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3NngyRSAoUENJZSkgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWctMTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoxODpjb25maWcgTVQ3NngyVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWctMTktXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzZ4MlUgKFVTQikgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjVUMDE6MDI6NDIuODU5OTkwNDcyWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1MzMxMDIyNzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqVVNCIFN1cHBvcnQgZm9yIE1UNzY6IEEgUXVpY2sgTWVudGFsIENoZWNrbGlzdCoqXG5cbk9rYXksIHNvIEknbSB0aGlua2luZyBhYm91dCBVU0Igc3VwcG9ydCBmb3IgTVQ3Ni1iYXNlZCBkZXZpY2VzLiBMZXQgbWUgcXVpY2tseSBydW4gdGhyb3VnaCB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgaW4gbXkgaGVhZC4uLiBJIGtub3cgd2UndmUgZ290IGEgZmV3IG9mIHRoZW0gdGhhdCBhcmUgcHJldHR5IGNvbW1vbjogTVQ3NjYzVSwgTVQ3NngwVSwgYW5kIE1UNzZ4MlUuIFRob3NlIGFyZSBkZWZpbml0ZWx5IGtleS5cblxuSG9sZCBvbi4uLiBJJ20gcHJldHR5IHN1cmUgdGhlcmUncyBhbiBNVDc5MjFVIHZhcmlhbnQgYXMgd2VsbCwgcmlnaHQ/IExldCBtZSBqdXN0IGRvdWJsZS1jaGVjayB0aGF0LiBJIG5lZWQgdG8gbWFrZSBzdXJlIEknbSBub3QgbWlzc2luZyBhbnl0aGluZyBjcnVjaWFsIHRoZXJlLiBUaW1lIHRvIHB1bGwgdXAgdGhlIGBtdDc5MjEvS2NvbmZpZ2AgZmlsZSBpbiBteSBtZW50YWwgcmVwb3NpdG9yeSBhbmQgdmVyaWZ5IHRoYXQgSSdtIGluY2x1ZGluZyBldmVyeXRoaW5nIEkgc2hvdWxkIGJlIVxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTIzOSwiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI1VDAxOjAyOjQ2LjM5MzA5NTY4NloiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjMxMjAxNDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1UNzkyMVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWc6Mjpjb25maWcgTVQ3OTIxX0NPTU1PTlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctMy1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy02LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWc6Nzpjb25maWcgTVQ3OTIxRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctOC1cXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3OTIxRSAoUENJZSkgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZzoxNzpjb25maWcgTVQ3OTIxU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctMTgtXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzkyMVMgKFNESU8pIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWc6Mjg6Y29uZmlnIE1UNzkyMVVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTI5LVxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc5MjFVIChVU0IpIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI1VDAxOjAyOjQ2LjQ1NjIyNDk0NFoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDE2NjAwODcxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIHRoZSBNVDc2IFVTQiBEcml2ZXJzKipcblxuT2theSwgc28gd2UgbmVlZCB0byBnZXQgdGhlc2UgTVQ3NiBVU0IgZHJpdmVycyByZWFkeSBmb3IgZnV6emluZy4gSSd2ZSBpZGVudGlmaWVkIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uczogYE1UNzY2M1VgLCBgTVQ3NngwVWAsIGBNVDc2eDJVYCwgYW5kIGBNVDc5MjFVYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGVuYWJsZSB0aGVzZSBjb25maWd1cmF0aW9ucyB0byBlbnN1cmUgdGhlaXIgVVNCIGRyaXZlcnMgYXJlIGJ1aWx0IGFuZCBhY2Nlc3NpYmxlIGZvciBmdXp6aW5nLiBMZXQncyBtYWtlIHN1cmUgdGhvc2UgYXJlIHNlbGVjdGVkLCBhaCB5ZXMsIGBNVDc2X1VTQmAgaXMgc2VsZWN0ZWQgYnkgdGhlc2UuIEFsc28sIHRob3NlIHNlbGVjdCBgTVQ3Nl9DT1JFYCBhbmQgYE1UNzZfVVNCYCAtIGdvb2QsIGdvb2QuIEkgc2hvdWxkIHByb2JhYmx5IGFkZCBgTUFDODAyMTFgLCBldmVuIHRob3VnaCBpdCBpcyBhbHJlYWR5IGVuYWJsZWQsIHRvIHRoZSBsaXN0IGluIGNhc2Ugd2UgbmVlZCBpdCwgYnV0IHRoZSBvdGhlcnMgYXJlIHRoZSBvbmVzIHdlIHJlYWxseSB3YW50LlxuXG5UaGUgcHJpbWFyeSBmdW5jdGlvbiB3ZSBuZWVkIHRvIGZvY3VzIG91ciBmdXp6aW5nIGVmZm9ydHMgb24gYXBwZWFycyB0byBiZSBgX19tdDc2X3NldF9jaGFubmVsYCwgc2luY2UgdGhhdCBpcyB0aGUgbW9kaWZpZWQgZnVuY3Rpb24uIEkgc2hvdWxkIGFsc28gaW5jbHVkZSBgbXQ3Nl9zZXRfY2hhbm5lbGAgaW4gb3VyIGZ1enppbmcgdGFyZ2V0cywgYXMgd2VsbC4gQWxzbywgbGV0J3MgYWRkIGBtdDc2X3VwZGF0ZV9jaGFubmVsYCwgYG10NzZfc2Nhbl93b3JrYCwgYG10NzZfc2Nhbl9jb21wbGV0ZWAsIGBtdDc2X3JlbWFpbl9vbl9jaGFubmVsYCwgYG10NzZfcm9jX2NvbXBsZXRlYCwgYW5kIGBtdDc2X3BoeV91cGRhdGVfY2hhbm5lbGAgdG8gdGhhdCBsaXN0LCBiZWNhdXNlIHRoZXkgYXJlIHJlbGF0ZWQuIFllcCwgYF9fbXQ3Nl9zZXRfY2hhbm5lbGAgaXMgdGhlIG9uZSBtb2RpZmllZCwgc28gbGV0J3MgbWFyayBgX19tdDc2X3NldF9jaGFubmVsYCBhbmQgYG10NzZfc2V0X2NoYW5uZWxgIGFzIG91ciBwcmltYXJ5IGBGb2N1c1N5bWJvbHNgLlxuXG5MZXQncyBxdWlja2x5IHJldmlldyB0aGUgcGF0Y2ggYWdhaW4uLi4gcmlnaHQsIHNvIHRoZSBjaGFuZ2UgaXMgYWRkaW5nIGEgdGltZW91dCBjaGVjayB0byB0aGUgYHdhaXRfZXZlbnRfdGltZW91dGAgY2FsbCBpbiBgX19tdDc2X3NldF9jaGFubmVsYC4gSWYgdGhlIHRpbWVvdXQgZXhwaXJlcywgaXQgbm93IGV4aXRzIGVhcmx5LCB3aGVyZWFzIGJlZm9yZSBpdCB3b3VsZCBoYXZlIGNvbnRpbnVlZC4gVGhpcyBwcmV2ZW50cyBhIHBvdGVudGlhbCBoYW5nIG9yIGlzc3VlIGlmIHRoZSBUWCBpc24ndCBjbGVhciBpbiB0aW1lLiBUaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSBhbmQgYWJzb2x1dGVseSB3YXJyYW50cyBmdXp6aW5nLlxuXG5JJ2xsIHF1aWNrbHkgZG91YmxlLWNoZWNrIHRvIG1ha2Ugc3VyZSB0aGVyZSBhcmVuJ3QgYW55IG90aGVyIHJlbGV2YW50IFVTQiBjb25maWd1cmF0aW9ucyBmb3IgTVQ3NiB3ZSBzaG91bGQgYmUgYXdhcmUgb2YuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1OTQ1LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODA3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI1VDAxOjAyOjU2LjYyMjIzNTk3NloiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI2MTU1ODE3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNVC4qVSRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnPTM2PWNvbmZpZyBNVDc5MnhfVVNCXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjQwOmNvbmZpZyBNVDc2X05QVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy00MS1cXHRib29sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnPTMyPWNvbmZpZyBNVDc2NjNfVVNCX1NESU9fQ09NTU9OXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnLTM1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWc6MzY6Y29uZmlnIE1UNzY2M1VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9LY29uZmlnLTM3LVxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc2NjNVIChVU0IpIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9LY29uZmlnPTI9Y29uZmlnIE1UNzZ4MF9DT01NT05cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL0tjb25maWctNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9LY29uZmlnOjY6Y29uZmlnIE1UNzZ4MFVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9LY29uZmlnLTctXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzZ4MFUgKFVTQikgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc9Nj1jb25maWcgTVQ3NngyRVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZy0xNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjE4OmNvbmZpZyBNVDc2eDJVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZy0xOS1cXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3NngyVSAoVVNCKSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZz0xNz1jb25maWcgTVQ3OTIxU1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0yNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnOjI4OmNvbmZpZyBNVDc5MjFVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0yOS1cXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3OTIxVSAoVVNCKSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZz03PWNvbmZpZyBNVDc5MjVFXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnLTE4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWc6MTk6Y29uZmlnIE1UNzkyNVVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnLTIwLVxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc5MjVVIChVU0IpIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnPTI9Y29uZmlnIE1UNzk5NkVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctMTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZzoxNjpjb25maWcgTVQ3OTk2X05QVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctMTctXFx0Ym9vbCBcXFwiTVQ3OTk2IChQQ0llKSBOUFUgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjVUMDE6MDI6NTYuNzQ4Mzk2NzMzWiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU2NDcwNTIxNTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIFVTQiBXaS1GaSBEcml2ZXIgQ29uZmlndXJhdGlvbnMqKlxuXG5Pa2F5LCBzbyBJIHNlZSBgTVQ3OTI1VWAgaXMgYWxzbyBpbiB0aGUgbWl4LiBSaWdodCwgSSBuZWVkIHRvIG1ha2UgYSBub3RlIG9mIHdoaWNoIGNvbmZpZ3VyYXRpb25zIEkgbmVlZCB0byBlbmFibGUuIEJhc2VkIG9uIHRoZSBwcmVzZW5jZSBvZiB0aGlzIGNoaXAsIGl0IHNlZW1zIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucyBhcmU6IGBNVDc2NjNVYCwgYE1UNzZ4MFVgLCBgTVQ3NngyVWAsIGBNVDc5MjFVYCwgYW5kIG5vdywgYE1UNzkyNVVgLlxuXG5IbW0sIGhvbGQgb24uIElzbid0IGBNVDc2X1VTQmAgYSBjb21tb24gY29uZmlndXJhdGlvbiBmb3IgdGhlc2UgZHJpdmVycz8gUGVyaGFwcyBJIGNhbiBzaW1wbGlmeSB0aGluZ3MgYnkganVzdCBlbmFibGluZyB0aGF0IGluc3RlYWQgb2YgbGlzdGluZyB0aGVtIGFsbCBpbmRpdmlkdWFsbHk/IExldCdzIGNoZWNrLiBGaXJzdCwgSSBuZWVkIHRvIHNlZSBpZiBgTVQ3Nl9VU0JgIGNhbiBiZSBlbmFibGVkIGRpcmVjdGx5LCBvciBpZiBpdCdzIGRlcGVuZGVudC5cblxuSSdsbCBjaGVjayB0aGUgYEtjb25maWdgIGZpbGUgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZ2AuIEFoLCBoZXJlIGl0IGlzOlxuYGBgXG5jb25maWcgTVQ3Nl9VU0Jcblx0dHJpc3RhdGVcbmBgYFxuT2theSwgc28gaXQncyBhICp0cmlzdGF0ZSogY29uZmlnLCBidXQgdGhlcmUncyBubyB2aXNpYmxlIHByb21wdC4gVGhhdCBtZWFucyBpdCBjYW4ndCBiZSBlbmFibGVkIGRpcmVjdGx5IHRocm91Z2ggdGhlIHVzZXIgaW50ZXJmYWNlLiBJdCdzIG9ubHkgKnNlbGVjdGVkKiBieSB0aGUgc3BlY2lmaWMgZHJpdmVyIGNvbmZpZ3MuIFNvLCBpdCBsb29rcyBsaWtlIEkgbmVlZCB0byBzdGljayB3aXRoIGxpc3RpbmcgdGhlIGluZGl2aWR1YWwgZHJpdmVycywgc3BlY2lmaWNhbGx5OiBgTVQ3NjYzVWAsIGBNVDc2eDBVYCwgYE1UNzZ4MlVgLCBgTVQ3OTIxVWAsIGFuZCBmaW5hbGx5LCBgTVQ3OTI1VWAuXG5cbkp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLCBsZXQgbWUgZG91YmxlIGNoZWNrIGFnYWluIHRvIG1ha2Ugc3VyZSB0aGF0IGBNVDc2X1VTQmAgZG9lc24ndCBoYXZlIGEgcHJvbXB0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyODIxNSwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yNVQwMTowMzowMi4zOTU0NTIzOTVaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjkzNjY1MzM4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNVDc2X1VTQlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc9Nj1jb25maWcgTVQ3Nl9MRURTXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjEyOmNvbmZpZyBNVDc2X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xMy1cXHR0cmlzdGF0ZVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNVQwMTowMzowMi40ODkxMjQ1MDNaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzU4MTI2MzM3NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE1UNzYgVVNCIERyaXZlciBDaGFuZ2VzKipcblxuT2theSwgaGVyZSdzIHdoYXQgSSd2ZSBnb3QuIE5vIHNwZWNpZmljIHByb21wdCwganVzdCBkaXZpbmcgaW4uIEZpcnN0LCBJIG5lZWQgdG8gY29uZmlybSB0aGUgcmVsZXZhbnQgVVNCIGRyaXZlcnMgd2l0aGluIE1UNzYuIExvb2tzIGxpa2UgYE1UNzZ4MDJfVVNCYCBhbmQgYE1UNzkyeF9VU0JgIGFyZSB0aGUgb25lcyB0byBjb25zaWRlciwgbm8gc3BlY2lmaWMgcHJvbXB0cyBhdHRhY2hlZCB0byB0aGVtIGVpdGhlci5cblxuU28sIHRoZSBrZXkgY29uZmlncyBJJ20gbG9va2luZyBhdCBhcmU6IGBNVDc2NjNVYCwgYE1UNzZ4MFVgLCBgTVQ3NngyVWAsIGBNVDc5MjFVYCwgYW5kIGBNVDc5MjVVYC4gVGhhdOKAmXMgbXkgd29ya2luZyBsaXN0LlxuXG5UaGUgY3JpdGljYWwgc3ltYm9scyBJJ20gZm9jdXNpbmcgb24gaGVyZSBhcmUgYF9fbXQ3Nl9zZXRfY2hhbm5lbGAgYW5kIGBtdDc2X3NldF9jaGFubmVsYC5cblxuVGhlIGNvcmUgb2YgdGhpcyBwYXRjaCBzZWVtcyB0byBiZSBhZGRpbmcgYSB0aW1lb3V0IGNoZWNrIHdpdGhpbiBgX19tdDc2X3NldF9jaGFubmVsYCB1c2luZyBgd2FpdF9ldmVudF90aW1lb3V0YC4gVGhpcyBwcmV2ZW50cyB0aGUgc3lzdGVtIGZyb20gaGFuZ2luZyBpZiBUWCBvcGVyYXRpb25zIGFyZSBzdGlsbCBwZW5kaW5nIHdoZW4gdGhlIGNoYW5uZWwgaXMgYmVpbmcgY2hhbmdlZCwgd2hpY2ggaXMgYSBmdW5jdGlvbmFsIGltcHJvdmVtZW50IGluIHRoZSBNVDc2IG1hYzgwMjExIGRyaXZlci4gVGhpcyBpcyBkZWZpbml0ZWx5IHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIEdpdmVuIHRoZXNlIGFyZSBVU0IgZGV2aWNlcywgYW5kIGJhc2VkIG9uIHRoZSBNVDc2IHNlcmllcywgSSBhbSBjb25maWRlbnQgdGhpcyB3b3VsZCB3b3JrIHdpdGggYGR1bW15X2hjZGAgYW5kIGBubDgwMjExYCBjb21tYW5kcy5cblxuTm93LCBsZXQgbWUganVzdCBxdWlja2x5IGRvdWJsZS1jaGVjayBgX19tdDc2X3NldF9jaGFubmVsYCB0byBtYWtlIHN1cmUgaXQncyBub3QgYSBwZXJmb3JtYW5jZSBib3R0bGVuZWNrLiBCYXNlZCBvbiBteSB1bmRlcnN0YW5kaW5nLCBpdCdzIHVzZWQgZHVyaW5nIGNoYW5uZWwgY2hhbmdlcywgdXBkYXRlcywgYW5kIHN0YXlpbmcgb24gY2hhbm5lbCBmb3Igc2Nhbm5pbmcgYW5kIG9mZi1jaGFubmVsIG9wZXJhdGlvbnMuIFRoZXNlIGFyZSBjb250cm9sIHBhdGggZnVuY3Rpb25zLCBub3QgZGF0YSBwYXRoIG9wZXJhdGlvbnMgbGlrZSBUWC9SWC4gU28sIGFkZHJlc3NpbmcgcG90ZW50aWFsIHRpbWVvdXRzIGhlcmUgaXMgY29tcGxldGVseSBhcHByb3ByaWF0ZS4gSXTigJlzIG5vdCBzb21ldGhpbmcgdGhhdOKAmXMgbGlrZWx5IHRvIGJlIGludm9rZWQgY29uc3RhbnRseS5cblxuQWxyaWdodCwgSSBhbSByZWFkeSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI4OTc0LCJPdXRwdXRUb2tlbnMiOjE5OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM1NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yNVQwMTowMzoxMC4wNzAzOTAzMzdaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MzgyMDM3OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVQ3NjYzVVwiLFxuICAgIFwiTVQ3NngwVVwiLFxuICAgIFwiTVQ3NngyVVwiLFxuICAgIFwiTVQ3OTIxVVwiLFxuICAgIFwiTVQ3OTI1VVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIl9fbXQ3Nl9zZXRfY2hhbm5lbFwiLFxuICAgIFwibXQ3Nl9zZXRfY2hhbm5lbFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSB0aW1lb3V0IGNoZWNrIHRvIHdhaXRfZXZlbnRfdGltZW91dCBpbiBfX210NzZfc2V0X2NoYW5uZWwgdG8gcHJldmVudCBwcm9jZWVkaW5nIHdoZW4gVFggaXMgc3RpbGwgcGVuZGluZyBhbmQgdGhlIHdhaXQgdGltZXMgb3V0LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIE1UNzYgbWFjODAyMTEgZHJpdmVyLiBUaGUgY29kZSBpcyByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSB0aGUgVVNCIGludGVyZmFjZSBvZiBNVDc2IGRldmljZXMgKGUuZy4sIE1UNzZ4MFUsIE1UNzZ4MlUpIHVzaW5nIGR1bW15X2hjZCBhbmQgbmw4MDIxMSBjb21tYW5kcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNVDc2NjNVXCIsXG4gICAgXCJNVDc2eDBVXCIsXG4gICAgXCJNVDc2eDJVXCIsXG4gICAgXCJNVDc5MjFVXCIsXG4gICAgXCJNVDc5MjVVXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiX19tdDc2X3NldF9jaGFubmVsXCIsXG4gICAgXCJtdDc2X3NldF9jaGFubmVsXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIHRpbWVvdXQgY2hlY2sgdG8gd2FpdF9ldmVudF90aW1lb3V0IGluIF9fbXQ3Nl9zZXRfY2hhbm5lbCB0byBwcmV2ZW50IHByb2NlZWRpbmcgd2hlbiBUWCBpcyBzdGlsbCBwZW5kaW5nIGFuZCB0aGUgd2FpdCB0aW1lcyBvdXQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgTVQ3NiBtYWM4MDIxMSBkcml2ZXIuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIHRoZSBVU0IgaW50ZXJmYWNlIG9mIE1UNzYgZGV2aWNlcyAoZS5nLiwgTVQ3NngwVSwgTVQ3NngyVSkgdXNpbmcgZHVtbXlfaGNkIGFuZCBubDgwMjExIGNvbW1hbmRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflownq72t[1] Phase: Succeeded StartedAt: 2026-06-25 01:04:36 +0000 UTC FinishedAt: 2026-06-25 01:04:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflownq72t[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-06-25 01:04:36 +0000 UTC FinishedAt: 2026-06-25 01:04:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflownq72t[2] Phase: Succeeded StartedAt: 2026-06-25 01:04:36 +0000 UTC FinishedAt: 2026-06-25 02:02:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflownq72t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__mt76_set_channel","mt76_set_channel"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-06-25 01:04:36 +0000 UTC FinishedAt: 2026-06-25 02:02:08 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__mt76_set_channel","mt76_set_channel"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflownq72t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__mt76_set_channel","mt76_set_channel"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-06-25 01:04:36 +0000 UTC FinishedAt: 2026-06-25 01:05:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflownq72t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__mt76_set_channel","mt76_set_channel"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-06-25 01:04:36 +0000 UTC FinishedAt: 2026-06-25 01:04:44 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflownq72t/series-workflownq72t-convert-artifact-902484769/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflownq72t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__mt76_set_channel","mt76_set_channel"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-06-25 01:05:01 +0000 UTC FinishedAt: 2026-06-25 01:28:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflownq72t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__mt76_set_channel","mt76_set_channel"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-06-25 01:05:01 +0000 UTC FinishedAt: 2026-06-25 01:28:00 +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:*7ed23cf1-9e83-4e6b-97ef-6b06fb44214c,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-workflownq72t/series-workflownq72t-convert-artifact-902484769/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": "155f2a3f-d379-4ff7-9574-97a5036ee7fa", "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-workflownq72t/series-workflownq72t-build-action-374057551/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflownq72t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__mt76_set_channel","mt76_set_channel"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-06-25 01:05:01 +0000 UTC FinishedAt: 2026-06-25 01:27:50 +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:*7ed23cf1-9e83-4e6b-97ef-6b06fb44214c,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-workflownq72t/series-workflownq72t-convert-artifact-902484769/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": "155f2a3f-d379-4ff7-9574-97a5036ee7fa", "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-workflownq72t/series-workflownq72t-build-action-374057551/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflownq72t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__mt76_set_channel","mt76_set_channel"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-06-25 01:28:00 +0000 UTC FinishedAt: 2026-06-25 01:28:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflownq72t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__mt76_set_channel","mt76_set_channel"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-06-25 01:28:00 +0000 UTC FinishedAt: 2026-06-25 01:28:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflownq72t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__mt76_set_channel","mt76_set_channel"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-06-25 01:28:00 +0000 UTC FinishedAt: 2026-06-25 01:28:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflownq72t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__mt76_set_channel","mt76_set_channel"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-06-25 01:28:00 +0000 UTC FinishedAt: 2026-06-25 01:28:05 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflownq72t/series-workflownq72t-convert-artifact-560529012/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflownq72t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__mt76_set_channel","mt76_set_channel"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-06-25 01:28:10 +0000 UTC FinishedAt: 2026-06-25 01:30:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflownq72t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__mt76_set_channel","mt76_set_channel"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-06-25 01:28:10 +0000 UTC FinishedAt: 2026-06-25 01:30:00 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*155f2a3f-d379-4ff7-9574-97a5036ee7fa,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-workflownq72t/series-workflownq72t-build-action-374057551/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-workflownq72t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__mt76_set_channel","mt76_set_channel"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-06-25 01:30:10 +0000 UTC FinishedAt: 2026-06-25 01:30:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflownq72t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__mt76_set_channel","mt76_set_channel"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-06-25 01:30:10 +0000 UTC FinishedAt: 2026-06-25 01:30:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflownq72t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__mt76_set_channel","mt76_set_channel"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-06-25 01:30:10 +0000 UTC FinishedAt: 2026-06-25 01:56:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflownq72t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__mt76_set_channel","mt76_set_channel"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-06-25 01:30:10 +0000 UTC FinishedAt: 2026-06-25 01:56:36 +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:*7ed23cf1-9e83-4e6b-97ef-6b06fb44214c,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-workflownq72t/series-workflownq72t-convert-artifact-560529012/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": "cbfa4a6a-7869-4083-8576-60d2b69de5b8", "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-workflownq72t/series-workflownq72t-build-action-3584570176/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflownq72t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__mt76_set_channel","mt76_set_channel"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-06-25 01:30:10 +0000 UTC FinishedAt: 2026-06-25 01:56:26 +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:*7ed23cf1-9e83-4e6b-97ef-6b06fb44214c,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-workflownq72t/series-workflownq72t-convert-artifact-560529012/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": "cbfa4a6a-7869-4083-8576-60d2b69de5b8", "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-workflownq72t/series-workflownq72t-build-action-3584570176/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflownq72t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__mt76_set_channel","mt76_set_channel"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-06-25 01:56:36 +0000 UTC FinishedAt: 2026-06-25 01:56:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflownq72t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__mt76_set_channel","mt76_set_channel"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-06-25 01:56:36 +0000 UTC FinishedAt: 2026-06-25 01:56:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflownq72t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__mt76_set_channel","mt76_set_channel"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-06-25 01:56:36 +0000 UTC FinishedAt: 2026-06-25 01:58:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflownq72t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__mt76_set_channel","mt76_set_channel"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-06-25 01:56:36 +0000 UTC FinishedAt: 2026-06-25 01:58:27 +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:*cbfa4a6a-7869-4083-8576-60d2b69de5b8,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-workflownq72t/series-workflownq72t-build-action-3584570176/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-workflownq72t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__mt76_set_channel","mt76_set_channel"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-06-25 01:58:37 +0000 UTC FinishedAt: 2026-06-25 02:02:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflownq72t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__mt76_set_channel","mt76_set_channel"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-06-25 01:58:37 +0000 UTC FinishedAt: 2026-06-25 02:02:08 +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":["__mt76_set_channel","mt76_set_channel"],"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:*155f2a3f-d379-4ff7-9574-97a5036ee7fa,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*cbfa4a6a-7869-4083-8576-60d2b69de5b8,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-workflownq72t/series-workflownq72t-build-action-374057551/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-workflownq72t/series-workflownq72t-build-action-3584570176/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflownq72t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__mt76_set_channel","mt76_set_channel"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-06-25 01:58:37 +0000 UTC FinishedAt: 2026-06-25 01:59:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflownq72t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__mt76_set_channel","mt76_set_channel"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-06-25 01:58:37 +0000 UTC FinishedAt: 2026-06-25 01:59:30 +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":["__mt76_set_channel","mt76_set_channel"],"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-workflownq72t/series-workflownq72t-convert-artifact-649990045/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflownq72t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__mt76_set_channel","mt76_set_channel"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-06-25 01:58:37 +0000 UTC FinishedAt: 2026-06-25 01:58:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflownq72t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__mt76_set_channel","mt76_set_channel"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-06-25 01:58:37 +0000 UTC FinishedAt: 2026-06-25 01:58:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflownq72t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__mt76_set_channel","mt76_set_channel"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-06-25 01:58:37 +0000 UTC FinishedAt: 2026-06-25 01:58:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflownq72t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__mt76_set_channel","mt76_set_channel"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-06-25 01:59:37 +0000 UTC FinishedAt: 2026-06-25 02:02:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflownq72t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__mt76_set_channel","mt76_set_channel"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ab9de95c9cf952332ab79453b4b5d1bfca8e514f","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7663U","MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"299dee08-29be-40a6-8adf-cf26915683fc","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-06-25 01:59:37 +0000 UTC FinishedAt: 2026-06-25 02:01:46 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*155f2a3f-d379-4ff7-9574-97a5036ee7fa,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*cbfa4a6a-7869-4083-8576-60d2b69de5b8,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-workflownq72t/series-workflownq72t-build-action-374057551/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-workflownq72t/series-workflownq72t-build-action-3584570176/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-workflownq72t/series-workflownq72t-convert-artifact-649990045/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,}