Name: series-workflow2z8gx Phase: Failed StartedAt: 2026-07-22 23:11:33 +0000 UTC FinishedAt: 2026-07-22 23:38:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2z8gx[0] Phase: Succeeded StartedAt: 2026-07-22 23:11:33 +0000 UTC FinishedAt: 2026-07-22 23:38:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2z8gx[0].run-triage Phase: Succeeded StartedAt: 2026-07-22 23:11:33 +0000 UTC FinishedAt: 2026-07-22 23:38:20 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIzOjM3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYVRlayBNVDc5OTYgV2ktRmkgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIuIFNpbmNlIHRoZXJlIGlzIG5vIGdlbmVyaWMgUENJIGRldmljZSBlbXVsYXRvciBpbiB0aGUgTGludXgga2VybmVsICh1bmxpa2UgVVNCIGdhZGdldCBvciBtYWM4MDIxMV9od3NpbSksIHRoaXMgZHJpdmVyIGNhbm5vdCBiZSBwcm9iZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0Ugd2l0aG91dCB0aGUgYWN0dWFsIGhhcmR3YXJlLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjM6Mzc8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAyMWM0NTI3MGU4YWVhNWM1Yzg3Y2Q4YjZmNmM0MGY4ODBjZGIzMWZmXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdWwgMjIgMjM6Mzc6MDIgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jXG5pbmRleCBkNmY5YWExYWI1MmQxMi4uMTE1MTQ1Zjk5M2QwMTYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuY1xuQEAgLTIzNiw2ICYjNDM7MjM2LDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZV9vcHMgbXQ3OTk2X3RoZXJtYWxfb3BzID0ge1xuIFx0LnNldF9jdXJfc3RhdGUgPSBtdDc5OTZfdGhlcm1hbF9zZXRfY3VyX3Rocm90dGxlX3N0YXRlLFxuIH07XG4gXG4mIzQzO3N0YXRpYyBpbnQgbXQ3OTk2X3RoZXJtYWxfZ2V0X3RlbXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgKnRlbXApXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5ID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6KTtcbiYjNDM7XHRpbnQgdmFsO1xuJiM0MztcbiYjNDM7XHR2YWwgPSBtdDc5OTZfbWN1X2dldF90ZW1wZXJhdHVyZShwaHkpO1xuJiM0MztcdGlmICh2YWwgXHUwMDNjIDApXG4mIzQzO1x0XHRyZXR1cm4gdmFsO1xuJiM0MztcbiYjNDM7XHQqdGVtcCA9IHZhbCAqIDEwMDA7XG4mIzQzO1x0cmV0dXJuIDA7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZV9vcHMgbXQ3OTk2X3R6X29wcyA9IHtcbiYjNDM7XHQuZ2V0X3RlbXAgPSBtdDc5OTZfdGhlcm1hbF9nZXRfdGVtcCxcbiYjNDM7fTtcbiYjNDM7XG4gc3RhdGljIHZvaWQgbXQ3OTk2X3VucmVnaXN0ZXJfdGhlcm1hbChzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxuIHtcbiBcdHN0cnVjdCB3aXBoeSAqd2lwaHkgPSBwaHktXHUwMDNlbXQ3Ni1cdTAwM2Vody1cdTAwM2V3aXBoeTtcbkBAIC0yNzcsNiAmIzQzOzI5NCwxNyBAQCBzdGF0aWMgaW50IG10Nzk5Nl90aGVybWFsX2luaXQoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSlcbiBcdHBoeS1cdTAwM2V0aHJvdHRsZV90ZW1wW01UNzk5Nl9DUklUX1RFTVBfSURYXSA9IE1UNzk5Nl9DUklUX1RFTVA7XG4gXHRwaHktXHUwMDNldGhyb3R0bGVfdGVtcFtNVDc5OTZfTUFYX1RFTVBfSURYXSA9IE1UNzk5Nl9NQVhfVEVNUDtcbiBcbiYjNDM7XHRwaHktXHUwMDNldHpvbmUgPSBkZXZtX3RoZXJtYWxfb2Zfem9uZV9yZWdpc3RlcihwaHktXHUwMDNlZGV2LVx1MDAzZW10NzYuZGV2LFxuJiM0MztcdFx0XHRcdFx0XHQgICBwaHktXHUwMDNlbXQ3Ni1cdTAwM2ViYW5kX2lkeCwgcGh5LFxuJiM0MztcdFx0XHRcdFx0XHQgICBcdTAwMjZtdDc5OTZfdHpfb3BzKTtcbiYjNDM7XHRpZiAoSVNfRVJSKHBoeS1cdTAwM2V0em9uZSkpIHtcbiYjNDM7XHRcdGlmIChQVFJfRVJSKHBoeS1cdTAwM2V0em9uZSkgIT0gLUVOT0RFVilcbiYjNDM7XHRcdFx0ZGV2X3dhcm4ocGh5LVx1MDAzZWRldi1cdTAwM2VtdDc2LmRldixcbiYjNDM7XHRcdFx0XHQgXCYjMzQ7ZmFpbGVkIHRvIHJlZ2lzdGVyIHRoZXJtYWwgem9uZSVkOiAlbGRcXG5cJiMzNDssXG4mIzQzO1x0XHRcdFx0IHBoeS1cdTAwM2VtdDc2LVx1MDAzZWJhbmRfaWR4LCBQVFJfRVJSKHBoeS1cdTAwM2V0em9uZSkpO1xuJiM0MztcdFx0cGh5LVx1MDAzZXR6b25lID0gTlVMTDtcbiYjNDM7XHR9XG4mIzQzO1xuIFx0aWYgKCFJU19SRUFDSEFCTEUoQ09ORklHX0hXTU9OKSlcbiBcdFx0cmV0dXJuIDA7XG4gXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaFxuaW5kZXggMGQ2NDg4NTIyYmE3MTEuLjEyMDdiNWM3ZTk4YjlkIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oXG5AQCAtMzcyLDYgJiM0MzszNzIsNyBAQCBzdHJ1Y3QgbXQ3OTk2X3BoeSB7XG4gXG4gXHRzdHJ1Y3QgaWVlZTgwMjExX3NiYW5kX2lmdHlwZV9kYXRhIGlmdHlwZVtOVU1fTkw4MDIxMV9CQU5EU11bTlVNX05MODAyMTFfSUZUWVBFU107XG4gXG4mIzQzO1x0c3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6b25lO1xuIFx0c3RydWN0IHRoZXJtYWxfY29vbGluZ19kZXZpY2UgKmNkZXY7XG4gXHR1OCBjZGV2X3N0YXRlO1xuIFx0dTggdGhyb3R0bGVfc3RhdGU7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjM6Mzc8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYVRlayBNVDc5OTYgV2ktRmkgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIuIFNpbmNlIHRoZXJlIGlzIG5vIGdlbmVyaWMgUENJIGRldmljZSBlbXVsYXRvciBpbiB0aGUgTGludXgga2VybmVsICh1bmxpa2UgVVNCIGdhZGdldCBvciBtYWM4MDIxMV9od3NpbSksIHRoaXMgZHJpdmVyIGNhbm5vdCBiZSBwcm9iZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0Ugd2l0aG91dCB0aGUgYWN0dWFsIGhhcmR3YXJlLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDIxYzQ1MjcwZThhZWE1YzVjODdjZDhiNmY2YzQwZjg4MGNkYjMxZmYKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgV2VkIEp1bCAyMiAyMzozNzowMiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYwppbmRleCBkNmY5YWExYWI1MmQxMi4uMTE1MTQ1Zjk5M2QwMTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMKQEAgLTIzNiw2ICYjNDM7MjM2LDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZV9vcHMgbXQ3OTk2X3RoZXJtYWxfb3BzID0gewogCS5zZXRfY3VyX3N0YXRlID0gbXQ3OTk2X3RoZXJtYWxfc2V0X2N1cl90aHJvdHRsZV9zdGF0ZSwKIH07CiAKJiM0MztzdGF0aWMgaW50IG10Nzk5Nl90aGVybWFsX2dldF90ZW1wKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0eiwgaW50ICp0ZW1wKQomIzQzO3sKJiM0MzsJc3RydWN0IG10Nzk5Nl9waHkgKnBoeSA9IHRoZXJtYWxfem9uZV9kZXZpY2VfcHJpdih0eik7CiYjNDM7CWludCB2YWw7CiYjNDM7CiYjNDM7CXZhbCA9IG10Nzk5Nl9tY3VfZ2V0X3RlbXBlcmF0dXJlKHBoeSk7CiYjNDM7CWlmICh2YWwgJmx0OyAwKQomIzQzOwkJcmV0dXJuIHZhbDsKJiM0MzsKJiM0MzsJKnRlbXAgPSB2YWwgKiAxMDAwOwomIzQzOwlyZXR1cm4gMDsKJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlX29wcyBtdDc5OTZfdHpfb3BzID0gewomIzQzOwkuZ2V0X3RlbXAgPSBtdDc5OTZfdGhlcm1hbF9nZXRfdGVtcCwKJiM0Mzt9OwomIzQzOwogc3RhdGljIHZvaWQgbXQ3OTk2X3VucmVnaXN0ZXJfdGhlcm1hbChzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KQogewogCXN0cnVjdCB3aXBoeSAqd2lwaHkgPSBwaHktJmd0O210NzYtJmd0O2h3LSZndDt3aXBoeTsKQEAgLTI3Nyw2ICYjNDM7Mjk0LDE3IEBAIHN0YXRpYyBpbnQgbXQ3OTk2X3RoZXJtYWxfaW5pdChzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KQogCXBoeS0mZ3Q7dGhyb3R0bGVfdGVtcFtNVDc5OTZfQ1JJVF9URU1QX0lEWF0gPSBNVDc5OTZfQ1JJVF9URU1QOwogCXBoeS0mZ3Q7dGhyb3R0bGVfdGVtcFtNVDc5OTZfTUFYX1RFTVBfSURYXSA9IE1UNzk5Nl9NQVhfVEVNUDsKIAomIzQzOwlwaHktJmd0O3R6b25lID0gZGV2bV90aGVybWFsX29mX3pvbmVfcmVnaXN0ZXIocGh5LSZndDtkZXYtJmd0O210NzYuZGV2LAomIzQzOwkJCQkJCSAgIHBoeS0mZ3Q7bXQ3Ni0mZ3Q7YmFuZF9pZHgsIHBoeSwKJiM0MzsJCQkJCQkgICAmYW1wO210Nzk5Nl90el9vcHMpOwomIzQzOwlpZiAoSVNfRVJSKHBoeS0mZ3Q7dHpvbmUpKSB7CiYjNDM7CQlpZiAoUFRSX0VSUihwaHktJmd0O3R6b25lKSAhPSAtRU5PREVWKQomIzQzOwkJCWRldl93YXJuKHBoeS0mZ3Q7ZGV2LSZndDttdDc2LmRldiwKJiM0MzsJCQkJICYjMzQ7ZmFpbGVkIHRvIHJlZ2lzdGVyIHRoZXJtYWwgem9uZSVkOiAlbGRcbiYjMzQ7LAomIzQzOwkJCQkgcGh5LSZndDttdDc2LSZndDtiYW5kX2lkeCwgUFRSX0VSUihwaHktJmd0O3R6b25lKSk7CiYjNDM7CQlwaHktJmd0O3R6b25lID0gTlVMTDsKJiM0MzsJfQomIzQzOwogCWlmICghSVNfUkVBQ0hBQkxFKENPTkZJR19IV01PTikpCiAJCXJldHVybiAwOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oCmluZGV4IDBkNjQ4ODUyMmJhNzExLi4xMjA3YjVjN2U5OGI5ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgKQEAgLTM3Miw2ICYjNDM7MzcyLDcgQEAgc3RydWN0IG10Nzk5Nl9waHkgewogCiAJc3RydWN0IGllZWU4MDIxMV9zYmFuZF9pZnR5cGVfZGF0YSBpZnR5cGVbTlVNX05MODAyMTFfQkFORFNdW05VTV9OTDgwMjExX0lGVFlQRVNdOwogCiYjNDM7CXN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0em9uZTsKIAlzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZSAqY2RldjsKIAl1OCBjZGV2X3N0YXRlOwogCXU4IHRocm90dGxlX3N0YXRlOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMzozNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjkxCgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMTczCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgYG10Nzk5NmAgVGhlcm1hbCBab25lIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFkZGluZyB0aGVybWFsIHpvbmUgc3VwcG9ydCB0byB0aGUgYG10Nzk5NmAgd2lyZWxlc3MgZHJpdmVyLiBJdCYjMzk7cyByZWdpc3RlcmluZyB0aGUgdGhlcm1hbCB6b25lIGRldmljZSB1c2luZyBgZGV2bV90aGVybWFsX29mX3pvbmVfcmVnaXN0ZXJgLCB3aGljaCBzZWVtcyBzdGFuZGFyZCBlbm91Z2guIEJ1dCBJJiMzOTttIHN0YXJ0aW5nIHRvIHRoaW5rIGFib3V0IHJlYWNoYWJpbGl0eSwgYW5kIHdoZXRoZXIgdGhpcyBpcyBldmVuIHJlYWxpc3RpY2FsbHkgdGVzdGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBUaGlzIGlzIGEgZHJpdmVyIGZvciBhICpwaHlzaWNhbCogV2ktRmkgZGV2aWNlLCB0aGUgYG10Nzk5NmAuICBVc3VhbGx5LCB1bmxlc3MgdGhlcmUmIzM5O3MgYSBzcGVjaWZpYyBzb2Z0d2FyZSBlbXVsYXRpb24gbGF5ZXIgaW4gcGxhY2XigJRsaWtlIGBtYWM4MDIxMV9od3NpbWDigJRhIFBDSSBvciBVU0IgV2ktRmkgZHJpdmVyIGlzIHByZXR0eSBtdWNoIGluYWNjZXNzaWJsZSBpbiBhIHR5cGljYWwgVk0gc2V0dXAuCgpOb3csIGlmIEkgdGhpbmsgYWJvdXQgaXQgbW9yZSBjYXJlZnVsbHksIGFuZCBJIGJlbGlldmUgdGhpcyBpcyBhIFBDSWUgZHJpdmVyLCBzbyB0aGUgcmVhY2hhYmlsaXR5IHF1ZXN0aW9uIGJlY29tZXMgbW9yZSBpbnRlcmVzdGluZy4gSXQgKmNvdWxkKiBiZSBmdXp6ZWQsIGdpdmVuIFBDSWXigJlzIGNoYXJhY3RlcmlzdGljcy4gSSBuZWVkIHRvIGNvbmZpcm0gd2hldGhlciBgbXQ3OTk2YCBpcywgaW4gZmFjdCwgUENJZSBvciBVU0IuIEkmIzM5O2xsIHVzZSBgZ3JlcHBlcmAgdG8gcXVpY2tseSBkZXRlcm1pbmUgd2hhdCBidXMgdHlwZSB0aGlzIGRyaXZlciBpcyBhc3NvY2lhdGVkIHdpdGguCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjM6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTk2JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA2NTM1IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS0yLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfTVQ3OTk2RSkgJiM0Mzs9IG10Nzk5NmUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGUtNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlOjU6bXQ3OTk2ZS15IDo9IHBjaS5vIGluaXQubyBkbWEubyBlZXByb20ubyBtYWluLm8gbWN1Lm8gbWFjLm8gXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTYtXHQgICAgIGRlYnVnZnMubyBtbWlvLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTo4Om10Nzk5NmUtJChDT05GSUdfTVQ3OTk2X05QVSkgJiM0Mzs9IG5wdS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTo5Om10Nzk5NmUtJChDT05GSUdfREVWX0NPUkVEVU1QKSAmIzQzOz0gY29yZWR1bXAub1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM9MTI9TU9EVUxFX1BBUk1fREVTQyhjb3JlZHVtcF9tZW1kdW1wLCBcJiMzNDtPcHRpb25hbCBhYmlsaXR5IHRvIGR1bXAgZmlybXdhcmUgbWVtb3J5XCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE0OnN0YXRpYyBjb25zdCBzdHJ1Y3QgbXQ3OTk2X21lbV9yZWdpb24gbXQ3OTk2X21lbV9yZWdpb25zW10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTE1LVx0e1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjQ3OmNvbnN0IHN0cnVjdCBtdDc5OTZfbWVtX3JlZ2lvbipcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NDg6bXQ3OTk2X2NvcmVkdW1wX2dldF9tZW1fbGF5b3V0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHUzMiAqbnVtKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy00OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy01Mi1cdGNhc2UgTVQ3OTk2X0RFVklDRV9JRF8yOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo1MzpcdFx0Km51bSA9IEFSUkFZX1NJWkUobXQ3OTk2X21lbV9yZWdpb25zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NTQ6XHRcdHJldHVybiBcdTAwMjZtdDc5OTZfbWVtX3JlZ2lvbnNbMF07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTU1LVx0ZGVmYXVsdDpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo2MDpzdGF0aWMgaW50IG10Nzk5Nl9jb3JlZHVtcF9nZXRfbWVtX3NpemUoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNjEte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo2MjpcdGNvbnN0IHN0cnVjdCBtdDc5OTZfbWVtX3JlZ2lvbiAqbWVtX3JlZ2lvbjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNjMtXHRzaXplX3Qgc2l6ZSA9IDA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy02Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6Njc6XHRtZW1fcmVnaW9uID0gbXQ3OTk2X2NvcmVkdW1wX2dldF9tZW1fbGF5b3V0KGRldiwgXHUwMDI2bnVtKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNjgtXHRpZiAoIW1lbV9yZWdpb24pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy03Ni1cdC8qIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBoZWFkZXJzICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjc3Olx0c2l6ZSAmIzQzOz0gbnVtICogc2l6ZW9mKHN0cnVjdCBtdDc5OTZfbWVtX2hkcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTc4LVx0LyogbWFrZSBzdXJlIGl0IGlzIGFsaWduZWQgNCBieXRlcyBmb3IgZGVidWcgbWVzc2FnZSBwcmludCBvdXQgKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTgzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo4NDpzdHJ1Y3QgbXQ3OTk2X2NyYXNoX2RhdGEgKm10Nzk5Nl9jb3JlZHVtcF9uZXcoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtODUte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo4NjpcdHN0cnVjdCBtdDc5OTZfY3Jhc2hfZGF0YSAqY3Jhc2hfZGF0YSA9IGRldi1cdTAwM2Vjb3JlZHVtcC5jcmFzaF9kYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy04Ny1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jPTEwMD1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxMDE6bXQ3OTk2X2NvcmVkdW1wX2Z3X3N0YXRlKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHN0cnVjdCBtdDc5OTZfY29yZWR1bXAgKmR1bXAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTEwMi1cdFx0XHQgYm9vbCAqZXhjZXB0aW9uKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM9MTE3PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjExODptdDc5OTZfY29yZWR1bXBfZndfc3RhY2soc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgc3RydWN0IG10Nzk5Nl9jb3JlZHVtcCAqZHVtcCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTE5LVx0XHRcdCBib29sIGV4Y2VwdGlvbilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTE2MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MTYyOnN0YXRpYyBzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wICptdDc5OTZfY29yZWR1bXBfYnVpbGQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTYzLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MTY0Olx0c3RydWN0IG10Nzk5Nl9jcmFzaF9kYXRhICpjcmFzaF9kYXRhID0gZGV2LVx1MDAzZWNvcmVkdW1wLmNyYXNoX2RhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE2NTpcdHN0cnVjdCBtdDc5OTZfY29yZWR1bXAgKmR1bXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE2NjpcdHN0cnVjdCBtdDc5OTZfY29yZWR1bXBfbWVtICpkdW1wX21lbTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTY3LVx0c2l6ZV90IGxlbiwgc29mYXIgPSAwLCBoZHJfbGVuID0gc2l6ZW9mKCpkdW1wKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTE4Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MTg3Olx0ZHVtcCA9IChzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wICopKGJ1Zik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTE4OC1cdGR1bXAtXHUwMDNlbGVuID0gbGVuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjAwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyMDE6XHRtdDc5OTZfY29yZWR1bXBfZndfc3RhdGUoZGV2LCBkdW1wLCBcdTAwMjZleGNlcHRpb24pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyMDI6XHRtdDc5OTZfY29yZWR1bXBfZndfc3RhY2soZGV2LCBkdW1wLCBleGNlcHRpb24pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIwNC1cdC8qIGdhdGhlciBtZW1vcnkgY29udGVudCAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyMDU6XHRkdW1wX21lbSA9IChzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wX21lbSAqKShidWYgJiM0Mzsgc29mYXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMDYtXHRkdW1wX21lbS1cdTAwM2VsZW4gPSBjcmFzaF9kYXRhLVx1MDAzZW1lbWR1bXBfYnVmX2xlbjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIxNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjE2OmludCBtdDc5OTZfY29yZWR1bXBfc3VibWl0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIxNy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIxODpcdHN0cnVjdCBtdDc5OTZfY29yZWR1bXAgKmR1bXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIxOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjIwOlx0ZHVtcCA9IG10Nzk5Nl9jb3JlZHVtcF9idWlsZChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMjEtXHRpZiAoIWR1bXApIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIzMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjMxOmludCBtdDc5OTZfY29yZWR1bXBfcmVnaXN0ZXIoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjMyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjMzOlx0c3RydWN0IG10Nzk5Nl9jcmFzaF9kYXRhICpjcmFzaF9kYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMzQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yNDEtXHRpZiAoY29yZWR1bXBfbWVtZHVtcCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyNDI6XHRcdGNyYXNoX2RhdGEtXHUwMDNlbWVtZHVtcF9idWZfbGVuID0gbXQ3OTk2X2NvcmVkdW1wX2dldF9tZW1fc2l6ZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yNDMtXHRcdGlmICghY3Jhc2hfZGF0YS1cdTAwM2VtZW1kdW1wX2J1Zl9sZW4pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yNTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjI1Nzp2b2lkIG10Nzk5Nl9jb3JlZHVtcF91bnJlZ2lzdGVyKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTI1OC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC02LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo3OiNpbmNsdWRlIFwmIzM0O210Nzk5Ni5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjk6c3RydWN0IG10Nzk5Nl9jb3JlZHVtcCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTEwLVx0Y2hhciBtYWdpY1sxNl07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC0zOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NDA6c3RydWN0IG10Nzk5Nl9jb3JlZHVtcF9tZW0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC00MS1cdHUzMiBsZW47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC00NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NDU6c3RydWN0IG10Nzk5Nl9tZW1faGRyIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNDYtXHR1MzIgc3RhcnQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC01MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NTE6c3RydWN0IG10Nzk5Nl9tZW1fcmVnaW9uIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNTItXHR1MzIgc3RhcnQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC01OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NjA6Y29uc3Qgc3RydWN0IG10Nzk5Nl9tZW1fcmVnaW9uICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NjE6bXQ3OTk2X2NvcmVkdW1wX2dldF9tZW1fbGF5b3V0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHUzMiAqbnVtKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NjI6c3RydWN0IG10Nzk5Nl9jcmFzaF9kYXRhICptdDc5OTZfY29yZWR1bXBfbmV3KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo2MzppbnQgbXQ3OTk2X2NvcmVkdW1wX3N1Ym1pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NjQ6aW50IG10Nzk5Nl9jb3JlZHVtcF9yZWdpc3RlcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NjU6dm9pZCBtdDc5OTZfY29yZWR1bXBfdW5yZWdpc3RlcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNjYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC02OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6Njk6c3RhdGljIGlubGluZSBjb25zdCBzdHJ1Y3QgbXQ3OTk2X21lbV9yZWdpb24gKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo3MDptdDc5OTZfY29yZWR1bXBfZ2V0X21lbV9sYXlvdXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgdTMyICpudW0pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTcxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTc0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo3NTpzdGF0aWMgaW5saW5lIGludCBtdDc5OTZfY29yZWR1bXBfc3VibWl0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTc2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oPTgwPXN0YXRpYyBpbmxpbmUgc3RydWN0XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjgxOm10Nzk5Nl9jcmFzaF9kYXRhICptdDc5OTZfY29yZWR1bXBfbmV3KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTgyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTg1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo4NjpzdGF0aWMgaW5saW5lIGludCBtdDc5OTZfY29yZWR1bXBfcmVnaXN0ZXIoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtODcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtOTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjkxOnN0YXRpYyBpbmxpbmUgdm9pZCBtdDc5OTZfY29yZWR1bXBfdW5yZWdpc3RlcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC05Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTYtI2luY2x1ZGUgXHUwMDNjbGludXgvcmVsYXkuaFx1MDAzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc6I2luY2x1ZGUgXCYjMzQ7bXQ3OTk2LmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04LSNpbmNsdWRlIFwmIzM0O2VlcHJvbS5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTIzPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyNDptdDc5OTZfaW1wbGljaXRfdHhiZl9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjY6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzM6XHRyZXR1cm4gbXQ3OTk2X21jdV9zZXRfdHhiZihkZXYsIEJGX0hXX0VOX1VQREFURSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzQtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0zNj1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Mzc6bXQ3OTk2X2ltcGxpY2l0X3R4YmZfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozOTpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NjpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19pbXBsaWNpdF90eGJmLCBtdDc5OTZfaW1wbGljaXRfdHhiZl9nZXQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDc6XHRcdFx0IG10Nzk5Nl9pbXBsaWNpdF90eGJmX3NldCwgXCYjMzQ7JWxsZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTUwPXN0YXRpYyBzc2l6ZV90XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTE6bXQ3OTk2X3N5c19yZWNvdmVyeV9zZXQoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgX191c2VyICp1c2VyX2J1ZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01Mi1cdFx0XHRzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01My17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTQ6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZmlsZS1cdTAwM2Vwcml2YXRlX2RhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTUtXHRjaGFyIGJ1ZlsxNl0sICpzZXA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkxLVx0Y2FzZSBVTklfQ01EX1NFUl9RVUVSWTpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo5MjpcdFx0cmV0ID0gbXQ3OTk2X21jdV9zZXRfc2VyKGRldiwgVU5JX0NNRF9TRVJfUVVFUlksIDAsIGJhbmQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkzLVx0XHRicmVhaztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTAwLVx0Y2FzZSBVTklfQ01EX1NFUl9TRVRfUkVDT1ZFUl9MNF9NRFA6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTAxOlx0XHRyZXQgPSBtdDc5OTZfbWN1X3NldF9zZXIoZGV2LCBVTklfQ01EX1NFUl9TRVQsIEJJVCh2YWwpLCBiYW5kKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMDItXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEwNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoxMDU6XHRcdHJldCA9IG10Nzk5Nl9tY3Vfc2V0X3NlcihkZXYsIFVOSV9DTURfU0VSX1RSSUdHRVIsIHZhbCwgYmFuZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTA2LVx0XHRicmVhaztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTExLVx0XHRkZXYtXHUwMDNlcmVjb3Zlcnkuc3RhdGUgfD0gTVRfTUNVX0NNRF9XRFRfTUFTSztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoxMTI6XHRcdG10Nzk5Nl9yZXNldChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTExMy1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTExNi1cdGNhc2UgVU5JX0NNRF9TRVJfU0VUX1NZU1RFTV9BU1NFUlQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTE3Olx0XHRyZXQgPSBtdDc5OTZfbWN1X3RyaWdnZXJfYXNzZXJ0KGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTE4LVx0XHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0xMjg9c3RhdGljIHNzaXplX3RcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoxMjk6bXQ3OTk2X3N5c19yZWNvdmVyeV9nZXQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICp1c2VyX2J1ZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMzAtXHRcdFx0c2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTMxLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoxMzI6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZmlsZS1cdTAwM2Vwcml2YXRlX2RhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTMzLVx0Y2hhciAqYnVmZjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjE0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjIxNTpzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBtdDc5OTZfc3lzX3JlY292ZXJ5X29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyMTY6XHQud3JpdGUgPSBtdDc5OTZfc3lzX3JlY292ZXJ5X3NldCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyMTc6XHQucmVhZCA9IG10Nzk5Nl9zeXNfcmVjb3ZlcnlfZ2V0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTIxOC1cdC5vcGVuID0gc2ltcGxlX29wZW4sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTIyMj1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjIzOm10Nzk5Nl9yYWRhcl90cmlnZ2VyKHZvaWQgKmRhdGEsIHU2NCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjI0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjI2LSNkZWZpbmUgUkFEQVJfQkFDS0dST1VORFx0MlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjIyNzpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjIyODpcdHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkgPSBtdDc5OTZfYmFuZF9waHkoZGV2LCBOTDgwMjExX0JBTkRfNUdIWik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjI5LVx0c3RydWN0IGNmZzgwMjExX2NoYW5fZGVmICpjaGFuZGVmO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNDctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjQ4Olx0cmRkX2lkeCA9IG10Nzk5Nl9nZXRfcmRkX2lkeChwaHksIHZhbCA9PSBSQURBUl9CQUNLR1JPVU5EKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNDktXHRpZiAocmRkX2lkeCBcdTAwM2MgMCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjU5Olx0cmV0dXJuIG10Nzk5Nl9tY3VfcmRkX2NtZChkZXYsIFJERF9SQURBUl9FTVVMQVRFLCByZGRfaWR4LCAwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNjAtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0yNjI9REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfcmFkYXJfdHJpZ2dlciwgTlVMTCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyNjM6XHRcdFx0IG10Nzk5Nl9yYWRhcl90cmlnZ2VyLCBcJiMzNDslbGxkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MjY1PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyNjY6bXQ3OTk2X3JkZF9tb25pdG9yKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNjcte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI2ODpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkZXZfZ2V0X2RydmRhdGEocy1cdTAwM2Vwcml2YXRlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNjktXHRzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWYgPSBcdTAwMjZkZXYtXHUwMDNlcmRkMl9jaGFuZGVmO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0zMTI9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjMxMzptdDc5OTZfZndfZGVidWdfd21fc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzE0LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozMTU6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zMTYtXHRlbnVtIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzM3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjMzODpcdHJldCA9IG10Nzk5Nl9tY3VfZndfbG9nXzJfaG9zdChkZXYsIE1DVV9GV19MT0dfV00sIHZhbCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzM5LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzUwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM1MTpcdFx0cmV0ID0gbXQ3OTk2X21jdV9md19kYmdfY3RybChkZXYsIGRlYnVnLCB2YWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM1Mi1cdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MzU5PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNjA6bXQ3OTk2X2Z3X2RlYnVnX3dtX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNjEte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM2MjpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM2My1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzY4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM2OTpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19md19kZWJ1Z193bSwgbXQ3OTk2X2Z3X2RlYnVnX3dtX2dldCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNzA6XHRcdFx0IG10Nzk5Nl9md19kZWJ1Z193bV9zZXQsIFwmIzM0OyVsbGRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM3MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0zNzI9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM3MzptdDc5OTZfZndfZGVidWdfd2Ffc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzc0LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNzU6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNzYtXHRpbnQgcmV0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzgwOlx0cmV0ID0gbXQ3OTk2X21jdV9md19sb2dfMl9ob3N0KGRldiwgTUNVX0ZXX0xPR19XQSwgZGV2LVx1MDAzZWZ3X2RlYnVnX3dhKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zODEtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zODMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Mzg0Olx0cmV0dXJuIG10Nzk5Nl9tY3Vfd2FfY21kKGRldiwgTUNVX1dBX1BBUkFNX0NNRChTRVQpLCBNQ1VfV0FfUEFSQU1fUERNQV9SWCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zODUtXHRcdFx0XHQgISFkZXYtXHUwMDNlZndfZGVidWdfd2EsIDApO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0zODg9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM4OTptdDc5OTZfZndfZGVidWdfd2FfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM5MC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzkxOlx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzkyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zOTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Mzk4OkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX2Z3X2RlYnVnX3dhLCBtdDc5OTZfZndfZGVidWdfd2FfZ2V0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM5OTpcdFx0XHQgbXQ3OTk2X2Z3X2RlYnVnX3dhX3NldCwgXCYjMzQ7JWxsZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDAwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz00MjU9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQyNjptdDc5OTZfZndfZGVidWdfYmluX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQyNy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQzMS1cdH07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDMyOlx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDMzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDQ0Olx0cmV0dXJuIG10Nzk5Nl9md19kZWJ1Z193bV9zZXQoZGV2LCBkZXYtXHUwMDNlZndfZGVidWdfd20pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ0NS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTQ0Nz1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDQ4Om10Nzk5Nl9md19kZWJ1Z19iaW5fZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ0OS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDUwOlx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDUxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDU3OkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX2Z3X2RlYnVnX2JpbiwgbXQ3OTk2X2Z3X2RlYnVnX2Jpbl9nZXQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDU4Olx0XHRcdCBtdDc5OTZfZndfZGVidWdfYmluX3NldCwgXCYjMzQ7JWxsZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTQ2MD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDYxOm10Nzk5Nl9md191dGlsX3dhX3Nob3coc3RydWN0IHNlcV9maWxlICpmaWxlLCB2b2lkICpkYXRhKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ2Mi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDYzOlx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGZpbGUtXHUwMDNlcHJpdmF0ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDY1LVx0aWYgKGRldi1cdTAwM2Vmd19kZWJ1Z193YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NjY6XHRcdHJldHVybiBtdDc5OTZfbWN1X3dhX2NtZChkZXYsIE1DVV9XQV9QQVJBTV9DTUQoUVVFUlkpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ2Ny1cdFx0XHRcdFx0IE1DVV9XQV9QQVJBTV9DUFVfVVRJTCwgMCwgMCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ3MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NzI6REVGSU5FX1NIT1dfQVRUUklCVVRFKG10Nzk5Nl9md191dGlsX3dhKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NDc0PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDc1Om10Nzk5Nl9hbXBkdV9zdGF0X3JlYWRfcGh5KHN0cnVjdCBtdDc5OTZfcGh5ICpwaHksIHN0cnVjdCBzZXFfZmlsZSAqZmlsZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NzYte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ3NzpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBwaHktXHUwMDNlZGV2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ3OC1cdGludCBib3VuZFsxNV0sIHJhbmdlWzhdLCBpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz01MDQ9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1MDU6bXQ3OTk2X3R4YmZfc3RhdF9yZWFkX3BoeShzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LCBzdHJ1Y3Qgc2VxX2ZpbGUgKnMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTA2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NTUyPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTUzOm10Nzk5Nl90eF9zdGF0c19zaG93X3BoeShzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTU0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTU4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU1OTpcdG10Nzk5Nl9tYWNfdXBkYXRlX3N0YXRzKHBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTYwOlx0bXQ3OTk2X2FtcGR1X3N0YXRfcmVhZF9waHkocGh5LCBmaWxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01NjEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU2OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1Njk6XHRtdDc5OTZfdHhiZl9zdGF0X3JlYWRfcGh5KHBoeSwgZmlsZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTcwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz01ODQ9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU4NTptdDc5OTZfdHhfc3RhdHNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTg2LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1ODc6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZmlsZS1cdTAwM2Vwcml2YXRlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU4ODpcdHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkgPSBcdTAwMjZkZXYtXHUwMDNlcGh5O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU4OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTkxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU5MjpcdG10Nzk5Nl90eF9zdGF0c19zaG93X3BoeShmaWxlLCBwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU5MzpcdHBoeSA9IG10Nzk5Nl9waHkyKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTk0LVx0aWYgKHBoeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1OTU6XHRcdG10Nzk5Nl90eF9zdGF0c19zaG93X3BoeShmaWxlLCBwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU5NjpcdHBoeSA9IG10Nzk5Nl9waHkzKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTk3LVx0aWYgKHBoeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1OTg6XHRcdG10Nzk5Nl90eF9zdGF0c19zaG93X3BoeShmaWxlLCBwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU5OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjA0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjYwNTpERUZJTkVfU0hPV19BVFRSSUJVVEUobXQ3OTk2X3R4X3N0YXRzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02MDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NjA3PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjA4Om10Nzk5Nl9od19xdWV1ZV9yZWFkKHN0cnVjdCBzZXFfZmlsZSAqcywgdTMyIHNpemUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjA5LVx0XHQgICAgIGNvbnN0IHN0cnVjdCBod19xdWV1ZV9tYXAgKm1hcClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02MTAte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjYxMTpcdHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkgPSBzLVx1MDAzZXByaXZhdGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjEyOlx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IHBoeS1cdTAwM2VkZXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjEzLVx0dTMyIGksIHZhbDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NjM4PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjM5Om10Nzk5Nl9zdGFfaHdfcXVldWVfcmVhZCh2b2lkICpkYXRhLCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY0MC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjQxOlx0c3RydWN0IG10Nzk5Nl9zdGEgKm1zdGEgPSAoc3RydWN0IG10Nzk5Nl9zdGEgKilzdGEtXHUwMDNlZHJ2X3ByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjQyOlx0c3RydWN0IG10Nzk5Nl92aWYgKm12aWYgPSBtc3RhLVx1MDAzZXZpZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2NDM6XHRzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5ID0gbXQ3OTk2X3ZpZl9saW5rX3BoeShcdTAwMjZtdmlmLVx1MDAzZWRlZmxpbmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY0NC1cdHN0cnVjdCBpZWVlODAyMTFfbGlua19zdGEgKmxpbmtfc3RhO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NDYtXHRzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY0NzpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjQ4LVx0dW5zaWduZWQgaW50IGxpbmtfaWQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY1OC1cdGZvcl9lYWNoX3N0YV9hY3RpdmVfbGluayh2aWYsIHN0YSwgbGlua19zdGEsIGxpbmtfaWQpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2NTk6XHRcdHN0cnVjdCBtdDc5OTZfc3RhX2xpbmsgKm1zdGFfbGluaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NjAtXHRcdHN0cnVjdCBtdDc2X3ZpZl9saW5rICptbGluaztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjY2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY2NzpcdFx0bXN0YV9saW5rID0gbXQ3OTk2X3N0YV9saW5rKG1zdGEsIGxpbmtfaWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY2OC1cdFx0aWYgKCFtc3RhX2xpbmspXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTY5ND1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Njk1Om10Nzk5Nl9od19xdWV1ZXNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjk2LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2OTc6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZmlsZS1cdTAwM2Vwcml2YXRlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY5ODpcdHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkgPSBcdTAwMjZkZXYtXHUwMDNlcGh5O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY5OS1cdHN0YXRpYyBjb25zdCBzdHJ1Y3QgaHdfcXVldWVfbWFwIHBsZV9xdWV1ZV9tYXBbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzQ3LVx0c2VxX3B1dHMoZmlsZSwgXCYjMzQ7UExFIG5vbi1lbXB0eSBxdWV1ZSBpbmZvOlxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzQ4Olx0bXQ3OTk2X2h3X3F1ZXVlX3JlYWQoZmlsZSwgQVJSQVlfU0laRShwbGVfcXVldWVfbWFwKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NDktXHRcdFx0ICAgICBcdTAwMjZwbGVfcXVldWVfbWFwWzBdKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzUyLVx0aWVlZTgwMjExX2l0ZXJhdGVfc3RhdGlvbnNfYXRvbWljKHBoeS1cdTAwM2VtdDc2LVx1MDAzZWh3LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc1MzpcdFx0XHRcdFx0ICBtdDc5OTZfc3RhX2h3X3F1ZXVlX3JlYWQsIGZpbGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc1NDpcdHBoeSA9IG10Nzk5Nl9waHkyKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzU1LVx0aWYgKHBoeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NTYtXHRcdGllZWU4MDIxMV9pdGVyYXRlX3N0YXRpb25zX2F0b21pYyhwaHktXHUwMDNlbXQ3Ni1cdTAwM2VodyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NTc6XHRcdFx0XHRcdFx0ICBtdDc5OTZfc3RhX2h3X3F1ZXVlX3JlYWQsIGZpbGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc1ODpcdHBoeSA9IG10Nzk5Nl9waHkzKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzU5LVx0aWYgKHBoeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NjAtXHRcdGllZWU4MDIxMV9pdGVyYXRlX3N0YXRpb25zX2F0b21pYyhwaHktXHUwMDNlbXQ3Ni1cdTAwM2VodyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NjE6XHRcdFx0XHRcdFx0ICBtdDc5OTZfc3RhX2h3X3F1ZXVlX3JlYWQsIGZpbGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc2Mi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzY0LVx0c2VxX3B1dHMoZmlsZSwgXCYjMzQ7UFNFIG5vbi1lbXB0eSBxdWV1ZSBpbmZvOlxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzY1Olx0bXQ3OTk2X2h3X3F1ZXVlX3JlYWQoZmlsZSwgQVJSQVlfU0laRShwc2VfcXVldWVfbWFwKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NjYtXHRcdFx0ICAgICBcdTAwMjZwc2VfcXVldWVfbWFwWzBdKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzcwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc3MTpERUZJTkVfU0hPV19BVFRSSUJVVEUobXQ3OTk2X2h3X3F1ZXVlcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTc3Mz1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Nzc0Om10Nzk5Nl94bWl0X3F1ZXVlc19zaG93KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NzUte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc3NjpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBmaWxlLVx1MDAzZXByaXZhdGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Nzc3Olx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NzgtXHRzdHJ1Y3Qge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03OTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzkxOlx0cGh5ID0gbXQ3OTk2X3BoeTIoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03OTItXHRpZiAocGh5KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03OTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Nzk1Olx0cGh5ID0gbXQ3OTk2X3BoeTMoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03OTYtXHRpZiAocGh5KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04MTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODE0OkRFRklORV9TSE9XX0FUVFJJQlVURShtdDc5OTZfeG1pdF9xdWV1ZXMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTgxNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz04MTY9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjgxNzptdDc5OTZfdHd0X3N0YXRzKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04MTgte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjgxOTpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkZXZfZ2V0X2RydmRhdGEocy1cdTAwM2Vwcml2YXRlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4MjA6XHRzdHJ1Y3QgbXQ3OTk2X3R3dF9mbG93ICppdGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTgyMS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9ODQ1PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NDY6bXQ3OTk2X3JmX3JlZ3ZhbF9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODQ3LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NDg6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NDktXHR1MzIgcmVndmFsO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODUyOlx0cmV0ID0gbXQ3OTk2X21jdV9yZl9yZWd2YWwoZGV2LCBkZXYtXHUwMDNlbXQ3Ni5kZWJ1Z2ZzX3JlZywgXHUwMDI2cmVndmFsLCBmYWxzZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODUzLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9ODYxPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NjI6bXQ3OTk2X3JmX3JlZ3ZhbF9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NjMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg2NDpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg2NS1cdHUzMiB2YWwzMiA9IHZhbDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODY3Olx0cmV0dXJuIG10Nzk5Nl9tY3VfcmZfcmVndmFsKGRldiwgZGV2LVx1MDAzZW10NzYuZGVidWdmc19yZWcsIFx1MDAyNnZhbDMyLCB0cnVlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NjgtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg2OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NzA6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfcmZfcmVndmFsLCBtdDc5OTZfcmZfcmVndmFsX2dldCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NzE6XHRcdFx0IG10Nzk5Nl9yZl9yZWd2YWxfc2V0LCBcJiMzNDsweCUwOGxseFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg3MzppbnQgbXQ3OTk2X2luaXRfZGVidWdmcyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg3NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg3OS1cdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXCYjMzQ7aHctcXVldWVzXCYjMzQ7LCAwNDAwLCBkaXIsIGRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4ODA6XHRcdFx0ICAgIFx1MDAyNm10Nzk5Nl9od19xdWV1ZXNfZm9wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODgxLVx0ZGVidWdmc19jcmVhdGVfZmlsZShcJiMzNDt4bWl0LXF1ZXVlc1wmIzM0OywgMDQwMCwgZGlyLCBkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODgyOlx0XHRcdCAgICBcdTAwMjZtdDc5OTZfeG1pdF9xdWV1ZXNfZm9wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODgzOlx0ZGVidWdmc19jcmVhdGVfZmlsZShcJiMzNDt0eF9zdGF0c1wmIzM0OywgMDQwMCwgZGlyLCBkZXYsIFx1MDAyNm10Nzk5Nl90eF9zdGF0c19mb3BzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04ODQtXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFwmIzM0O3N5c19yZWNvdmVyeVwmIzM0OywgMDYwMCwgZGlyLCBkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODg1Olx0XHRcdCAgICBcdTAwMjZtdDc5OTZfc3lzX3JlY292ZXJ5X29wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODg2LVx0ZGVidWdmc19jcmVhdGVfZmlsZShcJiMzNDtmd19kZWJ1Z193bVwmIzM0OywgMDYwMCwgZGlyLCBkZXYsIFx1MDAyNmZvcHNfZndfZGVidWdfd20pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04OTAtXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFwmIzM0O2Z3X3V0aWxfd2FcJiMzNDssIDA0MDAsIGRpciwgZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg5MTpcdFx0XHQgICAgXHUwMDI2bXQ3OTk2X2Z3X3V0aWxfd2FfZm9wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODkyLVx0ZGVidWdmc19jcmVhdGVfZmlsZShcJiMzNDtpbXBsaWNpdF90eGJmXCYjMzQ7LCAwNjAwLCBkaXIsIGRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODk0LVx0ZGVidWdmc19jcmVhdGVfZGV2bV9zZXFmaWxlKGRldi1cdTAwM2VtdDc2LmRldiwgXCYjMzQ7dHd0X3N0YXRzXCYjMzQ7LCBkaXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODk1Olx0XHRcdFx0ICAgIG10Nzk5Nl90d3Rfc3RhdHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg5Ni1cdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXCYjMzQ7cmZfcmVndmFsXCYjMzQ7LCAwNjAwLCBkaXIsIGRldiwgXHUwMDI2Zm9wc19yZl9yZWd2YWwpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05MDEtXHRkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3NlcWZpbGUoZGV2LVx1MDAzZW10NzYuZGV2LCBcJiMzNDtyZGRfbW9uaXRvclwmIzM0OywgZGlyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjkwMjpcdFx0XHRcdCAgICBtdDc5OTZfcmRkX21vbml0b3IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkwMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9OTA5PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6OTEwOm10Nzk5Nl9kZWJ1Z2ZzX3dyaXRlX2Z3bG9nKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGNvbnN0IHZvaWQgKmhkciwgaW50IGhkcmxlbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05MTEtXHRcdFx0ICAgY29uc3Qgdm9pZCAqZGF0YSwgaW50IGxlbilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTMzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjkzNDp2b2lkIG10Nzk5Nl9kZWJ1Z2ZzX3J4X2Z3X21vbml0b3Ioc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgY29uc3Qgdm9pZCAqZGF0YSwgaW50IGxlbilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05MzUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05NTUtXHRoZHIubGVuID0gKihfX2xlMTYgKilkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjk1NjpcdG10Nzk5Nl9kZWJ1Z2ZzX3dyaXRlX2Z3bG9nKGRldiwgXHUwMDI2aGRyLCBzaXplb2YoaGRyKSwgZGF0YSwgbGVuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05NTctfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTk1OC1cblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIzOjM3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5OTc3CgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogNzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkFuYWx5emluZyB0aGUgbXQ3OTk2IERyaXZlcioqCgpSaWdodCwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYG10Nzk5NmAuIE15IGluaXRpYWwgdGhvdWdodCB3YXMgdGhhdCBpdCB3YXMgYSBNZWRpYVRlayBXaS1GaSBkcml2ZXIg4oCTIGNvbW1vbiBhc3N1bXB0aW9uIGdpdmVuIHRoZSBuYW1pbmcgY29udmVudGlvbi4gQnV0IHRoZW4sIGEgcmVkIGZsYWcgd2VudCB1cC4gTWVtb3J5IGlzIGhhenksIEkgbmVlZCB0byBjaGVjayBzb21ldGhpbmcuIFdhaXQgYSBzZWNvbmQsIGlzbiYjMzk7dCBgbXQ3OTk2YCBhY3R1YWxseSBhIFBDSWUgZHJpdmVyLCByaWdodD8gSSBuZWVkIHRvIHF1aWNrbHkgY29uZmlybSB0aGlzLiBXaGVyZSB3b3VsZCB0aGF0IGluZm9ybWF0aW9uIGJlIGxvY2F0ZWQ/IEFoLCB5ZXMsIGlmIHRoaXMgaXMgYSBQQ0llIGRyaXZlciwgdGhlIG9idmlvdXMgcGxhY2VzIHRvIGludmVzdGlnYXRlIGFyZSBsaWtlbHkgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jYCBvciBwZXJoYXBzIGBpbml0LmNgLiBUaGF0IHNob3VsZCBnaXZlIG1lIHRoZSBkZXRhaWxzIEkgbmVlZCB0byBjb25maXJtIGl0cyByb2xlIGFuZCBkaXZlIGRlZXBlciBpbnRvIHRoZSBjb2RlJiMzOTtzIHNwZWNpZmljcy4gTGV0JiMzOTtzIHNlZSB3aGF0IHRoZXNlIGZpbGVzIHJldmVhbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMzozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwY2lfZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz04Njg9c3RhdGljIGludCBfX2luaXQgbXQ3OTk2X2luaXQodm9pZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODc1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg3NjpcdHJldCA9IHBjaV9yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2bXQ3OTk2X3BjaV9kcml2ZXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg3Ny1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTg4Mz1zdGF0aWMgdm9pZCBfX2V4aXQgbXQ3OTk2X2V4aXQodm9pZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04ODQte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg4NTpcdHBjaV91bnJlZ2lzdGVyX2RyaXZlcihcdTAwMjZtdDc5OTZfcGNpX2RyaXZlcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODg2LVx0cGNpX3VucmVnaXN0ZXJfZHJpdmVyKFx1MDAyNm10Nzk5Nl9oaWZfZHJpdmVyKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaD02Njk9ZXh0ZXJuIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10Nzk5Nl9vcHM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaDo2NzA6ZXh0ZXJuIHN0cnVjdCBwY2lfZHJpdmVyIG10Nzk5Nl9wY2lfZHJpdmVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg6NjcxOmV4dGVybiBzdHJ1Y3QgcGNpX2RyaXZlciBtdDc5OTZfaGlmX2RyaXZlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oLTY3Mi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYz0yMzM9c3RhdGljIHZvaWQgbXQ3OTk2X3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjQzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM6MjQ0OnN0cnVjdCBwY2lfZHJpdmVyIG10Nzk5Nl9oaWZfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjQ1LVx0Lm5hbWVcdFx0PSBLQlVJTERfTU9ETkFNRSBcJiMzNDtfaGlmXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI1MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jOjI1MTpzdHJ1Y3QgcGNpX2RyaXZlciBtdDc5OTZfcGNpX2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI1Mi1cdC5uYW1lXHRcdD0gS0JVSUxEX01PRE5BTUUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjM6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjExMTYKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiA3NjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgdGhlIG10Nzk5NiBEcml2ZXIgZm9yIEZ1enppbmcqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEgUENJIGRyaXZlciwgc3BlY2lmaWNhbGx5IGBtdDc5OTZgLiBUaGUgcXVlc3Rpb24gaXMsIGNhbiBJIGVmZmVjdGl2ZWx5IGZ1enogdGhpcyBkcml2ZXIgdXNpbmcgc3l6a2FsbGVyPyBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBpdCAqbWlnaHQqIGJlIHBvc3NpYmxlLCBzaW5jZSBzeXprYWxsZXIgKmRvZXMqIGhhdmUgUENJIGZ1enppbmcgY2FwYWJpbGl0aWVzLCByaWdodD8gQnV0IHRoZW4gSSByZW1lbWJlciB0aGUgbm90ZSBhYm91dCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgYW5kIHVucmVhY2hhYmxlIGNvZGUgcGF0aHMuIFRoaXMgZHJpdmVyLCBiZWluZyBoYXJkd2FyZS1zcGVjaWZpYywgdGhyb3dzIHVwIGEgcmVkIGZsYWcuIEkga25vdyBzeXprYWxsZXIgdXNlcyBwc2V1ZG8tc3lzY2FsbHMgbGlrZSBgc3l6X3BjaV8uLi5gLCBidXQgdGhlIHByb21wdCBlbXBoYXNpemVzIHRoYXQgc3l6a2FsbGVyIHBzZXVkby1zeXNjYWxscyBhcmUgbm90IHByZXNlbnQgaW4gdGhlIExpbnV4IGtlcm5lbCBhbmQgY2Fubm90IGJlIHNlYXJjaGVkIHVzaW5nIHRoaXMgdG9vbC4KCk15IGltbWVkaWF0ZSBhc3N1bXB0aW9uIGlzIHRoYXQgd2l0aG91dCB0aGUgYWN0dWFsIE1lZGlhVGVrIE1UNzk5NiBQQ0llIGhhcmR3YXJlLCBvciBhIHByZWNpc2UgUUVNVSBlbXVsYXRpb24gb2YgaXQsIGl0JiMzOTtzIGEgZGVhZCBlbmQuIFFFTVUgZG9lcyAqbm90KiBuYXRpdmVseSBlbXVsYXRlIHRoZSBNVDc5OTYsIHdoaWNoIGtpbGxzIHRoYXQgb3B0aW9uLiBXZSBoYXZlIGBzeXpfdXNiX2Nvbm5lY3RgIGZvciBVU0IsIGBtYWM4MDIxMV9od3NpbWAgZm9yIFdpLUZpLCBidXQgYG10Nzk5NmAgaXMgZGlmZmVyZW50LCBpdCYjMzk7cyBhIHNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciwgbm90IGEgc29mdHdhcmUgc2ltdWxhdG9yLgoKV2FpdCwgc3l6a2FsbGVyICpkb2VzKiBoYXZlIHNvbWUgbGV2ZWwgb2YgUENJIGZ1enppbmcsIHJpZ2h0PyBJdCB1c2VzIGBzeXpfcGNpXy4uLmAgcHNldWRvLXN5c2NhbGxzLCBvciBtYXliZSBpdCBpbmplY3RzIFBDSSBkZXZpY2VzIHNvbWVob3c/IEl0IGNhbiYjMzk7dCBiZSB0aGF0IHNpbXBsZS4gQW5kIHRoZW4gSSBoYXZlIHRvIHJlbWVtYmVyIHRoYXQgdGhlIHRvb2wgSSYjMzk7bSB1c2luZyBjYW4mIzM5O3Qgc2VhcmNoIGZvciB0aG9zZSBgc3l6X2AgcHNldWRvLXN5c2NhbGxzIGRpcmVjdGx5LgoKT2theSwgc28gdGhlIGBtdDc5OTZgIGRyaXZlciBoYXMgYW4gYG10Nzk5Nl90aGVybWFsX2luaXRgIGZ1bmN0aW9uLiBDYW4gSSByZWFjaCBpdCBkdXJpbmcgaW5pdGlhbGl6YXRpb24/IFRoZSBrZXkgaGVyZSBpcyBpZiB0aGUgYG10Nzk5NmAgZHJpdmVyIGl0c2VsZiBpcyByZWFjaGFibGUuIEkgY2hlY2ssIGFuZCBpdCYjMzk7cyBjb25maXJtZWQ7IGl0JiMzOTtzIGEgUENJIGRyaXZlci4KClNvLCB0aGUgaXNzdWUgaXMgY2xlYXI6IENhbiBJIHByb2JlIGEgUENJIGRyaXZlciB3aXRob3V0IHRoZSBoYXJkd2FyZT8gU3l6a2FsbGVyIHVzZXMgYHZoY2lgIGZvciBVU0IsIGBuZXRkZXZzaW1gIGZvciBuZXR3b3JraW5nLCBhbmQgYG1hYzgwMjExX2h3c2ltYCBmb3IgV2ktRmkuIEJ1dCBgbWFjODAyMTFfaHdzaW1gIGRvZXNuJiMzOTt0IGhlbHAgaGVyZSwgaXQmIzM5O3MgYSBzb2Z0d2FyZSBzaW11bGF0b3IgdGhhdCAqZG9lc24mIzM5O3QqIHVzZSBgbXQ3OTk2YC4KClNvLCAqZG9lcyogc3l6a2FsbGVyIGhhdmUgc29tZSBnZW5lcmljIFBDSSBkZXZpY2UgZW11bGF0b3IgdmlhIGEgdmlydHVhbCBQQ0kgYnVzLCBvciBtYXliZSB2aWEgYHZmaW9gPyBOb3BlLiBJIHRoZW4gY2hlY2sgYWdhaW4sIGNvbmZpcm1pbmcgdGhhdCBgbXQ3OTk2YCBpcyBpbmRlZWQgYSBNZWRpYVRlayBXaS1GaSA3IGRyaXZlci4KClNvLCBpZiBpdCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIsIGl04oCZcyBnZW5lcmFsbHkgdW5yZWFjaGFibGUgdW5sZXNzIHRoZXJlIGlzIGEgc3BlY2lmaWMgZW11bGF0b3IuIEFuZCBJIGhhdmUgdG8gYXNzdW1lLCBnaXZlbiB0aGUgY29udGV4dCwgdGhhdCBhIHNwZWNpZmljIGVtdWxhdG9yIGRvZXNuJiMzOTt0IGV4aXN0LiBUaGVyZSBtaWdodCBiZSBzb21lIGludGVyZXN0aW5nIGNvZGUgbGlrZSBgZGV2bV90aGVybWFsX29mX3pvbmVfcmVnaXN0ZXJgLCBidXQgaXQmIzM5O3MgbW9vdCBpZiB0aGUgZHJpdmVyIGNhbm5vdCBiZSBwcm9iZWQuIFRoZSBib3R0b20gbGluZSBpcywgdGhpcyBjb2RlIGlzIGxpa2VseSB1bnJlYWNoYWJsZSB3aXRob3V0IHRoZSBoYXJkd2FyZSBvciBhIHN1aXRhYmxlIGVtdWxhdG9yLiBJIG5lZWQgdG8gdmVyaWZ5IGlmIHRoZXJlJiMzOTtzICphbnkqIHdheSB0byBwcm9iZSBgbXQ3OTk2YCB3aXRob3V0IHRoZSBoYXJkd2FyZSBiZWZvcmUgSSB3YXN0ZSB0aW1lIG9uIHRoaXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjM6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTk2X3BjaV9kcml2ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTg2OD1zdGF0aWMgaW50IF9faW5pdCBtdDc5OTZfaW5pdCh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04NzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODc2Olx0cmV0ID0gcGNpX3JlZ2lzdGVyX2RyaXZlcihcdTAwMjZtdDc5OTZfcGNpX2RyaXZlcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODc3LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODgzPXN0YXRpYyB2b2lkIF9fZXhpdCBtdDc5OTZfZXhpdCh2b2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg4NC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODg1Olx0cGNpX3VucmVnaXN0ZXJfZHJpdmVyKFx1MDAyNm10Nzk5Nl9wY2lfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04ODYtXHRwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2bXQ3OTk2X2hpZl9kcml2ZXIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oPTY2OT1leHRlcm4gY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgbXQ3OTk2X29wcztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oOjY3MDpleHRlcm4gc3RydWN0IHBjaV9kcml2ZXIgbXQ3OTk2X3BjaV9kcml2ZXI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaC02NzEtZXh0ZXJuIHN0cnVjdCBwY2lfZHJpdmVyIG10Nzk5Nl9oaWZfZHJpdmVyO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jPTI0ND1zdHJ1Y3QgcGNpX2RyaXZlciBtdDc5OTZfaGlmX2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYzoyNTE6c3RydWN0IHBjaV9kcml2ZXIgbXQ3OTk2X3BjaV9kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNTItXHQubmFtZVx0XHQ9IEtCVUlMRF9NT0ROQU1FLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIzOjM3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzMjU4CgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogNDAyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgUENJIERyaXZlciBGdXp6aW5nIEZlYXNpYmlsaXR5KioKCk9rYXksIHNvIHRoZSBwcm9tcHQgbWVudGlvbnMgYSBQQ0kgZHJpdmVyIGFuZCB0aGUgbGltaXRhdGlvbnMgb2YgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBGaXJzdCB0aG91Z2h0OiBDYW4gU3l6a2FsbGVyIGhhbmRsZSB0aGlzIGRyaXZlcj8gRG9lcyBTeXprYWxsZXIgaGF2ZSBhIGdlbmVyaWMgd2F5IHRvIGZ1enogKmFyYml0cmFyeSogUENJIGRyaXZlcnM/IFVubGVzcywgb2YgY291cnNlLCB0aGVyZSYjMzk7cyBhIHZpcnR1YWwgZGV2aWNlIGFscmVhZHkgaW4gcGxhY2UsIG9yIGEgZGVkaWNhdGVkIFBDSSBmdXp6ZXIuIFdhaXQuLi4gZG9lcyBTeXprYWxsZXIgKmhhdmUqIGEgUENJIGZ1enplcj8KCkFoLCByaWdodCwgYHN5el9wY2lfLi4uYCBwc2V1ZG8tc3lzY2FsbHMhIFllcywgdGhlcmUgaXMgYSBQQ0kgZnV6emVyIHRoYXQgZW11bGF0ZXMgUENJIGRldmljZXMuIEJ1dCwgdGhlIHByb21wdCByYWlzZXMgYSBjcnVjaWFsIHBvaW50IGFib3V0IGNvZGUgcGF0aHMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCBldmVuIHdpdGggZW11bGF0ZWQgaGFyZHdhcmUuIFNvLCBjYW4gU3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6ZXIgZW11bGF0ZSAqYXJiaXRyYXJ5KiBQQ0kgZGV2aWNlcywgb3IgaXMgaXQganVzdCBsaW1pdGVkIHRvIGluamVjdGluZyB0aGVtPwoKT2theSwgbGV0JiMzOTtzIHRoaW5rIHRoaXMgdGhyb3VnaC4gU3l6a2FsbGVyIGhhcyBhIFVTQiBmdXp6ZXIgYmVjYXVzZSBVU0IgaGFzIGEgc29mdHdhcmUtZGVmaW5lZCBpbnRlcmZhY2UgZm9yIGRldmljZSBlbXVsYXRpb24uIFVTQiBnYWRnZXQgaXMgdGhlIGtleS4gQnV0IFBDSSBpcyAqZGlmZmVyZW50Ki4gSXQgbGFja3MgYSBnZW5lcmljIHNvZnR3YXJlLWRlZmluZWQgaW50ZXJmYWNlIGluIHRoZSBMaW51eCBrZXJuZWwgZm9yIGFyYml0cmFyeSBkZXZpY2UgZW11bGF0aW9uLiBUbyBlbXVsYXRlIGEgUENJIGRldmljZSwgeW91IG5lZWQgc29tZXRoaW5nIGxpa2UgYSBRRU1VIGRldmljZSBtb2RlbCwgb3IgcG9zc2libHkgYSBzcGVjaWZpYyBrZXJuZWwgbW9kdWxlPyBgdmZpb2A/IE5vLCB0aGF0JiMzOTtzIGZvciB1c2Vyc3BhY2UgZHJpdmVycywgdGhhdCYjMzk7cyBub3Qgd2hhdCBJJiMzOTttIGxvb2tpbmcgZm9yLgoKQWgsIHRoZXJlIGlzbiYjMzk7dCBhICpnZW5lcmljKiBQQ0kgZGV2aWNlIGVtdWxhdG9yIGluIHRoZSBrZXJuZWwgdGhhdCBsZXRzIHVzZXJzcGFjZSBlbXVsYXRlIGFyYml0cmFyeSBkZXZpY2VzLgoKVGhlcmVmb3JlLCBmb3IgdGhpcyBzcGVjaWZpYyBoYXJkd2FyZSBkZXZpY2UgbGlrZSB0aGUgTWVkaWFUZWsgTVQ3OTk2LCBpdCYjMzk7cyB2aXJ0dWFsbHkgaW1wb3NzaWJsZSB0byBwcm9iZSBhbmQgZnV6eiB0aGlzIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgdW5sZXNzIFFFTVUgKnNwZWNpZmljYWxseSogZW11bGF0ZXMgaXQsIHdoaWNoIGl0IGRvZXNuJiMzOTt0LiBPa2F5LCBJJiMzOTtsbCBkb3VibGUtY2hlY2sgZm9yIGEgcGxhdGZvcm0gZHJpdmVyIG9yIHNvbWV0aGluZyBzaW1pbGFyIHRvIHNlZSBpZiB0aGVyZSYjMzk7cyBhbnkgb3RoZXIgb3B0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMzozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc5OTZfcGNpX3Byb2JlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jPTc5PXN0YXRpYyBpbnQgbXQ3OTk2X3BjaV9oaWYyX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTk4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM6OTk6c3RhdGljIGludCBtdDc5OTZfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMTAwLVx0XHRcdCAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM9MjQ0PXN0cnVjdCBwY2lfZHJpdmVyIG10Nzk5Nl9oaWZfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI0Ni1cdC5pZF90YWJsZVx0PSBtdDc5OTZfaGlmX2RldmljZV90YWJsZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jOjI0NzpcdC5wcm9iZVx0XHQ9IG10Nzk5Nl9wY2lfcHJvYmUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNDgtXHQucmVtb3ZlXHRcdD0gbXQ3OTk2X2hpZl9yZW1vdmUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM9MjUxPXN0cnVjdCBwY2lfZHJpdmVyIG10Nzk5Nl9wY2lfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI1My1cdC5pZF90YWJsZVx0PSBtdDc5OTZfcGNpX2RldmljZV90YWJsZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jOjI1NDpcdC5wcm9iZVx0XHQ9IG10Nzk5Nl9wY2lfcHJvYmUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNTUtXHQucmVtb3ZlXHRcdD0gbXQ3OTk2X3BjaV9yZW1vdmUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIzOjM3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0NjQ5CgkJCQkJCQlvdXRwdXQ6IDQ4CgkJCQkJCQl0aG91Z2h0czogMTk2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlBDSSBGdXp6aW5nIENvbnVuZHJ1bSoqCgpPa2F5LCB3YWl0IGEgbWludXRlLCBkb2VzIHN5emthbGxlciBldmVuICpoYXZlKiBhIFBDSSBmdXp6ZXI/IEkgc2hvdWxkIHByb2JhYmx5IGRvdWJsZS1jaGVjay4gTGV0IG1lIHNlZSBpZiB0aGVyZSYjMzk7cyBhbnl0aGluZyBvYnZpb3VzIGluIHRoZSBrZXJuZWwgc291cmNlLCBsaWtlIGEgYHN5el9wY2lgIGNhbGwuIE9oLCByaWdodCwgdGhlIHByb21wdCB3YXJuZWQgbWUuIEl0IHNwZWNpZmljYWxseSBzYWlkIG5vdCB0byBsb29rIGZvciBhbnl0aGluZyBzdGFydGluZyB3aXRoICYjMzQ7c3l6XyYjMzQ7IGluIHRoZSBrZXJuZWwgaXRzZWxmLiBUaG9zZSBhcmUganVzdCBzeXprYWxsZXImIzM5O3MgaW50ZXJuYWwgcHNldWRvLXN5c2NhbGxzLiBPa2F5LCBzbyBzY3JhdGNoIHRoYXQuCgpJbnN0ZWFkIG9mIGxvb2tpbmcgZm9yIGEgc3l6X3BjaSwgSSBzaG91bGQgbG9vayBmb3IgYSBQQ0kgZW11bGF0aW9uIGZyYW1ld29yaywgKndpdGhpbiogdGhlIGtlcm5lbC4gTGV0IG1lIHNlZS4uLiBBaGEsIEkgc2VlIGBDT05GSUdfUENJX0VORFBPSU5UX1RFU1RgLCBidXQgdGhhdCYjMzk7cyBqdXN0IGZvciBlbmRwb2ludHMsIG5vdCBhIGdlbmVyYWwgZW11bGF0aW9uIGZyYW1ld29yay4gU28sIG5vLCB0aGVyZSBpc24mIzM5O3QgYW55IGdlbmVyaWMgUENJIGVtdWxhdGlvbiBjYXBhYmlsaXR5IGluIHRoZSBrZXJuZWwgdGhhdCB3b3VsZCBsZXQgdXNlcnNwYWNlIGp1c3QgZGVmaW5lIGFuZCBpbnRlcmFjdCB3aXRoIGFuIGFyYml0cmFyeSBQQ0kgZGV2aWNlLgoKSG1tLCB3aGF0IGlmIHRoZSBkcml2ZXIgaXNuJiMzOTt0IHN0cmljdGx5IFBDSSBidXQgY2FuIGFsc28gYmUgYWNjZXNzZWQgdmlhIFNESU8gb3IgVVNCPyBJIG5lZWQgdG8gZmluZCB0aGUgZHJpdmVyIGRpcmVjdG9yeSwgc28gbGV0IG1lIHNlZeKApiBBbHJpZ2h0LCB0aGUgZGlyZWN0b3J5IGlzIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9gLiBOb3cgbGV0JiMzOTtzIGRpZyBpbnRvIHRoZSBgTWFrZWZpbGVgIHRvIHNlZSBob3cgaXQgd29ya3MuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIzOjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210Nzk5NmUteSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlPTM9b2JqLSQoQ09ORklHX01UNzk5NkUpICYjNDM7PSBtdDc5OTZlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTo1Om10Nzk5NmUteSA6PSBwY2kubyBpbml0Lm8gZG1hLm8gZWVwcm9tLm8gbWFpbi5vIG1jdS5vIG1hYy5vIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS02LVx0ICAgICBkZWJ1Z2ZzLm8gbW1pby5vXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIzOjM3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI1MzQ2CgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogMTM3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgVGhpcyBQQ0kgRHJpdmVyJiMzOTtzIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIHRoZSBpc3N1ZSBhdCBoYW5kIGlzIHNvbGVseSB3aXRoaW4gYHBjaS5vYC4gVGhhdCBpbW1lZGlhdGVseSBmbGFncyBpdCBhcyBhIFBDSS1zcGVjaWZpYyBkcml2ZXIuIEdpdmVuIHRoYXQgaXQgdGFyZ2V0cyBhIHBhcnRpY3VsYXIgaGFyZHdhcmUgZGV2aWNlIHRocm91Z2ggdGhlIFBDSSBpbnRlcmZhY2UsIEkga25vdywgYmFzZWQgb24gZXhwZXJpZW5jZSwgdGhhdCB0aGUgbGlrZWxpaG9vZCBvZiB0cmlnZ2VyaW5nIGl0IGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQg4oCTIGxpa2UgYSBHQ0UgaW5zdGFuY2Ugb3IgUUVNVSDigJMgaXMgZWZmZWN0aXZlbHkgemVybywgYmFycmluZyB2ZXJ5IHNwZWNpZmljIGFuZCBzb3BoaXN0aWNhdGVkIGVtdWxhdGlvbi4KCkNvbnNlcXVlbnRseSwgYW55IGNvZGUgcGF0aHMgcmVzaWRpbmcgd2l0aGluIGBtdDc5OTZfdGhlcm1hbF9pbml0YCBhbmQgYG10Nzk5Nl90aGVybWFsX2dldF90ZW1wYCBhcmUsIGluIHRoaXMgY29udGV4dCwgaW5hY2Nlc3NpYmxlLiBUaGV5IGFyZSBpbnRpbWF0ZWx5IHRpZWQgdG8gdGhlIGhhcmR3YXJlIGludGVyYWN0aW9uIHRoYXQgc2ltcGx5IHdvbiYjMzk7dCBiZSBhdmFpbGFibGUgdG8gbWUgZHVyaW5nIG15IGZ1enppbmcgZWZmb3J0cyBpbiB0aGlzIHR5cGUgb2YgZW52aXJvbm1lbnQuCgpUaGVyZWZvcmUsIHRoZSBwcnVkZW50IGFuZCByZXNvdXJjZS1jb25zY2lvdXMgZGVjaXNpb24gaGVyZSBpcyB0byBkZWNsYXJlIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJdCYjMzk7cyBhIHdhc3RlIG9mIHRpbWUgdG8gY2hhc2UgZnVuY3Rpb25hbGl0eSB0aGF0JiMzOTtzIGZ1bmRhbWVudGFsbHkgdW5yZWFjaGFibGUgd2l0aG91dCB0aGUgYXBwcm9wcmlhdGUgcGh5c2ljYWwgaGFyZHdhcmUgb3IgYSB2ZXJ5IHNwZWNpYWxpemVkIGVtdWxhdG9yLgoKSnVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIGxldCBtZSBxdWlja2x5IHNjYW4gdGhlIGJyb2FkZXIgZGV2aWNlIHJlZ2lzdHJhdGlvbiBsYW5kc2NhcGUgd2l0aGluIHRoZSBkcml2ZXIuIEFyZSB0aGVyZSBhbnkgaW5kaWNhdGlvbnMgb2YgcGxhdGZvcm0gZGV2aWNlIHJlZ2lzdHJhdGlvbiBvciBhbHRlcm5hdGUgcGF0aHdheXMgdGhhdCBtaWdodCBhbGxvdyBmb3Igc29tZSBmb3JtIG9mIGNvZGUgZXhlY3V0aW9uIHdpdGhpbiB0aGlzIGRyaXZlcj8gSSBuZWVkIHRvIGJlIHN1cmUgdGhhdCBJIGhhdmVuJiMzOTt0IG1pc3NlZCBhIG1vcmUgaW5kaXJlY3QgbWV0aG9kIG9mIGdldHRpbmcgYXQgaXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIzOjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGxhdGZvcm1fZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjM6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjU4MTYKCQkJCQkJCW91dHB1dDogMTE2CgkJCQkJCQl0aG91Z2h0czogNTA0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoRnV6emluZz1mYWxzZTogTWVkaWFUZWsgV2ktRmkgRHJpdmVyIEFuYWx5c2lzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIE1lZGlhVGVrIFdpLUZpIGRyaXZlciwgdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgaWYgaXQmIzM5O3MgYSBnb29kIHRhcmdldCBmb3IgZnV6emluZy4gSW5pdGlhbGx5LCBJIHdhcyB0aGlua2luZywgJiMzNDtObyBwbGF0Zm9ybSBkcml2ZXIsIHNvIGlzIHRoZXJlIGFub3RoZXIgd2F5IHRvIGdldCBhdCB0aGlzPyYjMzQ7IFRoZSBhbnN3ZXIgaXMgcHJldHR5IGNsZWFyOiBOby4KClRoZW4gSSBoYWQgYSBmbGlja2VyIG9mIGFuIGlkZWEsICYjMzQ7V2FpdCwgTWVkaWFUZWsgZHJpdmVycywgc29tZXRpbWVzIHVzZWQgaW4gU29DcyBhcyBwbGF0Zm9ybSBkZXZpY2VzLCBtYXliZSBpdCBjb3VsZCBiZSB1c2VkIGJ5IFNvQ3MsIGxpa2UgT3BlbldydCByb3V0ZXJzIGFuZCBzdWNoPyYjMzQ7IEkgY2hlY2tlZCB0aGUgY29kZS4gVGhlIE1ha2VmaWxlIG9ubHkgYnVpbGRzIGBwY2kub2AgYW5kIGBtbWlvLm9gLCBzbyBpdCBzZWVtcyBpdCYjMzk7cyBub3QgdGhlIGNhc2UuIFRoZSBgbXQ3OTk2X2luaXRgIGZ1bmN0aW9uIG9ubHkgcmVnaXN0ZXJzIHRoZSBQQ0kgZHJpdmVycy4KClNvIGl0JiMzOTtzIHB1cmVseSBhIFBDSSBkcml2ZXIuIFRoYXQmIzM5O3MgYSBwcm9ibGVtLiBTeXprYWxsZXIgcnVucyBpbiBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgYW5kIHRoZXJlJiMzOTtzIG5vIGdlbmVyaWMgUENJIGRldmljZSBlbXVsYXRvciBidWlsdCBpbnRvIHRoZSBMaW51eCBrZXJuZWwgbGlrZSB3aXRoIFVTQiBnYWRnZXQgb3IgYG1hYzgwMjExX2h3c2ltYC4gVGhpcyBtZWFucyB0aGF0IFBDSSBkcml2ZXJzIGZvciBzcGVjaWZpYyBoYXJkd2FyZSBqdXN0IGNhbiYjMzk7dCBiZSBwcm9iZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gVGhpcyBtZWFucyB0aGUgdGhlcm1hbCB6b25lIHJlZ2lzdHJhdGlvbiBhbmQgdGhlIGBtdDc5OTZfdGhlcm1hbF9nZXRfdGVtcGAgZnVuY3Rpb24gYXJlIHVucmVhY2hhYmxlIHZpYSBmdXp6aW5nLgoKTXkgY29uY2x1c2lvbiBpcyB0aGF0IHRoaXMgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0kgZHJpdmVyIHRoYXQgY2Fubm90IGJlIGVmZmVjdGl2ZWx5IGZ1enplZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBUaGVyZWZvcmUsIEkgbmVlZCB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuCgpMZXQgbWUganVzdCBjb25maXJtIHRoZXJlIGlzbiYjMzk7dCBzb21lIGhpZGRlbiBnZW5lcmljIFBDSSBkZXZpY2UgZW11bGF0b3IgaW4gdGhlIGtlcm5lbCB0aGF0IEkmIzM5O20gZm9yZ2V0dGluZy4uLiBUaGVyZSYjMzk7cyBgUENJX1NUVUJgIGJ1dCB0aGF0JiMzOTtzIGZvciBoaWRpbmcgZGV2aWNlcyBmcm9tIHRoZSBob3N0LCBub3QgZm9yIGVtdWxhdGluZy4gVGhlbiB0aGVyZSYjMzk7cyBgVkZJT19QQ0lgLCBidXQgdGhhdCYjMzk7cyBmb3IgcGFzc2luZyB0aHJvdWdoICpyZWFsKiBkZXZpY2VzLiBOb3RoaW5nIHRoZXJlLiBTbywgcmVhbGx5LCBTeXprYWxsZXImIzM5O3MgUENJIGZ1enppbmcgKnJlbGllcyogb24gUUVNVSYjMzk7cyBQQ0kgZW11bGF0aW9uLCBvciBpdCBkb2VzbiYjMzk7dCBleGlzdC4uLgoKV2FpdCwgZG9lc24mIzM5O3QgU3l6a2FsbGVyIGhhdmUgYSBQQ0kgZnV6emVyPyBIb3cgZG9lcyB0aGF0IHdvcms/IERvZXMgaXQgaW5qZWN0IFBDSSBkZXZpY2VzIHZpYSBhIGN1c3RvbSBRRU1VIGRldmljZSBvciBzb21ldGhpbmc/IE5vLCBpdCBkb2VzbiYjMzk7dC4gU3l6a2FsbGVyIHVzZXMgYHN5el9wY2lfLi4uYCB3aGljaCBtaWdodCBiZSBpbXBsZW1lbnRlZCB2aWEgc29tZSBjdXN0b20ga2VybmVsIG1vZHVsZT8gTm8sIHN5emthbGxlciBkb2VzbiYjMzk7dCB1c2UgY3VzdG9tIGtlcm5lbCBtb2R1bGVzLiBJdCBkb2VzIHVzZSBgdmhjaWAgZm9yIFVTQiwgYnV0IEkgY2FuJiMzOTt0IGZpbmQgYSBgdmhjaWAgZXF1aXZhbGVudCBmb3IgUENJLgoKUmlnaHQsIHRoZW4gaG93PyBEb2VzIFN5emthbGxlciBoYXZlIGEgY3VzdG9tIFFFTVUgZGV2aWNlPyBOby4gVGhlbiwgaG93IGRvIHRoZXkgaW5qZWN0IFBDSSBkZXZpY2VzLCBzeXprYWxsZXIgdXNlcyB0aGUgYHN5el9wY2lgIHBzZXVkby1zeXNjYWxscyB3aGljaCBhcmUgaW1wbGVtZW50ZWQgaW4gdGhlIGV4ZWN1dG9yLCBidXQgaG93IGRvIHRoZXkgaW5qZWN0IFBDSSBkZXZpY2VzPyBUaGV5IGRvbiYjMzk7dC4gVGhleSBqdXN0IGZ1enogdGhlIFBDSSBjb25maWd1cmF0aW9uIHNwYWNlIG9mIGV4aXN0aW5nIGRldmljZXM/IE5vLiBJdCBpbmplY3RzIGEgKm5ldyogUENJIGRldmljZS4gQWN0dWFsbHksIHN5emthbGxlciBkb2VzIG5vdCBoYXZlIGEgZ2VuZXJpYyBQQ0kgZGV2aWNlIGVtdWxhdG9yLgoKR2l2ZW4gYWxsIG9mIHRoYXQsIGl0IGlzIGNsZWFyIHRoYXQgSSB3aWxsIHNldCBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjM6Mzg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVkaWFUZWsgTVQ3OTk2IFdpLUZpIGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0kgZHJpdmVyLiBTaW5jZSB0aGVyZSBpcyBubyBnZW5lcmljIFBDSSBkZXZpY2UgZW11bGF0b3IgaW4gdGhlIExpbnV4IGtlcm5lbCAodW5saWtlIFVTQiBnYWRnZXQgb3IgbWFjODAyMTFfaHdzaW0pLCB0aGlzIGRyaXZlciBjYW5ub3QgYmUgcHJvYmVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFIHdpdGhvdXQgdGhlIGFjdHVhbCBoYXJkd2FyZS4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVkaWFUZWsgTVQ3OTk2IFdpLUZpIGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0kgZHJpdmVyLiBTaW5jZSB0aGVyZSBpcyBubyBnZW5lcmljIFBDSSBkZXZpY2UgZW11bGF0b3IgaW4gdGhlIExpbnV4IGtlcm5lbCAodW5saWtlIFVTQiBnYWRnZXQgb3IgbWFjODAyMTFfaHdzaW0pLCB0aGlzIGRyaXZlciBjYW5ub3QgYmUgcHJvYmVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFIHdpdGhvdXQgdGhlIGFjdHVhbCBoYXJkd2FyZS4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjJUMjM6Mzc6MDQuMDM2MjcxMjM5WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjQ4NjM4OTM3MDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYVRlayBNVDc5OTYgV2ktRmkgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIuIFNpbmNlIHRoZXJlIGlzIG5vIGdlbmVyaWMgUENJIGRldmljZSBlbXVsYXRvciBpbiB0aGUgTGludXgga2VybmVsICh1bmxpa2UgVVNCIGdhZGdldCBvciBtYWM4MDIxMV9od3NpbSksIHRoaXMgZHJpdmVyIGNhbm5vdCBiZSBwcm9iZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0Ugd2l0aG91dCB0aGUgYWN0dWFsIGhhcmR3YXJlLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjM3OjA0LjAzNjI3Nzc5OVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQ3MzU4NTMxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMjFjNDUyNzBlOGFlYTVjNWM4N2NkOGI2ZjZjNDBmODgwY2RiMzFmZlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgV2VkIEp1bCAyMiAyMzozNzowMiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmNcXG5pbmRleCBkNmY5YWExYWI1MmQxMi4uMTE1MTQ1Zjk5M2QwMTYgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jXFxuQEAgLTIzNiw2ICsyMzYsMjMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0aGVybWFsX2Nvb2xpbmdfZGV2aWNlX29wcyBtdDc5OTZfdGhlcm1hbF9vcHMgPSB7XFxuIFxcdC5zZXRfY3VyX3N0YXRlID0gbXQ3OTk2X3RoZXJtYWxfc2V0X2N1cl90aHJvdHRsZV9zdGF0ZSxcXG4gfTtcXG4gXFxuK3N0YXRpYyBpbnQgbXQ3OTk2X3RoZXJtYWxfZ2V0X3RlbXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgKnRlbXApXFxuK3tcXG4rXFx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeSA9IHRoZXJtYWxfem9uZV9kZXZpY2VfcHJpdih0eik7XFxuK1xcdGludCB2YWw7XFxuK1xcbitcXHR2YWwgPSBtdDc5OTZfbWN1X2dldF90ZW1wZXJhdHVyZShwaHkpO1xcbitcXHRpZiAodmFsIFxcdTAwM2MgMClcXG4rXFx0XFx0cmV0dXJuIHZhbDtcXG4rXFxuK1xcdCp0ZW1wID0gdmFsICogMTAwMDtcXG4rXFx0cmV0dXJuIDA7XFxuK31cXG4rXFxuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZV9vcHMgbXQ3OTk2X3R6X29wcyA9IHtcXG4rXFx0LmdldF90ZW1wID0gbXQ3OTk2X3RoZXJtYWxfZ2V0X3RlbXAsXFxuK307XFxuK1xcbiBzdGF0aWMgdm9pZCBtdDc5OTZfdW5yZWdpc3Rlcl90aGVybWFsKHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkpXFxuIHtcXG4gXFx0c3RydWN0IHdpcGh5ICp3aXBoeSA9IHBoeS1cXHUwMDNlbXQ3Ni1cXHUwMDNlaHctXFx1MDAzZXdpcGh5O1xcbkBAIC0yNzcsNiArMjk0LDE3IEBAIHN0YXRpYyBpbnQgbXQ3OTk2X3RoZXJtYWxfaW5pdChzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxcbiBcXHRwaHktXFx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTk2X0NSSVRfVEVNUF9JRFhdID0gTVQ3OTk2X0NSSVRfVEVNUDtcXG4gXFx0cGh5LVxcdTAwM2V0aHJvdHRsZV90ZW1wW01UNzk5Nl9NQVhfVEVNUF9JRFhdID0gTVQ3OTk2X01BWF9URU1QO1xcbiBcXG4rXFx0cGh5LVxcdTAwM2V0em9uZSA9IGRldm1fdGhlcm1hbF9vZl96b25lX3JlZ2lzdGVyKHBoeS1cXHUwMDNlZGV2LVxcdTAwM2VtdDc2LmRldixcXG4rXFx0XFx0XFx0XFx0XFx0XFx0ICAgcGh5LVxcdTAwM2VtdDc2LVxcdTAwM2ViYW5kX2lkeCwgcGh5LFxcbitcXHRcXHRcXHRcXHRcXHRcXHQgICBcXHUwMDI2bXQ3OTk2X3R6X29wcyk7XFxuK1xcdGlmIChJU19FUlIocGh5LVxcdTAwM2V0em9uZSkpIHtcXG4rXFx0XFx0aWYgKFBUUl9FUlIocGh5LVxcdTAwM2V0em9uZSkgIT0gLUVOT0RFVilcXG4rXFx0XFx0XFx0ZGV2X3dhcm4ocGh5LVxcdTAwM2VkZXYtXFx1MDAzZW10NzYuZGV2LFxcbitcXHRcXHRcXHRcXHQgXFxcImZhaWxlZCB0byByZWdpc3RlciB0aGVybWFsIHpvbmUlZDogJWxkXFxcXG5cXFwiLFxcbitcXHRcXHRcXHRcXHQgcGh5LVxcdTAwM2VtdDc2LVxcdTAwM2ViYW5kX2lkeCwgUFRSX0VSUihwaHktXFx1MDAzZXR6b25lKSk7XFxuK1xcdFxcdHBoeS1cXHUwMDNldHpvbmUgPSBOVUxMO1xcbitcXHR9XFxuK1xcbiBcXHRpZiAoIUlTX1JFQUNIQUJMRShDT05GSUdfSFdNT04pKVxcbiBcXHRcXHRyZXR1cm4gMDtcXG4gXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmhcXG5pbmRleCAwZDY0ODg1MjJiYTcxMS4uMTIwN2I1YzdlOThiOWQgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmhcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaFxcbkBAIC0zNzIsNiArMzcyLDcgQEAgc3RydWN0IG10Nzk5Nl9waHkge1xcbiBcXG4gXFx0c3RydWN0IGllZWU4MDIxMV9zYmFuZF9pZnR5cGVfZGF0YSBpZnR5cGVbTlVNX05MODAyMTFfQkFORFNdW05VTV9OTDgwMjExX0lGVFlQRVNdO1xcbiBcXG4rXFx0c3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6b25lO1xcbiBcXHRzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZSAqY2RldjtcXG4gXFx0dTggY2Rldl9zdGF0ZTtcXG4gXFx0dTggdGhyb3R0bGVfc3RhdGU7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjM3OjA0LjU4NDU5NTA3WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NjQzMTU1NDkzODgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYVRlayBNVDc5OTYgV2ktRmkgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIuIFNpbmNlIHRoZXJlIGlzIG5vIGdlbmVyaWMgUENJIGRldmljZSBlbXVsYXRvciBpbiB0aGUgTGludXgga2VybmVsICh1bmxpa2UgVVNCIGdhZGdldCBvciBtYWM4MDIxMV9od3NpbSksIHRoaXMgZHJpdmVyIGNhbm5vdCBiZSBwcm9iZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0Ugd2l0aG91dCB0aGUgYWN0dWFsIGhhcmR3YXJlLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMjFjNDUyNzBlOGFlYTVjNWM4N2NkOGI2ZjZjNDBmODgwY2RiMzFmZlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDIyIDIzOjM3OjAyIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jXG5pbmRleCBkNmY5YWExYWI1MmQxMi4uMTE1MTQ1Zjk5M2QwMTYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuY1xuQEAgLTIzNiw2ICsyMzYsMjMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0aGVybWFsX2Nvb2xpbmdfZGV2aWNlX29wcyBtdDc5OTZfdGhlcm1hbF9vcHMgPSB7XG4gXHQuc2V0X2N1cl9zdGF0ZSA9IG10Nzk5Nl90aGVybWFsX3NldF9jdXJfdGhyb3R0bGVfc3RhdGUsXG4gfTtcbiBcbitzdGF0aWMgaW50IG10Nzk5Nl90aGVybWFsX2dldF90ZW1wKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0eiwgaW50ICp0ZW1wKVxuK3tcbitcdHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkgPSB0aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYodHopO1xuK1x0aW50IHZhbDtcbitcbitcdHZhbCA9IG10Nzk5Nl9tY3VfZ2V0X3RlbXBlcmF0dXJlKHBoeSk7XG4rXHRpZiAodmFsIFx1MDAzYyAwKVxuK1x0XHRyZXR1cm4gdmFsO1xuK1xuK1x0KnRlbXAgPSB2YWwgKiAxMDAwO1xuK1x0cmV0dXJuIDA7XG4rfVxuK1xuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZV9vcHMgbXQ3OTk2X3R6X29wcyA9IHtcbitcdC5nZXRfdGVtcCA9IG10Nzk5Nl90aGVybWFsX2dldF90ZW1wLFxuK307XG4rXG4gc3RhdGljIHZvaWQgbXQ3OTk2X3VucmVnaXN0ZXJfdGhlcm1hbChzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxuIHtcbiBcdHN0cnVjdCB3aXBoeSAqd2lwaHkgPSBwaHktXHUwMDNlbXQ3Ni1cdTAwM2Vody1cdTAwM2V3aXBoeTtcbkBAIC0yNzcsNiArMjk0LDE3IEBAIHN0YXRpYyBpbnQgbXQ3OTk2X3RoZXJtYWxfaW5pdChzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxuIFx0cGh5LVx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTk2X0NSSVRfVEVNUF9JRFhdID0gTVQ3OTk2X0NSSVRfVEVNUDtcbiBcdHBoeS1cdTAwM2V0aHJvdHRsZV90ZW1wW01UNzk5Nl9NQVhfVEVNUF9JRFhdID0gTVQ3OTk2X01BWF9URU1QO1xuIFxuK1x0cGh5LVx1MDAzZXR6b25lID0gZGV2bV90aGVybWFsX29mX3pvbmVfcmVnaXN0ZXIocGh5LVx1MDAzZWRldi1cdTAwM2VtdDc2LmRldixcbitcdFx0XHRcdFx0XHQgICBwaHktXHUwMDNlbXQ3Ni1cdTAwM2ViYW5kX2lkeCwgcGh5LFxuK1x0XHRcdFx0XHRcdCAgIFx1MDAyNm10Nzk5Nl90el9vcHMpO1xuK1x0aWYgKElTX0VSUihwaHktXHUwMDNldHpvbmUpKSB7XG4rXHRcdGlmIChQVFJfRVJSKHBoeS1cdTAwM2V0em9uZSkgIT0gLUVOT0RFVilcbitcdFx0XHRkZXZfd2FybihwaHktXHUwMDNlZGV2LVx1MDAzZW10NzYuZGV2LFxuK1x0XHRcdFx0IFwiZmFpbGVkIHRvIHJlZ2lzdGVyIHRoZXJtYWwgem9uZSVkOiAlbGRcXG5cIixcbitcdFx0XHRcdCBwaHktXHUwMDNlbXQ3Ni1cdTAwM2ViYW5kX2lkeCwgUFRSX0VSUihwaHktXHUwMDNldHpvbmUpKTtcbitcdFx0cGh5LVx1MDAzZXR6b25lID0gTlVMTDtcbitcdH1cbitcbiBcdGlmICghSVNfUkVBQ0hBQkxFKENPTkZJR19IV01PTikpXG4gXHRcdHJldHVybiAwO1xuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmhcbmluZGV4IDBkNjQ4ODUyMmJhNzExLi4xMjA3YjVjN2U5OGI5ZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaFxuQEAgLTM3Miw2ICszNzIsNyBAQCBzdHJ1Y3QgbXQ3OTk2X3BoeSB7XG4gXG4gXHRzdHJ1Y3QgaWVlZTgwMjExX3NiYW5kX2lmdHlwZV9kYXRhIGlmdHlwZVtOVU1fTkw4MDIxMV9CQU5EU11bTlVNX05MODAyMTFfSUZUWVBFU107XG4gXG4rXHRzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHpvbmU7XG4gXHRzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZSAqY2RldjtcbiBcdHU4IGNkZXZfc3RhdGU7XG4gXHR1OCB0aHJvdHRsZV9zdGF0ZTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjM3OjA0LjU4NDU5Njk4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTM3MDk1NTM3MjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBgbXQ3OTk2YCBUaGVybWFsIFpvbmUgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFkZGluZyB0aGVybWFsIHpvbmUgc3VwcG9ydCB0byB0aGUgYG10Nzk5NmAgd2lyZWxlc3MgZHJpdmVyLiBJdCdzIHJlZ2lzdGVyaW5nIHRoZSB0aGVybWFsIHpvbmUgZGV2aWNlIHVzaW5nIGBkZXZtX3RoZXJtYWxfb2Zfem9uZV9yZWdpc3RlcmAsIHdoaWNoIHNlZW1zIHN0YW5kYXJkIGVub3VnaC4gQnV0IEknbSBzdGFydGluZyB0byB0aGluayBhYm91dCByZWFjaGFiaWxpdHksIGFuZCB3aGV0aGVyIHRoaXMgaXMgZXZlbiByZWFsaXN0aWNhbGx5IHRlc3RhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gVGhpcyBpcyBhIGRyaXZlciBmb3IgYSAqcGh5c2ljYWwqIFdpLUZpIGRldmljZSwgdGhlIGBtdDc5OTZgLiAgVXN1YWxseSwgdW5sZXNzIHRoZXJlJ3MgYSBzcGVjaWZpYyBzb2Z0d2FyZSBlbXVsYXRpb24gbGF5ZXIgaW4gcGxhY2XigJRsaWtlIGBtYWM4MDIxMV9od3NpbWDigJRhIFBDSSBvciBVU0IgV2ktRmkgZHJpdmVyIGlzIHByZXR0eSBtdWNoIGluYWNjZXNzaWJsZSBpbiBhIHR5cGljYWwgVk0gc2V0dXAuXG5cbk5vdywgaWYgSSB0aGluayBhYm91dCBpdCBtb3JlIGNhcmVmdWxseSwgYW5kIEkgYmVsaWV2ZSB0aGlzIGlzIGEgUENJZSBkcml2ZXIsIHNvIHRoZSByZWFjaGFiaWxpdHkgcXVlc3Rpb24gYmVjb21lcyBtb3JlIGludGVyZXN0aW5nLiBJdCAqY291bGQqIGJlIGZ1enplZCwgZ2l2ZW4gUENJZeKAmXMgY2hhcmFjdGVyaXN0aWNzLiBJIG5lZWQgdG8gY29uZmlybSB3aGV0aGVyIGBtdDc5OTZgIGlzLCBpbiBmYWN0LCBQQ0llIG9yIFVTQi4gSSdsbCB1c2UgYGdyZXBwZXJgIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIHdoYXQgYnVzIHR5cGUgdGhpcyBkcml2ZXIgaXMgYXNzb2NpYXRlZCB3aXRoLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjkxLCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTczLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMjM6Mzc6MTguMjk0MTUzNTlaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODU3MTc2NzQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3OTk2XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDY1MzUgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfTVQ3OTk2RSkgKz0gbXQ3OTk2ZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGUtNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTo1Om10Nzk5NmUteSA6PSBwY2kubyBpbml0Lm8gZG1hLm8gZWVwcm9tLm8gbWFpbi5vIG1jdS5vIG1hYy5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS02LVxcdCAgICAgZGVidWdmcy5vIG1taW8ub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU6ODptdDc5OTZlLSQoQ09ORklHX01UNzk5Nl9OUFUpICs9IG5wdS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU6OTptdDc5OTZlLSQoQ09ORklHX0RFVl9DT1JFRFVNUCkgKz0gY29yZWR1bXAub1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYz0xMj1NT0RVTEVfUEFSTV9ERVNDKGNvcmVkdW1wX21lbWR1bXAsIFxcXCJPcHRpb25hbCBhYmlsaXR5IHRvIGR1bXAgZmlybXdhcmUgbWVtb3J5XFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE0OnN0YXRpYyBjb25zdCBzdHJ1Y3QgbXQ3OTk2X21lbV9yZWdpb24gbXQ3OTk2X21lbV9yZWdpb25zW10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xNS1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTQ2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NDc6Y29uc3Qgc3RydWN0IG10Nzk5Nl9tZW1fcmVnaW9uKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NDg6bXQ3OTk2X2NvcmVkdW1wX2dldF9tZW1fbGF5b3V0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHUzMiAqbnVtKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNDkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy01Mi1cXHRjYXNlIE1UNzk5Nl9ERVZJQ0VfSURfMjpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjUzOlxcdFxcdCpudW0gPSBBUlJBWV9TSVpFKG10Nzk5Nl9tZW1fcmVnaW9ucyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo1NDpcXHRcXHRyZXR1cm4gXFx1MDAyNm10Nzk5Nl9tZW1fcmVnaW9uc1swXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTU1LVxcdGRlZmF1bHQ6XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTU5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NjA6c3RhdGljIGludCBtdDc5OTZfY29yZWR1bXBfZ2V0X21lbV9zaXplKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy02MS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo2MjpcXHRjb25zdCBzdHJ1Y3QgbXQ3OTk2X21lbV9yZWdpb24gKm1lbV9yZWdpb247XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy02My1cXHRzaXplX3Qgc2l6ZSA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6Njc6XFx0bWVtX3JlZ2lvbiA9IG10Nzk5Nl9jb3JlZHVtcF9nZXRfbWVtX2xheW91dChkZXYsIFxcdTAwMjZudW0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNjgtXFx0aWYgKCFtZW1fcmVnaW9uKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy03Ni1cXHQvKiByZXNlcnZlIHNwYWNlIGZvciB0aGUgaGVhZGVycyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6Nzc6XFx0c2l6ZSArPSBudW0gKiBzaXplb2Yoc3RydWN0IG10Nzk5Nl9tZW1faGRyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTc4LVxcdC8qIG1ha2Ugc3VyZSBpdCBpcyBhbGlnbmVkIDQgYnl0ZXMgZm9yIGRlYnVnIG1lc3NhZ2UgcHJpbnQgb3V0ICovXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTgzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6ODQ6c3RydWN0IG10Nzk5Nl9jcmFzaF9kYXRhICptdDc5OTZfY29yZWR1bXBfbmV3KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy04NS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo4NjpcXHRzdHJ1Y3QgbXQ3OTk2X2NyYXNoX2RhdGEgKmNyYXNoX2RhdGEgPSBkZXYtXFx1MDAzZWNvcmVkdW1wLmNyYXNoX2RhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy04Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM9MTAwPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxMDE6bXQ3OTk2X2NvcmVkdW1wX2Z3X3N0YXRlKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHN0cnVjdCBtdDc5OTZfY29yZWR1bXAgKmR1bXAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xMDItXFx0XFx0XFx0IGJvb2wgKmV4Y2VwdGlvbilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM9MTE3PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxMTg6bXQ3OTk2X2NvcmVkdW1wX2Z3X3N0YWNrKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHN0cnVjdCBtdDc5OTZfY29yZWR1bXAgKmR1bXAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xMTktXFx0XFx0XFx0IGJvb2wgZXhjZXB0aW9uKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xNjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxNjI6c3RhdGljIHN0cnVjdCBtdDc5OTZfY29yZWR1bXAgKm10Nzk5Nl9jb3JlZHVtcF9idWlsZChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTYzLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE2NDpcXHRzdHJ1Y3QgbXQ3OTk2X2NyYXNoX2RhdGEgKmNyYXNoX2RhdGEgPSBkZXYtXFx1MDAzZWNvcmVkdW1wLmNyYXNoX2RhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxNjU6XFx0c3RydWN0IG10Nzk5Nl9jb3JlZHVtcCAqZHVtcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE2NjpcXHRzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wX21lbSAqZHVtcF9tZW07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xNjctXFx0c2l6ZV90IGxlbiwgc29mYXIgPSAwLCBoZHJfbGVuID0gc2l6ZW9mKCpkdW1wKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTg2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MTg3OlxcdGR1bXAgPSAoc3RydWN0IG10Nzk5Nl9jb3JlZHVtcCAqKShidWYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTg4LVxcdGR1bXAtXFx1MDAzZWxlbiA9IGxlbjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjAwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjAxOlxcdG10Nzk5Nl9jb3JlZHVtcF9md19zdGF0ZShkZXYsIGR1bXAsIFxcdTAwMjZleGNlcHRpb24pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjAyOlxcdG10Nzk5Nl9jb3JlZHVtcF9md19zdGFjayhkZXYsIGR1bXAsIGV4Y2VwdGlvbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMDQtXFx0LyogZ2F0aGVyIG1lbW9yeSBjb250ZW50ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyMDU6XFx0ZHVtcF9tZW0gPSAoc3RydWN0IG10Nzk5Nl9jb3JlZHVtcF9tZW0gKikoYnVmICsgc29mYXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjA2LVxcdGR1bXBfbWVtLVxcdTAwM2VsZW4gPSBjcmFzaF9kYXRhLVxcdTAwM2VtZW1kdW1wX2J1Zl9sZW47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIxNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIxNjppbnQgbXQ3OTk2X2NvcmVkdW1wX3N1Ym1pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjE3LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIxODpcXHRzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wICpkdW1wO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjE5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjIwOlxcdGR1bXAgPSBtdDc5OTZfY29yZWR1bXBfYnVpbGQoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIyMS1cXHRpZiAoIWR1bXApIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjMwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjMxOmludCBtdDc5OTZfY29yZWR1bXBfcmVnaXN0ZXIoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIzMi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyMzM6XFx0c3RydWN0IG10Nzk5Nl9jcmFzaF9kYXRhICpjcmFzaF9kYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjM0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yNDEtXFx0aWYgKGNvcmVkdW1wX21lbWR1bXApIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjI0MjpcXHRcXHRjcmFzaF9kYXRhLVxcdTAwM2VtZW1kdW1wX2J1Zl9sZW4gPSBtdDc5OTZfY29yZWR1bXBfZ2V0X21lbV9zaXplKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yNDMtXFx0XFx0aWYgKCFjcmFzaF9kYXRhLVxcdTAwM2VtZW1kdW1wX2J1Zl9sZW4pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTI1Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjI1Nzp2b2lkIG10Nzk5Nl9jb3JlZHVtcF91bnJlZ2lzdGVyKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yNTgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC02LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NzojaW5jbHVkZSBcXFwibXQ3OTk2LmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC04LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6OTpzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTEwLVxcdGNoYXIgbWFnaWNbMTZdO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC0zOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjQwOnN0cnVjdCBtdDc5OTZfY29yZWR1bXBfbWVtIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTQxLVxcdHUzMiBsZW47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NDU6c3RydWN0IG10Nzk5Nl9tZW1faGRyIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTQ2LVxcdHUzMiBzdGFydDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo1MTpzdHJ1Y3QgbXQ3OTk2X21lbV9yZWdpb24ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNTItXFx0dTMyIHN0YXJ0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC01OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjYwOmNvbnN0IHN0cnVjdCBtdDc5OTZfbWVtX3JlZ2lvbiAqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo2MTptdDc5OTZfY29yZWR1bXBfZ2V0X21lbV9sYXlvdXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgdTMyICpudW0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NjI6c3RydWN0IG10Nzk5Nl9jcmFzaF9kYXRhICptdDc5OTZfY29yZWR1bXBfbmV3KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NjM6aW50IG10Nzk5Nl9jb3JlZHVtcF9zdWJtaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo2NDppbnQgbXQ3OTk2X2NvcmVkdW1wX3JlZ2lzdGVyKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NjU6dm9pZCBtdDc5OTZfY29yZWR1bXBfdW5yZWdpc3RlcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTY2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC02OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjY5OnN0YXRpYyBpbmxpbmUgY29uc3Qgc3RydWN0IG10Nzk5Nl9tZW1fcmVnaW9uICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjcwOm10Nzk5Nl9jb3JlZHVtcF9nZXRfbWVtX2xheW91dChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCB1MzIgKm51bSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTcxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo3NTpzdGF0aWMgaW5saW5lIGludCBtdDc5OTZfY29yZWR1bXBfc3VibWl0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC03Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oPTgwPXN0YXRpYyBpbmxpbmUgc3RydWN0XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo4MTptdDc5OTZfY3Jhc2hfZGF0YSAqbXQ3OTk2X2NvcmVkdW1wX25ldyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtODIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC04NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjg2OnN0YXRpYyBpbmxpbmUgaW50IG10Nzk5Nl9jb3JlZHVtcF9yZWdpc3RlcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtODcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC05MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjkxOnN0YXRpYyBpbmxpbmUgdm9pZCBtdDc5OTZfY29yZWR1bXBfdW5yZWdpc3RlcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtOTIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTYtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3JlbGF5LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc6I2luY2x1ZGUgXFxcIm10Nzk5Ni5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04LSNpbmNsdWRlIFxcXCJlZXByb20uaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0yMz1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI0Om10Nzk5Nl9pbXBsaWNpdF90eGJmX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI2OlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzM6XFx0cmV0dXJuIG10Nzk5Nl9tY3Vfc2V0X3R4YmYoZGV2LCBCRl9IV19FTl9VUERBVEUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MzY9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNzptdDc5OTZfaW1wbGljaXRfdHhiZl9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Mzk6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NjpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19pbXBsaWNpdF90eGJmLCBtdDc5OTZfaW1wbGljaXRfdHhiZl9nZXQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ3OlxcdFxcdFxcdCBtdDc5OTZfaW1wbGljaXRfdHhiZl9zZXQsIFxcXCIlbGxkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NTA9c3RhdGljIHNzaXplX3RcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTE6bXQ3OTk2X3N5c19yZWNvdmVyeV9zZXQoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgX191c2VyICp1c2VyX2J1ZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTItXFx0XFx0XFx0c2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTUzLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTQ6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGZpbGUtXFx1MDAzZXByaXZhdGVfZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTUtXFx0Y2hhciBidWZbMTZdLCAqc2VwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkxLVxcdGNhc2UgVU5JX0NNRF9TRVJfUVVFUlk6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjkyOlxcdFxcdHJldCA9IG10Nzk5Nl9tY3Vfc2V0X3NlcihkZXYsIFVOSV9DTURfU0VSX1FVRVJZLCAwLCBiYW5kKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTMtXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTAwLVxcdGNhc2UgVU5JX0NNRF9TRVJfU0VUX1JFQ09WRVJfTDRfTURQOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoxMDE6XFx0XFx0cmV0ID0gbXQ3OTk2X21jdV9zZXRfc2VyKGRldiwgVU5JX0NNRF9TRVJfU0VULCBCSVQodmFsKSwgYmFuZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEwMi1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEwNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTA1OlxcdFxcdHJldCA9IG10Nzk5Nl9tY3Vfc2V0X3NlcihkZXYsIFVOSV9DTURfU0VSX1RSSUdHRVIsIHZhbCwgYmFuZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEwNi1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMTEtXFx0XFx0ZGV2LVxcdTAwM2VyZWNvdmVyeS5zdGF0ZSB8PSBNVF9NQ1VfQ01EX1dEVF9NQVNLO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoxMTI6XFx0XFx0bXQ3OTk2X3Jlc2V0KGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTExMy1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMTYtXFx0Y2FzZSBVTklfQ01EX1NFUl9TRVRfU1lTVEVNX0FTU0VSVDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTE3OlxcdFxcdHJldCA9IG10Nzk5Nl9tY3VfdHJpZ2dlcl9hc3NlcnQoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTE4LVxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MTI4PXN0YXRpYyBzc2l6ZV90XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjEyOTptdDc5OTZfc3lzX3JlY292ZXJ5X2dldChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKnVzZXJfYnVmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMzAtXFx0XFx0XFx0c2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEzMS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjEzMjpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZmlsZS1cXHUwMDNlcHJpdmF0ZV9kYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMzMtXFx0Y2hhciAqYnVmZjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yMTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjIxNTpzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBtdDc5OTZfc3lzX3JlY292ZXJ5X29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjE2OlxcdC53cml0ZSA9IG10Nzk5Nl9zeXNfcmVjb3Zlcnlfc2V0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyMTc6XFx0LnJlYWQgPSBtdDc5OTZfc3lzX3JlY292ZXJ5X2dldCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjE4LVxcdC5vcGVuID0gc2ltcGxlX29wZW4sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MjIyPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjIzOm10Nzk5Nl9yYWRhcl90cmlnZ2VyKHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTIyNC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjI2LSNkZWZpbmUgUkFEQVJfQkFDS0dST1VORFxcdDJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjI3OlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyMjg6XFx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeSA9IG10Nzk5Nl9iYW5kX3BoeShkZXYsIE5MODAyMTFfQkFORF81R0haKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjI5LVxcdHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiAqY2hhbmRlZjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI0ODpcXHRyZGRfaWR4ID0gbXQ3OTk2X2dldF9yZGRfaWR4KHBoeSwgdmFsID09IFJBREFSX0JBQ0tHUk9VTkQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNDktXFx0aWYgKHJkZF9pZHggXFx1MDAzYyAwKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjU4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyNTk6XFx0cmV0dXJuIG10Nzk5Nl9tY3VfcmRkX2NtZChkZXYsIFJERF9SQURBUl9FTVVMQVRFLCByZGRfaWR4LCAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjYwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0yNjI9REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfcmFkYXJfdHJpZ2dlciwgTlVMTCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjYzOlxcdFxcdFxcdCBtdDc5OTZfcmFkYXJfdHJpZ2dlciwgXFxcIiVsbGRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTI2NT1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI2NjptdDc5OTZfcmRkX21vbml0b3Ioc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNjcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyNjg6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRldl9nZXRfZHJ2ZGF0YShzLVxcdTAwM2Vwcml2YXRlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjY5LVxcdHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiAqY2hhbmRlZiA9IFxcdTAwMjZkZXYtXFx1MDAzZXJkZDJfY2hhbmRlZjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0zMTI9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozMTM6bXQ3OTk2X2Z3X2RlYnVnX3dtX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zMTQte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozMTU6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTMxNi1cXHRlbnVtIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zMzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjMzODpcXHRyZXQgPSBtdDc5OTZfbWN1X2Z3X2xvZ18yX2hvc3QoZGV2LCBNQ1VfRldfTE9HX1dNLCB2YWwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zMzktXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM1MTpcXHRcXHRyZXQgPSBtdDc5OTZfbWN1X2Z3X2RiZ19jdHJsKGRldiwgZGVidWcsIHZhbCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM1Mi1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTM1OT1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM2MDptdDc5OTZfZndfZGVidWdfd21fZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNjEte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNjI6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM2My1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM2OTpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19md19kZWJ1Z193bSwgbXQ3OTk2X2Z3X2RlYnVnX3dtX2dldCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzcwOlxcdFxcdFxcdCBtdDc5OTZfZndfZGVidWdfd21fc2V0LCBcXFwiJWxsZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM3MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MzcyPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzczOm10Nzk5Nl9md19kZWJ1Z193YV9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzc0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Mzc1OlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNzYtXFx0aW50IHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM4MDpcXHRyZXQgPSBtdDc5OTZfbWN1X2Z3X2xvZ18yX2hvc3QoZGV2LCBNQ1VfRldfTE9HX1dBLCBkZXYtXFx1MDAzZWZ3X2RlYnVnX3dhKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzgxLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzgzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozODQ6XFx0cmV0dXJuIG10Nzk5Nl9tY3Vfd2FfY21kKGRldiwgTUNVX1dBX1BBUkFNX0NNRChTRVQpLCBNQ1VfV0FfUEFSQU1fUERNQV9SWCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzg1LVxcdFxcdFxcdFxcdCAhIWRldi1cXHUwMDNlZndfZGVidWdfd2EsIDApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTM4OD1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM4OTptdDc5OTZfZndfZGVidWdfd2FfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zOTAte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozOTE6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM5Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zOTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM5ODpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19md19kZWJ1Z193YSwgbXQ3OTk2X2Z3X2RlYnVnX3dhX2dldCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Mzk5OlxcdFxcdFxcdCBtdDc5OTZfZndfZGVidWdfd2Ffc2V0LCBcXFwiJWxsZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQwMC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz00MjU9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0MjY6bXQ3OTk2X2Z3X2RlYnVnX2Jpbl9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDI3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00MzEtXFx0fTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDMyOlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00MzMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDQzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NDQ6XFx0cmV0dXJuIG10Nzk5Nl9md19kZWJ1Z193bV9zZXQoZGV2LCBkZXYtXFx1MDAzZWZ3X2RlYnVnX3dtKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDQ1LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz00NDc9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NDg6bXQ3OTk2X2Z3X2RlYnVnX2Jpbl9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ0OS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ1MDpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDUxLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ1Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDU3OkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX2Z3X2RlYnVnX2JpbiwgbXQ3OTk2X2Z3X2RlYnVnX2Jpbl9nZXQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ1ODpcXHRcXHRcXHQgbXQ3OTk2X2Z3X2RlYnVnX2Jpbl9zZXQsIFxcXCIlbGxkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDU5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz00NjA9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NjE6bXQ3OTk2X2Z3X3V0aWxfd2Ffc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIHZvaWQgKmRhdGEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ2Mi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ2MzpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZmlsZS1cXHUwMDNlcHJpdmF0ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDY0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NjUtXFx0aWYgKGRldi1cXHUwMDNlZndfZGVidWdfd2EpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ2NjpcXHRcXHRyZXR1cm4gbXQ3OTk2X21jdV93YV9jbWQoZGV2LCBNQ1VfV0FfUEFSQU1fQ01EKFFVRVJZKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDY3LVxcdFxcdFxcdFxcdFxcdCBNQ1VfV0FfUEFSQU1fQ1BVX1VUSUwsIDAsIDApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ3MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDcyOkRFRklORV9TSE9XX0FUVFJJQlVURShtdDc5OTZfZndfdXRpbF93YSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ3My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NDc0PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ3NTptdDc5OTZfYW1wZHVfc3RhdF9yZWFkX3BoeShzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LCBzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ3Ni17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ3NzpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gcGh5LVxcdTAwM2VkZXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ3OC1cXHRpbnQgYm91bmRbMTVdLCByYW5nZVs4XSwgaTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz01MDQ9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTA1Om10Nzk5Nl90eGJmX3N0YXRfcmVhZF9waHkoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSwgc3RydWN0IHNlcV9maWxlICpzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01MDYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTU1Mj1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1NTM6bXQ3OTk2X3R4X3N0YXRzX3Nob3dfcGh5KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgc3RydWN0IG10Nzk5Nl9waHkgKnBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTU0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01NTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU1OTpcXHRtdDc5OTZfbWFjX3VwZGF0ZV9zdGF0cyhwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1NjA6XFx0bXQ3OTk2X2FtcGR1X3N0YXRfcmVhZF9waHkocGh5LCBmaWxlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTYxLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU2OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTY5OlxcdG10Nzk5Nl90eGJmX3N0YXRfcmVhZF9waHkocGh5LCBmaWxlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTcwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTU4ND1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU4NTptdDc5OTZfdHhfc3RhdHNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIHZvaWQgKmRhdGEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU4Ni17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU4NzpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZmlsZS1cXHUwMDNlcHJpdmF0ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTg4OlxcdHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkgPSBcXHUwMDI2ZGV2LVxcdTAwM2VwaHk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU4OS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01OTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU5MjpcXHRtdDc5OTZfdHhfc3RhdHNfc2hvd19waHkoZmlsZSwgcGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTkzOlxcdHBoeSA9IG10Nzk5Nl9waHkyKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU5NC1cXHRpZiAocGh5KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1OTU6XFx0XFx0bXQ3OTk2X3R4X3N0YXRzX3Nob3dfcGh5KGZpbGUsIHBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU5NjpcXHRwaHkgPSBtdDc5OTZfcGh5MyhkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01OTctXFx0aWYgKHBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTk4OlxcdFxcdG10Nzk5Nl90eF9zdGF0c19zaG93X3BoeShmaWxlLCBwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01OTktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjA0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2MDU6REVGSU5FX1NIT1dfQVRUUklCVVRFKG10Nzk5Nl90eF9zdGF0cyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTYwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NjA3PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjYwODptdDc5OTZfaHdfcXVldWVfcmVhZChzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHUzMiBzaXplLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02MDktXFx0XFx0ICAgICBjb25zdCBzdHJ1Y3QgaHdfcXVldWVfbWFwICptYXApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTYxMC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjYxMTpcXHRzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5ID0gcy1cXHUwMDNlcHJpdmF0ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjEyOlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBwaHktXFx1MDAzZWRldjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjEzLVxcdHUzMiBpLCB2YWw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NjM4PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjYzOTptdDc5OTZfc3RhX2h3X3F1ZXVlX3JlYWQodm9pZCAqZGF0YSwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjQwLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjQxOlxcdHN0cnVjdCBtdDc5OTZfc3RhICptc3RhID0gKHN0cnVjdCBtdDc5OTZfc3RhICopc3RhLVxcdTAwM2VkcnZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjQyOlxcdHN0cnVjdCBtdDc5OTZfdmlmICptdmlmID0gbXN0YS1cXHUwMDNldmlmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2NDM6XFx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeSA9IG10Nzk5Nl92aWZfbGlua19waHkoXFx1MDAyNm12aWYtXFx1MDAzZWRlZmxpbmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NDQtXFx0c3RydWN0IGllZWU4MDIxMV9saW5rX3N0YSAqbGlua19zdGE7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjQ2LVxcdHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY0NzpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NDgtXFx0dW5zaWduZWQgaW50IGxpbmtfaWQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjU4LVxcdGZvcl9lYWNoX3N0YV9hY3RpdmVfbGluayh2aWYsIHN0YSwgbGlua19zdGEsIGxpbmtfaWQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjU5OlxcdFxcdHN0cnVjdCBtdDc5OTZfc3RhX2xpbmsgKm1zdGFfbGluaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjYwLVxcdFxcdHN0cnVjdCBtdDc2X3ZpZl9saW5rICptbGluaztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY2NzpcXHRcXHRtc3RhX2xpbmsgPSBtdDc5OTZfc3RhX2xpbmsobXN0YSwgbGlua19pZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY2OC1cXHRcXHRpZiAoIW1zdGFfbGluaylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz02OTQ9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2OTU6bXQ3OTk2X2h3X3F1ZXVlc19zaG93KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgdm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjk2LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Njk3OlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBmaWxlLVxcdTAwM2Vwcml2YXRlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2OTg6XFx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeSA9IFxcdTAwMjZkZXYtXFx1MDAzZXBoeTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjk5LVxcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgaHdfcXVldWVfbWFwIHBsZV9xdWV1ZV9tYXBbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NDctXFx0c2VxX3B1dHMoZmlsZSwgXFxcIlBMRSBub24tZW1wdHkgcXVldWUgaW5mbzpcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NDg6XFx0bXQ3OTk2X2h3X3F1ZXVlX3JlYWQoZmlsZSwgQVJSQVlfU0laRShwbGVfcXVldWVfbWFwKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzQ5LVxcdFxcdFxcdCAgICAgXFx1MDAyNnBsZV9xdWV1ZV9tYXBbMF0pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc1Mi1cXHRpZWVlODAyMTFfaXRlcmF0ZV9zdGF0aW9uc19hdG9taWMocGh5LVxcdTAwM2VtdDc2LVxcdTAwM2VodyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzUzOlxcdFxcdFxcdFxcdFxcdCAgbXQ3OTk2X3N0YV9od19xdWV1ZV9yZWFkLCBmaWxlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzU0OlxcdHBoeSA9IG10Nzk5Nl9waHkyKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc1NS1cXHRpZiAocGh5KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NTYtXFx0XFx0aWVlZTgwMjExX2l0ZXJhdGVfc3RhdGlvbnNfYXRvbWljKHBoeS1cXHUwMDNlbXQ3Ni1cXHUwMDNlaHcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc1NzpcXHRcXHRcXHRcXHRcXHRcXHQgIG10Nzk5Nl9zdGFfaHdfcXVldWVfcmVhZCwgZmlsZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc1ODpcXHRwaHkgPSBtdDc5OTZfcGh5MyhkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NTktXFx0aWYgKHBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzYwLVxcdFxcdGllZWU4MDIxMV9pdGVyYXRlX3N0YXRpb25zX2F0b21pYyhwaHktXFx1MDAzZW10NzYtXFx1MDAzZWh3LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NjE6XFx0XFx0XFx0XFx0XFx0XFx0ICBtdDc5OTZfc3RhX2h3X3F1ZXVlX3JlYWQsIGZpbGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NjItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzY0LVxcdHNlcV9wdXRzKGZpbGUsIFxcXCJQU0Ugbm9uLWVtcHR5IHF1ZXVlIGluZm86XFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzY1OlxcdG10Nzk5Nl9od19xdWV1ZV9yZWFkKGZpbGUsIEFSUkFZX1NJWkUocHNlX3F1ZXVlX21hcCksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc2Ni1cXHRcXHRcXHQgICAgIFxcdTAwMjZwc2VfcXVldWVfbWFwWzBdKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc3MTpERUZJTkVfU0hPV19BVFRSSUJVVEUobXQ3OTk2X2h3X3F1ZXVlcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc3Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NzczPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Nzc0Om10Nzk5Nl94bWl0X3F1ZXVlc19zaG93KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgdm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzc1LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Nzc2OlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBmaWxlLVxcdTAwM2Vwcml2YXRlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3Nzc6XFx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzc4LVxcdHN0cnVjdCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzkwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3OTE6XFx0cGh5ID0gbXQ3OTk2X3BoeTIoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzkyLVxcdGlmIChwaHkpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzk0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3OTU6XFx0cGh5ID0gbXQ3OTk2X3BoeTMoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzk2LVxcdGlmIChwaHkpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODEzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4MTQ6REVGSU5FX1NIT1dfQVRUUklCVVRFKG10Nzk5Nl94bWl0X3F1ZXVlcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTgxNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9ODE2PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODE3Om10Nzk5Nl90d3Rfc3RhdHMoc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04MTgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4MTk6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRldl9nZXRfZHJ2ZGF0YShzLVxcdTAwM2Vwcml2YXRlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODIwOlxcdHN0cnVjdCBtdDc5OTZfdHd0X2Zsb3cgKml0ZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTgyMS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz04NDU9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NDY6bXQ3OTk2X3JmX3JlZ3ZhbF9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg0Ny17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg0ODpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODQ5LVxcdHUzMiByZWd2YWw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODUxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NTI6XFx0cmV0ID0gbXQ3OTk2X21jdV9yZl9yZWd2YWwoZGV2LCBkZXYtXFx1MDAzZW10NzYuZGVidWdmc19yZWcsIFxcdTAwMjZyZWd2YWwsIGZhbHNlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODUzLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9ODYxPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODYyOm10Nzk5Nl9yZl9yZWd2YWxfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg2My17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg2NDpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODY1LVxcdHUzMiB2YWwzMiA9IHZhbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4Njc6XFx0cmV0dXJuIG10Nzk5Nl9tY3VfcmZfcmVndmFsKGRldiwgZGV2LVxcdTAwM2VtdDc2LmRlYnVnZnNfcmVnLCBcXHUwMDI2dmFsMzIsIHRydWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NjgtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg3MDpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19yZl9yZWd2YWwsIG10Nzk5Nl9yZl9yZWd2YWxfZ2V0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NzE6XFx0XFx0XFx0IG10Nzk5Nl9yZl9yZWd2YWxfc2V0LCBcXFwiMHglMDhsbHhcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg3MzppbnQgbXQ3OTk2X2luaXRfZGVidWdmcyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NzQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg3OS1cXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFxcXCJody1xdWV1ZXNcXFwiLCAwNDAwLCBkaXIsIGRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODgwOlxcdFxcdFxcdCAgICBcXHUwMDI2bXQ3OTk2X2h3X3F1ZXVlc19mb3BzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODgxLVxcdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXFxcInhtaXQtcXVldWVzXFxcIiwgMDQwMCwgZGlyLCBkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg4MjpcXHRcXHRcXHQgICAgXFx1MDAyNm10Nzk5Nl94bWl0X3F1ZXVlc19mb3BzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODgzOlxcdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXFxcInR4X3N0YXRzXFxcIiwgMDQwMCwgZGlyLCBkZXYsIFxcdTAwMjZtdDc5OTZfdHhfc3RhdHNfZm9wcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg4NC1cXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFxcXCJzeXNfcmVjb3ZlcnlcXFwiLCAwNjAwLCBkaXIsIGRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODg1OlxcdFxcdFxcdCAgICBcXHUwMDI2bXQ3OTk2X3N5c19yZWNvdmVyeV9vcHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04ODYtXFx0ZGVidWdmc19jcmVhdGVfZmlsZShcXFwiZndfZGVidWdfd21cXFwiLCAwNjAwLCBkaXIsIGRldiwgXFx1MDAyNmZvcHNfZndfZGVidWdfd20pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg5MC1cXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFxcXCJmd191dGlsX3dhXFxcIiwgMDQwMCwgZGlyLCBkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg5MTpcXHRcXHRcXHQgICAgXFx1MDAyNm10Nzk5Nl9md191dGlsX3dhX2ZvcHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04OTItXFx0ZGVidWdmc19jcmVhdGVfZmlsZShcXFwiaW1wbGljaXRfdHhiZlxcXCIsIDA2MDAsIGRpciwgZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg5NC1cXHRkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3NlcWZpbGUoZGV2LVxcdTAwM2VtdDc2LmRldiwgXFxcInR3dF9zdGF0c1xcXCIsIGRpcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODk1OlxcdFxcdFxcdFxcdCAgICBtdDc5OTZfdHd0X3N0YXRzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODk2LVxcdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXFxcInJmX3JlZ3ZhbFxcXCIsIDA2MDAsIGRpciwgZGV2LCBcXHUwMDI2Zm9wc19yZl9yZWd2YWwpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkwMS1cXHRkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3NlcWZpbGUoZGV2LVxcdTAwM2VtdDc2LmRldiwgXFxcInJkZF9tb25pdG9yXFxcIiwgZGlyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo5MDI6XFx0XFx0XFx0XFx0ICAgIG10Nzk5Nl9yZGRfbW9uaXRvcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkwMy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz05MDk9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6OTEwOm10Nzk5Nl9kZWJ1Z2ZzX3dyaXRlX2Z3bG9nKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGNvbnN0IHZvaWQgKmhkciwgaW50IGhkcmxlbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTExLVxcdFxcdFxcdCAgIGNvbnN0IHZvaWQgKmRhdGEsIGludCBsZW4pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTMzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo5MzQ6dm9pZCBtdDc5OTZfZGVidWdmc19yeF9md19tb25pdG9yKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGNvbnN0IHZvaWQgKmRhdGEsIGludCBsZW4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkzNS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTU1LVxcdGhkci5sZW4gPSAqKF9fbGUxNiAqKWRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjk1NjpcXHRtdDc5OTZfZGVidWdmc193cml0ZV9md2xvZyhkZXYsIFxcdTAwMjZoZHIsIHNpemVvZihoZHIpLCBkYXRhLCBsZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05NTctfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05NTgtXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjM3OjE4LjM3OTg3NzA5M1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2MDg5MTcxNTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipBbmFseXppbmcgdGhlIG10Nzk5NiBEcml2ZXIqKlxuXG5SaWdodCwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBgbXQ3OTk2YC4gTXkgaW5pdGlhbCB0aG91Z2h0IHdhcyB0aGF0IGl0IHdhcyBhIE1lZGlhVGVrIFdpLUZpIGRyaXZlciDigJMgY29tbW9uIGFzc3VtcHRpb24gZ2l2ZW4gdGhlIG5hbWluZyBjb252ZW50aW9uLiBCdXQgdGhlbiwgYSByZWQgZmxhZyB3ZW50IHVwLiBNZW1vcnkgaXMgaGF6eSwgSSBuZWVkIHRvIGNoZWNrIHNvbWV0aGluZy4gV2FpdCBhIHNlY29uZCwgaXNuJ3QgYG10Nzk5NmAgYWN0dWFsbHkgYSBQQ0llIGRyaXZlciwgcmlnaHQ/IEkgbmVlZCB0byBxdWlja2x5IGNvbmZpcm0gdGhpcy4gV2hlcmUgd291bGQgdGhhdCBpbmZvcm1hdGlvbiBiZSBsb2NhdGVkPyBBaCwgeWVzLCBpZiB0aGlzIGlzIGEgUENJZSBkcml2ZXIsIHRoZSBvYnZpb3VzIHBsYWNlcyB0byBpbnZlc3RpZ2F0ZSBhcmUgbGlrZWx5IGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuY2Agb3IgcGVyaGFwcyBgaW5pdC5jYC4gVGhhdCBzaG91bGQgZ2l2ZSBtZSB0aGUgZGV0YWlscyBJIG5lZWQgdG8gY29uZmlybSBpdHMgcm9sZSBhbmQgZGl2ZSBkZWVwZXIgaW50byB0aGUgY29kZSdzIHNwZWNpZmljcy4gTGV0J3Mgc2VlIHdoYXQgdGhlc2UgZmlsZXMgcmV2ZWFsLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTk3NywiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjM3OjIxLjk4ODc5NzQwOFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzc3NjQ2MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicGNpX2RyaXZlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTg2OD1zdGF0aWMgaW50IF9faW5pdCBtdDc5OTZfaW5pdCh2b2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg3NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODc2OlxcdHJldCA9IHBjaV9yZWdpc3Rlcl9kcml2ZXIoXFx1MDAyNm10Nzk5Nl9wY2lfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODc3LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODgzPXN0YXRpYyB2b2lkIF9fZXhpdCBtdDc5OTZfZXhpdCh2b2lkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04ODQte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4ODU6XFx0cGNpX3VucmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZtdDc5OTZfcGNpX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg4Ni1cXHRwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoXFx1MDAyNm10Nzk5Nl9oaWZfZHJpdmVyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oPTY2OT1leHRlcm4gY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgbXQ3OTk2X29wcztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaDo2NzA6ZXh0ZXJuIHN0cnVjdCBwY2lfZHJpdmVyIG10Nzk5Nl9wY2lfZHJpdmVyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oOjY3MTpleHRlcm4gc3RydWN0IHBjaV9kcml2ZXIgbXQ3OTk2X2hpZl9kcml2ZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtNjcyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM9MjMzPXN0YXRpYyB2b2lkIG10Nzk5Nl9wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjQzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jOjI0NDpzdHJ1Y3QgcGNpX2RyaXZlciBtdDc5OTZfaGlmX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNDUtXFx0Lm5hbWVcXHRcXHQ9IEtCVUlMRF9NT0ROQU1FIFxcXCJfaGlmXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI1MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYzoyNTE6c3RydWN0IHBjaV9kcml2ZXIgbXQ3OTk2X3BjaV9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjUyLVxcdC5uYW1lXFx0XFx0PSBLQlVJTERfTU9ETkFNRSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMjM6Mzc6MjIuMTI2NTY1OTk4WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTA3NTYyMzg2NTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgdGhlIG10Nzk5NiBEcml2ZXIgZm9yIEZ1enppbmcqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBhIFBDSSBkcml2ZXIsIHNwZWNpZmljYWxseSBgbXQ3OTk2YC4gVGhlIHF1ZXN0aW9uIGlzLCBjYW4gSSBlZmZlY3RpdmVseSBmdXp6IHRoaXMgZHJpdmVyIHVzaW5nIHN5emthbGxlcj8gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgaXQgKm1pZ2h0KiBiZSBwb3NzaWJsZSwgc2luY2Ugc3l6a2FsbGVyICpkb2VzKiBoYXZlIFBDSSBmdXp6aW5nIGNhcGFiaWxpdGllcywgcmlnaHQ/IEJ1dCB0aGVuIEkgcmVtZW1iZXIgdGhlIG5vdGUgYWJvdXQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCB1bnJlYWNoYWJsZSBjb2RlIHBhdGhzLiBUaGlzIGRyaXZlciwgYmVpbmcgaGFyZHdhcmUtc3BlY2lmaWMsIHRocm93cyB1cCBhIHJlZCBmbGFnLiBJIGtub3cgc3l6a2FsbGVyIHVzZXMgcHNldWRvLXN5c2NhbGxzIGxpa2UgYHN5el9wY2lfLi4uYCwgYnV0IHRoZSBwcm9tcHQgZW1waGFzaXplcyB0aGF0IHN5emthbGxlciBwc2V1ZG8tc3lzY2FsbHMgYXJlIG5vdCBwcmVzZW50IGluIHRoZSBMaW51eCBrZXJuZWwgYW5kIGNhbm5vdCBiZSBzZWFyY2hlZCB1c2luZyB0aGlzIHRvb2wuXG5cbk15IGltbWVkaWF0ZSBhc3N1bXB0aW9uIGlzIHRoYXQgd2l0aG91dCB0aGUgYWN0dWFsIE1lZGlhVGVrIE1UNzk5NiBQQ0llIGhhcmR3YXJlLCBvciBhIHByZWNpc2UgUUVNVSBlbXVsYXRpb24gb2YgaXQsIGl0J3MgYSBkZWFkIGVuZC4gUUVNVSBkb2VzICpub3QqIG5hdGl2ZWx5IGVtdWxhdGUgdGhlIE1UNzk5Niwgd2hpY2gga2lsbHMgdGhhdCBvcHRpb24uIFdlIGhhdmUgYHN5el91c2JfY29ubmVjdGAgZm9yIFVTQiwgYG1hYzgwMjExX2h3c2ltYCBmb3IgV2ktRmksIGJ1dCBgbXQ3OTk2YCBpcyBkaWZmZXJlbnQsIGl0J3MgYSBzcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIsIG5vdCBhIHNvZnR3YXJlIHNpbXVsYXRvci5cblxuV2FpdCwgc3l6a2FsbGVyICpkb2VzKiBoYXZlIHNvbWUgbGV2ZWwgb2YgUENJIGZ1enppbmcsIHJpZ2h0PyBJdCB1c2VzIGBzeXpfcGNpXy4uLmAgcHNldWRvLXN5c2NhbGxzLCBvciBtYXliZSBpdCBpbmplY3RzIFBDSSBkZXZpY2VzIHNvbWVob3c/IEl0IGNhbid0IGJlIHRoYXQgc2ltcGxlLiBBbmQgdGhlbiBJIGhhdmUgdG8gcmVtZW1iZXIgdGhhdCB0aGUgdG9vbCBJJ20gdXNpbmcgY2FuJ3Qgc2VhcmNoIGZvciB0aG9zZSBgc3l6X2AgcHNldWRvLXN5c2NhbGxzIGRpcmVjdGx5LlxuXG5Pa2F5LCBzbyB0aGUgYG10Nzk5NmAgZHJpdmVyIGhhcyBhbiBgbXQ3OTk2X3RoZXJtYWxfaW5pdGAgZnVuY3Rpb24uIENhbiBJIHJlYWNoIGl0IGR1cmluZyBpbml0aWFsaXphdGlvbj8gVGhlIGtleSBoZXJlIGlzIGlmIHRoZSBgbXQ3OTk2YCBkcml2ZXIgaXRzZWxmIGlzIHJlYWNoYWJsZS4gSSBjaGVjaywgYW5kIGl0J3MgY29uZmlybWVkOyBpdCdzIGEgUENJIGRyaXZlci5cblxuU28sIHRoZSBpc3N1ZSBpcyBjbGVhcjogQ2FuIEkgcHJvYmUgYSBQQ0kgZHJpdmVyIHdpdGhvdXQgdGhlIGhhcmR3YXJlPyBTeXprYWxsZXIgdXNlcyBgdmhjaWAgZm9yIFVTQiwgYG5ldGRldnNpbWAgZm9yIG5ldHdvcmtpbmcsIGFuZCBgbWFjODAyMTFfaHdzaW1gIGZvciBXaS1GaS4gQnV0IGBtYWM4MDIxMV9od3NpbWAgZG9lc24ndCBoZWxwIGhlcmUsIGl0J3MgYSBzb2Z0d2FyZSBzaW11bGF0b3IgdGhhdCAqZG9lc24ndCogdXNlIGBtdDc5OTZgLlxuXG5TbywgKmRvZXMqIHN5emthbGxlciBoYXZlIHNvbWUgZ2VuZXJpYyBQQ0kgZGV2aWNlIGVtdWxhdG9yIHZpYSBhIHZpcnR1YWwgUENJIGJ1cywgb3IgbWF5YmUgdmlhIGB2ZmlvYD8gTm9wZS4gSSB0aGVuIGNoZWNrIGFnYWluLCBjb25maXJtaW5nIHRoYXQgYG10Nzk5NmAgaXMgaW5kZWVkIGEgTWVkaWFUZWsgV2ktRmkgNyBkcml2ZXIuXG5cblNvLCBpZiBpdCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIsIGl04oCZcyBnZW5lcmFsbHkgdW5yZWFjaGFibGUgdW5sZXNzIHRoZXJlIGlzIGEgc3BlY2lmaWMgZW11bGF0b3IuIEFuZCBJIGhhdmUgdG8gYXNzdW1lLCBnaXZlbiB0aGUgY29udGV4dCwgdGhhdCBhIHNwZWNpZmljIGVtdWxhdG9yIGRvZXNuJ3QgZXhpc3QuIFRoZXJlIG1pZ2h0IGJlIHNvbWUgaW50ZXJlc3RpbmcgY29kZSBsaWtlIGBkZXZtX3RoZXJtYWxfb2Zfem9uZV9yZWdpc3RlcmAsIGJ1dCBpdCdzIG1vb3QgaWYgdGhlIGRyaXZlciBjYW5ub3QgYmUgcHJvYmVkLiBUaGUgYm90dG9tIGxpbmUgaXMsIHRoaXMgY29kZSBpcyBsaWtlbHkgdW5yZWFjaGFibGUgd2l0aG91dCB0aGUgaGFyZHdhcmUgb3IgYSBzdWl0YWJsZSBlbXVsYXRvci4gSSBuZWVkIHRvIHZlcmlmeSBpZiB0aGVyZSdzICphbnkqIHdheSB0byBwcm9iZSBgbXQ3OTk2YCB3aXRob3V0IHRoZSBoYXJkd2FyZSBiZWZvcmUgSSB3YXN0ZSB0aW1lIG9uIHRoaXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxMTE2LCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzYzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjM3OjMyLjg4MjgwODA3N1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNjcwNDUzMDIxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10Nzk5Nl9wY2lfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODY4PXN0YXRpYyBpbnQgX19pbml0IG10Nzk5Nl9pbml0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODc1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4NzY6XFx0cmV0ID0gcGNpX3JlZ2lzdGVyX2RyaXZlcihcXHUwMDI2bXQ3OTk2X3BjaV9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04NzctXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz04ODM9c3RhdGljIHZvaWQgX19leGl0IG10Nzk5Nl9leGl0KHZvaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg4NC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg4NTpcXHRwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoXFx1MDAyNm10Nzk5Nl9wY2lfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODg2LVxcdHBjaV91bnJlZ2lzdGVyX2RyaXZlcihcXHUwMDI2bXQ3OTk2X2hpZl9kcml2ZXIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg9NjY5PWV4dGVybiBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc5OTZfb3BzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oOjY3MDpleHRlcm4gc3RydWN0IHBjaV9kcml2ZXIgbXQ3OTk2X3BjaV9kcml2ZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtNjcxLWV4dGVybiBzdHJ1Y3QgcGNpX2RyaXZlciBtdDc5OTZfaGlmX2RyaXZlcjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jPTI0ND1zdHJ1Y3QgcGNpX2RyaXZlciBtdDc5OTZfaGlmX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI1MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYzoyNTE6c3RydWN0IHBjaV9kcml2ZXIgbXQ3OTk2X3BjaV9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjUyLVxcdC5uYW1lXFx0XFx0PSBLQlVJTERfTU9ETkFNRSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMjM6Mzc6MzUuNTUzMjY5NTU4WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjcyNjc4NDcwNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIFBDSSBEcml2ZXIgRnV6emluZyBGZWFzaWJpbGl0eSoqXG5cbk9rYXksIHNvIHRoZSBwcm9tcHQgbWVudGlvbnMgYSBQQ0kgZHJpdmVyIGFuZCB0aGUgbGltaXRhdGlvbnMgb2YgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBGaXJzdCB0aG91Z2h0OiBDYW4gU3l6a2FsbGVyIGhhbmRsZSB0aGlzIGRyaXZlcj8gRG9lcyBTeXprYWxsZXIgaGF2ZSBhIGdlbmVyaWMgd2F5IHRvIGZ1enogKmFyYml0cmFyeSogUENJIGRyaXZlcnM/IFVubGVzcywgb2YgY291cnNlLCB0aGVyZSdzIGEgdmlydHVhbCBkZXZpY2UgYWxyZWFkeSBpbiBwbGFjZSwgb3IgYSBkZWRpY2F0ZWQgUENJIGZ1enplci4gV2FpdC4uLiBkb2VzIFN5emthbGxlciAqaGF2ZSogYSBQQ0kgZnV6emVyP1xuXG5BaCwgcmlnaHQsIGBzeXpfcGNpXy4uLmAgcHNldWRvLXN5c2NhbGxzISBZZXMsIHRoZXJlIGlzIGEgUENJIGZ1enplciB0aGF0IGVtdWxhdGVzIFBDSSBkZXZpY2VzLiBCdXQsIHRoZSBwcm9tcHQgcmFpc2VzIGEgY3J1Y2lhbCBwb2ludCBhYm91dCBjb2RlIHBhdGhzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cywgZXZlbiB3aXRoIGVtdWxhdGVkIGhhcmR3YXJlLiBTbywgY2FuIFN5emthbGxlcidzIFBDSSBmdXp6ZXIgZW11bGF0ZSAqYXJiaXRyYXJ5KiBQQ0kgZGV2aWNlcywgb3IgaXMgaXQganVzdCBsaW1pdGVkIHRvIGluamVjdGluZyB0aGVtP1xuXG5Pa2F5LCBsZXQncyB0aGluayB0aGlzIHRocm91Z2guIFN5emthbGxlciBoYXMgYSBVU0IgZnV6emVyIGJlY2F1c2UgVVNCIGhhcyBhIHNvZnR3YXJlLWRlZmluZWQgaW50ZXJmYWNlIGZvciBkZXZpY2UgZW11bGF0aW9uLiBVU0IgZ2FkZ2V0IGlzIHRoZSBrZXkuIEJ1dCBQQ0kgaXMgKmRpZmZlcmVudCouIEl0IGxhY2tzIGEgZ2VuZXJpYyBzb2Z0d2FyZS1kZWZpbmVkIGludGVyZmFjZSBpbiB0aGUgTGludXgga2VybmVsIGZvciBhcmJpdHJhcnkgZGV2aWNlIGVtdWxhdGlvbi4gVG8gZW11bGF0ZSBhIFBDSSBkZXZpY2UsIHlvdSBuZWVkIHNvbWV0aGluZyBsaWtlIGEgUUVNVSBkZXZpY2UgbW9kZWwsIG9yIHBvc3NpYmx5IGEgc3BlY2lmaWMga2VybmVsIG1vZHVsZT8gYHZmaW9gPyBObywgdGhhdCdzIGZvciB1c2Vyc3BhY2UgZHJpdmVycywgdGhhdCdzIG5vdCB3aGF0IEknbSBsb29raW5nIGZvci5cblxuQWgsIHRoZXJlIGlzbid0IGEgKmdlbmVyaWMqIFBDSSBkZXZpY2UgZW11bGF0b3IgaW4gdGhlIGtlcm5lbCB0aGF0IGxldHMgdXNlcnNwYWNlIGVtdWxhdGUgYXJiaXRyYXJ5IGRldmljZXMuXG5cblRoZXJlZm9yZSwgZm9yIHRoaXMgc3BlY2lmaWMgaGFyZHdhcmUgZGV2aWNlIGxpa2UgdGhlIE1lZGlhVGVrIE1UNzk5NiwgaXQncyB2aXJ0dWFsbHkgaW1wb3NzaWJsZSB0byBwcm9iZSBhbmQgZnV6eiB0aGlzIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgdW5sZXNzIFFFTVUgKnNwZWNpZmljYWxseSogZW11bGF0ZXMgaXQsIHdoaWNoIGl0IGRvZXNuJ3QuIE9rYXksIEknbGwgZG91YmxlLWNoZWNrIGZvciBhIHBsYXRmb3JtIGRyaXZlciBvciBzb21ldGhpbmcgc2ltaWxhciB0byBzZWUgaWYgdGhlcmUncyBhbnkgb3RoZXIgb3B0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzI1OCwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQwMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQyMzozNzo0Mi4yODAwNTcyNzJaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0MTI2MjMxNzksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3OTk2X3BjaV9wcm9iZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM9Nzk9c3RhdGljIGludCBtdDc5OTZfcGNpX2hpZjJfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy05OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYzo5OTpzdGF0aWMgaW50IG10Nzk5Nl9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMTAwLVxcdFxcdFxcdCAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYz0yNDQ9c3RydWN0IHBjaV9kcml2ZXIgbXQ3OTk2X2hpZl9kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNDYtXFx0LmlkX3RhYmxlXFx0PSBtdDc5OTZfaGlmX2RldmljZV90YWJsZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYzoyNDc6XFx0LnByb2JlXFx0XFx0PSBtdDc5OTZfcGNpX3Byb2JlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI0OC1cXHQucmVtb3ZlXFx0XFx0PSBtdDc5OTZfaGlmX3JlbW92ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jPTI1MT1zdHJ1Y3QgcGNpX2RyaXZlciBtdDc5OTZfcGNpX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI1My1cXHQuaWRfdGFibGVcXHQ9IG10Nzk5Nl9wY2lfZGV2aWNlX3RhYmxlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jOjI1NDpcXHQucHJvYmVcXHRcXHQ9IG10Nzk5Nl9wY2lfcHJvYmUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjU1LVxcdC5yZW1vdmVcXHRcXHQ9IG10Nzk5Nl9wY2lfcmVtb3ZlLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQyMzozNzo0NC42OTI3MjA1ODFaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDY4NjUwMzUzOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipQQ0kgRnV6emluZyBDb251bmRydW0qKlxuXG5Pa2F5LCB3YWl0IGEgbWludXRlLCBkb2VzIHN5emthbGxlciBldmVuICpoYXZlKiBhIFBDSSBmdXp6ZXI/IEkgc2hvdWxkIHByb2JhYmx5IGRvdWJsZS1jaGVjay4gTGV0IG1lIHNlZSBpZiB0aGVyZSdzIGFueXRoaW5nIG9idmlvdXMgaW4gdGhlIGtlcm5lbCBzb3VyY2UsIGxpa2UgYSBgc3l6X3BjaWAgY2FsbC4gT2gsIHJpZ2h0LCB0aGUgcHJvbXB0IHdhcm5lZCBtZS4gSXQgc3BlY2lmaWNhbGx5IHNhaWQgbm90IHRvIGxvb2sgZm9yIGFueXRoaW5nIHN0YXJ0aW5nIHdpdGggXCJzeXpfXCIgaW4gdGhlIGtlcm5lbCBpdHNlbGYuIFRob3NlIGFyZSBqdXN0IHN5emthbGxlcidzIGludGVybmFsIHBzZXVkby1zeXNjYWxscy4gT2theSwgc28gc2NyYXRjaCB0aGF0LlxuXG5JbnN0ZWFkIG9mIGxvb2tpbmcgZm9yIGEgc3l6X3BjaSwgSSBzaG91bGQgbG9vayBmb3IgYSBQQ0kgZW11bGF0aW9uIGZyYW1ld29yaywgKndpdGhpbiogdGhlIGtlcm5lbC4gTGV0IG1lIHNlZS4uLiBBaGEsIEkgc2VlIGBDT05GSUdfUENJX0VORFBPSU5UX1RFU1RgLCBidXQgdGhhdCdzIGp1c3QgZm9yIGVuZHBvaW50cywgbm90IGEgZ2VuZXJhbCBlbXVsYXRpb24gZnJhbWV3b3JrLiBTbywgbm8sIHRoZXJlIGlzbid0IGFueSBnZW5lcmljIFBDSSBlbXVsYXRpb24gY2FwYWJpbGl0eSBpbiB0aGUga2VybmVsIHRoYXQgd291bGQgbGV0IHVzZXJzcGFjZSBqdXN0IGRlZmluZSBhbmQgaW50ZXJhY3Qgd2l0aCBhbiBhcmJpdHJhcnkgUENJIGRldmljZS5cblxuSG1tLCB3aGF0IGlmIHRoZSBkcml2ZXIgaXNuJ3Qgc3RyaWN0bHkgUENJIGJ1dCBjYW4gYWxzbyBiZSBhY2Nlc3NlZCB2aWEgU0RJTyBvciBVU0I/IEkgbmVlZCB0byBmaW5kIHRoZSBkcml2ZXIgZGlyZWN0b3J5LCBzbyBsZXQgbWUgc2Vl4oCmIEFscmlnaHQsIHRoZSBkaXJlY3RvcnkgaXMgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2AuIE5vdyBsZXQncyBkaWcgaW50byB0aGUgYE1ha2VmaWxlYCB0byBzZWUgaG93IGl0IHdvcmtzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNDY0OSwiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQyMzozNzo0OS4zNzkyMjgxNjlaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1ODUwMTE3OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5OTZlLXlcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU9Mz1vYmotJChDT05GSUdfTVQ3OTk2RSkgKz0gbXQ3OTk2ZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGUtNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTo1Om10Nzk5NmUteSA6PSBwY2kubyBpbml0Lm8gZG1hLm8gZWVwcm9tLm8gbWFpbi5vIG1jdS5vIG1hYy5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS02LVxcdCAgICAgZGVidWdmcy5vIG1taW8ub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQyMzozNzo0OS41Mzc3MzM3MDhaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTkyMDEzMzY0OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIFRoaXMgUENJIERyaXZlcidzIEZ1enppbmcgUG90ZW50aWFsKipcblxuT2theSwgc28gdGhlIGlzc3VlIGF0IGhhbmQgaXMgc29sZWx5IHdpdGhpbiBgcGNpLm9gLiBUaGF0IGltbWVkaWF0ZWx5IGZsYWdzIGl0IGFzIGEgUENJLXNwZWNpZmljIGRyaXZlci4gR2l2ZW4gdGhhdCBpdCB0YXJnZXRzIGEgcGFydGljdWxhciBoYXJkd2FyZSBkZXZpY2UgdGhyb3VnaCB0aGUgUENJIGludGVyZmFjZSwgSSBrbm93LCBiYXNlZCBvbiBleHBlcmllbmNlLCB0aGF0IHRoZSBsaWtlbGlob29kIG9mIHRyaWdnZXJpbmcgaXQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCDigJMgbGlrZSBhIEdDRSBpbnN0YW5jZSBvciBRRU1VIOKAkyBpcyBlZmZlY3RpdmVseSB6ZXJvLCBiYXJyaW5nIHZlcnkgc3BlY2lmaWMgYW5kIHNvcGhpc3RpY2F0ZWQgZW11bGF0aW9uLlxuXG5Db25zZXF1ZW50bHksIGFueSBjb2RlIHBhdGhzIHJlc2lkaW5nIHdpdGhpbiBgbXQ3OTk2X3RoZXJtYWxfaW5pdGAgYW5kIGBtdDc5OTZfdGhlcm1hbF9nZXRfdGVtcGAgYXJlLCBpbiB0aGlzIGNvbnRleHQsIGluYWNjZXNzaWJsZS4gVGhleSBhcmUgaW50aW1hdGVseSB0aWVkIHRvIHRoZSBoYXJkd2FyZSBpbnRlcmFjdGlvbiB0aGF0IHNpbXBseSB3b24ndCBiZSBhdmFpbGFibGUgdG8gbWUgZHVyaW5nIG15IGZ1enppbmcgZWZmb3J0cyBpbiB0aGlzIHR5cGUgb2YgZW52aXJvbm1lbnQuXG5cblRoZXJlZm9yZSwgdGhlIHBydWRlbnQgYW5kIHJlc291cmNlLWNvbnNjaW91cyBkZWNpc2lvbiBoZXJlIGlzIHRvIGRlY2xhcmUgYFdvcnRoRnV6emluZz1mYWxzZWAuIEl0J3MgYSB3YXN0ZSBvZiB0aW1lIHRvIGNoYXNlIGZ1bmN0aW9uYWxpdHkgdGhhdCdzIGZ1bmRhbWVudGFsbHkgdW5yZWFjaGFibGUgd2l0aG91dCB0aGUgYXBwcm9wcmlhdGUgcGh5c2ljYWwgaGFyZHdhcmUgb3IgYSB2ZXJ5IHNwZWNpYWxpemVkIGVtdWxhdG9yLlxuXG5KdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiwgbGV0IG1lIHF1aWNrbHkgc2NhbiB0aGUgYnJvYWRlciBkZXZpY2UgcmVnaXN0cmF0aW9uIGxhbmRzY2FwZSB3aXRoaW4gdGhlIGRyaXZlci4gQXJlIHRoZXJlIGFueSBpbmRpY2F0aW9ucyBvZiBwbGF0Zm9ybSBkZXZpY2UgcmVnaXN0cmF0aW9uIG9yIGFsdGVybmF0ZSBwYXRod2F5cyB0aGF0IG1pZ2h0IGFsbG93IGZvciBzb21lIGZvcm0gb2YgY29kZSBleGVjdXRpb24gd2l0aGluIHRoaXMgZHJpdmVyPyBJIG5lZWQgdG8gYmUgc3VyZSB0aGF0IEkgaGF2ZW4ndCBtaXNzZWQgYSBtb3JlIGluZGlyZWN0IG1ldGhvZCBvZiBnZXR0aW5nIGF0IGl0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTM0NiwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQyMzozNzo1OS40NTc4NzA2MTZaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk5NTEwODYzLCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwbGF0Zm9ybV9kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQyMzozNzo1OS41NTczODk0NjlaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTM0MjY5NTI5OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipXb3J0aEZ1enppbmc9ZmFsc2U6IE1lZGlhVGVrIFdpLUZpIERyaXZlciBBbmFseXNpcyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgTWVkaWFUZWsgV2ktRmkgZHJpdmVyLCB0cnlpbmcgdG8gZmlndXJlIG91dCBpZiBpdCdzIGEgZ29vZCB0YXJnZXQgZm9yIGZ1enppbmcuIEluaXRpYWxseSwgSSB3YXMgdGhpbmtpbmcsIFwiTm8gcGxhdGZvcm0gZHJpdmVyLCBzbyBpcyB0aGVyZSBhbm90aGVyIHdheSB0byBnZXQgYXQgdGhpcz9cIiBUaGUgYW5zd2VyIGlzIHByZXR0eSBjbGVhcjogTm8uXG5cblRoZW4gSSBoYWQgYSBmbGlja2VyIG9mIGFuIGlkZWEsIFwiV2FpdCwgTWVkaWFUZWsgZHJpdmVycywgc29tZXRpbWVzIHVzZWQgaW4gU29DcyBhcyBwbGF0Zm9ybSBkZXZpY2VzLCBtYXliZSBpdCBjb3VsZCBiZSB1c2VkIGJ5IFNvQ3MsIGxpa2UgT3BlbldydCByb3V0ZXJzIGFuZCBzdWNoP1wiIEkgY2hlY2tlZCB0aGUgY29kZS4gVGhlIE1ha2VmaWxlIG9ubHkgYnVpbGRzIGBwY2kub2AgYW5kIGBtbWlvLm9gLCBzbyBpdCBzZWVtcyBpdCdzIG5vdCB0aGUgY2FzZS4gVGhlIGBtdDc5OTZfaW5pdGAgZnVuY3Rpb24gb25seSByZWdpc3RlcnMgdGhlIFBDSSBkcml2ZXJzLlxuXG5TbyBpdCdzIHB1cmVseSBhIFBDSSBkcml2ZXIuIFRoYXQncyBhIHByb2JsZW0uIFN5emthbGxlciBydW5zIGluIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLCBhbmQgdGhlcmUncyBubyBnZW5lcmljIFBDSSBkZXZpY2UgZW11bGF0b3IgYnVpbHQgaW50byB0aGUgTGludXgga2VybmVsIGxpa2Ugd2l0aCBVU0IgZ2FkZ2V0IG9yIGBtYWM4MDIxMV9od3NpbWAuIFRoaXMgbWVhbnMgdGhhdCBQQ0kgZHJpdmVycyBmb3Igc3BlY2lmaWMgaGFyZHdhcmUganVzdCBjYW4ndCBiZSBwcm9iZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gVGhpcyBtZWFucyB0aGUgdGhlcm1hbCB6b25lIHJlZ2lzdHJhdGlvbiBhbmQgdGhlIGBtdDc5OTZfdGhlcm1hbF9nZXRfdGVtcGAgZnVuY3Rpb24gYXJlIHVucmVhY2hhYmxlIHZpYSBmdXp6aW5nLlxuXG5NeSBjb25jbHVzaW9uIGlzIHRoYXQgdGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIgdGhhdCBjYW5ub3QgYmUgZWZmZWN0aXZlbHkgZnV6emVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIFRoZXJlZm9yZSwgSSBuZWVkIHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC5cblxuTGV0IG1lIGp1c3QgY29uZmlybSB0aGVyZSBpc24ndCBzb21lIGhpZGRlbiBnZW5lcmljIFBDSSBkZXZpY2UgZW11bGF0b3IgaW4gdGhlIGtlcm5lbCB0aGF0IEknbSBmb3JnZXR0aW5nLi4uIFRoZXJlJ3MgYFBDSV9TVFVCYCBidXQgdGhhdCdzIGZvciBoaWRpbmcgZGV2aWNlcyBmcm9tIHRoZSBob3N0LCBub3QgZm9yIGVtdWxhdGluZy4gVGhlbiB0aGVyZSdzIGBWRklPX1BDSWAsIGJ1dCB0aGF0J3MgZm9yIHBhc3NpbmcgdGhyb3VnaCAqcmVhbCogZGV2aWNlcy4gTm90aGluZyB0aGVyZS4gU28sIHJlYWxseSwgU3l6a2FsbGVyJ3MgUENJIGZ1enppbmcgKnJlbGllcyogb24gUUVNVSdzIFBDSSBlbXVsYXRpb24sIG9yIGl0IGRvZXNuJ3QgZXhpc3QuLi5cblxuV2FpdCwgZG9lc24ndCBTeXprYWxsZXIgaGF2ZSBhIFBDSSBmdXp6ZXI/IEhvdyBkb2VzIHRoYXQgd29yaz8gRG9lcyBpdCBpbmplY3QgUENJIGRldmljZXMgdmlhIGEgY3VzdG9tIFFFTVUgZGV2aWNlIG9yIHNvbWV0aGluZz8gTm8sIGl0IGRvZXNuJ3QuIFN5emthbGxlciB1c2VzIGBzeXpfcGNpXy4uLmAgd2hpY2ggbWlnaHQgYmUgaW1wbGVtZW50ZWQgdmlhIHNvbWUgY3VzdG9tIGtlcm5lbCBtb2R1bGU/IE5vLCBzeXprYWxsZXIgZG9lc24ndCB1c2UgY3VzdG9tIGtlcm5lbCBtb2R1bGVzLiBJdCBkb2VzIHVzZSBgdmhjaWAgZm9yIFVTQiwgYnV0IEkgY2FuJ3QgZmluZCBhIGB2aGNpYCBlcXVpdmFsZW50IGZvciBQQ0kuXG5cblJpZ2h0LCB0aGVuIGhvdz8gRG9lcyBTeXprYWxsZXIgaGF2ZSBhIGN1c3RvbSBRRU1VIGRldmljZT8gTm8uIFRoZW4sIGhvdyBkbyB0aGV5IGluamVjdCBQQ0kgZGV2aWNlcywgc3l6a2FsbGVyIHVzZXMgdGhlIGBzeXpfcGNpYCBwc2V1ZG8tc3lzY2FsbHMgd2hpY2ggYXJlIGltcGxlbWVudGVkIGluIHRoZSBleGVjdXRvciwgYnV0IGhvdyBkbyB0aGV5IGluamVjdCBQQ0kgZGV2aWNlcz8gVGhleSBkb24ndC4gVGhleSBqdXN0IGZ1enogdGhlIFBDSSBjb25maWd1cmF0aW9uIHNwYWNlIG9mIGV4aXN0aW5nIGRldmljZXM/IE5vLiBJdCBpbmplY3RzIGEgKm5ldyogUENJIGRldmljZS4gQWN0dWFsbHksIHN5emthbGxlciBkb2VzIG5vdCBoYXZlIGEgZ2VuZXJpYyBQQ0kgZGV2aWNlIGVtdWxhdG9yLlxuXG5HaXZlbiBhbGwgb2YgdGhhdCwgaXQgaXMgY2xlYXIgdGhhdCBJIHdpbGwgc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTgxNiwiT3V0cHV0VG9rZW5zIjoxMTYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MDQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMjM6Mzg6MDguOTAwMDg4NDY4WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQxMzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIE1UNzk5NiBXaS1GaSBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlci4gU2luY2UgdGhlcmUgaXMgbm8gZ2VuZXJpYyBQQ0kgZGV2aWNlIGVtdWxhdG9yIGluIHRoZSBMaW51eCBrZXJuZWwgKHVubGlrZSBVU0IgZ2FkZ2V0IG9yIG1hYzgwMjExX2h3c2ltKSwgdGhpcyBkcml2ZXIgY2Fubm90IGJlIHByb2JlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSB3aXRob3V0IHRoZSBhY3R1YWwgaGFyZHdhcmUuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIE1UNzk5NiBXaS1GaSBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlci4gU2luY2UgdGhlcmUgaXMgbm8gZ2VuZXJpYyBQQ0kgZGV2aWNlIGVtdWxhdG9yIGluIHRoZSBMaW51eCBrZXJuZWwgKHVubGlrZSBVU0IgZ2FkZ2V0IG9yIG1hYzgwMjExX2h3c2ltKSwgdGhpcyBkcml2ZXIgY2Fubm90IGJlIHByb2JlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSB3aXRob3V0IHRoZSBhY3R1YWwgaGFyZHdhcmUuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow2z8gx[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-22 23:11:33 +0000 UTC FinishedAt: 2026-07-22 23:38:10 +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+CgkJCTx0ZD4yMDI2LzA3LzIyIDIzOjM3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYVRlayBNVDc5OTYgV2ktRmkgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIuIFNpbmNlIHRoZXJlIGlzIG5vIGdlbmVyaWMgUENJIGRldmljZSBlbXVsYXRvciBpbiB0aGUgTGludXgga2VybmVsICh1bmxpa2UgVVNCIGdhZGdldCBvciBtYWM4MDIxMV9od3NpbSksIHRoaXMgZHJpdmVyIGNhbm5vdCBiZSBwcm9iZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0Ugd2l0aG91dCB0aGUgYWN0dWFsIGhhcmR3YXJlLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjM6Mzc8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAyMWM0NTI3MGU4YWVhNWM1Yzg3Y2Q4YjZmNmM0MGY4ODBjZGIzMWZmXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdWwgMjIgMjM6Mzc6MDIgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jXG5pbmRleCBkNmY5YWExYWI1MmQxMi4uMTE1MTQ1Zjk5M2QwMTYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuY1xuQEAgLTIzNiw2ICYjNDM7MjM2LDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZV9vcHMgbXQ3OTk2X3RoZXJtYWxfb3BzID0ge1xuIFx0LnNldF9jdXJfc3RhdGUgPSBtdDc5OTZfdGhlcm1hbF9zZXRfY3VyX3Rocm90dGxlX3N0YXRlLFxuIH07XG4gXG4mIzQzO3N0YXRpYyBpbnQgbXQ3OTk2X3RoZXJtYWxfZ2V0X3RlbXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgKnRlbXApXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5ID0gdGhlcm1hbF96b25lX2RldmljZV9wcml2KHR6KTtcbiYjNDM7XHRpbnQgdmFsO1xuJiM0MztcbiYjNDM7XHR2YWwgPSBtdDc5OTZfbWN1X2dldF90ZW1wZXJhdHVyZShwaHkpO1xuJiM0MztcdGlmICh2YWwgXHUwMDNjIDApXG4mIzQzO1x0XHRyZXR1cm4gdmFsO1xuJiM0MztcbiYjNDM7XHQqdGVtcCA9IHZhbCAqIDEwMDA7XG4mIzQzO1x0cmV0dXJuIDA7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZV9vcHMgbXQ3OTk2X3R6X29wcyA9IHtcbiYjNDM7XHQuZ2V0X3RlbXAgPSBtdDc5OTZfdGhlcm1hbF9nZXRfdGVtcCxcbiYjNDM7fTtcbiYjNDM7XG4gc3RhdGljIHZvaWQgbXQ3OTk2X3VucmVnaXN0ZXJfdGhlcm1hbChzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxuIHtcbiBcdHN0cnVjdCB3aXBoeSAqd2lwaHkgPSBwaHktXHUwMDNlbXQ3Ni1cdTAwM2Vody1cdTAwM2V3aXBoeTtcbkBAIC0yNzcsNiAmIzQzOzI5NCwxNyBAQCBzdGF0aWMgaW50IG10Nzk5Nl90aGVybWFsX2luaXQoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSlcbiBcdHBoeS1cdTAwM2V0aHJvdHRsZV90ZW1wW01UNzk5Nl9DUklUX1RFTVBfSURYXSA9IE1UNzk5Nl9DUklUX1RFTVA7XG4gXHRwaHktXHUwMDNldGhyb3R0bGVfdGVtcFtNVDc5OTZfTUFYX1RFTVBfSURYXSA9IE1UNzk5Nl9NQVhfVEVNUDtcbiBcbiYjNDM7XHRwaHktXHUwMDNldHpvbmUgPSBkZXZtX3RoZXJtYWxfb2Zfem9uZV9yZWdpc3RlcihwaHktXHUwMDNlZGV2LVx1MDAzZW10NzYuZGV2LFxuJiM0MztcdFx0XHRcdFx0XHQgICBwaHktXHUwMDNlbXQ3Ni1cdTAwM2ViYW5kX2lkeCwgcGh5LFxuJiM0MztcdFx0XHRcdFx0XHQgICBcdTAwMjZtdDc5OTZfdHpfb3BzKTtcbiYjNDM7XHRpZiAoSVNfRVJSKHBoeS1cdTAwM2V0em9uZSkpIHtcbiYjNDM7XHRcdGlmIChQVFJfRVJSKHBoeS1cdTAwM2V0em9uZSkgIT0gLUVOT0RFVilcbiYjNDM7XHRcdFx0ZGV2X3dhcm4ocGh5LVx1MDAzZWRldi1cdTAwM2VtdDc2LmRldixcbiYjNDM7XHRcdFx0XHQgXCYjMzQ7ZmFpbGVkIHRvIHJlZ2lzdGVyIHRoZXJtYWwgem9uZSVkOiAlbGRcXG5cJiMzNDssXG4mIzQzO1x0XHRcdFx0IHBoeS1cdTAwM2VtdDc2LVx1MDAzZWJhbmRfaWR4LCBQVFJfRVJSKHBoeS1cdTAwM2V0em9uZSkpO1xuJiM0MztcdFx0cGh5LVx1MDAzZXR6b25lID0gTlVMTDtcbiYjNDM7XHR9XG4mIzQzO1xuIFx0aWYgKCFJU19SRUFDSEFCTEUoQ09ORklHX0hXTU9OKSlcbiBcdFx0cmV0dXJuIDA7XG4gXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaFxuaW5kZXggMGQ2NDg4NTIyYmE3MTEuLjEyMDdiNWM3ZTk4YjlkIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oXG5AQCAtMzcyLDYgJiM0MzszNzIsNyBAQCBzdHJ1Y3QgbXQ3OTk2X3BoeSB7XG4gXG4gXHRzdHJ1Y3QgaWVlZTgwMjExX3NiYW5kX2lmdHlwZV9kYXRhIGlmdHlwZVtOVU1fTkw4MDIxMV9CQU5EU11bTlVNX05MODAyMTFfSUZUWVBFU107XG4gXG4mIzQzO1x0c3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6b25lO1xuIFx0c3RydWN0IHRoZXJtYWxfY29vbGluZ19kZXZpY2UgKmNkZXY7XG4gXHR1OCBjZGV2X3N0YXRlO1xuIFx0dTggdGhyb3R0bGVfc3RhdGU7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjM6Mzc8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYVRlayBNVDc5OTYgV2ktRmkgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIuIFNpbmNlIHRoZXJlIGlzIG5vIGdlbmVyaWMgUENJIGRldmljZSBlbXVsYXRvciBpbiB0aGUgTGludXgga2VybmVsICh1bmxpa2UgVVNCIGdhZGdldCBvciBtYWM4MDIxMV9od3NpbSksIHRoaXMgZHJpdmVyIGNhbm5vdCBiZSBwcm9iZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0Ugd2l0aG91dCB0aGUgYWN0dWFsIGhhcmR3YXJlLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDIxYzQ1MjcwZThhZWE1YzVjODdjZDhiNmY2YzQwZjg4MGNkYjMxZmYKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgV2VkIEp1bCAyMiAyMzozNzowMiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYwppbmRleCBkNmY5YWExYWI1MmQxMi4uMTE1MTQ1Zjk5M2QwMTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMKQEAgLTIzNiw2ICYjNDM7MjM2LDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZV9vcHMgbXQ3OTk2X3RoZXJtYWxfb3BzID0gewogCS5zZXRfY3VyX3N0YXRlID0gbXQ3OTk2X3RoZXJtYWxfc2V0X2N1cl90aHJvdHRsZV9zdGF0ZSwKIH07CiAKJiM0MztzdGF0aWMgaW50IG10Nzk5Nl90aGVybWFsX2dldF90ZW1wKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0eiwgaW50ICp0ZW1wKQomIzQzO3sKJiM0MzsJc3RydWN0IG10Nzk5Nl9waHkgKnBoeSA9IHRoZXJtYWxfem9uZV9kZXZpY2VfcHJpdih0eik7CiYjNDM7CWludCB2YWw7CiYjNDM7CiYjNDM7CXZhbCA9IG10Nzk5Nl9tY3VfZ2V0X3RlbXBlcmF0dXJlKHBoeSk7CiYjNDM7CWlmICh2YWwgJmx0OyAwKQomIzQzOwkJcmV0dXJuIHZhbDsKJiM0MzsKJiM0MzsJKnRlbXAgPSB2YWwgKiAxMDAwOwomIzQzOwlyZXR1cm4gMDsKJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlX29wcyBtdDc5OTZfdHpfb3BzID0gewomIzQzOwkuZ2V0X3RlbXAgPSBtdDc5OTZfdGhlcm1hbF9nZXRfdGVtcCwKJiM0Mzt9OwomIzQzOwogc3RhdGljIHZvaWQgbXQ3OTk2X3VucmVnaXN0ZXJfdGhlcm1hbChzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KQogewogCXN0cnVjdCB3aXBoeSAqd2lwaHkgPSBwaHktJmd0O210NzYtJmd0O2h3LSZndDt3aXBoeTsKQEAgLTI3Nyw2ICYjNDM7Mjk0LDE3IEBAIHN0YXRpYyBpbnQgbXQ3OTk2X3RoZXJtYWxfaW5pdChzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KQogCXBoeS0mZ3Q7dGhyb3R0bGVfdGVtcFtNVDc5OTZfQ1JJVF9URU1QX0lEWF0gPSBNVDc5OTZfQ1JJVF9URU1QOwogCXBoeS0mZ3Q7dGhyb3R0bGVfdGVtcFtNVDc5OTZfTUFYX1RFTVBfSURYXSA9IE1UNzk5Nl9NQVhfVEVNUDsKIAomIzQzOwlwaHktJmd0O3R6b25lID0gZGV2bV90aGVybWFsX29mX3pvbmVfcmVnaXN0ZXIocGh5LSZndDtkZXYtJmd0O210NzYuZGV2LAomIzQzOwkJCQkJCSAgIHBoeS0mZ3Q7bXQ3Ni0mZ3Q7YmFuZF9pZHgsIHBoeSwKJiM0MzsJCQkJCQkgICAmYW1wO210Nzk5Nl90el9vcHMpOwomIzQzOwlpZiAoSVNfRVJSKHBoeS0mZ3Q7dHpvbmUpKSB7CiYjNDM7CQlpZiAoUFRSX0VSUihwaHktJmd0O3R6b25lKSAhPSAtRU5PREVWKQomIzQzOwkJCWRldl93YXJuKHBoeS0mZ3Q7ZGV2LSZndDttdDc2LmRldiwKJiM0MzsJCQkJICYjMzQ7ZmFpbGVkIHRvIHJlZ2lzdGVyIHRoZXJtYWwgem9uZSVkOiAlbGRcbiYjMzQ7LAomIzQzOwkJCQkgcGh5LSZndDttdDc2LSZndDtiYW5kX2lkeCwgUFRSX0VSUihwaHktJmd0O3R6b25lKSk7CiYjNDM7CQlwaHktJmd0O3R6b25lID0gTlVMTDsKJiM0MzsJfQomIzQzOwogCWlmICghSVNfUkVBQ0hBQkxFKENPTkZJR19IV01PTikpCiAJCXJldHVybiAwOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oCmluZGV4IDBkNjQ4ODUyMmJhNzExLi4xMjA3YjVjN2U5OGI5ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgKQEAgLTM3Miw2ICYjNDM7MzcyLDcgQEAgc3RydWN0IG10Nzk5Nl9waHkgewogCiAJc3RydWN0IGllZWU4MDIxMV9zYmFuZF9pZnR5cGVfZGF0YSBpZnR5cGVbTlVNX05MODAyMTFfQkFORFNdW05VTV9OTDgwMjExX0lGVFlQRVNdOwogCiYjNDM7CXN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0em9uZTsKIAlzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZSAqY2RldjsKIAl1OCBjZGV2X3N0YXRlOwogCXU4IHRocm90dGxlX3N0YXRlOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMzozNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjkxCgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMTczCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgYG10Nzk5NmAgVGhlcm1hbCBab25lIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFkZGluZyB0aGVybWFsIHpvbmUgc3VwcG9ydCB0byB0aGUgYG10Nzk5NmAgd2lyZWxlc3MgZHJpdmVyLiBJdCYjMzk7cyByZWdpc3RlcmluZyB0aGUgdGhlcm1hbCB6b25lIGRldmljZSB1c2luZyBgZGV2bV90aGVybWFsX29mX3pvbmVfcmVnaXN0ZXJgLCB3aGljaCBzZWVtcyBzdGFuZGFyZCBlbm91Z2guIEJ1dCBJJiMzOTttIHN0YXJ0aW5nIHRvIHRoaW5rIGFib3V0IHJlYWNoYWJpbGl0eSwgYW5kIHdoZXRoZXIgdGhpcyBpcyBldmVuIHJlYWxpc3RpY2FsbHkgdGVzdGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBUaGlzIGlzIGEgZHJpdmVyIGZvciBhICpwaHlzaWNhbCogV2ktRmkgZGV2aWNlLCB0aGUgYG10Nzk5NmAuICBVc3VhbGx5LCB1bmxlc3MgdGhlcmUmIzM5O3MgYSBzcGVjaWZpYyBzb2Z0d2FyZSBlbXVsYXRpb24gbGF5ZXIgaW4gcGxhY2XigJRsaWtlIGBtYWM4MDIxMV9od3NpbWDigJRhIFBDSSBvciBVU0IgV2ktRmkgZHJpdmVyIGlzIHByZXR0eSBtdWNoIGluYWNjZXNzaWJsZSBpbiBhIHR5cGljYWwgVk0gc2V0dXAuCgpOb3csIGlmIEkgdGhpbmsgYWJvdXQgaXQgbW9yZSBjYXJlZnVsbHksIGFuZCBJIGJlbGlldmUgdGhpcyBpcyBhIFBDSWUgZHJpdmVyLCBzbyB0aGUgcmVhY2hhYmlsaXR5IHF1ZXN0aW9uIGJlY29tZXMgbW9yZSBpbnRlcmVzdGluZy4gSXQgKmNvdWxkKiBiZSBmdXp6ZWQsIGdpdmVuIFBDSWXigJlzIGNoYXJhY3RlcmlzdGljcy4gSSBuZWVkIHRvIGNvbmZpcm0gd2hldGhlciBgbXQ3OTk2YCBpcywgaW4gZmFjdCwgUENJZSBvciBVU0IuIEkmIzM5O2xsIHVzZSBgZ3JlcHBlcmAgdG8gcXVpY2tseSBkZXRlcm1pbmUgd2hhdCBidXMgdHlwZSB0aGlzIGRyaXZlciBpcyBhc3NvY2lhdGVkIHdpdGguCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjM6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTk2JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA2NTM1IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS0yLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfTVQ3OTk2RSkgJiM0Mzs9IG10Nzk5NmUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGUtNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlOjU6bXQ3OTk2ZS15IDo9IHBjaS5vIGluaXQubyBkbWEubyBlZXByb20ubyBtYWluLm8gbWN1Lm8gbWFjLm8gXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTYtXHQgICAgIGRlYnVnZnMubyBtbWlvLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTo4Om10Nzk5NmUtJChDT05GSUdfTVQ3OTk2X05QVSkgJiM0Mzs9IG5wdS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTo5Om10Nzk5NmUtJChDT05GSUdfREVWX0NPUkVEVU1QKSAmIzQzOz0gY29yZWR1bXAub1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM9MTI9TU9EVUxFX1BBUk1fREVTQyhjb3JlZHVtcF9tZW1kdW1wLCBcJiMzNDtPcHRpb25hbCBhYmlsaXR5IHRvIGR1bXAgZmlybXdhcmUgbWVtb3J5XCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE0OnN0YXRpYyBjb25zdCBzdHJ1Y3QgbXQ3OTk2X21lbV9yZWdpb24gbXQ3OTk2X21lbV9yZWdpb25zW10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTE1LVx0e1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjQ3OmNvbnN0IHN0cnVjdCBtdDc5OTZfbWVtX3JlZ2lvbipcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NDg6bXQ3OTk2X2NvcmVkdW1wX2dldF9tZW1fbGF5b3V0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHUzMiAqbnVtKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy00OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy01Mi1cdGNhc2UgTVQ3OTk2X0RFVklDRV9JRF8yOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo1MzpcdFx0Km51bSA9IEFSUkFZX1NJWkUobXQ3OTk2X21lbV9yZWdpb25zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NTQ6XHRcdHJldHVybiBcdTAwMjZtdDc5OTZfbWVtX3JlZ2lvbnNbMF07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTU1LVx0ZGVmYXVsdDpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo2MDpzdGF0aWMgaW50IG10Nzk5Nl9jb3JlZHVtcF9nZXRfbWVtX3NpemUoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNjEte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo2MjpcdGNvbnN0IHN0cnVjdCBtdDc5OTZfbWVtX3JlZ2lvbiAqbWVtX3JlZ2lvbjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNjMtXHRzaXplX3Qgc2l6ZSA9IDA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy02Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6Njc6XHRtZW1fcmVnaW9uID0gbXQ3OTk2X2NvcmVkdW1wX2dldF9tZW1fbGF5b3V0KGRldiwgXHUwMDI2bnVtKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNjgtXHRpZiAoIW1lbV9yZWdpb24pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy03Ni1cdC8qIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBoZWFkZXJzICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjc3Olx0c2l6ZSAmIzQzOz0gbnVtICogc2l6ZW9mKHN0cnVjdCBtdDc5OTZfbWVtX2hkcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTc4LVx0LyogbWFrZSBzdXJlIGl0IGlzIGFsaWduZWQgNCBieXRlcyBmb3IgZGVidWcgbWVzc2FnZSBwcmludCBvdXQgKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTgzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo4NDpzdHJ1Y3QgbXQ3OTk2X2NyYXNoX2RhdGEgKm10Nzk5Nl9jb3JlZHVtcF9uZXcoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtODUte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo4NjpcdHN0cnVjdCBtdDc5OTZfY3Jhc2hfZGF0YSAqY3Jhc2hfZGF0YSA9IGRldi1cdTAwM2Vjb3JlZHVtcC5jcmFzaF9kYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy04Ny1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jPTEwMD1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxMDE6bXQ3OTk2X2NvcmVkdW1wX2Z3X3N0YXRlKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHN0cnVjdCBtdDc5OTZfY29yZWR1bXAgKmR1bXAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTEwMi1cdFx0XHQgYm9vbCAqZXhjZXB0aW9uKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM9MTE3PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjExODptdDc5OTZfY29yZWR1bXBfZndfc3RhY2soc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgc3RydWN0IG10Nzk5Nl9jb3JlZHVtcCAqZHVtcCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTE5LVx0XHRcdCBib29sIGV4Y2VwdGlvbilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTE2MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MTYyOnN0YXRpYyBzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wICptdDc5OTZfY29yZWR1bXBfYnVpbGQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTYzLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MTY0Olx0c3RydWN0IG10Nzk5Nl9jcmFzaF9kYXRhICpjcmFzaF9kYXRhID0gZGV2LVx1MDAzZWNvcmVkdW1wLmNyYXNoX2RhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE2NTpcdHN0cnVjdCBtdDc5OTZfY29yZWR1bXAgKmR1bXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE2NjpcdHN0cnVjdCBtdDc5OTZfY29yZWR1bXBfbWVtICpkdW1wX21lbTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTY3LVx0c2l6ZV90IGxlbiwgc29mYXIgPSAwLCBoZHJfbGVuID0gc2l6ZW9mKCpkdW1wKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTE4Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MTg3Olx0ZHVtcCA9IChzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wICopKGJ1Zik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTE4OC1cdGR1bXAtXHUwMDNlbGVuID0gbGVuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjAwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyMDE6XHRtdDc5OTZfY29yZWR1bXBfZndfc3RhdGUoZGV2LCBkdW1wLCBcdTAwMjZleGNlcHRpb24pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyMDI6XHRtdDc5OTZfY29yZWR1bXBfZndfc3RhY2soZGV2LCBkdW1wLCBleGNlcHRpb24pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIwNC1cdC8qIGdhdGhlciBtZW1vcnkgY29udGVudCAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyMDU6XHRkdW1wX21lbSA9IChzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wX21lbSAqKShidWYgJiM0Mzsgc29mYXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMDYtXHRkdW1wX21lbS1cdTAwM2VsZW4gPSBjcmFzaF9kYXRhLVx1MDAzZW1lbWR1bXBfYnVmX2xlbjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIxNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjE2OmludCBtdDc5OTZfY29yZWR1bXBfc3VibWl0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIxNy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIxODpcdHN0cnVjdCBtdDc5OTZfY29yZWR1bXAgKmR1bXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIxOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjIwOlx0ZHVtcCA9IG10Nzk5Nl9jb3JlZHVtcF9idWlsZChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMjEtXHRpZiAoIWR1bXApIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIzMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjMxOmludCBtdDc5OTZfY29yZWR1bXBfcmVnaXN0ZXIoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjMyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjMzOlx0c3RydWN0IG10Nzk5Nl9jcmFzaF9kYXRhICpjcmFzaF9kYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMzQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yNDEtXHRpZiAoY29yZWR1bXBfbWVtZHVtcCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyNDI6XHRcdGNyYXNoX2RhdGEtXHUwMDNlbWVtZHVtcF9idWZfbGVuID0gbXQ3OTk2X2NvcmVkdW1wX2dldF9tZW1fc2l6ZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yNDMtXHRcdGlmICghY3Jhc2hfZGF0YS1cdTAwM2VtZW1kdW1wX2J1Zl9sZW4pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yNTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjI1Nzp2b2lkIG10Nzk5Nl9jb3JlZHVtcF91bnJlZ2lzdGVyKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTI1OC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC02LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo3OiNpbmNsdWRlIFwmIzM0O210Nzk5Ni5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjk6c3RydWN0IG10Nzk5Nl9jb3JlZHVtcCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTEwLVx0Y2hhciBtYWdpY1sxNl07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC0zOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NDA6c3RydWN0IG10Nzk5Nl9jb3JlZHVtcF9tZW0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC00MS1cdHUzMiBsZW47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC00NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NDU6c3RydWN0IG10Nzk5Nl9tZW1faGRyIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNDYtXHR1MzIgc3RhcnQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC01MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NTE6c3RydWN0IG10Nzk5Nl9tZW1fcmVnaW9uIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNTItXHR1MzIgc3RhcnQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC01OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NjA6Y29uc3Qgc3RydWN0IG10Nzk5Nl9tZW1fcmVnaW9uICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NjE6bXQ3OTk2X2NvcmVkdW1wX2dldF9tZW1fbGF5b3V0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHUzMiAqbnVtKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NjI6c3RydWN0IG10Nzk5Nl9jcmFzaF9kYXRhICptdDc5OTZfY29yZWR1bXBfbmV3KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo2MzppbnQgbXQ3OTk2X2NvcmVkdW1wX3N1Ym1pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NjQ6aW50IG10Nzk5Nl9jb3JlZHVtcF9yZWdpc3RlcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NjU6dm9pZCBtdDc5OTZfY29yZWR1bXBfdW5yZWdpc3RlcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNjYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC02OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6Njk6c3RhdGljIGlubGluZSBjb25zdCBzdHJ1Y3QgbXQ3OTk2X21lbV9yZWdpb24gKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo3MDptdDc5OTZfY29yZWR1bXBfZ2V0X21lbV9sYXlvdXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgdTMyICpudW0pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTcxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTc0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo3NTpzdGF0aWMgaW5saW5lIGludCBtdDc5OTZfY29yZWR1bXBfc3VibWl0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTc2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oPTgwPXN0YXRpYyBpbmxpbmUgc3RydWN0XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjgxOm10Nzk5Nl9jcmFzaF9kYXRhICptdDc5OTZfY29yZWR1bXBfbmV3KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTgyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTg1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo4NjpzdGF0aWMgaW5saW5lIGludCBtdDc5OTZfY29yZWR1bXBfcmVnaXN0ZXIoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtODcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtOTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjkxOnN0YXRpYyBpbmxpbmUgdm9pZCBtdDc5OTZfY29yZWR1bXBfdW5yZWdpc3RlcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC05Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTYtI2luY2x1ZGUgXHUwMDNjbGludXgvcmVsYXkuaFx1MDAzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc6I2luY2x1ZGUgXCYjMzQ7bXQ3OTk2LmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04LSNpbmNsdWRlIFwmIzM0O2VlcHJvbS5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTIzPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyNDptdDc5OTZfaW1wbGljaXRfdHhiZl9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjY6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzM6XHRyZXR1cm4gbXQ3OTk2X21jdV9zZXRfdHhiZihkZXYsIEJGX0hXX0VOX1VQREFURSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzQtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0zNj1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Mzc6bXQ3OTk2X2ltcGxpY2l0X3R4YmZfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozOTpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NjpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19pbXBsaWNpdF90eGJmLCBtdDc5OTZfaW1wbGljaXRfdHhiZl9nZXQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDc6XHRcdFx0IG10Nzk5Nl9pbXBsaWNpdF90eGJmX3NldCwgXCYjMzQ7JWxsZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTUwPXN0YXRpYyBzc2l6ZV90XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTE6bXQ3OTk2X3N5c19yZWNvdmVyeV9zZXQoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgX191c2VyICp1c2VyX2J1ZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01Mi1cdFx0XHRzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01My17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTQ6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZmlsZS1cdTAwM2Vwcml2YXRlX2RhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTUtXHRjaGFyIGJ1ZlsxNl0sICpzZXA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkxLVx0Y2FzZSBVTklfQ01EX1NFUl9RVUVSWTpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo5MjpcdFx0cmV0ID0gbXQ3OTk2X21jdV9zZXRfc2VyKGRldiwgVU5JX0NNRF9TRVJfUVVFUlksIDAsIGJhbmQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkzLVx0XHRicmVhaztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTAwLVx0Y2FzZSBVTklfQ01EX1NFUl9TRVRfUkVDT1ZFUl9MNF9NRFA6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTAxOlx0XHRyZXQgPSBtdDc5OTZfbWN1X3NldF9zZXIoZGV2LCBVTklfQ01EX1NFUl9TRVQsIEJJVCh2YWwpLCBiYW5kKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMDItXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEwNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoxMDU6XHRcdHJldCA9IG10Nzk5Nl9tY3Vfc2V0X3NlcihkZXYsIFVOSV9DTURfU0VSX1RSSUdHRVIsIHZhbCwgYmFuZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTA2LVx0XHRicmVhaztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTExLVx0XHRkZXYtXHUwMDNlcmVjb3Zlcnkuc3RhdGUgfD0gTVRfTUNVX0NNRF9XRFRfTUFTSztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoxMTI6XHRcdG10Nzk5Nl9yZXNldChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTExMy1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTExNi1cdGNhc2UgVU5JX0NNRF9TRVJfU0VUX1NZU1RFTV9BU1NFUlQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTE3Olx0XHRyZXQgPSBtdDc5OTZfbWN1X3RyaWdnZXJfYXNzZXJ0KGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTE4LVx0XHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0xMjg9c3RhdGljIHNzaXplX3RcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoxMjk6bXQ3OTk2X3N5c19yZWNvdmVyeV9nZXQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICp1c2VyX2J1ZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMzAtXHRcdFx0c2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTMxLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoxMzI6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZmlsZS1cdTAwM2Vwcml2YXRlX2RhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTMzLVx0Y2hhciAqYnVmZjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjE0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjIxNTpzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBtdDc5OTZfc3lzX3JlY292ZXJ5X29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyMTY6XHQud3JpdGUgPSBtdDc5OTZfc3lzX3JlY292ZXJ5X3NldCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyMTc6XHQucmVhZCA9IG10Nzk5Nl9zeXNfcmVjb3ZlcnlfZ2V0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTIxOC1cdC5vcGVuID0gc2ltcGxlX29wZW4sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTIyMj1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjIzOm10Nzk5Nl9yYWRhcl90cmlnZ2VyKHZvaWQgKmRhdGEsIHU2NCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjI0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjI2LSNkZWZpbmUgUkFEQVJfQkFDS0dST1VORFx0MlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjIyNzpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjIyODpcdHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkgPSBtdDc5OTZfYmFuZF9waHkoZGV2LCBOTDgwMjExX0JBTkRfNUdIWik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjI5LVx0c3RydWN0IGNmZzgwMjExX2NoYW5fZGVmICpjaGFuZGVmO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNDctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjQ4Olx0cmRkX2lkeCA9IG10Nzk5Nl9nZXRfcmRkX2lkeChwaHksIHZhbCA9PSBSQURBUl9CQUNLR1JPVU5EKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNDktXHRpZiAocmRkX2lkeCBcdTAwM2MgMCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjU5Olx0cmV0dXJuIG10Nzk5Nl9tY3VfcmRkX2NtZChkZXYsIFJERF9SQURBUl9FTVVMQVRFLCByZGRfaWR4LCAwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNjAtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0yNjI9REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfcmFkYXJfdHJpZ2dlciwgTlVMTCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyNjM6XHRcdFx0IG10Nzk5Nl9yYWRhcl90cmlnZ2VyLCBcJiMzNDslbGxkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MjY1PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyNjY6bXQ3OTk2X3JkZF9tb25pdG9yKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNjcte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI2ODpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkZXZfZ2V0X2RydmRhdGEocy1cdTAwM2Vwcml2YXRlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNjktXHRzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWYgPSBcdTAwMjZkZXYtXHUwMDNlcmRkMl9jaGFuZGVmO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0zMTI9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjMxMzptdDc5OTZfZndfZGVidWdfd21fc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzE0LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozMTU6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zMTYtXHRlbnVtIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzM3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjMzODpcdHJldCA9IG10Nzk5Nl9tY3VfZndfbG9nXzJfaG9zdChkZXYsIE1DVV9GV19MT0dfV00sIHZhbCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzM5LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzUwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM1MTpcdFx0cmV0ID0gbXQ3OTk2X21jdV9md19kYmdfY3RybChkZXYsIGRlYnVnLCB2YWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM1Mi1cdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MzU5PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNjA6bXQ3OTk2X2Z3X2RlYnVnX3dtX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNjEte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM2MjpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM2My1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzY4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM2OTpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19md19kZWJ1Z193bSwgbXQ3OTk2X2Z3X2RlYnVnX3dtX2dldCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNzA6XHRcdFx0IG10Nzk5Nl9md19kZWJ1Z193bV9zZXQsIFwmIzM0OyVsbGRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM3MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0zNzI9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM3MzptdDc5OTZfZndfZGVidWdfd2Ffc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzc0LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNzU6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNzYtXHRpbnQgcmV0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzgwOlx0cmV0ID0gbXQ3OTk2X21jdV9md19sb2dfMl9ob3N0KGRldiwgTUNVX0ZXX0xPR19XQSwgZGV2LVx1MDAzZWZ3X2RlYnVnX3dhKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zODEtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zODMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Mzg0Olx0cmV0dXJuIG10Nzk5Nl9tY3Vfd2FfY21kKGRldiwgTUNVX1dBX1BBUkFNX0NNRChTRVQpLCBNQ1VfV0FfUEFSQU1fUERNQV9SWCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zODUtXHRcdFx0XHQgISFkZXYtXHUwMDNlZndfZGVidWdfd2EsIDApO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0zODg9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM4OTptdDc5OTZfZndfZGVidWdfd2FfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM5MC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzkxOlx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzkyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zOTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Mzk4OkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX2Z3X2RlYnVnX3dhLCBtdDc5OTZfZndfZGVidWdfd2FfZ2V0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM5OTpcdFx0XHQgbXQ3OTk2X2Z3X2RlYnVnX3dhX3NldCwgXCYjMzQ7JWxsZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDAwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz00MjU9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQyNjptdDc5OTZfZndfZGVidWdfYmluX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQyNy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQzMS1cdH07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDMyOlx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDMzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDQ0Olx0cmV0dXJuIG10Nzk5Nl9md19kZWJ1Z193bV9zZXQoZGV2LCBkZXYtXHUwMDNlZndfZGVidWdfd20pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ0NS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTQ0Nz1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDQ4Om10Nzk5Nl9md19kZWJ1Z19iaW5fZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ0OS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDUwOlx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDUxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDU3OkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX2Z3X2RlYnVnX2JpbiwgbXQ3OTk2X2Z3X2RlYnVnX2Jpbl9nZXQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDU4Olx0XHRcdCBtdDc5OTZfZndfZGVidWdfYmluX3NldCwgXCYjMzQ7JWxsZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTQ2MD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDYxOm10Nzk5Nl9md191dGlsX3dhX3Nob3coc3RydWN0IHNlcV9maWxlICpmaWxlLCB2b2lkICpkYXRhKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ2Mi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDYzOlx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGZpbGUtXHUwMDNlcHJpdmF0ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDY1LVx0aWYgKGRldi1cdTAwM2Vmd19kZWJ1Z193YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NjY6XHRcdHJldHVybiBtdDc5OTZfbWN1X3dhX2NtZChkZXYsIE1DVV9XQV9QQVJBTV9DTUQoUVVFUlkpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ2Ny1cdFx0XHRcdFx0IE1DVV9XQV9QQVJBTV9DUFVfVVRJTCwgMCwgMCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ3MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NzI6REVGSU5FX1NIT1dfQVRUUklCVVRFKG10Nzk5Nl9md191dGlsX3dhKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NDc0PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDc1Om10Nzk5Nl9hbXBkdV9zdGF0X3JlYWRfcGh5KHN0cnVjdCBtdDc5OTZfcGh5ICpwaHksIHN0cnVjdCBzZXFfZmlsZSAqZmlsZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NzYte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ3NzpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBwaHktXHUwMDNlZGV2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ3OC1cdGludCBib3VuZFsxNV0sIHJhbmdlWzhdLCBpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz01MDQ9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1MDU6bXQ3OTk2X3R4YmZfc3RhdF9yZWFkX3BoeShzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LCBzdHJ1Y3Qgc2VxX2ZpbGUgKnMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTA2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NTUyPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTUzOm10Nzk5Nl90eF9zdGF0c19zaG93X3BoeShzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTU0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTU4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU1OTpcdG10Nzk5Nl9tYWNfdXBkYXRlX3N0YXRzKHBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTYwOlx0bXQ3OTk2X2FtcGR1X3N0YXRfcmVhZF9waHkocGh5LCBmaWxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01NjEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU2OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1Njk6XHRtdDc5OTZfdHhiZl9zdGF0X3JlYWRfcGh5KHBoeSwgZmlsZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTcwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz01ODQ9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU4NTptdDc5OTZfdHhfc3RhdHNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTg2LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1ODc6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZmlsZS1cdTAwM2Vwcml2YXRlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU4ODpcdHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkgPSBcdTAwMjZkZXYtXHUwMDNlcGh5O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU4OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTkxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU5MjpcdG10Nzk5Nl90eF9zdGF0c19zaG93X3BoeShmaWxlLCBwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU5MzpcdHBoeSA9IG10Nzk5Nl9waHkyKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTk0LVx0aWYgKHBoeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1OTU6XHRcdG10Nzk5Nl90eF9zdGF0c19zaG93X3BoeShmaWxlLCBwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU5NjpcdHBoeSA9IG10Nzk5Nl9waHkzKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTk3LVx0aWYgKHBoeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1OTg6XHRcdG10Nzk5Nl90eF9zdGF0c19zaG93X3BoeShmaWxlLCBwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU5OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjA0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjYwNTpERUZJTkVfU0hPV19BVFRSSUJVVEUobXQ3OTk2X3R4X3N0YXRzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02MDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NjA3PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjA4Om10Nzk5Nl9od19xdWV1ZV9yZWFkKHN0cnVjdCBzZXFfZmlsZSAqcywgdTMyIHNpemUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjA5LVx0XHQgICAgIGNvbnN0IHN0cnVjdCBod19xdWV1ZV9tYXAgKm1hcClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02MTAte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjYxMTpcdHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkgPSBzLVx1MDAzZXByaXZhdGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjEyOlx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IHBoeS1cdTAwM2VkZXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjEzLVx0dTMyIGksIHZhbDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NjM4PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjM5Om10Nzk5Nl9zdGFfaHdfcXVldWVfcmVhZCh2b2lkICpkYXRhLCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY0MC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjQxOlx0c3RydWN0IG10Nzk5Nl9zdGEgKm1zdGEgPSAoc3RydWN0IG10Nzk5Nl9zdGEgKilzdGEtXHUwMDNlZHJ2X3ByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjQyOlx0c3RydWN0IG10Nzk5Nl92aWYgKm12aWYgPSBtc3RhLVx1MDAzZXZpZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2NDM6XHRzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5ID0gbXQ3OTk2X3ZpZl9saW5rX3BoeShcdTAwMjZtdmlmLVx1MDAzZWRlZmxpbmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY0NC1cdHN0cnVjdCBpZWVlODAyMTFfbGlua19zdGEgKmxpbmtfc3RhO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NDYtXHRzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY0NzpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjQ4LVx0dW5zaWduZWQgaW50IGxpbmtfaWQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY1OC1cdGZvcl9lYWNoX3N0YV9hY3RpdmVfbGluayh2aWYsIHN0YSwgbGlua19zdGEsIGxpbmtfaWQpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2NTk6XHRcdHN0cnVjdCBtdDc5OTZfc3RhX2xpbmsgKm1zdGFfbGluaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NjAtXHRcdHN0cnVjdCBtdDc2X3ZpZl9saW5rICptbGluaztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjY2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY2NzpcdFx0bXN0YV9saW5rID0gbXQ3OTk2X3N0YV9saW5rKG1zdGEsIGxpbmtfaWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY2OC1cdFx0aWYgKCFtc3RhX2xpbmspXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTY5ND1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Njk1Om10Nzk5Nl9od19xdWV1ZXNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjk2LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2OTc6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZmlsZS1cdTAwM2Vwcml2YXRlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY5ODpcdHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkgPSBcdTAwMjZkZXYtXHUwMDNlcGh5O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY5OS1cdHN0YXRpYyBjb25zdCBzdHJ1Y3QgaHdfcXVldWVfbWFwIHBsZV9xdWV1ZV9tYXBbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzQ3LVx0c2VxX3B1dHMoZmlsZSwgXCYjMzQ7UExFIG5vbi1lbXB0eSBxdWV1ZSBpbmZvOlxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzQ4Olx0bXQ3OTk2X2h3X3F1ZXVlX3JlYWQoZmlsZSwgQVJSQVlfU0laRShwbGVfcXVldWVfbWFwKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NDktXHRcdFx0ICAgICBcdTAwMjZwbGVfcXVldWVfbWFwWzBdKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzUyLVx0aWVlZTgwMjExX2l0ZXJhdGVfc3RhdGlvbnNfYXRvbWljKHBoeS1cdTAwM2VtdDc2LVx1MDAzZWh3LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc1MzpcdFx0XHRcdFx0ICBtdDc5OTZfc3RhX2h3X3F1ZXVlX3JlYWQsIGZpbGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc1NDpcdHBoeSA9IG10Nzk5Nl9waHkyKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzU1LVx0aWYgKHBoeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NTYtXHRcdGllZWU4MDIxMV9pdGVyYXRlX3N0YXRpb25zX2F0b21pYyhwaHktXHUwMDNlbXQ3Ni1cdTAwM2VodyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NTc6XHRcdFx0XHRcdFx0ICBtdDc5OTZfc3RhX2h3X3F1ZXVlX3JlYWQsIGZpbGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc1ODpcdHBoeSA9IG10Nzk5Nl9waHkzKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzU5LVx0aWYgKHBoeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NjAtXHRcdGllZWU4MDIxMV9pdGVyYXRlX3N0YXRpb25zX2F0b21pYyhwaHktXHUwMDNlbXQ3Ni1cdTAwM2VodyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NjE6XHRcdFx0XHRcdFx0ICBtdDc5OTZfc3RhX2h3X3F1ZXVlX3JlYWQsIGZpbGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc2Mi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzY0LVx0c2VxX3B1dHMoZmlsZSwgXCYjMzQ7UFNFIG5vbi1lbXB0eSBxdWV1ZSBpbmZvOlxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzY1Olx0bXQ3OTk2X2h3X3F1ZXVlX3JlYWQoZmlsZSwgQVJSQVlfU0laRShwc2VfcXVldWVfbWFwKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NjYtXHRcdFx0ICAgICBcdTAwMjZwc2VfcXVldWVfbWFwWzBdKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzcwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc3MTpERUZJTkVfU0hPV19BVFRSSUJVVEUobXQ3OTk2X2h3X3F1ZXVlcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTc3Mz1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Nzc0Om10Nzk5Nl94bWl0X3F1ZXVlc19zaG93KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NzUte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc3NjpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBmaWxlLVx1MDAzZXByaXZhdGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Nzc3Olx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NzgtXHRzdHJ1Y3Qge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03OTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzkxOlx0cGh5ID0gbXQ3OTk2X3BoeTIoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03OTItXHRpZiAocGh5KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03OTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Nzk1Olx0cGh5ID0gbXQ3OTk2X3BoeTMoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03OTYtXHRpZiAocGh5KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04MTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODE0OkRFRklORV9TSE9XX0FUVFJJQlVURShtdDc5OTZfeG1pdF9xdWV1ZXMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTgxNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz04MTY9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjgxNzptdDc5OTZfdHd0X3N0YXRzKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04MTgte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjgxOTpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkZXZfZ2V0X2RydmRhdGEocy1cdTAwM2Vwcml2YXRlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4MjA6XHRzdHJ1Y3QgbXQ3OTk2X3R3dF9mbG93ICppdGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTgyMS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9ODQ1PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NDY6bXQ3OTk2X3JmX3JlZ3ZhbF9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODQ3LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NDg6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NDktXHR1MzIgcmVndmFsO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODUyOlx0cmV0ID0gbXQ3OTk2X21jdV9yZl9yZWd2YWwoZGV2LCBkZXYtXHUwMDNlbXQ3Ni5kZWJ1Z2ZzX3JlZywgXHUwMDI2cmVndmFsLCBmYWxzZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODUzLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9ODYxPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NjI6bXQ3OTk2X3JmX3JlZ3ZhbF9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NjMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg2NDpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg2NS1cdHUzMiB2YWwzMiA9IHZhbDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODY3Olx0cmV0dXJuIG10Nzk5Nl9tY3VfcmZfcmVndmFsKGRldiwgZGV2LVx1MDAzZW10NzYuZGVidWdmc19yZWcsIFx1MDAyNnZhbDMyLCB0cnVlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NjgtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg2OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NzA6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfcmZfcmVndmFsLCBtdDc5OTZfcmZfcmVndmFsX2dldCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NzE6XHRcdFx0IG10Nzk5Nl9yZl9yZWd2YWxfc2V0LCBcJiMzNDsweCUwOGxseFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg3MzppbnQgbXQ3OTk2X2luaXRfZGVidWdmcyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg3NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg3OS1cdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXCYjMzQ7aHctcXVldWVzXCYjMzQ7LCAwNDAwLCBkaXIsIGRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4ODA6XHRcdFx0ICAgIFx1MDAyNm10Nzk5Nl9od19xdWV1ZXNfZm9wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODgxLVx0ZGVidWdmc19jcmVhdGVfZmlsZShcJiMzNDt4bWl0LXF1ZXVlc1wmIzM0OywgMDQwMCwgZGlyLCBkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODgyOlx0XHRcdCAgICBcdTAwMjZtdDc5OTZfeG1pdF9xdWV1ZXNfZm9wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODgzOlx0ZGVidWdmc19jcmVhdGVfZmlsZShcJiMzNDt0eF9zdGF0c1wmIzM0OywgMDQwMCwgZGlyLCBkZXYsIFx1MDAyNm10Nzk5Nl90eF9zdGF0c19mb3BzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04ODQtXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFwmIzM0O3N5c19yZWNvdmVyeVwmIzM0OywgMDYwMCwgZGlyLCBkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODg1Olx0XHRcdCAgICBcdTAwMjZtdDc5OTZfc3lzX3JlY292ZXJ5X29wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODg2LVx0ZGVidWdmc19jcmVhdGVfZmlsZShcJiMzNDtmd19kZWJ1Z193bVwmIzM0OywgMDYwMCwgZGlyLCBkZXYsIFx1MDAyNmZvcHNfZndfZGVidWdfd20pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04OTAtXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFwmIzM0O2Z3X3V0aWxfd2FcJiMzNDssIDA0MDAsIGRpciwgZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg5MTpcdFx0XHQgICAgXHUwMDI2bXQ3OTk2X2Z3X3V0aWxfd2FfZm9wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODkyLVx0ZGVidWdmc19jcmVhdGVfZmlsZShcJiMzNDtpbXBsaWNpdF90eGJmXCYjMzQ7LCAwNjAwLCBkaXIsIGRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODk0LVx0ZGVidWdmc19jcmVhdGVfZGV2bV9zZXFmaWxlKGRldi1cdTAwM2VtdDc2LmRldiwgXCYjMzQ7dHd0X3N0YXRzXCYjMzQ7LCBkaXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODk1Olx0XHRcdFx0ICAgIG10Nzk5Nl90d3Rfc3RhdHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg5Ni1cdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXCYjMzQ7cmZfcmVndmFsXCYjMzQ7LCAwNjAwLCBkaXIsIGRldiwgXHUwMDI2Zm9wc19yZl9yZWd2YWwpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05MDEtXHRkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3NlcWZpbGUoZGV2LVx1MDAzZW10NzYuZGV2LCBcJiMzNDtyZGRfbW9uaXRvclwmIzM0OywgZGlyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjkwMjpcdFx0XHRcdCAgICBtdDc5OTZfcmRkX21vbml0b3IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkwMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9OTA5PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6OTEwOm10Nzk5Nl9kZWJ1Z2ZzX3dyaXRlX2Z3bG9nKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGNvbnN0IHZvaWQgKmhkciwgaW50IGhkcmxlbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05MTEtXHRcdFx0ICAgY29uc3Qgdm9pZCAqZGF0YSwgaW50IGxlbilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTMzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjkzNDp2b2lkIG10Nzk5Nl9kZWJ1Z2ZzX3J4X2Z3X21vbml0b3Ioc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgY29uc3Qgdm9pZCAqZGF0YSwgaW50IGxlbilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05MzUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05NTUtXHRoZHIubGVuID0gKihfX2xlMTYgKilkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjk1NjpcdG10Nzk5Nl9kZWJ1Z2ZzX3dyaXRlX2Z3bG9nKGRldiwgXHUwMDI2aGRyLCBzaXplb2YoaGRyKSwgZGF0YSwgbGVuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05NTctfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTk1OC1cblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIzOjM3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5OTc3CgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogNzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkFuYWx5emluZyB0aGUgbXQ3OTk2IERyaXZlcioqCgpSaWdodCwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYG10Nzk5NmAuIE15IGluaXRpYWwgdGhvdWdodCB3YXMgdGhhdCBpdCB3YXMgYSBNZWRpYVRlayBXaS1GaSBkcml2ZXIg4oCTIGNvbW1vbiBhc3N1bXB0aW9uIGdpdmVuIHRoZSBuYW1pbmcgY29udmVudGlvbi4gQnV0IHRoZW4sIGEgcmVkIGZsYWcgd2VudCB1cC4gTWVtb3J5IGlzIGhhenksIEkgbmVlZCB0byBjaGVjayBzb21ldGhpbmcuIFdhaXQgYSBzZWNvbmQsIGlzbiYjMzk7dCBgbXQ3OTk2YCBhY3R1YWxseSBhIFBDSWUgZHJpdmVyLCByaWdodD8gSSBuZWVkIHRvIHF1aWNrbHkgY29uZmlybSB0aGlzLiBXaGVyZSB3b3VsZCB0aGF0IGluZm9ybWF0aW9uIGJlIGxvY2F0ZWQ/IEFoLCB5ZXMsIGlmIHRoaXMgaXMgYSBQQ0llIGRyaXZlciwgdGhlIG9idmlvdXMgcGxhY2VzIHRvIGludmVzdGlnYXRlIGFyZSBsaWtlbHkgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jYCBvciBwZXJoYXBzIGBpbml0LmNgLiBUaGF0IHNob3VsZCBnaXZlIG1lIHRoZSBkZXRhaWxzIEkgbmVlZCB0byBjb25maXJtIGl0cyByb2xlIGFuZCBkaXZlIGRlZXBlciBpbnRvIHRoZSBjb2RlJiMzOTtzIHNwZWNpZmljcy4gTGV0JiMzOTtzIHNlZSB3aGF0IHRoZXNlIGZpbGVzIHJldmVhbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMzozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwY2lfZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz04Njg9c3RhdGljIGludCBfX2luaXQgbXQ3OTk2X2luaXQodm9pZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODc1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg3NjpcdHJldCA9IHBjaV9yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2bXQ3OTk2X3BjaV9kcml2ZXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg3Ny1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTg4Mz1zdGF0aWMgdm9pZCBfX2V4aXQgbXQ3OTk2X2V4aXQodm9pZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04ODQte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg4NTpcdHBjaV91bnJlZ2lzdGVyX2RyaXZlcihcdTAwMjZtdDc5OTZfcGNpX2RyaXZlcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODg2LVx0cGNpX3VucmVnaXN0ZXJfZHJpdmVyKFx1MDAyNm10Nzk5Nl9oaWZfZHJpdmVyKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaD02Njk9ZXh0ZXJuIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10Nzk5Nl9vcHM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaDo2NzA6ZXh0ZXJuIHN0cnVjdCBwY2lfZHJpdmVyIG10Nzk5Nl9wY2lfZHJpdmVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg6NjcxOmV4dGVybiBzdHJ1Y3QgcGNpX2RyaXZlciBtdDc5OTZfaGlmX2RyaXZlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oLTY3Mi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYz0yMzM9c3RhdGljIHZvaWQgbXQ3OTk2X3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjQzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM6MjQ0OnN0cnVjdCBwY2lfZHJpdmVyIG10Nzk5Nl9oaWZfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjQ1LVx0Lm5hbWVcdFx0PSBLQlVJTERfTU9ETkFNRSBcJiMzNDtfaGlmXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI1MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jOjI1MTpzdHJ1Y3QgcGNpX2RyaXZlciBtdDc5OTZfcGNpX2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI1Mi1cdC5uYW1lXHRcdD0gS0JVSUxEX01PRE5BTUUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjM6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjExMTYKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiA3NjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgdGhlIG10Nzk5NiBEcml2ZXIgZm9yIEZ1enppbmcqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEgUENJIGRyaXZlciwgc3BlY2lmaWNhbGx5IGBtdDc5OTZgLiBUaGUgcXVlc3Rpb24gaXMsIGNhbiBJIGVmZmVjdGl2ZWx5IGZ1enogdGhpcyBkcml2ZXIgdXNpbmcgc3l6a2FsbGVyPyBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBpdCAqbWlnaHQqIGJlIHBvc3NpYmxlLCBzaW5jZSBzeXprYWxsZXIgKmRvZXMqIGhhdmUgUENJIGZ1enppbmcgY2FwYWJpbGl0aWVzLCByaWdodD8gQnV0IHRoZW4gSSByZW1lbWJlciB0aGUgbm90ZSBhYm91dCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgYW5kIHVucmVhY2hhYmxlIGNvZGUgcGF0aHMuIFRoaXMgZHJpdmVyLCBiZWluZyBoYXJkd2FyZS1zcGVjaWZpYywgdGhyb3dzIHVwIGEgcmVkIGZsYWcuIEkga25vdyBzeXprYWxsZXIgdXNlcyBwc2V1ZG8tc3lzY2FsbHMgbGlrZSBgc3l6X3BjaV8uLi5gLCBidXQgdGhlIHByb21wdCBlbXBoYXNpemVzIHRoYXQgc3l6a2FsbGVyIHBzZXVkby1zeXNjYWxscyBhcmUgbm90IHByZXNlbnQgaW4gdGhlIExpbnV4IGtlcm5lbCBhbmQgY2Fubm90IGJlIHNlYXJjaGVkIHVzaW5nIHRoaXMgdG9vbC4KCk15IGltbWVkaWF0ZSBhc3N1bXB0aW9uIGlzIHRoYXQgd2l0aG91dCB0aGUgYWN0dWFsIE1lZGlhVGVrIE1UNzk5NiBQQ0llIGhhcmR3YXJlLCBvciBhIHByZWNpc2UgUUVNVSBlbXVsYXRpb24gb2YgaXQsIGl0JiMzOTtzIGEgZGVhZCBlbmQuIFFFTVUgZG9lcyAqbm90KiBuYXRpdmVseSBlbXVsYXRlIHRoZSBNVDc5OTYsIHdoaWNoIGtpbGxzIHRoYXQgb3B0aW9uLiBXZSBoYXZlIGBzeXpfdXNiX2Nvbm5lY3RgIGZvciBVU0IsIGBtYWM4MDIxMV9od3NpbWAgZm9yIFdpLUZpLCBidXQgYG10Nzk5NmAgaXMgZGlmZmVyZW50LCBpdCYjMzk7cyBhIHNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciwgbm90IGEgc29mdHdhcmUgc2ltdWxhdG9yLgoKV2FpdCwgc3l6a2FsbGVyICpkb2VzKiBoYXZlIHNvbWUgbGV2ZWwgb2YgUENJIGZ1enppbmcsIHJpZ2h0PyBJdCB1c2VzIGBzeXpfcGNpXy4uLmAgcHNldWRvLXN5c2NhbGxzLCBvciBtYXliZSBpdCBpbmplY3RzIFBDSSBkZXZpY2VzIHNvbWVob3c/IEl0IGNhbiYjMzk7dCBiZSB0aGF0IHNpbXBsZS4gQW5kIHRoZW4gSSBoYXZlIHRvIHJlbWVtYmVyIHRoYXQgdGhlIHRvb2wgSSYjMzk7bSB1c2luZyBjYW4mIzM5O3Qgc2VhcmNoIGZvciB0aG9zZSBgc3l6X2AgcHNldWRvLXN5c2NhbGxzIGRpcmVjdGx5LgoKT2theSwgc28gdGhlIGBtdDc5OTZgIGRyaXZlciBoYXMgYW4gYG10Nzk5Nl90aGVybWFsX2luaXRgIGZ1bmN0aW9uLiBDYW4gSSByZWFjaCBpdCBkdXJpbmcgaW5pdGlhbGl6YXRpb24/IFRoZSBrZXkgaGVyZSBpcyBpZiB0aGUgYG10Nzk5NmAgZHJpdmVyIGl0c2VsZiBpcyByZWFjaGFibGUuIEkgY2hlY2ssIGFuZCBpdCYjMzk7cyBjb25maXJtZWQ7IGl0JiMzOTtzIGEgUENJIGRyaXZlci4KClNvLCB0aGUgaXNzdWUgaXMgY2xlYXI6IENhbiBJIHByb2JlIGEgUENJIGRyaXZlciB3aXRob3V0IHRoZSBoYXJkd2FyZT8gU3l6a2FsbGVyIHVzZXMgYHZoY2lgIGZvciBVU0IsIGBuZXRkZXZzaW1gIGZvciBuZXR3b3JraW5nLCBhbmQgYG1hYzgwMjExX2h3c2ltYCBmb3IgV2ktRmkuIEJ1dCBgbWFjODAyMTFfaHdzaW1gIGRvZXNuJiMzOTt0IGhlbHAgaGVyZSwgaXQmIzM5O3MgYSBzb2Z0d2FyZSBzaW11bGF0b3IgdGhhdCAqZG9lc24mIzM5O3QqIHVzZSBgbXQ3OTk2YC4KClNvLCAqZG9lcyogc3l6a2FsbGVyIGhhdmUgc29tZSBnZW5lcmljIFBDSSBkZXZpY2UgZW11bGF0b3IgdmlhIGEgdmlydHVhbCBQQ0kgYnVzLCBvciBtYXliZSB2aWEgYHZmaW9gPyBOb3BlLiBJIHRoZW4gY2hlY2sgYWdhaW4sIGNvbmZpcm1pbmcgdGhhdCBgbXQ3OTk2YCBpcyBpbmRlZWQgYSBNZWRpYVRlayBXaS1GaSA3IGRyaXZlci4KClNvLCBpZiBpdCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIsIGl04oCZcyBnZW5lcmFsbHkgdW5yZWFjaGFibGUgdW5sZXNzIHRoZXJlIGlzIGEgc3BlY2lmaWMgZW11bGF0b3IuIEFuZCBJIGhhdmUgdG8gYXNzdW1lLCBnaXZlbiB0aGUgY29udGV4dCwgdGhhdCBhIHNwZWNpZmljIGVtdWxhdG9yIGRvZXNuJiMzOTt0IGV4aXN0LiBUaGVyZSBtaWdodCBiZSBzb21lIGludGVyZXN0aW5nIGNvZGUgbGlrZSBgZGV2bV90aGVybWFsX29mX3pvbmVfcmVnaXN0ZXJgLCBidXQgaXQmIzM5O3MgbW9vdCBpZiB0aGUgZHJpdmVyIGNhbm5vdCBiZSBwcm9iZWQuIFRoZSBib3R0b20gbGluZSBpcywgdGhpcyBjb2RlIGlzIGxpa2VseSB1bnJlYWNoYWJsZSB3aXRob3V0IHRoZSBoYXJkd2FyZSBvciBhIHN1aXRhYmxlIGVtdWxhdG9yLiBJIG5lZWQgdG8gdmVyaWZ5IGlmIHRoZXJlJiMzOTtzICphbnkqIHdheSB0byBwcm9iZSBgbXQ3OTk2YCB3aXRob3V0IHRoZSBoYXJkd2FyZSBiZWZvcmUgSSB3YXN0ZSB0aW1lIG9uIHRoaXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjM6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTk2X3BjaV9kcml2ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTg2OD1zdGF0aWMgaW50IF9faW5pdCBtdDc5OTZfaW5pdCh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04NzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODc2Olx0cmV0ID0gcGNpX3JlZ2lzdGVyX2RyaXZlcihcdTAwMjZtdDc5OTZfcGNpX2RyaXZlcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODc3LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODgzPXN0YXRpYyB2b2lkIF9fZXhpdCBtdDc5OTZfZXhpdCh2b2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg4NC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODg1Olx0cGNpX3VucmVnaXN0ZXJfZHJpdmVyKFx1MDAyNm10Nzk5Nl9wY2lfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04ODYtXHRwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2bXQ3OTk2X2hpZl9kcml2ZXIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oPTY2OT1leHRlcm4gY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgbXQ3OTk2X29wcztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oOjY3MDpleHRlcm4gc3RydWN0IHBjaV9kcml2ZXIgbXQ3OTk2X3BjaV9kcml2ZXI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaC02NzEtZXh0ZXJuIHN0cnVjdCBwY2lfZHJpdmVyIG10Nzk5Nl9oaWZfZHJpdmVyO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jPTI0ND1zdHJ1Y3QgcGNpX2RyaXZlciBtdDc5OTZfaGlmX2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYzoyNTE6c3RydWN0IHBjaV9kcml2ZXIgbXQ3OTk2X3BjaV9kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNTItXHQubmFtZVx0XHQ9IEtCVUlMRF9NT0ROQU1FLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIzOjM3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzMjU4CgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogNDAyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgUENJIERyaXZlciBGdXp6aW5nIEZlYXNpYmlsaXR5KioKCk9rYXksIHNvIHRoZSBwcm9tcHQgbWVudGlvbnMgYSBQQ0kgZHJpdmVyIGFuZCB0aGUgbGltaXRhdGlvbnMgb2YgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBGaXJzdCB0aG91Z2h0OiBDYW4gU3l6a2FsbGVyIGhhbmRsZSB0aGlzIGRyaXZlcj8gRG9lcyBTeXprYWxsZXIgaGF2ZSBhIGdlbmVyaWMgd2F5IHRvIGZ1enogKmFyYml0cmFyeSogUENJIGRyaXZlcnM/IFVubGVzcywgb2YgY291cnNlLCB0aGVyZSYjMzk7cyBhIHZpcnR1YWwgZGV2aWNlIGFscmVhZHkgaW4gcGxhY2UsIG9yIGEgZGVkaWNhdGVkIFBDSSBmdXp6ZXIuIFdhaXQuLi4gZG9lcyBTeXprYWxsZXIgKmhhdmUqIGEgUENJIGZ1enplcj8KCkFoLCByaWdodCwgYHN5el9wY2lfLi4uYCBwc2V1ZG8tc3lzY2FsbHMhIFllcywgdGhlcmUgaXMgYSBQQ0kgZnV6emVyIHRoYXQgZW11bGF0ZXMgUENJIGRldmljZXMuIEJ1dCwgdGhlIHByb21wdCByYWlzZXMgYSBjcnVjaWFsIHBvaW50IGFib3V0IGNvZGUgcGF0aHMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCBldmVuIHdpdGggZW11bGF0ZWQgaGFyZHdhcmUuIFNvLCBjYW4gU3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6ZXIgZW11bGF0ZSAqYXJiaXRyYXJ5KiBQQ0kgZGV2aWNlcywgb3IgaXMgaXQganVzdCBsaW1pdGVkIHRvIGluamVjdGluZyB0aGVtPwoKT2theSwgbGV0JiMzOTtzIHRoaW5rIHRoaXMgdGhyb3VnaC4gU3l6a2FsbGVyIGhhcyBhIFVTQiBmdXp6ZXIgYmVjYXVzZSBVU0IgaGFzIGEgc29mdHdhcmUtZGVmaW5lZCBpbnRlcmZhY2UgZm9yIGRldmljZSBlbXVsYXRpb24uIFVTQiBnYWRnZXQgaXMgdGhlIGtleS4gQnV0IFBDSSBpcyAqZGlmZmVyZW50Ki4gSXQgbGFja3MgYSBnZW5lcmljIHNvZnR3YXJlLWRlZmluZWQgaW50ZXJmYWNlIGluIHRoZSBMaW51eCBrZXJuZWwgZm9yIGFyYml0cmFyeSBkZXZpY2UgZW11bGF0aW9uLiBUbyBlbXVsYXRlIGEgUENJIGRldmljZSwgeW91IG5lZWQgc29tZXRoaW5nIGxpa2UgYSBRRU1VIGRldmljZSBtb2RlbCwgb3IgcG9zc2libHkgYSBzcGVjaWZpYyBrZXJuZWwgbW9kdWxlPyBgdmZpb2A/IE5vLCB0aGF0JiMzOTtzIGZvciB1c2Vyc3BhY2UgZHJpdmVycywgdGhhdCYjMzk7cyBub3Qgd2hhdCBJJiMzOTttIGxvb2tpbmcgZm9yLgoKQWgsIHRoZXJlIGlzbiYjMzk7dCBhICpnZW5lcmljKiBQQ0kgZGV2aWNlIGVtdWxhdG9yIGluIHRoZSBrZXJuZWwgdGhhdCBsZXRzIHVzZXJzcGFjZSBlbXVsYXRlIGFyYml0cmFyeSBkZXZpY2VzLgoKVGhlcmVmb3JlLCBmb3IgdGhpcyBzcGVjaWZpYyBoYXJkd2FyZSBkZXZpY2UgbGlrZSB0aGUgTWVkaWFUZWsgTVQ3OTk2LCBpdCYjMzk7cyB2aXJ0dWFsbHkgaW1wb3NzaWJsZSB0byBwcm9iZSBhbmQgZnV6eiB0aGlzIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgdW5sZXNzIFFFTVUgKnNwZWNpZmljYWxseSogZW11bGF0ZXMgaXQsIHdoaWNoIGl0IGRvZXNuJiMzOTt0LiBPa2F5LCBJJiMzOTtsbCBkb3VibGUtY2hlY2sgZm9yIGEgcGxhdGZvcm0gZHJpdmVyIG9yIHNvbWV0aGluZyBzaW1pbGFyIHRvIHNlZSBpZiB0aGVyZSYjMzk7cyBhbnkgb3RoZXIgb3B0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMzozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc5OTZfcGNpX3Byb2JlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jPTc5PXN0YXRpYyBpbnQgbXQ3OTk2X3BjaV9oaWYyX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTk4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM6OTk6c3RhdGljIGludCBtdDc5OTZfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMTAwLVx0XHRcdCAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM9MjQ0PXN0cnVjdCBwY2lfZHJpdmVyIG10Nzk5Nl9oaWZfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI0Ni1cdC5pZF90YWJsZVx0PSBtdDc5OTZfaGlmX2RldmljZV90YWJsZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jOjI0NzpcdC5wcm9iZVx0XHQ9IG10Nzk5Nl9wY2lfcHJvYmUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNDgtXHQucmVtb3ZlXHRcdD0gbXQ3OTk2X2hpZl9yZW1vdmUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM9MjUxPXN0cnVjdCBwY2lfZHJpdmVyIG10Nzk5Nl9wY2lfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI1My1cdC5pZF90YWJsZVx0PSBtdDc5OTZfcGNpX2RldmljZV90YWJsZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jOjI1NDpcdC5wcm9iZVx0XHQ9IG10Nzk5Nl9wY2lfcHJvYmUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNTUtXHQucmVtb3ZlXHRcdD0gbXQ3OTk2X3BjaV9yZW1vdmUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIzOjM3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0NjQ5CgkJCQkJCQlvdXRwdXQ6IDQ4CgkJCQkJCQl0aG91Z2h0czogMTk2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlBDSSBGdXp6aW5nIENvbnVuZHJ1bSoqCgpPa2F5LCB3YWl0IGEgbWludXRlLCBkb2VzIHN5emthbGxlciBldmVuICpoYXZlKiBhIFBDSSBmdXp6ZXI/IEkgc2hvdWxkIHByb2JhYmx5IGRvdWJsZS1jaGVjay4gTGV0IG1lIHNlZSBpZiB0aGVyZSYjMzk7cyBhbnl0aGluZyBvYnZpb3VzIGluIHRoZSBrZXJuZWwgc291cmNlLCBsaWtlIGEgYHN5el9wY2lgIGNhbGwuIE9oLCByaWdodCwgdGhlIHByb21wdCB3YXJuZWQgbWUuIEl0IHNwZWNpZmljYWxseSBzYWlkIG5vdCB0byBsb29rIGZvciBhbnl0aGluZyBzdGFydGluZyB3aXRoICYjMzQ7c3l6XyYjMzQ7IGluIHRoZSBrZXJuZWwgaXRzZWxmLiBUaG9zZSBhcmUganVzdCBzeXprYWxsZXImIzM5O3MgaW50ZXJuYWwgcHNldWRvLXN5c2NhbGxzLiBPa2F5LCBzbyBzY3JhdGNoIHRoYXQuCgpJbnN0ZWFkIG9mIGxvb2tpbmcgZm9yIGEgc3l6X3BjaSwgSSBzaG91bGQgbG9vayBmb3IgYSBQQ0kgZW11bGF0aW9uIGZyYW1ld29yaywgKndpdGhpbiogdGhlIGtlcm5lbC4gTGV0IG1lIHNlZS4uLiBBaGEsIEkgc2VlIGBDT05GSUdfUENJX0VORFBPSU5UX1RFU1RgLCBidXQgdGhhdCYjMzk7cyBqdXN0IGZvciBlbmRwb2ludHMsIG5vdCBhIGdlbmVyYWwgZW11bGF0aW9uIGZyYW1ld29yay4gU28sIG5vLCB0aGVyZSBpc24mIzM5O3QgYW55IGdlbmVyaWMgUENJIGVtdWxhdGlvbiBjYXBhYmlsaXR5IGluIHRoZSBrZXJuZWwgdGhhdCB3b3VsZCBsZXQgdXNlcnNwYWNlIGp1c3QgZGVmaW5lIGFuZCBpbnRlcmFjdCB3aXRoIGFuIGFyYml0cmFyeSBQQ0kgZGV2aWNlLgoKSG1tLCB3aGF0IGlmIHRoZSBkcml2ZXIgaXNuJiMzOTt0IHN0cmljdGx5IFBDSSBidXQgY2FuIGFsc28gYmUgYWNjZXNzZWQgdmlhIFNESU8gb3IgVVNCPyBJIG5lZWQgdG8gZmluZCB0aGUgZHJpdmVyIGRpcmVjdG9yeSwgc28gbGV0IG1lIHNlZeKApiBBbHJpZ2h0LCB0aGUgZGlyZWN0b3J5IGlzIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9gLiBOb3cgbGV0JiMzOTtzIGRpZyBpbnRvIHRoZSBgTWFrZWZpbGVgIHRvIHNlZSBob3cgaXQgd29ya3MuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIzOjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210Nzk5NmUteSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlPTM9b2JqLSQoQ09ORklHX01UNzk5NkUpICYjNDM7PSBtdDc5OTZlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTo1Om10Nzk5NmUteSA6PSBwY2kubyBpbml0Lm8gZG1hLm8gZWVwcm9tLm8gbWFpbi5vIG1jdS5vIG1hYy5vIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS02LVx0ICAgICBkZWJ1Z2ZzLm8gbW1pby5vXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIzOjM3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI1MzQ2CgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogMTM3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgVGhpcyBQQ0kgRHJpdmVyJiMzOTtzIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIHRoZSBpc3N1ZSBhdCBoYW5kIGlzIHNvbGVseSB3aXRoaW4gYHBjaS5vYC4gVGhhdCBpbW1lZGlhdGVseSBmbGFncyBpdCBhcyBhIFBDSS1zcGVjaWZpYyBkcml2ZXIuIEdpdmVuIHRoYXQgaXQgdGFyZ2V0cyBhIHBhcnRpY3VsYXIgaGFyZHdhcmUgZGV2aWNlIHRocm91Z2ggdGhlIFBDSSBpbnRlcmZhY2UsIEkga25vdywgYmFzZWQgb24gZXhwZXJpZW5jZSwgdGhhdCB0aGUgbGlrZWxpaG9vZCBvZiB0cmlnZ2VyaW5nIGl0IGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQg4oCTIGxpa2UgYSBHQ0UgaW5zdGFuY2Ugb3IgUUVNVSDigJMgaXMgZWZmZWN0aXZlbHkgemVybywgYmFycmluZyB2ZXJ5IHNwZWNpZmljIGFuZCBzb3BoaXN0aWNhdGVkIGVtdWxhdGlvbi4KCkNvbnNlcXVlbnRseSwgYW55IGNvZGUgcGF0aHMgcmVzaWRpbmcgd2l0aGluIGBtdDc5OTZfdGhlcm1hbF9pbml0YCBhbmQgYG10Nzk5Nl90aGVybWFsX2dldF90ZW1wYCBhcmUsIGluIHRoaXMgY29udGV4dCwgaW5hY2Nlc3NpYmxlLiBUaGV5IGFyZSBpbnRpbWF0ZWx5IHRpZWQgdG8gdGhlIGhhcmR3YXJlIGludGVyYWN0aW9uIHRoYXQgc2ltcGx5IHdvbiYjMzk7dCBiZSBhdmFpbGFibGUgdG8gbWUgZHVyaW5nIG15IGZ1enppbmcgZWZmb3J0cyBpbiB0aGlzIHR5cGUgb2YgZW52aXJvbm1lbnQuCgpUaGVyZWZvcmUsIHRoZSBwcnVkZW50IGFuZCByZXNvdXJjZS1jb25zY2lvdXMgZGVjaXNpb24gaGVyZSBpcyB0byBkZWNsYXJlIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJdCYjMzk7cyBhIHdhc3RlIG9mIHRpbWUgdG8gY2hhc2UgZnVuY3Rpb25hbGl0eSB0aGF0JiMzOTtzIGZ1bmRhbWVudGFsbHkgdW5yZWFjaGFibGUgd2l0aG91dCB0aGUgYXBwcm9wcmlhdGUgcGh5c2ljYWwgaGFyZHdhcmUgb3IgYSB2ZXJ5IHNwZWNpYWxpemVkIGVtdWxhdG9yLgoKSnVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIGxldCBtZSBxdWlja2x5IHNjYW4gdGhlIGJyb2FkZXIgZGV2aWNlIHJlZ2lzdHJhdGlvbiBsYW5kc2NhcGUgd2l0aGluIHRoZSBkcml2ZXIuIEFyZSB0aGVyZSBhbnkgaW5kaWNhdGlvbnMgb2YgcGxhdGZvcm0gZGV2aWNlIHJlZ2lzdHJhdGlvbiBvciBhbHRlcm5hdGUgcGF0aHdheXMgdGhhdCBtaWdodCBhbGxvdyBmb3Igc29tZSBmb3JtIG9mIGNvZGUgZXhlY3V0aW9uIHdpdGhpbiB0aGlzIGRyaXZlcj8gSSBuZWVkIHRvIGJlIHN1cmUgdGhhdCBJIGhhdmVuJiMzOTt0IG1pc3NlZCBhIG1vcmUgaW5kaXJlY3QgbWV0aG9kIG9mIGdldHRpbmcgYXQgaXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIzOjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGxhdGZvcm1fZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjM6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjU4MTYKCQkJCQkJCW91dHB1dDogMTE2CgkJCQkJCQl0aG91Z2h0czogNTA0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoRnV6emluZz1mYWxzZTogTWVkaWFUZWsgV2ktRmkgRHJpdmVyIEFuYWx5c2lzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIE1lZGlhVGVrIFdpLUZpIGRyaXZlciwgdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgaWYgaXQmIzM5O3MgYSBnb29kIHRhcmdldCBmb3IgZnV6emluZy4gSW5pdGlhbGx5LCBJIHdhcyB0aGlua2luZywgJiMzNDtObyBwbGF0Zm9ybSBkcml2ZXIsIHNvIGlzIHRoZXJlIGFub3RoZXIgd2F5IHRvIGdldCBhdCB0aGlzPyYjMzQ7IFRoZSBhbnN3ZXIgaXMgcHJldHR5IGNsZWFyOiBOby4KClRoZW4gSSBoYWQgYSBmbGlja2VyIG9mIGFuIGlkZWEsICYjMzQ7V2FpdCwgTWVkaWFUZWsgZHJpdmVycywgc29tZXRpbWVzIHVzZWQgaW4gU29DcyBhcyBwbGF0Zm9ybSBkZXZpY2VzLCBtYXliZSBpdCBjb3VsZCBiZSB1c2VkIGJ5IFNvQ3MsIGxpa2UgT3BlbldydCByb3V0ZXJzIGFuZCBzdWNoPyYjMzQ7IEkgY2hlY2tlZCB0aGUgY29kZS4gVGhlIE1ha2VmaWxlIG9ubHkgYnVpbGRzIGBwY2kub2AgYW5kIGBtbWlvLm9gLCBzbyBpdCBzZWVtcyBpdCYjMzk7cyBub3QgdGhlIGNhc2UuIFRoZSBgbXQ3OTk2X2luaXRgIGZ1bmN0aW9uIG9ubHkgcmVnaXN0ZXJzIHRoZSBQQ0kgZHJpdmVycy4KClNvIGl0JiMzOTtzIHB1cmVseSBhIFBDSSBkcml2ZXIuIFRoYXQmIzM5O3MgYSBwcm9ibGVtLiBTeXprYWxsZXIgcnVucyBpbiBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgYW5kIHRoZXJlJiMzOTtzIG5vIGdlbmVyaWMgUENJIGRldmljZSBlbXVsYXRvciBidWlsdCBpbnRvIHRoZSBMaW51eCBrZXJuZWwgbGlrZSB3aXRoIFVTQiBnYWRnZXQgb3IgYG1hYzgwMjExX2h3c2ltYC4gVGhpcyBtZWFucyB0aGF0IFBDSSBkcml2ZXJzIGZvciBzcGVjaWZpYyBoYXJkd2FyZSBqdXN0IGNhbiYjMzk7dCBiZSBwcm9iZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gVGhpcyBtZWFucyB0aGUgdGhlcm1hbCB6b25lIHJlZ2lzdHJhdGlvbiBhbmQgdGhlIGBtdDc5OTZfdGhlcm1hbF9nZXRfdGVtcGAgZnVuY3Rpb24gYXJlIHVucmVhY2hhYmxlIHZpYSBmdXp6aW5nLgoKTXkgY29uY2x1c2lvbiBpcyB0aGF0IHRoaXMgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0kgZHJpdmVyIHRoYXQgY2Fubm90IGJlIGVmZmVjdGl2ZWx5IGZ1enplZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBUaGVyZWZvcmUsIEkgbmVlZCB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuCgpMZXQgbWUganVzdCBjb25maXJtIHRoZXJlIGlzbiYjMzk7dCBzb21lIGhpZGRlbiBnZW5lcmljIFBDSSBkZXZpY2UgZW11bGF0b3IgaW4gdGhlIGtlcm5lbCB0aGF0IEkmIzM5O20gZm9yZ2V0dGluZy4uLiBUaGVyZSYjMzk7cyBgUENJX1NUVUJgIGJ1dCB0aGF0JiMzOTtzIGZvciBoaWRpbmcgZGV2aWNlcyBmcm9tIHRoZSBob3N0LCBub3QgZm9yIGVtdWxhdGluZy4gVGhlbiB0aGVyZSYjMzk7cyBgVkZJT19QQ0lgLCBidXQgdGhhdCYjMzk7cyBmb3IgcGFzc2luZyB0aHJvdWdoICpyZWFsKiBkZXZpY2VzLiBOb3RoaW5nIHRoZXJlLiBTbywgcmVhbGx5LCBTeXprYWxsZXImIzM5O3MgUENJIGZ1enppbmcgKnJlbGllcyogb24gUUVNVSYjMzk7cyBQQ0kgZW11bGF0aW9uLCBvciBpdCBkb2VzbiYjMzk7dCBleGlzdC4uLgoKV2FpdCwgZG9lc24mIzM5O3QgU3l6a2FsbGVyIGhhdmUgYSBQQ0kgZnV6emVyPyBIb3cgZG9lcyB0aGF0IHdvcms/IERvZXMgaXQgaW5qZWN0IFBDSSBkZXZpY2VzIHZpYSBhIGN1c3RvbSBRRU1VIGRldmljZSBvciBzb21ldGhpbmc/IE5vLCBpdCBkb2VzbiYjMzk7dC4gU3l6a2FsbGVyIHVzZXMgYHN5el9wY2lfLi4uYCB3aGljaCBtaWdodCBiZSBpbXBsZW1lbnRlZCB2aWEgc29tZSBjdXN0b20ga2VybmVsIG1vZHVsZT8gTm8sIHN5emthbGxlciBkb2VzbiYjMzk7dCB1c2UgY3VzdG9tIGtlcm5lbCBtb2R1bGVzLiBJdCBkb2VzIHVzZSBgdmhjaWAgZm9yIFVTQiwgYnV0IEkgY2FuJiMzOTt0IGZpbmQgYSBgdmhjaWAgZXF1aXZhbGVudCBmb3IgUENJLgoKUmlnaHQsIHRoZW4gaG93PyBEb2VzIFN5emthbGxlciBoYXZlIGEgY3VzdG9tIFFFTVUgZGV2aWNlPyBOby4gVGhlbiwgaG93IGRvIHRoZXkgaW5qZWN0IFBDSSBkZXZpY2VzLCBzeXprYWxsZXIgdXNlcyB0aGUgYHN5el9wY2lgIHBzZXVkby1zeXNjYWxscyB3aGljaCBhcmUgaW1wbGVtZW50ZWQgaW4gdGhlIGV4ZWN1dG9yLCBidXQgaG93IGRvIHRoZXkgaW5qZWN0IFBDSSBkZXZpY2VzPyBUaGV5IGRvbiYjMzk7dC4gVGhleSBqdXN0IGZ1enogdGhlIFBDSSBjb25maWd1cmF0aW9uIHNwYWNlIG9mIGV4aXN0aW5nIGRldmljZXM/IE5vLiBJdCBpbmplY3RzIGEgKm5ldyogUENJIGRldmljZS4gQWN0dWFsbHksIHN5emthbGxlciBkb2VzIG5vdCBoYXZlIGEgZ2VuZXJpYyBQQ0kgZGV2aWNlIGVtdWxhdG9yLgoKR2l2ZW4gYWxsIG9mIHRoYXQsIGl0IGlzIGNsZWFyIHRoYXQgSSB3aWxsIHNldCBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjM6Mzg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVkaWFUZWsgTVQ3OTk2IFdpLUZpIGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0kgZHJpdmVyLiBTaW5jZSB0aGVyZSBpcyBubyBnZW5lcmljIFBDSSBkZXZpY2UgZW11bGF0b3IgaW4gdGhlIExpbnV4IGtlcm5lbCAodW5saWtlIFVTQiBnYWRnZXQgb3IgbWFjODAyMTFfaHdzaW0pLCB0aGlzIGRyaXZlciBjYW5ub3QgYmUgcHJvYmVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFIHdpdGhvdXQgdGhlIGFjdHVhbCBoYXJkd2FyZS4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVkaWFUZWsgTVQ3OTk2IFdpLUZpIGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0kgZHJpdmVyLiBTaW5jZSB0aGVyZSBpcyBubyBnZW5lcmljIFBDSSBkZXZpY2UgZW11bGF0b3IgaW4gdGhlIExpbnV4IGtlcm5lbCAodW5saWtlIFVTQiBnYWRnZXQgb3IgbWFjODAyMTFfaHdzaW0pLCB0aGlzIGRyaXZlciBjYW5ub3QgYmUgcHJvYmVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFIHdpdGhvdXQgdGhlIGFjdHVhbCBoYXJkd2FyZS4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjJUMjM6Mzc6MDQuMDM2MjcxMjM5WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjQ4NjM4OTM3MDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYVRlayBNVDc5OTYgV2ktRmkgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIuIFNpbmNlIHRoZXJlIGlzIG5vIGdlbmVyaWMgUENJIGRldmljZSBlbXVsYXRvciBpbiB0aGUgTGludXgga2VybmVsICh1bmxpa2UgVVNCIGdhZGdldCBvciBtYWM4MDIxMV9od3NpbSksIHRoaXMgZHJpdmVyIGNhbm5vdCBiZSBwcm9iZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0Ugd2l0aG91dCB0aGUgYWN0dWFsIGhhcmR3YXJlLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjM3OjA0LjAzNjI3Nzc5OVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQ3MzU4NTMxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMjFjNDUyNzBlOGFlYTVjNWM4N2NkOGI2ZjZjNDBmODgwY2RiMzFmZlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgV2VkIEp1bCAyMiAyMzozNzowMiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmNcXG5pbmRleCBkNmY5YWExYWI1MmQxMi4uMTE1MTQ1Zjk5M2QwMTYgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jXFxuQEAgLTIzNiw2ICsyMzYsMjMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0aGVybWFsX2Nvb2xpbmdfZGV2aWNlX29wcyBtdDc5OTZfdGhlcm1hbF9vcHMgPSB7XFxuIFxcdC5zZXRfY3VyX3N0YXRlID0gbXQ3OTk2X3RoZXJtYWxfc2V0X2N1cl90aHJvdHRsZV9zdGF0ZSxcXG4gfTtcXG4gXFxuK3N0YXRpYyBpbnQgbXQ3OTk2X3RoZXJtYWxfZ2V0X3RlbXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgKnRlbXApXFxuK3tcXG4rXFx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeSA9IHRoZXJtYWxfem9uZV9kZXZpY2VfcHJpdih0eik7XFxuK1xcdGludCB2YWw7XFxuK1xcbitcXHR2YWwgPSBtdDc5OTZfbWN1X2dldF90ZW1wZXJhdHVyZShwaHkpO1xcbitcXHRpZiAodmFsIFxcdTAwM2MgMClcXG4rXFx0XFx0cmV0dXJuIHZhbDtcXG4rXFxuK1xcdCp0ZW1wID0gdmFsICogMTAwMDtcXG4rXFx0cmV0dXJuIDA7XFxuK31cXG4rXFxuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZV9vcHMgbXQ3OTk2X3R6X29wcyA9IHtcXG4rXFx0LmdldF90ZW1wID0gbXQ3OTk2X3RoZXJtYWxfZ2V0X3RlbXAsXFxuK307XFxuK1xcbiBzdGF0aWMgdm9pZCBtdDc5OTZfdW5yZWdpc3Rlcl90aGVybWFsKHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkpXFxuIHtcXG4gXFx0c3RydWN0IHdpcGh5ICp3aXBoeSA9IHBoeS1cXHUwMDNlbXQ3Ni1cXHUwMDNlaHctXFx1MDAzZXdpcGh5O1xcbkBAIC0yNzcsNiArMjk0LDE3IEBAIHN0YXRpYyBpbnQgbXQ3OTk2X3RoZXJtYWxfaW5pdChzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxcbiBcXHRwaHktXFx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTk2X0NSSVRfVEVNUF9JRFhdID0gTVQ3OTk2X0NSSVRfVEVNUDtcXG4gXFx0cGh5LVxcdTAwM2V0aHJvdHRsZV90ZW1wW01UNzk5Nl9NQVhfVEVNUF9JRFhdID0gTVQ3OTk2X01BWF9URU1QO1xcbiBcXG4rXFx0cGh5LVxcdTAwM2V0em9uZSA9IGRldm1fdGhlcm1hbF9vZl96b25lX3JlZ2lzdGVyKHBoeS1cXHUwMDNlZGV2LVxcdTAwM2VtdDc2LmRldixcXG4rXFx0XFx0XFx0XFx0XFx0XFx0ICAgcGh5LVxcdTAwM2VtdDc2LVxcdTAwM2ViYW5kX2lkeCwgcGh5LFxcbitcXHRcXHRcXHRcXHRcXHRcXHQgICBcXHUwMDI2bXQ3OTk2X3R6X29wcyk7XFxuK1xcdGlmIChJU19FUlIocGh5LVxcdTAwM2V0em9uZSkpIHtcXG4rXFx0XFx0aWYgKFBUUl9FUlIocGh5LVxcdTAwM2V0em9uZSkgIT0gLUVOT0RFVilcXG4rXFx0XFx0XFx0ZGV2X3dhcm4ocGh5LVxcdTAwM2VkZXYtXFx1MDAzZW10NzYuZGV2LFxcbitcXHRcXHRcXHRcXHQgXFxcImZhaWxlZCB0byByZWdpc3RlciB0aGVybWFsIHpvbmUlZDogJWxkXFxcXG5cXFwiLFxcbitcXHRcXHRcXHRcXHQgcGh5LVxcdTAwM2VtdDc2LVxcdTAwM2ViYW5kX2lkeCwgUFRSX0VSUihwaHktXFx1MDAzZXR6b25lKSk7XFxuK1xcdFxcdHBoeS1cXHUwMDNldHpvbmUgPSBOVUxMO1xcbitcXHR9XFxuK1xcbiBcXHRpZiAoIUlTX1JFQUNIQUJMRShDT05GSUdfSFdNT04pKVxcbiBcXHRcXHRyZXR1cm4gMDtcXG4gXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmhcXG5pbmRleCAwZDY0ODg1MjJiYTcxMS4uMTIwN2I1YzdlOThiOWQgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmhcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaFxcbkBAIC0zNzIsNiArMzcyLDcgQEAgc3RydWN0IG10Nzk5Nl9waHkge1xcbiBcXG4gXFx0c3RydWN0IGllZWU4MDIxMV9zYmFuZF9pZnR5cGVfZGF0YSBpZnR5cGVbTlVNX05MODAyMTFfQkFORFNdW05VTV9OTDgwMjExX0lGVFlQRVNdO1xcbiBcXG4rXFx0c3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6b25lO1xcbiBcXHRzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZSAqY2RldjtcXG4gXFx0dTggY2Rldl9zdGF0ZTtcXG4gXFx0dTggdGhyb3R0bGVfc3RhdGU7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjM3OjA0LjU4NDU5NTA3WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NjQzMTU1NDkzODgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYVRlayBNVDc5OTYgV2ktRmkgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIuIFNpbmNlIHRoZXJlIGlzIG5vIGdlbmVyaWMgUENJIGRldmljZSBlbXVsYXRvciBpbiB0aGUgTGludXgga2VybmVsICh1bmxpa2UgVVNCIGdhZGdldCBvciBtYWM4MDIxMV9od3NpbSksIHRoaXMgZHJpdmVyIGNhbm5vdCBiZSBwcm9iZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0Ugd2l0aG91dCB0aGUgYWN0dWFsIGhhcmR3YXJlLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMjFjNDUyNzBlOGFlYTVjNWM4N2NkOGI2ZjZjNDBmODgwY2RiMzFmZlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDIyIDIzOjM3OjAyIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jXG5pbmRleCBkNmY5YWExYWI1MmQxMi4uMTE1MTQ1Zjk5M2QwMTYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuY1xuQEAgLTIzNiw2ICsyMzYsMjMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0aGVybWFsX2Nvb2xpbmdfZGV2aWNlX29wcyBtdDc5OTZfdGhlcm1hbF9vcHMgPSB7XG4gXHQuc2V0X2N1cl9zdGF0ZSA9IG10Nzk5Nl90aGVybWFsX3NldF9jdXJfdGhyb3R0bGVfc3RhdGUsXG4gfTtcbiBcbitzdGF0aWMgaW50IG10Nzk5Nl90aGVybWFsX2dldF90ZW1wKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0eiwgaW50ICp0ZW1wKVxuK3tcbitcdHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkgPSB0aGVybWFsX3pvbmVfZGV2aWNlX3ByaXYodHopO1xuK1x0aW50IHZhbDtcbitcbitcdHZhbCA9IG10Nzk5Nl9tY3VfZ2V0X3RlbXBlcmF0dXJlKHBoeSk7XG4rXHRpZiAodmFsIFx1MDAzYyAwKVxuK1x0XHRyZXR1cm4gdmFsO1xuK1xuK1x0KnRlbXAgPSB2YWwgKiAxMDAwO1xuK1x0cmV0dXJuIDA7XG4rfVxuK1xuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZV9vcHMgbXQ3OTk2X3R6X29wcyA9IHtcbitcdC5nZXRfdGVtcCA9IG10Nzk5Nl90aGVybWFsX2dldF90ZW1wLFxuK307XG4rXG4gc3RhdGljIHZvaWQgbXQ3OTk2X3VucmVnaXN0ZXJfdGhlcm1hbChzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxuIHtcbiBcdHN0cnVjdCB3aXBoeSAqd2lwaHkgPSBwaHktXHUwMDNlbXQ3Ni1cdTAwM2Vody1cdTAwM2V3aXBoeTtcbkBAIC0yNzcsNiArMjk0LDE3IEBAIHN0YXRpYyBpbnQgbXQ3OTk2X3RoZXJtYWxfaW5pdChzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxuIFx0cGh5LVx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTk2X0NSSVRfVEVNUF9JRFhdID0gTVQ3OTk2X0NSSVRfVEVNUDtcbiBcdHBoeS1cdTAwM2V0aHJvdHRsZV90ZW1wW01UNzk5Nl9NQVhfVEVNUF9JRFhdID0gTVQ3OTk2X01BWF9URU1QO1xuIFxuK1x0cGh5LVx1MDAzZXR6b25lID0gZGV2bV90aGVybWFsX29mX3pvbmVfcmVnaXN0ZXIocGh5LVx1MDAzZWRldi1cdTAwM2VtdDc2LmRldixcbitcdFx0XHRcdFx0XHQgICBwaHktXHUwMDNlbXQ3Ni1cdTAwM2ViYW5kX2lkeCwgcGh5LFxuK1x0XHRcdFx0XHRcdCAgIFx1MDAyNm10Nzk5Nl90el9vcHMpO1xuK1x0aWYgKElTX0VSUihwaHktXHUwMDNldHpvbmUpKSB7XG4rXHRcdGlmIChQVFJfRVJSKHBoeS1cdTAwM2V0em9uZSkgIT0gLUVOT0RFVilcbitcdFx0XHRkZXZfd2FybihwaHktXHUwMDNlZGV2LVx1MDAzZW10NzYuZGV2LFxuK1x0XHRcdFx0IFwiZmFpbGVkIHRvIHJlZ2lzdGVyIHRoZXJtYWwgem9uZSVkOiAlbGRcXG5cIixcbitcdFx0XHRcdCBwaHktXHUwMDNlbXQ3Ni1cdTAwM2ViYW5kX2lkeCwgUFRSX0VSUihwaHktXHUwMDNldHpvbmUpKTtcbitcdFx0cGh5LVx1MDAzZXR6b25lID0gTlVMTDtcbitcdH1cbitcbiBcdGlmICghSVNfUkVBQ0hBQkxFKENPTkZJR19IV01PTikpXG4gXHRcdHJldHVybiAwO1xuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmhcbmluZGV4IDBkNjQ4ODUyMmJhNzExLi4xMjA3YjVjN2U5OGI5ZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaFxuQEAgLTM3Miw2ICszNzIsNyBAQCBzdHJ1Y3QgbXQ3OTk2X3BoeSB7XG4gXG4gXHRzdHJ1Y3QgaWVlZTgwMjExX3NiYW5kX2lmdHlwZV9kYXRhIGlmdHlwZVtOVU1fTkw4MDIxMV9CQU5EU11bTlVNX05MODAyMTFfSUZUWVBFU107XG4gXG4rXHRzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHpvbmU7XG4gXHRzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZSAqY2RldjtcbiBcdHU4IGNkZXZfc3RhdGU7XG4gXHR1OCB0aHJvdHRsZV9zdGF0ZTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjM3OjA0LjU4NDU5Njk4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTM3MDk1NTM3MjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBgbXQ3OTk2YCBUaGVybWFsIFpvbmUgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFkZGluZyB0aGVybWFsIHpvbmUgc3VwcG9ydCB0byB0aGUgYG10Nzk5NmAgd2lyZWxlc3MgZHJpdmVyLiBJdCdzIHJlZ2lzdGVyaW5nIHRoZSB0aGVybWFsIHpvbmUgZGV2aWNlIHVzaW5nIGBkZXZtX3RoZXJtYWxfb2Zfem9uZV9yZWdpc3RlcmAsIHdoaWNoIHNlZW1zIHN0YW5kYXJkIGVub3VnaC4gQnV0IEknbSBzdGFydGluZyB0byB0aGluayBhYm91dCByZWFjaGFiaWxpdHksIGFuZCB3aGV0aGVyIHRoaXMgaXMgZXZlbiByZWFsaXN0aWNhbGx5IHRlc3RhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gVGhpcyBpcyBhIGRyaXZlciBmb3IgYSAqcGh5c2ljYWwqIFdpLUZpIGRldmljZSwgdGhlIGBtdDc5OTZgLiAgVXN1YWxseSwgdW5sZXNzIHRoZXJlJ3MgYSBzcGVjaWZpYyBzb2Z0d2FyZSBlbXVsYXRpb24gbGF5ZXIgaW4gcGxhY2XigJRsaWtlIGBtYWM4MDIxMV9od3NpbWDigJRhIFBDSSBvciBVU0IgV2ktRmkgZHJpdmVyIGlzIHByZXR0eSBtdWNoIGluYWNjZXNzaWJsZSBpbiBhIHR5cGljYWwgVk0gc2V0dXAuXG5cbk5vdywgaWYgSSB0aGluayBhYm91dCBpdCBtb3JlIGNhcmVmdWxseSwgYW5kIEkgYmVsaWV2ZSB0aGlzIGlzIGEgUENJZSBkcml2ZXIsIHNvIHRoZSByZWFjaGFiaWxpdHkgcXVlc3Rpb24gYmVjb21lcyBtb3JlIGludGVyZXN0aW5nLiBJdCAqY291bGQqIGJlIGZ1enplZCwgZ2l2ZW4gUENJZeKAmXMgY2hhcmFjdGVyaXN0aWNzLiBJIG5lZWQgdG8gY29uZmlybSB3aGV0aGVyIGBtdDc5OTZgIGlzLCBpbiBmYWN0LCBQQ0llIG9yIFVTQi4gSSdsbCB1c2UgYGdyZXBwZXJgIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIHdoYXQgYnVzIHR5cGUgdGhpcyBkcml2ZXIgaXMgYXNzb2NpYXRlZCB3aXRoLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjkxLCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTczLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMjM6Mzc6MTguMjk0MTUzNTlaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODU3MTc2NzQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3OTk2XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDY1MzUgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfTVQ3OTk2RSkgKz0gbXQ3OTk2ZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGUtNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTo1Om10Nzk5NmUteSA6PSBwY2kubyBpbml0Lm8gZG1hLm8gZWVwcm9tLm8gbWFpbi5vIG1jdS5vIG1hYy5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS02LVxcdCAgICAgZGVidWdmcy5vIG1taW8ub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU6ODptdDc5OTZlLSQoQ09ORklHX01UNzk5Nl9OUFUpICs9IG5wdS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU6OTptdDc5OTZlLSQoQ09ORklHX0RFVl9DT1JFRFVNUCkgKz0gY29yZWR1bXAub1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYz0xMj1NT0RVTEVfUEFSTV9ERVNDKGNvcmVkdW1wX21lbWR1bXAsIFxcXCJPcHRpb25hbCBhYmlsaXR5IHRvIGR1bXAgZmlybXdhcmUgbWVtb3J5XFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE0OnN0YXRpYyBjb25zdCBzdHJ1Y3QgbXQ3OTk2X21lbV9yZWdpb24gbXQ3OTk2X21lbV9yZWdpb25zW10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xNS1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTQ2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NDc6Y29uc3Qgc3RydWN0IG10Nzk5Nl9tZW1fcmVnaW9uKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NDg6bXQ3OTk2X2NvcmVkdW1wX2dldF9tZW1fbGF5b3V0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHUzMiAqbnVtKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNDkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy01Mi1cXHRjYXNlIE1UNzk5Nl9ERVZJQ0VfSURfMjpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjUzOlxcdFxcdCpudW0gPSBBUlJBWV9TSVpFKG10Nzk5Nl9tZW1fcmVnaW9ucyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo1NDpcXHRcXHRyZXR1cm4gXFx1MDAyNm10Nzk5Nl9tZW1fcmVnaW9uc1swXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTU1LVxcdGRlZmF1bHQ6XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTU5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NjA6c3RhdGljIGludCBtdDc5OTZfY29yZWR1bXBfZ2V0X21lbV9zaXplKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy02MS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo2MjpcXHRjb25zdCBzdHJ1Y3QgbXQ3OTk2X21lbV9yZWdpb24gKm1lbV9yZWdpb247XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy02My1cXHRzaXplX3Qgc2l6ZSA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6Njc6XFx0bWVtX3JlZ2lvbiA9IG10Nzk5Nl9jb3JlZHVtcF9nZXRfbWVtX2xheW91dChkZXYsIFxcdTAwMjZudW0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNjgtXFx0aWYgKCFtZW1fcmVnaW9uKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy03Ni1cXHQvKiByZXNlcnZlIHNwYWNlIGZvciB0aGUgaGVhZGVycyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6Nzc6XFx0c2l6ZSArPSBudW0gKiBzaXplb2Yoc3RydWN0IG10Nzk5Nl9tZW1faGRyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTc4LVxcdC8qIG1ha2Ugc3VyZSBpdCBpcyBhbGlnbmVkIDQgYnl0ZXMgZm9yIGRlYnVnIG1lc3NhZ2UgcHJpbnQgb3V0ICovXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTgzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6ODQ6c3RydWN0IG10Nzk5Nl9jcmFzaF9kYXRhICptdDc5OTZfY29yZWR1bXBfbmV3KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy04NS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo4NjpcXHRzdHJ1Y3QgbXQ3OTk2X2NyYXNoX2RhdGEgKmNyYXNoX2RhdGEgPSBkZXYtXFx1MDAzZWNvcmVkdW1wLmNyYXNoX2RhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy04Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM9MTAwPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxMDE6bXQ3OTk2X2NvcmVkdW1wX2Z3X3N0YXRlKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHN0cnVjdCBtdDc5OTZfY29yZWR1bXAgKmR1bXAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xMDItXFx0XFx0XFx0IGJvb2wgKmV4Y2VwdGlvbilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM9MTE3PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxMTg6bXQ3OTk2X2NvcmVkdW1wX2Z3X3N0YWNrKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHN0cnVjdCBtdDc5OTZfY29yZWR1bXAgKmR1bXAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xMTktXFx0XFx0XFx0IGJvb2wgZXhjZXB0aW9uKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xNjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxNjI6c3RhdGljIHN0cnVjdCBtdDc5OTZfY29yZWR1bXAgKm10Nzk5Nl9jb3JlZHVtcF9idWlsZChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTYzLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE2NDpcXHRzdHJ1Y3QgbXQ3OTk2X2NyYXNoX2RhdGEgKmNyYXNoX2RhdGEgPSBkZXYtXFx1MDAzZWNvcmVkdW1wLmNyYXNoX2RhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxNjU6XFx0c3RydWN0IG10Nzk5Nl9jb3JlZHVtcCAqZHVtcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE2NjpcXHRzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wX21lbSAqZHVtcF9tZW07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xNjctXFx0c2l6ZV90IGxlbiwgc29mYXIgPSAwLCBoZHJfbGVuID0gc2l6ZW9mKCpkdW1wKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTg2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MTg3OlxcdGR1bXAgPSAoc3RydWN0IG10Nzk5Nl9jb3JlZHVtcCAqKShidWYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTg4LVxcdGR1bXAtXFx1MDAzZWxlbiA9IGxlbjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjAwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjAxOlxcdG10Nzk5Nl9jb3JlZHVtcF9md19zdGF0ZShkZXYsIGR1bXAsIFxcdTAwMjZleGNlcHRpb24pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjAyOlxcdG10Nzk5Nl9jb3JlZHVtcF9md19zdGFjayhkZXYsIGR1bXAsIGV4Y2VwdGlvbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMDQtXFx0LyogZ2F0aGVyIG1lbW9yeSBjb250ZW50ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyMDU6XFx0ZHVtcF9tZW0gPSAoc3RydWN0IG10Nzk5Nl9jb3JlZHVtcF9tZW0gKikoYnVmICsgc29mYXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjA2LVxcdGR1bXBfbWVtLVxcdTAwM2VsZW4gPSBjcmFzaF9kYXRhLVxcdTAwM2VtZW1kdW1wX2J1Zl9sZW47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIxNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIxNjppbnQgbXQ3OTk2X2NvcmVkdW1wX3N1Ym1pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjE3LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIxODpcXHRzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wICpkdW1wO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjE5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjIwOlxcdGR1bXAgPSBtdDc5OTZfY29yZWR1bXBfYnVpbGQoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIyMS1cXHRpZiAoIWR1bXApIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjMwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjMxOmludCBtdDc5OTZfY29yZWR1bXBfcmVnaXN0ZXIoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIzMi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyMzM6XFx0c3RydWN0IG10Nzk5Nl9jcmFzaF9kYXRhICpjcmFzaF9kYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjM0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yNDEtXFx0aWYgKGNvcmVkdW1wX21lbWR1bXApIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjI0MjpcXHRcXHRjcmFzaF9kYXRhLVxcdTAwM2VtZW1kdW1wX2J1Zl9sZW4gPSBtdDc5OTZfY29yZWR1bXBfZ2V0X21lbV9zaXplKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yNDMtXFx0XFx0aWYgKCFjcmFzaF9kYXRhLVxcdTAwM2VtZW1kdW1wX2J1Zl9sZW4pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTI1Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjI1Nzp2b2lkIG10Nzk5Nl9jb3JlZHVtcF91bnJlZ2lzdGVyKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yNTgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC02LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NzojaW5jbHVkZSBcXFwibXQ3OTk2LmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC04LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6OTpzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTEwLVxcdGNoYXIgbWFnaWNbMTZdO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC0zOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjQwOnN0cnVjdCBtdDc5OTZfY29yZWR1bXBfbWVtIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTQxLVxcdHUzMiBsZW47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NDU6c3RydWN0IG10Nzk5Nl9tZW1faGRyIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTQ2LVxcdHUzMiBzdGFydDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo1MTpzdHJ1Y3QgbXQ3OTk2X21lbV9yZWdpb24ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNTItXFx0dTMyIHN0YXJ0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC01OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjYwOmNvbnN0IHN0cnVjdCBtdDc5OTZfbWVtX3JlZ2lvbiAqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo2MTptdDc5OTZfY29yZWR1bXBfZ2V0X21lbV9sYXlvdXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgdTMyICpudW0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NjI6c3RydWN0IG10Nzk5Nl9jcmFzaF9kYXRhICptdDc5OTZfY29yZWR1bXBfbmV3KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NjM6aW50IG10Nzk5Nl9jb3JlZHVtcF9zdWJtaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo2NDppbnQgbXQ3OTk2X2NvcmVkdW1wX3JlZ2lzdGVyKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NjU6dm9pZCBtdDc5OTZfY29yZWR1bXBfdW5yZWdpc3RlcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTY2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC02OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjY5OnN0YXRpYyBpbmxpbmUgY29uc3Qgc3RydWN0IG10Nzk5Nl9tZW1fcmVnaW9uICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjcwOm10Nzk5Nl9jb3JlZHVtcF9nZXRfbWVtX2xheW91dChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCB1MzIgKm51bSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTcxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo3NTpzdGF0aWMgaW5saW5lIGludCBtdDc5OTZfY29yZWR1bXBfc3VibWl0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC03Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oPTgwPXN0YXRpYyBpbmxpbmUgc3RydWN0XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo4MTptdDc5OTZfY3Jhc2hfZGF0YSAqbXQ3OTk2X2NvcmVkdW1wX25ldyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtODIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC04NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjg2OnN0YXRpYyBpbmxpbmUgaW50IG10Nzk5Nl9jb3JlZHVtcF9yZWdpc3RlcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtODcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC05MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjkxOnN0YXRpYyBpbmxpbmUgdm9pZCBtdDc5OTZfY29yZWR1bXBfdW5yZWdpc3RlcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtOTIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTYtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3JlbGF5LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc6I2luY2x1ZGUgXFxcIm10Nzk5Ni5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04LSNpbmNsdWRlIFxcXCJlZXByb20uaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0yMz1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI0Om10Nzk5Nl9pbXBsaWNpdF90eGJmX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI2OlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzM6XFx0cmV0dXJuIG10Nzk5Nl9tY3Vfc2V0X3R4YmYoZGV2LCBCRl9IV19FTl9VUERBVEUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MzY9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNzptdDc5OTZfaW1wbGljaXRfdHhiZl9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Mzk6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NjpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19pbXBsaWNpdF90eGJmLCBtdDc5OTZfaW1wbGljaXRfdHhiZl9nZXQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ3OlxcdFxcdFxcdCBtdDc5OTZfaW1wbGljaXRfdHhiZl9zZXQsIFxcXCIlbGxkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NTA9c3RhdGljIHNzaXplX3RcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTE6bXQ3OTk2X3N5c19yZWNvdmVyeV9zZXQoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgX191c2VyICp1c2VyX2J1ZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTItXFx0XFx0XFx0c2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTUzLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTQ6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGZpbGUtXFx1MDAzZXByaXZhdGVfZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTUtXFx0Y2hhciBidWZbMTZdLCAqc2VwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkxLVxcdGNhc2UgVU5JX0NNRF9TRVJfUVVFUlk6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjkyOlxcdFxcdHJldCA9IG10Nzk5Nl9tY3Vfc2V0X3NlcihkZXYsIFVOSV9DTURfU0VSX1FVRVJZLCAwLCBiYW5kKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTMtXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTAwLVxcdGNhc2UgVU5JX0NNRF9TRVJfU0VUX1JFQ09WRVJfTDRfTURQOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoxMDE6XFx0XFx0cmV0ID0gbXQ3OTk2X21jdV9zZXRfc2VyKGRldiwgVU5JX0NNRF9TRVJfU0VULCBCSVQodmFsKSwgYmFuZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEwMi1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEwNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTA1OlxcdFxcdHJldCA9IG10Nzk5Nl9tY3Vfc2V0X3NlcihkZXYsIFVOSV9DTURfU0VSX1RSSUdHRVIsIHZhbCwgYmFuZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEwNi1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMTEtXFx0XFx0ZGV2LVxcdTAwM2VyZWNvdmVyeS5zdGF0ZSB8PSBNVF9NQ1VfQ01EX1dEVF9NQVNLO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoxMTI6XFx0XFx0bXQ3OTk2X3Jlc2V0KGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTExMy1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMTYtXFx0Y2FzZSBVTklfQ01EX1NFUl9TRVRfU1lTVEVNX0FTU0VSVDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTE3OlxcdFxcdHJldCA9IG10Nzk5Nl9tY3VfdHJpZ2dlcl9hc3NlcnQoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTE4LVxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MTI4PXN0YXRpYyBzc2l6ZV90XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjEyOTptdDc5OTZfc3lzX3JlY292ZXJ5X2dldChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKnVzZXJfYnVmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMzAtXFx0XFx0XFx0c2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEzMS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjEzMjpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZmlsZS1cXHUwMDNlcHJpdmF0ZV9kYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMzMtXFx0Y2hhciAqYnVmZjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yMTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjIxNTpzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBtdDc5OTZfc3lzX3JlY292ZXJ5X29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjE2OlxcdC53cml0ZSA9IG10Nzk5Nl9zeXNfcmVjb3Zlcnlfc2V0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyMTc6XFx0LnJlYWQgPSBtdDc5OTZfc3lzX3JlY292ZXJ5X2dldCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjE4LVxcdC5vcGVuID0gc2ltcGxlX29wZW4sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MjIyPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjIzOm10Nzk5Nl9yYWRhcl90cmlnZ2VyKHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTIyNC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjI2LSNkZWZpbmUgUkFEQVJfQkFDS0dST1VORFxcdDJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjI3OlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyMjg6XFx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeSA9IG10Nzk5Nl9iYW5kX3BoeShkZXYsIE5MODAyMTFfQkFORF81R0haKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjI5LVxcdHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiAqY2hhbmRlZjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI0ODpcXHRyZGRfaWR4ID0gbXQ3OTk2X2dldF9yZGRfaWR4KHBoeSwgdmFsID09IFJBREFSX0JBQ0tHUk9VTkQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNDktXFx0aWYgKHJkZF9pZHggXFx1MDAzYyAwKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjU4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyNTk6XFx0cmV0dXJuIG10Nzk5Nl9tY3VfcmRkX2NtZChkZXYsIFJERF9SQURBUl9FTVVMQVRFLCByZGRfaWR4LCAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjYwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0yNjI9REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfcmFkYXJfdHJpZ2dlciwgTlVMTCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjYzOlxcdFxcdFxcdCBtdDc5OTZfcmFkYXJfdHJpZ2dlciwgXFxcIiVsbGRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTI2NT1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI2NjptdDc5OTZfcmRkX21vbml0b3Ioc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yNjcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyNjg6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRldl9nZXRfZHJ2ZGF0YShzLVxcdTAwM2Vwcml2YXRlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjY5LVxcdHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiAqY2hhbmRlZiA9IFxcdTAwMjZkZXYtXFx1MDAzZXJkZDJfY2hhbmRlZjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0zMTI9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozMTM6bXQ3OTk2X2Z3X2RlYnVnX3dtX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zMTQte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozMTU6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTMxNi1cXHRlbnVtIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zMzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjMzODpcXHRyZXQgPSBtdDc5OTZfbWN1X2Z3X2xvZ18yX2hvc3QoZGV2LCBNQ1VfRldfTE9HX1dNLCB2YWwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zMzktXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM1MTpcXHRcXHRyZXQgPSBtdDc5OTZfbWN1X2Z3X2RiZ19jdHJsKGRldiwgZGVidWcsIHZhbCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM1Mi1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTM1OT1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM2MDptdDc5OTZfZndfZGVidWdfd21fZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNjEte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNjI6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM2My1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM2OTpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19md19kZWJ1Z193bSwgbXQ3OTk2X2Z3X2RlYnVnX3dtX2dldCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzcwOlxcdFxcdFxcdCBtdDc5OTZfZndfZGVidWdfd21fc2V0LCBcXFwiJWxsZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM3MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MzcyPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzczOm10Nzk5Nl9md19kZWJ1Z193YV9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzc0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Mzc1OlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNzYtXFx0aW50IHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM4MDpcXHRyZXQgPSBtdDc5OTZfbWN1X2Z3X2xvZ18yX2hvc3QoZGV2LCBNQ1VfRldfTE9HX1dBLCBkZXYtXFx1MDAzZWZ3X2RlYnVnX3dhKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzgxLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzgzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozODQ6XFx0cmV0dXJuIG10Nzk5Nl9tY3Vfd2FfY21kKGRldiwgTUNVX1dBX1BBUkFNX0NNRChTRVQpLCBNQ1VfV0FfUEFSQU1fUERNQV9SWCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzg1LVxcdFxcdFxcdFxcdCAhIWRldi1cXHUwMDNlZndfZGVidWdfd2EsIDApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTM4OD1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM4OTptdDc5OTZfZndfZGVidWdfd2FfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zOTAte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozOTE6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM5Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zOTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM5ODpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19md19kZWJ1Z193YSwgbXQ3OTk2X2Z3X2RlYnVnX3dhX2dldCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Mzk5OlxcdFxcdFxcdCBtdDc5OTZfZndfZGVidWdfd2Ffc2V0LCBcXFwiJWxsZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQwMC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz00MjU9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0MjY6bXQ3OTk2X2Z3X2RlYnVnX2Jpbl9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDI3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00MzEtXFx0fTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDMyOlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00MzMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDQzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NDQ6XFx0cmV0dXJuIG10Nzk5Nl9md19kZWJ1Z193bV9zZXQoZGV2LCBkZXYtXFx1MDAzZWZ3X2RlYnVnX3dtKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDQ1LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz00NDc9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NDg6bXQ3OTk2X2Z3X2RlYnVnX2Jpbl9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ0OS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ1MDpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDUxLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ1Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDU3OkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX2Z3X2RlYnVnX2JpbiwgbXQ3OTk2X2Z3X2RlYnVnX2Jpbl9nZXQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ1ODpcXHRcXHRcXHQgbXQ3OTk2X2Z3X2RlYnVnX2Jpbl9zZXQsIFxcXCIlbGxkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDU5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz00NjA9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NjE6bXQ3OTk2X2Z3X3V0aWxfd2Ffc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIHZvaWQgKmRhdGEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ2Mi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ2MzpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZmlsZS1cXHUwMDNlcHJpdmF0ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDY0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NjUtXFx0aWYgKGRldi1cXHUwMDNlZndfZGVidWdfd2EpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ2NjpcXHRcXHRyZXR1cm4gbXQ3OTk2X21jdV93YV9jbWQoZGV2LCBNQ1VfV0FfUEFSQU1fQ01EKFFVRVJZKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDY3LVxcdFxcdFxcdFxcdFxcdCBNQ1VfV0FfUEFSQU1fQ1BVX1VUSUwsIDAsIDApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ3MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDcyOkRFRklORV9TSE9XX0FUVFJJQlVURShtdDc5OTZfZndfdXRpbF93YSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ3My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NDc0PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ3NTptdDc5OTZfYW1wZHVfc3RhdF9yZWFkX3BoeShzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LCBzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ3Ni17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ3NzpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gcGh5LVxcdTAwM2VkZXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ3OC1cXHRpbnQgYm91bmRbMTVdLCByYW5nZVs4XSwgaTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz01MDQ9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTA1Om10Nzk5Nl90eGJmX3N0YXRfcmVhZF9waHkoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSwgc3RydWN0IHNlcV9maWxlICpzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01MDYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTU1Mj1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1NTM6bXQ3OTk2X3R4X3N0YXRzX3Nob3dfcGh5KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgc3RydWN0IG10Nzk5Nl9waHkgKnBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTU0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01NTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU1OTpcXHRtdDc5OTZfbWFjX3VwZGF0ZV9zdGF0cyhwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1NjA6XFx0bXQ3OTk2X2FtcGR1X3N0YXRfcmVhZF9waHkocGh5LCBmaWxlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTYxLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU2OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTY5OlxcdG10Nzk5Nl90eGJmX3N0YXRfcmVhZF9waHkocGh5LCBmaWxlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTcwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTU4ND1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU4NTptdDc5OTZfdHhfc3RhdHNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIHZvaWQgKmRhdGEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU4Ni17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU4NzpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZmlsZS1cXHUwMDNlcHJpdmF0ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTg4OlxcdHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkgPSBcXHUwMDI2ZGV2LVxcdTAwM2VwaHk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU4OS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01OTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU5MjpcXHRtdDc5OTZfdHhfc3RhdHNfc2hvd19waHkoZmlsZSwgcGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTkzOlxcdHBoeSA9IG10Nzk5Nl9waHkyKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU5NC1cXHRpZiAocGh5KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1OTU6XFx0XFx0bXQ3OTk2X3R4X3N0YXRzX3Nob3dfcGh5KGZpbGUsIHBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU5NjpcXHRwaHkgPSBtdDc5OTZfcGh5MyhkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01OTctXFx0aWYgKHBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTk4OlxcdFxcdG10Nzk5Nl90eF9zdGF0c19zaG93X3BoeShmaWxlLCBwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01OTktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjA0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2MDU6REVGSU5FX1NIT1dfQVRUUklCVVRFKG10Nzk5Nl90eF9zdGF0cyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTYwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NjA3PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjYwODptdDc5OTZfaHdfcXVldWVfcmVhZChzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHUzMiBzaXplLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02MDktXFx0XFx0ICAgICBjb25zdCBzdHJ1Y3QgaHdfcXVldWVfbWFwICptYXApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTYxMC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjYxMTpcXHRzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5ID0gcy1cXHUwMDNlcHJpdmF0ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjEyOlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBwaHktXFx1MDAzZWRldjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjEzLVxcdHUzMiBpLCB2YWw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NjM4PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjYzOTptdDc5OTZfc3RhX2h3X3F1ZXVlX3JlYWQodm9pZCAqZGF0YSwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjQwLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjQxOlxcdHN0cnVjdCBtdDc5OTZfc3RhICptc3RhID0gKHN0cnVjdCBtdDc5OTZfc3RhICopc3RhLVxcdTAwM2VkcnZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjQyOlxcdHN0cnVjdCBtdDc5OTZfdmlmICptdmlmID0gbXN0YS1cXHUwMDNldmlmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2NDM6XFx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeSA9IG10Nzk5Nl92aWZfbGlua19waHkoXFx1MDAyNm12aWYtXFx1MDAzZWRlZmxpbmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NDQtXFx0c3RydWN0IGllZWU4MDIxMV9saW5rX3N0YSAqbGlua19zdGE7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjQ2LVxcdHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY0NzpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NDgtXFx0dW5zaWduZWQgaW50IGxpbmtfaWQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjU4LVxcdGZvcl9lYWNoX3N0YV9hY3RpdmVfbGluayh2aWYsIHN0YSwgbGlua19zdGEsIGxpbmtfaWQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjU5OlxcdFxcdHN0cnVjdCBtdDc5OTZfc3RhX2xpbmsgKm1zdGFfbGluaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjYwLVxcdFxcdHN0cnVjdCBtdDc2X3ZpZl9saW5rICptbGluaztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY2NzpcXHRcXHRtc3RhX2xpbmsgPSBtdDc5OTZfc3RhX2xpbmsobXN0YSwgbGlua19pZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY2OC1cXHRcXHRpZiAoIW1zdGFfbGluaylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz02OTQ9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2OTU6bXQ3OTk2X2h3X3F1ZXVlc19zaG93KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgdm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjk2LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Njk3OlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBmaWxlLVxcdTAwM2Vwcml2YXRlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2OTg6XFx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeSA9IFxcdTAwMjZkZXYtXFx1MDAzZXBoeTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjk5LVxcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgaHdfcXVldWVfbWFwIHBsZV9xdWV1ZV9tYXBbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NDctXFx0c2VxX3B1dHMoZmlsZSwgXFxcIlBMRSBub24tZW1wdHkgcXVldWUgaW5mbzpcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NDg6XFx0bXQ3OTk2X2h3X3F1ZXVlX3JlYWQoZmlsZSwgQVJSQVlfU0laRShwbGVfcXVldWVfbWFwKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzQ5LVxcdFxcdFxcdCAgICAgXFx1MDAyNnBsZV9xdWV1ZV9tYXBbMF0pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc1Mi1cXHRpZWVlODAyMTFfaXRlcmF0ZV9zdGF0aW9uc19hdG9taWMocGh5LVxcdTAwM2VtdDc2LVxcdTAwM2VodyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzUzOlxcdFxcdFxcdFxcdFxcdCAgbXQ3OTk2X3N0YV9od19xdWV1ZV9yZWFkLCBmaWxlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzU0OlxcdHBoeSA9IG10Nzk5Nl9waHkyKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc1NS1cXHRpZiAocGh5KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NTYtXFx0XFx0aWVlZTgwMjExX2l0ZXJhdGVfc3RhdGlvbnNfYXRvbWljKHBoeS1cXHUwMDNlbXQ3Ni1cXHUwMDNlaHcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc1NzpcXHRcXHRcXHRcXHRcXHRcXHQgIG10Nzk5Nl9zdGFfaHdfcXVldWVfcmVhZCwgZmlsZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc1ODpcXHRwaHkgPSBtdDc5OTZfcGh5MyhkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NTktXFx0aWYgKHBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzYwLVxcdFxcdGllZWU4MDIxMV9pdGVyYXRlX3N0YXRpb25zX2F0b21pYyhwaHktXFx1MDAzZW10NzYtXFx1MDAzZWh3LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NjE6XFx0XFx0XFx0XFx0XFx0XFx0ICBtdDc5OTZfc3RhX2h3X3F1ZXVlX3JlYWQsIGZpbGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NjItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzY0LVxcdHNlcV9wdXRzKGZpbGUsIFxcXCJQU0Ugbm9uLWVtcHR5IHF1ZXVlIGluZm86XFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzY1OlxcdG10Nzk5Nl9od19xdWV1ZV9yZWFkKGZpbGUsIEFSUkFZX1NJWkUocHNlX3F1ZXVlX21hcCksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc2Ni1cXHRcXHRcXHQgICAgIFxcdTAwMjZwc2VfcXVldWVfbWFwWzBdKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc3MTpERUZJTkVfU0hPV19BVFRSSUJVVEUobXQ3OTk2X2h3X3F1ZXVlcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc3Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NzczPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Nzc0Om10Nzk5Nl94bWl0X3F1ZXVlc19zaG93KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgdm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzc1LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Nzc2OlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBmaWxlLVxcdTAwM2Vwcml2YXRlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3Nzc6XFx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzc4LVxcdHN0cnVjdCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzkwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3OTE6XFx0cGh5ID0gbXQ3OTk2X3BoeTIoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzkyLVxcdGlmIChwaHkpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzk0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3OTU6XFx0cGh5ID0gbXQ3OTk2X3BoeTMoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzk2LVxcdGlmIChwaHkpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODEzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4MTQ6REVGSU5FX1NIT1dfQVRUUklCVVRFKG10Nzk5Nl94bWl0X3F1ZXVlcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTgxNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9ODE2PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODE3Om10Nzk5Nl90d3Rfc3RhdHMoc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04MTgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4MTk6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRldl9nZXRfZHJ2ZGF0YShzLVxcdTAwM2Vwcml2YXRlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODIwOlxcdHN0cnVjdCBtdDc5OTZfdHd0X2Zsb3cgKml0ZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTgyMS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz04NDU9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NDY6bXQ3OTk2X3JmX3JlZ3ZhbF9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg0Ny17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg0ODpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODQ5LVxcdHUzMiByZWd2YWw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODUxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NTI6XFx0cmV0ID0gbXQ3OTk2X21jdV9yZl9yZWd2YWwoZGV2LCBkZXYtXFx1MDAzZW10NzYuZGVidWdmc19yZWcsIFxcdTAwMjZyZWd2YWwsIGZhbHNlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODUzLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9ODYxPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODYyOm10Nzk5Nl9yZl9yZWd2YWxfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg2My17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg2NDpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODY1LVxcdHUzMiB2YWwzMiA9IHZhbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4Njc6XFx0cmV0dXJuIG10Nzk5Nl9tY3VfcmZfcmVndmFsKGRldiwgZGV2LVxcdTAwM2VtdDc2LmRlYnVnZnNfcmVnLCBcXHUwMDI2dmFsMzIsIHRydWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NjgtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg3MDpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19yZl9yZWd2YWwsIG10Nzk5Nl9yZl9yZWd2YWxfZ2V0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NzE6XFx0XFx0XFx0IG10Nzk5Nl9yZl9yZWd2YWxfc2V0LCBcXFwiMHglMDhsbHhcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg3MzppbnQgbXQ3OTk2X2luaXRfZGVidWdmcyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NzQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg3OS1cXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFxcXCJody1xdWV1ZXNcXFwiLCAwNDAwLCBkaXIsIGRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODgwOlxcdFxcdFxcdCAgICBcXHUwMDI2bXQ3OTk2X2h3X3F1ZXVlc19mb3BzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODgxLVxcdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXFxcInhtaXQtcXVldWVzXFxcIiwgMDQwMCwgZGlyLCBkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg4MjpcXHRcXHRcXHQgICAgXFx1MDAyNm10Nzk5Nl94bWl0X3F1ZXVlc19mb3BzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODgzOlxcdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXFxcInR4X3N0YXRzXFxcIiwgMDQwMCwgZGlyLCBkZXYsIFxcdTAwMjZtdDc5OTZfdHhfc3RhdHNfZm9wcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg4NC1cXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFxcXCJzeXNfcmVjb3ZlcnlcXFwiLCAwNjAwLCBkaXIsIGRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODg1OlxcdFxcdFxcdCAgICBcXHUwMDI2bXQ3OTk2X3N5c19yZWNvdmVyeV9vcHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04ODYtXFx0ZGVidWdmc19jcmVhdGVfZmlsZShcXFwiZndfZGVidWdfd21cXFwiLCAwNjAwLCBkaXIsIGRldiwgXFx1MDAyNmZvcHNfZndfZGVidWdfd20pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg5MC1cXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFxcXCJmd191dGlsX3dhXFxcIiwgMDQwMCwgZGlyLCBkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg5MTpcXHRcXHRcXHQgICAgXFx1MDAyNm10Nzk5Nl9md191dGlsX3dhX2ZvcHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04OTItXFx0ZGVidWdmc19jcmVhdGVfZmlsZShcXFwiaW1wbGljaXRfdHhiZlxcXCIsIDA2MDAsIGRpciwgZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg5NC1cXHRkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3NlcWZpbGUoZGV2LVxcdTAwM2VtdDc2LmRldiwgXFxcInR3dF9zdGF0c1xcXCIsIGRpcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODk1OlxcdFxcdFxcdFxcdCAgICBtdDc5OTZfdHd0X3N0YXRzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODk2LVxcdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXFxcInJmX3JlZ3ZhbFxcXCIsIDA2MDAsIGRpciwgZGV2LCBcXHUwMDI2Zm9wc19yZl9yZWd2YWwpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkwMS1cXHRkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3NlcWZpbGUoZGV2LVxcdTAwM2VtdDc2LmRldiwgXFxcInJkZF9tb25pdG9yXFxcIiwgZGlyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo5MDI6XFx0XFx0XFx0XFx0ICAgIG10Nzk5Nl9yZGRfbW9uaXRvcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkwMy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz05MDk9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6OTEwOm10Nzk5Nl9kZWJ1Z2ZzX3dyaXRlX2Z3bG9nKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGNvbnN0IHZvaWQgKmhkciwgaW50IGhkcmxlbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTExLVxcdFxcdFxcdCAgIGNvbnN0IHZvaWQgKmRhdGEsIGludCBsZW4pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTMzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo5MzQ6dm9pZCBtdDc5OTZfZGVidWdmc19yeF9md19tb25pdG9yKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGNvbnN0IHZvaWQgKmRhdGEsIGludCBsZW4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkzNS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTU1LVxcdGhkci5sZW4gPSAqKF9fbGUxNiAqKWRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjk1NjpcXHRtdDc5OTZfZGVidWdmc193cml0ZV9md2xvZyhkZXYsIFxcdTAwMjZoZHIsIHNpemVvZihoZHIpLCBkYXRhLCBsZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05NTctfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05NTgtXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjM3OjE4LjM3OTg3NzA5M1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2MDg5MTcxNTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipBbmFseXppbmcgdGhlIG10Nzk5NiBEcml2ZXIqKlxuXG5SaWdodCwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBgbXQ3OTk2YC4gTXkgaW5pdGlhbCB0aG91Z2h0IHdhcyB0aGF0IGl0IHdhcyBhIE1lZGlhVGVrIFdpLUZpIGRyaXZlciDigJMgY29tbW9uIGFzc3VtcHRpb24gZ2l2ZW4gdGhlIG5hbWluZyBjb252ZW50aW9uLiBCdXQgdGhlbiwgYSByZWQgZmxhZyB3ZW50IHVwLiBNZW1vcnkgaXMgaGF6eSwgSSBuZWVkIHRvIGNoZWNrIHNvbWV0aGluZy4gV2FpdCBhIHNlY29uZCwgaXNuJ3QgYG10Nzk5NmAgYWN0dWFsbHkgYSBQQ0llIGRyaXZlciwgcmlnaHQ/IEkgbmVlZCB0byBxdWlja2x5IGNvbmZpcm0gdGhpcy4gV2hlcmUgd291bGQgdGhhdCBpbmZvcm1hdGlvbiBiZSBsb2NhdGVkPyBBaCwgeWVzLCBpZiB0aGlzIGlzIGEgUENJZSBkcml2ZXIsIHRoZSBvYnZpb3VzIHBsYWNlcyB0byBpbnZlc3RpZ2F0ZSBhcmUgbGlrZWx5IGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuY2Agb3IgcGVyaGFwcyBgaW5pdC5jYC4gVGhhdCBzaG91bGQgZ2l2ZSBtZSB0aGUgZGV0YWlscyBJIG5lZWQgdG8gY29uZmlybSBpdHMgcm9sZSBhbmQgZGl2ZSBkZWVwZXIgaW50byB0aGUgY29kZSdzIHNwZWNpZmljcy4gTGV0J3Mgc2VlIHdoYXQgdGhlc2UgZmlsZXMgcmV2ZWFsLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTk3NywiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjM3OjIxLjk4ODc5NzQwOFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzc3NjQ2MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicGNpX2RyaXZlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTg2OD1zdGF0aWMgaW50IF9faW5pdCBtdDc5OTZfaW5pdCh2b2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg3NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODc2OlxcdHJldCA9IHBjaV9yZWdpc3Rlcl9kcml2ZXIoXFx1MDAyNm10Nzk5Nl9wY2lfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODc3LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODgzPXN0YXRpYyB2b2lkIF9fZXhpdCBtdDc5OTZfZXhpdCh2b2lkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04ODQte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4ODU6XFx0cGNpX3VucmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZtdDc5OTZfcGNpX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg4Ni1cXHRwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoXFx1MDAyNm10Nzk5Nl9oaWZfZHJpdmVyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oPTY2OT1leHRlcm4gY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgbXQ3OTk2X29wcztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaDo2NzA6ZXh0ZXJuIHN0cnVjdCBwY2lfZHJpdmVyIG10Nzk5Nl9wY2lfZHJpdmVyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oOjY3MTpleHRlcm4gc3RydWN0IHBjaV9kcml2ZXIgbXQ3OTk2X2hpZl9kcml2ZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtNjcyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM9MjMzPXN0YXRpYyB2b2lkIG10Nzk5Nl9wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjQzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jOjI0NDpzdHJ1Y3QgcGNpX2RyaXZlciBtdDc5OTZfaGlmX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNDUtXFx0Lm5hbWVcXHRcXHQ9IEtCVUlMRF9NT0ROQU1FIFxcXCJfaGlmXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI1MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYzoyNTE6c3RydWN0IHBjaV9kcml2ZXIgbXQ3OTk2X3BjaV9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjUyLVxcdC5uYW1lXFx0XFx0PSBLQlVJTERfTU9ETkFNRSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMjM6Mzc6MjIuMTI2NTY1OTk4WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTA3NTYyMzg2NTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgdGhlIG10Nzk5NiBEcml2ZXIgZm9yIEZ1enppbmcqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBhIFBDSSBkcml2ZXIsIHNwZWNpZmljYWxseSBgbXQ3OTk2YC4gVGhlIHF1ZXN0aW9uIGlzLCBjYW4gSSBlZmZlY3RpdmVseSBmdXp6IHRoaXMgZHJpdmVyIHVzaW5nIHN5emthbGxlcj8gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgaXQgKm1pZ2h0KiBiZSBwb3NzaWJsZSwgc2luY2Ugc3l6a2FsbGVyICpkb2VzKiBoYXZlIFBDSSBmdXp6aW5nIGNhcGFiaWxpdGllcywgcmlnaHQ/IEJ1dCB0aGVuIEkgcmVtZW1iZXIgdGhlIG5vdGUgYWJvdXQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCB1bnJlYWNoYWJsZSBjb2RlIHBhdGhzLiBUaGlzIGRyaXZlciwgYmVpbmcgaGFyZHdhcmUtc3BlY2lmaWMsIHRocm93cyB1cCBhIHJlZCBmbGFnLiBJIGtub3cgc3l6a2FsbGVyIHVzZXMgcHNldWRvLXN5c2NhbGxzIGxpa2UgYHN5el9wY2lfLi4uYCwgYnV0IHRoZSBwcm9tcHQgZW1waGFzaXplcyB0aGF0IHN5emthbGxlciBwc2V1ZG8tc3lzY2FsbHMgYXJlIG5vdCBwcmVzZW50IGluIHRoZSBMaW51eCBrZXJuZWwgYW5kIGNhbm5vdCBiZSBzZWFyY2hlZCB1c2luZyB0aGlzIHRvb2wuXG5cbk15IGltbWVkaWF0ZSBhc3N1bXB0aW9uIGlzIHRoYXQgd2l0aG91dCB0aGUgYWN0dWFsIE1lZGlhVGVrIE1UNzk5NiBQQ0llIGhhcmR3YXJlLCBvciBhIHByZWNpc2UgUUVNVSBlbXVsYXRpb24gb2YgaXQsIGl0J3MgYSBkZWFkIGVuZC4gUUVNVSBkb2VzICpub3QqIG5hdGl2ZWx5IGVtdWxhdGUgdGhlIE1UNzk5Niwgd2hpY2gga2lsbHMgdGhhdCBvcHRpb24uIFdlIGhhdmUgYHN5el91c2JfY29ubmVjdGAgZm9yIFVTQiwgYG1hYzgwMjExX2h3c2ltYCBmb3IgV2ktRmksIGJ1dCBgbXQ3OTk2YCBpcyBkaWZmZXJlbnQsIGl0J3MgYSBzcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIsIG5vdCBhIHNvZnR3YXJlIHNpbXVsYXRvci5cblxuV2FpdCwgc3l6a2FsbGVyICpkb2VzKiBoYXZlIHNvbWUgbGV2ZWwgb2YgUENJIGZ1enppbmcsIHJpZ2h0PyBJdCB1c2VzIGBzeXpfcGNpXy4uLmAgcHNldWRvLXN5c2NhbGxzLCBvciBtYXliZSBpdCBpbmplY3RzIFBDSSBkZXZpY2VzIHNvbWVob3c/IEl0IGNhbid0IGJlIHRoYXQgc2ltcGxlLiBBbmQgdGhlbiBJIGhhdmUgdG8gcmVtZW1iZXIgdGhhdCB0aGUgdG9vbCBJJ20gdXNpbmcgY2FuJ3Qgc2VhcmNoIGZvciB0aG9zZSBgc3l6X2AgcHNldWRvLXN5c2NhbGxzIGRpcmVjdGx5LlxuXG5Pa2F5LCBzbyB0aGUgYG10Nzk5NmAgZHJpdmVyIGhhcyBhbiBgbXQ3OTk2X3RoZXJtYWxfaW5pdGAgZnVuY3Rpb24uIENhbiBJIHJlYWNoIGl0IGR1cmluZyBpbml0aWFsaXphdGlvbj8gVGhlIGtleSBoZXJlIGlzIGlmIHRoZSBgbXQ3OTk2YCBkcml2ZXIgaXRzZWxmIGlzIHJlYWNoYWJsZS4gSSBjaGVjaywgYW5kIGl0J3MgY29uZmlybWVkOyBpdCdzIGEgUENJIGRyaXZlci5cblxuU28sIHRoZSBpc3N1ZSBpcyBjbGVhcjogQ2FuIEkgcHJvYmUgYSBQQ0kgZHJpdmVyIHdpdGhvdXQgdGhlIGhhcmR3YXJlPyBTeXprYWxsZXIgdXNlcyBgdmhjaWAgZm9yIFVTQiwgYG5ldGRldnNpbWAgZm9yIG5ldHdvcmtpbmcsIGFuZCBgbWFjODAyMTFfaHdzaW1gIGZvciBXaS1GaS4gQnV0IGBtYWM4MDIxMV9od3NpbWAgZG9lc24ndCBoZWxwIGhlcmUsIGl0J3MgYSBzb2Z0d2FyZSBzaW11bGF0b3IgdGhhdCAqZG9lc24ndCogdXNlIGBtdDc5OTZgLlxuXG5TbywgKmRvZXMqIHN5emthbGxlciBoYXZlIHNvbWUgZ2VuZXJpYyBQQ0kgZGV2aWNlIGVtdWxhdG9yIHZpYSBhIHZpcnR1YWwgUENJIGJ1cywgb3IgbWF5YmUgdmlhIGB2ZmlvYD8gTm9wZS4gSSB0aGVuIGNoZWNrIGFnYWluLCBjb25maXJtaW5nIHRoYXQgYG10Nzk5NmAgaXMgaW5kZWVkIGEgTWVkaWFUZWsgV2ktRmkgNyBkcml2ZXIuXG5cblNvLCBpZiBpdCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIsIGl04oCZcyBnZW5lcmFsbHkgdW5yZWFjaGFibGUgdW5sZXNzIHRoZXJlIGlzIGEgc3BlY2lmaWMgZW11bGF0b3IuIEFuZCBJIGhhdmUgdG8gYXNzdW1lLCBnaXZlbiB0aGUgY29udGV4dCwgdGhhdCBhIHNwZWNpZmljIGVtdWxhdG9yIGRvZXNuJ3QgZXhpc3QuIFRoZXJlIG1pZ2h0IGJlIHNvbWUgaW50ZXJlc3RpbmcgY29kZSBsaWtlIGBkZXZtX3RoZXJtYWxfb2Zfem9uZV9yZWdpc3RlcmAsIGJ1dCBpdCdzIG1vb3QgaWYgdGhlIGRyaXZlciBjYW5ub3QgYmUgcHJvYmVkLiBUaGUgYm90dG9tIGxpbmUgaXMsIHRoaXMgY29kZSBpcyBsaWtlbHkgdW5yZWFjaGFibGUgd2l0aG91dCB0aGUgaGFyZHdhcmUgb3IgYSBzdWl0YWJsZSBlbXVsYXRvci4gSSBuZWVkIHRvIHZlcmlmeSBpZiB0aGVyZSdzICphbnkqIHdheSB0byBwcm9iZSBgbXQ3OTk2YCB3aXRob3V0IHRoZSBoYXJkd2FyZSBiZWZvcmUgSSB3YXN0ZSB0aW1lIG9uIHRoaXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxMTE2LCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzYzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIzOjM3OjMyLjg4MjgwODA3N1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNjcwNDUzMDIxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10Nzk5Nl9wY2lfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODY4PXN0YXRpYyBpbnQgX19pbml0IG10Nzk5Nl9pbml0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODc1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4NzY6XFx0cmV0ID0gcGNpX3JlZ2lzdGVyX2RyaXZlcihcXHUwMDI2bXQ3OTk2X3BjaV9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04NzctXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz04ODM9c3RhdGljIHZvaWQgX19leGl0IG10Nzk5Nl9leGl0KHZvaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg4NC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg4NTpcXHRwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoXFx1MDAyNm10Nzk5Nl9wY2lfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODg2LVxcdHBjaV91bnJlZ2lzdGVyX2RyaXZlcihcXHUwMDI2bXQ3OTk2X2hpZl9kcml2ZXIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg9NjY5PWV4dGVybiBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc5OTZfb3BzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oOjY3MDpleHRlcm4gc3RydWN0IHBjaV9kcml2ZXIgbXQ3OTk2X3BjaV9kcml2ZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtNjcxLWV4dGVybiBzdHJ1Y3QgcGNpX2RyaXZlciBtdDc5OTZfaGlmX2RyaXZlcjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jPTI0ND1zdHJ1Y3QgcGNpX2RyaXZlciBtdDc5OTZfaGlmX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI1MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYzoyNTE6c3RydWN0IHBjaV9kcml2ZXIgbXQ3OTk2X3BjaV9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjUyLVxcdC5uYW1lXFx0XFx0PSBLQlVJTERfTU9ETkFNRSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMjM6Mzc6MzUuNTUzMjY5NTU4WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjcyNjc4NDcwNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIFBDSSBEcml2ZXIgRnV6emluZyBGZWFzaWJpbGl0eSoqXG5cbk9rYXksIHNvIHRoZSBwcm9tcHQgbWVudGlvbnMgYSBQQ0kgZHJpdmVyIGFuZCB0aGUgbGltaXRhdGlvbnMgb2YgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBGaXJzdCB0aG91Z2h0OiBDYW4gU3l6a2FsbGVyIGhhbmRsZSB0aGlzIGRyaXZlcj8gRG9lcyBTeXprYWxsZXIgaGF2ZSBhIGdlbmVyaWMgd2F5IHRvIGZ1enogKmFyYml0cmFyeSogUENJIGRyaXZlcnM/IFVubGVzcywgb2YgY291cnNlLCB0aGVyZSdzIGEgdmlydHVhbCBkZXZpY2UgYWxyZWFkeSBpbiBwbGFjZSwgb3IgYSBkZWRpY2F0ZWQgUENJIGZ1enplci4gV2FpdC4uLiBkb2VzIFN5emthbGxlciAqaGF2ZSogYSBQQ0kgZnV6emVyP1xuXG5BaCwgcmlnaHQsIGBzeXpfcGNpXy4uLmAgcHNldWRvLXN5c2NhbGxzISBZZXMsIHRoZXJlIGlzIGEgUENJIGZ1enplciB0aGF0IGVtdWxhdGVzIFBDSSBkZXZpY2VzLiBCdXQsIHRoZSBwcm9tcHQgcmFpc2VzIGEgY3J1Y2lhbCBwb2ludCBhYm91dCBjb2RlIHBhdGhzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cywgZXZlbiB3aXRoIGVtdWxhdGVkIGhhcmR3YXJlLiBTbywgY2FuIFN5emthbGxlcidzIFBDSSBmdXp6ZXIgZW11bGF0ZSAqYXJiaXRyYXJ5KiBQQ0kgZGV2aWNlcywgb3IgaXMgaXQganVzdCBsaW1pdGVkIHRvIGluamVjdGluZyB0aGVtP1xuXG5Pa2F5LCBsZXQncyB0aGluayB0aGlzIHRocm91Z2guIFN5emthbGxlciBoYXMgYSBVU0IgZnV6emVyIGJlY2F1c2UgVVNCIGhhcyBhIHNvZnR3YXJlLWRlZmluZWQgaW50ZXJmYWNlIGZvciBkZXZpY2UgZW11bGF0aW9uLiBVU0IgZ2FkZ2V0IGlzIHRoZSBrZXkuIEJ1dCBQQ0kgaXMgKmRpZmZlcmVudCouIEl0IGxhY2tzIGEgZ2VuZXJpYyBzb2Z0d2FyZS1kZWZpbmVkIGludGVyZmFjZSBpbiB0aGUgTGludXgga2VybmVsIGZvciBhcmJpdHJhcnkgZGV2aWNlIGVtdWxhdGlvbi4gVG8gZW11bGF0ZSBhIFBDSSBkZXZpY2UsIHlvdSBuZWVkIHNvbWV0aGluZyBsaWtlIGEgUUVNVSBkZXZpY2UgbW9kZWwsIG9yIHBvc3NpYmx5IGEgc3BlY2lmaWMga2VybmVsIG1vZHVsZT8gYHZmaW9gPyBObywgdGhhdCdzIGZvciB1c2Vyc3BhY2UgZHJpdmVycywgdGhhdCdzIG5vdCB3aGF0IEknbSBsb29raW5nIGZvci5cblxuQWgsIHRoZXJlIGlzbid0IGEgKmdlbmVyaWMqIFBDSSBkZXZpY2UgZW11bGF0b3IgaW4gdGhlIGtlcm5lbCB0aGF0IGxldHMgdXNlcnNwYWNlIGVtdWxhdGUgYXJiaXRyYXJ5IGRldmljZXMuXG5cblRoZXJlZm9yZSwgZm9yIHRoaXMgc3BlY2lmaWMgaGFyZHdhcmUgZGV2aWNlIGxpa2UgdGhlIE1lZGlhVGVrIE1UNzk5NiwgaXQncyB2aXJ0dWFsbHkgaW1wb3NzaWJsZSB0byBwcm9iZSBhbmQgZnV6eiB0aGlzIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgdW5sZXNzIFFFTVUgKnNwZWNpZmljYWxseSogZW11bGF0ZXMgaXQsIHdoaWNoIGl0IGRvZXNuJ3QuIE9rYXksIEknbGwgZG91YmxlLWNoZWNrIGZvciBhIHBsYXRmb3JtIGRyaXZlciBvciBzb21ldGhpbmcgc2ltaWxhciB0byBzZWUgaWYgdGhlcmUncyBhbnkgb3RoZXIgb3B0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzI1OCwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQwMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQyMzozNzo0Mi4yODAwNTcyNzJaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0MTI2MjMxNzksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3OTk2X3BjaV9wcm9iZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM9Nzk9c3RhdGljIGludCBtdDc5OTZfcGNpX2hpZjJfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy05OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYzo5OTpzdGF0aWMgaW50IG10Nzk5Nl9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMTAwLVxcdFxcdFxcdCAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYz0yNDQ9c3RydWN0IHBjaV9kcml2ZXIgbXQ3OTk2X2hpZl9kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNDYtXFx0LmlkX3RhYmxlXFx0PSBtdDc5OTZfaGlmX2RldmljZV90YWJsZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYzoyNDc6XFx0LnByb2JlXFx0XFx0PSBtdDc5OTZfcGNpX3Byb2JlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI0OC1cXHQucmVtb3ZlXFx0XFx0PSBtdDc5OTZfaGlmX3JlbW92ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jPTI1MT1zdHJ1Y3QgcGNpX2RyaXZlciBtdDc5OTZfcGNpX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI1My1cXHQuaWRfdGFibGVcXHQ9IG10Nzk5Nl9wY2lfZGV2aWNlX3RhYmxlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jOjI1NDpcXHQucHJvYmVcXHRcXHQ9IG10Nzk5Nl9wY2lfcHJvYmUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjU1LVxcdC5yZW1vdmVcXHRcXHQ9IG10Nzk5Nl9wY2lfcmVtb3ZlLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQyMzozNzo0NC42OTI3MjA1ODFaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDY4NjUwMzUzOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipQQ0kgRnV6emluZyBDb251bmRydW0qKlxuXG5Pa2F5LCB3YWl0IGEgbWludXRlLCBkb2VzIHN5emthbGxlciBldmVuICpoYXZlKiBhIFBDSSBmdXp6ZXI/IEkgc2hvdWxkIHByb2JhYmx5IGRvdWJsZS1jaGVjay4gTGV0IG1lIHNlZSBpZiB0aGVyZSdzIGFueXRoaW5nIG9idmlvdXMgaW4gdGhlIGtlcm5lbCBzb3VyY2UsIGxpa2UgYSBgc3l6X3BjaWAgY2FsbC4gT2gsIHJpZ2h0LCB0aGUgcHJvbXB0IHdhcm5lZCBtZS4gSXQgc3BlY2lmaWNhbGx5IHNhaWQgbm90IHRvIGxvb2sgZm9yIGFueXRoaW5nIHN0YXJ0aW5nIHdpdGggXCJzeXpfXCIgaW4gdGhlIGtlcm5lbCBpdHNlbGYuIFRob3NlIGFyZSBqdXN0IHN5emthbGxlcidzIGludGVybmFsIHBzZXVkby1zeXNjYWxscy4gT2theSwgc28gc2NyYXRjaCB0aGF0LlxuXG5JbnN0ZWFkIG9mIGxvb2tpbmcgZm9yIGEgc3l6X3BjaSwgSSBzaG91bGQgbG9vayBmb3IgYSBQQ0kgZW11bGF0aW9uIGZyYW1ld29yaywgKndpdGhpbiogdGhlIGtlcm5lbC4gTGV0IG1lIHNlZS4uLiBBaGEsIEkgc2VlIGBDT05GSUdfUENJX0VORFBPSU5UX1RFU1RgLCBidXQgdGhhdCdzIGp1c3QgZm9yIGVuZHBvaW50cywgbm90IGEgZ2VuZXJhbCBlbXVsYXRpb24gZnJhbWV3b3JrLiBTbywgbm8sIHRoZXJlIGlzbid0IGFueSBnZW5lcmljIFBDSSBlbXVsYXRpb24gY2FwYWJpbGl0eSBpbiB0aGUga2VybmVsIHRoYXQgd291bGQgbGV0IHVzZXJzcGFjZSBqdXN0IGRlZmluZSBhbmQgaW50ZXJhY3Qgd2l0aCBhbiBhcmJpdHJhcnkgUENJIGRldmljZS5cblxuSG1tLCB3aGF0IGlmIHRoZSBkcml2ZXIgaXNuJ3Qgc3RyaWN0bHkgUENJIGJ1dCBjYW4gYWxzbyBiZSBhY2Nlc3NlZCB2aWEgU0RJTyBvciBVU0I/IEkgbmVlZCB0byBmaW5kIHRoZSBkcml2ZXIgZGlyZWN0b3J5LCBzbyBsZXQgbWUgc2Vl4oCmIEFscmlnaHQsIHRoZSBkaXJlY3RvcnkgaXMgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2AuIE5vdyBsZXQncyBkaWcgaW50byB0aGUgYE1ha2VmaWxlYCB0byBzZWUgaG93IGl0IHdvcmtzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNDY0OSwiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQyMzozNzo0OS4zNzkyMjgxNjlaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1ODUwMTE3OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5OTZlLXlcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU9Mz1vYmotJChDT05GSUdfTVQ3OTk2RSkgKz0gbXQ3OTk2ZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGUtNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTo1Om10Nzk5NmUteSA6PSBwY2kubyBpbml0Lm8gZG1hLm8gZWVwcm9tLm8gbWFpbi5vIG1jdS5vIG1hYy5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS02LVxcdCAgICAgZGVidWdmcy5vIG1taW8ub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQyMzozNzo0OS41Mzc3MzM3MDhaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTkyMDEzMzY0OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIFRoaXMgUENJIERyaXZlcidzIEZ1enppbmcgUG90ZW50aWFsKipcblxuT2theSwgc28gdGhlIGlzc3VlIGF0IGhhbmQgaXMgc29sZWx5IHdpdGhpbiBgcGNpLm9gLiBUaGF0IGltbWVkaWF0ZWx5IGZsYWdzIGl0IGFzIGEgUENJLXNwZWNpZmljIGRyaXZlci4gR2l2ZW4gdGhhdCBpdCB0YXJnZXRzIGEgcGFydGljdWxhciBoYXJkd2FyZSBkZXZpY2UgdGhyb3VnaCB0aGUgUENJIGludGVyZmFjZSwgSSBrbm93LCBiYXNlZCBvbiBleHBlcmllbmNlLCB0aGF0IHRoZSBsaWtlbGlob29kIG9mIHRyaWdnZXJpbmcgaXQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCDigJMgbGlrZSBhIEdDRSBpbnN0YW5jZSBvciBRRU1VIOKAkyBpcyBlZmZlY3RpdmVseSB6ZXJvLCBiYXJyaW5nIHZlcnkgc3BlY2lmaWMgYW5kIHNvcGhpc3RpY2F0ZWQgZW11bGF0aW9uLlxuXG5Db25zZXF1ZW50bHksIGFueSBjb2RlIHBhdGhzIHJlc2lkaW5nIHdpdGhpbiBgbXQ3OTk2X3RoZXJtYWxfaW5pdGAgYW5kIGBtdDc5OTZfdGhlcm1hbF9nZXRfdGVtcGAgYXJlLCBpbiB0aGlzIGNvbnRleHQsIGluYWNjZXNzaWJsZS4gVGhleSBhcmUgaW50aW1hdGVseSB0aWVkIHRvIHRoZSBoYXJkd2FyZSBpbnRlcmFjdGlvbiB0aGF0IHNpbXBseSB3b24ndCBiZSBhdmFpbGFibGUgdG8gbWUgZHVyaW5nIG15IGZ1enppbmcgZWZmb3J0cyBpbiB0aGlzIHR5cGUgb2YgZW52aXJvbm1lbnQuXG5cblRoZXJlZm9yZSwgdGhlIHBydWRlbnQgYW5kIHJlc291cmNlLWNvbnNjaW91cyBkZWNpc2lvbiBoZXJlIGlzIHRvIGRlY2xhcmUgYFdvcnRoRnV6emluZz1mYWxzZWAuIEl0J3MgYSB3YXN0ZSBvZiB0aW1lIHRvIGNoYXNlIGZ1bmN0aW9uYWxpdHkgdGhhdCdzIGZ1bmRhbWVudGFsbHkgdW5yZWFjaGFibGUgd2l0aG91dCB0aGUgYXBwcm9wcmlhdGUgcGh5c2ljYWwgaGFyZHdhcmUgb3IgYSB2ZXJ5IHNwZWNpYWxpemVkIGVtdWxhdG9yLlxuXG5KdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiwgbGV0IG1lIHF1aWNrbHkgc2NhbiB0aGUgYnJvYWRlciBkZXZpY2UgcmVnaXN0cmF0aW9uIGxhbmRzY2FwZSB3aXRoaW4gdGhlIGRyaXZlci4gQXJlIHRoZXJlIGFueSBpbmRpY2F0aW9ucyBvZiBwbGF0Zm9ybSBkZXZpY2UgcmVnaXN0cmF0aW9uIG9yIGFsdGVybmF0ZSBwYXRod2F5cyB0aGF0IG1pZ2h0IGFsbG93IGZvciBzb21lIGZvcm0gb2YgY29kZSBleGVjdXRpb24gd2l0aGluIHRoaXMgZHJpdmVyPyBJIG5lZWQgdG8gYmUgc3VyZSB0aGF0IEkgaGF2ZW4ndCBtaXNzZWQgYSBtb3JlIGluZGlyZWN0IG1ldGhvZCBvZiBnZXR0aW5nIGF0IGl0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTM0NiwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQyMzozNzo1OS40NTc4NzA2MTZaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk5NTEwODYzLCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwbGF0Zm9ybV9kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQyMzozNzo1OS41NTczODk0NjlaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTM0MjY5NTI5OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipXb3J0aEZ1enppbmc9ZmFsc2U6IE1lZGlhVGVrIFdpLUZpIERyaXZlciBBbmFseXNpcyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgTWVkaWFUZWsgV2ktRmkgZHJpdmVyLCB0cnlpbmcgdG8gZmlndXJlIG91dCBpZiBpdCdzIGEgZ29vZCB0YXJnZXQgZm9yIGZ1enppbmcuIEluaXRpYWxseSwgSSB3YXMgdGhpbmtpbmcsIFwiTm8gcGxhdGZvcm0gZHJpdmVyLCBzbyBpcyB0aGVyZSBhbm90aGVyIHdheSB0byBnZXQgYXQgdGhpcz9cIiBUaGUgYW5zd2VyIGlzIHByZXR0eSBjbGVhcjogTm8uXG5cblRoZW4gSSBoYWQgYSBmbGlja2VyIG9mIGFuIGlkZWEsIFwiV2FpdCwgTWVkaWFUZWsgZHJpdmVycywgc29tZXRpbWVzIHVzZWQgaW4gU29DcyBhcyBwbGF0Zm9ybSBkZXZpY2VzLCBtYXliZSBpdCBjb3VsZCBiZSB1c2VkIGJ5IFNvQ3MsIGxpa2UgT3BlbldydCByb3V0ZXJzIGFuZCBzdWNoP1wiIEkgY2hlY2tlZCB0aGUgY29kZS4gVGhlIE1ha2VmaWxlIG9ubHkgYnVpbGRzIGBwY2kub2AgYW5kIGBtbWlvLm9gLCBzbyBpdCBzZWVtcyBpdCdzIG5vdCB0aGUgY2FzZS4gVGhlIGBtdDc5OTZfaW5pdGAgZnVuY3Rpb24gb25seSByZWdpc3RlcnMgdGhlIFBDSSBkcml2ZXJzLlxuXG5TbyBpdCdzIHB1cmVseSBhIFBDSSBkcml2ZXIuIFRoYXQncyBhIHByb2JsZW0uIFN5emthbGxlciBydW5zIGluIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLCBhbmQgdGhlcmUncyBubyBnZW5lcmljIFBDSSBkZXZpY2UgZW11bGF0b3IgYnVpbHQgaW50byB0aGUgTGludXgga2VybmVsIGxpa2Ugd2l0aCBVU0IgZ2FkZ2V0IG9yIGBtYWM4MDIxMV9od3NpbWAuIFRoaXMgbWVhbnMgdGhhdCBQQ0kgZHJpdmVycyBmb3Igc3BlY2lmaWMgaGFyZHdhcmUganVzdCBjYW4ndCBiZSBwcm9iZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gVGhpcyBtZWFucyB0aGUgdGhlcm1hbCB6b25lIHJlZ2lzdHJhdGlvbiBhbmQgdGhlIGBtdDc5OTZfdGhlcm1hbF9nZXRfdGVtcGAgZnVuY3Rpb24gYXJlIHVucmVhY2hhYmxlIHZpYSBmdXp6aW5nLlxuXG5NeSBjb25jbHVzaW9uIGlzIHRoYXQgdGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIgdGhhdCBjYW5ub3QgYmUgZWZmZWN0aXZlbHkgZnV6emVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIFRoZXJlZm9yZSwgSSBuZWVkIHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC5cblxuTGV0IG1lIGp1c3QgY29uZmlybSB0aGVyZSBpc24ndCBzb21lIGhpZGRlbiBnZW5lcmljIFBDSSBkZXZpY2UgZW11bGF0b3IgaW4gdGhlIGtlcm5lbCB0aGF0IEknbSBmb3JnZXR0aW5nLi4uIFRoZXJlJ3MgYFBDSV9TVFVCYCBidXQgdGhhdCdzIGZvciBoaWRpbmcgZGV2aWNlcyBmcm9tIHRoZSBob3N0LCBub3QgZm9yIGVtdWxhdGluZy4gVGhlbiB0aGVyZSdzIGBWRklPX1BDSWAsIGJ1dCB0aGF0J3MgZm9yIHBhc3NpbmcgdGhyb3VnaCAqcmVhbCogZGV2aWNlcy4gTm90aGluZyB0aGVyZS4gU28sIHJlYWxseSwgU3l6a2FsbGVyJ3MgUENJIGZ1enppbmcgKnJlbGllcyogb24gUUVNVSdzIFBDSSBlbXVsYXRpb24sIG9yIGl0IGRvZXNuJ3QgZXhpc3QuLi5cblxuV2FpdCwgZG9lc24ndCBTeXprYWxsZXIgaGF2ZSBhIFBDSSBmdXp6ZXI/IEhvdyBkb2VzIHRoYXQgd29yaz8gRG9lcyBpdCBpbmplY3QgUENJIGRldmljZXMgdmlhIGEgY3VzdG9tIFFFTVUgZGV2aWNlIG9yIHNvbWV0aGluZz8gTm8sIGl0IGRvZXNuJ3QuIFN5emthbGxlciB1c2VzIGBzeXpfcGNpXy4uLmAgd2hpY2ggbWlnaHQgYmUgaW1wbGVtZW50ZWQgdmlhIHNvbWUgY3VzdG9tIGtlcm5lbCBtb2R1bGU/IE5vLCBzeXprYWxsZXIgZG9lc24ndCB1c2UgY3VzdG9tIGtlcm5lbCBtb2R1bGVzLiBJdCBkb2VzIHVzZSBgdmhjaWAgZm9yIFVTQiwgYnV0IEkgY2FuJ3QgZmluZCBhIGB2aGNpYCBlcXVpdmFsZW50IGZvciBQQ0kuXG5cblJpZ2h0LCB0aGVuIGhvdz8gRG9lcyBTeXprYWxsZXIgaGF2ZSBhIGN1c3RvbSBRRU1VIGRldmljZT8gTm8uIFRoZW4sIGhvdyBkbyB0aGV5IGluamVjdCBQQ0kgZGV2aWNlcywgc3l6a2FsbGVyIHVzZXMgdGhlIGBzeXpfcGNpYCBwc2V1ZG8tc3lzY2FsbHMgd2hpY2ggYXJlIGltcGxlbWVudGVkIGluIHRoZSBleGVjdXRvciwgYnV0IGhvdyBkbyB0aGV5IGluamVjdCBQQ0kgZGV2aWNlcz8gVGhleSBkb24ndC4gVGhleSBqdXN0IGZ1enogdGhlIFBDSSBjb25maWd1cmF0aW9uIHNwYWNlIG9mIGV4aXN0aW5nIGRldmljZXM/IE5vLiBJdCBpbmplY3RzIGEgKm5ldyogUENJIGRldmljZS4gQWN0dWFsbHksIHN5emthbGxlciBkb2VzIG5vdCBoYXZlIGEgZ2VuZXJpYyBQQ0kgZGV2aWNlIGVtdWxhdG9yLlxuXG5HaXZlbiBhbGwgb2YgdGhhdCwgaXQgaXMgY2xlYXIgdGhhdCBJIHdpbGwgc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTgxNiwiT3V0cHV0VG9rZW5zIjoxMTYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MDQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMjM6Mzg6MDguOTAwMDg4NDY4WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQxMzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIE1UNzk5NiBXaS1GaSBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlci4gU2luY2UgdGhlcmUgaXMgbm8gZ2VuZXJpYyBQQ0kgZGV2aWNlIGVtdWxhdG9yIGluIHRoZSBMaW51eCBrZXJuZWwgKHVubGlrZSBVU0IgZ2FkZ2V0IG9yIG1hYzgwMjExX2h3c2ltKSwgdGhpcyBkcml2ZXIgY2Fubm90IGJlIHByb2JlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSB3aXRob3V0IHRoZSBhY3R1YWwgaGFyZHdhcmUuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIE1UNzk5NiBXaS1GaSBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlci4gU2luY2UgdGhlcmUgaXMgbm8gZ2VuZXJpYyBQQ0kgZGV2aWNlIGVtdWxhdG9yIGluIHRoZSBMaW51eCBrZXJuZWwgKHVubGlrZSBVU0IgZ2FkZ2V0IG9yIG1hYzgwMjExX2h3c2ltKSwgdGhpcyBkcml2ZXIgY2Fubm90IGJlIHByb2JlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSB3aXRob3V0IHRoZSBhY3R1YWwgaGFyZHdhcmUuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow2z8gx[1] Phase: Running StartedAt: 2026-07-22 23:38:20 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2z8gx[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-22 23:38:20 +0000 UTC FinishedAt: 2026-07-22 23:38:27 +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,}