Name: series-workflowjj4qj Phase: Failed StartedAt: 2026-08-27 16:17:53 +0000 UTC FinishedAt: 2026-08-27 17:06:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjj4qj[0] Phase: Succeeded StartedAt: 2026-08-27 16:17:53 +0000 UTC FinishedAt: 2026-08-27 17:06:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjj4qj[0].run-triage Phase: Succeeded StartedAt: 2026-08-27 16:17:53 +0000 UTC FinishedAt: 2026-08-27 17:06:20 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI3IDE3OjAyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGBibmdlYCBkcml2ZXIsIHdoaWNoIGlzIGZvciBCcm9hZGNvbSBUaG9yVWx0cmEgNTAvMTAwLzIwMC80MDAvODAwIGdpZ2FiaXQgRXRoZXJuZXQgY2FyZHMuIFRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBUaGVyZWZvcmUsIHRoZSBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNyAxNzowMjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGMwODNkZGFmNzMyMmM1MTBlYzk3ZGEyMDRmMTRmNWNjYzZhNzlhY2NcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEF1ZyAyNyAxNzowMjo1MCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmNcbmluZGV4IGE0Mjg4ZjAyNThmODcuLjEzNTczYTJiNzhlZjIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9uZXRkZXYuY1xuQEAgLTMxNTUsNiAmIzQzOzMxNTUsOSBAQCBzdGF0aWMgdm9pZCBibmdlX2Nsb3NlX2NvcmUoc3RydWN0IGJuZ2VfbmV0ICpibilcbiB7XG4gXHRzdHJ1Y3QgYm5nZV9kZXYgKmJkID0gYm4tXHUwMDNlYmQ7XG4gXG4mIzQzO1x0aWYgKCFibi1cdTAwM2VibmFwaSlcbiYjNDM7XHRcdHJldHVybjtcbiYjNDM7XG4gXHRibmdlX3R4X2Rpc2FibGUoYm4pO1xuIFxuIFx0Y2xlYXJfYml0KEJOR0VfU1RBVEVfT1BFTiwgXHUwMDI2YmQtXHUwMDNlc3RhdGUpO1xuQEAgLTMyNjcsNiAmIzQzOzMyNzAsNDQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBuZXRkZXZfc3RhdF9vcHMgYm5nZV9zdGF0X29wcyA9IHtcbiBcdC5nZXRfYmFzZV9zdGF0c1x0XHQ9IGJuZ2VfZ2V0X2Jhc2Vfc3RhdHMsXG4gfTtcbiBcbiYjNDM7c3RhdGljIGludCBibmdlX3NldF9mZWF0dXJlcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBuZXRkZXZfZmVhdHVyZXNfdCBmZWF0dXJlcylcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBibmdlX25ldCAqYm4gPSBuZXRkZXZfcHJpdihkZXYpO1xuJiM0MztcdHN0cnVjdCBibmdlX2RldiAqYmQgPSBibi1cdTAwM2ViZDtcbiYjNDM7XHR1MzIgb2xkX2ZsYWdzID0gYm4tXHUwMDNlcHJpdl9mbGFncztcbiYjNDM7XHR1MzIgZmxhZ3MgPSBvbGRfZmxhZ3M7XG4mIzQzO1x0aW50IHJjO1xuJiM0MztcbiYjNDM7XHRmbGFncyBcdTAwMjY9IH5CTkdFX05FVF9FTl9UUEE7XG4mIzQzO1x0aWYgKGZlYXR1cmVzIFx1MDAyNiBORVRJRl9GX0dST19IVylcbiYjNDM7XHRcdGZsYWdzIHw9IEJOR0VfTkVUX0VOX0dSTztcbiYjNDM7XHRlbHNlIGlmIChmZWF0dXJlcyBcdTAwMjYgTkVUSUZfRl9MUk8pXG4mIzQzO1x0XHRmbGFncyB8PSBCTkdFX05FVF9FTl9MUk87XG4mIzQzO1xuJiM0MztcdGlmIChmbGFncyA9PSBvbGRfZmxhZ3MpXG4mIzQzO1x0XHRyZXR1cm4gMDtcbiYjNDM7XG4mIzQzO1x0aWYgKCFuZXRpZl9ydW5uaW5nKGRldikpIHtcbiYjNDM7XHRcdGJuLVx1MDAzZXByaXZfZmxhZ3MgPSBmbGFncztcbiYjNDM7XHRcdGJuZ2Vfc2V0X3JpbmdfcGFyYW1zKGJkKTtcbiYjNDM7XHRcdHJldHVybiAwO1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0Ym5nZV9jbG9zZV9jb3JlKGJuKTtcbiYjNDM7XHRibi1cdTAwM2Vwcml2X2ZsYWdzID0gZmxhZ3M7XG4mIzQzO1x0Ym5nZV9zZXRfcmluZ19wYXJhbXMoYmQpO1xuJiM0MztcbiYjNDM7XHRyYyA9IGJuZ2Vfb3Blbl9jb3JlKGJuKTtcbiYjNDM7XHRpZiAocmMpIHtcbiYjNDM7XHRcdG5ldGRldl9lcnIoZGV2LCBcJiMzNDtibmdlX29wZW5fY29yZSBlcnI6ICVkXFxuXCYjMzQ7LCByYyk7XG4mIzQzO1x0XHRibi1cdTAwM2Vwcml2X2ZsYWdzID0gb2xkX2ZsYWdzO1xuJiM0MztcdFx0Ym5nZV9zZXRfcmluZ19wYXJhbXMoYmQpO1xuJiM0MztcdFx0bmV0aWZfY2xvc2UoZGV2KTtcbiYjNDM7XHR9XG4mIzQzO1xuJiM0MztcdHJldHVybiByYztcbiYjNDM7fVxuJiM0MztcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIGJuZ2VfbmV0ZGV2X29wcyA9IHtcbiBcdC5uZG9fb3Blblx0XHQ9IGJuZ2Vfb3BlbixcbiBcdC5uZG9fc3RvcFx0XHQ9IGJuZ2VfY2xvc2UsXG5AQCAtMzI3NCw2ICYjNDM7MzMxNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgYm5nZV9uZXRkZXZfb3BzID0ge1xuIFx0Lm5kb19nZXRfc3RhdHM2NFx0PSBibmdlX2dldF9zdGF0czY0LFxuIFx0Lm5kb19zZXRfcnhfbW9kZV9hc3luY1x0PSBibmdlX3NldF9yeF9tb2RlLFxuIFx0Lm5kb19mZWF0dXJlc19jaGVja1x0PSBibmdlX2ZlYXR1cmVzX2NoZWNrLFxuJiM0MztcdC5uZG9fc2V0X2ZlYXR1cmVzXHQ9IGJuZ2Vfc2V0X2ZlYXR1cmVzLFxuIH07XG4gXG4gc3RhdGljIHZvaWQgYm5nZV9pbml0X21hY19hZGRyKHN0cnVjdCBibmdlX2RldiAqYmQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjcgMTc6MDI8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgYm5nZWAgZHJpdmVyLCB3aGljaCBpcyBmb3IgQnJvYWRjb20gVGhvclVsdHJhIDUwLzEwMC8yMDAvNDAwLzgwMCBnaWdhYml0IEV0aGVybmV0IGNhcmRzLiBUaGlzIGlzIGEgdmVuZG9yLXNwZWNpZmljIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZCB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gVGhlcmVmb3JlLCB0aGUgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBjMDgzZGRhZjczMjJjNTEwZWM5N2RhMjA0ZjE0ZjVjY2M2YTc5YWNjCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBBdWcgMjcgMTc6MDI6NTAgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmMKaW5kZXggYTQyODhmMDI1OGY4Ny4uMTM1NzNhMmI3OGVmMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX25ldGRldi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9uZXRkZXYuYwpAQCAtMzE1NSw2ICYjNDM7MzE1NSw5IEBAIHN0YXRpYyB2b2lkIGJuZ2VfY2xvc2VfY29yZShzdHJ1Y3QgYm5nZV9uZXQgKmJuKQogewogCXN0cnVjdCBibmdlX2RldiAqYmQgPSBibi0mZ3Q7YmQ7CiAKJiM0MzsJaWYgKCFibi0mZ3Q7Ym5hcGkpCiYjNDM7CQlyZXR1cm47CiYjNDM7CiAJYm5nZV90eF9kaXNhYmxlKGJuKTsKIAogCWNsZWFyX2JpdChCTkdFX1NUQVRFX09QRU4sICZhbXA7YmQtJmd0O3N0YXRlKTsKQEAgLTMyNjcsNiAmIzQzOzMyNzAsNDQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBuZXRkZXZfc3RhdF9vcHMgYm5nZV9zdGF0X29wcyA9IHsKIAkuZ2V0X2Jhc2Vfc3RhdHMJCT0gYm5nZV9nZXRfYmFzZV9zdGF0cywKIH07CiAKJiM0MztzdGF0aWMgaW50IGJuZ2Vfc2V0X2ZlYXR1cmVzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIG5ldGRldl9mZWF0dXJlc190IGZlYXR1cmVzKQomIzQzO3sKJiM0MzsJc3RydWN0IGJuZ2VfbmV0ICpibiA9IG5ldGRldl9wcml2KGRldik7CiYjNDM7CXN0cnVjdCBibmdlX2RldiAqYmQgPSBibi0mZ3Q7YmQ7CiYjNDM7CXUzMiBvbGRfZmxhZ3MgPSBibi0mZ3Q7cHJpdl9mbGFnczsKJiM0MzsJdTMyIGZsYWdzID0gb2xkX2ZsYWdzOwomIzQzOwlpbnQgcmM7CiYjNDM7CiYjNDM7CWZsYWdzICZhbXA7PSB+Qk5HRV9ORVRfRU5fVFBBOwomIzQzOwlpZiAoZmVhdHVyZXMgJmFtcDsgTkVUSUZfRl9HUk9fSFcpCiYjNDM7CQlmbGFncyB8PSBCTkdFX05FVF9FTl9HUk87CiYjNDM7CWVsc2UgaWYgKGZlYXR1cmVzICZhbXA7IE5FVElGX0ZfTFJPKQomIzQzOwkJZmxhZ3MgfD0gQk5HRV9ORVRfRU5fTFJPOwomIzQzOwomIzQzOwlpZiAoZmxhZ3MgPT0gb2xkX2ZsYWdzKQomIzQzOwkJcmV0dXJuIDA7CiYjNDM7CiYjNDM7CWlmICghbmV0aWZfcnVubmluZyhkZXYpKSB7CiYjNDM7CQlibi0mZ3Q7cHJpdl9mbGFncyA9IGZsYWdzOwomIzQzOwkJYm5nZV9zZXRfcmluZ19wYXJhbXMoYmQpOwomIzQzOwkJcmV0dXJuIDA7CiYjNDM7CX0KJiM0MzsKJiM0MzsJYm5nZV9jbG9zZV9jb3JlKGJuKTsKJiM0MzsJYm4tJmd0O3ByaXZfZmxhZ3MgPSBmbGFnczsKJiM0MzsJYm5nZV9zZXRfcmluZ19wYXJhbXMoYmQpOwomIzQzOwomIzQzOwlyYyA9IGJuZ2Vfb3Blbl9jb3JlKGJuKTsKJiM0MzsJaWYgKHJjKSB7CiYjNDM7CQluZXRkZXZfZXJyKGRldiwgJiMzNDtibmdlX29wZW5fY29yZSBlcnI6ICVkXG4mIzM0OywgcmMpOwomIzQzOwkJYm4tJmd0O3ByaXZfZmxhZ3MgPSBvbGRfZmxhZ3M7CiYjNDM7CQlibmdlX3NldF9yaW5nX3BhcmFtcyhiZCk7CiYjNDM7CQluZXRpZl9jbG9zZShkZXYpOwomIzQzOwl9CiYjNDM7CiYjNDM7CXJldHVybiByYzsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIGJuZ2VfbmV0ZGV2X29wcyA9IHsKIAkubmRvX29wZW4JCT0gYm5nZV9vcGVuLAogCS5uZG9fc3RvcAkJPSBibmdlX2Nsb3NlLApAQCAtMzI3NCw2ICYjNDM7MzMxNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgYm5nZV9uZXRkZXZfb3BzID0gewogCS5uZG9fZ2V0X3N0YXRzNjQJPSBibmdlX2dldF9zdGF0czY0LAogCS5uZG9fc2V0X3J4X21vZGVfYXN5bmMJPSBibmdlX3NldF9yeF9tb2RlLAogCS5uZG9fZmVhdHVyZXNfY2hlY2sJPSBibmdlX2ZlYXR1cmVzX2NoZWNrLAomIzQzOwkubmRvX3NldF9mZWF0dXJlcwk9IGJuZ2Vfc2V0X2ZlYXR1cmVzLAogfTsKIAogc3RhdGljIHZvaWQgYm5nZV9pbml0X21hY19hZGRyKHN0cnVjdCBibmdlX2RldiAqYmQpCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI3IDE3OjAyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2NDEKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAyMDgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgQnJvYWRjb20gRXRoZXJuZXQgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdHdlYWtzIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmNgLiBSaWdodCBvZmYgdGhlIGJhdCwgSSBzZWUgYSBudWxsIGNoZWNrIGJlaW5nIGFkZGVkIHdpdGhpbiBgYm5nZV9jbG9zZV9jb3JlYCBmb3IgYGJuLSZndDtibmFwaWAuIFN0YW5kYXJkIGRlZmVuc2l2ZSBwcm9ncmFtbWluZywgYWx3YXlzIGdvb2QgdG8gc2VlLiBQbHVzLCBhIG5ldyBmdW5jdGlvbiwgYGJuZ2Vfc2V0X2ZlYXR1cmVzYCwgaXMgYmVpbmcgaW50cm9kdWNlZCBhbmQgbGlua2VkIHRvIGBuZG9fc2V0X2ZlYXR1cmVzYCBpbiBgYm5nZV9uZXRkZXZfb3BzYC4KCkhtbSwgYGJuZ2Vg4oCmIHRoYXQmIzM5O3MgYSBCcm9hZGNvbSBFdGhlcm5ldCBkcml2ZXIuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBpcyB0aGlzIGZvciBwaHlzaWNhbCBoYXJkd2FyZSBvciBzb21ldGhpbmcgZW11bGF0ZWQ/IEkgbmVlZCB0byBjbGFyaWZ5IHRoYXQuIENvbnNpZGVyaW5nIHRoaXMgc2VlbXMgdG8gYmUgYSByZWFsLCBsaXZlIEV0aGVybmV0IGRyaXZlciwgaXMgaXQgdGFyZ2V0aW5nIGEgcGh5c2ljYWwgUENJZSBjYXJkIHRoYXQgKmlzbiYjMzk7dCogcGFydCBvZiB0aGUgc3RhbmRhcmQgUUVNVSBzZXR1cD8gSSBoYXZlIHRvIGJlIHN1cmUuIEkmIzM5O20gdGhpbmtpbmcgb2YgdGhvc2UgdmVuZG9yLXNwZWNpZmljIGRyaXZlcnMsIGxpa2UgYG1seHN3YCwgYHBkc19jb3JlYCwgYHFlZGAsIGBpb25pY2AsIGFuZCBgYW1kZ3B1YC4gVGhvc2Ugb2Z0ZW4gZGVtYW5kIGFjdHVhbCBQQ0llIGhhcmR3YXJlLgoKUmlnaHQsIHNvIHRvIG1ha2Ugc3VyZSwgbGV0JiMzOTtzIGp1c3QgbWFrZSBzdXJlIHRoaXMgZHJpdmVyIGlzICpub3QqIGVtdWxhdGVkIGluIFFFTVUuIFRpbWUgdG8gcnVuIGEgcXVpY2sgc2VhcmNoIHRocm91Z2ggdGhlIGtlcm5lbCB0cmVlIGFuZCBzZWUgd2hhdCBwb3BzIHVwIGZvciBgYm5nZWAgcmVsYXRlZCB0byB2aXJ0dWFsaXphdGlvbi4gR290dGEgY2hlY2sgdG8gbWFrZSBzdXJlIHRoaXMgZHJpdmVyIGlzbiYjMzk7dCB1c2luZyBhIFBDSWUgY2FyZCB0aGF0IHdvdWxkIHJlcXVpcmUgcmVhbCBoYXJkd2FyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNyAxNzowMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtibmdlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA2MTg3IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9NYWtlZmlsZT0yMD1vYmotJChDT05GSUdfQkNNQVNQKSAmIzQzOz0gYXNwMi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL01ha2VmaWxlOjIxOm9iai0kKENPTkZJR19CTkdFKSAmIzQzOz0gYm5nZS9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlPTM9b2JqLSQoQ09ORklHX0JOR0UpICYjNDM7PSBibmdfZW4ub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZS00LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZTo1OmJuZ19lbi15IDo9IGJuZ2VfY29yZS5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlOjY6XHQgICAgYm5nZV9kZXZsaW5rLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6NzpcdCAgICBibmdlX2h3cm0ubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZTo4Olx0ICAgIGJuZ2VfaHdybV9saWIubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZTo5Olx0ICAgIGJuZ2Vfcm1lbS5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlOjEwOlx0ICAgIGJuZ2VfcmVzYy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlOjExOlx0ICAgIGJuZ2VfbmV0ZGV2Lm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6MTI6XHQgICAgYm5nZV9ldGh0b29sLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6MTM6XHQgICAgYm5nZV9hdXhyLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6MTQ6XHQgICAgYm5nZV90eHJ4Lm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6MTU6XHQgICAgYm5nZV9saW5rLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xMC0jaW5jbHVkZSBcdTAwM2NsaW51eC9ldGhlcmRldmljZS5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoxMTojaW5jbHVkZSBcdTAwM2NsaW51eC9ibmdlL2hzaS5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoxMjojaW5jbHVkZSBcJiMzNDtibmdlX3JtZW0uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MTM6I2luY2x1ZGUgXCYjMzQ7Ym5nZV9yZXNjLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjE0OiNpbmNsdWRlIFwmIzM0O2JuZ2VfYXV4ci5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xNS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjIwOmV4dGVybiBjaGFyIGJuZ2VfZHJpdmVyX25hbWVbXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg9MjI9ZW51bSBib2FyZF9pZHgge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTI1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjY6c3RydWN0IGJuZ2VfYXV4cl9wcml2IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTI3LVx0c3RydWN0IGF1eGlsaWFyeV9kZXZpY2UgYXV4X2RldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjI4Olx0c3RydWN0IGJuZ2VfYXV4cl9kZXYgKmF1eHJfZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjktXHRpbnQgaWQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDozMjpzdHJ1Y3QgYm5nZV9wZl9pbmZvIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTMzLVx0dTE2XHRmd19maWQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg9ODE9ZW51bSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtOTItI2RlZmluZSBCTkdFX01BWF9RVUVVRVx0XHQ4XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDo5MzpzdHJ1Y3QgYm5nZV9xdWV1ZV9pbmZvIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTk0LVx0dTggICAgICBxdWV1ZV9pZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xMDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoxMDM6c3RydWN0IGJuZ2VfZGV2IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTEwNC1cdHN0cnVjdCBkZXZpY2VcdCpkZXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMTQ0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MTQ1Olx0c3RydWN0IGJuZ2VfcGZfaW5mb1x0cGY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xNDYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMTUzLVx0LyogQmFja2luZyBzdG9yZXMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjE1NDpcdHN0cnVjdCBibmdlX2N0eF9tZW1faW5mb1x0KmN0eDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTE1NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xNTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoxNTg6XHRzdHJ1Y3QgYm5nZV9od19yZXNjXHRod19yZXNjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMTU5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIwNC1cdHU4XHRcdFx0bWF4X2xsdGM7XHQvKiBsb3NzbGVzcyBUQ3MgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjIwNTpcdHN0cnVjdCBibmdlX3F1ZXVlX2luZm9cdHFfaW5mb1tCTkdFX01BWF9RVUVVRV07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMDYtXHR1OFx0XHRcdHRjX3RvX3FpZHhbQk5HRV9NQVhfUVVFVUVdO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIxMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjIxMTpcdHN0cnVjdCBibmdlX2lycVx0XHQqaXJxX3RibDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIxMi1cdHUxNlx0XHRcdGlycXNfYWNxdWlyZWQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMTQ6XHRzdHJ1Y3QgYm5nZV9hdXhyX3ByaXZcdCphdXhfcHJpdjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjIxNTpcdHN0cnVjdCBibmdlX2F1eHJfZGV2XHQqYXV4cl9kZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMTc6XHRzdHJ1Y3QgYm5nZV9saW5rX2luZm9cdGxpbmtfaW5mbztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIxOC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMjM6c3RhdGljIGlubGluZSBib29sIGJuZ2VfaXNfcm9jZV9lbihzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjI0LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMjctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMjg6c3RhdGljIGlubGluZSBib29sIGJuZ2VfaXNfYWdnX3JlcWQoc3RydWN0IGJuZ2VfZGV2ICpiZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIyOS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMzAtXHRpZiAoYmQtXHUwMDNlbmV0ZGV2KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMzE6XHRcdHN0cnVjdCBibmdlX25ldCAqYm4gPSBuZXRkZXZfcHJpdihiZC1cdTAwM2VuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjMyLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTI0Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjI0MzpzdGF0aWMgaW5saW5lIHZvaWQgYm5nZV93cml0ZXEoc3RydWN0IGJuZ2VfZGV2ICpiZCwgdTY0IHZhbCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTI0NC1cdFx0XHQgICAgICAgdm9pZCBfX2lvbWVtICphZGRyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTI1NS0vKiBGb3IgVFggYW5kIFJYIHJpbmcgZG9vcmJlbGxzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyNTY6c3RhdGljIGlubGluZSB2b2lkIGJuZ2VfZGJfd3JpdGUoc3RydWN0IGJuZ2VfZGV2ICpiZCwgc3RydWN0IGJuZ2VfZGJfaW5mbyAqZGIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNTctXHRcdFx0XHQgdTMyIGlkeClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTI1OC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyNTk6XHRibmdlX3dyaXRlcShiZCwgZGItXHUwMDNlZGJfa2V5NjQgfCBEQl9SSU5HX0lEWChkYiwgaWR4KSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTI2MC1cdFx0ICAgIGRiLVx1MDAzZWRvb3JiZWxsKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyNjM6Ym9vbCBibmdlX2F1eF9yZWdpc3RlcmVkKHN0cnVjdCBibmdlX2RldiAqYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjY0OnUxNiBibmdlX2F1eF9nZXRfbXNpeChzdHJ1Y3QgYm5nZV9kZXYgKmJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTI2NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE2LSNpbmNsdWRlIFx1MDAzY2xpbnV4L2F1eGlsaWFyeV9idXMuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxNzojaW5jbHVkZSBcdTAwM2NsaW51eC9ibmdlL2hzaS5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxOTojaW5jbHVkZSBcJiMzNDtibmdlLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjA6I2luY2x1ZGUgXCYjMzQ7Ym5nZV9od3JtLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjE6I2luY2x1ZGUgXCYjMzQ7Ym5nZV9hdXhyLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjIzOnN0YXRpYyBERUZJTkVfSURBKGJuZ2VfYXV4X2Rldl9pZHMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjU6c3RhdGljIHZvaWQgYm5nZV9maWxsX21zaXhfdmVjcyhzdHJ1Y3QgYm5nZV9kZXYgKmJkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyNjpcdFx0XHRcdHN0cnVjdCBibmdlX21zaXhfaW5mbyAqaW5mbylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyODpcdHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2RldiA9IGJkLVx1MDAzZWF1eHJfZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yOS1cdGludCBudW1fbXNpeCwgaTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzo0MzppbnQgYm5nZV9yZWdpc3Rlcl9kZXYoc3RydWN0IGJuZ2VfYXV4cl9kZXYgKmF1eHJfZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy00NC1cdFx0ICAgICAgdm9pZCAqaGFuZGxlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy00NS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjQ2Olx0c3RydWN0IGJuZ2VfZGV2ICpiZCA9IHBjaV9nZXRfZHJ2ZGF0YShhdXhyX2Rldi1cdTAwM2VwZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6NDc6XHRzdHJ1Y3QgYm5nZV9hdXhyX2luZm8gKmF1eHJfaW5mbztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtNDgtXHRpbnQgcmMgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtNTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjU3Olx0aWYgKCFibmdlX2F1eF9oYXNfZW5vdWdoX3Jlc291cmNlcyhiZCkpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtNTgtXHRcdHJjID0gLUVOT01FTTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTY2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzo2NzpcdGJuZ2VfZmlsbF9tc2l4X3ZlY3MoYmQsIGJkLVx1MDAzZWF1eHJfZGV2LVx1MDAzZW1zaXhfaW5mbyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTY4LVx0YXV4cl9kZXYtXHUwMDNlZmxhZ3MgfD0gQk5HRV9BUkRFVl9NU0lYX0FMTE9DO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtNzQtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzo3NTpFWFBPUlRfU1lNQk9MKGJuZ2VfcmVnaXN0ZXJfZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtNzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjc3OnZvaWQgYm5nZV91bnJlZ2lzdGVyX2RldihzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYXV4cl9kZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTc4LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6Nzk6XHRzdHJ1Y3QgYm5nZV9kZXYgKmJkID0gcGNpX2dldF9kcnZkYXRhKGF1eHJfZGV2LVx1MDAzZXBkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzo4MDpcdHN0cnVjdCBibmdlX2F1eHJfaW5mbyAqYXV4cl9pbmZvO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy04MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTkxLX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6OTI6RVhQT1JUX1NZTUJPTChibmdlX3VucmVnaXN0ZXJfZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtOTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjk0OmludCBibmdlX3NlbmRfbXNnKHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2Rldiwgc3RydWN0IGJuZ2VfZndfbXNnICpmd19tc2cpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTk1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6OTY6XHRzdHJ1Y3QgYm5nZV9kZXYgKmJkID0gcGNpX2dldF9kcnZkYXRhKGF1eHJfZGV2LVx1MDAzZXBkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy05Ny1cdHN0cnVjdCBvdXRwdXQgKnJlc3A7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMDEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjEwMjpcdHJjID0gYm5nZV9od3JtX3JlcV9pbml0KGJkLCByZXEsIDAgLyogZG9uJiMzOTt0IGNhcmUgKi8pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMDMtXHRpZiAocmMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjEwNjpcdHJjID0gYm5nZV9od3JtX3JlcV9yZXBsYWNlKGJkLCByZXEsIGZ3X21zZy1cdTAwM2Vtc2csIGZ3X21zZy1cdTAwM2Vtc2dfbGVuKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTA3LVx0aWYgKHJjKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTA5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxMTA6XHRibmdlX2h3cm1fcmVxX3RpbWVvdXQoYmQsIHJlcSwgZndfbXNnLVx1MDAzZXRpbWVvdXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxMTE6XHRyZXNwID0gYm5nZV9od3JtX3JlcV9ob2xkKGJkLCByZXEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxMTI6XHRyYyA9IGJuZ2VfaHdybV9yZXFfc2VuZChiZCwgcmVxKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTEzLVx0cmVzcF9sZW4gPSBsZTE2X3RvX2NwdShyZXNwLVx1MDAzZXJlc3BfbGVuKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTEyMC1kcm9wX3JlcTpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTIxOlx0Ym5nZV9od3JtX3JlcV9kcm9wKGJkLCByZXEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMjItXHRyZXR1cm4gcmM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTEyMy19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjEyNDpFWFBPUlRfU1lNQk9MKGJuZ2Vfc2VuZF9tc2cpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjEyNjp2b2lkIGJuZ2VfcmRtYV9hdXhfZGV2aWNlX3VuaW5pdChzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMjcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxMjg6XHRzdHJ1Y3QgYm5nZV9hdXhyX3ByaXYgKmF1eF9wcml2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMjktXHRzdHJ1Y3QgYXV4aWxpYXJ5X2RldmljZSAqYWRldjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTEzOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTQwOnN0YXRpYyB2b2lkIGJuZ2VfYXV4X2Rldl9yZWxlYXNlKHN0cnVjdCBkZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTQxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTQyOlx0c3RydWN0IGJuZ2VfYXV4cl9wcml2ICphdXhfcHJpdiA9XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE0MzpcdFx0XHRjb250YWluZXJfb2YoZGV2LCBzdHJ1Y3QgYm5nZV9hdXhyX3ByaXYsIGF1eF9kZXYuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTQ0Olx0c3RydWN0IGJuZ2VfYXV4cl9kZXYgKmF1eHJfZGV2ID0gYXV4X3ByaXYtXHUwMDNlYXV4cl9kZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE0NTpcdHN0cnVjdCBibmdlX2RldiAqYmQgPSBwY2lfZ2V0X2RydmRhdGEodG9fcGNpX2RldihkZXYtXHUwMDNlcGFyZW50KSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE0Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTQ3Olx0aWRhX2ZyZWUoXHUwMDI2Ym5nZV9hdXhfZGV2X2lkcywgYXV4X3ByaXYtXHUwMDNlaWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xNDgtXHRpZiAoYXV4cl9kZXYpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE1Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTU3OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfZGVsKHN0cnVjdCBibmdlX2RldiAqYmQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE1OC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xNjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE2NTpzdGF0aWMgdm9pZCBibmdlX3NldF9hdXhyX2Rldl9pbmZvKHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2RldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTY2Olx0XHRcdFx0ICAgc3RydWN0IGJuZ2VfZGV2ICpiZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTY3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE4NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTg2OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfYWRkKHN0cnVjdCBibmdlX2RldiAqYmQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE4Ny17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjIwNjp2b2lkIGJuZ2VfcmRtYV9hdXhfZGV2aWNlX2luaXQoc3RydWN0IGJuZ2VfZGV2ICpiZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjA3LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjA4LVx0c3RydWN0IGF1eGlsaWFyeV9kZXZpY2UgKmF1eF9kZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjIwOTpcdHN0cnVjdCBibmdlX2F1eHJfaW5mbyAqYXV4cl9pbmZvO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyMTA6XHRzdHJ1Y3QgYm5nZV9hdXhyX3ByaXYgKmF1eF9wcml2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyMTE6XHRzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYXV4cl9kZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTIxMi1cdGludCByYztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyMTQ6XHRpZiAoIWJuZ2VfaXNfcm9jZV9lbihiZCkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTIxNS1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjIwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyMjE6XHRhdXhfcHJpdi1cdTAwM2VpZCA9IGlkYV9hbGxvYyhcdTAwMjZibmdlX2F1eF9kZXZfaWRzLCBHRlBfS0VSTkVMKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjIyLVx0aWYgKGF1eF9wcml2LVx1MDAzZWlkIFx1MDAzYyAwKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMzEtXHRhdXhfZGV2LVx1MDAzZWRldi5wYXJlbnQgPSBcdTAwMjZiZC1cdTAwM2VwZGV2LVx1MDAzZWRldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjMyOlx0YXV4X2Rldi1cdTAwM2VkZXYucmVsZWFzZSA9IGJuZ2VfYXV4X2Rldl9yZWxlYXNlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMzMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMzUtXHRpZiAocmMpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjM2Olx0XHRpZGFfZnJlZShcdTAwMjZibmdlX2F1eF9kZXZfaWRzLCBhdXhfcHJpdi1cdTAwM2VpZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTIzNy1cdFx0a2ZyZWUoYXV4X3ByaXYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjUzLVx0YmQtXHUwMDNlYXV4cl9kZXYgPSBhdXhyX2RldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjU0Olx0Ym5nZV9zZXRfYXV4cl9kZXZfaW5mbyhhdXhyX2RldiwgYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yNTUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaD0xND1zdHJ1Y3QgaHdybV9hc3luY19ldmVudF9jbXBsO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaDoxNTpzdHJ1Y3QgYm5nZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtMTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjE3OnN0cnVjdCBibmdlX21zaXhfaW5mbyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTE4LVx0dTMyXHR2ZWN0b3I7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC0yMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6MjM6c3RydWN0IGJuZ2VfZndfbXNnIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtMjQtXHR2b2lkXHQqbXNnO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtMzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjMxOnN0cnVjdCBibmdlX2F1eHJfaW5mbyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTMyLVx0dm9pZFx0XHQqaGFuZGxlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg9MzY9ZW51bSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC00NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6NDU6c3RydWN0IGJuZ2VfYXV4cl9kZXYge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC00Ni1cdHN0cnVjdCBuZXRfZGV2aWNlXHQqbmV0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtNDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjUwOlx0c3RydWN0IGJuZ2VfbXNpeF9pbmZvXHRtc2l4X2luZm9bQk5HRV9NQVhfUk9DRV9NU0lYXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtNTEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC01My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6NTQ6XHRzdHJ1Y3QgYm5nZV9hdXhyX2luZm9cdCphdXhyX2luZm87XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTU1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtNzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjc1OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfdW5pbml0KHN0cnVjdCBibmdlX2RldiAqYmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjc2OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfZGVsKHN0cnVjdCBibmdlX2RldiAqYmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjc3OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfYWRkKHN0cnVjdCBibmdlX2RldiAqYmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjc4OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfaW5pdChzdHJ1Y3QgYm5nZV9kZXYgKmJkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaDo3OTppbnQgYm5nZV9yZWdpc3Rlcl9kZXYoc3RydWN0IGJuZ2VfYXV4cl9kZXYgKmFkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTgwLVx0XHQgICAgICB2b2lkICpoYW5kbGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaDo4MTp2b2lkIGJuZ2VfdW5yZWdpc3Rlcl9kZXYoc3RydWN0IGJuZ2VfYXV4cl9kZXYgKmFkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaDo4MjppbnQgYm5nZV9zZW5kX21zZyhzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYWRldiwgc3RydWN0IGJuZ2VfZndfbXNnICpmd19tc2cpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC04My1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjk6I2luY2x1ZGUgXCYjMzQ7Ym5nZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEwOiNpbmNsdWRlIFwmIzM0O2JuZ2VfZGV2bGluay5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjExOiNpbmNsdWRlIFwmIzM0O2JuZ2VfaHdybS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEyOiNpbmNsdWRlIFwmIzM0O2JuZ2VfaHdybV9saWIuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMzojaW5jbHVkZSBcJiMzNDtibmdlX2xpbmsuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jPTE2PU1PRFVMRV9ERVNDUklQVElPTihEUlZfU1VNTUFSWSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxODpjaGFyIGJuZ2VfZHJpdmVyX25hbWVbXSA9IERSVl9OQU1FO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM9MjA9c3RhdGljIGNvbnN0IHN0cnVjdCB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MjY6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGJuZ2VfcGNpX3RibFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNy1cdHsgUENJX1ZERVZJQ0UoQlJPQURDT00sIDB4MTc4MCksIC5kcml2ZXJfZGF0YSA9IEJDTTU3NzA4IH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMTpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgYm5nZV9wY2lfdGJsKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjMzOnN0YXRpYyB2b2lkIGJuZ2VfcHJpbnRfZGV2aWNlX2luZm8oc3RydWN0IHBjaV9kZXYgKnBkZXYsIGVudW0gYm9hcmRfaWR4IGlkeClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjQzOmJvb2wgYm5nZV9hdXhfcmVnaXN0ZXJlZChzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy00NC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjQ1Olx0c3RydWN0IGJuZ2VfYXV4cl9kZXYgKmJhX2RldiA9IGJkLVx1MDAzZWF1eHJfZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy00Ni1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTUyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzo1MzpzdGF0aWMgdm9pZCBibmdlX252bV9jZmdfdmVyX2dldChzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy01NC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy01Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6NTc6XHRpZiAoIWJuZ2VfaHdybV9udm1fZGV2X2luZm8oYmQsIFx1MDAyNm52bV9pbmZvKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNTgtXHRcdHNucHJpbnRmKGJkLVx1MDAzZW52bV9jZmdfdmVyLCBGV19WRVJfU1RSX0xFTiwgXCYjMzQ7JWQuJWQuJWRcJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy02Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6NjM6c3RhdGljIGludCBibmdlX2Z1bmNfcWNhcHMoc3RydWN0IGJuZ2VfZGV2ICpiZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNjQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjY3Olx0cmMgPSBibmdlX2h3cm1fZnVuY19xY2FwcyhiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTY4LVx0aWYgKHJjKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjcxOlx0cmMgPSBibmdlX2h3cm1fcXVldWVfcXBvcnRjZmcoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy03Mi1cdGlmIChyYykge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjgwOnN0YXRpYyBpbnQgYm5nZV9mdW5jX3FyY2Fwc19xY2ZnKHN0cnVjdCBibmdlX2RldiAqYmQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTgxLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTgzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzo4NDpcdHJjID0gYm5nZV9od3JtX2Z1bmNfcmVzY19xY2FwcyhiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTg1LVx0aWYgKHJjKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy04OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6OTA6XHRyYyA9IGJuZ2VfaHdybV9mdW5jX3FjZmcoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy05MS1cdGlmIChyYykge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtOTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjk2Olx0cmMgPSBibmdlX2h3cm1fdm5pY19xY2FwcyhiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTk3LVx0aWYgKHJjKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xMDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEwNTpzdGF0aWMgdm9pZCBibmdlX2Z3X3VucmVnaXN0ZXJfZGV2KHN0cnVjdCBibmdlX2RldiAqYmQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEwNi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEwNy1cdC8qIGN0eCBtZW0gZnJlZSBhZnRlciB1bnJndHIgb25seSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMDg6XHRibmdlX2h3cm1fZnVuY19kcnZfdW5yZ3RyKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTA5Olx0Ym5nZV9mcmVlX2N0eF9tZW0oYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xMTAtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xMTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjExMjpzdGF0aWMgdm9pZCBibmdlX3NldF9kZmx0X3Jzc19oYXNoX3R5cGUoc3RydWN0IGJuZ2VfZGV2ICpiZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTEzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEyMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTIyOnN0YXRpYyBpbnQgYm5nZV9md19yZWdpc3Rlcl9kZXYoc3RydWN0IGJuZ2VfZGV2ICpiZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTIzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEyNi1cdGJkLVx1MDAzZWZ3X2NhcCA9IDA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEyNzpcdHJjID0gYm5nZV9od3JtX3Zlcl9nZXQoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xMjgtXHRpZiAocmMpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEzMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTMzOlx0Ym5nZV9udm1fY2ZnX3Zlcl9nZXQoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xMzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEzNTpcdHJjID0gYm5nZV9od3JtX2Z1bmNfcmVzZXQoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xMzYtXHRpZiAocmMpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE0MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTQxOlx0Ym5nZV9od3JtX2Z3X3NldF90aW1lKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNDMtXHQvKiBHZXQgdGhlIHJlc291cmNlcyBhbmQgY29uZmlndXJhdGlvbiBmcm9tIGZpcm13YXJlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjE0NDpcdHJjID0gYm5nZV9mdW5jX3FjYXBzKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTQ1LVx0aWYgKHJjKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjE1MDpcdHJjID0gYm5nZV9hbGxvY19jdHhfbWVtKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTUxLVx0aWYgKHJjKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjE1NjpcdHJjID0gYm5nZV9od3JtX2Z1bmNfZHJ2X3JndHIoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNTctXHRpZiAocmMpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE2MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTYyOlx0cmMgPSBibmdlX2Z1bmNfcXJjYXBzX3FjZmcoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNjMtXHRpZiAocmMpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE2Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTY4Olx0Ym5nZV9zZXRfZGZsdF9yc3NfaGFzaF90eXBlKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTY5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTcyLWVycl9mdW5jX3Vucmd0cjpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTczOlx0Ym5nZV9od3JtX2Z1bmNfZHJ2X3Vucmd0cihiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE3NC1lcnJfZnJlZV9jdHhfbWVtOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxNzU6XHRibmdlX2ZyZWVfY3R4X21lbShiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE3Ni1cdHJldHVybiByYztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE3OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTc5OnN0YXRpYyB2b2lkIGJuZ2VfcGNpX2Rpc2FibGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE4MC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xODUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjE4NjpzdGF0aWMgaW50IGJuZ2VfcGNpX2VuYWJsZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTg3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTIwMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MjAzOlx0cmMgPSBwY2lfcmVxdWVzdF9yZWdpb25zKHBkZXYsIGJuZ2VfZHJpdmVyX25hbWUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yMDQtXHRpZiAocmMpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTIxOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MjIwOnN0YXRpYyB2b2lkIGJuZ2VfdW5tYXBfYmFycyhzdHJ1Y3QgcGNpX2RldiAqcGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjIxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MjIyOlx0c3RydWN0IGJuZ2VfZGV2ICpiZCA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjIzLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjM0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoyMzU6c3RhdGljIHZvaWQgYm5nZV9zZXRfbWF4X2Z1bmNfaXJxcyhzdHJ1Y3QgYm5nZV9kZXYgKmJkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yMzYtXHRcdFx0XHQgICB1bnNpZ25lZCBpbnQgbWF4X2lycXMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNDAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI0MTpzdGF0aWMgaW50IGJuZ2VfZ2V0X21heF9pcnEoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI0Mi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNDgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI0OTpzdGF0aWMgaW50IGJuZ2VfbWFwX2RiX2JhcihzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNTAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjYwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoyNjE6c3RhdGljIGludCBibmdlX3Byb2JlX29uZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjYyLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjYzLVx0dW5zaWduZWQgaW50IG1heF9pcnFzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoyNjQ6XHRzdHJ1Y3QgYm5nZV9kZXYgKmJkO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNjUtXHRpbnQgcmM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI4MDpcdHJjID0gYm5nZV9wY2lfZW5hYmxlKHBkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yODEtXHRpZiAocmMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yODMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI4NDpcdGJuZ2VfcHJpbnRfZGV2aWNlX2luZm8ocGRldiwgZW50LVx1MDAzZWRyaXZlcl9kYXRhKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoyODY6XHRiZCA9IGJuZ2VfZGV2bGlua19hbGxvYyhwZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjg3LVx0aWYgKCFiZCkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjk5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMDA6XHRyYyA9IGJuZ2VfaW5pdF9od3JtX3Jlc291cmNlcyhiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMwMS1cdGlmIChyYylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMwMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzA0Olx0cmMgPSBibmdlX2Z3X3JlZ2lzdGVyX2RldihiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMwNS1cdGlmIChyYykge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzA5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMTA6XHRibmdlX2RldmxpbmtfcmVnaXN0ZXIoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjMxMjpcdG1heF9pcnFzID0gYm5nZV9nZXRfbWF4X2lycShwZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzEzOlx0Ym5nZV9zZXRfbWF4X2Z1bmNfaXJxcyhiZCwgbWF4X2lycXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjMxNTpcdGJuZ2VfYXV4X2luaXRfZGZsdF9jb25maWcoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjMxNzpcdHJjID0gYm5nZV9uZXRfaW5pdF9kZmx0X2NvbmZpZyhiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMxOC1cdGlmIChyYykge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzIzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMjQ6XHRyYyA9IGJuZ2VfbWFwX2RiX2JhcihiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMyNS1cdGlmIChyYykge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzM0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMzU6XHRibmdlX3JkbWFfYXV4X2RldmljZV9pbml0KGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzM2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMzc6XHRyYyA9IGJuZ2VfYWxsb2NfaXJxcyhiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMzOC1cdGlmIChyYykge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNDM6XHRyYyA9IGJuZ2VfbmV0ZGV2X2FsbG9jKGJkLCBtYXhfaXJxcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM0NC1cdGlmIChyYylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM0Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzQ3Olx0Ym5nZV9yZG1hX2F1eF9kZXZpY2VfYWRkKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzQ4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzUzLWVycl9mcmVlX2lycTpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzU0Olx0Ym5nZV9mcmVlX2lycXMoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM1Ni1lcnJfdW5pbml0X2F1eHI6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjM1NzpcdGJuZ2VfcmRtYV9hdXhfZGV2aWNlX3VuaW5pdChiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM1OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzU5LWVycl9jb25maWdfdW5pbml0OlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNjA6XHRibmdlX25ldF91bmluaXRfZGZsdF9jb25maWcoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM2Mi1lcnJfZndfcmVnOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNjM6XHRibmdlX2RldmxpbmtfdW5yZWdpc3RlcihiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjM2NDpcdGJuZ2VfZndfdW5yZWdpc3Rlcl9kZXYoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM2Ni1lcnJfaHdybV9jbGVhbnVwOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNjc6XHRibmdlX2NsZWFudXBfaHdybV9yZXNvdXJjZXMoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM2OS1lcnJfYmFyX3VubWFwOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNzA6XHRibmdlX3VubWFwX2JhcnMocGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM3MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzcyLWVycl9kZXZsX2ZyZWU6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjM3MzpcdGJuZ2VfZGV2bGlua19mcmVlKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzc0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNzUtZXJyX3BjaV9kaXNhYmxlOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNzY6XHRibmdlX3BjaV9kaXNhYmxlKHBkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNzctXHRyZXR1cm4gcmM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjM4MDpzdGF0aWMgdm9pZCBibmdlX3JlbW92ZV9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM4MS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjM4MjpcdHN0cnVjdCBibmdlX2RldiAqYmQgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7XG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNyAxNzowMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNzAyNgoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDIxNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlICYjMzQ7Ym5nZSYjMzQ7IERyaXZlciBhbmQgaXRzIEltcGxpY2F0aW9ucyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBkcml2ZXIsIGBibmdlYC4gVGhlIG5hbWUgc3VnZ2VzdHMgaXQmIzM5O3MgYSBCcm9hZGNvbSBFdGhlcm5ldCBkcml2ZXIsIHdoaWNoIGlzIGEgY29tbW9uIHN0YXJ0aW5nIHBvaW50LiBCdXQsIGhvbGQgb24gYSBzZWNvbmTigKYgYGJuZ2VgIGlzbiYjMzk7dCBpbW1lZGlhdGVseSByaW5naW5nIGFueSBiZWxscyBhcyBhIHN0YW5kYXJkIHVwc3RyZWFtIExpbnV4IGRyaXZlci4gVGhhdCYjMzk7cyBhIHJlZCBmbGFnLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGlzIGlzIGFuIGFjdHVhbCwgcGh5c2ljYWwgZHJpdmVyLCBvciBpZiBpdCYjMzk7cyBzb21ldGhpbmcgc3BlY2lmaWMgdG8gdGhpcyB0ZXN0aW5nIGVudmlyb25tZW50IOKAkyBtYXliZSBhIHN5emthbGxlciBwc2V1ZG8tZHJpdmVyLCBvciBzb21ldGhpbmcgc2ltaWxhcj8KCkFoYSwgdGhlIHBhdGNoIGluZGljYXRlcyBpdCYjMzk7cyBsb2NhdGVkIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmNgLiBUaGF0IGdpdmVzIG1lIGEgYml0IG1vcmUgY29uZmlkZW5jZSBpdCBtaWdodCBiZSBhICpyZWFsKiBkcml2ZXIuIExldCYjMzk7cyBkaWcgZGVlcGVyIGFuZCBzZWUgaWYgaXQmIzM5O3MgdGllZCB0byBwaHlzaWNhbCBoYXJkd2FyZS4gSSBuZWVkIHRoZSBQQ0kgSURzLi4uIGdvdCB0aGVtOiBgeyBQQ0lfVkRFVklDRShCUk9BRENPTSwgMHgxNzgwKSwgLmRyaXZlcl9kYXRhID0gQkNNNTc3MDggfWAuIE9rYXksIHRoYXQmIzM5O3MgY3J1Y2lhbC4gCgpJZiB0aGlzIHBvaW50cyB0byBhbiBhY3R1YWwgaGFyZHdhcmUgY2FyZCwgbGlrZSB0aGUgQkNNNTc3MDgsIHRoZW4gdGhlcmUmIzM5O3MgYW4gaW1tZWRpYXRlIHByb2JsZW0uIEl0IG1lYW5zIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYSBwaHlzaWNhbCBOSUMgdGhhdCYjMzk7cyBsaWtlbHkgbm90IHJlYWNoYWJsZSBpbiB0aGUgY3VycmVudCBzZXR1cC4gVGhpcyBicmluZ3MgdXAgdGhlIG5lZWQgdG8gY2hlY2sgZm9yIFFFTVUgZW11bGF0aW9uLgoKU28sIHRoZSBrZXkgcXVlc3Rpb24gbm93IGlzOiBEb2VzIFFFTVUsIG9yIGFueSBvdGhlciB2aXJ0dWFsaXphdGlvbiwgZW11bGF0ZSB0aGUgQkNNNTc3MDggb3IgdGhlIGBibmdlYCBkcml2ZXI/IEkmIzM5O2xsIGNoZWNrIGlmIGBDT05GSUdfQk5HRWAgaXMgZGVmaW5lZCBpbiB0aGUga2VybmVsIHRyZWUuIFRoYXQgd2lsbCBiZSB0aGUgbmV4dCBzdGVwLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI3IDE3OjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBCTkdFJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL0tjb25maWc9MjUwPWNvbmZpZyBCTlhUX0hXTU9OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vS2NvbmZpZy0yNTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9LY29uZmlnOjI1ODpjb25maWcgQk5HRVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vS2NvbmZpZy0yNTktXHR0cmlzdGF0ZSBcJiMzNDtCcm9hZGNvbSBUaG9yVWx0cmEgRXRoZXJuZXQgZGV2aWNlIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNyAxNzowNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNzczOQoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDI2MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIEJyb2FkY29tIFRob3JVbHRyYSBFdGhlcm5ldCBEZXZpY2UgU3VwcG9ydCoqCgpPa2F5LCBzbyB0aGUgaW5pdGlhbCBxdWVzdGlvbiBpcyBhYm91dCBCcm9hZGNvbSYjMzk7cyBUaG9yVWx0cmEgRXRoZXJuZXQgZGV2aWNlIGFuZCBpdHMgc3VwcG9ydC4gTXkgZmlyc3QgdGhvdWdodCBpcyB3aGV0aGVyIHRoaXMgaXMgYSBwaHlzaWNhbCBQQ0llIGNhcmQsIG1lYW5pbmcgaXQmIzM5O3Mgbm90IHNvbWV0aGluZyB0eXBpY2FsbHkgZW11bGF0ZWQgaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50LiBUaGUgYW5zd2VyIGNvbmZpcm1zIGl0JiMzOTtzIHBoeXNpY2FsIGhhcmR3YXJlLgoKQWxyaWdodCwgbGV0JiMzOTtzIHN0ZXAgYmFjayBhbmQgY29uc2lkZXIgUUVNVSBlbXVsYXRpb24uIEkgaW1tZWRpYXRlbHkgcnVuIHRocm91Z2ggdGhlIGNvbW1vbiBuZXR3b3JrIGRldmljZSBlbXVsYXRpb25zIEkmIzM5O20gZmFtaWxpYXIgd2l0aCDigJMgZTEwMDAsIGUxMDAwZSwgcnRsODEzOSwgcGNuZXQsIG5lMmtfcGNpLCB2bXhuZXQzLCB2aXJ0aW8tbmV0LiBOb25lIG9mIHRob3NlIGFyZSB0aGUgVGhvclVsdHJhLiBTbywgUUVNVSBsaWtlbHkgKmRvZXNuJiMzOTt0KiBlbXVsYXRlIGl0IGRpcmVjdGx5LgoKTmV4dCwgSSBuZWVkIHRvIGNoZWNrIGlmIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYSBkcml2ZXIgZGVzaWduZWQgZm9yIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIFRoZSBwcm9tcHQgcmVmZXJlbmNlcyB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVycyBhc3NvY2lhdGVkIHdpdGggUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFVzLCB0aGluZ3MgbGlrZSBtbHhzdywgcGRzX2NvcmUsIHFlZCwgaW9uaWMsIGFuZCBhbWRncHUgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIFFFTVUuIFRoaXMgbWFrZXMgbWUgc3VzcGVjdCBCTkdFICppcyogc3VjaCBhIHBoeXNpY2FsIGRldmljZS4gTGV0JiMzOTtzIGNvbmZpcm0gaXQmIzM5O3MgYSBwaHlzaWNhbCBjYXJkLgoKSWYgaXQgKmlzKiBwaHlzaWNhbCwgdGhlbiBpdCYjMzk7cyBhbG1vc3QgY2VydGFpbmx5IG5vdCBnb2luZyB0byBiZSBhY2Nlc3NpYmxlIHdpdGhpbiBlbnZpcm9ubWVudHMgbGlrZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUgb3IsIGltcG9ydGFudGx5LCBvdXIgUUVNVSBzZXR1cC4gSXQgbWFrZXMgc2Vuc2UgdG8gdmVyaWZ5LgoKVG8gbmFpbCBpdCBkb3duIGNvbXBsZXRlbHksIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBjaGVjayB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL0tjb25maWdgIGZpbGUgZm9yIHRoZSBgQk5HRWAgZHJpdmVyIGNvbmZpZ3VyYXRpb24uIFRoYXQmIzM5O2xsIHByb3ZpZGUgdGhlIGRlZmluaXRpdmUgYW5zd2VyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI3IDE3OjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDI1MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgMjUwOlx0Y29uZmlnIEJOWFRfSFdNT05cbiAyNTE6XHRcdGJvb2wgXCYjMzQ7QnJvYWRjb20gTmV0WHRyZW1lLUMvRSBIV01PTiBzdXBwb3J0XCYjMzQ7XG4gMjUyOlx0XHRkZWZhdWx0IHlcbiAyNTM6XHRcdGRlcGVuZHMgb24gQk5YVCBcdTAwMjZcdTAwMjYgSFdNT04gXHUwMDI2XHUwMDI2ICEoQk5YVD15IFx1MDAyNlx1MDAyNiBIV01PTj1tKVxuIDI1NDpcdFx0aGVscFxuIDI1NTpcdFx0ICBTYXkgWSBpZiB5b3Ugd2FudCB0byBleHBvc2UgdGhlIHRoZXJtYWwgc2Vuc29yIGRhdGEgb24gTmV0WHRyZW1lLUMvRVxuIDI1NjpcdFx0ICBkZXZpY2VzLCB2aWEgdGhlIGh3bW9uIHN5c2ZzIGludGVyZmFjZS5cbiAyNTc6XHRcbiAyNTg6XHRjb25maWcgQk5HRVxuIDI1OTpcdFx0dHJpc3RhdGUgXCYjMzQ7QnJvYWRjb20gVGhvclVsdHJhIEV0aGVybmV0IGRldmljZSBzdXBwb3J0XCYjMzQ7XG4gMjYwOlx0XHRkZXBlbmRzIG9uIFBDSVxuIDI2MTpcdFx0c2VsZWN0IE5FVF9ERVZMSU5LXG4gMjYyOlx0XHRzZWxlY3QgUEFHRV9QT09MXG4gMjYzOlx0XHRzZWxlY3QgQVVYSUxJQVJZX0JVU1xuIDI2NDpcdFx0aGVscFxuIDI2NTpcdFx0ICBUaGlzIGRyaXZlciBzdXBwb3J0cyBCcm9hZGNvbSBUaG9yVWx0cmEgNTAvMTAwLzIwMC80MDAvODAwIGdpZ2FiaXRcbiAyNjY6XHRcdCAgRXRoZXJuZXQgY2FyZHMuIFRoZSBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgYm5nX2VuLiBUbyBjb21waWxlIHRoaXNcbiAyNjc6XHRcdCAgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxuIDI2ODpcdFxuIDI2OTpcdGNvbmZpZyBCQ01BU1BcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNyAxNzowNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxODcxOQoJCQkJCQkJb3V0cHV0OiAxMTAKCQkJCQkJCXRob3VnaHRzOiAyODUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgQnJvYWRjb20gVGhvclVsdHJhIEV0aGVybmV0IENhcmQqKgoKT2theSwgaGVyZSYjMzk7cyB0aGUgZGVhbDogQnJvYWRjb20mIzM5O3MgVGhvclVsdHJhIGNhcmRzLCB0aG9zZSA1MC8xMDAvMjAwLzQwMC84MDAgZ2lnYWJpdCBiZWFzdHMsIGFyZSAqZGVmaW5pdGVseSogcGh5c2ljYWwgUENJZSBoYXJkd2FyZS4gTm8gc29mdHdhcmUgZW11bGF0aW9uIGluIHRoZSBzdGFuZGFyZCBRRU1VIHNldHVwLCB3aGljaCBpbW1lZGlhdGVseSB0ZWxscyBtZSB0aGV5JiMzOTtyZSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIGxpa2UgR29vZ2xlIENvbXB1dGUgRW5naW5lIG9yIGEgdHlwaWNhbCBRRU1VIGluc3RhbmNlLiBTbywgKldvcnRoRnV6emluZz1mYWxzZSogaXMgdGhlIGltbWVkaWF0ZSBjb25jbHVzaW9uLgoKTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrLCB0aG91Z2gsIGJlY2F1c2UgSSBkb24mIzM5O3Qgd2FudCB0byBtaXNzIGFueXRoaW5nLiBJcyB0aGVyZSBhIHNvZnR3YXJlIGVtdWxhdG9yIGx1cmtpbmcgaW4gdGhlIGtlcm5lbCBzb21ld2hlcmU/IE5vcGUuIElzIGl0IGEgdmlydGlvIGRldmljZT8gQWJzb2x1dGVseSBub3Q7IGl0JiMzOTtzIGEgUENJIGRldmljZSB3aXRoIElEIDB4MTc4MC4gU28sIGl0JiMzOTtzIGEgcGh5c2ljYWwgaGFyZHdhcmUgY2FyZCwgcGxhaW4gYW5kIHNpbXBsZS4KCk5vdywgbGV0JiMzOTtzIGdvIGJhY2sgYW5kIGV4YW1pbmUgdGhvc2UgaW5zdHJ1Y3Rpb25zLiBUaGV5JiMzOTtyZSB0ZWxsaW5nIG1lIHRvIHNldCAqV29ydGhGdXp6aW5nPWZhbHNlKiBpZiB0aGUgcGF0Y2ggaW5jbHVkZXMgY29kZSB0aGF0JiMzOTtzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCBldmVuIHdoZW4gdXNpbmcgZW11bGF0ZWQgaGFyZHdhcmUsIG9yIGNvZGUgdGhhdCYjMzk7cyBzcGVjaWZpYyB0byB2ZW5kb3ItZGVmaW5lZCBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIGFuZCByZXF1aXJlcyBwaHlzaWNhbCBQQ0llIGNhcmRzLgoKV2VsbCwgdGhpcyBCcm9hZGNvbSBjYXJkIHBlcmZlY3RseSBoaXRzIHRoYXQgc2Vjb25kIGJ1bGxldCBwb2ludC4gSXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUuIE5vIHdheSBhcm91bmQgaXQuCgpUaGVyZWZvcmUsIG15IGZpbmFsIGFuc3dlciBpcyAqV29ydGhGdXp6aW5nPWZhbHNlKi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjcgMTc6MDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgYGJuZ2VgIGRyaXZlciwgd2hpY2ggaXMgZm9yIEJyb2FkY29tIFRob3JVbHRyYSA1MC8xMDAvMjAwLzQwMC84MDAgZ2lnYWJpdCBFdGhlcm5ldCBjYXJkcy4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmQgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIFRoZXJlZm9yZSwgdGhlIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgYGJuZ2VgIGRyaXZlciwgd2hpY2ggaXMgZm9yIEJyb2FkY29tIFRob3JVbHRyYSA1MC8xMDAvMjAwLzQwMC84MDAgZ2lnYWJpdCBFdGhlcm5ldCBjYXJkcy4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmQgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIFRoZXJlZm9yZSwgdGhlIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNyAxNzowNTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMjdUMTc6MDI6NTIuMDc4ODUyMDM1WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTg3NzUxMjI3NjA2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGBibmdlYCBkcml2ZXIsIHdoaWNoIGlzIGZvciBCcm9hZGNvbSBUaG9yVWx0cmEgNTAvMTAwLzIwMC80MDAvODAwIGdpZ2FiaXQgRXRoZXJuZXQgY2FyZHMuIFRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBUaGVyZWZvcmUsIHRoZSBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjdUMTc6MDI6NTIuMDc4ODU4MDU1WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTUyNjcwNzg2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgYzA4M2RkYWY3MzIyYzUxMGVjOTdkYTIwNGYxNGY1Y2NjNmE3OWFjY1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEF1ZyAyNyAxNzowMjo1MCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmNcXG5pbmRleCBhNDI4OGYwMjU4Zjg3Li4xMzU3M2EyYjc4ZWYyIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9uZXRkZXYuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9uZXRkZXYuY1xcbkBAIC0zMTU1LDYgKzMxNTUsOSBAQCBzdGF0aWMgdm9pZCBibmdlX2Nsb3NlX2NvcmUoc3RydWN0IGJuZ2VfbmV0ICpibilcXG4ge1xcbiBcXHRzdHJ1Y3QgYm5nZV9kZXYgKmJkID0gYm4tXFx1MDAzZWJkO1xcbiBcXG4rXFx0aWYgKCFibi1cXHUwMDNlYm5hcGkpXFxuK1xcdFxcdHJldHVybjtcXG4rXFxuIFxcdGJuZ2VfdHhfZGlzYWJsZShibik7XFxuIFxcbiBcXHRjbGVhcl9iaXQoQk5HRV9TVEFURV9PUEVOLCBcXHUwMDI2YmQtXFx1MDAzZXN0YXRlKTtcXG5AQCAtMzI2Nyw2ICszMjcwLDQ0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0ZGV2X3N0YXRfb3BzIGJuZ2Vfc3RhdF9vcHMgPSB7XFxuIFxcdC5nZXRfYmFzZV9zdGF0c1xcdFxcdD0gYm5nZV9nZXRfYmFzZV9zdGF0cyxcXG4gfTtcXG4gXFxuK3N0YXRpYyBpbnQgYm5nZV9zZXRfZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgbmV0ZGV2X2ZlYXR1cmVzX3QgZmVhdHVyZXMpXFxuK3tcXG4rXFx0c3RydWN0IGJuZ2VfbmV0ICpibiA9IG5ldGRldl9wcml2KGRldik7XFxuK1xcdHN0cnVjdCBibmdlX2RldiAqYmQgPSBibi1cXHUwMDNlYmQ7XFxuK1xcdHUzMiBvbGRfZmxhZ3MgPSBibi1cXHUwMDNlcHJpdl9mbGFncztcXG4rXFx0dTMyIGZsYWdzID0gb2xkX2ZsYWdzO1xcbitcXHRpbnQgcmM7XFxuK1xcbitcXHRmbGFncyBcXHUwMDI2PSB+Qk5HRV9ORVRfRU5fVFBBO1xcbitcXHRpZiAoZmVhdHVyZXMgXFx1MDAyNiBORVRJRl9GX0dST19IVylcXG4rXFx0XFx0ZmxhZ3MgfD0gQk5HRV9ORVRfRU5fR1JPO1xcbitcXHRlbHNlIGlmIChmZWF0dXJlcyBcXHUwMDI2IE5FVElGX0ZfTFJPKVxcbitcXHRcXHRmbGFncyB8PSBCTkdFX05FVF9FTl9MUk87XFxuK1xcbitcXHRpZiAoZmxhZ3MgPT0gb2xkX2ZsYWdzKVxcbitcXHRcXHRyZXR1cm4gMDtcXG4rXFxuK1xcdGlmICghbmV0aWZfcnVubmluZyhkZXYpKSB7XFxuK1xcdFxcdGJuLVxcdTAwM2Vwcml2X2ZsYWdzID0gZmxhZ3M7XFxuK1xcdFxcdGJuZ2Vfc2V0X3JpbmdfcGFyYW1zKGJkKTtcXG4rXFx0XFx0cmV0dXJuIDA7XFxuK1xcdH1cXG4rXFxuK1xcdGJuZ2VfY2xvc2VfY29yZShibik7XFxuK1xcdGJuLVxcdTAwM2Vwcml2X2ZsYWdzID0gZmxhZ3M7XFxuK1xcdGJuZ2Vfc2V0X3JpbmdfcGFyYW1zKGJkKTtcXG4rXFxuK1xcdHJjID0gYm5nZV9vcGVuX2NvcmUoYm4pO1xcbitcXHRpZiAocmMpIHtcXG4rXFx0XFx0bmV0ZGV2X2VycihkZXYsIFxcXCJibmdlX29wZW5fY29yZSBlcnI6ICVkXFxcXG5cXFwiLCByYyk7XFxuK1xcdFxcdGJuLVxcdTAwM2Vwcml2X2ZsYWdzID0gb2xkX2ZsYWdzO1xcbitcXHRcXHRibmdlX3NldF9yaW5nX3BhcmFtcyhiZCk7XFxuK1xcdFxcdG5ldGlmX2Nsb3NlKGRldik7XFxuK1xcdH1cXG4rXFxuK1xcdHJldHVybiByYztcXG4rfVxcbitcXG4gc3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBibmdlX25ldGRldl9vcHMgPSB7XFxuIFxcdC5uZG9fb3BlblxcdFxcdD0gYm5nZV9vcGVuLFxcbiBcXHQubmRvX3N0b3BcXHRcXHQ9IGJuZ2VfY2xvc2UsXFxuQEAgLTMyNzQsNiArMzMxNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgYm5nZV9uZXRkZXZfb3BzID0ge1xcbiBcXHQubmRvX2dldF9zdGF0czY0XFx0PSBibmdlX2dldF9zdGF0czY0LFxcbiBcXHQubmRvX3NldF9yeF9tb2RlX2FzeW5jXFx0PSBibmdlX3NldF9yeF9tb2RlLFxcbiBcXHQubmRvX2ZlYXR1cmVzX2NoZWNrXFx0PSBibmdlX2ZlYXR1cmVzX2NoZWNrLFxcbitcXHQubmRvX3NldF9mZWF0dXJlc1xcdD0gYm5nZV9zZXRfZmVhdHVyZXMsXFxuIH07XFxuIFxcbiBzdGF0aWMgdm9pZCBibmdlX2luaXRfbWFjX2FkZHIoc3RydWN0IGJuZ2VfZGV2ICpiZClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjdUMTc6MDI6NTMuNjMyMDM2MDQxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MTg2MTk4MDMzMTMwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgYGJuZ2VgIGRyaXZlciwgd2hpY2ggaXMgZm9yIEJyb2FkY29tIFRob3JVbHRyYSA1MC8xMDAvMjAwLzQwMC84MDAgZ2lnYWJpdCBFdGhlcm5ldCBjYXJkcy4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmQgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIFRoZXJlZm9yZSwgdGhlIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBjMDgzZGRhZjczMjJjNTEwZWM5N2RhMjA0ZjE0ZjVjY2M2YTc5YWNjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBBdWcgMjcgMTc6MDI6NTAgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmNcbmluZGV4IGE0Mjg4ZjAyNThmODcuLjEzNTczYTJiNzhlZjIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9uZXRkZXYuY1xuQEAgLTMxNTUsNiArMzE1NSw5IEBAIHN0YXRpYyB2b2lkIGJuZ2VfY2xvc2VfY29yZShzdHJ1Y3QgYm5nZV9uZXQgKmJuKVxuIHtcbiBcdHN0cnVjdCBibmdlX2RldiAqYmQgPSBibi1cdTAwM2ViZDtcbiBcbitcdGlmICghYm4tXHUwMDNlYm5hcGkpXG4rXHRcdHJldHVybjtcbitcbiBcdGJuZ2VfdHhfZGlzYWJsZShibik7XG4gXG4gXHRjbGVhcl9iaXQoQk5HRV9TVEFURV9PUEVOLCBcdTAwMjZiZC1cdTAwM2VzdGF0ZSk7XG5AQCAtMzI2Nyw2ICszMjcwLDQ0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0ZGV2X3N0YXRfb3BzIGJuZ2Vfc3RhdF9vcHMgPSB7XG4gXHQuZ2V0X2Jhc2Vfc3RhdHNcdFx0PSBibmdlX2dldF9iYXNlX3N0YXRzLFxuIH07XG4gXG4rc3RhdGljIGludCBibmdlX3NldF9mZWF0dXJlcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBuZXRkZXZfZmVhdHVyZXNfdCBmZWF0dXJlcylcbit7XG4rXHRzdHJ1Y3QgYm5nZV9uZXQgKmJuID0gbmV0ZGV2X3ByaXYoZGV2KTtcbitcdHN0cnVjdCBibmdlX2RldiAqYmQgPSBibi1cdTAwM2ViZDtcbitcdHUzMiBvbGRfZmxhZ3MgPSBibi1cdTAwM2Vwcml2X2ZsYWdzO1xuK1x0dTMyIGZsYWdzID0gb2xkX2ZsYWdzO1xuK1x0aW50IHJjO1xuK1xuK1x0ZmxhZ3MgXHUwMDI2PSB+Qk5HRV9ORVRfRU5fVFBBO1xuK1x0aWYgKGZlYXR1cmVzIFx1MDAyNiBORVRJRl9GX0dST19IVylcbitcdFx0ZmxhZ3MgfD0gQk5HRV9ORVRfRU5fR1JPO1xuK1x0ZWxzZSBpZiAoZmVhdHVyZXMgXHUwMDI2IE5FVElGX0ZfTFJPKVxuK1x0XHRmbGFncyB8PSBCTkdFX05FVF9FTl9MUk87XG4rXG4rXHRpZiAoZmxhZ3MgPT0gb2xkX2ZsYWdzKVxuK1x0XHRyZXR1cm4gMDtcbitcbitcdGlmICghbmV0aWZfcnVubmluZyhkZXYpKSB7XG4rXHRcdGJuLVx1MDAzZXByaXZfZmxhZ3MgPSBmbGFncztcbitcdFx0Ym5nZV9zZXRfcmluZ19wYXJhbXMoYmQpO1xuK1x0XHRyZXR1cm4gMDtcbitcdH1cbitcbitcdGJuZ2VfY2xvc2VfY29yZShibik7XG4rXHRibi1cdTAwM2Vwcml2X2ZsYWdzID0gZmxhZ3M7XG4rXHRibmdlX3NldF9yaW5nX3BhcmFtcyhiZCk7XG4rXG4rXHRyYyA9IGJuZ2Vfb3Blbl9jb3JlKGJuKTtcbitcdGlmIChyYykge1xuK1x0XHRuZXRkZXZfZXJyKGRldiwgXCJibmdlX29wZW5fY29yZSBlcnI6ICVkXFxuXCIsIHJjKTtcbitcdFx0Ym4tXHUwMDNlcHJpdl9mbGFncyA9IG9sZF9mbGFncztcbitcdFx0Ym5nZV9zZXRfcmluZ19wYXJhbXMoYmQpO1xuK1x0XHRuZXRpZl9jbG9zZShkZXYpO1xuK1x0fVxuK1xuK1x0cmV0dXJuIHJjO1xuK31cbitcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIGJuZ2VfbmV0ZGV2X29wcyA9IHtcbiBcdC5uZG9fb3Blblx0XHQ9IGJuZ2Vfb3BlbixcbiBcdC5uZG9fc3RvcFx0XHQ9IGJuZ2VfY2xvc2UsXG5AQCAtMzI3NCw2ICszMzE1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBibmdlX25ldGRldl9vcHMgPSB7XG4gXHQubmRvX2dldF9zdGF0czY0XHQ9IGJuZ2VfZ2V0X3N0YXRzNjQsXG4gXHQubmRvX3NldF9yeF9tb2RlX2FzeW5jXHQ9IGJuZ2Vfc2V0X3J4X21vZGUsXG4gXHQubmRvX2ZlYXR1cmVzX2NoZWNrXHQ9IGJuZ2VfZmVhdHVyZXNfY2hlY2ssXG4rXHQubmRvX3NldF9mZWF0dXJlc1x0PSBibmdlX3NldF9mZWF0dXJlcyxcbiB9O1xuIFxuIHN0YXRpYyB2b2lkIGJuZ2VfaW5pdF9tYWNfYWRkcihzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjdUMTc6MDI6NTMuNjMyMDM3MDYxWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjIxOTgyNTQyMzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgQnJvYWRjb20gRXRoZXJuZXQgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX25ldGRldi5jYC4gUmlnaHQgb2ZmIHRoZSBiYXQsIEkgc2VlIGEgbnVsbCBjaGVjayBiZWluZyBhZGRlZCB3aXRoaW4gYGJuZ2VfY2xvc2VfY29yZWAgZm9yIGBibi1cdTAwM2VibmFwaWAuIFN0YW5kYXJkIGRlZmVuc2l2ZSBwcm9ncmFtbWluZywgYWx3YXlzIGdvb2QgdG8gc2VlLiBQbHVzLCBhIG5ldyBmdW5jdGlvbiwgYGJuZ2Vfc2V0X2ZlYXR1cmVzYCwgaXMgYmVpbmcgaW50cm9kdWNlZCBhbmQgbGlua2VkIHRvIGBuZG9fc2V0X2ZlYXR1cmVzYCBpbiBgYm5nZV9uZXRkZXZfb3BzYC5cblxuSG1tLCBgYm5nZWDigKYgdGhhdCdzIGEgQnJvYWRjb20gRXRoZXJuZXQgZHJpdmVyLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgaXMgdGhpcyBmb3IgcGh5c2ljYWwgaGFyZHdhcmUgb3Igc29tZXRoaW5nIGVtdWxhdGVkPyBJIG5lZWQgdG8gY2xhcmlmeSB0aGF0LiBDb25zaWRlcmluZyB0aGlzIHNlZW1zIHRvIGJlIGEgcmVhbCwgbGl2ZSBFdGhlcm5ldCBkcml2ZXIsIGlzIGl0IHRhcmdldGluZyBhIHBoeXNpY2FsIFBDSWUgY2FyZCB0aGF0ICppc24ndCogcGFydCBvZiB0aGUgc3RhbmRhcmQgUUVNVSBzZXR1cD8gSSBoYXZlIHRvIGJlIHN1cmUuIEknbSB0aGlua2luZyBvZiB0aG9zZSB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVycywgbGlrZSBgbWx4c3dgLCBgcGRzX2NvcmVgLCBgcWVkYCwgYGlvbmljYCwgYW5kIGBhbWRncHVgLiBUaG9zZSBvZnRlbiBkZW1hbmQgYWN0dWFsIFBDSWUgaGFyZHdhcmUuXG5cblJpZ2h0LCBzbyB0byBtYWtlIHN1cmUsIGxldCdzIGp1c3QgbWFrZSBzdXJlIHRoaXMgZHJpdmVyIGlzICpub3QqIGVtdWxhdGVkIGluIFFFTVUuIFRpbWUgdG8gcnVuIGEgcXVpY2sgc2VhcmNoIHRocm91Z2ggdGhlIGtlcm5lbCB0cmVlIGFuZCBzZWUgd2hhdCBwb3BzIHVwIGZvciBgYm5nZWAgcmVsYXRlZCB0byB2aXJ0dWFsaXphdGlvbi4gR290dGEgY2hlY2sgdG8gbWFrZSBzdXJlIHRoaXMgZHJpdmVyIGlzbid0IHVzaW5nIGEgUENJZSBjYXJkIHRoYXQgd291bGQgcmVxdWlyZSByZWFsIGhhcmR3YXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjQxLCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjA4LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjdUMTc6MDM6MTUuODMwMjkzMTA2WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYzMDI5NDYzMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJibmdlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDYxODcgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL01ha2VmaWxlPTIwPW9iai0kKENPTkZJR19CQ01BU1ApICs9IGFzcDIvXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vTWFrZWZpbGU6MjE6b2JqLSQoQ09ORklHX0JOR0UpICs9IGJuZ2UvXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlPTM9b2JqLSQoQ09ORklHX0JOR0UpICs9IGJuZ19lbi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZS00LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6NTpibmdfZW4teSA6PSBibmdlX2NvcmUubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZTo2OlxcdCAgICBibmdlX2RldmxpbmsubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZTo3OlxcdCAgICBibmdlX2h3cm0ubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZTo4OlxcdCAgICBibmdlX2h3cm1fbGliLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6OTpcXHQgICAgYm5nZV9ybWVtLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6MTA6XFx0ICAgIGJuZ2VfcmVzYy5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlOjExOlxcdCAgICBibmdlX25ldGRldi5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlOjEyOlxcdCAgICBibmdlX2V0aHRvb2wubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZToxMzpcXHQgICAgYm5nZV9hdXhyLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6MTQ6XFx0ICAgIGJuZ2VfdHhyeC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlOjE1OlxcdCAgICBibmdlX2xpbmsub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMTAtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2V0aGVyZGV2aWNlLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MTE6I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2JuZ2UvaHNpLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MTI6I2luY2x1ZGUgXFxcImJuZ2Vfcm1lbS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjEzOiNpbmNsdWRlIFxcXCJibmdlX3Jlc2MuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoxNDojaW5jbHVkZSBcXFwiYm5nZV9hdXhyLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMTUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMDpleHRlcm4gY2hhciBibmdlX2RyaXZlcl9uYW1lW107XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg9MjI9ZW51bSBib2FyZF9pZHgge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjY6c3RydWN0IGJuZ2VfYXV4cl9wcml2IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNy1cXHRzdHJ1Y3QgYXV4aWxpYXJ5X2RldmljZSBhdXhfZGV2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjI4OlxcdHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2RldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yOS1cXHRpbnQgaWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0zMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDozMjpzdHJ1Y3QgYm5nZV9wZl9pbmZvIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0zMy1cXHR1MTZcXHRmd19maWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaD04MT1lbnVtIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTkyLSNkZWZpbmUgQk5HRV9NQVhfUVVFVUVcXHRcXHQ4XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6OTM6c3RydWN0IGJuZ2VfcXVldWVfaW5mbyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtOTQtXFx0dTggICAgICBxdWV1ZV9pZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTEwMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoxMDM6c3RydWN0IGJuZ2VfZGV2IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xMDQtXFx0c3RydWN0IGRldmljZVxcdCpkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MTQ1OlxcdHN0cnVjdCBibmdlX3BmX2luZm9cXHRwZjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xNDYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xNTMtXFx0LyogQmFja2luZyBzdG9yZXMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoxNTQ6XFx0c3RydWN0IGJuZ2VfY3R4X21lbV9pbmZvXFx0KmN0eDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xNTUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xNTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MTU4OlxcdHN0cnVjdCBibmdlX2h3X3Jlc2NcXHRod19yZXNjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTE1OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIwNC1cXHR1OFxcdFxcdFxcdG1heF9sbHRjO1xcdC8qIGxvc3NsZXNzIFRDcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjIwNTpcXHRzdHJ1Y3QgYm5nZV9xdWV1ZV9pbmZvXFx0cV9pbmZvW0JOR0VfTUFYX1FVRVVFXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMDYtXFx0dThcXHRcXHRcXHR0Y190b19xaWR4W0JOR0VfTUFYX1FVRVVFXTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIxMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMTE6XFx0c3RydWN0IGJuZ2VfaXJxXFx0XFx0KmlycV90Ymw7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjEyLVxcdHUxNlxcdFxcdFxcdGlycXNfYWNxdWlyZWQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjEzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjIxNDpcXHRzdHJ1Y3QgYm5nZV9hdXhyX3ByaXZcXHQqYXV4X3ByaXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjE1OlxcdHN0cnVjdCBibmdlX2F1eHJfZGV2XFx0KmF1eHJfZGV2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIxNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMTc6XFx0c3RydWN0IGJuZ2VfbGlua19pbmZvXFx0bGlua19pbmZvO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIxOC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIyMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMjM6c3RhdGljIGlubGluZSBib29sIGJuZ2VfaXNfcm9jZV9lbihzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIyNC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjI4OnN0YXRpYyBpbmxpbmUgYm9vbCBibmdlX2lzX2FnZ19yZXFkKHN0cnVjdCBibmdlX2RldiAqYmQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjI5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMzAtXFx0aWYgKGJkLVxcdTAwM2VuZXRkZXYpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMzE6XFx0XFx0c3RydWN0IGJuZ2VfbmV0ICpibiA9IG5ldGRldl9wcml2KGJkLVxcdTAwM2VuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIzMi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTI0Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyNDM6c3RhdGljIGlubGluZSB2b2lkIGJuZ2Vfd3JpdGVxKHN0cnVjdCBibmdlX2RldiAqYmQsIHU2NCB2YWwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjQ0LVxcdFxcdFxcdCAgICAgICB2b2lkIF9faW9tZW0gKmFkZHIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNTUtLyogRm9yIFRYIGFuZCBSWCByaW5nIGRvb3JiZWxscyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjI1NjpzdGF0aWMgaW5saW5lIHZvaWQgYm5nZV9kYl93cml0ZShzdHJ1Y3QgYm5nZV9kZXYgKmJkLCBzdHJ1Y3QgYm5nZV9kYl9pbmZvICpkYixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNTctXFx0XFx0XFx0XFx0IHUzMiBpZHgpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjU4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyNTk6XFx0Ym5nZV93cml0ZXEoYmQsIGRiLVxcdTAwM2VkYl9rZXk2NCB8IERCX1JJTkdfSURYKGRiLCBpZHgpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTI2MC1cXHRcXHQgICAgZGItXFx1MDAzZWRvb3JiZWxsKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTI2Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyNjM6Ym9vbCBibmdlX2F1eF9yZWdpc3RlcmVkKHN0cnVjdCBibmdlX2RldiAqYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjI2NDp1MTYgYm5nZV9hdXhfZ2V0X21zaXgoc3RydWN0IGJuZ2VfZGV2ICpiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjY1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xNi0jaW5jbHVkZSBcXHUwMDNjbGludXgvYXV4aWxpYXJ5X2J1cy5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTc6I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2JuZ2UvaHNpLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE5OiNpbmNsdWRlIFxcXCJibmdlLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyMDojaW5jbHVkZSBcXFwiYm5nZV9od3JtLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyMTojaW5jbHVkZSBcXFwiYm5nZV9hdXhyLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjIzOnN0YXRpYyBERUZJTkVfSURBKGJuZ2VfYXV4X2Rldl9pZHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyNTpzdGF0aWMgdm9pZCBibmdlX2ZpbGxfbXNpeF92ZWNzKHN0cnVjdCBibmdlX2RldiAqYmQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyNjpcXHRcXHRcXHRcXHRzdHJ1Y3QgYm5nZV9tc2l4X2luZm8gKmluZm8pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yNy17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyODpcXHRzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYXV4cl9kZXYgPSBiZC1cXHUwMDNlYXV4cl9kZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yOS1cXHRpbnQgbnVtX21zaXgsIGk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTQyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6NDM6aW50IGJuZ2VfcmVnaXN0ZXJfZGV2KHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2RldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTQ0LVxcdFxcdCAgICAgIHZvaWQgKmhhbmRsZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTQ1LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjQ2OlxcdHN0cnVjdCBibmdlX2RldiAqYmQgPSBwY2lfZ2V0X2RydmRhdGEoYXV4cl9kZXYtXFx1MDAzZXBkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6NDc6XFx0c3RydWN0IGJuZ2VfYXV4cl9pbmZvICphdXhyX2luZm87XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy00OC1cXHRpbnQgcmMgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy01Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjU3OlxcdGlmICghYm5nZV9hdXhfaGFzX2Vub3VnaF9yZXNvdXJjZXMoYmQpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy01OC1cXHRcXHRyYyA9IC1FTk9NRU07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTY2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6Njc6XFx0Ym5nZV9maWxsX21zaXhfdmVjcyhiZCwgYmQtXFx1MDAzZWF1eHJfZGV2LVxcdTAwM2Vtc2l4X2luZm8pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtNjgtXFx0YXV4cl9kZXYtXFx1MDAzZWZsYWdzIHw9IEJOR0VfQVJERVZfTVNJWF9BTExPQztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtNzQtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6NzU6RVhQT1JUX1NZTUJPTChibmdlX3JlZ2lzdGVyX2Rldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy03Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjc3OnZvaWQgYm5nZV91bnJlZ2lzdGVyX2RldihzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYXV4cl9kZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy03OC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzo3OTpcXHRzdHJ1Y3QgYm5nZV9kZXYgKmJkID0gcGNpX2dldF9kcnZkYXRhKGF1eHJfZGV2LVxcdTAwM2VwZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjgwOlxcdHN0cnVjdCBibmdlX2F1eHJfaW5mbyAqYXV4cl9pbmZvO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtODEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTkxLX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjkyOkVYUE9SVF9TWU1CT0woYm5nZV91bnJlZ2lzdGVyX2Rldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy05My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjk0OmludCBibmdlX3NlbmRfbXNnKHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2Rldiwgc3RydWN0IGJuZ2VfZndfbXNnICpmd19tc2cpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy05NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzo5NjpcXHRzdHJ1Y3QgYm5nZV9kZXYgKmJkID0gcGNpX2dldF9kcnZkYXRhKGF1eHJfZGV2LVxcdTAwM2VwZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTk3LVxcdHN0cnVjdCBvdXRwdXQgKnJlc3A7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTEwMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjEwMjpcXHRyYyA9IGJuZ2VfaHdybV9yZXFfaW5pdChiZCwgcmVxLCAwIC8qIGRvbid0IGNhcmUgKi8pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTAzLVxcdGlmIChyYylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTA1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTA2OlxcdHJjID0gYm5nZV9od3JtX3JlcV9yZXBsYWNlKGJkLCByZXEsIGZ3X21zZy1cXHUwMDNlbXNnLCBmd19tc2ctXFx1MDAzZW1zZ19sZW4pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTA3LVxcdGlmIChyYylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTA5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTEwOlxcdGJuZ2VfaHdybV9yZXFfdGltZW91dChiZCwgcmVxLCBmd19tc2ctXFx1MDAzZXRpbWVvdXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTExOlxcdHJlc3AgPSBibmdlX2h3cm1fcmVxX2hvbGQoYmQsIHJlcSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxMTI6XFx0cmMgPSBibmdlX2h3cm1fcmVxX3NlbmQoYmQsIHJlcSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMTMtXFx0cmVzcF9sZW4gPSBsZTE2X3RvX2NwdShyZXNwLVxcdTAwM2VyZXNwX2xlbik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTEyMC1kcm9wX3JlcTpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjEyMTpcXHRibmdlX2h3cm1fcmVxX2Ryb3AoYmQsIHJlcSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMjItXFx0cmV0dXJuIHJjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTIzLX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjEyNDpFWFBPUlRfU1lNQk9MKGJuZ2Vfc2VuZF9tc2cpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTI1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTI2OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfdW5pbml0KHN0cnVjdCBibmdlX2RldiAqYmQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMjcte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTI4OlxcdHN0cnVjdCBibmdlX2F1eHJfcHJpdiAqYXV4X3ByaXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMjktXFx0c3RydWN0IGF1eGlsaWFyeV9kZXZpY2UgKmFkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTEzOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE0MDpzdGF0aWMgdm9pZCBibmdlX2F1eF9kZXZfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xNDEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTQyOlxcdHN0cnVjdCBibmdlX2F1eHJfcHJpdiAqYXV4X3ByaXYgPVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTQzOlxcdFxcdFxcdGNvbnRhaW5lcl9vZihkZXYsIHN0cnVjdCBibmdlX2F1eHJfcHJpdiwgYXV4X2Rldi5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTQ0OlxcdHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2RldiA9IGF1eF9wcml2LVxcdTAwM2VhdXhyX2RldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE0NTpcXHRzdHJ1Y3QgYm5nZV9kZXYgKmJkID0gcGNpX2dldF9kcnZkYXRhKHRvX3BjaV9kZXYoZGV2LVxcdTAwM2VwYXJlbnQpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE0Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE0NzpcXHRpZGFfZnJlZShcXHUwMDI2Ym5nZV9hdXhfZGV2X2lkcywgYXV4X3ByaXYtXFx1MDAzZWlkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE0OC1cXHRpZiAoYXV4cl9kZXYpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTU2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTU3OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfZGVsKHN0cnVjdCBibmdlX2RldiAqYmQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xNTgte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xNjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxNjU6c3RhdGljIHZvaWQgYm5nZV9zZXRfYXV4cl9kZXZfaW5mbyhzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYXV4cl9kZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxNjY6XFx0XFx0XFx0XFx0ICAgc3RydWN0IGJuZ2VfZGV2ICpiZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE2Ny17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE4NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE4Njp2b2lkIGJuZ2VfcmRtYV9hdXhfZGV2aWNlX2FkZChzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTg3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjA1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjA2OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfaW5pdChzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjA3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTIwOC1cXHRzdHJ1Y3QgYXV4aWxpYXJ5X2RldmljZSAqYXV4X2RldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjIwOTpcXHRzdHJ1Y3QgYm5nZV9hdXhyX2luZm8gKmF1eHJfaW5mbztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjIxMDpcXHRzdHJ1Y3QgYm5nZV9hdXhyX3ByaXYgKmF1eF9wcml2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjExOlxcdHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2RldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTIxMi1cXHRpbnQgcmM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyMTQ6XFx0aWYgKCFibmdlX2lzX3JvY2VfZW4oYmQpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjE1LVxcdFxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjIwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjIxOlxcdGF1eF9wcml2LVxcdTAwM2VpZCA9IGlkYV9hbGxvYyhcXHUwMDI2Ym5nZV9hdXhfZGV2X2lkcywgR0ZQX0tFUk5FTCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMjItXFx0aWYgKGF1eF9wcml2LVxcdTAwM2VpZCBcXHUwMDNjIDApIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjMxLVxcdGF1eF9kZXYtXFx1MDAzZWRldi5wYXJlbnQgPSBcXHUwMDI2YmQtXFx1MDAzZXBkZXYtXFx1MDAzZWRldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjIzMjpcXHRhdXhfZGV2LVxcdTAwM2VkZXYucmVsZWFzZSA9IGJuZ2VfYXV4X2Rldl9yZWxlYXNlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjMzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMzUtXFx0aWYgKHJjKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyMzY6XFx0XFx0aWRhX2ZyZWUoXFx1MDAyNmJuZ2VfYXV4X2Rldl9pZHMsIGF1eF9wcml2LVxcdTAwM2VpZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMzctXFx0XFx0a2ZyZWUoYXV4X3ByaXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yNTMtXFx0YmQtXFx1MDAzZWF1eHJfZGV2ID0gYXV4cl9kZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyNTQ6XFx0Ym5nZV9zZXRfYXV4cl9kZXZfaW5mbyhhdXhyX2RldiwgYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjU1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaD0xND1zdHJ1Y3QgaHdybV9hc3luY19ldmVudF9jbXBsO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6MTU6c3RydWN0IGJuZ2U7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC0xNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjE3OnN0cnVjdCBibmdlX21zaXhfaW5mbyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC0xOC1cXHR1MzJcXHR2ZWN0b3I7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTIyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6MjM6c3RydWN0IGJuZ2VfZndfbXNnIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTI0LVxcdHZvaWRcXHQqbXNnO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC0zMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjMxOnN0cnVjdCBibmdlX2F1eHJfaW5mbyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC0zMi1cXHR2b2lkXFx0XFx0KmhhbmRsZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg9MzY9ZW51bSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTQ0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6NDU6c3RydWN0IGJuZ2VfYXV4cl9kZXYge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtNDYtXFx0c3RydWN0IG5ldF9kZXZpY2VcXHQqbmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC00OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjUwOlxcdHN0cnVjdCBibmdlX21zaXhfaW5mb1xcdG1zaXhfaW5mb1tCTkdFX01BWF9ST0NFX01TSVhdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtNTEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTUzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6NTQ6XFx0c3RydWN0IGJuZ2VfYXV4cl9pbmZvXFx0KmF1eHJfaW5mbztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTU1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC03NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjc1OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfdW5pbml0KHN0cnVjdCBibmdlX2RldiAqYmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaDo3Njp2b2lkIGJuZ2VfcmRtYV9hdXhfZGV2aWNlX2RlbChzdHJ1Y3QgYm5nZV9kZXYgKmJkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6Nzc6dm9pZCBibmdlX3JkbWFfYXV4X2RldmljZV9hZGQoc3RydWN0IGJuZ2VfZGV2ICpiZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjc4OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfaW5pdChzdHJ1Y3QgYm5nZV9kZXYgKmJkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6Nzk6aW50IGJuZ2VfcmVnaXN0ZXJfZGV2KHN0cnVjdCBibmdlX2F1eHJfZGV2ICphZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtODAtXFx0XFx0ICAgICAgdm9pZCAqaGFuZGxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjgxOnZvaWQgYm5nZV91bnJlZ2lzdGVyX2RldihzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYWRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaDo4MjppbnQgYm5nZV9zZW5kX21zZyhzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYWRldiwgc3RydWN0IGJuZ2VfZndfbXNnICpmd19tc2cpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtODMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzo5OiNpbmNsdWRlIFxcXCJibmdlLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMDojaW5jbHVkZSBcXFwiYm5nZV9kZXZsaW5rLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMTojaW5jbHVkZSBcXFwiYm5nZV9od3JtLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMjojaW5jbHVkZSBcXFwiYm5nZV9od3JtX2xpYi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTM6I2luY2x1ZGUgXFxcImJuZ2VfbGluay5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jPTE2PU1PRFVMRV9ERVNDUklQVElPTihEUlZfU1VNTUFSWSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjE4OmNoYXIgYm5nZV9kcml2ZXJfbmFtZVtdID0gRFJWX05BTUU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jPTIwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBibmdlX3BjaV90YmxbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI3LVxcdHsgUENJX1ZERVZJQ0UoQlJPQURDT00sIDB4MTc4MCksIC5kcml2ZXJfZGF0YSA9IEJDTTU3NzA4IH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMwLX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMTpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgYm5nZV9wY2lfdGJsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzM6c3RhdGljIHZvaWQgYm5nZV9wcmludF9kZXZpY2VfaW5mbyhzdHJ1Y3QgcGNpX2RldiAqcGRldiwgZW51bSBib2FyZF9pZHggaWR4KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzQte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy00Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjQzOmJvb2wgYm5nZV9hdXhfcmVnaXN0ZXJlZChzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNDQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6NDU6XFx0c3RydWN0IGJuZ2VfYXV4cl9kZXYgKmJhX2RldiA9IGJkLVxcdTAwM2VhdXhyX2RldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTQ2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy01Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjUzOnN0YXRpYyB2b2lkIGJuZ2VfbnZtX2NmZ192ZXJfZ2V0KHN0cnVjdCBibmdlX2RldiAqYmQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy01NC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTU2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6NTc6XFx0aWYgKCFibmdlX2h3cm1fbnZtX2Rldl9pbmZvKGJkLCBcXHUwMDI2bnZtX2luZm8pKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNTgtXFx0XFx0c25wcmludGYoYmQtXFx1MDAzZW52bV9jZmdfdmVyLCBGV19WRVJfU1RSX0xFTiwgXFxcIiVkLiVkLiVkXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNjItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzo2MzpzdGF0aWMgaW50IGJuZ2VfZnVuY19xY2FwcyhzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNjQte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy02Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjY3OlxcdHJjID0gYm5nZV9od3JtX2Z1bmNfcWNhcHMoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNjgtXFx0aWYgKHJjKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy03MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjcxOlxcdHJjID0gYm5nZV9od3JtX3F1ZXVlX3Fwb3J0Y2ZnKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTcyLVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy03OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjgwOnN0YXRpYyBpbnQgYm5nZV9mdW5jX3FyY2Fwc19xY2ZnKHN0cnVjdCBibmdlX2RldiAqYmQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy04MS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTgzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6ODQ6XFx0cmMgPSBibmdlX2h3cm1fZnVuY19yZXNjX3FjYXBzKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTg1LVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy04OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjkwOlxcdHJjID0gYm5nZV9od3JtX2Z1bmNfcWNmZyhiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy05MS1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtOTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzo5NjpcXHRyYyA9IGJuZ2VfaHdybV92bmljX3FjYXBzKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTk3LVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xMDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMDU6c3RhdGljIHZvaWQgYm5nZV9md191bnJlZ2lzdGVyX2RldihzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTA2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEwNy1cXHQvKiBjdHggbWVtIGZyZWUgYWZ0ZXIgdW5yZ3RyIG9ubHkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEwODpcXHRibmdlX2h3cm1fZnVuY19kcnZfdW5yZ3RyKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEwOTpcXHRibmdlX2ZyZWVfY3R4X21lbShiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xMTAtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTExLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTEyOnN0YXRpYyB2b2lkIGJuZ2Vfc2V0X2RmbHRfcnNzX2hhc2hfdHlwZShzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTEzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTIxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTIyOnN0YXRpYyBpbnQgYm5nZV9md19yZWdpc3Rlcl9kZXYoc3RydWN0IGJuZ2VfZGV2ICpiZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEyMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEyNi1cXHRiZC1cXHUwMDNlZndfY2FwID0gMDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEyNzpcXHRyYyA9IGJuZ2VfaHdybV92ZXJfZ2V0KGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEyOC1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTMyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTMzOlxcdGJuZ2VfbnZtX2NmZ192ZXJfZ2V0KGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEzNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEzNTpcXHRyYyA9IGJuZ2VfaHdybV9mdW5jX3Jlc2V0KGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEzNi1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTQwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTQxOlxcdGJuZ2VfaHdybV9md19zZXRfdGltZShiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNDMtXFx0LyogR2V0IHRoZSByZXNvdXJjZXMgYW5kIGNvbmZpZ3VyYXRpb24gZnJvbSBmaXJtd2FyZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTQ0OlxcdHJjID0gYm5nZV9mdW5jX3FjYXBzKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE0NS1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTQ5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTUwOlxcdHJjID0gYm5nZV9hbGxvY19jdHhfbWVtKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE1MS1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTU1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTU2OlxcdHJjID0gYm5nZV9od3JtX2Z1bmNfZHJ2X3JndHIoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTU3LVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxNjI6XFx0cmMgPSBibmdlX2Z1bmNfcXJjYXBzX3FjZmcoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTYzLVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxNjg6XFx0Ym5nZV9zZXRfZGZsdF9yc3NfaGFzaF90eXBlKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE2OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTcyLWVycl9mdW5jX3Vucmd0cjpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjE3MzpcXHRibmdlX2h3cm1fZnVuY19kcnZfdW5yZ3RyKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE3NC1lcnJfZnJlZV9jdHhfbWVtOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTc1OlxcdGJuZ2VfZnJlZV9jdHhfbWVtKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE3Ni1cXHRyZXR1cm4gcmM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE3OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjE3OTpzdGF0aWMgdm9pZCBibmdlX3BjaV9kaXNhYmxlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTgwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTg1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTg2OnN0YXRpYyBpbnQgYm5nZV9wY2lfZW5hYmxlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTg3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjAyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MjAzOlxcdHJjID0gcGNpX3JlcXVlc3RfcmVnaW9ucyhwZGV2LCBibmdlX2RyaXZlcl9uYW1lKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTIwNC1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MjIwOnN0YXRpYyB2b2lkIGJuZ2VfdW5tYXBfYmFycyhzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTIyMS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoyMjI6XFx0c3RydWN0IGJuZ2VfZGV2ICpiZCA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTIyMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjM0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MjM1OnN0YXRpYyB2b2lkIGJuZ2Vfc2V0X21heF9mdW5jX2lycXMoc3RydWN0IGJuZ2VfZGV2ICpiZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTIzNi1cXHRcXHRcXHRcXHQgICB1bnNpZ25lZCBpbnQgbWF4X2lycXMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI0MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI0MTpzdGF0aWMgaW50IGJuZ2VfZ2V0X21heF9pcnEoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNDIte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNDgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoyNDk6c3RhdGljIGludCBibmdlX21hcF9kYl9iYXIoc3RydWN0IGJuZ2VfZGV2ICpiZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI1MC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI2MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI2MTpzdGF0aWMgaW50IGJuZ2VfcHJvYmVfb25lKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjYyLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI2My1cXHR1bnNpZ25lZCBpbnQgbWF4X2lycXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoyNjQ6XFx0c3RydWN0IGJuZ2VfZGV2ICpiZDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI2NS1cXHRpbnQgcmM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI3OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI4MDpcXHRyYyA9IGJuZ2VfcGNpX2VuYWJsZShwZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI4MS1cXHRpZiAocmMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI4My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI4NDpcXHRibmdlX3ByaW50X2RldmljZV9pbmZvKHBkZXYsIGVudC1cXHUwMDNlZHJpdmVyX2RhdGEpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjg1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6Mjg2OlxcdGJkID0gYm5nZV9kZXZsaW5rX2FsbG9jKHBkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjg3LVxcdGlmICghYmQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjk5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzAwOlxcdHJjID0gYm5nZV9pbml0X2h3cm1fcmVzb3VyY2VzKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMwMS1cXHRpZiAocmMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMwMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjMwNDpcXHRyYyA9IGJuZ2VfZndfcmVnaXN0ZXJfZGV2KGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMwNS1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzA5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzEwOlxcdGJuZ2VfZGV2bGlua19yZWdpc3RlcihiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMTI6XFx0bWF4X2lycXMgPSBibmdlX2dldF9tYXhfaXJxKHBkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzEzOlxcdGJuZ2Vfc2V0X21heF9mdW5jX2lycXMoYmQsIG1heF9pcnFzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMxNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjMxNTpcXHRibmdlX2F1eF9pbml0X2RmbHRfY29uZmlnKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMxNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjMxNzpcXHRyYyA9IGJuZ2VfbmV0X2luaXRfZGZsdF9jb25maWcoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzE4LVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMjQ6XFx0cmMgPSBibmdlX21hcF9kYl9iYXIoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzI1LVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMzQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMzU6XFx0Ym5nZV9yZG1hX2F1eF9kZXZpY2VfaW5pdChiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMzc6XFx0cmMgPSBibmdlX2FsbG9jX2lycXMoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzM4LVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNDM6XFx0cmMgPSBibmdlX25ldGRldl9hbGxvYyhiZCwgbWF4X2lycXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzQ0LVxcdGlmIChyYylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzQ2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzQ3OlxcdGJuZ2VfcmRtYV9hdXhfZGV2aWNlX2FkZChiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNDgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM1My1lcnJfZnJlZV9pcnE6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNTQ6XFx0Ym5nZV9mcmVlX2lycXMoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzU1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzU2LWVycl91bmluaXRfYXV4cjpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjM1NzpcXHRibmdlX3JkbWFfYXV4X2RldmljZV91bmluaXQoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzU4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzU5LWVycl9jb25maWdfdW5pbml0OlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzYwOlxcdGJuZ2VfbmV0X3VuaW5pdF9kZmx0X2NvbmZpZyhiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNjItZXJyX2Z3X3JlZzpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjM2MzpcXHRibmdlX2RldmxpbmtfdW5yZWdpc3RlcihiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNjQ6XFx0Ym5nZV9md191bnJlZ2lzdGVyX2RldihiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNjYtZXJyX2h3cm1fY2xlYW51cDpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjM2NzpcXHRibmdlX2NsZWFudXBfaHdybV9yZXNvdXJjZXMoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzY4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzY5LWVycl9iYXJfdW5tYXA6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNzA6XFx0Ym5nZV91bm1hcF9iYXJzKHBkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzcxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzcyLWVycl9kZXZsX2ZyZWU6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNzM6XFx0Ym5nZV9kZXZsaW5rX2ZyZWUoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzc0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzc1LWVycl9wY2lfZGlzYWJsZTpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjM3NjpcXHRibmdlX3BjaV9kaXNhYmxlKHBkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzc3LVxcdHJldHVybiByYztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzc5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzgwOnN0YXRpYyB2b2lkIGJuZ2VfcmVtb3ZlX29uZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM4MS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozODI6XFx0c3RydWN0IGJuZ2VfZGV2ICpiZCA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2KTtcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjdUMTc6MDM6MTYuNDYwNTkzMTg3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODg4NDM4ODU4NDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBcImJuZ2VcIiBEcml2ZXIgYW5kIGl0cyBJbXBsaWNhdGlvbnMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGRyaXZlciwgYGJuZ2VgLiBUaGUgbmFtZSBzdWdnZXN0cyBpdCdzIGEgQnJvYWRjb20gRXRoZXJuZXQgZHJpdmVyLCB3aGljaCBpcyBhIGNvbW1vbiBzdGFydGluZyBwb2ludC4gQnV0LCBob2xkIG9uIGEgc2Vjb25k4oCmIGBibmdlYCBpc24ndCBpbW1lZGlhdGVseSByaW5naW5nIGFueSBiZWxscyBhcyBhIHN0YW5kYXJkIHVwc3RyZWFtIExpbnV4IGRyaXZlci4gVGhhdCdzIGEgcmVkIGZsYWcuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIHRoaXMgaXMgYW4gYWN0dWFsLCBwaHlzaWNhbCBkcml2ZXIsIG9yIGlmIGl0J3Mgc29tZXRoaW5nIHNwZWNpZmljIHRvIHRoaXMgdGVzdGluZyBlbnZpcm9ubWVudCDigJMgbWF5YmUgYSBzeXprYWxsZXIgcHNldWRvLWRyaXZlciwgb3Igc29tZXRoaW5nIHNpbWlsYXI/XG5cbkFoYSwgdGhlIHBhdGNoIGluZGljYXRlcyBpdCdzIGxvY2F0ZWQgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9uZXRkZXYuY2AuIFRoYXQgZ2l2ZXMgbWUgYSBiaXQgbW9yZSBjb25maWRlbmNlIGl0IG1pZ2h0IGJlIGEgKnJlYWwqIGRyaXZlci4gTGV0J3MgZGlnIGRlZXBlciBhbmQgc2VlIGlmIGl0J3MgdGllZCB0byBwaHlzaWNhbCBoYXJkd2FyZS4gSSBuZWVkIHRoZSBQQ0kgSURzLi4uIGdvdCB0aGVtOiBgeyBQQ0lfVkRFVklDRShCUk9BRENPTSwgMHgxNzgwKSwgLmRyaXZlcl9kYXRhID0gQkNNNTc3MDggfWAuIE9rYXksIHRoYXQncyBjcnVjaWFsLiBcblxuSWYgdGhpcyBwb2ludHMgdG8gYW4gYWN0dWFsIGhhcmR3YXJlIGNhcmQsIGxpa2UgdGhlIEJDTTU3NzA4LCB0aGVuIHRoZXJlJ3MgYW4gaW1tZWRpYXRlIHByb2JsZW0uIEl0IG1lYW5zIHdlJ3JlIGRlYWxpbmcgd2l0aCBhIHBoeXNpY2FsIE5JQyB0aGF0J3MgbGlrZWx5IG5vdCByZWFjaGFibGUgaW4gdGhlIGN1cnJlbnQgc2V0dXAuIFRoaXMgYnJpbmdzIHVwIHRoZSBuZWVkIHRvIGNoZWNrIGZvciBRRU1VIGVtdWxhdGlvbi5cblxuU28sIHRoZSBrZXkgcXVlc3Rpb24gbm93IGlzOiBEb2VzIFFFTVUsIG9yIGFueSBvdGhlciB2aXJ0dWFsaXphdGlvbiwgZW11bGF0ZSB0aGUgQkNNNTc3MDggb3IgdGhlIGBibmdlYCBkcml2ZXI/IEknbGwgY2hlY2sgaWYgYENPTkZJR19CTkdFYCBpcyBkZWZpbmVkIGluIHRoZSBrZXJuZWwgdHJlZS4gVGhhdCB3aWxsIGJlIHRoZSBuZXh0IHN0ZXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE3MDI2LCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjE0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI3VDE3OjA0OjQ1LjMwNDQ4MjMxMloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjQ2OTIxMDc0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBCTkdFXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9LY29uZmlnPTI1MD1jb25maWcgQk5YVF9IV01PTlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vS2NvbmZpZy0yNTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vS2NvbmZpZzoyNTg6Y29uZmlnIEJOR0VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9LY29uZmlnLTI1OS1cXHR0cmlzdGF0ZSBcXFwiQnJvYWRjb20gVGhvclVsdHJhIEV0aGVybmV0IGRldmljZSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yN1QxNzowNDo0Ni45NTE0MDg4MDdaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDc5Mzk4NjAxMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIEJyb2FkY29tIFRob3JVbHRyYSBFdGhlcm5ldCBEZXZpY2UgU3VwcG9ydCoqXG5cbk9rYXksIHNvIHRoZSBpbml0aWFsIHF1ZXN0aW9uIGlzIGFib3V0IEJyb2FkY29tJ3MgVGhvclVsdHJhIEV0aGVybmV0IGRldmljZSBhbmQgaXRzIHN1cHBvcnQuIE15IGZpcnN0IHRob3VnaHQgaXMgd2hldGhlciB0aGlzIGlzIGEgcGh5c2ljYWwgUENJZSBjYXJkLCBtZWFuaW5nIGl0J3Mgbm90IHNvbWV0aGluZyB0eXBpY2FsbHkgZW11bGF0ZWQgaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50LiBUaGUgYW5zd2VyIGNvbmZpcm1zIGl0J3MgcGh5c2ljYWwgaGFyZHdhcmUuXG5cbkFscmlnaHQsIGxldCdzIHN0ZXAgYmFjayBhbmQgY29uc2lkZXIgUUVNVSBlbXVsYXRpb24uIEkgaW1tZWRpYXRlbHkgcnVuIHRocm91Z2ggdGhlIGNvbW1vbiBuZXR3b3JrIGRldmljZSBlbXVsYXRpb25zIEknbSBmYW1pbGlhciB3aXRoIOKAkyBlMTAwMCwgZTEwMDBlLCBydGw4MTM5LCBwY25ldCwgbmUya19wY2ksIHZteG5ldDMsIHZpcnRpby1uZXQuIE5vbmUgb2YgdGhvc2UgYXJlIHRoZSBUaG9yVWx0cmEuIFNvLCBRRU1VIGxpa2VseSAqZG9lc24ndCogZW11bGF0ZSBpdCBkaXJlY3RseS5cblxuTmV4dCwgSSBuZWVkIHRvIGNoZWNrIGlmIHdlJ3JlIGRlYWxpbmcgd2l0aCBhIGRyaXZlciBkZXNpZ25lZCBmb3IgYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gVGhlIHByb21wdCByZWZlcmVuY2VzIHZlbmRvci1zcGVjaWZpYyBkcml2ZXJzIGFzc29jaWF0ZWQgd2l0aCBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVXMsIHRoaW5ncyBsaWtlIG1seHN3LCBwZHNfY29yZSwgcWVkLCBpb25pYywgYW5kIGFtZGdwdSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gUUVNVS4gVGhpcyBtYWtlcyBtZSBzdXNwZWN0IEJOR0UgKmlzKiBzdWNoIGEgcGh5c2ljYWwgZGV2aWNlLiBMZXQncyBjb25maXJtIGl0J3MgYSBwaHlzaWNhbCBjYXJkLlxuXG5JZiBpdCAqaXMqIHBoeXNpY2FsLCB0aGVuIGl0J3MgYWxtb3N0IGNlcnRhaW5seSBub3QgZ29pbmcgdG8gYmUgYWNjZXNzaWJsZSB3aXRoaW4gZW52aXJvbm1lbnRzIGxpa2UgR29vZ2xlIENvbXB1dGUgRW5naW5lIG9yLCBpbXBvcnRhbnRseSwgb3VyIFFFTVUgc2V0dXAuIEl0IG1ha2VzIHNlbnNlIHRvIHZlcmlmeS5cblxuVG8gbmFpbCBpdCBkb3duIGNvbXBsZXRlbHksIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBjaGVjayB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL0tjb25maWdgIGZpbGUgZm9yIHRoZSBgQk5HRWAgZHJpdmVyIGNvbmZpZ3VyYXRpb24uIFRoYXQnbGwgcHJvdmlkZSB0aGUgZGVmaW5pdGl2ZSBhbnN3ZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE3NzM5LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjYzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI3VDE3OjA0OjU3Ljc0NTM5NzgzN1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcwNzcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMjUwLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMjUwOlxcdGNvbmZpZyBCTlhUX0hXTU9OXFxuIDI1MTpcXHRcXHRib29sIFxcXCJCcm9hZGNvbSBOZXRYdHJlbWUtQy9FIEhXTU9OIHN1cHBvcnRcXFwiXFxuIDI1MjpcXHRcXHRkZWZhdWx0IHlcXG4gMjUzOlxcdFxcdGRlcGVuZHMgb24gQk5YVCBcXHUwMDI2XFx1MDAyNiBIV01PTiBcXHUwMDI2XFx1MDAyNiAhKEJOWFQ9eSBcXHUwMDI2XFx1MDAyNiBIV01PTj1tKVxcbiAyNTQ6XFx0XFx0aGVscFxcbiAyNTU6XFx0XFx0ICBTYXkgWSBpZiB5b3Ugd2FudCB0byBleHBvc2UgdGhlIHRoZXJtYWwgc2Vuc29yIGRhdGEgb24gTmV0WHRyZW1lLUMvRVxcbiAyNTY6XFx0XFx0ICBkZXZpY2VzLCB2aWEgdGhlIGh3bW9uIHN5c2ZzIGludGVyZmFjZS5cXG4gMjU3OlxcdFxcbiAyNTg6XFx0Y29uZmlnIEJOR0VcXG4gMjU5OlxcdFxcdHRyaXN0YXRlIFxcXCJCcm9hZGNvbSBUaG9yVWx0cmEgRXRoZXJuZXQgZGV2aWNlIHN1cHBvcnRcXFwiXFxuIDI2MDpcXHRcXHRkZXBlbmRzIG9uIFBDSVxcbiAyNjE6XFx0XFx0c2VsZWN0IE5FVF9ERVZMSU5LXFxuIDI2MjpcXHRcXHRzZWxlY3QgUEFHRV9QT09MXFxuIDI2MzpcXHRcXHRzZWxlY3QgQVVYSUxJQVJZX0JVU1xcbiAyNjQ6XFx0XFx0aGVscFxcbiAyNjU6XFx0XFx0ICBUaGlzIGRyaXZlciBzdXBwb3J0cyBCcm9hZGNvbSBUaG9yVWx0cmEgNTAvMTAwLzIwMC80MDAvODAwIGdpZ2FiaXRcXG4gMjY2OlxcdFxcdCAgRXRoZXJuZXQgY2FyZHMuIFRoZSBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgYm5nX2VuLiBUbyBjb21waWxlIHRoaXNcXG4gMjY3OlxcdFxcdCAgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxcbiAyNjg6XFx0XFxuIDI2OTpcXHRjb25maWcgQkNNQVNQXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI3VDE3OjA0OjU3Ljc0NTQ3MDk3N1oiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYyMDg0NTc0NTE0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIEJyb2FkY29tIFRob3JVbHRyYSBFdGhlcm5ldCBDYXJkKipcblxuT2theSwgaGVyZSdzIHRoZSBkZWFsOiBCcm9hZGNvbSdzIFRob3JVbHRyYSBjYXJkcywgdGhvc2UgNTAvMTAwLzIwMC80MDAvODAwIGdpZ2FiaXQgYmVhc3RzLCBhcmUgKmRlZmluaXRlbHkqIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUuIE5vIHNvZnR3YXJlIGVtdWxhdGlvbiBpbiB0aGUgc3RhbmRhcmQgUUVNVSBzZXR1cCwgd2hpY2ggaW1tZWRpYXRlbHkgdGVsbHMgbWUgdGhleSdyZSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIGxpa2UgR29vZ2xlIENvbXB1dGUgRW5naW5lIG9yIGEgdHlwaWNhbCBRRU1VIGluc3RhbmNlLiBTbywgKldvcnRoRnV6emluZz1mYWxzZSogaXMgdGhlIGltbWVkaWF0ZSBjb25jbHVzaW9uLlxuXG5MZXQgbWUganVzdCBkb3VibGUtY2hlY2ssIHRob3VnaCwgYmVjYXVzZSBJIGRvbid0IHdhbnQgdG8gbWlzcyBhbnl0aGluZy4gSXMgdGhlcmUgYSBzb2Z0d2FyZSBlbXVsYXRvciBsdXJraW5nIGluIHRoZSBrZXJuZWwgc29tZXdoZXJlPyBOb3BlLiBJcyBpdCBhIHZpcnRpbyBkZXZpY2U/IEFic29sdXRlbHkgbm90OyBpdCdzIGEgUENJIGRldmljZSB3aXRoIElEIDB4MTc4MC4gU28sIGl0J3MgYSBwaHlzaWNhbCBoYXJkd2FyZSBjYXJkLCBwbGFpbiBhbmQgc2ltcGxlLlxuXG5Ob3csIGxldCdzIGdvIGJhY2sgYW5kIGV4YW1pbmUgdGhvc2UgaW5zdHJ1Y3Rpb25zLiBUaGV5J3JlIHRlbGxpbmcgbWUgdG8gc2V0ICpXb3J0aEZ1enppbmc9ZmFsc2UqIGlmIHRoZSBwYXRjaCBpbmNsdWRlcyBjb2RlIHRoYXQncyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cywgZXZlbiB3aGVuIHVzaW5nIGVtdWxhdGVkIGhhcmR3YXJlLCBvciBjb2RlIHRoYXQncyBzcGVjaWZpYyB0byB2ZW5kb3ItZGVmaW5lZCBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIGFuZCByZXF1aXJlcyBwaHlzaWNhbCBQQ0llIGNhcmRzLlxuXG5XZWxsLCB0aGlzIEJyb2FkY29tIGNhcmQgcGVyZmVjdGx5IGhpdHMgdGhhdCBzZWNvbmQgYnVsbGV0IHBvaW50LiBJdCByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZS4gTm8gd2F5IGFyb3VuZCBpdC5cblxuVGhlcmVmb3JlLCBteSBmaW5hbCBhbnN3ZXIgaXMgKldvcnRoRnV6emluZz1mYWxzZSouXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4NzE5LCJPdXRwdXRUb2tlbnMiOjExMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4NSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI3VDE3OjA1OjU5LjgzMDA0NzczMVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5NTQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgYm5nZWAgZHJpdmVyLCB3aGljaCBpcyBmb3IgQnJvYWRjb20gVGhvclVsdHJhIDUwLzEwMC8yMDAvNDAwLzgwMCBnaWdhYml0IEV0aGVybmV0IGNhcmRzLiBUaGlzIGlzIGEgdmVuZG9yLXNwZWNpZmljIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZCB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gVGhlcmVmb3JlLCB0aGUgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgYm5nZWAgZHJpdmVyLCB3aGljaCBpcyBmb3IgQnJvYWRjb20gVGhvclVsdHJhIDUwLzEwMC8yMDAvNDAwLzgwMCBnaWdhYml0IEV0aGVybmV0IGNhcmRzLiBUaGlzIGlzIGEgdmVuZG9yLXNwZWNpZmljIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZCB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gVGhlcmVmb3JlLCB0aGUgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI3VDE3OjA1OjU5LjgzMDA3MDcwMVoiLCJTZXEiOjExLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTYwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowjj4qj[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-27 16:17:53 +0000 UTC FinishedAt: 2026-08-27 17:06:00 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI3IDE3OjAyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGBibmdlYCBkcml2ZXIsIHdoaWNoIGlzIGZvciBCcm9hZGNvbSBUaG9yVWx0cmEgNTAvMTAwLzIwMC80MDAvODAwIGdpZ2FiaXQgRXRoZXJuZXQgY2FyZHMuIFRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBUaGVyZWZvcmUsIHRoZSBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNyAxNzowMjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGMwODNkZGFmNzMyMmM1MTBlYzk3ZGEyMDRmMTRmNWNjYzZhNzlhY2NcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEF1ZyAyNyAxNzowMjo1MCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmNcbmluZGV4IGE0Mjg4ZjAyNThmODcuLjEzNTczYTJiNzhlZjIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9uZXRkZXYuY1xuQEAgLTMxNTUsNiAmIzQzOzMxNTUsOSBAQCBzdGF0aWMgdm9pZCBibmdlX2Nsb3NlX2NvcmUoc3RydWN0IGJuZ2VfbmV0ICpibilcbiB7XG4gXHRzdHJ1Y3QgYm5nZV9kZXYgKmJkID0gYm4tXHUwMDNlYmQ7XG4gXG4mIzQzO1x0aWYgKCFibi1cdTAwM2VibmFwaSlcbiYjNDM7XHRcdHJldHVybjtcbiYjNDM7XG4gXHRibmdlX3R4X2Rpc2FibGUoYm4pO1xuIFxuIFx0Y2xlYXJfYml0KEJOR0VfU1RBVEVfT1BFTiwgXHUwMDI2YmQtXHUwMDNlc3RhdGUpO1xuQEAgLTMyNjcsNiAmIzQzOzMyNzAsNDQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBuZXRkZXZfc3RhdF9vcHMgYm5nZV9zdGF0X29wcyA9IHtcbiBcdC5nZXRfYmFzZV9zdGF0c1x0XHQ9IGJuZ2VfZ2V0X2Jhc2Vfc3RhdHMsXG4gfTtcbiBcbiYjNDM7c3RhdGljIGludCBibmdlX3NldF9mZWF0dXJlcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBuZXRkZXZfZmVhdHVyZXNfdCBmZWF0dXJlcylcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBibmdlX25ldCAqYm4gPSBuZXRkZXZfcHJpdihkZXYpO1xuJiM0MztcdHN0cnVjdCBibmdlX2RldiAqYmQgPSBibi1cdTAwM2ViZDtcbiYjNDM7XHR1MzIgb2xkX2ZsYWdzID0gYm4tXHUwMDNlcHJpdl9mbGFncztcbiYjNDM7XHR1MzIgZmxhZ3MgPSBvbGRfZmxhZ3M7XG4mIzQzO1x0aW50IHJjO1xuJiM0MztcbiYjNDM7XHRmbGFncyBcdTAwMjY9IH5CTkdFX05FVF9FTl9UUEE7XG4mIzQzO1x0aWYgKGZlYXR1cmVzIFx1MDAyNiBORVRJRl9GX0dST19IVylcbiYjNDM7XHRcdGZsYWdzIHw9IEJOR0VfTkVUX0VOX0dSTztcbiYjNDM7XHRlbHNlIGlmIChmZWF0dXJlcyBcdTAwMjYgTkVUSUZfRl9MUk8pXG4mIzQzO1x0XHRmbGFncyB8PSBCTkdFX05FVF9FTl9MUk87XG4mIzQzO1xuJiM0MztcdGlmIChmbGFncyA9PSBvbGRfZmxhZ3MpXG4mIzQzO1x0XHRyZXR1cm4gMDtcbiYjNDM7XG4mIzQzO1x0aWYgKCFuZXRpZl9ydW5uaW5nKGRldikpIHtcbiYjNDM7XHRcdGJuLVx1MDAzZXByaXZfZmxhZ3MgPSBmbGFncztcbiYjNDM7XHRcdGJuZ2Vfc2V0X3JpbmdfcGFyYW1zKGJkKTtcbiYjNDM7XHRcdHJldHVybiAwO1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0Ym5nZV9jbG9zZV9jb3JlKGJuKTtcbiYjNDM7XHRibi1cdTAwM2Vwcml2X2ZsYWdzID0gZmxhZ3M7XG4mIzQzO1x0Ym5nZV9zZXRfcmluZ19wYXJhbXMoYmQpO1xuJiM0MztcbiYjNDM7XHRyYyA9IGJuZ2Vfb3Blbl9jb3JlKGJuKTtcbiYjNDM7XHRpZiAocmMpIHtcbiYjNDM7XHRcdG5ldGRldl9lcnIoZGV2LCBcJiMzNDtibmdlX29wZW5fY29yZSBlcnI6ICVkXFxuXCYjMzQ7LCByYyk7XG4mIzQzO1x0XHRibi1cdTAwM2Vwcml2X2ZsYWdzID0gb2xkX2ZsYWdzO1xuJiM0MztcdFx0Ym5nZV9zZXRfcmluZ19wYXJhbXMoYmQpO1xuJiM0MztcdFx0bmV0aWZfY2xvc2UoZGV2KTtcbiYjNDM7XHR9XG4mIzQzO1xuJiM0MztcdHJldHVybiByYztcbiYjNDM7fVxuJiM0MztcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIGJuZ2VfbmV0ZGV2X29wcyA9IHtcbiBcdC5uZG9fb3Blblx0XHQ9IGJuZ2Vfb3BlbixcbiBcdC5uZG9fc3RvcFx0XHQ9IGJuZ2VfY2xvc2UsXG5AQCAtMzI3NCw2ICYjNDM7MzMxNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgYm5nZV9uZXRkZXZfb3BzID0ge1xuIFx0Lm5kb19nZXRfc3RhdHM2NFx0PSBibmdlX2dldF9zdGF0czY0LFxuIFx0Lm5kb19zZXRfcnhfbW9kZV9hc3luY1x0PSBibmdlX3NldF9yeF9tb2RlLFxuIFx0Lm5kb19mZWF0dXJlc19jaGVja1x0PSBibmdlX2ZlYXR1cmVzX2NoZWNrLFxuJiM0MztcdC5uZG9fc2V0X2ZlYXR1cmVzXHQ9IGJuZ2Vfc2V0X2ZlYXR1cmVzLFxuIH07XG4gXG4gc3RhdGljIHZvaWQgYm5nZV9pbml0X21hY19hZGRyKHN0cnVjdCBibmdlX2RldiAqYmQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjcgMTc6MDI8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgYm5nZWAgZHJpdmVyLCB3aGljaCBpcyBmb3IgQnJvYWRjb20gVGhvclVsdHJhIDUwLzEwMC8yMDAvNDAwLzgwMCBnaWdhYml0IEV0aGVybmV0IGNhcmRzLiBUaGlzIGlzIGEgdmVuZG9yLXNwZWNpZmljIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZCB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gVGhlcmVmb3JlLCB0aGUgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBjMDgzZGRhZjczMjJjNTEwZWM5N2RhMjA0ZjE0ZjVjY2M2YTc5YWNjCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBBdWcgMjcgMTc6MDI6NTAgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmMKaW5kZXggYTQyODhmMDI1OGY4Ny4uMTM1NzNhMmI3OGVmMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX25ldGRldi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9uZXRkZXYuYwpAQCAtMzE1NSw2ICYjNDM7MzE1NSw5IEBAIHN0YXRpYyB2b2lkIGJuZ2VfY2xvc2VfY29yZShzdHJ1Y3QgYm5nZV9uZXQgKmJuKQogewogCXN0cnVjdCBibmdlX2RldiAqYmQgPSBibi0mZ3Q7YmQ7CiAKJiM0MzsJaWYgKCFibi0mZ3Q7Ym5hcGkpCiYjNDM7CQlyZXR1cm47CiYjNDM7CiAJYm5nZV90eF9kaXNhYmxlKGJuKTsKIAogCWNsZWFyX2JpdChCTkdFX1NUQVRFX09QRU4sICZhbXA7YmQtJmd0O3N0YXRlKTsKQEAgLTMyNjcsNiAmIzQzOzMyNzAsNDQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBuZXRkZXZfc3RhdF9vcHMgYm5nZV9zdGF0X29wcyA9IHsKIAkuZ2V0X2Jhc2Vfc3RhdHMJCT0gYm5nZV9nZXRfYmFzZV9zdGF0cywKIH07CiAKJiM0MztzdGF0aWMgaW50IGJuZ2Vfc2V0X2ZlYXR1cmVzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIG5ldGRldl9mZWF0dXJlc190IGZlYXR1cmVzKQomIzQzO3sKJiM0MzsJc3RydWN0IGJuZ2VfbmV0ICpibiA9IG5ldGRldl9wcml2KGRldik7CiYjNDM7CXN0cnVjdCBibmdlX2RldiAqYmQgPSBibi0mZ3Q7YmQ7CiYjNDM7CXUzMiBvbGRfZmxhZ3MgPSBibi0mZ3Q7cHJpdl9mbGFnczsKJiM0MzsJdTMyIGZsYWdzID0gb2xkX2ZsYWdzOwomIzQzOwlpbnQgcmM7CiYjNDM7CiYjNDM7CWZsYWdzICZhbXA7PSB+Qk5HRV9ORVRfRU5fVFBBOwomIzQzOwlpZiAoZmVhdHVyZXMgJmFtcDsgTkVUSUZfRl9HUk9fSFcpCiYjNDM7CQlmbGFncyB8PSBCTkdFX05FVF9FTl9HUk87CiYjNDM7CWVsc2UgaWYgKGZlYXR1cmVzICZhbXA7IE5FVElGX0ZfTFJPKQomIzQzOwkJZmxhZ3MgfD0gQk5HRV9ORVRfRU5fTFJPOwomIzQzOwomIzQzOwlpZiAoZmxhZ3MgPT0gb2xkX2ZsYWdzKQomIzQzOwkJcmV0dXJuIDA7CiYjNDM7CiYjNDM7CWlmICghbmV0aWZfcnVubmluZyhkZXYpKSB7CiYjNDM7CQlibi0mZ3Q7cHJpdl9mbGFncyA9IGZsYWdzOwomIzQzOwkJYm5nZV9zZXRfcmluZ19wYXJhbXMoYmQpOwomIzQzOwkJcmV0dXJuIDA7CiYjNDM7CX0KJiM0MzsKJiM0MzsJYm5nZV9jbG9zZV9jb3JlKGJuKTsKJiM0MzsJYm4tJmd0O3ByaXZfZmxhZ3MgPSBmbGFnczsKJiM0MzsJYm5nZV9zZXRfcmluZ19wYXJhbXMoYmQpOwomIzQzOwomIzQzOwlyYyA9IGJuZ2Vfb3Blbl9jb3JlKGJuKTsKJiM0MzsJaWYgKHJjKSB7CiYjNDM7CQluZXRkZXZfZXJyKGRldiwgJiMzNDtibmdlX29wZW5fY29yZSBlcnI6ICVkXG4mIzM0OywgcmMpOwomIzQzOwkJYm4tJmd0O3ByaXZfZmxhZ3MgPSBvbGRfZmxhZ3M7CiYjNDM7CQlibmdlX3NldF9yaW5nX3BhcmFtcyhiZCk7CiYjNDM7CQluZXRpZl9jbG9zZShkZXYpOwomIzQzOwl9CiYjNDM7CiYjNDM7CXJldHVybiByYzsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIGJuZ2VfbmV0ZGV2X29wcyA9IHsKIAkubmRvX29wZW4JCT0gYm5nZV9vcGVuLAogCS5uZG9fc3RvcAkJPSBibmdlX2Nsb3NlLApAQCAtMzI3NCw2ICYjNDM7MzMxNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgYm5nZV9uZXRkZXZfb3BzID0gewogCS5uZG9fZ2V0X3N0YXRzNjQJPSBibmdlX2dldF9zdGF0czY0LAogCS5uZG9fc2V0X3J4X21vZGVfYXN5bmMJPSBibmdlX3NldF9yeF9tb2RlLAogCS5uZG9fZmVhdHVyZXNfY2hlY2sJPSBibmdlX2ZlYXR1cmVzX2NoZWNrLAomIzQzOwkubmRvX3NldF9mZWF0dXJlcwk9IGJuZ2Vfc2V0X2ZlYXR1cmVzLAogfTsKIAogc3RhdGljIHZvaWQgYm5nZV9pbml0X21hY19hZGRyKHN0cnVjdCBibmdlX2RldiAqYmQpCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI3IDE3OjAyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2NDEKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAyMDgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgQnJvYWRjb20gRXRoZXJuZXQgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdHdlYWtzIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmNgLiBSaWdodCBvZmYgdGhlIGJhdCwgSSBzZWUgYSBudWxsIGNoZWNrIGJlaW5nIGFkZGVkIHdpdGhpbiBgYm5nZV9jbG9zZV9jb3JlYCBmb3IgYGJuLSZndDtibmFwaWAuIFN0YW5kYXJkIGRlZmVuc2l2ZSBwcm9ncmFtbWluZywgYWx3YXlzIGdvb2QgdG8gc2VlLiBQbHVzLCBhIG5ldyBmdW5jdGlvbiwgYGJuZ2Vfc2V0X2ZlYXR1cmVzYCwgaXMgYmVpbmcgaW50cm9kdWNlZCBhbmQgbGlua2VkIHRvIGBuZG9fc2V0X2ZlYXR1cmVzYCBpbiBgYm5nZV9uZXRkZXZfb3BzYC4KCkhtbSwgYGJuZ2Vg4oCmIHRoYXQmIzM5O3MgYSBCcm9hZGNvbSBFdGhlcm5ldCBkcml2ZXIuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBpcyB0aGlzIGZvciBwaHlzaWNhbCBoYXJkd2FyZSBvciBzb21ldGhpbmcgZW11bGF0ZWQ/IEkgbmVlZCB0byBjbGFyaWZ5IHRoYXQuIENvbnNpZGVyaW5nIHRoaXMgc2VlbXMgdG8gYmUgYSByZWFsLCBsaXZlIEV0aGVybmV0IGRyaXZlciwgaXMgaXQgdGFyZ2V0aW5nIGEgcGh5c2ljYWwgUENJZSBjYXJkIHRoYXQgKmlzbiYjMzk7dCogcGFydCBvZiB0aGUgc3RhbmRhcmQgUUVNVSBzZXR1cD8gSSBoYXZlIHRvIGJlIHN1cmUuIEkmIzM5O20gdGhpbmtpbmcgb2YgdGhvc2UgdmVuZG9yLXNwZWNpZmljIGRyaXZlcnMsIGxpa2UgYG1seHN3YCwgYHBkc19jb3JlYCwgYHFlZGAsIGBpb25pY2AsIGFuZCBgYW1kZ3B1YC4gVGhvc2Ugb2Z0ZW4gZGVtYW5kIGFjdHVhbCBQQ0llIGhhcmR3YXJlLgoKUmlnaHQsIHNvIHRvIG1ha2Ugc3VyZSwgbGV0JiMzOTtzIGp1c3QgbWFrZSBzdXJlIHRoaXMgZHJpdmVyIGlzICpub3QqIGVtdWxhdGVkIGluIFFFTVUuIFRpbWUgdG8gcnVuIGEgcXVpY2sgc2VhcmNoIHRocm91Z2ggdGhlIGtlcm5lbCB0cmVlIGFuZCBzZWUgd2hhdCBwb3BzIHVwIGZvciBgYm5nZWAgcmVsYXRlZCB0byB2aXJ0dWFsaXphdGlvbi4gR290dGEgY2hlY2sgdG8gbWFrZSBzdXJlIHRoaXMgZHJpdmVyIGlzbiYjMzk7dCB1c2luZyBhIFBDSWUgY2FyZCB0aGF0IHdvdWxkIHJlcXVpcmUgcmVhbCBoYXJkd2FyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNyAxNzowMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtibmdlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA2MTg3IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9NYWtlZmlsZT0yMD1vYmotJChDT05GSUdfQkNNQVNQKSAmIzQzOz0gYXNwMi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL01ha2VmaWxlOjIxOm9iai0kKENPTkZJR19CTkdFKSAmIzQzOz0gYm5nZS9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlPTM9b2JqLSQoQ09ORklHX0JOR0UpICYjNDM7PSBibmdfZW4ub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZS00LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZTo1OmJuZ19lbi15IDo9IGJuZ2VfY29yZS5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlOjY6XHQgICAgYm5nZV9kZXZsaW5rLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6NzpcdCAgICBibmdlX2h3cm0ubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZTo4Olx0ICAgIGJuZ2VfaHdybV9saWIubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZTo5Olx0ICAgIGJuZ2Vfcm1lbS5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlOjEwOlx0ICAgIGJuZ2VfcmVzYy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlOjExOlx0ICAgIGJuZ2VfbmV0ZGV2Lm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6MTI6XHQgICAgYm5nZV9ldGh0b29sLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6MTM6XHQgICAgYm5nZV9hdXhyLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6MTQ6XHQgICAgYm5nZV90eHJ4Lm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6MTU6XHQgICAgYm5nZV9saW5rLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xMC0jaW5jbHVkZSBcdTAwM2NsaW51eC9ldGhlcmRldmljZS5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoxMTojaW5jbHVkZSBcdTAwM2NsaW51eC9ibmdlL2hzaS5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoxMjojaW5jbHVkZSBcJiMzNDtibmdlX3JtZW0uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MTM6I2luY2x1ZGUgXCYjMzQ7Ym5nZV9yZXNjLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjE0OiNpbmNsdWRlIFwmIzM0O2JuZ2VfYXV4ci5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xNS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjIwOmV4dGVybiBjaGFyIGJuZ2VfZHJpdmVyX25hbWVbXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg9MjI9ZW51bSBib2FyZF9pZHgge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTI1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjY6c3RydWN0IGJuZ2VfYXV4cl9wcml2IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTI3LVx0c3RydWN0IGF1eGlsaWFyeV9kZXZpY2UgYXV4X2RldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjI4Olx0c3RydWN0IGJuZ2VfYXV4cl9kZXYgKmF1eHJfZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjktXHRpbnQgaWQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDozMjpzdHJ1Y3QgYm5nZV9wZl9pbmZvIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTMzLVx0dTE2XHRmd19maWQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg9ODE9ZW51bSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtOTItI2RlZmluZSBCTkdFX01BWF9RVUVVRVx0XHQ4XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDo5MzpzdHJ1Y3QgYm5nZV9xdWV1ZV9pbmZvIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTk0LVx0dTggICAgICBxdWV1ZV9pZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xMDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoxMDM6c3RydWN0IGJuZ2VfZGV2IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTEwNC1cdHN0cnVjdCBkZXZpY2VcdCpkZXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMTQ0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MTQ1Olx0c3RydWN0IGJuZ2VfcGZfaW5mb1x0cGY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xNDYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMTUzLVx0LyogQmFja2luZyBzdG9yZXMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjE1NDpcdHN0cnVjdCBibmdlX2N0eF9tZW1faW5mb1x0KmN0eDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTE1NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xNTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoxNTg6XHRzdHJ1Y3QgYm5nZV9od19yZXNjXHRod19yZXNjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMTU5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIwNC1cdHU4XHRcdFx0bWF4X2xsdGM7XHQvKiBsb3NzbGVzcyBUQ3MgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjIwNTpcdHN0cnVjdCBibmdlX3F1ZXVlX2luZm9cdHFfaW5mb1tCTkdFX01BWF9RVUVVRV07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMDYtXHR1OFx0XHRcdHRjX3RvX3FpZHhbQk5HRV9NQVhfUVVFVUVdO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIxMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjIxMTpcdHN0cnVjdCBibmdlX2lycVx0XHQqaXJxX3RibDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIxMi1cdHUxNlx0XHRcdGlycXNfYWNxdWlyZWQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMTQ6XHRzdHJ1Y3QgYm5nZV9hdXhyX3ByaXZcdCphdXhfcHJpdjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjIxNTpcdHN0cnVjdCBibmdlX2F1eHJfZGV2XHQqYXV4cl9kZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMTc6XHRzdHJ1Y3QgYm5nZV9saW5rX2luZm9cdGxpbmtfaW5mbztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIxOC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMjM6c3RhdGljIGlubGluZSBib29sIGJuZ2VfaXNfcm9jZV9lbihzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjI0LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMjctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMjg6c3RhdGljIGlubGluZSBib29sIGJuZ2VfaXNfYWdnX3JlcWQoc3RydWN0IGJuZ2VfZGV2ICpiZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIyOS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMzAtXHRpZiAoYmQtXHUwMDNlbmV0ZGV2KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMzE6XHRcdHN0cnVjdCBibmdlX25ldCAqYm4gPSBuZXRkZXZfcHJpdihiZC1cdTAwM2VuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjMyLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTI0Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjI0MzpzdGF0aWMgaW5saW5lIHZvaWQgYm5nZV93cml0ZXEoc3RydWN0IGJuZ2VfZGV2ICpiZCwgdTY0IHZhbCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTI0NC1cdFx0XHQgICAgICAgdm9pZCBfX2lvbWVtICphZGRyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTI1NS0vKiBGb3IgVFggYW5kIFJYIHJpbmcgZG9vcmJlbGxzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyNTY6c3RhdGljIGlubGluZSB2b2lkIGJuZ2VfZGJfd3JpdGUoc3RydWN0IGJuZ2VfZGV2ICpiZCwgc3RydWN0IGJuZ2VfZGJfaW5mbyAqZGIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNTctXHRcdFx0XHQgdTMyIGlkeClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTI1OC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyNTk6XHRibmdlX3dyaXRlcShiZCwgZGItXHUwMDNlZGJfa2V5NjQgfCBEQl9SSU5HX0lEWChkYiwgaWR4KSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTI2MC1cdFx0ICAgIGRiLVx1MDAzZWRvb3JiZWxsKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyNjM6Ym9vbCBibmdlX2F1eF9yZWdpc3RlcmVkKHN0cnVjdCBibmdlX2RldiAqYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjY0OnUxNiBibmdlX2F1eF9nZXRfbXNpeChzdHJ1Y3QgYm5nZV9kZXYgKmJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTI2NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE2LSNpbmNsdWRlIFx1MDAzY2xpbnV4L2F1eGlsaWFyeV9idXMuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxNzojaW5jbHVkZSBcdTAwM2NsaW51eC9ibmdlL2hzaS5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxOTojaW5jbHVkZSBcJiMzNDtibmdlLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjA6I2luY2x1ZGUgXCYjMzQ7Ym5nZV9od3JtLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjE6I2luY2x1ZGUgXCYjMzQ7Ym5nZV9hdXhyLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjIzOnN0YXRpYyBERUZJTkVfSURBKGJuZ2VfYXV4X2Rldl9pZHMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjU6c3RhdGljIHZvaWQgYm5nZV9maWxsX21zaXhfdmVjcyhzdHJ1Y3QgYm5nZV9kZXYgKmJkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyNjpcdFx0XHRcdHN0cnVjdCBibmdlX21zaXhfaW5mbyAqaW5mbylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyODpcdHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2RldiA9IGJkLVx1MDAzZWF1eHJfZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yOS1cdGludCBudW1fbXNpeCwgaTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzo0MzppbnQgYm5nZV9yZWdpc3Rlcl9kZXYoc3RydWN0IGJuZ2VfYXV4cl9kZXYgKmF1eHJfZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy00NC1cdFx0ICAgICAgdm9pZCAqaGFuZGxlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy00NS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjQ2Olx0c3RydWN0IGJuZ2VfZGV2ICpiZCA9IHBjaV9nZXRfZHJ2ZGF0YShhdXhyX2Rldi1cdTAwM2VwZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6NDc6XHRzdHJ1Y3QgYm5nZV9hdXhyX2luZm8gKmF1eHJfaW5mbztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtNDgtXHRpbnQgcmMgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtNTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjU3Olx0aWYgKCFibmdlX2F1eF9oYXNfZW5vdWdoX3Jlc291cmNlcyhiZCkpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtNTgtXHRcdHJjID0gLUVOT01FTTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTY2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzo2NzpcdGJuZ2VfZmlsbF9tc2l4X3ZlY3MoYmQsIGJkLVx1MDAzZWF1eHJfZGV2LVx1MDAzZW1zaXhfaW5mbyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTY4LVx0YXV4cl9kZXYtXHUwMDNlZmxhZ3MgfD0gQk5HRV9BUkRFVl9NU0lYX0FMTE9DO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtNzQtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzo3NTpFWFBPUlRfU1lNQk9MKGJuZ2VfcmVnaXN0ZXJfZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtNzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjc3OnZvaWQgYm5nZV91bnJlZ2lzdGVyX2RldihzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYXV4cl9kZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTc4LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6Nzk6XHRzdHJ1Y3QgYm5nZV9kZXYgKmJkID0gcGNpX2dldF9kcnZkYXRhKGF1eHJfZGV2LVx1MDAzZXBkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzo4MDpcdHN0cnVjdCBibmdlX2F1eHJfaW5mbyAqYXV4cl9pbmZvO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy04MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTkxLX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6OTI6RVhQT1JUX1NZTUJPTChibmdlX3VucmVnaXN0ZXJfZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtOTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjk0OmludCBibmdlX3NlbmRfbXNnKHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2Rldiwgc3RydWN0IGJuZ2VfZndfbXNnICpmd19tc2cpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTk1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6OTY6XHRzdHJ1Y3QgYm5nZV9kZXYgKmJkID0gcGNpX2dldF9kcnZkYXRhKGF1eHJfZGV2LVx1MDAzZXBkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy05Ny1cdHN0cnVjdCBvdXRwdXQgKnJlc3A7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMDEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjEwMjpcdHJjID0gYm5nZV9od3JtX3JlcV9pbml0KGJkLCByZXEsIDAgLyogZG9uJiMzOTt0IGNhcmUgKi8pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMDMtXHRpZiAocmMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjEwNjpcdHJjID0gYm5nZV9od3JtX3JlcV9yZXBsYWNlKGJkLCByZXEsIGZ3X21zZy1cdTAwM2Vtc2csIGZ3X21zZy1cdTAwM2Vtc2dfbGVuKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTA3LVx0aWYgKHJjKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTA5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxMTA6XHRibmdlX2h3cm1fcmVxX3RpbWVvdXQoYmQsIHJlcSwgZndfbXNnLVx1MDAzZXRpbWVvdXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxMTE6XHRyZXNwID0gYm5nZV9od3JtX3JlcV9ob2xkKGJkLCByZXEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxMTI6XHRyYyA9IGJuZ2VfaHdybV9yZXFfc2VuZChiZCwgcmVxKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTEzLVx0cmVzcF9sZW4gPSBsZTE2X3RvX2NwdShyZXNwLVx1MDAzZXJlc3BfbGVuKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTEyMC1kcm9wX3JlcTpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTIxOlx0Ym5nZV9od3JtX3JlcV9kcm9wKGJkLCByZXEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMjItXHRyZXR1cm4gcmM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTEyMy19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjEyNDpFWFBPUlRfU1lNQk9MKGJuZ2Vfc2VuZF9tc2cpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjEyNjp2b2lkIGJuZ2VfcmRtYV9hdXhfZGV2aWNlX3VuaW5pdChzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMjcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxMjg6XHRzdHJ1Y3QgYm5nZV9hdXhyX3ByaXYgKmF1eF9wcml2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMjktXHRzdHJ1Y3QgYXV4aWxpYXJ5X2RldmljZSAqYWRldjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTEzOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTQwOnN0YXRpYyB2b2lkIGJuZ2VfYXV4X2Rldl9yZWxlYXNlKHN0cnVjdCBkZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTQxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTQyOlx0c3RydWN0IGJuZ2VfYXV4cl9wcml2ICphdXhfcHJpdiA9XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE0MzpcdFx0XHRjb250YWluZXJfb2YoZGV2LCBzdHJ1Y3QgYm5nZV9hdXhyX3ByaXYsIGF1eF9kZXYuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTQ0Olx0c3RydWN0IGJuZ2VfYXV4cl9kZXYgKmF1eHJfZGV2ID0gYXV4X3ByaXYtXHUwMDNlYXV4cl9kZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE0NTpcdHN0cnVjdCBibmdlX2RldiAqYmQgPSBwY2lfZ2V0X2RydmRhdGEodG9fcGNpX2RldihkZXYtXHUwMDNlcGFyZW50KSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE0Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTQ3Olx0aWRhX2ZyZWUoXHUwMDI2Ym5nZV9hdXhfZGV2X2lkcywgYXV4X3ByaXYtXHUwMDNlaWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xNDgtXHRpZiAoYXV4cl9kZXYpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE1Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTU3OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfZGVsKHN0cnVjdCBibmdlX2RldiAqYmQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE1OC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xNjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE2NTpzdGF0aWMgdm9pZCBibmdlX3NldF9hdXhyX2Rldl9pbmZvKHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2RldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTY2Olx0XHRcdFx0ICAgc3RydWN0IGJuZ2VfZGV2ICpiZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTY3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE4NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTg2OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfYWRkKHN0cnVjdCBibmdlX2RldiAqYmQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE4Ny17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjIwNjp2b2lkIGJuZ2VfcmRtYV9hdXhfZGV2aWNlX2luaXQoc3RydWN0IGJuZ2VfZGV2ICpiZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjA3LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjA4LVx0c3RydWN0IGF1eGlsaWFyeV9kZXZpY2UgKmF1eF9kZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjIwOTpcdHN0cnVjdCBibmdlX2F1eHJfaW5mbyAqYXV4cl9pbmZvO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyMTA6XHRzdHJ1Y3QgYm5nZV9hdXhyX3ByaXYgKmF1eF9wcml2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyMTE6XHRzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYXV4cl9kZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTIxMi1cdGludCByYztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyMTQ6XHRpZiAoIWJuZ2VfaXNfcm9jZV9lbihiZCkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTIxNS1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjIwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyMjE6XHRhdXhfcHJpdi1cdTAwM2VpZCA9IGlkYV9hbGxvYyhcdTAwMjZibmdlX2F1eF9kZXZfaWRzLCBHRlBfS0VSTkVMKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjIyLVx0aWYgKGF1eF9wcml2LVx1MDAzZWlkIFx1MDAzYyAwKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMzEtXHRhdXhfZGV2LVx1MDAzZWRldi5wYXJlbnQgPSBcdTAwMjZiZC1cdTAwM2VwZGV2LVx1MDAzZWRldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjMyOlx0YXV4X2Rldi1cdTAwM2VkZXYucmVsZWFzZSA9IGJuZ2VfYXV4X2Rldl9yZWxlYXNlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMzMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMzUtXHRpZiAocmMpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjM2Olx0XHRpZGFfZnJlZShcdTAwMjZibmdlX2F1eF9kZXZfaWRzLCBhdXhfcHJpdi1cdTAwM2VpZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTIzNy1cdFx0a2ZyZWUoYXV4X3ByaXYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjUzLVx0YmQtXHUwMDNlYXV4cl9kZXYgPSBhdXhyX2RldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjU0Olx0Ym5nZV9zZXRfYXV4cl9kZXZfaW5mbyhhdXhyX2RldiwgYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yNTUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaD0xND1zdHJ1Y3QgaHdybV9hc3luY19ldmVudF9jbXBsO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaDoxNTpzdHJ1Y3QgYm5nZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtMTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjE3OnN0cnVjdCBibmdlX21zaXhfaW5mbyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTE4LVx0dTMyXHR2ZWN0b3I7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC0yMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6MjM6c3RydWN0IGJuZ2VfZndfbXNnIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtMjQtXHR2b2lkXHQqbXNnO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtMzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjMxOnN0cnVjdCBibmdlX2F1eHJfaW5mbyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTMyLVx0dm9pZFx0XHQqaGFuZGxlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg9MzY9ZW51bSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC00NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6NDU6c3RydWN0IGJuZ2VfYXV4cl9kZXYge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC00Ni1cdHN0cnVjdCBuZXRfZGV2aWNlXHQqbmV0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtNDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjUwOlx0c3RydWN0IGJuZ2VfbXNpeF9pbmZvXHRtc2l4X2luZm9bQk5HRV9NQVhfUk9DRV9NU0lYXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtNTEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC01My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6NTQ6XHRzdHJ1Y3QgYm5nZV9hdXhyX2luZm9cdCphdXhyX2luZm87XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTU1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtNzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjc1OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfdW5pbml0KHN0cnVjdCBibmdlX2RldiAqYmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjc2OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfZGVsKHN0cnVjdCBibmdlX2RldiAqYmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjc3OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfYWRkKHN0cnVjdCBibmdlX2RldiAqYmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjc4OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfaW5pdChzdHJ1Y3QgYm5nZV9kZXYgKmJkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaDo3OTppbnQgYm5nZV9yZWdpc3Rlcl9kZXYoc3RydWN0IGJuZ2VfYXV4cl9kZXYgKmFkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTgwLVx0XHQgICAgICB2b2lkICpoYW5kbGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaDo4MTp2b2lkIGJuZ2VfdW5yZWdpc3Rlcl9kZXYoc3RydWN0IGJuZ2VfYXV4cl9kZXYgKmFkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaDo4MjppbnQgYm5nZV9zZW5kX21zZyhzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYWRldiwgc3RydWN0IGJuZ2VfZndfbXNnICpmd19tc2cpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC04My1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjk6I2luY2x1ZGUgXCYjMzQ7Ym5nZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEwOiNpbmNsdWRlIFwmIzM0O2JuZ2VfZGV2bGluay5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjExOiNpbmNsdWRlIFwmIzM0O2JuZ2VfaHdybS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEyOiNpbmNsdWRlIFwmIzM0O2JuZ2VfaHdybV9saWIuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMzojaW5jbHVkZSBcJiMzNDtibmdlX2xpbmsuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jPTE2PU1PRFVMRV9ERVNDUklQVElPTihEUlZfU1VNTUFSWSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxODpjaGFyIGJuZ2VfZHJpdmVyX25hbWVbXSA9IERSVl9OQU1FO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM9MjA9c3RhdGljIGNvbnN0IHN0cnVjdCB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MjY6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGJuZ2VfcGNpX3RibFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNy1cdHsgUENJX1ZERVZJQ0UoQlJPQURDT00sIDB4MTc4MCksIC5kcml2ZXJfZGF0YSA9IEJDTTU3NzA4IH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMTpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgYm5nZV9wY2lfdGJsKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjMzOnN0YXRpYyB2b2lkIGJuZ2VfcHJpbnRfZGV2aWNlX2luZm8oc3RydWN0IHBjaV9kZXYgKnBkZXYsIGVudW0gYm9hcmRfaWR4IGlkeClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjQzOmJvb2wgYm5nZV9hdXhfcmVnaXN0ZXJlZChzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy00NC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjQ1Olx0c3RydWN0IGJuZ2VfYXV4cl9kZXYgKmJhX2RldiA9IGJkLVx1MDAzZWF1eHJfZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy00Ni1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTUyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzo1MzpzdGF0aWMgdm9pZCBibmdlX252bV9jZmdfdmVyX2dldChzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy01NC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy01Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6NTc6XHRpZiAoIWJuZ2VfaHdybV9udm1fZGV2X2luZm8oYmQsIFx1MDAyNm52bV9pbmZvKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNTgtXHRcdHNucHJpbnRmKGJkLVx1MDAzZW52bV9jZmdfdmVyLCBGV19WRVJfU1RSX0xFTiwgXCYjMzQ7JWQuJWQuJWRcJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy02Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6NjM6c3RhdGljIGludCBibmdlX2Z1bmNfcWNhcHMoc3RydWN0IGJuZ2VfZGV2ICpiZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNjQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjY3Olx0cmMgPSBibmdlX2h3cm1fZnVuY19xY2FwcyhiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTY4LVx0aWYgKHJjKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjcxOlx0cmMgPSBibmdlX2h3cm1fcXVldWVfcXBvcnRjZmcoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy03Mi1cdGlmIChyYykge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjgwOnN0YXRpYyBpbnQgYm5nZV9mdW5jX3FyY2Fwc19xY2ZnKHN0cnVjdCBibmdlX2RldiAqYmQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTgxLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTgzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzo4NDpcdHJjID0gYm5nZV9od3JtX2Z1bmNfcmVzY19xY2FwcyhiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTg1LVx0aWYgKHJjKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy04OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6OTA6XHRyYyA9IGJuZ2VfaHdybV9mdW5jX3FjZmcoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy05MS1cdGlmIChyYykge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtOTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjk2Olx0cmMgPSBibmdlX2h3cm1fdm5pY19xY2FwcyhiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTk3LVx0aWYgKHJjKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xMDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEwNTpzdGF0aWMgdm9pZCBibmdlX2Z3X3VucmVnaXN0ZXJfZGV2KHN0cnVjdCBibmdlX2RldiAqYmQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEwNi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEwNy1cdC8qIGN0eCBtZW0gZnJlZSBhZnRlciB1bnJndHIgb25seSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMDg6XHRibmdlX2h3cm1fZnVuY19kcnZfdW5yZ3RyKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTA5Olx0Ym5nZV9mcmVlX2N0eF9tZW0oYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xMTAtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xMTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjExMjpzdGF0aWMgdm9pZCBibmdlX3NldF9kZmx0X3Jzc19oYXNoX3R5cGUoc3RydWN0IGJuZ2VfZGV2ICpiZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTEzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEyMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTIyOnN0YXRpYyBpbnQgYm5nZV9md19yZWdpc3Rlcl9kZXYoc3RydWN0IGJuZ2VfZGV2ICpiZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTIzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEyNi1cdGJkLVx1MDAzZWZ3X2NhcCA9IDA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEyNzpcdHJjID0gYm5nZV9od3JtX3Zlcl9nZXQoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xMjgtXHRpZiAocmMpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEzMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTMzOlx0Ym5nZV9udm1fY2ZnX3Zlcl9nZXQoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xMzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEzNTpcdHJjID0gYm5nZV9od3JtX2Z1bmNfcmVzZXQoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xMzYtXHRpZiAocmMpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE0MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTQxOlx0Ym5nZV9od3JtX2Z3X3NldF90aW1lKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNDMtXHQvKiBHZXQgdGhlIHJlc291cmNlcyBhbmQgY29uZmlndXJhdGlvbiBmcm9tIGZpcm13YXJlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjE0NDpcdHJjID0gYm5nZV9mdW5jX3FjYXBzKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTQ1LVx0aWYgKHJjKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjE1MDpcdHJjID0gYm5nZV9hbGxvY19jdHhfbWVtKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTUxLVx0aWYgKHJjKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjE1NjpcdHJjID0gYm5nZV9od3JtX2Z1bmNfZHJ2X3JndHIoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNTctXHRpZiAocmMpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE2MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTYyOlx0cmMgPSBibmdlX2Z1bmNfcXJjYXBzX3FjZmcoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNjMtXHRpZiAocmMpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE2Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTY4Olx0Ym5nZV9zZXRfZGZsdF9yc3NfaGFzaF90eXBlKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTY5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTcyLWVycl9mdW5jX3Vucmd0cjpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTczOlx0Ym5nZV9od3JtX2Z1bmNfZHJ2X3Vucmd0cihiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE3NC1lcnJfZnJlZV9jdHhfbWVtOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxNzU6XHRibmdlX2ZyZWVfY3R4X21lbShiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE3Ni1cdHJldHVybiByYztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE3OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTc5OnN0YXRpYyB2b2lkIGJuZ2VfcGNpX2Rpc2FibGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE4MC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xODUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjE4NjpzdGF0aWMgaW50IGJuZ2VfcGNpX2VuYWJsZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTg3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTIwMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MjAzOlx0cmMgPSBwY2lfcmVxdWVzdF9yZWdpb25zKHBkZXYsIGJuZ2VfZHJpdmVyX25hbWUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yMDQtXHRpZiAocmMpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTIxOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MjIwOnN0YXRpYyB2b2lkIGJuZ2VfdW5tYXBfYmFycyhzdHJ1Y3QgcGNpX2RldiAqcGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjIxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MjIyOlx0c3RydWN0IGJuZ2VfZGV2ICpiZCA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjIzLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjM0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoyMzU6c3RhdGljIHZvaWQgYm5nZV9zZXRfbWF4X2Z1bmNfaXJxcyhzdHJ1Y3QgYm5nZV9kZXYgKmJkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yMzYtXHRcdFx0XHQgICB1bnNpZ25lZCBpbnQgbWF4X2lycXMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNDAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI0MTpzdGF0aWMgaW50IGJuZ2VfZ2V0X21heF9pcnEoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI0Mi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNDgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI0OTpzdGF0aWMgaW50IGJuZ2VfbWFwX2RiX2JhcihzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNTAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjYwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoyNjE6c3RhdGljIGludCBibmdlX3Byb2JlX29uZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjYyLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjYzLVx0dW5zaWduZWQgaW50IG1heF9pcnFzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoyNjQ6XHRzdHJ1Y3QgYm5nZV9kZXYgKmJkO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNjUtXHRpbnQgcmM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI4MDpcdHJjID0gYm5nZV9wY2lfZW5hYmxlKHBkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yODEtXHRpZiAocmMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yODMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI4NDpcdGJuZ2VfcHJpbnRfZGV2aWNlX2luZm8ocGRldiwgZW50LVx1MDAzZWRyaXZlcl9kYXRhKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoyODY6XHRiZCA9IGJuZ2VfZGV2bGlua19hbGxvYyhwZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjg3LVx0aWYgKCFiZCkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjk5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMDA6XHRyYyA9IGJuZ2VfaW5pdF9od3JtX3Jlc291cmNlcyhiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMwMS1cdGlmIChyYylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMwMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzA0Olx0cmMgPSBibmdlX2Z3X3JlZ2lzdGVyX2RldihiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMwNS1cdGlmIChyYykge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzA5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMTA6XHRibmdlX2RldmxpbmtfcmVnaXN0ZXIoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjMxMjpcdG1heF9pcnFzID0gYm5nZV9nZXRfbWF4X2lycShwZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzEzOlx0Ym5nZV9zZXRfbWF4X2Z1bmNfaXJxcyhiZCwgbWF4X2lycXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjMxNTpcdGJuZ2VfYXV4X2luaXRfZGZsdF9jb25maWcoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjMxNzpcdHJjID0gYm5nZV9uZXRfaW5pdF9kZmx0X2NvbmZpZyhiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMxOC1cdGlmIChyYykge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzIzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMjQ6XHRyYyA9IGJuZ2VfbWFwX2RiX2JhcihiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMyNS1cdGlmIChyYykge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzM0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMzU6XHRibmdlX3JkbWFfYXV4X2RldmljZV9pbml0KGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzM2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMzc6XHRyYyA9IGJuZ2VfYWxsb2NfaXJxcyhiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMzOC1cdGlmIChyYykge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNDM6XHRyYyA9IGJuZ2VfbmV0ZGV2X2FsbG9jKGJkLCBtYXhfaXJxcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM0NC1cdGlmIChyYylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM0Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzQ3Olx0Ym5nZV9yZG1hX2F1eF9kZXZpY2VfYWRkKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzQ4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzUzLWVycl9mcmVlX2lycTpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzU0Olx0Ym5nZV9mcmVlX2lycXMoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM1Ni1lcnJfdW5pbml0X2F1eHI6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjM1NzpcdGJuZ2VfcmRtYV9hdXhfZGV2aWNlX3VuaW5pdChiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM1OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzU5LWVycl9jb25maWdfdW5pbml0OlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNjA6XHRibmdlX25ldF91bmluaXRfZGZsdF9jb25maWcoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM2Mi1lcnJfZndfcmVnOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNjM6XHRibmdlX2RldmxpbmtfdW5yZWdpc3RlcihiZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjM2NDpcdGJuZ2VfZndfdW5yZWdpc3Rlcl9kZXYoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM2Ni1lcnJfaHdybV9jbGVhbnVwOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNjc6XHRibmdlX2NsZWFudXBfaHdybV9yZXNvdXJjZXMoYmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM2OS1lcnJfYmFyX3VubWFwOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNzA6XHRibmdlX3VubWFwX2JhcnMocGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM3MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzcyLWVycl9kZXZsX2ZyZWU6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjM3MzpcdGJuZ2VfZGV2bGlua19mcmVlKGJkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzc0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNzUtZXJyX3BjaV9kaXNhYmxlOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNzY6XHRibmdlX3BjaV9kaXNhYmxlKHBkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNzctXHRyZXR1cm4gcmM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjM4MDpzdGF0aWMgdm9pZCBibmdlX3JlbW92ZV9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM4MS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjM4MjpcdHN0cnVjdCBibmdlX2RldiAqYmQgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7XG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNyAxNzowMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNzAyNgoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDIxNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlICYjMzQ7Ym5nZSYjMzQ7IERyaXZlciBhbmQgaXRzIEltcGxpY2F0aW9ucyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBkcml2ZXIsIGBibmdlYC4gVGhlIG5hbWUgc3VnZ2VzdHMgaXQmIzM5O3MgYSBCcm9hZGNvbSBFdGhlcm5ldCBkcml2ZXIsIHdoaWNoIGlzIGEgY29tbW9uIHN0YXJ0aW5nIHBvaW50LiBCdXQsIGhvbGQgb24gYSBzZWNvbmTigKYgYGJuZ2VgIGlzbiYjMzk7dCBpbW1lZGlhdGVseSByaW5naW5nIGFueSBiZWxscyBhcyBhIHN0YW5kYXJkIHVwc3RyZWFtIExpbnV4IGRyaXZlci4gVGhhdCYjMzk7cyBhIHJlZCBmbGFnLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGlzIGlzIGFuIGFjdHVhbCwgcGh5c2ljYWwgZHJpdmVyLCBvciBpZiBpdCYjMzk7cyBzb21ldGhpbmcgc3BlY2lmaWMgdG8gdGhpcyB0ZXN0aW5nIGVudmlyb25tZW50IOKAkyBtYXliZSBhIHN5emthbGxlciBwc2V1ZG8tZHJpdmVyLCBvciBzb21ldGhpbmcgc2ltaWxhcj8KCkFoYSwgdGhlIHBhdGNoIGluZGljYXRlcyBpdCYjMzk7cyBsb2NhdGVkIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmNgLiBUaGF0IGdpdmVzIG1lIGEgYml0IG1vcmUgY29uZmlkZW5jZSBpdCBtaWdodCBiZSBhICpyZWFsKiBkcml2ZXIuIExldCYjMzk7cyBkaWcgZGVlcGVyIGFuZCBzZWUgaWYgaXQmIzM5O3MgdGllZCB0byBwaHlzaWNhbCBoYXJkd2FyZS4gSSBuZWVkIHRoZSBQQ0kgSURzLi4uIGdvdCB0aGVtOiBgeyBQQ0lfVkRFVklDRShCUk9BRENPTSwgMHgxNzgwKSwgLmRyaXZlcl9kYXRhID0gQkNNNTc3MDggfWAuIE9rYXksIHRoYXQmIzM5O3MgY3J1Y2lhbC4gCgpJZiB0aGlzIHBvaW50cyB0byBhbiBhY3R1YWwgaGFyZHdhcmUgY2FyZCwgbGlrZSB0aGUgQkNNNTc3MDgsIHRoZW4gdGhlcmUmIzM5O3MgYW4gaW1tZWRpYXRlIHByb2JsZW0uIEl0IG1lYW5zIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYSBwaHlzaWNhbCBOSUMgdGhhdCYjMzk7cyBsaWtlbHkgbm90IHJlYWNoYWJsZSBpbiB0aGUgY3VycmVudCBzZXR1cC4gVGhpcyBicmluZ3MgdXAgdGhlIG5lZWQgdG8gY2hlY2sgZm9yIFFFTVUgZW11bGF0aW9uLgoKU28sIHRoZSBrZXkgcXVlc3Rpb24gbm93IGlzOiBEb2VzIFFFTVUsIG9yIGFueSBvdGhlciB2aXJ0dWFsaXphdGlvbiwgZW11bGF0ZSB0aGUgQkNNNTc3MDggb3IgdGhlIGBibmdlYCBkcml2ZXI/IEkmIzM5O2xsIGNoZWNrIGlmIGBDT05GSUdfQk5HRWAgaXMgZGVmaW5lZCBpbiB0aGUga2VybmVsIHRyZWUuIFRoYXQgd2lsbCBiZSB0aGUgbmV4dCBzdGVwLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI3IDE3OjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBCTkdFJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL0tjb25maWc9MjUwPWNvbmZpZyBCTlhUX0hXTU9OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vS2NvbmZpZy0yNTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9LY29uZmlnOjI1ODpjb25maWcgQk5HRVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vS2NvbmZpZy0yNTktXHR0cmlzdGF0ZSBcJiMzNDtCcm9hZGNvbSBUaG9yVWx0cmEgRXRoZXJuZXQgZGV2aWNlIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNyAxNzowNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNzczOQoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDI2MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIEJyb2FkY29tIFRob3JVbHRyYSBFdGhlcm5ldCBEZXZpY2UgU3VwcG9ydCoqCgpPa2F5LCBzbyB0aGUgaW5pdGlhbCBxdWVzdGlvbiBpcyBhYm91dCBCcm9hZGNvbSYjMzk7cyBUaG9yVWx0cmEgRXRoZXJuZXQgZGV2aWNlIGFuZCBpdHMgc3VwcG9ydC4gTXkgZmlyc3QgdGhvdWdodCBpcyB3aGV0aGVyIHRoaXMgaXMgYSBwaHlzaWNhbCBQQ0llIGNhcmQsIG1lYW5pbmcgaXQmIzM5O3Mgbm90IHNvbWV0aGluZyB0eXBpY2FsbHkgZW11bGF0ZWQgaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50LiBUaGUgYW5zd2VyIGNvbmZpcm1zIGl0JiMzOTtzIHBoeXNpY2FsIGhhcmR3YXJlLgoKQWxyaWdodCwgbGV0JiMzOTtzIHN0ZXAgYmFjayBhbmQgY29uc2lkZXIgUUVNVSBlbXVsYXRpb24uIEkgaW1tZWRpYXRlbHkgcnVuIHRocm91Z2ggdGhlIGNvbW1vbiBuZXR3b3JrIGRldmljZSBlbXVsYXRpb25zIEkmIzM5O20gZmFtaWxpYXIgd2l0aCDigJMgZTEwMDAsIGUxMDAwZSwgcnRsODEzOSwgcGNuZXQsIG5lMmtfcGNpLCB2bXhuZXQzLCB2aXJ0aW8tbmV0LiBOb25lIG9mIHRob3NlIGFyZSB0aGUgVGhvclVsdHJhLiBTbywgUUVNVSBsaWtlbHkgKmRvZXNuJiMzOTt0KiBlbXVsYXRlIGl0IGRpcmVjdGx5LgoKTmV4dCwgSSBuZWVkIHRvIGNoZWNrIGlmIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYSBkcml2ZXIgZGVzaWduZWQgZm9yIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIFRoZSBwcm9tcHQgcmVmZXJlbmNlcyB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVycyBhc3NvY2lhdGVkIHdpdGggUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFVzLCB0aGluZ3MgbGlrZSBtbHhzdywgcGRzX2NvcmUsIHFlZCwgaW9uaWMsIGFuZCBhbWRncHUgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIFFFTVUuIFRoaXMgbWFrZXMgbWUgc3VzcGVjdCBCTkdFICppcyogc3VjaCBhIHBoeXNpY2FsIGRldmljZS4gTGV0JiMzOTtzIGNvbmZpcm0gaXQmIzM5O3MgYSBwaHlzaWNhbCBjYXJkLgoKSWYgaXQgKmlzKiBwaHlzaWNhbCwgdGhlbiBpdCYjMzk7cyBhbG1vc3QgY2VydGFpbmx5IG5vdCBnb2luZyB0byBiZSBhY2Nlc3NpYmxlIHdpdGhpbiBlbnZpcm9ubWVudHMgbGlrZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUgb3IsIGltcG9ydGFudGx5LCBvdXIgUUVNVSBzZXR1cC4gSXQgbWFrZXMgc2Vuc2UgdG8gdmVyaWZ5LgoKVG8gbmFpbCBpdCBkb3duIGNvbXBsZXRlbHksIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBjaGVjayB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL0tjb25maWdgIGZpbGUgZm9yIHRoZSBgQk5HRWAgZHJpdmVyIGNvbmZpZ3VyYXRpb24uIFRoYXQmIzM5O2xsIHByb3ZpZGUgdGhlIGRlZmluaXRpdmUgYW5zd2VyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI3IDE3OjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDI1MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgMjUwOlx0Y29uZmlnIEJOWFRfSFdNT05cbiAyNTE6XHRcdGJvb2wgXCYjMzQ7QnJvYWRjb20gTmV0WHRyZW1lLUMvRSBIV01PTiBzdXBwb3J0XCYjMzQ7XG4gMjUyOlx0XHRkZWZhdWx0IHlcbiAyNTM6XHRcdGRlcGVuZHMgb24gQk5YVCBcdTAwMjZcdTAwMjYgSFdNT04gXHUwMDI2XHUwMDI2ICEoQk5YVD15IFx1MDAyNlx1MDAyNiBIV01PTj1tKVxuIDI1NDpcdFx0aGVscFxuIDI1NTpcdFx0ICBTYXkgWSBpZiB5b3Ugd2FudCB0byBleHBvc2UgdGhlIHRoZXJtYWwgc2Vuc29yIGRhdGEgb24gTmV0WHRyZW1lLUMvRVxuIDI1NjpcdFx0ICBkZXZpY2VzLCB2aWEgdGhlIGh3bW9uIHN5c2ZzIGludGVyZmFjZS5cbiAyNTc6XHRcbiAyNTg6XHRjb25maWcgQk5HRVxuIDI1OTpcdFx0dHJpc3RhdGUgXCYjMzQ7QnJvYWRjb20gVGhvclVsdHJhIEV0aGVybmV0IGRldmljZSBzdXBwb3J0XCYjMzQ7XG4gMjYwOlx0XHRkZXBlbmRzIG9uIFBDSVxuIDI2MTpcdFx0c2VsZWN0IE5FVF9ERVZMSU5LXG4gMjYyOlx0XHRzZWxlY3QgUEFHRV9QT09MXG4gMjYzOlx0XHRzZWxlY3QgQVVYSUxJQVJZX0JVU1xuIDI2NDpcdFx0aGVscFxuIDI2NTpcdFx0ICBUaGlzIGRyaXZlciBzdXBwb3J0cyBCcm9hZGNvbSBUaG9yVWx0cmEgNTAvMTAwLzIwMC80MDAvODAwIGdpZ2FiaXRcbiAyNjY6XHRcdCAgRXRoZXJuZXQgY2FyZHMuIFRoZSBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgYm5nX2VuLiBUbyBjb21waWxlIHRoaXNcbiAyNjc6XHRcdCAgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxuIDI2ODpcdFxuIDI2OTpcdGNvbmZpZyBCQ01BU1BcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNyAxNzowNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxODcxOQoJCQkJCQkJb3V0cHV0OiAxMTAKCQkJCQkJCXRob3VnaHRzOiAyODUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgQnJvYWRjb20gVGhvclVsdHJhIEV0aGVybmV0IENhcmQqKgoKT2theSwgaGVyZSYjMzk7cyB0aGUgZGVhbDogQnJvYWRjb20mIzM5O3MgVGhvclVsdHJhIGNhcmRzLCB0aG9zZSA1MC8xMDAvMjAwLzQwMC84MDAgZ2lnYWJpdCBiZWFzdHMsIGFyZSAqZGVmaW5pdGVseSogcGh5c2ljYWwgUENJZSBoYXJkd2FyZS4gTm8gc29mdHdhcmUgZW11bGF0aW9uIGluIHRoZSBzdGFuZGFyZCBRRU1VIHNldHVwLCB3aGljaCBpbW1lZGlhdGVseSB0ZWxscyBtZSB0aGV5JiMzOTtyZSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIGxpa2UgR29vZ2xlIENvbXB1dGUgRW5naW5lIG9yIGEgdHlwaWNhbCBRRU1VIGluc3RhbmNlLiBTbywgKldvcnRoRnV6emluZz1mYWxzZSogaXMgdGhlIGltbWVkaWF0ZSBjb25jbHVzaW9uLgoKTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrLCB0aG91Z2gsIGJlY2F1c2UgSSBkb24mIzM5O3Qgd2FudCB0byBtaXNzIGFueXRoaW5nLiBJcyB0aGVyZSBhIHNvZnR3YXJlIGVtdWxhdG9yIGx1cmtpbmcgaW4gdGhlIGtlcm5lbCBzb21ld2hlcmU/IE5vcGUuIElzIGl0IGEgdmlydGlvIGRldmljZT8gQWJzb2x1dGVseSBub3Q7IGl0JiMzOTtzIGEgUENJIGRldmljZSB3aXRoIElEIDB4MTc4MC4gU28sIGl0JiMzOTtzIGEgcGh5c2ljYWwgaGFyZHdhcmUgY2FyZCwgcGxhaW4gYW5kIHNpbXBsZS4KCk5vdywgbGV0JiMzOTtzIGdvIGJhY2sgYW5kIGV4YW1pbmUgdGhvc2UgaW5zdHJ1Y3Rpb25zLiBUaGV5JiMzOTtyZSB0ZWxsaW5nIG1lIHRvIHNldCAqV29ydGhGdXp6aW5nPWZhbHNlKiBpZiB0aGUgcGF0Y2ggaW5jbHVkZXMgY29kZSB0aGF0JiMzOTtzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCBldmVuIHdoZW4gdXNpbmcgZW11bGF0ZWQgaGFyZHdhcmUsIG9yIGNvZGUgdGhhdCYjMzk7cyBzcGVjaWZpYyB0byB2ZW5kb3ItZGVmaW5lZCBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIGFuZCByZXF1aXJlcyBwaHlzaWNhbCBQQ0llIGNhcmRzLgoKV2VsbCwgdGhpcyBCcm9hZGNvbSBjYXJkIHBlcmZlY3RseSBoaXRzIHRoYXQgc2Vjb25kIGJ1bGxldCBwb2ludC4gSXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUuIE5vIHdheSBhcm91bmQgaXQuCgpUaGVyZWZvcmUsIG15IGZpbmFsIGFuc3dlciBpcyAqV29ydGhGdXp6aW5nPWZhbHNlKi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjcgMTc6MDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgYGJuZ2VgIGRyaXZlciwgd2hpY2ggaXMgZm9yIEJyb2FkY29tIFRob3JVbHRyYSA1MC8xMDAvMjAwLzQwMC84MDAgZ2lnYWJpdCBFdGhlcm5ldCBjYXJkcy4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmQgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIFRoZXJlZm9yZSwgdGhlIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgYGJuZ2VgIGRyaXZlciwgd2hpY2ggaXMgZm9yIEJyb2FkY29tIFRob3JVbHRyYSA1MC8xMDAvMjAwLzQwMC84MDAgZ2lnYWJpdCBFdGhlcm5ldCBjYXJkcy4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmQgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIFRoZXJlZm9yZSwgdGhlIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNyAxNzowNTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMjdUMTc6MDI6NTIuMDc4ODUyMDM1WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTg3NzUxMjI3NjA2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGBibmdlYCBkcml2ZXIsIHdoaWNoIGlzIGZvciBCcm9hZGNvbSBUaG9yVWx0cmEgNTAvMTAwLzIwMC80MDAvODAwIGdpZ2FiaXQgRXRoZXJuZXQgY2FyZHMuIFRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBUaGVyZWZvcmUsIHRoZSBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjdUMTc6MDI6NTIuMDc4ODU4MDU1WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTUyNjcwNzg2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgYzA4M2RkYWY3MzIyYzUxMGVjOTdkYTIwNGYxNGY1Y2NjNmE3OWFjY1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEF1ZyAyNyAxNzowMjo1MCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmNcXG5pbmRleCBhNDI4OGYwMjU4Zjg3Li4xMzU3M2EyYjc4ZWYyIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9uZXRkZXYuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9uZXRkZXYuY1xcbkBAIC0zMTU1LDYgKzMxNTUsOSBAQCBzdGF0aWMgdm9pZCBibmdlX2Nsb3NlX2NvcmUoc3RydWN0IGJuZ2VfbmV0ICpibilcXG4ge1xcbiBcXHRzdHJ1Y3QgYm5nZV9kZXYgKmJkID0gYm4tXFx1MDAzZWJkO1xcbiBcXG4rXFx0aWYgKCFibi1cXHUwMDNlYm5hcGkpXFxuK1xcdFxcdHJldHVybjtcXG4rXFxuIFxcdGJuZ2VfdHhfZGlzYWJsZShibik7XFxuIFxcbiBcXHRjbGVhcl9iaXQoQk5HRV9TVEFURV9PUEVOLCBcXHUwMDI2YmQtXFx1MDAzZXN0YXRlKTtcXG5AQCAtMzI2Nyw2ICszMjcwLDQ0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0ZGV2X3N0YXRfb3BzIGJuZ2Vfc3RhdF9vcHMgPSB7XFxuIFxcdC5nZXRfYmFzZV9zdGF0c1xcdFxcdD0gYm5nZV9nZXRfYmFzZV9zdGF0cyxcXG4gfTtcXG4gXFxuK3N0YXRpYyBpbnQgYm5nZV9zZXRfZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgbmV0ZGV2X2ZlYXR1cmVzX3QgZmVhdHVyZXMpXFxuK3tcXG4rXFx0c3RydWN0IGJuZ2VfbmV0ICpibiA9IG5ldGRldl9wcml2KGRldik7XFxuK1xcdHN0cnVjdCBibmdlX2RldiAqYmQgPSBibi1cXHUwMDNlYmQ7XFxuK1xcdHUzMiBvbGRfZmxhZ3MgPSBibi1cXHUwMDNlcHJpdl9mbGFncztcXG4rXFx0dTMyIGZsYWdzID0gb2xkX2ZsYWdzO1xcbitcXHRpbnQgcmM7XFxuK1xcbitcXHRmbGFncyBcXHUwMDI2PSB+Qk5HRV9ORVRfRU5fVFBBO1xcbitcXHRpZiAoZmVhdHVyZXMgXFx1MDAyNiBORVRJRl9GX0dST19IVylcXG4rXFx0XFx0ZmxhZ3MgfD0gQk5HRV9ORVRfRU5fR1JPO1xcbitcXHRlbHNlIGlmIChmZWF0dXJlcyBcXHUwMDI2IE5FVElGX0ZfTFJPKVxcbitcXHRcXHRmbGFncyB8PSBCTkdFX05FVF9FTl9MUk87XFxuK1xcbitcXHRpZiAoZmxhZ3MgPT0gb2xkX2ZsYWdzKVxcbitcXHRcXHRyZXR1cm4gMDtcXG4rXFxuK1xcdGlmICghbmV0aWZfcnVubmluZyhkZXYpKSB7XFxuK1xcdFxcdGJuLVxcdTAwM2Vwcml2X2ZsYWdzID0gZmxhZ3M7XFxuK1xcdFxcdGJuZ2Vfc2V0X3JpbmdfcGFyYW1zKGJkKTtcXG4rXFx0XFx0cmV0dXJuIDA7XFxuK1xcdH1cXG4rXFxuK1xcdGJuZ2VfY2xvc2VfY29yZShibik7XFxuK1xcdGJuLVxcdTAwM2Vwcml2X2ZsYWdzID0gZmxhZ3M7XFxuK1xcdGJuZ2Vfc2V0X3JpbmdfcGFyYW1zKGJkKTtcXG4rXFxuK1xcdHJjID0gYm5nZV9vcGVuX2NvcmUoYm4pO1xcbitcXHRpZiAocmMpIHtcXG4rXFx0XFx0bmV0ZGV2X2VycihkZXYsIFxcXCJibmdlX29wZW5fY29yZSBlcnI6ICVkXFxcXG5cXFwiLCByYyk7XFxuK1xcdFxcdGJuLVxcdTAwM2Vwcml2X2ZsYWdzID0gb2xkX2ZsYWdzO1xcbitcXHRcXHRibmdlX3NldF9yaW5nX3BhcmFtcyhiZCk7XFxuK1xcdFxcdG5ldGlmX2Nsb3NlKGRldik7XFxuK1xcdH1cXG4rXFxuK1xcdHJldHVybiByYztcXG4rfVxcbitcXG4gc3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBibmdlX25ldGRldl9vcHMgPSB7XFxuIFxcdC5uZG9fb3BlblxcdFxcdD0gYm5nZV9vcGVuLFxcbiBcXHQubmRvX3N0b3BcXHRcXHQ9IGJuZ2VfY2xvc2UsXFxuQEAgLTMyNzQsNiArMzMxNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgYm5nZV9uZXRkZXZfb3BzID0ge1xcbiBcXHQubmRvX2dldF9zdGF0czY0XFx0PSBibmdlX2dldF9zdGF0czY0LFxcbiBcXHQubmRvX3NldF9yeF9tb2RlX2FzeW5jXFx0PSBibmdlX3NldF9yeF9tb2RlLFxcbiBcXHQubmRvX2ZlYXR1cmVzX2NoZWNrXFx0PSBibmdlX2ZlYXR1cmVzX2NoZWNrLFxcbitcXHQubmRvX3NldF9mZWF0dXJlc1xcdD0gYm5nZV9zZXRfZmVhdHVyZXMsXFxuIH07XFxuIFxcbiBzdGF0aWMgdm9pZCBibmdlX2luaXRfbWFjX2FkZHIoc3RydWN0IGJuZ2VfZGV2ICpiZClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjdUMTc6MDI6NTMuNjMyMDM2MDQxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MTg2MTk4MDMzMTMwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgYGJuZ2VgIGRyaXZlciwgd2hpY2ggaXMgZm9yIEJyb2FkY29tIFRob3JVbHRyYSA1MC8xMDAvMjAwLzQwMC84MDAgZ2lnYWJpdCBFdGhlcm5ldCBjYXJkcy4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmQgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIFRoZXJlZm9yZSwgdGhlIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBjMDgzZGRhZjczMjJjNTEwZWM5N2RhMjA0ZjE0ZjVjY2M2YTc5YWNjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBBdWcgMjcgMTc6MDI6NTAgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmNcbmluZGV4IGE0Mjg4ZjAyNThmODcuLjEzNTczYTJiNzhlZjIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfbmV0ZGV2LmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9uZXRkZXYuY1xuQEAgLTMxNTUsNiArMzE1NSw5IEBAIHN0YXRpYyB2b2lkIGJuZ2VfY2xvc2VfY29yZShzdHJ1Y3QgYm5nZV9uZXQgKmJuKVxuIHtcbiBcdHN0cnVjdCBibmdlX2RldiAqYmQgPSBibi1cdTAwM2ViZDtcbiBcbitcdGlmICghYm4tXHUwMDNlYm5hcGkpXG4rXHRcdHJldHVybjtcbitcbiBcdGJuZ2VfdHhfZGlzYWJsZShibik7XG4gXG4gXHRjbGVhcl9iaXQoQk5HRV9TVEFURV9PUEVOLCBcdTAwMjZiZC1cdTAwM2VzdGF0ZSk7XG5AQCAtMzI2Nyw2ICszMjcwLDQ0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0ZGV2X3N0YXRfb3BzIGJuZ2Vfc3RhdF9vcHMgPSB7XG4gXHQuZ2V0X2Jhc2Vfc3RhdHNcdFx0PSBibmdlX2dldF9iYXNlX3N0YXRzLFxuIH07XG4gXG4rc3RhdGljIGludCBibmdlX3NldF9mZWF0dXJlcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBuZXRkZXZfZmVhdHVyZXNfdCBmZWF0dXJlcylcbit7XG4rXHRzdHJ1Y3QgYm5nZV9uZXQgKmJuID0gbmV0ZGV2X3ByaXYoZGV2KTtcbitcdHN0cnVjdCBibmdlX2RldiAqYmQgPSBibi1cdTAwM2ViZDtcbitcdHUzMiBvbGRfZmxhZ3MgPSBibi1cdTAwM2Vwcml2X2ZsYWdzO1xuK1x0dTMyIGZsYWdzID0gb2xkX2ZsYWdzO1xuK1x0aW50IHJjO1xuK1xuK1x0ZmxhZ3MgXHUwMDI2PSB+Qk5HRV9ORVRfRU5fVFBBO1xuK1x0aWYgKGZlYXR1cmVzIFx1MDAyNiBORVRJRl9GX0dST19IVylcbitcdFx0ZmxhZ3MgfD0gQk5HRV9ORVRfRU5fR1JPO1xuK1x0ZWxzZSBpZiAoZmVhdHVyZXMgXHUwMDI2IE5FVElGX0ZfTFJPKVxuK1x0XHRmbGFncyB8PSBCTkdFX05FVF9FTl9MUk87XG4rXG4rXHRpZiAoZmxhZ3MgPT0gb2xkX2ZsYWdzKVxuK1x0XHRyZXR1cm4gMDtcbitcbitcdGlmICghbmV0aWZfcnVubmluZyhkZXYpKSB7XG4rXHRcdGJuLVx1MDAzZXByaXZfZmxhZ3MgPSBmbGFncztcbitcdFx0Ym5nZV9zZXRfcmluZ19wYXJhbXMoYmQpO1xuK1x0XHRyZXR1cm4gMDtcbitcdH1cbitcbitcdGJuZ2VfY2xvc2VfY29yZShibik7XG4rXHRibi1cdTAwM2Vwcml2X2ZsYWdzID0gZmxhZ3M7XG4rXHRibmdlX3NldF9yaW5nX3BhcmFtcyhiZCk7XG4rXG4rXHRyYyA9IGJuZ2Vfb3Blbl9jb3JlKGJuKTtcbitcdGlmIChyYykge1xuK1x0XHRuZXRkZXZfZXJyKGRldiwgXCJibmdlX29wZW5fY29yZSBlcnI6ICVkXFxuXCIsIHJjKTtcbitcdFx0Ym4tXHUwMDNlcHJpdl9mbGFncyA9IG9sZF9mbGFncztcbitcdFx0Ym5nZV9zZXRfcmluZ19wYXJhbXMoYmQpO1xuK1x0XHRuZXRpZl9jbG9zZShkZXYpO1xuK1x0fVxuK1xuK1x0cmV0dXJuIHJjO1xuK31cbitcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIGJuZ2VfbmV0ZGV2X29wcyA9IHtcbiBcdC5uZG9fb3Blblx0XHQ9IGJuZ2Vfb3BlbixcbiBcdC5uZG9fc3RvcFx0XHQ9IGJuZ2VfY2xvc2UsXG5AQCAtMzI3NCw2ICszMzE1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBibmdlX25ldGRldl9vcHMgPSB7XG4gXHQubmRvX2dldF9zdGF0czY0XHQ9IGJuZ2VfZ2V0X3N0YXRzNjQsXG4gXHQubmRvX3NldF9yeF9tb2RlX2FzeW5jXHQ9IGJuZ2Vfc2V0X3J4X21vZGUsXG4gXHQubmRvX2ZlYXR1cmVzX2NoZWNrXHQ9IGJuZ2VfZmVhdHVyZXNfY2hlY2ssXG4rXHQubmRvX3NldF9mZWF0dXJlc1x0PSBibmdlX3NldF9mZWF0dXJlcyxcbiB9O1xuIFxuIHN0YXRpYyB2b2lkIGJuZ2VfaW5pdF9tYWNfYWRkcihzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjdUMTc6MDI6NTMuNjMyMDM3MDYxWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjIxOTgyNTQyMzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgQnJvYWRjb20gRXRoZXJuZXQgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX25ldGRldi5jYC4gUmlnaHQgb2ZmIHRoZSBiYXQsIEkgc2VlIGEgbnVsbCBjaGVjayBiZWluZyBhZGRlZCB3aXRoaW4gYGJuZ2VfY2xvc2VfY29yZWAgZm9yIGBibi1cdTAwM2VibmFwaWAuIFN0YW5kYXJkIGRlZmVuc2l2ZSBwcm9ncmFtbWluZywgYWx3YXlzIGdvb2QgdG8gc2VlLiBQbHVzLCBhIG5ldyBmdW5jdGlvbiwgYGJuZ2Vfc2V0X2ZlYXR1cmVzYCwgaXMgYmVpbmcgaW50cm9kdWNlZCBhbmQgbGlua2VkIHRvIGBuZG9fc2V0X2ZlYXR1cmVzYCBpbiBgYm5nZV9uZXRkZXZfb3BzYC5cblxuSG1tLCBgYm5nZWDigKYgdGhhdCdzIGEgQnJvYWRjb20gRXRoZXJuZXQgZHJpdmVyLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgaXMgdGhpcyBmb3IgcGh5c2ljYWwgaGFyZHdhcmUgb3Igc29tZXRoaW5nIGVtdWxhdGVkPyBJIG5lZWQgdG8gY2xhcmlmeSB0aGF0LiBDb25zaWRlcmluZyB0aGlzIHNlZW1zIHRvIGJlIGEgcmVhbCwgbGl2ZSBFdGhlcm5ldCBkcml2ZXIsIGlzIGl0IHRhcmdldGluZyBhIHBoeXNpY2FsIFBDSWUgY2FyZCB0aGF0ICppc24ndCogcGFydCBvZiB0aGUgc3RhbmRhcmQgUUVNVSBzZXR1cD8gSSBoYXZlIHRvIGJlIHN1cmUuIEknbSB0aGlua2luZyBvZiB0aG9zZSB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVycywgbGlrZSBgbWx4c3dgLCBgcGRzX2NvcmVgLCBgcWVkYCwgYGlvbmljYCwgYW5kIGBhbWRncHVgLiBUaG9zZSBvZnRlbiBkZW1hbmQgYWN0dWFsIFBDSWUgaGFyZHdhcmUuXG5cblJpZ2h0LCBzbyB0byBtYWtlIHN1cmUsIGxldCdzIGp1c3QgbWFrZSBzdXJlIHRoaXMgZHJpdmVyIGlzICpub3QqIGVtdWxhdGVkIGluIFFFTVUuIFRpbWUgdG8gcnVuIGEgcXVpY2sgc2VhcmNoIHRocm91Z2ggdGhlIGtlcm5lbCB0cmVlIGFuZCBzZWUgd2hhdCBwb3BzIHVwIGZvciBgYm5nZWAgcmVsYXRlZCB0byB2aXJ0dWFsaXphdGlvbi4gR290dGEgY2hlY2sgdG8gbWFrZSBzdXJlIHRoaXMgZHJpdmVyIGlzbid0IHVzaW5nIGEgUENJZSBjYXJkIHRoYXQgd291bGQgcmVxdWlyZSByZWFsIGhhcmR3YXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjQxLCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjA4LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjdUMTc6MDM6MTUuODMwMjkzMTA2WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYzMDI5NDYzMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJibmdlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDYxODcgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL01ha2VmaWxlPTIwPW9iai0kKENPTkZJR19CQ01BU1ApICs9IGFzcDIvXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vTWFrZWZpbGU6MjE6b2JqLSQoQ09ORklHX0JOR0UpICs9IGJuZ2UvXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlPTM9b2JqLSQoQ09ORklHX0JOR0UpICs9IGJuZ19lbi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZS00LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6NTpibmdfZW4teSA6PSBibmdlX2NvcmUubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZTo2OlxcdCAgICBibmdlX2RldmxpbmsubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZTo3OlxcdCAgICBibmdlX2h3cm0ubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZTo4OlxcdCAgICBibmdlX2h3cm1fbGliLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6OTpcXHQgICAgYm5nZV9ybWVtLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6MTA6XFx0ICAgIGJuZ2VfcmVzYy5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlOjExOlxcdCAgICBibmdlX25ldGRldi5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlOjEyOlxcdCAgICBibmdlX2V0aHRvb2wubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9NYWtlZmlsZToxMzpcXHQgICAgYm5nZV9hdXhyLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvTWFrZWZpbGU6MTQ6XFx0ICAgIGJuZ2VfdHhyeC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL01ha2VmaWxlOjE1OlxcdCAgICBibmdlX2xpbmsub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMTAtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2V0aGVyZGV2aWNlLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MTE6I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2JuZ2UvaHNpLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MTI6I2luY2x1ZGUgXFxcImJuZ2Vfcm1lbS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjEzOiNpbmNsdWRlIFxcXCJibmdlX3Jlc2MuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoxNDojaW5jbHVkZSBcXFwiYm5nZV9hdXhyLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMTUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMDpleHRlcm4gY2hhciBibmdlX2RyaXZlcl9uYW1lW107XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg9MjI9ZW51bSBib2FyZF9pZHgge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjY6c3RydWN0IGJuZ2VfYXV4cl9wcml2IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNy1cXHRzdHJ1Y3QgYXV4aWxpYXJ5X2RldmljZSBhdXhfZGV2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjI4OlxcdHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2RldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yOS1cXHRpbnQgaWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0zMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDozMjpzdHJ1Y3QgYm5nZV9wZl9pbmZvIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0zMy1cXHR1MTZcXHRmd19maWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaD04MT1lbnVtIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTkyLSNkZWZpbmUgQk5HRV9NQVhfUVVFVUVcXHRcXHQ4XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6OTM6c3RydWN0IGJuZ2VfcXVldWVfaW5mbyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtOTQtXFx0dTggICAgICBxdWV1ZV9pZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTEwMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoxMDM6c3RydWN0IGJuZ2VfZGV2IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xMDQtXFx0c3RydWN0IGRldmljZVxcdCpkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MTQ1OlxcdHN0cnVjdCBibmdlX3BmX2luZm9cXHRwZjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xNDYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xNTMtXFx0LyogQmFja2luZyBzdG9yZXMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoxNTQ6XFx0c3RydWN0IGJuZ2VfY3R4X21lbV9pbmZvXFx0KmN0eDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xNTUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0xNTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MTU4OlxcdHN0cnVjdCBibmdlX2h3X3Jlc2NcXHRod19yZXNjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTE1OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIwNC1cXHR1OFxcdFxcdFxcdG1heF9sbHRjO1xcdC8qIGxvc3NsZXNzIFRDcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjIwNTpcXHRzdHJ1Y3QgYm5nZV9xdWV1ZV9pbmZvXFx0cV9pbmZvW0JOR0VfTUFYX1FVRVVFXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMDYtXFx0dThcXHRcXHRcXHR0Y190b19xaWR4W0JOR0VfTUFYX1FVRVVFXTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIxMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMTE6XFx0c3RydWN0IGJuZ2VfaXJxXFx0XFx0KmlycV90Ymw7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjEyLVxcdHUxNlxcdFxcdFxcdGlycXNfYWNxdWlyZWQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjEzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjIxNDpcXHRzdHJ1Y3QgYm5nZV9hdXhyX3ByaXZcXHQqYXV4X3ByaXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjE1OlxcdHN0cnVjdCBibmdlX2F1eHJfZGV2XFx0KmF1eHJfZGV2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIxNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMTc6XFx0c3RydWN0IGJuZ2VfbGlua19pbmZvXFx0bGlua19pbmZvO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIxOC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIyMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMjM6c3RhdGljIGlubGluZSBib29sIGJuZ2VfaXNfcm9jZV9lbihzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIyNC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmg6MjI4OnN0YXRpYyBpbmxpbmUgYm9vbCBibmdlX2lzX2FnZ19yZXFkKHN0cnVjdCBibmdlX2RldiAqYmQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjI5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yMzAtXFx0aWYgKGJkLVxcdTAwM2VuZXRkZXYpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyMzE6XFx0XFx0c3RydWN0IGJuZ2VfbmV0ICpibiA9IG5ldGRldl9wcml2KGJkLVxcdTAwM2VuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTIzMi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTI0Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyNDM6c3RhdGljIGlubGluZSB2b2lkIGJuZ2Vfd3JpdGVxKHN0cnVjdCBibmdlX2RldiAqYmQsIHU2NCB2YWwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjQ0LVxcdFxcdFxcdCAgICAgICB2b2lkIF9faW9tZW0gKmFkZHIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNTUtLyogRm9yIFRYIGFuZCBSWCByaW5nIGRvb3JiZWxscyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjI1NjpzdGF0aWMgaW5saW5lIHZvaWQgYm5nZV9kYl93cml0ZShzdHJ1Y3QgYm5nZV9kZXYgKmJkLCBzdHJ1Y3QgYm5nZV9kYl9pbmZvICpkYixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaC0yNTctXFx0XFx0XFx0XFx0IHUzMiBpZHgpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjU4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyNTk6XFx0Ym5nZV93cml0ZXEoYmQsIGRiLVxcdTAwM2VkYl9rZXk2NCB8IERCX1JJTkdfSURYKGRiLCBpZHgpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTI2MC1cXHRcXHQgICAgZGItXFx1MDAzZWRvb3JiZWxsKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oLTI2Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2UuaDoyNjM6Ym9vbCBibmdlX2F1eF9yZWdpc3RlcmVkKHN0cnVjdCBibmdlX2RldiAqYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZS5oOjI2NDp1MTYgYm5nZV9hdXhfZ2V0X21zaXgoc3RydWN0IGJuZ2VfZGV2ICpiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlLmgtMjY1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xNi0jaW5jbHVkZSBcXHUwMDNjbGludXgvYXV4aWxpYXJ5X2J1cy5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTc6I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2JuZ2UvaHNpLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE5OiNpbmNsdWRlIFxcXCJibmdlLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyMDojaW5jbHVkZSBcXFwiYm5nZV9od3JtLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyMTojaW5jbHVkZSBcXFwiYm5nZV9hdXhyLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjIzOnN0YXRpYyBERUZJTkVfSURBKGJuZ2VfYXV4X2Rldl9pZHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyNTpzdGF0aWMgdm9pZCBibmdlX2ZpbGxfbXNpeF92ZWNzKHN0cnVjdCBibmdlX2RldiAqYmQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyNjpcXHRcXHRcXHRcXHRzdHJ1Y3QgYm5nZV9tc2l4X2luZm8gKmluZm8pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yNy17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyODpcXHRzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYXV4cl9kZXYgPSBiZC1cXHUwMDNlYXV4cl9kZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yOS1cXHRpbnQgbnVtX21zaXgsIGk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTQyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6NDM6aW50IGJuZ2VfcmVnaXN0ZXJfZGV2KHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2RldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTQ0LVxcdFxcdCAgICAgIHZvaWQgKmhhbmRsZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTQ1LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjQ2OlxcdHN0cnVjdCBibmdlX2RldiAqYmQgPSBwY2lfZ2V0X2RydmRhdGEoYXV4cl9kZXYtXFx1MDAzZXBkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6NDc6XFx0c3RydWN0IGJuZ2VfYXV4cl9pbmZvICphdXhyX2luZm87XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy00OC1cXHRpbnQgcmMgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy01Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjU3OlxcdGlmICghYm5nZV9hdXhfaGFzX2Vub3VnaF9yZXNvdXJjZXMoYmQpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy01OC1cXHRcXHRyYyA9IC1FTk9NRU07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTY2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6Njc6XFx0Ym5nZV9maWxsX21zaXhfdmVjcyhiZCwgYmQtXFx1MDAzZWF1eHJfZGV2LVxcdTAwM2Vtc2l4X2luZm8pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtNjgtXFx0YXV4cl9kZXYtXFx1MDAzZWZsYWdzIHw9IEJOR0VfQVJERVZfTVNJWF9BTExPQztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtNzQtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6NzU6RVhQT1JUX1NZTUJPTChibmdlX3JlZ2lzdGVyX2Rldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy03Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjc3OnZvaWQgYm5nZV91bnJlZ2lzdGVyX2RldihzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYXV4cl9kZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy03OC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzo3OTpcXHRzdHJ1Y3QgYm5nZV9kZXYgKmJkID0gcGNpX2dldF9kcnZkYXRhKGF1eHJfZGV2LVxcdTAwM2VwZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjgwOlxcdHN0cnVjdCBibmdlX2F1eHJfaW5mbyAqYXV4cl9pbmZvO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtODEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTkxLX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjkyOkVYUE9SVF9TWU1CT0woYm5nZV91bnJlZ2lzdGVyX2Rldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy05My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjk0OmludCBibmdlX3NlbmRfbXNnKHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2Rldiwgc3RydWN0IGJuZ2VfZndfbXNnICpmd19tc2cpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy05NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzo5NjpcXHRzdHJ1Y3QgYm5nZV9kZXYgKmJkID0gcGNpX2dldF9kcnZkYXRhKGF1eHJfZGV2LVxcdTAwM2VwZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTk3LVxcdHN0cnVjdCBvdXRwdXQgKnJlc3A7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTEwMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjEwMjpcXHRyYyA9IGJuZ2VfaHdybV9yZXFfaW5pdChiZCwgcmVxLCAwIC8qIGRvbid0IGNhcmUgKi8pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTAzLVxcdGlmIChyYylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTA1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTA2OlxcdHJjID0gYm5nZV9od3JtX3JlcV9yZXBsYWNlKGJkLCByZXEsIGZ3X21zZy1cXHUwMDNlbXNnLCBmd19tc2ctXFx1MDAzZW1zZ19sZW4pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTA3LVxcdGlmIChyYylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTA5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTEwOlxcdGJuZ2VfaHdybV9yZXFfdGltZW91dChiZCwgcmVxLCBmd19tc2ctXFx1MDAzZXRpbWVvdXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTExOlxcdHJlc3AgPSBibmdlX2h3cm1fcmVxX2hvbGQoYmQsIHJlcSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxMTI6XFx0cmMgPSBibmdlX2h3cm1fcmVxX3NlbmQoYmQsIHJlcSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMTMtXFx0cmVzcF9sZW4gPSBsZTE2X3RvX2NwdShyZXNwLVxcdTAwM2VyZXNwX2xlbik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTEyMC1kcm9wX3JlcTpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjEyMTpcXHRibmdlX2h3cm1fcmVxX2Ryb3AoYmQsIHJlcSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMjItXFx0cmV0dXJuIHJjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTIzLX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjEyNDpFWFBPUlRfU1lNQk9MKGJuZ2Vfc2VuZF9tc2cpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTI1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTI2OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfdW5pbml0KHN0cnVjdCBibmdlX2RldiAqYmQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMjcte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTI4OlxcdHN0cnVjdCBibmdlX2F1eHJfcHJpdiAqYXV4X3ByaXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xMjktXFx0c3RydWN0IGF1eGlsaWFyeV9kZXZpY2UgKmFkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTEzOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE0MDpzdGF0aWMgdm9pZCBibmdlX2F1eF9kZXZfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xNDEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTQyOlxcdHN0cnVjdCBibmdlX2F1eHJfcHJpdiAqYXV4X3ByaXYgPVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTQzOlxcdFxcdFxcdGNvbnRhaW5lcl9vZihkZXYsIHN0cnVjdCBibmdlX2F1eHJfcHJpdiwgYXV4X2Rldi5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTQ0OlxcdHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2RldiA9IGF1eF9wcml2LVxcdTAwM2VhdXhyX2RldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE0NTpcXHRzdHJ1Y3QgYm5nZV9kZXYgKmJkID0gcGNpX2dldF9kcnZkYXRhKHRvX3BjaV9kZXYoZGV2LVxcdTAwM2VwYXJlbnQpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE0Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE0NzpcXHRpZGFfZnJlZShcXHUwMDI2Ym5nZV9hdXhfZGV2X2lkcywgYXV4X3ByaXYtXFx1MDAzZWlkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE0OC1cXHRpZiAoYXV4cl9kZXYpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTU2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MTU3OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfZGVsKHN0cnVjdCBibmdlX2RldiAqYmQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xNTgte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0xNjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxNjU6c3RhdGljIHZvaWQgYm5nZV9zZXRfYXV4cl9kZXZfaW5mbyhzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYXV4cl9kZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoxNjY6XFx0XFx0XFx0XFx0ICAgc3RydWN0IGJuZ2VfZGV2ICpiZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE2Ny17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTE4NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjE4Njp2b2lkIGJuZ2VfcmRtYV9hdXhfZGV2aWNlX2FkZChzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMTg3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjA1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjA2OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfaW5pdChzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjA3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTIwOC1cXHRzdHJ1Y3QgYXV4aWxpYXJ5X2RldmljZSAqYXV4X2RldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjIwOTpcXHRzdHJ1Y3QgYm5nZV9hdXhyX2luZm8gKmF1eHJfaW5mbztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjIxMDpcXHRzdHJ1Y3QgYm5nZV9hdXhyX3ByaXYgKmF1eF9wcml2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjExOlxcdHN0cnVjdCBibmdlX2F1eHJfZGV2ICphdXhyX2RldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jLTIxMi1cXHRpbnQgcmM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyMTQ6XFx0aWYgKCFibmdlX2lzX3JvY2VfZW4oYmQpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjE1LVxcdFxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjIwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmM6MjIxOlxcdGF1eF9wcml2LVxcdTAwM2VpZCA9IGlkYV9hbGxvYyhcXHUwMDI2Ym5nZV9hdXhfZGV2X2lkcywgR0ZQX0tFUk5FTCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMjItXFx0aWYgKGF1eF9wcml2LVxcdTAwM2VpZCBcXHUwMDNjIDApIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjMxLVxcdGF1eF9kZXYtXFx1MDAzZWRldi5wYXJlbnQgPSBcXHUwMDI2YmQtXFx1MDAzZXBkZXYtXFx1MDAzZWRldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5jOjIzMjpcXHRhdXhfZGV2LVxcdTAwM2VkZXYucmVsZWFzZSA9IGJuZ2VfYXV4X2Rldl9yZWxlYXNlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjMzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMzUtXFx0aWYgKHJjKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyMzY6XFx0XFx0aWRhX2ZyZWUoXFx1MDAyNmJuZ2VfYXV4X2Rldl9pZHMsIGF1eF9wcml2LVxcdTAwM2VpZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yMzctXFx0XFx0a2ZyZWUoYXV4X3ByaXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYy0yNTMtXFx0YmQtXFx1MDAzZWF1eHJfZGV2ID0gYXV4cl9kZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuYzoyNTQ6XFx0Ym5nZV9zZXRfYXV4cl9kZXZfaW5mbyhhdXhyX2RldiwgYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmMtMjU1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaD0xND1zdHJ1Y3QgaHdybV9hc3luY19ldmVudF9jbXBsO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6MTU6c3RydWN0IGJuZ2U7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC0xNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjE3OnN0cnVjdCBibmdlX21zaXhfaW5mbyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC0xOC1cXHR1MzJcXHR2ZWN0b3I7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTIyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6MjM6c3RydWN0IGJuZ2VfZndfbXNnIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTI0LVxcdHZvaWRcXHQqbXNnO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC0zMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjMxOnN0cnVjdCBibmdlX2F1eHJfaW5mbyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC0zMi1cXHR2b2lkXFx0XFx0KmhhbmRsZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg9MzY9ZW51bSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTQ0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6NDU6c3RydWN0IGJuZ2VfYXV4cl9kZXYge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtNDYtXFx0c3RydWN0IG5ldF9kZXZpY2VcXHQqbmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC00OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjUwOlxcdHN0cnVjdCBibmdlX21zaXhfaW5mb1xcdG1zaXhfaW5mb1tCTkdFX01BWF9ST0NFX01TSVhdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtNTEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTUzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6NTQ6XFx0c3RydWN0IGJuZ2VfYXV4cl9pbmZvXFx0KmF1eHJfaW5mbztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oLTU1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaC03NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjc1OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfdW5pbml0KHN0cnVjdCBibmdlX2RldiAqYmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaDo3Njp2b2lkIGJuZ2VfcmRtYV9hdXhfZGV2aWNlX2RlbChzdHJ1Y3QgYm5nZV9kZXYgKmJkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6Nzc6dm9pZCBibmdlX3JkbWFfYXV4X2RldmljZV9hZGQoc3RydWN0IGJuZ2VfZGV2ICpiZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjc4OnZvaWQgYm5nZV9yZG1hX2F1eF9kZXZpY2VfaW5pdChzdHJ1Y3QgYm5nZV9kZXYgKmJkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmg6Nzk6aW50IGJuZ2VfcmVnaXN0ZXJfZGV2KHN0cnVjdCBibmdlX2F1eHJfZGV2ICphZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtODAtXFx0XFx0ICAgICAgdm9pZCAqaGFuZGxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfYXV4ci5oOjgxOnZvaWQgYm5nZV91bnJlZ2lzdGVyX2RldihzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYWRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2F1eHIuaDo4MjppbnQgYm5nZV9zZW5kX21zZyhzdHJ1Y3QgYm5nZV9hdXhyX2RldiAqYWRldiwgc3RydWN0IGJuZ2VfZndfbXNnICpmd19tc2cpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9hdXhyLmgtODMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzo5OiNpbmNsdWRlIFxcXCJibmdlLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMDojaW5jbHVkZSBcXFwiYm5nZV9kZXZsaW5rLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMTojaW5jbHVkZSBcXFwiYm5nZV9od3JtLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMjojaW5jbHVkZSBcXFwiYm5nZV9od3JtX2xpYi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTM6I2luY2x1ZGUgXFxcImJuZ2VfbGluay5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jPTE2PU1PRFVMRV9ERVNDUklQVElPTihEUlZfU1VNTUFSWSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjE4OmNoYXIgYm5nZV9kcml2ZXJfbmFtZVtdID0gRFJWX05BTUU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jPTIwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBibmdlX3BjaV90YmxbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI3LVxcdHsgUENJX1ZERVZJQ0UoQlJPQURDT00sIDB4MTc4MCksIC5kcml2ZXJfZGF0YSA9IEJDTTU3NzA4IH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMwLX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMTpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgYm5nZV9wY2lfdGJsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzM6c3RhdGljIHZvaWQgYm5nZV9wcmludF9kZXZpY2VfaW5mbyhzdHJ1Y3QgcGNpX2RldiAqcGRldiwgZW51bSBib2FyZF9pZHggaWR4KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzQte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy00Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjQzOmJvb2wgYm5nZV9hdXhfcmVnaXN0ZXJlZChzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNDQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6NDU6XFx0c3RydWN0IGJuZ2VfYXV4cl9kZXYgKmJhX2RldiA9IGJkLVxcdTAwM2VhdXhyX2RldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTQ2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy01Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjUzOnN0YXRpYyB2b2lkIGJuZ2VfbnZtX2NmZ192ZXJfZ2V0KHN0cnVjdCBibmdlX2RldiAqYmQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy01NC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTU2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6NTc6XFx0aWYgKCFibmdlX2h3cm1fbnZtX2Rldl9pbmZvKGJkLCBcXHUwMDI2bnZtX2luZm8pKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNTgtXFx0XFx0c25wcmludGYoYmQtXFx1MDAzZW52bV9jZmdfdmVyLCBGV19WRVJfU1RSX0xFTiwgXFxcIiVkLiVkLiVkXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNjItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzo2MzpzdGF0aWMgaW50IGJuZ2VfZnVuY19xY2FwcyhzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNjQte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy02Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjY3OlxcdHJjID0gYm5nZV9od3JtX2Z1bmNfcWNhcHMoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtNjgtXFx0aWYgKHJjKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy03MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjcxOlxcdHJjID0gYm5nZV9od3JtX3F1ZXVlX3Fwb3J0Y2ZnKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTcyLVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy03OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjgwOnN0YXRpYyBpbnQgYm5nZV9mdW5jX3FyY2Fwc19xY2ZnKHN0cnVjdCBibmdlX2RldiAqYmQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy04MS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTgzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6ODQ6XFx0cmMgPSBibmdlX2h3cm1fZnVuY19yZXNjX3FjYXBzKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTg1LVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy04OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjkwOlxcdHJjID0gYm5nZV9od3JtX2Z1bmNfcWNmZyhiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy05MS1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtOTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzo5NjpcXHRyYyA9IGJuZ2VfaHdybV92bmljX3FjYXBzKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTk3LVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xMDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxMDU6c3RhdGljIHZvaWQgYm5nZV9md191bnJlZ2lzdGVyX2RldihzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTA2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEwNy1cXHQvKiBjdHggbWVtIGZyZWUgYWZ0ZXIgdW5yZ3RyIG9ubHkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEwODpcXHRibmdlX2h3cm1fZnVuY19kcnZfdW5yZ3RyKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEwOTpcXHRibmdlX2ZyZWVfY3R4X21lbShiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xMTAtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTExLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTEyOnN0YXRpYyB2b2lkIGJuZ2Vfc2V0X2RmbHRfcnNzX2hhc2hfdHlwZShzdHJ1Y3QgYm5nZV9kZXYgKmJkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTEzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTIxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTIyOnN0YXRpYyBpbnQgYm5nZV9md19yZWdpc3Rlcl9kZXYoc3RydWN0IGJuZ2VfZGV2ICpiZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEyMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEyNi1cXHRiZC1cXHUwMDNlZndfY2FwID0gMDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEyNzpcXHRyYyA9IGJuZ2VfaHdybV92ZXJfZ2V0KGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEyOC1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTMyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTMzOlxcdGJuZ2VfbnZtX2NmZ192ZXJfZ2V0KGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEzNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjEzNTpcXHRyYyA9IGJuZ2VfaHdybV9mdW5jX3Jlc2V0KGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTEzNi1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTQwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTQxOlxcdGJuZ2VfaHdybV9md19zZXRfdGltZShiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNDMtXFx0LyogR2V0IHRoZSByZXNvdXJjZXMgYW5kIGNvbmZpZ3VyYXRpb24gZnJvbSBmaXJtd2FyZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTQ0OlxcdHJjID0gYm5nZV9mdW5jX3FjYXBzKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE0NS1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTQ5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTUwOlxcdHJjID0gYm5nZV9hbGxvY19jdHhfbWVtKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE1MS1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTU1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTU2OlxcdHJjID0gYm5nZV9od3JtX2Z1bmNfZHJ2X3JndHIoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTU3LVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxNjI6XFx0cmMgPSBibmdlX2Z1bmNfcXJjYXBzX3FjZmcoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTYzLVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0xNjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoxNjg6XFx0Ym5nZV9zZXRfZGZsdF9yc3NfaGFzaF90eXBlKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE2OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTcyLWVycl9mdW5jX3Vucmd0cjpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjE3MzpcXHRibmdlX2h3cm1fZnVuY19kcnZfdW5yZ3RyKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE3NC1lcnJfZnJlZV9jdHhfbWVtOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTc1OlxcdGJuZ2VfZnJlZV9jdHhfbWVtKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE3Ni1cXHRyZXR1cm4gcmM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTE3OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjE3OTpzdGF0aWMgdm9pZCBibmdlX3BjaV9kaXNhYmxlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTgwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTg1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MTg2OnN0YXRpYyBpbnQgYm5nZV9wY2lfZW5hYmxlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMTg3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjAyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MjAzOlxcdHJjID0gcGNpX3JlcXVlc3RfcmVnaW9ucyhwZGV2LCBibmdlX2RyaXZlcl9uYW1lKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTIwNC1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MjIwOnN0YXRpYyB2b2lkIGJuZ2VfdW5tYXBfYmFycyhzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTIyMS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoyMjI6XFx0c3RydWN0IGJuZ2VfZGV2ICpiZCA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTIyMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjM0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MjM1OnN0YXRpYyB2b2lkIGJuZ2Vfc2V0X21heF9mdW5jX2lycXMoc3RydWN0IGJuZ2VfZGV2ICpiZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTIzNi1cXHRcXHRcXHRcXHQgICB1bnNpZ25lZCBpbnQgbWF4X2lycXMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI0MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI0MTpzdGF0aWMgaW50IGJuZ2VfZ2V0X21heF9pcnEoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNDIte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0yNDgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoyNDk6c3RhdGljIGludCBibmdlX21hcF9kYl9iYXIoc3RydWN0IGJuZ2VfZGV2ICpiZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI1MC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI2MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI2MTpzdGF0aWMgaW50IGJuZ2VfcHJvYmVfb25lKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjYyLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI2My1cXHR1bnNpZ25lZCBpbnQgbWF4X2lycXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzoyNjQ6XFx0c3RydWN0IGJuZ2VfZGV2ICpiZDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI2NS1cXHRpbnQgcmM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI3OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI4MDpcXHRyYyA9IGJuZ2VfcGNpX2VuYWJsZShwZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI4MS1cXHRpZiAocmMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTI4My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjI4NDpcXHRibmdlX3ByaW50X2RldmljZV9pbmZvKHBkZXYsIGVudC1cXHUwMDNlZHJpdmVyX2RhdGEpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjg1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6Mjg2OlxcdGJkID0gYm5nZV9kZXZsaW5rX2FsbG9jKHBkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjg3LVxcdGlmICghYmQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMjk5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzAwOlxcdHJjID0gYm5nZV9pbml0X2h3cm1fcmVzb3VyY2VzKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMwMS1cXHRpZiAocmMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMwMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjMwNDpcXHRyYyA9IGJuZ2VfZndfcmVnaXN0ZXJfZGV2KGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMwNS1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzA5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzEwOlxcdGJuZ2VfZGV2bGlua19yZWdpc3RlcihiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMTI6XFx0bWF4X2lycXMgPSBibmdlX2dldF9tYXhfaXJxKHBkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzEzOlxcdGJuZ2Vfc2V0X21heF9mdW5jX2lycXMoYmQsIG1heF9pcnFzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMxNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjMxNTpcXHRibmdlX2F1eF9pbml0X2RmbHRfY29uZmlnKGJkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTMxNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjMxNzpcXHRyYyA9IGJuZ2VfbmV0X2luaXRfZGZsdF9jb25maWcoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzE4LVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMjQ6XFx0cmMgPSBibmdlX21hcF9kYl9iYXIoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzI1LVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMzQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMzU6XFx0Ym5nZV9yZG1hX2F1eF9kZXZpY2VfaW5pdChiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zMzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozMzc6XFx0cmMgPSBibmdlX2FsbG9jX2lycXMoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzM4LVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNDM6XFx0cmMgPSBibmdlX25ldGRldl9hbGxvYyhiZCwgbWF4X2lycXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzQ0LVxcdGlmIChyYylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzQ2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzQ3OlxcdGJuZ2VfcmRtYV9hdXhfZGV2aWNlX2FkZChiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNDgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM1My1lcnJfZnJlZV9pcnE6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNTQ6XFx0Ym5nZV9mcmVlX2lycXMoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzU1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzU2LWVycl91bmluaXRfYXV4cjpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjM1NzpcXHRibmdlX3JkbWFfYXV4X2RldmljZV91bmluaXQoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzU4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzU5LWVycl9jb25maWdfdW5pbml0OlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzYwOlxcdGJuZ2VfbmV0X3VuaW5pdF9kZmx0X2NvbmZpZyhiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNjItZXJyX2Z3X3JlZzpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjM2MzpcXHRibmdlX2RldmxpbmtfdW5yZWdpc3RlcihiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNjQ6XFx0Ym5nZV9md191bnJlZ2lzdGVyX2RldihiZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYy0zNjYtZXJyX2h3cm1fY2xlYW51cDpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjM2NzpcXHRibmdlX2NsZWFudXBfaHdybV9yZXNvdXJjZXMoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzY4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzY5LWVycl9iYXJfdW5tYXA6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNzA6XFx0Ym5nZV91bm1hcF9iYXJzKHBkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzcxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzcyLWVycl9kZXZsX2ZyZWU6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozNzM6XFx0Ym5nZV9kZXZsaW5rX2ZyZWUoYmQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzc0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzc1LWVycl9wY2lfZGlzYWJsZTpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jOjM3NjpcXHRibmdlX3BjaV9kaXNhYmxlKHBkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzc3LVxcdHJldHVybiByYztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmMtMzc5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9jb3JlLmM6MzgwOnN0YXRpYyB2b2lkIGJuZ2VfcmVtb3ZlX29uZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibmdlL2JuZ2VfY29yZS5jLTM4MS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm5nZS9ibmdlX2NvcmUuYzozODI6XFx0c3RydWN0IGJuZ2VfZGV2ICpiZCA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2KTtcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjdUMTc6MDM6MTYuNDYwNTkzMTg3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODg4NDM4ODU4NDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBcImJuZ2VcIiBEcml2ZXIgYW5kIGl0cyBJbXBsaWNhdGlvbnMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGRyaXZlciwgYGJuZ2VgLiBUaGUgbmFtZSBzdWdnZXN0cyBpdCdzIGEgQnJvYWRjb20gRXRoZXJuZXQgZHJpdmVyLCB3aGljaCBpcyBhIGNvbW1vbiBzdGFydGluZyBwb2ludC4gQnV0LCBob2xkIG9uIGEgc2Vjb25k4oCmIGBibmdlYCBpc24ndCBpbW1lZGlhdGVseSByaW5naW5nIGFueSBiZWxscyBhcyBhIHN0YW5kYXJkIHVwc3RyZWFtIExpbnV4IGRyaXZlci4gVGhhdCdzIGEgcmVkIGZsYWcuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIHRoaXMgaXMgYW4gYWN0dWFsLCBwaHlzaWNhbCBkcml2ZXIsIG9yIGlmIGl0J3Mgc29tZXRoaW5nIHNwZWNpZmljIHRvIHRoaXMgdGVzdGluZyBlbnZpcm9ubWVudCDigJMgbWF5YmUgYSBzeXprYWxsZXIgcHNldWRvLWRyaXZlciwgb3Igc29tZXRoaW5nIHNpbWlsYXI/XG5cbkFoYSwgdGhlIHBhdGNoIGluZGljYXRlcyBpdCdzIGxvY2F0ZWQgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JuZ2UvYm5nZV9uZXRkZXYuY2AuIFRoYXQgZ2l2ZXMgbWUgYSBiaXQgbW9yZSBjb25maWRlbmNlIGl0IG1pZ2h0IGJlIGEgKnJlYWwqIGRyaXZlci4gTGV0J3MgZGlnIGRlZXBlciBhbmQgc2VlIGlmIGl0J3MgdGllZCB0byBwaHlzaWNhbCBoYXJkd2FyZS4gSSBuZWVkIHRoZSBQQ0kgSURzLi4uIGdvdCB0aGVtOiBgeyBQQ0lfVkRFVklDRShCUk9BRENPTSwgMHgxNzgwKSwgLmRyaXZlcl9kYXRhID0gQkNNNTc3MDggfWAuIE9rYXksIHRoYXQncyBjcnVjaWFsLiBcblxuSWYgdGhpcyBwb2ludHMgdG8gYW4gYWN0dWFsIGhhcmR3YXJlIGNhcmQsIGxpa2UgdGhlIEJDTTU3NzA4LCB0aGVuIHRoZXJlJ3MgYW4gaW1tZWRpYXRlIHByb2JsZW0uIEl0IG1lYW5zIHdlJ3JlIGRlYWxpbmcgd2l0aCBhIHBoeXNpY2FsIE5JQyB0aGF0J3MgbGlrZWx5IG5vdCByZWFjaGFibGUgaW4gdGhlIGN1cnJlbnQgc2V0dXAuIFRoaXMgYnJpbmdzIHVwIHRoZSBuZWVkIHRvIGNoZWNrIGZvciBRRU1VIGVtdWxhdGlvbi5cblxuU28sIHRoZSBrZXkgcXVlc3Rpb24gbm93IGlzOiBEb2VzIFFFTVUsIG9yIGFueSBvdGhlciB2aXJ0dWFsaXphdGlvbiwgZW11bGF0ZSB0aGUgQkNNNTc3MDggb3IgdGhlIGBibmdlYCBkcml2ZXI/IEknbGwgY2hlY2sgaWYgYENPTkZJR19CTkdFYCBpcyBkZWZpbmVkIGluIHRoZSBrZXJuZWwgdHJlZS4gVGhhdCB3aWxsIGJlIHRoZSBuZXh0IHN0ZXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE3MDI2LCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjE0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI3VDE3OjA0OjQ1LjMwNDQ4MjMxMloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjQ2OTIxMDc0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBCTkdFXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9LY29uZmlnPTI1MD1jb25maWcgQk5YVF9IV01PTlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vS2NvbmZpZy0yNTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vS2NvbmZpZzoyNTg6Y29uZmlnIEJOR0VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9LY29uZmlnLTI1OS1cXHR0cmlzdGF0ZSBcXFwiQnJvYWRjb20gVGhvclVsdHJhIEV0aGVybmV0IGRldmljZSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yN1QxNzowNDo0Ni45NTE0MDg4MDdaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDc5Mzk4NjAxMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIEJyb2FkY29tIFRob3JVbHRyYSBFdGhlcm5ldCBEZXZpY2UgU3VwcG9ydCoqXG5cbk9rYXksIHNvIHRoZSBpbml0aWFsIHF1ZXN0aW9uIGlzIGFib3V0IEJyb2FkY29tJ3MgVGhvclVsdHJhIEV0aGVybmV0IGRldmljZSBhbmQgaXRzIHN1cHBvcnQuIE15IGZpcnN0IHRob3VnaHQgaXMgd2hldGhlciB0aGlzIGlzIGEgcGh5c2ljYWwgUENJZSBjYXJkLCBtZWFuaW5nIGl0J3Mgbm90IHNvbWV0aGluZyB0eXBpY2FsbHkgZW11bGF0ZWQgaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50LiBUaGUgYW5zd2VyIGNvbmZpcm1zIGl0J3MgcGh5c2ljYWwgaGFyZHdhcmUuXG5cbkFscmlnaHQsIGxldCdzIHN0ZXAgYmFjayBhbmQgY29uc2lkZXIgUUVNVSBlbXVsYXRpb24uIEkgaW1tZWRpYXRlbHkgcnVuIHRocm91Z2ggdGhlIGNvbW1vbiBuZXR3b3JrIGRldmljZSBlbXVsYXRpb25zIEknbSBmYW1pbGlhciB3aXRoIOKAkyBlMTAwMCwgZTEwMDBlLCBydGw4MTM5LCBwY25ldCwgbmUya19wY2ksIHZteG5ldDMsIHZpcnRpby1uZXQuIE5vbmUgb2YgdGhvc2UgYXJlIHRoZSBUaG9yVWx0cmEuIFNvLCBRRU1VIGxpa2VseSAqZG9lc24ndCogZW11bGF0ZSBpdCBkaXJlY3RseS5cblxuTmV4dCwgSSBuZWVkIHRvIGNoZWNrIGlmIHdlJ3JlIGRlYWxpbmcgd2l0aCBhIGRyaXZlciBkZXNpZ25lZCBmb3IgYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gVGhlIHByb21wdCByZWZlcmVuY2VzIHZlbmRvci1zcGVjaWZpYyBkcml2ZXJzIGFzc29jaWF0ZWQgd2l0aCBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVXMsIHRoaW5ncyBsaWtlIG1seHN3LCBwZHNfY29yZSwgcWVkLCBpb25pYywgYW5kIGFtZGdwdSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gUUVNVS4gVGhpcyBtYWtlcyBtZSBzdXNwZWN0IEJOR0UgKmlzKiBzdWNoIGEgcGh5c2ljYWwgZGV2aWNlLiBMZXQncyBjb25maXJtIGl0J3MgYSBwaHlzaWNhbCBjYXJkLlxuXG5JZiBpdCAqaXMqIHBoeXNpY2FsLCB0aGVuIGl0J3MgYWxtb3N0IGNlcnRhaW5seSBub3QgZ29pbmcgdG8gYmUgYWNjZXNzaWJsZSB3aXRoaW4gZW52aXJvbm1lbnRzIGxpa2UgR29vZ2xlIENvbXB1dGUgRW5naW5lIG9yLCBpbXBvcnRhbnRseSwgb3VyIFFFTVUgc2V0dXAuIEl0IG1ha2VzIHNlbnNlIHRvIHZlcmlmeS5cblxuVG8gbmFpbCBpdCBkb3duIGNvbXBsZXRlbHksIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBjaGVjayB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL0tjb25maWdgIGZpbGUgZm9yIHRoZSBgQk5HRWAgZHJpdmVyIGNvbmZpZ3VyYXRpb24uIFRoYXQnbGwgcHJvdmlkZSB0aGUgZGVmaW5pdGl2ZSBhbnN3ZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE3NzM5LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjYzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI3VDE3OjA0OjU3Ljc0NTM5NzgzN1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcwNzcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMjUwLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMjUwOlxcdGNvbmZpZyBCTlhUX0hXTU9OXFxuIDI1MTpcXHRcXHRib29sIFxcXCJCcm9hZGNvbSBOZXRYdHJlbWUtQy9FIEhXTU9OIHN1cHBvcnRcXFwiXFxuIDI1MjpcXHRcXHRkZWZhdWx0IHlcXG4gMjUzOlxcdFxcdGRlcGVuZHMgb24gQk5YVCBcXHUwMDI2XFx1MDAyNiBIV01PTiBcXHUwMDI2XFx1MDAyNiAhKEJOWFQ9eSBcXHUwMDI2XFx1MDAyNiBIV01PTj1tKVxcbiAyNTQ6XFx0XFx0aGVscFxcbiAyNTU6XFx0XFx0ICBTYXkgWSBpZiB5b3Ugd2FudCB0byBleHBvc2UgdGhlIHRoZXJtYWwgc2Vuc29yIGRhdGEgb24gTmV0WHRyZW1lLUMvRVxcbiAyNTY6XFx0XFx0ICBkZXZpY2VzLCB2aWEgdGhlIGh3bW9uIHN5c2ZzIGludGVyZmFjZS5cXG4gMjU3OlxcdFxcbiAyNTg6XFx0Y29uZmlnIEJOR0VcXG4gMjU5OlxcdFxcdHRyaXN0YXRlIFxcXCJCcm9hZGNvbSBUaG9yVWx0cmEgRXRoZXJuZXQgZGV2aWNlIHN1cHBvcnRcXFwiXFxuIDI2MDpcXHRcXHRkZXBlbmRzIG9uIFBDSVxcbiAyNjE6XFx0XFx0c2VsZWN0IE5FVF9ERVZMSU5LXFxuIDI2MjpcXHRcXHRzZWxlY3QgUEFHRV9QT09MXFxuIDI2MzpcXHRcXHRzZWxlY3QgQVVYSUxJQVJZX0JVU1xcbiAyNjQ6XFx0XFx0aGVscFxcbiAyNjU6XFx0XFx0ICBUaGlzIGRyaXZlciBzdXBwb3J0cyBCcm9hZGNvbSBUaG9yVWx0cmEgNTAvMTAwLzIwMC80MDAvODAwIGdpZ2FiaXRcXG4gMjY2OlxcdFxcdCAgRXRoZXJuZXQgY2FyZHMuIFRoZSBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgYm5nX2VuLiBUbyBjb21waWxlIHRoaXNcXG4gMjY3OlxcdFxcdCAgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxcbiAyNjg6XFx0XFxuIDI2OTpcXHRjb25maWcgQkNNQVNQXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI3VDE3OjA0OjU3Ljc0NTQ3MDk3N1oiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYyMDg0NTc0NTE0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIEJyb2FkY29tIFRob3JVbHRyYSBFdGhlcm5ldCBDYXJkKipcblxuT2theSwgaGVyZSdzIHRoZSBkZWFsOiBCcm9hZGNvbSdzIFRob3JVbHRyYSBjYXJkcywgdGhvc2UgNTAvMTAwLzIwMC80MDAvODAwIGdpZ2FiaXQgYmVhc3RzLCBhcmUgKmRlZmluaXRlbHkqIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUuIE5vIHNvZnR3YXJlIGVtdWxhdGlvbiBpbiB0aGUgc3RhbmRhcmQgUUVNVSBzZXR1cCwgd2hpY2ggaW1tZWRpYXRlbHkgdGVsbHMgbWUgdGhleSdyZSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIGxpa2UgR29vZ2xlIENvbXB1dGUgRW5naW5lIG9yIGEgdHlwaWNhbCBRRU1VIGluc3RhbmNlLiBTbywgKldvcnRoRnV6emluZz1mYWxzZSogaXMgdGhlIGltbWVkaWF0ZSBjb25jbHVzaW9uLlxuXG5MZXQgbWUganVzdCBkb3VibGUtY2hlY2ssIHRob3VnaCwgYmVjYXVzZSBJIGRvbid0IHdhbnQgdG8gbWlzcyBhbnl0aGluZy4gSXMgdGhlcmUgYSBzb2Z0d2FyZSBlbXVsYXRvciBsdXJraW5nIGluIHRoZSBrZXJuZWwgc29tZXdoZXJlPyBOb3BlLiBJcyBpdCBhIHZpcnRpbyBkZXZpY2U/IEFic29sdXRlbHkgbm90OyBpdCdzIGEgUENJIGRldmljZSB3aXRoIElEIDB4MTc4MC4gU28sIGl0J3MgYSBwaHlzaWNhbCBoYXJkd2FyZSBjYXJkLCBwbGFpbiBhbmQgc2ltcGxlLlxuXG5Ob3csIGxldCdzIGdvIGJhY2sgYW5kIGV4YW1pbmUgdGhvc2UgaW5zdHJ1Y3Rpb25zLiBUaGV5J3JlIHRlbGxpbmcgbWUgdG8gc2V0ICpXb3J0aEZ1enppbmc9ZmFsc2UqIGlmIHRoZSBwYXRjaCBpbmNsdWRlcyBjb2RlIHRoYXQncyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cywgZXZlbiB3aGVuIHVzaW5nIGVtdWxhdGVkIGhhcmR3YXJlLCBvciBjb2RlIHRoYXQncyBzcGVjaWZpYyB0byB2ZW5kb3ItZGVmaW5lZCBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIGFuZCByZXF1aXJlcyBwaHlzaWNhbCBQQ0llIGNhcmRzLlxuXG5XZWxsLCB0aGlzIEJyb2FkY29tIGNhcmQgcGVyZmVjdGx5IGhpdHMgdGhhdCBzZWNvbmQgYnVsbGV0IHBvaW50LiBJdCByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZS4gTm8gd2F5IGFyb3VuZCBpdC5cblxuVGhlcmVmb3JlLCBteSBmaW5hbCBhbnN3ZXIgaXMgKldvcnRoRnV6emluZz1mYWxzZSouXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4NzE5LCJPdXRwdXRUb2tlbnMiOjExMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4NSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI3VDE3OjA1OjU5LjgzMDA0NzczMVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5NTQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgYm5nZWAgZHJpdmVyLCB3aGljaCBpcyBmb3IgQnJvYWRjb20gVGhvclVsdHJhIDUwLzEwMC8yMDAvNDAwLzgwMCBnaWdhYml0IEV0aGVybmV0IGNhcmRzLiBUaGlzIGlzIGEgdmVuZG9yLXNwZWNpZmljIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZCB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gVGhlcmVmb3JlLCB0aGUgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgYm5nZWAgZHJpdmVyLCB3aGljaCBpcyBmb3IgQnJvYWRjb20gVGhvclVsdHJhIDUwLzEwMC8yMDAvNDAwLzgwMCBnaWdhYml0IEV0aGVybmV0IGNhcmRzLiBUaGlzIGlzIGEgdmVuZG9yLXNwZWNpZmljIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZCB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gVGhlcmVmb3JlLCB0aGUgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI3VDE3OjA1OjU5LjgzMDA3MDcwMVoiLCJTZXEiOjExLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTYwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowjj4qj[1] Phase: Running StartedAt: 2026-08-27 17:06:20 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjj4qj[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-27 17:06:20 +0000 UTC FinishedAt: 2026-08-27 17:06:24 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}