Name: series-workflowvz5b5 Phase: Failed StartedAt: 2026-09-07 03:06:33 +0000 UTC FinishedAt: 2026-09-07 03:09:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvz5b5[0] Phase: Succeeded StartedAt: 2026-09-07 03:06:33 +0000 UTC FinishedAt: 2026-09-07 03:09:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvz5b5[0].run-triage Phase: Succeeded StartedAt: 2026-09-07 03:06:33 +0000 UTC FinishedAt: 2026-09-07 03:09:18 +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+CgkJCTx0ZD4yMDI2LzA5LzA3IDAzOjA4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgbW9kaWZpZWQgY29kZSBpcyB3aXRoaW4gdGhlIE1lZGlhVGVrIE1UNzkxNSB3aXJlbGVzcyBkcml2ZXIgKGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1LyksIHdoaWNoIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIFBDSWUvU29DIGhhcmR3YXJlIChNVDc5MTUvTVQ3OTE2L01UNzk4Nikgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkuIEFzIHN1Y2gsIHRoaXMgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIHN5emthbGxlciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAwMzowODwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGE2NDJmNWJjMDQzMWFhZDYxZTMzMjc5NGEyMWJkMDIxYjg2ZDU5MDFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIFNlcCA3IDAzOjA4OjM5IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuY1xuaW5kZXggY2E0NmEyMDNhYTQ4Yi4uZTUyODVkMWExZjlkZSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jXG5AQCAtMjAwLDExICYjNDM7MjAwLDE3IEBAIHN0YXRpYyB2b2lkIG10NzkxNV91bnJlZ2lzdGVyX3RoZXJtYWwoc3RydWN0IG10NzkxNV9waHkgKnBoeSlcbiB7XG4gXHRzdHJ1Y3Qgd2lwaHkgKndpcGh5ID0gcGh5LVx1MDAzZW10NzYtXHUwMDNlaHctXHUwMDNld2lwaHk7XG4gXG4mIzQzO1x0aWYgKHBoeS1cdTAwM2V0em9uZSkge1xuJiM0MztcdFx0ZGV2bV90aGVybWFsX29mX3pvbmVfdW5yZWdpc3RlcihwaHktXHUwMDNlZGV2LVx1MDAzZW10NzYuZGV2LCBwaHktXHUwMDNldHpvbmUpO1xuJiM0MztcdFx0cGh5LVx1MDAzZXR6b25lID0gTlVMTDtcbiYjNDM7XHR9XG4mIzQzO1xuIFx0aWYgKCFwaHktXHUwMDNlY2RldilcbiBcdFx0cmV0dXJuO1xuIFxuIFx0c3lzZnNfcmVtb3ZlX2xpbmsoXHUwMDI2d2lwaHktXHUwMDNlZGV2LmtvYmosIFwmIzM0O2Nvb2xpbmdfZGV2aWNlXCYjMzQ7KTtcbiBcdHRoZXJtYWxfY29vbGluZ19kZXZpY2VfdW5yZWdpc3RlcihwaHktXHUwMDNlY2Rldik7XG4mIzQzO1x0cGh5LVx1MDAzZWNkZXYgPSBOVUxMO1xuIH1cbiBcbiBzdGF0aWMgaW50IG10NzkxNV90aGVybWFsX2luaXQoc3RydWN0IG10NzkxNV9waHkgKnBoeSlcbkBAIC0yMTMsNiAmIzQzOzIxOSw3IEBAIHN0YXRpYyBpbnQgbXQ3OTE1X3RoZXJtYWxfaW5pdChzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5KVxuIFx0c3RydWN0IHRoZXJtYWxfY29vbGluZ19kZXZpY2UgKmNkZXY7XG4gXHRzdHJ1Y3QgZGV2aWNlICpod21vbjtcbiBcdGNvbnN0IGNoYXIgKm5hbWU7XG4mIzQzO1x0aW50IHJldDtcbiBcbiBcdG5hbWUgPSBkZXZtX2thc3ByaW50ZihcdTAwMjZ3aXBoeS1cdTAwM2VkZXYsIEdGUF9LRVJORUwsIFwmIzM0O210NzkxNV8lc1wmIzM0OyxcbiBcdFx0XHQgICAgICB3aXBoeV9uYW1lKHdpcGh5KSk7XG5AQCAtMjM4LDggJiM0MzsyNDUsOCBAQCBzdGF0aWMgaW50IG10NzkxNV90aGVybWFsX2luaXQoc3RydWN0IG10NzkxNV9waHkgKnBoeSlcbiBcdGlmIChJU19FUlIocGh5LVx1MDAzZXR6b25lKSkge1xuIFx0XHRpZiAoUFRSX0VSUihwaHktXHUwMDNldHpvbmUpICE9IC1FTk9ERVYpXG4gXHRcdFx0ZGV2X3dhcm4ocGh5LVx1MDAzZWRldi1cdTAwM2VtdDc2LmRldixcbi1cdFx0XHRcdCBcJiMzNDtmYWlsZWQgdG8gcmVnaXN0ZXIgdGhlcm1hbCB6b25lOiAlbGRcXG5cJiMzNDssXG4tXHRcdFx0XHQgUFRSX0VSUihwaHktXHUwMDNldHpvbmUpKTtcbiYjNDM7XHRcdFx0XHQgXCYjMzQ7ZmFpbGVkIHRvIHJlZ2lzdGVyIHRoZXJtYWwgem9uZSAlZDogJWxkXFxuXCYjMzQ7LFxuJiM0MztcdFx0XHRcdCBwaHktXHUwMDNlbXQ3Ni1cdTAwM2ViYW5kX2lkeCwgUFRSX0VSUihwaHktXHUwMDNldHpvbmUpKTtcbiBcdFx0cGh5LVx1MDAzZXR6b25lID0gTlVMTDtcbiBcdH1cbiBcbkBAIC0yNDgsNyAmIzQzOzI1NSwxMSBAQCBzdGF0aWMgaW50IG10NzkxNV90aGVybWFsX2luaXQoc3RydWN0IG10NzkxNV9waHkgKnBoeSlcbiBcbiBcdGh3bW9uID0gZGV2bV9od21vbl9kZXZpY2VfcmVnaXN0ZXJfd2l0aF9ncm91cHMoXHUwMDI2d2lwaHktXHUwMDNlZGV2LCBuYW1lLCBwaHksXG4gXHRcdFx0XHRcdFx0ICAgICAgIG10NzkxNV9od21vbl9ncm91cHMpO1xuLVx0cmV0dXJuIFBUUl9FUlJfT1JfWkVSTyhod21vbik7XG4mIzQzO1x0cmV0ID0gUFRSX0VSUl9PUl9aRVJPKGh3bW9uKTtcbiYjNDM7XHRpZiAocmV0KVxuJiM0MztcdFx0bXQ3OTE1X3VucmVnaXN0ZXJfdGhlcm1hbChwaHkpO1xuJiM0MztcbiYjNDM7XHRyZXR1cm4gcmV0O1xuIH1cbiBcbiBzdGF0aWMgdm9pZCBtdDc5MTVfbGVkX3NldF9jb25maWcoc3RydWN0IGxlZF9jbGFzc2RldiAqbGVkX2NkZXYsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMDM6MDg8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Y29yZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgbW9kaWZpZWQgY29kZSBpcyB3aXRoaW4gdGhlIE1lZGlhVGVrIE1UNzkxNSB3aXJlbGVzcyBkcml2ZXIgKGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1LyksIHdoaWNoIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIFBDSWUvU29DIGhhcmR3YXJlIChNVDc5MTUvTVQ3OTE2L01UNzk4Nikgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkuIEFzIHN1Y2gsIHRoaXMgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIHN5emthbGxlciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzCnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoxLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsCmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuCgotIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOgogIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQKICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLgogIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCwKICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuCgotIERPIE5PVCBCTElORExZIFRSVVNUICYjMzQ7Tk8gRlVOQ1RJT05BTCBDSEFOR0UmIzM0OyAoTkZDSSkgT1IgJiMzNDtSRUZBQ1RPUklORyYjMzQ7IENMQUlNUzoKICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzICYjMzQ7Y2xlYW51cHMmIzM0OywgJiMzNDtyZWZhY3RvcmluZ3MmIzM0Oywgb3Igc3RhdGUKICAmIzM0O05vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkJiMzNDsuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLgogIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudAogIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLgogIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuCgotIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOgogIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKiwKICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy4KICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyCiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczoKCi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczoKICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy4KICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKQogICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLgogICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHMKICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuCiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuCi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOgogICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6CiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmcKICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLgogICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOgotIENvcmUgU3Vic3lzdGVtczoKICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSwKICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy4KLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6CiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuCi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOgogICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLgotIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6CiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo0LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6CgotIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzoKICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1cwogIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0CiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuCiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzICYjMzQ7Zm9jdXNlZCYjMzQ7LAogIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy4KCi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOgogIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50cwogIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LgoKLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6CiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFjawogIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLgogIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlcgogIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZToKLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgotIENoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuCi0gU3RyaXAgYW55ICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0CgpGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGE2NDJmNWJjMDQzMWFhZDYxZTMzMjc5NGEyMWJkMDIxYjg2ZDU5MDEKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIFNlcCA3IDAzOjA4OjM5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jCmluZGV4IGNhNDZhMjAzYWE0OGIuLmU1Mjg1ZDFhMWY5ZGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMKQEAgLTIwMCwxMSAmIzQzOzIwMCwxNyBAQCBzdGF0aWMgdm9pZCBtdDc5MTVfdW5yZWdpc3Rlcl90aGVybWFsKHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkpCiB7CiAJc3RydWN0IHdpcGh5ICp3aXBoeSA9IHBoeS0mZ3Q7bXQ3Ni0mZ3Q7aHctJmd0O3dpcGh5OwogCiYjNDM7CWlmIChwaHktJmd0O3R6b25lKSB7CiYjNDM7CQlkZXZtX3RoZXJtYWxfb2Zfem9uZV91bnJlZ2lzdGVyKHBoeS0mZ3Q7ZGV2LSZndDttdDc2LmRldiwgcGh5LSZndDt0em9uZSk7CiYjNDM7CQlwaHktJmd0O3R6b25lID0gTlVMTDsKJiM0MzsJfQomIzQzOwogCWlmICghcGh5LSZndDtjZGV2KQogCQlyZXR1cm47CiAKIAlzeXNmc19yZW1vdmVfbGluaygmYW1wO3dpcGh5LSZndDtkZXYua29iaiwgJiMzNDtjb29saW5nX2RldmljZSYjMzQ7KTsKIAl0aGVybWFsX2Nvb2xpbmdfZGV2aWNlX3VucmVnaXN0ZXIocGh5LSZndDtjZGV2KTsKJiM0MzsJcGh5LSZndDtjZGV2ID0gTlVMTDsKIH0KIAogc3RhdGljIGludCBtdDc5MTVfdGhlcm1hbF9pbml0KHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkpCkBAIC0yMTMsNiAmIzQzOzIxOSw3IEBAIHN0YXRpYyBpbnQgbXQ3OTE1X3RoZXJtYWxfaW5pdChzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5KQogCXN0cnVjdCB0aGVybWFsX2Nvb2xpbmdfZGV2aWNlICpjZGV2OwogCXN0cnVjdCBkZXZpY2UgKmh3bW9uOwogCWNvbnN0IGNoYXIgKm5hbWU7CiYjNDM7CWludCByZXQ7CiAKIAluYW1lID0gZGV2bV9rYXNwcmludGYoJmFtcDt3aXBoeS0mZ3Q7ZGV2LCBHRlBfS0VSTkVMLCAmIzM0O210NzkxNV8lcyYjMzQ7LAogCQkJICAgICAgd2lwaHlfbmFtZSh3aXBoeSkpOwpAQCAtMjM4LDggJiM0MzsyNDUsOCBAQCBzdGF0aWMgaW50IG10NzkxNV90aGVybWFsX2luaXQoc3RydWN0IG10NzkxNV9waHkgKnBoeSkKIAlpZiAoSVNfRVJSKHBoeS0mZ3Q7dHpvbmUpKSB7CiAJCWlmIChQVFJfRVJSKHBoeS0mZ3Q7dHpvbmUpICE9IC1FTk9ERVYpCiAJCQlkZXZfd2FybihwaHktJmd0O2Rldi0mZ3Q7bXQ3Ni5kZXYsCi0JCQkJICYjMzQ7ZmFpbGVkIHRvIHJlZ2lzdGVyIHRoZXJtYWwgem9uZTogJWxkXG4mIzM0OywKLQkJCQkgUFRSX0VSUihwaHktJmd0O3R6b25lKSk7CiYjNDM7CQkJCSAmIzM0O2ZhaWxlZCB0byByZWdpc3RlciB0aGVybWFsIHpvbmUgJWQ6ICVsZFxuJiMzNDssCiYjNDM7CQkJCSBwaHktJmd0O210NzYtJmd0O2JhbmRfaWR4LCBQVFJfRVJSKHBoeS0mZ3Q7dHpvbmUpKTsKIAkJcGh5LSZndDt0em9uZSA9IE5VTEw7CiAJfQogCkBAIC0yNDgsNyAmIzQzOzI1NSwxMSBAQCBzdGF0aWMgaW50IG10NzkxNV90aGVybWFsX2luaXQoc3RydWN0IG10NzkxNV9waHkgKnBoeSkKIAogCWh3bW9uID0gZGV2bV9od21vbl9kZXZpY2VfcmVnaXN0ZXJfd2l0aF9ncm91cHMoJmFtcDt3aXBoeS0mZ3Q7ZGV2LCBuYW1lLCBwaHksCiAJCQkJCQkgICAgICAgbXQ3OTE1X2h3bW9uX2dyb3Vwcyk7Ci0JcmV0dXJuIFBUUl9FUlJfT1JfWkVSTyhod21vbik7CiYjNDM7CXJldCA9IFBUUl9FUlJfT1JfWkVSTyhod21vbik7CiYjNDM7CWlmIChyZXQpCiYjNDM7CQltdDc5MTVfdW5yZWdpc3Rlcl90aGVybWFsKHBoeSk7CiYjNDM7CiYjNDM7CXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyB2b2lkIG10NzkxNV9sZWRfc2V0X2NvbmZpZyhzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfY2RldiwKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMDM6MDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzQ3NwoJCQkJCQkJb3V0cHV0OiA1MQoJCQkJCQkJdGhvdWdodHM6IDIyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipFdmFsdWF0aW5nIHRoZSBTdWl0YWJpbGl0eSBvZiBhIEtlcm5lbCBQYXRjaCBmb3IgU3l6a2FsbGVyIEZ1enppbmcqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IHRoaXMgcGF0Y2ggdG8gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuY2AgdGhhdCBzb21lb25lIHdhbnRzIG1lIHRvIGFzc2VzcyBmb3Igc3l6a2FsbGVyIGZ1enppbmcuIE15IGZpcnN0IHN0ZXAgaXMgdG8gcXVpY2tseSBkZXRlcm1pbmUgaWYgdGhpcyBpcyBldmVuIGZlYXNpYmxlLiBUaGUgcXVlc3Rpb24gaXMsIGNhbiBJIHJlYWNoIHRoaXMgZHJpdmVyIGluIGEgc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBRRU1VIG9yIEdvb2dsZSBDb21wdXRlIEVuZ2luZT8gVGhlIGRyaXZlciBpbiBxdWVzdGlvbiBpcyB0aGUgTWVkaWF0ZWsgTVQ3OTE1IHdpcmVsZXNzIGRyaXZlci4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IGl0JiMzOTtzIGNvbm5lY3RlZCAtIGlzIGl0IFBDSS9QQ0llLCBVU0IsIG9yIHNvbWV0aGluZyBTb0Mtc3BlY2lmaWM/IEkmIzM5O2xsIHByb2JhYmx5IHVzZSBgZ3JlcHBlcmAgb3IgbWF5YmUganVzdCBgcmVhZC1maWxlYCB0byBjaGVjayB0aGUgY29kZSBkaXJlY3RseSB0byBnZXQgdGhlIGFuc3dlci4KCkJlZm9yZSBJIGdvIGZ1cnRoZXIsIGEgcXVpY2sgc2VjdXJpdHkgcmV2aWV3IGlzIGluIG9yZGVyLiBUaGlzIGlzIGEgcHJldHR5IHN0YW5kYXJkIGRldmVsb3BlciBRQS90cmlhZ2UgdGFzaywgbm90aGluZyBvYnZpb3VzbHkgY3JpdGljYWwgaGVyZS4gTm8gcmVkIGZsYWdzIHNvIGZhciDigJMgdGhpcyBpcyBwcm9iYWJseSBhIGJlbmlnbiwgbm9ybWFsIHBhdGNoLgoKVG8gcHJvcGVybHkgYW5hbHl6ZSB0aGlzLCBJIG5lZWQgdG8gZ2V0IGEgaGFuZGxlIG9uIHRoZSBgbXQ3OTE1YCBkcml2ZXIgaXRzZWxmLiBJJiMzOTtsbCBuZWVkIHRvIGV4cGxvcmUgdGhlIGNvZGViYXNlIHRvIHVuZGVyc3RhbmQgaXRzIGZ1bmN0aW9uIGFuZCBjb250ZXh0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDAzOjA4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O01PRFVMRV9ERVZJQ0VfVEFCTEV8cGNpX3JlZ2lzdGVyX2RyaXZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM9OTY1PXN0YXRpYyBpbnQgX19pbml0IG10NzkxNV9pbml0KHZvaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTk2OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYzo5Njk6XHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNm10NzkxNV9oaWZfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy05NzAtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy05NzItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6OTczOlx0cmV0ID0gcGNpX3JlZ2lzdGVyX2RyaXZlcihcdTAwMjZtdDc5MTVfcGNpX2RyaXZlcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtOTc0LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9wY2kuYz0yMzE9c3RydWN0IHBjaV9kcml2ZXIgbXQ3OTE1X3BjaV9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmMtMjM3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmM6MjM4Ok1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBtdDc5MTVfcGNpX2RldmljZV90YWJsZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9wY2kuYzoyMzk6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIG10NzkxNV9oaWZfZGV2aWNlX3RhYmxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jLTI0MC1NT0RVTEVfRklSTVdBUkUoTVQ3OTE1X0ZJUk1XQVJFX1dBKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9zb2MuYz0xMjg3PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG10Nzk4eF93bWFjX29mX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmMtMTI5Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3NvYy5jOjEyOTM6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbXQ3OTh4X3dtYWNfb2ZfbWF0Y2gpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmMtMTI5NC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAwMzowODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0Njg3CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogNTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyBNVDc5MTUgQ2FwYWJpbGl0aWVzKioKCk9rYXksIHNvIEkgbmVlZCB0byBnZXQgYSBoYW5kbGUgb24gdGhlIE1UNzkxNSYjMzk7cyBjYXBhYmlsaXRpZXMuIE15IGluaXRpYWwgcXVlc3Rpb24gaXMgd2hldGhlciB0aGlzIHRoaW5nIGlzIGxpbWl0ZWQgdG8gUENJZS9Tb0MgaW50ZWdyYXRpb24gb3IgaWYgaXQmIzM5O3MgbW9yZSBmbGV4aWJsZSwgcG9zc2libHkgc3VwcG9ydGluZyBVU0Igb3IgZXZlbiBzb21lIGZvcm0gb2YgdmlydHVhbGl6YXRpb24uIFRoZSBkb2N1bWVudGF0aW9uIGlzIGFsd2F5cyBhIHN0YXJ0aW5nIHBvaW50LCBidXQgbGV0JiMzOTtzIGRpdmUgaW50byB0aGUgY29kZSBkaXJlY3RseS4KCkZpcnN0LCBJIG5lZWQgdG8gZ2V0IGEgc29saWQgb3ZlcnZpZXcuIExldCYjMzk7cyBzZWUgd2hhdCYjMzk7cyBpbiB0aGF0IGRyaXZlciBkaXJlY3RvcnkuIEkmIzM5O2xsIGV4ZWN1dGUgYSBxdWljayBgbHNgIG9uIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9gLiBLbm93aW5nIHRoZSBmaWxlIHN0cnVjdHVyZSB3aWxsIGhlbHAgbWUgcXVpY2tseSBpZGVudGlmeSBrZXkgYXJlYXMgdG8gaW52ZXN0aWdhdGUgZnVydGhlci4gVGhpcyB3aWxsIGFsbG93IG1lIHRvIG5hcnJvdyBteSBmb2N1cyBhbmQgdW5kZXJzdGFuZCB0aGUgcG90ZW50aWFsIGludGVncmF0aW9uIHBhdGh3YXlzLiBGcm9tIHRoZXJlLCBJIGNhbiBkcmlsbCBkb3duIGludG8gdGhlIHJlbGV2YW50IG1vZHVsZXMgb3IgaGVhZGVyIGZpbGVzIHRvIGNvbmZpcm0gbXkgaW5pdGlhbCBoeXBvdGhlc2lzLiBMZXQmIzM5O3Mgc3RhcnQgZGlnZ2luZyEKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAwMzowODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmNvZGVzZWFyY2gtZGlyLWluZGV4PC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtEaXImIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlcyYjMzQ7OiBbCiAgICAmIzM0O2NvcmVkdW1wLmMmIzM0OywKICAgICYjMzQ7Y29yZWR1bXAuaCYjMzQ7LAogICAgJiMzNDtkZWJ1Z2ZzLmMmIzM0OywKICAgICYjMzQ7ZG1hLmMmIzM0OywKICAgICYjMzQ7ZWVwcm9tLmMmIzM0OywKICAgICYjMzQ7ZWVwcm9tLmgmIzM0OywKICAgICYjMzQ7aW5pdC5jJiMzNDssCiAgICAmIzM0O21hYy5jJiMzNDssCiAgICAmIzM0O21hYy5oJiMzNDssCiAgICAmIzM0O21haW4uYyYjMzQ7LAogICAgJiMzNDttY3UuYyYjMzQ7LAogICAgJiMzNDttY3UuaCYjMzQ7LAogICAgJiMzNDttbWlvLmMmIzM0OywKICAgICYjMzQ7bXQ3OTE1LmgmIzM0OywKICAgICYjMzQ7cGNpLmMmIzM0OywKICAgICYjMzQ7cmVncy5oJiMzNDssCiAgICAmIzM0O3NvYy5jJiMzNDssCiAgICAmIzM0O3Rlc3Rtb2RlLmMmIzM0OywKICAgICYjMzQ7dGVzdG1vZGUuaCYjMzQ7CiAgXSwKICAmIzM0O1N1YmRpcnMmIzM0OzogbnVsbAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMDM6MDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTExNAoJCQkJCQkJb3V0cHV0OiA1OAoJCQkJCQkJdGhvdWdodHM6IDU2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHN1bW1hcnksIGFzIGlmIEkgd2VyZSB0aGlua2luZyBpdDoKCioqRGlnZ2luZyBpbnRvIHRoZSBNVDc5MTUgVGhlcm1hbCBNYW5hZ2VtZW50KioKCk9rYXksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSB0aGVybWFsIG1hbmFnZW1lbnQgaW1wbGVtZW50YXRpb24gZm9yIHRoZSBNVDc5MTUgd2lyZWxlc3MgZHJpdmVyLiBMZXQmIzM5O3Mgc2VlLi4uSSYjMzk7bGwgc3RhcnQgYnkgY2hlY2tpbmcgdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmNgIGZpbGUuIFRoYXQmIzM5O3MgdGhlIGxvZ2ljYWwgcGxhY2UgdG8gbG9vayBmb3IgaW5pdGlhbGl6YXRpb24gYW5kIHVucmVnaXN0cmF0aW9uIHJvdXRpbmVzLiBJIHdhbnQgdG8gcGlucG9pbnQgd2hlcmUgYG10NzkxNV90aGVybWFsX2luaXRgIGFuZCBgbXQ3OTE1X3VucmVnaXN0ZXJfdGhlcm1hbGAgYXJlIGJlaW5nIGNhbGxlZCwgYXMgdGhhdCB3aWxsIGdpdmUgbWUgY29udGV4dCBmb3IgaG93IHRoZSB0aGVybWFsIGZlYXR1cmVzIGFyZSBlbmFibGVkIGFuZCBkaXNhYmxlZCB3aXRoaW4gdGhlIGRyaXZlciYjMzk7cyBsaWZlY3ljbGUuIFVuZGVyc3RhbmRpbmcgdGhlIGNhbGwgc2VxdWVuY2Ugd2lsbCBnaXZlIG1lIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIG92ZXJhbGwgdGhlcm1hbCBtYW5hZ2VtZW50IHN0cmF0ZWd5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDAzOjA4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210NzkxNV90aGVybWFsX2luaXR8bXQ3OTE1X3VucmVnaXN0ZXJfdGhlcm1hbCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9MTk1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZV9vcHMgbXQ3OTE1X3R6X29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTk4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjE5OTpzdGF0aWMgdm9pZCBtdDc5MTVfdW5yZWdpc3Rlcl90aGVybWFsKHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMjAwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMjE1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjIxNjpzdGF0aWMgaW50IG10NzkxNV90aGVybWFsX2luaXQoc3RydWN0IG10NzkxNV9waHkgKnBoeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0yMTcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0yNTktXHRpZiAocmV0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjI2MDpcdFx0bXQ3OTE1X3VucmVnaXN0ZXJfdGhlcm1hbChwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTI2MS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9NzMzPW10NzkxNV9yZWdpc3Rlcl9leHRfcGh5KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTc2NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzo3NjU6XHRyZXQgPSBtdDc5MTVfdGhlcm1hbF9pbml0KHBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtNzY2LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9MTIzNz1zdGF0aWMgdm9pZCBtdDc5MTVfdW5yZWdpc3Rlcl9leHRfcGh5KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTEyNDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MTI0NTpcdG10NzkxNV91bnJlZ2lzdGVyX3RoZXJtYWwocGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMjQ2LVx0bXQ3Nl91bnJlZ2lzdGVyX3BoeShtcGh5KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9MTI2MT1pbnQgbXQ3OTE1X3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMjk5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjEzMDA6XHRyZXQgPSBtdDc5MTVfdGhlcm1hbF9pbml0KFx1MDAyNmRldi1cdTAwM2VwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTEzMDEtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMzI5LXVucmVnX3RoZXJtYWw6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MTMzMDpcdG10NzkxNV91bnJlZ2lzdGVyX3RoZXJtYWwoXHUwMDI2ZGV2LVx1MDAzZXBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTMzMS11bnJlZ19kZXY6XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTEzNDE9dm9pZCBtdDc5MTVfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzkxNV9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTM0Ny1cdG10NzkxNV9jb3JlZHVtcF91bnJlZ2lzdGVyKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MTM0ODpcdG10NzkxNV91bnJlZ2lzdGVyX3RoZXJtYWwoXHUwMDI2ZGV2LVx1MDAzZXBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTM0OS1cdG10NzZfdW5yZWdpc3Rlcl9kZXZpY2UoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDAzOjA4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY1ODkKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAxOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkFuYWx5emluZyB0aGUgbXQ3OTE1X3JlZ2lzdGVyX2RldmljZSBDYWxsKioKCk9rYXksIHNvIEkgbmVlZCB0byBnZXQgYSBjbGVhciBwaWN0dXJlIG9mIGhvdyBgbXQ3OTE1X3JlZ2lzdGVyX2RldmljZWAgaXMgYWN0dWFsbHkgaW52b2tlZC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNhbGwgZ3JhcGggYW5kIHRoZSBzdXJyb3VuZGluZyBjb250ZXh0LiBTcGVjaWZpY2FsbHksIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgdGhlIGFyZ3VtZW50cyBpdCByZWNlaXZlcyDigJMgdGhpbmdzIGxpa2UgdGhlIGRldmljZSBzdHJ1Y3R1cmUsIGFueSBhc3NvY2lhdGVkIHJlc291cmNlcywgYW5kIHRoZSBzZXF1ZW5jaW5nIG9mIGV2ZW50cyBhcm91bmQgdGhhdCBjYWxsLiBJIHdhbnQgdG8gcGlucG9pbnQgd2hlcmUgaW4gdGhlIGluaXRpYWxpemF0aW9uIHByb2Nlc3MgdGhpcyByZWdpc3RyYXRpb24gaGFwcGVucywgd2hpY2ggZHJpdmVycyBtaWdodCBiZSBpbnZvbHZlZCwgYW5kIHdoYXQgZGVwZW5kZW5jaWVzIGFyZSBpbiBwbGF5LiBJJiMzOTttIGFsc28gY3VyaW91cyBhYm91dCBhbnkgZXJyb3IgaGFuZGxpbmcgdGhhdCBvY2N1cnMgYmVmb3JlIG9yIGFmdGVyIHRoaXMgY3J1Y2lhbCBmdW5jdGlvbi4gSXMgaXQgZ3VhcmRlZCBieSBhbnkgc3BlY2lmaWMgY29uZGl0aW9ucywgcGVyaGFwcyByZWxhdGVkIHRvIHBsYXRmb3JtIGRldGVjdGlvbiBvciByZXNvdXJjZSBhbGxvY2F0aW9uPyBUcmFjaW5nIHRoZSBjYWxsZXIgYW5kIGFueSBwb3RlbnRpYWwgY2FsbGVycy1vZi10aGUtY2FsbGVyIGlzIHdoYXQgSSYjMzk7bSBmb2N1c2VkIG9uIHRvIGJ1aWxkIGEgZnVsbCBtZW50YWwgbWFwLiBJIG5lZWQgdGhlIGJpZyBwaWN0dXJlIHRvIGF2b2lkIG1ha2luZyBhIGhhc3R5IGRpYWdub3Npcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMDM6MDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTE1X3JlZ2lzdGVyX2RldmljZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0xMjUwPXN0YXRpYyB2b2lkIG10NzkxNV9zdG9wX2hhcmR3YXJlKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTEyNjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MTI2MTppbnQgbXQ3OTE1X3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTEyNjIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oPTQ1Mz11MzIgbXQ3OTE1X3dlZF9pbml0X2J1Zih2b2lkICpwdHIsIGRtYV9hZGRyX3QgcGh5cywgaW50IHRva2VuX2lkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oLTQ1NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oOjQ1NTppbnQgbXQ3OTE1X3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oLTQ1Ni12b2lkIG10NzkxNV91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9wY2kuYz0xMDM9c3RhdGljIGludCBtdDc5MTVfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jLTE4MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jOjE4MjpcdHJldCA9IG10NzkxNV9yZWdpc3Rlcl9kZXZpY2UoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jLTE4My1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmM9MTIyMD1zdGF0aWMgaW50IG10Nzk4eF93bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmMtMTI2My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3NvYy5jOjEyNjQ6XHRyZXQgPSBtdDc5MTVfcmVnaXN0ZXJfZGV2aWNlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9zb2MuYy0xMjY1LVx0aWYgKHJldClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMDM6MDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzU1OQoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDQ2MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipXb3J0aEZ1enppbmcgRGVjaXNpb24gZm9yIE1UNzkxNSBEcml2ZXIqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gVGhlIGluc3RydWN0aW9ucyBzYXkgSSBzaG91bGQgcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmICphbGwqIG1vZGlmaWVkIGNvZGUgZmFsbHMgdW5kZXIgc3BlY2lmaWMgbmVnYXRpdmUgY3JpdGVyaWEuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIHRoZSBjaGFuZ2VzIHJlbGF0ZWQgdG8gYG10NzkxNWAgZmFsbCBpbnRvIG9uZSBvZiB0aG9zZSBjYXRlZ29yaWVzLiBGaXJzdCwgSSYjMzk7bSBnb2luZyB0byBjb25zdWx0IFNlY3Rpb24gMiwgd2hpY2ggb3V0bGluZXMgdGhlIG5lZ2F0aXZlIGNyaXRlcmlhIGZvciByZXR1cm5pbmcgYFdvcnRoRnV6emluZz1mYWxzZWAuCgpUaGUgbmVnYXRpdmUgY3JpdGVyaWEgdGhhdCBpcyByZWxldmFudCBpbiB0aGlzIGNhc2UgaXM6ICYjMzQ7U3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOiAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSYjMzQ7LgoKTm93LCBJIG5lZWQgdG8ga25vdyBpZiBgbXQ3OTE1YCBmaXRzIHRoYXQgZGVzY3JpcHRpb24uIEkga25vdyBgbXQ3OTE1YCByZWZlcnMgdG8gdGhlIE1lZGlhVGVrIE1UNzkxNSBXaS1GaSA2ICg4MDIuMTFheCkgY2hpcHNldCwgd2hpY2ggaXMgYSBQQ0llIG9yIFNvQyB3aXJlbGVzcyBjaGlwLiBUaGUga2V5IHF1ZXN0aW9uIGlzOiBpcyBpdCAqZW11bGF0ZWQqIGluIFFFTVU/IEFuZCwgZnJvbSBteSBrbm93bGVkZ2UsIEkmIzM5O20gcHJldHR5IHN1cmUgaXQmIzM5O3Mgbm90LiBGdXJ0aGVyLCBJIGNhbiBkb3VibGUgY2hlY2sgdGhhdCBpdCBkb2VzbiYjMzk7dCBoYXZlIGFueSBVU0IgZ2FkZ2V0IGludGVyZmFjZSBvciBtYWM4MDIxMV9od3NpbSBlbXVsYXRpb24uIE5vcGUsIGl0JiMzOTtzIGEgZGVkaWNhdGVkIGhhcmR3YXJlIGRyaXZlci4KClRoZXJlZm9yZSwgc2luY2UgSSBrbm93IHRoYXQgd2l0aG91dCB0aGUgcGh5c2ljYWwgTWVkaWFUZWsgTVQ3OTE1IFBDSWUgY2FyZCBvciBNZWRpYVRlayBTb0MgaGFyZHdhcmUsIGZ1bmN0aW9ucyBsaWtlIGBtdDc5MTVfcGNpX3Byb2JlYCwgYG10Nzk4eF93bWFjX3Byb2JlYCwgYW5kIGBtdDc5MTVfdGhlcm1hbF9pbml0YCBjYW4mIzM5O3QgZXZlbiBiZSByZWFjaGVkIGR1cmluZyBkZXZpY2UgaW5pdGlhbGl6YXRpb24sIEkmIzM5O20gY29uZmlkZW50IHRoYXQgdGhlc2UgY29kZSBwYXRocyBhcmUgKnN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSogaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50LgoKVG8gYmUgYWJzb2x1dGVseSBzdXJlLCBJJiMzOTttIGdvaW5nIHRvIHF1aWNrbHkgc2NhbiBLY29uZmlnIGZvciBhbnkgZXhjZXB0aW9ucywgYnV0IEkmIzM5O20gcHJldHR5IHN1cmUgdGhhdCBgbXQ3OTE1YCBzdHJpY3RseSBhcHBsaWVzIHRvIE1lZGlhVGVrIFBDSWUvU29DIGhhcmR3YXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAwMzowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtNVDc5MTUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNjA4IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlPTQ4PW9iai0kKENPTkZJR19NVDc2MTVfQ09NTU9OKSAmIzQzOz0gbXQ3NjE1L1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZTo0OTpvYmotJChDT05GSUdfTVQ3OTE1RSkgJiM0Mzs9IG10NzkxNS9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtNTAtb2JqLSQoQ09ORklHX01UNzkyMV9DT01NT04pICYjNDM7PSBtdDc5MjEvXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZzoyOmNvbmZpZyBNVDc5MTVFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9LY29uZmlnOjM6XHR0cmlzdGF0ZSBcJiMzNDtNZWRpYVRlayBNVDc5MTVFIChQQ0llKSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9LY29uZmlnLTQtXHRzZWxlY3QgTVQ3Nl9DT05OQUNfTElCXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZy05LVx0aGVscFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZzoxMDpcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIE1UNzkxNS1iYXNlZCBQQ0llIHdpcmVsZXNzIGRldmljZXMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9LY29uZmlnLTExLVx0ICB3aGljaCBzdXBwb3J0IGNvbmN1cnJlbnQgZHVhbC1iYW5kIG9wZXJhdGlvbiBhdCBib3RoIDVHSHpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9LY29uZmlnPTE3PWNvbmZpZyBNVDc5OFhfV01BQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZy0xOC1cdGJvb2wgXCYjMzQ7TVQ3OTh4IChTb0MpIFdNQUMgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZzoxOTpcdGRlcGVuZHMgb24gTVQ3OTE1RVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZy0yMC1cdGRlcGVuZHMgb24gQVJDSF9NRURJQVRFSyB8fCBDT01QSUxFX1RFU1Rcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9LY29uZmlnLTIzLVx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgdGhlIGJ1aWx0LWluIFdNQUMgb24gTVQ3OTgxIGFuZCBNVDc5ODYgU29DIGRldmljZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZzoyNDpcdCAgd2hpY2ggaGFzIHRoZSBzYW1lIGZlYXR1cmUgc2V0IGFzIGEgTVQ3OTE1LCBidXQgZW5hYmxlcyA2RVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZy0yNS1cdCAgc3VwcG9ydC5cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9NYWtlZmlsZS0yLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfTVQ3OTE1RSkgJiM0Mzs9IG10NzkxNWUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvTWFrZWZpbGUtNC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kZWJ1Z2ZzLmM9OTgzPW10NzkxNV9yYXRlX3R4cG93ZXJfZ2V0KHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNlciAqdXNlcl9idWYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZGVidWdmcy5jLTk4Ny1cdHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYgPSBwaHktXHUwMDNlZGV2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZGVidWdmcy5jOjk4ODpcdHM4IHR4cHdyW01UNzkxNV9TS1VfUkFURV9OVU1dO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZGVidWdmcy5jLTk4OS1cdHN0YXRpYyBjb25zdCBzaXplX3Qgc3ogPSAyMDQ4O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RlYnVnZnMuYz0xMTYxPW10NzkxNV9wYXRoX3R4cG93ZXJfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZGVidWdmcy5jLTExNjMtXHRzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5ID0gZmlsZS1cdTAwM2Vwcml2YXRlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZGVidWdmcy5jOjExNjQ6XHRzOCB0eHBvd2VyW01UNzkxNV9TS1VfUEFUSF9OVU1dLCAqYnVmID0gdHhwb3dlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RlYnVnZnMuYy0xMTY1LVx0aW50IHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYz00MT1zdGF0aWMgdm9pZCBtdDc5MTVfZG1hX2NvbmZpZyhzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTU1LVx0XHRSWFFfQ09ORklHKE1UX1JYUV9NQUlOLCBXRkRNQTAsIE1UX0lOVF9SWF9ET05FX0JBTkQwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTY6XHRcdFx0ICAgTVQ3OTE1X1JYUV9CQU5EMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01Ny1cdFx0UlhRX0NPTkZJRyhNVF9SWFFfTUNVLCBXRkRNQTEsIE1UX0lOVF9SWF9ET05FX1dNLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTg6XHRcdFx0ICAgTVQ3OTE1X1JYUV9NQ1VfV00pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNTktXHRcdFJYUV9DT05GSUcoTVRfUlhRX01DVV9XQSwgV0ZETUExLCBNVF9JTlRfUlhfRE9ORV9XQSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjYwOlx0XHRcdCAgIE1UNzkxNV9SWFFfTUNVX1dBKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTYxLVx0XHRSWFFfQ09ORklHKE1UX1JYUV9CQU5EMSwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9CQU5EMSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjYyOlx0XHRcdCAgIE1UNzkxNV9SWFFfQkFORDEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNjMtXHRcdFJYUV9DT05GSUcoTVRfUlhRX0JBTkQxX1dBLCBXRkRNQTEsIE1UX0lOVF9SWF9ET05FX1dBX0VYVCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjY0Olx0XHRcdCAgIE1UNzkxNV9SWFFfTUNVX1dBX0VYVCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy02NS1cdFx0UlhRX0NPTkZJRyhNVF9SWFFfTUFJTl9XQSwgV0ZETUExLCBNVF9JTlRfUlhfRE9ORV9XQV9NQUlOLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NjY6XHRcdFx0ICAgTVQ3OTE1X1JYUV9NQ1VfV0EpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6Njc6XHRcdFRYUV9DT05GSUcoMCwgV0ZETUExLCBNVF9JTlRfVFhfRE9ORV9CQU5EMCwgTVQ3OTE1X1RYUV9CQU5EMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo2ODpcdFx0VFhRX0NPTkZJRygxLCBXRkRNQTEsIE1UX0lOVF9UWF9ET05FX0JBTkQxLCBNVDc5MTVfVFhRX0JBTkQxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTY5LVx0XHRNQ1VRX0NPTkZJRyhNVF9NQ1VRX1dNLCBXRkRNQTEsIE1UX0lOVF9UWF9ET05FX01DVV9XTSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjcwOlx0XHRcdCAgICBNVDc5MTVfVFhRX01DVV9XTSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy03MS1cdFx0TUNVUV9DT05GSUcoTVRfTUNVUV9XQSwgV0ZETUExLCBNVF9JTlRfVFhfRE9ORV9NQ1VfV0EsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo3MjpcdFx0XHQgICAgTVQ3OTE1X1RYUV9NQ1VfV0EpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNzMtXHRcdE1DVVFfQ09ORklHKE1UX01DVVFfRldETCwgV0ZETUExLCBNVF9JTlRfVFhfRE9ORV9GV0RMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NzQ6XHRcdFx0ICAgIE1UNzkxNV9UWFFfRldETCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy03NS1cdH0gZWxzZSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtODAtXHRcdE1DVVFfQ09ORklHKE1UX01DVVFfV00sIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfTUNVX1dNLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6ODE6XHRcdFx0ICAgIE1UNzkxNV9UWFFfTUNVX1dNKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTgyLVx0XHRNQ1VRX0NPTkZJRyhNVF9NQ1VRX1dBLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX01DVV9XQV9NVDc5MTYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo4MzpcdFx0XHQgICAgTVQ3OTE1X1RYUV9NQ1VfV0EpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtODQtXHRcdE1DVVFfQ09ORklHKE1UX01DVVFfRldETCwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9GV0RMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6ODU6XHRcdFx0ICAgIE1UNzkxNV9UWFFfRldETCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy04Ni1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy0xMDItXHRcdFx0VFhRX0NPTkZJRygwLCBXRkRNQTAsIE1UX0lOVF9XRURfVFhfRE9ORV9CQU5EMCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjEwMzpcdFx0XHRcdCAgIE1UNzkxNV9UWFFfQkFORDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtMTA0LVx0XHRcdFRYUV9DT05GSUcoMSwgV0ZETUEwLCBNVF9JTlRfV0VEX1RYX0RPTkVfQkFORDEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzoxMDU6XHRcdFx0XHQgICBNVDc5MTVfVFhRX0JBTkQxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTEwNi1cdFx0fSBlbHNlIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy0xMTUtXHRcdFx0VFhRX0NPTkZJRygwLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6MTE2Olx0XHRcdFx0ICAgTVQ3OTE1X1RYUV9CQU5EMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy0xMTctXHRcdFx0VFhRX0NPTkZJRygxLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6MTE4Olx0XHRcdFx0ICAgTVQ3OTE1X1RYUV9CQU5EMSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy0xMTktXHRcdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYz00MDg9aW50IG10NzkxNV9kbWFfaW5pdChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5Milcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy00NDUtXHRcdFx0XHQgICAgTVRfVFhRX0lEKGRldi1cdTAwM2VwaHkubXQ3Ni1cdTAwM2ViYW5kX2lkeCksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo0NDY6XHRcdFx0XHQgICAgTVQ3OTE1X1RYX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTQ0Ny1cdFx0XHRcdCAgICBNVF9UWFFfUklOR19CQVNFKDApKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy00NTMtXHRcdFx0XHRcdCAgICBNVF9UWFFfSUQocGh5Mi1cdTAwM2VtdDc2LVx1MDAzZWJhbmRfaWR4KSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjQ1NDpcdFx0XHRcdFx0ICAgIE1UNzkxNV9UWF9SSU5HX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy00NTUtXHRcdFx0XHRcdCAgICBNVF9UWFFfUklOR19CQVNFKDEpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy00NjItXHRcdFx0XHQgIE1UX01DVVFfSUQoTVRfTUNVUV9XTSksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo0NjM6XHRcdFx0XHQgIE1UNzkxNV9UWF9NQ1VfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNDY0LVx0XHRcdFx0ICBNVF9NQ1VRX1JJTkdfQkFTRShNVF9NQ1VRX1dNKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNDcwLVx0XHRcdFx0ICBNVF9NQ1VRX0lEKE1UX01DVVFfV0EpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NDcxOlx0XHRcdFx0ICBNVDc5MTVfVFhfTUNVX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTQ3Mi1cdFx0XHRcdCAgTVRfTUNVUV9SSU5HX0JBU0UoTVRfTUNVUV9XQSkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTQ3OC1cdFx0XHRcdCAgTVRfTUNVUV9JRChNVF9NQ1VRX0ZXREwpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NDc5Olx0XHRcdFx0ICBNVDc5MTVfVFhfRldETF9SSU5HX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy00ODAtXHRcdFx0XHQgIE1UX01DVVFfUklOR19CQVNFKE1UX01DVVFfRldETCkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTQ4Ni1cdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9NQ1UpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NDg3Olx0XHRcdCAgICAgICBNVDc5MTVfUlhfTUNVX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTQ4OC1cdFx0XHQgICAgICAgTVRfUlhfQlVGX1NJWkUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNDk1LVx0XHR3YV9yeF9iYXNlID0gTVRfV0VEX1JYX1JJTkdfQkFTRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjQ5NjpcdFx0d2FfcnhfaWR4ID0gTVQ3OTE1X1JYUV9NQ1VfV0E7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy00OTctXHRcdG1kZXYtXHUwMDNlcV9yeFtNVF9SWFFfTUNVX1dBXS5mbGFncyA9IE1UX1dFRF9RX1RYRlJFRTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01MDMtXHRyZXQgPSBtdDc2X3F1ZXVlX2FsbG9jKGRldiwgXHUwMDI2ZGV2LVx1MDAzZW10NzYucV9yeFtNVF9SWFFfTUNVX1dBXSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjUwNDpcdFx0XHQgICAgICAgd2FfcnhfaWR4LCBNVDc5MTVfUlhfTUNVX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTUwNS1cdFx0XHQgICAgICAgTVRfUlhfQlVGX1NJWkUsIHdhX3J4X2Jhc2UpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTUxMy1cdFx0XHRtZGV2LVx1MDAzZXFfcnhbTVRfUlhRX01BSU5dLmZsYWdzID1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjUxNDpcdFx0XHRcdE1UX1dFRF9RX1JYKE1UNzkxNV9SWFFfQkFORDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTE1Olx0XHRcdGRldi1cdTAwM2VtdDc2LnJ4X3Rva2VuX3NpemUgJiM0Mzs9IE1UNzkxNV9SWF9SSU5HX1NJWkU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01MTYtXHRcdFx0bWRldi1cdTAwM2VxX3J4W01UX1JYUV9NQUlOXS53ZWQgPSBcdTAwMjZtZGV2LVx1MDAzZW1taW8ud2VkO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTUyMC1cdFx0XHRcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX01BSU4pLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTIxOlx0XHRcdFx0ICAgICAgIE1UNzkxNV9SWF9SSU5HX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01MjItXHRcdFx0XHQgICAgICAgTVRfUlhfQlVGX1NJWkUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNTM3LVx0XHRcdFx0d2FfcnhfYmFzZSA9ICBNVF9XRURfUlhfUklOR19CQVNFO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTM4Olx0XHRcdFx0d2FfcnhfaWR4ID0gTVQ3OTE1X1JYUV9NQ1VfV0E7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01MzktXHRcdFx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTU0Mi1cdFx0cmV0ID0gbXQ3Nl9xdWV1ZV9hbGxvYyhkZXYsIFx1MDAyNmRldi1cdTAwM2VtdDc2LnFfcnhbTVRfUlhRX01BSU5fV0FdLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTQzOlx0XHRcdFx0ICAgICAgIHdhX3J4X2lkeCwgTVQ3OTE1X1JYX01DVV9SSU5HX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01NDQtXHRcdFx0XHQgICAgICAgTVRfUlhfQlVGX1NJWkUsIHdhX3J4X2Jhc2UpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTU1Mi1cdFx0XHRtZGV2LVx1MDAzZXFfcnhbTVRfUlhRX0JBTkQxXS5mbGFncyA9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo1NTM6XHRcdFx0XHRNVF9XRURfUV9SWChNVDc5MTVfUlhRX0JBTkQxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjU1NDpcdFx0XHRkZXYtXHUwMDNlbXQ3Ni5yeF90b2tlbl9zaXplICYjNDM7PSBNVDc5MTVfUlhfUklOR19TSVpFO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNTU1LVx0XHRcdG1kZXYtXHUwMDNlcV9yeFtNVF9SWFFfQkFORDFdLndlZCA9IFx1MDAyNm1kZXYtXHUwMDNlbW1pby53ZWQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNTYwLVx0XHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfQkFORDEpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTYxOlx0XHRcdFx0ICAgICAgIE1UNzkxNV9SWF9SSU5HX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01NjItXHRcdFx0XHQgICAgICAgTVRfUlhfQlVGX1NJWkUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNTY5LVx0XHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfQkFORDFfV0EpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTcwOlx0XHRcdFx0ICAgICAgIE1UNzkxNV9SWF9NQ1VfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNTcxLVx0XHRcdFx0ICAgICAgIE1UX1JYX0JVRl9TSVpFLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2VlcHJvbS5jPTY3PXN0YXRpYyBjaGFyICptdDc5MTVfZWVwcm9tX25hbWUoc3RydWN0IG10NzkxNV9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9lZXByb20uYy03MS1cdFx0cmV0dXJuIGRldi1cdTAwM2VkYmRjX3N1cHBvcnQgP1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmM6NzI6XHRcdCAgICAgICBNVDc5MTVfRUVQUk9NX0RFRkFVTFRfREJEQyA6IE1UNzkxNV9FRVBST01fREVGQVVMVDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2VlcHJvbS5jLTczLVx0Y2FzZSAweDc5ODE6XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmM9MTIzPXN0YXRpYyBpbnQgbXQ3OTE1X2VlcHJvbV9sb2FkKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmMtMTM2LVx0XHR1MzIgYmxvY2tfbnVtLCBpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmM6MTM3Olx0XHR1MzIgZWVwcm9tX2Jsa19zaXplID0gTVQ3OTE1X0VFUFJPTV9CTE9DS19TSVpFO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmMtMTM4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2VlcHJvbS5jPTM2Mz1tdDc5MTVfZWVwcm9tX2hhc19iYWNrZ3JvdW5kX3JhZGFyKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9lZXByb20uYy0zNjQte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmM6MzY1Olx0dTggdmFsLCBidWZbTVQ3OTE1X0VFUFJPTV9CTE9DS19TSVpFXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2VlcHJvbS5jLTM2Ni1cdHU4IGJhbmRfc2VsLCB0eF9wYXRoLCByeF9wYXRoO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2VlcHJvbS5jLTM3Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2VlcHJvbS5jOjM3NzpcdFx0dmFsID0gYnVmW29mZnMgJSBNVDc5MTVfRUVQUk9NX0JMT0NLX1NJWkVdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmMtMzc4LVx0XHRiYW5kX3NlbCA9IHU4X2dldF9iaXRzKHZhbCwgTVRfRUVfV0lGSV9DT05GMF9CQU5EX1NFTCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmgtMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2VlcHJvbS5oOjQ6I2lmbmRlZiBfX01UNzkxNV9FRVBST01fSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmg6NTojZGVmaW5lIF9fTVQ3OTE1X0VFUFJPTV9IXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9lZXByb20uaC02LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0xNT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBpZl9saW1pdHNbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMjUtXHR9LCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MjY6XHRcdC5tYXggPSBNVDc5MTVfTUFYX0lOVEVSRkFDRVMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMjctXHRcdC50eXBlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9TVEFUSU9OKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0zMT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9jb21iaW5hdGlvbiBpZl9jb21iW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTM0LVx0XHQubl9saW1pdHMgPSBBUlJBWV9TSVpFKGlmX2xpbWl0cyksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MzU6XHRcdC5tYXhfaW50ZXJmYWNlcyA9IE1UNzkxNV9NQVhfSU5URVJGQUNFUyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0zNi1cdFx0Lm51bV9kaWZmZXJlbnRfY2hhbm5lbHMgPSAxLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz03ND1zdGF0aWMgc3NpemVfdCBtdDc5MTVfdGhlcm1hbF90ZW1wX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtODgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6ODk6XHRpZiAoKGkgLSAxID09IE1UNzkxNV9DUklUX1RFTVBfSURYIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjkwOlx0ICAgICB2YWwgXHUwMDNlIHBoeS1cdTAwM2V0aHJvdHRsZV90ZW1wW01UNzkxNV9NQVhfVEVNUF9JRFhdKSB8fFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjkxOlx0ICAgIChpIC0gMSA9PSBNVDc5MTVfTUFYX1RFTVBfSURYIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjkyOlx0ICAgICB2YWwgXHUwMDNjIHBoeS1cdTAwM2V0aHJvdHRsZV90ZW1wW01UNzkxNV9DUklUX1RFTVBfSURYXSkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy05My1cdFx0ZGV2X2VycihwaHktXHUwMDNlZGV2LVx1MDAzZW10NzYuZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0xMjM9bXQ3OTE1X3RoZXJtYWxfZ2V0X21heF90aHJvdHRsZV9zdGF0ZShzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZSAqY2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTI1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoxMjY6XHQqc3RhdGUgPSBNVDc5MTVfQ0RFVl9USFJPVFRMRV9NQVg7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTI3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0xNDM9bXQ3OTE1X3RoZXJtYWxfc2V0X2N1cl90aHJvdHRsZV9zdGF0ZShzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZSAqY2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTQ2LVx0c3RydWN0IG10NzkxNV9waHkgKnBoeSA9IGNkZXYtXHUwMDNlZGV2ZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoxNDc6XHR1OCB0aHJvdHRsaW5nID0gTVQ3OTE1X1RIRVJNQUxfVEhST1RUTEVfTUFYIC0gc3RhdGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTQ4LVx0aW50IHJldDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xNDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MTUwOlx0aWYgKHN0YXRlIFx1MDAzZSBNVDc5MTVfQ0RFVl9USFJPVFRMRV9NQVgpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xNTEtXHRcdGRldl9lcnIocGh5LVx1MDAzZWRldi1cdTAwM2VtdDc2LmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9MjE2PXN0YXRpYyBpbnQgbXQ3OTE1X3RoZXJtYWxfaW5pdChzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0yMzgtXHQvKiBpbml0aWFsaXplIGNyaXRpY2FsL21heGltdW0gaGlnaCB0ZW1wZXJhdHVyZSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjIzOTpcdHBoeS1cdTAwM2V0aHJvdHRsZV90ZW1wW01UNzkxNV9DUklUX1RFTVBfSURYXSA9IE1UNzkxNV9DUklUX1RFTVA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MjQwOlx0cGh5LVx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTE1X01BWF9URU1QX0lEWF0gPSBNVDc5MTVfTUFYX1RFTVA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMjQxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0zMjQ9c3RhdGljIHZvaWQgX19tdDc5MTVfaW5pdF90eHBvd2VyKHN0cnVjdCBtdDc5MTVfcGh5ICpwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTM1MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzozNTI6XHRcdC8qIE1UNzkxNU4gY2FuIG5vdCBlbmFibGUgQmFja29mZiB0YWJsZSB3aXRob3V0IHNldHRpbmcgdmFsdWUgaW4gZHRzICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMzUzLVx0XHRpZiAoIWxpbWl0cy5wYXRoLm9mZG1bMF0pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTUyNT1tdDc5MTVfbWFjX2luaXRfYmFuZChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCB1OCBiYW5kKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy01NzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6NTcxOlx0LyogZXhjbHVkZSBlc3RpbWF0ZWQgYmFja29mZiB0aW1lIGZvciBUeCBkdXJhdGlvbiBvbiBNVDc5MTUgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy01NzItXHRpZiAoaXNfbXQ3OTE1KFx1MDAyNmRldi1cdTAwM2VtdDc2KSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9ODY5PW10NzkxNV9pbml0X2hhcmR3YXJlKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkyKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy04OTgtXHQvKiBCZWFjb24gYW5kIG1nbXQgZnJhbWVzIHNob3VsZCBvY2N1cHkgd2NpZCAwICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6ODk5Olx0aWR4ID0gbXQ3Nl93Y2lkX2FsbG9jKGRldi1cdTAwM2VtdDc2LndjaWRfbWFzaywgTVQ3OTE1X1dUQkxfU1RBKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy05MDAtXHRpZiAoaWR4KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jPTExMjU9dm9pZCBtdDc5MTVfbWFjX3NldF90aW1pbmcoc3RydWN0IG10NzkxNV9waHkgKnBoeSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy0xMTc0LVx0aWYgKHBoeS1cdTAwM2VzbG90dGltZSBcdTAwM2MgMjAgfHwgYV9iYW5kKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM6MTE3NTpcdFx0dmFsID0gTVQ3OTE1X0NGRU5EX1JBVEVfREVGQVVMVDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTExNzYtXHRlbHNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYzoxMTc3Olx0XHR2YWwgPSBNVDc5MTVfQ0ZFTkRfUkFURV8xMUI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy0xMTc4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jPTEyNDM9bXQ3OTE1X3dhaXRfcmVzZXRfc3RhdGUoc3RydWN0IG10NzkxNV9kZXYgKmRldiwgdTMyIHN0YXRlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTEyNDgtXHRcdFx0XHQgKFJFQURfT05DRShkZXYtXHUwMDNlcmVjb3Zlcnkuc3RhdGUpIFx1MDAyNiBzdGF0ZSksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYzoxMjQ5Olx0XHRcdFx0IE1UNzkxNV9SRVNFVF9USU1FT1VUKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTEyNTAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM9MTQyNT1tdDc5MTVfbWFjX2Z1bGxfcmVzZXQoc3RydWN0IG10NzkxNV9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy0xNDY1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM6MTQ2NjpcdGkgPSBtdDc2X3djaWRfYWxsb2MoZGV2LVx1MDAzZW10NzYud2NpZF9tYXNrLCBNVDc5MTVfV1RCTF9TVEEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMTQ2Ny1cdGRldi1cdTAwM2VtdDc2Lmdsb2JhbF93Y2lkLmlkeCA9IGk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM9MTQ4Mj12b2lkIG10NzkxNV9tYWNfcmVzZXRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMTU5Ni1cdGllZWU4MDIxMV9xdWV1ZV9kZWxheWVkX3dvcmsobXQ3Nl9odyhkZXYpLCBcdTAwMjZkZXYtXHUwMDNlbXBoeS5tYWNfd29yayxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jOjE1OTc6XHRcdFx0XHQgICAgIE1UNzkxNV9XQVRDSERPR19USU1FKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTE1OTgtXHRpZiAocGh5Milcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy0xNjAwLVx0XHRcdFx0XHQgICAgIFx1MDAyNnBoeTItXHUwMDNlbXQ3Ni1cdTAwM2VtYWNfd29yayxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jOjE2MDE6XHRcdFx0XHRcdCAgICAgTVQ3OTE1X1dBVENIRE9HX1RJTUUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMTYwMi19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM9MjAwNj12b2lkIG10NzkxNV9tYWNfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMjAzMi1cdGllZWU4MDIxMV9xdWV1ZV9kZWxheWVkX3dvcmsobXBoeS1cdTAwM2VodywgXHUwMDI2bXBoeS1cdTAwM2VtYWNfd29yayxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jOjIwMzM6XHRcdFx0XHQgICAgIE1UNzkxNV9XQVRDSERPR19USU1FKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTIwMzQtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jPTIyNjg9bXQ3OTE1X21hY190d3RfcGFyYW1fZXF1YWwoc3RydWN0IG10NzkxNV9zdGEgKm1zdGEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMjI3NS1cdGV4cCA9IEZJRUxEX0dFVChJRUVFODAyMTFfVFdUX1JFUVRZUEVfV0FLRV9JTlRfRVhQLCB0eXBlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jOjIyNzY6XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBNVDc5MTVfTUFYX1NUQV9UV1RfQUdSVDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTIyNzctXHRcdHN0cnVjdCBtdDc5MTVfdHd0X2Zsb3cgKmY7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM9MjI5NT12b2lkIG10NzkxNV9tYWNfYWRkX3R3dF9zZXR1cChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy0yMzEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM6MjMxNDpcdGlmIChkZXYtXHUwMDNldHd0Lm5fYWdydCA9PSBNVDc5MTVfTUFYX1RXVF9BR1JUKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMjMxNS1cdFx0Z290byB1bmxvY2s7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMjMxOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jOjIzMjA6XHRpZiAodHd0X2FncnQtXHUwMDNlbWluX3R3dF9kdXIgXHUwMDNjIE1UNzkxNV9NSU5fVFdUX0RVUikge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMjMyMS1cdFx0c2V0dXBfY21kID0gVFdUX1NFVFVQX0NNRF9ESUNUQVRFO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM6MjMyMjpcdFx0dHd0X2FncnQtXHUwMDNlbWluX3R3dF9kdXIgPSBNVDc5MTVfTUlOX1RXVF9EVVI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy0yMzIzLVx0XHRnb3RvIHVubG9jaztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuaC0zLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmg6NDojaWZuZGVmIF9fTVQ3OTE1X01BQ19IXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuaDo1OiNkZWZpbmUgX19NVDc5MTVfTUFDX0hcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5oLTYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jPTIzPWludCBtdDc5MTVfcnVuKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy02MC1cdHJldCA9IG10NzkxNV9tY3Vfc2V0X3RoZXJtYWxfdGhyb3R0bGluZyhwaHksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6NjE6XHRcdFx0XHRcdFx0TVQ3OTE1X1RIRVJNQUxfVEhST1RUTEVfTUFYKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy02Mi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtNzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6NzE6XHRyZXQgPSBtdDc2X2Nvbm5hY19tY3Vfc2V0X3J0c190aHJlc2goXHUwMDI2ZGV2LVx1MDAzZW10NzYsIE1UNzkxNV9SVFNfTEVOX1RIUkVTLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTcyLVx0XHRcdFx0XHQgICAgIHBoeS1cdTAwM2VtdDc2LVx1MDAzZWJhbmRfaWR4KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtODctXHRcdGllZWU4MDIxMV9xdWV1ZV9kZWxheWVkX3dvcmsoaHcsIFx1MDAyNnBoeS1cdTAwM2VtdDc2LVx1MDAzZW1hY193b3JrLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jOjg4Olx0XHRcdFx0XHQgICAgIE1UNzkxNV9XQVRDSERPR19USU1FKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy04OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM9MjA0PXN0YXRpYyBpbnQgbXQ3OTE1X2FkZF9pbnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTIyMi1cdG12aWYtXHUwMDNlbXQ3Ni5pZHggPSBfX2ZmczY0KH5kZXYtXHUwMDNlbXQ3Ni52aWZfbWFzayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6MjIzOlx0aWYgKG12aWYtXHUwMDNlbXQ3Ni5pZHggXHUwMDNlPSAoTVQ3OTE1X01BWF9JTlRFUkZBQ0VTIFx1MDAzY1x1MDAzYyBkZXYtXHUwMDNlZGJkY19zdXBwb3J0KSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTIyNC1cdFx0cmV0ID0gLUVOT1NQQztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM9MzMzPWludCBtdDc5MTVfc2V0X2NoYW5uZWwoc3RydWN0IG10NzZfcGh5ICptcGh5KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0zNTktXHRcdFx0XHRcdCAgICAgXHUwMDI2cGh5LVx1MDAzZW10NzYtXHUwMDNlbWFjX3dvcmssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6MzYwOlx0XHRcdFx0XHQgICAgIE1UNzkxNV9XQVRDSERPR19USU1FKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0zNjEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jPTc1Mj1pbnQgbXQ3OTE1X21hY19zdGFfYWRkKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtNzYwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jOjc2MTpcdGlkeCA9IG10NzZfd2NpZF9hbGxvYyhkZXYtXHUwMDNlbXQ3Ni53Y2lkX21hc2ssIE1UNzkxNV9XVEJMX1NUQSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtNzYyLVx0aWYgKGlkeCBcdTAwM2MgMClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM9MTM1OD1zdGF0aWMgY29uc3QgY2hhciBtdDc5MTVfZ3N0cmluZ3Nfc3RhdHNbXVtFVEhfR1NUUklOR19MRU5dID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0xNDkyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jOjE0OTM6I2RlZmluZSBNVDc5MTVfU1NUQVRTX0xFTiBBUlJBWV9TSVpFKG10NzkxNV9nc3RyaW5nc19zdGF0cylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0xNDk0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYz0xNTEwPWludCBtdDc5MTVfZ2V0X2V0X3NzZXRfY291bnQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTE1MTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6MTUxNjpcdHJldHVybiBNVDc5MTVfU1NUQVRTX0xFTiAmIzQzOyBwYWdlX3Bvb2xfZXRodG9vbF9zdGF0c19nZXRfY291bnQoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0xNTE3LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM9MTUzMT12b2lkIG10NzkxNV9nZXRfZXRfc3RhdHMoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTE2NTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6MTY1OTpcdHN0YXRzX3NpemUgPSBNVDc5MTVfU1NUQVRTX0xFTiAmIzQzOyBwYWdlX3Bvb2xfZXRodG9vbF9zdGF0c19nZXRfY291bnQoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0xNjYwLVx0aWYgKGVpICE9IHN0YXRzX3NpemUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jPTE3NjY9bXQ3OTE1X3JlY29uZmlnX2NvbXBsZXRlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0xNzcyLVx0aWVlZTgwMjExX3F1ZXVlX2RlbGF5ZWRfd29yayhodywgXHUwMDI2cGh5LVx1MDAzZW10NzYtXHUwMDNlbWFjX3dvcmssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6MTc3MzpcdFx0XHRcdCAgICAgTVQ3OTE1X1dBVENIRE9HX1RJTUUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTE3NzQtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTEzLVx0Y2FzZSAweDc5MTU6XHRcdFx0XHRcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjE0Olx0XHRfZncgPSBNVDc5MTVfIyNuYW1lO1x0XHRcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTE1LVx0XHRicmVhaztcdFx0XHRcdFx0XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jPTcwOT1pbnQgbXQ3OTE1X21jdV9hZGRfYnNzX2luZm8oc3RydWN0IG10NzkxNV9waHkgKnBoeSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy03MjEtXHRza2IgPSBfX210NzZfY29ubmFjX21jdV9hbGxvY19zdGFfcmVxKFx1MDAyNmRldi1cdTAwM2VtdDc2LCBcdTAwMjZtdmlmLVx1MDAzZW10NzYsIE5VTEwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzo3MjI6XHRcdFx0XHRcdCAgICAgIE1UNzkxNV9CU1NfVVBEQVRFX01BWF9TSVpFKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTcyMy1cdGlmIChJU19FUlIoc2tiKSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYz0xMTI5PW10NzkxNV9tY3Vfc3RhX3NvdW5kaW5nX3JhdGUoc3RydWN0IHN0YV9yZWNfYmYgKmJmKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTExMzItXHRiZi1cdTAwM2VuZHBfcmF0ZSA9IDA7XHRcdFx0XHQvKiBtY3MwICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzoxMTMzOlx0YmYtXHUwMDNlbmRwYV9yYXRlID0gTVQ3OTE1X0NGRU5EX1JBVEVfREVGQVVMVDtcdC8qIG9mZG0gMjRtICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzoxMTM0Olx0YmYtXHUwMDNlcmVwdF9wb2xsX3JhdGUgPSBNVDc5MTVfQ0ZFTkRfUkFURV9ERUZBVUxUO1x0Lyogb2ZkbSAyNG0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTExMzUtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jPTE5NzQ9bXQ3OTE1X21jdV9hZGRfaW5iYW5kX2Rpc2NvdihzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTE5OTctXHRyc2tiID0gX19tdDc2X2Nvbm5hY19tY3VfYWxsb2Nfc3RhX3JlcShcdTAwMjZkZXYtXHUwMDNlbXQ3NiwgXHUwMDI2bXZpZi1cdTAwM2VtdDc2LCBOVUxMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM6MTk5ODpcdFx0XHRcdFx0ICAgICAgIE1UNzkxNV9NQVhfQlNTX09GRkxPQURfU0laRSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0xOTk5LVx0aWYgKElTX0VSUihyc2tiKSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yMDI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM6MjAyODpcdGlmIChza2ItXHUwMDNlbGVuIFx1MDAzZSBNVDc5MTVfTUFYX0JFQUNPTl9TSVpFKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yMDI5LVx0XHRkZXZfZXJyKGRldi1cdTAwM2VtdDc2LmRldiwgXCYjMzQ7aW5iYW5kIGRpc2NvdmVyeSBzaXplIGxpbWl0IGV4Y2VlZFxcblwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM9MjA1Nz1pbnQgbXQ3OTE1X21jdV9hZGRfYmVhY29uKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTIwNjctXHRzdHJ1Y3QgYnNzX2luZm9fYmNuICpiY247XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzoyMDY4Olx0aW50IGxlbiA9IE1UNzkxNV9NQVhfQlNTX09GRkxPQURfU0laRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTIwNjktXHRib29sIGV4dF9waHkgPSBwaHkgIT0gXHUwMDI2ZGV2LVx1MDAzZXBoeTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yMDkxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM6MjA5MjpcdGlmIChza2ItXHUwMDNlbGVuIFx1MDAzZSBNVDc5MTVfTUFYX0JFQUNPTl9TSVpFKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yMDkzLVx0XHRkZXZfZXJyKGRldi1cdTAwM2VtdDc2LmRldiwgXCYjMzQ7QmNuIHNpemUgbGltaXQgZXhjZWVkXFxuXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYz0yMzYzPXN0YXRpYyBpbnQgbXQ3OTE1X3JlZF9zZXRfd2F0ZXJtYXJrKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMjM3OC1cdFx0LmxlbiA9IGNwdV90b19sZTE2KHNpemVvZihyZXEpIC0gc2l6ZW9mKHJlcS5hcmdzKSksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzoyMzc5Olx0XHQuaGlnaF9tYXJrID0gY3B1X3RvX2xlMTYoTVQ3OTE1X0hXX1RPS0VOX1NJWkUgLSAyNTYpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM6MjM4MDpcdFx0Lmxvd19tYXJrID0gY3B1X3RvX2xlMTYoTVQ3OTE1X0hXX1RPS0VOX1NJWkUgLSAyNTYgLSAxNTM2KSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTIzODEtXHR9O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jPTI5MjA9aW50IG10NzkxNV9tY3VfZ2V0X2VlcHJvbShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCB1MzIgb2Zmc2V0LCB1OCAqcmVhZF9idWYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMjkyMy1cdFx0LmFkZHIgPSBjcHVfdG9fbGUzMihyb3VuZF9kb3duKG9mZnNldCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjI5MjQ6XHRcdFx0XHQgICAgTVQ3OTE1X0VFUFJPTV9CTE9DS19TSVpFKSksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yOTI1LVx0fTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yOTQwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM6Mjk0MTpcdFx0aWYgKGFkZHIgXHUwMDNlIGRldi1cdTAwM2VtdDc2LmVlcHJvbS5zaXplIC0gTVQ3OTE1X0VFUFJPTV9CTE9DS19TSVpFKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yOTQyLVx0XHRcdGRldl9rZnJlZV9za2Ioc2tiKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yOTQ2LVx0fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM6Mjk0NzpcdG1lbWNweShidWYsIHJlcy1cdTAwM2VkYXRhLCBNVDc5MTVfRUVQUk9NX0JMT0NLX1NJWkUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMjk0OC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYz0zMTc4PWludCBtdDc5MTVfbWN1X2dldF9jaGFuX21pYl9pbmZvKHN0cnVjdCBtdDc5MTVfcGh5ICpwaHksIGJvb2wgY2hhbl9zd2l0Y2gpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMzIyNS0jZGVmaW5lIF9fcmVzX3U2NChzKSBsZTY0X3RvX2NwdShyZXNbc10uZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjMyMjY6XHQvKiBzdWJ0cmFjdCBUeCBiYWNrb2ZmIHRpbWUgZnJvbSBUeCBkdXJhdGlvbiBmb3IgTVQ3OTE1ICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0zMjI3LVx0aWYgKGlzX210NzkxNShcdTAwMjZkZXYtXHUwMDNlbXQ3NikpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYz0zMzUxPWludCBtdDc5MTVfbWN1X3NldF90eHBvd2VyX2ZyYW1lKHN0cnVjdCBtdDc5MTVfcGh5ICpwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMzM3MS1cdGludCByZXQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzozMzcyOlx0czggdHhwb3dlcl9za3VbTVQ3OTE1X1NLVV9SQVRFX05VTV07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0zMzczLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jPTM0NDA9aW50IG10NzkxNV9tY3Vfc2V0X3R4cG93ZXJfc2t1KHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMzQ3MS1cdHNrYiA9IG10NzZfbWN1X21zZ19hbGxvYyhcdTAwMjZkZXYtXHUwMDNlbXQ3NiwgTlVMTCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjM0NzI6XHRcdFx0XHQgc2l6ZW9mKGhkcikgJiM0MzsgTVQ3OTE1X1NLVV9SQVRFX05VTSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0zNDczLVx0aWYgKCFza2IpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMzQ5OC1cdHNrYiA9IG10NzZfbWN1X21zZ19hbGxvYyhcdTAwMjZkZXYtXHUwMDNlbXQ3NiwgTlVMTCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjM0OTk6XHRcdFx0XHQgc2l6ZW9mKGhkcikgJiM0MzsgTVQ3OTE1X1NLVV9QQVRIX05VTSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0zNTAwLVx0aWYgKCFza2IpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM9MzU0Mz1pbnQgbXQ3OTE1X21jdV9nZXRfdHhwb3dlcl9za3Uoc3RydWN0IG10NzkxNV9waHkgKnBoeSwgczggKnR4cG93ZXIsIGludCBsZW4sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMzU2Ny1cdGlmIChjYXRlZ29yeSA9PSBUWF9QT1dFUl9JTkZPX1JBVEUpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjM1Njg6XHRcdHM4IHJlc1tNVDc5MTVfU0tVX1JBVEVfTlVNXVsyXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTM1NjktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM9NDAwMD1pbnQgbXQ3OTE1X21jdV9zZXRfcHJvdGVjdGlvbihzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTQwNDctXHRpZiAocnRzX3RocmVzaG9sZCA9PSAodTMyKS0xKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM6NDA0ODpcdFx0cHJvdC1cdTAwM2VydHNfbGVuX3RocmVzID0gY3B1X3RvX2xlMzIoTVQ3OTE1X1JUU19MRU5fVEhSRVMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtNDA0OS1cdGVsc2Vcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuaC0zLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1Lmg6NDojaWZuZGVmIF9fTVQ3OTE1X01DVV9IXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuaDo1OiNkZWZpbmUgX19NVDc5MTVfTUNVX0hcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oLTYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1Lmg9MTk2PXN0cnVjdCBtdDc5MTVfbWN1X3R4cG93ZXJfc2t1IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuaC0xOTktXHR1OCBiYW5kX2lkeDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oOjIwMDpcdHM4IHR4cG93ZXJfc2t1W01UNzkxNV9TS1VfUkFURV9OVU1dO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmgtMjAxLX0gX19wYWNrZWQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1Lmg9NTA4PWVudW0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oLTUyMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oOjUyNDojZGVmaW5lIE1UNzkxNV9NQVhfQkVBQ09OX1NJWkVcdFx0MTMwOFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1Lmg6NTI1OiNkZWZpbmUgTVQ3OTE1X0JFQUNPTl9VUERBVEVfU0laRVx0KHNpemVvZihzdHJ1Y3Qgc3RhX3JlcV9oZHIpICYjNDM7XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmgtNTI2LVx0XHRcdFx0XHQgc2l6ZW9mKHN0cnVjdCBic3NfaW5mb19iY24pICYjNDM7XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oLTUzMC1cdFx0XHRcdFx0IHNpemVvZihzdHJ1Y3QgYnNzX2luZm9fYmNuX2NvbnQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1Lmg6NTMxOiNkZWZpbmUgTVQ3OTE1X01BWF9CU1NfT0ZGTE9BRF9TSVpFXHQoTVQ3OTE1X01BWF9CRUFDT05fU0laRSAmIzQzO1x0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oOjUzMjpcdFx0XHRcdFx0IE1UNzkxNV9CRUFDT05fVVBEQVRFX1NJWkUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuaC01MzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuaDo1MzQ6I2RlZmluZSBNVDc5MTVfQlNTX1VQREFURV9NQVhfU0laRVx0KHNpemVvZihzdHJ1Y3Qgc3RhX3JlcV9oZHIpICYjNDM7XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmgtNTM1LVx0XHRcdFx0XHQgc2l6ZW9mKHN0cnVjdCBic3NfaW5mb19vbWFjKSAmIzQzO1x0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM9NjMzPWludCBtdDc5MTVfbW1pb193ZWRfaW5pdChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCB2b2lkICpwZGV2X3B0cixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtNjkxLVx0fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjY5MjpcdHdlZC1cdTAwM2V3bGFuLm5idWYgPSBNVDc5MTVfSFdfVE9LRU5fU0laRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy02OTMtXHR3ZWQtXHUwMDNld2xhbi50eF90Yml0WzBdID0gaXNfbXQ3OTE1KFx1MDAyNmRldi1cdTAwM2VtdDc2KSA/IDQgOiAzMDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtNjk1LVx0d2VkLVx1MDAzZXdsYW4udHhmcmVlX3RiaXQgPSBpc19tdDc5OHgoXHUwMDI2ZGV2LVx1MDAzZW10NzYpID8gMiA6IDE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6Njk2Olx0d2VkLVx1MDAzZXdsYW4udG9rZW5fc3RhcnQgPSBNVDc5MTVfVE9LRU5fU0laRSAtIHdlZC1cdTAwM2V3bGFuLm5idWY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtNjk3LVx0d2VkLVx1MDAzZXdsYW4ud2NpZF81MTIgPSAhaXNfbXQ3OTE1KFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtNjk5LVx0d2VkLVx1MDAzZXdsYW4ucnhfbmJ1ZiA9IDY1NTM2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjcwMDpcdHdlZC1cdTAwM2V3bGFuLnJ4X25wa3QgPSBNVDc5MTVfV0VEX1JYX1RPS0VOX1NJWkU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtNzAxLVx0d2VkLVx1MDAzZXdsYW4ucnhfc2l6ZSA9IFNLQl9XSVRIX09WRVJIRUFEKE1UX1JYX0JVRl9TSVpFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM9OTE3PXN0cnVjdCBtdDc5MTVfZGV2ICptdDc5MTVfbW1pb19wcm9iZShzdHJ1Y3QgZGV2aWNlICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy05MjgtXHRcdFx0XHRTVVJWRVlfSU5GT19USU1FX0JTU19SWCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYzo5Mjk6XHRcdC50b2tlbl9zaXplID0gTVQ3OTE1X1RPS0VOX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtOTMwLVx0XHQudHhfcHJlcGFyZV9za2IgPSBtdDc5MTVfdHhfcHJlcGFyZV9za2IsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jPTEwMDM9bW9kdWxlX2V4aXQobXQ3OTE1X2V4aXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjEwMDQ6TU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O01lZGlhVGVrIE1UNzkxNUUgTU1JTyBoZWxwZXJzXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy0xMDA1LU1PRFVMRV9MSUNFTlNFKFwmIzM0O0R1YWwgQlNEL0dQTFwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1LmgtMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oOjQ6I2lmbmRlZiBfX01UNzkxNV9IXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tdDc5MTUuaDo1OiNkZWZpbmUgX19NVDc5MTVfSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1LmgtNi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tdDc5MTUuaC0xMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oOjEyOiNkZWZpbmUgTVQ3OTE1X01BWF9JTlRFUkZBQ0VTXHRcdDE5XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tdDc5MTUuaDoxMzojZGVmaW5lIE1UNzkxNV9XVEJMX1NJWkVcdFx0Mjg4XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tdDc5MTUuaC0xNC0jZGVmaW5lIE1UNzkxNl9XVEJMX1NJWkVcdFx0NTQ0XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tdDc5MTUuaDoxNTojZGVmaW5lIE1UNzkxNV9XVEJMX1JFU0VSVkVEXHRcdChtdDc5MTVfd3RibF9zaXplKGRldikgLSAxKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1Lmg6MTY6I2RlZmluZSBNVDc5MTVfV1RCTF9TVEFcdFx0XHQoTVQ3OTE1X1dUQkxfUkVTRVJWRUQgLSBcXFxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDAzOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI1NDY3CgkJCQkJCQlvdXRwdXQ6IDEyNwoJCQkJCQkJdGhvdWdodHM6IDM1OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBNVDc5MTUgRHJpdmVyIGZvciBGdXp6aW5nKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24gc3lzdGVtYXRpY2FsbHkuIEkgc2VlIHRoZSBjaGFuZ2VzIHRvdWNoIGBtdDc5MTVfdW5yZWdpc3Rlcl90aGVybWFsYCBhbmQgYG10NzkxNV90aGVybWFsX2luaXRgIHdpdGhpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jYC4gVGhpcyBpcyB0aGUgV2ktRmkgNiBkcml2ZXIgZm9yIE1lZGlhVGVrJiMzOTtzIE1UNzkxNSwgTVQ3OTg2LCBhbmQgTVQ3OTE2IFBDSWUgYW5kIFNvQyBoYXJkd2FyZS4gVGhlIGNvcmUgcXVlc3Rpb24gaXMgYWx3YXlzOiBjYW4gd2UgcmVhY2ggdGhpcyBjb2RlIGluIGEgc3RhbmRhcmQgZnV6emluZyBlbnZpcm9ubWVudD8KCktub3dpbmcgdGhlIHRhcmdldCB3ZWxsLCBJIGltbWVkaWF0ZWx5IHRoaW5rOiBhcmUgdGhlc2UgY2hpcHMgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgVk1zPyBUaGUgYW5zd2VyIGlzIGEgY2xlYXIgbm8uIFdlJiMzOTtyZSBkZWFsaW5nIHdpdGggdmVyeSBzcGVjaWZpYyBoYXJkd2FyZSBoZXJlLgoKVGhlIGRvY3VtZW50IHJlaW5mb3JjZXMgbXkgdW5kZXJzdGFuZGluZyBwZXJmZWN0bHksIHJlZmVyZW5jaW5nIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZSBsaWtlIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIGFuZCBHUFUgZHJpdmVycy4gSXQgaGlnaGxpZ2h0cyB0aGF0IHRoZXNlIHJlcXVpcmUgcGh5c2ljYWwgQVNJQ3Mgb3IgUENJZSBjYXJkcyBub3Qgc2ltdWxhdGVkIGluIGNvbW1vbiB2aXJ0dWFsaXphdGlvbiB0b29scy4gVGhlIE1lZGlhVGVrIE1UNzkxNSB3aXJlbGVzcyBOSUMgZHJpdmVyIGZpdHMgdGhpcyBkZXNjcmlwdGlvbiAqcGVyZmVjdGx5Ki4gSXQmIzM5O3MgdmVuZG9yLXNwZWNpZmljLCBkZXBlbmRlbnQgb24gYSBzcGVjaWZpYyBwaHlzaWNhbCBQQ0llL1NvQyB3aXJlbGVzcyBjaGlwLgoKVGhlcmVmb3JlLCBgV29ydGhGdXp6aW5nYCBoYXMgdG8gYmUgYGZhbHNlYC4gVGhlcmUmIzM5O3Mgbm8gd2F5IHdlIGNhbiB0cmlnZ2VyIHRoZXNlIGZ1bmN0aW9ucyBlZmZlY3RpdmVseSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBDb25zZXF1ZW50bHksIGBGb2N1c1N5bWJvbHNgIG5lZWRzIHRvIGJlIGFuIGVtcHR5IGxpc3QsIGBbXWAuIFNpbWlsYXJseSwgYEVuYWJsZUNvbmZpZ3NgIHNob3VsZCBiZSBlbXB0eSBvciBgbnVsbGAg4oCTIG5vdGhpbmcgaXMgcmVsZXZhbnQgaGVyZS4gVGhlIGBSZWFzb25pbmdgIHNob3VsZCBiZSBjcnlzdGFsIGNsZWFyOiBgbXQ3OTE1YCBpcyBhIHZlbmRvci1zcGVjaWZpYyBkcml2ZXIgZm9yIE1lZGlhVGVrJiMzOTtzIE1UNzkxNS9NVDc5ODYvTVQ3OTE2IFBDSWUgYW5kIFNvQyB3aXJlbGVzcyBuZXR3b3JrIGNoaXBzIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChRRU1VL0dDRSksIHJlbmRlcmluZyB0aGUgbW9kaWZpZWQgY29kZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuCgpOb3csIGxldCYjMzk7cyBjYWxsIGBzZXQtcmVzdWx0c2AuIEl0JiMzOTtzIGEgc3RyYWlnaHRmb3J3YXJkIGNhc2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDAzOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgbW9kaWZpZWQgY29kZSBpcyB3aXRoaW4gdGhlIE1lZGlhVGVrIE1UNzkxNSB3aXJlbGVzcyBkcml2ZXIgKGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1LyksIHdoaWNoIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIFBDSWUvU29DIGhhcmR3YXJlIChNVDc5MTUvTVQ3OTE2L01UNzk4Nikgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkuIEFzIHN1Y2gsIHRoaXMgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIHN5emthbGxlciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgbW9kaWZpZWQgY29kZSBpcyB3aXRoaW4gdGhlIE1lZGlhVGVrIE1UNzkxNSB3aXJlbGVzcyBkcml2ZXIgKGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1LyksIHdoaWNoIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIFBDSWUvU29DIGhhcmR3YXJlIChNVDc5MTUvTVQ3OTE2L01UNzk4Nikgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkuIEFzIHN1Y2gsIHRoaXMgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIHN5emthbGxlciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMDM6MDk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDAzOjA4OjQxLjAzODM1NDQ2OFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI2Mzc0NjA2MzQxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgbW9kaWZpZWQgY29kZSBpcyB3aXRoaW4gdGhlIE1lZGlhVGVrIE1UNzkxNSB3aXJlbGVzcyBkcml2ZXIgKGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1LyksIHdoaWNoIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIFBDSWUvU29DIGhhcmR3YXJlIChNVDc5MTUvTVQ3OTE2L01UNzk4Nikgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkuIEFzIHN1Y2gsIHRoaXMgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIHN5emthbGxlciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMDM6MDg6NDEuMDM4MzYwODU3WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NTI5MTI3ODAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBhNjQyZjViYzA0MzFhYWQ2MWUzMzI3OTRhMjFiZDAyMWI4NmQ1OTAxXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gU2VwIDcgMDM6MDg6MzkgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jXFxuaW5kZXggY2E0NmEyMDNhYTQ4Yi4uZTUyODVkMWExZjlkZSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmNcXG5AQCAtMjAwLDExICsyMDAsMTcgQEAgc3RhdGljIHZvaWQgbXQ3OTE1X3VucmVnaXN0ZXJfdGhlcm1hbChzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5KVxcbiB7XFxuIFxcdHN0cnVjdCB3aXBoeSAqd2lwaHkgPSBwaHktXFx1MDAzZW10NzYtXFx1MDAzZWh3LVxcdTAwM2V3aXBoeTtcXG4gXFxuK1xcdGlmIChwaHktXFx1MDAzZXR6b25lKSB7XFxuK1xcdFxcdGRldm1fdGhlcm1hbF9vZl96b25lX3VucmVnaXN0ZXIocGh5LVxcdTAwM2VkZXYtXFx1MDAzZW10NzYuZGV2LCBwaHktXFx1MDAzZXR6b25lKTtcXG4rXFx0XFx0cGh5LVxcdTAwM2V0em9uZSA9IE5VTEw7XFxuK1xcdH1cXG4rXFxuIFxcdGlmICghcGh5LVxcdTAwM2VjZGV2KVxcbiBcXHRcXHRyZXR1cm47XFxuIFxcbiBcXHRzeXNmc19yZW1vdmVfbGluayhcXHUwMDI2d2lwaHktXFx1MDAzZWRldi5rb2JqLCBcXFwiY29vbGluZ19kZXZpY2VcXFwiKTtcXG4gXFx0dGhlcm1hbF9jb29saW5nX2RldmljZV91bnJlZ2lzdGVyKHBoeS1cXHUwMDNlY2Rldik7XFxuK1xcdHBoeS1cXHUwMDNlY2RldiA9IE5VTEw7XFxuIH1cXG4gXFxuIHN0YXRpYyBpbnQgbXQ3OTE1X3RoZXJtYWxfaW5pdChzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5KVxcbkBAIC0yMTMsNiArMjE5LDcgQEAgc3RhdGljIGludCBtdDc5MTVfdGhlcm1hbF9pbml0KHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkpXFxuIFxcdHN0cnVjdCB0aGVybWFsX2Nvb2xpbmdfZGV2aWNlICpjZGV2O1xcbiBcXHRzdHJ1Y3QgZGV2aWNlICpod21vbjtcXG4gXFx0Y29uc3QgY2hhciAqbmFtZTtcXG4rXFx0aW50IHJldDtcXG4gXFxuIFxcdG5hbWUgPSBkZXZtX2thc3ByaW50ZihcXHUwMDI2d2lwaHktXFx1MDAzZWRldiwgR0ZQX0tFUk5FTCwgXFxcIm10NzkxNV8lc1xcXCIsXFxuIFxcdFxcdFxcdCAgICAgIHdpcGh5X25hbWUod2lwaHkpKTtcXG5AQCAtMjM4LDggKzI0NSw4IEBAIHN0YXRpYyBpbnQgbXQ3OTE1X3RoZXJtYWxfaW5pdChzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5KVxcbiBcXHRpZiAoSVNfRVJSKHBoeS1cXHUwMDNldHpvbmUpKSB7XFxuIFxcdFxcdGlmIChQVFJfRVJSKHBoeS1cXHUwMDNldHpvbmUpICE9IC1FTk9ERVYpXFxuIFxcdFxcdFxcdGRldl93YXJuKHBoeS1cXHUwMDNlZGV2LVxcdTAwM2VtdDc2LmRldixcXG4tXFx0XFx0XFx0XFx0IFxcXCJmYWlsZWQgdG8gcmVnaXN0ZXIgdGhlcm1hbCB6b25lOiAlbGRcXFxcblxcXCIsXFxuLVxcdFxcdFxcdFxcdCBQVFJfRVJSKHBoeS1cXHUwMDNldHpvbmUpKTtcXG4rXFx0XFx0XFx0XFx0IFxcXCJmYWlsZWQgdG8gcmVnaXN0ZXIgdGhlcm1hbCB6b25lICVkOiAlbGRcXFxcblxcXCIsXFxuK1xcdFxcdFxcdFxcdCBwaHktXFx1MDAzZW10NzYtXFx1MDAzZWJhbmRfaWR4LCBQVFJfRVJSKHBoeS1cXHUwMDNldHpvbmUpKTtcXG4gXFx0XFx0cGh5LVxcdTAwM2V0em9uZSA9IE5VTEw7XFxuIFxcdH1cXG4gXFxuQEAgLTI0OCw3ICsyNTUsMTEgQEAgc3RhdGljIGludCBtdDc5MTVfdGhlcm1hbF9pbml0KHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkpXFxuIFxcbiBcXHRod21vbiA9IGRldm1faHdtb25fZGV2aWNlX3JlZ2lzdGVyX3dpdGhfZ3JvdXBzKFxcdTAwMjZ3aXBoeS1cXHUwMDNlZGV2LCBuYW1lLCBwaHksXFxuIFxcdFxcdFxcdFxcdFxcdFxcdCAgICAgICBtdDc5MTVfaHdtb25fZ3JvdXBzKTtcXG4tXFx0cmV0dXJuIFBUUl9FUlJfT1JfWkVSTyhod21vbik7XFxuK1xcdHJldCA9IFBUUl9FUlJfT1JfWkVSTyhod21vbik7XFxuK1xcdGlmIChyZXQpXFxuK1xcdFxcdG10NzkxNV91bnJlZ2lzdGVyX3RoZXJtYWwocGh5KTtcXG4rXFxuK1xcdHJldHVybiByZXQ7XFxuIH1cXG4gXFxuIHN0YXRpYyB2b2lkIG10NzkxNV9sZWRfc2V0X2NvbmZpZyhzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfY2RldixcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMDM6MDg6NDEuNjkxOTY3Mzc4WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjoyNTcyMDk2NjQ2MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgbW9kaWZpZWQgY29kZSBpcyB3aXRoaW4gdGhlIE1lZGlhVGVrIE1UNzkxNSB3aXJlbGVzcyBkcml2ZXIgKGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1LyksIHdoaWNoIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIFBDSWUvU29DIGhhcmR3YXJlIChNVDc5MTUvTVQ3OTE2L01UNzk4Nikgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkuIEFzIHN1Y2gsIHRoaXMgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIHN5emthbGxlciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzc1xudG9vbHMgdG8gaW5zcGVjdCB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlLCBjYWxsZXJzLCBhbmQgc3Vycm91bmRpbmcgY29udGV4dC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjEuIENPUkUgVFJJQUdFIFBISUxPU09QSFlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5UaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLFxuYW5kIG5ld2x5IHRyaWdnZXJlZCBhc3NlcnRpb25zIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIHNlcmllcy5cblxuLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURTpcbiAgRnV6emluZyBjYW4gb25seSBkaXNjb3ZlciBidWdzIGluIGNvZGUgdGhhdCBjYW4gYWN0dWFsbHkgZXhlY3V0ZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZFxuICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLlxuICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsXG4gIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBhZGRzIGFzc2VydGlvbnMgb3IgY29tcGxleCBsb2dpYy5cblxuLSBETyBOT1QgQkxJTkRMWSBUUlVTVCBcIk5PIEZVTkNUSU9OQUwgQ0hBTkdFXCIgKE5GQ0kpIE9SIFwiUkVGQUNUT1JJTkdcIiBDTEFJTVM6XG4gIFBhdGNoIGF1dGhvcnMgcm91dGluZWx5IGxhYmVsIGNoYW5nZXMgYXMgXCJjbGVhbnVwc1wiLCBcInJlZmFjdG9yaW5nc1wiLCBvciBzdGF0ZVxuICBcIk5vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkXCIuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLlxuICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnRcbiAgaW4gY29yZSBzdWJzeXN0ZW1zIGZyZXF1ZW50bHkgaW50cm9kdWNlIHN1YnRsZSBzZW1hbnRpYyBzaGlmdHMgb3IgdW5jb3ZlciBsYXRlbnQga2VybmVsIGJ1Z3MuXG4gIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuXG5cbi0gTkVXIE9SIE1PRElGSUVEIEFTU0VSVElPTlMgSU4gUkVBQ0hBQkxFIENPREUgTVVTVCBCRSBGVVpaRUQ6XG4gIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKixcbiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuXG4gIEV2ZW4gaWYgdGhlIGF1dGhvciBiZWxpZXZlcyB0aGUgaW52YXJpYW50IGFsd2F5cyBob2xkcywgZnV6emluZyBpcyBlc3NlbnRpYWwgdG8gdmVyaWZ5IHdoZXRoZXJcbiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIE9OTFkgSUYgYWxsIG1vZGlmaWVkIGNvZGUgZmFsbHMgc3RyaWN0bHkgaW50byBvbmUgb3IgbW9yZSBvZiB0aGVzZSBjYXRlZ29yaWVzOlxuXG4tIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6XG4gICogTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgY29tbWVudHMsIG9yIHNwZWxsaW5nIGZpeGVzLlxuICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKVxuICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy5cbiAgKiBQdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIChlLmcuLCBtZXNzYWdlIHN0cmluZ3MgaW4gcHJfZXJyLCBwcmludGssIGRldl9pbmZvKSBvciB0cmFjZXBvaW50c1xuICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuXG4gICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLlxuLSBTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmU6XG4gICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIFVucmVhY2hhYmxlIGV4ZWN1dGlvbiBwYXRoczpcbiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmdcbiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy5cbiAgKiBDb2RlIHBhdGhzIGV4Y2x1c2l2ZSB0byBhcmNoaXRlY3R1cmVzIG90aGVyIHRoYW4gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4zLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9dHJ1ZSAoUE9TSVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzpcbi0gQ29yZSBTdWJzeXN0ZW1zOlxuICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSxcbiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuXG4tIFJlZmFjdG9yaW5ncyBhbmQgQ29kZSBDbGVhbnVwczpcbiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuXG4tIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczpcbiAgKiBBbnkgaW50cm9kdWN0aW9uIG9yIGFsdGVyYXRpb24gb2YgYXNzZXJ0aW9ucyAoV0FSTl9PTiosIFZNX1dBUk5fT04qLCBCVUdfT04qLCBldGMuKSBpbiByZWFjaGFibGUgcGF0aHMuXG4tIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6XG4gICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6XG5cbi0gQVZPSUQgVUJJUVVJVE9VUyBMSUZFQ1lDTEUgSE9ULVBBVEhTOlxuICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1c1xuICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdFxuICBhbmQgdHJhcCBoYW5kbGVycywgb3IgY29yZSBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlczsgdGhpcyBpcyBub3QgYW4gZXhoYXVzdGl2ZSBsaXN0KS5cbiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzIFwiZm9jdXNlZFwiLFxuICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuXG5cbi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOlxuICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHNcbiAgZm9yIHRoZSBzdWJzeXN0ZW0gZmVhdHVyZSB1bmRlciByZXZpZXcuXG5cbi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOlxuICBDb21waWxlci1pbmxpbmVkIHN0YXRpYyBmdW5jdGlvbnMgKHN1Y2ggYXMgc3RhdGljIGlubGluZXMgaW4gbW0vKi5oIG9yIGluY2x1ZGUvbGludXgvKi5oKSBsYWNrXG4gIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLlxuICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXJcbiAgZnVuY3Rpb25zIGluIC5jIGZpbGVzIHRoYXQgZXhlcmNpc2UgdGhlbSAoYXZvaWRpbmcgdWJpcXVpdG91cyBsaWZlY3ljbGUgd3JhcHBlcnMpLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuNS4gSURFTlRJRllJTkcgRW5hYmxlQ29uZmlnc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6XG4tIEluc3BlY3QgS2NvbmZpZyBmaWxlcyBhbmQgI2lmZGVmIGd1YXJkczsgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4tIENoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuXG4tIFN0cmlwIGFueSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJUYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NFxuXG5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBhNjQyZjViYzA0MzFhYWQ2MWUzMzI3OTRhMjFiZDAyMWI4NmQ1OTAxXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBTZXAgNyAwMzowODozOSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuY1xuaW5kZXggY2E0NmEyMDNhYTQ4Yi4uZTUyODVkMWExZjlkZSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jXG5AQCAtMjAwLDExICsyMDAsMTcgQEAgc3RhdGljIHZvaWQgbXQ3OTE1X3VucmVnaXN0ZXJfdGhlcm1hbChzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5KVxuIHtcbiBcdHN0cnVjdCB3aXBoeSAqd2lwaHkgPSBwaHktXHUwMDNlbXQ3Ni1cdTAwM2Vody1cdTAwM2V3aXBoeTtcbiBcbitcdGlmIChwaHktXHUwMDNldHpvbmUpIHtcbitcdFx0ZGV2bV90aGVybWFsX29mX3pvbmVfdW5yZWdpc3RlcihwaHktXHUwMDNlZGV2LVx1MDAzZW10NzYuZGV2LCBwaHktXHUwMDNldHpvbmUpO1xuK1x0XHRwaHktXHUwMDNldHpvbmUgPSBOVUxMO1xuK1x0fVxuK1xuIFx0aWYgKCFwaHktXHUwMDNlY2RldilcbiBcdFx0cmV0dXJuO1xuIFxuIFx0c3lzZnNfcmVtb3ZlX2xpbmsoXHUwMDI2d2lwaHktXHUwMDNlZGV2LmtvYmosIFwiY29vbGluZ19kZXZpY2VcIik7XG4gXHR0aGVybWFsX2Nvb2xpbmdfZGV2aWNlX3VucmVnaXN0ZXIocGh5LVx1MDAzZWNkZXYpO1xuK1x0cGh5LVx1MDAzZWNkZXYgPSBOVUxMO1xuIH1cbiBcbiBzdGF0aWMgaW50IG10NzkxNV90aGVybWFsX2luaXQoc3RydWN0IG10NzkxNV9waHkgKnBoeSlcbkBAIC0yMTMsNiArMjE5LDcgQEAgc3RhdGljIGludCBtdDc5MTVfdGhlcm1hbF9pbml0KHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkpXG4gXHRzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZSAqY2RldjtcbiBcdHN0cnVjdCBkZXZpY2UgKmh3bW9uO1xuIFx0Y29uc3QgY2hhciAqbmFtZTtcbitcdGludCByZXQ7XG4gXG4gXHRuYW1lID0gZGV2bV9rYXNwcmludGYoXHUwMDI2d2lwaHktXHUwMDNlZGV2LCBHRlBfS0VSTkVMLCBcIm10NzkxNV8lc1wiLFxuIFx0XHRcdCAgICAgIHdpcGh5X25hbWUod2lwaHkpKTtcbkBAIC0yMzgsOCArMjQ1LDggQEAgc3RhdGljIGludCBtdDc5MTVfdGhlcm1hbF9pbml0KHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkpXG4gXHRpZiAoSVNfRVJSKHBoeS1cdTAwM2V0em9uZSkpIHtcbiBcdFx0aWYgKFBUUl9FUlIocGh5LVx1MDAzZXR6b25lKSAhPSAtRU5PREVWKVxuIFx0XHRcdGRldl93YXJuKHBoeS1cdTAwM2VkZXYtXHUwMDNlbXQ3Ni5kZXYsXG4tXHRcdFx0XHQgXCJmYWlsZWQgdG8gcmVnaXN0ZXIgdGhlcm1hbCB6b25lOiAlbGRcXG5cIixcbi1cdFx0XHRcdCBQVFJfRVJSKHBoeS1cdTAwM2V0em9uZSkpO1xuK1x0XHRcdFx0IFwiZmFpbGVkIHRvIHJlZ2lzdGVyIHRoZXJtYWwgem9uZSAlZDogJWxkXFxuXCIsXG4rXHRcdFx0XHQgcGh5LVx1MDAzZW10NzYtXHUwMDNlYmFuZF9pZHgsIFBUUl9FUlIocGh5LVx1MDAzZXR6b25lKSk7XG4gXHRcdHBoeS1cdTAwM2V0em9uZSA9IE5VTEw7XG4gXHR9XG4gXG5AQCAtMjQ4LDcgKzI1NSwxMSBAQCBzdGF0aWMgaW50IG10NzkxNV90aGVybWFsX2luaXQoc3RydWN0IG10NzkxNV9waHkgKnBoeSlcbiBcbiBcdGh3bW9uID0gZGV2bV9od21vbl9kZXZpY2VfcmVnaXN0ZXJfd2l0aF9ncm91cHMoXHUwMDI2d2lwaHktXHUwMDNlZGV2LCBuYW1lLCBwaHksXG4gXHRcdFx0XHRcdFx0ICAgICAgIG10NzkxNV9od21vbl9ncm91cHMpO1xuLVx0cmV0dXJuIFBUUl9FUlJfT1JfWkVSTyhod21vbik7XG4rXHRyZXQgPSBQVFJfRVJSX09SX1pFUk8oaHdtb24pO1xuK1x0aWYgKHJldClcbitcdFx0bXQ3OTE1X3VucmVnaXN0ZXJfdGhlcm1hbChwaHkpO1xuK1xuK1x0cmV0dXJuIHJldDtcbiB9XG4gXG4gc3RhdGljIHZvaWQgbXQ3OTE1X2xlZF9zZXRfY29uZmlnKHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMDM6MDg6NDEuNjkxOTY5MTc4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MTEwMjQyMDYzNzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRXZhbHVhdGluZyB0aGUgU3VpdGFiaWxpdHkgb2YgYSBLZXJuZWwgUGF0Y2ggZm9yIFN5emthbGxlciBGdXp6aW5nKipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyBwYXRjaCB0byBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jYCB0aGF0IHNvbWVvbmUgd2FudHMgbWUgdG8gYXNzZXNzIGZvciBzeXprYWxsZXIgZnV6emluZy4gTXkgZmlyc3Qgc3RlcCBpcyB0byBxdWlja2x5IGRldGVybWluZSBpZiB0aGlzIGlzIGV2ZW4gZmVhc2libGUuIFRoZSBxdWVzdGlvbiBpcywgY2FuIEkgcmVhY2ggdGhpcyBkcml2ZXIgaW4gYSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lPyBUaGUgZHJpdmVyIGluIHF1ZXN0aW9uIGlzIHRoZSBNZWRpYXRlayBNVDc5MTUgd2lyZWxlc3MgZHJpdmVyLiBJIG5lZWQgdG8gZmlndXJlIG91dCBob3cgaXQncyBjb25uZWN0ZWQgLSBpcyBpdCBQQ0kvUENJZSwgVVNCLCBvciBzb21ldGhpbmcgU29DLXNwZWNpZmljPyBJJ2xsIHByb2JhYmx5IHVzZSBgZ3JlcHBlcmAgb3IgbWF5YmUganVzdCBgcmVhZC1maWxlYCB0byBjaGVjayB0aGUgY29kZSBkaXJlY3RseSB0byBnZXQgdGhlIGFuc3dlci5cblxuQmVmb3JlIEkgZ28gZnVydGhlciwgYSBxdWljayBzZWN1cml0eSByZXZpZXcgaXMgaW4gb3JkZXIuIFRoaXMgaXMgYSBwcmV0dHkgc3RhbmRhcmQgZGV2ZWxvcGVyIFFBL3RyaWFnZSB0YXNrLCBub3RoaW5nIG9idmlvdXNseSBjcml0aWNhbCBoZXJlLiBObyByZWQgZmxhZ3Mgc28gZmFyIOKAkyB0aGlzIGlzIHByb2JhYmx5IGEgYmVuaWduLCBub3JtYWwgcGF0Y2guXG5cblRvIHByb3Blcmx5IGFuYWx5emUgdGhpcywgSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgYG10NzkxNWAgZHJpdmVyIGl0c2VsZi4gSSdsbCBuZWVkIHRvIGV4cGxvcmUgdGhlIGNvZGViYXNlIHRvIHVuZGVyc3RhbmQgaXRzIGZ1bmN0aW9uIGFuZCBjb250ZXh0LlxuXG5cbiIsIklucHV0VG9rZW5zIjozNDc3LCJPdXRwdXRUb2tlbnMiOjUxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjI0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMDM6MDg6NTIuNzE2MTg5NDUxWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2NDY4OTk0OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJNT0RVTEVfREVWSUNFX1RBQkxFfHBjaV9yZWdpc3Rlcl9kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYz05NjU9c3RhdGljIGludCBfX2luaXQgbXQ3OTE1X2luaXQodm9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy05NjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjk2OTpcXHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZtdDc5MTVfaGlmX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTk3MC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTk3Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6OTczOlxcdHJldCA9IHBjaV9yZWdpc3Rlcl9kcml2ZXIoXFx1MDAyNm10NzkxNV9wY2lfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtOTc0LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9wY2kuYz0yMzE9c3RydWN0IHBjaV9kcml2ZXIgbXQ3OTE1X3BjaV9kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9wY2kuYy0yMzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmM6MjM4Ok1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBtdDc5MTVfcGNpX2RldmljZV90YWJsZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmM6MjM5Ok1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBtdDc5MTVfaGlmX2RldmljZV90YWJsZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmMtMjQwLU1PRFVMRV9GSVJNV0FSRShNVDc5MTVfRklSTVdBUkVfV0EpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmM9MTI4Nz1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtdDc5OHhfd21hY19vZl9tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmMtMTI5Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9zb2MuYzoxMjkzOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG10Nzk4eF93bWFjX29mX21hdGNoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9zb2MuYy0xMjk0LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QwMzowODo1Mi44ODA4ODc4ODlaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyMTk1MzM1NjU2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkludmVzdGlnYXRpbmcgTVQ3OTE1IENhcGFiaWxpdGllcyoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byBnZXQgYSBoYW5kbGUgb24gdGhlIE1UNzkxNSdzIGNhcGFiaWxpdGllcy4gTXkgaW5pdGlhbCBxdWVzdGlvbiBpcyB3aGV0aGVyIHRoaXMgdGhpbmcgaXMgbGltaXRlZCB0byBQQ0llL1NvQyBpbnRlZ3JhdGlvbiBvciBpZiBpdCdzIG1vcmUgZmxleGlibGUsIHBvc3NpYmx5IHN1cHBvcnRpbmcgVVNCIG9yIGV2ZW4gc29tZSBmb3JtIG9mIHZpcnR1YWxpemF0aW9uLiBUaGUgZG9jdW1lbnRhdGlvbiBpcyBhbHdheXMgYSBzdGFydGluZyBwb2ludCwgYnV0IGxldCdzIGRpdmUgaW50byB0aGUgY29kZSBkaXJlY3RseS5cblxuRmlyc3QsIEkgbmVlZCB0byBnZXQgYSBzb2xpZCBvdmVydmlldy4gTGV0J3Mgc2VlIHdoYXQncyBpbiB0aGF0IGRyaXZlciBkaXJlY3RvcnkuIEknbGwgZXhlY3V0ZSBhIHF1aWNrIGBsc2Agb24gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2AuIEtub3dpbmcgdGhlIGZpbGUgc3RydWN0dXJlIHdpbGwgaGVscCBtZSBxdWlja2x5IGlkZW50aWZ5IGtleSBhcmVhcyB0byBpbnZlc3RpZ2F0ZSBmdXJ0aGVyLiBUaGlzIHdpbGwgYWxsb3cgbWUgdG8gbmFycm93IG15IGZvY3VzIGFuZCB1bmRlcnN0YW5kIHRoZSBwb3RlbnRpYWwgaW50ZWdyYXRpb24gcGF0aHdheXMuIEZyb20gdGhlcmUsIEkgY2FuIGRyaWxsIGRvd24gaW50byB0aGUgcmVsZXZhbnQgbW9kdWxlcyBvciBoZWFkZXIgZmlsZXMgdG8gY29uZmlybSBteSBpbml0aWFsIGh5cG90aGVzaXMuIExldCdzIHN0YXJ0IGRpZ2dpbmchXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ2ODcsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QwMzowODo1NS4wNzYyMjY5MzZaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJjb2Rlc2VhcmNoLWRpci1pbmRleCIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjkzMDIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRGlyXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRmlsZXNcIjogW1xuICAgIFwiY29yZWR1bXAuY1wiLFxuICAgIFwiY29yZWR1bXAuaFwiLFxuICAgIFwiZGVidWdmcy5jXCIsXG4gICAgXCJkbWEuY1wiLFxuICAgIFwiZWVwcm9tLmNcIixcbiAgICBcImVlcHJvbS5oXCIsXG4gICAgXCJpbml0LmNcIixcbiAgICBcIm1hYy5jXCIsXG4gICAgXCJtYWMuaFwiLFxuICAgIFwibWFpbi5jXCIsXG4gICAgXCJtY3UuY1wiLFxuICAgIFwibWN1LmhcIixcbiAgICBcIm1taW8uY1wiLFxuICAgIFwibXQ3OTE1LmhcIixcbiAgICBcInBjaS5jXCIsXG4gICAgXCJyZWdzLmhcIixcbiAgICBcInNvYy5jXCIsXG4gICAgXCJ0ZXN0bW9kZS5jXCIsXG4gICAgXCJ0ZXN0bW9kZS5oXCJcbiAgXSxcbiAgXCJTdWJkaXJzXCI6IG51bGxcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDAzOjA4OjU1LjA3NjMzMzMzNloiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjE3NjA1Mzc4NTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyBpZiBJIHdlcmUgdGhpbmtpbmcgaXQ6XG5cbioqRGlnZ2luZyBpbnRvIHRoZSBNVDc5MTUgVGhlcm1hbCBNYW5hZ2VtZW50KipcblxuT2theSwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHRoZXJtYWwgbWFuYWdlbWVudCBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIE1UNzkxNSB3aXJlbGVzcyBkcml2ZXIuIExldCdzIHNlZS4uLkknbGwgc3RhcnQgYnkgY2hlY2tpbmcgdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmNgIGZpbGUuIFRoYXQncyB0aGUgbG9naWNhbCBwbGFjZSB0byBsb29rIGZvciBpbml0aWFsaXphdGlvbiBhbmQgdW5yZWdpc3RyYXRpb24gcm91dGluZXMuIEkgd2FudCB0byBwaW5wb2ludCB3aGVyZSBgbXQ3OTE1X3RoZXJtYWxfaW5pdGAgYW5kIGBtdDc5MTVfdW5yZWdpc3Rlcl90aGVybWFsYCBhcmUgYmVpbmcgY2FsbGVkLCBhcyB0aGF0IHdpbGwgZ2l2ZSBtZSBjb250ZXh0IGZvciBob3cgdGhlIHRoZXJtYWwgZmVhdHVyZXMgYXJlIGVuYWJsZWQgYW5kIGRpc2FibGVkIHdpdGhpbiB0aGUgZHJpdmVyJ3MgbGlmZWN5Y2xlLiBVbmRlcnN0YW5kaW5nIHRoZSBjYWxsIHNlcXVlbmNlIHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBvdmVyYWxsIHRoZXJtYWwgbWFuYWdlbWVudCBzdHJhdGVneS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTExNCwiT3V0cHV0VG9rZW5zIjo1OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU2LCJUb29sQ2FsbHMiOlsiY29kZXNlYXJjaC1kaXItaW5kZXgiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QwMzowODo1Ni44MzY4NzQzNzlaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTYwNTMyMTY3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzkxNV90aGVybWFsX2luaXR8bXQ3OTE1X3VucmVnaXN0ZXJfdGhlcm1hbFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTE5NT1zdGF0aWMgY29uc3Qgc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2Vfb3BzIG10NzkxNV90el9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTk4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoxOTk6c3RhdGljIHZvaWQgbXQ3OTE1X3VucmVnaXN0ZXJfdGhlcm1hbChzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0yMDAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTIxNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MjE2OnN0YXRpYyBpbnQgbXQ3OTE1X3RoZXJtYWxfaW5pdChzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0yMTcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTI1OS1cXHRpZiAocmV0KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoyNjA6XFx0XFx0bXQ3OTE1X3VucmVnaXN0ZXJfdGhlcm1hbChwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0yNjEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9NzMzPW10NzkxNV9yZWdpc3Rlcl9leHRfcGh5KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtNzY0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzo3NjU6XFx0cmV0ID0gbXQ3OTE1X3RoZXJtYWxfaW5pdChwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy03NjYtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0xMjM3PXN0YXRpYyB2b2lkIG10NzkxNV91bnJlZ2lzdGVyX2V4dF9waHkoc3RydWN0IG10NzkxNV9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMjQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoxMjQ1OlxcdG10NzkxNV91bnJlZ2lzdGVyX3RoZXJtYWwocGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTI0Ni1cXHRtdDc2X3VucmVnaXN0ZXJfcGh5KG1waHkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTEyNjE9aW50IG10NzkxNV9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzkxNV9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMjk5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoxMzAwOlxcdHJldCA9IG10NzkxNV90aGVybWFsX2luaXQoXFx1MDAyNmRldi1cXHUwMDNlcGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTMwMS1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTEzMjktdW5yZWdfdGhlcm1hbDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MTMzMDpcXHRtdDc5MTVfdW5yZWdpc3Rlcl90aGVybWFsKFxcdTAwMjZkZXYtXFx1MDAzZXBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTEzMzEtdW5yZWdfZGV2Olxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTEzNDE9dm9pZCBtdDc5MTVfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzkxNV9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMzQ3LVxcdG10NzkxNV9jb3JlZHVtcF91bnJlZ2lzdGVyKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjEzNDg6XFx0bXQ3OTE1X3VucmVnaXN0ZXJfdGhlcm1hbChcXHUwMDI2ZGV2LVxcdTAwM2VwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMzQ5LVxcdG10NzZfdW5yZWdpc3Rlcl9kZXZpY2UoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDAzOjA4OjU2Ljk5NzQxNzQ3NloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjIzNDM5OTE5OTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQW5hbHl6aW5nIHRoZSBtdDc5MTVfcmVnaXN0ZXJfZGV2aWNlIENhbGwqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZ2V0IGEgY2xlYXIgcGljdHVyZSBvZiBob3cgYG10NzkxNV9yZWdpc3Rlcl9kZXZpY2VgIGlzIGFjdHVhbGx5IGludm9rZWQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjYWxsIGdyYXBoIGFuZCB0aGUgc3Vycm91bmRpbmcgY29udGV4dC4gU3BlY2lmaWNhbGx5LCBJJ20gdGhpbmtpbmcgYWJvdXQgdGhlIGFyZ3VtZW50cyBpdCByZWNlaXZlcyDigJMgdGhpbmdzIGxpa2UgdGhlIGRldmljZSBzdHJ1Y3R1cmUsIGFueSBhc3NvY2lhdGVkIHJlc291cmNlcywgYW5kIHRoZSBzZXF1ZW5jaW5nIG9mIGV2ZW50cyBhcm91bmQgdGhhdCBjYWxsLiBJIHdhbnQgdG8gcGlucG9pbnQgd2hlcmUgaW4gdGhlIGluaXRpYWxpemF0aW9uIHByb2Nlc3MgdGhpcyByZWdpc3RyYXRpb24gaGFwcGVucywgd2hpY2ggZHJpdmVycyBtaWdodCBiZSBpbnZvbHZlZCwgYW5kIHdoYXQgZGVwZW5kZW5jaWVzIGFyZSBpbiBwbGF5LiBJJ20gYWxzbyBjdXJpb3VzIGFib3V0IGFueSBlcnJvciBoYW5kbGluZyB0aGF0IG9jY3VycyBiZWZvcmUgb3IgYWZ0ZXIgdGhpcyBjcnVjaWFsIGZ1bmN0aW9uLiBJcyBpdCBndWFyZGVkIGJ5IGFueSBzcGVjaWZpYyBjb25kaXRpb25zLCBwZXJoYXBzIHJlbGF0ZWQgdG8gcGxhdGZvcm0gZGV0ZWN0aW9uIG9yIHJlc291cmNlIGFsbG9jYXRpb24/IFRyYWNpbmcgdGhlIGNhbGxlciBhbmQgYW55IHBvdGVudGlhbCBjYWxsZXJzLW9mLXRoZS1jYWxsZXIgaXMgd2hhdCBJJ20gZm9jdXNlZCBvbiB0byBidWlsZCBhIGZ1bGwgbWVudGFsIG1hcC4gSSBuZWVkIHRoZSBiaWcgcGljdHVyZSB0byBhdm9pZCBtYWtpbmcgYSBoYXN0eSBkaWFnbm9zaXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY1ODksIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QwMzowODo1OS4zNDE0MTYzMjFaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3NTQyNzQwOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5MTVfcmVnaXN0ZXJfZGV2aWNlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0xMjUwPXN0YXRpYyB2b2lkIG10NzkxNV9zdG9wX2hhcmR3YXJlKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTI2MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MTI2MTppbnQgbXQ3OTE1X3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMjYyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oPTQ1Mz11MzIgbXQ3OTE1X3dlZF9pbml0X2J1Zih2b2lkICpwdHIsIGRtYV9hZGRyX3QgcGh5cywgaW50IHRva2VuX2lkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tdDc5MTUuaC00NTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1Lmg6NDU1OmludCBtdDc5MTVfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oLTQ1Ni12b2lkIG10NzkxNV91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jPTEwMz1zdGF0aWMgaW50IG10NzkxNV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9wY2kuYy0xODEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmM6MTgyOlxcdHJldCA9IG10NzkxNV9yZWdpc3Rlcl9kZXZpY2UoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9wY2kuYy0xODMtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3NvYy5jPTEyMjA9c3RhdGljIGludCBtdDc5OHhfd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmMtMTI2My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9zb2MuYzoxMjY0OlxcdHJldCA9IG10NzkxNV9yZWdpc3Rlcl9kZXZpY2UoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9zb2MuYy0xMjY1LVxcdGlmIChyZXQpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDAzOjA4OjU5LjUxNjg1NzIxOFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjozNjU5ODU5NTY0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZyBEZWNpc2lvbiBmb3IgTVQ3OTE1IERyaXZlcioqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gVGhlIGluc3RydWN0aW9ucyBzYXkgSSBzaG91bGQgcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmICphbGwqIG1vZGlmaWVkIGNvZGUgZmFsbHMgdW5kZXIgc3BlY2lmaWMgbmVnYXRpdmUgY3JpdGVyaWEuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIHRoZSBjaGFuZ2VzIHJlbGF0ZWQgdG8gYG10NzkxNWAgZmFsbCBpbnRvIG9uZSBvZiB0aG9zZSBjYXRlZ29yaWVzLiBGaXJzdCwgSSdtIGdvaW5nIHRvIGNvbnN1bHQgU2VjdGlvbiAyLCB3aGljaCBvdXRsaW5lcyB0aGUgbmVnYXRpdmUgY3JpdGVyaWEgZm9yIHJldHVybmluZyBgV29ydGhGdXp6aW5nPWZhbHNlYC5cblxuVGhlIG5lZ2F0aXZlIGNyaXRlcmlhIHRoYXQgaXMgcmVsZXZhbnQgaW4gdGhpcyBjYXNlIGlzOiBcIlN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZTogKiBWZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVVcIi5cblxuTm93LCBJIG5lZWQgdG8ga25vdyBpZiBgbXQ3OTE1YCBmaXRzIHRoYXQgZGVzY3JpcHRpb24uIEkga25vdyBgbXQ3OTE1YCByZWZlcnMgdG8gdGhlIE1lZGlhVGVrIE1UNzkxNSBXaS1GaSA2ICg4MDIuMTFheCkgY2hpcHNldCwgd2hpY2ggaXMgYSBQQ0llIG9yIFNvQyB3aXJlbGVzcyBjaGlwLiBUaGUga2V5IHF1ZXN0aW9uIGlzOiBpcyBpdCAqZW11bGF0ZWQqIGluIFFFTVU/IEFuZCwgZnJvbSBteSBrbm93bGVkZ2UsIEknbSBwcmV0dHkgc3VyZSBpdCdzIG5vdC4gRnVydGhlciwgSSBjYW4gZG91YmxlIGNoZWNrIHRoYXQgaXQgZG9lc24ndCBoYXZlIGFueSBVU0IgZ2FkZ2V0IGludGVyZmFjZSBvciBtYWM4MDIxMV9od3NpbSBlbXVsYXRpb24uIE5vcGUsIGl0J3MgYSBkZWRpY2F0ZWQgaGFyZHdhcmUgZHJpdmVyLlxuXG5UaGVyZWZvcmUsIHNpbmNlIEkga25vdyB0aGF0IHdpdGhvdXQgdGhlIHBoeXNpY2FsIE1lZGlhVGVrIE1UNzkxNSBQQ0llIGNhcmQgb3IgTWVkaWFUZWsgU29DIGhhcmR3YXJlLCBmdW5jdGlvbnMgbGlrZSBgbXQ3OTE1X3BjaV9wcm9iZWAsIGBtdDc5OHhfd21hY19wcm9iZWAsIGFuZCBgbXQ3OTE1X3RoZXJtYWxfaW5pdGAgY2FuJ3QgZXZlbiBiZSByZWFjaGVkIGR1cmluZyBkZXZpY2UgaW5pdGlhbGl6YXRpb24sIEknbSBjb25maWRlbnQgdGhhdCB0aGVzZSBjb2RlIHBhdGhzIGFyZSAqc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlKiBpbiBhIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnQuXG5cblRvIGJlIGFic29sdXRlbHkgc3VyZSwgSSdtIGdvaW5nIHRvIHF1aWNrbHkgc2NhbiBLY29uZmlnIGZvciBhbnkgZXhjZXB0aW9ucywgYnV0IEknbSBwcmV0dHkgc3VyZSB0aGF0IGBtdDc5MTVgIHN0cmljdGx5IGFwcGxpZXMgdG8gTWVkaWFUZWsgUENJZS9Tb0MgaGFyZHdhcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjc1NTksIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMDM6MDk6MDMuMTc2NzE4NzMzWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTczNTA3MzgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiTVQ3OTE1XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNjA4IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlPTQ4PW9iai0kKENPTkZJR19NVDc2MTVfQ09NTU9OKSArPSBtdDc2MTUvXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZTo0OTpvYmotJChDT05GSUdfTVQ3OTE1RSkgKz0gbXQ3OTE1L1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtNTAtb2JqLSQoQ09ORklHX01UNzkyMV9DT01NT04pICs9IG10NzkyMS9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9LY29uZmlnOjI6Y29uZmlnIE1UNzkxNUVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9LY29uZmlnOjM6XFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzkxNUUgKFBDSWUpIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZy00LVxcdHNlbGVjdCBNVDc2X0NPTk5BQ19MSUJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L0tjb25maWctOS1cXHRoZWxwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZzoxMDpcXHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5MTUtYmFzZWQgUENJZSB3aXJlbGVzcyBkZXZpY2VzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L0tjb25maWctMTEtXFx0ICB3aGljaCBzdXBwb3J0IGNvbmN1cnJlbnQgZHVhbC1iYW5kIG9wZXJhdGlvbiBhdCBib3RoIDVHSHpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L0tjb25maWc9MTc9Y29uZmlnIE1UNzk4WF9XTUFDXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZy0xOC1cXHRib29sIFxcXCJNVDc5OHggKFNvQykgV01BQyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L0tjb25maWc6MTk6XFx0ZGVwZW5kcyBvbiBNVDc5MTVFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZy0yMC1cXHRkZXBlbmRzIG9uIEFSQ0hfTUVESUFURUsgfHwgQ09NUElMRV9URVNUXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9LY29uZmlnLTIzLVxcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIHRoZSBidWlsdC1pbiBXTUFDIG9uIE1UNzk4MSBhbmQgTVQ3OTg2IFNvQyBkZXZpY2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9LY29uZmlnOjI0OlxcdCAgd2hpY2ggaGFzIHRoZSBzYW1lIGZlYXR1cmUgc2V0IGFzIGEgTVQ3OTE1LCBidXQgZW5hYmxlcyA2RVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L0tjb25maWctMjUtXFx0ICBzdXBwb3J0Llxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvTWFrZWZpbGUtMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9NYWtlZmlsZTozOm9iai0kKENPTkZJR19NVDc5MTVFKSArPSBtdDc5MTVlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9NYWtlZmlsZS00LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZGVidWdmcy5jPTk4Mz1tdDc5MTVfcmF0ZV90eHBvd2VyX2dldChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKnVzZXJfYnVmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZGVidWdmcy5jLTk4Ny1cXHRzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2ID0gcGh5LVxcdTAwM2VkZXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZGVidWdmcy5jOjk4ODpcXHRzOCB0eHB3cltNVDc5MTVfU0tVX1JBVEVfTlVNXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kZWJ1Z2ZzLmMtOTg5LVxcdHN0YXRpYyBjb25zdCBzaXplX3Qgc3ogPSAyMDQ4O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZGVidWdmcy5jPTExNjE9bXQ3OTE1X3BhdGhfdHhwb3dlcl9zaG93KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RlYnVnZnMuYy0xMTYzLVxcdHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkgPSBmaWxlLVxcdTAwM2Vwcml2YXRlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RlYnVnZnMuYzoxMTY0OlxcdHM4IHR4cG93ZXJbTVQ3OTE1X1NLVV9QQVRIX05VTV0sICpidWYgPSB0eHBvd2VyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RlYnVnZnMuYy0xMTY1LVxcdGludCByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYz00MT1zdGF0aWMgdm9pZCBtdDc5MTVfZG1hX2NvbmZpZyhzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNTUtXFx0XFx0UlhRX0NPTkZJRyhNVF9SWFFfTUFJTiwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9CQU5EMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo1NjpcXHRcXHRcXHQgICBNVDc5MTVfUlhRX0JBTkQwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01Ny1cXHRcXHRSWFFfQ09ORklHKE1UX1JYUV9NQ1UsIFdGRE1BMSwgTVRfSU5UX1JYX0RPTkVfV00sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTg6XFx0XFx0XFx0ICAgTVQ3OTE1X1JYUV9NQ1VfV00pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTU5LVxcdFxcdFJYUV9DT05GSUcoTVRfUlhRX01DVV9XQSwgV0ZETUExLCBNVF9JTlRfUlhfRE9ORV9XQSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo2MDpcXHRcXHRcXHQgICBNVDc5MTVfUlhRX01DVV9XQSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNjEtXFx0XFx0UlhRX0NPTkZJRyhNVF9SWFFfQkFORDEsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfQkFORDEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NjI6XFx0XFx0XFx0ICAgTVQ3OTE1X1JYUV9CQU5EMSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNjMtXFx0XFx0UlhRX0NPTkZJRyhNVF9SWFFfQkFORDFfV0EsIFdGRE1BMSwgTVRfSU5UX1JYX0RPTkVfV0FfRVhULFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjY0OlxcdFxcdFxcdCAgIE1UNzkxNV9SWFFfTUNVX1dBX0VYVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNjUtXFx0XFx0UlhRX0NPTkZJRyhNVF9SWFFfTUFJTl9XQSwgV0ZETUExLCBNVF9JTlRfUlhfRE9ORV9XQV9NQUlOLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjY2OlxcdFxcdFxcdCAgIE1UNzkxNV9SWFFfTUNVX1dBKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo2NzpcXHRcXHRUWFFfQ09ORklHKDAsIFdGRE1BMSwgTVRfSU5UX1RYX0RPTkVfQkFORDAsIE1UNzkxNV9UWFFfQkFORDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjY4OlxcdFxcdFRYUV9DT05GSUcoMSwgV0ZETUExLCBNVF9JTlRfVFhfRE9ORV9CQU5EMSwgTVQ3OTE1X1RYUV9CQU5EMSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNjktXFx0XFx0TUNVUV9DT05GSUcoTVRfTUNVUV9XTSwgV0ZETUExLCBNVF9JTlRfVFhfRE9ORV9NQ1VfV00sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NzA6XFx0XFx0XFx0ICAgIE1UNzkxNV9UWFFfTUNVX1dNKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy03MS1cXHRcXHRNQ1VRX0NPTkZJRyhNVF9NQ1VRX1dBLCBXRkRNQTEsIE1UX0lOVF9UWF9ET05FX01DVV9XQSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo3MjpcXHRcXHRcXHQgICAgTVQ3OTE1X1RYUV9NQ1VfV0EpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTczLVxcdFxcdE1DVVFfQ09ORklHKE1UX01DVVFfRldETCwgV0ZETUExLCBNVF9JTlRfVFhfRE9ORV9GV0RMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjc0OlxcdFxcdFxcdCAgICBNVDc5MTVfVFhRX0ZXREwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTc1LVxcdH0gZWxzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy04MC1cXHRcXHRNQ1VRX0NPTkZJRyhNVF9NQ1VRX1dNLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX01DVV9XTSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo4MTpcXHRcXHRcXHQgICAgTVQ3OTE1X1RYUV9NQ1VfV00pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTgyLVxcdFxcdE1DVVFfQ09ORklHKE1UX01DVVFfV0EsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfTUNVX1dBX01UNzkxNixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo4MzpcXHRcXHRcXHQgICAgTVQ3OTE1X1RYUV9NQ1VfV0EpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTg0LVxcdFxcdE1DVVFfQ09ORklHKE1UX01DVVFfRldETCwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9GV0RMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjg1OlxcdFxcdFxcdCAgICBNVDc5MTVfVFhRX0ZXREwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTg2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtMTAyLVxcdFxcdFxcdFRYUV9DT05GSUcoMCwgV0ZETUEwLCBNVF9JTlRfV0VEX1RYX0RPTkVfQkFORDAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6MTAzOlxcdFxcdFxcdFxcdCAgIE1UNzkxNV9UWFFfQkFORDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTEwNC1cXHRcXHRcXHRUWFFfQ09ORklHKDEsIFdGRE1BMCwgTVRfSU5UX1dFRF9UWF9ET05FX0JBTkQxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjEwNTpcXHRcXHRcXHRcXHQgICBNVDc5MTVfVFhRX0JBTkQxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy0xMDYtXFx0XFx0fSBlbHNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTExNS1cXHRcXHRcXHRUWFFfQ09ORklHKDAsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfQkFORDAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6MTE2OlxcdFxcdFxcdFxcdCAgIE1UNzkxNV9UWFFfQkFORDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTExNy1cXHRcXHRcXHRUWFFfQ09ORklHKDEsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfQkFORDEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6MTE4OlxcdFxcdFxcdFxcdCAgIE1UNzkxNV9UWFFfQkFORDEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTExOS1cXHRcXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYz00MDg9aW50IG10NzkxNV9kbWFfaW5pdChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5MilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTQ0NS1cXHRcXHRcXHRcXHQgICAgTVRfVFhRX0lEKGRldi1cXHUwMDNlcGh5Lm10NzYtXFx1MDAzZWJhbmRfaWR4KSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo0NDY6XFx0XFx0XFx0XFx0ICAgIE1UNzkxNV9UWF9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNDQ3LVxcdFxcdFxcdFxcdCAgICBNVF9UWFFfUklOR19CQVNFKDApKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTQ1My1cXHRcXHRcXHRcXHRcXHQgICAgTVRfVFhRX0lEKHBoeTItXFx1MDAzZW10NzYtXFx1MDAzZWJhbmRfaWR4KSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo0NTQ6XFx0XFx0XFx0XFx0XFx0ICAgIE1UNzkxNV9UWF9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNDU1LVxcdFxcdFxcdFxcdFxcdCAgICBNVF9UWFFfUklOR19CQVNFKDEpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTQ2Mi1cXHRcXHRcXHRcXHQgIE1UX01DVVFfSUQoTVRfTUNVUV9XTSksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NDYzOlxcdFxcdFxcdFxcdCAgTVQ3OTE1X1RYX01DVV9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNDY0LVxcdFxcdFxcdFxcdCAgTVRfTUNVUV9SSU5HX0JBU0UoTVRfTUNVUV9XTSkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNDcwLVxcdFxcdFxcdFxcdCAgTVRfTUNVUV9JRChNVF9NQ1VRX1dBKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo0NzE6XFx0XFx0XFx0XFx0ICBNVDc5MTVfVFhfTUNVX1JJTkdfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy00NzItXFx0XFx0XFx0XFx0ICBNVF9NQ1VRX1JJTkdfQkFTRShNVF9NQ1VRX1dBKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy00NzgtXFx0XFx0XFx0XFx0ICBNVF9NQ1VRX0lEKE1UX01DVVFfRldETCksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NDc5OlxcdFxcdFxcdFxcdCAgTVQ3OTE1X1RYX0ZXRExfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTQ4MC1cXHRcXHRcXHRcXHQgIE1UX01DVVFfUklOR19CQVNFKE1UX01DVVFfRldETCkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNDg2LVxcdFxcdFxcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX01DVSksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NDg3OlxcdFxcdFxcdCAgICAgICBNVDc5MTVfUlhfTUNVX1JJTkdfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy00ODgtXFx0XFx0XFx0ICAgICAgIE1UX1JYX0JVRl9TSVpFLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNDk1LVxcdFxcdHdhX3J4X2Jhc2UgPSBNVF9XRURfUlhfUklOR19CQVNFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjQ5NjpcXHRcXHR3YV9yeF9pZHggPSBNVDc5MTVfUlhRX01DVV9XQTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy00OTctXFx0XFx0bWRldi1cXHUwMDNlcV9yeFtNVF9SWFFfTUNVX1dBXS5mbGFncyA9IE1UX1dFRF9RX1RYRlJFRTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTUwMy1cXHRyZXQgPSBtdDc2X3F1ZXVlX2FsbG9jKGRldiwgXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5xX3J4W01UX1JYUV9NQ1VfV0FdLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjUwNDpcXHRcXHRcXHQgICAgICAgd2FfcnhfaWR4LCBNVDc5MTVfUlhfTUNVX1JJTkdfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01MDUtXFx0XFx0XFx0ICAgICAgIE1UX1JYX0JVRl9TSVpFLCB3YV9yeF9iYXNlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTUxMy1cXHRcXHRcXHRtZGV2LVxcdTAwM2VxX3J4W01UX1JYUV9NQUlOXS5mbGFncyA9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTE0OlxcdFxcdFxcdFxcdE1UX1dFRF9RX1JYKE1UNzkxNV9SWFFfQkFORDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjUxNTpcXHRcXHRcXHRkZXYtXFx1MDAzZW10NzYucnhfdG9rZW5fc2l6ZSArPSBNVDc5MTVfUlhfUklOR19TSVpFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTUxNi1cXHRcXHRcXHRtZGV2LVxcdTAwM2VxX3J4W01UX1JYUV9NQUlOXS53ZWQgPSBcXHUwMDI2bWRldi1cXHUwMDNlbW1pby53ZWQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01MjAtXFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfTUFJTiksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTIxOlxcdFxcdFxcdFxcdCAgICAgICBNVDc5MTVfUlhfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTUyMi1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhfQlVGX1NJWkUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01MzctXFx0XFx0XFx0XFx0d2FfcnhfYmFzZSA9ICBNVF9XRURfUlhfUklOR19CQVNFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjUzODpcXHRcXHRcXHRcXHR3YV9yeF9pZHggPSBNVDc5MTVfUlhRX01DVV9XQTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01MzktXFx0XFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNTQyLVxcdFxcdHJldCA9IG10NzZfcXVldWVfYWxsb2MoZGV2LCBcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LnFfcnhbTVRfUlhRX01BSU5fV0FdLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjU0MzpcXHRcXHRcXHRcXHQgICAgICAgd2FfcnhfaWR4LCBNVDc5MTVfUlhfTUNVX1JJTkdfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01NDQtXFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYX0JVRl9TSVpFLCB3YV9yeF9iYXNlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTU1Mi1cXHRcXHRcXHRtZGV2LVxcdTAwM2VxX3J4W01UX1JYUV9CQU5EMV0uZmxhZ3MgPVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjU1MzpcXHRcXHRcXHRcXHRNVF9XRURfUV9SWChNVDc5MTVfUlhRX0JBTkQxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo1NTQ6XFx0XFx0XFx0ZGV2LVxcdTAwM2VtdDc2LnJ4X3Rva2VuX3NpemUgKz0gTVQ3OTE1X1JYX1JJTkdfU0laRTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01NTUtXFx0XFx0XFx0bWRldi1cXHUwMDNlcV9yeFtNVF9SWFFfQkFORDFdLndlZCA9IFxcdTAwMjZtZGV2LVxcdTAwM2VtbWlvLndlZDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTU2MC1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9CQU5EMSksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTYxOlxcdFxcdFxcdFxcdCAgICAgICBNVDc5MTVfUlhfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTU2Mi1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhfQlVGX1NJWkUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01NjktXFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfQkFORDFfV0EpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjU3MDpcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTE1X1JYX01DVV9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNTcxLVxcdFxcdFxcdFxcdCAgICAgICBNVF9SWF9CVUZfU0laRSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2VlcHJvbS5jPTY3PXN0YXRpYyBjaGFyICptdDc5MTVfZWVwcm9tX25hbWUoc3RydWN0IG10NzkxNV9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2VlcHJvbS5jLTcxLVxcdFxcdHJldHVybiBkZXYtXFx1MDAzZWRiZGNfc3VwcG9ydCA/XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmM6NzI6XFx0XFx0ICAgICAgIE1UNzkxNV9FRVBST01fREVGQVVMVF9EQkRDIDogTVQ3OTE1X0VFUFJPTV9ERUZBVUxUO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2VlcHJvbS5jLTczLVxcdGNhc2UgMHg3OTgxOlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmM9MTIzPXN0YXRpYyBpbnQgbXQ3OTE1X2VlcHJvbV9sb2FkKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9lZXByb20uYy0xMzYtXFx0XFx0dTMyIGJsb2NrX251bSwgaTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9lZXByb20uYzoxMzc6XFx0XFx0dTMyIGVlcHJvbV9ibGtfc2l6ZSA9IE1UNzkxNV9FRVBST01fQkxPQ0tfU0laRTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9lZXByb20uYy0xMzgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9lZXByb20uYz0zNjM9bXQ3OTE1X2VlcHJvbV9oYXNfYmFja2dyb3VuZF9yYWRhcihzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2VlcHJvbS5jLTM2NC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmM6MzY1OlxcdHU4IHZhbCwgYnVmW01UNzkxNV9FRVBST01fQkxPQ0tfU0laRV07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmMtMzY2LVxcdHU4IGJhbmRfc2VsLCB0eF9wYXRoLCByeF9wYXRoO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmMtMzc2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2VlcHJvbS5jOjM3NzpcXHRcXHR2YWwgPSBidWZbb2ZmcyAlIE1UNzkxNV9FRVBST01fQkxPQ0tfU0laRV07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmMtMzc4LVxcdFxcdGJhbmRfc2VsID0gdThfZ2V0X2JpdHModmFsLCBNVF9FRV9XSUZJX0NPTkYwX0JBTkRfU0VMKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2VlcHJvbS5oLTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmg6NDojaWZuZGVmIF9fTVQ3OTE1X0VFUFJPTV9IXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmg6NTojZGVmaW5lIF9fTVQ3OTE1X0VFUFJPTV9IXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmgtNi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0xNT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBpZl9saW1pdHNbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0yNS1cXHR9LCB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjI2OlxcdFxcdC5tYXggPSBNVDc5MTVfTUFYX0lOVEVSRkFDRVMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTI3LVxcdFxcdC50eXBlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9TVEFUSU9OKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTMxPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2NvbWJpbmF0aW9uIGlmX2NvbWJbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0zNC1cXHRcXHQubl9saW1pdHMgPSBBUlJBWV9TSVpFKGlmX2xpbWl0cyksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjM1OlxcdFxcdC5tYXhfaW50ZXJmYWNlcyA9IE1UNzkxNV9NQVhfSU5URVJGQUNFUyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMzYtXFx0XFx0Lm51bV9kaWZmZXJlbnRfY2hhbm5lbHMgPSAxLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTc0PXN0YXRpYyBzc2l6ZV90IG10NzkxNV90aGVybWFsX3RlbXBfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTg4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzo4OTpcXHRpZiAoKGkgLSAxID09IE1UNzkxNV9DUklUX1RFTVBfSURYIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjkwOlxcdCAgICAgdmFsIFxcdTAwM2UgcGh5LVxcdTAwM2V0aHJvdHRsZV90ZW1wW01UNzkxNV9NQVhfVEVNUF9JRFhdKSB8fFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzo5MTpcXHQgICAgKGkgLSAxID09IE1UNzkxNV9NQVhfVEVNUF9JRFggXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6OTI6XFx0ICAgICB2YWwgXFx1MDAzYyBwaHktXFx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTE1X0NSSVRfVEVNUF9JRFhdKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy05My1cXHRcXHRkZXZfZXJyKHBoeS1cXHUwMDNlZGV2LVxcdTAwM2VtdDc2LmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0xMjM9bXQ3OTE1X3RoZXJtYWxfZ2V0X21heF90aHJvdHRsZV9zdGF0ZShzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZSAqY2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMjUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoxMjY6XFx0KnN0YXRlID0gTVQ3OTE1X0NERVZfVEhST1RUTEVfTUFYO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMjctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9MTQzPW10NzkxNV90aGVybWFsX3NldF9jdXJfdGhyb3R0bGVfc3RhdGUoc3RydWN0IHRoZXJtYWxfY29vbGluZ19kZXZpY2UgKmNkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTQ2LVxcdHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkgPSBjZGV2LVxcdTAwM2VkZXZkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoxNDc6XFx0dTggdGhyb3R0bGluZyA9IE1UNzkxNV9USEVSTUFMX1RIUk9UVExFX01BWCAtIHN0YXRlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xNDgtXFx0aW50IHJldDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTQ5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoxNTA6XFx0aWYgKHN0YXRlIFxcdTAwM2UgTVQ3OTE1X0NERVZfVEhST1RUTEVfTUFYKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTE1MS1cXHRcXHRkZXZfZXJyKHBoeS1cXHUwMDNlZGV2LVxcdTAwM2VtdDc2LmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0yMTY9c3RhdGljIGludCBtdDc5MTVfdGhlcm1hbF9pbml0KHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMjM4LVxcdC8qIGluaXRpYWxpemUgY3JpdGljYWwvbWF4aW11bSBoaWdoIHRlbXBlcmF0dXJlICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjIzOTpcXHRwaHktXFx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTE1X0NSSVRfVEVNUF9JRFhdID0gTVQ3OTE1X0NSSVRfVEVNUDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MjQwOlxcdHBoeS1cXHUwMDNldGhyb3R0bGVfdGVtcFtNVDc5MTVfTUFYX1RFTVBfSURYXSA9IE1UNzkxNV9NQVhfVEVNUDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMjQxLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTMyND1zdGF0aWMgdm9pZCBfX210NzkxNV9pbml0X3R4cG93ZXIoc3RydWN0IG10NzkxNV9waHkgKnBoeSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0zNTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjM1MjpcXHRcXHQvKiBNVDc5MTVOIGNhbiBub3QgZW5hYmxlIEJhY2tvZmYgdGFibGUgd2l0aG91dCBzZXR0aW5nIHZhbHVlIGluIGR0cyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0zNTMtXFx0XFx0aWYgKCFsaW1pdHMucGF0aC5vZmRtWzBdKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTUyNT1tdDc5MTVfbWFjX2luaXRfYmFuZChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCB1OCBiYW5kKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTU3MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6NTcxOlxcdC8qIGV4Y2x1ZGUgZXN0aW1hdGVkIGJhY2tvZmYgdGltZSBmb3IgVHggZHVyYXRpb24gb24gTVQ3OTE1ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTU3Mi1cXHRpZiAoaXNfbXQ3OTE1KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTg2OT1tdDc5MTVfaW5pdF9oYXJkd2FyZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5MilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy04OTgtXFx0LyogQmVhY29uIGFuZCBtZ210IGZyYW1lcyBzaG91bGQgb2NjdXB5IHdjaWQgMCAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzo4OTk6XFx0aWR4ID0gbXQ3Nl93Y2lkX2FsbG9jKGRldi1cXHUwMDNlbXQ3Ni53Y2lkX21hc2ssIE1UNzkxNV9XVEJMX1NUQSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTkwMC1cXHRpZiAoaWR4KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM9MTEyNT12b2lkIG10NzkxNV9tYWNfc2V0X3RpbWluZyhzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMTE3NC1cXHRpZiAocGh5LVxcdTAwM2VzbG90dGltZSBcXHUwMDNjIDIwIHx8IGFfYmFuZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYzoxMTc1OlxcdFxcdHZhbCA9IE1UNzkxNV9DRkVORF9SQVRFX0RFRkFVTFQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMTE3Ni1cXHRlbHNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM6MTE3NzpcXHRcXHR2YWwgPSBNVDc5MTVfQ0ZFTkRfUkFURV8xMUI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMTE3OC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jPTEyNDM9bXQ3OTE1X3dhaXRfcmVzZXRfc3RhdGUoc3RydWN0IG10NzkxNV9kZXYgKmRldiwgdTMyIHN0YXRlKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMTI0OC1cXHRcXHRcXHRcXHQgKFJFQURfT05DRShkZXYtXFx1MDAzZXJlY292ZXJ5LnN0YXRlKSBcXHUwMDI2IHN0YXRlKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYzoxMjQ5OlxcdFxcdFxcdFxcdCBNVDc5MTVfUkVTRVRfVElNRU9VVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMTI1MC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jPTE0MjU9bXQ3OTE1X21hY19mdWxsX3Jlc2V0KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy0xNDY1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jOjE0NjY6XFx0aSA9IG10NzZfd2NpZF9hbGxvYyhkZXYtXFx1MDAzZW10NzYud2NpZF9tYXNrLCBNVDc5MTVfV1RCTF9TVEEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTE0NjctXFx0ZGV2LVxcdTAwM2VtdDc2Lmdsb2JhbF93Y2lkLmlkeCA9IGk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYz0xNDgyPXZvaWQgbXQ3OTE1X21hY19yZXNldF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTE1OTYtXFx0aWVlZTgwMjExX3F1ZXVlX2RlbGF5ZWRfd29yayhtdDc2X2h3KGRldiksIFxcdTAwMjZkZXYtXFx1MDAzZW1waHkubWFjX3dvcmssXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM6MTU5NzpcXHRcXHRcXHRcXHQgICAgIE1UNzkxNV9XQVRDSERPR19USU1FKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy0xNTk4LVxcdGlmIChwaHkyKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMTYwMC1cXHRcXHRcXHRcXHRcXHQgICAgIFxcdTAwMjZwaHkyLVxcdTAwM2VtdDc2LVxcdTAwM2VtYWNfd29yayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYzoxNjAxOlxcdFxcdFxcdFxcdFxcdCAgICAgTVQ3OTE1X1dBVENIRE9HX1RJTUUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTE2MDItfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM9MjAwNj12b2lkIG10NzkxNV9tYWNfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy0yMDMyLVxcdGllZWU4MDIxMV9xdWV1ZV9kZWxheWVkX3dvcmsobXBoeS1cXHUwMDNlaHcsIFxcdTAwMjZtcGh5LVxcdTAwM2VtYWNfd29yayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYzoyMDMzOlxcdFxcdFxcdFxcdCAgICAgTVQ3OTE1X1dBVENIRE9HX1RJTUUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTIwMzQtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM9MjI2OD1tdDc5MTVfbWFjX3R3dF9wYXJhbV9lcXVhbChzdHJ1Y3QgbXQ3OTE1X3N0YSAqbXN0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTIyNzUtXFx0ZXhwID0gRklFTERfR0VUKElFRUU4MDIxMV9UV1RfUkVRVFlQRV9XQUtFX0lOVF9FWFAsIHR5cGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jOjIyNzY6XFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIE1UNzkxNV9NQVhfU1RBX1RXVF9BR1JUOyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy0yMjc3LVxcdFxcdHN0cnVjdCBtdDc5MTVfdHd0X2Zsb3cgKmY7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYz0yMjk1PXZvaWQgbXQ3OTE1X21hY19hZGRfdHd0X3NldHVwKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMjMxMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYzoyMzE0OlxcdGlmIChkZXYtXFx1MDAzZXR3dC5uX2FncnQgPT0gTVQ3OTE1X01BWF9UV1RfQUdSVClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy0yMzE1LVxcdFxcdGdvdG8gdW5sb2NrO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMjMxOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYzoyMzIwOlxcdGlmICh0d3RfYWdydC1cXHUwMDNlbWluX3R3dF9kdXIgXFx1MDAzYyBNVDc5MTVfTUlOX1RXVF9EVVIpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy0yMzIxLVxcdFxcdHNldHVwX2NtZCA9IFRXVF9TRVRVUF9DTURfRElDVEFURTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYzoyMzIyOlxcdFxcdHR3dF9hZ3J0LVxcdTAwM2VtaW5fdHd0X2R1ciA9IE1UNzkxNV9NSU5fVFdUX0RVUjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy0yMzIzLVxcdFxcdGdvdG8gdW5sb2NrO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmgtMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuaDo0OiNpZm5kZWYgX19NVDc5MTVfTUFDX0hcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuaDo1OiNkZWZpbmUgX19NVDc5MTVfTUFDX0hcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuaC02LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jPTIzPWludCBtdDc5MTVfcnVuKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTYwLVxcdHJldCA9IG10NzkxNV9tY3Vfc2V0X3RoZXJtYWxfdGhyb3R0bGluZyhwaHksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jOjYxOlxcdFxcdFxcdFxcdFxcdFxcdE1UNzkxNV9USEVSTUFMX1RIUk9UVExFX01BWCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTYyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTcwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYzo3MTpcXHRyZXQgPSBtdDc2X2Nvbm5hY19tY3Vfc2V0X3J0c190aHJlc2goXFx1MDAyNmRldi1cXHUwMDNlbXQ3NiwgTVQ3OTE1X1JUU19MRU5fVEhSRVMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTcyLVxcdFxcdFxcdFxcdFxcdCAgICAgcGh5LVxcdTAwM2VtdDc2LVxcdTAwM2ViYW5kX2lkeCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtODctXFx0XFx0aWVlZTgwMjExX3F1ZXVlX2RlbGF5ZWRfd29yayhodywgXFx1MDAyNnBoeS1cXHUwMDNlbXQ3Ni1cXHUwMDNlbWFjX3dvcmssXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jOjg4OlxcdFxcdFxcdFxcdFxcdCAgICAgTVQ3OTE1X1dBVENIRE9HX1RJTUUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy04OS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYz0yMDQ9c3RhdGljIGludCBtdDc5MTVfYWRkX2ludGVyZmFjZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0yMjItXFx0bXZpZi1cXHUwMDNlbXQ3Ni5pZHggPSBfX2ZmczY0KH5kZXYtXFx1MDAzZW10NzYudmlmX21hc2spO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYzoyMjM6XFx0aWYgKG12aWYtXFx1MDAzZW10NzYuaWR4IFxcdTAwM2U9IChNVDc5MTVfTUFYX0lOVEVSRkFDRVMgXFx1MDAzY1xcdTAwM2MgZGV2LVxcdTAwM2VkYmRjX3N1cHBvcnQpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTIyNC1cXHRcXHRyZXQgPSAtRU5PU1BDO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jPTMzMz1pbnQgbXQ3OTE1X3NldF9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqbXBoeSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0zNTktXFx0XFx0XFx0XFx0XFx0ICAgICBcXHUwMDI2cGh5LVxcdTAwM2VtdDc2LVxcdTAwM2VtYWNfd29yayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6MzYwOlxcdFxcdFxcdFxcdFxcdCAgICAgTVQ3OTE1X1dBVENIRE9HX1RJTUUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0zNjEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM9NzUyPWludCBtdDc5MTVfbWFjX3N0YV9hZGQoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTc2MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6NzYxOlxcdGlkeCA9IG10NzZfd2NpZF9hbGxvYyhkZXYtXFx1MDAzZW10NzYud2NpZF9tYXNrLCBNVDc5MTVfV1RCTF9TVEEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy03NjItXFx0aWYgKGlkeCBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM9MTM1OD1zdGF0aWMgY29uc3QgY2hhciBtdDc5MTVfZ3N0cmluZ3Nfc3RhdHNbXVtFVEhfR1NUUklOR19MRU5dID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTE0OTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jOjE0OTM6I2RlZmluZSBNVDc5MTVfU1NUQVRTX0xFTiBBUlJBWV9TSVpFKG10NzkxNV9nc3RyaW5nc19zdGF0cylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtMTQ5NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYz0xNTEwPWludCBtdDc5MTVfZ2V0X2V0X3NzZXRfY291bnQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtMTUxNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6MTUxNjpcXHRyZXR1cm4gTVQ3OTE1X1NTVEFUU19MRU4gKyBwYWdlX3Bvb2xfZXRodG9vbF9zdGF0c19nZXRfY291bnQoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtMTUxNy19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM9MTUzMT12b2lkIG10NzkxNV9nZXRfZXRfc3RhdHMoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtMTY1OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6MTY1OTpcXHRzdGF0c19zaXplID0gTVQ3OTE1X1NTVEFUU19MRU4gKyBwYWdlX3Bvb2xfZXRodG9vbF9zdGF0c19nZXRfY291bnQoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtMTY2MC1cXHRpZiAoZWkgIT0gc3RhdHNfc2l6ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYz0xNzY2PW10NzkxNV9yZWNvbmZpZ19jb21wbGV0ZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0xNzcyLVxcdGllZWU4MDIxMV9xdWV1ZV9kZWxheWVkX3dvcmsoaHcsIFxcdTAwMjZwaHktXFx1MDAzZW10NzYtXFx1MDAzZW1hY193b3JrLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYzoxNzczOlxcdFxcdFxcdFxcdCAgICAgTVQ3OTE1X1dBVENIRE9HX1RJTUUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0xNzc0LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTEzLVxcdGNhc2UgMHg3OTE1OlxcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzoxNDpcXHRcXHRfZncgPSBNVDc5MTVfIyNuYW1lO1xcdFxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0xNS1cXHRcXHRicmVhaztcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYz03MDk9aW50IG10NzkxNV9tY3VfYWRkX2Jzc19pbmZvKHN0cnVjdCBtdDc5MTVfcGh5ICpwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy03MjEtXFx0c2tiID0gX19tdDc2X2Nvbm5hY19tY3VfYWxsb2Nfc3RhX3JlcShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LCBcXHUwMDI2bXZpZi1cXHUwMDNlbXQ3NiwgTlVMTCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzo3MjI6XFx0XFx0XFx0XFx0XFx0ICAgICAgTVQ3OTE1X0JTU19VUERBVEVfTUFYX1NJWkUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTcyMy1cXHRpZiAoSVNfRVJSKHNrYikpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYz0xMTI5PW10NzkxNV9tY3Vfc3RhX3NvdW5kaW5nX3JhdGUoc3RydWN0IHN0YV9yZWNfYmYgKmJmKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMTEzMi1cXHRiZi1cXHUwMDNlbmRwX3JhdGUgPSAwO1xcdFxcdFxcdFxcdC8qIG1jczAgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzoxMTMzOlxcdGJmLVxcdTAwM2VuZHBhX3JhdGUgPSBNVDc5MTVfQ0ZFTkRfUkFURV9ERUZBVUxUO1xcdC8qIG9mZG0gMjRtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM6MTEzNDpcXHRiZi1cXHUwMDNlcmVwdF9wb2xsX3JhdGUgPSBNVDc5MTVfQ0ZFTkRfUkFURV9ERUZBVUxUO1xcdC8qIG9mZG0gMjRtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMTEzNS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYz0xOTc0PW10NzkxNV9tY3VfYWRkX2luYmFuZF9kaXNjb3Yoc3RydWN0IG10NzkxNV9kZXYgKmRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTE5OTctXFx0cnNrYiA9IF9fbXQ3Nl9jb25uYWNfbWN1X2FsbG9jX3N0YV9yZXEoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NiwgXFx1MDAyNm12aWYtXFx1MDAzZW10NzYsIE5VTEwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM6MTk5ODpcXHRcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTE1X01BWF9CU1NfT0ZGTE9BRF9TSVpFKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0xOTk5LVxcdGlmIChJU19FUlIocnNrYikpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yMDI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjIwMjg6XFx0aWYgKHNrYi1cXHUwMDNlbGVuIFxcdTAwM2UgTVQ3OTE1X01BWF9CRUFDT05fU0laRSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTIwMjktXFx0XFx0ZGV2X2VycihkZXYtXFx1MDAzZW10NzYuZGV2LCBcXFwiaW5iYW5kIGRpc2NvdmVyeSBzaXplIGxpbWl0IGV4Y2VlZFxcXFxuXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYz0yMDU3PWludCBtdDc5MTVfbWN1X2FkZF9iZWFjb24oc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yMDY3LVxcdHN0cnVjdCBic3NfaW5mb19iY24gKmJjbjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzoyMDY4OlxcdGludCBsZW4gPSBNVDc5MTVfTUFYX0JTU19PRkZMT0FEX1NJWkU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMjA2OS1cXHRib29sIGV4dF9waHkgPSBwaHkgIT0gXFx1MDAyNmRldi1cXHUwMDNlcGh5O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMjA5MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzoyMDkyOlxcdGlmIChza2ItXFx1MDAzZWxlbiBcXHUwMDNlIE1UNzkxNV9NQVhfQkVBQ09OX1NJWkUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yMDkzLVxcdFxcdGRldl9lcnIoZGV2LVxcdTAwM2VtdDc2LmRldiwgXFxcIkJjbiBzaXplIGxpbWl0IGV4Y2VlZFxcXFxuXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYz0yMzYzPXN0YXRpYyBpbnQgbXQ3OTE1X3JlZF9zZXRfd2F0ZXJtYXJrKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yMzc4LVxcdFxcdC5sZW4gPSBjcHVfdG9fbGUxNihzaXplb2YocmVxKSAtIHNpemVvZihyZXEuYXJncykpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjIzNzk6XFx0XFx0LmhpZ2hfbWFyayA9IGNwdV90b19sZTE2KE1UNzkxNV9IV19UT0tFTl9TSVpFIC0gMjU2KSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzoyMzgwOlxcdFxcdC5sb3dfbWFyayA9IGNwdV90b19sZTE2KE1UNzkxNV9IV19UT0tFTl9TSVpFIC0gMjU2IC0gMTUzNiksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMjM4MS1cXHR9O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM9MjkyMD1pbnQgbXQ3OTE1X21jdV9nZXRfZWVwcm9tKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIHUzMiBvZmZzZXQsIHU4ICpyZWFkX2J1ZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTI5MjMtXFx0XFx0LmFkZHIgPSBjcHVfdG9fbGUzMihyb3VuZF9kb3duKG9mZnNldCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzoyOTI0OlxcdFxcdFxcdFxcdCAgICBNVDc5MTVfRUVQUk9NX0JMT0NLX1NJWkUpKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yOTI1LVxcdH07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yOTQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjI5NDE6XFx0XFx0aWYgKGFkZHIgXFx1MDAzZSBkZXYtXFx1MDAzZW10NzYuZWVwcm9tLnNpemUgLSBNVDc5MTVfRUVQUk9NX0JMT0NLX1NJWkUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yOTQyLVxcdFxcdFxcdGRldl9rZnJlZV9za2Ioc2tiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTI5NDYtXFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjI5NDc6XFx0bWVtY3B5KGJ1ZiwgcmVzLVxcdTAwM2VkYXRhLCBNVDc5MTVfRUVQUk9NX0JMT0NLX1NJWkUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTI5NDgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYz0zMTc4PWludCBtdDc5MTVfbWN1X2dldF9jaGFuX21pYl9pbmZvKHN0cnVjdCBtdDc5MTVfcGh5ICpwaHksIGJvb2wgY2hhbl9zd2l0Y2gpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0zMjI1LSNkZWZpbmUgX19yZXNfdTY0KHMpIGxlNjRfdG9fY3B1KHJlc1tzXS5kYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjMyMjY6XFx0Lyogc3VidHJhY3QgVHggYmFja29mZiB0aW1lIGZyb20gVHggZHVyYXRpb24gZm9yIE1UNzkxNSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTMyMjctXFx0aWYgKGlzX210NzkxNShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM9MzM1MT1pbnQgbXQ3OTE1X21jdV9zZXRfdHhwb3dlcl9mcmFtZShzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMzM3MS1cXHRpbnQgcmV0O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjMzNzI6XFx0czggdHhwb3dlcl9za3VbTVQ3OTE1X1NLVV9SQVRFX05VTV07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMzM3My1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jPTM0NDA9aW50IG10NzkxNV9tY3Vfc2V0X3R4cG93ZXJfc2t1KHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0zNDcxLVxcdHNrYiA9IG10NzZfbWN1X21zZ19hbGxvYyhcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LCBOVUxMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjM0NzI6XFx0XFx0XFx0XFx0IHNpemVvZihoZHIpICsgTVQ3OTE1X1NLVV9SQVRFX05VTSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMzQ3My1cXHRpZiAoIXNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTM0OTgtXFx0c2tiID0gbXQ3Nl9tY3VfbXNnX2FsbG9jKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYsIE5VTEwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM6MzQ5OTpcXHRcXHRcXHRcXHQgc2l6ZW9mKGhkcikgKyBNVDc5MTVfU0tVX1BBVEhfTlVNKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0zNTAwLVxcdGlmICghc2tiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM9MzU0Mz1pbnQgbXQ3OTE1X21jdV9nZXRfdHhwb3dlcl9za3Uoc3RydWN0IG10NzkxNV9waHkgKnBoeSwgczggKnR4cG93ZXIsIGludCBsZW4sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0zNTY3LVxcdGlmIChjYXRlZ29yeSA9PSBUWF9QT1dFUl9JTkZPX1JBVEUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzozNTY4OlxcdFxcdHM4IHJlc1tNVDc5MTVfU0tVX1JBVEVfTlVNXVsyXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0zNTY5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM9NDAwMD1pbnQgbXQ3OTE1X21jdV9zZXRfcHJvdGVjdGlvbihzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtNDA0Ny1cXHRpZiAocnRzX3RocmVzaG9sZCA9PSAodTMyKS0xKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjQwNDg6XFx0XFx0cHJvdC1cXHUwMDNlcnRzX2xlbl90aHJlcyA9IGNwdV90b19sZTMyKE1UNzkxNV9SVFNfTEVOX1RIUkVTKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy00MDQ5LVxcdGVsc2VcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oLTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1Lmg6NDojaWZuZGVmIF9fTVQ3OTE1X01DVV9IXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1Lmg6NTojZGVmaW5lIF9fTVQ3OTE1X01DVV9IXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmgtNi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oPTE5Nj1zdHJ1Y3QgbXQ3OTE1X21jdV90eHBvd2VyX3NrdSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuaC0xOTktXFx0dTggYmFuZF9pZHg7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1Lmg6MjAwOlxcdHM4IHR4cG93ZXJfc2t1W01UNzkxNV9TS1VfUkFURV9OVU1dO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oLTIwMS19IF9fcGFja2VkO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1Lmg9NTA4PWVudW0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmgtNTIzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oOjUyNDojZGVmaW5lIE1UNzkxNV9NQVhfQkVBQ09OX1NJWkVcXHRcXHQxMzA4XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1Lmg6NTI1OiNkZWZpbmUgTVQ3OTE1X0JFQUNPTl9VUERBVEVfU0laRVxcdChzaXplb2Yoc3RydWN0IHN0YV9yZXFfaGRyKSArXFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oLTUyNi1cXHRcXHRcXHRcXHRcXHQgc2l6ZW9mKHN0cnVjdCBic3NfaW5mb19iY24pICtcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuaC01MzAtXFx0XFx0XFx0XFx0XFx0IHNpemVvZihzdHJ1Y3QgYnNzX2luZm9fYmNuX2NvbnQpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oOjUzMTojZGVmaW5lIE1UNzkxNV9NQVhfQlNTX09GRkxPQURfU0laRVxcdChNVDc5MTVfTUFYX0JFQUNPTl9TSVpFICtcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1Lmg6NTMyOlxcdFxcdFxcdFxcdFxcdCBNVDc5MTVfQkVBQ09OX1VQREFURV9TSVpFKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oLTUzMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuaDo1MzQ6I2RlZmluZSBNVDc5MTVfQlNTX1VQREFURV9NQVhfU0laRVxcdChzaXplb2Yoc3RydWN0IHN0YV9yZXFfaGRyKSArXFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oLTUzNS1cXHRcXHRcXHRcXHRcXHQgc2l6ZW9mKHN0cnVjdCBic3NfaW5mb19vbWFjKSArXFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jPTYzMz1pbnQgbXQ3OTE1X21taW9fd2VkX2luaXQoc3RydWN0IG10NzkxNV9kZXYgKmRldiwgdm9pZCAqcGRldl9wdHIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtNjkxLVxcdH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6NjkyOlxcdHdlZC1cXHUwMDNld2xhbi5uYnVmID0gTVQ3OTE1X0hXX1RPS0VOX1NJWkU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTY5My1cXHR3ZWQtXFx1MDAzZXdsYW4udHhfdGJpdFswXSA9IGlzX210NzkxNShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSA/IDQgOiAzMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy02OTUtXFx0d2VkLVxcdTAwM2V3bGFuLnR4ZnJlZV90Yml0ID0gaXNfbXQ3OTh4KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpID8gMiA6IDE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjY5NjpcXHR3ZWQtXFx1MDAzZXdsYW4udG9rZW5fc3RhcnQgPSBNVDc5MTVfVE9LRU5fU0laRSAtIHdlZC1cXHUwMDNld2xhbi5uYnVmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy02OTctXFx0d2VkLVxcdTAwM2V3bGFuLndjaWRfNTEyID0gIWlzX210NzkxNShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy02OTktXFx0d2VkLVxcdTAwM2V3bGFuLnJ4X25idWYgPSA2NTUzNjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6NzAwOlxcdHdlZC1cXHUwMDNld2xhbi5yeF9ucGt0ID0gTVQ3OTE1X1dFRF9SWF9UT0tFTl9TSVpFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy03MDEtXFx0d2VkLVxcdTAwM2V3bGFuLnJ4X3NpemUgPSBTS0JfV0lUSF9PVkVSSEVBRChNVF9SWF9CVUZfU0laRSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM9OTE3PXN0cnVjdCBtdDc5MTVfZGV2ICptdDc5MTVfbW1pb19wcm9iZShzdHJ1Y3QgZGV2aWNlICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTkyOC1cXHRcXHRcXHRcXHRTVVJWRVlfSU5GT19USU1FX0JTU19SWCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6OTI5OlxcdFxcdC50b2tlbl9zaXplID0gTVQ3OTE1X1RPS0VOX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTkzMC1cXHRcXHQudHhfcHJlcGFyZV9za2IgPSBtdDc5MTVfdHhfcHJlcGFyZV9za2IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM9MTAwMz1tb2R1bGVfZXhpdChtdDc5MTVfZXhpdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjEwMDQ6TU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJNZWRpYVRlayBNVDc5MTVFIE1NSU8gaGVscGVyc1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy0xMDA1LU1PRFVMRV9MSUNFTlNFKFxcXCJEdWFsIEJTRC9HUExcXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oLTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1Lmg6NDojaWZuZGVmIF9fTVQ3OTE1X0hcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tdDc5MTUuaDo1OiNkZWZpbmUgX19NVDc5MTVfSFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oLTYtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tdDc5MTUuaC0xMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tdDc5MTUuaDoxMjojZGVmaW5lIE1UNzkxNV9NQVhfSU5URVJGQUNFU1xcdFxcdDE5XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1Lmg6MTM6I2RlZmluZSBNVDc5MTVfV1RCTF9TSVpFXFx0XFx0Mjg4XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1LmgtMTQtI2RlZmluZSBNVDc5MTZfV1RCTF9TSVpFXFx0XFx0NTQ0XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1Lmg6MTU6I2RlZmluZSBNVDc5MTVfV1RCTF9SRVNFUlZFRFxcdFxcdChtdDc5MTVfd3RibF9zaXplKGRldikgLSAxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oOjE2OiNkZWZpbmUgTVQ3OTE1X1dUQkxfU1RBXFx0XFx0XFx0KE1UNzkxNV9XVEJMX1JFU0VSVkVEIC0gXFxcXFxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QwMzowOTowMy4yOTQwNzUzMzJaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NDExODgxMTY0OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBNVDc5MTUgRHJpdmVyIGZvciBGdXp6aW5nKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duIHN5c3RlbWF0aWNhbGx5LiBJIHNlZSB0aGUgY2hhbmdlcyB0b3VjaCBgbXQ3OTE1X3VucmVnaXN0ZXJfdGhlcm1hbGAgYW5kIGBtdDc5MTVfdGhlcm1hbF9pbml0YCB3aXRoaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuY2AuIFRoaXMgaXMgdGhlIFdpLUZpIDYgZHJpdmVyIGZvciBNZWRpYVRlaydzIE1UNzkxNSwgTVQ3OTg2LCBhbmQgTVQ3OTE2IFBDSWUgYW5kIFNvQyBoYXJkd2FyZS4gVGhlIGNvcmUgcXVlc3Rpb24gaXMgYWx3YXlzOiBjYW4gd2UgcmVhY2ggdGhpcyBjb2RlIGluIGEgc3RhbmRhcmQgZnV6emluZyBlbnZpcm9ubWVudD9cblxuS25vd2luZyB0aGUgdGFyZ2V0IHdlbGwsIEkgaW1tZWRpYXRlbHkgdGhpbms6IGFyZSB0aGVzZSBjaGlwcyBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIEdDRSBWTXM/IFRoZSBhbnN3ZXIgaXMgYSBjbGVhciBuby4gV2UncmUgZGVhbGluZyB3aXRoIHZlcnkgc3BlY2lmaWMgaGFyZHdhcmUgaGVyZS5cblxuVGhlIGRvY3VtZW50IHJlaW5mb3JjZXMgbXkgdW5kZXJzdGFuZGluZyBwZXJmZWN0bHksIHJlZmVyZW5jaW5nIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZSBsaWtlIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIGFuZCBHUFUgZHJpdmVycy4gSXQgaGlnaGxpZ2h0cyB0aGF0IHRoZXNlIHJlcXVpcmUgcGh5c2ljYWwgQVNJQ3Mgb3IgUENJZSBjYXJkcyBub3Qgc2ltdWxhdGVkIGluIGNvbW1vbiB2aXJ0dWFsaXphdGlvbiB0b29scy4gVGhlIE1lZGlhVGVrIE1UNzkxNSB3aXJlbGVzcyBOSUMgZHJpdmVyIGZpdHMgdGhpcyBkZXNjcmlwdGlvbiAqcGVyZmVjdGx5Ki4gSXQncyB2ZW5kb3Itc3BlY2lmaWMsIGRlcGVuZGVudCBvbiBhIHNwZWNpZmljIHBoeXNpY2FsIFBDSWUvU29DIHdpcmVsZXNzIGNoaXAuXG5cblRoZXJlZm9yZSwgYFdvcnRoRnV6emluZ2AgaGFzIHRvIGJlIGBmYWxzZWAuIFRoZXJlJ3Mgbm8gd2F5IHdlIGNhbiB0cmlnZ2VyIHRoZXNlIGZ1bmN0aW9ucyBlZmZlY3RpdmVseSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBDb25zZXF1ZW50bHksIGBGb2N1c1N5bWJvbHNgIG5lZWRzIHRvIGJlIGFuIGVtcHR5IGxpc3QsIGBbXWAuIFNpbWlsYXJseSwgYEVuYWJsZUNvbmZpZ3NgIHNob3VsZCBiZSBlbXB0eSBvciBgbnVsbGAg4oCTIG5vdGhpbmcgaXMgcmVsZXZhbnQgaGVyZS4gVGhlIGBSZWFzb25pbmdgIHNob3VsZCBiZSBjcnlzdGFsIGNsZWFyOiBgbXQ3OTE1YCBpcyBhIHZlbmRvci1zcGVjaWZpYyBkcml2ZXIgZm9yIE1lZGlhVGVrJ3MgTVQ3OTE1L01UNzk4Ni9NVDc5MTYgUENJZSBhbmQgU29DIHdpcmVsZXNzIG5ldHdvcmsgY2hpcHMgdGhhdCByZXF1aXJlIHBoeXNpY2FsIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKSwgcmVuZGVyaW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS5cblxuTm93LCBsZXQncyBjYWxsIGBzZXQtcmVzdWx0c2AuIEl0J3MgYSBzdHJhaWdodGZvcndhcmQgY2FzZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjU0NjcsIk91dHB1dFRva2VucyI6MTI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzU4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDAzOjA5OjA3LjQxMjg5MDE5OVoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQxMTEwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIG1vZGlmaWVkIGNvZGUgaXMgd2l0aGluIHRoZSBNZWRpYVRlayBNVDc5MTUgd2lyZWxlc3MgZHJpdmVyIChkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS8pLCB3aGljaCByZXF1aXJlcyBzcGVjaWZpYyBwaHlzaWNhbCBQQ0llL1NvQyBoYXJkd2FyZSAoTVQ3OTE1L01UNzkxNi9NVDc5ODYpIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiBBcyBzdWNoLCB0aGlzIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBzeXprYWxsZXIgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIG1vZGlmaWVkIGNvZGUgaXMgd2l0aGluIHRoZSBNZWRpYVRlayBNVDc5MTUgd2lyZWxlc3MgZHJpdmVyIChkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS8pLCB3aGljaCByZXF1aXJlcyBzcGVjaWZpYyBwaHlzaWNhbCBQQ0llL1NvQyBoYXJkd2FyZSAoTVQ3OTE1L01UNzkxNi9NVDc5ODYpIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiBBcyBzdWNoLCB0aGlzIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBzeXprYWxsZXIgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDAzOjA5OjA3LjQxMjkzOTgzOVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDIxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowvz5b5[0].run-triage(0) Phase: Succeeded StartedAt: 2026-09-07 03:06:33 +0000 UTC FinishedAt: 2026-09-07 03:09:08 +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+CgkJCTx0ZD4yMDI2LzA5LzA3IDAzOjA4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgbW9kaWZpZWQgY29kZSBpcyB3aXRoaW4gdGhlIE1lZGlhVGVrIE1UNzkxNSB3aXJlbGVzcyBkcml2ZXIgKGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1LyksIHdoaWNoIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIFBDSWUvU29DIGhhcmR3YXJlIChNVDc5MTUvTVQ3OTE2L01UNzk4Nikgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkuIEFzIHN1Y2gsIHRoaXMgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIHN5emthbGxlciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAwMzowODwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGE2NDJmNWJjMDQzMWFhZDYxZTMzMjc5NGEyMWJkMDIxYjg2ZDU5MDFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIFNlcCA3IDAzOjA4OjM5IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuY1xuaW5kZXggY2E0NmEyMDNhYTQ4Yi4uZTUyODVkMWExZjlkZSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jXG5AQCAtMjAwLDExICYjNDM7MjAwLDE3IEBAIHN0YXRpYyB2b2lkIG10NzkxNV91bnJlZ2lzdGVyX3RoZXJtYWwoc3RydWN0IG10NzkxNV9waHkgKnBoeSlcbiB7XG4gXHRzdHJ1Y3Qgd2lwaHkgKndpcGh5ID0gcGh5LVx1MDAzZW10NzYtXHUwMDNlaHctXHUwMDNld2lwaHk7XG4gXG4mIzQzO1x0aWYgKHBoeS1cdTAwM2V0em9uZSkge1xuJiM0MztcdFx0ZGV2bV90aGVybWFsX29mX3pvbmVfdW5yZWdpc3RlcihwaHktXHUwMDNlZGV2LVx1MDAzZW10NzYuZGV2LCBwaHktXHUwMDNldHpvbmUpO1xuJiM0MztcdFx0cGh5LVx1MDAzZXR6b25lID0gTlVMTDtcbiYjNDM7XHR9XG4mIzQzO1xuIFx0aWYgKCFwaHktXHUwMDNlY2RldilcbiBcdFx0cmV0dXJuO1xuIFxuIFx0c3lzZnNfcmVtb3ZlX2xpbmsoXHUwMDI2d2lwaHktXHUwMDNlZGV2LmtvYmosIFwmIzM0O2Nvb2xpbmdfZGV2aWNlXCYjMzQ7KTtcbiBcdHRoZXJtYWxfY29vbGluZ19kZXZpY2VfdW5yZWdpc3RlcihwaHktXHUwMDNlY2Rldik7XG4mIzQzO1x0cGh5LVx1MDAzZWNkZXYgPSBOVUxMO1xuIH1cbiBcbiBzdGF0aWMgaW50IG10NzkxNV90aGVybWFsX2luaXQoc3RydWN0IG10NzkxNV9waHkgKnBoeSlcbkBAIC0yMTMsNiAmIzQzOzIxOSw3IEBAIHN0YXRpYyBpbnQgbXQ3OTE1X3RoZXJtYWxfaW5pdChzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5KVxuIFx0c3RydWN0IHRoZXJtYWxfY29vbGluZ19kZXZpY2UgKmNkZXY7XG4gXHRzdHJ1Y3QgZGV2aWNlICpod21vbjtcbiBcdGNvbnN0IGNoYXIgKm5hbWU7XG4mIzQzO1x0aW50IHJldDtcbiBcbiBcdG5hbWUgPSBkZXZtX2thc3ByaW50ZihcdTAwMjZ3aXBoeS1cdTAwM2VkZXYsIEdGUF9LRVJORUwsIFwmIzM0O210NzkxNV8lc1wmIzM0OyxcbiBcdFx0XHQgICAgICB3aXBoeV9uYW1lKHdpcGh5KSk7XG5AQCAtMjM4LDggJiM0MzsyNDUsOCBAQCBzdGF0aWMgaW50IG10NzkxNV90aGVybWFsX2luaXQoc3RydWN0IG10NzkxNV9waHkgKnBoeSlcbiBcdGlmIChJU19FUlIocGh5LVx1MDAzZXR6b25lKSkge1xuIFx0XHRpZiAoUFRSX0VSUihwaHktXHUwMDNldHpvbmUpICE9IC1FTk9ERVYpXG4gXHRcdFx0ZGV2X3dhcm4ocGh5LVx1MDAzZWRldi1cdTAwM2VtdDc2LmRldixcbi1cdFx0XHRcdCBcJiMzNDtmYWlsZWQgdG8gcmVnaXN0ZXIgdGhlcm1hbCB6b25lOiAlbGRcXG5cJiMzNDssXG4tXHRcdFx0XHQgUFRSX0VSUihwaHktXHUwMDNldHpvbmUpKTtcbiYjNDM7XHRcdFx0XHQgXCYjMzQ7ZmFpbGVkIHRvIHJlZ2lzdGVyIHRoZXJtYWwgem9uZSAlZDogJWxkXFxuXCYjMzQ7LFxuJiM0MztcdFx0XHRcdCBwaHktXHUwMDNlbXQ3Ni1cdTAwM2ViYW5kX2lkeCwgUFRSX0VSUihwaHktXHUwMDNldHpvbmUpKTtcbiBcdFx0cGh5LVx1MDAzZXR6b25lID0gTlVMTDtcbiBcdH1cbiBcbkBAIC0yNDgsNyAmIzQzOzI1NSwxMSBAQCBzdGF0aWMgaW50IG10NzkxNV90aGVybWFsX2luaXQoc3RydWN0IG10NzkxNV9waHkgKnBoeSlcbiBcbiBcdGh3bW9uID0gZGV2bV9od21vbl9kZXZpY2VfcmVnaXN0ZXJfd2l0aF9ncm91cHMoXHUwMDI2d2lwaHktXHUwMDNlZGV2LCBuYW1lLCBwaHksXG4gXHRcdFx0XHRcdFx0ICAgICAgIG10NzkxNV9od21vbl9ncm91cHMpO1xuLVx0cmV0dXJuIFBUUl9FUlJfT1JfWkVSTyhod21vbik7XG4mIzQzO1x0cmV0ID0gUFRSX0VSUl9PUl9aRVJPKGh3bW9uKTtcbiYjNDM7XHRpZiAocmV0KVxuJiM0MztcdFx0bXQ3OTE1X3VucmVnaXN0ZXJfdGhlcm1hbChwaHkpO1xuJiM0MztcbiYjNDM7XHRyZXR1cm4gcmV0O1xuIH1cbiBcbiBzdGF0aWMgdm9pZCBtdDc5MTVfbGVkX3NldF9jb25maWcoc3RydWN0IGxlZF9jbGFzc2RldiAqbGVkX2NkZXYsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMDM6MDg8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Y29yZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgbW9kaWZpZWQgY29kZSBpcyB3aXRoaW4gdGhlIE1lZGlhVGVrIE1UNzkxNSB3aXJlbGVzcyBkcml2ZXIgKGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1LyksIHdoaWNoIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIFBDSWUvU29DIGhhcmR3YXJlIChNVDc5MTUvTVQ3OTE2L01UNzk4Nikgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkuIEFzIHN1Y2gsIHRoaXMgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIHN5emthbGxlciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzCnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoxLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsCmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuCgotIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOgogIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQKICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLgogIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCwKICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuCgotIERPIE5PVCBCTElORExZIFRSVVNUICYjMzQ7Tk8gRlVOQ1RJT05BTCBDSEFOR0UmIzM0OyAoTkZDSSkgT1IgJiMzNDtSRUZBQ1RPUklORyYjMzQ7IENMQUlNUzoKICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzICYjMzQ7Y2xlYW51cHMmIzM0OywgJiMzNDtyZWZhY3RvcmluZ3MmIzM0Oywgb3Igc3RhdGUKICAmIzM0O05vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkJiMzNDsuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLgogIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudAogIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLgogIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuCgotIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOgogIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKiwKICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy4KICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyCiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczoKCi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczoKICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy4KICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKQogICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLgogICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHMKICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuCiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuCi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOgogICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6CiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmcKICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLgogICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOgotIENvcmUgU3Vic3lzdGVtczoKICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSwKICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy4KLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6CiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuCi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOgogICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLgotIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6CiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo0LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6CgotIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzoKICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1cwogIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0CiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuCiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzICYjMzQ7Zm9jdXNlZCYjMzQ7LAogIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy4KCi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOgogIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50cwogIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LgoKLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6CiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFjawogIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLgogIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlcgogIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZToKLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgotIENoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuCi0gU3RyaXAgYW55ICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0CgpGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGE2NDJmNWJjMDQzMWFhZDYxZTMzMjc5NGEyMWJkMDIxYjg2ZDU5MDEKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIFNlcCA3IDAzOjA4OjM5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jCmluZGV4IGNhNDZhMjAzYWE0OGIuLmU1Mjg1ZDFhMWY5ZGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMKQEAgLTIwMCwxMSAmIzQzOzIwMCwxNyBAQCBzdGF0aWMgdm9pZCBtdDc5MTVfdW5yZWdpc3Rlcl90aGVybWFsKHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkpCiB7CiAJc3RydWN0IHdpcGh5ICp3aXBoeSA9IHBoeS0mZ3Q7bXQ3Ni0mZ3Q7aHctJmd0O3dpcGh5OwogCiYjNDM7CWlmIChwaHktJmd0O3R6b25lKSB7CiYjNDM7CQlkZXZtX3RoZXJtYWxfb2Zfem9uZV91bnJlZ2lzdGVyKHBoeS0mZ3Q7ZGV2LSZndDttdDc2LmRldiwgcGh5LSZndDt0em9uZSk7CiYjNDM7CQlwaHktJmd0O3R6b25lID0gTlVMTDsKJiM0MzsJfQomIzQzOwogCWlmICghcGh5LSZndDtjZGV2KQogCQlyZXR1cm47CiAKIAlzeXNmc19yZW1vdmVfbGluaygmYW1wO3dpcGh5LSZndDtkZXYua29iaiwgJiMzNDtjb29saW5nX2RldmljZSYjMzQ7KTsKIAl0aGVybWFsX2Nvb2xpbmdfZGV2aWNlX3VucmVnaXN0ZXIocGh5LSZndDtjZGV2KTsKJiM0MzsJcGh5LSZndDtjZGV2ID0gTlVMTDsKIH0KIAogc3RhdGljIGludCBtdDc5MTVfdGhlcm1hbF9pbml0KHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkpCkBAIC0yMTMsNiAmIzQzOzIxOSw3IEBAIHN0YXRpYyBpbnQgbXQ3OTE1X3RoZXJtYWxfaW5pdChzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5KQogCXN0cnVjdCB0aGVybWFsX2Nvb2xpbmdfZGV2aWNlICpjZGV2OwogCXN0cnVjdCBkZXZpY2UgKmh3bW9uOwogCWNvbnN0IGNoYXIgKm5hbWU7CiYjNDM7CWludCByZXQ7CiAKIAluYW1lID0gZGV2bV9rYXNwcmludGYoJmFtcDt3aXBoeS0mZ3Q7ZGV2LCBHRlBfS0VSTkVMLCAmIzM0O210NzkxNV8lcyYjMzQ7LAogCQkJICAgICAgd2lwaHlfbmFtZSh3aXBoeSkpOwpAQCAtMjM4LDggJiM0MzsyNDUsOCBAQCBzdGF0aWMgaW50IG10NzkxNV90aGVybWFsX2luaXQoc3RydWN0IG10NzkxNV9waHkgKnBoeSkKIAlpZiAoSVNfRVJSKHBoeS0mZ3Q7dHpvbmUpKSB7CiAJCWlmIChQVFJfRVJSKHBoeS0mZ3Q7dHpvbmUpICE9IC1FTk9ERVYpCiAJCQlkZXZfd2FybihwaHktJmd0O2Rldi0mZ3Q7bXQ3Ni5kZXYsCi0JCQkJICYjMzQ7ZmFpbGVkIHRvIHJlZ2lzdGVyIHRoZXJtYWwgem9uZTogJWxkXG4mIzM0OywKLQkJCQkgUFRSX0VSUihwaHktJmd0O3R6b25lKSk7CiYjNDM7CQkJCSAmIzM0O2ZhaWxlZCB0byByZWdpc3RlciB0aGVybWFsIHpvbmUgJWQ6ICVsZFxuJiMzNDssCiYjNDM7CQkJCSBwaHktJmd0O210NzYtJmd0O2JhbmRfaWR4LCBQVFJfRVJSKHBoeS0mZ3Q7dHpvbmUpKTsKIAkJcGh5LSZndDt0em9uZSA9IE5VTEw7CiAJfQogCkBAIC0yNDgsNyAmIzQzOzI1NSwxMSBAQCBzdGF0aWMgaW50IG10NzkxNV90aGVybWFsX2luaXQoc3RydWN0IG10NzkxNV9waHkgKnBoeSkKIAogCWh3bW9uID0gZGV2bV9od21vbl9kZXZpY2VfcmVnaXN0ZXJfd2l0aF9ncm91cHMoJmFtcDt3aXBoeS0mZ3Q7ZGV2LCBuYW1lLCBwaHksCiAJCQkJCQkgICAgICAgbXQ3OTE1X2h3bW9uX2dyb3Vwcyk7Ci0JcmV0dXJuIFBUUl9FUlJfT1JfWkVSTyhod21vbik7CiYjNDM7CXJldCA9IFBUUl9FUlJfT1JfWkVSTyhod21vbik7CiYjNDM7CWlmIChyZXQpCiYjNDM7CQltdDc5MTVfdW5yZWdpc3Rlcl90aGVybWFsKHBoeSk7CiYjNDM7CiYjNDM7CXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyB2b2lkIG10NzkxNV9sZWRfc2V0X2NvbmZpZyhzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfY2RldiwKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMDM6MDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzQ3NwoJCQkJCQkJb3V0cHV0OiA1MQoJCQkJCQkJdGhvdWdodHM6IDIyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipFdmFsdWF0aW5nIHRoZSBTdWl0YWJpbGl0eSBvZiBhIEtlcm5lbCBQYXRjaCBmb3IgU3l6a2FsbGVyIEZ1enppbmcqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IHRoaXMgcGF0Y2ggdG8gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuY2AgdGhhdCBzb21lb25lIHdhbnRzIG1lIHRvIGFzc2VzcyBmb3Igc3l6a2FsbGVyIGZ1enppbmcuIE15IGZpcnN0IHN0ZXAgaXMgdG8gcXVpY2tseSBkZXRlcm1pbmUgaWYgdGhpcyBpcyBldmVuIGZlYXNpYmxlLiBUaGUgcXVlc3Rpb24gaXMsIGNhbiBJIHJlYWNoIHRoaXMgZHJpdmVyIGluIGEgc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBRRU1VIG9yIEdvb2dsZSBDb21wdXRlIEVuZ2luZT8gVGhlIGRyaXZlciBpbiBxdWVzdGlvbiBpcyB0aGUgTWVkaWF0ZWsgTVQ3OTE1IHdpcmVsZXNzIGRyaXZlci4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IGl0JiMzOTtzIGNvbm5lY3RlZCAtIGlzIGl0IFBDSS9QQ0llLCBVU0IsIG9yIHNvbWV0aGluZyBTb0Mtc3BlY2lmaWM/IEkmIzM5O2xsIHByb2JhYmx5IHVzZSBgZ3JlcHBlcmAgb3IgbWF5YmUganVzdCBgcmVhZC1maWxlYCB0byBjaGVjayB0aGUgY29kZSBkaXJlY3RseSB0byBnZXQgdGhlIGFuc3dlci4KCkJlZm9yZSBJIGdvIGZ1cnRoZXIsIGEgcXVpY2sgc2VjdXJpdHkgcmV2aWV3IGlzIGluIG9yZGVyLiBUaGlzIGlzIGEgcHJldHR5IHN0YW5kYXJkIGRldmVsb3BlciBRQS90cmlhZ2UgdGFzaywgbm90aGluZyBvYnZpb3VzbHkgY3JpdGljYWwgaGVyZS4gTm8gcmVkIGZsYWdzIHNvIGZhciDigJMgdGhpcyBpcyBwcm9iYWJseSBhIGJlbmlnbiwgbm9ybWFsIHBhdGNoLgoKVG8gcHJvcGVybHkgYW5hbHl6ZSB0aGlzLCBJIG5lZWQgdG8gZ2V0IGEgaGFuZGxlIG9uIHRoZSBgbXQ3OTE1YCBkcml2ZXIgaXRzZWxmLiBJJiMzOTtsbCBuZWVkIHRvIGV4cGxvcmUgdGhlIGNvZGViYXNlIHRvIHVuZGVyc3RhbmQgaXRzIGZ1bmN0aW9uIGFuZCBjb250ZXh0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDAzOjA4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O01PRFVMRV9ERVZJQ0VfVEFCTEV8cGNpX3JlZ2lzdGVyX2RyaXZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM9OTY1PXN0YXRpYyBpbnQgX19pbml0IG10NzkxNV9pbml0KHZvaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTk2OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYzo5Njk6XHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNm10NzkxNV9oaWZfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy05NzAtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy05NzItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6OTczOlx0cmV0ID0gcGNpX3JlZ2lzdGVyX2RyaXZlcihcdTAwMjZtdDc5MTVfcGNpX2RyaXZlcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtOTc0LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9wY2kuYz0yMzE9c3RydWN0IHBjaV9kcml2ZXIgbXQ3OTE1X3BjaV9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmMtMjM3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmM6MjM4Ok1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBtdDc5MTVfcGNpX2RldmljZV90YWJsZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9wY2kuYzoyMzk6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIG10NzkxNV9oaWZfZGV2aWNlX3RhYmxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jLTI0MC1NT0RVTEVfRklSTVdBUkUoTVQ3OTE1X0ZJUk1XQVJFX1dBKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9zb2MuYz0xMjg3PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG10Nzk4eF93bWFjX29mX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmMtMTI5Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3NvYy5jOjEyOTM6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbXQ3OTh4X3dtYWNfb2ZfbWF0Y2gpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmMtMTI5NC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAwMzowODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0Njg3CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogNTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyBNVDc5MTUgQ2FwYWJpbGl0aWVzKioKCk9rYXksIHNvIEkgbmVlZCB0byBnZXQgYSBoYW5kbGUgb24gdGhlIE1UNzkxNSYjMzk7cyBjYXBhYmlsaXRpZXMuIE15IGluaXRpYWwgcXVlc3Rpb24gaXMgd2hldGhlciB0aGlzIHRoaW5nIGlzIGxpbWl0ZWQgdG8gUENJZS9Tb0MgaW50ZWdyYXRpb24gb3IgaWYgaXQmIzM5O3MgbW9yZSBmbGV4aWJsZSwgcG9zc2libHkgc3VwcG9ydGluZyBVU0Igb3IgZXZlbiBzb21lIGZvcm0gb2YgdmlydHVhbGl6YXRpb24uIFRoZSBkb2N1bWVudGF0aW9uIGlzIGFsd2F5cyBhIHN0YXJ0aW5nIHBvaW50LCBidXQgbGV0JiMzOTtzIGRpdmUgaW50byB0aGUgY29kZSBkaXJlY3RseS4KCkZpcnN0LCBJIG5lZWQgdG8gZ2V0IGEgc29saWQgb3ZlcnZpZXcuIExldCYjMzk7cyBzZWUgd2hhdCYjMzk7cyBpbiB0aGF0IGRyaXZlciBkaXJlY3RvcnkuIEkmIzM5O2xsIGV4ZWN1dGUgYSBxdWljayBgbHNgIG9uIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9gLiBLbm93aW5nIHRoZSBmaWxlIHN0cnVjdHVyZSB3aWxsIGhlbHAgbWUgcXVpY2tseSBpZGVudGlmeSBrZXkgYXJlYXMgdG8gaW52ZXN0aWdhdGUgZnVydGhlci4gVGhpcyB3aWxsIGFsbG93IG1lIHRvIG5hcnJvdyBteSBmb2N1cyBhbmQgdW5kZXJzdGFuZCB0aGUgcG90ZW50aWFsIGludGVncmF0aW9uIHBhdGh3YXlzLiBGcm9tIHRoZXJlLCBJIGNhbiBkcmlsbCBkb3duIGludG8gdGhlIHJlbGV2YW50IG1vZHVsZXMgb3IgaGVhZGVyIGZpbGVzIHRvIGNvbmZpcm0gbXkgaW5pdGlhbCBoeXBvdGhlc2lzLiBMZXQmIzM5O3Mgc3RhcnQgZGlnZ2luZyEKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAwMzowODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmNvZGVzZWFyY2gtZGlyLWluZGV4PC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtEaXImIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlcyYjMzQ7OiBbCiAgICAmIzM0O2NvcmVkdW1wLmMmIzM0OywKICAgICYjMzQ7Y29yZWR1bXAuaCYjMzQ7LAogICAgJiMzNDtkZWJ1Z2ZzLmMmIzM0OywKICAgICYjMzQ7ZG1hLmMmIzM0OywKICAgICYjMzQ7ZWVwcm9tLmMmIzM0OywKICAgICYjMzQ7ZWVwcm9tLmgmIzM0OywKICAgICYjMzQ7aW5pdC5jJiMzNDssCiAgICAmIzM0O21hYy5jJiMzNDssCiAgICAmIzM0O21hYy5oJiMzNDssCiAgICAmIzM0O21haW4uYyYjMzQ7LAogICAgJiMzNDttY3UuYyYjMzQ7LAogICAgJiMzNDttY3UuaCYjMzQ7LAogICAgJiMzNDttbWlvLmMmIzM0OywKICAgICYjMzQ7bXQ3OTE1LmgmIzM0OywKICAgICYjMzQ7cGNpLmMmIzM0OywKICAgICYjMzQ7cmVncy5oJiMzNDssCiAgICAmIzM0O3NvYy5jJiMzNDssCiAgICAmIzM0O3Rlc3Rtb2RlLmMmIzM0OywKICAgICYjMzQ7dGVzdG1vZGUuaCYjMzQ7CiAgXSwKICAmIzM0O1N1YmRpcnMmIzM0OzogbnVsbAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMDM6MDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTExNAoJCQkJCQkJb3V0cHV0OiA1OAoJCQkJCQkJdGhvdWdodHM6IDU2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHN1bW1hcnksIGFzIGlmIEkgd2VyZSB0aGlua2luZyBpdDoKCioqRGlnZ2luZyBpbnRvIHRoZSBNVDc5MTUgVGhlcm1hbCBNYW5hZ2VtZW50KioKCk9rYXksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSB0aGVybWFsIG1hbmFnZW1lbnQgaW1wbGVtZW50YXRpb24gZm9yIHRoZSBNVDc5MTUgd2lyZWxlc3MgZHJpdmVyLiBMZXQmIzM5O3Mgc2VlLi4uSSYjMzk7bGwgc3RhcnQgYnkgY2hlY2tpbmcgdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmNgIGZpbGUuIFRoYXQmIzM5O3MgdGhlIGxvZ2ljYWwgcGxhY2UgdG8gbG9vayBmb3IgaW5pdGlhbGl6YXRpb24gYW5kIHVucmVnaXN0cmF0aW9uIHJvdXRpbmVzLiBJIHdhbnQgdG8gcGlucG9pbnQgd2hlcmUgYG10NzkxNV90aGVybWFsX2luaXRgIGFuZCBgbXQ3OTE1X3VucmVnaXN0ZXJfdGhlcm1hbGAgYXJlIGJlaW5nIGNhbGxlZCwgYXMgdGhhdCB3aWxsIGdpdmUgbWUgY29udGV4dCBmb3IgaG93IHRoZSB0aGVybWFsIGZlYXR1cmVzIGFyZSBlbmFibGVkIGFuZCBkaXNhYmxlZCB3aXRoaW4gdGhlIGRyaXZlciYjMzk7cyBsaWZlY3ljbGUuIFVuZGVyc3RhbmRpbmcgdGhlIGNhbGwgc2VxdWVuY2Ugd2lsbCBnaXZlIG1lIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIG92ZXJhbGwgdGhlcm1hbCBtYW5hZ2VtZW50IHN0cmF0ZWd5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDAzOjA4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210NzkxNV90aGVybWFsX2luaXR8bXQ3OTE1X3VucmVnaXN0ZXJfdGhlcm1hbCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9MTk1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZV9vcHMgbXQ3OTE1X3R6X29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTk4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjE5OTpzdGF0aWMgdm9pZCBtdDc5MTVfdW5yZWdpc3Rlcl90aGVybWFsKHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMjAwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMjE1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjIxNjpzdGF0aWMgaW50IG10NzkxNV90aGVybWFsX2luaXQoc3RydWN0IG10NzkxNV9waHkgKnBoeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0yMTcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0yNTktXHRpZiAocmV0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjI2MDpcdFx0bXQ3OTE1X3VucmVnaXN0ZXJfdGhlcm1hbChwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTI2MS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9NzMzPW10NzkxNV9yZWdpc3Rlcl9leHRfcGh5KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTc2NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzo3NjU6XHRyZXQgPSBtdDc5MTVfdGhlcm1hbF9pbml0KHBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtNzY2LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9MTIzNz1zdGF0aWMgdm9pZCBtdDc5MTVfdW5yZWdpc3Rlcl9leHRfcGh5KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTEyNDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MTI0NTpcdG10NzkxNV91bnJlZ2lzdGVyX3RoZXJtYWwocGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMjQ2LVx0bXQ3Nl91bnJlZ2lzdGVyX3BoeShtcGh5KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9MTI2MT1pbnQgbXQ3OTE1X3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMjk5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjEzMDA6XHRyZXQgPSBtdDc5MTVfdGhlcm1hbF9pbml0KFx1MDAyNmRldi1cdTAwM2VwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTEzMDEtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMzI5LXVucmVnX3RoZXJtYWw6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MTMzMDpcdG10NzkxNV91bnJlZ2lzdGVyX3RoZXJtYWwoXHUwMDI2ZGV2LVx1MDAzZXBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTMzMS11bnJlZ19kZXY6XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTEzNDE9dm9pZCBtdDc5MTVfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzkxNV9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTM0Ny1cdG10NzkxNV9jb3JlZHVtcF91bnJlZ2lzdGVyKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MTM0ODpcdG10NzkxNV91bnJlZ2lzdGVyX3RoZXJtYWwoXHUwMDI2ZGV2LVx1MDAzZXBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTM0OS1cdG10NzZfdW5yZWdpc3Rlcl9kZXZpY2UoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDAzOjA4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY1ODkKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAxOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkFuYWx5emluZyB0aGUgbXQ3OTE1X3JlZ2lzdGVyX2RldmljZSBDYWxsKioKCk9rYXksIHNvIEkgbmVlZCB0byBnZXQgYSBjbGVhciBwaWN0dXJlIG9mIGhvdyBgbXQ3OTE1X3JlZ2lzdGVyX2RldmljZWAgaXMgYWN0dWFsbHkgaW52b2tlZC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNhbGwgZ3JhcGggYW5kIHRoZSBzdXJyb3VuZGluZyBjb250ZXh0LiBTcGVjaWZpY2FsbHksIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgdGhlIGFyZ3VtZW50cyBpdCByZWNlaXZlcyDigJMgdGhpbmdzIGxpa2UgdGhlIGRldmljZSBzdHJ1Y3R1cmUsIGFueSBhc3NvY2lhdGVkIHJlc291cmNlcywgYW5kIHRoZSBzZXF1ZW5jaW5nIG9mIGV2ZW50cyBhcm91bmQgdGhhdCBjYWxsLiBJIHdhbnQgdG8gcGlucG9pbnQgd2hlcmUgaW4gdGhlIGluaXRpYWxpemF0aW9uIHByb2Nlc3MgdGhpcyByZWdpc3RyYXRpb24gaGFwcGVucywgd2hpY2ggZHJpdmVycyBtaWdodCBiZSBpbnZvbHZlZCwgYW5kIHdoYXQgZGVwZW5kZW5jaWVzIGFyZSBpbiBwbGF5LiBJJiMzOTttIGFsc28gY3VyaW91cyBhYm91dCBhbnkgZXJyb3IgaGFuZGxpbmcgdGhhdCBvY2N1cnMgYmVmb3JlIG9yIGFmdGVyIHRoaXMgY3J1Y2lhbCBmdW5jdGlvbi4gSXMgaXQgZ3VhcmRlZCBieSBhbnkgc3BlY2lmaWMgY29uZGl0aW9ucywgcGVyaGFwcyByZWxhdGVkIHRvIHBsYXRmb3JtIGRldGVjdGlvbiBvciByZXNvdXJjZSBhbGxvY2F0aW9uPyBUcmFjaW5nIHRoZSBjYWxsZXIgYW5kIGFueSBwb3RlbnRpYWwgY2FsbGVycy1vZi10aGUtY2FsbGVyIGlzIHdoYXQgSSYjMzk7bSBmb2N1c2VkIG9uIHRvIGJ1aWxkIGEgZnVsbCBtZW50YWwgbWFwLiBJIG5lZWQgdGhlIGJpZyBwaWN0dXJlIHRvIGF2b2lkIG1ha2luZyBhIGhhc3R5IGRpYWdub3Npcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMDM6MDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTE1X3JlZ2lzdGVyX2RldmljZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0xMjUwPXN0YXRpYyB2b2lkIG10NzkxNV9zdG9wX2hhcmR3YXJlKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTEyNjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MTI2MTppbnQgbXQ3OTE1X3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTEyNjIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oPTQ1Mz11MzIgbXQ3OTE1X3dlZF9pbml0X2J1Zih2b2lkICpwdHIsIGRtYV9hZGRyX3QgcGh5cywgaW50IHRva2VuX2lkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oLTQ1NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oOjQ1NTppbnQgbXQ3OTE1X3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oLTQ1Ni12b2lkIG10NzkxNV91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9wY2kuYz0xMDM9c3RhdGljIGludCBtdDc5MTVfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jLTE4MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jOjE4MjpcdHJldCA9IG10NzkxNV9yZWdpc3Rlcl9kZXZpY2UoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jLTE4My1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmM9MTIyMD1zdGF0aWMgaW50IG10Nzk4eF93bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmMtMTI2My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3NvYy5jOjEyNjQ6XHRyZXQgPSBtdDc5MTVfcmVnaXN0ZXJfZGV2aWNlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9zb2MuYy0xMjY1LVx0aWYgKHJldClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMDM6MDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzU1OQoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDQ2MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipXb3J0aEZ1enppbmcgRGVjaXNpb24gZm9yIE1UNzkxNSBEcml2ZXIqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gVGhlIGluc3RydWN0aW9ucyBzYXkgSSBzaG91bGQgcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmICphbGwqIG1vZGlmaWVkIGNvZGUgZmFsbHMgdW5kZXIgc3BlY2lmaWMgbmVnYXRpdmUgY3JpdGVyaWEuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIHRoZSBjaGFuZ2VzIHJlbGF0ZWQgdG8gYG10NzkxNWAgZmFsbCBpbnRvIG9uZSBvZiB0aG9zZSBjYXRlZ29yaWVzLiBGaXJzdCwgSSYjMzk7bSBnb2luZyB0byBjb25zdWx0IFNlY3Rpb24gMiwgd2hpY2ggb3V0bGluZXMgdGhlIG5lZ2F0aXZlIGNyaXRlcmlhIGZvciByZXR1cm5pbmcgYFdvcnRoRnV6emluZz1mYWxzZWAuCgpUaGUgbmVnYXRpdmUgY3JpdGVyaWEgdGhhdCBpcyByZWxldmFudCBpbiB0aGlzIGNhc2UgaXM6ICYjMzQ7U3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOiAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSYjMzQ7LgoKTm93LCBJIG5lZWQgdG8ga25vdyBpZiBgbXQ3OTE1YCBmaXRzIHRoYXQgZGVzY3JpcHRpb24uIEkga25vdyBgbXQ3OTE1YCByZWZlcnMgdG8gdGhlIE1lZGlhVGVrIE1UNzkxNSBXaS1GaSA2ICg4MDIuMTFheCkgY2hpcHNldCwgd2hpY2ggaXMgYSBQQ0llIG9yIFNvQyB3aXJlbGVzcyBjaGlwLiBUaGUga2V5IHF1ZXN0aW9uIGlzOiBpcyBpdCAqZW11bGF0ZWQqIGluIFFFTVU/IEFuZCwgZnJvbSBteSBrbm93bGVkZ2UsIEkmIzM5O20gcHJldHR5IHN1cmUgaXQmIzM5O3Mgbm90LiBGdXJ0aGVyLCBJIGNhbiBkb3VibGUgY2hlY2sgdGhhdCBpdCBkb2VzbiYjMzk7dCBoYXZlIGFueSBVU0IgZ2FkZ2V0IGludGVyZmFjZSBvciBtYWM4MDIxMV9od3NpbSBlbXVsYXRpb24uIE5vcGUsIGl0JiMzOTtzIGEgZGVkaWNhdGVkIGhhcmR3YXJlIGRyaXZlci4KClRoZXJlZm9yZSwgc2luY2UgSSBrbm93IHRoYXQgd2l0aG91dCB0aGUgcGh5c2ljYWwgTWVkaWFUZWsgTVQ3OTE1IFBDSWUgY2FyZCBvciBNZWRpYVRlayBTb0MgaGFyZHdhcmUsIGZ1bmN0aW9ucyBsaWtlIGBtdDc5MTVfcGNpX3Byb2JlYCwgYG10Nzk4eF93bWFjX3Byb2JlYCwgYW5kIGBtdDc5MTVfdGhlcm1hbF9pbml0YCBjYW4mIzM5O3QgZXZlbiBiZSByZWFjaGVkIGR1cmluZyBkZXZpY2UgaW5pdGlhbGl6YXRpb24sIEkmIzM5O20gY29uZmlkZW50IHRoYXQgdGhlc2UgY29kZSBwYXRocyBhcmUgKnN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSogaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50LgoKVG8gYmUgYWJzb2x1dGVseSBzdXJlLCBJJiMzOTttIGdvaW5nIHRvIHF1aWNrbHkgc2NhbiBLY29uZmlnIGZvciBhbnkgZXhjZXB0aW9ucywgYnV0IEkmIzM5O20gcHJldHR5IHN1cmUgdGhhdCBgbXQ3OTE1YCBzdHJpY3RseSBhcHBsaWVzIHRvIE1lZGlhVGVrIFBDSWUvU29DIGhhcmR3YXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAwMzowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtNVDc5MTUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNjA4IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlPTQ4PW9iai0kKENPTkZJR19NVDc2MTVfQ09NTU9OKSAmIzQzOz0gbXQ3NjE1L1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZTo0OTpvYmotJChDT05GSUdfTVQ3OTE1RSkgJiM0Mzs9IG10NzkxNS9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtNTAtb2JqLSQoQ09ORklHX01UNzkyMV9DT01NT04pICYjNDM7PSBtdDc5MjEvXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZzoyOmNvbmZpZyBNVDc5MTVFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9LY29uZmlnOjM6XHR0cmlzdGF0ZSBcJiMzNDtNZWRpYVRlayBNVDc5MTVFIChQQ0llKSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9LY29uZmlnLTQtXHRzZWxlY3QgTVQ3Nl9DT05OQUNfTElCXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZy05LVx0aGVscFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZzoxMDpcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIE1UNzkxNS1iYXNlZCBQQ0llIHdpcmVsZXNzIGRldmljZXMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9LY29uZmlnLTExLVx0ICB3aGljaCBzdXBwb3J0IGNvbmN1cnJlbnQgZHVhbC1iYW5kIG9wZXJhdGlvbiBhdCBib3RoIDVHSHpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9LY29uZmlnPTE3PWNvbmZpZyBNVDc5OFhfV01BQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZy0xOC1cdGJvb2wgXCYjMzQ7TVQ3OTh4IChTb0MpIFdNQUMgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZzoxOTpcdGRlcGVuZHMgb24gTVQ3OTE1RVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZy0yMC1cdGRlcGVuZHMgb24gQVJDSF9NRURJQVRFSyB8fCBDT01QSUxFX1RFU1Rcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9LY29uZmlnLTIzLVx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgdGhlIGJ1aWx0LWluIFdNQUMgb24gTVQ3OTgxIGFuZCBNVDc5ODYgU29DIGRldmljZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZzoyNDpcdCAgd2hpY2ggaGFzIHRoZSBzYW1lIGZlYXR1cmUgc2V0IGFzIGEgTVQ3OTE1LCBidXQgZW5hYmxlcyA2RVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZy0yNS1cdCAgc3VwcG9ydC5cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9NYWtlZmlsZS0yLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfTVQ3OTE1RSkgJiM0Mzs9IG10NzkxNWUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvTWFrZWZpbGUtNC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kZWJ1Z2ZzLmM9OTgzPW10NzkxNV9yYXRlX3R4cG93ZXJfZ2V0KHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNlciAqdXNlcl9idWYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZGVidWdmcy5jLTk4Ny1cdHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYgPSBwaHktXHUwMDNlZGV2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZGVidWdmcy5jOjk4ODpcdHM4IHR4cHdyW01UNzkxNV9TS1VfUkFURV9OVU1dO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZGVidWdmcy5jLTk4OS1cdHN0YXRpYyBjb25zdCBzaXplX3Qgc3ogPSAyMDQ4O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RlYnVnZnMuYz0xMTYxPW10NzkxNV9wYXRoX3R4cG93ZXJfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZGVidWdmcy5jLTExNjMtXHRzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5ID0gZmlsZS1cdTAwM2Vwcml2YXRlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZGVidWdmcy5jOjExNjQ6XHRzOCB0eHBvd2VyW01UNzkxNV9TS1VfUEFUSF9OVU1dLCAqYnVmID0gdHhwb3dlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RlYnVnZnMuYy0xMTY1LVx0aW50IHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYz00MT1zdGF0aWMgdm9pZCBtdDc5MTVfZG1hX2NvbmZpZyhzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTU1LVx0XHRSWFFfQ09ORklHKE1UX1JYUV9NQUlOLCBXRkRNQTAsIE1UX0lOVF9SWF9ET05FX0JBTkQwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTY6XHRcdFx0ICAgTVQ3OTE1X1JYUV9CQU5EMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01Ny1cdFx0UlhRX0NPTkZJRyhNVF9SWFFfTUNVLCBXRkRNQTEsIE1UX0lOVF9SWF9ET05FX1dNLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTg6XHRcdFx0ICAgTVQ3OTE1X1JYUV9NQ1VfV00pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNTktXHRcdFJYUV9DT05GSUcoTVRfUlhRX01DVV9XQSwgV0ZETUExLCBNVF9JTlRfUlhfRE9ORV9XQSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjYwOlx0XHRcdCAgIE1UNzkxNV9SWFFfTUNVX1dBKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTYxLVx0XHRSWFFfQ09ORklHKE1UX1JYUV9CQU5EMSwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9CQU5EMSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjYyOlx0XHRcdCAgIE1UNzkxNV9SWFFfQkFORDEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNjMtXHRcdFJYUV9DT05GSUcoTVRfUlhRX0JBTkQxX1dBLCBXRkRNQTEsIE1UX0lOVF9SWF9ET05FX1dBX0VYVCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjY0Olx0XHRcdCAgIE1UNzkxNV9SWFFfTUNVX1dBX0VYVCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy02NS1cdFx0UlhRX0NPTkZJRyhNVF9SWFFfTUFJTl9XQSwgV0ZETUExLCBNVF9JTlRfUlhfRE9ORV9XQV9NQUlOLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NjY6XHRcdFx0ICAgTVQ3OTE1X1JYUV9NQ1VfV0EpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6Njc6XHRcdFRYUV9DT05GSUcoMCwgV0ZETUExLCBNVF9JTlRfVFhfRE9ORV9CQU5EMCwgTVQ3OTE1X1RYUV9CQU5EMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo2ODpcdFx0VFhRX0NPTkZJRygxLCBXRkRNQTEsIE1UX0lOVF9UWF9ET05FX0JBTkQxLCBNVDc5MTVfVFhRX0JBTkQxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTY5LVx0XHRNQ1VRX0NPTkZJRyhNVF9NQ1VRX1dNLCBXRkRNQTEsIE1UX0lOVF9UWF9ET05FX01DVV9XTSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjcwOlx0XHRcdCAgICBNVDc5MTVfVFhRX01DVV9XTSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy03MS1cdFx0TUNVUV9DT05GSUcoTVRfTUNVUV9XQSwgV0ZETUExLCBNVF9JTlRfVFhfRE9ORV9NQ1VfV0EsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo3MjpcdFx0XHQgICAgTVQ3OTE1X1RYUV9NQ1VfV0EpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNzMtXHRcdE1DVVFfQ09ORklHKE1UX01DVVFfRldETCwgV0ZETUExLCBNVF9JTlRfVFhfRE9ORV9GV0RMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NzQ6XHRcdFx0ICAgIE1UNzkxNV9UWFFfRldETCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy03NS1cdH0gZWxzZSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtODAtXHRcdE1DVVFfQ09ORklHKE1UX01DVVFfV00sIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfTUNVX1dNLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6ODE6XHRcdFx0ICAgIE1UNzkxNV9UWFFfTUNVX1dNKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTgyLVx0XHRNQ1VRX0NPTkZJRyhNVF9NQ1VRX1dBLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX01DVV9XQV9NVDc5MTYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo4MzpcdFx0XHQgICAgTVQ3OTE1X1RYUV9NQ1VfV0EpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtODQtXHRcdE1DVVFfQ09ORklHKE1UX01DVVFfRldETCwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9GV0RMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6ODU6XHRcdFx0ICAgIE1UNzkxNV9UWFFfRldETCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy04Ni1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy0xMDItXHRcdFx0VFhRX0NPTkZJRygwLCBXRkRNQTAsIE1UX0lOVF9XRURfVFhfRE9ORV9CQU5EMCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjEwMzpcdFx0XHRcdCAgIE1UNzkxNV9UWFFfQkFORDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtMTA0LVx0XHRcdFRYUV9DT05GSUcoMSwgV0ZETUEwLCBNVF9JTlRfV0VEX1RYX0RPTkVfQkFORDEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzoxMDU6XHRcdFx0XHQgICBNVDc5MTVfVFhRX0JBTkQxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTEwNi1cdFx0fSBlbHNlIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy0xMTUtXHRcdFx0VFhRX0NPTkZJRygwLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6MTE2Olx0XHRcdFx0ICAgTVQ3OTE1X1RYUV9CQU5EMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy0xMTctXHRcdFx0VFhRX0NPTkZJRygxLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6MTE4Olx0XHRcdFx0ICAgTVQ3OTE1X1RYUV9CQU5EMSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy0xMTktXHRcdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYz00MDg9aW50IG10NzkxNV9kbWFfaW5pdChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5Milcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy00NDUtXHRcdFx0XHQgICAgTVRfVFhRX0lEKGRldi1cdTAwM2VwaHkubXQ3Ni1cdTAwM2ViYW5kX2lkeCksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo0NDY6XHRcdFx0XHQgICAgTVQ3OTE1X1RYX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTQ0Ny1cdFx0XHRcdCAgICBNVF9UWFFfUklOR19CQVNFKDApKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy00NTMtXHRcdFx0XHRcdCAgICBNVF9UWFFfSUQocGh5Mi1cdTAwM2VtdDc2LVx1MDAzZWJhbmRfaWR4KSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjQ1NDpcdFx0XHRcdFx0ICAgIE1UNzkxNV9UWF9SSU5HX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy00NTUtXHRcdFx0XHRcdCAgICBNVF9UWFFfUklOR19CQVNFKDEpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy00NjItXHRcdFx0XHQgIE1UX01DVVFfSUQoTVRfTUNVUV9XTSksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo0NjM6XHRcdFx0XHQgIE1UNzkxNV9UWF9NQ1VfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNDY0LVx0XHRcdFx0ICBNVF9NQ1VRX1JJTkdfQkFTRShNVF9NQ1VRX1dNKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNDcwLVx0XHRcdFx0ICBNVF9NQ1VRX0lEKE1UX01DVVFfV0EpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NDcxOlx0XHRcdFx0ICBNVDc5MTVfVFhfTUNVX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTQ3Mi1cdFx0XHRcdCAgTVRfTUNVUV9SSU5HX0JBU0UoTVRfTUNVUV9XQSkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTQ3OC1cdFx0XHRcdCAgTVRfTUNVUV9JRChNVF9NQ1VRX0ZXREwpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NDc5Olx0XHRcdFx0ICBNVDc5MTVfVFhfRldETF9SSU5HX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy00ODAtXHRcdFx0XHQgIE1UX01DVVFfUklOR19CQVNFKE1UX01DVVFfRldETCkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTQ4Ni1cdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9NQ1UpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NDg3Olx0XHRcdCAgICAgICBNVDc5MTVfUlhfTUNVX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTQ4OC1cdFx0XHQgICAgICAgTVRfUlhfQlVGX1NJWkUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNDk1LVx0XHR3YV9yeF9iYXNlID0gTVRfV0VEX1JYX1JJTkdfQkFTRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjQ5NjpcdFx0d2FfcnhfaWR4ID0gTVQ3OTE1X1JYUV9NQ1VfV0E7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy00OTctXHRcdG1kZXYtXHUwMDNlcV9yeFtNVF9SWFFfTUNVX1dBXS5mbGFncyA9IE1UX1dFRF9RX1RYRlJFRTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01MDMtXHRyZXQgPSBtdDc2X3F1ZXVlX2FsbG9jKGRldiwgXHUwMDI2ZGV2LVx1MDAzZW10NzYucV9yeFtNVF9SWFFfTUNVX1dBXSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjUwNDpcdFx0XHQgICAgICAgd2FfcnhfaWR4LCBNVDc5MTVfUlhfTUNVX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTUwNS1cdFx0XHQgICAgICAgTVRfUlhfQlVGX1NJWkUsIHdhX3J4X2Jhc2UpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTUxMy1cdFx0XHRtZGV2LVx1MDAzZXFfcnhbTVRfUlhRX01BSU5dLmZsYWdzID1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjUxNDpcdFx0XHRcdE1UX1dFRF9RX1JYKE1UNzkxNV9SWFFfQkFORDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTE1Olx0XHRcdGRldi1cdTAwM2VtdDc2LnJ4X3Rva2VuX3NpemUgJiM0Mzs9IE1UNzkxNV9SWF9SSU5HX1NJWkU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01MTYtXHRcdFx0bWRldi1cdTAwM2VxX3J4W01UX1JYUV9NQUlOXS53ZWQgPSBcdTAwMjZtZGV2LVx1MDAzZW1taW8ud2VkO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTUyMC1cdFx0XHRcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX01BSU4pLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTIxOlx0XHRcdFx0ICAgICAgIE1UNzkxNV9SWF9SSU5HX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01MjItXHRcdFx0XHQgICAgICAgTVRfUlhfQlVGX1NJWkUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNTM3LVx0XHRcdFx0d2FfcnhfYmFzZSA9ICBNVF9XRURfUlhfUklOR19CQVNFO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTM4Olx0XHRcdFx0d2FfcnhfaWR4ID0gTVQ3OTE1X1JYUV9NQ1VfV0E7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01MzktXHRcdFx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTU0Mi1cdFx0cmV0ID0gbXQ3Nl9xdWV1ZV9hbGxvYyhkZXYsIFx1MDAyNmRldi1cdTAwM2VtdDc2LnFfcnhbTVRfUlhRX01BSU5fV0FdLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTQzOlx0XHRcdFx0ICAgICAgIHdhX3J4X2lkeCwgTVQ3OTE1X1JYX01DVV9SSU5HX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01NDQtXHRcdFx0XHQgICAgICAgTVRfUlhfQlVGX1NJWkUsIHdhX3J4X2Jhc2UpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTU1Mi1cdFx0XHRtZGV2LVx1MDAzZXFfcnhbTVRfUlhRX0JBTkQxXS5mbGFncyA9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo1NTM6XHRcdFx0XHRNVF9XRURfUV9SWChNVDc5MTVfUlhRX0JBTkQxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjU1NDpcdFx0XHRkZXYtXHUwMDNlbXQ3Ni5yeF90b2tlbl9zaXplICYjNDM7PSBNVDc5MTVfUlhfUklOR19TSVpFO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNTU1LVx0XHRcdG1kZXYtXHUwMDNlcV9yeFtNVF9SWFFfQkFORDFdLndlZCA9IFx1MDAyNm1kZXYtXHUwMDNlbW1pby53ZWQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNTYwLVx0XHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfQkFORDEpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTYxOlx0XHRcdFx0ICAgICAgIE1UNzkxNV9SWF9SSU5HX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01NjItXHRcdFx0XHQgICAgICAgTVRfUlhfQlVGX1NJWkUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNTY5LVx0XHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfQkFORDFfV0EpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTcwOlx0XHRcdFx0ICAgICAgIE1UNzkxNV9SWF9NQ1VfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNTcxLVx0XHRcdFx0ICAgICAgIE1UX1JYX0JVRl9TSVpFLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2VlcHJvbS5jPTY3PXN0YXRpYyBjaGFyICptdDc5MTVfZWVwcm9tX25hbWUoc3RydWN0IG10NzkxNV9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9lZXByb20uYy03MS1cdFx0cmV0dXJuIGRldi1cdTAwM2VkYmRjX3N1cHBvcnQgP1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmM6NzI6XHRcdCAgICAgICBNVDc5MTVfRUVQUk9NX0RFRkFVTFRfREJEQyA6IE1UNzkxNV9FRVBST01fREVGQVVMVDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2VlcHJvbS5jLTczLVx0Y2FzZSAweDc5ODE6XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmM9MTIzPXN0YXRpYyBpbnQgbXQ3OTE1X2VlcHJvbV9sb2FkKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmMtMTM2LVx0XHR1MzIgYmxvY2tfbnVtLCBpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmM6MTM3Olx0XHR1MzIgZWVwcm9tX2Jsa19zaXplID0gTVQ3OTE1X0VFUFJPTV9CTE9DS19TSVpFO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmMtMTM4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2VlcHJvbS5jPTM2Mz1tdDc5MTVfZWVwcm9tX2hhc19iYWNrZ3JvdW5kX3JhZGFyKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9lZXByb20uYy0zNjQte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmM6MzY1Olx0dTggdmFsLCBidWZbTVQ3OTE1X0VFUFJPTV9CTE9DS19TSVpFXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2VlcHJvbS5jLTM2Ni1cdHU4IGJhbmRfc2VsLCB0eF9wYXRoLCByeF9wYXRoO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2VlcHJvbS5jLTM3Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2VlcHJvbS5jOjM3NzpcdFx0dmFsID0gYnVmW29mZnMgJSBNVDc5MTVfRUVQUk9NX0JMT0NLX1NJWkVdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmMtMzc4LVx0XHRiYW5kX3NlbCA9IHU4X2dldF9iaXRzKHZhbCwgTVRfRUVfV0lGSV9DT05GMF9CQU5EX1NFTCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmgtMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2VlcHJvbS5oOjQ6I2lmbmRlZiBfX01UNzkxNV9FRVBST01fSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmg6NTojZGVmaW5lIF9fTVQ3OTE1X0VFUFJPTV9IXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9lZXByb20uaC02LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0xNT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBpZl9saW1pdHNbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMjUtXHR9LCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MjY6XHRcdC5tYXggPSBNVDc5MTVfTUFYX0lOVEVSRkFDRVMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMjctXHRcdC50eXBlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9TVEFUSU9OKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0zMT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9jb21iaW5hdGlvbiBpZl9jb21iW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTM0LVx0XHQubl9saW1pdHMgPSBBUlJBWV9TSVpFKGlmX2xpbWl0cyksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MzU6XHRcdC5tYXhfaW50ZXJmYWNlcyA9IE1UNzkxNV9NQVhfSU5URVJGQUNFUyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0zNi1cdFx0Lm51bV9kaWZmZXJlbnRfY2hhbm5lbHMgPSAxLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz03ND1zdGF0aWMgc3NpemVfdCBtdDc5MTVfdGhlcm1hbF90ZW1wX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtODgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6ODk6XHRpZiAoKGkgLSAxID09IE1UNzkxNV9DUklUX1RFTVBfSURYIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjkwOlx0ICAgICB2YWwgXHUwMDNlIHBoeS1cdTAwM2V0aHJvdHRsZV90ZW1wW01UNzkxNV9NQVhfVEVNUF9JRFhdKSB8fFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjkxOlx0ICAgIChpIC0gMSA9PSBNVDc5MTVfTUFYX1RFTVBfSURYIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjkyOlx0ICAgICB2YWwgXHUwMDNjIHBoeS1cdTAwM2V0aHJvdHRsZV90ZW1wW01UNzkxNV9DUklUX1RFTVBfSURYXSkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy05My1cdFx0ZGV2X2VycihwaHktXHUwMDNlZGV2LVx1MDAzZW10NzYuZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0xMjM9bXQ3OTE1X3RoZXJtYWxfZ2V0X21heF90aHJvdHRsZV9zdGF0ZShzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZSAqY2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTI1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoxMjY6XHQqc3RhdGUgPSBNVDc5MTVfQ0RFVl9USFJPVFRMRV9NQVg7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTI3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0xNDM9bXQ3OTE1X3RoZXJtYWxfc2V0X2N1cl90aHJvdHRsZV9zdGF0ZShzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZSAqY2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTQ2LVx0c3RydWN0IG10NzkxNV9waHkgKnBoeSA9IGNkZXYtXHUwMDNlZGV2ZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoxNDc6XHR1OCB0aHJvdHRsaW5nID0gTVQ3OTE1X1RIRVJNQUxfVEhST1RUTEVfTUFYIC0gc3RhdGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTQ4LVx0aW50IHJldDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xNDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MTUwOlx0aWYgKHN0YXRlIFx1MDAzZSBNVDc5MTVfQ0RFVl9USFJPVFRMRV9NQVgpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xNTEtXHRcdGRldl9lcnIocGh5LVx1MDAzZWRldi1cdTAwM2VtdDc2LmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9MjE2PXN0YXRpYyBpbnQgbXQ3OTE1X3RoZXJtYWxfaW5pdChzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0yMzgtXHQvKiBpbml0aWFsaXplIGNyaXRpY2FsL21heGltdW0gaGlnaCB0ZW1wZXJhdHVyZSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjIzOTpcdHBoeS1cdTAwM2V0aHJvdHRsZV90ZW1wW01UNzkxNV9DUklUX1RFTVBfSURYXSA9IE1UNzkxNV9DUklUX1RFTVA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MjQwOlx0cGh5LVx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTE1X01BWF9URU1QX0lEWF0gPSBNVDc5MTVfTUFYX1RFTVA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMjQxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0zMjQ9c3RhdGljIHZvaWQgX19tdDc5MTVfaW5pdF90eHBvd2VyKHN0cnVjdCBtdDc5MTVfcGh5ICpwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTM1MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzozNTI6XHRcdC8qIE1UNzkxNU4gY2FuIG5vdCBlbmFibGUgQmFja29mZiB0YWJsZSB3aXRob3V0IHNldHRpbmcgdmFsdWUgaW4gZHRzICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMzUzLVx0XHRpZiAoIWxpbWl0cy5wYXRoLm9mZG1bMF0pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTUyNT1tdDc5MTVfbWFjX2luaXRfYmFuZChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCB1OCBiYW5kKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy01NzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6NTcxOlx0LyogZXhjbHVkZSBlc3RpbWF0ZWQgYmFja29mZiB0aW1lIGZvciBUeCBkdXJhdGlvbiBvbiBNVDc5MTUgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy01NzItXHRpZiAoaXNfbXQ3OTE1KFx1MDAyNmRldi1cdTAwM2VtdDc2KSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9ODY5PW10NzkxNV9pbml0X2hhcmR3YXJlKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkyKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy04OTgtXHQvKiBCZWFjb24gYW5kIG1nbXQgZnJhbWVzIHNob3VsZCBvY2N1cHkgd2NpZCAwICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6ODk5Olx0aWR4ID0gbXQ3Nl93Y2lkX2FsbG9jKGRldi1cdTAwM2VtdDc2LndjaWRfbWFzaywgTVQ3OTE1X1dUQkxfU1RBKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy05MDAtXHRpZiAoaWR4KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jPTExMjU9dm9pZCBtdDc5MTVfbWFjX3NldF90aW1pbmcoc3RydWN0IG10NzkxNV9waHkgKnBoeSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy0xMTc0LVx0aWYgKHBoeS1cdTAwM2VzbG90dGltZSBcdTAwM2MgMjAgfHwgYV9iYW5kKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM6MTE3NTpcdFx0dmFsID0gTVQ3OTE1X0NGRU5EX1JBVEVfREVGQVVMVDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTExNzYtXHRlbHNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYzoxMTc3Olx0XHR2YWwgPSBNVDc5MTVfQ0ZFTkRfUkFURV8xMUI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy0xMTc4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jPTEyNDM9bXQ3OTE1X3dhaXRfcmVzZXRfc3RhdGUoc3RydWN0IG10NzkxNV9kZXYgKmRldiwgdTMyIHN0YXRlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTEyNDgtXHRcdFx0XHQgKFJFQURfT05DRShkZXYtXHUwMDNlcmVjb3Zlcnkuc3RhdGUpIFx1MDAyNiBzdGF0ZSksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYzoxMjQ5Olx0XHRcdFx0IE1UNzkxNV9SRVNFVF9USU1FT1VUKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTEyNTAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM9MTQyNT1tdDc5MTVfbWFjX2Z1bGxfcmVzZXQoc3RydWN0IG10NzkxNV9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy0xNDY1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM6MTQ2NjpcdGkgPSBtdDc2X3djaWRfYWxsb2MoZGV2LVx1MDAzZW10NzYud2NpZF9tYXNrLCBNVDc5MTVfV1RCTF9TVEEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMTQ2Ny1cdGRldi1cdTAwM2VtdDc2Lmdsb2JhbF93Y2lkLmlkeCA9IGk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM9MTQ4Mj12b2lkIG10NzkxNV9tYWNfcmVzZXRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMTU5Ni1cdGllZWU4MDIxMV9xdWV1ZV9kZWxheWVkX3dvcmsobXQ3Nl9odyhkZXYpLCBcdTAwMjZkZXYtXHUwMDNlbXBoeS5tYWNfd29yayxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jOjE1OTc6XHRcdFx0XHQgICAgIE1UNzkxNV9XQVRDSERPR19USU1FKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTE1OTgtXHRpZiAocGh5Milcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy0xNjAwLVx0XHRcdFx0XHQgICAgIFx1MDAyNnBoeTItXHUwMDNlbXQ3Ni1cdTAwM2VtYWNfd29yayxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jOjE2MDE6XHRcdFx0XHRcdCAgICAgTVQ3OTE1X1dBVENIRE9HX1RJTUUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMTYwMi19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM9MjAwNj12b2lkIG10NzkxNV9tYWNfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMjAzMi1cdGllZWU4MDIxMV9xdWV1ZV9kZWxheWVkX3dvcmsobXBoeS1cdTAwM2VodywgXHUwMDI2bXBoeS1cdTAwM2VtYWNfd29yayxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jOjIwMzM6XHRcdFx0XHQgICAgIE1UNzkxNV9XQVRDSERPR19USU1FKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTIwMzQtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jPTIyNjg9bXQ3OTE1X21hY190d3RfcGFyYW1fZXF1YWwoc3RydWN0IG10NzkxNV9zdGEgKm1zdGEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMjI3NS1cdGV4cCA9IEZJRUxEX0dFVChJRUVFODAyMTFfVFdUX1JFUVRZUEVfV0FLRV9JTlRfRVhQLCB0eXBlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jOjIyNzY6XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBNVDc5MTVfTUFYX1NUQV9UV1RfQUdSVDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTIyNzctXHRcdHN0cnVjdCBtdDc5MTVfdHd0X2Zsb3cgKmY7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM9MjI5NT12b2lkIG10NzkxNV9tYWNfYWRkX3R3dF9zZXR1cChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy0yMzEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM6MjMxNDpcdGlmIChkZXYtXHUwMDNldHd0Lm5fYWdydCA9PSBNVDc5MTVfTUFYX1RXVF9BR1JUKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMjMxNS1cdFx0Z290byB1bmxvY2s7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMjMxOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jOjIzMjA6XHRpZiAodHd0X2FncnQtXHUwMDNlbWluX3R3dF9kdXIgXHUwMDNjIE1UNzkxNV9NSU5fVFdUX0RVUikge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMjMyMS1cdFx0c2V0dXBfY21kID0gVFdUX1NFVFVQX0NNRF9ESUNUQVRFO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM6MjMyMjpcdFx0dHd0X2FncnQtXHUwMDNlbWluX3R3dF9kdXIgPSBNVDc5MTVfTUlOX1RXVF9EVVI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy0yMzIzLVx0XHRnb3RvIHVubG9jaztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuaC0zLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmg6NDojaWZuZGVmIF9fTVQ3OTE1X01BQ19IXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuaDo1OiNkZWZpbmUgX19NVDc5MTVfTUFDX0hcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5oLTYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jPTIzPWludCBtdDc5MTVfcnVuKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy02MC1cdHJldCA9IG10NzkxNV9tY3Vfc2V0X3RoZXJtYWxfdGhyb3R0bGluZyhwaHksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6NjE6XHRcdFx0XHRcdFx0TVQ3OTE1X1RIRVJNQUxfVEhST1RUTEVfTUFYKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy02Mi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtNzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6NzE6XHRyZXQgPSBtdDc2X2Nvbm5hY19tY3Vfc2V0X3J0c190aHJlc2goXHUwMDI2ZGV2LVx1MDAzZW10NzYsIE1UNzkxNV9SVFNfTEVOX1RIUkVTLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTcyLVx0XHRcdFx0XHQgICAgIHBoeS1cdTAwM2VtdDc2LVx1MDAzZWJhbmRfaWR4KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtODctXHRcdGllZWU4MDIxMV9xdWV1ZV9kZWxheWVkX3dvcmsoaHcsIFx1MDAyNnBoeS1cdTAwM2VtdDc2LVx1MDAzZW1hY193b3JrLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jOjg4Olx0XHRcdFx0XHQgICAgIE1UNzkxNV9XQVRDSERPR19USU1FKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy04OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM9MjA0PXN0YXRpYyBpbnQgbXQ3OTE1X2FkZF9pbnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTIyMi1cdG12aWYtXHUwMDNlbXQ3Ni5pZHggPSBfX2ZmczY0KH5kZXYtXHUwMDNlbXQ3Ni52aWZfbWFzayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6MjIzOlx0aWYgKG12aWYtXHUwMDNlbXQ3Ni5pZHggXHUwMDNlPSAoTVQ3OTE1X01BWF9JTlRFUkZBQ0VTIFx1MDAzY1x1MDAzYyBkZXYtXHUwMDNlZGJkY19zdXBwb3J0KSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTIyNC1cdFx0cmV0ID0gLUVOT1NQQztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM9MzMzPWludCBtdDc5MTVfc2V0X2NoYW5uZWwoc3RydWN0IG10NzZfcGh5ICptcGh5KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0zNTktXHRcdFx0XHRcdCAgICAgXHUwMDI2cGh5LVx1MDAzZW10NzYtXHUwMDNlbWFjX3dvcmssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6MzYwOlx0XHRcdFx0XHQgICAgIE1UNzkxNV9XQVRDSERPR19USU1FKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0zNjEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jPTc1Mj1pbnQgbXQ3OTE1X21hY19zdGFfYWRkKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtNzYwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jOjc2MTpcdGlkeCA9IG10NzZfd2NpZF9hbGxvYyhkZXYtXHUwMDNlbXQ3Ni53Y2lkX21hc2ssIE1UNzkxNV9XVEJMX1NUQSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtNzYyLVx0aWYgKGlkeCBcdTAwM2MgMClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM9MTM1OD1zdGF0aWMgY29uc3QgY2hhciBtdDc5MTVfZ3N0cmluZ3Nfc3RhdHNbXVtFVEhfR1NUUklOR19MRU5dID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0xNDkyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jOjE0OTM6I2RlZmluZSBNVDc5MTVfU1NUQVRTX0xFTiBBUlJBWV9TSVpFKG10NzkxNV9nc3RyaW5nc19zdGF0cylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0xNDk0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYz0xNTEwPWludCBtdDc5MTVfZ2V0X2V0X3NzZXRfY291bnQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTE1MTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6MTUxNjpcdHJldHVybiBNVDc5MTVfU1NUQVRTX0xFTiAmIzQzOyBwYWdlX3Bvb2xfZXRodG9vbF9zdGF0c19nZXRfY291bnQoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0xNTE3LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM9MTUzMT12b2lkIG10NzkxNV9nZXRfZXRfc3RhdHMoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTE2NTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6MTY1OTpcdHN0YXRzX3NpemUgPSBNVDc5MTVfU1NUQVRTX0xFTiAmIzQzOyBwYWdlX3Bvb2xfZXRodG9vbF9zdGF0c19nZXRfY291bnQoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0xNjYwLVx0aWYgKGVpICE9IHN0YXRzX3NpemUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jPTE3NjY9bXQ3OTE1X3JlY29uZmlnX2NvbXBsZXRlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0xNzcyLVx0aWVlZTgwMjExX3F1ZXVlX2RlbGF5ZWRfd29yayhodywgXHUwMDI2cGh5LVx1MDAzZW10NzYtXHUwMDNlbWFjX3dvcmssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6MTc3MzpcdFx0XHRcdCAgICAgTVQ3OTE1X1dBVENIRE9HX1RJTUUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTE3NzQtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTEzLVx0Y2FzZSAweDc5MTU6XHRcdFx0XHRcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjE0Olx0XHRfZncgPSBNVDc5MTVfIyNuYW1lO1x0XHRcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTE1LVx0XHRicmVhaztcdFx0XHRcdFx0XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jPTcwOT1pbnQgbXQ3OTE1X21jdV9hZGRfYnNzX2luZm8oc3RydWN0IG10NzkxNV9waHkgKnBoeSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy03MjEtXHRza2IgPSBfX210NzZfY29ubmFjX21jdV9hbGxvY19zdGFfcmVxKFx1MDAyNmRldi1cdTAwM2VtdDc2LCBcdTAwMjZtdmlmLVx1MDAzZW10NzYsIE5VTEwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzo3MjI6XHRcdFx0XHRcdCAgICAgIE1UNzkxNV9CU1NfVVBEQVRFX01BWF9TSVpFKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTcyMy1cdGlmIChJU19FUlIoc2tiKSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYz0xMTI5PW10NzkxNV9tY3Vfc3RhX3NvdW5kaW5nX3JhdGUoc3RydWN0IHN0YV9yZWNfYmYgKmJmKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTExMzItXHRiZi1cdTAwM2VuZHBfcmF0ZSA9IDA7XHRcdFx0XHQvKiBtY3MwICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzoxMTMzOlx0YmYtXHUwMDNlbmRwYV9yYXRlID0gTVQ3OTE1X0NGRU5EX1JBVEVfREVGQVVMVDtcdC8qIG9mZG0gMjRtICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzoxMTM0Olx0YmYtXHUwMDNlcmVwdF9wb2xsX3JhdGUgPSBNVDc5MTVfQ0ZFTkRfUkFURV9ERUZBVUxUO1x0Lyogb2ZkbSAyNG0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTExMzUtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jPTE5NzQ9bXQ3OTE1X21jdV9hZGRfaW5iYW5kX2Rpc2NvdihzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTE5OTctXHRyc2tiID0gX19tdDc2X2Nvbm5hY19tY3VfYWxsb2Nfc3RhX3JlcShcdTAwMjZkZXYtXHUwMDNlbXQ3NiwgXHUwMDI2bXZpZi1cdTAwM2VtdDc2LCBOVUxMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM6MTk5ODpcdFx0XHRcdFx0ICAgICAgIE1UNzkxNV9NQVhfQlNTX09GRkxPQURfU0laRSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0xOTk5LVx0aWYgKElTX0VSUihyc2tiKSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yMDI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM6MjAyODpcdGlmIChza2ItXHUwMDNlbGVuIFx1MDAzZSBNVDc5MTVfTUFYX0JFQUNPTl9TSVpFKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yMDI5LVx0XHRkZXZfZXJyKGRldi1cdTAwM2VtdDc2LmRldiwgXCYjMzQ7aW5iYW5kIGRpc2NvdmVyeSBzaXplIGxpbWl0IGV4Y2VlZFxcblwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM9MjA1Nz1pbnQgbXQ3OTE1X21jdV9hZGRfYmVhY29uKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTIwNjctXHRzdHJ1Y3QgYnNzX2luZm9fYmNuICpiY247XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzoyMDY4Olx0aW50IGxlbiA9IE1UNzkxNV9NQVhfQlNTX09GRkxPQURfU0laRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTIwNjktXHRib29sIGV4dF9waHkgPSBwaHkgIT0gXHUwMDI2ZGV2LVx1MDAzZXBoeTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yMDkxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM6MjA5MjpcdGlmIChza2ItXHUwMDNlbGVuIFx1MDAzZSBNVDc5MTVfTUFYX0JFQUNPTl9TSVpFKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yMDkzLVx0XHRkZXZfZXJyKGRldi1cdTAwM2VtdDc2LmRldiwgXCYjMzQ7QmNuIHNpemUgbGltaXQgZXhjZWVkXFxuXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYz0yMzYzPXN0YXRpYyBpbnQgbXQ3OTE1X3JlZF9zZXRfd2F0ZXJtYXJrKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMjM3OC1cdFx0LmxlbiA9IGNwdV90b19sZTE2KHNpemVvZihyZXEpIC0gc2l6ZW9mKHJlcS5hcmdzKSksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzoyMzc5Olx0XHQuaGlnaF9tYXJrID0gY3B1X3RvX2xlMTYoTVQ3OTE1X0hXX1RPS0VOX1NJWkUgLSAyNTYpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM6MjM4MDpcdFx0Lmxvd19tYXJrID0gY3B1X3RvX2xlMTYoTVQ3OTE1X0hXX1RPS0VOX1NJWkUgLSAyNTYgLSAxNTM2KSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTIzODEtXHR9O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jPTI5MjA9aW50IG10NzkxNV9tY3VfZ2V0X2VlcHJvbShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCB1MzIgb2Zmc2V0LCB1OCAqcmVhZF9idWYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMjkyMy1cdFx0LmFkZHIgPSBjcHVfdG9fbGUzMihyb3VuZF9kb3duKG9mZnNldCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjI5MjQ6XHRcdFx0XHQgICAgTVQ3OTE1X0VFUFJPTV9CTE9DS19TSVpFKSksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yOTI1LVx0fTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yOTQwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM6Mjk0MTpcdFx0aWYgKGFkZHIgXHUwMDNlIGRldi1cdTAwM2VtdDc2LmVlcHJvbS5zaXplIC0gTVQ3OTE1X0VFUFJPTV9CTE9DS19TSVpFKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yOTQyLVx0XHRcdGRldl9rZnJlZV9za2Ioc2tiKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yOTQ2LVx0fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM6Mjk0NzpcdG1lbWNweShidWYsIHJlcy1cdTAwM2VkYXRhLCBNVDc5MTVfRUVQUk9NX0JMT0NLX1NJWkUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMjk0OC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYz0zMTc4PWludCBtdDc5MTVfbWN1X2dldF9jaGFuX21pYl9pbmZvKHN0cnVjdCBtdDc5MTVfcGh5ICpwaHksIGJvb2wgY2hhbl9zd2l0Y2gpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMzIyNS0jZGVmaW5lIF9fcmVzX3U2NChzKSBsZTY0X3RvX2NwdShyZXNbc10uZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjMyMjY6XHQvKiBzdWJ0cmFjdCBUeCBiYWNrb2ZmIHRpbWUgZnJvbSBUeCBkdXJhdGlvbiBmb3IgTVQ3OTE1ICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0zMjI3LVx0aWYgKGlzX210NzkxNShcdTAwMjZkZXYtXHUwMDNlbXQ3NikpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYz0zMzUxPWludCBtdDc5MTVfbWN1X3NldF90eHBvd2VyX2ZyYW1lKHN0cnVjdCBtdDc5MTVfcGh5ICpwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMzM3MS1cdGludCByZXQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzozMzcyOlx0czggdHhwb3dlcl9za3VbTVQ3OTE1X1NLVV9SQVRFX05VTV07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0zMzczLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jPTM0NDA9aW50IG10NzkxNV9tY3Vfc2V0X3R4cG93ZXJfc2t1KHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMzQ3MS1cdHNrYiA9IG10NzZfbWN1X21zZ19hbGxvYyhcdTAwMjZkZXYtXHUwMDNlbXQ3NiwgTlVMTCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjM0NzI6XHRcdFx0XHQgc2l6ZW9mKGhkcikgJiM0MzsgTVQ3OTE1X1NLVV9SQVRFX05VTSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0zNDczLVx0aWYgKCFza2IpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMzQ5OC1cdHNrYiA9IG10NzZfbWN1X21zZ19hbGxvYyhcdTAwMjZkZXYtXHUwMDNlbXQ3NiwgTlVMTCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjM0OTk6XHRcdFx0XHQgc2l6ZW9mKGhkcikgJiM0MzsgTVQ3OTE1X1NLVV9QQVRIX05VTSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0zNTAwLVx0aWYgKCFza2IpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM9MzU0Mz1pbnQgbXQ3OTE1X21jdV9nZXRfdHhwb3dlcl9za3Uoc3RydWN0IG10NzkxNV9waHkgKnBoeSwgczggKnR4cG93ZXIsIGludCBsZW4sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMzU2Ny1cdGlmIChjYXRlZ29yeSA9PSBUWF9QT1dFUl9JTkZPX1JBVEUpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjM1Njg6XHRcdHM4IHJlc1tNVDc5MTVfU0tVX1JBVEVfTlVNXVsyXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTM1NjktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM9NDAwMD1pbnQgbXQ3OTE1X21jdV9zZXRfcHJvdGVjdGlvbihzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTQwNDctXHRpZiAocnRzX3RocmVzaG9sZCA9PSAodTMyKS0xKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM6NDA0ODpcdFx0cHJvdC1cdTAwM2VydHNfbGVuX3RocmVzID0gY3B1X3RvX2xlMzIoTVQ3OTE1X1JUU19MRU5fVEhSRVMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtNDA0OS1cdGVsc2Vcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuaC0zLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1Lmg6NDojaWZuZGVmIF9fTVQ3OTE1X01DVV9IXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuaDo1OiNkZWZpbmUgX19NVDc5MTVfTUNVX0hcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oLTYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1Lmg9MTk2PXN0cnVjdCBtdDc5MTVfbWN1X3R4cG93ZXJfc2t1IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuaC0xOTktXHR1OCBiYW5kX2lkeDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oOjIwMDpcdHM4IHR4cG93ZXJfc2t1W01UNzkxNV9TS1VfUkFURV9OVU1dO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmgtMjAxLX0gX19wYWNrZWQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1Lmg9NTA4PWVudW0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oLTUyMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oOjUyNDojZGVmaW5lIE1UNzkxNV9NQVhfQkVBQ09OX1NJWkVcdFx0MTMwOFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1Lmg6NTI1OiNkZWZpbmUgTVQ3OTE1X0JFQUNPTl9VUERBVEVfU0laRVx0KHNpemVvZihzdHJ1Y3Qgc3RhX3JlcV9oZHIpICYjNDM7XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmgtNTI2LVx0XHRcdFx0XHQgc2l6ZW9mKHN0cnVjdCBic3NfaW5mb19iY24pICYjNDM7XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oLTUzMC1cdFx0XHRcdFx0IHNpemVvZihzdHJ1Y3QgYnNzX2luZm9fYmNuX2NvbnQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1Lmg6NTMxOiNkZWZpbmUgTVQ3OTE1X01BWF9CU1NfT0ZGTE9BRF9TSVpFXHQoTVQ3OTE1X01BWF9CRUFDT05fU0laRSAmIzQzO1x0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oOjUzMjpcdFx0XHRcdFx0IE1UNzkxNV9CRUFDT05fVVBEQVRFX1NJWkUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuaC01MzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuaDo1MzQ6I2RlZmluZSBNVDc5MTVfQlNTX1VQREFURV9NQVhfU0laRVx0KHNpemVvZihzdHJ1Y3Qgc3RhX3JlcV9oZHIpICYjNDM7XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmgtNTM1LVx0XHRcdFx0XHQgc2l6ZW9mKHN0cnVjdCBic3NfaW5mb19vbWFjKSAmIzQzO1x0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM9NjMzPWludCBtdDc5MTVfbW1pb193ZWRfaW5pdChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCB2b2lkICpwZGV2X3B0cixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtNjkxLVx0fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjY5MjpcdHdlZC1cdTAwM2V3bGFuLm5idWYgPSBNVDc5MTVfSFdfVE9LRU5fU0laRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy02OTMtXHR3ZWQtXHUwMDNld2xhbi50eF90Yml0WzBdID0gaXNfbXQ3OTE1KFx1MDAyNmRldi1cdTAwM2VtdDc2KSA/IDQgOiAzMDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtNjk1LVx0d2VkLVx1MDAzZXdsYW4udHhmcmVlX3RiaXQgPSBpc19tdDc5OHgoXHUwMDI2ZGV2LVx1MDAzZW10NzYpID8gMiA6IDE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6Njk2Olx0d2VkLVx1MDAzZXdsYW4udG9rZW5fc3RhcnQgPSBNVDc5MTVfVE9LRU5fU0laRSAtIHdlZC1cdTAwM2V3bGFuLm5idWY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtNjk3LVx0d2VkLVx1MDAzZXdsYW4ud2NpZF81MTIgPSAhaXNfbXQ3OTE1KFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtNjk5LVx0d2VkLVx1MDAzZXdsYW4ucnhfbmJ1ZiA9IDY1NTM2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjcwMDpcdHdlZC1cdTAwM2V3bGFuLnJ4X25wa3QgPSBNVDc5MTVfV0VEX1JYX1RPS0VOX1NJWkU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtNzAxLVx0d2VkLVx1MDAzZXdsYW4ucnhfc2l6ZSA9IFNLQl9XSVRIX09WRVJIRUFEKE1UX1JYX0JVRl9TSVpFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM9OTE3PXN0cnVjdCBtdDc5MTVfZGV2ICptdDc5MTVfbW1pb19wcm9iZShzdHJ1Y3QgZGV2aWNlICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy05MjgtXHRcdFx0XHRTVVJWRVlfSU5GT19USU1FX0JTU19SWCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYzo5Mjk6XHRcdC50b2tlbl9zaXplID0gTVQ3OTE1X1RPS0VOX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtOTMwLVx0XHQudHhfcHJlcGFyZV9za2IgPSBtdDc5MTVfdHhfcHJlcGFyZV9za2IsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jPTEwMDM9bW9kdWxlX2V4aXQobXQ3OTE1X2V4aXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjEwMDQ6TU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O01lZGlhVGVrIE1UNzkxNUUgTU1JTyBoZWxwZXJzXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy0xMDA1LU1PRFVMRV9MSUNFTlNFKFwmIzM0O0R1YWwgQlNEL0dQTFwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1LmgtMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oOjQ6I2lmbmRlZiBfX01UNzkxNV9IXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tdDc5MTUuaDo1OiNkZWZpbmUgX19NVDc5MTVfSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1LmgtNi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tdDc5MTUuaC0xMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oOjEyOiNkZWZpbmUgTVQ3OTE1X01BWF9JTlRFUkZBQ0VTXHRcdDE5XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tdDc5MTUuaDoxMzojZGVmaW5lIE1UNzkxNV9XVEJMX1NJWkVcdFx0Mjg4XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tdDc5MTUuaC0xNC0jZGVmaW5lIE1UNzkxNl9XVEJMX1NJWkVcdFx0NTQ0XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tdDc5MTUuaDoxNTojZGVmaW5lIE1UNzkxNV9XVEJMX1JFU0VSVkVEXHRcdChtdDc5MTVfd3RibF9zaXplKGRldikgLSAxKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1Lmg6MTY6I2RlZmluZSBNVDc5MTVfV1RCTF9TVEFcdFx0XHQoTVQ3OTE1X1dUQkxfUkVTRVJWRUQgLSBcXFxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDAzOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI1NDY3CgkJCQkJCQlvdXRwdXQ6IDEyNwoJCQkJCQkJdGhvdWdodHM6IDM1OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBNVDc5MTUgRHJpdmVyIGZvciBGdXp6aW5nKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24gc3lzdGVtYXRpY2FsbHkuIEkgc2VlIHRoZSBjaGFuZ2VzIHRvdWNoIGBtdDc5MTVfdW5yZWdpc3Rlcl90aGVybWFsYCBhbmQgYG10NzkxNV90aGVybWFsX2luaXRgIHdpdGhpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jYC4gVGhpcyBpcyB0aGUgV2ktRmkgNiBkcml2ZXIgZm9yIE1lZGlhVGVrJiMzOTtzIE1UNzkxNSwgTVQ3OTg2LCBhbmQgTVQ3OTE2IFBDSWUgYW5kIFNvQyBoYXJkd2FyZS4gVGhlIGNvcmUgcXVlc3Rpb24gaXMgYWx3YXlzOiBjYW4gd2UgcmVhY2ggdGhpcyBjb2RlIGluIGEgc3RhbmRhcmQgZnV6emluZyBlbnZpcm9ubWVudD8KCktub3dpbmcgdGhlIHRhcmdldCB3ZWxsLCBJIGltbWVkaWF0ZWx5IHRoaW5rOiBhcmUgdGhlc2UgY2hpcHMgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgVk1zPyBUaGUgYW5zd2VyIGlzIGEgY2xlYXIgbm8uIFdlJiMzOTtyZSBkZWFsaW5nIHdpdGggdmVyeSBzcGVjaWZpYyBoYXJkd2FyZSBoZXJlLgoKVGhlIGRvY3VtZW50IHJlaW5mb3JjZXMgbXkgdW5kZXJzdGFuZGluZyBwZXJmZWN0bHksIHJlZmVyZW5jaW5nIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZSBsaWtlIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIGFuZCBHUFUgZHJpdmVycy4gSXQgaGlnaGxpZ2h0cyB0aGF0IHRoZXNlIHJlcXVpcmUgcGh5c2ljYWwgQVNJQ3Mgb3IgUENJZSBjYXJkcyBub3Qgc2ltdWxhdGVkIGluIGNvbW1vbiB2aXJ0dWFsaXphdGlvbiB0b29scy4gVGhlIE1lZGlhVGVrIE1UNzkxNSB3aXJlbGVzcyBOSUMgZHJpdmVyIGZpdHMgdGhpcyBkZXNjcmlwdGlvbiAqcGVyZmVjdGx5Ki4gSXQmIzM5O3MgdmVuZG9yLXNwZWNpZmljLCBkZXBlbmRlbnQgb24gYSBzcGVjaWZpYyBwaHlzaWNhbCBQQ0llL1NvQyB3aXJlbGVzcyBjaGlwLgoKVGhlcmVmb3JlLCBgV29ydGhGdXp6aW5nYCBoYXMgdG8gYmUgYGZhbHNlYC4gVGhlcmUmIzM5O3Mgbm8gd2F5IHdlIGNhbiB0cmlnZ2VyIHRoZXNlIGZ1bmN0aW9ucyBlZmZlY3RpdmVseSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBDb25zZXF1ZW50bHksIGBGb2N1c1N5bWJvbHNgIG5lZWRzIHRvIGJlIGFuIGVtcHR5IGxpc3QsIGBbXWAuIFNpbWlsYXJseSwgYEVuYWJsZUNvbmZpZ3NgIHNob3VsZCBiZSBlbXB0eSBvciBgbnVsbGAg4oCTIG5vdGhpbmcgaXMgcmVsZXZhbnQgaGVyZS4gVGhlIGBSZWFzb25pbmdgIHNob3VsZCBiZSBjcnlzdGFsIGNsZWFyOiBgbXQ3OTE1YCBpcyBhIHZlbmRvci1zcGVjaWZpYyBkcml2ZXIgZm9yIE1lZGlhVGVrJiMzOTtzIE1UNzkxNS9NVDc5ODYvTVQ3OTE2IFBDSWUgYW5kIFNvQyB3aXJlbGVzcyBuZXR3b3JrIGNoaXBzIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChRRU1VL0dDRSksIHJlbmRlcmluZyB0aGUgbW9kaWZpZWQgY29kZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuCgpOb3csIGxldCYjMzk7cyBjYWxsIGBzZXQtcmVzdWx0c2AuIEl0JiMzOTtzIGEgc3RyYWlnaHRmb3J3YXJkIGNhc2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDAzOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgbW9kaWZpZWQgY29kZSBpcyB3aXRoaW4gdGhlIE1lZGlhVGVrIE1UNzkxNSB3aXJlbGVzcyBkcml2ZXIgKGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1LyksIHdoaWNoIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIFBDSWUvU29DIGhhcmR3YXJlIChNVDc5MTUvTVQ3OTE2L01UNzk4Nikgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkuIEFzIHN1Y2gsIHRoaXMgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIHN5emthbGxlciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgbW9kaWZpZWQgY29kZSBpcyB3aXRoaW4gdGhlIE1lZGlhVGVrIE1UNzkxNSB3aXJlbGVzcyBkcml2ZXIgKGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1LyksIHdoaWNoIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIFBDSWUvU29DIGhhcmR3YXJlIChNVDc5MTUvTVQ3OTE2L01UNzk4Nikgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkuIEFzIHN1Y2gsIHRoaXMgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIHN5emthbGxlciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMDM6MDk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDAzOjA4OjQxLjAzODM1NDQ2OFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI2Mzc0NjA2MzQxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgbW9kaWZpZWQgY29kZSBpcyB3aXRoaW4gdGhlIE1lZGlhVGVrIE1UNzkxNSB3aXJlbGVzcyBkcml2ZXIgKGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1LyksIHdoaWNoIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIFBDSWUvU29DIGhhcmR3YXJlIChNVDc5MTUvTVQ3OTE2L01UNzk4Nikgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkuIEFzIHN1Y2gsIHRoaXMgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIHN5emthbGxlciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMDM6MDg6NDEuMDM4MzYwODU3WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NTI5MTI3ODAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBhNjQyZjViYzA0MzFhYWQ2MWUzMzI3OTRhMjFiZDAyMWI4NmQ1OTAxXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gU2VwIDcgMDM6MDg6MzkgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jXFxuaW5kZXggY2E0NmEyMDNhYTQ4Yi4uZTUyODVkMWExZjlkZSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmNcXG5AQCAtMjAwLDExICsyMDAsMTcgQEAgc3RhdGljIHZvaWQgbXQ3OTE1X3VucmVnaXN0ZXJfdGhlcm1hbChzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5KVxcbiB7XFxuIFxcdHN0cnVjdCB3aXBoeSAqd2lwaHkgPSBwaHktXFx1MDAzZW10NzYtXFx1MDAzZWh3LVxcdTAwM2V3aXBoeTtcXG4gXFxuK1xcdGlmIChwaHktXFx1MDAzZXR6b25lKSB7XFxuK1xcdFxcdGRldm1fdGhlcm1hbF9vZl96b25lX3VucmVnaXN0ZXIocGh5LVxcdTAwM2VkZXYtXFx1MDAzZW10NzYuZGV2LCBwaHktXFx1MDAzZXR6b25lKTtcXG4rXFx0XFx0cGh5LVxcdTAwM2V0em9uZSA9IE5VTEw7XFxuK1xcdH1cXG4rXFxuIFxcdGlmICghcGh5LVxcdTAwM2VjZGV2KVxcbiBcXHRcXHRyZXR1cm47XFxuIFxcbiBcXHRzeXNmc19yZW1vdmVfbGluayhcXHUwMDI2d2lwaHktXFx1MDAzZWRldi5rb2JqLCBcXFwiY29vbGluZ19kZXZpY2VcXFwiKTtcXG4gXFx0dGhlcm1hbF9jb29saW5nX2RldmljZV91bnJlZ2lzdGVyKHBoeS1cXHUwMDNlY2Rldik7XFxuK1xcdHBoeS1cXHUwMDNlY2RldiA9IE5VTEw7XFxuIH1cXG4gXFxuIHN0YXRpYyBpbnQgbXQ3OTE1X3RoZXJtYWxfaW5pdChzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5KVxcbkBAIC0yMTMsNiArMjE5LDcgQEAgc3RhdGljIGludCBtdDc5MTVfdGhlcm1hbF9pbml0KHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkpXFxuIFxcdHN0cnVjdCB0aGVybWFsX2Nvb2xpbmdfZGV2aWNlICpjZGV2O1xcbiBcXHRzdHJ1Y3QgZGV2aWNlICpod21vbjtcXG4gXFx0Y29uc3QgY2hhciAqbmFtZTtcXG4rXFx0aW50IHJldDtcXG4gXFxuIFxcdG5hbWUgPSBkZXZtX2thc3ByaW50ZihcXHUwMDI2d2lwaHktXFx1MDAzZWRldiwgR0ZQX0tFUk5FTCwgXFxcIm10NzkxNV8lc1xcXCIsXFxuIFxcdFxcdFxcdCAgICAgIHdpcGh5X25hbWUod2lwaHkpKTtcXG5AQCAtMjM4LDggKzI0NSw4IEBAIHN0YXRpYyBpbnQgbXQ3OTE1X3RoZXJtYWxfaW5pdChzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5KVxcbiBcXHRpZiAoSVNfRVJSKHBoeS1cXHUwMDNldHpvbmUpKSB7XFxuIFxcdFxcdGlmIChQVFJfRVJSKHBoeS1cXHUwMDNldHpvbmUpICE9IC1FTk9ERVYpXFxuIFxcdFxcdFxcdGRldl93YXJuKHBoeS1cXHUwMDNlZGV2LVxcdTAwM2VtdDc2LmRldixcXG4tXFx0XFx0XFx0XFx0IFxcXCJmYWlsZWQgdG8gcmVnaXN0ZXIgdGhlcm1hbCB6b25lOiAlbGRcXFxcblxcXCIsXFxuLVxcdFxcdFxcdFxcdCBQVFJfRVJSKHBoeS1cXHUwMDNldHpvbmUpKTtcXG4rXFx0XFx0XFx0XFx0IFxcXCJmYWlsZWQgdG8gcmVnaXN0ZXIgdGhlcm1hbCB6b25lICVkOiAlbGRcXFxcblxcXCIsXFxuK1xcdFxcdFxcdFxcdCBwaHktXFx1MDAzZW10NzYtXFx1MDAzZWJhbmRfaWR4LCBQVFJfRVJSKHBoeS1cXHUwMDNldHpvbmUpKTtcXG4gXFx0XFx0cGh5LVxcdTAwM2V0em9uZSA9IE5VTEw7XFxuIFxcdH1cXG4gXFxuQEAgLTI0OCw3ICsyNTUsMTEgQEAgc3RhdGljIGludCBtdDc5MTVfdGhlcm1hbF9pbml0KHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkpXFxuIFxcbiBcXHRod21vbiA9IGRldm1faHdtb25fZGV2aWNlX3JlZ2lzdGVyX3dpdGhfZ3JvdXBzKFxcdTAwMjZ3aXBoeS1cXHUwMDNlZGV2LCBuYW1lLCBwaHksXFxuIFxcdFxcdFxcdFxcdFxcdFxcdCAgICAgICBtdDc5MTVfaHdtb25fZ3JvdXBzKTtcXG4tXFx0cmV0dXJuIFBUUl9FUlJfT1JfWkVSTyhod21vbik7XFxuK1xcdHJldCA9IFBUUl9FUlJfT1JfWkVSTyhod21vbik7XFxuK1xcdGlmIChyZXQpXFxuK1xcdFxcdG10NzkxNV91bnJlZ2lzdGVyX3RoZXJtYWwocGh5KTtcXG4rXFxuK1xcdHJldHVybiByZXQ7XFxuIH1cXG4gXFxuIHN0YXRpYyB2b2lkIG10NzkxNV9sZWRfc2V0X2NvbmZpZyhzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfY2RldixcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMDM6MDg6NDEuNjkxOTY3Mzc4WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjoyNTcyMDk2NjQ2MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgbW9kaWZpZWQgY29kZSBpcyB3aXRoaW4gdGhlIE1lZGlhVGVrIE1UNzkxNSB3aXJlbGVzcyBkcml2ZXIgKGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1LyksIHdoaWNoIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIFBDSWUvU29DIGhhcmR3YXJlIChNVDc5MTUvTVQ3OTE2L01UNzk4Nikgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkuIEFzIHN1Y2gsIHRoaXMgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIHN5emthbGxlciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzc1xudG9vbHMgdG8gaW5zcGVjdCB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlLCBjYWxsZXJzLCBhbmQgc3Vycm91bmRpbmcgY29udGV4dC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjEuIENPUkUgVFJJQUdFIFBISUxPU09QSFlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5UaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLFxuYW5kIG5ld2x5IHRyaWdnZXJlZCBhc3NlcnRpb25zIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIHNlcmllcy5cblxuLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURTpcbiAgRnV6emluZyBjYW4gb25seSBkaXNjb3ZlciBidWdzIGluIGNvZGUgdGhhdCBjYW4gYWN0dWFsbHkgZXhlY3V0ZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZFxuICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLlxuICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsXG4gIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBhZGRzIGFzc2VydGlvbnMgb3IgY29tcGxleCBsb2dpYy5cblxuLSBETyBOT1QgQkxJTkRMWSBUUlVTVCBcIk5PIEZVTkNUSU9OQUwgQ0hBTkdFXCIgKE5GQ0kpIE9SIFwiUkVGQUNUT1JJTkdcIiBDTEFJTVM6XG4gIFBhdGNoIGF1dGhvcnMgcm91dGluZWx5IGxhYmVsIGNoYW5nZXMgYXMgXCJjbGVhbnVwc1wiLCBcInJlZmFjdG9yaW5nc1wiLCBvciBzdGF0ZVxuICBcIk5vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkXCIuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLlxuICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnRcbiAgaW4gY29yZSBzdWJzeXN0ZW1zIGZyZXF1ZW50bHkgaW50cm9kdWNlIHN1YnRsZSBzZW1hbnRpYyBzaGlmdHMgb3IgdW5jb3ZlciBsYXRlbnQga2VybmVsIGJ1Z3MuXG4gIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuXG5cbi0gTkVXIE9SIE1PRElGSUVEIEFTU0VSVElPTlMgSU4gUkVBQ0hBQkxFIENPREUgTVVTVCBCRSBGVVpaRUQ6XG4gIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKixcbiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuXG4gIEV2ZW4gaWYgdGhlIGF1dGhvciBiZWxpZXZlcyB0aGUgaW52YXJpYW50IGFsd2F5cyBob2xkcywgZnV6emluZyBpcyBlc3NlbnRpYWwgdG8gdmVyaWZ5IHdoZXRoZXJcbiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIE9OTFkgSUYgYWxsIG1vZGlmaWVkIGNvZGUgZmFsbHMgc3RyaWN0bHkgaW50byBvbmUgb3IgbW9yZSBvZiB0aGVzZSBjYXRlZ29yaWVzOlxuXG4tIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6XG4gICogTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgY29tbWVudHMsIG9yIHNwZWxsaW5nIGZpeGVzLlxuICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKVxuICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy5cbiAgKiBQdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIChlLmcuLCBtZXNzYWdlIHN0cmluZ3MgaW4gcHJfZXJyLCBwcmludGssIGRldl9pbmZvKSBvciB0cmFjZXBvaW50c1xuICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuXG4gICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLlxuLSBTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmU6XG4gICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIFVucmVhY2hhYmxlIGV4ZWN1dGlvbiBwYXRoczpcbiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmdcbiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy5cbiAgKiBDb2RlIHBhdGhzIGV4Y2x1c2l2ZSB0byBhcmNoaXRlY3R1cmVzIG90aGVyIHRoYW4gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4zLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9dHJ1ZSAoUE9TSVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzpcbi0gQ29yZSBTdWJzeXN0ZW1zOlxuICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSxcbiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuXG4tIFJlZmFjdG9yaW5ncyBhbmQgQ29kZSBDbGVhbnVwczpcbiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuXG4tIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczpcbiAgKiBBbnkgaW50cm9kdWN0aW9uIG9yIGFsdGVyYXRpb24gb2YgYXNzZXJ0aW9ucyAoV0FSTl9PTiosIFZNX1dBUk5fT04qLCBCVUdfT04qLCBldGMuKSBpbiByZWFjaGFibGUgcGF0aHMuXG4tIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6XG4gICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6XG5cbi0gQVZPSUQgVUJJUVVJVE9VUyBMSUZFQ1lDTEUgSE9ULVBBVEhTOlxuICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1c1xuICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdFxuICBhbmQgdHJhcCBoYW5kbGVycywgb3IgY29yZSBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlczsgdGhpcyBpcyBub3QgYW4gZXhoYXVzdGl2ZSBsaXN0KS5cbiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzIFwiZm9jdXNlZFwiLFxuICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuXG5cbi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOlxuICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHNcbiAgZm9yIHRoZSBzdWJzeXN0ZW0gZmVhdHVyZSB1bmRlciByZXZpZXcuXG5cbi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOlxuICBDb21waWxlci1pbmxpbmVkIHN0YXRpYyBmdW5jdGlvbnMgKHN1Y2ggYXMgc3RhdGljIGlubGluZXMgaW4gbW0vKi5oIG9yIGluY2x1ZGUvbGludXgvKi5oKSBsYWNrXG4gIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLlxuICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXJcbiAgZnVuY3Rpb25zIGluIC5jIGZpbGVzIHRoYXQgZXhlcmNpc2UgdGhlbSAoYXZvaWRpbmcgdWJpcXVpdG91cyBsaWZlY3ljbGUgd3JhcHBlcnMpLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuNS4gSURFTlRJRllJTkcgRW5hYmxlQ29uZmlnc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6XG4tIEluc3BlY3QgS2NvbmZpZyBmaWxlcyBhbmQgI2lmZGVmIGd1YXJkczsgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4tIENoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuXG4tIFN0cmlwIGFueSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJUYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NFxuXG5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBhNjQyZjViYzA0MzFhYWQ2MWUzMzI3OTRhMjFiZDAyMWI4NmQ1OTAxXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBTZXAgNyAwMzowODozOSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuY1xuaW5kZXggY2E0NmEyMDNhYTQ4Yi4uZTUyODVkMWExZjlkZSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jXG5AQCAtMjAwLDExICsyMDAsMTcgQEAgc3RhdGljIHZvaWQgbXQ3OTE1X3VucmVnaXN0ZXJfdGhlcm1hbChzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5KVxuIHtcbiBcdHN0cnVjdCB3aXBoeSAqd2lwaHkgPSBwaHktXHUwMDNlbXQ3Ni1cdTAwM2Vody1cdTAwM2V3aXBoeTtcbiBcbitcdGlmIChwaHktXHUwMDNldHpvbmUpIHtcbitcdFx0ZGV2bV90aGVybWFsX29mX3pvbmVfdW5yZWdpc3RlcihwaHktXHUwMDNlZGV2LVx1MDAzZW10NzYuZGV2LCBwaHktXHUwMDNldHpvbmUpO1xuK1x0XHRwaHktXHUwMDNldHpvbmUgPSBOVUxMO1xuK1x0fVxuK1xuIFx0aWYgKCFwaHktXHUwMDNlY2RldilcbiBcdFx0cmV0dXJuO1xuIFxuIFx0c3lzZnNfcmVtb3ZlX2xpbmsoXHUwMDI2d2lwaHktXHUwMDNlZGV2LmtvYmosIFwiY29vbGluZ19kZXZpY2VcIik7XG4gXHR0aGVybWFsX2Nvb2xpbmdfZGV2aWNlX3VucmVnaXN0ZXIocGh5LVx1MDAzZWNkZXYpO1xuK1x0cGh5LVx1MDAzZWNkZXYgPSBOVUxMO1xuIH1cbiBcbiBzdGF0aWMgaW50IG10NzkxNV90aGVybWFsX2luaXQoc3RydWN0IG10NzkxNV9waHkgKnBoeSlcbkBAIC0yMTMsNiArMjE5LDcgQEAgc3RhdGljIGludCBtdDc5MTVfdGhlcm1hbF9pbml0KHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkpXG4gXHRzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZSAqY2RldjtcbiBcdHN0cnVjdCBkZXZpY2UgKmh3bW9uO1xuIFx0Y29uc3QgY2hhciAqbmFtZTtcbitcdGludCByZXQ7XG4gXG4gXHRuYW1lID0gZGV2bV9rYXNwcmludGYoXHUwMDI2d2lwaHktXHUwMDNlZGV2LCBHRlBfS0VSTkVMLCBcIm10NzkxNV8lc1wiLFxuIFx0XHRcdCAgICAgIHdpcGh5X25hbWUod2lwaHkpKTtcbkBAIC0yMzgsOCArMjQ1LDggQEAgc3RhdGljIGludCBtdDc5MTVfdGhlcm1hbF9pbml0KHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkpXG4gXHRpZiAoSVNfRVJSKHBoeS1cdTAwM2V0em9uZSkpIHtcbiBcdFx0aWYgKFBUUl9FUlIocGh5LVx1MDAzZXR6b25lKSAhPSAtRU5PREVWKVxuIFx0XHRcdGRldl93YXJuKHBoeS1cdTAwM2VkZXYtXHUwMDNlbXQ3Ni5kZXYsXG4tXHRcdFx0XHQgXCJmYWlsZWQgdG8gcmVnaXN0ZXIgdGhlcm1hbCB6b25lOiAlbGRcXG5cIixcbi1cdFx0XHRcdCBQVFJfRVJSKHBoeS1cdTAwM2V0em9uZSkpO1xuK1x0XHRcdFx0IFwiZmFpbGVkIHRvIHJlZ2lzdGVyIHRoZXJtYWwgem9uZSAlZDogJWxkXFxuXCIsXG4rXHRcdFx0XHQgcGh5LVx1MDAzZW10NzYtXHUwMDNlYmFuZF9pZHgsIFBUUl9FUlIocGh5LVx1MDAzZXR6b25lKSk7XG4gXHRcdHBoeS1cdTAwM2V0em9uZSA9IE5VTEw7XG4gXHR9XG4gXG5AQCAtMjQ4LDcgKzI1NSwxMSBAQCBzdGF0aWMgaW50IG10NzkxNV90aGVybWFsX2luaXQoc3RydWN0IG10NzkxNV9waHkgKnBoeSlcbiBcbiBcdGh3bW9uID0gZGV2bV9od21vbl9kZXZpY2VfcmVnaXN0ZXJfd2l0aF9ncm91cHMoXHUwMDI2d2lwaHktXHUwMDNlZGV2LCBuYW1lLCBwaHksXG4gXHRcdFx0XHRcdFx0ICAgICAgIG10NzkxNV9od21vbl9ncm91cHMpO1xuLVx0cmV0dXJuIFBUUl9FUlJfT1JfWkVSTyhod21vbik7XG4rXHRyZXQgPSBQVFJfRVJSX09SX1pFUk8oaHdtb24pO1xuK1x0aWYgKHJldClcbitcdFx0bXQ3OTE1X3VucmVnaXN0ZXJfdGhlcm1hbChwaHkpO1xuK1xuK1x0cmV0dXJuIHJldDtcbiB9XG4gXG4gc3RhdGljIHZvaWQgbXQ3OTE1X2xlZF9zZXRfY29uZmlnKHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMDM6MDg6NDEuNjkxOTY5MTc4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MTEwMjQyMDYzNzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRXZhbHVhdGluZyB0aGUgU3VpdGFiaWxpdHkgb2YgYSBLZXJuZWwgUGF0Y2ggZm9yIFN5emthbGxlciBGdXp6aW5nKipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyBwYXRjaCB0byBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jYCB0aGF0IHNvbWVvbmUgd2FudHMgbWUgdG8gYXNzZXNzIGZvciBzeXprYWxsZXIgZnV6emluZy4gTXkgZmlyc3Qgc3RlcCBpcyB0byBxdWlja2x5IGRldGVybWluZSBpZiB0aGlzIGlzIGV2ZW4gZmVhc2libGUuIFRoZSBxdWVzdGlvbiBpcywgY2FuIEkgcmVhY2ggdGhpcyBkcml2ZXIgaW4gYSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lPyBUaGUgZHJpdmVyIGluIHF1ZXN0aW9uIGlzIHRoZSBNZWRpYXRlayBNVDc5MTUgd2lyZWxlc3MgZHJpdmVyLiBJIG5lZWQgdG8gZmlndXJlIG91dCBob3cgaXQncyBjb25uZWN0ZWQgLSBpcyBpdCBQQ0kvUENJZSwgVVNCLCBvciBzb21ldGhpbmcgU29DLXNwZWNpZmljPyBJJ2xsIHByb2JhYmx5IHVzZSBgZ3JlcHBlcmAgb3IgbWF5YmUganVzdCBgcmVhZC1maWxlYCB0byBjaGVjayB0aGUgY29kZSBkaXJlY3RseSB0byBnZXQgdGhlIGFuc3dlci5cblxuQmVmb3JlIEkgZ28gZnVydGhlciwgYSBxdWljayBzZWN1cml0eSByZXZpZXcgaXMgaW4gb3JkZXIuIFRoaXMgaXMgYSBwcmV0dHkgc3RhbmRhcmQgZGV2ZWxvcGVyIFFBL3RyaWFnZSB0YXNrLCBub3RoaW5nIG9idmlvdXNseSBjcml0aWNhbCBoZXJlLiBObyByZWQgZmxhZ3Mgc28gZmFyIOKAkyB0aGlzIGlzIHByb2JhYmx5IGEgYmVuaWduLCBub3JtYWwgcGF0Y2guXG5cblRvIHByb3Blcmx5IGFuYWx5emUgdGhpcywgSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgYG10NzkxNWAgZHJpdmVyIGl0c2VsZi4gSSdsbCBuZWVkIHRvIGV4cGxvcmUgdGhlIGNvZGViYXNlIHRvIHVuZGVyc3RhbmQgaXRzIGZ1bmN0aW9uIGFuZCBjb250ZXh0LlxuXG5cbiIsIklucHV0VG9rZW5zIjozNDc3LCJPdXRwdXRUb2tlbnMiOjUxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjI0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMDM6MDg6NTIuNzE2MTg5NDUxWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2NDY4OTk0OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJNT0RVTEVfREVWSUNFX1RBQkxFfHBjaV9yZWdpc3Rlcl9kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYz05NjU9c3RhdGljIGludCBfX2luaXQgbXQ3OTE1X2luaXQodm9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy05NjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjk2OTpcXHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZtdDc5MTVfaGlmX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTk3MC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTk3Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6OTczOlxcdHJldCA9IHBjaV9yZWdpc3Rlcl9kcml2ZXIoXFx1MDAyNm10NzkxNV9wY2lfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtOTc0LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9wY2kuYz0yMzE9c3RydWN0IHBjaV9kcml2ZXIgbXQ3OTE1X3BjaV9kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9wY2kuYy0yMzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmM6MjM4Ok1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBtdDc5MTVfcGNpX2RldmljZV90YWJsZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmM6MjM5Ok1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBtdDc5MTVfaGlmX2RldmljZV90YWJsZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmMtMjQwLU1PRFVMRV9GSVJNV0FSRShNVDc5MTVfRklSTVdBUkVfV0EpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmM9MTI4Nz1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtdDc5OHhfd21hY19vZl9tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmMtMTI5Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9zb2MuYzoxMjkzOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG10Nzk4eF93bWFjX29mX21hdGNoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9zb2MuYy0xMjk0LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QwMzowODo1Mi44ODA4ODc4ODlaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyMTk1MzM1NjU2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkludmVzdGlnYXRpbmcgTVQ3OTE1IENhcGFiaWxpdGllcyoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byBnZXQgYSBoYW5kbGUgb24gdGhlIE1UNzkxNSdzIGNhcGFiaWxpdGllcy4gTXkgaW5pdGlhbCBxdWVzdGlvbiBpcyB3aGV0aGVyIHRoaXMgdGhpbmcgaXMgbGltaXRlZCB0byBQQ0llL1NvQyBpbnRlZ3JhdGlvbiBvciBpZiBpdCdzIG1vcmUgZmxleGlibGUsIHBvc3NpYmx5IHN1cHBvcnRpbmcgVVNCIG9yIGV2ZW4gc29tZSBmb3JtIG9mIHZpcnR1YWxpemF0aW9uLiBUaGUgZG9jdW1lbnRhdGlvbiBpcyBhbHdheXMgYSBzdGFydGluZyBwb2ludCwgYnV0IGxldCdzIGRpdmUgaW50byB0aGUgY29kZSBkaXJlY3RseS5cblxuRmlyc3QsIEkgbmVlZCB0byBnZXQgYSBzb2xpZCBvdmVydmlldy4gTGV0J3Mgc2VlIHdoYXQncyBpbiB0aGF0IGRyaXZlciBkaXJlY3RvcnkuIEknbGwgZXhlY3V0ZSBhIHF1aWNrIGBsc2Agb24gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2AuIEtub3dpbmcgdGhlIGZpbGUgc3RydWN0dXJlIHdpbGwgaGVscCBtZSBxdWlja2x5IGlkZW50aWZ5IGtleSBhcmVhcyB0byBpbnZlc3RpZ2F0ZSBmdXJ0aGVyLiBUaGlzIHdpbGwgYWxsb3cgbWUgdG8gbmFycm93IG15IGZvY3VzIGFuZCB1bmRlcnN0YW5kIHRoZSBwb3RlbnRpYWwgaW50ZWdyYXRpb24gcGF0aHdheXMuIEZyb20gdGhlcmUsIEkgY2FuIGRyaWxsIGRvd24gaW50byB0aGUgcmVsZXZhbnQgbW9kdWxlcyBvciBoZWFkZXIgZmlsZXMgdG8gY29uZmlybSBteSBpbml0aWFsIGh5cG90aGVzaXMuIExldCdzIHN0YXJ0IGRpZ2dpbmchXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ2ODcsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QwMzowODo1NS4wNzYyMjY5MzZaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJjb2Rlc2VhcmNoLWRpci1pbmRleCIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjkzMDIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRGlyXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRmlsZXNcIjogW1xuICAgIFwiY29yZWR1bXAuY1wiLFxuICAgIFwiY29yZWR1bXAuaFwiLFxuICAgIFwiZGVidWdmcy5jXCIsXG4gICAgXCJkbWEuY1wiLFxuICAgIFwiZWVwcm9tLmNcIixcbiAgICBcImVlcHJvbS5oXCIsXG4gICAgXCJpbml0LmNcIixcbiAgICBcIm1hYy5jXCIsXG4gICAgXCJtYWMuaFwiLFxuICAgIFwibWFpbi5jXCIsXG4gICAgXCJtY3UuY1wiLFxuICAgIFwibWN1LmhcIixcbiAgICBcIm1taW8uY1wiLFxuICAgIFwibXQ3OTE1LmhcIixcbiAgICBcInBjaS5jXCIsXG4gICAgXCJyZWdzLmhcIixcbiAgICBcInNvYy5jXCIsXG4gICAgXCJ0ZXN0bW9kZS5jXCIsXG4gICAgXCJ0ZXN0bW9kZS5oXCJcbiAgXSxcbiAgXCJTdWJkaXJzXCI6IG51bGxcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDAzOjA4OjU1LjA3NjMzMzMzNloiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjE3NjA1Mzc4NTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyBpZiBJIHdlcmUgdGhpbmtpbmcgaXQ6XG5cbioqRGlnZ2luZyBpbnRvIHRoZSBNVDc5MTUgVGhlcm1hbCBNYW5hZ2VtZW50KipcblxuT2theSwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHRoZXJtYWwgbWFuYWdlbWVudCBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIE1UNzkxNSB3aXJlbGVzcyBkcml2ZXIuIExldCdzIHNlZS4uLkknbGwgc3RhcnQgYnkgY2hlY2tpbmcgdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmNgIGZpbGUuIFRoYXQncyB0aGUgbG9naWNhbCBwbGFjZSB0byBsb29rIGZvciBpbml0aWFsaXphdGlvbiBhbmQgdW5yZWdpc3RyYXRpb24gcm91dGluZXMuIEkgd2FudCB0byBwaW5wb2ludCB3aGVyZSBgbXQ3OTE1X3RoZXJtYWxfaW5pdGAgYW5kIGBtdDc5MTVfdW5yZWdpc3Rlcl90aGVybWFsYCBhcmUgYmVpbmcgY2FsbGVkLCBhcyB0aGF0IHdpbGwgZ2l2ZSBtZSBjb250ZXh0IGZvciBob3cgdGhlIHRoZXJtYWwgZmVhdHVyZXMgYXJlIGVuYWJsZWQgYW5kIGRpc2FibGVkIHdpdGhpbiB0aGUgZHJpdmVyJ3MgbGlmZWN5Y2xlLiBVbmRlcnN0YW5kaW5nIHRoZSBjYWxsIHNlcXVlbmNlIHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBvdmVyYWxsIHRoZXJtYWwgbWFuYWdlbWVudCBzdHJhdGVneS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTExNCwiT3V0cHV0VG9rZW5zIjo1OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU2LCJUb29sQ2FsbHMiOlsiY29kZXNlYXJjaC1kaXItaW5kZXgiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QwMzowODo1Ni44MzY4NzQzNzlaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTYwNTMyMTY3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzkxNV90aGVybWFsX2luaXR8bXQ3OTE1X3VucmVnaXN0ZXJfdGhlcm1hbFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTE5NT1zdGF0aWMgY29uc3Qgc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2Vfb3BzIG10NzkxNV90el9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTk4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoxOTk6c3RhdGljIHZvaWQgbXQ3OTE1X3VucmVnaXN0ZXJfdGhlcm1hbChzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0yMDAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTIxNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MjE2OnN0YXRpYyBpbnQgbXQ3OTE1X3RoZXJtYWxfaW5pdChzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0yMTcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTI1OS1cXHRpZiAocmV0KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoyNjA6XFx0XFx0bXQ3OTE1X3VucmVnaXN0ZXJfdGhlcm1hbChwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0yNjEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9NzMzPW10NzkxNV9yZWdpc3Rlcl9leHRfcGh5KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtNzY0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzo3NjU6XFx0cmV0ID0gbXQ3OTE1X3RoZXJtYWxfaW5pdChwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy03NjYtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0xMjM3PXN0YXRpYyB2b2lkIG10NzkxNV91bnJlZ2lzdGVyX2V4dF9waHkoc3RydWN0IG10NzkxNV9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMjQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoxMjQ1OlxcdG10NzkxNV91bnJlZ2lzdGVyX3RoZXJtYWwocGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTI0Ni1cXHRtdDc2X3VucmVnaXN0ZXJfcGh5KG1waHkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTEyNjE9aW50IG10NzkxNV9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzkxNV9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMjk5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoxMzAwOlxcdHJldCA9IG10NzkxNV90aGVybWFsX2luaXQoXFx1MDAyNmRldi1cXHUwMDNlcGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTMwMS1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTEzMjktdW5yZWdfdGhlcm1hbDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MTMzMDpcXHRtdDc5MTVfdW5yZWdpc3Rlcl90aGVybWFsKFxcdTAwMjZkZXYtXFx1MDAzZXBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTEzMzEtdW5yZWdfZGV2Olxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTEzNDE9dm9pZCBtdDc5MTVfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzkxNV9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMzQ3LVxcdG10NzkxNV9jb3JlZHVtcF91bnJlZ2lzdGVyKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjEzNDg6XFx0bXQ3OTE1X3VucmVnaXN0ZXJfdGhlcm1hbChcXHUwMDI2ZGV2LVxcdTAwM2VwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMzQ5LVxcdG10NzZfdW5yZWdpc3Rlcl9kZXZpY2UoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDAzOjA4OjU2Ljk5NzQxNzQ3NloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjIzNDM5OTE5OTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQW5hbHl6aW5nIHRoZSBtdDc5MTVfcmVnaXN0ZXJfZGV2aWNlIENhbGwqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZ2V0IGEgY2xlYXIgcGljdHVyZSBvZiBob3cgYG10NzkxNV9yZWdpc3Rlcl9kZXZpY2VgIGlzIGFjdHVhbGx5IGludm9rZWQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjYWxsIGdyYXBoIGFuZCB0aGUgc3Vycm91bmRpbmcgY29udGV4dC4gU3BlY2lmaWNhbGx5LCBJJ20gdGhpbmtpbmcgYWJvdXQgdGhlIGFyZ3VtZW50cyBpdCByZWNlaXZlcyDigJMgdGhpbmdzIGxpa2UgdGhlIGRldmljZSBzdHJ1Y3R1cmUsIGFueSBhc3NvY2lhdGVkIHJlc291cmNlcywgYW5kIHRoZSBzZXF1ZW5jaW5nIG9mIGV2ZW50cyBhcm91bmQgdGhhdCBjYWxsLiBJIHdhbnQgdG8gcGlucG9pbnQgd2hlcmUgaW4gdGhlIGluaXRpYWxpemF0aW9uIHByb2Nlc3MgdGhpcyByZWdpc3RyYXRpb24gaGFwcGVucywgd2hpY2ggZHJpdmVycyBtaWdodCBiZSBpbnZvbHZlZCwgYW5kIHdoYXQgZGVwZW5kZW5jaWVzIGFyZSBpbiBwbGF5LiBJJ20gYWxzbyBjdXJpb3VzIGFib3V0IGFueSBlcnJvciBoYW5kbGluZyB0aGF0IG9jY3VycyBiZWZvcmUgb3IgYWZ0ZXIgdGhpcyBjcnVjaWFsIGZ1bmN0aW9uLiBJcyBpdCBndWFyZGVkIGJ5IGFueSBzcGVjaWZpYyBjb25kaXRpb25zLCBwZXJoYXBzIHJlbGF0ZWQgdG8gcGxhdGZvcm0gZGV0ZWN0aW9uIG9yIHJlc291cmNlIGFsbG9jYXRpb24/IFRyYWNpbmcgdGhlIGNhbGxlciBhbmQgYW55IHBvdGVudGlhbCBjYWxsZXJzLW9mLXRoZS1jYWxsZXIgaXMgd2hhdCBJJ20gZm9jdXNlZCBvbiB0byBidWlsZCBhIGZ1bGwgbWVudGFsIG1hcC4gSSBuZWVkIHRoZSBiaWcgcGljdHVyZSB0byBhdm9pZCBtYWtpbmcgYSBoYXN0eSBkaWFnbm9zaXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY1ODksIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QwMzowODo1OS4zNDE0MTYzMjFaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3NTQyNzQwOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5MTVfcmVnaXN0ZXJfZGV2aWNlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0xMjUwPXN0YXRpYyB2b2lkIG10NzkxNV9zdG9wX2hhcmR3YXJlKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTI2MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MTI2MTppbnQgbXQ3OTE1X3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMjYyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oPTQ1Mz11MzIgbXQ3OTE1X3dlZF9pbml0X2J1Zih2b2lkICpwdHIsIGRtYV9hZGRyX3QgcGh5cywgaW50IHRva2VuX2lkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tdDc5MTUuaC00NTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1Lmg6NDU1OmludCBtdDc5MTVfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oLTQ1Ni12b2lkIG10NzkxNV91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jPTEwMz1zdGF0aWMgaW50IG10NzkxNV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9wY2kuYy0xODEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmM6MTgyOlxcdHJldCA9IG10NzkxNV9yZWdpc3Rlcl9kZXZpY2UoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9wY2kuYy0xODMtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3NvYy5jPTEyMjA9c3RhdGljIGludCBtdDc5OHhfd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmMtMTI2My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9zb2MuYzoxMjY0OlxcdHJldCA9IG10NzkxNV9yZWdpc3Rlcl9kZXZpY2UoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9zb2MuYy0xMjY1LVxcdGlmIChyZXQpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDAzOjA4OjU5LjUxNjg1NzIxOFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjozNjU5ODU5NTY0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZyBEZWNpc2lvbiBmb3IgTVQ3OTE1IERyaXZlcioqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gVGhlIGluc3RydWN0aW9ucyBzYXkgSSBzaG91bGQgcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmICphbGwqIG1vZGlmaWVkIGNvZGUgZmFsbHMgdW5kZXIgc3BlY2lmaWMgbmVnYXRpdmUgY3JpdGVyaWEuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIHRoZSBjaGFuZ2VzIHJlbGF0ZWQgdG8gYG10NzkxNWAgZmFsbCBpbnRvIG9uZSBvZiB0aG9zZSBjYXRlZ29yaWVzLiBGaXJzdCwgSSdtIGdvaW5nIHRvIGNvbnN1bHQgU2VjdGlvbiAyLCB3aGljaCBvdXRsaW5lcyB0aGUgbmVnYXRpdmUgY3JpdGVyaWEgZm9yIHJldHVybmluZyBgV29ydGhGdXp6aW5nPWZhbHNlYC5cblxuVGhlIG5lZ2F0aXZlIGNyaXRlcmlhIHRoYXQgaXMgcmVsZXZhbnQgaW4gdGhpcyBjYXNlIGlzOiBcIlN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZTogKiBWZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVVcIi5cblxuTm93LCBJIG5lZWQgdG8ga25vdyBpZiBgbXQ3OTE1YCBmaXRzIHRoYXQgZGVzY3JpcHRpb24uIEkga25vdyBgbXQ3OTE1YCByZWZlcnMgdG8gdGhlIE1lZGlhVGVrIE1UNzkxNSBXaS1GaSA2ICg4MDIuMTFheCkgY2hpcHNldCwgd2hpY2ggaXMgYSBQQ0llIG9yIFNvQyB3aXJlbGVzcyBjaGlwLiBUaGUga2V5IHF1ZXN0aW9uIGlzOiBpcyBpdCAqZW11bGF0ZWQqIGluIFFFTVU/IEFuZCwgZnJvbSBteSBrbm93bGVkZ2UsIEknbSBwcmV0dHkgc3VyZSBpdCdzIG5vdC4gRnVydGhlciwgSSBjYW4gZG91YmxlIGNoZWNrIHRoYXQgaXQgZG9lc24ndCBoYXZlIGFueSBVU0IgZ2FkZ2V0IGludGVyZmFjZSBvciBtYWM4MDIxMV9od3NpbSBlbXVsYXRpb24uIE5vcGUsIGl0J3MgYSBkZWRpY2F0ZWQgaGFyZHdhcmUgZHJpdmVyLlxuXG5UaGVyZWZvcmUsIHNpbmNlIEkga25vdyB0aGF0IHdpdGhvdXQgdGhlIHBoeXNpY2FsIE1lZGlhVGVrIE1UNzkxNSBQQ0llIGNhcmQgb3IgTWVkaWFUZWsgU29DIGhhcmR3YXJlLCBmdW5jdGlvbnMgbGlrZSBgbXQ3OTE1X3BjaV9wcm9iZWAsIGBtdDc5OHhfd21hY19wcm9iZWAsIGFuZCBgbXQ3OTE1X3RoZXJtYWxfaW5pdGAgY2FuJ3QgZXZlbiBiZSByZWFjaGVkIGR1cmluZyBkZXZpY2UgaW5pdGlhbGl6YXRpb24sIEknbSBjb25maWRlbnQgdGhhdCB0aGVzZSBjb2RlIHBhdGhzIGFyZSAqc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlKiBpbiBhIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnQuXG5cblRvIGJlIGFic29sdXRlbHkgc3VyZSwgSSdtIGdvaW5nIHRvIHF1aWNrbHkgc2NhbiBLY29uZmlnIGZvciBhbnkgZXhjZXB0aW9ucywgYnV0IEknbSBwcmV0dHkgc3VyZSB0aGF0IGBtdDc5MTVgIHN0cmljdGx5IGFwcGxpZXMgdG8gTWVkaWFUZWsgUENJZS9Tb0MgaGFyZHdhcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjc1NTksIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMDM6MDk6MDMuMTc2NzE4NzMzWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTczNTA3MzgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiTVQ3OTE1XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNjA4IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlPTQ4PW9iai0kKENPTkZJR19NVDc2MTVfQ09NTU9OKSArPSBtdDc2MTUvXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZTo0OTpvYmotJChDT05GSUdfTVQ3OTE1RSkgKz0gbXQ3OTE1L1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtNTAtb2JqLSQoQ09ORklHX01UNzkyMV9DT01NT04pICs9IG10NzkyMS9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9LY29uZmlnOjI6Y29uZmlnIE1UNzkxNUVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9LY29uZmlnOjM6XFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzkxNUUgKFBDSWUpIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZy00LVxcdHNlbGVjdCBNVDc2X0NPTk5BQ19MSUJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L0tjb25maWctOS1cXHRoZWxwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZzoxMDpcXHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5MTUtYmFzZWQgUENJZSB3aXJlbGVzcyBkZXZpY2VzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L0tjb25maWctMTEtXFx0ICB3aGljaCBzdXBwb3J0IGNvbmN1cnJlbnQgZHVhbC1iYW5kIG9wZXJhdGlvbiBhdCBib3RoIDVHSHpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L0tjb25maWc9MTc9Y29uZmlnIE1UNzk4WF9XTUFDXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZy0xOC1cXHRib29sIFxcXCJNVDc5OHggKFNvQykgV01BQyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L0tjb25maWc6MTk6XFx0ZGVwZW5kcyBvbiBNVDc5MTVFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZy0yMC1cXHRkZXBlbmRzIG9uIEFSQ0hfTUVESUFURUsgfHwgQ09NUElMRV9URVNUXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9LY29uZmlnLTIzLVxcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIHRoZSBidWlsdC1pbiBXTUFDIG9uIE1UNzk4MSBhbmQgTVQ3OTg2IFNvQyBkZXZpY2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9LY29uZmlnOjI0OlxcdCAgd2hpY2ggaGFzIHRoZSBzYW1lIGZlYXR1cmUgc2V0IGFzIGEgTVQ3OTE1LCBidXQgZW5hYmxlcyA2RVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L0tjb25maWctMjUtXFx0ICBzdXBwb3J0Llxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvTWFrZWZpbGUtMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9NYWtlZmlsZTozOm9iai0kKENPTkZJR19NVDc5MTVFKSArPSBtdDc5MTVlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9NYWtlZmlsZS00LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZGVidWdmcy5jPTk4Mz1tdDc5MTVfcmF0ZV90eHBvd2VyX2dldChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKnVzZXJfYnVmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZGVidWdmcy5jLTk4Ny1cXHRzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2ID0gcGh5LVxcdTAwM2VkZXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZGVidWdmcy5jOjk4ODpcXHRzOCB0eHB3cltNVDc5MTVfU0tVX1JBVEVfTlVNXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kZWJ1Z2ZzLmMtOTg5LVxcdHN0YXRpYyBjb25zdCBzaXplX3Qgc3ogPSAyMDQ4O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZGVidWdmcy5jPTExNjE9bXQ3OTE1X3BhdGhfdHhwb3dlcl9zaG93KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RlYnVnZnMuYy0xMTYzLVxcdHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkgPSBmaWxlLVxcdTAwM2Vwcml2YXRlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RlYnVnZnMuYzoxMTY0OlxcdHM4IHR4cG93ZXJbTVQ3OTE1X1NLVV9QQVRIX05VTV0sICpidWYgPSB0eHBvd2VyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RlYnVnZnMuYy0xMTY1LVxcdGludCByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYz00MT1zdGF0aWMgdm9pZCBtdDc5MTVfZG1hX2NvbmZpZyhzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNTUtXFx0XFx0UlhRX0NPTkZJRyhNVF9SWFFfTUFJTiwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9CQU5EMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo1NjpcXHRcXHRcXHQgICBNVDc5MTVfUlhRX0JBTkQwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01Ny1cXHRcXHRSWFFfQ09ORklHKE1UX1JYUV9NQ1UsIFdGRE1BMSwgTVRfSU5UX1JYX0RPTkVfV00sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTg6XFx0XFx0XFx0ICAgTVQ3OTE1X1JYUV9NQ1VfV00pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTU5LVxcdFxcdFJYUV9DT05GSUcoTVRfUlhRX01DVV9XQSwgV0ZETUExLCBNVF9JTlRfUlhfRE9ORV9XQSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo2MDpcXHRcXHRcXHQgICBNVDc5MTVfUlhRX01DVV9XQSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNjEtXFx0XFx0UlhRX0NPTkZJRyhNVF9SWFFfQkFORDEsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfQkFORDEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NjI6XFx0XFx0XFx0ICAgTVQ3OTE1X1JYUV9CQU5EMSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNjMtXFx0XFx0UlhRX0NPTkZJRyhNVF9SWFFfQkFORDFfV0EsIFdGRE1BMSwgTVRfSU5UX1JYX0RPTkVfV0FfRVhULFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjY0OlxcdFxcdFxcdCAgIE1UNzkxNV9SWFFfTUNVX1dBX0VYVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNjUtXFx0XFx0UlhRX0NPTkZJRyhNVF9SWFFfTUFJTl9XQSwgV0ZETUExLCBNVF9JTlRfUlhfRE9ORV9XQV9NQUlOLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjY2OlxcdFxcdFxcdCAgIE1UNzkxNV9SWFFfTUNVX1dBKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo2NzpcXHRcXHRUWFFfQ09ORklHKDAsIFdGRE1BMSwgTVRfSU5UX1RYX0RPTkVfQkFORDAsIE1UNzkxNV9UWFFfQkFORDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjY4OlxcdFxcdFRYUV9DT05GSUcoMSwgV0ZETUExLCBNVF9JTlRfVFhfRE9ORV9CQU5EMSwgTVQ3OTE1X1RYUV9CQU5EMSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNjktXFx0XFx0TUNVUV9DT05GSUcoTVRfTUNVUV9XTSwgV0ZETUExLCBNVF9JTlRfVFhfRE9ORV9NQ1VfV00sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NzA6XFx0XFx0XFx0ICAgIE1UNzkxNV9UWFFfTUNVX1dNKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy03MS1cXHRcXHRNQ1VRX0NPTkZJRyhNVF9NQ1VRX1dBLCBXRkRNQTEsIE1UX0lOVF9UWF9ET05FX01DVV9XQSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo3MjpcXHRcXHRcXHQgICAgTVQ3OTE1X1RYUV9NQ1VfV0EpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTczLVxcdFxcdE1DVVFfQ09ORklHKE1UX01DVVFfRldETCwgV0ZETUExLCBNVF9JTlRfVFhfRE9ORV9GV0RMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjc0OlxcdFxcdFxcdCAgICBNVDc5MTVfVFhRX0ZXREwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTc1LVxcdH0gZWxzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy04MC1cXHRcXHRNQ1VRX0NPTkZJRyhNVF9NQ1VRX1dNLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX01DVV9XTSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo4MTpcXHRcXHRcXHQgICAgTVQ3OTE1X1RYUV9NQ1VfV00pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTgyLVxcdFxcdE1DVVFfQ09ORklHKE1UX01DVVFfV0EsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfTUNVX1dBX01UNzkxNixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo4MzpcXHRcXHRcXHQgICAgTVQ3OTE1X1RYUV9NQ1VfV0EpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTg0LVxcdFxcdE1DVVFfQ09ORklHKE1UX01DVVFfRldETCwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9GV0RMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjg1OlxcdFxcdFxcdCAgICBNVDc5MTVfVFhRX0ZXREwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTg2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtMTAyLVxcdFxcdFxcdFRYUV9DT05GSUcoMCwgV0ZETUEwLCBNVF9JTlRfV0VEX1RYX0RPTkVfQkFORDAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6MTAzOlxcdFxcdFxcdFxcdCAgIE1UNzkxNV9UWFFfQkFORDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTEwNC1cXHRcXHRcXHRUWFFfQ09ORklHKDEsIFdGRE1BMCwgTVRfSU5UX1dFRF9UWF9ET05FX0JBTkQxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjEwNTpcXHRcXHRcXHRcXHQgICBNVDc5MTVfVFhRX0JBTkQxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy0xMDYtXFx0XFx0fSBlbHNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTExNS1cXHRcXHRcXHRUWFFfQ09ORklHKDAsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfQkFORDAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6MTE2OlxcdFxcdFxcdFxcdCAgIE1UNzkxNV9UWFFfQkFORDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTExNy1cXHRcXHRcXHRUWFFfQ09ORklHKDEsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfQkFORDEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6MTE4OlxcdFxcdFxcdFxcdCAgIE1UNzkxNV9UWFFfQkFORDEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTExOS1cXHRcXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYz00MDg9aW50IG10NzkxNV9kbWFfaW5pdChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5MilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTQ0NS1cXHRcXHRcXHRcXHQgICAgTVRfVFhRX0lEKGRldi1cXHUwMDNlcGh5Lm10NzYtXFx1MDAzZWJhbmRfaWR4KSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo0NDY6XFx0XFx0XFx0XFx0ICAgIE1UNzkxNV9UWF9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNDQ3LVxcdFxcdFxcdFxcdCAgICBNVF9UWFFfUklOR19CQVNFKDApKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTQ1My1cXHRcXHRcXHRcXHRcXHQgICAgTVRfVFhRX0lEKHBoeTItXFx1MDAzZW10NzYtXFx1MDAzZWJhbmRfaWR4KSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo0NTQ6XFx0XFx0XFx0XFx0XFx0ICAgIE1UNzkxNV9UWF9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNDU1LVxcdFxcdFxcdFxcdFxcdCAgICBNVF9UWFFfUklOR19CQVNFKDEpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTQ2Mi1cXHRcXHRcXHRcXHQgIE1UX01DVVFfSUQoTVRfTUNVUV9XTSksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NDYzOlxcdFxcdFxcdFxcdCAgTVQ3OTE1X1RYX01DVV9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNDY0LVxcdFxcdFxcdFxcdCAgTVRfTUNVUV9SSU5HX0JBU0UoTVRfTUNVUV9XTSkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNDcwLVxcdFxcdFxcdFxcdCAgTVRfTUNVUV9JRChNVF9NQ1VRX1dBKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo0NzE6XFx0XFx0XFx0XFx0ICBNVDc5MTVfVFhfTUNVX1JJTkdfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy00NzItXFx0XFx0XFx0XFx0ICBNVF9NQ1VRX1JJTkdfQkFTRShNVF9NQ1VRX1dBKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy00NzgtXFx0XFx0XFx0XFx0ICBNVF9NQ1VRX0lEKE1UX01DVVFfRldETCksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NDc5OlxcdFxcdFxcdFxcdCAgTVQ3OTE1X1RYX0ZXRExfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTQ4MC1cXHRcXHRcXHRcXHQgIE1UX01DVVFfUklOR19CQVNFKE1UX01DVVFfRldETCkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNDg2LVxcdFxcdFxcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX01DVSksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NDg3OlxcdFxcdFxcdCAgICAgICBNVDc5MTVfUlhfTUNVX1JJTkdfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy00ODgtXFx0XFx0XFx0ICAgICAgIE1UX1JYX0JVRl9TSVpFLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNDk1LVxcdFxcdHdhX3J4X2Jhc2UgPSBNVF9XRURfUlhfUklOR19CQVNFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjQ5NjpcXHRcXHR3YV9yeF9pZHggPSBNVDc5MTVfUlhRX01DVV9XQTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy00OTctXFx0XFx0bWRldi1cXHUwMDNlcV9yeFtNVF9SWFFfTUNVX1dBXS5mbGFncyA9IE1UX1dFRF9RX1RYRlJFRTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTUwMy1cXHRyZXQgPSBtdDc2X3F1ZXVlX2FsbG9jKGRldiwgXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5xX3J4W01UX1JYUV9NQ1VfV0FdLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjUwNDpcXHRcXHRcXHQgICAgICAgd2FfcnhfaWR4LCBNVDc5MTVfUlhfTUNVX1JJTkdfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01MDUtXFx0XFx0XFx0ICAgICAgIE1UX1JYX0JVRl9TSVpFLCB3YV9yeF9iYXNlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTUxMy1cXHRcXHRcXHRtZGV2LVxcdTAwM2VxX3J4W01UX1JYUV9NQUlOXS5mbGFncyA9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTE0OlxcdFxcdFxcdFxcdE1UX1dFRF9RX1JYKE1UNzkxNV9SWFFfQkFORDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjUxNTpcXHRcXHRcXHRkZXYtXFx1MDAzZW10NzYucnhfdG9rZW5fc2l6ZSArPSBNVDc5MTVfUlhfUklOR19TSVpFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTUxNi1cXHRcXHRcXHRtZGV2LVxcdTAwM2VxX3J4W01UX1JYUV9NQUlOXS53ZWQgPSBcXHUwMDI2bWRldi1cXHUwMDNlbW1pby53ZWQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01MjAtXFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfTUFJTiksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTIxOlxcdFxcdFxcdFxcdCAgICAgICBNVDc5MTVfUlhfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTUyMi1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhfQlVGX1NJWkUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01MzctXFx0XFx0XFx0XFx0d2FfcnhfYmFzZSA9ICBNVF9XRURfUlhfUklOR19CQVNFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjUzODpcXHRcXHRcXHRcXHR3YV9yeF9pZHggPSBNVDc5MTVfUlhRX01DVV9XQTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01MzktXFx0XFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNTQyLVxcdFxcdHJldCA9IG10NzZfcXVldWVfYWxsb2MoZGV2LCBcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LnFfcnhbTVRfUlhRX01BSU5fV0FdLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjU0MzpcXHRcXHRcXHRcXHQgICAgICAgd2FfcnhfaWR4LCBNVDc5MTVfUlhfTUNVX1JJTkdfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01NDQtXFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYX0JVRl9TSVpFLCB3YV9yeF9iYXNlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTU1Mi1cXHRcXHRcXHRtZGV2LVxcdTAwM2VxX3J4W01UX1JYUV9CQU5EMV0uZmxhZ3MgPVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjU1MzpcXHRcXHRcXHRcXHRNVF9XRURfUV9SWChNVDc5MTVfUlhRX0JBTkQxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo1NTQ6XFx0XFx0XFx0ZGV2LVxcdTAwM2VtdDc2LnJ4X3Rva2VuX3NpemUgKz0gTVQ3OTE1X1JYX1JJTkdfU0laRTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01NTUtXFx0XFx0XFx0bWRldi1cXHUwMDNlcV9yeFtNVF9SWFFfQkFORDFdLndlZCA9IFxcdTAwMjZtZGV2LVxcdTAwM2VtbWlvLndlZDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTU2MC1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9CQU5EMSksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NTYxOlxcdFxcdFxcdFxcdCAgICAgICBNVDc5MTVfUlhfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTU2Mi1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhfQlVGX1NJWkUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy01NjktXFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfQkFORDFfV0EpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjU3MDpcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTE1X1JYX01DVV9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNTcxLVxcdFxcdFxcdFxcdCAgICAgICBNVF9SWF9CVUZfU0laRSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2VlcHJvbS5jPTY3PXN0YXRpYyBjaGFyICptdDc5MTVfZWVwcm9tX25hbWUoc3RydWN0IG10NzkxNV9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2VlcHJvbS5jLTcxLVxcdFxcdHJldHVybiBkZXYtXFx1MDAzZWRiZGNfc3VwcG9ydCA/XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmM6NzI6XFx0XFx0ICAgICAgIE1UNzkxNV9FRVBST01fREVGQVVMVF9EQkRDIDogTVQ3OTE1X0VFUFJPTV9ERUZBVUxUO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2VlcHJvbS5jLTczLVxcdGNhc2UgMHg3OTgxOlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmM9MTIzPXN0YXRpYyBpbnQgbXQ3OTE1X2VlcHJvbV9sb2FkKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9lZXByb20uYy0xMzYtXFx0XFx0dTMyIGJsb2NrX251bSwgaTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9lZXByb20uYzoxMzc6XFx0XFx0dTMyIGVlcHJvbV9ibGtfc2l6ZSA9IE1UNzkxNV9FRVBST01fQkxPQ0tfU0laRTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9lZXByb20uYy0xMzgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9lZXByb20uYz0zNjM9bXQ3OTE1X2VlcHJvbV9oYXNfYmFja2dyb3VuZF9yYWRhcihzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2VlcHJvbS5jLTM2NC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmM6MzY1OlxcdHU4IHZhbCwgYnVmW01UNzkxNV9FRVBST01fQkxPQ0tfU0laRV07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmMtMzY2LVxcdHU4IGJhbmRfc2VsLCB0eF9wYXRoLCByeF9wYXRoO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmMtMzc2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2VlcHJvbS5jOjM3NzpcXHRcXHR2YWwgPSBidWZbb2ZmcyAlIE1UNzkxNV9FRVBST01fQkxPQ0tfU0laRV07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmMtMzc4LVxcdFxcdGJhbmRfc2VsID0gdThfZ2V0X2JpdHModmFsLCBNVF9FRV9XSUZJX0NPTkYwX0JBTkRfU0VMKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2VlcHJvbS5oLTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmg6NDojaWZuZGVmIF9fTVQ3OTE1X0VFUFJPTV9IXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmg6NTojZGVmaW5lIF9fTVQ3OTE1X0VFUFJPTV9IXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmgtNi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0xNT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBpZl9saW1pdHNbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0yNS1cXHR9LCB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjI2OlxcdFxcdC5tYXggPSBNVDc5MTVfTUFYX0lOVEVSRkFDRVMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTI3LVxcdFxcdC50eXBlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9TVEFUSU9OKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTMxPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2NvbWJpbmF0aW9uIGlmX2NvbWJbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0zNC1cXHRcXHQubl9saW1pdHMgPSBBUlJBWV9TSVpFKGlmX2xpbWl0cyksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjM1OlxcdFxcdC5tYXhfaW50ZXJmYWNlcyA9IE1UNzkxNV9NQVhfSU5URVJGQUNFUyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMzYtXFx0XFx0Lm51bV9kaWZmZXJlbnRfY2hhbm5lbHMgPSAxLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTc0PXN0YXRpYyBzc2l6ZV90IG10NzkxNV90aGVybWFsX3RlbXBfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTg4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzo4OTpcXHRpZiAoKGkgLSAxID09IE1UNzkxNV9DUklUX1RFTVBfSURYIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjkwOlxcdCAgICAgdmFsIFxcdTAwM2UgcGh5LVxcdTAwM2V0aHJvdHRsZV90ZW1wW01UNzkxNV9NQVhfVEVNUF9JRFhdKSB8fFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzo5MTpcXHQgICAgKGkgLSAxID09IE1UNzkxNV9NQVhfVEVNUF9JRFggXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6OTI6XFx0ICAgICB2YWwgXFx1MDAzYyBwaHktXFx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTE1X0NSSVRfVEVNUF9JRFhdKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy05My1cXHRcXHRkZXZfZXJyKHBoeS1cXHUwMDNlZGV2LVxcdTAwM2VtdDc2LmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0xMjM9bXQ3OTE1X3RoZXJtYWxfZ2V0X21heF90aHJvdHRsZV9zdGF0ZShzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZSAqY2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMjUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoxMjY6XFx0KnN0YXRlID0gTVQ3OTE1X0NERVZfVEhST1RUTEVfTUFYO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMjctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9MTQzPW10NzkxNV90aGVybWFsX3NldF9jdXJfdGhyb3R0bGVfc3RhdGUoc3RydWN0IHRoZXJtYWxfY29vbGluZ19kZXZpY2UgKmNkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTQ2LVxcdHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkgPSBjZGV2LVxcdTAwM2VkZXZkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoxNDc6XFx0dTggdGhyb3R0bGluZyA9IE1UNzkxNV9USEVSTUFMX1RIUk9UVExFX01BWCAtIHN0YXRlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xNDgtXFx0aW50IHJldDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTQ5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoxNTA6XFx0aWYgKHN0YXRlIFxcdTAwM2UgTVQ3OTE1X0NERVZfVEhST1RUTEVfTUFYKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTE1MS1cXHRcXHRkZXZfZXJyKHBoeS1cXHUwMDNlZGV2LVxcdTAwM2VtdDc2LmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0yMTY9c3RhdGljIGludCBtdDc5MTVfdGhlcm1hbF9pbml0KHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMjM4LVxcdC8qIGluaXRpYWxpemUgY3JpdGljYWwvbWF4aW11bSBoaWdoIHRlbXBlcmF0dXJlICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjIzOTpcXHRwaHktXFx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTE1X0NSSVRfVEVNUF9JRFhdID0gTVQ3OTE1X0NSSVRfVEVNUDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MjQwOlxcdHBoeS1cXHUwMDNldGhyb3R0bGVfdGVtcFtNVDc5MTVfTUFYX1RFTVBfSURYXSA9IE1UNzkxNV9NQVhfVEVNUDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMjQxLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTMyND1zdGF0aWMgdm9pZCBfX210NzkxNV9pbml0X3R4cG93ZXIoc3RydWN0IG10NzkxNV9waHkgKnBoeSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0zNTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjM1MjpcXHRcXHQvKiBNVDc5MTVOIGNhbiBub3QgZW5hYmxlIEJhY2tvZmYgdGFibGUgd2l0aG91dCBzZXR0aW5nIHZhbHVlIGluIGR0cyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0zNTMtXFx0XFx0aWYgKCFsaW1pdHMucGF0aC5vZmRtWzBdKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTUyNT1tdDc5MTVfbWFjX2luaXRfYmFuZChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCB1OCBiYW5kKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTU3MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6NTcxOlxcdC8qIGV4Y2x1ZGUgZXN0aW1hdGVkIGJhY2tvZmYgdGltZSBmb3IgVHggZHVyYXRpb24gb24gTVQ3OTE1ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTU3Mi1cXHRpZiAoaXNfbXQ3OTE1KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTg2OT1tdDc5MTVfaW5pdF9oYXJkd2FyZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5MilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy04OTgtXFx0LyogQmVhY29uIGFuZCBtZ210IGZyYW1lcyBzaG91bGQgb2NjdXB5IHdjaWQgMCAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzo4OTk6XFx0aWR4ID0gbXQ3Nl93Y2lkX2FsbG9jKGRldi1cXHUwMDNlbXQ3Ni53Y2lkX21hc2ssIE1UNzkxNV9XVEJMX1NUQSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTkwMC1cXHRpZiAoaWR4KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM9MTEyNT12b2lkIG10NzkxNV9tYWNfc2V0X3RpbWluZyhzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMTE3NC1cXHRpZiAocGh5LVxcdTAwM2VzbG90dGltZSBcXHUwMDNjIDIwIHx8IGFfYmFuZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYzoxMTc1OlxcdFxcdHZhbCA9IE1UNzkxNV9DRkVORF9SQVRFX0RFRkFVTFQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMTE3Ni1cXHRlbHNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM6MTE3NzpcXHRcXHR2YWwgPSBNVDc5MTVfQ0ZFTkRfUkFURV8xMUI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMTE3OC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jPTEyNDM9bXQ3OTE1X3dhaXRfcmVzZXRfc3RhdGUoc3RydWN0IG10NzkxNV9kZXYgKmRldiwgdTMyIHN0YXRlKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMTI0OC1cXHRcXHRcXHRcXHQgKFJFQURfT05DRShkZXYtXFx1MDAzZXJlY292ZXJ5LnN0YXRlKSBcXHUwMDI2IHN0YXRlKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYzoxMjQ5OlxcdFxcdFxcdFxcdCBNVDc5MTVfUkVTRVRfVElNRU9VVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMTI1MC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jPTE0MjU9bXQ3OTE1X21hY19mdWxsX3Jlc2V0KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy0xNDY1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jOjE0NjY6XFx0aSA9IG10NzZfd2NpZF9hbGxvYyhkZXYtXFx1MDAzZW10NzYud2NpZF9tYXNrLCBNVDc5MTVfV1RCTF9TVEEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTE0NjctXFx0ZGV2LVxcdTAwM2VtdDc2Lmdsb2JhbF93Y2lkLmlkeCA9IGk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYz0xNDgyPXZvaWQgbXQ3OTE1X21hY19yZXNldF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTE1OTYtXFx0aWVlZTgwMjExX3F1ZXVlX2RlbGF5ZWRfd29yayhtdDc2X2h3KGRldiksIFxcdTAwMjZkZXYtXFx1MDAzZW1waHkubWFjX3dvcmssXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM6MTU5NzpcXHRcXHRcXHRcXHQgICAgIE1UNzkxNV9XQVRDSERPR19USU1FKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy0xNTk4LVxcdGlmIChwaHkyKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMTYwMC1cXHRcXHRcXHRcXHRcXHQgICAgIFxcdTAwMjZwaHkyLVxcdTAwM2VtdDc2LVxcdTAwM2VtYWNfd29yayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYzoxNjAxOlxcdFxcdFxcdFxcdFxcdCAgICAgTVQ3OTE1X1dBVENIRE9HX1RJTUUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTE2MDItfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM9MjAwNj12b2lkIG10NzkxNV9tYWNfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy0yMDMyLVxcdGllZWU4MDIxMV9xdWV1ZV9kZWxheWVkX3dvcmsobXBoeS1cXHUwMDNlaHcsIFxcdTAwMjZtcGh5LVxcdTAwM2VtYWNfd29yayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYzoyMDMzOlxcdFxcdFxcdFxcdCAgICAgTVQ3OTE1X1dBVENIRE9HX1RJTUUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTIwMzQtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmM9MjI2OD1tdDc5MTVfbWFjX3R3dF9wYXJhbV9lcXVhbChzdHJ1Y3QgbXQ3OTE1X3N0YSAqbXN0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jLTIyNzUtXFx0ZXhwID0gRklFTERfR0VUKElFRUU4MDIxMV9UV1RfUkVRVFlQRV9XQUtFX0lOVF9FWFAsIHR5cGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jOjIyNzY6XFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIE1UNzkxNV9NQVhfU1RBX1RXVF9BR1JUOyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy0yMjc3LVxcdFxcdHN0cnVjdCBtdDc5MTVfdHd0X2Zsb3cgKmY7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYz0yMjk1PXZvaWQgbXQ3OTE1X21hY19hZGRfdHd0X3NldHVwKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMjMxMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYzoyMzE0OlxcdGlmIChkZXYtXFx1MDAzZXR3dC5uX2FncnQgPT0gTVQ3OTE1X01BWF9UV1RfQUdSVClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy0yMzE1LVxcdFxcdGdvdG8gdW5sb2NrO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMtMjMxOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYzoyMzIwOlxcdGlmICh0d3RfYWdydC1cXHUwMDNlbWluX3R3dF9kdXIgXFx1MDAzYyBNVDc5MTVfTUlOX1RXVF9EVVIpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy0yMzIxLVxcdFxcdHNldHVwX2NtZCA9IFRXVF9TRVRVUF9DTURfRElDVEFURTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYzoyMzIyOlxcdFxcdHR3dF9hZ3J0LVxcdTAwM2VtaW5fdHd0X2R1ciA9IE1UNzkxNV9NSU5fVFdUX0RVUjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYy0yMzIzLVxcdFxcdGdvdG8gdW5sb2NrO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmgtMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuaDo0OiNpZm5kZWYgX19NVDc5MTVfTUFDX0hcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuaDo1OiNkZWZpbmUgX19NVDc5MTVfTUFDX0hcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuaC02LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jPTIzPWludCBtdDc5MTVfcnVuKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTYwLVxcdHJldCA9IG10NzkxNV9tY3Vfc2V0X3RoZXJtYWxfdGhyb3R0bGluZyhwaHksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jOjYxOlxcdFxcdFxcdFxcdFxcdFxcdE1UNzkxNV9USEVSTUFMX1RIUk9UVExFX01BWCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTYyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTcwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYzo3MTpcXHRyZXQgPSBtdDc2X2Nvbm5hY19tY3Vfc2V0X3J0c190aHJlc2goXFx1MDAyNmRldi1cXHUwMDNlbXQ3NiwgTVQ3OTE1X1JUU19MRU5fVEhSRVMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTcyLVxcdFxcdFxcdFxcdFxcdCAgICAgcGh5LVxcdTAwM2VtdDc2LVxcdTAwM2ViYW5kX2lkeCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtODctXFx0XFx0aWVlZTgwMjExX3F1ZXVlX2RlbGF5ZWRfd29yayhodywgXFx1MDAyNnBoeS1cXHUwMDNlbXQ3Ni1cXHUwMDNlbWFjX3dvcmssXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jOjg4OlxcdFxcdFxcdFxcdFxcdCAgICAgTVQ3OTE1X1dBVENIRE9HX1RJTUUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy04OS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYz0yMDQ9c3RhdGljIGludCBtdDc5MTVfYWRkX2ludGVyZmFjZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0yMjItXFx0bXZpZi1cXHUwMDNlbXQ3Ni5pZHggPSBfX2ZmczY0KH5kZXYtXFx1MDAzZW10NzYudmlmX21hc2spO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYzoyMjM6XFx0aWYgKG12aWYtXFx1MDAzZW10NzYuaWR4IFxcdTAwM2U9IChNVDc5MTVfTUFYX0lOVEVSRkFDRVMgXFx1MDAzY1xcdTAwM2MgZGV2LVxcdTAwM2VkYmRjX3N1cHBvcnQpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTIyNC1cXHRcXHRyZXQgPSAtRU5PU1BDO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jPTMzMz1pbnQgbXQ3OTE1X3NldF9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqbXBoeSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0zNTktXFx0XFx0XFx0XFx0XFx0ICAgICBcXHUwMDI2cGh5LVxcdTAwM2VtdDc2LVxcdTAwM2VtYWNfd29yayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6MzYwOlxcdFxcdFxcdFxcdFxcdCAgICAgTVQ3OTE1X1dBVENIRE9HX1RJTUUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0zNjEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM9NzUyPWludCBtdDc5MTVfbWFjX3N0YV9hZGQoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTc2MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6NzYxOlxcdGlkeCA9IG10NzZfd2NpZF9hbGxvYyhkZXYtXFx1MDAzZW10NzYud2NpZF9tYXNrLCBNVDc5MTVfV1RCTF9TVEEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy03NjItXFx0aWYgKGlkeCBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM9MTM1OD1zdGF0aWMgY29uc3QgY2hhciBtdDc5MTVfZ3N0cmluZ3Nfc3RhdHNbXVtFVEhfR1NUUklOR19MRU5dID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTE0OTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jOjE0OTM6I2RlZmluZSBNVDc5MTVfU1NUQVRTX0xFTiBBUlJBWV9TSVpFKG10NzkxNV9nc3RyaW5nc19zdGF0cylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtMTQ5NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYz0xNTEwPWludCBtdDc5MTVfZ2V0X2V0X3NzZXRfY291bnQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtMTUxNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6MTUxNjpcXHRyZXR1cm4gTVQ3OTE1X1NTVEFUU19MRU4gKyBwYWdlX3Bvb2xfZXRodG9vbF9zdGF0c19nZXRfY291bnQoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtMTUxNy19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM9MTUzMT12b2lkIG10NzkxNV9nZXRfZXRfc3RhdHMoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtMTY1OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6MTY1OTpcXHRzdGF0c19zaXplID0gTVQ3OTE1X1NTVEFUU19MRU4gKyBwYWdlX3Bvb2xfZXRodG9vbF9zdGF0c19nZXRfY291bnQoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtMTY2MC1cXHRpZiAoZWkgIT0gc3RhdHNfc2l6ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYz0xNzY2PW10NzkxNV9yZWNvbmZpZ19jb21wbGV0ZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0xNzcyLVxcdGllZWU4MDIxMV9xdWV1ZV9kZWxheWVkX3dvcmsoaHcsIFxcdTAwMjZwaHktXFx1MDAzZW10NzYtXFx1MDAzZW1hY193b3JrLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYzoxNzczOlxcdFxcdFxcdFxcdCAgICAgTVQ3OTE1X1dBVENIRE9HX1RJTUUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0xNzc0LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTEzLVxcdGNhc2UgMHg3OTE1OlxcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzoxNDpcXHRcXHRfZncgPSBNVDc5MTVfIyNuYW1lO1xcdFxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0xNS1cXHRcXHRicmVhaztcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYz03MDk9aW50IG10NzkxNV9tY3VfYWRkX2Jzc19pbmZvKHN0cnVjdCBtdDc5MTVfcGh5ICpwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy03MjEtXFx0c2tiID0gX19tdDc2X2Nvbm5hY19tY3VfYWxsb2Nfc3RhX3JlcShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LCBcXHUwMDI2bXZpZi1cXHUwMDNlbXQ3NiwgTlVMTCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzo3MjI6XFx0XFx0XFx0XFx0XFx0ICAgICAgTVQ3OTE1X0JTU19VUERBVEVfTUFYX1NJWkUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTcyMy1cXHRpZiAoSVNfRVJSKHNrYikpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYz0xMTI5PW10NzkxNV9tY3Vfc3RhX3NvdW5kaW5nX3JhdGUoc3RydWN0IHN0YV9yZWNfYmYgKmJmKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMTEzMi1cXHRiZi1cXHUwMDNlbmRwX3JhdGUgPSAwO1xcdFxcdFxcdFxcdC8qIG1jczAgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzoxMTMzOlxcdGJmLVxcdTAwM2VuZHBhX3JhdGUgPSBNVDc5MTVfQ0ZFTkRfUkFURV9ERUZBVUxUO1xcdC8qIG9mZG0gMjRtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM6MTEzNDpcXHRiZi1cXHUwMDNlcmVwdF9wb2xsX3JhdGUgPSBNVDc5MTVfQ0ZFTkRfUkFURV9ERUZBVUxUO1xcdC8qIG9mZG0gMjRtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMTEzNS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYz0xOTc0PW10NzkxNV9tY3VfYWRkX2luYmFuZF9kaXNjb3Yoc3RydWN0IG10NzkxNV9kZXYgKmRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTE5OTctXFx0cnNrYiA9IF9fbXQ3Nl9jb25uYWNfbWN1X2FsbG9jX3N0YV9yZXEoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NiwgXFx1MDAyNm12aWYtXFx1MDAzZW10NzYsIE5VTEwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM6MTk5ODpcXHRcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTE1X01BWF9CU1NfT0ZGTE9BRF9TSVpFKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0xOTk5LVxcdGlmIChJU19FUlIocnNrYikpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yMDI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjIwMjg6XFx0aWYgKHNrYi1cXHUwMDNlbGVuIFxcdTAwM2UgTVQ3OTE1X01BWF9CRUFDT05fU0laRSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTIwMjktXFx0XFx0ZGV2X2VycihkZXYtXFx1MDAzZW10NzYuZGV2LCBcXFwiaW5iYW5kIGRpc2NvdmVyeSBzaXplIGxpbWl0IGV4Y2VlZFxcXFxuXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYz0yMDU3PWludCBtdDc5MTVfbWN1X2FkZF9iZWFjb24oc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yMDY3LVxcdHN0cnVjdCBic3NfaW5mb19iY24gKmJjbjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzoyMDY4OlxcdGludCBsZW4gPSBNVDc5MTVfTUFYX0JTU19PRkZMT0FEX1NJWkU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMjA2OS1cXHRib29sIGV4dF9waHkgPSBwaHkgIT0gXFx1MDAyNmRldi1cXHUwMDNlcGh5O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMjA5MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzoyMDkyOlxcdGlmIChza2ItXFx1MDAzZWxlbiBcXHUwMDNlIE1UNzkxNV9NQVhfQkVBQ09OX1NJWkUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yMDkzLVxcdFxcdGRldl9lcnIoZGV2LVxcdTAwM2VtdDc2LmRldiwgXFxcIkJjbiBzaXplIGxpbWl0IGV4Y2VlZFxcXFxuXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYz0yMzYzPXN0YXRpYyBpbnQgbXQ3OTE1X3JlZF9zZXRfd2F0ZXJtYXJrKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yMzc4LVxcdFxcdC5sZW4gPSBjcHVfdG9fbGUxNihzaXplb2YocmVxKSAtIHNpemVvZihyZXEuYXJncykpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjIzNzk6XFx0XFx0LmhpZ2hfbWFyayA9IGNwdV90b19sZTE2KE1UNzkxNV9IV19UT0tFTl9TSVpFIC0gMjU2KSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzoyMzgwOlxcdFxcdC5sb3dfbWFyayA9IGNwdV90b19sZTE2KE1UNzkxNV9IV19UT0tFTl9TSVpFIC0gMjU2IC0gMTUzNiksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMjM4MS1cXHR9O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM9MjkyMD1pbnQgbXQ3OTE1X21jdV9nZXRfZWVwcm9tKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIHUzMiBvZmZzZXQsIHU4ICpyZWFkX2J1ZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTI5MjMtXFx0XFx0LmFkZHIgPSBjcHVfdG9fbGUzMihyb3VuZF9kb3duKG9mZnNldCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzoyOTI0OlxcdFxcdFxcdFxcdCAgICBNVDc5MTVfRUVQUk9NX0JMT0NLX1NJWkUpKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yOTI1LVxcdH07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yOTQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjI5NDE6XFx0XFx0aWYgKGFkZHIgXFx1MDAzZSBkZXYtXFx1MDAzZW10NzYuZWVwcm9tLnNpemUgLSBNVDc5MTVfRUVQUk9NX0JMT0NLX1NJWkUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yOTQyLVxcdFxcdFxcdGRldl9rZnJlZV9za2Ioc2tiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTI5NDYtXFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjI5NDc6XFx0bWVtY3B5KGJ1ZiwgcmVzLVxcdTAwM2VkYXRhLCBNVDc5MTVfRUVQUk9NX0JMT0NLX1NJWkUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTI5NDgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYz0zMTc4PWludCBtdDc5MTVfbWN1X2dldF9jaGFuX21pYl9pbmZvKHN0cnVjdCBtdDc5MTVfcGh5ICpwaHksIGJvb2wgY2hhbl9zd2l0Y2gpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0zMjI1LSNkZWZpbmUgX19yZXNfdTY0KHMpIGxlNjRfdG9fY3B1KHJlc1tzXS5kYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjMyMjY6XFx0Lyogc3VidHJhY3QgVHggYmFja29mZiB0aW1lIGZyb20gVHggZHVyYXRpb24gZm9yIE1UNzkxNSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTMyMjctXFx0aWYgKGlzX210NzkxNShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM9MzM1MT1pbnQgbXQ3OTE1X21jdV9zZXRfdHhwb3dlcl9mcmFtZShzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMzM3MS1cXHRpbnQgcmV0O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjMzNzI6XFx0czggdHhwb3dlcl9za3VbTVQ3OTE1X1NLVV9SQVRFX05VTV07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMzM3My1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jPTM0NDA9aW50IG10NzkxNV9tY3Vfc2V0X3R4cG93ZXJfc2t1KHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0zNDcxLVxcdHNrYiA9IG10NzZfbWN1X21zZ19hbGxvYyhcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LCBOVUxMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjM0NzI6XFx0XFx0XFx0XFx0IHNpemVvZihoZHIpICsgTVQ3OTE1X1NLVV9SQVRFX05VTSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMzQ3My1cXHRpZiAoIXNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTM0OTgtXFx0c2tiID0gbXQ3Nl9tY3VfbXNnX2FsbG9jKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYsIE5VTEwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM6MzQ5OTpcXHRcXHRcXHRcXHQgc2l6ZW9mKGhkcikgKyBNVDc5MTVfU0tVX1BBVEhfTlVNKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0zNTAwLVxcdGlmICghc2tiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM9MzU0Mz1pbnQgbXQ3OTE1X21jdV9nZXRfdHhwb3dlcl9za3Uoc3RydWN0IG10NzkxNV9waHkgKnBoeSwgczggKnR4cG93ZXIsIGludCBsZW4sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0zNTY3LVxcdGlmIChjYXRlZ29yeSA9PSBUWF9QT1dFUl9JTkZPX1JBVEUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzozNTY4OlxcdFxcdHM4IHJlc1tNVDc5MTVfU0tVX1JBVEVfTlVNXVsyXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0zNTY5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM9NDAwMD1pbnQgbXQ3OTE1X21jdV9zZXRfcHJvdGVjdGlvbihzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtNDA0Ny1cXHRpZiAocnRzX3RocmVzaG9sZCA9PSAodTMyKS0xKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjQwNDg6XFx0XFx0cHJvdC1cXHUwMDNlcnRzX2xlbl90aHJlcyA9IGNwdV90b19sZTMyKE1UNzkxNV9SVFNfTEVOX1RIUkVTKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy00MDQ5LVxcdGVsc2VcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oLTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1Lmg6NDojaWZuZGVmIF9fTVQ3OTE1X01DVV9IXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1Lmg6NTojZGVmaW5lIF9fTVQ3OTE1X01DVV9IXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmgtNi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oPTE5Nj1zdHJ1Y3QgbXQ3OTE1X21jdV90eHBvd2VyX3NrdSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuaC0xOTktXFx0dTggYmFuZF9pZHg7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1Lmg6MjAwOlxcdHM4IHR4cG93ZXJfc2t1W01UNzkxNV9TS1VfUkFURV9OVU1dO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oLTIwMS19IF9fcGFja2VkO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1Lmg9NTA4PWVudW0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmgtNTIzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oOjUyNDojZGVmaW5lIE1UNzkxNV9NQVhfQkVBQ09OX1NJWkVcXHRcXHQxMzA4XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1Lmg6NTI1OiNkZWZpbmUgTVQ3OTE1X0JFQUNPTl9VUERBVEVfU0laRVxcdChzaXplb2Yoc3RydWN0IHN0YV9yZXFfaGRyKSArXFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oLTUyNi1cXHRcXHRcXHRcXHRcXHQgc2l6ZW9mKHN0cnVjdCBic3NfaW5mb19iY24pICtcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuaC01MzAtXFx0XFx0XFx0XFx0XFx0IHNpemVvZihzdHJ1Y3QgYnNzX2luZm9fYmNuX2NvbnQpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oOjUzMTojZGVmaW5lIE1UNzkxNV9NQVhfQlNTX09GRkxPQURfU0laRVxcdChNVDc5MTVfTUFYX0JFQUNPTl9TSVpFICtcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1Lmg6NTMyOlxcdFxcdFxcdFxcdFxcdCBNVDc5MTVfQkVBQ09OX1VQREFURV9TSVpFKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oLTUzMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuaDo1MzQ6I2RlZmluZSBNVDc5MTVfQlNTX1VQREFURV9NQVhfU0laRVxcdChzaXplb2Yoc3RydWN0IHN0YV9yZXFfaGRyKSArXFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oLTUzNS1cXHRcXHRcXHRcXHRcXHQgc2l6ZW9mKHN0cnVjdCBic3NfaW5mb19vbWFjKSArXFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jPTYzMz1pbnQgbXQ3OTE1X21taW9fd2VkX2luaXQoc3RydWN0IG10NzkxNV9kZXYgKmRldiwgdm9pZCAqcGRldl9wdHIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtNjkxLVxcdH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6NjkyOlxcdHdlZC1cXHUwMDNld2xhbi5uYnVmID0gTVQ3OTE1X0hXX1RPS0VOX1NJWkU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTY5My1cXHR3ZWQtXFx1MDAzZXdsYW4udHhfdGJpdFswXSA9IGlzX210NzkxNShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSA/IDQgOiAzMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy02OTUtXFx0d2VkLVxcdTAwM2V3bGFuLnR4ZnJlZV90Yml0ID0gaXNfbXQ3OTh4KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpID8gMiA6IDE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjY5NjpcXHR3ZWQtXFx1MDAzZXdsYW4udG9rZW5fc3RhcnQgPSBNVDc5MTVfVE9LRU5fU0laRSAtIHdlZC1cXHUwMDNld2xhbi5uYnVmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy02OTctXFx0d2VkLVxcdTAwM2V3bGFuLndjaWRfNTEyID0gIWlzX210NzkxNShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy02OTktXFx0d2VkLVxcdTAwM2V3bGFuLnJ4X25idWYgPSA2NTUzNjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6NzAwOlxcdHdlZC1cXHUwMDNld2xhbi5yeF9ucGt0ID0gTVQ3OTE1X1dFRF9SWF9UT0tFTl9TSVpFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy03MDEtXFx0d2VkLVxcdTAwM2V3bGFuLnJ4X3NpemUgPSBTS0JfV0lUSF9PVkVSSEVBRChNVF9SWF9CVUZfU0laRSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM9OTE3PXN0cnVjdCBtdDc5MTVfZGV2ICptdDc5MTVfbW1pb19wcm9iZShzdHJ1Y3QgZGV2aWNlICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTkyOC1cXHRcXHRcXHRcXHRTVVJWRVlfSU5GT19USU1FX0JTU19SWCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6OTI5OlxcdFxcdC50b2tlbl9zaXplID0gTVQ3OTE1X1RPS0VOX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTkzMC1cXHRcXHQudHhfcHJlcGFyZV9za2IgPSBtdDc5MTVfdHhfcHJlcGFyZV9za2IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM9MTAwMz1tb2R1bGVfZXhpdChtdDc5MTVfZXhpdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjEwMDQ6TU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJNZWRpYVRlayBNVDc5MTVFIE1NSU8gaGVscGVyc1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy0xMDA1LU1PRFVMRV9MSUNFTlNFKFxcXCJEdWFsIEJTRC9HUExcXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oLTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1Lmg6NDojaWZuZGVmIF9fTVQ3OTE1X0hcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tdDc5MTUuaDo1OiNkZWZpbmUgX19NVDc5MTVfSFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oLTYtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tdDc5MTUuaC0xMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tdDc5MTUuaDoxMjojZGVmaW5lIE1UNzkxNV9NQVhfSU5URVJGQUNFU1xcdFxcdDE5XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1Lmg6MTM6I2RlZmluZSBNVDc5MTVfV1RCTF9TSVpFXFx0XFx0Mjg4XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1LmgtMTQtI2RlZmluZSBNVDc5MTZfV1RCTF9TSVpFXFx0XFx0NTQ0XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1Lmg6MTU6I2RlZmluZSBNVDc5MTVfV1RCTF9SRVNFUlZFRFxcdFxcdChtdDc5MTVfd3RibF9zaXplKGRldikgLSAxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oOjE2OiNkZWZpbmUgTVQ3OTE1X1dUQkxfU1RBXFx0XFx0XFx0KE1UNzkxNV9XVEJMX1JFU0VSVkVEIC0gXFxcXFxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QwMzowOTowMy4yOTQwNzUzMzJaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NDExODgxMTY0OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBNVDc5MTUgRHJpdmVyIGZvciBGdXp6aW5nKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duIHN5c3RlbWF0aWNhbGx5LiBJIHNlZSB0aGUgY2hhbmdlcyB0b3VjaCBgbXQ3OTE1X3VucmVnaXN0ZXJfdGhlcm1hbGAgYW5kIGBtdDc5MTVfdGhlcm1hbF9pbml0YCB3aXRoaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuY2AuIFRoaXMgaXMgdGhlIFdpLUZpIDYgZHJpdmVyIGZvciBNZWRpYVRlaydzIE1UNzkxNSwgTVQ3OTg2LCBhbmQgTVQ3OTE2IFBDSWUgYW5kIFNvQyBoYXJkd2FyZS4gVGhlIGNvcmUgcXVlc3Rpb24gaXMgYWx3YXlzOiBjYW4gd2UgcmVhY2ggdGhpcyBjb2RlIGluIGEgc3RhbmRhcmQgZnV6emluZyBlbnZpcm9ubWVudD9cblxuS25vd2luZyB0aGUgdGFyZ2V0IHdlbGwsIEkgaW1tZWRpYXRlbHkgdGhpbms6IGFyZSB0aGVzZSBjaGlwcyBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIEdDRSBWTXM/IFRoZSBhbnN3ZXIgaXMgYSBjbGVhciBuby4gV2UncmUgZGVhbGluZyB3aXRoIHZlcnkgc3BlY2lmaWMgaGFyZHdhcmUgaGVyZS5cblxuVGhlIGRvY3VtZW50IHJlaW5mb3JjZXMgbXkgdW5kZXJzdGFuZGluZyBwZXJmZWN0bHksIHJlZmVyZW5jaW5nIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZSBsaWtlIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIGFuZCBHUFUgZHJpdmVycy4gSXQgaGlnaGxpZ2h0cyB0aGF0IHRoZXNlIHJlcXVpcmUgcGh5c2ljYWwgQVNJQ3Mgb3IgUENJZSBjYXJkcyBub3Qgc2ltdWxhdGVkIGluIGNvbW1vbiB2aXJ0dWFsaXphdGlvbiB0b29scy4gVGhlIE1lZGlhVGVrIE1UNzkxNSB3aXJlbGVzcyBOSUMgZHJpdmVyIGZpdHMgdGhpcyBkZXNjcmlwdGlvbiAqcGVyZmVjdGx5Ki4gSXQncyB2ZW5kb3Itc3BlY2lmaWMsIGRlcGVuZGVudCBvbiBhIHNwZWNpZmljIHBoeXNpY2FsIFBDSWUvU29DIHdpcmVsZXNzIGNoaXAuXG5cblRoZXJlZm9yZSwgYFdvcnRoRnV6emluZ2AgaGFzIHRvIGJlIGBmYWxzZWAuIFRoZXJlJ3Mgbm8gd2F5IHdlIGNhbiB0cmlnZ2VyIHRoZXNlIGZ1bmN0aW9ucyBlZmZlY3RpdmVseSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBDb25zZXF1ZW50bHksIGBGb2N1c1N5bWJvbHNgIG5lZWRzIHRvIGJlIGFuIGVtcHR5IGxpc3QsIGBbXWAuIFNpbWlsYXJseSwgYEVuYWJsZUNvbmZpZ3NgIHNob3VsZCBiZSBlbXB0eSBvciBgbnVsbGAg4oCTIG5vdGhpbmcgaXMgcmVsZXZhbnQgaGVyZS4gVGhlIGBSZWFzb25pbmdgIHNob3VsZCBiZSBjcnlzdGFsIGNsZWFyOiBgbXQ3OTE1YCBpcyBhIHZlbmRvci1zcGVjaWZpYyBkcml2ZXIgZm9yIE1lZGlhVGVrJ3MgTVQ3OTE1L01UNzk4Ni9NVDc5MTYgUENJZSBhbmQgU29DIHdpcmVsZXNzIG5ldHdvcmsgY2hpcHMgdGhhdCByZXF1aXJlIHBoeXNpY2FsIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKSwgcmVuZGVyaW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS5cblxuTm93LCBsZXQncyBjYWxsIGBzZXQtcmVzdWx0c2AuIEl0J3MgYSBzdHJhaWdodGZvcndhcmQgY2FzZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjU0NjcsIk91dHB1dFRva2VucyI6MTI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzU4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDAzOjA5OjA3LjQxMjg5MDE5OVoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQxMTEwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIG1vZGlmaWVkIGNvZGUgaXMgd2l0aGluIHRoZSBNZWRpYVRlayBNVDc5MTUgd2lyZWxlc3MgZHJpdmVyIChkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS8pLCB3aGljaCByZXF1aXJlcyBzcGVjaWZpYyBwaHlzaWNhbCBQQ0llL1NvQyBoYXJkd2FyZSAoTVQ3OTE1L01UNzkxNi9NVDc5ODYpIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiBBcyBzdWNoLCB0aGlzIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBzeXprYWxsZXIgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIG1vZGlmaWVkIGNvZGUgaXMgd2l0aGluIHRoZSBNZWRpYVRlayBNVDc5MTUgd2lyZWxlc3MgZHJpdmVyIChkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS8pLCB3aGljaCByZXF1aXJlcyBzcGVjaWZpYyBwaHlzaWNhbCBQQ0llL1NvQyBoYXJkd2FyZSAoTVQ3OTE1L01UNzkxNi9NVDc5ODYpIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiBBcyBzdWNoLCB0aGlzIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBzeXprYWxsZXIgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDAzOjA5OjA3LjQxMjkzOTgzOVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDIxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowvz5b5[1] Phase: Running StartedAt: 2026-09-07 03:09:18 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvz5b5[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-09-07 03:09:18 +0000 UTC FinishedAt: 2026-09-07 03:09:24 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}