Name: series-workflowj6m9p Phase: Failed StartedAt: 2026-08-10 14:38:06 +0000 UTC FinishedAt: 2026-08-10 14:40:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj6m9p[0] Phase: Succeeded StartedAt: 2026-08-10 14:38:06 +0000 UTC FinishedAt: 2026-08-10 14:39:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj6m9p[0].run-triage Phase: Succeeded StartedAt: 2026-08-10 14:38:06 +0000 UTC FinishedAt: 2026-08-10 14:39:52 +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+CgkJCTx0ZD4yMDI2LzA4LzEwIDE0OjM5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIE1UNzk5NiBXaS1GaSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgaGFyZHdhcmUgZHJpdmVyLiBUaGlzIGNvZGUgcmVxdWlyZXMgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGFuZCBjYW5ub3QgYmUgcmVhY2hlZCBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTAgMTQ6Mzk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAzYTFiMTliYzU1YjViNTk2ZTg4N2JmYzcyNjAyZGQ2ODRhZjE5ZDZiXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMTAgMTQ6Mzk6MTMgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jXG5pbmRleCBmYjYzNWEwOTI1ODQwLi41MjViYjc3MWY3OGE0IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmNcbkBAIC0yMzQsMTEgJiM0MzsyMzQsMzMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0aGVybWFsX2Nvb2xpbmdfZGV2aWNlX29wcyBtdDc5OTZfdGhlcm1hbF9vcHMgPSB7XG4gXHQuc2V0X2N1cl9zdGF0ZSA9IG10Nzk5Nl90aGVybWFsX3NldF9jdXJfdGhyb3R0bGVfc3RhdGUsXG4gfTtcbiBcbiYjNDM7c3RhdGljIGludCBtdDc5OTZfdGhlcm1hbF9nZXRfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCAqdGVtcClcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkgPSB0aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYodHopO1xuJiM0MztcdGludCB2YWw7XG4mIzQzO1xuJiM0MztcdG11dGV4X2xvY2soXHUwMDI2cGh5LVx1MDAzZWRldi1cdTAwM2VtdDc2Lm11dGV4KTtcbiYjNDM7XHR2YWwgPSBtdDc5OTZfbWN1X2dldF90ZW1wZXJhdHVyZShwaHkpO1xuJiM0MztcdG11dGV4X3VubG9jayhcdTAwMjZwaHktXHUwMDNlZGV2LVx1MDAzZW10NzYubXV0ZXgpO1xuJiM0MztcdGlmICh2YWwgXHUwMDNjIDApXG4mIzQzO1x0XHRyZXR1cm4gdmFsO1xuJiM0MztcbiYjNDM7XHQqdGVtcCA9IHZhbCAqIDEwMDA7XG4mIzQzO1x0cmV0dXJuIDA7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZV9vcHMgbXQ3OTk2X3R6X29wcyA9IHtcbiYjNDM7XHQuZ2V0X3RlbXAgPSBtdDc5OTZfdGhlcm1hbF9nZXRfdGVtcCxcbiYjNDM7fTtcbiYjNDM7XG4gc3RhdGljIHZvaWQgbXQ3OTk2X3VucmVnaXN0ZXJfdGhlcm1hbChzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxuIHtcbiBcdHN0cnVjdCB3aXBoeSAqd2lwaHkgPSBwaHktXHUwMDNlbXQ3Ni1cdTAwM2Vody1cdTAwM2V3aXBoeTtcbiBcdGNoYXIgbmFtZVtzaXplb2YoXCYjMzQ7Y29vbGluZ19kZXZpY2VYWFhcJiMzNDspXTtcbiBcbiYjNDM7XHRpZiAocGh5LVx1MDAzZXR6b25lKVxuJiM0MztcdFx0ZGV2bV90aGVybWFsX29mX3pvbmVfdW5yZWdpc3RlcihwaHktXHUwMDNlZGV2LVx1MDAzZW10NzYuZGV2LCBwaHktXHUwMDNldHpvbmUpO1xuJiM0MztcbiBcdGlmICghcGh5LVx1MDAzZWNkZXYpXG4gXHRcdHJldHVybjtcbiBcbkBAIC0yNzUsMTQgJiM0MzsyOTcsMjcgQEAgc3RhdGljIGludCBtdDc5OTZfdGhlcm1hbF9pbml0KHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkpXG4gXHRwaHktXHUwMDNldGhyb3R0bGVfdGVtcFtNVDc5OTZfQ1JJVF9URU1QX0lEWF0gPSBNVDc5OTZfQ1JJVF9URU1QO1xuIFx0cGh5LVx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTk2X01BWF9URU1QX0lEWF0gPSBNVDc5OTZfTUFYX1RFTVA7XG4gXG4mIzQzO1x0cGh5LVx1MDAzZXR6b25lID0gZGV2bV90aGVybWFsX29mX3pvbmVfcmVnaXN0ZXIocGh5LVx1MDAzZWRldi1cdTAwM2VtdDc2LmRldixcbiYjNDM7XHRcdFx0XHRcdFx0ICAgcGh5LVx1MDAzZW10NzYtXHUwMDNlYmFuZF9pZHgsIHBoeSxcbiYjNDM7XHRcdFx0XHRcdFx0ICAgXHUwMDI2bXQ3OTk2X3R6X29wcyk7XG4mIzQzO1x0aWYgKElTX0VSUihwaHktXHUwMDNldHpvbmUpKSB7XG4mIzQzO1x0XHRpZiAoUFRSX0VSUihwaHktXHUwMDNldHpvbmUpICE9IC1FTk9ERVYpXG4mIzQzO1x0XHRcdGRldl93YXJuKHBoeS1cdTAwM2VkZXYtXHUwMDNlbXQ3Ni5kZXYsXG4mIzQzO1x0XHRcdFx0IFwmIzM0O2ZhaWxlZCB0byByZWdpc3RlciB0aGVybWFsIHpvbmUgJWQ6ICVsZFxcblwmIzM0OyxcbiYjNDM7XHRcdFx0XHQgcGh5LVx1MDAzZW10NzYtXHUwMDNlYmFuZF9pZHgsIFBUUl9FUlIocGh5LVx1MDAzZXR6b25lKSk7XG4mIzQzO1x0XHRwaHktXHUwMDNldHpvbmUgPSBOVUxMO1xuJiM0MztcdH1cbiYjNDM7XG4gXHRpZiAoIUlTX1JFQUNIQUJMRShDT05GSUdfSFdNT04pKVxuIFx0XHRyZXR1cm4gMDtcbiBcbiBcdGh3bW9uID0gZGV2bV9od21vbl9kZXZpY2VfcmVnaXN0ZXJfd2l0aF9ncm91cHMoXHUwMDI2d2lwaHktXHUwMDNlZGV2LCBuYW1lLCBwaHksXG4gXHRcdFx0XHRcdFx0ICAgICAgIG10Nzk5Nl9od21vbl9ncm91cHMpO1xuIFxuLVx0aWYgKElTX0VSUihod21vbikpXG4mIzQzO1x0aWYgKElTX0VSUihod21vbikpIHtcbiYjNDM7XHRcdG10Nzk5Nl91bnJlZ2lzdGVyX3RoZXJtYWwocGh5KTtcbiBcdFx0cmV0dXJuIFBUUl9FUlIoaHdtb24pO1xuJiM0MztcdH1cbiBcbiBcdHJldHVybiAwO1xuIH1cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oXG5pbmRleCAyYTBjZGI1NmY4MjJlLi4zOWZhMjVhNTYyZTVlIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oXG5AQCAtMzcyLDYgJiM0MzszNzIsNyBAQCBzdHJ1Y3QgbXQ3OTk2X3BoeSB7XG4gXG4gXHRzdHJ1Y3QgaWVlZTgwMjExX3NiYW5kX2lmdHlwZV9kYXRhIGlmdHlwZVtOVU1fTkw4MDIxMV9CQU5EU11bTlVNX05MODAyMTFfSUZUWVBFU107XG4gXG4mIzQzO1x0c3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6b25lO1xuIFx0c3RydWN0IHRoZXJtYWxfY29vbGluZ19kZXZpY2UgKmNkZXY7XG4gXHR1OCBjZGV2X3N0YXRlO1xuIFx0dTggdGhyb3R0bGVfc3RhdGU7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTAgMTQ6Mzk8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYVRlayBNVDc5OTYgV2ktRmkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGRyaXZlci4gVGhpcyBjb2RlIHJlcXVpcmVzIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBhbmQgY2Fubm90IGJlIHJlYWNoZWQgaW4gdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgM2ExYjE5YmM1NWI1YjU5NmU4ODdiZmM3MjYwMmRkNjg0YWYxOWQ2YgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gQXVnIDEwIDE0OjM5OjEzIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jCmluZGV4IGZiNjM1YTA5MjU4NDAuLjUyNWJiNzcxZjc4YTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMKQEAgLTIzNCwxMSAmIzQzOzIzNCwzMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHRoZXJtYWxfY29vbGluZ19kZXZpY2Vfb3BzIG10Nzk5Nl90aGVybWFsX29wcyA9IHsKIAkuc2V0X2N1cl9zdGF0ZSA9IG10Nzk5Nl90aGVybWFsX3NldF9jdXJfdGhyb3R0bGVfc3RhdGUsCiB9OwogCiYjNDM7c3RhdGljIGludCBtdDc5OTZfdGhlcm1hbF9nZXRfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCAqdGVtcCkKJiM0Mzt7CiYjNDM7CXN0cnVjdCBtdDc5OTZfcGh5ICpwaHkgPSB0aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYodHopOwomIzQzOwlpbnQgdmFsOwomIzQzOwomIzQzOwltdXRleF9sb2NrKCZhbXA7cGh5LSZndDtkZXYtJmd0O210NzYubXV0ZXgpOwomIzQzOwl2YWwgPSBtdDc5OTZfbWN1X2dldF90ZW1wZXJhdHVyZShwaHkpOwomIzQzOwltdXRleF91bmxvY2soJmFtcDtwaHktJmd0O2Rldi0mZ3Q7bXQ3Ni5tdXRleCk7CiYjNDM7CWlmICh2YWwgJmx0OyAwKQomIzQzOwkJcmV0dXJuIHZhbDsKJiM0MzsKJiM0MzsJKnRlbXAgPSB2YWwgKiAxMDAwOwomIzQzOwlyZXR1cm4gMDsKJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlX29wcyBtdDc5OTZfdHpfb3BzID0gewomIzQzOwkuZ2V0X3RlbXAgPSBtdDc5OTZfdGhlcm1hbF9nZXRfdGVtcCwKJiM0Mzt9OwomIzQzOwogc3RhdGljIHZvaWQgbXQ3OTk2X3VucmVnaXN0ZXJfdGhlcm1hbChzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KQogewogCXN0cnVjdCB3aXBoeSAqd2lwaHkgPSBwaHktJmd0O210NzYtJmd0O2h3LSZndDt3aXBoeTsKIAljaGFyIG5hbWVbc2l6ZW9mKCYjMzQ7Y29vbGluZ19kZXZpY2VYWFgmIzM0OyldOwogCiYjNDM7CWlmIChwaHktJmd0O3R6b25lKQomIzQzOwkJZGV2bV90aGVybWFsX29mX3pvbmVfdW5yZWdpc3RlcihwaHktJmd0O2Rldi0mZ3Q7bXQ3Ni5kZXYsIHBoeS0mZ3Q7dHpvbmUpOwomIzQzOwogCWlmICghcGh5LSZndDtjZGV2KQogCQlyZXR1cm47CiAKQEAgLTI3NSwxNCAmIzQzOzI5NywyNyBAQCBzdGF0aWMgaW50IG10Nzk5Nl90aGVybWFsX2luaXQoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSkKIAlwaHktJmd0O3Rocm90dGxlX3RlbXBbTVQ3OTk2X0NSSVRfVEVNUF9JRFhdID0gTVQ3OTk2X0NSSVRfVEVNUDsKIAlwaHktJmd0O3Rocm90dGxlX3RlbXBbTVQ3OTk2X01BWF9URU1QX0lEWF0gPSBNVDc5OTZfTUFYX1RFTVA7CiAKJiM0MzsJcGh5LSZndDt0em9uZSA9IGRldm1fdGhlcm1hbF9vZl96b25lX3JlZ2lzdGVyKHBoeS0mZ3Q7ZGV2LSZndDttdDc2LmRldiwKJiM0MzsJCQkJCQkgICBwaHktJmd0O210NzYtJmd0O2JhbmRfaWR4LCBwaHksCiYjNDM7CQkJCQkJICAgJmFtcDttdDc5OTZfdHpfb3BzKTsKJiM0MzsJaWYgKElTX0VSUihwaHktJmd0O3R6b25lKSkgewomIzQzOwkJaWYgKFBUUl9FUlIocGh5LSZndDt0em9uZSkgIT0gLUVOT0RFVikKJiM0MzsJCQlkZXZfd2FybihwaHktJmd0O2Rldi0mZ3Q7bXQ3Ni5kZXYsCiYjNDM7CQkJCSAmIzM0O2ZhaWxlZCB0byByZWdpc3RlciB0aGVybWFsIHpvbmUgJWQ6ICVsZFxuJiMzNDssCiYjNDM7CQkJCSBwaHktJmd0O210NzYtJmd0O2JhbmRfaWR4LCBQVFJfRVJSKHBoeS0mZ3Q7dHpvbmUpKTsKJiM0MzsJCXBoeS0mZ3Q7dHpvbmUgPSBOVUxMOwomIzQzOwl9CiYjNDM7CiAJaWYgKCFJU19SRUFDSEFCTEUoQ09ORklHX0hXTU9OKSkKIAkJcmV0dXJuIDA7CiAKIAlod21vbiA9IGRldm1faHdtb25fZGV2aWNlX3JlZ2lzdGVyX3dpdGhfZ3JvdXBzKCZhbXA7d2lwaHktJmd0O2RldiwgbmFtZSwgcGh5LAogCQkJCQkJICAgICAgIG10Nzk5Nl9od21vbl9ncm91cHMpOwogCi0JaWYgKElTX0VSUihod21vbikpCiYjNDM7CWlmIChJU19FUlIoaHdtb24pKSB7CiYjNDM7CQltdDc5OTZfdW5yZWdpc3Rlcl90aGVybWFsKHBoeSk7CiAJCXJldHVybiBQVFJfRVJSKGh3bW9uKTsKJiM0MzsJfQogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oCmluZGV4IDJhMGNkYjU2ZjgyMmUuLjM5ZmEyNWE1NjJlNWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oCkBAIC0zNzIsNiAmIzQzOzM3Miw3IEBAIHN0cnVjdCBtdDc5OTZfcGh5IHsKIAogCXN0cnVjdCBpZWVlODAyMTFfc2JhbmRfaWZ0eXBlX2RhdGEgaWZ0eXBlW05VTV9OTDgwMjExX0JBTkRTXVtOVU1fTkw4MDIxMV9JRlRZUEVTXTsKIAomIzQzOwlzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHpvbmU7CiAJc3RydWN0IHRoZXJtYWxfY29vbGluZ19kZXZpY2UgKmNkZXY7CiAJdTggY2Rldl9zdGF0ZTsKIAl1OCB0aHJvdHRsZV9zdGF0ZTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTAgMTQ6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzAwMQoJCQkJCQkJb3V0cHV0OiA0NAoJCQkJCQkJdGhvdWdodHM6IDIwMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBUaGVybWFsIFBhdGNoIGZvciB0aGUgTVQ3OTk2IFdpLUZpIERyaXZlcioqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCDigJMgc2VlbXMgbGlrZSBpdCYjMzk7cyB0b3VjaGluZyBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jYC4gSW50ZXJlc3RpbmcsIHRoZXkmIzM5O3JlIGFkZGluZyBgbXQ3OTk2X3RoZXJtYWxfZ2V0X3RlbXBgLCBgbXQ3OTk2X3R6X29wc2AsIGFuZCByZWdpc3RlcmluZyBhIHRoZXJtYWwgem9uZSB1c2luZyBgZGV2bV90aGVybWFsX29mX3pvbmVfcmVnaXN0ZXJgLiBTdGFuZGFyZCB0aGVybWFsIG1hbmFnZW1lbnQgc3R1ZmYsIG5vdGhpbmcgaW1tZWRpYXRlbHkgYWxhcm1pbmcuIFRoZXkgYWxzbyBoYXZlIGEgY2xlYW51cCBmdW5jdGlvbiwgYG10Nzk5Nl91bnJlZ2lzdGVyX3RoZXJtYWxgLCB3aGljaCBpcyBnb29kIHRvIHNlZSDigJMgZW5zdXJlcyBhIGNsZWFuIHVucmVnaXN0cmF0aW9uIG9uIG1vZHVsZSB1bmxvYWQgb3IgZHJpdmVyIGRldGFjaG1lbnQuIFRoZSBkcml2ZXIgaW4gcXVlc3Rpb24gaXMgYG10Nzk5NmAsIE1lZGlhVGVrJiMzOTtzIFdpLUZpIGRyaXZlciwgd2hpY2ggaXMgZmFtaWxpYXIgdGVycml0b3J5LgoKVGhlIGltbWVkaWF0ZSBxdWVzdGlvbiBpczogd2hhdCBraW5kIG9mIHRhcmdldCBhcmUgd2UgZGVhbGluZyB3aXRoIGhlcmU/IElzIHRoaXMgYSBQQ0llIGNhcmQsIG9yIHNvbWV0aGluZyB0aGF0IEkgbWlnaHQgYWN0dWFsbHkgYmUgYWJsZSB0byBmdXp6IHdpdGhpbiBRRU1VPyBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgZHJpdmVyJiMzOTtzIHVuZGVybHlpbmcgaGFyZHdhcmUgcGxhdGZvcm0uIE1lZGlhVGVrJiMzOTtzIE1UNzk5NiBpcyBhIFdpLUZpIDcgY2hpcCwgc28gaXQmIzM5O3MgYSBwcmV0dHkgc2FmZSBiZXQgdGhhdCBpdCYjMzk7cyBhIFBDSWUgZGV2aWNlLgoKSSBzaG91bGQgcHJvYmFibHkgY29uZmlybSB0aGF0IGJ5IGNoZWNraW5nIG91dCB0aGUgcmVsZXZhbnQgc291cmNlIGZpbGVzIOKAkyBtYXliZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmNgIG9yIHNvbWV0aGluZyBzaW1pbGFyLCBmb3IgdGhhdCBQQ0ktc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24gbG9naWMuIExldCYjMzk7cyBzZWUgaWYgd2UgY2FuIGdldCBhIGNsZWFyZXIgcGljdHVyZSBvZiBob3cgdGhpcyBkcml2ZXIgaW50ZXJhY3RzIHdpdGggdGhlIGhhcmR3YXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEwIDE0OjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210Nzk5NiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNjYzOSBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGUtMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX01UNzk5NkUpICYjNDM7PSBtdDc5OTZlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTo1Om10Nzk5NmUteSA6PSBwY2kubyBpbml0Lm8gZG1hLm8gZWVwcm9tLm8gbWFpbi5vIG1jdS5vIG1hYy5vIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS02LVx0ICAgICBkZWJ1Z2ZzLm8gbW1pby5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS03LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU6ODptdDc5OTZlLSQoQ09ORklHX01UNzk5Nl9OUFUpICYjNDM7PSBucHUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU6OTptdDc5OTZlLSQoQ09ORklHX0RFVl9DT1JFRFVNUCkgJiM0Mzs9IGNvcmVkdW1wLm9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jPTEyPU1PRFVMRV9QQVJNX0RFU0MoY29yZWR1bXBfbWVtZHVtcCwgXCYjMzQ7T3B0aW9uYWwgYWJpbGl0eSB0byBkdW1wIGZpcm13YXJlIG1lbW9yeVwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxNDpzdGF0aWMgY29uc3Qgc3RydWN0IG10Nzk5Nl9tZW1fcmVnaW9uIG10Nzk5Nl9tZW1fcmVnaW9uc1tdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xNS1cdHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTQ2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo0Nzpjb25zdCBzdHJ1Y3QgbXQ3OTk2X21lbV9yZWdpb24qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjQ4Om10Nzk5Nl9jb3JlZHVtcF9nZXRfbWVtX2xheW91dChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCB1MzIgKm51bSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNDkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNTItXHRjYXNlIE1UNzk5Nl9ERVZJQ0VfSURfMjpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NTM6XHRcdCpudW0gPSBBUlJBWV9TSVpFKG10Nzk5Nl9tZW1fcmVnaW9ucyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjU0Olx0XHRyZXR1cm4gXHUwMDI2bXQ3OTk2X21lbV9yZWdpb25zWzBdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy01NS1cdGRlZmF1bHQ6XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy01OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NjA6c3RhdGljIGludCBtdDc5OTZfY29yZWR1bXBfZ2V0X21lbV9zaXplKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTYxLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NjI6XHRjb25zdCBzdHJ1Y3QgbXQ3OTk2X21lbV9yZWdpb24gKm1lbV9yZWdpb247XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTYzLVx0c2l6ZV90IHNpemUgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjY3Olx0bWVtX3JlZ2lvbiA9IG10Nzk5Nl9jb3JlZHVtcF9nZXRfbWVtX2xheW91dChkZXYsIFx1MDAyNm51bSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTY4LVx0aWYgKCFtZW1fcmVnaW9uKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNzYtXHQvKiByZXNlcnZlIHNwYWNlIGZvciB0aGUgaGVhZGVycyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo3NzpcdHNpemUgJiM0Mzs9IG51bSAqIHNpemVvZihzdHJ1Y3QgbXQ3OTk2X21lbV9oZHIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy03OC1cdC8qIG1ha2Ugc3VyZSBpdCBpcyBhbGlnbmVkIDQgYnl0ZXMgZm9yIGRlYnVnIG1lc3NhZ2UgcHJpbnQgb3V0ICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy04My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6ODQ6c3RydWN0IG10Nzk5Nl9jcmFzaF9kYXRhICptdDc5OTZfY29yZWR1bXBfbmV3KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTg1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6ODY6XHRzdHJ1Y3QgbXQ3OTk2X2NyYXNoX2RhdGEgKmNyYXNoX2RhdGEgPSBkZXYtXHUwMDNlY29yZWR1bXAuY3Jhc2hfZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtODctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYz0xMDA9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MTAxOm10Nzk5Nl9jb3JlZHVtcF9md19zdGF0ZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wICpkdW1wLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xMDItXHRcdFx0IGJvb2wgKmV4Y2VwdGlvbilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jPTExNz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxMTg6bXQ3OTk2X2NvcmVkdW1wX2Z3X3N0YWNrKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHN0cnVjdCBtdDc5OTZfY29yZWR1bXAgKmR1bXAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTExOS1cdFx0XHQgYm9vbCBleGNlcHRpb24pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xNjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE2MjpzdGF0aWMgc3RydWN0IG10Nzk5Nl9jb3JlZHVtcCAqbXQ3OTk2X2NvcmVkdW1wX2J1aWxkKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTE2My17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE2NDpcdHN0cnVjdCBtdDc5OTZfY3Jhc2hfZGF0YSAqY3Jhc2hfZGF0YSA9IGRldi1cdTAwM2Vjb3JlZHVtcC5jcmFzaF9kYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxNjU6XHRzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wICpkdW1wO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxNjY6XHRzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wX21lbSAqZHVtcF9tZW07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTE2Ny1cdHNpemVfdCBsZW4sIHNvZmFyID0gMCwgaGRyX2xlbiA9IHNpemVvZigqZHVtcCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xODYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE4NzpcdGR1bXAgPSAoc3RydWN0IG10Nzk5Nl9jb3JlZHVtcCAqKShidWYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xODgtXHRkdW1wLVx1MDAzZWxlbiA9IGxlbjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIwMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjAxOlx0bXQ3OTk2X2NvcmVkdW1wX2Z3X3N0YXRlKGRldiwgZHVtcCwgXHUwMDI2ZXhjZXB0aW9uKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjAyOlx0bXQ3OTk2X2NvcmVkdW1wX2Z3X3N0YWNrKGRldiwgZHVtcCwgZXhjZXB0aW9uKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjAzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMDQtXHQvKiBnYXRoZXIgbWVtb3J5IGNvbnRlbnQgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjA1Olx0ZHVtcF9tZW0gPSAoc3RydWN0IG10Nzk5Nl9jb3JlZHVtcF9tZW0gKikoYnVmICYjNDM7IHNvZmFyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjA2LVx0ZHVtcF9tZW0tXHUwMDNlbGVuID0gY3Jhc2hfZGF0YS1cdTAwM2VtZW1kdW1wX2J1Zl9sZW47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIxNjppbnQgbXQ3OTk2X2NvcmVkdW1wX3N1Ym1pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMTcte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyMTg6XHRzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wICpkdW1wO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIyMDpcdGR1bXAgPSBtdDc5OTZfY29yZWR1bXBfYnVpbGQoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjIxLVx0aWYgKCFkdW1wKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIzMTppbnQgbXQ3OTk2X2NvcmVkdW1wX3JlZ2lzdGVyKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIzMi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIzMzpcdHN0cnVjdCBtdDc5OTZfY3Jhc2hfZGF0YSAqY3Jhc2hfZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjM0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjQxLVx0aWYgKGNvcmVkdW1wX21lbWR1bXApIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjQyOlx0XHRjcmFzaF9kYXRhLVx1MDAzZW1lbWR1bXBfYnVmX2xlbiA9IG10Nzk5Nl9jb3JlZHVtcF9nZXRfbWVtX3NpemUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjQzLVx0XHRpZiAoIWNyYXNoX2RhdGEtXHUwMDNlbWVtZHVtcF9idWZfbGVuKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjU2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyNTc6dm9pZCBtdDc5OTZfY29yZWR1bXBfdW5yZWdpc3RlcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yNTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NzojaW5jbHVkZSBcJiMzNDttdDc5OTYuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC04LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo5OnN0cnVjdCBtdDc5OTZfY29yZWR1bXAge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC0xMC1cdGNoYXIgbWFnaWNbMTZdO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtMzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjQwOnN0cnVjdCBtdDc5OTZfY29yZWR1bXBfbWVtIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNDEtXHR1MzIgbGVuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjQ1OnN0cnVjdCBtdDc5OTZfbWVtX2hkciB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTQ2LVx0dTMyIHN0YXJ0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjUxOnN0cnVjdCBtdDc5OTZfbWVtX3JlZ2lvbiB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTUyLVx0dTMyIHN0YXJ0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjYwOmNvbnN0IHN0cnVjdCBtdDc5OTZfbWVtX3JlZ2lvbiAqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjYxOm10Nzk5Nl9jb3JlZHVtcF9nZXRfbWVtX2xheW91dChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCB1MzIgKm51bSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjYyOnN0cnVjdCBtdDc5OTZfY3Jhc2hfZGF0YSAqbXQ3OTk2X2NvcmVkdW1wX25ldyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NjM6aW50IG10Nzk5Nl9jb3JlZHVtcF9zdWJtaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjY0OmludCBtdDc5OTZfY29yZWR1bXBfcmVnaXN0ZXIoc3RydWN0IG10Nzk5Nl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjY1OnZvaWQgbXQ3OTk2X2NvcmVkdW1wX3VucmVnaXN0ZXIoc3RydWN0IG10Nzk5Nl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTY2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjY5OnN0YXRpYyBpbmxpbmUgY29uc3Qgc3RydWN0IG10Nzk5Nl9tZW1fcmVnaW9uICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NzA6bXQ3OTk2X2NvcmVkdW1wX2dldF9tZW1fbGF5b3V0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHUzMiAqbnVtKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC03MS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC03NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NzU6c3RhdGljIGlubGluZSBpbnQgbXQ3OTk2X2NvcmVkdW1wX3N1Ym1pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC03Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaD04MD1zdGF0aWMgaW5saW5lIHN0cnVjdFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo4MTptdDc5OTZfY3Jhc2hfZGF0YSAqbXQ3OTk2X2NvcmVkdW1wX25ldyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC04Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC04NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6ODY6c3RhdGljIGlubGluZSBpbnQgbXQ3OTk2X2NvcmVkdW1wX3JlZ2lzdGVyKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTg3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo5MTpzdGF0aWMgaW5saW5lIHZvaWQgbXQ3OTk2X2NvcmVkdW1wX3VucmVnaXN0ZXIoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtOTIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02LSNpbmNsdWRlIFx1MDAzY2xpbnV4L3JlbGF5LmhcdTAwM2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3OiNpbmNsdWRlIFwmIzM0O210Nzk5Ni5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOC0jaW5jbHVkZSBcJiMzNDtlZXByb20uaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0yMz1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjQ6bXQ3OTk2X2ltcGxpY2l0X3R4YmZfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjUte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI2Olx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTMyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjMzOlx0cmV0dXJuIG10Nzk5Nl9tY3Vfc2V0X3R4YmYoZGV2LCBCRl9IV19FTl9VUERBVEUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM0LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MzY9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM3Om10Nzk5Nl9pbXBsaWNpdF90eGJmX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zOC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Mzk6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00MC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDY6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfaW1wbGljaXRfdHhiZiwgbXQ3OTk2X2ltcGxpY2l0X3R4YmZfZ2V0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ3Olx0XHRcdCBtdDc5OTZfaW1wbGljaXRfdHhiZl9zZXQsIFwmIzM0OyVsbGRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz01MD1zdGF0aWMgc3NpemVfdFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjUxOm10Nzk5Nl9zeXNfcmVjb3Zlcnlfc2V0KHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFyIF9fdXNlciAqdXNlcl9idWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTItXHRcdFx0c2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU0Olx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGZpbGUtXHUwMDNlcHJpdmF0ZV9kYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU1LVx0Y2hhciBidWZbMTZdLCAqc2VwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05MS1cdGNhc2UgVU5JX0NNRF9TRVJfUVVFUlk6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6OTI6XHRcdHJldCA9IG10Nzk5Nl9tY3Vfc2V0X3NlcihkZXYsIFVOSV9DTURfU0VSX1FVRVJZLCAwLCBiYW5kKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05My1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEwMC1cdGNhc2UgVU5JX0NNRF9TRVJfU0VUX1JFQ09WRVJfTDRfTURQOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjEwMTpcdFx0cmV0ID0gbXQ3OTk2X21jdV9zZXRfc2VyKGRldiwgVU5JX0NNRF9TRVJfU0VULCBCSVQodmFsKSwgYmFuZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTAyLVx0XHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTA1Olx0XHRyZXQgPSBtdDc5OTZfbWN1X3NldF9zZXIoZGV2LCBVTklfQ01EX1NFUl9UUklHR0VSLCB2YWwsIGJhbmQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEwNi1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTExMS1cdFx0ZGV2LVx1MDAzZXJlY292ZXJ5LnN0YXRlIHw9IE1UX01DVV9DTURfV0RUX01BU0s7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTEyOlx0XHRtdDc5OTZfcmVzZXQoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMTMtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMTYtXHRjYXNlIFVOSV9DTURfU0VSX1NFVF9TWVNURU1fQVNTRVJUOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjExNzpcdFx0cmV0ID0gbXQ3OTk2X21jdV90cmlnZ2VyX2Fzc2VydChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTExOC1cdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MTI4PXN0YXRpYyBzc2l6ZV90XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTI5Om10Nzk5Nl9zeXNfcmVjb3ZlcnlfZ2V0KHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNlciAqdXNlcl9idWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTMwLVx0XHRcdHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEzMS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTMyOlx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGZpbGUtXHUwMDNlcHJpdmF0ZV9kYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEzMy1cdGNoYXIgKmJ1ZmY7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTIxNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyMTU6c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbXQ3OTk2X3N5c19yZWNvdmVyeV9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjE2Olx0LndyaXRlID0gbXQ3OTk2X3N5c19yZWNvdmVyeV9zZXQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjE3Olx0LnJlYWQgPSBtdDc5OTZfc3lzX3JlY292ZXJ5X2dldCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yMTgtXHQub3BlbiA9IHNpbXBsZV9vcGVuLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0yMjI9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjIyMzptdDc5OTZfcmFkYXJfdHJpZ2dlcih2b2lkICpkYXRhLCB1NjQgdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTIyNC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTIyNi0jZGVmaW5lIFJBREFSX0JBQ0tHUk9VTkRcdDJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyMjc6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyMjg6XHRzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5ID0gbXQ3OTk2X2JhbmRfcGh5KGRldiwgTkw4MDIxMV9CQU5EXzVHSFopO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTIyOS1cdHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiAqY2hhbmRlZjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjQ3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI0ODpcdHJkZF9pZHggPSBtdDc5OTZfZ2V0X3JkZF9pZHgocGh5LCB2YWwgPT0gUkFEQVJfQkFDS0dST1VORCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjQ5LVx0aWYgKHJkZF9pZHggXHUwMDNjIDApIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjU4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI1OTpcdHJldHVybiBtdDc5OTZfbWN1X3JkZF9jbWQoZGV2LCBSRERfUkFEQVJfRU1VTEFURSwgcmRkX2lkeCwgMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjYwLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MjYyPURFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3JhZGFyX3RyaWdnZXIsIE5VTEwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjYzOlx0XHRcdCBtdDc5OTZfcmFkYXJfdHJpZ2dlciwgXCYjMzQ7JWxsZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjY0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTI2NT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjY2Om10Nzk5Nl9yZGRfbW9uaXRvcihzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjY3LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyNjg6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGV2X2dldF9kcnZkYXRhKHMtXHUwMDNlcHJpdmF0ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjY5LVx0c3RydWN0IGNmZzgwMjExX2NoYW5fZGVmICpjaGFuZGVmID0gXHUwMDI2ZGV2LVx1MDAzZXJkZDJfY2hhbmRlZjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MzEyPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozMTM6bXQ3OTk2X2Z3X2RlYnVnX3dtX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTMxNC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzE1Olx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzE2LVx0ZW51bSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTMzNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozMzg6XHRyZXQgPSBtdDc5OTZfbWN1X2Z3X2xvZ18yX2hvc3QoZGV2LCBNQ1VfRldfTE9HX1dNLCB2YWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTMzOS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM1MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNTE6XHRcdHJldCA9IG10Nzk5Nl9tY3VfZndfZGJnX2N0cmwoZGV2LCBkZWJ1ZywgdmFsKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNTItXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTM1OT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzYwOm10Nzk5Nl9md19kZWJ1Z193bV9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzYxLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNjI6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNjMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM2OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNjk6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfZndfZGVidWdfd20sIG10Nzk5Nl9md19kZWJ1Z193bV9nZXQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzcwOlx0XHRcdCBtdDc5OTZfZndfZGVidWdfd21fc2V0LCBcJiMzNDslbGxkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MzcyPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNzM6bXQ3OTk2X2Z3X2RlYnVnX3dhX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM3NC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Mzc1Olx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzc2LVx0aW50IHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzc5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM4MDpcdHJldCA9IG10Nzk5Nl9tY3VfZndfbG9nXzJfaG9zdChkZXYsIE1DVV9GV19MT0dfV0EsIGRldi1cdTAwM2Vmd19kZWJ1Z193YSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzgxLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzgzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM4NDpcdHJldHVybiBtdDc5OTZfbWN1X3dhX2NtZChkZXYsIE1DVV9XQV9QQVJBTV9DTUQoU0VUKSwgTUNVX1dBX1BBUkFNX1BETUFfUlgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzg1LVx0XHRcdFx0ICEhZGV2LVx1MDAzZWZ3X2RlYnVnX3dhLCAwKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9Mzg4PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozODk6bXQ3OTk2X2Z3X2RlYnVnX3dhX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zOTAte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM5MTpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM5Mi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzk3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM5ODpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19md19kZWJ1Z193YSwgbXQ3OTk2X2Z3X2RlYnVnX3dhX2dldCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozOTk6XHRcdFx0IG10Nzk5Nl9md19kZWJ1Z193YV9zZXQsIFwmIzM0OyVsbGRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQwMC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NDI1PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0MjY6bXQ3OTk2X2Z3X2RlYnVnX2Jpbl9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00Mjcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00MzEtXHR9O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQzMjpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQzMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDQzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ0NDpcdHJldHVybiBtdDc5OTZfZndfZGVidWdfd21fc2V0KGRldiwgZGV2LVx1MDAzZWZ3X2RlYnVnX3dtKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NDUtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz00NDc9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ0ODptdDc5OTZfZndfZGVidWdfYmluX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NDkte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ1MDpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ1MS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDU2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ1NzpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19md19kZWJ1Z19iaW4sIG10Nzk5Nl9md19kZWJ1Z19iaW5fZ2V0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ1ODpcdFx0XHQgbXQ3OTk2X2Z3X2RlYnVnX2Jpbl9zZXQsIFwmIzM0OyVsbGRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ1OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz00NjA9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ2MTptdDc5OTZfZndfdXRpbF93YV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NjIte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ2MzpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBmaWxlLVx1MDAzZXByaXZhdGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDY0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ2NS1cdGlmIChkZXYtXHUwMDNlZndfZGVidWdfd2EpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDY2Olx0XHRyZXR1cm4gbXQ3OTk2X21jdV93YV9jbWQoZGV2LCBNQ1VfV0FfUEFSQU1fQ01EKFFVRVJZKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NjctXHRcdFx0XHRcdCBNQ1VfV0FfUEFSQU1fQ1BVX1VUSUwsIDAsIDApO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDcyOkRFRklORV9TSE9XX0FUVFJJQlVURShtdDc5OTZfZndfdXRpbF93YSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDczLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTQ3ND1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ3NTptdDc5OTZfYW1wZHVfc3RhdF9yZWFkX3BoeShzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LCBzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDc2LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0Nzc6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gcGh5LVx1MDAzZWRldjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NzgtXHRpbnQgYm91bmRbMTVdLCByYW5nZVs4XSwgaTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NTA0PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTA1Om10Nzk5Nl90eGJmX3N0YXRfcmVhZF9waHkoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSwgc3RydWN0IHNlcV9maWxlICpzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTUwNi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTU1Mj1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU1MzptdDc5OTZfdHhfc3RhdHNfc2hvd19waHkoc3RydWN0IHNlcV9maWxlICpmaWxlLCBzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU1NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU1OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1NTk6XHRtdDc5OTZfbWFjX3VwZGF0ZV9zdGF0cyhwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU2MDpcdG10Nzk5Nl9hbXBkdV9zdGF0X3JlYWRfcGh5KHBoeSwgZmlsZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTYxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01NjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTY5Olx0bXQ3OTk2X3R4YmZfc3RhdF9yZWFkX3BoeShwaHksIGZpbGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU3MC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NTg0PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1ODU6bXQ3OTk2X3R4X3N0YXRzX3Nob3coc3RydWN0IHNlcV9maWxlICpmaWxlLCB2b2lkICpkYXRhKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU4Ni17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTg3Olx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGZpbGUtXHUwMDNlcHJpdmF0ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1ODg6XHRzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5ID0gXHUwMDI2ZGV2LVx1MDAzZXBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01ODktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU5MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1OTI6XHRtdDc5OTZfdHhfc3RhdHNfc2hvd19waHkoZmlsZSwgcGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1OTM6XHRwaHkgPSBtdDc5OTZfcGh5MihkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU5NC1cdGlmIChwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTk1Olx0XHRtdDc5OTZfdHhfc3RhdHNfc2hvd19waHkoZmlsZSwgcGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1OTY6XHRwaHkgPSBtdDc5OTZfcGh5MyhkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU5Ny1cdGlmIChwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTk4Olx0XHRtdDc5OTZfdHhfc3RhdHNfc2hvd19waHkoZmlsZSwgcGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01OTktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTYwNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2MDU6REVGSU5FX1NIT1dfQVRUUklCVVRFKG10Nzk5Nl90eF9zdGF0cyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjA2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTYwNz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjYwODptdDc5OTZfaHdfcXVldWVfcmVhZChzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHUzMiBzaXplLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTYwOS1cdFx0ICAgICBjb25zdCBzdHJ1Y3QgaHdfcXVldWVfbWFwICptYXApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjEwLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2MTE6XHRzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5ID0gcy1cdTAwM2Vwcml2YXRlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjYxMjpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBwaHktXHUwMDNlZGV2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTYxMy1cdHUzMiBpLCB2YWw7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTYzOD1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjYzOTptdDc5OTZfc3RhX2h3X3F1ZXVlX3JlYWQodm9pZCAqZGF0YSwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NDAte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY0MTpcdHN0cnVjdCBtdDc5OTZfc3RhICptc3RhID0gKHN0cnVjdCBtdDc5OTZfc3RhICopc3RhLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY0MjpcdHN0cnVjdCBtdDc5OTZfdmlmICptdmlmID0gbXN0YS1cdTAwM2V2aWY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjQzOlx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeSA9IG10Nzk5Nl92aWZfbGlua19waHkoXHUwMDI2bXZpZi1cdTAwM2VkZWZsaW5rKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NDQtXHRzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfc3RhICpsaW5rX3N0YTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjQ2LVx0c3RydWN0IGllZWU4MDIxMV92aWYgKnZpZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2NDc6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY0OC1cdHVuc2lnbmVkIGludCBsaW5rX2lkO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NTgtXHRmb3JfZWFjaF9zdGFfYWN0aXZlX2xpbmsodmlmLCBzdGEsIGxpbmtfc3RhLCBsaW5rX2lkKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjU5Olx0XHRzdHJ1Y3QgbXQ3OTk2X3N0YV9saW5rICptc3RhX2xpbms7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjYwLVx0XHRzdHJ1Y3QgbXQ3Nl92aWZfbGluayAqbWxpbms7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY2Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2Njc6XHRcdG1zdGFfbGluayA9IG10Nzk5Nl9zdGFfbGluayhtc3RhLCBsaW5rX2lkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NjgtXHRcdGlmICghbXN0YV9saW5rKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz02OTQ9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY5NTptdDc5OTZfaHdfcXVldWVzX3Nob3coc3RydWN0IHNlcV9maWxlICpmaWxlLCB2b2lkICpkYXRhKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY5Ni17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Njk3Olx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGZpbGUtXHUwMDNlcHJpdmF0ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2OTg6XHRzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5ID0gXHUwMDI2ZGV2LVx1MDAzZXBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02OTktXHRzdGF0aWMgY29uc3Qgc3RydWN0IGh3X3F1ZXVlX21hcCBwbGVfcXVldWVfbWFwW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc0Ny1cdHNlcV9wdXRzKGZpbGUsIFwmIzM0O1BMRSBub24tZW1wdHkgcXVldWUgaW5mbzpcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc0ODpcdG10Nzk5Nl9od19xdWV1ZV9yZWFkKGZpbGUsIEFSUkFZX1NJWkUocGxlX3F1ZXVlX21hcCksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzQ5LVx0XHRcdCAgICAgXHUwMDI2cGxlX3F1ZXVlX21hcFswXSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc1Mi1cdGllZWU4MDIxMV9pdGVyYXRlX3N0YXRpb25zX2F0b21pYyhwaHktXHUwMDNlbXQ3Ni1cdTAwM2VodyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NTM6XHRcdFx0XHRcdCAgbXQ3OTk2X3N0YV9od19xdWV1ZV9yZWFkLCBmaWxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NTQ6XHRwaHkgPSBtdDc5OTZfcGh5MihkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc1NS1cdGlmIChwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzU2LVx0XHRpZWVlODAyMTFfaXRlcmF0ZV9zdGF0aW9uc19hdG9taWMocGh5LVx1MDAzZW10NzYtXHUwMDNlaHcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzU3Olx0XHRcdFx0XHRcdCAgbXQ3OTk2X3N0YV9od19xdWV1ZV9yZWFkLCBmaWxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NTg6XHRwaHkgPSBtdDc5OTZfcGh5MyhkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc1OS1cdGlmIChwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzYwLVx0XHRpZWVlODAyMTFfaXRlcmF0ZV9zdGF0aW9uc19hdG9taWMocGh5LVx1MDAzZW10NzYtXHUwMDNlaHcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzYxOlx0XHRcdFx0XHRcdCAgbXQ3OTk2X3N0YV9od19xdWV1ZV9yZWFkLCBmaWxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NjItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc2NC1cdHNlcV9wdXRzKGZpbGUsIFwmIzM0O1BTRSBub24tZW1wdHkgcXVldWUgaW5mbzpcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc2NTpcdG10Nzk5Nl9od19xdWV1ZV9yZWFkKGZpbGUsIEFSUkFZX1NJWkUocHNlX3F1ZXVlX21hcCksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzY2LVx0XHRcdCAgICAgXHUwMDI2cHNlX3F1ZXVlX21hcFswXSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NzE6REVGSU5FX1NIT1dfQVRUUklCVVRFKG10Nzk5Nl9od19xdWV1ZXMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc3Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz03NzM9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc3NDptdDc5OTZfeG1pdF9xdWV1ZXNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzc1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NzY6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZmlsZS1cdTAwM2Vwcml2YXRlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc3NzpcdHN0cnVjdCBtdDc5OTZfcGh5ICpwaHk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzc4LVx0c3RydWN0IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc5MTpcdHBoeSA9IG10Nzk5Nl9waHkyKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzkyLVx0aWYgKHBoeSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzk0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc5NTpcdHBoeSA9IG10Nzk5Nl9waHkzKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzk2LVx0aWYgKHBoeSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjgxNDpERUZJTkVfU0hPV19BVFRSSUJVVEUobXQ3OTk2X3htaXRfcXVldWVzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04MTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9ODE2PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4MTc6bXQ3OTk2X3R3dF9zdGF0cyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODE4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4MTk6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGV2X2dldF9kcnZkYXRhKHMtXHUwMDNlcHJpdmF0ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODIwOlx0c3RydWN0IG10Nzk5Nl90d3RfZmxvdyAqaXRlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04MjEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTg0NT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODQ2Om10Nzk5Nl9yZl9yZWd2YWxfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg0Ny17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODQ4Olx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODQ5LVx0dTMyIHJlZ3ZhbDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODUxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg1MjpcdHJldCA9IG10Nzk5Nl9tY3VfcmZfcmVndmFsKGRldiwgZGV2LVx1MDAzZW10NzYuZGVidWdmc19yZWcsIFx1MDAyNnJlZ3ZhbCwgZmFsc2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg1My1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTg2MT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODYyOm10Nzk5Nl9yZl9yZWd2YWxfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODYzLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NjQ6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NjUtXHR1MzIgdmFsMzIgPSB2YWw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODY2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg2NzpcdHJldHVybiBtdDc5OTZfbWN1X3JmX3JlZ3ZhbChkZXYsIGRldi1cdTAwM2VtdDc2LmRlYnVnZnNfcmVnLCBcdTAwMjZ2YWwzMiwgdHJ1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODY4LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODcwOkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3JmX3JlZ3ZhbCwgbXQ3OTk2X3JmX3JlZ3ZhbF9nZXQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODcxOlx0XHRcdCBtdDc5OTZfcmZfcmVndmFsX3NldCwgXCYjMzQ7MHglMDhsbHhcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg3Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NzM6aW50IG10Nzk5Nl9pbml0X2RlYnVnZnMoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NzQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NzktXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFwmIzM0O2h3LXF1ZXVlc1wmIzM0OywgMDQwMCwgZGlyLCBkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODgwOlx0XHRcdCAgICBcdTAwMjZtdDc5OTZfaHdfcXVldWVzX2ZvcHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg4MS1cdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXCYjMzQ7eG1pdC1xdWV1ZXNcJiMzNDssIDA0MDAsIGRpciwgZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg4MjpcdFx0XHQgICAgXHUwMDI2bXQ3OTk2X3htaXRfcXVldWVzX2ZvcHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg4MzpcdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXCYjMzQ7dHhfc3RhdHNcJiMzNDssIDA0MDAsIGRpciwgZGV2LCBcdTAwMjZtdDc5OTZfdHhfc3RhdHNfZm9wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODg0LVx0ZGVidWdmc19jcmVhdGVfZmlsZShcJiMzNDtzeXNfcmVjb3ZlcnlcJiMzNDssIDA2MDAsIGRpciwgZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg4NTpcdFx0XHQgICAgXHUwMDI2bXQ3OTk2X3N5c19yZWNvdmVyeV9vcHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg4Ni1cdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXCYjMzQ7ZndfZGVidWdfd21cJiMzNDssIDA2MDAsIGRpciwgZGV2LCBcdTAwMjZmb3BzX2Z3X2RlYnVnX3dtKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODkwLVx0ZGVidWdmc19jcmVhdGVfZmlsZShcJiMzNDtmd191dGlsX3dhXCYjMzQ7LCAwNDAwLCBkaXIsIGRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4OTE6XHRcdFx0ICAgIFx1MDAyNm10Nzk5Nl9md191dGlsX3dhX2ZvcHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg5Mi1cdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXCYjMzQ7aW1wbGljaXRfdHhiZlwmIzM0OywgMDYwMCwgZGlyLCBkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg5NC1cdGRlYnVnZnNfY3JlYXRlX2Rldm1fc2VxZmlsZShkZXYtXHUwMDNlbXQ3Ni5kZXYsIFwmIzM0O3R3dF9zdGF0c1wmIzM0OywgZGlyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg5NTpcdFx0XHRcdCAgICBtdDc5OTZfdHd0X3N0YXRzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04OTYtXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFwmIzM0O3JmX3JlZ3ZhbFwmIzM0OywgMDYwMCwgZGlyLCBkZXYsIFx1MDAyNmZvcHNfcmZfcmVndmFsKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTAxLVx0ZGVidWdmc19jcmVhdGVfZGV2bV9zZXFmaWxlKGRldi1cdTAwM2VtdDc2LmRldiwgXCYjMzQ7cmRkX21vbml0b3JcJiMzNDssIGRpcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo5MDI6XHRcdFx0XHQgICAgbXQ3OTk2X3JkZF9tb25pdG9yKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05MDMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTkwOT1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjkxMDptdDc5OTZfZGVidWdmc193cml0ZV9md2xvZyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBjb25zdCB2b2lkICpoZHIsIGludCBoZHJsZW4sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTExLVx0XHRcdCAgIGNvbnN0IHZvaWQgKmRhdGEsIGludCBsZW4pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkzMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo5MzQ6dm9pZCBtdDc5OTZfZGVidWdmc19yeF9md19tb25pdG9yKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGNvbnN0IHZvaWQgKmRhdGEsIGludCBsZW4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTM1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTU1LVx0aGRyLmxlbiA9ICooX19sZTE2ICopZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo5NTY6XHRtdDc5OTZfZGVidWdmc193cml0ZV9md2xvZyhkZXYsIFx1MDAyNmhkciwgc2l6ZW9mKGhkciksIGRhdGEsIGxlbik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTU3LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05NTgtXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMCAxNDozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDQwNQoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDMzNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIGBtdDc5OTZlYCBEcml2ZXIgYW5kIEl0cyBJbXBsaWNhdGlvbnMgZm9yIEZ1enppbmcqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYG10Nzk5NmVgIGRyaXZlciwgYW5kIGl0JiMzOTtzIGJ1aWx0IGZyb20gYHBjaS5vYCwgYGluaXQub2AsIGBkbWEub2AsIGBlZXByb20ub2AsIGBtYWluLm9gLCBldGMuIFRoYXQgaW1tZWRpYXRlbHkgdGVsbHMgbWUgaXQmIzM5O3MgYSBQQ0kgZHJpdmVyLiBUaGUga2V5IHF1ZXN0aW9uIGlzIHdoZXRoZXIgdGhpcyBpcyBmb3IgYSBwaHlzaWNhbCBQQ0llIGNhcmQgdGhhdCBRRU1VICpkb2VzbiYjMzk7dCogZW11bGF0ZSBvdXQtb2YtdGhlLWJveC4gTGV0JiMzOTtzIHNlZS4uLiB5ZXAsIE1lZGlhVGVrIE1UNzk5NiAqaXMqIGEgV2ktRmkgNyBQQ0llIGNhcmQuCgpOb3csIG15IG1pbmQgZ29lcyBzdHJhaWdodCB0byBRRU1VLiBEb2VzIFFFTVUgZXZlbiAqdHJ5KiB0byBlbXVsYXRlIHNwZWNpZmljIHZlbmRvciBXaS1GaSBjYXJkcz8gVXN1YWxseSwgbm90IHJlYWxseS4gSXQgaGFzIHRoZSBnZW5lcmFsIGUxMDAwIGFuZCB2aXJ0aW8gbmV0d29yayBpbnRlcmZhY2VzIGJ1dCBzcGVjaWZpYyBoYXJkd2FyZSBsaWtlIHRoaXMgTVQ3OTk2Li4uIGl0JiMzOTtzIHVubGlrZWx5LiBVbmxlc3MuLi4gKndhaXQqLi4uIHRoZXJlJiMzOTtzIGBtYWM4MDIxMV9od3NpbWAsIHdoaWNoICppcyogYSBzb2Z0d2FyZSBzaW11bGF0b3IsIGJ1dCB0aGlzIGlzIGEgKnNwZWNpZmljKiBoYXJkd2FyZSBkcml2ZXIsIGBtdDc5OTZgLCBzbyBJJiMzOTttIGd1ZXNzaW5nIHRoaXMgd29uJiMzOTt0IGFwcGx5IGhlcmUuCgpPa2F5LCBsZXQmIzM5O3MgZ28gYmFjayB0byB0aGUgcHJvbXB0OiBJdCBzYXlzIHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCBpZiB0aGUgcGF0Y2ggaW52b2x2ZXMgdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMuIFRoaW5ncyBsaWtlIGBtbHhzd2AsIGBxZWRgLCBgYW1kZ3B1YC4uLiBiYXNpY2FsbHksIGhhcmR3YXJlIHRoYXQgKnJlcXVpcmVzKiBhY3R1YWwgcGh5c2ljYWwgUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgYnkgc3RhbmRhcmQgUUVNVS4gSXMgYG10Nzk5NmAgYSB2ZW5kb3Itc3BlY2lmaWMgUENJIGRyaXZlcj8gQWJzb2x1dGVseS4gSXQmIzM5O3MgYSBNZWRpYVRlayBXaS1GaSBkcml2ZXIuCgpTbyB0aGUgcmVhbCBxdWVzdGlvbiB0aGVuIGlzOiBJcyBpdCBwb3NzaWJsZSB0byByZWFjaCB0aGUgY29kZSBpbiBRRU1VPyBBbmQgdXN1YWxseSBQQ0kgZHJpdmVycyBmb3Igc3BlY2lmaWMgV2ktRmkgY2FyZHMgKmNhbiYjMzk7dCogYmUgcHJvYmVkIGluIFFFTVUgdW5sZXNzIHRoZSBkZXZpY2UgaXMgZW11bGF0ZWQsIG9yIGlmIHdlIGFyZSB1c2luZyBkZXZpY2UgcGFzc3Rocm91Z2guIExldCBtZSBqdXN0IGNvbmZpcm0gYWdhaW46IGBtdDc5OTZgIGlzIGEgUENJIGRyaXZlci4gVGhhdCBzZWVtcyBjb3JyZWN0LCB0aGVyZWZvcmUsIHVubGVzcyB0aGVyZSYjMzk7cyBzb21ldGhpbmcgc3BlY2lmaWMgaW4gdGhpcyBwYXRjaCB0byBpbmRpY2F0ZSBvdGhlcndpc2UsIHRoaXMgaXMgcHJvYmFibHkgbm90IGZ1enphYmxlIHdpdGhvdXQgcGh5c2ljYWwgaGFyZHdhcmUgb3Igc3BlY2lhbGl6ZWQgZW11bGF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEwIDE0OjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BjaV9yZWdpc3Rlcl9kcml2ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTg4NT1zdGF0aWMgaW50IF9faW5pdCBtdDc5OTZfaW5pdCh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04ODgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODg5Olx0cmV0ID0gcGNpX3JlZ2lzdGVyX2RyaXZlcihcdTAwMjZtdDc5OTZfaGlmX2RyaXZlcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODkwLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODkyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg5MzpcdHJldCA9IHBjaV9yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2bXQ3OTk2X3BjaV9kcml2ZXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg5NC1cdGlmIChyZXQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTAgMTQ6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjE1NDYKCQkJCQkJCW91dHB1dDogODQKCQkJCQkJCXRob3VnaHRzOiA3NjQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudDogV29ydGhGdXp6aW5nID0gRmFsc2UqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kLCB5ZXMsIGl0JiMzOTtzIGRlZmluaXRlbHkgYSBQQ0kgZHJpdmVyIOKAkyB0aGF0JiMzOTtzIHRoZSBmaXJzdCB0aGluZyBJIG5vdGljZS4gVGhlIGNvcmUgb2YgdGhpcyBwYXRjaCBzZWVtcyB0byBiZSBhZGRpbmcgdGhlcm1hbCB6b25lIHJlZ2lzdHJhdGlvbiBzcGVjaWZpY2FsbHkgZm9yIHRoaXMgaGFyZHdhcmUuIFRoZSBrZXkgcG9pbnQgaGVyZSBpcyB0aGF0IGl0JiMzOTtzIGEgKnZlbmRvci1zcGVjaWZpYyogV2ktRmkgUENJZSBjYXJkLiBTaW5jZSBpdCYjMzk7cyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSwgdGhhdCBpbW1lZGlhdGVseSBmbGFncyBpdCBhcyBwb3RlbnRpYWxseSBwcm9ibGVtYXRpYyBmb3IgZnV6emluZy4KCk15IGltbWVkaWF0ZSB0aG91Z2h0IGFsaWducyB3aXRoIHRoZSBwcm9tcHQmIzM5O3MgZXhjbHVzaW9uIGNyaXRlcmlhOiBjb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzLiBJIG5lZWQgdG8gY29uZmlybSB0aGF0IFdpLUZpIGRyaXZlcnMgYWxzbyBmYWxsIGludG8gdGhpcyBjYXRlZ29yeS4gVGhlIGV4YW1wbGUgZ2l2ZW4gaW4gdGhlIHByb21wdCwgdGhpbmdzIGxpa2UgYG1seHN3YCwgYHBkc19jb3JlYCwgYHFlZGAsIGBpb25pY2AsIGFuZCBgYW1kZ3B1YCwgdGhleSBhbGwgYXBwbHkgdG8gb3RoZXIgdmVuZG9yLXNwZWNpZmljIFBDSWUgaGFyZHdhcmUuIEFuZCB5ZXMsIFdpLUZpIGRyaXZlcnMgbGlrZSB0aGUgYG10NzZgIHNlcmllcyBhcmUgZXF1YWxseSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBoYXJkd2FyZS4KClNvLCB0aGUgcXVlc3Rpb24gaXMsICpjYW4qIHRoaXMgYmUgZnV6emVkIGF0IGFsbD8gSSBrbm93IGBzeXprYWxsZXJgIGhhcyBzb21lIGxldmVsIG9mIHN1cHBvcnQgZm9yIFdpLUZpIGZ1enppbmcsIG5hbWVseSB2aWEgYG1hYzgwMjExX2h3c2ltYCwgYnV0IHRoYXQgZm9jdXNlcyBvbiB0aGUgZ2VuZXJhbCBtYWM4MDIxMSBzdGFjay4gSXQgZG9lc24mIzM5O3Qgc2VlbSB0byB0YXJnZXQgdGhlc2Ugc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVycyBsaWtlIGBtdDc5OTZgIGRpcmVjdGx5LiBgc3l6a2FsbGVyYCAqZG9lcyogaGF2ZSBzb21lIHBzZXVkby1zeXNjYWxscyBsaWtlIGBzeXpfODAyMTFfLi4uYCwgYnV0IHRoZXNlIGFsc28gb3BlcmF0ZSBhdCB0aGUgaGlnaGVyIG1hYzgwMjExL2NmZzgwMjExIGxldmVscywgbm90IGRpcmVjdGx5IGludGVyYWN0aW5nIHdpdGggdGhlIGhhcmR3YXJlIGRyaXZlci4KClRoZW4sIHRoZXJlJiMzOTtzIHRoZSBVU0IgZnV6emluZyBpbiBzeXprYWxsZXIgKGR1bW15X2hjZCkgYW5kIFBDSSBmdXp6aW5nLCBidXQgaXRzIGNhcGFiaWxpdGllcyBhcmUgcXVpdGUgbGltaXRlZC4gSSByZWNhbGwgUENJIGZ1enppbmcgYXMgYmVpbmcgbGFyZ2VseSB1bnN1aXRhYmxlIGZvciB2ZW5kb3Itc3BlY2lmaWMgUENJIGRyaXZlcnMgdW5sZXNzIHRoZXkmIzM5O3JlIGV4cGxpY2l0bHkgc3VwcG9ydGVkIG9yIHdlIGFyZSBmdXp6aW5nIHRoZSBQQ0kgc3Vic3lzdGVtIGl0c2VsZi4gV2FpdCwgaXQgc2VlbXMgc3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6aW5nIGNhbiBwcm9iZSBhbnkgUENJIGRyaXZlciBieSBlbXVsYXRpbmcgUENJIGNvbmZpZyBzcGFjZS4KU28sIHN5emthbGxlciBkb2VzIG9mZmVyIGB2aGNpYCBmb3IgUENJLCBidXQgaXQmIzM5O3Mgbm90IHdpZGVseSB1c2VkLgoKT2theSwgbGV0JiMzOTtzIHJlLXJlYWQgdGhlIHByb21wdC4gSXQgZXhwbGljaXRseSBzdGF0ZXM6ICYjMzQ7UmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczogLi4uIC0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiYjMzQ7CgpTaW5jZSB0aGlzIGBtdDc5OTZgIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgV2ktRmkgY2FyZCwgYW5kIHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB0aGUgaW1tZWRpYXRlIGNvbmNsdXNpb24gaXMgYFdvcnRoRnV6emluZz1mYWxzZWAuIEkgbmVlZCB0byBiZSBjZXJ0YWluIHRoYXQgdGhlIGRyaXZlciBpcyBzdHJpY3RseSBQQ0kuCgpBIHF1aWNrIGNoZWNrIGNvbmZpcm1zIHRoaXMuIFRoZSBgTWFrZWZpbGVgIGZvciB0aGUgYG10Nzk5NmAgZHJpdmVyIGhhcyBlbnRyaWVzIGxpa2UgYHBjaS5vYCwgc28gaXQmIzM5O3MgY2xlYXJseSBQQ0llLgoKTGV0IG1lIGp1c3QgY2hlY2sgZm9yIG90aGVyIGNvZGUuIFRoZSBjaGFuZ2VzIGFyZSBjb25maW5lZCB0byBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jYCBhbmQgYG10Nzk5Ni5oYC4gSXQgYWRkcyBgbXQ3OTk2X3RoZXJtYWxfZ2V0X3RlbXBgLCBgbXQ3OTk2X3R6X29wc2AsIGFuZCByZWdpc3RlcnMgYSB0aGVybWFsIHpvbmUsIGFsbCBvZiB3aGljaCBhcmUgaGFyZHdhcmUtc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24gYW5kIHRoZXJtYWwgbWFuYWdlbWVudCBjb21wb25lbnRzLiBUaGlzIHRoZXJtYWwgem9uZSByZWdpc3RyYXRpb24gaXMgaGFyZHdhcmUtc3BlY2lmaWMsIGFuZCBJIGNhbm5vdCBzZWUgYSB3YXkgdG8gdHJpZ2dlciBpdCB3aXRob3V0IHRoZSBwaHlzaWNhbCBoYXJkd2FyZS4KClRoZXJlZm9yZSwgbXkgZmluYWwgY29uY2x1c2lvbiBpcyBgV29ydGhGdXp6aW5nPWZhbHNlYC4gVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYVRlayBNVDc5OTYgV2ktRmkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGRyaXZlci4gVGhpcyBjb2RlIHJlcXVpcmVzIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBhbmQgY2Fubm90IGJlIHJlYWNoZWQgaW4gdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTAgMTQ6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVkaWFUZWsgTVQ3OTk2IFdpLUZpIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBoYXJkd2FyZSBkcml2ZXIuIFRoaXMgY29kZSByZXF1aXJlcyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgYW5kIGNhbm5vdCBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIE1UNzk5NiBXaS1GaSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgaGFyZHdhcmUgZHJpdmVyLiBUaGlzIGNvZGUgcmVxdWlyZXMgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGFuZCBjYW5ub3QgYmUgcmVhY2hlZCBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTAgMTQ6Mzk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEwVDE0OjM5OjE0LjI4MjI4ODMxWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjY4MDY3MTU0NDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVkaWFUZWsgTVQ3OTk2IFdpLUZpIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBoYXJkd2FyZSBkcml2ZXIuIFRoaXMgY29kZSByZXF1aXJlcyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgYW5kIGNhbm5vdCBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTBUMTQ6Mzk6MTQuMjgyMjk1MDlaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYxMzc2MjQ4NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDNhMWIxOWJjNTViNWI1OTZlODg3YmZjNzI2MDJkZDY4NGFmMTlkNmJcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIE1vbiBBdWcgMTAgMTQ6Mzk6MTMgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jXFxuaW5kZXggZmI2MzVhMDkyNTg0MC4uNTI1YmI3NzFmNzhhNCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmNcXG5AQCAtMjM0LDExICsyMzQsMzMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0aGVybWFsX2Nvb2xpbmdfZGV2aWNlX29wcyBtdDc5OTZfdGhlcm1hbF9vcHMgPSB7XFxuIFxcdC5zZXRfY3VyX3N0YXRlID0gbXQ3OTk2X3RoZXJtYWxfc2V0X2N1cl90aHJvdHRsZV9zdGF0ZSxcXG4gfTtcXG4gXFxuK3N0YXRpYyBpbnQgbXQ3OTk2X3RoZXJtYWxfZ2V0X3RlbXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgKnRlbXApXFxuK3tcXG4rXFx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeSA9IHRoZXJtYWxfem9uZV9kZXZpY2VfcHJpdih0eik7XFxuK1xcdGludCB2YWw7XFxuK1xcbitcXHRtdXRleF9sb2NrKFxcdTAwMjZwaHktXFx1MDAzZWRldi1cXHUwMDNlbXQ3Ni5tdXRleCk7XFxuK1xcdHZhbCA9IG10Nzk5Nl9tY3VfZ2V0X3RlbXBlcmF0dXJlKHBoeSk7XFxuK1xcdG11dGV4X3VubG9jayhcXHUwMDI2cGh5LVxcdTAwM2VkZXYtXFx1MDAzZW10NzYubXV0ZXgpO1xcbitcXHRpZiAodmFsIFxcdTAwM2MgMClcXG4rXFx0XFx0cmV0dXJuIHZhbDtcXG4rXFxuK1xcdCp0ZW1wID0gdmFsICogMTAwMDtcXG4rXFx0cmV0dXJuIDA7XFxuK31cXG4rXFxuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZV9vcHMgbXQ3OTk2X3R6X29wcyA9IHtcXG4rXFx0LmdldF90ZW1wID0gbXQ3OTk2X3RoZXJtYWxfZ2V0X3RlbXAsXFxuK307XFxuK1xcbiBzdGF0aWMgdm9pZCBtdDc5OTZfdW5yZWdpc3Rlcl90aGVybWFsKHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkpXFxuIHtcXG4gXFx0c3RydWN0IHdpcGh5ICp3aXBoeSA9IHBoeS1cXHUwMDNlbXQ3Ni1cXHUwMDNlaHctXFx1MDAzZXdpcGh5O1xcbiBcXHRjaGFyIG5hbWVbc2l6ZW9mKFxcXCJjb29saW5nX2RldmljZVhYWFxcXCIpXTtcXG4gXFxuK1xcdGlmIChwaHktXFx1MDAzZXR6b25lKVxcbitcXHRcXHRkZXZtX3RoZXJtYWxfb2Zfem9uZV91bnJlZ2lzdGVyKHBoeS1cXHUwMDNlZGV2LVxcdTAwM2VtdDc2LmRldiwgcGh5LVxcdTAwM2V0em9uZSk7XFxuK1xcbiBcXHRpZiAoIXBoeS1cXHUwMDNlY2RldilcXG4gXFx0XFx0cmV0dXJuO1xcbiBcXG5AQCAtMjc1LDE0ICsyOTcsMjcgQEAgc3RhdGljIGludCBtdDc5OTZfdGhlcm1hbF9pbml0KHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkpXFxuIFxcdHBoeS1cXHUwMDNldGhyb3R0bGVfdGVtcFtNVDc5OTZfQ1JJVF9URU1QX0lEWF0gPSBNVDc5OTZfQ1JJVF9URU1QO1xcbiBcXHRwaHktXFx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTk2X01BWF9URU1QX0lEWF0gPSBNVDc5OTZfTUFYX1RFTVA7XFxuIFxcbitcXHRwaHktXFx1MDAzZXR6b25lID0gZGV2bV90aGVybWFsX29mX3pvbmVfcmVnaXN0ZXIocGh5LVxcdTAwM2VkZXYtXFx1MDAzZW10NzYuZGV2LFxcbitcXHRcXHRcXHRcXHRcXHRcXHQgICBwaHktXFx1MDAzZW10NzYtXFx1MDAzZWJhbmRfaWR4LCBwaHksXFxuK1xcdFxcdFxcdFxcdFxcdFxcdCAgIFxcdTAwMjZtdDc5OTZfdHpfb3BzKTtcXG4rXFx0aWYgKElTX0VSUihwaHktXFx1MDAzZXR6b25lKSkge1xcbitcXHRcXHRpZiAoUFRSX0VSUihwaHktXFx1MDAzZXR6b25lKSAhPSAtRU5PREVWKVxcbitcXHRcXHRcXHRkZXZfd2FybihwaHktXFx1MDAzZWRldi1cXHUwMDNlbXQ3Ni5kZXYsXFxuK1xcdFxcdFxcdFxcdCBcXFwiZmFpbGVkIHRvIHJlZ2lzdGVyIHRoZXJtYWwgem9uZSAlZDogJWxkXFxcXG5cXFwiLFxcbitcXHRcXHRcXHRcXHQgcGh5LVxcdTAwM2VtdDc2LVxcdTAwM2ViYW5kX2lkeCwgUFRSX0VSUihwaHktXFx1MDAzZXR6b25lKSk7XFxuK1xcdFxcdHBoeS1cXHUwMDNldHpvbmUgPSBOVUxMO1xcbitcXHR9XFxuK1xcbiBcXHRpZiAoIUlTX1JFQUNIQUJMRShDT05GSUdfSFdNT04pKVxcbiBcXHRcXHRyZXR1cm4gMDtcXG4gXFxuIFxcdGh3bW9uID0gZGV2bV9od21vbl9kZXZpY2VfcmVnaXN0ZXJfd2l0aF9ncm91cHMoXFx1MDAyNndpcGh5LVxcdTAwM2VkZXYsIG5hbWUsIHBoeSxcXG4gXFx0XFx0XFx0XFx0XFx0XFx0ICAgICAgIG10Nzk5Nl9od21vbl9ncm91cHMpO1xcbiBcXG4tXFx0aWYgKElTX0VSUihod21vbikpXFxuK1xcdGlmIChJU19FUlIoaHdtb24pKSB7XFxuK1xcdFxcdG10Nzk5Nl91bnJlZ2lzdGVyX3RoZXJtYWwocGh5KTtcXG4gXFx0XFx0cmV0dXJuIFBUUl9FUlIoaHdtb24pO1xcbitcXHR9XFxuIFxcbiBcXHRyZXR1cm4gMDtcXG4gfVxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oXFxuaW5kZXggMmEwY2RiNTZmODIyZS4uMzlmYTI1YTU2MmU1ZSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaFxcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oXFxuQEAgLTM3Miw2ICszNzIsNyBAQCBzdHJ1Y3QgbXQ3OTk2X3BoeSB7XFxuIFxcbiBcXHRzdHJ1Y3QgaWVlZTgwMjExX3NiYW5kX2lmdHlwZV9kYXRhIGlmdHlwZVtOVU1fTkw4MDIxMV9CQU5EU11bTlVNX05MODAyMTFfSUZUWVBFU107XFxuIFxcbitcXHRzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHpvbmU7XFxuIFxcdHN0cnVjdCB0aGVybWFsX2Nvb2xpbmdfZGV2aWNlICpjZGV2O1xcbiBcXHR1OCBjZGV2X3N0YXRlO1xcbiBcXHR1OCB0aHJvdHRsZV9zdGF0ZTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTBUMTQ6Mzk6MTQuODk3MTU0NjY2WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MjYxOTE4MzY2MjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYVRlayBNVDc5OTYgV2ktRmkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGRyaXZlci4gVGhpcyBjb2RlIHJlcXVpcmVzIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBhbmQgY2Fubm90IGJlIHJlYWNoZWQgaW4gdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAzYTFiMTliYzU1YjViNTk2ZTg4N2JmYzcyNjAyZGQ2ODRhZjE5ZDZiXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMTAgMTQ6Mzk6MTMgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmNcbmluZGV4IGZiNjM1YTA5MjU4NDAuLjUyNWJiNzcxZjc4YTQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuY1xuQEAgLTIzNCwxMSArMjM0LDMzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZV9vcHMgbXQ3OTk2X3RoZXJtYWxfb3BzID0ge1xuIFx0LnNldF9jdXJfc3RhdGUgPSBtdDc5OTZfdGhlcm1hbF9zZXRfY3VyX3Rocm90dGxlX3N0YXRlLFxuIH07XG4gXG4rc3RhdGljIGludCBtdDc5OTZfdGhlcm1hbF9nZXRfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCAqdGVtcClcbit7XG4rXHRzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5ID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6KTtcbitcdGludCB2YWw7XG4rXG4rXHRtdXRleF9sb2NrKFx1MDAyNnBoeS1cdTAwM2VkZXYtXHUwMDNlbXQ3Ni5tdXRleCk7XG4rXHR2YWwgPSBtdDc5OTZfbWN1X2dldF90ZW1wZXJhdHVyZShwaHkpO1xuK1x0bXV0ZXhfdW5sb2NrKFx1MDAyNnBoeS1cdTAwM2VkZXYtXHUwMDNlbXQ3Ni5tdXRleCk7XG4rXHRpZiAodmFsIFx1MDAzYyAwKVxuK1x0XHRyZXR1cm4gdmFsO1xuK1xuK1x0KnRlbXAgPSB2YWwgKiAxMDAwO1xuK1x0cmV0dXJuIDA7XG4rfVxuK1xuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZV9vcHMgbXQ3OTk2X3R6X29wcyA9IHtcbitcdC5nZXRfdGVtcCA9IG10Nzk5Nl90aGVybWFsX2dldF90ZW1wLFxuK307XG4rXG4gc3RhdGljIHZvaWQgbXQ3OTk2X3VucmVnaXN0ZXJfdGhlcm1hbChzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxuIHtcbiBcdHN0cnVjdCB3aXBoeSAqd2lwaHkgPSBwaHktXHUwMDNlbXQ3Ni1cdTAwM2Vody1cdTAwM2V3aXBoeTtcbiBcdGNoYXIgbmFtZVtzaXplb2YoXCJjb29saW5nX2RldmljZVhYWFwiKV07XG4gXG4rXHRpZiAocGh5LVx1MDAzZXR6b25lKVxuK1x0XHRkZXZtX3RoZXJtYWxfb2Zfem9uZV91bnJlZ2lzdGVyKHBoeS1cdTAwM2VkZXYtXHUwMDNlbXQ3Ni5kZXYsIHBoeS1cdTAwM2V0em9uZSk7XG4rXG4gXHRpZiAoIXBoeS1cdTAwM2VjZGV2KVxuIFx0XHRyZXR1cm47XG4gXG5AQCAtMjc1LDE0ICsyOTcsMjcgQEAgc3RhdGljIGludCBtdDc5OTZfdGhlcm1hbF9pbml0KHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkpXG4gXHRwaHktXHUwMDNldGhyb3R0bGVfdGVtcFtNVDc5OTZfQ1JJVF9URU1QX0lEWF0gPSBNVDc5OTZfQ1JJVF9URU1QO1xuIFx0cGh5LVx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTk2X01BWF9URU1QX0lEWF0gPSBNVDc5OTZfTUFYX1RFTVA7XG4gXG4rXHRwaHktXHUwMDNldHpvbmUgPSBkZXZtX3RoZXJtYWxfb2Zfem9uZV9yZWdpc3RlcihwaHktXHUwMDNlZGV2LVx1MDAzZW10NzYuZGV2LFxuK1x0XHRcdFx0XHRcdCAgIHBoeS1cdTAwM2VtdDc2LVx1MDAzZWJhbmRfaWR4LCBwaHksXG4rXHRcdFx0XHRcdFx0ICAgXHUwMDI2bXQ3OTk2X3R6X29wcyk7XG4rXHRpZiAoSVNfRVJSKHBoeS1cdTAwM2V0em9uZSkpIHtcbitcdFx0aWYgKFBUUl9FUlIocGh5LVx1MDAzZXR6b25lKSAhPSAtRU5PREVWKVxuK1x0XHRcdGRldl93YXJuKHBoeS1cdTAwM2VkZXYtXHUwMDNlbXQ3Ni5kZXYsXG4rXHRcdFx0XHQgXCJmYWlsZWQgdG8gcmVnaXN0ZXIgdGhlcm1hbCB6b25lICVkOiAlbGRcXG5cIixcbitcdFx0XHRcdCBwaHktXHUwMDNlbXQ3Ni1cdTAwM2ViYW5kX2lkeCwgUFRSX0VSUihwaHktXHUwMDNldHpvbmUpKTtcbitcdFx0cGh5LVx1MDAzZXR6b25lID0gTlVMTDtcbitcdH1cbitcbiBcdGlmICghSVNfUkVBQ0hBQkxFKENPTkZJR19IV01PTikpXG4gXHRcdHJldHVybiAwO1xuIFxuIFx0aHdtb24gPSBkZXZtX2h3bW9uX2RldmljZV9yZWdpc3Rlcl93aXRoX2dyb3VwcyhcdTAwMjZ3aXBoeS1cdTAwM2VkZXYsIG5hbWUsIHBoeSxcbiBcdFx0XHRcdFx0XHQgICAgICAgbXQ3OTk2X2h3bW9uX2dyb3Vwcyk7XG4gXG4tXHRpZiAoSVNfRVJSKGh3bW9uKSlcbitcdGlmIChJU19FUlIoaHdtb24pKSB7XG4rXHRcdG10Nzk5Nl91bnJlZ2lzdGVyX3RoZXJtYWwocGh5KTtcbiBcdFx0cmV0dXJuIFBUUl9FUlIoaHdtb24pO1xuK1x0fVxuIFxuIFx0cmV0dXJuIDA7XG4gfVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmhcbmluZGV4IDJhMGNkYjU2ZjgyMmUuLjM5ZmEyNWE1NjJlNWUgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmhcbkBAIC0zNzIsNiArMzcyLDcgQEAgc3RydWN0IG10Nzk5Nl9waHkge1xuIFxuIFx0c3RydWN0IGllZWU4MDIxMV9zYmFuZF9pZnR5cGVfZGF0YSBpZnR5cGVbTlVNX05MODAyMTFfQkFORFNdW05VTV9OTDgwMjExX0lGVFlQRVNdO1xuIFxuK1x0c3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6b25lO1xuIFx0c3RydWN0IHRoZXJtYWxfY29vbGluZ19kZXZpY2UgKmNkZXY7XG4gXHR1OCBjZGV2X3N0YXRlO1xuIFx0dTggdGhyb3R0bGVfc3RhdGU7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMFQxNDozOToxNC44OTcxNTYzODZaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NTU2NjY1NjgyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFRoZXJtYWwgUGF0Y2ggZm9yIHRoZSBNVDc5OTYgV2ktRmkgRHJpdmVyKipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyBwYXRjaCDigJMgc2VlbXMgbGlrZSBpdCdzIHRvdWNoaW5nIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmNgLiBJbnRlcmVzdGluZywgdGhleSdyZSBhZGRpbmcgYG10Nzk5Nl90aGVybWFsX2dldF90ZW1wYCwgYG10Nzk5Nl90el9vcHNgLCBhbmQgcmVnaXN0ZXJpbmcgYSB0aGVybWFsIHpvbmUgdXNpbmcgYGRldm1fdGhlcm1hbF9vZl96b25lX3JlZ2lzdGVyYC4gU3RhbmRhcmQgdGhlcm1hbCBtYW5hZ2VtZW50IHN0dWZmLCBub3RoaW5nIGltbWVkaWF0ZWx5IGFsYXJtaW5nLiBUaGV5IGFsc28gaGF2ZSBhIGNsZWFudXAgZnVuY3Rpb24sIGBtdDc5OTZfdW5yZWdpc3Rlcl90aGVybWFsYCwgd2hpY2ggaXMgZ29vZCB0byBzZWUg4oCTIGVuc3VyZXMgYSBjbGVhbiB1bnJlZ2lzdHJhdGlvbiBvbiBtb2R1bGUgdW5sb2FkIG9yIGRyaXZlciBkZXRhY2htZW50LiBUaGUgZHJpdmVyIGluIHF1ZXN0aW9uIGlzIGBtdDc5OTZgLCBNZWRpYVRlaydzIFdpLUZpIGRyaXZlciwgd2hpY2ggaXMgZmFtaWxpYXIgdGVycml0b3J5LlxuXG5UaGUgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzOiB3aGF0IGtpbmQgb2YgdGFyZ2V0IGFyZSB3ZSBkZWFsaW5nIHdpdGggaGVyZT8gSXMgdGhpcyBhIFBDSWUgY2FyZCwgb3Igc29tZXRoaW5nIHRoYXQgSSBtaWdodCBhY3R1YWxseSBiZSBhYmxlIHRvIGZ1enogd2l0aGluIFFFTVU/IEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBkcml2ZXIncyB1bmRlcmx5aW5nIGhhcmR3YXJlIHBsYXRmb3JtLiBNZWRpYVRlaydzIE1UNzk5NiBpcyBhIFdpLUZpIDcgY2hpcCwgc28gaXQncyBhIHByZXR0eSBzYWZlIGJldCB0aGF0IGl0J3MgYSBQQ0llIGRldmljZS5cblxuSSBzaG91bGQgcHJvYmFibHkgY29uZmlybSB0aGF0IGJ5IGNoZWNraW5nIG91dCB0aGUgcmVsZXZhbnQgc291cmNlIGZpbGVzIOKAkyBtYXliZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmNgIG9yIHNvbWV0aGluZyBzaW1pbGFyLCBmb3IgdGhhdCBQQ0ktc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24gbG9naWMuIExldCdzIHNlZSBpZiB3ZSBjYW4gZ2V0IGEgY2xlYXJlciBwaWN0dXJlIG9mIGhvdyB0aGlzIGRyaXZlciBpbnRlcmFjdHMgd2l0aCB0aGUgaGFyZHdhcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwMDEsIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMDIsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMFQxNDozOToyMC40NTM4MjU1MDhaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDY2Mzk1ODUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3OTk2XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDY2MzkgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfTVQ3OTk2RSkgKz0gbXQ3OTk2ZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGUtNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTo1Om10Nzk5NmUteSA6PSBwY2kubyBpbml0Lm8gZG1hLm8gZWVwcm9tLm8gbWFpbi5vIG1jdS5vIG1hYy5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS02LVxcdCAgICAgZGVidWdmcy5vIG1taW8ub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU6ODptdDc5OTZlLSQoQ09ORklHX01UNzk5Nl9OUFUpICs9IG5wdS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU6OTptdDc5OTZlLSQoQ09ORklHX0RFVl9DT1JFRFVNUCkgKz0gY29yZWR1bXAub1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYz0xMj1NT0RVTEVfUEFSTV9ERVNDKGNvcmVkdW1wX21lbWR1bXAsIFxcXCJPcHRpb25hbCBhYmlsaXR5IHRvIGR1bXAgZmlybXdhcmUgbWVtb3J5XFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE0OnN0YXRpYyBjb25zdCBzdHJ1Y3QgbXQ3OTk2X21lbV9yZWdpb24gbXQ3OTk2X21lbV9yZWdpb25zW10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xNS1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTQ2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NDc6Y29uc3Qgc3RydWN0IG10Nzk5Nl9tZW1fcmVnaW9uKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NDg6bXQ3OTk2X2NvcmVkdW1wX2dldF9tZW1fbGF5b3V0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHUzMiAqbnVtKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNDkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy01Mi1cXHRjYXNlIE1UNzk5Nl9ERVZJQ0VfSURfMjpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjUzOlxcdFxcdCpudW0gPSBBUlJBWV9TSVpFKG10Nzk5Nl9tZW1fcmVnaW9ucyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo1NDpcXHRcXHRyZXR1cm4gXFx1MDAyNm10Nzk5Nl9tZW1fcmVnaW9uc1swXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTU1LVxcdGRlZmF1bHQ6XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTU5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NjA6c3RhdGljIGludCBtdDc5OTZfY29yZWR1bXBfZ2V0X21lbV9zaXplKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy02MS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo2MjpcXHRjb25zdCBzdHJ1Y3QgbXQ3OTk2X21lbV9yZWdpb24gKm1lbV9yZWdpb247XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy02My1cXHRzaXplX3Qgc2l6ZSA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6Njc6XFx0bWVtX3JlZ2lvbiA9IG10Nzk5Nl9jb3JlZHVtcF9nZXRfbWVtX2xheW91dChkZXYsIFxcdTAwMjZudW0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNjgtXFx0aWYgKCFtZW1fcmVnaW9uKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy03Ni1cXHQvKiByZXNlcnZlIHNwYWNlIGZvciB0aGUgaGVhZGVycyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6Nzc6XFx0c2l6ZSArPSBudW0gKiBzaXplb2Yoc3RydWN0IG10Nzk5Nl9tZW1faGRyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTc4LVxcdC8qIG1ha2Ugc3VyZSBpdCBpcyBhbGlnbmVkIDQgYnl0ZXMgZm9yIGRlYnVnIG1lc3NhZ2UgcHJpbnQgb3V0ICovXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTgzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6ODQ6c3RydWN0IG10Nzk5Nl9jcmFzaF9kYXRhICptdDc5OTZfY29yZWR1bXBfbmV3KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy04NS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo4NjpcXHRzdHJ1Y3QgbXQ3OTk2X2NyYXNoX2RhdGEgKmNyYXNoX2RhdGEgPSBkZXYtXFx1MDAzZWNvcmVkdW1wLmNyYXNoX2RhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy04Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM9MTAwPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxMDE6bXQ3OTk2X2NvcmVkdW1wX2Z3X3N0YXRlKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHN0cnVjdCBtdDc5OTZfY29yZWR1bXAgKmR1bXAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xMDItXFx0XFx0XFx0IGJvb2wgKmV4Y2VwdGlvbilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM9MTE3PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxMTg6bXQ3OTk2X2NvcmVkdW1wX2Z3X3N0YWNrKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHN0cnVjdCBtdDc5OTZfY29yZWR1bXAgKmR1bXAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xMTktXFx0XFx0XFx0IGJvb2wgZXhjZXB0aW9uKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xNjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxNjI6c3RhdGljIHN0cnVjdCBtdDc5OTZfY29yZWR1bXAgKm10Nzk5Nl9jb3JlZHVtcF9idWlsZChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTYzLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE2NDpcXHRzdHJ1Y3QgbXQ3OTk2X2NyYXNoX2RhdGEgKmNyYXNoX2RhdGEgPSBkZXYtXFx1MDAzZWNvcmVkdW1wLmNyYXNoX2RhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxNjU6XFx0c3RydWN0IG10Nzk5Nl9jb3JlZHVtcCAqZHVtcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE2NjpcXHRzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wX21lbSAqZHVtcF9tZW07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xNjctXFx0c2l6ZV90IGxlbiwgc29mYXIgPSAwLCBoZHJfbGVuID0gc2l6ZW9mKCpkdW1wKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTg2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MTg3OlxcdGR1bXAgPSAoc3RydWN0IG10Nzk5Nl9jb3JlZHVtcCAqKShidWYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTg4LVxcdGR1bXAtXFx1MDAzZWxlbiA9IGxlbjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjAwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjAxOlxcdG10Nzk5Nl9jb3JlZHVtcF9md19zdGF0ZShkZXYsIGR1bXAsIFxcdTAwMjZleGNlcHRpb24pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjAyOlxcdG10Nzk5Nl9jb3JlZHVtcF9md19zdGFjayhkZXYsIGR1bXAsIGV4Y2VwdGlvbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMDQtXFx0LyogZ2F0aGVyIG1lbW9yeSBjb250ZW50ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyMDU6XFx0ZHVtcF9tZW0gPSAoc3RydWN0IG10Nzk5Nl9jb3JlZHVtcF9tZW0gKikoYnVmICsgc29mYXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjA2LVxcdGR1bXBfbWVtLVxcdTAwM2VsZW4gPSBjcmFzaF9kYXRhLVxcdTAwM2VtZW1kdW1wX2J1Zl9sZW47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIxNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIxNjppbnQgbXQ3OTk2X2NvcmVkdW1wX3N1Ym1pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjE3LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIxODpcXHRzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wICpkdW1wO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjE5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjIwOlxcdGR1bXAgPSBtdDc5OTZfY29yZWR1bXBfYnVpbGQoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIyMS1cXHRpZiAoIWR1bXApIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjMwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjMxOmludCBtdDc5OTZfY29yZWR1bXBfcmVnaXN0ZXIoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIzMi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyMzM6XFx0c3RydWN0IG10Nzk5Nl9jcmFzaF9kYXRhICpjcmFzaF9kYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjM0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yNDEtXFx0aWYgKGNvcmVkdW1wX21lbWR1bXApIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjI0MjpcXHRcXHRjcmFzaF9kYXRhLVxcdTAwM2VtZW1kdW1wX2J1Zl9sZW4gPSBtdDc5OTZfY29yZWR1bXBfZ2V0X21lbV9zaXplKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yNDMtXFx0XFx0aWYgKCFjcmFzaF9kYXRhLVxcdTAwM2VtZW1kdW1wX2J1Zl9sZW4pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTI1Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjI1Nzp2b2lkIG10Nzk5Nl9jb3JlZHVtcF91bnJlZ2lzdGVyKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yNTgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC02LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NzojaW5jbHVkZSBcXFwibXQ3OTk2LmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC04LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6OTpzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTEwLVxcdGNoYXIgbWFnaWNbMTZdO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC0zOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjQwOnN0cnVjdCBtdDc5OTZfY29yZWR1bXBfbWVtIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTQxLVxcdHUzMiBsZW47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NDU6c3RydWN0IG10Nzk5Nl9tZW1faGRyIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTQ2LVxcdHUzMiBzdGFydDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo1MTpzdHJ1Y3QgbXQ3OTk2X21lbV9yZWdpb24ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNTItXFx0dTMyIHN0YXJ0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC01OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjYwOmNvbnN0IHN0cnVjdCBtdDc5OTZfbWVtX3JlZ2lvbiAqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo2MTptdDc5OTZfY29yZWR1bXBfZ2V0X21lbV9sYXlvdXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgdTMyICpudW0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NjI6c3RydWN0IG10Nzk5Nl9jcmFzaF9kYXRhICptdDc5OTZfY29yZWR1bXBfbmV3KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NjM6aW50IG10Nzk5Nl9jb3JlZHVtcF9zdWJtaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo2NDppbnQgbXQ3OTk2X2NvcmVkdW1wX3JlZ2lzdGVyKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NjU6dm9pZCBtdDc5OTZfY29yZWR1bXBfdW5yZWdpc3RlcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTY2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC02OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjY5OnN0YXRpYyBpbmxpbmUgY29uc3Qgc3RydWN0IG10Nzk5Nl9tZW1fcmVnaW9uICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjcwOm10Nzk5Nl9jb3JlZHVtcF9nZXRfbWVtX2xheW91dChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCB1MzIgKm51bSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTcxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo3NTpzdGF0aWMgaW5saW5lIGludCBtdDc5OTZfY29yZWR1bXBfc3VibWl0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC03Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oPTgwPXN0YXRpYyBpbmxpbmUgc3RydWN0XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo4MTptdDc5OTZfY3Jhc2hfZGF0YSAqbXQ3OTk2X2NvcmVkdW1wX25ldyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtODIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC04NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjg2OnN0YXRpYyBpbmxpbmUgaW50IG10Nzk5Nl9jb3JlZHVtcF9yZWdpc3RlcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtODcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC05MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjkxOnN0YXRpYyBpbmxpbmUgdm9pZCBtdDc5OTZfY29yZWR1bXBfdW5yZWdpc3RlcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtOTIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTYtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3JlbGF5LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc6I2luY2x1ZGUgXFxcIm10Nzk5Ni5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04LSNpbmNsdWRlIFxcXCJlZXByb20uaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0yMz1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI0Om10Nzk5Nl9pbXBsaWNpdF90eGJmX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI2OlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzM6XFx0cmV0dXJuIG10Nzk5Nl9tY3Vfc2V0X3R4YmYoZGV2LCBCRl9IV19FTl9VUERBVEUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MzY9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNzptdDc5OTZfaW1wbGljaXRfdHhiZl9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Mzk6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NjpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19pbXBsaWNpdF90eGJmLCBtdDc5OTZfaW1wbGljaXRfdHhiZl9nZXQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ3OlxcdFxcdFxcdCBtdDc5OTZfaW1wbGljaXRfdHhiZl9zZXQsIFxcXCIlbGxkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NTA9c3RhdGljIHNzaXplX3RcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTE6bXQ3OTk2X3N5c19yZWNvdmVyeV9zZXQoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgX191c2VyICp1c2VyX2J1ZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTItXFx0XFx0XFx0c2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTUzLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTQ6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGZpbGUtXFx1MDAzZXByaXZhdGVfZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTUtXFx0Y2hhciBidWZbMTZdLCAqc2VwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkxLVxcdGNhc2UgVU5JX0NNRF9TRVJfUVVFUlk6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjkyOlxcdFxcdHJldCA9IG10Nzk5Nl9tY3Vfc2V0X3NlcihkZXYsIFVOSV9DTURfU0VSX1FVRVJZLCAwLCBiYW5kKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTMtXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTAwLVxcdGNhc2UgVU5JX0NNRF9TRVJfU0VUX1JFQ09WRVJfTDRfTURQOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoxMDE6XFx0XFx0cmV0ID0gbXQ3OTk2X21jdV9zZXRfc2VyKGRldiwgVU5JX0NNRF9TRVJfU0VULCBCSVQodmFsKSwgYmFuZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEwMi1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEwNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTA1OlxcdFxcdHJldCA9IG10Nzk5Nl9tY3Vfc2V0X3NlcihkZXYsIFVOSV9DTURfU0VSX1RSSUdHRVIsIHZhbCwgYmFuZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEwNi1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMTEtXFx0XFx0ZGV2LVxcdTAwM2VyZWNvdmVyeS5zdGF0ZSB8PSBNVF9NQ1VfQ01EX1dEVF9NQVNLO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoxMTI6XFx0XFx0bXQ3OTk2X3Jlc2V0KGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTExMy1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMTYtXFx0Y2FzZSBVTklfQ01EX1NFUl9TRVRfU1lTVEVNX0FTU0VSVDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTE3OlxcdFxcdHJldCA9IG10Nzk5Nl9tY3VfdHJpZ2dlcl9hc3NlcnQoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTE4LVxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MTI4PXN0YXRpYyBzc2l6ZV90XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjEyOTptdDc5OTZfc3lzX3JlY292ZXJ5X2dldChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKnVzZXJfYnVmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMzAtXFx0XFx0XFx0c2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEzMS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjEzMjpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZmlsZS1cXHUwMDNlcHJpdmF0ZV9kYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMzMtXFx0Y2hhciAqYnVmZjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yMTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjIxNTpzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBtdDc5OTZfc3lzX3JlY292ZXJ5X29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjE2OlxcdC53cml0ZSA9IG10Nzk5Nl9zeXNfcmVjb3Zlcnlfc2V0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyMTc6XFx0LnJlYWQgPSBtdDc5OTZfc3lzX3JlY292ZXJ5X2dldCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjE4LVxcdC5vcGVuID0gc2ltcGxlX29wZW4sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MjIyPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjIzOm10Nzk5Nl9yYWRhcl90cmlnZ2VyKHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTIyNC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjI2LSNkZWZpbmUgUkFEQVJfQkFDS0dST1VORFxcdDJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjI3OlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyMjg6XFx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeSA9IG10Nzk5Nl9iYW5kX3BoeShkZXYsIE5MODAyMTFfQkFORF81R0haKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjI5LVxcdHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiAqY2hhbmRlZjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI0ODpcXHRyZGRfaWR4ID0gbXQ3OTk2X2dldF9yZGRfaWR4KHBoeSwgdmFsID09IFJBREFSX0JBQ0tHUk9VTkQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNDktXFx0aWYgKHJkZF9pZHggXFx1MDAzYyAwKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjU4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyNTk6XFx0cmV0dXJuIG10Nzk5Nl9tY3VfcmRkX2NtZChkZXYsIFJERF9SQURBUl9FTVVMQVRFLCByZGRfaWR4LCAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjYwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0yNjI9REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfcmFkYXJfdHJpZ2dlciwgTlVMTCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjYzOlxcdFxcdFxcdCBtdDc5OTZfcmFkYXJfdHJpZ2dlciwgXFxcIiVsbGRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTI2NT1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI2NjptdDc5OTZfcmRkX21vbml0b3Ioc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNjcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyNjg6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRldl9nZXRfZHJ2ZGF0YShzLVxcdTAwM2Vwcml2YXRlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjY5LVxcdHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiAqY2hhbmRlZiA9IFxcdTAwMjZkZXYtXFx1MDAzZXJkZDJfY2hhbmRlZjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0zMTI9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozMTM6bXQ3OTk2X2Z3X2RlYnVnX3dtX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zMTQte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozMTU6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTMxNi1cXHRlbnVtIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zMzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjMzODpcXHRyZXQgPSBtdDc5OTZfbWN1X2Z3X2xvZ18yX2hvc3QoZGV2LCBNQ1VfRldfTE9HX1dNLCB2YWwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zMzktXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM1MTpcXHRcXHRyZXQgPSBtdDc5OTZfbWN1X2Z3X2RiZ19jdHJsKGRldiwgZGVidWcsIHZhbCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM1Mi1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTM1OT1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM2MDptdDc5OTZfZndfZGVidWdfd21fZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNjEte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNjI6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM2My1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM2OTpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19md19kZWJ1Z193bSwgbXQ3OTk2X2Z3X2RlYnVnX3dtX2dldCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzcwOlxcdFxcdFxcdCBtdDc5OTZfZndfZGVidWdfd21fc2V0LCBcXFwiJWxsZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM3MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MzcyPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzczOm10Nzk5Nl9md19kZWJ1Z193YV9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzc0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Mzc1OlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNzYtXFx0aW50IHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM4MDpcXHRyZXQgPSBtdDc5OTZfbWN1X2Z3X2xvZ18yX2hvc3QoZGV2LCBNQ1VfRldfTE9HX1dBLCBkZXYtXFx1MDAzZWZ3X2RlYnVnX3dhKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzgxLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzgzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozODQ6XFx0cmV0dXJuIG10Nzk5Nl9tY3Vfd2FfY21kKGRldiwgTUNVX1dBX1BBUkFNX0NNRChTRVQpLCBNQ1VfV0FfUEFSQU1fUERNQV9SWCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzg1LVxcdFxcdFxcdFxcdCAhIWRldi1cXHUwMDNlZndfZGVidWdfd2EsIDApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTM4OD1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM4OTptdDc5OTZfZndfZGVidWdfd2FfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zOTAte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozOTE6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM5Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zOTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM5ODpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19md19kZWJ1Z193YSwgbXQ3OTk2X2Z3X2RlYnVnX3dhX2dldCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Mzk5OlxcdFxcdFxcdCBtdDc5OTZfZndfZGVidWdfd2Ffc2V0LCBcXFwiJWxsZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQwMC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz00MjU9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0MjY6bXQ3OTk2X2Z3X2RlYnVnX2Jpbl9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDI3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00MzEtXFx0fTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDMyOlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00MzMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDQzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NDQ6XFx0cmV0dXJuIG10Nzk5Nl9md19kZWJ1Z193bV9zZXQoZGV2LCBkZXYtXFx1MDAzZWZ3X2RlYnVnX3dtKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDQ1LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz00NDc9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NDg6bXQ3OTk2X2Z3X2RlYnVnX2Jpbl9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ0OS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ1MDpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDUxLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ1Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDU3OkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX2Z3X2RlYnVnX2JpbiwgbXQ3OTk2X2Z3X2RlYnVnX2Jpbl9nZXQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ1ODpcXHRcXHRcXHQgbXQ3OTk2X2Z3X2RlYnVnX2Jpbl9zZXQsIFxcXCIlbGxkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDU5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz00NjA9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NjE6bXQ3OTk2X2Z3X3V0aWxfd2Ffc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIHZvaWQgKmRhdGEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ2Mi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ2MzpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZmlsZS1cXHUwMDNlcHJpdmF0ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDY0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NjUtXFx0aWYgKGRldi1cXHUwMDNlZndfZGVidWdfd2EpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ2NjpcXHRcXHRyZXR1cm4gbXQ3OTk2X21jdV93YV9jbWQoZGV2LCBNQ1VfV0FfUEFSQU1fQ01EKFFVRVJZKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDY3LVxcdFxcdFxcdFxcdFxcdCBNQ1VfV0FfUEFSQU1fQ1BVX1VUSUwsIDAsIDApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ3MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDcyOkRFRklORV9TSE9XX0FUVFJJQlVURShtdDc5OTZfZndfdXRpbF93YSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ3My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NDc0PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ3NTptdDc5OTZfYW1wZHVfc3RhdF9yZWFkX3BoeShzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LCBzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ3Ni17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ3NzpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gcGh5LVxcdTAwM2VkZXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ3OC1cXHRpbnQgYm91bmRbMTVdLCByYW5nZVs4XSwgaTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz01MDQ9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTA1Om10Nzk5Nl90eGJmX3N0YXRfcmVhZF9waHkoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSwgc3RydWN0IHNlcV9maWxlICpzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01MDYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTU1Mj1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1NTM6bXQ3OTk2X3R4X3N0YXRzX3Nob3dfcGh5KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgc3RydWN0IG10Nzk5Nl9waHkgKnBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTU0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01NTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU1OTpcXHRtdDc5OTZfbWFjX3VwZGF0ZV9zdGF0cyhwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1NjA6XFx0bXQ3OTk2X2FtcGR1X3N0YXRfcmVhZF9waHkocGh5LCBmaWxlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTYxLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU2OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTY5OlxcdG10Nzk5Nl90eGJmX3N0YXRfcmVhZF9waHkocGh5LCBmaWxlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTcwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTU4ND1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU4NTptdDc5OTZfdHhfc3RhdHNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIHZvaWQgKmRhdGEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU4Ni17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU4NzpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZmlsZS1cXHUwMDNlcHJpdmF0ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTg4OlxcdHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkgPSBcXHUwMDI2ZGV2LVxcdTAwM2VwaHk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU4OS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01OTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU5MjpcXHRtdDc5OTZfdHhfc3RhdHNfc2hvd19waHkoZmlsZSwgcGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTkzOlxcdHBoeSA9IG10Nzk5Nl9waHkyKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU5NC1cXHRpZiAocGh5KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1OTU6XFx0XFx0bXQ3OTk2X3R4X3N0YXRzX3Nob3dfcGh5KGZpbGUsIHBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU5NjpcXHRwaHkgPSBtdDc5OTZfcGh5MyhkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01OTctXFx0aWYgKHBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTk4OlxcdFxcdG10Nzk5Nl90eF9zdGF0c19zaG93X3BoeShmaWxlLCBwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01OTktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjA0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2MDU6REVGSU5FX1NIT1dfQVRUUklCVVRFKG10Nzk5Nl90eF9zdGF0cyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTYwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NjA3PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjYwODptdDc5OTZfaHdfcXVldWVfcmVhZChzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHUzMiBzaXplLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02MDktXFx0XFx0ICAgICBjb25zdCBzdHJ1Y3QgaHdfcXVldWVfbWFwICptYXApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTYxMC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjYxMTpcXHRzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5ID0gcy1cXHUwMDNlcHJpdmF0ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjEyOlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBwaHktXFx1MDAzZWRldjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjEzLVxcdHUzMiBpLCB2YWw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NjM4PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjYzOTptdDc5OTZfc3RhX2h3X3F1ZXVlX3JlYWQodm9pZCAqZGF0YSwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjQwLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjQxOlxcdHN0cnVjdCBtdDc5OTZfc3RhICptc3RhID0gKHN0cnVjdCBtdDc5OTZfc3RhICopc3RhLVxcdTAwM2VkcnZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjQyOlxcdHN0cnVjdCBtdDc5OTZfdmlmICptdmlmID0gbXN0YS1cXHUwMDNldmlmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2NDM6XFx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeSA9IG10Nzk5Nl92aWZfbGlua19waHkoXFx1MDAyNm12aWYtXFx1MDAzZWRlZmxpbmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NDQtXFx0c3RydWN0IGllZWU4MDIxMV9saW5rX3N0YSAqbGlua19zdGE7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjQ2LVxcdHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY0NzpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NDgtXFx0dW5zaWduZWQgaW50IGxpbmtfaWQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjU4LVxcdGZvcl9lYWNoX3N0YV9hY3RpdmVfbGluayh2aWYsIHN0YSwgbGlua19zdGEsIGxpbmtfaWQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjU5OlxcdFxcdHN0cnVjdCBtdDc5OTZfc3RhX2xpbmsgKm1zdGFfbGluaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjYwLVxcdFxcdHN0cnVjdCBtdDc2X3ZpZl9saW5rICptbGluaztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY2NzpcXHRcXHRtc3RhX2xpbmsgPSBtdDc5OTZfc3RhX2xpbmsobXN0YSwgbGlua19pZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY2OC1cXHRcXHRpZiAoIW1zdGFfbGluaylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz02OTQ9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2OTU6bXQ3OTk2X2h3X3F1ZXVlc19zaG93KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgdm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjk2LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Njk3OlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBmaWxlLVxcdTAwM2Vwcml2YXRlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2OTg6XFx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeSA9IFxcdTAwMjZkZXYtXFx1MDAzZXBoeTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjk5LVxcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgaHdfcXVldWVfbWFwIHBsZV9xdWV1ZV9tYXBbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NDctXFx0c2VxX3B1dHMoZmlsZSwgXFxcIlBMRSBub24tZW1wdHkgcXVldWUgaW5mbzpcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NDg6XFx0bXQ3OTk2X2h3X3F1ZXVlX3JlYWQoZmlsZSwgQVJSQVlfU0laRShwbGVfcXVldWVfbWFwKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzQ5LVxcdFxcdFxcdCAgICAgXFx1MDAyNnBsZV9xdWV1ZV9tYXBbMF0pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc1Mi1cXHRpZWVlODAyMTFfaXRlcmF0ZV9zdGF0aW9uc19hdG9taWMocGh5LVxcdTAwM2VtdDc2LVxcdTAwM2VodyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzUzOlxcdFxcdFxcdFxcdFxcdCAgbXQ3OTk2X3N0YV9od19xdWV1ZV9yZWFkLCBmaWxlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzU0OlxcdHBoeSA9IG10Nzk5Nl9waHkyKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc1NS1cXHRpZiAocGh5KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NTYtXFx0XFx0aWVlZTgwMjExX2l0ZXJhdGVfc3RhdGlvbnNfYXRvbWljKHBoeS1cXHUwMDNlbXQ3Ni1cXHUwMDNlaHcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc1NzpcXHRcXHRcXHRcXHRcXHRcXHQgIG10Nzk5Nl9zdGFfaHdfcXVldWVfcmVhZCwgZmlsZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc1ODpcXHRwaHkgPSBtdDc5OTZfcGh5MyhkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NTktXFx0aWYgKHBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzYwLVxcdFxcdGllZWU4MDIxMV9pdGVyYXRlX3N0YXRpb25zX2F0b21pYyhwaHktXFx1MDAzZW10NzYtXFx1MDAzZWh3LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NjE6XFx0XFx0XFx0XFx0XFx0XFx0ICBtdDc5OTZfc3RhX2h3X3F1ZXVlX3JlYWQsIGZpbGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NjItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzY0LVxcdHNlcV9wdXRzKGZpbGUsIFxcXCJQU0Ugbm9uLWVtcHR5IHF1ZXVlIGluZm86XFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzY1OlxcdG10Nzk5Nl9od19xdWV1ZV9yZWFkKGZpbGUsIEFSUkFZX1NJWkUocHNlX3F1ZXVlX21hcCksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc2Ni1cXHRcXHRcXHQgICAgIFxcdTAwMjZwc2VfcXVldWVfbWFwWzBdKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc3MTpERUZJTkVfU0hPV19BVFRSSUJVVEUobXQ3OTk2X2h3X3F1ZXVlcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc3Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NzczPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Nzc0Om10Nzk5Nl94bWl0X3F1ZXVlc19zaG93KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgdm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzc1LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Nzc2OlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBmaWxlLVxcdTAwM2Vwcml2YXRlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3Nzc6XFx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzc4LVxcdHN0cnVjdCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzkwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3OTE6XFx0cGh5ID0gbXQ3OTk2X3BoeTIoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzkyLVxcdGlmIChwaHkpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzk0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3OTU6XFx0cGh5ID0gbXQ3OTk2X3BoeTMoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzk2LVxcdGlmIChwaHkpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODEzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4MTQ6REVGSU5FX1NIT1dfQVRUUklCVVRFKG10Nzk5Nl94bWl0X3F1ZXVlcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTgxNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9ODE2PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODE3Om10Nzk5Nl90d3Rfc3RhdHMoc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04MTgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4MTk6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRldl9nZXRfZHJ2ZGF0YShzLVxcdTAwM2Vwcml2YXRlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODIwOlxcdHN0cnVjdCBtdDc5OTZfdHd0X2Zsb3cgKml0ZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTgyMS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz04NDU9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NDY6bXQ3OTk2X3JmX3JlZ3ZhbF9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg0Ny17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg0ODpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODQ5LVxcdHUzMiByZWd2YWw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODUxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NTI6XFx0cmV0ID0gbXQ3OTk2X21jdV9yZl9yZWd2YWwoZGV2LCBkZXYtXFx1MDAzZW10NzYuZGVidWdmc19yZWcsIFxcdTAwMjZyZWd2YWwsIGZhbHNlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODUzLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9ODYxPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODYyOm10Nzk5Nl9yZl9yZWd2YWxfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg2My17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg2NDpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODY1LVxcdHUzMiB2YWwzMiA9IHZhbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4Njc6XFx0cmV0dXJuIG10Nzk5Nl9tY3VfcmZfcmVndmFsKGRldiwgZGV2LVxcdTAwM2VtdDc2LmRlYnVnZnNfcmVnLCBcXHUwMDI2dmFsMzIsIHRydWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NjgtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg3MDpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19yZl9yZWd2YWwsIG10Nzk5Nl9yZl9yZWd2YWxfZ2V0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NzE6XFx0XFx0XFx0IG10Nzk5Nl9yZl9yZWd2YWxfc2V0LCBcXFwiMHglMDhsbHhcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg3MzppbnQgbXQ3OTk2X2luaXRfZGVidWdmcyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NzQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg3OS1cXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFxcXCJody1xdWV1ZXNcXFwiLCAwNDAwLCBkaXIsIGRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODgwOlxcdFxcdFxcdCAgICBcXHUwMDI2bXQ3OTk2X2h3X3F1ZXVlc19mb3BzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODgxLVxcdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXFxcInhtaXQtcXVldWVzXFxcIiwgMDQwMCwgZGlyLCBkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg4MjpcXHRcXHRcXHQgICAgXFx1MDAyNm10Nzk5Nl94bWl0X3F1ZXVlc19mb3BzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODgzOlxcdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXFxcInR4X3N0YXRzXFxcIiwgMDQwMCwgZGlyLCBkZXYsIFxcdTAwMjZtdDc5OTZfdHhfc3RhdHNfZm9wcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg4NC1cXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFxcXCJzeXNfcmVjb3ZlcnlcXFwiLCAwNjAwLCBkaXIsIGRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODg1OlxcdFxcdFxcdCAgICBcXHUwMDI2bXQ3OTk2X3N5c19yZWNvdmVyeV9vcHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04ODYtXFx0ZGVidWdmc19jcmVhdGVfZmlsZShcXFwiZndfZGVidWdfd21cXFwiLCAwNjAwLCBkaXIsIGRldiwgXFx1MDAyNmZvcHNfZndfZGVidWdfd20pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg5MC1cXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFxcXCJmd191dGlsX3dhXFxcIiwgMDQwMCwgZGlyLCBkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg5MTpcXHRcXHRcXHQgICAgXFx1MDAyNm10Nzk5Nl9md191dGlsX3dhX2ZvcHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04OTItXFx0ZGVidWdmc19jcmVhdGVfZmlsZShcXFwiaW1wbGljaXRfdHhiZlxcXCIsIDA2MDAsIGRpciwgZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg5NC1cXHRkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3NlcWZpbGUoZGV2LVxcdTAwM2VtdDc2LmRldiwgXFxcInR3dF9zdGF0c1xcXCIsIGRpcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODk1OlxcdFxcdFxcdFxcdCAgICBtdDc5OTZfdHd0X3N0YXRzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODk2LVxcdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXFxcInJmX3JlZ3ZhbFxcXCIsIDA2MDAsIGRpciwgZGV2LCBcXHUwMDI2Zm9wc19yZl9yZWd2YWwpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkwMS1cXHRkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3NlcWZpbGUoZGV2LVxcdTAwM2VtdDc2LmRldiwgXFxcInJkZF9tb25pdG9yXFxcIiwgZGlyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo5MDI6XFx0XFx0XFx0XFx0ICAgIG10Nzk5Nl9yZGRfbW9uaXRvcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkwMy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz05MDk9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6OTEwOm10Nzk5Nl9kZWJ1Z2ZzX3dyaXRlX2Z3bG9nKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGNvbnN0IHZvaWQgKmhkciwgaW50IGhkcmxlbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTExLVxcdFxcdFxcdCAgIGNvbnN0IHZvaWQgKmRhdGEsIGludCBsZW4pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTMzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo5MzQ6dm9pZCBtdDc5OTZfZGVidWdmc19yeF9md19tb25pdG9yKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGNvbnN0IHZvaWQgKmRhdGEsIGludCBsZW4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkzNS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTU1LVxcdGhkci5sZW4gPSAqKF9fbGUxNiAqKWRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjk1NjpcXHRtdDc5OTZfZGVidWdmc193cml0ZV9md2xvZyhkZXYsIFxcdTAwMjZoZHIsIHNpemVvZihoZHIpLCBkYXRhLCBsZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05NTctfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05NTgtXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEwVDE0OjM5OjIwLjUwMDUwOTE5M1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjcyNjY5MDYyMDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBgbXQ3OTk2ZWAgRHJpdmVyIGFuZCBJdHMgSW1wbGljYXRpb25zIGZvciBGdXp6aW5nKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBgbXQ3OTk2ZWAgZHJpdmVyLCBhbmQgaXQncyBidWlsdCBmcm9tIGBwY2kub2AsIGBpbml0Lm9gLCBgZG1hLm9gLCBgZWVwcm9tLm9gLCBgbWFpbi5vYCwgZXRjLiBUaGF0IGltbWVkaWF0ZWx5IHRlbGxzIG1lIGl0J3MgYSBQQ0kgZHJpdmVyLiBUaGUga2V5IHF1ZXN0aW9uIGlzIHdoZXRoZXIgdGhpcyBpcyBmb3IgYSBwaHlzaWNhbCBQQ0llIGNhcmQgdGhhdCBRRU1VICpkb2Vzbid0KiBlbXVsYXRlIG91dC1vZi10aGUtYm94LiBMZXQncyBzZWUuLi4geWVwLCBNZWRpYVRlayBNVDc5OTYgKmlzKiBhIFdpLUZpIDcgUENJZSBjYXJkLlxuXG5Ob3csIG15IG1pbmQgZ29lcyBzdHJhaWdodCB0byBRRU1VLiBEb2VzIFFFTVUgZXZlbiAqdHJ5KiB0byBlbXVsYXRlIHNwZWNpZmljIHZlbmRvciBXaS1GaSBjYXJkcz8gVXN1YWxseSwgbm90IHJlYWxseS4gSXQgaGFzIHRoZSBnZW5lcmFsIGUxMDAwIGFuZCB2aXJ0aW8gbmV0d29yayBpbnRlcmZhY2VzIGJ1dCBzcGVjaWZpYyBoYXJkd2FyZSBsaWtlIHRoaXMgTVQ3OTk2Li4uIGl0J3MgdW5saWtlbHkuIFVubGVzcy4uLiAqd2FpdCouLi4gdGhlcmUncyBgbWFjODAyMTFfaHdzaW1gLCB3aGljaCAqaXMqIGEgc29mdHdhcmUgc2ltdWxhdG9yLCBidXQgdGhpcyBpcyBhICpzcGVjaWZpYyogaGFyZHdhcmUgZHJpdmVyLCBgbXQ3OTk2YCwgc28gSSdtIGd1ZXNzaW5nIHRoaXMgd29uJ3QgYXBwbHkgaGVyZS5cblxuT2theSwgbGV0J3MgZ28gYmFjayB0byB0aGUgcHJvbXB0OiBJdCBzYXlzIHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCBpZiB0aGUgcGF0Y2ggaW52b2x2ZXMgdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMuIFRoaW5ncyBsaWtlIGBtbHhzd2AsIGBxZWRgLCBgYW1kZ3B1YC4uLiBiYXNpY2FsbHksIGhhcmR3YXJlIHRoYXQgKnJlcXVpcmVzKiBhY3R1YWwgcGh5c2ljYWwgUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgYnkgc3RhbmRhcmQgUUVNVS4gSXMgYG10Nzk5NmAgYSB2ZW5kb3Itc3BlY2lmaWMgUENJIGRyaXZlcj8gQWJzb2x1dGVseS4gSXQncyBhIE1lZGlhVGVrIFdpLUZpIGRyaXZlci5cblxuU28gdGhlIHJlYWwgcXVlc3Rpb24gdGhlbiBpczogSXMgaXQgcG9zc2libGUgdG8gcmVhY2ggdGhlIGNvZGUgaW4gUUVNVT8gQW5kIHVzdWFsbHkgUENJIGRyaXZlcnMgZm9yIHNwZWNpZmljIFdpLUZpIGNhcmRzICpjYW4ndCogYmUgcHJvYmVkIGluIFFFTVUgdW5sZXNzIHRoZSBkZXZpY2UgaXMgZW11bGF0ZWQsIG9yIGlmIHdlIGFyZSB1c2luZyBkZXZpY2UgcGFzc3Rocm91Z2guIExldCBtZSBqdXN0IGNvbmZpcm0gYWdhaW46IGBtdDc5OTZgIGlzIGEgUENJIGRyaXZlci4gVGhhdCBzZWVtcyBjb3JyZWN0LCB0aGVyZWZvcmUsIHVubGVzcyB0aGVyZSdzIHNvbWV0aGluZyBzcGVjaWZpYyBpbiB0aGlzIHBhdGNoIHRvIGluZGljYXRlIG90aGVyd2lzZSwgdGhpcyBpcyBwcm9iYWJseSBub3QgZnV6emFibGUgd2l0aG91dCBwaHlzaWNhbCBoYXJkd2FyZSBvciBzcGVjaWFsaXplZCBlbXVsYXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwNDA1LCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzM1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEwVDE0OjM5OjI3Ljc2NzQxODI1N1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTQ2OTAzNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwY2lfcmVnaXN0ZXJfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODg1PXN0YXRpYyBpbnQgX19pbml0IG10Nzk5Nl9pbml0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODg4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4ODk6XFx0cmV0ID0gcGNpX3JlZ2lzdGVyX2RyaXZlcihcXHUwMDI2bXQ3OTk2X2hpZl9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04OTAtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04OTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg5MzpcXHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZtdDc5OTZfcGNpX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg5NC1cXHRpZiAocmV0KVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMFQxNDozOToyNy44MTI4OTUwODJaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMzI3NjA2ODUyOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50OiBXb3J0aEZ1enppbmcgPSBGYWxzZSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kLCB5ZXMsIGl0J3MgZGVmaW5pdGVseSBhIFBDSSBkcml2ZXIg4oCTIHRoYXQncyB0aGUgZmlyc3QgdGhpbmcgSSBub3RpY2UuIFRoZSBjb3JlIG9mIHRoaXMgcGF0Y2ggc2VlbXMgdG8gYmUgYWRkaW5nIHRoZXJtYWwgem9uZSByZWdpc3RyYXRpb24gc3BlY2lmaWNhbGx5IGZvciB0aGlzIGhhcmR3YXJlLiBUaGUga2V5IHBvaW50IGhlcmUgaXMgdGhhdCBpdCdzIGEgKnZlbmRvci1zcGVjaWZpYyogV2ktRmkgUENJZSBjYXJkLiBTaW5jZSBpdCdzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB0aGF0IGltbWVkaWF0ZWx5IGZsYWdzIGl0IGFzIHBvdGVudGlhbGx5IHByb2JsZW1hdGljIGZvciBmdXp6aW5nLlxuXG5NeSBpbW1lZGlhdGUgdGhvdWdodCBhbGlnbnMgd2l0aCB0aGUgcHJvbXB0J3MgZXhjbHVzaW9uIGNyaXRlcmlhOiBjb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzLiBJIG5lZWQgdG8gY29uZmlybSB0aGF0IFdpLUZpIGRyaXZlcnMgYWxzbyBmYWxsIGludG8gdGhpcyBjYXRlZ29yeS4gVGhlIGV4YW1wbGUgZ2l2ZW4gaW4gdGhlIHByb21wdCwgdGhpbmdzIGxpa2UgYG1seHN3YCwgYHBkc19jb3JlYCwgYHFlZGAsIGBpb25pY2AsIGFuZCBgYW1kZ3B1YCwgdGhleSBhbGwgYXBwbHkgdG8gb3RoZXIgdmVuZG9yLXNwZWNpZmljIFBDSWUgaGFyZHdhcmUuIEFuZCB5ZXMsIFdpLUZpIGRyaXZlcnMgbGlrZSB0aGUgYG10NzZgIHNlcmllcyBhcmUgZXF1YWxseSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBoYXJkd2FyZS5cblxuU28sIHRoZSBxdWVzdGlvbiBpcywgKmNhbiogdGhpcyBiZSBmdXp6ZWQgYXQgYWxsPyBJIGtub3cgYHN5emthbGxlcmAgaGFzIHNvbWUgbGV2ZWwgb2Ygc3VwcG9ydCBmb3IgV2ktRmkgZnV6emluZywgbmFtZWx5IHZpYSBgbWFjODAyMTFfaHdzaW1gLCBidXQgdGhhdCBmb2N1c2VzIG9uIHRoZSBnZW5lcmFsIG1hYzgwMjExIHN0YWNrLiBJdCBkb2Vzbid0IHNlZW0gdG8gdGFyZ2V0IHRoZXNlIHNwZWNpZmljIGhhcmR3YXJlIGRyaXZlcnMgbGlrZSBgbXQ3OTk2YCBkaXJlY3RseS4gYHN5emthbGxlcmAgKmRvZXMqIGhhdmUgc29tZSBwc2V1ZG8tc3lzY2FsbHMgbGlrZSBgc3l6XzgwMjExXy4uLmAsIGJ1dCB0aGVzZSBhbHNvIG9wZXJhdGUgYXQgdGhlIGhpZ2hlciBtYWM4MDIxMS9jZmc4MDIxMSBsZXZlbHMsIG5vdCBkaXJlY3RseSBpbnRlcmFjdGluZyB3aXRoIHRoZSBoYXJkd2FyZSBkcml2ZXIuXG5cblRoZW4sIHRoZXJlJ3MgdGhlIFVTQiBmdXp6aW5nIGluIHN5emthbGxlciAoZHVtbXlfaGNkKSBhbmQgUENJIGZ1enppbmcsIGJ1dCBpdHMgY2FwYWJpbGl0aWVzIGFyZSBxdWl0ZSBsaW1pdGVkLiBJIHJlY2FsbCBQQ0kgZnV6emluZyBhcyBiZWluZyBsYXJnZWx5IHVuc3VpdGFibGUgZm9yIHZlbmRvci1zcGVjaWZpYyBQQ0kgZHJpdmVycyB1bmxlc3MgdGhleSdyZSBleHBsaWNpdGx5IHN1cHBvcnRlZCBvciB3ZSBhcmUgZnV6emluZyB0aGUgUENJIHN1YnN5c3RlbSBpdHNlbGYuIFdhaXQsIGl0IHNlZW1zIHN5emthbGxlcidzIFBDSSBmdXp6aW5nIGNhbiBwcm9iZSBhbnkgUENJIGRyaXZlciBieSBlbXVsYXRpbmcgUENJIGNvbmZpZyBzcGFjZS5cblNvLCBzeXprYWxsZXIgZG9lcyBvZmZlciBgdmhjaWAgZm9yIFBDSSwgYnV0IGl0J3Mgbm90IHdpZGVseSB1c2VkLlxuXG5Pa2F5LCBsZXQncyByZS1yZWFkIHRoZSBwcm9tcHQuIEl0IGV4cGxpY2l0bHkgc3RhdGVzOiBcIlJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6IC4uLiAtIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLCBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cIlxuXG5TaW5jZSB0aGlzIGBtdDc5OTZgIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgV2ktRmkgY2FyZCwgYW5kIHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB0aGUgaW1tZWRpYXRlIGNvbmNsdXNpb24gaXMgYFdvcnRoRnV6emluZz1mYWxzZWAuIEkgbmVlZCB0byBiZSBjZXJ0YWluIHRoYXQgdGhlIGRyaXZlciBpcyBzdHJpY3RseSBQQ0kuXG5cbkEgcXVpY2sgY2hlY2sgY29uZmlybXMgdGhpcy4gVGhlIGBNYWtlZmlsZWAgZm9yIHRoZSBgbXQ3OTk2YCBkcml2ZXIgaGFzIGVudHJpZXMgbGlrZSBgcGNpLm9gLCBzbyBpdCdzIGNsZWFybHkgUENJZS5cblxuTGV0IG1lIGp1c3QgY2hlY2sgZm9yIG90aGVyIGNvZGUuIFRoZSBjaGFuZ2VzIGFyZSBjb25maW5lZCB0byBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jYCBhbmQgYG10Nzk5Ni5oYC4gSXQgYWRkcyBgbXQ3OTk2X3RoZXJtYWxfZ2V0X3RlbXBgLCBgbXQ3OTk2X3R6X29wc2AsIGFuZCByZWdpc3RlcnMgYSB0aGVybWFsIHpvbmUsIGFsbCBvZiB3aGljaCBhcmUgaGFyZHdhcmUtc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24gYW5kIHRoZXJtYWwgbWFuYWdlbWVudCBjb21wb25lbnRzLiBUaGlzIHRoZXJtYWwgem9uZSByZWdpc3RyYXRpb24gaXMgaGFyZHdhcmUtc3BlY2lmaWMsIGFuZCBJIGNhbm5vdCBzZWUgYSB3YXkgdG8gdHJpZ2dlciBpdCB3aXRob3V0IHRoZSBwaHlzaWNhbCBoYXJkd2FyZS5cblxuVGhlcmVmb3JlLCBteSBmaW5hbCBjb25jbHVzaW9uIGlzIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIE1UNzk5NiBXaS1GaSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgaGFyZHdhcmUgZHJpdmVyLiBUaGlzIGNvZGUgcmVxdWlyZXMgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGFuZCBjYW5ub3QgYmUgcmVhY2hlZCBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE1NDYsIk91dHB1dFRva2VucyI6ODQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3NjQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTBUMTQ6Mzk6NDEuMDg4OTY2NDIxWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzY4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVkaWFUZWsgTVQ3OTk2IFdpLUZpIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBoYXJkd2FyZSBkcml2ZXIuIFRoaXMgY29kZSByZXF1aXJlcyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgYW5kIGNhbm5vdCBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIE1UNzk5NiBXaS1GaSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgaGFyZHdhcmUgZHJpdmVyLiBUaGlzIGNvZGUgcmVxdWlyZXMgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGFuZCBjYW5ub3QgYmUgcmVhY2hlZCBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEwVDE0OjM5OjQxLjA4ODk5MzA2MVoiLCJTZXEiOjksIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDA5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowj6m9p[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-10 14:38:06 +0000 UTC FinishedAt: 2026-08-10 14:39:42 +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+CgkJCTx0ZD4yMDI2LzA4LzEwIDE0OjM5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIE1UNzk5NiBXaS1GaSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgaGFyZHdhcmUgZHJpdmVyLiBUaGlzIGNvZGUgcmVxdWlyZXMgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGFuZCBjYW5ub3QgYmUgcmVhY2hlZCBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTAgMTQ6Mzk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAzYTFiMTliYzU1YjViNTk2ZTg4N2JmYzcyNjAyZGQ2ODRhZjE5ZDZiXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMTAgMTQ6Mzk6MTMgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jXG5pbmRleCBmYjYzNWEwOTI1ODQwLi41MjViYjc3MWY3OGE0IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmNcbkBAIC0yMzQsMTEgJiM0MzsyMzQsMzMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0aGVybWFsX2Nvb2xpbmdfZGV2aWNlX29wcyBtdDc5OTZfdGhlcm1hbF9vcHMgPSB7XG4gXHQuc2V0X2N1cl9zdGF0ZSA9IG10Nzk5Nl90aGVybWFsX3NldF9jdXJfdGhyb3R0bGVfc3RhdGUsXG4gfTtcbiBcbiYjNDM7c3RhdGljIGludCBtdDc5OTZfdGhlcm1hbF9nZXRfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCAqdGVtcClcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkgPSB0aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYodHopO1xuJiM0MztcdGludCB2YWw7XG4mIzQzO1xuJiM0MztcdG11dGV4X2xvY2soXHUwMDI2cGh5LVx1MDAzZWRldi1cdTAwM2VtdDc2Lm11dGV4KTtcbiYjNDM7XHR2YWwgPSBtdDc5OTZfbWN1X2dldF90ZW1wZXJhdHVyZShwaHkpO1xuJiM0MztcdG11dGV4X3VubG9jayhcdTAwMjZwaHktXHUwMDNlZGV2LVx1MDAzZW10NzYubXV0ZXgpO1xuJiM0MztcdGlmICh2YWwgXHUwMDNjIDApXG4mIzQzO1x0XHRyZXR1cm4gdmFsO1xuJiM0MztcbiYjNDM7XHQqdGVtcCA9IHZhbCAqIDEwMDA7XG4mIzQzO1x0cmV0dXJuIDA7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZV9vcHMgbXQ3OTk2X3R6X29wcyA9IHtcbiYjNDM7XHQuZ2V0X3RlbXAgPSBtdDc5OTZfdGhlcm1hbF9nZXRfdGVtcCxcbiYjNDM7fTtcbiYjNDM7XG4gc3RhdGljIHZvaWQgbXQ3OTk2X3VucmVnaXN0ZXJfdGhlcm1hbChzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxuIHtcbiBcdHN0cnVjdCB3aXBoeSAqd2lwaHkgPSBwaHktXHUwMDNlbXQ3Ni1cdTAwM2Vody1cdTAwM2V3aXBoeTtcbiBcdGNoYXIgbmFtZVtzaXplb2YoXCYjMzQ7Y29vbGluZ19kZXZpY2VYWFhcJiMzNDspXTtcbiBcbiYjNDM7XHRpZiAocGh5LVx1MDAzZXR6b25lKVxuJiM0MztcdFx0ZGV2bV90aGVybWFsX29mX3pvbmVfdW5yZWdpc3RlcihwaHktXHUwMDNlZGV2LVx1MDAzZW10NzYuZGV2LCBwaHktXHUwMDNldHpvbmUpO1xuJiM0MztcbiBcdGlmICghcGh5LVx1MDAzZWNkZXYpXG4gXHRcdHJldHVybjtcbiBcbkBAIC0yNzUsMTQgJiM0MzsyOTcsMjcgQEAgc3RhdGljIGludCBtdDc5OTZfdGhlcm1hbF9pbml0KHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkpXG4gXHRwaHktXHUwMDNldGhyb3R0bGVfdGVtcFtNVDc5OTZfQ1JJVF9URU1QX0lEWF0gPSBNVDc5OTZfQ1JJVF9URU1QO1xuIFx0cGh5LVx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTk2X01BWF9URU1QX0lEWF0gPSBNVDc5OTZfTUFYX1RFTVA7XG4gXG4mIzQzO1x0cGh5LVx1MDAzZXR6b25lID0gZGV2bV90aGVybWFsX29mX3pvbmVfcmVnaXN0ZXIocGh5LVx1MDAzZWRldi1cdTAwM2VtdDc2LmRldixcbiYjNDM7XHRcdFx0XHRcdFx0ICAgcGh5LVx1MDAzZW10NzYtXHUwMDNlYmFuZF9pZHgsIHBoeSxcbiYjNDM7XHRcdFx0XHRcdFx0ICAgXHUwMDI2bXQ3OTk2X3R6X29wcyk7XG4mIzQzO1x0aWYgKElTX0VSUihwaHktXHUwMDNldHpvbmUpKSB7XG4mIzQzO1x0XHRpZiAoUFRSX0VSUihwaHktXHUwMDNldHpvbmUpICE9IC1FTk9ERVYpXG4mIzQzO1x0XHRcdGRldl93YXJuKHBoeS1cdTAwM2VkZXYtXHUwMDNlbXQ3Ni5kZXYsXG4mIzQzO1x0XHRcdFx0IFwmIzM0O2ZhaWxlZCB0byByZWdpc3RlciB0aGVybWFsIHpvbmUgJWQ6ICVsZFxcblwmIzM0OyxcbiYjNDM7XHRcdFx0XHQgcGh5LVx1MDAzZW10NzYtXHUwMDNlYmFuZF9pZHgsIFBUUl9FUlIocGh5LVx1MDAzZXR6b25lKSk7XG4mIzQzO1x0XHRwaHktXHUwMDNldHpvbmUgPSBOVUxMO1xuJiM0MztcdH1cbiYjNDM7XG4gXHRpZiAoIUlTX1JFQUNIQUJMRShDT05GSUdfSFdNT04pKVxuIFx0XHRyZXR1cm4gMDtcbiBcbiBcdGh3bW9uID0gZGV2bV9od21vbl9kZXZpY2VfcmVnaXN0ZXJfd2l0aF9ncm91cHMoXHUwMDI2d2lwaHktXHUwMDNlZGV2LCBuYW1lLCBwaHksXG4gXHRcdFx0XHRcdFx0ICAgICAgIG10Nzk5Nl9od21vbl9ncm91cHMpO1xuIFxuLVx0aWYgKElTX0VSUihod21vbikpXG4mIzQzO1x0aWYgKElTX0VSUihod21vbikpIHtcbiYjNDM7XHRcdG10Nzk5Nl91bnJlZ2lzdGVyX3RoZXJtYWwocGh5KTtcbiBcdFx0cmV0dXJuIFBUUl9FUlIoaHdtb24pO1xuJiM0MztcdH1cbiBcbiBcdHJldHVybiAwO1xuIH1cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oXG5pbmRleCAyYTBjZGI1NmY4MjJlLi4zOWZhMjVhNTYyZTVlIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oXG5AQCAtMzcyLDYgJiM0MzszNzIsNyBAQCBzdHJ1Y3QgbXQ3OTk2X3BoeSB7XG4gXG4gXHRzdHJ1Y3QgaWVlZTgwMjExX3NiYW5kX2lmdHlwZV9kYXRhIGlmdHlwZVtOVU1fTkw4MDIxMV9CQU5EU11bTlVNX05MODAyMTFfSUZUWVBFU107XG4gXG4mIzQzO1x0c3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6b25lO1xuIFx0c3RydWN0IHRoZXJtYWxfY29vbGluZ19kZXZpY2UgKmNkZXY7XG4gXHR1OCBjZGV2X3N0YXRlO1xuIFx0dTggdGhyb3R0bGVfc3RhdGU7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTAgMTQ6Mzk8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYVRlayBNVDc5OTYgV2ktRmkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGRyaXZlci4gVGhpcyBjb2RlIHJlcXVpcmVzIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBhbmQgY2Fubm90IGJlIHJlYWNoZWQgaW4gdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgM2ExYjE5YmM1NWI1YjU5NmU4ODdiZmM3MjYwMmRkNjg0YWYxOWQ2YgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gQXVnIDEwIDE0OjM5OjEzIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jCmluZGV4IGZiNjM1YTA5MjU4NDAuLjUyNWJiNzcxZjc4YTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMKQEAgLTIzNCwxMSAmIzQzOzIzNCwzMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHRoZXJtYWxfY29vbGluZ19kZXZpY2Vfb3BzIG10Nzk5Nl90aGVybWFsX29wcyA9IHsKIAkuc2V0X2N1cl9zdGF0ZSA9IG10Nzk5Nl90aGVybWFsX3NldF9jdXJfdGhyb3R0bGVfc3RhdGUsCiB9OwogCiYjNDM7c3RhdGljIGludCBtdDc5OTZfdGhlcm1hbF9nZXRfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCAqdGVtcCkKJiM0Mzt7CiYjNDM7CXN0cnVjdCBtdDc5OTZfcGh5ICpwaHkgPSB0aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYodHopOwomIzQzOwlpbnQgdmFsOwomIzQzOwomIzQzOwltdXRleF9sb2NrKCZhbXA7cGh5LSZndDtkZXYtJmd0O210NzYubXV0ZXgpOwomIzQzOwl2YWwgPSBtdDc5OTZfbWN1X2dldF90ZW1wZXJhdHVyZShwaHkpOwomIzQzOwltdXRleF91bmxvY2soJmFtcDtwaHktJmd0O2Rldi0mZ3Q7bXQ3Ni5tdXRleCk7CiYjNDM7CWlmICh2YWwgJmx0OyAwKQomIzQzOwkJcmV0dXJuIHZhbDsKJiM0MzsKJiM0MzsJKnRlbXAgPSB2YWwgKiAxMDAwOwomIzQzOwlyZXR1cm4gMDsKJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlX29wcyBtdDc5OTZfdHpfb3BzID0gewomIzQzOwkuZ2V0X3RlbXAgPSBtdDc5OTZfdGhlcm1hbF9nZXRfdGVtcCwKJiM0Mzt9OwomIzQzOwogc3RhdGljIHZvaWQgbXQ3OTk2X3VucmVnaXN0ZXJfdGhlcm1hbChzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KQogewogCXN0cnVjdCB3aXBoeSAqd2lwaHkgPSBwaHktJmd0O210NzYtJmd0O2h3LSZndDt3aXBoeTsKIAljaGFyIG5hbWVbc2l6ZW9mKCYjMzQ7Y29vbGluZ19kZXZpY2VYWFgmIzM0OyldOwogCiYjNDM7CWlmIChwaHktJmd0O3R6b25lKQomIzQzOwkJZGV2bV90aGVybWFsX29mX3pvbmVfdW5yZWdpc3RlcihwaHktJmd0O2Rldi0mZ3Q7bXQ3Ni5kZXYsIHBoeS0mZ3Q7dHpvbmUpOwomIzQzOwogCWlmICghcGh5LSZndDtjZGV2KQogCQlyZXR1cm47CiAKQEAgLTI3NSwxNCAmIzQzOzI5NywyNyBAQCBzdGF0aWMgaW50IG10Nzk5Nl90aGVybWFsX2luaXQoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSkKIAlwaHktJmd0O3Rocm90dGxlX3RlbXBbTVQ3OTk2X0NSSVRfVEVNUF9JRFhdID0gTVQ3OTk2X0NSSVRfVEVNUDsKIAlwaHktJmd0O3Rocm90dGxlX3RlbXBbTVQ3OTk2X01BWF9URU1QX0lEWF0gPSBNVDc5OTZfTUFYX1RFTVA7CiAKJiM0MzsJcGh5LSZndDt0em9uZSA9IGRldm1fdGhlcm1hbF9vZl96b25lX3JlZ2lzdGVyKHBoeS0mZ3Q7ZGV2LSZndDttdDc2LmRldiwKJiM0MzsJCQkJCQkgICBwaHktJmd0O210NzYtJmd0O2JhbmRfaWR4LCBwaHksCiYjNDM7CQkJCQkJICAgJmFtcDttdDc5OTZfdHpfb3BzKTsKJiM0MzsJaWYgKElTX0VSUihwaHktJmd0O3R6b25lKSkgewomIzQzOwkJaWYgKFBUUl9FUlIocGh5LSZndDt0em9uZSkgIT0gLUVOT0RFVikKJiM0MzsJCQlkZXZfd2FybihwaHktJmd0O2Rldi0mZ3Q7bXQ3Ni5kZXYsCiYjNDM7CQkJCSAmIzM0O2ZhaWxlZCB0byByZWdpc3RlciB0aGVybWFsIHpvbmUgJWQ6ICVsZFxuJiMzNDssCiYjNDM7CQkJCSBwaHktJmd0O210NzYtJmd0O2JhbmRfaWR4LCBQVFJfRVJSKHBoeS0mZ3Q7dHpvbmUpKTsKJiM0MzsJCXBoeS0mZ3Q7dHpvbmUgPSBOVUxMOwomIzQzOwl9CiYjNDM7CiAJaWYgKCFJU19SRUFDSEFCTEUoQ09ORklHX0hXTU9OKSkKIAkJcmV0dXJuIDA7CiAKIAlod21vbiA9IGRldm1faHdtb25fZGV2aWNlX3JlZ2lzdGVyX3dpdGhfZ3JvdXBzKCZhbXA7d2lwaHktJmd0O2RldiwgbmFtZSwgcGh5LAogCQkJCQkJICAgICAgIG10Nzk5Nl9od21vbl9ncm91cHMpOwogCi0JaWYgKElTX0VSUihod21vbikpCiYjNDM7CWlmIChJU19FUlIoaHdtb24pKSB7CiYjNDM7CQltdDc5OTZfdW5yZWdpc3Rlcl90aGVybWFsKHBoeSk7CiAJCXJldHVybiBQVFJfRVJSKGh3bW9uKTsKJiM0MzsJfQogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oCmluZGV4IDJhMGNkYjU2ZjgyMmUuLjM5ZmEyNWE1NjJlNWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oCkBAIC0zNzIsNiAmIzQzOzM3Miw3IEBAIHN0cnVjdCBtdDc5OTZfcGh5IHsKIAogCXN0cnVjdCBpZWVlODAyMTFfc2JhbmRfaWZ0eXBlX2RhdGEgaWZ0eXBlW05VTV9OTDgwMjExX0JBTkRTXVtOVU1fTkw4MDIxMV9JRlRZUEVTXTsKIAomIzQzOwlzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHpvbmU7CiAJc3RydWN0IHRoZXJtYWxfY29vbGluZ19kZXZpY2UgKmNkZXY7CiAJdTggY2Rldl9zdGF0ZTsKIAl1OCB0aHJvdHRsZV9zdGF0ZTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTAgMTQ6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzAwMQoJCQkJCQkJb3V0cHV0OiA0NAoJCQkJCQkJdGhvdWdodHM6IDIwMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBUaGVybWFsIFBhdGNoIGZvciB0aGUgTVQ3OTk2IFdpLUZpIERyaXZlcioqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCDigJMgc2VlbXMgbGlrZSBpdCYjMzk7cyB0b3VjaGluZyBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jYC4gSW50ZXJlc3RpbmcsIHRoZXkmIzM5O3JlIGFkZGluZyBgbXQ3OTk2X3RoZXJtYWxfZ2V0X3RlbXBgLCBgbXQ3OTk2X3R6X29wc2AsIGFuZCByZWdpc3RlcmluZyBhIHRoZXJtYWwgem9uZSB1c2luZyBgZGV2bV90aGVybWFsX29mX3pvbmVfcmVnaXN0ZXJgLiBTdGFuZGFyZCB0aGVybWFsIG1hbmFnZW1lbnQgc3R1ZmYsIG5vdGhpbmcgaW1tZWRpYXRlbHkgYWxhcm1pbmcuIFRoZXkgYWxzbyBoYXZlIGEgY2xlYW51cCBmdW5jdGlvbiwgYG10Nzk5Nl91bnJlZ2lzdGVyX3RoZXJtYWxgLCB3aGljaCBpcyBnb29kIHRvIHNlZSDigJMgZW5zdXJlcyBhIGNsZWFuIHVucmVnaXN0cmF0aW9uIG9uIG1vZHVsZSB1bmxvYWQgb3IgZHJpdmVyIGRldGFjaG1lbnQuIFRoZSBkcml2ZXIgaW4gcXVlc3Rpb24gaXMgYG10Nzk5NmAsIE1lZGlhVGVrJiMzOTtzIFdpLUZpIGRyaXZlciwgd2hpY2ggaXMgZmFtaWxpYXIgdGVycml0b3J5LgoKVGhlIGltbWVkaWF0ZSBxdWVzdGlvbiBpczogd2hhdCBraW5kIG9mIHRhcmdldCBhcmUgd2UgZGVhbGluZyB3aXRoIGhlcmU/IElzIHRoaXMgYSBQQ0llIGNhcmQsIG9yIHNvbWV0aGluZyB0aGF0IEkgbWlnaHQgYWN0dWFsbHkgYmUgYWJsZSB0byBmdXp6IHdpdGhpbiBRRU1VPyBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgZHJpdmVyJiMzOTtzIHVuZGVybHlpbmcgaGFyZHdhcmUgcGxhdGZvcm0uIE1lZGlhVGVrJiMzOTtzIE1UNzk5NiBpcyBhIFdpLUZpIDcgY2hpcCwgc28gaXQmIzM5O3MgYSBwcmV0dHkgc2FmZSBiZXQgdGhhdCBpdCYjMzk7cyBhIFBDSWUgZGV2aWNlLgoKSSBzaG91bGQgcHJvYmFibHkgY29uZmlybSB0aGF0IGJ5IGNoZWNraW5nIG91dCB0aGUgcmVsZXZhbnQgc291cmNlIGZpbGVzIOKAkyBtYXliZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmNgIG9yIHNvbWV0aGluZyBzaW1pbGFyLCBmb3IgdGhhdCBQQ0ktc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24gbG9naWMuIExldCYjMzk7cyBzZWUgaWYgd2UgY2FuIGdldCBhIGNsZWFyZXIgcGljdHVyZSBvZiBob3cgdGhpcyBkcml2ZXIgaW50ZXJhY3RzIHdpdGggdGhlIGhhcmR3YXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEwIDE0OjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210Nzk5NiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNjYzOSBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGUtMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX01UNzk5NkUpICYjNDM7PSBtdDc5OTZlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTo1Om10Nzk5NmUteSA6PSBwY2kubyBpbml0Lm8gZG1hLm8gZWVwcm9tLm8gbWFpbi5vIG1jdS5vIG1hYy5vIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS02LVx0ICAgICBkZWJ1Z2ZzLm8gbW1pby5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS03LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU6ODptdDc5OTZlLSQoQ09ORklHX01UNzk5Nl9OUFUpICYjNDM7PSBucHUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU6OTptdDc5OTZlLSQoQ09ORklHX0RFVl9DT1JFRFVNUCkgJiM0Mzs9IGNvcmVkdW1wLm9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jPTEyPU1PRFVMRV9QQVJNX0RFU0MoY29yZWR1bXBfbWVtZHVtcCwgXCYjMzQ7T3B0aW9uYWwgYWJpbGl0eSB0byBkdW1wIGZpcm13YXJlIG1lbW9yeVwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxNDpzdGF0aWMgY29uc3Qgc3RydWN0IG10Nzk5Nl9tZW1fcmVnaW9uIG10Nzk5Nl9tZW1fcmVnaW9uc1tdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xNS1cdHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTQ2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo0Nzpjb25zdCBzdHJ1Y3QgbXQ3OTk2X21lbV9yZWdpb24qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjQ4Om10Nzk5Nl9jb3JlZHVtcF9nZXRfbWVtX2xheW91dChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCB1MzIgKm51bSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNDkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNTItXHRjYXNlIE1UNzk5Nl9ERVZJQ0VfSURfMjpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NTM6XHRcdCpudW0gPSBBUlJBWV9TSVpFKG10Nzk5Nl9tZW1fcmVnaW9ucyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjU0Olx0XHRyZXR1cm4gXHUwMDI2bXQ3OTk2X21lbV9yZWdpb25zWzBdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy01NS1cdGRlZmF1bHQ6XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy01OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NjA6c3RhdGljIGludCBtdDc5OTZfY29yZWR1bXBfZ2V0X21lbV9zaXplKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTYxLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NjI6XHRjb25zdCBzdHJ1Y3QgbXQ3OTk2X21lbV9yZWdpb24gKm1lbV9yZWdpb247XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTYzLVx0c2l6ZV90IHNpemUgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjY3Olx0bWVtX3JlZ2lvbiA9IG10Nzk5Nl9jb3JlZHVtcF9nZXRfbWVtX2xheW91dChkZXYsIFx1MDAyNm51bSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTY4LVx0aWYgKCFtZW1fcmVnaW9uKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNzYtXHQvKiByZXNlcnZlIHNwYWNlIGZvciB0aGUgaGVhZGVycyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo3NzpcdHNpemUgJiM0Mzs9IG51bSAqIHNpemVvZihzdHJ1Y3QgbXQ3OTk2X21lbV9oZHIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy03OC1cdC8qIG1ha2Ugc3VyZSBpdCBpcyBhbGlnbmVkIDQgYnl0ZXMgZm9yIGRlYnVnIG1lc3NhZ2UgcHJpbnQgb3V0ICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy04My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6ODQ6c3RydWN0IG10Nzk5Nl9jcmFzaF9kYXRhICptdDc5OTZfY29yZWR1bXBfbmV3KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTg1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6ODY6XHRzdHJ1Y3QgbXQ3OTk2X2NyYXNoX2RhdGEgKmNyYXNoX2RhdGEgPSBkZXYtXHUwMDNlY29yZWR1bXAuY3Jhc2hfZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtODctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYz0xMDA9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MTAxOm10Nzk5Nl9jb3JlZHVtcF9md19zdGF0ZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wICpkdW1wLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xMDItXHRcdFx0IGJvb2wgKmV4Y2VwdGlvbilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jPTExNz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxMTg6bXQ3OTk2X2NvcmVkdW1wX2Z3X3N0YWNrKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHN0cnVjdCBtdDc5OTZfY29yZWR1bXAgKmR1bXAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTExOS1cdFx0XHQgYm9vbCBleGNlcHRpb24pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xNjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE2MjpzdGF0aWMgc3RydWN0IG10Nzk5Nl9jb3JlZHVtcCAqbXQ3OTk2X2NvcmVkdW1wX2J1aWxkKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTE2My17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE2NDpcdHN0cnVjdCBtdDc5OTZfY3Jhc2hfZGF0YSAqY3Jhc2hfZGF0YSA9IGRldi1cdTAwM2Vjb3JlZHVtcC5jcmFzaF9kYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxNjU6XHRzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wICpkdW1wO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxNjY6XHRzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wX21lbSAqZHVtcF9tZW07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTE2Ny1cdHNpemVfdCBsZW4sIHNvZmFyID0gMCwgaGRyX2xlbiA9IHNpemVvZigqZHVtcCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xODYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE4NzpcdGR1bXAgPSAoc3RydWN0IG10Nzk5Nl9jb3JlZHVtcCAqKShidWYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xODgtXHRkdW1wLVx1MDAzZWxlbiA9IGxlbjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIwMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjAxOlx0bXQ3OTk2X2NvcmVkdW1wX2Z3X3N0YXRlKGRldiwgZHVtcCwgXHUwMDI2ZXhjZXB0aW9uKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjAyOlx0bXQ3OTk2X2NvcmVkdW1wX2Z3X3N0YWNrKGRldiwgZHVtcCwgZXhjZXB0aW9uKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjAzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMDQtXHQvKiBnYXRoZXIgbWVtb3J5IGNvbnRlbnQgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjA1Olx0ZHVtcF9tZW0gPSAoc3RydWN0IG10Nzk5Nl9jb3JlZHVtcF9tZW0gKikoYnVmICYjNDM7IHNvZmFyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjA2LVx0ZHVtcF9tZW0tXHUwMDNlbGVuID0gY3Jhc2hfZGF0YS1cdTAwM2VtZW1kdW1wX2J1Zl9sZW47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIxNjppbnQgbXQ3OTk2X2NvcmVkdW1wX3N1Ym1pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMTcte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyMTg6XHRzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wICpkdW1wO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIyMDpcdGR1bXAgPSBtdDc5OTZfY29yZWR1bXBfYnVpbGQoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjIxLVx0aWYgKCFkdW1wKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIzMTppbnQgbXQ3OTk2X2NvcmVkdW1wX3JlZ2lzdGVyKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIzMi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIzMzpcdHN0cnVjdCBtdDc5OTZfY3Jhc2hfZGF0YSAqY3Jhc2hfZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjM0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjQxLVx0aWYgKGNvcmVkdW1wX21lbWR1bXApIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjQyOlx0XHRjcmFzaF9kYXRhLVx1MDAzZW1lbWR1bXBfYnVmX2xlbiA9IG10Nzk5Nl9jb3JlZHVtcF9nZXRfbWVtX3NpemUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjQzLVx0XHRpZiAoIWNyYXNoX2RhdGEtXHUwMDNlbWVtZHVtcF9idWZfbGVuKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjU2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyNTc6dm9pZCBtdDc5OTZfY29yZWR1bXBfdW5yZWdpc3RlcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yNTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NzojaW5jbHVkZSBcJiMzNDttdDc5OTYuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC04LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo5OnN0cnVjdCBtdDc5OTZfY29yZWR1bXAge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC0xMC1cdGNoYXIgbWFnaWNbMTZdO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtMzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjQwOnN0cnVjdCBtdDc5OTZfY29yZWR1bXBfbWVtIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNDEtXHR1MzIgbGVuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjQ1OnN0cnVjdCBtdDc5OTZfbWVtX2hkciB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTQ2LVx0dTMyIHN0YXJ0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjUxOnN0cnVjdCBtdDc5OTZfbWVtX3JlZ2lvbiB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTUyLVx0dTMyIHN0YXJ0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjYwOmNvbnN0IHN0cnVjdCBtdDc5OTZfbWVtX3JlZ2lvbiAqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjYxOm10Nzk5Nl9jb3JlZHVtcF9nZXRfbWVtX2xheW91dChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCB1MzIgKm51bSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjYyOnN0cnVjdCBtdDc5OTZfY3Jhc2hfZGF0YSAqbXQ3OTk2X2NvcmVkdW1wX25ldyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NjM6aW50IG10Nzk5Nl9jb3JlZHVtcF9zdWJtaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjY0OmludCBtdDc5OTZfY29yZWR1bXBfcmVnaXN0ZXIoc3RydWN0IG10Nzk5Nl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjY1OnZvaWQgbXQ3OTk2X2NvcmVkdW1wX3VucmVnaXN0ZXIoc3RydWN0IG10Nzk5Nl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTY2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjY5OnN0YXRpYyBpbmxpbmUgY29uc3Qgc3RydWN0IG10Nzk5Nl9tZW1fcmVnaW9uICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NzA6bXQ3OTk2X2NvcmVkdW1wX2dldF9tZW1fbGF5b3V0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHUzMiAqbnVtKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC03MS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC03NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NzU6c3RhdGljIGlubGluZSBpbnQgbXQ3OTk2X2NvcmVkdW1wX3N1Ym1pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC03Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaD04MD1zdGF0aWMgaW5saW5lIHN0cnVjdFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo4MTptdDc5OTZfY3Jhc2hfZGF0YSAqbXQ3OTk2X2NvcmVkdW1wX25ldyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC04Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC04NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6ODY6c3RhdGljIGlubGluZSBpbnQgbXQ3OTk2X2NvcmVkdW1wX3JlZ2lzdGVyKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTg3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo5MTpzdGF0aWMgaW5saW5lIHZvaWQgbXQ3OTk2X2NvcmVkdW1wX3VucmVnaXN0ZXIoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtOTIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02LSNpbmNsdWRlIFx1MDAzY2xpbnV4L3JlbGF5LmhcdTAwM2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3OiNpbmNsdWRlIFwmIzM0O210Nzk5Ni5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOC0jaW5jbHVkZSBcJiMzNDtlZXByb20uaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0yMz1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjQ6bXQ3OTk2X2ltcGxpY2l0X3R4YmZfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjUte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI2Olx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTMyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjMzOlx0cmV0dXJuIG10Nzk5Nl9tY3Vfc2V0X3R4YmYoZGV2LCBCRl9IV19FTl9VUERBVEUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM0LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MzY9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM3Om10Nzk5Nl9pbXBsaWNpdF90eGJmX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zOC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Mzk6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00MC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDY6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfaW1wbGljaXRfdHhiZiwgbXQ3OTk2X2ltcGxpY2l0X3R4YmZfZ2V0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ3Olx0XHRcdCBtdDc5OTZfaW1wbGljaXRfdHhiZl9zZXQsIFwmIzM0OyVsbGRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz01MD1zdGF0aWMgc3NpemVfdFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjUxOm10Nzk5Nl9zeXNfcmVjb3Zlcnlfc2V0KHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFyIF9fdXNlciAqdXNlcl9idWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTItXHRcdFx0c2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU0Olx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGZpbGUtXHUwMDNlcHJpdmF0ZV9kYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU1LVx0Y2hhciBidWZbMTZdLCAqc2VwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05MS1cdGNhc2UgVU5JX0NNRF9TRVJfUVVFUlk6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6OTI6XHRcdHJldCA9IG10Nzk5Nl9tY3Vfc2V0X3NlcihkZXYsIFVOSV9DTURfU0VSX1FVRVJZLCAwLCBiYW5kKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05My1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEwMC1cdGNhc2UgVU5JX0NNRF9TRVJfU0VUX1JFQ09WRVJfTDRfTURQOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjEwMTpcdFx0cmV0ID0gbXQ3OTk2X21jdV9zZXRfc2VyKGRldiwgVU5JX0NNRF9TRVJfU0VULCBCSVQodmFsKSwgYmFuZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTAyLVx0XHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTA1Olx0XHRyZXQgPSBtdDc5OTZfbWN1X3NldF9zZXIoZGV2LCBVTklfQ01EX1NFUl9UUklHR0VSLCB2YWwsIGJhbmQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEwNi1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTExMS1cdFx0ZGV2LVx1MDAzZXJlY292ZXJ5LnN0YXRlIHw9IE1UX01DVV9DTURfV0RUX01BU0s7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTEyOlx0XHRtdDc5OTZfcmVzZXQoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMTMtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMTYtXHRjYXNlIFVOSV9DTURfU0VSX1NFVF9TWVNURU1fQVNTRVJUOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjExNzpcdFx0cmV0ID0gbXQ3OTk2X21jdV90cmlnZ2VyX2Fzc2VydChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTExOC1cdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MTI4PXN0YXRpYyBzc2l6ZV90XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTI5Om10Nzk5Nl9zeXNfcmVjb3ZlcnlfZ2V0KHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNlciAqdXNlcl9idWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTMwLVx0XHRcdHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEzMS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTMyOlx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGZpbGUtXHUwMDNlcHJpdmF0ZV9kYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEzMy1cdGNoYXIgKmJ1ZmY7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTIxNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyMTU6c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbXQ3OTk2X3N5c19yZWNvdmVyeV9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjE2Olx0LndyaXRlID0gbXQ3OTk2X3N5c19yZWNvdmVyeV9zZXQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjE3Olx0LnJlYWQgPSBtdDc5OTZfc3lzX3JlY292ZXJ5X2dldCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yMTgtXHQub3BlbiA9IHNpbXBsZV9vcGVuLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0yMjI9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjIyMzptdDc5OTZfcmFkYXJfdHJpZ2dlcih2b2lkICpkYXRhLCB1NjQgdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTIyNC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTIyNi0jZGVmaW5lIFJBREFSX0JBQ0tHUk9VTkRcdDJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyMjc6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyMjg6XHRzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5ID0gbXQ3OTk2X2JhbmRfcGh5KGRldiwgTkw4MDIxMV9CQU5EXzVHSFopO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTIyOS1cdHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiAqY2hhbmRlZjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjQ3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI0ODpcdHJkZF9pZHggPSBtdDc5OTZfZ2V0X3JkZF9pZHgocGh5LCB2YWwgPT0gUkFEQVJfQkFDS0dST1VORCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjQ5LVx0aWYgKHJkZF9pZHggXHUwMDNjIDApIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjU4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI1OTpcdHJldHVybiBtdDc5OTZfbWN1X3JkZF9jbWQoZGV2LCBSRERfUkFEQVJfRU1VTEFURSwgcmRkX2lkeCwgMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjYwLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MjYyPURFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3JhZGFyX3RyaWdnZXIsIE5VTEwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjYzOlx0XHRcdCBtdDc5OTZfcmFkYXJfdHJpZ2dlciwgXCYjMzQ7JWxsZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjY0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTI2NT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjY2Om10Nzk5Nl9yZGRfbW9uaXRvcihzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjY3LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyNjg6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGV2X2dldF9kcnZkYXRhKHMtXHUwMDNlcHJpdmF0ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjY5LVx0c3RydWN0IGNmZzgwMjExX2NoYW5fZGVmICpjaGFuZGVmID0gXHUwMDI2ZGV2LVx1MDAzZXJkZDJfY2hhbmRlZjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MzEyPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozMTM6bXQ3OTk2X2Z3X2RlYnVnX3dtX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTMxNC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzE1Olx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzE2LVx0ZW51bSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTMzNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozMzg6XHRyZXQgPSBtdDc5OTZfbWN1X2Z3X2xvZ18yX2hvc3QoZGV2LCBNQ1VfRldfTE9HX1dNLCB2YWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTMzOS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM1MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNTE6XHRcdHJldCA9IG10Nzk5Nl9tY3VfZndfZGJnX2N0cmwoZGV2LCBkZWJ1ZywgdmFsKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNTItXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTM1OT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzYwOm10Nzk5Nl9md19kZWJ1Z193bV9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzYxLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNjI6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNjMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM2OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNjk6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfZndfZGVidWdfd20sIG10Nzk5Nl9md19kZWJ1Z193bV9nZXQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzcwOlx0XHRcdCBtdDc5OTZfZndfZGVidWdfd21fc2V0LCBcJiMzNDslbGxkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MzcyPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNzM6bXQ3OTk2X2Z3X2RlYnVnX3dhX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM3NC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Mzc1Olx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzc2LVx0aW50IHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzc5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM4MDpcdHJldCA9IG10Nzk5Nl9tY3VfZndfbG9nXzJfaG9zdChkZXYsIE1DVV9GV19MT0dfV0EsIGRldi1cdTAwM2Vmd19kZWJ1Z193YSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzgxLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzgzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM4NDpcdHJldHVybiBtdDc5OTZfbWN1X3dhX2NtZChkZXYsIE1DVV9XQV9QQVJBTV9DTUQoU0VUKSwgTUNVX1dBX1BBUkFNX1BETUFfUlgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzg1LVx0XHRcdFx0ICEhZGV2LVx1MDAzZWZ3X2RlYnVnX3dhLCAwKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9Mzg4PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozODk6bXQ3OTk2X2Z3X2RlYnVnX3dhX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zOTAte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM5MTpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM5Mi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzk3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM5ODpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19md19kZWJ1Z193YSwgbXQ3OTk2X2Z3X2RlYnVnX3dhX2dldCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozOTk6XHRcdFx0IG10Nzk5Nl9md19kZWJ1Z193YV9zZXQsIFwmIzM0OyVsbGRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQwMC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NDI1PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0MjY6bXQ3OTk2X2Z3X2RlYnVnX2Jpbl9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00Mjcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00MzEtXHR9O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQzMjpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQzMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDQzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ0NDpcdHJldHVybiBtdDc5OTZfZndfZGVidWdfd21fc2V0KGRldiwgZGV2LVx1MDAzZWZ3X2RlYnVnX3dtKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NDUtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz00NDc9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ0ODptdDc5OTZfZndfZGVidWdfYmluX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NDkte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ1MDpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ1MS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDU2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ1NzpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19md19kZWJ1Z19iaW4sIG10Nzk5Nl9md19kZWJ1Z19iaW5fZ2V0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ1ODpcdFx0XHQgbXQ3OTk2X2Z3X2RlYnVnX2Jpbl9zZXQsIFwmIzM0OyVsbGRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ1OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz00NjA9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ2MTptdDc5OTZfZndfdXRpbF93YV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NjIte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ2MzpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBmaWxlLVx1MDAzZXByaXZhdGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDY0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ2NS1cdGlmIChkZXYtXHUwMDNlZndfZGVidWdfd2EpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDY2Olx0XHRyZXR1cm4gbXQ3OTk2X21jdV93YV9jbWQoZGV2LCBNQ1VfV0FfUEFSQU1fQ01EKFFVRVJZKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NjctXHRcdFx0XHRcdCBNQ1VfV0FfUEFSQU1fQ1BVX1VUSUwsIDAsIDApO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDcyOkRFRklORV9TSE9XX0FUVFJJQlVURShtdDc5OTZfZndfdXRpbF93YSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDczLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTQ3ND1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ3NTptdDc5OTZfYW1wZHVfc3RhdF9yZWFkX3BoeShzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LCBzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDc2LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0Nzc6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gcGh5LVx1MDAzZWRldjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NzgtXHRpbnQgYm91bmRbMTVdLCByYW5nZVs4XSwgaTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NTA0PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTA1Om10Nzk5Nl90eGJmX3N0YXRfcmVhZF9waHkoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSwgc3RydWN0IHNlcV9maWxlICpzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTUwNi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTU1Mj1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU1MzptdDc5OTZfdHhfc3RhdHNfc2hvd19waHkoc3RydWN0IHNlcV9maWxlICpmaWxlLCBzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU1NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU1OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1NTk6XHRtdDc5OTZfbWFjX3VwZGF0ZV9zdGF0cyhwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU2MDpcdG10Nzk5Nl9hbXBkdV9zdGF0X3JlYWRfcGh5KHBoeSwgZmlsZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTYxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01NjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTY5Olx0bXQ3OTk2X3R4YmZfc3RhdF9yZWFkX3BoeShwaHksIGZpbGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU3MC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NTg0PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1ODU6bXQ3OTk2X3R4X3N0YXRzX3Nob3coc3RydWN0IHNlcV9maWxlICpmaWxlLCB2b2lkICpkYXRhKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU4Ni17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTg3Olx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGZpbGUtXHUwMDNlcHJpdmF0ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1ODg6XHRzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5ID0gXHUwMDI2ZGV2LVx1MDAzZXBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01ODktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU5MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1OTI6XHRtdDc5OTZfdHhfc3RhdHNfc2hvd19waHkoZmlsZSwgcGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1OTM6XHRwaHkgPSBtdDc5OTZfcGh5MihkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU5NC1cdGlmIChwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTk1Olx0XHRtdDc5OTZfdHhfc3RhdHNfc2hvd19waHkoZmlsZSwgcGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1OTY6XHRwaHkgPSBtdDc5OTZfcGh5MyhkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU5Ny1cdGlmIChwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTk4Olx0XHRtdDc5OTZfdHhfc3RhdHNfc2hvd19waHkoZmlsZSwgcGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01OTktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTYwNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2MDU6REVGSU5FX1NIT1dfQVRUUklCVVRFKG10Nzk5Nl90eF9zdGF0cyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjA2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTYwNz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjYwODptdDc5OTZfaHdfcXVldWVfcmVhZChzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHUzMiBzaXplLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTYwOS1cdFx0ICAgICBjb25zdCBzdHJ1Y3QgaHdfcXVldWVfbWFwICptYXApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjEwLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2MTE6XHRzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5ID0gcy1cdTAwM2Vwcml2YXRlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjYxMjpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBwaHktXHUwMDNlZGV2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTYxMy1cdHUzMiBpLCB2YWw7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTYzOD1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjYzOTptdDc5OTZfc3RhX2h3X3F1ZXVlX3JlYWQodm9pZCAqZGF0YSwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NDAte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY0MTpcdHN0cnVjdCBtdDc5OTZfc3RhICptc3RhID0gKHN0cnVjdCBtdDc5OTZfc3RhICopc3RhLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY0MjpcdHN0cnVjdCBtdDc5OTZfdmlmICptdmlmID0gbXN0YS1cdTAwM2V2aWY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjQzOlx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeSA9IG10Nzk5Nl92aWZfbGlua19waHkoXHUwMDI2bXZpZi1cdTAwM2VkZWZsaW5rKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NDQtXHRzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfc3RhICpsaW5rX3N0YTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjQ2LVx0c3RydWN0IGllZWU4MDIxMV92aWYgKnZpZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2NDc6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY0OC1cdHVuc2lnbmVkIGludCBsaW5rX2lkO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NTgtXHRmb3JfZWFjaF9zdGFfYWN0aXZlX2xpbmsodmlmLCBzdGEsIGxpbmtfc3RhLCBsaW5rX2lkKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjU5Olx0XHRzdHJ1Y3QgbXQ3OTk2X3N0YV9saW5rICptc3RhX2xpbms7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjYwLVx0XHRzdHJ1Y3QgbXQ3Nl92aWZfbGluayAqbWxpbms7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY2Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2Njc6XHRcdG1zdGFfbGluayA9IG10Nzk5Nl9zdGFfbGluayhtc3RhLCBsaW5rX2lkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NjgtXHRcdGlmICghbXN0YV9saW5rKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz02OTQ9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY5NTptdDc5OTZfaHdfcXVldWVzX3Nob3coc3RydWN0IHNlcV9maWxlICpmaWxlLCB2b2lkICpkYXRhKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY5Ni17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Njk3Olx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGZpbGUtXHUwMDNlcHJpdmF0ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2OTg6XHRzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5ID0gXHUwMDI2ZGV2LVx1MDAzZXBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02OTktXHRzdGF0aWMgY29uc3Qgc3RydWN0IGh3X3F1ZXVlX21hcCBwbGVfcXVldWVfbWFwW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc0Ny1cdHNlcV9wdXRzKGZpbGUsIFwmIzM0O1BMRSBub24tZW1wdHkgcXVldWUgaW5mbzpcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc0ODpcdG10Nzk5Nl9od19xdWV1ZV9yZWFkKGZpbGUsIEFSUkFZX1NJWkUocGxlX3F1ZXVlX21hcCksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzQ5LVx0XHRcdCAgICAgXHUwMDI2cGxlX3F1ZXVlX21hcFswXSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc1Mi1cdGllZWU4MDIxMV9pdGVyYXRlX3N0YXRpb25zX2F0b21pYyhwaHktXHUwMDNlbXQ3Ni1cdTAwM2VodyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NTM6XHRcdFx0XHRcdCAgbXQ3OTk2X3N0YV9od19xdWV1ZV9yZWFkLCBmaWxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NTQ6XHRwaHkgPSBtdDc5OTZfcGh5MihkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc1NS1cdGlmIChwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzU2LVx0XHRpZWVlODAyMTFfaXRlcmF0ZV9zdGF0aW9uc19hdG9taWMocGh5LVx1MDAzZW10NzYtXHUwMDNlaHcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzU3Olx0XHRcdFx0XHRcdCAgbXQ3OTk2X3N0YV9od19xdWV1ZV9yZWFkLCBmaWxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NTg6XHRwaHkgPSBtdDc5OTZfcGh5MyhkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc1OS1cdGlmIChwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzYwLVx0XHRpZWVlODAyMTFfaXRlcmF0ZV9zdGF0aW9uc19hdG9taWMocGh5LVx1MDAzZW10NzYtXHUwMDNlaHcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzYxOlx0XHRcdFx0XHRcdCAgbXQ3OTk2X3N0YV9od19xdWV1ZV9yZWFkLCBmaWxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NjItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc2NC1cdHNlcV9wdXRzKGZpbGUsIFwmIzM0O1BTRSBub24tZW1wdHkgcXVldWUgaW5mbzpcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc2NTpcdG10Nzk5Nl9od19xdWV1ZV9yZWFkKGZpbGUsIEFSUkFZX1NJWkUocHNlX3F1ZXVlX21hcCksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzY2LVx0XHRcdCAgICAgXHUwMDI2cHNlX3F1ZXVlX21hcFswXSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NzE6REVGSU5FX1NIT1dfQVRUUklCVVRFKG10Nzk5Nl9od19xdWV1ZXMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc3Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz03NzM9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc3NDptdDc5OTZfeG1pdF9xdWV1ZXNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzc1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NzY6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZmlsZS1cdTAwM2Vwcml2YXRlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc3NzpcdHN0cnVjdCBtdDc5OTZfcGh5ICpwaHk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzc4LVx0c3RydWN0IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc5MTpcdHBoeSA9IG10Nzk5Nl9waHkyKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzkyLVx0aWYgKHBoeSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzk0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc5NTpcdHBoeSA9IG10Nzk5Nl9waHkzKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzk2LVx0aWYgKHBoeSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjgxNDpERUZJTkVfU0hPV19BVFRSSUJVVEUobXQ3OTk2X3htaXRfcXVldWVzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04MTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9ODE2PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4MTc6bXQ3OTk2X3R3dF9zdGF0cyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODE4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4MTk6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGV2X2dldF9kcnZkYXRhKHMtXHUwMDNlcHJpdmF0ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODIwOlx0c3RydWN0IG10Nzk5Nl90d3RfZmxvdyAqaXRlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04MjEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTg0NT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODQ2Om10Nzk5Nl9yZl9yZWd2YWxfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg0Ny17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODQ4Olx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODQ5LVx0dTMyIHJlZ3ZhbDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODUxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg1MjpcdHJldCA9IG10Nzk5Nl9tY3VfcmZfcmVndmFsKGRldiwgZGV2LVx1MDAzZW10NzYuZGVidWdmc19yZWcsIFx1MDAyNnJlZ3ZhbCwgZmFsc2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg1My1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTg2MT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODYyOm10Nzk5Nl9yZl9yZWd2YWxfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODYzLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NjQ6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NjUtXHR1MzIgdmFsMzIgPSB2YWw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODY2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg2NzpcdHJldHVybiBtdDc5OTZfbWN1X3JmX3JlZ3ZhbChkZXYsIGRldi1cdTAwM2VtdDc2LmRlYnVnZnNfcmVnLCBcdTAwMjZ2YWwzMiwgdHJ1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODY4LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODcwOkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3JmX3JlZ3ZhbCwgbXQ3OTk2X3JmX3JlZ3ZhbF9nZXQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODcxOlx0XHRcdCBtdDc5OTZfcmZfcmVndmFsX3NldCwgXCYjMzQ7MHglMDhsbHhcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg3Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NzM6aW50IG10Nzk5Nl9pbml0X2RlYnVnZnMoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NzQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NzktXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFwmIzM0O2h3LXF1ZXVlc1wmIzM0OywgMDQwMCwgZGlyLCBkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODgwOlx0XHRcdCAgICBcdTAwMjZtdDc5OTZfaHdfcXVldWVzX2ZvcHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg4MS1cdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXCYjMzQ7eG1pdC1xdWV1ZXNcJiMzNDssIDA0MDAsIGRpciwgZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg4MjpcdFx0XHQgICAgXHUwMDI2bXQ3OTk2X3htaXRfcXVldWVzX2ZvcHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg4MzpcdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXCYjMzQ7dHhfc3RhdHNcJiMzNDssIDA0MDAsIGRpciwgZGV2LCBcdTAwMjZtdDc5OTZfdHhfc3RhdHNfZm9wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODg0LVx0ZGVidWdmc19jcmVhdGVfZmlsZShcJiMzNDtzeXNfcmVjb3ZlcnlcJiMzNDssIDA2MDAsIGRpciwgZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg4NTpcdFx0XHQgICAgXHUwMDI2bXQ3OTk2X3N5c19yZWNvdmVyeV9vcHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg4Ni1cdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXCYjMzQ7ZndfZGVidWdfd21cJiMzNDssIDA2MDAsIGRpciwgZGV2LCBcdTAwMjZmb3BzX2Z3X2RlYnVnX3dtKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODkwLVx0ZGVidWdmc19jcmVhdGVfZmlsZShcJiMzNDtmd191dGlsX3dhXCYjMzQ7LCAwNDAwLCBkaXIsIGRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4OTE6XHRcdFx0ICAgIFx1MDAyNm10Nzk5Nl9md191dGlsX3dhX2ZvcHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg5Mi1cdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXCYjMzQ7aW1wbGljaXRfdHhiZlwmIzM0OywgMDYwMCwgZGlyLCBkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg5NC1cdGRlYnVnZnNfY3JlYXRlX2Rldm1fc2VxZmlsZShkZXYtXHUwMDNlbXQ3Ni5kZXYsIFwmIzM0O3R3dF9zdGF0c1wmIzM0OywgZGlyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg5NTpcdFx0XHRcdCAgICBtdDc5OTZfdHd0X3N0YXRzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04OTYtXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFwmIzM0O3JmX3JlZ3ZhbFwmIzM0OywgMDYwMCwgZGlyLCBkZXYsIFx1MDAyNmZvcHNfcmZfcmVndmFsKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTAxLVx0ZGVidWdmc19jcmVhdGVfZGV2bV9zZXFmaWxlKGRldi1cdTAwM2VtdDc2LmRldiwgXCYjMzQ7cmRkX21vbml0b3JcJiMzNDssIGRpcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo5MDI6XHRcdFx0XHQgICAgbXQ3OTk2X3JkZF9tb25pdG9yKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05MDMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTkwOT1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjkxMDptdDc5OTZfZGVidWdmc193cml0ZV9md2xvZyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBjb25zdCB2b2lkICpoZHIsIGludCBoZHJsZW4sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTExLVx0XHRcdCAgIGNvbnN0IHZvaWQgKmRhdGEsIGludCBsZW4pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkzMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo5MzQ6dm9pZCBtdDc5OTZfZGVidWdmc19yeF9md19tb25pdG9yKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGNvbnN0IHZvaWQgKmRhdGEsIGludCBsZW4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTM1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTU1LVx0aGRyLmxlbiA9ICooX19sZTE2ICopZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo5NTY6XHRtdDc5OTZfZGVidWdmc193cml0ZV9md2xvZyhkZXYsIFx1MDAyNmhkciwgc2l6ZW9mKGhkciksIGRhdGEsIGxlbik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTU3LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05NTgtXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMCAxNDozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDQwNQoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDMzNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIGBtdDc5OTZlYCBEcml2ZXIgYW5kIEl0cyBJbXBsaWNhdGlvbnMgZm9yIEZ1enppbmcqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYG10Nzk5NmVgIGRyaXZlciwgYW5kIGl0JiMzOTtzIGJ1aWx0IGZyb20gYHBjaS5vYCwgYGluaXQub2AsIGBkbWEub2AsIGBlZXByb20ub2AsIGBtYWluLm9gLCBldGMuIFRoYXQgaW1tZWRpYXRlbHkgdGVsbHMgbWUgaXQmIzM5O3MgYSBQQ0kgZHJpdmVyLiBUaGUga2V5IHF1ZXN0aW9uIGlzIHdoZXRoZXIgdGhpcyBpcyBmb3IgYSBwaHlzaWNhbCBQQ0llIGNhcmQgdGhhdCBRRU1VICpkb2VzbiYjMzk7dCogZW11bGF0ZSBvdXQtb2YtdGhlLWJveC4gTGV0JiMzOTtzIHNlZS4uLiB5ZXAsIE1lZGlhVGVrIE1UNzk5NiAqaXMqIGEgV2ktRmkgNyBQQ0llIGNhcmQuCgpOb3csIG15IG1pbmQgZ29lcyBzdHJhaWdodCB0byBRRU1VLiBEb2VzIFFFTVUgZXZlbiAqdHJ5KiB0byBlbXVsYXRlIHNwZWNpZmljIHZlbmRvciBXaS1GaSBjYXJkcz8gVXN1YWxseSwgbm90IHJlYWxseS4gSXQgaGFzIHRoZSBnZW5lcmFsIGUxMDAwIGFuZCB2aXJ0aW8gbmV0d29yayBpbnRlcmZhY2VzIGJ1dCBzcGVjaWZpYyBoYXJkd2FyZSBsaWtlIHRoaXMgTVQ3OTk2Li4uIGl0JiMzOTtzIHVubGlrZWx5LiBVbmxlc3MuLi4gKndhaXQqLi4uIHRoZXJlJiMzOTtzIGBtYWM4MDIxMV9od3NpbWAsIHdoaWNoICppcyogYSBzb2Z0d2FyZSBzaW11bGF0b3IsIGJ1dCB0aGlzIGlzIGEgKnNwZWNpZmljKiBoYXJkd2FyZSBkcml2ZXIsIGBtdDc5OTZgLCBzbyBJJiMzOTttIGd1ZXNzaW5nIHRoaXMgd29uJiMzOTt0IGFwcGx5IGhlcmUuCgpPa2F5LCBsZXQmIzM5O3MgZ28gYmFjayB0byB0aGUgcHJvbXB0OiBJdCBzYXlzIHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCBpZiB0aGUgcGF0Y2ggaW52b2x2ZXMgdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMuIFRoaW5ncyBsaWtlIGBtbHhzd2AsIGBxZWRgLCBgYW1kZ3B1YC4uLiBiYXNpY2FsbHksIGhhcmR3YXJlIHRoYXQgKnJlcXVpcmVzKiBhY3R1YWwgcGh5c2ljYWwgUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgYnkgc3RhbmRhcmQgUUVNVS4gSXMgYG10Nzk5NmAgYSB2ZW5kb3Itc3BlY2lmaWMgUENJIGRyaXZlcj8gQWJzb2x1dGVseS4gSXQmIzM5O3MgYSBNZWRpYVRlayBXaS1GaSBkcml2ZXIuCgpTbyB0aGUgcmVhbCBxdWVzdGlvbiB0aGVuIGlzOiBJcyBpdCBwb3NzaWJsZSB0byByZWFjaCB0aGUgY29kZSBpbiBRRU1VPyBBbmQgdXN1YWxseSBQQ0kgZHJpdmVycyBmb3Igc3BlY2lmaWMgV2ktRmkgY2FyZHMgKmNhbiYjMzk7dCogYmUgcHJvYmVkIGluIFFFTVUgdW5sZXNzIHRoZSBkZXZpY2UgaXMgZW11bGF0ZWQsIG9yIGlmIHdlIGFyZSB1c2luZyBkZXZpY2UgcGFzc3Rocm91Z2guIExldCBtZSBqdXN0IGNvbmZpcm0gYWdhaW46IGBtdDc5OTZgIGlzIGEgUENJIGRyaXZlci4gVGhhdCBzZWVtcyBjb3JyZWN0LCB0aGVyZWZvcmUsIHVubGVzcyB0aGVyZSYjMzk7cyBzb21ldGhpbmcgc3BlY2lmaWMgaW4gdGhpcyBwYXRjaCB0byBpbmRpY2F0ZSBvdGhlcndpc2UsIHRoaXMgaXMgcHJvYmFibHkgbm90IGZ1enphYmxlIHdpdGhvdXQgcGh5c2ljYWwgaGFyZHdhcmUgb3Igc3BlY2lhbGl6ZWQgZW11bGF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEwIDE0OjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BjaV9yZWdpc3Rlcl9kcml2ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTg4NT1zdGF0aWMgaW50IF9faW5pdCBtdDc5OTZfaW5pdCh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04ODgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODg5Olx0cmV0ID0gcGNpX3JlZ2lzdGVyX2RyaXZlcihcdTAwMjZtdDc5OTZfaGlmX2RyaXZlcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODkwLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODkyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg5MzpcdHJldCA9IHBjaV9yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2bXQ3OTk2X3BjaV9kcml2ZXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg5NC1cdGlmIChyZXQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTAgMTQ6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjE1NDYKCQkJCQkJCW91dHB1dDogODQKCQkJCQkJCXRob3VnaHRzOiA3NjQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudDogV29ydGhGdXp6aW5nID0gRmFsc2UqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kLCB5ZXMsIGl0JiMzOTtzIGRlZmluaXRlbHkgYSBQQ0kgZHJpdmVyIOKAkyB0aGF0JiMzOTtzIHRoZSBmaXJzdCB0aGluZyBJIG5vdGljZS4gVGhlIGNvcmUgb2YgdGhpcyBwYXRjaCBzZWVtcyB0byBiZSBhZGRpbmcgdGhlcm1hbCB6b25lIHJlZ2lzdHJhdGlvbiBzcGVjaWZpY2FsbHkgZm9yIHRoaXMgaGFyZHdhcmUuIFRoZSBrZXkgcG9pbnQgaGVyZSBpcyB0aGF0IGl0JiMzOTtzIGEgKnZlbmRvci1zcGVjaWZpYyogV2ktRmkgUENJZSBjYXJkLiBTaW5jZSBpdCYjMzk7cyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSwgdGhhdCBpbW1lZGlhdGVseSBmbGFncyBpdCBhcyBwb3RlbnRpYWxseSBwcm9ibGVtYXRpYyBmb3IgZnV6emluZy4KCk15IGltbWVkaWF0ZSB0aG91Z2h0IGFsaWducyB3aXRoIHRoZSBwcm9tcHQmIzM5O3MgZXhjbHVzaW9uIGNyaXRlcmlhOiBjb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzLiBJIG5lZWQgdG8gY29uZmlybSB0aGF0IFdpLUZpIGRyaXZlcnMgYWxzbyBmYWxsIGludG8gdGhpcyBjYXRlZ29yeS4gVGhlIGV4YW1wbGUgZ2l2ZW4gaW4gdGhlIHByb21wdCwgdGhpbmdzIGxpa2UgYG1seHN3YCwgYHBkc19jb3JlYCwgYHFlZGAsIGBpb25pY2AsIGFuZCBgYW1kZ3B1YCwgdGhleSBhbGwgYXBwbHkgdG8gb3RoZXIgdmVuZG9yLXNwZWNpZmljIFBDSWUgaGFyZHdhcmUuIEFuZCB5ZXMsIFdpLUZpIGRyaXZlcnMgbGlrZSB0aGUgYG10NzZgIHNlcmllcyBhcmUgZXF1YWxseSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBoYXJkd2FyZS4KClNvLCB0aGUgcXVlc3Rpb24gaXMsICpjYW4qIHRoaXMgYmUgZnV6emVkIGF0IGFsbD8gSSBrbm93IGBzeXprYWxsZXJgIGhhcyBzb21lIGxldmVsIG9mIHN1cHBvcnQgZm9yIFdpLUZpIGZ1enppbmcsIG5hbWVseSB2aWEgYG1hYzgwMjExX2h3c2ltYCwgYnV0IHRoYXQgZm9jdXNlcyBvbiB0aGUgZ2VuZXJhbCBtYWM4MDIxMSBzdGFjay4gSXQgZG9lc24mIzM5O3Qgc2VlbSB0byB0YXJnZXQgdGhlc2Ugc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVycyBsaWtlIGBtdDc5OTZgIGRpcmVjdGx5LiBgc3l6a2FsbGVyYCAqZG9lcyogaGF2ZSBzb21lIHBzZXVkby1zeXNjYWxscyBsaWtlIGBzeXpfODAyMTFfLi4uYCwgYnV0IHRoZXNlIGFsc28gb3BlcmF0ZSBhdCB0aGUgaGlnaGVyIG1hYzgwMjExL2NmZzgwMjExIGxldmVscywgbm90IGRpcmVjdGx5IGludGVyYWN0aW5nIHdpdGggdGhlIGhhcmR3YXJlIGRyaXZlci4KClRoZW4sIHRoZXJlJiMzOTtzIHRoZSBVU0IgZnV6emluZyBpbiBzeXprYWxsZXIgKGR1bW15X2hjZCkgYW5kIFBDSSBmdXp6aW5nLCBidXQgaXRzIGNhcGFiaWxpdGllcyBhcmUgcXVpdGUgbGltaXRlZC4gSSByZWNhbGwgUENJIGZ1enppbmcgYXMgYmVpbmcgbGFyZ2VseSB1bnN1aXRhYmxlIGZvciB2ZW5kb3Itc3BlY2lmaWMgUENJIGRyaXZlcnMgdW5sZXNzIHRoZXkmIzM5O3JlIGV4cGxpY2l0bHkgc3VwcG9ydGVkIG9yIHdlIGFyZSBmdXp6aW5nIHRoZSBQQ0kgc3Vic3lzdGVtIGl0c2VsZi4gV2FpdCwgaXQgc2VlbXMgc3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6aW5nIGNhbiBwcm9iZSBhbnkgUENJIGRyaXZlciBieSBlbXVsYXRpbmcgUENJIGNvbmZpZyBzcGFjZS4KU28sIHN5emthbGxlciBkb2VzIG9mZmVyIGB2aGNpYCBmb3IgUENJLCBidXQgaXQmIzM5O3Mgbm90IHdpZGVseSB1c2VkLgoKT2theSwgbGV0JiMzOTtzIHJlLXJlYWQgdGhlIHByb21wdC4gSXQgZXhwbGljaXRseSBzdGF0ZXM6ICYjMzQ7UmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczogLi4uIC0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiYjMzQ7CgpTaW5jZSB0aGlzIGBtdDc5OTZgIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgV2ktRmkgY2FyZCwgYW5kIHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB0aGUgaW1tZWRpYXRlIGNvbmNsdXNpb24gaXMgYFdvcnRoRnV6emluZz1mYWxzZWAuIEkgbmVlZCB0byBiZSBjZXJ0YWluIHRoYXQgdGhlIGRyaXZlciBpcyBzdHJpY3RseSBQQ0kuCgpBIHF1aWNrIGNoZWNrIGNvbmZpcm1zIHRoaXMuIFRoZSBgTWFrZWZpbGVgIGZvciB0aGUgYG10Nzk5NmAgZHJpdmVyIGhhcyBlbnRyaWVzIGxpa2UgYHBjaS5vYCwgc28gaXQmIzM5O3MgY2xlYXJseSBQQ0llLgoKTGV0IG1lIGp1c3QgY2hlY2sgZm9yIG90aGVyIGNvZGUuIFRoZSBjaGFuZ2VzIGFyZSBjb25maW5lZCB0byBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jYCBhbmQgYG10Nzk5Ni5oYC4gSXQgYWRkcyBgbXQ3OTk2X3RoZXJtYWxfZ2V0X3RlbXBgLCBgbXQ3OTk2X3R6X29wc2AsIGFuZCByZWdpc3RlcnMgYSB0aGVybWFsIHpvbmUsIGFsbCBvZiB3aGljaCBhcmUgaGFyZHdhcmUtc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24gYW5kIHRoZXJtYWwgbWFuYWdlbWVudCBjb21wb25lbnRzLiBUaGlzIHRoZXJtYWwgem9uZSByZWdpc3RyYXRpb24gaXMgaGFyZHdhcmUtc3BlY2lmaWMsIGFuZCBJIGNhbm5vdCBzZWUgYSB3YXkgdG8gdHJpZ2dlciBpdCB3aXRob3V0IHRoZSBwaHlzaWNhbCBoYXJkd2FyZS4KClRoZXJlZm9yZSwgbXkgZmluYWwgY29uY2x1c2lvbiBpcyBgV29ydGhGdXp6aW5nPWZhbHNlYC4gVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYVRlayBNVDc5OTYgV2ktRmkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGRyaXZlci4gVGhpcyBjb2RlIHJlcXVpcmVzIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBhbmQgY2Fubm90IGJlIHJlYWNoZWQgaW4gdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTAgMTQ6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVkaWFUZWsgTVQ3OTk2IFdpLUZpIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBoYXJkd2FyZSBkcml2ZXIuIFRoaXMgY29kZSByZXF1aXJlcyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgYW5kIGNhbm5vdCBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIE1UNzk5NiBXaS1GaSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgaGFyZHdhcmUgZHJpdmVyLiBUaGlzIGNvZGUgcmVxdWlyZXMgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGFuZCBjYW5ub3QgYmUgcmVhY2hlZCBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTAgMTQ6Mzk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEwVDE0OjM5OjE0LjI4MjI4ODMxWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjY4MDY3MTU0NDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVkaWFUZWsgTVQ3OTk2IFdpLUZpIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBoYXJkd2FyZSBkcml2ZXIuIFRoaXMgY29kZSByZXF1aXJlcyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgYW5kIGNhbm5vdCBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTBUMTQ6Mzk6MTQuMjgyMjk1MDlaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYxMzc2MjQ4NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDNhMWIxOWJjNTViNWI1OTZlODg3YmZjNzI2MDJkZDY4NGFmMTlkNmJcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIE1vbiBBdWcgMTAgMTQ6Mzk6MTMgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jXFxuaW5kZXggZmI2MzVhMDkyNTg0MC4uNTI1YmI3NzFmNzhhNCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmNcXG5AQCAtMjM0LDExICsyMzQsMzMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0aGVybWFsX2Nvb2xpbmdfZGV2aWNlX29wcyBtdDc5OTZfdGhlcm1hbF9vcHMgPSB7XFxuIFxcdC5zZXRfY3VyX3N0YXRlID0gbXQ3OTk2X3RoZXJtYWxfc2V0X2N1cl90aHJvdHRsZV9zdGF0ZSxcXG4gfTtcXG4gXFxuK3N0YXRpYyBpbnQgbXQ3OTk2X3RoZXJtYWxfZ2V0X3RlbXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgKnRlbXApXFxuK3tcXG4rXFx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeSA9IHRoZXJtYWxfem9uZV9kZXZpY2VfcHJpdih0eik7XFxuK1xcdGludCB2YWw7XFxuK1xcbitcXHRtdXRleF9sb2NrKFxcdTAwMjZwaHktXFx1MDAzZWRldi1cXHUwMDNlbXQ3Ni5tdXRleCk7XFxuK1xcdHZhbCA9IG10Nzk5Nl9tY3VfZ2V0X3RlbXBlcmF0dXJlKHBoeSk7XFxuK1xcdG11dGV4X3VubG9jayhcXHUwMDI2cGh5LVxcdTAwM2VkZXYtXFx1MDAzZW10NzYubXV0ZXgpO1xcbitcXHRpZiAodmFsIFxcdTAwM2MgMClcXG4rXFx0XFx0cmV0dXJuIHZhbDtcXG4rXFxuK1xcdCp0ZW1wID0gdmFsICogMTAwMDtcXG4rXFx0cmV0dXJuIDA7XFxuK31cXG4rXFxuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZV9vcHMgbXQ3OTk2X3R6X29wcyA9IHtcXG4rXFx0LmdldF90ZW1wID0gbXQ3OTk2X3RoZXJtYWxfZ2V0X3RlbXAsXFxuK307XFxuK1xcbiBzdGF0aWMgdm9pZCBtdDc5OTZfdW5yZWdpc3Rlcl90aGVybWFsKHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkpXFxuIHtcXG4gXFx0c3RydWN0IHdpcGh5ICp3aXBoeSA9IHBoeS1cXHUwMDNlbXQ3Ni1cXHUwMDNlaHctXFx1MDAzZXdpcGh5O1xcbiBcXHRjaGFyIG5hbWVbc2l6ZW9mKFxcXCJjb29saW5nX2RldmljZVhYWFxcXCIpXTtcXG4gXFxuK1xcdGlmIChwaHktXFx1MDAzZXR6b25lKVxcbitcXHRcXHRkZXZtX3RoZXJtYWxfb2Zfem9uZV91bnJlZ2lzdGVyKHBoeS1cXHUwMDNlZGV2LVxcdTAwM2VtdDc2LmRldiwgcGh5LVxcdTAwM2V0em9uZSk7XFxuK1xcbiBcXHRpZiAoIXBoeS1cXHUwMDNlY2RldilcXG4gXFx0XFx0cmV0dXJuO1xcbiBcXG5AQCAtMjc1LDE0ICsyOTcsMjcgQEAgc3RhdGljIGludCBtdDc5OTZfdGhlcm1hbF9pbml0KHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkpXFxuIFxcdHBoeS1cXHUwMDNldGhyb3R0bGVfdGVtcFtNVDc5OTZfQ1JJVF9URU1QX0lEWF0gPSBNVDc5OTZfQ1JJVF9URU1QO1xcbiBcXHRwaHktXFx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTk2X01BWF9URU1QX0lEWF0gPSBNVDc5OTZfTUFYX1RFTVA7XFxuIFxcbitcXHRwaHktXFx1MDAzZXR6b25lID0gZGV2bV90aGVybWFsX29mX3pvbmVfcmVnaXN0ZXIocGh5LVxcdTAwM2VkZXYtXFx1MDAzZW10NzYuZGV2LFxcbitcXHRcXHRcXHRcXHRcXHRcXHQgICBwaHktXFx1MDAzZW10NzYtXFx1MDAzZWJhbmRfaWR4LCBwaHksXFxuK1xcdFxcdFxcdFxcdFxcdFxcdCAgIFxcdTAwMjZtdDc5OTZfdHpfb3BzKTtcXG4rXFx0aWYgKElTX0VSUihwaHktXFx1MDAzZXR6b25lKSkge1xcbitcXHRcXHRpZiAoUFRSX0VSUihwaHktXFx1MDAzZXR6b25lKSAhPSAtRU5PREVWKVxcbitcXHRcXHRcXHRkZXZfd2FybihwaHktXFx1MDAzZWRldi1cXHUwMDNlbXQ3Ni5kZXYsXFxuK1xcdFxcdFxcdFxcdCBcXFwiZmFpbGVkIHRvIHJlZ2lzdGVyIHRoZXJtYWwgem9uZSAlZDogJWxkXFxcXG5cXFwiLFxcbitcXHRcXHRcXHRcXHQgcGh5LVxcdTAwM2VtdDc2LVxcdTAwM2ViYW5kX2lkeCwgUFRSX0VSUihwaHktXFx1MDAzZXR6b25lKSk7XFxuK1xcdFxcdHBoeS1cXHUwMDNldHpvbmUgPSBOVUxMO1xcbitcXHR9XFxuK1xcbiBcXHRpZiAoIUlTX1JFQUNIQUJMRShDT05GSUdfSFdNT04pKVxcbiBcXHRcXHRyZXR1cm4gMDtcXG4gXFxuIFxcdGh3bW9uID0gZGV2bV9od21vbl9kZXZpY2VfcmVnaXN0ZXJfd2l0aF9ncm91cHMoXFx1MDAyNndpcGh5LVxcdTAwM2VkZXYsIG5hbWUsIHBoeSxcXG4gXFx0XFx0XFx0XFx0XFx0XFx0ICAgICAgIG10Nzk5Nl9od21vbl9ncm91cHMpO1xcbiBcXG4tXFx0aWYgKElTX0VSUihod21vbikpXFxuK1xcdGlmIChJU19FUlIoaHdtb24pKSB7XFxuK1xcdFxcdG10Nzk5Nl91bnJlZ2lzdGVyX3RoZXJtYWwocGh5KTtcXG4gXFx0XFx0cmV0dXJuIFBUUl9FUlIoaHdtb24pO1xcbitcXHR9XFxuIFxcbiBcXHRyZXR1cm4gMDtcXG4gfVxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oXFxuaW5kZXggMmEwY2RiNTZmODIyZS4uMzlmYTI1YTU2MmU1ZSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaFxcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oXFxuQEAgLTM3Miw2ICszNzIsNyBAQCBzdHJ1Y3QgbXQ3OTk2X3BoeSB7XFxuIFxcbiBcXHRzdHJ1Y3QgaWVlZTgwMjExX3NiYW5kX2lmdHlwZV9kYXRhIGlmdHlwZVtOVU1fTkw4MDIxMV9CQU5EU11bTlVNX05MODAyMTFfSUZUWVBFU107XFxuIFxcbitcXHRzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHpvbmU7XFxuIFxcdHN0cnVjdCB0aGVybWFsX2Nvb2xpbmdfZGV2aWNlICpjZGV2O1xcbiBcXHR1OCBjZGV2X3N0YXRlO1xcbiBcXHR1OCB0aHJvdHRsZV9zdGF0ZTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTBUMTQ6Mzk6MTQuODk3MTU0NjY2WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MjYxOTE4MzY2MjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYVRlayBNVDc5OTYgV2ktRmkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGRyaXZlci4gVGhpcyBjb2RlIHJlcXVpcmVzIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBhbmQgY2Fubm90IGJlIHJlYWNoZWQgaW4gdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAzYTFiMTliYzU1YjViNTk2ZTg4N2JmYzcyNjAyZGQ2ODRhZjE5ZDZiXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMTAgMTQ6Mzk6MTMgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmNcbmluZGV4IGZiNjM1YTA5MjU4NDAuLjUyNWJiNzcxZjc4YTQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuY1xuQEAgLTIzNCwxMSArMjM0LDMzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZV9vcHMgbXQ3OTk2X3RoZXJtYWxfb3BzID0ge1xuIFx0LnNldF9jdXJfc3RhdGUgPSBtdDc5OTZfdGhlcm1hbF9zZXRfY3VyX3Rocm90dGxlX3N0YXRlLFxuIH07XG4gXG4rc3RhdGljIGludCBtdDc5OTZfdGhlcm1hbF9nZXRfdGVtcChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHosIGludCAqdGVtcClcbit7XG4rXHRzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5ID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6KTtcbitcdGludCB2YWw7XG4rXG4rXHRtdXRleF9sb2NrKFx1MDAyNnBoeS1cdTAwM2VkZXYtXHUwMDNlbXQ3Ni5tdXRleCk7XG4rXHR2YWwgPSBtdDc5OTZfbWN1X2dldF90ZW1wZXJhdHVyZShwaHkpO1xuK1x0bXV0ZXhfdW5sb2NrKFx1MDAyNnBoeS1cdTAwM2VkZXYtXHUwMDNlbXQ3Ni5tdXRleCk7XG4rXHRpZiAodmFsIFx1MDAzYyAwKVxuK1x0XHRyZXR1cm4gdmFsO1xuK1xuK1x0KnRlbXAgPSB2YWwgKiAxMDAwO1xuK1x0cmV0dXJuIDA7XG4rfVxuK1xuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZV9vcHMgbXQ3OTk2X3R6X29wcyA9IHtcbitcdC5nZXRfdGVtcCA9IG10Nzk5Nl90aGVybWFsX2dldF90ZW1wLFxuK307XG4rXG4gc3RhdGljIHZvaWQgbXQ3OTk2X3VucmVnaXN0ZXJfdGhlcm1hbChzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxuIHtcbiBcdHN0cnVjdCB3aXBoeSAqd2lwaHkgPSBwaHktXHUwMDNlbXQ3Ni1cdTAwM2Vody1cdTAwM2V3aXBoeTtcbiBcdGNoYXIgbmFtZVtzaXplb2YoXCJjb29saW5nX2RldmljZVhYWFwiKV07XG4gXG4rXHRpZiAocGh5LVx1MDAzZXR6b25lKVxuK1x0XHRkZXZtX3RoZXJtYWxfb2Zfem9uZV91bnJlZ2lzdGVyKHBoeS1cdTAwM2VkZXYtXHUwMDNlbXQ3Ni5kZXYsIHBoeS1cdTAwM2V0em9uZSk7XG4rXG4gXHRpZiAoIXBoeS1cdTAwM2VjZGV2KVxuIFx0XHRyZXR1cm47XG4gXG5AQCAtMjc1LDE0ICsyOTcsMjcgQEAgc3RhdGljIGludCBtdDc5OTZfdGhlcm1hbF9pbml0KHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkpXG4gXHRwaHktXHUwMDNldGhyb3R0bGVfdGVtcFtNVDc5OTZfQ1JJVF9URU1QX0lEWF0gPSBNVDc5OTZfQ1JJVF9URU1QO1xuIFx0cGh5LVx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTk2X01BWF9URU1QX0lEWF0gPSBNVDc5OTZfTUFYX1RFTVA7XG4gXG4rXHRwaHktXHUwMDNldHpvbmUgPSBkZXZtX3RoZXJtYWxfb2Zfem9uZV9yZWdpc3RlcihwaHktXHUwMDNlZGV2LVx1MDAzZW10NzYuZGV2LFxuK1x0XHRcdFx0XHRcdCAgIHBoeS1cdTAwM2VtdDc2LVx1MDAzZWJhbmRfaWR4LCBwaHksXG4rXHRcdFx0XHRcdFx0ICAgXHUwMDI2bXQ3OTk2X3R6X29wcyk7XG4rXHRpZiAoSVNfRVJSKHBoeS1cdTAwM2V0em9uZSkpIHtcbitcdFx0aWYgKFBUUl9FUlIocGh5LVx1MDAzZXR6b25lKSAhPSAtRU5PREVWKVxuK1x0XHRcdGRldl93YXJuKHBoeS1cdTAwM2VkZXYtXHUwMDNlbXQ3Ni5kZXYsXG4rXHRcdFx0XHQgXCJmYWlsZWQgdG8gcmVnaXN0ZXIgdGhlcm1hbCB6b25lICVkOiAlbGRcXG5cIixcbitcdFx0XHRcdCBwaHktXHUwMDNlbXQ3Ni1cdTAwM2ViYW5kX2lkeCwgUFRSX0VSUihwaHktXHUwMDNldHpvbmUpKTtcbitcdFx0cGh5LVx1MDAzZXR6b25lID0gTlVMTDtcbitcdH1cbitcbiBcdGlmICghSVNfUkVBQ0hBQkxFKENPTkZJR19IV01PTikpXG4gXHRcdHJldHVybiAwO1xuIFxuIFx0aHdtb24gPSBkZXZtX2h3bW9uX2RldmljZV9yZWdpc3Rlcl93aXRoX2dyb3VwcyhcdTAwMjZ3aXBoeS1cdTAwM2VkZXYsIG5hbWUsIHBoeSxcbiBcdFx0XHRcdFx0XHQgICAgICAgbXQ3OTk2X2h3bW9uX2dyb3Vwcyk7XG4gXG4tXHRpZiAoSVNfRVJSKGh3bW9uKSlcbitcdGlmIChJU19FUlIoaHdtb24pKSB7XG4rXHRcdG10Nzk5Nl91bnJlZ2lzdGVyX3RoZXJtYWwocGh5KTtcbiBcdFx0cmV0dXJuIFBUUl9FUlIoaHdtb24pO1xuK1x0fVxuIFxuIFx0cmV0dXJuIDA7XG4gfVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmhcbmluZGV4IDJhMGNkYjU2ZjgyMmUuLjM5ZmEyNWE1NjJlNWUgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmhcbkBAIC0zNzIsNiArMzcyLDcgQEAgc3RydWN0IG10Nzk5Nl9waHkge1xuIFxuIFx0c3RydWN0IGllZWU4MDIxMV9zYmFuZF9pZnR5cGVfZGF0YSBpZnR5cGVbTlVNX05MODAyMTFfQkFORFNdW05VTV9OTDgwMjExX0lGVFlQRVNdO1xuIFxuK1x0c3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6b25lO1xuIFx0c3RydWN0IHRoZXJtYWxfY29vbGluZ19kZXZpY2UgKmNkZXY7XG4gXHR1OCBjZGV2X3N0YXRlO1xuIFx0dTggdGhyb3R0bGVfc3RhdGU7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMFQxNDozOToxNC44OTcxNTYzODZaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NTU2NjY1NjgyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFRoZXJtYWwgUGF0Y2ggZm9yIHRoZSBNVDc5OTYgV2ktRmkgRHJpdmVyKipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyBwYXRjaCDigJMgc2VlbXMgbGlrZSBpdCdzIHRvdWNoaW5nIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmNgLiBJbnRlcmVzdGluZywgdGhleSdyZSBhZGRpbmcgYG10Nzk5Nl90aGVybWFsX2dldF90ZW1wYCwgYG10Nzk5Nl90el9vcHNgLCBhbmQgcmVnaXN0ZXJpbmcgYSB0aGVybWFsIHpvbmUgdXNpbmcgYGRldm1fdGhlcm1hbF9vZl96b25lX3JlZ2lzdGVyYC4gU3RhbmRhcmQgdGhlcm1hbCBtYW5hZ2VtZW50IHN0dWZmLCBub3RoaW5nIGltbWVkaWF0ZWx5IGFsYXJtaW5nLiBUaGV5IGFsc28gaGF2ZSBhIGNsZWFudXAgZnVuY3Rpb24sIGBtdDc5OTZfdW5yZWdpc3Rlcl90aGVybWFsYCwgd2hpY2ggaXMgZ29vZCB0byBzZWUg4oCTIGVuc3VyZXMgYSBjbGVhbiB1bnJlZ2lzdHJhdGlvbiBvbiBtb2R1bGUgdW5sb2FkIG9yIGRyaXZlciBkZXRhY2htZW50LiBUaGUgZHJpdmVyIGluIHF1ZXN0aW9uIGlzIGBtdDc5OTZgLCBNZWRpYVRlaydzIFdpLUZpIGRyaXZlciwgd2hpY2ggaXMgZmFtaWxpYXIgdGVycml0b3J5LlxuXG5UaGUgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzOiB3aGF0IGtpbmQgb2YgdGFyZ2V0IGFyZSB3ZSBkZWFsaW5nIHdpdGggaGVyZT8gSXMgdGhpcyBhIFBDSWUgY2FyZCwgb3Igc29tZXRoaW5nIHRoYXQgSSBtaWdodCBhY3R1YWxseSBiZSBhYmxlIHRvIGZ1enogd2l0aGluIFFFTVU/IEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBkcml2ZXIncyB1bmRlcmx5aW5nIGhhcmR3YXJlIHBsYXRmb3JtLiBNZWRpYVRlaydzIE1UNzk5NiBpcyBhIFdpLUZpIDcgY2hpcCwgc28gaXQncyBhIHByZXR0eSBzYWZlIGJldCB0aGF0IGl0J3MgYSBQQ0llIGRldmljZS5cblxuSSBzaG91bGQgcHJvYmFibHkgY29uZmlybSB0aGF0IGJ5IGNoZWNraW5nIG91dCB0aGUgcmVsZXZhbnQgc291cmNlIGZpbGVzIOKAkyBtYXliZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmNgIG9yIHNvbWV0aGluZyBzaW1pbGFyLCBmb3IgdGhhdCBQQ0ktc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24gbG9naWMuIExldCdzIHNlZSBpZiB3ZSBjYW4gZ2V0IGEgY2xlYXJlciBwaWN0dXJlIG9mIGhvdyB0aGlzIGRyaXZlciBpbnRlcmFjdHMgd2l0aCB0aGUgaGFyZHdhcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwMDEsIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMDIsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMFQxNDozOToyMC40NTM4MjU1MDhaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDY2Mzk1ODUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3OTk2XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDY2MzkgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfTVQ3OTk2RSkgKz0gbXQ3OTk2ZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGUtNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTo1Om10Nzk5NmUteSA6PSBwY2kubyBpbml0Lm8gZG1hLm8gZWVwcm9tLm8gbWFpbi5vIG1jdS5vIG1hYy5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS02LVxcdCAgICAgZGVidWdmcy5vIG1taW8ub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU6ODptdDc5OTZlLSQoQ09ORklHX01UNzk5Nl9OUFUpICs9IG5wdS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU6OTptdDc5OTZlLSQoQ09ORklHX0RFVl9DT1JFRFVNUCkgKz0gY29yZWR1bXAub1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYz0xMj1NT0RVTEVfUEFSTV9ERVNDKGNvcmVkdW1wX21lbWR1bXAsIFxcXCJPcHRpb25hbCBhYmlsaXR5IHRvIGR1bXAgZmlybXdhcmUgbWVtb3J5XFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE0OnN0YXRpYyBjb25zdCBzdHJ1Y3QgbXQ3OTk2X21lbV9yZWdpb24gbXQ3OTk2X21lbV9yZWdpb25zW10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xNS1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTQ2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NDc6Y29uc3Qgc3RydWN0IG10Nzk5Nl9tZW1fcmVnaW9uKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NDg6bXQ3OTk2X2NvcmVkdW1wX2dldF9tZW1fbGF5b3V0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHUzMiAqbnVtKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNDkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy01Mi1cXHRjYXNlIE1UNzk5Nl9ERVZJQ0VfSURfMjpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjUzOlxcdFxcdCpudW0gPSBBUlJBWV9TSVpFKG10Nzk5Nl9tZW1fcmVnaW9ucyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo1NDpcXHRcXHRyZXR1cm4gXFx1MDAyNm10Nzk5Nl9tZW1fcmVnaW9uc1swXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTU1LVxcdGRlZmF1bHQ6XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTU5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NjA6c3RhdGljIGludCBtdDc5OTZfY29yZWR1bXBfZ2V0X21lbV9zaXplKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy02MS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo2MjpcXHRjb25zdCBzdHJ1Y3QgbXQ3OTk2X21lbV9yZWdpb24gKm1lbV9yZWdpb247XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy02My1cXHRzaXplX3Qgc2l6ZSA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6Njc6XFx0bWVtX3JlZ2lvbiA9IG10Nzk5Nl9jb3JlZHVtcF9nZXRfbWVtX2xheW91dChkZXYsIFxcdTAwMjZudW0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNjgtXFx0aWYgKCFtZW1fcmVnaW9uKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy03Ni1cXHQvKiByZXNlcnZlIHNwYWNlIGZvciB0aGUgaGVhZGVycyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6Nzc6XFx0c2l6ZSArPSBudW0gKiBzaXplb2Yoc3RydWN0IG10Nzk5Nl9tZW1faGRyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTc4LVxcdC8qIG1ha2Ugc3VyZSBpdCBpcyBhbGlnbmVkIDQgYnl0ZXMgZm9yIGRlYnVnIG1lc3NhZ2UgcHJpbnQgb3V0ICovXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTgzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6ODQ6c3RydWN0IG10Nzk5Nl9jcmFzaF9kYXRhICptdDc5OTZfY29yZWR1bXBfbmV3KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy04NS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo4NjpcXHRzdHJ1Y3QgbXQ3OTk2X2NyYXNoX2RhdGEgKmNyYXNoX2RhdGEgPSBkZXYtXFx1MDAzZWNvcmVkdW1wLmNyYXNoX2RhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy04Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM9MTAwPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxMDE6bXQ3OTk2X2NvcmVkdW1wX2Z3X3N0YXRlKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHN0cnVjdCBtdDc5OTZfY29yZWR1bXAgKmR1bXAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xMDItXFx0XFx0XFx0IGJvb2wgKmV4Y2VwdGlvbilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM9MTE3PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxMTg6bXQ3OTk2X2NvcmVkdW1wX2Z3X3N0YWNrKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHN0cnVjdCBtdDc5OTZfY29yZWR1bXAgKmR1bXAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xMTktXFx0XFx0XFx0IGJvb2wgZXhjZXB0aW9uKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xNjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxNjI6c3RhdGljIHN0cnVjdCBtdDc5OTZfY29yZWR1bXAgKm10Nzk5Nl9jb3JlZHVtcF9idWlsZChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTYzLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE2NDpcXHRzdHJ1Y3QgbXQ3OTk2X2NyYXNoX2RhdGEgKmNyYXNoX2RhdGEgPSBkZXYtXFx1MDAzZWNvcmVkdW1wLmNyYXNoX2RhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxNjU6XFx0c3RydWN0IG10Nzk5Nl9jb3JlZHVtcCAqZHVtcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE2NjpcXHRzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wX21lbSAqZHVtcF9tZW07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xNjctXFx0c2l6ZV90IGxlbiwgc29mYXIgPSAwLCBoZHJfbGVuID0gc2l6ZW9mKCpkdW1wKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTg2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MTg3OlxcdGR1bXAgPSAoc3RydWN0IG10Nzk5Nl9jb3JlZHVtcCAqKShidWYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTg4LVxcdGR1bXAtXFx1MDAzZWxlbiA9IGxlbjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjAwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjAxOlxcdG10Nzk5Nl9jb3JlZHVtcF9md19zdGF0ZShkZXYsIGR1bXAsIFxcdTAwMjZleGNlcHRpb24pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjAyOlxcdG10Nzk5Nl9jb3JlZHVtcF9md19zdGFjayhkZXYsIGR1bXAsIGV4Y2VwdGlvbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMDQtXFx0LyogZ2F0aGVyIG1lbW9yeSBjb250ZW50ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyMDU6XFx0ZHVtcF9tZW0gPSAoc3RydWN0IG10Nzk5Nl9jb3JlZHVtcF9tZW0gKikoYnVmICsgc29mYXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjA2LVxcdGR1bXBfbWVtLVxcdTAwM2VsZW4gPSBjcmFzaF9kYXRhLVxcdTAwM2VtZW1kdW1wX2J1Zl9sZW47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIxNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIxNjppbnQgbXQ3OTk2X2NvcmVkdW1wX3N1Ym1pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjE3LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIxODpcXHRzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wICpkdW1wO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjE5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjIwOlxcdGR1bXAgPSBtdDc5OTZfY29yZWR1bXBfYnVpbGQoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIyMS1cXHRpZiAoIWR1bXApIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjMwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjMxOmludCBtdDc5OTZfY29yZWR1bXBfcmVnaXN0ZXIoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIzMi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyMzM6XFx0c3RydWN0IG10Nzk5Nl9jcmFzaF9kYXRhICpjcmFzaF9kYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjM0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yNDEtXFx0aWYgKGNvcmVkdW1wX21lbWR1bXApIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjI0MjpcXHRcXHRjcmFzaF9kYXRhLVxcdTAwM2VtZW1kdW1wX2J1Zl9sZW4gPSBtdDc5OTZfY29yZWR1bXBfZ2V0X21lbV9zaXplKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yNDMtXFx0XFx0aWYgKCFjcmFzaF9kYXRhLVxcdTAwM2VtZW1kdW1wX2J1Zl9sZW4pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTI1Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjI1Nzp2b2lkIG10Nzk5Nl9jb3JlZHVtcF91bnJlZ2lzdGVyKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yNTgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC02LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NzojaW5jbHVkZSBcXFwibXQ3OTk2LmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC04LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6OTpzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTEwLVxcdGNoYXIgbWFnaWNbMTZdO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC0zOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjQwOnN0cnVjdCBtdDc5OTZfY29yZWR1bXBfbWVtIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTQxLVxcdHUzMiBsZW47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NDU6c3RydWN0IG10Nzk5Nl9tZW1faGRyIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTQ2LVxcdHUzMiBzdGFydDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo1MTpzdHJ1Y3QgbXQ3OTk2X21lbV9yZWdpb24ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNTItXFx0dTMyIHN0YXJ0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC01OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjYwOmNvbnN0IHN0cnVjdCBtdDc5OTZfbWVtX3JlZ2lvbiAqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo2MTptdDc5OTZfY29yZWR1bXBfZ2V0X21lbV9sYXlvdXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgdTMyICpudW0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NjI6c3RydWN0IG10Nzk5Nl9jcmFzaF9kYXRhICptdDc5OTZfY29yZWR1bXBfbmV3KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NjM6aW50IG10Nzk5Nl9jb3JlZHVtcF9zdWJtaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo2NDppbnQgbXQ3OTk2X2NvcmVkdW1wX3JlZ2lzdGVyKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NjU6dm9pZCBtdDc5OTZfY29yZWR1bXBfdW5yZWdpc3RlcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTY2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC02OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjY5OnN0YXRpYyBpbmxpbmUgY29uc3Qgc3RydWN0IG10Nzk5Nl9tZW1fcmVnaW9uICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjcwOm10Nzk5Nl9jb3JlZHVtcF9nZXRfbWVtX2xheW91dChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCB1MzIgKm51bSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTcxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo3NTpzdGF0aWMgaW5saW5lIGludCBtdDc5OTZfY29yZWR1bXBfc3VibWl0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC03Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oPTgwPXN0YXRpYyBpbmxpbmUgc3RydWN0XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo4MTptdDc5OTZfY3Jhc2hfZGF0YSAqbXQ3OTk2X2NvcmVkdW1wX25ldyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtODIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC04NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjg2OnN0YXRpYyBpbmxpbmUgaW50IG10Nzk5Nl9jb3JlZHVtcF9yZWdpc3RlcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtODcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC05MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjkxOnN0YXRpYyBpbmxpbmUgdm9pZCBtdDc5OTZfY29yZWR1bXBfdW5yZWdpc3RlcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtOTIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTYtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3JlbGF5LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc6I2luY2x1ZGUgXFxcIm10Nzk5Ni5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04LSNpbmNsdWRlIFxcXCJlZXByb20uaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0yMz1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI0Om10Nzk5Nl9pbXBsaWNpdF90eGJmX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI2OlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzM6XFx0cmV0dXJuIG10Nzk5Nl9tY3Vfc2V0X3R4YmYoZGV2LCBCRl9IV19FTl9VUERBVEUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MzY9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNzptdDc5OTZfaW1wbGljaXRfdHhiZl9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Mzk6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NjpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19pbXBsaWNpdF90eGJmLCBtdDc5OTZfaW1wbGljaXRfdHhiZl9nZXQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ3OlxcdFxcdFxcdCBtdDc5OTZfaW1wbGljaXRfdHhiZl9zZXQsIFxcXCIlbGxkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NTA9c3RhdGljIHNzaXplX3RcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTE6bXQ3OTk2X3N5c19yZWNvdmVyeV9zZXQoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgX191c2VyICp1c2VyX2J1ZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTItXFx0XFx0XFx0c2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTUzLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTQ6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGZpbGUtXFx1MDAzZXByaXZhdGVfZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTUtXFx0Y2hhciBidWZbMTZdLCAqc2VwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkxLVxcdGNhc2UgVU5JX0NNRF9TRVJfUVVFUlk6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjkyOlxcdFxcdHJldCA9IG10Nzk5Nl9tY3Vfc2V0X3NlcihkZXYsIFVOSV9DTURfU0VSX1FVRVJZLCAwLCBiYW5kKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTMtXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTAwLVxcdGNhc2UgVU5JX0NNRF9TRVJfU0VUX1JFQ09WRVJfTDRfTURQOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoxMDE6XFx0XFx0cmV0ID0gbXQ3OTk2X21jdV9zZXRfc2VyKGRldiwgVU5JX0NNRF9TRVJfU0VULCBCSVQodmFsKSwgYmFuZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEwMi1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEwNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTA1OlxcdFxcdHJldCA9IG10Nzk5Nl9tY3Vfc2V0X3NlcihkZXYsIFVOSV9DTURfU0VSX1RSSUdHRVIsIHZhbCwgYmFuZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEwNi1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMTEtXFx0XFx0ZGV2LVxcdTAwM2VyZWNvdmVyeS5zdGF0ZSB8PSBNVF9NQ1VfQ01EX1dEVF9NQVNLO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoxMTI6XFx0XFx0bXQ3OTk2X3Jlc2V0KGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTExMy1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMTYtXFx0Y2FzZSBVTklfQ01EX1NFUl9TRVRfU1lTVEVNX0FTU0VSVDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTE3OlxcdFxcdHJldCA9IG10Nzk5Nl9tY3VfdHJpZ2dlcl9hc3NlcnQoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTE4LVxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MTI4PXN0YXRpYyBzc2l6ZV90XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjEyOTptdDc5OTZfc3lzX3JlY292ZXJ5X2dldChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKnVzZXJfYnVmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMzAtXFx0XFx0XFx0c2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEzMS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjEzMjpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZmlsZS1cXHUwMDNlcHJpdmF0ZV9kYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMzMtXFx0Y2hhciAqYnVmZjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yMTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjIxNTpzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBtdDc5OTZfc3lzX3JlY292ZXJ5X29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjE2OlxcdC53cml0ZSA9IG10Nzk5Nl9zeXNfcmVjb3Zlcnlfc2V0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyMTc6XFx0LnJlYWQgPSBtdDc5OTZfc3lzX3JlY292ZXJ5X2dldCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjE4LVxcdC5vcGVuID0gc2ltcGxlX29wZW4sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MjIyPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjIzOm10Nzk5Nl9yYWRhcl90cmlnZ2VyKHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTIyNC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjI2LSNkZWZpbmUgUkFEQVJfQkFDS0dST1VORFxcdDJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjI3OlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyMjg6XFx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeSA9IG10Nzk5Nl9iYW5kX3BoeShkZXYsIE5MODAyMTFfQkFORF81R0haKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjI5LVxcdHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiAqY2hhbmRlZjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI0ODpcXHRyZGRfaWR4ID0gbXQ3OTk2X2dldF9yZGRfaWR4KHBoeSwgdmFsID09IFJBREFSX0JBQ0tHUk9VTkQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNDktXFx0aWYgKHJkZF9pZHggXFx1MDAzYyAwKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjU4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyNTk6XFx0cmV0dXJuIG10Nzk5Nl9tY3VfcmRkX2NtZChkZXYsIFJERF9SQURBUl9FTVVMQVRFLCByZGRfaWR4LCAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjYwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0yNjI9REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfcmFkYXJfdHJpZ2dlciwgTlVMTCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjYzOlxcdFxcdFxcdCBtdDc5OTZfcmFkYXJfdHJpZ2dlciwgXFxcIiVsbGRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTI2NT1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI2NjptdDc5OTZfcmRkX21vbml0b3Ioc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNjcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyNjg6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRldl9nZXRfZHJ2ZGF0YShzLVxcdTAwM2Vwcml2YXRlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjY5LVxcdHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiAqY2hhbmRlZiA9IFxcdTAwMjZkZXYtXFx1MDAzZXJkZDJfY2hhbmRlZjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0zMTI9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozMTM6bXQ3OTk2X2Z3X2RlYnVnX3dtX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zMTQte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozMTU6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTMxNi1cXHRlbnVtIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zMzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjMzODpcXHRyZXQgPSBtdDc5OTZfbWN1X2Z3X2xvZ18yX2hvc3QoZGV2LCBNQ1VfRldfTE9HX1dNLCB2YWwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zMzktXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM1MTpcXHRcXHRyZXQgPSBtdDc5OTZfbWN1X2Z3X2RiZ19jdHJsKGRldiwgZGVidWcsIHZhbCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM1Mi1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTM1OT1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM2MDptdDc5OTZfZndfZGVidWdfd21fZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNjEte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNjI6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM2My1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM2OTpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19md19kZWJ1Z193bSwgbXQ3OTk2X2Z3X2RlYnVnX3dtX2dldCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzcwOlxcdFxcdFxcdCBtdDc5OTZfZndfZGVidWdfd21fc2V0LCBcXFwiJWxsZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM3MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MzcyPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzczOm10Nzk5Nl9md19kZWJ1Z193YV9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzc0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Mzc1OlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNzYtXFx0aW50IHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM4MDpcXHRyZXQgPSBtdDc5OTZfbWN1X2Z3X2xvZ18yX2hvc3QoZGV2LCBNQ1VfRldfTE9HX1dBLCBkZXYtXFx1MDAzZWZ3X2RlYnVnX3dhKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzgxLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzgzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozODQ6XFx0cmV0dXJuIG10Nzk5Nl9tY3Vfd2FfY21kKGRldiwgTUNVX1dBX1BBUkFNX0NNRChTRVQpLCBNQ1VfV0FfUEFSQU1fUERNQV9SWCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzg1LVxcdFxcdFxcdFxcdCAhIWRldi1cXHUwMDNlZndfZGVidWdfd2EsIDApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTM4OD1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM4OTptdDc5OTZfZndfZGVidWdfd2FfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zOTAte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozOTE6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM5Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zOTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM5ODpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19md19kZWJ1Z193YSwgbXQ3OTk2X2Z3X2RlYnVnX3dhX2dldCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Mzk5OlxcdFxcdFxcdCBtdDc5OTZfZndfZGVidWdfd2Ffc2V0LCBcXFwiJWxsZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQwMC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz00MjU9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0MjY6bXQ3OTk2X2Z3X2RlYnVnX2Jpbl9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDI3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00MzEtXFx0fTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDMyOlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00MzMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDQzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NDQ6XFx0cmV0dXJuIG10Nzk5Nl9md19kZWJ1Z193bV9zZXQoZGV2LCBkZXYtXFx1MDAzZWZ3X2RlYnVnX3dtKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDQ1LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz00NDc9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NDg6bXQ3OTk2X2Z3X2RlYnVnX2Jpbl9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ0OS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ1MDpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDUxLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ1Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDU3OkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX2Z3X2RlYnVnX2JpbiwgbXQ3OTk2X2Z3X2RlYnVnX2Jpbl9nZXQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ1ODpcXHRcXHRcXHQgbXQ3OTk2X2Z3X2RlYnVnX2Jpbl9zZXQsIFxcXCIlbGxkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDU5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz00NjA9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NjE6bXQ3OTk2X2Z3X3V0aWxfd2Ffc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIHZvaWQgKmRhdGEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ2Mi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ2MzpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZmlsZS1cXHUwMDNlcHJpdmF0ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDY0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NjUtXFx0aWYgKGRldi1cXHUwMDNlZndfZGVidWdfd2EpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ2NjpcXHRcXHRyZXR1cm4gbXQ3OTk2X21jdV93YV9jbWQoZGV2LCBNQ1VfV0FfUEFSQU1fQ01EKFFVRVJZKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDY3LVxcdFxcdFxcdFxcdFxcdCBNQ1VfV0FfUEFSQU1fQ1BVX1VUSUwsIDAsIDApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ3MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDcyOkRFRklORV9TSE9XX0FUVFJJQlVURShtdDc5OTZfZndfdXRpbF93YSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ3My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NDc0PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ3NTptdDc5OTZfYW1wZHVfc3RhdF9yZWFkX3BoeShzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LCBzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ3Ni17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ3NzpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gcGh5LVxcdTAwM2VkZXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ3OC1cXHRpbnQgYm91bmRbMTVdLCByYW5nZVs4XSwgaTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz01MDQ9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTA1Om10Nzk5Nl90eGJmX3N0YXRfcmVhZF9waHkoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSwgc3RydWN0IHNlcV9maWxlICpzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01MDYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTU1Mj1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1NTM6bXQ3OTk2X3R4X3N0YXRzX3Nob3dfcGh5KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgc3RydWN0IG10Nzk5Nl9waHkgKnBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTU0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01NTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU1OTpcXHRtdDc5OTZfbWFjX3VwZGF0ZV9zdGF0cyhwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1NjA6XFx0bXQ3OTk2X2FtcGR1X3N0YXRfcmVhZF9waHkocGh5LCBmaWxlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTYxLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU2OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTY5OlxcdG10Nzk5Nl90eGJmX3N0YXRfcmVhZF9waHkocGh5LCBmaWxlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTcwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTU4ND1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU4NTptdDc5OTZfdHhfc3RhdHNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIHZvaWQgKmRhdGEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU4Ni17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU4NzpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZmlsZS1cXHUwMDNlcHJpdmF0ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTg4OlxcdHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkgPSBcXHUwMDI2ZGV2LVxcdTAwM2VwaHk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU4OS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01OTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU5MjpcXHRtdDc5OTZfdHhfc3RhdHNfc2hvd19waHkoZmlsZSwgcGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTkzOlxcdHBoeSA9IG10Nzk5Nl9waHkyKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU5NC1cXHRpZiAocGh5KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1OTU6XFx0XFx0bXQ3OTk2X3R4X3N0YXRzX3Nob3dfcGh5KGZpbGUsIHBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU5NjpcXHRwaHkgPSBtdDc5OTZfcGh5MyhkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01OTctXFx0aWYgKHBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTk4OlxcdFxcdG10Nzk5Nl90eF9zdGF0c19zaG93X3BoeShmaWxlLCBwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01OTktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjA0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2MDU6REVGSU5FX1NIT1dfQVRUUklCVVRFKG10Nzk5Nl90eF9zdGF0cyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTYwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NjA3PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjYwODptdDc5OTZfaHdfcXVldWVfcmVhZChzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHUzMiBzaXplLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02MDktXFx0XFx0ICAgICBjb25zdCBzdHJ1Y3QgaHdfcXVldWVfbWFwICptYXApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTYxMC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjYxMTpcXHRzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5ID0gcy1cXHUwMDNlcHJpdmF0ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjEyOlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBwaHktXFx1MDAzZWRldjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjEzLVxcdHUzMiBpLCB2YWw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NjM4PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjYzOTptdDc5OTZfc3RhX2h3X3F1ZXVlX3JlYWQodm9pZCAqZGF0YSwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjQwLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjQxOlxcdHN0cnVjdCBtdDc5OTZfc3RhICptc3RhID0gKHN0cnVjdCBtdDc5OTZfc3RhICopc3RhLVxcdTAwM2VkcnZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjQyOlxcdHN0cnVjdCBtdDc5OTZfdmlmICptdmlmID0gbXN0YS1cXHUwMDNldmlmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2NDM6XFx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeSA9IG10Nzk5Nl92aWZfbGlua19waHkoXFx1MDAyNm12aWYtXFx1MDAzZWRlZmxpbmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NDQtXFx0c3RydWN0IGllZWU4MDIxMV9saW5rX3N0YSAqbGlua19zdGE7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjQ2LVxcdHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY0NzpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NDgtXFx0dW5zaWduZWQgaW50IGxpbmtfaWQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjU4LVxcdGZvcl9lYWNoX3N0YV9hY3RpdmVfbGluayh2aWYsIHN0YSwgbGlua19zdGEsIGxpbmtfaWQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjU5OlxcdFxcdHN0cnVjdCBtdDc5OTZfc3RhX2xpbmsgKm1zdGFfbGluaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjYwLVxcdFxcdHN0cnVjdCBtdDc2X3ZpZl9saW5rICptbGluaztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY2NzpcXHRcXHRtc3RhX2xpbmsgPSBtdDc5OTZfc3RhX2xpbmsobXN0YSwgbGlua19pZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY2OC1cXHRcXHRpZiAoIW1zdGFfbGluaylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz02OTQ9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2OTU6bXQ3OTk2X2h3X3F1ZXVlc19zaG93KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgdm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjk2LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Njk3OlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBmaWxlLVxcdTAwM2Vwcml2YXRlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2OTg6XFx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeSA9IFxcdTAwMjZkZXYtXFx1MDAzZXBoeTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjk5LVxcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgaHdfcXVldWVfbWFwIHBsZV9xdWV1ZV9tYXBbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NDctXFx0c2VxX3B1dHMoZmlsZSwgXFxcIlBMRSBub24tZW1wdHkgcXVldWUgaW5mbzpcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NDg6XFx0bXQ3OTk2X2h3X3F1ZXVlX3JlYWQoZmlsZSwgQVJSQVlfU0laRShwbGVfcXVldWVfbWFwKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzQ5LVxcdFxcdFxcdCAgICAgXFx1MDAyNnBsZV9xdWV1ZV9tYXBbMF0pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc1Mi1cXHRpZWVlODAyMTFfaXRlcmF0ZV9zdGF0aW9uc19hdG9taWMocGh5LVxcdTAwM2VtdDc2LVxcdTAwM2VodyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzUzOlxcdFxcdFxcdFxcdFxcdCAgbXQ3OTk2X3N0YV9od19xdWV1ZV9yZWFkLCBmaWxlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzU0OlxcdHBoeSA9IG10Nzk5Nl9waHkyKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc1NS1cXHRpZiAocGh5KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NTYtXFx0XFx0aWVlZTgwMjExX2l0ZXJhdGVfc3RhdGlvbnNfYXRvbWljKHBoeS1cXHUwMDNlbXQ3Ni1cXHUwMDNlaHcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc1NzpcXHRcXHRcXHRcXHRcXHRcXHQgIG10Nzk5Nl9zdGFfaHdfcXVldWVfcmVhZCwgZmlsZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc1ODpcXHRwaHkgPSBtdDc5OTZfcGh5MyhkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NTktXFx0aWYgKHBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzYwLVxcdFxcdGllZWU4MDIxMV9pdGVyYXRlX3N0YXRpb25zX2F0b21pYyhwaHktXFx1MDAzZW10NzYtXFx1MDAzZWh3LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NjE6XFx0XFx0XFx0XFx0XFx0XFx0ICBtdDc5OTZfc3RhX2h3X3F1ZXVlX3JlYWQsIGZpbGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NjItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzY0LVxcdHNlcV9wdXRzKGZpbGUsIFxcXCJQU0Ugbm9uLWVtcHR5IHF1ZXVlIGluZm86XFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzY1OlxcdG10Nzk5Nl9od19xdWV1ZV9yZWFkKGZpbGUsIEFSUkFZX1NJWkUocHNlX3F1ZXVlX21hcCksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc2Ni1cXHRcXHRcXHQgICAgIFxcdTAwMjZwc2VfcXVldWVfbWFwWzBdKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc3MTpERUZJTkVfU0hPV19BVFRSSUJVVEUobXQ3OTk2X2h3X3F1ZXVlcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc3Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NzczPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Nzc0Om10Nzk5Nl94bWl0X3F1ZXVlc19zaG93KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgdm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzc1LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Nzc2OlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBmaWxlLVxcdTAwM2Vwcml2YXRlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3Nzc6XFx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzc4LVxcdHN0cnVjdCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzkwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3OTE6XFx0cGh5ID0gbXQ3OTk2X3BoeTIoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzkyLVxcdGlmIChwaHkpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzk0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3OTU6XFx0cGh5ID0gbXQ3OTk2X3BoeTMoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzk2LVxcdGlmIChwaHkpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODEzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4MTQ6REVGSU5FX1NIT1dfQVRUUklCVVRFKG10Nzk5Nl94bWl0X3F1ZXVlcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTgxNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9ODE2PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODE3Om10Nzk5Nl90d3Rfc3RhdHMoc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04MTgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4MTk6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRldl9nZXRfZHJ2ZGF0YShzLVxcdTAwM2Vwcml2YXRlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODIwOlxcdHN0cnVjdCBtdDc5OTZfdHd0X2Zsb3cgKml0ZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTgyMS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz04NDU9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NDY6bXQ3OTk2X3JmX3JlZ3ZhbF9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg0Ny17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg0ODpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODQ5LVxcdHUzMiByZWd2YWw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODUxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NTI6XFx0cmV0ID0gbXQ3OTk2X21jdV9yZl9yZWd2YWwoZGV2LCBkZXYtXFx1MDAzZW10NzYuZGVidWdmc19yZWcsIFxcdTAwMjZyZWd2YWwsIGZhbHNlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODUzLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9ODYxPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODYyOm10Nzk5Nl9yZl9yZWd2YWxfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg2My17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg2NDpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODY1LVxcdHUzMiB2YWwzMiA9IHZhbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4Njc6XFx0cmV0dXJuIG10Nzk5Nl9tY3VfcmZfcmVndmFsKGRldiwgZGV2LVxcdTAwM2VtdDc2LmRlYnVnZnNfcmVnLCBcXHUwMDI2dmFsMzIsIHRydWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NjgtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg3MDpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19yZl9yZWd2YWwsIG10Nzk5Nl9yZl9yZWd2YWxfZ2V0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NzE6XFx0XFx0XFx0IG10Nzk5Nl9yZl9yZWd2YWxfc2V0LCBcXFwiMHglMDhsbHhcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg3MzppbnQgbXQ3OTk2X2luaXRfZGVidWdmcyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NzQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg3OS1cXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFxcXCJody1xdWV1ZXNcXFwiLCAwNDAwLCBkaXIsIGRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODgwOlxcdFxcdFxcdCAgICBcXHUwMDI2bXQ3OTk2X2h3X3F1ZXVlc19mb3BzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODgxLVxcdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXFxcInhtaXQtcXVldWVzXFxcIiwgMDQwMCwgZGlyLCBkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg4MjpcXHRcXHRcXHQgICAgXFx1MDAyNm10Nzk5Nl94bWl0X3F1ZXVlc19mb3BzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODgzOlxcdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXFxcInR4X3N0YXRzXFxcIiwgMDQwMCwgZGlyLCBkZXYsIFxcdTAwMjZtdDc5OTZfdHhfc3RhdHNfZm9wcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg4NC1cXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFxcXCJzeXNfcmVjb3ZlcnlcXFwiLCAwNjAwLCBkaXIsIGRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODg1OlxcdFxcdFxcdCAgICBcXHUwMDI2bXQ3OTk2X3N5c19yZWNvdmVyeV9vcHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04ODYtXFx0ZGVidWdmc19jcmVhdGVfZmlsZShcXFwiZndfZGVidWdfd21cXFwiLCAwNjAwLCBkaXIsIGRldiwgXFx1MDAyNmZvcHNfZndfZGVidWdfd20pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg5MC1cXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFxcXCJmd191dGlsX3dhXFxcIiwgMDQwMCwgZGlyLCBkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg5MTpcXHRcXHRcXHQgICAgXFx1MDAyNm10Nzk5Nl9md191dGlsX3dhX2ZvcHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04OTItXFx0ZGVidWdmc19jcmVhdGVfZmlsZShcXFwiaW1wbGljaXRfdHhiZlxcXCIsIDA2MDAsIGRpciwgZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg5NC1cXHRkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3NlcWZpbGUoZGV2LVxcdTAwM2VtdDc2LmRldiwgXFxcInR3dF9zdGF0c1xcXCIsIGRpcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODk1OlxcdFxcdFxcdFxcdCAgICBtdDc5OTZfdHd0X3N0YXRzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODk2LVxcdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXFxcInJmX3JlZ3ZhbFxcXCIsIDA2MDAsIGRpciwgZGV2LCBcXHUwMDI2Zm9wc19yZl9yZWd2YWwpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkwMS1cXHRkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3NlcWZpbGUoZGV2LVxcdTAwM2VtdDc2LmRldiwgXFxcInJkZF9tb25pdG9yXFxcIiwgZGlyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo5MDI6XFx0XFx0XFx0XFx0ICAgIG10Nzk5Nl9yZGRfbW9uaXRvcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkwMy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz05MDk9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6OTEwOm10Nzk5Nl9kZWJ1Z2ZzX3dyaXRlX2Z3bG9nKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGNvbnN0IHZvaWQgKmhkciwgaW50IGhkcmxlbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTExLVxcdFxcdFxcdCAgIGNvbnN0IHZvaWQgKmRhdGEsIGludCBsZW4pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTMzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo5MzQ6dm9pZCBtdDc5OTZfZGVidWdmc19yeF9md19tb25pdG9yKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGNvbnN0IHZvaWQgKmRhdGEsIGludCBsZW4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkzNS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTU1LVxcdGhkci5sZW4gPSAqKF9fbGUxNiAqKWRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjk1NjpcXHRtdDc5OTZfZGVidWdmc193cml0ZV9md2xvZyhkZXYsIFxcdTAwMjZoZHIsIHNpemVvZihoZHIpLCBkYXRhLCBsZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05NTctfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05NTgtXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEwVDE0OjM5OjIwLjUwMDUwOTE5M1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjcyNjY5MDYyMDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBgbXQ3OTk2ZWAgRHJpdmVyIGFuZCBJdHMgSW1wbGljYXRpb25zIGZvciBGdXp6aW5nKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBgbXQ3OTk2ZWAgZHJpdmVyLCBhbmQgaXQncyBidWlsdCBmcm9tIGBwY2kub2AsIGBpbml0Lm9gLCBgZG1hLm9gLCBgZWVwcm9tLm9gLCBgbWFpbi5vYCwgZXRjLiBUaGF0IGltbWVkaWF0ZWx5IHRlbGxzIG1lIGl0J3MgYSBQQ0kgZHJpdmVyLiBUaGUga2V5IHF1ZXN0aW9uIGlzIHdoZXRoZXIgdGhpcyBpcyBmb3IgYSBwaHlzaWNhbCBQQ0llIGNhcmQgdGhhdCBRRU1VICpkb2Vzbid0KiBlbXVsYXRlIG91dC1vZi10aGUtYm94LiBMZXQncyBzZWUuLi4geWVwLCBNZWRpYVRlayBNVDc5OTYgKmlzKiBhIFdpLUZpIDcgUENJZSBjYXJkLlxuXG5Ob3csIG15IG1pbmQgZ29lcyBzdHJhaWdodCB0byBRRU1VLiBEb2VzIFFFTVUgZXZlbiAqdHJ5KiB0byBlbXVsYXRlIHNwZWNpZmljIHZlbmRvciBXaS1GaSBjYXJkcz8gVXN1YWxseSwgbm90IHJlYWxseS4gSXQgaGFzIHRoZSBnZW5lcmFsIGUxMDAwIGFuZCB2aXJ0aW8gbmV0d29yayBpbnRlcmZhY2VzIGJ1dCBzcGVjaWZpYyBoYXJkd2FyZSBsaWtlIHRoaXMgTVQ3OTk2Li4uIGl0J3MgdW5saWtlbHkuIFVubGVzcy4uLiAqd2FpdCouLi4gdGhlcmUncyBgbWFjODAyMTFfaHdzaW1gLCB3aGljaCAqaXMqIGEgc29mdHdhcmUgc2ltdWxhdG9yLCBidXQgdGhpcyBpcyBhICpzcGVjaWZpYyogaGFyZHdhcmUgZHJpdmVyLCBgbXQ3OTk2YCwgc28gSSdtIGd1ZXNzaW5nIHRoaXMgd29uJ3QgYXBwbHkgaGVyZS5cblxuT2theSwgbGV0J3MgZ28gYmFjayB0byB0aGUgcHJvbXB0OiBJdCBzYXlzIHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCBpZiB0aGUgcGF0Y2ggaW52b2x2ZXMgdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMuIFRoaW5ncyBsaWtlIGBtbHhzd2AsIGBxZWRgLCBgYW1kZ3B1YC4uLiBiYXNpY2FsbHksIGhhcmR3YXJlIHRoYXQgKnJlcXVpcmVzKiBhY3R1YWwgcGh5c2ljYWwgUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgYnkgc3RhbmRhcmQgUUVNVS4gSXMgYG10Nzk5NmAgYSB2ZW5kb3Itc3BlY2lmaWMgUENJIGRyaXZlcj8gQWJzb2x1dGVseS4gSXQncyBhIE1lZGlhVGVrIFdpLUZpIGRyaXZlci5cblxuU28gdGhlIHJlYWwgcXVlc3Rpb24gdGhlbiBpczogSXMgaXQgcG9zc2libGUgdG8gcmVhY2ggdGhlIGNvZGUgaW4gUUVNVT8gQW5kIHVzdWFsbHkgUENJIGRyaXZlcnMgZm9yIHNwZWNpZmljIFdpLUZpIGNhcmRzICpjYW4ndCogYmUgcHJvYmVkIGluIFFFTVUgdW5sZXNzIHRoZSBkZXZpY2UgaXMgZW11bGF0ZWQsIG9yIGlmIHdlIGFyZSB1c2luZyBkZXZpY2UgcGFzc3Rocm91Z2guIExldCBtZSBqdXN0IGNvbmZpcm0gYWdhaW46IGBtdDc5OTZgIGlzIGEgUENJIGRyaXZlci4gVGhhdCBzZWVtcyBjb3JyZWN0LCB0aGVyZWZvcmUsIHVubGVzcyB0aGVyZSdzIHNvbWV0aGluZyBzcGVjaWZpYyBpbiB0aGlzIHBhdGNoIHRvIGluZGljYXRlIG90aGVyd2lzZSwgdGhpcyBpcyBwcm9iYWJseSBub3QgZnV6emFibGUgd2l0aG91dCBwaHlzaWNhbCBoYXJkd2FyZSBvciBzcGVjaWFsaXplZCBlbXVsYXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwNDA1LCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzM1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEwVDE0OjM5OjI3Ljc2NzQxODI1N1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTQ2OTAzNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwY2lfcmVnaXN0ZXJfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODg1PXN0YXRpYyBpbnQgX19pbml0IG10Nzk5Nl9pbml0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODg4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4ODk6XFx0cmV0ID0gcGNpX3JlZ2lzdGVyX2RyaXZlcihcXHUwMDI2bXQ3OTk2X2hpZl9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04OTAtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04OTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg5MzpcXHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZtdDc5OTZfcGNpX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg5NC1cXHRpZiAocmV0KVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMFQxNDozOToyNy44MTI4OTUwODJaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMzI3NjA2ODUyOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50OiBXb3J0aEZ1enppbmcgPSBGYWxzZSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kLCB5ZXMsIGl0J3MgZGVmaW5pdGVseSBhIFBDSSBkcml2ZXIg4oCTIHRoYXQncyB0aGUgZmlyc3QgdGhpbmcgSSBub3RpY2UuIFRoZSBjb3JlIG9mIHRoaXMgcGF0Y2ggc2VlbXMgdG8gYmUgYWRkaW5nIHRoZXJtYWwgem9uZSByZWdpc3RyYXRpb24gc3BlY2lmaWNhbGx5IGZvciB0aGlzIGhhcmR3YXJlLiBUaGUga2V5IHBvaW50IGhlcmUgaXMgdGhhdCBpdCdzIGEgKnZlbmRvci1zcGVjaWZpYyogV2ktRmkgUENJZSBjYXJkLiBTaW5jZSBpdCdzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB0aGF0IGltbWVkaWF0ZWx5IGZsYWdzIGl0IGFzIHBvdGVudGlhbGx5IHByb2JsZW1hdGljIGZvciBmdXp6aW5nLlxuXG5NeSBpbW1lZGlhdGUgdGhvdWdodCBhbGlnbnMgd2l0aCB0aGUgcHJvbXB0J3MgZXhjbHVzaW9uIGNyaXRlcmlhOiBjb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzLiBJIG5lZWQgdG8gY29uZmlybSB0aGF0IFdpLUZpIGRyaXZlcnMgYWxzbyBmYWxsIGludG8gdGhpcyBjYXRlZ29yeS4gVGhlIGV4YW1wbGUgZ2l2ZW4gaW4gdGhlIHByb21wdCwgdGhpbmdzIGxpa2UgYG1seHN3YCwgYHBkc19jb3JlYCwgYHFlZGAsIGBpb25pY2AsIGFuZCBgYW1kZ3B1YCwgdGhleSBhbGwgYXBwbHkgdG8gb3RoZXIgdmVuZG9yLXNwZWNpZmljIFBDSWUgaGFyZHdhcmUuIEFuZCB5ZXMsIFdpLUZpIGRyaXZlcnMgbGlrZSB0aGUgYG10NzZgIHNlcmllcyBhcmUgZXF1YWxseSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBoYXJkd2FyZS5cblxuU28sIHRoZSBxdWVzdGlvbiBpcywgKmNhbiogdGhpcyBiZSBmdXp6ZWQgYXQgYWxsPyBJIGtub3cgYHN5emthbGxlcmAgaGFzIHNvbWUgbGV2ZWwgb2Ygc3VwcG9ydCBmb3IgV2ktRmkgZnV6emluZywgbmFtZWx5IHZpYSBgbWFjODAyMTFfaHdzaW1gLCBidXQgdGhhdCBmb2N1c2VzIG9uIHRoZSBnZW5lcmFsIG1hYzgwMjExIHN0YWNrLiBJdCBkb2Vzbid0IHNlZW0gdG8gdGFyZ2V0IHRoZXNlIHNwZWNpZmljIGhhcmR3YXJlIGRyaXZlcnMgbGlrZSBgbXQ3OTk2YCBkaXJlY3RseS4gYHN5emthbGxlcmAgKmRvZXMqIGhhdmUgc29tZSBwc2V1ZG8tc3lzY2FsbHMgbGlrZSBgc3l6XzgwMjExXy4uLmAsIGJ1dCB0aGVzZSBhbHNvIG9wZXJhdGUgYXQgdGhlIGhpZ2hlciBtYWM4MDIxMS9jZmc4MDIxMSBsZXZlbHMsIG5vdCBkaXJlY3RseSBpbnRlcmFjdGluZyB3aXRoIHRoZSBoYXJkd2FyZSBkcml2ZXIuXG5cblRoZW4sIHRoZXJlJ3MgdGhlIFVTQiBmdXp6aW5nIGluIHN5emthbGxlciAoZHVtbXlfaGNkKSBhbmQgUENJIGZ1enppbmcsIGJ1dCBpdHMgY2FwYWJpbGl0aWVzIGFyZSBxdWl0ZSBsaW1pdGVkLiBJIHJlY2FsbCBQQ0kgZnV6emluZyBhcyBiZWluZyBsYXJnZWx5IHVuc3VpdGFibGUgZm9yIHZlbmRvci1zcGVjaWZpYyBQQ0kgZHJpdmVycyB1bmxlc3MgdGhleSdyZSBleHBsaWNpdGx5IHN1cHBvcnRlZCBvciB3ZSBhcmUgZnV6emluZyB0aGUgUENJIHN1YnN5c3RlbSBpdHNlbGYuIFdhaXQsIGl0IHNlZW1zIHN5emthbGxlcidzIFBDSSBmdXp6aW5nIGNhbiBwcm9iZSBhbnkgUENJIGRyaXZlciBieSBlbXVsYXRpbmcgUENJIGNvbmZpZyBzcGFjZS5cblNvLCBzeXprYWxsZXIgZG9lcyBvZmZlciBgdmhjaWAgZm9yIFBDSSwgYnV0IGl0J3Mgbm90IHdpZGVseSB1c2VkLlxuXG5Pa2F5LCBsZXQncyByZS1yZWFkIHRoZSBwcm9tcHQuIEl0IGV4cGxpY2l0bHkgc3RhdGVzOiBcIlJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6IC4uLiAtIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLCBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cIlxuXG5TaW5jZSB0aGlzIGBtdDc5OTZgIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgV2ktRmkgY2FyZCwgYW5kIHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB0aGUgaW1tZWRpYXRlIGNvbmNsdXNpb24gaXMgYFdvcnRoRnV6emluZz1mYWxzZWAuIEkgbmVlZCB0byBiZSBjZXJ0YWluIHRoYXQgdGhlIGRyaXZlciBpcyBzdHJpY3RseSBQQ0kuXG5cbkEgcXVpY2sgY2hlY2sgY29uZmlybXMgdGhpcy4gVGhlIGBNYWtlZmlsZWAgZm9yIHRoZSBgbXQ3OTk2YCBkcml2ZXIgaGFzIGVudHJpZXMgbGlrZSBgcGNpLm9gLCBzbyBpdCdzIGNsZWFybHkgUENJZS5cblxuTGV0IG1lIGp1c3QgY2hlY2sgZm9yIG90aGVyIGNvZGUuIFRoZSBjaGFuZ2VzIGFyZSBjb25maW5lZCB0byBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jYCBhbmQgYG10Nzk5Ni5oYC4gSXQgYWRkcyBgbXQ3OTk2X3RoZXJtYWxfZ2V0X3RlbXBgLCBgbXQ3OTk2X3R6X29wc2AsIGFuZCByZWdpc3RlcnMgYSB0aGVybWFsIHpvbmUsIGFsbCBvZiB3aGljaCBhcmUgaGFyZHdhcmUtc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24gYW5kIHRoZXJtYWwgbWFuYWdlbWVudCBjb21wb25lbnRzLiBUaGlzIHRoZXJtYWwgem9uZSByZWdpc3RyYXRpb24gaXMgaGFyZHdhcmUtc3BlY2lmaWMsIGFuZCBJIGNhbm5vdCBzZWUgYSB3YXkgdG8gdHJpZ2dlciBpdCB3aXRob3V0IHRoZSBwaHlzaWNhbCBoYXJkd2FyZS5cblxuVGhlcmVmb3JlLCBteSBmaW5hbCBjb25jbHVzaW9uIGlzIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIE1UNzk5NiBXaS1GaSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgaGFyZHdhcmUgZHJpdmVyLiBUaGlzIGNvZGUgcmVxdWlyZXMgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGFuZCBjYW5ub3QgYmUgcmVhY2hlZCBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE1NDYsIk91dHB1dFRva2VucyI6ODQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3NjQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTBUMTQ6Mzk6NDEuMDg4OTY2NDIxWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzY4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVkaWFUZWsgTVQ3OTk2IFdpLUZpIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBoYXJkd2FyZSBkcml2ZXIuIFRoaXMgY29kZSByZXF1aXJlcyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgYW5kIGNhbm5vdCBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIE1UNzk5NiBXaS1GaSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgaGFyZHdhcmUgZHJpdmVyLiBUaGlzIGNvZGUgcmVxdWlyZXMgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGFuZCBjYW5ub3QgYmUgcmVhY2hlZCBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEwVDE0OjM5OjQxLjA4ODk5MzA2MVoiLCJTZXEiOjksIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDA5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowj6m9p[1] Phase: Running StartedAt: 2026-08-10 14:39:52 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj6m9p[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-10 14:39:52 +0000 UTC FinishedAt: 2026-08-10 14:39:58 +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,}